可伸缩视频编码和解码中的转换操作转让专利

申请号 : CN200980133795.0

文献号 : CN102132563B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·孙S·瑞古纳萨恩C·图C-L·林

申请人 : 微软公司

摘要 :

描述了用于可伸缩视频编码工具或可伸缩视频解码工具中的模块之间的转换操作的技术和工具。例如,给定低分辨率格式(例如,每个样本带有8位的4:2:0视频)的重构的基层视频,编码工具和解码工具自适应地过滤重构的基层视频,并将其样本值上采样到更高的样本深度(例如,每个样本10位)。工具还自适应地将色度采样伸缩到更高的色度采样速率(例如,4:2:2)。自适应过滤和色度伸缩通过使重构的基层视频更接近于输入视频来帮助减少层间残留视频中的能量,这通常会使对层间残留视频的压缩更高效。编码工具还重新映射层间残留视频的样本值以便在编码之前调整动态范围,并且解码工具在解码之后执行逆重新映射。

权利要求 :

1.一种使用可伸缩视频处理工具的方法,所述方法包括:在重构基层视频之后接收所述基层视频,其中重构的基层视频具有带有第一样本深度的多个样本值;

使用自适应低通过滤器来对所述重构的基层视频进行过滤;以及将所述重构的基层视频的所述多个样本值上采样到高于所述第一样本深度的第二样本深度;

其中所述过滤包括取决于围绕一位置有多少相邻样本值在与所述位置处的当前样本值相似度的阈值内,改变所述位置处的所述自适应低通过滤器的归一化因子。

2.如权利要求1所述的方法,其特征在于,基于作为辅助信息信令的一个或多个过滤器强度参数来调整所述自适应低通过滤器。

3.如权利要求1所述的方法,其特征在于,所述重构的基层视频包括图片,并且其中所述自适应低通过滤器适用于移除伪像或抖动。

4.如权利要求1所述的方法,其特征在于,还包括在所述上采样之后逆色调映射所述重构的基层视频的所述多个样本值。

5.如权利要求1所述的方法,其特征在于,所述重构的基层视频具有一个亮度通道和多个色度通道,所述多个色度通道中的每一个都具有第一色度采样速率,所述方法还包括:至少部分地基于作为辅助信息信令的一个或多个色度伸缩参数,将所述多个色度通道中的每一个都伸缩到不同于所述第一色度采样速率的第二色度采样速率。

6.如权利要求2所述的方法,其特征在于,所述一个或多个过滤器强度参数包括所述自适应低通过滤器的内核大小和/或用于将当前样本值与相邻样本值进行比较的相似度的阈值。

7.如权利要求1所述的方法,其特征在于,所述重构的基层视频包括具有第一空间分辨率的图片,并且其中所述方法还包括将所述图片上采样到不同于所述第一空间分辨率的第二空间分辨率。

8.如权利要求1所述的方法,其特征在于,所述方法还包括,在编码期间:伸缩输入视频以产生所述基层视频;

利用基层视频编码器来编码所述基层视频以产生基层比特流的至少一部分并且重构所述基层视频;

在所述过滤和所述上采样之后,根据所述输入视频和所述重构的基层视频来确定层间残留视频;

利用增强层视频编码器来编码所述层间残留视频,以产生增强层比特流的至少一部分;以及输出所述基层比特流的所述至少一部分和所述增强层比特流的所述至少一部分。

9.如权利要求1所述的方法,其特征在于,所述方法还包括,在解码期间:接收基层比特流的至少一部分和增强层比特流的至少一部分;

使用所述基层比特流的所述至少一部分,利用基层视频解码器来解码所述基层视频,以产生所述重构的基层视频;

使用所述增强层比特流的所述至少一部分,利用增强层视频解码器来解码层间残留视频;以及在所述过滤和所述上采样之后,组合所述层间残留视频和所述重构的基层视频。

说明书 :

可伸缩视频编码和解码中的转换操作

[0001] 背景
[0002] 工程师使用压缩(也称为编码或译码)来降低数字视频的比特率。压缩通过将视频转换成较低比特率的形式来降低存储和传送视频的成本。解压(也被称为解码)从压缩的形式中重构一种版本的原始视频。“编解码器”是编码器/解码器系统。
[0003] 当视频编码器将视频转换为较低的比特率形式时,视频编码器会降低压缩的视频的质量以降低比特率。通过有选择地去除视频中的细节,编码器使视频压缩起来更简单,更容易,但是,经压缩的视频不太忠实于原始视频。除了此基本质量/比特率折衷以外,视频的比特率还取决于视频的内容(例如,复杂性)和视频的格式。
[0004] 视频信息是根据对于不同的设备和应用的不同的格式来组织的。视频格式的属性可包括色彩空间、色度采样速率、样本深度、空间分辨率和时间分辨率。通常,质量和比特率直接对于空间分辨率(例如,图片图片中的细节)和时间分辨率(例如,每秒图片数)而不同,更高的空间分辨率或更高的时间分辨率会导致更高的质量,但也导致更高的比特率。
[0005] 在视频编码和解码应用中,常见的色彩空间包括YUV和YCbCr。Y表示视频的亮度分量,而U和V,或Cb和Cr表示视频的色彩(色度)分量。除了YUV和YCbCr以外,许多其他色彩空间在一个亮度通道和多个色度通道内组织视频。
[0006] 色度采样速率是指视频的色度通道相对于亮度通道的采样。例如,在YUV色彩空间中,一个色度采样速率是4:4:4,表示对于每一Y样本,存在对应的U和V样本。然而,人眼对亮度的变化比颜色的变体更敏感,已经开发了编码器以利用这一事实。另一色度采样速率是4:2:2,表示单一U样本和单一V样本与两个水平Y样本相对应。较低的分辨率下的色度采样速率,如4:2:2或4:2:0,导致较少的样本,通常比诸如4:4:4之类的更高的分辨率色度采样速率需要更少的位来编码。由于4:2:0色度采样的普及性,某些视频编码器接受4:2:0格式的视频,但不接受带有更高的色度分辨率的源格式。
[0007] 视频图片的每一个图片元素(“像素”)都包括一个或多个样本,而每一个样本用一个或多个位来以数字表示。工作室和内容制作者常常使用带有每个样本10位或每个样本12位的视频来更精确地表示样本值,带有亮度或颜色的更多的渐变。通过使用更高的样本深度,可以取得样本值的更大的精确度,或可以捕捉更宽的色域。例如,12位样本值比10位样本值或8位样本值具有更多可能的值。作为此更高的质量的折衷,更高的样本深度趋向于增大编码和解码应用的位率。根据约定,许多编码器接受带有8位样本的视频。
[0008] 可伸缩视频编码和解码便于将视频传送到带有不同的功能的设备。典型的可伸缩视频编码器将视频拆分为一个基层和一个或多个增强层。基层单独提供用于以较低的分辨率重构的视频,并且可以添加增强层,以提供将提高视频质量的额外信息。某些可伸缩编码器和解码器依赖于视频的时域可伸缩性。其他常见的可伸缩编码/解码方案涉及对于空间分辨率或者视频的整体编码质量的可伸缩性。
[0009] 支持时间可伸缩性、空间可伸缩性和/或整体编码质量可伸缩性的可伸缩视频编解码器为基层和增强层提供了许多选项。尽管在许多情况下这些类型的可伸缩性提供可以接受的性能,但是,它们没有下面所描述的技术和工具的好处和优点。
[0010] 概述
[0011] 概括地,详细描述呈现了用于可伸缩视频编码工具或可伸缩视频解码工具中的模块之间的转换操作的技术和工具。例如,当基层视频具有低样本深度和/或低色彩保真度时,转换操作帮助提高用较高的样本深度和/或较高的色彩保真度来编码层间残留视频的效率。
[0012] 根据此处所描述的技术和工具的第一方面,诸如可伸缩视频编码工具或可伸缩视频解码工具之类的工具在重构基层视频之后接收基层视频。重构的基层视频具有带有第一样本深度(例如,每个样本8位)的样本值。该工具使用自适应低通过滤器来对重构的基层视频进行过滤,并将样本值上采样到第二样本深度(例如,每个样本10位)。该工具还可以对过滤和上采样的结果执行逆色调映射。可以根据由编码工具信令到解码工具的过滤器强度参数,来调整自适应低通过滤器,该自适应低通过滤器可以适用于移除重构的基层视频中的编码伪像或抖动值。
[0013] 根据此处所描述的技术和工具的第二方面,诸如可伸缩视频编码工具或可伸缩视频解码工具之类的工具在重构基层视频之后接收基层视频。重构的基层视频具有一个亮度通道和具有第一色度采样速率(例如,4:2:0)的多个色度通道。该工具将每一个色度通道伸缩到第二色度采样速率(例如,4:2:2)。伸缩使用由编码工具信令到解码工具的一个或多个色度伸缩参数所表示的一种色度上采样。例如,色度伸缩参数表示对于色度上采样的线性内插和立方内插之间的选择。
[0014] 根据此处所描述的技术和工具的第三方面,诸如可伸缩视频编码工具之类的工具接收具有选自第一样本值集的样本值的层间残留视频。编码工具将样本值转换为第二样本值集,根据一个或多个集合重新映射参数来在第一和第二样本值集之间映射样本值。编码工具将集合重新映射参数信令到可伸缩视频解码工具。解码工具接收层间残留视频(具有选自第二样本值集的样本值),并根据一个或多个集合重新映射参数来执行逆重新映射,以便在第二和第一样本值集之间映射样本值。
[0015] 参考附图阅读以下详细描述,将更清楚前述和其它目的、特征和优点。提供本概述是为了以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
[0016] 附图简述
[0017] 图1是其中可以实现所描述的若干技术和工具的合适的计算环境的框图。
[0018] 图2是其中可以实现所描述的若干技术的可伸缩视频编码工具的框图。
[0019] 图3是其中可以实现所描述的若干技术的可伸缩视频解码工具的框图。
[0020] 图4是用于在可伸缩视频编码或解码期间将基层视频的样本值向上采样到更高的样本深度并自适应地过滤视频的一般化技术的流程图。
[0021] 图5是示出在可伸缩视频编码或解码期间基层视频的样本值的示例自适应低通过滤选项的图示。
[0022] 图6是用于在可伸缩视频编码或解码期间将基层视频的色度通道伸缩到更高的色度采样速率的一般化技术的流程图。
[0023] 图7是示出在可伸缩视频编码或解码期间基层视频的色度通道的示例色度采样速率伸缩选项的图示。
[0024] 图8是用于在可伸缩视频编码或解码期间重新映射层间残留视频的一般化技术的流程图。
[0025] 图9是示出在可伸缩视频编码期间层间残留视频的样本值的示例重新映射的图示。
[0026] 图10a和10b是用于具有基层视频的样本深度上采样和自适应过滤、基层视频的色度通道的伸缩以及层间残留视频的样本值的重新映射的可伸缩视频编码的技术的流程图。
[0027] 图11a和11b是与图10a和10b的可伸缩视频编码相对应的用于可伸缩视频解码的技术的流程图。
[0028] 详细描述
[0029] 本申请涉及用于可伸缩视频编码工具或可伸缩视频解码工具中的模块之间的转换操作的技术和工具。具体而言,当可伸缩视频编码和解码使用具有低样本深度和/或低色彩保真度的基层视频时,转换操作帮助提高对于具有较高的样本深度和/或较高的色彩保真度的视频编码层间残留视频的效率。
[0030] 例如,许多现有的视频编解码器适用于具有8位样本的4:2:0YCbCr格式的视频。然而,高质量娱乐应用程序的视频内容可以具有更高的样本深度或色彩保真度,并可以使用更宽的色域。为编码这样的内容,在基层视频编码器编码内容之前,预处理器将图像保真度减低到8位4:2:0YCbCr视频。某些显示设备适用于具有更高的位深度(例如,每个样本,
10个位)或更宽的色域的样本。为向这样的显示系统提供高保真度视频,某些可伸缩视频编解码器对于视频的基层版本使用8位4:2:0YCbCr编码器,并使用层间残留视频的一个或多个增强层,以表示基层版本和原始视频之间的区别。此处所描述的技术和工具帮助可伸缩视频编码和解码工具以使层间残留视频的压缩更有效的方式将视频从较低分辨率格式(例如,有限色域中的带有8位样本的4:2:0YCbCr视频)转换为较高分辨率格式(例如,较宽的色域中的带有10位样本的4:2:2YCbCr视频)。
[0031] 转换操作的一个方面涉及逆伸缩重构的基层视频以颠倒在编码之前执行的样本深度伸缩。逆伸缩将自适应低通过滤与样本深度上采样组合以达到较高的样本深度。在许多情况下,过滤和上采样过程减少伪像(例如,块伪像,或更一般而言,量化噪声),而同时也提高样本深度。可以以相同样本深度或较高的样本深度进行随后的逆色调映射(例如,从一个色域到另一个色域)。此方法通过使重构的基层视频更接近于输入视频来减少层间残留视频中的能量,并由此帮助使对层间残留视频的压缩更有效。
[0032] 转换操作的另一方面涉及逆伸缩重构的基层视频以颠倒在编码之前执行的色度采样速率伸缩。逆伸缩使用自适应上采样过程来还原更高的色度采样速率。例如,当将样本值上采样到色度通道中的更高的色度采样速率时,编码工具或解码工具在线性内插和立方内插之间切换。通过适应色度上采样,编码工具可以降低层间残留视频中的能量,并使对层间残留视频的压缩更有效率。
[0033] 转换操作的第三方面涉及层间残留视频的重新映射和逆重新映射。在某些情况下,输入视频和重构的基层视频之间的区别超出用于增强层视频的编码器和解码器的动态范围。在其他情况下,这些区别具有如此小的动态范围,以至于利用增强层编码器对它们进行编码,甚至在允许的最高质量时,不会保持这些区别。为解决这样的问题,可伸缩视频编码工具根据重新映射参数来重新映射层间残留视频,并对重新映射的层间残留视频进行编码。对应的可伸缩视频解码工具解码重新映射的层间残留视频并逆重新映射层间残留视频。通过适应重新映射参数,编码工具可以调整层间残留视频的动态范围,以便于由增强层编码器进行有效率的编码。
[0034] 对此处所描述的实现的各种替换是可能的。参考流程图所描述的技术可以通过改变流程图中所示的级的排序,通过拆分、重复或省略某些级等来改变。转换操作的不同方面能够组合或单独使用。不同的实施例实现所描述的技术和工具的一个或多个。
[0035] 本文所描述的技术和工具中的某一些解决了背景中所指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。相反,鉴于编码时间、编码资源、解码时间、解码资源、可用比特率和/或质量的约束和折衷,所给出的技术/工具改进了特定实现或情形的性能。
[0036] I.计算环境
[0037] 图1示出了其中可实现若干所描述的若干技术和工具的合适的计算环境(100)的一般化示例。计算环境(100)并非旨在对使用范围或功能提出任何限制,因为这些技术和工具可以在完全不同的通用或专用计算环境中实现。
[0038] 参考图1,计算环境(100)包括至少一个处理单元(110)和存储器(120)。在图1中,这一最基本的配置(130)被包括在虚线内。处理单元(110)执行计算机可执行指令,并且可以是真实或虚拟处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。存储器(120)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合。存储器(120)存储实现用于可伸缩视频编码和/或解码的所述转换操作中的一个或多个的软件(180)。
[0039] 计算环境可具有其他特征。例如,计算环境(100)包括存储(140)、一个或多个输入设备(150)、一个或多个输出设备(160)以及一个或多个通信连接(170)。诸如总线、控制器或网络等互连机制(未示出)将计算环境(100)的各组件互连。通常,操作系统软件(未示出)为在计算环境(100)中执行的其它软件提供操作环境,并协调计算环境(100)的各组件的活动。
[0040] 存储(140)可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、CD-ROM、DVD或可用于储存信息并可在计算环境(100)内访问的任何其他介质。存储(140)存储用于实现转换操作的软件(180)的指令。
[0041] 输入设备(150)可以是诸如键盘、鼠标、笔或跟踪球等触摸输入设备,语音输入设备,扫描设备或向计算环境(100)提供输入的另一设备。对于音频或视频编码,输入设备(150)可以是声卡、显卡、TV调谐卡、或接受模拟或数字形式的音频或视频输入的类似设备、或将音频或视频样本读入计算环境(100)的CD-ROM或CD-RW。输出设备(160)可以是显示器、打印机、CD刻录机或提供来自计算环境(100)的输出的另一设备。
[0042] 通信连接(170)允许通过通信介质与另一计算实体进行通信。通信介质传达诸如已调制数据信号形式的计算机可执行指令、音频或视频输入或输出、或其他数据等信息。已调制数据信号是其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非限制,通信介质包括以电、光、RF、红外、声学或其他载波实现的有线或无线技术。
[0043] 各种技术和工具可以在计算机可读介质的一般上下文中描述。计算机可读介质可以是可在计算环境内访问的任何可用介质。作为示例而非限制,对于计算环境(100),计算机可读介质可包括存储器(120)、存储(140)、通信介质和以上任一种的组合。
[0044] 该技术和工具可在诸如程序模块中所包括的在目标真实或虚拟处理器上的计算环境中执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。程序模块的功能可以如各实施例中所需的组合或在程序模块之间分离。用于程序模块的计算机可执行指令可以在本地或分布式计算环境中执行。
[0045] 为了呈现起见,本详细描述使用了如“选择”和“重构”等术语来描述计算环境中的计算机操作。这些术语是由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。
[0046] II.一般化编码工具
[0047] 图2是可结合其实现所描述的某些技术的一般化可伸缩视频编码工具(200)的框图。编码工具(200)接收包括输入图片(205)的视频图片序列,并产生基层比特流(295)以及一个或多个增强层比特流(298)。对于基层,输出比特流的格式可以是Windows Media Video格式、SMPTE 421-M格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式。对于增强层,输出比特流的格式可以与基层比特流相同或另一格式。
[0048] 工具(200)处理视频图像。术语“图片”一般指的是源、已编码的或已重构的图像数据。对于逐行视频,图片是逐行视频帧。对于隔行视频,取决于上下文,图片可以指的是隔行视频帧、帧的上半帧、或帧的下半帧。
[0049] 输入图片(205)具有样本深度、色度采样速率和/或比基层编码器(220)接受的分辨率更高的分辨率的空间分辨率。例如,基层编码器(220)被配置成利用8位样本和4:2:0色度采样速率来编码视频图片,而输入图片(205)具有10位样本和4:2:2色度采样速率,或具有带有比8位4:2:0更高的分辨率的另一种格式。可另选地,基层编码器(220)接受10位样本、12位样本,或带有某种其他样本深度的样本,或者,基层编码器(220)接受
4:2:2视频、4:4:4视频,或具有某种其他色度采样速率的视频。
[0050] 编码工具(200)包括接受输入视频图片(205)并向基层编码器(220)输出基层视频的第一伸缩器(210)。第一伸缩器(210)可以降低采样或以其他方式伸缩输入视频图片(205),例如,以降低样本深度、空间分辨率和/或色度采样分辨率。对于样本深度下采样,伸缩器(210)可以裁剪样本的最低有效x位,使用色调映射来将一个样本深度(例如,每一样本10位)的样本值映射到另一样本深度(例如,每一样本8位),或使用另一种机制。对于色度二次采样,伸缩器(210)可以使用采样下降、低通过滤或另一种机制。伸缩器(210)可以有选择地添加抖动信号,以改善独立的基层视频的感知质量。或者,对于输入视频图片(205)的这些属性中的一个或多个,第一伸缩器(210)根本不改变输入视频图片(205)。
[0051] 一般而言,色调映射是将一个颜色集映射到另一颜色集的技术。色调映射可以使用简单线性函数、分段式线性函数、表查询操作,或其他运算符来进行映射。例如,色调映射将一组230可能的色值(每个像素三个10位样本)映射到224可能的值的任意子集(每个像素,三个8位样本)。该任意子集可以表示同一个色域中的颜色,但是省去可能的颜色,或者它可以带有细微渐变的较小的色域中的颜色,或者,它可以任意地重新分配颜色。
[0052] 例如,在某些编码情况下,伸缩器(210)接受带有高样本深度和高色度采样速率的工作室质量视频,过滤和降低采样视频,添加抖动信号,并输出带有较低的样本深度和较低的色度采样速率的基层视频。在其他编码情况下,伸缩器(210)接受已经就样本深度而言被降低采样并与抖动信号相结合的视频,然后,对该视频的色度采样速率降低采样,以产生基层视频。仍在其他编码情况下,伸缩器(210)接受已经向其中添加了的抖动信号的带有高样本深度和高色度采样速率的视频,然后,对该视频降低采样,以产生带有较低的样本深度和较低的色度采样速率的基层视频。
[0053] 基层编码器(220)对基层视频进行编码,并输出基层比特流(295)。另外,基层编码器(220)使输入到逆伸缩器(230)的重构的基层视频可用。作为编码的一部分,基层编码器(220)通常产生输入图片(205)的重构的版本。例如,基层编码器(220)解码并缓冲重构的基层图片,用于以后的运动补偿。如此,可以从基层编码器(220)中获得重构的版本,供在可伸缩编码中进行进一步的处理。(可另选地,编码工具(200)中的基层解码器(未示出)对基层比特流(295)进行解码,以产生重构的基层视频。)
[0054] 如果由于伸缩而导致重构的基层视频具有与输入视频图片(205)不同的样本深度、空间分辨率、色度采样速率等等,那么,逆伸缩器(230)可以上采样或以其他方式逆伸缩重构的基层视频,以便它具有更高的样本深度、空间分辨率、色度采样速率等等(例如,与输入视频图片(205)相同的样本深度、空间分辨率、色度采样速率等等)。逆伸缩器(230)还可以自适应地过滤重构的基层视频,以移除某些类型的伪像(例如,块伪像、抖动信号)。例如,当它使用自适应低通过滤器来过滤重构的基层视频时,逆伸缩器(230)将重构的基层视频的样本值上采样到更高的样本深度,然后,逆伸缩器(230)将重构的基层视频的色度通道上采样到输入视频图片(205)的色度采样速率。另外,为在伸缩过程中补偿色调映射,逆伸缩器(230)可以以相同样本深度或更高的样本深度执行逆色调映射(例如,从一个色域到另一色域)。下面将介绍示例实现中的对于重构的基层视频的逆伸缩操作的细节。
可另选地,逆伸缩器(230)使用另一种机制来逆伸缩重构的基层视频,例如,对于色度上采样的样本值重复。
[0055] 伸缩和编码输入视频的步骤通常会在输入视频和重构的基层视频之间造成某些数据损失。一般而言,层间残留视频表示重构的基层视频和输入视频之间的一些区别(但不一定是所有区别)。在图2的工具(200)中,微分器从输入视频的对应的样本减去重构的基层视频的样本,以产生此层间残留视频。在微分器之前,可以另外过滤输入视频。
[0056] 第二伸缩器(250)伸缩层间残留视频,以便输入到增强层视频编码器(260)。例如,第二伸缩器(250)重新映射层间残留视频的样本值,以便样本值具有便于利用增强层视频编码器(260)进行有效压缩的分布。下面将介绍示例实现中的对于层间残留视频的伸缩操作的细节。可另选地,第二伸缩器(250)使用另一种机制来伸缩层间残留视频。
[0057] 增强层编码器(260)压缩层间残留视频,并产生增强层比特流(298)。层间残留视频中的在某一时间的“图片”表示输入视频图片和重构的基层视频图片之间的区别,但是,仍通过示例增强层视频编码器(260)来编码为图片。增强层比特流(298)还可以包括通过逆伸缩器(230)进行自适应低通过滤和上采样的参数和通过第二伸缩器(250)进行重新映射的参数。
[0058] 虽然图2示出了单一增强层编码器(260),但是,层间残留视频本身可以被分离成多层残留视频,用于利用单独的残留编码器来进行编码。例如,分解器使用小波分解或另一种合适的分解机制来将层间残留视频拆分为色度高通残留层和样本深度残留层,然后,由色度高通编码器和样本深度残留编码器分别对它们进行编码,以产生两个单独的增强层比特流。
[0059] 控制器(未示出)在编码过程中从工具(200)的各种模块接收输入,并评估中间结果。控制器同诸如逆伸缩器(230)和第二伸缩器(250)之类的模块以及基层编码器(220)和增强层编码器(260)内的模块一道工作,以设置和更换编码过程中的编码参数。要评估的编码参数决策的树,以及对应的编码的时间选择,随着实现不同而不同。在某些实施例中,控制器还从编码会话向导界面、从另一编码器应用程序界面,或另一源接收输入,以使用特定规则指定要编码的视频。
[0060] 工具(200)内的模块之间所示出的关系表示一般的信息流;为简单起见,未示出其他关系。具体而言,图2一般未示出逆伸缩器(230)和第二伸缩器(250)的辅助信息。这样的辅助信息,一旦完成,在输出比特流或侧信道中发送。可伸缩视频编码工具的特定实施例通常使用工具(200)的变体或补充版本。取决于所希望的压缩的实现和类型,可以添加、省略模块,拆分成多个模块,与其他模块相结合,和/或替换为类似的模块。在替换实施例中,带有不同的模块和/或模块的其他配置的可伸缩视频编码工具执行所描述的技术中的一个或多个。
[0061] III.一般化解码工具
[0062] 图3是可结合其实现所描述的某些技术的一般化可伸缩视频解码工具(300)的框图。解码工具(300)接收压缩视频信息的一个或多个比特流(包括不同的层的比特流),并产生重构的视频(395)。对于基层视频,基层比特流(305)的格式可以是Windows Media Video格式、SMPTE 421-M格式、MPEG-x格式((例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264),或其他格式。对于层间残留视频,增强层比特流(308)的格式可以与基层比特流(305)相同,或者,它可以是另一种格式。
[0063] 解码工具(300)包括接收基层比特流(305)并将重构的基层视频输出到第一逆伸缩器(330)的基层解码器(320)。如果重构的基层视频具有与输出视频图片不同的样本深度、空间分辨率、色度采样速率等等(由于编码过程中的伸缩),那么,第一逆伸缩器(330)上采样或以其他方式逆伸缩重构的基层视频,以便它具有更高的样本深度、空间分辨率、色度采样速率等等(例如,与输出视频(395)相同的样本深度、空间分辨率、色度采样速率等等)。第一逆伸缩器(330)还可以自适应地过滤重构的基层视频,以移除某些类型的伪像(例如,块伪像、抖动信号)。例如,当它使用自适应低通过滤器来过滤重构的基层视频时,第一逆伸缩器(330)将重构的基层视频的样本值上采样到更高的样本深度,然后,将重构的基层视频的色度通道上采样到更高的色度采样速率。逆伸缩器(330)还可以以相同样本深度或更高的样本深度执行逆色调映射。下面将介绍示例实现中的对于重构的基层视频的逆伸缩操作的细节。增强层比特流(308)可包括控制第一逆伸缩器(330)的自适应低通过滤和上采样的操作的参数。可另选地,第一逆伸缩器(330)使用另一种机制来逆伸缩重构的基层视频。
[0064] 解码工具(300)还包括用于接收增强层比特流(308)并将经过解码的层间残留视频输出到第二逆伸缩器(350)的增强层解码器(340)。第二逆伸缩器(350)逆伸缩层间残留视频。例如,第二逆伸缩器(350)重新映射层间残留视频的样本值,以颠倒在编码过程中执行的映射。下面将介绍示例实现中的对于层间残留视频的逆伸缩操作的细节。增强层比特流(308)可包括控制第二逆伸缩器(350)的重新映射的操作的参数。可另选地,第二逆伸缩器(350)使用另一种机制来逆伸缩层间残留视频。
[0065] 虽然图3示出了单一增强层解码器(340),但是,层间残留视频本身可以被分离成多层(作为多个增强层比特流来信令),用于利用单独的增强层解码器进行解码。
[0066] 在某些情况下,增强层比特流中的一个或多个不存在。例如,如果比特流在传输过程中或在存储介质上损坏,可能会发生这种情况。或者,对于某些类型的播放设备或某些解码情况,由传输器或由解码工具(300)有选择地丢弃增强层比特流,以便降低位率或降低解码复杂性。
[0067] 解码工具(300)将由第一逆伸缩器(330)输出的重构的基层视频与从第二逆伸缩器(350)输出的重构的层间残留视频(如果存在的话)组合起来,以产生重构的视频(395)供输出。如果在编码过程中通过小波分解或另一种机制分离层间残留视频的各层,则解码工具(300)可以在将所产生的层间残留视频与重构的基层视频组合之前通过使用小波合成或另一种机制将重构的残留层组合起来。
[0068] 解码工具(300)内的模块之间所示出的关系表示解码工具(300)中的一般的信息流;为简单起见,未示出其他关系。视频解码工具的特定实施例通常使用一般化解码工具的变体或补充版本。取决于所希望的解压缩的实现和类型,可以添加、省略解码工具的模块,拆分成多个模块,与其他模块相结合,和/或替换为类似的模块。在替换实施例中,带有不同的模块和/或模块的其他配置的解码工具执行所描述的技术中的一个或多个。
[0069] IV.重构的基层视频的自适应过滤和上采样
[0070] 在某些实施例中,在输入视频的样本深度在基层编码之前被伸缩之后,可伸缩视频编码工具和解码工具使用自适应低通过滤和上采样的组合来对重构的基层视频执行逆伸缩。过滤和上采样过程可以减少图像伪像,而同时还提高样本深度。可以以相同样本深度或较高的样本深度可任选地进行随后的逆色调映射(例如,从一个色域到另一个色域)。此方法帮助处理重构的基层视频中的编码错误和伪像(例如,块伪像,带伪像或更一般而言,量化噪声)。通过适应过滤以使重构的基层视频更密切地近似于输入视频,可伸缩视频编码工具可以降低层间残留视频的能量,并由此提高压缩效率。
[0071] 自适应低通过滤和上采样与逆伸缩的其他方法相比具有优点。例如,在重构的基层视频中还原样本深度的一种方法是通过直接像素到像素映射来将样本值映射到更高的样本深度。尽管此方法简单,由基层视频中的有限的样本深度所引起的编码错误或带伪像可以容易地传播到层间残留视频。自适应过滤和上采样可以帮助移除这样的伪像。
[0072] 自适应过滤和上采样还可以帮助以另一种方式改善品质。在某些编码情况下,在对基层视频预处理的过程中,编码工具添加抖动信号,然后,利用添加的抖动信号对基层视频进行编码。虽然当基层视频独自被播放时抖动信号改善感知质量,但是,抖动信号可以在可伸缩视频编码中向层间残留视频添加能量。因此,编码工具和解码工具使用适用于移除添加的抖动信号的低通过滤器。自适应低通过滤器可以同时移除诸如块伪像和带伪像之类的压缩伪像,以降低层间残留视频的能量。
[0073] A.用于自适应过滤和上采样的技术
[0074] 图4示出了用于对重构的基层视频进行自适应低通过滤和上采样的一般化技术(400)。诸如图2的可伸缩视频编码工具(200)、图3的可伸缩视频解码工具(300)之类的工具,或其他工具执行技术(400)。
[0075] 开始时,该工具接收(410)带有具有第一样本深度的样本值的重构的基层视频。例如,重构的基层视频具有8位样本。可另选地,重构的基层视频的样本具有某种其他样本深度。
[0076] 在一些实现中,该工具还获得低通过滤器的一个或多个过滤器强度参数。例如,在编码过程中,编码工具选择过滤器强度参数(例如,在评估过滤器强度参数的不同的值之后,或在估计过滤器强度参数的哪些值将提供良好性能之后)。稍后,编码工具作为增强层比特流中的辅助信息或在频带外发送的辅助信息来信令过滤器强度参数。在解码过程中,解码工具从增强层比特流(或侧信道)中解析过滤器强度参数,并调整低通过滤器。下面呈现了示例过滤器强度参数。可另选地,该工具还使用其他过滤器强度参数。过滤器强度参数可以一个图片一个图片地并且一个信道一个信道地或根据某种其他方式变化。
[0077] 该工具使用自适应低通过滤器对基层视频进行过滤(420),并将基层视频的样本值上采样(430)为高于第一样本深度的第二样本深度。例如,该工具使用下面的其中一个示例实现的过滤器来执行过滤和上采样,以移除伪像(例如,块伪像、抖动信号)或对它们进行平滑化处理,而同时还将样本深度还原到较高的级别。可另选地,该工具使用另一种过滤器来执行过滤和上采样。
[0078] 该工具使用滑窗通过重构的基层视频图片,一个图片一个图片地执行技术(400),或者按某种其他方式执行技术(400)。虽然图4示出了上采样(430)之前的过滤(420),但是,在实践中,可以在滑动窗口中一个样本一个样本地组合地执行过滤(420)和上采样(430),或以某种其他顺序执行它们。在过滤和上采样之前或之后,该工具可以对重构的基层视频的样本值执行逆色调映射(在图4中未示出),补偿基层编码之前作为伸缩的一部分执行的色调映射。
[0079] 图10a和10b示出了包括如图4所示的过滤和上采样的可伸缩视频编码的技术(1000)。图11a和11b示出了包括如图4所示的过滤和上采样的可伸缩视频解码的技术(1100)。可另选地,在可伸缩视频编码和/或解码过程中,以某种其他方式使用技术(400)。
[0080] B.自适应过滤和上采样的示例实现
[0081] 示例实现使用组合低通过滤和上采样的自适应过滤器。此自适应过滤可以减少伪像,并自然地将样本深度带到较高的级别。然后,可以在相同样本深度内进行随后的色调映射,或进行到更高的样本深度。
[0082] 虽然自适应过滤具有灵活的设计,但是,一般而言,它具有两个集成的组件:低通过滤和样本深度上采样。例如,对于重构的基层视频的图片中的位置(x,y)处的当前样本值s(x,y),可以按如下方式表示组合的过滤和上采样。
[0083]
[0084] 在此等式中,w(i,j)表示带有归一化因子N的2D低通过滤器,R表示过滤范围。BD表示目标样本深度,大于或等于在等式(1)中被示为8的基层视频的样本深度。如此,s′(x,y)表示带有样本深度BD的已过滤的样本值。
[0085] 2D过滤器可被实现为2D窗口或作为沿着一个或多个轴的1D过滤器的组合。图5示出了沿着四个方向的轴:水平、垂直、左上到右下,以及左下到右上,每一个方向都包括当前采样位置(501)。不落在这些轴中的一个轴上的位置处的样本值不被给予权重(w(i,j)=0)。落在这些轴中的一个轴上的位置处的样本值被给予完全权重(w(i,j)=1),并朝着归一化因子统计。可另选地,过滤器使用另一形状,例如,适用于平滑化处理不同类型的伪像的形状。
[0086] 大小值R表示使用过滤器进行过滤的可能的程度。在一种实现中,R=0,1或2,水平和垂直地相对于当前位置(x,y)的+/-2的样本位置可能被考虑。对于示例样本值(500),图5示出了当R=1时的窗口(510)和当R=2时的窗口(520)。
[0087] 在适用于本地复杂性的实现中,在该窗口内,过滤器使用阈值来排除某些位置。不失一般性,下面的规则示出了阈值如何自适应地改变哪些采样点有助于1D水平窗口中的过滤。位置偏移m表示1D窗口内的远离当前位置(x,y)的类似的值的程度。例如,偏移量m被设置为满足下面约束的i的最小绝对值:
[0088] |s(x+i,y)-s(x,y)|>T (2)
[0089] 满足-R<i<R。阈值T是过滤器阈值控制参数。在图5中,假设1D窗口中的样本值16,19,20,18,17的序列,其中,当前样本值s(x,y)=20。如果T=2,偏移值m=1,因为在偏移量+2处,|17-20|>2。如果没有值i满足等式(2)中的约束,那么,m=R。
为简单起见,自适应过滤器是对称的;在每一个方向使用了相同的偏移量m。可另选地,在远离当前位置的不同的方向使用不同的偏移值。
[0090] 在过滤时,为相对于当前位置(x,y)的偏移量m内的位置处的样本值提供了权重,没有给1D窗口内的其他样本值提供权重。
[0091]
[0092] 其中,对于1D水平窗口内的过滤,j=0,并且,-R<i<R。
[0093] 类似地,对于沿着1D垂直窗口的自适应阈值规则,当找到位置偏移量m时,j在从-R<j<R内变化。对于沿着对角线1D窗口的自适应阈值规则,i和j两者都可以变化,其中,在-R和R的范围内,i=j(对于如图5所示的一条对角线),或者,i=-j(对于如图5所示的另一条对角线),以查找位置偏移量m。对于2D窗口,在-R和R范围内的到不同的值i和j的位置处的欧几里德距离可以被视为找到了位置偏移量m。
[0094] 不管是否应用自适应阈值规则,当设置了w(i,j)的值时,归一化因子N被确定。在一些实现中,为简单起见,w(i,j)的抽头系数(tap coefficient)是0或1,当对于i≠0或j≠0,有任何非零w(i,j)值时,则w(0,0)被设置为0,以使得当前样本对于已过滤的结果没有贡献。归一化因子N只是位置的统计,其中,w(i,j)=1。更一般而言,w(i,j)中的不同的位置可以具有不同的抽头值,例如,以在当前位置处提供较大权重,或者,实现双线性或双三次过滤器,实现去环(de-ringing)过滤器或其他过滤器而并非低通过滤器,或平滑化处理不同的类型伪像,在这样的情况下,将对过滤有贡献的位置的抽头值总计起来,来确定归一化因子N。
[0095] 对于等式(1)中表示的组合的过滤和上采样的自适应实现,可以通过设置参数值T和R,有效地控制过滤的强度。图5示出了对于R和T的不同的值,对示例样本值(500)中的位置s(x,y)进行过滤的结果。一般而言,为降低层间残留视频的能量并由此有助于压缩,编码工具调整用于进行过滤的强度参数中的一个或多个。增大R会用于进行过滤的可能的窗口大小,这会潜在地导致更强的过滤。增大T会趋向于导致更多的位置对过滤有贡献,因为会有更多的样本值满足相似度约束,趋向于导致更强的过滤。例如,阈值强度参数T被设置为1,范围R是{0,1,2}中的一个。当R=0时,没有低通过滤。可另选地,强度参数T和范围R具有其他可能的值,或者,编码工具和解码工具通过改变另一参数来适应过滤。例如,编码器适应加权机制和归一化因子。
[0096] 编码工具在比特流中信令过滤器强度控制参数,以便对应的解码工具可以在对重构的基层视频的逆伸缩过程中应用相同的过滤器强度参数。例如,增强层比特流包括过滤器强度控制参数。
[0097] 取决于实现,编码工具和解码工具可以每个通道每个图片地或根据某种其他方式来改变过滤器强度参数。在一些实现中,编码工具和解码工具可以有选择地在某些区域中禁用过滤(例如,取决于本地图像复杂性)。在一些实现中,可伸缩视频编码工具和解码工具对于给定图片的亮度通道和色度通道使用相同过滤器强度参数。
[0098] 除低通过滤和样本深度上采样之外,编码工具和解码工具还可以执行空间上采样。如果基层视频的空间分辨率低于层间残留视频的空间分辨率,则编码工具或解码工具可以使用空间内插过滤器(例如,低通过滤器)来增大空间分辨率。
[0099] V.对重构的基层视频进行自适应色度上采样
[0100] 在某些实施例中,如果重构的基层视频的色度采样速率小于高保真度级别,则可伸缩视频编码工具和解码工具对重构的基层视频执行色度上采样。通过适应色度上采样波以使重构的基层视频更密切地近似于输入视频,编码工具可以降低层间残留视频的能量,并由此提高压缩效率。
[0101] 例如,可伸缩视频编码工具对于基层视频的图片的给定色度通道,在色度上采样中在线性内插和立方内插之间进行选择。编码工具选择使重构的基层视频更接近地匹配输入视频的内插类型。编码工具在比特流中信令该选择,并且对应的解码工具对于图片的给定色度通道的色度上采样,使用相同类型的内插。
[0102] A.用于自适应色度上采样的技术
[0103] 图6示出了用于对重构的基层视频进行自适应色度上采样的一般化技术(600)。诸如图2的可伸缩视频编码工具(200)、图3的可伸缩视频解码工具(300)之类的工具,或其他工具执行技术(600)。
[0104] 首先,工具接收(610)带有具有第一色度采样速率的色度通道的重构的基层视频。例如,重构的基层视频具有4:2:0或4:2:2的色度采样速率。可另选地,重构的基层视频具有另一个色度采样速率。
[0105] 然后,该工具获取(620)一个或多个色度伸缩参数。例如,在编码过程中,编码工具选择色度伸缩参数(例如,在评估色度伸缩参数的不同的值之后,或在估计色度伸缩参数的哪些值将提供良好性能之后)。稍后,编码工具作为增强层比特流中的辅助信息或在频带外发送的辅助信息来信令色度伸缩参数。在解码过程中,解码工具从增强层比特流(或侧信道)接收色度伸缩参数,并相应地调整色度上采样。下面将呈现示例色度伸缩参数。可另选地,该工具还使用其他色度伸缩参数。色度伸缩参数可以一个图片一个图片地并且一个信道一个信道地或根据某种其他方式变化。
[0106] 该工具将色度通道的样本值伸缩(630)到高于第一色度采样速率的第二色度采样速率。例如,该工具伸缩色度通道的样本值,以将重构的基层视频的色度采样速率从4:2:0转换为4:2:2,从4:2:2转换为4:4:4,或从4:2:0转换为4:4:4。可另选地,该工具将色度通道的样本值伸缩到另一个色度采样速率。
[0107] 色度采样参数表示在伸缩(630)操作中要使用的色度上采样的类型。例如,色度伸缩参数表示伸缩是否与第一预定义的过滤器使用线性内插,或与第二预定义的过滤器使用立方内插。可另选地,色度伸缩参数显式地表示要在色度上采样中使用的过滤器的过滤系数、过滤器的过滤器大小和/或过滤器的另一个属性,或色度伸缩参数表示其他类型的内插之间的切换。或者,色度伸缩参数以别的方式表示就色度伸缩的强度而言的色度上采样的类型和/或色度伸缩中所使用的机制。
[0108] 该工具使用滑窗通过重构的基层视频图片,一个图片一个图片地执行技术(600),或者按某种其他方式执行技术(600)。虽然图6将色度上采样示为与其他过滤和上采样操作分开,不同的过滤和上采样操作可以组合地执行。在色度上采样之前或之后,该工具可以对重构的基层视频的样本值执行逆色调映射(在图6中未示出),补偿基层编码之前作为伸缩的一部分执行的色调映射。
[0109] 图10a和10b示出了包括如图6所示的色度上采样的可伸缩视频编码的技术(1000)。图11a和11b示出了包括如图6所示的色度上采样的可伸缩视频解码的技术(1100)。可另选地,在可伸缩视频编码和/或解码过程中,以某种其他方式使用技术(600)。
[0110] B.自适应色度上采样的示例实现
[0111] 色度上采样的示例实现在线性内插和立方内插之间切换。一般而言,线性内插趋向于平滑化处理样本值中的高频模式,当高频能量被添加到基层视频中并且应该被移除时会有帮助。相比之下,立方内插趋向于保持或者甚至强调高频模式,当色度样本值在基层视频已经被平滑化处理时会有帮助。
[0112] 线性内插使用下面的过滤器来确定重构的基层视频的两个色度样本值st(x,y)和st+1(x,y)之间的两个新的色度样本值st+1/4(x,y)和st+3/4(x,y)。
[0113] st+1/4(x,y)=(3·st(x,y)+st+1(x,y))>>2 (4),
[0114] st+3/4(x,y)=(st(x,y)+3·st+1(x,y))>>2 (5),
[0115] 它们分别与带有系数(3,1)/4和(1,3)/4的过滤器相对应。可另选地,线性内插也使用带有其他系数的过滤器。
[0116] 立方内插使用下面的过滤器来确定重构的基层视频的两个色度样本值st(x,y)和st+1(x,y)之间的两个新的色度样本值st+1/4(x,y)和st+3/4(x,y)。
[0117] st+1/4(x,y)=(-3·st-1(x,y)+28·st(x,y)+9·st+1(x,y)-2·st+2(x,y))>>5(6),[0118] st+3/4(x,y)=(-2·st-1(x,y)+9·st(x,y)+28·st+1(x,y)-3·st+2(x,y))>>5(7),[0119] 它们分别与带有系数(-3,28,9,-2)/32和{-2,9,28,-3}/32的过滤器相对应。可另选地,立方内插也使用带有其他系数的过滤器。取决于实现,可以裁剪立方内插的结果,以便输出值落在预期的样本深度范围内。
[0120] 图7示出了对一组色度样本值使用等式(4)和(5)的过滤器的线性内插的结果。图7还示出了对色度样本值使用等式(6)和(7)的过滤器的立方内插的结果。当从4:2:0上采样到4:2:2时,编码工具和解码工具执行垂直内插。当从4:2:2上采样到4:4:4时,编码工具和解码工具执行水平内插。当从4:2:0上采样到4:4:4时,编码工具和解码工具可以执行可分离的垂直和水平内插或执行2D过滤。内插的类型(例如,线性或立方的)可以是水平地和垂直地相同或不同。
[0121] 编码工具和解码工具每个图片每个每个色度通道选定用于色度上采样的内插类型。可另选地,编码工具和解码工具按某种其他方式打开,例如,对于图片的两个色度通道使用相同类型的内插,但是,潜在地一个图片一个图片地切换内插的类型。对用于色度上采样的内插的类型选择可以独立于在编码过程中所使用的色度下采样的类型进行。在色度上采样之后,由于压缩,不同的过滤等等,色度样本值通常不同于原始色度样本值,但是,在重构的基层视频和输入视频中,色度样本值的位置应该相同。
[0122] 在确定要使用哪一种类型的色度上采样之后,编码工具信令表示增强层比特流或另一个比特流中的选择的色度采样参数。解码工具从比特流中解析色度采样参数,并使用它们来选定要执行哪一种类型的色度上采样。
[0123] 编码工具和解码工具可以与自适应低通过滤、样本深度上采样和/或逆色调映射相结合地执行色度上采样。或者,它们可以独立地执行色度上采样。例如,编码工具和解码工具可以独立地在低通过滤和样本深度上采样之后,但是在逆色调映射之前执行色度上采样。或者,编码工具和解码工具在低通过滤、样本深度上采样和逆色调映射之后独立地执行色度上采样,
[0124] VI.对于层间残留视频的自适应重新映射
[0125] 在某些实施例中,可伸缩视频编码工具和解码工具对层间残留视频的样本值执行样本值映射。利用重新映射,编码工具将层间残留视频值伸缩由编码工具选定的适当因子。编码工具将伸缩因子信令到对应的解码工具。通过使用重新映射,解码工具根据伸缩因子对层间残留视频值进行逆伸缩,然后,将经过逆伸缩的层间残留视频与重构的基层视频组合。伸缩和逆伸缩允许许多不同的动态范围的层间残留视频被利用给定增强层编解码器有效地编码。
[0126] 例如,典型的增强层视频编码器最有效地适用于具有动态范围256(对于范围0…255,围绕中点128的+/-128)的8位值。如果层间残留视频的动态范围比256大得多,相对于中点128偏斜,或比256小得多,则增强层编码器的压缩效率可能会受到损失。如此,编码工具将层间残留视频的样本值映射到用于编码的目标动态范围256(围绕中点128的+/-128);在解码之后,解码工具将层间残留视频的样本值映射回初始动态范围。
[0127] 重新映射层间残留视频的样本值适用于许多编码和解码情况。例如,由于色调映射,输入视频和重构的基层视频之间的区别可以超出增强层编码器的动态范围。例如,如果10位输入视频(带有宽的色域)被色调映射到用于基层编码的8位视频(带有更有限的色域),则10位输入视频和10位重构的基层视频之间的区别(在逆色调映射之后)常常超出可以带有8位样本有效地编码的动态范围。在其他情况下,由于基层视频的低质量/低位率编码,输入视频和重构的基层视频之间的区别导致层间残留视频的大的动态范围,增强层编码器可能不能有效地编码。
[0128] 在其他情况下,输入视频和重构的基层视频之间的区别比增强层编码器的动态范围小得多。因为增强层编码器不适用于利用这样小的动态范围对内容进行编码,即使利用允许的最高质量来对层间残留视频进行编码,质量也会受到损失。例如,适用于利用动态范围256对样本值进行编码的增强层编码器对只具有小于|5|的样本值或动态范围9的层间残留视频进行编码会有困难。
[0129] A.用于重新映射层间残留视频的技术
[0130] 图8示出了包括重新映射层间残留视频的样本值的一般化技术(800)。诸如图2的可伸缩视频编码工具(200)、图3的可伸缩视频解码工具(300)之类的工具,或其他工具执行技术(800)。
[0131] 开始时,该工具接收(810)具有第一样本值集中的样本值的层间残留视频。对于可伸缩视频编码中的重新映射操作,第一样本值集是层间残留视频的样本值的初始集合。例如,层间残留视频首先具有带有范围-277…301、或-4…3或-491…563的初始样本值集的10位样本值。对于可伸缩视频解码中的逆重新映射操作,第一样本值集是由编码工具在可伸缩视频编码过程中由重新映射产生的目标样本值集。
[0132] 然后,该工具获取(820)一个或多个集合重新映射参数。例如,在可伸缩视频编码过程中,编码工具选择集合重新映射参数(例如,在评估集合重新映射参数的不同的值之后,或在估计集合重新映射参数的哪些值将提供良好性能之后)。稍后,编码工具作为增强层比特流中的辅助信息或在频带外发送的辅助信息来信令集合重新映射参数。在可伸缩视频解码过程中,解码工具从增强层比特流(或侧信道)接收集合重新映射参数,并相应地调整逆重新映射。下面呈现了示例集合重新映射参数。可另选地,该工具还使用其他集合重新映射参数。集合重新映射参数可以一个图片一个图片地并且一个信道一个信道地或根据某种其他方式变化。
[0133] 该工具将样本值从第一样本值集映射(830)到第二样本值集。例如,对于可伸缩视频编码中的重新映射,编码工具将样本值从初始样本值集映射到增强层编码/解码中所使用的目标样本值集。或者,对于可伸缩视频解码中的逆重新映射,解码工具将样本值从增强层编码/解码中所使用的目标样本值集映射回初始样本值集。
[0134] 该工具对于层间残留视频图片,一个图片一个图片地执行技术(800),或者按某种其他方式执行技术(800)。虽然图8将样本值重新映射示为与其他操作分开的,但是,其他操作可以与样本值重新映射相结合地执行。
[0135] 图10a和10b示出了包括如图8所示的样本值重新映射的可伸缩视频编码的技术(1000)。图11a和11b示出了包括如图8所示的样本值重新映射的可伸缩视频解码的技术(1100)。可另选地,在可伸缩视频编码和/或解码过程中,以某种其他方式使用技术(800)。
[0136] B.对于层间残留视频的重新映射的示例实现
[0137] 对于层间残留视频的样本值重新映射的示例实现在增强层编码之前调整层间残留视频的动态范围,然后,在增强层解码之后颠倒调整。在许多编码情况下,调整层间残留视频的动态范围会提高增强层编码的效率。
[0138] 在示例实现中,编码工具判断是否对于层间残留视频的图片的样本值执行样本值重新映射。编码工具对于图片的相应的亮度和色度通道独立地进行此判断。对于图片,编码工具在增强层比特流中信令表示样本值重新映射是否用于至少一个通道的开/关标志。
[0139] 当样本值重新映射用于一个通道的样本值时,编码工具确定要哪些参数用于样本值重新映射。一般而言,编码工具如此选择参数,以便层间残留视频的动态范围匹配增强层编解码器的动态范围。例如,如果增强层编解码器的动态范围是256(围绕中点128的+/-128),层间残留视频的初始动态范围是380(围绕中点0的-190…189),则编码工具选择将380缩小到目标256并移位样本值的范围的重新映射参数,以便它具有目标范围的中点。
[0140] 图9示出了在对层间残留视频进行编码之前样本值重新映射的两个示例。在第一示例中,样本值的动态范围是8(范围-4…3),太小,难以有效地被编码。编码工具将样本值映射到较大的范围0…224。范围的中心还在重新映射中移位。在第二示例中,样本值的动态范围是1054(中点为36的范围-491…563)。编码工具将样本值映射到较小范围0…255。在重新映射中,编码将范围的中心改变为128。
[0141] 当确定集合重新映射参数时,编码工具评估层间残留视频的样本值。例如,编码工具查找最高值和最低值,然后,确定层间残留视频的动态范围。层间残留视频的目标动态范围和初始动态范围之间的比一般表示对于重新映射的可能的伸缩,但是,编码工具可以选择仍导致目标动态范围内的样本值的更进取的伸缩。编码工具可以对层间残留视频的样本值应用“天棚和地板”函数,以便屏蔽否则将就样本值的分布会误导编码工具的异常值。例如,对于图9的第二示例,如果99%的值在-300和450之间,编码工具裁剪异常值-491,563等等,以便动态范围是750,而不是1054,并且伸缩不太主动。
[0142] 编码器侧的范围重新映射中的参数化和伸缩操作取决于实现。一般而言,对于给定解码器侧的范围重新映射方案,编码工具任意使用符合该解码方案的多种不同的范围重新映射方案中的任何一种。示例实现使用表示如何执行样本值重新映射的三个参数Scale(伸缩),Shift(移位)和Norm(范数)。编码工具可以对于层间残留视频的图片的每一个通道,使用不同的Scale,Shift和Norm参数。对于一个通道的给定初始样本值s(x,y),编码工具按如下方式计算重新映射的样本值sr(x,y)。
[0143]
[0144] 其中,比率 一般性地表示动态范围伸缩,Shift表示范围的中心的偏移,而运算符nint(x)将最近的整数值返回到浮点值x。重新映射操作还可以包括对偏移进行四舍五入(未示出)。对于图9的第一示例,参数的值是Scale=1,Shift=128,Norm=5。对于第二示例,参数的值是Scale=33,Shift=119,Norm=3。
[0145] 在增强层比特流中的图片级别,编码工具信令1位位句法元素RES_SCALING_PRESENT。如果RES_SCALING_PRESENT是零,则在比特流中不存在残留重新映射参数,默认值是Scale=1,Shift=128和Norm=0。一般而言,在重新映射中应用这些默认值会将样本值从初始集-128…127改变为目标集0…255,并在逆重新映射中将样本值改变回初始集。
[0146] 如果RES_SCALING_PRESENT是1,则在比特流中存在残留重新映射参数。比特流包括下表中所示出的参数。
[0147]参数 位数 语义
SCALE_Y 8 图片的Y通道的Scale参数,1<=Scale<=256。
SHIFT_Y 8 图片的Y通道的Shift参数,0<=Shift<=255。
NORM_Y 3 图片的Y通道的Norm参数,0<=Norm<=7。
SCALE_U 8 图片的U通道的Scale参数,1<=Scale<=256。
SHIFT_U 8 图片的U通道的Shift参数,0<=Shift<=255。
NORM_U 3 图片的U通道的Norm参数,0<=Norm<=7。
SCALE_V 8 图片的V通道的Scale参数,1<=Scale<=256。
SHIFT_V 8 图片的V通道的Shift参数,0<=Shift<=255。
NORM_V 3 图片的V通道的Norm参数,0<=Norm<=7。
[0148] 表1:示例设置重新映射参数
[0149] 在解码器侧,对于层间残留视频的一个图片,解码工具接收1位开/关标志,对于图片的每一个通道,潜在地接收由编码工具信令的Scale,Shift和Norm参数。为从重新映射的样本值sr(x,y)重构一个通道的样本值s′(x,y),解码工具按如下方式执行逆伸缩。
[0150] s′(x,y)=((sr(x,y)-Shift)*Scale)>>Norm (9).
[0151] 在解码器侧低复杂性特别有价值,其中,根据等式(9),使用无除法的运算。
[0152] 在一些实现中层间残留视频中的被跳过的宏块或被跳过的通道的样本值为零。如果增强层解码器简单地将样本值设置为零,则逆重新映射可以改变样本值以具有非零的值。如此,增强层解码器将被跳过的宏块或被跳过的通道的样本值sr(x,y)设置为Shift,以便在逆重新映射之后它们是零:s′(x,y)=((Shift-Shift)*Scale)>>Norm=0。
[0153] 在一些实现中,增强层编码器和解码器对层间残留视频执行运动补偿。如果当前图片的通道中的一个或多个具有与重构的图片的对应的通道不同的集合重新映射参数,则增强层编码器和解码器可以调整重构的图片的受影响通道。例如,编码工具和解码工具使用重构的图片的受影响的通道的集合重新映射参数,将重构的图片的受影响的通道的样本值逆映射到它们的原始动态范围,然后,使用当前图片中的适当通道的集合重新映射参数,重新映射受影响的通道的样本值。如果第二重新映射导致目标动态范围之外的样本值,则裁剪这些样本值。然后,相对于重构的图片,增强层编码器和解码器对于当前图片中的块、宏块、等等执行运动补偿。
[0154] 前面的示例使用了带有某些值的范围的Shift,Scale和Norm的参数。可另选地,编码工具和解码工具使用带有不同的值的范围(例如,较大的范围)的参数,或使用允许在伸缩和逆伸缩中有不同级别的精确度的参数。或者,编码工具和解码工具为样本值重新映射使用其他参数。等式(8)和(9)中的重新映射操作使用线性伸缩。可另选地,重新映射操作根据其他线性映射规则来实现,重新映射操作通过查询表或其他非线性的规则来实现。
[0155] 在前面的示例中,范围重新映射对于层间残留视频的亮度和色度通道使用不同的伸缩因子。可另选地,范围重新映射对于层间残留视频的亮度和色度通道使用相同的伸缩因子。类似地,图片图片编码工具可以在逐个通道的基础上,逐片的基础上或某一其他基础上信令开/关标志,而不是在逐个图片的基础上信令重新映射开/关标志。
[0156] VII.组合实现
[0157] 图10a和10b示出了使用自适应低通过滤、样本深度上采样、色度上采样和残留值重新映射进行可伸缩视频编码的示例技术(1000)。诸如如图2所示的编码工具(200)之类的编码工具或其他编码工具执行技术(1000)。一般而言,在图10a和10b中,利用基层编码器或增强层编码器执行的操作被分组为远离作为可伸缩视频编码的一部分执行的其他操作。
[0158] 开始时,编码工具伸缩(1010)输入视频,以产生基层视频。基层编码器对基层视频进行编码(1020),产生基层编码器在基层比特流中信令的已编码数据。基层编码器还重构(1022)基层视频。
[0159] 编码工具选择(1030)自适应低通过滤器的多个过滤器强度参数中的一个,使用自适应低通过滤器对重构的基层视频进行过滤(1032),并将重构的基层视频的样本值上采样(1034)到更高的样本深度。例如,为评估过滤器强度参数的不同的值,编码工具利用根据给定值调整的低通过滤器对重构基层视频进行过滤,然后,检查过滤/上采样的结果。在编码工具找到可接受值之后,编码工具在增强层比特流中信令(1036)过滤器强度参数。编码工具还可以对重构的基层视频的上采样的值执行逆色调映射。
[0160] 编码工具还选择(1040)用于自适应色度上采样的一个或多个色度伸缩参数,并将色度通道伸缩(1042)到更高的色度采样速率。例如,为评估色度伸缩参数的不同的值,编码工具执行如由值所指示的色度上采样,然后,检查结果。在编码工具找到可接受值之后,编码工具在增强层比特流中信令(1044)色度伸缩参数。
[0161] 编码工具将(1050)层间残留视频确定为重构的基层视频和输入视频之间的样本与样本间的区别,然后,重新映射层间残留视频的样本值。编码工具选择(1060)一个或多个集合重新映射参数,然后,根据集合重新映射参数,将层间残留视频的样本值从一个样本值集映射(1062)到另一个样本值集。例如,为评估集合重新映射参数的不同的值,编码工具执行如由值所指示的映射,然后,检查结果。在编码工具找到可接受值之后,编码工具在增强层比特流中信令(1064)集合重新映射参数。
[0162] 最后,增强层编码器对层间残留视频进行编码(1070),产生在增强层比特流中信令的已编码数据。编码工具一个图片一个图片地重复自适应编码(1000)。
[0163] 图11a和11b示出了使用自适应低通过滤、样本深度上采样、色度上采样和残留值重新映射进行可伸缩视频解码的示例技术(1100)。诸如如图3所示的解码工具之类的解码工具或其他解码工具执行技术(1100)。一般而言,在图11a和11b中,利用基层解码器或增强层解码器执行的操作被分组为远离作为可伸缩视频解码的一部分执行的其他操作。
[0164] 基层解码器接收(1110)基层比特流中的基层视频的已编码数据,并对基层视频进行解码(1112)。解码工具从增强层比特流中解析(1130)一个或多个过滤器强度参数,并使用过滤器强度参数来调整自适应低通过滤器。该解码工具使用自适应低通过滤器对重构的基层视频进行过滤(1132),并将基层视频的样本值上采样(1134)至更高的样本深度。编码工具和解码工具对重构的基层视频执行相同的过滤(1032,1132)和上采样(1034,1134)操作。解码工具还可以对重构的基层视频的上采样的值执行逆色调映射。
[0165] 解码工具从增强层比特流中解析(1140)一个或多个色度伸缩参数。解码工具使用由色度伸缩参数所表示的一种色度上采样,将重构的基层视频的色度通道伸缩(1142)到更高的色度采样速率。编码工具和解码工具对重构的基层视频执行相同的色度上采样(1042,1142)操作。
[0166] 独立地,增强层解码器接收(1150)增强层比特流中的层间残留视频的已编码数据,并对层间残留视频进行解码(1152)。解码工具从增强层比特流中解析(1160)一个或多个集合重新映射参数,然后,根据集合重新映射参数,将层间残留视频的样本值从一个样本值集映射(1162)到另一个样本值集。解码工具执行重新映射(1162)操作,这些操作是由编码工具执行的重新映射操作(1062)的逆操作。
[0167] 最后,解码工具将重新映射的层间残留视频与经过滤的/上采样的基层视频组合(1170)起来,产生输入视频的重构的版本。解码工具一个图片一个图片地重复自适应解码(1100)。
[0168] VIII.替代方案
[0169] 此处所描述的许多示例涉及通过作为辅助信息信令的参数表示的适应性行为(例如,对于过滤,色度上采样或样本值重新映射)。可另选地,编码工具和解码工具基于对编码工具和解码工具可用的上下文信息,在没有明确将参数作为辅助信息来信令的情况下适应过滤、色度上采样和/或样本值重新映射。
[0170] 参考各实施例描述和示出了本发明的原理之后,可以认识到,可以在排列和细节上修改各实施例,而不脱离这些原理。应当理解,此处所描述的程序、过程或方法不相关于或不限于任何特定类型的计算环境,除非另外指明。可依照此处所描述的教导来使用各种类型的通用或专用计算环境或执行操作。以软件示出的实施例的元素可以用硬件来实现,反之亦然。
[0171] 鉴于可应用本发明的原理的许多可能的实施例,要求保护落入所附权利要求书及其等效技术方案的范围和精神之内的所有这样的实施例作为本发明。