H.264/AVC视频压缩编码标准的新进展

H .264/AVC是由ISO/IEC与ITU-T组成的联合视频组(JVT)制定的新一代视频压缩编码标准,于2003年5月完成制订。相对于先前的标准,H.264/AVC无论在压缩效率、还是在网络适应性方面都有明显的提高,因此,业界普遍预测其将在未来的视频应用中替代现有的视频压缩标准。

  但是,H.264/AVC标准由于对视频源的限制,仅支持娱乐级视频质量。为了进一步扩大其应用范围,使其适应高保真视频压缩的应用,JVT于2004年7月对H.264/AVC做了重要的补充扩展,称为FRExt(Fidelity Range Extensions)。

FRExt概述

  H.264/AVC标准第一版支持的源图像为每象素8b,且采样方式仅限于4∶2∶0;而新近扩展的FRExt部分则扩大了标准的应用范围,如专业级的视频应用、高分辨率/高保真的视频压缩等。FRExt对H.264/AVC的改善主要在:(1)进一步引入一些先进的编码工具,提高了压缩效率;(2)视频源的每个样值均可超过8b,最高可达12b;(3)增加了4∶2∶2与4∶4∶4的采样格式;(4)更高的比特率,更高的图像分辨率;(5)可达到图像高保真的要求,支持无损压缩;(6)支持RGB格式的压缩,同时避免了色度空间转换的舍入误差。

高保真编码

  在高类中,H.264/AVC对FRExt定义了特别的编码方案——支持无损编码和多种颜色格式。

  (1)无损编码

  为满足视频信号高保真的要求,H.264/AVC只在H444P类中引入了无损压缩编码方案。第一个是PCM方案,它没有预测、变换和量化,直接传送取样点的值以达到无损编码的目的;第二个是无变换的无损编码方案,运用预测与熵编码技术来表示图像高效无损,相对于第一个方案提高了编码效率。

  (2)支持多种颜色格式

  RGB与YCbCr相互之间的颜色转换使用的都是浮点运算,这必将引入舍入误差。为了消除在浮点运算中引入的舍入误差,H.264/AVC在支持RGB的同时引入了新的彩色空间YCgCo:

  Y=1/2(G+(R+B)/2), Cg=1/2(G-(R+B)/2),Co=(R-B)/2

  上面的公式减小了色彩空间转换的复杂度;但是,为了避免舍入误差,要求增加额外的比特以保持精确性。为了把这个额外比特降到1b,使用下面的公式:

  Co=R-B,Cg=G-(B+(Co>>1)),Y=(B+(Co>>1))+Cg>>1)

压缩效率

  从压缩效率上讲,H.264/AVC已经大大超过了以往的视频压缩标准,加入了FRExt之后,其在大尺寸、高保真等视频压缩方面更具优势。图5示出H.264/AVC FRExt与MPEG-2在HDTV图像主观评价方面的一个比较,H.264/AVC在不同的码率下压缩,而MPEG-2的压缩码率是24Mb/s,由此图可见8Mb/s的H.264/AVC FRExt与MPEG-2相当。

H.264/AVC视频压缩编码标准的新进展

图5 H.264/AVC FRExt 与MPEG-2的性能比较

  由于引入了基于空域的帧内预测技术,并且经过FRExt的改善,H.264/AVC的I帧与JPEG2000的编码效率相当,非常适合高质量的视频压缩应用。

小结

  新一代视频压缩编码标准H.264/AVC的新进展——FRExt,相对于第一版标准扩展了视频源的采样格式与比特深度,加入了一些提高编码效率的工具。从而H.264/AVC进一步提高了编码效率,扩大了应用范围。

  目前,高类已经代替主类而成为广播和其他娱乐应用的首选。主要原因是,它比起先前的主类只增加了极小的算法复杂度,却大大提高了压缩性能且编码器控制的灵活性。其中,H422P类可望在演播室环境中得以应用。在补充了FRExt之后,H.264/AVC被迅速推广到各种应用中,主要包括:欧洲数字视频广播标准DVB;美国先进电视系统委员会ATSC;DVD论坛的HD-DVD规范;蓝光光碟协会(BDA)的BD-ROM规范。

H.264/AVC视频压缩编码标准的新进展

图1 FRExt 编码工具

  FRExt增加了4个新的类:(1)High Profile(HP),支持8b、4∶2∶0采样;(2)High 10 Profile(Hi10P),支持10b、4∶2∶0采样;(3)High 4∶2∶2 Profile(H422P),支持10b、4∶2∶2采样;(4)High 4∶4∶4 Profile (H444P),支持12b、4∶4∶4采样、无损编码与多种色彩空间的编码。

  H.264/AVC FRExt详细说明了一组4个新的类,它们如同性能的嵌套子集一样被创立。这4个类全都继承了主类的工具集,就像它们的公共交集;而高类(HP)还额外地包含了所有能够提高编码效率的主要的新工具。相对于主类(MP),这些工具在算法复杂度上只是稍有提高。因此,在数字视频应用中,在4∶2∶0色度采样格式中使用8b视频的高类有可能代替主类。

  增加了高类之后,H.264/AVC各类的关系如图2所示,具体所包含的编码工具如下:

