CN112601086A - 一种串长度参数混合编码、解码方法及装置 - Google Patents

一种串长度参数混合编码、解码方法及装置 Download PDF

Info

Publication number
CN112601086A
CN112601086A CN202011428699.3A CN202011428699A CN112601086A CN 112601086 A CN112601086 A CN 112601086A CN 202011428699 A CN202011428699 A CN 202011428699A CN 112601086 A CN112601086 A CN 112601086A
Authority
CN
China
Prior art keywords
string
current
value
length parameter
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011428699.3A
Other languages
English (en)
Other versions
CN112601086B (zh
Inventor
赵利平
林涛
周开伦
周青阳
焦孟草
沈士根
屠昂燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Shaoxing
Original Assignee
University of Shaoxing
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Shaoxing filed Critical University of Shaoxing
Priority to CN202011428699.3A priority Critical patent/CN112601086B/zh
Publication of CN112601086A publication Critical patent/CN112601086A/zh
Application granted granted Critical
Publication of CN112601086B publication Critical patent/CN112601086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种串长度参数混合编码、解码方法及装置,采用至少两种不同种类的长度参数对像素单元串或像素串长度的序列进行编码或解码方案。通过采用至少两种不同种类的长度参数对像素单元串或像素串长度的序列进行编码或解码方案,使得多种种类的长度参数值在部分情形下比单一种类的长度参数值更小,从而减少像素单元串或像素串长度的序列中一部分长度值熵编码所消耗的比特数,进一步提高串长度的序列的编码效率。

Description

一种串长度参数混合编码、解码方法及装置
技术领域
本发明属于数据压缩领域,更具体地,涉及一种串长度参数混合编码、解码方法及装置。
背景技术
随着人类社会进入人工智能、大数据、虚拟现实、增强现实、混合现实、云计算、移动计算、云-移动计算、超高清4K和特超高清8K视频图像分辨率、4G/5G通讯的时代,各种数据集,包括大数据、图像数据、视频数据、以及各种新形态的数据已经成为互联网带宽的主要消耗者,对其进行超高压缩比和极高质量的数据压缩成为必不可少的技术。
数据集是由数据的样值也称元素(例如:字节、比特、像素、像素分量、空间采样点、变换域系数)组成的排列成一定空间(一维、二维、或多维)形状的有限数据的集合(例如:一个一维数据队列、一个二维数据文件、一帧图像、一个视频序列、一个变换域、一个变换块、多个变换块、一个三维场景、一个持续变化的三维场景的序列)。对数据集,特别是二维或以上数据集进行数据压缩的编码(以及相应的解码)时,通常把此数据集划分成若干具有预定形状的子集,称为编码块(从解码的角度也就是解码块,统称为编码块或解码块),以编码块或解码块为单位,按照预定的时间顺序,一块一块进行编码或解码。在任一时刻,正在编码中的编码块称为当前编码块。在任一时刻,正在解码中的解码块称为当前解码块。当前编码块或当前解码块统称为当前编码块或解码块或简称为当前块。正在编码或解码中的样值称为当前编码样值或当前解码样值,简称为当前样值也称为当前元素。
对于具有一定形状的一个编码块或解码块,在很多场合需要将其划分成更精细的基元(基本单元),按照预定的时间顺序,一个基元一个基元进行编码或解码。对一个基元内的所有样值,通常施行同一类型的编码或解码操作。在任一时刻,正在编码或解码中的基元称为当前基元。对一个基元进行编码的结果是一个或多个编码参数,最后产生含这些编码参数的压缩数据码流。对一个基元进行解码就是解析所述压缩数据码流获得一个或多个编码参数,从所述一个或多个编码参数复原出重构的数据的样值。基元的例包括编码块或解码块(整个块作为一个基元)、子块、微块、串、字节串、alpha(阿尔法)串、像素串、样值串、索引串、线条。
以串为基元的编码模式的典型代表包括最新的国际视频标准VVC(VersatileVideo Coding)标准和我国AVS3(the third generation of Audio Video CodingStandard)标准及之前的版标准中的Palette(简称PLT)模式和串匹配(也称为串预测或帧内串复制,简称ISC)模式。
在PLT模式中,用一个Palette来保存当前CU或者最近CU的代表性颜色,也称为主颜色。对于一个输入CU,首先将CU内的像素通过调色板生成方法获得调色板,然后对每个调色板中的主颜色用index表示,最后将CU内的像素映射成主颜色对应的索引表。PLT模式用调色板中主颜色、非主颜色和索引表来表示整个CU的像素,因此需要对主颜色、非主颜色和索引表进行编码。索引表的编码采用某种扫描顺序,用两种索引复制方式,分别是复制左边方式和复制上边方式,对索引复制方式和长度(length)进行熵编码,写入码流。非主颜色直接传输像素值本身。
ISC模式与PLT模式类似,也是一种以串为基元的模式,以一个像素单元为最小的复制单元,按照某种扫描顺序,在给定参考像素集内,若能在参考像素集内找到最优参考像素单元串或像素串,用像素单元串或像素串复制关系参数位移矢量和长度(length)分别表示参考像素单元串或像素串(简称参考串)与当前待编码像素单元串或像素串(也称为当前串)之间的位置关系和参考串的长度,否则编码当前像素单元。一般地,位移矢量等于参考串起始位置减去当前串起始位置。
以一个大小为16x16(编码块或解码块大小为256)的编码块或解码块为例,该编码块或解码块分成n个像素串(比如ISC模式中的像素串)和/或m个未匹配样值,n个串的长度值依次为length1、length2、......lengthn(其中,
Figure BDA0002820034010000021
Figure BDA0002820034010000022
)。
如何对以像素单元串或像素串为基元的编码模式(如PLT模式和ISC模式)中的长度序列进行高效的编码或解码是一个关键问题。现有的串长度的序列编码或解码方案直接对length1、length2、......lengthn进行编码或解码。一个具体的例子是:令length1、length2、......lengthn依次为200、8、45、3,现有的串长度的序列编码方案是直接对200、8、45、3这四个长度值进行编码或解码。
发明内容
为了进一步提高串长度的序列的编码效率,本发明提供了一种采用至少两种不同种类的长度参数对像素单元串或像素串长度的序列进行编码或解码方案。即对取值为length1、length2、......lengthn(其中,
Figure BDA0002820034010000023
Figure BDA0002820034010000024
)的串长度的序列,采用至少两种不同种类的长度参数对像素单元串或像素串长度的序列进行编码或解码方案。
为实现上述目的,按照本发明的一个方面,提供了一种串长度参数混合编码方法及装置,其特征在于,包括以下步骤或完成相应功能的模块:
(1)至少根据预设的串长度参数选择方案选择用于标记当前串长度的参数作为当前串的串长度参数;
(2)至少将表示所述步骤(1)选择的串长度参数数值的信息写入压缩数据码流。
按照本发明的另一个方面,提供了一种串长度参数混合解码方法,其特征在于,包括以下步骤:
(A)根据预设的串长度方案参数选择方案,确定所述串长度参数的种类;
(B)解析当前块中的压缩数据码流,至少获得当前串的含有串长度参数数值的信息,并根据所述串长度参数种类,获取串长度参数数值并计算当前串长度值。
优选地,所述串长度参数混合解码方法,其所述串长度参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
优选所述下一个剩余数目nrpi为当前块大小cuSize减去当前已解码样值长度的总和curTlen和当前串长度值lengthi之和;
优选所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目nrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),…,f(i-1),其中f(1)+f(2)+f(3)+…+f(i-1)=1。
优选地,所述串长度参数混合解码方法,其所述当前串的下一个剩余数目的预测差值Δnrpi为:
Figure BDA0002820034010000025
Figure BDA0002820034010000031
优选地,所述串长度参数混合解码方法,其所述串长度参数选择方案为,以预定的参数为指示,当其符合预定条件时选择特定的串长度参数种类;所述预定的参数包括下列之一或组合:
串编号、当前的剩余元素的数目Ri、已解码样值长度的总和curTlen、串位移矢量、扫描方式、当前块的宽度或高度、当前块的串预测或称串匹配子模式、串的类型、串的偏移矢量或称串矢量。
优选地,所述预设条件为以下条件之一或组合:
当前串的编号处于或不处于当前块中串编号序列的预设位置范围;
当前的剩余元素的数目Ri的值在预设范围之内;
当前已解码样值长度的总和curTlen值在预设的范围之内;
当前像素单元串或像素串位移矢量等于预设位移矢量;
当前像素单元串或像素串位移矢量不等于预设curTlen位移矢量;
当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;
当前像素单元串或像素串的扫描方式是或者不是预设扫描方式;
当前块的宽度或高度在预设范围之内;
串预测子模式是或不是下列子模式之一或组合:普通串预测子模式、等值串与单位基矢量串子模式、满足预定限制的串预测子模式、参考像素限定在预定的一个或多个参考像素集内的串预测子模式、调色板子模式;
串的类型是或不是下列串类型之一或组合:一般串、等值串、单位基矢量串、参考像素在主参考像素集内的串、参考像素在次参考像素集内的串、索引串;
串矢量是或不是下列矢量之一或组合:(0,-1)、(0,1)、(-1,0)、(1,0)、部分或全部水平分量为零的矢量、部分或全部垂直分量为零的矢量、部分或全部两个分量之一为零的矢量、预定取值范围内的矢量。
优选地,所述串长度参数混合解码方法,其步骤(B)具体做法之一为:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已解码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串,所述串长度参数的数值设为0;否则,即Ri>1,则获取压缩码流中表示串长度参数数值的二元符号串,并将所述表示串长度参数数值的二元符号串进行反二值化获得所述串长度参数的数值。
优选地,所述串长度参数混合解码方法,其所述反二值化获得所述串长度参数的数值,具体包括
将所述表示串长度参数数值的二元符号串,按照预设的反二值化方案,解码为包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量;根据所述串长度参数的值域划分为多个连续的依次编号的段的方案,将所述包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量转换为所述串长度参数的数值;所述串长度参数的值域划分为多个连续的依次编号的段的方案根据所述串长度参数的值域确定,所述串长度参数的值域至少根据当前的剩余元素的数目Ri确定。
所述将串长度参数进行反二值化,优选采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数反二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数反二值化;或
采用预设分段编码将所述串长度参数反二值化;或
采用一元码将所述串长度参数反二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数反二值化;或
采用截断定长码即截断二元码将所述串长度参数反二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数反二值化。
优选地,所述串长度参数混合解码方法,其所述计算当前串长度值,具体包括:
当所述串长度参数为下一个剩余数目nrpi时,当前串长度lengthi按照以下公式计算:
lengthi=cuSize-curTlen-nrpi
当所述串长度参数为当前串长度lengthi时,直接得出串长度lengthi
当所述串长度参数为下一个剩余数目的预测差值Δnrpi时,根据下一个剩余数目的预测差值Δnrpi和已解码串的下一个剩余数目计算当前串的下一个剩余数目nrpi,获取当前串长度lengthi。例如:
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000041
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000042
lengthi=cuSize-curTlen-nrpi
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000043
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000051
lengthi=cuSize-curTlen-nrpi
优选地,所述串长度参数混合解码方法,其串长度参数的单位为元素,不同种类的串长度参数允许使用不同的单位;优选
元素包括像素或像素分量简称分量或像素索引简称索引或像素单元;所述像素单元是mxn个像素或分量或索引组成的阵列,m和n分别是包括1、2、4、8、16的预定的正整数;当m和n都取值为1时,像素单元是一个像素或一个像素分量或一个分量或一个像素索引或一个索引。
按照本发明的另一个方面提供了一种串长度参数混合解码装置,其特征在于,包括:串长度参数类别选择模块、以及压缩数据码流解析模块;
所述串长度参数类别选择模块,至少用于根据预设的串长度方案参数选择方案,确定所述串长度参数的种类;优选:
所述串长度参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已解码样值长度的总和curTlen和当前串长度值lengthi之和;记作:
nrpi=cuSize-curTlen-lengthi
所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目Δnrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),...,f(i-1),其中f(1)+f(2)+f(3)+…+f(i-1)=1;
具体如:
当权重为1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000052
当权重为1/i-1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000053
优选,所述串长度参数选择方案为,以预定的参数为指示,当其符合预定条件时选择特定的串长度参数种类;所述预定的参数包括下列之一或组合:
串编号、当前的剩余元素的数目Ri、已解码样值长度的总和curTlen、串位移矢量、扫描方式、当前块的宽度或高度、当前块的串预测或称串匹配子模式、串的类型、串的偏移矢量或称串矢量。
优选地,所述预设条件为以下条件之一或组合:
当前串的编号处于或不处于当前块中串编号序列的预设位置范围;
当前的剩余元素的数目Ri的值在预设范围之内;
当前已解码样值长度的总和curTlen值在预设的范围之内;
当前像素单元串或像素串位移矢量等于预设位移矢量;
当前像素单元串或像素串位移矢量不等于预设位移矢量;
当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;
当前像素单元串或像素串的扫描方式是或者不是预设扫描方式;
当前块的宽度或高度在预设范围之内;
串预测子模式是或不是下列子模式之一或组合:普通串预测子模式、等值串与单位基矢量串子模式、满足预定限制的串预测子模式、参考像素限定在预定的一个或多个参考像素集内的串预测子模式、调色板子模式;
串的类型是或不是下列串类型之一或组合:一般串、等值串、单位基矢量串、参考像素在主参考像素集内的串、参考像素在次参考像素集内的串、索引串;
串矢量是或不是下列矢量之一或组合:(0,-1)、(0,1)、(-1,0)、(1,0)、部分或全部水平分量为零的矢量、部分或全部垂直分量为零的矢量、部分或全部两个分量之一为零的矢量、预定取值范围内的矢量。
所述压缩码流解析模块,解析当前块中的压缩数据码流,至少获得当前串的含有串长度参数数值的信息,并根据所述串长度参数种类,获取串长度参数数值并计算当前串长度值;具体做法之一为:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已解码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串,所述串长度参数的数值设为0;否则,即Ri>1,则获取压缩码流中表示串长度参数数值的二元符号串,并将所述表示串长度参数数值的二元符号串进行反二值化获得所述串长度参数的数值。
所述反二值化获得所述串长度参数的数值,具体包括
将所述表示串长度参数数值的二元符号串,按照预设的反二值化方案,解码为包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量;根据所述串长度参数的值域划分为多个连续的依次编号的段的方案,将所述包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量转换为所述串长度参数的数值;所述串长度参数的值域划分为多个连续的依次编号的段的方案根据所述串长度参数的值域确定,所述串长度参数的值域至少根据当前的剩余元素的数目Ri确定。
所述将串长度参数进行反二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数反二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数反二值化;或
采用预设分段编码将所述串长度参数反二值化;或
采用一元码将所述串长度参数反二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数反二值化;或
采用截断定长码即截断二元码将所述串长度参数反二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数反二值化。
所述计算当前串长度值,具体包括:
当所述串长度参数为下一个剩余数目nrpi时,当前串长度lengthi按照以下公式计算:
lengthi=cuSize-curTlen-nrpi
当所述串长度参数为当前串长度lengthi时,直接得出串长度lengthi
当所述串长度参数为下一个剩余数目的预测差值Δnrpi时,根据下一个剩余数目的预测差值Δnrpi和已解码串的下一个剩余数目计算当前串的下一个剩余数目nrpi,获取当前串长度lengthi。例如:
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000071
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000072
lengthi=cuSize-curTlen-nrpi
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000073
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000074
lengthi=cuSize-curTlen-nrpi
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
通过采用至少两种不同种类的长度参数对像素单元串或像素串长度的序列进行编码或解码方案,使得多种种类的长度参数值在部分情形下比单一种类的长度参数值更小,从而减少像素单元串或像素串长度的序列中一部分长度值熵编码所消耗的比特数,进一步提高串长度的序列的编码效率。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
注意到串长度(串中元素的个数,元素允许使用不同的单位,例如像素或像素单元)的序列存在一定的内在规律和相关性:以像素串为例,如所有的串长度的序列加起来之和小于等于整个编码块或解码块的大小;当前编码长度值必定小于等于整个编码块或解码块的大小减去当前已编码的总长度值。因此,串长度的序列存在冗余性,串长度序列直接编码或解码方案没有去除这种冗余性。然而单一采用下一个剩余数目等进行编码,也存在一定的局限性,比如当串划分较多时,当前编解码块的前面几个串的下一个剩余数目的数值可能比较大。综之,单一采用下一个剩余数目或长度值本身直接对串长度进行编码,损失了编码效率。
本发明提供的串长度参数混合编码方法,包括以下步骤:
(1)至少根据预设的串长度参数选择方案选择用于标记当前串长度的参数作为当前串的串长度参数;
所述用于标记当前串长度的参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已编码样值长度的总和curTlen和当前串长度值lengthi之和;记作:
nrpi=cuSize-curTlen-lengthi
所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目nrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),...,f(i-1),其中f(1)+f(2)+f(3)+...+f(i-1)=1;
具体如:
当权重为1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000081
当权重为1/i-1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000082
所述串长度参数选择方案为,以预定的参数为指示,当其符合预定条件时选择特定的串长度参数种类;所述预定的参数包括下列之一或组合:
串编号、当前的剩余元素的数目Ri、已编码样值长度的总和curTlen、串位移矢量、扫描方式、当前块的宽度或高度、当前块的串预测或称串匹配子模式、串的类型、串的偏移矢量或称串矢量。
优选地,所述预设条件为以下条件之一或组合:
当前串的编号处于或不处于当前块中串编号序列的预设位置范围;
当前的剩余元素的数目Ri的值在预设范围之内;
当前已编码样值长度的总和curTlen值在预设的范围之内;
当前像素单元串或像素串位移矢量等于预设位移矢量;
当前像素单元串或像素串位移矢量不等于预设位移矢量;
当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;
当前像素单元串或像素串的扫描方式是或者不是预设扫描方式;
当前块的宽度或高度在预设范围之内;
串预测子模式是或不是下列子模式之一或组合:普通串预测子模式、等值串与单位基矢量串子模式、满足预定限制的串预测子模式、参考像素限定在预定的一个或多个参考像素集内的串预测子模式、调色板子模式;
串的类型是或不是下列串类型之一或组合:一般串、等值串、单位基矢量串、参考像素在主参考像素集内的串、参考像素在次参考像素集内的串、索引串;
串矢量是或不是下列矢量之一或组合:(0,-1)、(0,1)、(-1,0)、(1,0)、部分或全部水平分量为零的矢量、部分或全部垂直分量为零的矢量、部分或全部两个分量之一为零的矢量、预定取值范围内的矢量。
优选方案,按照串长度参数值越小越有可能被选择的原则,根据某种预设条件可以获知当前串的长度参数较小的时候,采用该参数进行编码;例如来回扫描时,根据预设条件计算出当前串的长度最大值只可能为n,且n很小,因此采用长度值本身进行编码;和/或
按照串长度参数的信息熵越小越有可能被选择的原则,根据预设的串长度参数选择方案,选择用于标记其长度的参数类别作为串长度参数类别;所述信息熵是通过统计实验计算的,具体包括,通过统计实验获得在不同预设条件下的各种串长度参数的信息熵,选择方案为在所述预设条件下选择信息熵小的串长度参数。
(2)至少将表示所述步骤(1)选择的串长度参数数值的信息写入压缩数据码流;具体做法之一为:对步骤(1)获得的当前串的串长度参数进行二值化,并将二值化后的数据写入压缩数据码流;
所述二值化具体包括:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已编码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串;否则,即Ri>1,则将串长度参数进行二值化,得到表示串长度参数数值的二元符号串,将所述表示串长度参数数值的二元符号串写入压缩码流。
具体包括:
根据当前的剩余元素的数目Ri确定串长度参数的值域,并将所述串长度参数的值域划分为多个连续的依次编号的段,以包括所述串长度参数的值所在的段的编号在内的参数向量标记所述串长度参数的值,并对所述串长度参数的值的包括所述串长度参数的值所在的段的编号在内的参数向量进行二值化,作为所述串长度参数的二值化编码。
所述将串长度参数进行二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数二值化;或
采用预设分段编码将所述串长度参数二值化;或
采用一元码将所述串长度参数二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数二值化;或
采用截断定长码即截断二元码将所述串长度参数二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数二值化。
本发明提供的串长度参数混合解码方法,包括以下步骤:
(A)根据预设的串长度方案参数选择方案,确定所述串长度参数的种类;
所述串长度参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已解码样值长度的总和curTlen和当前串长度值lengthi之和;记作:
nrpi=cuSize-curTlen-lengthi
所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目nrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),...,f(i-1),其中f(1)+f(2)+f(3)+...+f(i-1)=1;
具体如:
当权重为1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000101
当权重为1/i-1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000102
所述串长度参数选择方案为,以预定的参数为指示,当其符合预定条件时选择特定的串长度参数种类;所述预定的参数包括下列之一或组合:
串编号、当前的剩余元素的数目Ri、已解码样值长度的总和curTlen、串位移矢量、扫描方式、当前块的宽度或高度、当前块的串预测或称串匹配子模式、串的类型、串的偏移矢量或称串矢量。
优选地,所述预设条件为以下条件之一或组合:
当前串的编号处于或不处于当前块中串编号序列的预设位置范围;
当前的剩余元素的数目Ri的值在预设范围之内;
当前已解码样值长度的总和curTlen值在预设的范围之内;
当前像素单元串或像素串位移矢量等于预设位移矢量;
当前像素单元串或像素串位移矢量不等于预设位移矢量;
当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;
当前像素单元串或像素串的扫描方式是或者不是预设扫描方式;
当前块的宽度或高度在预设范围之内;
串预测子模式是或不是下列子模式之一或组合:普通串预测子模式、等值串与单位基矢量串子模式、满足预定限制的串预测子模式、参考像素限定在预定的一个或多个参考像素集内的串预测子模式、调色板子模式;
串的类型是或不是下列串类型之一或组合:一般串、等值串、单位基矢量串、参考像素在主参考像素集内的串、参考像素在次参考像素集内的串、索引串;
串矢量是或不是下列矢量之一或组合:(0,-1)、(0,1)、(-1,0)、(1,0)、部分或全部水平分量为零的矢量、部分或全部垂直分量为零的矢量、部分或全部两个分量之一为零的矢量、预定取值范围内的矢量。
(B)解析当前块中的压缩数据码流,至少获得当前串的含有串长度参数数值的信息,并根据所述串长度参数种类,获取串长度参数数值并计算当前串长度值;具体做法之一为:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已解码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串,所述串长度参数的数值设为0;否则,即Ri>1,则获取压缩码流中表示串长度参数数值的二元符号串,并将所述表示串长度参数数值的二元符号串进行反二值化获得所述串长度参数的数值。
所述反二值化获得所述串长度参数的数值,具体包括
将所述表示串长度参数数值的二元符号串,按照预设的反二值化方案,解码为包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量;根据所述串长度参数的值域划分为多个连续的依次编号的段的方案,将所述包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量转换为所述串长度参数的数值;所述串长度参数的值域划分为多个连续的依次编号的段的方案根据所述串长度参数的值域确定,所述串长度参数的值域至少根据当前的剩余元素的数目Ri确定。
所述将串长度参数进行反二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数反二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数反二值化;或
采用预设分段编码将所述串长度参数反二值化;或
采用一元码将所述串长度参数反二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数反二值化;或
采用截断定长码即截断二元码将所述串长度参数反二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数反二值化。
所述计算当前串长度值,具体包括:
当所述串长度参数为下一个剩余数目nrpi时,当前串长度lengthi按照以下公式计算:
lengthi=cuSize-curTlen-nrpi
当所述串长度参数为当前串长度lengthi时,直接得出串长度lengthi
当所述串长度参数为下一个剩余数目的预测差值Δnrpi时,根据下一个剩余数目的预测差值Δnrpi和已解码串的下一个剩余数目计算当前串的下一个剩余数目nrpi,获取当前串长度lengthi。例如:
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000121
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000122
lengthi=cuSize-curTlen-nrpi
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000123
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000124
lengthi=cuSize-curTlen-nrpi
本发明提供的串长度参数混合编码装置,包括:串长度参数类别选择模块、以及压缩码流生成模块;
所述串长度参数类别选择模块,用于至少根据预设的串长度参数选择方案选择用于标记当前串长度的参数作为当前串的串长度参数;
所述用于标记当前串长度的参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已编码样值长度的总和curTlen和当前串长度值lengthi之和;记作:
nrpi=cuSize-curTlen-lengthi
所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目nrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),...,f(i-1),其中f(1)+f(2)+f(3)+...+f(i-1)=1;
具体如:
当权重为1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000131
当权重为1/i-1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000132
所述串长度参数选择方案为,以预定的参数为指示,当其符合预定条件时选择特定的串长度参数种类;所述预定的参数包括下列之一或组合:
串编号、当前的剩余元素的数目Ri、已编码样值长度的总和curTlen、串位移矢量、扫描方式、当前块的宽度或高度。
优选地,所述预设条件为以下条件之一或组合:
当前串的编号处于或不处于当前块中串编号序列的预设位置范围;
当前的剩余元素的数目Ri的值在预设范围之内;
当前已编码样值长度的总和curTlen值在预设的范围之内;
当前像素单元串或像素串位移矢量等于预设位移矢量;
当前像素单元串或像素串位移矢量不等于预设位移矢量;
当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;
当前像素单元串或像素串的扫描方式是或者不是预设扫描方式;
当前块的宽度或高度在预设范围之内;
串预测子模式是或不是下列子模式之一或组合:普通串预测子模式、等值串与单位基矢量串子模式、满足预定限制的串预测子模式、参考像素限定在预定的一个或多个参考像素集内的串预测子模式、调色板子模式;
串的类型是或不是下列串类型之一或组合:一般串、等值串、单位基矢量串、参考像素在主参考像素集内的串、参考像素在次参考像素集内的串、索引串;
串矢量是或不是下列矢量之一或组合:(0,-1)、(0,1)、(-1,0)、(1,0)、部分或全部水平分量为零的矢量、部分或全部垂直分量为零的矢量、部分或全部两个分量之一为零的矢量、预定取值范围内的矢量。优选方案,所述串长度参数类别选择模块,按照串长度参数值越小越有可能被选择的原则,根据某种预设条件可以获知当前串的长度参数较小的时候,采用该参数进行编码;例如来回扫描时,根据预设条件计算出当前串的长度最大值只可能为n,且n很小,因此采用长度值本身进行编码;和/或
按照串长度参数的信息熵越小越有可能被选择的原则,根据预设的串长度参数选择方案,选择用于标记其长度的参数类别作为串长度参数类别;所述信息熵是通过统计实验计算的,具体包括,通过统计实验获得在不同预设条件下的各种串长度参数的信息熵,选择方案为在所述预设条件下选择信息熵小的串长度参数。
压缩码流生成模块,至少用于将所述串长度参数数值的信息写入压缩数据码流;具体做法之一为:对所述当前串的串长度参数进行二值化,并将二值化后的数据写入压缩数据码流;
所述二值化具体包括:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已编码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串;否则,即Ri>1,则将串长度参数进行二值化,得到表示串长度参数数值的二元符号串,将所述表示串长度参数数值的二元符号串写入压缩码流。
具体包括:
根据当前的剩余元素的数目Ri确定串长度参数的值域,并将所述串长度参数的值域划分为多个连续的依次编号的段,以包括所述串长度参数的值所在的段的编号在内的参数向量标记所述串长度参数的值,并对所述串长度参数的值的包括所述串长度参数的值所在的段的编号在内的参数向量进行二值化,作为所述串长度参数的二值化编码。
所述将串长度参数进行二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数二值化;或
采用预设分段编码将所述串长度参数二值化;或
采用一元码将所述串长度参数二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数二值化;或
采用截断定长码即截断二元码将所述串长度参数二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数二值化。
本发明提供的本发明提供的串长度参数混合解码装置,包括:串长度参数类别选择模块、以及压缩数据码流解析模块;
所述串长度参数类别选择模块,至少用于根据预设的串长度方案参数选择方案,确定所述串长度参数的种类;
所述串长度参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已解码样值长度的总和curTlen和当前串长度值lengthi之和;记作:
nrpi=cuSize-curTlen-lengthi
所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目nrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),...,f(i-1),其中f(1)+f(2)+f(3)+...+f(i-1)=1;
具体如:
当权重为1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000151
当权重为1/i-1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000152
所述串长度参数选择方案为,以预定的参数为指示,当其符合预定条件时选择特定的串长度参数种类;所述预定的参数包括下列之一或组合:
串编号、当前的剩余元素的数目Ri、已解码样值长度的总和curTlen、串位移矢量、扫描方式、当前块的宽度或高度、当前块的串预测或称串匹配子模式、串的类型、串的偏移矢量或称串矢量。
优选地,所述预设条件为以下条件之一或组合:
当前串的编号处于或不处于当前块中串编号序列的预设位置范围;
当前的剩余元素的数目Ri的值在预设范围之内;
当前已解码样值长度的总和curTlen值在预设的范围之内;
当前像素单元串或像素串位移矢量等于预设位移矢量;
当前像素单元串或像素串位移矢量不等于预设位移矢量;
当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;
当前像素单元串或像素串的扫描方式是或者不是预设扫描方式;
当前块的宽度或高度在预设范围之内;
串预测子模式是或不是下列子模式之一或组合:普通串预测子模式、等值串与单位基矢量串子模式、满足预定限制的串预测子模式、参考像素限定在预定的一个或多个参考像素集内的串预测子模式、调色板子模式;
串的类型是或不是下列串类型之一或组合:一般串、等值串、单位基矢量串、参考像素在主参考像素集内的串、参考像素在次参考像素集内的串、索引串;
串矢量是或不是下列矢量之一或组合:(0,-1)、(0,1)、(-1,0)、(1,0)、部分或全部水平分量为零的矢量、部分或全部垂直分量为零的矢量、部分或全部两个分量之一为零的矢量、预定取值范围内的矢量。
所述压缩码流解析模块,解析当前块中的压缩数据码流,至少获得当前串的含有串长度参数数值的信息,并根据所述串长度参数种类,获取串长度参数数值并计算当前串长度值;具体做法之一为:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已解码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串,所述串长度参数的数值设为0;否则,即Ri>1,则获取压缩码流中表示串长度参数数值的二元符号串,并将所述表示串长度参数数值的二元符号串进行反二值化获得所述串长度参数的数值。
所述反二值化获得所述串长度参数的数值,具体包括
将所述表示串长度参数数值的二元符号串,按照预设的反二值化方案,解码为包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量;根据所述串长度参数的值域划分为多个连续的依次编号的段的方案,将所述包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量转换为所述串长度参数的数值;所述串长度参数的值域划分为多个连续的依次编号的段的方案根据所述串长度参数的值域确定,所述串长度参数的值域至少根据当前的剩余元素的数目Ri确定。
所述将串长度参数进行反二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数反二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数反二值化;或
采用预设分段编码将所述串长度参数反二值化;或
采用一元码将所述串长度参数反二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数反二值化;或
采用截断定长码即截断二元码将所述串长度参数反二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数反二值化。
所述计算当前串长度值,具体包括:
当所述串长度参数为下一个剩余数目nrpi时,当前串长度lengthi按照以下公式计算:
lengthi=cuSize-curTlen-nrpi
当所述串长度参数为当前串长度lengthi时,直接得出串长度lengthi
当所述串长度参数为下一个剩余数目的预测差值Δnrpi时,根据下一个剩余数目的预测差值Δnrpi和已解码串的下一个剩余数目计算当前串的下一个剩余数目nrpi,获取当前串长度lengthi。例如:
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000171
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000172
lengthi=cuSize-curTlen-nrpi
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000173
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000174
lengthi=cuSize-curTlen-nrpi
本发明适用于对数据进行有损压缩的编码和解码,本发明也同样适用于对数据进行无损压缩的编码和解码。本发明适用于一维数据如字符串数据或字节串数据或一维图形或分维图形的编码和解码,本发明也同样适用于二维或以上数据如图像或视频数据的编码和解码。
本发明适用于一维数据如字符串数据或字节串数据或一维图形或分维图形的编码和解码,本发明也同样适用于二维或以上数据如图像或视频数据的编码和解码,本发明的方法通用性高。
本发明中,数据压缩所适用的数据包括下列类型的数据之一或其组合:一维数据;二维数据;多维数据;图形;分维图形;图像;图像的序列;视频;三维场景;持续变化的三维场景的序列;虚拟现实的场景;持续变化的虚拟现实的场景的序列像素形式的图像;图像的变换域数据;二维或二维以上字节的集合;二维或二维以上比特的集合;像素的集合;三分量像素(Y,U,V)的集合;三分量像素(Y,Cb,Cr)的集合;三分量像素(Y,Cg,Co)的集合;三分量像素(R,G,B)的集合;四分量像素(C,M,Y,K)的集合;四分量像素(R,G,B,A)的集合;四分量像素(Y,U,V,A)的集合;四分量像素(Y,Cb,Cr,A)的集合;四分量像素(Y,Cg,Co,A)的集合。
本发明中,在数据是图像、图像的序列、视频等的情形,编码块或解码块是图像的一个编码区域或一个解码区域,包括以下至少一种:整幅图像、图像的子图像、条带slice、片块tile、宏块、最大编码单元LCU、编码树单元CTU、编码单元CU、CU的子区域、子编码单元SubCU、预测单元PU、PU的子区域、子预测单元SubPU、变换单元TU、TU的子区域、子变换单元SubTU。
本发明中,数据压缩所涉及的编码块或解码块的基元包括下列情形之一或其组合:编码块或解码块、子块、微块、串、字节串、alpha(阿尔法)串、像素串、样值串、索引串、线条、匹配块、匹配子块、匹配微块、匹配串、匹配像素串、匹配样值串、匹配索引串、匹配条、匹配线条、偏移串、坐标串、不可预测像素、不可预测像素串、坐标或不可预测像素串。
以下为实施例:
实施例1
一种串长度参数混合编码方法,元素包括像素或像素分量简称分量或像素索引简称索引或像素单元;所述像素单元是mxn个像素或分量或索引组成的阵列,m和n分别是包括1、2、4、8、16的预定的正整数;当m和n都取值为1时,像素单元是一个像素或一个像素分量或一个分量或一个像素索引或一个索引,包括以下步骤:
(1)至少根据预设的串长度参数选择方案选择用于标记当前串长度的参数作为当前串的串长度参数;
所述用于标记当前串长度的参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已编码样值长度的总和curTlen和当前串长度值lengthi之和;记作:
nrpi=cuSize-curTlen-lengthi
所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目nrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),...,f(i-1),其中f(1)+f(2)+f(3)+...+f(i-1)=1;
具体如:
当权重为1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000181
当权重为1/i-1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000182
所述串长度参数选择方案为,对编码块中至少一个当前像素单元串或像素串的长度,使用至少下列方式的,确定长度参数的种类:
方式1:如果满足预设条件A,则所述长度参数的种类是种类I,为下一个剩余数目nrpi,表示所述编码块中在施行所述当前像素单元串或像素串编码之后的剩余像素单元的数目;
方式2:如果满足预设条件B,则所述长度参数的种类是种类II,为下一个剩余数目的预测差值Δnrpi,表示使用所述当前像素单元串或像素串之前的一个或多个像素单元串或像素串的下一个剩余数目预测所述当前像素单元串或像素串的下一个剩余数目所获得的预测差值;
方式3:如果满足预设条件C,则所述长度参数的种类是种类III,为当前串长度lengthi,表示所述当前像素单元串或像素串中像素单元的数目;
所述预设条件A、B、C为下列之一或其组合:
当前像素单元串或像素串是当前块中最前i个像素单元串或像素串,其中i≥1;当前像素单元串或像素串不是当前块中最前i个像素单元串或像素串,其中i≥1;当前像素单元串或像素串是当前块中最后j个像素单元串或像素串,其中j≥1;当前像素单元串或像素串不是当前块中最后j个像素单元串或像素串,其中j≥1;或
当前已编码像素单元串或像素串长度的总和大于等于阈值T1,T1优选为当前块总大小的1/4、1/2、或5/8;或
当前像素单元串或像素串位移矢量等于预设位移矢量;当前像素单元串或像素串位移矢量不等于预设位移矢量;当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;预设位移矢量是:单位基像素单元串或像素串位移矢量,即(0,-n)或(-m,0)或(0,n);或
当前像素单元串或像素串的扫描方式是预设扫描方式;当前像素单元串或像素串的扫描方式不是预设扫描方式;所述预设的扫描方式为:水平光栅扫描方式、垂直光栅扫描方式、水平往返扫描方式、垂直往返扫描方式、或其他特定的扫描方式;或
当前像素单元串或像素串的起始像素单元串或像素串所在位置是预设位置;当前像素单元串或像素串的起始像素单元串或像素串所在位置不是预设位置;所述预设位置为:当前块的奇数行、当前块的偶数行、当前块的奇数列、当前块的偶数列、当前块的第一列、当前块的最后一列、或其他特定位置;或
当前像素单元串或像素串所在当前块的宽等于预设阈值;当前像素单元串或像素串所在当前块的宽不等于预设阈值;当前像素单元串或像素串所在当前块的宽大于预设阈值;当前像素单元串或像素串所在当前块的宽小于预设阈值;或
当前像素单元串或像素串所在当前块的高等于预设阈值;当前像素单元串或像素串所在当前块的高不等于预设阈值;当前像素单元串或像素串所在当前块的高大于预设阈值;当前像素单元串或像素串所在当前块的高小于预设阈值。
(2)至少将表示所述步骤(1)选择的串长度参数数值的信息写入压缩数据码流;具体做法之一为:对步骤(1)获得的当前串的串长度参数进行二值化,并将二值化后的数据写入压缩数据码流;
所述二值化具体包括:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已编码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串;否则,即Ri>1,则将串长度参数进行二值化,得到表示串长度参数数值的二元符号串,将所述表示串长度参数数值的二元符号串写入压缩码流。
具体包括:
根据当前的剩余元素的数目Ri确定串长度参数的值域,并将所述串长度参数的值域划分为多个连续的依次编号的段,以包括所述串长度参数的值所在的段的编号在内的参数向量标记所述串长度参数的值,并对所述串长度参数的值的包括所述串长度参数的值所在的段的编号在内的参数向量进行二值化,作为所述串长度参数的二值化编码。
所述将串长度参数进行二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数二值化;或
采用预设分段编码将所述串长度参数二值化;或
采用一元码将所述串长度参数二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数二值化;或
采用截断定长码即截断二元码将所述串长度参数二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数二值化。
相应的解码方法,元素包括像素或像素分量简称分量或像素索引简称索引或像素单元;所述像素单元是mxn个像素或分量或索引组成的阵列,m和n分别是包括1、2、4、8、16的预定的正整数;当m和n都取值为1时,像素单元是一个像素或一个像素分量或一个分量或一个像素索引或一个索引;步骤为:
(A)根据预设的串长度方案参数选择方案,确定所述串长度参数的种类;
所述串长度参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已解码样值长度的总和curTlen和当前串长度值lengthi之和;记作:
nrpi=cuSize-curTlen-lengthi
所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目nrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),...,f(i-1),其中f(1)+f(2)+f(3)+...+f(i-1)=1;
具体如:
当权重为1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000201
当权重为1/i-1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure BDA0002820034010000202
所述串长度参数选择方案为,对解码块中至少一个当前像素单元串或像素串的长度,使用至少下列方式的,确定长度参数的种类:
方式1:如果满足预设条件A,则所述长度参数的种类是种类I,为下一个剩余数目nrpi,表示所述解码块中在施行所述当前像素单元串或像素串解码之后的剩余像素单元的数目;
方式2:如果满足预设条件B,则所述长度参数的种类是种类II,为下一个剩余数目的预测差值Δnrpi,表示使用所述当前像素单元串或像素串之前的一个或多个像素单元串或像素串的下一个剩余数目预测所述当前像素单元串或像素串的下一个剩余数目所获得的预测差值;
方式3:如果满足预设条件C,则所述长度参数的种类是种类III,为当前串长度lengthi,表示所述当前像素单元串或像素串中像素单元的数目;
所述预设条件A、B、C为下列之一或其组合:
当前像素单元串或像素串是当前块中最前i个像素单元串或像素串,其中i≥1;当前像素单元串或像素串不是当前块中最前i个像素单元串或像素串,其中i≥1;当前像素单元串或像素串是当前块中最后j个像素单元串或像素串,其中j≥1;当前像素单元串或像素串不是当前块中最后j个像素单元串或像素串,其中j≥1;或
当前已解码像素单元串或像素串长度的总和大于等于阈值T1,T1优选为当前块总大小的1/4、1/2、或5/8;或
当前像素单元串或像素串位移矢量等于预设位移矢量;当前像素单元串或像素串位移矢量不等于预设位移矢量;当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;预设位移矢量是:单位基像素单元串或像素串位移矢量,即(0,-n)或(-m,0)或(0,n);或
当前像素单元串或像素串的扫描方式是预设扫描方式;当前像素单元串或像素串的扫描方式不是预设扫描方式;所述预设的扫描方式为:水平光栅扫描方式、垂直光栅扫描方式、水平往返扫描方式、垂直往返扫描方式、或其他特定的扫描方式;或
当前像素单元串或像素串的起始像素单元串或像素串所在位置是预设位置;当前像素单元串或像素串的起始像素单元串或像素串所在位置不是预设位置;所述预设位置为:当前块的奇数行、当前块的偶数行、当前块的奇数列、当前块的偶数列、当前块的第一列、当前块的最后一列、或其他特定位置;或
当前像素单元串或像素串所在当前块的宽等于预设阈值;当前像素单元串或像素串所在当前块的宽不等于预设阈值;当前像素单元串或像素串所在当前块的宽大于预设阈值;当前像素单元串或像素串所在当前块的宽小于预设阈值;或
当前像素单元串或像素串所在当前块的高等于预设阈值;当前像素单元串或像素串所在当前块的高不等于预设阈值;当前像素单元串或像素串所在当前块的高大于预设阈值;当前像素单元串或像素串所在当前块的高小于预设阈值。
(B)解析当前块中的压缩数据码流,至少获得当前串的含有串长度参数数值的信息,并根据所述串长度参数种类,获取串长度参数数值并计算当前串长度值;具体做法之一为:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已解码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串,所述串长度参数的数值设为0;否则,即Ri>1,则获取压缩码流中表示串长度参数数值的二元符号串,并将所述表示串长度参数数值的二元符号串进行反二值化获得所述串长度参数的数值。
所述反二值化获得所述串长度参数的数值,具体包括;
将所述表示串长度参数数值的二元符号串,按照与解码方法相应的预设的反二值化方案,解码为包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量;根据所述串长度参数的值域划分为多个连续的依次编号的段的方案,将所述包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量转换为所述串长度参数的数值;所述串长度参数的值域划分为多个连续的依次编号的段的方案根据所述串长度参数的值域确定,所述串长度参数的值域至少根据当前的剩余元素的数目Ri确定。
所述将串长度参数进行反二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数反二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数反二值化;或
采用预设分段编码将所述串长度参数反二值化;或
采用一元码将所述串长度参数反二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数反二值化;或
采用截断定长码即截断二元码将所述串长度参数反二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数反二值化。
所述计算当前串长度值,具体包括:
当所述串长度参数为下一个剩余数目nrpi时,当前串长度lengthi按照以下公式计算:
lengthi=cuSize-curTlen-nrpi
当所述串长度参数为当前串长度lengthi时,直接得出串长度lengthi
当所述串长度参数为下一个剩余数目的预测差值Δnrpi时,根据下一个剩余数目的预测差值Δnrpi和已解码串的下一个剩余数目计算当前串的下一个剩余数目nrpi,按照解码方法相应的下一个剩余数目的预测差值计算方法,获取当前串长度lengthi。例如:
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000221
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000222
lengthi=cuSize-curTlen-nrpi
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000223
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000224
lengthi=cuSize-curTlen-nrpi
实施例2
一种串长度参数混合编码方法,采用至少两种不同种类的长度参数对像素单元串或像素串长度的序列进行编码,重复以下步骤,直至当前编码块中像素单元串或像素串导航都的序列length1、length2、......lengthn)编码完毕:
(1)对编码块中至少一个当前像素单元串或像素串的长度,根据预设的串长度参数选择方案选择用于标记当前串长度的参数作为当前串的串长度参数;
所述用于标记当前串长度的参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已编码样值长度的总和curTlen和当前串长度值lengthi之和,其中curTlen不含未匹配像素单元;记作:
nrpi=cuSize-curTlen-lengthi
所述当前串的下一个剩余数目的预测差值Δnrpi为:
Figure BDA0002820034010000231
Figure BDA0002820034010000232
所述串长度参数选择方案为,对编码块中至少一个当前像素单元串或像素串的长度,使用至少下列方式之一确定长度参数的种类:
方式1:如果满足预设条件A,则所述串长度参数为下一个剩余数目nrpi;如果满足预设条件B,则所述串长度参数为下一个剩余数目的预测差值Δnrpi
所述预设条件A为:“当前像素单元串或像素串的下一个剩余数目等于0”、或“当前像素单元串或像素串是当前块中最前2个像素单元串或像素串或当前像素单元串或像素串的下一个剩余数目等于0”
所述预设条件B为是不满足前面所述条件A;
方式2:如果满足预设条件C,则所述串长度参数为下一个剩余数目nrpi;如果满足预设条件D,则所述串长度参数为当前串长度lengthi
所述预设条件D为:“当前像素单元串或像素串位移矢量的水平分量等于0且垂直分量大于负当前编码像素单元串或像素串最大宽度分之一减去1”、或“当前像素单元串或像素串的扫描方式是“水平往返扫描模式”时,当前像素单元串或像素串的起始像素单元串或像素串的位置是“偶数行”或者“奇数行的非第一列并且当前像素单元串或像素串的位移矢量不是单位像素串位移矢量;当前像素单元串或像素串的扫描方式是“垂直往返扫描模式”时,当前像素单元串或像素串的的起始像素单元串或像素串的位置是“偶数列”或者“奇数列的非第一行并且当前像素单元串或像素串的位移矢量不是单位像素串位移矢量”。
所述预设条件C为是不满足前面所述条件D;
通过预设“下一个剩余数目”计算方式获得“下一个剩余数目”或通过预设“下一个剩余数目的预测差值”计算方式获得“下一个剩余数目的预测差值”。
(2)至少将表示所述步骤(1)选择的串长度参数数值的信息写入压缩数据码流;具体为:
对串长度参数的值进行编码,并将编码结果写入压缩数据码流。
具体做法之一为:对步骤(1)获得的当前串的串长度参数进行二值化,并将二值化后的数据写入压缩数据码流;
所述二值化具体包括:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已编码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串;否则,即Ri>1,则将串长度参数进行二值化,得到表示串长度参数数值的二元符号串,将所述表示串长度参数数值的二元符号串写入压缩码流。
具体包括:
根据当前的剩余元素的数目Ri确定串长度参数的值域,并将所述串长度参数的值域划分为多个连续的依次编号的段,以包括所述串长度参数的值所在的段的编号在内的参数向量标记所述串长度参数的值,并对所述串长度参数的值的包括所述串长度参数的值所在的段的编号在内的参数向量进行二值化,作为所述串长度参数的二值化编码。
所述将串长度参数进行二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数二值化;或
采用预设分段编码将所述串长度参数二值化;或
采用一元码将所述串长度参数二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数二值化;或
采用截断定长码即截断二元码将所述串长度参数二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数二值化。
例如:根据当前的剩余元素的数目Ri确定串长度参数的值域,并将所述串长度参数的值域划分为多个连续的依次编号的段,如下:
将串长度参数的值域分为预定的I+1段整数区间[Ni,Ni+1),i=0~I;
确定串长度参数的值所在的段的前一段的段号a,并将串长度参数的值表达为:长度参数的值=Na+b
将a和/或b分别进行二值化后写入码流,可分别采用截断一元码、截断二元码、截断k阶指数哥伦布码、或由一个最大值导出的定长码。
例如:将a和/或b分别进行二值化的一个例是:
对第一部分a采用截断一元码的二值化方式,至少按照预定的第一部分最大值计算方式,从至少所述当前剩余数目,获得第一部分最大值maxValPrefix,对synElVal为a使用截断值即最大值maxVal为maxValPrefix的截断一元码进行二值化,采用查表的方式或计算的方式获得二元符号串。查表方式的一个例是表1:
表1 synElVal与二元符号串的关系(截断一元码)
Figure BDA0002820034010000241
Figure BDA0002820034010000251
如果a等于0,则压缩数据码流中不存在第二部分和其余部分,直接将串长度参数的值设置为0;否则,即a大于0,继续进行下列第二部分的分段的截断二元码的二值化;
对第二部分b采用分段的截断二元码的二值化:
至少根据所述当前剩余数目,将串长度参数的取值范围分为预定的Imax+1段整数区间[Ni,Ni+1),i=0~Imax;
至少根据所述第一部分的值a,确定段的值i=a;
至少根据所述段的值i,获得第二部分最大值maxValInfix的方式是maxValInfix=Ni+1-Ni–1;
对b使用截断值即最大值maxVal为maxValInfix的截断二元码进行二值化。
其中Imax=4,i为0、1、2、3、或4,N00、N01、N02、N03、N04、N05分别为0、1、5、21、277、当前剩余数目R的最大值。
相应的解码方法为:
重复以下步骤,直至当前解码块中像素单元串或像素串长度的序列(length1、length2、......lengthn)解码完毕:
(A)根据预设的串长度方案参数选择方案,确定所述串长度参数的种类;
所述串长度参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已解码样值长度的总和curTlen和当前串长度值lengthi之和,其中curTlen不含未匹配像素单元;记作:
nrpi=cuSize-curTlen-lengthi
所述当前串的下一个剩余数目的预测差值Δnrpi为:
Figure BDA0002820034010000252
Figure BDA0002820034010000253
所述串长度参数选择方案为,对解码块中至少一个当前像素单元串或像素串的长度,使用至少下列方式之一确定长度参数的种类:
方式1:如果满足预设条件A,则所述串长度参数为下一个剩余数目nrpi;如果满足预设条件B,则所述串长度参数为下一个剩余数目的预测差值Δnrpi
所述预设条件A为:“当前像素单元串或像素串的下一个剩余数目等于0”、或“当前像素单元串或像素串是当前块中最前2个像素单元串或像素串或当前像素单元串或像素串的下一个剩余数目等于0”
所述预设条件B为是不满足前面所述条件A;
方式2:如果满足预设条件C,则所述串长度参数为下一个剩余数目nrpi;如果满足预设条件D,则所述串长度参数为当前串长度lengthi
所述预设条件D为:“当前像素单元串或像素串位移矢量的水平分量等于0且垂直分量大于负当前解码像素单元串或像素串最大宽度分之一减去1”、或当前像素单元串或像素串的扫描方式是“水平往返扫描模式”时,当前像素单元串或像素串的起始像素单元串或像素串的位置是“偶数行”或者“奇数行的非第一列并且当前像素单元串或像素串的位移矢量不是单位像素串位移矢量”当前像素单元串或像素串的扫描方式是“垂直往返扫描模式”时,当前像素单元串或像素串的的起始像素单元串或像素串的位置是“偶数列”或者“奇数列的非第一行并且当前像素单元串或像素串的位移矢量不是单位像素串位移矢量”。
所述预设条件C为是不满足前面所述条件D;
(B)解析当前块中的压缩数据码流,至少获得当前串的含有串长度参数数值的信息,并根据所述串长度参数种类,获取串长度参数数值并计算当前串长度值;具体做法之一为:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已解码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串,所述串长度参数的数值设为0;否则,即Ri>1,则获取压缩码流中表示串长度参数数值的二元符号串,并将所述表示串长度参数数值的二元符号串进行反二值化获得所述串长度参数的数值。
所述反二值化获得所述串长度参数的数值,具体包括
表示串长度参数的数值二元符号串由至少两部分a和b组成,通过将所述压缩码流按照预设的反二值化方案转解码为a、b的值:
根据当前的剩余元素的数目Ri确定串长度参数的值域,并将所述串长度参数的值域划分为多个连续的依次编号的段,如下:
将串长度参数的值域分为预定的I+1段整数区间[Ni,Ni+1),i=0~I;
计算串长度参数的数值为:串长度参数的数值=Na+b。
所述计算当前串长度值,具体包括:
当所述串长度参数为下一个剩余数目nrpi时,当前串长度lengthi按照以下公式计算:
lengthi=cuSize-curTlen-nrpi
当所述串长度参数为当前串长度lengthi时,直接得出串长度lengthi
当所述串长度参数为下一个剩余数目的预测差值Δnrpi时,当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000261
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000262
lengthi=cuSize-curTlen-nrpi
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000271
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000272
lengthi=cuSize-curTlen-nrpi
实施例3
一种串长度参数混合编码方法,采用两种不同种类的长度参数对像素单元串或像素串长度的序列进行编码,重复以下步骤,直至当前编码块中像素单元串或像素串导航都的序列length1、length2、......lengthn)编码完毕
(1)对编码块中至少一个当前像素单元串或像素串的长度,根据预设的串长度参数选择方案选择用于标记当前串长度的参数作为当前串的串长度参数;
所述用于标记当前串长度的参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已编码样值长度的总和curTlen和当前串长度值lengthi之和,其中curTlen不含未匹配像素单元;记作:
nrpi=cuSize-curTlen-lengthi
所述当前串的下一个剩余数目的预测差值Δnrpi为:
Figure BDA0002820034010000273
Figure BDA0002820034010000274
所述串长度参数选择方案包括:当所述当前块中像素单元串或像素串长度的序列(length1、length2、......lengthn)仅有一个串长度时,即n=1,所述串长度参数的选择“下一个剩余数目nrpi”,对“下一个剩余数目nrpi”进行编码。
通过预设“下一个剩余数目”计算方式获得“下一个剩余数目”或通过预设“下一个剩余数目的预测差值”计算方式获得“下一个剩余数目的预测差值”。
(2)至少将表示所述步骤(1)选择的串长度参数数值的信息写入压缩数据码流;具体为:
对串长度参数的值进行编码,并将编码结果写入压缩数据码流。
具体做法之一为:对步骤(1)获得的当前串的串长度参数进行二值化,并将二值化后的数据写入压缩数据码流;
所述二值化具体包括:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已编码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串;否则,即Ri>1,则将串长度参数进行二值化,得到表示串长度参数数值的二元符号串,将所述表示串长度参数数值的二元符号串写入压缩码流。
具体包括:
根据当前的剩余元素的数目Ri确定串长度参数的值域,并将所述串长度参数的值域划分为多个连续的依次编号的段,以包括所述串长度参数的值所在的段的编号在内的参数向量标记所述串长度参数的值,并对所述串长度参数的值的包括所述串长度参数的值所在的段的编号在内的参数向量进行二值化,作为所述串长度参数的二值化编码。
所述将串长度参数进行二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数二值化;或
采用预设分段编码将所述串长度参数二值化;或
采用一元码将所述串长度参数二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数二值化;或
采用截断定长码即截断二元码将所述串长度参数二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数二值化。
例如:S1、将所述将的串长度参数的值采用第一、第二、第三部分表示:
串长度参数的值=Na+(b<<k)+c-(2n-maxValInfix-1)×k
其中a为第一部分的值,b为第二部分的值,maxValInfix为第二部分的最大值,n为第二部分定长码的长度;k为第三部分定长码的长度;具体按照以下方法获取:
根据当前的剩余元素的数目Ri确定串长度参数的值域,并将所述串长度参数的值域划分为多个连续的依次编号的段,如下:
将串长度参数的值域分为预定的Imax+1段整数区间[Ni,Ni+1),i=0~Imax;例如,Imax=4,i为0、1、2、3、或4,N00、N01、N02、N03、N04、N05分别为0、1、5、21、277、当前剩余数目R的最大值。
确定串长度参数的值所在的段的前一段的段号a;
确定第二部分最大值为:maxValInfix=Na+1–Na–1,第二部分定长码的长度n为:n=Ceil(Log(maxValInfix+1));
第二部分b值为:当k=0时,b=串长度参数的值-Na;否则,k=1,b=(串长度参数的值–Na+1+(1<<n))>>1,其中>>为右移运算,<<为左移运算;其中k为第三部分定长码的长度,计算方法如下:串长度参数的值-Na小于2n-maxValInfix-1或者maxValInfix等于0,则k的值设定为0;否则,k的值设定为1。
第三部分c值为:c=串长度参数的值-Na-(b<<1)+((1<<n)-(maxValInfix+1))=串长度参数的值–Na+1-(b<<1)+(1<<n);
S2、将a和/或b和/或c分别进行二值化后写入码流,a的二值化可采用截断一元码、截断二元码、截断k阶指数哥伦布码、或由一个最大值导出的定长码;b和c采用定长码。具体为:
对于第一部分:将第一部分的a值采用截断一元码进行二值化后写入码流;
对于第二部分:如果计算第二部分定长码的长度n等于或大于1,将第二部分的b值采用长度为n的定长码进行二值化后写入码流;否则,即n小于1,则第二部分二元符号串为空即实际上不存在于压缩数据码流中;
对于第三部分:如果k不等于0,将第三部分的c值采用长度为1的定长码进行二值化后写入码流;否则,即k等于0,则第三部分二元符号串为空即实际上不存在于压缩数据码流中。
相应的解码方法为:
重复以下步骤,直至当前解码块中像素单元串或像素串长度的序列(length1、length2、......lengthn)解码完毕:
(A)根据预设的串长度方案参数选择方案,确定所述串长度参数的种类;
所述串长度参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已解码样值长度的总和curTlen和当前串长度值lengthi之和,其中curTlen不含未匹配像素单元;记作:
nrpi=cuSize-curTlen-lengthi
所述当前串的下一个剩余数目的预测差值Δnrpi为:
Figure BDA0002820034010000291
Figure BDA0002820034010000292
所述串长度参数选择方案包括:当所述当前块中像素单元串或像素串长度的序列(length1、length2、......lengthn)仅有一个串长度时,即n=1,所述串长度参数的选择“下一个剩余数目nrpi”,对“下一个剩余数目nrpi”进行解码。
(B)解析当前块中的压缩数据码流,至少获得当前串的含有串长度参数数值的信息,并根据所述串长度参数种类,获取串长度参数数值并计算当前串长度值;具体做法之一为:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已解码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串,所述串长度参数的数值设为0;否则,即Ri>1,则获取压缩码流中表示串长度参数数值的二元符号串,并将所述表示串长度参数数值的二元符号串进行反二值化获得所述串长度参数的数值。
所述反二值化获得所述串长度参数的数值,具体包括
表示串长度参数的数值二元符号至少三部分组成:
对于第一部分的值a:采用截断一元码的反二值化方式,至少按照预定的第一部分最大值计算方式,从至少所述当前剩余数目Ri,获得第一部分最大值maxValPrefix,使用截断值即最大值maxVal为maxValPrefix的截断一元码的反二值化方式获得第一部分的值a;如果a等于0,则压缩数据码流中不存在第二部分、第三部分和其余部分,直接将串长度参数的值设置为0;否则,即a大于0,继续进行下列第二部分和第三部分的反二值化;
对于第二部分的值b:根据所述当前剩余数目Ri,将串长度参数的取值范围分为预定的I+1段整数区间[Ni,Ni+1),i=0~Imax,确定第二部分最大值maxValInfix,maxValInfix=Na+1–Na–1并导出第二部分定长码的长度n,n=Ceil(Log(maxValInfix+1));如果n等于或大于1,则使用长度为n的定长码的反二值化方式获得第二部分的值b,否则,即n小于1,则二元符号串为空即实际上不存在于压缩数据码流中,故无需解析压缩数据码流而直接将第二部分的值b设置为0;例如其中Imax=4,i为0、1、2、3、或4,N00、N01、N02、N03、N04、N05分别为0、1、5、21、277、当前剩余数目R的最大值。
对于第三部分:根据所述第二部分的值b,获得第三部分定长码的长度k,如果b小于2n-maxValInfix-1或者maxValInfix等于0,则k的值设定为0,否则,k的值设定为1;如果k等于或大于1,则使用长度为k的定长码的反二值化方式获得第三部分的值c,否则,即k小于1,则二元符号串为空即实际上不存在于压缩数据码流中,故无需解析压缩数据码流而直接将第三部分的值c设置为0;
根据段的值a和第二部分的值b、第二部分定长码的长度n、第三部分的值c第三部分定长码的长度k,获得串长度参数的值,如下:
串长度参数的值=Na+(b<<k)+c-(2n-maxValInfix-1)×k
所述计算当前串长度值,具体包括:通过预设“下一个剩余数目”计算方式获得“下一个剩余数目”或通过预设“下一个剩余数目的预测差值”计算方式获得“下一个剩余数目的预测差值”。
当所述串长度参数为下一个剩余数目nrpi时,当前串长度lengthi按照以下公式计算:
lengthi=cuSize-curTlen-nrpi
当所述串长度参数为当前串长度lengthi时,直接得出串长度lengthi
当所述串长度参数为下一个剩余数目的预测差值Δnrpi时,当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000301
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000302
lengthi=cuSize-curTlen-nrpi
当下一个剩余数目预测差值Δnrpi为:
Figure BDA0002820034010000303
按照以下公式计算当前串长度lengthi
Figure BDA0002820034010000304
lengthi=cuSize-curTlen-nrpi
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种串长度参数混合编码方法及装置,其特征在于,包括以下步骤或完成相应功能的模块:
(1)至少根据预设的串长度参数选择方案选择用于标记当前串长度的参数作为当前串的串长度参数;
(2)至少将表示所述步骤(1)选择的串长度参数数值的信息写入压缩数据码流。
2.一种串长度参数混合解码方法,其特征在于,包括以下步骤:
(A)根据预设的串长度方案参数选择方案,确定所述串长度参数的种类;
(B)解析当前块中的压缩数据码流,至少获得当前串的含有串长度参数数值的信息,并根据所述串长度参数种类,获取串长度参数数值并计算当前串长度值。
3.如权利要求2所述的串长度参数混合解码方法,其特征在于,所述串长度参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
优选所述下一个剩余数目nrpi为当前块大小cuSize减去当前已解码样值长度的总和curTlen和当前串长度值lengthi之和;
优选所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目nrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),...,f(i-1),其中f(1)+f(2)+f(3)+...+f(i-1)=1。
4.如权利要求3所述的串长度参数混合解码方法,其特征在于,所述当前串的下一个剩余数目的预测差值Δnrpi为:
Figure FDA0002820032000000021
Figure FDA0002820032000000022
5.如权利要求2所述的串长度参数混合解码方法,其特征在于,所述串长度参数选择方案为,以预定的参数为指示,当其符合预定条件时选择特定的串长度参数种类;所述预定的参数包括下列之一或组合:
串编号、当前的剩余元素的数目Ri、已解码样值长度的总和curTlen、串位移矢量、扫描方式、当前块的宽度或高度、当前块的串预测或称串匹配子模式、串的类型、串的偏移矢量或称串矢量。
优选地,所述预设条件为以下条件之一或组合:
当前串的编号处于或不处于当前块中串编号序列的预设位置范围;
当前的剩余元素的数目Ri的值在预设范围之内;
当前已解码样值长度的总和curTlen值在预设的范围之内;
当前像素单元串或像素串位移矢量等于预设位移矢量;
当前像素单元串或像素串位移矢量不等于预设位移矢量;
当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;
当前像素单元串或像素串的扫描方式是或者不是预设扫描方式;
当前块的宽度或高度在预设范围之内;
串预测子模式是或不是下列子模式之一或组合:普通串预测子模式、等值串与单位基矢量串子模式、满足预定限制的串预测子模式、参考像素限定在预定的一个或多个参考像素集内的串预测子模式、调色板子模式;
串的类型是或不是下列串类型之一或组合:一般串、等值串、单位基矢量串、参考像素在主参考像素集内的串、参考像素在次参考像素集内的串、索引串;
串矢量是或不是下列矢量之一或组合:(0,-1)、(0,1)、(-1,0)、(1,0)、部分或全部水平分量为零的矢量、部分或全部垂直分量为零的矢量、部分或全部两个分量之一为零的矢量、预定取值范围内的矢量。
6.如权利要求2所述的串长度参数混合解码方法,其特征在于,步骤(B)具体做法之一为:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已解码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串,所述串长度参数的数值设为0;否则,即Ri>1,则获取压缩码流中表示串长度参数数值的二元符号串,并将所述表示串长度参数数值的二元符号串进行反二值化获得所述串长度参数的数值。
7.如权利要求2所述的串长度参数混合解码方法,其特征在于,所述反二值化获得所述串长度参数的数值,具体包括:
将所述表示串长度参数数值的二元符号串,按照预设的反二值化方案,解码为包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量;根据所述串长度参数的值域划分为多个连续的依次编号的段的方案,将所述包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量转换为所述串长度参数的数值;所述串长度参数的值域划分为多个连续的依次编号的段的方案根据所述串长度参数的值域确定,所述串长度参数的值域至少根据当前的剩余元素的数目Ri确定。
所述将串长度参数进行反二值化,优选采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数反二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数反二值化;或
采用预设分段编码将所述串长度参数反二值化;或
采用一元码将所述串长度参数反二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数反二值化;或
采用截断定长码即截断二元码将所述串长度参数反二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数反二值化。
8.如权利要求2所述的串长度参数混合解码方法,其特征在于,所述计算当前串长度值,具体包括:
当所述串长度参数为下一个剩余数目nrpi时,当前串长度lengthi按照以下公式计算:
lengthi=cuSize-curTlen-nrpi
当所述串长度参数为当前串长度lengthi时,直接得出串长度lengthi
当所述串长度参数为下一个剩余数目的预测差值Δnrpi时,根据下一个剩余数目的预测差值Δnrpi和已解码串的下一个剩余数目计算当前串的下一个剩余数目nrpi,获取当前串长度lengthi。例如:
当下一个剩余数目预测差值Δnrpi为:
Figure FDA0002820032000000051
按照以下公式计算当前串长度lengthi
Figure FDA0002820032000000052
lengthi=cuSize-curTlen-nrpi
当下一个剩余数目预测差值Δnrpi为:
Figure FDA0002820032000000053
按照以下公式计算当前串长度lengthi
Figure FDA0002820032000000054
lengthi=cuSize-curTlen-nrpi
9.如权利要求2所述的串长度参数混合解码方法,其特征在于,所述串长度参数的单位为元素,不同种类的串长度参数允许使用不同的单位;优选
元素包括像素或像素分量简称分量或像素索引简称索引或像素单元;所述像素单元是m×n个像素或分量或索引组成的阵列,m和n分别是包括1、2、4、8、16的预定的正整数;当m和n都取值为1时,像素单元是一个像素或一个像素分量或一个分量或一个像素索引或一个索引。
10.如权利要求2所述的串长度参数混合解码装置,其特征在于,包括:串长度参数类别选择模块、以及压缩数据码流解析模块;
所述串长度参数类别选择模块,至少用于根据预设的串长度方案参数选择方案,确定所述串长度参数的种类;优选:
所述串长度参数包括:下一个剩余数目nrpi、下一个剩余数目的预测差值Δnrpi、或当前串长度lengthi
所述下一个剩余数目nrpi为当前块大小cuSize减去当前已解码样值长度的总和curTlen和当前串长度值lengthi之和;记作:
nrpi=cuSize-curTlen-lengthi
所述下一个剩余数目的预测差值Δnrpi为当前串的前一串或前面部分串或前面全部串的下一个剩余数目nrpi-1或其加权值与当前串的下一个剩余数目nrpi的差值,其中,所述权重为当前串的前一串或前面部分串或前面全部串的下一个剩余数目其总和或各自在计算下一个剩余数目预测差值Δnrpi中所占的比例,所述权重为预设的值或者函数;优选当前串的前一串或前面部分串或前面全部串的下一个剩余数目的权重之和为1;
例如:
对于当前串的前i-1个串其权重为均为1/(i-1),或对于当前串的前i-1个串权重分别为f(1),f(2),f(3),...,f(i-1),其中f(1)+f(2)+f(3)+...+f(i-1)=1;
具体如:
当权重为1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure FDA0002820032000000071
当权重为1/i-1时,所述当前串的下一个剩余数目的预测差值Δnrpi,可为:
Figure FDA0002820032000000072
优选,所述串长度参数选择方案为,以预定的参数为指示,当其符合预定条件时选择特定的串长度参数种类;所述预定的参数包括下列之一或组合:
串编号、当前的剩余元素的数目Ri、已解码样值长度的总和curTlen、串位移矢量、扫描方式、当前块的宽度或高度、当前块的串预测或称串匹配子模式、串的类型、串的偏移矢量或称串矢量。
优选地,所述预设条件为以下条件之一或组合:
当前串的编号处于或不处于当前块中串编号序列的预设位置范围;
当前的剩余元素的数目Ri的值在预设范围之内;
当前已解码样值长度的总和curTlen值在预设的范围之内;
当前像素单元串或像素串位移矢量等于预设位移矢量;
当前像素单元串或像素串位移矢量不等于预设位移矢量;
当前像素单元串或像素串位移矢量的水平分量等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量不等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量不等于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量小于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量小于预设位移矢量垂直分量值;
当前像素单元串或像素串位移矢量的水平分量大于等于预设位移矢量水平分量值;
当前像素单元串或像素串位移矢量的垂直分量大于等于预设位移矢量垂直分量值;
当前像素单元串或像素串的扫描方式是或者不是预设扫描方式;
当前块的宽度或高度在预设范围之内;
串预测子模式是或不是下列子模式之一或组合:普通串预测子模式、等值串与单位基矢量串子模式、满足预定限制的串预测子模式、参考像素限定在预定的一个或多个参考像素集内的串预测子模式、调色板子模式;
串的类型是或不是下列串类型之一或组合:一般串、等值串、单位基矢量串、参考像素在主参考像素集内的串、参考像素在次参考像素集内的串、索引串;
串矢量是或不是下列矢量之一或组合:(0,-1)、(0,1)、(-1,0)、(1,0)、部分或全部水平分量为零的矢量、部分或全部垂直分量为零的矢量、部分或全部两个分量之一为零的矢量、预定取值范围内的矢量。
所述压缩码流解析模块,解析当前块中的压缩数据码流,至少获得当前串的含有串长度参数数值的信息,并根据所述串长度参数种类,获取串长度参数数值并计算当前串长度值;具体做法之一为:
所述当前的剩余元素的数目Ri为当前块大小cuSize和当前已解码的元素长度的总和curTlen之差,计算所述当前块中当前的剩余元素的数目Ri如下:
Ri=cuSize-curTlen
如果Ri=1,则压缩数据码流中不存在串长度参数的二元符号串,所述串长度参数的数值设为0;否则,即Ri>1,则获取压缩码流中表示串长度参数数值的二元符号串,并将所述表示串长度参数数值的二元符号串进行反二值化获得所述串长度参数的数值。
所述反二值化获得所述串长度参数的数值,具体包括
将所述表示串长度参数数值的二元符号串,按照预设的反二值化方案,解码为包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量;根据所述串长度参数的值域划分为多个连续的依次编号的段的方案,将所述包括所述串长度参数的数值所在的段的编号在内的用于标记所述串长度参数的数值的参数向量转换为所述串长度参数的数值;所述串长度参数的值域划分为多个连续的依次编号的段的方案根据所述串长度参数的值域确定,所述串长度参数的值域至少根据当前的剩余元素的数目Ri确定。
所述将串长度参数进行反二值化,具体采用下列方式之一或其组合:
采用长度为len的定长码将所述串长度参数反二值化;或
采用预定阶数的指数哥伦布码将所述串长度参数反二值化;或
采用预设分段编码将所述串长度参数反二值化;或
采用一元码将所述串长度参数反二值化;或
采用具有最大值maxVal的截断一元码将所述串长度参数反二值化;或
采用截断定长码即截断二元码将所述串长度参数反二值化;或
采用截断预定阶数的指数哥伦布码即截断k阶指数哥伦布码将所述串长度参数反二值化。
所述计算当前串长度值,具体包括:
当所述串长度参数为下一个剩余数目nrpi时,当前串长度lengthi按照以下公式计算:
lengthi=cuSize-curTlen-nrpi
当所述串长度参数为当前串长度lengthi时,直接得出串长度lengthi
当所述串长度参数为下一个剩余数目的预测差值Δnrpi时,根据下一个剩余数目的预测差值Δnrpi和已解码串的下一个剩余数目计算当前串的下一个剩余数目nrpi,获取当前串长度lengthi。例如:
当下一个剩余数目预测差值Δnrpi为:
Figure FDA0002820032000000101
按照以下公式计算当前串长度lengthi
Figure FDA0002820032000000102
lengthi=cuSize-curTlen-nrpi
当下一个剩余数目预测差值Δnrpi为:
Figure FDA0002820032000000103
按照以下公式计算当前串长度lengthi
Figure FDA0002820032000000104
lengthi=cuSize-curTlen-nrpi
CN202011428699.3A 2020-12-07 2020-12-07 一种串长度参数混合编码、解码方法及装置 Active CN112601086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011428699.3A CN112601086B (zh) 2020-12-07 2020-12-07 一种串长度参数混合编码、解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011428699.3A CN112601086B (zh) 2020-12-07 2020-12-07 一种串长度参数混合编码、解码方法及装置

