视频编码方法和装置以及解码方法和装置的制造方法

文档序号:9508817阅读:588来源:国知局
视频编码方法和装置以及解码方法和装置的制造方法
【专利说明】
[0001] 本申请是向中国知识产权局提交的申请日为2011年9月28日的标题为"视频编 码方法和装置以及解码方法和装置"的第201180046974. 8号申请的分案申请。
技术领域
[0002] 本发明涉及一种视频编码方法、视频编码设备、视频解码方法和视频解码设备,更 具体地讲,涉及一种用于对大尺寸块进行变换的方法和设备以及用于对变换的大尺寸块进 行逆变换的方法和设备。
【背景技术】
[0003] 根据当前国际视频编码标准(诸如H. 264或MPEG-4),视频信号被分层划分为序 列、帧、条带、宏块和块,其中,块是最小处理单元。在编码方面,经由帧内预测或帧间预测确 定块的预测剩余误差,执行块变换使得能量集中于十进制的系数,并且经由量化、扫描、行 程编码和熵编码对图像数据进行压缩并记录为编码比特流。在解码方面,以相反的顺序执 行上述处理。首先,从比特流提取熵编码的块变换系数。然后,经由反量化和逆变换重建块 的预测剩余误差,并使用预测信息来重建块的视频数据。在编码解码处理中,变换模块是视 频压缩的基础,变换模块的变换性能直接影响编解码器的整体性能。
[0004] 离散余弦变换(DCT)被用作初始视频编码标准(诸如MPEG-ι或H. 261)。在1974 年DCT被引入之后,DCT已被广泛用于图像和视频编码领域。由于DCT在变换域中去除了 图像元素的相关性并且为高效图像压缩准备了基础,因此,与所有次优变换相比,DCT具有 优秀的变换性能。然而,由于使用浮点数表示DCT矩阵,因此由于大量的浮点运算,许多系 统资源被使用。因此,需要新的DCT算法,以便在对大尺寸块执行变换时提高变换效率。

【发明内容】

