CN102460425B - 计算偶数尺寸的离散余弦变换 - Google Patents
计算偶数尺寸的离散余弦变换 Download PDFInfo
- Publication number
- CN102460425B CN102460425B CN201080025239.4A CN201080025239A CN102460425B CN 102460425 B CN102460425 B CN 102460425B CN 201080025239 A CN201080025239 A CN 201080025239A CN 102460425 B CN102460425 B CN 102460425B
- Authority
- CN
- China
- Prior art keywords
- dct
- sub
- subset
- input
- reduction
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Discrete Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
总体上,描述了用于计算偶数尺寸的离散余弦变换(DCT)的技术。例如,编码设备可以实现这些技术。编码设备包括DCT-II单元,其首先确定要执行的DCT-II是否为2的倍数,并且响应于确定要执行的该DCT-II为2的倍数,执行DCT-II。为了执行该DCT-II,DCT-II单元进行蝶形计算,并将蝶形计算的输出的第一子集的顺序颠倒。然后,DCT-II单元递归地减去蝶形输出的经顺序颠倒的第一子集。DCT-II单元计算蝶形输出的第二子集的子DCT-II和用于经递归相减的第一组蝶形输出的子DCT-III。DCT-II单元将由子DCT-II和子DCT-III所产生的输出重新排序以生成该DCT-II的输出值。
Description
本申请要求于2009年4月15日提交的美国临时申请No.61/169,418的权益,通过引用的方式将其全部内容并入本文。
技术领域
本公开内容涉及数据压缩,更具体地说,涉及包括变换的数据压缩。
背景技术
数据压缩被广泛地用于各种应用,以减少对数据存储空间的消耗、传输带宽或上述两者。数据压缩的示例性应用包括可见或可听的媒体数据编码,诸如数字视频、图像、语音以及音频编码。例如,数字视频编码用于包括数字电视、数字直播系统、无线通信设备、个人数字助理(PDA)、膝上型或桌面型计算机、数码相机、数字记录设备、视频游戏设备、蜂窝或卫星无线电话等的广泛的设备中。数字视频设备实现诸如MPEG-2、MPEG-4或H.264/MPEG-4高级视频编码(AVC)之类的视频压缩技术,以更加高效地发送和接收数字视频。
通常,视频压缩技术执行空间预测、运动估计和运动补偿,以减少或消除视频数据中固有的冗余。特别地,帧内编码依赖于空间预测以减少或消除给定的视频帧内的视频中的空间冗余。帧间编码依赖于时间预测以减少或消除相邻帧内的视频中的时间冗余。对于帧间编码,视频编码器执行运动估计,以跟踪两个或更多个相邻帧之间的匹配视频块的移动。运动估计生成运动向量,该运动向量指示视频块相对于一个或多个参考帧中的对应视频块的位移。运动补偿使用该运动向量来根据参考帧生成预测视频块。在运动补偿之后,通过从原始视频块中减去预测视频块来形成剩余的视频块。
然后,视频编码器应用变换来进一步减小由视频编码过程所产生的剩余块的比特速率,该变换之后是量化和无损统计编码过程。在某些情况下,所应用的变换包括离散余弦变换(DCT)。典型地,DCT应用于二元尺寸的视频块,其中二元尺寸的视频块是其尺寸为2的幂的任何块。由于这些DCT应用于二元尺寸的视频块以产生二元尺寸的DCT系数矩阵,因此这些DCT可以称为二元尺寸的DCT。二元尺寸的DCT的例子包括4x4、8x8以及16x16DCT。之后,通过将二元尺寸的DCT应用到剩余块所产生的二元尺寸的DCT系数矩阵经历量化和无损统计编码过程(通常称为“熵编码”过程),以生成比特流。统计编码过程的实例包括上下文自适应可变长度编码(CAVLC)或上下文自适应二进制算术编码(CABAC)。视频解码器接收经编码的比特流并执行无损解码,以针对每个块来解压缩剩余信息。使用剩余信息和运动信息,视频解码器重构编码的视频。
发明内容
总体上,本公开内容涉及用于使用一个或多个非二元的偶数尺寸的离散余弦变换(DCT)来编码数据(诸如,媒体数据)的技术。非二元的偶数尺寸的DCT可以包括应用于媒体编码器中以用于对诸如具有尺寸为2的倍数而非2的幂的视频块之类的媒体数据进行编码的DCT。例如,非二元的偶数尺寸的DCT可以包括6x6、10x10、12x12、或者是2的倍数而非2的幂的类似尺寸的DCT。根据本公开内容的技术实现的DCT在压缩效率和实现复杂度方面可以是有效率的。压缩效率指的是可以在后续的量化和无损统计编码过程的应用期间达到的数据压缩的量或百分比。实现复杂度指的是为了实现给定的非二元尺寸的DCT而在媒体编码器中所需要的数学操作的数量和类型。在某些情况下,与二元尺寸的DCT相比,根据本公开内容的技术实现的非二元的偶数尺寸的DCT可以在压缩效率和实现复杂度两方面更有效率地执行。
在一个方面中,一种执行缩减的类型II的离散余弦变换(DCT-II)的方法,包括:利用装置确定要执行的缩减的DCT-II的尺寸是否是2的倍数,并且响应于确定要执行的缩减的DCT-II的尺寸是2的倍数,利用所述装置执行缩减的DCT-II。执行缩减的DCT-II包括:进行蝶形计算,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;颠倒经交叉相减的输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集;以及计算一系列递归减法,该递归减法每次递归地减去所述输入的经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集。执行缩减的DCT-II还包括:计算缩减的子DCT-II,该缩减的子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;计算完整的子DCT-II,该完整的子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;以及,将由输入的第二子集产生的第一和第二组输出以及完整的子DCT-III重新排序,以生成该DCT-II的缩减的输出值。
在另一方面中,一种媒体编码设备包括缩减的DCT-II单元,其确定要执行的缩减的DCT-II的尺寸是否是2的倍数,并且响应于确定要执行的该缩减的DCT-II的尺寸是2的倍数,执行缩减的DCT-II。所述缩减的DCT-II单元包括:蝶形计算单元,其进行蝶形计算,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中,该蝶形单元包括将输入的第一子集交叉相加的第一部分和将输入的第二子集交叉相减的第二部分;顺序颠倒单元,其颠倒经交叉相减的输入的第二子集的顺序以生成输入的经顺序颠倒的第二子集;以及递归减法单元,其计算一系列递归减法,该递归减法每次递归地减去输入的经顺序颠倒的第二子集以生成输入的经递归相减的第二子集。缩减的DCT-II单元还包括:缩减的子DCT-II单元,其计算缩减的子DCT-II,该缩减的子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;以及完整的子DCT-III单元,其计算完整的子DCT-III,该完整的子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出。然后,缩减的DCT-II单元将分别由缩减的子DCT-II和完整的子DCT-III产生的第一和第二组输出重新排序,以生成该DCT-II的缩减的输出值。
在另一方面中,一种非瞬态计算机可读介质包括用于使处理器执行下列操作的指令:确定要执行的缩减的DCT-II的尺寸是否是2的倍数,并且响应于确定要执行的该缩减的DCT-II的尺寸是2的倍数,执行缩减的DCT-II。使处理器执行缩减的DCT-II的指令包括使该处理器执行下列操作的指令:进行蝶形计算,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中,该蝶形单元包括将输入的第一子集交叉相加的第一部分和将输入的第二子集交叉相减的第二部分;颠倒经交叉相减的输入的第二子集的顺序,以生成输入的经顺序颠倒的第二子集;计算一系列递归减法,该递归减法每次递归地减去输入的经顺序颠倒的第二子集以生成输入的经递归相减的第二子集;计算缩减的子DCT-II,该缩减的子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;计算完整的子DCT-III,该完整的子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;以及,将分别由缩减的子DCT-II和完整的子DCT-III产生的第一和第二组输出重新排序,以生成该DCT-II的缩减的输出值。
在另一方面中,一种装置包括用于进行下列操作的模块:确定要执行的缩减的DCT-II的尺寸是否是2的倍数,并且响应于确定要执行的该缩减的DCT-II的尺寸是2的倍数,执行缩减的DCT-II。用于执行缩减的DCT-II的模块包括:用于进行蝶形计算的模块,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中,该蝶形单元包括将输入的第一子集交叉相加的第一部分和将输入的第二子集交叉相减的第二部分;用于颠倒经交叉相减的输入的第二子集的顺序以生成输入的经顺序颠倒的第二子集的模块;以及用于计算一系列递归减法的模块,该递归减法每次递归地减去输入的经顺序颠倒的第二子集以生成输入的经递归相减的第二子集。用于执行缩减的DCT-II的模块还包括:用于计算缩减的子DCT-II的模块,该缩减的子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;用于计算完整的子DCT-III的模块,该完整的子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;以及,用于将分别由缩减的子DCT-II和完整的子DCT-III产生的第一和第二组输出重新排序,以生成该DCT-II的缩减的输出值的模块。
在另一方面中,一种用于执行完整的类型II的离散余弦变换(DCT-II)的方法包括:用装置确定要执行的完整的DCT-II的尺寸是否是2的倍数,并且响应于确定要执行的完整的DCT-II的尺寸是2的倍数,利用所述装置执行完整的DCT-II。执行完整的DCT-II包括:进行蝶形计算,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;颠倒经交叉相减的输入的第二子集的顺序以生成所述输入的经顺序颠倒的第二子集;以及,计算一系列递归减法,该递归减法每次递归地减去所述输入的经顺序颠倒的第二子集,以生成输入的经递归相减的第二子集。执行完整的DCT-II还包括:计算完整的子DCT-II,该完整的子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;计算完整的子DCT-III,该完整的子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;将第一组输出乘以一个或多个缩减因子以生成第一组完整的输出;以及,将第一组完整的输出和第二组输出重新排序,以生成该DCT-II的输出值。
在另一方面中,一种媒体编码设备包括:完整的DCT-II单元,其确定要执行的完整的DCT-II的尺寸是否是2的倍数,并且响应于确定要执行的完整的DCT-II的尺寸是2的倍数,执行完整的DCT-II。完整的DCT-II包括:蝶形单元,其进行蝶形计算,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中该蝶形单元包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;顺序颠倒单元,其颠倒经交叉相减的输入的第二子集的顺序以生成所述输入的经顺序颠倒的第二子集;以及递归减法单元,其计算一系列递归减法,该递归减法每次递归地减去所述输入的经顺序颠倒的第二子集,以生成输入的经递归相减的第二子集。完整的DCT-II还包括:完整的子DCT-II单元,其计算完整的子DCT-II,该完整的子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;完整的子DCT-III单元,计算完整的子DCT-III,该完整的子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;以及缩减单元,其将DCT-III的输出乘以一个或多个缩减因子以生成第一组完整的输出。然后,完整的DCT-II单元将第一组完整的输出和第二组输出重新排序,以生成该DCT-II的输出值。
在另一方面,一种非瞬态计算机可读介质包括用于使处理器执行下列操作的指令:确定要执行的完整的DCT-II的尺寸是否是2的倍数,并且响应于确定要执行的完整的DCT-II的尺寸是2的倍数,执行完整的DCT-II。使所述处理器执行完整的DCT-II的指令包括使所述处理器执行下列操作的指令:进行蝶形计算,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;颠倒经交叉相减的输入的第二子集的顺序以生成所述输入的经顺序颠倒的第二子集;计算一系列递归减法,该递归减法每次递归地减去所述输入的经顺序颠倒的第二子集,以生成输入的经递归相减的第二子集;计算完整的子DCT-II,该完整的子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;计算完整的子DCT-III,该完整的子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;将第一组输出乘以一个或多个缩减因子以生成第一组完整的输出;以及,将第一组完整的输出和第二组输出重新排序,以生成该DCT-II的输出值。
在另一方面,一种装置包括:用于确定要执行的完整的DCT-II的尺寸是否是2的倍数的模块;以及,用于响应于确定要执行的完整的DCT-II的尺寸是2的倍数,执行完整的DCT-II的模块。用于执行完整的DCT-II的模块包括:用于进行蝶形计算的模块,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;用于颠倒经交叉相减的输入的第二子集的顺序以生成所述输入的经顺序颠倒的第二子集的模块;以及,用于计算一系列递归减法的模块,该递归减法每次递归地减去所述输入的经顺序颠倒的第二子集,以生成输入的经递归相减的第二子集。用于执行完整的DCT-II的模块还包括:用于计算完整的子DCT-II的模块,该完整的子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;用于计算完整的子DCT-III的模块,该完整的子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;用于将第一组输出乘以一个或多个缩减因子以生成第一组完整的输出的模块;以及,用于将第一组完整的输出和第二组输出重新排序,以生成该DCT-II的输出值的模块。
在另一方面中,一种用于执行类型III的离散余弦变换(DCT-III)的方法包括:利用装置确定要执行的DCT-III的尺寸是否是2的倍数,并且响应于确定要执行的DCT-III的尺寸是2的倍数,利用所述装置执行DCT-III。执行DCT-III包括执行类型II的DCT(DCT-II)的逆,其中,执行DCT-II包括:进行蝶形计算,该蝶形计算包括DCT-II的输入的交叉加法和交叉减法,其中,蝶形计算包括将输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;颠倒经交叉相减的输入的第二子集的顺序以生成所述输入的经顺序颠倒的第二子集;以及,计算一系列递归减法,该递归减法每次递归地减去所述输入的经顺序颠倒的第二子集,以生成输入的经递归相减的第二子集。执行DCT-II还包括:计算子DCT-II,该子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;计算子DCT-III,该子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;以及,将分别由子DCT-II和子DCT-III产生的第一和第二组输出重新排序以生成该DCT-II的输出值。
在另一方面中,一种媒体编码设备包括DCT-III单元,其确定要执行的DCT-III的尺寸是否是2的倍数,并且响应于确定要执行的DCT-III的尺寸是2的倍数,执行DCT-III。DCT-III单元执行由DCT-II单元执行的类型II的DCT(DCT-II)的逆。为了执行DCT-II,DCT-II单元包括:蝶形单元,其进行蝶形计算,该蝶形计算包括DCT-II的输入的交叉加法和交叉减法,其中,蝶形单元包括将输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;顺序颠倒单元,其颠倒经交叉相减的输入的第二子集的顺序以生成所述输入的经顺序颠倒的第二子集;递归减法单元,其计算一系列递归减法,该递归减法每次递归地减去所述输入的经顺序颠倒的第二子集,以生成输入的经递归相减的第二子集;子DCT-II单元,其计算子DCT-II,该子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;以及子DCT-III单元,计算子DCT-III,该子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出。DCT-II单元将分别由子DCT-II和子DCT-III产生的第一和第二组输出重新排序,以生成该DCT-II的缩减的输出值。
在另一方面,一种非瞬态计算机可读介质包括用于使处理器进行下列操作的指令:确定要执行的DCT-III的尺寸是否是2的倍数,并且响应于确定要执行的DCT-III的尺寸是2的倍数,执行DCT-III。所述指令使所述处理器通过执行类型II的DCT(DCT-II)的逆来执行DCT-III,其中,通过进行下列操作来执行DCT-II:进行蝶形计算,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中,蝶形计算包括将输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;颠倒经交叉相减的输入的第二子集的顺序以生成所述输入的经顺序颠倒的第二子集;计算一系列递归减法,该递归减法每次递归地减去所述输入的经顺序颠倒的第二子集,以生成输入的经递归相减的第二子集;计算子DCT-II,该子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;计算子DCT-III,该子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;以及,将分别由子DCT-II和子DCT-III产生的第一和第二组输出重新排序,以生成该DCT-II的输出值。
在另一方面,一种装置包括:用于确定要执行的DCT-III的尺寸是否是2的倍数的模块;以及用于响应于确定要执行的DCT-III的尺寸是2的倍数,执行DCT-III的模块。用于执行DCT-III的模块包括用于执行DCT-II的逆的模块,其中,通过进行下列操作来执行DCT-II:进行蝶形计算,该蝶形计算包括到DCT-II的输入的交叉加法和交叉减法,其中,蝶形计算包括将输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;颠倒经交叉相减的输入的第二子集的顺序以生成所述输入的经顺序颠倒的第二子集;计算一系列递归减法,该递归减法每次递归地减去所述输入的经顺序颠倒的第二子集,以生成输入的经递归相减的第二子集;计算子DCT-II,该子DCT-II接收输入的第一子集并基于该输入的第一子集生成第一组输出;计算子DCT-III,该子DCT-III接收输入的经递归相减的第二子集并基于该输入的经递归相减的第二子集生成第二组输出;以及将分别由子DCT-II和子DCT-III产生的第一和第二组输出重新排序,以生成该DCT-II的输出值。
在下面的附图和描述中给出了本技术的一个或多个方面的细节。根据这些描述和附图以及根据权利要求,本技术的其它特征、目的、以及优点将显而易见。
附图说明
图1是示出了视频编码和解码系统的框图。
图2是示出了图1中示出的视频编码器的示例的框图。
图3是示出了图1的视频解码器的示例的框图。
图4是示出了由根据本公开内容中描述的技术所实现的非二元尺寸的DCT-II单元执行的示例性递归迭代的流程图。
图5A-5B是示出了本公开内容中描述的用于执行尺寸为n的偶数尺寸的完整DCT-II的递归技术的迭代的框图。
图6是示出了与二元和非二元尺寸的DCT-II的有效实现的实现复杂度有关的编码增益的图表的图。
图7是示出了由根据本公开内容中描述的技术实现的缩减的非二元尺寸的DCT-II单元执行的示例性递归迭代的流程图。
图8是示出了本公开内容中描述的用于执行尺寸为n的偶数尺寸的缩减的DCT-II的递归技术的迭代的框图。
具体实施方式
一般而言,本公开内容涉及用于使用一个或多个非二元的偶数尺寸的离散余弦变换(DCT)来对数据进行编码的技术。可以应用该技术来压缩包括可见或可听的媒体数据(诸如,数字视频、图像、语音和/或音频数据)的各种数据,并从而将表示这种数据的这些电信号变换成压缩的信号,以用于更加有效的处理、传输或电信号的存档。非二元的偶数尺寸的DCT包括应用于具有为2的倍数而非2的幂的尺寸的视频块的DCT。例如,非二元尺寸的DCT可以包括6x6、6x10、10x6、10x10、10x12、12x10、12x12、以及具有为2的倍数而非2的幂的大小的任意其它类似尺寸的DCT。如下面更加详细描述的,当与诸如传统上用于音频、语音、图像和视频数据的压缩的常规4x4、8x8和16x16尺寸的DCT之类的二元尺寸的DCT相比时,这些非二元的偶数尺寸的DCT在实现复杂度和得到的数据压缩方面可以更加有效。
上面所表示的尺寸,无论是二元的还是非二元的,均是按照离散数据单元来表示的。为了进行说明,视频数据常常按照视频块进行描述,尤其是针对视频压缩。视频块通常指的是视频帧的任何尺寸的部分,其中,视频帧指的是一系列图片或图像中的一幅图片或图像。每个视频块一般包括多个离散像素数据,这些离散像素数据指示颜色分量(例如,红色、蓝色和绿色)(所谓的“色品”或“色度”分量)或光度分量(所谓的“亮度”分量)。每组像素数据包括视频块中的单个1x1点,并且可以被认为是关于视频块的离散数据单元。因而,非二元尺寸的6x6视频块例如包括6个像素行的像素数据,其中每一行中具有离散的6组像素数据。
通常按照数据块的尺寸来对DCT进行描述,无论是音频、语音图像、还是视频数据,DCT都能够进行处理。例如,如果DCT可以处理非二元的偶数尺寸的6x6数据块,则该DCT可以称为6x6DCT。此外,DCT可以表示为特定类型。8种不同类型的DCT中最常用的DCT类型是类型-II的DCT,其可以表示为“DCT-II”。经常地,当一般性地提到DCT时,这种引用指的是类型-II的DCT或DCT-II。DCT-II的逆称为类型-III的DCT,其可以类似地表示为“DCT-III”,或者“IDCT”,其中“IDCT”中的“I”表示逆(就一般理解,DCT指的是“DCT-II”)。下面对DCT的引用遵照这种表示法,其中,除非另有规定,对DCT的一般引用指的是DCT-II。然而,为了避免混淆,DCT(包括DCT-II)在下面所涉及的大多数情况下具有指示出的相应类型(II、III等)。
本公开内容中描述的技术包括采用这些非二元尺寸的DCT-II的有效实现以促进数据的压缩和/或解压缩的编码器和/或解码器。再次,使用这种算法完成的压缩和解压缩允许对表示数据的电信号进行物理变换,以便可以使用物理计算硬件、物理传输介质(例如,铜、光纤、无线或其它介质)、和/或存储硬件(例如,磁盘或光盘或磁带、或各种固态介质中的任意一个)来更有效地处理、发送和/或存储这些信号。在压缩效率和实现复杂度方面,非二元的偶数尺寸的DCT的实现是高效的,并且可能是最佳的。压缩效率指的是可以在后续的量化和无损统计编码过程的应用期间达到的数据压缩的量或百分比。实现复杂度指的是为了完成给定的非二元尺寸的DCT而在媒体编码器中需要实现的数学操作的数量和类型。虽然下面针对视频编码器和/或解码器进行描述,但是该技术也可以应用于其它媒体编码器和适合于使用DCT-II进行压缩的任何形式的数据,诸如音频、语音或图像数据。
非二元的偶数尺寸的DCT-II的实现通常包括递归过程。本公开内容中使用的术语“递归”指的是在计算机科学背景中所知的递归。在此背景中的术语“递归”暗示对问题的解决方案依赖于对同一问题的更小实例的解决方案。大多数计算机编程语言通过使函数能够调用或请求其自身来允许递归。根据本公开内容的技术实现的DCT-II可以采用递归来递归地将较大尺寸的DCT-II划分成越来越小的尺寸的DCT-II,直到该较小尺寸的DCT-II可以被求解的某一点。为了进行说明,为了对12x12的数据块执行12x12DCT-II,根据本公开内容的技术实现的DCT-II可以将12x12DCT-II划分成一个类型II和一个类型III的两个6x6DCT。然后,该实现对6x6DCT-II调用其自身,因此该实现将6x6DCT-II划分成两个3x3DCT-II。然后,该实现计算针对12x12数据块的一部分的6x6DCT-III、针对12x12数据块的另一部分的第一3x3DCT-II以及针对12x12数据块的又一部分的第二3x3DCT-II。凭借该递归过程,由于该DCT-II实现可以计算任意非二元偶数尺寸的数据块的DCT-II,因此该实现可以被认为是可变尺寸的DCT-II实现。
在某些方面,根据本公开内容的技术实现的DCT-II可以被缩减,这指的是不包含特定因子的实现。考虑到去掉了这些因子,由于DCT系数被缩减,因此缩减的DCT-II实现输出没有准确地表示输入数据的这些DCT系数。在包括可以应用被去掉的因子的后续过程(诸如,量化)的编码应用中,缩减的实现常常是有利的。由于量化通常包括许多乘法和加法,因此将这些因子合并到量化中通常基本上不会增加实现复杂度。因此,缩减的DCT-II实现通常是有利的,这是因为这些实现降低了实现复杂度同时提供了与相应的完整或非缩减的DCT-II实现相同的编码增益。虽然下面针对缩减实现进行了一般描述,但是可以根据本公开内容的技术实现完整DCT-II。
图1是示出了视频编码和解码系统10的框图。如图1中所示,系统10包括源硬件设备12,该源硬件设备12将经编码的视频经由通信信道16发送到接收硬件设备14。源设备12可以包括视频源18、视频编码器20和发射机22。目的设备14可以包括接收机24、视频解码器26和视频显示设备28。
在图1的示例中,通信信道16可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或多个物理传输线、或无线和有线介质的任意组合。信道16可以构成诸如局域网、广域网或全球网(诸如,因特网)之类的基于分组的网络的一部分。通信信道16通常表示用于将视频数据从源设备12发送到接收设备14的任何适当的通信介质、或不同通信介质的集合。
源设备12生成用于传输到目的设备14的视频。然而,在某些情况中,设备12、14可以以基本上对称的方式来操作。例如,设备12、14中的每一个可以包括视频编码和解码组件。因此,系统10可以支持在视频设备12、14之间的单向或双向视频传输,例如,针对视频流、视频广播或视频电话。对于其它数据压缩和编码应用,设备12、14可以配置成发送和接收、或交换其它类型的数据,诸如图像、语音或音频数据、或视频、图像、语音和音频数据中的两种或更多种的组合。因此,提供对视频应用的讨论是出于说明的目的,而不应被认为是对本文广泛描述的公开内容的各个方面的限制。
视频源18可以包括视频采集设备(诸如一个或多个摄像机)、包含先前采集的视频的视频存档、或来自视频内容供应商的现场视频馈给。作为进一步可替换的,视频源18可以生成基于计算机图形的数据作为源视频,或现场视频和计算机生成的视频的组合。在某些情况中,如果视频源18是相机,那么源设备12和接收设备14可以构成所谓的相机电话或视频电话。因此,在某些方面,源设备12、接收设备14或这两者可以构成无线通信设备手机,诸如移动电话。在每种情况中,采集的、预采集的或计算机生成的视频可以由视频编码器20进行编码,以便经由发射机22、信道16和接收机24从视频源设备12传输到视频接收设备14的视频解码器26。显示设备28可以包括诸如液晶显示器(LCD)、等离子显示器或有机发光二极管(OLED)显示器之类的各种显示设备中的任何一种。
视频编码器20和视频解码器26可以配置成支持针对空间、时间和/或信噪比(SNR)可伸缩性的可伸缩的视频编码。在某些方面,视频编码器20和视频解码器26可以配置成支持细粒度SNR可伸缩性(FGS)编码。编码器20和解码器26可以通过支持基础层和一个或多个可伸缩的增强层的编码、传输和解码来支持各种级别的可伸缩性。对于可伸缩的视频编码,基础层携带具有最低等级的质量的视频数据。一个或多个增强层携带附加比特流来支持更高的空间、时间和/或SNR等级。
视频编码器20和视频解码器26可以根据诸如MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4高级视频编码(AVC)之类的视频压缩标准来进行操作。虽然在图1中未示出,但在某些方面,视频编码器20和视频解码器26可以分别集成有音频编码器和解码器,并且包括适当的MUX-DEMUX单元、或其它硬件和软件,以处理公共数据流或单独数据流中的音频和视频两者的编码。如果适用,MUX-DEMUX单元可以遵守ITUH.223多路复用协议、或诸如用户数据报协议(UDP)之类的其它协议。
在某些方面,对于视频广播而言,本公开内容中描述的技术可以应用于增强H.264视频编码,以便在陆地移动多媒体多播(TM3)系统中,使用仅前向链路(FLO)空中接口技术规范(作为技术标准TIA-1099(“FLO技术规范”)发布的“Forward Link Only Air Interface Specification forTerrestrial Mobile Multimedia Multicast(用于陆地移动多媒体多播的仅前向链路空中接口技术规范)”),例如经由无线视频广播服务器或无线通信设备手机来传送实时视频服务。FLO技术规范包括定义比特流的句法和语义的示例以及适用于FLO空中接口的解码过程。可替换地,可以根据诸如DVB-H(手持数字视频广播)、ISDB-T(地面综合业务数字广播)或DMB(数字媒体广播)之类的其它标准来广播视频。因此,源设备12可以是移动无线终端、视频流服务器或视频广播服务器。然而,本公开内容中描述的技术不限于任何特定类型的广播、多播或点对点系统。在广播的情况中,源设备12可以将若干个信道的视频数据广播到多个接收设备,其中每个接收设备可以类似于图1的接收设备14。
视频编码器20和视频解码器26中的每一个可以实现为一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或上述的任意组合。因此,视频编码器20和视频解码器26中的每一个可以至少部分地实现为集成电路(IC)芯片或设备,并且被包括在一个或多个编码器或解码器中,视频编码器20和视频解码器26中的任一个可以被集成为各自的移动设备、用户设备、广播设备、服务器等中的组合编码器/解码器(CODEC)的一部分。另外,源设备12和接收设备14中的每一个可以包括适当的调制、解调、频率变换、滤波和放大器组件,以用于编码视频的发送和接收,如果适用,还包括足以支持无线通信的射频(RF)无线组件和天线。然而,为了易于说明,这些组件未在图1中示出。
视频序列包括一系列视频帧。视频编码器20对单个视频帧中的像素块进行操作,以对视频数据进行编码。视频块可以具有固定的或变化的尺寸,并且可以根据指定的编码标准而在尺寸上不同。每个视频帧包括一系列片段。每个片段可以包括一系列的宏块,这些宏块可以排列成子块。作为一个例子,ITU-T H.264标准支持各种二元块尺寸(诸如,针对亮度分量的16x16、8x8、4x4,以及针对色度分量的8x8)中的帧内预测以及各种块尺寸(诸如,针对亮度分量的16x16、16x8、8x16、8x8、8x4、4x8和4x4,以及针对色度分量的相应缩减的尺寸)中的帧间预测。
较小的视频块通常可以提供更好的分辨率,并且可以用于包括更高等级的细节的视频帧的位置。一般而言,宏块(MB)和各种子块通常可以被认为表示视频块。另外,片段可以被认为表示一系列诸如MB和/或子块之类的视频块。每个片段可以是可独立解码的单元。在预测之后,可以对二元或非二元尺寸的剩余块执行变换,并且如果使用帧内_16x16预测模式,则可以将附加变换应用于针对色度分量或亮度分量的4x4块的DCT系数。
图1的系统10的视频编码器20和/或视频解码器26可以配置成分别包括非二元尺寸的DCT-II及其逆(例如,非二元尺寸的DCT-III)的实现,其中非二元尺寸的DCT-II是根据本公开内容中描述的技术来实现的。虽然ITU-T H.264标准支持各种二元块尺寸(诸如,针对亮度分量的16x16、8x8、4x4,以及针对色度分量的8x8)中的帧内预测,但是对该标准的改善编码效率的修订当前正在进行。一个修订的标准可以称为ITU-T H.265或简称为H.265(有时称为下一代视频编码或NGVC)。如下面关于图6所描述的,类型-II的非二元尺寸的DCT(“DCT-II”)可以改善编码效率,同时比起类似的二元尺寸的DCT-II,还促进了具有更小复杂度的这些非二元尺寸的DCT-II的缩减实现。因此,ITU-T H.265和其它演进的标准或技术规范可以考虑非二元尺寸的DCT-II的实现,以便改善编码效率。
根据本公开内容中描述的技术,非二元尺寸的DCT-II的缩减实现和完整实现均可以采用递归过程来执行任何偶数尺寸的DCT-II。本公开内容中使用的术语“递归”指的是在计算机科学背景中所知的递归。在此背景中的术语“递归”暗示对问题的解决方案依赖于对同一问题的更小实例的解决方案。大多数计算机编程语言通过使函数能够调用或请求其自身来允许递归。关于本公开内容的技术,递归过程包括偶数尺寸的DCT-II的递归划分,以高效地(如果不是最佳的)计算任何偶数尺寸的DCT-II。
根据本公开内容的技术实现的DCT-II可以采用递归来递归地将较大尺寸的DCT-II划分成越来越小的尺寸的DCT-II,直到该较小尺寸的DCT-II可以被求解的某一点。为了进行说明,为了对12x12的数据块执行12x12DCT-II,根据本公开内容的技术实现的DCT-II可以将12x12DCT-II划分成一个类型II和一个类型III的两个6x6DCT。然后,该实现进行递归来计算6x6DCT-II,因此,该实现将6x6DCT-II划分成两个3x3DCT-II。然后,该实现计算针对12x12数据块的一部分的6x6DCT-III、针对12x12数据块的另一部分的第一3x3DCT-II以及针对12x12数据块的又一部分的第二3x3DCT-II。凭借该递归过程,因为该DCT-II实现可以计算任意非二元偶数尺寸的数据块的DCT-II,因此该实现可以被认为是可变尺寸的DCT-II实现。
在某些方面,根据本公开内容的技术实现的DCT-II可以被缩减,这指的是不包含特定因子的实现。考虑到去掉了这些因子,由于DCT系数被缩减,因此缩减的DCT-II实现输出没有准确地表示输入数据的这些DCT系数。在包括可以应用被去掉的因子的后续过程(诸如,量化)的编码应用中,缩减实现常常是有利的。由于量化通常包括许多乘法和加法,因此将这些因子合并到量化中通常基本上不会增加实现复杂度。因此,缩减的DCT-II实现通常是有利的,这是因为这些实现降低了实现复杂度同时提供了与相应的完整或非缩减的DCT-II实现相同的编码增益。虽然下面针对缩减实现进行了一般描述,但是可以根据本公开内容的技术实现完整DCT-II。
通常,由根据本公开内容的技术实现的DCT-II执行的操作包括首先确定要执行的DCT-II的尺寸是否为2的倍数。换句话说,通过确定要执行的DCT-II不是2的倍数,本公开内容中描述的DCT-II实现提供了从递归迭代的出口。如果要执行的DCT-II不是2的倍数,则递归迭代结束,并且计算该不是2的幂的要执行的DCT-II。响应于确定要执行的DCT-II的尺寸是2的倍数,该DCT-II实现首先进行蝶形计算,该蝶形计算包括对DCT-II的输入的交叉加法和交叉减法。该蝶形计算包括对DCT-II实现的输入的第一子集进行交叉相加的第一部分,和对DCT-II实现的输入的第二子集进行交叉相减的第二部分。
在进行蝶形计算之后,DCT-II实现将经交叉相减的输入的第二子集的顺序颠倒,以生成该输入的颠倒顺序的第二子集。然后,该DCT-II实现计算一系列递归减法,其中每个递归减法递归地减去该输入的颠倒顺序的第二子集,以生成该输入的经递归相减的第二子集。一旦计算出来,则该DCT-II实现然后计算缩减的子DCT-II,该缩减的子DCT-II接收所述输入的第一子集并基于所述输入的第一子集生成输出的第一集合。为了计算该子DCT-II,DCT-II实现可以进行递归,因此,DCT-II实现执行上面描述的步骤以计算该子DCT-II。
为了再次进行说明,DCT-II实现可以接收表示剩余视频数据的12x12数据块。为了对12x12的剩余视频数据块执行12x12DCT-II,DCT-II实现可以计算6x6DCT-II,该6x6DCT-II是上面所提及的子DCT-II的一个例子。为了计算该6x6DCT-II,DCT-II实现可以首先确定该子DCT-II的尺寸是否是2的倍数。假定该6x6DCT-II的尺寸是2的倍数,则该DCT-II实现可以执行上述所有的计算、颠倒和其它操作,包括计算为该6x6DCT-II的子DCT-II的尺寸为3x3的另一子DCT-II。再一次地,该DCT-II实现可以进行递归以计算该3x3子DCT-II,除了在这个实例中,该DCT-II实现确定该3x3子DCT-II的尺寸不是2的倍数。作为该确定的结果,DCT-II实现通过参考存储该3x3DCT-II的矩阵系数的库或其它数据存储器来直接计算该3x3DCT-II。然后,DCT-II实现返回先前的递归迭代并计算3x3DCT-III以计算6x6子DCT-II。再次,为了计算该3x3DCT-III,DCT-II实现访问存储3x3DCT-III的矩阵系数的库或数据存储器。
然后,如下面更加详细描述的,DCT-II实现通过计算3x3DCT-II和3x3DCT-III来求解6x6DCT-II,并返回先前的递归迭代。在返回之后,DCT-II实现计算尺寸为6x6的完整子DCT-III,该完整子DCT-III接收所述输入的经递归相减的第二子集并基于所述输入的经递归相减的第二子集生成输出的第二集合。再次,DCT-II实现可以通过访问存储该6x6DCT-III的矩阵系数的库或其它数据存储器来求解该6x6DCT-III。然后,DCT-II实现将由各缩减的子DCT-II和完整的子DCT-III产生的输出的第一集合和第二集合重新排序,以生成该DCT-II的缩减的输出值。
虽然在本公开内容中针对特定形式的变换(例如,DCT)进行了描述,但是可以应用该技术来产生能够将数据从空间域变换到频率域的变换的其它偶数尺寸的实现。然而,在某些情况下,该技术仅可以应用于不将位置考虑在内的变换。也就是说,该技术可能不应用于在空间上定位的变换,诸如小波变换。此外,虽然针对非二元尺寸的DCT-II进行了描述,但根据本公开内容的技术实现的DCT-II还可以应用于二元和非二元尺寸的变换,只要这些变换是偶数尺寸的以便允许上面的递归过程。
图2是示出了如图1中所示的视频编码器20的例子的框图。视频编码器20可以至少部分地构成为一个或多个集成电路设备,其可以总称为集成电路设备。在某些方面,视频编码器20可以构成无线通信设备手机或广播服务器的一部分。视频编码器20可以执行视频帧中的块的帧内编码和帧间编码。帧内编码依赖于空间预测,以减少或消除给定的视频帧内的视频中的空间冗余。帧间编码依赖于时间预测,以减少或消除视频序列的相邻帧内的视频中的时间冗余。对于帧间编码,视频编码器20执行运动估计来跟踪相邻帧之间的匹配视频块的移动。
如图2中所示,视频编码器20接收要进行编码的视频帧中的当前视频块30。在图2的例子中,视频编码器20包括运动估计单元32、参考帧存储器34、运动补偿单元36、块变换单元38、量化单元40、逆量化单元42、逆变换单元44和熵编码单元46。循环内或循环后解块滤波器(未示出)可以应用于滤波块,以消除去块效应(blocking artifact)。视频编码器20还包括加法器48和加法器50。图2示出了用于视频块的帧间编码的视频编码器20的时间预测组件。虽然为了易于说明而未在图2中示出,但视频编码器20还可以包括用于某些视频块的帧内编码的空间预测组件。
运动估计单元32将视频块30与一个或多个相邻视频帧中的块相比较,以生成一个或多个运动向量。可以从参考帧存储器34中获取相邻的一个帧或多个帧,其中参考帧存储器34可以包括用于存储根据先前编码的块重构的视频块的任何类型的存储器或数据存储设备。可以针对可变尺寸(例如,16x16、16x8、8x16、8x8或更小的块尺寸)的块以及非二元尺寸(诸如,6x6、10x10和12x12)的块来执行运动估计。运动估计单元32例如基于速率失真模型来识别相邻帧中最匹配当前视频块30的一个或多个块,并确定相邻帧中的这些块和当前视频块之间的位移。在此基础上,运动估计单元32生成一个或多个运动向量(MV),该一个或多个运动向量指示当前视频块30和来自用于对当前视频块30进行编码的参考帧的一个或多个匹配块之间的位移的幅度和轨迹。一个或多个匹配块将用作用于对要进行编码的块进行帧间编码的预测性(或预测)块。
运动向量可以具有二分之一像素精度或四分之一像素精度,或更精细的精度,以允许视频编码器20用比整数像素定位更高的精度来跟踪运动并获得更好的预测块。当使用具有分数像素值的运动向量时,在运动补偿单元36中执行内插操作。运动估计单元32使用某些标准(诸如速率失真模型)来识别视频块的最佳的块分割和一个或多个运动向量。例如,在双向预测的情况中,可以不仅仅有运动向量。运动补偿单元36使用所得到的块分割和运动向量来形成预测视频块。
视频编码器20通过在加法器48处从原始的当前视频块30中减去由运动补偿单元36产生的预测视频块来形成剩余视频块。块变换单元38应用产生剩余变换块系数的变换。如图2中所示,块变换单元38包括根据本公开内容中描述的技术产生的至少一个非二元尺寸的DCT-II单元52。如下所示,非二元尺寸的DCT-II单元52可以表示缩减的或完整的DCT。DCT-II单元52表示实现本公开内容中描述的技术的硬件模块或硬件和软件组合(诸如,执行软件代码或指令的数字信号处理器或DSP)的模块。块变换单元38将非二元尺寸的DCT-II单元52应用到剩余块,以产生剩余变换系数的非二元尺寸的块。DCT-II单元52通常将剩余块从空间域(其表示为剩余的像素数据)变换到频率域(其表示为DCT系数)。变换系数可以包括DCT系数,该DCT系数包括至少一个DC系数和一个或多个AC系数。
DCT-II单元52执行本公开内容的技术来处理任何偶数尺寸的剩余数据块,包括二元和非二元尺寸的剩余数据块。如下面更加详细描述的,DCT-II单元52可以实现递归过程来计算DCT-II,从而可以通过下列方式来计算用于较大的剩余数据块(诸如,20x20剩余数据块)的DCT-II:对20x20数据块进行操作以产生可以使用10x10DCT-II和10x10DCT-III来进行处理的2个10x10数据块。然后,DCT-II单元52以与其求解20x20DCT-II相同的方式来计算10x10DCT-II。也就是说,DCT-II单元52对10x10数据块进行操作以产生可以使用5x5DCT-II和5x5DCT-III来进行处理的2个5x5数据块。由于奇数尺寸的DCT-II无法进行任何进一步的划分,因此DCT-II单元52直接计算5x5数据块的5x5DCT-II,而不进行任何进一步的递归。DCT-II单元52从该递归迭代中返回并具有直接计算出的5x5DCT-II的结果,并且当应用于另一5x5数据块时直接计算5x5DCT-III的结果。DCT-II单元52将由DCT-III所确定的结果重新排序,然后从该递归迭代中返回。一旦返回到先前的迭代,则DCT-II单元52直接计算其它10x10剩余数据块的10x10DCT-III,并且将计算10x10DCT-III的结果重新排序。然后,DCT-II单元52将计算10x10DCT-II的结果和计算10x10DCT-III的经重新排序的结果作为20x20DCT系数块输出。
量化单元40量化(例如,四舍五入(round))剩余变换块系数以进一步降低比特率。如上面提到的,在某些情况下,量化单元40通过合并在DCT-II的实现中未被缩减的DCT-II单元52考虑在内(account for)的因子来将缩减的偶数尺寸的DCT-II单元52的缩减特性考虑在内。由于量化一般包括乘法,因此将这些因子合并到量化单元40中不会增加量化单元40的实现复杂度。在这个方面,缩减的非二元的偶数尺寸的DCT-II单元52降低了DCT-II单元52的实现复杂度并且没有增加量化单元40的实现复杂度,导致了针对视频编码器20的实现复杂度的净减少。
熵编码单元46对经量化的系数进行熵编码以进一步降低比特率。熵编码单元46执行统计无损编码,其在某些情况下称为熵编码。熵编码单元46模拟经量化的DCT系数的概率分布,并基于所模拟的概率分布来选择代码本(例如,CAVLC或CABAC)。使用该代码本,熵编码单元46以压缩经量化的DCT系数的方式来针对每个经量化的DCT系数选择代码。为了进行说明,熵编码单元46可以针对频繁出现的经量化的DCT系数选择较短的代码字(按照比特),并且针对不频繁出现的经量化的DCT系数选择较长的代码字(按照比特)。只要较短的代码字比经量化的DCT系数使用更少的比特,则平均起来,熵编码单元46压缩了经量化的DCT系数。熵编码单元46将经熵编码的系数作为发送到视频解码器26的比特流输出。通常,如将参照图3的例子进行描述的,视频解码器26执行逆操作以根据该比特流来进行解码并重构经编码的视频。
重构单元42和逆变换单元44分别重构经量化的系数和应用逆变换,以重构剩余块。逆变换单元44包括非二元的DCT-II单元52的逆版本,该逆版本根据本公开内容中描述的技术实现逆DCT-II(也称为DCT-III)。该逆版本在图1的例子中作为非二元尺寸的DCT-III单元45示出,其可以基本上类似于下面针对图3所描述的非二元尺寸的DCT-III单元68。加法单元50将重构的剩余块与由运动补偿单元36产生的经运动补偿的预测块相加,以产生用于存储在参考帧存储器34中的经重构的视频块。该经重构的视频块由运动估计单元32和运动补偿单元36用于对后续视频帧中的块进行编码。
图3是示出了图1的视频解码器26的示例的框图。视频解码器26可以至少部分地构成为一个或多个集成电路设备,其可以总称为集成电路设备。在某些方面,视频解码器26可以构成无线通信设备手机的一部分。视频解码器26可以执行视频帧中的块的帧内解码和帧间解码。如图3中所示,视频解码器26接收已经由视频编码器20编码的经编码的视频比特流。在图3的例子中,视频解码器26包括熵解码单元54、运动补偿单元56、重构单元58、逆变换单元60以及参考帧存储器62。熵解码单元64可以访问存储在存储器64中的一个或多个数据结构,以获得在编码中有用的数据。视频解码器26还可以包括对加法器66的输出进行滤波的循环内解块滤波器(未示出)。视频解码器26还包括加法器66。图3示出了用于视频块的帧间解码的视频解码器26的时间预测组件。虽然未在图3中示出,但视频解码器26还可以包括用于某些视频块的帧内解码的空间预测组件。
熵解码单元54接收经编码的视频比特流,并从该比特流中解码经量化的剩余系数和经量化的参数,以及诸如宏块编码模式和运动信息(可以包括运动向量和块分割)之类的其它信息。运动补偿单元56接收运动向量和块分割以及来自参考帧存储器62的一个或多个重构的参考帧,以产生预测视频块。
重构单元58对经量化的块系数进行逆量化(即,解量化)。逆变换单元60将逆变换(例如,逆DCT)应用于该系数,以产生剩余块。更具体地说,逆变换单元60包括非二元尺寸的DCT-III单元68,逆变换单元60将该非二元尺寸的DCT-III单元68应用于该系数,以产生剩余块。非二元尺寸的DCT-III单元68表示缩减的或完整的DCT-III实现。为图2中所示的非二元尺寸的DCT-II单元52的逆的非二元尺寸的DCT-III单元68可以将该系数从频率域变换到空间域,以产生剩余块。类似于上面的量化单元40,在某些情况下,重构单元58通过将因子并入重构过程中来将DCT-III单元68的缩减特性考虑在内,而几乎不会增加实现复杂度。计算缩减的非二元尺寸的DCT-III以使其不包括这些因子可以降低实现复杂度,从而导致视频解码器26的复杂度的净减少。
然后,通过加法器66将预测视频块与剩余块相加以形成经解码的块。可以应用解块滤波器(未示出)来对经解码的块进行滤波以消除去块效应。然后,将经滤波的块置于参考帧存储器62中,该参考帧存储器62提供用于后续视频帧的解码的参考帧,并且还产生经解码的视频以驱动显示设备28(图1)。
图4是示出了由根据本公开内容中描述的技术实现的非二元尺寸的DCT-II单元(诸如,图2的示例中所示的非二元尺寸的DCT-II单元52)执行的示例性递归迭代的流程图。递归算法或过程可以被实现为存储在计算机可读存储介质上的多个指令(诸如,计算机程序),该指令使处理器执行本公开内容中描述的算法。可替换地,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任意其它类型的类似硬件之类的专用硬件可以实现本公开内容的技术,以便使用针对图4的示例所示出的递归迭代来执行任何给定的非二元或偶数尺寸的DCT-II。该技术不应被限制于递归算法的任何特定实现。
首先,DCT-II单元52确定要执行的非二元的DCT-II的尺寸(70)。通常,DCT-II单元52基于DCT-II单元52接收的剩余数据块的尺寸来进行该确定。如果确定剩余数据块的尺寸为2的倍数(“是”72),则DCT-II单元52进行蝶形计算(74),该蝶形计算包括对DCT-II单元52的输入值的交叉加法和交叉减法,其中输入值可以包括视频编码器的示例中的剩余块值。该蝶形计算通常包括将输入的第一子集交叉相减和/或交叉相加的偶数部分(其可以称为偶数输入)和将输入的第二子集交叉相减和/或交叉相加的奇数部分(其可以称为奇数输入)。然后,如下面的图5B的示例中所示,DCT-II单元52将非二元尺寸的DCT-II的奇数部分的奇数输入的顺序颠倒(76)。DCT-II单元52同样根据本公开内容的递归技术针对该实现的奇数部分进行一系列递归减法计算(78),在下面针对图5B的示例将其再次示出。然后,DCT-II单元52使用递归减法的结果作为输入来直接计算尺寸为要执行的DCT-II的尺寸的一半的子DCT-III(80)。然后,DCT-II单元52将缩减因子应用于计算子DCT-III的结果(81)。
同时,在颠倒奇数部分的顺序、计算递归减法和计算子DCT-III的之前、之后或同时,DCT-II单元52针对蝶形输出的偶数部分计算尺寸为要执行的DCT-II的所确定的尺寸的一半的完整的子DCT-II(82)。为了计算蝶形输出的偶数部分的该子DCT-II,DCT-II单元52通常执行另一递归迭代,从而尺寸为要执行的DCT-II的所确定的尺寸的一半的子DCT-II经历上面描述的步骤70-82。重复该递归迭代直到子DCT-II中的一个为奇数尺寸,因此DCT-II单元52确定该子DCT-II的尺寸不是2的倍数(“否”72),并直接计算该奇数尺寸的子DCT-II(84)。本文中使用的术语“直接计算”指的是访问存储用于确定特定尺寸的DCT-II或DCT-III的矩阵系数的库或数据存储器的过程。在计算子DCT-II和子DCT-III之后,DCT-II单元52将来自偶数部分(子DCT-II)和奇数部分(子DCT-III)的结果合并(85)。
在任何情况下,在计算偶数尺寸或奇数尺寸的完整的子DCT-II之后或在计算子DCT-III之后,递归迭代通过输出作为DCT系数的结果结束(86)。考虑到从单次递归迭代返回可能导致返回到先前的递归迭代,因此可以对输出结果进行存储,因此在递归迭代结束时输出更多的结果,并且继续直到所有的结果作为DCT系数输出。在这个方面,该技术可以提供能够针对任何尺寸的输入数据块执行DCT-II的DCT-II实现,同时还促进了减小的实现复杂度和增加的编码效率,尤其是相对于常规的二元尺寸的DCT-II,考虑非二元尺寸的DCT-II时。
图5A-5B是示出了本公开内容中描述的用于执行尺寸为n的偶数尺寸的完整DCT-II 90的递归技术的迭代的框图。图5A是示出了尺寸为n的DCT-II 90的框图,其中,假定n为2的倍数。如图5A的示例中所示,偶数尺寸的完整DCT-II 90接收表示为x(0)、...、x(n-1)的n个输入,并确定表示为CII(0)、...、CII(n-1)的n个DCT-II系数。如上所述,通过DCT-II单元52实现的本公开内容的递归技术首先确定要执行的DCT-II 90的尺寸。针对偶数尺寸的DCT-II 90的该示例,DCT-II单元52接收nxn剩余数据块,并确定其需要执行由偶数尺寸的DCT-II 90表示的n尺寸的DCT-II。
图5B是示出了根据本公开内容中描述的递归技术的第一次迭代,由DCT-II单元52执行DCT-II 90所进行的操作的框图。一旦确定n为2的倍数,则DCT-II单元52以上面描述的方式进行蝶形计算92。DCT-II单元52还再次以上面描述的方式计算子DCT-II 94和子DCT-III 100。DCT-II单元52将蝶形计算92所输出的值的第一集合引向子DCT-II 94,并将蝶形计算92所输出的值的第二集合引向子DCT-III 100。值的第一集合可以表示偶数蝶形交叉相加的和/或交叉相减的输入值x(0)、x(2)、...、x(n-2),而值的第二集合可以表示奇数蝶形交叉相加的和/或交叉相减的输入值x(1)、x(3)、...、x(n-1)。然后,DCT-II单元52确定顺序颠倒以使得这些奇数输入值的顺序被颠倒。顺序颠倒被示出为顺序颠倒单元102。DCT-II单元52接下来以递归减法单元106所示出的方式来计算递归减法,其中递归减法单元106对奇数顺序颠倒的输入值执行递归减法。然后,DCT-II单元52以上面描述的方式计算n/2点的子DCT-III,在图5B的示例中,n/2点的子DCT-III由子DCT-III 108表示。子DCT-III 108输出与因子104相乘的奇数输出值。
假定子DCT-II 94的尺寸或n/2为2的倍数,则DCT-II单元92通过另一递归迭代来计算n/2点的子DCT-II 94。如果确定为2的倍数,则DCT-II单元52用子DCT-II来替代图5B的示例中的非二元尺寸的DCT-II 90,因此DCT-II单元52重复上面针对非二元尺寸的DCT-II 90示出的步骤,以计算子DCT-II 94。如上所述,这些递归迭代继续进行,直到DCT-II单元92确定后续的子DCT-II中的一个的尺寸不是2的倍数。
为了说明可以如何从数学上导出用于执行任何给定的偶数尺寸的DCT-II的这种算法,考虑下列等式。首先,可以由下面的等式(1)分别定义类型II的DCT和逆DCT-II:
在这里,如果k=0,则归一化因子否则λ(k)=1。
另外,可以由下面的等式(2)分别从数学上定义类型IV的DCT及其逆:
基于下面的等式(3)来将DCT-II抽取成子DCT-II和子DCT-IV,等式(3)示出了偶数尺寸的DCT-II矩阵(具有省略的归一化因子)被因子分解成包含子DCT-II和子DCT-IV矩阵的直和的乘积:
其中,PN是产生下面的重新排序的置换矩阵:
x′i=x2i,x′N/2+i=x2i+1,i=0,1,...,N/2-1
特别地,IN/2和JN/2相应地表示N/2×N/2单位矩阵和顺序颠倒矩阵。
根据等式(3)来进行要执行的偶数尺寸的DCT-II的划分,其中,根据该划分得到的子DCT-II可以由上面的等式(1)表示,而根据该划分得到的子DCT-IV可以由上面的等式(2)表示。接下来,可以执行等价的子DCT-III对子DCT-IV的替换,其中,该替换基于这些各种类型的DCT的特定属性。首先考虑类型III的DCT,这些DCT-III具有是DCT-II的逆(或转置)的属性,其通过下面的等式(4)在数学上给出:
接下来考虑类型IV的DCT,DCT-IV具有对合(或自逆/自转置)的属性,其通过下面的等式(5)在数学上给出:
此外,可以使用通过下面的等式(6)给出的换算来将DCT-IV换算为DCT-II:
等式(6)的RN是如下面的等式(7)表示的递归减法的矩阵:
而DN是如由下面的等式(8)表示的因子的对角矩阵:
根据等式(6)实现子DCT-IV导致等式(8)中给出的因子被应用于对不能够进行因式分解的子DCT-IV的输入。
为了克服因式分解子DCT-IV的问题从而降低实现复杂度,可以使用由等式(4)表示的DCT-III的属性,用DCT-III来替换等式(6)的DCT-II这种替换可以通过下面的等式(9)从数学上来表示:
在等式(9)中,凭借用DCT-III替换DCT-II,针对等式(6)中这些相同矩阵的顺序,DN和RN的顺序已经被交换或颠倒。如下面针对图8所示出的,由于这种颠倒,现在将等式(8)的因子应用于DCT-III的输出,这使得能够进行DCT-IV的实现的因式分解。
图6是示出了与二元尺寸的DCT-II和非二元尺寸的DCT-II的有效实现的实现复杂度有关的编码增益的图表110的图。使用本公开内容中给出的递归算法得到二元尺寸的DCT-II和非二元尺寸的DCT-II的有效实现。图表110的y轴以分贝(dB)表示编码增益。图表110的x轴表示按照每点操作的实现复杂度,其中点表示对应的二元尺寸或非二元尺寸的数据样本。
可以按照下面的数学等式(9.5)来定义编码增益:
其中表示第i个变换系数(即矩阵中的第i个对角元素)的方差,而||fi||2表示变换矩阵的第i个基函数的L2范数(对于具有正交基的变换来说其变为1)。本质上,这种编码增益度量提供了由于在足够高的速率下的变换编码引起的均方误差(MSE)的减小。
在任何情况下,由于编码增益和实现复杂度可能由于例如输入数据类型和/或乘法的实现等所引起的各种原因而变化,因此在各种假定条件下来计算编码增益和复杂度。首先,复杂度计算假定加法、减法和移位操作在实现复杂度方面相等。其次,然而,复杂度计算假定每个乘法包括为同等复杂的加法、减法和移位操作的3倍的操作量。就编码增益计算而言,假定输入是具有相关系数rho等于0.95的平稳的Markov-1过程。
从数学上来看,可以根据下面的等式得到复杂度计算。下面的等式(10)给出了因式分解后的尺寸为N的缩减的DCT-II变换:
其中∏N表示定义系数的重新排序的矩阵,ΔN表示缩减因子的对角矩阵,表示剩余的缩减变换的矩阵。考虑这些表示法,可以将等式(10)的代入等式(3),并且可以替换为以得出下面的等式(11):
然后,可以根据下面的等式(12)和(13)来表示该算法:
下面的等式(14)和(15)表示N尺寸的DCT-II的完整和缩减实现的一般复杂度估计:
完整的DCT-III:αm+βa+γs,以及 (14)
缩减的DCT-II:δm+εa+ζs, (15)
其中,“m”表示实现中乘法的数量,“a”表示实现中加法的数量,而“s”表示实现中移位的数量。“α”和“δ”变量是用于增加或降低乘法操作的复杂度量级的可控因子,其在上面的假定的情况下等于3。“β”和“ε”是用于增加或降低加法操作的复杂度量级的可控因子,其在上面的假定的情况下等于1。“γ”和“ζ”是用于增加或降低移位操作的复杂度量级的可控因子,其在上面的假定的情况下等于1。根据这些等式,给出从等式(13)所确定的算法输出,从等式(14)和(15)得出复杂度计算,其中由下面的等式(16)来表示该复杂度计算:
(α+δ)m+(β+ε+3N-1)a+(γ+ζ+1)s (16)
如图6中所示,图表110包括一组点,每个点被示为各种形状,在某些情况下,被示为不同类型的阴影。对于二元尺寸的DCT-II,由未填充的正方形表示尺寸2(或2x2或2点)的DCT-II,由未填充的三角形表示尺寸4(或4x4或4点)的DCT-II,以及由未填充的圆形表示尺寸8的DCT-II。对于非二元尺寸的DCT-II,由填充的圆形表示尺寸3(或3x3或3点)的DCT-II,由“X”表示尺寸6(或6x6或6点)的DCT-II,以及由用“X”填充的正方形表示尺寸12(或12x12或12点)的DCT-II。
根据上面的假定和给出的上面的图例,图表110示出了二元尺寸2的DCT-II的实现利用最低实现复杂度提供了最低的编码增益。比起尺寸2的类似尺寸的DCT-II,执行非二元尺寸3的DCT-II提供了将近2dB的编码增益的增加,并且相对于尺寸2(或2x2)的DCT-II的实现,仅有复杂度的极小增加。比起执行尺寸3的类似尺寸的DCT-II,二元尺寸4(或4x4)的DCT-II的实现提供了小于约1dB的编码增益的增加,而具有复杂度的较大的(相对于从尺寸2到尺寸3的实现的复杂度增加)增加。
比起尺寸4的类似尺寸的DCT-II,执行具有本公开内容的技术所定义的实现的非二元尺寸6的DCT-II提供了大约1dB的编码增益的增加,并且具有复杂度的较小的(再次相对于从尺寸3到尺寸4的实现的复杂度增加)增加。比起执行具有本公开内容的技术所定义的实现的尺寸6的类似尺寸的DCT-II,二元尺寸8的DCT-II的实现提供了大约二分之一dB的编码增益的增加,但遭受复杂度的较大的(相对于从尺寸4到尺寸6的增加)增加。比起尺寸8的类似尺寸的DCT-II,执行具有根据本公开内容的技术定义的实现的非二元尺寸12的DCT-II提供了大约三分之一(1/3)的编码增益的增加,并且仅具有实现复杂度的较小的增加。
在这个方面,与也可以根据本公开内容的技术执行的类似尺寸的二元尺寸的DCT-II相比,执行具有根据本公开内容的技术定义的实现的非二元尺寸的DCT-II可以在编码增益与实现复杂度之比方面更加有效率。虽然在上面未明确表示,但出于本公开内容中所描述的原因,由于缩减的实现一般比未缩减的实现更有效率,因此二元尺寸的DCT-II和非二元尺寸的DCT-II中的每一个是通过缩减的实现而非未缩减或完整的实现来执行的。虽然针对缩减的实现进行讨论,但相同的益处也可以归于未缩减的非二元的DCT-II,与未缩减的二元的DCT-II相比,未缩减的非二元的DCT-II一般提供更好的编码增益与复杂度之比。在这个方面,可以将算法的因式分解方面去掉,但当与未缩减的二元的DCT-II相比时,仍然导致更加有效的非二元的DCT-II的未缩减的或完整的实现。
图7是示出了由根据本公开内容中描述的技术实现的缩减的非二元尺寸的DCT-II单元(诸如图2的示例中所示的非二元尺寸的DCT-II单元52)执行的示例性递归迭代的流程图。此外,递归算法或过程可以被实现为存储在计算机可读存储介质上的多个指令(诸如,计算机程序),该指令使处理器执行本公开内容中描述的算法。可替换地,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任意其它类型的类似硬件之类的专用硬件可以实现本公开内容的技术,以便使用针对图4的示例所示出的递归迭代来执行任何给定的非二元或偶数尺寸的DCT-II。该技术不应被限制于递归算法的任何特定的实现。
图7的示例表示先前针对图4、5A-5B的示例所描述的技术的改写。在图7的示例中示出的改写包括不同的算法,该算法通过计算缩减的子DCT-II和完整的或未缩减的子DCT-III而不是完整的子DCT-II和完整的子DCT-III的方式,来产生缩减的DCT-II实现。这种改写的算法导致DCT-II的缩减的实现不包括针对图5B的示例性实现所示出的因子106。
首先,DCT-II单元52确定要执行的非二元的DCT-II的尺寸(120)。通常,DCT-II单元52基于DCT-II单元52接收的剩余数据块的尺寸来进行该确定。如果确定剩余数据块的尺寸为2的倍数(“是”122),则DCT-II单元52进行蝶形计算(124),该蝶形计算包括到DCT-II单元52的输入值的交叉加法和交叉减法,其中输入值可以包括视频编码器的示例中的剩余块值。该蝶形计算通常包括将输入的第一子集交叉相减和/或交叉相加的偶数部分(其可以称为偶数输入),和将输入的第二子集交叉相减和/或交叉相加的奇数部分(其可以称为奇数输入)。然后,如下面的图8的示例中所示,DCT-II单元52将非二元尺寸的DCT-II的奇数部分的奇数输入的顺序颠倒(126)。DCT-II单元52同样根据本公开内容的递归技术计算针对该实现的奇数部分的一系列递归减法(128),在下面针对图9的示例再次将其示出。然后,DCT-II单元52使用递归减法的结果作为输入来直接计算尺寸为要执行的DCT-II的尺寸的一半的子DCT-III(130)。
同时,在颠倒奇数部分的顺序、计算递归减法和计算子DCT-III的之前、之后或同时,DCT-II单元52针对蝶形输出的偶数部分计算尺寸为要执行的DCT-II的所确定的尺寸的一半的缩减的子DCT-II(132)。为了计算蝶形输出的偶数部分的该子DCT-II,DCT-II单元52通常执行另一递归迭代,从而尺寸为要执行的DCT-II的所确定的尺寸的一半的子DCT-II经历上面描述的步骤120-132。重复该递归迭代直到缩减的子DCT-II中的一个为奇数尺寸,因此DCT-II单元52确定该缩减的子DCT-II的尺寸不是2的倍数(“否”122),并直接计算该奇数尺寸的子DCT-II(134)。本文中使用的术语“直接计算”再次指的是访问存储用于确定特定尺寸的DCT-II或DCT-III的矩阵系数的库或数据存储器的过程。在计算子DCT-II和子DCT-III之后,DCT-II单元52将来自偶数部分(子DCT-II)和奇数部分(子DCT-III)的结果合并(133)。
在任何情况下,在计算偶数尺寸或奇数尺寸的缩减的子DCT-II之后或在计算子DCT-III之后,递归迭代通过输出作为DCT系数的结果结束(136)。考虑到从单次递归迭代返回可能导致返回到先前的递归迭代,因此可以对输出结果进行存储,因此在递归迭代结束时输出更多的结果,并且继续直到所有的结果作为DCT系数输出。在这个方面,该技术可以提供能够针对任何尺寸的输入数据块执行DCT-II的缩减的DCT-II实现,同时还促进了减小的实现复杂度和增加的编码效率,尤其是相对于常规的二元尺寸的DCT-II,考虑非二元尺寸的缩减的DCT-II时。
图8是示出了本公开内容中描述的用于执行尺寸为n的偶数尺寸的缩减DCT-II 160的递归技术的迭代的框图。除了子DCT-II 94已用缩减的子DCT-II 162替代和因子104已被去掉以外,DCT-II 160类似于图5B的示例中所示的非二元尺寸的DCT-II实现90。也就是说,可以根据偶数尺寸的DCT-II(诸如,图5A的示例中所示的偶数尺寸的DCT-II 90)来直接计算缩减的DCT-II实现160的奇数部分,该缩减的DCT-II实现160包括顺序颠倒单元102、递归减法106和子DCT-III实现108。该计算可以通过以使奇数部分不包括这些因子的方式直接计算奇数部分来内在地包括因子的去除。从这个意义上说,已将因子104从上面的等式中涉及的子DCT-IV的实现中去除。如上所述,已对量化因子进行更新以将因子104考虑在内。这降低了视频编码器和解码器(诸如,视频编码器20和视频解码器26)的整体实现复杂度。
虽然本公开内容中针对非二元尺寸的DCT进行描述,但该技术可以应用于二元尺寸的DCT,以确定这些二元尺寸的DCT的有效的(如果不是最佳的)实现。然而,如下面的图6中所示,与二元尺寸的DCT相比,非二元尺寸的DCT可以提供更好的编码效率与实现复杂度之比,其反过来可以改善编码同时不会过度地增加实现复杂度。
可以在包括无线通信设备手机(诸如移动电话)、集成电路(IC)或一组IC(即芯片组)之类的广泛的各种设备或装置中实现本公开内容的技术。已描述的任何组件、模块或单元提供用于强调功能方面,并且不必需要由不同的硬件单元来实现。本文描述的技术还可以在硬件、软件、固件、或其任意组合中实现。描述为模块、单元或组件的任何特性可以在集成的逻辑设备中一起实现,或者单独地作为分立的但相互协作的电路设备(诸如,集成电路芯片或芯片组)来实现。
如果在软件中实现,则该技术可以至少部分地由包括指令的计算机可读介质来实现,当在处理器中执行这些指令时,这些指令执行上面描述的一个或多个方法。计算机可读介质可以包括为物理结构的计算机可读存储介质,并且可以构成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。从这种意义上来讲,计算机可读介质可以是非瞬态的。计算机可读存储介质可以包括诸如同步动态随机存取存储器(SDRAM)的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。
代码或指令可以由一个或多个处理器来执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其它等价的集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指任何前述的结构或适合用于实现本文描述的技术的任何其它结构。另外,在某些方面,本文描述的功能可以提供在配置用于编码和解码的专用软件模块或硬件模块中,或者合并到组合的视频编码解码器中。同样,本技术可以在一个或多个电路或逻辑元件中完整地实现。
本公开内容还预期包括用于实现本公开内容中描述的技术中的一种或多种技术的电路的各种集成电路设备中的任何一种。可以在单个集成电路芯片中或在多个相互协作的集成电路芯片中(在所谓的芯片组中)提供这种电路。这种集成电路设备可以用于各种应用,其中一些可以包括在诸如移动电话手机之类的无线通信设备中使用。
已对本技术的各个方面进行了描述。这些和其它方面在下面的权利要求的范围之中。
Claims (30)
1.一种执行缩减的类型II的离散余弦变换DCT-II以将媒体数据从空间域变换到频率域的方法,所述方法包括:
利用装置确定要执行的所述缩减的DCT-II的尺寸是否是2的倍数;以及
响应于确定要执行的所述缩减的DCT-II的尺寸是2的倍数,利用所述装置执行所述缩减的DCT-II以将所述媒体数据从所述空间域变换到所述频率域,
其中,执行所述缩减的DCT-II包括:
进行蝶形计算,所述蝶形计算包括到所述DCT-II的输入的交叉加法和交叉减法,其中,所述蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;
颠倒经交叉相减的所述输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集;
计算一系列递归减法,所述递归减法每次递归地减去所述输入的所述经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集;
计算缩减的子DCT-II,所述缩减的子DCT-II接收所述交叉相加的输入的所述第一子集并基于所述交叉相加的输入的所述第一子集生成第一组输出;
计算完整的子DCT-III,所述完整的子DCT-III接收所述输入的所述经递归相减的第二子集并基于所述输入的所述经递归相减的第二子集生成第二组输出;以及
将分别由所述缩减的子DCT-II和所述完整的子DCT-III产生的所述第一组输出和所述第二组输出重新排序,以生成所述DCT-II的缩减的输出值。
2.根据权利要求1所述的方法,其中,进行所述蝶形计算、颠倒所述顺序、计算所述一系列递归减法、计算所述缩减的子DCT-II、以及计算所述完整的DCT-II针对所述子DCT-II递归地发生,直到通过所述递归产生的任何额外的子DCT-II的尺寸不是2的倍数。
3.根据权利要求1所述的方法,还包括:
确定所述缩减的子DCT-II的尺寸是否是2的倍数;
响应于确定所述缩减的子DCT-II的尺寸是2的倍数,执行所述缩减的子DCT-II,
其中,执行所述缩减的子DCT-II包括:
进行另一蝶形计算,所述另一蝶形计算包括到所述缩减的子DCT-II的输入的交叉加法和交叉减法,其中,所述另一蝶形计算包括生成到所述缩减的子DCT-II的所述输入的第一子集的第一部分和生成到所述缩减的子DCT-II的所述输入的第二子集的第二部分;
颠倒输入到所述缩减的子DCT-II的经交叉相减的所述输入的第二子集的顺序,以生成到所述缩减的子DCT-II的所述输入的经顺序颠倒的第二子集;
计算一系列递归减法,所述递归减法每次递归地减去输入到所述缩减的子DCT-II的所述输入的所述经顺序颠倒的第二子集,以生成到所述缩减的子DCT-II的所述输入的经递归相减的第二子集;
计算额外的缩减的子DCT-II,所述额外的缩减的子DCT-II接收到所述子DCT-II的所述输入的所述第一子集并基于到所述子DCT-II的所述输入的所述第一子集生成第一组输出;
计算额外的完整的子DCT-III,所述额外的完整的子DCT-III接收到所述子DCT-II的所述输入的所述经递归相减的第二子集并基于到所述子DCT-II的所述输入的所述经递归相减的第二子集生成第二组输出;以及
将分别由所述额外的缩减的子DCT-II和所述额外的完整的子DCT-III产生的所述第一组输出和所述第二组输出重新排序,以生成所述缩减的子DCT-II的缩减的输出值。
4.根据权利要求1所述的方法,还包括:配置量化矩阵的量化系数,以将在计算所述缩减的DCT-II时内在地去除的因子考虑在内。
5.根据权利要求1所述的方法,其中,计算所述缩减的子DCT-II包括以内在地去除因子的方式来计算所述缩减的子DCT-II。
6.根据权利要求1所述的方法,
其中,所述装置包括视频编码器,
其中,所述媒体数据包括剩余视频数据块,
其中,确定要执行的所述缩减的DCT-II的尺寸是否是2的倍数包括:
接收所述剩余视频数据块;
确定所述剩余视频数据块的尺寸是否是2的倍数;以及
基于所述剩余视频数据块的所述尺寸,确定要执行的所述缩减的DCT-II的尺寸是否是2的倍数,
其中,所述缩减的输出值包括DCT系数,以及
其中,所述方法还包括:利用所述视频编码器的量化单元执行量化,以根据将在计算执行所述缩减的DCT-II时内在地去除的因子考虑在内的量化系数来量化所述DCT系数。
7.根据权利要求1所述的方法,其中,所述装置包括视频编码器、视频解码器、音频编码器、音频解码器、图像编码器和图像解码器中的一个或多个。
8.根据权利要求1所述的方法,还包括:响应于确定要执行的所述缩减的DCT-II的尺寸不是2的倍数,直接计算所述缩减的DCT-II以生成额外的输出,而不进行蝶形计算、颠倒经交叉相减的所述输入的第二子集的顺序、计算所述一系列递归减法、计算所述缩减的子DCT-II、计算所述完整的子DCT-III、以及将所述第一组输出和所述第二组输出重新排序。
9.一种媒体编码设备,被配置成执行缩减的类型II的离散余弦变换DCT-II以将媒体数据从空间域变换到频率域,包括:
缩减的DCT-II单元,其确定要执行的所述缩减的DCT-II的尺寸是否是2的倍数,并且响应于确定要执行的所述缩减的DCT-II的尺寸是2的倍数,执行所述缩减的DCT-II以将所述媒体数据从所述空间域变换到所述频率域,
其中,所述缩减的DCT-II单元包括:
蝶形单元,其进行蝶形计算,所述蝶形计算包括到所述DCT-II的输入的交叉加法和交叉减法,其中,所述蝶形单元包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;
顺序颠倒单元,其颠倒经交叉相减的所述输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集;
递归减法单元,其计算一系列递归减法,所述递归减法每次递归地减去所述输入的所述经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集;
缩减的子DCT-II单元,其计算缩减的子DCT-II,所述缩减的子DCT-II接收所述交叉相加的输入的所述第一子集并基于所述交叉相加的输入的所述第一子集生成第一组输出;以及
完整的子DCT-III单元,其计算完整的子DCT-III,所述完整的子DCT-III接收所述输入的所述经递归相减的第二子集并基于所述输入的所述经递归相减的第二子集生成第二组输出,
其中,所述缩减的DCT-II单元将分别由所述缩减的子DCT-II和所述完整的子DCT-III产生的所述第一组输出和所述第二组输出重新排序,以生成所述DCT-II的缩减的输出值。
10.根据权利要求9所述的媒体编码设备,其中,所述缩减的DCT-II单元针对所述子DCT-II递归地进行所述蝶形计算、颠倒所述顺序、计算所述一系列递归减法、计算所述缩减的子DCT-II、以及计算所述完整的DCT-II,直到通过所述递归产生的任何额外的子DCT-II的尺寸不是2的倍数。
11.根据权利要求9所述的媒体编码设备,
其中,所述缩减的子DCT-II单元确定所述缩减的子DCT-II的尺寸是否是2的倍数,并且响应于确定所述缩减的子DCT-II的尺寸是2的倍数,执行所述缩减的子DCT-II,
其中,所述缩减的子DCT-II单元包括:
额外的蝶形单元,其进行另一蝶形计算,所述另一蝶形计算包括到所述缩减的子DCT-II的输入的交叉加法和交叉减法,其中,所述另一蝶形计算包括生成到所述缩减的子DCT-II的所述输入的第一子集的第一部分和生成到所述缩减的子DCT-II的所述输入的第二子集的第二部分;
额外的顺序颠倒单元,其颠倒输入到所述缩减的子DCT-II的经交叉相减的所述输入的第二子集的顺序,以生成到所述缩减的子DCT-II的所述输入的经顺序颠倒的第二子集;
额外的递归减法单元,其计算一系列递归减法,所述递归减法每次递归地减去输入到所述缩减的子DCT-II的所述输入的所述经顺序颠倒的第二子集,以生成到所述缩减的子DCT-II的所述输入的经递归相减的第二子集;
额外的缩减的子DCT-II单元,其计算额外的缩减的子DCT-II,所述额外的缩减的子DCT-II接收到所述子DCT-II的所述输入的所述第一子集并基于到所述子DCT-II的所述输入的所述第一子集生成第一组输出;
额外的完整的子DCT-II单元,其计算额外的完整的子DCT-III,所述额外的完整的子DCT-III接收到所述子DCT-II的所述输入的所述经递归相减的第二子集并基于到所述子DCT-II的所述输入的所述经递归相减的第二子集生成第二组输出;以及
其中,所述子DCT-II单元将分别由所述额外的缩减的子DCT-II单元和所述额外的完整的子DCT-III单元产生的所述第一组输出和所述第二组输出重新排序,以生成所述缩减的子DCT-II的缩减的输出值。
12.根据权利要求9所述的媒体编码设备,还包括:
量化单元,其包括量化矩阵,所述量化矩阵将在计算所述缩减的DCT-II时内在地去除的因子考虑在内。
13.根据权利要求9所述的媒体编码设备,其中,所述缩减的子DCT-II单元以内在地去除因子的方式来计算所述缩减的子DCT-II。
14.根据权利要求9所述的媒体编码设备,
其中,所述媒体编码设备包括视频编码器,
其中,所述媒体数据包括剩余视频数据块,
其中,所述缩减的DCT-II单元接收所述剩余视频数据块,确定所述剩余视频数据块的尺寸是否是2的倍数,并且基于所述剩余视频数据块的所述尺寸,确定要执行的所述缩减的DCT-II的尺寸是否是2的倍数,
其中,所述缩减的输出值包括DCT系数,以及
其中,所述媒体编码设备还包括量化单元,所述量化单元根据将在计算执行所述缩减的DCT-II时内在地去除的因子考虑在内的量化系数来量化所述DCT系数。
15.根据权利要求9所述的媒体编码设备,其中,所述媒体编码设备包括视频编码器、视频解码器、音频编码器、音频解码器、图像编码器和图像解码器中的一个或多个。
16.根据权利要求9所述的媒体编码设备,其中,响应于确定要执行的所述缩减的DCT-II的尺寸不是2的倍数,所述缩减的DCT-II单元直接计算所述缩减的DCT-II以生成额外的输出,而不进行蝶形计算、颠倒经交叉相减的所述输入的第二子集的顺序、计算所述一系列递归减法、计算所述缩减的子DCT-II、计算所述完整的子DCT-III、以及将所述第一组输出和所述第二组输出重新排序。
17.一种被配置成执行缩减的类型II的离散余弦变换DCT-II以将媒体数据从空间域变换到频率域的装置,包括:
用于确定要执行的所述缩减的DCT-II的尺寸是否是2的倍数的模块;以及
用于响应于确定要执行的所述缩减的DCT-II的尺寸是2的倍数,执行所述缩减的DCT-II以将所述媒体数据从所述空间域变换到所述频率域的模块,
其中,用于执行所述缩减的DCT-II的所述模块包括:
用于进行蝶形计算的模块,所述蝶形计算包括到所述DCT-II的输入的交叉加法和交叉减法,其中,所述蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;
用于颠倒经交叉相减的所述输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集的模块;
用于计算一系列递归减法的模块,所述递归减法每次递归地减去所述输入的所述经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集;
用于计算缩减的子DCT-II的模块,所述缩减的子DCT-II接收所述交叉相加的输入的所述第一子集并基于所述交叉相加的输入的所述第一子集生成第一组输出;
用于计算完整的子DCT-III的模块,所述完整的子DCT-III接收所述输入的所述经递归相减的第二子集并基于所述输入的所述经递归相减的第二子集生成第二组输出;以及
用于将分别由所述缩减的子DCT-II和所述完整的子DCT-III产生的所述第一组输出和所述第二组输出重新排序以生成所述DCT-II的缩减的输出值的模块。
18.根据权利要求17所述的装置,其中,用于执行所述缩减的DCT-II的所述模块针对所述子DCT-II递归地执行所述缩减的DCT-II,直到通过所述递归产生的任何额外的子DCT-II的尺寸不是2的倍数。
19.根据权利要求17所述的装置,还包括:
用于确定所述缩减的子DCT-II的尺寸是否是2的倍数的模块;
用于响应于确定所述缩减的子DCT-II的尺寸是2的倍数,执行所述缩减的子DCT-II的模块,
其中,用于执行所述缩减的子DCT-II的所述模块包括:
用于进行另一蝶形计算的模块,所述另一蝶形计算包括到所述缩减的子DCT-II的输入的交叉加法和交叉减法,其中,所述另一蝶形计算包括生成到所述缩减的子DCT-II的所述输入的第一子集的第一部分和生成到所述缩减的子DCT-II的所述输入的第二子集的第二部分;
用于颠倒输入到所述缩减的子DCT-II的经交叉相减的所述输入的第二子集的顺序,以生成到所述缩减的子DCT-II的所述输入的经顺序颠倒的第二子集的模块;
用于计算一系列递归减法的模块,所述递归减法每次递归地减去输入到所述缩减的子DCT-II的所述输入的所述经顺序颠倒的第二子集,以生成到所述缩减的子DCT-II的所述输入的经递归相减的第二子集;
用于计算额外的缩减的子DCT-II的模块,所述额外的缩减的子DCT-II接收到所述子DCT-II的所述输入的所述第一子集并基于到所述子DCT-II的所述输入的所述第一子集生成第一组输出;
用于计算额外的完整的子DCT-III的模块,所述额外的完整的子DCT-III接收到所述子DCT-II的所述输入的所述经递归相减的第二子集并基于到所述子DCT-II的所述输入的所述经递归相减的第二子集生成第二组输出;以及
用于将分别由所述额外的缩减的子DCT-II和所述额外的完整的子DCT-III产生的所述第一组输出和所述第二组输出重新排序,以生成所述缩减的子DCT-II的缩减的输出值的模块。
20.根据权利要求17所述的装置,还包括:用于配置量化矩阵的量化系数,以将在计算所述缩减的DCT-II时内在地去除的因子考虑在内的模块。
21.根据权利要求17所述的装置,其中,用于计算所述缩减的子DCT-II的所述模块包括用于以内在地去除因子的方式计算所述缩减的子DCT-II的模块。
22.根据权利要求17所述的装置,
其中,所述装置包括视频编码器,
其中,所述媒体数据包括剩余视频数据块,
其中,用于确定要执行的所述缩减的DCT-II的尺寸是否是2的倍数的所述模块包括:
用于接收所述剩余视频数据块的模块;
用于确定所述剩余视频数据块的尺寸是否是2的倍数的模块;以及
用于基于所述剩余视频数据块的所述尺寸,确定要执行的所述缩减的DCT-II的尺寸是否是2的倍数的模块,
其中,所述缩减的输出值包括DCT系数,以及
其中,装置包括用于根据将在计算执行所述缩减的DCT-II时内在地去除的因子考虑在内的量化系数来量化所述DCT系数的模块。
23.根据权利要求17所述的装置,其中,所述装置包括视频编码器、视频解码器、音频编码器、音频解码器、图像编码器和图像解码器中的一个或多个。
24.根据权利要求17所述的装置,还包括用于进行下列操作的模块:响应于确定要执行的所述缩减的DCT-II的尺寸不是2的倍数,直接计算所述缩减的DCT-II以生成额外的输出,而不进行蝶形计算、颠倒经交叉相减的所述输入的第二子集的顺序、计算所述一系列递归减法、计算所述缩减的子DCT-II、计算所述完整的子DCT-III、以及将所述第一组输出和所述第二组输出重新排序。
25.一种执行完整的类型II的离散余弦变换DCT-II以将媒体数据从空间域变换到频率域的方法,所述方法包括:
利用装置确定要执行的所述完整的DCT-II的尺寸是否是2的倍数;以及
响应于确定要执行的所述完整的DCT-II的尺寸是2的倍数,利用所述装置执行所述完整的DCT-II以将所述媒体数据从所述空间域变换到所述频率域,
其中,执行所述完整的DCT-II包括:
进行蝶形计算,所述蝶形计算包括到所述DCT-II的输入的交叉加法和交叉减法,其中,所述蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;
颠倒经交叉相减的所述输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集;
计算一系列递归减法,所述递归减法每次递归地减去所述输入的所述经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集;
计算完整的子DCT-II,所述完整的子DCT-II接收所述交叉相加的输入的所述第一子集并基于所述交叉相加的输入的所述第一子集生成第一组完整的输出;
计算完整的子DCT-III,所述完整的子DCT-III接收所述输入的所述经递归相减的第二子集并基于所述输入的所述经递归相减的第二子集生成第二组输出;
将所述第二组输出乘以一个或多个缩减因子,以生成第二组完整的输出;以及
将所述第一组完整的输出和所述第二组完整的输出重新排序,以生成所述DCT-II的输出值。
26.一种媒体编码设备,被配置成将媒体数据从空间域变换到频率域,所述媒体编码设备包括:
完整的DCT-II单元,其确定要执行的完整的DCT-II的尺寸是否是2的倍数,并且响应于确定要执行的所述完整的DCT-II的尺寸是2的倍数,执行所述完整的DCT-II以将所述媒体数据从所述空间域变换到所述频率域,
其中,所述完整的DCT-II包括:
蝶形单元,其进行蝶形计算,所述蝶形计算包括到所述DCT-II的输入的交叉加法和交叉减法,其中,所述蝶形单元包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;
顺序颠倒单元,其颠倒经交叉相减的所述输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集;
递归减法单元,其计算一系列递归减法,所述递归减法每次递归地减去所述输入的所述经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集;
完整的子DCT-II单元,其计算完整的子DCT-II,所述完整的子DCT-II接收所述交叉相加的输入的所述第一子集并基于所述交叉相加的输入的所述第一子集生成第一组完整的输出;
完整的子DCT-III单元,其计算完整的子DCT-III,所述完整的子DCT-III接收所述输入的所述经递归相减的第二子集并基于所述输入的所述经递归相减的第二子集生成第二组输出;以及
缩减单元,其将所述第二组输出乘以一个或多个缩减因子,以生成第二组完整的输出;
其中,所述完整的DCT-II单元将所述第一组完整的输出和所述第二组完整的输出重新排序,以生成所述DCT-II的输出值。
27.一种被配置成执行完整的类型II的离散余弦变换DCT-II以将媒体数据从空间域变换到频率域的装置,所述装置包括:
用于确定要执行的所述完整的DCT-II的尺寸是否是2的倍数的模块;以及
用于响应于确定要执行的所述完整的DCT-II的尺寸是2的倍数,执行所述完整的DCT-II以将所述媒体数据从所述空间域变换到所述频率域的模块,
其中,用于执行所述完整的DCT-II的所述模块包括:
用于进行蝶形计算的模块,所述蝶形计算包括到所述DCT-II的输入的交叉加法和交叉减法,其中,所述蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;
用于颠倒经交叉相减的所述输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集的模块;
用于计算一系列递归减法的模块,所述递归减法每次递归地减去所述输入的所述经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集;
用于计算完整的子DCT-II的模块,所述完整的子DCT-II接收所述交叉相加的输入的所述第一子集并基于所述交叉相加的输入的所述第一子集生成第一组完整的输出;
用于计算完整的子DCT-III的模块,所述完整的子DCT-III接收所述输入的所述经递归相减的第二子集并基于所述输入的所述经递归相减的第二子集生成第二组输出;
用于将所述第二组输出乘以一个或多个缩减因子,以生成第二组完整的输出的模块;以及
用于将所述第一组完整的输出和所述第二组完整的输出重新排序,以生成所述DCT-II的输出值的模块。
28.一种执行类型III的离散余弦变换DCT-III以将媒体数据从频率域变换到空间域的方法,所述方法包括:
利用装置确定要执行的所述DCT-III的尺寸是否是2的倍数;以及
响应于确定要执行的所述DCT-III的尺寸是2的倍数,利用所述装置执行所述DCT-III以将所述媒体数据从所述频率域变换到所述空间域,
其中,执行所述DCT-III包括执行执行类型II的DCT DCT-II的逆,以及
其中,执行所述DCT-II包括:
进行蝶形计算,所述蝶形计算包括到所述DCT-II的输入的交叉加法和交叉减法,其中,所述蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;
颠倒经交叉相减的所述输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集;
计算一系列递归减法,所述递归减法每次递归地减去所述输入的所述经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集;
计算子DCT-II,所述子DCT-II接收所述交叉相加的输入的所述第一子集并基于所述交叉相加的输入的所述第一子集生成第一组输出;
计算子DCT-III,所述子DCT-III接收所述输入的所述经递归相减的第二子集并基于所述输入的所述经递归相减的第二子集生成第二组输出;以及
将分别由所述子DCT-II和所述子DCT-III产生的所述第一组输出和所述第二组输出重新排序,以生成所述DCT-II的输出值。
29.一种媒体编码设备,被配置成执行类型III的离散余弦变换DCT-III以将媒体数据从频率域变换到空间域,所述媒体编码设备包括:
DCT-III单元,其确定要执行的DCT-III的尺寸是否是2的倍数,并且响应于确定要执行的所述DCT-III的尺寸是2的倍数,执行所述DCT-III以将所述媒体数据从所述频率域变换到所述空间域,
其中,所述DCT-III单元执行由DCT-II单元执行的执行类型II的DCTDCT-II的逆,
其中,为了执行所述DCT-II,所述DCT-II单元包括:
蝶形单元,其进行蝶形计算,所述蝶形计算包括到所述DCT-II的输入的交叉加法和交叉减法,其中,所述蝶形单元包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;
顺序颠倒单元,其颠倒经交叉相减的所述输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集;
递归减法单元,其计算一系列递归减法,所述递归减法每次递归地减去所述输入的所述经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集;
子DCT-II单元,其计算子DCT-II,所述子DCT-II接收所述交叉相加的输入的所述第一子集并基于所述交叉相加的输入的所述第一子集生成第一组输出;以及
子DCT-III单元,其计算子DCT-III,所述子DCT-III接收所述输入的所述经递归相减的第二子集并基于所述输入的所述经递归相减的第二子集生成第二组输出,
其中,所述DCT-II单元将分别由所述子DCT-II和所述子DCT-III产生的所述第一组输出和所述第二组输出重新排序,以生成所述DCT-II的缩减的输出值。
30.一种被配置成执行类型III的离散余弦变换DCT-III以将媒体数据从频率域变换到空间域的装置,所述装置包括:
用于确定要执行的DCT-III的尺寸是否是2的倍数的模块;以及
用于响应于确定要执行的所述DCT-III的尺寸是2的倍数,执行所述DCT-III以将媒体数据从所述频率域变换到所述空间域的模块,
其中,用于执行所述DCT-III的所述模块包括用于执行DCT-II的逆的模块,其中,通过进行下列操作来执行所述DCT-II:
进行蝶形计算,所述蝶形计算包括到所述DCT-II的输入的交叉加法和交叉减法,其中,所述蝶形计算包括将所述输入的第一子集交叉相加的第一部分和将所述输入的第二子集交叉相减的第二部分;
颠倒经交叉相减的所述输入的第二子集的顺序,以生成所述输入的经顺序颠倒的第二子集;
计算一系列递归减法,所述递归减法每次递归地减去所述输入的所述经顺序颠倒的第二子集,以生成所述输入的经递归相减的第二子集;
计算子DCT-II,所述子DCT-II接收经交叉相加的所述输入的所述第一子集并基于经交叉相加的所述输入的所述第一子集生成第一组输出;
计算子DCT-III,所述子DCT-III接收所述输入的所述经递归相减的第二子集并基于所述输入的所述经递归相减的第二子集生成第二组
输出;以及
将分别由所述子DCT-II和所述子DCT-III产生的所述第一组输出和所述第二组输出重新排序,以生成所述DCT-II的输出值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16941809P | 2009-04-15 | 2009-04-15 | |
US61/169,418 | 2009-04-15 | ||
US12/758,959 US9110849B2 (en) | 2009-04-15 | 2010-04-13 | Computing even-sized discrete cosine transforms |
US12/758,959 | 2010-04-13 | ||
PCT/US2010/031314 WO2010121077A2 (en) | 2009-04-15 | 2010-04-15 | Computing even-sized discrete cosine transforms |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102460425A CN102460425A (zh) | 2012-05-16 |
CN102460425B true CN102460425B (zh) | 2014-12-10 |
Family
ID=42980952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080025239.4A Expired - Fee Related CN102460425B (zh) | 2009-04-15 | 2010-04-15 | 计算偶数尺寸的离散余弦变换 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9110849B2 (zh) |
EP (1) | EP2419838A2 (zh) |
JP (1) | JP5529257B2 (zh) |
CN (1) | CN102460425B (zh) |
TW (1) | TWI418996B (zh) |
WO (1) | WO2010121077A2 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009100021A2 (en) * | 2008-02-01 | 2009-08-13 | Lehigh University | Bilinear algorithms and vlsi implementations of forward and inverse mdct with applications to mp3 audio |
US9069713B2 (en) * | 2009-06-05 | 2015-06-30 | Qualcomm Incorporated | 4X4 transform for media coding |
US8762441B2 (en) * | 2009-06-05 | 2014-06-24 | Qualcomm Incorporated | 4X4 transform for media coding |
US9075757B2 (en) * | 2009-06-24 | 2015-07-07 | Qualcomm Incorporated | 16-point transform for media data coding |
US8451904B2 (en) | 2009-06-24 | 2013-05-28 | Qualcomm Incorporated | 8-point transform for media data coding |
US9081733B2 (en) * | 2009-06-24 | 2015-07-14 | Qualcomm Incorporated | 16-point transform for media data coding |
US9118898B2 (en) * | 2009-06-24 | 2015-08-25 | Qualcomm Incorporated | 8-point transform for media data coding |
KR101081971B1 (ko) * | 2009-11-05 | 2011-11-09 | (주)실리콘화일 | 스케일링 기능을 포함하는 jpeg 디코더 및 그의 스케일링 방법 |
US8995532B2 (en) | 2010-09-30 | 2015-03-31 | Texas Instruments Incorporated | Low complexity large transform |
US9824066B2 (en) | 2011-01-10 | 2017-11-21 | Qualcomm Incorporated | 32-point transform for media data coding |
WO2013067435A1 (en) * | 2011-11-04 | 2013-05-10 | Huawei Technologies Co., Ltd. | Differential pulse code modulation intra prediction for high efficiency video coding |
US9781447B1 (en) | 2012-06-21 | 2017-10-03 | Google Inc. | Correlation based inter-plane prediction encoding and decoding |
US9185414B1 (en) * | 2012-06-29 | 2015-11-10 | Google Inc. | Video encoding using variance |
US9167268B1 (en) | 2012-08-09 | 2015-10-20 | Google Inc. | Second-order orthogonal spatial intra prediction |
US9344742B2 (en) * | 2012-08-10 | 2016-05-17 | Google Inc. | Transform-domain intra prediction |
WO2014060637A1 (en) * | 2012-10-18 | 2014-04-24 | Nokia Corporation | Image processing method, devices and system |
US9628790B1 (en) | 2013-01-03 | 2017-04-18 | Google Inc. | Adaptive composite intra prediction for image and video compression |
KR102063385B1 (ko) * | 2013-01-30 | 2020-01-07 | 인텔 코포레이션 | 차세대 비디오용 콘텐츠 적응적 엔트로피 코딩 |
US10015507B2 (en) | 2013-05-20 | 2018-07-03 | Cinova Media | Transform system and method in video and image compression |
US9609343B1 (en) | 2013-12-20 | 2017-03-28 | Google Inc. | Video coding using compound prediction |
WO2015130470A1 (en) * | 2014-02-26 | 2015-09-03 | Vor Data Systems, Inc. | System and method for digital signal compression |
US10460700B1 (en) | 2015-10-12 | 2019-10-29 | Cinova Media | Method and apparatus for improving quality of experience and bandwidth in virtual reality streaming systems |
US10264196B2 (en) | 2016-02-12 | 2019-04-16 | Contrast, Inc. | Systems and methods for HDR video capture with a mobile device |
US10257394B2 (en) | 2016-02-12 | 2019-04-09 | Contrast, Inc. | Combined HDR/LDR video streaming |
US10554901B2 (en) | 2016-08-09 | 2020-02-04 | Contrast Inc. | Real-time HDR video for vehicle control |
EP3306937A1 (en) * | 2016-10-05 | 2018-04-11 | Thomson Licensing | Method and apparatus for encoding and decoding a video |
US10848788B2 (en) * | 2017-01-06 | 2020-11-24 | Qualcomm Incorporated | Multi-type-tree framework for video coding |
CN107027039B (zh) * | 2017-04-14 | 2019-08-27 | 西安电子科技大学 | 基于高效视频编码标准的离散余弦变换实现方法 |
US10944971B1 (en) | 2017-05-22 | 2021-03-09 | Cinova Media | Method and apparatus for frame accurate field of view switching for virtual reality |
US10904573B2 (en) * | 2017-11-30 | 2021-01-26 | Embry-Riddle Aeronautical University, Inc. | Reduced multiplicative complexity discrete cosine transform (DCT) circuitry |
US10951888B2 (en) | 2018-06-04 | 2021-03-16 | Contrast, Inc. | Compressed high dynamic range video |
EP3837635A4 (en) * | 2018-08-14 | 2022-04-27 | Contrast, Inc. | IMAGE COMPRESSION |
CA3109667A1 (en) * | 2018-08-14 | 2020-02-20 | Contrast, Inc. | Image processing noise reduction |
WO2022174762A1 (en) * | 2021-02-20 | 2022-08-25 | Beijing Bytedance Network Technology Co., Ltd. | Transforms on non-dyadic blocks |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791222A (zh) * | 2004-12-17 | 2006-06-21 | 微软公司 | 对有损及无损的2-d数据压缩的可逆转换 |
Family Cites Families (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2581463B1 (fr) | 1985-05-03 | 1989-09-08 | Thomson Csf | Dispositifs de calcul de transformees cosinus, dispositif de codage et dispositif de decodage d'images comportant de tels dispositifs de calcul |
US5253055A (en) | 1992-07-02 | 1993-10-12 | At&T Bell Laboratories | Efficient frequency scalable video encoding with coefficient selection |
US5408425A (en) | 1993-05-25 | 1995-04-18 | The Aerospace Corporation | Split-radix discrete cosine transform |
US5508949A (en) | 1993-12-29 | 1996-04-16 | Hewlett-Packard Company | Fast subband filtering in digital signal coding |
US5649077A (en) | 1994-03-30 | 1997-07-15 | Institute Of Microelectronics, National University Of Singapore | Modularized architecture for rendering scaled discrete cosine transform coefficients and inverse thereof for rapid implementation |
TW284869B (zh) | 1994-05-27 | 1996-09-01 | Hitachi Ltd | |
JP3115199B2 (ja) | 1994-12-16 | 2000-12-04 | 松下電器産業株式会社 | 画像圧縮符号化装置 |
US5737450A (en) | 1995-05-15 | 1998-04-07 | Polaroid Corporation | Method and apparatus for fast two-dimensional cosine transform filtering |
JP2778622B2 (ja) | 1995-06-06 | 1998-07-23 | 日本電気株式会社 | 2次元dct回路 |
JPH09212484A (ja) | 1996-01-30 | 1997-08-15 | Texas Instr Inc <Ti> | 離散コサイン変換方法 |
EP1018082A1 (en) | 1997-08-25 | 2000-07-12 | QUALCOMM Incorporated | Variable block size 2-dimensional inverse discrete cosine transform engine |
CN1296852C (zh) | 1997-11-17 | 2007-01-24 | 索尼电子有限公司 | 用于采用离散变换进行数字视频数据去压缩的方法和系统 |
US6252994B1 (en) | 1998-01-26 | 2001-06-26 | Xerox Corporation | Adaptive quantization compatible with the JPEG baseline sequential mode |
US6222944B1 (en) | 1998-05-07 | 2001-04-24 | Sarnoff Corporation | Down-sampling MPEG image decoder |
JP2001346213A (ja) | 2000-06-02 | 2001-12-14 | Nec Corp | 離散コサイン変換装置及びその離散コサイン変換方法 |
WO2001059603A1 (en) | 2000-02-09 | 2001-08-16 | Cheng T C | Fast method for the forward and inverse mdct in audio coding |
CN100429644C (zh) | 2000-10-23 | 2008-10-29 | 国际商业机器公司 | 使用比例项、早期中止和精度细算的更快速变换 |
US7929610B2 (en) | 2001-03-26 | 2011-04-19 | Sharp Kabushiki Kaisha | Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding |
US7366236B1 (en) | 2001-06-04 | 2008-04-29 | Cisco Sytems Canada Co. | Source adaptive system and method for 2D iDCT |
US7185037B2 (en) | 2001-08-23 | 2007-02-27 | Texas Instruments Incorporated | Video block transform |
ATE363183T1 (de) | 2001-08-24 | 2007-06-15 | Koninkl Philips Electronics Nv | Addieren von halbbildern eines bildes |
US7082450B2 (en) | 2001-08-30 | 2006-07-25 | Nokia Corporation | Implementation of a transform and of a subsequent quantization |
US6882685B2 (en) | 2001-09-18 | 2005-04-19 | Microsoft Corporation | Block transform and quantization for image and video coding |
KR100481067B1 (ko) | 2001-09-28 | 2005-04-07 | 브이케이 주식회사 | 분산 산술 처리장치 및 그를 이용한 이차원 이산여현변환 처리장치 |
US7088791B2 (en) | 2001-10-19 | 2006-08-08 | Texas Instruments Incorporated | Systems and methods for improving FFT signal-to-noise ratio by identifying stage without bit growth |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
FR2834362A1 (fr) | 2001-12-28 | 2003-07-04 | Koninkl Philips Electronics Nv | Dispositif de transformation inverse adaptatif |
JP2003223433A (ja) | 2002-01-31 | 2003-08-08 | Matsushita Electric Ind Co Ltd | 直交変換方法、直交変換装置、符号化方法、符号化装置、逆直交変換方法、逆直交変換装置、復号化方法、及び、復号化装置 |
US7007055B2 (en) | 2002-03-12 | 2006-02-28 | Intel Corporation | Method of performing NxM Discrete Cosine Transform |
US7242713B2 (en) | 2002-05-02 | 2007-07-10 | Microsoft Corporation | 2-D transforms for image and video coding |
US7437394B2 (en) | 2002-06-19 | 2008-10-14 | The Aerospace Corporation | Merge and split discrete cosine block transform method |
US20040136602A1 (en) | 2003-01-10 | 2004-07-15 | Nithin Nagaraj | Method and apparatus for performing non-dyadic wavelet transforms |
US7412100B2 (en) | 2003-09-04 | 2008-08-12 | Qualcomm Incorporated | Apparatus and method for sub-sampling images in a transform domain |
US7379500B2 (en) | 2003-09-30 | 2008-05-27 | Microsoft Corporation | Low-complexity 2-power transform for image/video compression |
TWI241074B (en) | 2003-11-05 | 2005-10-01 | Bing-Fei Wu | Image compression system using two-dimensional discrete wavelet transformation |
TWI289992B (en) | 2003-12-03 | 2007-11-11 | Via Tech Inc | Method and device for sharing MPEG frame buffers |
US20050213835A1 (en) | 2004-03-18 | 2005-09-29 | Huazhong University Of Science & Technology And Samsung Electronics Co., Ltd. | Integer transform matrix selection method in video coding and related integer transform method |
US8861600B2 (en) | 2004-06-18 | 2014-10-14 | Broadcom Corporation | Method and system for dynamically configurable DCT/IDCT module in a wireless handset |
US7587093B2 (en) | 2004-07-07 | 2009-09-08 | Mediatek Inc. | Method and apparatus for implementing DCT/IDCT based video/image processing |
US7560788B2 (en) * | 2004-09-20 | 2009-07-14 | General Electric Company | Microelectromechanical system pressure sensor and method for making and using |
US7792385B2 (en) | 2005-01-25 | 2010-09-07 | Globalfoundries Inc. | Scratch pad for storing intermediate loop filter data |
TW200643848A (en) | 2005-06-01 | 2006-12-16 | Wintek Corp | Method and apparatus for four-color data conversion |
US20070025441A1 (en) | 2005-07-28 | 2007-02-01 | Nokia Corporation | Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding |
TWI280804B (en) | 2005-09-26 | 2007-05-01 | Yuh-Jue Chuang | Method for splitting 8x8 DCT into four 4x4 modified DCTS used in AVC/H. 264 |
US7725516B2 (en) | 2005-10-05 | 2010-05-25 | Qualcomm Incorporated | Fast DCT algorithm for DSP with VLIW architecture |
US20070200738A1 (en) | 2005-10-12 | 2007-08-30 | Yuriy Reznik | Efficient multiplication-free computation for signal and data processing |
TWI311856B (en) | 2006-01-04 | 2009-07-01 | Quanta Comp Inc | Synthesis subband filtering method and apparatus |
US8595281B2 (en) | 2006-01-11 | 2013-11-26 | Qualcomm Incorporated | Transforms with common factors |
CN100562111C (zh) | 2006-03-28 | 2009-11-18 | 华为技术有限公司 | 离散余弦逆变换方法及其装置 |
US8849884B2 (en) | 2006-03-29 | 2014-09-30 | Qualcom Incorporate | Transform design with scaled and non-scaled interfaces |
EP1850597A1 (en) | 2006-04-24 | 2007-10-31 | Universität Dortmund | Method and circuit for performing a cordic based Loeffler discrete cosine transformation (DCT), particularly for signal processing |
US8571340B2 (en) | 2006-06-26 | 2013-10-29 | Qualcomm Incorporated | Efficient fixed-point approximations of forward and inverse discrete cosine transforms |
US8582663B2 (en) | 2006-08-08 | 2013-11-12 | Core Wireless Licensing S.A.R.L. | Method, device, and system for multiplexing of video streams |
US8548815B2 (en) | 2007-09-19 | 2013-10-01 | Qualcomm Incorporated | Efficient design of MDCT / IMDCT filterbanks for speech and audio coding applications |
US8654833B2 (en) | 2007-09-26 | 2014-02-18 | Qualcomm Incorporated | Efficient transformation techniques for video coding |
JP5427785B2 (ja) | 2007-09-28 | 2014-02-26 | ドルビー ラボラトリーズ ライセンシング コーポレイション | ビデオ圧縮技法及びビデオ伝達技法 |
US20090141808A1 (en) | 2007-11-30 | 2009-06-04 | Yiufai Wong | System and methods for improved video decoding |
US8631060B2 (en) | 2007-12-13 | 2014-01-14 | Qualcomm Incorporated | Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures |
KR20090078494A (ko) | 2008-01-15 | 2009-07-20 | 삼성전자주식회사 | 영상 데이터의 디블록킹 필터링 방법 및 디블록킹 필터 |
CN101330616B (zh) | 2008-07-31 | 2011-04-13 | 上海交通大学 | 视频解码过程中反离散余弦变换的硬件实现装置及方法 |
US20100172409A1 (en) | 2009-01-06 | 2010-07-08 | Qualcom Incorporated | Low-complexity transforms for data compression and decompression |
US8762441B2 (en) | 2009-06-05 | 2014-06-24 | Qualcomm Incorporated | 4X4 transform for media coding |
US9069713B2 (en) | 2009-06-05 | 2015-06-30 | Qualcomm Incorporated | 4X4 transform for media coding |
US9075757B2 (en) | 2009-06-24 | 2015-07-07 | Qualcomm Incorporated | 16-point transform for media data coding |
US9081733B2 (en) | 2009-06-24 | 2015-07-14 | Qualcomm Incorporated | 16-point transform for media data coding |
US9118898B2 (en) | 2009-06-24 | 2015-08-25 | Qualcomm Incorporated | 8-point transform for media data coding |
US8451904B2 (en) | 2009-06-24 | 2013-05-28 | Qualcomm Incorporated | 8-point transform for media data coding |
CN101989253B (zh) | 2009-07-31 | 2012-08-29 | 鸿富锦精密工业(深圳)有限公司 | 离散余弦转换电路及使用其的影像处理装置 |
US9824066B2 (en) | 2011-01-10 | 2017-11-21 | Qualcomm Incorporated | 32-point transform for media data coding |
-
2010
- 2010-04-13 US US12/758,959 patent/US9110849B2/en not_active Expired - Fee Related
- 2010-04-15 EP EP10716948A patent/EP2419838A2/en not_active Withdrawn
- 2010-04-15 WO PCT/US2010/031314 patent/WO2010121077A2/en active Application Filing
- 2010-04-15 JP JP2012505944A patent/JP5529257B2/ja not_active Expired - Fee Related
- 2010-04-15 CN CN201080025239.4A patent/CN102460425B/zh not_active Expired - Fee Related
- 2010-04-15 TW TW99111842A patent/TWI418996B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791222A (zh) * | 2004-12-17 | 2006-06-21 | 微软公司 | 对有损及无损的2-d数据压缩的可逆转换 |
Non-Patent Citations (2)
Title |
---|
Design of fast transforms for high-resolution image and video coding;Y.A.Reznik;《Applications of Digital Image Processing vol7443》;20090902;1-17 * |
Y.A.Reznik.Design of fast transforms for high-resolution image and video coding.《Applications of Digital Image Processing vol7443》.2009, * |
Also Published As
Publication number | Publication date |
---|---|
US20100266008A1 (en) | 2010-10-21 |
JP2012524330A (ja) | 2012-10-11 |
US9110849B2 (en) | 2015-08-18 |
WO2010121077A2 (en) | 2010-10-21 |
TWI418996B (zh) | 2013-12-11 |
WO2010121077A3 (en) | 2011-11-17 |
JP5529257B2 (ja) | 2014-06-25 |
CN102460425A (zh) | 2012-05-16 |
TW201104456A (en) | 2011-02-01 |
EP2419838A2 (en) | 2012-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102460425B (zh) | 计算偶数尺寸的离散余弦变换 | |
CN102713895B (zh) | 用于媒体编码的4x4变换 | |
CN102667757B (zh) | 用于媒体编码的4x4变换 | |
KR101550166B1 (ko) | 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어 | |
CN102804171B (zh) | 用于媒体数据译码的16点变换 | |
US20100172409A1 (en) | Low-complexity transforms for data compression and decompression | |
CN102804172A (zh) | 用于媒体数据译码的16点变换 | |
CN103380425A (zh) | 用于媒体数据译码的32点变换 | |
US20100329329A1 (en) | 8-point transform for media data coding | |
US20110150078A1 (en) | 8-point transform for media data coding | |
CN105163130B (zh) | 一种基于离散Tchebichef正交多项式的图像无损压缩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141210 Termination date: 20190415 |