CN102227135A - 一种视频编码8x8整数变换方法 - Google Patents

一种视频编码8x8整数变换方法 Download PDF

Info

Publication number
CN102227135A
CN102227135A CN 201110101417 CN201110101417A CN102227135A CN 102227135 A CN102227135 A CN 102227135A CN 201110101417 CN201110101417 CN 201110101417 CN 201110101417 A CN201110101417 A CN 201110101417A CN 102227135 A CN102227135 A CN 102227135A
Authority
CN
China
Prior art keywords
integer
transformation
transform
matrix
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 201110101417
Other languages
English (en)
Inventor
徐苏珊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN RONGCHUANG TIANXIA TECHNOLOGY DEVELOPMENT Co Ltd
Shenzhen Temobi Science and Technology Co Ltd
Original Assignee
SHENZHEN RONGCHUANG TIANXIA TECHNOLOGY DEVELOPMENT Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN RONGCHUANG TIANXIA TECHNOLOGY DEVELOPMENT Co Ltd filed Critical SHENZHEN RONGCHUANG TIANXIA TECHNOLOGY DEVELOPMENT Co Ltd
Priority to CN 201110101417 priority Critical patent/CN102227135A/zh
Priority to PCT/CN2011/073586 priority patent/WO2012142777A1/zh
Priority to CN2011102783360A priority patent/CN102281445A/zh
Publication of CN102227135A publication Critical patent/CN102227135A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开一种视频编码8x8整数变换方法,通过接收编码器中预测模块输出的8x8的图像残差数据X,选取不同整数变换基([15,15,10,3]或[6,7,5,1]),构建变换矩阵P;根据变换矩阵P,构建缩放矩阵PF(PF=ZT*Z);对图像残差数据X进行正变换(Y=PXPT),并根据不同的整数变化基,采用相应的整数变换计算方法;对经过8x8正变换后的数据Y进行缩放处理。本发明的变换方法能量集中性能优秀,能量集中度接近8x8DCT,可以极大地消除视频数据在变换空间上的相关性;计算复杂度低,可通过加法和移位来实现,易于硬件实现,并且运算精度高,不存正反变换不匹配的问题。

Description

