基于四叉树编码和解码自适应量化参数的方法及装置与流程

文档序号:11292554
基于四叉树编码和解码自适应量化参数的方法及装置与流程

技术领域

本发明涉及一种对视频进行编码/解码的装置及方法,并且更具体而言涉及一种基于关于最大编码单元(LCU)中的编码单元(CUs)的四叉树显示具有量化/解量化的差分值的块并且使用关于与待编码/解码的块相邻的块的背景信息来自适应地预测/解码量化/解量化参数值的视频编码/解码的方法和装置。

高效率视频编码(HEVC)通过编码单元(CU)对输入图像进行编码/解码。在帧中具有最大尺寸的编码单元称为最大编码单元(LCU),基于用于编码/解码的四叉树分割信息,将LCU分割成多个CU。在HEVC中,将一个量化参数值分配给LCU,并且根据光栅扫描顺序从以前的LCU预测待编码的当前LCU的量化参数值。



背景技术:

在H.265/AVC标准中,在宏块单位上执行编码/解码,并且将量化/解量化值分配到每一个宏块。从位于帧中左侧的宏块的量化参数值来预测分配给每一个宏块的量化参数值。将预测量化参数值之后生成的差分值写入宏块以编码,从而执行编码。解码器通过将在熵解码中解码的量化参数差分值和左侧宏块的量化参数值相加,对量化参数值进行解码。

然而,当与输入图像的尺寸相比分配大的LCU时,使用由LCU存储的量化参数值也许不能有效地控制比特率。进一步地,当由CU分配量化参数值时,由于来自于相邻CU的量化参数值的差异,也许会发生图像质量的主观恶化。因此,需要一种依赖于输入图像将量化参数值分配到从CU到LCU的多种块尺寸并且使用关于相邻待编码的块的块的背景信息来最佳地预测量化参数的方法。



技术实现要素:

技术问题

本发明一方面提供了一种基于关于CU的分割信息对基于四叉树的量化/解量化参数值进行编码/解码的方法以及装置。该量化/解量化参数编码/解码方法能够通过使用关于相邻块的背景信息以有效方式对量化/解量化参数值进行预测。

本发明的技术问题并不限于上述所涉及的那些,并且基于下面描述所属领域技术人员可以理解此处未声明的附加问题。

技术方案

本发明的实施例提供了一种视频编码装置,包括:量化差分值存储块单位确定模块,其确定当将图像的最大编码单元分割成四叉树中的多个CU或者将其编码为单个CU时用于存储量化参数(QP)差分值的块单位;量化模块,其使用分配给每一个块单位的量化值来执行量化;量化预测块确定模块,其使用关于相邻块的背景信息自适应地确定预测块以便预测由待编码的块使用的量化值;QP差分值生成模块,其使用基于背景信息确定的预测块的QP生成待编码的块的量化差分值;QP存储模块,其存储关于量化差分值存储块单位的分割信息以及对应的块的量化差分值。

本发明的另一实施例提供了一种视频解码装置,其包括:解量化参数差分值块分割标记得出模块,其对关于LCU中具有解量化参数差分值的块的信息进行解码;解量化差分值存储块单位确定模块,其使用解码的解量化参数差分值块分割标记来确定最大编码单元中具有解量化参数差分值的块;解量化参数差分值得出模块,其根据解量化参数差分值块分割标记对解量化参数差分值进行解码,解量化参数值预测块确定模块,其基于关于相邻块的背景信息确定用于预测的块以便对待解码的块的解量化参数值进行解码;解量化参数值得出模块,其对用于解量化的解量化参数值进行解码;以及解量化模块,其使用解码的解量化参数值来执行解量化。

有益效果

根据本发明实施例的基于四叉树的自适应量化/解量化参数编码和解码的方法以及装置使得当在四叉树中分割块时能够分配不同水平的量化参数差分值行。与对LCU中单一量化参数值进行分配相比,量化参数差分值的这种不同水平的分配允许对比特率的精确调整。进一步地,在预测/解码每个块单位的量化/解量化参数值时,可以不仅使用基于四叉树的锯齿扫描而且使用关于相邻块的背景信息来自适应地确定预测方向,因而解决了由于来自于相邻编码单元的量化参数值的差异而可能发生的图像质量的主观恶化。

