CN110999088A - 编码装置、解码装置、代码串的数据结构、编码方法、解码方法、编码程序、解码程序 - Google Patents
编码装置、解码装置、代码串的数据结构、编码方法、解码方法、编码程序、解码程序 Download PDFInfo
- Publication number
- CN110999088A CN110999088A CN201880048686.8A CN201880048686A CN110999088A CN 110999088 A CN110999088 A CN 110999088A CN 201880048686 A CN201880048686 A CN 201880048686A CN 110999088 A CN110999088 A CN 110999088A
- Authority
- CN
- China
- Prior art keywords
- code
- integer
- bit
- encoding
- value
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4043—Adaptive prefix coding
- H03M7/4068—Parameterized codes
- H03M7/4075—Golomb codes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
- H03M7/48—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
Abstract
本发明提供即使是还包含不是零值的小的值、其分布大大偏向于小的值的整数值的序列,也能够以较少的平均比特数进行编码的编码解码技术。包括整数编码单元110,对于基于被输入的非负的整数值x_n、n∈{1,2,...,N}的序列(以下称为“整数序列”),将K设为2以上的整数,作为与整数序列中包含的整数值0的2个至2K‑1个中的预先确定的任意个数即L个连续对应的代码,得到1比特的代码,作为与基于整数序列中包含的、0个至L‑1个连续的整数值0、和1个0以外的整数值x_n的组对应的代码,得到K×x_n比特或者K×x_n+1比特的代码。
Description
技术领域
本发明涉及对由语音或音频时间序列数字信号的样本序列等的整数值构成的样本序列进行编码、解码的技术。
背景技术
作为以压缩为目的对样本序列进行编码的技术,有通过将样本值进行量化而得到的有限精度的值(以下将其称为整数值)进行可逆编码,削减用于样本序列的记述的比特长的技术。在该技术中,对哪个整数值分配哪个长度的代码,直接关系到压缩的性能。该事实在将图像信号的样本串进行编码解码的图像编码或将音频信号的样本串进行编码解码的音频编码等的、样本序列的编码或解码的工学应用之处也并不例外。
一般地,在可变长度的可逆编码中,由于解码可能性的制约,分配给整数值的代码的结构存在制约。具体地说,是若对某一整数值分配短的代码,则为了设为可解码的代码,必须对其它的整数值分配长的代码这样的制约。因此,为了提高压缩性能,代码的结构(对各整数值的代码的分配)需要设为适合整数值的序列中的值的分布的结构。具体地说,通过对出现概率高的整数值分配短的代码,对出现概率低的整数值分配长的代码,能够减小整数值的序列的压缩后的比特长的期望值。
作为上述那样的可逆编码中最单纯的可变长度代码之一而使用的是格伦布-赖斯代码(Golomb-Rice代码)。已知格伦布-赖斯代码在整数值的序列属于拉普拉斯分布的情况下、即整数值的出现概率相对于值的大小指数性变低的情况下,实现最小的期望比特长(最小的比特长)。
该格伦布-赖斯代码由于是非常单纯的结构,因此被广泛采用。格伦布-赖斯代码在将例如在对音频信号进行AD变换成为了PCM的整数值的序列或对该序列进行傅立叶变换而变换为频谱的序列等中包含的各样本值除以量化值,将得到的整数值的绝对值的序列进行编码时使用。或者,格伦布-赖斯代码在对将上述整数值的序列的各样本值x分别置换为由以下的式(1)求出的x’后的非负整数值构成的序列进行编码时使用。
因此,以下说明对非负整数值进行编码/解码的情况,但是从能够通过式(1)等将整数值整体一对一地变换为非负整数值这样的上述的事实,通过在编码处理的前段通过式(1)等将整数值整体变换为非负整数值,或者在解码处理的后段通过式(1)的逆变换等将非负整数值变换为整数值整体,还能够适应于整数值整体的编码/解码。
格伦布-赖斯编码通过适当地赖斯参数(Rice参数)r的值,如图1的表那样,将相对于非负整数值的输入x的代码的比特长B(x)设为
,能够对于遵照以下的单侧拉普拉斯分布的非负整数值的序列提供近似且最佳的期望比特长地进行编码。
其中,赖斯参数r是非负的整数值。即,如果将赖斯参数r设为小的非负的整数值,则能够将值的偏向性大的序列以较少的平均比特数进行编码,如果将r设为大的非负的整数值,则能够将值的偏向性小的序列以较少的平均比特数进行编码。
但是格伦布-赖斯编码由于不能将赖斯参数r设为负值,因此例如随着遵从分布p(x,0.1)的值的序列等序列的值的偏向性比分布p(x,1)变大,无论怎样设定赖斯参数r,压缩的效率都会降低。
例如,在将音频信号进行AD变换设为PCM时,由于设定连大音量也能记录这样可表现的数值的范围,因此在多数的信号的序列中包含的值处于可表现的数值的范围的绝对值偏向于小的值的位置的倾向。特别地,语音信号由于存在没有发话时间区间,因此偏向于零值或仅有背景噪声的非常小的值。而且,将在这样的信号的序列中包含的各值除以量化值得到的整数值的序列,通过量化,与原来的序列相比偏向于还包含零值的小的值。
作为对偏向于零值的整数值的序列进行编码的现有技术,有非专利文献1的技术。非专利文献1的技术中,在输入的整数值的序列中包含的零值,是将零值连续的个数以预先决定的固定比特数进行编码,在输入的整数值的序列中包含的零值以外的值,是对从该值减去1得到的值(值-1)进行格伦布-赖斯编码的值。
而且,作为对偏向于包含零值的小的值的整数值的序列进行编码的现有技术,存在非专利文献2的技术。非专利文献2的技术,是将基于两个整数值的组和一个整数值如全单射那样预先相关联,将基于在整数值的序列中包含的两个整数值的组变换为一个整数值,将变换后的整数值的序列进行格伦布-赖斯编码。
【现有技术文献】
【非专利文献】
【非专利文献1】H.S.Malvar,“Adaptive Run-Length/Golomb-Rice Encoding ofQuantized Generalized Gaussian Sources with Unknown Statistics”,in Proc.DataCompression Conference(DCC)06,IEEE Computer Society,pp.23-32,Mar.2006.
【非专利文献2】高村誠之,八島由幸,“分布写像に基づくガウス性情報源の効率的符号化”,映像情報メディア学会誌,Vol.61,No.9,pp.1357-1362,2007.
【发明内容】
【发明要解决的课题】
根据非专利文献1的技术,能够对于零值以较少的平均比特数进行编码。但是,在非专利文献1的技术中,对于零值以外由于进行与格伦布-赖斯编码大致相同的编码,因此在非专利文献1的技术中,在不是零值的小的值比分布p(x,1)大大偏离的情况下,存在压缩的性能降低这样的课题。
而且,非专利文献1的技术并不是与数学上所表现的分布对应的编码方法。因此,在非专利文献1的技术中,虽然知道整数值的序列中的值的分布,但是也存在不知道作为用于表现零值的连续的个数的比特数,要选择哪个进行编码,才能够以较少的平均比特数进行编码的课题。
另一方面,根据非专利文献2的技术,能够对与分布p(x,1)相比值偏离的整数值的序列以较少的平均比特数进行编码。但是,非专利文献2的技术,存在不能使对一个整数值的平均比特数比0.5比特小,对于理论上最佳的平均比特数成为不足0.5比特这样的偏向性大的整数值的序列,压缩的性能降低这样的课题。
因此,本发明其目的在于,提供即使是还包含不是零值的小的值,其分布大大偏向于小的值的整数值的序列,也能够以较少的平均比特数进行编码的编码解码技术。
【用于解决课题的手段】
本发明的一个方式,包括整数编码单元,其对于基于被输入的非负的整数值x_n、n∈{1,2,...,N}的序列(以下称为“整数序列”),将K设为2以上的整数,作为与所述整数序列中包含的整数值0的2个至2K-1个中的预先确定的任意个数即L个的连续对应的代码,得到1比特的代码(以下,称为“代码A”),作为与基于所述整数序列中包含的、0个至L-1个连续的整数值0、和1个0以外的整数值x_n的组对应的代码,得到K×x_n比特或者K×x_n+1比特的代码(以下,称为“代码B”)。
本发明的一个方式包含整数解码单元,其对于被输入的代码串,将K设为2以上的整数,从被输入的所述代码串中包含的1比特的代码(以下称为“代码A”),得到整数值0的2个至2K-1个中的预先确定的任意个数即L个的连续,通过从被输入的所述代码串中包含的K×x_n比特或者K×x_n+1比特的代码(以下称为“代码B”),得到基于0个至L-1个连续的整数值0、和1个0以外的整数值x_n的组,得到基于整数值x_n、n∈{1,2,...,N}的序列。
本发明的一个方式,是表示作为非负值的整数值x_n、n∈{1,2,...,N}的序列(以下,称为“整数序列”)的代码串的数据结构,将K设为2以上的整数,所述代码串在从所述整数序列得到所述代码串的编码装置、或者/以及从所述代码串得到所述整数序列的解码装置中使用的代码串,包含:作为与所述整数序列中包含的整数值0的2个至2K-1个中的预先确定的任意个数即L个的连续对应的码的1比特的代码(以下,称为“代码A”)、和作为与在所述整数序列中包含的、基于0个至L-1个连续的整数值0、和1个0以外的整数值x_n的组对应的代码的K×x_n比特或者K×x_n+1比特的代码(以下,称为“代码B”)。
【发明的效果】
按照本发明,即使是还包含不是零值的小的值并且大大偏向于小的值的整数值的序列、或在非专利文献2的技术中无法应对的程度的值偏向的整数值的序列,也能够以较少的平均比特数进行编码。而且,能够对那样的代码进行解码。
附图说明
图1是表示对于非负整数值的输入x的格伦布-赖斯代码的图。
图2是表示编码装置100(200,300)的结构的一例的方框图。
图3是表示编码装置100(200,300)的动作的一例的流程图。
图4是表示K=2时的代码树的一例的图。
图5是表示K=3时的代码树的一例的图。
图6是表示将K一般化时的代码树的一例的图。
图7是表示解码装置150(250,350)的结构的一例的方框图。
图8是表示解码装置150(250,350)的动作的一例的流程图。
图9A是表示K=2时的对应表的一例的图。
图9B是表示K=2时的对应表的一例的图。
图10A是表示K=3时的对应表的一例的图。
图10B是表示K=3时的对应表的一例的图。
图10C是表示K=3时的对应表的一例的图。
图10D是表示K=3时的对应表的一例的图。
图11是表示编码装置400(401,402,500,501,502,600)的结构的一例的方框图。
图12是表示编码装置400(401,402,500,501,502,600)的动作的一例的流程图。
图13是表示解码装置450(451,452,550,551,552,650)的结构的一例的方框图。
图14是表示解码装置450(451,452,550,551,552,650)的动作的一例的流程图。
【具体实施方式】
以下,详细地说明本发明的实施的方式。而且,对于具有相同的功能的结构部分附加相同的标号,省略重复说明。
<第一实施方式>
《编码装置》
参照图2以及图3,说明第一实施方式的编码装置100执行的编码方法的处理过程。第一实施方式的编码装置100如图2所示,包含整数编码单元110。第一实施方式的编码装置100通过执行图3所示的各步骤的处理,实现第一实施方式的编码方法。
在第一实施方式的编码装置100中被输入了非负的整数值的序列。作为该非负的整数值的序列,例如,也可以输入基于将由麦克风拾音的语音或者音乐等转换为数字信号得到的信号、将由摄像机拍摄的图像或影像转换为数字信号得到的信号等的信号的一部分或者全部,通过现有技术进行量化设为有限精度的值得到的整数值的绝对值的序列、或者基于将整数值作为x通过式(1)得到的x’的序列。
第一实施方式的编码装置100通过按照预先确定的规则使用预先确定的多个代码树,将非负的整数值的序列进行可变长度编码,对于比拉普拉斯分布偏向性大的分布的非负的整数值的序列,实现成为比格伦布-赖斯编码短的比特长的编码处理。这里,所谓代码树,指表示对输入的非负的整数值分配哪个代码的预先确定的规则的图表。以下,将对编码装置100输入的非负的整数值简称为“整数值”进行说明。
[整数编码单元110]
整数编码单元110中输入被输入到编码装置100中的整数值的序列中、基于每次N样本(N为自然数)的整数值的序列。将基于输入的整数值的序列设为整数序列x_1,x_2,…,x_N。整数编码单元110基于预先确定的或者通过未图示的部件输入的2以上的自然数即编码参数K,将整数序列x_1,x_2,…,x_N以使用了以下的代码树的编码处理进行编码得到代码,将得到的代码作为整数代码输出(S110)。以下,设整数序列x_1,x_2,…,x_N的各整数为x_n(n为序列中的样本号,n∈{1,2,...,N})进行说明。
[[用于编码处理的代码树]]
首先,例示用于整数编码单元110中的编码处理的代码树。
整数编码单元110中预先存储图4至图6中例示那样的2K-1个(2的K-1次方个)的代码树。图4是K=2时的代码树的例子,T(0)和T(1)分别为代码树。图5是K=3时的代码树的例子,T(0)至T(3)分别为代码树。图6是将K一般化时的代码树的例子,从T(0)至T(2K-1-1)分别为代码树。以下,将对T附加的括弧内的号码称为代码树号码。
[[代码树中的所输入的整数值和与该整数值对应的代码的关系]]
接着,说明各代码树中的被输入的整数值和与该整数值对应的代码之间的关系。
以位于各代码树的节点的右侧的三角包围的整数值与输入的整数值对应。而且,位于各代码树的边缘的左侧的比特值‘0’以及‘1’与分配给输入的整数值的代码的规则对应。该规则是,将位于从代码树的上端的节点至与输入的整数值对应的节点为止的边缘的左侧的比特值排列后的值作为分配给输入的整数值的代码而得到的规则。
2K-1个代码树中的一个代码树,是与图4至图6的T(0)对应的代码树,是与如下规则对应的代码树:作为与输入的整数值x_n对应的代码,得到比特数为K×x_n+1比特、最初的第1比特的比特值为‘1’、从第2比特至第K×x_n+1比特为止的比特值为‘0’的代码。而且,根据该代码树,在输入的整数值x_n为0的情况下,由于代码的比特数K×x_n+1为1比特,因此得到比特值为‘1’的1比特的代码。
2K-1个代码树中的上述以外的2K-1-1个代码树,与图4至图6的T(1)至T(2K-1-1)对应,是与如下规则对应的代码树:作为与输入的整数值x_n对应的代码,得到比特数为K×x_n比特、最初的第1比特的比特值为‘0’、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’、从第K+1比特至第K×x_n比特为止的K×(x_n-1)比特的比特值为‘0’、即从最后起的K×(x_n-1)比特的比特值为‘0’的代码。这里,从第2比特至第K比特的K-1比特是与2K-1-1个代码树各自一对一地对应的比特群。而且,根据这些代码树,在输入的整数值x_n为0的情况下,由于代码的比特数K×x_n为0比特,因此得不到代码。
例如,在图4的K=2的情况下的输入的整数值和与该整数值对应的代码的规则是如下这样的规则:在将输入的整数值0以代码树T(0)进行编码的情况下,作为与输入的整数值0对应的代码得到‘1’,在将输入的整数值1以代码树T(0)进行编码的情况下,作为与输入的整数值1对应的代码得到‘100’,在将输入的整数值2以代码树T(0)进行编码的情况下,作为与输入的整数值2对应的代码得到‘10000’,在将输入的整数值0以代码树T(1)进行编码的情况下,得不到与输入的整数值0对应的代码,在将输入的整数值1以代码树T(1)进行编码的情况下,作为与输入的整数值1对应的代码得到‘01’,在将输入的整数值2以代码树T(1)进行编码的情况下,作为与输入的整数值2对应的代码得到‘0100’。
[[使用多个代码树的规则]]
接着,说明使用多个代码树的规则。整数编码单元110中,还预先存储使用多个代码树的规则。
位于图4至图6的各代码树的节点的右侧的包围整数值的三角方向,与使用多个代码树的规则对应。
朝右的三角,表示在对输入的整数值的下一整数值进行编码时,使用右邻的代码树(代码树号码大1的代码树)的规则。而且,此时,设为位于最右的代码树(代码树号码最大的代码树)的右邻为位于最左的代码树(代码树号码最小的代码树)。而且,该规则最终是一例,只要是循环使用多个代码树的规则,则什么样的规则都可以。即,对于各代码树,是在朝右的三角时,在下一整数值的编码中使用不同的代码树的规则,对于全部的代码树,只要是在朝右的三角时,用于下一整数值的编码的代码树不重复的规则,则什么样的规则都可以。而且,在循环使用多个代码树的规则中,使用的代码树的最大个数为2K-1个。
朝下三角,表示在对输入的整数值的下一整数值进行编码时,使用代码树T(1)的规则。而且,该规则最终也是一例,在为朝下三角时,只要是对于各朝下三角将预先决定的任意一个代码树作为用于下一整数值的编码的代码树的规则,则什么样的规则都可以。例如,在为朝下三角时,也可以对于全部朝下三角将预先决定的任意一个相同的代码树作为用于下一整数值的编码的代码树的规则。而且,为了缩短平均比特数,在为朝下三角时,优选将与图4至图6的T(0)对应的代码树以外的代码树作为用于下一整数值的编码的代码树的规则。
而且,为了使平均比特数最短,在为朝右三角时,可以设为如下的规则:循环使用2K-1个全部的代码树,并且对于全部的代码树,在为朝下三角时,将在与图4至图6的T(0)对应的代码树中为朝右三角时用于下一整数值的编码的代码树,作为用于下一整数值的编码的代码树。
例如,使用图4的K=2的情况下的代码树的编码的规则是如下规则:在将输入的整数值0以代码树T(1)进行编码的情况下,得不到与输入的整数值0对应的代码,而将在对下一整数值进行编码时使用的代码树设为T(0),在对输入的整数值2以代码树T(0)进行编码的情况下,作为与输入的整数值2对应的代码得到‘10000’,将在对下一整数值进行编码时使用的代码树设为T(1)。
虽然在编码处理的最初使用多个代码树中的哪个代码树都可以,但是将哪个代码树用于编码处理的最初的规则,也作为使用多个代码树的规则而预先确定并存储。例如,在图4的K=2的情况中,在将整数序列x_1,x_2,…,x_N从整数值x_1起按顺序进行编码的情况下,既可以设为将整数值x_1以T(0)进行编码的规则,也可以设为将整数值x_1以T(1)进行编码的规则,但是预先确定并存储将T(0)和T(1)的哪一个用于整数值x_1的编码。
[[使用代码树的编码处理]]
整数编码单元110使用上述的多个代码树,按照使用多个代码树的上述的规则,将输入的整数序列x_1,x_2,…,x_N中包含的各整数值按照预先确定的顺序进行编码得到代码,并将得到的代码作为整数代码输出。例如,预先确定的顺序是序列中的样本号码顺序,在最初使用的代码树为T(0)的情况下,整数编码单元110进行的编码步骤如下述这样。
(编码步骤)
1.将样本号码n、代码树号码的初始值分别设为1、0。
2.直至n=N为止,反复以下的(i)~(iv)。
(i)如果代码树号码为0,则得到代码‘1’。
(ii)如果是整数值x_n=0,则将对代码树号码加上1后得到的值作为新的代码树号码。这时,在加上1后代码树号码变为2K-1的情况下,将0作为新的代码树号码。
(iii)如果是整数值x_n≠0,则得到基于1比特的‘0’和与代码树一对一地对应的对应的K-1比特的K比特的代码,进而得到K×(x_n-1)比特的代码‘0’,将1作为新的代码树号码。
(iv)将对n加上1得到的值作为新的n。
3.去除在通过1~2得到的代码中的最初得到的代码‘1’。
(或者不进行开始的1次的2.(i)操作。)
4.对通过1~3得到的代码的最后加上代码‘1’(末端代码)。
5.将通过1~4得到的代码作为整数代码输出。
而且,进行编码步骤中的3并不是必须的。在最初使用的代码树为T(0)的情况下,无论x_1的值为什么样的值,通过1~2得到的代码中的最初得到的代码都为‘1’。因此,即使编码装置100将去除了最初得到的代码‘1’的结果作为整数代码输出,如果对解码装置150所输入的整数代码的最初加上代码‘1’,则解码装置150也能够进行与编码装置100的整数编码单元110进行的编码处理对应的解码处理。由此,在编码步骤的3中就去除了最初得到的代码‘1’。但是,也可以未必需要进行编码步骤的3,而是不去除通过1~2得到的代码中的最初得到的代码‘1’。在该情况下,对应的解码装置150只要不进行在输入的整数代码的最初加上代码‘1’的处理即可,也可以不进行编码步骤中的3。
而且,通过从编码装置100向解码装置150的整数代码的传递方法,也可以不进行编码步骤中的4。解码装置150中的解码的步骤如后所述,但是为了解码装置150进行与整数编码单元110进行的编码处理对应的解码处理,需要解码装置150能够确定整数代码的末端。作为从编码装置100向解码装置150的整数代码的传递的结构,例如可以采用在编码装置100内或者编码装置100的后段中、将关于整数序列x_1,x_2,…,x_N得到的整数代码使用公知的分组化的方法存储在分组中传递给解码装置150的结构。在该情况下,由于在解码侧,采用在解码装置150内或者解码装置150的前段中从分组取出整数代码的结构,因此解码装置150能够确定整数代码的末端。因此,在这样的情况下,也可以不进行编码步骤中的4。作为从编码装置100向解码装置150传递整数代码的结构,有时也采用将在对于整数序列x_1,x_2,…,x_N得到的整数代码的后面连结了其它的代码后的代码存储在上述的分组中传递给解码装置150的结构、或者不进行上述的分组化而使在对于整数序列x_1,x_2,…,x_N得到的整数代码的后面连结其它的代码并传递给解码装置150的结构等。在这些结构中,若假设没有进行编码步骤中的4,在使后面连结的代码为‘0000’时等,则解码装置150会无法判别与第N个的整数值对应的代码到哪里为止,使在后面连结的代码从哪里开始。因此,在这些结构中,需要通过将预先确定的相同的N的值存储在编码装置100和解码装置150中等,解码装置150能够掌握整数代码是与N个整数值对应的代码的情况,并且还进行编码步骤中的4,解码装置150能够确定整数代码的末端。
而且,上述的说明的代码‘0’是2值的比特值中的其中一个的比特值、上述的说明的代码‘1’是2值的比特值中的另一个比特值的例子。即,当然,也可以取代上述的说明的代码‘0’使用代码‘1’,取代代码‘1’而使用代码‘0’。
[[编码处理的例子]]
作为编码处理的例子,说明K=2中最初使用的代码树为T(0)的情况下的、输入的整数序列x_1,x_2,x_3,x_4,x_5为0,0,2,0,0的情况下的编码处理。首先,由于开始的整数值x_1=0以T(0)进行编码,因此得到代码‘1’,由于将对代码树号码0加上1得到的值设为新的代码树号码,因此将用于下一整数值x_2=0的编码的代码树设为T(1)。由于下一整数值x_2=0以T(1)进行编码,因此得不到代码,将对代码树号码1加上了1得到的值设为代码树号码,但是由于加上了1后的代码树号码成为2K-1,因此,将0设为新的代码树号码,将用于下一个整数值x_3=2的编码的代码树设为T(0)。由于第3个的整数值x_3=2以T(0)进行编码,因此得到代码‘10000’,并且由于是将新的代码树号码设为1的规则,因此将用于下一整数值x_4=0的编码的代码树设为T(1)。由于第4个的整数值x_4=0以T(1)进行编码,因此什么代码也不追加,将代码树从T(1)向T(0)迁移。由于最后的整数值0以T(0)进行编码,因此得到代码‘1’。至此为止所得到的代码为‘1100001’,但是在进行上述的编码步骤的3,不进行上述的编码步骤的4的情况下,省略最初得到的代码‘1’,得到最终的整数代码‘100001’。
《解码装置》
参照图7以及图8,说明第一实施方式的解码装置150执行的解码方法的处理过程。如图7所示,第一实施方式的解码装置150包含整数解码单元160。第一实施方式的解码装置150通过执行图8所示的各步骤的处理,实现第一实施方式的解码方法。
在第一实施方式的解码装置150中,被输入第一实施方式的编码装置100输出的整数代码。第一实施方式的解码装置150,是将输入的整数代码,以按照与第一实施方式的编码装置100对应的预先确定的规则使用了与第一实施方式的编码装置100对应的预先确定的多个代码树的解码处理进行解码,得到非负的整数值的序列,将输入到第一实施方式的编码装置100的非负的整数值的序列本身复原的装置。以下,与上述的编码装置100的说明同样,将非负的整数值仅称为“整数值”进行说明。
[整数解码单元160]
整数解码单元160中,被输入在解码装置150中被输入的整数代码。整数解码单元160,基于与编码装置100的整数编码单元110使用的编码参数K相同的值的、且为预先确定的或者通过未图示的部件输入的2以上的自然数的编码参数K,将被输入的整数代码以使用了以下的代码树的解码处理进行解码,得到整数值的序列,输出得到的整数序列x_1,x_2,…,x_N(S160)。以下,设整数序列x_1,x_2,…,x_N的各整数为x_n(n为序列中的样本号码,n∈{1,2,...,N})进行说明。
用于解码处理的代码树,与第一实施方式的编码装置100的整数编码单元110使用的代码树相同,在整数解码单元160中预先存储图4至图6例示那样的2K-1个(2的K-1次方个)的代码树。解码处理中的代码树中的输入的代码和与该该代码对应的整数值之间的关系以及使用多个代码树的规则是如下规则:是与第一实施方式的编码装置100的整数编码单元110的编码处理中的规则对应,将第一实施方式的编码装置100的整数编码单元110的编码处理中的规则的“分配给输入的整数值的代码”换读为“输入的代码”,将“输入的整数值”换读为“分配给输入的代码的整数值”的规则,被预先存储在整数解码单元160中。而且,用于解码处理的参数K的值,是与第一实施方式的编码装置100的整数编码单元110使用的参数K相同的值,预先存储在整数解码单元160中。而且,在解码处理中最初使用哪个代码树的规则,也是与第一实施方式的编码装置100的整数编码单元110使用的规则相同的规则,预先存储在整数解码单元160中。
整数解码单元160使用上述的多个代码树,按照使用多个代码树的上述的规则,得到基于与输入的整数代码对应的整数值的列,将基于得到的整数值的列的各整数设为预先确定的顺序后的结果,得到作为整数序列x_1,x_2,…,x_N并输出。例如,在预先确定的顺序为序列中的样本号码顺序,最初使用的代码树为T(0)的情况下,整数解码单元160进行的解码步骤,例如如下述的解码步骤1或解码步骤2这样。
(解码步骤1-1)在不进行基于编码步骤4的末端代码的追加的情况下,即,解码装置150可确定整数代码的末端的情况下
1.在编码步骤3中去除了代码‘1’的情况下,在整数代码的最初追加代码‘1’。
2.将代码树号码的初始值设为0。
3.反复以下(i)~(ii),直到没有未读入的整数代码为止,如果没有了未读入的整数代码,则进至4。
(i)在与代码树号码对应的代码树中存在与读入的代码对应的代码的期间(即,直至与代码树号码对应的代码树中没有与读入的代码对应的代码的前一个比特为止),按顺序读入被输入的整数代码。
(ii)从与代码树号码对应的代码树,得到与读入的代码对应的代码所对应的整数值,按照对于该代码树的整数值的代码树的迁移的规则,得到新的代码树号码。
4.将基于由3的(ii)得到的整数值的序列作为整数序列x_1,x_2,…,x_N输出。
(解码步骤1-2)在进行编码步骤4的末端代码的追加的情况下,即,解码装置150无法确定整数代码的末端的情况下
1.在编码步骤3中去除了代码‘1’的情况下,在输入的代码串(基于与整数代码后续的其它代码的代码串)的最初追加代码‘1’。
2.将样本号码n、代码树号码的初始值分别设为1、0。
3.直至成为n=N为止,反复以下(i)~(ii)。
(i)在与代码树号码对应的代码树中存在与读入的代码对应的代码的期间(即,直至与代码树号码对应的代码树中没有与读入的代码对应的代码的前一个比特为止),按顺序读入被输入的代码串。
(ii)从与代码树号码对应的代码树,得到与读入的代码对应的代码对应的整数值,按照关于该代码树的整数值的代码树的迁移的规则,得到新的代码树号码,将对n加上1后的值设为新的n。
4.将基于由3的(ii)得到的整数值的序列作为整数序列x_1,x_2,…,x_N输出。
(解码步骤2)
1.在编码步骤4中未进行末端代码的追加的情况下,在输入的代码串的最后追加末端代码‘1’。而且,在编码步骤3中未去除代码‘1’的情况下,在输入的代码串的最初去除代码‘1’。
2.将样本号码n、代码树号码的初始值分别设为1、0。
3.直至变为n≧N为止,反复以下(i)~(v)。
(i)在K比特全部为代码‘0’的期间,将按顺序每次K比特地读取输入的代码串,将在其间读入的代码’0’的个数除以K得到的数设为L。
(ii)如果代码树号码为0,则得到整数值L。
(iii)如果代码树号码不为0,则得到整数值(L+1)。
(iv)如果输入的代码串的下一个的1比特为代码‘1’,则读取该1比特,得到(2K-1-1)个整数值0,将0设为新的代码树号码,将对n加上了2K-1后的值设为新的n。
(v)如果输入的代码串的下一个的1比特为代码‘0’,则读入包含该1比特的K比特,将与该K比特的代码对应的数设为新的代码树号码,得到(新的代码树号码-1)个整数值0,将对n加上了新的代码树号码后的值设为新的n。
4.在所得到的整数值多于N个的情况下,去除第N+1个的整数值以后。
[[解码处理的例子]]
作为解码处理的例子,说明K=2中在最初使用的代码树为T(0)的情况下的、将在上述的编码处理的例子中得到的整数代码‘100001’以上述的解码步骤1-1进行解码的情况下的解码处理。首先,在整数代码‘100001’的开头追加代码‘1’,将整数代码设为‘1100001’。接着,作为整数代码‘1100001’的最初的1比特的‘1’虽然有与代码树T(0)对应的代码,但是由于作为最初的2比特的‘11’没有与代码树T(0)对应的代码,因此读入作为整数代码的最初的1比特的‘1’,得到与‘1’对应的整数值0,将接下来使用的代码树设为T(1)。接着,由于作为整数代码的剩余的‘100001’的最初的1比特的‘1’没有与代码树T(1)对应的代码,因此也不读入最初的1比特,得到与0比特对应的整数值0,将接下来使用的代码树设为T(0)。接着,从作为整数代码的剩余的‘100001’的最初的1比特的‘1’到作为最初的5比特的‘10000’为止,虽然对应的代码存在于代码树T(0),但是,由于作为整数代码的剩余的‘100001’的最初的6比特的‘100001’对应的代码不存在于代码树T(0)中,因此读入作为整数代码的剩余的‘100001’的最初的5比特的‘10000’,得到与‘10000’对应的整数值2,将接下来使用的代码树设为T(1)。接着,由于整数代码的剩余的‘1’对应的代码不存在于代码树T(1)中,因此也不读入最初的1比特,而得到与0比特对应的整数值0,将接下来使用的代码树设为T(0)。接着,整数代码的剩余的‘1’对应的代码存在于代码树T(0),在该‘1’以后没有未读入的整数代码,因此得到与‘1’对应的整数值0,将基于通过这些处理得到的整数值0,0,2,0,0的序列作为整数序列x_1,x_2,x_3,x_4,x_5输出。
<发明的原理的说明>
这里说明本发明的原理。
根据第一实施方式的编码装置100,能够对全部的非负整数值分配代码,通过第一实施方式的解码装置150对该代码进行解码,能够将非负整数值本身复原。如图4至图6所示那样,与非负整数值x_n对应的代码为K×x_n比特或者K×x_n+1比特。由此,在第一实施方式中使用的本发明的代码,是对于以下的偏向性大的按照单侧拉普拉斯分布的非负整数值的序列近似地提供最佳的期望比特长的代码,是能够使相对于大大偏向于小的值的非负整数值的序列的平均比特数比格伦布-赖斯代码少的代码。
根据以式(3)所示的格伦布-赖斯代码为最佳的分布p(x,2r)、和以式(4)所示的本发明的代码为最佳的分布p(x,1/K)的对应关系,可知本发明的编码参数K的倒数的对数与赖斯参数r相对应。而且,由于本发明的编码参数K为正的整数值,因此编码参数K的倒数的对数成为负值,所以编码参数K可以解释作为与扩展为负值的赖斯参数对应的参数。即,通过进行对非负整数值的序列最佳的赖斯参数的估计,能够估计分配给非负整数值的序列的本发明的代码中的最佳的参数K。
在第一实施方式的编码装置100和解码装置150中使用的本发明的代码树中的整数值和与该整数值对应的代码之间的关系、以及使用多个代码树的规则,不仅将与非负整数值x_n对应的代码设为K×x_n比特或者K×x_n+1比特,还考虑设为可解码的代码来进行设计。具体地说,设置如下这样的制约:对于整数值0的2个至2K-1个中的预先确定的任意个数的连续,分配作为1比特的代码的‘1’,对于整数值0的0个至预先确定的最大2K-1-1个连续和其后续的一个非负整数值x_n≠0,分配在最初的K比特中至少包含1比特的比特值‘1’、并且以后的比特值为‘0’的代码。通过设置该制约,在解码装置150中读入与由多个整数值构成的整数序列对应的整数代码时,会知道在K比特中包含比特值‘1’的部分中,包含整数代码中的某一代码和后一个的代码的边界。而且,为了满足上述的制约,对于整数值0的0个至预先确定的最大2K-1-1个连续和其后续的一个非负整数值x_n的代码的比特数不仅是K×x_n比特,还设为K×x_n比特或者K×x_n+1比特。
<第二实施方式>
在第一实施方式中,说明了使用预先确定的代码树实现本发明的编码和解码的方式,但是即使是取代预先确定的代码树,使用预先确定的对应表,也能够实现与第一实施方式等效的编码处理和解码处理。将使用该预先确定的对应表的方式作为第二实施方式进行说明。
《编码装置》
参照图2以及图3,说明第二实施方式的编码装置200执行的编码方法的处理过程。第二实施方式的编码装置200如图2所示,与第一实施方式的编码装置100同样,包含整数编码单元210。第二实施方式的编码装置200与第一实施方式的编码装置100同样,通过执行图3所示的各步骤的处理,实现第二实施方式的编码方法。
在第二实施方式的编码装置200中,与第一实施方式同样,被输入非负的整数值的序列。第二实施方式的编码装置200通过遵照预先确定的对应表,将非负的整数值的序列进行可变长度编码,对于比拉普拉斯分布偏向性大的分布的非负的整数值的序列,实现成为比格伦布-赖斯编码短的比特长的编码处理。以下,将被输入到编码装置200的非负的整数值仅称为“整数值”进行说明。
[整数编码单元210]
整数编码单元210中被输入在编码装置200中所输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N。第二实施方式的整数编码单元210基于与作为2以上的自然数的编码参数K对应地预先创建的、在整数编码单元210内存储的对应表,对输入的整数序列x_1,x_2,…,x_N进行编码得到代码,将得到的代码作为整数代码输出(S210)。
[[用于编码处理的对应表]]
预先存储的对应表,存储了基于零值的连续(0个以上的连续)和一个非零值的组合的整数值的部分序列、和与该部分序列对应的代码的对应关系的规则。在图9(A,B)和图10(A,B,C,D)中分别举出K=2和K=3中的对应表的例子。在对应表中存储的规则,是如下的规则:对于基于2K-1个连续的零值的部分序列分配比特值为‘1’的1比特的代码,对于除此以外的部分序列、即基于0个至2K-1-1个连续的零值和其后续的一个非零值x_n的部分序列,对于各个零值的连续和非零值x的组合分配K×x_n比特或者K×x_n+1比特的代码。
在例示的对应表中,是如下规则:对于基于0个至2K-1-1个连续的零值和其后续的一个非零值x_n的部分序列的各个部分序列,分配在开始的K比特内至少存在1比特的‘1’、剩余的K×(x_n-1)比特或者K×(x_n-1)+1比特全部为‘0’的代码。更详细而言,在该规则中,对于基于0个至2K-1-1个连续的零值和一个非零值的部分序列,分配第1比特的比特值为‘1’、第2比特至第K比特为止的比特值全部为‘0’、第K+1比特至第K×x_n+1比特为止的比特值全部为‘0’的K×x_n+1比特的代码、或者分配第1比特的比特值为‘0’、第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’、第K+1比特至第K×x_n比特为止的比特值全部为‘0’的K×x_n比特的代码。更详细而言,在该规则中,基于K×x_n+1比特的代码中的第1比特的比特值为‘1’、第2比特至第K+1比特目为止为‘0’、即从第1比特至第K+1比特为止的部分代码1种类、和K×x_n比特的代码中的第1比特的比特值为‘0’、第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’、即第1比特至第K比特为止的部分代码2K-1-1种类的2K-1种的部分代码、和从0个至2K-1-1个零值的连续数2K-1种类一对一地对应。
[[使用了对应表的编码处理]]
整数编码单元210使用上述的对应表,将所输入的整数序列x_1,x_2,…,x_N中包含的各整数值按照预先确定的顺序编码得到代码,将得到的代码作为整数代码输出。例如,在预先确定的顺序为序列中的样本号码顺序的情况下,整数编码单元210进行的编码步骤如下。
(编码步骤)
1.将样本号码n设为1。
2.直至成为n=N为止,重复以下的(i)~(ii)。
(i)在x_n以后的2K-1个整数值中存在非零值的情况下,从代码表得到与至x_n以后的最初的非零值为止的部分序列对应的代码,将对n加上至x_n以后的最初的非零值为止的样本数得到的结果设为新的n。
(ii)在x_n以后的2K-1个整数值全部为零值的情况下,从代码表得到与x_n以后的2K-1个整数值的部分序列对应的代码,将对n加上2K-1后的结果设为新的n。
3.在通过2得到的代码的最后加上代码‘1’(末端代码)。
4.将通过3得到的代码作为整数代码输出。
而且,与第一实施方式同样,通过从编码装置200至解码装置250的整数代码的传递方法,也可以不进行加上末端代码的处理(编码步骤中的3)。
而且,通过第二实施方式的编码装置200的整数编码单元210中使用了图9(A,B)和图10(A,B,C,D)的编码处理得到的代码,分别与第一实施方式的编码装置100的整数编码单元110中使用图4和图5的代码树的编码处理中、在将最初使用的代码树设为了T(1)的情况下得到的代码一致。而且,在第二实施方式的编码装置200的整数编码单元210中,在使用图9(A,B)和图10(A,B,C,D)各自进行编码时,只要在输入的整数序列x_1,x_2,…,x_N的开头追加(2K-1-1)个零值之后进行编码,并去除位于得到的整数代码的最初的代码‘1’,就与在第一实施方式的编码装置100的整数编码单元110中使用图4和图5各自的代码树的编码处理中,将最初使用的代码树设为T(0)的情况下得到的代码一致。这样,第二实施方式的编码装置200的整数编码单元210中的使用了对应表的编码处理,与第一实施方式的编码装置100的整数编码单元110中使用了代码树的编码处理是等效的。
《解码装置》
参照图7以及图8,说明第二实施方式的解码装置250执行的解码方法的处理过程。第二实施方式的解码装置250如图7所示,与第一实施方式的解码装置150同样,包含整数解码单元260。第二实施方式的解码装置250与第一实施方式的解码装置150同样,通过执行图8所示的各步骤的处理,实现第二实施方式的解码方法。
在第二实施方式的解码装置250中,与第一实施方式的解码装置150同样,被输入第二实施方式的编码装置200输出的整数代码。第二实施方式的解码装置250,对于输入的整数代码,通过在使用了第二实施方式的编码装置200的整数编码单元210中存储的对应表和对应表的解码处理进行解码得到非负的整数值的序列,将输入到第二实施方式的编码装置200的非负的整数值的序列本身进行还原。以下,与上述的编码装置的说明同样,将非负的整数值仅称为“整数值”进行说明。
[整数解码单元260]
在整数解码单元260中被输入在解码装置250中输入的整数代码。整数解码单元260基于预先创建并存储在整数解码单元260内的、与编码参数K对应的预先创建的对应表,即与在编码装置200的整数编码单元210内预先存储并在整数编码单元210中使用的对应表相同的对应表,对输入的整数代码进行解码,得到整数序列x_1,x_2,…,x_N并输出(S260)。
更具体地说,整数解码单元260,将从最初至存在与对应表对应的代码的部分为止,读入在输入的整数代码中的还未读入的代码部分,从对应表中得到与读入的代码对应的整数的部分序列的处理,从被输入的整数代码的最初到最后为止反复进行,将由此得到的整数的部分序列汇总后的序列作为整数序列x_1,x_2,…,x_N输出。通过该解码处理,能够得到与第一实施方式的解码装置150的整数解码单元160中使用图4和图5各自的代码树的解码处理中、将最初使用的代码树设为T(1)的情况相同的整数序列x_1,x_2,…,x_N。
而且,在编码装置200的整数编码单元210中,在输入的整数序列x_1,x_2,…,x_N的开头追加(2K-1-1)个零值之后进行编码,进行将位于得到的整数代码的最初的代码‘1’去除的理的情况下,整数解码单元260在被输入的整数代码的开头追加了代码‘1’后,基于上述对应表在上述的解码处理中得到各部分序列,省略了开始得到的(2K-1-1)个零值后,将汇总了部分序列后的整数序列x_1,x_2,…,x_N输出即可。通过该解码处理,能够得到与第一实施方式的解码装置150的整数解码单元160中的使用图4和图5各自的代码树的解码处理中、将最初使用的代码树设为了T(0)的情况相同的整数序列x_1,x_2,…,x_N。这样,第二实施方式的解码装置250的整数解码单元260中的使用了对应表的解码处理,是与第一实施方式的解码装置150的整数解码单元160中的使用了代码树的解码处理等效的。
从以上可知,也可以将通过第一实施方式的编码装置100在使用了代码树的编码处理中得到的整数代码,在通过第二实施方式的解码装置250使用了与该编码处理对应的对应表的解码处理中进行解码,得到整数序列x_1,x_2,…,x_N,或者将通过第二实施方式的编码装置200在使用了对应表的编码处理中得到的整数代码,在通过第一实施方式的解码装置150使用了与该编码处理对应的代码树的解码处理中进行解码,得到整数序列x_1,x_2,…,x_N。
<第三实施方式>
在第一实施方式以及第二实施方式中,从使用预先确定的代码树或者预先确定的对应表进行编码解码的过程的侧面,说明了实现本发明的编码和解码的方式。在第三实施方式中,从通过这些过程得到的代码或整数值的序列这样的数据的侧面,说明实现本发明的编码和解码的方式。
《编码装置》
参照图2以及图3,说明第三实施方式的编码装置300执行的编码方法的处理过程。第三实施方式的编码装置300如图2所示,与编码装置100或编码装置200同样,包含整数编码单元310。第三实施方式的编码装置300与编码装置100或编码装置200同样,通过执行图3所示的各步骤的处理,实现第三实施方式的编码方法。
在第三实施方式的编码装置300中,与编码装置100或编码装置200同样,被输入非负的整数值的序列(以下,称为“整数序列”)。以下,将被输入到编码装置300的非负的整数值仅称为“整数值”进行说明。
[整数编码单元310]
整数编码单元310,作为与在整数序列中包含的整数值0的2个至2K-1个中的预先确定的任意的个数的连续对应的代码,得到1比特的代码(以下,称为“代码A”),作为与基于整数序列中包含的、0个至2K-1-1个连续的整数值0、和1个0以外的整数值x_n的组对应的代码,得到K×x_n比特或者K×x_n+1比特的代码(以下,称为“代码B”)(S310)。其中,K表示为2以上的自然数的编码参数。具体地说,将每次N样本的整数序列x_1,x_2,…,x_N,使用在第一实施方式中说明的代码树或在第二实施方式中说明的对应表进行编码,得到代码A或代码B。这里,若将与代码A对应的整数值0的连续中所包含的0的个数设为L(2≦L≦2K-1),则在S310中得到的代码B,为与整数值0的0个至L-1个、即预先确定的最大2K-1-1个连续和其后续的一个0以外的整数值x_n对应的K×x_n比特或者K×x_n+1比特的代码。
而且,这里,假设比特值“x”为比特值“1”、比特值“y”为比特值“0”,代码A是比特值为“x”的1比特的代码(参照图9B,图10D),代码B在从第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”,并且从最后起的K×(x_n-1)比特为比特值“y”(参照图9A以及图9B,图10A~图10D)。而且,如前述那样,也可以设为比特值“x”为比特值“0”,比特值“y”为比特值“1”。
进而,关于代码B,更详细而言,在整数序列中的整数值0的0个至2K-1-1个的2K-1种类的连续个数、和以下的2K-1种类的部分代码之间存在一对一的对应关系
(代码B的部分代码)
(1)代码B为K×x_n+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的的比特值为“y”的、1种类的部分代码
(2)代码B为K×x_n比特时的、由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的、2K-1-1种类的部分代码
《解码装置》
参照图7以及图8,说明第三实施方式的解码装置350执行的解码方法的处理过程。第三实施方式的解码装置350如图7所示,与解码装置150或解码装置250同样,包含整数解码单元360。第三实施方式的解码装置350与解码装置150或解码装置250同样,通过执行图8所示的各步骤的处理,实现第三实施方式的解码方法。
在第三实施方式的解码装置350中,与解码装置150或解码装置250同样,被输入第三实施方式的编码装置300输出的代码串。以下,与前述的编码装置的说明同样,将非负的整数值仅称为“整数值”进行说明。
[整数解码单元360]
整数解码单元360从在所输入的代码串中包含的1比特的代码(以下称为“代码A”),得到整数值0的2个至2K-1个中的预先确定的任意个数的连续,从在所输入的代码串中包含的K×x_n比特或者K×x_n+1比特的代码(以下,称为“代码B”)中,得到基于0个至2K-1-1个连续的整数值0、和1个0以外的整数值x_n的组(S360)。其中,K表示作为2以上的自然数的编码参数。具体地说,对于所输入的代码串中包含的代码,使用在第一实施方式中说明的代码树或在第二实施方式中说明的对应表进行解码,得到与代码A或代码B对应的上述整数值的序列。这里,如果将从代码A得到的整数值0的连续中所包含的0的个数设为L(2≦L≦2K -1),则在S360中从代码B可得到的整数值0的连续中所包含的0的个数成为从0个至L-1个。
而且,这里,作为比特值“x”为比特值“1”、比特值“y”为比特值“0”,代码A是比特值为“x”的1比特的代码(参照图9B,图10D),代码B在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”,并且从最后起的K×(x_n-1)比特为比特值“y”(参照图9A以及图9B,图10A~图10D)。而且,也可以与编码装置300同样,比特值“x”为比特值“0”,比特值“y”为比特值“1”。
整数解码单元360通过进行以下的两个处理,能够确定在所输入的代码串中包含的代码A和代码B。具体地说,进行整数解码单元360从所输入的代码串的最初开始按顺序将所输入的代码串每次连续的K比特(以下,称为“K比特串”)地读入;和所读入的K比特串是包含“y”的比特串时,识别为包含该“y”的K比特串的紧跟前的比特是所述代码A或者所述代码B的末端的比特。
进而,对于代码B,更详细而言,以下的2K-1种类的部分代码、和基于通过整数解码单元360得到的整数值的序列中的整数值0的0个至2K-1-1个的2K-1种类的连续个数之间,存在一对一的对应关系。
(代码B的部分代码)
(1)代码B为K×x_n+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码
(2)代码B为K×x_n比特时的、由从该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的、2K-1-1种类的部分代码
《代码串的数据结构》
说明第三实施方式的编码装置以及解码装置处理的代码串的数据结构,即作为第一实施方式以及第二实施方式的编码装置从整数值的序列中得到的代码串、且为第一实施方式以及第二实施方式的解码装置为了得到整数值的序列而使用的代码串的数据结构。
[代码串的数据结构]
表示作为非负值的整数值的序列(以下称为“整数序列”)的代码串,在从整数序列得到代码串的编码装置或从代码串得到整数序列的解码装置中被使用。
代码串的数据结构,包含:作为与整数序列中包含的整数值0的2个至2K-1个中的预先确定的任意的个数的连续对应的代码的1比特的代码(以下,称为“代码A”)、和作为与基于在整数序列包含的、0个至2K-1-1个连续的整数值0、和1个0以外的整数值x_n的组对应的代码的K×x_n比特或者K×x_n+1比特的代码(以下,称为“代码B”)。其中,K表示作为2以上的自然数的编码参数。这里,如果将与代码A对应的整数值0的连续中包含的0的个数设为L(2≦L≦2K-1),则代码B是,与整数值0的0个至L-1个、即预先确定的最大2K-1-1个连续和其后续的一个0以外的整数值x_n对应的K×x_n比特或者K×x_n+1比特的代码。
而且,这里,假设比特值“x”为比特值“1”、比特值“y”为比特值“0”,代码A是比特值为“x”的1比特的代码(参照图9B,图10D),代码B在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”,并且从最后起的K×(x_n-1)比特是比特值为“y”(参照图9A以及图9B,图10A~图10D)。而且,如前述那样,也可以设为比特值“x”为比特值“0”,比特值“y”为比特值“1”。
进而,对于代码B,更详细而言,在整数序列中的整数值0的0个至2K-1-1个2K-1种类的连续个数、和以下的2K-1种类的部分代码之间存在一对一的对应关系。
(代码B的部分代码)
(1)代码B为K×x_n+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码
(2)代码B为K×x_n比特时的、由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”,第2比特至第K比特的K-1比特中的至少1比特的比特值为“x”的、2K -1-1种类的部分代码
根据本实施方式的发明,即使是还包含不是零值的小的值且大大偏向于小的值的整数值的序列、在非专利文献2的技术中值偏向至无法应对的程度的整数值的序列,也能够以较少的平均比特数进行编码。而且,能够对那样的代码进行解码。
<第四实施方式>
如上述那样,用于本发明的代码的编码参数K,其倒数的对数与格伦布-赖斯代码中的赖斯参数对应,本发明的代码能够作为相对于负值的赖斯参数的格伦布-赖斯代码来解释。因此,基于以往的最佳的赖斯参数的估计法,对于基于所输入的整数值的序列的部分序列求出最佳的编码参数K,将使用了求出的编码参数K的第一实施方式至第三实施方式的整数编码单元的处理与格伦布-赖斯编码组合,对所输入的整数值的序列进行编码也可以,进行与该编码对应的解码也可以。将该方式作为第四实施方式进行说明。
《编码装置》
参照图11以及图12,说明第四实施方式的编码装置400执行的编码方法的处理过程。第四实施方式的编码装置400如图11所示,包含参数决定单元420和整数编码单元410。第四实施方式的编码装置400通过执行图12所示的各步骤的处理,实现第四实施方式的编码方法。
在第四实施方式的编码装置400中,与第一实施方式至第三实施方式同样,被输入非负的整数值的序列。第四实施方式的编码装置400中被输入的非负的整数值的序列,每次N样本地被输入到参数决定单元420和整数编码单元410。即,第四实施方式的编码装置400例如将由麦克风拾音的语音或音乐等转换为数字信号进行量化,将基于得到的整数值的绝对值的序列等的整数值的序列对基于N样本的每个帧进行编码。
以下,将在本实施方式的编码装置中输入的非负的整数值仅称为“整数值”进行说明。
[参数决定单元420]
参数决定单元420中,被输入在编码装置400中被输入的整数值的序列的中的、每次N样本的整数序列x_1,x_2,…,x_N。参数决定单元420基于所输入的整数序列x_1,x_2,…,x_N,得到与该整数序列对应的赖斯参数r和作为表示该参数的代码的参数代码并输出(S420)。参数代码对赖斯参数进行编码得到,使得解码装置450通过对该参数代码进行解码能够得到参数决定单元420决定的赖斯参数r即可。
参数决定单元420例如使用在被输入的整数序列x_1,x_2,…,x_N中包含的各整数值,通过式(5)得到赖斯参数r。
在式(5)中求的赖斯参数r,是将对于整数序列x_1,x_2,…,x_N通过式(2)估计的格伦布-赖斯编码时的总比特长的估计值进行最小化的值。
然后,参数决定单元420例如将通过式(5)得到的赖斯参数r进行标量量化得到代码,将得到的代码作为参数代码输出,并将与该参数代码对应的赖斯参数r的量化值作为赖斯参数r输出。
[整数编码单元410]
在整数编码单元410中,被输入在编码装置400中所输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N、和参数决定单元420输出的赖斯参数r。整数编码单元410在赖斯参数r为非负值的情况下,通过将赖斯参数r的小数第一位进行四舍五入等,将赖斯参数r舍入成整数值后,对于整数序列x_1,x_2,…,x_N进行基于整数值的赖斯参数r的格伦布-赖斯编码,将通过格伦布-赖斯编码得到的代码作为整数代码输出,在赖斯参数r为负值的情况下,从赖斯参数r通过K=2-r得到K的值,通过将得到的K的值的小数第一位进行四舍五入等,将K的值舍入成为整数值,从而得到编码参数K,使用得到的编码参数K,通过与第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理,得到整数代码并输出(S410)。而且,在编码参数K为1和2之间的值的情况下,例如使舍入后的整数值为2即可。
《解码装置》
参照图13以及图14,说明第四实施方式的解码装置450执行的解码方法的处理过程。第四实施方式的解码装置450如图13所示,包含参数解码单元470和整数解码单元460。第四实施方式的解码装置450通过执行图14所示的各步骤的处理,实现第四实施方式的解码方法。
第四实施方式的解码装置450中被输入第四实施方式的编码装置400输出的整数代码、以及参数代码。在解码装置450中输入的整数代码以及参数代码,对于与整数值的序列的N样本对应的每个代码,被输入到参数解码单元470和整数解码单元460。即,解码装置450对于与编码装置400相同的每个帧进行解码处理。
[参数解码单元470]
参数解码单元470中,被输入在解码装置450中被输入的参数代码。参数解码单元470通过与参数决定单元420得到参数代码对应的解码处理,对参数代码进行解码,得到赖斯参数r并输出(S470)。参数解码单元470例如通过与编码装置400的参数决定单元420进行的标量量化对应的解码处理,得到与参数代码对应的赖斯参数r的量化值作为赖斯参数r并输出。
[整数解码单元460]
整数解码单元460中,被输入解码装置450中所输入的整数代码、参数解码单元470输出的赖斯参数r。整数解码单元460在赖斯参数r为非负值的情况下,通过与编码装置400的整数编码单元410进行的方法相同的方法将于赖斯参数r舍入成整数值后,对于整数代码进行基于赖斯参数r的格伦布-赖斯解码,得到整数序列x_1,x_2,…,x_N并输出,在赖斯参数r为负值的情况下,以与第四实施方式的整数编码单元410相同的处理将赖斯参数r变换为编码参数K而得到、即从赖斯参数r通过K=2-r得到K的值,通过与编码装置400的整数编码单元410进行的方法相同的方法,将K的值舍入成整数值,从而得到编码参数K,使用得到的编码参数K,通过与第一实施方式至第三实施方式的整数解码单元的任一处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出(S460)。
<第四实施方式的变形例1>
在第四实施方式中,进行了与格伦布-赖斯编码/解码组合了的编码/解码处理,但是也可以不与格伦布-赖斯编码/解码组合。将不与格伦布-赖斯编码/解码组合的方式作为第四实施方式的变形例1进行说明。编码装置401的参数决定单元421和解码装置451的参数解码单元471的动作与第四实施方式相同,编码装置401的整数编码单元411和解码装置451的整数解码单元461的动作与第四实施方式不同。
[整数编码单元411]
整数编码单元411中,被输入在编码装置401中被输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N、和参数决定单元421输出的赖斯参数r。整数编码单元411在赖斯参数r为非负值的情况下,使用2作为编码参数K,通过与从第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理得到整数代码并输出,在赖斯参数r为负值的情况下,从赖斯参数r通过K=2-r得到K的值,通过将得到的K的值的小数第一位进行四舍五入等,将K的值舍入成整数值,从而得到编码参数K,使用得到的编码参数K,通过与第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理得到整数代码并输出(S411)。而且,在编码参数K为1和2之间的值的情况下,例如使舍入后的整数值为2即可。
[整数解码单元461]
整数解码单元461中,被输入在解码装置451中被输入的整数代码、和参数解码单元471输出的赖斯参数r。整数解码单元461,在赖斯参数r为非负值的情况下,将2用作编码参数K,通过与第一实施方式至第三实施方式的整数解码单元的任一处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出,在赖斯参数r为负值的情况下,以与第四实施方式的整数编码单元410相同的处理,将赖斯参数r变换为编码参数K而得到、即从赖斯参数r通过K=2-r得到K的值,通过与编码装置401的整数编码单元411进行的方法相同的方法,将K的值舍入成整数值,从而得到编码参数K,使用得到的编码参数K,通过与第一实施方式至第三实施方式的整数解码单元的任一处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出(S461)。
<第四实施方式的变形例2>
在第四实施方式中,设为在整数编码单元410中赖斯参数r为负值的情况下,从赖斯参数r得到编码参数K的结构,但是也可以设为在参数决定单元420中赖斯参数r为负值的情况下从整数序列直接得到编码参数K的结构。将该方式作为第四实施方式的变形例2,说明与第四实施方式不同的部分。
[参数决定单元422]
第四实施方式的参数决定单元420是与赖斯参数的值无关地、一定输出赖斯参数和与该赖斯参数对应的参数代码的结构,但是第四实施方式的变形例2的参数决定单元422,在赖斯参数r为非负值的情况下,输出赖斯参数r和与该赖斯参数r对应的参数代码,在赖斯参数r为负值的情况下,通过后述的式(6),从整数序列得到编码参数K,输出编码参数K和与该编码参数K对应的参数代码(S422)。此时,参数代码,设为对应的解码装置452能够唯一地确定赖斯参数r的值和编码参数K的值的代码即可。例如,通过将在对赖斯参数r进行编码得到的代码之前附加1比特的代码‘1’后的结果作为参数代码,将在对编码参数K进行编码得到的代码之前附加1比特的代码‘0’后的结果设为参数代码等,只要在分配给赖斯参数r的参数代码的代码群、和分配给编码参数K的代码群中不包含相同的代码即可。
[整数编码单元412]
整数编码单元412中,被输入在编码装置402中被输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N、和参数决定单元422输出的赖斯参数r或者编码参数K。整数编码单元412在被输入了赖斯参数r的情况下,将赖斯参数r舍入成为整数值,对于整数序列x_1,x_2,…,x_N,进行基于整数值的赖斯参数r的格伦布-赖斯编码,将通过格伦布-赖斯编码得到的代码作为整数代码输出,在被输入了编码参数K的情况下,将编码参数K舍入成整数值,使用整数值的编码参数K,通过与从第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理,得到整数代码并输出(S412)。而且,在编码参数K为1和2之间的值的情况下,例如使舍入后的整数值为2即可。
[参数解码单元472]
第四实施方式的参数解码单元470是对参数代码进行解码得到赖斯参数的单元,但是第四实施方式的变形例2的参数解码单元472对参数代码进行解码,得到赖斯参数r或者编码参数K并输出(S472)。
[整数解码单元462]
整数解码单元462中,被输入在解码装置452中被输入的整数代码、和参数解码单元472输出的赖斯参数r或者编码参数K。整数解码单元462在被输入了赖斯参数r的情况下,通过将赖斯参数r利用与编码装置402的整数编码单元412进行的方法相同的方法舍入成为整数值后,对于整数代码,进行基于整数值的赖斯参数r的格伦布-赖斯解码,得到整数序列x_1,x_2,…,x_N并输出,在被输入了编码参数K的情况下,利用与编码装置402的整数编码单元412进行的方法相同的方法将编码参数K舍入成为整数值后,使用整数值的编码参数K,通过与第一实施方式至第三实施方式的整数解码单元的任一处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出(S462)。
<第五实施方式>
在第四实施方式的编码装置中,首先求出赖斯参数r,从求出的赖斯参数r求出编码参数K,但是,也可以通过对本发明的代码为最佳的分布p(x,1/K)估计似然的K,从输入的整数值的序列直接估计编码参数K。在该情况下,格伦布-赖斯代码可以解释为基于取1以下的值的K的本发明的代码。因此,从基于所输入的整数值的序列的部分序列直接求出最佳的编码参数K,将使用了求出的编码参数K的第一实施方式至第三实施方式的整数编码单元的处理与格伦布-赖斯编码组合,对输入的整数值的序列进行编码也可以,进行与该编码对应的解码也可以。将该方式作为第五实施方式进行说明。
《编码装置》
参照图11以及图12,说明第五实施方式的编码装置500执行的编码方法的处理过程。第五实施方式的编码装置500如图11所示,包含参数决定单元520和整数编码单元510。第五实施方式的编码装置500通过执行图12所示的各步骤的处理,实现第五实施方式的编码方法。
第五实施方式的编码装置500中与第一实施方式至第四实施方式同样,被输入非负的整数值的序列。被输入到第五实施方式的编码装置500的非负的整数值的序列每次N样本地输入到参数决定单元520和整数编码单元510。即,第五实施方式的编码装置500例如将由麦克风拾音得到的语音或音乐等变换为数字信号进行量化,将基于得到的整数值的绝对值的序列等的整数值的序列对于基于N样本的每个帧进行编码。
以下,将被输入到本实施方式的编码装置的非负的整数值仅称为“整数值”进行说明。
[参数决定单元520]
参数决定单元520中,被输入在编码装置500中所输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N。参数决定单元520基于被输入的整数序列x_1,x_2,…,x_N,得到与该整数序列对应的编码参数K和作为表示该参数的代码的参数代码并输出(S520)。参数代码对编码参数K进行编码得到,使得通过解码装置550对该参数代码进行解码,能够得到参数决定单元520决定的编码参数K即可。
参数决定单元520例如使用在所输入的整数序列x_1,x_2,…,x_N中包含的各整数值,通过式(6)得到编码参数K。基于式(4),求出相对于分布p(x,1/K)的整数序列x_1,x_2,…,x_N的对数似然性,得到如下式那样将对数似然性进行最大化的编码参数K并输出。
式(6)中求出的编码参数K,是将关于整数序列x_1,x_2,…,x_N的相对于基于式(4)的分布p(x,1/K)的对数似然性进行最大化的值。
然后,参数决定单元520例如将通过式(6)得到的编码参数K进行标量量化得到代码,将得到的代码作为参数代码输出,并将与该参数代码对应的编码参数K的量化值作为编码参数K进行输出。
[整数编码单元510]
整数编码单元510中,被输入在编码装置500中被输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N、和参数决定单元520输出的编码参数K。整数编码单元510,在编码参数K为1以下的情况下,从编码参数K通过r=-log2K得到r的值,通过将得到的r的值的小数第一位进行四舍五入等,将r的值舍入成为整数值,从而得到赖斯参数r,使用得到的赖斯参数r,对整数序列x_1,x_2,…,x_N进行基于赖斯参数r的格伦布-赖斯编码,将通过格伦布-赖斯编码得到的代码作为整数代码输出,在编码参数K大于1的情况下,通过将编码参数K的小数第一位进行四舍五入等,将K的值舍入成为整数值后,使用整数值的编码参数K,通过与第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理,得到整数代码并输出(S510)。而且,在编码参数K为1和2之间的值的情况下,例如使舍入后的整数值为2即可。
《解码装置》
参照图13以及图14,说明第五实施方式的解码装置550执行的解码方法的处理过程。第五实施方式的解码装置550如图13所示,包含参数解码单元570和整数解码单元560。第五实施方式的解码装置550通过执行图14所示的各步骤的处理,实现第五实施方式的解码方法。
第五实施方式的解码装置550中,被输入第五实施方式的编码装置500输出的整数代码、以及参数代码。被输入到解码装置550的整数代码以及参数代码,对于与整数值的序列的N样本对应的每个代码,被输入到参数解码单元570和整数解码单元560。即,解码装置550对于与编码装置500相同的每个帧进行解码处理。
[参数解码单元570]
参数解码单元570中,被输入在解码装置550中被输入的参数代码。参数解码单元570通过与参数决定单元520得到参数代码对应的解码处理,对参数代码进行解码,得到编码参数K并输出(S570)。参数解码单元570例如通过与编码装置500的参数决定单元520进行的标量量化对应的解码处理,得到与参数代码对应的编码参数K的量化值作为编码参数K并输出。
[整数解码单元560]
整数解码单元560中,被输入在解码装置550中被输入的整数代码、和参数解码单元570输出的编码参数K。整数解码单元560在编码参数K为1以下的情况下,以与第五实施方式的整数编码单元510相同的处理,将编码参数K变换为赖斯参数r而得到、即从编码参数K通过r=-log2K得到r的值,通过与编码装置500的整数编码单元510进行的方法相同的方法,将r的值舍入成为整数值,从而得到赖斯参数r,使用得到的赖斯参数r,对整数代码进行基于赖斯参数r的格伦布-赖斯解码,得到整数序列x_1,x_2,…,x_N并输出,在编码参数K大于1的情况下,通过与编码装置500的整数编码单元510进行的方法相同的方法将编码参数K舍入成为整数值后,使用整数值的编码参数K,通过与第一实施方式至第三实施方式的整数解码单元的任一处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出(S560)。
<第五实施方式的变形例1>
在第五实施方式中,进行了与格伦布-赖斯编码/解码组合了的编码/解码处理,但是也可以不与格伦布-赖斯编码/解码组合。将不与格伦布-赖斯编码/解码组合的方式作为第五实施方式的变形例1进行说明。编码装置501的参数决定单元521和解码装置551的参数解码单元571的动作与第五实施方式相同,编码装置501的整数编码单元511和解码装置551的整数解码单元561的动作与第五实施方式不同。
[整数编码单元511]
整数编码单元511中,被输入在编码装置501中被输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N、和参数决定单元521输出的编码参数K。整数编码单元511通过将被输入的编码参数K的小数第一位进行四舍五入等,将K的值舍入成为整数值后,在整数值的编码参数K为1以下的情况下,使用2作为编码参数K,通过与第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理,得到整数代码并输出,在整数值的编码参数K大于1的情况下,使用整数值的编码参数K,通过与第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理,得到整数代码并输出(S511)。
[整数解码单元561]
整数解码单元561中,被输入在解码装置551中被输入的整数代码、和参数解码单元571输出的编码参数K。整数解码单元561将被输入的编码参数K,通过与编码装置501的整数编码单元511进行的方法相同的方法舍入成为整数值后,在整数值的编码参数K为1以下的情况下,使用2作为编码参数K,通过与第一实施方式至第三实施方式的整数解码单元的任一处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出,在整数值的编码参数K大于1的情况下,使用整数值的编码参数K,通过与第一实施方式至第三实施方式的整数解码单元的任一处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出(S561)。
<第五实施方式的变形例2>
在第五实施方式中,设为在整数编码单元510中编码参数K为1以下的情况下,从编码参数K得到赖斯参数r的结构,在参数决定单元520中编码参数K为1以下的情况下,也可以设为从整数序列直接得到赖斯参数r的结构。将该方式作为第五实施方式的变形例2,说明与第五实施方式不同的部分。
[参数决定单元522]
第五实施方式的参数决定单元520,是与编码参数K的值无关地,一定输出编码参数K和与该编码参数K对应的参数代码的结构,但是第五实施方式的变形例2的参数决定单元522,在编码参数K大于1的情况下,输出编码参数K和与该编码参数K对应的参数代码,在编码参数K为1以下的情况下,通过式(5)从整数序列得到赖斯参数r,输出赖斯参数r和与该赖斯参数r对应的参数代码(S522)。此时,与第四实施方式的变形例2同样,参数代码设为对应的解码装置552能够唯一地确定赖斯参数r的值和编码参数K的值的代码即可。
[整数编码单元512]
整数编码单元512中,被输入在编码装置502中被输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N、和参数决定单元522输出的编码参数K或者赖斯参数r。整数编码单元512在被输入了赖斯参数r的情况下,将赖斯参数r的值舍入成为整数值后,对整数序列x_1,x_2,…,x_N,进行基于整数值的赖斯参数r的格伦布-赖斯编码,将通过格伦布-赖斯编码得到的代码作为整数代码输出,在被输入了编码参数K的情况下,将编码参数K舍入成为整数值后,使用整数值的编码参数K,通过与第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理,得到整数代码并输出(S512)。而且,在编码参数K为1和2之间的值的情况下,例如使舍入后的整数值设为2即可。
[参数解码单元572]
第五实施方式的参数解码单元570是将参数代码进行解码得到编码参数K的单元,而第五实施方式的变形例2的参数解码单元572对参数代码进行解码得到编码参数K或者赖斯参数r并输出(S572)。
[整数解码单元562]
整数解码单元562中,被输入在解码装置552中被输入的整数代码、和参数解码单元572输出的编码参数K或者赖斯参数r。整数解码单元562在被输入了赖斯参数r的情况下,通过与编码装置502的整数编码单元512进行的方法相同的方法,将赖斯参数r的值舍入作为整数值,对整数代码,进行基于整数值的赖斯参数r的格伦布-赖斯解码,得到整数序列x_1,x_2,…,x_N并输出,在被输入了编码参数K的情况下,将编码参数K通过与编码装置502的整数编码单元512进行的方法相同的方法舍入成为整数值后,使用整数值的编码参数K,通过与第一实施方式至第三实施方式的整数解码单元的任一处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出(S562)。
<第四实施方式以及第五实施方式的其它变形>
而且,赖斯参数r和编码参数K,通过K=2-r以及r=-log2K可相互进行变换,因此在编码装置的整数编码单元和解码装置的整数解码单元中,只要能够使用相同的参数的相同的值,则将哪个参数设为编码/解码的对象和将上述的变换怎样组合都可以。而且,只要能够在编码装置的整数编码单元和解码装置的整数解码单元中使用相同的参数的相同的值,则将赖斯参数r和编码参数K的哪个值作为舍入的处理的对象都可以,将参数的编码前后(即量化前后)的哪个值作为舍入的处理的对象也可以,同时进行编码中的值的量化和舍入的处理也可以。总之,第四实施方式以及第五实施方式以及在这些变形例1和变形例2中说明的最终是一例,对于基于N样本的每个帧,只要在编码装置的整数编码单元和解码装置的整数解码单元中能够进行使用相同的参数的相同的值的编码处理和解码处理即可。
<第六实施方式>
在第四实施方式以及第五实施方式中,说明了对于基于输入的整数值的序列的部分序列,使用求出的赖斯参数r或者编码参数K,进行从第一实施方式至第三实施方式的编码/解码,实现本发明的编码和解码的方式。在第六实施方式中,说明使用赖斯参数r和编码参数K的至少其中一个,实现本发明的编码和解码的方式。
《编码装置》
参照图11以及图12,说明第六实施方式的编码装置600执行的编码方法的处理过程。第六实施方式的编码装置600如图11所示,与编码装置400或编码装置500同样,包含参数决定单元620和整数编码单元610。第六实施方式的编码装置600与编码装置400或编码装置500同样,通过执行图12所示的各步骤的处理,实现第六实施方式的编码方法。
在第六实施方式的编码装置600中,与编码装置400或编码装置500同样,被输入非负的整数值的序列。被输入到第六实施方式的编码装置600的非负的整数值的序列每次N样本地被输入到参数决定单元620和整数编码单元610。
以下,仅将被输入到本实施方式的编码装置的非负的整数值称为“整数值”进行说明。
[参数决定单元620]
参数决定单元620中,被输入在编码装置600中被输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N。参数决定单元620基于被输入的整数序列x_1,x_2,…,x_N,得到与该整数序列对应的赖斯参数r和编码参数K的至少其中一个、和表示该赖斯参数r和编码参数K的至少其中一个的参数代码并输出(S620)。即,参数决定单元620进行:对于基于被输入的非负的整数值的序列中包含的基于每个规定样本的整数值的序列即每个整数序列,基于整数序列中包含的整数值,通过式(5)求出赖斯参数r的处理、和基于整数序列中包含的整数值,通过式(6)求出编码参数K的处理的至少其中一个;和对赖斯参数r和编码参数K的至少其中一个进行编码得到参数代码的处理。
[整数编码单元610]
整数编码单元610中,被输入在编码装置600中被输入的整数值的序列中的、每次N样本的整数序列x_1,x_2,…,x_N、和参数决定单元620输出的赖斯参数r和编码参数K的至少其中一个。整数编码单元610在被输入了编码参数K的情况下,如果编码参数K为1以下,则与第五实施方式同样,进行格伦布-赖斯编码,将通过格伦布-赖斯编码得到的代码作为整数代码进行输出,如果编码参数K大于1,则与第五实施方式同样,通过与第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理,得到整数代码并输出,在被输入了赖斯参数r的情况下,如果赖斯参数r为非负值,则与第四实施方式同样,进行格伦布-赖斯编码,将通过格伦布-赖斯编码得到的代码作为整数代码输出,如果赖斯参数r为负值,则与第四实施方式同样,通过与第一实施方式至第三实施方式的整数编码单元的任一处理相同的处理,得到整数代码并输出(S610)。即,整数编码单元610对于基于每规定样本的整数值的序列即每个整数序列,使用参数决定单元620得到的编码参数K、或者从参数决定单元620得到的赖斯参数r通过K=2-r得到的编码参数K作为编码参数K,得到代码A或代码B的代码。特别地,也可以在与整数序列对应的编码参数K为1以下的情况下,或者在与整数序列对应的赖斯参数r为非负的情况下,对整数序列进行格伦布-赖斯编码,得到代码串。
《解码装置》
参照图13以及图14,说明第六实施方式的解码装置650执行的解码方法的处理过程。第六实施方式的解码装置650如图13所示,与解码装置450或解码装置550同样,包含参数解码单元670和整数解码单元660。第六实施方式的解码装置650与解码装置450或解码装置550同样,通过执行图14所示的各步骤的处理,实现第六实施方式的解码方法。
第六实施方式的解码装置650中,被输入第六实施方式的编码装置600输出的整数代码、以及参数代码。被输入到解码装置650的整数代码以及参数代码,对于与整数值的序列的N样本对应的每个代码,被输入到参数解码单元670和整数解码单元660。即,参数解码单元670和整数解码单元660中被输入每规定单位的参数代码和代码串。
[参数解码单元670]
参数解码单元670通过与参数决定单元620得到参数代码对应的解码处理,对参数代码进行解码,得到赖斯参数r和编码参数K的至少其中一个并输出(S670)。即,参数解码单元670对于每个规定单位,对参数代码进行解码,得到赖斯参数r和编码参数K的至少其中一个。
[整数解码单元660]
整数解码单元660中被输入在解码装置650中被输入的整数代码、参数解码单元670输出的赖斯参数r和编码参数K中的至少其中一个。整数解码单元660在被输入了编码参数K的情况下,如果编码参数K为1以下,则与第五实施方式同样,进行格伦布-赖斯解码,得到整数序列x_1,x_2,…,x_N并输出,如果编码参数K大于1,则与第五实施方式同样,通过与第一实施方式至第三实施方式的整数解码单元的其中一个处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出,在被输入了赖斯参数r的情况下,如果赖斯参数r为非负值,则与第四实施方式同样,进行格伦布-赖斯解码,得到整数序列x_1,x_2,…,x_N并输出,如果赖斯参数r为负值,则与第四实施方式同样,通过与第一实施方式至第三实施方式的整数解码单元的其中一个处理相同的处理,得到整数序列x_1,x_2,…,x_N并输出(S660)。即,整数解码单元660对于每个规定单位,将参数解码单元670得到的编码参数K、或者从参数解码单元670得到的赖斯参数r通过K=2-r得到的编码参数K使用作为编码参数K,得到由整数值0的2个至2K-1个连续、或基于0个至2K-1-1个连续的整数值0和1个0以外的整数值x_n的组构成的、基于整数值的序列。特别地,也可以在编码参数K为1以下的情况下、或者在赖斯参数r为非负的情况下,将代码串进行格伦布-赖斯解码,得到基于整数值的序列。
根据本实施方式的发明,如果知道与整数值的序列或部分序列对应的赖斯参数r相当的值,则通过对该序列使用最佳的编码参数K,能够以较少的平均比特数进行编码。而且,能够将那样的代码进行解码。
<补记>
本发明的装置例如作为单一的硬件实体,具有:可连接键盘等的输入单元、可连接液晶显示器等的输出单元、可连接能够对硬件实体的外部进行通信的通信装置(例如通信电缆)的通信单元、CPU(也可以具有中央处理单元(Central Processing Unit)、闪速存储器或寄存器等)、作为存储器的RAM或ROM、作为硬盘的外部存储装置、以及进行连接以在这些输入单元、输出单元、通信单元、CPU、RAM、ROM、外部存储装置之间进行数据交换的总线。另外,根据需要,在硬件实体中也可以设置能够读写CD-ROM等的记录介质的装置(驱动器)等。作为具有这样的硬件资源的物理的实体,有通用计算机等。
在硬件实体的外部存储装置中,存储了用于实现上述的功能所需要的程序以及在该程序的处理中所需要的数据等(不限于外部存储装置,例如也可以预先读出程序,使其存储在作为专用存储装置的ROM)。而且,通过这些程序的处理所得到的数据等,被适当地存储在RAM或外部存储装置等。
在硬件实体中,在外部存储装置(或者ROM等)所存储的各程序和该各程序的处理所需要的数据根据需要被读入到存储器,适当地在CPU中进行解释执行/处理。其结果,CPU实现规定的功能(作为上述…单元、…部件等表示的各构成要件)。
本发明没有被限定于上述的实施方式,在不脱离本发明的宗旨的范围内能够适当进行变更。而且,上述实施方式中说明的处理不仅根据记载的顺序时序地执行,也可以根据执行处理的装置的处理能力或者需要而并行或者单独地执行。
如已述那样,在通过计算机实现上述实施方式中说明的硬件实体(本发明的装置)中的处理功能的情况下,硬件实体应该具有的功能性的处理内容通过程序被记述。然后,通过在计算机上执行该程序,在计算机上实现上述硬件实体中的处理功能。
记述了该处理内容的程序,能够被预先记录在计算机可读取的记录介质中。作为由计算机可读取的记录介质,例如磁记录装置、光盘、光磁记录介质、半导体存储器等什么样的装置都可以。具体地说,例如,作为磁记录装置,可以使用硬盘装置、软盘、磁带等,作为光盘,可以使用DVD(Digital Versatile Disc,数字通用光盘)、DVD-RAM(Random AccessMemory,随机存取存储器)、CD-ROM(Compact Disc Read Only Memory,压缩光盘只读存储器)、CD-R(Recordable,可记录)/RW(ReWritable,可改写)等,作为光磁记录介质,可以使用MO(Magneto-Optical disc,磁光盘)等,作为半导体存储器,可以使用EEP-ROM(Electronically Erasable and Programmable-Read Only Memory,电可擦可编程只读存储器)等。
而且,例如通过贩卖、转让、出租记录了该程序的DVD、CD-ROM等可移动型记录介质等来进行该程序的流通。进而,也可以将该程序预先存储在服务器计算机的存储装置中,经由网络,将该程序通过从服务器计算机转发到其它计算机,使该程序流通。
执行这样的程序的计算机,例如,首先将移动式记录介质中记录的程序或由服务器计算机转发的程序暂时存储在自身的存储装置中。在处理的执行时,该计算机读取自身的记录介质中存储的程序,执行根据读取出的程序的处理。另外,作为该程序的另一执行方式,也可以计算机从移动式记录介质中直接读取程序,执行根据读取出的程序的处理,而且,每次从服务器计算机对该计算机转发程序时,逐次执行根据接受的程序的处理。也可以是不从服务器计算机进行对该计算机的程序的转发,而仅通过其执行指示和结果取得来实现处理功能的、所谓ASP(Application Service Provider;应用服务提供商)式的服务,执行上述处理的结构。而且,本方式中的程序中假设包含供电子计算机进行的处理用的信息,即按照程序的信息(虽然不是对于计算机的直接的指令,但是具有规定计算机的处理的性质的数据等)。
而且,在该方式中,通过在计算机上执行规定的程序而构成硬件实体,但也可以将这些处理内容的至少一部分由硬件实现。
上述的本发明的实施方式的记载是以例证和记载为目的进行提示的。没有穷举的意思,也没有将发明限定于公开的严密形式的意思。变形和变化可以根据上述的教导而进行。实施方式,是为了提供本发明的原理的最佳的例证,并且为了该领域的技术人员对本发明以各种实施方式且附加各种变形进行利用以适合深思熟虑的实际的使用,而选择并表现的方式。所有这样的变形或变化都在由附加的权利要求书所确定的本发明的范围内,所述附加权利要求书是按照公正合法公平给出的范围被解释的。
Claims (18)
1.一种编码装置,包括:整数编码单元,其对于基于被输入的非负的整数值x_n、n∈{1,2,...,N}的序列、即整数序列,
将K设为2以上的整数,
作为与在所述整数序列中包含的整数值0的2个至2K-1个中的预先确定的任意个数即L个连续对应的代码,得到1比特的代码、即代码A,
作为与基于在所述整数序列中包含的、0个至L-1个连续的整数值0、和1个0以外的整数值x_n的组对应的代码,得到K×x_n比特或者K×x_n+1比特的代码、即代码B。
2.如权利要求1所述的编码装置,
假设比特值“x”为比特值“1”、比特值“y”为比特值“0”、或者比特值“x”为比特值“0”、比特值“y”为比特值“1”,
所述代码A是比特值为“x”的1比特的代码,
所述代码B在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”,并且从最后起的K×(x_n-1)比特是比特值为“y”。
3.如权利要求2所述的编码装置,
L为2K-1,
整数序列中的整数值0的0个至2K-1-1个的2K-1种类的连续个数的每一个与
代码B为K×x_n+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、和
代码B为K×x_n比特时的、
由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的、2K-1-1种类的部分代码
的2K-1种类的部分代码中的其中一个一对一地对应。
5.如权利要求4所述的编码装置,
所述整数编码单元在与所述整数序列对应的所述编码参数K为1以下的情况下、或者与所述整数序列对应的所述赖斯参数r为非负的情况下,将所述整数序列进行格伦布-赖斯编码,得到代码串。
6.一种解码装置,包括:整数解码单元,其对于被输入的代码串,
将K设为2以上的整数,
从被输入的所述代码串中包含的1比特的代码、即代码A,得到整数值0的2个至2K-1个中的预先确定的任意个数即L个的连续,
通过从被输入的所述代码串中包含的K×x_n比特或者K×x_n+1比特的代码、即代码B,得到基于0个至L-1个连续的整数值0、和1个0以外的整数值x_n的组,从而得到基于整数值x_n、n∈{1,2,...,N}的序列。
7.如权利要求6所述的解码装置,
假设比特值“x”为比特值“1”、比特值“y”为比特值“0”、或者比特值“x”为比特值“0”、比特值“y”为比特值“1”,
所述代码A是比特值为“x”的1比特的代码,
所述代码B在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”,并且从最后起的K×(x_n-1)比特是比特值为“y”。
8.如权利要求6或7所述的解码装置,
所述整数解码单元从被输入的所述代码串的最初开始按顺序进行
将被输入的所述代码串每次连续的K比特、即K比特串地读入、
在被读入的所述K比特串是包含“y”的比特串时,包含该“y”的K比特串的紧跟前的比特识别为是所述代码A或者所述代码B的末端的比特,
确定在被输入的所述代码串中包含的所述代码A和所述代码B。
9.如权利要求7或8所述的解码装置,
L为2K-1,
代码B为K×x_n+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、和
代码B为K×x_n比特时的、
由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的、2K-1-1种类的部分代码
的2K-1种类的部分代码的每一个
与基于通过所述整数解码单元得到的整数值的序列中的整数值0的0个至2K-1-1个的2K -1种类的连续个数中的其中一个一对一地对应。
10.如权利要求6至9的任一项所述的解码装置,
还包括参数解码单元,被输入每规定单位的参数代码和所述代码串,对于每个规定单位,对所述参数代码进行解码,得到赖斯参数r和编码参数K中的至少其中一个,
所述整数解码单元对于每个规定单位,将所述参数解码单元得到的编码参数K、或者从所述参数解码单元得到的所述赖斯参数r通过K=2-r得到的编码参数K,用作上述K。
11.如权利要求10所述的解码装置,
所述整数解码单元在所述编码参数K为1以下的情况下、或者所述赖斯参数r为非负的情况下,对所述代码串进行格伦布-赖斯解码,得到基于整数值的序列。
12.一种代码串的数据结构,是表示作为非负值的整数值x_n、n∈{1,2,...,N}的序列、即整数序列的代码串的数据结构,
将K设为2以上的整数,
所述代码串,是在从所述整数序列得到所述代码串的编码装置、或者/以及从所述代码串得到所述整数序列的解码装置中使用的代码串,
包括:作为与在所述整数序列中包含的整数值0的2个至2K-1个中的预先确定的任意个数即L个连续对应的代码的1比特的代码、即代码A、
作为基于在所述整数序列包含的、与0个至L-1个连续的整数值0、和1个0以外的整数值x_n的组对应的代码的K×x_n比特或者K×x_n+1比特的代码、即代码B。
13.如权利要求12所述的代码串的数据结构,
假设比特值“x”为比特值“1”、比特值“y”为比特值“0”、或者比特值“x”为比特值“0”、比特值“y”为比特值“1”,
所述代码A是比特值为“x”的1比特的代码,
所述代码B在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”,并且从最后起的K×(x_n-1)比特是比特值为“y”。
14.如权利要求13所述的代码串的数据结构,
L为2K-1,
整数序列中的整数值0的0个至2K-1-1个的2K-1种类的连续个数的每一个与
代码B为K×x_n+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、和
代码B为K×x_n比特时的、
由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的、2K-1-1种类的部分代码
的2K-1种类的部分代码中的其中一个一对一地对应。
15.一种编码方法,包括:整数编码步骤,其中,编码装置对于基于被输入的非负的整数值x_n、n∈{1,2,...,N}的序列、即整数序列,
将K设为2以上的整数,
作为与所述整数序列中包含的整数值0的2个至2K-1个中的预先确定的任意个数即L个的连续对应的代码,得到1比特的代码、即代码A,
作为与基于所述整数序列中包含的、0个至L-1个连续的整数值0、和1个0以外的整数值x_n的组对应的代码,得到K×x_n比特或者K×x_n+1比特的代码、即代码B。
16.一种解码方法,执行整数解码步骤,其中,解码装置对于被输入的代码串,
将K设为2以上的整数,
从被输入的所述代码串中包含的1比特的代码、即代码A,得到整数值0的2个至2K-1个中的预先确定的任意个数即L个的连续,
通过从在被输入的所述代码串中包含的K×x_n比特或者K×x_n+1比特的代码、即代码B,得到基于0个至L-1个连续的整数值0、和1个0以外的整数值x_n的组,得到基于整数值x_n,n∈{1,2,...,N}的序列。
17.一种编码程序,用于使计算机具有权利要求1至5的任一项记载的编码装置的功能。
18.一种解码程序,用于使计算机具有权利要求6至11的任一项记载的解码装置的功能。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-143403 | 2017-07-25 | ||
JP2017143403 | 2017-07-25 | ||
PCT/JP2018/016227 WO2019021552A1 (ja) | 2017-07-25 | 2018-04-20 | 符号化装置、復号装置、符号列のデータ構造、符号化方法、復号方法、符号化プログラム、復号プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110999088A true CN110999088A (zh) | 2020-04-10 |
Family
ID=65041150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880048686.8A Pending CN110999088A (zh) | 2017-07-25 | 2018-04-20 | 编码装置、解码装置、代码串的数据结构、编码方法、解码方法、编码程序、解码程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10840944B2 (zh) |
EP (1) | EP3661062B1 (zh) |
JP (1) | JP6885466B2 (zh) |
CN (1) | CN110999088A (zh) |
WO (1) | WO2019021552A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7139897B2 (ja) * | 2018-11-07 | 2022-09-21 | 日本電信電話株式会社 | 符号化装置、復号装置、符号化方法、復号方法、符号化プログラム、復号プログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6005503A (en) * | 1998-02-27 | 1999-12-21 | Digital Equipment Corporation | Method for encoding and decoding a list of variable size integers to reduce branch mispredicts |
US7193541B2 (en) * | 2001-12-04 | 2007-03-20 | Sun Microsystems, Inc. | Representation of sign in encoding scheme |
US7424467B2 (en) * | 2004-01-26 | 2008-09-09 | International Business Machines Corporation | Architecture for an indexer with fixed width sort and variable width sort |
KR20060051157A (ko) * | 2004-10-29 | 2006-05-19 | 마이크로소프트 코포레이션 | 정수 데이터의 무손실 적응 인코딩 및 디코딩을 위한시스템 및 방법 |
US7015837B1 (en) * | 2004-10-29 | 2006-03-21 | Microsoft Corporation | Lossless adaptive encoding and decoding of integer data |
WO2008059752A1 (fr) * | 2006-11-14 | 2008-05-22 | Nippon Telegraph And Telephone Corporation | Procédé d'encodage et procédé de décodage de signal d'image, procédé d'encodage et procédé de décodage de source d'information, dispositifs pour ceux-ci, leurs programmes, et support de mémoire avec programme enregistré |
US7548176B2 (en) * | 2007-07-12 | 2009-06-16 | Donald Martin Monro | Data coding buffer for electrical computers and digital data processing systems |
JP4825916B2 (ja) * | 2007-12-11 | 2011-11-30 | 日本電信電話株式会社 | 符号化方法、復号化方法、これらの方法を用いた装置、プログラム、記録媒体 |
EP2112764A1 (en) * | 2008-04-25 | 2009-10-28 | Thomson Licensing | Method for encoding a sequence of integers, storage device and signal carrying an encoded integer sequence and method for decoding a sequence of integers |
US8180774B2 (en) * | 2008-10-03 | 2012-05-15 | Seomoz, Inc. | Web-scale data processing system and method |
US8558724B2 (en) * | 2009-05-20 | 2013-10-15 | Nippon Telegraph And Telephone Corporation | Coding method, coding appartaus, decoding method, decoding apparatus, program, and recording medium |
US10404276B1 (en) * | 2018-04-27 | 2019-09-03 | Nicira, Inc. | Stable variable-length order-preserving encoding scheme |
-
2018
- 2018-04-20 WO PCT/JP2018/016227 patent/WO2019021552A1/ja unknown
- 2018-04-20 EP EP18838945.6A patent/EP3661062B1/en active Active
- 2018-04-20 US US16/618,567 patent/US10840944B2/en active Active
- 2018-04-20 CN CN201880048686.8A patent/CN110999088A/zh active Pending
- 2018-04-20 JP JP2019532376A patent/JP6885466B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP6885466B2 (ja) | 2021-06-16 |
EP3661062A1 (en) | 2020-06-03 |
US20200162102A1 (en) | 2020-05-21 |
WO2019021552A1 (ja) | 2019-01-31 |
EP3661062B1 (en) | 2022-11-09 |
US10840944B2 (en) | 2020-11-17 |
EP3661062A4 (en) | 2021-04-28 |
JPWO2019021552A1 (ja) | 2020-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110181448A1 (en) | Lossless compression | |
US7786907B2 (en) | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
JP2006126810A (ja) | 後方適応規則を用いた整数データの無損失適応Golomb−Rice符号化および復号化 | |
US10666289B1 (en) | Data compression using dictionary encoding | |
JP2006129467A (ja) | 整数データの無損失適応符号化・復号化 | |
CN112398484A (zh) | 一种编码方法及相关设备 | |
WO2011097963A1 (zh) | 编码方法、解码方法、编码器和解码器 | |
WO2020095706A1 (ja) | 符号化装置、復号装置、符号列のデータ構造、符号化方法、復号方法、符号化プログラム、復号プログラム | |
JP6426212B2 (ja) | 制限されたキャリー演算による算術コーディングを遂行するための方法及び装置 | |
CN110999088A (zh) | 编码装置、解码装置、代码串的数据结构、编码方法、解码方法、编码程序、解码程序 | |
Mathpal et al. | A research paper on lossless data compression techniques | |
JPH08256182A (ja) | 部分応答チャンネルのためのマッチングしたスペクトルゼロコード | |
US20110131433A1 (en) | Method for counting vectors in regular point networks | |
JP7183776B2 (ja) | 符号化装置、復号装置、これらの方法及びプログラム | |
KR102296153B1 (ko) | 전용 산술 인코딩 명령 | |
JP7173134B2 (ja) | 符号化装置、復号装置、符号化方法、復号方法、プログラム、および記録媒体 | |
Mohamed | Wireless Communication Systems: Compression and Decompression Algorithms | |
KR100686354B1 (ko) | 가변 트리를 이용한 허프만 복호화 방법 및 장치 | |
JP6509916B2 (ja) | 連結されたrom−ramテーブルに基づいて算術コーディングを遂行する方法及び装置 | |
KR20160105848A (ko) | 데이터 심볼들에 대해 산술 코딩을 수행하는 방법 및 장치 | |
CA2482994C (en) | Method and system for multi-rate lattice vector quantization of a signal | |
JP2021064900A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JPWO2018235418A1 (ja) | 符号化装置、復号装置、符号化方法、復号方法、およびプログラム | |
Anitha | An Overview of Image Compression. | |
KR20050070633A (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 |