一种残差的表示方法和熵编码输入装置与流程

文档序号:17922382发布日期:2019-06-15 00:12阅读:260来源:国知局
一种残差的表示方法和熵编码输入装置与流程

本发明涉及视频压缩编码技术,具体涉及一种残差的表示方法和熵编码输入装置。



背景技术:

在视频压缩编码中,预测产生的误差是熵编码器最重要的编译内容之一。在已出现的视频压缩编码技术中,所述预测产生的误差通常要经历正交变换逻辑单元、量化逻辑单元、系数扫描逻辑单元,输入熵编码逻辑单元处理后生成需要被传输的内容。为了描述方便,本发明将所述预测产生的误差直至所述熵编码逻辑单元的输入均通称为残差矩阵,或者残差。

在现有视频压缩编码技术中的残差矩阵主要以8x8或4x4的数据块为主。对残差矩阵的描述通常是按预先定义好的扫描模式(如zigzag、wave front、垂直和水平扫描等),标记最后一个非0取值的位置(last),然后对所述最后一个非0取值的位置之前的所有数据逐个进行描述。所述残差数据的描述,与变长熵编码结合的以“last-run-level”为主要方式。与算术熵编码结合的以“last-map-level”为主要方式。所述“run”是指取值为0连续的长度,所述“map”指用一个标志来区分每个取值为0或者非0,所述“level”指非0取值的幅度、符号信息。

由于所述残差矩阵尺寸随着技术的演进变得越来越灵活,比如正在由JCTVC制定的视频压缩标准HEVC中,除了4x4和8x8还开始出现16x16,32x32、64x64、64x16、16x64、32x8、8x32、16x4、4x16、8x2、2x8等其他尺寸的数据块。而且,随着视频压缩标准需要支持的图像分辨率、帧率和码率越来越高,所述“last-run-level”或者“last-map-level”描述手段日渐显示出其局限性。具体局限性首先表现为对尺寸灵活多变的残差矩阵的描述过程复杂繁琐,其次表现为在高分辨率、高帧率和高码率的情况下算术熵编码的吞吐率非常低。



技术实现要素:

本发明要解决的技术问题是提供一种残差的表示方法和熵编码输入装置,解决高分辨率、高帧率和高码率下算术熵编码吞吐率低,以及残差矩阵的描述过程复杂的问题。

为了解决上述问题,本发明提供了一种残差的表示方法,包括:

以四叉树结构描述残差矩阵中残差的分布和取值情况,生成描述信息;所述残差矩阵为预测残差矩阵经过变换和量化处理后的矩阵;

所述以四叉树结构描述残差矩阵中残差的分布和取值情况包括:

使用一个主四叉树,或者一个主四叉树与其他四叉树组合描述所述残差矩阵中残差的分布和取值情况;

对每个四叉树,该四叉树的每个节点对应一个矩阵,该矩阵是该节点的上一级节点对应的矩阵进行4等份得到的子矩阵之一,每个节点的取值指示该节点对应的矩阵是否需要等份为4个子矩阵;

所述主四叉树其顶层节点对应的矩阵为所述残差矩阵;

描述各四叉树最下一层的节点对应的矩阵的非0取值的符号和幅度。

进一步的,上述方法还可具有以下特点,所述残差矩阵的宽度和高度值为2的指数次方,其宽高比为1:1、1:4或者4:1。

进一步的,上述方法还可具有以下特点,所述残差矩阵的尺寸大于或者等于2x2、4x1或者1x4。

进一步的,上述方法还可具有以下特点,所述残差的取值和分布情况包括残差矩阵中哪些位置存在0值,以及,非0取值的位置、符号和幅度信息。

进一步的,上述方法还可具有以下特点,根据如下方式判断所述主四叉树中各节点对应的矩阵是否需要等份为4个子矩阵:

判断节点对应的矩阵是否有非0取值,如果有,则需要等份为4个子矩阵,否则,不需要等份为4个子矩阵。

进一步的,上述方法还可具有以下特点,所述描述信息包括:

各四叉树的四叉树结构标志、四叉树结构标志出现的次序,各四叉树结构标志之间包含的逻辑推导关系;非零残差取值的符号和幅度信息;

或者包括:

