overview of hevc

HEVC(High Efficiency Video Coding)作为下一代视频压缩标准,相较于H.264/AVC,提供了对从QVGA至7680x4320超高清视频的支持,分辨率提升至16倍,并在相同PSNR情况下,码率节省40%-45%。本文详细介绍了HEVC编码框图、编码分割变化、预测方向拓展、预测模式增加、运动融合、变换和量化等核心改进。
转载自:http://blog.youkuaiyun.com/xiaoyi247/article/details/7891419

HEVC(High Efficient VideoCoding)即下一代的视频压缩标准,是继H.264/AVC之后视频编码标准的又一重大突破,最主要的改进是分辨率的支持从QVGA至7680x4320的超高清视频,是H264所以支持的1080p的分辨率的16倍!视频编码效果在相同PSNR的情况下,码率节省40%-45%。那具体HEVC相对于h264都有哪些方面的改进呢?

先上编码框图:

         

      这个框图是基于HM5.0编码器的,整个框架和H264的编码框图基本差不多,首先我们来讨论一下框图上没有表现出来,但是在HEVC中又非常明显的一个变化。

1.编码分割的变化

          众所周知,在H264中,我们编码的最小单元是宏块,整个H264的编码框图都是基于宏块的,但这个概念在HEVC中发生了本质的变化,在HEVC中我们使用CU(编码单元),PU(预测单元),TU(变换单元)来描述整个HEVC的编码过程。

          为了提高高分辨率的视频的编码效率,HEVC采用了基于大尺寸的四叉树编码结构。

          CU:采用四叉树的分割结构,CU的尺寸变化范围从8x8(SCU)至64x64(LCU),编码单元的尺寸必须为2Nx2N的正方形,其中N为2为底的幂,具体如图2所示

          

          PU:HEVC中使用PU来实现当前CU的预测,PU的尺寸不能超过其所属的CU,PU的划分方式有两类

     a.2Nx2N,NxN,Nx2N,2NxN如图三a所示

                 b.64x64的CU支持AMP(不对称分割),主要为了适用于CU中纹理偏差比较大的情况,增加预测的精准度,如图三b所示

          

      TU:同样采用四叉树的分割结构,所支持的尺寸从4x4至32x32,相对于h264增加了16x16和32x32两种大尺寸的变换。和不对称的PU结构相对应,在HM4.0模型中也采用了相应的矩形四叉树的TU结构,一个CU的TU划分方式如下图所示:

          

 

结合框图,我们来描述一下各个模块的改进

Intraprediction:

预测方向拓展到33个,另外加上一个DC和一个planar,一共35中预测模式,使得预测更加精细,但是为了控制编码复杂度,所以对4x4和64x64的尺寸的预测模式进行了限制。下图对比了HEVC和AVC的Intra预测模式:

     

INTERPREDICTION:

           相对于AVC,HEVC进行了三个方面的改进

          a.广义B帧,对传统的P帧使用B帧的双向预测模式

          b.运动融合,结合了传统的skip mode和direct mode

         c.自适应运动矢量预测技术,即同时使用时域和空域进行MV的预测,相对于AVC来说增加了时域的预测,有利于去除时间域的相关性


Transformation

Transformation的一些改进在上一篇文章中有提及,不再重复


Quantization

       基本同AVC


loop filtering

    在原有的deblockfilter的基础上增加SAO,ALF模块,不过在HM8.0中ALF已经去掉


Entropy Coding

 

 包含两种熵编码的方式,CAVLC和SBAC,SBAC是CABAC的个改进,是并行的CABAC算法,基于语法元素进行熵编码,在低复杂度

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
### 高效视频编码(HEVC)标准概述 #### 一、背景与发展历程 高效视频编码(High Efficiency Video Coding, HEVC),也被称为H.265,是由国际电信联盟电信标准化部门(ITU-T)和ISO/IEC运动图像专家组(MPEG)共同开发的新一代视频压缩技术。相较于前代标准如H.264,在保持甚至提高画质的同时能够显著降低数据量约50%左右[^2]。 #### 二、架构组成 同H.264一样,HEVC同样采用了基于块的混合编码框架,内部结构主要分为两大部分: - **视频编码层(VCL)**:负责实际的画面预测与变换量化处理工作; - **网络抽象层(NAL)**:定义了如何将VCL产生的信息打包成适合不同网络环境传输的形式,并提供了必要的控制指令来支持随机访问等功能[^1]。 #### 三、关键技术特性 为了达到更高的压缩效率并适应更广泛的应用场景需求,HEVC引入了一系列创新性的算法和技术手段: - **更大的宏块尺寸**:最大可达64×64像素,允许更加灵活地划分画面区域进行编码优化; - **多方向帧内预测模式**:增加了更多角度的选择范围,使得相邻帧间相似度匹配更为精准; - **自适应环路滤波(ALF)**:通过对重建后的图片边缘部分做额外平滑化操作减少振铃效应; - **样条插值法(SAI)**:改进了亚像素精度下的运动估计准确性; - **分级B切片结构**:增强了时空域联合预测能力,进一步提升了压缩效果; 以上各项措施综合起来不仅提高了压缩率还改善了视觉质量体验。 ```python # Python伪代码展示简单版HEVC编码流程示意 def hevc_encode(frame_sequence): vcl_output = [] for frame in frame_sequence: # 进行帧级预处理... # 执行VCL层面的操作,比如分割CTU单元、执行IPM等过程... coded_ctus = process_vcl_operations(frame) nal_units = pack_into_nal(coded_ctus) vcl_output.extend(nal_units) return vcl_output def unpack_from_nal(bitstream): """模拟NAL解析逻辑""" pass def decode_hevc(compressed_data): frames_recovered = [] while compressed_data: next_frame_bits = extract_next_frame_bits(compressed_data) raw_pixels = reconstruct_raw_image(unpack_from_nal(next_frame_bits)) frames_recovered.append(raw_pixels) return frames_recovered ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值