H264的变换

H264的变换
H264的变换


h264把一个16*16的亮度宏块分成16个4*4的小块(Ln,n=0,1,…15),对每一个小块(Ln)做一个近似DCT的变换,生成 F(Ln),再把每一个F(Ln)的左上角的DC系数抽出来组成一个4*4的块,对这个小块(LDc)在做一次Hadamard变换生成H(LDc)。与 亮度块类似,对8*8的色度块,把它分成4个4*4的小块(Cn,n=0,1,2,3),对每一个小块(Ln)做一个近似DCT的变换,生成F(Cn), 再把每一个F(Cn)的左上角的DC系数抽出来组成一个2*2的块,对这个小块(CDc)在做一次Hadamard变换生成H(CDc)。
这样,h264的变换一共有3种。一是4*4的近似DCT变换,二是4*4的Hadamard变换,三是2*2的Hadamard变换。
近似DCT变换:
4*4的DCT变换公式为:
Y=AXA’ = [a,a,a,a ] [X] [a,b,a,c]
[b,c,-c,-b] [a,c,-a,-b]
[a,-a,-a,a] [a,-c,-a,b]
[c,-b,b,-c] [a,-b,a,-c]
其中,a=1/2, b=(1/2)0.5cos(PI/8), c=(1/2)0.5cos(3*PI/8)
DCT变换有两个缺点,一是它不是整数变换,在做快速运算时,需要把系数放大成整数,计算完后再缩小。这种方法会产生误差,是编码端计算的结果和解码端计算出的结果不同。二是他的计算复杂,需要乘法运算。
H264改进了DCT变换,克服了上述缺点。方法是:
改变公式:
Y=AXA’=[1,1,1,1]* [a,a,a,a] [X] [1,1,1,d] *[a,b,a,b]
[1,d,-d,-1] [b,b,b,b] [1,d,-1,-1] [a,b,a,b]
[1,-1,-1,1] [a,a,a,a,] [1,-d,-1,1] [a,b,a,b]
[d,-1,1,-d] [b,b,b,b] [1,-1,1,-d] [a,b,a,b]
= [1,1,1,1] [X] [1,1,1,d] *[aa,ab,aa,ab]
[1,d,-d,-1] [1,d,-1,-1] [ab,bb,ab,bb]
[1,-1,-1,1] [1,-d,-1,1] [aa,ab,aa,ab]
[d,-1,1,-d] [1,-1,1,-d] [ab,bb,ab,bb]
= CXC’*E
其中,d=c/b~=0.414
改变系数,简化运算。
为了使矩阵运算没有乘法,把d从0.414改成0.5。当a=0.5不变时,为了保证运算的正交性,(1+d*d+d*d+1)*b*b=1,要把b改成(2/5) 0.5。
改变矩阵C的系数成为只有加减和左移运算,把后处理*E的运算放到量化矩阵里做。


H264的变换(2)


Y=CXC’*E = [1,1,1,1] [X] [1,2,1,1] *[aa,ab/2,aa, ab/2]
[2,1,-1,-2] [1,1,-1,-2] [ab/2,bb/4,ab/2,bb/4]
[1,-1,-1,1] [1,-1,-1,2] [aa,ab/2,aa,ab/2]
[1,-2,2,-1] [1,-2,1,-1] [ab/2,bb/4,ab/2,bb/4]
通过这三步变换,生成了一个改进的近似DCT变换,他的全部系数都是整数,编码端和解码端不会出现不匹配的现象。他的运算只包含加减和移位。最后一部分*E的运算挪到量化里和量化结合一起做。虽然他的性质没有DCT那么好,但经过测试,他的压缩性能与DCT相差无几。
Hadamard变换
对4*4的亮度DC系数矩阵,采用4*4的Hadamard变换。
Y = [1,1,1,1,] D [1,1,1,1] /2
[1,1,-1,-1] [1,1,-1,-1]
[1,-1,-1,1] [1,-1,-1,1]
[1,-1,1,-1] [1,-1,1,-1]
对2*2的色度DC系数矩阵,采用2*2的Hadamard变换。
Y = [1,1] D [1,1]
[1,-1] [1,-1]
Hadamard变换也是正交变换,它可以使能量更加集中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值