视频编码及解码方法、装置及系统与流程

文档序号:13771596阅读:183来源:国知局
本发明涉及图像处理技术,尤其涉及一种视频编码及解码方法、装置和系统。
背景技术
:3DTV(Three-DimensionalTelevision,立体电视)是一种最常见的立体电视的技术。它将左右两个独立的视图显示在一个屏幕上,左右眼分别接收不同的视图,以实现3D立体的效果。目前,服务提供商在提供3DTV的服务时,希望尽可能的利用原来的2DTV(Two-DimensionalTelevision,平面电视)的编码工具和传输设备,以节省视频制作成本和传输设备成本。为了实现上述需求,帧封装(framepacking)3DTV技术将左右两个视图拼成一帧图像,然后用2D编码器和传输设备进行编码和传输,在编码后的码流中添加了两个视图如何拼接的消息,或者添加了直接指示两个视图在一帧中各自位置信息的消息,解码器解码后,根据上述的消息输出两个视图。采用帧封装3DTV技术的视图拼接类型有多种,图1示例性的给出左右型和上下型两种拼接类型。在一种拼接类型中,如果根据翻转类型的不同也会有不同的拼接情形。翻转类型是指左右型视图的排列顺序是否翻转,或者上下型视图的排列数据是否翻转。图1中展示了不同拼接类型和翻转类型组成的不同图像。现有的各种不同类型的解码器均由两大主要部分构成:解码模块和局部存储器。局部存储器用于存储解码前的经过编码的图片,以及解码后的图片,这些解码后的图片需要作后续图片的解码参考帧或者还未到输出时间。解码器需要为局部存储器分配足够的存储资源,解码模块则需要消耗解码器的计算资源。需要传输的视频经过编码后形成码流,每个码流中都传输了码流的档次(profile)和级别(level)信息。profile表示编码器在视频编码时使用了哪些编码工具(例如:在mainprofile中像素的位深度只能是8位,图片参数集标识PPSid不能超过63,tile编码不启用等等,但在highprofile中均无这些限制),解码器如果不支持其中的某个编码工具则无法解码。level表示解码器解码时需要的计算能力和存储资源。例如,当前hevcdraft定义了level4和level4.1分别表示符合这两个标准的解码器在解码分辨率为1920*1080的高清码流时能达到32帧/s和64帧/s,但仅符合level4以下标准的解码器则无法解码分辨率为1920*1080的高清码流。在实践应用中,如果解码器接收的是采用帧封装3DTV技术编码的3D视频码流,而连接的是2D显示设备时,则图片被解码器解码后只取出两个视图中的一个,再输出给2D显示设备,见图2所示。采用该现有技术的方案,由于编码或解码3D视频码流的Profile及Level要求相对于编码或解码2D视频码流的Profile和Level要高,因此需要更高级别的解码器对3D视频码流进行解码后输出给2D显示设备。此外,对于2D的显示设备,由于不需要被2D显示设备显示的图片也需要被解码,浪费解码器的计算和存储资源。技术实现要素:有鉴于此,为解决上述浪费解码器或编码器的计算和存储资源的问题。本发本发明实施方式采用如下技术方案:一种视频编码方法,该视频由图片序列组成,该方法包括:根据该视频对应的配置文件,确定待编码图片中的可独立解码视图;将该图片划分成至少两个分块(tile),其中覆盖可独立解码视图的一个或多个tile对应的区域为可独立解码区域;生成与该图片对应的辅助消息,该辅助消息中包含该可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块标识(tileid)组成;以及编码该图片包含的所有tile,以至形成编码后的视频码流,该编码后的视频码流中包括该辅助消息。一种视频解码方法,包括:接收视频码流,该视频码流包括待解码的视频和辅助消息,该待解码的视频由待解码的图片序列组成;获取待解码图片;根据该辅助消息,获得该待解码图片的可独立解码区域的可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块(tile)的分块标识(tileid)组成;以及根据可独立解码区域位置标识获得该待解码图片的可独立解码区域,解码该可独立解码区域。一种视频编码器,所述视频由图片序列组成,包括:可独立解码视图确认单元,用于根据该视频对应的配置文件,确定待编码图片中的可独立解码视图;分块划分单元,用于将该图片划分成至少两个分块(tile),其中覆盖可独立解码视图的一个或多个tile对应的区域为可独立解码区域;辅助消息生成单元,用于生成与该图片对应的辅助消息,该辅助消息中包含该可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块标识(tileid)组成;以及执行编码单元,用于编码该图片包含的所有tile,以至形成编码后的视频码流,该编码后的视频码流中包括该辅助消息。可选的,该执行编码单元进一步包括:判断单元,用于判断当前待编码tile是否为可独立解码区域内的tile;如果是,设置已编码图片的可独立解码区域为当前tile的帧间参考候选区域;如果不是,设置已编码图片的整个图片区域为当前tile的帧间参考候选区域;当采用帧间算法编码时,根据上述待编码tile对应的帧间参考候选区域选择最优参考区域。一种视频解码器,包括:接收单元,用于接收视频码流,该视频码流包括待解码的视频和辅助消息,该待解码的视频由待解码的图片序列组成;以及执行解码单元,用于获取待解码图片;根据该辅助消息,获得该待解码图片的可独立解码区域的可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块(tile)的分块标识(tileid)组成;以及根据可独立解码区域位置标识获得该待解码图片的可独立解码区域,解码该可独立解码区域。一种编码器,用于编码视频,所述视频由图片序列组成,包括:一个或多个处理器;一个或多个存储器;一个或多个程序,其中,该一个或多个程序存储于该一个或多个存储器中,并且,该一个或多个程序用于被该一个或多个处理器执行,该一个或多个程序包括:指令,用于根据该视频对应的配置文件,确定待编码图片中的可独立解码视图;指令,用于将该图片划分成至少两个分块(tile),其中覆盖可独立解码视图的一个或多个tile对应的区域为可独立解码区域;指令,用于生成与该图片对应的辅助消息,该辅助消息中包含该可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块标识(tileid)组成;以及指令,用于编码该图片包含的所有tile,以致形成编码后的视频码流,该编码后的视频码流中包括该辅助消息。51、如权利要求50该的编码器,其特征在于,该辅助消息进一步包括如下信息之一:可独立解码区域标识、解码该可独立解码区域的裁减(cropping)信息、解码可独立解码区域的档次(profile)信息、以及解码可独立解码区域的级别(level)信息。一种解码器,包括:一个或多个处理器;一个或多个存储器;一个或多个程序,其中,该一个或多个程序存储于该一个或多个存储器中,并且,该一个或多个程序用于被该一个或多个处理器执行,该一个或多个程序包括:指令,用于接收视频码流,该视频码流包括待解码的视频和辅助消息,该待解码的视频由待解码的图片序列组成;指令,用于获取待解码图片;指令,用于根据该辅助消息,获得该待解码图片的可独立解码区域的可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块(tile)的分块标识(tileid)组成;以及指令,用于根据可独立解码区域位置标识获得该待解码图片的可独立解码区域,解码该可独立解码区域。一种编码器,设置于处理视频的源装置中,用于编码视频,所示视频由图片序列组成,包括:一个或多个电路,用于根据该视频对应的配置文件,确定待编码图片中的可独立解码视图;将该图片划分成至少两个分块(tile),其中覆盖可独立解码视图的一个或多个tile对应的区域为可独立解码区域;生成与该图片对应的辅助消息,该辅助消息中包含该可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块标识(tileid)组成;以及,编码该图片包含的所有tile,以致形成编码后的视频码流,该编码后的视频码流中包括该辅助消息。一种解码器,设置于处理视频的接收装置中,包括:一个或多个电路,用于接收视频码流,该视频码流包括待解码的视频和辅助消息,该待解码的视频由待解码的图片序列组成;获取待解码图片;根据该辅助消息,获得该待解码图片的可独立解码区域的可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块(tile)的分块标识(tileid)组成;根据可独立解码区域位置标识获得该待解码图片的可独立解码区域,解码该可独立解码区域。一种计算机可读存储介质,该计算机可读存储介质存储若干指令,当该若干执行被设备执行时,将触发该设备执行如下操作:根据视频对应的配置文件,确定所述视频中待编码图片中的可独立解码视图;将该图片划分成至少两个分块(tile),其中覆盖可独立解码视图的一个或多个tile对应的区域为可独立解码区域;生成与该图片对应的辅助消息,该辅助消息中包含该可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块标识(tileid)组成;编码该图片包含的所有tile,以致形成编码后的视频码流,该编码后的视频码流中包括该辅助消息。一种计算机可读存储介质,该计算机可读存储介质存储若干指令,当该若干执行被设备执行时,将触发该设备执行如下操作:接收视频码流,该视频码流包括待解码的视频和辅助消息,该待解码的视频由待解码的图片序列组成;获取待解码图片;根据该辅助消息,获得该待解码图片的可独立解码区域的可独立解码区域位置标识,该可独立解码区域位置标识由一个或多个分块(tile)的分块标识(tileid)组成;以及根据可独立解码区域位置标识获得该待解码图片的可独立解码区域,解码该可独立解码区域。如上述的各种实施方式,可选地,该辅助消息还可以包括可独立解码区域标识,该可独立解码区域标识用以标识该图片是否包含可独立解码区域。如上述的各种实施方式,可选地,该辅助消息进一步包括解码该可独立解码区域的裁减(cropping)信息,该cropping信息由该可独立解码视图相对于可独立解码区域的上、下、左或右边界的横坐标或纵坐标组成。如上述的各种实施方式,可选地,该辅助消息进一步包括解码该可独立解码区域的档次(profile)信息,该profile信息用以标识该可独立解码区域中的编码工具集。如上述的各种实施方式,可选地,该辅助消息进一步包括解码该可独立解码区域的级别(level)信息,该level信息用以标识解码器需要满足的level信息,该level信息根据该可独立解码区域占该图片的比例计算得到。如上述的各种编码实施方式,可选地,编码待编码图片包含的所有tile的步骤还包括:判断当前待编码tile是否为可独立解码区域内的tile;如果是,设置已编码图片的可独立解码区域为当前tile的帧间参考候选区域;如果不是,设置已编码图片的整个图片区域为当前tile的帧间参考候选区域;当采用帧间算法编码时,根据上述待编码tile对应的帧间参考候选区域选择最优参考区域。如上述的各种实施方式,可选地,该图片序列包括不同拼接类型和翻转类型的图片;该配置文件存储该图片序列中每帧图片的拼接类型和翻转类型,以及不同拼接类型和翻转类型图片对应的可独立解码视图。如上述的各种实施方式,可选地,该辅助消息中还包括不同拼接类型和翻转类型图片对应的可独立解码区域位置标识。如上述的各种实施方式,可选地,该辅助消息中还包括不同拼接类型和翻转类型图片对应的解码该可独立解码区域的cropping信息。如上述的各种解码实施方式,可选地,还包括:根据辅助消息中的cropping信息,裁减可独立解码区域得到可独立解码视图。如上述的各种实施方式,可选地,该辅助消息中还包括不同拼接类型和翻转类型图片对应的解码该可独立解码区域的profile信息。如上述的各种实施方式,可选地,该辅助消息中还包括不同拼接类型和翻转类型图片对应的解码该可独立解码区域的level信息。如上述的各种实施方式,可选地,该辅助消息由辅助增强信息(SupplementalEnhancementInformation,SEI)承载。如上述的各种实施方式,可选地,该辅助消息由序列参数集(SequenceParameterSet,SPS)承载。一种视频编码及解码的系统,由如一上各种实施方式提供的编码器与一如上各种实施方式提供的解码组成。一种视频码流,其特征在于,包括:待解码的视频和辅助消息,所述待解码的视频由待解码的图片序列组成;所述辅助消息包括指示所述图片系列的可独立解码区域的可独立解码区域位置标识,所述可独立解码区域位置标识由一个或多个分块(tile)的分块标识(tileid)组成。对于上述实施方式的技术效果分析如下:采用上述编码实施方式,在编码后的码流中添加了辅助消息,该辅助消息中的Profile和Level信息仅针对可独立解码区域形成的子码流,降低了对解码器性能的要求。采用上述解码实施方式,解码器可以根据辅助消息只取出图片中的可独立解码区域进行解码,即仅对可独立解码区域进行解码,降低了对解码器性能的要求,并且节约了解码器的计算和存储资源。此外,对应可独立编码区域子码流的profile和level要求,通常会减低对解码器的性能和存储要求,所以初始化解码器后可节省解码器解码时间和电力消耗,节省解码器存储需求。如果解码器不满足原始视频码流的profile和level要求,而满足对应可独立编码区域子码流的profile和level要求,则提高了解码器对分辨率或码率高需求的兼容2D显示的3D视频码流的支持。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中采用帧封装3DTV技术的视频码流的视图拼接类型示意图;图2为现有技术中采用帧封装3DTV技术的视频码流输出给2D显示设备的处理过程示意图;图3为现有技术中待编码图片的结构示意图;图4为本发明实施例提供的一种视频编码及解码的系统架构图;图5为本发明实施例提供的一种编码器的硬件结构图;图6为本发明实施例提供的一种解码器的硬件结构图;图7为本发明实施例提供的一种编码器的功能模块图;图8为本发明实施例提供的一种解码器的功能模块图;图9为本发明实施例提供的一种编码器的硬件结构图;图10为本发明实施例提供的一种视频编码方法流程图;图11为图10所示方法流程中具体编码一帧图片的方法流程图;图12为本发明实施方式提供的一种视频解码方法流程图;图13为本发明实施方式提供的又一种视频编码方法流程图;图14为图13所示方法流程中具体编码一帧图片的方法流程图;图15为本发明实施方式提供的又一种解码方法流程图;图16为本发明实施方式提供的再一种视频编码方法流程图;图17为图16所示方法流程中具体编码一帧图片的方法流程图;图18为本发明实施方式提供的再一种解码方法流程图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。下面先介绍理解本发明方案的基本概念:最大编码单元(largestcodingunit,LCU):高效率视频编码(highefficiencyvideocoding,HEVC)技术中最小的图片划分单位,如图3中的小方格。LCU可以是一个64*64像素的方块。HEVC编码器在编码一帧图片之前,先要将图片分成以LCU为单位的栅格。编码单元(codingunit,CU):编码器根据图片纹理细节的多少动态决定最优的编码单元的划分,一个LCU可以被划分成一个或多个编码单元,编码和解码都是以CU为单位分别进行的。分块(tile):对图片的一种更高层的划分方法,将一个图片划分成m行n列,其中每一个划分块称为Tile。如图3中将图片划分成了1行3列。Tile的行和列都是以LCU为最小单位,即一个LCU不能同时属于两个tile。当tile的划分确定之后,编码器按照先从左到右,再从上到下的顺序分配分块标识(tileid)。一般tile的大小划分是根据图片对应的配置文件进行划分的。配置文件中一般存放编码器编码过程中所需要预先确定的输入参数,例如编码工具、编码限制、待编码图片的属性等等。独立分块(independenttile):tile的一种类型,在帧内预测时,independenttile中的CU之间不可相互参考。依附分块(dependenttile):tile的一种类型,在帧内预测时,dependenttile中的CU可以参考independenttile中的CU。HEVC的编码器以LCU为最小单位进行编码,如果一个图片的宽和高不满足LCU的整数倍,需要补齐再编码,如图3中的带斜线阴影部分的LCU为图片区域,空白部分的LCU为补齐部分,这被称为LCU对齐。当解码器完成解码输出视频流之前,需要将先前补充的LCU部分裁剪之后再输出,这被称为裁减(cropping)。如图3中,将每一个LCU按先从左到右,再从上到下的顺序,从0开始依次赋以一个地址,称为LCU地址;再根据tile的划分,可以计算任意一个LCU地址属于哪个Tile,即可以建立一个LCU地址到Tileid的查找表。通常一段待编码的视频可以看作为一个图片序列,经过编码后形成视频码流,该视频码流中包括经过编码的图片序列和解码图片所需要的参数集。其中,一个访问单元(accessunit,AU)包含一帧经过编码的图片及解码图片所需要的参数集,或者一个AU仅包含一帧经过编码的图片。在解码图片的参数集中,视频可用性信息(videousabilityinformation,VUI)参数结构中定义了1位的标识符tile_splittable_flag,表示码流中的tile是满足如下特性的:1.Tile的划分对于图片序列中的每一个图片都维持不变;2.序列中不同帧之间只有相同id的tile之间可以作预测参考;3.每个tile单独作环路滤波,一个完整的图片由若干CU解码后重组而成,图片中的CU可能由不同参考帧的不同部分预测而来,这个预测解码得到的图片可能与原图存在误差,这导致了相邻CU的边界处存在不连续,环路滤波是一种为了消除这种不连续的针对整个图片的滤波操作。如图4所示,为实现本发明实施例提供的视频编码及解码方法的系统架构图。源装置100是网络侧视频头端设备,包含用以在编码之前和之后存储视频(即:图片序列)的视频存储器101,用以编码图片序列的编码器102,以及用以将编号后的码流传输到另一装置的发射器103组成。源装置100还可以包含视频俘获装置,例如:摄影机,以俘获视频且将所俘获的视频存储在视频存储器101中,还可以包括其他元件,例如:帧内编码器元件、各种滤波器等。视频存储器101通常包括较大的存储空间。举例来说,视频存储器101可包括动态随机存储器(DRAM)或FLASH存储器,在其他实施例中,视频存储器101可包括非易失性存储器或任何其他数据存储装置。编码器102可以是执行视频编码设备的一部分。作为一个特定实施例,编码器可包括用于视频编解码的芯片组,包含硬件、软件、固件、处理器或数字信号处理(DSP)的某种组合。发射器103通过有线网络、无线网络等方式将视频码流做信号调制后发往接收端。接收装置200是用户侧终端设备,包含用以接收经过编码的视频码流的接收器203,用以解码视频码流的解码器202,以及向终端用户输出解码后视频的显示装置201,例如:LED电视机。接收装置200还可以包括其他元件,例如:调制解调器、信号放大器、存储器等。解码器202可以是执行视频解码设备的一部分。作为一个特定实施例,解码器可包括用于视频编解码的芯片组,包含硬件、软件、固件、处理器或数字信号处理(DSP)的某种组合。显示装置200可以为2D显示设备,或同时兼容2D或3D的显示设备。例如显示器、电视和投影仪等等。如图5所示,为图4中所示编码器102进一步细化的硬件结构图。编码器102包含缓存器1021和处理器1022。所述缓存器1021包含相对于视频存储器101来说较小且较快的存储空间。举例来说,缓存器1021可包括同步随机存取存储器(SRAM)。缓存器1021可包括“芯片上”存储器,其与编码器102的其他组件集成,以在处理器1022密集型编码过程中提供非常快的数据存取。在编码给定图片序列期间,待编码的图片序列可以依次从视频存储器101加载到缓存器1021。此外,缓存器1021还用于存储待编码视频的配置文件,以及用于执行特定编码算法的软件程序等。部分情况下,缓存器1021还用于存储已完成编码的图片,该图片还未到发送时间或者用于给编码下一帧图片提供参考。在其它实施例中,具备存储功能的存储器均可以用作该缓存器1021。处理器1022从缓存器1021获取待编码的图片,并对图片进行编码,直到视频中包含的图片序列均被编码。如图6所示,为图4中所示解码器202进一步细化的硬件结构图。解码器202包含缓存器2021和处理器2022。所述缓存器2021为较小且较快的存储空间。举例来说,缓存器2021可包括同步随机存取存储器(SRAM)。缓存器2021可包括“芯片上”存储器,其与解码器202的其他组件集成,以在处理器2022密集型编码过程中提供非常快的数据存取。在解码给定图片序列期间,待解码的图片序列可以加载到缓存器2021,此外,缓存器2021还存储用于执行特定解码算法的软件程序等。并且,缓存器2021还可用于存储已完成解码,但还未到显示时间或者需要作为后续图片的解码参考帧的图片。在其它实施例中,具备存储功能的存储器均可以用作该缓存器2021。处理器2022从缓存器2021获取待解码的图片,并对图片进行解码,直到视频码流包含的图片序列均被解码。在本发明提供的实施例中,编码器102进行编码的过程中,在编码后的码流中添加辅助消息,例如:放在辅助增强信息(SupplementalEnhancementInformation,SEI)或序列参数集(SequenceParameterSet,SPS)中,以帮助解码器202解码。首先,辅助消息中可添加可独立解码区域标识用于标识编码后的码流中存在可独立解码区域。3D视频码流中每帧图片最终被2D显示设备显示的视图部分为可独立解码视图;与tile划分对应的,覆盖可独立解码视图的区域为可独立解码区域。此外,辅助消息本身也可认为是一种可独立解码标识,编码后的视频码流中若包含辅助消息,则认为码流中存在可独立解码区域;否则,不存在可独立解码区域。解码器202取出编码后视频码流(即:图片序列)中的每个图片的可独立解码区域,然后进行正常解码。本发明实施例的编码器102在确定可独立解码区域时,需要保证可独立解码区域的特性如下:在拼接类型和翻转类型相同的每帧图片之间,可独立解码区域的位置和大小保持不变;可独立解码区域内的CU从相同的拼接类型和翻转类型图片的可独立解码区域内选取帧间预测的参考图片块;可独立解码区域内单独作环路滤波。辅助消息中还可以包括如下信息:可独立解码区域位置标识、可独立解码区域输出显示时的cropping信息、可独立解码区域内的子图片所组成的子图片序列(即:子码流)的profile和level信息。作为可选的实施例,图5所示的编码器102的缓存器1021可通过如图7所示的存储单元1023实现;此外,处理器1022可通过如图7所示的可独立解码视图确认单元1024、分块划分单元1025、辅助消息生成单元1026,以及执行编码单元1027实现。做为可选的实施例,图5所示的编码器102可执行如图10、图11、图13、图14、图16以及图17所提供的编码方法。作为可选的实施例,图6所示的解码器202的缓存器2021可通过如图8所示的存储单元单元2023实现;此外,处理器2022可通过如图8所示的接收单元2024单元和执行解码单元2025实现。图6所示的解码器102可执行如图12、图15和图18所提供的解码方法。如图7所示,为本发明实施例提供的一种编码器的功能模块组成示意图。编码器102包括:存储单元1023、可独立解码视图确认单元1024、分块划分单元1025、辅助消息生成单元1026和执行编码单元1027。存储单元1023,用于存储所述视频的配置文件;可独立解码视图确认单元1024,用于根据所述视频对应的配置文件,确定待编码图片中的可独立解码视图;分块划分单元1025,用于将所述图片划分成至少两个分块(tile),其中覆盖可独立解码视图的一个或多个tile对应的区域为可独立解码区域;辅助消息生成单元1026,用于生成与所述图片对应的辅助消息,所述辅助消息中包含所述可独立解码区域位置标识,所述可独立解码区域位置标识由一个或多个分块标识(tileid)组成;以及,执行编码单元1027,用于编码所述图片包含的所有tile,以至形成编码后的视频码流,所述编码后的视频码流中包括所述辅助消息。该执行编码单元还包括判断单元,用于判断当前待编码tile是否为可独立解码区域内的tile;如果是,设置已编码图片的可独立解码区域为当前tile的帧间参考候选区域;如果不是,设置已编码图片的整个图片区域为当前tile的帧间参考候选区域;当采用帧间算法编码时,根据上述待编码tile对应的帧间参考候选区域选择最优参考区域。更为详细地,存储单元1023还用于加载待编码的图片,以及加载执行编码单元1027完成编码的图片。可独立解码视图确认单元1024还可以执行如图10所示步骤S301和步骤S302,以及图11所示步骤S401;分块划分单元1025还可以执行如图11所示步骤S402;辅助消息生成单元1026还可以执行如图11所示步骤S403和步骤S404;以及,执行编码单元1027还可以执行如图11所示步骤S405至步骤S409。在本发明的另一实施例中,存储单元1023还用于加载待编码的图片,以及加载执行编码单元1027完成编码的图片。可独立解码视图确认单元1024还可以执行如图13所示步骤S601至步骤S603;分块划分单元1025还可以执行如图14所示步骤S701和步骤S702;辅助消息生成单元1026还可以执行如图13所示步骤S604;以及,执行编码单元1027还可以执行如图14所示步骤S703至步骤S707。在本发明的又一实施例中,存储单元1023还用于加载待编码的图片,以及加载执行编码单元1027完成编码的图片。可独立解码视图确认单元1024还可以执行如图16所示步骤S901和步骤S902;分块划分单元1025还可以执行如图16所示步骤S903和步骤S904;辅助消息生成单元1026还可以执行如图16所示步骤S905;以及,执行编码单元1027还可以执行如图17所示步骤S1001至步骤S1006。如图8所示,为本发明实施例提供的一种解码器的功能模块组成示意图。所述解码器202包括:存储单元2023、接收单元2024和执行解码单元2025。存储单元2023,用于存储待解码的图片,以及加载执行解码单元2025解码完成但未到显示时间的图片。接收单元2024,用于接收视频码流,所述视频码流包括待解码的视频和辅助消息,所述待解码的视频由待解码的图片序列组成;以及执行解码单元2025,用于获取待解码图片;根据所述辅助消息,获得所述待解码图片的可独立解码区域的可独立解码区域位置标识,所述可独立解码区域位置标识由一个或多个分块(tile)的分块标识(tileid)组成;以及根据可独立解码区域位置标识获得所述待解码图片的可独立解码区域,解码所述可独立解码区域。更为详细地,接收单元2024还用于执行如图12所示的步骤S501;以及,执行解码单元2025还用于执行如图12所示的步骤S502至步骤S515。在本发明的另一实施例中,接收单元2024还用于执行如图15所示的步骤S801;以及,执行解码单元2025还用于执行如图15所示的步骤S802至步骤S816。在本发明的又一实施例中,接收单元2024还用于执行如图18所示的步骤S1101;以及,执行解码单元2025还用于执行如图18所示的步骤S1102至步骤S1114。如图9所示,为本发明实施例提供的一种编码器的具体实现结构图。Fn当前1001为待编码视频中的当前待编码的一帧图片,F’n-1参考1002为待编码视频中已编码的一帧图片,为当前待编码的图片提供编码参考。输入的帧Fn当前1001按帧内或帧间预测编码的方法进行处理。如果采用帧内预测编码,其预测值PRED(图中用P表示)是由Fn当前1001之前已编码的参考图像经运动补偿1006(MC)后得出,其中参考图像用F′n-1参考1002表示。为了提高预测精度,从而提高压缩比,实际的参考图像可在已编码、解码、重建或滤波的帧中进行选择。预测值PRED和当前块相减后,产生一个残差块Dn,经块变换、量化后产生一组量化后的变换系数X,再经熵编码1014,与解码所需的一些边信息(如预测模式量化参数、运动矢量等)一起组成一个压缩后的码流,经NAL(网络自适应层)供传输和存储用。正如上述,为了提供进一步预测用的参考图像,编码器必须有重建图像的功能。因此必须使残差图像经反量化、反变换后得到的Fn’重建1003与预测值P相加,得到uFn’(未经滤波的帧)。为了去除编码解码环路中产生的噪声,为了提高参考帧的图像质量,从而提高压缩图像性能,设置了一个环路滤波器,滤波后的输出Fn’重建1003即重建图像可用作参考图像。本发明在ME和帧内预测模式选择时,取消了可独立解码区域外编码单元对参考范围的限制(具体参见图10至图18的描述),因此可以选择更为相似的参考单元,提高预测精度,从而提高压缩比。如图10所示,为本发明实施例提供的一种视频编码方法,在本实施例中,上述辅助消息承载于SEI消息中。3D视频码流中每帧图片最终被2D显示设备显示的视图部分为可独立解码视图;与tile划分对应的,覆盖可独立解码视图的区域为可独立解码区域。该SEI消息中包括可独立解码区域标识。可独立解码区域与一个tile对应,即采用一种tile的划分,将可独立解码视图包含在一个tile的范围之内。待编码视频,即待编码的图片序列,可以包含具有不同拼接类型和不同翻转类型的图片。图10所示的编码方法,为编码器编码一视频的过程,该视频为一个长度为M帧的图片序列,其中每帧图片以两个视图拼接的形式为例,其中一个视图为2D显示设备最终显示的部分,即上述可独立解码视图。对于本领域的技术人员而言,采用两个或两个以上视图拼接的图片,其编码方法均可经由此方法简单变换得到。步骤S301:读取待编码视频的配置文件,配置文件中存放编码器编码过程中所需要预先确定的输入参数,例如编码工具、编码限制、待编码图片的属性等等。步骤S302:根据配置文件确定图片序列中需要独立解码的视图。本实施例中配置文件中预设了整个图片序列中每种拼接类型和翻转类型的图片对应的可独立解码视图,例如,一帧图片中的左视图或右视图。相同拼接类型和翻转类型图片对应的可独立解码视图相同,不同拼接类型和翻转类型图片对应的可独立解码视图不同。步骤S303:获取图片序列中第i帧图片,设置i=1。步骤S304:编码第i帧图片,具体的编码过程将在下图11详细介绍。步骤S305:将当前第i帧图片编码后对应的AU输出,保存在自身或外挂的存储装置,例如:源装置100的视频存储器101或编码器102的缓存器1021中,或者直接通过网络传输给远程的接收装置200。步骤S306:如果i等于M(即:第i帧为最后一帧)则编码结束;否则i=i+1,执行步骤S303。图11为图10所示视频编码方法中步骤S304中具体编码一帧图片的方法流程示意图。步骤S401:根据配置文件,获取当前第i帧图片的拼接类型和翻转类型对应的可独立解码视图。步骤S402:根据覆盖可独立解码视图的最小tile,确定tile划分。即将可独立解码视图包含在一个tile的范围之内,并且,该tile的划分上下左右均要满足LCU对齐的要求。该tile对应的区域即为可独立解码区域。则第i帧图片被划分成覆盖可独立解码区域的最小tile和除覆盖可独立解码区域的最小tile以外的区域组成的tile,一共两个tile,设置tile的数量N等于2。在本发明的其他实施例中,tile的数量不限于2个。根据先从左向右,再从上到下的顺序分配tileid,预设覆盖可独立解码视图的最小tile的id为s。在本发明的其他实施例中,tile的划分,不一定以覆盖可独立解码视图的最小tile为基准,只要满足该tile覆盖可独立解码视图,且tile的上下左右边界满足LCU对齐的要求即可。步骤S403:判断是否需要生成SEI消息,判断条件为:当前第i帧图片是待编码视频码流中第1帧图片,或者不是第1帧图片但是与上一帧拼接类型或翻转类型不相同,则需要生成SEI消息,执行步骤S404;或者,当前第i帧图片不是待编码视频码流中的第1帧图片,并且当前第i帧图片与上一帧图片的拼接类型与翻转类型相同,则执行步骤S405。也就是说,在本实施例中,连续的相同拼接类型与翻转类型的图片对应一个SEI消息,如果前后两帧图片的拼接类型与翻转类型不同,则需要生成新的SEI消息。步骤S404:创建SEI消息,本发明暂命名为INDEC_RGN_SEI,设置此SEI消息各字段,其定义如下表。INDEC_RGN_SEI(payloadSize){Descriptortile_idue(v)cropping_enable_flagu(1)new_profile_flagu(1)new_level_flagu(1)if(cropping_enable_flag){pic_crop_left_offsetue(v)pic_crop_right_offsetue(v)pic_crop_top_offsetue(v)pic_crop_bottom_offsetue(v)}if(new_profile_flag){profile-idcue(v)}if(new_level_flag){level_idcue(v)}}表中的ue(v)表示该字段的长度可变,u(n)表示该字段的长度为n位(bite),u(1)标识该字段的长度为1位。可独立解码区域位置标识信息:tile_id:覆该可独立解码视图的最小tile的id,本例中为s。以下为可独立解码区域的cropping信息:cropping_enable_flag:如果tile(s)中包含的可独立解码视图的宽度与tile(s)的宽度相等,且可独立解码视图的高度与tile(s)的高度相等,则设置cropping_enable_flag为false,否则为true。pic_crop_left_offset:包含可独立解码视图相对于tile(s)的左边缘的横坐标,以像素为单位。pic_crop_right_offset:包含可独立解码视图相对于tile(s)的右边缘的横坐标,以像素为单位。pic_crop_top_offset:包含可独立解码视图相对于tile(s)的上边缘的纵坐标,以像素为单位。pic_crop_bottom_offset:包含可独立解码视图相对于tile(s)的下边缘的纵坐标,以像素为单位。以下为可独立解码区域(即tile(s)对应的区域)子码流的profile和level信息:new_profile_flag:表示可独立解码区域子码流的profile是否与整个码流的profie的标识符相同,若其值为0,则表示相同;若其值为1,则表示不同。new_level_flag:表示可独立解码区域子码流的level是否与整个码流的level的标识符相同,若其值为0,则表示相同;若其值为1,则表示不同。profile_idc:可独立解码区域中的编码工具集符合的profile_id。level_idc:解码器需要满足的最低levelid。根据tile(s)占整个图片的面积的比例,计算解码tile(s)的码率和最大缓存,例如:解码整个图片的码率为x,最大缓存为y,tile(s)占整个图片的面积的比例为r,则tile(s)的码率为x*r,最大缓存位y*r。根据profile_idc、tile(s)的码率为x*r和最大缓存位y*r查找符合这个解码性能的最小level,设置level_idc为上述最小level。设定当前tileid为k,k=1。步骤S405:如果k为s,即当前tile为覆盖可独立解码视图的tile,执行步骤S406,否执行步骤S407。步骤S406:设置已编码的拼接类型与翻转类型都与当前第i帧图片相同的图片中tile(s)为当前第i帧tile(s)的帧间参考候选区域。步骤S407:设置已编码的帧图片中所有图片区域为tile(k)的帧间参考候选区域。步骤S408:选择使用帧内预测或帧间预测算法编码tile(k),当采用帧间预测算法编码时,从步骤S406和S407得到的各帧间参考候选区域中选择最优的参考区域进行编码。步骤S409:如果k小于N,即tile(k)不是待编码图片中最后一个tile,N为一帧图片中tile的总数量,则k=k+1,转到步骤S405;如果k等于N,编码结束。上述图10和图11提供的编码方法,在编码后的码流中添加了辅助消息,由SEI消息承载,该SEI消息中的Profile和Level信息仅针对可独立解码区域形成的子码流,降低了对解码器性能的要求。此外,在步骤S406和S407分别针对可独立解码区域tile和非可独立解码区域tile设置不同的帧间参考候选区域,既保证了区域内的编码块可独立解码,又扩大了区域外编码块的参考范围,从而能够在编码中参考与当前块更为相似的编码块,提高了编码效率,节省传输数据量。如图12所示,为本发明实施例提供的一种视频解码方法,在本实施例中,解码器解码经过如图10和图11所示流程编码后的视频码流,即,解码一长度为M的图片序列的过程如下:步骤S501:接收待解码的视频码流,该视频码流包括若干AU,每一AU与一帧经过编码的图片对应。步骤S502:从码流中获取一个AU。步骤S503:判断当前AU是否包含帧拼接格式的图片,判断方法如下:1)当前AU包含FPA(framepackingarrangement)消息,且消息中的取消标志位为0;2)当前AU不包含FPA消息,但待解码视频码流中之前接收到的最后一个FPA消息,其取消标志位为0。满足2个条件之一,执行步骤S504,否则转步骤S515。步骤S504:判断当前AU是否包含SEI消息,是则执行步骤S506,否则执行步骤S505。步骤S505:之前接收到的AU中是否包含SEI消息,是则重用此消息内的参数解码和输出当前AU中的图片,执行步骤S509,否则执行步骤S515。步骤S506:判断解码器的性能是否符合SEI消息中的profile和level要求,如果不符合则无法解码,直接结束;如果符合,执行步骤S507。步骤S507:根据SEI消息中的profile和level信息初始化解码器。步骤S508:从上述SEI消息中获取可独立解码区域对应的tileid,本实施例中可独立解码区域对应的tileid为s。步骤S509:取出AU中的图片信息,该图片信息是经过编码的图片信息,待解码器解码。步骤S510:根据SEI消息中获取的可独立解码区域对应的tileid,取出图片中tile(s)内的图片。步骤S511:解码tile(s)内的图片,解码方法根据编码过程中相应的编码方法而定。步骤S512:根据上述SEI消息中的cropping信息裁减tile(s)内图片。如果cropping_enable_flag为false,则不需要裁减;否则取出tile(s)内pic_crop_left_offset、pic_crop_right_offset、pic_crop_top_offset和pic_crop_bottom_offset标识的区域,即tile(s)内可独立解码的视图。步骤S513:输出可独立解码区域内可独立解码视图。步骤S514:如果当前AU为码流中最后一个AU,则解码结束;否则执行步骤S512。步骤S515:正常的解码流程。采用本实施例提供的解码方法,当解码器接收的是采用帧封装3DTV技术编码的3D视频码流,而连接的是2D显示设备时,则解码器可以根据SEI消息只取出两个视图中的一个进行解码,即仅对可独立解码区域进行解码,降低了对解码器性能的要求,并且节约了解码器的计算和存储资源。此外,对应可独立编码区域子码流的profile和level通常会减低对解码器的性能和存储要求,所以初始化解码器后可节省解码器解码时间和电力消耗,节省解码器存储需求。如果解码器不满足原来3D视频码流的profile和level要求,而满足对应可独立编码区域子码流的profile和level要求,则提高了解码器对分辨率或码率高需求的兼容2D显示的3D视频码流的支持。如图13所示,为本发明实施例提供的另一种视频编码方法,在本实施例中上述辅助消息也是由SEI消息承载,但该SEI消息不同于图10、图11和图12中的SEI消息。一个SEI消息中包括各种拼接类型和翻转类型图片对应的不同可独立解码区域标识、cropping信息、profile和level信息。3D视频码流中每帧图片最终被2D显示设备显示的视图为可独立解码视图。覆盖可独立解码视图的区域用多个tile组成的矩形区域表示,且每个tile均需要满足LCU对齐的要求,该多个tile组成的矩形区域为可独立解码区域。待编码视频,即待编码的图片序列,可以包含具有不同拼接类型和不同翻转类型的图片。图13所示的编码方法,为编码器编码一视频的过程,该视频为一个长度为M的图片序列,其中每帧图片以两个视图拼接的形式为例,其中一个视图为2D显示设备最终显示的部分,即上述可独立解码视图。对于本领域的技术人员而言,采用两个或两个以上视图拼接图片,其编码方法均可经由此方法简单变换得到。步骤S601:读取待编码视频的配置文件,配置文件中存放编码器编码过程中所需要预先确定的输入参数,例如编码工具、编码限制、待编码图片的属性等等。本实施例中配置文件中预设了整个图片序列中每种拼接类型和翻转类型的图片对应的可独立解码视图,例如,一帧图片中的左视图或右视图。相同拼接类型和翻转类型图片对应的可独立解码视图相同,不同拼接类型和翻转类型图片对应的可独立解码视图不同。步骤S602:根据待编码视频的配置文件,获取图片序列中每帧图片的拼接类型和翻转类型的组合。步骤S603:根据配置文件中预设的每种拼接类型和翻转类型的图片对应的可独立解码视图,以及根据配置文件获取的每帧图片的拼接类型和翻转类型信息,确定图片序列中每帧图片的可独立解码的视图。步骤S604:创建SEI消息。该SEI消息在一个图片序列中只发送一次,并且,该SEI消息中包括各种拼接类型和翻转类型图片对应的不同可独立解码区域标识、cropping信息、profile和level信息。设置此SEI消息各字段,其定义如下表。根据从配置文件获取的图片序列的拼接类型和翻转类型的组合,设置SEI中开头的arrange_leftright_no_flip、arrange_leftright_flip、arrange_topdown_no_flip以及arrange_topdown_flip字段,再分别设置不同拼接类型和翻转类型图片对应的可独立解码区域的位置标识信息、cropping信息、profile和level信息。例如:当arrange_leftright_no_flip为1时,则在if(arrange_leftright_no_flip){...}中存放着左右拼接且无翻转类型图片对应的参数,解码左右拼接且无翻转的图片时均采这个区域内的参数,其它的拼接和翻转组合情况与此类似。INDEC_RGN_SEI(payloadSize){Descriptorarrange_leftright_no_flipu(1)arrange_leftright_flipu(1)arrange_topdown_no_flipu(1)arrange_topdown_flipu(1)if(arrange_leftright_no_flip){tile_numue(v)for(i=0;i<tile_num;i++){tile_ids[i]ue(v)}cropping_enable_flagu(1)if(cropping_enable_flag){pic_crop_left_offsetue(v)pic_crop_right_offsetue(v)pic_crop_top_offsetue(v)pic_crop_bottom_offsetue(v)}profile_idcue(v)level_idcue(v)}if(arrange_leftright_flip){tile_numue(v)for(i=0;i<tile_num;i++){tile_ids[i]ue(v)}cropping_enable_flagu(1)if(cropping_enable_flag){pic_crop_left_offsetue(v)pic_crop_right_offsetue(v)pic_crop_top_offsetue(v)pic_crop_bottom_offsetue(v)}profile_idcue(v)level_idcue(v)}if(afrange_topdown_no_flip){tile_numue(v)for(i=0;i<tile_num;i++){tile_ids[i]ue(v)}cropping_enable_flagu(1)if(cropping_enable_flag){pic_crop_left_offsetue(v)pic_crop_right_offsetue(v)pic_crop_top_offsetue(v)pic_crop_bottom_offsetue(v)}profile_idcue(v)level_idcue(v)}if(arrange_topdown_flip){tile_numue(v)for(i=0;i<tile_num;i++){tile_ids[i]ue(v)}cropping_enable_flagu(1)if(cropping_enable_flag){pic_crop_left_offsetue(v)pic_crop_right_offsetue(v)pic_crop_top_offsetue(v)pic_crop_bottom_offsetue(v)}profile_idcue(v)level_idcue(v)}表中的ue(v)表示该字段的长度可变,u(n)表示该字段的长度为n位(bite),u(1)标识该字段的长度为1位。arrange_leftright_no_flip:图片为左右拼接且无左右视图翻转。arrange_leftright_flip:图片为左右拼接且左右视图翻转。arrange_topdown_no_flip:图片为上下拼接且无左右视图翻转。arrange_topdown_flip:图片为上下拼接且左右视图翻转。可独立解码区域位置标识信息:tile_num:覆盖可独立解码视图包含的tile数量。tile_ids:覆盖可独立解码视图包含的tileid数组,指示覆盖可独立解码区域的若干tile对应的id集合。以下为可独立解码区域的cropping信息:cropping_enable_flag:如果可独立解码视图的宽度与可独立解码区域的宽度相等,且可独立解码视图的高度与可独立解码区域的高度相等,则设置cropping_enable_flag为false,否则为true。pic_crop_left_offset:包含可独立解码视图相对于覆盖可独立解码视图若干tile的最左边缘的横坐标,以像素为单位。pic_crop_right_offset:包含可独立解码视图相对于覆盖可独立解码视图若干tile的最右边缘的横坐标,以像素为单位。pic_crop_top_offset:包含可独立解码视图相对于覆盖可独立解码视图若干tile的最上边缘的纵坐标,以像素为单位。pic_crop_bottom_offset:包含可独立解码视图相对于覆盖可独立解码视图若干tile的最下边缘的纵坐标,以像素为单位。以下为可独立解码区域子码流的profile和level信息:profile_idc:可独立解码区域中的编码工具集的符合的profile_id。level_idc:解码器需要满足的最低levelid。根据可独立解码区域占整个图片的面积的比例,计算解码可独立解码区域的码率和最大缓存,例如:解码整个图片的码率为x,最大缓存为y,可独立解码区域占整个图片的面积的比例为r,则可独立解码区域的码率为x*r,最大缓存位y*r。根据profile_idc、可独立解码区域的码率为x*r和最大缓存位y*r查找符合这个解码性能的最小level,设置level_idc为上述最小level。步骤S605:获取第i帧图片,设置i=1。步骤S606:编码第i帧图片,具体的编码过程将在下图14详细介绍。步骤S607:将当前第i帧图片编码后对应的AU输出,保存在自身或外挂的存储装置,例如:源装置100的视频存储器101或编码器102的缓存器1021中,或者直接通过网络传输给远程的接收装置200。步骤S608:如果i等于M(即:第i帧为最后一帧)则编码结束,否则i=i+1,执行步骤S605。图14为图13所示视频编码方法中步骤S606中具体编码一帧图片的方法流程示意图。步骤S701:根据待编码视频的配置文件确定tile划分方案并划分图片。按先从左向右,再从上到下的顺序分配tileid。对于相同拼接类型且相同翻转类型的帧图片tile划分相同。设置当前tileid为k,k=1,tile的总数为N。步骤S702:根据步骤S603确定的图片序列中不同拼接类型和翻转类型图片的可独立解码的视图,确定覆盖可独立解码视图的若干tile集合,且每个tile均需要满足LCU对齐的要求。该覆盖可独立解码视图的若干tile对应的区域为可独立解码区域。相应地,将覆盖可独立解码区域的tile的数量设置SEI消息的tile_num字段,根据覆盖可独立解码区域的tileid集合设置tile_ids字段,该字段为若干个tile的id数组。LCU对齐后,根据相应的cropping信息设置SEI消息cropping信息对应的字段。步骤S703:根据步骤S702,确定当前tile(k)是否属于覆盖可独立解码视图的若干tile之一,如果tile(k)属于覆盖可独立解码视图的若干tile之一,则执行步骤S704,否则执行步骤S705。步骤S704:如果tile(k)属于覆盖可独立解码视图的若干tile之一,设置之前已编码的拼接类型与翻转类型都相同的图片中的可独立解码区域为当前图片tile(k)的帧间参考候选区域。步骤S705:如果tile(k)不属于覆盖可独立解码视图若干tile之一,则设置之前已编码的图片中所有图片区域为当前图片tile(k)的帧间参考候选区域。步骤S706:选择使用帧内预测或帧间预测算法编码tile(k),当采用帧间预测算法编码时,从步骤S704和S705所述的帧间参考候选区域中选择最优的参考区域。步骤S707:如果k小于N,即tile(k)不是待编码图片中最后一个tile,则k=k+1,执行步骤S703;如果k等于N,则编码结束。上述图13和图14提供的编码方法,在编码后的码流中添加了辅助消息,由SEI消息承载,该SEI消息中的Profile和Level信息仅针对可独立解码区域形成的子码流,降低了对解码器性能的要求。此外,在步骤S704和S705分别针对可独立解码区域tile和非可独立解码区域tile设置不同的帧间参考候选区域,既保证了区域内的编码块可独立解码,又扩大了区域外编码块的参考范围,从而能够在编码中参考与当前块更为相似的编码块,提高了编码效率,节省传输数据量。如图15所示,为本发明实施例提供的一种视频解码方法,在本实施例中,解码器解码经过如图13和图14所示流程编码后的视频码流,即,解码一长度为M的图片序列的过程如下:步骤S801:接收待解码的视频码流,该视频码流包括若干AU,每一AU与一帧经过编码的图片对应。步骤S802:从视频码流中获取一个AU。步骤S803:判断当前AU是否包含帧拼接格式的图片,判断方法如下:1)当前AU包含FPA(framepackingarrangement)消息,且消息中的取消标志位为0;2)当前AU不包含FPA消息,但待解码视频码流中之前接收到的最后一个FPA,其取消标志位为0。满足2个条件之一,执行步骤S804,否则执行步骤S815。步骤S804:判断当前AU是否包含SEI消息,或之前的码流中已接收了SEI消息,是则继续执行步骤S805,否则转步骤S816。步骤S805:取出当前AU中的经过编码的图片信息。步骤S806:根据FPA消息,判断当前第i帧图片的拼接类型和翻转类型与前一帧图片都相同,则执行步骤S811,否则执行步骤S807。步骤S807:根据当前帧的拼接类型和翻转类型,找到SEI消息中与此类型相应的参数,获得此种类型对应的可独立解码区域标识信息、cropping信息和profile、level信息。步骤S808:判断解码器的性能是否符合SEI消息中的profile和level,如果不符合则无法解码,直接结束;如果符合,执行步骤S809。步骤S809:根据SEI消息中的profile和level信息初始化解码器。步骤S810:从上述SEI消息中获取可独立解码区域对应的若干tileid集合。步骤S811:根据上述tileid的集合,取出覆盖可独立解码区域的若干tile。步骤S812:解码覆盖可独立解码区域若干tile内的图片,解码方法根据编码过程中相应的编码方法而定。步骤S813:根据上述SEI消息中的cropping信息裁减若干tile内图像。如果cropping_enable_flag为false,则不需要裁减;否则取出若干tile内pic_crop_left_offset、pic_crop_right_offset、pic_crop_top_offset和pic_crop_bottom_offset标识的区域,即若干tile内可独立解码的视图。步骤S814:输出可独立解码视图到如图4所示的显示设备201,或者,如果输出时间未到,暂存至如图5所示缓存器2021。步骤S815:如果当前AU为码流中最后一个AU,则解码结束;否则执行步骤S802。步骤S816:正常的解码流程。采用本实施例提供的解码方法,当解码器接收的是采用帧封装3DTV技术编码的3D视频码流,而连接的是2D显示设备时,则解码器可以根据SEI消息只取出两个视图中的一个进行解码,即仅对可独立解码区域进行解码,降低了对解码器性能的要求,并且节约了解码器的计算和存储资源。参见步骤S809,对应可独立编码区域子码流的profile和level通常会减低对解码器的性能和存储要求,所以初始化解码器后可节省解码器解码时间和电力消耗,节省解码器存储需求。如果解码器不满足原来3D视频码流的profile和level要求,而满足对应可独立编码区域子码流的profile和level要求,则提高了解码器对分辨率或码率高需求的兼容2D显示的3D视频码流的支持。如图16所示,为本发明实施例提供的一种视频编码方法,在本实施例中,上述辅助消息由SPS消息承载。在SPS消息中可包括可独立解码区域标识,还可以包括可独立解码区域位置标识信息、cropping信息、profile和level信息。可独立解码区域与一个或多个independenttile组成的矩形区域对应。可独立解码区域外的区域与一个或多个dependenttile组成的矩形区域对应。在本实施例中,待编码的视频,即待编码的图片序列,具有相同的拼接类型和翻转类型。如果图片序列具有不同的拼接类型和翻转类型,其编码过程与如图11所示步骤S403、步骤S404类似,其解码过程与如图15所示的步骤S807步骤类似,不同在于辅助消息分别由SEI消息和SPS消息承载。图16所示的编码方法,为编码器编码一视频的过程,该视频为一个长度为M的图片序列,其中每帧图片以两个视图拼接的形式为例,其中一个视图为2D显示设备最终显示的部分,即上述可独立解码区域。对于本领域的技术人员而言,采用两个或两个以上视图拼接图片,其编码方法均可经由此方法简单变换得到。步骤S901:读取待编码视频的配置文件,配置文件中存放编码器编码过程中所需要预先确定的输入参数,例如编码工具、编码限制、待编码图片的属性等等。本实施例中配置文件中预设了每帧图片的可独立解码视图。由于本实施例中图片序列具有相同的拼接类型和翻转类型,因此每帧图片的可独立解码视图相同。步骤S902:根据配置文件确定图片序列中每帧图片的可独立解码视图,例如,一帧图片中的左视图或右视图。设置当前帧为第i帧,i=1。步骤S903:根据配置文件确定tile划分方案并划分图片。按先从左向右,再从上到下的顺序分配tileid。对于相同拼接类型且相同翻转类型的帧图片tile划分相同。设置当前tileid为k,k=1,tile的总数为N。步骤S904:根据步骤S902确定的每帧图片的可独立解码的视图,确定覆盖可独立解码视图的若干tile集合,定义这个集合中的tile为independenttile,这个集合以外的tile为dependenttile。该覆盖可独立解码视图的若干tile均需要满足上下左右边界LCU对齐的要求。步骤S905:设置SPS消息中参数,根据可独立解码区域的标识信息、cropping信息、profile和level信息设置SPS消息中各字段,其定义如下表。表中的ue(v)表示该字段的长度可变,u(n)表示该字段的长度为n位,u(1)标识该字段的长度为1位。可独立解码区域标识:indec_rgn_present_flag:当视频中存在可独立解码视图,则设为true,否则false。可独立解码区域位置标识信息:tile_num:覆盖可独立解码视图包含的tile数量。tile_ids:覆盖可独立解码视图包含的tileid数组,指示覆盖可独立解码视图的若干tile对应的id集合。以下为可独立解码区域的cropping信息:cropping_enable_flag:如果可独立解码视图的宽度与覆盖可独立解码视图若干tile的总宽度相等,且可独立解码视图的高度与覆盖可独立解码视图若干tile的总高度相等,则设置cropping_enable_flag为false,否则为true。pic_crop_left_offset:包含可独立解码视图相对于覆盖可独立解码视图若干tile的最左边缘的横坐标,以像素为单位。pic_crop_right_offset:包含可独立解码视图相对于覆盖可独立解码视图若干tile的最右边缘的横坐标,以像素为单位。pic_crop_top_offset:包含可独立解码视图相对于覆盖可独立解码视图若干tile的最上边缘的纵坐标,以像素为单位。pic_crop_bottom_offset:包含可独立解码视图相对于覆盖可独立解码视图若干tile的最下边缘的纵坐标,以像素为单位。以下为可独立解码区域子码流的profile和level信息:new_profile_flag:表示可独立解码区域子码流的prifile是否与整个码流的prifile的标识符相同,若其值为0,则表示相同;若其值为1,则表示不同。new_level_flag:表示可独立解码区域子码流的level是否与整个码流的level的标识符相同,若其值为0,则表示相同;若其值为1,则表示不同。profile_idc:可独立解码区域中的编码工具集的符合的profileid。level_idc:解码器需要满足的最低levelid。根据可独立解码区域占整个图片的面积的比例,计算解码可独立解码区域的码率和最大缓存,例如:解码整个图片的码率为x,最大缓存为y,可独立解码区域占整个图片的面积的比例为r,则可独立解码区域的码率为x*r,最大缓存位y*r。根据profile_idc、可独立解码区域的码率为x*r和最大缓存位y*r查找符合这个解码性能的最小level,设置level_idc为上述最小level。步骤S906:获取第i帧图片,设置i=1。步骤S907:编码第i帧图片,具体的编码过程将在下图17详细介绍。步骤S908:将当前第i帧图片编码后对应的AU输出,保存在自身或外挂的存储装置,例如:源装置100的视频存储器101或编码器102的缓存器1021中,或者直接通过网络传输给远程的接收装置200。步骤S908:如果i等于M(第i帧为最后一帧)则编码结束,否则i=i+1,执行步骤S906。图17为图16所示视频编码方法中步骤S907中具体编码一帧图片的方法流程示意图。步骤S1001:tileid为k,设置k=1。步骤S1002:根据SPS消息中的tile_ids字段内容,确定当前tile(k)是否属于覆盖可独立解码视图的若干tile之一,如果tile(k)属于覆盖可独立解码视图若干tile之一,则执行步骤S1003,否则执行步骤S1004。步骤S1003:如果tile(k)属于覆盖可独立解码视图若干tile之一,设置之前已编码的拼接类型与翻转类型都相同的帧图片中的可独立解码区域为当前帧图片tile(k)的帧间参考候选区域。步骤S1004:如果tile(k)不属于覆盖可独立解码视图若干tile之一,则设置之前已编码的帧图片中所有图片区域为当前帧图片tile(k)的帧间参考候选区域。步骤S1005:选择使用帧内预测或帧间预测算法编码tile(k),当采用帧间预测算法编码时,从步骤S1003和S1004所述的帧间参考候选区域中选择最优的参考区域。当采用帧内预测算法编码时,如果tile(k)不属于覆盖可独立解码区域若干tile之一,即为dependenttile,则tile(k)可以将邻近的independenttile中的图像块作为选择最优参考块的候选范围。步骤S1006:如果k小于N,即tile(k)不是待编码图片中最后一个tile,则k=k+1,执行步骤S1002;如果k等于N,则编码结束。上述图16和图17提供的编码方法,在编码后的码流中现有SPS消息中新增字段标识可独立解码区域相关信息,以实现辅助消息的功能。该SEI消息中的Profile和Level信息仅针对可独立解码区域形成的子码流,降低了对解码器性能的要求。此外,在步骤S1003和S1004分别针对可独立解码区域tile和非可独立解码区域tile设置不同的帧间参考候选区域,既保证了区域内的编码块可独立解码,又扩大了区域外编码块的参考范围,从而能够在编码中参考与当前块更为相似的编码块,提高了编码效率,节省传输数据量。如图18所示,为本发明实施例提供的一种视频解码方法,在本实施例中,解码器解码经过如图16和图17所示流程编码后的视频码流,即,解码一长度为M的图片序列的过程如下:步骤S1101:接收待解码的视频码流,该视频码流包括若干AU,每一AU与一帧经过编码的图片对应。步骤S1102:获取视频码流中的SPS消息,判断SPS消息中的indec_rgn_present_flag字段是否为true,是则设置继续解码,否则执行步骤S1114;步骤S1103:获取视频码流中的SPS消息中profile和level信息,判断解码器的性能是否符合SPS消息中的profile和level,如果不符合则无法解码,直接结束;如果符合,执行步骤S1104。步骤S1104:根据上述的profile和level信息初始化解码器。步骤S1105:从SPS消息中获取覆盖可独立解码视图对应的tileid集合。步骤S1106:从视频码流中获取一个AU。步骤S1107:判断当前AU是否包含帧拼接格式的图片,判断条件方法如下:1)当前AU包含FPA(framepackingarrangement)消息,且消息中的取消标志位为0;2)当前AU不包含FPA消息,但码流中之前接收到的最后一个FPA消息,其取消标志位为0。满足2个条件之一,则转下一步,否则转步骤S1114。步骤S1108:取出当前AU中的经过编码的图片信息。步骤S1109:根据步骤S1105获得的覆盖可独立解码视图对应的tileid集合,取出覆盖可独立解码视图的若干tile。步骤S1110:解码覆盖可独立解码视图若干tile内的图片,解码方法根据编码过程中相应的编码方法而定。步骤S1111:根据上述SPS消息中的cropping信息裁减若干tile内图片。如果cropping_enable_flag为false,则不需要裁减;否则取出若干tile内pic_crop_left_offset、pic_crop_right_offset、pic_crop_top_offset和pic_crop_bottom_offset标识的区域,即若干tile内可独立解码的视图。步骤S1112:输出可独立解码视图到如图4所示的显示设备201,或者,如果输出时间未到,暂存至如图5所示缓存器2021。步骤S1113:如果当前AU为码流中最后一个AU,则解码结束;否则执行步骤S1106。步骤S1114:正常的解码流程。采用本实施例提供的解码方法,当解码器接收的是采用帧封装3DTV技术编码的3D视频码流,而连接的是2D显示设备时,则解码器可以根据SEI消息只取出两个视图中的一个进行解码,即仅对可独立解码区域进行解码,降低了对解码器性能的要求,并且节约了解码器的计算和存储资源。参见步骤S1104,对应可独立编码区域子码流的profile和level通常会减低对解码器的性能和存储要求,所以初始化解码器后可节省解码器解码时间和电力消耗,节省解码器存储需求。如果解码器不满足原来3D视频码流的profile和level要求,而满足对应可独立编码区域子码流的profile和level要求,则提高了解码器对分辨率或码率高需求的兼容2D显示的3D视频码流的支持。本领域普通技术人员可以理解,实现上述实施例所示视频编码和解码方法可以通过程序指令相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序在执行时执行上述方法中的对应步骤。所述的存储介质可以如:ROM/RAM、磁碟、光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1