各四叉树的四叉树结构标志、四叉树结构标志出现的次序,各四叉树结构标志之间包含的逻辑推导关系;非零残差取值的符号和幅度信息;辅助标志,辅助标志与四叉树结构标志之间包含的逻辑推导关系。

进一步的,上述方法还可具有以下特点,所述辅助标志包括如下标志中之一或如下标志中不冲突的标志的组合:

所述残差矩阵是否只存在直流分量的标志;

对应矩阵是否全部为非0取值的标志;

对应矩阵的四个子矩阵是否存在幅度大于1的取值的标志;

对应矩阵的四个子矩阵是否存在幅度大于2的取值的标志;

对应矩阵的四个子矩阵是否全部取值的幅度等于1的标志;

对应矩阵的四个子矩阵是否全部取值的幅度等于2的标志;

对非零残差,该残差是否为1的标志,该残差是否为2的标志:

所述对应矩阵是指辅助标志对应的矩阵。

本发明还提供一种残差的熵编码输入装置,包括:

残差矩阵描述单元,用于根据残差矩阵生成四叉树结构,描述所述残差矩阵的取值和分布情况;所述残差矩阵为预测残差矩阵经过变换和量化处理后的矩阵;

四叉树分解逻辑单元,用于将所述四叉树结构按照预定义原则生成描述信息,输出至熵编码逻辑单元;

所述残差矩阵描述单元根据残差矩阵生成四叉树结构包括:

使用一个主四叉树,或者一个主四叉树与其他四叉树组合描述所述残差矩阵中残差的分布和取值情况;

对每个四叉树,该四叉树的每个节点对应一个矩阵,该矩阵是该节点的上一级节点对应的矩阵进行4等份得到的子矩阵之一,每个节点的取值指示该节点对应的矩阵是否需要等份为4个子矩阵;

所述主四叉树其顶层节点对应的矩阵为所述残差矩阵;

描述各四叉树最下一层的节点对应的矩阵的非0取值的符号和幅度。

进一步的,上述装置还可具有以下特点,所述残差矩阵的宽度和高度值为2的指数次方,其宽高比为1:1、1:4或者4:1。

进一步的,上述装置还可具有以下特点,所述残差矩阵的尺寸大于或者等于2x2、4x1或者1x4。

进一步的,上述装置还可具有以下特点,所述残差的取值和分布情况包括残差矩阵中哪些位置存在0值,以及,非0取值的位置、符号和幅度信息。

进一步的,上述装置还可具有以下特点,所述残差矩阵描述单元根据如下方式判断所述主四叉树中各节点对应的矩阵是否需要等份为4个子矩阵:

判断节点对应的矩阵是否有非0取值,如果有,则需要等份为4个子矩阵,否则,不需要等份为4个子矩阵。

进一步的,上述装置还可具有以下特点,所述四叉树分解逻辑单元生成的所述描述信息包括:

各四叉树的四叉树结构标志、四叉树结构标志出现的次序,各四叉树结构标志之间包含的逻辑推导关系;非零残差取值的符号和幅度信息;

或者包括:

各四叉树的四叉树结构标志、四叉树结构标志出现的次序,各四叉树结构标志之间包含的逻辑推导关系;非零残差取值的符号和幅度信息;辅助标志,辅助标志与四叉树结构标志之间包含的逻辑推导关系。

进一步的,上述装置还可具有以下特点,所述辅助标志包括如下标志中之一或如下标志中不冲突的标志的组合:

所述残差矩阵是否只存在直流分量的标志;

对应矩阵是否全部为非0取值的标志;

对应矩阵的四个子矩阵是否存在幅度大于1的取值的标志;

对应矩阵的四个子矩阵是否存在幅度大于2的取值的标志;

对应矩阵的四个子矩阵是否全部取值的幅度等于1的标志;

对应矩阵的四个子矩阵是否全部取值的幅度等于2的标志;

对非零残差,该残差是否为1的标志,该残差是否为2的标志:

所述对应矩阵是指辅助标志对应的矩阵。

本发明提供的残差的表示方法和熵编码输入装置,残差矩阵尺寸灵活,描述过程简单,且熵编码吞吐率高。

附图说明

图1为本发明实施例1四叉树结构表示方法流程图;

图2为本发明实施例2四叉树结构表示方法流程图;

图3为本发明实施例3四叉树结构表示方法流程图;

图4为本发明实施例4四叉树结构表示方法流程图;

图5为本发明实施例5四叉树结构表示方法流程图;

图6为本发明实施例6四叉树结构表示方法流程图;

图7为本发明实施例1-6一种残差的熵编码输入装置的逻辑结构示意图;

图8为本发明实施例1-6一种残差的熵解码输出装置的逻辑结构示意图;

图9是本发明一应用实例残差矩阵示意图;

图10是图9所示残差矩阵的四叉树结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

本发明实施例中,以变换后的系数残差矩阵或者未经变换处理的预测残差矩阵作为描述对象,以四叉树结构作为主要描述手段,逐层、递归地表示残差的分布和取值情况,并按照所确定的表示方法,将残差输入给熵编码逻辑单元。

本发明实施例提供一种残差的表示方法,包括:

以四叉树结构描述残差矩阵中残差的分布和取值情况,生成描述信息。

其中,所述残差矩阵为预测残差矩阵,或者,为所述预测残差矩阵经过处理后的矩阵,其中,所述处理包括如下之一或其组合:正交变换、量化和扫描。

其中,所述残差矩阵的宽高值是2的指数次方,宽高比为1:1、1:4或者4:1。宽度为残差矩阵的列数,高度为残差矩阵的行数。

其中,所述残差矩阵的尺寸大于或者等于2x2、4x1或者1x4,比如为4x4、8x8、16x16,32x32、64x64、64x16、16x64、32x8、8x32、16x4、4x16、8x2、2x8等尺寸的数据块。

其中,所述残差的取值和分布情况包括残差矩阵中哪些位置存在0值,以及,非0取值的位置、符号和幅度信息。

其中,以四叉树结构描述所述残差矩阵中残差的分布和取值情况包括:

使用一个主四叉树,或者一个主四叉树与其他四叉树组合描述所述残差矩阵中残差的分布和取值情况;

对每个四叉树,该四叉树的每个节点对应一个矩阵,该矩阵是该节点的上一级节点对应的矩阵进行4等份得到的子矩阵之一,每个节点的取值指示该节点对应的矩阵是否需要等份为4个子矩阵;

所述主四叉树其顶层节点对应的矩阵为所述残差矩阵;

描述各四叉树最下一层的节点对应的矩阵的非0取值的符号和幅度。

其中,以四叉树结构描述所述残差矩阵时,除了四叉树外,还可结合其他辅助标志、表示方法进行表示。

其中,所述描述信息包括:

各四叉树的四叉树结构标志、四叉树结构标志出现的次序,各四叉树结构标志之间包含的逻辑推导关系;非零残差取值的符号和幅度信息;

或者包括:

各四叉树的四叉树结构标志、四叉树结构标志出现的次序,各四叉树结构标志之间包含的逻辑推导关系;非零残差取值的符号和幅度信息;辅助标志,辅助标志与四叉树结构标志之间包含的逻辑推导关系。

其中,所述辅助标志包括如下标志中之一或如下标志中不冲突的标志的组合:

所述残差矩阵是否只存在直流分量的标志;

对应矩阵是否全部为非0取值的标志;

对应矩阵的四个子矩阵是否存在幅度大于1的取值的标志;

对应矩阵的四个子矩阵是否存在幅度大于2的取值的标志;

对应矩阵的四个子矩阵是否全部取值的幅度等于1的标志;

对应矩阵的四个子矩阵是否全部取值的幅度等于2的标志;

对非零残差,该残差是否为1的标志,该残差是否为2的标志:

所述对应矩阵是指辅助标志对应的矩阵。

其中,所述等分为四份包括:将所述残差矩阵等分成四个与未经等分的矩阵形状完全相同但是宽、高尺寸均减半的子矩阵。

其中,所述四叉树结构表示方法可以显式或隐式推导出所述残差矩阵的分布和取值,经过编码传输后可以准确无误地解码恢复残差矩阵的完整信息。

其中,逐层、递归的表示所述残差矩阵,其中所述逐层表示是将输入残差矩阵分为若干个层次,呈树状结构逐步等分为四份来描述。如果输入的矩阵标记为最上一层,最下一层则是指2x2、1x4或者4x1数据块。所述层次划分的数量取决于所述残差矩阵的大小以及所述残差的分布和取值情况。矩阵尺寸越大,可能划分出的层次数量越多;残差的分布和取值越复杂,可能划分的层次数量越多。

