用于将可并行解码片用于多视点视频编码的系统和方法

文档序号:7680462阅读:156来源:国知局

专利名称::用于将可并行解码片用于多视点视频编码的系统和方法
技术领域
:本发明总体上涉及多视点视频编码和解码。更具体地,本发明涉及针对多视点系统中不同视点的并行解码器实现的实现,即使是在视点之间存在依赖关系时。
背景技术
:本部分旨在对权利要求中细述的本发明提供背景或上下文。此处的描述可以包括能够被探究的概念,却不一定是那些之前已经想到或者探究的概念。因此,除了在此明确指出外,本部分提及的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认其为现有技术。随着视频捕获和显示技术的最新进展,三维(3D)视频通信和娱乐服务迅速地变为现实,并且将在不远的将来进入消费者领域。3D视频通信和娱乐服务可能变革用户欣赏内容以及与内容进行交互的方式,并且将为很多新的、激动人心的服务开启大门。这些服务可以包括立体视频广播、3D-TV(3D电视)以及各种各样的其他服务。3D-TV应用需要其特性可以改变的特殊3D显示器。例如,如果3D显示器是自动立体显示方式,则用户无需佩戴任何特殊的镜头或者眼镜来观看针对每个眼睛的不同视点。而且,3D显示器可以支持将要同时显示的多个视点,使得用户可以根据其相对于屏幕的位置来,见看不同的纟见点。该特征称为"头部运动—见差(headmotion-parallax),,,并且其特征在于用户可获得的最为真实以及沉浸感体-睑之一。为了支持这些类型的应用,3D视频内容的呈现、传输和绘制需要新的范型,其可能与2D视频用例非常不同。最近,ITU-T/VCEG联合视频组(JVT)以及ISO/MPEG标准组正在为多视点视频编码(MVC)标准而努力。MVC是一种多视点序列的编码框架,其中多视点序列由包括从不同位置捕获相同事件的多个相机的相机系统来产生,或者由能够捕获3D场景的单个相机来产生。在利用MVC的应用中,用户可以享受真实和沉浸感体验,这是因为多—见点一见频表示真实空间中的三维场景。MVC编码器与传统2D视频编码器之间的主要区别是除了时间冗余和空间冗余之外,MVC还利用视点间冗余。因此,在多视点视频编码结构中,图片之间存在—见点间依赖关系。不幸的是,图片之间的视点间依赖关系为视频系统带来了严重的复杂性问题和并行度问题。发生这些问题是因为,不同视点处的两个图片需要顺序地解码。对于需要同时显示多个视点的3D-TV用例而言,这尤其是有问题的。为了理解这些问题,考虑以下的3D-TV系统是有帮助的,该3D-TV系统同时显示两个视点,并且使用图l中所示的编码结构来编码视点。为了在任何时刻解码"视点-l"中的图片,应当首先对在同一时刻"视点-0"中的图片进行解码。因此,利用该结构,同时显示两个视点的唯一方法是使解码器的运行比常规视频解码器快两倍。即使在不同平台上运行的两个独立解码器可能是可用的,两个解码器的运行也需要是常规2D视频解码器的两倍快。当3D显示器所支持的视点数目增加时,情况会变得更糟。当前,存在可以同时显示100个视点的商用显示器,如果所有的视点彼此依赖,则解码器的运行必须快100倍。鉴于此,很明显各视点的并行解码是3D-TV系统的关键需求。提高并行度的一种解决方案是独立地编码每个^f见点。然而,已经认识到,这种同播方法带来编码效率上的显著不利,而这是不期望的。因此,期望开发一种系统和方法,用于改进3D-TV系统以及其他系统的各视点的并行解码,同时不受上述编码效率问题的影响。
发明内容本发明的各种实施方式提供了一种系统和方法,用于支持不同视点的并行解码器实现,即使在视点之间存在依赖关系。这是通过如下实现的利用某些约束来编码视点,使得允许特定视点中的任何宏块仅依赖于其他视点中的宏块的子集的重建值。由于约束是预定义的或者在比特流中信号传送,因此编码器和解码器二者都知道该编码约束,该编码约束包括在另一视点中可以参考哪些MB的有关信息。可以将两个视点间的宏块延迟也信号传送给解码器。延迟可以与其他约束信息同时信号传送。利用该信息,不同视点中宏块的解码可以同时发生,因为其并未参考彼此。如果编码器信号传送编码约束,则可以实现编码效率、并行度以及复杂性之间的某种权衡。利用本发明的实施方式,用于不同视点的编码器和解码器可以并行地运行,从而降低输出图片中包含的延迟。各种实施方式还提供了更为有效的熵编码器,用于使用在此讨论的可并行解码片(PDS)的概念来编码视点之间的运动向量(motionvector)。这是利用以下事实来实现的(1)由于引用区域的限制,PDS布置中的运动向量无法取所有的可能值;以及(2)在PDS中,运动向量的水平分量和垂直分量的统计特性是相互关联的。当结合附图阅读下文详细描述时,本发明的这些以及其他优点和特征以及本发明的操作的组织和方式将变得易见,其中贯穿下文描述的多个附图,相同的元件具有相同的标号。图1是在3D-TV用例中用于图片的两个视点的传统采样预测链的图示;图2是在其中可以实现本发明的各种实施方式的系统的总体视图3是示出了如何实现本发明实施方式的图示,其中两个视点之间有一个宏块的延迟;图4是示出了用于图3中所描绘实现的采样解码过程的图示;图5是按照本发明具体实施方式的滑动去块效应(slidingdeblocking)操作的图示;图6是示出了利用图5描绘的滑动去块效应方法的采样解码过程的图示;值的效果的图示;图8是示出了可以如何利用填充(padding)来解决图7中描绘的亚像素插值问题的图示;图9是示出了可以如何通过本发明各种实施方式的实现来影响编码效率的图示;图IO是可以在本发明的实现中使用的电子设备的透视图11是图10的电子设备的电路的示意图;以及图12是示出了在允许视点的并行解码时运动向量的水平分量和垂直分量的范围的参考区域的图示。具体实施例方式本发明的各种实施方式提供了一种系统和方法,用于支持针对不同视点的并行解码器实现,即使是在视点之间存在依赖关系的情况下。这是通过如下实现的利用某些约束来编码视点,使得允许特定视点中的任何宏块仅依赖于其他视点中的宏块的子集的重建值。由于编码约束是预定义的或者在比特流中信号传送,因此编码器和解码器二者都知道该编码约束,该编码约束包括在另一视点中可以参考哪些MB的有关信息。利用该信息,不同视点中宏块的解码可以同时发生,因为其并未参考彼此。如果编码器将编码约束信号传送,可以实现编码效率、并行度以及复杂性之间的某种权衡。图2示出了用于与本发明一起使用的一般的多媒体通信系统。应当注意,如在此所讨论的,将要解码的比特流可以从实际上位于任意类型的网络中的远程设备接收。而且,比特流可以从本地硬件或者软件接收。还应当理解,尽管在此包含的文字和示例可能特定地描述编码过程,但是本领域技术人员将容易地理解,相同的概念和原理也可以应用于相应的解码过程,反之亦然。如图2所示,数据源100以模拟、未压缩数字、或压缩数字格式或这些格式的任意组合提供源信号。编码器110将源信号编码成已编码媒体比特流。编码器110能够对多于一个的媒体类型(诸如,音频和视频)进行编码,或者可能需要多于一个的编码器110以对源信号的不同媒体类型进行编码。编码器110还可以得到合成产生的输入,诸如图形和文本,或者其能够产生合成媒体的已编码比特流。在下文中,仅考虑对一个媒体类型的一个已编码媒体比特流进行处理,以便简化描述。然而,应当注意,通常实时广播服务包括若干流(通常,至少一个音频、视频和文本字幕流)。还应当注意,系统可以包括很多编码器,但是在下文中,不失一般性地,仅考虑一个编码器110,以简化描述。已编码i某体比特流传输至存储设备120。存储设备120可以包括任何类型的海量存储器,以存储已编码的媒体比特流。存储设备120中已编码媒体比特流的格式可以是初步自包含的比特流格式,或者一个或多个已编码比特流可以封装至容器文件中。某些系统"直播"操作,即,省略存储设备,而直接将已编码媒体比特流从编码器110传输至发送器130。已编码媒体比特流随后传输至发送器130,根据需要,也称为服务器。在传输中使用的格式可以是初步自包含的比特流格式、分组流格式,或者一个或多个已编码媒体比特流可以封装至容器文件中。编码器110、存储设备120和发送器130可以位于同一物理设备中,或者它们可以包括在单独的设备中。编码器IIO和发送器130可以利用直播实时内容进行操作,在该情况下,已编码媒体比特流通常不会永久存储,而是在内容编码器110和/或发送器130中緩存一小段时间,以平滑处理延迟、传输延迟和已编码媒体比特速率的变化。发送器130使用通信协议栈来发送已编码媒体比特流。栈可以包括但不限于实时传输协议(RTP)、用户数据报协议(UDP)和网际协议(IP)。当通信协议栈是面向分组的时,发送器130将已编码媒体比特流封装至分组中。例如,当使用RTP时,发送器130根据RTP净荷格式将已编码媒体比特流封装至RTP分组中。通常,每个媒体类型具有专用RTP净荷格式。再次需要注意,系统可以包含多于一个的发送器130,但是为了简化,以下描述仅考虑一个发送器130。发送器130可以通过通信网络连接至网关140。网关140可以执行不同类型的功能,诸如将根据一个通信协议栈的分组流翻译成另一通信协议栈、合并—以及分流数据流,以及根据下行链路和/或接收机的能力操纵数据流,诸如控制根据主导的下行链路网络条件控制转发的流的比特速率。网关140的示例包括多点会议控制单元(MCU)、电路交换和分组交换视频电话之间的网关、一键通话(PoC)服务器、手持数字视频广播(DVB-H)系统的IP封装器,或者将本地广播传输转发到家庭无线网络的机顶盒。当使用RTP时,网关140被称为RTP混合器,并且作为RTP连接的端点。系统包括一个或者多个接收机150,其通常能够接收、解调已传输的信号,以及将其解封装到已编码的媒体比特流中。已编码的媒体比特流通常进一步由解码器160处理,其输出是一个或者多个未压缩的媒体流。最后,重现器170可以例如通过扬声器或者显示器重现未压缩的媒体流。接收机150、解码器160和重现器170可以处于同一物理设备中,或者它们可以被包含在单独的设备中。根据比特速率、解码复杂度和图片大小的可伸缩性是非均匀的和易出错的环境中期待的性质。期待此性质,以便应对诸如比特速率、显示器分辨率、网络吞吐量和接收设备中计算能力上的约束之类的限制。本发明的通信设备可以使用各种传输技术进行通信,其中各种传输技术包括但不限于,码分多址(CDMA)、全球移动通信系统(GSM)、通用移动通信系统(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议/网际协议(TCP/IP)、短消息传递服务(SMS)、多媒体消息传递服务(MMS)、电子邮件、即时消息传递服务(IMS)、蓝牙、IEEE802.il等。通信设备可以^吏用各种介质进行通信,其中各种介质包括但不限于无线电、红外、激光、线缆连接等。通信设备可以位于运输模式中,运输模式包括但不限于汽车、卡车、出租车、公交车、船、飞机、自行车、摩托车等。对于本发明各种实施方式的实现,考虑图3中描绘的图示是有帮助的。在图3中,视点-0和视点-l中的两个帧要进行解码,并且视点-1使用视点-0帧作为参考。传统上,视点-1的解码只有在视点-0的解码已经完成并且其重建可用之后才能开始。如果一见点-0和#见点-1的解码时间分别是To和^,则由于顺序化过程,总解码时间将是To+^,即使已有的资源具有两个解码器。视点的并行解码可以通过限制视点-1中每个宏块可以使用的参考区域来实现。在此示例中,视点-1中的宏块只能参考视点-0中的如下区域,该区域由相同位置的宏块以及出现在该相同位置的宏块之前的宏块所覆盖。例如,#见点-1中位于位置(2,2)处的宏块不能参考视点-0中的阴影区域。在此特定示例中,用于每个视点的两个解码器可以并行运行,在解码器之间有一个宏块的延迟。图4详细给出了图3中描绘的两个视点的解码过程。针对第一视点和第二视点的解码过程同时开始,如400(对于视点-0)和405(对于视点-l)所示。在视点-O解码器通知视点-l解码器视点-1的MB(O,0)的可用参考区域可在参考存储器中获得之前,视点-1解码器处的MB(0,0)的解码不开始。在^L点-0的MB(O,O)的解码执行的同时,视点-1解码器可以进入WAIT(等待)状态(如415所示),或者执行不需要访问参考区域的解码操作,例如解析比特流。一旦视点-0解码器在410处解码了MB(0,0),并且在412处使已重建的宏块在存储器中准备好,便在425处通知视点-l解码器。一旦被通知,视点-1解码器可以解码MB(0,0),因为其不会参考视点-0中尚不可用的任何区域。(应当注意,如果视点-1的MB(0,0)是帧内编码的,则解码操作可以在视点-1解码器接收到视点-O的MB(O,0)已重建并可用的通知之前开始)。利用该系统,视点-O中的MB(O,1)和—见点-1中的MB(0,O)可以并行解码,如图4中的430所示。仅在视点-1解码器完成了MB(0,0)的解码之后,视点-O解码器利用来自MB(0,1)的重建值更新存储器。视点-O解码器可以等待视点-l解码器的通知(如435所示),或者其可以继续解码随后的宏块,并且将参考存储在临时緩存区中,而不对参考区域进行更新。视点-l解码器关于MB(0,0)的解码过程已经完成的通知在440处表示。继而根据需要针对下一宏块以及后续宏块重复此过程。使用图4中描绘的过程,两个解码器可以并行实现。在这种并行实现中,总解码时间等于To+delay—overhead(延迟开销)+synchronization—overhead(同步开销)在此公式中,ovw/^W是等待初始宏块解码所用的时间。W"cArom'za"ow—oveW^ad是两个解码器在WAIT状态中所用的时间。如果不同视点处的每个宏块的解码需要不同的时间量,则两个解码器需要频繁地彼此等待,这导致了相当量的同步开销。而且,尽管对于某些架构而言解码器之间的同步可能是简单的,但对于某些架构而言这可能相当成问题。因此,每帧具有较少的同步点是有益的,但是这也可能降低并行度。还要注意,如果视点之间的初始延迟较大(^/aj一ovw/^^/大),则由于可用于参考的区域增加,系统的编码效率可能提高。在图4描绘的过程中,仅讨论了两个^见点间的一个MB的延迟。应当注意,可能具有更大的延迟,尽管这将阻碍并行度,但同时增加了编码效率,因为视点-1中的每个宏块可用的参考区域将更大。由此,两个视点之间的宏块延迟可以在比特流中信号传送,而不是预先定义。按照上文讨论的设计约束,可以定义语法元素,乂人而定义每个宏块的可用参考区域。具体地,pds_block_size(PDS块大小)和pds—initial_delay(PDS初始延迟)分别可以用来表示块大小和初始延迟。可用参考区域包含来自宏块列表的重建采样,该宏块使用以下公式给出(-1,j],wherej=(pds一initial,—delay+(■'mb八ddr/pds一block—size))*pds—block—size--.i并行解码器实现可以使用pds—block—size信息来决定其需要多么频繁地在视点之间进行同步。例如,图4所示的采样解码过程在每个宏块处对两个视点进行同步,这意味着pds—block—size是1。解码器使用pdsjnitial—delay来决定在解码可以开始之前需要使多少pds_block(pds—block是由pds—block—size给出其大小的宏块的凄t量)为参考视点可用。例如,在图4所示的示例中,pds—initial—delay是1。下面的语法可以用来实现本发明的一个实施方式<table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table><table>tableseeoriginaldocumentpage21</column></row><table>在该语法中,pds_parameters_present—flag(pds参数存在标志)等于1,表示具有等于i的view_id(:現点id)的片使用pds_parameters(pds参凄史)。长口果pds_parameters_present_flag等于0,则属于等于i的view—id的片不是parallelly—decodable—slice(可并4亍解石马的片)。fixed_pds_for—all—sequence—flag[i]等于1表示属于等于i的view—id的所有片共享相同的pds_parameters。parallely—decodable—slice—flag表示限制帧间预测,从而将未去块效应的参考用于当前片的视点间预测;并且宏块仅包含来自属于其相应available—reference—area(可用参考区域)的多视点参考的采样,其中available—reference—area仅包括来自如下宏块群组的采样,该宏块群组使用如下公式针对每个宏块而定义(-I,j],wherej-(pds—initial—delay十(mbAddr/pds—block—size))*pds—block—size--1pds_block_size—minus1—for—list—0[i〗力口1定义了列表-0中多视点参考i的pds—block—size,单位是宏块的数量。pdsjnitial—delay_for—list—O[i]定义了列表-0中多视点参考i的pds—initial—delay。pds—block—sizeminusl—for—list—l[i]力口1定义了歹寸表画l中多牙见点参考i的pds—block—size。pds—initial—delay—for一list—l[i]定义了列表-1中多视点参考i的pds—initial—delay。尽管如何并行解码操作的基本概念可以利用特定的编码约束来实现,但应当注意,本发明各种实施方式的系统影响了自适应去块效应和亚像素插值的操作。对于自适应去块效应,注意,在H.264/AVC(高级视频编码)标准中,自适应去块效应滤波器用来消除由传输和量化造成的块化赝像(artifact)。去块效应滤波器对跨过边界的边进行操作。如果边界恰好在两个宏块之间,则对边的滤波需要来自相邻宏块的已解码信息。当该滤波过程与本发明的各种实施方式结合使用时,必须对其进行修改。这是由于以下事实在宏块可用于其他视点进行参考的时候,其所有相邻宏块可能尚未解码。在这种情况下,无法对尚未解码的与宏块相邻的边界进行滤波。有多种备选方案可以解决该问题。解决尚未解码的宏块的问题的第一选项涉及将未经滤波的重建用于视点间预测。在该方法中,解码器在执行视点间预测时使用未经滤波的参考,但对于时间预测则使用常规的参考。这消除了访问相邻宏块的需要。该方法在图3中示出。解决尚未解码的宏块的问题的第二选项涉及使用滑动去块效应。在该方法中,在宏块可用作其他视点的参考之前,对除了右侧和底部宏块边界之外的所有边界进行滤波。图5—般地示出了该过程。图6示出了这类解码操作的详细实现。类似图4中描绘的实施方式,针对第一视点和第二视点的解码过程同时开始,如600(对于视点-O)和605(对于视点-l)所示。在开始之后,视点-l解码器在615立即进入WAIT状态。在视点-1解码器在615处于WAIT状态的同时,^f见点-0解码器在610处解码MB(0,0),并且在612处使已重建的宏块在存储器中准备好。在614处,视点-O解码器对整个MB(O,0)进行滤波,其底部和右侧边界除外。一旦滤波完成,在620处通知视点-1解码器。在630处,视点-1解码器解码MB(0,0),同时视点-O解码器解码下一宏块,在此例中是MB(O,1)。在视点-O解码器用来自MB(0,1)的重建值更新存储器之前,其等待视点-1解码器完成对MB(0,0)的解码。该等待在635处表示,并且视点-1解码器关于该过程已经完成的通知在640处示出。继而根据需要针对下一宏块以及后续宏块重复此过程。除上述之外,编码器可以使用经修改的去块效应操作,其中对宏块边界进行滤波,而不使用来自重建的采样之外的相邻宏块的任何已解码信息。这可以在比特流中信号传送给解码器。解决尚未解码的宏块的问题的第三选项涉及进一步限制参考区域。利用该方法,对另一视点中宏块可以参考的区域进一步限制,从而不允许参考在滤波之后可能改变的像素。该方法还可以与上文讨论的滑动去块效应方法结合使用。对于其运动向量具有分数像素精度的块,执行亚像素插值。在H.264/AVC标准中,运动向量可以具有整数、半像素或者四分之一像素精度。半像素采样是通过使用6抽头FIR滤波器获得的,四分之一像素采样是通过双线性滤波获得的,其中双线性滤波使用半像素或者整像素位置的两个最近采样。根据本发明的不同实施方式的亚像素插值的效果可以按照图3中的描绘来理解。在图3中,位置(2,2)处的宏块可能参考视点-1中的区域,其位于可用的区域内(由白色表示),但是仍然需要来自参考帧的不可用区域(表示为参考存储器中的阴影)的像素。图7示出了视点-l的位置(2,2)处宏块的运动向量是(-0.25,-0.25)的情况。在图7中可见,获得参考所需的某些像素尚不可用(即,阴影区域中的像素)。为了解决该问题,可以4吏用多种不同的方法。第一个这样的方法涉及填充(padding)。在该方法中,在将宏块放入参考存储器之后,通过填充扩展底部和右侧边界。需要填充的像素数目取决于插值滤波器的细节,例如滤波器长度。例如,在H.264/AVC中,需要三个像素的填充。图8示出了一般意义上的已填充区域。解决尚不可用像素问题的第二方法涉及进一步限制参考区域。利用此方法,针对分数像素,对另一视点中宏块可以参考的区域进一步限制。由此,来自不可用区域的像素不用于亚像素插值。由于用于视点间预测的参考区域受到约束,对本发明各种实施方式的利用也可能导致编码效率的一定量的下降。在某些相机布置中,该不利可能变得更为明显。例如,考虑如下相机系统是有帮助的,该相机系统包括垂直对齐、但是水平隔开的三个相机,如图9所示。假设视点-0编码为基视点,视点-1帧参考视点-0帧,而视点-2帧参考视点-1帧,如果使用本发明的各种实施方式,视点之间有一个MB的延迟,则视点-2和视点-l的最优匹配块通常落入不可用的参考区域,由此降低了编码效率。该现象可以通过多种方式来解决。第一方法涉及布置视点依赖关系。在此方法中,编码器可以按照用来捕获视点的相机布置来布置视点之间的参考结构。利用此布置,每个视点中的最佳匹配块位于可用参考区域中的机会将更大。在图9描绘的示例中,颠倒参考顺序(即,视点-2作为基视点,视点-1参考视点2,而视点-0参考视点-1)将提高编码效率。用于改进编码效率的第二选项涉及在编码之前修改原始图片。在此方法中,编码器将经过修改的原始图片用于特定视点,并且将修改的细节信号传送给解码器。例如,如果将上述示例中的视点-2水平镜像反射,则视点-2中的块在其他视点中找到其相应最佳匹配的机会将更高,由此提高编码效率。应当理解,使用此方法,不同的相机布置将需要不同的修改。用于改进编码效率的第三选项涉及使用片群组。在此方法中,按照相机布置将每个视点中的帧划分为不同的片群组。由此,在其他视点中找到最优匹配块的机会得以最大化。对于图9中所示的示例,可以构建彼此水平偏移一个或多个宏块的片群组,以改进编码效率。用于改进编码效率的第四选项涉及使用经修改的光栅扫描。利用此方法,改变宏块的编码/解码顺序。对于前面的示例,如果从右上角而不是左上角开始对视点-2宏块进行编码/解码,则找到最佳匹配的才几会将增加,因而提高编码效率。应当注意,利用此方法,不同的相机布置将需要不同的扫描顺序。除上述之外,可以通过使用补充增强信息(SEI)消息语法来支持信号传送。用于H.264/AVC-MVC编码器的输出以及H.264/AVC-MVC解码器的输入的基础单元是网络抽象层(NAL)单元。为了通过面向分组的网络进行传输或者存储到结构化文件中,通常将NAL单元封装到分组或者类似结构中。在不提供成帧结构的传输或者存储环境中,H.264/AVC标准中已经规定了字节流格式。字节流格式通过在每个NAL单元之前附加开始码而将NAL单元彼此隔开。为了避免NAL单元边界的错误检测,编码器必须运行面向字节的开始码竟争阻止(emulationprevention)算法,其在开始码没有出现的情况下向NAL单元净荷添加竟争阻止字节。为了支持面向分组的系统与面向流的系统之间的直接网关操作,总是执行开始码竟争阻止,而不考虑是否使用了字节流格式。SEINAL单元包含一个或多个SEI消息,其并非输出图片的解码所需的,而是在相关过程中进行辅助,诸如图片输出定时、绘制、错误检测、错误消除以及资源预留。H.264/AVC-MVC标准中目前规定了大约20个SEI消息。用户数据SEI消息使得机构和公司能够指定供其自身使用的SEI消息。H.264/AVC标准包含用于所规定SEI消息的语法和语义,但是常规上没有定义用于在接收方处理消息的过程。因此,在编码器创建SEI消息时,其需要遵循H.264/AVC标准,并且符合H.264/AVC-MVC标准的解码器无需针对输出顺序一致性而处理SEI消息。在H.264/AVC中包括SEI消息的语法和语义的原因之一是,允许系统规范(诸如3GPP多媒体规范和DVB规范)对补充信息进行相同的解释,从而进行互操作。意在使系统规范可以在编码和解码二者中要求使用特定的SEI消息,并且可以在系统规范中为应用指定在接收方中处理SEI消息的过程。鉴于此,可以使用SEI消息来实现可并行编码片参数的信号传送。在这种情况下,编码器可能希望对执行视点间预测的图片禁用去块效应滤波器。以下事实来实现的(1)由于参考区域的限制,PDS布置中的运动向量无法取所有可能的值;以及(2)在PDS中,运动向量的水平分量和垂直分量的统计属性是相互关联的。H.264/AVC纟见频编码标准支持两种不同的熵编码布置上下文自适应的可变长编码(CAVLC)以及上下文自适应的二进制算数编码(CABAC)。CAVLC的示例性实现按照各种实施方式提供如下,但是本领域的技术人员将会理解,各种实施方式同样适用于CABAC。在H.264/AVC中,运动向量具有两个分量,即水平分量(MVx)和垂直分量(MVy)。运动向量的每个分量使用预测运动向量分别编码。换言之,首先形成预测,继而针对运动向量的水平分量和垂直分量中的每一个,对预测运动向量与原始运动向量之间的差进行编码。将该差按照其出现的概率(由标准定义)映射至二进制Exp-Golomb码字。例如,下表给出了运动向量差(mvd)以及相关联的Exp-Golomb码字。码字MVD'5在与PDS系统一起使用时,上面给出的布置具有两个缺点。首先,该布置假设运动向量可能指向参考区域中的任何地方(在H.264/AVC标准中定义的限制内)。然而,在PDS中,参考区域是受限的。其次,H.264/AVC标准假设,运动向量的水平分量和垂直分量的统计属性是无关的,因为它们是分别编码的。然而,在PDS系统中的运动向量情况下,这两个分量是相互关联的。这一点在图12中示出,其按照图12中的表示而示出了运动向量的水平分量和垂直分量的范围。在图12中,示出了取决于运动向量的水平分量,运oiocw1Tooooo动向量的垂直分量如何具有不同的范围。具体地,图12示出了第一垂直运动向量范围1200,第二垂直运动向量范围1210,第一水平运动向量范围1220以及第二水平运动向量范围1230。当在水平运动向量之后应用垂直运动向量时,当水平运动向量范围小于或者等于零时,应用第一垂直运动向量范围1200,而当水平运动向量范围大于零时,应用第二垂直运动向量范围1210。类似地,当垂直运动向量是编码的水平运动向量时,则当垂直运动向量范围小于零但是大于-16时,应用第一水平运动向量范围1220,而当垂直运动向量范围小于或者等于-16时,应用第二水平运动向量范围。可以使用各种布置来解决H.264/AVC标准的上述缺点。在第一布置中,可以使用单个码字来编码相应运动向量的两个分量。此外,适应调整。当运动向量的统计特性由于参考区域受限而发生改变时,修改视点之间的运动向量(或者不一致向量)的编码。这提供了优化的编码效率,但是由于针对每个宏块而执行的更新过程,这也具有高复杂性。在另一示例中,运动向量的水平分量和垂直分量可以分别编码,同时,在将运动向量分量映射为二进制码字时,考虑每个分量的可用参考区域。例如,考虑如下情况是有帮助的将要编码图12中标出的宏块1250的运动向量。在这种情况下,可以假设首先对运动向量的水平分量进行编码,此后对垂直分量进行编码(尽管在某些情况下可能期望颠倒这一顺序)。因为在比特流中MVy在MVx之后,无法使用MVy信息来编码MVx。为此,将使用MVx的最大可能范围来将MVx映射为二进制码字。在MVx编码之后,垂直分量向量可取的范围是已知的。例如,如果MVx是正值,则MVy不能在[-16,0]之间取值。使用此范围,将垂直分量映射为二进制码字。运动向量分量到二进制码字的映射基本上包括将由于参考区域约束而不可用的值删除,以及将剩余的可能值在码字列表中向上移动。下面是一个示例,其说明了在CABAC环境中可以如何按照上述实施方式来自适应调整可变长码。在此示例中,假设下面的可变长码表示一组运动向量差,其中下面仅是候选可变长码<table>tableseeoriginaldocumentpage28</column></row><table>在此示例中,还假设由于并行解码限制,运动向量(即,运动向量预测加上运动向量差)只能取特定的值。预测对于编码器和解码器二者都是已知的,因此编码器和解码器二者知道什么值不能构成运动向量差。如果该限制意味着运动向量A、B和C无法使用,则可变长码将变为<table>tableseeoriginaldocumentpage28</column></row><table>作为上述改变的结果,编码值D、E、F和G包括较少的比特。图IO和图11示出了本发明可以在其中实现的一个代表性电子设备12。然而,应当理解,本发明不旨在限于一种特定类型的电子设备。图10和图11的电子设备12包括外壳30、液晶显示器形式的显示器32、小4定盘34、麦克风36、耳机38、电池40、红外端口42、天线44、根据本发明一个实施方式的通用UICC形式的智能卡46、读卡器48、无线接口电路52、编解码器电路54、控制器56以及存储器58。个体电路和元件可以是本领域公知的所有类型。这些组件可以并入实际上在此讨论的任何设备上的设备中。本发明是在方法步骤的一般上下文中描述的,在一个实施方式中,这些方法步骤可以通过程序产品来实现,该计算机程序产品包括在网络环境中由计算机执行的计算机可执行指令,诸如程序代码。计算机可读介质的示例包括各种类型的存储介质,包括但不限于电子设备存储器单元、随机访问存储器(RAM)、只读存储器(ROM)、压缩盘(CD)、数字通用盘(DVD)以及其他内部或者外部存储设备。通常,程序模块包括例程、程序、对象、组件、数据结构等,用于执行具体任务或者实现特定的抽象数据类型。计算机可执行指令、相关数据结构和程序模块代表了用于执行此处公开的方法的步骤的程序代码的示例。这种可执行指令或者相关数据结构的特定序列代表了用于实现在这种步骤中描述的功能的对应动作的示例。本发明的软件和web实现能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现数据库搜索步骤、相关步骤、比较步骤和决策步骤。还应当注意的是,此处以及权利要求书中使用的词语"组件"和"模块"意在包括使用一行或者更多行软件代码的实现和/或硬件实现和/或用于接收手动输入的设备。出于示例和描述的目的,已经给出了本发明实施的前述说明。前述说明并非是穷举性的也并非要将本发明限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本发明的实践中得到各种变形和修改。选择和描述这些实施方式是为了说明本发明的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本发明。这里描述的实施方式的特;f正可以与方法、装置、才莫块、系统和计算机程序产品的所有可能组合合并。权利要求1.一种对来自具有视点间预测关系的多个视点的帧进行解码的方法,包括接收从第一视点拍摄的图片的第一帧的特定宏块,以便解码;对所述特定宏块可以参考从第二视点拍摄的图片的相应第二帧中的哪些宏块的有关信息进行解码;如果允许所述特定宏块参考的宏块已经重建到参考存储器,则解码所述特定宏块。2.如权利要求l的方法,其中从不同的解码器接收通知,所述通知表明允许所述特定宏块参考的宏块已经重建到所述参考存储器。3.如权利要求l的方法,还包括在所述特定宏块的解码完成之后,通知不同的解码器。4.如权利要求l的方法,还包括在解码所述特定宏块之前,使用自适应去块效应滤波器来消除所述第二帧的宏块中的块化赝像,所述第二帧的宏块在解码所述特定宏块之前与所述特定宏块相应。5.如权利要求4的方法,其中没有对所述第二帧中的经滤波宏块的右侧和底部边缘进行滤波。6.如权利要求4的方法,其中所述第二帧的所述相应宏块在未经滤波的情况下用于视点间预测,并且其中所述第二帧的所述相应宏块在经过滤波之后用于时间预测。7.如权利要求4的方法,其中对所述特定宏块可以参考的、所述第二帧的所述相应宏块的区域进行限制。8.如权利要求l的方法,其中在与所述特定宏块相应的所述第二帧的宏块重建之后,通过预定数目的像素来填充所述相应宏块的底部和右侧边沿。9.如权利要求l的方法,其中针对分数像素,对所述特定宏块可以参考的、相应第二帧中的宏块进行限制。10.如权利要求1的方法,其中所述第一帧和第二帧中宏块的解码顺序是从每个帧的左上角移向右下角。11.如权利要求1的方法,其中所述第一帧和第二帧中宏块的解码顺序是从每个帧的右上角移向左下角。12.如权利要求1的方法,其中所述第一帧和第二帧中宏块的解码顺序沿着任意方向。13.如权利要求12的方法,其中所述第一帧和第二帧中宏块的解码顺序在比特流中信号传送。14.如权利要求1的方法,其中基于负责所述第一—见点和第二视点的第一相机和第二相机的布置,将所述第一帕和第二帧划分为片群组。15.如权利要求l的方法,其中所述特定宏块可以参考的、所述相应第二帧中的宏块至少部分地基于负责所述第一视点和第二视点的第一相机和第二相机的布置。16.如权利要求1的方法,其中所述第一帧和第二帧中的至少一个从编码器先前修改过的图片取得。17.如权利要求1的方法,其中所述信息包括在从不同的解码器接收到通知之前重建到所述参考存储器的宏块的数目。18.如权利要求1的方法,其中所述信息包括在开始解码过程之前要等待的通知的数目。19.如权利要求1的方法,其中所述接收的信息是在顺序参数设置级别信号传送的。20.如权利要求1的方法,其中所述接收的信息是在图片参数设置级别信号传送的。21.如权利要求1的方法,其中所述接收的信息是在片报头级别信号传送的。22.如权利要求1的方法,其中所述接收的信息是在宏块报头级别信号传送的。23.如权利要求1的方法,其中还对已编码的运动向量信息进行接收和解码,并且其中当运动向量的统计特性由于参考区域受限而改变时,修改所述第一视点与所述第二视点之间的运动向量的编码。24.如权利要求23的方法,其中使用单个码字来编码所述第一视点与所述第二视点之间的运动向量的两个分量,并且其中从运动向量到码字的映射在每个宏块处根据参考区域而进行自适应调整。25.如权利要求23的方法,其中每个运动向量的水平分量和垂直分量独立地编码,并且其中在将每个运动向量分量映射为二进制码字时,考虑所述水平分量和垂直分量的可用参考区域。26.—种计算机程序产品,包含在计算机可读介质中,用于对来自具有视点间预测关系的多个视点的帧进行解码,该计算机程序产品包括计算机代码,用于接收从第一视点拍摄的图片的第一帧的特定宏块,以便解码;计算机代码,用于对所述特定宏块可以参考从第二视点拍摄的图片的相应第二帧中的哪些宏块的有关信息进行解码;计算机代码,用于在允许所述特定宏块参考的宏块已经重建到参考存储器的情况下,解码所述特定宏块。27.—种装置,包括处理器;以及存储器单元,其可通信地连接至所述处理器,并且包括计算机代码,用于接收从第一视点拍摄的图片的第一帧的特定宏块,以便解码;计算机代码,用于对所述特定宏块可以参考从第二视点拍摄的图片的相应第二帧中的哪些宏块的有关信息进行解码;计算机代码,用于在允许所述特定宏块参考的宏块已经重建到参考存储器的情况下,解码所述特定宏块。28.如权利要求27的装置,其中从不同的解码器接收通知,所述通知表明允许所述特定宏块参考的宏块已经重建到所述参考存储器。29.如权利要求27的装置,还包括在所述特定宏块的解码完成之后,通知不同的解码器。30.如权利要求27的装置,还包括在解码所述特定宏块之前,使用自适应去块效应滤波器来消除所述第二帧的宏块中的块化赝像,所述第二帧的宏块在解码所述特定宏块之前与所述特定宏块相应。31.如权利要求30的装置,其中没有对所述第二帧中的经滤波宏块的右侧和底部边缘进行滤波。32.如权利要求30的装置,其中所述第二帧的所述相应宏块在未经滤波的情况下用于视,泉间预测,并且其中所述第二帧的所述相应宏块在经过滤波之后用于时间预观'J。33.如权利要求30的装置,其中对所述特定宏块可以参考的、所述第二帧的所述相应宏块的区域进行限制。34.如权利要求27的装置,其中在与所述特定宏块相应的所述第二帧的宏块重建之后,通过预定数目的像素来填充所述相应宏块的底部和右侧边沿。35.如权利要求27的装置,其中针对分数像素,对所述特定宏块可以参考的、相应第二帧中的宏块进行限制。36.如权利要求27的装置,其中所述第一帧和第二帧中宏块的解码顺序是从每个帧的左上角移向右下角。37.如权利要求27的装置,其中所述第一帧和第二帧中宏块的解码顺序是从每个帧的右上角移向左下角。38.如权利要求27的装置,其中所述第一帧和第二帧中宏块的解码顺序沿着任意方向。39.如权利要求38的装置,其中所述第一帧和第二帧中宏块的解码顺序在比特流中信号传送。40.如权利要求27的装置,其中基于负责所述第一视点和第二视点的第一相机和第二相机的布置,将所述第一帧和第二帧划分为片群组。41.如权利要求27的装置,其中所述特定宏块可以参考的、所述相应第二帧中的宏块至少部分地基于负责所述第一^L点和第二视点的第一相机和第二相机的布置。42.如权利要求27的装置,其中所述第一帧和第二帧中的至少一个从编码器先前修改过的图片取得。43.如权利要求27的装置,其中所述信息包括在从不同的解码器接收到通知之前重建到所述参考存储器的宏块的数目。44.如权利要求27的装置,其中所述信息包括在开始解码过程之前要等待的通知的数目。45.如权利要求27的装置,其中所述接收的信息是在顺序参数设置级别信号传送的。46.如权利要求27的装置,其中所述接收的信息是在图片参数设置级别信号传送的。47.如权利要求27的装置,其中所述接收的信息是在片报头级别信号传送的。48.如权利要求27的装置,其中所述接收的信息是在宏块报头级别信号传送的。49.如权利要求27的装置,其中还对已编码的运动向量信息进行接收和解码,并且其中当运动向量的统计特性由于参考区域受限而改变时,修改所述第一视点与所述第二视点之间的运动向量的编码。50.如权利要求49的装置,其中使用单个码字来编码所述第一视点与所述第二视点之间的运动向量的两个分量,并且其中从运动向量到码字的映射在每个宏块处根据参考区域而进行自适应调整。51.如权利要求49的装置,其中每个运动向量的水平分量和垂直分量单独编码,并且其中在将每个运动向量分量映射为二进制码字时,考虑所述水平分量和垂直分量的可用参考区域。52.—种对来自具有视点间预测关系的多个视点的帧进行编码的方法,包4舌将从第一视点拍摄的图片的第一帧的第一多个宏块编码到比特流中;将从第二视点拍摄的图片的第二帧的第二多个宏块编码到比特流中,所述第二帧的至少一部分参考所述第一帧的至少一部分;以及针对所述第二帧中的每个宏块,在所述比特流中信号传送指示,所述指示表明可以参考所述第一帧中的所述多个宏块中的哪些宏块。53.如权利要求52的方法,其中所述信号传送发生在顺序参数设置级别。54.如权利要求52的方法,其中所述信号传送发生在图片参数设置级别。55.如权利要求52的方法,其中所述信号传送发生在片报头级别。56.如权利要求52的方法,其中所述信号传送发生在宏块报头级别。57.如权利要求52的方法,其中所述第二帧中的特定宏块可以参考的、所述第一帧中的宏块至少部分地基于负责所述第一视点和第二视点的第一相机和第二相机的布置。58.如权利要求52的方法,其中对于分数像素,对所述第二帧中的特定宏块可以参考的、所述第一帧中的宏块的区域进行限制。59.如权利要求52的方法,其中所述第一帧和第二帧中宏块的编码顺序是从每个帧的左上角移向右下角。60.如权利要求52的方法,其中所述第一帧和第二帧中宏块的编码顺序是从每个帧的右上角移向左下角。61.如权利要求52的方法,其中所述指示包括在传输通知之前要重建到所述参考存储器的宏块的数目,其中所述通知指明所述第二多个宏块中至少一个宏块的解码可以开始。62.如权利要求52的方法,其中所述指示包括在所述第二多个宏块中至少一个宏块的解码可以开始之前要等待的通知的数目。63.如权利要求52的方法,其中所述第一帧和第二帧中宏块的解码顺序在所述比特流中信号传送。64.如权利要求52的方法,其中还将已编码的运动向量信息编码到所述比特流中,并且其中当运动向量的统计特性由于参考区域受限而改变时,修改所述第一视点与所述第二视点之间的运动向量的编码。65.如权利要求64的方法,其中使用单个码字来编码所述第一视点与所述第二视点之间的运动向量的两个分量,并且其中从运动向量到码字的映射在每个宏块处根据参考区域进行自适应调整。66.如权利要求64的方法,其中每个运动向量的水平分量和垂直分量独立地编码,并且其中在将每个运动向量分量映射为二进制码字时,考虑所述水平分量和垂直分量的可用参考区域。67.—种计算机程序产品,包含在计算机可读介质中,用于对来自具有视点间预测关系的多个视点的帧进行编码,该计算机程序产品包括计算机代码,用于将从第一视点拍摄的图片的第一帧的第一多个宏块编码到比特流中;计算机代码,用于将从第二视点拍摄的图片的第二帧的第二多个宏块编码到比特流中,所述第二帧的至少一部分参考所述第一帧的至少一部分;以及计算机代码,用于针对所述第二帧中的每个宏块,在所述比特流中信号传送指示,所述指示表明可以参考所述第一帧中的所述多个宏块中的哪些宏块。68.—种编码装置,包括处理器;以及存储器单元,其可通信地连接至所述处理器,并且包括计算机代码,用于将从第一视点拍摄的图片的第一帧的第一多个宏块编码到比特流中;计算机代码,用于将从第二视点拍摄的图片的第二帧的第二多个宏块编码到比特流中,所述第二帧的至少一部分参考所述第一帧的至少一部分;以及计算机代码,用于针对所述第二帧中的每个宏块,在所述比特流中信号传送指示,所述指示表明可以参考所述第一帧中的所述多个宏块中的哪些宏块。69.如权利要求68的装置,其中所述信号传送发生在顺序参数设置级别。70.如权利要求68的装置,其中所述信号传送发生在图片参数设置级别。71.如权利要求68的装置,其中所述信号传送发生在片报头级别。72.如权利要求68的装置,其中所述信号传送发生在宏块报头级别。73.如权利要求68的装置,其中所述第二帧中的特定宏块可以参考的、所述第一帧中的宏块至少部分地基于负责所述第一视点和第二视点的第一相机和第二相机的布置。74.如权利要求68的装置,其中对于分数像素,对所述第二帧中的特定宏块可以参考的、所述第一帧中的宏块的区域进行限制。75.如权利要求68的装置,其中所述第一帧和第二帧中宏块的编码顺序是从每个帧的左上角移向右下角。76.如权利要求68的装置,其中所述第一帧和第二帧中宏块的编码顺序是从每个帧的右上角移向左下角。77.如权利要求68的方法,其中所述指示包括在传输通知之前要重建到所述参考存储器的宏块的数目,其中所述通知指明所述第二多个宏块中至少一个宏块的解码可以开始。78.如权利要求68的方法,其中所述指示包括在所述第二多个宏块中至少一个宏块的解码可以开始之前要等待的通知的数目。79.如权利要求68的方法,其中所述第一帧和第二帧中宏块的解码顺序在所述比特流中信号传送。80.如权利要求68的方法,其中还将已编码的运动向量信息编码到所述比特流中,并且其中当运动向量的统计特性由于参考区域受限而改变时,修改所述第一视点与所述第二视点之间的运动向量的编码。81.如权利要求80的方法,其中使用单个码字来编码所述第一视点与所述第二视点之间的运动向量的两个分量,并且其中从运动向量到码字的映射在每个宏块处根据参考区域进行自适应调整。82.如权利要求80的方法,其中每个运动向量的水平分量和垂直分量独立地编码,并且其中在将每个运动向量分量映射为二进制码字时,考虑所述水平分量和垂直分量的可用参考区域。全文摘要一种系统和方法,用于即使在视点之间存在依赖关系时也支持针对不同视点的并行解码器实现。在本发明的各种实施方式中,将片是使用某些约束而编码的信息信号传送给解码器,使得片的并行解码是可能的。该信号传送可以在顺序参数设置级别执行,或者其可以在图片参数设置级别、片报头级别或者宏块报头级别执行。而且,在各种实施方式中,各种视点之间的延迟在与约束信息相同的位置处也信号传送给解码器。还可以使用各种算法来改进系统的编码效率。文档编号H04N7/26GK101627634SQ200780044505公开日2010年1月13日申请日期2007年10月15日优先权日2006年10月16日发明者J·莱纳玛,K·宇居尔,M·安尼克塞拉申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1