CN102550027B - 用于图像和视频压缩的局部可变量化和混合可变长度编码 - Google Patents

用于图像和视频压缩的局部可变量化和混合可变长度编码 Download PDF

Info

Publication number
CN102550027B
CN102550027B CN201080045109.7A CN201080045109A CN102550027B CN 102550027 B CN102550027 B CN 102550027B CN 201080045109 A CN201080045109 A CN 201080045109A CN 102550027 B CN102550027 B CN 102550027B
Authority
CN
China
Prior art keywords
amplitude
vlc
coefficient
quantization
coding
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.)
Active
Application number
CN201080045109.7A
Other languages
English (en)
Other versions
CN102550027A (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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN102550027A publication Critical patent/CN102550027A/zh
Application granted granted Critical
Publication of CN102550027B publication Critical patent/CN102550027B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

编码方法、装置和具有用于执行方法的指令的存储介质。方法对图像数据块的变换系数的经排序系列并且对于固定量化方法操作,并且包括对经排序系列进行量化和编码以形成经编码的比特流。量化和编码使用一个或多个可变长度代码(VLC)映射。量化包括把会被固定量化方法量化为具有零幅度的至少一个系数量化为具有幅度1,把会被固定量化方法量化为具有幅度1的至少一个系数量化为具有零幅度,并且使用固定量化方法来量化被固定量化方法量化为不具有零幅度、幅度1或幅度2的任何系数。

Description

用于图像和视频压缩的局部可变量化和混合可变长度编码
相关申请
本发明要求2009年10月6日提交的发明人为Li等人的美国专利申请No.12/574,409的优先权。本发明与同受让人的2008年12月16日提交的Li等人的题为CONTEXTADAPTIVE HYBRID VARIABLE LENGTH CODING的美国专利申请No.12/336,364(以下称为US12/336,364)相关,US 12/336,364是同受让人的2008年1月18日提交的Tian等人的题为CONTEXT ADAPTIVE POSITION AND AMPLITUDE CODING OF COEFFICIENTS FOR VIDEOCOMPRESSION的美国专利申请No.12/016,441(以下称为US 12/016,441)的部分继续案。US12/336,364也是同受让人的2008年2月13日提交的发明人为Li等人的题为VARIABLELENGTH CODING OF COEFFICIENT CLUSTERS FOR IMAGE AND VIDEO COMPRESSION的美国专利申请No.12/030,821(以下称为US 12/030,821)的部分继续案。US 12/016,411要求2007年10月2日提交的美国临时申请60/976,853的优先权。专利申请No.12/030,821要求2007年10月1日提交的US.60/976,742的优先权。US 12/336,364、US 12/016,441、US 12/030,821、US 60/976,853和US 60/976,742的每一个的内容通过引用被并入在此,除了通过引用并入在US 12/336,364、US 12/016,441、US 12/030,821、US 60/976,853和US 60/976,742的任何一个中而没有明确地通过引用并入在本公开中的任何素材以外。
技术领域
本公开总地涉及图像和视频压缩,具体而言涉及出现在基于变换的图像和视频压缩方法中的变换系数(transform coefficient)的量化(quantization)和可变长度编码。
背景技术
视频数据的变换编码和解码通常包括所谓的熵编码。为了压缩,图片的像素信息,例如运动补偿预测之后的残差图片的像素信息或者用于帧内编码的图片的像素信息被划分成块。块被变换,例如通过离散余弦变换(DCT)或类似的变换被变换,并且由此得到的变换系数被量化。经量化的变换系数被排序,例如沿着二维变换域中的路径从低频率到较高频率排序。经量化的变换系数的经排序系列随后通过熵编码方法被无损地编码。一种流行的熵编码方法是可变长度编码,其中表示具有其属性的一个或多个量化系数的一个或多个事件被用码字编码,使得更有可能发生的事件更有可能被用比不那么可能发生的事件更短的码字来编码。可变长度编码(VLC)由于其在效率和简单上的良好折衷已被广泛用在熵编码中,尤其是当希望编解码器具有低计算复杂度时。
US 12/016,441中公开的编码方法包括对一系列量化系数的双路位置和幅度编码过程。非零量化变换系数的位置被排序,例如按前向Z字形扫描顺序并且利用具有基于上下文的适应性表格切换的多个VLC表格。上下文指的是可从先前编码的信息确定的并且可用于预测行为的一个或多个信息项,例如从先前编码的系数确定的信息。另一方面,量化系数的幅度被按与前向Z字形扫描顺序相反的顺序编码并且根据其与零的邻近度被重分组为子序列。这些子序列被利用具有不同维度的不同的相应(多维)VLC映射来编码。
US 12/030,821中公开的编码方法包括将非零值量化系数的每个群集(cluster)的游程长度和每个群集前面的零系数的游程长度一起作为一对来编码,结合指示出该非零群集中幅度为1的拖尾系数的数目的参数。剩余的幅度被用一维VLC映射(例如代码表格)单独编码。
12/336,364中公开的编码方法包括联合编码系数位置与具有拖尾幅度1的系数的游程长度,并且通过一维(1D)VLC编码每个群集的剩余幅度。此外,该方法在对特定块编码时考虑到了先前编码的邻居系数块。使用多个VLC代码映射,例如代码表格,其中有基于上下文的表格切换。
发明人研究了局部地修改量化以便减少群集的数目,从而减少对图像 块的变换系数编码所需的比特的数目,而不会严重影响图像质量。
附图说明
图1示出了本发明的实施例中使用的特定的长度2事件的不同模式的参数x的值的表格。
图2示出了在行内按从左到右的顺序并且按从上到下逐行的顺序对图像块的二维阵列编码的扫描顺序,而且示出了当前正编码的块X和两个先前编码的邻居块A和B。
图3示出了对图像块的量化系数的经排序序列编码的方法实施例的简化流程图。
图4示出了上下文适应性编码的一些实施例的简化流程图,这些实施例包括使用多个三维位置VLC映射的位置映射,并且有对表格的基于上下文的切换。
图5示出了在本发明的一些实施例中对于编码的3D VLC表格的基于阈值的选择的一个示例。
图6示出了包括在所有群集的位置已被编码之后执行幅度编码的上下文适应性编码的实施例的简化流程图。
图7示出了表格3,该表格3以示例方式示出了在一些实施例中如何基于非零值之前的零值量化系数的先前最大游程和当前频率索引成分来选择VLC表格。
图8示出了编码的替代方法实施例的一个示例的流程图。
图9示出了编码的方法的另一示例性实施例的流程图。
图10示出了执行联合量化和可变长度编码的方法的实施例的流程图,其中包括在小范围的量化值上执行的率失真优化。
图11示出了包括被配置为实现如这里所述编码方法的装置的实施例。
图12示出了解码器的一个实施例。
图13示出了包括被配置为实现如这里所述的解码方法的装置的实施例。
具体实施方式
概述
本发明的实施例包括方法和装置以及编码在一个或多个计算机可读有形介质中以执行该方法的逻辑。该方法对通过变换图像数据块而获得的变换系数的经排序系列编码。该方法接受未量化形式的系数,或者在一些实施例中已经根据传统的固定量化方法量化的系数。在一些实施例中,该方法包括根据固定量化方法对未量化系数的系列进行量化。
对于图像数据块的变换系数的经排序系列,其中排序根据变换从低空间频率到高空间频率,并且对于将图像数据的块的系数值量化为具有包括最可能出现的幅度、第二可能出现的幅度和至少一个其他幅度(包括第三可能出现的幅度)在内的幅度的量化值的固定量化方法,该方法包括对经排序系列进行量化和编码以形成经编码的比特流。量化和编码使用一个或多个可变长度代码(VLC)映射,例如像US 12/336,364、US 12/016,441、US12/030,821的任何一个或多个中描述的那样。量化包括把会被固定量化方法量化为具有最可能出现的幅度的至少一个系数量化为具有第二可能出现的幅度,把会被固定量化方法量化为具有第二可能出现的幅度的至少一个系数量化为具有最可能出现的幅度,并且使用固定量化方法来量化被固定量化方法量化为具有不是最可能出现的幅度、不是第二可能出现的幅度或者不是第三可能出现的幅度的任何系数。
本发明的一些实施例并入了US 12/336,364、US 12/016,441和US 12/030,821的一个或多个中描述的VLC方案。通过将本发明的局部可变量化特征与VLC方法(例如US 12/336,364、US 12/016,441、US 12/030,821的一个或多个中描述的VLC方案之一)相集成,预期本发明会进一步提高高分辨率图像和视频内容的压缩效率。
虽然本概要描述了固定量化方法把变换系数量化为具有0是最可能出现的幅度、1是第二可能出现的幅度并且存在包括2作为第三可能出现的幅度在内的至少一个其他幅度这样的幅度的实施例,但本发明并不限于这种固定量化方法,而是可以应用于量化到如下一组值中的任何值的固定量 化方法的情况:该组值对于最可能出现的幅度、第二可能出现的幅度和/或第三可能出现的幅度可具有其他值。如何一般化这种实施例对于本领域的普通技术人员来说将是清楚且简单明了的。权利要求是以更一般化的形式撰写的。
特定实施例包括对图像数据块的变换系数的经排序系列编码的方法,该编码使用编码装置。该方法包括,对于图像数据块的变换系数的经排序系列的第一区域并且对于该方法中使用的固定量化方法,对第一区域和经排序系列的任何其他区域进行量化和编码以形成经编码的比特流,并且输出或存储该经编码的比特流。排序是根据变换从低空间频率到高空间频率的。第一区域可能是整个区域。固定量化方法把图像数据的块的系数值量化为具有如下幅度的量化值:所述幅度包括作为最可能出现的幅度的0、作为第二可能出现的幅度的1以及至少一个其他幅度,该至少一个其他幅度包括作为第三可能出现的幅度的2。第一区域的量化和编码使用了一个或多个可变长度代码映射。第一区域的量化包括把会被固定量化方法量化为具有零幅度的至少一个系数量化为具有幅度1,把会被固定量化方法量化为具有第二可能出现的幅度的至少一个系数量化为具有零幅度,并且使用固定量化方法来量化被固定量化方法量化为不具有零幅度、幅度1或者不是幅度2的任何系数。
特定实施例包括编码有具有计算机可执行指令的计算机可读介质,所述指令在被处理系统的至少一个处理器执行时使得执行对图像数据块的变换系数的经排序系列编码的方法。该方法包括,对于图像数据块的变换系数的经排序系列的第一区域并且对于该方法中使用的固定量化方法,对第一区域和经排序系列的任何其他区域进行量化和编码以形成经编码的比特流,并且输出或存储该经编码的比特流。排序是根据变换从低空间频率到高空间频率的。第一区域可能是整个区域。固定量化方法把图像数据的块的系数值量化为具有如下幅度的量化值:所述幅度包括作为最可能出现的幅度的0、作为第二可能出现的幅度的1以及至少一个其他幅度,该至少一个其他幅度包括作为第三可能出现的幅度的2。第一区域的量化和编码使用了一个或多个可变长度代码映射。第一区域的量化包括把会被固定量 化方法量化为具有零幅度的至少一个系数量化为具有幅度1,把会被固定量化方法量化为具有第二可能出现的幅度的至少一个系数量化为具有零幅度,并且使用固定量化方法来量化被固定量化方法量化为不具有零幅度、幅度1或幅度2的任何系数。
特定实施例包括被配置为对图像数据块的变换系数的经排序系列编码的装置,排序是根据变换从低空间频率到高空间频率的。当固定量化器对变换系数操作时,所得到的量化系数具有如下幅度:所述幅度包括作为最可能出现的幅度的0以及至少一个其他幅度,该至少一个其他幅度包括作为第二可能出现的幅度的1。第三可能出现的幅度是2。该装置包括量化器和编码器,该量化器和编码器被配置为对第一区域和经排序系列的任何其他区域进行量化和编码以形成经编码的比特流。该量化器和编码器包括第一区域量化器和编码器,该第一区域量化器和编码器被配置为利用一个或多个可变长度代码映射对第一区域进行量化和编码。第一区域的量化包括把会被固定量化方法量化为具有零幅度的至少一个系数量化为具有幅度1,把会被固定量化方法量化为具有第二可能出现的幅度的至少一个系数量化为具有零幅度,并且使用固定量化方法来量化被固定量化方法量化为不具有零幅度、幅度1或幅度2的任何系数。
特定实施例包括利用解码装置对经编码的比特流解码的方法。经编码的比特流包括一组串接(concatenated)的码字。解码的方法包括识别比特流中的码字,这些码字是由利用多个VLC映射中的一个或多个对图像数据块的变换系数的经排序系列编码的编码方法形成的。编码方法包括,对于图像数据块的变换系数的经排序系列的第一区域并且对于用于量化至少一些系数的固定量化方法,对第一区域和经排序系列的任何其他区域进行量化和编码以形成经编码的比特流,并且输出或存储该经编码的比特流。排序是根据变换从低空间频率到高空间频率的。第一区域可能是整个区域。固定量化方法把图像数据的块的系数值量化为具有如下幅度的量化值:所述幅度包括作为最可能出现的幅度的0、作为第二可能出现的幅度的1以及至少一个其他幅度,该至少一个其他幅度包括作为第三可能出现的幅度的2。第一区域的量化和编码使用了一个或多个可变长度代码映 射。第一区域的量化包括把会被固定量化方法量化为具有零幅度的至少一个系数量化为具有幅度1,把会被固定量化方法量化为具有第二可能出现的幅度的至少一个系数量化为具有零幅度,并且使用固定量化方法来量化被固定量化方法量化为不具有零幅度、幅度1或幅度2的任何系数。解码的方法还包括利用多个VLC映射中的一个或多个来对识别出的码字解码。
特定实施例包括编码有计算机可执行指令的计算机可读介质,所述指令在被处理系统的至少一个处理器执行时使得执行如以上段落中所述的对经编码的比特流解码的方法。
特定实施例包括被配置为对由编码方法形成的一组串接的码字解码的装置。该装置包括码字识别器,该码字识别器被配置为识别该组串接的码字中的码字。码字是由利用多个VLC映射中的一个或多个对图像数据块的变换系数的经排序系列编码的编码方法形成的。编码方法包括,对于图像数据块的变换系数的经排序系列的第一区域并且对于固定量化方法,对第一区域和经排序系列的任何其他区域进行量化和编码以形成经编码的比特流,并且输出或存储该经编码的比特流。排序是根据变换从低空间频率到高空间频率的。第一区域可能是整个区域。固定量化方法把图像数据的块的系数值量化为具有如下幅度的量化值:所述幅度包括作为最可能出现的幅度的0、作为第二可能出现的幅度的1以及至少一个其他幅度,该至少一个其他幅度包括作为第三可能出现的幅度的2。第一区域的量化和编码使用了一个或多个可变长度代码映射。第一区域的量化包括把会被固定量化方法量化为具有零幅度的至少一个系数量化为具有幅度1,把会被固定量化方法量化为具有第二可能出现的幅度的至少一个系数量化为具有零幅度,并且使用固定量化方法来量化被固定量化方法量化为不具有零幅度、幅度1或幅度2的任何系数。该装置还包括码字解码器,该码字解码器被配置为利用一个或多个VLC映射对识别出的码字解码。
在上述编码的方法、上述解码的方法、上述计算机可读存储介质和上述装置的一些实施例中,第一区域的量化和编码包括,对于预定义的第一区域VLC方法,选择最小化使用该预定义的第一区域VLC方法的率失真 函数的量化幅度值作为被固定量化方法量化为具有幅度0、1或2的系数的量化,其中具有0和被固定量化方法量化为1的最大系数幅度之间的幅度的任何系数被允许被量化为0或1,并且具有大于被固定量化方法量化为幅度1的最大系数幅度且小于被固定量化方法量化为幅度2的最大系数幅度的幅度的任何系数被允许被量化为1或2。
在上述编码的方法、上述解码的方法、上述计算机可读存储介质和上述装置的其他实施例中,所述系列是由固定量化方法量化的量化变换系数的经排序序列,并且方法包括,对于可以是整个系列的第一区域,利用一个或多个位置VLC映射对第一区域中的事件的位置编码,位置被编码的每个事件包括正好一个具有非零幅度的量化系数或者各自具有非零幅度的量化系数的群集,并且对仍待编码的任何非零幅度编码,该编码是根据一个或多个幅度VLC映射的。事件的位置的编码包括根据由第一量化修改方法、第二量化修改方法、第三量化修改方法、第四量化修改方法和第五量化修改方法构成的集合的一个或多个量化修改方法相对于固定量化方法的量化修改量化系数的量化。第一量化修改方法包括利用具有零幅度的量化系数替换具有幅度1的孤立量化系数。第二量化修改方法包括利用具有幅度1的量化系数替换具有零幅度的孤立量化系数。第三量化修改方法包括替换一对量化系数,该对量化系数开始于具有零幅度的第一量化系数,后跟具有幅度1的第二量化系数,该对之前是具有非零幅度的一个或多个量化系数的序列并且之后是具有零幅度的一个或多个量化系数,替换是根据哪种替换产生更短的经编码的比特流而用各自具有零幅度的一对量化系数或者各自具有幅度1的一对量化系数来替换。第四量化修改方法包括替换一对系数,该对系数有具有幅度1的第一量化系数后跟具有零幅度的第二量化系数,该对之前是具有零幅度的一个或多个量化系数的序列并且之后是具有非零幅度的一个或多个量化系数,替换是根据哪种替换产生更短的经编码的比特流而用各自具有零幅度的一对量化系数或者各自具有幅度1的一对量化系数来替换。第五量化修改方法包括在位置事件中替换具有幅度2的量化系数后跟该位置事件中的具有幅度1的一个或多个系数的拖尾序列,在该位置事件中在该拖尾序列之后没有其他系数有不是零的幅 度。具体地,修改量化包括至少第二量化修改方法、第三量化修改方法、第四量化修改方法或第五量化修改方法。
这里描述的上下文适应性混合可变长度编码的一些实施例对于可能是经量化的变化系数的整个经排序系列的第一区域,包括三维联合位置和幅度编码过程和一维(1D)幅度过程,这两个过程都是以上下文适应性方式执行的。
特定实施例可提供这些方面、特征或优点中的全部或一部分,或者不提供这些方面、特征或优点。特定实施例可提供一个或多个其他方面、特征或优点,其中的一个或多个是本领域的技术人员根据这里的附图、说明书和权利要求可容易清楚的。
位置和幅度编码方法
在变换编码中,图像被划分成块,并且每块图像数据通过一种变换被变换,所述变换例如是如MPEG-1、MPEG-2等等中的离散余弦变换(DCT)、比如ITU-T推荐H.264中使用的整数变换(称为H.264/AVC和MPEG-4,part 10)或者一些其他变换,其中变换域具有以某种方式指示出空间频率的排序。
对于这里的描述,假定变换系数被量化成使得0是最可能出现的幅度,1是其次可能出现的幅度,即第二可能出现的幅度,并且2是再次可能出现的幅度,即第三可能出现的幅度。然而,本发明并不限于这种情况。本领域的技术人员将会认识到,将有限数目的“幅度”中的不同幅度指派给系数幅度的范围的量化映射可以使得不是0的值被指派给最可能出现的幅度范围,并且不是1的值被假定为第二可能出现的幅度范围。
变换系数在前向空间频率方向上被排序,即在二维空间频率平面中沿着渐增的频率的Z字形顺序。考虑按前向亦即渐增空间频率顺序的变换系数的经排序系列。在通过传统固定量化方法进行的量化(例如H.264/AVC中使用的量化)以后,这种前向扫描的系列包括连续的非零值系数的群集。除非非零幅度是该系列中的最末量化系数(这通常是不太可能的),每个群集的后面跟着至少一个零值量化系数。在本发明的实施例中,编码 的群集被定义为包括一个紧跟在后的零值量化系数。群集的前面可以有连续的零值量化系数。从而,每个群集和任何在前的0可由两个量来定义,即群集的大小,以及任何在前的零值量化系数的游程的长度。用Rnz,Rnz≥1表示包括一个随后的零值系数的群集中的非零幅度量化系数的数目,并且用Rz,Rz≥0表示该群集之前的连续零值的数目。从而游程长度对(Rz,Rnz),Rz≥0,Rnz≥1定义了Rz个零值量化系数,后跟Rnz个非零值量化幅度,后跟一个0。例如,系数序列9 5 3 0 1 3 0 0 1 0...0由三个系数群集定义:9 5 3 0、1 3 0和0 1 0,非零和零的位置由三个对(0,3)、(0,2)、(1,1)定义。
可变长度编码实施例包括用码字对群集的事件编码,以使得当考虑所有可能的图像时,平均起来,一事件越有可能发生,用于对该事件编码的码字就越短。事件在关于编码的文献中也常被称为码元(symbol)。群集事件表示非零系数的群集中的量化幅度。
局部可变量化
一般来说,在通过诸如H.264/AVC中使用的那种或者H.263中使用的那种之类的固定量化方法进行量化之后,非零值系数在低频区域中更形成群集,而在高频区域中更分散,从而使得非零值系数的群集随着频率增大(例如从低频区域到高频区域)而变小。相反,一般来说,零值系数在低频区域中更分散,而在高频区域中更形成群集,从而使得零值系数的群集随着频率增大(例如从低频区域到高频区域)而变大。
混合可变长度编码通过使用第一区域可变长度编码方法和第二可变长度编码方法而利用了这种趋势,其中该第一区域可变长度编码方法是为了对第一低频区域中的非零值系数的群集进行编码而设计的,例如对于这种编码尤其高效,并且第二可变长度编码方法是为了对具有比第一区域更高的频率的第二区域中的带有孤立的小值(例如孤立的幅度1系数)的长游程长度的零值系数进行编码而设计的,例如对于这种编码尤其高效。
非零值系数随着频率增大(例如从低频区域到高频区域)而具有更小的幅度,从而使得在非零值系数的每个群集的末尾处非零值系数倾向于具 有幅度1。
虽然经量化的变换系数块或多或少遵循上述观察到的情况,但在每个个体块中的整个频率区域的某个部分中可能存在某些局部“特殊”变化。如果没有这种变化,则可变长度编码方法将实现更高的编码效率。
本发明的实施例包括,对于第一区域编码方法(第一区域可能包括整个序列),以只引入轻微的、通常可忽略的失真的方式局部修改量化过程以消除某些这种特殊局部变化以便减少需要编码的事件的数目并且减小所得到的经编码的比特流的长度。我们称在局部化情况中对量化系数的这种修改为“局部可变量化”。
在一些实施例中,假定已通过固定量化方法量化了系数。在其他实施例中,在该方法中包括量化。
对于图像数据块的变换系数的经排序系列,其中排序根据变换从低空间频率到高空间频率,并且对于将图像数据的块的系数值量化为具有包括最可能出现的幅度(1)、第二可能出现的幅度(1)和至少一个其他幅度(包括第三可能出现的幅度(2))在内的幅度的量化值的固定量化方法,本发明的方法实施例包括对经排序系列进行量化和编码以形成经编码的比特流。量化和编码使用一个或多个可变长度代码(VLC)映射。量化包括把会被固定量化方法量化为具有零幅度的至少一个系数量化为具有幅度1,把会被固定量化方法量化为具有幅度1的至少一个系数量化为具有零幅度,并且使用固定量化方法来量化被固定量化方法量化为不具有零幅度、幅度1或幅度2的任何系数。
在这里的描述中,除非另有提及,否则假定变换系数的经排序系列已经通过固定量化方法被量化。混合编码方法包括定义一个或多个断点以定义一个或多个区域,例如两个区域—低频区域和高频区域。本发明的实施例包括向第一区域编码方法应用局部可变量化方法。第一区域在非混合编码的情况下是图像块的整个系数经排序系列。
在混合编码的一些实施例中,传统的2D可变长度编码被用于对第二区域编码。
本发明的实施例包括VLC方法,其中,群集的位置以及群集中的系 数的幅度被用事件来编码,所述事件由群集的长度(以及其他事物)并且间接地由群集的数目定义。群集越少,需要编码的位置就越少。本发明的一个局部可变量化特征是局部地修改量化系数以减少群集的数目,而不严重影响所产生的误差。描述了用于这样相对于从固定量化方法获得的值局部地修改量化系数的一个或多个方法。
一些VLC方法包括对三维联合位置和幅度事件编码,该三维联合位置和幅度事件后面可能跟着未被包含到该三维联合位置和幅度事件中的幅度的一个或多个一维(1D)幅度事件。在事件固有地定义所有非零值幅度的情况下,对于事件没有剩余的非零幅度要编码,因此没有后面跟着的一维幅度事件。发明人观察到,非零系数随着频率增大而具有更小的幅度,从而使得在非零系数的每个群集的末尾处非零系数倾向于具有幅度1。为了利用这一点,本发明的一些实施例包括对包括任何拖尾的幅度1系数的游程长度的事件进行编码。具体地,一些实施例包括联合编码三维联合位置和幅度事件,每个三维联合位置和幅度事件包括非零值量化系数的群集和单个零值系数(除非序列的末尾结束于非零值系数),这由在前的零(如果有的话)的数目、群集中的非零的数目以及群集末尾处在最终的零之前的连续拖尾幅度1系数的数目来描述。任何其他幅度值被包括在之后的(一个或多个)一维幅度事件中。三维联合位置和幅度事件可由三个量来表示,这三个量是Rz、Rnz和表示该群集中幅度为1的拖尾系数的数目的表示为T1的量,T1≥Rnz。三元组(Rz,Rnz,T1)从而表示了三维联合位置和幅度事件。作为示例,系数群集0 0 0 6 2 1 1 1 0由3D位置和幅度事件(3,5,3)表示,其中有两个剩余的幅度6和2待编码。作为另一示例,0 0 0 6 1 2 1 1 0由3D位置和幅度事件(3,5,2)表示,其中有三个剩余幅度6、1和2待编码。除了T1个拖尾幅度1系数以外的非零幅度值在一些实施例中被用一维(1D)幅度可变长度编码按相反顺序来编码。即,在以上第一示例中,幅度编码的顺序是先编码幅度2,然后编码幅度6,而在后一示例中,顺序是先编码幅度2,然后1,然后6。
在例如US 12/336,364中描述的上下文适应性编码中,多个代码映射(例如VLC代码表格)被用于3D位置-幅度编码和1D幅度编码两者,并 且代码映射(例如VLC代码表格)是基于从已编码的邻居块或从当前正编码的块的已编码部分可推导出的上下文信息来适应性地选择的。US 12/336,364中描述的一个实施例,在预测系数分布和确定VLC表格时利用了三个上下文:(1)邻居块中的非零值系数的数目,这些数目被用于预测当前块中的非零值系数的数目;(2)当前块中的先前编码的系数群集的非零游程和零游程的游程长度;以及(3)当前块的每个非零系数群集中的先前编码的非零值系数的幅值,按相反顺序。
在本发明的这种对联合位置和幅度事件联合编码的实施例中,增大拖尾幅度1系数的游程的长度的局部可变量化可消除需要编码的额外幅度中的一些,因此减少了码字的数目。本发明的这种实施例的一个特征是局部地修改量化系数以减少需要编码的非幅度1的非零系数幅度的数目,而不严重影响所产生的失真。此特征可存在于在不严重影响所产生的误差的情况下局部地改变一个或多个量化系数以减小非零系数的群集的数目的一个或多个方法中。
作为对减少联合位置和幅度事件和需要编码的额外幅度事件的数目的附加或替代,通过消除每个块中的编码码元的局部变化,来使得对于每个块要编码的事件更好地匹配代码表格切换趋势,将会是有利的。
本发明的不同实施例包括以下五种局部改变量化修改中的一种或多种。
量化修改1:消除孤立的小幅度非零值系数。
孤立的小幅度非零值系数指的是前面和后面有一个或多个零值系数的幅度1系数。在这种情况下,本领域中已知局部地修改量化以使得该孤立的小幅度非零值系数被量化为零。本发明的一些实施例包括在这里被表示为量化修改1的此特征。这将消除包括单个非零值系数的群集,而不会引入显著的失真。注意,一些实施例还消除了0 1序列,这被称为量化修改3,并且一些实施例还消除了1 0序列,这被称为量化修改4。当包括量化修改3和量化修改4的一者或两者时,孤立的小幅度非零值系数是前面和后面有两个或更多个零值系数的幅度1系数。
作为量化修改1的示例,在3D位置-幅度编码的情况下,每当一孤立的幅度1系数被消除时,单个3D位置-幅度事件就表示长得多的系数序列,并且因为该非零值系数的幅值是1,所以通过将该系数量化为零而引入的失真将较小。例如,系数块(6 3 1 0 0 0 1 0 0 02 1 0...)将由三个3D位置-幅度码元来编码:(0,3,1)、(2,1,1)和(2,2,1)。然而,如果我们将孤立的1量化为0,则所得到的系数块(6 3 1 0 0 0 0 0 0 0 2 1 0...)可由仅两个3D位置-幅度码元来编码:(0,3,1)和(6,2,1)。
量化修改2:消除孤立的零值系数
孤立的零值系数的前面和后面是一个或多个非零值系数的序列。本发明的一些实施例将孤立的零值系数局部地修改为非零幅度,比如对于否则会被量化为0的负系数修改为-1,对于否则被量化为0的正系数修改为+1,从而使得现在幅度1系数连接非零值系数的两个群集以形成更长的群集,而不会引入显著的失真。我们在这里称此特征为“量化修改2”。当包括量化修改3和量化修改4的一者或两者时,孤立的零值系数是前面和后面是两个或更多个非零值系数的零值系数。
作为量化修改2的示例,在3D位置-幅度编码的情况下,系数块(8 5 3 -2 1 0 4 2-1 0 0 0...)将被编码为两个3D位置-幅度码元(0,5,1)和(0,3,1)。假定孤立的零值系数是正的,则改变量化以使得孤立的零值系数变成1,所得到的系数块(8 5 3 -2 1 1 4 2 -10 0 0...)仅由单个3D位置-幅度码元来编码:(0,9,1)。
连接被孤立的零值系数隔开的非零值系数的群集的量化修改2在有利地对其中非零值系数有可能形成群集的第一(低频)区域中的非零值系数的长游程进行编码的混合编码方法中尤其有利。
量化修改3:替换前面是非零值系数的序列并且后面是一个或多个零值系数的0 1幅度对
在一些实施例中,前面是非零值系数的序列并且后面是一个或多个零值系数的(01)幅度对被(0 0)或(1 1)所替换,以减少需要编码的事 件的数目并且减小所得到的经编码的比特流的长度,而仅引入小量失真。这在这里被称为量化修改3。用于经减少的事件的码字取决于是0 0还是1 1被选择为(0,1)的替换而可能是相当不同的。该方法包括检查从两种替代方式中的每一种得到的事件序列,并且选择产生较短比特流的那种。在上下文适应性的情况下,该方法包括选择更好地匹配代码映射切换方案的选项,以便将得到更短的比特流。
作为示例,在3D位置幅度编码的情况下,序列8 5 3 -2 1 0 1 0 0 0 5 3 -1 0 00 0...将需要三个3D位置-幅度码元来编码:(0,5,1)、(0,1,1)和(2,3,1)。注意,0 1 0中的1不被认为是“孤立的1”,因为它的前面和后面只有单个零值系数,并且替换0 1的量化修改3被包括了。
继续该示例,有两种减少代码码元的数目的方式。第一种是用(0 0)来替换(0 1),以使得序列变成8 5 3 -2 1 0 0 0 0 0 5 3 -1 0 0 0 0并且被用3D位置-幅度码元(0,5,1)和(4,3,1)来编码,而第二种用(1 1)来替换(0 1),以使得序列是8 5 3 -2 1 1 1 0 0 05 3 -1 0 0 0 0并且被用3D位置-幅度码元(0,7,3)和(2,3,1)来编码。编码方法包括检查代码序列的集合,并且选择更好地匹配代码表格切换方案并从而产生更短的经编码比特串的集合。
注意,对前面是非零值系数的游程并且后面是零值系数的游程的(0 1)序列的这种消除不同于去除孤立的幅度1系数的量化修改1,而且也不同于去除孤立的0值系数的量化修改2。
量化修改4:替换前面是零值系数的序列并且后面是一个或多个非零值系数的10幅度对
在本发明的一些实施例中,前面是一个或多个零值系数的序列并且后面是一个或多个非零值系数的(1 0)幅度对被(0 0)或(1 1)所替换。这在这里被称为量化修改4。与量化修改3的情况一样,两种替代方式各自减少需要编码的码元的数目,但所得到的编码码元可能是相当不同的,从而比特率也可能是相当不同的。编码方法包括比较从两种替代情形产生的两个不同的代码码元序列,并且选择产生较短的经编码比特串比特流的 那种。例如,在上下文适应性的情况下,该方法包括选择与代码映射切换方案更好地匹配并从而产生更短的经编码比特串的替代。
作为示例,在3D位置幅度编码的情况下,如果没有任何这里描述的特征则通常将需要三个3D位置-幅度码元来编码的序列(...8 5 3 -2 1 0 0 0 1 0 5 3 -1 0 0 00...)可变成序列(...8 5 3 -2 1 0 0 0 1 1 5 3 -1 0 0 0 0...)或序列(...8 5 3 -21 0 0 0 0 0 5 3 -1 0 0 0 0...)。对第一序列编码包括对事件(0,5,1)和(2,5,1)编码,而对第二序列编码包括对事件(0,5,1)和(4,3,1)编码。所得到的比特率对于这两种替代可能是相当不同的。该方法包括选择产生更短的经编码比特串的替代。例如,在上下文适应性编码的情况下,该方法包括选择与代码表格切换方案更好地匹配并从而产生更短的经编码比特串的替代。
注意,对前面是非零值系数的游程并且后面是零值系数的游程的(1 0)序列的这种消除不同于去除孤立的幅度1系数的量化修改1,而且也不同于去除孤立的0值系数的量化修改2。
量化修改5:替换与幅度1系数相邻(例如被幅度1系数包围)或者后跟幅度1系数的拖尾序列的幅度2系数
本发明的一些实施例包括利用幅度1系数来替换与幅度1系数的拖尾游程相邻的幅度2系数—概括来说是第三可能出现的幅度。我们在这里称此特征为量化修改5。此特征可应用到3D位置-幅度编码,并且既延长了拖尾的幅度1系数的游程的长度,又消除了需要编码的幅度21D幅度事件,而同时只引入最小限度的失真。在不同实施例中使用量化修改5的两种变体。在第一实施例中,只有前面是至少一个幅度1系数并且后面是幅度1系数的拖尾序列的幅度2系数被幅度1系数所替换。在第二实施例中,任何后面是幅度1系数的拖尾序列的单个幅度2系数都被幅度1系数所替换。在这些实施例的每一个中,更多的系数可用拖尾的幅度1系数的数目(T1)来编码,从而更少的系数需要用额外的1D幅度编码来编码。
作为示例,考虑系数块(8 5 3 -2 1 1 2 -1 1 0 0 0 2 1 -1 0 0 0...),在应用量化的局部改变中的任何一种之前,其将由第一3D位置-幅度码元(0, 9,2)和用于拖尾的1之前的剩余幅度(8 5 3 2 1 1 2)的七个额外的1D幅度编码并且由第二3D位置-幅度码元(2,3,2)和用于拖尾的1之前的剩余幅度(2)的一个额外的1D幅度编码来编码。在应用量化修改5的第一版本中,该系数块变成(8 5 3 -2 1 1 1 -1 1 0 0 0 2 1 -1 0 0 0...),其由第一3D位置-幅度码元(0,9,5)和用于拖尾的1之前的剩余幅度(8 5 3 2)的四个额外的1D幅度编码并且由第二3D位置-幅度码元(2,3,2)和用于拖尾的1之前的剩余幅度(2)的一个额外的1D幅度编码来编码。因此,消除了七个1D幅度码字。在应用量化修改5的第二版本中,该系数块变成(8 5 3 -1 1 1 1 -1 1 0 0 0 1 1 -1 0 0 0...),其由第一3D位置-幅度码元(0,9,6)和用于拖尾的1之前的剩余幅度(8 5 3)的三个额外的1D幅度编码并且由第二3D位置-幅度码元(2,3,3)(没有额外的1D幅度编码)来编码。因此,消除了甚至更多的1D幅度码字。
当量化的这种局部改变被应用到诸如上下文适应性混合VLC之类的上下文适应性编码方法时,除了消除1D码字之外,所有剩余的非零值系数的幅度也可被调整以与幅度代码表格切换更好地匹配。
混合编码
以上所述的局部可变量化方法被应用在图像块的变换系数的经排序序列的第一区域中。在非混合编码的情况下,第一区域是唯一的区域,即整个序列。在混合编码的情况下,定义至少一个断点,其将序列划分成至少第一低频区域和第二高频区域。非混合情况被包括在这种描述中;第一区域是整个区域。在混合编码的一些实施例中,定义第一低频区域和第二高频区域的断点是不会变化的硬断点。在混合编码的其他实施例中,定义第一低频区域和第二高频区域的断点是“软”断点,因为这种断点不会打断第一区域中的最终事件。因此,在3D位置-幅度编码的情况下,第二区域的实际起点是第一区域中的开始于软断点的位置值之前的最末3D位置-幅度事件的末尾处。因此,如果最末的第一区域3D位置-幅度事件正好结束于软断点的位置值处,则这个值是第二区域的起点的位置,否则第二区域的起点的位置在软断点的值之后并且在最末的3D位置-幅度事件的末尾 处。
3D位置-幅度编码的替代版本
在一些实施例中,对于上述通过对3D位置-幅度事件编码来对群集编码的定义包括一个例外-Rnz=1的情况,即孤立的非零系数。当包括可变量化时,孤立的幅度1系数被排除。另外,发明人在具有非零非幅度1的孤立系数的情况中选择用非零系数的幅度而不是用拖尾1的数目T1(其在此情况下只能是0或1)来定义3D位置-幅度事件中的第三参数,从而,每当Rnz=1时,编码方法理解在事件(Rz,1,x)中,x是非零系数的幅度。
在本发明的一些实施例中,对于上述通过对3D位置-幅度事件编码来对群集编码的定义添加了另一个例外—Rnz=2的情况。对这另一个例外,表示为x的第三参数不是指示拖尾的幅度1系数的数目,而是以图1中所示的方式指示两个非零系数中的哪一个具有幅度1,图1示出了事件(Rz,2,x)的不同模式的x的值的表格1,其中“x”代表非1量化幅度。
在本发明的一些实施例中,对于Rnz>1的情况,三维联合位置和幅度事件中除了“x”事件指示的那些以外的量化幅度被用与前向(例如前向Z字形扫描顺序)相反的(空间频率渐减的)扫描顺序应用的一维幅度代码来编码。换言之,编码开始于群集中的最末非幅度1,并且向更低频的非零幅度移动。
在群集中的非零、非幅度1的系数的1D幅度编码的变体中,群集中最末的非零、非幅度1的系数被编码为该幅度减1以进一步缩短码字(所有可能图像平均起来),因为最末的非零、非幅度1系数必然大于1,否则它将由3D位置-幅度事件的T1参数来指示。
在一些实施例中,对于每个群集,每个三维联合位置和幅度事件和任何相关联的一维幅度事件被各自指派码字来实现压缩,以使得在所有可能的图像的平均起来,事件越有可能发生,用于对该事件编码的码字就越短。编码将事件映射到码字。在一些实施例中,事件到码字的映射是由可变长度代码(VLC)映射来定义的。本发明的实施例包括可变长度代码映 射,其中,在所有可能的图像平均起来,例如在大量典型图像平均起来,与不那么可能发生的事件相比,更短的代码被用于更有可能发生的事件。从而,VLC映射是基于事件的统计特性的。这些统计特性可以根据通常发生的图像来预定,或者可从图像数据适应性地确定。注意,当包括局部可变量化时,这些统计特性假定使用局部可变量化。
每个VLC映射可由一表格表示。从而,在这里的整篇描述中,术语“表格”应当被理解为不仅包括表格,还广泛地包括为正编码的事件提供码字的任何形式的VLC映射。另外,如本领域中常见的,一些通常不太可能发生的事件被用固定码字加某个转义码来编码,以指示使用了固定长度码字。这提供了更小的代码映射。
除了量化幅度以外,量化系数的符号(sign)也根据一些符号编码方法被编码。或者,符号可被包含到代码映射中。
从而,用于单个群集的映射是根据对于该群集要编码的三维联合位置和幅度编码的三维表格和每个一维幅度事件(如果有的话)的一维表格的。
上下文适应
编码的一些实施例包括上下文适应。取代使用单个3D VLC映射和可能一个或多个1D VLC代码映射来对每个群集编码,本发明的实施例使用多组VLC映射,并且包括基于一个或多个基于上下文的选择标准在这些代码映射之间切换,其中基于上下文的标准指的是在编码期间从一个或多个先前编码的信息项知道或推导出的标准。上下文从而是基于正在编码的块内与编码发生于何处有关的先前编码的系数的一个或多个属性和/或与正在编码的块周围的已经编码的图像块有关的一个或多个属性的。位置编码或幅度编码或者位置编码和幅度编码两者可包括VLC映射切换。因此,一个实施例包括两组VLC映射:一个用于位置编码,另一个用于幅度编码。
这多组VLC表格中的每一个被设计成为遵循某种统计分布的系数提供最佳压缩。利用这样设计的多组VLC表格,通过基于从先前编码的系 数可推导出的信息预测接下来要编码的系数的分布并且利用相应的VLC表格对接下来要编码的系数进行编码,可以改善系数序列的压缩。从先前编码的系数可推导出的信息在这里被称为上下文。
在其中群集位置被例如用一组多维位置VLC映射之一编码并且剩余要编码的幅度被用一组VLC幅度映射之一编码的、我们称为上下文适应性混合可变长度编码(CAHVLC)的一些实施例中,在预测系数分布和确定VLC表格时利用了四个上下文。它们是:
上下文1:(一个或多个)邻近块的群集大小
第一上下文包括对以下数目的指示:至少一个先前编码的邻居块中的群集中的非零量化系数的数目,例如一个或多个先前编码的邻居块中的群集中的非零量化系数的平均数目。在一些实施例中,这些数目被用于预测目前正编码的块中的群集中的非零系数的数目。一些实施例包括按从上到下的顺序逐块行地对图像的块的量化系数编码,并且从左到右逐块地对一行内的块编码。在一个这种实施例中,接下来要编码的块—被称为当前正编码的块并且也称为当前块并且这样的块被表示为X-中的非零系数的数目,被用相邻的已经遇到的例如已经编码的块中的非零系数的平均数目来预测。在一些实施例中,用于预测当前块X中的群集中的非零系数的数目的量包括了X上方的被表示为块A的块和块X左侧的块即块B中的群集中的非零系数的数目。图2示出了块X以及它的已经编码的邻居块A和B。
在替代实施例中,使用相邻的已经遇到的块的群集中的非零系数的数目的加权平均。再次参考图2,在X的斜上方左侧的和在X的斜上方右侧的先前编码的块C和D也被包括。
上下文2和3:群集的大小以及块内群集的稀疏程度
第二和第三上下文包括邻居群集的大小和由在邻居非零量化系数群集之前的连续零值量化系数的游程长度指示的这种群集的稀疏程度。在一些实施例中,接下来要编码的量化系数群集的非零量化系数的游程长度的分 布是用块中的(一个或多个)最近编码的群集的非零量化系数的游程长度来预测的。另外,接下来要编码的系数群集之前的零值量化系数的游程长度的分布是用块中的所有先前编码的群集之中的零的最大游程长度来预测的,这里假定了量化变化系数的典型Z字形扫描排序。
上下文4:群集内的幅度
第四上下文包括正编码的非零幅度的群集内的先前编码的非零量化系数的幅度。再次假定由所使用的特定变换定义的朝着更高空间频率的量化系数的正常前向Z字形排序,并且考虑与其相反的排序。在一些实施例中,群集中的非零系数的幅度被按相反的Z字形扫描顺序来编码,并且特定群集中的剩余要编码的幅度的幅度的分布被用该群集中的先前编码的非零系数的最大幅度来预测。
对量化系数的序列编码的方法
图3示出了对图像块的变换系数的经排序序列编码的方法实施例的简化流程图,该方法例如是操作编码装置的方法,该编码装置例如是对经排序序列编码的处理系统。
步骤301包括根据固定量化方法(例如H.264/AVC的那种)对系数进行量化。如果在这里的一些描述中没有明确包括步骤301,则可假定变换系数已经根据固定量化方法被量化。
在一些实施例中,该方法是混合编码方法并且包括在303中选择断点来将系列划分成第一区域和第二区域。第一区域可以是整个序列,即在一些实施例中只包括单个区域。
在305中,对于第一区域—如果不是混合或者断点在末尾处的话则是整个区域—该方法包括对事件的位置编码,每个事件包括一非零值量化系数,或者对于一些实施例包括一个或多个非零值量化系数的群集。编码包括局部地修改量化以减少需要编码的事件的数目并且减少所得到的经编码比特流的长度,而不严重增大失真,局部修改包括一种或多种量化修改方法,其中包括由量化修改2、量化修改3、量化修改4和量化修改5 构成的集合中的至少一种。
注意,如果包括量化修改1,则包括至少两个量化修改方法。
在上下文适应性VLC编码的情况下,编码使用多个预定的VLC映射(例如VLC表格)之一,包括最初从该组预定VLC映射中选择初始位置VLC映射(例如VLC表格),并且当不是初始情况时,根据一个或多个位置VLC选择标准来判定是否切换代码映射并且在位置VLC映射(例如表格)之间切换,所述标准包括至少一个基于上下文的选择标准。对第一区域中的所有事件执行步骤305。
在307中,对于第一区域,如果在该区域中有剩余幅度待编码,或者如果步骤307是在所有事件的所有位置编码已发生之前执行的,则如果在编码的事件中有剩余幅度待编码,例如在包括非零值幅度的群集的事件的情况下,如果事件的位置编码留下了任何非零幅度值待编码,则对待编码的非零值的幅度编码。这可逐个事件地进行,或者在一些实施例中可在所有事件的所有位置编码已发生之后进行。在一些上下文适应性实施例中,群集中的待编码的幅度的幅度编码是按与系列的原始排序相反的顺序执行的,并且是根据多个幅度VLC映射(例如VLC表格)之一的,其中包括最初选择一幅度VLC映射(例如表格),然后根据一个或多个幅度VLC选择标准在多个幅度VLC映射(例如表格)之间切换,所述标准包括至少一个基于上下文的标准;对于所有待编码的幅度重复。步骤307从而对第一区域中的所有其位置在步骤305中被编码的事件进行了编码。
在309中,该方法包括对非0幅度的符号编码。
在311中,该方法包括串接码字以形成经编码的比特流并且输出或存储该比特流。
如果该方法包括定义一个或多个断点以定义两个或更多个区域,例如两个区域,则该方法包括在313中对剩余的(一个或多个)区域中的系数编码。在一些实施例中,传统的2D可变长度编码被用于对第二区域编码。
不同的实施例包括不同位置和不同幅度编码方法。编码方法可以是上下文适应性的。
注意,包括量化修改1的那些实施例还包括至少一个其他修改方法。
图4示出了一些实施例的简化流程图,这些实施例包括利用多个三维位置VLC映射对3D位置-幅度事件编码,其中对表格进行基于上下文的切换,并且局部地修改量化以便减少要编码的事件的数目并且减少所得到的经编码比特流的长度,而不严重增大失真。
在混合编码的情况下,该方法包括选择断点来将系列划分成第一区域和第二区域的步骤303。第一区域可以是整个区域。
该方法包括在403中最初利用一个或多个3D VLC表格选择标准来选择三维VLC映射(例如3D VLC表格)用于第一群集。考虑码字是从特定块的图像块形成的。在一个实施例中,最初,步骤403包括根据一个或多个初始VLC选择标准来选择初始3D VLC表格。在一些实施例中,初始VLC表格是基于一个或多个初始位置标准来选择,所述初始位置标准包括是该特定块的邻居的一个或多个先前编码的块中的非零系数的平均数目,即基于上述第一上下文。在替代实施例中,一个或多个替代的或额外的其他编码参数被用于选择第一表格。这种其他编码参数包括以下各项中的一个或多个:量化步长,例如表示为QP的量化参数,和/或该特定块是帧内编码的块还是帧间编码的块。
该方法包括在405中,如果不是第一群集,和基于上下文的方法,则确定是否切换表格并根据一个或多个3D VLC表格选择标准来选择下一个三维VLC映射(例如3D VLC表格)以用于下一个群集,并且根据该三维VLC映射对三维联合位置和幅度事件进行联合编码,该三维联合位置和幅度事件包括非零值量化系数的群集和单个结尾的零值系数—除非序列的末尾结束于非零值系数—该事件由一组三个参数描述,这三个参数包括:1)在该群集之前的在前连续零值量化系数的数目,这可以是零,2)该群集中的非零值量化系数的数目,以及3)第三参数,该第三参数对于一些实施例在一些情况下指示出在该群集的末尾处、在该群集的最终零值量化系数之前的连续拖尾幅度1量化系数的数目。在一些实施例中,在该群集中只有一个非零幅度的情况下,第三参数指示该非零幅度系数的幅度。在一些实施例中,在该群集中有两个非零幅度系数的情况下,该第三 参数指示出该群集中的两个非零幅度系数中的哪一个(如果有的话)具有不是1的幅度。
405中的编码包括局部地修改量化以减少需要编码的事件的数目并且减小所得到的经编码比特流的长度,而不严重增大失真,局部修改包括一种或多种量化修改方法,其中包括由量化修改2、量化修改3、量化修改4和量化修改5构成的集合中的至少一种。局部修改考虑到了并且因此也影响了表格切换,并且因此编码也考虑到了并且因此也影响了表格切换,以便减少经编码的比特流中的比特的数目。
注意,如果包括量化修改1,则包括至少两个量化修改方法。
除了最初以外,包括选择下一3D VLC映射(例如编码表格)的步骤405发生在对当前系数群集编码之后并且在对下一群集编码之前。在一些实施例中,3D VLC映射选择标准包括两个基于上下文的参数中的一者或两者:最近编码的群集的非零系数的游程长度,即上述的第二上下文,和/或所有先前编码的群集的零系数的最大游程长度,即上述的第三上下文。在一些实施例中,当这些基于上下文的参数中的任一个的值变化时,考虑表格切换,并且根据预定义的变化检测标准,例如对于每个基于上下文的参数使用阈值,来作出切换的判决。
图5示出了被展现为表格2的对3D VLC表格的基于阈值的选择的一个示例,表格2示出了该方法如何根据两个上下文相对于联系两个预定义的3D表格切换阈值在何处来为三维联合位置和幅度编码选择被表示为VLCqr的36个VLC表格之一,其中整数q,r=0,1,...,5,所述阈值是:先前群集的最大零游程长度阈值,表示为zi,其中i=1,2,...,5,和最近群集的非零游程长度Rnz_pre阈值,表示为nj,其中j=1,2,...,5,其中对于i<j,0<zi<zj<63并且1<ni<nj<64。
在一些实施例中,3D VLC表格切换被限制到从左上到右下的单调方向。换言之,表格切换发生在Rz_max增大或者Rnz_pre减小并且该值根据阈值进入新范围时。在一些实施例中,图5中所示的2维表格切换被限制到:基于非零游程长度参数,每次从左到右最多一步,而基于零游程长度参数,允许每次从上到下多步。
在对于该群集有幅度剩余待编码的情况下,在剩余系数的上下文敏感幅度编码的情况下,该方法包括在407中根据一个或多个初始幅度VLC选择标准来选择初始1D幅度VLC映射(例如1D VLC表格),所述标准包括至少一个基于上下文的标准。该选择在一些实施例中是从一组预定的1D VLC表格中作出的。在一些实施例中,初始一维幅度VLC表格是基于经编码的拖尾1事件和系数群集落入的空间频率范围来确定的。直觉上,有利于较大幅度的VLC表格与在低频区域中有利于较低幅度的VLC表格相比在低频区域中更有可能是良好选择,尽管一般来说,较低的幅度值在量化之后更有可能出现。
在409中,该方法包括按相反频率顺序对群集中的下一个(最初是第一个)仍待编码的幅度进行编码,即,对该群集中未被联合事件编码所编码的任何非零值系数的下一个幅度进行编码,例如,对该群集中的不是幅度1拖尾系数的下一个待编码非零值系数进行编码。在一些实施例中,这是通过以下方式来执行的:利用1维幅度VLC表格将群集中的除了紧挨在幅度1拖尾系数之前的那个以外的下一个待编码系数按其幅度进行编码,并且针对(幅度值减1)利用另一1D VLC对该紧挨之前的那个进行编码。
对于基于上下文的幅度VLC,下一个待编码的幅度最初是根据初始幅度VLC表格的,然后是根据接下来选择的幅度VLC表格的。如果还有至少一个另外的幅度要编码(413),则该方法返回到407,在其中判定是否应当进行表格切换到一不同的1D幅度VLC表格。如果是,则选择新的表格。
群集的步骤407、409和411(或者409和411,如果幅度编码不是上下文适应性的话)按与系列的原始排序相反的排序朝着群集的第一幅度前进。对于紧挨在幅度1拖尾系数之前的一个系数编码(幅度减1)可减小代码长度,因为已知其大于1。
在一些实施例中,用于判定是否切换表格的上下文是基于一个或多个VLC映射选择标准的。在一些实施例中,VLC映射选择标准包括先前编码的系数的幅度。在其他实施例中,标准包括群集中的所有先前编码的系 数的最大值,即上述第三上下文。一个实施例包括基于一组预定的阈值定义一组一维幅度编码表格,其中对于群集中的先前编码的幅度的最大值的相应一组范围中的每一个范围有一个表格。
在步骤409中,最初利用所选择的初始表格,一维幅度编码开始于将群集的最末非1幅度作为(幅度减1)编码,并且按从最低到最高空间频率的相反排序,例如按与用于变换系数的二维块的Z字形扫描顺序相反的顺序,朝着群集的第一幅度前进。
在群集的所有幅度都已被编码之后,在413中,非0幅度的符号被编码。流程图要素403至413对于第一区域中的所有群集执行(415)。
如果该方法包括定义一个或多个断点以定义两个或更多个区域,例如两个区域,则该方法在413中进而对(一个或多个)剩余区域中的系数编码。在一些实施例中,传统的2D可变长度编码被用于对第二区域编码。
该方法包括串接码字以形成经编码的比特流,并且输出或存储该比特流。
在替代实施例中,定义三维编码的事件的第三参数包括,对于至少一个群集长度,例如群集长度2,群集中的哪个系数具有幅度1的指示。在另一实施例中,在群集长度是1的情况下,第三参数包括对一个非0量化幅度的幅度的指示。如何修改以上所述和图4中的方法以容适这种3D编码将是本领域的技术人员可清楚的,并且在US 12/030,821中更详细描述,但没有基于上下文的VLC表格切换。
注意,因为剩余幅度的编码是独立于位置编码过程的并且是对每个系数群集单独执行的,所以其可在群集的位置编码之后立即执行,如图4的流程图中所示,或者在替代实施例中,在所有系数群集的位置被编码之后执行。图6示出了包括在所有群集的位置已被编码之后执行幅度编码的一个这种实施例的简化流程图。步骤607进行,直到所有群集的位置编码都已发生为止—如果是具有多个区域的混合编码的话则是在第一区域中。参见第一区域结束判决607和循环返回。包括流程图要素609、611、613、615和617的群集循环对第一区域中的每个群集重复,以对群集中的所有剩余的待编码幅度进行编码,直到不再遇到另外的群集为止。这种循 环包括初始幅度编码循环,该初始幅度编码循环包括流程图块611、613和615。一维幅度编码开始于将群集的最末非1幅度作为(幅度减1)编码,并且按从最高到最低空间频率的相反排序,例如按与用于变换系数的二维块的Z字形扫描顺序相反的顺序,朝着群集的第一幅度前进。
首先完成位置编码的这种实施例具有如下优点,即提供了另一个可能的上下文来用于判定是否切换表格:该块的经排序系列中的所有量化系数的分布。例如,如果在该经排序系列中有大量非零量化系数,那么直觉上,在前几个系数群集中有相对大的幅度的可能性更高。一个方法利用此上下文来选择初始幅度VLC。发明人发现,与在初始群集被编码之后执行初始表格选择相比这可提供更好的性能。
假定上下文适应性幅度编码,在609中,对于下一群集,最初是第一群集,如果有非1幅度剩余待编码,则根据初始1D表格选择标准,例如群集的空间频率位置,来选择初始1D幅度VLC表格。在611中,利用最近选择的—最初是第一个—1D幅度VLC表格来对下一群集的下一幅度编码。在对每个幅度编码之后,如果还有更多幅度要编码(613),则在615中基于一个或多个VLC映射选择标准来作出表格切换判决。在一些实施例中,VLC映射选择标准包括先前编码的系数的幅度。在其他实施例中,标准包括所有先前编码的系数的最大值。一个实施例包括基于一组预定的阈值定义一组一维幅度编码表格,其中对于先前编码的幅度的最大值的相应一组范围中的每一个范围有一个表格。
该方法随后前进到对下一个待编码的幅度编码。
与图4的情况中一样,在619中,第一区域中的非0幅度的符号被编码。如果该方法包括定义一个或多个断点来定义两个或更多个区域,例如两个区域,则该方法在313中进而对(一个或多个)剩余区域中的系数编码。在一些实施例中,传统的2D可变长度编码被用于对第二区域编码。
该方法包括串接码字以形成经编码的比特流,并且输出或存储该比特流。
应当注意,上下文适应性位置编码过程,例如图4的405,以及上下文适应性幅度编码过程,例如图4的407/409,是可分离的,并且可各自 被连同其他类似方法来采用。更具体而言,这里例如在图4和6中描述的上下文适应性一维幅度VLC可与一种不同的位置编码方案相结合,例如通过引用并入的申请US 12/016,441中描述的一维双路位置编码方案,或者通过引用并入的申请US 12/016,441中描述的2D上下文适应性方法。或者,这里例如在图4和6中描述的3D上下文适应性位置编码方法可与一种不同的幅度编码方案相结合,例如通过引用并入的申请US 12/016,441中描述的多维上下文适应性幅度编码方法。每个这种不同的实现方式具有不同的编码性能和计算要求。
还要注意,3D位置-幅度事件编码包括确定是否切换表格以及如果切换则选择接下来要使用的3D VLC表格。量化修改方法考虑并影响了表格切换以便最小化经编码的比特流中的比特数目。
考虑使用一种不同的上下文适应性位置编码方法的一个这种示例—使用一维双路位置编码。一些1D位置编码实施例遵循根据在非零值量化系数之前的任何连续零值系数的数目来对每个非零值系数的位置进行编码的惯例,所述数目可能是0。此参数在这里被表示为Run_z。在一些实施例中,包括了与上下文信息有关的两个成分。所包括的第一个上下文成分是先前编码的非零幅度量化系数的Run_z的最大值。所包括的第二个上下文成分是指示当前频率的索引—在变换的空间频率的范围被分解成各由一索引值表示的频率子带的情况下采取当前频率子带索引的形式。这指示出在位置编码过程中“我们位于何处”。将这两个上下文成分相结合提供了对系数位置的变化趋势的预测。编码方法的一个实施例基于这种预测来确定是否切换VLC表格。
图7示出了表格3,表格3以示例方式示出了在一个实施例中如何基于非零值之前的零值量化系数的先前最大游程(Run_z)和当前频率索引成分来选择VLC表格。在图7中,VLCpk,k=0,1,2,...表示用于位置编码的特定VLC表格,并且Ix、Ry表示分别为频率索引和先前最大Run_z选择的相应阈值。每个VLCp表格是一维代码映射,例如其中Run的每个值被指派以一可变长度码字的代码表格。
考虑使用一种不同的上下文适应性幅度编码方法的另一示例,例如通 过引用并入的申请US 12/016,441中公开的多类别幅度编码方法。为此,利用了以下事实:在对所有量化系数的位置编码之后,就知道了非零系列中的非零值系数的分布。此知识提供了用于对非零值系数的量化幅度(位阶(Level))编码的上下文信息。为了使用此上下文,位阶被划分成三个类别:如果非零值系数的前面和后面是零值系数或者前面是零和最终的量化系数,则其被分类为我们所称的“孤立”位阶;如果非零值量化系数的前面或者后面是零值量化系数,但不是前面和后面都是零值量化系数,则其被分类为我们所称的“与0相邻”位阶。第三类别是既不是孤立位阶也不是与0相邻的位阶。发明人注意到,在许多经排序系列中,孤立的或与0相邻的位阶更有可能具有小幅值,而前面并且后面是非零值系数的非零值系数更有可能具有较大的幅值。
与这三个类别相对应,对剩余待编码幅度的上下文适应性幅度编码的一个实施例包括三个阶段。在第一阶段中,提取并串接所有孤立的待编码位阶。遵循相反扫描顺序,串接的位阶系列被用一种3D VLC方法来编码,在该3D VLC方法中,每连续三个位阶被利用一个码字编码为3元组。在第二阶段中,剩余的一个或两个孤立的位阶被编码,与所有与0相邻的位阶一起,并且遵循与原始的渐增频率(例如Z字形排序)相反的系列顺序。在这种阶段中,每连续两个位阶被利用2D VLC方法来编码,并且如果存在任何最末(一个)位阶,则这样的最末位阶在第三阶段中与所有剩余的位阶一起被利用1D VLC方法来编码。在每个阶段内,使用多个VLC表格,并且对特定VLC的判定在一个实施例中是基于具有更高频率索引并且先前已编码的那些位阶的最大幅值的。
图8示出了编码的替代方法实施例的一个示例的流程图。图8中使用的一些标号可指代在其他附图中具有不同标号的步骤。该方法对经量化的变换系数的经排序系列进行编码。步骤803第一次对于系列的第一区域(可能是整个系列)发生,并且包括最初根据一个或多个初始联合VLC选择标准来选择3维联合VLC表格,所述标准例如是先前编码的邻居块中的非零系数的平均数目、量化步长、和/或从其确定系列的图像块是帧内编码的块还是帧间编码的块。重复805、813、815和817,直到第一区域 中没有更多系数需要编码为止。该方法包括在805中,在第一区域中,对各由连续非零值系数的群集定义的联合位置和幅度事件进行联合编码。每个事件由三个参数定义:该群集之前的零值系数的数目,该群集中的非零值系数的数目,以及第三参数,例如该群集中幅度为1的拖尾系数的数目,其中编码是根据所选择的3维联合VLC表格的。805中的编码包括在根据一个或多个联合VLC切换标准确定是否切换联合VLC表格时,包括一个或多个基于上下文的联合VLC切换标准。如果确定要切换表格,则根据一个或多个联合VLC选择标准来选择3维联合VLC表格,所述标准例如是先前编码的邻居块中的非零系数的平均数目、量化步长、和/或该块是帧内编码的块还是帧间编码的块。否则,如果不进行表格切换,则使用相同的表格。805中的编码包括局部地修改量化以减少需要编码的事件的数目并且减小所得到的经编码比特流的长度,而不严重增大失真,局部修改包括一种或多种量化修改方法,其中包括由量化修改2、量化修改3、量化修改4和量化修改5构成的集合中的至少一种。量化修改方法考虑并影响了表格切换以便最小化经编码的比特流中的比特数目。
该方法包括在813中利用上下文适应性幅度编码方法对群集中的未通过联合事件编码进行编码的任何非零值系数的(一个或多个)幅度进行编码。该方法包括在815中对符号进行编码。在817中,确定是否到达了第一区域的末尾。如果没有,则过程返回到805以对下一事件的位置进行联合编码,否则,如果已到达了第一区域的末尾,并且在系列中有多于一个区域的情况下,例如对于混合可变长度编码,则剩余的(一个或多个)区域中的(一个或多个)量化系数在819中被编码。
图9示出了编码的方法的另一示例性实施例的流程图。图9中使用的一些标号可指代在其他附图中具有不同标号的步骤。该方法开始于901中,并且是用于来自图像数据块的经量化的变换系数的经排序系列的。步骤903至917对于系列的一个区域发生—此区域可以是整个系列。该方法包括在903中编码第一区域中的下一联合位置事件,例如非零值幅度的下一群集。该编码包括局部地修改量化以减少需要编码的事件的数目并且减小所得到的经编码比特流的长度,而不严重地增大失真,局部修改包括 一种或多种量化修改方法,其中包括由量化修改2、量化修改3、量化修改4和量化修改5构成的集合中的至少一种。注意,如果包括幅度1,则包括至少两个量化修改方法。
该方法在905中继续,对于每个群集,或者对于所有幅度,按相反的排序,对幅度编码。在群集的情况下,该方法包括在905中最初根据一个或多个初始幅度VLC选择标准来选择1维幅度VLC表格,所述标准例如是先前编码的邻居块中的非零系数的平均数目、量化步长、和/或该块是帧内编码的块还是帧间编码的块。该方法包括在907中,对于每个群集,按群集内的系数的相反排序:根据所选择的1维幅度VLC表格对待编码的幅度进行编码。该方法包括在909中根据一个或多个幅度VLC切换标准确定是否切换幅度VLC表格,所述标准包括一个或多个基于上下文的幅度VLC切换标准。如果确定要进行表格切换(911),则在913中根据一个或多个初始幅度VLC选择标准来选择1维幅度VLC表格,所述标准例如是先前编码的邻居块中的非零系数的平均数目、量化步长、和/或该块是帧内编码的块还是帧间编码的块。如果确定不进行表格切换,则跳过913。该方法包括在915中对非零幅度量化系数的符号编码。在917中确定是否到达了第一区域的末尾。如果否,则过程返回到903。否则,如果到达了第一区域的末尾,并且在该系列中有多于一个区域的情况下,例如对于混合可变长度编码,则(一个或多个)剩余区域中的(一个或多个)量化系数在919中被编码。
分离量化(包括局部修改)和编码
注意,如果量化修改3和量化修改4都未被包括,则量化修改可与编码相分离。因此,在不包括量化修改3或量化修改4的一些实施例中,该方法包括:
I)例如通过具有特定量化参数的传统固定量化方法对变换系数的经排序系列进行量化以生成中间量化系数的经排序序列。
II)按预定的顺序检查中间量化系数的经排序序列并且根据量化修改1、量化修改2和量化修改5中的一个或多个应用局部量化修改以生成 中间量化系数的经排序序列。
II)根据可变长度编码方法对中间量化系数的经排序序列进行编码,所述可变长度编码方法例如是US 12/336,364、US 12/016,441或US 12/030,821中描述的方法之一。
率失真优化
替代实施例包括编码方法、装置、包含在有形计算机可读存储介质中的软件以及存储当被执行时使得编码方法被执行的指令的有形计算机可读存储介质。编码方法包括使用简化的率失真(rate-distortion)优化—率失真优化的次优方案—的局部可变量化。
考虑n2个经排序的变换系数的n×n块。将该n×n块的未量化的变换系数表示为集合T=(t1,t2,...,tn),将经量化的系数表示为集合Q=(q1,q2,...,qn),并且将重建的(解量化的)变换系数表示为集合T′=(t1′,t2′,...,tn′)。于是,最优率失真量化的目标是确定使率失真成本函数(D+λR)最小化的量化,即找到使(D+λR)最小化的集合Q*
其中R是编码方法例如熵编码方法或混合VLC方法用于从T确定量化系数块Q的比特率,D是原始变换系数T与经解量化的变换系数T′之间的失真,并且λ是规定失真D和率R的相对重要性的参数。
这个一般的率失真优化框架可用于对任何种类的量化方案和熵编码方案优化率失真性能。量化和熵编码需要被联合对待,并且率失真优化的量化对于不同的熵编码方案是不同的。可通过穷举搜索来解出率失真优化的量化。然而,发明人发现,由于其相对高的计算复杂度,这是不现实的。
为了降低计算复杂度,同时保持效率,发明人设计了一种简化的搜索方法,该搜索方法在应用到VLC方法,例如混合VLC,例如上下文适应性混合VLC时,生成了率失真优化问题的次优的、但仍有用的解答。该方法包括仅对小幅度系数—会被诸如H.264/AVC中使用的量化方法之类的标准常规量化方法量化为具有幅度0、1或2的那些系数—执行局部可变量化。在3D位置-幅度事件编码的情况下,这种经修改的量化在3D混 合VLC的情况下影响3D位置-幅度和1D幅度代码事件生成并且在上下文适应性混合VLC的情况下还影响如上所述的代码表格切换。
图10示出了基于预定的可变长度编码方法(例如混合VLC方法,例如上下文适应性混合VLC)来执行联合量化和可变长度编码的方法的实施例的流程图。该方法开始(1001)并且是对图像块的变换系数的经排序系列执行的。对于第一区域,该方法包括1在1003中使用对于被固定量化方法量化为具有大于2的幅度的所有系数使用固定量化方法(例如H.264/AVC量化)的量化结果。该方法还包括在1005中对于剩余系数选择利用预定的可变长度编码方法使率失真函数例如(D+λR)最小化的量化值,其中具有0和被固定量化方法量化为1的最大系数幅度之间的幅度的任何系数被允许被量化为0或1,并且具有大于被固定量化方法量化为幅度1的最大系数幅度且小于被固定量化方法量化为幅度2的最大系数幅度的幅度的任何系数被允许被量化为1或2。在1007中,该方法包括对于在1005中获得的量化系数利用预定义的可变长度编码方法生成码字。注意,在一些实施例中,等于被固定量化方法量化为幅度2的最大系数幅度的任何系数也被允许被量化为1或2。
用a1表示被量化为幅度1的最大系数,并且用a2表示被固定量化方法(例如被标准H.264/AVC量化)量化为幅度2的最大系数。该方法的实施例包括以下三个步骤:
步骤1:对于比被固定量化方法量化为幅度2的最大系数幅度更大的任何变换系数,即对于任何qi∈(a2,∞),i=1,...,64,利用固定量化方法(例如标准H.264/AVC量化)来量化该系数。
步骤2:对于具有在0和被固定量化方法量化为1的最大系数幅度的幅度的任何系数,即对于qi∈(0,a1],i=1,...,64,允许量化系数具有量化幅度0或量化幅度1,并且对于具有大于被固定量化方法量化为幅度1的最大系数幅度并且小于或等于被固定量化方法量化为幅度2的最大系数幅度的幅度的任何系数,即对于qi∈(a1,a2],i=1,...,64,允许量化系数具有量化幅度1或量化幅度2。从而,如果有N个系数具有在范围[0,a2]中的幅度,则存在可能量化幅度的2N个组合。
步骤3:对于所有2N个组合,计算并比较率失真成本D+λR,以找出最佳情况,D+λR是利用预定义的VLC方法(例如混合VLC方法,比如上下文适应性混合VLC)计算的。最佳情况生成量化系数集合Q。对于这种Q的D+λR提供了所得到的可变长度码字。
解码
虽然以上描述大多是关于编码方法的,但本领域的技术人员将会理解,这里的描述也导向对经这里描述的任何编码实施例编码的比特流进行解码的解码方法和装置。解码方法包括接受包括由上述编码方法编码的码字的比特流,其中包括识别比特流中的码字并且对码字解码。利用VLC表格来对码字解码。对于上下文适应性VLC方法,用于解码的VLC表格是根据如编码中使用的一个或多个基于上下文的选择标准来选择的。因为任何经解码的信息项在解码过程都可被编码器使用,所以在对码字的解码期间,任何基于上下文的选择标准都是已知的或者可从一个或多个先前解码的信息项推导出。例如,任何表格切换都使用先前解码的系数的信息,例如与正编码的块相邻的(一个或多个)块和/或正解码的块内的先前解码的系数的信息,在解码方法中根据与编码方法所用相同的标准包括对于特定码字使用了哪个VLC表格。
在编码方法是混合方法以使得系列包括第一区域和一个或多个其他区域的情况下,编码方法还包括对(一个或多个)剩余区域中的系数编码。解码方法还包括对码字中是剩余区域的那些解码。
装置实施例
特定实施例包括一种装置,该装置包括:编码器,该编码器被配置为对图像数据块的变换系数的经排序系列中的非零值系数的群集的位置和幅度进行编码,该系列具有最可能出现的幅度,例如0,和至少一个其他幅度,其中包括第二可能出现的幅度,例如1。该装置包括量化器和量化修改器。对于上下文适应性编码,编码器包括联合编码器,该联合编码器被配置为在系列的第一区域中对联合位置和幅度事件编码,每个联合位置和 幅度事件由连续非零值系数的群集定义,每个事件由三个参数定义:该群集之前的零值系数的数目,该群集中的非零值系数的数目,以及指示出该群集中具有幅度1的拖尾非零值系数的数目的第三参数,其中编码是根据3维联合VLC表格的。在一些实施例中,对于群集长度2,第三参数指示出两个量化系数中的哪一个具有幅度1。在一些实施例中,对于群集长度1,第三参数指示出非零幅度的值。联合编码器包括量化修改器,该量化修改器被配置为局部地修改由量化器生成的量化以减少需要编码的事件的数目并且减小经编码比特流的长度,局部修改包括一种或多种量化修改方法,其中包括由量化修改2、量化修改3、量化修改4和量化修改5构成的集合中的至少一种。
该装置还包括幅度编码器,该幅度编码器被配置为对未被联合编码所编码的非零值系数编码,例如对除幅度1拖尾系数以外编码。这种幅度包括除幅度1以外其次有可能出现的幅度,即幅度2。在一些实施例中,系数幅度编码器对于指示幅度的每个值使用1D VLC。一个实施例对除了与拖尾的幅度1系数相邻的以外的非零值系数分别编码,然后编码一值,即相邻非零系数的(幅度值减1),因为该系数具有大于1的幅度。
该装置还包括符号编码器,该符号编码器被配置为对群集中的非零值系数的符号进行编码。
利用混合可变长度编码方法进行编码的编码器的一个实施例被配置为在对于经排序系列定义了两个或更多个区域的情况下对剩余区域的系数编码。
编码器还包括串接器,该串接器被配置为串接所得到的码字。
图11示出了包括装置1100的实施例,该装置1100被配置为实现如这里所述(例如如图3中所述)的编码方法。装置1100包括处理系统1103,该处理系统1103包括一个或多个处理器1105和存储器1107。该装置被配置为接受未经量化的变换系数的系列,或者在另一实施例中接受由固定量化方法量化的量化变换系数的经排序系列。在图11中示出了单个处理器,并且本领域的技术人员将会明白,这可代表若干个处理器。类似地,示出了单个存储器子系统1107,并且本领域的技术人员将会明白,存 储器子系统可包括不同元件,例如RAM、ROM等等。此外,存储器子系统意图包括任何非易失性存储器存储装置,例如磁或光存储组件。计算机程序1109被包括并加载到存储器1107中。注意,在任何时刻,程序中的一些可在存储器子系统的不同部分中,这是本领域的技术人员将会理解的。程序1109包括指令,用于指令处理器对于第一区域并且如果是混合编码方法还对于剩余区域,实现量化器(在未经量化的输入的情况下),并且在不同的版本中实现这里描述的各个不同编码方法,包括各个不同的位置编码方法和各个不同的幅度编码方法以及量化修改方法中的任何一种。在所示出的实施例中,该方法使用存储器子系统1107中的一个或多个编码表格1111。
图12示出了被配置为对经预定义的编码方法编码的比特流进行解码的解码器的一个实施例。该装置包括输入缓冲器1201,该输入缓冲器1201被配置为接受经压缩方法编码的比特流,该压缩方法包括这里描述的任何编码方法实施例。
缓冲器的输出充当码字识别器1203的输入。元件1203在基于上下文的编码的情况下是码字识别器和上下文确定器1203,该码字识别器和上下文确定器1203接受输入比特流的比特并且被配置为确定码字来自哪个编码表格,例如基于上下文确定。解码器1205耦合到码字识别器和上下文确定器1203,并且被配置为由码字识别器识别出的码字确定数据,对于这里描述的任何位置编码方法,其包括可依据所使用的位置编码来确定非零或零值系数的位置的码字识别器。码字识别器还识别对编码方法所编码的其他参数编码的其他码字,包括非零值,拖尾系数的数目的指示,等等。码字识别器和上下文确定器1203还提供信息以使得解码器1205能够确定使用哪个代码表格,该代码表格被用作解码表格。在一些实施例中,解码器1205包括查找设备,该查找设备查找存储器1207中存储的适当解码表格。该表格为码字集合的码字中的至少一些提供事件。其他码字可包括“转义”码,使得解码通过不是表格查找方法的方法进行。
虽然在图12所示的实施例中,存储器被示为与查找设备(解码器)1205相分离,但本领域的技术人员将会理解,在其他实施例中,查找设备 1205包括用于表格的存储器,并且这种其他实施例被包括在此处。
图13示出了包括装置1300的另一实施例,该装置1300被配置为实现这里描述的可变长度编码方法的解码器。解码装置1300包括处理系统1303,该处理系统1303包括一个或多个处理器1305和存储器1307。在图13中示出了单个处理器,并且本领域的技术人员将会明白,这代表若干个处理器。类似地,示出了单个存储器子系统1307,并且本领域的技术人员将会明白,存储器子系统可包括不同元件,例如RAM、ROM等等。此外,存储器子系统意图包括任何非易失性存储器存储装置,例如磁或光存储组件。计算机程序1309被包括并加载到存储器1307中。注意,在任何时刻,程序中的一些可在存储器子系统的不同部分中,这是本领域的技术人员将会理解的。程序1309包括指令,用于指令处理器在不同版本中实现码字的识别和解码。在所示出的实施例中,解码方法使用存储器子系统1307中的一个或多个编码表格1311。存储器子系统的一部分也可作为用于包括要解码的码字的传入比特流的缓冲器。
其他实施例
其他实施例包括被编码在一个或多个有形介质中供执行并且在被执行时可操作以执行这里描述的任何编码方法的逻辑。本领域的技术人员根据这里的描述将清楚如何实现这种逻辑。
其他实施例包括被编码在一个或多个有形介质中供执行并且在被执行时可操作以执行这里描述的任何解码方法的逻辑。本领域的技术人员根据这里的描述将清楚如何实现这种逻辑。
其他实施例包括被编码在一个或多个计算机可读介质中并且在被执行时可操作以执行这里描述的任何编码方法的软件。本领域的技术人员根据这里的描述将清楚如何实现这种软件。
其他实施例包括被编码在一个或多个计算机可读介质中并且在被执行时可操作以执行这里描述的任何解码方法的软件。本领域的技术人员根据这里的描述将清楚如何实现这种软件。
其他实施例包括其上编码有一组指令的计算机可读介质,所述指令在 被处理系统的一个或多个处理器执行时使得执行这里描述的任何编码方法。
其他实施例包括其上编码有一组指令的计算机可读介质,所述指令在被处理系统的一个或多个处理器执行时使得执行这里描述的任何解码方法。
这里对于量化系数的系列使用的术语“系列”(series)有时被称为系数的“块”,并且也被称为系数的“系列”。有时使用系数的“序列”(sequence)这个术语。本领域的技术人员将会理解,这种术语可互换使用,并且本领域的技术人员根据上下文将清楚其含义。
另外,这里使用的术语“系数”通常指的是经量化的变换系数。
另外,在描述中,假定系列包括块的变换的DC系数和AC系数两者。本领域的技术人员将清楚如何修改这里描述的方法以只包括AC系数。
另外,在对示例性实施例的描述中,假定了系数的量化是使得零是最可能出现的幅度,1是第二可能出现的幅度,并且2是第三可能出现的幅度。当然,有可能以使得其他值或事件被用于最可能出现的一个或多个量化值并且不同的其他值或事件被用于其次可能出现的一个或多个量化值的方式进行量化。本领域的技术人员将会理解如何修改这里描述的技术和装置的细节以容适这种变体,并且这种变体当然欲被包括在本发明的范围内。
另外,本发明并不限于任何一种类型的体系结构或任何一种类型的变换编码。一些实施例中使用的变换是用于高规格(High Profile)的H.264/MEG-4AVC视频编码标准/草案标准中定义的8×8变换。其他实施例使用用于中国AVC标准的变换。其他实施例使用离散余弦变换(DCT)。其他变换也是可能的。另外,这里描述的块大小是8乘8,在替代实施例中也可使用其他块大小。
如果使用了帧间编码,那么本发明不依赖于任何特定类型的帧间编码,或者如果运动补偿被用于帧间编码,那么本发明也不依赖于任何特定类型的运动补偿,或者如果用于利用来自邻居块的信息估计块的像素,那 么本发明也不依赖于任何帧内估计。
注意,可变长度编码有时被称为熵编码或统计编码。
注意,术语“编码(coding)”和“编码(encoding)”在这里是可互换使用的。
在上述一些实施例中,没有包括符号数据。大多数变换产生正和负系数,并且码字的形成包括对任何非零值系数的符号的指示。在一个版本中,任何区域中的非零幅度的任何游程的符号信息被与每个幅度的信息添加在一起。在替代实施例中,任何区域中的非零幅度的任何游程的符号信息可按不同的形式被包括,例如被包括为符号的系列的代码。对符号编码的其他替代实施例也是可能的。
注意,在幅度编码的一些示例中,对于系数可以假定不同数目的可能的非零值。然而,本发明不限于任何数目的可能的量化值。
还要注意,术语“幅度”是不考虑符号的。因此,例如,值为+1和-1的系数都具有幅度1。
虽然这里描述的一个实施例包括存储编码表格的存储器,但其他实施例以不是表格的数据结构的形式存储编码信息,例如包括树的结构。也可使用其他数据结构。类似地,虽然这里描述的一个实施例包括存储解码表格的存储器,但其他实施例以用于解码的不是表格的数据结构的形式存储解码信息。
还要注意,本发明不依赖于用于任何编码方法的特定类型的可变长度编码,例如编码表格,并且例如对于霍夫曼编码和对于算术编码方法都可工作。另外,虽然描述了基于事件发生(也称为事件)的假定或先验的可能性对事件使用固定编码的实施例,即事件发生的可能性不变化,但其他实施例使用适应性编码,即可根据从实际系数收集的诸如直方图之类的统计数据而变化的编码。
除非另有明确声明,从以下论述清楚可见,可明白在整篇说明书中,使用诸如“处理”、“计算(computing)”、“计算(calculating)”、“确定(determining)”之类的术语的论述指的是计算机或计算系统或类似的电子计算设备的把被表示为物理(例如电子)量的数据操纵和/或变换 成类似地表示为物理量的另外数据的动作和/或过程。
以类似地方式,术语“处理器”可以指对例如来自寄存器和/或存储器的电子数据进行处理以将该电子数据变换成例如可存储在寄存器和/或存储器中的另外电子数据的任何设备或设备的一部分。“计算机”或“计算机器”或“计算平台”可包括一个或多个处理器。
注意,当描述包括若干个要素例如若干个步骤的方法时,除非明确声明,否则没有暗示这种要素例如步骤的排序。
这里描述的方法在一些实施例中可由一个或多个处理器执行,所述处理器接受编码在一个或多个计算机可读存储介质上的包含一组指令的计算机可读(也称为机器可读)逻辑,该组指令在被一个或多个所述处理器执行时执行这里描述的方法中的至少一种。任何能够执行规定要采取的动作的一组指令(顺序的或以其他方式的)都被包括。从而,一个示例是包括一个或多个处理器的典型处理系统。每个处理器可包括CPU、图形处理单元和可编程DSP单元中的一个或多个。处理系统还可包括存储器子系统,该存储器子系统包括主RAM和/或静态RAM,和/或ROM。可包括总线子系统用于组件之间的通信。处理系统还可以是具有由网络耦合的处理器的分布式处理系统。如果处理系统需要显示器,则可包括这种显示器,例如液晶显示器(LCD)或阴极射线管(CRT)显示器。如果需要手工数据输入,则处理系统还包括输入设备,例如字母数字输入单元(比如键盘)、指点控制设备(比如鼠标)等等中的一个或多个。这里使用的术语“存储器单元”,如果从上下文可以清楚,并且除非另有明确声明,则也涵盖了诸如盘驱动器单元之类的存储系统。处理系统在一些配置中可包括声音输出设备,以及网络接口设备。存储器子系统从而包括计算机可读存储介质,该介质被编码有逻辑(例如软件),该逻辑包括一组指令,以在被一个或多个处理器执行时使得执行这里描述的方法中的一个或多个。软件可存在于硬盘中,或者在其被计算机系统执行期间可完全或至少部分存在于RAM内和/或处理器内。从而,带有处理器的存储器和存储单元是其中编码有例如指令形式的逻辑的计算机可读存储介质的示例。
另外,计算机可读存储介质可形成或被包括在计算机程序产品中。
在替代实施例中,一个或多个处理器作为独立的设备操作,或者可连接例如联网到(一个或多个)其他处理器,在联网部署中,该一个或多个处理器在服务器-客户端环境中可作为服务器或客户端机器操作,或者在对等或分布式网络环境中可作为对等机器操作。该一个或多个处理器可形成个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、网络路由器、交换机或网桥、或者任何能够执行规定该机器要采取的动作的一组指令(顺序的或其他方式的)的机器。
注意,虽然一些附图只示出了单个处理器和承载包括指令的逻辑的单个存储器,但本领域的技术人员将会理解,以上描述的组件中的许多被包括了,但没有明确示出或描述,以免模糊本发明的方面。例如,虽然只示出了单个机器,但术语“机器”应当也被理解为包括单独或联合执行一组(或多组)指令以执行这里论述的方法中的任何一个或多个的机器的任何集合。
从而,这里描述的方法的每一种的一个实施例是采取其上编码有一组指令(例如计算机程序)的计算机可读介质的形式的,所述指令供一个或多个处理器执行,例如供作为编码器或解码器的一部分的一个或多个处理器执行。从而,本领域的技术人员将会明白,本发明的实施例可被体现为方法、诸如专用装置之类的装置、诸如数据处理系统之类的装置、或者计算机可读介质,例如计算机程序产品。计算机可读存储介质编码了包括一组指令的逻辑,该组指令当在一个或多个处理器上被执行时使得实现方法。因此,本发明的方面可采取以下形式:方法、全硬件的实施例、全软件的实施例、或者结合了软件和硬件方面的实施例。另外,本发明可采取其上编码有程序代码的计算机可读介质(例如,是计算机可读存储介质或者在计算机可读存储介质上的计算机程序产品)的形式。
将会理解,所论述的方法的步骤在一些实施例中是由执行存储装置中存储的指令的处理(即计算机)系统的适当的(一个或多个)处理器执行的。还将理解,本发明并不限于任何特定的实现或编程技术,本发明可利用任何适当的用于实现这里描述的功能的技术来实现。本发明不限于任何 特定的编程语言或操作系统。
整个本说明书中提及“一个实施例”或“一实施例”的意思是结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,出现在整个本说明书中各处的短语“在一些实施例中”或“在一实施例中”并不一定都指相同的实施例。另外,本领域的普通技术人员从本公开中可以清楚看出,在一个或多个实施例中,特定的特征、结构或特性可以按任何适当的方式组合。
类似地,应当理解,在以上对本发明的示例性实施例的描述中,本发明的各种特征有时被一起聚集在单个实施例、附图或其描述中,以便简化公开和帮助理解各个发明方面中的一个或多个方面。但是,这种公开方法不应被解释为反映了如下意图:即,请求保护的发明需要比在每个权利要求中明确记载的更多的特征。相反,如以下权利要求所反映的,本发明的方面的特征可以少于前面公开的单个实施例的全部特征。因此,具体实施方式后面的权利要求被明确地包含在具体实施方式中,并且每个权利要求自身作为本发明的独立实施例。
另外,本领域技术人员将会理解,虽然这里描述的一些实施例包括了其它实施例中包括的一些特征但没有包括其他特征,但是不同实施例的特征的组合也欲在本发明的范围内,并且形成不同的实施例。例如,在所附权利要求中,可以按照任何组合来使用任何请求保护的实施例。
另外,一些实施例在这里被描述为可由计算机系统的处理器或执行功能的其他装置实现的一种方法或一种方法的要素的组合。从而,带有用于执行这样的方法或方法的要素所必要的指令的处理器形成了用于执行所述方法或方法的要素的装置。另外,这里所描述的装置实施例的要素是用于实现该要素为了实现本发明而执行的功能的装置的示例。
在这里提供的描述中,阐述了许多具体细节。然而,要理解,没有这些具体细节也可实现本发明的实施例。在其他场合中,没有详细示出公知的方法、结构和技术以免模糊对这里的描述的理解。
就这里使用的而言,除另有指明,否则使用序数形容词“第一”、“第二”、“第三”等等来描述共同的对象只是表明在述及相似对象的不 同实例,而不是意图暗示如此描述的这些对象必然在给定的系列中,无论是时间上的、空间上的、排名上的,还是以任何其他方式的。
特此通过引用并入这里引述的所有公布、专利和专利申请。
本说明书中对现有技术的任何论述绝不应被认为是承认了这种现有技术是广泛知晓的、是公知的或者形成了本领域的常识的一部分。
在所附的权利要求和这里的描述中,术语“包括(comprising)”、“包括(comprisedof)”或“其包括(which comprises)”中的任何一个是开放术语,意思是至少包括接下来的要素/特征,但不排除其他的。从而,当在权利要求中使用时术语“包括”不应当被解释为限于其后列出的装置或要素或步骤。例如,“设备包括A和B”这个表述的范围不应限于设备仅由要素A和B构成。这里使用的术语“包含(including)”、“其包含(which includes)”或“该包含(that includes)”中的任何一个也是开放术语,意思也是至少包括该术语之后的要素/特征,但不排除其他的。从而,包含(including)与包括(comprising)是同义的,并且其意思就是包括。
类似地,要注意,术语“耦合”当在权利要求中使用时不应被解释为仅限于直接连接。可以使用术语“耦合”和“连接”及其派生词。应当理解,这些术语并不意图互为同义词。从而,“设备A耦合到设备B”这个表述的范围不应限于其中设备A的输出直接连接到设备B的输入的设备或系统。其意思是在A的输出和B的输入之间存在一路径,该路径可以是包括其他设备或装置的路径。“耦合”可以指两个或更多个元件发生直接物理或电气接触,或者两个或更多个元件没有直接与彼此接触,但仍与彼此合作或交互。
从而,虽然描述了被认为是本发明的优选实施例的内容,但是本领域技术人员将会认识到,在不脱离本发明的精神的情况下可以进行其他和进一步的修改,并且意图请求保护落在本发明的范围内的所有这样的改变和修改。例如,以上给出的任何公式仅代表可使用的过程。可以向框图中添加或从中删除功能,并且在功能块之间可交换操作。在本发明的范围内,可以对所述的方法添加或删除步骤。

Claims (11)

1.一种操作处理装置的方法,该方法包括:
对于图像数据块的变换系数的经排序系列的第一区域,其中所述排序根据变换从低空间频率到高空间频率,并且对于把系数量化成具有包括记为幅度0的最可能出现的幅度、记为幅度1的第二可能出现的幅度和至少一个其他幅度在内的幅度的量化值的固定量化方法,其中所述至少一个其他幅度包括记为幅度2的第三可能出现的幅度:
利用所述处理装置对所述第一区域和所述经排序系列的任何其他区域进行量化和编码以形成经编码的比特流;以及
输出或存储所述经编码的比特流;
其中,所述第一区域的量化和编码使用一个或多个可变长度代码(VLC)映射,并且包括:
利用一个或多个位置VLC映射对所述第一区域中的事件的位置编码,位置被编码的每个事件包括正好一个具有不是幅度0的幅度的量化系数或者各自具有不是幅度0的幅度的量化系数的群集;并且
对将被固定量化为具有不是幅度0的幅度、并且其幅度未被事件的位置的编码进行编码的任何系数的幅度编码,对未经编码的幅度进行编码是根据一个或多个幅度VLC映射进行的,
其中,事件的位置的编码包括根据由第一量化修改方法、第二量化修改方法、第三量化修改方法和第四量化修改方法构成的集合的两个或更多个量化修改方法来修改所述固定量化方法的量化,
所述第一量化修改方法包括:
利用具有幅度0的量化系数替换量化系数,该量化系数否则将被固定量化为具有幅度1并且在固定量化系列中是孤立的,以及
利用具有幅度1的量化系数替换量化系数,该量化系数否则将被固定量化为具有幅度0并且在固定量化系列中是孤立的,
所述第二量化修改方法包括:
替换一对连续固定量化系数,该对连续固定量化系数开始于具有幅度0的第一量化系数、后跟具有幅度1的第二量化系数,该对之前是具有不是幅度0的幅度的一个或多个量化系数的序列并且之后是具有幅度0的一个或多个量化系数的序列,所述替换是根据哪种替换产生更短的经编码的比特流而用各自具有幅度0的一对量化系数或者各自具有幅度1的一对量化系数来替换,
所述第三量化修改方法包括:
替换一对连续固定量化系数,该对连续固定量化系数开始于具有幅度1的第一量化系数、后跟具有幅度0的第二量化系数,该对之前是具有幅度0的一个或多个量化系数的序列并且之后是具有不是幅度0的幅度的一个或多个量化系数的序列,所述替换是根据哪种替换产生更短的经编码的比特流而用各自具有幅度0的一对量化系数或者各自具有幅度1的一对量化系数来替换,
所述第四量化修改方法包括:
在位置事件中替换具有幅度2的固定量化值、后跟所述位置事件中具有幅度1的固定量化值的一个或多个系数的拖尾序列的量化系数,所述位置事件中在所述拖尾序列之后没有其他系数具有不是幅度0的幅度。
2.如权利要求1所述的方法,
其中,否则将被固定量化为具有所述第二可能出现的幅度并且在固定量化系列中是孤立的量化系数是如下量化系数:该量化系数具有所述第二可能出现的幅度,并且前面和后面是一个或多个具有所述最可能出现的幅度的量化系数的序列,该量化系数用具有所述最可能出现的幅度的量化系数替换,除了适用所述第二量化修改方法的下述情况以外:具有所述第二可能出现的幅度的孤立量化系数是开始于具有所述最可能出现的幅度的第一量化系数、后跟具有所述第二可能出现的幅度的第二量化系数的一对量化系数的一部分,并且
其中,否则将被固定量化为具有所述最可能出现的幅度并且在固定量化系列中是孤立的量化系数是如下量化系数:该量化系数具有所述最可能出现的幅度,并且前面和后面是一个或多个具有不是所述最可能出现的幅度的幅度的量化系数的序列,该量化系数用具有所述第二可能出现的幅度的量化系数替换,除了适用所述第三量化修改方法的下述情况以外:具有所述最可能出现的幅度的孤立量化系数是开始于具有所述第二可能出现的幅度的第一量化系数、后跟具有所述最可能出现的幅度的第二量化系数的一对量化系数的一部分。
3.如权利要求1所述的方法,
其中,对于所述第一区域的量化系数的量化修改是在对所述第一区域中的任何系数的任何编码之前执行的,量化修改形成中间量化系数的经排序序列的第一区域,并且所述第一区域的编码是对所述中间量化系数的经排序序列的第一区域执行的。
4.如权利要求1所述的方法,其中,事件的位置编码包括联合编码联合位置和幅度事件,每个联合位置和幅度事件由各自具有不是所述最可能出现的幅度的任何幅度的一个或多个连续系数的下一群集定义,每个联合位置和幅度事件由三个参数定义:群集之前的具有所述最可能出现的幅度的系数的可能为零的数目、群集中的具有不是所述最可能出现的幅度的幅度的系数的数目、以及与群集中的具有不是所述最可能出现的幅度的幅度有关的第三参数,对被位置编码的每个群集的编码是根据至少一个三维联合VLC映射进行的。
5.如权利要求4所述的方法,其中,对于至少一个群集长度,所述第三参数包括对群集中各自具有所述第二可能出现的幅度的连续拖尾系数的数目的指示。
6.如权利要求5所述的方法,其中一者或两者:
A)对于至少一个群集长度,所述第三参数包括对群集中的哪些系数具有所述第二可能出现的幅度的指示;以及
B)对于等于一的群集长度,所述第三参数包括对群集中具有不同所述最可能出现的幅度的幅度的系数的幅度的指示。
7.如权利要求1所述的方法,
其中,对所述第一区域中的事件的位置的编码使用多个第一区域VLC映射,对位置编码包括最初选择初始位置VLC映射,然后根据一个或多个位置VLC选择标准在位置VLC映射之间切换,所述一个或多个位置VLC选择标准包括至少一个基于上下文的位置VLC选择标准;并且
其中,对仍待编码的任何幅度的编码是根据多个幅度VLC映射之一进行的,并且包括最初选择幅度VLC映射,并且根据一个或多个幅度VLC选择标准在所述多个幅度VLC映射之间切换,所述一个或多个幅度VLC选择标准包括至少一个基于上下文的幅度VLC选择标准,
其中,基于上下文的选择标准指的是在编码期间从一个或多个先前编码的信息项得知或可推导出的标准。
8.如权利要求1所述的方法,
其中,事件的位置编码包括联合编码联合位置和幅度事件,下一联合位置和幅度事件由各自具有不是所述最可能出现的幅度的任何幅度的一个或多个连续系数的下一群集定义,每个联合位置和幅度事件由三个参数定义:群集之前的具有所述最可能出现的幅度的系数的可能为零的数目、群集中的具有不是所述最可能出现的幅度的幅度的系数的数目、以及与群集中的具有不是所述最可能出现的幅度的幅度有关的第三参数,
其中,对被位置编码的第一群集的编码是根据初始三维联合VLC映射进行的,该初始三维联合VLC映射是根据一个或多个初始位置VLC选择标准从一组三维联合VLC映射中选择的,所述一个或多个初始位置VLC选择标准包括至少一个基于上下文的初始位置VLC选择标准,并且每个其他群集的位置编码包括判定是否切换到另一个三维联合VLC映射并且在切换的情况下,根据三维联合VLC映射进行编码,该三维联合VLC映射是根据一个或多个位置VLC选择标准从所述一组三维联合VLC映射中选择的,所述一个或多个位置VLC选择标准包括至少一个基于上下文的位置VLC选择标准,
其中,仍待编码的任何幅度值的编码包括,对于其中有至少一个仍待编码的幅度的每个群集,按与所述系列的排序相反的排序,根据多个幅度VLC映射之一对下一个待编码幅度编码,所述幅度VLC映射最初是根据一个或多个初始幅度VLC选择标准选择的,所述一个或多个初始幅度VLC选择标准包括至少一个基于上下文的初始幅度VLC选择标准,然后在判定是否切换到所述多个幅度VLC映射中的另一个之后是根据一个或多个幅度VLC选择标准选择的,所述一个或多个幅度VLC选择标准包括至少一个基于上下文的幅度VLC选择标准。
9.一种操作第二装置以对经编码的比特流解码的方法,所述经编码的比特流包括一组串接的码字,所述方法包括:
识别所述比特流中的码字,所述码字是由利用多个VLC映射中的一个或多个对图像数据块的变换系数的经排序系列编码的编码方法形成的;以及
利用所述多个VLC映射中的一个或多个来对识别出的码字解码,
其中,所述经编码的比特流是由如任意以上权利要求中所述的方法形成的。
10.一种编码装置,包括:
量化器和编码器,被配置为利用多个可变长度代码(VLC)映射对图像数据块的变换系数的经排序系列进行量化和编码以形成经编码的比特流,其中所述排序根据变换从低空间频率到高空间频率,所述量化器和编码器被配置为执行如权利要求1到8中的任一项所述的方法。
11.一种解码装置,包括:
码字识别器,被配置为接受经编码的比特流并且识别所述比特流中的码字,所述码字是由利用多个VLC映射中的一个或多个对图像数据块的变换系数的经排序系列编码的编码方法形成的;以及
码字解码器,被配置为利用所述多个VLC映射中的一个或多个来对识别出的码字解码,
其中,所述经编码的比特流是由如权利要求1到8中的任一项所述的方法形成的。
CN201080045109.7A 2009-10-06 2010-09-29 用于图像和视频压缩的局部可变量化和混合可变长度编码 Active CN102550027B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/574,409 US8340448B2 (en) 2009-10-06 2009-10-06 Locally variable quantization and hybrid variable length coding for image and video compression
US12/574,409 2009-10-06
PCT/US2010/050720 WO2011043970A1 (en) 2009-10-06 2010-09-29 Locally variable quantization and hybrid variable length coding for image and video compression

