用于对与视频压缩相关联的信息进行编码及解码的方法及系统的制作方法

文档序号:7676020阅读:166来源:国知局
专利名称:用于对与视频压缩相关联的信息进行编码及解码的方法及系统的制作方法
技术领域
本发明的系统及方法一般来说涉及视频处理。更具体来说,本发明的系统及方法 涉及对与视频压縮技术有关的信息进行编码及解码。
背景技术
视频压缩是指对数字视频数据的压缩。视频压縮用于有效地编码视频文件格式及 串流和广播视频格式的视频数据。压縮是将数据转换成具有较少位的格式,所述格式 可更有效地存储或传输。压縮的逆过程是解压缩,解压縮可产生原始数据的副本。
当今,某些视频压縮方法应用某一种类型的型的离散变换(例如,离散余弦变换 (DCT))来减少使用时间或空间预测技术所产生的预测残余中的剩余空间冗余。某些视 频压缩技术还涉及量化。量化可以是标量量化或向量量化。在量化后,可对经量化的 系数进行熵编码并将其放置在经压縮视频位流内。然后,将所述经压縮位流发送到视 频解码器,所述视频解码器将解压縮所述位流并精确近似地恢复所述原始视频数据。
视频压縮技术可有益于各种媒体形式的消费者。举例来说,在广播工程中,可通 过视频压縮使数字电视变得实际可行。电视(TV)台可在同一物理信道上广播高清晰度 电视(HDTV)多个虚拟信道。数字视频广播可使用运动图像专家组(MPEG)标准(例如, MPEG-2标准视频压縮格式)。然而,H.264/MPEG-4及VC-l作为视频压縮中的新标准 正开始出现。
遗憾地,已知的用于在视频压縮中对信息进行编码的系统及方法可能会受到各种 缺点的困扰。因此,用于在视频压縮中对信息编码的改进型系统及方法可实现诸多裨
—、厶

发明内容
本发明揭示一种用于对与视频压縮相关联的信息进行编码的方法及系统。将所述视频序列处理成多个帧。将所述多个帧中的每一个帧处理成多个宏块。用所述视频序 列构建对当前帧中作为宏块的一部分的原始视频信号的预测。通过从所述当前帧中的 原始视频信号中减去对所述原始视频信号的预测来形成残余信号。对所述残余信号应 用变换。量化多个变换系数。识别界定残余信号特征的至少一个语法元素的符号。对 同类别的所述至少一个语法元素的符号一起进行编码。
可对经编码的块模式进行编码。可将所述经编码的块模式编码为零游程及非零数 值游程。可将所述经编码的块模式仅编码为零游程。可对初始数值符号进行编码以指 示经编码零游程及非零值游程的初始值。可插入变迁符号以指示当前游程中符号的值 如何改变到所述至少一个语法元素的符号的下一游程中的符号的值。可界定待编码的 至少一个语法元素的符号的最大游程长度。
可对宏块跳过符号进行编码。可对宏块类型符号进行编码。也可对s量化参数符 号进行编码。
可以多个模式扫描所述至少一个语法元素的符号。可界定跳过旗标位且可绕过对 至少一个语法元素符号的特定集合的编码。可在增强层中界定所述跳过旗标位。可基 于基础层中至少一个语法元素的对应语法元素符号来编码增强层中所述语法元素的符 号。
本发明还揭示一种经配置以对与视频压縮相关联的信息进行编码的设备。所述设 备包括处理器及与所述处理器电子连通的存储器。指令存储于所述存储器中。接收视 频序列。将所述视频序列处理成多个帧。将所述多个帧中的每一个帧处理成多个宏块。 用所述视频序列构建对当前帧中作为宏块的一部分的原始视频信号的预测。通过从所 述当前帧中的原始视频信号中减去对所述原始视频信号的预测来形成残余信号。对所 述残余信号应用变换。量化多个变换系数。识别界定所述残余信号特征的所述至少一 个语法元素的符号。对同类别的所述至少一个语法元素的符号一起进行编码。
本发明还揭示一种计算机可读媒体,其包含用于对与视频压縮相关联的信息进行 编码的可执行指令。接收视频序列。将所述视频序列处理成多个帧。将所述多个帧中 的每一个帧处理成多个宏块。用所述视频序列构建对当前帧中作为宏块的一部分的原 始视频信号的预测。通过从所述当前帧中的原始视频信号中减去对所述原始视频信号 的预测来形成残余信号。对所述残余信号应用变换。量化多个变换系数。识别界定所 述残余信号特征的所述至少一个语法元素的符号。对同类别的所述至少一个语法元素 的符号一起进行编码。
本发明还揭示一种用于对与视频压縮相关联的信息进行解码的方法。接收编码视 频序列。对同类别的多个符号一起进行解码。解量化多个变换系数。对残余信号应用 逆变换。构建经解码的视频序列。
本发明还揭示一种经配置以对与视频压縮相关联的信息进行解码的电子装置。所 述电子装置包括处理器及与所述处理器电子连通的存储器。指令存储于所述存储器中。 接收编码视频序列。对同类别的多个符号一起进行解码。解量化多个变换系数。对残余信号应用逆变换。构建经解码的视频序列。
本发明揭示一种经配置以对与视频压縮相关联的信息进行编码的设备。所述设备 包括用于处理的装置及用于接收视频序列的装置。本发明揭示一种用于将所述视频序 列处理成多个帧的装置及一种用于将所述多个帧中的每一个帧处理成多个宏块的装 置。本发明揭示一种用于用所述视频序列构建对当前帧中作为宏块的一部分的原始视 频信号的预测的装置及一种用于通过从当前帧中的原始视频信号中减去对所述原始视 频信号的预测来形成残余信号的装置。本发明揭示一种用于对所述残余信号应用变换 的装置及一种用于量化多个变换系数的装置。本发明还揭示一种用于识别界定所述残 余信号特征的至少一个语法元素的符号的装置及一种用于对同类别的至少一个语法元 素的符号一起进行编码的装置。


