CN1620816A - 图像/视频编码器和/或解码器中的编码变换系数 - Google Patents

图像/视频编码器和/或解码器中的编码变换系数 Download PDF

Info

Publication number
CN1620816A
CN1620816A CNA038025493A CN03802549A CN1620816A CN 1620816 A CN1620816 A CN 1620816A CN A038025493 A CNA038025493 A CN A038025493A CN 03802549 A CN03802549 A CN 03802549A CN 1620816 A CN1620816 A CN 1620816A
Authority
CN
China
Prior art keywords
variable length
symbol
length code
data symbol
symbols
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.)
Pending
Application number
CNA038025493A
Other languages
English (en)
Inventor
M·卡策维茨
R·库尔切伦
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.)
Nokia Oyj
Original Assignee
Nokia Oyj
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27615952&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1620816(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US10/054,610 external-priority patent/US6690307B2/en
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN1620816A publication Critical patent/CN1620816A/zh
Pending legal-status Critical Current

Links

Images

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
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种可变长度编码方法,其中数据符号集包含了具有第一数值的第一数量的数据符号以及值与第一数值不同的第二数量的数据符号,其中将要进行可变长度编码的符号集是从所述数据符号集中形成的,并且将可变长度编码应用于这个将要进行可变长度编码的符号集。依照本方法,应用于将要进行可变长度编码的符号集的可变长度编码的至少一个特性是根据将要进行可变长度编码的符号的数目而被适配的,并且在这里还提供了经过可变长度编码的符号的数目的一个指示。根据本发明,所述指示是一个表示将要进行可变长度编码的符号的数目的可变长度码字,它是根据将要进行可变长度编码的符号的数目而从至少两个可替换的可变长度码字集合中的一个集合中选出的。本发明还涉及一种相应的可变长度解码方法,以及一种实施根据本发明的编码和解码方法的编码器和解码器。

Description

图像/视频编码器和/或解码器中的编码变换系数
发明领域
本发明涉及一种用于对数字视频进行编码的方法、***和设备。更准确的说,本发明涉及的是在使用了可变长度编码(VLC)的视频/图像编码器/解码其中对基于块的量化变换系数进行编码。
发明背景
对那些与胶片记录的常规电影相类似的数字视频序列来说,这些序列包含了一系列静止图像(通常称之为“帧”),运动错觉是通过以相对较快的速率接连显示图像而产生的,该速率通常是每秒15到30帧。由于具有相对较快的速率,因此连续帧中的图像往往非常相似,由此包含了相当多的冗余信息。例如,在典型的场景中既可以包括某些静态元素,例如背景景物,也可以包括一些采用了多种不同形式的运动区域,例如新闻广播员面部、移动的交通量等等。作为选择,记录场景的摄像机本身也可以移动,在这种情况下,图像中的所有元素具有相同类型的运动。这在很多情况中都意味着一个视频帧与下一个视频帧之间的整体变化非常小。
未压缩数字视频序列中的每个帧都包括一个图像像素阵列。例如,在以四分之一通用中间格式(QCIF)著称的常用数字图像格式中,一个帧包含了一个176×144像素的阵列,在这种情况下,每个帧具有25,344个像素。每个像素转而由一定数量的比特表示,这些比特传送的是与像素相对应的图像区域的亮度和/或颜色内容方面的信息。一般来说,可以使用所谓的YUV颜色模型来表示图像的亮度和色度内容。其中亮度或Y分量表示图像光亮度(明亮度),图像颜色内容则两个用U和V标记的色度或色差分量表示。
与基于包含原色(也就是红、绿、蓝,RGB)的表示的颜色模型相比,基于亮度/色度表示的颜色模型更具有优势。人类的视觉***更易于感受到光亮变化而不是颜色变化,与亮度分量(Y)相比,YUV颜色模型为色度分量(U,V)使用了较低空间分辨率,由此利用到了这种特性。并且这样一来,可以在可接受地降低图像质量的情况下减少对图像颜色信息进行编码所需要的信息量。
一般来说,色度分量的较低空间分辨率是通过二次抽样实现的。通常,视频序列中的每个帧都分成了包含亮度(Y)信息和在空间上二次抽样的相关色度(U,V)信息的所谓“宏块”。图3描述了一种宏块的形成方式。图3a显示的是用YUV颜色模型表示的视频序列帧,其中每一个分量都具有相同的空间分辨率。所述宏块是通过将原始图像(图3b)中的16×16的图像像素区域表示成四个亮度信息块以及在空间上对应的两个色度分量(U和V)而形成的,每一个亮度块都包括一个8×8的亮度(Y)值阵列,而在x和y方向上则使用了因数2来对所述色度分量(U和V)进行二次抽样,进而产生相应的8×8的色度(U,V)值阵列(参见图3c)。依照某些视频编码建议,例如国际电联(ITU-T)建议H.26L,在宏块内部使用的基本块的大小可以不同于8×8,例如,所述基本块的大小也可以是4×8或4×4(参见G.Bjontegaard在2001年6月发表于VCEG-N10第2.3节的“H.26L Test Model Long Term Number 8(TML-8)draft 0”)。
一个QCIF图像包括11×9个宏块。如果用8位(也就是介于0到255之间的数字)分辨率来表示亮度块和色度块,那么,每个宏块需要的总比特数是(16×16×8)+2×(8×8×8)=3072个比特。这样一来,用以表示QCIF格式视频帧所需要的比特数目是99×3072=304,128个比特。这意味着对速率为每秒30帧并用YUV颜色模型表示的QCIF格式的未压缩视频序列来说,传送/记录/显示该序列所需要的数据量大于9Mb/s(百万比特/秒)。这个速率是一个极高的数据速率,对视频记录、传输和显示中的应用而言,所述速率是很不现实的,因为这其中将会需要用到很大的存储容量、传输信道容量以及很高的硬件性能。
如果要在ISDN(综合业务数字网)或PSTN(公共交换电话网)之类的固定线路上实时传送视频序列,那么可用数据传输带宽通常约为64kbps。在移动可视电话中,传输至少部分是经由无线电通信链路进行的,由此可用带宽可能会降至20kb/s。这意味着必须显著减少用于表示视频数据的信息量,以便在低带宽通信网络上传送数字视频序列。为此目的,目前开发了多种在保持可接受图像质量的同时减少传送信息量的视频压缩技术。
视频压缩方法是以减少视频序列中的冗余部分以及与感知无关的部分为基础的。视频序列中的冗余度可以归类为空间、时间和频谱冗余度。“空间冗余度”是用于描述帧内相邻像素之间的相关性(相似性)的术语。术语“时间冗余度”则表示这样一个事实,即序列中出现的某个帧的对象很可能会在后续帧中出现,而“频谱冗余度”则是指同一个图像的不同颜色分量之间的相关性。
一般来说,只减少指定图像序列中的不同形式的冗余度无法实现足够有效的压缩。因此,当前大多数视频编码器还降低了视频序列中那些在主观感觉上最不重要的部分的质量。此外,压缩视频比特流自身的冗余度是借助了有效的无损编码技术降低的。通常,这种处理是使用一种名为熵编码的技术实现的。
通常,在构成各个数字视频序列帧的像素之间存在着很大冗余度。换句话说,在某个序列帧内部,任何一个像素的值与紧挨着它的其他像素的值实际是相同的。通常,视频编码***是用一种名为“基于块的变换编码”的技术来减少空间冗余的,在这种编码技术中则是逐个宏块地将数学变换应用于图像像素。变换编码将源自一个包含了像素值显示的图像数据转换成包含一组系数值的形式,每一个系数值都是一个用于所论述变换的基函数的因数(乘数)。通过使用一些数学变换,例如二维离散余弦变换(DCT),可以显著降低数字视频序列帧内部的空间冗余度,进而产生更简洁的图像数据表示。
在没有参考序列内部其他任何帧的情况下,通过使用基于块的变换编码而被压缩的视频序列帧称为帧内编码或I帧。此外,如果可能,帧内编码帧的块是从同一个帧内部的先前编码的块中预测的。这种技术即为通常所说的帧内预测,它具有进一步减少表示帧内编码帧所需要的数据量的效果。
通常,视频编码***不但降低了视频序列中个别帧内部的空间冗余度,而且还使用了名为“运动补偿预测”的技术来降低序列中的时间冗余度。通过使用运动补偿预测技术,可以从数字视频序列中的名为“参考”或“锚点”的一个或多个帧中“预测”该序列中的某些(通常很多)帧的图像内容。图像内容的预测是通过对所要编码(压缩)的帧与一个或多个使用了“运动矢量”的参考帧之间的对象运动或图像区域进行追踪来完成的。一般来说,在视频序列中,一个或多个参考帧可以先于所要编码的帧,但也可以跟随在这些帧之后。与帧内编码中的情况一样,对视频帧进行的运动补偿预测通常是基于逐个宏块来执行的。
使用运动补偿预测技术压缩的视频序列帧通常被称为帧间编码或P帧。单独的运动补偿预测很少能提供足够精确的视频帧的图像内容显示,因此通常有必要为每一个帧间编码帧提供一个所谓的“预测误差(PE)”帧。所述预测误差帧表示的是帧间编码帧的解码版本与所要编码的帧的图像内容之间的差别。更确切的说,预测误差帧包含的数值代表的是将要编码的帧的像素值与根据所论述帧的预测(帧间编码)版本而形成的相应重建像素值之间的差值。因此,预测误差帧具有与静止图像相类似的特性,并且可以通过应用基于块的变换编码来减少表示该帧的空间冗余度,进而减少描绘所述帧所需要的数据量(比特数目)。
为了更详细地描述视频编码***的操作,现在将对图1和图2进行参考。图1是使用帧内与帧间编码的组合来产生一个压缩(编码)视频比特流的常规视频编码器的示意图。图2中则对相应的解码器进行了描述,并且稍后在文中将对解码器进行描述。
视频编码器100包括一个用于从相机或其他视频源(未显示)接收数字视频信号的输入端101。它还可以包括一个被安排为执行基于块的离散余弦变换(DCT)的变换单元104,一个量化器106,一个逆量化器108,一个被安排为执行基于块的反离散余弦变换(IDCT)的逆变换单元130,组合器112和116,以及一个帧存储器120。所述编码器还包括一个运动估计器130,一个运动现场编码器140以及一个运动补偿预测器150。开关102和114由控制管理器160协同操作,以便在视频编码帧内模式与视频编码帧间模式之间切换编码器。编码器100还包括一个视频复用编码器170,它从编码器100生成的各种类型信息中产生一个单独比特流115,以便进一步将其传送到远程接收终端,或者举例来说,该编码器也可以将比特流存入一个大容量存储介质,例如计算机硬盘(未显示)。
编码器100如下运作。从视频源提供到输入端101的每一个未压缩视频帧以逐个宏块的方式得到接收和处理,并且在这里最好按照光栅扫描顺序来进行处理。当开始执行新的视频序列编码时,所编码的第一个帧是作为帧内编码帧编码的。接下来,除非满足下列条件之一,否则将对编码器进行编程,以便用帧间编码格式来对每个帧进行编码:1)判定正被编码的帧的当前宏块不同于预测中使用的参考帧的像素值,以至于产生了过多的预测误差信息,在这种情况下,当前宏块是用帧内编码格式编码的;2)预定义的帧内帧的重复间隔已经终止;或者3)接收到一个来自接收终端的反馈,该反馈表示的是一个要求以帧内编码格式来提供帧的请求。
条件1)的出现是通过对组合器116的输出进行监视来检测的。组合器116在正被编码帧的当前宏块与运动补偿预测部件150产生的预测之间形成一个差值。如果该差值的量度(例如像素值的绝对差值之和)超出一个预定门限,那么组合器116经由控制线119来向控制管理器160发出通知,控制管理器160则经由控制线113来操作开关102和114,从而将编码器100切换到帧内编码模式。这样一来,以帧内编码格式来进行不同方式的编码的帧可以包括帧内编码宏块。条件2)的出现是借助了在控制管理器160实施中的定时器或帧计数器而以如下方式监视的,其中如果定时器终止或者帧计数器达到预定数量的帧,那么控制管理器160经由控制线113来操作开关102和114,进而将编码器切换到帧内编码模式。如果控制管理器160经由控制线121而从例如某个接收终端收到一个表明所述接收终端需要进行帧内编码帧刷新的反馈信号,则触发条件3)。举例来说,如果先前发送的帧在其传送过程中因为干扰而受到严重破坏,以致于不能在接收机上对其进行解码,则有可能会出现上述情况。在这种情况下,接收解码器发出一个要求以帧内编码格式编码下一个帧的请求,由此重新初始化编码序列。
现在将对帧内编码模式中的编码器100的操作进行描述。在帧内编码模式中,控制管理器160对开关102进行操作,以便接受来自输入线118的视频输入。视频信号输入是经由输入线118而从输入端101逐个宏块地接收的。在对其进行接收的时候,构成宏块的亮度和色度值块传递到DCT变换单元104,该单元对每一个块值执行二维离散余弦变换,由此为各个块产生一个二维DCT系数阵列。DCT变换单元104为每一个块产生一个系数值阵列,所述系数值的数目取决于构成宏块的块的特性。举例来说,如果在宏块中使用的基本块的大小是4×4,那么DCT变换单元104会为每一个块产生一个4×4的DCT系数阵列。如果块大小是8×8,则产生一个8×8的DCT系数阵列。
每一个块的DCT系数都传递到量化器106,在量化器106中则使用量化参数QP来对其进行量化。量化参数QP的选择由控制管理器160经由控制线115来进行控制。与DCT变换块104初始产生的系数相比,经过量化的系数的数值精度相对较低,因此所述量化将会引入某种信息丢失。这样一来则提供了另外一种用以减少表示视频序列中的各个图像所需要的数据量的机制。然而,与实际无损的DCT变换所不同,量化引入的信息丢失将会导致不可逆地降低图像质量。应用于DCT系数的量化程度越高,图像质量的损失也就越大。
如图1的线路125所示,对每一个块来说,其经过量化的DCT系数从量化器106传递到视频复用编码器170。视频复用编码器170使用一个Z形扫描过程来对每个块的量化变换系数进行排序。这个操作是将那些经过量化的变换系数的二维阵列转换成一个一维阵列。如图4所示4×4阵列的典型Z形扫描大致是以空间频率递增的顺序来对系数进行排序的。此外,这种操作往往还根据系数值来对系数进行排序,由此使得一维阵列中位置较前的系数的绝对值更有可能大于阵列中位置靠后的系数。出现这种情况则是因为在图像块内部,较低的空间频率往往具有较大的幅度。因此,在经过量化的变换系数的一维阵列中,接近末端的值往往为零。
通常,视频复用编码器170是用两个名为等级(level)和游程(run)的值来表示一维阵列中经过量化的各个非零系数的。其中等级是经过量化的系数的值,游程是所论述系数之前的连续零值系数的数目。对给定系数来说,其游程和等级值将被排序,以使等级值先于相关的游程值。在这里使用了大小为零的等级值来表明块中不再存在非零系数。这个0等级值被称为EOB(块结束)符号。
作为选择,一维阵列中的每一个非零量化系数都可以由3个值(游程,等级,末端)表示。等级和游程的意义与先前方案相同,而末端则表示当前系数之后的一维阵列中是否还有其他非零系数。这样一来则不再需要单独的EOB符号。
游程和等级值(如果可以应用末端的话,也包括末端)是通过使用熵编码而被进一步编码的。所述熵编码是一种无损操作,它利用的是所要编码的数据集内部的符号通常具有不同出现概率这一事实。因此,在这里是分配可变数量的比特而不是使用固定数量的比特来表示每一个符号的,由此使用比特较少的码字来表示较有可能出现的符号。出于这个原因,熵编码通常也称为可变长度编码(VLC)。由于某些等级和游程值较其它数值而言更有可能出现,因此通常可以有效地使用熵编码技术来减少表示游程和等级值所需要的比特数量。
一旦使用恰当方法对游程和等级值进行了熵编码,则视频复用编码器170进一步将其与控制信息结合,从而形成编码图像信息135的单独压缩比特流,其中所述控制信息也是使用适合所论述信息类型的可变长度编码方法而被编码的。由此从编码器传送的是包含了表示(游程,等级)对的可变长度码字的比特流。
虽然在这里是结合视频复用编码器170执行的操作来对熵编码进行描述的,但是应该指出,在替换实施方式中也可以提供一个单独的熵编码单元。
宏块的局部解码版本也是在编码器100中形成的。这个操作是通过将量化器106输出的每一个块的量化变换系数经由逆量化器108来进行传递以及在逆变换单元110中应用一种反向DCT变换来完成的。这样一来,重建的像素阵列是为宏块中的各个块构造的。最终得到的解码图像数据将会输入到组合器112中。在帧内编码模式中则是对开关114进行设定,以使经由开关114到达组合器112的输入为零。由此,组合器112执行的操作等价于传递那些没有发生变化的解码图像数据。
在接收到当前帧的后续宏块并对其执行单元104、106、108、110和112中的前述编码和解码步骤时,在帧存储器120中构造了帧内编码帧的解码版本。在对当前帧的最后一个宏块执行帧内编码并且随后对其进行解码的时候,帧存储器120将会包含一个完整解码的帧,而在用帧间编码格式对后续接收的视频帧进行编码的过程中,这个完全解码的帧可以充当一个预测参考帧。
现在将对帧间编码模式中的编码器100的操作进行描述。在帧间编码模式中,控制管理器160通过操作开关102来接收源自线路117的输入,其中所述输入包含了组合器116的输出。组合器116以逐个宏块的方式接收源自输入端101的视频输入信号。当组合器116接收到构成宏块的亮度和色度值块时,它会形成相应的预测误差信息块。该预测误差信息表示所论述的块与运动补偿预测单元150产生的预测值之间的差值。更具体地说,对宏块中的每个块来说,其预测误差信息包括一个二维阵列,这个二维阵列是由代表了所编码的亮度或色度信息块的像素值与解码像素值之间的差值的数值构成的,其中所述解码像素值的获取是依照以下描述的过程而为这些块形成一个运动补偿预测来完成的。因此举例来说,如果每个宏块都包含了由亮度和色度值构成的4×4个块的组合,那么对宏块中的每个块而言,其预测误差信息也包括一个4×4的预测误差值阵列。
宏块中各个块的预测误差信息传递到DCT变换单元104,该单元对每一个预测值块执行二维离散余弦变换,以便为每一个块产生一个二维的DCT变换系数阵列。DCT变换单元104为每一个预测误差块产生一个系数值阵列,所述系数值的数目取决于构成宏块的块的特性。举例来说,如果宏块中使用的基本块的大小是4×4,那么DCT变换单元104将会为每一个预测误差块产生一个4×4的DCT系数阵列。如果块大小为8×8,则产生一个8×8的DCT系数阵列。
每一个预测误差块的变换系数都传递到量化器106,在量化器中则使用量化参数QP并以类似于上文结合帧内模式中的编码器操作所描述的方式来对其进行量化。同样,量化参数QP的选择是由控制管理器160经由控制线115来进行控制的。
经过量化的DCT系数表示的是宏块中的每个块的预测误差信息,如图1的线路125所示,这些系数从量化器106传递到视频复用器170。与帧内编码模式一样,视频复用编码器170使用了前述Z形扫描过程(参见图3)来对各个预测误差块的变换系数进行排序,然后则将每一个非零量化系数表示成一个等级和一个游程值。并且它还使用了熵编码并以一种类似于上文中结合帧内编码模式所描述的方式来对游程和等级值进行压缩。此外,所述视频复用编码器170还通过线路126来接收源自运动现场编码块140的运动矢量信息(下文中将会对此进行描述)以及接收来自控制管理器160的控制信息。所述编码器对运动矢量信息和控制信息进行熵编码,并且形成一个单独的编码图像信息比特流135,该比特流包含了经过熵编码的运动矢量、预测误差以及控制信息。
经过量化的DCT系数表示的是宏块中每一个块的预测误差信息,这些系数同样从量化器106传递到逆量化器108。在这里对这些系数进行逆量化并且将最终得到的逆量化DCT系数施加到反向DCT变换单元110,在所述单元中则对其执行反向DCT变换,以便产生局部解码的预测误差值块。然后,局部解码的预测误差值块输入到组合器112中。在帧间编码模式中,通过对开关114进行设置,可以使组合器112接收运动补偿单元150为宏块中每个块产生的预测像素值。组合器112将每个局部解码的预测误差值块与相应的预测像素值块相结合,以便产生重建图像块并将其存入帧存储器120。
当从视频源接收到视频信号的后续宏块并对其执行前述单元104、106、108、110和112中的编码和解码步骤时,在帧存储器120中将会构造所述帧的一个解码版本。在处理了视频信号的最后一个宏块之后,帧存储器120将会包含一个完全解码的帧,在用帧间编码格式编码后续接收的视频帧的过程中,这个完全解码的帧可以充当预测参考帧。
现在将要描述的是如何为当前帧的宏块形成一个预测。任何一个用帧间编码格式编码的帧都需要一个用于运动补偿预测的参考帧。这意味着在对视频序列进行编码的过程中,无论所编码的首个帧是序列中的第一个帧还是其他帧,都有必要采用帧间编码格式来对其进行编码。这转而意味着当控制管理器160将视频编码器100切换成帧间编码模式时,在编码器的帧存储器120中已经可以使用通过对先前编码帧进行局部解码所形成的完整参考帧。通常,参考帧是通过对帧内编码帧或帧间编码帧进行局部解码而形成的。
在为当前帧的一个宏块生成预测的过程中,第一个步骤由运动估计单元130执行。运动估计单元130经由线路128接收那些构成所编码帧的当前宏块的亮度和色度值块。然后,该单元执行一个块匹配操作,以便识别参考帧中实际对应于当前宏块的某个区域。为了执行块匹配操作,运动估计单元经由线路127来访问帧存储器120中保存的参考帧数据。更确切的说,运动估计单元130通过计算表示被检宏块与像素最佳匹配候选区域之间的像素值差值的不同数值(例如绝对差值之和)来执行块匹配,其中所述像素最佳匹配区域源自帧存储器120中保存的参考帧。在这里为处于参考帧的预定搜索范围以内的所有可能偏移上的候选区域都计算一个差值,并且运动估计单元130将会确定计算得到的最小差值。当前帧的宏块与产生最小差值的参考帧候选像素值块之间的偏移则为所论述宏块定义了运动矢量。
一旦运动估计单元130为宏块产生运动矢量,则它会将运动矢量输出到运动现场编码单元140。所述运动现场编码单元140使用一个包含一组基函数和运动系数的运动模型来近似估计这个从运动估计单元130接收的运动矢量。更具体的说,运动现场编码单元140将运动矢量表示成一组运动系数值,在将所述值与基函数相乘的时候将会形成运动矢量的一个近似值。通常,一个平移运动模型只具有两个运动系数,并且在这里所述模型使用的是基函数,然而在这里也可以使用更复杂的运动模型。
运动系数从运动现场编码单元140传递到运动补偿预测单元150。所述运动补偿预测单元150还从帧存储器120中接收运动估计单元130识别的像素值最佳匹配候选区域。通过使用运动现场编码单元140产生的运动矢量近似表示以及来自参考帧的像素最佳匹配候选区域的像素值,所述运动补偿预测单元150为宏块中的每个块都产生一个预测像素值阵列。每个预测像素值块都传递到组合器116,在所述组合器中则从当前宏块的相应块的实际(输入)像素值中减去预测像素值。由此可以得到该宏块的一组预测误差块。
现在将对图2所示的视频解码器200的操作进行描述。解码器200包括一个从编码器100接收编码比特流并且将所述比特流135解复用成其组成部分的视频复用解码器270,一个逆量化器210,一个反向DCT变换器220,一个运动补偿预测单元240,一个帧存储器250,一个组合器230,一个控制管理器260以及一个输出端280。
依照所解码的是帧内编码帧还是帧间编码帧,控制管理器260相应地对解码器200的操作进行控制。帧内/帧间触发控制信号使得解码器在解码模式中进行切换,其中举例来说,所述信号可以是从编码器接收的各个压缩视频帧的报头部分提供的图像类型信息中导出的。帧内/帧间触发控制信号是由视频复用解码器270从编码视频比特流中提取并经由控制线215传递到控制管理器260的。
帧内编码帧的解码是逐个宏块地执行的,实际上,每一个宏块都是在识别出接收视频比特流135中与之相关的编码信息的时候解码的。视频复用解码器270首先从涉及所论述宏块的可能控制信息中分离出那些关于宏块中的块的编码信息。而帧内编码宏块中的每个块的编码信息则包括可变长度码字,这些码字表示的是关于块中非零量化DCT系数的经过熵编码的等级和游程值。视频复用解码器270使用了一种可变长度解码方法来对可变长度码字进行解码,由此恢复等级和游程值,其中所述方法对应于编码器100中使用的编码方法。然后,解码器为宏块中的每个块重建量化变换系数阵列,并且将其传递到逆量化器210。此外,在视频解复用器中使用了一种恰当的可变长度解码方法来对涉及宏块的任何控制信息进行解码,并且还将所述信息传递到控制管理器260。特别地,与应用于变换系数的量化等级有关的信息由视频复用解码器270从编码比特流中提取并经由控制线217提供到控制管理器260。所述控制管理器转而将这个信息经由控制线218传递到逆量化器210。逆量化器210则根据所述控制信息来反向量化宏块中的各个块的量化DCT系数,以及将当前执行了逆量化的DCT系数提供给反向DCT变换器220。
反向DCT变换器220对宏块中的各个块的反向量化DCT系数执行反向DCT变换,以便构成一个包含重建像素值的解码图像信息块。由于在帧内编码宏块的编码/解码中没有使用运动补偿预测,因此控制管理器260将会用一种防止在帧内编码宏块的解码中使用任何参考信息的方式来控制组合器230。宏块中每一个块的重建像素值都传递到解码器的视频输出端280,其中举例来说,这些值可以提供给一个显示设备(未显示)。此外,宏块中每一个块的重建像素值还保存在帧存储器250中。在解码和保存帧内编码帧的后续宏块的时候,在帧存储器250中将会逐渐汇聚出一个解码帧,由此可以将所述帧当作一个参考帧,以便在与后续接收的帧间编码帧的解码操作相关联的运动补偿预测中加以使用。
帧间编码帧也是逐个宏块地解码的,实际上,每个帧间编码宏块都是在从接收比特流135中识别出相关编码信息的时候解码的。视频复用解码器270从编码运动矢量信息和涉及所论述宏块的可能控制信息中分离出帧间编码宏块中的各个块的编码预测误差信息。如上所述,宏块中每个块的编码预测误差信息全都包含了可变长度码字,它表示的是用于所述预测误差块的非零量化变换系数并且经过了熵编码的等级和游程值。视频复用解码器270使用一种与编码器100中使用的编码方法相对应的可变长度解码方法来对可变长度码字进行解码,进而恢复等级和游程值,所述解码器为宏块中的每一个块重建一个量化变换系数阵列,并且将其传递到逆量化器210。在视频复用解码器270中同样使用了一种恰当的可变长度编码方法来解码那些与帧间编码宏块有关的控制信息,并且还将所述信息传递到控制管理器260。与应用于预测误差块的变换系数量化等级相关联的信息是从编码比特流中提取并经由控制线217提供给控制管理器260的。控制管理器转而将这个信息经由控制线218传递到逆量化器210。所述逆量化器210根据这个控制信息来逆量化那些表示宏块中每个块的预测误差信息的量化DCT系数,并且还将当前这些经过逆量化的DCT系数提供到逆量化器220。然后,在反向DCT变换器220中对表示各个块的预测误差信息的逆量化DCT系数进行反向变换,以便为宏块中的每个块生成一个重建的预测误差值阵列。
与宏块相关联的编码运动矢量信息由视频复用解码器270从编码视频比特流135中提取并解码。由此得到的解码运动矢量经由数据线225传递到运动补偿预测单元240,该单元使用一个编码器100中对所述帧间编码宏块进行编码时使用的运动模型相同的运动模型来为宏块重建一个运动矢量。重建的运动矢量类似于编码器运动估计单元130最初确定的运动矢量。解码器的运动补偿预测单元240使用重建运动矢量来识别重建像素区域在帧存储器250保存的预测参考帧中的位置。例如,参考帧可以是先前解码的帧内编码帧,也可以是先前解码的帧间编码帧。不论哪种情况,重建运动矢量表示的像素区域都被用于构成所论述宏块的预测。更具体地说,运动补偿预测单元240通过从参考帧中识别的像素区域那里拷贝相应像素值来形成宏块中各个块的像素值阵列。所述预测则是从参考帧中导出的像素值块并且从运动补偿预测单元240传递到组合器230,在组合器230中它将会与经过解码的预测误差信息相结合。实践中则是将每个预测块的像素值添加到反向DCT变换器220输出的相应的重建预测误差值中。由此可以得到宏块中各个块的重建像素值阵列。重建像素值传递到解码器的视频输出端280并保存在帧存储器250中。当解码和保存帧间编码帧的宏块时,在帧存储器250中将会逐渐汇聚成一个解码帧,由此可以将所述解码帧作为参考帧,以便在其他帧间编码帧的运动补偿预测中加以使用。
现在将对使用了可变长度编码(VLC)技术的量化变换系数相关联的游程和等级值的熵编码进行更详细的描述。
通常,游程-等级对是作为一个单独符号编码的。这个操作是通过在每一个可能的游程-等级对与所定义的码编号之间定义一个映射来实现的。表3描述了作为查找表的游程-等级对与码编号之间的映射的一个实例。通过使用查找表中的映射,可以为块中每一个(游程,等级)对分配一个码编号,最终得到的码编号则通过VLC编码而被编码。例如,在联合模型(JM)2.0“Working DraftNumber 2,Doc.JVT-B118,Joint Video Team(JVT)of ISO/IEC MPEG and ITU-TVCFG Pattaya,2nd JVT Meeting,Geneva,CH,Jan.29-Feb.1,2002”(H.26L视频编码标准)中定义了两种不同的查找表,它们将(游程,等级)对映射成码编号。所用表格的选择基于QP的值以及块的编码模式。更确切的说,如果编码模式是帧内编码并且QP小于24,那么在这里将会使用一个不同表格而不是使用其他方式。
JVT H.26L的联合模型JM2.0使用了名为“UVLC”的所谓的“通用”可变长度编码方案。相应地,依照H.26L JM2.0实施的视频编码器使用了一个单独的可变长度码字集合来对所有那些来自编码器并在比特流中传送的信息(语法元素)进行熵编码。虽然使用的码字是相同的,但是在这里为不同类型的信息编码定义了预定数量的不同的数据符号-码字映射。举例来说,在这里为包含亮度信息的块提供了两种数据符号-码字映射,其中映射的选择凭借的是用以对量化DCT变换系数进行排序的Z形扫描操作的类型(单频或倍频扫描)。要了解依照H.26L定义的单频或倍频扫描的Z形扫描方案,可以参见Working DraftNumber 2,Doc.JVT-B118,Joint Video Team(JVT)ofISO/IEC MPEG AND ITU-TVCEG Pattaya,2nd JVT Meeting,Geneva,CH,Jan.29-Feb.1,2002。此外在这里特别为宏块类型(MB_Type)的信息、运动矢量数据(MVD)以及帧内编码预测模式信息提供了不同的映射(参见下表3)。
在H.26L JM2.0中定义的UVLC码字可以写成下表1所示的如下压缩形式,其中Xn项可以采用数值0或1:
                           1
                         0 1 x0
                       0 0 1 x1 x0
                     0 0 0 1 x2 x1 x0
                   0 0 0 0 1 x3 x2 x1 x0
                …………………………………
           表1:依照H.26L产生UVLC码字的方案