一种视频编码8x8整数变换方法
技术领域
本发明涉及视频编码技术领域,尤其涉及一种视频编码8x8整数变换方法。
背景技术
一套完整的视频编码系统是由预测、变换、量化、熵编码等一系列算法模块组成的。其中帧内帧间预测是利用视频数据在空间和时间上的相关性压缩数据。变换模块是将预测模块输出的图像残差数据由时域变换到另一个空间上,使时域上平坦分布的数据在变换空间上能量集中,将数据的能量大部分集中在空间的低频区域中。在随后的量化和熵编码模块中,会有效的利用变换后的数据分布特征,进一步压缩数据。显而易见,变换模块是视频编码系统中重要的组成部分,变换的性能直接影响视频编码系统的性能。
在现有视频编码系统中,DCT变换得到了广泛的应用,其变换的能量集中性很好,可以极大地消除视频数据在变换空间上的相关性。但是这种算法存在不足,DCT变换矩阵是浮点表示的,计算过程中使用大量的浮点乘法和加法,占用硬件资源多,计算复杂的大。同时由于处理器运算位数影响,浮点运算存在截断误差,浮点计算精度不高,DCT正反变换不能完全匹配,变换不可逆。
发明内容
本发明实施例的目的在于提出一种视频编码8x8整数变换方法,旨在解决现有技术DCT变换矩阵采用浮点乘法和加法,占用硬件资源多,计算复杂的大,计算精度不高,DCT正反变换不能完全匹配,变换不可逆的问题。
本发明实施例的方法是这样实现的,一种视频编码8x8整数变换方法,包括:
步骤1,接收编码器中预测模块输出的8x8的图像残差数据X;
步骤2,选取整数变换基,构建变换矩阵,
8x8的通用整数变换矩阵为:
C = k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 1 k 2 k 3 k 4 - k 4 - k 3 - k 2 - k 1 k 5 k 6 - k 6 - k 5 - k 5 - k 6 k 6 k 5 k 2 - k 4 - k 1 - k 3 k 3 k 1 k 4 - k 2 k 0 - k 0 - k 0 k 0 k 0 - k 0 - k 0 k 0 k 3 - k 1 k 4 k 2 - k 2 - k 4 k 1 - k 3 k 6 - k 5 k 5 - k 6 - k 6 k 5 - k 5 k 6 k 4 - k 3 k 2 - k 1 k 1 - k 2 k 3 - k 4
矩阵C中,k0、k5、k6分别取值1、2、1,[k1k2k3k4]为整数变换基;
步骤3,根据变换矩阵P,构建缩放矩阵PF,
PF=ZT*Z
其中,
ZT=[1/||m1||1/||m2||1/||m3||1/||m4||1/||m5||  1/||m6||1/||m7||1/||m8||];mi为变换矩阵P的行向量,i取值为1-8;||mi||为行向量mi的向量范数;
步骤4,正变换,对8x8的图像残差数据X进行整数变换,变换公式为Y=PXPT;其中P为所述的变换矩阵;X为所述的图像残差数据;
步骤5,对经过8x8正变换后的数据Y进行缩放处理,
Y ′ = Y ⊗ PF
Figure BSA00000479384000023
是矩阵的点乘运算,Y是经过8x8正变换后的数据,PF是缩放矩阵,Y′是本缩放处理后的输出值,代表视频数据变换到频域上的信息;
所述整数变换基为以下数值中的一个:
[15,15,10,3]、[6,7,5,1]。
其中,步骤4中的变换的基本单元是形如y=Px的8点一维变换,其中x=[x1x2x3x4x5x6x7x8]T,输出的y=[y1y2y3y4y5y6y7y8]T,x1x2x3x4x5x6x7x8表示整数变换的一维正变换的输入八点数值;y1y2y3y4y5y6y7y8为正变换的八点输出数值。
当整数变换基取值为[15,15,10,3]时:
所述变换矩阵 P = 1 1 1 1 1 1 1 1 15 15 10 3 - 3 - 10 - 15 - 15 2 1 - 1 - 2 - 2 - 1 1 2 15 - 3 - 15 - 10 10 15 3 - 15 1 - 1 - 1 1 1 - 1 - 1 1 10 - 15 3 15 - 15 - 3 15 - 10 1 - 2 2 - 1 - 1 2 - 2 1 3 - 10 15 - 15 15 - 15 10 - 3
ZT=[0.353550.0299070.223610.0299070.353550.0299070.223610.029907]
PF = 0.125 0.010574 0.079057 0.010574 0.125 0.010574 0.079057 0.010574 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 0.079057 0.0066875 0.05 0.0066875 0.079057 0.0066875 0.05 0.0066875 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 0.125 0.010574 0.079057 0.010574 0.125 0.010574 0.079057 0.010574 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 0.079057 0.0066875 0.05 0.0066875 0.079057 0.0066875 0.05 0.0066875 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 .
“对8x8的图像残差数据X进行整数变换,变换公式为Y=PXPT”计算过程如下:
b1=x1-x8;b2=x2-x7;b3=x3-x6;b4=x4-x5;
b5=x1+x8;b6=x2+x7;b7=x3+x6;b8=x4+x5;
a1=b5+b8;a2=b6+b7;a3=b5-b8;a4=b6-b7;
y1=a1+a2;y5=a1-a2;y3=a3<<1+a4;y7=a3-a4<<1;
再完成以下计算步骤:
y 2 y 4 y 6 y 8 = k 1 k 2 k 3 k 4 k 2 - k 4 - k 1 - k 3 k 3 - k 1 k 4 k 2 k 4 - k 3 k 2 - k 1 b 1 b 2 b 3 b 4
c1=b1<<4-b1;c2=b2<<4-b2;c3=b3<<4-b3;c4=b4<<4-b4;
d1=b1<<3+b1<<1;d2=b2<<3+b2<<1;d3=b3<<3+b3<<1;d4=b4<<3+b4<<1
e1=b1<<1+b1;e2=b2<<1+b2;e3=b3<<1+b3;e4=b4<<1+b4
y2=c1+c2+d3+e4;y4=c1-e2-c3-d4;y6=d1-c2+e3+c4;
y8=e1-d2+c3-c4;
其中“<<”表示向左移位运算,优先级高于加减法,基本单元y=Px共需要40个加法和14个移位。
当整数变换基取值为[6,7,5,1]时:
所述变换矩阵 P = 1 1 1 1 1 1 1 1 6 7 5 1 - 1 - 5 - 7 - 6 2 1 - 1 - 2 - 2 - 1 1 2 7 - 1 - 6 - 5 5 6 1 - 7 1 - 1 - 1 1 1 - 1 - 1 1 5 - 6 1 7 - 7 - 1 6 - 5 1 - 2 2 - 1 - 1 2 - 2 1 1 - 5 7 - 6 6 - 7 5 - 1
ZT=[0.353550.0671160.223610.0671160.353550.0671160.223610.067116]缩放矩阵为:
PF = 0.125 0.023729 0.079057 0.023729 0.125 0.023729 0.079057 0.023729 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 0.079057 0.015008 0.05 0.015008 0.079057 0.015008 0.05 0.015008 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 0.125 0.023729 0.079057 0.023729 0.125 0.023729 0.079057 0.023729 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 0.079057 0.015008 0.05 0.015008 0.079057 0.015008 0.05 0.015008 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 .
“对8x8的图像残差数据X进行整数变换,变换公式为Y=PXPT”计算过程如下:
b1=x1-x8;b2=x2-x7;b3=x3-x6;b4=x4-x5;
b5=x1+x8;b6=x2+x7;b7=x3+x6;b8=x4+x5;
a1=b5+b8;a2=b6+b7;a3=b5-b8;a4=b6-b7;
y1=a1+a2;y5=a1-a2;y3=a3<<1+a4;y7=a3-a4<<1;
再完成以下计算步骤:
y 2 y 4 y 6 y 8 = k 1 k 2 k 3 k 4 k 2 - k 4 - k 1 - k 3 k 3 - k 1 k 4 k 2 k 4 - k 3 k 2 - k 1 b 1 b 2 b 3 b 4
c1=b1<<2+b1<<1+b4;c2=b2<<2+b2<<1-a3;c3=b2+b3<<2+b3<<1;c4=-a1+b4<<2+b4<<1;
y2=c1+c2+c3;y4=c1-c3-c4;y6=c1-c2+c4;y8=-c2+c3-c4;
其中“<<”表示向左移位运算,优先级高于加减法,基本单元y=Px共需要32个加法和10个移位。
本发明的有益效果:
本发明实施例提出的二组的8x8的整数变换矩阵,并且给出了变换的快速算法,本发明实施例的变换方法能量集中性能优秀,能量集中度接近8x8DCT,可以极大地消除视频数据在变换空间上的相关性。计算复杂度低,可通过加法和移位来实现,易于硬件实现,并且运算精度高,不存正反变换不匹配的问题
附图说明
图1是本发明实施例1一种视频编码8x8整数变换方法流程图;
图2是本发明实施例1中当整数变换基选取[15,15,10,3]时相应的整数变换计算方法示意图;
图3是图2中整数变换计算方法示意图中的计算模块M1的计算方法图;
图4是本发明实施例1中当整数变换基选取[6,7,5,1]时相应的整数变换计算方法示意图;
图5是图4中整数变换计算方法示意图中的计算模块M2的计算方法图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。
本发明通过接收编码器中预测模块输出的8x8的图像残差数据X,选取不同整数变换基([15,15,10,3]或[6,7,5,1]),构建变换矩阵P;根据变换矩阵P,构建缩放矩阵PF(PF=ZT*Z);对图像残差数据X进行正变换(Y=PXPT),并根据不同的整数变化基,采用相应的整数变换计算方法;对经过8x8正变换后的数据Y进行缩放处理。
实施例一
如图1所示为本发明实施例1一种视频编码8x8整数变换方法,所述方法包括以下步骤:
S101,接收编码器中预测模块输出的8x8的图像残差数据X;
S102,选取整数变换基,构建变换矩阵P;
8x8的通用整数变换矩阵为:
C = k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 1 k 2 k 3 k 4 - k 4 - k 3 - k 2 - k 1 k 5 k 6 - k 6 - k 5 - k 5 - k 6 k 6 k 5 k 2 - k 4 - k 1 - k 3 k 3 k 1 k 4 - k 2 k 0 - k 0 - k 0 k 0 k 0 - k 0 - k 0 k 0 k 3 - k 1 k 4 k 2 - k 2 - k 4 k 1 - k 3 k 6 - k 5 k 5 - k 6 - k 6 k 5 - k 5 k 6 k 4 - k 3 k 2 - k 1 k 1 - k 2 k 3 - k 4
矩阵C中,k0、k5、k6分别取值1、2、1。定义[k1k2k3k4]为整数变换基构建成变换矩阵P。
本发明实施例中,整数变换基可选取以下数值中的一个:
[15,15,10,3]、[6,7,5,1]。
S103,根据变换矩阵P,构建缩放矩阵PF;
PF=ZT*Z
其中,
ZT=[1/||m1||1/||m2||1/||m3||1/||m4||1/||m5||1/||m6||1/||m7||1/||m8||];mi为变换矩阵P的行向量,i取值为1-8;||mi||为行向量mi的向量范数;
S104,正变换,对8x8的图像残差数据X进行整数变换,变换公式为Y=PXPT;其中P为所述的变换矩阵;X为所述的图像残差数据;
变换的基本单元是形如y=Px的8点一维变换,其中
x=[x1x2x3x4x5x6x7x8]T,输出的
y=[y1y2y3y4y5y6y7y8]T,x1x2x3x4x5x6x7x8表示整数变换的一维正变换的输入八点数值;y1y2y3y4y5y6y7y8为正变换的八点输出数值;
根据不同的整数变化基,采用相应的整数变换计算方法。
S105,对经过8x8正变换后的数据Y进行缩放处理;
Y ′ = Y ⊗ PF
Figure BSA00000479384000063
是矩阵的点乘运算,Y是经过8x8正变换后的数据,PF是缩放矩阵,Y′是本缩放处理后的输出值,代表视频数据变换到频域上的信息。
本发明实施例的变换方法能量集中性能优秀,能量集中度接近8x8DCT,可以极大地消除视频数据在变换空间上的相关性;计算复杂度低,可通过加法和移位来实现,易于硬件实现,并且运算精度高,不存正反变换不匹配的问题。
实施例二
以下为本发明实施例2的一种视频编码8x8整数变换方法,本发明实施例2选取[15,15,10,3]为8x8通用整数变换矩阵的整数变换基,所述方法包括以下步骤:
S201,接收编码器中预测模块输出的8x8的图像残差数据X;
S202,选取整数变换基,构建变换矩阵P;
8x8的通用整数变换矩阵为:
C = k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 1 k 2 k 3 k 4 - k 4 - k 3 - k 2 - k 1 k 5 k 6 - k 6 - k 5 - k 5 - k 6 k 6 k 5 k 2 - k 4 - k 1 - k 3 k 3 k 1 k 4 - k 2 k 0 - k 0 - k 0 k 0 k 0 - k 0 - k 0 k 0 k 3 - k 1 k 4 k 2 - k 2 - k 4 k 1 - k 3 k 6 - k 5 k 5 - k 6 - k 6 k 5 - k 5 k 6 k 4 - k 3 k 2 - k 1 k 1 - k 2 k 3 - k 4
矩阵C中,k0、k5、k6分别取值1、2、1。定义[k1k2k3k4]为整数变换基构建成变换矩阵P。
本发明实施例选取[15,15,10,3]为整数变换基,构建成变换矩阵P。
当变换基为[15,15,10,3]时,变换矩阵P为:
P = 1 1 1 1 1 1 1 1 15 15 10 3 - 3 - 10 - 15 - 15 2 1 - 1 - 2 - 2 - 1 1 2 15 - 3 - 15 - 10 10 15 3 - 15 1 - 1 - 1 1 1 - 1 - 1 1 10 - 15 3 15 - 15 - 3 15 - 10 1 - 2 2 - 1 - 1 2 - 2 1 3 - 10 15 - 15 15 - 15 10 - 3
S203,根据变换矩阵P,构建缩放矩阵PF;
PF=ZT*Z
其中,
ZT=[1/||m1||1/||m2||1/||m3||1/||m4||1/||m5||1/||m6||1/||m7||1/||m8||];mi为变换矩阵P的行向量,i取值为1-8;||mi||为行向量mi的向量范数;
当变换矩阵P的变换基为[15,15,10,3]时,
ZT=[0.353550.0299070.223610.0299070.353550.0299070.223610.029907]缩放矩阵为:
PF = 0.125 0.010574 0.079057 0.010574 0.125 0.010574 0.079057 0.010574 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 0.079057 0.0066875 0.05 0.0066875 0.079057 0.0066875 0.05 0.0066875 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 0.125 0.010574 0.079057 0.010574 0.125 0.010574 0.079057 0.010574 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 0.079057 0.0066875 0.05 0.0066875 0.079057 0.0066875 0.05 0.0066875 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 .
S204,正变换,对8x8的图像残差数据X进行整数变换,变换公式为Y=PXPT;其中P为所述的变换矩阵;X为所述的图像残差数据;
变换的基本单元是形如y=Px的8点一维变换,其中
x=[x1x2x3x4x5x6x7x8]T,输出的
y=[y1y2y3y4y5y6y7y8]T,x1x2x3x4x5x6x7x8表示整数变换的一维正变换的输入八点数值;y1y2y3y4y5y6y7y8为正变换的八点输出数值;
所述整数变换的计算过程如下:
b1=x1-x8;b2=x2-x7;b3=x3-x6;b4=x4-x5;
b5=x1+x8;b6=x2+x7;b7=x3+x6;b8=x4+x5;
a1=b5+b8;a2=b6+b7;a3=b5-b8;a4=b6-b7;
y1=a1+a2;y5=a1-a2;y3=a3<<1+a4;y7=a3-a4<<1;
其中,b1、b2、b3、b4、b5、b6、b7、b8,a1、a2、a3、a4为整数变换的中间变量;
再完成以下计算步骤:
y 2 y 4 y 6 y 8 = k 1 k 2 k 3 k 4 k 2 - k 4 - k 1 - k 3 k 3 - k 1 k 4 k 2 k 4 - k 3 k 2 - k 1 b 1 b 2 b 3 b 4
c1=b1<<4-b1;c2=b2<<4-b2;c3=b3<<4-b3;c4=b4<<4-b4;d1=b1<<3+b1<<1;d2=b2<<3+b2<<1;d3=b3<<3+b3<<1;d4=b4<<3+b4<<1;e1=b1<<1+b1;e2=b2<<1+b2;e3=b3<<1+b3;e4=b4<<1+b4;y2=c1+c2+d3+e4;y4=c1-e2-c3-d4;y6=d1-c2+e3+c4;y8=e1-d2+c3-c4;
其中,c1、c2、c3、c4,d1、d2、d3、d4,e1、e2、e3、e4为整数变换的中间变量;
其中“<<”表示向左移位运算,优先级高于加减法,基本单元y=Px共需要40个加法和14个移位。
此变换基的正变换快速计算方法如图2所示,其中计算模块M1如图3所示。其中x1x2x3x4x5x6x7x8表示整数变换的一维正变换的输入八点数值;y1y2y3y4y5y6y7y8为正变换的八点输出数值;数据处理方向是从左向右,相交于一圆点的中间变量值等于圆点左侧线表示的数据相加;方形表示数据乘一个系数;“-”表示取负值;“2”表示乘2,即左移一位;“4”表示乘4,即左移两位;“8”表示乘8,即左移3位,“16”表示乘16,即左移4位。
“in1”“in2”“in3”“in4”表示M1模块的输入数据,分别与b4、b3、b2、b1相连;“out1”“out2”“out3”“out4”表示M1模块的输出数据,分别与y2、y4、y6、y8相连。
S205,对经过8x8正变换后的数据Y进行缩放处理;
Y ′ = Y ⊗ PF
Figure BSA00000479384000092
是矩阵的点乘运算,Y是经过8x8正变换后的数据,PF是缩放矩阵,Y′是本缩放处理后的输出值,代表视频数据变换到频域上的信息。
本发明实施例的变换方法能量集中性能优秀,能量集中度接近8x8DCT,可以极大地消除视频数据在变换空间上的相关性;计算复杂度低,可通过加法和移位来实现,易于硬件实现,并且运算精度高,不存正反变换不匹配的问题。
实施例三
以下为本发明实施例3的一种视频编码8x8整数变换方法,本发明实施例3选取[6,7,5,1]为8x8通用整数变换矩阵的整数变换基,所述方法包括以下步骤:
S301,接收编码器中预测模块输出的8x8的图像残差数据X。
S302,选取整数变换基,构建变换矩阵P;
8x8的通用整数变换矩阵为:
C = k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 1 k 2 k 3 k 4 - k 4 - k 3 - k 2 - k 1 k 5 k 6 - k 6 - k 5 - k 5 - k 6 k 6 k 5 k 2 - k 4 - k 1 - k 3 k 3 k 1 k 4 - k 2 k 0 - k 0 - k 0 k 0 k 0 - k 0 - k 0 k 0 k 3 - k 1 k 4 k 2 - k 2 - k 4 k 1 - k 3 k 6 - k 5 k 5 - k 6 - k 6 k 5 - k 5 k 6 k 4 - k 3 k 2 - k 1 k 1 - k 2 k 3 - k 4
矩阵C中,k0、k5、k6分别取值1、2、1。定义[k1k2k3k4]为整数变换基构建成变换矩阵P。
本发明实施例选取[6,7,5,1]为整数变换基,构建成变换矩阵P。当变换基为[6,7,5,1]时,变换矩阵P为:
P = 1 1 1 1 1 1 1 1 6 7 5 1 - 1 - 5 - 7 - 6 2 1 - 1 - 2 - 2 - 1 1 2 7 - 1 - 6 - 5 5 6 1 - 7 1 - 1 - 1 1 1 - 1 - 1 1 5 - 6 1 7 - 7 - 1 6 - 5 1 - 2 2 - 1 - 1 2 - 2 1 1 - 5 7 - 6 6 - 7 5 - 1
S303,根据变换矩阵P,构建缩放矩阵PF;
PF=ZT*Z
其中,
ZT=[1/||m1||1/||m2||1/||m3||1/||m4|| 1/||m5||1/||m6||1/||m7||1/||m8||];mi为变换矩阵P的行向量,i取值为1-8;||mi||为行向量mi的向量范数;
当变换矩阵P的变换基为[6,7,5,1]时,
ZT=[0.353550.0671160.223610.067116 0.353550.0671160.223610.067116]缩放矩阵为:
PF = 0.125 0.023729 0.079057 0.023729 0.125 0.023729 0.079057 0.023729 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 0.079057 0.015008 0.05 0.015008 0.079057 0.015008 0.05 0.015008 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 0.125 0.023729 0.079057 0.023729 0.125 0.023729 0.079057 0.023729 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 0.079057 0.015008 0.05 0.015008 0.079057 0.015008 0.05 0.015008 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 .
S304,正变换,对8x8的图像残差数据X进行整数变换,变换公式为Y=PXPT;其中P为所述的变换矩阵;X为所述的图像残差数据;
变换的基本单元是形如y=Px的8点一维变换,其中
x=[x1x2x3x4x5x6x7x8]T,输出的
y=[y1y2y3y4y5y6y7y8]T,x1x2x3x4x5x6x7x8表示整数变换的一维正变换的输入八点数值;y1y2y3y4y5y6y7y8为正变换的八点输出数值;
所述整数变换的计算过程如下:
b1=x1-x8;b2=x2-x7;b3=x3-x6;b4=x4-x5;
b5=x1+x8;b6=x2+x7;b7=x3+x6;b8=x4+x5;
a1=b5+b8;a2=b6+b7;a3=b5-b8;a4=b6-b7;
y1=a1+a2;y5=a1-a2;y3=a3<<1+a4;y7=a3-a4<<1;
其中,b1、b2、b3、b4、b5、b6、b7、b8,a1、a2、a3、a4为整数变换的中间变量;
再完成以下计算步骤:
y 2 y 4 y 6 y 8 = k 1 k 2 k 3 k 4 k 2 - k 4 - k 1 - k 3 k 3 - k 1 k 4 k 2 k 4 - k 3 k 2 - k 1 b 1 b 2 b 3 b 4
c1=b1<<2+b1<<1+b4;c2=b2<<2+b2<<1-a3;c3=b2+b3<<2+b3<<1;
c4=-a1+b4<<2+b4<<1;
y2=c1+c2+c3;y4=c1-c3-c4;y6=c1-c2+c4;y8=-c2+c3-c4;
其中,c1、c2、c3、c4为整数变换的中间变量;
其中“<<”表示向左移位运算,优先级高于加减法,基本单元y=Px共需要32个加法和10个移位。
此变换基的正变换快速计算方法如图4所示,其中计算模块M2如图5所示。其中x1x2x3x4x5x6x7x8表示整数变换的一维正变换的输入四点数值;y1y2y3y4y5y6y7y8为正变换的四点输出数值;数据处理方向是从左向右,相交于一圆点的中间变量值等于圆点左侧线表示的数据相加;方形表示数据乘一个系数;“-”表示取负值;“2”表示乘2,即左移一位;“4”表示乘4,即左移两位。
“in1”“in2”“in3”“in4”表示M2模块的输入数据,分别与b4、b3、b2、b1相连;“out1”“out2”“out3”“out4”表示M2模块的输出数据,分别与y2、y4、y6、y8相连。
S305,对经过8x8正变换后数据Y进行缩放处理;
Y ′ = Y ⊗ PF
Figure BSA00000479384000113
是矩阵的点乘运算,Y是经过8x8正变换后的数据,PF是缩放矩阵,Y′是本缩放处理后的输出值,代表视频数据变换到频域上的信息。
本发明实施例的变换方法能量集中性能优秀,能量集中度接近8x8DCT,可以极大地消除视频数据在变换空间上的相关性;计算复杂度低,可通过加法和移位来实现,易于硬件实现,并且运算精度高,不存正反变换不匹配的问题。
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为ROM、RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种视频编码8x8整数变换方法,包括
步骤1,接收编码器中预测模块输出的8x8的图像残差数据X;
步骤2,选取整数变换基,构建变换矩阵,
8x8的通用整数变换矩阵为:
C = k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 0 k 1 k 2 k 3 k 4 - k 4 - k 3 - k 2 - k 1 k 5 k 6 - k 6 - k 5 - k 5 - k 6 k 6 k 5 k 2 - k 4 - k 1 - k 3 k 3 k 1 k 4 - k 2 k 0 - k 0 - k 0 k 0 k 0 - k 0 - k 0 k 0 k 3 - k 1 k 4 k 2 - k 2 - k 4 k 1 - k 3 k 6 - k 5 k 5 - k 6 - k 6 k 5 - k 5 k 6 k 4 - k 3 k 2 - k 1 k 1 - k 2 k 3 - k 4
矩阵C中,k0、k5、k6分别取值1、2、1,[k1k2k3k4]为整数变换基;
步骤3,根据变换矩阵P,构建缩放矩阵PF,
PF=ZT*Z
其中,
ZT=[1/||m1||1/||m2||1/||m3||1/||m4||1/||m5||1/||m6||1/||m7||1/||m8||];mi为变换矩阵P的行向量,i取值为1-8;||mi||为行向量mi的向量范数;
步骤4,正变换,对8x8的图像残差数据X进行整数变换,变换公式为Y=PXPT;其中P为所述的变换矩阵;X为所述的图像残差数据;
步骤5,对经过8x8正变换后的数据Y进行缩放处理,
Y ′ = Y ⊗ PF
Figure FSA00000479383900013
是矩阵的点乘运算,Y是经过8x8正变换后的数据,PF是缩放矩阵,Y′是本缩放处理后的输出值,代表视频数据变换到频域上的信息;
其特征在于:
所述整数变换基为以下数值中的一个:
[15,15,10,3]、[6,7,5,1]。
2.如权利要求1所述的视频编码8x8整数变换方法,其特征在于,步骤4中的变换的基本单元是形如y=Px的8点一维变换,其中x=[x1x2x3x4x5x6x7x8]T,输出的y=[y1y2y3y4y5y6y7y8]T,x1x2x3x4x5x6x7x8表示整数变换的一维正变换的输入八点数值;y1y2y3y4y5y6y7y8为正变换的八点输出数值。
3.如权利要求1所述的视频编码8x8整数变换方法,其特征在于,所述整数变换基取值为[15,15,10,3]时:
所述变换矩阵 P = 1 1 1 1 1 1 1 1 15 15 10 3 - 3 - 10 - 15 - 15 2 1 - 1 - 2 - 2 - 1 1 2 15 - 3 - 15 - 10 10 15 3 - 15 1 - 1 - 1 1 1 - 1 - 1 1 10 - 15 3 15 - 15 - 3 15 - 10 1 - 2 2 - 1 - 1 2 - 2 1 3 - 10 15 - 15 15 - 15 10 - 3
ZT=[0.353550.0299070.223610.0299070.353550.0299070.223610.029907]
PF = 0.125 0.010574 0.079057 0.010574 0.125 0.010574 0.079057 0.010574 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 0.079057 0.0066875 0.05 0.0066875 0.079057 0.0066875 0.05 0.0066875 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 0.125 0.010574 0.079057 0.010574 0.125 0.010574 0.079057 0.010574 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 0.079057 0.0066875 0.05 0.0066875 0.079057 0.0066875 0.05 0.0066875 0.010574 0.00089445 0.0066875 0.00089445 0.010574 0.00089445 0.0066875 0.00089445 .
4.如权利要求1所述的视频编码8x8整数变换方法,其特征在于,所述当整数变换基取值为[15,15,10,3]时,“对8x8的图像残差数据X进行整数变换,变换公式为Y=PXPT”计算过程如下:
b1=x1-x8;b2=x2-x7;b3=x3-x6;b4=x4-x5;b5=x1+x8;b6=x2+x7;b7=x3+x6;b8=x4+x5;a1=b5+b8;a2=b6+b7;a3=b5-b8;a4=b6-b7;y1=a1+a2;y5=a1-a2;y3=a3<<1+a4;y7=a3-a4<<1;
再完成以下计算步骤:
y 2 y 4 y 6 y 8 = k 1 k 2 k 3 k 4 k 2 - k 4 - k 1 - k 3 k 3 - k 1 k 4 k 2 k 4 - k 3 k 2 - k 1 b 1 b 2 b 3 b 4
c1=b1<<4-b1;c2=b2<<4-b2;c3=b3<<4-b3;c4=b4<<4-b4;d1=b1<<3+b1<<1;d2=b2<<3+b2<<1;d3=b3<<3+b3<<1;d4=b4<<3+b4<<1e1=b1<<1+b1;e2=b2<<1+b2;e3=b3<<1+b3;e4=b4<<1+b4y2=c 1+c2+d3+e4;y4=c 1-e2-c3-d4;y6=d1-c2+e3+c4;y8=e1-d2+c3-c4;
其中“<<”表示向左移位运算,优先级高于加减法,基本单元y=Px共需要40个加法和14个移位。
5.如权利要求1所述的视频编码8x8整数变换方法,其特征在于,所述整数变换基取值为[6,7,5,1]时:
所述变换矩阵 P = 1 1 1 1 1 1 1 1 6 7 5 1 - 1 - 5 - 7 - 6 2 1 - 1 - 2 - 2 - 1 1 2 7 - 1 - 6 - 5 5 6 1 - 7 1 - 1 - 1 1 1 - 1 - 1 1 5 - 6 1 7 - 7 - 1 6 - 5 1 - 2 2 - 1 - 1 2 - 2 1 1 - 5 7 - 6 6 - 7 5 - 1
ZT=[0.353550.0671160.223610.0671160.353550.0671160.223610.067116]缩放矩阵为:
PF = 0.125 0.023729 0.079057 0.023729 0.125 0.023729 0.079057 0.023729 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 0.079057 0.015008 0.05 0.015008 0.079057 0.015008 0.05 0.015008 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 0.125 0.023729 0.079057 0.023729 0.125 0.023729 0.079057 0.023729 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 0.079057 0.015008 0.05 0.015008 0.079057 0.015008 0.05 0.015008 0.023729 0.0045045 0.015008 0.0045045 0.023729 0.0045045 0.015008 0.0045045 .
6.如权利要求1所述的视频编码8x8整数变换方法,其特征在于,所述当整数变换基取值为[6,7,5,1]时,“对8x8的图像残差数据X进行整数变换,变换公式为Y=PXPT”计算过程如下:
b1=x1-x8;b2=x2-x7;b3=x3-x6;b4=x4-x5;b5=x1+x8;b6=x2+x7;b7=x3+x6;b8=x4+x5;a1=b5+b8;a2=b6+b7;a3=b5-b8;a4=b6-b7;y1=a1+a2;y5=a1-a2;y3=a3<<1+a4;y7=a3-a4<<1;
再完成以下计算步骤:
y 2 y 4 y 6 y 8 = k 1 k 2 k 3 k 4 k 2 - k 4 - k 1 - k 3 k 3 - k 1 k 4 k 2 k 4 - k 3 k 2 - k 1 b 1 b 2 b 3 b 4
c1=b1<<2+b1<<1+b4;c2=b2<<2+b2<<1-a3;c3=b2+b3<<2+b3<<1;
c4=-a1+b4<<2+b4<<1;
y2=c1+c2+c3;y4=c1-c3-c4;y6=c1-c2+c4;y8=-c2+c3-c4;
其中“<<”表示向左移位运算,优先级高于加减法,基本单元y=Px共需要32个加法和10个移位。
CN 201110101417 2011-04-20 2011-04-20 一种视频编码8x8整数变换方法 Pending CN102227135A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN 201110101417 CN102227135A (zh) 2011-04-20 2011-04-20 一种视频编码8x8整数变换方法
PCT/CN2011/073586 WO2012142777A1 (zh) 2011-04-20 2011-04-29 一种视频编码8x8整数变换方法
CN2011102783360A CN102281445A (zh) 2011-04-20 2011-09-19 一种视频编码8x8整数变换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110101417 CN102227135A (zh) 2011-04-20 2011-04-20 一种视频编码8x8整数变换方法

Publications (1)

Publication Number Publication Date
CN102227135A true CN102227135A (zh) 2011-10-26

Family

ID=44808088

Family Applications (2)

Application Number Title Priority Date Filing Date
CN 201110101417 Pending CN102227135A (zh) 2011-04-20 2011-04-20 一种视频编码8x8整数变换方法
CN2011102783360A Pending CN102281445A (zh) 2011-04-20 2011-09-19 一种视频编码8x8整数变换方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2011102783360A Pending CN102281445A (zh) 2011-04-20 2011-09-19 一种视频编码8x8整数变换方法

Country Status (2)

Country Link
CN (2) CN102227135A (zh)
WO (1) WO2012142777A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486629A (zh) * 2014-12-16 2015-04-01 南京仟壹视讯信息技术有限公司 H.265视频编码中变换与反变换的快速实施方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3129392B2 (ja) * 1996-02-02 2001-01-29 日本電気株式会社 2次元idct回路
CN1209926C (zh) * 2003-03-26 2005-07-06 浙江大学 运用于图像编码和视频编码的整数变换方法和装置
CN1210960C (zh) * 2003-07-03 2005-07-13 浙江大学 运用于图像编码和视频编码的8×8整数变换方法和装置
US8069201B2 (en) * 2003-11-25 2011-11-29 Texas Instruments Incorporated 8×8 transform and quantization
CN100433837C (zh) * 2004-03-18 2008-11-12 华中科技大学 视频编码的整数变换方法
CN100477796C (zh) * 2005-12-27 2009-04-08 中国科学院计算技术研究所 用于视频转换的变换系数块的转换方法
CN100563337C (zh) * 2007-10-24 2009-11-25 上海广电(集团)有限公司中央研究院 基于avs的整数变换量化和整数反变换反量化方法
CN101931817A (zh) * 2010-04-12 2010-12-29 中山大学 一种变换基自适应的变换编码方法
CN101977321B (zh) * 2010-11-04 2014-03-12 深圳市融创天下科技股份有限公司 一种视频编码的整数变换方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486629A (zh) * 2014-12-16 2015-04-01 南京仟壹视讯信息技术有限公司 H.265视频编码中变换与反变换的快速实施方法
CN104486629B (zh) * 2014-12-16 2017-10-20 北京金山云网络技术有限公司 H.265视频编码中变换与反变换的快速实施方法

Also Published As

Publication number Publication date
CN102281445A (zh) 2011-12-14
WO2012142777A1 (zh) 2012-10-26

Similar Documents

Publication Publication Date Title
TWI680409B (zh) 適用於人工神經網路之矩陣及向量相乘的方法
EP3469520B1 (en) Superpixel methods for convolutional neural networks
CN108205519B (zh) 矩阵乘加运算装置和方法、处理装置、芯片、电子装置
US7337205B2 (en) Matrix multiplication in a vector processing system
CN101330616B (zh) 视频解码过程中反离散余弦变换的硬件实现装置及方法
US20160012012A1 (en) Matrix transposing circuit
GB2582352A (en) Methods and systems for implementing a convolution transpose layer of a neural network
CN110399591B (zh) 基于卷积神经网络的数据处理方法和装置
CN112703511B (zh) 运算加速器和数据处理方法
CN104244010A (zh) 提高数字信号变换性能的方法及数字信号变换方法和装置
CN115641285A (zh) 一种基于密集多尺度信息融合的双目视觉立体匹配方法
JP7461081B2 (ja) 畳み込みハードウェアによる特徴データに対する逆畳み込み処理方法及び装置
CN104320668B (zh) Hevc/h.265的dct变换和反变换的simd优化方法
CN102227135A (zh) 一种视频编码8x8整数变换方法
CN102137261A (zh) 一种视频编码16x16整数变换方法
CN102137260A (zh) 一种视频编码4x4整数变换方法
CN101562744B (zh) 二维反变换装置
CN102333216B (zh) 一种视频编码16x16整数变换方法
WO2021212972A1 (zh) 运算方法、处理器以及相关产品
EP4361889A1 (en) Implementing a scatter function on a neural network accelerator
US20240160692A1 (en) Implementing a scatter function on a neural network accelerator
EP4160485A1 (en) Methods and devices for configuring a neural network accelerator with a configurable pipeline
JP2580501B2 (ja) 並列デ−タ処理装置
GB2611520A (en) Methods and devices for configuring a neural network accelerator with a configurable pipeline
GB2611522A (en) Neural network accelerator with a configurable pipeline

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication