【二】H.264/MPEG-4 Part 10 White Paper 翻译之 Prediction of Intra Macroblocks
翻译版权所有,转载请注明出处~
xzrch@2018.09.14
---------------------------------------------------------------------
1.介绍
ISO / IEC MPEG和ITU-T VCEG的联合视频组(JVT)正在最终确定自然视频图像编码(压缩)的新标准。 新标准[1,2]将被称为H.264以及MPEG-4第10部分,即“高级视频编码”。 本文描述了在H.264 CODEC中预测帧内编码宏块的方法。
如果以帧内模式编码块或宏块,则基于先前编码和重构(但未经滤波)的块来生成预测块。在编码之前从当前块中减去该预测块P。对于亮度(luma)采样,可以针对每个4×4子块或针对16×16宏块生成P。每个4x4亮度块总共有9种可选的预测模式,而可用于16x16亮度模块的有4种可选模式,还有一个始终应用于每个4x4色度块的模式。
2. 4×4 亮度预测模式
图1显示了一个QCIF帧中的亮度宏块和需要预测的4x4亮度块。上面和左边的采样先前已经被编码和重建,因此在编码器和解码器中可用以形成预测参考。如图中所示,预测块P基于图2中标记为采样A-M。注意在一些情况下,并非所有采样A-M在当前切片内都可用:为了保持切片的独立解码,仅当前切片内的样本可用于预测。 根据哪些样本A-M可用来修改DC预测(模式0); 只有在所有需要的预测样本都可用时才可以使用其他模式(1-8)(除非如果E,F,G和H不可用,则从样本D复制它们的值)。
图3中的箭头表示每种模式下的预测方向。对于模式3-8,预测样本由预测样本A-Q的加权平均生成。编码器可以为每个块选择预测模式,其目标是最小化P与要编码的块之间的残差。


示例:针对图1中所示的4×4块计算9个预测模式(0-8)。图4表示出了由每个预测创建的预测块P. 每个预测的误差绝对值之和(SAE)表示预测误差的大小。 在这种情况下,模式7(垂直右)给出了与实际当前块的最佳匹配,因为该模式给出了最小的SAE。视觉比较显示P块看起来与原始4x4块非常相似。

3. 16×16 亮度预测模式
作为上述4×4亮度模式的替代,可以预测宏块的整个16×16亮度分量。 有四种模式可供选择,如图5中的图表所示:
模式0(垂直):从上部样本(H)外推。
模式1(水平):从左样本(V)外推。
模式2(DC):上部和左侧样本的平均值(H + V)。
模式4(平面):线性“平面”函数适用于上部和左侧样本H和V.这适用于平滑变化亮度的区域。

例:
图6表示亮度宏块具有在上边缘和左边缘处的先前编码的样本。 预测结果(图7)表明最佳匹配由模式3给出。帧内16×16模式在图像的均匀区域中效果最佳。


4. 8×8色度预测模式
从先前已经编码和重构的上方和/或左侧的色度样本预测宏块的每个8×8色度分量。 除了模式编号的顺序不同之外,4种预测模式与第3节中描述的16x16亮度预测模式非常相似,不同之处在于:DC(模式0),水平(模式1),垂直(模式2) 和平面(模式3)。 始终将相同的预测模式应用于两个色度块。
从先前已经编码和重构的上方和/或左侧的色度样本预测宏块的每个8×8色度分量。 除了模式编号的顺序不同之外,4种预测模式与第3节中描述的16x16亮度预测模式非常相似,不同之处在于:DC(模式0),水平(模式1),垂直(模式2) 和飞机(模式3)。 始终将相同的预测模式应用于两个色度块。
注意:如果亮度分量中的任何8x8块以帧内模式编码,则两个色度块都是经过编码的。
5. 编码帧内预测模式
必须向解码器发信号通知每个4×4块的帧内预测模式的选择,并且这可能潜在地需要大量比特。 然而,相邻4×4块的帧内模式高度相关。 例如,如果使用模式2预测图8中的先前编码的4×4块A和B,则块C(当前块)的最佳模式可能也是模式2。
对于每个当前块C,编码器和解码器计算most_probable_mode。 如果A和B在4x4帧内模式中编码并且都在当前切片内,则most_probable_mode是A和B的预测模式的最小值; 否则,most_probable_mode设置为2(DCprediction)。
编码器为每个4x4块发送一个标志use_most_probable_mode。 如果标志为“1”,则使用参数most_probable_mode。 如果标志为“0”,则发送另一个parameterremaining_mode_selector以指示模式的改变。 如果remaining_mode_selector小于当前的most_probable_mode,则将预测模式设置为remaining_mode_selector;否则将预测模式设置为remaining_mode_selector + 1。 以这种方式,仅需要8个remaining_mode_selector值(0到7)来发信号通知当前帧内模式(0到8)。