其中,所述递归表示可以递归地而非循环地引用基本相同的逻辑和结构来遍历需要被描述的残差矩阵。

其中,所述逐层、递归表示是指所述下一层的递归引用是否进行取决于所述上一层是否需要进一步等分为四份。如果上一层指示需要等分,则下一层继续引用所述四叉树结构进行描述,直至最下一层。如果不需要继续等分为四份,则终止。

其中,所述方法还包括,将所述描述信息进行熵编码,在熵编码之前,将描述信息转换成熵编码逻辑单元的具体输入结构和参数。

熵编码方法包括但不限于算术编码、变长编码、哥伦布指数编码、游程编码等适合用于视频数据压缩的方法。其中,如果是变长编码,残差矩阵的描述信息中包括需要被编译、传输的码字构成、结构和次序。

其中,如果为算术编码,则描述信息中定义了算术编码二值化,所述表示方法的构成、结构和次序经过算术编码后生成需要被编译、传输的码字。

指将所述残差矩阵逐层分解、递归引用等分为四的数据结构。

其中,所述按生成的次序输入给熵编码逻辑单元处理。

其中,所述辅助标志包括但不限于描述以下信息:四个子矩阵内是否均有非0取值的标志,四个子矩阵内是否全部取值的幅度均大于2的标志,四个子矩阵内是否全部取值的幅度等于1的标志、四个子矩阵内是否全部取值的幅度等于2的标志等。

其中,所述辅助标志包括但不限于描述以下信息:当前残差取值非0的情况下,非0取值的幅度是否为1的标志,非0取值的幅度是否为2的标志等。

其中,所述辅助标志包括但不限于描述以下信息:当前残差矩阵是否只存在直流分量的标志。所述只存在直流分量的含义是矩阵中第一个元素非0,其他元素均为0。

其中,所述辅助标志和四叉树结构标志存在逻辑上的相互推导关系。

实施例1

如图1所示,本实施例描述了一种残差表示方法,包括:

步骤101,获取辅助信息;

步骤101是在步骤102的同时从其他视频压缩编码逻辑模块获取得到辅助信息。所述辅助信息包括但不限于如下内容:矩阵尺寸、编码分量、预测模式、分块类型、分片类型,是否进行了坐标变换、扫描处理等,具体的:

●矩阵尺寸,表示输入残差矩阵的大小;

●编码分量,表示输入残差矩阵所属的YUV或者RGB等分量信息;

●预测模式,表示输入残差矩阵所属编码单元的INTER或者INTRA预测模式;

●分块类型,表示输入残差矩阵所属编码单元的分块类型,比如2Nx2N、2NxN、Nx2N、4NxN、Nx4N等;

●分片类型,表示输入残差矩阵所属的I、P、B分片类型。

步骤102,输入最上一层残差矩阵;

步骤103,检查输入残差矩阵的非0取值及分布,生成描述四叉树结构的标志;

具体的,判断当前输入残差矩阵是否有非0值,如果有非0值,则四叉树结构标志取值为1,否则,取值为0。当然,四叉树结构标志也可使用1,0之外的值表示,本发明对此不作限定。

步骤104,判断当前输入残差矩阵是否是最后一层,如果是,则转到步骤107,否则,转到步骤105;

步骤105,将当前输入残差矩阵宽高减半,得到当前输入残差矩阵的4个子矩阵,也是下一层的四个输入残差矩阵;

步骤106,判断四个子矩阵是否全部为0,如果是,则结束,否则,将含有非0取值的子矩阵依次作为新的输入残差矩阵,转到步骤103;

步骤107,描述当前输入残差矩阵非0取值的幅度,符号,结束。

实施例2

如图2所示,本实施例描述了一种残差表示方法,包括:

步骤201,获取辅助信息,包括:矩阵尺寸、编码分量、预测模式、分块类型、分片类型;

步骤202,输入最上一层残差矩阵;

步骤203,判断当前输入的残差矩阵是否只有直流分量,如果不是,执行步骤204,否则,执行步骤208;

其中,判断是否有直流分量的一种判断方式为:判断当前输入的残差矩阵是否只有第一个元素非0,其余元素均为0。

步骤204,检查当前输入残差矩阵的非0取值及分布,生成描述四叉树结构的标志;

