解码方法、编码方法、装置及设备转让专利

申请号 : CN201911222274.4

文献号 : CN112911288B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曹小强

申请人 : 杭州海康威视数字技术股份有限公司

摘要 :

本申请提供一种解码方法、编码方法、装置及设备,该方法可以获取当前块的码流;当确定所述当前块采用SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,针对所述当前块的目标扫描区域中的待解码变换系数,基于第一映射值和第二映射值,确定所述待解码变换系数的待解码标志位的上下文模型;基于所述上下文模型,对所述待解码标志位进行解码。该方法可以提高解码性能。

权利要求 :

1.一种解码方法,其特征在于,包括:

获取当前块的码流;

当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;

针对所述当前块的目标扫描区域中的待解码变换系数,基于第一映射值和第二映射值二者之和,确定所述待解码变换系数的待解码标志位的上下文模型;所述第一映射值为所述待解码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待解码变换系数所在位置的纵坐标的映射值;

基于所述上下文模型,对所述待解码标志位进行解码;

其中,所述第一映射值和第二映射值通过以下方式确定:

基于所述第一坐标值,将所述目标扫描区域水平划分为N个第一子区域,并基于所述待解码变换系数所在位置的横坐标所在目标第一子区域,确定所述第一映射值;N≥2;

基于所述第二坐标值,将所述目标扫描区域垂直划分为M个第二子区域,并基于所述待解码变换系数所在位置的纵坐标所在目标第二子区域,确定所述第二映射值;M≥2;

其中,所述基于第一映射值和第二映射值二者之和,确定所述待解码变换系数的待解码标志位的上下文模型,包括:当所述第一映射值和第二映射值二者之和小于或等于第一阈值时,从第一类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;

当所述第一映射值和第二映射值二者之和大于第二阈值时,从第二类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;

当所述第一映射值和第二映射值二者之和大于所述第一阈值,且小于或等于所述第二阈值时,从第三类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;所述第一阈值小于所述第二阈值。

2.根据权利要求1所述的方法,其特征在于,

所述基于所述待解码变换系数所在位置的横坐标所在目标第一子区域,确定所述第一映射值,包括:当所述目标第一子区域为第一子区域i时,确定所述第一映射值为i‑1,所述第一子区域i为按从左到右顺序的第i个第一子区域,1≤i≤N;

所述基于所述待解码变换系数所在位置的横坐标所在目标第二子区域,确定所述第二映射值,包括:当所述目标第二子区域处于第二子区域j时,确定所述第二映射值为j‑1,所述第二子区域j为按从上到下顺序的第j个第二子区域,1≤j≤M。

3.根据权利要求1所述的方法,其特征在于,所述第一阈值为1,所述第二阈值为2。

4.根据权利要求1所述的方法,其特征在于,所述第二阈值与所述第一阈值二者之差大于1。

5.根据权利要求1‑4任一项所述的方法,其特征在于,所述基于第一映射值和第二映射值二者之和,确定所述待解码变换系数的待解码标志位的上下文模型,包括:在所述当前块满足预测模式为帧内预测模式的条件时,执行基于所述第一映射值和第二映射值之和,确定所述待解码变换系数的待解码标志位的上下文模型的步骤。

6.根据权利要求1‑4任一项所述的方法,其特征在于,所述基于第一映射值和第二映射值二者之和,确定所述待解码变换系数的待解码标志位的上下文模型,包括:在所述当前块满足帧类型为I帧的条件时,执行基于所述第一映射值和第二映射值之和,确定所述待解码变换系数的待解码标志位的上下文模型的步骤。

7.根据权利要求1‑4任一项所述的方法,其特征在于,

所述待解码标志位包括第一标志位、第二标志位、第三标志位中的一个或多个;所述第一标志位用于指示变换系数是否是非零;所述第二标志位用于指示变换系数的绝对值是否大于1;所述第三标志位用于指示变换系数的绝对值是否大于2。

8.一种解码方法,其特征在于,包括:

获取当前块的码流;

当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;

针对所述当前块的目标扫描区域中的待解码变换系数,基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型;

基于所述上下文模型,对所述待解码标志位进行解码;

其中,所述待解码变换系数所在位置的坐标信息为(pos_x,pos_y),所述指定位置的坐标信息为(n1,n2);

所述基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型,包括:当所述待解码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待解码变换系数所在位置的纵坐标pos_y小于或等于n2时,从第一类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;

当所述待解码变换系数所在位置的横坐标pos_x大于所述n1,且所述待解码变换系数所在位置的纵坐标pos_y大于n2时,从第二类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;

当所述待解码变换系数所在位置的横坐标pos_x大于所述n1,且所述待解码变换系数所在位置的纵坐标pos_y小于或等于所述n2,或,当所述待解码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待解码变换系数所在位置的纵坐标pos_y大于所述n2时,从第三类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型。

9.根据权利要求8所述的方法,其特征在于,所述指定位置的坐标信息为(SRx/2,SRy/

2)。

10.根据权利要求8或9所述的方法,其特征在于,所述基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型,包括:在所述当前块满足帧类型为I帧的条件时,执行基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型的步骤。

11.根据权利要求8或9所述的方法,其特征在于,所述基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型,包括:在所述当前块满足预测模式为帧内预测模式的条件时,执行基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型的步骤。

12.一种编码方法,其特征在于,所述方法包括:

当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;

针对所述当前块的目标扫描区域中的待编码变换系数,基于第一映射值和第二映射值二者之和,确定所述待编码变换系数的待编码标志位的上下文模型;所述第一映射值为所述待编码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待编码变换系数所在位置的纵坐标的映射值;

基于所述上下文模型,对所述待编码标志位进行编码;

其中,所述第一映射值和第二映射值通过以下方式确定:

基于所述第一坐标值,将所述目标扫描区域水平划分为N个第一子区域,并基于所述待编码变换系数所在位置的横坐标所在目标第一子区域,确定所述第一映射值;N≥2;

基于所述第二坐标值,将所述目标扫描区域垂直划分为M个第二子区域,并基于所述待编码变换系数所在位置的纵坐标所在目标第二子区域,确定所述第二映射值;M≥2;

其中,所述基于第一映射值和第二映射值二者之和,确定所述待编码变换系数的待编码标志位的上下文模型,包括:当所述第一映射值和第二映射值二者之和小于或等于第一阈值时,从第一类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;

当所述第一映射值和第二映射值二者之和大于第二阈值时,从第二类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;

当所述第一映射值和第二映射值二者之和大于所述第一阈值,且小于或等于所述第二阈值时,从第三类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;所述第一阈值小于所述第二阈值。

13.一种编码方法,其特征在于,所述方法包括:

当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;

针对所述当前块的目标扫描区域中的待编码变换系数,基于所述待编码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待编码变换系数的待编码标志位的上下文模型;

基于所述上下文模型,对所述待编码标志位进行编码;

其中,所述待编码变换系数所在位置的坐标信息为(pos_x,pos_y),所述指定位置的坐标信息为(n1,n2);

所述基于所述待编码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待编码变换系数的待编码标志位的上下文模型,包括:当所述待编码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待编码变换系数所在位置的纵坐标pos_y小于或等于n2时,从第一类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;

当所述待编码变换系数所在位置的横坐标pos_x大于所述n1,且所述待编码变换系数所在位置的纵坐标pos_y大于n2时,从第二类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;

当所述待编码变换系数所在位置的横坐标pos_x大于所述n1,且所述待编码变换系数所在位置的纵坐标pos_y小于或等于所述n2,或,当所述待编码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待编码变换系数所在位置的纵坐标pos_y大于所述n2时,从第三类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型。

14.一种解码装置,其特征在于,包括:

码流获取模块,用于获取当前块的码流;

信息获取模块,用于当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;

模型确定模块,用于针对所述当前块的目标扫描区域中的待解码变换系数,基于第一映射值和第二映射值二者之和,确定所述待解码变换系数的待解码标志位的上下文模型;

所述第一映射值为所述待解码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待解码变换系数所在位置的纵坐标的映射值;

解码模块,用于基于所述上下文模型,对所述待解码标志位进行解码;

其中,所述第一映射值和第二映射值通过以下方式确定:

基于所述第一坐标值,将所述目标扫描区域水平划分为N个第一子区域,并基于所述待解码变换系数所在位置的横坐标所在目标第一子区域,确定所述第一映射值;N≥2;

基于所述第二坐标值,将所述目标扫描区域垂直划分为M个第二子区域,并基于所述待解码变换系数所在位置的纵坐标所在目标第二子区域,确定所述第二映射值;M≥2;

其中,所述模型确定模块,具体用于:

当所述第一映射值和第二映射值二者之和小于或等于第一阈值时,从第一类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;

当所述第一映射值和第二映射值二者之和大于第二阈值时,从第二类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;

当所述第一映射值和第二映射值二者之和大于所述第一阈值,且小于或等于所述第二阈值时,从第三类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;所述第一阈值小于所述第二阈值。

15.一种解码装置,其特征在于,包括:

码流获取模块,用于获取当前块的码流;

信息获取模块,用于当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;

模型确定模块,用于针对所述当前块的目标扫描区域中的待解码变换系数,基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型;

解码模块,用于基于所述上下文模型,对所述待解码标志位进行解码;

其中,所述待解码变换系数所在位置的坐标信息为(pos_x,pos_y),所述指定位置的坐标信息为(n1,n2);

所述模型确定模块,具体用于:

当所述待解码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待解码变换系数所在位置的纵坐标pos_y小于或等于n2时,从第一类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;

当所述待解码变换系数所在位置的横坐标pos_x大于所述n1,且所述待解码变换系数所在位置的纵坐标pos_y大于n2时,从第二类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;

当所述待解码变换系数所在位置的横坐标pos_x大于所述n1,且所述待解码变换系数所在位置的纵坐标pos_y小于或等于所述n2,或,当所述待解码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待解码变换系数所在位置的纵坐标pos_y大于所述n2时,从第三类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型。

16.一种编码装置,其特征在于,包括:

获取模块,用于当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;

确定模块,用于针对所述当前块的目标扫描区域中的待编码变换系数,基于第一映射值和第二映射值,确定所述待编码变换系数的待编码标志位的上下文模型;所述第一映射值为所述待编码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待编码变换系数所在位置的纵坐标的映射值;

编码模块,用于基于所述上下文模型,对所述待编码标志位进行编码;

其中,所述第一映射值和第二映射值通过以下方式确定:

基于所述第一坐标值,将所述目标扫描区域水平划分为N个第一子区域,并基于所述待编码变换系数所在位置的横坐标所在目标第一子区域,确定所述第一映射值;N≥2;

基于所述第二坐标值,将所述目标扫描区域垂直划分为M个第二子区域,并基于所述待编码变换系数所在位置的纵坐标所在目标第二子区域,确定所述第二映射值;M≥2;

其中,所述确定模块,具体用于:

当所述第一映射值和第二映射值二者之和小于或等于第一阈值时,从第一类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;

当所述第一映射值和第二映射值二者之和大于第二阈值时,从第二类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;

当所述第一映射值和第二映射值二者之和大于所述第一阈值,且小于或等于所述第二阈值时,从第三类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;所述第一阈值小于所述第二阈值。

17.一种编码装置,其特征在于,包括:

获取模块,用于当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;

确定模块,用于针对所述当前块的目标扫描区域中的待编码变换系数,基于所述待编码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待编码变换系数的待编码标志位的上下文模型;

编码模块,用于基于所述上下文模型,对所述待编码标志位进行编码;

其中,所述待编码变换系数所在位置的坐标信息为(pos_x,pos_y),所述指定位置的坐标信息为(n1,n2);

所述确定模块,具体用于:

当所述待编码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待编码变换系数所在位置的纵坐标pos_y小于或等于n2时,从第一类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;

当所述待编码变换系数所在位置的横坐标pos_x大于所述n1,且所述待编码变换系数所在位置的纵坐标pos_y大于n2时,从第二类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;

当所述待编码变换系数所在位置的横坐标pos_x大于所述n1,且所述待编码变换系数所在位置的纵坐标pos_y小于或等于所述n2,或,当所述待编码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待编码变换系数所在位置的纵坐标pos_y大于所述n2时,从第三类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型。

18.一种解码端设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求1‑11任一项所述的方法。

19.一种编码端设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求12或13所述的方法。

说明书 :

解码方法、编码方法、装置及设备

技术领域

[0001] 本申请涉及视频编解码技术,尤其涉及一种解码方法、编码方法、装置及设备。

背景技术

[0002] 完整的视频编码一般包括预测、变换、量化、熵编码、滤波等操作。通过熵编码可以对量化后的变换系数进行编码。变换系数的编码可以通过对用于指示变换系数的语法元素进行编码来实现,语法元素中的一些标志位可以通过上下文模型进行编码,且每种标志位能够选择的上下文模型通常包括多种。
[0003] 因此,如何确定标志位的上下文模型成为一个亟待解决的技术问题。

发明内容

[0004] 有鉴于此,本申请提供一种解码方法、编码方法、装置及设备。
[0005] 具体地,本申请是通过如下技术方案实现的:
[0006] 根据本申请实施例的第一方面,提供一种解码方法,包括:
[0007] 获取当前块的码流;
[0008] 当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0009] 针对所述当前块的目标扫描区域中的待解码变换系数,基于第一映射值和第二映射值,确定所述待解码变换系数的待解码标志位的上下文模型;所述第一映射值为所述待解码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待解码变换系数所在位置的纵坐标的映射值;
[0010] 基于所述上下文模型,对所述待解码标志位进行解码。
[0011] 根据本申请实施例的第二方面,提供一种解码方法,包括:
[0012] 获取当前块的码流;
[0013] 当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0014] 针对所述当前块的目标扫描区域中的待解码变换系数,基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型;
[0015] 基于所述上下文模型,对所述待解码标志位进行解码。
[0016] 根据本申请实施例的第三方面,提供一种编码方法,包括:
[0017] 当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0018] 针对所述当前块的目标扫描区域中的待编码变换系数,基于第一映射值和第二映射值,确定所述待编码变换系数的待编码标志位的上下文模型;所述第一映射值为所述待编码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待编码变换系数所在位置的纵坐标的映射值;
[0019] 基于所述上下文模型,对所述待编码标志位进行编码。
[0020] 根据本申请实施例的第四方面,提供一种编码方法,包括:
[0021] 当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0022] 针对所述当前块的目标扫描区域中的待编码变换系数,基于所述待编码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待编码变换系数的待编码标志位的上下文模型;
[0023] 基于所述上下文模型,对所述待编码标志位进行编码。
[0024] 根据本申请实施例的第五方面,提供一种解码装置,包括:
[0025] 码流获取模块,用于获取当前块的码流;
[0026] 信息获取模块,用于当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0027] 模型确定模块,用于针对所述当前块的目标扫描区域中的待解码变换系数,基于第一映射值和第二映射值,确定所述待解码变换系数的待解码标志位的上下文模型;所述第一映射值为所述待解码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待解码变换系数所在位置的纵坐标的映射值;
[0028] 解码模块,用于基于所述上下文模型,对所述待解码标志位进行解码。
[0029] 根据本申请实施例的第六方面,提供一种解码装置,包括:
[0030] 码流获取模块,用于获取当前块的码流;
[0031] 信息获取模块,用于当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0032] 模型确定模块,用于针对所述当前块的目标扫描区域中的待解码变换系数,基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型;
[0033] 解码模块,用于基于所述上下文模型,对所述待解码标志位进行解码。
[0034] 根据本申请实施例的第七方面,提供一种解码装置,包括:
[0035] 获取模块,用于当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0036] 确定模块,用于针对所述当前块的目标扫描区域中的待编码变换系数,基于第一映射值和第二映射值,确定所述待编码变换系数的待编码标志位的上下文模型;所述第一映射值为所述待编码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待编码变换系数所在位置的纵坐标的映射值;
[0037] 编码模块,用于基于所述上下文模型,对所述待编码标志位进行编码。
[0038] 根据本申请实施例的第八方面,提供一种解码装置,包括:
[0039] 获取模块,用于当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0040] 确定模块,用于针对所述当前块的目标扫描区域中的待编码变换系数,基于所述待编码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待编码变换系数的待编码标志位的上下文模型;
[0041] 编码模块,用于基于所述上下文模型,对所述待编码标志位进行编码。
[0042] 根据本申请实施例的第九方面,提供一种解码端设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现上述第一方面或第二方面所述方法的步骤。
[0043] 根据本申请实施例的第十方面,提供一种机器可读存储介质,所述存储介质内存储有能够被所述处理器执行的机器可执行指令,所述机器可执行指令被处理器执行时实现上述第一方面或第二方面所述方法的步骤。
[0044] 根据本申请实施例的第十一方面,提供一种编码端设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现上述第三方面或第四方面所述方法的步骤。
[0045] 根据本申请实施例的第十二方面,提供一种机器可读存储介质,所述存储介质内存储有能够被所述处理器执行的机器可执行指令,所述机器可执行指令被处理器执行时实现实现上述第三方面或第四方面所述方法的步骤。
[0046] 本申请提供的技术方案至少可以带来以下有益效果:
[0047] 通过获取当前块的码流,当确定当前块采用SRCC时,从码流中获取目标位置坐标信息,基于目标位置坐标信息确定当前块的目标扫描区域,基于待解码变换系数所在位置的横纵坐标的映射值确定该待解码变换系数的待解码标志位的上下文模型,根据该上下文模型,对待解码标志位进行解码。也即是,根据待解码变换系数所在位置的横纵坐标的映射值确定待解码标志位的上下文模型,使得该种分组方式与SRCC技术的扫描方式匹配,提高了解码性能。

附图说明

[0048] 图1是本申请一示例性实施例示出的一种编解码方法的示意图;
[0049] 图2是本申请一示例性实施例示出的一种解码方法的流程示意图;
[0050] 图3是本申请一示例性实施例示出的一种目标扫描区域的示意图;
[0051] 图4是本申请又一示例性实施例示出的另一种目标扫描区域的示意图;
[0052] 图5A~5C是本申请一示例性实施例示出的子区域划分的示意图;
[0053] 图6是本申请一示例性实施例示出的一种解码方法的流程示意图;
[0054] 图7A~7C是本申请一示例性实施例示出上下文模型分组的示意图;
[0055] 图8是本申请一示例性实施例示出的一种解码装置的结构示意图;
[0056] 图9是本申请一示例性实施例示出的一种解码端设备的硬件结构示意图;
[0057] 图10是本申请一示例性实施例示出的一种编码装置的结构示意图;
[0058] 图11是本申请一示例性实施例示出的一种编码端设备的硬件结构示意图。

具体实施方式

[0059] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0060] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0061] 为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面先对本申请实施例涉及的部分技术术语以及现有视频编解码的主要流程进行简单说明。
[0062] 残差:在视频编码过程中,需要经过预测过程去除空域和时域冗余,编码器经过预测得到预测值,原始像素减去预测值得到残差,残差块是变换、量化、熵编码的基本单元。
[0063] 变换系数:变换、量化的作用是对残差数据进行变换、量化以去除频域相关性,对数据进行有损压缩。变换编码将图像从时域信号变换至频域,将能量集中至低频区域。由于图像能量主要集中在低频区域,通过量化将高频的变换系数置零可以在变换模块的基础上减小图像编码的动态范围。去除高频区域的变换系数,减小码率的开销,并且不会造成很大的失真。其中,残差块经过变换、量化后的系数称为变换系数。
[0064] 语法元素:可以用于指示一个变换系数,通常情况下,一个变换系数需要通过至少一个语法元素来进行指示。
[0065] 上下文:一般情况下,不同的语法元素之间并不完全独立,且相同语法元素自身也具有一定的记忆性。因此,根据条件熵的理论,利用其他已编码的语法元素进行条件编码,相对于独立编码或者无记忆编码能够进一步提高编码性能。这些用来作为条件的已编码符号信息称为上下文。
[0066] 上下文模型:在视频编解码中,基于上下文更新符号概率的过程称为上下文模型,并且根据具体应用条件,同一个语法元素可以使用的多个上下文模型来自适应的更新当前条件下的符号概率,从而进一步压缩码率。
[0067] 基于扫描区域的系数编码(Scan Region‑based Coefficient Coding,简称SRCC):利用(SRx,SRy)来确定一个变换系数矩阵中需要扫描的变换系数的区域,其中SRx是变换系数矩阵中最右面的非零变换系数的横坐标,SRy是变换系数矩阵中最下面的非零变换系数的纵坐标。只有(SRx,SRy)确定的扫描区域内的变换系数需要编解码,而扫描区域外的系数全为0,不需要进行编解码,采用该技术能够进一步降低码率开销。
[0068] 二、现有视频编解码的主要流程
[0069] 请参考图1中的(a),以视频编码为例,视频编码一般包括预测、变换、量化、熵编码等过程,进一步地,编码过程还可以按照图1中的(b)的框架来实现。
[0070] 其中,预测可以分为帧内预测和帧间预测,帧内预测是利用周围已编码块作为参考对当前未编码块进行预测,有效去除空域上的冗余。帧间预测是使用邻近已编码图像对当前图像进行预测,有效去除时域上的冗余。
[0071] 变换是指将图像从空间域转换至变换域,利用变换系数对图像加以表示。绝大多数图像都含有较多平坦区域和缓慢变化的区域,适当的变换可以使图像由在空间域的分散分布转换为在变换域的相对集中分布,去除信号之间的频域相关性,配合量化过程,可以有效压缩码流。
[0072] 熵编码是一种无损编码方式,可以把一系列元素符号转变为一个用来传输或存储的二进制码流,输入的符号可能包括量化后的变换系数、运动矢量信息、预测模式信息,变换量化相关语法等。熵编码可以有效地去除视频元素符号的冗余。
[0073] 上述是以编码为例进行介绍,视频解码与视频编码的过程是相对的,即视频解码通常包括熵解码、预测、反量化、反变换、滤波等过程,各个过程的实现原理与熵编码相同或相似。
[0074] 目前,熵编码可以利用SRCC技术来实现,SRCC技术可以通过确定需要编码的当前块的变换系数矩阵中最右面的非零变换系数的横坐标SRx和变换系数矩阵中最下面的非零变换系数的纵坐标SRy,利用(SRx,SRy)来确定该变化系数矩阵中需要扫描的扫描区域(本文中称为目标扫描区域),对(SRx,SRy)确定的目标扫描区域内的变换系数进行编码。
[0075] 在本申请提供的一种实施例中,当采用SRCC进行解码时,significant flag,GT1flag,GT2flag的上下文模型可以按照扫描顺序已编码或解码的部分变换系数的相关标志的个数确定,并根据变换系数在目标扫描区域的相对位置、当前块的大小和通道进行分组,其中,significant flag,GT1flag,GT2flag均可以分为亮度通道和色度通道,具体可参见下文表1。例如,针对significant flag的亮度通道,可以根据当前块的大小分为三类上下文模型集合,每类上下文模型集合中包括13种上下文模型,然后可以根据变换系数在目标扫描区域的相对位置对每类上下文模型集合进一步分组,进而可以根据扫描顺序已编码或解码的5个变换系数的非零变换系数的个数,确定一个上下文模型,用于对significant flag的亮度通道进行编码或解码。针对significant flag的色度通道,可以根据变换系数在目标扫描区域的相对位置对上下文模型集合进行分组,然后可以根据扫描顺序已编码或解码的5个变换系数的非零变换系数的个数,确定一个上下文模型,用于对significant flag的色度通道进行编码或解码。再如,针对GT1flag或GT2flag的亮度通道,可以根据变换系数在目标扫描区域的相对位置进行分组,然后可以根据扫描顺序已编码或解码的5个变换系数的非零变换系数的个数,确定一个上下文模型,用于对GT1flag或GT2flag的亮度通道进行编码或解码。针对GT1flag或GT2flag的色度通道,可以根据扫描顺序已编码或解码的5个变换系数的非零变换系数的个数,确定一个上下文模型,用于对GT1flag或GT2flag的色度通道进行编码或解码。
[0076] 表1
[0077]
[0078] 示例性的,significant flag用于指示变换系数是否非零,GT1flag用于指示变换系数幅值是否大于1,GT2flag用于指示变换系数幅值是否大于2。
[0079] 为了使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
[0080] 首先对编码流程进行介绍:当前块经过预测后得到预测值,当前块的原始值减去该预测值得到当前块的残差,对该残差经过变换量化后得到变换系数,若当前块的所有变换系数均为零,则当前块的cbf标志位置为零,不需要编码当前块的变换系数。否则当前块的cbf标志位置为1,当前块存在非零变换系数,若编码端序列头启用SRCC,则确定当前块的目标扫描区域,并编码SRx和SRy的坐标值,基于扫描顺序从目标扫描区域的右下角到左上角依次编码每个变换系数,每个变换系数需要的信息有包含significant flag、GT1flag、GT2flag、remaining level和sign中的至少一个。将SRCC启用标志位、当前块的变换系数和cbf标志位等信息经过熵编码得到二进制码流。
[0081] 示例性的,remaing level用于指示变换系数的幅值大于2的剩余部分幅值,sign用于指示变换系数是正数还是负数。
[0082] 在实施例中,解码过程一般包括:接收码流,解析当前块的cbf标志位,cbf=0表示当前块所有变换系数都为0,不需要进行反量化和反变换操作,因此当前块的残差也为0,当前块的重建值即为当前块的预测值。若cbf标志位为1,若码流序列头解析出当前序列使用SRCC技术,则继续解析出当前块的目标扫描区域的坐标SRx和SRy,然后由SRx和SRy确定目标扫描区域,基于扫描顺序从目标扫描区域的右下角到左上角依次解码每一个变换系数,每个变换系数需要解码的信息包含significant flag、GT1flag、GT2flag、remaining level和sign中的至少一个。得到当前块的熵解码后的变换系数,经过反量化反变换得到当前块的残差,与预测值相加得到当前块的重建值。
[0083] 请参见图2,为本申请实施例提供的一种解码方法的流程示意图,该解码方法可以应用于解码端设备,如图2所示,该解码方法可以包括以下步骤:
[0084] 步骤S200、获取当前块的码流。
[0085] 该当前块可以为待处理图像中的任一个图像块。在实施中,可以将待处理图像划分为不同的图像块,然后可以按一定顺序依次对每个图像块进行处理。其中,每个图像块的大小和形状可以根据预设的划分规则进行设置。
[0086] 该码流为编码端发送的,该码流可以为二进制码流,该码流中可以携带解码端解码需要获知的一些信息,例如,该码流可以携带用于编码端采用的编码方式的信息、当前块的尺寸等信息。
[0087] 步骤S210、当确定当前块采用SRCC时,从码流中获取目标位置坐标信息,并基于目标位置坐标信息确定当前块的目标扫描区域;该目标位置坐标信息包括第一坐标值和第二坐标值,第一坐标值为当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,第二坐标值为当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标。
[0088] 作为一种示例,在确定当前块的编码方式之前,可以确定当前块的变换系数中是否有非零变换系数。示例性的,编码端可以在码流中携带一个标志位,以通过该标志位指示该当前块所有变换系数是否都为零。例如,该标志位可以为cbf标志位,当码流携带的cbf标志位为0时,可以表示当前块所有变换系数都为零,在该种情况下可以不需要解码当前块的变换系数。当cbf标志位为1时,表示当前块中存在非零变换系数,在该种情况下需要解码当前块的变换系数。
[0089] 作为一种示例,在解码之前可以确定编码端采用的编码方式。当编码端采用SRCC进行熵编码时,可以在该码流中携带用于指示该SRCC的标志位,如此,对于解码端来说,可以根据该码流中的该标志位确定当前块采用了SRCC。
[0090] 在确定当前块的编码方式为SRCC的情况下,可以确定变换系数对应的目标扫描区域,该目标扫描区域是通过当前块的变换系数中最右面的非零变换系数的横坐标(本文中称为第一坐标值,简称SRx)和变换系数中最下面的非零变换系数的纵坐标(本文中称为第二坐标值,简称SRy)来确定的。
[0091] 作为一种示例,可以以当前块的某个顶点为原点建立坐标系,如图3所示,在本实施例中以当前块的左上顶点为原点建立坐标系。基于此,解码端可以通过在码流中获取SRx和SRy的信息,确定目标扫描区域(图3中的矩形框,基于包括SRx和SRy的目标位置坐标即可确定出该目标扫描区域),如图4所示,该目标扫描区域内所有变换系数所在的位置的坐标值均大于零。其中,该SRx和SRy对应的位置为该目标扫描区域对应的目标位置。
[0092] 需要说明的是,目标扫描区域可以根据非零变换系数的分布情况不同而不同,如目标扫描区域可以是当前块的部分区域,也可以是当前块的全部区域。其中,当前块除目标扫描区域之外的区域内的变换系数都为零,而目标扫描区域内部的某个或某些变换系数可以是零。
[0093] 步骤S220、针对当前块的目标扫描区域中的待解码变换系数,基于第一映射值和第二映射值,确定待解码变换系数的待解码标志位的上下文模型;第一映射值为待解码变换系数所在位置的横坐标的映射值,第二映射值为待解码变换系数所在位置的纵坐标的映射值。
[0094] 示例性的,待解码变换系数为按扫描顺序得到的待进行解码的变换系数,也即是,在解码过程中可以按照一定的顺序扫描该目标扫描区域,例如,如图3所示,该扫描顺序可以是从右下角到左上角的反向Z字型扫描。每扫描到一个变换系数确定为待解码变换系数,然后可以按照本申请实施例提供的方法解码该待解码变换系数的待解码标志位。
[0095] 示例性,该待解码标志位包括第一标志位、第二标志位、第三标志位中的至少一个。该第一标志位用于指示变换系数是否是非零。该第二标志位用于指示变换系数的绝对值是否大于1。该第三标志位用于指示变换系数的绝对值是否大于2。
[0096] 例如,该第一标志位为significant flag,该第二标志位为GT1flag,该第三标志位为GT2flag。也就是说,待解码变换系数,需要至少一个标志位用于指示待解码变换系数,即待解码变换系数可以由一个标志位进行指示,也可以由多个标志位进行指示。
[0097] 举例来说,假设待解码变换系数为1,则需要significant flag用于指示待解码变换系数非零,GT1flag用于指示待解码变换系数幅值小于等于1。
[0098] 又举例来说,假设待解码变换系数为0,则需要significant flag用于指示待解码变换系数为零即可。
[0099] 需要说明的是,一般来说至少需要标志位significant flag用于指示待解码变换系数是否为零。作为一种示例,当待解码变换系数为当前块中最后一个待解码的变换系数,且之前按照扫描顺序进行解码的变换系数全部为零,由于当前块中存在非零变换系数,也就可以确定该待解码变换系数非零,因此,可以不对标志位significant flag进行解码。
[0100] 此外,用于指示一个变换系数的语法元素还可能包括其它标志位和/或参数,例如,还可以包括第四标志位和/或变量,该第四标志位可以用于指示非零变换系数的正负,该变量可以用于指示非零变换系数幅值大于2的剩余部分,其中,该第四标志位和变量可以采用其它方式进行编解码,因此本申请实施例对此不做过多介绍。
[0101] 如前文所述,变换系数的编解码可以通过对用于指示变换系数的语法元素进行编解码来实现,其中,该语法元素中的至少一个标志位可以通过上下文模型进行编解码,一般来说,每个标志位都可以支持多种不同的上下文模型来进行编解码。例如,标志位significant flag、GT1flag和GT2flag对应的上下文模型的数量如表1所示。
[0102] 需要说明的是,每个标志位对应的上下文模型可以分为亮度分量对应的上下文模型和色度分量对应的上下文模型,亮度分量和色度分量对应的上下文模型的确定方式可以相同,也可以不同,本申请实施例提供的方法可以适用于确定亮度分量对应的上下文模型,或者,也可以适用于确定色度分量对应的上下文模型。
[0103] 作为一种示例,标志位对应的上下文模型可以根据一定规则分为多类上下文模型集合。以标志位significant flag为例,其亮度分量对应的上下文模型为39种,可以将其分为三类上下文模型集合,其中每一类上下文模型集合中包括13种上下文模型。
[0104] 示例性,对于任一类上下文模型集合,还可以进一步划分为多个上下文模型子集,例如,可以将上述每类上下文模型集合分为两个上下文模型子集,其中每个上下文模型子集中包括6种上下文模型。
[0105] 需要注意的是,目标扫描区域的右下角的1个变换系数可以使用单独的上下文模型。
[0106] 由此可见,每个标志位都对应有多种上下文模型,因此,在解码过程中需要确定采用哪种上下文模型解码待解码变换系数。
[0107] 在本申请实施例中,对于当前块的目标扫描区域中的任一待解码变换系数,可以基于该待解码变换系数所在位置的横坐标的映射值(本文中称为第一映射值)以及该待解码变换系数所在位置的纵坐标的映射值(本文中称为第二映射值)。
[0108] 示例性的,假设待解码变换系数所在位置的坐标信息为(pos_x,pos_y),即待解码变换系数的横坐标为pos_x,待解码变换系数的纵坐标为pos_y。
[0109] 在一个示例中,上述第一映射值和第二映射值可以通过以下方式确定:
[0110] 基于待解码变换系数所在位置的横坐标以及第一坐标值,确定第一映射值;
[0111] 基于待解码变换系数所在位置的纵坐标以及第二坐标值,确定第二映射值。
[0112] 示例性的,对于当前块的目标扫描区域中的任一待解码变换系数,可以分别基于该解码系数所在位置的横坐标(即pos_x)以及第一坐标值(即SRx),确定第一映射值,以及,基于该待解码变换系数所在位置的纵坐标(即pos_y)以及第二坐标值(即SRy),确定第二映射值。
[0113] 在一个示例中,上述基于待解码变换系数所在位置的横坐标以及第一坐标值,确定第一映射值,可以包括:
[0114] 基于第一坐标值,将目标扫描区域水平等分为N个第一子区域,并基于待解码变换系数所在位置的横坐标所在目标第一子区域,确定第一映射值;N≥2;
[0115] 上述基于待解码变换系数所在位置的纵坐标以及第二坐标值,确定第二映射值,可以包括:
[0116] 基于第二坐标值,将目标扫描区域垂直等分为M个第二子区域,并基于待解码变换系数所在位置的横坐标所在目标第二子区域,确定第二映射值;M≥2。
[0117] 示例性的,为了实现对待解码变换系数所在位置的横坐标的映射,可以基于第一坐标值,将目标扫描区域水平等分为N个子区域(本文中称为第一子区域),即将目标扫描区域沿水平方向依次划分为N个等大的第一子区域,并基于待解码变换系数所在位置的横坐标所在第一子区域(本文中称为第一目标子区域),确定第一映射值。
[0118] 同理,为了实现对待解码变换系数所在位置的纵坐标的映射,可以基于第二坐标值,将目标扫描区域垂直等分为M个子区域(本文中称为第二子区域),即将目标扫描区域沿垂直方向依次划分为M个等大的第二子区域,并基于待解码变换系数所在位置的纵坐标所在第二子区域(本文中称为第二目标子区域),确定第一映射值。
[0119] 在一个示例中,各第一子区域(或第二子区域)与映射值的对应关系可以预先配置,如可以预先配置如表2和表3所示的映射值表。
[0120] 表2
[0121]子区域 映射值
第一子区域1 0
第一子区域2 1
… …
[0122] 表3
[0123]子区域 映射值
第二子区域1 0
第二子区域2 1
… …
[0124] 基于表2或表3所示的映射值表,当确定了待解码变换系数所在位置的横坐标所在目标第一子区域时,可以基于目标第一子区域查询表2所示映射值表,确定待解码变换系数所在位置的横坐标的映射值。
[0125] 同理,当确定了待解码变换系数所在位置的纵坐标所在目标第二子区域时,可以基于目标第二子区域查询表3所示映射值表,确定待解码变换系数所在位置的纵坐标的映射值。
[0126] 举例来说,以N=4为例,可以分别以横坐标SRx/4、SRx/2以及SRx*3/4为分割点,将目标扫描区域水平等分为4个子区域(即第一子区域),其示意图可以如图5A所示。
[0127] 示例性的,如图5A所示,按照从左到右的顺序,各第一子区域的映射值(示为f(i))可以依次为0、1、2和3。
[0128] 又举例来说,以M=4为例,可以分别以纵坐标SRy/4、SRy/2以及SRy*3/4为分割点,将目标扫描区域垂直等分为4个子区域(即第二子区域),其示意图可以如图5B所示。
[0129] 示例性的,如图5B所示,按照从上到下的顺序,各第二子区域的映射值(示为f(j))可以依次为0、1、2和3。
[0130] 应该认识到,在本申请实施例中,基于第一坐标值对目标扫描区域进行水平划分时,或,基于第二坐标值对目标区域进行垂直划分时,并不限于等分的方式,也可以根据实际设置为非等分的方式。
[0131] 举例来说,以N=3为例,可以分别以横坐标SRx/4以及SRx*3/4为分割点,将目标扫描区域水平划分为3个子区域,其示意图可以如图5C所示。
[0132] 示例性的,如图5C所示,按照从左到右的顺序,各子区域的映射值(示为f(i))可以依次为0、1和2。
[0133] 在一个示例中,上述基于待解码变换系数所在位置的横坐标所在目标第一子区域,确定第一映射值,可以包括:
[0134] 当目标第一子区域为第一子区域i时,确定第一映射值为i‑1,第一子区域i为按从左到右顺序的第i个第一子区域,1≤i≤N;
[0135] 上述基于待解码变换系数所在位置的横坐标所在目标第二子区域,确定第二映射值,可以包括:
[0136] 当目标第二子区域处于第二子区域j时,确定第二映射值为j‑1,第二子区域j为按从上到下顺序的第j个第二子区域,1≤j≤M。
[0137] 示例性的,当对目标扫描区域进行子区域划分,并确定了待解码变换系数所在位置的横纵坐标所在子区域时,可以基于待解码变换系数所在位置的横纵坐标所在区域,确定待解码变换系数所在位置的横纵坐标的映射值。
[0138] 示例性的,对于待解码变换系数所在位置的横坐标,当目标第一子区域为按从左到右的顺序的第i个第一子区域(本文中称为第一子区域i,1≤i≤N)时,即待解码变换系数所在位置的横坐标处于第一子区域i时,可以确定第一映射值为i‑1。
[0139] 对于待解码变换系数所在位置的纵坐标,当目标第一子区域为按从上到下的顺序的第j个第二子区域(本文中称为第二子区域j,1≤j≤M)时,即待解码变换系数所在位置的纵坐标处于第二子区域j时,可以确定第一映射值为j‑1。
[0140] 举例来说,以N=M=4为例,第一子区域1~第一子区域4对应的映射值依次0~3,第二子区域1~第二子区域4对应的映射值依次为0~3,即第一映射值(假设为f(i))和第二映射值(假设为f(j))可以分别满足以下语法:
[0141] f(i)=f(pos_x,SRx)=(pos_x≤SRx/2)?(pos_x≤SRx/4?0:1):(pos_x≤SRx*3/4?2:3)
[0142] 示例性的,基于该语法可知,为了确定待解码变换系数所在位置的横坐标pos_x的映射值f(i),需要先确定pos_x处于SRx/2左侧的子区域,还是SRx/2右侧的子区域;当pos_x处于SRx/2左侧的子区域时,再确定pos_x处于SRx/4左侧的子区域,还是SRx/4右侧的子区域;当pos_x处于SRx/2右侧的子区域时,再确定pos_x处于SRx*3/4左侧的子区域,还是SRx*3/4右侧的子区域,进而,基于pos_x所处的子区域确定pos_x的映射值f(i)。f(j)=f(pos_y,SRy)=(pos_y≤SRy/2)?(pos_y≤SRy/4?0:1):(pos_y≤SRy*3/4?2:3)[0143] 示例性的,基于该语法可知,为了确定待解码变换系数所在位置的横坐标pos_y的映射值f(j),需要先确定pos_y处于SRy/2左侧的子区域,还是SRy/2右侧的子区域;当pos_y处于SRy/2左侧的子区域时,再确定pos_y处于SRy/4左侧的子区域,还是SRy/4右侧的子区域;当pos_y处于SRy/2右侧的子区域时,再确定pos_y处于SRy*3/4左侧的子区域,还是SRy*
3/4右侧的子区域,进而,基于pos_y所处的子区域确定pos_y的映射值f(j)。
[0144] 举例来说,假设子区域划分分别如图5A和5B所示,图5A对应的映射值表如表2所示,图5B对应的映射表如表3所示。
[0145] 对于待解码变换系数所在位置的横坐标pos_x的映射值f(i),可以先比较pos_x与SRx/2。
[0146] 当pos_x≤SRx/2时,可以确定pos_x处于第一子区域1或第一子区域2,此时,可以确定pos_x≤SRx/4是否成立,若成立,则确定pos_x处于第一子区域1,pos_x的映射值f(i)为0;若不成立(即SRx/4<pos_x≤SRx/2),则确定pos_x处于第一子区域2,pos_x的映射值f(i)为1。
[0147] 当pos_x>SRx/2时,可以确定pos_x处于第一子区域3或第一子区域4,此时,可以确定pos_x≤SRx*3/4是否成立,若成立(即SRx/2<pos_x≤3SRx/4),则确定pos_x处于第一子区域3,pos_x的映射值f(i)为2;若不成立,则确定pos_x处于第一子区域4,pos_x的映射值f(i)为3。
[0148] 同理,对于待解码变换系数所在位置的横坐标pos_y的映射值f(j),可以先比较pos_y与SRy/2。
[0149] 当pos_y≤SRy/2时,可以确定pos_y处于第二子区域1或第二子区域2,此时,可以确定pos_y≤SRy/4是否成立,若成立,则确定pos_y处于第二子区域1,pos_y的映射值f(j)为0;若不成立(即SRy/4<pos_y≤SRy/2),则确定pos_y处于第二子区域2,pos_y的映射值f(j)为1。
[0150] 当pos_y>SRy/2时,可以确定pos_y处于第二子区域3或第二子区域4,此时,可以确定pos_y≤SRy*3/4是否成立,若成立(即SRy/2<pos_y≤3SRy/4),则确定pos_y处于第二子区域3,pos_y的映射值f(j)为2;若不成立,则确定pos_y处于第二子区域4,pos_y的映射值f(j)为3。
[0151] 应该认识到,上述目标第一子区域与第一映射值的对应关系,或/和,目标第二子区域与第二映射值的对应关系仅为本申请实施例的一种具体示例,而并不是对本申请保护范围的限定,即在本申请实施例中,目标第一子区域与第一映射值的对应关系,或/和,目标第二子区域与第二映射值的对应关系也可以为其他情况,例如,当目标第一子区域为第一子区域i时,第一映射值为i;当目标第二子区域为第二子区域j时,第二映射值为j。
[0152] 本申请实施例中,上下文模型是至少基于第一映射值和第二映射值确定,其具体实现方式可以包括如下几种可能的实现方式中的一种:
[0153] 实现方式一、基于第一映射值和第二映射值二者之和,确定待解码变换系数的待解码标志位的上下文模型。
[0154] 示例性的,当按照上述方式确定了第一映射值和第二映射值时,可以确定第一映射值和第二映射值二者之和,并基于第一映射值和第二映射值之和,确定待解码变换系数的待解码标志位的上下文模型。
[0155] 在一个示例中,上述基于第一映射值和第二映射值二者之和,确定待解码变换系数的待解码标志位的上下文模型,可以包括:
[0156] 当第一映射值和第二映射值二者之和小于或等于第一阈值时,从第一类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型;
[0157] 当第一映射值和第二映射值二者之和大于第二阈值时,从第二类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型;
[0158] 当第一映射值和第二映射值二者之和大于第一阈值,且小于或等于第二阈值时,从第三类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型;
[0159] 第一阈值小于第二阈值。
[0160] 示例性的,当确定了第一映射值和第二映射值二者之和时,可以比较该和值与第一阈值或/和第二阈值,并基于比较结果确定待解码变换系数的待解码标志位的上下文模型。
[0161] 例如,可以先比较该和值与第一阈值,若该和值小于或等于第一阈值,则从第一类型下文模型集合中确定待解码变换系数的待解码标志位的上下文模型;若该和值大于第一阈值,则比较该和值与第二阈值。若该和值大于第二阈值,则从第二类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型;若该和值大于第一阈值,且小于或等于第二阈值,则从第三类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型。
[0162] 示例性的,第一类上下文模型集合、第二类上下文模型集合以及第三类上下文模型集合的分类规则可以根据实际情况设定。
[0163] 示例性的,第一阈值和第二阈值可以根据实际情况进行设置。
[0164] 在一个示例中,第一阈值为1,第二阈值为2。
[0165] 在另一个示例中,第二阈值与第一阈值二者之差大于1。例如,第一阈值为1,第二阈值为3。
[0166] 作为一种示例,待解码标志位的上下文模型也可以分为大于三类的上下文模型集合,也就是说,待解码标志位也可以对应有四类上下文模型集合、五类上下文模型集合等等,此时可以设置更多的阈值进行分组,其原理与上述类似,这里不再详细介绍。
[0167] 实现方式二、在当前块满足预测模式为帧内预测模式的条件时,基于第一映射值和第二映射值二者之和,确定待解码变换系数的待解码标志位的上下文模型。
[0168] 示例性的,考虑到相较于帧间预测模式,帧内预测模式的变换系数中非零变换系数通常更多,对于帧内预测模式,更为细致的上下文模型划分可以优化编码性能。
[0169] 当解码端设备获取到当前块的码流时,可以确定当前块的预测模式,并在当前块的预测模式为帧内预测模式时,基于第一映射值和第二映射值二者之和,确定解码系数的待解标志位的上下文模型。
[0170] 示例性的,在当前块满足预测模式为帧内预测模式的条件时,基于第一映射值和第二映射值二者之和,确定待解码变换系数的待解码标志位的上下文模型的具体实现可以参见实现方式一中的相关描述,本申请实施例在此不做赘述。
[0171] 示例性的,在当前块不满足预测模式为帧内预测模式的条件时,即当前块的预测模式为帧间预测模式时,可以基于现有SRCC方案确定待解码变换系数的待解码标志位的上下文模型,其具体实现在此不做赘述。
[0172] 实现方式三、在当前块满足帧类型为I帧的条件时,基于第一映射值和第二映射值二者之和,确定待解码变换系数的待解码标志位的上下文模型。
[0173] 示例性的,考虑到相较于非I帧(如B帧或P帧),I帧的变换系数中非零变换系数通常更多,对于I帧,更为细致的上下文模型划分可以优化编码性能。
[0174] 当解码端设备获取到当前块的码流时,可以确定当前块的帧类型,并在当前块的帧类型为I帧时,基于第一映射值和第二映射值二者之和,确定解码系数的待解标志位的上下文模型。
[0175] 示例性的,在当前块满足帧类型为I帧的条件时,基于第一映射值和第二映射值二者之和,确定待解码变换系数的待解码标志位的上下文模型的具体实现可以参见实现方式一中的相关描述,本申请实施例在此不做赘述。
[0176] 示例性的,在当前块不满足预类型为I帧的条件时,即当前块的帧类型为B帧或P帧时,可以基于现有SRCC方案确定待解码变换系数的待解码标志位的上下文模型,其具体实现在此不做赘述。
[0177] 步骤S230:基于该上下文模型,对待解码标志位进行解码。
[0178] 作为一种示例,该上下文模型可以是在确定一类上下文模型集合之后,根据待解码变换系数之前已解码的5个变换系数中非零变换系数的个数,从确定的一类上下文模型集合中确定的。确定上下文模型后,即可根据该上下文模型对待解码标志位进行解码。
[0179] 作为一种示例,对于该目标扫描区域内的某个特殊位置的变换系数对应的significant flag可以不需要解码而直接导出。例如,针对(SRx,0)和(0,SRy)这两个点,若(SRx,0)和(SRx,SRy)这两个点之间的线段上的变换系数均为零,则对于(SRx,0)这个点的变换系数的significant flag可以不需要解码,直接导出。同理,若(0,SRy)和(SRx,SRy)这两个点之间的线段上的变换系数均为零,则对于(0,SRy)这个点的变换系数的significant flag可以不需要解码,直接导出。
[0180] 在本申请实施例中,获取当前块的码流,当确定当前块采用SRCC时,从码流中获取目标位置坐标信息,基于目标位置坐标信息确定当前块的目标扫描区域,基于待解码变换系数所在位置的横纵坐标的映射值确定该待解码变换系数的待解码标志位的上下文模型,根据该上下文模型,对待解码标志位进行解码。也即是,根据待解码变换系数所在位置的横纵坐标的映射值确定待解码标志位的上下文模型,使得该种分组方式与SRCC技术的扫描方式匹配,提高了解码性能。
[0181] 需要说明的是,上述第一类上下文模型集合、第二类上下文模型集合和第三类上下文模型集合仅是用于区分分组,该第一类上下文模型集合、第二类上下文模型集合和第三类上下文模型集合与其他实施例中的第一类上下文模型集合、第二类上下文模型集合和第三类上下文模型集合可以相同,也可以不同。
[0182] 请参见图6,为本申请另一示例性实施例示出的一种解码方法的流程图,其中,该方法可以应用解码端设备,如图6所示,该解码方法可以包括以下步骤:
[0183] 步骤S600、获取当前块的码流。
[0184] 其具体实现可以参见上述图2实施例中的步骤S200,本申请实施例在此不再赘述。
[0185] 步骤S610、当确定当前块采用SRCC时,从码流中获取目标位置坐标信息,并基于目标位置坐标信息确定当前块的目标扫描区域;该目标位置坐标信息包括第一坐标值和第二坐标值,第一坐标值为当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,第二坐标值为当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标。
[0186] 其具体实现可以参见上述图2实施例中的步骤S210,本申请实施例在此不再赘述。
[0187] 步骤S620、针对当前块的目标扫描区域中的待解码变换系数,基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型,确定待解码变换系数的待解码标志位的上下文模型。
[0188] 示例性的,待解码变换系数为按扫描顺序得到的待进行解码的变换系数,也即是,在解码过程中可以按照一定的顺序扫描该目标扫描区域,例如,如图3所示,该扫描顺序可以是从右下角到左上角的反向Z字型扫描。每扫描到一个变换系数确定为待解码变换系数,然后可以按照本申请实施例提供的方法解码该待解码变换系数的待解码标志位。
[0189] 示例性,该待解码标志位包括第一标志位、第二标志位、第三标志位中的至少一个。该第一标志位用于指示变换系数是否是非零。该第二标志位用于指示变换系数的绝对值是否大于1。该第三标志位用于指示变换系数的绝对值是否大于2。
[0190] 例如,该第一标志位为significant flag,该第二标志位为GT1flag,该第三标志位为GT2flag。也就是说,待解码变换系数,需要至少一个标志位用于指示待解码变换系数,即待解码变换系数可以由一个标志位进行指示,也可以由多个标志位进行指示。
[0191] 举例来说,假设待解码变换系数为1,则需要significant flag用于指示待解码变换系数非零,GT1flag用于指示待解码变换系数幅值小于等于1。
[0192] 又举例来说,假设待解码变换系数为0,则需要significant flag用于指示待解码变换系数为零即可。
[0193] 需要说明的是,一般来说至少需要标志位significant flag用于指示待解码变换系数是否为零。作为一种示例,当待解码变换系数为当前块中最后一个待解码的变换系数,且之前按照扫描顺序进行解码的变换系数全部为零,由于当前块中存在非零变换系数,也就可以确定该待解码变换系数非零,因此,可以不对标志位significant flag进行解码。
[0194] 此外,用于指示一个变换系数的语法元素还可能包括其它标志位和/或参数,例如,还可以包括第四标志位和/或变量,该第四标志位可以用于指示非零变换系数的正负,该变量可以用于指示非零变换系数幅值大于2的剩余部分,其中,该第四标志位和变量可以采用其它方式进行编解码,因此本申请实施例对此不做过多介绍。
[0195] 在本申请实施例中,对于当前块的目标扫描区域中的任一待解码变换系数,可以基于该待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定该待解码变换系数的待解码标志位的上下文模型。
[0196] 示例性的,假设待解码变换系数所在位置的坐标信息为(pos_x,pos_y),指定位置的坐标信息为(n1,n2)。
[0197] 在一个示例中,上述基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型,可以包括:
[0198] 当待解码变换系数所在位置的横坐标pos_x小于或等于n1,且待解码变换系数所在位置的纵坐标pos_y小于或等于n2时,从第一类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型;
[0199] 当待解码变换系数所在位置的横坐标pos_x大于n1,且待解码变换系数所在位置的纵坐标pos_y大于n2时,从第二类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型;
[0200] 当待解码变换系数所在位置的横坐标pos_x大于n1,且待解码变换系数所在位置的纵坐标pos_y小于或等于n2,或,当待解码变换系数所在位置的横坐标pos_x小于或等于n1,且待解码变换系数所在位置的纵坐标pos_y大于n2时,从第三类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型。
[0201] 示例性的,对于当前块的目标扫描区域中的任一待解码变换系数,可以基于该待解码变换系数所在位置与指定位置的相对位置关系,确定该待解码变换系数的待解码标志位的上下文模型。
[0202] 当待解码变换系数所在位置的横坐标pos_x小于或等于n1,且待解码变换系数所在位置的纵坐标pos_y小于或等于n2时,即待解码变换系数所在位置处于指定位置的左上角区域时,从第一类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型。
[0203] 当待解码变换系数所在位置的横坐标pos_x大于n1,且待解码变换系数所在位置的纵坐标pos_y大于n2时,即待解码变换系数所在位置处于指定位置的右下角区域,从第二类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型。
[0204] 当待解码变换系数所在位置的横坐标pos_x大于n1,且待解码变换系数所在位置的纵坐标pos_y小于或等于n2,或,当待解码变换系数所在位置的横坐标pos_x小于或等于n1,且待解码变换系数所在位置的纵坐标pos_y大于n2时,即待解码变换系数所在位置处于指定位置的右上角或左下角区域,从第三类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型。
[0205] 示例性的,待解码变换系数所在位置与指定位置的相对位置关系,可以通过待解码变换系数所在位置在以目标位置为坐标原点,水平向右为x轴正向,竖直向下为y轴正向的坐标系中的区域表示。
[0206] 当待解码变换系数所在位置处于该坐标系的第三象限,或x轴负半轴,或y轴负半轴时,确定待解码变换系数所在位置处于指定位置的左上角区域;
[0207] 当待解码变换系数所在位置处于该坐标系的第一象限时,确定待解码变换系数所在位置处于指定位置的右下角区域;
[0208] 当解码系数所在位置处于该坐标系的第四象限,或x轴正半轴时,确定待解码变换系数所在位置处于指定位置的右上角区域;
[0209] 当待解码变换系数所在位置处于该坐标系的第二象限,或y轴正半轴时,确定待解码变换系数所在位置处于指定位置的左下角区域。
[0210] 示例性的,上述指定位置的坐标信息为(SRx/2,SRy/2)。
[0211] 即当待解码变换系数所在位置的横坐标pos_x小于或等于SRx/2,且待解码变换系数所在位置的纵坐标pos_y小于或等于SRy/2时,即待解码变换系数所在位置处于指定位置的左上角区域时,从第一类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型。
[0212] 当待解码变换系数所在位置的横坐标pos_x大于SRx/2,且待解码变换系数所在位置的纵坐标pos_y大于SRy/2时,即待解码变换系数所在位置处于指定位置的右下角区域,从第二类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型。
[0213] 当待解码变换系数所在位置的横坐标pos_x大于SRx/2,且待解码变换系数所在位置的纵坐标pos_y小于或等于SRy/2,或,当待解码变换系数所在位置的横坐标pos_x小于或等于SRx/2,且待解码变换系数所在位置的纵坐标pos_y大于SRy/2时,即待解码变换系数所在位置处于指定位置的右上角或左下角区域,从第三类型上下文模型集合中确定待解码变换系数的待解码标志位的上下文模型。
[0214] 在一个示例中,上述基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型,可以包括:
[0215] 在当前块满足帧类型为I帧的条件时,执行基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型的步骤。
[0216] 示例性的,考虑到相较于非I帧(如B帧或P帧),I帧的变换系数中非零变换系数通常更多,对于I帧,更为细致的上下文模型划分可以优化编码性能。
[0217] 当解码端设备获取到当前块的码流时,可以确定当前块的帧类型,并在当前块的帧类型为I帧时,基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型。
[0218] 示例性的,在当前块满足帧类型为I帧的条件时,基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型的具体实现可以参见步骤S620中的相关描述,本申请实施例在此不做赘述。
[0219] 示例性的,在当前块不满足预类型为I帧的条件时,即当前块的帧类型为B帧或P帧时,可以基于现有SRCC方案确定待解码变换系数的待解码标志位的上下文模型,其具体实现在此不做赘述。
[0220] 在一个示例中,上述基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型,可以包括:
[0221] 在当前块满足预测模式为帧内预测模式的条件时,执行基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型的步骤。
[0222] 示例性的,考虑到相较于帧间预测模式,帧内预测模式的变换系数中非零变换系数通常更多,对于帧内预测模式,更为细致的上下文模型划分可以优化编码性能。
[0223] 当解码端设备获取到当前块的码流时,可以确定当前块的预测模式,并在当前块的预测模式为帧内预测模式时,基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型。
[0224] 示例性的,在当前块满足预测模式为帧内预测模式的条件时,基于待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定待解码变换系数的待解码标志位的上下文模型的具体实现可以参见步骤S620中的相关描述,本申请实施例在此不做赘述。
[0225] 示例性的,在当前块不满足预测模式为帧内预测模式的条件时,即当前块的预测模式为帧间预测模式时,可以基于现有SRCC方案确定待解码变换系数的待解码标志位的上下文模型,其具体实现在此不做赘述。
[0226] 步骤S630:基于该上下文模型,对待解码标志位进行解码。
[0227] 其具体实现可以参见上述图2实施例中的步骤S230,本申请实施例在此不再赘述。
[0228] 在本申请实施例中,获取当前块的码流,当确定当前块采用SRCC时,从码流中获取目标位置坐标信息,基于目标位置坐标信息确定当前块的目标扫描区域,基于待解码变换系数所在位置的坐标信息和指定位置的坐标信息确定该待解码变换系数的待解码标志位的上下文模型,根据该上下文模型,对待解码标志位进行解码。也即是,根据待解码变换系数所在位置的坐标信息和指定位置的坐标信息确定待解码标志位的上下文模型,使得该种分组方式与SRCC技术的扫描方式匹配,提高了解码性能。
[0229] 作为一种示例,本申请实施例还提供的一种编码方法,其中,该编码方法可以应用于编码端设备,该方法可以包括以下步骤:
[0230] 步骤A1、当当前块采用SRCC时,获取目标位置坐标信息,该目标位置坐标信息包括第一坐标值和第二坐标值,第一坐标值为当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,第二坐标值为当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标。
[0231] 其具体实现方式可以参见图2实施例中的步骤S210,本申请实施例在此不再赘述。
[0232] 步骤A2、针对当前块的目标扫描区域中的待编码变换系数,基于第一映射值和第二映射值,确定该待编码变换系数的待编码标志位的上下文模型;第一映射值为该待编码变换系数所在位置的横坐标的映射值,第二映射值为该待编码变换系数所在位置的纵坐标的映射值。
[0233] 其具体实现方式可以参见图2实施例中的步骤S220,本申请实施例在此不再赘述。
[0234] 步骤A3、基于该上下文模型,对待编码标志位进行编码。
[0235] 其具体实现方式可以参见图2实施例中的步骤S230,本申请实施例在此不再赘述。
[0236] 在本申请实施例中,当当前块采用SRCC时,获取目标位置坐标信息,基于目标位置坐标信息确定当前块的目标扫描区域,基于目标扫描区域中待编码变换系数所在位置的横纵坐标的映射值,确定待编码变换系数的待编码标志位的上下文模型,基于该上下文模型,对待编码标志位进行编码。也即是,基于待编码变换系数所在位置的横纵坐标的映射值确定待编码标志位的上下文模型,使得该种分组方式与SRCC技术的扫描方式匹配,提高了编码性能。
[0237] 作为一种示例,本申请实施例还提供的一种编码方法,其中,该编码方法可以应用于编码端设备,该方法可以包括以下步骤:
[0238] 步骤B1、当当前块采用SRCC时,获取目标位置坐标信息,该目标位置坐标信息包括第一坐标值和第二坐标值,第一坐标值为当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,第二坐标值为当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标。
[0239] 其具体实现方式可以参见图2实施例中的步骤S210,本申请实施例在此不再赘述。
[0240] 步骤B2、针对当前块的目标扫描区域中的待编码变换系数,基于待编码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定该待编码变换系数的待编码标志位的上下文模型。
[0241] 其具体实现方式可以参见图2实施例中的步骤S220,本申请实施例在此不再赘述。
[0242] 步骤B3、基于该上下文模型,对该待编码标志位进行编码。
[0243] 其具体实现方式可以参见图2实施例中的步骤S230,本申请实施例在此不再赘述。
[0244] 在本申请实施例中,当当前块采用SRCC时,获取目标位置坐标信息,基于目标位置坐标信息确定当前块的目标扫描区域,基于目标扫描区域中待编码变换系数所在位置的坐标信息和指定位置的坐标信息,确定待编码变换系数的待编码标志位的上下文模型,基于该上下文模型,对待编码标志位进行编码。也即是,基于目标扫描区域中待编码变换系数所在位置的坐标信息和指定位置的坐标信息确定待编码标志位的上下文模型,使得该种分组方式与SRCC技术的扫描方式匹配,提高了编码性能。
[0245] 为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例中上下文模型的分组方式进行说明。
[0246] 实施例一
[0247] 基于当前系数(待解码变换系数或待编码变换系数)所在位置的横坐标相对于SRx的映射值,与当前系数所在位置的纵坐标相对于SRy的映射值二者之和进行分组。
[0248] 假设当前系数所在位置的坐标为(pos_x,pos_y),pos_x相对于SRx的映射值为f(i),pos_y相对于SRy的映射值为f(j)。
[0249] 示例性的,f(i)和f(j)可以通过以下语法确定:
[0250] f(i)=f(pos_x,SRx)=(pos_x≤SRx/2)?(pos_x≤SRx/4?0:1):(pos_x≤SRx*3/4?2:3)
[0251] f(j)=f(pos_y,SRy)=(pos_y≤SRy/2)?(pos_y≤SRy/4?0:1):(pos_y≤SRy*3/4?2:3)
[0252] 基于f(i)和f(j)二者之和(下文中称为s)对上下文模型进行分组,可以包括:
[0253] 若s≤m1,则分为第一类上下文模型
[0254] 若s>m2,则分为第二类上下文模型
[0255] 若s>m1且s≤m2,则分为第三类上下文模型。
[0256] 示例性的,m1(即上述第一阈值)和m2(即上述第二阈值)均大于0,且m1<m2。
[0257] 在一个示例中,m1=1,m2=2,上下文模型的分组可以如图7A所示。
[0258] 在另一个示例中,m1=1,m2=3,上下文模型的分组可以如图7B所示。
[0259] 示例性的,图7A和图7B中1、2和3分别代表第一类上下文模型、第二类上下文模型和第三类上下文模型。
[0260] 实施例二
[0261] 基于当前系数所在位置的横坐标相对于SRx的映射值,与当前系数所在位置的纵坐标相对于SRy的映射值二者之和,以及预测模式进行分组。
[0262] 假设当前系数所在位置的坐标为(pos_x,pos_y),pos_x相对于SRx的映射值为f(i),pos_y相对于SRy的映射值为f(j)。
[0263] 示例性的,若当前块的预测模式为帧内预测模式,则f(i)和f(j)可以通过以下语法确定:
[0264] f(i)=f(pos_x,SRx)=(pos_x≤SRx/2)?(pos_x≤SRx/4?0:1):(pos_x≤SRx*3/4?2:3)
[0265] f(j)=f(pos_y,SRy)=(pos_y≤SRy/2)?(pos_y≤SRy/4?0:1):(pos_y≤SRy*3/4?2:3)
[0266] 基于f(i)和f(j)二者之和(下文中称为s)对上下文模型进行分组,可以包括:
[0267] 若s≤m1,则分为第一类上下文模型
[0268] 若s>m2,则分为第二类上下文模型
[0269] 若s>m1且s≤m2,则分为第三类上下文模型。
[0270] 示例性的,m1(即上述第一阈值)和m2(即上述第二阈值)均大于0,且m1<m2。
[0271] 在一个示例中,m1=1,m2=2,上下文模型的分组可以如图7A所示。
[0272] 在另一个示例中,m1=1,m2=3,上下文模型的分组可以如图7B所示。
[0273] 若当前块的预测模式不是帧内预测模式,则:
[0274] 若pos_x≤SRx/2且pos_y≤SRy/2,则分为第一类上下文模型;
[0275] 若pos_x>SRx/2或pos_y>SRy/2,则分为第二类上下文模型。
[0276] 实施例三
[0277] 基于当前系数所在位置的横坐标相对于SRx的映射值,与当前系数所在位置的纵坐标相对于SRy的映射值二者之和,以及帧类型进行分组。
[0278] 假设当前系数所在位置的坐标为(pos_x,pos_y),pos_x相对于SRx的映射值为f(i),pos_y相对于SRy的映射值为f(j)。
[0279] 示例性的,若当前块的帧类型为I帧,则f(i)和f(j)可以通过以下语法确定:
[0280] f(i)=f(pos_x,SRx)=(pos_x≤SRx/2)?(pos_x≤SRx/4?0:1):(pos_x≤SRx*3/4?2:3)
[0281] f(j)=f(pos_y,SRy)=(pos_y≤SRy/2)?(pos_y≤SRy/4?0:1):(pos_y≤SRy*3/4?2:3)
[0282] 基于f(i)和f(j)二者之和(下文中称为s)对上下文模型进行分组,可以包括:
[0283] 若s≤m1,则分为第一类上下文模型
[0284] 若s>m2,则分为第二类上下文模型
[0285] 若s>m1且s≤m2,则分为第三类上下文模型。
[0286] 示例性的,m1(即上述第一阈值)和m2(即上述第二阈值)均大于0,且m1<m2。
[0287] 在一个示例中,m1=1,m2=2,上下文模型的分组可以如图7A所示。
[0288] 在另一个示例中,m1=1,m2=3,上下文模型的分组可以如图7B所示。
[0289] 若当前块的帧类型不是I帧,则:
[0290] 若pos_x≤SRx/2且pos_y≤SRy/2,则分为第一类上下文模型;
[0291] 若pos_x>SRx/2或pos_y>SRy/2,则分为第二类上下文模型。
[0292] 实施例四
[0293] 基于当前系数所在位置的坐标信息和指定位置的坐标信息进行分组。
[0294] 假设当前系数所在位置的坐标为(pos_x,pos_y),指定位置的坐标信息为(n1,n2)。
[0295] 若pos_x≤n1且pos_y≤n2,则分为第一类上下文模型;
[0296] 若pos_x>n1且pos_y>n2,则分为第二类上下文模型;
[0297] 若pos_x>n1且pos_y≤n2,或,pos_x≤n1且pos_y>n2,则分为第三类上下文模型。
[0298] 在一个示例中,n1=SRx/2,n2=SRy/2,上下文模型的分组可以如图7C所示。
[0299] 示例性的,图7C中1、2和3分别代表第一类上下文模型、第二类上下文模型和第三类上下文模型。
[0300] 实施例五
[0301] 基于当前系数所在位置的坐标信息、指定位置的坐标信息以及帧类型进行分组。
[0302] 假设当前系数所在位置的坐标为(pos_x,pos_y),指定位置的坐标信息为(n1,n2)。
[0303] 若当前块的帧类型为I帧,则:
[0304] 若pos_x≤n1且pos_y≤n2,则分为第一类上下文模型;
[0305] 若pos_x>n1且pos_y>n2,则分为第二类上下文模型;
[0306] 若pos_x>n1且pos_y≤n2,或,pos_x≤n1且pos_y>n2,则分为第三类上下文模型。
[0307] 在一个示例中,n1=SRx/2,n2=SRy/2,上下文模型的分组可以如图7C所示。
[0308] 若当前块的帧类型不是I帧,则:
[0309] 若pos_x≤SRx/2且pos_y≤SRy/2,则分为第一类上下文模型;
[0310] 若pos_x>SRx/2或pos_y>SRy/2,则分为第二类上下文模型。
[0311] 实施例六
[0312] 基于当前系数所在位置的坐标信息、指定位置的坐标信息以及预测模式进行分组。
[0313] 假设当前系数所在位置的坐标为(pos_x,pos_y),指定位置的坐标信息为(n1,n2)。
[0314] 若当前块的预测模式为帧内预测模式,则:
[0315] 若pos_x≤n1且pos_y≤n2,则分为第一类上下文模型;
[0316] 若pos_x>n1且pos_y>n2,则分为第二类上下文模型;
[0317] 若pos_x>n1且pos_y≤n2,或,pos_x≤n1且pos_y>n2,则分为第三类上下文模型。
[0318] 在一个示例中,n1=SRx/2,n2=SRy/2,上下文模型的分组可以如图7C所示。
[0319] 若当前块的预测模式不是帧内预测模式,则:
[0320] 若pos_x≤SRx/2且pos_y≤SRy/2,则分为第一类上下文模型;
[0321] 若pos_x>SRx/2或pos_y>SRy/2,则分为第二类上下文模型。
[0322] 以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
[0323] 请参见图8,图8是本申请实施例提供的一种解码装置的结构示意图,该装置可以包括:
[0324] 码流获取模块810,用于获取当前块的码流;
[0325] 信息获取模块820,用于当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0326] 模型确定模块830,用于针对所述当前块的目标扫描区域中的待解码变换系数,基于第一映射值和第二映射值,确定所述待解码变换系数的待解码标志位的上下文模型;所述第一映射值为所述待解码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待解码变换系数所在位置的纵坐标的映射值;
[0327] 解码模块840,用于基于所述上下文模型,对所述待解码标志位进行解码。
[0328] 在一种可能的实施方式中,所述第一映射值和第二映射值通过以下方式确定:
[0329] 基于所述待解码变换系数所在位置的横坐标以及所述第一坐标值,确定所述第一映射值;
[0330] 基于所述待解码变换系数所在位置的纵坐标以及所述第二坐标值,确定所述第二映射值。
[0331] 在一种可能的实施方式中,所述模型确定模块830,具体用于基于所述第一坐标值,将所述目标扫描区域水平等分为N个第一子区域,并基于所述待解码变换系数所在位置的横坐标所在目标第一子区域,确定所述第一映射值;N≥2;基于所述第二坐标值,将所述目标扫描区域垂直等分为M个第二子区域,并基于所述待解码变换系数所在位置的横坐标所在目标第二子区域,确定所述第二映射值;M≥2。
[0332] 在一种可能的实施方式中,所述模型确定模块830,具体用于当所述所述目标第一子区域为第一子区域i时,确定所述第一映射值为i‑1,所述第一子区域i为按从左到右顺序的第i个第一子区域,1≤i≤N;当所述目标第二子区域处于第二子区域j时,确定所述第二映射值为j‑1,所述第二子区域j为按从上到下顺序的第j个第二子区域,1≤j≤M。
[0333] 在一种可能的实施方式中,所述模型确定模块830,具体用于基于所述第一映射值和第二映射值二者之和,确定所述待解码变换系数的待解码标志位的上下文模型。
[0334] 在一种可能的实施方式中,所述模型确定模块830,具体用于当所述第一映射值和第二映射值二者之和小于或等于第一阈值时,从第一类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;
[0335] 当所述第一映射值和第二映射值二者之和大于第二阈值时,从第二类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;
[0336] 当所述第一映射值和第二映射值二者之和大于所述第一阈值,且小于或等于所述第二阈值时,从第三类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;
[0337] 所述第一阈值小于所述第二阈值。
[0338] 在一种可能的实施方式中,所述第一阈值为1,所述第二阈值为2。
[0339] 在一种可能的实施方式中,所述第二阈值与所述第一阈值二者之差大于1。
[0340] 在一种可能的实施方式中,所述模型确定模块830,具体用于在所述当前块满足预测模式为帧内预测模式的条件时,基于所述第一映射值和第二映射值之和,确定所述待解码变换系数的待解码标志位的上下文模型。
[0341] 在一种可能的实施方式中,所述模型确定模块830,具体用于在所述当前块满足帧类型为I帧的条件时,基于所述第一映射值和第二映射值之和,确定所述待解码变换系数的待解码标志位的上下文模型。
[0342] 在一种可能的实施方式中,所述待解码标志位包括第一标志位、第二标志位、第三标志位中的一个或多个;所述第一标志位用于指示变换系数是否是非零;所述第二标志位用于指示变换系数的绝对值是否大于1;所述第三标志位用于指示变换系数的绝对值是否大于2。
[0343] 在一种可能的实施方式中,上述解码装置可以包括视频解码器。
[0344] 作为一种示例,本申请实施例还提供一种解码装置,该装置可以包括:
[0345] 码流获取模块,用于获取当前块的码流;
[0346] 信息获取模块,用于当确定所述当前块采用基于扫描区域的系数编码SRCC时,从所述码流中获取目标位置坐标信息,并基于所述目标位置坐标信息确定所述当前块的目标扫描区域;所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0347] 模型确定模块,用于针对所述当前块的目标扫描区域中的待解码变换系数,基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型;
[0348] 解码模块,用于基于所述上下文模型,对所述待解码标志位进行解码。
[0349] 在一种可能的实施方式中,所述待解码变换系数所在位置的坐标信息为(pos_x,pos_y),所述指定位置的坐标信息为(n1,n2);
[0350] 所述模型确定模块,具体用于当所述待解码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待解码变换系数所在位置的纵坐标pos_y小于或等于n2时,从第一类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;
[0351] 当所述待解码变换系数所在位置的横坐标pos_x大于所述n1,且所述待解码变换系数所在位置的纵坐标pos_y大于n2时,从第二类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;
[0352] 当所述待解码变换系数所在位置的横坐标pos_x大于所述n1,且所述待解码变换系数所在位置的纵坐标pos_y小于或等于所述n2,或,当所述待解码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待解码变换系数所在位置的纵坐标pos_y大于所述n2时,从第三类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型。
[0353] 在一种可能的实施方式中,所述指定位置的坐标信息为(SRx/2,SRy/2)。
[0354] 在一种可能的实施方式中,所述模型确定模块,具体用于在所述当前块满足帧类型为I帧的条件时,基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型。
[0355] 在一种可能的实施方式中,所述模型确定模块,具体用于在所述当前块满足预测模式为帧内预测模式的条件时,基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型。
[0356] 在一种可能的实施方式中,上述解码装置可以包括视频解码器。
[0357] 请参见图9,为本申请实施例提供的一种解码端设备的硬件结构示意图。该解码端设备可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,通过读取并执行机器可读存储介质902中与解码控制逻辑对应的机器可执行指令,处理器901可执行上文描述的解码方法。
[0358] 本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0359] 在一些实施例中,还提供了一种机器可读存储介质,该机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上文描述的解码方法。例如,所述机器可读存储介质可以是ROM、RAM、CD‑ROM、磁带、软盘和光数据存储设备等。
[0360] 请参见图10,图10是本申请实施例提供的一种编码装置的结构示意图,该装置可以包括:
[0361] 获取模块1010,用于当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0362] 确定模块1020,用于针对所述当前块的目标扫描区域中的待编码变换系数,基于第一映射值和第二映射值,确定所述待编码变换系数的待编码标志位的上下文模型;所述第一映射值为所述待编码变换系数所在位置的横坐标的映射值,所述第二映射值为所述待编码变换系数所在位置的纵坐标的映射值;
[0363] 编码模块1030,用于基于所述上下文模型,对所述待编码标志位进行编码。
[0364] 在一种可能的实施方式中,所述第一映射值和第二映射值通过以下方式确定:
[0365] 基于所述待解码变换系数所在位置的横坐标以及所述第一坐标值,确定所述第一映射值;
[0366] 基于所述待解码变换系数所在位置的纵坐标以及所述第二坐标值,确定所述第二映射值。
[0367] 在一种可能的实施方式中,所述确定模块1020,具体用于基于所述第一坐标值,将所述目标扫描区域水平等分为N个第一子区域,并基于所述待编码变换系数所在位置的横坐标所在目标第一子区域,确定所述第一映射值;N≥2;基于所述第二坐标值,将所述目标扫描区域垂直等分为M个第二子区域,并基于所述待编码变换系数所在位置的横坐标所在目标第二子区域,确定所述第二映射值;M≥2。
[0368] 在一种可能的实施方式中,所述确定模块1020,具体用于当所述所述目标第一子区域为第一子区域i时,确定所述第一映射值为i‑1,所述第一子区域i为按从左到右顺序的第i个第一子区域,1≤i≤N;当所述目标第二子区域处于第二子区域j时,确定所述第二映射值为j‑1,所述第二子区域j为按从上到下顺序的第j个第二子区域,1≤j≤M。
[0369] 在一种可能的实施方式中,所述确定模块1020,具体用于基于所述第一映射值和第二映射值二者之和,确定所述待编码变换系数的待编码标志位的上下文模型。
[0370] 在一种可能的实施方式中,所述确定模块1020,具体用于当所述第一映射值和第二映射值二者之和小于或等于第一阈值时,从第一类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;当所述第一映射值和第二映射值二者之和大于第二阈值时,从第二类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;当所述第一映射值和第二映射值二者之和大于所述第一阈值,且小于或等于所述第二阈值时,从第三类型上下文模型集合中确定所述待编码变换系数的待编码标志位的上下文模型;
[0371] 所述第一阈值小于所述第二阈值。
[0372] 在一种可能的实施方式中,所述第一阈值为1,所述第二阈值为2。
[0373] 在一种可能的实施方式中,所述第二阈值与所述第一阈值二者之差大于1。
[0374] 在一种可能的实施方式中,所述确定模块1020,具体用于在所述当前块满足预测模式为帧内预测模式的条件时,基于所述第一映射值和第二映射值之和,确定所述待编码变换系数的待编码标志位的上下文模型。
[0375] 在一种可能的实施方式中,所述确定模块1020,具体用于在所述当前块满足帧类型为I帧的条件时,基于所述第一映射值和第二映射值之和,确定所述待编码变换系数的待编码标志位的上下文模型。
[0376] 在一种可能的实施方式中,所述待编码标志位包括第一标志位、第二标志位、第三标志位中的一个或多个;所述第一标志位用于指示变换系数是否是非零;所述第二标志位用于指示变换系数的绝对值是否大于1;所述第三标志位用于指示变换系数的绝对值是否大于2。
[0377] 在一种可能的实施方式中,上述编码装置可以包括视频编码器。
[0378] 作为一种示例,本申请实施例还提供一种编码装置,该装置可以包括:
[0379] 获取模块,用于当当前块采用基于扫描区域的系数编码SRCC时,获取目标位置坐标信息,所述目标位置坐标信息包括第一坐标值和第二坐标值,所述第一坐标值为所述当前块的变换系数包括的非零变换系数中横坐标绝对值最大的非零变换系数的横坐标,所述第二坐标值为所述当前块的变换系数包括的非零变换系数中纵坐标绝对值最大的非零变换系数的纵坐标;
[0380] 确定模块,用于针对所述当前块的目标扫描区域中的待编码变换系数,基于所述待编码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待编码变换系数的待编码标志位的上下文模型;
[0381] 编码模块,用于基于所述上下文模型,对所述待编码标志位进行编码。
[0382] 在一种可能的实施方式中,所述待解码变换系数所在位置的坐标信息为(pos_x,pos_y),所述指定位置的坐标信息为(n1,n2);
[0383] 所述确定模块,具体用于当所述待解码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待解码变换系数所在位置的纵坐标pos_y小于或等于n2时,从第一类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;当所述待解码变换系数所在位置的横坐标pos_x大于所述n1,且所述待解码变换系数所在位置的纵坐标pos_y大于n2时,从第二类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型;当所述待解码变换系数所在位置的横坐标pos_x大于所述n1,且所述待解码变换系数所在位置的纵坐标pos_y小于或等于所述n2,或,当所述待解码变换系数所在位置的横坐标pos_x小于或等于n1,且所述待解码变换系数所在位置的纵坐标pos_y大于所述n2时,从第三类型上下文模型集合中确定所述待解码变换系数的待解码标志位的上下文模型。
[0384] 在一种可能的实施方式中,所述指定位置的坐标信息为(SRx/2,SRy/2)。
[0385] 在一种可能的实施方式中,所述确定模块,具体用于在所述当前块满足帧类型为I帧的条件时,基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型。
[0386] 在一种可能的实施方式中,所述确定模块,具体用于在所述当前块满足预测模式为帧内预测模式的条件时,基于所述待解码变换系数所在位置的坐标信息和目标扫描区域内的指定位置的坐标信息,确定所述待解码变换系数的待解码标志位的上下文模型。
[0387] 在一种可能的实施方式中,上述编码装置可以包括视频编码器。
[0388] 请参见图11,为本申请实施例提供的一种编码端设备的硬件结构示意图。该编码端设备可包括处理器1101、存储有机器可执行指令的机器可读存储介质1102。处理器1101与机器可读存储介质1102可经由系统总线1103通信。并且,通过读取并执行机器可读存储介质1102中与编码控制逻辑对应的机器可执行指令,处理器1101可执行上文描述的编码方法。
[0389] 本文中提到的机器可读存储介质1102可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0390] 在一些实施例中,还提供了一种机器可读存储介质,该机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上文描述的编码方法。例如,所述机器可读存储介质可以是ROM、RAM、CD‑ROM、磁带、软盘和光数据存储设备等。
[0391] 在一些实施例中,还提供了一种摄像机设备,包括上述任一实施例中的编码装置和上述任一实施例中的解码装置。
[0392] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0393] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。