[0005] 技术问题
[0006] -个或多个示例性实施例提供一种实现关于大尺寸块的快速频率变换的视频编 码方法、视频编码设备、视频解码方法和视频解码设备。一个或多个示例性实施例还提供一 种可经由在量化或反量化处理中执行的缩放或去缩放来补偿当使用快速频率变换时可产 生的变换误差的视频编码方法、视频编码设备、视频解码方法和视频解码设备。
[0007] 技术方案
[0008] 根据示例性实施例,通过针对变换块执行缩放来减小使用快速变换矩阵的IDCT 的结果中的误差。
[0009] 有益效果
[0010] 在根据本发明的图像变换和图像逆变换中,当对大块进行变换和逆变换时,执行 基于整数的运算而非浮点运算,从而降低计算复杂性并提高运算速度。
[0011] 另外,可通过在量化或反量化期间执行缩放或去缩放来补偿基于浮点运算的变换 与快速变换之间的误差值。
【附图说明】
[0012] 通过参照附图详细描述本发明的示例性实施例,本发明的以上和其它特点和优点 将变得更加清楚,其中:
[0013] 图1是根据本发明的实施例的视频编码设备的框图;
[0014] 图2是根据本发明的实施例的4点、8点、16点和32点离散余弦变换(DCT)的流 程图;
[0015] 图3是示出根据本发明的实施例的产生缩放矩阵的方法的流程图;
[0016] 图4a至图4f示出根据本发明的实施例的根据在针对16X 16块的变换中使用的 量化参数的缩放矩阵;
[0017] 图5a至图5f示出根据本发明的实施例的根据在针对32X32块的变换中使用的 量化参数的缩放矩阵;
[0018] 图6a至图6f示出根据本发明的实施例的根据应用于16X 16块的量化参数的去 缩放矩阵;
[0019] 图7a至图7f示出根据本发明的实施例的根据应用于32X32块的量化参数的去 缩放矩阵;
[0020] 图8是根据本发明的另一实施例的32点DCT的流程图;
[0021] 图9是形成图8的32点DCT的蝶形结构的运算处理的参考图;
[0022] 图10是示出根据本发明的实施例的视频编码方法的流程图;
[0023] 图11是根据本发明的实施例的视频解码设备的框图;
[0024] 图12是示出根据本发明的实施例的视频解码方法的流程图。
[0025] 最佳实施方式
[0026] 根据本发明的一方面,提供一种视频编码方法,包括:基于被用于对预定尺寸的块 进行频率变换的变换矩阵来产生快速变换矩阵;通过使用快速变换矩阵对所述预定尺寸的 块进行变换来产生变换块;针对变换块执行缩放以校正用于频率变换的变换矩阵与快速变 换矩阵之间的差。
[0027] 根据本发明的一方面,提供一种视频编码设备,包括:变换器,基于被用于对预定 尺寸的块进行频率变换的变换矩阵来产生快速变换矩阵,并通过使用快速变换矩阵对所述 预定尺寸的块进行变换来产生变换块;量化器,针对变换块执行缩放以校正用于频率变换 的变换矩阵与快速变换矩阵之间的差。
[0028] 根据本发明的一方面,提供一种视频解码方法,包括:接收预定尺寸的量化的变换 块;针对量化的变换块执行去缩放以校正用于对量化的变换块进行频率逆变换的逆变换矩 阵与基于所述逆变换矩阵产生的快速逆变换矩阵之间的差;通过使用快速逆变换矩阵对通 过去缩放所获得的去缩放的变换块进行逆变换来产生逆变换块。
[0029] 根据本发明的一方面,提供一种视频解码设备,包括:反量化器,针对量化的变换 块执行去缩放以校正用于对量化的变换块进行频率逆变换的逆变换矩阵与基于所述逆变 换矩阵产生的快速逆变换矩阵之间的差;逆变换器,通过使用快速逆变换矩阵对通过去缩 放所获得的去缩放的变换块进行逆变换来产生逆变换块。
【具体实施方式】
[0030] 以下,将参照附图更加全面地描述示例性实施例。
[0031 ] 图1是根据本发明的实施例的视频编码设备100的框图。
[0032] 参照图1,视频编码设备100包括预测器110、减法器115、变换器120、量化器130 和熵编码器140。
[0033] 预测器110将输入图像划分为具有预定尺寸的块,并通过对每个块执行帧间预测 或帧内预测来产生预测块。详细地讲,预测器110执行用于通过运动预测和补偿处理来产 生预测块的帧间预测和用于通过使用与当前块相邻的相邻块的数据来产生预测块的帧内 预测,其中,所述运动预测和补偿处理在先前被编码并随后被恢复的参考画面的预定搜索 范围内产生指示与当前块相似的区域的运动矢量。
[0034] 减法器115通过从原始图像数据减去当前块的预测块来产生残差。
[0035] 变换器120将残差变换到频率域。具体地,在本发明的示例性实施例中,可将针对 具有较小尺寸的现有块(诸如4X4块或8X8块)而定义的离散余弦变换(DCT)矩阵扩大 并应用于具有至少16X16尺寸的块。如下所述,变换器120通过用有理数替代用于现有 DCT的变换矩阵的元素,根据移位运算以及基于整数的加法和减法(而非浮点运算)来执行 DCT,从而在提高运算速度的同时降低计算复杂性。根据另一实施例,变换器120可通过使 用包括如下元素的快速变换矩阵执行DCT,从而降低整体计算复杂性,其中,所述如下元素 是通过将用于DCT的变换矩阵的元素乘以2的幂并随后对相乘后的元素进行四舍五入而获 得的。
[0036] 量化器130对变换的残差进行量化。具体地,量化器130执行预定缩放,以便减小 由变换器120使用快速变换矩阵执行的变换的结果与使用基于实际浮点运算的DCT矩阵执 行的变换的结果之间的误差值。稍后将详细描述缩放和量化。
[0037] 熵编码器140通过对量化的图像数据执行可变长度编码来产生比特流。
[0038] 现在将详细描述在图1的变换器120中执行的变换。
[0039] 变换器120针对NXN(其中,N表示整数)输入块执行列式变换和行式变换以 产生NXN变换块。当NXN输入块是Input,行式DCT矩阵是Transform_hor,列式DCT 矩阵是Transform_ver,并且变换结果值是Output时,变换器120执行如等式Output = Transform_horXInputXTransform_ver中表不的矩阵运算以输出变换结果值Output。在 矩阵运算中,第一矩阵乘法Transform_hor X Input相应于针对NXN输入块Input的每一 行的一维(1D)水平 DCT 的执行,Transform_hor X Input 与 Transform_ver 相乘相应于 1D 垂直DCT的执行。行式DCT矩阵Transform_hor是列式DCT矩阵Transform_ver的转置。 虽然以下描述集中于针对N X N输入块执行频率变换和频率逆变换的N X N变换矩阵和N X N 逆变换矩阵,但是本发明的精神还可应用于使用aXb(其中,a和b表示整数)频率变换矩 阵和aXb频率逆变换矩阵的情况。
[0040] 当位于垂直变换矩阵的(i,k)(其中,i和k是整数)位置的元素是Aik时,用于 针对NXN输入块进行变换的垂直变换矩阵的第(i,k)元素Aik可被定义为等式1 :
[0041] [等式 1]