具体的,判断当前输入残差矩阵是否有非0值,使用四叉树结构标志记录判断结果。其中,如果当前输入残差矩阵有非0值,则四叉树结构标志取值为1,否则,取值为0。当然,四叉树结构标志也可使用1,0之外的值表示,本发明对此不作限定。

步骤205,判断当前输入残差矩阵是否是最后一层,如果是,则转到步骤208,否则,转到步骤206;

步骤206,将当前输入残差矩阵宽高减半,得到当前输入残差矩阵的4个子矩阵,也是下一层的输入残差矩阵;

步骤207,判断四个子矩阵是否全部为0,如果是,则结束,否则,将有非0取值的子矩阵依次作为输入残差矩阵,转到步骤204;

步骤208,描述当前输入残差矩阵非0取值的幅度和符号,结束。

实施例3

如图3所示,本实施例描述了一种残差表示方法,包括:

步骤301,获取辅助信息,包括矩阵尺寸、编码分量、预测模式、分块类型、分片类型;

步骤302,输入最上一层残差矩阵;

步骤303,判断当前输入残差矩阵是否只有直流分量,如果不是,执行步骤304,否则,执行步骤309;

步骤304,检查输入残差矩阵的非0取值及分布,生成描述四叉树结构的标志;

具体的,判断当前输入残差矩阵是否有非0值,使用四叉树结构标志记录判断结果。

步骤305,判断当前输入残差矩阵是否是最后一层,如果是,则转到步骤309,否则,转到步骤306;

步骤306,判断当前输入残差矩阵是否全部为非0取值,使用辅助标志记录判断结果,如果是,转到步骤310,否则,执行步骤307;

步骤307,将当前输入残差矩阵宽高减半,得到当前输入残差矩阵的4个子矩阵,也是下一层的四个输入残差矩阵;

步骤308,判断四个子矩阵是否全部为0,如果是,则结束,否则,将具有非0取值的子矩阵作为输入残差矩阵,转到步骤304;

步骤309,描述当前输入残差矩阵非0取值的幅度和符号,结束;

步骤310,执行子流程1,生成新的四叉树,具体参见实施例5。

子流程1中新生成的四叉树与图3中生成的四叉树之间存在关联关系,即当前输入残叉矩阵使用辅助标志以及新生成的四叉树进行描述。

实施例4

如图4所示,本实施例描述了一种残差表示方法,包括:

步骤401,获取辅助信息,包括矩阵尺寸、编码分量、预测模式、分块类型、分片类型等;

步骤402,输入最上一层残差矩阵;

步骤403,判断当前输入残差矩阵是否只有直流分量,如果不是,执行步骤404,否则,执行步骤411;

步骤404,检查输入残差矩阵的非0取值及分布,生成描述四叉树结构的标志;

具体的,判断当前输入残差矩阵是否有非0值,使用四叉树结构标志记录判断结果。其中,一种记录方式为:如果当前输入的残差矩阵有非0值,则四叉树结构标志取值为1,否则,取值为0。

步骤405,判断当前输入残差矩阵是否是最后一层,如果是,则转到步骤411,否则,转到步骤406;

步骤406,判断当前输入残差矩阵的4个子矩阵的四叉树结构标志是否均为1,使用辅助标志记录判断结果,如果是,执行步骤409;否则,执行步骤407;

步骤407,将当前输入残差矩阵宽高减半,得到当前输入残差矩阵的4个子矩阵,也是下一层的四个输入残差矩阵;

步骤408,判断四个子矩阵是否全部为0,如果是,则结束,否则,将具有非0取值的子矩阵依次作为输入残差矩阵,转到步骤404;

步骤409,判断当前输入残差矩阵是否全部为非0取值,如果是,使用一个辅助标志记录该结果,转到步骤410,否则,执行步骤407;

步骤410,执行子流程1,生成新的四叉树,具体参见实施例5。

子流程1中生成的四叉树与图4中生成的四叉树之间存在关联关系,即当前输入残差矩阵使用辅助标志以及新生成的四叉树进行描述。如果当前输入残差矩阵是最上一层残差矩阵的子矩阵,该子矩阵使用该辅助标志和新生成的四叉树进行描述。

步骤411,描述当前输入残差矩阵非0取值的幅度,符号,结束。

实施例5

如图5所示,描述了另一个四叉树的生成,该四叉树与图3,4中生成的四叉树之间存在关联关系,所述子流程1包括如下步骤:

