用于自适应块变换的基于上下文的自适应可变长度编码制造技术

技术编号:3588049 阅读:166 留言:0更新日期:2012-04-11 18:40
使用基于上下文的自适应VLC来对图像进行编码的方法和系统,其中变换系数被划分成具有4n×4m(其中n和m为大于或等于1的正整数)维度的块。以Z字形方式扫描每个块以产生长度为16n×m的排序系数矢量。在使用熵编码器对变换系数编码之前,以交织的方式对该排序的矢量进行子抽样以产生n×m个变换系数子抽样序列。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术总体上涉及视频编码和压缩领域,尤其涉及基于上下文的 自适应可变长度编码的方法和系统。
技术介绍
典型的视频编码器将原始视频序列的每个帧划分成连续的矩形区 域,这种矩形区域称为块。这些块以帧内模式U模式),或 者帧间模式(P模式)编码。对于P模式,编码器首先在先前发送 的基准帧中搜索与正在被编码的块相似的块,所述的基准帧 由Fw表示。搜索一般限制到不超过距将被编码的块某个空间移位。在 最佳匹配或预测已经被识别时,它以两维(2D)运动矢量(Ax,Ay) 的形式表达,其中Ax是水平移位,而Ay是垂直移位。用该运动矢量 连同基准帧一起构成一个预测块FPr:Fpred (x, y) =Fref (x+Ax, y+Ay) 像素在帧中的位置由(x,y)表示。对于以I模式编码的块,用空间预测从同一帧中先前编码的相邻 块来形成预测块。对于I模式和P模式,预测误差,也就是正在编码 的块和预测块之间的差,被表示成一些离散变换的一组加权基函数。 变换一般基于8x8或4x4的块执行。加权变换系数随后被量化。量化 引入了信息丟失,因此量化系数的精度比原始系数精度低。量化变换系数和运动矢量为语法元素的例子。这些加上一些 控制信息形成视频序列的完整的编码表示。在从编码器传送到解码器 之前,对所有的语法元素进行熵编码,从而进一步减少表示它们所需的比特数目。熵编码是一种无损耗运算,其目的在于通过利用码元的 分布特性(一些码元比其它码元更频繁地出现),将需要用来表示发 送或存储码元(在此情况下为语法元素)的比特数最小化。视频编码器使用的一种熵编码方法为可变长度码(VLC) 。 VLC码 字是一个比特(0和1 )序列,它被分配给每个码元。该VLC被这样构 造使得码字长度和由码字表示的码元出现的频繁程度相对应,例如, 越频繁出现的码元由越短的VLC码字表示。此外,VLC应该如此构造,以使码字可唯一地被解码,即,如果解码器接收一个有限长度的有效 比特序列,则必须只有一种可能的输入码元序列,它在编码时产生收 到的比特序列。为了正确地解码比特流,编码器和解码器必须使用同一组VLC码 字和同样的码元分配。如上所述,为了使压缩最大化,应当将最短的 VLC码字分配给最频繁出现的码元。然而,不同码元的频率(概率)取 决于所编码的实际帧。在使用单组VLC码字并且码元恒定地分配给那 些码字的情况下,码元在给定帧中的概率分布很可能与VLC所假设的 概率不同,甚至贯穿整个序列的平均码元概率也不同。因此,使用单 组VLC码字以及码元到那些码字的单一分配降低了编码效率。为了克服这种困难使用了不同的适配方法。现在描述一种方法, 它提供了合理的计算复杂度和良好的压缩和效率的折衷,并且它当前 被用在现有技术的视频编码器中。对于一组码元,向编码器和解码器 提供了多个规定VLC码字(VLC)的表来使用。选择用来对特定码元进 行编码的表则取决于编码器和解码器都已知的信息,比如编码块的类 型(I或P类型块)、被编码的分量(亮度或色度)、或量化参数(QP ) 值。所述性能取决于用于在VLC之间切换的参数表征码元统计特性的 表现。在解码器中,通过首先以与在编码器中同样的方式来构造预测, 并且将压缩的预测误差加到预测中从而获得当前帧中的块。通过使用 量化系数来加权变换基函数从而找到压缩的预测误差。重构帧和原始 帧之间的差叫做重构误差。可以通过调整在量化变换系数时使用的量化参数(QP)值来控制 压缩比,即用来表示原始序列的比特数和用于表示压缩序列的比特数 之比。压缩比还取决于所采用的熵编码方法。在给定块中的系数用z字形扫描来排序(扫描),从而得出一个 一维排序系数矢量。用于4x4块的一个示范性Z字形扫描在图1中示 出。Z字形扫描假设在运用2维(2D)变换之后,具有大多数能量(即 较高值系数)的变换系数对应于低频变换函数并且处于块的左上边, 如图1所示。因此,在通过Z字形扫描产生的系数矢量中,较大的系 数极可能在矢量开始时出现。在量化之后,大多数低能量系数变得等 于0之后。能够进一步处理系数矢量以便每个非零系数由2个值来表示游 程(run)(矢量中非零值前面的连续零系数的数目),和等级(level) (系数值)。CAVLC (基于上下文的自适应VLC)是在JVT编码器中使用的编码 变换系数的方法(Joint Final Committee Draft (JFCD) of Joint Video Specification ( ITU-T Rec. H. 2641IS0/IEC 14496-10 AVC,,))。简言之,使用CAVLC对单个的4x4块编码包括5个步骤1. 与拖尾1 (trailing ones)相结合,对块中非零系数的总 数进行编码。将拖尾l的数目定义成当以倒序(即,图1中的15, 14, 13, 12, 11,......)读出系数矢量时,在遇到幅度大于1的系数之前遇到的幅度为1的系数的数目。用于编码该信息的VLC基于预测的非零系数数 目,其中预测基于在先前编码的相邻块(左上块)中的非零系数数目。2. 对任意拖尾1的符号进行编码。3. 对拖尾l之外的非零系数的等级(幅度)进行编码。4. 对系数矢量中对处在最后一个非零系数前面的零值的数目进行 编码,即对所有游程的总和进行编码。在编码该值时所使用的VLC 取决于块中非零系数的总数,因为这两个值之间存在一定的关系。5. 从系数矢量中的最后一个非零值开始,对在每个非零系数之前 出现的游程进行编码。用于编码游程值的VLC是基于来自步骤(4)的游程总和选择的, 并且游程的总数如此程度地编码。例如,如果一个块的游程总和 为8,并且所编码的第一游程为6,那么所有的剩余游程必须为0, 1, 或2。因为可能的游程长度渐渐变短,所以选择更高效的VLC码来最小化表示游程所需的比特数目。图2示出了一种典型的基于块的视频编码器。如图2中所示,视 频服务器100包括一个前端单元10,它从视频源接收视频信号110, 还包括一个视频多路复用编码器40。从视频源提供给输入110的每个 未经压缩的视频帧以光栅扫描的顺序逐个宏块地被接收和处理。前端 单元10包括一个编码控制管理器12在I模式和P模式之间切换,并 且经由控制信号120和多路复用编码器40来执行定时协调,还包括一 个DCT (离散余弦变换)变换模块16和量化器14,以提供量化的DCT 系数。将量化的DCT系数122转送到多路复用编码器40。前端单元10 还包括一个逆向量化器18和一个逆向变换单元20,以执行基于块的逆 向离散余弦变换(IDCT),前端单元10包括一个运动补偿预测和估计 模块22,以减少视频序列中的时间冗余,并且为了误差预测和补偿的 目的,提供预测差错帧。运动估计模块22还向到多路复用编码器40 提供每个宏块的运动矢量124。多路复用编码器40典型地包括一个扫 描模块42来执Z字形描述,以便为图像数据的每个块形成顺序矢量, 还包括一个熵编码模块来用游程和等级参数指定非零量化DCT系数。 游程和等级值进一步映射到二进制序列,每个二进制序列由上下文分 配模块分配到所谓的上下文。上下文连同运动矢量一起被格式化 成比特流140。基于上下文的编码器为本领域所公知。此外,变本文档来自技高网...

【技术保护点】
一种使用表示图像的图像数据进行图像编码的方法,其中从图像数据形成至少一个变换系数块,并且变换系数块被扫描以便提供位于该序列中多个位置的变换系数序列,其中该位置包括基准位置,以便所述多个位置中的每个位置相对于基准位置定义一个距离,所述方法的特征在于:给每个距离分配一个成本值,基于该成本值将该序列中的变换系数排列成多个子序列,以及使用熵编码器对变换系数子序列进行编码。

【技术特征摘要】
US 2002-10-3 10/2642791.一种使用表示图像的图像数据进行图像编码的方法,其中从图像数据形成至少一个变换系数块,并且变换系数块被扫描以便提供位于该序列中多个位置的变换系数序列,其中该位置包括基准位置,以便所述多个位置中的每个位置相对于基准位置定义一个距离,所述方法的特征...

【专利技术属性】
技术研发人员:M卡策维茨J里奇
申请(专利权)人:诺基亚有限公司
类型:发明
国别省市:FI[芬兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1