CN107079169B - 用于由视频编码器使用正向变换矩阵执行正向变换的方法、设备、装置和介质 - Google Patents
用于由视频编码器使用正向变换矩阵执行正向变换的方法、设备、装置和介质 Download PDFInfo
- Publication number
- CN107079169B CN107079169B CN201580034202.0A CN201580034202A CN107079169B CN 107079169 B CN107079169 B CN 107079169B CN 201580034202 A CN201580034202 A CN 201580034202A CN 107079169 B CN107079169 B CN 107079169B
- Authority
- CN
- China
- Prior art keywords
- transform matrix
- forward transform
- matrix
- 32dct
- row
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 491
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 93
- 230000009466 transformation Effects 0.000 claims abstract description 20
- 238000004422 calculation algorithm Methods 0.000 claims description 28
- 230000002441 reversible effect Effects 0.000 claims description 18
- 230000006835 compression Effects 0.000 claims description 8
- 238000007906 compression Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 230000003287 optical effect Effects 0.000 description 8
- 238000009795 derivation Methods 0.000 description 7
- 238000013139 quantization Methods 0.000 description 7
- 230000011218 segmentation Effects 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. 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/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/182—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 a pixel
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Discrete Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (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)
Abstract
各个实施例总体上涉及一种用于在存储器中存储包括具有定义数量的精度位和一个符号位的有符号常数的至少一个主正向变换矩阵并且由处理电路至少基于变换单元尺寸确定使用哪个正向变换矩阵来执行变换的装置、方法和其他技术。进一步地,各种技术可以包括:由所述处理电路至少部分地基于所述确定而使用所述至少一个主正向变换矩阵之一或者从所述主正向变换矩阵之一导出的正向变换矩阵对帧的像素值的残差执行所述变换。
Description
技术领域
本文描述的实施例总体上涉及用于处理原始视频流的技术。更确切地,技术可以包括应用正向变换以对原始视频流的一个或多个视频帧进行编码。
背景技术
基于模拟视频信号的全运动视频显示长期以电视的形式可用。随着计算机处理能力和可负担性的最新进展,基于数字视频信号的全运动视频显示器变得更广泛可用。在创建、修改、传输、存储和播放全运动视频序列时,数字视频***可以提供优于常规模拟视频***的显著改进。
数字视频包括连续播放或渲染的大量帧。每个帧是基于特定***的显示分辨率由二维像素阵列形成的静止图像。通常,视频中的原始数字信息量巨大,占用了大量存储设备并且在传输时使用大量的带宽。
为了解决存储或传输这样大量数字视频信息的限制,已经建立了各种视频压缩标准或流程。在一些情况下,视频编码器用于获得视频数据并以占用较少空间的格式对视频数据进行编码。因此,可以更高效地使用在发射和接收视频信息的设备之间消耗的带宽,或者同时可以在那些设备之间传输更多的数据。
附图说明
图1展示了视频帧处理***的示例性实施例。
图2展示了32×32DCT正向变换矩阵的示例性实施例。
图3展示了4×4ADST正向变换矩阵的另一示例性实施例。
图4A/4B展示了导出16×16DCT正向变换矩阵的示例性实施例。
图5A/5B展示了导出8×8DCT正向变换矩阵的示例性实施例。
图6A/6B展示了导出4×4DCT正向变换矩阵的示例性实施例。
图7A/7B展示了导出16×16ADST正向变换矩阵的示例性实施例。
图8A/8B展示了导出8×8 ADST正向变换矩阵的示例性实施例。
图9展示了第一逻辑流程的示例性实施例。
图10展示了32×32 DCT正向变换矩阵的第二示例性实施例。
图11展示了16×16 DCT正向变换矩阵的第二示例性实施例。
图12展示了8×8 DCT正向变换矩阵的第二示例性实施例。
图13展示了16×16 ADST正向变换矩阵的第二示例性实施例。
图14展示了8×8 ADST正向变换矩阵的第二示例性实施例。
图15展示了计算***的示例性实施例。
图16展示了计算架构的示例性实施例。
具体实施方式
各实施例总体上涉及一种用于使用正向变换矩阵对视频流进行正向变换的装置、***和方法。可以对视频帧进行编码,并且正向变换矩阵可以基于由谷歌公司开发的VP9视频压缩标准。然而,各实施例可以不限于此方式,并且以下描述的各个方面可以应用于任何编码标准,诸如被称为ITU-T/ISO H.264或作为高级视频编解码器(AVC)和MPEG-4第10部分的国际ITU-T国际标准化组织(ISO)视频压缩标准。进一步地,可以根据高效率视频编码(HEVC)视频压缩标准来处理视频帧,HEVC视频压缩标准是由ISO/IEC运动图像专家组(MPEG)和ITU-T视频编码专家组(VCEG)根据ISO/IEC 23008-2MPEG-H第2部分和ITU-T H.265共同开发的H.264/MPEG-4 AVC(高级视频编码)的发展产物。
在一些实施例中,可以基于这些标准中的至少一个标准(诸如VP9)从线性变换算法或过程中导出或生成正向变换矩阵。可以通过将线性变换算法的每一级转换成中间矩阵并且对这些中间矩阵进行求和以创建最终的正向变换矩阵来生成针对特定变换单元尺寸和类型的正向变换矩阵。如以下将更详细讨论的,可以通过将每一中间阶段之后正常发生的取整递延直到最后阶段或者当生成最终正向变换矩阵时来实现各种改进。具有递延取整的这些正向变换矩阵可以产生比使用实际线性变换算法或过程更好的结果。
可以通过利用递延取整实现的另一优点是从另一正向变换矩阵导出或生成正向变换矩阵的能力。例如,各实施例可以包括32×32离散余弦变换(DCT)正向变换矩阵,并且16×16、8×8和4×4DCT正向变换矩阵可以是从32×32 DCT正向变换矩阵中生成的。此外,16×16和8×8非对称离散正弦变换(ADST)正向变换矩阵可以是从32×32 DCT正向变换矩阵中生成的。在各实施例中,32×32 DCT正向变换可以是主正向变换矩阵。各实施例还可以包括4×4 ADST正向变换矩阵。然而,由于其唯一性,因此其可能不能从32×32 DCT正向变换矩阵中导出,并且还可能被认为是主正向变换矩阵。
进一步地,由于当这些正向变换矩阵从线性变换算法中导出时的相当大的处理需求,这些正向变换矩阵在芯片发展时期通常硬接线在芯片上或者存储在存储器(诸如只读存储器)或电路中。然而,从另一正向变换矩阵中导出正向变换矩阵不是处理密集型的,并且可在运行期间完成。在运行期间导出的这些正向变换矩阵可以存储在存储器中,诸如随机存取存储器(RAM)。因此,还可以实现显著的片上空间节省,因为在芯片发展时期仅主正向变换矩阵需要被生成并存储在存储器中或者被硬接线。
然而,各实施例不限于具有递延取整的正向变换矩阵,并且可以生成包括每一中间阶段之后的取整的其他正向变换矩阵。例如,如果解码器要求输出与由线性变换算法生成的那些输出相同,则可以使用具有中间取整的这些正向变换矩阵。这些和其他细节将随以下描述变得明显。
各实施例还涉及用于执行这些操作的装置或***。所述装置可以是为了所需目的而特别构造的,或者它可以包括通过存储在计算机中的由计算机程序选择性地激活或重新配置的通用计算机。本文呈现的过程不是固有地与特定计算机或其他装置相关。各种通用机器可以与根据本文的教导编写的程序一起使用,或者可以证明构造更专用的装置来执行所需方法是方便的。从给出的描述中将出现用于各种这些机器的所需结构。
现在参考附图,其中,贯穿附图相同的参考号用来表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体的细节以便提供对其彻底的理解。然而,可能显而易见的是,可以在没有这些具体细节的情况下实践新颖的实施例。在其它实例中,以框图形式示出了公知的结构和设备,以便于对其进行描述。意图是覆盖与所要求保护的主题一致的所有修改、等同物和替代物。
图1展示了用于处理信息和像素数据的视频帧处理***100的实施例。具体地,视频帧处理***100可以用于对视频流的一个或多个帧进行编码。然而,视频帧处理***100不旨在对用途或功能的范围提出任何限制,因为技术和工具可以在各种通用或专用计算环境中实现。相应地,视频帧处理***100可以包括视频源102、帧分割模块104、变换模块106、量化模块108和编码模块110。在一些实施例中,视频帧处理***100可以包括逆量化模块112、逆变换模块114、帧存储器116和运动估计/运动补偿(ME/MC)模块118以提供反馈信息来对视频流进行处理。
可以将例如具有模拟格式的原始全信息内容视频信号提供给视频帧源102。视频帧源102可以执行各种功能,如,将视频信号数字化成亮度(luma)和色度(chroma)格式,例如,色彩空间中的YCbCr、YUV、YIQ和YCC族。本领域技术人员将理解,对于YCbCr色彩空间,Y是亮度分量,而Cb和Cr是色度分量;对于YUV色彩空间,Y是亮度分量,而U和V是色度分量;对于YIQ色彩空间,Y是亮度分量,而I和Q是对应的同相和正交色度分量;对于YCC色彩空间,Y是亮度分量,而C(Cb)和C(Cr)是色度分量。各实施例不限于此方式,并且视频帧源102可以执行各种功能(诸如基于红、绿、蓝(RGB)颜色模型将视频信号数字化)以便产生广泛的颜色阵列。
视频帧源102可以向帧分割模块104提供格式化的数字化视频信号。不管具体视频格式如何,视频帧源102可执行必要的处理以将原始模拟视频信号的全信息数字视频信号版本提供给帧分割模块104。在各实施例中,视频帧源102可以是传输介质或存储的文件。视频帧源102可以以图片或视频帧的形式向帧分割模块104提供数字视频信号序列。
视频处理***100的架构和核心构建块可以基于运动补偿变换编码,并且可以执行各种运动矢量和模式计算并且包括帧内预测和帧间预测。例如,帧分割模块104可以通过将帧划分为一个或多个区域来压缩,其中,每个区域可以包括一个或多个块或变换单元。在一些实施例中,变换单元可以被定义为具有相应色度样本的16×16亮度像素(或样本)块。每个变换单元还可以被分割为用于运动补偿预测的一个或多个子块分割。在相同或其他实施例中,变换单元可以是不同的变换单元尺寸(诸如4×4像素块、8×8像素块、32×32像素块等等),并且可以基于用于编码的标准。
帧处理***100可以对变换单元进行处理并执行预测。更确切地,可以由ME/MC模块118来执行帧内预测和帧间预测。帧内预测可以在正在被处理的当前视频帧内进行并且是基于可用于针对相邻像素预测变换单元的压缩和解码信息。帧间预测可以基于靠近当前变换单元的之前编码的像素上的类似区域而用于运动组分。预测可以用于减少数据冗余,并且因此不会将过量信息存储在编码流中。
在各实施例中,帧处理***100可以执行预测并将预测值从变换单元的原始信息中减去以得到压缩的残差值或残差。残差可以被发送至变换模块106以供处理并通过利用正向变换矩阵将残差转换到频域。进一步减少残差信息的空间冗余。
变换模块106可以通过利用特定变换尺寸和类型的正向变换矩阵来对残差执行正向变换。更确切地,多个正向变换矩阵可以用于执行正向变换,包括32×32、16×16、8×8和4×4离散余弦变换(DCT)矩阵和16×16、8×8和4×4非对称离散正弦变换(ADST)矩阵。变换模块106可以确定使用哪个正向变换矩阵来执行正向变换,包括变换单元尺寸、预测(帧内和帧间)以及帧内模式。例如,可以选择具有与变换单元相同的变换单元尺寸的正向变换矩阵来执行正向变换。
在各实施例中,可以通过对特定标准的线性变换算法或过程的每个阶段进行转换来生成正向变换矩阵。例如,VP9参考算法或过程可以用于生成或创建针对每种变换尺寸和类型的正向变换矩阵。可以通过将线性变换算法或过程的每个阶段转换成矩阵并且用精确除以214取代中间取整来生成正向变换矩阵。这些中间矩阵可以相乘在一起以便利用递延到最后的取整针对每种变换单元尺寸和类型生成单个矩阵。
然而,在相同或其他实施例中,如图10至图14展示的,其他正向变换矩阵可以基于线性变换算法或过程(诸如VP9参考算法)被生成并且包括每一阶段之后的取整。具体地,取整可以发生在生成每个中间矩阵之后,并且最终矩阵可以是这些中间矩阵的总和。具有中间取整的最终矩阵与具有递延取整的矩阵略微不同。
在一些实施例中,一个或多个主正向变换矩阵可以被生成并且存储在存储器中或者硬接线在一个或多个处理芯片中。主变换矩阵可以是存储在存储器中和/或用于生成其他正向变换矩阵的任何矩阵。更确切地,主正向变换矩阵中的至少一个主正向变换矩阵可以用于导出用于对残差执行正向变换的其他正向变换矩阵。例如,32×32离散余弦变换(DCT)正向变换矩阵可以存储在存储器中或者硬接线到一个或多个处理芯片中,并且其他正向变换矩阵(诸如16×16、8×8和4×4 DCT正向变换矩阵以及16×16和8×8 ADST正向变换矩阵)可以从32×32 DCT矩阵中生成。包括主正向变换矩阵的正向变换矩阵可以包括有符号常数。有符号常数可以具有定义数量的精度位和一个符号位。更确切地并且在一些实施例中,正向变换矩阵包括有符号常数,诸如需要15位存储、14个数值精度位和1个符号位的15位有符号常数。然而,一些实施例不限于15位有符号常数,并且定义数量的有符号常数可以是任何数字。
用于导出其他正向变换矩阵的主正向变换矩阵之一可以是基于方程1的32×32DCT正向变换矩阵:
其中,N=32。
更确切地,如图2展示的,方程1可以用于生成具有定义数量的有符号位有符号常数的32×32 DCT正向变换矩阵。进一步地,方程1可以用于确定其他DCT正向变换矩阵,包括当N=4时的4×4 DCT正向变换矩阵的、当N=8时的8×8 DCT正向变换矩阵以及当N=16时的16×16 DCT正向变换矩阵。然而,如将更详细描述的,32×32 DCT正向变换矩阵可以用作主正向变换矩阵,并且4×4、8×8和16×16 DCT正向变换矩阵可以从32×32 DCT正向变换矩阵中导出。
基于方程1生成正向变换矩阵通常是处理器密集型的并且在大多数情况下当计算***正在处理视频流时用于计算是不可行的。正向变换矩阵可以在处理视频流之前被生成并被存储在芯片上(诸如处理单元、图形处理单元、存储器等)以便减少计算时间。因此,可以通过从主正向变换矩阵(诸如32×32 DCT正向变换矩阵)中导出正向变换矩阵来实现片上节省,因为仅主正向矩阵需要保存在硬件中。从主变换矩阵中导出正向变换矩阵可以在运行期间完成并且存储在存储器(诸如随机存取存储器(RAM)或一些其他缓冲器)中。
在一些实施例中,变换模块106可以基于方程2使用非对称离散正弦变换(ADST)来执行变换:
其中,N=8或16。
方程2可以用于生成8×8 ADST正向变换矩阵和16×16 ADST正向变换矩阵。然而,还可以从32×32 DCT主正向变换矩阵中导出8×8和16×16 ADST正向变换矩阵。再次,节省处理功率和额外片上空间仅需32×32主正向变换矩阵存储在存储器中。
在一些实施例中,变换模块106可以使用4×4 ADST正向变换矩阵来执行变换。然而,此矩阵可以不由方程2生成,但可以使用其他方法来确定。此外,4×4 ADST正向变换矩阵可以不是从32×32 DCT正向变换矩阵中导出的,并且这样可以作为主正向变换矩阵存储在硬件中。这样,各实施例可以包括将32×32 DCT正向变换矩阵和4×4 ADST正向变换矩阵存储为主变换矩阵。
变换模块106可以基于帧间预测和帧内预测、变换单元或块尺寸以及帧内模式确定对残差应用哪个正向变换矩阵。例如,如果变换单元或块尺寸是32×32像素,则32×32DCT正向变换矩阵用于执行正向变换。在另一示例中,如果变换单元利用色度着色,则具有与变换单元相同尺寸的DCT正向变换矩阵用于执行变换。变换模块106可以对残差执行变换,并且在频域中生成有待由量化模块108进行量化的系数。
量化模块108模块接收这些系数以便生成高效损失压缩并且移除不充分信息。剩余信息可以被发送至编码模块110并且可以被编码。在一些实施例中,可以由编码模块110应用熵编码以便生成压缩位流。例如,8位算术编码引擎(诸如布尔编码器(Bool-coder))可以将信息编码成位流。
在各实施例中,视频帧处理***100可以包括逆量化模块112,用于对由量化模块108生成的图像信息进行逆量化。逆变换模块106可以对逆量化的数据执行逆变换。在一些实施例中,逆变换模块114可以基于由变换模块114利用的正向变换矩阵来使用逆变换矩阵。逆变换的恢复残差可以被发送至帧存储器116。帧存储器116可以是任何类型的存储器,包括ROM、RAM等。
在各实施例中,视频帧处理***100可以包括运动估计和补尝(ME/MC)模块118以便对帧执行各种预测。在一些实施例中,ME/MC模块118可以执行帧内预测和帧间预测。可以对恢复残差和预测值进行求和以便生成恢复像素值,这些恢复像素值与解码过程中得到的值完全相同。可以任选地执行附加帧后处理阶段以便消除由正向变换和量化引入的图像块效应。此信息可以存储在存储器(诸如帧存储器116)中以用于帧间预测和另外的帧。
图2展示了32×32 DCT正向变换矩阵200的示例性实施例。32×32 DCT正向变换矩阵200是可以用于生成或导出其他正向变换矩阵(诸如4×4、8×8和16×16 DCT正向变换矩阵和8×8以及16×16 ADST正向变换矩阵)的主正向变换矩阵。32×32 DCT正向变换矩阵200还可以在视频流的编码过程中被使用以便生成用于进一步处理的系数。32×32 DCT正向变换矩阵200可以包括从方程1生成的有符号常数,诸如15位有符号常数。在各实施例中,32×32 DCT正向变换矩阵200可以存储在存储器中,如作为计算处理单元、图形处理单元、或任何其他处理部件的一部分的只读存储器。在相同或其他实施例中,32×32 DCT正向变换矩阵200可以硬接线在处理电路(诸如计算处理单元或图形处理单元)中。
32×32 DCT正向变换矩阵200可以是线性变换过程(诸如VP9参考算法或过程)的近似,以便对32×32像素块执行变换。实际上,32×32 DCT正向变换矩阵200胜过VP9参考算法。更确切地,VP9参考算法包括用于利用线性代数来进行一系列线性变换以执行正向变换的算法。VP9参考算法包括多个阶段,并且在每个中间阶段之后对结果进行取整从而引入不精确性。更确切地,由于中间阶段的取整,VP9算法可以产生更少的最优解或者相比具有无限精度的数学构造解较不准确的变换。可以通过在生成中间矩阵时递延任何取整直到最终矩阵被生成来将VP9参考算法转换成32×32 DCT正向变换矩阵200从而实现显著的逻辑并行化和数据路径再用。进一步地,通过将VP9参考算法转换成矩阵形式(诸如32×32 DCT正向变换矩阵200),用于将矩阵存储在硬件中的门数与在硬件中实现VP9参考算法相比可以显著减少。
图3展示了还可以在视频流的编码过程中使用的4×4 ADST正向变换矩阵300的示例性实施例。4×4 ADST正向变换矩阵300可以包括有符号常数,诸如15位有符号常数。如前讨论的,4×4 ADST正向变换矩阵300可以是唯一的并且可以不是从32×32 DCT正向变换矩阵中导出的。这样,4×4 ADST正向变换矩阵300可以是主正向变换矩阵,并且还可以存储在存储器(诸如作为计算处理单元、图形处理、或任何其他处理部件的一部分的只读存储器)中或者可以硬接线在芯片上。
4×4 ADST正向变换矩阵300可以从具有递延取整的VP参考算法中生成以便实现显著的逻辑并行化和数据路径再用。进一步地,通过将VP9参考算法转换成4×4 ADST正向变换矩阵300,用于将矩阵存储在硬件中的门数与在硬件中实现VP9参考算法相比可以显著减少。
与一些实施例一致,在芯片设计阶段,主变换矩阵200和300可以被设计成在半导体芯片中。有符号常数可以例如经由寄存器被输入到安装在设备(诸如图15的计算设备1505或图16的计算***1600)中的半导体芯片中。当设备或***随后处理图像数据和信息时,适当的主变换矩阵可以用于执行变换或者用于生成另一变换矩阵来执行变换。因此,在各实施例中,仅主变换矩阵需要预先存储在硬件中,这可以根据编码/解码方案的特性来设计。
图4A/4B展示了导出16×16 DCT正向变换矩阵450的示例性实施例。更确切地,图4A展示了从图2展示的32×32 DCT正向变换矩阵中导出16×16 DCT正向变换矩阵。仅出于说明性目的,图4A用“X”代替图2中展示的有符号常数。当从32×32 DCT正向变换矩阵中导出16×16 DCT正向变换矩阵时使用真实的有符号常数。
图4A展示了32×32 DCT正向变换矩阵200的从0至31的32个列和从0到31的32个行。各实施例可以不限于此方式,并且这些行和列可以以任何方式进行编号。16×16 DCT正向变换矩阵450可以从32×32 DCT正向变换矩阵200的前16列以及32×32 DCT正向变换矩阵200以第一行开始的每隔一行中导出。例如,图4A中突出显示的行402可以是16×16 DCT正向变换矩阵450的第一行。行404可以是16×16 DCT正向变换矩阵450的下一行,以此类推。与32×32 DCT正向变换矩阵200的行28和30相对应的行406和408可以是16×16 DCT正向变换矩阵450的最后两行。
图4B展示了从32×32 DCT正向变换矩阵200中导出的16×16 DCT正向变换矩阵450。如图4B中可见,16×16 DCT正向变换矩阵450包括与32×32 DCT正向变换矩阵200的前16列和每隔一行相同的有符号常数。在各实施例中,正向变换矩阵的导出可以发生在运行期间或者在对视频流进行编码时或者在对视频流进行编码之前,并且可以存储在暂时性存储器中。各实施例不限于此方式,并且在一些实施例中,16×16 DCT正向变换矩阵450可以从方程1中生成并且预先存储或硬接线在芯片上。
图5A/5B展示了导出8×8 DCT正向变换矩阵550的示例性实施例。更确切地,图5A展示了从图2展示的32×32 DCT正向变换矩阵200中导出8×8 DCT正向变换矩阵550。仅出于说明性目的,图5A用“X”代替图2中展示的有符号常数。当从32×32 DCT正向变换矩阵200中导出8×8 DCT正向变换矩阵550时使用真实的有符号常数。
图5A展示了32×32 DCT正向变换矩阵200的从0至31的32个列和从0到31的32个行。各实施例可以不限于此方式,并且这些行和列可以以任何方式进行编号。8×8 DCT正向变换矩阵550可以从32×32 DCT正向变换矩阵200的前八列以及以第一行开始的每隔四行中导出。例如,图5A中突出显示的行502可以是8×8 DCT正向变换矩阵550的第一行。行504可以是8×8 DCT正向变换矩阵的最后一行。
图5B展示了从32×32 DCT正向变换矩阵200中导出的8×8 DCT正向变换矩阵550。如图5B中可见,8×8 DCT正向变换矩阵550包括与32×32正向变换矩阵的前八列和每隔四行相同的有符号常数。在各实施例中,正向变换矩阵的导出可以发生在运行期间、在对视频流进行编码时或者在对视频流进行编码之前,并且可以存储在暂时性存储器中。
在一些实施例中,可以从16×16 DCT正向变换矩阵450中导出8×8 DCT正向变换矩阵550。更确切地,16×16 DCT正向变换矩阵450的前八列和每隔一行可以用于确定8×8DCT正向变换矩阵550。各实施例不限于此方式,并且在一些实施例中,8×8 DCT正向变换矩阵550可以从方程1中生成并且可以预先存储或硬接线在芯片上。
图6A/6B展示了导出4×4 DCT正向变换矩阵650的示例性实施例。更确切地,图6A展示了从图2展示的32×32 DCT正向变换矩阵200中导出4×4 DCT正向变换矩阵650。仅出于说明性目的,图6A用“X”代替图2中展示的有符号常数。当从32×32 DCT正向变换矩阵200中导出4×4 DCT正向变换矩阵650时使用真实的有符号常数。
图6A展示了32×32 DCT正向变换矩阵200的从0至31的32个列和从0到31的32个行。各实施例可以不限于此方式,并且这些行和列可以以任何方式进行编号。4×4 DCT正向变换矩阵550可以从32×32 DCT正向变换矩阵200的前四列以及以第一行开始的每隔八行中导出。例如,图6A中突出显示的行602可以是4×4 DCT正向变换矩阵650的第一行。行604可以是4×4 DCT正向变换矩阵650的下一行。行606可以是4×4 DCT正向变换矩阵650的第三行,并且行608可以是4×4 DCT正向变换矩阵650的最后一行。
图6B展示了从32×32 DCT正向变换矩阵200中导出的4×4 DCT正向变换矩阵650。如图6B中可见,4×4 DCT正向变换矩阵650包括与32×32正向变换矩阵200的前四列和每隔八行相同的有符号常数。在各实施例中,正向变换矩阵的导出可以发生在运行期间、在对视频流进行编码时或者在对视频流进行编码之前,并且可以存储在暂时性存储器中。
在一些实施例中,可以从8×8 DCT正向变换矩阵550中导出4×4 DCT正向变换矩阵650。更确切地,8×8 DCT正向变换矩阵550的前四列和每隔一行可以用于确定4×4 DCT正向变换矩阵650。各实施例不限于此方式,并且在一些实施例中,8×8 DCT正向变换矩阵550可以从方程1中生成或者可以从16×16正向变换矩阵450中导出。进一步地,4×4 DCT正向变换矩阵650可以被预先存储或者硬接线在芯片上。
图7A/7B展示了导出16×16 ADST正向变换矩阵750的示例性实施例。更确切地,图7A展示了从图2展示的32×32 DCT正向变换矩阵200中导出16×16 ADST正向变换矩阵750。仅出于说明性目的,图7A用“X”代替图2中展示的有符号常数。当从32×32 DCT正向变换矩阵200中导出16×16 ADST正向变换矩阵750时使用真实的有符号常数。
图7A展示了32×32 DCT正向变换矩阵200的从0至31的32个列和从0到31的32个行。各实施例可以不限于此方式,并且这些行和列可以以任何方式进行编号。16×16 ADST正向变换矩阵750可以是从32×32 DCT正向变换矩阵200的第一列开始并忽略(negate)每隔一列710(从第二列开始)的前16列中导出的。进一步地,16×16 ADST正向变换矩阵750的行可以是从32×32 DCT正向变换矩阵200的最后一行开始的逆序行进的每隔一行中导出的。例如,图7A中突出显示的行702可以是16×16 ADST正向变换矩阵750的第一行。行704可以是16×16 DCT正向变换矩阵750的下一行,以此类推。行706可以是16×16 ADST正向变换矩阵750的倒数第二行,并且行708可以是16×16 ADST正向变换矩阵750的最后一行。因此,16×16 ADST矩阵的行可以是32×32 DCT正向变换矩阵的行“31、29、27、25……3、1”。
图7B展示了从32×32 DCT正向变换矩阵200中导出的16×16 ADST正向变换矩阵750。如图7B中可见,16×16 ADST正向变换矩阵750包括与32×32正向变换矩阵200的忽略每隔一列的前16列以及逆序地每隔一行相同的有符号常数。在各实施例中,正向变换矩阵的导出可以发生在运行期间、在对视频流进行编码时或者在对视频流进行编码之前,并且可以存储在暂时性存储器中。进一步地,16×16 ADST正向变换矩阵750可以基于方程2生成并且预先存储或者硬接线在芯片上。
图8A/8B展示了导出8×8 ADST正向变换矩阵850的示例性实施例。更确切地,图8A展示了从图2展示的32×32 DCT正向变换矩阵200中导出8×8 ADST正向变换矩阵850。仅出于说明性目的,图8A用“X”代替图2中展示的有符号常数。当从32×32 DCT正向变换矩阵200中导出8×8 ADST正向变换矩阵850时使用真实的有符号常数。
图8A展示了32×32 DCT正向变换矩阵200的从0至31的32个列和从0到31的32个行。各实施例可以不限于此方式,并且这些行和列可以以任何方式进行编号。8×8 ADST正向变换矩阵850可以是从32×32 DCT正向变换矩阵200的第一列开始并忽略每隔一列810(从第二列开始)的前八列中导出的。进一步地,8×8 ADST正向变换矩阵750的行可以是从32×32 DCT正向变换矩阵200的倒数第二行开始的逆序行进的每隔四行中导出的。例如,图8A中突出显示的行802可以是8×8 ADST正向变换矩阵850的第一行,并且行804可以是8×8ADST正向变换矩阵850的最后一行,以此类推。因此,8×8 ADST矩阵的行可以是32×32 DCT正向变换矩阵的行“30、26、22……2”。
图8B展示了从32×32 DCT正向变换矩阵200中导出的8×8 ADST正向变换矩阵850。如图8B中可见,8×8 ADST正向变换矩阵850包括与32×32正向变换矩阵200的忽略每隔一列的前八列以及逆序地每隔四行相同的有符号常数。在各实施例中,正向变换矩阵的导出可以发生在运行期间、在对视频流进行编码时或者在对视频流进行编码之前,并且可以存储在暂时性存储器中。在一些实施例中,8×8 ADST正向变换矩阵850可以基于方程2生成并且预先存储或者硬接线在芯片上。
图9展示了用于使用正向变换矩阵来执行变换的第一逻辑流程900的实施例。逻辑流程900可以代表由在此描述的一个或多个实施例执行的操作的部分或所有。例如,逻辑流程900可以展示由***100执行的操作。
在图9示出的展示实施例中,逻辑流程900可以包括在框900处将包括有符号常数的至少一个主正向变换矩阵存储在存储器中。该至少一个主正向变换矩阵可以是从中可以导出其他正向变换矩阵的32×32 DCT正向变换矩阵。在一些实施例中,4×4 ADST正向变换矩阵还可以单独地或与32×32 DCT正向变换矩阵组合地存储在存储器中并且存储为主正向变换矩阵。每个主变换矩阵可以包括多个有符号常数。例如,32×32 DCT正向变换矩阵可以包括1024个有符号常数,并且4×4 ADST正向变换矩阵可以包括16个有符号常数,每个矩阵用于执行正向变换。
在一些实施例中,逻辑流程900可以包括由处理电路至少基于变换单元尺寸确定使用哪个正向变换矩阵来执行正向变换。更确切地,可以选择具有与用于变换的变换单元(或块)的变换单元尺寸相同的尺寸的正向变换矩阵。例如,针对具有32×32像素块的变换单元尺寸的变换单元,可以选择32×32 DCT正向变换单元。
逻辑流程900还可以包括在框915处由处理电路基于所述确定而使用该至少一个主正向变换矩阵之一或者从主正向变换矩阵之一中导出的正向变换矩阵对帧的像素值的残差执行变换。如前讨论的,可以计算帧的残差或残差值,并且可以对残差执行正向变换。可以通过使用主正向变换矩阵之一或者从主正向变换矩阵之一中导出的正向变换矩阵来执行正向变换。如前讨论的,8×8和16×16 ADST正向变换矩阵和4×4、8×8和16×16 DCT正向变换矩阵全都可以从32×32 DCT正向变换矩阵中导出。
图10至图14展示了用于对残差值执行正向变换的正向变换矩阵1000-1400的附加示例性实施例。这些正向变换矩阵可以与先前关于图2-8B讨论的正向变换矩阵相似但不相同。这些正向变换矩阵可以从VP9参考算法中导出,但对每个线性变换阶段过程中引入的取整负有责任。更确切地,中间矩阵可以在每个线性变换阶段之后被生成并且包括如由VP9参考算法引入的取整。图10至图14展示了基于包括取整的中间矩阵针对每种变换单元尺寸和类型的最终变换单元矩阵。图10至图14中的正向变换矩阵可以用于生成输出,这些输出与通过使用VP9参考算法自身生成的输出成镜像。这在用于解码视频流的解码器要求输出与通过VP9参考算法生成的输出相同的情况下可能是有利的。
图10展示了32×32 DCT正向变换矩阵,图11展示了16×16 DCT正向变换矩阵,图12展示了8×8 DCT正向变换矩阵,图13展示了16×16 ADST正向变换矩阵,并且图14展示了8×8 ADST正向变换矩阵。这些矩阵中的每个矩阵可以包括有符号常数。然而,由于在每个线性操作阶段之间引入的取整,正向变换矩阵1000-1400均不可以从另一正向变换矩阵中导出。这样,正向变换矩阵1000-1400中的每个正向变换矩阵可以存储在存储器中或者硬接线到一个或多个芯片中,从而使得它们可以快速被检索以便执行正向变换。
图15展示了***1500的一个实施例。在各实施例中,***1500可以表示适于与本文所述的一个或多个实施例一起使用的***或架构,如图1的***100。实施例不限于此方面。
如图15所示,***1500可以包括多个元件。如针对给定的设计或性能约束集合所期望的,一个或多个元件可以使用一个或多个电路、部件、寄存器、处理器、软件子例程、模块、或其任何组合来实现。举例来讲,虽然图15示出在某个拓扑中的有限数量的元件,但是可以认识到可以按给定实现方式所期望的在***1500中使用在任何合适的拓扑中的或多或少的元件。实施例并不局限于本上下文中。
在各实施例中,***1500可以包括计算设备1505,该计算设备可以是任何类型的计算机或处理设备,包括个人计算机、台式计算机、平板计算机、上网本计算机、笔记本计算机、膝上型计算机、服务器、服务器场、刀片式服务器或任何其他类型的服务器等等。
计算设备1505的其他示例还可以包括被安排来由人佩戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机和其他可以佩带的计算机。在实施例中,例如计算设备1505可以实现为能够执行计算机应用、以及语音通信和/或数据通信的智能电话。尽管一些实施例可以用作为示例实现为智能电话的计算设备1505描述,但应理解,其他实施例也可以使用其他无线计算设备实现。实施例并不局限于此上下文中。
在各实施例中,计算设备1505可以包括处理器电路1502。处理器电路1502可以使用任何处理器或逻辑设备来实现。处理电路1502可以是任何类型的计算元件中的一个或多个,如但不限于:微处理器、处理器、中央处理单元、数字信号处理单元、双核处理器、移动设备处理器、桌面处理器、单核处理器、片上***(SoC)设备、复杂指令集计算(CISC)微处理器、精简指令集(RISC)微处理器、超长指令字(VLIW)微处理器、或单芯片或集成电路上的任何其他类型的处理器或处理电路。处理电路1502可以经由互连1543(诸如一根或多根总线、控制线和数据线)连接到计算***的其他元件并与其通信。
在一个实施例中,计算设备1505可以包括耦合到处理器电路1502的存储器单元1504。如给定实现方式所期望的,存储器单元1504可以经由通信总线1543或者通过处理器电路1502与存储器单元1504之间的专用通信总线耦合到处理器电路1502。存储器单元04可以使用使能够储存数据的任何机器可读的或计算机可读的介质来实现,包括易失性和非易失性存储器两者。在一些实施例中,机器可读的或计算机可读的介质可以包括非瞬态介质。实施例并不局限于此上下文中。
在各实施例中,计算设备1505可以包括图形处理单元(GPU)1506。GPU 1506可包括经优化以执行图形相关操作的任何处理单元、逻辑或电路以及视频解码器引擎和帧关联引擎。GPU 1506可以用于为诸如视频游戏、图形、计算机辅助设计(CAD)、仿真与可视化工具、成像等各种应用渲染2维(2-D)和/或3维(3-D)图像。各实施例不限于此方式;GPU 1506可处理任何类型的图形数据,如图片、视频、程序、动画、3D、2D、目标图像等。
在一些实施例中,计算设备1505可以包括显示控制器1508。显示控制器1508可以是用于处理图形信息并显示图形信息的任何类型的处理器、控制器、电路、逻辑等。显示控制器1508可以从如(多个)缓冲器220的一个或多个缓冲器接收或检索图形信息。在处理信息之后,显示控制器1508可以将图形信息发送到显示器。
在各实施例中,***1500可以包括收发器1544。收发器1544可以包括能够使用各种适合的无线通信技术发射和接收信号的一个或多个无线电。这样的技术可以涉及跨一个或多个无线网络进行通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个人局域网(WPAN)、无线城域网(WMAN)、蜂窝网和卫星网。在跨这类网络通信时,收发器1544可以根据任意版本的一个或多个可适用标准进行操作。实施例并不局限于此上下文中。
在各实施例中,计算设备1505可以包括显示器1545。显示器1545可以构成能够显示从处理器电路1502、图形处理单元1506和显示控制器1508接收的信息的任何显示设备。
在各实施例中,计算设备1505可以包括存储设备1546。存储设备1546可以被实现为非易失性存储设备,如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附属存储设备、闪存、电池应急SDRAM(同步DRAM)和/或网络可接入的存储设备。在实施例中,存储设备1546可以包括用于当例如包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强型保护的技术。存储设备1546的进一步示例可以包括硬磁盘、软磁盘、只读光盘存储器(CD-ROM)、可刻录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、磁光介质、可移除存储器卡或磁盘、各种类型的DVD设备、磁带设备、盒式磁带设备等。实施例并不局限于此上下文中。
在各实施例中,计算设备1505可以包括一个或多个I/O适配器1547。I/O适配器1547的示例可以包括通用串行总线(USB)端口/适配器、IEEE 1394火线端口/适配器等。实施例并不局限于此上下文中。
图16展示了适用于实现之前所述的各实施例的示例性计算架构1600的实施例。在一个实施例中,计算架构1600可以包括或被实现为***100的一部分。
如本申请中所使用的,术语“***”和“部件”旨在指计算机相关实体、或者硬件、硬件和软件的组合、软件、或执行中的软件,其示例由示例性计算架构1600提供。例如,部件可以是但不限于:在处理器上运行的进程、处理器、硬盘驱动器、(光学和/或磁存储介质的)多个存储驱动、对象、可执行文件、执行线程、程序和/或计算机。举例来说,运行在服务器上的应用程序和该服务器二者都可以是部件。一个或多个部件可以驻留在进程和/或执行线程内,并且部件可以位于一个计算机上和/或分布在两个或多个计算机之间。进一步地,部件可以通过各种类型的通信介质彼此通信地耦合以协调操作。所述协调可以涉及信息的单向或双向交换。例如,部件可以以在通信介质上传达的信号的形式来传达信息。该信息可以被实现为分配给各信号线的信号。在这种分配中,每个消息是信号。然而,另外的实施例可以替代地采用数据消息。这样的数据消息可以跨各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构1600包括各种公共计算元件,如一个或多个处理器、多核处理器、协处理器、存储单元、芯片组、控制器、***设备、接口、振荡器、定时设备、视频卡、音频卡,多媒体输入/输出(I/O)部件、电源等。然而,实施例不限于由计算架构1600实现。
如图16所示,计算架构1600包括处理单元1604、***存储器1606和***总线1608。处理单元1604可以是各种可商购的处理器中的任一种。
***总线1608为***部件(包括但不限于***存储器1606到处理单元1604)提供接口。***总线1608可以是几种类型的总线结构中的任何一种,其可以进一步使用各种可商购的总线架构中的任何一种互连到存储器总线(具有或没有存储器控制器)、***总线和局部总线。接口适配器可以经由槽架构连接到***总线1608。示例槽结构可以包括但不限于加速图形端口(AGP)、卡总线、(扩展)工业标准架构((E)ISA)、微通道架构(MCA)、NuBus、***部件互连(扩展)(PCI(X))、PCI Express、个人计算机存储卡国际协会(PCMCIA)等。
计算架构1600可以包括或实现各种制品。制品可以包括用于存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除存储器或不可移除存储器、可擦除存储器或不可擦除存储器、可写存储器或可重写存储器等。逻辑的示例可以包括使用任何合适类型的代码(诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等)实现的可执行计算机程序指令。实施例还可以至少部分地实现为包含在非瞬态计算机可读介质之中或之上的指令,所述指令可以由一个或多个处理器读取和执行以使得能够执行本文描述的操作。
***存储器1606可以包括各种类型的一个或多个更高速存储器单元形式的计算机可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、聚合体存储器(如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅氧氮氧硅(SONOS)存储器、磁性或光学卡、设备阵列(如独立磁盘冗余阵列(RAID))驱动、固态存储器驱动(例如,USB存储器)、固态驱动(SSD)和适用于存储信息的任何其他类型的存储介质。在图16所示的所展示的实施例中,***存储器1606可以包括非易失性存储器1610和/或易失性存储器1612。基本输入/输出***(BIOS)可以存储在非易失性存储器1610中。
计算机1602可包括一个或多个较低速的存储器单元的形式的各种类型的计算机可读存储介质,包括内置(或外置)硬盘驱动器(HDD)1614、用于读写可移动磁盘1618的磁软盘驱动器(FDD)1616、以及用于读写可移动光盘1622(例如,CD-ROM或DVD)的光盘驱动器1620。HDD 1614、FDD 1616和光盘驱动器1620可以分别通过HDD接口1624、FDD接口1626和光盘驱动器接口1628连接到***总线1608。用于外部驱动器实现的HDD接口1624可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一者或两者。
驱动器以及相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储设备。例如,多个程序模块可以存储在驱动器和存储器单元1610、1612中,包括操作***1630、一个或多个应用程序1632、其他程序模块1634和程序数据1636。在一个实施例中,一个或多个应用程序1632、其他程序模块1634和程序数据1636可以包括例如***700的各种应用和/或部件。
用户可以通过一个或多个有线/无线输入设备(例如键盘1638和诸如鼠标1640的定点设备)将命令和信息输入到计算机1602中。其他输入设备可以包括麦克风、红外(IR)远程控制、射频(RF)远程控制、游戏板、手写笔、读卡器、软件狗(Dongle)、指纹打印读取器、手套、图形输入板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式、电阻式等)、轨迹球、轨迹板、传感器、触控笔等等。这些和其他输入设备经常通过输入设备接口1642连接到处理单元1604,所述输入设备接口耦合到***总线1608,但是可以通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等其它接口连接。
监视器1644或其他类型的显示设备也经由接口(诸如视频适配器1646)连接至***总线1608。监视器1644可以在计算机1602的内部或外部。除了监视器1644之外,计算机通常还包括其他***输出设备,如扬声器、打印机等。
计算机1602可以使用经由到一个或多个远程计算机(诸如远程计算机1648)的有线和/或无线通信的逻辑连接在联网环境中操作。远程计算机1648可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且通常包括相对于计算机1602描述的许多或全部元件,尽管为了简洁的目的,仅展示了存储器/存储设备1650。所描绘的逻辑连接包括至局域网(LAN)1652和/或更大的网络(例如,广域网(WAN)1654)的有线/无线连通性。这种LAN和WAN联网环境在办公室和公司中是常见的,并且便于企业范围的计算机网络(诸如内联网),所有这些网络都可以连接到全球通信网络(例如互联网)。
当在LAN连网环境中使用时,计算机1602通过有线和/或无线通信网络接口或适配器1656连接至LAN 1652。适配器1656可以便于到LAN 1652的有线和/或无线通信,所述LAN还可以包括设置在其上的用于与适配器1656的无线功能通信的无线接入点。
当在WAN联网环境中使用时,计算机1602可以包括调制解调器1658,或者连接到WAN 1654上的通信服务器,或者具有用于通过WAN 1654例如通过互联网建立通信的其他装置。可以是内部或外部的和有线和/或无线设备的调制解调器1658经由输入设备接口1642连接到***总线1608。在联网环境中,相对于计算机1602描绘的程序模块或其部分可以被存储在远程存储器/存储设备1650中。应当认识到,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他装置。
计算机1602可操作以使用IEEE 1602标准家族与有线或无线设备或实体进行通信,如无线设备操作性地布置在无线通信(例如,IEEE 1602.11无线调制技术)中。这至少包括Wi-Fi(或无线保真)、WiMax以及蓝牙TM无线技术等等。因此,通信可以是与常规网络一样的预定义结构或简单地是至少两个设备之间的自组织通信。Wi-Fi网络使用被称为IEEE1602.11x(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到互联网以及连接到有线网络(使用IEEE 1602.3相关的介质和功能)。
如之前参考图1至图16所描述的,***100、1500、1600的各元件可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括:设备、逻辑设备、组件、处理器、微处理器、电路、处理器、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括:软件部件、程序、应用、计算机程序、应用程序、***程序、软件开发程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。然而,确定是否是使用硬件元件和/或软件元件来实现实施例可以根据多个因数而变化,如针对给定的实现方式所期望的,如期望的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
详细的公开现在变为提供与进一步的实施例有关的示例。以下提供的示例一到三十二(1-32)旨在是示例性的而非限制性的。
在第一示例中,一种***或装置,具有:处理电路;以及与所述处理电路耦合的存储器,所述存储器用于存储包括具有定义数量的精度位和一个符号位的有符号常数。进一步地,所述处理电路用于使用所述至少一个主正向变换矩阵之一或者从所述至少一个主正向变换矩阵之一导出的正向变换矩阵对帧的像素值的残差执行变换,并且至少基于变换单元尺寸确定使用哪个正向变换矩阵来执行所述变换。
在第二示例中并且为促进所述第一示例,所述***或装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵和4×4非对称离散正弦变换(ADST)正向变换矩阵。
在第三示例中并且为促进前述示例中的任一项,所述***或装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述处理电路用于通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16 DCT正向变换矩阵。
在第四示例中并且为促进前述示例中的任一项,所述***或装置可以包括:所述处理电路用于通过从所述16×16 DCT正向变换矩阵的所述第一行和所述第一列开始的每隔一行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8 DCT正向变换矩阵。
在第五示例中并且为促进前述示例中的任一项,所述***或装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述处理电路用于通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8 DCT正向变换矩阵。
在第六示例中并且为促进前述示例中的任一项,所述***或装置可以包括:所述处理电路用于通过从所述8×8 DCT正向变换矩阵的所述第一行和所述第一列开始的每隔一行和前四列中提取所述有符号常数来导出用于执行所述变换的4×4 DCT正向变换矩阵。
在第七示例中并且为促进前述示例中的任一项,所述***或装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述处理电路用于通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每第八行和前四列中提取所述有符号常数来导出用于执行所述变换的4×4 DCT正向变换矩阵。
在第八示例中并且为促进前述示例中的任一项,所述***或装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述处理电路用于通过从所述32×32 DCT正向变换矩阵的最后一行和第一列开始的逆序地每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16非对称离散正弦变换(ADST)正向变换矩阵,其中,以第二列开始的每隔一列被忽略。
在第九示例中并且为促进前述示例中的任一项,所述***或装置可以包括:所述至少一个主正向变换矩阵包括32×32 DCT正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述处理电路用于通过从所述32×32 DCT正向变换矩阵的倒数第二行和第一列开始的逆序地每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8非对称离散正弦变换(ADST)正向变换矩阵,其中,以第二列开始的每隔一列被忽略。
在第十示例中并且为促进前述示例中的任一项,所述***或装置可以包括只读存储器。
在第十一示例中并且为促进前述示例中的任一项,所述***或装置可以包括:所述处理电路用于基于VP9视频压缩标准执行所述变换。
在第十一示例中并且为促进前述示例中的任一项,一种计算机实现的方法可以包括:在存储器中存储至少一个主正向变换矩阵,所述至少一个主正向变换矩阵包括具有定义数量的精度位和一个符号位的有符号常数;由处理电路至少基于变换单元尺寸确定使用哪个正向变换矩阵来执行变换;以及由所述处理电路至少部分地基于所述确定而使用所述至少一个主正向变换矩阵之一或者从所述主正向变换矩阵之一导出的正向变换矩阵对帧的像素值的残差执行所述变换。
在第十二示例中并且为促进前述示例中的任一项,一种计算机实现的方法可以包括:在存储器中存储至少一个主正向变换矩阵,所述至少一个主正向变换矩阵包括具有定义数量的精度位和一个符号位的有符号常数;由处理电路至少基于变换单元尺寸确定使用哪个正向变换矩阵来执行变换;以及由所述处理电路至少部分地基于所述确定而使用所述至少一个主正向变换矩阵之一或者从所述主正向变换矩阵之一导出的正向变换矩阵对帧的像素值的残差执行所述变换。
在第十三示例中并且为促进前述示例中的任一项,一种计算机实现的方法可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵和4×4非对称离散正弦变换(ADST)正向变换矩阵。
在第十四示例中并且为促进前述示例中的任一项,一种计算机实现的方法可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16 DCT正向变换矩阵。
在第十五示例中并且为促进前述示例中的任一项,一种计算机实现的方法可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8 DCT正向变换矩阵。
在第十六示例中并且为促进前述示例中的任一项,一种计算机实现的方法可以包括:所述至少一个主正向变换矩阵包括32×32 DCT正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每第八行和前四列中提取所述有符号常数来导出用于执行所述变换的4×4DCT正向变换矩阵。
在第十七示例中并且为促进前述示例中的任一项,一种计算机实现的方法可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且通过从所述32×32 DCT正向变换矩阵的最后一行和第一列开始的逆序地每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16非对称离散正弦变换(ADST)正向变换矩阵,其中,以第二列开始的每隔一列被忽略。
在第十八示例中并且为促进前述示例中的任一项,一种计算机实现的方法可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且通过从所述32×32 DCT正向变换矩阵的倒数第二行和第一列开始的逆序地每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8非对称离散正弦变换(ADST)正向变换矩阵,其中,以第二列开始的每隔一列被忽略。
在第十九示例中并且为促进前述示例中的任一项,一种包括计算机可读存储介质的制品,包括多条指令,所述指令当被执行时使***:在存储器中存储至少一个主正向变换矩阵,所述至少一个主正向变换矩阵包括具有定义数量的精度位和一个符号位的有符号常数;由处理电路至少基于变换单元尺寸确定使用哪个正向变换矩阵来执行变换;以及由所述处理电路至少部分地基于所述确定而使用所述至少一个主正向变换矩阵之一或者从所述主正向变换矩阵之一导出的正向变换矩阵对帧的像素值的残差执行所述变换。
在第二十示例中并且为促进前述示例中的任一项,一种包括计算机可读存储介质的制品,包括多条指令,所述指令当被执行时使***:在存储器中存储至少一个主正向变换矩阵,所述至少一个主正向变换矩阵包括具有定义数量的精度位和一个符号位的有符号常数;由处理电路至少基于变换单元尺寸确定使用哪个正向变换矩阵来执行变换;以及由所述处理电路至少部分地基于所述确定而使用所述至少一个主正向变换矩阵之一或者从所述主正向变换矩阵之一导出的正向变换矩阵对帧的像素值的残差执行所述变换,所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵和4×4非对称离散正弦变换(ADST)正向变换矩阵。
在第二十一示例中并且为促进前述示例中的任一项,一种包括计算机可读存储介质的制品可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述***通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16DCT正向变换矩阵。
在第二十二示例中并且为促进前述示例中的任一项,一种包括计算机可读存储介质的制品可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述***通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8DCT正向变换矩阵。
在第二十三示例中并且为促进前述示例中的任一项,一种包括计算机可读存储介质的制品可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述***通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每第八行和前四列中提取所述有符号常数来导出用于执行所述变换的4×4DCT正向变换矩阵。
在第二十四示例中并且为促进前述示例中的任一项,一种包括计算机可读存储介质的制品可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述***通过从所述32×32 DCT正向变换矩阵的最后一行和第一列开始的逆序地每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16非对称离散正弦变换(ADST)正向变换矩阵,其中,以第二列开始的每隔一列被忽略。
在第二十五示例中并且为促进前述示例中的任一项,一种包括计算机可读存储介质的制品可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述***通过从所述32×32 DCT正向变换矩阵的倒数第二行和第一列开始的逆序地每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8非对称离散正弦变换(ADST)正向变换矩阵,其中,以第二列开始的每隔一列被忽略。
在第二十六示例中并且为促进前述示例中的任一项,一种装置可以包括:用于存储至少一个主正向变换矩阵的装置,所述至少一个主正向变换矩阵包括具有定义数量的精度位和一个符号位的有符号常数;用于至少基于变换单元尺寸确定使用哪个正向变换矩阵来执行变换的装置;以及用于至少部分地基于所述确定而使用所述至少一个主正向变换矩阵之一或者从所述主正向变换矩阵之一导出的正向变换矩阵对帧的像素值的残差执行所述变换的装置。
在第二十七示例中并且为促进前述示例中的任一项,一种装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵和4×4非对称离散正弦变换(ADST)正向变换矩阵。
在第二十八示例中并且为促进前述示例中的任一项,一种装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数;以及用于通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16 DCT正向变换矩阵的装置。
在第二十九示例中并且为促进前述示例中的任一项,一种装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数;以及用于通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8 DCT正向变换矩阵的装置。
在第三十示例中并且为促进前述示例中的任一项,一种装置可以包括:所述至少一个主正向变换矩阵包括32×32 DCT正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数;以及用于通过从所述32×32 DCT正向变换矩阵的第一行和第一列开始的每第八行和前四列中提取所述有符号常数来导出用于执行所述变换的4×4 DCT正向变换矩阵的装置。
在第三十一示例中并且为促进前述示例中的任一项,一种装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数;以及用于通过从所述32×32 DCT正向变换矩阵的最后一行和第一列开始的逆序地每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16非对称离散正弦变换(ADST)正向变换矩阵的装置,其中,以第二列开始的每隔一列被忽略。
在第三十二示例中并且为促进前述示例中的任一项,一种装置可以包括:所述至少一个主正向变换矩阵包括32×32离散余弦变换(DCT)正向变换矩阵,所述DCT正向变换矩阵进一步包括32列和32行有符号常数;以及用于通过从所述32×32 DCT正向变换矩阵的倒数第二行和第一列开始的逆序地每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8非对称离散正弦变换(ADST)正向变换矩阵的装置,其中,以第二列开始的每隔一列被忽略。
一些实施例可使用表述“一个实施例”和“实施例”及其派生词来描述。这些术语意味着与实施例相联系地描述的具体特征、结构或者特性被包含在至少一个实施例中。短语“在一个实施例中”在本说明书中各地方的出现不一定全都引用相同的实施例。进一步地,一些实施例可使用表述“耦合”和“连接”及其派生词来描述。这些术语并不必旨在作为彼此的同义词。例如,一些实施例可以使用术语“连接”和/或“耦合”来描述,以指示两个或更多个元件彼此直接物理或电气接触。然而,术语“耦合”还可以指两个或更多个元件未直接地彼此进行接触,但还是彼此进行合作或交互。
强调的是,提供本公开的摘要以允许读者快速确定本技术公开的本质。基于其将不被用于解释或者限制权利要求书的范围或者含义的理解提交所述摘要。此外,在前一个详细描述中,可以看到,出于将本公开连成一体的目的而将各种特征一起组合在单个实施例中。本公开的方法并不被解释为反映以下意图:所要求保护的实施例需要比每项权利要求中明确表述的特征更多的特征。而是被解释为:以下的权利要求书反映了本发明的主题在于比单个公开的实施例的全部特征少。因此,以下的权利要求书据此被并入详细的说明书中,其中,每项权利要求独立自主地作为单独的实施例。在所附权利要求书中,术语“包括(including)”和“其中(in which)”分别用作对应术语“包括(comprising)”和“其中,(wherein)”的易懂的英文等价词。此外,术语“第一”,“第二”,“第三”等仅用作标记,并且不旨在对其对象强加数字要求。
以上所描述的内容包括所公开的架构的示例。当然,不可能描述部件和/或方法的每个可想到的组合,但是本领域普通技术人员可以认识到许多其他组合和置换是可能的。相应地,本新颖的架构旨在涵盖落入所附权利要求书的精神和范围内的全部这种变更、修改和变体。
Claims (26)
1.一种用于处理原始视频流的装置,包括:
处理电路;
与所述处理电路耦合的存储器,所述存储器用于存储至少一个主正向变换矩阵,所述至少一个主正向变换矩阵包括具有定义数量的精度位和一个符号位的有符号常数,并且
所述处理电路用于使用所述至少一个主正向变换矩阵之一或者从所述至少一个主正向变换矩阵之一导出的正向变换矩阵来对帧的像素值的残差执行变换,并且至少基于变换单元尺寸来确定使用相应的正向变换矩阵执行所述变换,所述处理电路用于在生成中间矩阵时将取整操作递延直到生成最终正向变换矩阵。
2.如权利要求1所述的装置,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵和4×4非对称离散正弦变换ADST正向变换矩阵。
3.如权利要求1所述的装置,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且
所述处理电路用于通过从所述32×32DCT正向变换矩阵的第一行和第一列开始的每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16DCT正向变换矩阵。
4.如权利要求3所述的装置,所述处理电路用于通过从所述16×16DCT正向变换矩阵的所述第一行和所述第一列开始的每隔一行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8DCT正向变换矩阵。
5.如权利要求1所述的装置,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且
所述处理电路用于通过从所述32×32DCT正向变换矩阵的第一行和第一列开始的每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8DCT正向变换矩阵。
6.如权利要求5所述的装置,所述处理电路用于通过从所述8×8DCT正向变换矩阵的所述第一行和所述第一列开始的每隔一行和前四列中提取所述有符号常数来导出用于执行所述变换的4×4DCT正向变换矩阵。
7.如权利要求1所述的装置,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且
所述处理电路用于通过从所述32×32DCT正向变换矩阵的第一行和第一列开始的每第八行和前四列中提取所述有符号常数来导出用于执行所述变换的4×4DCT正向变换矩阵。
8.如权利要求1所述的装置,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且
所述处理电路用于通过从所述32×32DCT正向变换矩阵的最后一行和第一列开始的逆序地每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16非对称离散正弦变换ADST正向变换矩阵,其中,从第二列开始每隔一列被忽略。
9.如权利要求1所述的装置,所述至少一个主正向变换矩阵包括32×32DCT正向变换矩阵,所述32×32DCT正向变换矩阵进一步包括32列和32行有符号常数,并且
所述处理电路用于通过从所述32×32DCT正向变换矩阵的倒数第二行和第一列开始的逆序地每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8非对称离散正弦变换ADST正向变换矩阵,其中,从第二列开始每隔一列被忽略。
10.如权利要求1所述的装置,所述存储器包括只读存储器。
11.如权利要求1所述的装置,所述处理电路用于基于VP9视频压缩标准执行所述变换。
12.一种计算机实现的用于处理原始视频流的方法,包括:
在存储器中存储至少一个主正向变换矩阵,所述至少一个主正向变换矩阵包括具有定义数量的精度位和一个符号位的有符号常数;
由处理电路至少基于变换单元尺寸确定使用相应的正向变换矩阵来执行变换;
由所述处理电路至少部分地基于所述确定而使用所述至少一个主正向变换矩阵之一或者从所述主正向变换矩阵之一导出的正向变换矩阵来对帧的像素值的残差执行所述变换;以及
由所述处理电路将与线性变换算法相关联的每一阶段的取整操作递延直到最后阶段或者直到经由求和生成最终正向变换矩阵。
13.如权利要求12所述的计算机实现的方法,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵和4×4非对称离散正弦变换ADST正向变换矩阵。
14.如权利要求12所述的计算机实现的方法,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数;并且
通过从所述32×32DCT正向变换矩阵的第一行和第一列开始的每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16DCT正向变换矩阵。
15.如权利要求12所述的计算机实现的方法,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数;并且
通过从所述32×32DCT正向变换矩阵的第一行和第一列开始的每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8DCT正向变换矩阵。
16.如权利要求12所述的计算机实现的方法,所述至少一个主正向变换矩阵包括32×32DCT正向变换矩阵,所述32×32DCT正向变换矩阵进一步包括32列和32行有符号常数,并且
通过从所述32×32DCT正向变换矩阵的第一行和第一列开始的每第八行和前四列中提取所述有符号常数来导出用于执行所述变换的4×4DCT正向变换矩阵。
17.如权利要求12所述的计算机实现的方法,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且
通过从所述32×32DCT正向变换矩阵的最后一行和第一列开始的逆序地每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16非对称离散正弦变换ADST正向变换矩阵,其中,从第二列开始每隔一列被忽略。
18.如权利要求12所述的计算机实现的方法,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且
通过从所述32×32DCT正向变换矩阵的倒数第二行和第一列开始的逆序地每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8非对称离散正弦变换ADST正向变换矩阵,其中,从第二列开始每隔一列被忽略。
19.一种计算机可读存储介质,其上存储有多条指令,所述指令当被处理器执行时,使所述处理器:
在存储器中存储至少一个主正向变换矩阵,所述至少一个主正向变换矩阵包括具有定义数量的精度位和一个符号位的有符号常数;
由处理电路至少基于变换单元尺寸确定使用相应的正向变换矩阵来执行变换;
由处理电路至少部分地基于所述确定而使用所述至少一个主正向变换矩阵之一或者从所述主正向变换矩阵之一导出的正向变换矩阵对帧的像素值的残差执行所述变换;以及
由处理电路将与线性变换算法相关联的每一阶段的取整操作递延直到最后阶段或者直到经由求和生成最终正向变换矩阵。
20.如权利要求19所述的计算机可读存储介质,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵和4×4非对称离散正弦变换ADST正向变换矩阵。
21.如权利要求19所述的计算机可读存储介质,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述处理器通过从所述32×32DCT正向变换矩阵的第一行和第一列开始的每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16DCT正向变换矩阵。
22.如权利要求19所述的计算机可读存储介质,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述处理器通过从所述32×32DCT正向变换矩阵的第一行和第一列开始的每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8DCT正向变换矩阵。
23.如权利要求19所述的计算机可读存储介质,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述处理器通过从所述32×32DCT正向变换矩阵的第一行和第一列开始的每第八行和前四列中提取所述有符号常数来导出用于执行所述变换的4×4DCT正向变换矩阵。
24.如权利要求19所述的计算机可读存储介质,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述处理器通过从所述32×32DCT正向变换矩阵的最后一行和第一列开始的逆序地每隔一行和前16列中提取所述有符号常数来导出用于执行所述变换的16×16非对称离散正弦变换ADST正向变换矩阵,其中,从第二列开始每隔一列被忽略。
25.如权利要求19所述的计算机可读存储介质,所述至少一个主正向变换矩阵包括32×32离散余弦变换DCT正向变换矩阵,所述32×32离散余弦变换DCT正向变换矩阵进一步包括32列和32行有符号常数,并且所述存储介质包括指令,所述指令当被执行时使所述处理器通过从所述32×32DCT正向变换矩阵的倒数第二行和第一列开始的逆序地每第四行和前八列中提取所述有符号常数来导出用于执行所述变换的8×8非对称离散正弦变换ADST正向变换矩阵,其中,从第二列开始每隔一列被忽略。
26.一种用于处理原始视频流的设备,包括用于执行如权利要求12至18中任一项所述的方法的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/341,481 | 2014-07-25 | ||
US14/341,481 US10863200B2 (en) | 2014-07-25 | 2014-07-25 | Techniques for performing a forward transformation by a video encoder using a forward transform matrix |
PCT/US2015/037388 WO2016014200A1 (en) | 2014-07-25 | 2015-06-24 | Techniques for performing a forward transformation by a video encoder using a forward transform matrix |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107079169A CN107079169A (zh) | 2017-08-18 |
CN107079169B true CN107079169B (zh) | 2021-06-15 |
Family
ID=55163516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580034202.0A Expired - Fee Related CN107079169B (zh) | 2014-07-25 | 2015-06-24 | 用于由视频编码器使用正向变换矩阵执行正向变换的方法、设备、装置和介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10863200B2 (zh) |
EP (1) | EP3172898A4 (zh) |
KR (1) | KR102231975B1 (zh) |
CN (1) | CN107079169B (zh) |
WO (1) | WO2016014200A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9807423B1 (en) * | 2015-11-24 | 2017-10-31 | Google Inc. | Hybrid transform scheme for video coding |
FR3071690B1 (fr) * | 2017-09-22 | 2022-09-30 | Bcom | Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes |
CN110636300B (zh) * | 2018-06-21 | 2022-07-29 | 北京字节跳动网络技术有限公司 | 颜色分量之间的子块运动矢量继承 |
WO2022265420A1 (ko) * | 2021-06-16 | 2022-12-22 | 엘지전자 주식회사 | 영상 코딩 방법 및 그 장치 |
WO2022265415A1 (ko) * | 2021-06-16 | 2022-12-22 | 엘지전자 주식회사 | 저주파 비분리 변환 설계 방법 및 장치 |
WO2022265417A1 (ko) * | 2021-06-16 | 2022-12-22 | 엘지전자 주식회사 | 저주파 비분리 변환 설계 방법 및 장치 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103501437A (zh) * | 2013-09-29 | 2014-01-08 | 北京航空航天大学 | 一种基于分形和h.264的高光谱图像压缩方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09307792A (ja) * | 1996-05-14 | 1997-11-28 | Sony Corp | ノイズリデューサ |
US7110459B2 (en) * | 2002-04-10 | 2006-09-19 | Microsoft Corporation | Approximate bicubic filter |
JP4536109B2 (ja) * | 2007-12-26 | 2010-09-01 | 富士通株式会社 | 半導体装置および信号処理方法 |
US9185422B2 (en) * | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Variable localized bit-depth increase for fixed-point transforms in video coding |
US9378185B2 (en) * | 2010-09-30 | 2016-06-28 | Texas Instruments Incorporated | Transform and quantization architecture for video coding and decoding |
CN102043605B (zh) * | 2010-12-23 | 2012-10-24 | 龙芯中科技术有限公司 | 一种多媒体变换乘法器及其处理方法 |
US9824066B2 (en) | 2011-01-10 | 2017-11-21 | Qualcomm Incorporated | 32-point transform for media data coding |
US8719321B2 (en) * | 2011-12-11 | 2014-05-06 | Hong Kong Applied Science and Technology Research Institute Company Limited | Adaptive block-size transform using LLMICT |
JP5644753B2 (ja) | 2011-12-26 | 2014-12-24 | 豊田合成株式会社 | Iii族窒化物半導体発光素子 |
US9544596B1 (en) * | 2013-12-27 | 2017-01-10 | Google Inc. | Optimized template matching approach to intra-coding in video/image compression |
-
2014
- 2014-07-25 US US14/341,481 patent/US10863200B2/en active Active
-
2015
- 2015-06-24 EP EP15824992.0A patent/EP3172898A4/en not_active Withdrawn
- 2015-06-24 KR KR1020167035767A patent/KR102231975B1/ko active IP Right Grant
- 2015-06-24 CN CN201580034202.0A patent/CN107079169B/zh not_active Expired - Fee Related
- 2015-06-24 WO PCT/US2015/037388 patent/WO2016014200A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103501437A (zh) * | 2013-09-29 | 2014-01-08 | 北京航空航天大学 | 一种基于分形和h.264的高光谱图像压缩方法 |
Non-Patent Citations (1)
Title |
---|
A VP9 Bitstream Overview;Grange等;《https://tools.ietf.org/html/draft-grange-vp9-bitstream-00》;20130218;正文第7页 * |
Also Published As
Publication number | Publication date |
---|---|
EP3172898A1 (en) | 2017-05-31 |
CN107079169A (zh) | 2017-08-18 |
US10863200B2 (en) | 2020-12-08 |
KR102231975B1 (ko) | 2021-03-24 |
EP3172898A4 (en) | 2018-01-17 |
KR20170007467A (ko) | 2017-01-18 |
WO2016014200A1 (en) | 2016-01-28 |
WO2016014200A4 (en) | 2016-04-28 |
US20160029046A1 (en) | 2016-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107079169B (zh) | 用于由视频编码器使用正向变换矩阵执行正向变换的方法、设备、装置和介质 | |
RU2679195C1 (ru) | Способ кодирования видеоизображения, способ декодирования видеоизображения, устройство кодирования и устройство декодирования | |
CN111145090A (zh) | 一种点云属性编码方法、解码方法、编码设备及解码设备 | |
US9392292B2 (en) | Parallel encoding of bypass binary symbols in CABAC encoder | |
US20190028752A1 (en) | Integrated video codec and inference engine | |
CN106341692B (zh) | 图像数据的霍夫曼解码装置和方法 | |
US10271050B2 (en) | Methods, systems and devices including an encoder for image processing | |
CN105554505A (zh) | 应用处理器及其方法以及包括该应用处理器的*** | |
CN109429063A (zh) | 视频编码装置 | |
KR102273670B1 (ko) | 움직임 보상 정보를 수정하는 데이터 처리 시스템과 데이터 처리 방법 | |
CN105245896A (zh) | Hevc并行运动补偿方法及装置 | |
US10841659B2 (en) | Video encoding apparatus and video encoding system | |
CN110913219A (zh) | 一种视频帧预测方法、装置及终端设备 | |
KR20180016508A (ko) | 이미지 인코딩 방법, 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치 | |
CN106464882B (zh) | 用于通过视频编码器处理视频帧的技术 | |
KR102423880B1 (ko) | 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법 | |
CN111083478A (zh) | 一种视频帧重构方法、装置及终端设备 | |
KR101303503B1 (ko) | 컬러 이미지들을 위한 조인트 스칼라 임베디드 그래픽 코딩 | |
CN111083479A (zh) | 一种视频帧预测方法、装置及终端设备 | |
KR20190122479A (ko) | 3차원 데이터를 프로세싱하기 위한 방법 및 장치 | |
CN107172425B (zh) | 缩略图生成方法、装置及终端设备 | |
CN101854538A (zh) | 运动图像处理方法及运动图像处理器 | |
US20240121439A1 (en) | Point cloud attribute information encoding method and apparatus, point cloud attribute information decoding method and apparatus, and related device | |
US9800876B2 (en) | Method of extracting error for peak signal to noise ratio (PSNR) computation in an adaptive scalable texture compression (ASTC) encoder | |
US9848188B1 (en) | Video coding transform systems and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210615 |
|
CF01 | Termination of patent right due to non-payment of annual fee |