一种视频编解码方法及系统的制作方法

文档序号:7887960阅读:119来源:国知局
专利名称:一种视频编解码方法及系统的制作方法
技术领域
本发明涉及通信领域的网络电视技术,尤其涉及一种视频编解码方法及系统。
背景技术
目前,高级视频编码标准中都包含帧间预测功能。帧间预测是利用相邻帧的重建图像来预测当前帧,以更好的消除图像之间的时间冗余。如图1所示,帧间预测中分为前向预测P帧和双向预测B帧。在参考帧中搜索与当前帧编码单元(编码单元可以是HEVC标准中的编码单元(CU, Coding Unit)或最大编码单元(IXU, Large Coding Unit),也可以是H.264等标准中的宏模块(MB, MacroBlock)或宏模块对(MBP, MacroBlock Pair))最接近的一个编码单元,该编码单元作为当前编码单元的预测值,只需要把预测残差和运动矢量进行编码,即可在解码端重构出当前编码单元。如图2所示,编码单元按照光栅扫描的顺序依次进行编码,直到整帧图像处理完成。
由于当前帧中的每一个编码单元进行编码时,都需要在参考帧中进行运动搜索,所以要对参考帧进行多次访问。如果每次都从片外同步动态随机存储器(SDRAM, Synchronous Dynamic Random Access Memory)中访问参考巾贞,那读取参考巾贞的延时就会非常大,通常在芯片中都会加入一个片上的RAM来作为缓冲,计算单元只需要访问片上RAM中的数据,这样速度就会提高很多。同时相邻块之间可以复用已经读取到片上RAM中的数据, 这样就进一步节省了带宽,如图3所示,其中的横向数据和纵向数据都可以充分复用。
但是,图像的宽度增大时,例如4K*2K的视频每行是4ΚΒ亮度分量,如果纵向搜索范围为256,则至少需要4Κ*512 = 2ΜΒ的内存,会严重增大芯片的面积和成本。所以现有芯片中一般只采用横向复用的方式,如图4所示,使用一个搜索窗进行参考帧的数据搬移。同一行编码单元可以复用片内参考帧数据,在编码下一行时,就必须重新加载参考帧,这就导致了纵向复用的缺失,存在很多的重复读取。图5为使用条带(Slice)进行划分时的情况, 区域参考帧的数据搬移的策略与图4类似。
以4K*2K的视频为例,如果编码单元的大小为64,在搜索范围为整像素256时,P 帧单参考帧时每行编码单元亮度分量至少需要加载(256*2+64) *3840 = 2211840Β,整幅图象亮度分量需要2211840Β*34 = 75.2ΜΒ,是单帧亮度分量的9倍,60fps时亮度分量带宽就是75.2*60 = 4.5GB,B帧则翻倍为9GB,多参考B帧则需要更多。如果再考虑上色度分量, 特别是在YUV4:4:4模式时,带宽还要增加。而目前DDR3-160064bit的理论带宽只有12GB, 实际带宽不到10GB,显然会造出性能的瓶颈。如何能降低外存带宽占用,提高芯片的性能就是需要解决的问题。发明内容
有鉴于此,本发明的主要目的在于提供一种视频编解码方法及系统,能够提高视频编码运动搜索中的参考帧的复用率,降低 外存带宽占用,从而提高视频编解码芯片的性倉泛。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供一种视频编码方法,包括:
将当前编码图像或编码图像Tile划分为一个或多个编码单元组(GOC);
在每个GOC内部,按照之字型(ZigZag)扫描顺序对每个编码单元进行编码;
将GOC中包含的编码单元行数或编码单元列数写入码流。
上述方法中,该方法还包括:完成当前编码图像或编码图像Tile的编码过程中, 需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
上述方法中,所述将当前编码图像或编码图像Tile划分为一个或多个GOC为:
将当前编码图像或编码图像Tile以编码单元行或编码单元列为单位进行划分, 其中N个编码单元行或N个编码单元列为一个G0C,不满N个编码单元行或N个编码单元列的也记为一个GOC ;
其中,所述N为大于I且小于等于当前编码图像或编码图像Tile的实际编码单元行数或实际编码单元列数的正整数。
上述方法中,所述在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码为:
在每个GOC内部,按照ZigZag扫描顺序对编码单元进行编码,在不满N个编码单元行或不满N个编码单元列的GOC内部,按照ZigZag扫描顺序对编码单元进行编码,在只有I个编码单元行或只有I个编码单元列的GOC内部,按照光栅扫描顺序对编码单元进行编码;
当前编码图像或编码图像Tile中划分的多个GOC之间按照光栅扫描顺序进行编码。
本发明还提供一种视频解码方法,包括:
将当前解码图像或解码图像Tile划分为一个或多个GOC ;
从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码。
上述方法中,该方法还包括:
完成当前解码图像或解码图像Tile的解码过程中,如果码流中存在Slice划分, 则将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
上述方法中,所述将当前解码图像或解码图像Tile划分为一个或多个GOC为:
将当前解码图像或解码图像Tile以编码单元行或编码单元列为单位进行划分, 其中N个编码单元行或N个编码单元列为一个G0C,不满N个编码单元行或N个编码单元列的也记为一个GOC ;
其中,所述N为大于I且小于等于当前解码图像或解码图像Tile的实际编码单元行数或实际编码单元列数的正整数。
上述方法中,所述根据所述编码单元行数或编码单元列数在每个GOC内部,按照 ZigZag扫描顺序对每个编码单元进行解码为:
根据所述编码单元行数在每个GOC内部,按照ZigZag扫描顺序对编码单元进行解码,在不满N个编码单元行或不满N个编码单元列的GOC内部,按照ZigZag扫描顺序对编码单元进行解码,在只有I个编码单元行或只有I个编码单元 列的GOC内部,按照光栅扫描顺序对编码单元进行解码;
当前解码图像或解码图像Tile中划分的多个GOC之间按照光栅扫描顺序进行解码。
本发明还提供一种视频编解码方法,包括上述的视频编码方法和视频解码方法。
本发明还提供一种视频编码系统,包括:G0C划分单元、编码单元、写入单元;其中,
GOC划分单元,用于将当前编码图像或编码图像Tile划分为一个或多个GOC ;
编码单元,用于在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码;
写入单元,用于将GOC中包含的编码单元行数或编码单元列数写入码流。
上述系统中,该系统还包括:
Slice划分单元,用于完成当前编码图像或编码图像Tile的编码过程中,需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
本发明还提供一种视频解码系统,包括:G0C划分单元、获取单元、解码单元;其中,
GOC划分单元,用于将当前解码图像或解码图像Tile划分为一个或多个GOC ;
获取单元,用于从码流中获取GOC中包含的编码单元行数或编码单元列数;
解码单元,用于根据所述编码单元行数或编码单元列数在每个GOC内部,按照 ZigZag扫描顺序对每个编码单元进行解码。
上述系统中,该系统还包括:
Slice划分单元,用于完成当前解码图像或解码图像Tile的解码过程中,如果码流中存在Slice划分,则将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
本发明还提供一种视频编解码系统,包括:视频编码子系统、视频解码子系统;其中,
视频编码子系统,用于将当前编码图像或编码图像Tile划分为一个或多个GOC ; 在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码JfGOC中包含的编码单元行数或编码单元列数写入码流;
视频解码子系统,用于将当前解码图像或解码图像Tile划分为一个或多个GOC ; 从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码。
上述系统中,
所述视频编码子系统还用于,完成当前编码图像或编码图像Tile的编码过程中, 需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分;
所述视频解码子系统还用于,完成当前解码图像或解码图像Tile的解码过程中, 如果码流中存在Slice划分,则将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
本发明提供的视频编解码方法及系统,编码端将当前编码图像或编码图像Tile 划分为一个或多个GOC ;在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码; 将GOC中包含的编码单元行数或编码单元列数写入码流; 解码端将当前解码图像或解码图像Tile划分为一个或多个GOC ;从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码;能够在不影响视频编码压缩率的情况下,提高视频编码运动搜索中的参考帧的复用率,可以降低芯片中30% 60 %的外存带宽占用,从而提高视频编解码芯片的性能。


图1是现有技术中帧间预测示意图2是现有技术中编码单元及扫面顺序示意图3是现有技术中整行参考数据搬移示意图4是现有技术中区域参考数据搬移示意图5是现有技术中使用Slice时区域参考数据搬移示意图6是本发明实现视频编码方法的实施例一的流程示意图7是本发明中N等于2时GOC的划分示意图8是本发明中N等于3时GOC的划分示意图9是本发明中N等于2时ZigZag扫描顺序的编码示意图10是本发明中N等于3时ZigZag扫描顺序的编码示意图11是本发明中ZigZag扫描顺序中区域参考帧搬移示意图12a是本发明中N等于2时按照ZigZag边界进行Slice划分的示意图12b是本发明中N等于2时按照ZigZag边界进行Leaf-QJ aligned Slice划分的示意图13是本发明中N等于3时按照ZigZag边界进行Slice划分的示意图14是本发明中N等于2时按照矩形边界进行Slice划分的示意图15是本发明中N等于3时按照矩形边界进行Slice划分的示意图16是本发明中N等于2时按照ZigZag边界进行Slice划分时区域参考帧搬移示意图17是本发明中N等于3时按照ZigZag边界进行Slice划分时区域参考帧搬移示意图18是本发明实现视频解码方法的实施例一的流程示意图19是本发明实现视频编码方法的实施例二的流程示意图20是本发明中N等于2时Tile模式下GOC的划分示意图21是本发明中N等于2时Tile模式下ZigZag扫描顺序的编码示意图22是本发明中Tile模式下N等于2时按照ZigZag边界进行Slice划分示意图23是本发明实现视频解码方法的实施例二的流程示意图24是本发明实现 视频编解码系统的结构示意图。
具体实施方式
本发明的基本思想是:编码端将当前编码图像或编码图像Tile划分为一个或多个GOC ;在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码;将GOC中包含的编码单元行数或编码单元列数写入码流;解码端将当前解码图像或解码图像Tile划分为一个或多个GOC ;从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码。
下面通过附图及具体实施例对本发明再做进一步的详细说明。
本发明提供一种视频编码方法,包括整帧模式下的视频编码方法和Tile模式下的视频编码方法。
图6是本发明实现视频编码方法的实施例一的流程示意图,为整帧模式下的视频编码方法,如图6所示,该方法包括以下步骤:
步骤601,将当前编码图像划分为一个或多个GOC ;
具体的,一个编码图像中包括多个编码单元,在编码端,将当前编码图像以编码单元行或编码单元列为单位进行划分,其中N个编码单元行或N个或编码单元列为一组,记为一个G0C,最后不满N个编码单元行或N个或编码单元列的也记为一组;其中,N为正整数, 且为大于I且小于等于当前编码图像的实际编码单元行数或实际编码单元列数。
例如,图7和图8分别为整帧模式下N等于2和3时GOC的划分示意图,如图7和图8所示,图中的虚线为划分后的GOC的边界。
步骤602,在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码;
具体的,在每个GOC内部,从按照光栅扫描顺序对编码单元进行编码,修改为按照之字型(ZigZag)扫描顺序对编码单兀进行编码,如图9和图10所不的箭头方向;在不满N 个编码单元行或不满N个编码单元列的GOC内部,同样按照ZigZag扫描顺序对编码单元进行编码,对于只有I个编码单元行或只有I个编码单元列的GOC内部,按照光栅扫描顺序对编码单元进行编码;其中,当前编码图像中划分的多个GOC之间仍然按照光栅扫描顺序进行编码;这样,如图11中的阴影区域,同一个GOC中的两行编码单元就可以复用片内的参考帧区域。
步骤603,将GOC中包含的编码单元行数或编码单元列数写入码流;
具体的,将GOC中包含的编码单元行数N或编码单元列数N写入到码流中,然后按照现有标准中的规定完成当前编码图像的编码处理,主要包括运动估计、帧内预测、变换量化、环路滤波和熵编码等处理。
步骤604,需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分;
具体的,完成当前编码图像的编码处理过程中,需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分,按照ZigZag边界进行划分如图12a、图 12b和图13所示的粗实线所示,按照矩形边界进行划分如图14和图15所示的粗实线所示; 对于属于不同Slice的编码单元,只要还属于同一个GOC内,仍然可以复用片内的参考帧区域,例如,复用的参考帧区域可以如图16和图17中的阴影部分。
图18是本发明实现视频解码方法的实施例一的流程示意图,为整帧模式下的视频解码方法,如图18所示,该方法包括以下 步骤:
步骤1801,将当前解码图像划分为一个或多个GOC ;
具体的,一个解码图像中包括多个编码单元,在解码端,将当前解码图像以编码单元行或编码单元列为单位进行划分,其中N个编码单元行或N个或编码单元列为一组,记为一个G0C,最后不满N个编码单元行或N个或编码单元列的也记为一组;其中,N为正整数, 且为大于I且小于等于当前解码图像的实际编码单元行数或实际编码单元列数。
例如,图7和图8分别为整帧模式下N等于2和3时GOC的划分示意图,如图7和图8所示,图中的虚线为划分后的GOC的边界。
步骤1802,从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据该编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码;
具体的,从码流中译码获取GOC中包含的编码单元行数或编码单元列数,根据该编码单元行数或编码单元列数在每个GOC内部,从按照光栅扫描顺序对编码单元进行解码,修改为按照ZigZag扫描顺序对编码单元进行解码,如图9和图10所示的箭头方向;在不满N个编码单元行或不满N个编码单元列的GOC内部,同样按照ZigZag扫描顺序对编码单元进行解码,对于只有I个编码单元行或只有I个编码单元列的GOC内部,按照光栅扫描顺序对编码单元进行解码;其中,当前解码图像中划分的多个GOC之间仍然按照光栅扫描顺序进行解码;这样,如图11中的阴影区域,同一个GOC中的两行编码单元就可以复用片内的参考帧区域。
步骤1803,完成当前解码图像的解码处理;
具体的,按照现有标准的规定完成当前解码图像的解码处理,主要包括熵解码、反变换量化、运动补偿、帧间预测、环路滤波等处理。
步骤1804,码流中存在Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分;
具体的,如果码流中有已经进行Slice划分的标识,则表示码流中存在Slice划分;码流中存在Slice划分时,将当前解码图像中的GOC按照ZigZag边界进行划分或按照矩形边界进行划分,按照ZigZag边界进行划分如图12a、图12b和图13所示的粗实线所示, 按照矩形边界进行划分如图14和图15所示的粗实线所示;对于属于不同Slice的编码单元,只要还属于同一个GOC内,仍然可以复用片内的参考帧区域,例如,复用的参考帧区域可以如图16和图17中的阴影部分。
图19是本发明实现视频编码方法的实施例二的流程示意图,为Tile模式下的视频编码方法,如图19所示,该方法包括以下步骤:
步骤1901,将编码图像Tile划分为一个或多个GOC ;
具体的,一个编码图像Tile中包括多个编码单元,在编码端,将编码图像Tile以编码单元行或编码单元列为单位进行划分,其中N个编码单元行或N个或编码单元列为一组,记为一个G0C,最后不满N个编码单元行或N个或编码单元列的也记为一组;其中,N为正整数,且为大于I且小于等于编码图像Tile的实际编码单元行数或实际编码单元列数。
例如,如图20所示,图中的虚线为划分后的GOC的边界,粗实线为当前编码图像 Tile边界。
步骤1902,在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码;
具体的,在每个GOC 内部,从按照光栅扫描顺序对编码单元进行编码,修改为按照ZigZag扫描顺序对编码单元进行编码,如图21所示的箭头方向;在不满N个编码单元行或不满N个编码单元列的GOC内部,同样按照ZigZag扫描顺序对编码单元进行编码,对于只有I个编码单元行或只有I个编码单元列的GOC内部,按照光栅扫描顺序对编码单元进行编码;其中,编码图像Tile中划分的多个GOC之间仍然按照光栅扫描顺序进行编码;这样, 在一个编码图像Tile内,同一个GOC中的两行编码单元就可以复用片内的参考帧区域。
步骤1903,将GOC中包含的编码单元行数或编码单元列数写入码流;
具体的,将GOC中包含的编码单元行数N或编码单元列数N写入到码流中,然后按照现有标准中的规定完成编码图像Tile的编码处理,主要包括运动估计、帧内预测、变换量化。环路滤波和熵编码等处理。
步骤1904,需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分;
具体的,完成编码图像Tile的编码处理过程中,需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分,按照ZigZag边界进行划分如图22所示的粗实线所示;对于同一个Tile内的不同Slice的编码单元,只要还属于同一个GOC内,仍然可以复用片内的参考帧区域。
图23是本发明实现视频解码方法的实施例二的流程示意图,为Tile模式下的视频解码方法,如图23所示,该方法包括以下步骤:
步骤2301,将解码图像Tile划分为一个或多个GOC ;
具体的,一个解码图像中包括多个编码单元,在解码端,将解码图像Tile以编码单元行或编码单元列为单位进行划分,其中N个编码单元行或N个或编码单元列为一组,记为一个G0C,最后不满N个编码单元行或N个或编码单元列的也记为一组;其中,N为正整数,且为大于I且小于等于解码图像Tile的实际编码单元行数或实际编码单元列数。
例如,如图20所示,图中的虚线为划分后的GOC的边界,粗实线为当前编码图像 Tile边界。
步骤2302,从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据该编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码;
具体的,从码流中译码获取GOC中包含的编码单元行数或编码单元列数,根据该编码单元行数或编码单元列数在每个GOC内部,从按照光栅扫描顺序对编码单元进行解码,修改为按照ZigZag扫描顺序对编码单元进行解码,如图21所示的箭头方向;在不满N 个编码单元行或不满N个编码单元列的GOC内部,同样按照ZigZag扫描顺序对编码单元进行解码,对于只有I个编码单元行或只有I个编码单元列的GOC内部,按照光栅扫描顺序对编码单元进行解码;其中,解码图像Tile中划分的多个GOC之间仍然按照光栅扫描顺序进行解码;这样同一个GOC中的两行编码单元就可以复用片内的参考帧区域。
步骤2303,完成解码图像Tile的解码处理;
具体的,按照现有标准的规定完成解码图像Tile的解码处理,主要包括熵解码、 反变换量化、运动补偿、帧间预测、环路滤波等处理。
步骤2304,码流中存 在Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分;
具体的,如果码流中有已经进行Slice划分的标识,则表示码流中存在Slice划分;码流中存在Slice划分时,将解码图像Tile中的GOC按照ZigZag边界进行划分或按照矩形边界进行划分,按照ZigZag边界进行划分如图22所示的粗实线所示;对于同一 Tile 内不同Slice的编码单元,只要还属于同一个GOC内,仍然可以复用片内的参考帧区域。
为实现上述方法,本发明还提供一种视频编解码系统,图24是本发明实现视频编解码系统的结构示意图,如图24所示,该系统包括:视频编码子系统10、视频解码子系统 20 ;其中,
视频编码子系统10,用于将当前编码图像或编码图像Tile划分为一个或多个 GOC ;在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码;将GOC中包含的编码单元行数或编码单元列数写入码流;完成当前编码图像或编码图像Tile的编码过程中, 需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分;
视频解码子系统20,用于将当前解码图像或解码图像Tile划分为一个或多个 GOC ;从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码;完成当前解码图像的解码过程中,如果码流中存在Slice划分,则将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
所述视频编码子系统10进一步包括:G0C划分单元11、编码单元12、写入单元13、 Slice划分单元14 ;其中,
GOC划分单元11,用于将当前编码图像或编码图像Tile划分为一个或多个G0C;
编码单元12,用于在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码;
写入单元13,用于将GOC中包含的编码单元行数或编码单元列数写入码流;
Slice划分单元14,用于完成当前编码图像或编码图像Tile的编码过程中,需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
所述视频解码子系统20进一步包括:G0C划分单元21、获取单元22、解码单元23、 Slice划分单元24 ;其中,
GOC划分单元21,用于将当前解码图像或解码图像Tile划分为一个或多个GOC ;
获取单元22,用于从码流中获取GOC中包含的编码单元行数或编码单元列数;
解码单元23,用于根据所述编码单元行数或编码单元列数在每个GOC内部,按照 ZigZag扫描顺序对每个编码单元进行解码;
Slice划分单元24,用于完成当前解码图像或解码图像Tile的解码过程中,如果码流中存在Slice划分,则将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
以上所述,仅为 本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种视频编码方法,其特征在于,该方法包括:将当前编码图像或编码图像Tile划分为一个或多个编码单元组(GOC);在每个GOC内部,按照之字型(ZigZag)扫描顺序对每个编码单元进行编码;将GOC中包含的编码单元行数或编码单元列数写入码流。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:完成当前编码图像或编码图像Tile的编码过程中,需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
3.根据权利要求1所述的方法,其特征在于,所述将当前编码图像或编码图像Tile划分为一个或多个GOC为:将当前编码图像或编码图像Tile以编码单元行或编码单元列为单位进行划分,其中N 个编码单元行或N个编码单元列为一个G0C,不满N个编码单元行或N个编码单元列的也记为一个GOC ;其中,所述N为大于I且小于等于当前编码图像或编码图像Tile的实际编码单元行数或实际编码单元列数的正整数。
4.根据权利要求1所述的方法,其特征在于,所述在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码为:在每个GOC内部,按照ZigZag扫描顺序对编码单元进行编码,在不满N个编码单元行或不满N个编码单元列的GOC内部,按照ZigZag扫描顺序对编码单元进行编码,在只有I个编码单元行或只有I个编码单元列的GOC内部,按照光栅扫描顺序对编码单元进行编码;当前编码图像或编码图像Tile中划分的多个GOC之间按照光栅扫描顺序进行编码。
5.一种视频解码方法,其特征在于,该方法包括:将当前解码图像或解码图像Tile划分为一个或多个GOC ;从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码。
6.根据权利要求5所述的方法,其特征在于,该方法还包括:完成当前解码图像或解码图像Tile的解码过程中,如果码流中存在Slice划分,则将 GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
7.根据权利要求5所述的方法,其特征在于,所述将当前解码图像或解码图像Tile划分为一个或多个GOC为:将当前解码图像或解码图像Tile以编码单元行或编码单元列为单位进行划分,其中N 个编码单元行或N个编码单元列为一个G0C,不满N个编码单元行 或N个编码单元列的也记为一个GOC ;其中,所述N为大于I且小于等于当前解码图像或解码图像Tile的实际编码单元行数或实际编码单元列数的正整数。
8.根据权利要求5所述的方法,其特征在于,所述根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码为:根据所述编码单元行数在每个GOC内部,按照ZigZag扫描顺序对编码单元进行解码, 在不满N个编码单元行或不满N个编码单元列的GOC内部,按照ZigZag扫描顺序对编码单元进行解码,在只有I个编码单元行或只有I个编码单元列的GOC内部,按照光栅扫描顺序对编码单元进行解码;当前解码图像或解码图像Tile中划分的多个GOC之间按照光栅扫描顺序进行解码。
9.一种视频编解码方法,其特征在于,该方法包括如权利要求1至4任一项所述的视频编码方法、以及如权利要求5至8任一项所述的视频解码方法。
10.一种视频编码系统,其特征在于,该系统包括:G0C划分单元、编码单元、写入单元; 其中,GOC划分单元,用于将当前编码图像或编码图像Tile划分为一个或多个GOC ;编码单元,用于在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码; 写入单元,用于将GOC中包含的编码单元行数或编码单元列数写入码流。
11.根据权利要求10所述的系统,其特征在于,该系统还包括:Slice划分单元,用于完成当前编码图像或编码图像Tile的编码过程中,需要进行 Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
12.一种视频解码系统,其特征在于,该系统包括:G0C划分单元、获取单元、解码单元; 其中,GOC划分单元,用于将当前解码图像或解码图像Tile划分为一个或多个GOC ;获取单元,用于从码流中获取GOC中包含的编码单元行数或编码单元列数;解码单元,用于根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag 扫描顺序对每个编码单元进行解码。
13.根据权利要求12所述的系统,其特征在于,该系统还包括:Slice划分单元,用于完成当前解码图像或解码图像Tile的解码过程中,如果码流中存在Slice划分,则将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
14.一种视频编解码系统,其特征包括,该系统包括:视频编码子系统、视频解码子系统;其中,视频编码子系统,用 于将当前编码图像或编码图像Tile划分为一个或多个GOC ;在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行编码;将GOC中包含的编码单元行数或编码单元列数写入码流;视频解码子系统,用于将当前解码图像或解码图像Tile划分为一个或多个GOC ;从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码。
15.根据权利要求14所述的系统,其特征在于,所述视频编码子系统还用于,完成当前编码图像或编码图像Tile的编码过程中,需要进行Slice划分时,将GOC按照ZigZag边界进行划分或按照矩形边界进行划分;所述视频解码子系统还用于,完成当前解码图像或解码图像Tile的解码过程中,如果码流中存在Slice划分,则将GOC按照ZigZag边界进行划分或按照矩形边界进行划分。
全文摘要
本发明公开一种视频编解码方法及系统,该系统包括视频编码子系统将当前编码图像或编码图像Tile划分为一个或多个编码单元组(GOC);在每个GOC内部,按照之字型(ZigZag)扫描顺序对每个编码单元进行编码;将GOC中包含的编码单元行数或编码单元列数写入码流;视频解码子系统将当前解码图像或解码图像Tile划分为一个或多个GOC;从码流中获取GOC中包含的编码单元行数或编码单元列数,并根据所述编码单元行数或编码单元列数在每个GOC内部,按照ZigZag扫描顺序对每个编码单元进行解码。根据本发明的技术方案,能够提高视频编码运动搜索中的参考帧的复用率,降低外存带宽占用,从而提高视频编解码芯片的性能。
文档编号H04N7/26GK103220507SQ201210018330
公开日2013年7月24日 申请日期2012年1月19日 优先权日2012年1月19日
发明者梁立伟, 王宁 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1