编码:

蓝色的前向编码流程:
以宏块为输入单位介绍优于以帧为单位介绍。
Fn为即将进行编码的宏块,由原始图像中16*16像素构成。每个宏块要么采用帧内模式编码,要么采用帧间模式编码。不管是哪种编码模式,预测宏块P都是基于重建帧生成的。在帧内模式中,预测宏块P是由当前帧经过编码、解码和重建生成的(注意,采用未经过滤波的样本uF`n来生成P)。在帧间模式中,预测宏块是通过一个或者多个参考帧经过运动补偿预测生成的。在图中,参考帧就是之前编码得到的帧F`n-1;不过,并不只是一个参考帧,每个预测宏块P都是由一个或者两个,之前或者之后的,已经经过编码和重建所生成的帧中的对应宏块所生成的。
当前宏块减去预测宏块P生成残差宏块Dn。残差宏块Dn经过变换、量化后生成X,由一系列变换量化系数组成。然后,对这些系数进行重排序和熵编码。熵编码生成的系数,附上解码宏块所需要的附加信息生成压缩比特流,(附加信息有宏块预测模式,量化步长,描述如何对宏块进行运动补偿的运动矢量信息,等等)。压缩比特流被传到网络抽象层(NAL)以发射或者储存。
粉红色的重建流程:
为了生成重建帧以编码以后的宏块,将量化后的宏块残差系数X进行解码。系数X经过反量化,反变换生成残差宏块Dn`。此时的残差宏块与原先的残差宏块Dn并不相同,原因是在量化过程中引入了失真。所以,Dn`是变形了的Dn。
预测宏块P与Dn`相加生成重建宏块uF`n(原宏块的变形了的宏块)。为了减小块效应失真,引入了专门的滤波器。滤波之后的宏块就是重建宏块F`n,一系列的重建宏块组成了参考帧。(实际上,这里的参考帧,与解码端生成的最终图像完全一致)
解码:
从NAL中,解码器取得压缩比特流。数据元素经过熵解码和重排序生成一系列量化后的系数X。经过反量化和反变换生成Dn`(与编码端的Dn`一致)。使用从比特流中解码出来的头信息,解码器生成预测宏块P,与先前在编码器中生成的预测宏块P一致。P与Dn`相加生成uF`n,然后经过滤波,生成解码宏块F`n。
从两幅图表和上面的讨论可以发现:编码器的重建流程的目的是为了确保编码端和解码端使用一致的参考帧来生成预测宏块P。如果参考帧不一致,那么编码端和解码端的预测宏块P就不一致,导致在编码端和解码端之间生成渐增的误差或者“漂移”。

H.264编解码流程相关推荐

  1. H.264编解码标准的核心技术(提供相关流程图)

    最近在学习H.264编解码知识,上网搜了不少资料看,发现大多数中文资料中都缺少相应的图片,例如编解码流程图.编码模板等,这对加深理解是很有帮助 的.木有办法,只好回去潜心阅读<H.264_MPE ...

  2. 对于H.264编解码的探索

    为什么需要视频编码 举个例子,如果摄像头输出分辨率为400*400的图像,那每一帧的大小就是400*400*8*3=3840000bit,折算下来一帧就需要468KB 一般情况下帧数都是30fps,那 ...

  3. H.264编解码浅析

    声明:本文是阅读<新一代视频压缩标准H.264_AVC>笔记总结 简介 H.264,又称为MPEG-4第10部分,高级视频编码(英语:MPEG-4 Part 10, Advanced Vi ...

  4. H.264编解码实验2020

    1.将自行选择或老师给的两个264文件进行解码,得到相应的YUV文件 将上述两个视频序列编码为.264文件 将JM18.6下的ldecod.exe.decoder.cfg与要处理的.264文件放在同一 ...

  5. H.264的编解码流程

    H.264是在MPEG-4技术的基础之上建立起来的,其编解码流程主要包括5个部分:帧间和帧内预测(Estimation).变换(Transform)和反变换.量化(Quantization)和反量化. ...

  6. 视频编解码(十二):播放器编解码流程source、demux、decoder、output

    一.播放器编解码流程source.demux.decoder.output 说白了播放器大致分为4大部分:source.demux.decoder.output. 1.source: 数据源,数据的来 ...

  7. Android音视频开发基础(六):学习MediaCodec API,完成视频H.264的解码

    前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了<Android 音视频从入门到提高 - 任务列表>.本文是Android音视 ...

  8. h.264并行解码算法分析

    并行算法类型可以分为两类 Function-level Decomposition,按照功能模块进行并行 Data-level Decomposition,按照数据划分进行并行 Function-le ...

  9. 【codecs】JPEG、MPEG-1、MPEG-2和MPEG-4编解码流程对比

    Date: 2018.10.25 1.JPEG编解码流程 发展时间:1988~1990 2.MPEG-1编解码流程 发展时间:1990~1992 http://citeseerx.ist.psu.ed ...

最新文章

  1. word 语音识别的数据丢失
  2. C# List集合转Json字符串示例代码
  3. Android用户界面开发(16):ImageSwitcher
  4. 算法工程师如何改进豆瓣电影
  5. 服务发现与配置管理高可用实践
  6. matlab距离保护程序,基于MATLAB的距离保护仿真.doc
  7. c 结构体转byte_C中结构体和字节流的互换及内存对齐
  8. [BZOJ] 1025 [SCOI2009]游戏
  9. 中文手册_Etherscan API中文手册
  10. html5之Canvas坐标变换应用-时钟实例
  11. 类的继承与派生的基础学习
  12. [R语言绘图]饼状图pie
  13. 小米6线刷包php文件格式,小米6官方固件刷机教程_线刷|救砖教程图解
  14. wps居中对齐不在中间_wps怎么把字水平居中对齐
  15. 软路由安装openwrt
  16. 结果公示!400名博硕士获“优秀学位论文”奖!
  17. 盘姬工具箱WV1.10
  18. chrome浏览器打开网页排版错乱
  19. 【附源码】计算机毕业设计SSM网上鲜花店系统
  20. MyBatis中的日志(LOG4J)

热门文章

  1. SharePoint PowerShell命令系列
  2. Azure 应用服务、虚拟机、Service Fabric 和云服务的比较
  3. 【手算】行列式树形展开
  4. oracle 9i 只读模式,我的oracle 9i学习日志(6)--Starting Up and shutting down a Database
  5. css3加载中动画效果,CSS3实现加载中的动画效果
  6. 【BZOJ 3831】【Poi2014】Little Bird(单调队列优化dp)
  7. 【CodeForces - 527C】Glass Carving(线段树或者SBT或者set)
  8. *【HDU - 1517】【POJ - 2505】A Multiplication Game(博弈,递推找规律或SG函数)
  9. Apollo进阶课程⑪ | Apollo地图生产技术
  10. 2.Explore Your Data