立体视频的编码方法及其系统的利记博彩app
【专利摘要】一种立体视频的编码方法与一种立体视频编码系统。此编码方法包括:取得立体视频的一个景深图,其中景深图包括多个像素,并且每一个像素包括一个景深值;辨识景深图中一对象的第一轮廓;根据每一个像素是否位于第一轮廓上来改变所述的景深值以产生一个轮廓位图;压缩此轮廓位图以产生第一位串,并且解压缩第一位串以产生一个重建轮廓位图;根据重建轮廓位图内对应于该对象的第二轮廓,取得上述景深值中在对象内的多个取样像素;以及编码每一个取样像素的一位置与景深值。借此,立体视频的压缩比会被提升。
【专利说明】立体视频的编码方法及其系统
【技术领域】
[0001]本发明是有关于一种编码方法,且特别是有关于一种立体视频(Video)的编码方法与立体视频编码系统。
【背景技术】
[0002]立体图像是由不同视角的图像所组成的。当人的左眼与右眼看到不同视角的图像时,其大脑会自动地合成出一个立体图像。
[0003]图1是绘示一种立体显示器的系统示意图。
[0004]请参照图1,对于某一个场景,立体显示器110会显示每一个视角Vl?V9对应的像素值。使用者121的右眼可观察到视角Vl的像素值,而使用者121的左眼可观察到视角V2的像素值。借此,使用者121可以观察到一个立体视频。另一方面,使用者122会观察到视角V8与V9上的像素值而得到另一个立体视频。借此,使用者121与使用者122可以观察到不同视角的立体图像。一般来说,通过一个纹理图像(彩色图像)与一个深度图(灰度图像)可以产生对应不同视角的像素值。在图1中,纹理图像141是属于视角V1、纹理图像142是属于V5,而纹理图像143是属于视角V9 ;另一方面,景深图151是对应于纹理图像141,景深图152是对应于纹理图像142,并且景深图153是对应于纹理图像143。一个合成器可以根据纹理图像141?142,以及景深图151?152仿真出视角V2?V4上的像素值;此合成器也可以根据纹理图像142?143以及景深图152?153仿真出视角V6?V8上的像素值。
[0005]一般的视频压缩算法(如H.264)可用来压缩纹理图像。然而,如何压缩景深图,为此领域技术人员所关心的议题。
【发明内容】
[0006]本发明的范例实施例提出一种立体视频的编码方法与立体视频编码系统,可用于编码立体视频与其中的景深图。
[0007]本发明一范例实施例提出一种立体视频的编码方法,适用于一视频编码装置。此编码方法包括:取得立体视频的一个景深图,其中景深图包括多个像素,并且每一个像素包括一个景深值;辨识景深图中一对象的第一轮廓;根据每一个像素是否位于第一轮廓上改变所述的景深值以产生一个轮廓位图;压缩此轮廓位图以产生第一位串,并且解压缩第一位串以产生一个重建轮廓位图;根据重建轮廓位图内对应于该对象的第二轮廓,取得上述像素中在对象内的多个取样像素;以及编码每一个取样像素的一位置与景深值。
[0008]以另外一个角度来说,本发明一范例实施例提出一种立体视频编码系统,包括景深估算模块、轮廓估算模块、位图产生模块、压缩模块、解压缩模块、取样模块与熵值编码模块。景深估算模块是用于取得立体视频的一景深图。此景深图包括多个像素,并且每一个像素包括一景深值。轮廓估算模块是耦接至景深估算模块,用于辨识景深图中一对象的第一轮廓。位图产生模块是耦接至轮廓估算模块,用于根据每一个像素是否位于第一轮廓上来改变景深值以产生一轮廓位图。压缩模块是耦接至位图产生模块,用于压缩轮廓位图以产生第一位串。解压缩模块是耦接至压缩模块,用于解压缩第一位串以产生一重建轮廓位图。取样模块是耦接至景深估算模块与解压缩模块,用于根据重建轮廓位图内对应该对象的第二轮廓,取得所述像素中在对象内的多个取样像素。熵值编码模块是耦接至取样模块,用于编码每一个取样像素的位置与景深值。
[0009]基于上述,本发明范例实施例所提出的编码方法与立体视频编码系统,是以对象为基础的方式(object-based)来压缩景深图,并且可以根据少数的取样像素重建出景深图。借此,立体视频的压缩比会被提升。
[0010]为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
【专利附图】
【附图说明】
[0011]图1是绘示一种立体显示器的系统示意图。
[0012]图2是根据一 范例实施例绘示立体视频编码系统的示意图。
[0013]图3与图4是根据一范例实施例绘示一景深图的示意图。
[0014]图5是根据一范例实施例绘示产生轮廓位图的流程图。
[0015]图6是根据一范例实施例绘示重建轮廓位图的示意图。
[0016]图7是根据一范例实施例绘示取得取样像素的示意图。
[0017]图8是根据一范例实施例绘示编码与译码立体视频的示意图。
[0018]图9是根据一范例实施例绘示立体视频的编码方法的流程图。
[0019]【主要元件符号说明】
[0020]110:立体显示设备;
[0021]Vl ~V9:视角;
[0022]121、122:使用者;
[0023]141~143:纹理图像;
[0024]151 ~153:景深图;
[0025]200:立体视频编码系统;
[0026]210:景深估算模块;
[0027]220:轮廓估算模块;
[0028]230:位图产生模块;
[0029]240:压缩模块;
[0030]250:解压缩模块;
[0031]260:取样模块;
[0032]270:熵值编码模块;
[0033]281、282:图像;
[0034]290:位串;
[0035]300:景深图;
[0036]310:物件;
[0037]320:轮廓;[0038]S502、S504、S506、S508、S510:产生轮廓位图的流程图;
[0039]600:重建轮廓位图;
[0040]610:轮廓;
[0041]710、720:方向;
[0042]711、712、721、722:端点像素;
[0043]723:中间像素;
[0044]800:压缩程序;
[0045]801:立体视频;
[0046]802 ?805、807 ?809、811、821 ?826:步骤;
[0047]806:第一位串;
[0048]810:第二位串;
[0049]812:第三位串;
[0050]813:多工器;
[0051]814:网络或存储单元;
[0052]821:解多工器;
[0053]S902、S904、S906、S908、S910、S912:立体视频的编码方法的步骤。
【具体实施方式】
[0054]图2是根据一范例实施例绘示立体视频编码系统的示意图。
[0055]请参照图2,立体视频编码系统200包括了景深估算模块210、轮廓估算模块220、位图产生模块230、压缩模块240、解压缩模块250、取样模块260与熵值编码模块270。立体视频编码系统200是用于接收图像281与图像282,其中图像281与图像282是属于不同的视角。立体视频编码系统200会产生位串290,用于表示一段立体视频。
[0056]景深估算模块210是用于根据图像281与图像282所取的立体视频的一个景深图。此景深图中会包括多个像素,并且每一个像素至少包括一个景深值。轮廓估算模块220是耦接至景深估算模块210,用于辨识出此景深图中的一个对象以及此对象的轮廓。由于一个对象通常具有接近的景深,因此对象中的景深值会彼此相似。位图产生模块230是耦接至轮廓估算模块220,用于根据每一个像素是否位于轮廓上来改变这些像素的景深值,以产生一个轮廓位图。压缩模块240是耦接至位图产生模块230,用于压缩此轮廓位图以产生一个第一位串。而解压缩模块250是耦接至压缩模块240,用于解压缩此第一位串以产生一个重建轮廓位图。取样模块260是耦接至景深估算模块210与解压缩模块250,用于根据重建轮廓位图中对应该对象的轮廓,取得上述像素中在对象内的多个取样像素。熵值编码模块270是耦接至取样模块260,用于编码每一个取样像素的位置与景深值,以产生第二位串。此外,压缩模块240也会编码一个纹理图像(例如,图像281或图像282),借此产生一个第三位串。在此范例实施例中,第一位串、第二位串与第三位串会组成位串290,用于表示一段立体视频。此外,立体视频编码系统200也可以根据更多视角的图像来产生位串290,本发明并不在此限。
[0057]在一范例实施例中,立体视频编码系统200是以软件的方式实现,也就是说,立体视频编码系统200中的每一个模块包括多个指令,并且这些指令会存储在一个存储器;一个处理器会执行这些指令以产生位串290。然而,在一范例实施例中,立体视频编码系统200是以硬件的方式实现,也就是,立体视频编码系统200中的每一个模块可被实现为一或多个电路;而立体视频编码系统200可被配置在一个电子装置上。本发明并不限制用软件或是硬件的方式来实作立体视频编码系统200。
[0058]图3与图4是根据一范例实施例绘示一景深图的示意图。
[0059]请参照图3,举例来说,景深估算模块210会执行一个算法来取得景深图300,而景深图300中的每一个位置都对应于一个像素,而每个像素至少包括一个景深值。在一范例实施例中,一个区域的景深值越小(在图3中表示有底纹的区域),表示此区域离摄影机越远。景深估算模块210可用任意的算法取得景深图300,本发明并不在此限。例如,景深估算模块210会取得两张图像中相配对的特征点,并且根据这些特征点的位置产生景深值,该特征点乃是指属于图像281的像素点,与在图像282同一水平线上所寻找到相配点(例如颜色最相近的某点);当像素点与相配点间的位移较大时,表示该像素点距离镜头较近,而当位移较小时,表示该像素点距离镜头较远,可以利用位移量的大小以及摄影机的其它参数,就能计算出景深值,但不限于此。
[0060]请参照图4,轮廓估算模块220会辨识出景深图300中的对象的轮廓。例如,轮廓估算模块220会执行边缘侦测(edge detection)、对象分割(object partition)或是分群(clustering)等算法以取得对象310以及对象310的轮廓320。在此是以对象310为例,但轮廓估算模块220也可以辨识出数目更多的对象,本发明并不在此限。
[0061]位图产生模块230会根据一个像素是否位于轮廓320上来改变此像素的景深值以产生一个轮廓位图。例如,请参照图5,图5是根据一范例实施例绘示产生轮廓位图的流程图。在步骤S502中,位图产生模块230会取得景深图300中的一个像素。在步骤S504中,位图产生模块230会判断此像素是否位于轮廓320上。若是,在步骤S506中,位图产生模块230会改变此像素的景深值至一个预设值与偏移值的相加。若不是,在步骤S508中,位图产生模块230会改变此像素的景深值至预设值。接着,在步骤S510中,位图产生模块230会判断是否已处理完所有的像素。若步骤S510的判断结果为是,则位图产生模块230会结束此流程;若否,位图产生模块230会回到步骤S502,继续处理下一个像素。在一范例实施例中,预设值为128,而偏移值是不为O的整数。因此,在执行完图5的各步骤以后,轮廓位图中仅会有两种数值。然而,在其他范例实施例中,预设值与偏移值可为其他的数值,本发明并不在此限。
[0062]在一范例实施例中,压缩模块240会用一个视频压缩算法压缩此轮廓位图以产生第一位串。此视频压缩算法包括空间-频率转换(spatial-frequency transformation)与量化运算(quantization operation)。例如,此视频压缩算法为H.264压缩算法、高效率视频编码(High Efficiency Video Coding, HEVC)算法。在其他范例实施例中,压缩模块240也可以将轮廓位图以二元字符串的型态进行压缩。例如,压缩模块240会把轮廓的部分标记成位“1”,非轮廓的部分标记成位“0”,借此形成二元字符串。然后,压缩模块240用可变长度编码(variable length coding, VLC)算法,或是二兀算术编码(binary arithmeticcoding, BAC)算法来编码该二元字符串,借此压缩此轮廓位图,本发明并不在此限。
[0063]值得注意的是,由于轮廓位图中仅有两种数值,并且在一个对象中的所有景深值会相同(即,预设值),因此轮廓位图的压缩比会被提高。在一范例实施例中,位图产生模块230可以根据立体视频的一个比特率来设定此偏移值,借此让偏移值与比特率之间为反比关系。详细来说,当比特率越高时,表示量化参数(quantization parameter, QP)越小,因此即使偏移值被设定的很小也不容易产生失真(distortion)。相反地,若比特率越f氏表示量化参数越大,因此偏移值必须被设定的大一点,借此让轮廓位图中两个不同的数值不会被量化为同一个数值。
[0064]在压缩模块240压缩完轮廓位图并产生第一位串以后,此第一位串会被送到一个解码端。而为了让译码端与立体视频编码系统200之间可以同步。解压缩模块250会解压缩第一位串以产生一个重建轮廓位图。然而,由于压缩模块240是根据视频压缩算法来产生第一位串,因此重建轮廓位图与轮廓位图之间并不会完全相同。请参照图6,图6是根据一范例实施例绘示重建轮廓位图的示意图。重建轮廓位图600中的轮廓610是对应于对象310且是破碎以及不连续。因此,解压缩模块250会修补轮廓610,使得轮廓610有封闭范围(closing region)。例如,解压缩模块250会对重建轮廓位图600执行二值化运算、线条侦测、以及细线化运算。然而,在其他范例实施例中,解压缩模块250也可以用其他算法来修补轮廓610,本发明并不在此限。
[0065]图7是根据一范例实施例绘示取得取样像素的示意图。
[0066]请参照图6与图7,接下来,取样模块260会根据重建轮廓位图600的轮廓610,取得位于对象310内的像素中的多个取样像素。在一范例实施例中,取样模块260会取得对象310中在一个方向上多个像素的景深值。若在一方向上的景深值为单调递增(monotonically increasing)或单调递减(monotonically decreasing),取样模块 260 会取得在此方向上的至少两个端点像素为取样像素。若一方向上的景深值不为单调递增或单调递减(即,包括了递增与递减两种变化),则取得模块260会取得对象内的像素中在此方向上的至少两个端点像素与至少一个中间像素作为取样像素。举例来说,取样模块260会取得方向710上多个像素的像素值,在此假设方向710上的景深值为单调递增。因此取样模块260会将方向710上的两个端点像素711与712设定为取样像素。端点像素711与712即为在方向710最左边与最右边的两个像素。另一方面,取样模块260会取得方向720上的景深值,在此假设方向720上的景深值不为单调递增或单调递减(例如,先递减以后再递增)。因此,取样模块260会取得方向720上的两个端点像素721与722,以及一个中间像素723。端点像素721与722即为方向721上最上面与最下面的两个像素。而中间像素723的景深值为方向720上所有的景深值中最大或是最小的一个景深值。然而,在其他范例实施例中,取样模块260可以在其他方向上取得取样像素,也可以取得数目更多的中间像素为取样像素,本发明并不在此限。
[0067]在取得取样像素以后,熵值编码模块270会编码这些取样像素的位置与景深值以产生第二位串。此第二位串会被传送到一个译码端,而译码端会重建出这些取样像素的位置与景深值。另一方面,译码端也会取得重建轮廓位图。根据重建轮廓位图与这些取样像素,解碼端会内插出对象310内所有的景深值。在一范例实施例中,译码端会用线性的方式内插出取样像素以外的其他像素的景深值。然而,解码端也可以根据取样像素的位置与景深值计算出一个多项式函数(polynomial function)或是指数函数(exponentialfunction),并且根据此多项式函数或指数函数计算出其他的景深值。
[0068]图8是根据一范例实施例绘示编码与译码立体视频的示意图。[0069]请参照图8,在压缩程序800中,立体视频801是由多个视角的摄影机所拍摄的(例如,由左摄影机、中摄影机以及右摄影机所拍摄)。立体视频801中某一视角的景深会被估测(步骤802)以产生一个景深图。在步骤803中,辨识此景深图中一个对象的轮廓。在步骤804中,根据辨识出的轮廓产生轮廓位图。在步骤805中,压缩此轮廓位图以产生第一位串806。在步骤807中,解压缩此第一位串806以产生重建轮廓位图。在步骤808中,根据景深图与重建轮廓位图取得取样像素。在步骤809中,对这些取样像素的位置与深度值作熵值编码以产生第二位串810。另一方面,在步骤811中,压缩立体视频801中的纹理图像以产生第三位串812。多工器813会根据第一位串806、第二位串810与第三位串812产生代表立体视频801的第四位串,并且传送至网络或存储单元814。
[0070]在解压缩程序820中,解多工器821会从网络或存储单元814取得此第四位串,并且译码出第一位串806、第二位串810与第三位串812。在步骤822中,根据第三位串812解压缩出纹理图像。在步骤823,对第二位串810做熵值译码,以取得取样像素的位置与景深图。在步骤824,根据第一位串806解压缩出轮廓位图。步骤825中,根据轮廓位图与取样像素内插出一个物件内的景深值,借此重建出景深图。步骤826中,根据纹理图像与景深图合成出不同视角的图像。
[0071]图9是根据一范例实施例绘示立体视频的编码方法的流程图。
[0072]请参照图9,在步骤S902中,取得立体视频的景深图。在步骤S904中,辨识景深图中对象的轮廓。在步骤S906中,根据像素是否位于轮廓上改变景深值以产生轮廓位图。在步骤S908中,压缩轮廓位图以产生第一位串,并且解压缩第一位串以产生重建轮廓位图。在步骤S910中,根据重建轮廓位图内对应于该对象的轮廓,取得所述像素中在对象内的多个取样像素。在步骤S912中,编码取样像素的位置与景深值。然而,图9中各步骤已详细说明如上,在此便不再赘述。值得注意的是,此立体视频的编码方法可用于一个视频编码装置。而此视频编码装置可被实现为个人计算机、笔记本电脑、服务器、智能型手机、平板计算机、数字相机或是任意形式的嵌入式系统,本发明并不在此限。
[0073]综上所述,本发明范例实施例所提出的立体视频的编码方法与立体视频编码系统,可以用对象为基础的方式编码景深图。并且,代表轮廓的轮廓位图是用视频压缩算法来编码,使得可兼容于二维的视频编码。此外,景深图可用数个取样像素来重建,借此进一步提升压缩比。
[0074]虽然本发明已以实施例揭露如上,然其并非用于限定本发明,任何所属【技术领域】中普通技术人员,在不脱离本发明的精神和范围内,当可作部分的更改与修饰,故本发明的保护范围当视权利要求所界定者为准。
【权利要求】
1.一种立体视频的编码方法,其特征在于,适用于一视频编码装置,该编码方法包括: 取得该立体视频的一景深图,其中该景深图包括多个像素,并且每一该些像素包括一景深值; 辨识该景深图中一对象的一第一轮廓; 根据每一该些像素是否位于该第一轮廓上改变该些景深值以产生一轮廓位图; 压缩该轮廓位图以产生一第一位串,并且解压缩该第一位串以产生一重建轮廓位图;根据该重建轮廓位图内对应于该对象的一第二轮廓,取得该些像素中在该对象内的多个取样像素;以及 编码每一该些取样像素的一位置与该景深值。
2.根据权利要求1所述的编码方法,其特征在于,根据每一该些像素是否位于该第一轮廓上改变该些景深值以产生该轮廓位图的步骤包括: 若该些像素中的一第一像素位于该第一轮廓上,改变该第一像素的该景深值至一预设值与一偏移值的相加;以及 若该第一像素不位于该第一轮廓上,改变该第一像素的该景深值至该预设值。
3.根据权利要求2所述的编码方法,其特征在于,该偏移值与该立体视频的一比特率之间为一反比关系。
4.根据权利要求1所述的编码方法,其特征在于,解压缩该第一位串以产生该重建轮廓位图的步骤还包括: 修补该第二轮廓,使得该第二轮廓有一封闭范围。
5.根据权利要求1所述的编码方法,其特征在于,根据该重建轮廓位图,取得该景深图中该对象内的多个取样像素的步骤包括: 取得该对象内在一方向上的多个第二景深值; 若该些第二景深值为单调递增或单调递减,取得该对象内在该方向上的至少两端点像素为该些取样像素;以及 若该些第二景深值不为单调递增或单调递减,取得该对象内在该方向上的该至少两端点像素与至少一中间像素为该些取样像素。
6.根据权利要求5所述的编码方法,其特征在于,还包括: 根据该些取样像素与该第二轮廓,内插出该对象内的该些景深值。
7.根据权利要求1所述的编码方法,其特征在于,压缩该轮廓位图以产生该第一位串的步骤包括: 以一视频压缩算法压缩该轮廓位图以产生该第一位串,其中该视频压缩算法包括一空间-频率转换与一量化运算。
8.一种立体视频编码系统,其特征在于,包括: 一景深估算模块,用于取得该立体视频的一景深图,其中该景深图包括多个像素,并且每一该些像素包括一景深值; 一轮廓估算模块,耦接至该景深估算模块,用于辨识该景深图中一对象的一第一轮廓; 一位图产生模块,耦接至该轮廓估算模块,用于根据每一该些像素是否位于该第一轮廓上改变该些景深值以产生一轮廓位图;一压缩模块,耦接至该位图产生模块,用于压缩该轮廓位图以产生一第一位串; 一解压缩模块,耦接至该压缩模块,用于解压缩该第一位串以产生一重建轮廓位图;一取样模块,耦接至该景深估算模块与该解压缩模块,用于根据该重建轮廓位图内对应该对象的一第二轮廓,取得该些像素中在该对象内的多个取样像素;以及 一熵值编码模块,耦接至该取样模块,用于编码每一该些取样像素的一位置与该景深值。
9.根据权利要求8所述的立体视频编码系统,其特征在于,若该些像素中的一第一像素位于该第一轮廓上,该位图产生模块用于改变该第一像素的该景深值至一预设值与一偏移值的相加, 若该第一像素不位于该第一轮廓上,该位图产生模块用于改变该第一像素的该景深值至该预设值。
10.根据权利要求9所述的立体视频编码系统,其特征在于,该偏移值与该立体视频的一比特率之间为一反比关系。
11.根据权利要求8 所述的立体视频编码系统,其特征在于,该解压缩模块还用于修补该第二轮廓,使得该第二轮廓有一封闭范围。
12.根据权利要求8所述的立体视频编码系统,其特征在于,该取样模块还用于取得该对象内在一方向上的多个第二景深值, 若该些第二景深值为单调递增或单调递减,该取样模块取得该对象内在该方向上的至少两端点像素作为该些取样像素, 若该些第二景深值不为单调递增或单调递减,该取样模块取得该对象内在该方向上的该至少两端点像素与至少一中间像素作为该些取样像素。
13.根据权利要求8所述的立体视频编码系统,其特征在于,该解压缩模块以一视频压缩算法压缩该轮廓位图以产生该第一位串,其中该视频压缩算法包括一空间-频率转换与一量化运算。
【文档编号】H04N19/597GK103841396SQ201210574260
【公开日】2014年6月4日 申请日期:2012年12月21日 优先权日:2012年11月23日
【发明者】涂日升, 高荣扬 申请人:财团法人工业技术研究院