步骤501,获取辅助信息,包括矩阵尺寸、编码分量、预测模式、分块类型、分片类型等;

步骤502,输入当前残差矩阵;

步骤503,检查幅度大于1的取值及分布,生成描述四叉树结构的标志;

具体的,判断当前输入残差矩阵是否有幅度大于1的值,如果有,则四叉树结构标志取值为1,否则,取值为0。

步骤504,判断当前输入残差矩阵是否是最后一层,如果是,则转到步骤510,否则,转到步骤505;

步骤505,判断当前输入残差矩阵的4个子矩阵的四叉树结构标志是否均为1,使用辅助标志记录判断结果,如果是,执行步骤508;否则,执行步骤506;

步骤506,将当前输入残差矩阵宽高减半,得到当前输入残差矩阵的4个子矩阵,也是下一层的四个输入残差矩阵;

步骤507,判断四个子矩阵是否幅度全为1,使用辅助标志记录判断结果,如果是,则结束子流程1,否则,对每个子矩阵,将其作为输入残差矩阵,转到步骤503;

步骤508,判断当前输入残差矩阵是否全部幅度均大于1,使用辅助标志记录判断结果,如果是,转到步骤509,否则,执行步骤506;

步骤509,执行子流程2,生成新的四叉树,具体参见实施例6。

子流程2中新生成的四叉树与本实施例中生成的四叉树存在关联关系。

步骤510,描述当前输入残差矩阵幅度大于1的取值的幅度,符号,结束。

实施例6

如图6所示,描述了另一个四叉树的生成,该四叉树与实施例5中生成的四叉树之间存在关联关系,所述子流程2包括如下步骤:

步骤601,获取辅助信息,包括矩阵尺寸、编码分量、预测模式、分块类型、分片类型;

步骤602,输入当前残差矩阵;

步骤603,检查幅度大于2的取值及分布,生成描述四叉树结构的标志,此处使用的标志名为幅度2标志;

具体的,判断当前输入残差矩阵是否有幅度大于2的值,使用四叉树结构标志记录判断结果。其中,一种记录方式为:如果有大于2的值,则四叉树结构标志取值为1,否则,取值为0。

步骤604,判断当前输入残差矩阵是否是最后一层,如果是,则转到步骤609,否则,转到步骤605;

步骤605,判断当前输入残差矩阵的4个子矩阵的四叉树结构标志是否均为1,如果是,执行步骤608;否则,执行步骤606;

步骤606,将当前输入残差矩阵宽高减半,得到当前输入残差矩阵的4个子矩阵,也是下一层的四个输入残差矩阵;

步骤607,判断四个子矩阵幅度是否全部为2,使用辅助标志记录判断结果,如果是,则结束,否则,对每个子矩阵,将其作为输入残差矩阵,转到步骤603;

步骤608,判断当前输入残差矩阵是否全部幅度均大于2,使用辅助标志记录判断结果,如果是,转到步骤609,否则,执行步骤606;

步骤609,描述当前输入残差矩阵幅度大于2的取值的幅度,符号,结束。

上述各实施例中四叉树的生成仅为示例,可以对其进行扩展,比如,子流程2中扩展子流程3,与子流程2类似,但幅度变更为3,依次类推。

另外,子流程1中也可以不扩展到子流程2,去掉步骤505,508,509,等等。辅助标志不限于上述实施例中提到的,还可根据需要增加其他辅助标志。

实施例7

如图7所示,本实施例描述了一种残差的熵编码输入装置,包括:

残差矩阵描述单元701和四叉树分解逻辑单元702,其中:

所述残差矩阵描述单元701用于,根据残差矩阵生成四叉树结构,描述所述残差矩阵的取值和分布情况;

所述四叉树分解逻辑单元702用于,根据所述四叉树结构生成描述信息,输出至熵编码逻辑单元703。

其中,残差矩阵描述单元根据残差矩阵生成四叉树结构包括:

使用一个主四叉树,或者一个主四叉树与其他四叉树组合描述所述残差矩阵中残差的分布和取值情况;

对每个四叉树,该四叉树的每个节点对应一个矩阵,该矩阵是该节点的上一级节点对应的矩阵进行4等份得到的子矩阵之一,每个节点的取值指示该节点对应的矩阵是否需要等份为4个子矩阵;