附图说明

图1A示出了根据本发明第一示例性实施例的在视频编码装置中用于向具有四叉树结构的块自适应地分配量化参数值(QP)以及对QP进行编码的方法和装置。

图1B示出了根据本发明第一示例性实施例的视频解码装置中基于四叉树的自适应解量化参数解码的方法和装置。

图2示出了根据本发明第一示例性实施例的视频解码装置的配置。

图3示出了根据本发明第一示例性实施例的用于控制记录在序列参数集中的基于四叉树的量化差分值的背景。

图4示出了根据本发明第一示例性实施例的切片数据中的初始值的变量集。

图5示出了根据本发明第一示例性实施例的由CU存储的量化/解量化参数差分值的背景以及差分值所存在的条件。

图6示出了根据本发明第一示例性实施例的量化差分值存储块单位确定模块中和解量化差分值存储块单位确定模块中的操作。

图7示出了根据本发明第一示例性实施例的QP值预测块确定模块和解量化参数值预测块确定模块中的操作。

图8示出了根据本发明第二示例性实施例的QP值预测块确定模块和解量化参数值预测块确定模块中的操作。

图9示出了根据本发明第三示例性实施例的QP值预测块确定模块和解量化参数值预测块确定模块中的操作。

图10示出了根据本发明第四示例性实施例的QP值预测块确定模块和解量化参数值预测块确定模块中的操作。

图11示出了根据本发明第五示例性实施例的QP值预测块确定模块和解量化参数值预测块确定模块中的操作。

发明模式

在下文中,将参考附图描述根据本发明的示例性实施例的基于四叉树的自适应量化/解量化参数的编码和解码装置。

图1A示出了根据本发明第一示例性实施例的在视频编码装置中用于向具有四叉树结构的块自适应地分配量化参数(QP)值以及对该QP值进行编码的方法和装置。

参考图1A,基于四叉树的自适应量化/解量化参数编码的方法和装置包括量化差分值存储块单位确定模块100,量化模块101,QP值预测块确定模块102,QP差分值生成模块103,以及QP存储模块104。

量化差分值存储块单位确定模块100可以基于关于将图像的最大编码单元(LCU)分割成多个CU的信息,确定用于记录每一个编码单元(CU)或者一组多个CU的量化差分值的块单位。关于用于存储量化差分值的块的信息可以具有四叉树结构。

量化模块101使用分配给块的QP值在输入块上执行量化。

QP值预测块确定模块102使用关于该CU的相邻该CU的背景信息来确定用于分配给每一个CU或任意CU的量化值的预测的预测块。

QP差分值生成模块103通过从由QP值预测块确定模块102确定的量化值预测块的QP值减去当前块的量化值,生成QP差分值。

QP存储模块104用于对下述进行熵编码:序列参数集、关于切片单位适用/非适用的标记信息、用于指示关于包括量化差分值的块的分割信息的标记信息以及用于基于四叉树的自适应QP编码的QP差分值。

图1B示出了根据本发明第一示例性实施例的视频解码装置中基于四叉树的自适应解量化参数解码的方法和装置。

参考图1B,基于四叉树的自适应解量化参数解码的方法和装置包括解量化参数差分值块分割标记得出模块120、解量化差分值存储块单位确定模块121、解量化参数差分值得出模块122、解量化参数值预测块确定模块123、解量化参数值得出模块124以及解量化参数模块125。

解量化参数差分值块分割标记得出模块120通过切片数据中的LCU对具有解量化参数差分值的块的序列参数集和块分割标记进行解码。

解量化差分值存储块单位确定模块121使用解码的解量化参数差分值块分割标记和CU分割标记来确定用于记录解量化参数差分值的块。关于用于存储量化差分值的块的信息可以具有四叉树结构。

解量化参数差分值得出模块122得出由解量化差分值存储块单位确定模块121确定的每一个块的解量化参数差分值。

解量化参数值预测块确定模块123使用关于解量化中的相邻块的背景信息得出及确定用于自适应参考的块。

解量化参数值得出模块124通过将由解量化参数值预测块确定模块123得出的预测块的解量化参数值与由解量化参数差分值得出模块122得出的解量化参数差分值相加,得出用于解量化参数模块125的解量化参数值。

解量化参数模块125使用由解量化参数值得出模块124得出的参数,在输入块上执行解量化。

图2示出了根据本发明第一示例性实施例的视频解码装置的构造。

参考图2,该视频解码装置包括熵解码模块200、基于四叉树解的量化参数得出模块210、重置模块220、解量化模块230、反离散余弦变换编码模块240、外部/内部预测模块250以及过滤模块260。

熵解码模块200包括:解量化参数差分值块分割标记得出模块120,用于得出用于基于四叉树的自适应解量化的块分割标记;解量化差分值存储块单位确定模块121,用于确定用于存储来自所得出的块分割标记的QP的块,以及解量化参数差分值得出模块122,用于对存储在对应的块中的解量化参数差分值进行解码。

基于四叉树的解量化参数得出模块210包括:解量化参数值预测块确定模块123,用于确定用于解码解量化参数时的参考的预测块;以及解量化参数值得出模块124,用于通过将预测块的解量化参数和得出的解量化参数差分值相加来得出解量化参数。

图3示出了根据本发明第一示例性实施例的用于控制存储在序列参数集中的基于四叉树的量化差分值的背景。

当cu_qp_delta_enabled_flag 300在序列参数集中具有值1时,可以控制在序列中的所有切片中从最小尺寸的CU到最大尺寸的CU的多种四叉树块的量化/解QP差分值。

图4A示出了根据本发明第一示例性实施例的切片数据中初始值的变量集。

当在四叉树中分割切片并且对其进行编码/解码时,首先将切片分割成这样一种LCU,其中,该LCU是具有最大尺寸的四叉树,随后按照顺次的扫描次序中对该LCU进行编码/解码。在每一个LCU的编码/解码中,可以在四叉树中进一步地将LCU分割成多个CU,并且可以执行如此分割直到将CU分割成为最小尺寸的CU为止。

在图4A中,isCuQpDeltaCoded 400是当将任意CU分割成N个CU时用于控制可存储在每个CU中的量化/解量化参数差分值的变量。在对切片中的每个LCU进行编码/解码之前,总是将该变量初始化为0。

在图4A中,coding_tree 401是用于在切片中一个LCU上执行编码/解码的函数。这个函数中的第四因子是用于指示对应的CU中是否存在量化/解量化参数差分值的标记,并且由于至少一个量化/解QP差分值存储在LCU中,因此在对切片中的每个LCU进行编码/解码之前总是输入值1。

图4B示出了示出了根据本发明第一示例性实施例的存储在编码树块中的解量化参数差分值块分割的背景。

编码树块表示CU的背景。根据split_coding_unit_flag 420,可以将尺寸为2N×2N的CU分割成四个尺寸为N×N的CU并且对其进行编码/解码。可替换地,尺寸为2N×2N的CU可以不再被分割成更小尺寸的CU而是就这样被编码/解码。

当前CU接收用于指示在更高的CU中是否存在量化/解量化参数差分值的标记即cu_qp_delta_exist_flag 421的输入。当根据split_coding_unit_flag 420的值将尺寸为2N×2N的当前CU进一步分割成尺寸为N×N的CU时,附加地对split_qp_delta_flag 422进行编码/解码。仅当存储在序列参数集中的cu_qp_delta_enable_flag 300和从更高CU输入的cu_qp_delta_exist_flag 421都具有1值时,才对关于该附加分割的信息进行编码/解码。仅当将尺寸为2N×2N的当前CU分割成尺寸为N×N的CU时才对split_qp_delta_flag 422的值进行编码/解码,并且当对尺寸为N×N的较低CU进行编码/解码时将split_qp_delta_flag 422的值作为cu_qp_delta_exist_flag 421的值来输入。

