CN101131686A - 以降低功率消耗对数据值阵列执行二维变换的方法及系统 - Google Patents

以降低功率消耗对数据值阵列执行二维变换的方法及系统 Download PDF

Info

Publication number
CN101131686A
CN101131686A CNA2007101479403A CN200710147940A CN101131686A CN 101131686 A CN101131686 A CN 101131686A CN A2007101479403 A CNA2007101479403 A CN A2007101479403A CN 200710147940 A CN200710147940 A CN 200710147940A CN 101131686 A CN101131686 A CN 101131686A
Authority
CN
China
Prior art keywords
subclass
row
value
circuit
null value
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.)
Granted
Application number
CNA2007101479403A
Other languages
English (en)
Other versions
CN101131686B (zh
Inventor
拉维·布卢苏
帕塔·斯里拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
PortalPlayer Inc
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN101131686A publication Critical patent/CN101131686A/zh
Application granted granted Critical
Publication of CN101131686B publication Critical patent/CN101131686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/145Square transforms, e.g. Hadamard, Walsh, Haar, Hough, Slant transforms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Abstract

在某些实施例中,提供一种方法及一种系统,所述方法用于对数据块序列中的每一块执行2D变换(例如离散余弦反变换)且所述系统经配置以执行所述2D变换,其中所述2D变换包括行变换及列变换。为对数据行或列执行行变换或列变换,这些实施例判定构成所述行(列)的分区的数据值的每一不同子集是否包括至少一个零值、所述分区的第一子集的每一不同子集是否包括至少一个零值、及所述分区的至少一个其他子集中的每一不同子集是否包括至少一个零值。当对包括至少一个零值及至少一个非零值的每一行或列执行行(列)变换时,均绕过或以降低功率的方式执行对至少一个零值的至少一个变换运算,其中假如所述零值为非零值,则原本将以消耗全功率的方式执行此种变换运算。

Description

以降低功率消耗对数据值阵列执行二维变换的方法及系统
技术领域
本发明涉及用于对二维(2D)数据值阵列执行2D变换(例如离散余弦反变换或哈达玛<Hadamard>反变换)的方法及系统。在典型实施例中,本发明涉及通过避免进行不为变换零值所需的功率消耗运算而以会降低功率消耗的方式对2D图像数据值阵列执行2D正交变换的反变换的方法及电路。
背景技术
在本发明通篇中,使用术语视频数据“块”来表示数据子集,所述数据子集包含视频数据帧,在所述帧的矩形区域内具有空间位置。视频数据块可以但并非必需由压缩(或以其他方式编码)的视频数据组成。视频数据块的实例是以传统方式定义的经MPEG编码的视频帧宏块。
在许多传统应用中,图像数据(例如视频数据)或其他数据会经历二维(“2D”)变换,且经变换的数据会在此后进行反变换,以恢复原始数据。这些变换的实例包括2D离散余弦变换(二维“DCT”)、2D哈达玛变换、及2D傅立叶变换。
在本发明通篇中,“绕过”一运算这一表达方式(其原本将产生运算输出值)表示产生或确定一替代输出值(代替运算输出值)而不实际执行该运算。“绕过”一如下运算将会使节点接地(从而将其迫至地电位)而不在乘法电路及加法电路中实际执行乘法及加法步骤:对乘法电路的输入端确定一零值“z1”及一非零常数“c”以使该电路在其输出端上确定一电流“cz1”,对第二乘法电路的输入端确定另一零值“z2”及不同的非零常数“d”,以使该电路在其输出端上确定一电流“dz2”,并响应于电流“cz1”及“dz2”来操作加法电路,以在一节点处确定输出电压“cz1+dz2”(等于高于地电位零伏)。
本发明涉及用于对2D数据值阵列(即由数据值行及列组成的阵列)执行2D变换的方法及系统,其中每一值均具有较大的为零值的机率。在典型实施例中,本发明涉及一种用于对2D数据值阵列执行2D正交变换的反变换(例如2D离散余弦反变换或哈达玛反变换)的改良的方法及系统。在一类较佳实施例中,本发明涉及一种用于对DCT系数执行二维IDCT(2D离散余弦反变换)的改良的方法及系统。所述DCT系数是通过对视频数据阵列(或其他图像数据)执行2D离散余弦变换而产生,且分别具有较大的为零值的机率。
在本发明通篇中,“零值”(或“零数据值”)这一表达方式表示指示为零值的数据。类似地,“零输入数据值”这一表达方式表示指示为零值的输入数据。例如,零输入值可为具有零值的输入数据字(例如DCT系数,或者颜色分量或视频数据像素)。
在本发明通篇中,“稀疏”数据这一表达方式(例如要经历反变换的稀疏数据块)表示指示有可能为零值的值的数据。例如,指示相对多的零值及相对少的非零值的输入数据块(例如DCT系数块)是稀疏数据块。
反变换实施方案通常是任何要遵从任何视频压缩及解压缩标准的系统的实施方案的主要部分。其为一在计算上繁杂的过程,且极大地影响处理循环及功率消耗要求。执行视频压缩及解压缩标准的移动装置(例如便携式媒体播放器)具有特别严格的处理循环及功率消耗要求:其需要满足由该应用所设立的严格的性能要求并消耗极低的功率,以使电池寿命最大化;且变换引擎通常必须能够支持多种压缩标准及与这些标准相伴随的不同要求。
对数据块进行2D变换(包括2D反变换)的典型的传统实施方案是使用下述技术的不同组合来提高性能或减小功率:
1.不对被外部构件识别为未编码块的块进行变换(其中提供至变换引擎的每一输入块均由该外部构件识别为编码块或未编码块)。然而,该技术存在缺点,包括其可导致执行不必要的变换运算(例如对被识别为编码块但仅由零DC系数组成的块进行变换)。
2.识别每一输入数据块中完全由零值组成的全部行或列(“零行”或“零列”),并绕过原本将对每一此种行或列执行的正常变换运算(例如通过为每一零行或零列输出预定值-通常为“零”)。所述零行及零列可由外部装置加以规定或者由变换引擎在内部进行识别。然而,在许多其中行(或列)不为零行(或零列)、但为仅包含极少数量非零值的稀疏的行(或列)的常见情形中,此种传统技术并不会提供性能或减小功率;
3.识别(根据输入数据)指示应使用相同系数(先前所确定的用于乘以输入数据行或列中的数据值的系数)乘以下一输入数据行或列中的数据值的状态,且不对这些系数进行更新-原本在确定用于乘以所述下一输入数据行或列中的数据值的新系数时将会执行更新;以及
4.执行分布式算术变换(2D变换的基于查找表的实施方案)。典型的基于查找表的实施方案通过减小对块进行变换时所必须执行的乘法运算的数量来减小开销。然而,设计此种实施方案通常非常复杂,因为通常需要使用非常大的ROM表以及多端口ROM,且设计约束条件通常会限制可实现的功率消耗改进量。
在第2005/00337S8号美国专利申请公开案以及相关的第6,799,192号美国专利中所述的另一种传统2D变换中,确定数据块每一列中的最末非零项(当执行DDCT的列变换阶段时),且变换系统随后跳转至八个不同“专门IDCT”程序例程中恰当的一者来以软件形式执行IDCT运算,以对每一列进行反变换。显然,可采用较简单的变换运算(所需的乘法及加法运算较少)来处理具有相对多的零(如具有处于较高位置的最末非零值所指示)的列,并可使用较复杂的变换运算(所需乘法及加法运算较多)来处理具有较少的零(如具有处于较低位置的最末非零值所指示)的列。所述参考文献还教示,当执行IDCT的行变换阶段时(在列变换阶段之后),确定块中每一行的最末非零项,且变换系统随后跳转至八个不同“专门IDCT”程序例程中恰当的一者来以软件形式执行IDCT运算,以对每一行进行反变换。
在第2005/0033788号美国专利申请公开案及第6,799,192号美国专利中所述的技术存在诸多问题及局限性,包括当处理具有典型的零值及非零值图案的许多列及行时,因此种技术不会提高性能或减小功率消耗,因而此种技术效率偏低。例如,当所要变换的列或行包含零(尤其是许多零)、但最末项为非零时,此种技术将选择一会消耗很大功率的复杂(例如最复杂)的“专门IDCT”例程来变换该列或行。相比之下,本发明的较佳实施例则通过不对行及列中由零值组成的部分(例如对由零值组成的每半行或半列、或者每四分之一行或四分之一列)执行变换运算或以功率减小方式执行这些变换运算来提高性能及减小功率消耗。本发明的某些较佳实施例通过不对所要变换的行或列中的每一单独零值执行变换运算来提高性能及减小功率消耗(或者以功率减小的方式对行或列中的每一单独零值执行变换运算)。
在第2005/003378S号美国专利申请公开案或第6,799,192号美国专利中未表明可藉由独立地处理所要变换的每一行或列的各子集来增强其中所揭示技术可实现的性能改良及功率消耗降低,且未表明如何这些进行或是否可这些进行。相比之下,本发明的较佳实施例可按顺序对所要变换的每一行或列的不同子集执行相同的运算(例如反变换),其中每一行或列的各子集决定对所述行或列的划分,且仅通过减小决定每一此种划分的子集的大小便可增强这些实施例所能实现的性能改良及功率消耗降低。例如,本发明的某些较佳实施例对所要变换的每一8N位的行或列的各2N位的子集按顺序执行各组运算(每一行或列四组运算),以实现优异的性能改良及功率消耗降低优点,且本发明的其他较佳实施例对所要变换的每一8N位的行或列的N位的子集按顺序执行各组运算(每一行或列八组运算),以实现甚至更好的性能改良及功率消耗降低优点。
另一种传统的2D变换由Rohini Krishnan等人阐述于标题为“Design of a 2DDCT/IDCT Application Specific VLIW Processor Supporting Scaled and Sub-sampledBlocks”(第16届VLSI设计国际会议,六页(2003))的论文中。该论文教示对IDCT电路确定完整数据块的缩减规模形式(例如通过舍弃一8×8块的偶数行而产生的8×4块),且操作所述IDCT电路以对所述缩减规模形式的块进行反变换包括绕过某些原本用于对所述完整块进行反变换的IDCT电路。该方法可避免计算将最终被舍弃的输出值,但不检测并跳过将根本无助于最终结果的运算。
另一种传统2D变换阐述于第5,883,823号美国专利中。此种变换识别所要变换的输入块的各区域,并以不同方式处理每一区域(例如对某些区域的所有元素执行IDCT,且仅对其他区域的非零元素执行IDCT)。例如,第5,883,823号美国专利清楚地揭示(在第10栏第53行-第11栏第26行中)一种IDCT计算,其中对一8×8块的一个象限(即对应于最低频率范围的4×4象限)的所有元素(无论是零还是非零)执行一“区域性”IDCT计算,并对该8×8块的其他三个4×4象限(即对应于较高频率范围的三个4×4象限)中每一者的仅非零元素执行另一IDCT计算。然而,第5,883,823号美国专利并未揭示或表明如何识别每一要仅对非零元素执行IDCT计算的区域的非零元素(或者如何有效地识别这些非零系数)、或者如何仅对块中区域的非零元素执行IDCT计算、或者如何有效地(且以消耗降低的功率的方式)仅对这些非零元素执行此种IDCT计算。
发明内容
在一类实施例中,本发明是一种经配置以对一输入数据块序列中的每一块执行2D变换(例如离散余弦反变换)的系统,其中每一块均包含输入数据值行及列,且所述2D变换包含一行变换及一列变换。在这些实施例中,所述系统经配置以通过如下方式执行所述2D变换:对每一块的所有行执行行变换以产生经局部变换的数据块、并然后对所述经局部变换的数据块的每一列执行列变换,或者通过对每一块的所有列执行所述列变换以产生一经局部变换的数据块、并然后对所述经局部变换的数据块的每一行执行所述行变换。为简化说明,我们应说明经配置以通过如下方式执行所述2D变换的类别的实施例:对每一块的所有行执行行变换以产生经局部变换的数据块,并然后对所述经局部变换的数据块的每一列执行列变换。应了解,本文中每一处所提及的“行”及“列”均可分别以提及“列”及“行”来取代,以描述该类别中的其他实施例。
在本文中,数据值集合(例如行或列)的“子集”这一术语是使用其广义,并可表示一行(或列)数据值、一行(或列)数据值中的偶数元素、一行(或列)数据值中的奇数元素、一行(或列)数据值中的每第N个数据值、位反转次序的一行或列数据值中的偶数元素(适用于FFT蝶形运算)、或另一种数据值子集。
为执行行变换,所述类别的系统包括经配置以对输入数据块的每一行的输入数据值执行变换运算(通常包含乘法及加法)以产生一经局部变换的数据块的电路。所述系统通常包括一缓冲器,所述经局部变换的数据即存储于所述缓冲器中。为执行所述列变换,所述系统包括经配置以对所述经局部变换的数据块中每一列的数据值执行变换运算(通常包括乘法及加法)的电路。所述类别的每一实施例均经配置以使得当对每一行输入数据执行所述行变换时,其均判定构成所述行的第一分区的数据值的每一不同子集是否包括至少一个零值(例如由零值组成)、判定所述行的第一分区的第一子集的每一不同子集是否包括至少一个零值、及判定所述行的第一分区的至少一个其他子集的每一不同子集是否包括至少一个零值,及当对包含至少一个零输入数据值及至少一个非零输入数据值的每一所述行执行所述行变换时,绕过或以降低功率的方式执行对至少一个(且较佳对每一个)所述零输入数据值的至少一个变换运算,其中假如所述零值为非零值,此种变换运算原本将以消耗全功率的方式执行(例如,绕过至少一个原本将使用乘法及加法电路执行的乘法或加法)。当对每一包含至少一个零输入数据值及至少一个非零输入数据值的行执行所述行变换时,某些此种实施例中的用于对所述零输入值执行所述变换运算的电路均允许,而不更新其输入中的至少一个,以避免消耗在使每一此种输入双态转换时原本将消耗的功率。
较佳地,所述类别的一实施例还经配置以使得当对每一列经局部变换的数据执行所述列变换时,其均判定构成所述列的第一分区的数据值的每一不同子集是否包括至少一个零值(例如由零值组成)、判定所述列的第一分区的第一子集的每一不同子集是否包括至少一个零值、及判定所述列的第一分区的至少一个其他子集的每一不同子集是否包括至少一个零值,及当对包含所述经局部变换的数据的至少一个零值及所述经局部变换的数据的至少一个非零值的每一所述列执行所述列变换时,其均绕过(或以降低功率的方式执行)所述变换运算中的至少一者,然而假如所述零值是非零值,则其原本将以消耗全功率的方式对所述经局部变换的至少一个(且较佳对每一个)所述数据值执行所述变换运算中的至少一者(例如,至少一个原本将使用乘法及加法电路执行的乘法或加法)。例如,当对每一包含至少一个零数据值及至少一个非零数据值的列执行所述列变换时,一个此种实施例经配置以绕过对所述列的零值的变换运算,而假如所述零值为非零值时,原本将执行对所述列的零值的变换运算(例如,该实施例绕过用于执行所述变换运算的电路)。
本发明的较佳实施例判定所要变换的每一数据块是否完全由零值组成。在判断出数据块完全由零值组成时,绕过或以降低功率的方式执行对所述块的值的变换运算(行及列变换运算二者)。这些较佳实施例还按顺序(例如以迭代方式)判定所要变换的数据块中每一行或列的诸多不同子集中的每一者是否包含至少一个零值。此一实施例的一实例将涉及由值xi(其中i是处于0≤i≤N-1范围内的整数,且N为偶数整数)组成的数据行(或列),将所述行(或列)划分成第一数据值子集与不同于所述第一子集的第二数据值子集,将所述第一子集划分成第三数据值子集与不同于所述第三子集的第四子集,并将所述第二子集划分成第五数据值子集与不同于所述第五子集的第六子集。所述实例性实施例判定所述第一子集是否完全由零值组成及所述第二子集是否完全由零值组成。通常,当所述行(或列)由余弦变换系数(通过对视频数据帧执行DCT而产生)组成时,所述第一子集由低频系数(值xi,其中i是处于0≤i≤(N/2)-1范围内的整数)组成,所述第二子集由高频系数(值xi,其中i是处于N/2≤i≤N-1范围内的整数)组成,且所述第二子集具有很高的仅由零值组成的机率(且具有比所述第一子集高得多的仅由零值组成的机率)。
该实例性实施例在确定出第一子集完全由零值组成之后,绕过对第一子集中的值的变换运算或者以降低功率的方式执行变换运算(例如绕过用于执行这些运算的电路,或者操作所述电路,使其至少一个输入不被更新,以避免消耗功率-原本将会消耗功率来使每一此种输入双态转换)。在确定出第二子集完全由零值组成时,绕过或以降低功率的方式执行对第二子集中的值的变换运算。
在确定出第一子集与第二子集中每一者均包括至少一个非零值时,该实例性实施例判定是否第三子集、第四子集、第五子集、及第六子集中的每一者均完全由零值组成。在一典型实施方案中,第一子集由低频系数(值xi,其中i是处于0≤i≤(N/2)-1范围内的整数)组成,第二子集由高频系数(值xi,其中i是处于N/2≤i≤N-1范围内的整数)组成,第三子集由第一子集的偶数值(值xi,其中i是处于0≤i≤(N/2)-1范围内的偶数整数)组成,第四子集由第一子集的奇数值(值xi,其中i是处于0≤i≤(N/2)-1范围内的奇数整数)组成、第五子集由第二子集的偶数值组成,且第六子集由第二子集的奇数值组成。对于被确定完全由零值组成的第三子集、第四子集、第五子集、及第六子集中的每一者,均绕过或以降低功率的方式执行对该子集的值的变换运算(例如绕过用于执行这些运算的电路,或者操作所述电路而不更新其至少一个输入,以避免消耗功率-原本将会消耗功率来使每一此种输入双态转换)。而对于被确定包含至少一个非零值的第三子集、第四子集、第五子集、及第六子集中的每一者,均以消耗全功率的方式对该子集的值执行变换运算。
在上述实例性实施例的变化形式(及本发明的其他实施例)中,构成所要变换的数据块的每一行或列(或一行或列的子集)的数据值是在判定每一包含该行或列(或其子集)的一分区的不同子集是否完全由零值组成(或为零值)之前或期间重新排序。例如,如果一行由值xi(其中i是0≤i≤N-1范围内的整数,其中N是偶数整数)组成,所述分区由所述行的不同的第一及第二子集组成,第一子集由所述行的不同的第三及第四子集组成,且第二子集由所述行的不同的第五及第六子集组成,则所述第一子集由值xi(其中i是0≤i≤(N/2)-1范围内的整数)组成,所述第二子集由高频系数(值xi,其中i是N/2≤i≤N-1范围内的整数)组成,
所述第三子集由值xi(其中i处于0≤i≤(N/4)-1范围内)组成,这些值xi为第一子集的经重新排序版本的偶数值,
所述第四子集由值xi(其中i处于N/4≤i≤(N/2)-1范围内)组成,这些值xi为第一子集的经重新排序版本的奇数值,
所述第五子集可由值xi(其中i处于N/2≤i≤(3N/4)-1范围内)组成,这些值xi为第二子集的经重新排序版本的偶数值,
所述第六子集可由值xi(其中i处于3N/4≤i≤N-1范围内)组成,这些值xi为第二子集的经重新排序版本的奇数值。
在另一类实施例中,本发明是一种用于对一输入数据块序列执行2D变换的方法,所述块中的每一者均包括输入数据值行及列,且所述2D变换包括行变换及列变换。在该类的典型实施例中,每一块均为DCT系数块,所述DCT系数是通过对视频数据执行DCT而产生,且所述2D变换是离散余弦反变换。在这些典型实施例中以及在该类的其他实施例中,所述序列中的许多或所有块(例如至少实质上所有块)均为稀疏数据块。所述2D变换可包括如下步骤:对每一输入数据块的所有行执行行变换以产生经局部变换的数据块,并然后对所述经局部变换的数据块的每一列执行所述列变换;或者包括如下步骤:对每一输入数据块的所有列执行所述列变换以产生一经局部变换的数据块,并然后对所述经局部变换的数据块的每一行执行所述行变换。为简化说明,我们应说明该类中其中所述2D变换包括如下步骤的实施例:对每一输入数据块的所有行执行所述行变换以产生经局部变换的数据块,并然后对所述经局部变换的数据块的每一列执行所述列变换。应了解,每一处所提及的“行”及“列”均可分别以提及“列”及“行”来取代,以描述该类别的其他实施例。
在所述类别中的某些实施例中,所述方法包括如下步骤:
(a)对所述输入数据块中一者的每一行执行所述行变换,包括通过对每一所述行的输入数据值执行变换运算,以产生一经局部变换的数据块;以及
(b)对所述经局部变换的数据块的每一列执行所述列变换,包括通过对每一所述列的数据值执行其他变换运算,其中步骤(a)包括如下步骤:
判定构成每一所述行的第一分区的数据值的每一不同子集是否包括至少一个零值(例如由零值组成),判定所述第一分区的第一子集的每一不同子集是否包括至少一个零值,及判定所述第一分区的至少一个其他子集的每一不同子集是否包括至少一个零值;及
当对包含至少一个零输入数据值及至少一个非零输入数据值的每一所述行执行所述行变换时,绕过(或以降低功率的方式执行)所述变换运算中的至少一者,而假如每一所述零输入值为非零值时,原本将以消耗全功率的方式对至少一个(且较佳对每一个)所述零输入数据值执行所述变换运算(例如,绕过至少一个原本将使用乘法及加法电路对所述行的至少一个(且较佳对每一个)所述零输入数据值执行的乘法或加法)。
例如,当对每一包含至少一个零输入数据值及至少一个非零输入数据值的行执行所述行变换时,步骤(a)包括如下步骤:操作一具有第一输入端及第二输入端的乘法电路,以执行乘法运算(其中将对第一输入端确定的零输入值乘以对第二输入端确定的第二值),而不更新对第二输入端确定的值,以避免消耗在使第二输入端双态转换时原本将消耗的功率。
较佳地,步骤(b)包括如下步骤:
判定构成每一所述列的分区的数据值的每一不同子集是否包括至少一个零值(例如由零值组成),判定所述分区的第一子集的每一不同子集是否包括至少一个零值,及判定所述分区的至少一个其他子集的每一不同子集是否包括至少一个零值;及
当对包含至少一个零输入数据值及至少一个非零输入数据值的每一所述列执行所述列变换时,绕过(或以降低功率的方式执行)所述其他变换运算中的至少一者,而假如每一所述零输入值为非零值时,原本将以消耗全功率的方式对至少一个(且较佳对每一个)所述零输入数据值执行所述额外变换运算(例如,绕过至少一个原本将使用乘法及加法电路对所述列的至少一个(且较佳对每一个)所述零输入数据值执行的乘法或加法)。
根据本发明的典型实施例构建的变换电路的优点包括:
因避免冗余的或不必要的计算或计算步骤而能提高(且较佳最佳化)计算效率(从而允许以较低频率运行)(例如,在变换输入数据值块方面,本发明变换引擎的典型实施例的性能与每一块的非零输入数据值的数量成正比)。此是在比传统变换引擎更精细的粒度水平-在变换输入数据值块方面,传统变换引擎的性能与每一块的包含至少一个非零值的行的数量成比例);
切换活动减少而使功率消耗降低;
提供智能的中间缓冲器存储器管理(在较佳实施例中);及
通过避免冗余的或不必要的计算或计算步骤(例如避免不必要的乘法器输入双态转换)而使整数变换的性能加快。
在某些实施例中,本发明的系统是一种视频处理系统(例如一种管线式视频解码系统),其包括一根据本发明构建的变换引擎。在某些此种实施例中,所述视频处理系统经配置以用作便携式媒体播放器的视频处理子系统。在其他实施例中,本发明的系统是一种便携式媒体播放器,其包括一视频处理子系统,该视频处理子系统包括根据本发明构建的变换引擎。
本发明的其他方面是用于本发明系统任一实施例中的变换引擎及变换引擎电路、以及在本发明系统任一实施例的运行期间所执行的方法。
附图说明
图1是可根据本发明实施例构建的包括变换引擎的管线式视频解码系统的方块图;
图2是可根据本发明构建的处理系统(具有视频解码能力)的方块图;
图3是输入数据块、所述块的已经过行变换的版本、及所述块的已经过行变换及列变换的版本的图式;
图4是本发明方法的一实施例(其可由本发明系统的一类实施例来执行)的步骤的流程图;
图5是在实施本发明的图2所示电路7(或电路11)的典型实施方案中所用的变换电路的方块图;
图6是本发明管线式视频解码系统的一实施例中各元件的方块图。
具体实施方式
下面将参照图1、2、3、4、5及6来说明本发明的实施例。
图1是一管线式视频解码系统的系统层次方块图,所述管线式视频解码系统包括如图所示沿系统总线连接的位流引擎1、变换引擎3(其可根据本发明构建而成)、及像素重构引擎5。位流引擎1接收包含经处理的频域系数块的经编码视频数据,该等频域系数是通过对视频像素块执行2D变换(例如二维DCT)而产生。位流引擎1处理经编码的视频数据,通常是通过对其执行拆开及反量化,并对变换引擎3确定所得到的经处理频域系数块序列。变换引擎3对所述序列中的每一块执行2D反变换,以产生经局部解码视频像素块,并将所述经局部解码视频像素确定至像素重构引擎5,以供进一步进行视频解码。像素重构引擎5响应于所述经局部解码视频像素而产生完全解码的像素,并将所述完全解码的像素确定至系统总线。
图1所示系统可为具有视频解码能力的便携式媒体播放器或另一种便携式数据处理系统(或并非打算为便携式的数据处理系统)的子系统,且此一子系统可通过构建本发明的变换引擎3而根据本发明构建而成。此一处理系统可以且通常将包括图1中所未显示的其他元件。
预期本发明的某些实施例是由不具有图1所示结构的系统构建而成,或者由不具有图2所示结构的处理系统构建而成。
图2是图1中变换引擎3、或另一用于对数据值块执行二维变换(例如2D反变换)的装置的典型实施方案的方块图。图2包括如图所示相连的行/列变换电路7、存储缓冲器9、及列/行变换电路11。在某些实施方案中,图2中的电路7经配置以对由其接收的输入数据块序列中每一块的所有行执行行变换并将所得到的数据确定至存储缓冲器9,且电路11经配置以从缓冲器9中读取此种数据的列并对从行变换得到的每一数据块的所有列执行列变换。在其他实施方案中,图2中的电路7经配置以对由其接收的输入数据块序列中每一块的所有列执行列变换并将所得到的数据确定至存储缓冲器9,且电路11经配置以从缓冲器9中读取此种数据的行并对从行变换得到的每一数据块的所有行执行行变换。
图3是可输入至图2所示实施方案中的电路7的一种类型的输入数据块(标记为“I”)、块I的已经过行变换(例如在图2所示此种实施方案的电路7中)的版本(标记为块“II”)、及块I的已经过行变换及列变换(例如在图2所示此种实施方案的电路7及电路11中)的版本(标记为块“III”)的图式。图3中的块I是一4×4频域系数块,其包含四个系数行及四个系数列,其中每一系数均具有标记为“0”的零值,且每一系数均具有标记为“X”的非零值。所述行由参考符号“R1”至“R4”标识,且所述列由参考符号“a”至“d”标识。
典型的传统变换引擎经配置以识别完全由零值组成的(所要变换的每一块的)所有行或列(即“零行”或“零列”)并绕过原本将对每一所识别的零行或零列执行的正常变换运算。此种传统变换引擎将块I的行R1及R3识别为零行并绕过原本将对行R1及R3执行的变换计算。
相比之下,本发明变换引擎的典型实施例(例如实施本发明的图2所示引擎的实施方案)则经配置以不仅识别每一所要变换的块的零行及零列(例如块I的行R1及R3),以绕过原本将对零行执行(假如其未将所述行识别为零行)的行变换计算及绕过原本将对零列执行(假如其未将所述列识别为零列)的列变换计算,而且还能在对非零行及非零列执行变换运算(例如对块I的行R2及R4执行的行变换计算)期间节省额外的功率。所述额外的功率节省是通过如下方式来实现:识别完全由零数据值组成的行的子集(及列的子集)(例如,由列c及d中的系数组成的块I中行R2的子集,或者由列b及d中的系数组成的块I的行R4的子集),并避免(或以降低功率的方式执行)假如所述子集并不完全由零数据值组成时原本将对每一此种子集执行的变换计算。
考虑本发明变换引擎的此一实施例具有图2所示结构且经配置以对一4×4DCT变换系数块序列中每一块执行IDCT(反DCT)变换的情形。每一此种块的每一行均由两个低频系数(例如图3中每一块的列“a”及“b”中的系数)以及两个高频系数(例如图3中每一块的列“c”及“d”中的系数)组成。此一块的每一列均由两个低频系数(例如图3中每一块的行“R1”及“R2”中的系数)以及两个高频系数(例如图3中每一块的行“R3”及“R4”中的系数)组成。在此种情形中,每一行及每一列的较高频系数具有比较低频系数高的仅由零值组成的机率。
本发明变换引擎的一个此种实施例的电路7经配置以判定每一DCT变换系数块的每一行的这两个最低频系数是否完全由零值组成,判定每一此种行的这两个最高频系数是否完全由零值组成,如果每一行的这两个最低频系数完全由零值组成,则绕过对其进行的行变换计算(其中假如其并非完全由零值组成,则原本将以消耗全功率的方式对这些系数执行这些计算)或者以降低功率的方式执行这些计算,及如果每一行的这两个最高频系数完全由零值组成,则绕过对其进行的行变换计算(其中假如其并非完全由零值组成,则原本将以消耗全功率的方式对这些系数执行这些计算)或者以降低功率的方式执行这些计算。例如,此一实施例的电路7可经配置以绕过对块I的行R1、R2、R2、及R4中每一者的这两个最高频系数的行变换计算。
本发明变换引擎的此种实施例的电路7还经配置以判定对其确定的每一DCT变换系数块的每一行的这两个最低频分量的偶数系数(例如,图3所示块I的列“b”中的每一系数)是否是零值,判定对其确定的每一DCT变换系数块的每一行的这两个最低频分量的奇数系数(例如,图3所示块I的列“a”中的每一系数)是否是零值,判定对其确定的每一DCT变换系数块的每一行的这两个最高频分量的偶数系数(例如,图3所示块I的列“d”中的每一系数)是否是零值,以及判定对其确定的每一DCT变换系数块的每一行的这两个最高频分量的奇数系数(例如,图3所示块I的列“c”中的每一系数)是否是零值。这些实施例的电路7还配置成以降低功率的方式执行原本对每一被确定为零值的此种系数执行(以消耗更大功率的方式)的乘法计算,以对所述行进行变换。通常,每一此种降低功率的乘法均通过如下方式执行:操作一具有第一输入端及第二输入端的乘法电路,以将零值(确定至第一输入端)乘以第二值(确定至第二输入端),而不更新确定至第二输入端的值,从而避免消耗功率-原本在确定至第一输入端的值为非零值时,将消耗功率来使第二输入双态转换(且第二输入端处更新后的第二值需要乘以此非零值)。
本发明变换引擎的此一实施例的电路11还较佳经配置以判定从缓冲器9读取的每一4×4经局部变换系数块的每一列的第一半(即前两个数据值)是否完全由零值组成,判定每一此种列的第二半(后两个数据值)是否完全由零值组成,如果每一列的第一半完全由零值组成,则绕过对其进行的列变换计算(其中假如其并非完全由零值组成,则原本将以消耗全功率的方式对这些值执行这些计算)或以降低功率的方式执行这些计算,以及如果每一列的第二半完全由零值组成,则绕过对其进行的列变换计算(其中假如其并非完全由零值组成,则原本将以消耗全功率的方式对这些值执行这些计算)或以降低功率的方式执行这些计算。
本发明变换引擎的此一实施例的电路11还经配置以判定从缓冲器9读取的每一4×4经局部变换系数块的每一列的第一半中的偶数数据值(例如图3所示块II的行R2中的每一值)是否是零值,判定每一此种列的第一半中的奇数数据值(例如图3所示块II的行R1中的每一值)是否是零值,判定每一此种列的第二半中的偶数数据值(例如图3所示块II的行R4中的每一系数)是否为零值,以及判定每一此种列的第二半中的奇数数据值(例如图3所示块II的行R3中的每一系数)是否为零值。这些实施例的电路11还配置成以降低功率的方式对被确定为零值的每一此种数据值执行原本将执行(以消耗更大功率的方式)的乘法计算,以对所述列进行变换。通常,每一此种降低功率的乘法均通过如下方式执行:操作一具有第一输入端及第二输入端的乘法电路,以将零值(确定至第一输入端)乘以第二值(确定至第二输入端),而不更新确定至第二输入端的值,从而避免消耗功率-原本在确定至第一输入端的值为非零值时,将消耗功率来使第二输入双态转换(且第二输入端处更新后的第二值需要乘以此非零值)。
在上述实例的其中每一行及列均包含8个数据值的变化形式中,每一判定一行(或列)的第一(或第二)半中的奇数(或偶数)数据值是否是零的步骤均被一判定所述行(或列)的所述一半的第一(或第二)半中的数据值是否完全由零组成的步骤所取代,且所述引擎经配置以绕过对完全由零值组成的每一半行(或半列)的每一半的行(或列)变换计算(其中假如这些值并非安全由零值组成,则原本将以全功率对其执行这些计算)或者以降低功率的方式执行这些计算。较佳地,所述引擎还经配置以判定每一此种半行(或半列)中的奇数值是否为零值,判定每一此种半行(或半列)的每一数据值是否为零值,及以降低功率的方式对每一此种数据值执行原本将执行(以消耗更大功率的方式)的乘法计算,以对相关行或列进行变换。
在这两个上述实例中任一实例的变化形式中,包含要由电路7或11进行变换的块的每一行或列(或行或列的子集)的数据值均在判定每一包含所述行或列(或其子集)的分区的不同子集是否完全由零值组成(或为零值)之前或期间进行重新排序。例如,如果一行(或列)是由值xi(其中i是处于0≤i≤N-1范围内的整数,且N为偶数整数)组成,所述分区是由所述行(列)的不同的第一及第二子集组成,所述第一子集是由所述行(列)的不同的第三及第四子集组成,且所述第二子集是由所述行(列)的不同的第五及第六子集组成,则所述第一子集由值xi(其中i是处于0≤i≤(2/N)-1范围内的整数)组成,所述第二子集由值xi(其中i是处于2/N≤i≤N-1范围内的整数)组成,
所述第三子集可由值xi(其中i处于0≤i≤(N/4)-1范围内)组成,或者其可由第一子集的偶数值组成,抑或其可由第一子集的经重新排序版本的偶数值组成,
所述第四子集可由值xi(其中i处于N/4≤i≤(N/2)-1范围内)组成,或者其可由第一子集的奇数值组成,抑或其可由第一子集的经重新排序版本的奇数值组成,
所述第五子集可由值xi(其中i处于N/2≤i≤(3N/4)-1范围内)组成,或者其可由第二子集的偶数值组成,抑或其可由第二子集的经重新排序版本的偶数值组成,以及
所述第六子集可由值xi(其中i处于3N/4≤i≤N-1范围内)组成,或者其可由第二子集的奇数值组成,抑或其可由第二子集的经重新排序版本的奇数值组成。
再次参见图3所示块I的行R4,该行R4中的偶数系数是零值,且该行中的奇数系数并非完全由零值组成。为对该行R4进行变换,本发明变换引擎的某些实施例将通过阻止在对所述行的偶数系数执行行变换运算期间阻止用于执行此种行变换运算的乘法器的输入双态转换来降低功率消耗。此有助于降低乘法器在变换期间所消耗的切换功率(即降低动态功率消耗)。
再次参见图3,在块I的行R4中,整个行中仅第一系数是非零(经编码的)系数。本发明变换引擎的较佳实施例经配置以辨别此种类型(即其中仅第一数据值为非零)的行或列,并以一种所消耗功率小于为对完全由非零值组成的行或列进行变换所需功率的方式对此种行或列进行变换。例如,(本发明变换引擎的具有图2所示结构的实施例的)电路7的较佳实施方案配置成以降低功率的方式对其中仅第一值为非零值的输入数据行执行行变换-仅响应于行中的非零系数且不对行中所有数据值(此将消耗全功率)执行正常行变换,并将所得到的经局部变换的数据值存储于缓冲器9中。
本发明变换引擎的较佳实施例通过如下方式来降低功率消耗:检测所要变换的块的各单独数据值(例如,在逐个系数的基础上对要经历直接余弦反变换的DCT系数块的各单独系数执行零检测),且对于被判定为零值的所有数据值,均确保使被用于变换至少一个所述零值的至少一个乘法器的至少一个(且较佳每一个)输入均不会自其先前值发生切换。此会降低引擎中的动态功率消耗。
在本发明变换引擎的具有图2所示结构的实施例的较佳实施方案中,电路7将其所产生的经局部变换的数据值存储于内部缓冲器9中。电路11从缓冲器9中读取该数据,并对该数据的每一列(或行)执行列(或行)变换。通常,电路11可在缓冲器中存在至少一列(行)数据且所述数据可供用于变换时,即刻执行列(行)变换计算。因此,在较佳实施例中,电路7经配置以对其所执行的行(列)变换运算重新排序,以尽可能快地产生(并存储于缓冲器9中)恰好足够多的经局部变换的数据,以使电路11对所述数据的完整列(行)执行列(行)变换。通过将电路7配置成以此种重新排序(例如交错的)方式执行行(列)变换,可降低系统的功率消耗(例如,通过使进行内部缓冲器存储所消耗的功率最小化)。
另一选择为,当根据本发明变换引擎的具有图2所示结构的实施例来执行对称变换时,以一种能利用变换的对称性的方式配置电路7,以执行足以在执行额外的行变换计算之前产生(并存储于缓冲器9中)两列数据的行变换计算、或者执行足以在执行额外的列变换计算之前产生(并存储于缓冲器9中)两行数据的列变换计算。电路7的此种实施例所执行的行(或列)变换继续尽可能快地产生(并存储于缓冲器9中)恰好足够多的经局部变换数据,以使电路11对其他完整的经缓冲数据列(行)执行列(行)变换。关于是将电路7构建成执行行变换计算以在执行额外行变换计算之前输出一列数据还是两列数据的决策取决于性能与缓冲存储器要求之间的折衷。应了解,如果将电路7构建成以使缓冲器9仅需要具有存储一列经局部变换数据的容量的方式执行行变换,则使缓冲器9的所需容量最小化的优点将通常以降低性能为代价(例如用于使本发明变换引擎对完整数据值块执行反变换的循环数量增大)。
为根据本发明执行传统的基于H264的变换(无需进行实际乘法便可执行的整数变换),本发明的变换引擎可不构建有乘法器。可使用移位器而非乘法器来执行基于H264的变换。甚至在这些实施方案中,根据本发明绕过变换电路也可使变换计算加速(并降低其所消耗的能量)。
接下来参照图4所示流程图更详细地说明本发明的一类实施例。图4所示流程图涉及一种对一输入数据块序列中的每一块执行的2D变换(例如,离散余弦反变换),其中每一块均包括输入数据值行及列,且所述2D变换包括行变换及列变换。根据本发明,所述2D变换通过如下方式执行:对每一块的所有行执行行变换以产生经局部变换的数据块,并然后对所述经局部变换的数据块的每一列执行列变换;或者通过如下方式执行:对每一块的所有列执行列变换以产生经局部变换的数据块,并然后对所述经局部变换的数据块的每一行执行行变换。图4所示流程图描述对数据值行执行的此种行变换或对数据值列执行的此种列变换(例如,其描述通过实施本发明的图2所示电路7的实施方案对频率系数行或列执行变换,或者通过实施本发明的图2所示电路11的实施方案对从缓冲器9读取的经局部变换数据值行或列执行变换)。为简明起见,下文对图4的说明将假定变换数据值行。应了解,在本说明中所提及的每一处“行”可由提及“列”来取代,以描述本发明的其他实施例。要根据本发明进行反变换的典型块每行具有四个系数(例如,如果所述反变换是基于H264的变换)或每行八个系数(例如,如果所述反变换是对8×8频率系数块进行的IDCT)。图4适用于这两种情形。
在执行图4中所示的步骤之前,本发明典型实施例的变换引擎判定所要变换的数据块是否完全由零值组成。在判定所述块完全由零值组成时,所述变换引擎使得绕过对所述块的变换运算(行变换与列变换运算二者)(例如其响应于所述块而输出零,而不对所述块的值执行实际变换运算)。如果所述变换引擎判定所要变换的数据块包括至少一个非零值,则其启动行变换(即其执行图4中的步骤20)。
在根据图4的流程图启动(步骤20)所要执行的行变换后,从缓冲存储器读取所要变换的第一行数据值。缓冲存储器可为耦接至图2中电路7的输入端的缓冲存储器(如果电路7执行图4的流程图),或者其可为图2的缓冲存储器9(如果电路11执行图4的流程图)。
在步骤24中,所述变换引擎判定当前行(在最近一次执行步骤22期间所读取的行)是否包含至少一个非零值。若为否,则所述变换引擎输出指示所述行的经行变换版本的零值(步骤25)(而不对所述行的数据值执行实际的行变换计算),并从缓冲存储器读取下一行(步骤22的下一次执行)。如果当前行包括至少一个非零值,则所述引擎判定(在步骤26中)当前行的第一半(例如由四个数据值组成的行的前两个数据值)是否包括至少一个非零值。
如果当前行的第一半不包括至少一个非零值,则所述引擎输出指示所述行的第一半的经行变换版本的零值(步骤28)(而不对所述行的第一半的数据值执行实际的行变换计算),并判定(在步骤40中)当前行的第二半(例如由四个数据值组成的行的后两个数据值)是否包括至少一个非零值。
如果当前行的第一半包括至少一个非零值,则所述引擎判定(在步骤30中)所述当前行的第一半的第一半是否包括至少一个非零值,并判定(在步骤32中)当前行的第一半的第二半是否包括至少一个非零值。
如果当前行的第一半的第一半包括至少一个非零值(例如,如果其由单个非零值组成,或者由包括至少一个非零值在内的两个值组成),则所述引擎对所述行的第一半的第一半的数据值执行(在步骤36中)行变换计算,并将所得到的经变换数据存储(在步骤39中)于缓冲存储器中。用于执行步骤39的缓冲存储器可为耦接至图2所示电路11的输出端的缓冲存储器(如果电路11执行图4的流程图),或者图2的缓冲存储器9(如果电路7执行图4的流程图)。
如果当前行第一半的第一半不包括非零值,则所述引擎执行步骤37,其中其:
(a)输出一个或多个零来指示当前行第一半的第一半的经行变换版本(而不对所述数据值或当前行第一半的第一半的值执行实际的行变换计算)。然后,将每一此种零值存储(在步骤39中)于缓冲存储器中;或
(b)输出通过以降低功率的方式对当前行第一半的第一半的数据值执行行变换计算所产生的至少一个数据值。然后,将每一此种数据值存储(在步骤39中)于缓冲存储器中。例如,所述引擎可通过如下方式进行此种作业:操作具有第一输入端集合(包括至少一个输入端)及第二输入端集合(包括至少一个输入端)的乘法电路,对所述第一输入端集合确定至少一个常数且对所述第二输入端集合确定当前行第一半的第一半的每一数据值,以对当前行第一半的第一半的每一数据值执行至少乘法运算,而不更新对第一输入端集合与第二输入端集合中至少一者所确定的值,以避免消耗功率-而原本对所述乘法电路的相关输入端进行双态转换则会消耗功率。在所述引擎正在执行IDCT的情况下,对第一输入端集合确定的每一常数均为余弦常数,且在一种实施方案中,每当对第二输入端集合确定的数据值是零值时,所述引擎均阻止更新(相对于其先前值发生变化)要乘以所述零值的余弦常数,因为无论所述余弦常数的值如何,所述乘法的结果均将为0。在另一实施方案中,所述引擎阻止更新对第一输入端集合所确定的余弦常数(要乘以零数据值),并阻止更新对第二输入端集合中对应输入端所确定的数据值(以阻止两个乘法器输入端中的任一个双态转换),并确定一零值(例如将零值多路复用至处理管线的输出端)以指示将所述零数据值乘以所述余弦常数的结果(而不实际将这两个操作数相乘在一起);或
(c)输出一个或多个零来指示当前行第一半的第一半中至少一个值的经行变换版本(而不对这一或这些数据值执行实际的行变换计算),并输出通过以降低功率方式对当前行第一半的第一半中至少一个其他数据值执行行变换计算而产生的至少一个数据值。然后,将每一此种零值及输出值存储(在步骤39中)于缓冲存储器中。
如果当前行第一半的第二半包括至少一个非零值(例如,如果其由单个非零值组成或者由包括至少一个非零值在内的两个值组成),则所述引擎对所述行的第一半的第二半的数据值执行(在步骤34中)行变换计算,并将所得到的经变换数据存储(在步骤39中)于缓冲存储器中。
如果当前行的第一半的第二半不包括非零值,则所述引擎执行步骤35,其中其:
(a)输出一个或多个零来指示当前行第一半的第二半的经行变换版本(而不对所述数据值或当前行第一半的第二半的值执行实际的行变换计算)。然后,将每一此种零值存储(在步骤39中)于缓冲存储器中;或
(b)输出通过以降低功率的方式对当前行第一半的第二半的数据值执行行变换计算所产生的至少一个数据值。然后,将每一此种数据值存储(在步骤39中)于缓冲存储器中。例如,所述引擎可通过如下方式进行此种作业:操作具有第一输入端集合(包括至少一个输入端)及第二输入端集合(包括至少一个输入端)的乘法电路,对所述第一输入端集合确定至少一个常数且对所述第二输入端集合确定当前行第一半的第二半的每一数据值,以对当前行第一半的第二半的每一数据值执行至少乘法运算,而不更新对第一输入端集合与第二输入端集合中至少一者所确定的值,以避免消耗功率-而原本对所述乘法电路的相关输入端进行双态转换则会消耗功率。在所述引擎正在执行IDCT的情况下,对第一输入端集合确定的每一常数均为余弦常数,且在一种实施方案中,每当对第二输入端集合确定的数据值是零值时,所述引擎均阻止更新(相对于其先前值发生变化)要乘以所述零值的余弦常数,因为无论所述余弦常数的值如何,所述乘法的结果均将为零。在另一实施方案中,所述引擎阻止更新对第一输入端集合所确定的余弦常数(要乘以零数据值),并阻止更新对第二输入端集合中对应输入端所确定的数据值(以阻止两个乘法器输入端中的任一个双态转换),并确定一零值(例如将零值多路复用至处理管线的输出端)以指示将所述零数据值乘以所述余弦常数的结果(而不实际将这两个操作数相乘在一起);或
(c)输出一个或多个零来指示当前行第一半的第二半中至少一个值的经行变换版本(而不对这一或这些数据值执行实际的行变换计算),并输出通过以降低功率方式对当前行第一半的第二半中至少一个其他数据值执行行变换计算而产生的至少一个数据值。然后,将每一此种零值及输出值存储(在步骤39中)于缓冲存储器中。
当在步骤34及36、步骤34及37、步骤35及36、或者步骤35及37中所产生或确定的所有数据值均已存储(步骤39)于缓冲存储器中之后,所述引擎判定(在步骤40中)当前行的第二半是否包括至少一个非零值。如果当前行的第二半不包括至少一个非零值,则所述引擎输出零(步骤41)以指示所述行的第二半的经行变换版本(而不对所述行的所述第二半的数据值执行实际的行变换计算)并从缓冲存储器读取所要执行的下一行(另一次执行步骤22)。
如果当前行的第二半包括至少一个非零值,则所述引擎判定(在步骤42中)当前行的第二半的第一半是否包括至少一个非零值,并判定(在步骤44中)当前行的第二半的第二半是否包括至少一个非零值。
如果当前行的第二半的第一半包括至少一个非零值(例如,如果其由单个非零值组成,或者由包括至少一个非零值在内的两个值组成),则所述引擎对所述行的第二半的第一半的数据值执行(在步骤48中)行变换计算,并将所得到的经变换数据存储(在步骤50中)于缓冲存储器中。用于执行步骤50的缓冲存储器可为耦接至图2所示电路11的输出端的缓冲存储器(如果电路11执行图4的流程图),或者图2的缓冲存储器9(如果电路7执行图4的流程图)。
如果当前行第二半的第一半不包括非零值,则所述引擎执行步骤49,其中其:
(a)输出一个或多个零来指示当前行第二半的第一半的经行变换版本(而不对所述数据值或当前行第二半的第一半的值执行实际的行变换计算)。然后,将每一此种零值存储(在步骤50中)于缓冲存储器中;或
(b)输出通过以降低功率的方式对当前行第二半的第一半的数据值执行行变换计算所产生的至少一个数据值。然后,将每一此种数据值存储(在步骤50中)于缓冲存储器中。例如,所述引擎可通过如下方式进行此种作业:操作具有第一输入端集合(包括至少一个输入端)及第二输入端集合(包括至少一个输入端)的乘法电路,对所述第一输入端集合确定至少一个常数且对所述第二输入端集合确定当前行第二半的第一半的每一数据值,以对当前行第二半的第一半的每一数据值执行至少乘法运算,而不更新对第一输入端集合与第二输入端集合中至少一者所确定的值,以避免消耗功率-而原本对所述乘法电路的相关输入端进行双态转换则会消耗功率。在所述引擎正在执行IDCT的情况下,对第一输入端集合确定的每一常数均为余弦常数,且在一种实施方案中,每当对第二输入端集合确定的数据值是零值时,所述引擎均阻止更新(相对于其先前值发生变化)要乘以所述零值的余弦常数,因为无论所述余弦常数的值如何,所述乘法的结果均将为0。在另一实施方案中,所述引擎阻止更新对第一输入端集合所确定的余弦常数(要乘以零数据值),并阻止更新对第二输入端集合中对应输入端所确定的数据值(以阻止任一乘法器输入端的双态转换),并确定一零值(例如将零值多路复用至处理管线的输出端)以指示将所述零数据值乘以所述余弦常数的结果(而不实际将这两个操作数相乘在一起);或
(c)输出一个或多个零来指示当前行第二半的第一半中至少一个值的经行变换版本(而不对这一或这些数据值执行实际的行变换计算),并输出通过以降低功率方式对当前行第二半的第一半中至少一个其他数据值执行行变换计算而产生的至少一个数据值。然后,将每一此种零值及输出值存储(在步骤50中)于缓冲存储器中。
如果当前行第一半的第二半包括至少一个非零值(例如,如果其由单个非零值组成或者由包括至少一个非零值在内的两个值组成),则所述引擎对所述行的第二半的第二半的数据值执行(在步骤46中)行变换计算,并将所得到的经变换数据存储(在步骤50中)于缓冲存储器中。
如果当前行的第二半的第二半不包括非零值,则所述引擎执行步骤47,其中其:
(a)输出一个或多个零来指示当前行第二半的第二半的经行变换版本(而不对所述数据值或当前行第二半的第二半的值执行实际的行变换计算)。然后,将每一此种零值存储(在步骤50中)于缓冲存储器中;或
(b)输出通过以降低功率的方式对当前行第二半的第二半的数据值执行行变换计算所产生的至少一个数据值。然后,将每一此种数据值存储(在步骤50中)于缓冲存储器中。例如,所述引擎可通过如下方式进行此种作业:操作具有第一输入端集合(包括至少一个输入端)及第二输入端集合(包括至少一个输入端)的乘法电路,对所述第一输入端集合确定至少一个常数且对所述第二输入端集合确定当前行第二半的第二半的每一数据值,以对当前行第二半的第二半的每一数据值执行至少乘法运算,而不更新对第一输入端集合与第二输入端集合中至少一者所确定的值,以避免消耗功率-而原本对所述乘法电路的相关输入端进行双态转换则会消耗功率。在所述引擎正在执行IDCT的情况下,对第一输入端集合确定的每一常数均为余弦常数,且在一种实施方案中,每当对第二输入端集合确定的数据值是零值时,所述引擎均阻止更新(相对于其先前值发生变化)要乘以所述零值的余弦常数,因为无论所述余弦常数的值如何,所述乘法的结果均将为零。在另一实施方案中,所述引擎阻止更新对第一输入端集合所确定的余弦常数(要乘以零数据值),并阻止更新对第二输入端集合中对应输入端所确定的数据值(以阻止两个乘法器输入端中的任一个双态转换),并确定一零值(例如将零值多路复用至处理管线的输出端)以指示将所述零数据值乘以所述余弦常数的结果(而不实际将这两个操作数相乘在一起);或
(c)输出一个或多个零来指示当前行第二半的第二半中至少一个值的经行变换版本(而不对这一或这些数据值执行实际的行变换计算),并输出通过以降低功率方式对当前行第二半的第二半中至少一个其他数据值执行行变换计算而产生的至少一个数据值。然后,将每一此种零值及输出值存储(在步骤50中)于缓冲存储器中。
当在步骤46及48、步骤46及49、步骤47及48、或者步骤47及49中所产生或确定的所有数据值均已存储(步骤50)于缓冲存储器中之后,所述引擎判定(在步骤52中)是否已对当前块中的所有行执行行变换。如果已对当前块中的所有行执行行变换,则所述引擎进入一种使其停止行变换运算的状态(步骤54)。然后,其可再次执行步骤20,以开始处理所要执行的下一数据值块。如果尚未对当前块中的所有行执行行变换,则所述引擎从缓冲存储器中读取(所要变换的当前块)的下一行(再一次执行步骤22)。
图5是在实施本发明的图2所示电路7(或电路11)的典型实施方案中所用变换电路的方块图。设计用于变换4×4数据块的电路7(或11)的实施方案将通常包括一个单元的图5所示电路,以用于变换所要变换的每一行或列的四个数据值I0、I1、I2及I3。设计用于变换8×8数据块的电路7(或11)的实施方案将通常包括两个单元的图5所示电路:一个用于变换所要变换的每一行或列的第一半的四个数据值I0、I1、I2及I3;及完全相同的一个,以用于变换所要变换的每一行或列的第二半的四个数据值(I4、I5、I6及I7)(使用第二组余弦常数C4、C5、C6及C7取代图5中所示的常数C0、C1、C2及C3)。
图5所示的每一乘法单元M1、M2、M3及M4均包括一第一输入端(对其确定余弦常数C0、C1、C2及C3中的一个)、一第二输入端(对其确定数据值I0、I1、I2及I3中的一个)、以及一输出端,其在所述输出端上确定一标识这两个操作数的乘积的数据值。图5所示电路还包括如图所示连接的预处理及控制逻辑100(将称作预处理逻辑100)、加法电路A1、A2、A3、A4及A5、减法电路S1、及延迟电路A及B(构建为正反器),且经配置以对对其确定的每一组四个输入值执行管线式行变换或列变换,以响应于每一输入值而产生一输出值Y0(或Y1)。在运行期间,延迟电路A通常使将加法电路A3的输出确定至加法电路A5、减法电路S1、及加法电路A3中每一被选定者(由逻辑电路100所确定的控制信号来确定)延迟一个管线式变换循环。在运行期间,延迟电路B通常使将加法电路A4的输出确定至加法电路A5、减法电路S1、及加法电路A4中每一被选定者(由逻辑电路100所确定的控制信号来确定)延迟一个管线式变换循环。
当在经设计以变换4×4数据块的电路7(或11)的实施方案中包含图5所示电路时,处理逻辑100经配置以执行图4所示的零(或非零)值判定运算。当在经设计以变换8×8数据块的电路7(或11)的实施方案中包含两个图5所示单元时,每一单元100均经配置以对所要变换的每一数据行或列的一不同子集(例如一半)执行图4所示的零(或非零)值判定运算。在电路7(或11)的任一实施方案中,预处理逻辑100均经配置以从相关缓冲存储器(例如图2所示缓冲器9或者耦接至图2所示电路7的输入端的缓冲存储器)中读取所要变换的输入数据值,并产生(并确定至图5中其他元件中的适当元件)为执行图4所要求的其他作业所需的控制信号。例如,如果逻辑100判定系数10是零值(例如在图4的步骤30中),则其可确定一控制信号,以使在前一操作循环期间确定至乘法器M1的系数CO在其中乘法器M1要将零值系数10乘以常数的每一后续循环期间继续确定至乘法器M1。
在典型实施方案中,预处理逻辑100在接收(例如从缓冲器9)到所要变换的每一组四个新输入数据值时均将输出值Y0及Y1复位至零。在此种情形中,当预处理逻辑100响应于其中一个输入值而判定应输出零值(即Y0或Y1的零值)时(例如在图4的步骤25、28、41、35、37、47、或49中),其可在其中电路元件M1、M2、M3、M4、A1、A2、A3、A4、A、B、A5、及SI原本将运行来变换该输入值的循环期间阻止这些元件的输入端的所有双态转换,并转而使Y0(或Y1)的复位后的零值确定至相关缓冲器(例如确定至缓冲存储器9或耦接至电路11的输出端)。
在需要对所要变换的数据值重新排序的实施例中,预处理单元100较佳经配置以执行此种重新排序。例如,为执行类似于参照图4所述的变换、但其中每一判定半行或半列(或半行或半列的一半)的第一(或第二)半中的数据值是否包括至少一个非零值的步骤被取代为判定半行或半列(或半行或半列的一半)中的偶数(或奇数)数据值是否包括至少一个非零值的步骤,预处理单元100可将所要评估的数据值重新排序,以便执行所要求的判定。例如,单元100可判定经重新排序的半行或经重新排序的半列(或经重新排序的半行或经重新排序的半列的一半)的第一(或第二)半中的数据值是否包括至少一个非零值,从而判定所述半行或半列的未重新排序的版本(或半行或半列的未重新排序的版本的一半)中的偶数(或奇数)数据值是否包括至少一个非零值。预期预处理单元100的某些实施方案可对行或列(或不完整的行或不完整的列)的并非为半行(或不完整半行)或半列(或不完整半列)的子集执行重新排序。
图6是本发明管线式视频解码系统的一实施例中各元件的方块图。涵盖图6所示设计的用于本发明其他实施例中的实施方案的各种变化形式(例如可省略零检测电路132、134及135-138,且其功能可由零检测电路130或其他零检测电路执行)。图6中的系统包括如图所示相连接的预处理单元120、变换引擎122及后处理单元124。
单元120耦接成接收一系列输入数据值块(例如已通过对视频像素块执行二维DCT或反DCT或其他2D变换而产生的输入频域系数)。单元120还耦接成在图6所示系统中经过第一遍之后接收从后处理单元124输出的数据值(在图6中标识为“来自第一级的输出”及“第一级输出”),以使这些数据值(其视需要在从单元124输出之后及确定至单元120之前在缓冲存储器中进行缓冲)可在图6所示电路中经过第二遍期间经历第二级处理(例如,以在各数据值列在图6所示系统中经过第一遍期间已经历列变换时对数据值行执行行变换)。
单元120的多路复用器129选择输入数据值(尚未经历图6中的处理)或者从后处理单元124输出的数据值(已在前一遍经过图6所示系统时经受处理),并将所选值确定至零检测逻辑130。使所选值经过零检测逻辑130(视需要,当逻辑130判定所选值完全由零值组成时除外)。然后,视需要,单元120内的其他电路对直通过逻辑130的值执行初步处理作业,以产生经预处理的数据值(这些作业是在需要时执行以实施将要使用图6所示系统实施的特定变换)。单元120将经预处理的数据值(如果不对逻辑130的输出执行初步处理,则其与逻辑130的输出完全相同)确定至变换引擎122。
预处理单元120通常经配置以将对其确定的每一数据值集合分成适于由引擎122执行所要实施的变换的子集。单元120分离成子集的进行方式将依赖于所要实施的变换(例如8×8DCT,8×8IDCT,或者8×8哈达玛),并可取决于从外部单元确定至单元120的控制信号,以便可根据所要实施的变换来定制子集选择。
变换引擎122对其从单元120接收的每一数据值块执行2D变换,以产生经变换的数据值块(例如局部经解码的视频像素块),并将已变换的数据值确定至后处理单元124以供视需要进一步处理。更具体而言,变换引擎122经配置以对从单元120对其确定的每一组四个数据值执行管线式行变换或列变换,以因应这四个数据值中的每一者而产生输出值。此种每一组四个数据值均通常为一数据值块中的一行(或列),或者一数据值块中一行(或列)的子集。
后处理单元124视需要(即当适合于图6所示系统正执行的特定变换时)对从引擎122接收的已变换值执行后处理作业,以产生输出数据值。所述输出数据值可从单元124确定至系统总线及/或反馈至单元120的至少一个输入端(或反馈至其被确定至单元120的至少一个输入端时所来自的缓冲存储器)。通常,单元124执行舍入、饱和、及最终填充(如果需要)。单元124所执行的具体后处理作业依赖于图6所示电路是正在对单元122的输入执行第一级还是第二级处理。
图6所示变换引擎122经设计以变换4×4数据块,包括通过使用一组常数C0、C1、C2及C3来变换所要变换的每一行或列的四个数据值(I0、I1、I2、及I3)。在本发明的某些其他实施例中,用于变换8×8数据块的电路将包括两个变换引擎122:一个引擎用于变换所要变换的每一行或列的第一子集(例如第一半)的四个数据值I0、I1、I2及I3;及完全相同的一引擎,用于变换所要变换的每一行或列的第二子集(例如第二半)的四个数据值(I4、I5、I6及I7)(使用第二组常数C4、C5、C6及C7取代图6中块122所示的常数C0、C1、C2及C3)。所要使用的常数(例如C0、C1、C2及C3)可由从外部单元确定至引擎122的控制信号决定,以便可根据所要执行的变换来定制常数选项。通常,预处理单元120的零检测逻辑130经配置以判定所要变换的整个数据块是否完全由零值组成(所要变换的4×4数据块的所有四个行或列完全由零值组成)。例如,其可包括移位寄存器,以提供足够的延迟在将块中的第一行(列)传送至下游电路之前对所述块的所有行(列)执行此种判定。在判断出所述块完全由零值组成后,逻辑130将适当的控制位确定至图6所示系统的其他元件,所述系统元件使得绕过(例如如上文所述)原本将由引擎122随后对所述块执行的变换运算,并通常还使得响应于所述块而从单元124的多路复用器139输出预定值(例如零),而不由引擎122与单元124中的一者或两者对所述块的值执行实际的变换运算。
无论预处理单元120的零检测逻辑130是否如在前一段中所述配置成判定整个数据块是否完全由零值组成,逻辑130均配置成对从多路复用器129确定至逻辑130的每一单独行(或列)的数据值执行零检测,以判定是否此一行(或列)的所有数据值均为零值(即其执行图4中的步骤24)。当每一此种行(或列)均由四个数据值组成时,逻辑130判定所述行(列)是否由四个零位组成。如果逻辑130判定一行(列)完全由零位组成时,其确定适当的控制位,所述适当的控制位使得绕过原本随后将由引擎122对所述行(或列)执行的变换运算,并通常还响应于所述行(列)而使得从单元124的多路复用器139输出预定值(例如零),而不由引擎122与单元124中的一者或两者对所述行(列)的值执行实际变换运算。
在某些实施方案中,逻辑130判定是否从多路复用器129对其确定的每一单独数据值行(或列)的第一数据值是非零值、而所述行(或列)的所有其他值均为零值。响应于识别出一行(列)除初始非零值之外由零值组成,逻辑130的此一实施方案确定适当的控制位,所述适当的控制位使得绕过原本随后将由引擎122对所述行(或列)执行的变换运算,并通常还响应于所述行(列)而使得从单元124的多路复用器139输出预定值(例如零),而不由引擎122与单元124中的一者或两者对所述行(列)的值执行实际变换运算。
引擎122的零检测逻辑132经配置以对从单元120对引擎122确定的每一行(或列)的第一子集(例如第一半,其为前两个数据值)执行零检测,以判定是否此一第一子集的所有数据值均为零值(例如,其执行图4中的步骤26)。如果逻辑132判定第一子集(例如半行或半列)完全由零位组成,则其确定适当的控制位,所述适当的控制位使得绕过原本随后将由引擎122对第一子集执行的变换运算,并通常还响应于所述第一子集而使得从引擎122的多路复用器140输出预定值(例如零),而不由引擎122对所述第一子集的值执行实际变换运算。如果逻辑132判定出当前行(列)的第一子集(例如第一半)包括至少一个非零值,则零检测逻辑单元135及136对第一子集的第一及第二值执行零检测。
如果逻辑135判定当前行(列)的第一子集的第一数据值是零值,则其对乘法电路141(变换常数C0确定至其第一输入端,且当前行或列的零数据值确定至其第二输入端)确定一控制位,以使电路141对确定至其第二输入端的值执行乘法运算,而不更新先前确定至其第一输入端的值,以避免消耗功率-而原本为将第一输入端双态转换至常数C0的已更新的值则会消耗功率。
类似地,如果逻辑136判定当前行(列)的第一子集的第二数据值是零值,则其对乘法电路142(变换常数C1确定至其第一输入端,且当前行或列的该零数据值确定至其第二输入端)确定一控制位,以使电路142对确定至其第二输入端的值执行乘法运算,而不更新先前确定至其第一输入端的值,以避免消耗功率-而原本为将第一输入端双态转换至常数C1的已更新的值则会消耗功率。
引擎122的零检测逻辑134经配置以对从单元120对引擎122确定的每一行(或列)的第二子集(例如第二半,其为第二两个数据值)执行零检测,以判定是否此第二子集的所有数据值均为零值(例如,其执行图4中的步骤40)。如果逻辑134判定第二子集完全由零位组成,则其确定适当的控制位,所述适当的控制位使得绕过原本随后将由引擎122对第二子集(例如半行或半列)执行的变换运算,并通常还响应于所述第二子集而使得从引擎122的多路复用器141输出预定值(例如零),而不由引擎122对所述第二子集的值执行实际变换运算。如果逻辑134判定出当前行(列)的第二子集包括至少一个非零值,则零检测逻辑单元137及138对第二子集的第一及第二值执行零检测。
如果逻辑137判定当前行(列)的第二子集的第一数据值是零值,则其对乘法电路143(变换常数C2确定至其第一输入端,且当前行或列的零数据值确定至其第二输入端)确定一控制位,以使电路143对确定至其第二输入端的值执行乘法运算,而不更新先前确定至其第一输入端的值,以避免消耗功率-而原本为将第一输入端双态转换至常数C2的已更新的值则会消耗功率。
类似地,如果逻辑138判定当前行(列)的第二子集的第二数据值是零值,则其对乘法电路144(变换常数C3确定至其第一输入端,且当前行或列的该零数据值确定至其第二输入端)确定一控制位,以使电路144对确定至其第二输入端的值执行乘法运算,而不更新先前确定至其第一输入端的值,以避免消耗功率-而原本为将第一输入端双态转换至常数C3的已更新的值则会消耗功率。
在运行期间控制图6中的每一多路复用器129、140、141、150、151、152及153,以在图6所示系统的当前管线式作业循环期间使被确定至其输入端上的其中一个值直通至其输出端。图6所示的每一电路156及157均为加法电路,其在运行期受到控制,以在图6所示系统的当前作业循环期间在其输出端上确定被确定至其输入端的值的和。图6所示电路154及155是延迟电路(构建为正反器),其具有适合由图6所示系统执行的具体变换的延迟。
本发明的某些替代实施例由与图6相同的电路组成或包括所述电路,只是省略了图6中的逻辑电路132、134、135、136、137及138,且所省略电路的功能由图6中逻辑电路130的修改型式来执行。具体而言,逻辑130的此种修改型式通常将经配置以判定所要变换的整个数据块是否完全由零值组成(即所要变换的4×4数据块的所有四个行或列是否完全由零值组成)、所要变换的块的每一行(或列)数据的每一半是否完全由零值组成、及所要变换的块的每一半行(或列)数据的每一数据值是否为零值,并响应于这些判定而(对系统的其他元件)确定由图6所示逻辑电路130、132、134、135、136、137、及138所确定的上述类型的控制信号。
图6所示系统可为便携式媒体播放器或另一种便携式数据处理系统(或并非打算为便携式的数据处理系统,例如具有视频解码能力的系统)的子系统。此种媒体播放器或其他处理系统可以且通常将包括图6中所未显示的其他元件。
应了解,为将本发明的各种实施例构建成对具有诸多不同格式中任何格式的数据块执行诸多不同2D变换中的任何变换,将构建参照图4所示及所述的具体步骤以及参照图5及6所示及所述的具体结构的变化形式。
还应了解,尽管在本文中是例示及说明本发明的某些实施例,然而本发明是由申请专利范围界定且不受限于本文所述及所示的具体实施例。