H.264/AVC视频压缩编码标准的新进展

图2 H.264 各个类的关系

  1.所有类的共同部分:I片、P片、CAVLC;

  2.基本类(Baseline):FMO、ASO、冗余片;

  3.主类(Main):B片、加权预测、CABAC、隔行编码;

  4.扩展类(Extended):包含基本类的所有部分(FMO、ASO、冗余片)、SP片、SI片、数据分割、B片、加权预测;

  5.高类(High):包含主类的所有部分(B片、加权预测、CABAC、隔行编码)、自适应变换块尺寸(4×4或8×8整数变换)、量化矩阵。

FRExt增加的关键算法

  FRExt之所以能进一步提高编码效率及保真度,是因为加入了一些有效的编码工具。其中大部分是在取样点比特深度和色度格式方面;而在提高编码效率方面,主要是利用8×8的亮度帧内预测、4×4变换及8×8变换、量化矩阵等技术。

  9种8×8的亮度帧内预测

  H.264/AVC第一版的帧内预测包括9种4×4亮度块、4种16×16亮度块和4种色度块的预测。

H.264/AVC视频压缩编码标准的新进展

图3 帧内预测方向

    在FRExt中增加了9种8×8亮度块的预测,其预测方向(如图3)、预测块的计算与4×4块的基本一样,如图4所示。在一个给定的8×8亮度块中,每个象素值可从相邻的参考象素值(A~X、Z)中预测得到,编码器可选择8种不同的预测方向和直流预测。

  还有一点与4×4块的不同,就是要对预测值进行低通滤波,以提高预测的精确度。新的8×8帧内预测中,给出了一个简单的二阶低通滤波器,它在预测之前被用来重建亮度的参考象素值。经过滤波的参考象素按照9种模式的预测方法进行预测。

  8×8的整数变换

  H.264/AVC第一版中,对所有的残差块采用了4×4整数变换;对16×16亮度块进行帧内预测;整数变换后的16个DC系数采用4×4哈达玛变换,色度块的DC系数采用2×2哈达码变换。

  4×4整数变换除了算法复杂度低外,还可以有效地降低块效应。但是,对于大尺寸、高保真的视频,须要很好地保存图像的细节和纹理,这就需要更大尺寸的变换。为了达到各方面的平衡,FRExt引入了8×8整数变换,且编码器可以在宏块级自适应地选择4×4或8×8变换。在制定H.264/AVC标准之前,曾提出可变块尺寸的变换,其算法复杂度要低一些。

H.264/AVC视频压缩编码标准的新进展

图4 用于8×8空间亮度预测的样本

  8×8正变换和逆变换都可以通过快速蝶形算法实现,对于n比特的输入视频,只需要(8+n)比特的运算动态范围。8×8变换蝶形算法的复杂度只略高于4×4变换。

  新的变换同时要求相应的量化方法。FRExt在第一版的基础上做了扩展,与MPEG-2一样可以选择量化矩阵进行量化,而量化矩阵可以提高图像的主观质量。同时,CABAC也做了改进,增加了3个内容模型,而CAVLC把8×8的系数分为4组4×4的系数。

H.264/AVC视频压缩编码标准的新进展

表1 FRExt中的二维8×8变换矩阵

  须要指出的是,编码器可以对每一个宏块选择4×4或8×8变换,但变换尺寸的选择过程受到两种约束:(1)对于帧内预测,只有在采用8×8亮度块的预测时,选择8×8整数变换;(2)对于帧间预测,宏块中包含一个或多个小于8×8的块(4×8、8×4、4×4),必须采用4×4整数变换。

    本文作者郭晓强先生,国家广播电影电视总局广播科学研究院博士;解伟先生,北京邮电大学博士研究生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python注释及语句分类

注释 注释就是:注解,解释。 主要用于在代码中给代码标识出相关的文字提示(提高代码的可读性) 或 调试程序。Python中注释分为两类: 1.单行注释 : 单行注释以 # 号开头,在当前行内,# 号后面的内容就是注释…

【机器学习】回归误差:MSE、RMSE、MAE、R2、Adjusted R2 +方差、协方差、标准差(标准偏差/均方差)、均方误差、均方根误差(标准误差)、均方根解释

我们通常采用MSE、RMSE、MAE、R2来评价回归预测算法。 1、均方误差:MSE(Mean Squared Error) 其中,为测试集上真实值-预测值。 def rms(y_test, y): return sp.mean((y_test - y) ** 2) 2、均方根误差:RMSE&#xff…

大院大所合作对接会7天倒计时!亮点抢先看

为什么80%的码农都做不了架构师?>>> 推动产业特色发展,提升企业自主创新能力,加快成果转化落地,继江苏发展大会之后,围绕“聚力创新”,7月5日-6日,中国江苏大院大所合作对接会暨第六…

