H.264中的整数变换原理
H.264/AVC中的整数变换与DCT变换的比较
H.264/AVC中的整数变换与DCT变换的比较作者:杜路泉王泽勇王黎高晓蓉来源:《现代电子技术》2008年第20期摘要:数字视频技术在通信和广播领域获得了日益广泛的应用,视频信息和多媒体信息在网络中的处理和传输成为当前我国信息化中的热点技术。
运动图像专家组和视频编码专家组给出一种更好的标准,确定为MPEG-4标准的第十部分,即H.264/AVC。
简述H.264的研究意义及DCT的原理。
为了减少运算量,分析H.264中如何对宏块的整数变换,详述H.264的编码变换的方法,给出整数变换方法与传统的DCT的区别和联系,并给出H.264的整数变换方法的快速算法即蝶形算法,这与传统的DCT变换是不同的。
关键词:DCT;H.264;编码;蝶形算法;视频信息中图分类号:TP391文献标识码:B文章编号:1004373X(2008)2013103Comparison between Integer Transf o rm and DCT in H.264/AVCDU Luquan,WANG Zeyong,WANG Li,GAO Xiaorong(College of Sciences,Southwest Jiaotong University,Chendu,610031,China)Abstract:Digital video is widely applied in communications and broadcasting.Video and media inf o rmation dealt with in internet is hotspot in China.MPEG and VCEG give a better standard,which is called H.264/AVC.In the article,the purpose of research on H.264 and the theory of DCT are explained.To reduce calculation,integer transf o rm of macro block in H.264 is analysed.Coding ways in H.264,and difference between integer transf o rm and DCT are expatiated.The fast way of integer transf o rm called program of butterfly is shown.This is different from traditional DCT.Keywords:DCT;H.264;coding;program of butterfly;video inf o rmationH.264作为新一代的视频压缩标准,是由ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(运动图像编码专家组)成立的联合视频小组(JVT:joint video team)共同开发的[1]。
H.264/AVC中的整数变换与DCT变换的比较
C mp r o ew e n ee r nfr a d D T i . 6 / C o a i nb t enI tgrT a som n C H 2 4 AV s n
D L q a , A e o g WANG L , AO X a r n U u u n W NG Z y n , iG i o g o
当视 频 编 码 专 家组 给 出一 种 更 好 的 标 准 , 定 为 MP G 一 确 E 4标 准 的 第 十 部 分 , H. 6 / 即 2 4 AVC。简 述 H. 6 2 4的 研 究 意 义及 D T 的 原 理 。为 了减 少 运 算 量 , 析 H. 6 C 分 2 4中如 何 对 宏 块 的 整 数 变换 , 详 述 H. 6 2 4的 编 码 变 换 的 方 法 , 出整 数 变 换 方 法 与 传 统 的 D T 的 区 别 和 联 系 , 给 出 H. 6 给 C 并 2 4的 整 数 变 换 方 法 的 快速 算 法
a l e Co ng wa n H .26 a d dif r nc t e n nt g r t a s or d DCT r xp it d.The f s nays d. di ys i 4, n fe e e be w e i e e r n f m an a e e ata e a t way ofi t ge ne r
H. 6 2 4作 为新 一代 的视 频压 缩标 准 , 由 I —T 是 Tu
的 VC G( 频 编 码 专 家 组 ) IO/E 的 M P G( E 视 和 S IC E 运
亮 度数 据 的 1 6个 4 ×4块 的 DC系数 ( 个 小块 1个 , 每
共 1 6个 ) 行 第 二 次 4× 4块 的 变 换 ; 色 度 数 据 的 进 对
新一代的视频编码标准H.264
新一代的视频编码标准H.264文 / 摘要:H.264是国际电联最新通过的新一代甚低码率视频编码标准。
本文旨在阐述H.264视频编码标准的关键技术,并介绍了其在视频会议中的应用。
关键词:H.264 视频编码多帧预测视频会议一、引言ITU-T和ISO/IEC JTC1是目前国际上制定视频编码标准的正式组织,ITU-T的标准称之为建议,并命名为H.26x 系列,比如H.261、H.263等。
ISO/IEC的标准称为MPEG-x,比如MPEG-1、MPEG-2、MPEG-4等。
H.26x系列标准主要用于实时视频通信,比如视频会议、可视电话等;MPEG系列标准主要用于视频存储(DVD) 、视频广播和视频流媒体(如基于Internet、 DSL的视频,无线视频等等)。
除了联合开发H.262/MPEG-2标准外,大多数情况下,这两个组织独立制定相关标准。
自1997年,ITU-T VCEG与ISO/IEC MPEG再次合作,成立了Joint Video Team (JVT),致力于开发新一代的视频编码标准H.264。
1998年1月,开始草案征集;1999年9月,完成了第一个草案;2001年5月,制定了其测试模式TML-8;2002年6月,JVT第5次会议通过了H.264的FCD板;2002年12月,ITU-T 在日本的会议上正式通过了H.264标准,并于2003年5月正式公布了该标准。
国际电信联盟将该系统命名为H.264/AVC,国际标准化组织和国际电工委员会将其称为14496-10/MPEG-4 AVC。
二、H.264标准概述H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。
但它采用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求。
H.264视频编码标准分析和算法优化
H.264编码标准的分析和算法优化一、研究背景:随着社会的不断进步和多媒体信息技术的发展,人们对信息的需求越来越丰富,方便、快捷、灵活地通过语音、数据、图像与视频等方式进行多媒体通信已成不可或缺的工具。
其中视觉信息给人们直观、生动的形象,因此图像与视频的传输更受到广泛的关注。
然而,视频数据具有庞大的数据量,以普通的25帧每秒,CIF格式(分辨率为352×288)的视频图像为例,一秒钟的原始视频数据速率高达3.8M字节。
不对视频信号进行压缩根本无法实时传输如此庞大的数据量,因此,视频压缩技术成为研究热点。
随着近几年来视频图像传输领域的不断扩展,以往的标准己经难于适应不同信道的传输特征及新兴的应用环境。
为此,ISO/IEC&ITU-T共同开发了最新视频编码标准H.264/AVC。
相对以前的视频编码标准,H.264集成了许多新的视频压缩技术,具有更高的压缩效率和图像质量。
在同等的图像质量条件下,H.264的数据压缩比是应用于当前DVD系统MPEG-2的2~3倍,比MPEG-4高1.5~2倍,并且具有更好的网络友好性。
但是H.264高压缩比的代价是编码器计算复杂度大幅度地提高。
因此在保持编码效率几乎不变的同时尽可能提高编码速度是H.264/AVC视频编码标准能否得到广泛应用的关键。
在上述研究背景下,本文深入探讨了H.264/AVC标准,分析了编码器主要耗时模块的工作原理,提出三种降低H.264/AVC高计算复杂度的优化算法――快速帧内预测模式选择算法、快速帧间预测模式选择算法以及快速运动估计算法。
实验结果表明:本文所提快速算法都可大幅度地降低H.264编码器的计算复杂度,并且保持基本不变的编码效率。
二、新一代视频编码标准H.264简介:编码标准演进过程:H.261 MPEG-1 MPEG-2 H.263 MPEG-4从视频编码标准的发展历程来看,视频编码标准都有一个不断追求的目标:在尽可能低的码率(或存储容量)下获得尽可能好的图像质量。
H.264量化反量化反变换过程
add4x4_idct( uint8_t *p_dst, int16_t dct[4][4] )//这里进行反变换+预测块的值 {
int16_t d[4][4]; int16_t tmp[4][4]; int x, y; int i;
for( i = 0; i < 4; i++ )//进行一维反DCT变换 {
Wr(i, j) = (Wr(i, Vj) (i, j) ) << (QP / 6) (i, j = 0...3)
#define DEQUANT_SHL( x ) \ dct[y][x] = ( dct[y][x] * dequant_mf[i_mf][y][x] ) << i_qbits//这是在进行 AC 量化系数的
static int quant_4x4( int16_t dct[4][4], uint16_t mf[16], uint16_t bias[16] ) {
int i, nz = 0; for( i = 0; i < 16; i++ )
QUANT_ONE( dct[0][i], mf[i], bias[i] ); return !!nz; }
nz |= (coef); \
} 跟踪代码:
i=0:
dct[0][i]=0x0006,
i=1:
dct[0][i]=0xfffc,
mf[i]=0x05d2, mf[i]=0x03a8,
i=2:
dct[0][i]=0x0016,
mf[i]=0x05d2,
i=3:
dct[0][i]=0x0030,
mf[i]=0x03a8,
参考《H.264 的整数 DCT 变换编码与量化过程》
H.264压缩算法详解
H.264压缩算法详解H.264是一种视频高压缩技术,全称是MPEG-4 AVC,用中文说是“活动图像专家组-4的高等视频编码”,或称为MPEG-4 Part10。
它是由国际电信标准化部门ITU-T和规定MPEG的国际标准化组织ISO/国际电工协会IEC共同制订的一种活动图像编码方式的国际标准格式,这是我们叫惯了的MPEG中的一种,那为什么叫H.264呢?原来国际电信标准化部门从1998年就H.26L的H.26S两个分组,前者研制节目时间较长的高压缩编码技术,后者则指短节目标准制订部门。
H.26S 的标准化技术的名称为H.263,听起来很耳生,但实质上却早在用了,还被骂得很激烈。
因为,H.263先入为大,一直以MPEG-4大内涵的名字在用。
H.263的全称为MPEG-4 Visual或MPEG-4 Pall Ⅱ,即MPEG-4视频简单层面的基础编码方式。
200 1年后,国际电信标准化部门ITU-T和MPEG的上级组织国际标准化组织ISO/国际电气标准会议IEC成立了联合视频组JVT,在H.26L 基础进行H.264的标准化。
2002年12月9日~13日,在日本香川县淡路岛举行的MPEG聚会上确定了相关技术的规格。
规格书定稿后,2003年3月17日,H. 364的技术格式最终稿国际标准规格(FDIS)被确立。
目前软件和LSI芯片,服务及设备也都进入了使用阶段。
格式书中,列出了比特流规定,解码必要格式,和可供参考的编码记载。
为了不引起误解,ITU-T推荐使用H.264作为这一标准的正式名称。
实际上,MPEG-4里还有MPEG-4 Audio和MPEG-4 System的不同规格。
MPEG-4挨骂是因为MPEG-4 Visual许可收费离谱引起的。
别以为有了专利就可以随意向人要钱了,专利的最终目的的是使全社会的智力资料更合理地使用,防止重复劳动,并不是犒赏最先发明者。
按唯美史观,当社会技术发展到某一阶段时,新技术必然会出现。
H264标准详解
H264标准详解H.264 标准详解JVT(Joint Video T eam,视频联合工作组)于2001 年12 月在泰国Pattaya 成立。
它由ITU-T和ISO 两个国际标准化组织的有关视频编码的专家联合组成。
JVT 的工作目标是制定一个新的视频编码标准,以实现视频的高压缩比、高图像质量、良好的网络适应性等目标。
目前JVT 的工作已被ITU-T 接纳,新的视频压缩编码标准称为H.264 标准,该标准也被ISO 接纳,称为A VC(Advanced Video Coding)标准,是MPEG-4 的第10 部分。
H.264 标准可分为三档:基本档次(其简单版本,应用面广);主要档次(采用了多项提高图像质量和增加压缩比的技术措施,可用于SDTV、HDTV 和DVD 等);扩展档次(可用于各种网络的视频流传输)。
H.264 不仅比H.263 和MPEG-4 节约了50%的码率,而且对网络传输具有更好的支持功能。
它引入了面向IP 包的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输。
H.264 具有较强的抗误码特性,可适应丢包率高、干扰严重的无线信道中的视频传输。
H.264 支持不同网络资源下的分级编码传输,从而获得平稳的图像质量。
H.264 能适应于不同网络中的视频传输,网络亲和性好。
一、H.264 视频压缩系统H.264 标准压缩系统由视频编码层(VCL)和网络提取层(Network Abstraction Layer,NAL)两部分组成。
VCL 中包括VCL 编码器与VCL 解码器,主要功能是视频数据压缩编码和解码,它包括运动补偿、变换编码、熵编码等压缩单元。
NAL 则用于为VCL 提供一个与网络无关的统一接口,它负责对视频数据进行封装打包后使其在网络中传送,它采用统一的数据格式,包括单个字节的包头信息、多个字节的视频数据与组帧、逻辑信道信令、定时信息、序列结束信号等。
包头中包含存储标志和类型标志。
H264编码原理以及I帧、B和P帧详解,H264码流结构分析
H264编码原理以及I帧、B和P帧详解,H264码流结构分析H264码流结构分析/chenchong_219/article/details/379905411、码流总体结构:h264的功能分为两层,视频编码层(VCL)和⽹络提取层(NAL)。
H.264 的编码视频序列包括⼀系列的NAL 单元,每个NAL 单元包含⼀个RBSP。
⼀个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成,其中 Start Code ⽤于标⽰这是⼀个NALU 单元的开始,必须是"00 00 00 01" 或"0000 01"。
其中RBPS有分为⼏种类型:NAL的解码单元的流程如下:2、 NAL Header:占⼀个字节,由三部分组成forbidden_bit(1bit),nal_reference_bit(2bits)(优先级),nal_unit_type(5bits)(类型)。
forbidden_bit:禁⽌位。
nal_reference_bit:当前NAL的优先级,值越⼤,该NAL越重要。
nal_unit_type :NAL类型。
参见下表⼏个例⼦:3、 ffmpeg解析H264流程分析这是⼀段实际的码流在上⾯的图⽚中,共有三个起始码:0x00 0000 01const uint8_t*ff_h264_decode_nal(H264Context*h, const uint8_t *src,int *dst_length, int*consumed, int length)中分析过程为:h->nal_ref_idc= src[0] >> 5;h->nal_unit_type= src[0] & 0x1F;此处src[0]即为06,写成⼆进制位0000 0110,则h->nal_ref_idc = 0,h->nal_unit_type = 6可以判断这个NALU类型为SEI,重要性优先级为0。
视频通讯 视频技术H.264与AVS比较
视频编码技术在过去几年最重要的发展之一是由ITU和ISO/IEC的联合视频小组 (JVT)开发了H.264/MPEG-4 AVC[8]标准。
在发展过程中,业界为这种新标准取了许多不同的名称。
ITU在1997年开始利用重要的新编码工具处理H.26L(长期),结果令人鼓舞,于是ISO决定联手ITU组建JVT并采用一个通用的标准。
因此,大家有时会听到有人将这项标准称为JVT,尽管它并非正式名称。
ITU在2003年5月批准了新的H.264标准。
ISO在2003年10 月以MPEG-4 Part 10、高级视频编码或AVC的名称批准了该标准。
H.264 实现的改进创造了新的市场机遇H.264/AVC在压缩效率方面取得了巨大突破,一般情况下达到MPEG-2及MPEG-4简化类压缩效率的大约2倍。
在JVT进行的正式测试中,H.264在85个测试案例中有78%的案例实现1.5倍以上的编码效率提高,77%的案例中达到2倍以上,部分案例甚至高达4倍。
H.264 实现的改进创造了新的市场机遇,如:600Kbps的VHS品质视频可以通过ADSL线路实现视频点播;高清晰电影无需新的激光头即可适应普通 DVD。
H.264标准化时支持三个类别:基本类、主类及扩展类。
后来一项称为高保真范围扩展 (FRExt)的修订引入了称为高级类的4个附加类。
在初期主要是基本类和主类引起了大家的兴趣。
基本类降低了计算及系统内存需求,而且针对低时延进行了优化。
由于B帧的内在时延以及CABAC的计算复杂性,因此它不包括这两者。
基本类非常适合可视电话应用以及其他需要低成本实时编码的应用。
主类提供的压缩效率最高,但其要求的处理能力也比基本类高许多,因此使其难以用于低成本实时编码和低时延应用。
广播与内容存储应用对主类最感兴趣,它们是为了尽可能以最低的比特率获得最高的视频质量。
尽管H.264采用与旧标准相同的主要编码功能,不过它还具有许多与旧标准不同的新功能,它们一起实现了编码效率的提高。
H.264学习之DCT与IDCT
H.264/A VC 学习之整数变换与量化一、整数变换(Transform)1、为什么进行变换空间图像数据通常是很难压缩的:相邻的采样点具有很强的相关性(相互关联的),而且能量一般平均分布在一幅图像中,从而要想丢掉某些数据和降低数据精度而不明显影响图像质量,就要选择合适的变换,方法,使图像易于被压缩。
2、H.264对变换的要求(与传统DCT 变换的区别)H.264变换是建立在DCT 的基础上但又与传统DCT 不同,表现在:①它是整数变换,其中所有的运算都是整数运算;②如果按照标准进行反变换,将不会产生解码端与编码端的误匹配问题;③核心运算部分只用到加法和移位,不需要乘除运算;④变换中系数的缩放被融入到量化器中。
在本篇的学习中,后面将会讲述整个变换与量化及反变换与反量化过程,从而对以上四点有一个清晰的理解。
3、为什么要进行整数变换传统的变换中,残差解码包含了漂移的可能性,即编码与解码的不匹配。
而漂移的原因是逆变换不完全是整数运算。
传统的设计与IDCT 浮点实现的精度有关。
一方面,精度的选择适应特殊结构的灵活性;但另一方面,这灵活性的代价是预测中引入了漂移。
在线性DCT 变换中,Hx X =)21cos[(2).(Nkn n N c n k H H kkn +==它的缺点就是是无理数,即在进行直接变换或者逆变换时,可能不能确实得到同样的返回数据。
),(n k H 因此,用一个有整数输入的正交矩阵来代替H 是合适的。
且可以采用蝶形算法减少加法和乘法次数。
图1蝶形算法在本篇后文对变换公式的推导可以看到进行整数变换的可能性。
4、整数变换的过程(1)输入为预测残差,输出为准备进行熵编码的数据;(2)对16x16的亮度分量的16个4x4块进行DCT变换后,将每个4x4块的DC系数(还没有经过量化)提取出来,组成一个4x4的luma DC块,进行4x4的Hadamard变换;(3)对8x8chroma分量(色度分量)的4个4x4块进行DCT变换后,也将每个4x4块的DC系数提取出来,组成一个2x2chroma DC块,对其进行2x2的Hadamard变换。
H.264视频编码介绍资料
H.264解码器
H.264采用的新技术
• H.264标准中诸如帧间预测、变换、量化、熵编码等基本功能模块与 前几个标准(MPEG-1, MPEG-2, MPEG-4, H.261, H.263)并无太大 • • • • • • • 区别,变化主要体现在功能模块的具体细节上。 分层设计 帧间预测编码 帧内预测编码 整数变换 量化处理 熵编码 环路滤波
TTS图解
• 如图所示,搜索步骤如下:
– 第一步:从搜索起点开始,以最大搜索 长度的一半为步长,在周围距离步长的 8个点处进行块匹配计算并比较,图中 用正方形表示,1号为该次搜索最优点。 – 第二步:将步长减半,中心点移到上一 步的最小匹配点,重新在周围距离步长 的8个点处进行块匹配计算并比较,图 中用圆形表示,2号为该次搜索最优点。 – 第三步:在上一步得到的最小匹配点的 中心及周围8个点处找出最匹配点,该 点即为所求,图中用菱形表示,3号为 该次搜索最优点
块的搜索与匹配
• 搜索起点的选择很重要。 • 块搜索算法:
①全搜索法FS ②三步搜索法TTS ③菱形搜索法DS ④六边形搜索法 注:有不少对上述方法的改进及新方法。
• 块匹配准则:
①最小绝对差MAD ②最小均方误差MSE ③归一化互相关函数NCCF ④求和绝对误差SAD
H.264中的整数DCT及其蝶形算法
0 引言
D C T即离散余 弦 变换 , 是 傅 里 叶变换 的 实数 部 分, 因其 与傅 里 叶变换 能达 到相 同功 能 , 数 据量 又不 大而被 广泛 采 用 H. 2 6 4是 应 用 非 常 广 泛 的视 频 图 像 编码 标准 , 其频 域 图像预 处理 采 用 的是 基 于 4× 4 图像块 的整 数 D C T 。本 文研 究 了如 何 由 4× 4浮 点 D C T得到 4×4整 数 D C T, 并 设 计 了 4× 4整 数 D C T 的蝶形 算法 , 比较 了蝶形 算 法与普 通算 法 的运算 量 。
S UN S h a o . 1 i n, TANG We i 。 REN Xi a o . q i n g, S HEN Li . h u a
( C o mmu n i c a t i o n T r a i n i n g B a s e o f P L A Ge n e r a l S t a f He a d q u a r t e r s , X u a n h u a 0 7 5 1 0 0, He i b e i P r o v i n c e , C Wn a )
其 中, N× N 变换矩 阵 A 中的系数 :
c s ( 3 )
设 相应 的 4× 4浮点 D C T变换矩 阵 A 为 :
A =
1 4× 4浮 点 D C T
二 维 N ×N 图 像 块 的 D C T可 以理 解 为 先 对 图 像块 的 每行进 行一 维 D C T, 然 后 对 经行 变 换 的块 的
Ab s t r a c t : H. 2 6 4 i s a v i d e o c o d i n g s t a n d a r d i s w i d e l y u s e d .T h e f r e q u e n c y d o ma i n i ma g e p r e p r o c e s s i n g u s e d i s b a s e d o n t h e 4 x 4 i ma g e b l o c k i n t e g e r DC T .T h i s p a p e r s t u d i e s h o w t o f r o m 4 ×4 l f o a t i n g — p o i n t
H.264整数变换的性能研究
角 的系数 而不严 重影 响图像 质量。
r 0一
o
』 o( /fcs 。, 去cs 罢)  ̄ o()矩阵系数为无理数 , 。 w 通常会引起变换和反变换
的初始值 不一致 。为了简化 变换运算 , d 把 近似等 于 1 , / 同时为了保证 2
变换 的正交性 ,也 要作适 当的调 整 : l ,= / 5再 把矩阵 c b a / b 、/, =2 2 的第 2
b b —
—b n —
其中:
n
¨ U U
逆 D T变换f ) C 8×8公式 如下 :
一
1
,
6 。 )= S ) = s , JO c詈 c C警 ( (
{ ∑∑c o s
… 0m 0
c 型 o s
公式 ( 可等价改写为以下形式 : 3 )
其 = c l_. 专;一w1) ( _ 1 7
~
现, 实验结果 与讨论在第 4 分给 出 , 5 部 第 部分 为小结 。
2D .CT变 换
D T 图像和视 频编码领域 有着非 常广泛 的应用 , C 是 为了去 C在 DT 除 图像像 素之 间的空间相关性 , 压缩 图像 的编码 码率 , 使得其远远小 于 直接传送 图像像 素所需要的码率 。一般来讲 , C 作用 于N× DT N的图像 块之上 , 通常先把 图像分割成许 多 NXN 大小 的块 , 然后用 D T C 对每一 个块逐一进行 变换 , 将图像块从时域变换 到频 域 , 只有较少的几个位置 为非零 值 , 大的数值集 中在直流 和低频成分 附近 。由于大多数 图像 较 的高频 成分较少 , 加之人 眼对高频 成分 不是很敏感 , 以可 以用较大 的 所 量化 , 只要直 流和低频成 分得 以比较 完好的保 留就不会对 视觉效果造 成影 响 。其性能 比诸如 wa h l 变换要好 , s 在所 有的次优 变换 中性能也 非常显著 。D T C 变换( X8 8 公式如下 : )
H.264/AVC中的整数变换与DCT变换的比较
H.264/AVC中的整数变换与DCT变换的比较作者:杜路泉王泽勇王黎高晓蓉来源:《现代电子技术》2008年第20期摘要:数字视频技术在通信和广播领域获得了日益广泛的应用,视频信息和多媒体信息在网络中的处理和传输成为当前我国信息化中的热点技术。
运动图像专家组和视频编码专家组给出一种更好的标准,确定为MPEG-4标准的第十部分,即H.264/AVC。
简述H.264的研究意义及DCT的原理。
为了减少运算量,分析H.264中如何对宏块的整数变换,详述H.264的编码变换的方法,给出整数变换方法与传统的DCT的区别和联系,并给出H.264的整数变换方法的快速算法即蝶形算法,这与传统的DCT变换是不同的。
关键词:DCT;H.264;编码;蝶形算法;视频信息中图分类号:TP391文献标识码:B文章编号:1004373X(2008)2013103Comparison between Integer Transf o rm and DCT in H.264/AVCDU Luquan,WANG Zeyong,WANG Li,GAO Xiaorong(College of Sciences,Southwest Jiaotong University,Chendu,610031,China)Abstract:Digital video is widely applied in communications and broadcasting.Video and media inf o rmation dealt with in internet is hotspot in China.MPEG and VCEG give a better standard,which is called H.264/AVC.In the article,the purpose of research on H.264 and the theory of DCT are explained.To reduce calculation,integer transf o rm of macro block in H.264 is analysed.Coding ways in H.264,and difference between integer transf o rm and DCT are expatiated.The fast way of integer transf o rm called program of butterfly is shown.This is different from traditional DCT.Keywords:DCT;H.264;coding;program of butterfly;video inf o rmationH.264作为新一代的视频压缩标准,是由ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(运动图像编码专家组)成立的联合视频小组(JVT:joint video team)共同开发的[1]。
H.264hp与h.264m的区别
H.264 HP与H.264 MP有什么区别H.264有四种画质级别,分别是BP、EP、MP、HP,想要说明H.264 HP与H.264 MP的区别就要讲到H.264的技术发展了H.264 视频编码技术在视频采集、后期制作等网络视频服务领域的应用,在有限的带宽资源下进一步提高图像质量。
H.264有四种画质级别,分别是BP、EP、MP、HP,想要说明H.264 HP与H.264 MP的区别就要讲到H.264的技术发展了H.264/AVC是由ITU-TVCEG与ISO/IECMPEG组成的联合专家行动组JVT共同制定并于2003年5月发布的视频编解码标准,在ITU-T体系内被称为H.264,在ISO/IEC体系内被称为MPEG4part10-AVC,所以通常被称为H.264/AVC或简称H.264。
H.264 视频编码国际标准的技术发展H.264 是由ITU-T 的VCEG(视频编码专家组)和ISO/IEC 的MPEG(活动图像编码专家组)联合组建的联合视频组(JVT:joint video team)提出的一个新的数字视频编码标准,它既是ITU-T 的H.264,又是ISO/IEC 的MPEG-4 的第10 部分。
H.264标准从1998 年1 月份开始草案征集,1999年9月,完成第一个草案,2001年5月制定了其测试模式TML-8,2002年6月的JVT第5次会议通过了H.264的FCD板。
到2003 年7 月,整套H.264 (ISO/IEC 14496-10)规范定稿。
2005年1 月,MPEG 组织正式发布了H.264 验证报告,从各个方面论证了H.264 的可用性以及各种工具集的效果,从标准的角度,印证H.264 的成熟性。
从标准制定到颁布,H.264 一直是ITU、MPEG、DVD、DVB、3GPP 等工业化组织共同推进的视频编码国际标准。
其实国内业界通常所说的MPEG-4 是MPEG-4 的第2 部分。
H.26x系列视频编码基础知识
H.26x系列视频编码基础知识国际上有两个负责数字视频编码技术的标准化组织。
一个是ISO(国际标准组织)下属的MPEG(Motion Picture Expert Group,运动图像专家组);另一个是ITU-T(国际电联)下属的VCEG(Video Code Expert Group,视频编码专家组)。
以上两个标准化组织制定的相关编码标准都获得了广泛的应用。
MPEG制定的标准有MPEG-1、MPEG-2、MPEG-4、MPEG-7和MPEG-21,这些标准主要应用于视频存储(DVD)、广播电视、网络流媒体等。
VCEG制定的标准有H.261、H.262、H.263、H.264、H.265,这些标准应用于实时视频通信领域。
两个组织也共同制定了一些标准,例如H.262和H.264。
H.262等同于MPEG-2标准。
2003年5月,ITU-T和ISO的联合视频组JVT(Joint Video Team)发布了H.264(ISO将其纳为MPEG-4的Part10),业界称其为AVC(Advanced Video Codec,先进视频编解码)。
H.26x和MPEG两大阵营在H.264上完成了统一。
1、H.261H.261即其速率为64kbps的整数倍(1~30倍)。
它最初是针对在ISDN(综合业务数字网)上双向声像业务(特别是可视电话、视频会议)而设计的。
H.261是最早的运动图像压缩标准,它只对CIF和QCIF两种图像格式进行处理,每帧图像分成图像层、宏块组(GOB)层、宏块(MB)层、块(Block)层来处理;并详细制定了视频编码的各个部分,包括运动补偿的帧间预测、DCT(离散余弦变换)、量化、熵编码,以及与固定速率的信道相适配的速率控制等部分。
实际的编码算法类似于MPEG算法,但不能与后者兼容。
H.261在实时编码时比MPEG所占用的CPU 运算量少得多,此算法为了优化带宽占用量,引进了在图像质量与运动幅度之间的平衡折衷机制。
H264编码原理详解
H264编码原理详解前言•在日常生活中我们知道,电脑中的视频文件先要通过视频采集设备对物体进行采集,然后通过编码核心部件得到mp4,rmvb等格式进行保存。
有没有可能不经过上述核心编码部件采集之后直接进行显示呢?答案是可以的。
那为什么还要进行编码呢?答案是原始采集到的视频数据为YUV格式,这种格式不经过处理的话特别大,对于网络传输和永久保存非常不利,为了解决这个问题,就需要对原原始的视频数据进行压缩处理。
而H264则是目前一种流传广泛,成熟的视频压缩算法。
•先来看一个例子在学习H.264编码之前,我们先了解一下在手机相机拍摄视频的过程,如果Camera采集的YUV图像不做任何处理进行传输,那么每秒钟需要传输的数据量是多少?Camera采集的YUV图像通常为YUV420,根据YUV420的采样结构,YUV图像中的一个像素中Y、U、V分量所占比例为1:1/4:1/4,而一个Y分量占1个字节,也就是说对于YUV图像,它的一个像素的大小为(1+1/4+1/4)Y=3/2个字节。
如果直播时的帧率设置为30fps,当分辨率为1280x720,那么每秒需要传输的数据量为1280720(像素)30(帧)3/2(字节)=39.5MB;当分辨率为1920x720,那么每秒需要传输的数据量接近60MB,这对于手机的存储空间有很大考验,因此,我们就必须在拍摄形成视频文件保存在本地之前对采集的视频数据进行压缩编码。
H26X简介H261•目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。
•H.261是1990年ITU-T制定的一个视频编码标准,属于视频编解码器。
设计的目的是能够在带宽为64kbps的倍数的综合业务数字网(ISDN forIntegrated Services Digital Network)上质量可接受的视频信号。
H.264编码原理
H.264通信1012 严亮 1020119208 一.原理H.264是一种高性能的视频编解码技术。
目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。
而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。
因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。
H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。
举个例子,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比达到惊人的102∶1!H.264为什么有那么高的压缩比?低码率(Low Bit Rate)起了重要的作用,和MPEG-2和MPEG-4 ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。
尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像,正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。
H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。
但它采用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求。
H.264介绍
klaus.wng@
I 帧所占数据的信息量比较大。 b) P 帧:前向预测编码帧 P 帧表示的是这一帧跟之前的一个关键帧(或 P 帧)的差别,解码时需要用之前缓 存的画面叠加上本帧定义的差别,生成最终画面。 (也就是差别帧,P 帧没有完整画面 数据,只有与前一帧的画面差别的数据) P 帧的预测与重构:P 帧是以 I 帧为参考帧,在 I 帧中找出 P 帧“某点”的预测值和 运动矢量,取预测差值和运动矢量一起传送。 在接收端根据运动矢量从 I 帧中找出 P 帧 “某点”的预测值并与差值相加以得到 P 帧“某点”样值,从而可得到完整的 P 帧。 P 帧特点: P 帧是 I 帧后面相隔 1~2 帧的编码帧; P 帧采用运动补偿的方法传送它与前面的 I 或 P 帧的差值及运动矢量(预测误差); 解码时必须将 I 帧中的预测值与预测误差求和后才能重构完整的 P 帧图像; P 帧属于前向预测的帧间编码。它只参考前面最靠近它的 I 帧或 P 帧; P 帧可以是其后面 P 帧的参考帧,也可以是其前后的 B 帧的参考帧; 由于 P 帧是参考帧,它可能造成解码错误的扩散; 由于是差值传送,P 帧的压缩比较高。 c) B 帧:双向预测内插编码帧 B 帧是双向差别帧,也就是 B 帧记录的是本帧与前后帧的差别(具体比较复杂,有 4 种情况,但我这样说简单些) ,换言之,要解码 B 帧,不仅要取得之前的缓存画面, 还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B 帧压缩率 高,但是解码时 CPU 会比较累。 B 帧的预测与重构: B 帧以前面的 I 或 P 帧和后面的 P 帧为参考帧,“找出”B 帧“某 点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在 两个参考帧中“找出(算出)”预测值并与差值求和,得到 B 帧“某点”样值,从而可得到 完整的 B 帧。 B 帧特点 B 帧是由前面的 I 或 P 帧和后面的 P 帧来进行预测的; B 帧传送的是它与前面的 I 或 P 帧和后面的 P 帧之间的预测误差及运动矢量; B 帧是双向预测编码帧; B 帧压缩比最高,因为它只反映丙参考帧间运动主体的变化情况,预测比较准确; B 帧不是参考帧,不会造成解码错误的扩散。 注:I、 B、 P 各帧是根据压缩算法的需要, 是人为定义的,它们都是实实在在的物理帧。 一般来说,I 帧的压缩率是 7(跟 JPG 差不多) ,P 帧是 20,B 帧可以达到 50。可见使用 B 帧能节省大量空间,节省出来的空间可以用来保存多一些 I 帧,这样在相同码率下,可以 提供更好的画质。 4. 压缩算法的说明 h264 的压缩方法: 分组:把几帧图像分为一组(GOP, 也就是一个序列),为防止运动变化,帧数不宜取多。 定义帧:将每组内各帧图像定义为三种类型,即 I 帧、B 帧和 P 帧; 预测帧:以 I 帧做为基础帧,以 I 帧预测 P 帧,再由 I 帧和 P 帧预测 B 帧; 数据传输:最后将 I 帧数据与预测的差值信息进行存储和传输。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 −1 −1 1
1⎤
2 −1
1 −1
2
⎥ ⎥ ⎥ ⎥(W ⎥ ⎥ ⎥ ⎥⎦
⎡1 ⎢⎢ 1 ) ⎢⎢⎢ 11 ⎣2
1 1
2 −1
−1
1 −1
2 −1
1
1⎤
−
1
⎥ ⎥
1 −1
⎥ ⎥ ⎥
2⎦
可以看出,只需加法和右移的操作即可完成反变换,而反变换的输入数据具有大的动态范围,所以造 成的误差很小。
0⎥⎢1 b⎥⎦⎢⎣d
−1 −1
−1 1
1 −d
⎥ ⎥ ⎦
⎢ ⎢ ⎣
x20 x30
x21 x31
x22 x32
x23 x33
⎥ ⎥ ⎦
⎢1 ⎢⎣1
−d −1
−1 1 ⎥⎢0
1
−
d
⎥ ⎦
⎢⎣0
0 0
a 0
0⎥ b⎥⎦
式中,d = c/b,B 是对角矩阵。因此,可以写成如下形式:
Y = (CXCT ) ⊗ E =
Y = BCXCT BT = BCXCT B
⎡a 0 0 0⎤⎡1 1 1 1 ⎤⎡x00 x01 x02 x03 ⎤⎡1 1 1 d ⎤⎡a 0 0 0⎤
= ⎢⎢0 b 0 0⎥⎥⎢⎢1 d
−d
−
1
⎥ ⎥
⎢ ⎢
x10
x11
x12
x13
⎥ ⎥
⎢⎢1
d
−1
−1
⎥ ⎥
⎢⎢0
b
0
0⎥⎥
⎢0 ⎢⎣0
0 0
a 0
⎟⎞ ⎟ ⎟ ⎟ ⎟⎠
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
1
1
1 1 2
1 1
2 −1
−1
1 −1
2 −1
1
1⎤
−
1
⎥ ⎥
1 −1
⎥ ⎥ ⎥
2⎦
同样地,将前置比例乘子矩阵Eb以整数精度合并到反量化过程,得到 4×4 整ห้องสมุดไป่ตู้变换的反变换的最终 表达式为
⎢⎡1
⎢
⎢1
X
= CbTWCb
=
⎢ ⎢⎢1
⎢
⎢⎣1
1
1 2 −1 2 −1
长度为 N 的一维序列的 x(n), n = 0, 1, ......, N −1的 DCT 变换定义为
∑ Y (k)
=
N −1
α (k) x(n) cos
2n
+1 kπ,n
=
0, 1,
...,
N
−1
n=0
2N
其中
⎧1
α
(k
)
=
⎪⎪ ⎨
N
⎪2
⎪⎩ N
k =0 k = 1, 2, ..., N −1
把上述变换写成矩阵形式,一个 4×4 的 DCT 变换表示为
⎥ ⎥ ⎥
⎣2 4 2 4⎦
= (H f XH f ) ⊗ E f
式中, a = 1/ 2, b = 2 / 5 ,Ef称为后置比例乘子矩阵。在H.264 标准的实现中将Ef以整数精度合并到
量化过程,这样 4×4 整数变换的最终表达式为
⎡1 1 1 1 ⎤ ⎡1 2 1 1 ⎤
W
=
Hf
XH
T f
=
相应地,DCT 的反变换可以由式()表示,即
X = CT (Y ⊗ E)C
系数 d = 2 −1 = 0.414213... 为无理数, 为方便计算做一个近似, 选择 d=7/16、3/8 和 1/2,取
d=1/2 时获得了最好的编码增益。为了保持矩阵 H 的正交性,即 H T H = I ,修改 b 的值,得到
b=
1= 2(1 + d 2 )
2/5
最后得到 a = 1/ 2 , c = db, 所以 c = 1/10 。
H.264 中所采用的 4×4 变换,当其基矩阵中包含比例因数时,就是通常文献中所说的“强相关变换” (HCT),基矩阵(HCT)可表示为
⎡ 1/ 2 ⎤⎡1 1 1 1 ⎤
( HCT
)
=
⎡a a a a ⎤⎡x00 x01 x02 x03 ⎤⎡a b a c ⎤
Y = HXH T = ⎢⎢b
c
−c
−
b⎥⎥
⎢ ⎢
x10
x11
x12
x13
⎥ ⎥
⎢⎢a
c
− a − b⎥⎥
⎢a ⎢⎣c
−a −b
−a b
a −c
⎥ ⎥ ⎦
⎢ ⎢ ⎣
x20 x30
x21 x31
x22 x32
x23 x33
⎥ ⎥ ⎦
⎢⎢2 ⎢1
1 −1
−1 −1
− 2⎥⎥( X )⎢⎢1 1 ⎥ ⎢1
1 −1
−1 −1
− 2⎥⎥ 2⎥
⎢⎣1 − 2 2 −1⎥⎦ ⎢⎣1 − 2 1 −1⎥⎦
可以看出,由于系数矩阵元素只有 ±1 与 ± 2 ,只需要加法和移位即可完成变换,所以说 H.264 的变
换是无乘法的。 相应地,反变换的定义如下:
1 −1 −1 1
d −1 1 −d
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎟⎞ ⎟ ⎟ ⎟ ⎟⎠
⊗
⎡a 2 ⎢⎢ab ⎢a 2 ⎢ ⎢⎣ab
ab b2 ab b2
a2 ab a2 ab
ab⎤
b
2
⎥ ⎥
ab⎥
b
2
⎥ ⎥⎦
式中, ⊗ 表示相应位置的系数之间的乘积,而不是矩阵相乘。这样,可以把矩阵 E 中的系数放入量
化步骤之中,变换就简单了许多。
⎢⎢1 / ⎢ 1/
10 2
⎥ ⎥
⎢⎢2
⎥⎢1
1 −1
−1 −1
− 2⎥⎥ 1⎥
⎢⎣1 /
10
⎥ ⎦
⎢⎣1
−2
2
− 1⎥⎦
对于二维 ( X ) 4×4 的数据的整数变换为
(Y ) = (HCT )( X )(HCT )T
=
⎜⎛ ⎜ ⎜ ⎜⎜⎝
⎡1 ⎢⎢2 ⎢1 ⎢⎣1
1 1 −1 −2
1 1 ⎤ ⎡1 2
⎜⎛ ⎜ ⎜ ⎜ ⎜⎝
⎡1 ⎢⎢1 ⎢1 ⎢⎣d
11 d −d −1 −1 −1 1
1 ⎤⎡x00
−
1
⎥ ⎥
⎢ ⎢
x10
1 −d
⎥ ⎥ ⎦
⎢ ⎢ ⎣
x20 x30
x01 x11 x21 x31
x02 x12 x22 x32
x03 ⎤⎡1 1
x13
⎥ ⎥
⎢⎢1
d
x23 x33
⎥ ⎥ ⎦
⎢1 ⎢⎣1
−d −1
X
=
C
T b
(Y
⊗ Eb )Cb
⎢⎡1 ⎢ ⎢1 =⎢ ⎢⎢1 ⎢ ⎢⎣1
1
1 2 −1 2 −1
1 −1 −1 1
1⎤
2 −1
1 −1
2
⎥ ⎥⎥⎥⎥⎥⎥⎜⎜⎜⎜⎜⎝⎛ ⎥⎦
(Y
)
⊗
⎡a 2 ⎢⎢ab ⎢a 2 ⎢ ⎢⎣ab
ab b2 ab b2
a2 ab a2 ab
ab b2 ab b2
⎤ ⎥ ⎥ ⎥ ⎥ ⎥⎦
H.264 标准中的整数变换与量化
(CyanDragon 整理) H.264 的编码框图中,首先通过帧内预测或者帧间预测计算残差,再对残差进行整数变换和量化,最 后经过熵编码后输出。这样在 H.264 编码过程中,同时包括了预测编码、变换编码和熵编码,取得了更好 的压缩效率。和 H.263 或 MPEG-4 相比,H.264 采用 4×4 整数变换,变换过程和量化过程混合在一起。虽 然这样做会在 PSNR(峰值信噪比)上有轻微的损失,但整数变换避免了 H.263 等标准中非整数 DCT 变换、 反变换过程中的失配问题,而且变换过程只需加法和移位操作,可以不使用乘法操作,复杂性大为减少。 DCT 变换是一种正交变换,因为它具有良好的去相关性和压缩效率,并且有快速算法可以实现,所以在图 像编码中被广泛使用。
⎢a ⎢⎣a
−c −b
−a a
b⎥ − c⎥⎦
式中,H 表示变换矩阵,参数分别为
a =1/ 2
b = 1/ 2 cos(π / 8)
c = 1/ 2 cos(3π / 8)
因为 H 是正交矩阵,即 H T H = I ,所以相应的反变换(IDCT)为
X = H T YH
对变换矩阵 H 进行基于蝶形的因式分解,得到如下变换表示式:
−1 −1
−12⎥⎥⎥( X )⎢⎢⎢11
1 −1
2 −1⎥⎦ ⎢⎣1 − 2
⎡ ⎢
a
2
1 −1 −1 1
1⎤ − 2⎥⎥ 2⎥ − 1⎥⎦
⎟⎞ ⎟ ⎟ ⎟⎟⎠
⊗
⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢
ab 2 a2
ab
ab
2 b2
4 ab
2 b2
a2
ab 2 a2
ab
ab ⎤
2 b2
⎥ ⎥ ⎥
4⎥
ab ⎥
2 b2