Claims (57)

1.一种经配置以对输入数据块序列中的每一输入数据块执行2D变换的系统,其中每一所述输入数据块均包含输入数据值行及列,且所述2D变换包含行变换及列变换,所述系统包括:
行变换电路,其经配置以响应于每一所述输入数据块通过对所述输入数据块的每一行执行所述行变换而产生经局部变换数据块;及
列变换电路,其经配置以对所述经局部变换数据块的每一列执行所述列变换,
其中所述行变换电路经配置以在对每一所述行执行所述行变换时判定构成所述行的分区的所述数据值的每一不同子集是否包括至少一个零值、所述行的分区的子集中的第一子集的每一不同子集是否包括至少一个零值、及所述行的分区的子集中的第二子集的每一不同子集是否包括至少一个零值,及
所述行变换电路经配置以绕过或以降低功率的方式对所述数据值中被判定为零值的至少一者执行至少一个变换运算。
2.如权利要求1所述的系统,其中所述行变换电路经配置以绕过对所述数据值中被判定为零值的所述至少一者的所述至少一个变换运算。
3.如权利要求1所述的系统,其中所述行变换电路经配置而以降低功率的方式对所述数据值中被判定为零值的所述至少一者执行所述至少一个变换运算。
4.如权利要求3所述的系统,其中所述行变换电路包括至少一个具有输入端集合的电路,且所述行变换电路经配置以通过如下作业以所述降低功率的方式执行所述至少一个变换运算:使所述电路运行,而在对所述数据值中被判定为零值的所述一者的所述变换运算期间不更新所述输入端集合中的至少一个输入端。
5.如权利要求1所述的系统,其中所述2D变换是离散余弦反变换。
6.如权利要求1所述的系统,其还包括:
缓冲器,其耦接至所述行变换电路及所述列变换电路,其中所述行变换电路经配置以将所述经局部变换数据块存储于所述缓冲器中,且所述列变换电路经配置以从所述缓冲器中检索所述经局部变换数据块的列。
7.如权利要求6所述的系统,其中所述列变换电路经配置以在对每一所述列执行所述列变换时判定构成所述列的第一分区的所述数据值的每一不同子集是否包括至少一个零值、所述列的第一分区的子集中的第一子集的每一不同子集是否包括至少一个零值、及所述列的第一分区的子集中的第二子集的每一不同子集是否包括至少一个零值,及
所述列变换电路经配置以绕过对所述数据值中被判定为零值的至少一者的至少一个变换运算。
8.如权利要求6所述的系统,其中所述列变换电路经配置以在对每一所述列执行所述列变换时判定构成所述列的第一分区的所述数据值的每一不同子集是否包括至少一个零值、所述列的第一分区的子集中的第一子集的每一不同子集是否包括至少一个零值、及所述列的第一分区的子集中的第二子集的每一不同子集是否包括至少一个零值,及
所述列变换电路经配置而以降低功率的方式对所述数据值中被判定为零值的至少一者执行至少一个变换运算。
9.如权利要求8所述的系统,其中所述列变换电路包括至少一个具有输入端集合的电路,且所述列变换电路经配置以通过如下作业以所述降低功率的方式执行所述至少一个变换运算:使所述电路运行,而在对所述数据值中被判定为零值的所述一者的所述变换运算期间不更新所述输入端集合中的至少一个输入端。
10.如权利要求1所述的系统,其中每一所述行包括值xi,其中i是处于0≤i≤N-1范围内的整数,且N为偶数整数,所述行的分区包括第一数据值子集与不同于所述第一子集的第二数据值子集,所述第一子集的分区包括第三数据值子集与不同于所述第三子集的第四子集,且所述第二子集的分区包括第五数据值子集及不同于所述第五子集的第六子集,及
其中所述行变换电路经配置以在对每一所述行执行所述行变换时判定所述第一子集是否完全由零值组成且所述第二子集是否完全由零值组成,且在判定所述第一子集完全由零值组成时绕过对所述第一子集中所述数据值的至少一个所述变换运算,且在判定所述第二子集完全由零值组成时绕过对所述第二子集中所述数据值的至少一个所述变换运算。
11.如权利要求10所述的系统,其中所述行变换电路经配置以在当对每一所述行执行所述行变换时判定所述第一子集与所述第二子集中的每一者均包括至少一个非零值时,判定所述第三子集、所述第四子集、所述第五子集、及所述第六子集中的每一者是否完全由零值组成。
12.如权利要求11所述的系统,其中所述第三子集由所述第一子集的偶数值组成,所述第四子集由所述第一子集的奇数值组成,所述第五子集由所述第二子集的偶数值组成,且所述第六子集由所述第二子集的奇数值组成。
13.如权利要求1所述的系统,其中所述行变换电路经配置以在对每一所述行执行所述行变换时执行重新排序作业,其中所述重新排序作业通过对所述行的数据值进行重新排序来产生经重新排序的数据值,且所述行变换电路经配置以判定所述经重新排序的数据的第一子集是否包括至少一个零值及所述经重新排序的数据的第二子集是否包括至少一个零值,其中所述经重新排序的数据的第二子集不同于所述经重新排序的数据的第一子集。
14.一种经配置以对输入数据块序列中的每一输入数据块执行2D变换的系统,其中每一所述输入数据块均包含输入数据值行及列,且所述2D变换包含行变换及列变换,所述系统包括:
列变换电路,其经配置以响应于每一所述输入数据块通过对所述输入数据块的每一列执行所述列变换而产生经局部变换数据块;及
行变换电路,其经配置以对所述经局部变换数据块的每一行执行所述行变换,
其中所述列变换电路经配置以在对每一所述列执行所述列变换时判定构成所述列的分区的所述数据值的每一不同子集是否包括至少一个零值、所述列的分区的子集中的第一子集的每一不同子集是否包括至少一个零值、及所述列的分区的子集中的第二子集的每一不同子集是否包括至少一个零值,及
所述列变换电路经配置以绕过或以降低功率的方式对所述数据值中被判定为零值的至少一者执行至少一个变换运算。
15.如权利要求14所述的系统,其中所述列变换电路经配置以绕过对所述数据值中被判定为零值的所述至少一者的所述至少一个变换运算。
16.如权利要求14所述的系统,其中所述列变换电路经配置而以降低功率的方式对所述数据值中被判定为零值的所述至少一者执行所述至少一个变换运算。
17.如权利要求16所述的系统,其中所述列变换电路包括至少一个具有输入端集合的电路,且所述列变换电路经配置以通过如下作业以所述降低功率的方式执行所述至少一个变换运算:使所述电路运行,而在对所述数据值中被判定为零值的所述一者的所述变换运算期间不更新所述输入端集合中的至少一个输入端。
18.如权利要求14所述的系统,其中所述2D变换是离散余弦反变换。
19.如权利要求14所述的系统,其还包括:
缓冲器,其耦接至所述行变换电路及所述列变换电路,其中所述列变换电路经配置以将所述经局部变换数据块存储于所述缓冲器中,且所述行变换电路经配置以从所述缓冲器中检索所述经局部变换数据块的列。
20.如权利要求14所述的系统,其中每一所述列包括值xi,其中i是处于0≤i≤N-1范围内的整数,且N为偶数整数,所述列的分区包括第一数据值子集与不同于所述第一子集的第二数据值子集,所述第一子集的分区包括第三数据值子集与不同于所述第三子集的第四子集,且所述第二子集的分区包括第五数据值子集及不同于所述第五子集的第六子集,及
其中所述列变换电路经配置以在对每一所述列执行所述列变换时判定所述第一子集是否完全由零值组成且所述第二子集是否完全由零值组成,且在判定所述第一子集完全由零值组成时绕过对所述第一子集中所述数据值的至少一个所述变换运算,且在判定所述第二子集完全由零值组成时绕过对所述第二子集中所述数据值的至少一个所述变换运算。
21.如权利要求20所述的系统,其中所述列变换电路经配置以在当对每一所述列执行所述列变换时判定所述第一子集与所述第二子集中的每一者均包括至少一个非零值时,判定所述第三子集、所述第四子集、所述第五子集、及所述第六子集中的每一者是否完全由零值组成。
22.如权利要求21所述的系统,其中所述第三子集由所述第一子集的偶数值组成,所述第四子集由所述第一子集的奇数值组成,所述第五子集由所述第二子集的偶数值组成,且所述第六子集由所述第二子集的奇数值组成。
23.如权利要求14所述的系统,其中所述列变换电路经配置以在对每一所述列执行所述列变换时执行重新排序作业,其中所述重新排序作业通过对所述列的数据值进行重新排序来产生经重新排序的数据值,且所述列变换电路经配置以判定所述经重新排序的数据的第一子集是否包括至少一个零值及所述经重新排序的数据的第二子集是否包括至少一个零值,其中所述经重新排序的数据的第二子集不同于所述经重新排序的数据的第一子集。
24.一种用于对输入数据块序列执行2D变换的方法,其中所述块中的每一者均包括输入数据值行及列,且所述2D变换包括行变换及列变换,所述方法包括如下步骤:
(a)对所述输入数据块中一者的每一行执行所述行变换,包括通过对每一所述行的输入数据值执行变换运算,以产生经局部变换数据块;及
(b)对所述经局部变换数据块的每一列执行所述列变换,包括通过对每一所述列的数据值执行其他变换运算,其中步骤(a)包括如下步骤:
(c)判定构成每一所述行的分区的所述数据值的每一不同子集是否包括至少一个零值,判定所述分区的第一子集的每一不同子集是否包括至少一个零值,及判定所述分区的至少一个其他子集的每一不同子集是否包括至少一个零值;及
(d)当对被判定包含至少一个零值及至少一个非零值的每一所述行执行所述行变换时,绕过或以降低功率的方式对所述输入数据值中被判定为零值的至少一者执行所述变换运算中的至少一者,其中假如所述零值为非零值,则原本将以消耗全功率的方式执行所述变换运算中的所述一者。
25.如权利要求24所述的方法,其中步骤(a)包括如下步骤:操作具有第一输入端及第二输入端的乘法电路以执行乘法运算,其中将确定至所述第一输入端的第一值乘以确定至所述第二输入端的第二值,且其中步骤(d)包括如下步骤:通过阻止所述第一输入端与所述第二输入端中至少一者的双态转换来以降低功率的方式对所述输入数据值中被判定为零值的所述至少一者执行所述乘法运算。
26.如权利要求24所述的方法,其中步骤(d)包括如下步骤:当对被判定为包括至少一个零值及至少一个非零值的每一所述行执行所述行变换时,绕过对所述输入数据值中被判定为零值的所述至少一者的所述变换运算中的所述至少一者。
27.如权利要求24所述的方法,其中步骤(b)包括如下步骤:
判定构成每一所述列的第一分区的所述数据值的每一不同子集是否包括至少一个零值,判定所述第一分区的第一子集的每一不同子集是否包括至少一个零值,及判定所述第一分区的至少一个其他子集的每一不同子集是否包括至少一个零值;及
当对被判定为包括至少一个零值及至少一个非零值的每一所述列执行所述列变换时,绕过对所述数据值中被判定为零值的至少一者的所述其他变换运算中的至少一者,其中假如所述零值为非零值,则原本将以消耗全功率的方式执行所述其他变换运算中的所述一者。
28.如权利要求24所述的方法,其中步骤(b)包括如下步骤:
判定构成每一所述列的第一分区的所述数据值的每一不同子集是否包括至少一个零值,判定所述第一分区的第一子集的每一不同子集是否包括至少一个零值,及判定所述第一分区的至少一个其他子集的每一不同子集是否包括至少一个零值;及
当对被判定包含至少一个零值及至少一个非零值的每一所述列执行所述列变换时,以降低功率的方式对所述数据值中被判定为零值的至少一者执行所述其他变换运算中的至少一者,其中假如所述零值为非零值,则原本将以消耗全功率的方式执行所述其他变换运算中的所述一者。
29.如权利要求24所述的方法,其中每一所述块均为DCT系数块,所述DCT系数已通过对视频数据执行DCT而产生,且所述2D变换是离散余弦反变换。
30.如权利要求24所述的方法,其中所述序列中至少大致上所有块为稀疏数据块。
31.一种用于对输入数据块序列执行2D变换的方法,其中所述块中的每一者均包括输入数据值行及列,且所述2D变换包括行变换及列变换,所述方法包括如下步骤:
(a)对所述输入数据块中一者的每一行执行所述行变换,包括通过对每一所述行的输入数据值执行变换运算,以产生经局部变换数据块;及
(b)对所述经局部变换数据块的每一列执行所述列变换,包括通过对每一所述列的数据值执行其他变换运算,其中步骤(b)包括如下步骤:
(c)判定构成每一所述列的分区的所述数据值的每一不同子集是否包括至少一个零值,判定所述分区的第一子集的每一不同子集是否包括至少一个零值,及判定所述分区的至少一个其他子集的每一不同子集是否包括至少一个零值;及
(d)当对被判定包含至少一个零值及至少一个非零值的每一所述列执行所述列变换时,绕过或以降低功率的方式对所述数据值中被判定为零值的至少一者执行所述其他变换运算中的至少一者,其中假如所述零值为非零值,则原本将以消耗全功率的方式执行所述其他变换运算中的所述一者。
32.如权利要求31所述的方法,其中步骤(b)包括如下步骤:操作具有第一输入端及第二输入端的乘法电路以执行乘法运算,其中将确定至所述第一输入端的第一值乘以确定至所述第二输入端的第二值,且其中步骤(d)包括如下步骤:通过阻止所述第一输入端与所述第二输入端中至少一者的双态转换,以降低功率的方式对所述输入数据值中被判定为零值的所述至少一者执行所述乘法运算。
33.如权利要求31所述的方法,其中步骤(d)包括如下步骤:当对被判定为包括至少一个零值及至少一个非零值的每一所述列执行所述列变换时,绕过对所述数据值中被判定为零值的所述至少一者的所述其他变换运算中的所述至少一者。
34.如权利要求31所述的方法,其中每一所述块均为DCT系数块,所述DCT系数已通过对视频数据执行DCT而产生,且所述2D变换是离散余弦反变换。
35.如权利要求31所述的方法,其中所述序列中至少大致上所有块为稀疏数据块。
36.一种视频处理系统,其包括经配置以对输入数据块序列中的每一输入数据块执行2D变换的变换引擎,其中每一所述输入数据块均包含输入数据值行及列,且所述2D变换包含行变换及列变换,所述变换引擎包括:
行变换电路,其经配置以响应于每一所述输入数据块通过对所述输入数据块的每一行执行所述行变换而产生经局部变换数据块;及
列变换电路,其经配置以对所述经局部变换数据块的每一列执行所述列变换,
其中所述行变换电路经配置以在对每一所述行执行所述行变换时判定构成所述行的分区的所述数据值的每一不同子集是否包括至少一个零值、所述行的分区的第一子集的每一不同子集是否包括至少一个零值、及所述行的分区的至少一个其他子集的每一不同子集是否包括至少一个零值,及
所述行变换电路经配置以绕过或以降低功率的方式对所述数据值中被判定为零值的至少一者执行至少一个变换运算。
37.如权利要求36所述的系统,其中所述行变换电路经配置以绕过对所述数据值中被判定为零值的所述至少一者的所述至少一个变换运算。
38.如权利要求36所述的系统,其中所述行变换电路经配置而以降低功率的方式对所述数据值中被判定为零值的所述至少一者执行所述至少一个变换运算。
39.如权利要求38所述的系统,其中所述行变换电路包括至少一个具有输入端集合的电路,且所述行变换电路经配置以通过如下作业以所述降低功率的方式执行所述至少一个变换运算:使所述电路运行,而在对所述数据值中被判定为零值的所述一者的所述变换运算期间不更新所述输入端集合中的至少一个输入端。
40.如权利要求36所述的系统,其中所述2D变换是离散余弦反变换。
41.如权利要求36所述的系统,其中所述变换引擎还包括:
缓冲器,其耦接至所述行变换电路及所述列变换电路,其中所述行变换电路经配置以将所述经局部变换数据块存储于所述缓冲器中,且所述列变换电路经配置以从所述缓冲器中检索所述经局部变换数据块的列。
42.如权利要求41所述的系统,其中所述列变换电路经配置以在对每一所述列执行所述列变换时判定构成所述列的第一分区的所述数据值的每一不同子集是否包括至少一个零值、所述列的第一分区的第一子集的每一不同子集是否包括至少一个零值、及所述列的第一分区的至少一个其他子集的每一不同子集是否包括至少一个零值,及
所述列变换电路经配置以绕过对所述数据值中被判定为零值的至少一者的至少一个变换运算。
43.如权利要求42所述的系统,其中所述列变换电路经配置以在对每一所述列执行所述列变换时判定构成所述列的第一分区的所述数据值的每一不同子集是否包括至少一个零值、所述列的第一分区的第一子集的每一不同子集是否包括至少一个零值、及所述列的第一分区的至少一个其他子集的每一不同子集是否包括至少一个零值,及
所述列变换电路经配置而以降低功率的方式对所述数据值中被判定为零值的至少一者执行至少一个变换运算。
44.一种视频处理系统,其包括经配置以对输入数据块序列中的每一输入数据块执行2D变换的变换引擎,其中每一所述输入数据块均包含输入数据值行及列,且所述2D变换包含行变换及列变换,所述变换引擎包括:
列变换电路,其经配置以响应于每一所述输入数据块通过对所述输入数据块的每一列执行所述列变换而产生经局部变换数据块;及
行变换电路,其经配置以对所述经局部变换数据块的每一行执行所述行变换,
其中所述列变换电路经配置以在对每一所述列执行所述列变换时判定构成所述列的分区的所述数据值的每一不同子集是否包括至少一个零值、所述列的分区的第一子集的每一不同子集是否包括至少一个零值、及所述列的分区的至少一个其他子集的每一不同子集是否包括至少一个零值,及
所述列变换电路经配置以绕过或以降低功率的方式对所述数据值中被判定为零值的至少一者执行至少一个变换运算。
45.如权利要求44所述的系统,其中所述列变换电路经配置以绕过对所述数据值中被判定为零值的所述至少一者的所述至少一个变换运算。
46.如权利要求44所述的系统,其中所述列变换电路经配置而以降低功率的方式对所述数据值中被判定为零值的所述至少一者执行所述至少一个变换运算。
47.如权利要求46所述的系统,其中所述列变换电路包括至少一个具有输入端集合的电路,且所述列变换电路经配置以通过如下作业以所述降低功率的方式执行所述至少一个变换运算:使所述电路运行,而在对所述数据值中被判定为零值的所述一者的所述变换运算期间不更新所述输入端集合中的至少一个输入端。
48.如权利要求44所述的系统,其中所述2D变换是离散余弦反变换。
49.如权利要求44所述的系统,其还包括:
缓冲器,其耦接至所述行变换电路及所述列变换电路,其中所述列变换电路经配置以将所述经局部变换数据块存储于所述缓冲器中,且所述行变换电路经配置以从所述缓冲器中检索所述经局部变换数据块的列。
50.一种变换引擎,其经配置以对输入数据块序列的每一输入数据块执行2D变换的行变换,其中每一所述输入数据块均包括输入数据值行及列,且所述2D变换包含所述行变换及列变换,所述变换引擎包括:
第一电路,其经耦接以接收每一所述输入数据块的每一行,且经配置以判定构成每一所述行的分区的所述数据值的每一不同子集是否包括至少一个零值、所述行的分区的子集中的第一子集的每一不同子集是否包括至少一个零值、及所述行的分区的子集中的至少一个其他子集的每一不同子集是否包括至少一个零值;及
变换电路,其耦接至所述第一电路,且经配置以对每一所述行的数据值执行所述行变换,其中所述变换电路经配置以在所述第一电路控制下运行,以绕过或以降低功率的方式对所述数据值中被所述第一电路确定为零值的至少一者执行至少一个变换运算。
51.如权利要求50所述的变换引擎,其中所述变换电路经配置以绕过对所述数据值中被所述第一电路确定为零值的所述至少一者的所述至少一个变换运算。
52.如权利要求50所述的变换引擎,其中所述变换电路经配置而以降低功率的方式对所述数据值中被所述第一电路确定为零值的所述至少一者执行所述至少一个变换运算。
53.如权利要求50所述的变换引擎,其中所述2D变换是离散余弦反变换。
54.一种变换引擎,其经配置以对输入数据块序列的每一输入数据块执行2D变换的列变换,其中每一所述输入数据块均包括输入数据值行及列,且所述2D变换包含所述列变换及行变换,所述变换引擎包括:
第一电路,其经耦接以接收每一所述输入数据块的每一列,且经配置以判定构成每一所述列的分区的所述数据值的每一不同子集是否包括至少一个零值、所述列的分区的子集中的第一子集的每一不同子集是否包括至少一个零值、及所述列的分区的子集中的至少一个其他子集的每一不同子集是否包括至少一个零值;及
变换电路,其耦接至所述第一电路,且经配置以对每一所述列的数据值执行所述列变换,其中所述变换电路经配置以在所述第一电路控制下运行,以绕过或以降低功率的方式对所述数据值中被所述第一电路确定为零值的至少一者执行至少一个变换运算。
55.如权利要求54所述的变换引擎,其中所述变换电路经配置以绕过对所述数据值中被所述第一电路确定为零值的所述至少一者的所述至少一个变换运算。
56.如权利要求54所述的变换引擎,其中所述变换电路经配置而以降低功率的方式对所述数据值中被所述第一电路确定为零值的所述至少一者执行所述至少一个变换运算。
57.如权利要求54所述的变换引擎,其中所述2D变换是离散余弦反变换。
CN2007101479403A 2006-08-25 2007-08-24 二维变换的方法及系统、视频处理系统和变换引擎电路 Active CN101131686B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/510,218 US8660380B2 (en) 2006-08-25 2006-08-25 Method and system for performing two-dimensional transform on data value array with reduced power consumption
US11/510,218 2006-08-25

