翻译版权所有,转载请注明出处~

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的更多相关文章

  1. 【一】H.264/MPEG-4 Part 10 White Paper 翻译之 Overview of H.264

    翻译版权所有,转载请注明出处~ xzrch@2018.09.14 ------------------------------------------------------------------- ...

  2. 【转】实现RTP协议的H.264视频传输系统

    1.  引言       随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性.但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动 ...

  3. 基于RTP协议的H.264传输

    1.  引言        随 着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性.但人们又面临着另外一种不可避免 的尴尬,就是在网络上看 ...

  4. 每天进步一点点------H.264学习 (一)

    分三个阶段学习1.第一个阶段: 学习H.264,首先要把最基本最必要的资料拿在手里.这些资料包括:标准文档+测试模型+经典文章,在本FTP中能找到.首先看 <H.264_MPEG-4 Part ...

  5. H.265 & H.264

    H.265 & H.264 HEVC (H.265) vs. AVC (H.264) https://en.wikipedia.org/wiki/High_Efficiency_Video_C ...

  6. H.264 / MPEG-4 Part 10 White Paper-翻译

    1. Introduction Broadcast(广播) television and home entertainment(娱乐) have been revolutionised(彻底改变) b ...

  7. H.264 White Paper学习笔记(二)帧内预测

    为什么要有帧内预测?因为一般来说,对于一幅图像,相邻的两个像素的亮度和色度值之间经常是比较接近的,也就是颜色是逐渐变化的,不会一下子突变成完全不一样的颜色.而进行视频编码,目的就是利用这个相关性,来进 ...

  8. H.264 White Paper学习笔记(一)总览

    H.264 White Paper对于264编码器的原理讲的比较透彻,在阅读学习的时候收获很大,这份文献网上有很多了,也有不少人翻译,不过想要理解更清楚我觉得还是得看英文原版的. 首先看一下白皮书里给 ...

  9. #《H.264和MPEG-4视频压缩》# 二. 图像质量

    为了规范.评价.比较不同的视频通信系统,我们需要建立评价图像质量的准则.视觉效果的测量非常困难,而且并不精确,因为影响结果的因素众多.图像质量的认定是一个主观化的东西,许多影响它的因素都难以给出完整而 ...

随机推荐

  1. 针对Restful风格参数传递的请求获取真实url

    昨天遇到这样一个问题,先简单介绍下. 业务场景 我们想要统计热点请求URL,进而进行分析优化 方案 通过过滤器获取到请求url(调用方法request.getservletpath),通过redis进 ...

  2. MyBatis(2)增删改查

    本次全部学习内容:MyBatisLearning   查: 根据id查询用户信息,得到一个用户信息   在User.xml文件中添加代码: <mapper namespace="tes ...

  3. 决策树在sklearn中的实现

    1 概述 1.1 决策树是如何工作的 1.2 构建决策树 1.2.1 ID3算法构建决策树 1.2.2 简单实例 1.2.3 ID3的局限性 1.3 C4.5算法 & CART算法 1.3.1 ...

  4. git终端操作

    1.提交 git add . git commit -m "test" git push origini master 2.分支 创建feature_x分支,并切换到feature ...

  5. 【luogu P3393 逃离僵尸岛】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3393 被占领的点可以先连在一个点上然后只需要对这一个点bfs一遍就可以求所有的危险点 #include &l ...

  6. sql修改数据库中表的结构

    ALTER TABLE TableName1 ADD | ALTER [COLUMN] FieldName1 FieldType [(nFieldWidth [, nPrecision])] [NUL ...

  7. unittest单元测试框架之unittest 框架的总结(七)

    1. Unittest 是 python 自带的单元测试框架,可以用其作为自动化框架来组织测试用例(测 试用例的执行顺序)的执行. 2. Unittest 框架的流程: 写好 TestCase 通过 ...

  8. 谨慎修改Oracle数据库字符集(UTF8<->ZHS16GBK)

      Preface       Today,I'm gonna say something what is related with the character set in Oracle datab ...

  9. vue的实例

    vue的实例 创建一个vue实例的写法和创建一个变量一样 var vm = new Vue{{ //我们一般用vm来接收vue的实例,vm是 ViewModel的缩写 }} 然后,我们就可以给vue实 ...

  10. 【memcached启动报错】

    #前台启动不了 #指定-u root #后台启动 #扩展选项: #利用telnet连接memcached 的端口登录memcached服务 #error表示有语法错误 #store表示正确