表2介绍了根据表1给出的方案所产生的前16个UVLC码字,而表3显示的是根据H.26L提供的某些不同的数据符号码字映射。要得到关于映射的全面描述,读者可以查阅Working Draft Number2,Doc.JVT-B118,Joint Video Team(JVT)ofISO/IEC MPEG以及ITU-T VCEG Pattaya,2nd JVT Meeting,Geneva,CH,Jan.29-Feb.1,2002。
    码字索引     VLC码字
    0     1
    1     010
    2     011
    3     00100
    4     00101
    5     00110
    6     00111
    7     0001000
    8     0001001
    9     0001010
    10     000010000
    11     000010001
    12     000010010
    13     000010011
    14     000010100
    15     000010101
表2:根据表1给出的方案所产生的H.26L的前16个UVLC码字
码编号 宏块类型 帧内预测模式 MVD     Tcoeff_chroma_ACTcoeff_huma单频扫描      Tcoeff_huma倍频扫描
  帧内编码    帧间编码 Prob0  Prob1     等级   游程     等级   游程
    012345678910111213141516171819   Intra4×40,0,031,0,02,0,03,0,00,1,01,1,02,1,03,1,00,2,01,2,02,2,03,2,00,0,11,0,12,0,13,0,10,1,11,1,12,1,1    Skip16×168×816×88×168×44×84×4Intra4×40,0,031,0,02,0,03,0,00,1,01,1,02,1,03,1,00,2,01,2,02,2,0   01001232100123454321     00121001234321001234     01-12-23-34-45-56-67-78-89-910     EOB1-11-11-1-21-11-11-13-32-22     -0011220033445500112     EOB1-11-12-21-13-34-45-51-11-12     -0011002200000033441
    2021222324    3,1,10,2,11,2,12,2,13,2,1    3,2,00,0,11,0,12,0,13,0,1     01234     55432     -1011-1112-12     -21-11-1     26677     -23-36-6     11100
    2526272829303132333435363738394041424344454647..    0,1,11,1,12,1,13,1,10,2,11,2,12,2,13,2,1     55432345545     12345543455     13-1314-1415-1516-1617-1718-1819-1920-2021-2122-2223-2324..     1-11-14-4     889900     7-78-89-9     000000
    5-53-33-32-22-22-22-22-22..     00112233445566778..     10-104-42-22-22-22-22-22-211..     00112233445566770..
表3 H.26L TML-5中定义的数据符号到UVLC码字的映射的实例
在H.26L中采用的通用可变长度编码方案提供了很多技术优势。特别地,如果使用根据如表1给出的简单规则所构造的VLC码字的单独集合,那么可以逐个比特地创建码字。这样则免除了在编码器和解码器中保存码字表的需要,由此减少了编码器和解码器中的存储器需求。当然,应该指出的是,在替换的实时方式中,在编码器和解码器中也可以创建并保存码字表。不同的数据符号-码字映射允许至少有限地使UVLC编码方案适应于所要编码的不同类型的图像相关数据和控制信息的不同统计特性。不同的数据符号-码字映射可以保存在编码器和解码器中,由此没有必要在比特流中将映射信息从编码器传送到解码器。这有助于保持差错适应性。
然而,UVLC熵编码方案同样受到某些不利因素影响。特别的,不同数据符号-码字映射提供的固定码字和有限适应度必然是不及最优数据压缩的。这是因为在图像编码中,不同变换系数的出现频率(也就是概率)以及不同(游程,等级)对的概率是依照所编码的图像内容和图像类型而改变的。因此,如果使用单独的可变长度码字集合并且在所要编码/解码的数据符号与VLC之间只提供一个单独映射,那么通常无法实现最优编码效率。
因此,目前已经提出对基本的UVLC编码方案进行修改。更确切的说,目前建议在所述方案中包含一个以上的VLC码字集合。其中一种建议是由GisleBjontegaard于2000年8月在Q.15/SG16“Use of Adaptive Switching Between TwoVLCs for INTRA Luma Coefficients”,Doc.Q15-K-30中提出的。该建议提出使用一个第二VLC码字集合来对某些类型的信息进行熵编码。根据文档Q15-K-30,所建议的名为VLC2的第二VLC码字集合是根据以下在表4中显示的方案构造的。特别地,在这里将其用于对与4×4的帧内编码亮度块的量化变换系数相关联的游程和等级值进行编码,其中所述块是用根据H.26L定义的倍频扫描的Z性扫描方案来扫描的。表5以显性方式显示了VLC2的前16个码字。
                            1 0
                           1 1 0
                           1 1 1
                         0 1 x1 x0
                       0 0 1 x2 x1 x0
                     0 0 0 1 x3 x2 x1 x0
                  ………………………………
表4:根据Q.15/SG16文档Q15-K-30来产生VLC2码字的方案
    码字索引     VLC2码字
    0     10
    1     110
    2     111
    3     0100
    4     0101
    5     0110
    6     0111
    7     001000
    8     001001
    9     001010
    10     001011
    11     001100
    12     001101
    13     001110
    14     001111
    15     00010000
     表5:根据表4给出的方案所产生的Q.15/SG16文档Q15-K-30的
                       前16个VLC2码字
通过将表4和5与表1和2进行比较可以看出,与分配给初始UVLC码字集合中的最短码字的单个比特相对,VLC2的最短码字具有两个比特。由于通用的可解码性要求是没有一个VLC码字是其他任何码字的前缀,因此这种改变将会对其他VLC2码字的结构产生很大的影响。特别地,通过为最短码字分配两个比特,则可以用更少的比特来表示具有更高索引的码字。举例来说,参考表2可以看出,索引为7的UVLC码字具有7个比特,而索引为7的VLC2码字只具有6个比特。
在先前描述的VLC编码方法中,码字是通过在一个以上的码字集合之间进行基于上下文的切换而被选择的,与使用单个VLC码字集合的方法相比,这种方法在数据压缩效率方面提供了改进。然而在很多数据压缩应用、尤其是涉及视频编码的应用中,其中还继续需要改进数据压缩效率。因此,对那些在保持低计算复杂性、低存储需要和良好的差错适应性的同时提供了对于所编码数据符号类型及统计特性的改进适应性的新的可变长度编码方法而言,目前仍旧相当关注于这些方法的数据压缩效率。在本文中则开发了根据本发明的方法。
发明概述
上述问题涉及的是在保持低计算复杂性和良好差错适应性的情况下提高可变长度编码方法相对于所编码数据符号类型以及统计特性的适应性,根据本发明的方法则试图解决这些问题。
概括的说,本发明涉及的是对在视频编码器中由基于块的变换编码所产生的量化变换系数进行可变长度编码。然而应该理解的是,根据本发明的编码和解码方法更普遍地应用于将要编码的其他类型的数据。
特别地,本发明涉及一种VLC编码方法,其中对量化变换系数块中的非零系数NC的数目进行识别并且在传送到相应解码器的比特流中用信号显性表示了所述数目。如先前所述,NC的显性表示消除了发送EOB符号的需要,并且由此可以在编码效率方面得到改进。更确切的说,本发明提出了一种方法,借助于所述方法,表示块中非零系数数目的NC值自身进行了VLC编码。由此在编码效率方面提供了更大的改进。
该方法包括使用至少两个VLC码字集合来对NC的值进行编码,并且定义了在码字集合之间进行切换的规则,这样则顾及了与NC值将被编码的块相邻的一个或多个块中的非零系数数目。此外还对所述切换规则进行设计,以便在不需要任何与选择比特流中所包含码字有关的信息的情况下,对包含了依照本发明构成并表示NC的VLC码字的比特流进行解码。换句话说,根据本发明,对选取每一个表示NC值的码字所依据的集合来说,在这里没有必要提供所述集合的显性指示。并且这种特性提高了数据压缩效率。
本领域技术人员将会了解,依照本发明的方法通常可以应用于由(游程,等级)对表示的数据符号的VLC编码或是所编码数据符号集的任何等价显示。
根据本发明的第一个方面,在这里提供了一种对数据符号集进行编码的方法,其中所述数据符号集包括具有第一数值的第一数量的数据符号,并且包括值与所述第一数值不同的第二数量的数据符号,其中将要进行可变长度编码的符号集是从所述数据符号集中形成的,并且将可变长度编码应用于这个将要进行可变长度编码的符号集。依照本方法,应用于将要进行可变长度编码的符号集的可变长度编码的至少一个特征是根据将要进行可变长度编码的符号的数目而被适配的,并且在这里还提供了经过可变长度编码的符号的数目的一个指示。非常有利的是,所述指示是一个表示将要进行可变长度编码的符号的数目的可变长度码字,其中所述符号是根据将要进行可变长度编码的符号的数目而从至少两个替换的可变长度码字集合中的一个集合中选出的。
根据本发明的第二个方面,在这里提供了一种对表示数据符号集的可变长度码字进行解码的方法,其中所述数据符号集包括具有第一数值的第一数量的数据符号,以及值不同于所述第一数值的第二数量的数据符号,并且所述数据符号集是通过从所述数据符号集中形成一个将要进行可变长度编码的数据符号集合来进行编码的,所述可变长度码字是通过将可变长度编码应用于那些将要进行可变长度编码的符号集来形成的。根据本发明,应用于可变长度码字的解码的至少一个特性是根据执行了可变长度编码的符号集中的符号数目的指示来适配的。非常有利的是,所述指示是一个表示进行了可变长度编码的符号的数目的可变长度码字,其中所述符号是根据进行了可变长度编码的符号的数目而从至少两个替换的可变长度码字集合中的一个集合中选出的。
根据本发明的第三个方面,在这里提供了一种用于对数据符号集进行编码的编码器,其中所述数据符号集包括具有第一数值的第一数量的数据符号,并且包括值与所述第一数值不同的第二数量的数据符号,将要进行可变长度编码的符号集被安排为从所述数据符号集中形成,并且编码器包含了用于对将要进行可变长度编码的所述符号集进行可变长度编码的编码装置。根据本发明,编码器被安排为根据将要进行可变长度编码的符号数目来对应用于将要进行可变长度编码的数据符号的可变长度编码的至少一个特性进行适配,并且进一步被安排为提供一个关于进行了可变长度编码的符号的数目的指示。非常有利的是,所述指示是一个表示将要进行可变长度编码的符号的数目的可变长度码字,其中所述符号是根据将要进行可变长度编码的符号的数目而从至少两个替换的可变长度码字集合中的一个集合中选出的。
根据本发明的第四个方面,在这里提供了一种用于对表示数据符号集的可变长度码字进行解码的解码器,其中所述数据符号集包括具有第一数值的第一数量的数据符号,以及值不同于所述第一数值的第二数量的数据符号,并且所述数据符号集是通过从所述数据符号集中形成一个将要进行可变长度编码的数据符号集合来进行编码的,所述可变长度码字是通过将可变长度编码应用于那些将要进行可变长度编码的符号集来形成的。根据本发明,所述解码器被安排为根据执行了可变长度编码的符号集中的符号数目的指示来对应用于可变长度码字的解码的至少一个特性进行适配。非常有利的是,所述指示是一个表示进行了可变长度编码的符号的数目的可变长度码字,其中所述符号是根据进行了可变长度编码的符号的数目而从至少两个替换的可变长度码字集合中的一个集合中选出的。
根据本发明的第五个方面,在这里提供了一种多媒体终端,其中包含了根据本发明第三个方面的编码器。
根据本发明的第六个方面,在这里提供了一种多媒体终端,其中包含了根据本发明第四个方面的解码器。
优选的,根据本发明第五和/或第六个方面的多媒体终端是一个移动多媒体终端,它被安排为借助于无线电连接来与移动电信网络进行通信。
更准确地说,根据本发明的编码方法的特征主要在于:应用于将要进行可变长度编码的符号集合的可变长度编码是根据将要进行可变长度编码的符号的数目来进行适配的,并且其中提供了可变长度编码符号数目的一个指示,所述指示是一个表示将要进行可变长度编码的符号的数目的可变长度码字,其中所述符号是根据将要进行可变长度编码的符号的数目而从至少两个替换的可变长度码字集合中的一个集合中选出的。根据本发明的解码方法的特征主要在于:应用于可变长度码字的解码的至少一个特性是根据执行了可变长度编码的所述符号集中的符号数目的指示来适配的,所述指示是一个表示进行了可变长度编码的符号的数目的可变长度码字,其中所述符号是根据进行了可变长度编码的符号的数目而从至少两个替换的可变长度码字集合中的一个集合中选出的。根据本发明的编码器的特征主要在于:编码器被安排为根据所编码符号的数目来适配应用于将要进行可变长度编码的符号集的可变长度编码的至少一个特性,并且还被安排为提供一个关于进行了可变长度编码的符号的数目的指示,所述指示是一个表示将要进行可变长度编码的符号的数目的可变长度码字,其中所述符号是根据将要进行可变长度编码的符号的数目而从至少两个替换的可变长度码字集合中的一个集合中选出的。根据本发明的解码器的特征主要在于:所述解码器被安排为根据执行了可变长度编码的所述数据集中的符号数目的指示来适配应用于可变长度码字的解码的至少一个特性,所述指示是一个表示进行了可变长度编码的符号的数目的可变长度码字,其中所述符号是根据进行了可变长度编码的符号的数目而从至少两个替换的可变长度码字集合中的一个集合中选出的。
附图简述
现在参考附图并借助实例来描述本发明的实施例,其中:
图1是依照现有技术的普通视频编码器的示意性框图;
图2是依照现有技术并与图1所示的编码器相对应的普通视频解码器的示意性框图;
图3描述的是依照本发明的宏块形成过程。
图4描述的是示范性的Z形扫描顺序;
图5显示的是将要编码的当前图像块以及紧挨着它的先前编码的图像块;
图6是依照本发明一个实施例的视频编码器的示意性框图;
图7是依照本发明一个实施例并且与图6所示的编码器相对应的视频解码器的示意性框图;以及
图8是可以实施根据本发明的方法的多媒体通信终端的示意性框图。
发明详述
在以下关于本发明的详细描述中将会介绍根据本发明的方法的示范性实施例。该示范性实施例涉及的是(游程,等级)对的可变长度编码,其中所述对表示的是由视频编码器中的基于块的变换编码及其在相应视频解码器中的后续解码产生的非零变换系数。
图6是可以应用依照本发明这个实施例的方法的视频编码器600的示意性框图。实际上,图6所示的视频编码器的结构与图1所示的现有技术的视频编码器的结构是相同的,其中只对执行可变长度编码操作的编码器部分进行了适当修改。对视频编码器来说,其中所有那些与前述现有技术视频编码器按照相同方式执行功能和操作的部分都是用相同的参考数字表示的。而在说明书中则假设所有可变长度编码操作都是在视频复用编码器670中执行的。然而应该了解,在本发明的替换实施例中也可以提供一个或多个独立的可变长度编码单元。此外还应该指出,依照本发明的方法也可以应用于某些由视频编码器产生的数据符号(例如与非零变换系数相关联的(游程,等级)对),并且可以使用其它的VLC编码方法来编码其它数据符号。
现在将对视频编码器600的操作进行详细考虑。在对数字视频的某个帧进行编码的时候,编码器600以一种类似于先前结合图1所描述的方式来进行操作,由此产生了经过帧内编码和帧间编码的压缩视频帧。如本文先前所述,在帧内编码模式中,离散余弦变换(DCT)被应用于图像数据的每一个块(像素值),由此产生相应的二维变换系数值阵列。DCT操作是在变换块104中执行的,随后则将由此产生的系数传递到对其进行量化的量化器106。在帧间编码模式中,在单元104执行的DCT变换被应用于预测误差值块。由这个操作产生的变换系数还传递到量化器106,其中在所述量化器中同样对其进行了量化。帧间编码帧可以包括经过帧内编码的图像块。某些情况下则并没有将变换编码应用于某些图像块。举例来说,如果在帧内编码模式中使用帧内预测,那么可以从一个或多个先前编码的图像块中预测出某些图像块。在这种情况下,编码器为解码器提供预测中使用的先前块的指示,但是并未输出任何变换系数数据。在帧内编码模式中,关于某个块的预测与块本身的图像数据之间的差别可能很小,以至于相对于数据压缩比而言,不传送任何预测差错信息才是有利的。
依照这个实施例,根据本发明的方法适用于那些经历了变换编码以及后续变换系数量化的图像块。
当视频复用编码器670接收到一个量化变换系数块(二维阵列)时,它会确定所述阵列中的非零系数数目。根据本发明,在这里对这个名为NC的数目进行可变长度编码,并且在比特流635中将其传送到解码器。在这里为NC值的可变长度编码提供了至少两个可变长度码字集合。例如,在本发明的一个实施例中,这些码字可以是在前文描述的表2和5中分别定义的码字。更确切的说,在这里使用一个码字来对NC进行可变长度编码,其中所述码字是从对应于先前编码的NC符号的至少两个可变长度码字集合之中的一个集合中选出的。非常有利的是,用于分配VLC码字的先前编码的NC符号是从那些与正在编码的块所接近的块中选出的。
图5描述的是将要进行VLC编码的图像块以及与之相邻的块。Nc_L、NC_TL、NC_T和NC_TR这些项分别表示的是处于将要编码的当前块的左边、左上、上方以及右上的块中的非零量化系数数目。
在这里使用的是源自可用VLC码字集合之一的码字来对当前图像块的NC值进行可变长度编码,其中所述码字是在顾及了紧邻的一个或多个块中的一个或多个已编码NC值的情况下选择的。以下代码给出了在顾及先前编码的紧邻图像块的NC值的情况下为NC值分配可变长度码的示范性过程:
VLC_N=NC_map[fn(NC_L,NC_TL,NC_T,NC_TR)]      (1)
在表达式(1)中,fn是一个函数(以下在表达式(2)中对它的一个实例进行了定义),NC_map是一个将整数值映射成不同的可用VLC码的阵列,VLC_N则表示所述码字选自的表格的编号。Fn的实例包含“均值”和“中值”。在本发明的一个实施例中使用了Nc_L和NC_T的“均值”,根据这个示范性实施例,在表达式(1)中给出的分配关系变成:
VLC_N=NC_map[(Nc_NC_T/2]           (2)
以下实例进一步描述了根据本发明的方法而对NC进行的编码。假设将要编码的当前NC值是3,相邻的NC_L和NC_T的值分别由4和2给出,那么NC_map的值由NC_map=[111112222]给出,其中VLC1和VLC2分别与来自表2和表5的码字相对应。如果应用等式(2),那么VLC_N的值将会等于1。在这种情况下则使用来自表2的VLC码字而将NC=3编码成00100。
接着,视频复用编码器670将非零系数表示成(游程,等级)对。这个操作可以通过现有技术中已知的方式实施。更为特别的是,在这里首先使用如图4所示的预定扫描顺序来对二维量化变换系数矩阵进行扫描,以便产生一个有序的一维阵列。然后,有序的一维阵列中的每一个非零系数值都是用一个游程值和一个等级值表示的,其中等级值表示的是系数值,游程值表示的是非零系数之前的连续零值系数数目。与先前描述的现有技术中的游程-长度编码方法不同,依照本发明的方法,这其中没有必要传送EOB符号。并且根据本发明的方法,非零量化变换系数的值是显性指示给解码器的,由此可以不传送EOB符号。这样一来,在解码指定图像块的(游程,等级)对的时候,解码器可以对经过解码的对的数目进行计数。当经过解码的对(对应于非零值系数的数目)的数目达到指示给解码器的非零系数数目的时候,则可以停止对所论述的块进行解码。
然后,视频复用编码器670以一种为各个(游程,等级)对都分配一个单独VLC码字的方式而将可变长度编码应用于游程和等级值。依照本发明,VLC编码是通过选择编码器600保存的可变长度编码(查找)表集合中的某个表来执行的。每一个编码表不但定义了一个可变长度码字集合,而且还定义了码字与可能在图像块量化变换系数数据中出现的(游程,等级)对的可能数值之间的映射。依照本发明,视频复用编码器670根据所编码图像块的量化变换系数阵列中的非零系数数目来选择一个编码表,以便加以使用。通过使用选定查找表中定义的映射,视频复用编码器为每一个(游程,等级)对分配一个码字,并且在比特流635中将所述码字传送到解码器。
在本发明的不同实施例中,不同VLC编码表的数目是可以改变的。本发明的一个实施例中为每一个可能出现的非零量化变换系数数目都提供了一个单独的查找表。在应用于从量化变换系数值阵列中导出的(游程,等级)对集合的时候,用于每一个表格的码字以及(游程,等级)对与码字之间的映射全都设计成了提供最优数据压缩,其中所述系数值具有特定数量的非零值系数。相对于非零值量化变换系数而言,(游程,等级)对的统计特性变化的信息可以通过经验获取,例如通过预先对很多测试(“训练”)图像或是视频序列进行编码来获取。然后可以在编码器中对VLC码字和码字之间的映射进行设计并将其保存为一个或多个查找表。
在一个优选实施例中只提供了两个VLC编码表,以便在对源自4×4的图像块的(游程,等级)对进行编码的过程中加以使用,其中一个表是在非零量化变换系数数目小于或等于8的时候使用,另一个则在非零量化变换系数大于8的时候使用。表2和3描述了本发明这个实施例中的(游程,等级)对的不同概率分布。这些统计信息是通过使用一个依照当前的ITU-T建议H.26L TestModel 8(TML8)实施的视频编码器来收集的,并且这些信息涉及码间编码图像块。在所述表中为最可能出现的对分配了编号1,并且为第二可能出现的对分配了编号2,而在这里则列举了前15个最有可能出现的对。
                            游程
  0   1   2   3   4   5   6   7   8   9
等级大小   1   1   2   3   4   6   7   8   11   12   15
  2   5   10   13
  3   9
  4   14
表6:非零量化系数的数目小于或等于8(4×4的码间编码块)时
                  (游程,等级)对的概率
         游程
0 1 2 3
等级大小 1 1 3 5 9
2 2 7 12
3 4 10
4 6 14
5 8
6 11
7 13
8 15
表7:非零量化系数的数目大于8(4×4的码间编码块)时
             (游程,等级)对的概率
在本发明的一个替换实施例中,通过改变所传送的符号类型,可以提高编码效率。这其中使用了(等级,末端)对来表示量化变换系数而不是将其表示成(游程,等级)对,并且在这里为将每一个(等级,末端)对都分配了一个VLC码字。(等级,末端)对中的等级表示的是系数的值,但与先前描述的(游程,等级)对所不同,所述值可以采用数值0。末端参数则用于指示块中不再有非零系数。例如,所述参数可以用作一个二进制标记,这样一来,如果某个系数的等级值是0并且所有后续系数值都是0,则将末端设定成等于1。量化变换参数的这种替换显示可以提供编码效率(数据压缩)方面的改进,对帧内编码块和使用很小的QP值的情况而言则更是如此。
在本发明的另一个替换实施例中使用了一个固定的VLC码字集合,并且只***字与所编码的(游程,等级)对之间的映射是根据非零系数数目改变的。
在本发明的另一个替换实施例中,也可以根据某些其他参数来为某个图像块选择VLC编码表,举例来说,所述参数可以是用于量化图像块变换系数的量化参数(QP)值或是帧或图像块(帧内/帧间)的类型。在这种情况下,为某个量化变换系数阵列选择VLC编码表的操作将会依赖于非零系数数目和其他参数值。
在本发明的另一个替换实施例中,可以判定零值量化变换系数值的数目并且将其用作一个参数,根据所述参数来设计VLC码字以及所述码字与数据符号之间的映射,并且根据所述参数来选择VLC查找表。
现在参考图7来描述根据本发明一个实施例的视频解码器700的操作。实际上,图7描述的视频解码器的构造与图2所示的现有技术的视频编码器的构造是相同的,其中只对那些执行可变长度解码操作的解码器部分进行了恰当修改。对视频解码器来说,所有那些与前述现有技术视频解码器按照相同方式执行功能和操作的部分都是用相同的参考数字标识的。在说明书中假设所有可变长度解码操作都是在视频复用解码器770中执行的。然而应该了解,在本发明的替换实施例中,也可以提供一个或多个独立的可变长度解码单元。
现在将对视频解码器的操作进行详细描述。在这里假设图7的视频解码器与结合图6所描述的编码器相对应,由此所述视频解码器能够接收并解码所述编码器600传送的比特流635。在解码器中,视频复用解码器770接收比特流并将其分离成它的组成部分。如结合先前现有技术的描述所说明的那样,从比特流中提取的压缩视频数据是以逐个宏块的方式处理的。帧内编码宏块的压缩视频数据包含了表示那些经过VLC编码的NC值以及宏块中每个块的(游程,等级)对的可变长度码字,以及经过编码的控制信息(例如涉及量化参数QP)。帧间编码宏块的压缩视频数据则包含了关于每一个块的经过VLC编码的预测误差信息(包括经过VLC编码的NC值以及经过VLC编码的(游程,等级)对)、宏块的运动矢量信息以及经过编码的控制信息。
对帧内编码宏块中的每个块以及与帧内编码宏块相关联的每一个预测误差数据块来说,其经过VLC编码的NC值以及(游程,等级)对都是以相同方式解码的。
更确切的说,在对帧内或帧间编码图像块的VLC编码(游程,等级)对进行解码的时候,视频复用解码器770首先确定块中非零量化变换系数的数目。如先前所述,编码器600将涉及非零量化变换系数数目的信息NC***比特流635中。解码器700从接收到的比特流中提取这个信息。根据本发明,NC值自身进行了VLC编码,由此复用解码器770将会执行一个恰当的可变长度解码操作,以便恢复涉及NC的信息。如上所述,用于为某个图像块的NC值进行编码的VLC编码表是基于与先前编码的一个或多个图像块相关联的一个或多个NC值选择的。这意味着通常可以在没有显性指示码字所选自的VLC编码表的情况下对表示指定块的NC值的码字进行解码。因此,解码器只需要知道选择第一个(少量)编码图像块所源自的VLC编码表、图像块的编码顺序以及用于对在编码后续NC值中所用VLC表进行确定的规则。有必要明确了解到关于NC的选定VLC编码表的确切图像块数目则取决于为后续NC值选择VLC编码表所使用的规则的特性,以及块的扫描顺序。举例来说,如果使用了来自左边、左上,上方和右上的块的的NC值来选择用于对后续NC值进行编码的VLC表格,并且块的扫描(编码)顺序是从图像左上方开始逐行进行,那么较为有利的是根据预定方案而为图像第一行中的块加上第二行中的第一个块的NC值进行编码。然后则可以根据由上文中的等式(1)所描述的规则来对所有后续图像块的NC值进行编码,并且在解码器上可以在没有所用VLC编码表的任何显性指示的情况下执行解码。
一旦根据上述过程确定了图像块中非零量化变换系数的数目,则视频复用解码器770将会选择一个可变长度解码表,并且开始对图像块的VLC编码(游程,等级)对进行解码。根据本发明,VLC解码表是依据NC选择的。所述解码表是从一组与编码器中所用查找表相同的查找表中选出的。该解码表预先保存在解码器中,它定义了在比特流635中接收的VLC码字与可能在图像块的量化变换系数数据中出现的(游程,等级)对的可能值之间的映射。在根据非零量化变换系数选择了表格之后,视频复用解码器770使用选定查找表中定义的映射来恢复游程和等级值。然后,它为所述块重建量化变换系数值,并且将其传送到逆量化器210。视频解码过程的剩余部分则是像结合现有技术的视频解码器200所描述的那样继续执行,由此为每一个图像块形成重建的像素值。
应该了解的是,与先前描述的现有技术的VLC编码方法相比,依照本发明的方法提供了非常显著的优点。特别地,它提供了一种可变长度编码和解码方法,该方法自适应于将要编码/解码的数据符号的统计特性,同时还保持了较低的计算复杂性以及很高的传输差错适应性。该方法的适应性源于为具有不同数量的非零量化变换系数的图像块使用不同的可变长度码字和/或映射。通过提供不同码字和/或映射并目以此作为编码器和解码器中的查找表,可以将计算复杂性保持在很低的程度。这同样有助于降低对于数据传输差错的敏感度,因为用于指定图像块的特定查找表是借助一个表明块中非零变换系数数目的值而被告知解码器的。
图8介绍的是包含了适合根据本发明操作的视频编码和解码设备的终端设备。更确切的说,该图描述的是根据ITU-T建议H.324实施的多媒体终端80。该终端可以视为是一个多媒体收发信机设备。它不但包含了捕获、编码和复用多媒体数据流,以便经由通信网络传送的部件,而且还包含了接收、解复用、解码和显示接收到的多媒体内容的部件。ITU-T建议H.324定义了该终端的全部操作并且引用了对其不同组成部分的操作进行控制的其他建议。这种多媒体终端可以在实时应用中使用,例如常见的可视电话,但也可以在非实时应用中使用,例如检索和/或流式传输来自因特网中的多媒体服务器的视频剪辑。
就本发明而言,应该了解的是,图8显示的H.324终端只是适合所发明的方法应用的众多多媒体终端的实施方式之一。此外还应该指出,目前存在多种涉及终端设备位置和实施方式的替换方案。如图8所示,多媒体终端可以处于与模拟PSTN(公共交换电话网)之类的固定线路的电话网络相连的通信设备中。在这种情况下,多媒体终端配备了一个符合ITU-T建议V.8、V.34以及可选的V.8bis的调制解调器91。作为选择,多媒体终端也可以连接到一个外部调制解调器。所述调制解调器能将多媒体终端产生的复用数字数据和控制信号转换成适合在PSTN上传送的模拟形式。此外它还能使多媒体终端接收来自PSTN的模拟形式的数据和控制信号,并且将其转换成可以由终端以恰当方式解复用和处理的数字数据流。
H.324多媒体终端还可以采用这样一种方式实施,其中所述终端可以直接连接到一个数字固定线路网络,例如ISDN(综合业务数字网)。在这种情况下,调制解调器91将会由ISDN用户-网络接口所取代。在图8中,这个ISDN用户-网络接口是用替换单元92表示的。
H.324多媒体终端还适合在移动通信应用中使用。如果与无线通信链路结合使用,那么如图8中的替换单元93所示,调制解调器91可以由任何适当的无线接口所取代。例如,H.324/M多媒体终端可以包括一个能够连接到当前的第二代GSM移动电话网络或是被建议的第三代UMTS(通用移动电话***)的无线电收发信机。
应该指出的是,在为双向通信,也就是为了发送和接收视频数据而设计的多媒体终端中,较为有利的是同时提供根据本发明的视频编码器和视频解码器。这种编码器和解码器对通常是作为单独的组合功能单元实现的,并且通常将其称为“编解码器”。
现在将参考图8来进一步详细描述典型的H.324多媒体终端。
多媒体终端80包括多种名为“终端设备”的部件。这其中包含了视频/音频和远程信息处理设备,它们分别是用参考数字81、82、83表示的。例如,视频设备81可以包括一个用于捕获视频图像的视频摄像机、一个用于显示接收到的视频内容的监视器以及可选的视频处理设备。音频设备82通常包括一个用于获取例如语音消息的麦克风,以及用于再现接收到的音频内容的扬声器。此外,所述音频设备还可以包括附加的音频处理单元。远程信息处理设备83可以包括数据终端、键盘、电子白板或是静止图像收发信机,例如传真单元。
视频设备81与一个视频编解码器85相耦合。视频编解码器85包括依照本发明实施的视频编码器和相应的视频解码器。在下文中将对这种编码器和解码器进行描述。视频编解码器85负责以恰当方式对捕获的视频数据进行编码,以便经由通信链路来进行进一步传送,此外所述解码器还对从通信网络接收的压缩视频内容进行解码。在图8描述的实例中,视频编码解码器是依照ITU-T建议H.26L实施的,但是在其中进行了恰当修改,以便在视频编解码器的编码器和解码器中实施依照本发明的自适应可变长度编码方法。
终端的音频设备耦合到一个音频编解码器,在图8中,所述音频编解码器是用参考数字86表示的。与视频编解码器相似,音频编解码器包括一个编码器/解码器对。它将终端音频设备捕获的音频数据转换成适合经由通信链路传送的形式,并且将那些从网络接收的编码音频数据变回到适合在例如终端扬声器上再现的形式。音频编解码器的输出传递到延迟单元87。该单元补偿视频编码处理所引入的延迟,由此确保音频和视频内容同步。
多媒体终端的***控制单元84使用了一种恰当的控制协议(信令单元84)来控制端到网络的信号传递,以便在发射和接收终端之间建立一种常规操作模式。信令单元88交换的是关于发射和接收终端的编码和解码能力的信息,所述单元可用于启用视频编码器的不同编码模式。此外,***控制单元84还对数据加密的应用进行控制。关于数据传送中所用加密类型的信息则被从加密单元89传递到复用器/解复用器(MUX/DMUX单元)90。
在传送源自多媒体终端的数据的过程中,MUX/DMUX单元90将经过编码和同步的视频和音频流与远程信息处理设备83输出的数据以及可能出现的控制数据组合在一起,由此形成了一个单独的比特流。由加密单元89提供的关于将要应用于比特流的数据加密类型的信息则被用于选择一种加密模式。相应地,在接收到经过复用并且可能经过加密的多媒体比特流时,MUX/DMUX单元90负责对比特流进行解密,并且将其分解成它的多媒体组成分量,此外还将这些分量传递到一个或多个恰当的编解码器和/或终端设备,以便进行解码和再现。
应该指出的是,依照本发明的多媒体终端的功能部件、视频编码器/解码器以及视频编解码器可以作为软件或专用硬件实现,此外也可以作为这二者的组合来加以实施。依照本发明的可变长度编码和解码方尤其适合以计算机程序的形式实施,其中所述程序包含了用于执行本发明的功能步骤的机器可读指令。同样,根据本发明的可变长度编码器和解码器也可以作为存储介质上保存并在个人台式机之类的计算机上执行的软件代码来加以实现。
如果多媒体终端80是一个移动终端,也就是说,所述终端配备了无线电收发信机93,那么本领域技术人员将会理解,所述终端也可以包括附加部件。在一个实施例中,它包含了具有显示器和键盘的用户接口,该接口允许用户对多媒体终端80进行操作,此外,所述终端还包含了诸如微处理器之类的对负责多媒体终端不同功能的单元进行控制的中央处理单元,以及一个随机存取存储器RAM、一个只读存储器ROM和一个数码摄像机。微处理器的操作指令是对应于多媒体终端80的基本功能的程序代码,它保存在只读存储器ROM中并且可以在需要的时候由微处理器执行,例如在用户的控制下加以执行。根据所述程序代码,微处理器使用无线电收发信机93来与移动通信网络建立连接,由此能使多媒体终端80经由无线电路径来向/从移动通信网络发射/接收信息。
微处理器监视用户接口状态并对数字摄像机进行控制。响应于用户指令,微处理器指示摄像机将数字图像记录到RAM中。一旦捕获了图像或者可选地处于捕获过程中,那么微处理器会将图像分割成图像分段(例如宏块),并且使用编码器来执行所述分段的运动补偿编码,从而产生一个先前描述中记载的压缩图像序列。用户可以命令多媒体终端80在其显示器上显示捕获的图像,也可以使用无线电收发信机93将经过压缩的图像序列发送到另一个多媒体终端、与固定线路网络(PSTN)相连的可视电话或者其它的电信设备。在一个优选实施例中,一旦对第一个分段进行了编码,则开始进行图像数据传输,由此接收方能在具有最小延迟的情况下开始相应的解码处理。

Claims (53)

1.一种对数据符号集进行编码的方法,其中所述数据符号集包括具有第一数值的第一数量的数据符号以及值与所述第一数值不同的第二数量的数据符号,其中将要进行可变长度编码的符号集是从所述数据符号集中形成的,并且将可变长度编码应用于所述将要进行可变长度编码的符号集,其特征在于:应用于将要进行可变长度编码的符号集的可变长度编码的至少一个特性是根据将要进行可变长度编码的符号的数目而被适配的,并且还提供了经过可变长度编码的符号的数目的一个指示,所述指示是一个表示将要进行可变长度编码的符号的数目的可变长度码字,它是根据将要进行可变长度编码的符号的数目而从至少两个可替换的可变长度码字集合中的一个集合中选出的。
2.根据权利要求1的方法,其特征在于:它是在一个比特流中发送到解码设备的。
3.根据权利要求1或2的方法,其特征在于包括:根据在至少一个先前编码的数据符号集中进行了可变长度编码的符号的数目来选择一个可变长度码字,以便表示所述将要进行可变长度编码的符号的数目。
4.根据权利要求3的方法,其特征在于包括:基于在一个以上的先前编码的数据符号集中进行了可变长度编码的符号数目的均值来选择一个可变长度码字,以便表示所述将要进行可变长度编码的符号的数目。
5.根据权利要求1到4中任何一个权利要求的方法,其特征在于包括:通过执行一个定义值到码字的分配关系的映射操作来选择一个可变长度码字,以便表示所述将要进行可变长度编码的符号的数目。
6.根据权利要求5的方法,其特征在于:所述映射操作借助于一个映射表来执行,其中所述映射表是映射表集合中的一个映射表,并且所述映射表是根据在至少一个先前编码的数据符号集中进行了可变长度编码的符号的数目来选择的。
7.根据权利要求1或6中任何一个权利要求的方法,其特征在于它包括:用一对数值来表示所述所述第二数量的数据符号中的每一个符号,其中这对数值中包含表示数据符号值的第一数值以及表示所述数据符号之前或之后的零值数据符号数目的第二数值,由此形成了表示所述将要进行可变长度编码的符号的第一和第二数值对的一个集合。
8.根据权利要求1到7中任何一个权利要求的方法,其特征在于包括执行一个映射操作,在所述操作中为所述每一个将要进行可变长度编码的符号都分配了一个码字,由此形成表示所述将要进行可变长度编码的符号的编码值集合,该码字是从一个码字集合中选出的,其中对所述码字集合进行设计,以便在所述映射操作中使用的时候减少表示所述将要进行可变长度编码的符号所需要的信息量。
9.根据权利要求8的方法,其特征在于,所述映射操作取决于数据符号的所述第二数量。
10.根据权利要求9的方法,其特征在于:所述映射操作是如下执行的:选择可选分配表集合中的一个分配表,其中所述可选分配表集合中每一个表都定义了将要进行可变长度编码的符号到码字的分配关系,并且根据所述选定分配表定义的分配关系而将每一个将要进行可变长度编码的所述符号分配给一个码字。
11.根据权利要求1到10中任何一个权利要求的方法,其特征在于:所述第一数量的数据符号是零值数据符号,所述第二数量的数据符号是非零数据符号。
12.根据权利要求1到11中任何一个权利要求的方法,其特征在于:所述数据符号集是一个量化变换系数值集合。
13.一种用于对表示数据符号集的可变长度码字进行解码的方法,其中所述数据符号集包括具有第一数值的第一数量的数据符号以及值不同于所述第一数值的第二数量的数据符号,并且所述数据符号集是通过从所述数据符号集中形成一个将要进行可变长度编码的数据符号集合来进行编码的,所述可变长度码字是通过将可变长度编码应用于所述将要进行可变长度编码的符号集形成的,其特征在于:应用于可变长度码字的解码的至少一个特性是根据进行了可变长度编码的符号集中的符号数目的指示来适配,所述指示是一个表示进行了可变长度编码的符号的数目的可变长度码字,它是根据进行了可变长度编码的符号的数目而从至少两个可替换的可变长度码字集合中的一个集合中选出的。
14.根据权利要求13的方法,其特征在于,所述符号集中进行了可变长度编码的所述符号数目的指示是从一个编码设备中接收的。
15.根据权利要求13或14的方法,其特征在于包括:根据在至少一个先前编码的数据符号集中进行可变长度编码的符号的数目来对表示所述进行了可变长度编码的符号数目的可变长度码字进行解码。
16.根据权利要求15的方法,其特征在于包括:根据在一个以上的先前编码的数据符号集中进行了可变长度编码的所述符号的数目的均值来对表示所述进行了可变长度编码的符号的数目的可变长度码字进行解码。
17.根据权利要求13到16中任何一个权利要求的方法,其特征在于包括:通过执行定义码字到数值的分配关系的反向映射操作来对表示所述进行了可变长度编码的符号数目的可变长度码字进行解码。
18.根据权利要求17的方法,其特征在于,所述反向映射操作是借助于一个映射表执行的,其中所述映射表是映射表集合中的一个映射表,并且所述映射表是基于在至少一个先前编码的数据符号集中执行了可变长度编码的符号的数目来选择的。
19.根据权利要求13到18中任何一个权利要求的方法,其特征在于:进行了可变长度编码的所述数量的符号中的每一个符号都是由一对数值表示的,这对数值中包含了表示数据符号值的第一数值以及表示所述数据符号之前或之后的零值数据符号数目的第二数值,所述第一和第二数值对表示的是所述进行了可变长度编码的符号。
20.根据权利要求13到19中任何一个权利要求的方法,其特征在于包括执行一个反向映射操作,其中使用了每一个可变长度码字来识别进行了可变长度编码的所述符号集中的一个特定符号。
21.根据权利要求20的方法,其特征在于,所述反向映射操作依赖于进行了可变长度编码的所述符号集中的所述数据符号的第二数量的指示。
22.根据权利要求21的方法,其特征在于:所述反向映射操作是如下执行的:选择可选分配表集合中的一个分配表,其中所述可选分配表集合中每一个表都定义了将要被编码的符号到码字的分配关系,并且根据所述选定分配表定义的分配关系来识别进行了可变长度编码的所述符号中的一个特定符号。
23.根据权利要求13到22中任何一个权利要求的方法,其特征在于:所述第一数量的数据符号是零值数据符号,所述第二数量的数据符号是非零数据符号。
24.一种用于对数据符号集进行编码的编码器,其中所述数据符号集包括具有第一数值的第一数量的数据符号以及值与所述第一数值不同的第二数量的数据符号,其中将要进行可变长度编码的符号集被安排为从所述数据符号集中形成,并且编码器包含了用于对将要进行可变长度编码的所述符号集进行可变长度编码的编码装置,其特征在于,编码器被安排为根据将要进行可变长度编码的符号数目对应用于将要进行可变长度编码的符号集的可变长度编码的至少一个特性进行适配,并且进一步被安排为提供一个关于进行了可变长度编码的符号的数目的指示,所述指示是一个表示将要进行可变长度编码的符号的数目的可变长度码字,它是根据将要进行可变长度编码的符号的数目而从至少两个可替换的可变长度码字集合中的一个集合中选出的。
25.根据权利要求24的编码器,其特征在于,它被安排为形成一个比特流,其中包含了将要进行可变长度编码的符号的数目的所述指示。
26.根据权利要求24或25的编码器,其特征在于,它被安排为将所述比特流发送到解码设备。
27.根据权利要求24、25或26的编码器,其特征在于,它被安排为根据在至少一个先前编码的数据符号集中进行了可变长度编码的符号的数目来选择一个可变长度码字,以便表示所述将要进行可变长度编码的符号的数目。
28.根据权利要求27的编码器,其特征在于,它被安排为基于在一个以上的先前编码的数据符号集中进行了可变长度编码的符号数目的均值来选择一个可变长度码字,以便表示所述将要进行可变长度编码的符号的数目。
29.根据权利要求24到28中任何一个权利要求的编码器,其特征在于,它被安排为通过执行一个定义值到码字的分配关系的映射操作来选择一个可变长度码字,以便表示所述将要进行可变长度编码的符号的数目。
30.根据权利要求29的编码器,其特征在于:它被安排为借助于一个映射表来执行所述映射操作,其中所述映射表是映射表集合中的一个映射表,此外它还被安排为根据在至少一个先前编码的数据符号集中进行了可变长度编码的符号的数目来选择所述映射表。
31.根据权利要求24到30中任何一个权利要求的编码器,其特征在于:它被安排为用一对数值来表示所述所述第二数量的数据符号中的每一个符号,其中这对数值中包含了表示数据符号值的第一数值以及表示所述数据符号之前或之后的零值数据符号数目的第二数值,由此形成了表示所述将要进行可变长度编码的符号的第一和第二数值对的一个集合。
32.根据权利要求24到32中任何一个权利要求的编码器,其特征在于:它被安排为执行一个映射操作,其中为所述每一个将要进行可变长度编码的符号都分配了一个码字,由此形成表示所述将要进行可变长度编码的符号的编码值的集合,该码字是从一个码字集合中选出的,并且其中对所述码字集合进行了设计,以便在所述映射操作中使用的时候减少表示所述将要进行可变长度编码的符号所需要的信息量。
33.根据权利要求32的编码器,其特征在于:所述映射操作被安排为依赖于数据符号的所述第二数量。
34.根据权利要求33的编码器,其特征在于:所述映射操作被安排为如下执行:选择可选分配表集合中的一个分配表,其中所述可选分配表集合中每一个表都定义了将要进行可变长度编码的符号到码字的分配关系,并且根据所述选定分配表定义的分配关系而将第二数量数据符号中的每个符号分配给一个码字。
35.根据权利要求24到34中任何一个权利要求的编码器,其特征在于:所述第数量的数据符号是零值数据符号,所述第二数量的数据符号是非零数据符号。
36.根据权利要求24到35中任何一个权利要求的编码器,其特征在于:所述编码器是在一个视频编码器中提供的。
37.根据权利要求24到36中任何一个权利要求的编码器,其特征在于:所述编码器是作为计算机可读存储介质上保存的机器可执行代码来实现的。
38.一种用于对表示数据符号集的可变长度码字进行解码的解码器,所述数据符号集包括具有第一数值的第一数量的数据符号以及值不同于所述第一数值的第二数量的数据符号,并且所述数据符号集是通过形成一个将要进行可变长度编码的符号集合来进行编码的,所述可变长度码字是通过将可变长度编码应用于所述将要进行可变长度编码的符号集来形成的,其特征在于:所述解码器被安排为根据进行了可变长度编码的符号集中的符号数目的指示对应用于可变长度码字的解码的至少一个特性进行适配,所述指示是一个表示进行了可变长度编码的符号的数目的可变长度码字,它是根据进行了可变长度编码的符号的数目而从至少两个可替换的可变长度码字集合中的一个集合中选出的。
39.根据权利要求38的解码器,其特征在于:所述符号集中进行了可变长度编码的所述符号数目的指示是从一个编码设备中接收的。
40.根据权利要求38或39的解码器,其特征在于:它被安排为根据在至少一个先前编码的数据符号集中进行了可变长度编码的符号的数目来对表示所述进行了可变长度编码的符号数目的可变长度码字进行解码。
41.根据权利要求40的解码器,其特征在于:它被安排为根据在一个以上的先前编码的数据符号集中进行了可变长度编码的所述符号的数目的均值来对表示所述进行了可变长度编码的符号的数目的可变长度码字进行解码。
42.根据权利要求38到41中任何一个权利要求的解码器,其特征在于:它被安排为通过执行定义了码字到数值的分配关系的反向映射操作来对表示所述进行了可变长度编码的符号数目的可变长度码字进行解码。
43.根据权利要求42的解码器,其特征在于,它被安排为借助于一个映射表来执行所述反向映射操作,其中所述映射表是映射表集合中的一个映射表,此外它还被安排为基于在至少一个先前编码的数据符号集中进行了可变长度编码的符号的数目来选择所述映射表。
44.根据权利要求38到43中任何一个权利要求的解码器,其特征在于:它被安排为对表示数据符号的可变长度码字进行解码,其中所述符号都包含了一对数值,这其中包括表示数据符号值的第一数值以及表示所述数据符号之前或之后的零值数据符号数目的第二数值。
45.根据权利要求38到44中任何一个权利要求的解码器,其特征在于:它被安排为通过执行一个反向映射操作来对所述可变长度码字进行解码,在所述反向映射操作中使用了每一个可变长度码字来识别进行了可变长度编码的所述符号集中的一个特定符号。
46.根据权利要求45的解码器,其特征在于:它被安排为根据所述数据符号集中的所述数据符号的第二数量的指示来执行所述反向映射操作。
47.根据权利要求46的解码器,其特征在于:它被安排为如下执行所述反向映射操作:选择可选分配表集合中的一个分配表,其中所述可选分配表集合中每一个表都定义了已进行可变长度编码的符号到码字的分配关系,并且根据所述选定分配表定义的分配关系来识别进行了可变长度编码的所述符号中的一个特定符号。
48.根据权利要求38到47中任何一个权利要求的解码器,其特征在于,所述第一数量的数据符号是零值数据符号,所述第二数量的数据符号是非零数据符号。
49.根据权利要求38到48中任何一个权利要求的解码器,其特征在于:所述解码器是在一个视频解码器中提供的。
50.根据权利要求38到48中任何一个权利要求的解码器,其特征在于:所述解码器是作为计算机可读存储介质上保存的机器可执行代码实现的。
51.一种多媒体终端,其中包含了根据权利要求24到37中任何一个权利要求的编码器。
52.一种多媒体终端,其中包含了根据权利要求38到50中任何一个权利要求的解码器。
53.根据权利要求40或41的多媒体终端,其特征在于:所述终端是一个移动多媒体终端,它被安排为借助于无线电连接来与移动电信网络进行通信。
CNA038025493A 2002-01-22 2003-01-22 图像/视频编码器和/或解码器中的编码变换系数 Pending CN1620816A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/054,610 2002-01-22
US10/054,610 US6690307B2 (en) 2002-01-22 2002-01-22 Adaptive variable length coding of digital video
US36950002P 2002-04-02 2002-04-02
US60/369,500 2002-04-02

Publications (1)

Publication Number Publication Date
CN1620816A true CN1620816A (zh) 2005-05-25

Family

ID=27615952

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA038025493A Pending CN1620816A (zh) 2002-01-22 2003-01-22 图像/视频编码器和/或解码器中的编码变换系数

Country Status (10)

Country Link
EP (1) EP1470724B1 (zh)
JP (1) JP4510465B2 (zh)
KR (1) KR100953677B1 (zh)
CN (1) CN1620816A (zh)
DE (1) DE60347000C5 (zh)
ES (1) ES2529344T3 (zh)
MX (1) MXPA04007053A (zh)
RU (1) RU2354073C2 (zh)
WO (1) WO2003063501A1 (zh)
ZA (1) ZA200405535B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231832A (zh) * 2011-06-24 2011-11-02 北京瀚景锦河科技有限公司 变长码编解码方法和***
CN103636224A (zh) * 2011-06-29 2014-03-12 高通股份有限公司 用于视频压缩中的系数等级译码的上下文
CN104754355A (zh) * 2010-01-19 2015-07-01 三星电子株式会社 对运动矢量进行编码和解码的方法和设备
CN111083475A (zh) * 2019-12-31 2020-04-28 上海富瀚微电子股份有限公司 量化变换系数管理装置及适用于hevc标准的编码器
CN115514967A (zh) * 2022-11-07 2022-12-23 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于二进制块双向编码的图像压缩方法及图像解压方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1314271C (zh) * 2003-09-09 2007-05-02 华为技术有限公司 一种视频编解码方法
US9088802B2 (en) 2005-01-07 2015-07-21 Nippon Telegraph And Telephone Corporation Video encoding method and apparatus, video decoding method and apparatus, programs therefor, and storage media for storing the programs
US8275045B2 (en) 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US8599926B2 (en) 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US9319700B2 (en) 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US8335261B2 (en) 2007-01-08 2012-12-18 Qualcomm Incorporated Variable length coding techniques for coded block patterns
US8467449B2 (en) 2007-01-08 2013-06-18 Qualcomm Incorporated CAVLC enhancements for SVC CGS enhancement layer coding
CN101658042B (zh) 2007-03-13 2016-03-02 诺基亚技术有限公司 用于视频编码和解码的***和方法
ES2369214T3 (es) 2007-03-14 2011-11-28 Nippon Telegraph And Telephone Corporation Método y dispositivo de estimación de la cantidad de código, su programa y medio de almacenamiento.
BRPI0808567A2 (pt) 2007-03-14 2014-09-02 Nippon Telegraph & Telephone Método e aparelho de pesquisa de vetor de movimento, programa para o mesmo, e meio de armazenamento, que armazena o programa
CN101637025B (zh) 2007-03-14 2016-03-23 日本电信电话株式会社 量化控制方法和量化控制装置
KR101083383B1 (ko) 2007-03-14 2011-11-14 니폰덴신뎅와 가부시키가이샤 부호화 비트 레이트 제어 방법 및 장치, 그 프로그램 및 프로그램을 기록한 기록매체
US8571104B2 (en) 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8619853B2 (en) 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
KR100842042B1 (ko) * 2007-07-16 2008-06-30 충남대학교산학협력단 암호화된 실행코드에 대하여 동적으로 복호화할 수 있게 한코드블록 암호화 방법
US8848787B2 (en) 2007-10-15 2014-09-30 Qualcomm Incorporated Enhancement layer coding for scalable video coding
RU2463728C2 (ru) * 2007-10-15 2012-10-10 Квэлкомм Инкорпорейтед Усовершенствованное кодирование улучшающего слоя для масштабируемого кодирования видео
US8902972B2 (en) 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
CN101779467B (zh) * 2008-06-27 2012-06-27 索尼公司 图像处理装置和图像处理方法
US8374451B2 (en) * 2008-06-27 2013-02-12 Sony Corporation Image processing device and image processing method for reducing the circuit scale
US8457425B2 (en) * 2009-06-09 2013-06-04 Sony Corporation Embedded graphics coding for images with sparse histograms
JP2011024066A (ja) * 2009-07-17 2011-02-03 Sony Corp 画像処理装置および方法
KR101456498B1 (ko) * 2009-08-14 2014-10-31 삼성전자주식회사 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US20120082230A1 (en) * 2010-10-01 2012-04-05 Qualcomm Incorporated Variable length coding of video block coefficients
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
US20120230418A1 (en) 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US20120230396A1 (en) * 2011-03-11 2012-09-13 Mitsubishi Electric Research Laboratories, Inc. Method for Embedding Decoding Information in Quantized Transform Coefficients
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE454734B (sv) 1987-02-20 1988-05-24 Harald Brusewitz Forfarande och anordning for sendning och mottagning vid variabel lengdkodning
JP3016456B2 (ja) * 1992-06-15 2000-03-06 日本電信電話株式会社 適応的可変長符号化方法
JPH06225279A (ja) * 1992-10-26 1994-08-12 Sony Corp 符号化方法、復号化方法、符号化装置及び復号化装置
US5400075A (en) * 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
KR100209410B1 (ko) * 1995-03-28 1999-07-15 전주범 영상 신호 부호화 장치
JPH08316846A (ja) * 1995-05-18 1996-11-29 Matsushita Electric Ind Co Ltd 画像符号化装置、画像復号化装置、画像符号化方法および画像復号化方法
JP3712919B2 (ja) * 2000-06-02 2005-11-02 日本電信電話株式会社 符号化データ再圧縮方法および符号化データ復元方法ならびにコンピュータにそれらの方法を実行させるためのプログラムを記録した記録媒体

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104754355A (zh) * 2010-01-19 2015-07-01 三星电子株式会社 对运动矢量进行编码和解码的方法和设备
CN104754355B (zh) * 2010-01-19 2018-11-23 三星电子株式会社 一种图像解码设备
US10484709B2 (en) 2010-01-19 2019-11-19 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding motion vector based on reduced motion vector predictor candidates
US10708616B2 (en) 2010-01-19 2020-07-07 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding motion vector based on reduced motion vector predictor candidates
CN102231832A (zh) * 2011-06-24 2011-11-02 北京瀚景锦河科技有限公司 变长码编解码方法和***
CN103636224A (zh) * 2011-06-29 2014-03-12 高通股份有限公司 用于视频压缩中的系数等级译码的上下文
CN103636224B (zh) * 2011-06-29 2018-03-06 高通股份有限公司 用于视频压缩中的系数等级译码的上下文
CN111083475A (zh) * 2019-12-31 2020-04-28 上海富瀚微电子股份有限公司 量化变换系数管理装置及适用于hevc标准的编码器
CN111083475B (zh) * 2019-12-31 2022-04-01 上海富瀚微电子股份有限公司 量化变换系数管理装置及适用于hevc标准的编码器
CN115514967A (zh) * 2022-11-07 2022-12-23 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于二进制块双向编码的图像压缩方法及图像解压方法

Also Published As

Publication number Publication date
RU2004125588A (ru) 2006-01-27
KR100953677B1 (ko) 2010-04-20
JP4510465B2 (ja) 2010-07-21
MXPA04007053A (es) 2004-10-11
ES2529344T3 (es) 2015-02-19
JP2005516497A (ja) 2005-06-02
KR20040077754A (ko) 2004-09-06
DE60347000C5 (de) 2020-08-06
RU2354073C2 (ru) 2009-04-27
ZA200405535B (en) 2005-05-25
EP1470724B1 (en) 2014-11-19
EP1470724A1 (en) 2004-10-27
WO2003063501A1 (en) 2003-07-31

Similar Documents

Publication Publication Date Title
CN1620816A (zh) 图像/视频编码器和/或解码器中的编码变换系数
CN1620761B (zh) 自适应可变长度编码和解码方法和对应的编码器和解码器
CN100521550C (zh) 用于数字视频的编码方法、解码方法、编码器和解码器
CN100380980C (zh) 用于在视频编码***中指示量化器参数的方法与设备
EP1391121B1 (en) Variable length coding
CN1643912A (zh) 用于在视频序列中对运动进行编码的方法
CN1585958A (zh) 基于上下文的自适应二进制算术编码的方法和***
CN101822057A (zh) 视频块标头信息的自适应译码
CN1866297A (zh) 基于上下文的自适应二进制算术编码的方法和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20050525