具体实施方式
本发明实施例提供一种整数变换方法及装置、整数反变换方法及装置,用以对各矩阵元素所需存储空间的位数大于9位的图像残差矩阵分别进行整数变换、整数反变换,从而避免现有技术中针对各矩阵元素所需存储空间的位数大于9位的图像残差矩阵进行整数变换、整数反变换处理时发生数据溢出的问题。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
如图1所示,为本发明实施例提供的一种整数变换方法的具体实现流程图,包括:
步骤11,对图像残差矩阵进行整数变换;
步骤12,当判断整数变换过程中获得的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理位数时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;
步骤13,按照长度不小于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。
以下以具体的实施方式为例,来说明本发明实施例提供的该方法的具体实现过程:
一、针对采用8×8的整数变换矩阵对图像残差矩阵X进行整数变换,且对图像残差矩阵先进行变换再进行列变换的情况:
本发明实施例提供的一种整数变换方法,其具体实现流程图如图2所示,包括:
步骤21,对图像残差矩阵进行行变换;
步骤22,当对图像残差矩阵进行行变换后得到的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理的位数时,按照长度不小于所述行变换后得到的矩阵中各矩阵元素所需存储空间的位数与处理器可并行处理的位数之差的第一右移长度,对所述行变换后得到的矩阵中各矩阵元素所需存储空间的位数分别进行右移;
步骤23,对所述移位后的矩阵元素所在矩阵进行列变换;以及
步骤24,当列变换后得到的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理的位数时,按照长度不小于所述列变换后得到的矩阵中各矩阵元素所需存储空间的位数与处理器可并行处理的位数之差的第二右移长度,对所述列变换后得到的矩阵中各矩阵元素所需存储空间的位数分别进行右移。
为了具体说明本发明实施例提供的该方法与现有技术提供的整数变换方法的不同,以下对现有技术与本发明提供的该方法分别能达到的技术效果进行对比说明:
在现有技术中,采用8×8的整数变换矩阵对图像残差矩阵X进行行变换时,若输入图像残差矩阵X中各矩阵元素需占用的存储空间位数为11位,则按照公式(3)Y1=XCT、公式(2)对其进行行变换后得到的矩阵Y1中各矩阵元素需占用的存储空间位数的计算公式如下式(11)所示:
11+log264=17 (11)
由此可见,当按照现有技术对各矩阵元素需占用的存储空间位数为11位的图像残差矩阵X进行行变换时,行变换后得到的矩阵Y1中各矩阵元素需占用的存储空间位数为17位,超出了规定的位数“16”,因此会发生数据溢出的情况。
若按照本发明提供的整数变换方法,当图像残差矩阵X进行如式(3)所示的行变换后得到的矩阵Y1中,各矩阵元素所需存储空间的位数17大于处理器可并行处理的位数16时,按照长度不小于行变换后得到的矩阵中各矩阵元素所需存储空间的位数与处理器可并行处理的位数之差的第一右移长度(由于矩阵Y1中各矩阵元素所需存储空间的位数为17,而处理器可并行处理的位数为16,因此,本实施例中的第一右移长度为1),对矩阵Y1中用于各矩阵元素所需存储空间的位数进行右移,该右移公式具体如下式(12)所示:
Y1=[y1ij>>scale0](i,j=0~7) (12)
公式(12)中scale0为移位数,其取值参照下表3,Bitdepth用以表示图像残差矩阵X对应的图像信息矩阵中各矩阵元素所需存储空间的位数(下文中的BitDepth的含义与此处BitDepth的含义相同,不再赘述)。
表3:
BitDepth |
Scale0 |
8 |
0 |
9 |
0 |
10 |
1 |
由于本实施例中矩阵X中各矩阵元素所需存储空间的位数为11,BitDepth为11-1=10,因此根据上表3可知,公式(12)变为:
Y1=[y1ij>>1](i,j=0~7) (13)
由公式(13)可知,由于按照本发明实施例提供的整数变换方法,使得矩阵Y1中各矩阵元素所需存储空间的位数分别右移了1位,即17-1=16位,由此可见,采用本发明实施例提供的整数变换方法,能够避免行变换后得到的矩阵Y1发生数据溢出的问题。
当按照现有技术提供的整数变换方法,采用8×8的整数变换矩阵对矩阵Y1进一步进行如式(4)Y=CY1的列变换后,矩阵Y中各矩阵元素所需存储空间的位数由下式(14)计算得到:
16+log264=22 (14)
再根据式(5)Y=[yij>>5](i,j=0~7),对矩阵Y中各矩阵元素所需存储空间的位数右移5位,最终得到矩阵Y中各矩阵元素实际所需存储空间的位数22-5=17,由此可见,由于矩阵Y中各矩阵元素所需存储空间的位数17大于处理器可并行处理的位数16,从而矩阵Y中也会发生数据溢出。
而采用本发明实施例提供的整数变换方法,则是按照长度不小于矩阵Y中各矩阵元素所需存储空间的位数与处理器可并行处理的位数之差的第二右移长度(由于矩阵Y中各矩阵元素所需存储空间的位数为17,而处理器可并行处理的位数为16,因此,本实施例中的第二右移长度为1),对矩阵Y中各矩阵元素所需存储空间的位数分别进行右移,其具体移位公式如下式(15)所示:
Y=[yij>>(5+BitDepth-8-scale0](i,j=0~7) (15)
公式(15)中scale0为移位数,其取值同样参照表3。
根据表3可知,由于本实施例中矩阵X中各矩阵元素所需存储空间的位数为10,因此公式(15)变为:
Y=[yij>>6](i,j=0~7) (16)
对比现有技术中采用的移位公式(5)与本发明实施例提供的该方法中采用的移位公式(15)可知,由于本发明实施例中提供的移位公式能够使矩阵Y中各矩阵元素所需存储空间的位数多右移1位,因此采用本发明实施例提供的整数变换方法得到的矩阵Y中不会发生数据溢出的问题。
综上可知,采用本发明实施例提供的整数变换方法,能够有效地避免对图像矩阵进行整数变换过程中出现的数据溢出。由于在现有技术中,对于整数变换过程中出现数据溢出时,还需要采用处理器对发生数据溢出的矩阵进行较为复杂的运算处理,因此,采用本发明实施例提供的整数变换方法,还能够降低处理器的运算复杂度,从而降低了处理器的运算负荷。
需要说明的是,本发明实施例以矩阵X中各矩阵元素所需存储空间的位数为11来说明本发明实施例提供的该方法的具体实施过程,实际上,只要矩阵X中各矩阵元素所需存储空间的位数满足大于8这一条件,均能采用本发明实施例提供的该方法,相应地,表3可以调整为如下表4所示的格式,以满足矩阵X中各矩阵元素所需存储空间位数更多的情况,但一般地,图像信息矩阵中各矩阵元素所需存储空间的位数即BitDepth不会超过12位。
表4:
BitDepth |
Scale0 |
8 |
0 |
9 |
0 |
10 |
1 |
11 |
2 |
12 |
3 |
... |
... |
此外,在本发明实施例提供的该方法中,对矩阵元素所需存储空间位数进行移位的位数大小可视具体情况而定,以式(15)为例,只要能保证对矩阵元素所需存储空间位数进行移位后得到的位数能够不大于处理器可并行处理的位数16,也可以考虑右移7位或8位等。
二、针对采用4×4的整数变换矩阵对图像残差矩阵X进行整数变换,且对图像残差矩阵先进行行变换再进行列变换的情况:
按照现有技术中提供的整数变换方法,以矩阵X中的矩阵元素所需存储空间的位数为11为例,采用下式(17)对矩阵X进行整数变换:
Y=BXBT (17)
其中,4×4的整数变换矩阵B具体如下式(18)所示:
首先,按照下述公式(19),先对矩阵X进行行变换:
Y3=XBT (19)
则矩阵Y3中各矩阵元素需占用的存储空间位数的计算公式如下式(20)所示:
11+log28=14 (20)
可见,矩阵Y3中各矩阵元素需占用的存储空间位数并未超过处理器可并行处理的位数16。
然后,按照下述公式(21),对矩阵Y3进行列变换:
Y=BY3 (21)
矩阵Y中各矩阵元素所需存储空间的位数由下式(22)计算得到:
14+log28=17 (22)
可见,矩阵Y中各矩阵元素所需存储空间位数超过了规定位数16。
按照本发明实施例提供的方法,在根据公式(21)计算得到矩阵Y后,采用下述公式(23),对矩阵Y中各矩阵元素所需存储空间的位数进行移位:
Y=[yij>>(BitDepth-8)] (23)
由于该实施例中矩阵X中各矩阵元素所需存储空间的位数为11,因此,根据表4,公式(23)变为:
Y=[yij>>(10-8)]=[yij>>2] (24)
由公式(22)、(24)可知,由于矩阵Y中各矩阵元素所需存储空间的位数右移了2位,因此,按照本发明实施例提供的方法,最终得到的矩阵Y中各矩阵元素所需存储空间的位数为17-2=15位,不大于处理器可并行处理的位数16。
实际上,上述公式(23)也可以变为:Y=[yij>>(BitDepth-8-1)]=[yij>>(BitDepth-9)],这样使得公式(24)对应变为:Y=[yij>>(10-9)]=[yij>>1],从而最终得到的矩阵Y中各矩阵元素所需存储空间的位数为17-1=16位。综上,对矩阵Y中各矩阵元素所需存储空间的位数的移位准则是既要满足移位后所得的位数不大于处理器可并行处理的位数16,又要满足移位的长度不能太大,避免使得矩阵Y的数据信息丢失过多。
三、针对采用8×8的整数变换矩阵对图像残差矩阵X进行整数变换,且对图像残差矩阵先进行列变换再进行行变换的情况:
由于采用现有技术中提供的整数变换方法,对矩阵X先进行列变换再进行行变换的过程中发生数据溢出的情况与对矩阵X先进行行变换再进行列变换的过程中发生数据溢出的情况相似,因此不再赘述,以下主要说明本发明实施例提供的该方法的实施过程,该过程的具体流程示意图如图3所示,包括:
步骤31,对图像残差矩阵进行列变换;
步骤32,当对图像残差矩阵进行列变换后得到的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理的位数时,按照长度不小于所述列变换后得到的矩阵中各矩阵元素所需存储空间的位数与处理器可并行处理的位数之差的第一右移长度,对所述列变换后得到的矩阵中各矩阵元素所需存储空间的位数分别进行右移;
步骤33,对所述移位后的矩阵元素所在矩阵进行行变换;以及
步骤34,当对进行行变换后得到的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理的位数时,按照长度不小于所述行变换后得到的矩阵中各矩阵元素所需存储空间的位数与处理器可并行处理的位数之差的第二右移长度,对所述行变换后得到的矩阵中各矩阵元素所需存储空间的位数分别进行右移。
该方法的具体实现过程如下,其具体实现流程图如图4所示,包括:
步骤41,按照下式(25),对矩阵X进行列变换:
Y2=CX (25)
其中,矩阵C的取值如式(2)所示;
步骤42,按照下式(26),对矩阵Y2中的各矩阵元素需占用的存储空间位数进行移位:
Y2=[y2ij>>scale0](i,j=0~7) (26)
其中,scale0为移位数,其取值可以参照表3或表4;
步骤43,按照下式(27),对矩阵Y2进行列变换:
Y=Y2CT (27)
步骤44,按照下式(28),对矩阵Y中的各矩阵元素需占用的存储空间位数进行移位:
Y=[yij>>(5+BitDepth-8-scale0](i,j=0~7) (28)
上式中scale0为移位数,其取值同样可以参照表3或表4。
综上可知,采用本发明实施例提供的整数变换方法,能够有效地避免对图像矩阵进行整数变换过程中出现的数据溢出。由于在现有技术中,对于整数变换过程中出现数据溢出时,还需要采用处理器对发生数据溢出的矩阵进行较为复杂的运算处理,因此,采用本发明实施例提供的整数变换方法,还能够降低处理器的运算复杂度,从而降低了处理器的运算负荷。
四、针对采用4×4的整数变换矩阵对图像残差矩阵X进行整数变换,且对图像残差矩阵先进行列变换再进行行变换的情况:
由于采用现有技术中提供的整数变换方法,对矩阵X进行先进行列变换再进行行变换的过程中发生数据溢出的情况与对矩阵X先进行行变换再进行列变换的过程中发生数据溢出的情况相似,因此不再赘述,以下主要说明本发明实施例提供的该方法的具体实施过程,该过程的具体流程示意图如图5所示,包括:
步骤51,按照下式(29)对矩阵X进行列变换:
Y4=BX (29)
其中,4×4的整数变换矩阵B具体如式(18)所示;
步骤52,按照下述公式(30),对矩阵Y4进行行变换:
Y=Y4BT (30)
步骤53,按照下述公式(31),对矩阵Y中各矩阵元素yij所需存储空间的位数进行移位:
Y=[yij>>(BitDepth-8)] (31)
由于本发明实施例提供的整数变换方法主要是应用于对图像残差矩阵进行编码的过程中,因此,以下简单介绍编码过程中的量化步骤,该量化步骤是在对图像残差矩阵X进行整数变换后进行的,具体为:
按照公式(32),对变换系数矩阵Y进行量化的公式如下式(32)所示:
QY=((Y*SCALEM+1<<14)>>15*QTAB[QP]+QP_CONST)>>19 (32)
其中,QY为与变换系数矩阵Y对应的量化值矩阵;QP_CONST为设定的固定值,用于对15*QTAB[QP]取整后得到的移位数值进行舍入误差补偿;SCALEM为缩放系数矩阵,具体如下式(33)所示:
QP为量化系数参数,共64个,QTAB[QP]是不同QP在量化系数表中所对应的量化系数,QP每增加8,QTAB[QP]近似减小一倍,该量化系数表的具体结构如下表5所示:
表5:
QP |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
QTAB[QP] |
32768 |
29775 |
27554 |
25268 |
23170 |
21247 |
19369 |
17770 |
QP |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
QTAB[QP] |
16302 |
15024 |
13777 |
12634 |
11626 |
10624 |
9742 |
8958 |
QP |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
QTAB[QP] |
8192 |
7512 |
6889 |
6305 |
5793 |
5303 |
4878 |
4467 |
QP |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
QTAB[QP] |
4091 |
3756 |
3444 |
3161 |
2894 |
2654 |
2435 |
2235 |
QP |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
QTAB[QP] |
2048 |
1878 |
1722 |
1579 |
1449 |
1329 |
1218 |
1117 |
QP |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
QTAB[QP] |
1024 |
939 |
861 |
790 |
724 |
664 |
609 |
558 |
QP |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
QTAB[QP] |
512 |
470 |
430 |
395 |
362 |
332 |
304 |
279 |
QP |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
QTAB[QP] |
256 |
235 |
215 |
197 |
181 |
166 |
152 |
140 |
相应地,本发明实施例提供一种整数变换装置,其具体结构示意图如图6所示,包括:
整数变换单元61,用于对图像残差矩阵进行整数变换;
判断单元62,用于判断整数变换单元61对图像残差矩阵进行整数变换过程中获得的矩阵中各矩形元素所需存储空间的位数是否大于处理器可并行处理位数;
确定单元63,用于在判断单元62的判断结果为是时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;
移位单元64,用于按照长度不小于所述确定单元63确定的差值的移位长度,对所述各矩阵元素所需存储空间的位数分别进行右移。
当对图像残差矩阵进行编码时,编码装置中除包括本发明实施例提供的整数变换装置外,还包括量化装置,该量化装置实现的功能与上述方法实施例中对变换系数矩阵进行量化处理类似,因此不再赘述。
对应于本发明实施例提供的整数变换方案,本发明实施例还提供一种整数反变换方案,用以解决现有技术中针对各矩阵元素所需存储空间的位数大于9位的图像残差矩阵进行整数反变换处理时,发生数据溢出的问题,该方案包括一种整数反变换方法和整数反变换装置,其中,整数反变换方法的具体实现流程图如图7所示,包括:
步骤71,对图像残差矩阵进行整数反变换;
步骤72,当判断整数反变换过程中获得的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理位数时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;
步骤73,按照长度不小于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。
当先对图像残差矩阵进行行整数反变换,再对图像残差矩阵进行列整数反变换时,本发明实施例提供的该整数反变换方法的具体流程示意图如图8所示,包括:
步骤81,对图像残差矩阵进行行整数反变换;
步骤82,当对图像残差矩阵进行行整数反变换后得到的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理的位数时,按照长度不小于所述行整数反变换后得到的矩阵中各矩阵元素所需存储空间的位数与处理器可并行处理的位数之差的第一右移长度,对所述行整数反变换后得到的矩阵中各矩阵元素所需存储空间的位数分别进行右移;
步骤83,对所述移位后的矩阵元素所在矩阵进行列整数反变换;以及
步骤84,当进行列整数反变换后得到的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理的位数时,按照长度不小于所述列整数反变换后得到的矩阵中各矩阵元素所需存储空间的位数与处理器可并行处理的位数之差的第二右移长度,对所述列整数反变换后得到的矩阵中各矩阵元素所需存储空间的位数分别进行右移。
具体地,当采用8×8的整数反变换矩阵时,该整数反变换方法的具体实施过程的具体流程示意图如图9所示,包括:
步骤91,按照下述公式(34),对图像残差矩阵Y进行行整数反变换:
X1=YC (34)
其中,X1为对Y进行行整数反变换后得到的中间结果矩阵,C则如式(2)所示;
步骤92,按照下述公式(35),对X1中各矩阵元素所需存储空间的位数进行移位:
X1=[x1ij>>3+(BitDepth-8)](i,j=0~7) (35)
步骤93,按照下述公式(36),对矩阵Y进行行整数反变换:
X=CTX1 (36)
步骤94,按照下述公式(37),对X中各矩阵元素所需存储空间的位数进行移位:
X=[xij>>7+(8-BitDepth)](i,j=0~7) (37)
当采用4×4的整数变换矩阵对矩阵Y进行先行变换再列变换的整数反变换时,对矩阵Y进行整数反变换后得到的矩阵X中各矩阵元素所需存储空间的位数按照下式(38)进行移位:
X=[xij>>5] (38)
因此,按照本发明实施例提供的整数反变换方法,则当采用4×4的整数变换矩阵对矩阵Y进行整数反变换时,对矩阵Y进行整数反变换后得到的矩阵X中各矩阵元素所需存储空间的位数按照下式(39)进行移位:
X=[xij>>5+(8-BitDepth)] (39)
当先对图像残差矩阵进行列整数反变换,再对图像残差矩阵进行行整数反变换时,以采用8×8的整数变换矩阵为例,本发明实施例提供的该整数反变换方法的具体流程示意图如图10所示,包括:
步骤101,按照下述公式(40),对图像残差矩阵Y进行行整数反变换:
X2=CTY (40)
其中,X2为对Y进行列整数反变换后得到的中间结果矩阵,C则如式(2)所示;
步骤102,按照下述公式(41),对X2中各矩阵元素所需存储空间的位数进行移位:
X2=[x2ij>>3+(BitDepth-8)](i,j=0~7) (41)
步骤103,按照下述公式(42),对矩阵Y进行行整数反变换:
X=X2C (42)
步骤104,按照下述公式(43),对X中各矩阵元素所需存储空间的位数进行移位:
X=[xij>>7+(8-BitDepth)](i,j=0~7) (43)
当采用4×4的整数变换矩阵对矩阵Y进行先列变换再行变换的整数反变换时,按照现有技术中的变换方法,对矩阵Y进行整数反变换后得到的矩阵X中各矩阵元素所需存储空间的位数按照下式(44)进行移位:
X=[xij>>5] (44)
因此,按照本发明实施例提供的整数反变换方法,则当采用4×4的整数变换矩阵对矩阵Y进行整数反变换时,对矩阵Y进行整数反变换后得到的矩阵X中各矩阵元素所需存储空间的位数按照下式(45)进行移位:
X=[xij>>5+(8-BitDepth)] (45)
由于本发明实施例提供的整数反变换方法主要是应用于对矩阵Y进行解码的过程中,因此,以下简单介绍解码过程中的反量化步骤,该反量化步骤是在对图像残差矩阵Y进行整数反变换之前执行的,具体为:
反量化步骤所用的公式如下式(46)所示:
Y=(QY*DQTAB[QP]+1<<(Shift[QP]-1))>>SHIFT[QP] (46)
其中,QY为按照公式(32)所得的量化值矩阵;DQTAB[QP]为不同QP在反量化系数表中所对应的反量化系数,Shift[QP]为不同QP在反量化系数表中所对应的移位数,这里的Y也被称为变换系数矩阵,该反量化系数表的具体结构如下表6所示:
表6:
QP |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
DQTAB[QP] |
32768 |
36061 |
38968 |
42495 |
46341 |
50535 |
55437 |
60424 |
Shift[QP] |
14 |
14 |
14 |
14 |
14 |
14 |
14 |
14 |
QP |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
QP |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
DQTAB[QP] |
32932 |
35734 |
38968 |
42495 |
46177 |
50535 |
55109 |
59933 |
Shift[QP] |
13 |
13 |
13 |
13 |
13 |
13 |
13 |
13 |
QP |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
DQTAB[QP] |
65535 |
35734 |
38968 |
42577 |
46341 |
50617 |
55027 |
60097 |
Shift[QP] |
13 |
12 |
12 |
12 |
12 |
12 |
12 |
12 |
QP |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
DQTAB[QP] |
32809 |
35734 |
38968 |
42454 |
46382 |
50576 |
55109 |
60056 |
Shift[QP] |
11 |
11 |
11 |
11 |
11 |
11 |
11 |
11 |
QP |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
DQTAB[QP] |
65535 |
35734 |
38968 |
42495 |
46320 |
50515 |
55109 |
60076 |
Shift[QP] |
11 |
10 |
10 |
10 |
10 |
10 |
10 |
10 |
QP |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
DQTAB[QP] |
65535 |
35744 |
38968 |
42495 |
46341 |
50535 |
55099 |
60087 |
Shift[QP] |
10 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
QP |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
DQTAB[QP] |
65535 |
35734 |
38973 |
42500 |
46341 |
50535 |
55109 |
60097 |
Shift[QP] |
9 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
QP |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
DQTAB[QP] |
32771 |
35734 |
38965 |
42497 |
46341 |
50535 |
55109 |
60099 |
Shift[QP] |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
相应地,本发明实施例还提供了一种整数反变换装置,其具体结构示意图如图11所示,包括:
整数反变换单元111,用于对图像残差矩阵进行整数反变换;
判断单元112,用于判断整数反变换单元111对图像残差矩阵进行整数反变换过程中获得的矩阵中各矩形元素所需存储空间的位数是否大于处理器可并行处理位数;
确定单元113,用于在判断单元112的判断结果为是时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;
移位单元114,用于按照长度不小于所述确定单元113确定的差值的移位长度,对所述各矩阵元素所需存储空间的位数分别进行右移。
当对图像残差矩阵进行解码时,解码装置中除包括本发明实施例提供的整数反变换装置外,还包括反量化装置,该反量化装置实现的功能与上述方法实施例中对量化值矩阵进行反量化处理类似,因此不再赘述。
需要说明的是,本发明实施例中进行整数变换或整数反变换所用的图像残差矩阵可以但不限于为图像亮度信息矩阵对应的图像残差矩阵或图像色度信息矩阵对应的图像残差矩阵,采用本发明实施例提供的方案对任何类型的矩阵进行整数变换或反变换,都在本发明的保护范围之内。
此外,本发明实施例提供的方案可以但不限于针对处理器可并行处理的位数为16位的情况,采用本发明实施例提供的方案解决可并行处理的位数不为16位的处理器在对矩阵进行整数变换、整数反变换过程中发生的数据溢出的问题,同样在本发明的保护范围之内。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。