Publications (2)

Publication Number Publication Date
CN102550027A CN102550027A (zh) 2012-07-04
CN102550027B true CN102550027B (zh) 2017-05-17

Family

ID=43086397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080045109.7A Active CN102550027B (zh) 2009-10-06 2010-09-29 用于图像和视频压缩的局部可变量化和混合可变长度编码

Country Status (4)

Country Link
US (1) US8340448B2 (zh)
EP (1) EP2486729B1 (zh)
CN (1) CN102550027B (zh)
WO (1) WO2011043970A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8204327B2 (en) * 2007-10-01 2012-06-19 Cisco Technology, Inc. Context adaptive hybrid variable length coding
US8340448B2 (en) * 2009-10-06 2012-12-25 Cisco Technology, Inc. Locally variable quantization and hybrid variable length coding for image and video compression
KR20130054408A (ko) 2010-10-05 2013-05-24 제너럴 인스트루먼트 코포레이션 지그재그 스캔에 의한 적응적 컨텍스트 모델 선택을 이용하는 코딩 및 디코딩
US9172963B2 (en) * 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
RS58952B1 (sr) * 2011-04-22 2019-08-30 Dolby Int Ab Postupak i uređaj za kompresiju i kodiranje podataka sa gubicima
US9826238B2 (en) * 2011-06-30 2017-11-21 Qualcomm Incorporated Signaling syntax elements for transform coefficients for sub-sets of a leaf-level coding unit
US8891616B1 (en) 2011-07-27 2014-11-18 Google Inc. Method and apparatus for entropy encoding based on encoding cost
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
JP5642105B2 (ja) * 2012-03-29 2014-12-17 京セラドキュメントソリューションズ株式会社 画像処理装置および画像形成装置
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US20140205199A1 (en) * 2013-01-23 2014-07-24 Qamarul Islam Storage Area and Temporal Based Optimized Run Length Codec For Classic JPEG Image Compression (SAT-BORL CODEC)
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
US9077372B1 (en) * 2013-04-30 2015-07-07 The United States Of America As Represented By The Secretary Of The Air Force Variable length phase factor quantizer
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
US9641721B2 (en) * 2014-12-18 2017-05-02 Kyocera Document Solutions Inc. Apparatus and method for processing image data with multiple flip-flop storages
US10250899B1 (en) 2017-09-22 2019-04-02 Qualcomm Incorporated Storing and retrieving high bit depth image data
EP3905202A4 (en) * 2018-12-26 2022-03-16 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING METHOD, THREE-DIMENSIONAL DATA DECODER METHOD, THREE-DIMENSIONAL DATA ENCODING DEVICE AND THREE-DIMENSIONAL DATA DECODER DEVICE
US11765366B2 (en) 2020-05-07 2023-09-19 Blackmagic Design Pty Ltd Method for processing transform coefficients
CN113727104B (zh) * 2020-05-22 2024-01-16 北京小米移动软件有限公司 编码方法及装置、解码方法及装置、以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159870A (zh) * 2007-11-12 2008-04-09 北京中星微电子有限公司 一种应急的jpeg压缩比特率控制装置和方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5703646A (en) * 1993-04-09 1997-12-30 Sony Corporation Picture encoding method, picture encoding apparatus and picture recording medium
US5677689A (en) * 1995-08-31 1997-10-14 Yovanof; Gregory S. Fixed rate JPEG compliant still image compression
JPH10164581A (ja) * 1996-12-03 1998-06-19 Sony Corp 画像信号符号化方法及び装置、信号記録媒体
JP4186242B2 (ja) * 1997-12-26 2008-11-26 ソニー株式会社 画像信号処理装置及び画像信号処理方法
JP3511893B2 (ja) * 1998-01-23 2004-03-29 日本ビクター株式会社 映像信号符号化方法及び装置
JP2003032677A (ja) * 2001-07-18 2003-01-31 Hitachi Ltd 動画像圧縮符号化装置
US7373013B2 (en) * 2003-12-23 2008-05-13 General Instrument Corporation Directional video filters for locally adaptive spatial noise reduction
EP1615447B1 (en) * 2004-07-09 2016-03-09 STMicroelectronics Srl Method and system for delivery of coded information streams, related network and computer program product therefor
GB0619570D0 (en) * 2006-10-04 2006-11-15 Univ Bristol Complexity scalable video transcoder and encoder
US8041131B2 (en) 2007-10-02 2011-10-18 Cisco Technology, Inc. Variable length coding of coefficient clusters for image and video compression
US8204327B2 (en) * 2007-10-01 2012-06-19 Cisco Technology, Inc. Context adaptive hybrid variable length coding
US8340448B2 (en) * 2009-10-06 2012-12-25 Cisco Technology, Inc. Locally variable quantization and hybrid variable length coding for image and video compression

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159870A (zh) * 2007-11-12 2008-04-09 北京中星微电子有限公司 一种应急的jpeg压缩比特率控制装置和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Joint Optimization of Run-Length Coding, Huffman Coding, and Quantization Table With Complete Baseline JPEG Decoder Compatibility;En-hui Yang ,etc.;《IEEE TRANSACTIONS ON IMAGE PROCESSING》;20090131;第18卷(第1期);正文第63,66-67页 *
Scene Adaptive Coder;WEN-HSIUNG CHEN,etc.;《IEEE TRANSACTIONS ON COMMUNICATIONS》;19840331;第COM-32卷(第3期);正文第III节D部分的最后1段 *