Publications (2)

Publication Number Publication Date
CN101131686A true CN101131686A (zh) 2008-02-27
CN101131686B CN101131686B (zh) 2010-06-02

Family

ID=39113514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101479403A Active CN101131686B (zh) 2006-08-25 2007-08-24 二维变换的方法及系统、视频处理系统和变换引擎电路

Country Status (5)

Country Link
US (2) US8660380B2 (zh)
JP (1) JP4491798B2 (zh)
KR (1) KR100926207B1 (zh)
CN (1) CN101131686B (zh)
TW (1) TWI392371B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102036075A (zh) * 2010-12-29 2011-04-27 东南大学 一种图像及数字视频编码及解码方法
CN105306956A (zh) * 2015-11-13 2016-02-03 浙江工商大学 一种提高hevc编码器离散余弦变换处理速度的方法
CN107209768A (zh) * 2014-12-31 2017-09-26 华为技术有限公司 用于数据集的可扩展排序的方法和设备
CN111953999A (zh) * 2020-07-31 2020-11-17 北京奇艺世纪科技有限公司 一种反变换方法及装置
CN113626761A (zh) * 2020-05-07 2021-11-09 脸谱公司 旁路硬件乘法器中的零值乘法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US20110116539A1 (en) * 2009-11-13 2011-05-19 Freescale Semiconductor, Inc. Method and apparatus for video decoding with reduced complexity inverse transform
US9311275B2 (en) * 2010-07-09 2016-04-12 Iucf-Hyu (Industry-University Cooperation Foundation, Hanyang University) Method and apparatus for discrete cosine transform/inverse discrete cosine transform
US8966291B2 (en) * 2010-12-23 2015-02-24 Qualcomm Incorporated Method and apparatus for reducing dynamic power within system-on-a-chip routing resources
KR101477409B1 (ko) * 2012-11-21 2014-12-29 인제대학교 산학협력단 유류분해능을 갖는 신균주 바실러스 퓨밀러스 ij-1 균주 및 이의 용도
JP6089878B2 (ja) * 2013-03-28 2017-03-08 富士通株式会社 直交変換装置、直交変換方法及び直交変換用コンピュータプログラムならびにオーディオ復号装置
CN106688238B (zh) * 2013-10-17 2019-12-17 华为技术有限公司 改进后的深度图帧内编码的参考像素点选择和滤波
CN104463220A (zh) * 2014-12-19 2015-03-25 深圳市捷顺科技实业股份有限公司 一种车牌检测方法和系统
US9438612B1 (en) * 2015-03-23 2016-09-06 Fortinet, Inc. Calculating consecutive matches using parallel computing
WO2018143687A1 (ko) * 2017-02-01 2018-08-09 엘지전자(주) 행-열 변환을 이용하여 변환을 수행하는 방법 및 장치
US11856227B2 (en) 2022-05-26 2023-12-26 Mediatek Inc. Transform architecture in video encoding systems