当split_qp_delta_flag 422的值为0时,将尺寸为2N×2N的当前CU分割为尺寸为N×N的CU,但不再将用于存储量化/解量化参数差分值的块从2N×2N的尺寸分割为N×N的尺寸。当split_qp_delta_flag 422的值为0时,另外将isCuQpDeltaCoded 400初始化为0,因此在将当前CU分割成尺寸为N×N的CU时,仅将量化/解QP差分值存储在第一N×N的CU中。

图5图示出了据本发明第一示例性实施例的由CU存储的量化/解量化参数差分值的背景以及差分值所存在的条件。

当CU不在跳跃(skip)模式中时,可以在CU中记录量化/解量化参数差分值。当cu_qp_delta_exist_flag 500和421的值为1时,量化/解量化参数差分值存在于当前CU中,在该情况中,可以由CU根据存储在序列参数集中的cu_qp_delta_enabled_flag 300的值来存储cu_qp_delta 501的值。例如,当cu_qp_delta_exist_flag 500和421的值为1并且cu_qp_delta_enabled_flag 300的值为0时,不存储cu_qp_delta 501。

可选地,当将2N×2N的CU分割成四叉树中的四个N×N的CU时,仅可以存储一个量化/解量化参数差分值。在这个情况中,将量化/解量化参数差分值存储在四个CU中的第一CU中,同时其他三个CU不记录该量化/解量化参数差分值。此处,由于在2N×2N的CU中被编码/解码的split_qp_delta_flag 422的值为0,因此输入到N×N的CU的cu_qp_delta_exist_flag 500的值为0。因此,虽然基本上没有cu_qp_delta 501存在于分割的四个N×N的CU中,但可以使用变量NIsCuQpDeltaCoded将cu_qp_delta 501存储在第一N×N的CU中。由于在对cu_qp_delta 501进行解码之后第一CU将NIsCuQpDeltaCoded的值变为1,因此不将cu_qp_delta 501的值存储在其他三个CU中。

即使在该情况中,仅当存储在序列参数集中的cu_qp_delta_enable_flag 300的值为1时,才可以存储cu_qp_delta 501的值,同时检查cu_qp_delta_enable_flag300的值。

图6A示出了根据本发明第一示例性实施例的量化差分值存储块单位确定模块和解量化差分值存储块单位确定模块的操作。

可以将待编码/解码的2N×2N的CU分割成四个N×N的CU,可以进一步地将每一个N×N的CU进行分割以待被处理。即使将2N×2NCU分割成多个待被编码/解码的CU,当split_qp_delta_flag 422具有如图6A所示的0值时,也将量化/解量化参数差分值存储在LCU的第一CU中。在第一CU中重构的量化/解量化参数差分值可以用于LCU的其他CU。

图6B示出了根据本发明第二示例性实施例的量化差分值存储块单位确定模块和解量化差分值存储块单位确定模块的操作。

在第一阶段将待编码/解码的2N×2N的CU分割成四个N×N的CU,将其中的第二CU进一步分割。在这个例子中,当在第一阶段中对用于表示分割成CU的标记进行编码/解码时,附加地编码/解码关于量化/解量化参数值的分割标记即split_qp_delta_flag 422和631。当split_qp_delta_flag 422和631的值为1时,所有四个分割的CU具有量化/解量化参数差分值,并且因此附加地对关于量化/解量化参数值的分割标记split_qp_delta_flag 422和631进行编码/解码。

即使在该情况中,虽然将第二N×N的CU分割成CU直到第三阶段为止,但是量化/解量化的块分割标记split_qp_delta_flag 422和631为0,并且因此针对多个CU分配单个量化/解量化参数值。

图6C示出了根据本发明第三示例性实施例的量化差分值存储块单位确定模块和解量化差分值存储块单位确定模块的操作。

图6C显示了在第一阶段将待编码/解码的2N×2N的CU分割成四个N×N的CU,将其中的第二CU进一步分割。即使将第二CU分割成四个CU,并进一步将其中的每一个分割成四个CU时,也可以使用split_qp_delta_flag 422和631的值来确定用于记录量化/解量化差分参数值的块的尺寸。在图6C中,将CU分割成具有高达三个信息深度的区域,然而量化/解量化差分参数值具有相对高达两个深度信息。

图7A示出了根据本发明第一示例性实施例的QP值预测块确定模块102和解量化参数值预测块确定模块123。

编码器向由量化差分值存储块单位确定模块100确定的CU块分配QP值并针对实际上剩余的块使用以前使用的QP值。此处,从用于以前的块的QP值来预测QP值,并且仅编码QP差分值。

在解量化参数差分值得出模块122中,解码器对解量化参数差分值进行解码并且通过将该差分值与用于预测的块的解量化参数值增加来得出解量化参数值。

当编码器和解码器预测当前块的QP值时,QP值预测块确定模块102和解量化参数值预测块确定模块123用于确定作为参考的相邻块。

在图7A中,当向待编码/解码的CU 720分配量化/解量化参数值时,使用在位于当前CU 720的左侧边界上的CU 710、711和712或者La、Lb和Lc以及当前CU 700的上部边界上的CU 700、701和702或者Ta,Tb和Tc之间的每个边界上具有最大块尺寸的CU 712和702或者Lc和Tc的QP值的平均值、最小值和最大值来预测参数值。

图7B示出了根据本发明第一示例性实施例的可替换的实例的QP值预测块确定模块102和解量化参数值预测块确定模块123。

当将LCU分割成多个待被编码/解码的CU时,使用在与当前CU 750相邻的CU中位于当前CU 750的左侧边界和上部边界上具有最大块尺寸的两个CU的QP值的平均值、最小值或最大值来预测当前待编码/解码的CU 750的QP值。

图8A示出了根据本发明第二示例性实施例的QP值预测块确定模块102和解量化参数值预测块确定模块123。

在预测待编码/解码的当前CU 840的QP值时,将与当前CU相邻的CU中具有最大块尺寸的CU用于参考。在该情况中,当存在多个具有最大块尺寸的CU时,将CU的QP值的平均值、最小值或最大值用于预测当前CU 840的QP值,其中,该CU包括顶部CU 820或者在当前CU 840的左侧边界上的CU中所选的La以及最左侧的CU 800或者在其上部边界上的CU中优选地用于参考的Ta。

图8B示出了根据本发明第二示例性实施例的可替换的实例的QP值预测块确定模块102和解量化参数值预测块确定模块123。

当将LCU分割成多个待被编码/解码的CU时,使用与当前CU 890相邻的CU中参考的块尺寸最大的CU,对待编码/解码的当前CU 890的QP值进行预测。此处,在当前CU 890的左侧边界上存在多个具有最大块尺寸的CU时,将顶部CU 870或者La用作为参考块。同样地,在当前CU 890的上部边界上存在多个具有最大块尺寸的CU时,将最左侧CU 850或者Ta用作为参考块。当确定左侧和顶部上的参考块时,使用这两个CU的QP值的平均值、最小值或最大值,预测待编码/解码的当前CU 890的QP值。

图9A示出了根据发明第三示例性实施例的QP值预测块确定模块102和解QP值预测块确定模块123。

当对待编码/解码的当前CU 920的QP值进行预测时,选择与当前CU相邻的所有可能的参考CU 900、901、902、910、911和912或者Ta、Tb、Tc、La、Lb、Lc作为参考块。编码器使用所有可能的参考CU的QP值的平均值、最小值或最大值来预测当前CU 920的QP值并且对该QP差分值进行编码。

解码器通过将所有可能的参考CU的解量化参数值的平均值、最小值或者最大值与解码的QP差分值相加,以对待解码的CU 920的解量化参数值进行解码。

