用于兴趣区编码的运动约束图块集合的制作方法_2

文档序号:9673288阅读:来源:国知局
解码器系统。
[0047]在图2b显示的网络环境(202)中,编码工具(212)包括一个将视频进行编码来将其递送至包含解码器(270)的多个回放工具(214)的编码器(220)。单向通信可被提供给视频监控系统,网络摄像头监视系统,远程桌面会议演示,或是用于编码视频并将其从一个位置发送到一个或多个其他位置的其他场景。虽然图2b的网络环境(202)包括两个回放工具(214),但是该网络环境(202)也可包含更多或更少的回放工具(214)。通常,回放工具(214)与编码工具(212)通信来确定回放工具(214)所要接收的视频流。回放工具(214)接收所述流,将接收到的编码数据缓冲恰当时段,以及开始解码和回放。
[0048]图3显示的是一个可被包含在编码工具(212)中的例示编码器系统(300)。作为替换,编码工具(212)使用别的编码器系统。编码工具(212)还可以包括用于管理与一个或多个回放工具(214)的连接的服务器端控制器逻辑。图4显示了一个可被包含在回放工具(214)中的例示解码器系统(400)。作为替换,回放工具(214)也可使用别的解码器系统。该回放工具(214)还可以包括用于管理与编码工具(212)的连接的客户机端控制器逻辑。
[0049]II1.例示的编码器系统
图3是可以协同实施所描述的一些实施例的例示编码器系统(300)的框图。该编码器系统(300)可以是一个能以多种编码模式中的任一模式工作的通用编码工具,例如用于实时通信的低等待时间编码模式、转码模式以及用于回放来自文件或流的媒体的常规编码模式,或者所述编码器系统也可以是与一种这样的编码模式相适配的专用编码工具。编码器系统(300)可作为操作系统模块、应用库的一部分或是独立应用来实施。总的来说,编码器系统(300)从视频源(310)接收一系列的源视频帧(311),并且产生输出到信道(390)的编码数据。输出到信道的编码数据可以包括MCTS控制数据(例如用于MCTS的SEI消息)。
[0050]视频源(310)可以是摄像机、调谐卡、存储媒体或其他数字视频源。该视频源(310)以例如30帧/秒的帧速率来产生一系列视频帧。这里使用的术语“帧”通常是指源、编码或重建的图像数据。对于逐行视频来说,所述帧是逐行视频帧。对于隔行视频来说,在例示实施方式中,隔行视频帧会在编码之前去隔行(de-1nterlaced)。作为替换,两个互补隔行视频场可作为隔行视频帧或单独的场而被编码。除了指示逐行视频帧之外,术语“帧”或“画面”还可以指示单独的非配对视频场,互补视频场对,表示处于指定时间的视频对象的视频对象平面,或是更大图像中的兴趣区。视频对象平面或区域可以是包含多个对象或场景区域的更大图像的一部分。
[0051]已到达的源帧(311)被存入包含多个帧缓冲存储区域(321,322,......,32n)的源帧临时记忆存储区域(320 )。一个帧缓冲器(321,322,……等)会在源帧存储区域(320 )保持一个源帧。在将一个或多个源帧(311)存入帧缓冲器(321,322,……等)之后,帧选择器(330)周期性地从源帧存储区域(320)中选择单个源帧。帧选择器(330)选择输入至编码器(340)的帧的顺序有可能不同于视频源(310)产生所述帧的顺序,举个例子,某个帧的顺序有可能会被提前,以便促成逆向时间预测。在编码器(340)之前,编码器系统(300)可以包含一个在编码前对所选择的帧(331)执行预处理(例如滤波)的前置处理器(未显示)。所述预处理还可以包括将色彩空间转换成主要和次要成分,以便进行编码。
[0052]编码器(340)编码所选择的帧(331)来产生编码帧(341),并且还产生存储器管理控制操作(“MMC0”)信号(342)或参考画面集合(“RPS”)信息。如果当前帧不是第一个编码帧,那么在对其执行编码处理时,编码器(340)可以使用解码帧临时记忆存储区域(360)中保存的一个或多个先前编码/解码的帧(369)。所存储的这种解码帧(369)可被用作当前源帧(331)内容的帧间预测处理的参考帧。通常,编码器(340)包含了用于执行编码任务的多个编码模块,作为示例,这些编码任务可以是分割成图块,运动估计和补偿,频率变换,量化以及熵编码。编码器(340)执行的具体操作可以依照压缩格式而改变。所输出的编码数据格式可以是HEVC格式、Windows Media Video格式、VC-1格式、MPEG-χ格式(例如MPEG-1、MPEG-2 或 MPEG-4)、Η.26x 格式(例如 H.261、H.262、H.263、H.264)或别的格式。
[0053]编码器(340)可以将一个帧划分成具有相同尺寸或不同尺寸的多个图块。例如,编码器(340)沿着图块行和图块列来拆分所述帧,其中所述图块行和图块列结合帧边界限定了帧内部的图块的水平和垂直边界,其中每一个图块都是矩形区域。然后,编码器(340)可以将图块划分成一个或多个图块集合,其中图块集合是一个或多个图块构成的群组。图块集合中的一个或多个图块在帧中可以是连续的。或者,图块集合可包含的图块在帧中也可以是不连续的。通常,为一个帧定义的一个或多个图块集合和为一系列的帧(例如一组帧,整个序列)中的其他帧定义的一个或多个图块集合是相同的。
[0054]编码器(340)依照源于参考帧的预测表示一个帧间编码(inter-coded)预测帧。运动估计器对照一个或多个参考帧(369)来估计源帧(311)的块或其他采样集合的运动。在使用多个参考帧时,多个参考帧可以源于不同时间向度或相同时间向度。作为运动估计的一部分,编码器(340)可以约束处于当前帧的图块集合内部的块的运动矢量,以使运动补偿预测参考区域落入一个或多个参考帧中的相同图块集合。该运动补偿预测参考区域是用于为当前帧的采样的预测单元(例如块)生成运动补偿预测值的一个或多个参考帧中的采样区域。运动补偿预测可以包括分数位置(fract1nal-posit1n)内插之类的处理,所述处理会对一个或多个参考帧中略大于预测单元尺寸的区域的采样执行滤波。换句话说,由于所使用的内插滤波器支持超出标称预测单元尺寸边界的扩展,因此,与预测单元相比,用于为当前帧的预测单元计算运动补偿预测值的运动补偿预测参考区域的尺寸相对较大。通过使用这种MCTS,可以促成图块集合的兴趣区解码功能,转码处理以及并行解码处理。运动估计器输出经过熵编码的运动信息,例如运动矢量信息。运动补偿器则将运动矢量应用于参考帧(369),以便确定运动补偿预测值。
[0055]编码器确定块的运动补偿预测值与相应初始值之间的差值(如果存在的话)。通过使用频率变换、量化和熵编码,可以进一步编码这些预测残差值。例如,编码器(340)设置画面、图块、切片和/或视频中的其他部分的量化参数(“QP”)的值,并且相应地量化变换系数。同样,对于内预测来说,编码器(340)可以确定块的内预测值,确定预测残差值,以及对预测残差值进行编码(通过使用频率变换、量化和熵编码)。特别地,编码器(340)的熵编码器对经过量化的变换系数值和某些边信息(例如运动矢量信息,QP信息,模式决策,参数选择)进行压缩。典型的熵编码技术包括指数哥伦布编码,算术编码,差分编码,霍夫曼编码,游程长度编码,可变长度-可变长度(“V2V”)编码,可变长度-固定长度(“V2F”)编码,LZ编码,字典编码,概率区间分割熵编码(“PIPE”),以及上述各项的组合。熵编码器可以为不同类型的信息使用不同的编码技术,并且可以从特定编码技术内部的多个码表中进行选择。
[0056]编码帧(341)和MMC0/RPS信息(342)由解码处理仿真器(350)进行处理。该解码处理仿真器(350)实施解码器的一些功能,例如用于重建编码器(340)在运动估计和补偿过程中使用的参考帧的解码任务。解码处理仿真器(350)使用MMC0/RPS信息(342)来确定是否需要重建和存储所给出的编码帧(341),以便在对所要编码的后续帧的帧间预测的过程中将其用作参考帧。如果MMC0/RPS信息(342)表明需要存储编码帧(341),那么解码处理仿真器(350)对由接收编码帧(341)并产生相应解码帧(351)的解码器实施的解码处理进行建模。如此一来,当编码器(340)使用保存在解码帧存储区域(360)中的一个或多个解码帧(369)时,作为解码处理的一部分,解码处理仿真器(350)同样使用来自存储区域(360)的一个或多个解码帧(369)。
[0057]解码帧临时记忆存储区域(360)包括多个帧缓冲存储区域(361,362,……,36η)。解码处理仿真器(350)使用MMC0/RPS信息(342)来管理存储区域(360)的内容,以便识别出具有不再需要被编码器(340)用作参考帧的帧的任何帧缓冲器(361,362等)。在对解码处理建模之后,解码处理仿真器(350)会将新近解码的帧(351)存入以这种方式标识的帧缓冲器(361,362等)。
[0058]编码帧(341)和MMC0/RPS信息(342)被缓冲在临时编码数据区域(370)中。作为基本编码视频比特流语法的一部分,聚合在编码数据区域(370)中的编码数据包括一个或多个画面的编码数据。聚合在编码数据区域(370)中的编码数据还可以包括与编码视频数据关联的媒体元数据(例如作为一个或多个SEI消息或视频可用性信息(“VUI”)消息中的一个或多个参数)。此类媒体元数据可以包括用于指示MCTS控制数据(例如用于MCTS的SEI消息)的语法元素。
[0059]信道编码器(380)对来自临时编码数据区域(370)的聚合数据(371)进行处理。该信道编码器(380)可以将聚合数据分组化,以便将其作为媒体流来传输(例如依照IS0/IEC14496-12之类的媒体容器格式),在这种情况下,信道编码器(380)可以添加作为媒体传输流语法的一部分的语法元素。该语法可以包括用于指示MCTS控制数据的语法元素。或者,信道编码器(380)可以组织聚合数据,以便将其存储成文件(例如依照IS0/IEC 14496-12之类的媒体容器格式),在这种情况下,信道编码器(380)可以添加作为媒体存储文件语法的一部分的语法元素。此类语法可以包括用于指示MCTS控制数据的语法元素。或者,一般来说,信道编码器(380 )可以实施一个或多个媒体系统复用协议或传输协议,在这种情况下,信道编码器(380)可以添加作为所述一个或多个协议语法的一部分的语法元素。同样,此类语法可以包括用于指示MCTS控制数据的语法元素。该信道编码器(380)向信道(390)提供输出,其中所述信道代表的是存储器、通信连接或别的输出信道。
[0060]IV.例示的解码器系统
图4是可以协同实施所描述的一些实施例的例示解码器系统(400)的框图。解码器系统(400)可以是能以多种解码模式中的任一模式工作的通用解码工具,例如用于实时通信的低等待时间解码模式和用于回放来自文件或流的媒体的常规解码模式,或者它也可以是与一种这样的解码模式相适配的专用解码工具。解码器系统(400)可以作为操作系统的模块、作为应用库的一部分或者作为独立的应用来实施。总的来说,解码器系统(400)从信道(410)接收编码数据,并且产生作为针对输出目的地(490)的输出的重建帧。编码数据可以包括用于指示MCTS控制数据的语法元素。
[0061]解码器系统(400)包括信道(410),对作为输入的编码数据来说,该信道可以代表存储器、通信连接或别的信道。信道(410)产生经过信道编码的编码数据。信道解码器(420)可以对编码数据进行处理。例如,对于那些为了作为媒体流传输而被聚合的数据,信道解码器(420)会将该数据去分组化(例如依照IS0/IEC 14496-12之类的媒体容器格式),在这种情况下,信道解码器(420 )可以解析作为媒体传输流语法一部分添加的语法元素。此类语法可以包括用于指示MCTS控制数据的语法元素。或者,对于那些为了作为文件存储而被聚合的编码视频数据,信道解码器(420)对该编码视频数据进行分离(例如依照IS0/IEC14496-12之类的媒体容器格式),在这种情况下,信道解码器(420)可以解析作为媒体存储文件语法一部分添加的语法元素。该语法可以包括用于指示MCTS控制数据的语法元素。或者,一般来说,信道解码器(420)可以实施一个或多个媒体系统解复用协议或传输协议,在这种情况下,信道解码器(420)可以解析作为一个或多个协议语法的一部分添加的语法元素。同样,此类语法可以包括用于指示MCTS控制数据的语法元素。
[0062]从信道解码器(420)输出的编码数据(421)被存入临时编码数据区域(430),直至接收到足够数量的此类数据。该编码数据(421)包括编码帧(431)和MMC0/RPS信息(432)。作为基本编码视频比特流语法的一部分,编码数据区域(430)中的编码数据(421)包括一个或多个画面的编码数据。编码数据区域(430)中的编码数据(421)还可以包括与编码视频数据关联的媒体元数据(例如作为一个或多个SEI消息或VUI消息中的一个或多个参数),此类媒体元数据可以包括用于指示MCTS控制数据的语法元素(例如作为SEI消息的一部分)。
[0063]通常,在解码器(450)使用编码数据(421)之前,编码数据区域(430)临时存储此类编码数据(421)。此时,编码帧(431)的编码数据和MMC0/RPS信息(432)被从编码数据区域(430)传送到解码器(450)。随着解码处理的继续,新的编码数据被添加至编码数据区域(430),而保留在编码数据区域(430)中的最早的编码数据则被传送至解码器(450)。
[0064]解码器(450)周期性地对编码帧(431)进行解码,以便产生相应解码帧(451 )。在执行其解码处理时,解码器(450)可能会酌情使用一个或多个先前解码的帧(469),以此作为帧间预测参考帧。该解码器(450)从解码帧临时记忆存储区域(460)中读取这种先前解码的帧(469)。通常,解码器(450)包括多个执行解码任务的解码模块,作为示例,所述解码任务可以是熵解码、反量化、逆频率变换、运动补偿以及图块合并。解码器(450)执行的具体操作可以依照压缩格式而改变。
[0065]例如,解码器(450)接收压缩帧或帧序列的编码数据,并且产生包含解码帧(451)的输出。在解码器(450)中,缓冲器接收压缩帧的编码数据,并且在恰当时间使所接收的编码数据对熵解码器可用。熵解码器则对经过熵编码的量化数据和熵编码端信息执行熵解码,并且通常应用与编码器中执行的熵编码相反的处理。运动补偿器将运动信息应用于一个或多个参考帧,以便形成被重建的帧的子块和/或块(通常是块)的运动补偿预测。内预测模块可以在空间上从先前重建的相邻采样值中预测出当前块的采样值。解码器(450)还重建预测残差。反量化器对经过熵解码的数据进行反量化。例如,解码器(450)基于比特流中的语法元素来设置画面、图块、切片和/或其他视频部分的QP值,并且相应地对变换系数执行反量化处理。逆频率变换器将量化频域数据转换成空域信息。对于预测帧,解码器(450)将重建的预测残差与运动补偿预测结合在一起,以便形成一个重建帧。该解码器(450)可以采用类似方式来将预测残差与源于内预测的空间预测结合在一起。视频解码器(450)中的运动补偿环路包括一个用于平滑解码帧(451)中的块边界行和/或列上的不连续性的自适应去块滤波器。
[0066]解码器(450)可以依照实施方式并采用多种方式来使用MCTS控制数据。例如,在确定并行解码不同图块集合时,解码器(450)可以使用MCTS控制数据。或者,在确定只解码作为兴趣区显示的选定图块集合而不解码该图块集合之外的帧的部分时,解码器(450)可以使用MCTS控制数据。
[0067]解码帧临时记忆存储区域(460)包括多个帧缓冲存储区域(461,462,......,46η)。
所述解码帧存储区域(460)是解码画面缓冲器的一个示例。解码器(450)使用MMC0/RPS信息(432)来识别可供其存储解码帧(451)的帧缓冲器(461,462等)。该解码器(450)将解码帧(451)存入所述帧缓冲器。
[0068]输出定序器(480)使用MMC0/RPS信息(432)来识别在解码帧存储区域(460)中依照输出顺序产生的下一个帧何时可用。当解码帧存储区域(460)中依照输出顺序产生的下一个帧(481)可用时,输出定序器(480)将会读取所述帧,并且将其输出至输出目的地(490)(例如显示器)。通常,输出
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1