Family Cites Families (185)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3679821A (en) * 1970-04-30 1972-07-25 Bell Telephone Labor Inc Transform coding of image difference signals
US4177514A (en) * 1976-11-12 1979-12-04 General Electric Company Graph architecture information processing system
US4583164A (en) * 1981-08-19 1986-04-15 Tolle Donald M Syntactically self-structuring cellular computer
JPS5936857A (ja) * 1982-08-25 1984-02-29 Nec Corp プロセツサユニツト
US4644461A (en) * 1983-04-29 1987-02-17 The Regents Of The University Of California Dynamic activity-creating data-driven computer architecture
US4755810A (en) * 1985-04-05 1988-07-05 Tektronix, Inc. Frame buffer memory
US4814978A (en) * 1986-07-15 1989-03-21 Dataflow Computer Corporation Dataflow processing element, multiprocessor, and processes
US5225875A (en) * 1988-07-21 1993-07-06 Proxima Corporation High speed color display system and method of using same
WO1990001192A1 (en) * 1988-07-22 1990-02-08 United States Department Of Energy Data flow machine for data driven computing
US4992857A (en) * 1988-09-30 1991-02-12 Ampex Corporation System for distributing and recovering digitized composite SECAM samples in a two channel digital apparatus
US5130797A (en) * 1989-02-27 1992-07-14 Mitsubishi Denki Kabushiki Kaisha Digital signal processing system for parallel processing of subsampled data
US5369744A (en) * 1989-10-16 1994-11-29 Hitachi, Ltd. Address-translatable graphic processor, data processor and drawing method with employment of the same
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
US5212777A (en) * 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
US5267344A (en) * 1989-12-20 1993-11-30 Dax Industries, Inc. Direct current power control circuit for use in conjunction with regulated input signal
US5045940A (en) * 1989-12-22 1991-09-03 Avid Technology, Inc. Video/audio transmission systsem and method
US5233689A (en) * 1990-03-16 1993-08-03 Hewlett-Packard Company Methods and apparatus for maximizing column address coherency for serial and random port accesses to a dual port ram array
US5146324A (en) * 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
AU657510B2 (en) * 1991-05-24 1995-03-16 Apple Inc. Improved image encoding/decoding method and apparatus
US5212742A (en) * 1991-05-24 1993-05-18 Apple Computer, Inc. Method and apparatus for encoding/decoding image data
US5689719A (en) * 1991-06-28 1997-11-18 Sanyo Electric O., Ltd. Parallel computer system including processing elements
US5706290A (en) * 1994-12-15 1998-01-06 Shaw; Venson Method and apparatus including system architecture for multimedia communication
BE1007330A3 (nl) * 1993-07-16 1995-05-16 Philips Electronics Nv Inrichting voor het overdragen van een digitaal beeldsignaal.
US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
US6073185A (en) * 1993-08-27 2000-06-06 Teranex, Inc. Parallel data processor
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
US5596369A (en) * 1995-01-24 1997-01-21 Lsi Logic Corporation Statistically derived method and system for decoding MPEG motion compensation and transform coded video data
US5790881A (en) * 1995-02-07 1998-08-04 Sigma Designs, Inc. Computer system including coprocessor devices simulating memory interfaces
DE69534562T2 (de) * 1995-03-31 2006-08-10 Sony Service Centre (Europe) N.V. Speichereinheit mit versetzter Aufzeichnung
US5608652A (en) * 1995-05-12 1997-03-04 Intel Corporation Reducing blocking effects in block transfer encoders
US5768429A (en) * 1995-11-27 1998-06-16 Sun Microsystems, Inc. Apparatus and method for accelerating digital video decompression by performing operations in parallel
US5809538A (en) * 1996-02-07 1998-09-15 General Instrument Corporation DRAM arbiter for video decoder
DE69614500T2 (de) * 1996-02-27 2001-11-22 St Microelectronics Srl Speicherverminderung für das Grundprofil und die Hauptebene eines MPEG-2-Dekoders
US5754456A (en) * 1996-03-05 1998-05-19 Intel Corporation Computer system performing an inverse cosine transfer function for use with multimedia information
US5845083A (en) * 1996-03-07 1998-12-01 Mitsubishi Semiconductor America, Inc. MPEG encoding and decoding system for multimedia applications
US5870310A (en) * 1996-05-03 1999-02-09 Lsi Logic Corporation Method and apparatus for designing re-usable core interface shells
KR100403077B1 (ko) * 1996-05-28 2003-10-30 마쯔시다덴기산교 가부시키가이샤 화상예측 복호화 장치 및 그 방법과 화상예측 부호화 장치 및 그 방법
US6101276A (en) * 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
JPH10108143A (ja) * 1996-09-27 1998-04-24 Sony Corp 画像表示制御装置および方法
US6311204B1 (en) * 1996-10-11 2001-10-30 C-Cube Semiconductor Ii Inc. Processing system with register-based process sharing
US5889949A (en) * 1996-10-11 1999-03-30 C-Cube Microsystems Processing system with memory arbitrating between memory access requests in a set top box
US6088355A (en) * 1996-10-11 2000-07-11 C-Cube Microsystems, Inc. Processing system with pointer-based ATM segmentation and reassembly
US5909224A (en) * 1996-10-18 1999-06-01 Samsung Electronics Company, Ltd. Apparatus and method for managing a frame buffer for MPEG video decoding in a PC environment
US5821886A (en) * 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
KR19980044990A (ko) * 1996-12-09 1998-09-15 양승택 휴대형 멀티미디어 데이터 입출력 처리기의 구조 및 그 구동 방법
US6338106B1 (en) * 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
US5883823A (en) * 1997-01-15 1999-03-16 Sun Microsystems, Inc. System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same
US6188799B1 (en) * 1997-02-07 2001-02-13 Matsushita Electric Industrial Co., Ltd. Method and apparatus for removing noise in still and moving pictures
KR200158088Y1 (ko) * 1997-03-07 1999-10-15 윤종용 아날로그 및 디지탈 방송시청이 가능한 케이블 티브이(catv)
US6539120B1 (en) * 1997-03-12 2003-03-25 Matsushita Electric Industrial Co., Ltd. MPEG decoder providing multiple standard output signals
US5999220A (en) * 1997-04-07 1999-12-07 Washino; Kinya Multi-format audio/video production system with frame-rate conversion
CN1156171C (zh) * 1997-04-07 2004-06-30 松下电器产业株式会社 提高处理效率的图象声音处理装置
US5954786A (en) * 1997-06-23 1999-09-21 Sun Microsystems, Inc. Method for directing a parallel processing computing device to form an absolute valve of a signed valve
NL1006469C2 (nl) * 1997-07-04 1999-01-05 Oce Tech Bv Printsysteem voor het printen van beelden op vellen overeenkomstig elektrische beeld- en besturingssignalen alsmede besturingsmiddelen geschikt voor toepassing in een dergelijk printsysteem.
US5969728A (en) * 1997-07-14 1999-10-19 Cirrus Logic, Inc. System and method of synchronizing multiple buffers for display
US6360234B2 (en) * 1997-08-14 2002-03-19 Virage, Inc. Video cataloger system with synchronized encoders
KR100269125B1 (ko) * 1997-10-25 2000-10-16 윤덕용 양자화효과감소를위한영상데이터후처리방법및장치
US6269174B1 (en) * 1997-10-28 2001-07-31 Ligos Corporation Apparatus and method for fast motion estimation
JPH11243551A (ja) 1997-12-25 1999-09-07 Mitsubishi Electric Corp 動き補償装置と動画像符号化装置及び方法
US6157751A (en) * 1997-12-30 2000-12-05 Cognex Corporation Method and apparatus for interleaving a parallel image processing memory
US6717578B1 (en) * 1998-02-17 2004-04-06 Sun Microsystems, Inc. Graphics system with a variable-resolution sample buffer
DE19807872A1 (de) * 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US6690835B1 (en) * 1998-03-03 2004-02-10 Interuniversitair Micro-Elektronica Centrum (Imec Vzw) System and method of encoding video frames
US6747645B1 (en) * 1998-03-13 2004-06-08 Hewlett-Packard Development Company, L.P. Graphics memory system that utilizes detached-Z buffering in conjunction with a batching architecture to reduce paging overhead
US6195389B1 (en) * 1998-04-16 2001-02-27 Scientific-Atlanta, Inc. Motion estimation system and methods
US6175594B1 (en) * 1998-05-22 2001-01-16 Ati Technologies, Inc. Method and apparatus for decoding compressed video
US6642956B1 (en) * 1998-05-29 2003-11-04 Agilent Technologies, Inc. Digital image processor for a digital camera
AU4701999A (en) * 1998-06-19 2000-01-05 Equator Technologies, Inc. Decoding an encoded image having a first resolution directly into a decoded image having a second resolution
US20020015513A1 (en) * 1998-07-15 2002-02-07 Sony Corporation Motion vector detecting method, record medium on which motion vector calculating program has been recorded, motion detecting apparatus, motion detecting method, picture encoding apparatus, picture encoding method, motion vector calculating method, record medium on which motion vector calculating program has been recorded
AU717480B2 (en) * 1998-08-01 2000-03-30 Korea Advanced Institute Of Science And Technology Loop-filtering method for image data and apparatus therefor
US6098174A (en) * 1998-08-03 2000-08-01 Cirrus Logic, Inc. Power control circuitry for use in a computer system and systems using the same
US6560629B1 (en) * 1998-10-30 2003-05-06 Sun Microsystems, Inc. Multi-thread processing
US6418166B1 (en) * 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US6222883B1 (en) * 1999-01-28 2001-04-24 International Business Machines Corporation Video encoding motion estimation employing partitioned and reassembled search window
GB2348559B (en) 1999-03-31 2001-06-06 Samsung Electronics Co Ltd High speed motion estimating method for real time moving image coding and apparatus therefor
US7072398B2 (en) * 2000-12-06 2006-07-04 Kai-Kuang Ma System and method for motion vector generation and analysis of digital video clips
JP2001184323A (ja) 1999-12-27 2001-07-06 Mitsubishi Electric Corp 符号化装置
US6459738B1 (en) * 2000-01-28 2002-10-01 Njr Corporation Method and apparatus for bitstream decoding
JP3983447B2 (ja) * 2000-03-24 2007-09-26 シャープ株式会社 データ駆動型情報処理装置
JP2001275116A (ja) * 2000-03-24 2001-10-05 Sharp Corp 画像処理装置
TW477930B (en) * 2000-04-07 2002-03-01 Welkin Technologies Inc Buffer management method and system
TW459203B (en) * 2000-04-07 2001-10-11 Welkin Technologies Inc System and method for clearing buffer in 3D rendering
US6876703B2 (en) * 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
JP3907385B2 (ja) 2000-05-22 2007-04-18 シャープ株式会社 データ駆動型情報処理装置およびその実行制御方法
US6751721B1 (en) * 2000-08-31 2004-06-15 Hewlett-Packard Development Company, L.P. Broadcast invalidate scheme
JP3495011B2 (ja) 2000-11-21 2004-02-09 株式会社ソニー・コンピュータエンタテインメント 情報処理方法及びプログラム実行装置、コンピュータに実行させるための情報処理プログラム及びコンピュータに実行させるための情報処理プログラムを記録した記録媒体
US6633612B2 (en) * 2000-12-13 2003-10-14 Genesis Microchip Inc. Method and apparatus for detecting motion between odd and even video fields
US6799192B1 (en) 2001-01-09 2004-09-28 Apple Computer, Inc. Method and apparatus for inverse discrete cosine transform
US20020118743A1 (en) * 2001-02-28 2002-08-29 Hong Jiang Method, apparatus and system for multiple-layer scalable video coding
US6782052B2 (en) * 2001-03-16 2004-08-24 Sharp Laboratories Of America, Inc. Reference frame prediction and block mode prediction for fast motion searching in advanced video coding
US6993191B2 (en) * 2001-05-04 2006-01-31 Pts Corporation Methods and apparatus for removing compression artifacts in video sequences
WO2002098137A1 (en) 2001-06-01 2002-12-05 Nanyang Technological University A block motion estimation method
JP4145586B2 (ja) 2001-07-24 2008-09-03 セイコーエプソン株式会社 画像処理装置及び画像処理プログラム、並びに画像処理方法
DE60141961D1 (de) 2001-09-10 2010-06-10 Texas Instruments Inc Verfahren und Vorrichtung zur Bewegungsvektorenabschätzung
US6950469B2 (en) 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
KR100481067B1 (ko) * 2001-09-28 2005-04-07 브이케이 주식회사 분산 산술 처리장치 및 그를 이용한 이차원 이산여현변환 처리장치
US7403564B2 (en) 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
BR0304545A (pt) 2002-01-14 2004-11-03 Nokia Corp Método de codificação das imagens em uma sequência de vìdeo digital para fornecer os dados de vìdeo codificados, codificador de vìdeo, método de decodificação dos dados indicativos de uma sequência de vìdeo digital, decodificador de vìdeo, e, sistema de decodificação de vìdeo
KR20060111735A (ko) * 2002-01-18 2006-10-27 가부시끼가이샤 도시바 동화상 복호화방법 및 장치
JP3902741B2 (ja) * 2002-01-25 2007-04-11 株式会社半導体理工学研究センター 半導体集積回路装置
US7548586B1 (en) 2002-02-04 2009-06-16 Mimar Tibet Audio and video processing apparatus
US20030161400A1 (en) * 2002-02-27 2003-08-28 Dinerstein Jonathan J. Method and system for improved diamond motion search
CN1203614C (zh) * 2002-04-01 2005-05-25 北京六合万通微电子技术有限公司 用素数因子算法的快速离散傅立叶变换和反变换集成电路
FI114679B (fi) 2002-04-29 2004-11-30 Nokia Corp Satunnaisaloituspisteet videokoodauksessa
US7289672B2 (en) 2002-05-28 2007-10-30 Sharp Laboratories Of America, Inc. Methods and systems for image intra-prediction mode estimation
US6950473B2 (en) 2002-06-21 2005-09-27 Seiko Epson Corporation Hybrid technique for reducing blocking and ringing artifacts in low-bit-rate coding
US6925123B2 (en) 2002-08-06 2005-08-02 Motorola, Inc. Method and apparatus for performing high quality fast predictive motion search
CN1225126C (zh) 2002-10-09 2005-10-26 中国科学院计算技术研究所 用于视频编码的新型空间预测方法及其装置
US6807317B2 (en) 2002-10-25 2004-10-19 Motorola, Inc. Method and decoder system for reducing quantization effects of a decoded image
US7020201B2 (en) * 2002-11-20 2006-03-28 National Chiao Tung University Method and apparatus for motion estimation with all binary representation
US6996645B1 (en) 2002-12-27 2006-02-07 Unisys Corporation Method and apparatus for spawning multiple requests from a single entry of a queue
US7218417B2 (en) * 2003-01-30 2007-05-15 Xerox Corporation Resolution conversion using a morphological partial pixel mapping (MPPM) approach
US7720151B2 (en) * 2003-02-11 2010-05-18 Texas Instruments Incorporated Motion estimation using early decision for goodness of estimation with quick convergence feedback
AU2004217221B2 (en) 2003-03-03 2009-09-03 Agency For Science, Technology And Research Fast mode decision algorithm for intra prediction for advanced video coding
US20040174998A1 (en) * 2003-03-05 2004-09-09 Xsides Corporation System and method for data encryption
US8516026B2 (en) * 2003-03-10 2013-08-20 Broadcom Corporation SIMD supporting filtering in a video decoding system
US20040181811A1 (en) 2003-03-13 2004-09-16 Rakib Selim Shlomo Thin DOCSIS in-band management for interactive HFC service delivery
JP2004287663A (ja) 2003-03-20 2004-10-14 Fuji Xerox Co Ltd 画像処理装置およびその方法
US7646817B2 (en) 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
JP2004334843A (ja) 2003-04-15 2004-11-25 Seiko Epson Corp 複数の画像から画像を合成する方法
US7551671B2 (en) 2003-04-16 2009-06-23 General Dynamics Decision Systems, Inc. System and method for transmission of video signals using multiple channels
KR100750110B1 (ko) 2003-04-22 2007-08-17 삼성전자주식회사 4×4인트라 휘도 예측 모드 결정방법 및 장치
KR100510137B1 (ko) 2003-04-30 2005-08-26 삼성전자주식회사 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치
US7362810B2 (en) 2003-05-13 2008-04-22 Sigmatel, Inc. Post-filter for deblocking and deringing of video data
US8660182B2 (en) 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
US20040258147A1 (en) 2003-06-23 2004-12-23 Tsu-Chang Lee Memory and array processor structure for multiple-dimensional signal processing
US20040257434A1 (en) 2003-06-23 2004-12-23 Robert Davis Personal multimedia device video format conversion across multiple video formats
US7038687B2 (en) 2003-06-30 2006-05-02 Intel Corporation System and method for high-speed communications between an application processor and coprocessor
US7581182B1 (en) 2003-07-18 2009-08-25 Nvidia Corporation Apparatus, method, and 3D graphical user interface for media centers
US20050047502A1 (en) 2003-08-12 2005-03-03 Mcgowan James William Method and apparatus for the efficient representation of interpolated video frames for motion-compensated coding
US7418606B2 (en) 2003-09-18 2008-08-26 Nvidia Corporation High quality and high performance three-dimensional graphics architecture for portable handheld devices
US7277101B2 (en) 2003-09-29 2007-10-02 Vixs Systems Inc Method and system for scaling images
US7548596B2 (en) 2003-10-01 2009-06-16 Realtek Semiconductor Corp. Ethernet channel estimation device and method
GB0324369D0 (en) 2003-10-18 2003-11-19 Koninkl Philips Electronics Nv Method and apparatus for calculating an inverse DCT
US7602849B2 (en) 2003-11-17 2009-10-13 Lsi Corporation Adaptive reference picture selection based on inter-picture motion measurement
NO320114B1 (no) 2003-12-05 2005-10-24 Tandberg Telecom As Forbedret utregning av interpolerte pixelverdier
KR100621137B1 (ko) 2004-02-27 2006-09-13 세이코 엡슨 가부시키가이샤 동화상 부호화 장치 및 동화상 처리장치
KR20070011335A (ko) 2004-04-01 2007-01-24 마쯔시다덴기산교 가부시키가이샤 영상음성 처리용 집적회로
US20050238102A1 (en) 2004-04-23 2005-10-27 Samsung Electronics Co., Ltd. Hierarchical motion estimation apparatus and method
US7782951B2 (en) 2004-05-13 2010-08-24 Ittiam Systems (P) Ltd. Fast motion-estimation scheme
KR20050112445A (ko) * 2004-05-25 2005-11-30 경희대학교 산학협력단 예측 부호화/복호화 장치, 예측 부호화/복호화 방법 및 그방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한기록매체
US20050276493A1 (en) 2004-06-01 2005-12-15 Jun Xin Selecting macroblock coding modes for video encoding
KR20050114751A (ko) 2004-06-01 2005-12-06 경희대학교 산학협력단 예측 부호화/복호화 장치 및 예측 부호화/복호화 방법
US8369402B2 (en) 2004-06-17 2013-02-05 Canon Kabushiki Kaisha Apparatus and method for prediction modes selection based on image formation
US7792188B2 (en) 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data
US7721069B2 (en) 2004-07-13 2010-05-18 3Plus1 Technology, Inc Low power, high performance, heterogeneous, scalable processor architecture
US7382392B2 (en) 2004-07-20 2008-06-03 Samsung Electronics Co., Ltd. Method and apparatus for compensating for scanning skew
US7529384B2 (en) 2004-08-11 2009-05-05 The Trustees Of Stevens Institute Of Technology Robust hidden data extraction method for scaling attacks
KR20060016947A (ko) * 2004-08-19 2006-02-23 엘지전자 주식회사 Mpeg 비디오 부호화 시스템 및 부호화 방법
US7558428B2 (en) 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
US7173631B2 (en) 2004-09-23 2007-02-06 Qualcomm Incorporated Flexible antialiasing in embedded devices
US7792192B2 (en) 2004-11-19 2010-09-07 Analog Devices, Inc. System and method for sub-pixel interpolation in motion vector estimation
US7924923B2 (en) 2004-11-30 2011-04-12 Humax Co., Ltd. Motion estimation and compensation method and device adaptive to change in illumination
US7653132B2 (en) 2004-12-21 2010-01-26 Stmicroelectronics, Inc. Method and system for fast implementation of subpixel interpolation
US20060146734A1 (en) 2005-01-04 2006-07-06 Nokia Corporation Method and system for low-delay video mixing
JP2006246431A (ja) 2005-02-07 2006-09-14 Matsushita Electric Ind Co Ltd 画像符号化装置および画像符号化方法
US7720311B1 (en) 2005-03-03 2010-05-18 Nvidia Corporation Memory and compute efficient block-based two-dimensional sample-rate converter for image/video applications
US7706443B2 (en) 2005-03-11 2010-04-27 General Instrument Corporation Method, article of manufacture, and apparatus for high quality, fast intra coding usable for creating digital video content
JP4889231B2 (ja) 2005-03-31 2012-03-07 三洋電機株式会社 画像符号化方法および装置、画像復号方法
TWI295540B (en) 2005-06-15 2008-04-01 Novatek Microelectronics Corp Motion estimation circuit and operating method thereof
KR100703200B1 (ko) 2005-06-29 2007-04-06 한국산업기술대학교산학협력단 인트라 부호화 장치 및 방법
JP4559935B2 (ja) 2005-08-25 2010-10-13 株式会社東芝 画像記憶装置及び方法
US20070073925A1 (en) 2005-09-28 2007-03-29 Arc International (Uk) Limited Systems and methods for synchronizing multiple processing engines of a microprocessor
ES2755882T3 (es) 2005-11-08 2020-04-24 Sun Patent Trust Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos
US20070133689A1 (en) 2005-12-08 2007-06-14 Park Seong M Low-cost motion estimation apparatus and method thereof
JP2009060153A (ja) 2005-12-21 2009-03-19 Panasonic Corp 面内予測モード決定方法及び装置及びプログラム
EP1964411B1 (en) 2005-12-22 2017-01-11 Thomson Licensing Method and apparatus for optimization of frame selection for flexible macroblock ordering (fmo) video encoding
US7693219B2 (en) 2006-01-04 2010-04-06 Freescale Semiconductor, Inc. System and method for fast motion estimation
US20070171981A1 (en) 2006-01-25 2007-07-26 Yingyong Qi Projection based techniques and apparatus that generate motion vectors used for video stabilization and encoding
KR100809296B1 (ko) 2006-02-22 2008-03-04 삼성전자주식회사 타입이 일치하지 않는 하위 계층의 정보를 사용하여인터레이스 비디오 신호를 인코딩/디코딩 하는 방법 및장치
US8009923B2 (en) * 2006-03-14 2011-08-30 Celestial Semiconductor, Inc. Method and system for motion estimation with multiple vector candidates
US8005140B2 (en) 2006-03-17 2011-08-23 Research In Motion Limited Soft decision and iterative video coding for MPEG and H.264
US8340179B2 (en) 2006-03-21 2012-12-25 Canon Kabushiki Kaisha Methods and devices for coding and decoding moving images, a telecommunication system comprising such a device and a program implementing such a method
US20070230564A1 (en) 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
US7565077B2 (en) 2006-05-19 2009-07-21 Seiko Epson Corporation Multiple exposure regions in a single frame using a rolling shutter
JP4752631B2 (ja) 2006-06-08 2011-08-17 株式会社日立製作所 画像符号化装置、及び画像符号化方法
US8081187B2 (en) 2006-11-22 2011-12-20 Autodesk, Inc. Pencil strokes for vector based drawing elements
US20080137726A1 (en) 2006-12-12 2008-06-12 General Instrument Corporation Method and Apparatus for Real-Time Video Encoding
US8428125B2 (en) 2006-12-22 2013-04-23 Qualcomm Incorporated Techniques for content adaptive video frame slicing and non-uniform access unit coding
CN101222641B (zh) 2007-01-11 2011-08-24 华为技术有限公司 帧内预测编解码方法及其装置
US8391354B2 (en) 2007-05-14 2013-03-05 Broadcom Corporation Method and system for transforming uncompressed video traffic to network-aware ethernet traffic with A/V bridging capabilities and A/V bridging extensions
TW200926011A (en) 2007-09-04 2009-06-16 Objectvideo Inc Background modeling with feature blocks
US20100034268A1 (en) 2007-09-21 2010-02-11 Toshihiko Kusakabe Image coding device and image decoding device
US8467451B2 (en) 2007-11-07 2013-06-18 Industrial Technology Research Institute Methods for selecting a prediction mode
JP5453304B2 (ja) 2007-12-20 2014-03-26 クゥアルコム・インコーポレイテッド 適応探索範囲を用いた動き推定

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102036075A (zh) * 2010-12-29 2011-04-27 东南大学 一种图像及数字视频编码及解码方法
CN102036075B (zh) * 2010-12-29 2012-11-28 东南大学 一种图像及数字视频编码及解码方法
CN107209768A (zh) * 2014-12-31 2017-09-26 华为技术有限公司 用于数据集的可扩展排序的方法和设备
CN105306956A (zh) * 2015-11-13 2016-02-03 浙江工商大学 一种提高hevc编码器离散余弦变换处理速度的方法
CN105306956B (zh) * 2015-11-13 2018-03-27 浙江工商大学 一种提高hevc编码器离散余弦变换处理速度的方法
CN113626761A (zh) * 2020-05-07 2021-11-09 脸谱公司 旁路硬件乘法器中的零值乘法
CN111953999A (zh) * 2020-07-31 2020-11-17 北京奇艺世纪科技有限公司 一种反变换方法及装置
CN111953999B (zh) * 2020-07-31 2022-03-04 北京奇艺世纪科技有限公司 一种反变换方法及装置