图1为图解说明用于对信息进行编码的方法的流程图2为可使用交替游程长度编码来压縮的二元符号串的一种配置;
图3为可根据本发明系统及方法使用的编码方案的额外配置;
图4为图解说明限制所编码的游程长度的一种配置的框图5为图解说明对特定类型的语法元素进行编码的一种配置的框图6为图解说明对特定类型的语法元素进行编码的额外方面的框图7为图解说明用以在增强层中对亮度经编码的块模式(CBP)位进行编码的方法
的一种配置的流程图8为图解说明根据图7所述方法的一种配置的框图9为图解说明增强层中的交替游程长度编码的额外配置的框图10为图解说明使用交替游程长度编码对色度CBP进行编码的额外方面的框
图;及
图11为图解说明通常用于处理数字图像及/或数字视频的主要硬件组件的框图。
具体实施例方式
现在参照图式阐述本发明系统及方法的各种特征,其中相同参考编号指示相同的 或功能上类似的元件。可以各种不同的配置布置及设计本文中一般性描述及图解说明 的本发明系统及方法的特征。因此,下文的详细描述并非旨在限制所主张的本发明系 统及方法的范围,相反其仅代表本发明系统及方法的配置。
本文中所揭示配置的诸多特征可实施为计算机软件、电子硬件或两者的组合(见图 11)。为清楚地表明硬件与软件的此可互换性,将就其功能性方面对各种元件进行一般 性描述。此种功能性实施为硬件还是实施为软件取决于特定应用及对整个系统施加的 设计限制。所属领域的技术人员可针对每一特定应用采用不同的方式来实施所述功能性,但所述实施方案决策不应被视为导致背离本发明的范畴。
在所述功能性实施为计算机软件的情况下,所述软件可包括位于存储器装置内及 /或在系统总线或网络上作为电子信号传输的任一种类型的型的计算机指令或计算机/ 机器可执行代码。实施与本文中所述组件相关联的功能性的软件可包括单个指令或诸 多指令,且可分布在数个不同的代码段上,可分布在不同程序之间,且可分布在数个 存储器装置上。
在视频编码中,以分级方式对视频帧进行编码。将所述帧分割成宏块。每一宏块 通常由16x16大小的亮度块(Y)组成。宏块还由色度块Cb及色度块Cr组成。色度块 的大小取决于色彩格式。对于YCbCr420色彩格式,每一色度块的大小为8x8。出于 此申请案的目的,以具有格式YCbCr420的YCbCr色彩空间对所述视频进行编码。然 而,本发明的系统及方法也可应用于其它色彩空间及色彩格式的视频编码。
在视频编码器中,在典型的视频压縮处理(例如,预测、变换及量化)之后,下一 步骤是对语法元素及量化系数进行施熵编码以形成位流。在视频解码器中,则执行逆 处理。从所述位流中对语法元素及量化系数进行解码。然后,执行逆量化及逆变换。 最后,将重构残余添加至预测以重构所述视频信号。
语法元素的一个实例是经编码的块模式(CBP)。所述CBP指示所述宏块中是否存 在任何非零量化系数及其在块层级处如何分布。根据R264/高级视频编码(AVC)标准, 除非编码器跳过宏块,否则亮度CBP及色度CBP均在所述位流中发送。亮度CBP由 四个位构成,其中一个位对应于四个8x8块中的每一者。如果亮度CBP位为零,则其 意味着对应的8x8块不具有任何非零系数。因此,亮度CBP可具有从0至15的值, 且色度CBP可具有从0至2的值。所述宏块CBP由亮度CBP及色度CBP形成并被映 像到代码数字。使用(例如)指数哥伦布码(Exponential Golomb code)对所述代码数字 进行编码,且然后将其添加至所述位流。然而,所述编码方法可能不是最佳,因为由 于每一宏块CBP是独立地发送,故邻近宏块的经编码的块模式之间的相关性未得到利 用。
目前,由来自ISO/正C MPEG及ITU-T VCEG的视频编码专家组成的联合视频组 (JVT)正在致力于对H.264/AVC的可縮放视频编码(SVC)扩展。JVT所提出的最近发展 是容许具有粗信号-对-噪声(SNR)可缩放性的位流具有细粒度SNR可縮放性(FGS)、空 间可縮放性及时间可縮放性。在所述粗SNR可縮放性及空间可缩放性层中,对所述亮 度CBP及所述色度CBP以其在基础层中进行编码的相同方式进行编码,因此所述层 拥有与基础层中的问题类似的问题。
在所述FGS层中, 一种对亮度经编码的块模式进行编码的方式是基于所述基础层 中的亮度CBP将一宏块内的四个亮度CBP位分成两个组群。所述增强层中的其所述 基础层中的对应亮度CBP位为零的亮度CBP位(类型-0CBP位)与增强层中的其所 述基础层中的对应亮度CBP位为非零的亮度CBP位(类型-lCBP位)分别单独地进 行编码。基于基础层中亮度CBP的值,各宏块中类型-0位及类型-1位的数量可不固定。一种技术是在一组群中的位数量小于三的情形下使用固定长度代码对类型-o或类型-1
位进行编码。如果一组群中的位数等于或大于三,则可使用可变长度编码(VLC)。同
样,所述编码方案需要保持CBP位的概率,因为用于对类型-O及类型-l位进行编码的 VLC表格是基于当前的概率估计加以选择的。所述编码方案是在可缩放视频编码(SVC) 的较早版本内。
此种用于语法元素(例如,FGS层中的亮度CBP)的编码方案的问题是其复杂性。 诸如对亮度CBP位进行分组、维持概率模型及选择VLC表格等操作可能涉及广泛的 计算。由于未利用邻近宏块中类似语法元素之间的相关性,故所述编码效率可能低下。
图1是图解说明用于对信息进行编码的方法100的流程图。在一个方面中,待编 码的信息包括视频序列。可在视频编码器中实施方法100,且可由视频解码器来执行 方法100的逆过程。编码器是用于将信号或数据变成经编码流的装置。然后,所述解 码器可从所述代码中产生所述原始信号或数据的重构版本。在无损失压縮中,所述原
始信号或数据的重构版本与所述原始信号或数据完全相同。在有损失压縮中,所述原 始信号或数据的重构版本是所述原始信号或数据的精确近似。所述编码器及解码器可 统称为视频编码解码器,其将源图像或视频序列编码成压縮形式并对所述压縮形式进 行解码以产生所述源序列的拷贝或精确近似。在本描述中,从编码器的观点来阐述某 些配置的某些方面。熟悉视频压縮领域的技术人员可容易地理解,解码器可执行逆过 程以重构由编码器所编码的信号或数据。
方法100开始于编码器接收所述视频序列(102)。将所述视频序列处理成多个帧 (104)。进一步将多个帧内中的每一帧处理成多个宏块(105)。所述编码器开始通过利用 邻近视频帧之间或同一帧内各像素之间的相似性来压縮所述视频序列以构建对当前视 频帧中作为宏块的一部分的原始视频信号的预测(106)。如果所述预测是根据一个或多 个先前或未来帧而形成,则此称作时间预测。如果所述预测是根据同一帧内的像素而 形成,则此称作空间预测。然后,通过从正编码的信号中减去所述预测信号来形成残 余信号(108)。
方法100继续进行对所述残余信号应用变换以减少剩余空间冗余(IIO)。所述变 换将预测残余样本转换成其中所述预测残余样本由变换系数表示的另一域。量化所述 系数以移除无效值(112),从而留下提供有效系数的更紧縮表示的少量残余信号。
在预测、变换及量化之后,编码器对界定残余信号特征的至少一个语法元素的符 号进行识别(114)。举例来说,所述语法元素可包括经编码的块模式,所述经编码的块 模式指示在所述残余信号经量化之后宏块中是否存在非零系数。
编码器对同类别的语法元素的识别符号(116)—起进行编码。在一个方面中,熵编 码器执行熵编码。所述熵编码器对表示所述视频序列的语法元素的符号系列进行转换 且将所述符号系列包含在适于传输或存储的经压縮位流内(118)。所述语法元素的实例 可包括mb—跳过一旗标(其指示所述编码器是否将跳过一宏块;如果跳过所述宏块, 则所述解码器将从邻近宏块中的运动向量导出运动向量并将所述宏块的所有量化系数设置为0); mbjype(其决定是以帧内模式还是以帧间模式对所述宏块进行编码;决定 宏块分区大小);sub_mb—type (其决定每一子宏块的子宏块分区大小);经编码_块一模 式(其识别所述非零变换系数如何分布);mb一qp—ddta(其改变所述量化参数)及残余(经
编码的量化变换系数对应于预测后的残余样本)。
方法100对同类别的语法元素符号一起进行编码(116)且将经编码的信息包含在 位流内(118)。在一种配置中,所述编码器对同类别的多个语法元素一起进行编码。举 例来说,根据用于视频编码的H.264标准且熵编码模式是基于上下文的自适应可变长 度编码(CAVLC),使用语法元素mb—跳过—游程来替代发送每一个别宏块的mb—跳过— 旗标。如果mb—跳过—游程具有值"n",则在一个未被跳过的宏块后会跟有"n"个跳过的 宏块。可通过将无符号数字"n"的指数哥伦布码包含在经压縮位流内来传达所述信息。 可在H.264/AVC规范的9.1章中找到关于指数哥伦布码的定义。熵编码器对多个同类 别语法元素一起进行编码的进一步实例图解说明于图2中。
图2是二元符号串200的一种配置,可根据图1所述的方法使用交替游程长度编 码来压縮所述二元符号串。如所图解说明,串200包括六个连续零202、七个一 204、 三个零206及单个一 208的游程。将六个零的游程202组合在一起以提供R=6的游 程长度。然后,熵编码器可对R进行编码。在一个方面中,使用指数哥伦布码对"R-l" 进行编码。由于R的最小值为1且按照H.264/AVC中的惯例,所以使用指数哥伦布码 从0开始对非负数字进行编码。举例来说,可使用指数哥伦布码将R值"6"编码成 "00110"。将七个连续一的游程204组合在一起以提供R-7的游程长度。然后,熵编码 器使用指数哥伦布码将所述游程编码为"00111"。也以类似方式对三个零的游程206及 包含单个一的游程208进行编码。将二元符号串200压縮成由"00110 00111 011 l"构成 的位流。然后,所述解码器可读取所述位流以再现所述二元符号串。在所述解码器中, 可使用方程R=S+1将从所述位流中解码的符号"S"转换成游程长度R。
如图2所图解说明,零的游程是一起编码的且非零值的游程也是一起编码。在一 种配置中,所述熵编码器使用所述指数哥伦布码对所述游程长度进行编码。在第二配 置中,可以不同类型的可变长度代码对所述游程长度进行编码或甚至可使用另一编码 方案来进行编码。
对于图2中所述的交替游程长度编码,可对初始值进行编码以帮助导出在第一游 程中编码的二元符号的值。在一种配置中,将所述初始值设定为等于拟在第一游程中 进行编码的二元符号的逆。举例来说,如果拟在第一游程中进行编码的二元符号为0,
则将所述初始值设定为1。对初始值进行编码是有用的,因为在对语法元素的解码过 程中,每当对新的游程进行解码时,均会改变二元符号的值。在图2中所提供的实例 之后,待进行编码的初始值为1。当所述解码器在初始值之后检测到六个符号的新游 程202时,则语法元素的值会自初始值1改变至0,且所述解码器将所述六个值解码 为零。 一旦检测到新的七个符号游程204,所述语法元素的值即刻从0改变至1,且所 述解码器将所述七个值的游程解码为若干个一。所述过程会继续直至解码器未检测到待解码的额外符号游程。
图3是可结合图1所述方法使用的编码方案的另一方面。所述额外方面可称为零 游程编码。在H,264/AVC中,对mb—跳过—旗标旗标进行编码时已使用过此方案。如 图3中所图解说明,将要压縮二元值串300。如果使用零游程编码,则仅对非零值之 前的零游程进行编码。在一种配置中,使用所述指数哥伦布码对零游程进行编码。如 所图解说明,在第一非零值304之前,存在四个零值302。给四个零302及第一非零
值304指派值"4",使用指数哥伦布码将所述值编码为"ooior。然后,将所述代码添
加至位流。给第二非零值308之后的五个零306指派值"5",并使用指数哥伦布码将其 编码为"00110"。类似地,将所述代码添加至拟发送至解码器的位流。如图解说明,第 二个非零值308之后紧跟有第三非零值310。给第三非零值310指派值"0",可使用指 数哥伦布码将所述值编码为'T'并将其添加至位流。给后跟有第四非零值314的剩余两 个零312指派值"2",且使用指数哥伦布码将其编码为"010"。发送至所述解码器的所 得位流为"OOIOI 00110 1 011"。图3中所图解说明的零游程编码不需要在所述位流中发 送初始旗标值。
图4图解说明限制待编码的游程长度的一种配置400。对于高清晰度的视频,某 些语法元素的最大游程长度可能极长。举例来说,对于清晰度为1920x1080的视频, 亮度经编码的块模式(CBP)的最大游程长度可为(1920xl080)/64-32,400。如果所述熵编 码器使用指数哥伦布码对所述符号游程进行编码,则所述代码将由29个位组成。在一 个方面中,可对待编码的最大游程长度(MR)界定上限。
如果所述解码器所解码的游程长度(例如,"MR+1")大于所界定的MR,则实际的 游程长度位MR加上从所述位流中的下一经编码序列中解码的额外游程长度等等。举 例来说,图4图解说明拟使用指数哥伦布码进行编码的五个不同的游程长度402、 404、 406、 408及410。这些符号游程由三个零402、 13个一 404、 14个零406、 15个一 408 及31个零410组成。在一种配置中,将可从一个编码符号中迸行解码的上限MR设定 为限制14。可将三个零的游程序列402编码为"Oir。可将13个零的游程序列404编 码为"000110r。可将14个零的游程406编码为"0001110"。 15个一及31个零的剩余 两个游程408及410大于MR上限14。在一种配置中,将15个一的游程长度408解
码为两个指数哥伦布码"oooiiii r。从第一代码"oooiiir中解码的游程长度为15。
然而,上限MR被界定为14。经解码值15意味着当前游程长度至少为14且应对额外 的指数哥伦布码进行解码以获得实际的游程长度。从下一代码中解码的额外游程长度 为1。在解码后,实际的游程长度为MR或14加上任何额外的经解码游程长度(例如 1)。如此,所述经解码游程长度为15。
作为进一步的实例,考虑将要编码的31个零的游程序列410。将31个零的游程 长度410编码成三个指数哥伦布码"0001111 0001111 011"。从第一代码中解码的游程 长度为15。由于上限MR被界定为14,故经解码值15意味着实际游程长度至少为14 且应对额外的指数哥伦布码进行解码且随后应将其添加至先前经解码的游程长度。从第二代码中解码的游程长度也为15,此意味着实际游程长度至少为28 (14+14)且应对 额外的指数哥伦布码进行解码,且随后然后将其添加至先前经解码的游程长度。从第 三代码中解码的游程长度为3。由于此低于上限MR14,故终止所述游程序列的解码。 然后,将所述经解码游程长度加在一起(14+14+3)以再现一31个零的游程序列。
图5为框图,其图解说明一种利用图1及2中所述的交替游程长度编码方法对特 定类型的语法元素经编码一块j莫式(CBP)进行编码的配置500。尽管数个以下图式及 描述解决了 CBP语法元素的编码,但本发明系统及方法并非意欲仅局限于所述语法元 素的编码及解码。
如先前所解释,所述CBP语法元素识别哪些8x8块(亮度及色度)包含经编码的非 零变换系数。图5图解说明五个宏块504、 506、 508、 510及512中的五个分离的16x16 亮度块。每一 16x16亮度块被进一步分割成4个8x8亮度块。每一 8x8亮度块可包含 或可不包含经编码的非零变换系数。由于邻近相关性,邻近8x8块的亮度CBP位通常 为相同值。在所描绘的配置中,使用熵编码器对指示8x8亮度块中是否包含经编码的 变换系数的符号游程序列进行编码。在一种配置中,符号"0"指示所述特定8x8亮度块 不包含经编码的变换系数,而符号'T'指示所述亮度块可包含经编码的非零变换系数。 在一个方面中,所述熵编码器使用指数哥伦布码来对符号游程进行编码。
如图5中所描绘,所述熵编码器通过Z字形模式对符号游程序列进行编码。宏块 504的前三个8x8亮度块包含符号"O"以指示这些块不包含经编码的变换系数。所述熵 编码器使用指数哥伦布码对所述游程"3"进行编码,从而获得将要添加至位流的代码 "011"。第一 16x16宏块504的第四8x8亮度块包含符号'T'以指示所述8x8亮度块可 包含经编码的非零变换系数。如所图解说明,宏块506的所有四个8x8亮度及宏块508 的第一 8x8亮度块均包含符号'T'。所述熵编码器使用所述指数哥伦布码将所述游程"6" 编码为"00110",且然后将所述代码添加至所述位流。使用所述Z字形图案对所述游程 "6"进行编码,因为在六个8x8亮度块中存在一的连续游程。所述熵编码器继续对宏块 508的剩余8x8亮度块中的符号进行编码。所述游程序列由一个其中符号"O"被编码为 "l"的8x8亮度块及一个其中符号"l"被编码为T的8x8亮度块组成。宏块508的最后 一个8x8亮度块以及宏块510和512的剩余八个8x8亮度块均包含符号"0"。因此,存 在由具有符号"O"的9个8x8亮度块构成的游程序列。所述熵编码器使用指数哥伦布码 将所述游程"9"编码为"0001001"。
在熵编码器已对所述五个所图解说明的宏块的经编码亮度CBP进行编码之后,
将以下位流"i oil ooiio 11 oooioor发送至所述解码器。所述位流中的第一值"i"表
示初始亮度CBP位502,其是值l的l-位旗标。在一种配置中,初始CBP502值是待 解码的第一游程序列中的符号值的逆。
在图5中编码的位流的解码过程开始于所述解码器从所述位流读取初始CBP502 值。所述初始值将帮助所述解码器导出第一游程序列中的符号的值。所解码的下一代 码为"011",其指示按照扫描次序的三个CBP位的游程长度为零。接下来解码的代码为"00110",其指示按照扫描次序的六个CBP位的游程长度为'T'等等。
图6为框图,其图解说明对多个宏块604、 606、 608、 610及612中的CBP位进 行扫描的另一配置600。所述熵编码器以与图5中所述相同的方式对所述游程序列进 行编码,但所述熵编码器可以不同方式扫描所述宏块以使得从一个8x8块到另一个的 距离为最小,以在统计学上增加所述游程长度并减少待解码的游程的数量。也对初始 值602进行编码并将其添加至所述位流以指示第一游程序列的值。
图7为流程图,其图解说明用以对增强层(例如,SNR增强层)中的亮度CBP进行 编码的方法700的一种配置。在以下讨论中,SNR增强层可为FGS SNR层或粗粒度 SNR层。如果待编码的亮度CBP是在所述SNR增强层中,则所述增强层中的CBP与 所述基础层中的CBP具有强相关性。图7中所示的方法700指示是否对所述增强层中 的亮度CBP进行编码。
所述方法开始(702)并决定所述基础层中与增强层中的当前8x8块相对应的8x8 块是否具有非零变换系数(704)。如果基础层中的对应8x8块具有指示存在非零系数 的符号'T',则所述方法继续决定是否将所述增强层中的当前8x8块进一步编码成四个 子块(706)。如果将所述增强层中的当前8x8块进一步编码成四个子块,则不对当前8x8 块的亮度CBP位进行编码(708)。否则,如果704、 706所提供的两个条件中的任一者 得不到满足,则对当前的8x8块的亮度CBP位(710)进行显式编码。
所述基础层中的8x8块可包含指示所述基础层中的8x8块具有非零系数的符号 "1"。如果不对SNR增强层中的亮度CBP位进行编码并推断其具有值'T',则可节省一 个位,因为无须对所述值进行显式编码。然而,如果所述增强层中的亮度CBP的实际 值为"O",则可在较低的语法层级处纠正对所述增强层中亮度CBP值的误预测。如果 将增强层中的8x8块编码成四个子块,则针对每一子块将额外语法元素编码于位流中 以指示所述子块中是否存在非零系数。可在所述子块层级处以相对小的开销来纠正 8x8块层级处对增强层中的亮度CBP位的误预测。图7中的方法700所图解说明的额 外限制要求所述基础层中的对应8x8块具有一指示非零系数的亮度CBP位且要求在所 述增强层中的8x8块未被编码之前将所述增强层中的所述8x8块编码成四个子块。
在一种配置中,对那些增强层亮度CBP位应用交替游程长度编码,其中由于所 述8x8块未被编码成四个子块,故所述基础层中的对应亮度CBP位为零或必须对所述 增强层亮度CBP位进行显式编码。在一种配置中,可以两个单独的扫描来对增强层中 待编码的亮度CBP位进行编码。在一个对FGS层中的亮度CBP进行编码的系统中, 一其基础层中的对应亮度CBP位为0的亮度CBP位被称为类型-0亮度CBP位,而一 其基础层中的对应亮度CBP位为1的亮度CBP位被称为类型-1亮度CBP位。在每一 扫描中,使用交替游程长度编码来对一种类型的亮度CBP位进行编码。可依序来完成 所述两个扫描,或可同时执行所述两个扫描。在另一配置中,在对增强层中的亮度CBP 进行编码时忽略基础层CBP信息。
图8为框图,其图解说明根据图7所述的方法700的一种配置800。如图解说明,熵编码器对所述SNR增强层中的宏块804、 806、 808、 810及812中的五个16x16亮 度块进行编码。在一种配置中,所述熵编码器对所述宏块中的每一8x8块的亮度CBP 位进行编码。如所描绘,第一宏块804中的三个8x8块具有指示这些8x8块中不存在 非零系数的符号"0"。第一宏块804中的第四8x8块804A对应于基础层中具有指示存 在非零系数的符号T的8x8块。在一种配置中,也将第四8x8块804A进一步编码成 子块(未显示)。如图解说明,所述熵编码器绕过此第四8x8块804A且不对与所述第四 8x8块804A相关联的亮度CBP位进行显式编码。由于所述基础层中的对应8x8块具 有CBP位'T',故推断所述亮度CBP位具有符号'T',且将8x8块804A进一步分割成 子块。在一种配置中,所述熵编码器使用指数哥伦布码将所述三个零的游程序列编码 成"011"且将其包含在位流中。
所述熵编码器进一步扫描宏块806中的第二 16x16亮度块。四个8x8块中的三个 块具有指示存在非零系数的符号"l"。第四8x8块806A对应于基础层中具有指示基础 层中存在非零系数的符号'T'的8x8块。在一种配置中,将第四8x8块806A进一步编 码成子块(未显示)。所述熵编码器绕过所述第四8x8块806A且不对与所述块相关联的 亮度CBP进行显式编码。所述熵编码器以类似方式继续扫描所述宏块内剩余的8x8 块,从而绕过经进一步编码成子块且其基础层中的对应8x8块具有符号'T'的8x8块 810A。将以下位流"l 011 00101 OOOIOOI"发送至所述解码器,其中所述初始位802被 设定为第一编码亮度CBP位值的逆'T'。
图9为图解说明在其中界定1111)一跳过_旗标位的增强层中利用交替游程长度编码 并绕过对完整宏块910的编码的一种配置900的框图。图9所图解说明的宏块904、 906及908中的前三个16x16亮度块与图8中所描绘的亮度块相同。所述熵编码器扫 描所述宏块中的每一 8x8块且对所述亮度CBP位值进行编码,除非所述8x8块被进一 步编码成子块且所述基础层中的对应8x8块具有值'T'。如先前图7及8中所解释,绕 过这些8x8块904A及906A且不对其对应的亮度CBP位进行编码。在一种配置中, 所述熵编码器可绕过宏块910中的完整16x16亮度块。如果界定所述mb—跳过一旗标 位且其值为l,则所述编码器跳过所述当前宏块。如果跳过宏块,则推断亮度CBP及 色度CBP位两者均为零。在一种配置中,所述熵编码器对指示将要完全跳过当前宏块 的mb—跳过—旗标909进行扫描。在以下图中,当所述熵编码器完成对与第三宏块908 相关联的亮度CBP位的扫描时,所述编码器跳过第四宏块910并继续扫描第五宏块 912的亮度CBP位。所得与亮度CBP有关的位流为"1 011 00101 00110",其中所述初 始CBP位902为在所述第一游程中编码的亮度CBP位的值的逆"l"。在被发送至解码 器之前,所述位流可与由其它语法元素形成的位流进行交错。
如所解释,所述mb—跳过—旗标可在增强层的编码中使用,所述增强层可为粗粒 度增强层或细粒度SNR增强层。如果所述增强层中的切片非帧内预测,则在非可縮放 视频编码中,帧内预测切片为基于当前切片内的样本进行预测的切片。在可縮放视频 编码中,可对所述增强层中的帧内预测切片进行界定以便可用所述基础层中的对应帧中的样本构建所述预测。当将可变长度编码(VLC)用作熵编码方法时,使用与 H.264/AVC标准中所界定的方法相同的方法将所述ml^跳过—旗标编码成mbjl过一游 程。在另一方面中,如先前已解释,使用交替游程长度编码来对所述mbj^兆过—旗标进 行编码。
图10为图解说明使用交替游程长度编码及变迁旗标来对色度经编码的块模式进 行编码的一种配置1000的框图。如先前所解释,也可利用图io的框图对与色度块有 关的额外语法元素进行编码。与由4个二元符号组成的亮度CBP不同,色度CBP可 具有从0到2范围内的值。在H.264/AVC及其SVC扩展中,针对Cb及Cr块两者界 定单个色度CBP。在以下讨论中,色度块是指Cb及Cr块两者,除非另有指出。可对 所述的相同方案进行扩展以便以不同的定义对所述色度CBP进行编码。由于色度CBP 仅存在三个可能的值,所以特定色度CBP仅可从一个值改变到其它两个值中的一者。 举例来说,如果当前色度CBP值为1,则在所述游程序列的结束处,下一游程的色度 CBP值必须仅为0或2。在一种配置中, 一个位变迁旗标可用信号通知新色度CBP的 值。
如图解说明,前六个色度块1004具有色度CBP值0,接下来的七个色度块1006 具有值2,接下来的四个色度块1008具有值0,且剩余的五个色度块1010具有值1。 在一种配置中,所述熵编码器使用指数哥伦布码对所述值进行编码。将六个零的第一 游程1004编码为"00110"。将具有值2的七个块的游程序列1006编码为"001ir。将
一个位变迁旗标(未显示)插在所述两个编码游程之间。在一种配置中,可给所述变迁
旗标指派值0或1以指示下一经编码色度CBP游程序列中的色度CBP值。举例来说, 可将值1的变迁旗标插在具有值0的色度CBP游程之后以指示下一色度CBP游程具 有值2。在具有七个连续块的游程1006之后,所述熵编码器对四个零的游程1008以 及五个一的游程1010进行编码。可在值2的色度CBP游程1006之后将值1的变迁旗 标插入所述位流中以指示下一色度CBP游程1008具有值0等等。可在值0的色度CBP 游程1008之后将值0的变迁旗标插入所述位流中以指示下一色度CBP游程1010具有 值1。在一种配置中,所述解码器可从上一色度CBP及变迁旗标导出新的色度CBP 值如下新色度Cbp-(上一色度Cbp+变迁旗标+l) % 3。
可以不同的方式界定所述变迁旗标。在一种配置中,可从查询表格(其由所述编码 器中的最后一个色度Cbp及新色度Cbp加索引)检索所述变迁旗标。在所述解码器中, 界定匹配的查询表格,所述匹配的查询表格可用于从最后一个色度Cbp及变迁旗标中 导出新的色度Cbp。在对与色度CBP有关的信息进行编码之前,先将初始值存储于所 述位流中以帮助导出所述第一游程中的色度CBP值。
在额外方面中,不区分值l的色度CBP游程与值2的色度CBP游程。对零色度 CBP游程及非零色度CBP游程进行编码。在每一游程之后,假设所述游程长度为"n", 对其非零色度CBP进行解码,对"n"个额外位进行解码以识别"n"个色度CBP值中的每 一者是1还是2。在编码任何其它与色度CBP有关的信息之前,先将初始值存储于所述位流中。如果拟使用交替游程长度编码来进行编码的第一色度CBP为非零,则将值 0用作所述初始值。反之,将值l用作所述初始值。
在进一步方面中,可遵循图3中所述的零游程编码方案对色度CBP游程进行编 码。可使用指数哥伦布码对非零色度CBP之前的零游程进行编码。对额外的一个位旗 标进行编码以指示所述非零色度CBP值是1还是2。此特征与先前所述配置不同之处
在于连续非零色度CBP值并非组合在一起。
图11图解说明经配置以处理数字图像及/或数字视频的装置1100。装置1100可 代表或被实施在数字电视、数字直接广播系统、无线通信装置、个人数字助理(PDA)、 膝上型计算机、台式计算机、数码相机、数字记录装置、网络赋能的数字电视、蜂窝 式或卫星无线电电话,或任一具有视频电话(VT)能力的电信装置中。
装置1100可处理、编码、解码、传输及/或接收图像及/或视频数据。所述视频数 据可由摄像机(例如,视频捕获单元(图像传感器1112))来捕获,从视频文件存储器中 检索,或以另一方式获得。装置1100中的视频编码单元1110可使用视频编码标准, 例如MPEG-4、 ITU-TH.263、 ITU-T H.264或任一其它视频编码标准。视频编码单元 1110可支持帧间编码技术(例如,运动估计及运动补偿)及帧内编码技术(例如,空间估 计及帧内预测编码技术)。
装置1100可包括图像/视频捕获装置1112(例如,相机或摄像机)以捕获图像或视 频序列并将所捕获的图像或序列存储在存储器1114中。图像/视频处理单元1102可处 理图像及/或视频序列。存储器1104可在所述处理之前及之后存储所述图像及/或视频 序列。
收发器1116可接收及/或将经编码的视频序列传输至另一装置。收发器1116可使 用无线通信标准,例如码分多址(CDMA)。 CDMA标准的实例包括CDMA lxEV-DO、 宽带码分多址(WCDMA)等。
装置1100的一个或多个元件可经由通信总线1118以通信方式耦接。除或替代图 11中所示的元件外,装置1100中还可包括其它元件。图11中所示的架构仅为一实例。 可通过各种其它架构来实施本文所述的技术。
存储器1114可具有相对大的存储器空间。存储器1114可包括动态随机存取存储 器(DRAM)或快闪存储器。存储器1114可包括"NOR"或"NAND"门存储器技术或任一 其它数据存储技术。在其它实例中,存储器1114可包括非挥发性存储器或任一其它类 型的数据存储单元。
图像/视频处理单元1102可包括用于移动无线电电话或其它移动装置的芯片组, 其可包括硬件、软件、固件及/或一个或多个微处理器、数字信号处理器(DSP)、专用 集成电路(ASIC)、现场可编程门阵列(FPGA)或其各种组合。处理单元1102可包括耦 接至前端图像/视频处理器单元1108的本地存储器1104及图像/视频编码单元1110。 编码单元1110可包括用于对数字视频数据进行编码(或压縮)及解码(或解压縮)的编码 器/解码器(CODEC)。本地存储器1104可包括相对于存储器1114更小且更快的存储器空间。举例来说, 本地存储器1104可包括同步动态随机存取存储器(SDRAM)。本地存储器1104可包括 "芯片上"存储器,所述"芯片上"存储器与处理单元1102的其它元件集成在一起以在处 理器密集的编码过程期间提供对数据的快速存取。然而,可将存储器1114及1104组 合成一个存储器,或可以诸多其它配置来实施。存储器控制器1106可控制对本地存储 器1104的读取及回写。
前端图像/视频处理单元1108可对视频序列的帧执行一种或多种图像处理技术以 改善图像质量,且由此改善视频序列的质量。举例来说,前端图像/视频处理单元1108 可执行例如以下技术去马赛克、透镜滑离修正、按比例縮放、色彩修正、色彩转换 及空间过滤。前端图像/视频处理单元1108也可执行其它技术。 一般来说,单元1108 所执行的技术被称为"前端"图像处理技术,因为所述技术是在图像/视频编码单元1110 进行的编码之前。
图像/视频捕获单元1112可包括图像传感器,所述图像传感器包含布置在所述传 感器的表面上的色彩过滤片阵列(CFA)。单元1108所执行之前端图像处理可改善捕获 单元1112所捕获的视频序列的质量。举例来说,前端处理单元1108及/或编码单元1110 可包括经编程以处理捕获单元1112所捕获图像的数字信号处理器(DSP)。存储器1104 (或存储器1114)的同一区域既可用于前端图像处理目的也可用于其它存储目的。
图像/视频编码单元1110可执行图像及/或视频编码,所述图像及/或视频编码可包 括一种或多种视频压缩技术,例如,帧间压縮及/或帧内压缩。举例来说,编码单元1110 可实施运动估计及运动补偿技术以利用时间或帧间数据相关性来提供帧间压縮。作为 另一选择或另外,编码单元1110可执行空间估计及帧内预测技术以利用空间或帧内数 据的相关性来提供帧内压縮。运动补偿(或帧内预测)的输出被称为"残余"且可包括数据 块,所述数据块指示待编码的当前视频块与运动估计或空间估计所识别的预测块之间 的差异。
在编码单元1110执行运动补偿(或帧内预测)以形成所述残余之后,可执行一系列 额外步骤来进一步对所述残余进行编码及进一步压縮所述数据。所述额外步骤可取决 于正使用的编码标准,但通常被称为"残余编码"。编码单元1110可执行这些压縮技术 中的一种或多种以减少经由收发器1116将视频序列传送至另一装置所需的数据量。
可使用各种不同技术及技法中的任一种来表示信息及信号。举例来说,以上整个 描述中可能提及的数据、指令、命令、信息、信号、位、符号及码片可由电压、电流、 电磁波、磁场或磁粒子、光场或光粒子或其任一组合来表示。
结合本文中所揭示配置而阐述的各种说明性逻辑块、模块、电路及算法步骤可实 施为电子硬件、计算机软件或二者的组合。为清楚地阐释硬件及软件的此种可互换性, 上文大致就各种说明性元件、块、模块、电路及步骤的功能性方面进行了阐述。此种 功能性是实施为硬件还是实施为软件取决于特定应用及对整个系统的设计限制。所属 领域的技术人员可针对每一特定应用采用不同的方式来实施所述功能性,但不应将所述实施决策视为导致背离本发明系统及方法的范畴。
结合本文所揭示配置而阐述的各种说明性逻辑块、模块及电路可通过下列装置来 实施或执行通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程 门阵列信号(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其
经设计以执行本文所述功能的任一组合。通用处理器可为微处理器,但另一选择为, 所述处理器也可为任一常规处理器、控制器、微控制器或状态机。处理器也可实施为
计算装置的组合,例如DSP与微处理器的组合、多个微处理器、 一个或多个微处理器 与一 DSP核心结合或任一其它此种配置。
结合本文所揭示配置而阐述的方法或算法的步骤可直接包含在硬件、处理器所执 行的软件模块或所述两者的组合中。软件模块可驻存在随机存取存储器(RAM)、快闪 存储器、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只 读存储器(EEPROM)、寄存器、硬磁盘、可拆卸式磁盘、光盘只读存储器(CD-ROM) 或此项技术中已知的任一其它形式的存储媒体中。例示性存储媒体耦接至所述处理器, 以便所述处理器可从所述存储媒体读取信息或向所述存储媒体写入信息。另一选择为, 所述存储媒体可为处理器的组成部分。处理器及存储媒体可驻存在ASIC中。所述ASIC 可驻存在用户终端中。另一选择为,所述处理器及存储媒体可作为离散组件驻存在用 户终端中。
本文所揭示的方法包括用于实现所述方法的一个或多个步骤或动作。所述方法步 骤及/动作可彼此互换,此并不背离本发明系统及方法的范围。换句言说,除非配置的 正确操作需要特定的步骤或动作次序,否则可在不背离本发明系统及方法的范围的前 提下修改特定步骤及/或动作的次序及/或用途。
尽管上文已图解说明并描述了本发明系统及方法的特定配置及应用,但应理解所 述系统及方法并非局限于本文所揭示的精确配置及组件。可对本文所揭示方法及系统 的布置、操作及细节做出各种对于所属领域的技术人员显而易见的修改、改变及变化, 此并不背离本发明系统及方法的范围及精神。
权利要求
1、一种用于对与视频压缩相关联的信息进行编码的方法,其包括接收视频序列;将所述视频序列处理成多个帧;将所述多个帧中的每一个帧处理成多个宏块;用所述视频序列构建对当前帧中作为宏块的一部分的原始视频信号的预测;通过从所述当前帧中的所述原始视频信号中减去对所述原始视频信号的所述预测来形成残余信号;对所述残余信号应用变换;量化多个变换系数;识别界定所述残余信号特征的至少一个语法元素的符号;及对同类别的所述至少一个语法元素的符号一起进行编码。
2、 如权利要求1所述的方法,其中对所述至少一个语法元素的所述符号进行编 码包括对经编码的块模式进行编码。
3、 如权利要求2所述的方法,其中对所述经编码的块模式进行编码包括对零游 程及非零值游程进行编码。
4、 如权利要求3所述的方法,其进一步包括对初始值符号进行编码以指示所述 经编码零游程及非零值游程的所述初始值。
5、 如权利要求2所述的方法,其中对所述编码的块模式进行编码包括仅对零游 程进行编码。
6、 如权利要求1所述的方法,其进一步包括插入变迁符号以指示当前符号游程 中的符号值如何改变至所述至少一个语法元素的下一个符号游程中的符号值。
7、 如权利要求1所述的方法,其中对所述至少一个语法元素进行编码包括对宏 块跳过符号进行编码。
8、 如权利要求1所述的方法,其中对所述至少一个语法元素进行编码包括对宏 块类型符号进行编码。
9、 如权利要求l所述的方法,其中对所述至少一个语法元素进行编码包括对S量 化参数符号进行编码。
10、 如权利要求l所述的方法,其进一步包括界定待编码的所述至少一个语法元 素的所述符号的最大游程长度。
11、 如权利要求l所述的方法,其进一步包括以多个模式扫描所述至少一个语法 元素的所述符号。
12、 如权利要求l所述的方法,其进一步包括界定跳过旗标位并绕过对所述至少 一个语法元素符号的特定集合的编码。
13、 如权利要求12所述的方法,其进一步包括在增强层中界定所述跳过旗标位。
14、 如权利要求l所述的方法,其进一步包括基于基础层中的所述语法元素的对 应符号对增强层中所述至少一个语法元素的所述符号进行编码。
15、 一种经配置以对与视频压縮相关联的信息进行编码的设备,所述设备包括 处理器;存储器,其与所述处理器电子连通;存储于所述存储器中的指令,所述指令可执行以-接收视频序列;将所述视频序列处理成多个帧; 将所述多个帧中的每一个帧处理成多个宏块;用所述视频序列构建对当前帧中作为宏块的一部分的原始视频信号的预测; 通过从所述当前帧中的所述原始视频信号中减去对所述原始视频信号的所述 预测来形成残余信号;对所述残余信号应用变换; 量化多个变换系数;识别界定所述残余信号特征的至少一个语法元素的符号;及 对同类别的所述至少一个语法元素的符号一起进行编码。
16、 如权利要求15所述的设备,其中所述至少一个语法元素包括经编码的块模式。
17、 如权利要求16所述的设备,其中所述经编码的块模式包括零游程及非零值 游程。
18、 一种计算机可读媒体,其包含用于对与视频压縮相关联的信息进行编码的可 执行指令,所述指令包括接收视频序列;将所述视频序列处理成多个帧; 将所述多个帧中的每一个帧处理成多个宏块;用所述视频序列构建对当前帧中作为宏块的一部分的原始视频信号的预测; 通过从所述当前帧中的所述原始视频信号中减去对所述原始信号的所述预测来 形成残余信号;对所述残余信号应用变换; 量化多个变换系数;识别界定所述残余信号特征的至少一个语法元素的符号;及 对同类别的所述至少一个语法元素的符号一起进行编码。
19、 如权利要求18所述的计算机可读媒体,其中所述至少一个语法元素包括经 编码的块模式。
20、 如权利要求19所述的计算机可读媒体,其中所述经编码的块模式包括零游程及非零值游程。
21、 一种用于对与视频压縮相关联的信息进行解码的方法,其包括 接收经编码的视频序列; 对同类别的多个符号一起进行解码;解量化多个变换系数; 对残余信号应用逆变换;及 构建经解码的视频序列。
22、 一种经配置以对与视频压缩相关联的信息进行解码的电子装置,所述电子装 置包括处理器;存储器,其与所述处理器电子连通; 存储于所述存储器中的指令,所述指令可执行以-接收经编码的视频序列;对同类别的多个符号一起进行解码;解量化多个变换系数;对残余信号应用逆变换;及构建经解码的视频序列。
23、 一种经配置以对与视频压縮相关联的信息进行编码的设备,所述设备包括 用于处理的装置;用于接收视频序列的装置;用于将所述视频序列处理成多个帧的装置;用于将所述多个帧中的每一个帧处理成多个宏块的装置;用于用所述视频序列构建对当前帧中作为宏块的一部分的原始视频信号的预测 的装置;用于通过从所述当前帧中的所述原始视频信号中减去对所述原始视频信号的所 述预测来形成残余信号的装置;用于对所述残余信号应用变换的装置; 用于量化多个变换系数的装置;用于识别界定所述残余信号特征的至少一个语法元素的符号的装置;及 用于对同类别的所述至少一个语法元素的符号一起进行编码的装置。
全文摘要
本发明描述一种用于对与视频压缩相关联的信息进行编码及解码的方法及系统。将所述视频序列处理成多个帧。将所述多个帧中的每一个帧处理成多个宏块。用所述视频序列构建对当前帧中作为宏块的一部分的原始视频信号的预测。通过从所述当前帧中的原始视频信号中减去对所述原始视频信号的预测来形成残余信号。对所述残余信号应用变换。量化多个变换系数。识别界定所述残余信号特征的至少一个语法元素的符号。对同类别的所述至少一个语法元素的符号一起进行编码。
文档编号H04N7/50GK101411196SQ200780010543
公开日2009年4月15日 申请日期2007年3月27日 优先权日2006年3月27日
发明者鲍易亮 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1