Duanxx的HEVC学习(三)HEVC编码框架(一)框架说明
来源:互联网 发布:windows mount ext4 编辑:程序博客网 时间:2024/05/21 10:15
从编码框架上来看,HEVC和H264在整体框架差不多,此处只分析HEVC的VCL(Video Coding Layer)。和之前的视频编码协议一样HEVC的VCL使用的是混合编码技术:inter-/intrapicture prediction and 2-D transform coding。粗鲁的说就是HEVC把图片内静态压缩、图片间的动态压缩、以及码流层的压缩等等能使用的压缩都使用了,就成了混合压缩编码技术。
下图是这个Encoder的编码框架:
在这个编码框架图中,虚线代表的是控制信息,实线代表的是数据流,Encoder最终的输出是编码完成后的码流。关于输入的视频文件分析可参见《Duanxx的HEVC学习(一)输入视频文件YUV文件的分析》。
我在这里将整个Encoder分成了主要的四个区域块,此处仅仅简要的说明一下这四个区域分别是什么,在后面文章中会详细的说明其由来。
(1)代表的是预测模块,包括帧内预测和帧间预测,帧内预测用于消除空间冗余;帧间预测则主要用于消除时间上的冗余。帧内预测所使用的帧我们称为I帧;帧间预测所使用的帧分为P帧和B帧,P帧指的是向前预测帧,而B帧指的是双向预测帧。
(2)代表的是变换和量化,在(2)模块的左边有一个特殊的数据处理符号,这个符号下面还有一个减号,此处代表的是求残差,就是说,我们从(1)模块中得到的预测后的图片和原始图片的差值,称为残差。可以看到,变换和量化的输入就是刚刚得到的残差。
(3)这个一个完整的解码器,包括反量化、反变换、滤波。之所以编码器中要有一个完整的解码器,是因为编码器中最重要的是模块(1)预测模块,而做预测是要有参考帧的,基于已有的参考帧才可以对当前帧做帧内或者帧间预测。为了实现编码器和解码器的一致性(简单点说,就是我们用电脑或者其他的什么东东看HEVC的视频的时候,我们得到HEVC的比特流后,只需要一个解码器就可以了,通过解码器,我们得到一幅幅的图片,解码器在解码的时候其参考图片是前面已解码的图片,为了预测的准确性,编码器和解码器做预测的时候所参考的图片必须是一样的,所以在编码器中寸在了一个完整的解码器,这个解码器的作用就是为了实现参考帧的一致性)。
(4)这个模块是从码流的视角进一步对视频流压缩,主要是消除编码冗余。
- Duanxx的HEVC学习(三)HEVC编码框架(一)框架说明
- Duanxx的HEVC学习(三)HEVC编码框架(三)帧间预测
- Duanxx的HEVC学习(三)HEVC编码框架(二)帧内预测
- Duanxx的HEVC学习(一)输入视频文件YUV文件的分析
- Duanxx的HEVC学习(一)输入视频文件YUV文件的分析
- Duanxx的HEVC学习(二) HEVC测试代码环境搭建
- HEVC学习之琐事(一):HEVC编码结构分析
- ffmpeg的HEVC解码源代码分析(一)整体框架
- HEVC/H.265入门(2)--编码框架与流程
- HEVC学习_HEVC框架了解
- 【HEVC学习与研究】39、HEVC帧内编码的原理和实现(上)
- 【HEVC学习与研究】41、HEVC帧内编码的原理和实现(中)
- 【HEVC学习与研究】42、HEVC帧内编码的原理和实现(下)
- HEVC代码追踪(四):compressGOP框架
- HEVC算法和体系结构:编码框架
- HEVC算法和体系结构:编码框架
- HEVC学习之旅前篇(一)
- HEVC(h265)学习
- Codeforces 196 B. Infinite Maze
- Android网络编程之Socket&Http
- 完全背包基础详解(附求解选择的物品)
- 算法学习一之逆波兰表达式
- STL vector用法介绍
- Duanxx的HEVC学习(三)HEVC编码框架(一)框架说明
- 学习nginx---安装
- RedHat5.4升级安装GCC-4.8.3
- 三角形(2039)
- 回文字符串
- HDOJ 题目2277 Change the ball(水题,规律)
- HDU--4786 Fibonacci Tree 生成树+贪心?
- 判断是否为移动设备
- C#5为项目添加DLL文件、类、控件