Also Published As

Publication number Publication date
KR100926207B1 (ko) 2009-11-09
US20080050036A1 (en) 2008-02-28
KR20080020947A (ko) 2008-03-06
US8666166B2 (en) 2014-03-04
TWI392371B (zh) 2013-04-01
TW200820787A (en) 2008-05-01
CN101131686B (zh) 2010-06-02
US8660380B2 (en) 2014-02-25
JP2008117368A (ja) 2008-05-22
JP4491798B2 (ja) 2010-06-30
US20100104008A1 (en) 2010-04-29

Similar Documents

Publication Publication Date Title
CN101131686B (zh) 二维变换的方法及系统、视频处理系统和变换引擎电路
CN101480054B (zh) 利用并行二进制算术解码的基于硬件的cabac解码器
Kim et al. Soft N-modular redundancy
CN100412907C (zh) 视频编码的低复杂性和统一标准的变换
CN103067022A (zh) 一种整型数据无损压缩方法、解压缩方法及装置
JP2008117368A5 (zh)
CN105847818A (zh) 用于对视频信号进行解码的方法和设备
CN106940638B (zh) 一种二进制原码加减法运算单元的硬件架构
US20090267810A1 (en) Efficient coding of small integer sets
CN102084594A (zh) 用于处理数字数据的方法
CN102547260B (zh) 基于上下文自适应的可变长编码的解码方法及系统
US8456334B2 (en) Variable-length code decoding apparatus, decoding system, and variable-length code decoding method
US20080007436A1 (en) Arithmetic decode without renormalization costs
TW201419140A (zh) 可重新配置的指令編碼方法、執行方法及電子裝置
CN107659315B (zh) 一种用于压缩感知的稀疏二值编码电路
Hameed et al. A new lossless method of Huffman coding for text data compression and decompression process with FPGA implementation
Emre et al. Data-path and memory error compensation technique for low power JPEG implementation
Saab et al. Energy efficient JPEG using stochastic processing
Tsai et al. A novel design of CAVLC decoder with low power and high throughput considerations
Cao et al. A k-step String Compression Approach for Discrete Event Systems
CN100388316C (zh) 高精度的无乘法器的数字余弦变换电路及其变换方法
Fajardo et al. Reducing the I/O Bottleneck by a Compression Strategy.
Emre et al. Quality-aware techniques for reducing power of jpeg codecs
Nan et al. A DST hardware structure of HEVC
NOUSHEEN et al. IMPLEMENTATION OF LOSSLESS IMAGE COMPRESSION USING FUZZY BASED MODIFIED GOLOMB RICE ENCODING

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