所述主四叉树其顶层节点对应的矩阵为所述残差矩阵;

描述各四叉树最下一层的节点对应的矩阵的非0取值的符号和幅度。

其中,所述残差矩阵描述单元根据如下方式判断所述主四叉树中各节点对应的矩阵是否需要等份为4个子矩阵:

判断节点对应的矩阵是否有非0取值,如果有,则需要等份为4个子矩阵,否则,不需要等份为4个子矩阵。其余四叉树则根据如下方式判断是否需要等份:判断节点对应的矩阵是否有幅度大于N的取值,N可为1,2,或其他取值。

其中,所述四叉树分解逻辑单元生成的所述描述信息包括:

各四叉树的四叉树结构标志、四叉树结构标志出现的次序,各四叉树结构标志之间包含的逻辑推导关系;非零残差取值的符号和幅度信息;

或者包括:

各四叉树的四叉树结构标志、四叉树结构标志出现的次序,各四叉树结构标志之间包含的逻辑推导关系;非零残差取值的符号和幅度信息;辅助标志,辅助标志与四叉树结构标志之间包含的逻辑推导关系。

实施例8

如图8所示,本实施例描述了一种残差的熵解码输出装置,包括:四叉树组合逻辑单元801和残差矩阵生成单元802,其中:

所述四叉树组合逻辑单元801用于:根据从熵编码逻辑单元803获取的描述信息,按照预定义原则解析生成四叉树结构;

所述残差矩阵生成单元802用于:根据所述四叉树结构,重构残差矩阵。

其中,残差的熵解码输出装置与残差的熵解码输入装置对应,基于约定的原则解析得到四叉树结构,进一步得到残差矩阵。

下面通过一个具体应用实例说明本发明。

其中,输入B分片(slice)的Y分量,8x8残差矩阵的取值如图9所示,根据该残差矩阵生成的四叉树如图10所示。

1)第一层8x8矩阵:

不是I slice的Y分量残差,判断第一层的8x8矩阵是否为只有直流分量,具体的,判断是否该矩阵只有第一个元素取值非0,本实施例中,判断结果为否,取值为0;

继续判断,该8x8矩阵是否需要等份为4个子矩阵,具体的,判断该8×8是否有非0值,如果有,则需要等份为4个子矩阵,本实施例中,需要等份,因此,四叉树结构顶层节点取值为1,表示对应的矩阵(即该8×8矩阵)需要等份为4个子矩阵。如图10中第一行;

判断其四个子矩阵是否有非0值,得到四叉树结构标志1,1,1,0,如图10中第2行。

2)递归调用,第二层4x4的第一个矩阵:

判断该矩阵的四个子矩阵是否有非0值,得到四叉树结构标志为1,1,1,1;如图10中第3行最左侧;

2.1)递归调用,第三层(最下一层2x2)的第一个矩阵;

2.2)递归调用,第三层(最下一层2x2)的第二个矩阵;

2.3)递归调用,第三层(最下一层2x2)的第三个矩阵;

2.4)递归调用,第三层(最下一层2x2)的第四个矩阵;

3)递归调用,第二层4x4的第二个矩阵,判断该矩阵的4个子矩阵是否有非0值,得到四叉树结构标志1,0,1,0;

3.1)递归调用,第三层(最下一层2x2)的第一个矩阵;

3.2)递归调用,第三层(最下一层2x2)的第三个矩阵;

4)递归调用,第二层4x4的第三个矩阵:判断该矩阵的四个子矩阵是否有非0值,得到四叉树结构标志1,1,1,0

4.1)递归调用,第三层(最下一层2x2)的第一个矩阵:

4.2)递归调用,第三层(最下一层2x2)的第二个矩阵:

4.3)递归调用,第三层(最下一层2x2)的第三个矩阵:

5)描述最下一层各矩阵非0取值的符号、幅度。

上述实例仅说明了主四叉树的生成过程,其余四叉树的生成类似,此处不再赘述。

上述装置可在通用的逻辑运算设备上用软件来实现,也可以采用专用芯片的方式实现。例如所述编码单元可以以业界通用的编码器为基础来实现,该编码器可以是软件实现的编码器,也可以是硬件实现的编码器。上述语法元素的表示方法确定单元、自适应单元等除了采用软件代码实现外,均可以通过固化了软件代码的硬件逻辑来实现。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

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