用于在视频压缩中进行精化系数编码的方法及系统的制作方法

文档序号:7676034阅读:104来源:国知局
专利名称:用于在视频压缩中进行精化系数编码的方法及系统的制作方法
技术领域
本发明通常涉及视频处理。更具体来说,本发明涉及编码及解码与视频压縮技术 有关的信息的方法及系统。
背景技水
计算机科技在视频压縮技术方面继续进步。视频压縮是指数字视频数据的压縮。 需要将视频压縮用于有效地编码呈视频文件格式及流式和广播视频格式的视频数据。 压縮是将数据转换成需要更少位的格式,通常执行压縮以便可更有效地存储或传输数 据。压縮的反过程是解压縮,解压縮产生原始数据的副本。
当今,许多视频压縮方法应用某一类型的离散变换(例如,离散余弦变换(DCT)) 来减少使用时域或空域预测技术产生的预测残余中的剩余空域冗余。许多视频压縮技 术还涉及量化,其可以是标量量化或向量量化。在量化后,可对量化系数进行熵编码 并将其放置在经压縮视频位流内。然后,将所述经压縮位流发送到解码器,所述解码 器将解压縮所述位流并恢复原始视频数据的极其近似值。
视频压縮技术可有益于各种媒体形式的消费者。例如,在广播工程中,可通过视 频压縮来实现数字电视。TV台不仅可广播HDTV还可在同一物理信道上广播多个虚 拟信道。数字视频广播可使用MPEG-2标準视频压缩格式。H.264/MPEG-4和VC-1作 为新的视频压縮标準正开始出现。
遗憾地,已知的用于编码视频压縮中的信息的系统和方法受到各种缺点的困扰。 因此,改进用于编码视频压缩中信息的系统和方法可大有裨益。本文描述某些用于编 码视频压縮中的信息的系统和方法。

发明内容


图1图解说明可縮放视频编码位流结构的一个实施例;
图2图解说明跨过网络将基础层和多个增强层从编码器发送到解码器的一个实施
例;
图3图解说明用于编码信息的方法;
图4图解说明解码经编码视频序列的方法的一个实施例; 图5图解说明被划分成多个宏块的图片帧的一个实施例; 图6图解说明分类显著性及精化系数的一个实施例; 图7图解说明一个可变长度编码(VLC)精化编码方案的缺点; 图8图解说明基于子带的编码次序的一个实施例;
图9图解说明可与精化编码中所用语法相关联的精化符号的一个实施例; 图10图解说明可变长度编码(VLC)表格的一个实施例; 图11图解说明多个细粒度可縮放性(FGS)层的一个实施例; 图12图解说明解决当显著性及精化编码交错时由于精化系数的分组而引起的问 题的一个实施例;
图13图解说明显著性编码及精化编码可交错并使用子带FGS编码次序的另一实
施例;
图14图解说明基于解码器解决方案的方法的一个实施例;
图15图解说明基于编码器解决方案的方法的一个实施例;及
图16图解说明方框图,其图解说明通常用于处理数字图像及/或数字视频的主要 硬件组件。
具体实施例方式
本发明揭示一种用于在经压縮视频序列的信噪比("SNR")可縮放增强层中编码 精化系数的方法。接收视频序列。从所述视频序列构建对当前帧中原始视频信号的预 测。通过从当前帧中的原始视频信号中减去所述原始视频信号的预测来形成残余信号。 对所述残余信号应用变换。量化多个变换系数。将精化系数映射成三元精化符号。以 特定编码次序来分组精化符号。使用可变长度码来编码所述精化符号群组。
可针对不同增强层自适应选择可变长度编码表格。在实施例中,基于所述精化符 号的概率估计自适应选择可变长度编码表格。特定可变长度编码表格的选择可基于增
强层的层级。在实施例中,所述特定可变长度编码表格的选择是基于系数是否是第一次精化或所述系数是否已在先前层中被精化。
在实施例中,所述方法使显著性系数与精化系数交错。识别包含多个块的片。可 在分组精化系数之前扫描所述多个块。确定编码所述精化系数所按照的次序。可根据 所确定的次序将所述精化系数存储在队列中。
在实施例中,使用可变长度编码表格一同编码每固定数量的连续精化系数。在实 施例中,将一片的精化系数分组在一起。可实施冲洗操作。所述可变长度编码表格包 含27-条目的可变长度编码表格,其中群组长度是三。在增强层上使用基于子带的编 码次序。
本发明还揭示一种电子装置,其实施用于在经压縮视频序列的SNR可縮放增强 层中编码精化系数的方法。所述电子装置包含处理器和与所述处理器进行电子通信的 存储器。包含存储于所述存储器中的指令。接收视频序列。从所述视频序列构建对当 前帧中原始视频信号的预测。通过从当前帧中的原始视频信号中减去所述原始视频信 号的预测来形成残余信号。对所述残余信号应用变换。量化多个变换系数。将精化系 数映射成三元精化符号。以特定编码次序来分组精化符号。使用可变长度码来编码所 述精化符号群组。
本发明还揭示一种计算机可读媒体,其包含实施用于在经压縮视频序列的SNR 可縮放增强层中编码精化系数的方法的指令。接收视频序列。从所述视频序列构建对 当前帧中原始视频信号的预测。通过从当前帧中的原始视频信号中减去所述原始视频 信号的预测来形成残余信号。对所述残余信号应用变换。量化多个变换系数。将精化 系数映射成三元精化符号。以特定编码次序来分组精化符号。使用可变长度码来编码 所述精化符号群组。
本发明还揭示一种用于解码经编码视频序列中精化系数的方法。接收经编码视频 序列。使用可变长度编码表格来解码精化符号。使用所述精化符号来解码精化系数, 其中所述精化系数是按特定编码次序分组的。逆量化多个变换系数。对精化信号应用 反变换。构建视频序列。
在实施例中,所述经编码视频流包含交错的显著性符号和精化符号。存储所请求 的精化系数的位置。存储对应基础层系数的记号。使计数器递增,所述计数器与所作 请求的数量有关。在实施例中,确定所述计数器是否达到预定计数。调用读取操作从 而致使正常可变长度编码表格解码。获得一群组精化符号。
现在参照所述图示描述本发明的各种实施例,其中相同参考编号指示相同或功能 类似的元件。如本文图示中整体所述及图解说明的本发明的各实施例可布置及设计成 各种不同的配置。因此,下文关于本发明的数个表示于图示中的实施例的更详细说明 并非打算限制本发明所主张的范围,而仅表示本发明的实施例。
本文所揭示实施例的许多特征可实施为计算机软件、电子硬件或两者的组合。为 清楚地说明硬件与软件的此可互换性,通常将从其功能性方面来描述各种组件。此功 能性是实施为硬件还是实施为软件可取决于特定应用及施加于整体系统上的设计约束条件。所属技术领域的技术人员可针对每一特定应用以不同方式实施所述功能性,但 是,此实施决定不应被解释为致使背离本发明的范围。
如果所述功能性实施为计算机软件,那么此软件可包含存储在存储器装置内及/ 或在系统总线或网络上作为电子信号传输的任一类型的计算机指令或机器可执行码。 实施与本文所述组件相关联的功能性的软件可包括单个指令或许多指令,且可分布在 数个不同的码段上、可分布在不同程序之间,且可分布在数个存储器装置上。
在普通的视频压縮技术(例如预测、变换及量化)之后,下一步骤就是对语法元素 及量化系数实施熵编码以形成位流。在视频解码器中,实施反过程。从所述位流解码 语法元素及量化系数。然后,实施反量化及反变换步骤。最后,将重建残余添加到所 述预测以重建视频信号。
由来自ISO/IEC MPEG及ITU-T VCEG的视频编码专家组成的联合视频组(JVT) 正在开发H.264/AVC的可縮放视频编码(SVC)扩展。称为JSVM(联合可縮放视频模型) 的共用软件正由参与人员使用。JSVM支持各种可縮放性特征。SVC位流可具有细粒 度可縮放性、空域可縮放性、时域可縮放性或所述三者的任一组合。
细粒度可縮放性(下文称为FGS)是视频编码的重要且非常需要的特征。此特征允 许几乎任意地截断经压縮视频位流,而同时为终端用户提供可接受的经解码视频质量 降级。随着视频解码器在此层中接收并解码更多的位,其将产生更好的视频质量。此 外,JSVM中的FGS是以将视频质量改进均匀散布于整个视频帧上的方式设计的,此 与仅集中在帧的某一空域区域内相反,因为后一情形会使终端观看者在视觉上反感。
FGS使用位平面编码来达成视频质量的优良改进。如果使用量化参数QP来量化 基础或先前层的视频帧,那么使用通常大约QP-6的量化参数来量化当前的增强层视 频,此可有效地将量化步骤大小减小一半。作为量化步骤大小较小的结果,更多的变 换系数将在增强层中变为非零。可将增强层中的所有非零系数分类为3种类型非显 著性系数、显著性系数和精化系数。"非显著性"系数是指在增强层中为零而在基础 层或先前层中的对应系数为零的那些系数。"显著性"系数是指在增强层中变为非零 而在基础层或先前层中的对应系数为零的那些系数。"精化系数"是指在基础或先前 层中已经为非零(即,显著性)的那些系数。所述系数的值将在当前增强层中得到精化。
因为精化系数与其他系数具有不同的统计数据,因此在FGS层中对其单独进行编 码。类似于H.264/AVC, SVC草案建议也支持两种熵编码模式基于上下文的自适应 二进制算数编码(CABAC)模式和基于上下文的自适应可变长度编码(CAVLC)模 式。提供关于CAVLC模式中改进的精化系数编码方案的细节,图中显示其不仅改进 编码效率而且可大大减小编码器及解码器两者的实施复杂性。
在FGS层中,使用两个语法元素发送精化系数系数—精化_旗标和系数_精化_ 方向_旗标。第一语法元素(系数—精化_旗标)规定精化系数层级是否等于O。不失普 遍性地,假设如果系数—精化_旗标等于0,那么精化系数层级的值等于O,而系数—精 化_旗标等于1规定精化系数层级的值等于-1或等于1。第二元素(系数—精化—方向一旗标)规定变换系数精化层级的记号与其基础或先前层表示的符号是相同还是不相同。 不失普遍性地,假设如果系数一精化_方向_旗标等于0,那么变换系数精化层级的记号 等于基础层中的对应系数的记号,否则所述精化层级具有相反记号。
在CAVLC模式中,在FGS层中编码所述精化系数的一种方式是逐个块地处理所 述精化系数。 一旦视频编码器开始编码块中的精化系数,那么在所述视频编码器编码 其它系数之前编码当前块中的所有精化系数。曾在JSVM的一个版本中采用此方案。
表格1提供此基于块的精化编码过程,将其总结成以下伪码。_
〃精化层级编码
〃vlc表格1是用于编码精化层级的VLC表格 在(仍是留在当前块中的精化系数){
以"Z"次序获得下一精化系数时
假定n^所述系数的层级
使用当前vlc表格1来编码层级m
更新所述精化层级状态
更新vlc表格1的值
冲洗留在位缓冲器中的精化层级位 //精化方向旗标编码
〃vlc表格2是用来编码精化方向的VLC表格 在(仍是留在当前块中的精化系数){
以"Z"次序获得下一精化系数时
如果(当前精化层级为非零)
如果(层级具有与基础系数相同的记号)
假定精化方向s=0 另外
假定精化方向s=l 使用当前vlc表格2编码方向s 更新精化方向状态 更新vlc表格2的值
冲洗留在位缓冲器中的精化方向位_
表l精化解码过程是以反次序实施以恢复语法系数_精化_旗标及系数一精化—方向—旗 标。通过所述两个旗标以及基础或先前层系数,解码器能够重建精化系数。解码器还 会以相同方式来维持并更新缓冲器中的统计信息以与所述编码器保持同步。
在表格1中,vlcTab(vlcTabl或vlcTab2)可取三个值中的一者,从而指示对精化 旗标语法实施VLC编码的不同方式。如果vlcTab=0,那么逐个位地发送所述精化语 法(旗标编码)。如果vlcTab=l,那么以三个位为一群组地发送所述精化语法。如果 vlcTab=2,那么以四个位为一群组地发送所述精化语法。vlcTab的值是根据当前视频 片中精化系数的累计统计学数据来自适应确定的。同样,编码器及解码器两者会记录 概率最大符号(MPS)的值,且如果所述MPS从0改变为1或从1改变为0,那么切换 正编码的实际符号。
当前CAVLC精化编码方法可具有相对较高的计算复杂性。例如,当前方法可需 要维持并更新两个精化语法(层级语法及方向语法)的累计统计学数据。当前的方法可 能需要更新vlcTaband MPS的值。当前的方法可能需要确保0及1的概率计数不会由 于在需要时将其往回縮放而溢出。自适应改变群组长度也可使所述实施方案复杂化。
与其相对较高的复杂性相一致,当前精化编码可能效率低下。模拟显示,对于某
些序列来说,CAVLC精化编码相比于CABAC精化编码可占用两倍的位(100%补偿), 然而使用CAVLC模式来替代CABAC的总位速率补偿通常仅约为15%或更少。此效 率低下很大程度上是由于CAVLC精化编码在每一块结束时实施两轮位冲洗操作(一个 针对层级语法,且另一个针对方向语法)。如果块包含很少的精化系数(例如,仅1个 或2个系数),那么频繁的冲洗操作可能无法将3或4个位分组在一起,因此会招致繁 重的位补偿,因为无法根据所述方案使用可变长度编码。
如本文所使用,术语"实施例(an embodiment)"、"实施例(embodiment)"、"实 施例(embodiments)"、"所述实施例(the embodiment)"、"所述实施例(the embodiments)"、"一个或一个以上实施例"、"某些实施例(some embodiments)"、 "某些实施例(certain embodiments)"、"一个实施例"、"另一实施例"及类似术语 意指"所揭示的本发明的一个或一个以上(但未必全部的)实施例",除非另外明确地 予以规定。
术语"确定"(及其语法变型)的使用具有极其广泛的意义。术语"确定"包含各 种动作且因此"确定"可包含计算、运算、处理、推导、研究、查询(例如,在表格、 数据库或另一数据结构中査询)、确定及类似动作。同样,"确定"可包含接收(例如, 接收信息)、存取(例如,存取存储器中的数据)及类似动作。同样,"确定"可包含解 决、选择、选定、建立及类似动作。
短语"基于"并不意味着"仅仅基于",除非另外明确予以规定。换句话说,短 语"基于"既描述"仅仅基于"又描述"至少基于"。
图1图解说明称为细粒度可缩放性(FGS)的可縮放视频编码位流结构的一个实施 例100。在FGS中,将视频序列压縮成具有至少两个层(基础层106和增强层104)的单个视频流。如所图解说明,FGS可进一步包含N个增强层102。
在一个实施例中,基础层106是视频序列的非可縮放编码且通常具有视频序列的 最低质量。增强层104及N个增强层102具有高于基础层106的质量层级的不同质量 层级。解码在基础层106之后编码的每一额外增强层使视频序列的质量增高。另外, FGS位流具有一个重要的优点在编码期间或之后,可实时地截断关于增强层104及 N个增强层102的位(从而减小位速率及因此提高经解码图片的质量)。此提供对传输 位速率的灵活控制且允许调节增强层104及N个增强层102以匹配可用传输位速率。
图2是网络方框图200,其图解说明跨越网络210将基础层202及N个增强层204 从编码器208发送到解码器212。解码器212可解码及使用基础层202及一个或一个 以上增强层204的全部或部分。解码器212构建原始视频序列206的最优近似值214。 在一个实施例中,将最优近似值214显示在显示器216(例如,计算机监视器、电视、 PDA、投影机等)上。将视频序列206编码为基础层202及一个或一个以上增强层204。 低质量基础层202表示最低的质量标准,且增强层204的每一者是对基础层202图片 质量的改进。在一个实施例中,使用如图1中解释的FGS视频编码格式来编码视频序 列206。所述FGS编码格式对其中可能事先不知晓可用传输带宽的视频流及广播应用 可尤其有用。在编码期间或之后,可任意截断增强层204以匹配可用的传输位速率。 随着所述可用的位速率改变,可实时地相应截断增强层204以提供相对于当前带宽最 优质量的经解码视频序列。例如,网络200可截断增强层204且然后以不同的位速率 将位流发送到不同的目的地。
图3图解说明用于编码信息的方法300。在一个实施例中,待编码的信息包括视 频序列。可在视频编码器中实施方法300,且可通过视频解码器来执行方法300的相 反方法。编码器是用于将信号或数据变成码的装置。然后,解码器可从所述码产生原 始信号或所述原始信号的近似值。编码器及解码器可统称为视频编码解码器,其将源 图像或视频序列编码成经压縮形式并解码所述经压縮形式以产生源序列的拷贝或近似 值。
方法300开始(302)于编码器接收(304)视频序列。在一个实施例中,所述视频序列 是未经压縮的视频信号。编码器开始通过利用邻近视频帧之间的相似性来压縮所述视 频序列并构建(306)当前视频信号的预测。从一个或一个以上先前或未来帧形成所述预 测并通过补偿所述帧之间的差别来改进所述预测。然后,通过从实际当前帧中减去所 述预测帧来形成(308)残余信号。编码器利用所述预测残余的邻近样本之间的相似性来 减少空域冗余。
方法300继续进行对所述残余信号应用(310)变换以减少剩余空域冗余。所述变 换将所述预测残余信号转换到另一域内,其中所述预测残余信号由变换系数来表示。 量化(312)所述系数以移除非显著性值,从而留下提供残余样本更紧凑表示的少量显著 性系数。在一个实施例中,使用QP-6来量化所述系数,此可有效地将量化步骤大小 减小一半。作为减小量化步骤大小的结果,在当前帧中更多数量的变换系数将变为非零。例如,使用方法300编码的预测残余可以在增强层中。如果使用量化参数QP来 量化(312)视频帧的先前层或视频帧的基础层,那么使用QP-6来量化(312)当前增强层。
在一个实施例中,可将增强层中的非零量化系数分类为非显著性、显著性、或 精化系数。"非显著性"系数是指在基础或先前层中为零而在当前增强层中仍为零的 那些系数。"显著性"系数是指在基础或先前层中为零但在当前增强层中变为非零系 数的那些系数。"精化"系数是指在基础或先前层中已经为非零的那些系数。在一个 实施例中,将每一精化系数映射(313)成三元精化符号。所述三元精化符号可具有三 个值中的一者。编码器扫描当前增强层并按照特定编码次序分组(314)所述精化符号。 在一个实施例中,编码器按照基于子带的编码次序来分组(314)连续精化符号。每一群 组精化符号被称为"精化符号群组"。然后,编码器编码(316)精化符号群组并将所述 码添加到位流。在一个实施例中,编码器使用来自VLC表格的可变长度码(VLC)来编 码(316)精化符号群组。在另一实施例中,可基于对精化系数的统计学分布的当前估计 从VLC表格集动态地选择用以编码一个精化符号群组的VLC表格。
在额外实施例中,编码器可编码来自多个增强层的精化符号。例如,编码器可根 据FGS编码格式来编码多个增强层。在一个实施例中,使用自适应VLC表格选择来 编码来自多个FGS增强层的精化符号群组。在另一实施例中, 一个FGS层的VLC表 格是固定的,但可与另一FGS层中所用的VLC表格不同。
图4图解说明解码经编码视频序列的方法400的一个实施例。解码方法400可以 是图3的编码方法300的相反方法。解码方法400开始(402)于解码器接收(404)经编码 视频序列。所述经编码视频序列还可称为位流。所述解码器使用所述VLC表格解码 (406)精化符号群组。如果使用基于所述精化系数的统计学分布的自适应VLC表格来 编码所述精化符号群组,那么在解码器中使用同一统计学信息来选择正确的VLC表 格。如果解码器接收来自多个增强层的经编码精化符号,那么所述解码器可根据其相 应的增强层来采用用以解码精化符号的VLC表格。
方法400继续且解码器使用最近解码的精化符号来解码(408)所述精化系数。然 后,解码器会在将经解码精化系数往回添加到基础或先前层的逆量化系数之前继续逆 量化(410)所述经解码精化系数。方法400继续对逆量化系数应用(412)反变换。在一 个实施例中,所述反变换可包含离散余弦反变换。在解码器对精化系数应用(412)反变 换之后,解码器构建(414)原始视频序列(如其在图3的编码方法300之前已存在)的近 似值。
图5图解说明将视频帧500划分成多个宏块的一个实施例。宏块是解码过程中的 基本数据单元。如所图解说明,可将视频帧500分割成多个固定大小的宏块,所述宏 块各自包含视频帧500的样本。在一个实施例中,每一宏块均包含16x16像素的样本。 在额外的实施例中,每一宏块均包含亮度(luma)分量及两个色度(charoma)分量。所述 亮度分量是关于特定样本的光亮度,而所述色度分量是关于所述样本的色彩特性。在 一个实施例中,将视频帧500进一步分割成多个片,片A502、片B504及片C506。片是按照特定编码次序连续地被处理的宏块的序列。例如,片A 502及包含在片A 502 内的宏块可在片B 504及片C 506之前进行编码并发送到解码器。在额外的实施例中, 编码各个片502、 504及506并将其发送到解码器的次序可以是任意的。例如,可在其 他片之前对片B 504进行编码并将其发送到解码器。类似地,可在其他两个片之前对 片C 506进行编码并将其发送到解码器。N个增强层中的每一宏块均对应于N-1个增 强层及基础层的每一者中的宏块。
图6图解说明如何对系数进行分类的实例。提供基础层系数块602和增强层系数 块604。基础层602和增强层604中的空白表示零系数。所述系数被称为非显著性系 数。剩余的空间606、 608、 608a及608b各自表示可具有非零值的系数。在一个实施 例中,基础层系数块602在使用FGS视频编码格式的先前增强层中。如先前所解释, 在图3的编码方法300期间,量化变换系数。在量化之后,增强层系数块604中的在 基础层系数块602中的其对应系数为零的非零系数称为显著性系数606。其在基础层 中的对应系数为非零的那些系数称为精化系数608。由于显著性系数606和精化系数 608具有不同的统计数据,因此在遵循FGS编码格式的增强层604中对其进行单独编 码。
在一个实施例中,显著性系数606是其在基础或先前层中的对应系数606a及 606b(表示同一子带的系数)为零的那些系数。精化系数608是其在基础层或先前层中 的对应系数608a及608b为非零的那些系数。
图7图解说明当前CAVLC精化编码方案(其中使用逐个块的编码次序)的缺点 700。所述逐个块的次序会固有地在视频帧710内产生空域不均匀的质量改进。如图7 中所示,当截断位流708时,在位流708中所表示的在截断之前的所有视频块704(块 0, 1,... n-l)相比于在截断714期间其精化系数丢失的视频块706(方框n等等)将具有更 好的视频质量712。编码所述精化系数的更好次序是使用基于子带的编码次序,此在 下一个图示中进行详细描述。
图8图解说明基于子带的编码次序800的一个实施例。在一个实施例中,第一方 框802、第二方框804及第三方框806是同一增强层中的三个系数块。在一个实施例 中,块802、 804及806是第一FGS增强层中的块以便可将基于子带的FGS编码次序 800扩展到并用于第一FGS层。相比于基于块的次序,基于子带的编码次序800根据 精化系数所归属的变换域子带来发送所述精化系数。在一个实施例中,块802、 804 及806中所示的记法Bx,y可表示子带y中及块x中的系数。例如,BO,O表示第一子 带(子带O)中及第一块802中的系数。
在一个实施例中,编码器首先编码存在于位置BO,O、 B1,0及B2,0处的任何精化 系数。然后,编码器编码存在于位置BO,l、 Bl,l及B2,1处的任何精化系数,依此类 推。子带编码次序800促进根据精化系数所归属的变换域子带来编码并发送所述精化 系数。使用子带编码次序800在接收更多精化位时产生更加空域均匀的质量改进。
图9图解说明可与精化编码中使用的两个语法(系数—精化—旗标902及系数—精化—方向_旗标904)相关联的精化符号(精化一符号)906的一个实施例900。如先前所解释, 如果精化系数具有为0的值,那么语法元素系数—精化—旗标902会被赋值为0。相应 地,被赋值的精化—符号906也为0。如果所述精化系数具有非零值,那么系数—精化— 旗标902被赋值为1。如果所述精化系数与基础层或先前增强层中对应的精化系数具 有相同记号,那么系数—精化_方向—旗标904被赋值为0。如果所述精化系数在基础层 或先前增强层中的记号与所述精化系数在当前正编码层中的记号相反,那么系数—精化 —方向—旗标904被赋值为1。在另一实施例中,使界定系数—精化_方向—旗标904的值 的参数反转。
如果系数—精化—方向—旗标904被赋值为0,那么精化—符号906被赋值为1,且 如果系数_精化_方向—旗标904被赋值为1,那么精化一符号906被赋值为2。然后,编 码精化—符号906的值并将其包含在位流中。下文提供编码精化一符号906的值的一个 实施例。
图10图解说明用来编码图9中所解释的参考符号值的可变长度编码(VLC)表格 1000的一个实施例。在子带编码次序下,可将连续的精化符号分组在一起并使用VLC 表格1000来编码精化符号群组1002。表格1000包含多个条目。每一条目均具有如 图9中所解释的精化符号群组1002的值、可变长度码(其用于编码特定值的精化符号 群组1002)的码长度1004、及可变长度码(其用于编码特定值的精化符号群组1002)的 码字1006。然后,将码字1006包含在位流中并发送到解码器。
在一个实施例中,在精化编码中使用如表格1000的单个VLC表格,而无需编码 器及解码器不断地累计并更新精化符号统计数据,因此,可大大减少计算复杂性。在 另一实施例中,基于精化系数统计学分布的估计来从多个表格中选择VLC表格,可通 过概率估计及表格选择的额外复杂性来改进所述效能。
现在参照图ll,当前SVC标准允许多个层在离散基础层1102的顶部上。当存在 多于一个FGS层1104和1106时,从第二FGC层1106开始且向上,所有精化系数属 于两个类别中的一者"旧"精化系数,其是已经具有先前FCS层1104中的精化系 数的那些精化系数,和"新"精化系数,其是在先前FGS层1104中刚刚变为显著性 且正输入当前层1106的精化阶段的那些系数。图11提供具有两个FGS层1104和1106 的实例。第一FGS层1104包含显著性系数1108以及精化系数1110。第二FGS层1106 包含"旧"精化系数1112以及"新"精化系数1114。系数1116在第二FGS层1106 中是新的显著性系数。剩余空白位置是不具有非零值的非显著性系数。
两种类型精化系数1112及1114具有不同的符号概率分布。因此,在一个实施例 中,最好使用不同的VLC表格来对其进行编码。此外,可依据当前FGS层的层级使 用不同的VLC编码表格。例如,可使用不同于用以编码包含在第一FGS层1104中的 精化系数的VLC表格的VLC表格来编码包含在第二 FGS层1106中的精化系数。因 此,应使用对于此概率分布来说更为协调的编码表格来改进效能。此VLC表格自适应 性具有极低的复杂性,因为其仅基于精化系数类别及FGS层层级,而不依赖于搜集及更新所述符号统计数据。在另一实施例中,可基于对当前FGS层精化系数的统计分布 的估计来动态地选择VLC表格。
图12图解说明解决由于当显著性及精化编码交错时分组精化符号所造成的问题 的一个实施例1200。在FGS编码中,通常将不同块的显著性编码通过及精化编码通 过交错在一起。为此的一个原因是一个块可能比另一块包含更少的显著性系数。当某 一块的显著性编码通过结束时,接下来开始此块的精化通过,而此块的下一个块仍将 经历其显著性编码通过。在一个实施例中,块A 1202的显著性编码(S0,0及然后EOB) 在两轮后结束。然后,将开始R0,0(且随后R0,1)的精化编码。但同时,块B 1204的显 著性编码(系数Sl,2及EOB)仍然在进行。
交错显著性及精化编码的另一原因是使用了子带编码次序。图13图解说明其中 可交错显著性编码与精化编码的另一实施例1300。在一个实施例中,在子带中扫描系 数。例如,当扫描第0个子带1306时,块A 1302包含显著性系数S0,0。因此,实施 S0,0的显著性编码。类似地,当扫描块B 1304的第0个子带1306时,实施精化系数 Rl,O的精化编码。
显著性与精化编码的此交错行为在完成所述精化编码时会由于多个(例如,三个) 精化系数的分组而产生一个问题。在编码器侧处,在发出VLC码字之前,对三个精化 符号进行缓冲。但在解码器侧处,每当遇到解码精化系数时,解码器就会试图从位流 读取表示一群组三个精化符号的VLC码字。但此码字仍在编码器的编码缓冲器中进行 缓冲而尚未发送。编码器与解码器之间的同步损失意味着此编码方案(在显著性及精化 通过交错时分组精化符号)将失效。为解决此问题提供两种解决方案并在以下予以阐 述。
图14图解说明不需要在编码器侧处进行改变的基于编码器的解决方法1400的方 法。编码器可在发出码字之前始终试图将每三个精化符号分组在一起。在解码侧处, 当请求精化系数时,实施以下操作。方法1400开始于将计数器初始化(1402)为零。存 储所请求的精化系数的位置(1404),存储对应基础层系数的记号(1406),递增计数器(在 片解码开始时初始化为零)以记录已作出此请求的次数(1408),如果此计数器达到三 (1410),那么调用"读取"操作(1412)并实施正常VLC解码。返回一群组三个精化符 号,然后将所述三个精化符号往回分配到如先前存储的对应的系数位置(1414),且将 所述计数器重设为零(1416)。如果所述计数器尚未达到三(1410),那么方法1400返回 到步骤1402并继续进行。
尽管解码器侧解决方案对解码器增加更重的负担,然而所述编码器侧解决方案对 解码器具有最小的复杂性影响。基本的概念是编码器始终预先发送多个(例如,三个)
精化系数,保证所述解码器在请求精化系数时缓冲器中存在足够的精化符号。图15 图解说明一种基于编码器的解决方法的方法1500。编码器预先扫描片中某一数量的块 (1502),且确定在实际编码阶段期间发送所有精化系数的次序(1504)。接下来,根据此 编码次序将所述精化系数存储在队列中(1506)。在编码阶段处,当需要发送精化系数时,确定是否将其与先前系数分组在一起及是否已将其发出(1508)。如果如此,那么
不釆取任何动作(1510);否则, 一同发送此精化系数以及在所述队列中其紧邻的两个
系数(1512)。方法1500会继续直到所述编码通过结束为止。
应注意,基于编码器及基于解码器的两个解决方案均适于来自不同块的显著性通 过与精化通过的任一类型的交错,其中包含但不限于SVC草案推荐中当前支持的两个 编码次序。所述两种解决方案还适于分组任何数量的精化符号,而并非仅限于分组三 个符号。
还应注意,所述基于解码器及基于编码器的两个解决方案可均适于SVC联合草 案5(JD5)中所界定的基于块的精化编码,因此无需在每一块结束时冲洗存储在缓冲器 中的剩余精化位。对于基于解码器的解决方案,在编码器侧处的进一步改变可保证编 码器与解码器同步化。由于JD5中基于块的精化编码方案自适应VLC表格,因此所 分组的精化符号数量可在1、 3和4之间改变。在块结束时,编码器应暂停所述VLC 表格自适应直到其遇到足够数量的精化系数为止(此将在随后当编码器实施后续块的 精化编码时发生)。当遇到足够的精化系数以调用VLC码字的写入操作时,编码器可 再继续所述正常的VLC表格自适应。在此方案下,可最小化在当前精化编码中使用的 频繁的冲洗操作(每一块完成一个),且可大大改进编码效能。
在编码某一数量的精化系数结束时,如果剩余精化系数的数量并非为零且小于典 型的编码过程中使用的群组大小,那么可使用冲洗操作。实施冲洗操作的一个方式是 添加概率最大的符号以形成完整的群组,且如同其他群组那样编码最后一个群组。例
如,假设典型群组大小被设为3,冲洗操作中存在一个待编码的剩余系数,且所述符 号为2。将对群组(2,0,0)进行编码,假设符号"0"是所述三元符号集中概率最大的符 号。在解码器侧处,舍弃所述填充符号。也可更为频繁地实施冲洗操作来减小实施方 案的复杂性。 一同编码的一群组精化系数来自不同的位置。限制同一群组中系数之间 的距离会导致某些未分组符号,需要通过冲洗操作对所述未分组符号进行处理。在另 一实施例中,并非通过添加将被解码器所舍弃的概率最大符号来形成完整的群组,而 是使用经设计用于编码较小群组的VLC表格。此可在解码器准确地知晓待冲洗的精化 系数的数量时使用。假设群组大小为3,且仅有一个待冲洗的系数"R"。并非使用用 于编码3个符号的群组的VLC表格来编码群组(R, 0, 0),而使用特殊的VLC表格更为 有效。例如,将值为"0"的精化符号编码为"1",将值为"1"的精化符号编码为"01", 且将值为"2"的精化符号编码为"00"。类似地,如果群组大小为3,那么存在两个 待冲洗的系数"R1"及"R2"。可针对编码较小的群组(R1,R2)使用不同的VLC表格 而并非对群组(R1,R2,0)进行编码。在一个实施例中,使用指数Golomb码来编码计算 为RP3+R2的所述群组的索引。应注意,等效地,还可将所述群组的经编码索引形成 为Rl+R2*3。
图16图解说明经配置以处理数字图像及/或数字视频的装置1600。装置1600可 表示或实施在数字电视、数字直接广播系统、无线通信装置、个人数字助理(PDA)、膝上型计算机、桌上型计算机、数码相机、数字记录装置、具有网络功能的数字电视、 蜂窝式或卫星无线电电话、或任一具有视频电话(VT)能力的电信装置中。
装置1600可处理,编码,解码,传输及/或接收图像及/或视频数据。所述视频数
据可由视频照相机(例如,视频捕获单元(或图像传感器))1612来捕获,从视频文件存 储器检索,或以另一方式获得。装置1600中的视频编码单元1610可使用视频编码标 準,例如,MPEG-4、 ITU-T H.263、 ITU-T H.264或任一其他视频编码标準。视频编码 单元1610可支持帧间编码技术(例如,运动估计及运动补偿)及帧内编码技术(例如,空 域估计及内部预测编码技术)。
装置1600可包含图像/视频捕获装置1612(例如,照相机或视频照相机)以捕获图 像或视频序列并将所捕获的图像或序列存储在存储器1614中。图像/视频处理单元 1602可处理图像及/或视频序列。存储器1604可在所述处理之前及之后存储所述图像 及/或视频序列。
收发器1616可接收及/或将经编码的视频序列传输到另一装置。收发器1616可使 用无线通信标準,例如,码分多重接入(CDMA)。 CDMA标準的实例包含CDMA lxEV-DO、 WCDMA等。
装置1600的一个或一个以上元件可经由通信总线1618通信地耦合。除了或替代 图16中所示的元件外,装置1600中还可包含其他元件。图16中所图解说明的架构仅 是实例。可通过各种其他架构来实施本文所述的技术。
存储器1614可具有相对较大的存储器空间。存储器1614可包括动态随机存取存 储器(DRAM)或快闪存储器。存储器1614可包括"NOR"或"NAND"门存储器技术 或任一其他数据存储科技。在其他实例中,存储器1614可包括非易失性存储器或任一 其他类型的数据存储单元。
图像/视频处理单元1602可包括用于移动无线电电话的芯片组,其可包含硬件、 软件、固件及/或一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路 (ASIC)、现场可编程门阵列(FPGA)或其各种组合。处理单元1602可包含耦合到前端 图像/视频处理单元1608的本地存储器1604及图像/视频编码单元1610。编码单元1610 可包括用于编码(或压縮)及解码(或解压缩)数字视频数据的编码器/解码器(CODEC)。
本地存储器1604可包括相对于存储器1614更小且更快的存储器空间。例如,本 地存储器1604可包括同步动态随机存取存储器(SDRAM)。本地存储器1604可包括与 处理单元1602的其他组件集成在一起的"芯片上"存储器以在处理器密集的编码过程 期间提供快速的数据存取。然而,可将存储器1614及1604组合成一个存储器,或可 以许多其他配置来实施。存储器控制器1606可控制对本地存储器1604的从存储器取 数据及回写。
前端图像/视频处理单元1608可对视频序列的帧实施一种或一种以上图像处理技 术以改进图像质量,且由此改进视频序列的质量。例如,前端图像/视频处理单元1608 可实施例如以下技术去马赛克、透镜滚降校正、按比例縮放、色彩校正、色彩转换及空域过滤。前端图像/视频处理单元1608还可实施其他技术。通常,单元1608所实 施的技术被称为"前端"图像处理技术,因为所述技术通过图像/视频编码单元1610 进行优先编码。
图像/视频捕获单元1612可包括图像传感器,所述图像传感器包含布置在所述传 感器的表面上的色彩过滤器阵列(CFA)。单元1608所实施的前端图像处理可改进捕获 单元1612所捕获视频序列的质量。例如,前端处理单元1608及/或编码单元1610可 包括经编程以处理捕获单元1612所捕获的图像的DSP。存储器1604(或存储器1614) 的同一区域既可用于前端图像处理的目的也可用于其他存储目的。
图像/视频编码单元1610可实施图像及/或视频编码,所述图像及/或视频编码可包 含一种或一种以上视频压縮技术,例如,帧间压縮及/或帧内压縮。例如,编码单元1610 可实施运动估计及运动补偿技术以利用时域或帧间数据相关性来提供帧间压縮。作为 另一选择或另外地,编码单元1610可实施空域估计及内部预测技术以利用空域或帧内 数据的相关性来提供帧内压縮。运动补偿(或内部预测)的输出被称为"残余"且可包 括数据块,所述数据块指示待编码的当前视频块与由运动估计或空域估计所识别的预 测块之间的差别。
在编码单元1610实施运动补偿(或内部预测)以产生所述残余之后,可实施一系列 额外步骤以进一步编码所述残余及进一步压縮所述数据。所述额外步骤可取决于所使 用的编码标准,但通常被称为"残余编码"。编码单元1610可实施所述视频压縮技术 中的一者或一者以上以减少经由收发器1616将视频序列通信到另一装置所需的数据 量。
可使用各种不同科技及技术的任一者来表示信息和信号。例如,上文说明中可能 提及的数据、指令、命令、信息、信号、位、符号及芯片可均由电压、电流、电磁波、 磁场或磁粒子、光场或光粒子或其任一组合来表示。
结合本文揭示的实施例所描述的各种说明性逻辑块、模块、电路及算法步骤可实 施为电子硬件、计算机软件或二者的组合。为清楚地说明硬件与软件的此可互换性, 上文通常从其功能性方面来描释各种说明性组件、块、模块、电路及步骤。此功能性 是实施为硬件还是实施为软件取决于特定应用及施加于整个系统的设计约束条件。所 属技术领域的技术人员可针对每一特定应用以不同方式实施所述功能性,但是,此实 施确定不应被解释为致使背离本发明的范围。
结合本文所揭示的实施例所描述的各种说明性逻辑块、模块、及电路可通过下列 组件来实施或执行通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场 可编程门阵列信号(FPGA)或其他可编程逻辑装置、离散门或晶体管逻辑、离散硬件组 件、或经设计以执行本文所述功能的其任一组合。通用处理器可以是微处理器,但在 替代实施例中,处理器可以是任一常规处理器、控制器、微控制器或状态机。处理器 还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、 一个或 一个以上微处理器结合DSP内核、或任一其他此配置。结合本文所揭示实施例描述的方法或算法的步骤可直接包含在硬件、由处理器执 行的软件模块或所述二者的组合中。软件模块可驻存于RAM存储器、快闪存储器、 ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸磁盘、CD-ROM 或此项技术中已知的任一其他形式的存储媒体中。存储媒体耦合到处理器以使得所述 处理器可从所述存储媒体读取信息及将信息写入到所述存储媒体。在替代实施例中, 所述存储媒体可以是处理器的组成部分。处理器及存储媒体可驻存在ASIC中。而所 述ASIC可驻存在用户终端中。在替代实施例中,所述处理器及存储媒体可作为离散 组件驻存在用户终端机中。
本文所揭示的方法包括用于达成所述方法的一个或一个以上步骤或动作。所述方 法步骤及/或动作可彼此互换而不背离本发明的范围。换句话说,除非需要特定的步骤 或动作次序来达成实施例的适当操作,否则可在不背离本发明的范围的条件下修改特 定步骤及/或动作的次序及/或用途。
尽管己图解说明并描述了本发明的特定实施例及应用,但应理解本发明并非局限 于本文所揭示的具体配置及组件。可对本文所揭示的本发明方法及系统的布置、操作 及细节作出各种对于所属技术领域的技术人员来说是显而易见的修改、改变及变化而 不违背本发明的精神及范围。
权利要求
1、一种用于在经压缩视频序列的信噪比(SNR)可缩放增强层中编码精化系数的方法,其包括接收视频序列;从所述视频序列构建对当前帧中的原始视频信号的预测;通过从所述当前帧中的所述原始视频信号中减去所述原始视频信号的所述预测来形成残余信号;对所述残余信号应用变换;量化多个变换系数;将精化系数映射成三元精化符号;以特定编码次序分组精化符号;及使用可变长度码来编码所述精化符号群组。
2、 如权利要求1所述的方法,其进一步包括使用针对不同增强层而自适应选择 的可变长度编码表格。
3、 如权利要求1所述的方法,其进一步包括使用基于所述精化符号的概率估计 而自适应选择的可变长度编码表格。
4、 如权利要求2所述的方法,其中特定可变长度编码表格的所述选择是基于增 强层的层级。
5、 如权利要求4所述的方法,其中特定可变长度编码表格的所述选择是基于是 否正第一次精化系数或是否已在先前层中精化过所述系数。
6、 如权利要求1所述的方法,其中所述方法使显著性系数与精化系数交错,其 进一步包括识别包含多个块的片;在所述分组所述精化系数之前扫描所述多个块; 确定将用来编码所述精化系数的次序;及 根据所确定的所述次序将所述精化系数存储在队列中。
7、 如权利要求l所述的方法,其进一步包括识别包含多个块的片。
8、 如权利要求1所述的方法,其进一步包括在所述分组所述精化系数之前扫描 所述多个块。
9、 如权利要求1所述的方法,其进一步包括确定将用来编码所述精化系数的次序。
10、 如权利要求l所述的方法,其进一步包括根据所确定的所述次序将所述精化 系数存储在队列中。
11、 如权利要求l所述的方法,其中使用所述可变长度编码表格来一同编码每一 固定数量的连续精化系数。
12、 如权利要求l所述的方法,其进一步包括将一片的精化系数分组在一起。
13、 如权利要求l所述的方法,其进一步包括实施冲洗操作。
14、 如权利要求13所述的方法,其中所述冲洗操作包含将一个或一个以上概率 最大符号添加到一个或一个以上精化符号以形成完整的群组。
15、 如权利要求13所述的方法,其中所述冲洗操作包含使用可变长度编码表格, 所述可变长度编码表格是基于所述冲洗操作中待处理的精化系数的数量来选择的。
16、 如权利要求l所述的方法,其中所述可变长度编码表格包括27条目的可变 长度编码表格,其中群组长度是三。
17、 如权利要求1所述的方法,其进一步包括在所述增强层上使用基于子带的编 码次序。
18、 一种经配置以在经压縮视频序列的信噪比(SNR)可縮放增强层中编码精化系 数的电子装置,所述电子装置包括处理器;存储器,其与所述处理器电子通信;指令,其存储在所述存储器中,所述指令可执行以接收视频序列;从所述视频序列构建对当前帧中的原始视频信号的预测;通过从所述当前帧中的所述原始视频信号中减去所述原始视频信号的所述预测来形成残余帧;对所述残余信号应用变换; 量化多个变换系数; 将精化系数映射成三元精化符号; 以特定编码次序来分组精化符号;及 使用可变长度码来编码所述精化符号群组。
19、 如权利要求18所述的电子装置,其中所述指令可进一步执行以使用针对不 同增强层而自适应选择的可变长度编码表格。
20、 如权利要求18所述的电子装置,其中所述电子装置经配置以交错显著性系 数与精化系数,且其中所述指令可进一步执行以识别包含多个块的片;在所述分组所述精化系数之前扫描所述多个块; 确定将用来编码所述精化系数的次序;及 根据所确定的所述次序来将所述精化系数存储在队列中。
21、 一种计算机可读媒体,其包括用于在经压縮视频序列的信噪比(SNR)可縮放 增强层中编码精化系数的可执行指令,所述指令包括接收视频序列;从所述视频序列构建对当前帧中的原始视频信号的预测;通过从所述当前帧中的所述原始视频信号中减去所述原始视频信号的所述预测 来形成残余信号;对所述残余信号应用变换; 量化多个变换系数; 将精化系数映射成三元精化符号; 以特定编码次序分组精化符号;及 使用可变长度码来编码所述精化符号群组。
22、 一种用于解码经编码视频序列中的精化系数的方法,其包括 接收经编码视频序列; 使用可变长度编码表格来解码精化符号;使用所述精化符号来解码精化系数,其中所述精化系数是以特定编码次序分组的;逆量化多个变换系数; 对精化信号应用反变换;及构建视频序列。
23、 如权利要求22所述的方法,其进一步包括使用针对不同增强层而自适应选 择的不同可变长度编码表格。
24、 如权利要求22所述的方法,其中所述经编码视频流包含交错的显著性符号 及精化符号,所述方法进一步包括存储所请求的所述精化系数的位置; 存储所述对应基础层系数的记号;及 递增与所作出请求的数量相关的计数器。
25、 如权利要求24所述的方法,其进一步包括-确定所述计数器是否达到预定计数;调用读取操作并致使正常可变长度编码表格解码以获得精化符号群组。
26、 如权利要求25所述的方法,其进一步包括将所述精化符号群组存储到与先 前所存储的对应位置。
27、 如权利要求22所述的方法,其进一步包括实施冲洗操作。
28、 如权利要求27所述的方法,其中所述冲洗操作包含舍弃所填充的符号。
29、 如权利要求27所述的方法,其中所述冲洗操作包含使用可变长度编码表格, 所述可变长度编码表格是基于所述冲洗操作中待处理的精化系数的数量来选择的。
30、 一种经配置以在经压縮视频序列的信噪比(SNR)可縮放增强层中编码精化系 数的电子装置,所述电子装置包括用于接收视频序列的装置;用于从所述视频序列构建对当前帧中的原始视频信号的预测的装置; 用于通过从所述当前帧中的所述原始视频信号中减去所述原始视频信号的所述 预测来形成残余帧的装置;用于对所述残余信号应用变换的装置;用于量化多个变换系数的装置;用于将精化系数映射成三元精化符号的装置;用于以特定编码次序分组精化符号的装置;及用于使用可变长度码来编码所述精化符号群组的装置。
全文摘要
本发明揭示一种用于在经压缩视频序列的信噪比(SNR)可缩放增强层中编码精化系数的方法。接收视频序列。从所述视频序列构建对当前帧中的原始视频信号的预测。通过从所述当前帧中的所述原始视频信号中减去所述原始视频信号的所述预测来形成残余信号。对所述残余信号应用变换。量化多个变换系数。将精化系数映射成三元精化符号。按特定编码次序来分组精化符号。使用可变长度码来编码所述精化符号群组。
文档编号H04N7/50GK101411197SQ200780010633
公开日2009年4月15日 申请日期2007年3月26日 优先权日2006年3月27日
发明者琰 叶, 鲍易亮 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1