Also Published As

Publication number Publication date
EP2486729B1 (en) 2019-12-18
WO2011043970A1 (en) 2011-04-14
CN102550027A (zh) 2012-07-04
EP2486729A1 (en) 2012-08-15
US8340448B2 (en) 2012-12-25
US20110080946A1 (en) 2011-04-07

Similar Documents

Publication Publication Date Title
CN102550027B (zh) 用于图像和视频压缩的局部可变量化和混合可变长度编码
CN105847815B (zh) 使用变换的视频编码和解码
US8520965B2 (en) Context adaptive hybrid variable length coding
CN104980746B (zh) 用于使用分层数据单元进行编码和解码的方法和设备
TWI556632B (zh) 視訊之算術編碼方法及其裝置、以及視訊之算術解碼方法及其裝置
CN103004195B (zh) 将多种可变长度编码方法用于多种类型的变换系数块的视频压缩
CN107835421B (zh) 对视频编码的方法和设备以及对视频解码的方法和设备
US8670485B2 (en) Context adaptive position and amplitude coding of coefficients for video compression
US20080170613A1 (en) Breakpoint determining for hybrid variable length coding and encoding the determined breakpoint
RU2567988C2 (ru) Кодер, способ кодирования данных, декодер, способ декодирования данных, система передачи данных, способ передачи данных и программный продукт
CN1275469C (zh) 一种复杂度可分级的帧内预测方法
EP2201781A2 (en) Variable length coding of coefficient clusters for image and video compression
CN1719900A (zh) 选择编码模式的方法和设备
CN105872550A (zh) 用于编码和解码的多级有效图
CN102307303B (zh) 一种基于三进制表示的图像预测编码方法
US8036471B2 (en) Joint amplitude and position coding of coefficients for video compression
Poolakkachalil et al. Comparative analysis of lossless compression techniques in efficient DCT-based image compression system based on Laplacian Transparent Composite Model and An Innovative Lossless Compression Method for Discrete-Color Images
Zhang et al. Context-based arithmetic coding reexamined for DCT video compression
Lu et al. Image Compression Based on Mean Value Predictive Vector Quantization.
CN105007483B (zh) 一种与h264标准兼容的屏幕内容编码解码方法
Zhao et al. An Effective Rate Distortion Optimization Method for Reliability HEVC Systems
Lui Compressing color-indexed images with an adaptive palette reordering method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant