CN112956131A - 编码装置、解码装置、代码串的数据结构、编码方法、解码方法、编码程序、解码程序 - Google Patents
编码装置、解码装置、代码串的数据结构、编码方法、解码方法、编码程序、解码程序 Download PDFInfo
- Publication number
- CN112956131A CN112956131A CN201980072412.7A CN201980072412A CN112956131A CN 112956131 A CN112956131 A CN 112956131A CN 201980072412 A CN201980072412 A CN 201980072412A CN 112956131 A CN112956131 A CN 112956131A
- Authority
- CN
- China
- Prior art keywords
- bit
- code
- integer
- value
- encoding
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 210
- 238000012545 processing Methods 0.000 claims description 115
- 230000008569 process Effects 0.000 claims description 108
- 241000209094 Oryza Species 0.000 claims description 41
- 235000007164 Oryza sativa Nutrition 0.000 claims description 41
- 235000009566 rice Nutrition 0.000 claims description 41
- 241000894007 species Species 0.000 claims description 3
- 238000012986 modification Methods 0.000 description 21
- 230000004048 modification Effects 0.000 description 21
- 230000014509 gene expression Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 238000007906 compression Methods 0.000 description 12
- 230000006835 compression Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 7
- 238000013139 quantization Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000008451 emotion Effects 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000002583 angiography Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
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/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
- H03M7/3062—Compressive sampling or sensing
-
- 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
-
- 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
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6005—Decoder aspects
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- 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/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
Abstract
提供了编码解码技术,即使是还包含不是零值的小的值、且其分布较大地偏向于小的值的整数值的序列,也能够以较少的平均比特数进行编码。包括整数编码部,其对于基于所输入的非负的整数值xn、n∈{1,2,...,N}的序列(以下称为“整数序列”),将L设为2以上的整数,作为与在整数序列中包含的整数值0的L个的连续对应的代码,得到比特值为“x”的1比特的代码,作为与基于在整数序列中包含的、0个至L‑1个连续的整数值0、和1个0以外的整数值xn的组对应的代码,得到在第1比特至K比特为止中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起的K×(xn‑1)比特的比特值为“y”的K×xn比特或者K×xn+1比特的代码。
Description
技术领域
本发明涉及对由声音或声响的时序数字信号的样本序列等整数值构成的样本序列进行编码、解码的技术。
背景技术
作为以压缩为目的对样本序列进行编码的技术,有对通过对样本值进行量化而得到的有限精度的值(以下,将其称为整数值)进行可逆编码,由此削减样本序列的记述中使用的比特长度的技术。在该技术中,对哪个整数值分配哪个长度的代码直接与压缩的性能相关。该事实在对图像信号的样本串进行编码解码的图像编码或对声响信号的样本串进行编码解码的声响编码等样本序列的编码和解码的工程应用中也不例外。
一般在可变长度的可逆编码中,由于可解码性的制约,分配给整数值的代码的结构上存在制约。具体而言为如下这样的制约:如果对某整数值分配短的代码,则为了成为可解码的代码,必须对其他整数值分配长的代码。因此,为了提高压缩性能,需要使代码的结构(对各整数值的代码的分配)适合于整数值的序列中的值的分布。具体而言,通过对出现概率高的整数值分配短的代码,对出现概率低的整数值分配长的代码,能够减小整数值的序列的压缩后的比特长度的期望值。
格伦布代码(Golomb代码)被用作在上述那样的可逆编码中最简单的可变长度码之一。已知格伦布代码在整数值的序列属于指数分布的情况下、即在整数值的出现概率相对于值的大小指数性地降低的情况下,实现最小的期望比特长度(最小的比特长度)。
由于该格伦布代码是非常简单的结构,所以被广泛使用。格伦布代码在将例如在对声响信号进行AD变换而成为PCM的整数值的序列、或将该序列进行傅立叶变换而变换为频谱的序列等中包含的各样本值除以量化值,将得到的整数值的绝对值的序列进行编码时使用。或者,格伦布代码在对将上述整数值的序列的各样本值x分别置换为由以下的式(1)求出的x’后的非负整数值构成的序列进行编码时使用。
【数学式1】
因此,以下说明对非负整数值进行编码/解码的情况,但是从能够通过式(1)等将整数值整体一对一地变换为非负整数值这样的上述的事实,通过在编码处理的前级通过式(1)等将整数值整体变换为非负整数值,或者在解码处理的后级通过式(1)的逆变换等将非负整数值变换为整数值整体,还能够适应于整数值整体的编码/解码。
假设格伦布代码根据格伦布参数(Golomb参数)s的值,如图1的表所示,对于非负整数值的输入x的代码,在输入x的值每次增加s时增加1比特,能够对遵照下述式(2)的指数分布(单侧拉普拉斯分布)的非负整数值的序列,近似地提供最佳的期望比特长度地进行编码。
【数学式2】
其中,格伦布参数s是自然数。即,如果将格伦布参数s设为小的自然数,则能够对值的偏向性大的序列以较少的平均比特数进行编码,如果将s设为大的自然数,则能够对值的偏向性小的序列以较少的平均比特数进行编码。另外,作为s为2的幂乘数的格伦布代码特别被称为格伦布-赖斯代码(Golomb-Rice代码)。格伦布-赖斯代码具体地说,是当将作为非负的整数值的赖斯参数(Rice参数)设为r时,使用格伦布参数s=2r时的格伦布代码。
但是,在所输入的非负整数值的序列的实际的分布中,作为式(2)中的s可以取大于0的任意的实数值,与此相对,格伦布代码不能使格伦布参数s小于1。另外,对于s=2r的r来说,在输入的非负整数值的序列的实际的分布中,r可以取任意的实际数值,与此相对,格伦布-赖斯代码不能使赖斯参数r为负值。因此,随着例如遵照分布p(x,2-0.1)的值的序列等序列的值的偏向性比分布p(x,2-1)大,无论如何设定格伦布参数s或赖斯参数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,2-1)较大地偏离的情况下,存在压缩的性能降低这样的课题。
而且,非专利文献1的技术并不是与数学上所表现的分布对应的编码方法。因此,在非专利文献1的技术中,虽然知道整数值的序列中的值的分布,但是也存在不知道作为用于表现零值的连续的个数的比特数,要选择哪个进行编码,才能够以较少的平均比特数进行编码的课题。
另一方面,根据非专利文献2的技术,能够对与分布p(x,2-1)相比值偏离的整数值的序列以较少的平均比特数进行编码。但是,非专利文献2的技术存在不能使对于一个整数值的平均比特数比0.5比特小,对于理论上最佳的平均比特数成为小于0.5比特这样的偏向性大的整数值的序列,压缩的性能降低这样的课题。
因此,本发明的目的在于提供即使是包含不是零值的小的值、且其分布较大地偏向小的值的整数值的序列,也能够以较少的平均比特数进行编码的编码解码技术。
用于解决课题的手段
本发明的一方式涉及的编码装置包括整数编码部,该整数编码部对于基于所输入的非负的整数值xn、n∈{1,2,...,N}的序列(以下称为“整数序列”),将L设为2以上的整数,将2K超过L的最小的自然数设为K,将从2K减去L而得到的自然数设为p,将从L减去2K-1而得到的自然数设为q,设为比特值“x”为比特值“1”、比特值“y”为比特值“0”、或者、比特值“x”为比特值“0”、比特值“y”为比特值“1”,作为与在所述整数序列中包含的整数值0的L个的连续对应的代码,得到比特值为“x”的1比特的代码(以下称为“代码A”),作为与基于在所述整数序列中包含的、0个至L-1个连续的整数值0和1个0以外的整数值xn的组对应的代码,得到在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起K×(xn-1)比特的比特值为“y”的K×xn比特或者K×xn+1比特的代码(以下称为“代码B”),整数序列中的整数值0的0个至L-1个的L种类的连续个数分别与(a)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、(b)代码B为K×xn比特时的、由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的p-1种类(即2K-L-1种类)的部分代码、(c)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与所述的(b)的p-1种类(即2K-L-1种类)不同、第K+1比特的比特值为“x”或者“y”的2q种类(即2L-2K种类)的部分代码、这L种类的部分代码中的任一个一对一地对应。
本发明的一方式涉及的解码装置包括整数解码部,该整数解码部对于所输入的代码串,将L设为2以上的整数,将2K超过L的最小的自然数设为K,将从2K减去L而得到的自然数设为p,将从L减去2K-1而得到的自然数设为q,设为比特值“x”为比特值“1”、比特值“y”为比特值“0”、或者、比特值“x”为比特值“0”、比特值“y”为比特值“1”,从在所输入的所述代码串中包含的、比特值为“x”的1比特的代码(以下称为“代码A”),得到整数值0的L个的连续,从在所输入的所述代码串中包含的、第1比特至第K比特为止中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起K×(xn-1)比特的比特值为“y”的K×xn比特或者K×xn+1比特的代码(以下称为“代码B”)中,通过得到基于0个至L-1个连续的整数值0、和1个0以外的整数值xn的组,从而得到基于整数值xn、n∈{1,2,...,N}的序列,(a)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、(b)代码B为K×xn比特时的、由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的p-1种类(即2K-L-1种类)的部分代码、(c)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与所述的(b)的p-1种类(即2K-L-1种类)不同、第K+1比特的比特值为“x”或者“y”的2q种类(即2L-2K种类)的部分代码、的L种类的部分代码,分别与基于由所述整数解码部得到的整数值的序列中的整数值0的0个至L-1个的L种类的连续个数中的任一个一对一地对应。
本发明的一方式涉及的代码串的数据结构是是表示作为非负值的整数值xn、n∈{1,2,...,N}的序列(以下称为“整数序列”)的代码串的数据结构,将L设为2以上的整数,将2K超过L的最小的自然数设为K,将从2K减去L而得到的自然数设为p,将从L减去2K-1而得到的自然数设为q,设为比特值“x”为比特值“1”、比特值“y”为比特值“0”,或者比特值“x”为比特值“0”、比特值“y”为比特值“1”,所述代码串在从所述整数序列得到所述代码串的编码装置、或者/以及、从所述代码串得到所述整数序列的解码装置中被使用,包括:作为与在所述整数序列中包含的整数值0的L个的连续对应的代码的、比特值为“x”的1比特的代码(以下称为“代码A”)、以及作为与基于在所述整数序列中包含的、0个至L-1个连续的整数值0、和1个0以外的整数值xn的组对应的代码的、在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起的K×(xn-1)比特的比特值为“y”的K×xn比特或者K×xn+1比特的代码(以下称为“代码B”),整数序列中的整数值0的0个至L-1个的L种类的连续个数分别与(a)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、(b)代码B为K×xn比特时的、由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的p-1种类(即2K-L-1种类)的部分代码、(c)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与所述的(b)的p-1种类(即2K-L-1种类)不同、第K+1比特的比特值为“x”或者“y”的2q种类(即2L-2K种类)的部分代码、的L种类的部分代码中的任一个一对一地对应。
发明效果
根据本发明,即使是还包含不是零值的小的值、且较大地偏向小的值的整数值的序列、或在非专利文献2的技术中值不能完全对应地值产生偏向的整数值的序列,也能够以较少的平均比特数进行编码。此外,可以对这样的代码进行解码。
附图说明
图1是表示对于非负整数值的输入x的格伦布代码的图。
图2是表示编码装置100的结构的一例的框图。
图3是表示编码装置100的动作的一例的流程图。
图4是表示K=2时的代码树的一例的图。
图5是表示K=3时的代码树的一例的图。
图6是表示将K一般化时的代码树的一例的图。
图7是表示解码装置150的结构的一例的框图。
图8是表示解码装置150的动作的一例的流程图。
图9是表示K=2时的对应表的一例的图。
图10是表示K=3时的对应表的一例的图。
图11是表示L=2或L=3时的代码树的一例的图。
图12是表示L=4或L=5时的代码树的一例的图。
图13是表示将L一般化时的代码树的一例的图。
图14是表示L=3时的对应表的一例的图。
图15是表示L=5时的对应表的一例的图。
图16是示出编码装置400的结构的一例的框图。
图17是表示编码装置400的动作的一例的流程图。
图18是表示解码装置450的结构的一例的框图。
图19是表示解码装置450的动作的一例的流程图。
具体实施方式
以下,对本发明的实施方式详细地进行说明。另外,对具有相同功能的结构部分标注相同的标号,省略重复说明。
<第一实施方式>
《编码装置》
参照图2以及图3,说明第一实施方式的编码装置100执行的编码方法的处理过程。如图2所示,第一实施方式的编码装置100包括整数编码部110。通过第一实施方式的编码装置100执行图3所示的各步骤的处理,从而实现第一实施方式的编码方法。
在第一实施方式的编码装置100中被输入非负的整数值的序列。作为该非负整数值的序列,例如,也可以将对于由麦克风拾取的声音、或音乐等变换为数字信号而得到的信号、或对于由摄像机拍摄的图像或视频变换为数字信号而得到的信号等的一部分或全部,通过现有技术进行量化而成为有限精度的值,将基于由此得到的整数值的绝对值的序列、或者基于将整数值设为x而通过式(1)得到的x'的序列作为输入。
第一实施方式的编码装置100按照预先确定的规则使用预先确定的多个代码树,对非负的整数值的序列进行可变长度编码,从而对于比格伦布编码或格伦布-赖斯编码所设想的指数分布偏向性大的分布的非负整数值的序列,实现成为比格伦布编码或格伦布-赖斯编码短的比特长度的编码处理。这里,所谓代码树,指表示对输入的非负的整数值分配哪个代码的预先确定的规则的图表。以下,将对编码装置100输入的非负的整数值简称为“整数值”进行说明。
[整数编码部110]
整数编码部110中输入在编码装置100中所输入的整数值的序列中的、基于每次N样本(N为自然数)的整数值的序列。将基于所输入的整数值的序列设为整数序列x1,x2,…,xN。整数编码部110根据预先存储在整数编码部110内或由未图示的单元输入的2个以上的自然数即编码参数K,将整数序列x1,x2,…,xN以使用了以下的代码树的编码处理进行编码,得到代码,将得到的代码作为整数代码输出(S110)。以下,以整数序列x1,x2,…,xN的各整数为xn(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)对应,是与如下规则对应的代码树:作为与被输入的整数值xn对应的代码,得到比特数为K×xn+1比特、最初的第1比特的比特值为‘1’、从第2比特到第K×xn+1比特为止的比特值为‘0’的代码。另外,根据该代码树,在所输入的整数值xn为0的情况下,代码的比特数K×xn+1为1比特,因此,得到比特值为‘1’的1比特的代码。
2K-1个代码树中的上述以外的2K-1-1个代码树与从图4至图6的T(1)至T(2K-1-1)为止对应,是与如下规则对应的代码树:作为与输入的整数值xn对应的代码,得到比特数为K×xn比特、最初的第1比特的比特值为‘0’、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’、从第K+1比特至第K×xn比特为止的K×(xn-1)比特的比特值为‘0’、即从最后起K×(xn-1)比特的比特值为‘0’的代码。这里,从第2比特至第K比特为止的K-1比特是与2K-1-1个代码树各自一对一地对应的比特群。另外,根据这些代码树,在输入的整数值xn为0的情况下,由于代码的比特数K×xn为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)对应的代码树中朝右三角时用于下一个整数值的编码的代码树作为用于下一个整数值的编码的代码树的规则。
例如,使用了图4的K=2的情况下的代码树的编码的规则,是在对所输入的整数值0用代码树T(1)进行编码的情况下,得不到与所输入的整数值0对应的代码而将对下一个整数值进行编码时使用的代码树设为T(0)的规则,是在对所输入的整数值2用代码树T(0)进行编码的情况下,作为与输入的整数值2对应的代码得到‘10000’,将在对下一个整数值进行编码时使用的代码树设为T(1)的规则。
在编码处理的最初使用多个代码树中的哪个代码树都可以,但是在编码处理的最初使用哪个代码树的规则也作为使用多个代码树的规则而预先确定并存储。例如,在图4的K=2的情况下,在从整数值x1开始按顺序对整数序列x1,x2,…,xN进行编码的情况下,可以设为对整数值x1以T(0)进行编码的规则,也可以设为对整数值x1以T(0)进行编码的规则,但将T(0)和T(1)的哪一个用于整数值x1的编码被预先确定并存储。
[[使用了代码树的编码处理]]
整数编码部110使用上述的多个代码树,按照使用多个代码树的上述的规则,对于在所输入的整数序列x1,x2,…,xN中包含的各整数值以预先确定的顺序进行编码得到代码,将得到的代码作为整数代码输出。例如,在预先确定的顺序为序列中的样本号码顺序、最初使用的代码树为T(0)的情况下,整数编码部110进行的编码步骤如下述这样。
(编码步骤)
1.将样本号码n、代码树号码的初始值分别设为1、0。
2.直至成为n=N为止,将以下的(i)~(iv)反复。
(i)如果代码树号码为0,则得到代码‘1’。
(ii)如果整数值xn=0,则将对代码树号码加上1后的值设为新的代码树号码。这时,在加上1而代码树号码成为了2K-1的情况下,将0设为新的代码树号码。
(iii)若整数值xn≠0,得到基于1比特的‘0’和与代码树一对一地对应的对应的K-1比特的K比特的代码,进而得到K×(xn-1)比特的代码‘0’,将1设为新的代码树号码。
(iv)将对n加上1得到的值作为新的n。
3.去除在通过1~2得到的代码中的最初得到的代码‘1’。
(或者不进行开始的1次的2.(i)操作。)
4.对通过1~3得到的代码的最后加上代码‘1’(末端代码)。
5.将通过1~4得到的代码作为整数代码输出。
而且,进行编码步骤中的3并不是必须的。在最初使用的代码树为T(0)的情况下,无论x1的值为什么样的值,通过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的后级中、将关于整数序列x1,x2,…,xN得到的整数代码使用公知的分组化的方法存储在分组中传递给解码装置150的结构。在该情况下,由于在解码侧,采用在解码装置150内或者解码装置150的前级中从分组取出整数代码的结构,因此解码装置150能够确定整数代码的末端。因此,在这样的情况下,也可以不进行编码步骤中的4。作为从编码装置100向解码装置150传递整数代码的结构,有时也采用将在对于整数序列x1,x2,…,xN得到的整数代码的后面连结了其它的代码后的代码存储在上述的分组中传递给解码装置150的结构、或者不进行上述的分组化而使在对于整数序列x1,x2,…,xN得到的整数代码的后面连结其它的代码并传递给解码装置150的结构等。在这些结构中,若假设没有进行编码步骤中的4,在使后面连结的代码为‘0000’时等,则解码装置150会无法判别与第N个的整数值对应的代码到哪里为止,使在后面连结的代码从哪里开始。因此,在这些结构中,需要通过将预先确定的相同的N的值存储在编码装置100和解码装置150中等,解码装置150能够掌握整数代码是与N个整数值对应的代码的情况,并且还进行编码步骤中的4,解码装置150能够确定整数代码的末端。
而且,上述的说明的代码‘0’是2值的比特值中的其中一个的比特值、上述的说明的代码‘1’是2值的比特值中的另一个比特值的例子。即,当然,也可以取代上述的说明的代码‘0’使用代码‘1’,取代代码‘1’而使用代码‘0’。
[[编码处理的例子]]
作为编码处理的例子,说明K=2中最初使用的代码树为T(0)的情况下的、输入的整数序列x1,x2,x3,x4,x5为0,0,2,0,0的情况下的编码处理。首先,由于开始的整数值x1=0以T(0)进行编码,因此得到代码‘1’,由于将对代码树号码0加上1得到的值设为新的代码树号码,因此将用于下一个整数值x2=0的编码的代码树设为T(1)。由于第2个的整数值x2=0以T(1)进行编码,因此得不到代码,将对代码树号码1加上了1得到的值设为代码树号码,但是由于加上了1后的代码树号码成为2K-1,因此,将0设为新的代码树号码,将用于下一个整数值x3=2的编码的代码树设为T(0)。由于第3个的整数值x3=2以T(0)进行编码,因此得到代码‘10000’,并且由于是将新的代码树号码设为1的规则,因此将用于下一个整数值x4=0的编码的代码树设为T(1)。由于第4个的整数值x4=0以T(1)进行编码,所以得不到代码,将对代码树号码1加上了1得到的值设为代码树号码,但是加上了1后的代码树号码成为2K-1,因此将0设为新的代码树号码,将用于下一个整数值x5=0的编码的代码树设为T(0)。由于最后的整数值x5=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相同的值的、且为预先存储在整数解码部160内的或者通过未图示的单元输入的2以上的自然数的编码参数K,将被输入的整数代码以使用了以下的代码树的解码处理进行解码,得到整数值的序列,输出得到的整数序列x1,x2,…,xN(S160)。以下,设整数序列x1,x2,…,xN的各整数为xn(n为序列中的样本号码,n∈{1,2,...,N})进行说明。
用于解码处理的代码树,与第一实施方式的编码装置100的整数编码部110使用的代码树相同,在整数解码部160中预先存储图4至图6例示那样的2K-1个(2的K-1次方个)的代码树。解码处理中的代码树中的所输入的代码和与该该代码对应的整数值之间的关系以及使用多个代码树的规则是如下规则:是与第一实施方式的编码装置100的整数编码部110的编码处理中的规则对应、将第一实施方式的编码装置100的整数编码部110的编码处理中的规则的“分配给输入的整数值的代码”换读为“所输入的代码”,将“所输入的整数值”换读为“分配给所输入的代码的整数值”的规则,被预先存储在整数解码部160中。而且,在解码处理中最初使用哪个代码树的规则,也是与第一实施方式的编码装置100的整数编码部110使用的规则相同的规则,预先存储在整数解码部160中。
整数解码部160使用上述的多个代码树,按照使用多个代码树的上述的规则,得到基于与所输入的整数代码对应的整数值的列,将基于得到的整数值的列的各整数设为预先确定的顺序后的结果,得到作为整数序列x1,x2,…,xN并输出。例如,在预先确定的顺序为序列中的样本号码顺序、最初使用的代码树为T(0)的情况下,整数解码部160进行的解码步骤,例如如下述的解码步骤1或解码步骤2这样。
(解码步骤1-1)在不进行基于编码步骤4的末端代码的追加的情况下,即,解码装置150可确定整数代码的末端的情况下
1.在编码步骤3中去除了代码‘1’的情况下,在整数代码的最初追加代码‘1’。
2.将代码树号码的初始值设为0。
3.反复以下(i)~(ii),直到没有未读入的整数代码为止,如果没有了未读入的整数代码,则进至4。
(i)在与代码树号码对应的代码树中存在与读入的代码对应的代码的期间(即,直至与代码树号码对应的代码树中没有与读入的代码对应的代码的前一个比特为止),按顺序读入被输入的整数代码。
(ii)从与代码树号码对应的代码树,得到与读入的代码对应的代码所对应的整数值,按照对于该代码树的整数值的代码树的迁移的规则,得到新的代码树号码。
4.将基于由3的(ii)得到的整数值的序列作为整数序列x1,x2,…,xN输出。
(解码步骤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)得到的整数值的序列作为整数序列x1,x2,…,xN输出。
(解码步骤2)
1.在编码步骤4中未进行末端代码的追加的情况下,在输入的代码串的最后追加末端代码‘1’。而且,在编码步骤3中未去除代码‘1’的情况下,在输入的代码串的最初去除代码‘1’。
2.将样本号码n、代码树号码的初始值分别设为1、0。
3.直至变为n≥N为止,反复以下(i)~(v)。
(i)在K比特全部为代码‘0’的期间,按顺序每次K比特地读取所输入的代码串,将在其间读入的代码‘0’的个数除以K得到的数设为Z。
(ii)如果代码树号码为0,则得到整数值Z。
(iii)如果代码树号码不为0,则得到整数值(Z+1)。
(iv)如果输入的代码串的下一个的1比特为代码‘1’,则读取该1比特,得到(2K-1-1)个整数值0,将0设为新的代码树号码,将对n加上了2K-1后的值设为新的n。
(v)如果输入的代码串的下一个的1比特为代码‘0’,则读取包含该1比特的K比特,将除了该K比特中的最初的1比特后的剩余的K-1比特对应的代码树号码设为新的代码树号码,得到(新的代码树号码-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的序列作为整数序列x1,x2,x3,x4,x5输出。
根据本实施方式的发明,即使是还包含不是零值的小的值、且较大地偏向小的值的整数值序列、或者在非专利文献2的技术中不能完全对应地值产生偏向的整数值的序列,也能够以较少的平均比特数进行编码。此外,可以对这样的代码进行解码。
<第一实施方式的发明的原理的说明>
这里说明本发明的原理。
根据第一实施方式的编码装置100,能够对全部的非负整数值分配代码,通过第一实施方式的解码装置150对该代码进行解码,能够将非负整数值本身复原。如图4至图6所示那样,与非负整数值xn对应的代码为K×xn比特或者K×xn+1比特。由此,在第一实施方式中使用的本发明的代码,是对于以下述的式(3)表示的偏向性大的按照指数分布(单侧拉普拉斯分布)的非负整数值的序列近似地提供最佳的期望比特长度的代码,是能够使相对于较大地偏向于小的值的非负整数值的序列的平均比特数比格伦布代码或格伦布-赖斯代码少的代码。
【数学式3】
根据以式(2)所示的格伦布代码为最佳的分布p(x,2-1/s)、和以式(3)所示的本发明的代码为最佳的分布p(x,2-K)的对应关系,可知本发明的编码参数K的倒数与格伦布参数s相对应。而且,由于本发明的编码参数K为正的整数值,因此编码参数K的倒数成为小于1的值,所以编码参数K可以解释作为与扩展为比0大且比1小的值的格伦布参数对应的参数。另外,由于赖斯参数r相当于格伦布参数s的对数值,所以与上述同样,编码参数K也可以解释作为与扩展为负值的赖斯参数对应的参数。即,通过进行对非负整数值的序列最佳的赖斯参数的估计,能够估计分配给非负整数值的序列的本发明的代码中的最佳的参数K。
在第一实施方式的编码装置100和解码装置150中使用的本发明的代码树中的整数值和与该整数值对应的代码之间的关系、以及使用多个代码树的规则,不仅将与非负整数值xn对应的代码设为K×xn比特或者K×xn+1比特,还考虑设为可解码的代码来进行设计。具体地说,设置如下这样的制约:对于整数值0的2K-1个的连续,分配作为1比特的代码的‘1’,对于整数值0的0个至2K-1-1个连续和其后续的一个非负整数值xn≠0,分配在最初的K比特中至少包含1比特的比特值‘1’、并且第K+1比特以后的比特值为‘0’的代码。通过设置该制约,在解码装置150中读入与由多个整数值构成的整数序列对应的整数代码时,会知道在K比特中包含比特值‘1’的部分中,包含整数代码中的某一代码和后一个的代码的边界。而且,为了满足上述的制约,对于整数值0的0个至2K-1-1个连续和其后续的一个非负整数值xn的代码的比特数不仅是K×xn比特,还设为K×xn比特或者K×xn+1比特。
<第二实施方式>
在第一实施方式中,说明了使用预先确定的代码树实现本发明的编码和解码的方式,但是即使是取代预先确定的代码树来使用预先确定的对应表,也能够实现与第一实施方式等效的编码处理和解码处理。将使用该预先确定的对应表的方式作为第二实施方式进行说明。
《编码装置》
参照图2以及图3,说明第二实施方式的编码装置200执行的编码方法的处理过程。如图2所示,第二实施方式的编码装置200包括整数编码部110。第二实施方式的编码装置200通过执行图3所示的各步骤的处理,实现第二实施方式的编码方法。
在第二实施方式的编码装置100中,与第一实施方式同样,被输入非负的整数值的序列。第二实施方式的编码装置100通过遵照预先确定的对应表,将非负的整数值的序列进行可变长度编码,对于比格伦布编码或格伦布-赖斯编码设想的指数分布偏向性大的分布的非负的整数值的序列,实现成为比格伦布编码或格伦布-赖斯编码短的比特长度的编码处理。以下,将被输入到编码装置100的非负的整数值仅称为“整数值”进行说明。
[整数编码部110]
整数编码部110中被输入在编码装置100中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN。第二实施方式的整数编码部110基于与作为2以上的自然数的编码参数K对应地预先创建的、在整数编码部110内存储的对应表,对输入的整数序列x1,x2,…,xN进行编码得到代码,将得到的代码作为整数代码输出(S110)。
[[用于编码处理的对应表]]
预先存储的对应表,存储了基于零值的连续(0个以上的连续)和一个非零值的组合的整数值的部分序列、和与该部分序列对应的代码的对应关系的规则。在图9和图10中分别举出K=2和K=3中的对应表的例子。在对应表中存储的规则是如下的规则:对于基于2K-1个连续的零值的部分序列分配比特值为‘1’的1比特的代码,对于除此以外的部分序列、即基于0个至2K-1-1个连续的零值和其后续的一个非零值xn的部分序列,对于各个零值的连续和非零值xn的组合分配K×xn比特或者K×xn+1比特的代码。
在例示的对应表中,是如下规则:对于基于0个至2K-1-1个连续的零值和其后续的一个非零值xn的部分序列的各个部分序列,分配在开始的K比特内至少存在1比特的‘1’、剩余的K×(xn-1)比特或者K×(xn-1)+1比特全部为‘0’的代码。更详细而言,在该规则中,对于基于0个至2K-1-1个连续的零值和一个非零值的部分序列,分配第1比特的比特值为‘1’、第2比特至第K比特为止的比特值全部为‘0’、第K+1比特至第K×xn+1比特为止的比特值全部为‘0’的K×xn+1比特的代码、或者分配第1比特的比特值为‘0’、第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’、第K+1比特至第K×xn比特为止的比特值全部为‘0’的K×xn比特的代码。更详细而言,在该规则中,基于K×xn+1比特的代码中的第1比特的比特值为‘1’、第2比特至第K+1比特为止为‘0’的、从第1比特至第K+1比特为止的1种类的部分代码、和K×xn比特的代码中的第1比特的比特值为‘0’、第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’的、从第1比特至第K比特为止的2K-1-1种类的部分代码的2K-1种类的部分代码、与从0个至2K-1-1个零值的连续数2K-1种类一对一地对应。
[[使用了对应表的编码处理]]
整数编码部110使用上述的对应表,将所输入的整数序列x1,x2,…,xN中包含的各整数值按照预先确定的顺序编码得到代码,将得到的代码作为整数代码输出。例如,在预先确定的顺序为序列中的样本号码顺序的情况下,整数编码部110进行的编码步骤如下。
(编码步骤)
1.将样本号码n设为1。
2.直至成为n=N为止,反复以下的(i)~(ii)。
(i)在xn以后的2K-1个整数值中存在非零值的情况下,从代码表得到与至xn以后的最初的非零值为止的部分序列对应的代码,将对n加上至xn以后的最初的非零值为止的样本数得到的结果设为新的n。
(ii)在xn以后的2K-1个整数值全部为零值的情况下,从代码表得到与xn以后的2K-1个整数值的部分序列对应的代码,将对n加上2K-1后的结果设为新的n。
3.在通过2得到的代码的最后加上代码‘1’(末端代码)。
4.将通过3得到的代码作为整数代码输出。
而且,与第一实施方式同样,通过从编码装置100向解码装置150的整数代码的传递方法,也可以不进行加上末端代码的处理(编码步骤中的3)。
而且,通过第二实施方式的编码装置100的整数编码部110中使用了图9和图10的编码处理得到的代码,分别与第一实施方式的编码装置100的整数编码部110中使用图4和图5的代码树的编码处理中、在将最初使用的代码树设为了T(1)的情况下得到的代码一致。而且,在第二实施方式的编码装置100的整数编码部110中,在使用图9和图10各自进行编码时,只要在输入的整数序列x1,x2,…,xN的开头追加(2K-1-1)个零值之后进行编码,并去除位于得到的整数代码的最初的代码‘1’,就与在第一实施方式的编码装置100的整数编码部110中使用图4和图5各自的代码树的编码处理中、将最初使用的代码树设为T(0)的情况下得到的代码一致。这样,第二实施方式的编码装置100的整数编码部110中的使用了对应表的编码处理,与第一实施方式的编码装置100的整数编码部110中使用了代码树的编码处理是等效的。
《解码装置》
参照图7以及图8,说明第二实施方式的解码装置150执行的解码方法的处理过程。如图7所示,第二实施方式的解码装置150包括整数解码部160。第二实施方式的解码装置150通过执行图8所示的各步骤的处理,实现第二实施方式的解码方法。
在第二实施方式的解码装置150中,与第一实施方式的解码装置150同样,被输入第二实施方式的编码装置100输出的整数代码。第二实施方式的解码装置150对于输入的整数代码,通过以使用了与第二实施方式的编码装置100的整数编码部110中存储的对应表相同的对应表的解码处理进行解码,得到非负的整数值的序列,将输入到第二实施方式的编码装置100的非负的整数值的序列本身进行复原。以下,与上述的编码装置的说明同样,将非负的整数值仅称为“整数值”进行说明。
[整数解码部160]
在整数解码部160中被输入在解码装置150中输入的整数代码。整数解码部160基于预先创建并存储在整数解码部160内的、与编码参数K对应的预先创建的对应表,即与在编码装置100的整数编码部110内预先存储并在整数编码部110中使用的对应表相同的对应表,对输入的整数代码进行解码,得到整数序列x1,x2,…,xN并输出(S160)。
更具体地说,整数解码部160将从最初至存在与对应表对应的代码的部分为止,读入在输入的整数代码中的还未读入的代码部分,从对应表中得到与读入的代码对应的整数的部分序列的处理,从被输入的整数代码的最初到最后为止反复进行,将由此得到的整数的部分序列汇总后的序列作为整数序列x1,x2,…,xN输出。通过该解码处理,能够得到与第一实施方式的解码装置150的整数解码部160中使用图4和图5各自的代码树的解码处理中、将最初使用的代码树设为T(1)的情况相同的整数序列x1,x2,…,xN。
而且,在编码装置100的整数编码部110中,在输入的整数序列x1,x2,…,xN的开头追加(2K-1-1)个零值之后进行编码,进行将位于得到的整数代码的最初的代码‘1’去除的理的情况下,整数解码部160在被输入的整数代码的开头追加了代码‘1’后,基于上述对应表在上述的解码处理中得到各部分序列,省略了开始得到的(2K-1-1)个零值后,将汇总了部分序列后的整数序列x1,x2,…,xN输出即可。通过该解码处理,能够得到与第一实施方式的解码装置150的整数解码部160中的使用图4和图5各自的代码树的解码处理中、将最初使用的代码树设为了T(0)的情况相同的整数序列x1,x2,…,xN。这样,第二实施方式的解码装置150的整数解码部160中的使用了对应表的解码处理,是与第一实施方式的解码装置150的整数解码部160中的使用了代码树的解码处理等效的。
从以上可知,也可以将通过第一实施方式的编码装置100在使用了代码树的编码处理中得到的整数代码,在通过第二实施方式的解码装置150使用了与该编码处理对应的对应表的解码处理中进行解码,得到整数序列x1,x2,…,xN,或者将通过第二实施方式的编码装置100在使用了对应表的编码处理中得到的整数代码,在通过第一实施方式的解码装置150使用了与该编码处理对应的代码树的解码处理中进行解码,得到整数序列x1,x2,…,xN。
根据本实施方式的发明,即使是包含不是零值的小的值、且较大地偏向小的值的整数值的序列、或者在非专利文献2的技术中不能完全对应地值产生了偏向的整数值的序列,也能够以较少的平均比特数进行编码。此外,可以对这样的代码进行解码。
<第三实施方式>
第一实施方式以及第二实施方式的代码的规则是如下的规则:对于整数值0的2K-1个连续使作为1比特的代码的‘1’对应,对于整数值0的0个至2K-1-1个连续和其后续的一个非负整数值xn≠0,使K×xn+1比特的代码中的第1比特的比特值为‘1’、从第2比特至第K+1比特为止为‘0’的、从第1比特至第K+1比特为止的1种类的部分代码、和K×xn比特的代码中的第1比特的比特值为‘0’、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’的、从第1比特至第K比特目为止的2K-1-1种类的部分代码的2K-1种类的部分代码、与从0个至2K-1-1个整数值0的连续数2K-1种类一对一地对应。这里,如果着眼于整数值0的连续个数,则第一实施方式以及第二实施方式的代码能够对作为2以上的自然数的编码参数K分别表现整数值0的连续个数从0个到2K-1个。即,在第一实施方式以及第二实施方式的代码中,整数值0的最大连续个数为2的整数次方。
在第一实施方式以及第二实施方式的代码中,在被提供了遵照p(x,2-K’)这样的、使用了某一非负值K’的指数分布的输入x的序列时,通过如果K’为整数值,则将编码参数K设为K=K’,并设可表现的整数值0的最大连续个数为2的K’次方个,能够近似地实现最佳的压缩效率。可是,在上述的K’不是整数值、取编码参数K和(K+1)之间的值的情况下,与将编码参数K设为K=K’时相比,能够表现更多的整数值0的连续个数,压缩的效率高。另一方面,在这种情况下,将编码参数K加上1,越使能够表现的整数值0的最大连续个数成倍,整数值0的出现频度越高,反而用于表现非零值的比特数过度增加,会导致压缩效率降低。
因此,在本实施方式中,对将第一实施方式变更为即使在整数值0的最大连续个数不是2的整数次方的情况下压缩效率也变高的方式进行说明。
《编码装置》
参照图2以及图3,说明第三实施方式的编码装置100执行的编码方法的处理过程。如图2所示,第三实施方式的编码装置100包括整数编码部110。第三实施方式的编码装置100通过执行图3所示的各步骤的处理,实现第三实施方式的编码方法。
在第三实施方式的编码装置100中,与第一实施方式以及第二实施方式同样,输入非负的整数值的序列。
第三实施方式的编码装置100与第一实施方式的编码装置100同样,通过按照预先确定的规则使用预先确定的多个代码树,将非负的整数值的序列进行可变长度编码,对于格伦布编码或格伦布-赖斯编码设想的指数分布偏向性大的分布的非负的整数值的序列,实现成为比格伦布编码或格伦布-赖斯编码短的比特长度的编码处理。以下,将被输入到编码装置100的非负的整数值仅称为“整数值”进行说明。
[整数编码部110]
整数编码部110中被输入在编码装置100中所输入的整数值的序列中的、基于每次N样本(N为自然数)的序列。将基于所输入的整数值的序列设为整数序列x1,x2,…,xN。整数编码部110根据预先存储在整数编码部110内或由未图示的单元输入的2个以上的自然数即编码参数L,通过使用以下的代码树的编码处理对整数序列x1,x2,…,xN进行编码,得到代码,将得到的代码作为整数代码输出(S110)。以下,设整数序列x1,x2,…,xN的各整数为xn(n是序列中的样本号码,n∈{1,2,...,N})来进行说明。
另外,以下,使用作为2K超过L的最小的自然数K、作为从2K减去L而得到的自然数的p、作为从L减去2K-1而得到的自然数的q进行说明。K、p和q是可使用L记述的值,是为了简化说明而方便使用的值,但是整数编码部110也可以实际使用。在整数编码部110使用K、p或q的情况下,K、p或q的值可以由整数编码部110使用编码参数L进行计算而求出,也可以与编码参数L一起通过未图示的单元输入,在将编码参数L预先存储在整数编码部110内的情况下,K、p或q的值也可以预先存储在整数编码部110内。
[[用于编码处理的代码树]]
首先,例示用于整数编码部110中的编码处理的代码树。
整数编码部110中预先存储图11至图13中例示那样的L个的代码树。图11(A)是L=2时的代码树的例子,T(0)和T(1)分别是代码树,图11(B)是L=3时的代码树的例子,T(0)到T(2)分别是代码树。图12(A)是L=4时的代码树的例子,T(0)到T(3)分别是代码树,图12(B)是L=5时的代码树的例子,T(0)到T(4)分别是代码树。图13是将L一般化时的代码树的例子,T(0)到T(L-1)分别是代码树。
[[代码树中的所输入的整数值和与该整数值对应的代码之间的关系]]
接着,说明各代码树中的所输入的整数值和与该整数值对应的代码之间的关系。
以位于各代码树的节点的右侧的三角包围的整数值与输入的整数值对应。而且,位于各代码树的边缘的左侧的比特值‘0’以及‘1’与分配给输入的整数值的代码的规则对应。该规则是,得到将位于从代码树的上端的节点至与输入的整数值对应的节点为止的边缘的左侧的比特值排列后的结果,作为分配给输入的整数值的代码的规则。
L个代码树中的一个代码树是与图11至图13的T(0)对应的代码树,是与如下规则对应的代码树:作为与所输入的整数值xn对应的代码,得到比特数为K×xn+1比特、最初的第1比特的比特值为‘1’、从第2比特至第K×xn+1比特为止的比特值为‘0’的代码。另外,根据该代码树,在所输入的整数值xn为0的情况下,由于代码的比特数K×xn+1为1比特,因此得到比特值为‘1’的1比特的代码。即,本实施方式的T(0)与第一实施方式的T(0)相同。
L个代码树中的上述以外的L-1个代码树是与从图11至图13的T(1)到T(L-1)对应的代码树。对于这些代码树,以下一边与第一实施方式进行对比一边进行说明。
从图4至图6所示的第一实施方式的T(1)至T(2K-1-1)为止的2K-1-1个代码树,是与如下规则对应的代码树:作为与所输入的非零值xn对应的代码,得到从第2比特至第K比特为止的K-1比特与从T(1)至T(2K-1-1)为止的2K-1-1个代码树各自一对一地对应的比特群、并且是与如在所输入的非零值xn的之前所输入的零值的连续数2K-1-1那样一对一地对应的比特群的代码。如上所述,为了成为可解码的代码,由于从第2比特至第K比特为止的K-1比特需要至少1比特的比特值为‘1’,因此,由从第2比特至第K比特为止的K-1比特可表现的零值的连续数最大为2K-1-1种类。例如,如果K=2,则由第2比特的1比特可表现的零值的连续数最大为1种类。另外,例如,如果K=3,则由从第2比特至3比特为止的2比特可表现的零值的连续数最大为3种类。
在编码参数L为2的情况下,用T(0)以外的L-1个代码树应表现的零值的连续数为1种类,因此如图11(A)所示,作为本实施方式的T(1),使用与图4所示的第一实施方式的代码树T(1)相同的代码树即可。
另一方面,在编码参数L为3的情况下,由于用T(0)以外的L-1个代码树应表现的零值的连续数为2种类,所以导致仅用第2比特的1比特应表现的零值的连续数会少1种类。因此,在本实施方式中,在编码参数L为3的情况下,使用两个代码树T(1)和T(2),该两个代码树T(1)和T(2)是如图11中以双点划线包围的那样,将编码参数L为2的情况下的代码树T(1)的第3比特以后错开1比特而设为第4比特以后,并且如图11中的点划线包围的那样,在编码参数L为2的情况下的代码树T(1)的第2比特之后作为第3比特追加了1比特的结构。在代码树(1)和T(2)中,如图11(B)中虚线包围的那样,作为第3比特追加的1比特为互不相同的比特值。
另外,在编码参数L为4的情况下,用T(0)以外的L-1个代码树应表现的零值的连续数为3种类,所以如图12(A)所示,作为本实施方式的T(1)至T(3),分别使用与图4所示的第一实施方式的代码树T(1)至T(3)相同的代码树即可。
另一方面,在编码参数L为5的情况下,由于用T(0)以外的L-1个代码树应表现的零值的连续数为4种类,所以用仅从第2比特到第3比特为止的2比特应表现的零值的连续数少1种类。因此,在本实施方式中,在编码参数L为5的情况下,使用两个代码树T(3)和T(4),该代码树T(3)和T(4)是如图12中以双点划线包围的那样,将编码参数L为4的情况下的代码树T(3)的第4比特以后错开1比特而设为第5比特以后,如图12中以点划线包围的那样,在编码参数L为4的情况下的代码树T(3)的第3比特之后作为第4比特追加了1比特的结构。在代码树T(3)和T(4)中,如图12(B)中虚线包围的那样,作为第4比特追加的1比特为互不相同的比特值。
以下,对编码参数L进行一般化而进行说明。用T(0)以外的L-1个代码树的从第2比特到第K比特为止的K-1比特可表现的零值的连续数最大为2K-1-1种类。在编码参数L为2K-1的情况下,用T(0)以外的L-1个代码树应表现的零值的连续数为L-1=2K-1-1种类,因此,作为实施方式的T(1)至T(L-1),分别使用与图6所示的第一实施方式的代码树T(1)至T(2K-1-1)相同的代码树即可。
另一方面,在编码参数L为比2K-1大的值的情况下,用T(0)以外的L-1个代码树应表现的零值的连续数为L-1种类,由于比用从第2比特至第K比特为止的K-1比特可表现的零值的连续数的最大2K-1-1种类超过了(L-1)-(2K-1-1)=L-2K-1=q种类,因此仅用从第2比特到第K比特为止的K-1比特应表现的零值的连续数会少q种类。因此,在本实施方式中,如图13的下段所示,使用对于图6所示的第一实施方式的代码树T(1)至T(2K-1-1)中的q=L-2K-1个代码树的每一个,将第K+1比特以后错开1比特而设为第K+2比特以后,并且作为第K+1比特,追加了比特值为‘0’的1比特的代码树、和作为第K+1比特追加了比特值为‘1’的1比特的代码树的、置换两个代码树的、2q=2×(L-2K-1)=2L-2K个代码树。另外,在本实施方式中,如图13的上段所示,作为T(1)至T(2K-1-1)中的剩余的代码树的(2K-1-1)-q=2K-1-1-(L-2K-1)=2K-L-1=p-1个代码树,使用图6所示的第一实施方式的代码树本身。但是,在本实施方式中,有时根据编码参数L的值,p-1=0,所以仅使用置换后的代码树,不使用未进行置换的图6所示的第一实施方式的代码树本身。另外,在编码参数L为2K-1的情况下,由于q=0,所以也可以说仅使用了没有进行置换的图6所示的第一实施方式的代码树本身而不进行代码树的置换。
即,从本实施方式的L个代码树中的T(1)至T(L-1)的L-1个代码树,在所输入的整数值xn为0的情况下得不到代码,在所输入的整数值xn不为0的情况下,得到比特数为K×xn比特或者K×xn+1比特、最初的第1比特的比特值为‘0’、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’、从最后起的K×(xn-1)比特的比特值为‘0’的代码。更具体地说,T(1)至T(L-1)的L-1个代码树中的p-1个代码树,在所输入的整数值xn不为0情况下得到比特数为K×xn比特的代码,T(1)至T(L-1)的L-1个代码树中的2q个代码树,在所输入的整数值xn不为0的情况下,得到比特数为K×xn+1比特的代码。
另外,所输入的整数值xn不为0的情况下的比特数为K×xn比特的代码的从第2比特至第K比特为止的K-1比特、和所输入的整数值xn不为0的情况下的比特数为K×xn+1比特的代码的从第2比特至第K+1比特为止的K比特,与T(1)至T(L-1)的L-1个代码树各自一对一地对应。更具体地说,用所输入的整数值xn不为0的情况下的至少1比特的比特值为‘1’的从第2比特至第K比特为止的K-1比特可表现的2K-1种类中的p-1种类,与所输入的整数值xn不为0的情况下得到比特数为K×xn比特的代码的p-1个代码树各自一对一地对应,用所输入的整数值xn不为0的情况下的至少1比特的比特值为‘1’的从第2比特至第K比特为止的K-1比特可表现的2K-1种类中的上述的p-1种类以外的q种类、和为该q种类的情况下的第K+1比特的比特值的组、即2q种类,与所输入的整数值xn不为0的情况下得到比特数为K×xn+1比特的代码的2q个代码树各自一对一地对应。进而,更具体地说,从第2比特至第K比特为止的K-1比特的上述的q种类,与所输入的整数值xn不为0的情况下得到比特数为K×xn+1比特的代码的2q个代码树中的每次2个的q组各自一对一地对应,与第K+1比特目的比特值是每次2个的代码树的组的哪一个对应。例如,如果是图13的例子,用所输入的整数值xn不为0的情况下的至少1比特的比特值为‘1’的从第2比特至第K比特为止的K-1比特可表现的2K-1种类中的p-1种类,是与T(1)至T(p-1)的p-1个代码树各自一对一地对应的K比特,用所输入的整数值xn不为0的情况下的至少1比特的比特值为‘1’的从第2比特至第K比特为止的K-1比特可表现的2K-1种类中的上述的p-1种类以外的q种类、和为该q种类的情况下的第K+1比特的比特值的组、即2q种类,是与T(p)至T(L-1)的2q个代码树各自一对一地对应的K+1比特。
[[使用多个代码树的规则]]
接着,说明使用多个代码树的规则。整数编码部110还预先存储使用多个代码树的规则。
图11至图13的位于各代码树的节点的右侧的包围整数值的三角的方向与使用多个代码树的规则对应。
朝右的三角表示在对所输入的整数值的下一个整数值进行编码时,使用右侧相邻的代码树(代码树号码大1个的代码树)的规则。另外,此时假设位于最右边的代码树(代码树号码最大的代码树)的右侧相邻是位于最左边的代码树(代码树号码最小的代码树)。而且,该规则最终也只是一例,只要是循环使用L个代码树的规则,则什么样的规则都可以。即,是对于各代码树,在朝右的三角时,在下一个整数值的编码中使用不同的代码树的规则,只要是对于全部的代码树,在朝右的三角时,用于下一个整数值的编码的代码树不重复的规则,则什么样的规则都可以。但是,最好是先使用得到比特数少的代码的代码树(如果是图13的例子,则是T(1)到T(p-1))的规则。
朝下三角,表示在对输入的整数值的下一个整数值进行编码时,使用代码树T(1)的规则。而且,该规则最终也只是一例,在为朝下三角时,只要是对于各朝下三角将预先决定的任一个代码树作为用于下一个整数值的编码的代码树的规则。例如,在为朝下三角时,也可以设为对于全部朝下三角将预先决定的任一个相同的代码树作为用于下一个整数值的编码的代码树的规则。另外,为了缩短平均比特数,在朝下三角时,优选设为将与图11至图13的T(0)对应的代码树以外的代码树作为用于下一个整数值的编码的代码树的规则,更优选的是,将除了与T(0)对应的代码树以外的代码树中的得到比特数少的代码的代码树(如果是图13的例子,则为T(1)至T(p-1)的任一个)作为用于下一个整数值的编码的代码树的规则。
另外,为了使平均比特数最短,优选设为对于全部的代码树,在向下三角时,将在与图11至图13的T(0)对应的代码树中、在向右三角时用于下一个整数值的编码的代码树作为用于下一个整数值的编码的代码树的规则即可。
在编码处理的最初使用多个代码树中的哪个代码树都可以,但是在编码处理的最初使用哪个代码树的规则也作为使用多个代码树的规则而预先确定并存储。例如,在图11的L=3的情况中,在对整数序列x1,x2,…,xN从整数值x1起按顺序进行编码的情况下,也可以设为将整数值x1用T(0)进行编码的规则,也可以设为将整数值x1用T(1)进行编码的规则,也可以设为将整数值x1用T(2)进行编码的规则,但是,将T(0)至T(2)的哪一个用于整数值x1的编码预先确定并存储。
[[使用了代码树的编码处理]]
整数编码部110使用上述的多个代码树,遵照使用多个代码树的上述的规则,对在所输入的整数序列x1,x2,…,xN中包含的各整数值按照预先确定的顺序进行编码,得到代码,将得到的代码作为整数代码输出。例如,在预先确定的顺序是序列中的样本号码顺序、最初使用的代码树为T(0)的情况下,整数编码部110进行的编码步骤如下所述。
(编码步骤)
1.将样本号码n、代码树号码的初始值分别设为1、0。
2.直到成为n=N为止,反复以下的(i)~(iv)。
(i)如果代码树号码为0,则得到代码‘1’。
(ii)如果是整数值xn=0,则将对代码树号码加上1而得到的值作为新的代码树号码。这时,在加上1后代码树号码变为L的情况下,将0作为新的代码树号码。
(iii)如果是整数值xn≠0并且代码树号码小于p,则得到基于1比特的‘0’和与代码树一对一地对应的K-1比特的K比特的代码,进而得到K×(xn-1)比特的代码‘0’,将1作为新的代码树号码。
(iv)如果整数值xn≠0并且代码树号码为p以上,则得到基于1比特的‘0’和与代码树一对一地对应的K比特的K+1比特的代码,进而得到K×(xn-1)比特的代码‘0’,将1作为新的代码树号码。
(v)将对n加上1后的值作为新的n。
3.去除在通过1~2得到的代码中的最初得到的代码‘1’。
(或者不进行开始的1次的2.(i)操作。)
4.对通过1~3得到的代码的最后加上代码‘1’(末端代码)。
5.将通过1~4得到的代码作为整数代码输出。
另外,与第一实施方式同样,进行编码步骤中的3不是必须的。
另外,与第一实施方式一样,根据从编码装置100向解码装置150的整数代码的传递方法,也可以不进行编码步骤中的4。
其中,上述说明的代码‘0’是2值的比特值中的任意一方的比特值,上述说明的代码‘1’是2值的比特值中的另一方的比特值的例子。即,当然也可以使用代码‘1’取代上述说明的代码‘0’,使用代码‘0’取代代码‘1’。
《解码装置》
参照图7以及图8,说明第三实施方式的解码装置150执行的解码方法的处理过程。如图7所示,第三实施方式的解码装置150包括整数解码部160。通过第三实施方式的解码装置150执行图8所示的各步骤的处理,实现第三实施方式的解码方法。
在第三实施方式的解码装置150中,被输入第三实施方式的编码装置100输出的整数代码。第三实施方式的解码装置150以按照与第三实施方式的编码装置100对应的预先确定的规则而使用了与第三实施方式的编码装置100对应的预先确定的多个代码树的解码处理,对所输入的整数代码进行解码,得到非负整数值的序列,从而复原输入到第三实施方式的编码装置100的非负整数值的序列本身。以下,与上述编码装置100的说明相同,将非负的整数值仅称为“整数值”来进行说明。
[整数解码部160]
整数解码部160中被输入在解码装置150中输入的整数代码。整数解码部160基于与编码装置100的整数编码部110使用了的编码参数L为相同的值、即在整数解码部160内预先存储的或者通过未图示的单元输入的作为2以上的自然数的编码参数L,对于所输入的整数代码以使用了以下的代码树的解码处理进行解码,得到整数值的序列,输出得到的整数序列x1,x2,…,xN(S160)。以下,假设整数序列x1,x2,…,xN的各整数为xn(n为序列中的样本号码,n∈{1,2,...,N})来进行说明。
另外,以下,使用作为2K超过L的最小的自然数的K、作为从2K减去L而得到的自然数的p、作为从L减去2K-1而得到的自然数的q进行说明。K、p和q是使用L可记述的值,是为了简化说明而方便使用的值,但是整数解码部160也可以实际使用。在整数解码部160使用K、p或q的情况下,K、p或q的值可以由整数解码部160使用编码参数L进行计算而求出,也可以与编码参数L一起通过未图示的单元输入,在将编码参数L预先存储在整数解码部160内的情况下,K、p或q的值也可以预先存储在整数编码部110内。
用于解码处理的代码树,与第三实施方式的编码装置100的整数编码部110使用的代码树相同,整数解码部160中预先存储图11至图13中例示那样的L个代码树。解码处理中的代码树中的所输入的代码和与该代码对应的整数值之间的关系以及使用多个代码树的规则是如下规则:是与第三实施方式的编码装置100的整数编码部110的编码处理中的规则对应、将第三实施方式的编码装置100的整数编码部110的编码处理中的规则的“分配给输入的整数值的代码”换读为“所输入的代码”,将“所输入的整数值”换读为“分配给所输入的代码的整数值”的规则,预先存储在整数解码部160中。而且,在解码处理中最初使用哪个代码树的规则,也是与第三实施方式的编码装置100的整数编码部110使用的规则相同的规则,预先存储在整数解码部160中。
整数解码部160使用上述的多个代码树,按照使用多个代码树的上述的规则,得到基于与所输入的整数代码对应的整数值的列,得到将基于得到的整数值的列的各整数设为预先确定的顺序后的结果来作为整数序列x1,x2,…,xN并输出。例如,在预先确定的顺序为序列中的样本号码顺序、最初使用的代码树为T(0)的情况下,整数解码部160进行的解码步骤,例如如下所述的解码步骤1或解码步骤2这样。
(解码步骤1-1)在未进行基于编码步骤4的末端代码的追加的情况下,即,解码装置150可确定整数代码的末端的情况下
1.在编码步骤3中去除了代码‘1’的情况下,在整数代码的最初追加代码‘1’。
2.将代码树号码的初始值设为0。
3.反复以下(i)~(ii),直到没有未读入的整数代码为止,如果没有了未读入的整数代码,则进至4。
(i)在与代码树号码对应的代码树中存在与读入的代码对应的代码的期间(即,直至与代码树号码对应的代码树中没有与读入的代码对应的代码的前一个比特为止),按顺序读入被输入的整数代码。
(ii)从与代码树号码对应的代码树,得到与读入的代码对应的代码所对应的整数值,按照对于该代码树的整数值的代码树的迁移的规则,得到新的代码树号码。
4.将基于由3的(ii)得到的整数值的序列作为整数序列x1,x2,…,xN输出。
(解码步骤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)得到的整数值的序列作为整数序列x1,x2,…,xN输出。
(解码步骤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,则得到整数值Z。
(iii)如果代码树号码不为0,则得到整数值(Z+1)。
(iv)如果输入的代码串的下一个的1比特为代码‘1’,则读取该1比特,得到(L-1)个整数值0,将0设为新的代码树号码,将对n加上了L后的值设为新的n。
(v)如果输入的代码串的下一个的1比特为代码‘0’,则读取包含该1比特的K比特,在存在与该K比特中的除去了最初的1比特后的剩余的K-1比特一对一地对应的代码树的情况下,将与该K-1比特对应的代码树的号码设为新的代码树号码,在没有与该K比特中的除去了最初的1比特后的剩余的K-1比特一对一地对应的代码树的情况下(即,该K-1比特与基于两个代码树的组一对一地对应的情况下),读取下一个1比特,将与基于前述K比特中的除去了最初的1比特的剩余的K-1比特和读入的1比特的K比特一对一地对应的代码树的号码作为新的代码树号码,在各个情况下,得到(新的代码树号码-1)个整数值0,将对n加上新的代码树号码后的值作为新的n。
4.在所得到的整数值多于N个的情况下,去除第N+1个的整数值以后。
根据本实施方式的发明,即使是还包含不是零值的小的值、且较大地偏向小的值的整数值的序列、或者在非专利文献2的技术中不能完全对应地值产生了偏向的整数值的序列,也能够以较少的平均比特数进行编码。此外,可以对这样的代码进行解码。
<第三实施方式的发明的原理的说明>
这里说明本发明的原理。
根据第三实施方式的编码装置100,能够对全部的非负整数值分配代码,通过第三实施方式的解码装置150对该代码进行解码,能够复原非负整数值本身。如图11至图13所示,能够表现的整数值0的最大连续个数是不限于2的整数次方的L个。由此,在第三实施方式中使用的本发明的代码,是如第一实施方式或第二实施方式的代码那样,K不限于整数值,关于2K-1成为自然数L的全部的K,对于式(3)表示的偏向性大的遵照指数分布(单侧拉普拉斯分布)的非负整数值的序列近似地提供最佳的期望比特长度的代码,是能够使对于按照K不是整数值的分布而较大地偏向于小的值的非负整数值的序列的平均比特数,少于第一实施方式或第二实施方式的代码的代码。
另外,上述的式(3)能够使用第一实施方式或第二实施方式的代码中的整数值0的最大连续个数2K-1,近似于下述的式(4a)。
【数学式4】
因此,用代码能够表现的整数值0的最大连续个数,对压缩效率最大的输入的分布产生影响。这里,在使用了编码参数L的第三实施方式中使用的本发明的代码是对于按照下述的式(4b)的分布的非负整数值的序列近似地提供最佳的期待比特长度的代码。
【数学式5】
即,本发明的编码参数L与第一实施方式或第二实施方式的编码参数K同样,可以解释作为扩展为比0大且比1小的值的格伦布参数或扩展为负值的赖斯参数,进而,整数值0的最大连续个数如可以是任何值这样,与将第一实施方式或第二实施方式的编码参数K的可取的值扩展后的值对应。因此,通过对非负整数值的序列进行最佳的格伦布参数或赖斯参数的估计,能够估计分配给非负整数值的序列的本发明的代码中的最佳参数L。
<第四实施方式>
在第三实施方式中,说明了使用预先确定的代码树实现本发明的编码和解码的方式,但即使通过使用预先确定的对应表来取代预先确定的代码树,也能够实现与第三实施方式等效的编码处理和解码处理。将使用该预先确定的对应表的方式作为第四实施方式进行说明。
《编码装置》
参照图2以及图3,说明第四实施方式的编码装置100执行的编码方法的处理过程。如图2所示,第四实施方式的编码装置100包括整数编码部110。通过第四实施方式的编码装置100执行图3所示的各步骤的处理,实现第四实施方式的编码方法。
与第一实施方式至第三实施方式同样地,在第四实施方式的编码装置100中被输入非负的整数值的序列。第四实施方式的编码装置100通过遵照预先确定的对应表,将非负的整数值的序列进行可变长度编码,对于比格伦布编码或格伦布-赖斯编码设想的指数分布偏向性大的分布的非负的整数值的序列,实现成为比格伦布编码或格伦布-赖斯编码短的比特长度的编码处理。以下,将被输入到编码装置100的非负的整数值仅称为“整数值”进行说明。
[整数编码部110]
在整数编码部110中被输入在编码装置100中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN。第二实施方式的整数编码部110基于与作为2以上的自然数的编码参数K对应地预先创建的、在整数编码部110内存储的对应表,对输入的整数序列x1,x2,…,xN进行编码得到代码,将得到的代码作为整数代码输出(S110)。
[[用于编码处理的对应表]]
预先存储的对应表,存储了基于零值的连续(0个以上的连续)和一个非零值的组合的整数值的部分序列、和与该部分序列对应的代码之间的对应关系的规则。在图14和图15中分别举出L=3和L=5中的对应表的例子。在对应表中存储的规则,是如下的规则:对于基于L个连续的零值的部分序列分配比特值为‘1’的1比特的代码,对于除此以外的部分序列、即基于0个至L-1个连续的零值和其后续的一个非零值xn的部分序列,对于各个零值的连续和非零值xn的组合,分配在第1比特至第K比特为止中包含至少一个比特值‘1’和至少一个比特值‘0’、并且从最后起的K×(xn-1)比特的比特值为‘0’的、K×xn比特或者K×xn+1比特的代码。
更详细而言,在该规则中,对于基于0个至L-1个连续的零值和一个非零值的部分序列的每一个,分配包含与0个至L-1个零值的连续数L种类一对一地对应以下的(a)至(c)的L种类的部分代码的代码。
(a)由K×xn+1比特的代码的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为‘1’、从第2比特至第K+1比特为止的比特值为‘0’的1种类的部分代码。
(b)由K×xn比特的代码的第1比特至第K比特为止的K比特构成、第1比特的比特值为‘0’、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’的p-1种类(即,2K-L-1种类)的部分代码。
(c)由K×xn+1比特的代码的第1比特至第K+1比特为止的K+1比特构成、第1比特目的比特值为‘0’、第2比特至第K比特为止的K-1比特中的至少1比特的比特值为‘1’、并且第1比特至第K比特为止的K比特的组与上述的(b)的p-1种类(即,2K-L-1种类)不同、第K+1比特的比特值为‘1’或者‘0’的2q种类(即,2L-2K种类)的部分代码。
[[使用了对应表的编码处理]]
整数编码部110使用上述的对应表,将所输入的整数序列x1,x2,…,xN中包含的各整数值按照预先确定的顺序编码得到代码,将得到的代码作为整数代码输出。例如,在预先确定的顺序为序列中的样本号码顺序的情况下,整数编码部110进行的编码步骤如下。
(编码步骤)
1.将样本号码n设为1。
2.直至成为n=N为止,反复以下的(i)~(ii)。
(i)在xn以后的L个整数值中存在非零值的情况下,从代码表得到与至xn以后的最初的非零值为止的部分序列对应的代码,将对n加上至xn以后的最初的非零值为止的样本数得到的结果设为新的n。
(ii)在xn以后的L个整数值全部为零值的情况下,从代码表得到与xn以后的L个整数值的部分序列对应的代码,将对n加上L后的结果设为新的n。
3.在通过2得到的代码的最后加上代码‘1’(末端代码)。
4.将通过3得到的代码作为整数代码输出。
另外,与第三实施方式同样,通过从编码装置100向解码装置150的整数代码的传递方法,也可以不进行加上末端代码的处理(编码步骤中的3)。
而且,通过第四实施方式的编码装置100的整数编码部110中使用了图14和图15的编码处理得到的代码,分别与第三施方式的编码装置100的整数编码部110中使用图11(B)和图12(B)的代码树的编码处理中、在将最初使用的代码树设为了T(1)的情况下得到的代码一致。而且,在第四实施方式的编码装置100的整数编码部110中,在使用图14和图15各自进行编码时,只要在输入的整数序列x1,x2,…,xN的开头追加(L-1)个零值之后进行编码,并去除位于得到的整数代码的最初的代码‘1’,就与在第三实施方式的编码装置100的整数编码部110中使用图11(B)和图12(B)各自的代码树的编码处理中、将最初使用的代码树设为T(0)的情况下得到的代码一致。这样,第四实施方式的编码装置100的整数编码部110中的使用了对应表的编码处理,与第三实施方式的编码装置100的整数编码部110中使用了代码树的编码处理是等效的。
《解码装置》
参照图7以及图8,说明第四实施方式的解码装置150执行的解码方法的处理过程。如图7所示,第四实施方式的解码装置150包括整数解码部160。第四实施方式的解码装置150通过执行图8所示的各步骤的处理,实现第四实施方式的解码方法。
与第三实施方式的解码装置150同样地,在第四实施方式的解码装置150中被输入第四实施方式的编码装置100输出的整数代码。第四实施方式的解码装置150通过对于输入的整数代码,以使用了与第四实施方式的编码装置100的整数编码部110中存储的对应表相同的对应表的解码处理进行解码,得到非负的整数值的序列,将输入到第四实施方式的编码装置100的非负的整数值的序列本身进行复原。以下,与上述的编码装置的说明同样,将非负的整数值仅称为“整数值”进行说明。
[整数解码部160]
在整数解码部160中被输入在解码装置150中输入的整数代码。整数解码部160基于预先创建并存储在整数解码部160内的、与编码参数L对应的预先创建的对应表,即与在编码装置100的整数编码部110内预先存储并在整数编码部110中使用的对应表相同的对应表,对输入的整数代码进行解码,得到整数序列x1,x2,…,xN并输出(S160)。
更具体地说,整数解码部160将从最初至存在与对应表对应的代码的部分为止,读入在输入的整数代码中的还未读入的代码部分,从对应表中得到与读入的代码对应的整数的部分序列的处理,从被输入的整数代码的最初到最后为止反复进行,将由此得到的整数的部分序列汇总后的序列作为整数序列x1,x2,…,xN输出。通过该解码处理,能够得到与第三实施方式的解码装置150的整数解码部160中使用图11(B)和图12(B)各自的代码树的解码处理中、将最初使用的代码树设为T(1)的情况相同的整数序列x1,x2,…,xN。
而且,在编码装置100的整数编码部110中,在输入的整数序列x1,x2,…,xN的开头追加(L-1)个零值之后进行编码,并进行将位于得到的整数代码的最初的代码‘1’去除的处理的情况下,整数解码部160在被输入的整数代码的开头追加了代码‘1’后,基于上述对应表在上述的解码处理中得到各部分序列,省略了开始得到的(L-1)个零值后,将汇总了部分序列后的整数序列x1,x2,…,xN输出即可。通过该解码处理,能够得到与第三实施方式的解码装置150的整数解码部160中的使用图11(B)和图12(B)各自的代码树的解码处理中、将最初使用的代码树设为了T(0)的情况相同的整数序列x1,x2,…,xN。这样,第四实施方式的解码装置150的整数解码部160中的使用了对应表的解码处理,是与第三实施方式的解码装置150的整数解码部160中的使用了代码树的解码处理等效的。
从以上可知,也可以将通过第三实施方式的编码装置100在使用了代码树的编码处理中得到的整数代码,在通过第四实施方式的解码装置150使用了与该编码处理对应的对应表的解码处理中进行解码,得到整数序列x1,x2,…,xN,或者将在通过第四实施方式的编码装置100使用了对应表的编码处理中得到的整数代码,在通过第三实施方式的解码装置150使用了与该编码处理对应的代码树的解码处理中进行解码,得到整数序列x1,x2,…,xN。
根据本实施方式的发明,即使是包含不是零值的小的值、且较大地偏向小的值的整数值的序列、或者在非专利文献2的技术中不能完全对应地值产生了偏向的整数值的序列,也能够以较少的平均比特数进行编码。此外,可以对这样的代码进行解码。
<第五实施方式>
在第三实施方式以及第四实施方式中,从使用预先确定的代码树或预先确定的对应表进行编码解码的过程的侧面,对实现本发明的编码和解码的方式进行了说明。在第五实施方式中,从通过这些过程得到的代码或整数值的序列这样的数据的侧面,对实现本发明的编码和解码的方式进行说明。
在本实施方式的说明中,将L设为2以上的整数。另外,将2K超过L的最小的自然数设为K,将从2K减去L而得到的自然数设为p,将从L减去2K-1而得到的自然数设为q。进而,假设比特值“x”为比特值“1”、比特值“y”为比特值“0”,或者比特值“x”为比特值“0”、比特值“y”为比特值“1”。
《编码装置》
参照图2以及图3,说明第五实施方式的编码装置100执行的编码方法的处理过程。如图2所示,第五实施方式的编码装置100包括整数编码部110。通过第五实施方式的编码装置100执行图3所示的各步骤的处理,实现第五实施方式的编码方法。
在第五实施方式的编码装置100中被输入非负的整数值xn、n∈{1,2,...,N}的序列(以下,称为“整数序列”)。以下,将输入到编码装置100的非负的整数值仅称为“整数值”进行说明。
[整数编码部110]
整数编码部110,作为与在整数序列中包含的整数值0的L个连续对应的代码,得到比特值为“x”的1比特的代码(以下,称为“代码A”),作为与基于在整数序列中包含的、0个至L-1个连续的整数值0、和1个0以外的整数值xn的组对应的代码,得到在第1比特至K比特为止中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起的K×(xn-1)比特的比特值为“y”的、K×xn比特或者K×xn+1比特的代码(以下,称为“代码B”)(S110)。具体地说,对每次N样本的整数序列x1,x2,…,xN使用在第三实施方式中说明的代码树或在第四实施方式中说明的对应表进行编码,得到代码A或代码B。
另外,对于代码B,在整数序列中的整数值0的0个到L-1个的L种类的连续个数与以下的L种类的部分代码之间存在一对一的对应关系。
(代码B的部分代码)
(a)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码。
(b)代码B为K×xn比特时的、由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的、p-1种类(即,2K-L-1种类)的部分代码。
(c)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与上述的(b)的p-1种类(即,2K-L-1种类)不同、第K+1比特的比特值为“x”或者“y”的、2q种类(即,2L-2K种类)的部分代码。
《解码装置》
参照图7以及图8,说明第五实施方式的解码装置150执行的解码方法的处理过程。如图7所示,第五实施方式的解码装置150包括整数解码部160。通过第五实施方式的解码装置150执行图8所示的各步骤的处理,实现第五实施方式的解码方法。
在第五实施方式的解码装置150中,被输入第五实施方式的编码装置100输出的代码串。以下,与上述编码装置的说明相同,将非负的整数值仅称为“整数值”来进行说明。
[整数解码部160]
整数解码部160从在所输入的代码串中包含的、比特值为“x”的1比特的代码(以下,称为“代码A”),得到整数值0的L个连续,从在所输入的代码串中包含的从第1比特至第K比特为止中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起的K×(xn-1)比特的比特值为“y”的、K×xn比特或者K×xn+1比特的代码(以下,称为“代码B”),得到基于0个至L-1个连续的整数值0、和1个0以外的整数值xn的组(S160)。具体地说,对于所输入的代码串中包含的代码,使用在第三实施方式中说明的代码树或在第四实施方式中说明的对应表进行解码,得到与代码A或代码B对应的上述整数值的序列。
整数解码部160例如通过进行以下两个处理,从而确定所输入的代码串中包含的代码A和代码B。两个处理是指,整数解码部160从输入的代码串的最初开始按顺序将输入的代码串每次连续的K比特(以下称为“K比特串”)地读入;当读入的K比特串是包含“y”的比特串时,识别为包含该“y”的K比特串的紧前面的比特是代码A或者代码B的末端的比特。
另外,关于代码B,在以下的L种类的部分代码、和基于由整数解码部160得到的整数值的序列中的整数值0的0个到L-1个的L种类的连续个数之间存在一对一的对应关系。
(代码B的部分代码)
(a)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码。
(b)代码B为K×xn比特时的、由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的、p-1种类(即,2K-L-1种类)的部分代码。
(c)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与上述的(b)的p-1种类(即,2K-L-1种类)不同、第K+1比特的比特值为“x”或者“y”的、2q种类(即,2L-2K种类)的部分代码。
《代码串的数据结构》
对第五实施方式的编码装置以及解码装置处理的代码串的数据结构、即第三实施方式以及第四实施方式的编码装置从整数值的序列得到的、第三实施方式以及第四实施方式的解码装置为了得到整数值的序列而使用的代码串的数据结构进行说明。
[代码串的数据结构]
表示作为非负值的整数值xn、n∈{1,2,...,N}的序列(以下,称为“整数序列”)的代码串,是在从整数序列得到代码串的编码装置或从代码串得到整数序列的解码装置中使用的代码串。
代码串的数据结构包含:作为与在整数序列中包含的整数值0的L个连续对应的代码的、比特值为“x”的1比特的代码(以下,称为“代码A”)、和作为与基于在整数序列中包含的、0个至L-1个连续的整数值0和1个0以外的整数值xn的组对应的代码的、K×xn比特或者K×xn+1比特的代码(以下,称为“代码B”),该K×xn比特或者K×xn+1比特的代码在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起K×(xn-1)比特的比特值为“y”。
另外,对于代码B,在整数序列中的整数值0的0个到L-1个的L种类的连续个数与以下的L种类的部分代码之间存在一对一的对应关系。
(代码B的部分代码)
(a)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码。
(b)代码B为K×xn比特时的、由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的、p-1种类(即,2K-L-1种类)的部分代码。
(c)代码B为K×xn+1比特时的、由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与上述的(b)的p-1种类(即,2K-L-1种类)不同、第K+1比特的比特值为“x”或者“y”的、2q种类(即,2L-2K种类)的部分代码。
根据本实施方式的发明,即使是还包含不是零值的小的值、且较大地偏向小的值的整数值的序列、或在非专利文献2的技术中值不能完全对应地值产生偏向的整数值的序列,也能够以较少的平均比特数进行编码。此外,可以对这样的代码进行解码。
<第六实施方式>
如上述,用于本发明的代码的编码参数L,与扩展为比0大且比1小的值的格伦布参数或扩展为负值的赖斯参数对应,本发明的代码也可以解释作为对于扩展为比0大且比1小的值的格伦布参数的格伦布代码或对于负值的赖斯参数的G格伦布-赖斯代码。因此,可以根据现有的最佳格伦布参数的估计法,对基于输入的整数值的序列的部分序列求出最佳的编码参数L,将使用求出的编码参数L的第三实施方式至第五实施方式的整数编码部的处理与格伦布编码组合,对输入的整数值的序列进行编码,也可以进行与该编码对应的解码。将该方式作为第六实施方式进行说明。
《编码装置》
参照图16以及图17,说明第六实施方式的编码装置400执行的编码方法的处理过程。如图16所示,第六实施方式的编码装置400包括参数决定部420和整数编码部410。通过第六实施方式的编码装置400执行图17所示的各步骤的处理,实现第六实施方式的编码方法。
与第三至第五实施方式同样地,在第六实施方式的编码装置400中被输入非负的整数值的序列。输入到第六实施方式的编码装置400的非负整数值的序列每次N个样本地被输入到参数决定部420和整数编码部410。即,第六实施方式的编码装置400例如将基于由麦克风拾取的声音或音乐等变换为数字信号并进行量化而得到的整数值的绝对值的序列等整数值的序列,按基于N样本的每一帧进行编码。
以下,将输入到本实施方式的编码装置的非负的整数值仅称为“整数值”来进行说明。
[参数决定部420]
在参数决定部420中被输入在编码装置400中输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN。参数决定部420基于所输入的整数序列x1,x2,…,xN,得到并输出与该整数序列对应的格伦布参数s和作为表示该参数的代码的参数代码(S420)。参数代码对格伦布参数进行编码而得到即可,使得通过解码装置450对该参数代码进行解码而能够得到参数决定部420决定的格伦布参数s。
参数决定部420例如使用在所输入的整数序列x1,x2,…,xN中包含的各整数值,通过式(5)得到格伦布参数s。
【数学式6】
由式(5)求出的格伦布参数s,是将对整数序列x1,x2,…,xN通过式(2)估计的格伦布编码时的总比特长度的估计值进行最小化的参数。
然后,参数决定部420例如将通过式(5)得到的格伦布参数s进行标量量化得到代码,将得到的代码作为参数代码输出,并将与该参数代码对应的格伦布参数s的量化值作为格伦布参数s输出。
[整数编码部410]
在整数编码部410中,被输入在编码装置400中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN、和参数决定部420输出的格伦布参数s。整数编码部410在格伦布参数s为1以上的情况下,在通过将格伦布参数s的小数第一位进行四舍五入等,将格伦布参数s舍入成整数值后,对于整数序列x1,x2,…,xN进行基于整数值的格伦布参数s的格伦布编码,将通过格伦布编码得到的代码作为整数代码输出,在格伦布参数s为小于1的情况下,从格伦布参数s通过后述的处理得到L的值,通过将得到的L的值的小数第一位进行四舍五入等,将L的值舍入成为整数值,从而得到编码参数L,使用得到的编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出(S410)。而且,在编码参数L为1和2之间的值的情况下,例如使舍入后的整数值为2即可。
从格伦布参数s得到L的值的处理,通过求出以s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同的L的值、或者求出能够将以s表现的指数分布p(x,2-1/s)来用以L表现的指数分布p(x,1-2-1/L)进行近似这样的L的值来进行。即,从格伦布参数s得到L的值,使得以s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系。例如,使用根据p(x,2-1/s)=p(x,1-2-1/L)直接导出的从s向L的变换式、即式(6a),从格伦布参数s求出L的值。
【数学式7】
L=-(log2(1-2-1/s))-1…(6a)
另外,例如,作为将用s表现的指数分布p(x,2-1/s)以用L表现的指数分布p(x,1-2-1/L)来进行近似的L的值,也可以使用将上述式(6a)进行近似而得到的式(6b),求出L的值。
【数学式8】
L=21/s-1…(6b)
《解码装置》
参照图18以及图19,说明第六实施方式的解码装置450执行的解码方法的处理过程。如图18所示,第六实施方式的解码装置450包括参数解码部470和整数解码部460。通过第六实施方式的解码装置450执行图19所示的各步骤的处理,实现第六实施方式的解码方法。
在第六实施方式的解码装置450中被输入从第六实施方式的编码装置400输出的整数代码和参数代码。输入到解码装置450的整数代码以及参数代码按与整数值的序列的N样本对应的每一个代码,被输入到参数解码部470和整数解码部460。即,解码装置450对与编码装置400相同的每一帧进行解码处理。
[参数解码部470]
参数解码部470中,被输入在解码装置450中被输入的参数代码。参数解码部470通过与参数决定部420得到参数代码对应的解码处理,对参数代码进行解码,得到格伦布参数s并输出(S470)。参数解码部470例如通过与编码装置400的参数决定部420进行的标量量化对应的解码处理,得到与参数代码对应的格伦布参数s的量化值作为格伦布参数s并输出。
[整数解码部460]
整数解码部460中,被输入解码装置450中所输入的整数代码、参数解码部470输出的格伦布参数s。整数解码部460在格伦布参数s为1以上的情况下,通过与编码装置400的整数编码部410进行的方法相同的方法将格伦布参数s舍入成整数值后,对于整数代码进行基于格伦布参数s的格伦布解码,得到整数序列x1,x2,…,xN并输出,在格伦布参数s为小于1的情况下,通过与第六实施方式的整数编码部410相同的处理从格伦布参数s得到编码参数L,使用得到的编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出(S460)。
根据本实施方式的发明,通过对整数值的序列或其部分序列使用最佳的编码参数L,能够以较少的平均比特数进行编码。此外,可以对这样的代码进行解码。
<第六实施方式的变形例1>
在第六实施方式中,进行了与格伦布编码/解码组合的编码/解码处理,但也可以不与格伦布编码/解码组合。将不与格伦布编码/解码组合的方式作为第六实施方式的变形例1进行说明(参照图16、图17)。第六实施方式的变形例1的编码装置400和第六实施方式的编码装置400仅整数编码部410的动作不同。另外,第六实施方式的变形例1的解码装置450和第六实施方式的解码装置450仅整数解码部460的动作不同。因此,以下将说明整数编码部410的动作和整数解码部460的动作。
[整数编码部410]
在整数编码部410中,被输入在编码装置400中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN、和参数决定部420输出的格伦布参数s。整数编码部410在格伦布参数s为1以上的情况下,将2作为编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出,在格伦布参数s小于1的情况下,通过与第六实施方式的整数编码部410相同的处理,从格伦布参数s得到编码参数L,使用得到的编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出(S410)。另外,在编码参数L为1和2之间的值的情况下,例如,将舍入后的整数值设为2即可。
[整数解码部460]
整数解码部460中,被输入在解码装置450中所输入的整数代码、参数解码部470输出的格伦布参数s。整数解码部460在格伦布参数s为1以上的情况下,使用2作为编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出,在格伦布参数s小于1的情况下,通过与第六实施方式的变形例1的整数编码部410相同的处理,从格伦布参数s得到编码参数L,使用得到的编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出(S460)。
<第六实施方式的变形例2>
在第六实施方式中,设为在整数编码部410中,格伦布参数s小于1的情况下、从格伦布参数s得到编码参数L的结构,但也可以设为在参数决定部420中,格伦布参数s小于1的情况下、从整数序列直接得到编码参数L的结构。以下将该方式作为第六实施方式的变形例2进行说明(参照图16、图17)。
[参数决定部420]
第六实施方式的参数决定部420是与格伦布参数的值无关地,必定输出格伦布参数和与该格伦布参数对应的参数代码的结构,但第六实施方式的变形例2的参数决定部420在格伦布参数s为1以上的情况下,输出格伦布参数s和与该格伦布参数s对应的参数代码,在格伦布参数s小于1的情况下,从整数序列得到编码参数L,输出编码参数L和与该编码参数L对应的参数代码(S420)。
参数决定部420例如使用在所输入的整数序列x1,x2,…,xN中所包含的各整数值,通过式(7a)得到编码参数L。
【数学式9】
由式(7a)中求出的编码参数L,是将关于整数序列x1,x2,…,xN的相对于基于式(4b)的分布p(x,1-2-1/L)的对数似然性进行最大化的值。另外,如后述,整数编码部410在编码处理中使用的编码参数L或格伦布参数s不是参数决定部420求出的编码参数L的值本身,而是将编码参数L或根据编码参数L求出的格伦布参数s作为整数值的参数。因此,参数决定部420也可以不通过式(7a),而通过近似式(7a)的、例如下述的式(7b)得到编码参数L。
【数学式10】
即,式(7a)和式(7b)最终也只是一例,参数决定部420只要对于整数序列x1,x2,…,xN,得到对于指数分布p(x,1-2-1/L)的似然性、似然性的估计值、对数似然性、对数似然性的估计值中的任一个为最大这样的编码参数L即可。
然后,参数决定部420对于通过上述的处理得到的编码参数L例如进行标量量化而得到代码,将与该代码对应的编码参数L的量化值作为编码参数L并输出。
参数代码,设为对应的解码装置452能够唯一地确定格伦布参数s的值和编码参数L的值的代码即可。例如,参数决定部420通过将在对格伦布参数s进行编码得到的代码之前附加1比特的代码‘1’后的结果作为参数代码,并将在对编码参数L进行编码得到的代码之前附加1比特的代码‘0’后的结果设为参数代码等,只要在分配给格伦布参数s的参数代码的代码群、和分配给编码参数L的参数代码的代码群中不包含相同的代码即可。
[整数编码部410]
在整数编码部410中,被输入在编码装置400中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN、和参数决定部420输出的格伦布参数s或者编码参数L。整数编码部410在被输入了格伦布参数s的情况下,将格伦布参数s舍入成为整数值,对于整数序列x1,x2,…,xN,进行基于整数值的格伦布参数s的格伦布编码,将通过格伦布编码得到的代码作为整数代码并输出,在被输入了编码参数L的情况下,将编码参数L舍入成为整数值,使用整数值的编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出(S410)。另外,在编码参数L为1和2之间的值的情况下,例如将舍入后的整数值设为2即可。
[参数解码部470]
第六实施方式的参数解码部470对参数代码进行解码而得到格伦布参数,但第六实施方式的变形例2的参数解码部470对参数代码进行解码而得到格伦布参数s或编码参数L并输出(S 470)。
[整数解码部460]
在整数解码部460中被输入在解码装置450中所输入的整数代码、和参数解码部470输出的格伦布参数s或编码参数L。整数解码部460在被输入了格伦布参数s的情况下,在将格伦布参数s通过与编码装置400的整数编码部410进行的方法相同的方法舍入成为整数值后,对整数代码进行基于整数值的格伦布参数s的格伦布解码,得到整数序列x1,x2,…,xN并输出,在被输入了编码参数L的情况下,在将编码参数L通过与编码装置400的整数编码部410进行的方法相同的方法舍入而成为整数值后,使用整数值的编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出(S460)。
<第七实施方式>
在第六实施方式的编码装置中,首先求出格伦布参数s,从求出的格伦布参数s求出编码参数L,但是,也可以通过对本发明的代码为最佳的分布p(x,1-2-1/L)估计似然的L,从所输入的整数值的序列直接估计编码参数L。在该情况下,格伦布代码可以解释为基于取1以下的值的L的本发明的代码。因此,也可以从基于所输入的整数值的序列的部分序列直接求出最佳的编码参数L,将使用了求出的编码参数L的第三实施方式至第五实施方式的整数编码部110的处理与格伦布编码组合,对输入的整数值的序列进行编码,也可以进行与该编码对应的解码。将该方式作为第七实施方式进行说明。
《编码装置》
参照图16以及图17,说明第七实施方式的编码装置400执行的编码方法的处理过程。如图16所示,第七实施方式的编码装置400包括参数决定部420和整数编码部410。通过第七实施方式的编码装置400执行图17所示的各步骤的处理,实现第七实施方式的编码方法。
与第三实施方式至第六实施方式同样地,在第七实施方式的编码装置400中被输入非负的整数值的序列。被输入到第七实施方式的编码装置400的非负整数值的序列每次N样本地被输入到参数决定部420和整数编码部410。即,第七实施方式的编码装置400例如将基于由麦克风拾取的声音或音乐等变换为数字信号进行量化而得到的整数值的绝对值的序列等整数值的序列,按基于N样本的每一帧进行编码。
以下,将被输入到本实施方式的编码装置的非负的整数值仅称为“整数值”进行说明。
[参数决定部420]
在参数决定部420中被输入在编码装置400中输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN。参数决定部420基于所输入的整数序列x1,x2,…,xN,得到与该整数序列对应的编码参数L和作为表示该参数的代码的参数代码并输出(S420)。参数代码对编码参数L进行编码而得到即可,使得通过解码装置450对该参数代码进行解码而能够得到参数决定部420决定的编码参数L。
参数决定部420关于所输入的整数序列x1,x2,…,xN,得到对于指数分布p(x,1-2-1/L)的似然性、似然性的估计值、对数似然性、对数似然性的估计值的任一个成为最大的编码参数L。得到这样的编码参数L的处理,是如在第六实施方式的变形例2的参数决定部420的说明中如上述那样,参数决定部420例如使用在所输入的整数序列x1,x2,…,xN中包含的各整数值,通过式(7a)或者式(7b)得到编码参数L。
然后,参数决定部420例如对通过上述的处理得到的编码参数L进行标量量化以得到代码,将得到的代码作为参数代码输出,并将对应于该参数代码的编码参数L的量化值作为编码参数L输出。
[整数编码部410]
在整数编码部410中,被输入在编码装置400中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN、和参数决定部420输出的编码参数L。整数编码部410在编码参数L为1以下的情况下,从编码参数L通过后述的处理得到s的值,通过将得到的s的值的小数第一位进行四舍五入等,将s的值舍入成为整数值,从而得到格伦布参数s,使用得到的格伦布参数s,对整数序列x1,x2,…,xN进行基于格伦布参数s的格伦布编码,将通过格伦布编码得到的代码作为整数代码输出,在编码参数L大于1的情况下,在通过将编码参数L的小数第一位进行四舍五入等而将L的值舍入成为整数值后,使用整数值的编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出(S410)。另外,在编码参数L为1和2之间的值的情况下,例如将舍入后的整数值设为2即可。
从编码参数L得到s的值的处理,通过求出以L表现的指数分布p(x,1-2-1/L)和以s表现的指数分布p(x,2-1/s)成为相同的s的值,或者,求出能够将以L表现的指数分布p(x,1-2-1/L)用以s表现的指数分布p(x,2-1/s)进行近似这样的s的值来进行。即,从编码参数L得到s的值,使得以L表现的指数分布p(x,1-2-1/L)和以s表现的指数分布p(x,2-1/s)成为相同或者近似的关系。例如,使用根据p(x,1-2-1/L)=p(x,2-1/s)直接导出的从L向s的变换式、即式(8a),从编码参数L求出s的值。
【数学式11】
s=-(log2(1-2-1/L))-1…(8a)
另外,例如,作为将以L表现的指数分布p(x,1-2-1/L)用以s表现的指数分布p(x,2-1/s)进行近似的s的值,也可以使用将上述式(8a)进行近似而得到的式(8b),求出s的值。
【数学式12】
s=(log2L+1)-1…(8b)
《解码装置》
参照图18以及图19,说明第七实施方式的解码装置450执行的解码方法的处理过程。如图18所示,第七实施方式的解码装置450包括参数解码部470和整数解码部460。通过第七实施方式的解码装置450执行图19所示的各步骤的处理,实现第七实施方式的解码方法。
在第七实施方式的解码装置450中被输入从第七实施方式的编码装置400输出的整数代码以及参数代码。输入到解码装置450的整数代码以及参数代码按与整数值的序列的N样本对应的每一个代码,被输入到参数解码部470和整数解码部460。即,解码装置450对与编码装置400相同的每一帧进行解码处理。
[参数解码部470]
在参数解码部470中被输入在解码装置450中被输入的参数代码。参数解码部470通过与参数决定部420得到参数代码对应的解码处理,对参数代码进行解码,得到编码参数L并输出(S470)。参数解码部470例如通过与编码装置400的参数决定部420进行的标量量化对应的解码处理,得到与参数代码对应的编码参数L的量化值作为编码参数L并输出。
[整数解码部460]
在整数解码部460中被输入解码装置450中所输入的整数代码、参数解码部470输出的编码参数L。整数解码部460在编码参数L为1以下的情况下,通过与第七实施方式的整数编码部410相同的处理,从编码参数L得到格伦布参数s,使用得到的格伦布参数s,对于整数代码进行基于格伦布参数s的格伦布解码,得到整数序列x1,x2,…,xN并输出,在编码参数L大于1的情况下,在通过与编码装置400的整数编码部410进行的方法相同的方法将编码参数L舍入成为整数值后,使用整数值的编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出(S460)。
根据本实施方式的发明,通过对整数值的序列或其部分序列使用最佳的编码参数L,能够以较少的平均比特数进行编码。此外,可以对这样的代码进行解码。
<第七实施方式的变形例1>
在第七实施方式中,进行了与格伦布编码/解码组合的编码/解码处理,但也可以不与格伦布编码/解码组合。将不与格伦布编码/解码组合的方式作为第七实施方式的变形例1进行说明(参照图16、图17)。第七实施方式的变形例1的编码装置400和第七实施方式的编码装置400仅整数编码部410的动作不同。另外,第七实施方式的变形例1的解码装置450和第七实施方式的解码装置450仅整数解码部460的动作不同。因此,以下将说明整数编码部410的动作和整数解码部460的动作。
[整数编码部410]
在整数编码部410中被输入在编码装置400中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN、和参数决定部420输出的编码参数L。整数编码部410在通过将所输入的编码参数L的小数第一位进行四舍五入等,将L的值舍入成为整数值后,在整数值的编码参数L为1以下的情况下,将2使用作为编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出,在整数值的编码参数L大于1的情况下,使用整数值的编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出(S410)。
[整数解码部460]
在整数解码部460中被输入在解码装置450中所输入的整数代码、和参数解码部470输出的编码参数L。整数解码部460在通过与编码装置400的整数编码部410进行的方法相同的方法,将所输入的编码参数L舍入成为整数值后,在整数值的编码参数L为1以下的情况下,将2使用作为编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出,在整数值的编码参数L大于1的情况下,使用整数值的编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出(S460)。
<第七实施方式的变形例2>
在第七实施方式中,设为在整数编码部410中编码参数L为1以下的情况下、从编码参数L得到格伦布参数s的结构,但也可以设为在参数决定部420中编码参数L为1以下的情况下、从整数序列直接得到格伦布参数s的结构。将该方式作为第七实施方式的变形例2,以下进行说明(参照图16、图17)。
[参数决定部420]
第七实施方式的参数决定部420是与编码参数L的值无关地,必定输出编码参数L和与该编码参数L对应的参数代码的结构,但第七实施方式的变形例2的参数决定部420在编码参数L大于1的情况下,输出编码参数L和与该编码参数L对应的参数代码,在编码参数L为1以下的情况下,通过式(5)从整数序列得到格伦布参数s,输出格伦布参数s和与该格伦布参数s对应的参数代码(S420)。此时,与第六实施方式的变形例2同样,参数代码设为对应的解码装置450能够唯一地确定格伦布参数s的值和编码参数L的值的码即可。
[整数编码部410]
在整数编码部410中被输入在编码装置400中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN、和参数决定部420输出的编码参数L或者格伦布参数s。整数编码部410在被输入了格伦布参数s的情况下,在将格伦布参数s的值舍入而成为整数值后,对整数序列x1,x2,…,xN,进行基于整数值的格伦布参数s的格伦布编码,将通过格伦布编码得到的代码作为整数代码输出,在被输入了编码参数L的情况下,在将编码参数L舍入而成为整数值后,使用整数值的编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出(S410)。另外,在编码参数L为1和2之间的值的情况下,例如将舍入后的整数值设为2即可。
[参数解码部470]
第七实施方式的参数解码部470对参数代码进行解码而得到编码参数L,但第七实施方式的变形例2的参数解码部470对参数代码进行解码而得到编码参数L或格伦布参数s并输出(S470)。
[整数解码部460]
在整数解码部460中被输入在解码装置450中所输入的整数代码和参数解码部470输出的编码参数L或格伦布参数s。整数解码部460在被输入格伦布参数s的情况下,通过与编码装置400的整数编码部410进行的方法相同的方法,将格伦布参数s的值舍入成为整数值,对整数代码进行基于整数值的格伦布参数s的格伦布解码,得到整数序列x1,x2,…,xN并输出,在被输入了编码参数L的情况下,在将编码参数L通过与编码装置400的整数编码部410进行的方法相同的方法舍入而成为整数值后,使用整数值的编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出(S460)。
<第六实施方式以及第七实施方式的其它的变形>
另外,格伦布参数s和编码参数L,是能够基于以s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)处于相同或者近似的关系的事实,通过式(6a)、(6b)、(8a)、(8b)等相互进行变换的,因此,只要能够在编码装置400的整数编码部410和解码装置450的整数解码部460中使用相同参数的相同值,则将哪个参数作为编码/解码的对象和上述的变换如何组合使用都可以。另外,如果能够在编码装置400的整数编码部410和解码装置450的整数解码部460中使用相同参数的相同值,则可以将格伦布参数s和编码参数L的哪一个值作为舍入处理的对象,也可以将参数的编码前后(即量化前后)的哪一个值作为舍入处理的对象,还可以同时进行编码中的值的量化和舍入处理。总之,在第六实施方式和第七实施方式以及它们的变形例1和变形例2中说明的最终也只是一例,对于基于N样本的每一帧,只要在编码装置400的整数编码部410和解码装置450的整数解码部460中能够进行使用相同的参数的相同的值的编码处理和解码处理即可。
另外,如上所述,由于s是2的幂乘数的格伦布代码是格伦布-赖斯代码,所以也可以取代格伦布参数s而使用赖斯参数r,或者取代格伦布编码和格伦布解码而使用格伦布-赖斯编码和格伦布-赖斯解码。另外,赖斯参数r和编码参数L,能够通过将表示格伦布参数s和赖斯参数r的关系的式子即s=2r、格伦布参数s和编码参数L的变换式组合得到的式子、例如下述的式(9)以及式(10)进行相互变换。即,能够从赖斯参数r得到编码参数L,也能够从编码参数L得到赖斯参数r,使得以作为2r的s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系,
【数学式13】
<第八实施方式>
在第六实施方式以及第七实施方式中,说明了通过使用对基于输入的整数值的序列的部分序列求出的格伦布参数s、赖斯参数r、编码参数L来进行第三实施方式至第五实施方式的编码/解码,从而实现本发明的编码和解码的方式。在第八实施方式中,说明使用格伦布参数s、赖斯参数r、编码参数L中的至少其中一个来实现本发明的编码和解码的方式。
《编码装置》
参照图16以及图17,说明第八实施方式的编码装置400执行的编码方法的处理过程。如图16所示,第八实施方式的编码装置400包括参数决定部420和整数编码部410。通过第八实施方式的编码装置400执行图17所示的各步骤的处理,实现第八实施方式的编码方法。
在第八实施方式的编码装置400中被输入非负的整数值的序列。在第八实施方式的编码装置400中所输入的非负的整数值的序列每次N样本地被输入到参数决定部420和整数编码部410中。
以下,将被输入到本实施方式的编码装置的非负的整数值仅称为“整数值”来进行说明。
[参数决定部420]
在参数决定部420中被输入在编码装置400中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN。参数决定部420基于所输入的整数序列x1,x2,…,xN,得到与该整数序列对应的格伦布参数s、赖斯参数r、编码参数L的至少任一个、和表示该格伦布参数s、赖斯参数r、编码参数L的至少任一个的参数代码并输出(S420)。即,参数决定部420对于作为在基于所输入的非负的整数值的序列中包含的基于每个规定样本的整数值的序列的整数序列的每一个,进行如下处理:基于在整数序列中包含的整数值求出格伦布参数s的处理、基于在整数序列中所包含的整数值求出赖斯参数r的处理、关于整数序列求出对于指数分布p(xn,1-2-1/L)的似然性、似然性的估计值、对数似然性、对数似然性的估计值中的任一个成为最大的编码参数L的处理中的至少任一个处理、以及对格伦布参数s、赖斯参数r和编码参数L的至少任一个进行编码而得到参数代码的处理。
[整数编码部410]
在整数编码部410中被输入在编码装置400中所输入的整数值的序列中的、每次N样本的整数序列x1,x2,…,xN、参数决定部420输出的格伦布参数s、赖斯参数r、编码参数L的至少任一个。整数编码部410在被输入了编码参数L的情况下,使用所输入的编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出,在被输入了格伦布参数s的情况下,使用从所输入的格伦布参数s得到的编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出,在被输入了赖斯参数r的情况下,使用从所输入的赖斯参数r得到的编码参数L,通过与第三实施方式至第五实施方式的整数编码部110的任一个处理相同的处理,得到整数代码并输出(S410)。即,整数编码部410按作为基于每个规定样本的整数值的序列的整数序列的每一个,使用参数决定部420得到的编码参数L、或者为了以s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系而从参数决定部420得到的格伦布参数s得到的编码参数L、或者为了以作为2r的s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系而从参数决定部420得到的赖斯参数r得到的编码参数L,作为编码参数L,得到代码A或者代码B的代码。另外,在与整数序列对应的编码参数L为1以下的情况下、或者与整数序列对应的格伦布参数s为1以上的情况下、或者与整数序列对应的赖斯参数r为非负的情况下,也可以将整数序列进行格伦布编码或者格伦布赖斯编码而得到代码串来作为整数代码并输出。
《解码装置》
参照图18以及图19,说明第八实施方式的解码装置450执行的解码方法的处理过程。如图18所示,第八实施方式的解码装置450包括参数解码部470和整数解码部460。通过第八实施方式的解码装置450执行图19所示的各步骤的处理,实现第八实施方式的解码方法。
在第八实施方式的解码装置450中被输入第八实施方式的编码装置400输出的整数代码以及参数代码。输入到解码装置450的整数代码以及参数代码,按与整数值的序列的N样本对应的每一个代码,被输入到参数解码部470和整数解码部460。即,对参数解码部470和整数解码部460输入每个规定单位的参数代码和代码串。
[参数解码部470]
参数解码部470通过与参数决定部420得到参数代码相对应的解码处理,对参数代码进行解码,以得到格伦布参数s、赖斯参数r和编码参数L中的至少任一个并输出(S470)。即,参数解码部470按每个规定单位对参数代码进行解码,得到格伦布参数s、赖斯参数r和编码参数L中的至少任一个。
[整数解码部460]
整数解码部460中被输入在解码装置450中所输入的整数代码、参数解码部470输出的格伦布参数s、赖斯参数r和编码参数L的至少任一个。整数解码部460在被输入了编码参数L的情况下,使用所输入的编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出,在被输入了格伦布参数s的情况下,使用从所输入的格伦布参数s得到的编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出,在被输入了赖斯参数r的情况下,使用从所输入的赖斯参数r得到的编码参数L,通过与第三实施方式至第五实施方式的整数解码部160的任一个处理相同的处理,得到整数序列x1,x2,…,xN并输出(S460)。即,整数解码部460按每个规定单位,使用参数解码部470得到的编码参数L、或者为了以s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系而从参数解码部470得到的格伦布参数s得到的编码参数L、或者为了以作为2r的s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系而从参数解码部470得到的赖斯参数r得到的编码参数L,来作为编码参数L,得到基于由整数值0的L个连续、或由基于0个至L-1个连续的整数值0和1个0以外的整数值xn的组构成的整数值的序列。另外,在编码参数L为1以下的情况下、或者格伦布参数s为1以上的情况下、或者赖斯参数r为非负的情况下,也可以对代码串进行格伦布解码或者格伦布赖斯解码,得到基于整数值的序列并输出。
根据本实施方式的发明,通过对整数值的序列或其部分序列使用最佳的编码参数L,能够以较少的平均比特数进行编码。此外,可以对这样的代码进行解码。
<补记>
本发明的装置例如作为单一的硬件实体,具有:可连接键盘等的输入部、可连接液晶显示器等的输出部、可连接能够对硬件实体的外部进行通信的通信装置(例如通信电缆)的通信部、CPU(也可以具有中央处理单元(Central Processing Unit)、闪速存储器或寄存器等)、作为存储器的RAM或ROM、作为硬盘的外部存储装置、以及进行连接以在这些输入部、输出部、通信部、CPU、RAM、ROM、外部存储装置之间进行数据交换的总线。另外,根据需要,在硬件实体中也可以设置能够读写CD-ROM等的记录介质的装置(驱动器)等。作为具有这样的硬件资源的物理的实体,有通用计算机等。
在硬件实体的外部存储装置中,存储了用于实现上述的功能所需要的程序以及在该程序的处理中所需要的数据等(不限于外部存储装置,例如也可以预先读出程序,使其存储在作为专用存储装置的ROM)。而且,通过这些程序的处理所得到的数据等,被适当地存储在RAM或外部存储装置等。
在硬件实体中,在外部存储装置(或者ROM等)所存储的各程序和该各程序的处理所需要的数据根据需要被读入到存储器,适当地在CPU中进行解释执行/处理。其结果,CPU实现规定的功能(作为上述、…部、…单元等表示的各构成要件)。
本发明没有被限定于上述的实施方式,在不脱离本发明的宗旨的范围内能够适当进行变更。
例如,在上述的实施方式中,说明了输入到编码装置的非负的整数值的序列,是对将声音、图像、影像信号变换为数字信号得到的信号进行量化成为有限精度的值、基于由此得到的整数值的绝对值的序列的例子,但是,输入到编码装置的非负整数值的序列也可以是对基于上述以外的信号、例如心电图或心磁图、脑电图、表面肌电图、皮肤电位等生物信号的时序信号进行量化成为有限精度的值、基于由此得到的整数值的绝对值的序列。
或者,被输入到编码装置的非负的整数值的序列,也可以不是时序信号,而是例如对基于从计算机断层摄影、核磁共振图像法、超声波断层图像、血管造影等得到的医疗用图像的信号进行量化而成为有限精度的值、基于由此得到的整数值的绝对值的序列。进而,输入到编码装置的非负的整数值的序列,也可以是对不是信号的数值的序列进行量化而成为有限精度的值、基于由此得到的整数值的绝对值的序列,该不是信号的数值的序列是例如表示与基因信息序列的各基因有关的测定误差的质量得分那样的序列。
另外,输入到编码装置的非负整数值的序列,也可以是例如对将声音、图像或影像信号变换为数字信号而得到的信号通过余弦变换等变换为频谱后进行量化,成为有限精度的值,基于由此得到整数值的绝对值的序列,也可以是对上述信号或不是信号的数值的序列进行了高通滤波器或低通滤波器等滤波器处理的序列进行量化而成为有限精度的值、基于由此得到的整数值的绝对值的序列。
在本发明的编码装置中,为了与这些输入对应,作为将输入到编码装置的信号或数值的序列变换为非负整数值的序列的处理部,也可以在图2或图16的编码装置的前级具备未图示的变换部。同样,在本发明的解码装置中,为了得到与上述输入对应的输出,作为将整数解码部得到的非负整数值的序列变换为信号或数值的序列的处理部,也可以在图7或图18的整数解码部的后级具备未图示的逆变换部。
而且,上述实施方式中说明的处理不仅根据记载的顺序时序地执行,也可以根据执行处理的装置的处理能力或者需要而并行或者单独地执行。
如已述那样,在通过计算机实现上述实施方式中说明的硬件实体(本发明的装置)中的处理功能的情况下,硬件实体应该具有的功能性的处理内容通过程序被记述。然后,通过在计算机上执行该程序,在计算机上实现上述硬件实体中的处理功能。
记述了该处理内容的程序,能够被预先记录在计算机可读取的记录介质中。作为由计算机可读取的记录介质,例如磁记录装置、光盘、光磁记录介质、半导体存储器等什么样的装置都可以。具体地说,例如,作为磁记录装置,可以使用硬盘装置、软盘、磁带等,作为光盘,可以使用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 (12)
1.一种编码装置,包括整数编码部,所述整数编码部对于基于所输入的非负的整数值xn、n∈{1,2,...,N}的序列、即“整数序列”,
将L设为2以上的整数,将2K超过L的最小的自然数设为K,将从2K减去L而得到的自然数设为p,将从L减去2K-1而得到的自然数设为q,
设为比特值“x”为比特值“1”、比特值“y”为比特值“0”、或者、比特值“x”为比特值“0”、比特值“y”为比特值“1”,
作为与在所述整数序列中包含的整数值0的L个的连续对应的代码,得到比特值为“x”的1比特的代码、即“代码A”,
作为与基于在所述整数序列中包含的、0个至L-1个连续的整数值0和1个0以外的整数值xn的组对应的代码,得到在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起K×(xn-1)比特的比特值为“y”的K×xn比特或者K×xn+1比特的代码、即“代码B”,
整数序列中的整数值0的0个至L-1个的L种类的连续个数分别与
(a)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、
(b)代码B为K×xn比特时的、
由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的p-1种类、即2K-L-1种类的部分代码、
(c)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与所述的(b)的p-1种类即2K-L-1种类不同、第K+1比特的比特值为“x”或者“y”的2q种类、即2L-2K种类的部分代码、
这L种类的部分代码中的任一个一对一地对应。
2.根据权利要求1所述的编码装置,其中,
所述整数序列是在基于所输入的非负的整数值的序列中包含的、基于每个规定样本的整数值的序列,
所述编码装置还包括参数决定部,所述参数决定部对于每一个所述整数序列进行:
基于在所述整数序列中包含的整数值,求出格伦布参数s的处理、基于在所述整数序列中包含的整数值,求出赖斯参数r的处理、以及对于所述整数序列,求出对于指数分布p(xn,1-2-1/L)的似然性、似然性的估计值、对数似然性、对数似然性的估计值中的任一个成为最大的编码参数L的处理、中的任一个处理;以及
对格伦布参数s、赖斯参数r和编码参数L的至少任一个进行编码而得到参数代码的处理,
所述整数编码部对于每一个所述整数序列,将
所述参数决定部得到的编码参数L、
或者、为了以s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系,而从所述参数决定部得到的所述格伦布参数s得到的编码参数L、
或者、为了以作为2r的s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系,而从所述参数决定部得到的所述赖斯参数r得到的编码参数L,
使用作为上述L。
3.根据权利要求2所述的的编码装置,其中,
所述整数编码部在与所述整数序列对应的所述编码参数L为1以下的情况下、或者与所述整数序列对应的所述格伦布参数s为1以上的情况下、或者与所述整数序列对应的所述赖斯参数r为非负的情况下,对所述整数序列进行格伦布编码或者格伦布赖斯编码,得到代码串。
4.一种解码装置,包括整数解码部,所述整数解码部对于所输入的代码串,
将L设为2以上的整数,将2K超过L的最小的自然数设为K,将从2K减去L而得到的自然数设为p,将从L减去2K-1而得到的自然数设为q,
设为比特值“x”为比特值“1”、比特值“y”为比特值“0”、或者、比特值“x”为比特值“0”、比特值“y”为比特值“1”,
从在所输入的所述代码串中包含的、比特值为“x”的1比特的代码、即“代码A”,得到整数值0的L个的连续,
从在所输入的所述代码串中包含的、第1比特至第K比特为止中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起K×(xn-1)比特的比特值为“y”的K×xn比特或者K×xn+1比特的代码、即“代码B”中,通过得到基于0个至L-1个连续的整数值0、和1个0以外的整数值xn的组,从而得到基于整数值xn、n∈{1,2,...,N}的序列,
(a)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、
(b)代码B为K×xn比特时的、
由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的p-1种类、即2K-L-1种类的部分代码、
(c)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与所述的(b)的p-1种类即2K-L-1种类不同、第K+1比特的比特值为“x”或者“y”的2q种类、即2L-2K种类的部分代码、的L种类的部分代码,分别与基于由所述整数解码部得到的整数值的序列中的整数值0的0个至L-1个的L种类的连续个数中的任一个一对一地对应。
5.根据权利要求4所述的解码装置,其中,
所述整数解码部通过从所输入的所述代码串的最初起按顺序进行:
将所输入的所述代码串每次连续的K比特、即“K比特串”地读入、
当读入的所述K比特串是包含“y”的比特串时,识别为包含该“y”的K比特串的紧前的比特是所述代码A或者所述代码B的末端的比特,从而
确定在所输入的所述代码串中包含的所述代码A和所述代码B。
6.根据权利要求4或者5所述的解码装置,还包括参数解码部,
所述参数解码部被输入每个规定单位的参数代码和所述代码串,对于每个规定单位,对所述参数代码进行解码,得到格伦布参数s、赖斯参数r、编码参数L的至少任一个,
所述整数解码部对于每个规定单位,将
所述参数解码部得到的编码参数L、
或者、为了以s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系,而从所述参数解码部得到的所述格伦布参数s得到的编码参数L、
或者、为了以作为2r的s表现的指数分布p(x,2-1/s)和以L表现的指数分布p(x,1-2-1/L)成为相同或者近似的关系,而从所述参数解码部得到的所述赖斯参数r得到的编码参数L,
使用作为上述L。
7.根据权利要求6所述的解码装置,
所述整数解码部在所述编码参数L为1以下的情况下、或者所述格伦布参数s为1以上的情况下、或者所述赖斯参数r为非负的情况下,对所述代码串进行格伦布解码或者格伦布赖斯解码,得到基于整数值的序列。
8.一种代码串的数据结构,其是表示作为非负值的整数值xn、n∈{1,2,...,N}的序列、即“整数序列”的代码串的数据结构,
将L设为2以上的整数,将2K超过L的最小的自然数设为K,将从2K减去L而得到的自然数设为p,将从L减去2K-1而得到的自然数设为q,
设为比特值“x”为比特值“1”、比特值“y”为比特值“0”,或者比特值“x”为比特值“0”、比特值“y”为比特值“1”,
所述代码串在从所述整数序列得到所述代码串的编码装置、或者/以及、从所述代码串得到所述整数序列的解码装置中被使用,包括:
作为与在所述整数序列中包含的整数值0的L个的连续对应的代码的、比特值为“x”的1比特的代码、即“代码A”、以及
作为与基于在所述整数序列中包含的、0个至L-1个连续的整数值0、和1个0以外的整数值xn的组对应的代码的、在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起的K×(xn-1)比特的比特值为“y”的K×xn比特或者K×xn+1比特的代码、即“代码B”,
整数序列中的整数值0的0个至L-1个的L种类的连续个数分别与
(a)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、
(b)代码B为K×xn比特时的、
由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的p-1种类、即2K-L-1种类的部分代码、
(c)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与所述的(b)的p-1种类即2K-L-1种类不同、第K+1比特的比特值为“x”或者“y”的2q种类、即2L-2K种类的部分代码、的L种类的部分代码中的任一个一对一地对应。
9.一种编码方法,其是编码装置执行整数编码步骤的编码方法,在该整数编码步骤中,对于基于所输入的非负的整数值xn、n∈{1,2,...,N}的序列、即“整数序列”,
将L设为2以上的整数,将2K超过L的最小的自然数设为K,将从2K减去L而得到的自然数设为p,将从L减去2K-1而得到的自然数设为q,
设为比特值“x”为比特值“1”、比特值“y”为比特值“0”、或者、比特值“x”为比特值“0”、比特值“y”为比特值“1”,
作为与在所述整数序列中包含的整数值0的L个的连续对应的代码,得到比特值为“x”的1比特的代码、即“代码A”,
作为与基于在所述整数序列中包含的、0个至L-1个连续的整数值0、和1个0以外的整数值xn的组对应的代码,得到在第1比特至第K比特中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起K×(xn-1)比特的比特值为“y”的K×xn比特或者K×xn+1比特的代码、即“代码B”,
整数序列中的整数值0的0个至L-1个的L种类的连续个数分别与
(a)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、
(b)代码B为K×xn比特时的、
由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的p-1种类、即2K-L-1种类的部分代码、
(c)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与所述的(b)的p-1种类即2K-L-1种类不同、第K+1比特的比特值为“x”或者“y”的2q种类、即2L-2K种类的部分代码、的L种类的部分代码中的任一个一对一地对应。
10.一种解码方法,其是解码装置执行整数解码步骤的解码方法,在该整数解码步骤中,对于所输入的代码串,
将L设为2以上的整数,将2K超过L的最小的自然数设为K,将从2K减去L而得到的自然数设为p,将从L减去2K-1而得到的自然数设为q,
设为比特值“x”为比特值“1”、比特值“y”为比特值“0”,或者比特值“x”为比特值“0”、比特值“y”为比特值“1”,
从在所输入的所述代码串中包含的、比特值为“x”的1比特的代码、即“代码A”,得到整数值0的L个连续,
从在所输入的所述代码串中包含的、第1比特至第K比特为止中包含至少一个比特值“x”和至少一个比特值“y”、并且从最后起K×(xn-1)比特的比特值为“y”的K×xn比特或者K×xn+1比特的代码、即“代码B”中,通过得到基于0个至L-1个连续的整数值0、和1个0以外的整数值xn的组,从而得到基于整数值xn、n∈{1,2,...,N}的序列,
(a)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“x”、从第2比特至第K+1比特为止的比特值为“y”的、1种类的部分代码、
(b)代码B为K×xn比特时的、
由该代码B的第1比特至第K比特为止的K比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”的p-1种类、即2K-L-1种类的部分代码、
(c)代码B为K×xn+1比特时的、
由该代码B的第1比特至第K+1比特为止的K+1比特构成、第1比特的比特值为“y”、从第2比特至第K比特为止的K-1比特中的至少1比特的比特值为“x”、并且从第1比特至第K比特为止的K比特的组与所述的(b)的p-1种类即2K-L-1种类不同、第K+1比特的比特值为“x”或者“y”的2q种类、即2L-2K种类的部分代码、的L种类的部分代码,分别与基于由所述整数解码步骤得到的整数值的序列中的整数值0的0个至L-1个的L种类的连续个数中的任一个一对一地对应。
11.一种编码程序,用于使计算机作为权利要求1至3的任一项中记载的编码装置发挥作用。
12.一种解码程序,用于使计算机作为权利要求4至7的任一项中记载的解码装置发挥作用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018209841A JP7139897B2 (ja) | 2018-11-07 | 2018-11-07 | 符号化装置、復号装置、符号化方法、復号方法、符号化プログラム、復号プログラム |
JP2018-209841 | 2018-11-07 | ||
PCT/JP2019/041820 WO2020095706A1 (ja) | 2018-11-07 | 2019-10-25 | 符号化装置、復号装置、符号列のデータ構造、符号化方法、復号方法、符号化プログラム、復号プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112956131A true CN112956131A (zh) | 2021-06-11 |
CN112956131B CN112956131B (zh) | 2024-03-08 |
Family
ID=70611996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980072412.7A Active CN112956131B (zh) | 2018-11-07 | 2019-10-25 | 编码装置、解码装置、编码方法、解码方法、计算机可读取的记录介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11438009B2 (zh) |
EP (1) | EP3859976B1 (zh) |
JP (1) | JP7139897B2 (zh) |
CN (1) | CN112956131B (zh) |
WO (1) | WO2020095706A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230318622A1 (en) * | 2017-06-22 | 2023-10-05 | Nippon Telegraph And Telephone Corporation | Encoder, decoder, encoding method, decoding method and program |
CN114726926B (zh) * | 2022-03-30 | 2023-03-31 | 电子科技大学 | 一种用于拉普拉斯信源的自适应变长编码方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1857007A (zh) * | 2003-06-10 | 2006-11-01 | 简-奥洛夫·斯特龙伯格 | 压缩数据的方法 |
CN104901703A (zh) * | 2015-04-08 | 2015-09-09 | 河海大学 | 一种整数序列快速压缩存储算法 |
CN106133830A (zh) * | 2014-03-24 | 2016-11-16 | 日本电信电话株式会社 | 编码方法、编码装置、程序以及记录介质 |
CN107516530A (zh) * | 2012-10-01 | 2017-12-26 | 日本电信电话株式会社 | 编码方法、编码装置、程序以及记录介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6987468B1 (en) * | 2004-10-29 | 2006-01-17 | Microsoft Corporation | Lossless adaptive encoding and decoding of integer data |
EP2083560B1 (en) * | 2006-11-14 | 2013-12-04 | Nippon Telegraph & Telephone Corporation | Image signal coding method and decoding mehod, information source coding method and decoding mehod, devices for them, their programs, and memory medium with recorded program |
US7486211B2 (en) * | 2007-04-13 | 2009-02-03 | Apple Inc. | Method and system for entropy coding |
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 |
US10840944B2 (en) | 2017-07-25 | 2020-11-17 | Nippon Telegraph And Telephone Corporation | Encoding apparatus, decoding apparatus, data structure of code string, encoding method, decoding method, encoding program and decoding program |
-
2018
- 2018-11-07 JP JP2018209841A patent/JP7139897B2/ja active Active
-
2019
- 2019-10-25 CN CN201980072412.7A patent/CN112956131B/zh active Active
- 2019-10-25 WO PCT/JP2019/041820 patent/WO2020095706A1/ja unknown
- 2019-10-25 EP EP19882886.5A patent/EP3859976B1/en active Active
- 2019-10-25 US US17/289,688 patent/US11438009B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1857007A (zh) * | 2003-06-10 | 2006-11-01 | 简-奥洛夫·斯特龙伯格 | 压缩数据的方法 |
CN107516530A (zh) * | 2012-10-01 | 2017-12-26 | 日本电信电话株式会社 | 编码方法、编码装置、程序以及记录介质 |
CN106133830A (zh) * | 2014-03-24 | 2016-11-16 | 日本电信电话株式会社 | 编码方法、编码装置、程序以及记录介质 |
CN104901703A (zh) * | 2015-04-08 | 2015-09-09 | 河海大学 | 一种整数序列快速压缩存储算法 |
Also Published As
Publication number | Publication date |
---|---|
CN112956131B (zh) | 2024-03-08 |
EP3859976A1 (en) | 2021-08-04 |
WO2020095706A1 (ja) | 2020-05-14 |
EP3859976B1 (en) | 2023-10-11 |
JP7139897B2 (ja) | 2022-09-21 |
EP3859976A4 (en) | 2022-07-06 |
US20220006469A1 (en) | 2022-01-06 |
JP2020077969A (ja) | 2020-05-21 |
US11438009B2 (en) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110181448A1 (en) | Lossless compression | |
JP4779098B2 (ja) | 可変サイズベクトルエントロピ符号化を実行するための方法および装置 | |
US10666289B1 (en) | Data compression using dictionary encoding | |
JP7123910B2 (ja) | インデックスコーディング及びビットスケジューリングを備えた量子化器 | |
US20220114454A1 (en) | Electronic apparatus for decompressing a compressed artificial intelligence model and control method therefor | |
CN112956131A (zh) | 编码装置、解码装置、代码串的数据结构、编码方法、解码方法、编码程序、解码程序 | |
CN112398484A (zh) | 一种编码方法及相关设备 | |
JP2017527165A (ja) | 制限されたキャリー演算による算術コーディングを遂行するための方法及び装置 | |
US10840944B2 (en) | Encoding apparatus, decoding apparatus, data structure of code string, encoding method, decoding method, encoding program and decoding program | |
JP7183776B2 (ja) | 符号化装置、復号装置、これらの方法及びプログラム | |
KR100207428B1 (ko) | 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법 | |
JP7173134B2 (ja) | 符号化装置、復号装置、符号化方法、復号方法、プログラム、および記録媒体 | |
EP3644515B1 (en) | Encoding device, decoding device, encoding method, decoding method and program | |
Mohamed | Wireless Communication Systems: Compression and Decompression Algorithms | |
Rezaei | An examination of the sub-optimality of the state-sorting algorithm in tabled asymmetric numeral systems | |
KR20220046796A (ko) | 전자 장치 및 그 제어 방법 | |
CA2482994C (en) | Method and system for multi-rate lattice vector quantization of a signal | |
JPH1013247A (ja) | 可変長さコードの復号化方法及びその装置 | |
KR20020020886A (ko) | 산술적으로 인코딩된 정보신호의 산술 디코딩 | |
JPH10134521A (ja) | トレリス符号化方法及びディジタル磁気記録装置 | |
JPH0595290A (ja) | 符号化方法および装置 |
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 |