6. References
1 ITU-T Rec. H.264 / ISO/IEC 11496-10, “Advanced Video Coding”, Final Committee Draft, Document JVTF100,
December 2002
2 Iain E G Richardson, “H.264 and MPEG-4 Video Compression”, John Wiley & Sons, to be published late
2003
【二】H.264/MPEG-4 Part 10 White Paper 翻译之 Prediction of Intra Macroblocks的更多相关文章
- 【一】H.264/MPEG-4 Part 10 White Paper 翻译之 Overview of H.264
翻译版权所有,转载请注明出处~ xzrch@2018.09.14 ------------------------------------------------------------------- ...
- 【转】实现RTP协议的H.264视频传输系统
1. 引言 随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性.但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动 ...
- 基于RTP协议的H.264传输
1. 引言 随 着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性.但人们又面临着另外一种不可避免 的尴尬,就是在网络上看 ...
- 每天进步一点点------H.264学习 (一)
分三个阶段学习1.第一个阶段: 学习H.264,首先要把最基本最必要的资料拿在手里.这些资料包括:标准文档+测试模型+经典文章,在本FTP中能找到.首先看 <H.264_MPEG-4 Part ...
- H.265 & H.264
H.265 & H.264 HEVC (H.265) vs. AVC (H.264) https://en.wikipedia.org/wiki/High_Efficiency_Video_C ...
- H.264 / MPEG-4 Part 10 White Paper-翻译
1. Introduction Broadcast(广播) television and home entertainment(娱乐) have been revolutionised(彻底改变) b ...
- H.264 White Paper学习笔记(二)帧内预测
为什么要有帧内预测?因为一般来说,对于一幅图像,相邻的两个像素的亮度和色度值之间经常是比较接近的,也就是颜色是逐渐变化的,不会一下子突变成完全不一样的颜色.而进行视频编码,目的就是利用这个相关性,来进 ...
- H.264 White Paper学习笔记(一)总览
H.264 White Paper对于264编码器的原理讲的比较透彻,在阅读学习的时候收获很大,这份文献网上有很多了,也有不少人翻译,不过想要理解更清楚我觉得还是得看英文原版的. 首先看一下白皮书里给 ...
- #《H.264和MPEG-4视频压缩》# 二. 图像质量
为了规范.评价.比较不同的视频通信系统,我们需要建立评价图像质量的准则.视觉效果的测量非常困难,而且并不精确,因为影响结果的因素众多.图像质量的认定是一个主观化的东西,许多影响它的因素都难以给出完整而 ...
随机推荐
- JDBC(5)ResSetMetaData&DatabaseMetaData&获取数据库主键的值
ResSetMetaData 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象: getColumnName(int column):获取指定列的名称 getColumnCount( ...
- GitBash初始目录的修改
GitBash初始目录是定为到用户目录的,例如: 所以,每次打开都要手动调试到仓库所在的目录,可以通过修改目标和起始位置来定位到仓储文件夹下. 再次打开git,完美~~
- MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite
MBTiles 是一种地图瓦片存储的数据规范,它使用SQLite数据库,可大大提高海量地图瓦片的读取速度,比通过瓦片文件方式的读取要快很多,适用于Android.IPhone等智能手机的离线地图存储. ...
- C# 控制台模拟序列化和反序列化
序列化:将对象转换成二进制串的过程 反序列化:将序列化过程中产生的二进制串转换成对象的过程 作用:传输数据 using System; namespace WriteTextContent { [Se ...
- Gradle Goodness: Working with Live Task Collection
Gradle support the definition of so called live collections. These collections are mostly created ba ...
- .net 网站中如何动态播放音乐,页面如何播放音乐
向别人请教有好处也有坏处,好处是你可以相对比较快的知道要点,坏处就是你TM的发现你弄了那么久都是白弄. 昨天今天一直在找一个问题的解决方案,我的问题描述大概是这样子的:我用vs2012开发的.net网 ...
- 5.同步关键字(synchronized)
同步关键字(synchronized): 多线程给我们提供方便的时候,也给整个编程增加了难度,尤其是对临界资源的控制,尤为重要. 一个在操作系统课上,老掉牙的事例,就把这种情况解释的明明白白. 一对夫 ...
- Knowledge Point 20180305 补位的两种方式
我们都知道Java的基本数据类型内存中都有一个固定的位数(内存分配空间),如byte占8位,int占32位等.正因如此,当把一个低精度的数据类型转成一个高精度的数据类型时,必然会涉及到如何扩展位数的问 ...
- position定位笔记
position定位 position一共有四个可选属性:static/relative/absolute/fixed 代码: <style type="text/css"& ...
- ASP.Net 中的三种控件
---恢复内容开始--- 第一种:HTML控件 ASP.Net把HTML控件当成普通字符串渲染到浏览器端,不去检查正确性.无法在服务器端进行处理. 比如: <input111 type=&quo ...