Publications (2)

Publication Number Publication Date
CN112601086A true CN112601086A (zh) 2021-04-02
CN112601086B CN112601086B (zh) 2023-08-01

Family

ID=75191686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011428699.3A Active CN112601086B (zh) 2020-12-07 2020-12-07 一种串长度参数混合编码、解码方法及装置

Country Status (1)

Country Link
CN (1) CN112601086B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016202189A1 (zh) * 2015-06-14 2016-12-22 同济大学 图像编码及解码方法、图像处理设备、计算机存储介质
CN107071450A (zh) * 2016-02-10 2017-08-18 同济大学 数据压缩的编码、解码方法及装置
CN107483961A (zh) * 2016-06-08 2017-12-15 上海天荷电子信息有限公司 使用弓形扫描串预测及串位置编码的数据压缩方法和装置
CN111131826A (zh) * 2018-10-31 2020-05-08 上海天荷电子信息有限公司 定长码单元含多个编码参数变长码的数据压缩方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016202189A1 (zh) * 2015-06-14 2016-12-22 同济大学 图像编码及解码方法、图像处理设备、计算机存储介质
CN107071450A (zh) * 2016-02-10 2017-08-18 同济大学 数据压缩的编码、解码方法及装置
CN107483961A (zh) * 2016-06-08 2017-12-15 上海天荷电子信息有限公司 使用弓形扫描串预测及串位置编码的数据压缩方法和装置
CN111131826A (zh) * 2018-10-31 2020-05-08 上海天荷电子信息有限公司 定长码单元含多个编码参数变长码的数据压缩方法和装置

Also Published As

Publication number Publication date
CN112601086B (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
US10893273B2 (en) Data encoding and decoding
CN104811707B (zh) 对视频进行解码的设备
CN100455019C (zh) 内容自适应二进制算术编码的方法和使用该方法的设备
CN107734348B (zh) 确定上下文模型的设备
KR101868247B1 (ko) 영상 부호화, 복호화 방법 및 장치
US20080219578A1 (en) Method and apparatus for context adaptive binary arithmetic coding and decoding
BRPI0210786B1 (pt) método para codificar dados de imagem digital usando compressão adaptativa de dados de vídeo
JP5400133B2 (ja) 線形形状の画素区画にスライスされた画像または画像シーケンスの符号化および復号
CN105027560A (zh) 确定用于变换系数的二进制码字的方法
CN110944178B (zh) 数据压缩的编码方法及编码装置、解码方法及解码装置
CN107770527B (zh) 使用邻近编码参数和最近编码参数的数据压缩方法和装置
CN112637600B (zh) 对数据进行有损或无损压缩的编码、解码的方法或装置
CN112565790B (zh) 一种采用最小基矢量标志的串预测编码、解码方法及装置
CN114071140B (zh) 解码方法、编码方法、装置、设备及机器可读存储介质
JPH06232765A (ja) 可変長符号化方法
CN112532990A (zh) 一种串长度参数编码、解码方法和装置
TW202406335A (zh) 一種編解碼方法、裝置及其設備
CN108989819B (zh) 各模式采用各自相应色彩空间的数据压缩方法和装置
CN112601086B (zh) 一种串长度参数混合编码、解码方法及装置
CN107770543B (zh) 多类匹配参数中按顺序递增截断值的数据压缩方法和装置
CN111131826A (zh) 定长码单元含多个编码参数变长码的数据压缩方法和装置
CN113115041A (zh) 支持alpha通道的无损图片压缩方法、装置及介质
CN113395515A (zh) 对分量下采样格式数据进行点预测的编码解码方法及装置
CN112672160B (zh) 融合帧内块复制和串复制编码参数的编码解码方法和装置
KR20120038355A (ko) 계층 구조의 영상 처리를 위한 엔트로피 인코딩/디코딩 방법 및 장치와 이를 위한 심볼 인코딩/디코딩 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant