专利名称:图像残差矩阵整数变换方法及装置、反变换方法及装置的利记博彩app
技术领域:
本发明涉及计算机与通信技术领域,尤其涉及一种对图像残差矩阵进行整数变换的方法及装置、对图像残差矩阵进行整数反变换的方法及装置。
背景技术:
在现有技术中,采用的8×8整数变换矩阵对图像残差矩阵进行整数变换的公式如下式(1)所示 Y=CXCT (1) 其中X为输入的图像信息矩阵对应的8×8的图像残差矩阵(图像信息矩阵可以包括图像亮度信息矩阵及图像色度信息矩阵等),若图像信息矩阵中各矩阵元素所需存储空间的位数为n,则该图像残差矩阵X中各元素所需存储空间的位数为n+1,图像残差矩阵中各矩阵元素所需存储空间的位数相比于图像信息矩阵中各矩阵元素所需存储空间的位数多出的一位为符号位,Y表示8×8的变换系数矩阵,也可以称为整数变换后得到的矩阵,C表示8×8的整数变换矩阵,CT表示8×8的整数变换矩阵的转置矩阵,整数变换矩阵C具体如下式(2) 8×8整数变换过程即为8×8的图像残差矩阵X转换为8×8的变换系数矩阵Y的过程,该过程的具体流程如下 首先,对Y进行如下式(3)的行变换 Y1=XCT (3) 其中,Y1为对Y进行行变换后得到的中间结果矩阵。
然后,针对Y1,进行如下式(4)的列变换 Y=CY1 (4) 在现有技术中,当采用上述步骤对图像残差矩阵X进行整数变换时,因为矩阵X包含预测误差,因此矩阵X中各矩阵元素所需的9位存储空间中有8位是用于表示数据信息,即这8位是各矩阵元素理论所需的存储空间的位数,而另一位则是预测误差信息所需的存储空间的位数(为了便于描述,下文中提及的各矩阵元素所需的存储空间为各矩阵元素理论所需的存储空间的位数与预测误差信息所需的存储空间位数的总和),而矩阵Y每一行绝对值之后的最大值为64,因此对于变换后的矩阵Y中的矩阵元素需要9+log264*64=21位来表示,由于采用目前通用的处理器并行处理时,完整整数变换过程中图像残差矩阵中的各矩阵元素所需存储空间的位数不能超过处理器可并行处理的位数16,因此,还需要根据下式(5)对由式(4)得到的矩阵Y中的矩阵元素yij进行移位,从而保证整数变换后得到的矩阵Y中各矩阵元素所需存储空间的位数不超过16 Y=[yij>>5](i,j=0~7)(5) 对于图像残差矩阵中各矩阵元素所需存储空间的位数不大于9位的情况,进行整数变换的过程中,图像残差矩阵中各矩阵元素所需存储空间的位数能够满足上述要求,但当图像残差矩阵中用于表示各矩阵元素所需存储空间的位数大于9位时(比如监控系统中的图像残差矩阵),针对该图像残差矩阵进行整数变换的过程中,该图像残差矩阵中各矩阵元素所需存储空间的位数则会超过处理器可并行处理的16位,从而会导致数据溢出。
类似地,当对图像残差矩阵进行整数反变换时,其整数反变换公式如下式(6)所示 X=CTYC (6) 对应的行整数反变换公式如下式(7)所示 X1=YC (7) 对行整数反变换后得到的矩阵X1中的矩阵元素x1ij进行移位,从而保证行整数反变换后得到的矩阵X1中各矩阵元素所需存储空间的位数不超过16 X1=[x1ij>>3](i,j=0~7) (8) 列整数反变换公式为 X=CTX1 (9) 对列整数反变换后得到的矩阵X中的矩阵元素xij进行移位,从而保证列整数反变换后得到的矩阵X中各矩阵元素所需存储空间的位数不超过9 X=[xij>>7](i,j=0~7) (10) 与整数变换类似,对于图像残差矩阵中各矩阵元素所需存储空间的位数不大于9位的情况,进行整数反变换的过程中,图像残差矩阵中各矩阵元素所需存储空间的位数能够满足上述要求,但当图像残差矩阵中各矩阵元素所需存储空间的位数大于9位时,针对该图像残差矩阵进行整数反变换的过程中,该图像残差矩阵中各矩阵元素所需存储空间的位数则会超过处理器可并行处理的16位,从而会导致数据溢出。
发明内容
本发明实施例提供一种对图像残差矩阵进行整数变换方法及装置,用以解决现有技术中针对各矩阵元素所需存储空间的位数大于9位的图像残差矩阵进行整数变换时,发生数据溢出的问题。
本发明实施例提供一种对图像残差矩阵进行整数反变换方法及装置,用以解决现有技术中针对各矩阵元素所需存储空间的位数大于9位的图像残差矩阵进行整数反变换处理时,发生数据溢出的问题。
为此,本发明采用以下技术方案 一种对图像残差矩阵进行整数变换的方法,包括对图像残差矩阵进行整数变换;当判断整数变换过程中获得的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理位数时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;按照长度不小于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。
较佳地,上述方法中按照长度等于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。
较佳地,对图像残差矩阵进行整数变换,具体包括对图像残差矩阵进行行变换,获得行变换矩阵;对所述行变换矩阵进行列变换,获得列变换矩阵。
较佳地,基于8×8的整数变换矩阵或4×4的整数变换矩阵对图像残差矩阵进行整数变换。
较佳地,所述图像残差矩阵为图像亮度信息矩阵对应的图像残差矩阵;或图像色度信息矩阵对应的图像残差矩阵。
一种对图像残差矩阵进行整数变换的装置,包括整数变换单元,用于对图像残差矩阵进行整数变换;判断单元,用于判断整数变换单元对图像残差矩阵进行整数变换过程中获得的矩阵中各矩形元素所需存储空间的位数是否大于处理器可并行处理位数;确定单元,用于在判断单元的判断结果为是时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;移位单元,用于按照长度不小于所述确定单元确定的差值的移位长度,对所述各矩阵元素所需存储空间的位数分别进行右移。
一种对图像残差矩阵进行整数反变换的方法,包括对图像残差矩阵进行整数反变换;当判断整数反变换过程中获得的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理位数时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;按照长度不小于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。
一种对图像残差矩阵进行整数反变换的装置,包括整数反变换单元,用于对图像残差矩阵进行整数反变换;判断单元,用于判断整数反变换单元对图像残差矩阵进行整数反变换过程中获得的矩阵中各矩形元素所需存储空间的位数是否大于处理器可并行处理位数;确定单元,用于在判断单元的判断结果为是时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;移位单元,用于按照长度不小于所述确定单元确定的差值的移位长度,对所述各矩阵元素所需存储空间的位数分别进行右移。
本发明实施例通过对图像残差矩阵进行整数变换;当判断整数变换过程中获得的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理位数时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;按照长度不小于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移,使得针对各矩阵元素所需存储空间的位数大于9位的图像残差矩阵进行整数变换时,不会发生数据溢出。
本发明实施例通过对图像残差矩阵进行整数反变换;当判断整数反变换过程中获得的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理位数时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;按照长度不小于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移,使得针对各矩阵元素所需存储空间的位数大于9位的图像残差矩阵进行整数反变换时,不会发生数据溢出。
图1为本发明实施例提供的一种整数变换方法的具体实现流程图; 图2为本发明实施例提供的整数变换方法的一种具体实现过程的流程图; 图3为本发明实施例提供的整数变换方法的另一种具体实现过程的流程图; 图4为本发明实施例提供的整数变换方法的又一种具体实现过程的流程图; 图5为本发明实施例提供的采用4×4的整数变换矩阵对图像残差矩阵X进行整数变换的具体实现流程图; 图6为本发明实施例提供的一种整数变换装置的具体结构示意图; 图7为本发明实施例提供的一种整数反变换方法的具体实现流程图; 图8为本发明实施例提供的整数反变换方法的一种具体实现过程的流程图; 图9为本发明实施例提供的采用8×8的整数反变换矩阵对图像残差矩阵Y进行整数反变换的一种具体实现流程图; 图10为本发明实施例提供的采用8×8的整数反变换矩阵对图像残差矩阵Y进行整数反变换的另一种具体实现流程图; 图11本发明实施例提供的一种整数反变换装置的具体结构示意图。
具体实施例方式 本发明实施例提供一种整数变换方法及装置、整数反变换方法及装置,用以对各矩阵元素所需存储空间的位数大于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 由于本实施例中矩阵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 此外,在本发明实施例提供的该方法中,对矩阵元素所需存储空间位数进行移位的位数大小可视具体情况而定,以式(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 相应地,本发明实施例提供一种整数变换装置,其具体结构示意图如图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 相应地,本发明实施例还提供了一种整数反变换装置,其具体结构示意图如图11所示,包括 整数反变换单元111,用于对图像残差矩阵进行整数反变换; 判断单元112,用于判断整数反变换单元111对图像残差矩阵进行整数反变换过程中获得的矩阵中各矩形元素所需存储空间的位数是否大于处理器可并行处理位数; 确定单元113,用于在判断单元112的判断结果为是时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值; 移位单元114,用于按照长度不小于所述确定单元113确定的差值的移位长度,对所述各矩阵元素所需存储空间的位数分别进行右移。
当对图像残差矩阵进行解码时,解码装置中除包括本发明实施例提供的整数反变换装置外,还包括反量化装置,该反量化装置实现的功能与上述方法实施例中对量化值矩阵进行反量化处理类似,因此不再赘述。
需要说明的是,本发明实施例中进行整数变换或整数反变换所用的图像残差矩阵可以但不限于为图像亮度信息矩阵对应的图像残差矩阵或图像色度信息矩阵对应的图像残差矩阵,采用本发明实施例提供的方案对任何类型的矩阵进行整数变换或反变换,都在本发明的保护范围之内。
此外,本发明实施例提供的方案可以但不限于针对处理器可并行处理的位数为16位的情况,采用本发明实施例提供的方案解决可并行处理的位数不为16位的处理器在对矩阵进行整数变换、整数反变换过程中发生的数据溢出的问题,同样在本发明的保护范围之内。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种对图像残差矩阵进行整数变换的方法,其特征在于,包括
对图像残差矩阵进行整数变换;
当判断整数变换过程中获得的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理位数时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;
按照长度不小于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。
2.如权利要求1所述的方法,其特征在于,按照长度等于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。
3.如权利要求1所述的方法,其特征在于,对图像残差矩阵进行整数变换,具体包括
对图像残差矩阵进行行变换,获得行变换矩阵;
对所述行变换矩阵进行列变换,获得列变换矩阵。
4.如权利要求1所述的方法,其特征在于,基于8×8的整数变换矩阵或4×4的整数变换矩阵对图像残差矩阵进行整数变换。
5.如权利要求1所述的方法,其特征在于,所述图像残差矩阵为图像亮度信息矩阵对应的图像残差矩阵;或
图像色度信息矩阵对应的图像残差矩阵。
6.一种对图像残差矩阵进行整数变换的装置,其特征在于,包括
整数变换单元,用于对图像残差矩阵进行整数变换;
判断单元,用于判断整数变换单元对图像残差矩阵进行整数变换过程中获得的矩阵中各矩形元素所需存储空间的位数是否大于处理器可并行处理位数;
确定单元,用于在判断单元的判断结果为是时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;
移位单元,用于按照长度不小于所述确定单元确定的差值的移位长度,对所述各矩阵元素所需存储空间的位数分别进行右移。
7.一种对图像残差矩阵进行整数反变换的方法,其特征在于,包括
对图像残差矩阵进行整数反变换;
当判断整数反变换过程中获得的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理位数时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;
按照长度不小于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。
8.如权利要求7所述的方法,其特征在于,按照长度等于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。
9.如权利要求7所述的方法,其特征在于,对图像残差矩阵进行整数反变换,具体包括
对图像残差矩阵进行行反变换,获得行反变换矩阵;
对所述行反变换矩阵进行列反变换,获得列反变换矩阵。
10.一种对图像残差矩阵进行整数反变换的装置,其特征在于,包括
整数反变换单元,用于对图像残差矩阵进行整数反变换;
判断单元,用于判断整数反变换单元对图像残差矩阵进行整数反变换过程中获得的矩阵中各矩形元素所需存储空间的位数是否大于处理器可并行处理位数;
确定单元,用于在判断单元的判断结果为是时,确定所述各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;
移位单元,用于按照长度不小于所述确定单元确定的差值的移位长度,对所述各矩阵元素所需存储空间的位数分别进行右移。
全文摘要
本发明公开了一种对图像残差矩阵进行整数变换的方法及装置、对图像残差矩阵进行整数反变换的方法及装置。其中,对图像残差矩阵进行整数变换的方法包括对图像残差矩阵进行整数变换;判断整数变换过程中获得的矩阵中各矩阵元素所需存储空间的位数大于处理器可并行处理位数时,确定各矩阵元素所需存储空间的位数与处理器可并行处理位数的差值;按照长度不小于所述差值的移位长度,对各矩阵元素所需存储空间的位数分别进行右移。按照本发明提供的整数变换的方法及装置,能够解决现有技术中针对各矩阵元素所需存储空间的位数大于9位的图像残差矩阵进行整数变换时,发生数据溢出的问题。
文档编号H04N7/32GK101742328SQ200810226579
公开日2010年6月16日 申请日期2008年11月14日 优先权日2008年11月14日
发明者孙大瑞 申请人:北京中星微电子有限公司, 中星电子股份有限公司