JP5472610B2 - 数値データ列の符号化/復号化の方法および装置 - Google Patents
数値データ列の符号化/復号化の方法および装置 Download PDFInfo
- Publication number
- JP5472610B2 JP5472610B2 JP2009268415A JP2009268415A JP5472610B2 JP 5472610 B2 JP5472610 B2 JP 5472610B2 JP 2009268415 A JP2009268415 A JP 2009268415A JP 2009268415 A JP2009268415 A JP 2009268415A JP 5472610 B2 JP5472610 B2 JP 5472610B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- unit
- string
- length
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 584
- 238000012545 processing Methods 0.000 claims description 678
- 230000008569 process Effects 0.000 claims description 387
- 230000036961 partial effect Effects 0.000 claims description 165
- 230000008520 organization Effects 0.000 claims description 80
- 238000009826 distribution Methods 0.000 claims description 45
- 238000003860 storage Methods 0.000 claims description 43
- 238000013500 data storage Methods 0.000 claims description 37
- 238000013075 data extraction Methods 0.000 claims description 29
- 238000007906 compression Methods 0.000 claims description 23
- 230000006835 compression Effects 0.000 claims description 21
- 238000011835 investigation Methods 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 10
- 230000006837 decompression Effects 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 8
- 230000002085 persistent effect Effects 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 47
- 238000013139 quantization Methods 0.000 description 12
- 238000007630 basic procedure Methods 0.000 description 10
- 238000013144 data compression Methods 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 8
- 230000004308 accommodation Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 102200012170 rs10084168 Human genes 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 102220171488 rs760746448 Human genes 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
演算処理装置が、特定の数値データを可変長のビット列を用いて表現した実データを生成し、この実データの先頭に、少なくとも当該実データのビット長を示す情報をもった識別コードを付加することにより、少なくとも上記特定の数値データ自身を示す情報をもった単位符号データを生成し、生成された複数の単位符号データを順番に並べて符号化データ列として出力する処理を実行し、
付加する識別コードを選択する際に、少なくとも「所定範囲内の複数通りのビット長と、当該ビット長に対応する識別コードとの対応関係」を示す符号化テーブルを用いるようにし、かつ、当該テーブルが、当該テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
演算処理装置が、
符号化の対象となる数値データ列を入力するデータ入力段階と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを入力するテーブル入力段階と、
入力した数値データ列から個々の数値データを順番に抽出するデータ抽出段階と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成段階と、
符号化テーブルを参照して、生成された実データのビット長に対応する識別コードを選択する識別コード選択段階と、
生成された実データの先頭に、選択された識別コードを付加することにより、抽出した数値データを示す単位符号データを生成する単位符号データ生成段階と、
データ抽出段階、実データ生成段階、識別コード選択段階、単位符号データ生成段階を、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行する段階と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力段階と、
を実行するようにし、
符号化テーブルが、
実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
実データ生成段階で、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を、それぞれ生成するようにしたものである。
演算処理装置が、
符号化の対象となる数値データ列を入力するデータ入力段階と、
個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルを入力するテーブル入力段階と、
入力した数値データ列から個々の数値データを順番に抽出するデータ抽出段階と、
抽出した数値データが0を示すデータであり、かつ、これまでのカウント値が最大値Rmaxに達していない場合に、0を示す数値データが連続して抽出された回数をランレングス値としてカウントするランレングス値カウント段階と、
抽出した数値データが正の値を示すデータである場合に、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成し、抽出した数値データが負の値を示すデータである場合に、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成し、抽出した数値データが0を示すデータであり、かつ、カウント値が最大値Rmaxに達していた場合に、ビット長が0である仮想のビット列を実データとして生成する実データ生成段階と、
二次元符号化テーブルを参照して、生成された実データのビット長と、当該実データが生成された時のランレングス値と、の組み合わせに対応する識別コードを選択し、カウント値を0にリセットする識別コード選択段階と、
生成された実データの先頭に、選択された識別コードを付加することにより、抽出した数値データを示す単位符号データを生成する単位符号データ生成段階と、
データ抽出段階を、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行するとともに、ランレングス値カウント段階、実データ生成段階、識別コード選択段階および単位符号データ生成段階を、必要に応じて繰り返し実行する段階と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力段階と、
を実行するようにし、
符号化テーブルが、予め定められた所定の最大ランレングス値をRmaxとしたときに、実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
データ抽出段階で、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行し、当該調査処理によりゼロ永続状態であることが確認された場合に、
実データ生成段階では、ビット長が0である仮想のビット列を実データとして生成し、識別コード選択段階では、ゼロ永続状態を示す終端コードを識別コードとして選択するようにしたものである。
実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルを用いるようにしたものである。
符号化の対象となる数値データ列について、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度を集計する頻度集計段階と、
既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成するテーブル修正段階と、
を更に実行し、
識別コード選択段階で、修正した符号化テーブルを参照して、識別コードの選択を行うようにしたものである。
データ出力段階において、符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルを出力するようにしたものである。
データ出力段階において、符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルを出力するようにしたものである。
複数M台の復号処理ユニットを含む演算処理装置が、
復号化の対象となる符号化データ列を入力するデータ入力段階と、
符号化に用いられた符号化テーブルを入力するテーブル入力段階と、
それぞれLビット(但し、LはNの整数倍、かつ、単位符号データの最大ビット長をUmaxとした場合に、L≧Umax)の連続ビットデータに対する復号処理を行う機能を有する複数M台の復号処理ユニットに対して、符号化データ列の一部を部分データとして分配するデータ分配段階と、
M台の復号処理ユニットによる並列処理により、符号化テーブルを参照しながら、それぞれ分配された部分データから、実データに対応する数値データを取り出す復号処理を行う復号処理段階と、
M台の復号処理ユニットによる復号処理の結果を取捨選択して、個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成段階と、
生成された復号化データ列を出力するデータ出力段階と、
を実行するようにし、
データ分配段階では、符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
復号処理段階では、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を行い、
データ編成段階では、1回の並列処理によってM台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された数値データを並べることにより復号化データ列を生成するようにしたものである。
複数M台の復号処理ユニットを含む演算処理装置が、
復号化の対象となる符号化データ列を入力するデータ入力段階と、
符号化に用いられた二次元符号化テーブルを入力するテーブル入力段階と、
それぞれLビット(但し、LはNの整数倍、かつ、単位符号データの最大ビット長をUmaxとした場合に、L≧Umax)の連続ビットデータに対する復号処理を行う機能を有する複数M台の復号処理ユニットに対して、符号化データ列の一部を部分データとして分配するデータ分配段階と、
M台の復号処理ユニットによる並列処理により、二次元符号化テーブルを参照しながら、それぞれ分配された部分データから、0を示す数値データを羅列する回数を示すランレングス値と、当該0を示す数値データに後続する実データに対応する数値データと、を取り出す復号処理を行う復号処理段階と、
M台の復号処理ユニットによる復号処理の結果を取捨選択して、0を示す数値データおよび個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成段階と、
生成された復号化データ列を出力するデータ出力段階と、
を実行するようにし、
データ分配段階では、符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
復号処理段階では、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を行い、
データ編成段階では、1回の並列処理によってM台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された情報に基いて数値データを並べることにより復号化データ列を生成するようにしたものである。
符号化データ列をNビットの整数倍の単位で分割して複数の部分データを生成し、各部分データを複数M台の復号処理ユニットに分配し、
複数M台の復号処理ユニットの並列処理により、分配された部分データに対する復号処理を行い、
正常に復号化が行われた数値データを並べることにより復号化データ列を生成するようにしたものである。
「所定のビット長を示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ(最大ビット長Umax)」を、複数組並べることにより構成された符号化データ列について、個々の実データに対応する数値データを復元するために、
複数M台の復号処理ユニットを含む演算処理装置が、
復号化の対象となる符号化データ列を入力するデータ入力段階と、
個々の識別コードに対応する特定のビット長を示す符号化テーブルを入力するテーブル入力段階と、
それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を行う機能を有する複数M台の復号処理ユニットに対して、符号化データ列の一部を部分データとして分配するデータ分配段階と、
M台の復号処理ユニットによる並列処理により、符号化テーブルを参照しながら、それぞれ分配された部分データから、実データに対応する数値データを取り出す復号処理を行う復号処理段階と、
M台の復号処理ユニットによる復号処理の結果を取捨選択して、個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成段階と、
生成された復号化データ列を出力するデータ出力段階と、
を実行するようにし、
データ分配段階では、符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
復号処理段階では、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を行い、
データ編成段階では、1回の並列処理によってM台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された数値データを並べることにより復号化データ列を生成するようにしたものである。
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理を行うようにしたものである。
復号処理段階で、M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ(最大ビット長Umax)」を、複数組並べることにより構成された符号化データ列について、0を示す数値データおよび個々の実データを並べてなる元のデータ列を復元するために、
複数M台の復号処理ユニットを含む演算処理装置が、
復号化の対象となる符号化データ列を入力するデータ入力段階と、
個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルを入力するテーブル入力段階と、
それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を行う機能を有する複数M台の復号処理ユニットに対して、符号化データ列の一部を部分データとして分配するデータ分配段階と、
M台の復号処理ユニットによる並列処理により、二次元符号化テーブルを参照しながら、それぞれ分配された部分データから、0を示す数値データを羅列する回数を示すランレングス値と、当該0を示す数値データに後続する実データに対応する数値データと、を取り出す復号処理を行う復号処理段階と、
M台の復号処理ユニットによる復号処理の結果を取捨選択して、0を示す数値データおよび個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成段階と、
生成された復号化データ列を出力するデータ出力段階と、
を実行するようにし、
データ分配段階では、符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
復号処理段階では、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を行い、
データ編成段階では、1回の並列処理によってM台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成するようにしたものである。
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行うようにしたものである。
復号処理段階で、M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
復号処理段階で、M台の復号処理ユニットのそれぞれが、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、
データ編成段階で、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。
復号処理段階で、M台の復号処理ユニットのそれぞれが、取り出したランレングス値および実データに対応する数値データをそのまま出力する処理を実行し、
データ編成段階で、各採択ユニットから収集した情報に基づいて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。
符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルが与えられたときに、
データ入力段階において、データファイルから符号化データ列を抽出する処理を行い、
テーブル入力段階において、データファイルから符号化テーブルを抽出する処理を行うようにしたものである。
符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルが与えられたときに、
データ入力段階において、データファイルから符号化データ列を抽出する処理を行い、
テーブル入力段階において、データファイルからテーブル特定情報を抽出する処理を行った後、当該テーブル特定情報によって特定されるテーブルを選択して利用するようにしたものである。
データ分配段階では、M≧1+L/Nとなるような複数M台の復号処理ユニットに部分データの分配を行い、
復号処理段階では、これらM台の復号処理ユニットによる並列処理を行うようにしたものである。
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを格納するテーブル格納部と、
データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成部と、
符号化テーブルを参照して、生成された実データのビット長に対応する識別コードを選択する識別コード選択部と、
生成された実データの先頭に、選択された識別コードを付加することにより、抽出した数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を設け、
符号化テーブルが、
実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
実データ生成部が、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を、それぞれ生成するようにしたものである。
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルを格納するテーブル格納部と、
データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データが0を示すデータであり、かつ、これまでのカウント値が最大値Rmaxに達していない場合には、0を示す数値データが連続して抽出された回数をランレングス値としてカウントする処理を行い、抽出した数値データが正の値を示すデータである場合には、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成する処理を行い、抽出した数値データが負の値を示すデータである場合には、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成する処理を行い、抽出した数値データが0を示すデータであり、かつ、カウント値が最大値Rmaxに達していた場合には、ビット長が0である仮想のビット列を実データとして生成する実データ生成部と、
二次元符号化テーブルを参照して、生成された実データのビット長と、当該実データが生成された時のランレングス値と、の組み合わせに対応する識別コードを選択し、カウント値を0にリセットする識別コード選択部と、
生成された実データの先頭に、選択された識別コードを付加することにより、抽出した数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を設け、
符号化テーブルが、予め定められた所定の最大ランレングス値をRmaxとしたときに、実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
データ抽出部が、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行し、
実データ生成部が、調査処理によりゼロ永続状態であることが確認された場合に、ビット長が0である仮想のビット列を実データとして生成し、
識別コード選択部が、調査処理によりゼロ永続状態であることが確認された場合に、ゼロ永続状態を示す終端コードを識別コードとして選択するようにしたものである。
テーブル格納部に格納されている符号化テーブルが、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルであるようにしたものである。
データ格納部に格納されている数値データ列について、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度を集計する頻度集計部と、
既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成し、これをテーブル格納部に格納するテーブル修正部と、
を更に設けたものである。
データ出力部が、符号化データ列とともに、テーブル格納部に格納されている符号化テーブルもしくは当該符号化テーブルを特定するテーブル特定情報を出力するようにしたものである。
復号化の対象となる符号化データ列を入力して格納するデータ格納部と、
個々の識別コードに対応する特定のビット長を示す符号化テーブルを格納するテーブル格納部と、
それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を並列して行う複数M台の復号処理ユニットと、
M台の復号処理ユニットに対して、データ格納部に格納されている符号化データ列の一部を部分データとして分配するデータ分配部と、
M台の復号処理ユニットによる復号処理の結果を取捨選択して、個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成部と、
生成された復号化データ列を出力するデータ出力部と、
を設け、
データ分配部は、符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
M台の復号処理ユニットは、符号化テーブルを参照しながら、それぞれ分配された部分データから、実データに対応する数値データを取り出す復号処理を行う機能を有し、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を行い、
データ編成部は、1回の並列処理によってM台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された数値データを並べることにより復号化データ列を生成するようにしたものである。
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理を行うようにしたものである。
M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
復号化の対象となる符号化データ列を入力して格納するデータ格納部と、
個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルを格納するテーブル格納部と、
それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を並列して行う複数M台の復号処理ユニットと、
M台の復号処理ユニットに対して、データ格納部に格納されている符号化データ列の一部を部分データとして分配するデータ分配部と、
M台の復号処理ユニットによる復号処理の結果を取捨選択して、0を示す数値データおよび個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成部と、
生成された復号化データ列を出力するデータ出力部と、
を設け、
データ分配部は、符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
M台の復号処理ユニットは、二次元符号化テーブルを参照しながら、それぞれ分配された部分データから、0を示す数値データを羅列する回数を示すランレングス値と、当該0を示す数値データに後続する実データに対応する数値データと、を取り出す復号処理を行う機能を有し、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を行い、
データ編成部は、1回の並列処理によってM台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成するようにしたものである。
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行うようにしたものである。
M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
M台の復号処理ユニットのそれぞれが、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータをデータ編成部に与え、
データ編成部が、各復号処理ユニットから与えられたデータを並べることにより復号化データ列を生成するようにしたものである。
M台の復号処理ユニットのそれぞれが、取り出したランレングス値および実データに対応する数値データをそのままデータ編成部に与え、
データ編成部が、各採択ユニットから与えられた情報に基づいて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータを並べることにより復号化データ列を生成するようにしたものである。
符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルが与えられたときに、
データ格納部が、データファイルから符号化データ列を抽出して格納する処理を行い、
テーブル格納部が、データファイルから符号化テーブルを抽出して格納する処理を行うようにしたものである。
符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルが与えられたときに、
データ格納部が、データファイルから符号化データ列を抽出して格納する処理を行い、
テーブル格納部が、データファイルからテーブル特定情報を抽出する処理を行った後、当該テーブル特定情報によって特定されるテーブルを外部から読み込んで格納する処理を行うようにしたものである。
M≧1+L/Nとなるような複数M台の復号処理ユニットを設けるようにしたものである。
各復号処理ユニットが、データ編成部に対して、正常な復号処理によって得られた情報と、当該正常な復号処理に関与したビット数を示す正常処理ビット長とを報告する機能を有し、
データ編成部が、報告された正常処理ビット長に基づいて採択ユニットを決定し、報告された情報を用いて復号化データ列を生成するようにしたものである。
データ編成部が、1回の並列処理によってM台の復号処理ユニットからの処理結果が得られるたびに、各採択ユニットから報告された正常処理ビット長を合計することにより既復号化部を認識し、これをデータ分配部に対して報告する機能を有し、
データ分配部が、当該報告に基づいて、次回の並列処理のための未復号化部の認識を行うようにしたものである。
ハフマン符号化テーブルとして、識別コード自身のビット長をaとし、当該識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを用いるようにしたものである。
ハフマン符号化テーブルとして、識別コード自身のビット長をaとし、当該識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを用いるようにしたものである。
所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係が示されており、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを、コンピュータ読み取り可能な情報記録媒体に記録するようにしたものである。
所定範囲内の複数通りのビット長と所定範囲内の複数通りのランレングス値とについて、個々のビット長と個々のランレングス値との各組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係が示されており、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを、コンピュータ読み取り可能な情報記録媒体に記録するようにしたものである。
本発明は、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化し、これを元に戻す復号化を行う技術に関するものである。そこで、このような固定長ビット列と可変長ビット列との間の変換を伴う、従来の符号化/復号化方法の基本原理を簡単に説明する。
さて、§1で述べた方法で作成された符号化データ列(可変長ビット)を、CPUによる演算処理に適した元の数値データ(固定長ビット)に戻すためには、復号化を行う必要がある。ところが、可変長のビット列からなる符号化データは、区切りとなるビット位置が固定ではないため、処理単位の境界が不明確であり、従来の一般的な方法では、並列処理による復号化を行うことができない。
図9は、図2に示す固定長ビット列で表現された数値データ列を、本発明に係る符号化テーブルを用いて符号化するプロセスを示す図である。図9(a) は、図4と同じ図であり、図3に示す可変長ビット列に、ビット長を示す情報(丸数字)を挿入した状態を示している。図9(b) は、本発明に用いる符号化テーブルである。
§3では、本発明に係る符号化方法と、当該符号化方法によって作成された図9(c) に示す具体的な符号化データ列を、1台の復号処理ユニットを用いて、先頭から順番に処理しながら復号化を行う手順を述べた。しかしながら、1台の復号処理ユニットを用いた復号化を前提とする場合、図9に示す符号化処理を行う特有のメリットは生かされない。実際、図9(c) に示す符号化データ列は、図7(c) に示す符号化データ列よりも若干データ容量が大きくなっており、データ容量をより削減するというメリットは得られない。図9に示す符号化処理を行う特有のメリットは、並列処理による復号化が可能になり、復号化に要する時間を短縮できるという点である。以下、このメリットについて、具体的な復号処理手順を示しながら説明する。
続いて、本発明に係る符号化方法の基本手順を流れ図を参照しながら説明する。図14は、本発明に係る数値データ列の符号化方法の基本手順を示す流れ図である。この手順を構成する各ステップは、実際には、コンピュータや集積回路などの演算処理装置によって実行される。
続いて、本発明に係る復号化方法の基本手順を流れ図を参照しながら説明する。図17は、本発明に係る数値データ列の復号化方法の基本手順を示す流れ図である。この手順を構成する各ステップは、実際には、コンピュータや集積回路などの演算処理装置によって実行される。
続いて、本発明に係る符号化装置の基本構成を、図18に示すブロック図を参照しながら説明する。ここに示す装置は、実際には、コンピュータや集積回路などの演算処理装置によって構成することができる。
続いて、本発明に係る復号化装置の基本構成を、図19に示すブロック図を参照しながら説明する。ここに示す装置は、実際には、コンピュータや集積回路などの演算処理装置によって構成することができる。
これまで述べてきた実施形態で用いた符号化テーブルは、いずれも実データのビット長bと識別コードCとの1対1の対応関係を示すものであり、各識別コードCは、特定のビット長bの情報を示すコードであった。これに対して、この§9で述べる実施形態は、識別コードCに、ビット長bの情報だけでなく、付加的な情報をもたせる運用を行うものである。具体的には、ゼロのランレングス値Rの情報をもたせることになる。
さて、§9では、二次元符号化テーブルを利用する基本原理を述べたが、ここでは、この二次元符号化テーブルを利用する場合に、これまで述べてきた実施形態に対して施す必要がある変更点を述べる。
二次元符号化テーブルを利用した場合であっても、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する符号化方法である点には何ら変わりはない。そして、特定の数値データを可変長のビット列を用いて表現した実データを生成し、この実データの先頭に、少なくとも当該実データのビット長を示す情報をもった識別コードを付加することにより、少なくとも前記特定の数値データ自身を示す情報をもった単位符号データを生成し、生成された複数の単位符号データを順番に並べて符号化データ列として出力する処理が行われる点も同じである。ただ、識別コードには、実データのビット長を示す情報だけでなく、先行して配置される数値0のランレングス値を示す情報も含まれることになる。このため、生成される単位符号データには、実データとして特定の数値データ自身を示す情報が含まれるだけでなく、先行して配置される数値0の情報も含まれることになる。
二次元符号化テーブルを利用した場合であっても、「少なくとも所定のビット長を示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ」を、複数組並べることにより構成された符号化データ列について、少なくとも個々の実データに対応する数値データを復元する復号化方法、である点には何ら変わりはない。ただ、数値0をランレングス値として表現した符号化データ列を対象とした復号化が行われる点が若干異なることになる。
§7では、図18を参照しながら、本発明に係る符号化装置の基本構成を述べた。二次元符号化テーブルを利用する符号化装置の基本構成も、図18のブロック図に示す構成とほぼ同様である。ただ、テーブル格納部120には、当然ながら、個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルが格納される。この二次元符号化テーブルは、予め定められた所定の最大ランレングス値をRmaxとしたときに、実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルである。
§8では、図19を参照しながら、本発明に係る復号化装置の基本構成を述べた。二次元符号化テーブルを利用する復号化装置の基本構成も、図19のブロック図に示す構成とほぼ同様である。ただ、テーブル格納部220には、当然ながら、個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルが格納される。
図15には、本発明に係る符号化方法によって作成される符号化データファイルFの構造例を示したが、二次元符号化テーブルを利用した符号化を行った場合、このデータファイルFの内容も若干異なることになる。すなわち、データファイルF内には、「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に前記実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された、互いに長さの異なる複数通りの単位符号データ(最大ビット長Umax)」を、並べることにより構成されるビット羅列データと、個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルTと、が収容されることになる。
これまで述べた例は、いずれも数値データ列に含まれる連続した0をランレングスとして表現する例であった。一般に、画像データには、連続した0が含まれることが多く、特に、後述するJPEG形式の画像データの場合、連続した多数の0が含まれる。ただ、本発明に係る二次元符号化テーブルを利用した符号化方法は、必ずしも数値0をランレングスとして表現する方法に限定されるものではなく、任意の数値Xをランレングスとして表現する場合にも適用可能である。
ここでは、本発明に係る符号化/復号化方法をJPEG画像へ適用した実施形態を説明する。JPEG方式は、静止画像データを圧縮する方式のひとつとして、コンピュータやデジタルカメラで広く利用されており、この方式で圧縮された画像は、一般にJPEG画像と呼ばれている。
既に図8で説明したとおり、ビット長bの出現頻度を考慮して作成した可変長符号化テーブルは、一般に、ハフマン符号化テーブルと呼ばれており、このハフマン符号化テーブルを用いた符号化は、ハフマン符号化と呼ばれている。ハフマン符号化テーブルでは、実データのビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられているため、ハフマン符号化により、データの圧縮効率を更に向上させることができる。このため、前述したJPEG画像用の圧縮処理など、実用上、多くのデータ圧縮処理において、ハフマン符号化テーブルが採用されている。
ここでは、基準ビット長Nの設定に関する留意事項を簡単に述べておく。これまで述べてきた実施形態では、いずれも基準ビット長N=4に設定しているが、本発明を実施する上で、基準ビット長Nは、2以上の任意の整数に設定することができる(N=1に設定すると、従来の一般的な符号化方法になる)。
最後に、本発明を実施する上でより実用的な復号化処理を述べておく。
§4では、図10に示すように、8台の復号処理ユニットQ1〜Q8に、それぞれ16ビットのデータを分配した後、各復号処理ユニットQ1〜Q8が、図11〜図13に示すような復号処理を実行する例を述べた。この例では、各復号処理ユニットQ1〜Q8のそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することになる。
§9で述べた二次元符号化テーブルを利用する方法では、M台の復号処理ユニットによる並列処理により、二次元符号化テーブルを参照しながら、それぞれ分配された部分データから、0を示す数値データを羅列する回数を示すランレングス値と、当該0を示す数値データに後続する実データに対応する数値データと、を取り出す復号処理が行われ、1回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列が生成される。
本発明に係る符号化方法で用いる符号化テーブルは、「テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない」という条件を満たすテーブルである。そして、復号化を行う際には、そのような条件を満たすことを利用して、符号化されたデータの先頭から1ビット、2ビット、3ビット、... の部分について順に、テーブル内に合致する識別コードがあるか否かを判定する処理を行うことが可能になる。
120:テーブル格納部
130:データ抽出部
140:実データ生成部
150:識別コード選択部
160:単位符号データ生成部
170:データ出力部
180:頻度集計部
190:テーブル修正部
210:データ格納部
220:テーブル格納部
230:データ分配部
240(1),240(2),...,240(m):復号処理ユニット
250:データ編成部
260:データ出力部
300:JPEG画像用圧縮処理装置
310:DCT手段
320:量子化手段
330:符号化手段
400:JPEG画像用伸張処理装置
410:復号化手段
420:逆量子化手段
430:逆DCT手段
a:識別コードC自身のビット長
B1〜B11:基準ビット長Nをもつデータブロック
b:実データDのビット長
C,C1,C2,C3,C4,C5,...:識別コード
C00〜C88:識別コード
Cmin:最小の識別コード
D,D1,D2,D3,D4,D5,...:数値データ/実データ
d:差
E:数値データ列
F:符号化データファイル
F1:ヘッダ部
F2:本体部
F3:フッタ部
G:復号化データ列
H:テーブル特定情報
i:復号処理ユニットの番号
J:カウント値
k:任意の整数(1,2,3,4,...)
L:復号処理ユニットの処理可能ビット数(Nの整数倍)
M:復号処理ユニットの台数
N:基準ビット長(2以上の整数)
P1〜P8:正常処理ビット長
Q1〜Q8:復号処理ユニット
R:ランレングス値
Rmax:ランレングス値の最大値
S:符号化データ列
S11〜S27:流れ図の各ステップ
T,T1,T2,T3,T4:符号化テーブル
U,U1,U2,U3,U4,U5,...Un:単位符号データ
Umax:単位符号データの最大ビット長
w:符号語数
X:8×8画素ブロックのデータ
Y:圧縮データ
Z0〜Z4:正常処理端線
Claims (39)
- 固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する符号化方法であって、
演算処理装置が、
符号化の対象となる数値データ列を入力するデータ入力段階と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを入力するテーブル入力段階と、
入力した数値データ列から個々の数値データを順番に抽出するデータ抽出段階と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成段階と、
前記符号化テーブルを参照して、生成された前記実データのビット長に対応する識別コードを選択する識別コード選択段階と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成段階と、
前記データ抽出段階、前記実データ生成段階、前記識別コード選択段階、前記単位符号データ生成段階を、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行する段階と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力段階と、
を実行し、
前記符号化テーブルが、
前記実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであり、
前記実データ生成段階で、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を、それぞれ生成することを特徴とする数値データ列の符号化方法。 - 固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する符号化方法であって、
演算処理装置が、
符号化の対象となる数値データ列を入力するデータ入力段階と、
個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルを入力するテーブル入力段階と、
入力した数値データ列から個々の数値データを順番に抽出するデータ抽出段階と、
抽出した数値データが0を示すデータであり、かつ、これまでのカウント値が最大値Rmaxに達していない場合に、0を示す数値データが連続して抽出された回数をランレングス値としてカウントするランレングス値カウント段階と、
抽出した数値データが正の値を示すデータである場合に、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成し、抽出した数値データが負の値を示すデータである場合に、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成し、抽出した数値データが0を示すデータであり、かつ、前記カウント値が前記最大値Rmaxに達していた場合に、ビット長が0である仮想のビット列を実データとして生成する実データ生成段階と、
前記二次元符号化テーブルを参照して、生成された前記実データのビット長と、当該実データが生成された時のランレングス値と、の組み合わせに対応する識別コードを選択し、前記カウント値を0にリセットする識別コード選択段階と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成段階と、
前記データ抽出段階を、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行するとともに、前記ランレングス値カウント段階、前記実データ生成段階、前記識別コード選択段階および前記単位符号データ生成段階を、必要に応じて繰り返し実行する段階と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力段階と、
を実行し、
前記符号化テーブルが、予め定められた所定の最大ランレングス値をRmaxとしたときに、前記実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであることを特徴とする数値データ列の符号化方法。 - 請求項2に記載の符号化方法において、
データ抽出段階で、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行し、当該調査処理により前記ゼロ永続状態であることが確認された場合に、
実データ生成段階では、ビット長が0である仮想のビット列を実データとして生成し、識別コード選択段階では、ゼロ永続状態を示す終端コードを識別コードとして選択することを特徴とする数値データ列の符号化方法。 - 固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する符号化方法であって、
演算処理装置が、特定の数値データを可変長のビット列を用いて表現した実データを生成し、この実データの先頭に、少なくとも当該実データのビット長を示す情報をもった識別コードを付加することにより、少なくとも前記特定の数値データ自身を示す情報をもった単位符号データを生成し、生成された複数の単位符号データを順番に並べて符号化データ列として出力する処理を実行し、
付加する識別コードを選択する際に、少なくとも「所定範囲内の複数通りのビット長と、当該ビット長に対応する識別コードとの対応関係」を示す符号化テーブルを用いるようにし、かつ、当該テーブルが、当該テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであり、
実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルを用いることを特徴とする数値データ列の符号化方法。 - 請求項4に記載の符号化方法において、
符号化の対象となる数値データ列について、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度を集計する頻度集計段階と、
既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成するテーブル修正段階と、
を更に実行し、
識別コード選択段階で、前記修正した符号化テーブルを参照して、識別コードの選択を行うことを特徴とする数値データ列の符号化方法。 - 請求項1〜5のいずれかに記載の符号化方法において、
データ出力段階において、符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルを出力することを特徴とする数値データ列の符号化方法。 - 請求項1〜5のいずれかに記載の符号化方法において、
データ出力段階において、符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルを出力することを特徴とする数値データ列の符号化方法。 - 請求項2に記載の数値データ列の符号化方法によって符号化された符号化データ列について、符号化の対象となった数値データ列を復元する復号化方法であって、
複数M台の復号処理ユニットを含む演算処理装置が、
復号化の対象となる符号化データ列を入力するデータ入力段階と、
符号化に用いられた二次元符号化テーブルを入力するテーブル入力段階と、
それぞれLビット(但し、LはNの整数倍、かつ、単位符号データの最大ビット長をUmaxとした場合に、L≧Umax)の連続ビットデータに対する復号処理を行う機能を有する複数M台の復号処理ユニットに対して、前記符号化データ列の一部を部分データとして分配するデータ分配段階と、
前記M台の復号処理ユニットによる並列処理により、前記二次元符号化テーブルを参照しながら、それぞれ分配された部分データから、0を示す数値データを羅列する回数を示すランレングス値と、当該0を示す数値データに後続する実データに対応する数値データと、を取り出す復号処理を行う復号処理段階と、
前記M台の復号処理ユニットによる復号処理の結果を取捨選択して、0を示す数値データおよび個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成段階と、
生成された前記復号化データ列を出力するデータ出力段階と、
を実行し、
前記データ分配段階では、前記符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、前記符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
前記復号処理段階では、前記M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を行い、
前記データ編成段階では、1回の並列処理によって前記M台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。 - 「少なくとも所定のビット長を示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ」を、複数組並べることにより構成された符号化データ列について、少なくとも個々の実データに対応する数値データを復元する復号化方法であって、
前記符号化データ列をNビットの整数倍の単位で分割して複数の部分データを生成し、各部分データを複数M台の復号処理ユニットに分配し、
前記複数M台の復号処理ユニットの並列処理により、分配された部分データに対する復号処理を行い、
正常に復号化が行われた数値データを並べることにより復号化データ列を生成し、
「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に前記実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ(最大ビット長Umax)」を、複数組並べることにより構成された符号化データ列について、0を示す数値データおよび個々の実データを並べてなる元のデータ列を復元するために、
複数M台の復号処理ユニットを含む演算処理装置が、
復号化の対象となる符号化データ列を入力するデータ入力段階と、
個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルを入力するテーブル入力段階と、
それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を行う機能を有する複数M台の復号処理ユニットに対して、前記符号化データ列の一部を部分データとして分配するデータ分配段階と、
前記M台の復号処理ユニットによる並列処理により、前記二次元符号化テーブルを参照しながら、それぞれ分配された部分データから、0を示す数値データを羅列する回数を示すランレングス値と、当該0を示す数値データに後続する実データに対応する数値データと、を取り出す復号処理を行う復号処理段階と、
前記M台の復号処理ユニットによる復号処理の結果を取捨選択して、0を示す数値データおよび個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成段階と、
生成された前記復号化データ列を出力するデータ出力段階と、
を実行し、
前記データ分配段階では、前記符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、前記符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
前記復号処理段階では、前記M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を行い、
前記データ編成段階では、1回の並列処理によって前記M台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。 - 請求項9に記載の復号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することを特徴とする数値データ列の復号化方法。 - 請求項9に記載の復号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行うことを特徴とする数値データ列の復号化方法。 - 請求項9に記載の復号化方法において、
復号処理段階で、M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することを特徴とする数値データ列の復号化方法。 - 請求項9〜12のいずれかに記載の復号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、
データ編成段階で、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。 - 請求項9〜12のいずれかに記載の復号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、取り出したランレングス値および実データに対応する数値データをそのまま出力する処理を実行し、
データ編成段階で、各採択ユニットから収集した情報に基づいて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。 - 請求項9〜14のいずれかに記載の復号化方法において、
符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルが与えられたときに、
データ入力段階において、前記データファイルから符号化データ列を抽出する処理を行い、
テーブル入力段階において、前記データファイルから符号化テーブルを抽出する処理を行うことを特徴とする数値データ列の復号化方法。 - 請求項9〜14のいずれかに記載の復号化方法において、
符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルが与えられたときに、
データ入力段階において、前記データファイルから符号化データ列を抽出する処理を行い、
テーブル入力段階において、前記データファイルからテーブル特定情報を抽出する処理を行った後、当該テーブル特定情報によって特定されるテーブルを選択して利用することを特徴とする数値データ列の復号化方法。 - 請求項9〜16のいずれかに記載の復号化方法において、
データ分配段階では、M≧1+L/Nとなるような複数M台の復号処理ユニットに部分データの分配を行い、
復号処理段階では、これらM台の復号処理ユニットによる並列処理を行うことを特徴とする数値データ列の復号化方法。 - 固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する符号化装置であって、
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを格納するテーブル格納部と、
前記データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成部と、
前記符号化テーブルを参照して、生成された前記実データのビット長に対応する識別コードを選択する識別コード選択部と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を備え、
前記符号化テーブルが、
前記実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであり、
前記実データ生成部が、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を、それぞれ生成することを特徴とする数値データ列の符号化装置。 - 固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する符号化装置であって、
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルを格納するテーブル格納部と、
前記データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データが0を示すデータであり、かつ、これまでのカウント値が最大値Rmaxに達していない場合には、0を示す数値データが連続して抽出された回数をランレングス値としてカウントする処理を行い、抽出した数値データが正の値を示すデータである場合には、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成する処理を行い、抽出した数値データが負の値を示すデータである場合には、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成する処理を行い、抽出した数値データが0を示すデータであり、かつ、前記カウント値が前記最大値Rmaxに達していた場合には、ビット長が0である仮想のビット列を実データとして生成する実データ生成部と、
前記二次元符号化テーブルを参照して、生成された前記実データのビット長と、当該実データが生成された時のランレングス値と、の組み合わせに対応する識別コードを選択し、前記カウント値を0にリセットする識別コード選択部と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を備え、
前記符号化テーブルが、予め定められた所定の最大ランレングス値をRmaxとしたときに、前記実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであることを特徴とする数値データ列の符号化装置。 - 請求項19に記載の符号化装置において、
データ抽出部が、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行し、
実データ生成部が、前記調査処理により前記ゼロ永続状態であることが確認された場合に、ビット長が0である仮想のビット列を実データとして生成し、
識別コード選択部が、前記調査処理により前記ゼロ永続状態であることが確認された場合に、ゼロ永続状態を示す終端コードを識別コードとして選択することを特徴とする数値データ列の符号化装置。 - 固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する符号化装置であって、
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを格納するテーブル格納部と、
前記データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成部と、
前記符号化テーブルを参照して、生成された前記実データのビット長に対応する識別コードを選択する識別コード選択部と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を備え、
前記符号化テーブルが、
前記実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであり、
前記テーブル格納部に格納されている符号化テーブルが、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルであることを特徴とする数値データ列の符号化装置。 - 請求項18〜20のいずれかに記載の符号化装置において、
テーブル格納部に格納されている符号化テーブルが、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルであることを特徴とする数値データ列の符号化装置。 - 請求項21または22に記載の符号化装置において、
データ格納部に格納されている数値データ列について、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度を集計する頻度集計部と、
既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成し、これをテーブル格納部に格納するテーブル修正部と、
を更に設けたことを特徴とする数値データ列の符号化装置。 - 請求項18〜23のいずれかに記載の符号化装置において、
データ出力部が、符号化データ列とともに、テーブル格納部に格納されている符号化テーブルもしくは当該符号化テーブルを特定するテーブル特定情報を出力することを特徴とする数値データ列の符号化装置。 - 「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に前記実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ(最大ビット長Umax)」を、複数組並べることにより構成された符号化データ列について、0を示す数値データおよび個々の実データを並べてなる元のデータ列を復元する復号化装置であって、
復号化の対象となる符号化データ列を入力して格納するデータ格納部と、
個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルを格納するテーブル格納部と、
それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を並列して行う複数M台の復号処理ユニットと、
前記M台の復号処理ユニットに対して、前記データ格納部に格納されている符号化データ列の一部を部分データとして分配するデータ分配部と、
前記M台の復号処理ユニットによる復号処理の結果を取捨選択して、0を示す数値データおよび個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成部と、
生成された前記復号化データ列を出力するデータ出力部と、
を備え、
前記データ分配部は、前記符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、前記符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
前記M台の復号処理ユニットは、前記二次元符号化テーブルを参照しながら、それぞれ分配された部分データから、0を示す数値データを羅列する回数を示すランレングス値と、当該0を示す数値データに後続する実データに対応する数値データと、を取り出す復号処理を行う機能を有し、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を行い、
前記データ編成部は、1回の並列処理によって前記M台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化装置。 - 請求項25に記載の復号化装置において、
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することを特徴とする数値データ列の復号化装置。 - 請求項25に記載の復号化装置において、
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行うことを特徴とする数値データ列の復号化装置。 - 請求項25に記載の復号化装置において、
M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することを特徴とする数値データ列の復号化装置。 - 請求項25〜28のいずれかに記載の復号化装置において、
M台の復号処理ユニットのそれぞれが、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータをデータ編成部に与え、
データ編成部が、各復号処理ユニットから与えられたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化装置。 - 請求項25〜28のいずれかに記載の復号化装置において、
M台の復号処理ユニットのそれぞれが、取り出したランレングス値および実データに対応する数値データをそのままデータ編成部に与え、
データ編成部が、各採択ユニットから与えられた情報に基づいて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化装置。 - 請求項25〜30のいずれかに記載の復号化装置において、
符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルが与えられたときに、
データ格納部が、前記データファイルから符号化データ列を抽出して格納する処理を行い、
テーブル格納部が、前記データファイルから符号化テーブルを抽出して格納する処理を行うことを特徴とする数値データ列の復号化装置。 - 請求項25〜30のいずれかに記載の復号化装置において、
符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルが与えられたときに、
データ格納部が、前記データファイルから符号化データ列を抽出して格納する処理を行い、
テーブル格納部が、前記データファイルからテーブル特定情報を抽出する処理を行った後、当該テーブル特定情報によって特定されるテーブルを外部から読み込んで格納する処理を行うことを特徴とする数値データ列の復号化装置。 - 請求項25〜32のいずれかに記載の復号化装置において、
M≧1+L/Nとなるような複数M台の復号処理ユニットを設けたことを特徴とする数値データ列の復号化装置。 - 請求項25〜33のいずれかに記載の復号化装置において、
各復号処理ユニットが、データ編成部に対して、正常な復号処理によって得られた情報と、当該正常な復号処理に関与したビット数を示す正常処理ビット長とを報告する機能を有し、
データ編成部が、報告された前記正常処理ビット長に基づいて採択ユニットを決定し、報告された前記情報を用いて復号化データ列を生成することを特徴とする数値データ列の復号化装置。 - 請求項34に記載の復号化装置において、
データ編成部が、1回の並列処理によってM台の復号処理ユニットからの処理結果が得られるたびに、各採択ユニットから報告された正常処理ビット長を合計することにより既復号化部を認識し、これをデータ分配部に対して報告する機能を有し、
データ分配部が、前記報告に基づいて、次回の並列処理のための未復号化部の認識を行うことを特徴とする数値データ列の復号化装置。 - 請求項18〜35のいずれかに記載の数値データ列の符号化装置もしくは復号化装置としてコンピュータを機能させるプログラム。
- 請求項18に記載の数値データ列の符号化装置をDC成分の数値データの符号化手段として用い、請求項19に記載の数値データ列の符号化装置をAC成分の数値データ列の符号化手段として用いたことを特徴とするJPEG画像用圧縮処理装置。
- 下記の(1) に記載の数値データ列の復号化装置をDC成分の数値データの復号化手段として用い、下記の(2) に記載の数値データ列の復号化装置をAC成分の数値データ列の復号化手段として用いたことを特徴とするJPEG画像用伸張処理装置。
(1) 「所定のビット長を示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ(最大ビット長Umax)」を、複数組並べることにより構成された符号化データ列について、個々の実データに対応する数値データを復元する復号化装置であって、
復号化の対象となる符号化データ列を入力して格納するデータ格納部と、
個々の識別コードに対応する特定のビット長を示す符号化テーブルを格納するテーブル格納部と、
それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を並列して行う複数M台の復号処理ユニットと、
前記M台の復号処理ユニットに対して、前記データ格納部に格納されている符号化データ列の一部を部分データとして分配するデータ分配部と、
前記M台の復号処理ユニットによる復号処理の結果を取捨選択して、個々の実データに対応する数値データを並べた復号化データ列を生成するデータ編成部と、
生成された前記復号化データ列を出力するデータ出力部と、
を備え、
前記データ分配部は、前記符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、前記符号化データ列のすべての部分に対する復号化が完了するまで繰り返し行い、
前記M台の復号処理ユニットは、前記符号化テーブルを参照しながら、それぞれ分配された部分データから、実データに対応する数値データを取り出す復号処理を行う機能を有し、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を行い、
前記データ編成部は、1回の並列処理によって前記M台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された数値データを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化装置。
(2) 請求項25〜30のいずれかに記載の数値データ列の復号化装置。 - 請求項4または5に記載された符号化方法で出力されたデータファイルを記録したコンピュータ読み取り可能な情報記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009268415A JP5472610B2 (ja) | 2009-11-26 | 2009-11-26 | 数値データ列の符号化/復号化の方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009268415A JP5472610B2 (ja) | 2009-11-26 | 2009-11-26 | 数値データ列の符号化/復号化の方法および装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013257542A Division JP5626440B2 (ja) | 2013-12-13 | 2013-12-13 | 数値データ列の符号化/復号化の方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011114525A JP2011114525A (ja) | 2011-06-09 |
JP5472610B2 true JP5472610B2 (ja) | 2014-04-16 |
Family
ID=44236550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009268415A Expired - Fee Related JP5472610B2 (ja) | 2009-11-26 | 2009-11-26 | 数値データ列の符号化/復号化の方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5472610B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5450532B2 (ja) * | 2011-08-31 | 2014-03-26 | 京楽産業.株式会社 | 遊技機 |
JP5450534B2 (ja) * | 2011-08-31 | 2014-03-26 | 京楽産業.株式会社 | 遊技機 |
CN105335989B (zh) * | 2014-06-11 | 2019-04-05 | 富士通株式会社 | 图像编码方法和图像编码装置 |
JP6821184B2 (ja) * | 2017-02-28 | 2021-01-27 | 株式会社シキノハイテック | 画像復号化装置 |
JP7024866B2 (ja) * | 2018-06-01 | 2022-02-24 | 株式会社島津製作所 | 機器分析用データ処理方法及び装置 |
JP7685843B2 (ja) | 2021-02-01 | 2025-05-30 | 三菱電機株式会社 | データ圧縮装置、データ復号装置、データ復号方法及びデータ復号プログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6276931A (ja) * | 1985-09-30 | 1987-04-09 | Toshiba Corp | デ−タ圧縮装置 |
JPS62298280A (ja) * | 1986-06-18 | 1987-12-25 | Ricoh Co Ltd | 画像符号化方法 |
JPH05207301A (ja) * | 1992-01-28 | 1993-08-13 | Mitsubishi Electric Corp | ファクシミリ符号化装置 |
JP2646503B2 (ja) * | 1992-10-14 | 1997-08-27 | 株式会社ハドソン | データフォーマット |
JPH07135471A (ja) * | 1993-11-09 | 1995-05-23 | Tokyo Electron Ltd | データ圧縮装置およびデータ伸張装置 |
JPH08316844A (ja) * | 1995-05-17 | 1996-11-29 | Hitachi Ltd | 符号データ復号方法および符号データ復号装置 |
JPH0993138A (ja) * | 1995-09-27 | 1997-04-04 | Canon Inc | データ圧縮装置及びデータ復元装置 |
JP3676078B2 (ja) * | 1998-05-07 | 2005-07-27 | 株式会社リコー | ランレングス符号化方法及び圧縮装置 |
JP2000217003A (ja) * | 1999-01-20 | 2000-08-04 | Ricoh Co Ltd | 符号化装置および復号化装置 |
JP3661594B2 (ja) * | 2001-02-07 | 2005-06-15 | ソニー株式会社 | データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、および、カメラシステム |
-
2009
- 2009-11-26 JP JP2009268415A patent/JP5472610B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011114525A (ja) | 2011-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5472610B2 (ja) | 数値データ列の符号化/復号化の方法および装置 | |
CN103067022B (zh) | 一种整型数据无损压缩方法、解压缩方法及装置 | |
US5818877A (en) | Method for reducing storage requirements for grouped data values | |
JP6025923B2 (ja) | 整数値データのストリームを圧縮するシステム及び方法 | |
JP5944510B2 (ja) | 構文要素のコンテキスト−適応バイナリ算術符号化(Context−AdaptiveBinaryArithmeticCoding)の方法と装置 | |
WO2014131527A1 (en) | Data encoder, data decoder and method | |
US7375660B1 (en) | Huffman decoding method | |
US8682091B2 (en) | Real-time image compression | |
JP5656593B2 (ja) | 符号化データを復号する装置及び方法 | |
Saravanan et al. | Enhancing efficiency of huffman coding using Lempel Ziv coding for image compression | |
JP5626440B2 (ja) | 数値データ列の符号化/復号化の方法および装置 | |
KR101023536B1 (ko) | 데이터 무손실 압축 방법 | |
RU2709656C2 (ru) | Кодер, декодер и способ, использующие модовые символы | |
EP0635807B1 (en) | Coding apparatus for image compression | |
US7123656B1 (en) | Systems and methods for video compression | |
Saravanan et al. | Lossless grey-scale image compression using source symbols reduction and Huffman coding | |
JP4758494B2 (ja) | ビット長を符号に変換する回路及び方法 | |
KR101268934B1 (ko) | 데이터 압축/해제장치 및 방법 | |
van der Meer et al. | JPEG file fragmentation point detection using huffman code and quantization array validation | |
JP6593445B2 (ja) | 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 | |
JP4462087B2 (ja) | 符号化装置及び符号化方法 | |
KR20210012580A (ko) | 이진데이터의 압축 방법 및 장치 | |
KR20230022289A (ko) | 데이터 압축 방법 및 장치 | |
Kim | A new lossless data compression method | |
JP4526209B2 (ja) | 可変長符号伸長方法および装置並びに可変長符号圧縮伸長方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120918 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131002 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131015 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131213 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140121 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5472610 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |