用于对较高分辨率色度采样格式进行帧包装/解包的带分离滤波/逆滤波的制作方法_2

文档序号:9264924阅读:来源:国知局
S0-IEC14496-10标准(还被称为H. 264/AVC)、H. 265/HEVC标准、另一标准或专有格 式兼容的输出,对应的解码器(270)从构码器(220)接受构码数据。双向通信可以是视频会 议、视频电话呼叫或其它两方通信场景的一部分。尽管图2a中的网络环境(201)包括两个 实时通信工具(210),但是网络环境(201)能够替代地包括参与多方通信的三个或更多个 实时通信工具(210)。
[0051] 实时通信工具(210)通过构码器(220)来管理构码。图4示出了能够被包括在实 时通信工具(210)中的示例性构码器系统(400)。替换地,实时通信工具(210)使用另一构 码器系统。实时通信工具(210)还通过解码器(270)来管理解码。图5示出了能够被包括 在实时通信工具(210)中的示例性解码器系统(500)。替换地,实时通信工具(210)使用另 一解码器系统。
[0052] 在图2b中所示出的网络环境(202)中,构码工具(212)包括对用于递送到包括解 码器(270)的多个回放工具(214)的视频进行构码的构码器(220)。单向通信能够被提供 用于视频监视系统、web相机监测系统、远程桌面会议呈现或其中视频被构码并且从一个位 置发送到一个或多个其它位置的其它场景。尽管图2b中的网络环境(202)包括两个回放 工具(214),但是网络环境(202)能够包括更多的或更少的回放工具(214)。一般而言,回放 工具(214)与构码工具(212)进行通信以便确定用于回放工具(214)接收的视频的流。回 放工具(214)接收流,缓冲所接收到的构码数据达适当的周期,并且开始解码和回放。
[0053] 图4示出了能够被包括在构码工具(212)中的示例性构码器系统(400)。替换地, 构码工具(212)使用另一构码器系统。构码工具(212)还能够包括用于管理与一个或多个 回放工具(214)的连接的服务器侧控制器逻辑。图5示出了能够被包括在回放工具(214) 中的示例性解码器系统(500)。替换地,回放工具(214)使用另一解码器系统。回放工具 (214)还能够包括用于管理与构码工具(212)的连接的客户端侧控制器逻辑。
[0054]III.示例性帧包装/解包系统。
[0055]图3是一些描述的实施例可以结合其被实施的一般性的帧包装/解包系统(300) 的框图。
[0056] 系统(300)包括视频源(310),其产生诸如4:4:4格式这样的较高分辨率色度采样 格式的源帧(311)。视频源(310)可以是相机、调谐器卡、存储媒体或其它数字视频源。
[0057] 帧包装器(315)重新布置较高分辨率色度采样格式的帧(311)以便产生诸如 4:2:0格式这样的较低分辨率色度采样格式的源帧(316)。帧包装(包括小波分解或其它带 分离滤波)的示例性方法在下面被描述。帧包装器(315)能够发信号通知指示帧包装是否 并且如何被执行的元数据(317),以用于在解码之后由帧解包器(385)使用。用来发信号通 知帧包装布置元数据的示例性方法在下面被描述。
[0058] 构码器(340)对较低分辨率色度采样格式的帧(316)进行构码。示例性构码器参 考图4和图6在下面被描述。构码器(340)通过通道(350)输出编码数据(341),所述通道 (350)表示存储、通信连接,或用于输出的另一通道。
[0059] 解码器(360)接收构码数据(341)并且对较低分辨率色度采样格式的帧(316)进 行解码。示例性解码器参考图5和图7在下面被描述。解码器输出较低分辨率色度采样格 式的重建帧(381)。
[0060] 帧解包器(385)可选地重新布置较低分辨率色度采样格式的重建帧(381)以便重 建较高分辨率色度采样格式的帧(386)。帧解包(包括小波重建或其它逆带分离滤波)的示 例性方法在下面被描述。帧解包器(385)能够接收指示帧包装是否并且如何被执行的元数 据(317),并且使用这样的元数据(317)来指导解包操作。帧解包器(385)将较高分辨率色 度采样格式的重建帧输出到输出目的地(390)。
[0061]IV.示例性构码器系统。
[0062] 图4是一些描述的实施例能够结合其被实施的示例性构码器系统(400)的 框图。构码器系统(400)可以是能够在诸如用于实时通信的低延迟构码模式、转码 (transcoding)模式以及用于来自文件或流的媒体回放的普通构码模式这样的多个构码模 式中的任一个下操作的通用构码工具,或者它可以是适配于一个这样的构码模式的专用构 码工具。构码器系统(400)能够作为操作系统模块、作为应用库的一部分或作为独立应用 被实施。总的说来,构码器系统(400)从视频源(410)接收(诸如4:4:4格式这样的较高分 辨率色度采样格式的)一系列源视频帧(411 ),执行到诸如4:2:0格式这样的较低分辨率色 度采样格式的帧包装(包括小波分解或其它带分离滤波),对较低分辨率色度采样格式的帧 进行构码,并且产生如输出到通道(490 )的构码数据。
[0063] 视频源(410)可以是相机、调谐器卡、存储媒体或其它数字视频源。视频源(410) 以例如每秒30帧的帧速率产生一系列视频帧。如本文中所使用的,术语"帧"一般地指代 源、编码的或重建的图像数据。对于逐行扫描视频,帧是逐行扫描视频帧。对于交错视频, 在示例性实施例中,交错视频帧在构码之前被去交错。替换地,两个互补的交错视频半帧 (field)被构码为交错视频帧或为单独的半帧。除指示逐行扫描视频帧之外,术语"帧"能 够指示单个不成对的视频半帧、互补的一对视频半帧、表示在给定时间的视频对象的视频 对象平面或较大图像中的感兴趣区。视频对象平面或区可以是包括场景的多个对象或区的 较大图像的一部分。在来自捕获格式(例如,RGB格式)的颜色空间转换之后,源帧(411)具 有诸如4:4:4格式这样的较高分辨率色度采样格式。
[0064] 帧包装器(415)重新布置较高分辨率色度采样格式的帧(441)以便产生诸如 4:2:0格式这样的较低分辨率色度采样格式的源帧(416)。帧包装的示例性方法在下面被 描述。帧包装器(415)能够发信号通知指示帧包装是否并且如何被执行的元数据(未示出), 以用于在解码之后由帧解包器使用。用来发信号通知帧包装布置元数据的示例性方法在下 面被描述。帧包装器(415)能够执行预处理操作,例如,小波分解或其它带分离滤波,如在 下面所描述的。
[0065] 到达源帧(416)被存储在包括多个帧缓冲器存储区域(421、422.....42/?)的源帧 暂时存储器存储区域(420)中。帧缓冲器(421、422等)使一个源帧保持在源帧存储区域 (420)中。在源帧(416)中的一个或多个已被存储在帧缓冲器(421、422等)中之后,帧选择 器(430)周期性地从源帧存储区域(420)中选择单独的源帧。帧以其被帧选择器(430)选 择用于输入到构码器(440)的顺序可以不同于帧以其由视频源(410)产生的顺序,例如,选 择的帧可以在顺序上提前,以便利于暂时地向后的预测。
[0066] 帧包装器(415)和帧存储区域(420)的顺序能够被交换。在构码器(440)之前,构 码器系统(400)能够包括在构码之前执行所选帧(431)的预处理(例如,滤波)的另一预处 理器(未不出)。
[0067] 构码器(440)对(较低分辨率色度采样格式的)所选帧(431)进行构码以便产生编 码帧(441)并且还产生存储器管理控制操作("MMC0")信号(442)或参考图片集("RPS")信 息。如果当前帧不是已被构码的第一帧,则当执行它的构码过程时,构码器(440)可以使用 已被存储在解码帧暂时存储器存储区域(460)中的一个或多个先前构码/解码的帧(469)。 这样存储的解码帧(469)被用作当前源帧(431)的内容的帧间预测的参考帧。一般地,构 码器(440)包括执行诸如运动估计和补偿、频率变换、量化以及熵编码这样的构码任务的多 个构码模块。由构码器(440)执行的确切操作能够取决于压缩格式而变化。经输出的构码 数据的格式可以是Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2 或MPEG-4 )、H. 26x格式(例如,H. 261、H. 262、H. 263、H. 264)、HEVC格式或其它格式。一般 而言,构码器(440 )被适配用于对较低分辨率色度采样格式的帧进行构码。
[0068]例如,在构码器(440)内,帧间编码的预测帧按根据参考帧的预测被表示。运动估 计器估计源帧(441)的样本的集合相对于一个或多个参考帧(469)的运动。样本的集合可 以是宏块、子宏块或子宏块分区(如在H. 264标准中一样),或者它可以是编码树单元或预测 单元(如在HEVC标准中一样)。一般地,如本文中所使用的,术语"块"指示样本的集合,其 可以是单个二维("2D")阵列或多个2D阵列(例如,针对亮度分量的一个阵列和针对色度分 量的两个阵列)。当多个参考帧被使用时,多个参考帧可以是来自不同的时间方向或相同的 时间方向的。运动估计器输出诸如运动矢量信息这样的运动信息,其是被摘编码的。运动 补偿器对参考帧应用运动矢量以便确定运动补偿的预测值。构码器确定块的运动补偿的预 测值与对应的原始值之间的差(若有的话)。这些预测残差值(即,残差、残差值)使用频率 变换、量化以及熵构码被进一步构码。类似地,对于帧内预测,构码器(440)能够确定针对 块的帧内预测值,确定预测残差值,并且对预测残差值进行构码。构码器(440)的熵编码器 (entropycoder)压缩量化的变换系数值以及特定边信息(例如,运动矢量信息、QP值、模式 判定、参数选择)。典型的熵编码技术包括指数哥伦布(Exp-Golomb)编码、算术编码、差分 编码、哈夫曼(Huffman)编码、游程长度编码、可变长度到可变长度("V2V")编码、可变长度 到固定长度("V2F")编码、LZ编码、词典编码、概率区间分割熵编码("PIPE")以及上述的组 合。熵编码器能够针对不同种类的信息使用不同的编码技术,并且能够从特定编码技术内 的多个码表当中选择。
[0069] 编码帧(441)和MMC0/RPS信息(442)被解码过程仿真器(450)处理。解码过程仿 真器(450)实施解码器的功能性中的一些(例如,解码任务)以便重建被构码器(440)用在 运动估计和补偿中的参考帧。解码过程仿真器(450)使用MMC0/RPS信息(442)来确定给定 编码帧(441)是否需要被存储以用于在要被构码的后续帧的帧间预测中用作参考帧。如果 MMC0/RPS信息(442)指示编码帧(441)需要被存储,则解码过程仿真器(450)对将由解码器 进行的解码过程进行建模,所述解码器接收编码帧(441)并且产生对应的解码帧(451)。在 这样做时,当构码器(440)已使用已被存储在解码帧存储区域(460)中的(一个或多个)解 码帧(469)时,解码过程仿真器(450)也使用来自存储区域(460)的(一个或多个)解码帧 (469)作为解码过程的一部分。
[0070] 解码帧暂时存储器存储区域(460)包括多个帧缓冲器存储区域(461、462..... 46/7)。解码过程仿真器(450 )使用MMC0/RPS信息(442 )来管理存储区域(460 )的内容,以 便识别具有不再被构码器(440)需要用作参考帧的帧的任何帧缓冲器(461、462等)。在对 解码过程进行建模之后,解码过程仿真器(450)将新近解码的帧(451)存储在已被以这种 方式识别的帧缓冲器(461、462等)中。
[0071] 编码帧(441)和MMC0/RPS信息(442)还被缓冲在暂时编码数据区域(470)中。被 聚集在编码数据区域(470)中的编码数据还能够包括涉及编码视频数据的媒体元数据(例 如,作为一个或多个SEI消息(诸如帧包装布置SEI消息)或视频可用性信息("VUI")消息 中的一个或多个参数)。
[0072] 来自暂时编码数据区域(470)的经聚集的数据(471)被通道构码器(480)处理。 通道构码器(480)能够包化经聚集的数据以用于作为媒体流传送(例如,根据诸如IS0/IEC 14496-12这样的媒体容器格式),在这种情况下通道构码器(480)能够添加作为媒体传输流 的语法的一部分的语法元素。或者,通道构码器(480)能够组织经聚集的数据以用于作为 文件存储(例如,根据诸如IS0/IEC14496-12这样的媒体容器格式),在这种情况下通道构 码器(480)能够添加作为媒体存储文件的语法的一部分的语法元素。或者,更一般地,通道 构码器(480)能够实施一个或多个媒体系统复用协议或传输协议,在这种情况下通道构码 器(480)能够添加作为(一个或多个)协议的语法的一部分的语法元素。针对媒体传输流、 媒体存储流、复用协议或传输协议的这样的语法元素能够包括帧包装布置元数据。通道构 码器(480)将输出提供给表示存储、通信连接的通道(490),或用于输出的另一通道。
[0073]V.示例性解码器系统。
[0074] 图5是一些描述的实施例可以结合其被实施的示例性解码器系统(500)的框图。 解码器系统(500)可以是能够在诸如用于实时通信的低延迟解码模式以及用于来自文件或 流的媒体回放的普通解码模式这样的多个解码模式中的任一个下操作的通用解码工具,或 者它可以是针对一个这样的解码模式适配的专用解码工具。解码器系统(500)能够作为操 作系统模块、作为应用库的一部分或作为独立应用被实施。总的说来,解码器系统(500)从 通道(510)接收编码数据,对诸如4:2:0格式这样的较低分辨率色度采样格式的帧进行解 码,可选地执行从较低分辨率色度采样格式到诸如4:4:4格式这样的较高分辨率色度采样 格式的帧解包(包括小波重建或其它逆带分离滤波),并且产生(较高分辨率色度采样格式 的)重建帧作为针对输出目的地(590)的输出。
[0075] 解码器系统(500)包括通道(510),其能够表示存储、通信连接,或作为输入的针 对编码数据的另一通道。通道(510)产生已被通道编码的编码数据。通道解码器(520)能 够处理编码数据。例如,通道解码器(520)去包化已被聚集用于作为媒体流传送的数据(例 如,根据诸如IS0/IEC14496-12这样的媒体容器格式),在这种情况下通道解码器(520)能 够解析被作为媒体传输流的语法的一部分添加的语法元素。或者,通道解码器(520)使已 被聚集用于作为文件存储的编码视频数据分离(例如,根据诸如IS0/IEC14496-12这样的 媒体容器格式),在这种情况下通道解码器(520)能够解析被作为媒体存储文件的语法的一 部分添加的语法元素。或者,更一般地,通道解码器(520 )能够实施一个或多个媒体系统解 复用协议或传输协议,在这种情况下通道解码器(520)能够解析被作为(一个或多个)协议 的语法的一部分添加的语法元素。针对媒体传输流、媒体存储流、复用协议或传输协议的这 样的语法元素能够包括帧包装布置元数据。
[0076] 被从通道解码器(520)输出的编码数据(521)被存储在暂时编码数据区域(530) 中直到充足数量的这样的数据已被接收到为止。编码数据(521)包括编码帧(531)(在较低 分辨率色度采样格式下)和MMC0/RPS信息(532)。编码数据区域(530)中的编码数据(521) 还能够包括涉及构码视频数据的媒体元数据(例如,作为诸如帧包装布置SEI消息这样的 一个或多个SEI消息或WI消息中的一个或多个参数)。一般而言,编码数据区域(530)暂 时地存储编码数据(521)直到这样的编码数据(521)被解码器(550)使用为止。在那时,针 对编码帧(531)和MMC0/RPS信息(532)的编码数据被从编码数据区域(530)转移到解码 器(550)。随着解码继续,新的编码数据被添加到编码数据区域(530),并且编码数据区域 (530)中留下的最旧的编码数据被转移到解码器(550)。
[0077] 解码器(550)周期性地对编码帧(531)进行解码以便产生较低分辨率色度采样格 式的对应的解码帧(551)。视情况而定,当执行它的解码过程时,解码器(550)可以将一个 或多个先前解码帧(569)用作帧间预测的参考帧。解码器(550)从解码帧暂时存储器存储 区域(560)读取这样的先前解码帧(569)。一般地,解码器(550)包括执行诸如熵解码、逆 量化、逆频率变换以及运动补偿这样的解码任务的多个解码模块。由解码器(550)执行的 确切操作能够取决于压缩格式而变化。一般而言,解码器(550)被适配用于对较低分辨率 色度采样格式的帧进行解码。
[0078] 例如,解码器(550)接收针对压缩帧或一系列帧的构码数据并且产生包括较低分 辨率色度采样格式的解码帧(551)的输出。在解码器(550)中,缓冲器接收针对压缩帧的 构码数据并且使所接收到的构码数据对于熵解码器是可得到的。熵解码器对熵编码的量化 数据以及熵编码的边信息进行熵解码,典型地应用构码器中执行的熵构码的逆。运动补偿 器对一个或多个参考帧应用运动信息以便形成正被重建的帧的块(例如,宏块、子宏块、子 宏块分区、编码树单元、预测单元或其部分)的运动补偿的预测。帧内预测模块能够根据邻 近的先前重建的样本值来空间地预测当前块的样本值。解码器(550)还重建预测残差。逆 量化器逆量化熵解码的数据。逆频率变换器将经量化的频域数据转换成空间域信息。对于 预测帧,解码器(550)将重建的预测残差与运动补偿的预测组合以便形成重建帧。解码器 (550)能够类似地将预测残差与来自帧内预测的空间预测组合。视频解码器(550)中的运 动补偿环路包括自适应去块滤波器以便平滑跨越解码帧(551)中的块边界行和/或列的不 连续。
[0079] 解码帧暂时存储器存储区域(560)包括多个帧缓冲器存储区域(561、562..... 56/7)。解码帧存储区域(560)是DPB的例子。解码器(550)使用MMC0/RPS信息(532)来 识别它能够将较低分辨率色度采样格式的解码帧(551)存储在其中的帧缓冲器(561、562 等)。解码器(550)将解码帧(551)存储在该帧缓冲器中。
[0080] 输出定序器(580)使用MMC0/RPS信息(532)来识别要被以输出顺序产生的下一 个帧何时在解码帧存储区域(560)中可用。当要被以输出顺序产生的较低分辨率色度采样 格式的下一个帧(581)在解码帧存储区域(560)中可用时,它被输出定序器(580)读取并且 输出到(a)用于显示较低分辨率色度采样格式的帧的输出目的地(590)(例如,显示器)或 (b)帧解包器(585)。一般而言,帧以其被输出定序器(580)从解码帧存储区域(560)输出 的顺序可以不同于帧以其被解码器(550)解码的顺序。
[0081] 帧解包器(585)重新布置较低分辨率色度采样格式的帧(581)以便产生诸如 4:4:4格式这样的较高分辨率色度采样格式的输出帧(586)。帧解包的示例性方法在下面 被描述。帧包装器(585)能够使用指示帧包装是否并且如何被执行的元数据(未示出),以 便指导帧解包操作。帧解包器(585 )能够执行后处理操作,例如,小波重建或其它逆带分离 滤波,如在下面所描述的。
[0082]VI.示例性视频构码器。
[0083] 图6是一些描述的实施例可以结合其被实施的一般性的视频构码器(600)的框 图。构码器(600)接收包括当前帧(605)的、诸如4:2:0格式这样的较低分辨率色度采样格 式的一系列视频帧,并且产生作为输出的构码数据(695)。
[0084] 构码器(600)是基于块的并且使用取决于实施方案的宏块格式。块可以在不同级 (例如,在频率变换和熵构码级)被进一步细分。例如,帧能够被划分成16x16个宏块,其进 而能够被划分8x8个块或像素值的更小子块以用于编码和解码。
[0085] 构码器系统(600)压缩预测帧和帧内编码帧。为了呈现起见,图6示出了通过构 码器(600)用于帧内编码的"帧内路径"和用于帧间编码的"帧间路径"。构码器(600)的 构件中的许多被用于帧内编码和帧间编码两者。由那些构件执行的确切操作能够取决于正 被压缩的信息的类型而变化。
[0086] 如果当前帧(605)是预测帧,则运动估计器(610)估计当前帧(605)的块(例如, 宏块、子宏块、子宏块分区、编码树单元、预测单元或其部分)相对于一个或多个参考帧的运 动。帧储存器(620)缓冲一个或多个重建的先前帧(625)以用作参考帧。当多个参考帧被 使用时,多个参考帧可以是来自不同的时间方向或相同的时间方向的。运动估计器(610)输 出诸如差分运动矢量信息这样的运动信息(615 )作为边信息。
[0087] 运动补偿器(630)在形成运动补偿的当前帧(635)时对经重建的(一个或多个)参 考帧(625)应用重建的运动矢量。经运动补偿的当前帧(635)的块等与原始当前帧(605) 的对应部分之间的差(若有的话)是针对块的预测残差(645)。在当前帧的以后重建期间,重 建的预测残差被添加到经运动补偿的当前帧(635)以便获得更接近于原始当前帧(605)的 重建帧。然而,在有损压缩中,一些信息仍然从原始当前帧(605)丢失。帧内路径能够包括 帧内预测模块(未示出),其根据邻近的先前重建的像素值来空间地预测当前块的像素值。
[0088] 频率变换器(660)将空间域视频信息转换成频域(S卩,频谱、变换)数据。对于基于 块的视频帧,频率变换器(660)对像素值数据或预测残差数据的块应用离散余弦变换、其的 整数近似或另一类型的正向块变换,从而产生频率变换系数的块。量化器(670)然后量化 变换系数。例如,量化器(670)对频域数据应用非均匀标量量化,其具有在逐帧基础、逐宏 炔基础或其它基础上变化的步长尺寸。
[0089] 在当前帧的重建版本对于后续运动估计/补偿是需要的时,逆量化器(676)对经 量化的频率系数数据执行逆量化。逆频率变换器(666)执行逆频率变换,从而产生重建的 预测残差或像素值的块。对于预测帧,构码器(600)将重建的预测残差(645)与运动补偿的 预测(635)组合以便形成重建帧(605)。(尽管在图6中未示出,但是在帧内路径中,构码器 (600)能够将预测残差与来自帧内预测的空间预测组合。)帧储存器(620)缓冲经重建的当 前帧以用于在后续运动补偿的预测中使用。
[0090] 构码器(600)中的运动补偿环路包括在帧储存器(620)之前或之后的自适应环内 去块滤波器(610)。解码器(600)对重建帧应用环内滤波以便自适应地平滑跨越帧中的边 界的不连续。自适应环内去块滤波器(610)能够针对一些类型的内容被禁用。例如,在采 用主视图和辅助视图的帧包装方法中,自适应环内去块滤波器(610 )在对辅助视图(包括不 为主视图的一部分的剩余色度信
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1