通过取父级for循环的i来理解闭包,iife,匿名函数

在使用for循环的时候,假如需要在循环体中添加一个匿名函数处理其他的事情,那么,在这个匿名函数内,如果需要用到对应的i,因为闭包的缘故,循环体循环结束后才返回i,所以i最终为最后一次的数值。闭…

H.264将普及 视频编码讲坛之H.264前世今生

随着HDTV等高清资源的兴起,H.264这个规范频频出现在我们眼前,HD-DVD和蓝光DVD均计划采用这一标准进行节目制作。而且自2005年下半年以来,无论是NVIDIA还是ATI都把支持H.264硬件解码加速作为自己最值得夸耀的视频技术。而数码播放器领域也吹来…

【机器学习】岭回归

import numpy as npimport matplotlib.pyplot as plt %matplotlib inlinefrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import mean_squared_error,r2_score from sklearn import datasets# CV crosss validation :交叉验证 from skl…

Keepalived 添加脚本配置监控haproxy方案

作者:风过无痕-唐出处:http://www.cnblogs.com/tangyanbo/ 上一篇文章已经讲到了keepalived实现双机热备,且遗留了一个问题 master的网络不通的时候,可以立即切换到slave,但是如果只是master上的应用出现问题的时候&am…

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

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

【机器学习】总结:线性回归求解中梯度下降法与最小二乘法的比较

在线性回归算法求解中,常用的是最小二乘法与梯度下降法,其中梯度下降法是最小二乘法求解方法的优化,但这并不说明梯度下降法好于最小二乘法,实际应用过程中,二者各有特点,需结合实际案例具体分析。 最后有…

struts2学习(3)struts2核心知识II

一、struts.xml配置:                                                   1.分模块配置方法: 比如某个系统多个模块,我们把资产管理模块和车辆管理模块,分开,在总…

【机器学习】逻辑斯蒂回归概率计算和手动计算对比

二分类,逻辑斯蒂回归概率计算 import numpy as np from sklearn import datasets from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_splitX,y datasets.load_iris(True)cond y!2X X[cond] y y[cond]resul…

【机器学习】六种算法在人脸补全中的应用比较(K紧邻,线性,决策树,岭回归,套索回归,ElasticNet)

需求: 根据人的上半边脸预测下半边脸,用各种算法取得的结果与原图比较 思考: 这是一个回归问题,不是分类问题(人脸数据不固定) 数据集一共包含40个人,每一个人10张照片,分布规律 每…

QuickTime文件格式解析

QuickTime文件格式解析Peter Lee 2008-06-14 一、简介 QuickTime是Apple公司开发的一套完整的多媒体平台架构,可以用来进行多种媒体的创建,生产,和分发,并为这一过程提供端到端的支持:包括媒体的实时捕捉,…

python的数据类型转换

数据类型转换 将数据由当前类型变化为其他类型的操作就是数据类型转换。数据类型转换分为两类,分别是自动数据类型转换 和 强制数据类型转换。 自动转换(隐式转换) 自动转换时程序根据运算要求进行的转换,不许要人工干预。 1.自动类型转换不需要人工干…

Linux文件属性及如何修改文件属性

ls -al:显示文件的文件名与相关属性并列出所有文件详细的权限与属性 dr-xr-x---. 7 root root 4096 Apr3 12:31 . 权限 连接 所有者 用户组 文件容量 修改日期 文件名 第一个字符代表这个文件是“目录,文件&#x…

SyntaxError:identifier starts immediately after numeric literal

1、错误描写叙述2、错误原因因为在改动方法传參的过程,须要传个id,可是这个id是字符串类型,传入的是数值型3、解决的方法在传參时,须要加入“”,变成字符串类型User.modify("id");

【数据分析】reshape(-1,1)和numpy的广播机制

在创建DataFrame的时候常常使用reshape来更改数据的列数和行数。 reshape可以用于numpy库里的ndarray和array结构以及pandas库里面的DataFrame和Series结构。 源数据 reshape函数 reshape(行,列)可以根据指定的数值将数据转换为特定的行数和…

AVI文件规范

AVI文件规范PeterLee 2007-10-14 一、AVI文件简介 AVI的英文全称为Audio Video Interleaved,即音频视频交错格式,是将语音和影像同步组合在一起的文件格式。AVI于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。AVI文件格式…

tomcat jdbc SlowQueryReport的实现解读

为什么80%的码农都做不了架构师?>>> ##序 tomcat提供了JdbcInterceptor可以用来监控jdbc的执行情况,默认提供了好几个现成的interceptor可以用,SlowQueryReport以及SlowQueryReportJmx就是其中的两个。 ##JdbcInterceptor的基本原…

【机器学习】Bagging和Boosting的区别(面试准备)

Baggging 和Boosting都是模型融合的方法,可以将弱分类器融合之后形成一个强分类器,而且融合之后的效果会比最好的弱分类器更好。 Bagging: 先介绍Bagging方法: Bagging即套袋法,其算法过程如下: 从原始样本集中抽取训…