视频图像的编码方法及视频比特流的解码方法_4

文档序号:9847206阅读:来源:国知局
pFlag的初始化并不需要执行,但是对于非LCU对齐的条带,贝1J需要执行FirstCuFlag的初始化以处理条带中具有至少一个非零系数的第一叶⑶。依据所述的变化例,coding_unit()的语法被修改,以使delta QP可仅于尺寸大于或等于QP最小CU的尺寸的叶CU的末端存在,或仅于尺寸等于QP最小CU的尺寸的分割CU的最后一个叶⑶之后存在。进一步来说,transform_unit()语法与delta QP相关的部分被修改,以使delta QP仅在对应的区域具有至少一个非零量化转化系数时被传送。所述区域中具有至少一个非零量化转化系数的条件,可基于预测模式(Predict1n Mode,以下简称为PredMode)、编码块类型(Coded Block Pattern,以下简称为CBP)、编码块旗标(CodedBlock Flag,以下简称为CBF)或者三者的任一组合来侦测。举例来说,PredMode为跳过(SKIP)模式时,其暗示着所述叶CU中没有残差(residue)存在。当变长编码(Variable-Length Coding,以下简称VLC)被使用且CBP为O,其暗示着所述叶⑶中没有残差存在。当上下文自适应二进制算数编码(Context-based Adaptive Binary Arithmetic Coding,以下简称为CABAC)被使用且CBF为0,其同样暗示着所述叶CU中没有残差存在。对于上述叶CU来说,QP信息可被省略以提升编码及传送效率。
[0046]为支持上述变化例,coding_unit()语法修改如图9A及图9B中的区块910?940所示。区块910中,当CurrrCuSize与QpMinCuSize相同时,NonZeroFound被设置为O。接着,后续的程序coding_unit()被以递归的方式来执行,其中,NonZeroFound的值可被改变。于区块920所不的过程中,若CurrrCuSize与QpMinCuSize相同,则检查NonZeroFound的值。若NonZeroFound的值为I,发送delta_qp。在predict1n_unit()程序被调用后,若PredMode并非为SKIP,则执行区块930。在区块930中,若CurrrCuSize大于或等于QpMinCuSize,贝丨JNonZeroFound被设置为O。接着,后续的程序transf orm_uni t ()被执行,其中,NonZeroFound的值可被改变。在transform_unit()程序被调用后,区块940被执行。在区块940所示的过程中,若CurrrCuSize大于或等于QpMinCuSize,则检查NonZeroFound的值。若NonZeroFound的值为I,发送de I ta_qp。
[0047]为支持上述变化例,transf orm_unit O语法修改如图10中的区块1010所示。当VLC被使用且CBP并非为O,其暗示着所述叶⑶中存在至少一个非零转化系数,且NonZeroFound被设置I。另一方面,当VLC被使用且CBP为O,NonZeroFound具有与之前相同的值,S卩,O。当CABAC被使用且CBF并非为O时,其暗示着所述叶CU中存在至少一个非零转化系数,且NonZeroFound被设置I。另一方面,当CABAC被使用且CBF为O时,NonZeroFound具有与之前相同的值,即,O。
[0048]为支持上述变化例,序列标头及条带标头语法并未改变,其如图4及图5所示。如前所述,序列标头中的语法元素sps_qp_max_depth定义了 IXU中QP最小⑶的尺寸的深度。于每一条带标头中,sh_cip_max_depth定义了IXU中QP最小⑶的尺寸的深度。区块510中的语法元素change_qp_max_depth_flag可用来指示QP最小⑶的尺寸是从序列级或者条带级选出。举例来说,change_cip_max_depth_f lag的值等于O表示用于传送QP的最小CU的尺寸是由sps_qp_max_depth得出,而change_qp_max_depth_flag的值等于I则表示用于传送QP的最小⑶的尺寸是由sh_qp_max_depth得出。对于尺寸大于或等于QpMinCuSize的一个叶⑶来说,当所述叶⑶具有至少一个非零量化转化系数时,传送一个delta QP。对于多个尺寸皆小于QpMinCuSize且具有尺寸等于QpMinCuSize的同一个父⑶的多个叶⑶来说,当所述多个叶⑶具有至少一个非零量化转化系数时,传送一个delta QP。依据所述变化例,对于大于或等于QpMinCuSize的叶⑶,当所述叶⑶具有至少一个非零量化转化系数时,传送一个delta QP。换句话说,若不存在非零量化转化系数,则不传送delta QP。进一步来说,对于多个尺寸皆小于QpMinCuSize且具有尺寸等于QpMinCuSize的同一个父⑶的多个叶⑶,当所述多个叶⑶具有至少一个非零量化转化系数时,为上述多个叶CU传送一个delta QP以共享QP信息。所述非零量化转化系数的侦测,可基于预测模式PredMode、CBP、CBF,或者以上三者的任一组合来进行。
[0049]虽然图4、5、8、9A、9B及10中的语法设计描述了依据本发明的变化例,但其所使用的特定语法元素仅用来举例说明如何实施本发明,本领域的技术人员亦可修改所述语法元素以实现相同的发明。依据所述的语法元素的范例,解码器可得出所需的QP信息,以用于解码比特流。举例来说,所述解码器可撷取语法元素change_qp_max_depth_f lag以决定QP最小CU的尺寸是在条带标头或是序列标头中指示。从而,QP最小CU的尺寸可以被决定。叶CU的尺寸可由比特流解码中得到,且条带中所述叶CU的顺序可被决定。若叶CU的尺寸大于或等于QP最小CU的尺寸,则侦测NonZeroFound的值。若NonZeroFound的值为O,则暗示着叶CU中没有非零的转化系数,且叶CU的转化系数皆被设置为O。若NonZeroFound的值为I,则编码单元数据中存在delta QP。解码器可相应地撷取所述的delta QP值,并将所述的delta QP应用至编码单元数据以解码所述编码单元。
[0050]在依据本发明的第二变化例中,用于具有非零量化转化系数的每一叶CU的deltaQP可是被明确地(explicitly)传送的,或是基于同一LCU中至少一个其他叶⑶的信息隐含地(implicitly)推导得出的。所述叶CU中具有至少一个非零量化转化系数的条件,可基于PredMode、CBP、CBF或者三者的任一组合来侦测。举例来说,若叶CU的预测模式PredMode并非是SKIP模式且编码块类型CBP在VLC被使用的状况下不为O,或者编码块旗标在CABAC被使用的状况下不为0,则叶CU包含至少一个非零转化系数。于下文中,将仅以为具有非零量化转化系数的叶CU明确地传送delta QP为例进行说明。支持所述第二变化例所需的语法如图
11至图15所示,其中,图11中的序列标头、图12中的条带标头、图13中的Slice_data()语法、以及图14A和图14B中的coding_unit()语法都与传统HEVC的对应部分相同。所需的、相比于传统HEVC的cod ing_un it()语法修改如图15中的区块1510所示。如区块1510所示,当VLC被使用且CBP为非零时,传送delta QP。同时,当CABAC被使用且CBF为非零时,也传送deltaQP。依据上述第二变化例,每一叶⑶都具有自己的QP,当且仅当所述叶⑶具有至少一个非零量化转化系数时,QP信息才会被传送。
[0051]虽然图11至图15中的语法设计描述了依据本发明的第二变化例,但其所使用的特定语法元素仅用来举例说明如何实施本发明,本领域的技术人员亦可修改所述语法元素以实现相同的发明。依据所述的语法元素的范例,若叶CU具有至少一个非零量化转化系数,解码器可得出所需的QP信息以用于解码比特流中的叶CU。举例来说,若VLC被使用且叶CU的编码块类型CBP为非零,则解码器明确地由比特流获取诸如delta QP的QP信息,或隐含地由属于同一LCU的至少一个其他叶⑶的信息推导得出。解码器可相应地撷取delta QP并将其应用至编码单元数据以进行解码。若VLC被使用且CBP为0,则暗示所述叶CU的所有转化系数都为O ο类似地,若CABAC被使用且CBF为非零,则存在de I ta QP。解码器可相应地撷取de I ta QP并将其应用至编码单元数据以进行解码。若CABAC被使用且CBF为零,则暗示着所述叶CU的所有转化系数都为O。
[0052]于依据本发明的第三变化例中,编码系统可于QP处理的两种模式间切换。于第一模式,若LCU具有至少一个非零量化转化系数,则编码系统利用每一LCU—个delta QP的方案。于第二模式,若叶CU具有至少一个非零量化转化系数,则编码系统利用每一叶CU—个delta QP的方案。为支持所述第三变化例,可使用与传统HEVC相同的序列标头语法、条带标头语法、以及sIice_data()语法。而coding_unit()语法的修改如图16A及图16B中的区块1610、1620所示。于区块1610中,lcu_based_cip_f lag被加入进来,以指示若当前CU的尺寸与IXU相同时是否使用基于IXU
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1