分层信号质量层级中的信号处理和继承的制作方法

文档序号:7991248阅读:146来源:国知局
分层信号质量层级中的信号处理和继承的制作方法
【专利摘要】一种信号处理器被配置成在包括多个质量水平的层级中对信号进行编码。信号处理器产生针对至少第一质量水平的信号的再现。信号处理器生成各组重构信号,其指定如何将处于第一质量水平的信号的再现转换成处于层级中的第二(较高)质量水平的信号的再现,潜在地利用可用参考信号。根据一个布置,信号处理器利用熵编码器来对重构数据进行编码。基于每组重构数据中一个或多个符号的概率分布信息且基于从先前质量水平继承的概率分布信息和/或其他编码参数,熵编码器将重构数据编码成已编码值或位串。使用概率分布信息,熵解码器将已编码值或位串转换回到重构数据。
【专利说明】分层信号质量层级中的信号处理和继承【背景技术】
[0001]CPU (中央处理单元)效率在信号的编码和解码期间都很重要。最近一代的处理器正在变得越来越并行,其中在每个单个芯片上达到几百个简单核心。
[0002]不幸的是,本质上,传统MPEG (运动图像专家组)系列编解码器在结构上是非并行的。这源自于下述事实:其是基于块的,并且必须顺序地对每个图像块进行编码和解码,这是因为为了实现高效的压缩,必须使得所有块以某种方式相互依赖。经由所谓的“切片”(基本上,被相互独立地处理的图像片段,如同其是一个接一个地放置的单独视频一样)到MPEG编码中的引入,H.264标准允许几个线程(通常是2或3个线程)的并行处理。诸如去块(de-blocking)之类的重要算法元素(即,使块之间的过渡“平滑”以创建更均匀图像的滤波器)通常是充满条件指令的全局运算,这不适合于包括并行CPU的应用。
[0003]现今的CPU和GPU (图形处理单元)通常是非常强大的;单个GPU能够包括数百个计算核心以执行信息的并行处理。当使用当前技术时,能够将图像的较大部分存储在处理器高速缓存中以用于处理。将图像分裂成大量的小块的需要不再适用于现代CPU和GPU,其为创建MPEG时的驱动因素,因为来自那个时代的处理器每次可能仅处理非常小的视频数据块,并且然后仅顺序地进行处理。因此,当实现类似于MPEG的类型的编码/解码时,大部分的可用处理能力可能变得不可使用,其中分块伪迹被不必要地引入到信号中。并且,与当开发MPEG时盛行的内容相比 ,现代应用通常要求高得多的定义视频编码和高得多的总体重放质量。在高清晰度(HD)、高质量视频中,在具有低细节(潜在地甚至失焦)的区域与具有非常细微的细节的区域之间存在大得多的差异。这使得诸如在MPEG中使用的那些变换之类的频域变换的使用甚至更加不适合于图像处理和重放,因为相关频率的范围正在变得宽得多。
[0004]另外,较高分辨率图像包括较高量的摄像机噪声和/或胶片颗粒,即对于观察而言可能相当不相关且要求许多位以进行编码的非常详细的高频像素过渡。
[0005]最后,传统编解码器不适合于高效地执行3D或体积成像,其在诸如医学成像、科学成像等领域中正在变得越来越重要。
[0006]大多数目标设备现今支持不同的重放分辨率和质量。所谓的SVC (可扩缩视频编码)(可扩缩性的当前MPEG标准)尚未被行业有利地接收,并显示出极少到不存在的采用率,因为其被认为过于复杂且有点带宽低效。
[0007]此外,已编码视频是大量的;即,内容提供商通常没有时间利用每个特定视频流对编码器参数和实验进行定制。当前,内容提供商不喜欢必须手动地对许多编码参数进行调节(tweak)(每当执行编码并检验结果的质量时)以便成功地对视频进行编码。
[0008]作为编码/解码的MPEG标准的替换,所谓的图像金字塔已被用于编码/解码目的。例如,使用拉普拉斯金字塔,常规系统已使用高斯滤波器且然后构建通过利用刚性编程的解码器从较低分辨率水平向上采样回到原始水平而获得的图像之间的差异的金字塔,来创建较低分辨率图像。
[0009]常规拉普拉斯金字塔编码的使用已被放弃。这种变换的一个缺点是创作者尝试避免向下采样图像中的失真/伪迹,因此其始终使用高斯滤波,因为其是不添加其自身的任何信息的唯一类型的滤波器。然而,高斯滤波存在的不能克服的问题是:其引入了模糊效应,使得当上扩回到较高分辨率时,需要过度量的图像校正信息以再现原始图像。换言之,利用常规滤波器进行的向上采样导致重构图像中的锯齿状或模糊边缘。该锯齿状或模糊边缘需要使用相当大量的残余数据而校正,使得这种编码技术对于在较高分辨率应用中使用而言是不期望的。任何信号编码器的重要组分中的一个是当前称为“熵编码”的操作。在实践中,一旦利用无损或有损方法执行了编码操作和变换,则残余内容(即,不能从已经在解码器处可用的数据(诸如视频数据中的前一帧)导出的新信息)本质上是如果可能的话必须在没有任何进一步损耗或近似的情况下且以最少可能量的位发射的数字串。能够通过其以最少可能量的位发射数字串的无损数据压缩方案通常被称为熵编码。数字/符号串中的熵的概念涉及到数字/符号串所包含的固有量的信息:由于并非串中的所有数字/符号都是不同的,因此串包含被频繁重复的少数符号(理想地,仅一个)越多,则对串进行编码所必需的位越少。
[0010]在文献中存在用于熵编码的多种方法。精密熵编码器(诸如CABAC,在H.264的情况下引入的上下文自适应熵编码器)能够以很大计算复杂度为代价达到优异的结果,而其他熵编码器(诸如,被称为范围编码的技术)仅当与适当的参数一起使用时才能达到类似的结果。一般地,熵编码器仅如其对要编码的串中的符号频率的(即,解码器必须以某种方式从编码器得到的符号的概率分布的)估计那样高效。由于MPEG系列编解码器是基于块的(即,其在多个块中划分信号并本质上单独地对每个块进行分析/编码),因此理想地,其将需要针对每个单个块的残余内容的单独概率分布:这在给定非常高数目的块的情况下当然将是不切实际的,因此,其使用标准概率分布(并非针对特定帧而定制的,并且因此在数据压缩方面较不高效)或像CABAC之类的自适应方案(更高效,但非常复杂)。
[0011]本文中的方法和实施例表示用于以低计算复杂度实现高效的熵编码结果的创新方法。

【发明内容】

[0012]本文中的实施例相对于用于在分层信号质量层级中产生已压缩、已编码数据的常规系统和方法偏离。例如,本文中的某些实施例涉及基于标准熵编码技术在层级中产生已编码重构数据的独特方式。为了压缩的效率和实现的简单起见,本专利申请描述了利用范围编码技术的实施例,虽然在本文中涵盖的方法也能够与若干其他类型的熵编码器一起应用。
[0013]更具体地,本文中的一个实施例包括被配置成在包括多个质量水平的层级中对信号进行编码的信号处理器。为此,该信号处理器产生针对至少第一质量水平的信号的再现。该信号处理器生成各组重构数据,其指定如何将处于第一质量水平的信号的再现转换成处于层级中的第二 (较高)质量水平的信号的再现。例如,根据某些方法,各组重构数据指定对能够从前一(较低)质量水平自动地导出(“继承”)的数据和信号再现进行校正、结合和补充所必需的所有信息。
[0014]信号处理器然后利用诸如范围编码器之类的熵编码器来对每组重构数据进行编码。每组重构数据的编码能够包括产生表示正在编码的重构数据的范围值(位串)。[0015]根据其他实施例,请注意,在编码之前,能够将信号处理器配置成分析每组重构数据,以产生指示一些或所有符号在重构数据中的概率分布的概率分布信息。指示一个或多个符号在重构数据中的概率的概率分布信息使所选熵编码器(例如,以非限制性示例的方式,范围编码、霍夫曼(Huffman)编码、基于表格的VLC/可变长度编码、行程(run_length)编码等)能够将重构数据编码成适当的位串(例如,范围值)。在创建范围值之后,编码器存储范围值和概率分布信息,以用于范围值回到重构数据的后续解码。熵编码能够表示一组或多组不同类型的重构数据中的任一组,诸如向上采样操作的参数、量化阈值、要在从较低质量水平向上采样之后应用的残余数据、要在已知参考信号图像的运动补偿之后应用的残余数据、对被用于运动补偿的密集运动图中的运动矢量的调整、运动区、关于噪声的谱信息、元数据等。
[0016]针对每组重构数据,诸如(一个或多个)范围解码器之类的一个或多个熵解码器资源至少部分地基于每组原始重构数据中的一个或多个符号的概率分布信息,将已编码值(例如,范围值)解码回到原始重构数据。在解码之后,另一资源使用由(一个或多个)解码器产生的已解码重构数据来对信号的再现进行重构。重构能够基于如上所述的不同类型的重构数据。
[0017]该重构数据能够包括用于基于处于较低质量水平的信号的再现和/或已知/可用参考信号(例如,以非限制性示例的方式,视频中的前一帧)重构处于下一较高质量水平的信号的再现的多种不同类型的适当数据中的任一种。在一个实施例中,重构数据包括所谓的帧内残余数据,指示要在将处于一个质量水平的信号的再现向上采样至处于下一较高质量水平的信号的再现之后进行的调整。根据另一实施例,该重构数据包括元数据,诸如要被应用以将信号从给定质量水平向上采样至下一较高质量水平的一个或多个向上采样操作。根据另一实施例,该重构数据包括要对通过利用适当操作对在较低质量水平处使用的运动图进行向上采样而获得的密集运动图(即,包含用于所有信号元素的运动矢量的图)进行的调整;在这种实施例中,该重构数据还可以包括帧间残余数据,指示要在借助于上述密集运动图对已知参考信号进行运动补偿之后对该重构信号进行的调整。在一个示例实施例中,能够通过避免指定关于能够从前一(较低)质量水平自动地导出(“继承”)什么的信息来减少各组重构数据所需的信息量。
[0018]如前所述,针对每组重构数据,编码器能够识别概率分布信息,其指示一个或多个符号在要编码的重构数据(其能够被表示为一串符号)中的概率。熵编码器产生要被各熵解码器用来对残余数据中的多个符号的概率分布进行外推的至少一个解码参数。
[0019]在其他实施例中,熵编码器向熵解码器指定多于两个参数以用于位串到重构数据的解码。在这种实施例中,熵解码器假设第一参数指定重构数据中残余数据元素的百分比,其等于诸如零之类的最常见值。接收到参数的熵解码器假设N个附加参数中的每一个指示另一或下一最频繁符号在重构数据中的概率。基于N个参数和潜在地基于其他标准参数,解码器还对第N个符号后的所有其他符号的概率进行外推。该概率分布信息提供将位串解码回到原始重构数据的基础。
[0020]根据另一实施例,熵编码器向解码器指定两个参数以用于位串到重构数据的解码。在这种实施例中,第一参数指定重构数据中符号(例如,残余数据元素)的百分比,其等于对解码器来说已知的值(例如,零)。第二参数包括使解码器能够对附加符号在重构数据中的概率进行外推的信息。该分布信息提供将位串解码回到原始重构数据的基础。
[0021]根据另一实施例,编码器向解码器指定一个参数以用于位串到重构数据的解码。在这种实施例中,所述一个参数指定残余数据元素在重构数据中的百分比,其等于对解码器来说已知的值(诸如零)。解码器然后基于对解码器来说已知的标准默认参数来对所有其他符号的概率进行外推。
[0022]根据其他实施例,能够将层级中的多个质量水平中的每一个配置成包括用于以给定质量水平重构信号的再现的相应重构数据。当适合于减少已编码数据的量时,能够在下一较高质量水平处利用(“继承”)处于给定质量水平的一些或所有重构数据,以代替必须指定处于每个质量水平的重构数据。例如,能够将熵解码器配置成接收位串,并且,响应于检测到诸如熵编码器未生成用于数据的任何概率分布参数或者处于较低质量水平的熵编码器明确地指示其不会指定用于较高质量水平的任何概率分布参数之类的条件,熵解码器能够利用在(一个或多个)先前质量水平处使用的(一个或多个)概率分布参数以将重构数据解码。
[0023]本文中的实施例还包括信号处理器,其被配置成将针对给定质量水平的一组或多组重构数据解析成重构数据的多个群组(“瓦片”)。例如,当将瓦片应用于表示残余数据的重构数据时,瓦片的组合定义用于对处于给定质量水平的信号的再现的元素进行调整的残余数据,例如在从较低质量水平进行向上采样或对已知参考信号进行运动补偿之后。编码器产生每个瓦片中的符号的各概率分布参数。编码器然后针对每个瓦片判定是使用这种概率分布参数(其因此将必须被发射到解码器)还是从先前(较低)质量水平自动地继承的概率分布参数(其将是对解码器来说已知的,而不需要发射附加信息)。编码器然后基于用于群组的所选各概率分布参数(继承的或新的)将重构数据的多个群组(瓦片)编码到各位串中。解码器将位串和概率分布值接收到各瓦片中并发起多个熵解码器的(可选地并行)执行,以基于与每个瓦片相关联的位串和概率分布值来再现重构数据的多个群组。如本文所讨论的瓦片技术能够用在层级中的一个或多个质量水平中以促进熵编码/解码和信号重构的并行处理。
[0024]下面更详细地讨论这些及其他实施例变型。
[0025]如上所述,请注意,本文中的实施例能够包括一个或多个计算机化设备、路由器、网络、工作站、手持式或膝上型计算机等的配置以执行和/或支持本文公开的任何或所有方法操作。换言之,能够将一个或多个计算机化设备或处理器编程和/或配置为如本文所解释的那样操作以执行不同的实施例。
[0026]除如上文所讨论的编码/解码之外,本文中的其他实施例包括软件程序以执行在上文概述且在下面详细地公开的步骤和操作。一个这种实施例包括计算机可读、硬件存储资源(即,非瞬变计算机可读介质),其包括在其上编码的计算机程序逻辑、指令等,其当在具有一个或多个处理器(例如,CPU、GPU等)和相应存储器的计算机化设备中执行时将(一个或多个)处理器编程为和/或促使(一个或多个)处理器执行本文公开的任何操作。这种布置能够被提供为在诸如光学介质(例如,CD-R0M、DVD、BD等)、软盘或硬盘之类的计算机可读介质或诸如一个或多个ROM或RAM或PROM芯片中的固件或微代码之类的其他介质上布置或编码的软件、代码和/或其他数据(例如数据结构),或者被提供为专用集成电路(ASIC)。能够将软件或固件或其他这种配置安装到计算机化设备上以促使计算机化设备执行本文所解释的技术。
[0027]相应地,本公开的一个特定实施例涉及一种计算机程序产品,其包括具有存储在其上以支持信号处理操作的计算机可读硬件存储介质。例如,在一个实施例中,指令在由各计算机设备的处理器执行时促使处理器:产生处于第一质量水平的信号的再现;生成至少一组重构数据,该至少一组重构数据指定如何基于处于第一质量水平的信号的再现和/或已知参考信号、以层级中的第二质量水平重构信号的再现,第二质量水平高于第一质量水平;以及利用熵编码器(例如,以非限制性示例的方式,范围编码器、霍夫曼编码器、基于表格的VLC编码器、行程编码器)来对不同组的重构数据进行编码,熵编码器针对每个组产生表示被包含在重构数据中的符号的已编码值或位串。
[0028]在另一实施例中,表示刚刚描述的实施例的解码侧,所述指令在由各计算机设备的处理器执行时促使处理器:产生处于第一质量水平的信号的再现;接收至少一组已编码值,该至少一组一编码制(一旦被解码就)指定如何基于处于第一质量水平的信号的再现和/或已知参考信号、以层级中的第二质量水平重构信号的再现,第二质量水平高于第一质量水平;以及利用一个或多个熵解码器(例如,以非限制性示例的方式,范围解码器、霍夫曼解码器、基于表格的VLC解码器、行程解码器)来将已编码值解码并再现要被用来以第二质量水平重构信号的不同组的重构数据。
[0029]步骤的排序是为了清楚起见而添加的。这些步骤能够按照任何适当的顺序来执行。
[0030]本公开的其他实施例包括软件程序、固件和/或相应硬件以执行在上文概述且在下面详细地公开的任何方法实施例步骤和操作。
[0031]并且,应理解的是,能够将如本文所讨论的系统、方法、设备、计算机可读存储介质上的指令等严格地体现为软件程序、体现为软件、固件和/或硬件的混合或者单独地体现为硬件,诸如在处理器内或在操作系统内或在软件应用内等。如上文所讨论的,本文中的技术非常适合于在对信号进行编码/解码的软件、固件和/或硬件应用中使用。以非限制性示例的方式,利用这些技术编码/解码的信号能够是二维的(例如,画面、视频帧、2D运动图、热图等)、三维的(例如,3D/体积图像、全息图像、CAT扫描、医学/科学图像、3D运动图等)或者甚至以多于三个维度、基于时间的信号(例如,音频信号、视频信号等)等等为特征。为了简单起见,本文所示的实施例常常指代作为2D设置平面(例如,适当色彩空间中的2D图像)显示的图像,诸如例如画面。然而,相同的概念和方法也适用于任何其他类型的信号。此外,应注意的是,本文中的实施例不限于在这种应用中使用,并且本文所讨论的技术也非常适合于其他应用。
[0032]另外,请注意,虽然可在本公开的不同地方讨论本文中的不同特征、技术、配置等中的每一个,但意图在于能够相互独立地或相互组合地执行每个概念。相应地,能够以许多不同的方式来体现和查看如本文所述的一个或多个本发明、实施例等。
[0033]并且,请注意,本文中的实施例的此初步讨论并未指定每个实施例和/或递增地本公开或要求保护的(一个或多个)发明的新型方面。替代地,本简要描述仅提出相比于常规技术的新颖性的一般实施例和相应点。针对(一个或多个)发明的附加细节和/或可能观点(变换),读者被引导至如下面进一步讨论的本公开的【具体实施方式】部分和相应的图。【专利附图】

【附图说明】
[0034]根据如附图中所示的本文中的优选实施例的以下更特定描述,本发明的前述及其他目的、特征和优点将变得显而易见,在附图中,相似的附图标记遍及不同的图指代相同部分。附图不一定按比例绘制,而是着重于图示实施例、原理、概念等。
[0035]图1是图示出根据本文中的实施例的重构数据的编码/解码的示例图。
[0036]图2是图示出根据本文中的实施例的信号的向上采样的示例图。
[0037]图3是图示出根据本文中的实施例的处理的示例图。
[0038]图4是图示出用于对重构数据进行编码的示例标准熵编码方法的示例图。
[0039]图5是图示出根据本文中的实施例的处于层级中的多个质量水平的重构数据的编码和解码的不例图。
[0040]图6是图示出根据本文中的实施例的使用一个或多个并行处理器的重构数据的瓦片的处理的示例图。
[0041]图7是图示出根据本文中的实施例的处于给定质量水平的多个瓦片的处理的示例图。
[0042]图8是图示出根据本文中的实施例的使用多个量化器的处于给定质量水平的重构数据的量化的示例图。
[0043]图9是图示出根据本文中的实施例的使用不同量化器设置的重构数据的量化的示例图。
[0044]图10是图示出根据本文中的实施例的将表示残余数据的一组重构数据解析成残余数据的不同群组的示例图。
[0045]图11是图示出根据本文中的实施例的不同重构数据群组的创建的示例图。
[0046]图12是图示出根据本文中的实施例的用于执行计算机代码、固件、软件、应用、逻辑等的示例计算机架构的图。
[0047]图13是图示出根据本文中的实施例的处理重构数据的方法的示例流程图。【具体实施方式】
[0048]图1是图示出根据本文中的实施例的重构数据的处理的示例图。
[0049]如所示的那样,信号处理器100-1将信号115向下采样至处于较低质量水平的不同再现。一般地,对信号115进行向下采样能够包括产生处于每个不同质量水平的信号的再现,并生成重构数据,其指定如何将处于第一质量水平的信号的给定再现转换成处于层级中的下一较高质量水平的信号的再现。
[0050]请注意,与信号115的再现和处于较低质量水平的信号的相应再现相关联的值能够表示任何适当类型的数据信息。以非限制性示例的方式,信号115可以是图像数据、视频的帧或域、体积医学图像、运动图等,指示各图像中的多个信号元素(例如,图素(pel)/平面元素、像素/画面元素、体素(voxel) /体积画面元素等)中的每一个的设置(例如,色彩分量、用直角坐标或极坐标表示的运动矢量、温度、放射性量、密度值等)。
[0051]信号115中的每一个元素能够以诸如一个或多个色彩分量之类的若干设置为属性。根据这种实施例,根据诸如YUV、RGB、HSV等适当色彩空间标准来对信号数据中的元素的色彩分量进行编码。[0052]以非限制性示例的方式,信号115所表示的图像能够是二维的(例如,画面、视频帧、2D运动图等)、三维的(例如,3D/体积图像、全息图像、CAT扫描、医学/科学图像、3D运动图等)或者甚至以多于三个维度为特征。信号元素或分量的设置指示如何表示/显示要在设备上重放或再现的信号。
[0053]根据其他实施例,信号115表示包括多个元素的原始信号或高分辨率信号。在这种实施例中,信号的再现(例如信号115-3的再现、信号115-2的再现、信号115-1的再现、……)中的每一个能够类似于已从信号115向下采样至较低质量水平的原始信号的缩略图表示。
[0054]处于较低质量水平的信号115的再现捕捉原始信号的较粗糙属性,而不是原始信号的更详细的较细微属性。详细的较细微属性出现在处于较高质量水平的信号的再现中。以非限制性示例的方式,信号处理器100-1将原始信号115向下采样至信号115-3的再现;信号处理器100-1将信号115-3的再现向下采样至信号115-2的再现;信号处理器100-1将信号115-2的再现向下采样至信号115-1的再现;以此类推至最低质量水平。能够将信号115向下采样至任何数目的适当水平。
[0055]当将信号115向下采样至每个较低质量水平时,信号处理器110-1能够生成各重构数据150。重构数据指示如何基于处于较低质量水平的信号的再现和/或已知参考信号(例如,以非限制性示例的方式,视频中的先前帧)、以下一较高质量水平重构信号的再现。例如,重构数据150-3指示如何将信号115-2的再现转换成信号115-3的再现;重构数据150-2指示如何将信号115-1的再现转换成信号115-2的再现;重构数据150-1指示如何将信号115-0的再现转换成信号115-1的再现;以此类推。
[0056]重构数据150能够是用于以较高质量水平重构信号的多种不同类型的数据中的任一种。例如,重构数据包括一组或多组不同类型的重构数据中的任一组,诸如向上采样操作的参数、量化阈值信息、残余数据、运动区、对运动矢量的调整、关于噪声的谱信息、元数据等。
[0057]在对各信号进行向下采样并产生重构数据的附加示例细节中,能够将信号处理器100-1配置成测试并创建不同组的重构数据,以从一个质量水平向上采样至另一个。
[0058]重构数据150能够包括用于信号处理的任何适当数据。例如,每组重构数据150能够包括元数据、残余数据等。元数据能够包括诸如借以将信号的再现从一个质量水平转换成下一个的一组一个或多个向上采样操作之类的数据;残余数据能够指示诸如要对处于不同质量水平的信号元素进行的调整(例如,在对处于较低质量水平的信号的再现进行向上采样之后,或者在对处于同一质量水平的已知参考信号进行运动补偿之后等)等信息。
[0059]信号处理器100-1能够包括熵编码器140。在一个示例实施例中,熵编码器140将处于多个不同质量水平中的每一个的重构数据处理成各组范围值信息180和概率分布信息 190。
[0060]范围值信息180能够包括针对相应的一组重构数据生成的各范围值(即,表示已编码符号的位串)。概率分布信息190能够指示正在被编码的各组重构数据150中一个或多个符号的分布。在一个示例实施例中,能够避免用于一组或多组重构数据的概率分布信息190的指示,这意味着对于相应的(一个或多个)组重构数据而言,解码器应当使用从先前(较低)质量水平和/或从已知参考信号继承的概率分布信息。[0061]在一个实施例中,熵编码器140和解码器440能够基于在本领域中已知为范围编码的技术,其具有良好的性能和效率;然而,这仅仅是以非限制性示例的方式示出的,并且能够使用熵编码或数据压缩的任何适当方法来对重构数据150进行编码和解码。无论所使用的熵编码的类型如何,本文中的方法都相对于常规系统和方法偏离。
[0062]能够将熵编码器140配置成产生用于不同类型的重构数据中的每一个的各范围值信息和概率分布信息。
[0063]作为更具体示例,信号处理器100-1利用熵编码器140来将重构数据150_1编码成范围值信息180-1和概率分布信息190-1。例如,熵编码器140针对质量水平#1分析各组重构数据150-1以产生各组概率分布信息190-1。每组概率分布信息190-1指示相应组的重构数据150-1中一个或多个符号的概率分布。
[0064]熵编码器140产生用于重构数据150-2的概率分布信息190_2。各组概率分布信息190-2指示各组重构数据150-2中一个或多个符号的概率分布。在一个示例实施例中,针对处于一个或多个质量水平中的一组或多组重构数据,编码器可以选择不产生概率分布信息,这意味着对于相应的(一个或多个)组或重构数据而言,编码器和解码器应当使用从较低质量水平和/或从已知参考信号自动地继承的概率分布信息。
[0065]信号处理器100-1利用熵编码器140以基于相应的概率分布信息、针对每个质量水平对每组重构数据进行编码。例如,熵编码器140利用概率分布信息190-1作为产生表示重构数据150-1的范围值信息180-1 (B卩,已编码位串)的基础;熵编码器140利用概率分布信息190-2作为产生表示重构数据150-2的范围值信息190-2的基础;熵编码器140利用概率分布信息190-3作为产生表示重构数据150-3的范围值信息190-3的基础;以此类推。
[0066]信号处理器100-1存储范围值信息180和概率分布信息190以用于后续分发到一个或多个目标资源。在一个实施例中,能够通过通信链路将已编码信息(即,在本文中称为范围值信息180和/或概率分布信息190的位串的集合)从源发射给包括解码器的消费者以再现或重放信号115。如下面进一步讨论的,信号115的再现能够包括将处于一个或多个质量水平中的每一个的范围值信息180和概率分布信息190解码成各组重构数据,以便重构信号115以用于重放。所产生的信号再现可以具有相同或不同的分辨率且与原始已编码信号相同或几乎相同。换言之,对于后一种情况,如本文所讨论的编码/解码能够是无损或有损的。
[0067]在一个实施例中,信号处理器100-2接收用于各重构数据的范围值信息180 (BP,表示已编码符号的位串的集合)和概率分布信息190。信号处理器100-2实现熵解码器440。熵解码器440利用概率分布信息190来将范围值信息180解码成重构数据。
[0068]如上所述,在解码之后,信号处理器100-2利用由解码器440产生的重构数据150-1来将处于第一质量水平的信号115-0的再现转换成处于下一较高质量水平的信号115-1的再现;信号处理器100-2利用由解码器440产生的重构数据150-2来将信号115-1的再现转换成信号115-2的再现;信号处理器100-2利用由解码器440产生的重构数据150-3来将信号115-2的再现转换成信号115-3的再现;以此类推。
[0069]请注意,信号处理器100-2不必继续向上转换和再现的过程直至原始存在于信号中且被信号处理器100-1编码的最高质量水平;事实上,本文所述的分层熵编码通过允许低端再现设备仅对其被配备以应对的位流部分进行解码和再现,相对于常规系统和方法偏离。如果传输链路暂时地或明确地变得不适合于承载与整个位流180相关联的信息量,则相同的优点适用;能够由信号处理器100-2独立地对能够到达解码器的部分(例如180-1、180-2等)进行处理和解码直至某个质量水平,从而确保信号115的再现,尽管是以降低的质量,即使当传输链路退化时。
[0070]再次请注意,各组重构数据能够包括指示下述各项的残余数据:要在将处于第一质量水平的信号的再现向上采样到处于下一较高质量水平的信号的再现之后进行的调整;或要在将已知参考信号运动补偿至处于下一较高质量水平的信号的再现之后对特定信号元素进行的调整;或要对用于将已知参考信号运动补偿至处于下一较高质量水平的信号的再现的运动图进行的调整等等。
[0071]本文中的一个实施例包括:减少对用于每组重构数据的概率分布信息190进行编码所需的数据量。为了减少需要被发射至解码器440的数据,能够将熵编码器140配置成分析概率分布信息,以便包括要被各解码器用来对多个符号在残余数据中的概率分布进行外推的一个或多个解码参数。
[0072]更具体地,在一个示例实施例中,编码器140分析概率分布信息190以便包括多个解码参数,该多个解码参数包括第一参数和附加参数。第一参数指定被分配有第一符号的重构数据(例如,残余数据)中元素的百分比。每个附加解码参数能够指示存在于重构数据(例如,残余数据)中的下一符号的概率。
[0073]根据另一实施例,如本文所讨论的编码器140分析用于各重构数据的概率分布信息以便产生第一解码参数和第二解码参数。第一解码参数指定被分配有第一符号的残余数据中元素的百分比;第二解码参数指定如何对用于重构数据(例如,残余数据)中多个其他(附加)符号中的每一个的概率分布值进行外推。例如,在一个不例实施例中,假设在用于对残余数据进行编码的字母表中存在N个不同的符号,并且将第一解码参数称为Cl1以及将第二解码参数称为d2 ;解码器将能够通过对以下方程组求解来计算所有符号概率P (O)至P (N-1),服从所有概率P (O)至P (N-1)之和必须是I的约束:
P(O) = d1
p(k) =p (k-1) * d2,其中k处于2至N-1范围内。
[0074]根据另一实施例,编码器140产生用于每组重构数据的概率分布信息,以仅包括指示残余数据中第一符号的概率的单个解码参数。解码器440基于对解码器来说已知的预定的一组标准参数来对其他符号的概率分布进行外推;该外推可以通过计算或基于表格查找而完成。
[0075]在其他实施例中,如下面所讨论的,为了针对每个质量水平减少需要被发射到解码器的数据量,熵编码器140不生成用于各重构数据的任何概率分布信息。在这种实例中,解码器440针对一个或多个较高质量水平中的每一个使用(“继承”)来自较低质量水平的概率分布信息,以将范围值信息转换成重构数据。
[0076]图2是图示出根据本文中的实施例的信号的处理的示例图。
[0077]如先前所讨论的,在一个实施例中,信号115可以表示图像信息。在本非限制性示例中假设信号115和相应的重构数据指示如何利用给定比例因数(例如,在本非限制性示例中,比例因数为2)将较低分辨率图像转换或扩展成较高分辨率图像。[0078]此外,假设各组熵编码重构数据150在被解码时指示如何控制处于每个质量水平的图像元素的设置。例如,处于质量水平J的图像210-1包括图像元素域W ;处于质量水平J+1的图像210-2包括图像兀素域X ;图像210-3包括图像兀素域Y ;等等。
[0079]针对质量水平J的重构数据指示如何控制图像210-1中的图像元素W的设置(例如,信号115-0的再现);针对质量水平J+1的重构数据指示如何将图像210-1中的每个图像元素W转换成图像210-2中的四个X元素;针对质量水平J+2的重构数据指示如何将图像210-2中的每个图像元素Y转换成图像210-3中的四个Y元素;以此类推。转换能够包括向上采样和滤波(也借助于非线性操作)后面紧接着对元素进行调整。
[0080]图3是图示出根据本文中的实施例的处理重构数据的不同示例的示例图。
[0081]如所示的那样,重构数据150-3能够包括元数据160-3、残余数据170_3等。重构数据150-2能够包括元数据160-2、残余数据170-2等。重构数据150-1能够包括元数据160-1、残余数据170-1等。
[0082]熵编码器140分析元数据160-1以产生概率分布信息390_1,其指示元数据160_1中符号的分布。熵编码器140还分析残余数据170-1以产生概率分布信息391-1,其指示残余数据170-1中符号的分布。
[0083]熵编码器140分析元数据160-2以产生概率分布信息390_2,其指示元数据160_2中符号的分布。熵编码器140还分析残余数据170-2以产生概率分布信息391-2,其指示残余数据170-2中符号的分布。
[0084]熵编码器140分析元数据160-3以产生概率分布信息390_3,其指示元数据160_3中符号的分布。熵编码器140还分析残余数据170-3以产生概率分布信息391-3,其指示残余数据170-3中符号的分布;以此类推。
[0085]有时,熵编码器140可以判定不产生概率分布信息39*-*,在该情况下,针对相应的重构数据组,将自动地从较低质量水平和/或从已知参考信号继承用于对相应的范围值进行编码的概率分布信息。
[0086]经由熵编码的某种适当方法(例如,范围编码、霍夫曼编码、基于表格的VLC/可变长度编码、行程编码或其他类似技术),熵编码器140产生用于元数据160-1的范围值信息380-1、用于残余数据170-1的范围值信息381-1、用于元数据160-2的范围值信息380-2、用于残余数据170-2的范围值信息381-2、用于元数据160-3的范围值信息380-3、用于残余数据170-3的范围值信息381-3等等。
[0087]熵解码器440利用概率分布信息390-1来将范围值信息380_1解码成元数据160-1 ;熵解码器440利用概率分布信息391-1来将范围值信息381-1解码成残余数据170-1。
[0088]熵解码器440还利用概率分布信息390-2来将范围值信息380_2解码成元数据160-2 ;熵解码器440利用概率分布信息391-2来将范围值信息381-2解码成残余数据170-2。
[0089]熵解码器440还利用概率分布信息390-3来将范围值信息380_3解码成元数据160-3 ;熵解码器440利用概率分布信息391-3来将范围值信息381-3解码成残余数据170-3 ;以此类推。
[0090]有时,熵解码器440可以不接收概率分布信息39*-*,在该情况下,将自动地从较低质量水平和/或从已知参考信号继承对相应的范围值进行解码所需的概率分布信息。
[0091]图4是图示出用于对重构数据进行编码的示例熵编码方法(S卩,被称为范围编码的行业标准方法)的示例图。
[0092]如所示的那样,最初,熵编码器140根据符号概率来选择诸如O至I之类的范围以进行细分。对于具有已知长度和符号x、Y和Z的已知字母表的重构数据的符号的给定序列(例如,ΧΧΥΧΖ),熵编码器140产生概率分布信息。在这种情况下,概率分布信息指示序列中符号X的概率是60%,序列中符号Y的概率是20%,并且符号Z的概率是20%。基于概率分布信息和符号序列,熵编码器140作为范围值而产生被包括在范围(0.25056,0.25920)内的任何数字。特别地,编码器将可能选择要求最少量的位的该范围内的数字中的一个(例如,能够精确地用二进制表示为0.0100001的0.2578125,在小数点后有7位)。
[0093]使用用于该序列的概率分布信息,解码器能够将范围值(例如,二进制值
0.0100001或位串“0100001”)解码回至序列XXYXZ。
[0094]这种类型的范围编码能够用于将每组重构数据编码成各范围值。然而,请注意,5个符号的使用仅仅是以非限制性示例的方式示出的,并且每组重构数据当然可以包括远多于5个符号的序列(例如,从几百个符号或甚至多得多的字母表取得的数万个符号的序列)。
[0095]图5是图示出根据本文中的实施例的处于层级中的多个质量水平的已编码信息的使用的示例图。
[0096]在本示例中,信号处理器100-1利用熵编码器140来将重构数据编码成范围值信息和概率分布信息。例如,熵编码器140分析针对质量水平#1的重构数据150-1 (例如,如本文所讨论的一种或多种不同类型的重构数据中的任一种)以产生概率分布信息490-1。概率分布信息490-1指不重构数据150-1中一个或多个符号的概率分布。基于概率分布信息490-1和重构数据150-1中的符号的序列,熵编码器以如本文讨论的方式产生范围值信息 480_1ο
[0097]熵解码器440使用概率分布信息490-1作为将范围值信息480_1转换成重构数据150-1的基础。
[0098]在下一质量水平处,熵编码器140分析针对质量水平#2的重构数据150-2以产生一组概率分布信息。在本示例中,基于该分析,熵编码器140认识到用于重构数据150-2的概率分布信息基本上类似于或等于用于重构数据150-1的概率分布信息。在这种实例中,能够在质量水平#2处重用(“继承”)概率分布信息490-1,而不要求存储和/或发射指定新概率分布将需要的信息。
[0099]将处于前一质量水平#1的概率分布信息490-1重用于处于较高质量水平的元素(例如,从信号115-1的再现重用到信号115-2的再现),熵编码器140生成范围值信息480-2。熵编码器140在没有相应的概率分布信息的情况下存储并发射用于质量水平#2的范围值信息480-2。换言之,熵编码器140不针对范围值信息480-2向解码器440发送一组概率分布信息。
[0100]在这种实施例中,熵解码器440被配置成接收范围值信息480-2。响应于检测到熵编码器140未生成和发送针对范围值信息480-2的概率分布信息,熵解码器440利用概率分布信息490-1 (例如,指示重构数据150-1中一个或多个符号的概率分布)来将范围值信息480-2解码成重构数据150-2。这种技术减少了需要被发射到熵解码器440以重构信号115的数据量。能够在多个较高质量水平处重用用于给定质量水平的单个组概率分布信息。编码器还能够指定将在不需要其他规范(即,将不存在任何超越(override))的情况下从当前质量水平一直向上到最上(最高)质量水平继承给定组的概率分布信息。这支持需要编码、存储或发射的数据的再进一步减少。
[0101]相应地,本文中的实施例能够包括:接收用于给定重构数据的范围值;识别处于前一(例如,较低)质量水平的重构数据中符号的概率分布;以及利用该较低质量水平的所识别的概率分布来将范围值信息解码成给定重构数据。如所提及的那样,处于层级中的一个或多个不同较高水平的概率分布信息的重用(“继承”)减少了需要被发送到熵解码器以重构信号的已编码数据的量。
[0102]熵编码器140可以分析重构数据150-3并获悉重构数据150_3中符号的概率分布信息基本上不同于(例如,高于阈值)重构数据150-1和/或重构数据150-2中符号的分布。在这种实例中,熵编码器140产生概率分布信息490-3。基于概率分布信息490-3和重构数据150-3中的符号序列,熵编码器140产生范围值信息480-3。
[0103]熵解码器440被配置成接收范围值信息480-3和概率分布信息490_3。熵解码器440使用概率分布信息490-3作为将范围值信息480-3转换成重构数据150-3的基础。
[0104]根据替换实施例,请注意,能够将熵解码器440配置成接收用于给定质量水平的范围值信息。响应于检测到熵编码器140未指定用于给定重构数据的概率分布值,取代使用继承概率分布(例如,以非限制性示例的方式,前一较低质量水平的相同概率分布信息),熵解码器利用用于一个或多个符号的默认概率分布以便将范围值解码成各重构数据。
[0105]再一次地,请注意,在本文中仅以非限制性示例的方式示出了作为熵编码方法的范围编码的选择,作为特定实施例且为了使描述更清楚:能够与相同的方法一起使用熵编码或数据压缩的任何适当方法,像在本文中已经引用的那些方法或可能在未来发现或开发且直接地或间接地利用符号概率的其他方法。
[0106]用于每个帧/LoQ的每个瓦片的残余分布的精确指示
假设必须对针对质量水平N的残余数据进行编码。假设解码器已经具有关于前一水平N-1的信息并已尝试通过利用一组上扩操作/滤波器来以水平N重构信号的再现。为了完全重构水平N,解码器现在需要接收针对水平N的残余数据。
[0107]编码器可能具有关于原始水平N和关于解码器内部工作的知识(S卩,其能够预测解码器将计算出的水平N的“初稿”),因此,编码器140能够计算以相对于原始图像的期望接近性/相似性重构整个图像(例如,处于质量水平N的所有元素)所需的残余内容的分布。
[0108]为了提高效率,本文中的一个实施例包括仅仅向解码器发送零符号的概率,S卩,在残余数据中最常出现的符号(例如,当元素所需的调整值为零或处于零附近时,达到适当阈值)。这可能是用于在符号字母表的不同可能分布之间鉴别的最有用参数。相应地,针对每个帧的每个质量水平的每个瓦片(如下面进一步讨论的),能够将解码器440配置成具有残余内容的适当概率分布,允许由编码器140实现的熵编码以显著的有效性压缩重构数据。
[0109]根据一个实施例,如上所述,可以仅当在给定质量水平处需要时才发送残余数据中不同符号的特定分布。针对后续质量水平和可能地针对后续帧,解码器默认地使用被用于前一质量水平的概率分布信息,除非编码器140通过发送新的值来超越上一个值。
[0110]图6是图示出根据本文中的实施例的使用一个或多个并行处理器的重构数据的瓦片的处理的示例图。
[0111]如所示的那样,能够将熵编码器140配置成将每组重构数据解析成重构数据的多个群组。例如,能够将熵编码器140配置成将重构数据150-1解析成瓦片610-1、瓦片610-2、瓦片610-3、瓦片610-4等。处于质量水平#1的每个瓦片610能够包括相对于信号中的预定数目个(例如,64个)邻接元素的重构数据。
[0112]能够将熵编码器140配置成将重构数据150-2解析成瓦片620_1、瓦片620_2、瓦片620-3、瓦片620-4等。每个瓦片620能够包括相对于信号中的预定数目个(例如,256个)邻接元素的重构数据。
[0113]请注意,重构数据不是基于块或基于瓦片的,因为其可以通过处理整个信号而获得,或者,仅在被产生之后才将其切成单独的瓦片,以便允许并行的熵编码/解码。
[0114]图7是图示出根据本文中的实施例的处于给定质量水平的给定组的重构数据(例如,残余数据或对用于运动补偿的运动图的调整等)的多个瓦片的编码的示例图。
[0115]如先前 所讨论的,能够将熵编码器140配置成将针对给定质量水平的重构数据解析成多个瓦片。在本示例中,将重构数据150-2解析成瓦片重构数据150-T1、瓦片重构数据150-T2、瓦片重构数据150-T3等。
[0116]根据这种实施例,熵编码器140产生多个群组中的每一个中一个或多个符号的概率分布信息(例如,各概率分布值)。例如,熵编码器140基于针对瓦片群组的各概率分布值将瓦片重构数据的多个群组中的每一个编码成范围值。
[0117]更具体地,熵编码器140产生指示瓦片重构数据150-T1中一个或多个符号的分布的概率分布信息490-T1 ;熵编码器140产生指不瓦片重构数据150-T2中一个或多个符号的分布的概率分布信息490-T2 ;熵编码器140产生指示瓦片重构数据150-T3中一个或多个符号的分布的概率分布信息490-T3 ;以此类推。
[0118]基于概率分布信息490-T1和重构数据150-T1中的符号序列,熵编码器140产生范围值信息480-T1 ;基于概率分布信息490-T2和重构数据150-T2中的符号序列,熵编码器140产生范围值信息480-T2 ;基于概率分布信息490-T3和重构数据150-T3中的符号序列,熵编码器140产生范围值信息480-T3 ;以此类推。
[0119]在一个示例实施例中,重构数据的多个群组中的每一个包含相对于被包括在瓦片中的信号元素的残余数据。每个残余数据元素指示要在信号从第一质量水平到第二质量水平的转换期间对信号的相应部分进行的调整。
[0120]如本文所讨论的将重构数据缩减至不同组的瓦片使信号处理器100-2能够发起多个熵解码器的并行执行,以使用范围值480-T和概率分布值490-T来再现重构数据的多个群组(例如,瓦片重构数据150-T1、瓦片重构数据150-T2、瓦片重构数据150-T3、……)。[0121 ] 通过简单地将关于瓦片计算的分布/直方图合并,还能够经由并行算法来完成计算针对全局信号/图像的残余内容的分布/直方图。
[0122]图8是图示出根据本文中的实施例的使用一个或多个死区量化器的处于给定质量水平的重构数据的量化的示例图。调整不同死区并将其应用于重构数据(例如,残余数据)使得能够根据多个不同的次级质量水平对重构数据的多个质量水平中的每一个进一步编码。
[0123]例如,编码器生成诸如残余数据170-2之类的重构数据。请注意,能够使用如本文所述的死区量化将处于层级中的任何质量水平的任何类型的重构数据编码成不同的次级质量水平。
[0124]经由不同死区设置的应用(例如,利用量化器810-1、量化器810-2、……),编码器将残余数据170-2(即,重构数据)解析成包括已调整残余数据870-1、已调整残余数据870-2等的多个群组。例如,在一个实施例中,编码器将量化器810-1应用于残余数据170-2以产生已调整残余数据870-1 ;编码器将量化器810-2应用于残余数据170-2以产生已调整残余数据870-2 ;以此类推。量化器810-1具有将范围#1内的任何符号设置成诸如零之类的公共符号(因此,针对该范围有公共名称“死区”)的效果;量化器810-2具有将范围#2内的任何符号设置成诸如零之类的公共符号的效果;以此类推。每个量化器提供不同水平的死区(和潜在地甚至不同的量化步长),导致不同的次级质量水平。
[0125]熵编码器140单独地对处于不同次级质量水平的重构数据的每个不同群组进行编码。
[0126]例如,针对已调整残余数据870-1的第一群组,熵编码器140分析已调整残余数据870-1,以产生已调整残余数据870-1中一个或多个符号的第一概率分布值(例如,概率分布信息890-1)。熵编码器140以如先前针对其他重构数据讨论的方式基于已调整残余数据870-1的概率分布信息890-1和元素设置来产生范围值信息880-1。
[0127]针对已调整残余数据870-2的第二群组,熵编码器140分析已调整残余数据870-2,以产生已调整残余数据870-2中一个或多个符号的概率分布值(例如,概率分布信息890-2)。熵编码器1 40基于已调整残余数据870-2的概率分布信息890-2和元素设置来产生范围值信息880-2。
[0128]在诸如阻止重构数据到解码器的传输的条件之类的网络拥塞期间,如上文所讨论的使用不同量化器的层级中的一个或多个质量水平中的每一个的编码是有用的。例如,响应于阻止范围值信息880-1和概率分布信息890-1 (例如,与范围值信息880-2和概率分布信息890-2相比,范围值信息880-1和概率分布信息890-1包括更大量的数据)的及时传输或解码的障碍的检测和/或发生,本文中的实施例包括将范围值信息880-2和概率分布信息890-2发射到解码器。解码器440将范围值信息880-2和概率分布信息890-2解码以产生已调整残余数据870-2。
[0129]根据其他实施例,能够根据诸如可用带宽之类的参数来调整处于一个或多个质量水平中的每一个的量化以发射范围值信息和概率分布信息。也就是说,能够在较高带宽可用时的时间期间发射较大的数据量(例如,重构数据的较高次级质量水平);能够在带宽有限时的时间期间发射较小的数据量(例如,重构数据的较低次级质量水平)。
[0130]因此,本文中的一个实施例包括生成已调整残余数据以便以层级中的给定质量水平重构信号。熵编码器140对残余数据170-2应用不同的量化,以在熵编码之前减小处于给定质量水平的已调整残余数据的熵。将一个或多个量化器应用于残余数据170-1促进了根据期望比特率(例如,恒定比特率CBR)进行的已编码残余数据的传输,因为扩大用于符号的给定字母表的死区(例如,从范围#1至范围#2)减小了已调整残余数据的熵。也就是说,与范围值信息880-1和概率分布信息890-1相比,较低次级质量水平范围值信息880-2和概率分布信息890-2要求更少的位并要求更少的发射时间。
[0131]根据其他实施例,能够将信号处理器100-1和/或熵编码器140配置成计算用于对处于层级中的多个质量水平的信号进行调整的残余数据中符号的概率分布。例如,在一个实施例中,信号处理器100-1利用针对重构数据计算的概率分布以基于第一量化设置来估计对处于一个或多个质量水平的残余数据进行熵编码的比特率。响应于检测到用于发射诸如残余数据之类的重构数据的所估计出的比特率高于期望阈值,信号处理器100-1能够对残余数据应用附加/不同量化(例如,通过扩大得以被量化成最可能符号的死区)以减小与残余数据相关联的熵并减少必须被发射到解码器以重构信号115的数据量(例如,处于每个质量水平的范围值信息和概率分布信息)。相应地,信号处理器100-1能够调整处于多个质量水平中的每一个的残余数据的熵以确保能够在由期望比特率施加的界限内将已编码数据发射到目的地。
[0132]图9是图示出根据本文中的实施例的使用不同死区设置的重构数据的量化的示例图。
[0133]如所示的那样,量化器810-1的应用在产生已调整残余数据870-1时将落在_2与2之间的范围#1内的残余数据170-2中的任何符号转换成符号值零。换言之,量化器810-1将具有值1、2、_2、1、2和I的残余数据170-2中的元素设置成公共符号值O以产生已调整残余数据870-1。在本特定示例中,重构数据170-2中的其他值从残余数据170-2延续至已调整残余数据870-1 ;这仅仅意图使示例更容易遵循,并且应当理解的是,在本发明的实际实施例中,也可能量化其他值,其中量化步长等于或不同于死区#1的宽度。
[0134]如所示的那样,量化器810-2的应用在产生已调整残余数据870-2时将落在_4与4之间的范围#2内的残余数据170-2中的任何符号转换成符号值零。换言之,量化器810-2将具有值1、2、-2、_4、1、2、1、3和-3的残余数据170-2中的元素设置成公共符号值O以产生已调整残余数据870-2。在本特定示例中,重构数据170-2中的其他值从残余数据170-2延续至已调整残余数据870-2 ;再一次,这仅仅意图使示例更容易遵循,并且应当理解的是,在本发明的实际实施例中,也可能量化其他值,其中量化步长等于或不同于死区#2的宽度。
[0135]能够将编码器配置成针对多个次级质量水平中的每一个重复此过程。
[0136]作为应用不同死区量化器的结果,与已调整残余数据870-2相比,已调整残余数据870-1具有更高熵。相应地,针对已调整残余数据870-2的已编码数据组小于针对已调整残余数据870-1的已编码数据组。如上所述,在网络拥塞期间,可以有利的是,发射和解码已调整残余数据870-2以代替发射和解码已调整残余数据870-1。
[0137]图10是图示出根据本文中的实施例的根据量值将重构数据解析成残余数据的不同群组的示例图。在本示例实施例中,编码器将诸如残余数据170-2之类的重构数据解析成多个群组(例如,已调整残余数据1070-1、已调整残余数据1070-2、已调整残余数据1070-3等)。经由量化器1010-1,信号处理器100-1产生已调整残余数据1070-1。在一个实施例中,信号处理器100-1填充已调整残余数据1070-1 (例如,第一组重构数据)以包括具有落在第一范围外的值(诸如小于-T3的值和大于+T3的值)的残余数据170-2的元素。其他值(即,在-T3与+T3之间的“死区”中)被设置为诸如零之类的公共符号,其将变得越来越可能且由此将要求较少的位以利用熵编码表示。
[0138]经由量化器1010-2,信号处理器100-1产生已调整残余数据1070_2。在一个实施例中,信号处理器100-1填充已调整残余数据1070-2 (例如,第二组重构数据)以包括具有落在第一范围外且在第二范围内的值(例如,落在-T3与-T2之间以及在+T2与+T3之间的值)的残余数据170-2的元素。落在-T2与+T2之间的死区中的值被设置为诸如零之类的公共符号;其他值(即,小于-T3且大于+T3)未被编码。
[0139]经由量化器1010-3,信号处理器100-1还产生已调整残余数据1070_3。在一个实施例中,信号处理器100-1填充已调整残余数据1070-3 (例如,第三组重构数据)以包括具有落在第三范围内的值(例如,落在-T2与T2之间的值)的残余数据170-2的元素。其他值未被编码。
[0140]熵编码器140单独地对已调整残余数据1070进行编码。
[0141]例如,熵编码器140分析已调整残余数据1070-1以产生概率分布信息1090_1。基于已调整残余数据1070-1中的概率分布信息1090-1和元素序列,熵编码器140产生范围值信息1080-1。
[0142]因此,能够将熵编码器140配置成单独地将已调整残余数据1070的不同群组编码成相应的范围值信息和概率分布信息。例如,熵编码器140将已调整残余数据1070-1解码成概率分布信息1090-1和范围值信息1080-1 ;熵编码器140将已调整残余数据1070-2编码成概率分布信息1090-2和范围值信息1080-2 ;熵编码器140将已调整残余数据1070-3编码成概率分布信息1090-3和范围值信息1080-3 ;以此类推。
[0143]如上文所讨论的在互补群组中对重构数据进行解析和编码可以在诸如解码器的可变/不可预测计算能力或不同质量向不同解码器的提供(例如,按次计费(pay-per-view)服务)之类的情况下或者在编码器与解码器之间的传输信道的拥塞期间有用。例如,在一个实施例中,响应于阻止及时地将重构数据的所有群组(例如,已调整残余数据1070-1、已调整残余数据1070-2、已调整残余数据1070-3等)解码以产生原始信号的较高准确度复制品的障碍的发生,信号处理器100-2能够基于概率分布信息1090-1来发起已编码残余数据的子集(诸如仅范围值信息1080-1)到已调整残余数据1070-1的解码。在这种实例中,信号处理器100-2利用重构数据的已解码第一群组来将处于第一质量水平的信号的再现转换成第二质量水平。
[0144]图11是图示出根据本文中的实施例的使用不同量化器设置的重构数据的量化的示例图。如所示的那样,编码器140将已调整残余数据170-2解析成已调整残余数据1070-1、已调整残余数据1070-2等。
[0145]编码器140填充已调整残余数据1070-1以包括具有落在第一范围之外(例如在量值方面大于50)的值的残余数据170-2的元素。所有其他值被设置为零。
[0146]编码器140填充已调整残余数据1070-2以包括具有落在25与50之间的量值范围内的值的所生成的重构数据的元素。已利用已调整残余数据1070-1中的非零符号编码的值不再需要在已调整残余数据1070-2中编码。所有其他值被设置为零。
[0147]信号处理器100-1针对每个范围重复此过程。
[0148]如上文所讨论的,熵编码器140单独地对各组已调整残余数据1070进行编码。
[0149]比特率或恒定比特率编码的精确控制的示例
MPEG系列编解码器及其他行业标准编解码器不能根据已编码位流保持在预定义范围的每秒比特内的恒定比特率进行编码。这在很大程度上是由于算法的性质。也就是说,这种编解码器仅在已完成整个编码过程之后才能确定对图像进行编码所需的精确位数。当未满足位限额时,这种编码器必须利用不同的参数对原始信号重新编码多次,直至所生成的尺寸处于与目标相距期望阈值内。一般地,在恒定比特率的情形中,编码器从开始起频繁地开始利用高压缩参数进行编码(从而常常实现比在可用比特率的情况下将在理论上可能的质量更低的质量),以便最小化不得不将信号重新编码多次的风险。
[0150]与常规编解码器相比,并且根据本文中的实施例,可以预先知道将需要多少位以对重构数据进行编码,因为位数仅取决于重构数据的概率分布,其能够在开始熵编码过程之前计算。还能够使用概率分布的适当代替物,诸如残余数据中零符号的概率。
[0151 ] 由于本文中的实施例对整个信号(不是对小块,例如8X8像素块,如在MPEG系列编解码器或其他频域编解码器中那样)进行操作,所以可以容易地计算将需要多少位以对各不同重构数据进行编码。如果不可能发射或解码较高分辨率重构数据,则能够如本文所讨论的那样将重构数据自适应地量化以减小残余内容的熵(并因此减小所必需的比特率)。
[0152]本文中的一个实施例包括:设置落在零周围的范围内的值以增加零符号的概率;或者增加量化步长以减小符号的字母表。以这些方式减小熵使得能够以较少的位将已编码信号发射到解码器。重构信号的完整性可能由于残余数据的量化(其用于在重放时产生信号115的详细方面)而稍微受损。然而,将不存在由拥塞引起的重放时的暂停。当更多带宽可用时,能够将较高质量的重构数据发射到解码器以用于信号的重构和重放。
[0153]图12是根据本文中的实施例的提供计算机处理的计算机系统800的示例框图。
[0154]计算机系统800可以是或包括计算机化设备,诸如个人计算机、处理电路、电视、重放设备、编码设备、工作站、便携式计算设备、控制台、网络终端、处理设备、网络设备,其作为交换机、路由器、服务器、客户端等进行操作。
[0155]请注意,以下讨论提供了指示如何执行如先前所讨论的与信号处理器140相关联的功能的基本实施例。然而,应当注意的是,用于执行如本文所述的操作的实际配置能够根据相应应用而变化。能够经由包括一个或多个处理器和存储硬件的各计算机系统来实现诸如解码器440之类的其他资源以执行如本文所讨论的解码。
[0156]如所示的那样,本示例的计算机系统800包括互连811,互连811耦合在其中能够存储和检索数字信息的计算机可读存储介质812,诸如非瞬变类型的介质、计算机可读、硬件存储介质等。计算机系统800还能够包括一个或多个处理器813、I/O接口 814以及通信接口 817。
[0157]I/O接口 814提供与储藏库180以及(如果存在的话)显示屏、诸如键盘、计算机鼠标等外围设备816的连接。
[0158]计算机可读存储介质812 (例如,硬件存储介质)可以是任何适当的设备和/或硬件,诸如存储器、光学储存器、硬盘驱动器、软盘等。计算机可读存储介质可以是非瞬变存储介质,用于存储与信号处理器140相关联的指令。该指令被诸如信号处理器140之类的相应资源执行,以执行如本文所讨论的任何操作。
[0159]通信接口 817使计算机系统800能够通过网络190进行通信,以从远程源检索信息并与其他计算机、交换机、客户端、服务器等进行通信。I/o接口 814还使处理器813能够从储藏库180检索或试图检索所存储的信息。
[0160]如所示的那样,能够用由(一个或多个)处理器813作为信号处理器过程140-2执行的信号处理器应用140-1对计算机可读存储介质812进行编码。[0161]请注意,还能够将计算机系统800或编码器140体现为包括用于存储数据和/或逻辑指令的计算机可读存储介质812 (例如,硬件存储介质、非瞬变存储介质等)。
[0162]计算机系统800能够包括一个或多个处理器813以执行这种指令并执行如本文所讨论的操作。相应地,当被执行时,与信号处理器应用140-1相关联的代码能够支持如本文所讨论的处理功能。如所提及的那样,信号处理器140能够被配置成支持编码和/或解码。
[0163]在一个实施例的操作期间,(一个或多个)处理器813经由互连811的使用来访问计算机可读存储介质812,以便启动、运行、执行、解释或以其他方式实行存储在计算机可读存储介质812中的信号处理器应用140-1的指令。信号处理器应用140-1的执行产生(一个或多个)处理器813中的处理功能。换言之,与(一个或多个)处理器813相关联的编码器过程140-2表示在计算机系统800中的(一个或多个)处理器813内或上执行信号处理器应用140-1的一个或多个方面。
[0164]本领域技术人员将理解的是,计算机系统800能够包括其他过程和/或软件和硬件部件,诸如控制硬件处理资源的分配和使用以执行信号处理器应用140-1的操作系统。
[0165]根据不同的实施例,请注意,计算机系统可以是各种类型的设备中的任一种,包括但不限于个人计算机系统、台式计算机、膝上型计算机、笔记本、笔记本计算机、大型计算机系统、便携式计算机、工作站、网络计算机、应用服务器、存储设备、消费电子设备(诸如摄像机、录像摄像机、机顶盒、移动设备、视频游戏控制台、手持式视频游戏设备)、外围设备(诸如交换机、调制解调器、路由器)、或者一般地任何类型的计算或电子设备。
[0166]图13是图示出根据本文中的实施例的生成并利用熵编码的方法的示例流程图1300。
[0167]在步骤1310中,信号处理器100-1产生处于第一质量水平的信号的再现。
[0168]在步骤1320中,信号处理器100-1生成重构数据,该重构数据指定如何将处于第一质量水平的信号的再现转换成处于层级中的第二质量水平的信号的再现,第二质量水平高于第一质量水平。
[0169]在步骤1330中,信号处理器100-1利用熵编码器来对重构数据进行编码。熵编码器140产生表示重构数据的位流(例如,范围值信息)。
[0170]再次请注意,本文中的技术非常适合于在处理和重构信号时使用。然而,应当注意的是,本文中的实施例不限于在这种应用中使用,并且本文所讨论的技术也非常适合于其他应用。
[0171]基于本文阐述的描述,已阐述了许多特定细节以提供对要求保护的主题的透彻理解。然而,本领域技术人员将理解,可以在没有这些特定细节的情况下实施要求保护的主题。在其他实例中,未详细地描述本领域技术人员将已知的方法、设备、系统等,以免使要求保护的主题含糊不清。已经在对存储于计算机系统存储器(诸如计算机存储器)内的数据位或二进制数字信号的操作的算法或符号表示方面提出了详细描述的某些部分。这些算法描述或表示是被数据处理领域中的技术人员用来向本领域中的其他人传达其工作的实质的技术的示例。如在本文中且一般地描述的算法被认为是导致期望结果的自相一致的操作或类似处理的序列。在该上下文中,操作或处理涉及到物理量的物理操纵。通常,尽管不一定,这种量可以采取能够被存储、传输、组合、比较或以其他方式操纵的电或磁信号的形式。在原理上由于常用的原因,将这些信号称为诸如位、数据、值、元素、符号、字符、项、数字、数值等有时已证明是方便的。然而,应当理解的是,所有这些和类似术语将与适当的物理量相关联,并仅仅是方便的标签。除非另外具体声明,如从以下讨论中显而易见的那样,应当认识到,遍及本说明书,利用诸如“处理”、“计算”、“测算”、“确定”等术语的讨论指代计算平台的动作或过程,该计算平台诸如是计算机或类似电子计算设备,其对被表示为存储器、寄存器或者该计算平台的其他信息存储设备、传输设备或显示设备内的物理电子或磁量的数据进行操纵或变换。
[0172]虽然已经参考其优选实施例特别地示出并描述了本发明,但本领域技术人员将理解的是,在不脱离如所附权利要求限定的本申请的精神和范围的情况下,可以对其进行形式和细节方面的各种改变。这种变化意图被本申请的范围覆盖。由此,本申请的实施例的先前描述并不意图进行限制。相反,对本发明的任何限制都在以下权利要求中提出。
【权利要求】
1.一种在包括多个质量水平的层级中对信号进行编码的方法,该方法包括: 产生处于第一质量水平的信号再现; 生成至少一组重构数据,该至少一组重构数据指定如何基于处于第一质量水平的信号再现和/或可用参考信号、以层级中的第二质量水平重构信号再现,第二质量水平高于第一质量水平;以及 利用熵编码器来对不同组重构数据进行编码,该熵编码器针对每一组产生表示被包含在重构数据中的符号的已编码值或位串。
2.如权利要求1所述的方法,其中,利用熵编码器包括: 分析每组重构数据以产生具有概率分布信息的一个或多个解码参数,该概率分布信息指示该组重构数据所使用的符号的字母表中至少一个符号的概率;以及 存储已编码值或位串和概率分布信息,以用于已编码值或位串回到重构数据的后续解码。
3.如权利要求2所述的方法,还包括: 实现熵解码器以针对每组重构数据将已编码值或位串和概率分布信息解码成重构数据;以及 利用由解码器产生的各组重构数据,以基于处于第一质量水平的信号再现和/或可用参考信号来以第二质量水平重构该信号再现。
4.如权利要求1所述的方法,其中,各组重构数据中的一个包括指示要在将处于第一质量水平的信号再现向上采样至处于第二质量水平的信号再现之后进行的调整的残余数据;并且其中,利用熵编码器包括产生要被各熵解码器用来对残余数据中多个符号的概率分布进行外推的至少一个解码参数。
5.如权利要求2所述的方法,其中,所述至少一个解码参数包括第一参数和附加参数,该第一参数指定重构数据中被分配有第一符号的元素的百分比,该附加参数指示重构数据中多个附加符号的概率。
6.如权利要求2所述的方法,其中,所述至少一个解码参数包括第一参数和第二参数,该第一参数指定重构数据中被分配有第一符号的元素的百分比,该第二参数向解码器指示如何对重构数据中多个其他符号的概率分布值进行外推。
7.如权利要求2所述的方法,其中,所述至少一个解码参数包括指示重构数据中第一符号的概率的仅单个参数,熵解码器基于对将已编码值或位串转换回到重构数据的熵解码器来说已知的预定组的标准参数对多个其他符号的概率分布进行外推。
8.如权利要求1所述的方法,其中,针对一组或多组重构数据,利用熵编码器包括: 将每组重构数据解析成重构数据的多个群组; 利用熵编码器来产生存在于多个群组中的每一个中的符号的各概率分布信息;以及 利用熵编码器以基于用于群组的各概率分布信息将每组重构数据的多个群组编码成已编码值或位串。
9.如权利要求8所述的方法,其中,重构数据的所述多个群组中的每一个是相对于信号的特定部分的残余数据元素的瓦片,残余数据元素中的每一个指示要在信号从第一质量水平到第二质量水平的向上采样之后对信号的对应元素进行的调整,该方法还包括: 发起多个熵解码器的并行执行,以针对每个群组使用特定已编码值或位串和概率分布值来再现重构数据的多个群组。
10.如权利要求1所述的方法,其中,所述重构数据是各组重构数据的第一阵列,该方法还包括: 生成各组重构数据的第二阵列,各组重构数据的第二阵列指定如何基于处于第二质量水平的信号再现来以层级中的第三质量水平重构信号再现,第三质量水平高于第二质量水平;以及 分析第二阵列的每组重构数据以基于概率分布信息来产生一个或多个解码参数,该概率分布信息指示该组重构数据所使用的符号的字母表中的至少一个符号的概率;以及 利用熵编码器来对各组重构数据的第二阵列进行编码,该熵编码器针对每组重构数据基于针对该组产生的概率分布信息来产生表示数据的已编码值或位串。
11.如权利要求1所述的方法,其中,所述重构数据是各组重构数据的第一阵列,该方法还包括: 生成各组重构数据的第二阵列,各组重构数据的第二阵列指定如何基于处于第二质量水平的信号再现和/或可用参考信号、以层级中的第三质量水平重构信号再现,第三质量水平高于第二质量水平;以及 利用熵编码器来对各组重构数据的第二阵列进行编码,该熵编码器针对每组重构数据基于各组重构数据的第一阵列中的对应数据组的概率分布信息来产生表示数据的已编码值或位串。
12.如权利要求1所述的方法,其中,所述重构数据是各组重构数据的第一阵列,该方法还包括: 接收针对各组重构数据的第二阵列的已编码值或位串,各组重构数据的阵列指示如何基于处于第二质量水平的信号再现和/或可用参考信号来以第三质量水平重构信号再现,第三质量水平高于第二质量水平; 接收解码参数并识别第二阵列的每组重构数据中符号的概率分布;以及 利用所识别的概率分布来将针对各组重构数据的第二阵列的已编码值或位串解码成各组重构数据的第二阵列。
13.如权利要求12所述的方法,还包括: 接收表示各组重构数据的第二阵列的已编码值或位串;以及 针对每组重构数据,响应于检测到熵编码器未发送用于一组或多组数据的概率分布信息或者熵编码器先前指定其不会发送用于一组或多组数据的概率分布参数,利用针对重构数据的第一阵列中的对应组解码的概率分布信息来对表示数据组的已编码值或位串进行熵解码。
14.如权利要求3所述的方法,还包括: 接收针对每组重构数据的已编码值或位串; 以及 响应于检测到熵编码器未发送关于该组重构数据中符号的概率分布的特定信息,利用用于符号的默认概率分布值来将已编码值或位串解码成重构数据。
15.如权利要求1所述的方法,还包括: 将一组或多组重构数据解析成多个群组,该多个群组至少包括重构数据的第一群组和重构数据的第二群组;填充重构数据的第一群组,使得具有落在值/符号的第一范围内的值/符号的所生成的重构数据组的所有元素保持其值/符号,而所有其他元素被设置为默认值/符号; 填充重构数据的第二群组,使得具有落在值/符号的第二范围内的值/符号的所生成的重构数据组的所有元素保持其值/符号,而所有其他元素被设置为默认值/符号;以及根据值/符号的附加范围,根据相同的方法来填充附加群组;以及其中,针对这种组利用熵编码器还包括单独地对重构数据的第一群组、重构数据的第二群组和重构数据的任何其他附加群组进行熵编码。
16.如权利要求15所述的方法,其中,单独地进行熵编码还包括: 针对第一群组: 分析重构数据的第一群组以产生具有概率分布信息的一个或多个解码参数,该概率分布信息指示第一群组所使用的字母表中的符号的概率分布;以及 利用熵编码器以基于第一概率分布信息来产生第一已编码值或位串,第一已编码值或位串表示重构数据的第一群组; 针对第二群组: 分析重构数据的第二群组以产生具有概率分布信息的一个或多个解码参数,该概率分布信息指示第二群组所使用的字母表中的符号的概率分布;以及 利用熵编码器以基于第二概率分布信息来产生第二已编码值或位串,第二已编码值或位串表示重构数据的第二群组; 针对任何其他附加群组: 分析重构数据的特定群组以产生具有概率分布信息的一个或多个解码参数,该概率分布信息指示特定群组所使用的字母表中的符号的概率分布;以及 利用熵编码器以基于各概率分布信息来产生用于群组的已编码值或位串,该已编码值或位串表示重构数据的特定群组。
17.如权利要求16所述的方法,还包括: 针对特定组的重构数据,响应于阻止及时地对重构数据的所有群组进行熵解码的障碍的发生,发起已编码值或位串中的仅一些到重构数据的各群组的熵解码,重构数据的每个群组的所述熵解码基于指示概率分布信息的各解码参数;以及 连同已经解码的其他组重构数据一起,利用重构数据的熵解码群组以基于处于第一质量水平的信号再现和/或可用参考信号来重构第二质量水平。
18.如权利要求16所述的方法,还包括: 针对特定组的重构数据,响应于特定需要、或阻止及时地进行熵编码的障碍的发生、或用于重构数据的所有群组的传输的所必需的信息带宽的不可用性,向解码器传输与重构数据的各群组相对应的已编码值或位串中的仅一些连同指示概率分布信息的任何解码参数。
19.如权利要求1所述的方法,还包括: 生成残余数据以便以层级中的给定质量水平重构信号;以及 基于熵度量来估计对残余数据进行熵编码所需的位数;以及 将量化器应用于残余数据,以减小熵编码之前的处于给定质量水平的残余数据的熵,量化器对残余数据的应用促进了根据期望比特率对已编码残余数据的传输。
20.如权利要求1所述的方法,还包括:计算用于对处于层级中的多个质量水平的信号进行调整的残余数据中符号的概率分布; 利用概率分布以基于第一量化器设置来估计对残余数据进行熵编码的比特率; 响应于检测到所估计出的比特率高于期望阈值,对残余数据应用附加量化以减小与残余数据相关联的熵;以及 利用熵编码器来对已量化残余数据进行编码。
21.如权利要求1所述的方法,其中,所述熵编码器是范围编码器。
22.具有存储在其上的指令的计算机可读存储硬件,该指令在被处理设备执行时促使处理设备执行以下操作: 产生处于第一质量水平的信号再现; 生成至少一组重构数据,该至少一组重构数据指定如何基于处于第一质量水平的信号再现和/或可用参考信号、以层级中的第二质量水平重构信号再现,第二质量水平高于第一质量水平;以及 利用熵编码器来对不同组重构 数据进行编码,该熵编码器针对每一组产生表示被包含在重构数据中的符号的已编码值或位串。
23.一种计算机系统,包括: 处理器; 存储器单元,其存储与由处理器执行的应用相关联的指令;以及互连,将所述处理器和所述存储器单元耦合,使所述计算机系统能够执行所述应用并执行以下操作: 产生处于第一质量水平的信号再现; 生成至少一组重构数据,该至少一组重构数据指定如何基于处于第一质量水平的信号再现、以层级中的第二质量水平重构信号再现,第二质量水平高于第一质量水平;以及利用熵编码器来对不同组重构数据进行编码,该熵编码器针对每一组产生表示被包含在重构数据中的符号的已编码值或位串。
【文档编号】H04N19/124GK103918261SQ201280036119
【公开日】2014年7月9日 申请日期:2012年7月20日 优先权日:2011年7月21日
【发明者】卢卡·罗萨托, 圭多·梅亚尔迪 申请人:卢卡·罗萨托, 圭多·梅亚尔迪
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1