[0044] 由于水平变换矩阵是垂直变换矩阵的转置,因此类似垂直变换矩阵,水平变换矩 阵的第(i,k)元素Bik被表示为使用余弦函数获得的值。变换器120可通过使用以有理数 替代用于DCT的变换矩阵的元素所产生的快速变换矩阵,根据加法、减法和移位运算来执 行DCT。根据另一实施例,变换器120可通过使用由如下元素形成的快速变换矩阵来执行 DCT,其中,所述如下元素是通过将用于DCT的变换矩阵的元素乘以2的幂并随后对相乘后 的元素进行四舍五入而获得的。
[0045] 图2是根据本发明的实施例的4点、8点、16点和32点DCT的流程图。
[0046] 参照图2, f0至f31表示一维(1D)DCT的输入值,并同时表示1D逆离散余弦变换 (IDCT)的输出值。R)至F31表示ID DCT的输出值,并同时表示ID IDCT的输入值。DCT 期间的数据处理方向为从左至右,并且IDCT期间的处理方向为从右至左。2条线相交于点 表示两个数的加法。每条线之上的值表示根据相应系数的乘法。c0表示cos Θ,8Θ表示 sin Θ,并且表示负。指示虚线的参考标号210是4点ID DCT的流程图,指示虚线的参 考标号220是8点ID DCT的流程图,指示虚线的参考标号230是16点ID DCT的流程图, 指示虚线的参考标号240是32点ID DCT的流程图。
[0047] 如流程图200中所示,c Θ和s Θ可根据DCT中的Θ值变为无理数,因此,会增加 计算复杂性。这样的DCT的处理在使用硬件实现时会增加复杂性。因此,根据示例性实施 例,变换器120通过以有理数替代用于DCT的元素的三角函数值来产生与原始DCT矩阵相 似的快速变换矩阵。根据另一示例性实施例,变换器120通过将用于DCT的元素乘以预定 常数(例如,2n)并对相乘后的元素进行四舍五入来产生快速变换矩阵。
[0048] 详细地讲,参照图2,当N是16时,即,当针对16 X 16输入块执行ID DCT时,根据 流程图230以16X 16输入块的16行和16列为单位执行ID DCT。当f = [f0, fl,f2,… ,Π4, Π5]Τ表示16个输入值,F = [F0, Fl,F2,. . .,F14, F15]T表示变换结果值,并 且Original_A表示代表根据流程图230对输入值进行变换的处理的变换矩阵时,F = Original_AXf 表示 ID DCT。
[0049] 如上所述,由于cos Θ和sin Θ可根据Θ值为无理数,因此变换器120以有理数替 代包括在变换矩阵〇riginal_A的元素中的cos Θ和sin Θ。例如,当N = 16时,变换器120 以 a0 替代 cosO,以 al 替代 cos ( π X (1/2) /16),以 a2 替代 cos ( π X (2/2) /16),以 a3 替代 cos ( π X (3/2) /16),以 a4 替代 cos ( π X (4/2) /16),以 a5 替代 cos ( π X (5/2) /16),以 a6 替代 cos ( π X (6/2) /16),以 a7 替代 cos ( π X (7/2) /16),以 a8 替代 cos ( π X (8/2) /16), 以 a9 替代 cos (π X (9/2)/16),以 alO 替代 cos (π X (10/2)/16),以 all 替代 cos (π X (11/2)/16),以 al2 替代 cos (π X (12/2)/16),以 al3 替代 cos (π X (13/2)/16), 以al4替代cos (π X (14/2)/16)以及以al5替代cos (π X (15/2)/16)。类似地,可通过使 用诸如sin Θ = cos (90-Θ)的关系以变量ai替代sin Θ。变量ai可以是有理数,并且每 个变量ai的分母可具有能够进行移位运算的2的幂的值。因为如果分母是2的幂,则可用 右移运算(>>)来替代用于变换所需的除法运算等,所以变量ai限于二进有理数。
[0050] 例如,当N是16时,16个变量ai可以是以下值:al = 63/64,a2 = 62/64,a3 = 61/64, a4 = 59/64, a5 = 56/64, a6 = 53/64, a7 = 49/64, a8 = 45/64, a9 = 40/64, alO =35/64, all = 30/64, al2 = 24/64, al3 = 18/64, al4 = 12/64, al5 = 6/64。
[0051] 如果N是16,则可将通过使用替代的16X 16变换矩阵A针对16X 16输入块所执 行的ID DCT表示为如下运算,其中,Xi (其中,i表示范围0至15中的整数)表示待变换的 输入值,Bi、Ci、Di、Ei和Fi表示中间值,并且Yi表示变换结果值:
[0052] {
[0053] / 阶段 0
[0054] BO = X0+X15 ;B15 = X0-X15
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1