图9B示出了根据本发明第三示例性实施例的可替换的实例的QP值预测块确定模块102和解量化参数值预测块确定模块123。

当待编码/解码的CU 950位于LCU中时,使用与当前CU的相邻所有可能的参考CU 930、931、940、941和942或者La、Lb、Lc、Ta、Tb和Tc来预测CU 950的QP值。

编码器使用所有相邻的可能的参考CU的QP值的平均值、最小值或最大值来预测当前CU 950的QP值并且仅对它们之间的QP差分值进行编码。

解码器通过将所有相邻的可能的参考CU的解量化参数值的平均值、最小值或最大值与解码的QP差分值相加,以对待解码的CU 950的解量化参数值进行解码。

图10A示出了根据本发明第四示例性实施例的QP值预测块确定模块102和解量化参数值预测块确定模块123中的操作。

当对位于LCU之间的边界上的CU 1020进行编码/解码时,将在位于当前CU 1020的左侧边界上的可能的CU 1010、1011和1012或La、Lb和Lc中具有最大块尺寸的CU 1012或者Lc用作为参考。在这里,当在左侧边界上的可能的参考CU中存在有一个或多个具有最大块尺寸的CU时,选择顶部CU作为参考块。

编码器使用在左侧边界上被选择作为参考块的CU 1012或者Lc的QP值来预测待编码的CU 1020的QP值,并且对它们间的QP差分值进行编码。

解码器解码待解码的CU 1020的解量化参数差分值,并且将CU 1020或者Lc的解QP值与该差分值相加,因而对CU 1020的解量化参数值进行解码。

图10B示出了根据本发明第四示例性实施例的可替换的实例的QP值预测块确定模块102和解量化参数值预测块确定模块123中的操作。

当将LCU分割成多个待被编码/解码的CU时,将在位于待编码/解码的CU1050的左侧边界上的CU 1030、1031和1032或者La、Lb和Lc中具有最大块尺寸的CU 1030或者La用作为参考。在这里,当在左侧边界上的CU中存在有一个或多个具有最大块尺寸的CU时,选择顶部CU 1030或La作为参考块。

编码器使用在左侧边界上被选择作为参考块的CU 1030或La的QP值来预测待编码的CU 1050的QP值,并且对它们间的QP差分值进行编码。

解码器对待解码的CU 1050的解量化参数差分值进行解码并且将CU 1030或者La的解量化参数值与该差分值相加,因而对CU 1050的解量化参数值进行了解码。

图11A示出了根据本发明第五示例性实施例的QP值预测块确定模块102和解量化参数值预测块确定模块123中的操作。

当对位于LCU之间的边界上的CU 1120进行编码/解码时,将位于当前CU1020的左侧边界上的所有可能参考CU 1010、1011和1012或La、Lb和Lc用作为参考。

编码器预使用位于左侧边界上的所有可能参考CU 1110、1111和1112或La、Lb和Lc的QP值的平均值、最小值或最大值来预测待编码的CU 1050的QP值,并且对QP差分值进行编码。

解码器对待解码的CU 1120的解量化参数差分值进行解码,并且通过将所有可能的参考CU 1110、1111和1112或La、Lb和Lc的解量化参数值的平均值、最小值或最大值与差分值相加,对待解码的CU 1120的解量化参数值进行解码。

图11B示出了根据本发明第五示例性实施例的可替换实例的QP值预测块确定模块102和解QP值预测块确定模块123中的操作。

当将LCU分割成多个待被编码/解码的CU时,将位于待编码/解码的CU1150的左侧边界上的所有可能的CU用作为参考块。

编码器使用位于左侧边界上的所有可能的参考CU的QP值的平均值、最小值或最大值来预测待编码的CU 1150的QP值,并且对该QP差分值进行编码。

解码器对待解码的CU 1150的解量化参数差分值进行解码,并且通过将位于左侧边界上的所有可能的参考单位的解量化参数值的平均值、最小值或最大值与差分值相加,以对待解码的CU 1150的解量化参数值进行解码。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1