【二】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视频压缩》# 二. 图像质量
为了规范.评价.比较不同的视频通信系统,我们需要建立评价图像质量的准则.视觉效果的测量非常困难,而且并不精确,因为影响结果的因素众多.图像质量的认定是一个主观化的东西,许多影响它的因素都难以给出完整而 ...
随机推荐
- 如何将编写好的CS文件做成exe可执行文件
编译好的控制台CS文件: cs文件单独拿出来放到F盘目录中 打开命令提示CMD: 执行下面语句即可在F盘目录中看到生成的exe文件,windows系统下双击就可运行: C:\Windows\Micro ...
- RabbitMQ + topic发送消息+python
接口使用两个queue监听信息,且有两个测试环境,所以需要向mq中发送测试数据: python使用pika包:Pika is a RabbitMQ (AMQP-0-9-1) client librar ...
- OC对象里面包含的结构体类型的属性,不能对该结构体属性的成员单个进行修改
OC对象里面包含的结构体类型的属性,不能对该结构体属性的成员单个进行修改,需要对OC对象的结构体属性整体赋值. 关于网上很多博客写着“结构体类型里面的某个属性如果想要修改是不允许单个修改的” 之解释: ...
- 过滤xss攻击脚本
<?php /** * @blog http://www.phpddt.com * @param $string * @param $low 安全别级低 */ function clean_xs ...
- 『ACM C++』HDU杭电OJ | 1418 - 抱歉 (拓扑学:多面体欧拉定理引申)
呕,大一下学期的第一周结束啦,一周过的挺快也挺多出乎意料的事情的~ 随之而来各种各样的任务也来了,嘛毕竟是大学嘛,有点上进心的人多多少少都会接到不少任务的,忙也正常啦~端正心态 开心面对就好啦~ 今天 ...
- Linux在线安装jdk8,并配置环境变量
1.创建相关目录:下载目录.安装目录 下载目录: cd / 2.下载jdk8到目录 下载前先跳转到下载目录,比如希望最后压缩包下载到/home/bak/下, 则先创建bak目录,命令如下: 注意:如果 ...
- MySQL高可用之MGR安装测试
Preface We've learned the machenism of MGR yesterday,Let's configurate an environment and have s ...
- git获取步骤
$ git init $ git config --global user.name "[name]" $ git config --global user.email [emai ...
- 如何让tomcat服务器运行在80端口,并且无需输入项目名即可访问项目()
这个问题最开始遇到的时候是半年前,自己买了个服务器玩,但是域名解析的时候出了问题,我查了查资料才知道腾讯云是默认解析到80端口,而且还改不了. 首先是修改tomcat运行端口号,默认是8080,但是我 ...
- MySQL---视图、触发器
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( S ...