JP5472610B2 - Method and apparatus for encoding / decoding numeric data string - Google Patents
Method and apparatus for encoding / decoding numeric data string 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
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本発明は、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化し、逆に、復号化する技術に関する。 The present invention relates to a technique for encoding a numeric data string composed of fixed-length bits using a variable-length bit string and, on the contrary, decoding the data.
デジタルデータファイルに対するデータ圧縮・伸張の技術は、情報量を維持しつつ、ファイルサイズを縮小する手法として様々な分野で利用されている。特に、音声・画像・映像といったデータファイルは、情報の冗長度が高いため、データ圧縮した状態でデータファイルを取り扱うことが一般化している。 Data compression / decompression techniques for digital data files are used in various fields as a method for reducing the file size while maintaining the amount of information. In particular, since data files such as audio, image, and video have high information redundancy, it is common to handle data files in a compressed state.
データ圧縮技術の重要な基本原理の1つは、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化することである。8ビット、16ビットという固定長ビットのデータは、CPUによる演算処理には向いているが、冗長ビットが多く含まれているため、データ容量が大きくなるという問題がある。そこで、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化し、冗長ビットを削除すれば、情報量を維持しつつ、データ容量を圧縮することができる。 One of the important basic principles of the data compression technique is to encode a numerical data string composed of fixed-length bits using a variable-length bit string. Data of fixed length bits such as 8 bits and 16 bits are suitable for arithmetic processing by the CPU, but there is a problem that the data capacity is increased because many redundant bits are included. Therefore, by encoding a numerical data string composed of fixed-length bits using a variable-length bit string and deleting redundant bits, the data capacity can be compressed while maintaining the amount of information.
データ圧縮技術のもうひとつの重要な基本原理は、ランレングスを用いた表現形式の採用である。たとえば、0を示す数値データについて、ランレングス表現形式を採用した場合、連続した0の個数をカウントし、当該カウント値を情報として記録することにより、データ容量の削減を図ることができる。特に、画像データや映像データの圧縮には、このランレングスを用いた表現形式が有効である。 Another important basic principle of data compression technology is the use of an expression format using run length. For example, when the run-length expression format is adopted for numerical data indicating 0, the data capacity can be reduced by counting the number of consecutive 0s and recording the count value as information. In particular, an expression format using this run length is effective for compressing image data and video data.
現在、主流となっているJPEG方式、MPEG方式、LHA方式などのデータ圧縮方式では、可変長符号であるハフマン符号を利用した符号化技術が採用されている。一般的に利用されているベースラインJPEG方式では、画像を8×8画素のブロックに分け、個々のブロックごとに離散コサイン変換(DCT)、量子化、ハフマン符号化という処理が順次行われる。この場合、ハフマン符号化では、DC成分とAC成分とに分けた処理が行われる、いずれの場合も、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化することにより、冗長ビットの削減が行われる。AC成分については、更に、0を示す数値データについて、ランレングス表現形式が採用され、データ容量の大幅な削減が図られる。 Currently, data compression methods such as the JPEG method, MPEG method, and LHA method, which are the mainstream, employ an encoding technique using a Huffman code that is a variable length code. In the commonly used baseline JPEG method, an image is divided into 8 × 8 pixel blocks, and discrete cosine transform (DCT), quantization, and Huffman coding are sequentially performed for each block. In this case, in Huffman coding, processing divided into a DC component and an AC component is performed. In any case, by encoding a numeric data string composed of fixed-length bits using a variable-length bit string, Redundant bits are reduced. For the AC component, the run length expression format is further adopted for the numerical data indicating 0, and the data capacity can be greatly reduced.
たとえば、下記の特許文献1,2には、ハフマン符号を利用してJPEG方式で画像データの圧縮を行う符号化装置が開示されている。また、下記の特許文献3には、JPEG方式で圧縮された画像データを効率良く復号化する復号化装置が開示されている。
For example, the following
上述したとおり、可変長のビット列を用いて符号化したデータ列は、CPUによる取り扱いに不適当であるため、実際に利用する際には、復号化を行って、元の固定長ビットからなる数値データ列へ戻す必要がある。ところが、可変長のビット列からなる符号化データは、区切りとなるビット位置が固定ではないため、処理単位の境界が不明確であり、従来の一般的な方法では、並列処理による復号化を行うことができない。すなわち、1台の復号処理ユニットを用いて、先頭から順に復号処理を行わざるを得ない。このため、復号処理に時間がかかり、特にリアルタイムでの表示処理を要求される映像データなどの場合、スムーズな再生が阻害されるなどの問題が生じる。 As described above, since a data string encoded using a variable-length bit string is inappropriate for handling by the CPU, when actually used, it is decoded and is a numerical value consisting of the original fixed-length bits. It is necessary to return to the data column. However, the encoded data consisting of variable-length bit strings does not have a fixed bit position as a delimiter, so the boundaries of the processing units are unclear. In the conventional general method, decoding is performed by parallel processing. I can't. That is, the decoding process must be performed in order from the top using one decoding processing unit. For this reason, the decoding process takes time, and in particular, in the case of video data that requires display processing in real time, there arises a problem that smooth reproduction is hindered.
前掲の特許文献3には、このような問題の一解決法として、初回の復号処理時に、符号化データ列の処理単位の境界を特定する境界情報を作成する作業を行っておき、2回目以降の復号処理時には、当該境界情報に基づいて符号化データ列を複数の部分データに分割し、複数台の復号処理ユニットを用いた並列処理により復号化を行う技術が開示されている。この技術を利用すれば、2回目以降の復号処理時には、並列処理による効率的な復号化が可能になる。しかしながら、初回の復号処理時には、依然として並列処理を行うことができず、当該技術は、根本的な解決策を提示するものではない。
In the above-mentioned
そこで本発明は、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化しつつ、復号化の段階において、並列処理が可能になる特殊な符号化の技術を提供することを目的とする。また、本発明は、当該符号化技術によって符号化されたデータを複数台の復号処理ユニットを用いた並列処理によって復号化する技術を提供することを目的とする。 Therefore, the present invention aims to provide a special encoding technique that enables a parallel processing at a decoding stage while encoding a numerical data string composed of fixed-length bits using a variable-length bit string. And Another object of the present invention is to provide a technique for decoding data encoded by the encoding technique by parallel processing using a plurality of decoding processing units.
(1) 本発明の第1の態様は、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する数値データ列の符号化方法において、
演算処理装置が、特定の数値データを可変長のビット列を用いて表現した実データを生成し、この実データの先頭に、少なくとも当該実データのビット長を示す情報をもった識別コードを付加することにより、少なくとも上記特定の数値データ自身を示す情報をもった単位符号データを生成し、生成された複数の単位符号データを順番に並べて符号化データ列として出力する処理を実行し、
付加する識別コードを選択する際に、少なくとも「所定範囲内の複数通りのビット長と、当該ビット長に対応する識別コードとの対応関係」を示す符号化テーブルを用いるようにし、かつ、当該テーブルが、当該テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
(1) According to a first aspect of the present invention, there is provided a numerical data string encoding method for encoding a numerical data string composed of fixed-length bits using a variable-length bit string.
The arithmetic processing unit generates actual data representing specific numerical data using a variable-length bit string, and adds an identification code having at least information indicating the bit length of the actual data to the head of the actual data. This generates unit code data having information indicating at least the specific numerical data itself, and executes a process of arranging the generated plurality of unit code data in order and outputting them as an encoded data string,
When selecting an identification code to be added, an encoding table indicating at least “a correspondence relationship between a plurality of bit lengths within a predetermined range and an identification code corresponding to the bit length” is used, and the table However, when focusing on any identification code in the table, when the bit length of the target identification code itself is a, the a-bit portion from the beginning is the same as the target identification code. No identification code exists in this table, and when a bit length corresponding to the identification code of interest is b, “N” is an integer greater than or equal to 2 The table satisfies the condition of “a + b = k × N” (where k is an arbitrary integer).
(2) 本発明の第2の態様は、上述した第1の態様に係る数値データ列の符号化方法において、
演算処理装置が、
符号化の対象となる数値データ列を入力するデータ入力段階と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを入力するテーブル入力段階と、
入力した数値データ列から個々の数値データを順番に抽出するデータ抽出段階と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成段階と、
符号化テーブルを参照して、生成された実データのビット長に対応する識別コードを選択する識別コード選択段階と、
生成された実データの先頭に、選択された識別コードを付加することにより、抽出した数値データを示す単位符号データを生成する単位符号データ生成段階と、
データ抽出段階、実データ生成段階、識別コード選択段階、単位符号データ生成段階を、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行する段階と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力段階と、
を実行するようにし、
符号化テーブルが、
実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
(2) According to a second aspect of the present invention, in the above-described numerical data string encoding method according to the first aspect,
Arithmetic processing unit
A data input stage for inputting a numeric data string to be encoded;
A table input stage for inputting a coding table indicating a unique identification code corresponding to each bit length;
A data extraction stage for sequentially extracting individual numerical data from the input numerical data string;
An actual data generation stage for generating actual data by deleting redundant bits from the extracted numerical data;
An identification code selection step of selecting an identification code corresponding to the bit length of the generated actual data with reference to the encoding table;
A unit code data generation stage for generating unit code data indicating the extracted numerical data by adding the selected identification code to the head of the generated actual data;
A step of repeatedly performing a data extraction step, an actual data generation step, an identification code selection step, and a unit code data generation step for each of the numerical data constituting the input numerical data string;
A data output stage for arranging the generated unit code data in order and outputting them as an encoded data string;
And run
The encoding table is
It is a table showing the correspondence between individual bit lengths and unique identification codes corresponding to the bit lengths for a plurality of bit lengths within a predetermined range sufficient to represent actual data,
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code. The code does not exist in this table, and when the bit length corresponding to the target identification code is b, “a + b = N” is a predetermined reference bit length N (where N is an integer of 2 or more). The table satisfies the condition “k × N” (where k is an arbitrary integer).
(3) 本発明の第3の態様は、上述した第2の態様に係る数値データ列の符号化方法において、
実データ生成段階で、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を、それぞれ生成するようにしたものである。
(3) According to a third aspect of the present invention, in the above-described numerical data string encoding method according to the second aspect,
In the actual data generation stage, as actual data indicating the extracted numerical data, when the numerical data is data indicating 0, a virtual bit string having a bit length of 0 is represented as data indicating a positive value. Is a variable-length bit string that does not include 0 at the beginning, and a variable-length bit string that does not include 1 at the beginning if the data indicates a negative value.
(4) 本発明の第4の態様は、上述した第1の態様に係る数値データ列の符号化方法において、
演算処理装置が、
符号化の対象となる数値データ列を入力するデータ入力段階と、
個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルを入力するテーブル入力段階と、
入力した数値データ列から個々の数値データを順番に抽出するデータ抽出段階と、
抽出した数値データが0を示すデータであり、かつ、これまでのカウント値が最大値Rmaxに達していない場合に、0を示す数値データが連続して抽出された回数をランレングス値としてカウントするランレングス値カウント段階と、
抽出した数値データが正の値を示すデータである場合に、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成し、抽出した数値データが負の値を示すデータである場合に、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成し、抽出した数値データが0を示すデータであり、かつ、カウント値が最大値Rmaxに達していた場合に、ビット長が0である仮想のビット列を実データとして生成する実データ生成段階と、
二次元符号化テーブルを参照して、生成された実データのビット長と、当該実データが生成された時のランレングス値と、の組み合わせに対応する識別コードを選択し、カウント値を0にリセットする識別コード選択段階と、
生成された実データの先頭に、選択された識別コードを付加することにより、抽出した数値データを示す単位符号データを生成する単位符号データ生成段階と、
データ抽出段階を、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行するとともに、ランレングス値カウント段階、実データ生成段階、識別コード選択段階および単位符号データ生成段階を、必要に応じて繰り返し実行する段階と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力段階と、
を実行するようにし、
符号化テーブルが、予め定められた所定の最大ランレングス値をRmaxとしたときに、実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
(4) According to a fourth aspect of the present invention, in the above-described numerical data string encoding method according to the first aspect,
Arithmetic processing unit
A data input stage for inputting a numeric data string to be encoded;
A table input stage for inputting a two-dimensional encoding table indicating a unique identification code corresponding to a combination of individual bit lengths and individual run length values;
A data extraction stage for sequentially extracting individual numerical data from the input numerical data string;
When the extracted numerical data is data indicating 0 and the count value so far has not reached the maximum value Rmax, the number of times the numerical data indicating 0 is continuously extracted is counted as a run length value. A run length value counting stage;
When the extracted numerical data is data indicating a positive value, a variable-length bit string that does not include a leading zero is generated as actual data indicating the numerical data, and the extracted numerical data is data indicating a negative value In some cases, a variable-length bit string not including 1 at the beginning is generated as actual data indicating the numerical data, the extracted numerical data is data indicating 0, and the count value has reached the maximum value Rmax. A real data generation stage for generating a virtual bit string having a bit length of 0 as real data,
With reference to the two-dimensional encoding table, an identification code corresponding to a combination of the bit length of the generated actual data and the run length value when the actual data is generated is selected, and the count value is set to 0 An identification code selection stage to be reset;
A unit code data generation stage for generating unit code data indicating the extracted numerical data by adding the selected identification code to the head of the generated actual data;
The data extraction stage is repeatedly executed for each of the numerical data constituting the input numerical data string, and the run length value counting stage, the actual data generation stage, the identification code selection stage, and the unit code data generation stage are performed as necessary. Repeated steps,
A data output stage for arranging the generated unit code data in order and outputting them as an encoded data string;
And run
When the encoding table has a predetermined maximum run length value determined in advance as Rmax, a plurality of bit lengths within a predetermined range sufficient for expressing actual data and a plurality of types within a range up to Rmax Is a table showing a correspondence relationship between each combination and a unique identification code corresponding to the combination for each combination of run length values of
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code. The code does not exist in this table, and when the bit length corresponding to the target identification code is b, “a + b = N” is a predetermined reference bit length N (where N is an integer of 2 or more). The table satisfies the condition “k × N” (where k is an arbitrary integer).
(5) 本発明の第5の態様は、上述した第4の態様に係る数値データ列の符号化方法において、
データ抽出段階で、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行し、当該調査処理によりゼロ永続状態であることが確認された場合に、
実データ生成段階では、ビット長が0である仮想のビット列を実データとして生成し、識別コード選択段階では、ゼロ永続状態を示す終端コードを識別コードとして選択するようにしたものである。
(5) According to a fifth aspect of the present invention, in the above-described numerical data string encoding method according to the fourth aspect,
In the data extraction stage, when extracting numeric data, it is checked whether or not “zero persistent state that all numeric data subsequent to the end of the numeric data string including the numeric data to be extracted is 0”. When an investigation process is executed and it is confirmed that the investigation process is in a zero-permanent state,
In the actual data generation stage, a virtual bit string having a bit length of 0 is generated as actual data, and in the identification code selection stage, a termination code indicating a zero permanent state is selected as an identification code.
(6) 本発明の第6の態様は、上述した第1〜第5の態様に係る数値データ列の符号化方法において、
実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルを用いるようにしたものである。
(6) According to a sixth aspect of the present invention, in the above-described numerical data string encoding method according to the first to fifth aspects,
As the appearance frequency of the bit length b of actual data or the appearance frequency of the combination of the bit length b and the run length value R is higher, an encoding table in which an identification code having a shorter bit length a is associated is used. It is what I did.
(7) 本発明の第7の態様は、上述した第6の態様に係る数値データ列の符号化方法において、
符号化の対象となる数値データ列について、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度を集計する頻度集計段階と、
既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成するテーブル修正段階と、
を更に実行し、
識別コード選択段階で、修正した符号化テーブルを参照して、識別コードの選択を行うようにしたものである。
(7) According to a seventh aspect of the present invention, in the above-described numerical data string encoding method according to the sixth aspect,
A frequency counting stage for counting the appearance frequency of the bit length b of the actual data or the appearance frequency of the combination of the bit length b and the run length value R for the numerical data string to be encoded;
The frequency of occurrence of the bit length b of the actual data or the bit by performing the process of exchanging the contents of the table for the bit lengths b having an integer multiple difference of the reference bit length N in the existing standard encoding table A table modification stage for generating a modified encoding table in which an identification code having a shorter bit length a is associated with an increase in the appearance frequency of the combination of the length b and the run length value R;
And execute
In the identification code selection stage, the identification code is selected with reference to the corrected encoding table.
(8) 本発明の第8の態様は、上述した第1〜第7の態様に係る数値データ列の符号化方法において、
データ出力段階において、符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルを出力するようにしたものである。
(8) According to an eighth aspect of the present invention, in the above-described numerical data string encoding method according to the first to seventh aspects,
In the data output stage, a data file including the encoded data string and the encoding table used for the encoding process is output.
(9) 本発明の第9の態様は、上述した第1〜第7の態様に係る数値データ列の符号化方法において、
データ出力段階において、符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルを出力するようにしたものである。
(9) According to a ninth aspect of the present invention, in the above-described numerical data string encoding method according to the first to seventh aspects,
In the data output stage, a data file including an encoded data string and table specifying information for specifying an encoding table used for encoding processing is output.
(10) 本発明の第10の態様は、上述した第2の態様に係る数値データ列の符号化方法によって符号化された符号化データ列について、符号化の対象となった数値データ列を復元する数値データ列の復号化方法において、
複数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回もしくは複数回の並列処理によってそれぞれ収集された数値データを並べることにより復号化データ列を生成するようにしたものである。
(10) According to a tenth aspect of the present invention, a numerical data sequence that is a target of encoding is restored for the encoded data sequence encoded by the numerical data sequence encoding method according to the second aspect described above. In the decoding method of the numerical data sequence to be performed,
An arithmetic processing device including a plurality of M decoding processing units is provided.
A data input stage for inputting an encoded data sequence to be decoded;
A table input stage for inputting an encoding table used for encoding;
Decoding of a plurality of M units each having a function of performing decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax when the maximum bit length of unit code data is Umax) A data distribution stage for distributing a part of the encoded data string as partial data to the processing unit;
A decoding process stage for performing a decoding process of extracting numerical data corresponding to actual data from each distributed partial data while referring to an encoding table by parallel processing by M decoding processing units;
A data organization stage for selecting a result of the decryption processing by the M decryption processing units and generating a decrypted data sequence in which numerical data corresponding to individual actual data are arranged;
A data output stage for outputting the generated decrypted data sequence;
And run
In the data distribution stage, bit strings from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the head of the undecoded portion of the encoded data sequence , Repeating the process of distributing to the i-th unit (i = 1 to M) until decoding of all parts of the encoded data sequence is completed,
In the decryption processing stage, each of the M decryption processing units performs processing for extracting numerical data corresponding to actual data from the head of the distributed partial data each time new partial data is distributed. ,
In the data organization stage, when the processing results are obtained from the M decoding processing units by one parallel processing, the first unit is first determined as the first selection unit, and a normal decoding process is performed by this selection unit. The process of recognizing the last bit performed and determining as another newly adopted unit another unit to which the partial data having the bit immediately after the last bit as the first bit is distributed is performed as much as possible. Numeric data that has been successfully decoded by the selected unit is collected, and the decoded data string is generated by arranging the numeric data collected by one or more parallel processes.
(11) 本発明の第11の態様は、上述した第4の態様に係る数値データ列の符号化方法によって符号化された符号化データ列について、符号化の対象となった数値データ列を復元する数値データ列の復号化方法において、
複数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回もしくは複数回の並列処理によってそれぞれ収集された情報に基いて数値データを並べることにより復号化データ列を生成するようにしたものである。
(11) According to an eleventh aspect of the present invention, a numerical data sequence that is a target of encoding is restored for the encoded data sequence encoded by the numerical data sequence encoding method according to the fourth aspect described above. In the decoding method of the numerical data sequence to be performed,
An arithmetic processing device including a plurality of M decoding processing units is provided.
A data input stage for inputting an encoded data sequence to be decoded;
A table input stage for inputting a two-dimensional encoding table used for encoding;
Decoding of a plurality of M units each having a function of performing decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax when the maximum bit length of unit code data is Umax) A data distribution stage for distributing a part of the encoded data string as partial data to the processing unit;
A run-length value indicating the number of times numeric data indicating 0 is enumerated from the partial data distributed by referring to the two-dimensional encoding table by parallel processing by M decoding processing units, and a numerical value indicating 0 A decoding process stage for performing a decoding process to extract numerical data corresponding to actual data following the data;
A data organization stage for selecting a result of the decoding processing by the M decoding processing units and generating a decoded data string in which numerical data indicating 0 and numerical data corresponding to individual real data are arranged;
A data output stage for outputting the generated decrypted data sequence;
And run
In the data distribution stage, bit strings from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the head of the undecoded portion of the encoded data sequence , Repeating the process of distributing to the i-th unit (i = 1 to M) until decoding of all parts of the encoded data sequence is completed,
In the decoding process stage, each of the M decoding processing units takes out the numerical data corresponding to the run length value and the actual data from the head of the distributed partial data each time new partial data is distributed. Process
In the data organization stage, when the processing results are obtained from the M decoding processing units by one parallel processing, the first unit is first determined as the first selection unit, and a normal decoding process is performed by this selection unit. The process of recognizing the last bit performed and determining as another newly adopted unit another unit to which the partial data having the bit immediately after the last bit as the first bit is distributed is performed as much as possible. Numeric data that has been successfully decrypted by the selected unit is collected, and the decrypted data string is generated by arranging the numeric data based on the information collected by one or more parallel processes. Is.
(12) 本発明の第12の態様は、「少なくとも所定のビット長を示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ」を、複数組並べることにより構成された符号化データ列について、少なくとも個々の実データに対応する数値データを復元する数値データ列の復号化方法において、
符号化データ列をNビットの整数倍の単位で分割して複数の部分データを生成し、各部分データを複数M台の復号処理ユニットに分配し、
複数M台の復号処理ユニットの並列処理により、分配された部分データに対する復号処理を行い、
正常に復号化が行われた数値データを並べることにより復号化データ列を生成するようにしたものである。
(12) According to a twelfth aspect of the present invention, “at least an identification code indicating a predetermined bit length followed by actual data including a bit string having the bit length, the total length being a predetermined reference Corresponds to at least individual actual data for an encoded data string configured by arranging a plurality of unit code data set to be an integer multiple of bit length N (where N is an integer of 2 or more) In the decoding method of the numerical data string for restoring the numerical data to be performed,
Dividing the encoded data string in units of an integer multiple of N bits to generate a plurality of partial data, and distributing each partial data to a plurality of M decoding processing units;
By performing parallel processing of a plurality of M decoding processing units, a decoding process is performed on the distributed partial data,
A decoded data string is generated by arranging numerical data that have been normally decoded.
(13) 本発明の第13の態様は、上述した第12の態様に係る数値データ列の復号化方法において、
「所定のビット長を示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長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回もしくは複数回の並列処理によってそれぞれ収集された数値データを並べることにより復号化データ列を生成するようにしたものである。
(13) According to a thirteenth aspect of the present invention, in the above-described numerical data sequence decoding method according to the twelfth aspect,
“A data in which actual data consisting of a bit string having the bit length is arranged following an identification code indicating a predetermined bit length, and the total length is a predetermined reference bit length N (where N is an integer of 2 or more) In order to restore numerical data corresponding to individual actual data for an encoded data string configured by arranging a plurality of unit code data (maximum bit length Umax) set to be an integral multiple of ,
An arithmetic processing device including a plurality of M decoding processing units is provided.
A data input stage for inputting an encoded data sequence to be decoded;
A table input stage for inputting an encoding table indicating a specific bit length corresponding to each identification code;
A part of the encoded data string is assigned to a plurality of M decoding processing units each having a function of performing decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax). A data distribution stage to distribute as partial data;
A decoding process stage for performing a decoding process of extracting numerical data corresponding to actual data from each distributed partial data while referring to an encoding table by parallel processing by M decoding processing units;
A data organization stage for selecting a result of the decryption processing by the M decryption processing units and generating a decrypted data sequence in which numerical data corresponding to individual actual data are arranged;
A data output stage for outputting the generated decrypted data sequence;
And run
In the data distribution stage, bit strings from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the head of the undecoded portion of the encoded data sequence , Repeating the process of distributing to the i-th unit (i = 1 to M) until decoding of all parts of the encoded data sequence is completed,
In the decryption processing stage, each of the M decryption processing units performs processing for extracting numerical data corresponding to actual data from the head of the distributed partial data each time new partial data is distributed. ,
In the data organization stage, when the processing results are obtained from the M decoding processing units by one parallel processing, the first unit is first determined as the first selection unit, and a normal decoding process is performed by this selection unit. The process of recognizing the last bit performed and determining as another newly adopted unit another unit to which the partial data having the bit immediately after the last bit as the first bit is distributed is performed as much as possible. Numeric data that has been successfully decoded by the selected unit is collected, and the decoded data string is generated by arranging the numeric data collected by one or more parallel processes.
(14) 本発明の第14の態様は、上述した第13の態様に係る数値データ列の符号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
(14) According to a fourteenth aspect of the present invention, in the encoding method of the numerical data string according to the thirteenth aspect described above,
In the decoding process stage, each of the M decoding processing units performs processing for extracting numerical data corresponding to actual data from the head of the distributed partial data each time new partial data is distributed. The normal decoding process is continued as much as possible.
(15) 本発明の第15の態様は、上述した第13の態様に係る数値データ列の符号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理を行うようにしたものである。
(15) According to a fifteenth aspect of the present invention, in the above-described numerical data string encoding method according to the thirteenth aspect,
Numerical data corresponding to actual data for one unit code data from the beginning of the distributed partial data each time the M partial decoding processing units distribute new partial data at the decoding processing stage. The process for taking out only is performed.
(16) 本発明の第16の態様は、上述した第13の態様に係る数値データ列の符号化方法において、
復号処理段階で、M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
(16) According to a sixteenth aspect of the present invention, in the encoding method of the numerical data string according to the thirteenth aspect described above,
In the decoding process stage, each of the first to (M−1) -th units among the M decoding processing units is distributed each time new partial data is distributed. The process for extracting only the numerical data corresponding to the actual data for one unit code data is performed from the beginning of the unit, and the M-th unit is distributed each time new partial data is distributed. The process for extracting the numerical data corresponding to the actual data from the head of the partial data is continued as long as normal decoding processing is possible.
(17) 本発明の第17の態様は、上述した第12の態様に係る数値データ列の復号化方法において、
「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、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回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成するようにしたものである。
(17) According to a seventeenth aspect of the present invention, in the method for decoding a numeric data string according to the twelfth aspect described above,
“Subsequent to an identification code indicating a combination of a predetermined bit length and a predetermined run length value, it has a structure in which real data including a bit string having the bit length is arranged, and numerical data indicating 0 is expressed as the run length. Indicates a data string in which numerical data corresponding to actual data is arranged after being enumerated a number of times corresponding to the value, and the total length is set to be an integral multiple of a predetermined reference bit length N (where N is an integer of 2 or more) In order to restore the original data sequence in which numerical data indicating 0 and individual actual data are arranged for an encoded data sequence configured by arranging a plurality of sets of unit code data (maximum bit length Umax) ” ,
An arithmetic processing device including a plurality of M decoding processing units is provided.
A data input stage for inputting an encoded data sequence to be decoded;
A table input stage for inputting a two-dimensional encoding table indicating a combination of a specific bit length corresponding to each identification code and a specific run length value;
A part of the encoded data string is assigned to a plurality of M decoding processing units each having a function of performing decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax). A data distribution stage to distribute as partial data;
A run-length value indicating the number of times numeric data indicating 0 is enumerated from the partial data distributed by referring to the two-dimensional encoding table by parallel processing by M decoding processing units, and a numerical value indicating 0 A decoding process stage for performing a decoding process to extract numerical data corresponding to actual data following the data;
A data organization stage for selecting a result of the decoding processing by the M decoding processing units and generating a decoded data string in which numerical data indicating 0 and numerical data corresponding to individual real data are arranged;
A data output stage for outputting the generated decrypted data sequence;
And run
In the data distribution stage, bit strings from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the head of the undecoded portion of the encoded data sequence , Repeating the process of distributing to the i-th unit (i = 1 to M) until decoding of all parts of the encoded data sequence is completed,
In the decoding process stage, each of the M decoding processing units takes out the numerical data corresponding to the run length value and the actual data from the head of the distributed partial data each time new partial data is distributed. Process
In the data organization stage, when the processing results are obtained from the M decoding processing units by one parallel processing, the first unit is first determined as the first selection unit, and a normal decoding process is performed by this selection unit. The process of recognizing the last bit performed and determining as another newly adopted unit another unit to which the partial data having the bit immediately after the last bit as the first bit is distributed is performed as much as possible. Numeric data that has been successfully decrypted by the selected unit is collected, and the decrypted data string is generated by arranging the numeric data based on the information collected by one or more parallel processes. Is.
(18) 本発明の第18の態様は、上述した第17の態様に係る数値データ列の復号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
(18) According to an eighteenth aspect of the present invention, in the numerical data sequence decoding method according to the seventeenth aspect described above,
In the decoding process stage, each of the M decoding processing units extracts numerical data corresponding to the run-length value and the actual data from the head of the distributed partial data each time new partial data is distributed. This process is to continue normal decryption processing as much as possible.
(19) 本発明の第19の態様は、上述した第17の態様に係る数値データ列の復号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行うようにしたものである。
(19) According to a nineteenth aspect of the present invention, in the numerical data sequence decoding method according to the seventeenth aspect described above,
In the decoding process stage, each time the M decoding processing units distribute new partial data, the run length value and the actual data for one unit code data from the head of the distributed partial data. A process for extracting only the corresponding numerical data is performed.
(20) 本発明の第20の態様は、上述した第17の態様に係る数値データ列の復号化方法において、
復号処理段階で、M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
(20) According to a twentieth aspect of the present invention, in the numerical data string decoding method according to the seventeenth aspect described above,
In the decoding process stage, each of the first to (M−1) -th units among the M decoding processing units is distributed each time new partial data is distributed. Each time the M-th unit distributes new partial data, it performs a process for extracting only the run-length value for one unit code data and the numerical data corresponding to the actual data. The process for extracting the numerical data corresponding to the run length value and the actual data from the head of the distributed partial data is continued as much as possible for normal decoding processing.
(21) 本発明の第21の態様は、上述した第17〜第20の態様に係る数値データ列の復号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、
データ編成段階で、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。
(21) According to a twenty-first aspect of the present invention, in the numerical data sequence decoding method according to the seventeenth to twentieth aspects described above,
In the decoding process stage, each of the M decoding processing units restores the original data by arranging the numerical data corresponding to the actual data after arranging the numerical data indicating 0 as many times as the run-length value. Execute the process,
A decoding method of a numerical data string, wherein a decoded data string is generated by arranging restored data in a data organization stage.
(22) 本発明の第22の態様は、上述した第17〜第20の態様に係る数値データ列の復号化方法において、
復号処理段階で、M台の復号処理ユニットのそれぞれが、取り出したランレングス値および実データに対応する数値データをそのまま出力する処理を実行し、
データ編成段階で、各採択ユニットから収集した情報に基づいて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。
(22) According to a twenty-second aspect of the present invention, in the above-described numerical data string decoding method according to the seventeenth to twentieth aspects,
In the decoding process stage, each of the M decoding processing units executes a process of outputting the run length value and the numerical data corresponding to the actual data as they are,
In the data organization stage, based on the information collected from each adopted unit, the original data is restored by arranging the numerical data indicating 0 for the number of times corresponding to the run-length value and arranging the numerical data corresponding to the actual data. A decoding method for a numerical data string, wherein the decoding data string is generated by arranging the restored data by performing a process to perform
(23) 本発明の第23の態様は、上述した第13〜第22の態様に係る数値データ列の復号化方法において、
符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルが与えられたときに、
データ入力段階において、データファイルから符号化データ列を抽出する処理を行い、
テーブル入力段階において、データファイルから符号化テーブルを抽出する処理を行うようにしたものである。
(23) According to a twenty-third aspect of the present invention, in the above-described numerical data string decoding method according to the thirteenth to twenty-second aspects,
When a data file including an encoded data string and an encoding table used for encoding processing is given,
In the data input stage, perform the process of extracting the encoded data string from the data file,
In the table input stage, processing for extracting the encoding table from the data file is performed.
(24) 本発明の第24の態様は、上述した第13〜第22の態様に係る数値データ列の復号化方法において、
符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルが与えられたときに、
データ入力段階において、データファイルから符号化データ列を抽出する処理を行い、
テーブル入力段階において、データファイルからテーブル特定情報を抽出する処理を行った後、当該テーブル特定情報によって特定されるテーブルを選択して利用するようにしたものである。
(24) According to a twenty-fourth aspect of the present invention, in the above-described numerical data string decoding method according to the thirteenth to twenty-second aspects,
When a data file including an encoded data string and table specifying information for specifying an encoding table used for encoding processing is given,
In the data input stage, perform the process of extracting the encoded data string from the data file,
In the table input stage, after performing the process of extracting the table specifying information from the data file, the table specified by the table specifying information is selected and used.
(25) 本発明の第25の態様は、上述した第13〜第24の態様に係る数値データ列の復号化方法において、
データ分配段階では、M≧1+L/Nとなるような複数M台の復号処理ユニットに部分データの分配を行い、
復号処理段階では、これらM台の復号処理ユニットによる並列処理を行うようにしたものである。
(25) According to a twenty-fifth aspect of the present invention, in the method for decoding numerical data strings according to the thirteenth to twenty-fourth aspects described above,
In the data distribution stage, partial data is distributed to a plurality of M decoding processing units such that M ≧ 1 + L / N,
In the decoding process stage, parallel processing by these M decoding processing units is performed.
(26) 本発明の第26の態様は、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する数値データ列の符号化装置において、
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを格納するテーブル格納部と、
データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成部と、
符号化テーブルを参照して、生成された実データのビット長に対応する識別コードを選択する識別コード選択部と、
生成された実データの先頭に、選択された識別コードを付加することにより、抽出した数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を設け、
符号化テーブルが、
実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
(26) According to a twenty-sixth aspect of the present invention, in a numerical data sequence encoding device that encodes a numerical data sequence composed of fixed-length bits using a variable-length bit sequence,
A data storage unit for inputting and storing a numeric data sequence to be encoded;
A table storage unit for storing a coding table indicating a unique identification code corresponding to each bit length;
A data extraction unit that sequentially extracts individual numerical data from a numerical data string stored in the data storage unit;
An actual data generation unit that generates actual data by deleting redundant bits from the extracted numerical data;
An identification code selection unit that selects an identification code corresponding to the bit length of the generated actual data with reference to the encoding table;
A unit code data generation unit that generates unit code data indicating the extracted numerical data by adding the selected identification code to the head of the generated actual data;
A data output unit that arranges the generated unit code data in order and outputs the encoded data as an encoded data sequence;
Provided,
The encoding table is
It is a table showing the correspondence between individual bit lengths and unique identification codes corresponding to the bit lengths for a plurality of bit lengths within a predetermined range sufficient to represent actual data,
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code. The code does not exist in this table, and when the bit length corresponding to the target identification code is b, “a + b = N” is a predetermined reference bit length N (where N is an integer of 2 or more). The table satisfies the condition “k × N” (where k is an arbitrary integer).
(27) 本発明の第27の態様は、上述した第26の態様に係る数値データ列の符号化装置において、
実データ生成部が、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を、それぞれ生成するようにしたものである。
(27) According to a twenty-seventh aspect of the present invention, in the numerical data string encoding device according to the twenty-sixth aspect described above,
When the actual data generation unit is a real data indicating the extracted numerical data, when the numerical data is data indicating 0, a virtual bit string having a bit length of 0 is represented by a positive value. Is a variable-length bit string that does not include 0 at the beginning, and a variable-length bit string that does not include 1 at the beginning if the data indicates a negative value.
(28) 本発明の第28の態様は、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する数値データ列の符号化装置において、
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルを格納するテーブル格納部と、
データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データが0を示すデータであり、かつ、これまでのカウント値が最大値Rmaxに達していない場合には、0を示す数値データが連続して抽出された回数をランレングス値としてカウントする処理を行い、抽出した数値データが正の値を示すデータである場合には、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成する処理を行い、抽出した数値データが負の値を示すデータである場合には、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成する処理を行い、抽出した数値データが0を示すデータであり、かつ、カウント値が最大値Rmaxに達していた場合には、ビット長が0である仮想のビット列を実データとして生成する実データ生成部と、
二次元符号化テーブルを参照して、生成された実データのビット長と、当該実データが生成された時のランレングス値と、の組み合わせに対応する識別コードを選択し、カウント値を0にリセットする識別コード選択部と、
生成された実データの先頭に、選択された識別コードを付加することにより、抽出した数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を設け、
符号化テーブルが、予め定められた所定の最大ランレングス値をRmaxとしたときに、実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであるようにしたものである。
(28) According to a twenty-eighth aspect of the present invention, in a numerical data sequence encoding device that encodes a numerical data sequence composed of fixed-length bits using a variable-length bit sequence,
A data storage unit for inputting and storing a numeric data sequence to be encoded;
A table storage unit for storing a two-dimensional encoding table indicating a unique identification code corresponding to a combination of individual bit lengths and individual run length values;
A data extraction unit that sequentially extracts individual numerical data from a numerical data string stored in the data storage unit;
When the extracted numerical data is data indicating 0 and the count value so far has not reached the maximum value Rmax, the number of times the numerical data indicating 0 is continuously extracted is counted as a run length value. If the extracted numerical data is data indicating a positive value, a process of generating a variable-length bit string that does not include a leading zero as actual data indicating the numerical data is performed. When the data is a data indicating a negative value, a process of generating a variable-length bit string not including 1 at the head is performed as actual data indicating the numerical data, and the extracted numerical data is data indicating 0 When the count value has reached the maximum value Rmax, an actual data generation unit that generates a virtual bit string having a bit length of 0 as actual data;
With reference to the two-dimensional encoding table, an identification code corresponding to a combination of the bit length of the generated actual data and the run length value when the actual data is generated is selected, and the count value is set to 0 An identification code selection unit to be reset;
A unit code data generation unit that generates unit code data indicating the extracted numerical data by adding the selected identification code to the head of the generated actual data;
A data output unit that arranges the generated unit code data in order and outputs the encoded data as an encoded data sequence;
Provided,
When the encoding table has a predetermined maximum run length value determined in advance as Rmax, a plurality of bit lengths within a predetermined range sufficient for expressing actual data and a plurality of types within a range up to Rmax Is a table showing a correspondence relationship between each combination and a unique identification code corresponding to the combination for each combination of run length values of
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code. The code does not exist in this table, and when the bit length corresponding to the target identification code is b, “a + b = N” is a predetermined reference bit length N (where N is an integer of 2 or more). The table satisfies the condition “k × N” (where k is an arbitrary integer).
(29) 本発明の第29の態様は、上述した第28の態様に係る数値データ列の符号化装置において、
データ抽出部が、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行し、
実データ生成部が、調査処理によりゼロ永続状態であることが確認された場合に、ビット長が0である仮想のビット列を実データとして生成し、
識別コード選択部が、調査処理によりゼロ永続状態であることが確認された場合に、ゼロ永続状態を示す終端コードを識別コードとして選択するようにしたものである。
(29) According to a twenty-ninth aspect of the present invention, in the numerical data string encoding device according to the twenty-eighth aspect described above,
When the data extraction unit extracts the numerical data, it checks whether or not “a zero-permanent state in which all the numerical data subsequent to the end of the numerical data string including the numerical data to be extracted is 0” is in effect. Run the investigation process,
When the real data generation unit is confirmed to be in a zero-permanent state by the investigation process, a virtual bit string having a bit length of 0 is generated as real data,
The identification code selection unit is configured to select a termination code indicating the zero permanent state as an identification code when it is confirmed by the investigation process that the zero permanent state is established.
(30) 本発明の第30の態様は、上述した第26〜第29の態様に係る数値データ列の符号化装置において、
テーブル格納部に格納されている符号化テーブルが、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルであるようにしたものである。
(30) According to a thirtieth aspect of the present invention, in the numerical data sequence encoding device according to the twenty-sixth to twenty-ninth aspects described above,
The encoding table stored in the table storage unit has a shorter bit length a as the appearance frequency of the bit length b of the actual data or the appearance frequency of the combination of the bit length b and the run length value R increases. The encoding table is associated with an identification code.
(31) 本発明の第31の態様は、上述した第30の態様に係る数値データ列の符号化装置において、
データ格納部に格納されている数値データ列について、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度を集計する頻度集計部と、
既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成し、これをテーブル格納部に格納するテーブル修正部と、
を更に設けたものである。
(31) According to a thirty-first aspect of the present invention, in the numerical data string encoding device according to the thirtieth aspect described above,
A frequency counting unit that counts the appearance frequency of the bit length b of the actual data or the appearance frequency of the combination of the bit length b and the run length value R for the numerical data string stored in the data storage unit;
The frequency of occurrence of the bit length b of the actual data or the bit by performing the process of exchanging the contents of the table for the bit lengths b having an integer multiple difference of the reference bit length N in the existing standard encoding table A table for generating a modified encoding table in which an identification code having a shorter bit length a is associated with each other as the appearance frequency of the combination of the length b and the run length value R is higher, and storing the table in the table storage unit Correction part,
Is further provided.
(32) 本発明の第32の態様は、上述した第26〜第31の態様に係る数値データ列の符号化装置において、
データ出力部が、符号化データ列とともに、テーブル格納部に格納されている符号化テーブルもしくは当該符号化テーブルを特定するテーブル特定情報を出力するようにしたものである。
(32) According to a thirty-second aspect of the present invention, in the numerical data sequence encoding device according to the twenty-sixth to thirty-first aspects described above,
The data output unit outputs the encoding table stored in the table storage unit or table specifying information for specifying the encoding table together with the encoded data string.
(33) 本発明の第33の態様は、「所定のビット長を示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長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回もしくは複数回の並列処理によってそれぞれ収集された数値データを並べることにより復号化データ列を生成するようにしたものである。
(33) According to a thirty-third aspect of the present invention, “the identification code indicating a predetermined bit length is followed by actual data including a bit string having the bit length, and the total length is a predetermined reference bit. For each encoded data string formed by arranging a plurality of unit code data (maximum bit length Umax) set to be an integral multiple of the length N (where N is an integer of 2 or more) A numerical data string decoding device for restoring numerical data corresponding to actual data,
A data storage unit for inputting and storing an encoded data sequence to be decoded;
A table storage unit for storing a coding table indicating a specific bit length corresponding to each identification code;
A plurality of M decoding processing units that perform decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax) in parallel,
A data distribution unit that distributes a part of the encoded data sequence stored in the data storage unit as partial data to the M decoding processing units;
A data organization unit that selects a result of the decryption processing by the M decryption processing units and generates a decrypted data sequence in which numerical data corresponding to individual actual data are arranged;
A data output unit for outputting the generated decrypted data sequence;
Provided,
The data distributing unit counts the bit sequence from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the head of the undecoded unit of the encoded data sequence. , Repeating the process of distributing to the i-th unit (i = 1 to M) until decoding of all parts of the encoded data sequence is completed,
The M decoding processing units have a function of performing a decoding process of extracting numerical data corresponding to actual data from each distributed partial data while referring to the encoding table, and new partial data is distributed. Each time, the processing to extract the numerical data corresponding to the actual data from the beginning of the distributed partial data,
When the processing result is obtained from the M decoding processing units by one parallel processing, the data organization unit first determines the first unit as the first selected unit, and the selected decoding unit performs normal decoding processing. The process of recognizing the last bit performed and determining as another newly adopted unit another unit to which the partial data having the bit immediately after the last bit as the first bit is distributed is performed as much as possible. Numeric data that has been successfully decoded by the selected unit is collected, and the decoded data string is generated by arranging the numeric data collected by one or more parallel processes.
(34) 本発明の第34の態様は、上述した第33の態様に係る数値データ列の復号化装置において、
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
(34) According to a thirty-fourth aspect of the present invention, in the numerical data sequence decoding apparatus according to the thirty-third aspect described above,
Each of the M decoding processing units performs processing for extracting numerical data corresponding to actual data from the head of the distributed partial data each time new partial data is distributed. It is intended to continue as much as possible.
(35) 本発明の第35の態様は、上述した第33の態様に係る数値データ列の復号化装置において、
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理を行うようにしたものである。
(35) According to a thirty-fifth aspect of the present invention, in the numerical data sequence decoding apparatus according to the thirty-third aspect described above,
Each of the M decoding processing units extracts only numerical data corresponding to actual data for one unit code data from the head of the distributed partial data each time new partial data is distributed. Processing is performed.
(36) 本発明の第36の態様は、上述した第33の態様に係る数値データ列の復号化装置において、
M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
(36) In a thirty-sixth aspect of the present invention, in the numerical data string decoding device according to the thirty-third aspect described above,
Among the M decoding processing units, each of the first to (M−1) -th units is 1 from the head of the distributed partial data each time new partial data is distributed. A process for extracting only numerical data corresponding to actual data for one unit code data is performed, and each time the M-th unit distributes new partial data, it starts from the beginning of the distributed partial data. The process for extracting the numerical data corresponding to the actual data is continued as long as normal decryption processing is possible.
(37) 本発明の第37の態様は、「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、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回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成するようにしたものである。
(37) According to a thirty-seventh aspect of the present invention, “a structure in which actual data including a bit string having the bit length is arranged following an identification code indicating a combination of a predetermined bit length and a predetermined run length value” is provided. And a numerical sequence corresponding to the actual data after the numerical data indicating 0 is arranged for the number of times corresponding to the run length value, and the total length is a predetermined reference bit length N (where N is 2 Numerical data indicating 0 and individual actual data for an encoded data string formed by arranging a plurality of sets of unit code data (maximum bit length Umax) set to be an integral multiple of the above integer) In the decoding device of the numerical data string for restoring the original data string formed by arranging
A data storage unit for inputting and storing an encoded data sequence to be decoded;
A table storage unit for storing a two-dimensional encoding table indicating a combination of a specific bit length corresponding to each identification code and a specific run length value;
A plurality of M decoding processing units that perform decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax) in parallel,
A data distribution unit that distributes a part of the encoded data sequence stored in the data storage unit as partial data to the M decoding processing units;
A data organization unit that selects a result of the decoding process by the M decoding processing units and generates a decoded data string in which numerical data indicating 0 and numerical data corresponding to individual actual data are arranged;
A data output unit for outputting the generated decrypted data sequence;
Provided,
The data distributing unit counts the bit sequence from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the head of the undecoded unit of the encoded data sequence. , Repeating the process of distributing to the i-th unit (i = 1 to M) until decoding of all parts of the encoded data sequence is completed,
With reference to the two-dimensional encoding table, the M decoding processing units follow the run-length value indicating the number of times the numerical data indicating 0 is listed from the distributed partial data, and the numerical data indicating 0 It has a function to perform the decoding process to extract the numerical data corresponding to the actual data to be processed, and each time new partial data is distributed, it corresponds to the run length value and the actual data from the beginning of the distributed partial data Process to retrieve the numerical data to be
When the processing result is obtained from the M decoding processing units by one parallel processing, the data organization unit first determines the first unit as the first selected unit, and the selected decoding unit performs normal decoding processing. The process of recognizing the last bit performed and determining as another newly adopted unit another unit to which the partial data having the bit immediately after the last bit as the first bit is distributed is performed as much as possible. Numeric data that has been successfully decrypted by the selected unit is collected, and the decrypted data string is generated by arranging the numeric data based on the information collected by one or more parallel processes. Is.
(38) 本発明の第38の態様は、上述した第37の態様に係る数値データ列の復号化装置において、
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
(38) According to a thirty-eighth aspect of the present invention, in the numerical data string decoding device according to the thirty-seventh aspect described above,
Each time the M decoding processing units perform distribution of new partial data, the process for extracting the numerical data corresponding to the run length value and the actual data from the head of the distributed partial data is normally performed. Thus, the decryption process is continued as much as possible.
(39) 本発明の第39の態様は、上述した第37の態様に係る数値データ列の復号化装置において、
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行うようにしたものである。
(39) According to a 39th aspect of the present invention, in the numerical data sequence decoding apparatus according to the 37th aspect described above,
Each time each of the M decoding processing units distributes the new partial data, only the run length value and the numerical data corresponding to the actual data for one unit code data from the head of the distributed partial data. The process for taking out is performed.
(40) 本発明の第40の態様は、上述した第37の態様に係る数値データ列の復号化装置において、
M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行するようにしたものである。
(40) According to a 40th aspect of the present invention, in the numerical data string decoding device according to the 37th aspect described above,
Among the M decoding processing units, each of the first to (M−1) -th units is 1 from the head of the distributed partial data each time new partial data is distributed. A process for extracting only numerical data corresponding to run length values and actual data for one unit code data is performed, and each time the M-th unit distributes new partial data, the distributed part The process for extracting the numerical data corresponding to the run length value and the actual data from the beginning of the data is continued as long as normal decoding processing is possible.
(41) 本発明の第41の態様は、上述した第37〜第40の態様に係る数値データ列の復号化装置において、
M台の復号処理ユニットのそれぞれが、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータをデータ編成部に与え、
データ編成部が、各復号処理ユニットから与えられたデータを並べることにより復号化データ列を生成するようにしたものである。
(41) According to a 41st aspect of the present invention, in the numerical data string decoding device according to the 37th to 40th aspects described above,
Each of the M decoding processing units executes a process of restoring the original data by arranging the numerical data corresponding to the actual data after arranging the numerical data indicating 0 for the number of times corresponding to the run length value, The restored data is given to the data organization department,
The data organization unit generates a decoded data string by arranging data provided from each decoding processing unit.
(42) 本発明の第42の態様は、上述した第37〜第40の態様に係る数値データ列の復号化装置において、
M台の復号処理ユニットのそれぞれが、取り出したランレングス値および実データに対応する数値データをそのままデータ編成部に与え、
データ編成部が、各採択ユニットから与えられた情報に基づいて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータを並べることにより復号化データ列を生成するようにしたものである。
(42) According to a forty-second aspect of the present invention, in the numerical data sequence decoding apparatus according to the thirty-seventh to forty-first aspects described above,
Each of the M decoding processing units gives the run length value and the numerical data corresponding to the actual data as they are to the data organization unit,
The data organization unit arranges the numerical data corresponding to the actual data after arranging the numerical data indicating 0 based on the information given from each adopted unit, and arranging the numerical data corresponding to the run-length value. A process of restoring is executed, and a decoded data string is generated by arranging the restored data.
(43) 本発明の第43の態様は、上述した第33〜第42の態様に係る数値データ列の復号化装置において、
符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルが与えられたときに、
データ格納部が、データファイルから符号化データ列を抽出して格納する処理を行い、
テーブル格納部が、データファイルから符号化テーブルを抽出して格納する処理を行うようにしたものである。
(43) According to a forty-third aspect of the present invention, in the numerical data sequence decoding apparatus according to the thirty-third to forty-second aspects described above,
When a data file including an encoded data string and an encoding table used for encoding processing is given,
The data storage unit performs processing to extract and store the encoded data string from the data file,
The table storage unit extracts the encoding table from the data file and stores it.
(44) 本発明の第44の態様は、上述した第33〜第42の態様に係る数値データ列の復号化装置において、
符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルが与えられたときに、
データ格納部が、データファイルから符号化データ列を抽出して格納する処理を行い、
テーブル格納部が、データファイルからテーブル特定情報を抽出する処理を行った後、当該テーブル特定情報によって特定されるテーブルを外部から読み込んで格納する処理を行うようにしたものである。
(44) According to a 44th aspect of the present invention, in the numerical data string decoding device according to the above 33rd to 42nd aspects,
When a data file including an encoded data string and table specifying information for specifying an encoding table used for encoding processing is given,
The data storage unit performs processing to extract and store the encoded data string from the data file,
The table storage unit performs the process of extracting the table specifying information from the data file and then reading and storing the table specified by the table specifying information from the outside.
(45) 本発明の第45の態様は、上述した第33〜第44の態様に係る数値データ列の復号化装置において、
M≧1+L/Nとなるような複数M台の復号処理ユニットを設けるようにしたものである。
(45) A forty-fifth aspect of the present invention is the numerical data string decoding device according to the thirty-third to forty-fourth aspects described above,
A plurality of M decoding processing units such that M ≧ 1 + L / N are provided.
(46) 本発明の第46の態様は、上述した第33〜第45の態様に係る数値データ列の復号化装置において、
各復号処理ユニットが、データ編成部に対して、正常な復号処理によって得られた情報と、当該正常な復号処理に関与したビット数を示す正常処理ビット長とを報告する機能を有し、
データ編成部が、報告された正常処理ビット長に基づいて採択ユニットを決定し、報告された情報を用いて復号化データ列を生成するようにしたものである。
(46) A forty-sixth aspect of the present invention is the numerical data sequence decoding apparatus according to any of the thirty-third to forty-fifth aspects,
Each decoding processing unit has a function of reporting to the data organization unit information obtained by normal decoding processing and a normal processing bit length indicating the number of bits involved in the normal decoding processing,
The data organization unit determines an adopted unit based on the reported normal processing bit length, and generates a decoded data string using the reported information.
(47) 本発明の第47の態様は、上述した第46の態様に係る数値データ列の復号化装置において、
データ編成部が、1回の並列処理によってM台の復号処理ユニットからの処理結果が得られるたびに、各採択ユニットから報告された正常処理ビット長を合計することにより既復号化部を認識し、これをデータ分配部に対して報告する機能を有し、
データ分配部が、当該報告に基づいて、次回の並列処理のための未復号化部の認識を行うようにしたものである。
(47) According to a 47th aspect of the present invention, in the numerical data sequence decoding apparatus according to the 46th aspect described above,
Each time the data organization unit obtains the processing results from the M decoding processing units by one parallel processing, it recognizes the already-decoding unit by summing the normal processing bit lengths reported from each adopted unit. , Has a function to report this to the data distribution unit,
The data distribution unit recognizes the undecoded unit for the next parallel processing based on the report.
(48) 本発明の第48の態様は、上述した第26〜第47の態様に係る数値データ列の符号化装置もしくは復号化装置を、コンピュータにプログラムを組み込むことによって構成したものである。 (48) In a forty-eighth aspect of the present invention, the numerical data string encoding device or decoding device according to the above-described twenty-sixth to forty-seventh aspects is configured by incorporating a program into a computer.
(49) 本発明の第49の態様は、上述した第26の態様に係る数値データ列の符号化装置をDC成分の数値データの符号化手段として用い、上述した第28の態様に係る数値データ列の符号化装置をAC成分の数値データ列の符号化手段として用いることにより、JPEG画像用圧縮処理装置を構成したものである。 (49) The forty-ninth aspect of the present invention is the numerical data according to the twenty-eighth aspect described above, in which the numerical data string encoding device according to the twenty-sixth aspect is used as a means for encoding DC component numerical data. The JPEG image compression processing apparatus is configured by using the sequence encoding apparatus as encoding means for the AC component numeric data sequence.
(50) 本発明の第50の態様は、上述した第33〜第36の態様に係る数値データ列の復号化装置をDC成分の数値データの復号化手段として用い、上述した第37〜第42の態様に係る数値データ列の復号化装置をAC成分の数値データ列の復号化手段として用いることにより、JPEG画像用伸張処理装置を構成したものである。 (50) According to a fifty aspect of the present invention, the above-described numerical data string decoding apparatus according to the thirty-third to thirty-sixth aspects is used as a DC component numerical data decoding means, and the above-described thirty-seventh to forty-second aspects are used. The JPEG image decompression processing apparatus is configured by using the numerical data string decoding device according to the above aspect as the AC component numerical data string decoding means.
(51) 本発明の第51の態様は、固定長ビットからなる数値データ列を、演算処理装置が、少なくともビット長と識別コードとの対応関係を示すハフマン符号化テーブルを用いて、可変長ビットからなる符号化データ列に符号化するハフマン符号化方法において、
ハフマン符号化テーブルとして、識別コード自身のビット長をaとし、当該識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを用いるようにしたものである。
(51) According to a fifty-first aspect of the present invention, a numerical data string composed of fixed-length bits is converted into variable-length bits by using an Huffman coding table indicating at least the correspondence between the bit length and the identification code. In a Huffman encoding method for encoding into an encoded data string consisting of:
As a Huffman coding table, when the bit length of the identification code itself is a and the bit length corresponding to the identification code is b, a predetermined reference bit length N (where N is an integer of 2 or more) A table that satisfies the condition of “a + b = k × N” (where k is an arbitrary integer) is used.
(52) 本発明の第52の態様は、可変長ビットからなる符号化データ列を、演算処理装置が、少なくともビット長と識別コードとの対応関係を示すハフマン符号化テーブルを用いて、固定長ビットからなる数値データ列に復号化するハフマン復号化方法において、
ハフマン符号化テーブルとして、識別コード自身のビット長をaとし、当該識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを用いるようにしたものである。
(52) According to a fifty-second aspect of the present invention, an arithmetic processing device uses a Huffman coding table indicating a correspondence relationship between at least a bit length and an identification code to convert an encoded data string composed of variable length bits into a fixed length. In the Huffman decoding method for decoding into a numeric data string consisting of bits,
As a Huffman coding table, when the bit length of the identification code itself is a and the bit length corresponding to the identification code is b, a predetermined reference bit length N (where N is an integer of 2 or more) A table that satisfies the condition of “a + b = k × N” (where k is an arbitrary integer) is used.
(53) 本発明の第53の態様は、所定のビット長を示す識別コードに後続して当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された、互いに長さの異なる複数通りの単位符号データ(最大ビット長Umax)を、並べることにより構成されるビット羅列データと、個々の識別コードに対応する特定のビット長を示す符号化テーブルと、を含むデータファイルを、コンピュータ読み取り可能な情報記録媒体に記録するようにしたものである。 (53) According to a fifty-third aspect of the present invention, there is provided data in which actual data comprising a bit string having the bit length is arranged following an identification code indicating the predetermined bit length, and the total length is a predetermined reference bit length N (Where N is an integer equal to or greater than 2), and bit arrangement data configured by arranging a plurality of unit code data (maximum bit length Umax) having different lengths set to be an integral multiple of A data file including a coding table indicating a specific bit length corresponding to each identification code is recorded on a computer-readable information recording medium.
(54) 本発明の第54の態様は、所定のビット長を示す識別コードに後続して当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された、互いに長さの異なる複数通りの単位符号データ(最大ビット長Umax)を、並べることにより構成されるビット羅列データと、個々の識別コードに対応する特定のビット長を示す符号化テーブルを特定するテーブル特定情報と、を含むデータファイルを、コンピュータ読み取り可能な情報記録媒体に記録するようにしたものである。 (54) According to a fifty-fourth aspect of the present invention, there is provided data in which real data consisting of a bit string having the bit length is arranged following an identification code indicating the predetermined bit length, and the total length is a predetermined reference bit length N (Where N is an integer equal to or greater than 2), and bit arrangement data configured by arranging a plurality of unit code data (maximum bit length Umax) having different lengths set to be an integral multiple of A data file including table specifying information for specifying a coding table indicating a specific bit length corresponding to each identification code is recorded on a computer-readable information recording medium.
(55) 本発明の第55の態様は、「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された、互いに長さの異なる複数通りの単位符号データ(最大ビット長Umax)」を、並べることにより構成されるビット羅列データと、個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルと、を含むデータファイルを、コンピュータ読み取り可能な情報記録媒体に記録するようにしたものである。 (55) According to a 55th aspect of the present invention, “a structure in which an identification code indicating a combination of a predetermined bit length and a predetermined run length value is followed by actual data including a bit string having the bit length is arranged. And a numerical sequence corresponding to the actual data after the numerical data indicating 0 is arranged for the number of times corresponding to the run length value, and the total length is a predetermined reference bit length N (where N is 2 Bit sequence data configured by arranging a plurality of unit code data (maximum bit length Umax) having different lengths set to be an integral multiple of the above integer) and individual identification codes A data file including a two-dimensional encoding table indicating a combination of a specific bit length corresponding to and a specific run length value is recorded on a computer-readable information recording medium Those were Unishi.
(56) 本発明の第56の態様は、「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された、互いに長さの異なる複数通りの単位符号データ(最大ビット長Umax)」を、並べることにより構成されるビット羅列データと、個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルを特定するテーブル特定情報と、を含むデータファイルを、コンピュータ読み取り可能な情報記録媒体に記録するようにしたものである。 (56) According to a fifty-sixth aspect of the present invention, “a structure in which real data including a bit string having the bit length is arranged following an identification code indicating a combination of a predetermined bit length and a predetermined run-length value” is provided. And a numerical sequence corresponding to the actual data after the numerical data indicating 0 is arranged for the number of times corresponding to the run length value, and the total length is a predetermined reference bit length N (where N is 2 Bit sequence data configured by arranging a plurality of unit code data (maximum bit length Umax) having different lengths set to be an integral multiple of the above integer) and individual identification codes A computer-readable data file including table specifying information for specifying a two-dimensional encoding table that indicates a combination of a specific bit length corresponding to and a specific run length value An information recording is obtained so as to record on the medium.
(57) 本発明の第57の態様は、上述した第6または第7の態様に係る数値データ列の符号化方法で出力されたデータファイルを、コンピュータ読み取り可能な情報記録媒体に記録するようにしたものである。 (57) In a 57th aspect of the present invention, a data file output by the numerical data string encoding method according to the sixth or seventh aspect described above is recorded on a computer-readable information recording medium. It is a thing.
(58) 本発明の第58の態様は、数値データ列を可変長のビット列を用いて符号化する符号化方法に用いるテーブルであって、
所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係が示されており、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを、コンピュータ読み取り可能な情報記録媒体に記録するようにしたものである。
(58) A 58th aspect of the present invention is a table used in an encoding method for encoding a numeric data string using a variable-length bit string,
For a plurality of bit lengths within a predetermined range, the correspondence between individual bit lengths and unique identification codes corresponding to the bit lengths is shown.
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code. The code does not exist in this table, and when the bit length corresponding to the target identification code is b, “a + b = N” is a predetermined reference bit length N (where N is an integer of 2 or more). A table that satisfies the condition of “k × N” (where k is an arbitrary integer) is recorded on a computer-readable information recording medium.
(59) 本発明の第59の態様は、数値データ列を可変長のビット列を用いて符号化する符号化方法に用いるテーブルであって、
所定範囲内の複数通りのビット長と所定範囲内の複数通りのランレングス値とについて、個々のビット長と個々のランレングス値との各組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係が示されており、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを、コンピュータ読み取り可能な情報記録媒体に記録するようにしたものである。
(59) A 59th aspect of the present invention is a table used in an encoding method for encoding a numeric data string using a variable-length bit string,
For a plurality of bit lengths within a predetermined range and a plurality of run length values within a predetermined range, each combination of individual bit lengths and individual run length values, and a unique identification code corresponding to the combination, Is shown,
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code. The code does not exist in this table, and when the bit length corresponding to the target identification code is b, “a + b = N” is a predetermined reference bit length N (where N is an integer of 2 or more). A table that satisfies the condition of “k × N” (where k is an arbitrary integer) is recorded on a computer-readable information recording medium.
本発明に係る数値データの符号化では、数値データそのものを可変長のビット列を用いて表現した実データの先頭に、当該実データのビット長を示す情報をもった識別コードを付加することにより、当該特定の数値データ自身を示す情報をもった単位符号データが生成される。しかも、当該識別コード自身のビット長をaとし、当該実データのビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件が満足されるようにする。 In the encoding of numerical data according to the present invention, by adding an identification code having information indicating the bit length of the actual data to the beginning of the actual data representing the numerical data itself using a variable-length bit string, Unit code data having information indicating the specific numerical data itself is generated. Moreover, when the bit length of the identification code itself is a and the bit length of the actual data is b, “a + b = k ×” with respect to a predetermined reference bit length N (where N is an integer of 2 or more). N ”(where k is an arbitrary integer) is satisfied.
このため、単位符号データのビット長は、必ずNの整数倍になるので、符号化データ列の処理単位の境界は、必ず先頭からNの整数倍のビット位置になる。したがって、符号化データ列をその先頭からNの整数倍のビット位置で複数の部分データに分割し、複数台の復号処理ユニットを用いた並列処理で復号化を行うことが可能になる。kの値が任意の整数であるため、Nの整数倍のビット位置は、必ずしも処理単位の境界として正しい位置になるとは限らないが、処理単位の境界は、必ずNの整数倍のビット位置にくるので、複数台の復号処理ユニットのうち、正しい処理単位で復号処理を行ったユニットの処理結果だけを選択して並べることにより、正しい復号化データ列を得ることができる。 For this reason, since the bit length of the unit code data is always an integer multiple of N, the boundary of the processing unit of the encoded data string is always a bit position of an integer multiple of N from the beginning. Therefore, it is possible to divide the encoded data string into a plurality of partial data at bit positions that are integer multiples of N from the beginning, and perform decoding by parallel processing using a plurality of decoding processing units. Since the value of k is an arbitrary integer, the bit position that is an integer multiple of N is not necessarily the correct position as the boundary of the processing unit, but the boundary of the processing unit is always the bit position that is an integer multiple of N. Therefore, a correct decoded data string can be obtained by selecting and arranging only the processing results of the units that have been decoded in the correct processing unit among the plurality of decoding processing units.
かくして、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化しつつ、復号化の段階において、並列処理が可能になる特殊な符号化を行うことが可能になる。また、当該符号化によって作成された符号化データ列を、複数台の復号処理ユニットを用いた並列処理によって復号化することが可能になる。 Thus, it is possible to perform special encoding that enables parallel processing at the stage of decoding while encoding a numeric data string composed of fixed-length bits using a variable-length bit string. In addition, the encoded data string created by the encoding can be decoded by parallel processing using a plurality of decoding processing units.
以下、本発明を図示する実施形態に基づいて説明する。 Hereinafter, the present invention will be described based on the illustrated embodiments.
<<< §1.従来の符号化/復号化方法の基本原理 >>>
本発明は、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化し、これを元に戻す復号化を行う技術に関するものである。そこで、このような固定長ビット列と可変長ビット列との間の変換を伴う、従来の符号化/復号化方法の基本原理を簡単に説明する。
<<< §1. Basic principle of conventional encoding / decoding method >>
The present invention relates to a technique for encoding a numeric data string composed of fixed-length bits using a variable-length bit string and performing decoding to restore the encoded value. Therefore, the basic principle of a conventional encoding / decoding method that involves conversion between such a fixed-length bit string and a variable-length bit string will be briefly described.
いま、図1に示すような固定長ビットで表現された数値データ列D1,D2,D3,D4,D5,...を考えてみる。ここでは、これらの各数値データが、いずれも8ビットで表現可能な0〜255の範囲内の値であり、具体的には、10進表記で、28,251,1,13,3,...という値をとるものとしよう。この場合、2進表記では、図示の表に示すとおり、いずれも8ビットのビット列で表現される。 Consider numerical data strings D1, D2, D3, D4, D5,... Expressed by fixed-length bits as shown in FIG. Here, each of these numerical data is a value in the range of 0 to 255 that can be expressed by 8 bits. Specifically, in decimal notation, 28, 251, 1, 13, 3,. Let's assume the value .. In this case, in the binary notation, as shown in the table of FIG.
図2は、図1に示す数値データを表現する固定長ビット列を示す図である。どの数値データも、その大小に関係なく、すべて8ビットのビット列で表される。このため、データの区切りは必ず8ビット周期で現れ、所望の数値データにランダムアクセスが可能であり、CPUによる演算処理には適している。しかしながら、各数値データの先頭部分の0は冗長なビットになる。たとえば、数値データD3の場合、本来の数値を示す実データの部分は末尾の「1」のみであり、先頭に付された7個の「0」は冗長なビットということになる。 FIG. 2 is a diagram showing a fixed-length bit string representing the numerical data shown in FIG. Any numerical data is represented by an 8-bit bit string regardless of the size. For this reason, the data delimiter always appears in an 8-bit cycle, and random access to desired numerical data is possible, which is suitable for arithmetic processing by the CPU. However, 0 at the beginning of each numerical data is a redundant bit. For example, in the case of the numerical data D3, the actual data portion indicating the original numerical value is only “1” at the end, and the seven “0” s added to the head are redundant bits.
図3は、図2に示す固定長ビット列から冗長な0を削除して得られる可変長ビット列を示す図である。いずれの数値データも、先頭の0が削除され、実データを示すビット列のみが残されている。たとえば、数値データD3は1ビットの実データ「1」のみで表現されている。このように、固定長ビット列で表現されていた数値データ列を、可変長ビット列で表現すれば、データ容量を削減することができる。 FIG. 3 is a diagram showing a variable-length bit string obtained by deleting redundant 0 from the fixed-length bit string shown in FIG. In any numerical data, the leading 0 is deleted and only the bit string indicating the actual data remains. For example, the numerical data D3 is represented by only 1-bit actual data “1”. In this way, the data capacity can be reduced by expressing the numerical data string expressed in the fixed-length bit string as the variable-length bit string.
しかしながら、図3に示す可変長ビット列からは、個々の数値データを取り出すことはできない。これは、各数値データの区切りの情報が逸失し、このビット列をどこで区切って1つの数値として取り扱うかが不明になるためである。図2,図3では、説明の便宜上、1つの数値データを示すビット列を矩形枠で囲って示しているが、実際には、このような矩形枠は存在しない。したがって、図2に示す固定長ビット列の場合は、8ビット単位でビット列を区切ることにより、個々の数値データを取り出すことができるが、図3に示す可変長ビット列の場合、区切り位置が不明であり、個々の数値データを認識することができない。 However, individual numerical data cannot be extracted from the variable-length bit string shown in FIG. This is because the delimiter information of each numerical data is lost, and it is unclear where this bit string is delimited and handled as one numerical value. In FIG. 2 and FIG. 3, for convenience of explanation, a bit string indicating one numerical value data is surrounded by a rectangular frame, but actually, such a rectangular frame does not exist. Therefore, in the case of the fixed-length bit string shown in FIG. 2, it is possible to extract individual numerical data by dividing the bit string in units of 8 bits. However, in the case of the variable-length bit string shown in FIG. , Individual numerical data cannot be recognized.
結局、固定長ビット列を可変長ビット列へ変換する場合、数値データの区切りを示す何らかの情報を付加する必要がある。そこで、通常は、各数値を示す実データの先頭に、当該実データのビット長を示す情報を付加する手法が採られる。図4は、図3に示す可変長ビット列に、ビット長を示す情報を挿入した状態を示す図である。図に丸数字で示す情報が、後続する実データのビット長を示す識別コードになっている。たとえば、先頭の識別コードC1(丸数字5)は、後続する実データD1のビット長が「5」であることを示しており、続く識別コードC2(丸数字8)は、後続する実データD2のビット長が「8」であることを示している。 Eventually, when converting a fixed-length bit string into a variable-length bit string, it is necessary to add some information indicating a delimiter of numerical data. Therefore, usually, a method of adding information indicating the bit length of the actual data to the head of the actual data indicating each numerical value is employed. FIG. 4 is a diagram illustrating a state in which information indicating the bit length is inserted into the variable-length bit string illustrated in FIG. The information indicated by the circled numbers in the figure is an identification code indicating the bit length of the subsequent actual data. For example, the head identification code C1 (circle numeral 5) indicates that the bit length of the subsequent actual data D1 is “5”, and the subsequent identification code C2 (circle numeral 8) is the subsequent actual data D2. This indicates that the bit length of “8” is “8”.
結局、図4に示すデータビット列は、図5に示すような基本構造をもった単位符号データUを並べたものになる。すなわち、単位符号データUは、識別コードCと、これに後続する実データD(可変長ビット列)とによって構成され、識別コードCは、後続する実データDのビット長bを示すコードということになる。図4に示すデータビット列から、各数値データを取り出すには、まず、先頭の識別コードC1の部分を解析して、後続する実データD1のビット長が「5」であることを認識し、実データD1として5ビットの情報を取り出せばよい。次に、識別コードC2の部分を解析して、後続する実データD2のビット長が「8」であることを認識し、実データD2として8ビットの情報を取り出せばよい。以下、同様である。 After all, the data bit string shown in FIG. 4 is a sequence of unit code data U having a basic structure as shown in FIG. That is, the unit code data U is composed of an identification code C and subsequent real data D (variable length bit string), and the identification code C is a code indicating the bit length b of the subsequent actual data D. Become. In order to extract each numerical data from the data bit string shown in FIG. 4, first, the portion of the head identification code C1 is analyzed to recognize that the bit length of the subsequent actual data D1 is “5”. What is necessary is just to take out 5-bit information as the data D1. Next, the part of the identification code C2 is analyzed to recognize that the bit length of the subsequent actual data D2 is “8”, and 8-bit information is extracted as the actual data D2. The same applies hereinafter.
図5に示すように、単位符号データUは、ビット長aをもった識別コードCの部分と、ビット長bをもった実データDの部分とによって構成されており、図4,図5では、説明の便宜上、識別コードCの部分と実データDの部分とをそれぞれ矩形枠で囲って示した。しかしながら、実際には、このような矩形枠は存在しない。したがって、識別コードCの部分と識別コードDの部分との区切り位置を何らかの方法で認識できるようにする必要がある。 As shown in FIG. 5, the unit code data U is composed of a part of an identification code C having a bit length a and a part of actual data D having a bit length b. For convenience of explanation, the identification code C portion and the actual data D portion are shown surrounded by a rectangular frame. However, in reality, such a rectangular frame does not exist. Therefore, it is necessary to be able to recognize the separation position between the identification code C portion and the identification code D portion by some method.
最も簡単な方法は、識別コードCのビット長aを固定長にする方法である。たとえば、ビット長aを3ビットに固定しておけば、常に単位符号データUの先頭3ビットが識別コードCということになるので、識別コードCと実データDとの区切りは明確になる。そこで、この3ビットの識別コードCに基づいて、後続する実データDのビット長bを認識すれば、実データDを正しく取り出すことができる。 The simplest method is to set the bit length a of the identification code C to a fixed length. For example, if the bit length a is fixed to 3 bits, the first 3 bits of the unit code data U are always the identification code C, so that the separation between the identification code C and the actual data D is clear. Therefore, if the bit length b of the subsequent actual data D is recognized based on the 3-bit identification code C, the actual data D can be correctly extracted.
識別コードCとしては、ビット長bに対応するデジタル値そのものを用いることができる。たとえば、ビット長b=「5」を示す識別コードCには、「5」を示す3ビットのビット列「101」をそのまま用いることができる。もっとも、識別コードCとビット長bとの対応関係が明確になっていれば、識別コードCには、どのようなビット列を用いてもかまわない。 As the identification code C, a digital value itself corresponding to the bit length b can be used. For example, as the identification code C indicating the bit length b = “5”, the 3-bit bit string “101” indicating “5” can be used as it is. However, any bit string may be used for the identification code C as long as the correspondence between the identification code C and the bit length b is clear.
図6は、図2に示す固定長ビット列で表現された数値データ列を、固定長符号化テーブルを用いて符号化するプロセスを示す図である。図6(a) は、図4と同じ図であり、図3に示す可変長ビット列に、ビット長を示す情報(丸数字)を挿入した状態を示している。図6(b) は、固定長符号化テーブルであり、識別コードCとビット長bとの対応関係を示すテーブルである。この例の場合、識別コードCは、対応するビット長bのデジタル値にはなっていない。たとえば、ビット長b=「1」を示す3ビットのビット列は「001」であるが、図示のテーブルの場合、ビット長b=「1」に対応する識別コードCは「000」になっている。それでも、このテーブルを参照することにより、識別コードC「000」に対応するビット長bは「1」であることを認識することができるので、支障は生じない。 FIG. 6 is a diagram showing a process of encoding the numerical data string expressed by the fixed-length bit string shown in FIG. 2 using a fixed-length encoding table. FIG. 6 (a) is the same diagram as FIG. 4, and shows a state in which information (circle numerals) indicating the bit length is inserted into the variable length bit string shown in FIG. FIG. 6B is a fixed-length encoding table that shows the correspondence between the identification code C and the bit length b. In this example, the identification code C is not a digital value having a corresponding bit length b. For example, a 3-bit bit string indicating the bit length b = “1” is “001”, but in the illustrated table, the identification code C corresponding to the bit length b = “1” is “000”. . Nevertheless, since it can be recognized that the bit length b corresponding to the identification code C “000” is “1” by referring to this table, no trouble occurs.
図6(c) は、図6(a) における丸数字のビット長を示す各識別コードC1,C2,...の部分に、図6(b) の固定長符号化テーブルで定義された固有の識別コードCを当てはめることにより得られる符号化データ列を示している。この図6(c) に示す符号化データ列と、図6(b) に示す固定長符号化テーブルとを用いれば、図2に示す元の固定長ビットの数値データ列の復元が可能である。 FIG. 6 (c) shows the unique code defined in the fixed length coding table of FIG. 6 (b) in each identification code C1, C2,... Indicating the bit length of the circled numbers in FIG. The encoded data string obtained by applying the identification code C is shown. If the encoded data sequence shown in FIG. 6 (c) and the fixed-length encoding table shown in FIG. 6 (b) are used, the original fixed-length bit numeric data sequence shown in FIG. 2 can be restored. .
すなわち、図6(c) の符号化データ列の先頭3ビットにある識別コードC1「100」について、図6(b) のテーブルを参照すれば、対応するビット長b=「5」が得られるので、続く5ビットのデータ「11100」を実データD1として認識すれば、8ビットのデータ「00011100」を復元することができる。続いて、図6(c) の符号化データ列の第9〜11ビット目にある識別コードC2「111」について、図6(b) のテーブルを参照すれば、対応するビット長b=「8」が得られるので、続く8ビットのデータ「11111011」を実データD2として認識できる。以下、同様である。 That is, for the identification code C1 “100” in the first 3 bits of the encoded data string in FIG. 6C, the corresponding bit length b = “5” is obtained by referring to the table in FIG. 6B. Therefore, if the subsequent 5-bit data “11100” is recognized as the actual data D1, the 8-bit data “00011100” can be restored. Subsequently, referring to the table of FIG. 6B for the identification code C2 “111” in the ninth to eleventh bits of the encoded data string of FIG. 6C, the corresponding bit length b = “8” ”Is obtained, and the subsequent 8-bit data“ 11111011 ”can be recognized as the actual data D2. The same applies hereinafter.
図6(b) のテーブルでは、3ビットに固定された識別コードCによって、8通りのビット長b=1〜8を示すことができる。これは、実データのビット長が最小1ビット、最大8ビットである場合を想定したものである。結局、図6に示す例では、実データDは1〜8ビットの可変長になるが、識別コードCは3ビットの固定長になる。なお、実データのビット長b=0を定義する場合は(たとえば、数値データ「00000000」の実データを、1桁のビット「0」ではなく、ビット長が0である0桁の仮想データ、すなわち、実質的に実データを示すビットを配置しない状態で表現するような場合は)、ビット長b=0に対応する識別コードCも定義する必要がある。 In the table of FIG. 6B, eight kinds of bit lengths b = 1 to 8 can be indicated by the identification code C fixed to 3 bits. This assumes that the bit length of actual data is a minimum of 1 bit and a maximum of 8 bits. As a result, in the example shown in FIG. 6, the actual data D has a variable length of 1 to 8 bits, but the identification code C has a fixed length of 3 bits. When defining the bit length b = 0 of the real data (for example, the real data of the numerical data “00000000” is not a one-digit bit “0” but a zero-digit virtual data with a bit length of 0, That is, in the case where the bits representing actual data are expressed without being arranged), it is also necessary to define the identification code C corresponding to the bit length b = 0.
一方、識別コードCのビット長aを可変長にする方法も知られている。図7は、図2に示す固定長ビット列で表現された数値データ列を、可変長符号化テーブルを用いて符号化するプロセスを示す図である。図7(a) は、図4と同じ図であり、図3に示す可変長ビット列に、ビット長を示す情報(丸数字)を挿入した状態を示している。図7(b) は、可変長符号化テーブルであり、可変長の識別コードCとビット長bとの対応関係を示すテーブルである。図6(b) に示す固定長符号化テーブルでは、識別コードCが3ビットの固定長になっていたのに対して、図7(b) に示す可変長符号化テーブルでは、識別コードCが1〜7ビットの可変長になっている。 On the other hand, a method of making the bit length a of the identification code C variable is also known. FIG. 7 is a diagram showing a process of encoding the numerical data string expressed by the fixed-length bit string shown in FIG. 2 using a variable-length encoding table. FIG. 7 (a) is the same diagram as FIG. 4, and shows a state in which information (round numerals) indicating the bit length is inserted into the variable length bit string shown in FIG. FIG. 7B is a variable length coding table, which shows the correspondence between the variable length identification code C and the bit length b. In the fixed length coding table shown in FIG. 6B, the identification code C has a fixed length of 3 bits, whereas in the variable length coding table shown in FIG. It has a variable length of 1 to 7 bits.
図7(c) は、図7(a) における丸数字のビット長を示す各識別コードC1,C2,...の部分に、図7(b) の可変長符号化テーブルで定義された固有の識別コードCを当てはめることにより得られる符号化データ列を示している。この図7(c) に示す符号化データ列と、図7(b) に示す可変長符号化テーブルとを用いれば、図2に示す元の固定長ビットの数値データ列の復元が可能である。ただ、識別コードが可変長であるため、符号化データ列を先頭から1ビットずつチェックしながら、可変長符号化テーブルを参照し、合致するコードが存在するか否かを調べる処理が必要になる。 FIG. 7 (c) shows the unique code defined in the variable length coding table of FIG. 7 (b) in each identification code C1, C2,... The encoded data string obtained by applying the identification code C is shown. If the encoded data sequence shown in FIG. 7 (c) and the variable length encoding table shown in FIG. 7 (b) are used, the original fixed-length bit numerical data sequence shown in FIG. 2 can be restored. . However, since the identification code has a variable length, it is necessary to check whether there is a matching code by referring to the variable length coding table while checking the encoded data string bit by bit from the beginning. .
具体的には、まず、図7(c) の符号化データ列の第1ビット目のビット「1」について、合致する識別コードCの有無を調べる。図7(b) のテーブルには合致する識別コードは存在しない。そこで、次に第1〜2ビット目のビット列「11」について、合致する識別コードCの有無を調べるが、やはり合致する識別コードは存在しない。更に、第1〜3ビット目のビット列「111」について、合致する識別コードCの有無を調べるが、やはり合致する識別コードは存在しない。このようにして、合致判定対象となるビット列を1ビットずつ伸ばしてゆくと、第1〜5ビット目のビット列「11110」について、はじめて合致する識別コードが見つかる。かくして、先頭から5ビットのビット列「11110」の部分が識別コードCであることが認識できる。 Specifically, first, the presence or absence of a matching identification code C is examined for bit “1” of the first bit of the encoded data string of FIG. There is no matching identification code in the table of FIG. Then, next, the presence or absence of a matching identification code C is examined for the bit string “11” of the first and second bits, but there is no matching identification code. Further, the presence or absence of a matching identification code C is checked for the bit string “111” of the first to third bits, but there is no matching identification code. In this way, when the bit string to be matched is extended one bit at a time, a matching identification code is found for the bit string “11110” of the first to fifth bits for the first time. Thus, it can be recognized that the part of the 5-bit bit string “11110” from the top is the identification code C.
図7(b) のテーブルによると、識別コード「11110」に対応するビット長bは「5」であるから、第6〜10ビット目のビット列「11100」を実データD1として取り出すことができ、8ビットのデータ「00011100」を復元することができる。 According to the table of FIG. 7B, since the bit length b corresponding to the identification code “11110” is “5”, the bit string “11100” of the sixth to tenth bits can be extracted as the actual data D1, The 8-bit data “00011100” can be restored.
続いて、図7(c) の符号化データ列の第11ビット目のビットから、前述した合致判定プロセスを続けてゆく。まず、第11ビット目のビット「1」について、合致する識別コードCの有無を調べるが、合致する識別コードは存在しない。そこで、次に第11〜12ビット目のビット列「11」について、合致する識別コードCの有無を調べるが、やはり合致する識別コードは存在しない。このようにして、合致判定対象となるビット列を1ビットずつ伸ばしてゆくと、第11〜17ビット目のビット列「1111111」について、はじめて合致する識別コードが見つかる。かくして、当該7ビットのビット列「1111111」の部分が識別コードCであることが認識できる。 Subsequently, the above-described match determination process is continued from the 11th bit of the encoded data string of FIG. First, the bit “1” of the eleventh bit is checked for the presence of a matching identification code C, but no matching identification code exists. Then, next, the presence or absence of a matching identification code C is examined for the bit string “11” of the 11th to 12th bits, but there is no matching identification code. In this way, when the bit string to be matched is extended bit by bit, a matching identification code is found for the bit string “1111111” of the 11th to 17th bits for the first time. Thus, it can be recognized that the portion of the 7-bit bit string “1111111” is the identification code C.
図7(b) のテーブルによると、識別コード「1111111」に対応するビット長bは「8」であるから、第18〜25ビット目のビット列「11111011」を実データD2として取り出すことができる。以下、同様である。 According to the table of FIG. 7B, since the bit length b corresponding to the identification code “1111111” is “8”, the bit string “11111011” of the 18th to 25th bits can be extracted as the actual data D2. The same applies hereinafter.
このように、識別コードCを可変長コードにする場合は、テーブルを構成する識別コードに条件が課されることになる。すなわち、「テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない」という条件である。 As described above, when the identification code C is a variable length code, a condition is imposed on the identification code constituting the table. That is to say, “Even when focusing on any identification code in the table, when the bit length of the target identification code itself is a, the portion of the a bit from the beginning is the same as the target identification code. No such identification code exists in this table ".
たとえば、図7(b) のテーブルにおける識別コード「0」に着目すると、ビット長a=1であるから、上記条件は「先頭1ビットの部分が0となる別な識別コードは存在しない」という条件になる。実際、このテーブル内には、0で始まる識別コードは他には存在しない。同様に、図7(b) のテーブルにおける識別コード「10」に着目すると、ビット長a=2であるから、上記条件は「先頭2ビットの部分が10となる別な識別コードは存在しない」という条件になる。実際、このテーブル内には、10で始まる識別コードは他には存在しない。 For example, paying attention to the identification code “0” in the table of FIG. 7B, since the bit length a = 1, the above condition is “There is no other identification code in which the first 1-bit portion is 0”. It becomes a condition. In fact, there are no other identification codes starting with 0 in this table. Similarly, paying attention to the identification code “10” in the table of FIG. 7B, since the bit length a = 2, the above condition is “There is no other identification code in which the first 2 bits are 10.” It becomes the condition. In fact, there are no other identification codes starting with 10 in this table.
このような条件が必要な理由は、前述した合致判定プロセスのアルゴリズムを考えれば、容易に理解できよう。すなわち、当該条件が満たされていないと、識別コードの誤認識が生じてしまうことになる。たとえば、識別コード「10」と同じ「10」で始まる別な識別コード「100」,「101」,「1000」などが同じテーブル内に存在したとしても、ビット列「10」についての合致判定プロセスで「合致」の判定がなされてしまうため、識別コード「100」,「101」,「1000」などについての合致判定は行われなくなってしまう。 The reason why such a condition is necessary can be easily understood by considering the algorithm of the match determination process described above. That is, if the condition is not satisfied, the identification code is erroneously recognized. For example, even if different identification codes “100”, “101”, “1000”, etc. starting with the same “10” as the identification code “10” exist in the same table, the match determination process for the bit string “10” is performed. Since the “match” determination is made, the match determination for the identification codes “100”, “101”, “1000”, etc. is not performed.
ところで、図7(c) に示す符号化データ列を、図6(c) に示す符号化データ列と比較すると、前者の方が後者よりも全ビット長が増えていることがわかる。これは、図6(b) に示す固定長符号化テーブルでは、識別コードCが常に3ビットであるのに対して、図7(b) に示す可変長符号化テーブルでは、識別コードCのビット長は1ビットですむこともあるものの、場合によっては7ビットを必要とするためである。そこで、実用上は、各実データについてのビット長bの出現頻度を集計し、実データのビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルを用いるようにする。このように、出現頻度を考慮して作成した可変長符号化テーブルは、一般に、ハフマン符号化テーブルと呼ばれており、このハフマン符号化テーブルを用いた符号化は、ハフマン符号化と呼ばれている。 By the way, comparing the encoded data sequence shown in FIG. 7 (c) with the encoded data sequence shown in FIG. 6 (c), it can be seen that the total bit length of the former is larger than that of the latter. This is because the identification code C is always 3 bits in the fixed-length coding table shown in FIG. 6B, whereas in the variable-length coding table shown in FIG. This is because although the length may be one bit, it may require 7 bits in some cases. Therefore, in practice, the appearance frequency of the bit length b for each actual data is aggregated, and the higher the appearance frequency of the actual data bit length b, the more the identification code with the shorter bit length a is associated with the code. Use a conversion table. Thus, the variable length coding table created in consideration of the appearance frequency is generally called a Huffman coding table, and coding using this Huffman coding table is called Huffman coding. Yes.
図8は、図2に示す固定長ビット列で表現された数値データ列を、ハフマン符号化テーブルを用いて符号化するプロセスを示す図である。図8(a) は、図4と同じ図であり、図3に示す可変長ビット列に、ビット長を示す情報(丸数字)を挿入した状態を示している。図8(b) は、ハフマン符号化テーブルであり、可変長の識別コードCとビット長bとの対応関係を示す可変長符号化テーブルである。ここでは、説明の便宜上、このハフマン符号化テーブルの左側の破線欄に出現頻度を示してある。この出現頻度は、符号化の対象となる数値データ(ここに示す例の場合、図2に示す数値データD1,D2,...)の各実データについてのビット長bの出現頻度を示すものである。図示の例の場合、ビット長b=「4」の出現頻度が「685」となり第一位となっている。 FIG. 8 is a diagram showing a process of encoding the numerical data string expressed by the fixed-length bit string shown in FIG. 2 using the Huffman encoding table. FIG. 8A is the same diagram as FIG. 4 and shows a state in which information (round numerals) indicating the bit length is inserted into the variable length bit string shown in FIG. FIG. 8B is a Huffman coding table, which is a variable length coding table showing the correspondence between the variable length identification code C and the bit length b. Here, for convenience of explanation, the appearance frequency is shown in the broken line column on the left side of the Huffman coding table. This appearance frequency indicates the appearance frequency of the bit length b for each actual data of the numerical data to be encoded (in the example shown here, the numerical data D1, D2,... Shown in FIG. 2). It is. In the case of the illustrated example, the appearance frequency of the bit length b = “4” is “685”, which is the first.
図示のテーブルは、ビット長bをその出現頻度順にソートして示したものである。ここで、識別コードCの欄を見ると、識別コードCも短い順にソートされていることがわかる。すなわち、ビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられていることになる。このようなハフマン符号化テーブルを用いた符号化を行えば、より短い識別コードCがより高い頻度で利用されることになるので、得られる符号化データ列の全ビット長を短縮することができ、データ容量の削減を図ることができる。たとえば、図8(b) のテーブルにおける「1111110」や「1111111」といった7ビットからなる識別コードCは、用いられる頻度が極めて小さくなるので、これら長い識別コードの存在によって、全ビット長が増大する影響は小さい。 The illustrated table shows the bit lengths b sorted in the order of appearance frequency. Here, looking at the column of the identification code C, it can be seen that the identification codes C are also sorted in the shortest order. That is, the higher the appearance frequency of the bit length b, the more the identification code having the shorter bit length a is associated. When encoding using such a Huffman encoding table is performed, the shorter identification code C is used more frequently, so that the total bit length of the obtained encoded data string can be shortened. The data capacity can be reduced. For example, the 7-bit identification code C such as “1111110” and “1111111” in the table of FIG. 8B is used with a very low frequency, and the presence of these long identification codes increases the total bit length. The impact is small.
図8(c) は、図8(a) における丸数字のビット長を示す各識別コードC1,C2,...の部分に、図8(b) のハフマン符号化テーブルで定義された固有の識別コードCを当てはめることにより得られる符号化データ列を示している。この図8(c) に示す符号化データ列と、図8(b) に示すハフマン符号化テーブルとを用いれば、図2に示す元の固定長ビットの数値データ列の復元が可能である点は、図7の例と全く同様である。また、符号化データ列を先頭から1ビットずつチェックしながら、ハフマン符号化テーブルを参照し、合致するコードが存在するか否かを調べる処理を行う点も、図7の例と全く同様である。 FIG. 8 (c) shows the unique code defined in the Huffman coding table of FIG. 8 (b) in each identification code C1, C2,... An encoded data string obtained by applying the identification code C is shown. If the encoded data sequence shown in FIG. 8 (c) and the Huffman encoding table shown in FIG. 8 (b) are used, the original fixed-length bit numerical data sequence shown in FIG. 2 can be restored. Is exactly the same as the example of FIG. In addition, it is exactly the same as the example in FIG. 7 in that while checking the encoded data string bit by bit from the head, the Huffman encoding table is referenced to check whether there is a matching code. .
したがって、このハフマン符号化テーブルにおいても、「テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない」という条件が必要な点に変わりはない。ハフマン符号化テーブルの特徴は、「実データのビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている」という点であり、それ以外は、図7で述べた一般的な可変長符号化テーブルと変わりはない。別言すれば、図8(b) に示すハフマン符号化テーブルは、ビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられるように、図7(b) に示す可変長符号化テーブルの識別コードCの部分を相互に入れ替える操作を行うことによって得られたテーブルということができる。 Therefore, even in this Huffman coding table, “when any identification code in the table is focused, when the bit length of the targeted identification code itself is a, the portion of the a bit from the head is identified as the focused identification. There is no change in the necessity of the condition that “another identification code that is identical to the code does not exist in this table”. The feature of the Huffman coding table is that “the higher the appearance frequency of the bit length b of the actual data is, the more the identification code having the shorter bit length a is associated”. This is not different from the general variable length coding table described. In other words, the Huffman coding table shown in FIG. 8 (b) is shown in FIG. 7 (b) so that as the appearance frequency of the bit length b increases, an identification code having a shorter bit length a is associated. It can be said that the table is obtained by performing an operation of exchanging the identification code C portions of the variable length coding table shown.
図8(c) に示す符号化データ列を、図7(c) に示す符号化データ列と比較すると、前者の方が後者よりも全ビット長が減少していることがわかる。図には、たかだか5個の数値データの部分しか示されていないが、実際には、図8(b) の破線欄に示すような出現頻度で各数値データのビット長が出現することになるので、ハフマン符号化テーブルを用いた場合のデータ容量の削減効果はより顕著なものになる。前掲の特許文献1,2には、このようなハフマン符号化テーブルを利用してJPEG方式で画像データの圧縮を行う技術が開示されている。
Comparing the encoded data sequence shown in FIG. 8 (c) with the encoded data sequence shown in FIG. 7 (c), it can be seen that the total bit length is smaller in the former than in the latter. Although only five numerical data portions are shown in the figure, the bit length of each numerical data appears with an appearance frequency as shown in the broken line column of FIG. 8 (b). Therefore, the effect of reducing the data capacity when using the Huffman coding table becomes more remarkable.
<<< §2.本発明の着想の根源 >>>
さて、§1で述べた方法で作成された符号化データ列(可変長ビット)を、CPUによる演算処理に適した元の数値データ(固定長ビット)に戻すためには、復号化を行う必要がある。ところが、可変長のビット列からなる符号化データは、区切りとなるビット位置が固定ではないため、処理単位の境界が不明確であり、従来の一般的な方法では、並列処理による復号化を行うことができない。
<<< §2. The origin of the idea of the present invention >>>
Now, in order to return the encoded data string (variable length bits) created by the method described in §1 to the original numerical data (fixed length bits) suitable for arithmetic processing by the CPU, it is necessary to perform decoding. There is. However, the encoded data consisting of variable-length bit strings does not have a fixed bit position as a delimiter, so the boundaries of the processing units are unclear. In the conventional general method, decoding is performed by parallel processing. I can't.
たとえば、図6(c) に示す符号化データ列は、識別コードCの部分は3ビットに固定されているものの、実データDの部分は可変長であるため、各単位符号データUの境界は、データ列の先頭から順に復号処理を行ってゆくことによって、はじめて認識可能である。実際、各単位符号データU1,U2,U3,U4,U5の境界は不規則であり、このビット列を先頭から順に解析してゆかない限り、境界を認識することはできない。これは、この図6(c) に示す符号化データ列を復号化する際には、1台の復号処理ユニットを用いて、先頭から順に復号処理を行わざるを得ないことを意味する。このため、復号処理に時間がかかり、特にリアルタイムでの表示処理を要求される映像データなどの場合、スムーズな再生が阻害されるなどの問題が生じることは、既に述べたとおりである。 For example, in the encoded data sequence shown in FIG. 6 (c), although the identification code C portion is fixed to 3 bits, the actual data D portion has a variable length, so the boundary of each unit code data U is It can be recognized for the first time by performing the decoding process sequentially from the beginning of the data string. Actually, the boundaries of the unit code data U1, U2, U3, U4, and U5 are irregular, and the boundaries cannot be recognized unless this bit string is analyzed in order from the top. This means that when decoding the encoded data string shown in FIG. 6 (c), decoding processing must be performed in order from the top using one decoding processing unit. For this reason, as described above, it takes time for the decoding process, and in particular, in the case of video data or the like for which a real-time display process is required, problems such as hindering smooth reproduction occur.
このような事情は、図7(c) に示す符号化データ列(可変長符号化テーブルを用いた符号化処理によって得られたもの)や、図8(c) に示す符号化データ列(ハフマン符号化テーブルを用いた符号化処理によって得られたもの)についても全く同じである。 Such circumstances include the encoded data sequence shown in FIG. 7C (obtained by the encoding process using the variable length encoding table) and the encoded data sequence shown in FIG. 8C (Huffman). The same applies to (obtained by the encoding process using the encoding table).
このような問題に対処するための一手法として、本願発明者は、次のような着想を得ることができた。いま、図8(c) に示す符号化データを復号化する際に、このデータ列を所定位置で分割し、個々の部分データを複数台の復号処理ユニットに与えて並列処理を行うことを考えよう。複数台の復号処理ユニットによる並列処理が実現できれば、それだけ復号処理に必要な時間は短縮され、スムーズな動画再生などが可能になる。 As a technique for dealing with such a problem, the present inventor has been able to obtain the following idea. Now, when decoding the encoded data shown in FIG. 8 (c), it is considered that this data string is divided at a predetermined position, and individual partial data is given to a plurality of decoding processing units to perform parallel processing. Like. If parallel processing by a plurality of decoding processing units can be realized, the time required for decoding processing can be shortened accordingly, and smooth video reproduction and the like can be performed.
ただ、各復号処理ユニットによって正しい復号処理が実行されるようにするためには、各部分データを正しい位置で切り出す必要がある。具体的には、各単位符号データU1,U2,U3,U4,U5の境界で分割する必要がある。ところが、単位符号データUを構成する実データDのビット長が可変であるため、単位符号データUの境界は不確定である。そこで、本願発明者は、実データDのビット長の不確定さを、識別コードCのビット長で補完することができるのではないか、という第1の着想を得た。 However, in order for each decoding processing unit to perform correct decoding processing, it is necessary to cut out each partial data at the correct position. Specifically, it is necessary to divide at the boundary of each unit code data U1, U2, U3, U4, U5. However, since the bit length of the actual data D constituting the unit code data U is variable, the boundary of the unit code data U is indeterminate. Therefore, the inventor of the present application has obtained the first idea that the uncertainty of the bit length of the actual data D can be complemented by the bit length of the identification code C.
図5に示すように、単位符号データUのビット長は、識別コードC自身のビット長aと実データDのビット長bとの和「a+b」になる。しかも、用いる識別コードCは、後続する実データDのビット長bに基づいて定められる。そこで本願発明者は、識別コードCを、図7(b) や図8(b) に示すような可変長の符号化テーブルによって定義するようにし、かつ、識別コードC自身のビット長aを、当該識別コードCに対応するビット長bに応じて定めるようにすれば、ビット長の和「a+b」を一定にすることができるのではないかと考えた。 As shown in FIG. 5, the bit length of the unit code data U is the sum “a + b” of the bit length a of the identification code C itself and the bit length b of the actual data D. Moreover, the identification code C to be used is determined based on the bit length b of the subsequent actual data D. Therefore, the inventor of the present application defines the identification code C by a variable length coding table as shown in FIGS. 7B and 8B, and sets the bit length a of the identification code C itself as follows: It was considered that if the bit length b corresponding to the identification code C was determined, the sum of bit lengths “a + b” could be made constant.
たとえば、図5に示す単位符号データUのビット長を固定値Nに定めるようにし、常に「a+b=N」が成り立つような運用が可能になれば、単位符号データUの境界は、常にNビット周期で現れることになるので、このNビット周期の位置で部分データの切り出しを行うようにすれば、各部分データの先頭は、単位符号データUの先頭に一致し、各復号処理ユニットは正しい復号処理を行うことができる。 For example, if the bit length of the unit code data U shown in FIG. 5 is set to a fixed value N and operation that always satisfies “a + b = N” is possible, the boundary of the unit code data U is always N bits. Therefore, if the partial data is cut out at the position of the N-bit period, the head of each partial data coincides with the head of the unit code data U, and each decoding processing unit performs correct decoding. Processing can be performed.
ところが、常に「a+b=N」が成り立つような可変長符号化テーブルを実際に設計すると、ビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードを対応づけたハフマン符号化テーブルへの適用を行うことができなくなってしまう。たとえば、図7(b) に示す可変長符号化テーブルを改変して、常に「a+b=N」が成り立つようにすることを考えてみよう。ここで、たとえば、N=9に固定したとすると、a=9−bが成り立つようなビット長aをもった識別コードCをテーブルの各欄に掲載すればよいことになる。したがって、ビット長b=1に対応する識別コードは8ビットの長さをもったコード、ビット長b=2に対応する識別コードは7ビットの長さをもったコード、ビット長b=3に対応する識別コードは6ビットの長さをもったコード、... 、ビット長b=8に対応する識別コードは1ビットの長さをもったコードということになり、一応、条件を満たす可変長符号化テーブルを作成することは可能である。 However, when a variable length coding table that always satisfies “a + b = N” is actually designed, the higher the appearance frequency of the bit length b, the more the Huffman coding table is associated with an identification code having a shorter bit length a. It becomes impossible to apply to. For example, consider modifying the variable length coding table shown in FIG. 7B so that “a + b = N” always holds. Here, for example, if N = 9 is fixed, an identification code C having a bit length a such that a = 9−b may be placed in each column of the table. Therefore, the identification code corresponding to the bit length b = 1 is a code having a length of 8 bits, the identification code corresponding to the bit length b = 2 is a code having a length of 7 bits, and the bit length b = 3 The corresponding identification code is a code having a length of 6 bits,..., And the identification code corresponding to a bit length b = 8 is a code having a length of 1 bit. It is possible to create a long coding table.
しかしながら、ビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードを対応づけるような入れ替えを行って、ハフマン符号化テーブルを作成すると、「a+b=N」という条件は必ずしも満足されなくなってしまう。結局、「a+b=N」という条件を満たす可変長符号化テーブルは、ビット長bと識別コードCとの対応関係の自由度が著しく制限され、出現頻度を考慮したハフマン符号化テーブルへの適用は一切できなくなり、実用上、利用価値が極めて低いものにならざるを得ない。 However, when the Huffman coding table is created by performing replacement such that an identification code having a shorter bit length a is associated as the appearance frequency of the bit length b is higher, the condition “a + b = N” is not necessarily satisfied. It will disappear. After all, the variable length coding table that satisfies the condition “a + b = N” has a remarkably limited degree of freedom in the correspondence relationship between the bit length b and the identification code C, and can be applied to the Huffman coding table considering the appearance frequency. It cannot be used at all, and must be extremely low in practical use.
そこで、本願発明者は、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足する符号化テーブルを用いるようにし、識別コードCのビット長aにある程度の自由度をもたせる、という第2の着想を得るに至った。上記条件であれば、kの値を調整することにより、ビット長aを基準ビット長Nの単位で増減することができるので、ビット長bの出現頻度に応じてビット長aを設定することができる。 Therefore, the inventor of the present application has a coding table that satisfies a condition of “a + b = k × N” (where k is an arbitrary integer) with respect to a predetermined reference bit length N (where N is an integer of 2 or more). As a result, the second idea of giving a certain degree of freedom to the bit length a of the identification code C has been obtained. Under the above conditions, the bit length a can be increased or decreased by the unit of the reference bit length N by adjusting the value of k. Therefore, the bit length a can be set according to the appearance frequency of the bit length b. it can.
もっとも、単位符号データUのビット長「a+b」について、「a+b=k×N」なる条件設定を行うと、単位符号データUのビット長は、固定値にはならない。したがって、単位符号データUの境界が確定しない、という問題が再び浮上してくる。しかしながら、上記条件設定を行えば、単位符号データUの境界は全く不規則になるわけではなく、必ず基準ビット長Nの整数倍の位置になる。そこで、本願発明者は、復号化を行う際に、符号化データ列を、とりあえず基準ビット長Nの整数倍の位置で分割して部分データを作成し、各部分データを複数の復号処理ユニットに与えて、復号化を並列処理で行い、正しい復号処理が行われたユニットの処理結果だけを採用すれば、正しい復号化データ列を得ることができる、という第3の着想を得るに至ったのである。 However, if the condition of “a + b = k × N” is set for the bit length “a + b” of the unit code data U, the bit length of the unit code data U does not become a fixed value. Therefore, the problem that the boundary of the unit code data U is not fixed comes up again. However, if the above condition is set, the boundary of the unit code data U does not become irregular at all, but always becomes a position that is an integral multiple of the reference bit length N. Therefore, when performing decoding, the inventor of the present application creates partial data by dividing an encoded data string at a position that is an integral multiple of the reference bit length N for the time being, and each partial data is divided into a plurality of decoding processing units. Given that the third idea is that if the decoding is performed in parallel and only the processing result of the unit where the correct decoding is performed is adopted, the correct decoded data string can be obtained. is there.
kの値が任意の整数であるため、Nの整数倍のビット位置は、必ずしも単位符号データUの境界として正しい位置になるとは限らないが、単位符号データUの境界は、必ずNの整数倍のビット位置にくる。したがって、複数台の復号処理ユニットのうちの何台かは、単位符号データUの途中から誤った復号処理を開始することになるが、別な何台かは、単位符号データUの先頭から正しい復号処理を開始することになる。最終的に、正しい復号処理の結果だけを採用し、誤った復号処理の結果を捨ててしまえば、誤った復号処理のプロセスは無駄になるものの、並列処理による復号化に要する時間短縮の効果は得られる。 Since the value of k is an arbitrary integer, a bit position that is an integer multiple of N is not necessarily a correct position as a boundary of the unit code data U, but the boundary of the unit code data U is always an integer multiple of N. At the bit position. Therefore, some of the plurality of decoding processing units start the wrong decoding process in the middle of the unit code data U, but some others are correct from the beginning of the unit code data U. The decoding process is started. Finally, if only the correct decoding process result is adopted and the wrong decoding process result is discarded, the erroneous decoding process is wasted, but the effect of shortening the time required for decoding by parallel processing is can get.
こうして、本発明によれば、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化しつつ、復号化の段階において、符号化されたデータを複数台の復号処理ユニットを用いた並列処理によって復号化することが可能になる。続く§3では、このような本発明の基本原理を、具体例を挙げながら詳述する。 Thus, according to the present invention, while encoding a numerical data string composed of fixed-length bits using a variable-length bit string, a plurality of decoding processing units are used for the encoded data at the decoding stage. Decoding can be performed by parallel processing. In the following §3, the basic principle of the present invention will be described in detail with specific examples.
<<< §3.本発明に係る符号化方法の基本原理 >>>
図9は、図2に示す固定長ビット列で表現された数値データ列を、本発明に係る符号化テーブルを用いて符号化するプロセスを示す図である。図9(a) は、図4と同じ図であり、図3に示す可変長ビット列に、ビット長を示す情報(丸数字)を挿入した状態を示している。図9(b) は、本発明に用いる符号化テーブルである。
<<< §3. Basic principle of encoding method according to the present invention >>
FIG. 9 is a diagram showing a process of encoding the numerical data string expressed by the fixed-length bit string shown in FIG. 2 using the encoding table according to the present invention. FIG. 9 (a) is the same diagram as FIG. 4, and shows a state in which the information (circle numerals) indicating the bit length is inserted into the variable length bit string shown in FIG. FIG. 9 (b) is an encoding table used in the present invention.
このテーブルは、ビット長bの出現頻度は考慮していないので、ハフマン符号化テーブルではないが、可変長の識別コードCとビット長bとの対応関係を示す可変長符号化テーブルである。ここでは、説明の便宜上、この符号化テーブルの右側の破線欄に、識別コードC自身のビット長aと、当該識別コードCを含む単位符号データUのビット長「a+b」を示してある(この破線欄の内容は、説明の便宜のために示すものであって、この符号化テーブルの一部ではない)。 This table is not a Huffman coding table because the appearance frequency of the bit length b is not taken into consideration, but is a variable length coding table showing the correspondence between the variable length identification code C and the bit length b. Here, for convenience of explanation, the bit length a of the identification code C itself and the bit length “a + b” of the unit code data U including the identification code C are shown in the broken line column on the right side of the encoding table (this The content of the broken line column is shown for convenience of explanation and is not a part of this encoding table).
この図9(b) のテーブルでは、b=0〜8の9通りのビット長について、それぞれ対応する識別コードCが定義されている。§1で述べた各符号化テーブルでは、b=1〜8の8通りのビット長について、それぞれ対応する識別コードCが定義されていたが、図9(b) のテーブルでは、更に、b=0の場合についても識別コードの定義が行われている。これは、以下に述べる実施形態では、実データのビット長b=0を定義する方法を採っているためである。具体的には、数値データ「00000000」の実データは、1桁のビット「0」ではなく、ビット長が0である0桁の仮想データ、すなわち、実質的に実データを示すビットを配置しない状態で表現される(この場合、単位符号データUは、実質的に、識別コードCを構成するビットのみから構成される)。 In the table of FIG. 9B, identification codes C corresponding to nine bit lengths of b = 0 to 8 are defined. In each encoding table described in §1, corresponding identification codes C are defined for eight bit lengths of b = 1 to 8, respectively. However, in the table of FIG. 9B, b = In the case of 0, the identification code is defined. This is because the embodiment described below adopts a method of defining the bit length b = 0 of actual data. Specifically, the real data of the numerical data “00000000” is not a single-digit bit “0”, and 0-digit virtual data having a bit length of 0, that is, a bit that substantially indicates the actual data is not arranged. (In this case, the unit code data U is substantially composed only of bits constituting the identification code C).
図9(b) のテーブルは、§2で説明した「a+b=k×N」なる条件を満足する符号化テーブルになっている。具体的には、基準ビット長N=4に設定した例であり、整数kの値は、1,2,3,4のいずれかである。たとえば、テーブルの1行目には、ビット長b=0を示す識別コードCとして「1000」なる4ビットからなるコードが示されている。ここでビット長b=0は、上述したように、数値データ「00000000」の実データを、長さ0ビットの仮想ビットによって表現するときに用いられ、実質的に、実データDを構成するビットは存在しない。したがって、この場合の、単位符号データUのビット長「a+b」は4になる。 The table of FIG. 9B is an encoding table that satisfies the condition “a + b = k × N” described in §2. Specifically, in this example, the reference bit length N is set to 4 and the value of the integer k is 1, 2, 3, or 4. For example, in the first row of the table, a 4-bit code “1000” is shown as the identification code C indicating the bit length b = 0. Here, the bit length b = 0 is used when the actual data of the numerical data “00000000” is represented by a virtual bit having a length of 0 bits as described above, and is a bit that substantially constitutes the actual data D. Does not exist. Accordingly, the bit length “a + b” of the unit code data U in this case is 4.
一方、テーブルの2行目には、ビット長b=1を示す識別コードCとして「010」なる3ビットからなるコードが示されている。この場合の、単位符号データUのビット長「a+b」はやはり4になる。テーブルの3行目には、ビット長b=2を示す識別コードCとして「00」なる2ビットからなるコードが示されている。この場合の、単位符号データUのビット長「a+b」はやはり4になる。また、テーブルの4行目には、ビット長b=3を示す識別コードCとして「10100」なる5ビットからなるコードが示されている。この場合の、単位符号データUのビット長「a+b」は8になる。以下同様に続き、最後に、テーブルの9行目には、ビット長b=8を示す識別コードCとして「10111010」なる8ビットからなるコードが示されている。この場合の、単位符号データUのビット長「a+b」は16になる。 On the other hand, in the second row of the table, a 3-bit code “010” is shown as an identification code C indicating the bit length b = 1. In this case, the bit length “a + b” of the unit code data U is also 4. In the third row of the table, a 2-bit code “00” is shown as an identification code C indicating the bit length b = 2. In this case, the bit length “a + b” of the unit code data U is also 4. The fourth row of the table shows a 5-bit code “10100” as the identification code C indicating the bit length b = 3. In this case, the bit length “a + b” of the unit code data U is 8. The same applies to the following. Finally, the 9th row of the table shows an 8-bit code “10111010” as the identification code C indicating the bit length b = 8. In this case, the bit length “a + b” of the unit code data U is 16.
結局、この図9(b) に示す符号化テーブルを用いて符号化を行った場合、単位符号データUのビット長「a+b」は4,8,12,16のいずれかになる。すなわち、必ず基準ビット長N=4の整数倍になり、最大ビット長Umax =16である。もちろん、この符号化テーブルは、基本的には、図7(b) に示すテーブルと同様に、可変長符号化テーブルであるから、テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない、という条件も満たしている。 After all, when encoding is performed using the encoding table shown in FIG. 9B, the bit length “a + b” of the unit code data U is any of 4, 8, 12, and 16. That is, it is always an integer multiple of the reference bit length N = 4, and the maximum bit length Umax = 16. Of course, this encoding table is basically a variable-length encoding table, similar to the table shown in FIG. 7 (b), so that any attention can be paid to any identification code in the table. When the bit length of the identification code itself is a, the condition that another identification code in which the a-bit portion from the head is the same as the target identification code does not exist in this table is also satisfied.
図9(c) は、図9(a) における丸数字のビット長を示す各識別コードC1,C2,...の部分に、図9(b) の符号化テーブルで定義された固有の識別コードCを当てはめることにより得られる符号化データ列を示している。この図9(c) に示す符号化データ列と、図9(b) に示す符号化テーブルとを用いれば、図2に示す元の固定長ビットの数値データ列の復元が可能である点は、図7の例と全く同様である。すなわち、復号化を行う際には、符号化データ列を先頭から1ビットずつチェックしながら、符号化テーブルを参照し、合致するコードが存在するか否かを調べる処理を行うことになる。 FIG. 9 (c) shows a unique identification defined in the encoding table of FIG. 9 (b) in each identification code C1, C2,... An encoded data string obtained by applying the code C is shown. If the encoded data sequence shown in FIG. 9 (c) and the encoding table shown in FIG. 9 (b) are used, the original fixed-length bit numerical data sequence shown in FIG. 2 can be restored. This is exactly the same as the example of FIG. That is, when decoding is performed, the encoded data string is checked bit by bit from the head while referring to the encoding table to check whether a matching code exists.
具体的には、まず、図9(c) の符号化データ列の第1ビット目のビット「0」について、合致する識別コードCの有無を調べる。図9(b) のテーブルには合致する識別コードは存在しない。そこで、次に第1〜2ビット目のビット列「01」について、合致する識別コードCの有無を調べるが、やはり合致する識別コードは存在しない。更に、第1〜3ビット目のビット列「011」について、合致する識別コードCの有無を調べると、ようやくビット長「5」に対応する識別コードが見つかることになる。よって、先頭から3ビットのビット列「011」の部分が識別コードCであることが認識でき、これに後続する5ビットのビット列「11100」を実データD1として取り出すことができ、8ビットのデータ「00011100」を復元することができる。 Specifically, first, the presence or absence of a matching identification code C is checked for the bit “0” of the first bit of the encoded data string in FIG. There is no matching identification code in the table of FIG. Then, next, the presence or absence of a matching identification code C is examined for the bit string “01” of the first and second bits, but there is no matching identification code. Further, when the presence or absence of a matching identification code C is checked for the bit string “011” of the first to third bits, an identification code corresponding to the bit length “5” is finally found. Therefore, it can be recognized that the portion of the 3-bit bit string “011” from the top is the identification code C, and the subsequent 5-bit bit string “11100” can be extracted as the actual data D1, and the 8-bit data “ “00011100” can be restored.
続いて、図9(c) の符号化データ列の第9ビット目のビットから、同様の合致判定プロセスを続けてゆく。まず、第9ビット目のビット「1」について、合致する識別コードCの有無を調べるが、合致する識別コードは存在しない。そこで、次に第9〜10ビット目のビット列「10」について、合致する識別コードCの有無を調べるが、やはり合致する識別コードは存在しない。このようにして、合致判定対象となるビット列を1ビットずつ伸ばしてゆくと、第9〜16ビット目のビット列「10111010」について、はじめて合致する識別コードが見つかる。かくして、当該ビット列「10111010」の部分が識別コードCであることが認識できる。図9(b) のテーブルによると、識別コード「10111010」に対応するビット長bは「8」であるから、第17〜24ビット目のビット列「11111011」を実データD2として取り出すことができる。 Subsequently, the same match determination process is continued from the ninth bit of the encoded data string of FIG. 9 (c). First, for the bit “1” of the ninth bit, the presence or absence of a matching identification code C is checked, but there is no matching identification code. Then, next, the presence or absence of a matching identification code C is examined for the bit string “10” of the ninth to tenth bits, but there is no matching identification code. In this way, when the bit string to be matched is extended bit by bit, a matching identification code is found for the bit string “10111010” of the 9th to 16th bits for the first time. Thus, it can be recognized that the portion of the bit string “10111010” is the identification code C. According to the table of FIG. 9B, since the bit length b corresponding to the identification code “10111010” is “8”, the bit string “11111011” of the 17th to 24th bits can be extracted as the actual data D2.
次に、図9(c) の符号化データ列の第25ビット目のビットから、同様の合致判定プロセスを続けてゆくと、第25〜27ビット目のビット列「010」について、はじめて合致する識別コードが見つかる。かくして、当該ビット列「010」の部分が識別コードCであることが認識できる。図9(b) のテーブルによると、識別コード「010」に対応するビット長bは「1」であるから、第28ビット目のビット「1」を実データD3として取り出すことができ、8ビットのデータ「00000001」を復元することができる。 Next, when the same match determination process is continued from the 25th bit of the encoded data string of FIG. 9 (c), the bit string “010” of the 25th to 27th bits is matched for the first time. The code is found. Thus, it can be recognized that the portion of the bit string “010” is the identification code C. According to the table of FIG. 9 (b), since the bit length b corresponding to the identification code “010” is “1”, the bit “1” of the 28th bit can be taken out as the actual data D3, and 8 bits Data “00000001” can be restored.
続いて、図9(c) の符号化データ列の第29ビット目のビットから、同様の合致判定プロセスを続けてゆくと、第29〜32ビット目のビット列「1001」について、はじめて合致する識別コードが見つかる。かくして、当該ビット列「1001」の部分が識別コードCであることが認識できる。図9(b) のテーブルによると、識別コード「1001」に対応するビット長bは「4」であるから、第33〜36ビット目のビット「1101」を実データD4として取り出すことができ、8ビットのデータ「00001101」を復元することができる。 Subsequently, when the same match determination process is continued from the 29th bit of the encoded data string of FIG. 9 (c), the bit string “1001” of the 29th to 32nd bits is matched for the first time. The code is found. Thus, it can be recognized that the portion of the bit string “1001” is the identification code C. According to the table of FIG. 9B, since the bit length b corresponding to the identification code “1001” is “4”, the bit “1101” of the 33rd to 36th bits can be extracted as the actual data D4. The 8-bit data “00001011” can be restored.
最後に、図9(c) の符号化データ列の第37ビット目のビットから、同様の合致判定プロセスを続けてゆくと、第37〜38ビット目のビット列「00」について、はじめて合致する識別コードが見つかる。かくして、当該ビット列「00」の部分が識別コードCであることが認識できる。図9(b) のテーブルによると、識別コード「00」に対応するビット長bは「2」であるから、第39〜40ビット目のビット「11」を実データD5として取り出すことができ、8ビットのデータ「00000011」を復元することができる。 Finally, when the same match determination process is continued from the 37th bit of the encoded data string of FIG. 9 (c), the bit string “00” of the 37th to 38th bits is matched for the first time. The code is found. Thus, it can be recognized that the portion of the bit string “00” is the identification code C. According to the table of FIG. 9B, since the bit length b corresponding to the identification code “00” is “2”, the bit “11” of the 39th to 40th bits can be extracted as the actual data D5. The 8-bit data “00000011” can be restored.
なお、図9(b) に示す符号化テーブルは、対応するビット長bの差がN(この例では、N=4)の整数倍となるような2つの識別コードを入れ替えても、「a+b=k×N」という条件は維持されたままになる。たとえば、ビット長b=「2」に対応する識別コード「00」と、ビット長b=「6」に対応する識別コード「101100」とを相互に入れ替えても、上記条件は維持されたままになる(kの値は変わる)。同様に、たとえば、ビット長b=「4」に対応する識別コード「1001」と、ビット長b=「8」に対応する識別コード「10111010」とを相互に入れ替えても、上記条件は維持されたままになる(kの値は変わる)。このような入れ替えを行えば、ビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられているハフマン符号化テーブルを作成することも可能である。 Note that the encoding table shown in FIG. 9 (b) is “a + b” even if two identification codes whose corresponding bit length b is an integer multiple of N (N = 4 in this example) are interchanged. = K × N ”remains maintained. For example, even if the identification code “00” corresponding to the bit length b = “2” and the identification code “101100” corresponding to the bit length b = “6” are interchanged, the above condition is maintained. (The value of k changes.) Similarly, for example, even if the identification code “1001” corresponding to the bit length b = “4” and the identification code “10111010” corresponding to the bit length b = “8” are interchanged, the above condition is maintained. (K value changes). By performing such replacement, it is possible to create a Huffman coding table in which an identification code having a shorter bit length a is associated with an increase in the appearance frequency of the bit length b.
<<< §4.本発明に係る復号化方法の基本原理 >>>
§3では、本発明に係る符号化方法と、当該符号化方法によって作成された図9(c) に示す具体的な符号化データ列を、1台の復号処理ユニットを用いて、先頭から順番に処理しながら復号化を行う手順を述べた。しかしながら、1台の復号処理ユニットを用いた復号化を前提とする場合、図9に示す符号化処理を行う特有のメリットは生かされない。実際、図9(c) に示す符号化データ列は、図7(c) に示す符号化データ列よりも若干データ容量が大きくなっており、データ容量をより削減するというメリットは得られない。図9に示す符号化処理を行う特有のメリットは、並列処理による復号化が可能になり、復号化に要する時間を短縮できるという点である。以下、このメリットについて、具体的な復号処理手順を示しながら説明する。
<<< §4. Basic principle of decoding method according to the present invention >>
In §3, the encoding method according to the present invention and the specific encoded data sequence shown in FIG. 9 (c) created by the encoding method are sequentially used from the top using one decoding processing unit. The procedure for decoding while processing is described. However, when decoding using a single decoding processing unit is assumed, the particular merit of performing the encoding processing shown in FIG. 9 is not utilized. Actually, the encoded data sequence shown in FIG. 9 (c) has a slightly larger data capacity than the encoded data sequence shown in FIG. 7 (c), and the merit of further reducing the data capacity cannot be obtained. A unique advantage of performing the encoding process shown in FIG. 9 is that decoding by parallel processing becomes possible, and the time required for decoding can be shortened. Hereinafter, this merit will be described while showing a specific decoding processing procedure.
図9(c) の符号化データ列を構成する各単位符号データU1,U2,U3,U4,U5のデータ長は、図示のとおり、8ビット,16ビット,4ビット,8ビット,4ビットになっており、いずれも基準ビット長N=4の整数倍になっている。したがって、この符号化データ列を4ビットごとに区切ったとすれば、当該区切りは、必ずしも単位符号データUの境界になるとは限らないが、単位符号データUの境界は、必ず当該区切りの位置にくることになる。したがって、区切り位置を先頭から4ビットずつずらした複数通りの部分データを作成し、これらをそれぞれ複数台の復号処理ユニットに与えれば、何台かの復号処理ユニットには、先頭が単位符号データUの境界位置に一致した部分データが与えられることになり、これらの復号処理ユニットは、正しい復号処理を実行できる。 The data lengths of the unit code data U1, U2, U3, U4, and U5 constituting the encoded data string in FIG. 9 (c) are 8 bits, 16 bits, 4 bits, 8 bits, and 4 bits, as shown in the figure. Both are integer multiples of the reference bit length N = 4. Therefore, if this encoded data string is divided every 4 bits, the division is not necessarily the boundary of the unit code data U, but the boundary of the unit code data U is always at the position of the division. It will be. Therefore, if a plurality of partial data is generated by shifting the delimiter position by 4 bits from the beginning, and these are respectively given to a plurality of decoding processing units, some of the decoding processing units have a unit code data U at the beginning. Thus, partial data that matches the boundary position is provided, and these decoding processing units can execute correct decoding processing.
ここでは、図9(c) に示す符号化データ列について、8台の復号処理ユニットによる並列処理で復号化する原理を、図10〜図14を参照しながら具体的に説明しよう。図10の上段に示すデータ列は、図9(c) に示す符号化データ列を、4ビットずつのブロックB1〜B11に分割して示したものである。なお、ブロックB11には「****」なるビット列が示されているが、これは図9(c) には、単位符号データU5に後続するビット列が明記されていないための便宜であり、実際には、「****」なる部分には何らかのビット列(単位符号データU6を構成するビット列)が入ることになる。 Here, the principle of decoding the encoded data string shown in FIG. 9C by parallel processing by eight decoding processing units will be specifically described with reference to FIGS. The data sequence shown in the upper part of FIG. 10 is obtained by dividing the encoded data sequence shown in FIG. 9C into 4-bit blocks B1 to B11. In addition, although a bit string “***” is shown in the block B11, this is for convenience because the bit string following the unit code data U5 is not clearly shown in FIG. 9 (c). Actually, a bit string (a bit string constituting the unit code data U6) is entered in the portion “***”.
ここでは、8台の復号処理ユニットを、それぞれユニットQ1〜Q8と呼ぶ。いずれの復号処理ユニットも、単位符号データUの最大ビット長Umaxに相当する16ビットの連続ビットデータを収容し、先頭から順次、復号処理を実行する機能を有している。但し、この8台の復号処理ユニットには、Nビット(この例では、4ビット)ずつずらした部分データが与えられる。図において、8台の復号処理ユニットQ1〜Q8が、4ビットずつずらして描かれているのは、与えられる部分データが4ビットずつずれていることを明確に示すためである。 Here, the eight decoding processing units are referred to as units Q1 to Q8, respectively. Each of the decoding processing units accommodates 16-bit continuous bit data corresponding to the maximum bit length Umax of the unit code data U, and has a function of executing decoding processing sequentially from the top. However, partial data shifted by N bits (4 bits in this example) is given to the eight decoding processing units. In the figure, the eight decoding processing units Q1 to Q8 are drawn with a shift of 4 bits in order to clearly show that the given partial data is shifted by 4 bits.
すなわち、第1の復号処理ユニットQ1には、第1〜16ビット目のビット列(ブロックB1〜B4)が与えられ、第2の復号処理ユニットQ2には、第5〜20ビット目のビット列(ブロックB2〜B5)が与えられ、第3の復号処理ユニットQ3には、第9〜24ビット目のビット列(ブロックB3〜B6)が与えられ、... 以下同様である。 That is, the first decoding processing unit Q1 is provided with the bit string of the first to sixteenth bits (blocks B1 to B4), and the second decoding processing unit Q2 is provided with the bit string of the fifth to twentieth bits (block B2 to B5) are provided, and the third decoding processing unit Q3 is provided with the 9th to 24th bit strings (blocks B3 to B6), and so on.
さて、この8台の復号処理ユニットQ1〜Q8が並行して、それぞれ復号処理を開始したものとしよう。図11は、各ユニットにおける復号処理の結果を示している。図において、太線の楕円は、合致判定プロセスにより、図9(b) に示す符号化テーブル内の識別コードと合致したビット列を示しており、当該楕円から上方へ向かう矢印の先に記載された丸数字は、合致した識別コードに対応するビット長bを示している。 Now, assume that the eight decoding processing units Q1 to Q8 have started decoding processing in parallel. FIG. 11 shows the result of the decoding process in each unit. In the figure, a bold ellipse indicates a bit string that matches the identification code in the encoding table shown in FIG. 9B by the match determination process, and a circle indicated at the tip of the arrow pointing upward from the ellipse. The number indicates the bit length b corresponding to the matched identification code.
たとえば、第1の復号処理ユニットQ1が行う復号処理は、まず、第1ビット目のビット「0」について、合致する識別コードCの有無を調べる。図9(b) のテーブルには合致する識別コードは存在しない。そこで、次に第1〜2ビット目のビット列「01」について、合致する識別コードCの有無を調べるが、やはり合致する識別コードは存在しない。更に、第1〜3ビット目のビット列「011」について、合致する識別コードCの有無を調べると、ようやくビット長「5」に対応する識別コードが合致するコードとして見つかることになる。図のユニットQ1の行に示されている楕円「011」とその上方の丸数字「5」は、このような合致認識が行われることを示している。ビット長「5」の認識が行われたため、これに後続する5ビットのビット列「11100」が実データとして取り出され、8ビットのデータ「00011100」が復元される。図のユニットQ1の行の右側に示されている[28]は、この8ビットのデータ「00011100」の10進表記である。 For example, in the decoding process performed by the first decoding processing unit Q1, first, the presence or absence of a matching identification code C is checked for the bit “0” of the first bit. There is no matching identification code in the table of FIG. Then, next, the presence or absence of a matching identification code C is examined for the bit string “01” of the first and second bits, but there is no matching identification code. Further, when the presence or absence of a matching identification code C is examined for the bit string “011” of the first to third bits, the identification code corresponding to the bit length “5” is finally found as a matching code. An ellipse “011” and a circle number “5” above the line of the unit Q1 in the figure indicate that such a match recognition is performed. Since the bit length “5” is recognized, the subsequent 5-bit bit string “11100” is extracted as actual data, and the 8-bit data “00011100” is restored. [28] shown on the right side of the row of the unit Q1 in the figure is a decimal notation of the 8-bit data “00011100”.
続いて、第1の復号処理ユニットQ1は、第9ビット目のビット「1」について、合致する識別コードCの有無を調べるが、合致する識別コードは存在しない。そこで、次に第9〜10ビット目のビット列「10」について、合致する識別コードCの有無を調べるが、やはり合致する識別コードは存在しない。このようにして、合致判定対象となるビット列を1ビットずつ伸ばしてゆくと、第9〜16ビット目のビット列「10111010」について、ようやくビット長「8」に対応する識別コードが合致するコードとして見つかる。図のユニットQ1の行に示されている楕円「10111010」とその上方の丸数字「8」は、このような合致認識が行われることを示している。ここで、ビット長「8」の認識が行われたため、これに後続する8ビットのビット列を実データとして取り出そうとするが、第1の復号処理ユニットQ1には、ブロックB5以降のビット列は取り込まれていないため、処理は失敗に終わる。図のユニットQ1の行の右側に示されている[28]に後続する[ERR]は、次の実データの復号処理に失敗したことを示している。 Subsequently, the first decoding processing unit Q1 checks the presence or absence of a matching identification code C for the bit “1” of the ninth bit, but there is no matching identification code. Then, next, the presence or absence of a matching identification code C is examined for the bit string “10” of the ninth to tenth bits, but there is no matching identification code. In this way, when the bit string to be matched is extended bit by bit, the identification code corresponding to the bit length “8” is finally found for the 9th to 16th bit strings “10111010”. . An ellipse “10111010” and a circle number “8” shown above in the row of the unit Q1 in the figure indicate that such matching recognition is performed. Here, since the bit length “8” has been recognized, an attempt is made to extract the subsequent 8-bit bit string as actual data. However, the first decoding processing unit Q1 receives the bit string after the block B5. The process ends in failure. [ERR] following [28] shown on the right side of the row of the unit Q1 in the figure indicates that the decoding process of the next actual data has failed.
結局、第1の復号処理ユニットQ1による復号処理は、最初の実データ[28]の復号化には成功するが、次の実データの復号化には失敗する([ERR])。こうして、復号処理に失敗した場合、そこで処理は終了する。図のユニットQ1の行の右端の「P1=8」なる記述は、正常処理ビット長P1が「8」であることを示している。ここで、正常処理ビット長とは、正常な復号処理に関与したビット列の長さを言う。上例の場合、正常に処理が行われたのは、数値[28]を復元する処理までであるから、この数値[28]の復元に関与した第1〜8ビット目までのビット長が、正常処理ビット長P1ということになる。 Eventually, the decoding process by the first decoding processing unit Q1 succeeds in decoding the first actual data [28], but fails in decoding the next actual data ([ERR]). Thus, if the decoding process fails, the process ends there. The description “P1 = 8” at the right end of the line of the unit Q1 in the drawing indicates that the normal processing bit length P1 is “8”. Here, the normal processing bit length refers to the length of a bit string involved in normal decoding processing. In the case of the above example, since the process was normally performed until the process of restoring the numerical value [28], the bit lengths up to the first to eighth bits involved in the restoration of the numerical value [28] are This is the normal processing bit length P1.
次に、第2の復号処理ユニットQ2が行う復号処理を見てみよう。ユニットQ2は、まず、第1ビット目のビット「1」について、合致する識別コードCの有無を調べる。図9(b) のテーブルには合致する識別コードは存在しない。そこで、次に第1〜2ビット目のビット列「11」について、合致する識別コードCの有無を調べるが、やはり合致する識別コードは存在しない。このようにして、合致判定対象となるビット列を1ビットずつ伸ばしてゆくが、結局、いつまで経っても、合致する識別コードは見つからない。よって、正常な復号処理は全く行われないことになる。図のユニットQ2の行の右側に示されている[ERR]および「P2=0」なる記述は、正常な復号処理は全く行われず、正常処理ビット長P2が「0」であることを示している。 Next, let's look at the decoding process performed by the second decoding processing unit Q2. The unit Q2 first checks the presence or absence of a matching identification code C for the first bit “1”. There is no matching identification code in the table of FIG. Then, next, the presence or absence of a matching identification code C is examined for the bit string “11” of the first and second bits, but there is no matching identification code. In this way, the bit string to be matched is extended bit by bit, but after all, no matching identification code is found. Therefore, normal decoding processing is not performed at all. The description of [ERR] and “P2 = 0” shown on the right side of the row of the unit Q2 in the figure indicates that normal decoding processing is not performed at all and the normal processing bit length P2 is “0”. Yes.
次に、第3の復号処理ユニットQ3が行う復号処理を見てみよう。ユニットQ3が、合致判定対象となるビット列を1ビットずつ伸ばしながら、合致する識別コードを見つける処理を繰り返してゆくと、第1〜8ビット目のビット列「10111010」について、ようやくビット長「8」に対応する識別コードが合致するコードとして見つかる。図のユニットQ3の行に示されている楕円「10111010」とその上方の丸数字「8」は、このような合致認識が行われることを示している。ここで、ビット長「8」の認識が行われたため、これに後続する8ビットのビット列「11111011」が実データとして取り出され、8ビットのデータ「11111011」が復元される。図のユニットQ3の行の右側に示されている[251]は、この8ビットのデータ「11111011」の10進表記である。この時点で、第3の復号処理ユニットQ3内には未処理のビットは残っていないので、復号処理はここで終了する。図のユニットQ3の行の右側に示されている[251]および「P3=16」なる記述は、正常処理により[251]なる数値データが復元され、正常処理ビット長P3が「16」であることを示している。 Next, let's look at the decoding process performed by the third decoding processing unit Q3. When the unit Q3 repeats the process of finding a matching identification code while extending the bit string to be matched by one bit at a time, the bit string “10111010” of the first to eighth bits is finally set to the bit length “8”. A corresponding identification code is found as a matching code. The ellipse “10111010” and the circled number “8” shown above in the row of the unit Q3 in the figure indicate that such match recognition is performed. Here, since the bit length “8” is recognized, the subsequent 8-bit bit string “11111011” is extracted as actual data, and the 8-bit data “11111011” is restored. [251] shown on the right side of the row of the unit Q3 in the figure is a decimal notation of the 8-bit data “11111011”. At this time, since no unprocessed bits remain in the third decoding processing unit Q3, the decoding process ends here. In the description of [251] and “P3 = 16” shown on the right side of the row of the unit Q3 in the figure, the numerical data [251] is restored by normal processing, and the normal processing bit length P3 is “16”. It is shown that.
また、第4の復号処理ユニットQ4が行う復号処理は次のとおりである。ユニットQ4は、合致判定対象となるビット列を1ビットずつ伸ばしながら、合致する識別コードを見つける処理を繰り返してゆくと、第1〜5ビット目のビット列「10101」について、ビット長「7」に対応する識別コードが合致するコードとして見つかる。図のユニットQ4の行に示されている楕円「10101」とその上方の丸数字「7」は、このような合致認識が行われることを示している。ここで、ビット長「7」の認識が行われたため、これに後続する7ビットのビット列「1111011」が実データとして取り出され、8ビットのデータ「01111011」が復元される。図のユニットQ4の行の右側に示されている[123]は、この8ビットのデータ「01111011」の10進表記である。 The decoding process performed by the fourth decoding processing unit Q4 is as follows. When the unit Q4 repeats the process of finding a matching identification code while extending the bit string to be matched by one bit at a time, the bit length “10101” of the first to fifth bits corresponds to the bit length “7”. Is found as a matching code. An ellipse “10101” and a circle number “7” above it shown in the row of the unit Q4 in the figure indicate that such match recognition is performed. Here, since the bit length “7” is recognized, the subsequent 7-bit bit string “1111011” is extracted as actual data, and the 8-bit data “011111011” is restored. [123] shown on the right side of the row of the unit Q4 in the figure is a decimal notation of the 8-bit data “011111011”.
第4の復号処理ユニットQ4は、更に復号処理を続行する。すると、第13〜15ビット目のビット列「010」について、ビット長「1」に対応する識別コードが合致するコードとして見つかる。図のユニットQ4の行に示されている楕円「010」とその上方の丸数字「1」は、このような合致認識が行われることを示している。ここで、ビット長「1」の認識が行われたため、これに後続する1ビットのデータ「1」が実データとして取り出され、8ビットのデータ「00000001」が復元される。図のユニットQ4の行の右側の[123]の右に示されている[1]は、この8ビットのデータ「00000001」の10進表記である。この時点で、第4の復号処理ユニットQ4内には未処理のビットは残っていないので、復号処理はここで終了する。図のユニットQ4の行の右端に示されている「P4=16」なる記述は、[123]および[1]なる数値データを復元する処理に関与した正常処理ビットのビット長P4が「16」であることを示している。 The fourth decoding processing unit Q4 further continues the decoding process. Then, the bit string “010” of the 13th to 15th bits is found as a code that matches the identification code corresponding to the bit length “1”. An ellipse “010” and a circle number “1” above the line of the unit Q4 in the figure indicate that such a match recognition is performed. Here, since the bit length “1” is recognized, the 1-bit data “1” subsequent thereto is extracted as actual data, and the 8-bit data “00000001” is restored. [1] shown on the right of [123] on the right side of the row of the unit Q4 in the figure is a decimal notation of the 8-bit data “00000001”. At this point, since no unprocessed bits remain in the fourth decoding processing unit Q4, the decoding processing ends here. In the description “P4 = 16” shown at the right end of the row of the unit Q4 in the figure, the bit length P4 of the normal processing bits involved in the process of restoring the numerical data [123] and [1] is “16”. It is shown that.
この第4の復号処理ユニットQ4による復号処理で留意すべき点は、すべて正常な復号処理が行われ、[123]および[1]なる2つの数値データが復元されたのにもかかわらず、数値データ[123]は、本来、復元されるべきではない数値データである点である。図11の上段に示す符号化データ列は、もともと図1に示す数値データ[28][251][1][13][3]を符号化したものであり、[28][251][1]なる数値データは、本来、復元されるべき数値データであるが、[123]なる数値データは、図1に示す数値データ列には含まれていない。したがって、この図11に示す復号処理プロセスでは、正常処理で得られた数値データであっても、必ずしも復号化すべき数値データとは限らないことになる。もっとも、この[123]のような数値データは、後述するように、最終的なデータ編成段階で採用されないため、問題が生じることはない。 What should be noted in the decoding process by the fourth decoding processing unit Q4 is that all the normal decoding processes have been performed, and the numerical values [123] and [1] have been restored. Data [123] is numerical data that should not be restored. The encoded data sequence shown in the upper part of FIG. 11 is obtained by encoding the numerical data [28] [251] [1] [13] [3] shown in FIG. 1, and [28] [251] [1] ] Is originally numeric data to be restored, but [123] is not included in the numeric data string shown in FIG. Therefore, in the decoding process shown in FIG. 11, even numerical data obtained by normal processing is not necessarily numerical data to be decoded. However, numerical data such as [123] is not adopted in the final data organization stage, as will be described later, so that no problem occurs.
さて、続く第5の復号処理ユニットQ5および第6の復号処理ユニットQ6が行う復号処理では、いつまで経っても、合致する識別コードは見つからず、正常な復号処理は全く行われない。図のユニットQ5,Q6の行の左側に示されている[ERR]および「P5=0」,「P6=0」なる記述は、正常な復号処理は全く行われず、正常処理ビット長P5,P6が「0」であることを示している。 In the subsequent decoding process performed by the fifth decoding processing unit Q5 and the sixth decoding processing unit Q6, no matching identification code is found and no normal decoding process is performed at all. In the description of [ERR] and “P5 = 0” and “P6 = 0” shown on the left side of the rows of the units Q5 and Q6 in the figure, normal decoding processing is not performed at all, and normal processing bit lengths P5 and P6 Is “0”.
次の第7の復号処理ユニットQ7が行う復号処理では、図示のとおり、正常処理により、3つの数値データ[1][13][3]が実データとして取り出される。このときの正常処理ビット長P7は「16」である。そして、最後の第8の復号処理ユニットQ8が行う復号処理では、図示のとおり、正常処理により、2つの数値データ[13][3]が実データとして取り出される。その後、「****」の部分について、復号処理が続行されるが、ここでは、この「****」の部分についての復号処理は、有効なビット列が中断されたために失敗したものとしよう。そのため、図示のとおり[13][3][ERR]なる結果が得られ、このときの正常処理ビット長P8は「12」になる。ここで、数値データ[13][3]は、ユニットQ7,Q8で重複して復元されているが、最終的なデータ編成段階では一方のみが採用されるため、問題が生じることはない。 In the decryption processing performed by the next seventh decryption processing unit Q7, as shown in the figure, three numerical data [1] [13] [3] are extracted as actual data by normal processing. The normal processing bit length P7 at this time is “16”. Then, in the decoding process performed by the last eighth decoding processing unit Q8, as shown in the figure, two numerical data [13] [3] are extracted as actual data by normal processing. Thereafter, the decoding process is continued for the portion “***”, but here, the decoding process for the portion “***” has failed because a valid bit string is interrupted. Try. Therefore, as shown in the figure, the result [13] [3] [ERR] is obtained, and the normal processing bit length P8 at this time is “12”. Here, the numerical data [13] [3] are restored in duplicate in the units Q7 and Q8, but since only one of them is adopted in the final data organization stage, no problem occurs.
結局、この図11を見ると、ユニットQ1には、単位符号データU1の先頭から始まる部分データが与えられ、ユニットQ3には、単位符号データU2の先頭から始まる部分データが与えられ、ユニットQ7には、単位符号データU3の先頭から始まる部分データが与えられ、ユニットQ8には、単位符号データU4の先頭から始まる部分データが与えられる。したがって、これらユニットQ1,Q3,Q7,Q8は、少なくとも当初は、正常な復号処理を行うことができる。これに対して、ユニットQ2,Q5,Q6には、単位符号データの途中から始まる部分データが与えられるため、当初から正常な復号処理を行うことはできず、処理は失敗に終わる。 After all, referring to FIG. 11, the unit Q1 is given partial data starting from the beginning of the unit code data U1, the unit Q3 is given partial data starting from the beginning of the unit code data U2, and the unit Q7 is given Is given partial data starting from the head of the unit code data U3, and the unit Q8 is given partial data starting from the head of the unit code data U4. Accordingly, these units Q1, Q3, Q7, and Q8 can perform normal decoding processing at least initially. On the other hand, since partial data starting from the middle of the unit code data is given to the units Q2, Q5, and Q6, normal decoding processing cannot be performed from the beginning, and the processing ends in failure.
なお、ユニットQ4には、単位符号データの途中から始まる部分データが与えられているにもかかわらず、正常な復号処理が完了している。このように、単位符号データの途中から始まる部分データが与えられた場合にも、偶然、正常な復号処理が完了する場合もあり得る。しかしながら、後述するように、最終的なデータ編成段階において、偶然、正常な復号処理が行われたような場合は、その処理結果が採用されることはないので、問題は生じない。 It should be noted that although the unit Q4 is given partial data starting from the middle of the unit code data, normal decoding processing has been completed. As described above, even when partial data starting from the middle of the unit code data is given, the normal decoding process may be completed by chance. However, as will be described later, in the event that a normal decoding process is accidentally performed in the final data organization stage, the processing result is not adopted, so no problem occurs.
それでは、最終的なデータ編成段階の処理を説明しよう。このデータ編成段階の処理の基本的な考え方は、まず第1の復号処理ユニットQ1を最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集することにより復号化データ列を生成するというものである。 Now let's explain the final data organization process. The basic idea of the data organization stage processing is to first determine the first decoding processing unit Q1 as the first selection unit, recognize the final bit that has been normally decoded by this selection unit, and The process of continuing as much as possible the process of determining another unit to which the partial data with the bit immediately after the bit as the first bit was distributed as the new adopted unit was performed, and decoding was performed normally in each adopted unit The decrypted data string is generated by collecting numerical data.
これを上述した具体例に即して説明しよう。図12は、図11に示す復号処理プロセスの図に、正常処理端線Z0〜Z3を付加したものである。この正常処理端線Z0〜Z3は、正常な復号処理が行われたビット列の端部を示すものであり、その位置は、正常処理ビット長P1〜P8に基づいて決定することができる。 This will be described with reference to the specific example described above. FIG. 12 is obtained by adding normal processing end lines Z0 to Z3 to the diagram of the decoding processing process shown in FIG. The normal processing end lines Z0 to Z3 indicate end portions of the bit string on which normal decoding processing has been performed, and the positions thereof can be determined based on the normal processing bit lengths P1 to P8.
まず、ユニットQ1を最初の採択ユニットとして決定し、当該採択ユニットQ1の先頭位置に、正常処理端線Z0を引く。次に、この採択ユニットQ1についての正常処理ビット長P1=8を参照して、正常処理端線Z0から8ビット目(P1ビット目)の位置に、正常処理端線Z1を引く。そして、この正常処理端線Z1を先頭位置とする別なユニットQ3を新たな採択ユニットと決定し、この採択ユニットQ3についての正常処理ビット長P3=16を参照して、正常処理端線Z1から16ビット目(P3ビット目)の位置に、正常処理端線Z2を引く。更に、この正常処理端線Z2を先頭位置とする別なユニットQ7を新たな採択ユニットと決定し、この採択ユニットQ7についての正常処理ビット長P7=16を参照して、正常処理端線Z2から16ビット目(P7ビット目)の位置に、正常処理端線Z3を引く。 First, the unit Q1 is determined as the first adopted unit, and the normal processing end line Z0 is drawn at the head position of the adopted unit Q1. Next, with reference to the normal processing bit length P1 = 8 for the selected unit Q1, the normal processing end line Z1 is drawn at the eighth bit (P1 bit) position from the normal processing end line Z0. Then, another unit Q3 having the normal processing end line Z1 as the head position is determined as a new selection unit, and the normal processing bit length P3 = 16 for the selection unit Q3 is referred to, and the normal processing end line Z1 A normal processing end line Z2 is drawn at the position of the 16th bit (P3th bit). Further, another unit Q7 having the normal processing end line Z2 as the head position is determined as a new selection unit, and the normal processing bit length P7 = 16 for the selection unit Q7 is referred to, and the normal processing end line Z2 A normal processing end line Z3 is drawn at the position of the 16th bit (P7th bit).
このようにすれば、ユニットQ1,Q3,Q7の3台が採択ユニットとなる。図13は、この3台の採択ユニットQ1,Q3,Q7における正常処理ビットの部分を太枠で囲って示した図である。この太枠で囲った正常処理ビットの部分に着目すると、それぞれ正常処理端線Z0〜Z1の区間、正常処理端線Z1〜Z2の区間、正常処理端線Z2〜Z3の区間となり、互いに連続した区間になる。したがって、これら3台の採択ユニットQ1,Q3,Q7による正常な復号処理によって得られた数値データを収集すれば、本来復元されるべき数値データ列が得られる。すなわち、図13に示すように、これら採択ユニットQ1,Q3,Q7によって復元された数値データを収集して並べれば、[28][251][1][13][3]となり、図1に示す元の数値データ列に一致する。 In this way, the units Q1, Q3, and Q7 are the adopted units. FIG. 13 is a diagram showing the normal processing bit portions in the three adopted units Q1, Q3, and Q7 surrounded by a thick frame. Focusing on the portion of the normal processing bit surrounded by the thick frame, it becomes a section of normal processing end lines Z0 to Z1, a section of normal processing end lines Z1 to Z2, and a section of normal processing end lines Z2 to Z3, which are continuous with each other. It becomes a section. Therefore, if the numerical data obtained by the normal decoding process by these three adopted units Q1, Q3, and Q7 are collected, the numerical data string that should be restored can be obtained. That is, as shown in FIG. 13, if the numerical data restored by these adopted units Q1, Q3, and Q7 are collected and arranged, [28] [251] [1] [13] [3] are obtained. Matches the original numeric data string shown.
図12に示す例では、ユニットQ4によって[123][1]なる数値データが復元され、ユニットQ8によって[13][3]なる数値データが復元されているが、ユニットQ4,Q8は、採択ユニットにはならないため、これらの数値データは、何ら利用されないまま捨てられることになる。したがって、この場合、ユニットQ4,Q8は無駄な処理を行ったことになるが、並列処理による復号化時間の短縮というメリットを享受する上で貢献したことになる。 In the example shown in FIG. 12, the numerical data [123] [1] is restored by the unit Q4 and the numerical data [13] [3] is restored by the unit Q8, but the units Q4 and Q8 are the selected units. Therefore, these numerical data are discarded without being used at all. Therefore, in this case, the units Q4 and Q8 have performed useless processing, but contributed to enjoy the merit of shortening the decoding time by parallel processing.
結局、上述した復号処理プロセスでは、実際には、8台のユニットQ1〜Q8のすべてが並列的に復号処理を行うことになるが、図13の上段に示す符号化データ列について、単位符号データU1の部分(実際には、後続する単位符号データU2の一部を含む)をユニットQ1に与え、単位符号データU2の部分をユニットQ3に与え、単位符号データU3,U4,U5の部分をユニットQ7に与え、この3台の復号処理ユニットによる並列処理によって、単位符号データU1〜U5の復号化を行ったことと同じである。 In the end, in the decoding process described above, actually, all of the eight units Q1 to Q8 perform the decoding process in parallel. However, the unit code data for the encoded data string shown in the upper part of FIG. The portion U1 (in fact, including part of the subsequent unit code data U2) is given to the unit Q1, the portion of the unit code data U2 is given to the unit Q3, and the portions of the unit code data U3, U4, U5 are Q7 is the same as the decoding of the unit code data U1 to U5 by the parallel processing by these three decoding processing units.
こうして、8台のユニットQ1〜Q8の1回目の並列処理により、単位符号データU1〜U5の復号化が完了する。すなわち、この1回目の並列処理により、図13の上段に示す符号化データ列のうちのブロックB1〜B10の部分についての復号化が完了したことになる。そこで、2回目の並列処理では、符号化データ列の未復号化部の先頭、すなわち、ブロックB11の先頭から、1回目の並列処理と全く同じことを繰り返せばよい。このようにして、並列処理を繰り返し実行してゆけば、符号化データ列を構成する各ブロックを順番に復号化してゆくことができる。 Thus, decoding of the unit code data U1 to U5 is completed by the first parallel processing of the eight units Q1 to Q8. That is, the first parallel processing completes the decoding of the blocks B1 to B10 in the encoded data string shown in the upper part of FIG. Therefore, in the second parallel processing, the same process as the first parallel processing may be repeated from the beginning of the undecoded portion of the encoded data string, that is, the beginning of the block B11. In this way, if the parallel processing is repeatedly executed, each block constituting the encoded data string can be sequentially decoded.
なお、上述した実施形態では、基準ビット長Nを4に設定した例を示したが、基準ビット長Nは2以上の整数であれば、任意の整数であってかまわない。また、各復号処理ユニットQ1〜Q8は、いずれも単位符号データUの最大ビット長Umaxに相当する16ビットの連続ビットデータを収容し、復号処理を実行する機能を有しているが、一般に、それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を行う機能を有する復号処理ユニットを用いればよい。したがって、たとえば、最大ビット長Umax=16ビットである場合に、L=20ビットとし、20ビットの連続ビットデータを収容し、復号処理を実行する機能を有するユニットを用いてもかまわない。 In the above-described embodiment, an example in which the reference bit length N is set to 4 has been described. However, the reference bit length N may be an arbitrary integer as long as it is an integer of 2 or more. Each of the decoding processing units Q1 to Q8 has a function of accommodating 16-bit continuous bit data corresponding to the maximum bit length Umax of the unit code data U and executing a decoding process. A decoding processing unit having a function of performing decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax) may be used. Therefore, for example, when the maximum bit length Umax = 16 bits, a unit having a function of setting L = 20 bits, accommodating 20-bit continuous bit data, and executing a decoding process may be used.
更に、上述した実施形態では、8台の復号処理ユニットQ1〜Q8を用いた並列処理の例を示したが、用いる復号処理ユニットの台数Mは、必ずしもM=8に設定する必要はなく、たとえば、M=7のような素数に設定しても問題はない。ただ、並列処理による復号化の時間短縮効果が必ず得られるようにするには、M≧1+L/Nとなるような複数M台の復号処理ユニットを用いるのが好ましい。そうすれば、1回の並列処理において、必ず2つ以上の単位符号データの正常な復号処理を行うことができるので、並列処理の効果が毎回必ず得られるようになる。 Furthermore, in the above-described embodiment, an example of parallel processing using eight decoding processing units Q1 to Q8 has been shown. However, the number M of decoding processing units to be used is not necessarily set to M = 8. , Even if a prime number such as M = 7 is set, there is no problem. However, it is preferable to use a plurality of M decoding processing units such that M ≧ 1 + L / N in order to ensure that the decoding time reduction effect by parallel processing is obtained. If it does so, since the normal decoding process of two or more unit code data can always be performed in one parallel processing, the effect of parallel processing will certainly be acquired each time.
<<< §5.本発明に係る符号化方法の基本手順 >>>
続いて、本発明に係る符号化方法の基本手順を流れ図を参照しながら説明する。図14は、本発明に係る数値データ列の符号化方法の基本手順を示す流れ図である。この手順を構成する各ステップは、実際には、コンピュータや集積回路などの演算処理装置によって実行される。
<<< §5. Basic procedure of encoding method according to the present invention >>
Next, the basic procedure of the encoding method according to the present invention will be described with reference to a flowchart. FIG. 14 is a flowchart showing the basic procedure of the numerical data string encoding method according to the present invention. Each step constituting this procedure is actually executed by an arithmetic processing unit such as a computer or an integrated circuit.
まず、ステップS11のデータ入力段階では、符号化の対象となる数値データ列を演算処理装置に入力する処理が行われる。このステップS11で入力される数値データ列は、たとえば、図2に示すような固定長ビットで表現されたデータ列であり、ここで行う符号化処理の目的は、この固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化することにある。 First, in the data input stage of step S11, a process of inputting a numerical data string to be encoded to the arithmetic processing unit is performed. The numeric data string input in step S11 is, for example, a data string represented by fixed-length bits as shown in FIG. 2, and the purpose of the encoding process performed here is numeric data consisting of these fixed-length bits. The sequence is to encode the sequence using a variable-length bit sequence.
一方、ステップS12のテーブル入力段階では、個々のビット長に対応する固有の識別コードを示す符号化テーブルを演算処理装置に入力する処理が行われる。このステップS12で入力される符号化テーブルは、図9(b) に示すように、実データを表現するのに十分な所定範囲内の複数通りのビット長b(図示の例では、0〜8)について、個々のビット長bと、当該ビット長bに対応する固有の識別コードCと、の対応関係を示す可変長符号化テーブルであり、次の2つの条件を満たしている。 On the other hand, in the table input stage of step S12, processing for inputting an encoding table indicating a unique identification code corresponding to each bit length to the arithmetic processing unit is performed. As shown in FIG. 9B, the encoding table input in step S12 has a plurality of bit lengths b (0 to 8 in the illustrated example) within a predetermined range sufficient to represent actual data. ) Is a variable-length coding table showing the correspondence between individual bit lengths b and unique identification codes C corresponding to the bit lengths b, and satisfies the following two conditions.
第1の条件は、可変長の識別コードCを認識可能にするために必要な条件であり、「このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない」という条件である。このような条件を満たす識別コード群を用いれば、§1で述べたように、復号化を行う際に、先頭から1ビットずつ比較してゆく合致判定処理が可能になる。 The first condition is a condition necessary to make the variable-length identification code C recognizable. “When focusing on any identification code in this table, the bit length of the target identification code itself is set. The condition is that there is no other identification code in the table in which the a-bit portion from the beginning is the same as the target identification code when a is set. If an identification code group satisfying such a condition is used, as described in §1, it is possible to perform a match determination process in which one bit is compared from the head when decoding is performed.
第2の条件は、本発明に特有の条件であり、「このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して『a+b=k×N』(但し、kは任意の整数)である。」という条件である。この第2の条件を満足する識別コード群を用いれば、復号化を行う際に、複数台の復号処理ユニットを用いた並列処理が可能になる点は、既に§4で実例を挙げて説明したとおりである。
The second condition is a condition peculiar to the present invention. “When any identification code in this table is focused, when the bit length corresponding to the targeted identification code is b, a predetermined criterion is set. The condition is “a + b = k × N” (where k is an arbitrary integer) for a bit length N (where N is an integer of 2 or more). The fact that using the identification code group that satisfies the second condition enables parallel processing using a plurality of decoding processing units when performing decoding has already been described in
こうして、符号化の対象となる数値データ列と、符号化に利用する符号化テーブルとが用意できたら、ステップS13〜S17によって、実際の符号化処理が実行される。 Thus, when the numerical data string to be encoded and the encoding table used for encoding are prepared, actual encoding processing is executed in steps S13 to S17.
まず、ステップS13のデータ抽出段階において、入力した数値データ列から個々の数値データを順番に抽出する処理が行われる。たとえば、図2に示す例の場合、固定長ビットからなる数値データD1,D2,D3,... が1つずつ順に抽出される。すなわち、最初は、数値「28」を示す8ビットの固定長ビット列D1「00011100」が抽出される。 First, in the data extraction stage of step S13, a process of sequentially extracting individual numerical data from the input numerical data string is performed. For example, in the example shown in FIG. 2, numerical data D1, D2, D3,... Consisting of fixed-length bits are extracted one by one in order. In other words, an 8-bit fixed-length bit string D1 “00011100” indicating the numerical value “28” is extracted first.
次の実データ生成段階S14では、抽出した数値データから冗長なビットを削除することにより、実データを生成する処理が行われる。上例の場合、固定長ビット列D1「00011100」の先頭の0を削除する処理が行われ、「11100」なる実データが生成される。図2に示す8ビットの固定長ビット列D1,D2,D3,... について作成された実データは、図3に示すような可変長ビット列になる。いずれも各数値データを構成するビット列から、先頭の0を削除する処理が行われている。この図3に示す可変長ビット列を見ると、いずれも先頭のビットが1になっており、不要な0が削除されていることがわかる。 In the next actual data generation step S14, processing for generating actual data is performed by deleting redundant bits from the extracted numerical data. In the case of the above example, the process of deleting the leading zero of the fixed-length bit string D1 “00011100” is performed, and actual data “11100” is generated. The actual data created for the 8-bit fixed-length bit strings D1, D2, D3,... Shown in FIG. 2 is a variable-length bit string as shown in FIG. In any case, a process of deleting leading zeros from the bit string constituting each numerical data is performed. Looking at the variable-length bit strings shown in FIG. 3, it can be seen that the first bit is 1 and unnecessary 0 is deleted.
なお、0を示す数値データ(8ビットの固定長ビット列「00000000」)の取り扱い方には、一般に2通りの方法がある。第1の方法は、数値0を、可変長のビット「0」で表現する方法である。この場合、固定長ビット列「00000000」なる数値データに対して、可変長ビット「0」なる1ビットの実データが生成されることになる。このように、数値0に対しても1ビットの実データが作成されるので、可変長符号化テーブルとしては、図7(b) に示す例のように、ビット長bの最小値が「1」であるテーブルを用いれば十分である。なお、後述するように、本発明では負の値を取り扱うことも可能であり、負の値を「1の補数」を用いて表現する場合には、以下に述べる第2の方法を用いる必要がある。
In general, there are two methods for handling numeric data indicating 0 (8-bit fixed-length bit string “00000000”). The first method is a method of expressing the
第2の方法は、数値0を、長さ0ビットの仮想ビットによって表現する方法である。この場合、固定長ビット列「00000000」なる数値データに対して、長さ0ビットの可変長ビット「」なる実データが生成されることになる。すなわち、この場合の実データは、実質的なビットを有しておらず、実際には、実データの部分には何らビットを配置しないことになる。この場合、実データは、ビット長が0である仮想のビット列ということになり、単位符号データUは、実質的に、識別コードCを構成するビット列のみによって構成される。このように、数値0に対して長さ0ビットの実データが作成されるので、可変長符号化テーブルとしては、図9(b) に示す例のように、ビット長bの最小値が「0」であるテーブルを用いる必要がある。
The second method is a method of expressing the
データ容量をできるだけ削減するという観点からは、上述した第2の方法が好ましい。また、これまで述べてきた実施例は、いずれも符号化の対象となる数値データが、正の値を示すデータであるという前提の実施例であったが、実用上は、負の値を示すデータを取り扱うことも可能である。一般的な固定長ビット列による2進表現形式では、値「0」は「00000000」のようにビット0を並べて表現し、正の値「2」は「00000010」のように実データの先頭に0を詰めて表現し、負の値「−2」は「11111101」(1の補数表現の場合)のように実データの先頭に1を詰めて表現する。
From the viewpoint of reducing the data capacity as much as possible, the second method described above is preferable. In addition, the embodiments described so far are embodiments on the premise that the numerical data to be encoded is data indicating a positive value, but in practice it indicates a negative value. It is also possible to handle data. In a binary representation format using a general fixed-length bit string, the value “0” is expressed by arranging
したがって、正負の数値が混在する符号付きの数値データを取り扱う場合、値「0」については全ビットを冗長ビットとし、正の値については、先頭に連続して付されているビット「0」を冗長ビットとし、負の値については、先頭に連続して付されているビット「1」を冗長ビットとし、これら冗長ビットを削除することにより実データを生成することができる。すなわち、ステップS14では、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を、それぞれ生成する処理を行えばよい。 Therefore, when handling signed numeric data in which positive and negative numeric values are mixed, all bits are redundant bits for the value “0”, and the bit “0” that is consecutively added to the positive value is assigned to the positive value. Redundant bits are used, and for negative values, real data can be generated by setting bit “1” consecutively added to the head as redundant bits and deleting these redundant bits. That is, in step S14, as actual data indicating the extracted numerical data, when the numerical data is data indicating 0, a virtual bit string having a bit length of 0 is used as data indicating a positive value. May generate a variable-length bit string that does not include 0 at the beginning, and a variable-length bit string that does not include 1 at the beginning if the data indicates a negative value.
続くステップS15の識別コード選択段階では、ステップS12で入力した符号化テーブルを参照して、ステップS14で生成された実データのビット長bに対応する識別コードCを選択する処理が行われる。たとえば、図9(a) に示す例の場合、ステップS14において作成された実データD1「11100」のビット長b(図では、丸数字「5」で示されている)に対応する識別コードC1「011」が、図9(b) に示す符号化テーブルから選択される。 In the identification code selection stage in step S15, a process for selecting the identification code C corresponding to the bit length b of the actual data generated in step S14 is performed with reference to the encoding table input in step S12. For example, in the example shown in FIG. 9A, the identification code C1 corresponding to the bit length b (indicated by the circled number “5” in the figure) of the actual data D1 “11100” created in step S14. “011” is selected from the encoding table shown in FIG.
そして、ステップS16の単位符号データ生成段階では、ステップS14で生成された実データの先頭に、ステップS15で選択された識別コードを付加することにより、抽出した数値データを示す単位符号データが生成される。上例の場合、実データD1「11100」の先頭に、識別コードC1「011」が付加され、図9(c) に示すように、単位符号データU1「01111100」が生成されることになる。 Then, in the unit code data generation stage of step S16, unit code data indicating the extracted numerical data is generated by adding the identification code selected in step S15 to the head of the actual data generated in step S14. The In the above example, the identification code C1 “011” is added to the head of the actual data D1 “11100”, and the unit code data U1 “01111100” is generated as shown in FIG. 9C.
続くステップS17では、全データについての処理が完了するまで、ステップS13からの処理へ戻る繰り返し処理が実行される。すなわち、上述したデータ抽出段階S13、実データ生成段階S14、識別コード選択段階S15、単位符号データ生成段階S16が、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行される。これにより、図9(c) に示すような単位符号データU1,U2,U3,U4,U5,... が順番に生成されてゆくことになる。 In the subsequent step S17, a repetitive process for returning to the process from step S13 is executed until the process for all data is completed. That is, the above-described data extraction step S13, actual data generation step S14, identification code selection step S15, and unit code data generation step S16 are repeatedly executed for each of the numerical data constituting the input numerical data string. As a result, unit code data U1, U2, U3, U4, U5,... As shown in FIG.
最後のステップS18では、生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力段階が行われる。これにより、図9(c) に示すような単位符号データU1,U2,U3,U4,U5,...を並べたデータ列が、符号化データ列として出力されることになる。 In the final step S18, a data output stage is performed in which the generated unit code data are arranged in order and output as an encoded data string. As a result, a data string in which unit code data U1, U2, U3, U4, U5,... Are arranged as shown in FIG. 9C is output as an encoded data string.
このステップS18のデータ出力段階では、符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルを出力するのが好ましい。図15は、このデータ出力段階で作成される符号化データファイルFの構造の一例を示すブロック図である。画像データなどの一般的なデータファイルは、図示のとおり、ヘッダ部F1、本体部F2、フッタ部F3によって構成されている。ここで、本体部F2には、符号化データファイルFに収容すべき本来のデータ、すなわち、図9(c) に示すような単位符号データU1,U2,U3,U4,U5,...を並べて構成される符号化データ列が組み込まれる。 In the data output stage of step S18, it is preferable to output a data file including the encoded data string and the encoding table used for the encoding process. FIG. 15 is a block diagram showing an example of the structure of the encoded data file F created at this data output stage. A general data file such as image data includes a header part F1, a main body part F2, and a footer part F3 as shown in the figure. Here, the original data to be accommodated in the encoded data file F, that is, unit code data U1, U2, U3, U4, U5,... As shown in FIG. An encoded data string configured side by side is incorporated.
これに対して、ヘッダ部F1には、通常、本体部F2に組み込まれているデータの形式、フォーマット、容量などを示す補助的な情報が組み込まれる。図15に示す実施例では、このヘッダ部F1に、符号化の処理に用いた符号化テーブルTを組み込んでいる。そうすれば、後述する復号化を行う際に、このヘッダ部F1に組み込まれた符号化テーブルTをそのまま利用することが可能になる。もちろん、符号化テーブルTは、フッタ部F3に組み込むようにしてもよい。なお、図15では、各単位符号データU1,U2,...は、いずれも同じ幅のブロックで示されているが、実際には、それぞれのデータ長は異なっている(但し、いずれも所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるような長さ)。 On the other hand, auxiliary information indicating the format, format, capacity, etc. of data incorporated in the main body F2 is usually incorporated in the header part F1. In the embodiment shown in FIG. 15, the encoding part T used for the encoding process is incorporated in the header part F1. By doing so, it is possible to use the encoding table T incorporated in the header part F1 as it is when performing decoding to be described later. Of course, the encoding table T may be incorporated in the footer part F3. In FIG. 15, each of the unit code data U1, U2,... Is shown as a block having the same width, but actually, the data lengths thereof are different (however, both are predetermined). The reference bit length N (where N is an integer multiple of 2 or more)).
結局、図15に示す符号化データファイルFは、所定のビット長bを示す識別コードCに後続して当該ビット長bをもつビット列からなる実データDを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された、互いに長さの異なる複数通りの単位符号データU(最大ビット長Umax)を、並べることにより構成されるビット羅列データと、個々の識別コードCに対応する特定のビット長bを示す符号化テーブルTと、を含むデータファイルということになり、当該データファイルFは、コンピュータ読み取り可能な情報記録媒体に記録して配布することができる。 After all, the encoded data file F shown in FIG. 15 is data in which actual data D consisting of a bit string having the bit length b is arranged following the identification code C indicating the predetermined bit length b, and the total length is predetermined. Are arranged by arranging a plurality of unit code data U (maximum bit length Umax) having different lengths set to be an integral multiple of a reference bit length N (where N is an integer of 2 or more). The data file includes a bit sequence data to be processed and a coding table T indicating a specific bit length b corresponding to each identification code C. The data file F is a computer-readable information recording medium. Can be recorded and distributed.
また、このデータファイルFに含まれている符号化テーブルTは、数値データ列を可変長のビット列を用いて符号化する符号化方法に用いるテーブルであって、所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係が示されており、このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルということになる。 The encoding table T included in the data file F is a table used for an encoding method for encoding a numeric data string using a variable-length bit string, and has a plurality of bit lengths within a predetermined range. The correspondence relationship between individual bit lengths and unique identification codes corresponding to the bit lengths is shown. When any one of the identification codes in the table is focused, When the bit length is a, there is no other identification code in the table in which the portion of a bits from the beginning is the same as the target identification code, and the bit length corresponding to the target identification code Is a table that satisfies the condition of “a + b = k × N” (where k is an arbitrary integer) for a predetermined reference bit length N (where N is an integer of 2 or more). To become.
一方、図16は、符号化データファイルFの構造の別な一例を示すブロック図である。ステップS18のデータ出力段階では、この図16に示す例のように、符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルFを出力するようにしてもよい。 FIG. 16 is a block diagram showing another example of the structure of the encoded data file F. In the data output stage of step S18, as in the example shown in FIG. 16, a data file F including an encoded data string and table specifying information for specifying an encoding table used for encoding processing is output. You may do it.
図15に示すファイルFと図16に示すファイルFとの相違は、後者では、ヘッダ部F1に、符号化テーブルT自身を組み込む代わりに、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報Hを組み込むようにした点である。テーブル特定情報Hは、符号化テーブルそれ自身ではないが、符号化テーブルを特定するためのファイル名や、URLなどの情報であり、復号化を行う際に、このテーブル特定情報Hを用いて、復号化に必要な符号化テーブルを入手できるようにするための情報である。 The difference between the file F shown in FIG. 15 and the file F shown in FIG. 16 is that the latter specifies a coding table used for coding processing instead of incorporating the coding table T itself into the header part F1. The specific information H is incorporated. The table specifying information H is not the encoding table itself, but is information such as a file name and URL for specifying the encoding table. When performing the decoding, the table specifying information H is used to This is information for making it possible to obtain an encoding table necessary for decoding.
たとえば、図示の例の場合、4種類の符号化テーブルT1〜T4が別ファイルなどによって用意されており、これらのテーブルのどれかを特定する情報が、テーブル特定情報Hとしてヘッダ部F1に組み込まれることになる。具体的には、たとえば、テーブルT3が符号化に用いられたテーブルであるとすると、当該テーブルT3のファイル名や、当該テーブルT3の入手先を示すURLなどの情報が、テーブル特定情報Hとしてヘッダ部F1に組み込まれる。復号化を行う際には、このテーブル特定情報Hを利用して、必要な符号化テーブルを入手することができる。 For example, in the example shown in the figure, four types of encoding tables T1 to T4 are prepared as separate files, and information for specifying any of these tables is incorporated into the header part F1 as table specification information H. It will be. Specifically, for example, if the table T3 is a table used for encoding, information such as the file name of the table T3 and the URL indicating the acquisition location of the table T3 is used as the table specifying information H as a header. It is incorporated in the part F1. When decoding is performed, a necessary encoding table can be obtained using this table specifying information H.
結局、図16に示す符号化データファイルFは、所定のビット長を示す識別コードCに後続して当該ビット長bをもつビット列からなる実データDを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された、互いに長さの異なる複数通りの単位符号データU(最大ビット長Umax)を、並べることにより構成されるビット羅列データと、個々の識別コードCに対応する特定のビット長bを示す符号化テーブルTを特定するテーブル特定情報Hと、を含むデータファイルということになり、当該データファイルは、コンピュータ読み取り可能な情報記録媒体に記録して配布することができる。 After all, the encoded data file F shown in FIG. 16 is data in which real data D consisting of a bit string having the bit length b is arranged after the identification code C indicating the predetermined bit length, and the total length is predetermined. It is configured by arranging a plurality of unit code data U (maximum bit length Umax) having different lengths set to be an integral multiple of the reference bit length N (where N is an integer of 2 or more). And a table specifying information H for specifying a coding table T indicating a specific bit length b corresponding to each identification code C. The data file is read by a computer. It can be recorded and distributed on possible information recording media.
なお、§3でも述べたとおり、実用上は、ステップS12で入力する符号化テーブルとして、図8(b) に示す例のように、実データのビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられているハフマン符号化テーブルを用いるようにするのが好ましい。このようなハフマン符号化テーブルは、§3で述べたとおり、図9(b) に示す符号化テーブルについて、対応するビット長bの差がNの整数倍となるような2つの識別コードを入れ替える作業を行うことにより作成することができる。 As described in §3, as the coding table input in step S12 is practically shorter as the frequency of appearance of the bit length b of the actual data is higher as in the example shown in FIG. It is preferable to use a Huffman coding table associated with an identification code having a bit length a. Such a Huffman coding table replaces two identification codes such that the difference in the corresponding bit length b is an integer multiple of N in the coding table shown in FIG. It can be created by performing work.
そのためには、ステップS11のデータ入力段階の後に、入力した数値データ列について、実データのビット長bの出現頻度を集計する頻度集計段階を行うようにし、ステップS12のテーブル入力段階の後に、入力した既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成するテーブル修正段階を行うようにし、ステップS15の識別コード選択段階で、この修正した符号化テーブルを参照して、識別コードの選択を行うようにすればよい。 For this purpose, after the data input stage of step S11, a frequency counting stage for counting the appearance frequency of the bit length b of the actual data is performed on the input numerical data string, and the input is performed after the table input stage of step S12. In the existing standard coding table, the bit length b having a difference that is an integral multiple of the reference bit length N is subjected to a process of exchanging the contents of the table, so that the appearance frequency of the bit length b of the actual data increases. Then, a table correction stage for generating a corrected encoding table associated with an identification code having a shorter bit length a is performed, and the corrected encoding table is referred to in the identification code selection stage of step S15. Thus, the identification code may be selected.
<<< §6.本発明に係る復号化方法の基本手順 >>>
続いて、本発明に係る復号化方法の基本手順を流れ図を参照しながら説明する。図17は、本発明に係る数値データ列の復号化方法の基本手順を示す流れ図である。この手順を構成する各ステップは、実際には、コンピュータや集積回路などの演算処理装置によって実行される。
<<< §6. Basic procedure of decoding method according to the present invention >>
Next, the basic procedure of the decoding method according to the present invention will be described with reference to a flowchart. FIG. 17 is a flowchart showing the basic procedure of the numerical data string decoding method according to the present invention. Each step constituting this procedure is actually executed by an arithmetic processing unit such as a computer or an integrated circuit.
ここで述べる復号化方法は、§5で述べた符号化方法によって符号化された符号化データ列、すなわち、「所定のビット長bを示す識別コードCに後続して、当該ビット長bをもつビット列からなる実データDを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データU(最大ビット長Umax)」を、複数組並べることにより構成された符号化データ列、を復号処理の対象とするものであり、個々の実データに対応する数値データを復元することを目的とするものである。 The decoding method described here is the encoded data string encoded by the encoding method described in §5, that is, “the identification code C indicating the predetermined bit length b is followed by the bit length b. Unit code data U (maximum bit length) that is real data D consisting of a bit string, and whose total length is an integer multiple of a predetermined reference bit length N (where N is an integer of 2 or more) Umax) ”is an object of decoding processing, and an object is to restore numerical data corresponding to individual actual data.
この復号化方法の基本原理は、既に§4で説明したとおり、符号化データ列をNビットの整数倍の単位で分割して複数の部分データを生成し、各部分データを複数M台の復号処理ユニットに分配し、この複数M台の復号処理ユニットの並列処理により、分配された部分データに対する復号処理を行い、正常に復号化が行われた数値データを並べることにより復号化データ列を生成する、というものである。 The basic principle of this decoding method is that, as already described in §4, the encoded data string is divided into integer multiples of N bits to generate a plurality of partial data, and each partial data is decoded into a plurality of M units. Distribute to the processing units, perform decoding processing on the distributed partial data by parallel processing of the plurality of M decoding processing units, and generate a decoded data string by arranging numerical data that has been normally decoded Is to do.
まず、ステップS21のデータ入力段階では、復号化の対象となる符号化データ列を、複数M台の復号処理ユニットを含む演算処理装置に入力する処理が行われる。具体的には、たとえば、図9(c) に示すような可変長ビットで表現された符号化データ列が入力されることになる。 First, in the data input stage of step S21, a process of inputting an encoded data string to be decoded into an arithmetic processing device including a plurality of M decoding processing units is performed. Specifically, for example, an encoded data string expressed by variable length bits as shown in FIG. 9C is input.
一方、ステップS22のテーブル入力段階では、個々の識別コードに対応する特定のビット長を示す符号化テーブルを演算処理装置に入力する処理が行われる。ここで入力する符号化テーブルは、当然ながら、ステップS21で入力した符号化データ列を作成する符号化処理の段階で用いられたテーブルと実質的な内容が同一のテーブルである必要がある。したがって、実用上は、図15に示すように、符号化の処理に用いた符号化テーブルTが組み込まれた符号化データファイルFか、図16に示すように、符号化の処理に用いた符号化テーブルTを特定するテーブル特定情報Hが組み込まれた符号化データファイルFを利用して、符号化データ列を保存しておき、復号化を行う際には、この符号化データファイルFによって、符号化データ列とともに、その復号化に用いる符号化テーブルの情報を引き渡せるようにしておくのが好ましい。 On the other hand, in the table input stage of step S22, processing for inputting an encoding table indicating a specific bit length corresponding to each identification code to the arithmetic processing unit is performed. Of course, the encoding table input here needs to be substantially the same as the table used in the encoding processing stage for generating the encoded data string input in step S21. Therefore, practically, as shown in FIG. 15, the encoded data file F in which the encoding table T used for the encoding process is incorporated or the code used for the encoding process as shown in FIG. The encoded data string is stored using the encoded data file F in which the table specifying information H for specifying the encoding table T is incorporated, and when the decoding is performed, the encoded data file F It is preferable to be able to hand over the information of the encoding table used for the decoding together with the encoded data string.
たとえば、図15に示すように、符号化データ列と、符号化の処理に用いた符号化テーブルTと、を含むデータファイルFが与えられたときには、データ入力段階S21において、当該データファイルFから符号化データ列を抽出する処理を行い、テーブル入力段階S22において、当該データファイルFから符号化テーブルTを抽出する処理を行えばよい。また、図16に示すように、符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報Hと、を含むデータファイルが与えられたときには、データ入力段階S21において、当該データファイルFから符号化データ列を抽出する処理を行い、テーブル入力段階S22において、データファイルFからテーブル特定情報Hを抽出する処理を行った後、当該テーブル特定情報Hによって特定されるテーブルを選択して利用すればよい。 For example, as shown in FIG. 15, when a data file F including an encoded data string and an encoding table T used for the encoding process is given, in the data input step S21, from the data file F The process of extracting the encoded data string is performed, and the process of extracting the encoding table T from the data file F may be performed in the table input step S22. Further, as shown in FIG. 16, when a data file including an encoded data string and table specifying information H for specifying an encoding table used for encoding processing is given, in the data input stage S21, A process of extracting the encoded data string from the data file F is performed, and after the process of extracting the table specifying information H from the data file F in the table input step S22, a table specified by the table specifying information H is obtained. Select and use.
続くステップS23のデータ分配段階では、それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を行う機能を有する複数M台の復号処理ユニットに対して、ステップS21で入力した符号化データ列の一部を部分データとして分配する処理が行われる。図10に示した実施形態は、N=4,L=16,Umax =16,M=8に設定した例であり、それぞれ16ビットの連続ビットデータに対する復号処理を行う機能を有する8台の復号処理ユニットQ1〜Q8に対して、ステップS21で入力した符号化データ列の一部を部分データとして分配する処理が行われる。 In the subsequent data distribution stage of step S23, a plurality of M decoding processing units each having a function of performing decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax). Then, a process of distributing a part of the encoded data string input in step S21 as partial data is performed. The embodiment shown in FIG. 10 is an example in which N = 4, L = 16, Umax = 16, and M = 8, and each of the eight decoding units having a function of performing decoding processing on 16-bit continuous bit data. For the processing units Q1 to Q8, processing for distributing a part of the encoded data string input in step S21 as partial data is performed.
この分配段階の処理を一般論として記述すると、符号化データ列の未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理ということになる。図10に示した実施形態の場合、N=4,L=16,M=8であるから、符号化データ列の未復号化部の先頭から数えて第(4×(i−1)+1)ビット目〜第(4×(i−1)+16)ビット目までのビット列を、第i番目のユニット(i=1〜8)に分配する処理ということになる。たとえば、第1の復号処理ユニットQ1に分配されるビット列は、i=1として、符号化データ列の未復号化部の先頭から数えて第1ビット目〜第16ビット目までのビット列になり、第2の復号処理ユニットQ2に分配されるビット列は、i=2として、符号化データ列の未復号化部の先頭から数えて第5ビット目〜第20ビット目までのビット列になる。 When this distribution stage process is described in general terms, the (N × (i−1) +1) -th bit to (N × (i−1) + L) counting from the beginning of the undecoded portion of the encoded data string. ) This is a process of distributing the bit string up to the bit to the i-th unit (i = 1 to M). In the case of the embodiment shown in FIG. 10, since N = 4, L = 16, and M = 8, the (4 × (i−1) +1) th counted from the head of the undecoded portion of the encoded data string. This is a process of distributing the bit string from the bit number to the (4 × (i−1) +16) th bit to the i-th unit (i = 1 to 8). For example, the bit string distributed to the first decoding processing unit Q1 is a bit string from the first bit to the 16th bit, counting from the beginning of the undecoded portion of the encoded data sequence, with i = 1. The bit string distributed to the second decoding processing unit Q2 is a bit string from the fifth bit to the twentieth bit, counting from the beginning of the undecoded portion of the encoded data sequence, with i = 2.
次のステップS24の復号処理段階は、M台の復号処理ユニットによる並列処理として行われる段階である。すなわち、M台の復号処理ユニットによる並列処理により、ステップS22で入力した符号化テーブルを参照しながら、それぞれ分配された部分データから、実データに対応する数値データを取り出す復号処理が行われる。既に§4で述べたとおり、この復号処理は、必ずしも正常に行われるとは限らない。たとえば、図11に[ERR]と記述されたユニットでは、正常な復号処理が行われないことになる。したがって、この復号処理段階では、分配された部分データの先頭から順に、正常な復号処理が可能な限り処理を続行し、正常な復号処理ができない場合には、そこで処理を中断することになる(もしくは、§14で述べるように、所定時点で処理を中断してもよい。)。 The decoding process stage of the next step S24 is a stage performed as parallel processing by M decoding process units. That is, by parallel processing by M decoding processing units, decoding processing for extracting numerical data corresponding to actual data from each distributed partial data is performed while referring to the encoding table input in step S22. As already described in §4, this decoding process is not always performed normally. For example, in the unit described as [ERR] in FIG. 11, normal decoding processing is not performed. Therefore, in this decoding processing stage, the processing is continued as much as possible from the beginning of the distributed partial data as long as normal decoding processing is possible, and if normal decoding processing cannot be performed, the processing is interrupted there ( Alternatively, as described in §14, the processing may be interrupted at a predetermined time.)
続くステップS25のデータ編成段階では、このM台の復号処理ユニットによる復号処理の結果を取捨選択して、個々の実データに対応する数値データを並べた復号化データ列を生成する処理が行われる。具体的には、1回の並列処理によってM台の復号処理ユニットから処理結果が得られたときに、まず第1のユニットを最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集して並べる処理が行われる。 In the subsequent data organization stage of step S25, a process of generating a decoded data sequence in which numerical data corresponding to individual actual data are arranged by selecting the results of the decoding process by the M decoding processing units is performed. . Specifically, when processing results are obtained from M decoding processing units by one parallel processing, the first unit is first determined as the first adopted unit, and normal decoding processing is performed by this adopted unit. The process of recognizing the last bit performed and determining as another newly adopted unit another unit to which the partial data having the bit immediately after the last bit as the first bit is distributed is performed as much as possible. A process of collecting and arranging the numerical data successfully decrypted by the adopted unit is performed.
たとえば、図12に示す実施例の場合、まず第1のユニットQ1を最初の採択ユニットとして決定し、この採択ユニットQ1によって正常な復号処理が行われた最終ビットが、正常処理ビット長P1によって第8ビット目と認識される(正常処理端線Z1の左側ビット)。そして、この最終ビットの直後のビット(正常処理端線Z1の右側ビット)を先頭ビットとする部分データが分配された別なユニットQ3を新たな採択ユニットと決定する処理が行われる。更に、この新たな採択ユニットQ3によって正常な復号処理が行われた最終ビットが、正常処理ビット長P3によって第24ビット目と認識される(正常処理端線Z2の左側ビット)。そして、この最終ビットの直後のビット(正常処理端線Z2の右側ビット)を先頭ビットとする部分データが分配された別なユニットQ7を新たな採択ユニットと決定する処理が行われる。更に、この新たな採択ユニットQ7によって正常な復号処理が行われた最終ビットが、正常処理ビット長P7によって第40ビット目と認識される(正常処理端線Z3の左側ビット)。そして、各採択ユニットQ1,Q3,Q7で正常に復号化が行われた数値データ[28][251][1][13][3]を収集して並べる処理が行われる。 For example, in the embodiment shown in FIG. 12, the first unit Q1 is first determined as the first adopted unit, and the final bit subjected to normal decoding processing by this adopted unit Q1 is determined by the normal processing bit length P1. Recognized as the eighth bit (the left bit of the normal processing end line Z1). Then, a process of determining another unit Q3 to which a partial data having a bit immediately after the last bit (the right bit of the normal processing end line Z1) as a first bit is distributed as a new adopted unit is performed. Further, the final bit that has been normally decoded by the new adoption unit Q3 is recognized as the 24th bit by the normal processing bit length P3 (the left bit of the normal processing end line Z2). Then, a process of determining another unit Q7 to which a partial data having a bit immediately after the last bit (the right bit of the normal processing end line Z2) as a first bit is distributed as a new adopted unit is performed. Further, the final bit that has been normally decoded by the new adoption unit Q7 is recognized as the 40th bit by the normal processing bit length P7 (the left bit of the normal processing end line Z3). Then, the numerical data [28] [251] [1] [13] [3] successfully decoded in each of the adopted units Q1, Q3, Q7 is collected and arranged.
続くステップS26では、全データについての処理が完了するまで、すなわち、入力した符号化データ列のすべての部分に対する復号化が完了するまで、ステップS23からの処理へ戻る繰り返し処理が実行される。そして、データ分配段階S23では、符号化データ列の未復号化部の先頭から(図13に示す例の場合、ブロックB11から)、前述した分配処理が繰り返し実行される。そして、ステップS24では、新たな部分データの分配が行われるたびに、各復号処理ユニットによる並列的な復号処理が実行され、ステップS25では、こうして複数回の並列処理によってそれぞれ収集された数値データを並べることにより、復号化データ列の生成が行われる。 In the subsequent step S26, an iterative process returning to the process from step S23 is executed until the process for all the data is completed, that is, until the decoding of all the parts of the input encoded data string is completed. In the data distribution step S23, the above-described distribution process is repeatedly executed from the beginning of the undecoded portion of the encoded data sequence (in the example shown in FIG. 13, from the block B11). In step S24, each time new partial data is distributed, parallel decoding processing by each decoding processing unit is executed, and in step S25, the numerical data thus collected by the plurality of parallel processings are obtained. By arranging them, a decoded data string is generated.
最後に、ステップS27のデータ出力段階において、生成された復号化データ列が出力される。 Finally, in the data output stage of step S27, the generated decoded data string is output.
なお、既に述べたとおり、並列処理の効果が毎回必ず得られるようにするためには、1回の並列処理において、必ず2つ以上の単位符号データの正常な復号処理を行うことができるようにすればよい。そのためには、ステップS23のデータ分配段階では、M≧1+L/Nとなるような複数M台の復号処理ユニットに部分データの分配を行い、ステップS24の復号処理段階では、これらM台の復号処理ユニットによる並列処理を行うようにすればよい。 As described above, in order to ensure that the effect of parallel processing is obtained every time, it is possible to perform normal decoding processing of two or more unit code data in one parallel processing. do it. For this purpose, partial data is distributed to a plurality of M decoding processing units such that M ≧ 1 + L / N in the data distribution stage in step S23, and these M decoding processes are performed in the decoding processing stage in step S24. What is necessary is just to perform parallel processing by a unit.
<<< §7.本発明に係る符号化装置の基本構成 >>>
続いて、本発明に係る符号化装置の基本構成を、図18に示すブロック図を参照しながら説明する。ここに示す装置は、実際には、コンピュータや集積回路などの演算処理装置によって構成することができる。
<<< §7. Basic configuration of encoding apparatus according to the present invention >>
Next, the basic configuration of the encoding apparatus according to the present invention will be described with reference to the block diagram shown in FIG. The apparatus shown here can actually be constituted by an arithmetic processing unit such as a computer or an integrated circuit.
図18に示すとおり、この符号化装置は、データ格納部110、テーブル格納部120、データ抽出部130、実データ生成部140、識別コード選択部150、単位符号データ生成部160、データ出力部170によって構成され、固定長ビットからなる数値データ列Eを、符号化テーブルTを参照することにより符号化し、可変長ビット列からなる符号化データ列Sを生成する機能を有する。
As shown in FIG. 18, the encoding apparatus includes a
データ格納部110は、符号化の対象となる数値データ列Eを入力して格納する構成要素であり、たとえば、図2に例示するような固定長ビット列からなる数値データ列Eが格納される。一方、テーブル格納部120は、個々のビット長bに対応する固有の識別コードCを示す符号化テーブルTを格納する構成要素であり、たとえば、図9(b) に例示するような可変長符号化テーブルが格納される。
The
ここで、このテーブル格納部120に格納される符号化テーブルは、既に述べたとおり、実データDを表現するのに十分な所定範囲内の複数通りのビット長bについて、個々のビット長bと、当該ビット長bに対応する固有の識別コードCと、の対応関係を示すテーブルであり、「条件1:このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない。」かつ「条件2:当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して『a+b=k×N』(但し、kは任意の整数)となる」という2つの条件を満足するテーブルである。
Here, as described above, the encoding table stored in the
データ抽出部130は、データ格納部110に格納されている数値データ列Eから個々の数値データD1,D2,D3,... を順番に抽出する構成要素である。たとえば、入力された数値データD1,D2,D3,... が、図2に示すような8ビットの固定長ビット列である場合、先頭から8ビットずつ区切りながら、8ビットのビット列を1つの数値データとして抽出する処理を行う。
The
実データ生成部140は、この抽出した数値データから冗長なビットを削除することにより実データを生成する構成要素である。具体的には、符号付きの数値データを取り扱う場合であれば、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を生成し、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を生成し(ビット1が出現するまで先頭のビット0を削除してゆく)、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を生成(ビット0が出現するまで先頭のビット1を削除してゆく)すればよい。
The actual
識別コード選択部150は、テーブル格納部120に格納されている符号化テーブルTを参照して、実データ生成部140で生成された実データのビット長bに対応する識別コードCを選択する構成要素であり、単位符号データ生成部160は、実データ生成部140によって生成された実データの先頭に、識別コード選択部150によって選択された識別コードを付加することにより、データ抽出部130が抽出した数値データを示す単位符号データを生成する構成要素である。
The identification
そして、データ出力部170は、単位符号データ生成部160で生成された単位符号データUを順番に並べて、符号化データ列Sとして出力する構成要素である。具体的には、図9(c) に示すような符号化データ列が出力されることになる。なお、ここに示す実施形態の場合、データ出力部170は、符号化データ列Sとともに、テーブル格納部120に格納されている符号化テーブルTもしくは当該符号化テーブルTを特定するテーブル特定情報Hを出力する機能を有している。たとえば、データ出力部170から出力されるデータファイルFは、図15もしくは図16に示す構造をもったデータファイルになる。
The
<<< §8.本発明に係る復号化装置の基本構成 >>>
続いて、本発明に係る復号化装置の基本構成を、図19に示すブロック図を参照しながら説明する。ここに示す装置は、実際には、コンピュータや集積回路などの演算処理装置によって構成することができる。
<<< §8. Basic configuration of decoding apparatus according to the present invention >>
Next, the basic configuration of the decoding apparatus according to the present invention will be described with reference to the block diagram shown in FIG. The apparatus shown here can actually be constituted by an arithmetic processing unit such as a computer or an integrated circuit.
ここで述べる復号化装置は、§7で述べた符号化装置によって符号化された符号化データ列S、すなわち、「所定のビット長bを示す識別コードCに後続して、当該ビット長bをもつビット列からなる実データDを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データU(最大ビット長Umax)」を、複数組並べることにより構成された符号化データ列、を復号処理の対象とするものであり、個々の実データに対応する数値データを復元する処理を行う。 The decoding apparatus described here is the encoded data string S encoded by the encoding apparatus described in §7, that is, “the identification code C indicating the predetermined bit length b is followed by the bit length b. The unit code data U (maximum bit) that is set to be an integral multiple of a predetermined reference bit length N (where N is an integer equal to or greater than 2). The encoded data string formed by arranging a plurality of sets of “long Umax)” is to be subjected to decoding processing, and processing for restoring numerical data corresponding to individual actual data is performed.
図19に示すとおり、この復号化装置は、データ格納部210、テーブル格納部220、データ分配部230、複数M台の復号処理ユニット240(1)〜240(M)、データ編成部250、データ出力部260によって構成され、可変長ビット列からなる符号化データ列Sを、符号化テーブルTを参照することにより復号化し、固定長ビットからなる復号化データ列G(元の数値データ列E)を生成する機能を有する。
As shown in FIG. 19, this decryption apparatus includes a
データ格納部210は、復号化の対象となる符号化データ列Sを入力して格納する構成要素であり、たとえば、図9(c) に例示するような可変長ビット列からなる符号化データ列Sが格納される。一方、テーブル格納部220は、個々の識別コードCに対応する特定のビット長bを示す符号化テーブルTを格納する構成要素であり、たとえば、図9(b) に例示するような可変長符号化テーブルが格納される。このテーブル格納部220に格納される符号化テーブルは、符号化データ列Sを作成する際に、図18に示すテーブル格納部120に格納されていた符号化テーブルと実質的な内容が同一のものである。
The
実用上は、図15に示すように、符号化の処理に用いた符号化テーブルTが組み込まれた符号化データファイルFか、図16に示すように、符号化の処理に用いた符号化テーブルTを特定するテーブル特定情報Hが組み込まれた符号化データファイルFを利用して、符号化データ列を保存しておき、復号化を行う際には、この符号化データファイルFから、符号化データ列Sとともに、その復号化に用いる符号化テーブルの情報を読み出すようにするのが好ましい。 Practically, as shown in FIG. 15, the encoded data file F in which the encoding table T used for the encoding process is incorporated or the encoding table used for the encoding process as shown in FIG. The encoded data file F is stored using the encoded data file F in which the table specifying information H for specifying T is incorporated, and the encoded data file F is encoded from the encoded data file F when decoding is performed. It is preferable to read out the information of the coding table used for decoding together with the data string S.
たとえば、図15に示すように、符号化データ列と、符号化の処理に用いた符号化テーブルTと、を含むデータファイルFが与えられたときには、データ格納部210が、当該データファイルFから符号化データ列Sを抽出して格納する処理を行い、テーブル格納部220が、当該データファイルFから符号化テーブルTを抽出して格納する処理を行うようにすればよい。また、図16に示すように、符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報Hと、を含むデータファイルFが与えられたときには、データ格納部210が、当該データファイルFから符号化データ列Sを抽出して格納する処理を行い、テーブル格納部220が、当該データファイルFからテーブル特定情報Hを抽出する処理を行った後、当該テーブル特定情報Hによって特定されるテーブルを外部から読み込んで格納する処理を行うようにすればよい。
For example, as shown in FIG. 15, when a data file F including an encoded data string and an encoding table T used for encoding processing is given, the
データ分配部230は、M台の復号処理ユニット240(1)〜240(M)に対して、データ格納部210に格納されている符号化データ列Sの一部を部分データとして分配する構成要素である。具体的には、§6で説明したとおり、符号化データ列Sの未復号化部の先頭から数えて第(N×(i−1)+1)ビット目〜第(N×(i−1)+L)ビット目までのビット列を、第i番目のユニット(i=1〜M)に分配する処理を、符号化データ列Sのすべての部分に対する復号化が完了するまで繰り返し実行する。
The
M台の復号処理ユニット240(1)〜240(M)は、ここに示す実施例の場合、全く同一の構成要素であり、それぞれLビット(但し、LはNの整数倍、かつ、L≧Umax)の連続ビットデータに対する復号処理を行う機能を有する。具体的には、これらM台の復号処理ユニット240(1)〜240(M)は、テーブル格納部220に格納されている符号化テーブルTを参照しながら、それぞれ分配された部分データから、実データに対応する数値データを取り出す復号処理を行う機能を有し、データ分配部230から新たな部分データの分配が行われるたびに、分配された部分データの先頭から順に、正常な復号処理が可能な限り処理を続行する。上述したように、正常な復号処理が行えない場合には、そこで処理を中断する。
In the embodiment shown here, the M decoding processing units 240 (1) to 240 (M) are exactly the same constituent elements, each having L bits (where L is an integer multiple of N, and L ≧ Umax) has a function of performing decoding processing on continuous bit data. Specifically, these M decoding processing units 240 (1) to 240 (M) can perform real operations from the distributed partial data with reference to the encoding table T stored in the
これらM台の復号処理ユニット240(1)〜240(M)による復号処理は、並列処理として並行して行われることになり、その結果、復号化の処理時間を短縮するという効果が得られることになる。ただ、既に述べたとおり、並列処理の効果が毎回必ず得られるようにするためには、1回の並列処理において、必ず2つ以上の単位符号データの正常な復号処理を行うことができるようにするのが好ましい。そのためには、M≧1+L/Nとなるような複数M台の復号処理ユニットを設けるようにすればよい。 The decoding processing by these M decoding processing units 240 (1) to 240 (M) is performed in parallel as parallel processing, and as a result, the effect of shortening the decoding processing time is obtained. become. However, as described above, in order to ensure that the effect of parallel processing is obtained every time, it is possible to always perform normal decoding processing of two or more unit code data in one parallel processing. It is preferable to do this. For that purpose, a plurality of M decoding processing units may be provided such that M ≧ 1 + L / N.
なお、ここに示す実施例の場合、各復号処理ユニット240からデータ編成部250に対して、正常な復号処理によって復元された数値データDと、当該正常な復号処理に関与したビット数を示す正常処理ビット長Pと、正常な復号処理を続行することができなかった場合には、その旨を示すエラー信号ERRとが報告される。
In the case of the embodiment shown here, each
たとえば、図12に示す実施例の場合、ユニットQ1からは、正常な復号処理によって復元された数値データ「28」と、当該正常な復号処理に関与したビット数を示す正常処理ビット長「P1=8」と、エラー信号「ERR」とが報告されることになり、ユニットQ2からは、正常処理ビット長「P2=0」と、エラー信号「ERR」とが報告されることになり、ユニットQ3からは、復元された数値データ「251」と、正常処理ビット長「P3=16」とが報告されることになる。ユニットQ4〜Q8からも、同様の報告がなされる。 For example, in the embodiment shown in FIG. 12, from the unit Q1, the numerical data “28” restored by the normal decoding process and the normal processing bit length “P1 =“ indicating the number of bits involved in the normal decoding process. 8 ”and the error signal“ ERR ”are reported, and the normal processing bit length“ P2 = 0 ”and the error signal“ ERR ”are reported from the unit Q2, and the unit Q3 From this, the restored numerical data “251” and the normal processing bit length “P3 = 16” are reported. Similar reports are made from the units Q4 to Q8.
データ編成部250は、M台の復号処理ユニット240(1)〜240(M)による復号処理の結果を取捨選択して、個々の実データに対応する数値データを並べた復号化データ列を生成する構成要素である。具体的には、データ編成部250は、1回の並列処理によってM台の復号処理ユニット240(1)〜240(M)から処理結果が得られたときに、まず第1のユニット240(1)を最初の採択ユニットとして決定し、この採択ユニットによって正常な復号処理が行われた最終ビットを認識し、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットと決定する処理を、可能な限り続ける処理を行い、各採択ユニットで正常に復号化が行われた数値データを収集し、1回もしくは複数回の並列処理によってそれぞれ収集された数値データを並べることにより復号化データ列を生成する。
The
また、データ編成部250は、1回の並列処理によってM台の復号処理ユニット240(1)〜240(M)からの処理結果が得られるたびに、データ分配部230に対して、既復号化部を示す信号を与える。たとえば、図13に示す実施例の場合、ブロックB1〜B10までのビット列についての復号化が完了したことになるので、データ編成部250は、データ分配部230に対して、ブロックB10までが既復号化部であることを示す信号を与える。具体的には、たとえば、ブロックB10の最終ビットの位置(先頭から第40番目のビット)を示す信号を与えればよい。これにより、データ編成部250は、次回の並列処理のための分配を行う起点となる未復号化部の先頭が、先頭から第41番目のビット(ブロックB11の先頭ビット)であることを認識し、この起点から分配処理を行うことができる。
In addition, the
データ編成部250による上述した処理は、M台の復号処理ユニット240(1)〜240(M)から報告された数値データDと正常処理ビット長Pとに基づいて行うことができる。すなわち、M台の復号処理ユニットのうちの採択ユニットは、正常処理ビット長Pに基づいて決定することができる。具体的には、まず第1のユニット240(1)を最初の採択ユニットとする。続いて、この第1のユニット240(1)から報告された正常処理ビット長Pに基づいて、当該採択ユニットによって正常な復号処理が行われた最終ビットを認識することができるので、当該最終ビットの直後のビットを先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットとして特定することができる。以下、同様にして、順次採択ユニットを決定してゆくことができ、最後に、各採択ユニットから報告された数値データDを、順番に並べることにより、復号化データ列を生成することができる。また、各採択ユニットから報告された正常処理ビット長Pを合計することにより、既復号化部を認識することができるので、これをデータ分配部230に対して報告することができる。
The processing described above by the
なお、ここに示す実施例では、各復号処理ユニット240からデータ編成部250に対して、正常な復号処理を続行することができなかったことを示すエラー信号ERRを報告させるようにしているが、上述したように、データ編成部250における処理を実行する上では、このエラー信号ERRは直接的には用いられない。したがって、エラー信号ERRの報告は必ずしも必要なものではなく、省略してもかまわない。実用上は、正常処理ビット長P=0なる報告を、エラー信号ERRに代用することができる。
In the embodiment shown here, each
こうして、1回もしくは複数回の並列処理により、データ編成部250は、復号化データ列Gを作成することができる。データ出力部260は、こうして作成された復号化データ列Gを出力する機能を果たす。この復号化データ列Gは、図18の左上に示す元の数値データ列Eと同じものになる。
In this way, the
<<< §9.二次元符号化テーブルを利用する基本原理 >>>
これまで述べてきた実施形態で用いた符号化テーブルは、いずれも実データのビット長bと識別コードCとの1対1の対応関係を示すものであり、各識別コードCは、特定のビット長bの情報を示すコードであった。これに対して、この§9で述べる実施形態は、識別コードCに、ビット長bの情報だけでなく、付加的な情報をもたせる運用を行うものである。具体的には、ゼロのランレングス値Rの情報をもたせることになる。
<<< §9. Basic principle using 2D coding table >>
Each of the encoding tables used in the embodiments described so far shows a one-to-one correspondence between the bit length b of the actual data and the identification code C. Each identification code C is a specific bit. It was a code indicating information of length b. On the other hand, the embodiment described in §9 performs an operation in which the identification code C is provided with not only information of the bit length b but also additional information. Specifically, zero run length value R information is provided.
そこで、まず、ゼロのランレングス値Rを採り入れる基本概念を簡単に説明する。いま、図20に示すような数値データ列(10進表記)を符号化する場合を考えてみよう。ここでは、この図20に示す数値データ列が8ビットの固定長ビット列として与えられた場合に、図9(b) に示す符号化テーブルを用いて、これまで述べた本発明に係る符号化方法によって、可変長ビット列に変換する事例を考える。 First, the basic concept of adopting a zero run length value R will be briefly described. Consider a case where a numeric data string (decimal notation) as shown in FIG. 20 is encoded. Here, when the numerical data sequence shown in FIG. 20 is given as an 8-bit fixed-length bit sequence, the encoding method according to the present invention described so far is used by using the encoding table shown in FIG. 9 (b). Consider the case of converting to a variable-length bit string.
図21は、このような符号化方法を実施するプロセスを示す図である。図の上段の表には、個々の数値データD(10進表記)について、冗長ビットを削除することによって得られる実データDと、この実データDのビット長bに対応する識別コードCと、実データDの先頭に識別コードCを付加してなる単位符号データUのビット長と、が示されている。たとえば、データ番号1の行には、数値データ「28」(8ビット固定長による2進表記は「00011100」)」について、実データ「11100」と、この実データのビット長「5」に対応する識別コード「011」(図9(b) のテーブル参照)と、識別コードと実データとを連結して得られる単位符号データ「01111100」のビット長「8」と、が示されている。
FIG. 21 is a diagram illustrating a process for implementing such an encoding method. In the upper table of the figure, for each numerical data D (decimal notation), actual data D obtained by deleting redundant bits, an identification code C corresponding to the bit length b of the actual data D, The bit length of the unit code data U obtained by adding the identification code C to the head of the actual data D is shown. For example, the row of
図20に示す数値データ列の特徴は、途中に連続した0が含まれている点である。一般に、画像データには、このような連続した0が含まれることが多く、特に、後述するJPEG形式の画像データなどでは、通常、連続した多数の0が含まれる。図21に示す符号化プロセスは、これまで述べてきた基本的な実施形態に係る符号化方法によるものであり、このような連続した0についても、それぞれ単位符号データUが作成されることになる。すなわち、図21の上段の表におけるデータ番号4〜9の行が、6個の連続した0についての符号化プロセスを示している。
A feature of the numerical data string shown in FIG. 20 is that a series of zeros is included in the middle. In general, image data often includes such consecutive zeros. In particular, image data in the JPEG format, which will be described later, usually includes a large number of consecutive zeros. The encoding process shown in FIG. 21 is based on the encoding method according to the basic embodiment described so far, and unit code data U is created for each of such consecutive zeros. . That is, the rows of
図9(b) に示す符号化テーブルでは、数値データが0を示すデータである場合には、ビット長が0である仮想のビット列を実データとし、識別コード「1000」を割り当てることになる。したがって、図21の上段の表におけるデータ番号4〜9の行では、実データは存在せず、識別コード「1000」のみが割り当てられている。この表に基づいて作成された符号化データ列の一部が、図21の下段に示されている。図示の単位符号データU1,U2,U3,U4,U5,U6は、それぞれ元の数値データ28,251,1,0,0,0に対応する。単位符号データU4,U5,U6は、数値0を示すデータであるため、実データを構成するビットは存在せず、識別コード「1000」のみによって構成されている。
In the encoding table shown in FIG. 9B, when the numerical data is data indicating 0, a virtual bit string having a bit length of 0 is used as real data, and an identification code “1000” is assigned. Therefore, in the rows of
図21の上段の表におけるUのビット長の欄を見ると、4,8,16のいずれかになっており、基準ビット長N=4の整数倍になっている。これは、そうなるように設定された図9(b) に示す符号化テーブルを用いて符号化を行ったためである。したがって、図21の下段に示す単位符号データU1,U2,U3,U4,U5,U6のビット長は、必ず4の整数倍になっており、並列処理による復号化が可能になる点は、これまで述べてきたとおりである。 Looking at the U bit length column in the upper table of FIG. 21, it is either 4, 8, or 16, which is an integral multiple of the reference bit length N = 4. This is because encoding is performed using the encoding table shown in FIG. Therefore, the bit length of the unit code data U1, U2, U3, U4, U5, U6 shown in the lower part of FIG. As described above.
さて、この図21に示す符号化プロセスでは、図21の下段に示すように、数値0を表すために「1000」なる4ビットの単位符号データUが作成されることになるので、元の数値データ列に連続した0が含まれている場合、必ずしも効率的な符号化が行われているとは言い難い。そこで、連続した0が多く含まれる可能性のある画像データなどでは、この連続した0をゼロのランレングスとして把握し、ランレングス値Rによって表す手法が採られる。たとえば、図21に示す例の場合、データ番号4〜9の部分については、ゼロのランレングス値R=6によって表現し、このランレングス値R=6の情報を、データ番号10についての単位符号データに盛り込む手法を採る。
In the encoding process shown in FIG. 21, 4-bit unit code data U of “1000” is created to represent the
図21に示す例では、データ番号10の数値「13」について、その実データ「1101」の先頭に、当該実データのビット長「4」に対応する識別コード「1001」(図9(b) のテーブル参照)を付加することにより、「10011101」なる単位符号コードU10が作成されることになる。この場合、識別コード「1001」は、実データのビット長「4」を示す機能しか有していないが、識別コードにゼロのランレングス値R=6の情報をもたせることができれば、データ番号4〜9の部分についての単位符号データU4〜U9を省略することができ、データ量を大幅に削減することができる。 In the example shown in FIG. 21, the identification code “1001” corresponding to the bit length “4” of the actual data “1101” at the beginning of the numerical value “13” of the data number 10 (in FIG. 9B) By adding a table reference), a unit code code U10 of “10011101” is created. In this case, the identification code “1001” has only a function indicating the bit length “4” of the actual data. The unit code data U4 to U9 for the portions ˜9 can be omitted, and the data amount can be greatly reduced.
そのためには、図22の下段に示すような符号化テーブルを用いるようにすればよい。この符号化テーブルは、個々のビット長bと個々のランレングス値Rとの組み合わせに対応する固有の識別コードを示すテーブルであり、ここでは、二次元符号化テーブルと呼ぶことにする。また、これと対比する上で、これまでの実施形態で用いた符号化テーブル(個々のビット長bに対応する固有の識別コードを示すテーブル)を一次元符号化テーブルと呼ぶ。 For this purpose, an encoding table as shown in the lower part of FIG. 22 may be used. This encoding table is a table indicating a unique identification code corresponding to a combination of each bit length b and each run length value R, and is referred to as a two-dimensional encoding table here. For comparison, the encoding table used in the above embodiments (a table indicating a specific identification code corresponding to each bit length b) is referred to as a one-dimensional encoding table.
この二次元符号化テーブルは、横方向にビット長b=0〜8、縦方向にランレングス値R=0〜8がとられており、両者の任意の組み合わせに対して、所定の識別コードが定義されている。たとえば、「ビット長b=4」と「ランレングス値R=6]との組み合わせに対しては、「C64」なる識別コードが定義されている。もっとも、図示する各識別コードC00〜C88は、実際の識別コードではなく、説明の便宜上、簡単な略記号に置き換えて示したものである。実際には、各識別コードは、これまでの一次元符号化テーブルで定義されていた識別コードと同様に、デジタルビット列から構成されている。 This two-dimensional encoding table has a bit length b = 0 to 8 in the horizontal direction and a run length value R = 0 to 8 in the vertical direction. A predetermined identification code is assigned to any combination of the two. Is defined. For example, an identification code “C64” is defined for a combination of “bit length b = 4” and “run length value R = 6”. However, the illustrated identification codes C00 to C88 are not actual identification codes, but are replaced with simple abbreviations for convenience of explanation. Actually, each identification code is composed of a digital bit string in the same manner as the identification code defined in the conventional one-dimensional encoding table.
しかも、この二次元符号化テーブルについても、これまで述べた一次元符号化テーブルと同様に、「条件1:このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない。」かつ「条件2:当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して『a+b=k×N』(但し、kは任意の整数)となる」という2つの条件を満足している必要がある。 In addition, for the two-dimensional encoding table, as in the one-dimensional encoding table described so far, “Condition 1: When any identification code in this table is focused, the bit of the target identification code itself When the length is a, there is no other identification code in this table in which the a-bit portion from the beginning is the same as the target identification code. ”And“ Condition 2: corresponding to the target identification code ” “B + k = N” (where k is an arbitrary integer) with respect to a predetermined reference bit length N (where N is an integer equal to or greater than 2) when the bit length is b ” It is necessary to satisfy the conditions.
更に、図示の例の場合、ビット長b=0〜8およびランレングス値R=0〜8の範囲をカバーするテーブルにするために、合計99通りもの識別コードが必要になり(実際には、後述するように、識別コードC10,C20,C30,... ,C70は定義する必要がない)、これらの識別コードのすべてについて、上記2つの条件が満足されていなければならない。したがって、実際には、各識別コードC00〜C88は、かなりビット長の長いコードになる(§11で実例を示す)。ただ、ここでは、説明の便宜上、C00〜C88という略記号を用いて、これらの識別コードを示すことにする。 Furthermore, in the case of the illustrated example, a total of 99 identification codes are required to make a table covering the range of bit length b = 0 to 8 and run length value R = 0 to 8 (in practice, As will be described later, the identification codes C10, C20, C30,..., C70 do not need to be defined), and the above two conditions must be satisfied for all of these identification codes. Therefore, in practice, each identification code C00 to C88 is a code having a considerably long bit length (an example is shown in §11). However, for convenience of explanation, these identification codes are indicated using abbreviations C00 to C88.
図22の上段の図は、この二次元符号化テーブルを利用する実施形態における単位符号データUの基本構造を示す図である。当該基本構造は、基本的には、これまで述べてきた一次元符号化テーブルを利用する実施形態における単位符号データの構造と同じであり、識別コードCと実データDとによって構成されている。そして、識別コードCのビット長をaとし、実データDのビット長をbとすれば、「a+b=k×N」(但し、kは任意の整数)という条件を満足する。ただ、識別コードCが、二次元符号化テーブルから選択されたコードとなっており、実データDのビット長bを示すだけでなく、ランレングス値Rを示すコードになっている。このランレングス値Rは、実データDに先行して配置される数値0の数を示している。
The upper part of FIG. 22 is a diagram showing a basic structure of unit code data U in the embodiment using this two-dimensional encoding table. The basic structure is basically the same as the structure of the unit code data in the embodiment using the one-dimensional encoding table described so far, and is composed of an identification code C and actual data D. If the bit length of the identification code C is a and the bit length of the actual data D is b, the condition “a + b = k × N” (where k is an arbitrary integer) is satisfied. However, the identification code C is a code selected from the two-dimensional encoding table and is a code indicating not only the bit length b of the actual data D but also the run length value R. The run length value R indicates the number of
図23は、図20に示す数値データ列に対して、図22に示す二次元符号化テーブルを用いた符号化方法を実施するプロセスを示す図である。図23の上段に示す表は、図21の上段に示す表とほぼ同じであるが、識別コードCの欄に示された個々の識別コードが、図22に示す二次元符号化テーブルに掲載されている識別コードになっている。また、Uのビット長の欄の代わりに、カウント値Jなる欄を設けている。ここで、カウント値Jは、ゼロのランレングス値を計数するための変数であり、初期値は0である。 FIG. 23 is a diagram showing a process for performing the encoding method using the two-dimensional encoding table shown in FIG. 22 for the numerical data string shown in FIG. The table shown in the upper part of FIG. 23 is substantially the same as the table shown in the upper part of FIG. 21, but the individual identification codes shown in the column of the identification code C are listed in the two-dimensional encoding table shown in FIG. It is an identification code. In addition, a column of count value J is provided instead of the U bit length column. Here, the count value J is a variable for counting zero run length values, and the initial value is zero.
この図23の上段に示す表において、データ番号1の行には、数値データ「28」(8ビット固定長による2進表記は「00011100」)」について、実データ「11100」と、この実データのビット長「5」に対応する識別コード「C05」と、カウント値「J=0」が示されている。カウント値Jは、数値データDが0であった場合には、+1だけカウントアップされ(但し、最大値Rmaxに達していた場合には、カウントアップされない)、数値データDが0でなかった場合には、識別コードCを選択した後に0にリセットされる。データ番号1の数値データは「28」であるため、識別コード「C05」の選択後に、J=0にリセットされる。識別コード「C05」は、図22に示す二次元符号化テーブルにおいて、「ビット長b=5」と「ランレングス値0」との組み合わせに対応する識別コードである。ここで、「ビット長b=5」は、実データ「11100」のビット長を示すものであり、「ランレングス値0」は、その時点のカウント値Jを示すものである。
In the table shown in the upper part of FIG. 23, the row of
次のデータ番号2の行には、数値データ「251」(8ビット固定長による2進表記は「11111011」)」について、実データ「11111011」と、この実データのビット長「8」に対応する識別コード「C08」と、カウント値「J=0」が示されている。データ番号2の数値データは「251」であるため、識別コード「C08」の選択後に、J=0にリセットされる。識別コード「C08」は、図22に示す二次元符号化テーブルにおいて、「ビット長b=8」と「ランレングス値0」との組み合わせに対応する識別コードである。ここで、「ビット長b=8」は、実データ「11111011」のビット長を示すものであり、「ランレングス値0」は、その時点のカウント値Jを示すものである。
The next row of
続くデータ番号3の行には、数値データ「1」(8ビット固定長による2進表記は「00000001」)」について、実データ「1」と、この実データのビット長「1」に対応する識別コード「C01」と、カウント値「J=0」が示されている。データ番号3の数値データは「1」であるため、識別コード「C01」の選択後に、J=0にリセットされる。識別コード「C01」は、図22に示す二次元符号化テーブルにおいて、「ビット長b=1」と「ランレングス値0」との組み合わせに対応する識別コードである。ここで、「ビット長b=1」は、実データ「1」のビット長を示すものであり、「ランレングス値0」は、その時点のカウント値Jを示すものである。
The subsequent row of
一方、データ番号4〜9の行には、識別コードCおよび実データDの記載はなく、斜線が引かれている。これは、数値データ「0」については、基本的に、単位符号データUが作成されないためである。このように、数値データが0であった場合には、カウント値Jのカウントアップのみが行われる(Jが最大値Rmax に達していた場合を除く)。こうして、データ番号4〜9の行では、カウント値Jの欄のみが1〜6へと順次更新されている。
On the other hand, in the rows of
続くデータ番号10の行には、数値データ「13」(8ビット固定長による2進表記は「00001101」)」について、実データ「1101」と、この実データのビット長「4」に対応する識別コード「C64」と、カウント値「J=0」が示されている。データ番号10の数値データは「13」であるため、識別コード「C64」の選択後に、J=0にリセットされる。識別コード「C64」は、図22に示す二次元符号化テーブルにおいて、「ビット長b=4」と「ランレングス値6」との組み合わせに対応する識別コードである。ここで、「ビット長b=4」は、実データ「1101」のビット長を示すものであり、「ランレングス値6」は、その時点(リセット前)のカウント値Jを示すものである。
The subsequent row of
次のデータ番号11の行には、数値データ「3」(8ビット固定長による2進表記は「00000011」)」について、実データ「11」と、この実データのビット長「2」に対応する識別コード「C02」と、カウント値「J=0」が示されている。データ番号11の数値データは「3」であるため、識別コード「C02」の選択後に、J=0にリセットされる。識別コード「C02」は、図22に示す二次元符号化テーブルにおいて、「ビット長b=2」と「ランレングス値0」との組み合わせに対応する識別コードである。ここで、「ビット長b=2」は、実データ「11」のビット長を示すものであり、「ランレングス値0」は、その時点のカウント値Jを示すものである。
The next row of
このようなプロセスに基づいて作成された符号化データ列が、図23の下段に示されている。図示のとおり、データ番号4〜9の数値0についての単位符号データU4〜U9は作成されないため、符号化データ列は、単位符号データU1,U2,U3,U10,U11,... によって構成されている。ここで、単位符号データU1,U2,U3は、それぞれ元の数値データ28,251,1に対応し、単位符号データU10は、元の数値データ0,0,0,0,0,0,13に対応し、単位符号データU11は、元の数値データ3に対応することになる。結局、単位符号データU10は、データ番号10の数値「13」のみならず、それに先行する6個の0を符号化したデータということができる。すなわち、単位符号データU10の実データ「1101」の部分が数値「13」を示し、識別コード「C64」の部分が6個の0を示していることになる。
An encoded data string created based on such a process is shown in the lower part of FIG. As shown in the figure, since unit code data U4 to U9 for
このように、多数の0が連続して現れる可能性が高い数値データ列については、二次元符号化テーブルを利用した符号化を行えば、1つの単位符号データによって、多数の0を表現することができるため、データ容量を大幅に削減する効果が得られる。しかも、二次元符号化テーブルとして、上述した2つの条件を満足するテーブルを用いるようにすれば、これまで述べてきた一次元符号化テーブルを用いる実施形態と同様に、復号化を行う際に並列処理が可能になるという本発明に特有のメリットも得られる。 As described above, for a numerical data string in which a large number of zeros are likely to appear in succession, if encoding is performed using a two-dimensional coding table, a large number of zeros can be expressed by one unit code data. As a result, the data capacity can be greatly reduced. In addition, if a table that satisfies the above-described two conditions is used as the two-dimensional encoding table, as in the embodiment using the one-dimensional encoding table described so far, parallel processing is performed when decoding is performed. The merit peculiar to this invention that processing becomes possible is also acquired.
ところで、以上述べた実施形態の場合、0を示す数値データの情報は、基本的に、後続する0でない数値データについて作成された単位符号データの識別コードにランレングス値として盛り込まれることになる。したがって、基本的には、0を示す数値データについて実データを作成する必要はなく、実データのビット長bの最小値は1になる。そうすると、図22に示す二次元符号化テーブルのビット長「b=0」の欄は不要になるはずである。ただ、実用上は、例外的な処理が必要になる。以下、この点について説明しよう。 By the way, in the embodiment described above, the numerical data information indicating 0 is basically included as a run-length value in the identification code of the unit code data created for the subsequent numerical data other than 0. Therefore, it is basically unnecessary to create actual data for numerical data indicating 0, and the minimum value of the bit length b of the actual data is 1. Then, the column of the bit length “b = 0” in the two-dimensional encoding table shown in FIG. 22 should be unnecessary. However, in practice, exceptional processing is required. I will explain this point below.
第1の例外処理は、予め設定されたランレングス値の最大値Rmax を越えて、0を示す数値データが連続して出現した場合である。たとえば、図22に示す二次元符号化テーブルの場合、ランレングス値Rの最大値Rmax =8に設定しているため、数値0が9以上連続するようなランレングスを取り扱うことができない。もちろん、最大値Rmax を非常に大きな値に設定できれば問題は解決するが、最大値Rmax を大きくすればするほど、必要な識別コードの数も増え、個々の識別コードのビット長も増大することになり好ましくない。したがって、実用上、最大値Rmaxは、ある程度の値に抑制せざるを得ない。
The first exception process is a case where numerical data indicating 0 continuously appears exceeding the preset maximum value Rmax of the run length. For example, in the case of the two-dimensional encoding table shown in FIG. 22, since the maximum value Rmax = 8 of the run length value R is set, it is impossible to handle a run length in which the
そこで、最大値Rmax を越えて、0を示す数値データが連続して出現した場合には、次のような例外処理を行うことにする。たとえば、Rmax =8の場合を考えよう。この場合、連続して8個の0が出現した後に、9個目に0でない数値Xがきたときには、これまで述べたとおりの処理が可能である。すなわち、8個目の0がきたときに、カウント値J=8となり、9個目の数値Xについての単位符号データを作成する際に、識別コードにランレングス値R=8という情報を盛り込めばよい。ところが、9個目も0であった場合には、これ以上カウント値Jを増やすことはできないので、この9個目の0については、例外的に単位符号データを作成するのである。この場合、実データは、ビット長が0である仮想のビット列になり、作成される単位符号データは、実質的に、識別コードのみから構成されるデータになる。 Therefore, when numerical data indicating 0 continuously appears exceeding the maximum value Rmax, the following exception processing is performed. For example, consider the case of Rmax = 8. In this case, if a numerical value X that is not 0 comes after the occurrence of 8 zeros in succession, the processing as described above is possible. That is, when the eighth 0 comes, the count value J = 8, and when the unit code data for the ninth numerical value X is created, if the identification code includes the information that the run length value R = 8. Good. However, if the ninth is also 0, the count value J cannot be increased any more, so unit code data is exceptionally created for the ninth 0. In this case, the actual data is a virtual bit string having a bit length of 0, and the generated unit code data is substantially data composed only of an identification code.
このような例外処理を行うためには、図22に示す二次元符号化テーブルにおいて、「ビット長b=0」と「ランレングス値8」との組み合わせに対応する識別コード「C80」を用意しておく必要がある。このような例外処理に用いる識別コード「C80」は、一般的に「ZRL(Zero Run Length)」と呼ばれている。
In order to perform such exception processing, an identification code “C80” corresponding to a combination of “bit length b = 0” and “run
第2の例外処理は、必ずしも必要な処理ではないが、入力した数値データ列について、末尾までに後続する数値データがすべて0であるという「ゼロ永続状態」が確認された場合に、この「ゼロ永続状態」を示す特別な「終端コード」を識別コードとして利用する処理である。このような「終端コード」は、一般的に「EOB(End Of Block)」と呼ばれており、便宜的に、二次元符号化テーブルにおいて、「ビット長b=0」と「ランレングス値0」との組み合わせに対応する識別コードとして定義される。したがって、図22に示す二次元符号化テーブルにおける識別コード「C00」は、この「終端コードEOB」として利用することができる。
The second exception process is not necessarily a necessary process. However, when the “zero permanent state” in which the numerical data subsequent to the end of the input numeric data string is all zero is confirmed, In this process, a special “end code” indicating “permanent state” is used as an identification code. Such an “end code” is generally called “EOB (End Of Block)”. For convenience, in the two-dimensional coding table, “bit length b = 0” and “run
前述したとおり、図22に示す二次元符号化テーブルにおいて、「ビット長b=0」の欄における「C00」および「C80」以外の識別コードC10,C20,C30,... ,C70は、実際には定義する必要はない。 As described above, in the two-dimensional encoding table shown in FIG. 22, the identification codes C10, C20, C30,..., C70 other than “C00” and “C80” in the “bit length b = 0” column are actually Does not need to be defined.
<<< §10.二次元符号化テーブルを利用する場合の変更点 >>>
さて、§9では、二次元符号化テーブルを利用する基本原理を述べたが、ここでは、この二次元符号化テーブルを利用する場合に、これまで述べてきた実施形態に対して施す必要がある変更点を述べる。
<<< §10. Changes when using a two-dimensional encoding table >>
In §9, the basic principle of using a two-dimensional encoding table has been described, but here, when using this two-dimensional encoding table, it is necessary to apply to the embodiments described so far. Describe the changes.
<§5で述べた符号化方法についての変更点>
二次元符号化テーブルを利用した場合であっても、固定長ビットからなる数値データ列を、可変長のビット列を用いて符号化する符号化方法である点には何ら変わりはない。そして、特定の数値データを可変長のビット列を用いて表現した実データを生成し、この実データの先頭に、少なくとも当該実データのビット長を示す情報をもった識別コードを付加することにより、少なくとも前記特定の数値データ自身を示す情報をもった単位符号データを生成し、生成された複数の単位符号データを順番に並べて符号化データ列として出力する処理が行われる点も同じである。ただ、識別コードには、実データのビット長を示す情報だけでなく、先行して配置される数値0のランレングス値を示す情報も含まれることになる。このため、生成される単位符号データには、実データとして特定の数値データ自身を示す情報が含まれるだけでなく、先行して配置される数値0の情報も含まれることになる。
<Changes to the encoding method described in §5>
Even when a two-dimensional encoding table is used, there is no change in that the encoding method is to encode a numerical data string composed of fixed-length bits using a variable-length bit string. Then, by generating actual data representing specific numerical data using a variable-length bit string, and adding an identification code having at least information indicating the bit length of the actual data to the head of the actual data, The same is true in that unit code data having information indicating at least the specific numerical data itself is generated, and the plurality of generated unit code data are sequentially arranged and output as an encoded data string. However, the identification code includes not only information indicating the bit length of the actual data but also information indicating the run length value of the
最も大きな相違点は、当然ながら、図9(b) に示すような一次元符号化テーブルの代わりに、図22に示すような二次元符号化テーブルを用いる点である。この二次元符号化テーブルは、個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示すテーブルになる。もちろん、一次元符号化テーブルも、二次元符号化テーブルも、少なくとも「所定範囲内の複数通りのビット長と、当該ビット長に対応する識別コードとの対応関係」を示す符号化テーブルである点では共通する。また、これらのテーブルが、「条件1:当該テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない」と「条件2:当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して『a+b=k×N』(但し、kは任意の整数)である。」という2つの条件を満たすテーブルであるという点も共通する。 Naturally, the biggest difference is that, instead of the one-dimensional encoding table as shown in FIG. 9B, a two-dimensional encoding table as shown in FIG. 22 is used. This two-dimensional encoding table is a table indicating a unique identification code corresponding to a combination of individual bit lengths and individual run length values. Of course, both the one-dimensional coding table and the two-dimensional coding table are coding tables indicating at least “a correspondence relationship between a plurality of bit lengths within a predetermined range and an identification code corresponding to the bit length”. Then it is common. In addition, these tables indicate that “Condition 1: When any of the identification codes in the table is focused, when the bit length of the focused identification code itself is a, the portion of the a bit from the top is the focused “There is no other identification code in the table that is the same as the identification code” and “Condition 2: When the bit length corresponding to the identification code of interest is b, a predetermined reference bit length N (however, N is an integer greater than or equal to 2), and “a + b = k × N” (where k is an arbitrary integer).
図24は、この二次元符号化テーブルを用いた符号化方法の基本手順を示す流れ図である。この図24に示す流れ図の各段階は、図14に示す流れ図の各段階とほぼ同じである。変更点は、ステップS12のテーブル入力段階で、二次元符号化テーブルが入力される点と、ステップS13のデータ抽出段階の後に、ステップS13A,ステップS13B,ステップS13Cが加えられた点と、ステップS15において、二次元符号化テーブルを参照して識別コードを選択し、選択後にカウント値J=0にリセットする点だけである。以下、これら変更点を説明する。 FIG. 24 is a flowchart showing the basic procedure of an encoding method using this two-dimensional encoding table. Each stage of the flowchart shown in FIG. 24 is substantially the same as each stage of the flowchart shown in FIG. The changes are that the two-dimensional encoding table is input at the table input stage of step S12, the point that steps S13A, S13B, and S13C are added after the data extraction stage of step S13, and step S15. In this case, the identification code is selected with reference to the two-dimensional encoding table, and the count value J = 0 is reset after the selection. Hereinafter, these changes will be described.
まず、ステップS12では、予め定められた所定の最大ランレングス値をRmaxとしたときに、実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示す二次元符号化テーブルが入力される。もちろん、このテーブルは、上述した2つの条件を満足するテーブルになっている。 First, in step S12, when a predetermined maximum run length value set in advance is Rmax, a plurality of bit lengths within a predetermined range sufficient to represent actual data and a plurality of bit lengths within a range up to Rmax. For each combination of street run length values, a two-dimensional encoding table indicating a correspondence relationship between each combination and a unique identification code corresponding to the combination is input. Of course, this table satisfies the above two conditions.
そして、この時点において、カウント値Jは初期値0になっているものとする。次に、ステップS13のデータ抽出段階で数値データの抽出が行われたら、ステップS13Aにおいて、抽出された数値データが0を示すデータであるか否かが判定される。ここで、抽出した数値データが0を示すデータであった場合は、ステップS13Bへと進み、これまでのカウント値Jが最大値Rmaxに達しているか否かが判定される。カウント値が最大値Rmaxに達していない場合には、ステップS13Cへと進み、0を示す数値データが連続して抽出された回数をランレングス値Rとしてカウントするランレングス値カウント段階が実行される。具体的には、このステップS13Cにおいて、カウント値Jを1だけ増加させる処理が行われ、再び、ステップS13のデータ抽出段階が実行される。結局、最大値Rmaxに達しない限り、数値0が抽出されるたびに、ステップS13Cで0の抽出回数が計数されることになる。
At this time, the count value J is assumed to be the
一方、抽出した数値データが0を示すデータではなかった場合、ステップS13AからステップS14へと進み、実データの生成が行われる。この実データの生成処理は、§4で述べたとおりである。たとえば、符号付きの数値データを取り扱う場合、抽出した数値データが正の値を示すデータである場合には、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成し、抽出した数値データが負の値を示すデータである場合には、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成する。 On the other hand, if the extracted numerical data is not data indicating 0, the process proceeds from step S13A to step S14, and actual data is generated. The actual data generation process is as described in §4. For example, when handling signed numeric data, if the extracted numeric data is data indicating a positive value, a variable-length bit string that does not include 0 at the beginning is generated as actual data indicating the numeric data, When the extracted numerical data is data indicating a negative value, a variable-length bit string that does not include 1 at the head is generated as actual data indicating the numerical data.
なお、抽出した数値データが0を示すデータであり、ステップS13Bにおいて、カウント値Jが最大値Rmaxに達していたと判断された場合にも、前述した例外処理として、ステップS14の実データ生成段階が行われる。この場合、数値データは0であるから、ビット長が0である仮想のビット列が実データとして生成されることになる(実際には、ビット列の生成はない)。 Even when the extracted numerical data is data indicating 0 and it is determined in step S13B that the count value J has reached the maximum value Rmax, the actual data generation stage in step S14 is performed as the above-described exception processing. Done. In this case, since the numerical data is 0, a virtual bit string having a bit length of 0 is generated as actual data (actually, no bit string is generated).
さて、ステップS12では、二次元符号化テーブルが入力されているので、ステップS15の識別コード選択段階では、この二次元符号化テーブルを参照して、識別コードの選択が行われる。具体的には、ステップS14で生成された実データのビット長bと、当該実データが生成された時のランレングス値R(カウント値J)と、の組み合わせに対応する識別コードを選択することになる。そして、この識別コードの選択の後に、カウント値J=0にリセットする処理が行われる。要するに、識別コードが選択され、単位符号データが生成されることになるたびに、カウント値Jは0にリセットされる。 In step S12, since a two-dimensional encoding table is input, in the identification code selection stage in step S15, an identification code is selected with reference to this two-dimensional encoding table. Specifically, the identification code corresponding to the combination of the bit length b of the actual data generated in step S14 and the run length value R (count value J) when the actual data is generated is selected. become. Then, after the identification code is selected, a process of resetting the count value J = 0 is performed. In short, the count value J is reset to 0 each time an identification code is selected and unit code data is generated.
なお、ステップS13Bにおいて、カウント値Jが最大値Rmaxに達していたと判断され、ステップS14で実データが生成された場合、当該実データのビット長は0であり、その時点でのカウンタ値J=Rmaxであるから、ステップS15の識別コード選択段階では、§9で説明したとおり、例外処理用の特別な識別コード「ZRL」(図22に示す識別コード「C80」)が選択されることになる。 If it is determined in step S13B that the count value J has reached the maximum value Rmax and actual data is generated in step S14, the bit length of the actual data is 0, and the counter value J = Since it is Rmax, the special identification code “ZRL” for exception processing (the identification code “C80” shown in FIG. 22) is selected as described in §9 in the identification code selection stage of step S15. .
最後に、ステップS17において、全データについての処理が完了したと判断されるまで、ステップS13へと戻る処理が行われる。したがって、ステップS13のデータ抽出段階が、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行されることになり、更に、ステップS13Cのランレングス値カウント段階、ステップS14の実データ生成段階、ステップS15の識別コード選択段階およびステップS16の単位符号データ生成段階が、必要に応じて繰り返し実行される。 Finally, in step S17, the process of returning to step S13 is performed until it is determined that the process for all data has been completed. Accordingly, the data extraction stage of step S13 is repeatedly executed for each of the numerical data constituting the input numerical data string, and further, the run length value counting stage of step S13C, the actual data generation stage of step S14, The identification code selection stage of step S15 and the unit code data generation stage of step S16 are repeatedly executed as necessary.
なお、§9で説明したとおり、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」であった場合に、ゼロ永続状態を示す「終端コードEOB」を例外的な識別コードとして用いる方法を採る場合には、ステップS13のデータ抽出段階で、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行し、当該調査処理によりゼロ永続状態であることが確認された場合には、そのままステップS14の実データ生成段階へと進み、ビット長が0である仮想のビット列を実データとして生成し、続くステップS15の識別コード選択段階では、ゼロ永続状態を示す「終端コードEOB」を例外処理用の識別コードとして選択すればよい。 In addition, as explained in §9, in the case of the “zero persistent state that all the numerical data following the numerical data string including the numerical data to be extracted are all zero”, the zero permanent state When the method of using the “termination code EOB” indicating as an exceptional identification code is adopted, when the numerical data is extracted at the data extraction stage of step S13, “the numerical value including the numerical data to be extracted is included. Execute the investigation process to check whether the numerical data that follows until the end of the data string is “zero persistent state”, and if the investigation process confirms that it is in the zero persistent state, Proceeding to the actual data generation stage of step S14, a virtual bit string having a bit length of 0 is generated as actual data, and in the subsequent identification code selection stage of step S15, B shows a persistent state of "end code EOB" may be selected as the identification code for the exception processing.
<§6で述べた復号化方法についての変更点>
二次元符号化テーブルを利用した場合であっても、「少なくとも所定のビット長を示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配したデータであって、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ」を、複数組並べることにより構成された符号化データ列について、少なくとも個々の実データに対応する数値データを復元する復号化方法、である点には何ら変わりはない。ただ、数値0をランレングス値として表現した符号化データ列を対象とした復号化が行われる点が若干異なることになる。
<Changes in decryption method described in §6>
Even when a two-dimensional encoding table is used, “at least an identification code indicating a predetermined bit length followed by actual data consisting of a bit string having the bit length, the total length being predetermined. At least individual real data of an encoded data string formed by arranging a plurality of unit code data set so as to be an integral multiple of a reference bit length N (where N is an integer of 2 or more) There is no change in that the decoding method restores the numerical data corresponding to. However, there is a slight difference in that decoding is performed on an encoded data sequence in which the
したがって、二次元符号化テーブルを利用した復号化方法は、「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ(最大ビット長Umax)」を、複数組並べることにより構成された符号化データ列について、0を示す数値データおよび個々の実データを並べてなる元のデータ列を復元する方法と言うことができる。 Therefore, a decoding method using a two-dimensional encoding table is described as follows: “A real code consisting of a bit string having the bit length is arranged following an identification code indicating a combination of a predetermined bit length and a predetermined run length value. A data string in which numerical data corresponding to actual data is arranged after numerical data corresponding to the run length value is arranged after the numerical data indicating 0 is arranged, and the total length is a predetermined reference bit length N (however, N is numerical data indicating 0 and individual data of an encoded data sequence formed by arranging a plurality of unit code data (maximum bit length Umax) set so as to be an integer multiple of 2). It can be said that this is a method of restoring the original data string formed by arranging the actual data.
この復号化方法の手順は、基本的には、§6で述べた図17の流れ図に示された手順と同じである。ただ、ステップS22のテーブル入力段階では、図9(b) に示すような一次元符号化テーブルの代わりに、図22に示すような二次元符号化テーブルが入力される。 The procedure of this decoding method is basically the same as the procedure shown in the flowchart of FIG. 17 described in §6. However, in the table input stage of step S22, a two-dimensional encoding table as shown in FIG. 22 is input instead of the one-dimensional encoding table as shown in FIG. 9B.
また、ステップS24の復号処理段階も若干異なる。すなわち、M台の復号処理ユニットによる並列処理により、二次元符号化テーブルを参照しながら、それぞれ分配された部分データについて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに対応する数値データを並べることにより、元のデータ列を復元する復号処理が行われることになる。そして、ステップS25のデータ編成段階では、このM台の復号処理ユニットによる復号処理の結果を取捨選択して、0を示す数値データおよび個々の実データに対応する数値データを並べた復号化データ列を生成する処理が行われる。 Further, the decoding processing stage in step S24 is slightly different. That is, by parallel processing by M decoding processing units, with reference to the two-dimensional encoding table, the numerical data indicating 0 is enumerated for the number of times corresponding to the run-length value for each distributed partial data, and then the actual data By arranging numerical data corresponding to, a decoding process for restoring the original data string is performed. Then, in the data organization stage of step S25, a decrypted data sequence in which numerical data indicating 0 and numerical data corresponding to individual actual data are arranged by selecting the results of the decoding processing by the M decoding processing units. Is generated.
なお、ステップS24の復号処理段階では、例外処理用の特別な識別コード「ZRL」や「終端コードEOB」が認識された場合には、当該識別コードに応じた例外処理を行う必要がある。すなわち、識別コード「ZRL」が認識された場合には、二次元符号化テーブルで定義されているランレングスの最大値をRmax としたときに、「Rmax +1個分」の数値0を並べる処理を行う必要がある。また、「終端コードEOB」が認識された場合には、予め定められた所定のデータ長に達するまで、数値0を並べる処理を行う必要がある。
It should be noted that in the decoding process stage of step S24, when a special identification code “ZRL” or “end code EOB” for exception processing is recognized, it is necessary to perform exception processing according to the identification code. That is, when the identification code “ZRL” is recognized, the process of arranging the
<§7で述べた符号化装置についての変更点>
§7では、図18を参照しながら、本発明に係る符号化装置の基本構成を述べた。二次元符号化テーブルを利用する符号化装置の基本構成も、図18のブロック図に示す構成とほぼ同様である。ただ、テーブル格納部120には、当然ながら、個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルが格納される。この二次元符号化テーブルは、予め定められた所定の最大ランレングス値をRmaxとしたときに、実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルである。
<Changes to encoding apparatus described in §7>
In §7, the basic configuration of the encoding apparatus according to the present invention was described with reference to FIG. The basic configuration of an encoding device that uses a two-dimensional encoding table is substantially the same as the configuration shown in the block diagram of FIG. However, as a matter of course, the
また、実データ生成部140で行われる処理も若干変わってくる。たとえば、符号付きの数値データを取り扱う場合であれば、抽出した数値データが0を示すデータであり、かつ、これまでのカウント値が最大値Rmaxに達していない場合には、0を示す数値データが連続して抽出された回数をランレングス値としてカウントする処理を行い、抽出した数値データが正の値を示すデータである場合には、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成する処理を行い、抽出した数値データが負の値を示すデータである場合には、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成する処理を行い、抽出した数値データが0を示すデータであり、かつ、カウント値が最大値Rmaxに達していた場合には、ビット長が0である仮想のビット列を実データとして生成する処理を行えばよい。
Further, the processing performed by the actual
一方、識別コード選択部150は、テーブル格納部120に格納されている二次元符号化テーブルを参照して、生成された実データのビット長と、当該実データが生成された時のランレングス値と、の組み合わせに対応する識別コードを選択し、選択後にカウント値を0にリセットする処理を行うようにする。このとき、「ビット長b=0」と「ランレングス値R=Rmax」との組み合わせについては、上述した例外処理用の特別な識別コード「ZRL」を選択するようにする。
On the other hand, the identification
なお、前述した「終端コードEOB」を用いる場合には、データ抽出部130が、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行するようにし、実データ生成部140が、この調査処理によりゼロ永続状態であることが確認された場合に、ビット長が0である仮想のビット列を実データとして生成するようにし、識別コード選択部150が、この調査処理によりゼロ永続状態であることが確認された場合に、ゼロ永続状態を示す「終端コードEOB」を識別コードとして選択するようにすればよい。
When the above-mentioned “termination code EOB” is used, when the
<§8で述べた復号化装置についての変更点>
§8では、図19を参照しながら、本発明に係る復号化装置の基本構成を述べた。二次元符号化テーブルを利用する復号化装置の基本構成も、図19のブロック図に示す構成とほぼ同様である。ただ、テーブル格納部220には、当然ながら、個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルが格納される。
<Changes to the decoding device described in §8>
In §8, the basic configuration of the decoding device according to the present invention was described with reference to FIG. The basic configuration of a decoding apparatus that uses a two-dimensional encoding table is almost the same as the configuration shown in the block diagram of FIG. However, as a matter of course, the
そして、この復号化装置は、「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に前記実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された単位符号データ(最大ビット長Umax)」を、複数組並べることにより構成された符号化データ列について、0を示す数値データおよび個々の実データを並べてなる元のデータ列を復元する機能をもった装置ということになる。 The decoding device has a structure in which “the identification code indicating a combination of a predetermined bit length and a predetermined run length value is followed by real data including a bit string having the bit length, Represents a data string in which numerical data corresponding to the actual data are arranged after being enumerated a number of times corresponding to the run length value, and the total length is a predetermined reference bit length N (where N is an integer of 2 or more) ), Numerical data indicating 0 and individual actual data are arranged for an encoded data string configured by arranging a plurality of unit code data (maximum bit length Umax) set to be an integral multiple of “). This means a device having a function of restoring the original data string.
また、この装置におけるM台の復号処理ユニット240(1)〜240(M)は、テーブル格納部220に格納されている二次元符号化テーブルを参照しながら、それぞれ分配された部分データについて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに対応する数値データを並べることにより、元のデータ列を復元する復号処理を行うことになる。そして、データ編成部250は、このM台の復号処理ユニット240(1)〜240(M)による復号処理の結果を取捨選択して、0を示す数値データおよび個々の実データに対応する数値データを並べた復号化データ列を生成する。
Further, the M decoding processing units 240 (1) to 240 (M) in this apparatus refer to the two-dimensional encoding table stored in the
なお、復号処理ユニット240(1)〜240(M)には、例外処理用の特別な識別コード「ZRL」や「終端コードEOB」が認識された場合には、当該識別コードに応じた例外処理を行う機能をもたせておく。すなわち、識別コード「ZRL」が認識された場合には、二次元符号化テーブルで定義されているランレングスの最大値をRmax としたときに、「Rmax +1個分」の数値0を並べる処理を行うようにする。また、「終端コードEOB」が認識された場合には、これをデータ編成部250に報告するようにし、データ編成部250では、予め定められた所定のデータ長(たとえば、後述するJPEG画像データのAC成分の場合であれば、合計63個の数値データ)に達するまで、数値0を並べる処理を行い、当該符号化データ列Sについての復号化の処理を打ち切るようにする。
When the special identification code “ZRL” or “termination code EOB” for exception processing is recognized in the decryption processing units 240 (1) to 240 (M), exception processing corresponding to the identification code is performed. Have a function to do. That is, when the identification code “ZRL” is recognized, the process of arranging the
<符号化データファイルについての変更点>
図15には、本発明に係る符号化方法によって作成される符号化データファイルFの構造例を示したが、二次元符号化テーブルを利用した符号化を行った場合、このデータファイルFの内容も若干異なることになる。すなわち、データファイルF内には、「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に前記実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された、互いに長さの異なる複数通りの単位符号データ(最大ビット長Umax)」を、並べることにより構成されるビット羅列データと、個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルTと、が収容されることになる。
<Changes to encoded data file>
FIG. 15 shows an example of the structure of the encoded data file F created by the encoding method according to the present invention. When encoding is performed using a two-dimensional encoding table, the contents of the data file F are shown. Will be slightly different. That is, the data file F has a structure in which “the identification code indicating a combination of a predetermined bit length and a predetermined run length value is followed by actual data including a bit string having the bit length,” This is a data string in which numerical data corresponding to the actual data is arranged after the numerical data indicating 0 is enumerated the number of times corresponding to the run length value, and the total length is a predetermined reference bit length N (where N is 2 or more) It corresponds to bit sequence data configured by arranging multiple unit code data (maximum bit length Umax) of different lengths set to be an integer multiple of (integer) and individual identification codes A two-dimensional encoding table T indicating a combination of a specific bit length and a specific run length value is accommodated.
ここで、二次元符号化テーブルTは、数値データ列を可変長のビット列を用いて符号化する符号化方法に用いるテーブルであって、所定範囲内の複数通りのビット長と所定範囲内の複数通りのランレングス値とについて、個々のビット長と個々のランレングス値との各組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係が示されており、このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルということになる。 Here, the two-dimensional encoding table T is a table used for an encoding method for encoding a numeric data string using a variable-length bit string, and a plurality of bit lengths within a predetermined range and a plurality of bits within a predetermined range. For each run-length value, the correspondence between each bit length and each run-length value and the unique identification code corresponding to that combination is shown. Even when attention is paid to the identification code, another identification code in which the a-bit portion from the head is the same as the target identification code when the bit length of the target identification code itself is a is included in this table. “A + b = k × N” (provided that a predetermined reference bit length N (where N is an integer equal to or greater than 2) is n, where b is the bit length corresponding to the identification code of interest. , K will be referred to the table that satisfy an arbitrary integer) The condition.
一方、図16には、本発明に係る符号化方法によって作成される符号化データファイルFの別な構造例を示したが、二次元符号化テーブルを利用した符号化を行った場合、このデータファイルFの内容も若干異なることになる。すなわち、データファイルF内には、「所定のビット長と所定のランレングス値との組み合わせを示す識別コードに後続して、当該ビット長をもつビット列からなる実データを配した構造を有し、0を示す数値データを当該ランレングス値に相当する回数だけ羅列した後に前記実データに対応する数値データを並べたデータ列を示し、全長が所定の基準ビット長N(但し、Nは2以上の整数)の整数倍になるように設定された、互いに長さの異なる複数通りの単位符号データ(最大ビット長Umax)」を、並べることにより構成されるビット羅列データと、個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルを特定するテーブル特定情報Hと、が収容されることになる。 On the other hand, FIG. 16 shows another example of the structure of the encoded data file F created by the encoding method according to the present invention. When encoding is performed using a two-dimensional encoding table, this data The contents of file F will also be slightly different. That is, the data file F has a structure in which “the identification code indicating a combination of a predetermined bit length and a predetermined run length value is followed by actual data including a bit string having the bit length,” This is a data string in which numerical data corresponding to the actual data is arranged after the numerical data indicating 0 is enumerated the number of times corresponding to the run length value, and the total length is a predetermined reference bit length N (where N is 2 or more) It corresponds to bit sequence data configured by arranging multiple unit code data (maximum bit length Umax) of different lengths set to be an integer multiple of (integer) and individual identification codes Table specifying information H for specifying a two-dimensional encoding table indicating a combination of a specific bit length and a specific run length value is accommodated.
<ゼロ以外のランレングスの取り扱い>
これまで述べた例は、いずれも数値データ列に含まれる連続した0をランレングスとして表現する例であった。一般に、画像データには、連続した0が含まれることが多く、特に、後述するJPEG形式の画像データの場合、連続した多数の0が含まれる。ただ、本発明に係る二次元符号化テーブルを利用した符号化方法は、必ずしも数値0をランレングスとして表現する方法に限定されるものではなく、任意の数値Xをランレングスとして表現する場合にも適用可能である。
<Handling non-zero run length>
All of the examples described so far are examples in which consecutive 0s included in the numerical data string are expressed as run lengths. In general, image data often includes consecutive zeros. In particular, in the case of image data in the JPEG format described later, a large number of consecutive zeros are included. However, the encoding method using the two-dimensional encoding table according to the present invention is not necessarily limited to the method of expressing the
たとえば、符号化の対象となる数値データ列に、特定の数値Xの連続部分が多く含まれている場合、数値0の代わりに、当該特定の数値Xをランレングスとして表現した符号化を行うと効率的である。この場合、数値0については、通常の表現(ランレングスではなく、実データとしての表現)を行い、数値Xについては、連続して出現する回数をカウントして、ランレングス値として符号化を行うようにすればよい。
For example, when a numeric data string to be encoded includes a large number of consecutive portions of a specific numerical value X, encoding that expresses the specific numerical value X as a run length instead of the
また、§9で述べた「0をランレングスとして表現する方法」をそのまま利用して、実質的に、任意の数値Xをランレングスとして表現することも可能である。具体的には、符号化の対象となる一群の数値データすべてについて、予めXを減算する処理を施した後に、§9で述べた方法で符号化を行えばよい。また、復号化を行う際には、§9で述べてきた方法で復号化を行った後に、Xを加算する処理を行えばよい。 Further, it is possible to express an arbitrary numerical value X as a run length by using the “method of expressing 0 as a run length” described in §9 as it is. Specifically, all the group of numerical data to be encoded may be encoded by the method described in §9 after performing a process of subtracting X in advance. Further, when performing decoding, after performing decoding by the method described in §9, a process of adding X may be performed.
たとえば、数値「7」が連続して続くことが多いデータを符号化する場合、まず、全データからそれぞれ「7」を減算する処理を行う。この処理により、数値「7」は数値「0」に変換されるので、数値「7」の連続部分は数値「0」の連続部分に変換されることになる。したがって、§9で述べた方法で符号化を行えば、数値「0」の連続部分(元は数値「7」の連続部分)は、ランレングスによって表現される。一方、復号化を行う際には、§9で述べてきた方法で得られた復号化データに対して、それぞれ「7」を加算する処理が行われるので、元通りの正しい数値の復元が可能になる。 For example, when encoding data that frequently continues with the numerical value “7”, first, a process of subtracting “7” from all data is performed. With this processing, the numerical value “7” is converted into the numerical value “0”, and therefore, the continuous portion of the numerical value “7” is converted into the continuous portion of the numerical value “0”. Therefore, if encoding is performed by the method described in §9, a continuous portion of the numerical value “0” (originally a continuous portion of the numerical value “7”) is expressed by a run length. On the other hand, when decoding is performed, a process of adding “7” to the decoded data obtained by the method described in §9 is performed, so that the original correct numerical value can be restored. become.
もちろん、符号化の際に、予めXを加算する処理を行い、復号化の際に、Xを減算する処理を行うようにしてもかまわない。なお、減算や加算を行うと、ビット数が増えることになるので(たとえば、−127〜+127の範囲内の数値であれば、8ビットで表現できるが(1の補数表現)、「7」を減算すると、−134〜+120の範囲内の数値となるため、9ビット必要になる)、これを避けるには、元の範囲の下限からはみ出した数値をローテーションして上限へまわし、元の範囲の上限からはみ出した数値をローテーションして下限へまわす処理を行えばよい(たとえば、上例の場合、−134は+121に置き換えられ、−133は+122に置き換えられ、... 、−128は+127に置き換えられ、数値範囲は元どおり−127〜+127になる)。 Of course, the process of adding X in advance may be performed at the time of encoding, and the process of subtracting X may be performed at the time of decoding. If subtraction or addition is performed, the number of bits increases (for example, a numerical value in the range of −127 to +127 can be expressed in 8 bits (1's complement expression)), but “7” When subtracting, it becomes a value in the range of -134 to +120, so 9 bits are required.) To avoid this, rotate the value that protrudes from the lower limit of the original range and rotate it to the upper limit, It is only necessary to rotate the numerical value protruding from the upper limit and rotate it to the lower limit (for example, in the above example, −134 is replaced with +121, −133 is replaced with +122,..., −128 is replaced with +127. And the numerical range will be -127 to +127 as before).
<<< §11.JPEG画像への適用 >>>
ここでは、本発明に係る符号化/復号化方法をJPEG画像へ適用した実施形態を説明する。JPEG方式は、静止画像データを圧縮する方式のひとつとして、コンピュータやデジタルカメラで広く利用されており、この方式で圧縮された画像は、一般にJPEG画像と呼ばれている。
<<<< §11. Application to JPEG images >>>
Here, an embodiment in which the encoding / decoding method according to the present invention is applied to a JPEG image will be described. The JPEG method is widely used in computers and digital cameras as one method for compressing still image data. An image compressed by this method is generally called a JPEG image.
図25は、一般的なJPEG画像用の圧縮・伸張処理装置の構成を示すブロック図である。JPEG方式の圧縮を行うには、まず、1枚の画像を8×8画素という固定サイズのブロックに分割し、この8×8画素ブロックの単位で処理を行うことになる。 FIG. 25 is a block diagram showing a configuration of a general JPEG image compression / decompression processing apparatus. In order to perform JPEG compression, first, one image is divided into fixed-size blocks of 8 × 8 pixels, and processing is performed in units of 8 × 8 pixel blocks.
JPEG画像用の圧縮処理装置300は、図示のとおり、DCT手段310、量子化手段320、符号化手段330によって構成されている。DCT手段310は、8×8画素ブロックのデータXに対して、離散コサイン変換(DCT: Discrete Cosine Transform)を用いて、空間領域から周波数領域へ変換する処理を行う。続いて、量子化手段320によって情報量の削減を行い、更に、符号化手段330によってデータ圧縮のための符号化を行うことにより、圧縮データYを得る。
The compression processing apparatus 300 for JPEG images includes a
一方、JPEG画像用の伸張処理装置400は、図示のとおり、復号化手段410、逆量子化手段420、逆DCT手段430によって構成されている。これらの各手段は、圧縮処理装置300における符号化手段330、量子化手段320、DCT手段310とは逆の処理を行う機能を有している。したがって、圧縮データYに対して、圧縮時とは逆のプロセスが実行され、元の8×8画素ブロックのデータXが得られる。
On the other hand, the JPEG image decompression processing apparatus 400 includes a
このようなJPEG画像の圧縮/伸張処理を行う装置における符号化手段330および復号化手段410の部分に本発明を適用することが可能である。以下、具体的な適用例を簡単に説明する。
The present invention can be applied to the
図25に示す量子化手段320の量子化処理が完了すると、量子化後の8×8画素ブロックを構成する全64画素のうち左上の1画素はDC成分の画素値をもち、残りの63画素はAC成分の画素値をもつことになる。図26は、このような量子化後の8×8画素ブロックを構成する画素配列を示す平面図である。この画素配列を構成する個々の画素のもつ値は、DCT処理後の画素値であり、もとの画像の画素値ではない。したがって、正確に言えば、「画素値」ではなく「DCT係数」と呼ぶべき値である。ただ、以下の説明では、便宜上、これらの値も「画素値」と呼ぶことにする。図に「DC」と記載した画素が、DC成分の画素値をもつ画素であり、その他の63画素がAC成分の画素値をもつ画素になる。AC成分は画素値の周波数成分を示す情報であり、DC成分は8×8画素ブロックの画素値の平均を示す情報になる。
When the quantization process of the
このような8×8画素ブロックを構成するデータに対して符号化を行う際には、図示のとおり、AC成分についてジグザグスキャン処理が行われる。すなわち、AC成分の画素値をもつ63画素について、図に矢印で示す順番で並び替えが行われる。これは、DCT手段310による離散コサイン変換を行うと、低い周波数成分ほどブロックの左上近傍に集まり、高い周波数成分ほどブロックの右下近傍に集まる性質があるためである。図示のようなジグザグスキャン処理による並べ替えを行うと、AC成分の画素値をもつ63画素は、低周波成分から高周波成分へと順に並べ替えられる。
When encoding data constituting such an 8 × 8 pixel block, a zigzag scan process is performed on the AC component as illustrated. That is, the 63 pixels having the pixel value of the AC component are rearranged in the order indicated by the arrows in the drawing. This is because, when the discrete cosine transform is performed by the
上述の処理を、具体的な実例を挙げて示そう。図27は、JPEG方式の圧縮処理の対象となる量子化後の画素ブロックの画素値分布の一例を示す平面図である。ここで、左上画素の画素値「20」がDC成分を示す値であり、残りの63画素の各画素値がAC成分を示す値になる。図28は、図27に示す画素ブロックから抽出したDC成分およびAC成分の数値データを示す図である。DC成分の数値データは、図28(a) に示すように「20」のみであり、符号ビットを含めて12ビットのデータで表現されることになっている。一方、AC成分の数値データは、ジグザグスキャン処理による並べ替えの結果、図28(b) に示すように、63個の数値データ列になり、それぞれ符号ビットを含めて11ビットのデータで表現されることになっている。 Let us illustrate the above process with specific examples. FIG. 27 is a plan view illustrating an example of a pixel value distribution of a quantized pixel block that is a target of JPEG compression processing. Here, the pixel value “20” of the upper left pixel is a value indicating the DC component, and each of the remaining 63 pixels is a value indicating the AC component. FIG. 28 is a diagram showing numerical data of DC components and AC components extracted from the pixel block shown in FIG. The numerical data of the DC component is only “20” as shown in FIG. 28A, and is expressed by 12-bit data including the sign bit. On the other hand, the numerical data of the AC component becomes 63 numerical data strings as a result of rearrangement by the zigzag scanning process, and is expressed by 11-bit data including the sign bit, respectively. Is supposed to.
DC成分の数値データおよびAC成分の数値データは、いずれも符号をもった数値となる(たとえば、図示の例では、数値「−2」が負のデータになっている)。図では、説明の便宜上、各数値データを10進表記で示しているが、実際には、DC成分の数値データは、符号ビットを除くと11ビット固定長のビット列として与えられ、AC成分の数値データは、符号ビットを除くと10ビット固定長のビット列として与えられる。 Both the numerical data of the DC component and the numerical data of the AC component are numerical values having a sign (for example, in the example shown, the numerical value “−2” is negative data). In the figure, for convenience of explanation, each numerical data is shown in decimal notation. Actually, however, the numerical data of the DC component is given as an 11-bit fixed length bit string excluding the sign bit, and the numerical value of the AC component. Data is given as a 10-bit fixed-length bit string excluding the sign bit.
ここで、図28(a) に示すDC成分の数値データは、1ブロックについて1つのみ抽出されるデータであるため、可変長ビット列への符号化を行う際には、一次元符号化テーブルを用いれば十分である。これに対して、図28(b) に示すAC成分の数値データは、1ブロックについて63個の連続したデータとして得られ、しかも0が連続して出現する可能性が高い。特に高周波成分を示す後半には0が続く可能性が高い。したがって、このAC成分の数値データについて可変長ビット列への符号化を行う際には、二次元符号化テーブルを用いるのが好ましい。 Here, since the numerical data of the DC component shown in FIG. 28 (a) is data extracted only for one block, when encoding into a variable length bit string, a one-dimensional encoding table is used. It is sufficient to use it. On the other hand, the numerical data of the AC component shown in FIG. 28B is obtained as 63 continuous data for one block, and there is a high possibility that 0 appears continuously. In particular, there is a high possibility that 0 will continue in the second half showing the high frequency component. Therefore, it is preferable to use a two-dimensional encoding table when encoding the numerical data of the AC component into a variable length bit string.
したがって、図25に示すJPEG画像用圧縮処理装置300の符号化手段330としては、DC成分の数値データの符号化を行う部分については、これまで述べてきた一次元符号化テーブルを用いる符号化装置を採用し、AC成分の数値データの符号化を行う部分については、これまで述べてきた二次元符号化テーブルを用いる符号化装置を採用すればよい。同様に、JPEG画像用伸張処理装置400の復号化手段410としては、DC成分の数値データの復号化を行う部分については、これまで述べてきた一次元符号化テーブルを用いる復号化装置を採用し、AC成分の数値データの復号化を行う部分については、これまで述べてきた二次元符号化テーブルを用いる復号化装置を採用すればよい。
Therefore, as the encoding means 330 of the JPEG image compression processing apparatus 300 shown in FIG. 25, the encoding apparatus using the one-dimensional encoding table described so far for the part that encodes the numerical data of the DC component. For the part that encodes the numerical data of the AC component, the encoding device using the two-dimensional encoding table described so far may be used. Similarly, as the
図29は、DC成分の数値データに対する符号化に用いるDC成分用符号化テーブル(一次元符号化テーブル)の一例を示す図である。図示のとおり、ビット長b=0〜11の範囲について、それぞれ識別コードCが定義されている。テーブルの右側の破線欄には、参考のため、各識別コードC自身のビット長aと、当該識別コードCを用いて作成される単位符号データUのビット長「a+b」とを示してある。図示のとおり、Uのビット長「a+b」は、4,8,12,16,20のいずれかに該当する。これは、N=4に設定したときに、「a+b=k×N」(但し、kは任意の整数)なる条件を満足することを示している。 FIG. 29 is a diagram illustrating an example of a DC component encoding table (one-dimensional encoding table) used for encoding numerical data of DC components. As shown in the figure, an identification code C is defined for each of the bit lengths b = 0 to 11. The broken line column on the right side of the table shows the bit length a of each identification code C and the bit length “a + b” of the unit code data U created using the identification code C for reference. As shown in the figure, the bit length “a + b” of U corresponds to any of 4, 8, 12, 16, and 20. This indicates that when N = 4, the condition “a + b = k × N” (where k is an arbitrary integer) is satisfied.
もちろん、この符号化テーブルは、「このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない」という可変長符号化テーブルに必要とされる条件も満足している。 Of course, this encoding table is “when any identification code in this table is focused, when the bit length of the focused identification code itself is a, the a-bit part from the beginning is the focused identification code. There is also a condition required for the variable length coding table that there is no other identification code in the table that is the same as
図30は、図29に示すテーブルを利用して図28に示すDC成分を符号化した結果を示す図である。数値「20」について、冗長ビットを削除した実データDは「10100」になり、そのデータ長「5」に対応する識別コードCは、図29のテーブルを参照すると「010」になる。よって、DC成分の数値データ「20」は、図30に示すように、「01010100」なる8ビットの符号化データに変換されることになる。 FIG. 30 is a diagram showing a result of encoding the DC component shown in FIG. 28 using the table shown in FIG. With respect to the numerical value “20”, the actual data D from which redundant bits are deleted is “10100”, and the identification code C corresponding to the data length “5” is “010” when referring to the table of FIG. Therefore, the numerical data “20” of the DC component is converted into 8-bit encoded data “01010100” as shown in FIG.
一方、図31は、AC成分の数値データに対する符号化に用いるAC成分用符号化テーブル(二次元符号化テーブル)の一例を示す図である。図示のとおり、ビット長b=0〜10の範囲およびランレングス値R=0〜15の範囲の組み合わせについて、それぞれ識別コードCが定義されている。図22に示す二次元符号化テーブルでは、説明の便宜上、個々の識別コードを略記号C00〜C88で示したが、この図31に示すテーブルでは、個々の識別コードを実際のビット列で示してある。なお、ビット長b=0の欄の識別コード「0010」は、前述した例外処理用の「終端コードEOB」であり、識別コード「0101」は、前述した例外処理用の「ZRL」である。 On the other hand, FIG. 31 is a diagram illustrating an example of an AC component encoding table (two-dimensional encoding table) used for encoding numerical data of AC components. As shown in the figure, an identification code C is defined for each combination of the range of the bit length b = 0 to 10 and the range of the run length value R = 0 to 15. In the two-dimensional encoding table shown in FIG. 22, for the sake of convenience of explanation, individual identification codes are indicated by abbreviations C00 to C88. However, in the table shown in FIG. 31, each identification code is indicated by an actual bit string. . The identification code “0010” in the column of bit length b = 0 is the “end code EOB” for exception processing described above, and the identification code “0101” is “ZRL” for exception processing described above.
もちろん、この図31に示すテーブルも、「このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない」という可変長符号化テーブルに必要とされる条件を満足しており、更に、「当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して『a+b=k×N』(但し、kは任意の整数)」という条件を満たしている。具体的には、N=4に設定されているため、単位符号データUのビット長は、4,8,12,16,20,24といった4の倍数になる。 Of course, the table shown in FIG. 31 also indicates that “a bit of the identification code itself has a bit length from the beginning when the identification code in the table is focused. It satisfies the condition required for the variable length coding table that “another identification code that is the same as the identification code does not exist in this table”, and “the bit length corresponding to the target identification code” Where b is a predetermined reference bit length N (where N is an integer of 2 or more), the condition “a + b = k × N” (where k is an arbitrary integer) ”is satisfied. Specifically, since N = 4 is set, the bit length of the unit code data U is a multiple of 4, such as 4, 8, 12, 16, 20, 24.
図32は、図31に示すテーブルを利用して図28に示すAC成分を符号化するプロセスを示す図である。この図32に示す表の構成は、図23の上段に示す表の構成と同じであり、各数値データDについて、識別コードCおよび実データD(単位符号コードU)と、カウント値Jとが示されている。このカウント値Jは、ゼロのランレングス値を計数するための変数である。この表において、データ番号1〜63が付された63個の数値データDは、それぞれ図28(b) に示す63個のAC成分の数値データ(10ビット固定長のビット列)である。以下、この図32の表を上から順に見てゆこう。
FIG. 32 is a diagram showing a process of encoding the AC component shown in FIG. 28 using the table shown in FIG. The configuration of the table shown in FIG. 32 is the same as the configuration of the table shown in the upper part of FIG. 23. For each numerical data D, an identification code C, actual data D (unit code code U), and a count value J are included. It is shown. The count value J is a variable for counting zero run length values. In this table, 63 pieces of numerical data D to which
まず、データ番号1の行には、数値データ「5」(10ビット固定長による2進表記は「0000000101」)」について、実データ「101」と、この実データのビット長「3」に対応する識別コード「01100」と、カウント値「J=0」が示されている。前述したとおり、カウント値Jは、数値データDが0であった場合には、+1だけカウントアップされ(但し、最大値Rmax =15に達していた場合には、カウントアップされない)、数値データDが0でなかった場合には、識別コードCを選択した後に0にリセットされる。データ番号1の数値データは「5」であるため、識別コード「01100」の選択後に、J=0にリセットされる。識別コード「01100」は、図31に示す二次元符号化テーブルにおいて、「ビット長b=3」と「ランレングス値0」との組み合わせに対応する識別コードである。ここで、「ビット長b=3」は、実データ「101」のビット長を示すものであり、「ランレングス値0」は、その時点のカウント値Jを示すものである。
First, the row of
次のデータ番号2の行では、数値データが「0」(10ビット固定長による2進表記は「0000000000」)」であるため、識別コードCの選択や実データDの作成は行われず、単位符号データUは作成されない。その代わりに、カウント値JがJ=1にカウントアップされる。同様に、データ番号3,4の行においても、カウント値JがそれぞれJ=2,J=3にカウントアップされる。
In the next row of
続くデータ番号5の行では、数値データが「37」(10ビット固定長による2進表記は「0000100101」)」であるため、実データ「100101」が作成される。この実データのビット長b=6と、その時点でのカウント値J=3に基づいて、図31のテーブルを参照することにより、対応する識別コード「1111011000」が選択され、カウント値はJ=0にリセットされる。
In the subsequent line of
次のデータ番号6の行では、数値データが「0」であるため、識別コードCの選択や実データDの作成は行われず、単位符号データUは作成されない。その代わりに、カウント値JがJ=1にカウントアップされる。
In the next row of
続くデータ番号7の行では、数値データが「23」(10ビット固定長による2進表記は「0000010111」)」であるため、実データ「10111」が作成される。この実データのビット長b=5と、その時点でのカウント値J=1に基づいて、図31のテーブルを参照することにより、対応する識別コード「1011111」が選択され、カウント値はJ=0にリセットされる。
In the subsequent row of
次のデータ番号8〜13の行では、いずれも数値データが「0」であるため、識別コードCの選択や実データDの作成は行われず、単位符号データUは作成されない。その代わりに、カウント値Jが順次カウントアップされ、最終的にJ=6になる。
In the next rows of
続くデータ番号14の行では、数値データが「−2」(10ビット固定長による2進表記は「1111111101」)」であるため、実データ「01」が作成される。この実データのビット長b=2と、その時点でのカウント値J=6に基づいて、図31のテーブルを参照することにより、対応する識別コード「101100」が選択され、カウント値はJ=0にリセットされる。
In the subsequent line of
次のデータ番号15〜16の行では、いずれも数値データが「0」であるため、識別コードCの選択や実データDの作成は行われず、単位符号データUは作成されない。その代わりに、カウント値Jが順次カウントアップされ、最終的にJ=2になる。
In the next rows of
続くデータ番号17の行では、数値データが「9」(10ビット固定長による2進表記は「0000001001」)」であるため、実データ「1001」が作成される。この実データのビット長b=4と、その時点でのカウント値J=2に基づいて、図31のテーブルを参照することにより、対応する識別コード「11010000」が選択され、カウント値はJ=0にリセットされる。
In the subsequent line of
次のデータ番号18の行では、数値データが「0」であるが、それ以降、データ番号63まで、数値データがすべて「0」である「ゼロ永続状態」が確認される。そこで、図31のテーブルを参照することにより、「終端コードEOB」に対応する識別コード「0010」が選択され、処理はそこで打ち切られる。
In the next row of
かくして、図28(b) に示す合計63個の固定長ビットからなるAC成分の数値データは、図33に示すような可変長ビットからなる符号化データ列に変換されることになる。ここで、図33の1〜6行目に示す各ビット列は、図32の表におけるそれぞれ第1,5,7,14,17,18行目の単位符号データUに対応するものであり、右端の括弧内の数字はそのデータ長を示している。実際に得られる符号化データ列は、この図33に示すビット列をすべて連結した合計60個のビットの列になる。もちろん、当該ビット列には何ら区切りはないが、各単位符号データのデータ長は、括弧内の数字に示すとおり、いずれも4の倍数となっており、本発明に特有の並列処理による復号化に適した形になっている。 Thus, the AC component numerical data consisting of a total of 63 fixed-length bits shown in FIG. 28 (b) is converted into an encoded data string consisting of variable-length bits as shown in FIG. Here, each bit string shown in the 1st to 6th rows in FIG. 33 corresponds to the unit code data U in the 1st, 5th, 7th, 14th, 17th and 18th rows in the table of FIG. The number in parentheses indicates the data length. The actually obtained encoded data string is a string of a total of 60 bits obtained by concatenating all the bit strings shown in FIG. Of course, the bit string is not delimited at all, but the data length of each unit code data is a multiple of 4, as indicated by the numbers in parentheses, and can be decoded by parallel processing unique to the present invention. It has a suitable shape.
図34は、図33に示す符号化データ列を、本発明に係る復号化方法を用いて、7台の復号処理ユニットによる並列処理で復号化する原理を示す図である。図には、7台のユニットQ1〜Q7に、それぞれ24ビットずつの部分データが分配された状態が示されている。各ユニットを示す符号Q1〜Q7の下に示した括弧書きの数値は、各ユニットに分配される部分データが、元のデータ(図33に示す全60ビットのデータ)の先頭から何ビット目に相当するかを示している。たとえば、ユニットQ1には、先頭から1〜24ビット目のデータが分配され、ユニットQ2には、先頭から5〜28ビット目のデータが分配されている。この例の場合、基準ビット長N=4に設定されているため、各ユニットには、4ビットずつずらした位置の部分データが分配されることになる。 FIG. 34 is a diagram showing the principle of decoding the encoded data sequence shown in FIG. 33 by parallel processing by seven decoding processing units using the decoding method according to the present invention. The figure shows a state in which partial data of 24 bits is distributed to each of seven units Q1 to Q7. The numerical values in parentheses shown below the reference signs Q1 to Q7 indicating each unit indicate that the partial data distributed to each unit is in what bit from the beginning of the original data (60-bit data shown in FIG. 33). It shows whether it corresponds. For example, data of 1 to 24 bits from the head is distributed to the unit Q1, and data of 5 to 28 bits from the head is distributed to the unit Q2. In this example, since the reference bit length N = 4 is set, partial data at a position shifted by 4 bits is distributed to each unit.
図35は、こうして部分データの分配を受けた7台のユニットQ1〜Q7によって行われる復号処理プロセスを示す図である。復号処理は、図31に示すAC成分用符号テーブルを参照することによって行われる。 FIG. 35 is a diagram showing a decoding process performed by the seven units Q1 to Q7 that have received the partial data distribution. The decoding process is performed by referring to the AC component code table shown in FIG.
たとえば、ユニットQ1では、先頭から比較対象を1ビットずつ増やしながら、テーブルを参照して合致する識別コードを探索してゆくと、「01100」なるビット列が、「b=3,R=0」に対応する識別コードに合致する。そこで、後続する3ビット「101」の部分を実データとして認識し、数値「5」の復元に成功する。続く、「1111011000」なるビット列は、「b=6,R=3」に対応する識別コードに合致するので、後続する6ビット「100101」の部分を実データとして認識し、数値「37」の復元に成功する。また、ランレングス値R=3に応じて、数値「37」に先行して数値「0」を3回配置する処理が行われる。結局、処理結果は図の右側に示すように、[5][0][0][0][37],P1=24になる。 For example, in the unit Q1, if a matching identification code is searched with reference to the table while increasing the comparison target bit by bit from the beginning, the bit string “01100” becomes “b = 3, R = 0”. Matches the corresponding identification code. Therefore, the subsequent 3 bits “101” are recognized as actual data, and the numerical value “5” is successfully restored. Since the subsequent bit string “1111011000” matches the identification code corresponding to “b = 6, R = 3”, the subsequent 6-bit “100101” is recognized as actual data, and the numerical value “37” is restored. To succeed. Further, according to the run length value R = 3, a process of arranging the numerical value “0” three times before the numerical value “37” is performed. Eventually, the processing result is [5] [0] [0] [0] [37], P1 = 24, as shown on the right side of the figure.
ユニットQ2では、「0101」なるビット列が、[ZRL]に対応する識別コードに合致する。この識別コードは、前述したとおり、例外処理を行うための識別コードであり、数値「0」を「Rmax +1個」だけ並べる処理を意味する。図31に示すテーブルの場合、Rmax =15であるから、結局、数値「0」を16個並べる処理が行われる。続いて、「1111011000」なるビット列が、「b=6,R=3」に対応する識別コードに合致する。そこで、後続する6ビット「100101」の部分を実データとして認識し、数値「37」の復元に成功する。また、ランレングス値R=3に応じて、数値「37」に先行して数値「0」を3回配置する処理が行われる。その後は、正常な復号処理を行うことはできず、処理結果は図の右側に示すように、[0]×16[0][0][0][37][ERR],P2=20になる。 In the unit Q2, the bit string “0101” matches the identification code corresponding to [ZRL]. As described above, this identification code is an identification code for performing exception processing, and means a process of arranging numerical values “0” by “Rmax + 1”. In the case of the table shown in FIG. 31, since Rmax = 15, the process of arranging 16 numerical values “0” is performed after all. Subsequently, the bit string “1111011000” matches the identification code corresponding to “b = 6, R = 3”. Therefore, the subsequent 6-bit “100101” part is recognized as actual data, and the numerical value “37” is successfully restored. Further, according to the run length value R = 3, a process of arranging the numerical value “0” three times before the numerical value “37” is performed. After that, normal decryption processing cannot be performed, and the processing result is [0] × 16 [0] [0] [0] [37] [ERR], P2 = 20 as shown on the right side of the figure. Become.
ユニットQ3では、「1111011000」なるビット列が、「b=6,R=3」に対応する識別コードに合致する。そこで、後続する6ビット「100101」の部分を実データとして認識し、数値「37」の復元に成功する。また、ランレングス値R=3に応じて、数値「37」に先行して数値「0」を3回配置する処理が行われる。ただ、その後は、正常な復号処理を行うことはできず、処理結果は図の右側に示すように、[0][0][0][37][ERR],P3=16になる。 In the unit Q3, the bit string “1111011000” matches the identification code corresponding to “b = 6, R = 3”. Therefore, the subsequent 6-bit “100101” part is recognized as actual data, and the numerical value “37” is successfully restored. Further, according to the run length value R = 3, a process of arranging the numerical value “0” three times before the numerical value “37” is performed. However, after that, normal decoding processing cannot be performed, and the processing result is [0] [0] [0] [37] [ERR], P3 = 16 as shown on the right side of the figure.
ユニットQ4では、「01100」なるビット列が、「b=3,R=0」に対応する識別コードに合致する。そこで、後続する3ビット「010」の部分を実データとして認識し、数値「−5」の復元に成功する。続く「0101」なるビット列は、[ZRL]に対応する識別コードに合致するので、数値「0」を16個並べる処理が行われる。次の「1011111」なるビット列は、「b=5,R=1」に対応する識別コードに合致する。そこで、後続する5ビット「10111」の部分を実データとして認識し、数値「23」の復元に成功する。また、ランレングス値R=1に応じて、数値「23」に先行して数値「0」を1回配置する処理が行われる。処理結果は図の右側に示すように、[−5][0]×16[0][23],P4=24になる。 In the unit Q4, the bit string “01100” matches the identification code corresponding to “b = 3, R = 0”. Therefore, the subsequent 3-bit “010” portion is recognized as actual data, and the numerical value “−5” is successfully restored. Since the subsequent bit string “0101” matches the identification code corresponding to [ZRL], the process of arranging 16 numerical values “0” is performed. The next bit string “1011111” matches the identification code corresponding to “b = 5, R = 1”. Therefore, the subsequent 5-bit “10111” portion is recognized as actual data, and the numerical value “23” is successfully restored. Further, according to the run length value R = 1, a process of arranging the numerical value “0” once before the numerical value “23” is performed. The processing result is [−5] [0] × 16 [0] [23], P4 = 24, as shown on the right side of the figure.
ユニットQ5では、「0010」なるビット列が、「終端コードEOB」に対応する識別コードに合致する。この識別コードは、前述したとおり、ゼロ永続状態の例外処理を行うための識別コードであり、数値データ列の末尾まで、数値「0」を配置することを示している。したがって、この「終端コードEOB」を認識した段階で、ユニットQ5としては、処理を正常に終了する。よって、処理結果は図の右側に示すように、[EOB],P5=4になる。 In the unit Q5, the bit string “0010” matches the identification code corresponding to the “termination code EOB”. As described above, this identification code is an identification code for performing exception processing in the zero-permanent state, and indicates that a numerical value “0” is arranged up to the end of the numerical data string. Therefore, at the stage where this “end code EOB” is recognized, the unit Q5 normally ends the process. Therefore, the processing result is [EOB], P5 = 4 as shown on the right side of the figure.
ユニットQ6では、「0101」なるビット列が、[ZRL]に対応する識別コードに合致するので、まず、数値「0」を16個並べる処理が行われる。次の「1011111」なるビット列は、「b=5,R=1」に対応する識別コードに合致する。そこで、後続する5ビット「10111」の部分を実データとして認識し、数値「23」の復元に成功する。また、ランレングス値R=1に応じて、数値「23」に先行して数値「0」を1回配置する処理が行われる。更に続く「101100」なるビット列は、「b=2,R=6」に対応する識別コードに合致するので、後続する2ビット「01」の部分を実データとして認識し、数値「−2」の復元に成功する。また、ランレングス値R=6に応じて、数値「−2」に先行して数値「0」を6回配置する処理が行われる。処理結果は図の右側に示すように、[0]×16[0][23][0]×6[−2],P6=24になる。 In the unit Q6, since the bit string “0101” matches the identification code corresponding to [ZRL], first, processing for arranging 16 numerical values “0” is performed. The next bit string “1011111” matches the identification code corresponding to “b = 5, R = 1”. Therefore, the subsequent 5-bit “10111” portion is recognized as actual data, and the numerical value “23” is successfully restored. Further, according to the run length value R = 1, a process of arranging the numerical value “0” once before the numerical value “23” is performed. Since the subsequent bit string “101100” matches the identification code corresponding to “b = 2, R = 6”, the subsequent 2-bit “01” portion is recognized as actual data, and the numerical value “−2” Successful restoration. Further, according to the run length value R = 6, a process of arranging the numerical value “0” six times before the numerical value “−2” is performed. The processing result is [0] × 16 [0] [23] [0] × 6 [−2], P6 = 24, as shown on the right side of the figure.
ユニットQ7では、「1011111」なるビット列が、「b=5,R=1」に対応する識別コードに合致する。そこで、後続する5ビット「10111」の部分を実データとして認識し、数値「23」の復元に成功する。また、ランレングス値R=1に応じて、数値「23」に先行して数値「0」を1回配置する処理が行われる。更に続く「101100」なるビット列は、「b=2,R=6」に対応する識別コードに合致するので、後続する2ビット「01」の部分を実データとして認識し、数値「−2」の復元に成功する。また、ランレングス値R=6に応じて、数値「−2」に先行して数値「0」を6回配置する処理が行われる。ただ、その後は、正常な復号処理を行うことはできず、処理結果は図の右側に示すように、[0][23][0]×6[−2][ERR],P7=20になる。 In the unit Q7, the bit string “1011111” matches the identification code corresponding to “b = 5, R = 1”. Therefore, the subsequent 5-bit “10111” portion is recognized as actual data, and the numerical value “23” is successfully restored. Further, according to the run length value R = 1, a process of arranging the numerical value “0” once before the numerical value “23” is performed. Since the subsequent bit string “101100” matches the identification code corresponding to “b = 2, R = 6”, the subsequent 2-bit “01” portion is recognized as actual data, and the numerical value “−2” Successful restoration. Further, according to the run length value R = 6, a process of arranging the numerical value “0” six times before the numerical value “−2” is performed. However, after that, normal decoding processing cannot be performed, and the processing result is [0] [23] [0] × 6 [−2] [ERR], P7 = 20 as shown on the right side of the figure. Become.
以上が、7台のユニットQ1〜Q7の並列処理として実行される復号処理である。データ編成部は、これら各ユニットによる復号処理の結果を取捨選択して、復号化データ列を生成する。すなわち、まず、ユニットQ1を採択ユニットとして、このユニットQ1から報告される正常処理ビット長P1=24に基づいて、正常な復号処理が行われた最終ビットが第24ビット目であることを認識し、第25ビット目を先頭ビットとする部分データが分配された別なユニットQ7を新たな採択ユニットと決定する。更に、この採択ユニットQ7から報告される正常処理ビット長P7=20に基づいて、正常な復号処理が行われた最終ビットが第44ビット目であることを認識し、第45ビット目を先頭ビットとする部分データが分配された別なユニットを新たな採択ユニットとするよう試みるが、該当するユニットはみつからず、1回目の並列処理は完了する。 The above is the decoding processing executed as parallel processing of the seven units Q1 to Q7. The data organization unit selects a result of the decoding process by each of these units and generates a decoded data string. That is, first, with unit Q1 as the adopted unit, it is recognized that the final bit that has been normally decoded is the 24th bit based on the normal processing bit length P1 = 24 reported from this unit Q1. Then, another unit Q7 to which the partial data having the 25th bit as the first bit is distributed is determined as a new adopted unit. Further, based on the normal processing bit length P7 = 20 reported from the adopted unit Q7, it is recognized that the last bit that has been normally decoded is the 44th bit, and the 45th bit is the first bit. Although another unit to which the partial data is distributed is tried to be a newly selected unit, the corresponding unit is not found, and the first parallel processing is completed.
かくして、2台のユニットQ1,Q7が採択ユニットとして決定される。図35の右端に「◎」を付したユニットが採択ユニットであり、「×」を付したユニットが不採択ユニットである。データ編成部は、各採択ユニットQ1,Q7で正常に復号化が行われた数値データを収集し、これらの数値データを並べることにより復号化データ列を生成する。図示の例の場合、[5][0][0][0][37][0][23][0][0][0][0][0][0][−2]なる数値データ列が生成されることになる。 Thus, the two units Q1 and Q7 are determined as the adopted units. A unit marked with “◎” at the right end of FIG. 35 is an accepted unit, and a unit marked with “x” is a rejected unit. The data organization unit collects numerical data that has been normally decoded by each of the adopted units Q1 and Q7, and generates a decoded data string by arranging these numerical data. In the case of the illustrated example, [5] [0] [0] [0] [37] [0] [23] [0] [0] [0] [0] [0] [0] [-2] A numeric data string is generated.
そして、この時点で、データ編成部からデータ分配部に対して、各採択ユニットQ1,Q7から報告された正常処理ビット長P1,P7の合計値「44」を、既復号化部を示す情報として報告する処理が行われる。これは、上述した1回目の並列処理により、図33に示す全60ビットからなるデータのうち、先頭から第44ビット目までの復号化が完了したことを示している。そこで、データ分配部は、2回目の並列処理のために、第45ビット目以降の未復号化部について、新たな分配処理を実行することになる。 At this time, the total value “44” of the normal processing bit lengths P1 and P7 reported from each of the adopted units Q1 and Q7 to the data distribution unit from the data organization unit is used as information indicating the already-decoded unit. Processing to report is performed. This indicates that the decoding from the head to the 44th bit of the data consisting of all 60 bits shown in FIG. 33 has been completed by the first parallel processing described above. Therefore, the data distribution unit executes a new distribution process for the undecoded units after the 45th bit for the second parallel processing.
<<< §12.ハフマン符号化テーブルの作成 >>>
既に図8で説明したとおり、ビット長bの出現頻度を考慮して作成した可変長符号化テーブルは、一般に、ハフマン符号化テーブルと呼ばれており、このハフマン符号化テーブルを用いた符号化は、ハフマン符号化と呼ばれている。ハフマン符号化テーブルでは、実データのビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられているため、ハフマン符号化により、データの圧縮効率を更に向上させることができる。このため、前述したJPEG画像用の圧縮処理など、実用上、多くのデータ圧縮処理において、ハフマン符号化テーブルが採用されている。
<<<< §12. Creation of Huffman coding table >>
As already described with reference to FIG. 8, the variable length coding table created in consideration of the appearance frequency of the bit length b is generally called a Huffman coding table, and the coding using this Huffman coding table is , Called Huffman coding. In the Huffman coding table, the higher the appearance frequency of the bit length b of the actual data, the more the identification code having the shorter bit length a is associated. Therefore, the data compression efficiency is further improved by the Huffman coding. Can do. For this reason, a Huffman coding table is employed in many data compression processes in practice such as the above-described JPEG image compression process.
本発明の実施に用いる符号化テーブルは、必ずしもハフマン符号化テーブルである必要はないが、実用上は、データ圧縮効率を向上するために、ハフマン符号化テーブルを用いるのが好ましい。 The encoding table used in the implementation of the present invention is not necessarily a Huffman encoding table. However, in practice, it is preferable to use the Huffman encoding table in order to improve data compression efficiency.
本発明に係るハフマン符号化方法は、固定長ビットからなる数値データ列を、少なくともビット長と識別コードとの対応関係を示すハフマン符号化テーブルを用いて、可変長ビットからなる符号化データ列に符号化するハフマン符号化方法であり、その特徴は、ハフマン符号化テーブルとして、識別コード自身のビット長をaとし、当該識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを用いる、という点になる。 The Huffman encoding method according to the present invention converts a numerical data sequence consisting of fixed-length bits into an encoded data sequence consisting of variable-length bits using at least a Huffman encoding table indicating the correspondence between the bit length and the identification code. A Huffman encoding method for encoding is characterized in that, as a Huffman encoding table, when a bit length of an identification code itself is a and a bit length corresponding to the identification code is b, a predetermined reference bit length For N (where N is an integer equal to or greater than 2), a table that satisfies the condition of “a + b = k × N” (where k is an arbitrary integer) is used.
また、本発明に係るハフマン復号化方法は、可変長ビットからなる符号化データ列を、演算処理装置が、少なくともビット長と識別コードとの対応関係を示すハフマン符号化テーブルを用いて、固定長ビットからなる数値データ列に復号化するハフマン復号化方法であり、その特徴は、ハフマン符号化テーブルとして、識別コード自身のビット長をaとし、当該識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルを用いる、という点になる。 In addition, the Huffman decoding method according to the present invention uses a Huffman encoding table that indicates that the arithmetic processing device at least uses a Huffman encoding table that indicates a correspondence relationship between a bit length and an identification code. A Huffman decoding method for decoding into a numerical data string consisting of bits, the feature of which is that when the bit length of the identification code itself is a and the bit length corresponding to the identification code is b as a Huffman encoding table In addition, a table that satisfies a condition of “a + b = k × N” (where k is an arbitrary integer) for a predetermined reference bit length N (where N is an integer of 2 or more) is used. .
既に§2で述べたとおり、上記条件は、任意の整数kによってある程度の自由度が確保できるため、上記条件を満足するハフマン符号化テーブルを作成することが可能になる。ハフマン符号化テーブルは、特定の数値データ列についてのビット長bの出現頻度を考慮して作成されたテーブルであるため、当該特定の数値データ列の符号化に特化したテーブルということができる。別言すれば、符号化の対象となる数値データ列が与えられることにより、はじめて定義できるテーブルである。したがって、本発明においてハフマン符号化テーブルを利用する場合、まず、既存の標準符号化テーブルを用意しておき、この標準符号化テーブルの内容を入れ替える処理を行うことによって、ハフマン符号化テーブルを作成するようにするのが好ましい。
As already described in
図36は、本発明に係るハフマン符号化テーブルを用いる符号化装置の基本構成を示すブロック図である。この図36に示す符号化装置は、図18に示す符号化装置に、新たに頻度集計部180とテーブル修正部190とを付加したものである。
FIG. 36 is a block diagram showing a basic configuration of an encoding apparatus using the Huffman encoding table according to the present invention. The coding apparatus shown in FIG. 36 is obtained by adding a
頻度集計部180は、データ格納部110に格納されている数値データ列Eについて、実データのビット長bの出現頻度を集計する機能を有している。実データのビット長bは、数値データの値に基づいて一義的に定まる値であるので、実際には、個々のビット長bごとに投票箱を設けておき、個々の数値データの値に対応する投票箱に投票する処理を行えば、出現頻度の集計値を求めることができる。
The
一方、テーブル修正部190は、テーブル格納部120に予め格納されていた既存の標準符号化テーブルについて、内容の入れ替えを行うことによる修正を施し、修正した符号化テーブルをテーブル格納部に格納する機能を有している。具体的には、既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成する処理を行う。
On the other hand, the
このテーブル修正部190によって、テーブル格納部120内に新たに格納されることになった修正された符号化テーブルは、実データのビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられているハフマン符号化テーブルとなっている。したがって、データ出力部170から出力される符号化データファイルFには、このハフマン符号化テーブルを用いて符号化された符号化データ列Sと、当該ハフマン符号化テーブル自身もしくは当該ハフマン符号化テーブルを特定するテーブル特定情報(たとえば、当該ハフマン符号化テーブルの所在を示すURLなど)とが収容されることになる。
The corrected encoding table newly stored in the
ここでは、§11で述べたJPEG画像への適用例について、ハフマン符号化テーブルを作成した実例を以下に説明する。いま、DC成分用の標準符号化テーブルとして、テーブル格納部120内に、図29に示すようなテーブルが予め格納されていたものとしよう。一方、データ格納部110内には、多数の8×8画素ブロックの集合体からなるJPEG方式の圧縮対象となる画像データが格納されていたものとしよう。この場合、頻度集計部180によって、当該画像データを構成する個々の数値データに対する上述した頻度集計の処理が行われる。ここでは、たとえば、図37の表に示すような頻度集計結果が得られたものとしよう。
Here, an example of creating a Huffman coding table will be described below with respect to the application example to the JPEG image described in §11. Assume that a table as shown in FIG. 29 is stored in advance in the
通常の可変長符号化テーブルの場合、この図37に示す頻度集計結果に基づいて、標準符号化テーブルの内容をソートすれば、ハフマン符号化テーブルが得られる。具体的には、最も高い出現頻度「220」の得票が得られたビット長b=5に対して、図29に示す標準符号化テーブル内の最も短い識別コード「00」を割り当てればよい。同様に、2番目に高い出現頻度「209」の得票が得られたビット長b=6に対しては、図29に示す標準符号化テーブル内の2番目に短い識別コード「011」もしくは「010」を割り当てればよい。要するに、ビット長bを出現頻度順にソートした後、短い識別コードから順番に割り当てる作業を行えばよい。 In the case of a normal variable length coding table, a Huffman coding table can be obtained by sorting the contents of the standard coding table based on the frequency count result shown in FIG. Specifically, the shortest identification code “00” in the standard encoding table shown in FIG. 29 may be assigned to the bit length b = 5 in which the vote with the highest appearance frequency “220” is obtained. Similarly, for the bit length b = 6 in which a vote with the second highest appearance frequency “209” is obtained, the second shortest identification code “011” or “010” in the standard encoding table shown in FIG. ". In short, after the bit lengths b are sorted in the order of appearance frequency, an operation of assigning in order from a short identification code may be performed.
しかしながら、本発明に係る可変長符号化テーブルの場合、識別コード自身のビット長をaとし、当該識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足する、という制約が課されるため、上述したようなソート作業を行うことはできない。ただ、§2でも述べたとおり、対応するビット長bの差がN(この例では、N=4)の整数倍となるような2つの識別コードを入れ替えても、「a+b=k×N」という条件は維持されたままになる。 However, in the case of the variable length coding table according to the present invention, when the bit length of the identification code itself is a and the bit length corresponding to the identification code is b, a predetermined reference bit length N (where N is Since the restriction that the condition “a + b = k × N” (where k is an arbitrary integer) is satisfied is imposed on (an integer of 2 or more), the sort operation as described above cannot be performed. However, as described in §2, even if two identification codes whose corresponding bit length b difference is an integer multiple of N (N = 4 in this example) are replaced, “a + b = k × N” The condition remains.
たとえば、図37に太枠で示したビット長b=2とb=6とは、差が4であるから、図38に示すように、b=2に対応する識別コードとb=6に対応する識別コードとを入れ替えたとしても、上記条件は維持される。図29に示す標準符号化テーブルの場合、b=6に対応する識別コードは「101100」という6ビットのコードであったが、図38に示す入れ替えを行えば、b=6に対応する識別コードは「00」という2ビットのコードに修正される。すなわち、出現頻度が高いb=6に対してより短い識別コードが割り当てられたことになる。 For example, since the difference between the bit lengths b = 2 and b = 6 shown by the thick frame in FIG. 37 is 4, the identification code corresponding to b = 2 and b = 6 correspond to each other as shown in FIG. Even if the identification code is replaced, the above condition is maintained. In the case of the standard encoding table shown in FIG. 29, the identification code corresponding to b = 6 is a 6-bit code “101100”, but if the replacement shown in FIG. 38 is performed, the identification code corresponding to b = 6 Is corrected to a 2-bit code “00”. That is, a shorter identification code is assigned to b = 6 having a high appearance frequency.
このように、互いに入れ替えが可能な識別コードは、「対応するビット長bの差がNの整数倍となるような2つの識別コード」に限るという限定は課されるものの、このような限定された範囲内で、ビット長bを出現頻度順にソートした後、短い識別コードから順番に割り当てる作業を行えばよい。具体的には、たとえば、ビット長b=0,4,8の識別コードを1グループとして、出現頻度順にソートした後、これらに対応づけられていた識別コードを、ソート順に短くなるように割り当てなおす作業を行えばよい。同様の作業を、ビット長b=1,5,9のグループ、ビット長b=2,6,10のグループ、ビット長b=3,7,11のグループについても行うことにより、ハフマン符号化テーブルが得られる。 Thus, although the limitation that the identification codes that can be exchanged with each other is limited to “two identification codes in which the difference between the corresponding bit lengths b is an integer multiple of N” is imposed, such a limitation is imposed. In such a range, after the bit lengths b are sorted in the order of appearance frequency, an operation of assigning in order from a short identification code may be performed. Specifically, for example, after sorting the identification codes with bit lengths b = 0, 4, and 8 as one group in the order of appearance frequency, the identification codes associated with these are reassigned so as to be shorter in the sorting order. Just work. The same operation is performed for the bit length b = 1, 5, 9 group, the bit length b = 2, 6, 10 group, and the bit length b = 3, 7, 11 group. Is obtained.
このように、本発明における「実データのビット長bの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている」という条件は、あくまでも「識別コード自身のビット長をaとし、当該識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して『a+b=k×N』(但し、kは任意の整数)となる」という条件を主条件としたときの副条件というべきものである。すなわち、当該副条件は、あくまでも上記主条件を優先した上で、付加的に満たされるべき従たる条件ということになる。このため、実際には、任意の2つの識別コードを比較すると、「対応する実データのビット長bの出現頻度が高いほど、より短い」という上記副条件が満足されていない場合もありうる。したがって、上述した入れ替え作業によって修正された符号化テーブルは、厳密な意味では「ハフマン符号化テーブル」とは言えないかもしれながい、ここでは便宜上、「ハフマン符号化テーブル」と呼ぶことにする。 Thus, in the present invention, the condition that "the higher the appearance frequency of the bit length b of actual data is, the more the identification code having a shorter bit length a is associated" “a + b = k × N” (where k is an arbitrary value) with respect to a predetermined reference bit length N (where N is an integer of 2 or more), where a is the bit length corresponding to the identification code It should be a sub-condition when the main condition is the condition of That is, the sub-condition is a subordinate condition that should be additionally satisfied while giving priority to the main condition. Therefore, in actuality, when any two identification codes are compared, there may be a case where the sub-condition “the shorter the bit frequency b of the corresponding actual data is, the shorter” is not satisfied. Therefore, the coding table corrected by the above-described replacement work may not be called a “Huffman coding table” in a strict sense, but is referred to as a “Huffman coding table” here for convenience.
もともと「ハフマン符号」は、出現頻度の順に「ハフマン符号木」と呼ばれる二分木を作成することにより定義される符号であり、厳密な意味では、「平均符号長が最小となり、かつ、出現頻度が高いほどより短い符号」と定義される。ただ、実用上は、様々な応用分野で様々なバリエーションが用いられるようになってきており、必ずしも「平均符号長が最小」という条件を満たさない符号や、必ずしも「出現頻度が高いほどより短い」という条件を満たさない符号まで拡張して、一般に「ハフマン符号」と呼ばれるようになってきている(たとえば、JPEG画像を取り扱う分野では、出現頻度を全く考慮しない符号についても「ハフマン符号」と呼ぶ場合がある)。 Originally, the “Huffman code” is a code defined by creating a binary tree called “Huffman code tree” in the order of appearance frequency. In a strict sense, “the average code length is minimum and the appearance frequency is It is defined as “higher, shorter code”. However, in practice, various variations have come to be used in various application fields, and codes that do not necessarily satisfy the condition of “minimum average code length”, or “necessarily shorter as the appearance frequency is higher”. The code is expanded to a code that does not satisfy the above condition, and is generally called “Huffman code” (for example, in the field of handling JPEG images, a code that does not consider the appearance frequency at all is also called “Huffman code”) There).
そこで、本願では、「テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず」かつ「符号化の対象となる数値データ列に含まれる実データのビット長bの出願頻度を考慮して、最終的に符号化されたデータの全ビット長ができるだけ短くなるような最適化処理が施された識別コード」を、「ハフマン符号」と定義することにする。上記最適化処理の最も簡単な例は、これまで例示したような「出現頻度を考慮した入れ替え作業」であるが、他の方法により最適化処理を行うことも可能である。たとえば、所定のアルゴリズムにより、上記主条件を満足する複数通りのハフマン符号化テーブルを生成し、これら複数通りのテーブルの中から、「符号化の対象となる数値データ列に含まれる実データのビット長bの出願頻度を考慮して、最終的に符号化されたデータの全ビット長が最短となるテーブル」を選択する処理も、上記最適化処理の一態様である。 Therefore, in the present application, “when any identification code in the table is focused, when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code. No other identification code such as this exists in this table "and was finally encoded in consideration of the filing frequency of the bit length b of the actual data included in the numerical data string to be encoded. The “identification code that has been optimized so that the total bit length of data is as short as possible” will be defined as “Huffman code”. The simplest example of the optimization processing is “replacement work considering appearance frequency” as exemplified above, but the optimization processing can also be performed by other methods. For example, a plurality of Huffman encoding tables satisfying the above main condition are generated by a predetermined algorithm, and “bits of actual data included in a numerical data string to be encoded are selected from the plurality of tables. In consideration of the application frequency of the length b, the process of selecting the “table with the shortest total bit length of the finally encoded data” is also an aspect of the optimization process.
続いて、図31に示すAC成分用の二次元符号化テーブルを標準符号化テーブルとして用い、この標準符号化テーブルに対して、出現頻度を考慮した入れ替えを行い、二次元ハフマン符号化テーブルを作成した例を示す。図39(a) ,(b) は、JPEG方式の圧縮対象となる画像データにおけるAC成分の数値データについての出現頻度を集計した結果である。ここでは、カラー画像を、輝度成分と色差成分とに分けて取り扱った例が示されており、図39(a) は、輝度成分を構成する画素についての集計結果であり、図39(b) は、色差成分を構成する画素についての集計結果である。 Subsequently, the AC component two-dimensional encoding table shown in FIG. 31 is used as a standard encoding table, and the standard encoding table is replaced in consideration of the appearance frequency to create a two-dimensional Huffman encoding table. An example is shown. 39 (a) and 39 (b) show the results of totaling the appearance frequencies of the AC component numerical data in the image data to be compressed in the JPEG format. Here, an example is shown in which a color image is handled by dividing it into a luminance component and a color difference component, and FIG. 39 (a) is a tabulated result for pixels constituting the luminance component, and FIG. 39 (b). Is a total result for the pixels constituting the color difference component.
二次元符号化テーブルの場合、各識別コードは、「ビット長bとランレングス値Rとの組み合わせ」に対応づけられて決定されるので、「ビット長bの出現頻度」の代わりに、「ビット長bとランレングス値Rとの組み合わせの出現頻度」を考慮する必要がある。したがって、図39に示す頻度集計結果は、ゼロのランレングス表現を用いた符号化を行う前段階として、個々のランレングス値と実データのビット長とを予め決定した上で、「特定のビット長bと特定のランレングス値Rとの組み合わせ」を投票箱とした投票を行った結果として得られたものである。 In the case of the two-dimensional encoding table, each identification code is determined in association with “a combination of the bit length b and the run length value R”. It is necessary to consider the “appearance frequency of the combination of the length b and the run length value R”. Therefore, the frequency count result shown in FIG. 39 is obtained by determining each run length value and the bit length of the actual data in advance as a stage before performing the encoding using the run length expression of zero. This is obtained as a result of voting using a combination of a length b and a specific run length value R as a voting box.
図40に示す二次元符号化テーブルは、図31に示す標準符号化テーブルに対して、図39(a) に示す頻度集計結果を考慮した入れ替え作業を行うことによって得られた二次元ハフマン符号化テーブルであり、図41に示す二次元符号化テーブルは、図31に示す標準符号化テーブルに対して、図39(b) に示す頻度集計結果を考慮した入れ替え作業を行うことによって得られた二次元ハフマン符号化テーブルである。いずれも元になる標準符号化テーブルは同じものであるが、異なる頻度集計結果を考慮した入れ替え作業を行ったため、相互に異なるテーブルになっている。 The two-dimensional encoding table shown in FIG. 40 is a two-dimensional Huffman encoding obtained by performing replacement work in consideration of the frequency tabulation result shown in FIG. 39 (a) with respect to the standard encoding table shown in FIG. 41, the two-dimensional encoding table shown in FIG. 41 is obtained by performing replacement work in consideration of the frequency tabulation result shown in FIG. 39 (b) with respect to the standard encoding table shown in FIG. It is a dimension Huffman encoding table. In both cases, the standard encoding tables are the same, but are replaced with each other because different frequency count results are considered.
図40のハフマン符号化テーブルは、輝度成分を構成する画素からなる数値データの符号化を行う際に用いられ、図41のハフマン符号化テーブルは、色差成分を構成する画素からなる数値データの符号化を行う際に用いられる。いずれの図においても、二重枠で示した欄内の識別コードは、入れ替えによって、元の識別コードよりも短くなったコード(出現頻度が比較的高い結果が得られたコード)であり、太線枠で示した欄内の識別コードは、入れ替えによって、元の識別コードよりも長くなったコード(出現頻度が比較的低い結果が得られたコード)である。 The Huffman encoding table in FIG. 40 is used when encoding numerical data composed of pixels constituting the luminance component, and the Huffman coding table in FIG. 41 is a code of numerical data composed of pixels constituting the color difference component. It is used when converting. In any figure, the identification code in the column indicated by the double frame is a code that has become shorter than the original identification code by replacement (a code that has obtained a relatively high frequency of appearance), and is indicated by a bold line The identification code in the box indicated by the frame is a code that is longer than the original identification code by replacement (a code that has obtained a result with a relatively low appearance frequency).
やはり入れ替え作業は、「対応するビット長bの差がN(この例では、N=4)の整数倍となるような2つの識別コード」という条件を満たすコード間でのみ行われているため、図40および図41に示すハフマン符号化テーブルにおいても、「識別コード自身のビット長をaとし、当該識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して『a+b=k×N』(但し、kは任意の整数)である」という本発明に特有の条件は満たされている。 Again, the replacement work is performed only between codes satisfying the condition “two identification codes such that the difference in the corresponding bit length b is an integer multiple of N (N = 4 in this example)”. Also in the Huffman coding tables shown in FIG. 40 and FIG. 41, “when the bit length of the identification code itself is a and the bit length corresponding to the identification code is b, a predetermined reference bit length N (however, N Is an integer greater than or equal to 2), “a + b = k × N” (where k is an arbitrary integer) ”is satisfied.
実際に、図31に示す標準符号化テーブルを、カラー画像の輝度成分と色差成分とに共通して利用した場合と、図40に示すハフマン符号化テーブルを輝度成分に利用し、図41に示すハフマン符号化テーブルを色差成分に利用した場合とで、JPEG方式による圧縮効率を比較した。その結果、もとの画像データのデータ容量を基準の100%として、前者の場合に得られる圧縮データの容量は9.20%、後者の場合に得られる圧縮データの容量は9.13%という数値が得られた。これにより、ハフマン符号化テーブルの採用により、圧縮率が若干向上していることがわかる。 In practice, the standard encoding table shown in FIG. 31 is used in common for the luminance component and the color difference component of the color image, and the Huffman encoding table shown in FIG. 40 is used for the luminance component, as shown in FIG. The compression efficiency by the JPEG method was compared with the case where the Huffman coding table was used for the color difference component. As a result, the data capacity of the original image data is assumed to be 100% of the reference, the capacity of the compressed data obtained in the former case is 9.20%, and the capacity of the compressed data obtained in the latter case is 9.13%. A numerical value was obtained. Thus, it can be seen that the compression rate is slightly improved by employing the Huffman coding table.
<<< §13.基準ビット長Nに関する留意事項 >>>
ここでは、基準ビット長Nの設定に関する留意事項を簡単に述べておく。これまで述べてきた実施形態では、いずれも基準ビット長N=4に設定しているが、本発明を実施する上で、基準ビット長Nは、2以上の任意の整数に設定することができる(N=1に設定すると、従来の一般的な符号化方法になる)。
<<<< §13. Notes on the standard bit length N >>>
Here, the points to be noted regarding the setting of the reference bit length N will be briefly described. In the embodiments described so far, the reference bit length N is set to 4; however, in implementing the present invention, the reference bit length N can be set to an arbitrary integer of 2 or more. (When N = 1 is set, the conventional general encoding method is used).
ただ、本発明を商業的に利用する場合、コストパフォーマンスを考慮して、基準ビット長Nを最適な値に設定するのが好ましい。図42は、基準ビット長Nの設定時に考慮するパラメータを示すグラフである。図42(a) は、基準ビット長Nと回路規模との関係を示すグラフである。一般に、基準ビット長Nを大きく設定すればするほど、回路規模は低減できる。一方、図42(b) は、基準ビット長Nと圧縮率との関係を示すグラフである。一般に、基準ビット長Nを小さく設定すればするほど、圧縮効率を高める(圧縮率を低める)ことができる。 However, when the present invention is used commercially, it is preferable to set the reference bit length N to an optimum value in consideration of cost performance. FIG. 42 is a graph showing parameters to be considered when setting the reference bit length N. FIG. 42 (a) is a graph showing the relationship between the reference bit length N and the circuit scale. Generally, the larger the reference bit length N is set, the more the circuit scale can be reduced. On the other hand, FIG. 42B is a graph showing the relationship between the reference bit length N and the compression rate. Generally, the smaller the reference bit length N is set, the higher the compression efficiency (the lower the compression rate).
したがって、回路規模を低減する上では、できるだけ大きな基準ビット長Nを設定するのが好ましいが、圧縮効率を高める上では、できるだけ小さな基準ビット長Nを設定するのが好ましい。このように、回路規模と圧縮効率とはトレードオフの関係にあるので、実用上は、この点を考慮して、基準ビット長Nを最適な値に設定するのが好ましい。 Therefore, in order to reduce the circuit scale, it is preferable to set the reference bit length N as large as possible. However, in order to increase the compression efficiency, it is preferable to set the reference bit length N as small as possible. Thus, since the circuit scale and the compression efficiency are in a trade-off relationship, in consideration of this point, it is preferable to set the reference bit length N to an optimal value.
<<< §14.より実用的な復号化処理 >>>
最後に、本発明を実施する上でより実用的な復号化処理を述べておく。
<<<< §14. More practical decryption processing >>>
Finally, a more practical decoding process for implementing the present invention will be described.
<各復号処理ユニットによる処理中止時点>
§4では、図10に示すように、8台の復号処理ユニットQ1〜Q8に、それぞれ16ビットのデータを分配した後、各復号処理ユニットQ1〜Q8が、図11〜図13に示すような復号処理を実行する例を述べた。この例では、各復号処理ユニットQ1〜Q8のそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することになる。
<When processing is canceled by each decoding processing unit>
In §4, as shown in FIG. 10, after distributing 16-bit data to each of the eight decoding processing units Q1 to Q8, the decoding processing units Q1 to Q8 are arranged as shown in FIGS. An example of executing the decoding process has been described. In this example, each of the decoding processing units Q1 to Q8 performs processing for extracting numerical data corresponding to actual data from the head of the distributed partial data each time new partial data is distributed. Normal decryption processing will continue as much as possible.
たとえば、図11に示すように、ユニットQ1は、まず「01111100」なる第1番目の単位符号データの部分について[28]なる実データを復号化した後、更に、第2番目の単位符号データの部分についての復号化を試みる。しかしながら、実際には、第2番目の単位符号データの復号化には失敗し、復号処理の結果は、図示のとおり、[28][ERR]となる。これに対して、ユニットQ4は、[123][1]という2組の実データの復号化に成功しており、ユニットQ7は、[1][13][3]という3組の実データの復号化に成功している。その一方で、ユニットQ2,Q5,Q6は、正常な復号処理に失敗し、実データを1つも取り出すことはできない。 For example, as shown in FIG. 11, the unit Q1 first decodes the actual data [28] for the first unit code data portion of “01111100”, and then further decodes the second unit code data. Attempt to decrypt the part. However, actually, the decoding of the second unit code data fails, and the result of the decoding process is [28] [ERR] as illustrated. On the other hand, the unit Q4 has successfully decoded two sets of real data [123] [1], and the unit Q7 has three sets of real data [1] [13] [3]. Decryption is successful. On the other hand, the units Q2, Q5, and Q6 fail in normal decoding processing, and cannot retrieve any real data.
このように、各復号処理ユニットが取り出しに成功する実データの数は、実際に処理を実行してみるまでは未知であるが、§4で述べたとおり、各復号処理ユニットが、正常な復号処理が可能な限り、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を続行することにすれば、原理的には何ら支障は生じない。図示の例の場合、図9(c) に示す符号化テーブルに掲載されている識別コードCの最大ビット長は8であるから、先頭から8ビット目まで照合しても合致する識別コードがない場合は、正常な復号処理に失敗したことになるので、その時点で処理を中止すればよい。
In this way, the number of actual data that each decoding processing unit succeeds in extracting is unknown until the processing is actually executed, but as described in
しかしながら、§4で述べた方法は、実用的な観点からは、必ずしも効率的な方法にはなっていない。具体的には、実用上、次の2つの無駄な点が存在する。第1の無駄は、同一の実データを異なるユニットで重複して取り出す処理が行われている点である。たとえば、図12に示す例の場合、ユニットQ4で取り出された実データ[1]は、ユニットQ7でも重複して取り出されている。同様に、ユニットQ7で取り出された実データ[13][3]は、ユニットQ8でも重複して取り出されている。このように、同一の実データが複数のユニットで重複して取り出されても、最終的には、採択ユニットで取り出された実データのみが採用されるので、原理的には何ら支障は生じない。しかしながら、実用上は、演算時間が余分に必要になるなど、非効率的な処理が行われていることは否定できない。 However, the method described in §4 is not necessarily an efficient method from a practical viewpoint. Specifically, the following two useless points exist in practice. The first waste is that the same actual data is repeatedly extracted by different units. For example, in the example shown in FIG. 12, the actual data [1] extracted by the unit Q4 is also extracted redundantly by the unit Q7. Similarly, the actual data [13] [3] extracted in the unit Q7 is also extracted redundantly in the unit Q8. As described above, even if the same actual data is extracted in duplicate by a plurality of units, only the actual data extracted by the selected unit is finally adopted, so that there is no problem in principle. . However, in practice, it cannot be denied that inefficient processing is performed, such as extra computation time.
第2の無駄は、物理的な配線の問題である。図示の例の場合、各復号処理ユニットから取り出された実データは8ビットの数値データとして、データ編成部へと出力されることになる。したがって、1つの復号処理ユニットから取り出される可能性のある実データの数をn個とすると(図12に示す例の場合、n=4である)、図19に示すM台の復号処理ユニット240のそれぞれから、データ編成部250に対して、パラレル信号として情報を同時送信する場合、取り出した実データを伝達するための信号線が(8×n)本だけ必要になる。これは、回路を実装する上で、大きな問題になる。
The second waste is a physical wiring problem. In the case of the illustrated example, the actual data extracted from each decoding processing unit is output to the data organization unit as 8-bit numerical data. Therefore, if the number of actual data that can be extracted from one decoding processing unit is n (in the example shown in FIG. 12, n = 4), the M
実は、本発明に係る復号化方法を実行する上で、各復号処理ユニットは、実データに対応する数値データを取り出すための処理を、必ずしも「正常な復号処理が可能な限り」続行する必要はなく、実データに対応する数値データを少なくとも1つだけ取り出すための処理を行えば十分である。 Actually, in executing the decoding method according to the present invention, each decoding processing unit does not necessarily have to continue the process for extracting the numerical data corresponding to the actual data "as long as normal decoding processing is possible". Instead, it is sufficient to perform processing for extracting at least one numerical data corresponding to actual data.
図43は、図10に示すように、8台の復号処理ユニットQ1〜Q8に、それぞれ16ビットのデータを分配した後、各復号処理ユニットQ1〜Q8によって行われる別な復号処理を示す図である。この例の場合、8台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理を行う。 FIG. 43 is a diagram showing another decoding process performed by each of the decoding processing units Q1 to Q8 after distributing 16-bit data to each of the eight decoding processing units Q1 to Q8 as shown in FIG. is there. In the case of this example, each time each of the eight decoding processing units distributes new partial data, numerical data corresponding to actual data for one unit code data from the top of the distributed partial data Process to take out only.
具体的には、図示のとおり、ユニットQ1は、「01111100」なる第1番目の単位符号データの部分について[28]なる実データを復号化したら、そこで処理を中止する。同様に、ユニットQ3,Q4,Q7,Q8も、それぞれ第1番目の単位符号データの部分について、[251],[123],[1],[13]なる実データを復号化したら、そこで処理を中止する。一方、ユニットQ2,Q5,Q6は、正常な復号処理に失敗して処理を中止することになる。 Specifically, as shown in the figure, when the unit Q1 decodes the actual data [28] for the first unit code data portion "01111100", the unit Q1 stops the processing. Similarly, the units Q3, Q4, Q7, and Q8 also process the real data [251], [123], [1], and [13] for the first unit code data portion, respectively. Cancel. On the other hand, the units Q2, Q5, and Q6 fail normal decoding processing and stop processing.
このように、各ユニットは、分配された部分データの先頭にある第1番目の単位符号データの部分について、正常な復号処理に成功した場合も、正常な復号処理に失敗した場合も、そこで処理を中止することになる。成功した場合は、1つの実データに対応する数値データが取り出され、失敗した場合は、何ら数値データは取り出されない。要するに、各ユニットは、1つの単位符号データ(分配された部分データの先頭にある第1番目の単位符号データ)についての実データに対応する数値データのみを取り出すための処理を行うことになる。 In this way, each unit processes the first unit code data portion at the beginning of the distributed partial data, whether it succeeds in normal decoding processing or fails in normal decoding processing. Will be canceled. If it succeeds, the numerical data corresponding to one actual data is extracted, and if it fails, no numerical data is extracted. In short, each unit performs processing for extracting only numerical data corresponding to actual data for one unit code data (the first unit code data at the head of the distributed partial data).
この図43に示す例の場合も、各ユニットから、正常な復号処理によって得られた情報と、当該正常な復号処理に関与したビット数を示す正常処理ビット長とが、データ編成部に対して報告される点は同じである。図示のP1〜P8の値は、各ユニットQ1〜Q8から報告される正常処理ビット長を示している。図44は、図43に示す復号処理プロセスの図に、正常処理端線Z0〜Z4を付加したものである。この正常処理端線Z0〜Z4は、正常な復号処理が行われたビット列の端部を示すものであり、その位置は、§4で説明したとおり、正常処理ビット長P1〜P8に基づいて決定される。 Also in the example shown in FIG. 43, the information obtained from each unit by normal decoding processing and the normal processing bit length indicating the number of bits involved in the normal decoding processing are transmitted to the data organization unit. The points reported are the same. The values of P1 to P8 shown in the figure indicate the normal processing bit lengths reported from the units Q1 to Q8. FIG. 44 is obtained by adding normal processing end lines Z0 to Z4 to the diagram of the decoding processing process shown in FIG. The normal processing end lines Z0 to Z4 indicate end portions of the bit string on which the normal decoding process has been performed, and the positions thereof are determined based on the normal processing bit lengths P1 to P8 as described in §4. Is done.
具体的には、まず、ユニットQ1を最初の採択ユニットとして決定し、当該採択ユニットQ1の先頭位置に、正常処理端線Z0を引く。次に、この採択ユニットQ1についての正常処理ビット長P1=8を参照して、正常処理端線Z0から8ビット目(P1ビット目)の位置に、正常処理端線Z1を引く。そして、この正常処理端線Z1を先頭位置とする別なユニットQ3を新たな採択ユニットと決定し、この採択ユニットQ3についての正常処理ビット長P3=16を参照して、正常処理端線Z1から16ビット目(P3ビット目)の位置に、正常処理端線Z2を引く。更に、この正常処理端線Z2を先頭位置とする別なユニットQ7を新たな採択ユニットと決定し、この採択ユニットQ7についての正常処理ビット長P7=4を参照して、正常処理端線Z2から4ビット目(P7ビット目)の位置に、正常処理端線Z3を引く。更に、この正常処理端線Z3を先頭位置とする別なユニットQ8を新たな採択ユニットと決定し、この採択ユニットQ8についての正常処理ビット長P8=8を参照して、正常処理端線Z3から8ビット目(P8ビット目)の位置に、正常処理端線Z4を引く。 Specifically, first, the unit Q1 is determined as the first adopted unit, and the normal processing end line Z0 is drawn at the head position of the adopted unit Q1. Next, with reference to the normal processing bit length P1 = 8 for the selected unit Q1, the normal processing end line Z1 is drawn at the eighth bit (P1 bit) position from the normal processing end line Z0. Then, another unit Q3 having the normal processing end line Z1 as the head position is determined as a new selection unit, and the normal processing bit length P3 = 16 for the selection unit Q3 is referred to, and the normal processing end line Z1 A normal processing end line Z2 is drawn at the position of the 16th bit (P3th bit). Further, another unit Q7 having the normal processing end line Z2 as the head position is determined as a new adopted unit, and the normal processing bit length P7 = 4 for the selected unit Q7 is referred to and the normal processing end line Z2 is referred to. The normal processing end line Z3 is drawn at the position of the fourth bit (P7 bit). Further, another unit Q8 having the normal processing end line Z3 as the head position is determined as a new selection unit, and the normal processing bit length P8 = 8 for the selection unit Q8 is referred to and the normal processing end line Z3 is referred to. A normal processing end line Z4 is drawn at the position of the 8th bit (P8th bit).
このようにすれば、ユニットQ1,Q3,Q7,Q8の4台が採択ユニットとなる。図45は、この4台の採択ユニットQ1,Q3,Q7,Q8における正常処理ビットの部分を太枠で囲って示した図である。この太枠で囲った正常処理ビットの部分に着目すると、それぞれ正常処理端線Z0〜Z1の区間、正常処理端線Z1〜Z2の区間、正常処理端線Z2〜Z3の区間、正常処理端線Z3〜Z4の区間となり、互いに連続した区間になる。したがって、これら4台の採択ユニットQ1,Q3,Q7,Q8による正常な復号処理によって得られた数値データを収集すれば、本来復元されるべき数値データ列が得られる。すなわち、図45に示すように、これら採択ユニットQ1,Q3,Q7,Q8によって復元された数値データを収集して並べれば、[28][251][1][13]となる。 In this way, the four units Q1, Q3, Q7, and Q8 are the adopted units. FIG. 45 is a diagram showing the normal processing bit portions in the four adopted units Q1, Q3, Q7, and Q8 surrounded by a thick frame. When attention is paid to the normal processing bit portions surrounded by the thick frames, the normal processing end lines Z0 to Z1, the normal processing end lines Z1 to Z2, the normal processing end lines Z2 to Z3, and the normal processing end lines, respectively. It becomes a section of Z3 to Z4, and is a section that is continuous with each other. Therefore, if the numerical data obtained by normal decoding processing by these four adopted units Q1, Q3, Q7, and Q8 are collected, the numerical data string that should be restored can be obtained. That is, as shown in FIG. 45, if the numerical data restored by these adopted units Q1, Q3, Q7, and Q8 are collected and arranged, [28] [251] [1] [13] are obtained.
図11〜図13に示す例(各ユニットが、正常な復号処理が可能な限り処理を続行する例)と、図43〜図45に示す例(各ユニットが、1つの実データに対応する数値データのみを取り出す処理を行う例)とを比べると、前者に含まれていた2つの無駄が、後者では省かれていることがわかる。すなわち、後者では、同一の実データを異なるユニットで重複して取り出す処理が行われることはなく、また、1つのユニットからは、1つの実データに対応する数値データ(図示の例では、8ビットの数値データ)のみをデータ編成部へと出力するための配線を設けておけば足りる。 The example shown in FIGS. 11 to 13 (an example in which each unit continues processing as long as normal decoding processing is possible) and the example shown in FIGS. 43 to 45 (each unit corresponds to one actual data) Comparing with the example in which only the data is extracted, it can be seen that the two wastes included in the former are omitted in the latter. That is, in the latter case, the same actual data is not duplicated by different units, and numerical data corresponding to one actual data (in the illustrated example, 8 bits) is not obtained. It is sufficient to provide wiring for outputting only the numerical data) to the data organization unit.
ただ、前者の方が後者よりも優れている点もある。図13と図45とを比較すると、前者では、第1回目の並列処理により、上段に示す符号化データ列のうちのブロックB1〜B10の部分についての復号化が行われ、[28][251][1][13][3]という5組の数値データの復号化が行われているのに対して、後者では、第1回目の並列処理により、ブロックB1〜B9の部分についての復号化だけが行われ、[28][251][1][13]という4組の数値データの復号化だけが行われている。すなわち、後者の場合、ブロックB10の部分についての復号化は、第1回目の並列処理では行われず、第2回目の並列処理にまわされることになる。これは、後者では、「各ユニットは、1つの実データに対応する数値データを取り出した時点で処理を中止する」という運用を採るため、ユニットQ8が、ブロックB10のビット列「0011」を数値データ[3]として取り出すことができるのにもかかわらず、数値データ[13]を取り出した時点で処理を中止してしまったためである。 However, the former is superior to the latter. Comparing FIG. 13 with FIG. 45, in the former, decoding is performed for the portions of blocks B1 to B10 in the encoded data sequence shown in the upper stage by the first parallel processing, and [28] [251] ] [1] [13] [3] are decoded for the five sets of numerical data, whereas in the latter case, the blocks B1 to B9 are decoded by the first parallel processing. Only four sets of numerical data [28] [251] [1] [13] are decoded. That is, in the latter case, the decoding of the block B10 is not performed in the first parallel processing, but is sent to the second parallel processing. This is because in the latter case, the unit Q8 takes the bit string “0011” of the block B10 as the numerical data, because “each unit stops processing when the numerical data corresponding to one actual data is extracted”. This is because the processing is stopped when the numerical data [13] is taken out although it can be taken out as [3].
このような弊害を是正するためには、前者と後者との両方を採り入れた折衷方式を採用すればよい。すなわち、M台の復号処理ユニットを用いる一般論で説明すれば、第1台目〜第(M−1)台目のユニットのそれぞれについては、「新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについての実データに対応する数値データのみを取り出すための処理(前者の処理)」を行い、第M台目のユニットについては、「新たな部分データの分配が行われるたびに、分配された部分データの先頭から、実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行する(後者の処理)」ようにすればよい。 In order to correct such an adverse effect, a compromise method that adopts both the former and the latter may be employed. In other words, in general terms using M decoding processing units, for each of the first to (M−1) th units, “every time new partial data is distributed, A process for extracting only numerical data corresponding to actual data for one unit code data from the beginning of the distributed partial data (the former process) ”is performed. Every time partial data is distributed, the process for extracting numerical data corresponding to the actual data from the beginning of the distributed partial data is continued as long as normal decoding processing is possible (the latter process). You can do it.
この折衷方式では、図45の例(M=8の例)において、第1台目〜第7台目のユニットQ1〜Q7については、図示のとおり、1つの実データに対応する数値データのみが取り出されるが、第8台目のユニットQ8については、正常な復号処理が可能な限り、実データを取り出す処理が続行されるので、[13]に引き続いて[3]が取り出されることになる。この場合、正常処理端線Z4の位置は、4ビット分右へ移動し、ブロックB10の右端になる。かくして、図13に示す例と同様に、第1回目の並列処理により、[28][251][1][13][3]という5組の数値データの復号化が行われる。この場合、第8台目のユニットQ8からは、複数組の数値データが出力される可能性があるため、これに応じた配線を用意する必要があるものの、第1台目〜第7台目のユニットQ1〜Q7については、1つの数値データに必要な配線を用意しておけば足りる。 In this compromise method, in the example of FIG. 45 (M = 8 example), only the numerical data corresponding to one actual data is shown for the first to seventh units Q1 to Q7 as shown in the figure. As for the eighth unit Q8, the process of extracting the actual data is continued as long as the normal decoding process is possible. Therefore, [3] is extracted following [13]. In this case, the position of the normal processing end line Z4 moves to the right by 4 bits and becomes the right end of the block B10. Thus, similarly to the example shown in FIG. 13, five sets of numeric data [28] [251] [1] [13] [3] are decoded by the first parallel processing. In this case, since there is a possibility that a plurality of sets of numerical data may be output from the eighth unit Q8, it is necessary to prepare wiring corresponding to this, but the first to seventh units For the units Q1 to Q7, it is sufficient to prepare wiring necessary for one numerical data.
このように、本発明に係る復号処理段階では、M台の復号処理ユニットは、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、任意の数の実データに対応する数値データを取り出すための処理を行えばよく、個々の復号処理ユニットによる処理の中止時点は任意に設定することが可能である。また、図43〜図45に示す例は、一次元符号化テーブルを用いた例であるが、§9で述べた二次元符号化テーブルを利用する例においても、個々の復号処理ユニットによる処理の中止時点は任意に設定することが可能である。たとえば、図35に示す例の場合、各ユニットが、分配された部分データの先頭にある第1番目の単位符号データの部分についての復号処理を行った時点で処理を中止するようにすると、「◎」が付される採択ユニットは、Q1(P1=8),Q3(P3=16),Q7(P7=12)となり、1回目の並列処理で、先頭から第36ビット目までの復号化が完了する。 In this way, at the decoding processing stage according to the present invention, each time new partial data is distributed, the M decoding processing units correspond to an arbitrary number of actual data from the beginning of the distributed partial data. It is only necessary to perform processing for extracting the numerical data to be performed, and it is possible to arbitrarily set the time point at which the individual decoding processing unit is stopped. In addition, the examples shown in FIGS. 43 to 45 are examples using a one-dimensional encoding table. However, in the example using the two-dimensional encoding table described in §9, the processing by individual decoding processing units is also performed. The stop point can be set arbitrarily. For example, in the case of the example shown in FIG. 35, if each unit stops the process at the time of performing the decoding process on the first unit code data portion at the head of the distributed partial data, The adopted units marked with “◎” are Q1 (P1 = 8), Q3 (P3 = 16), and Q7 (P7 = 12), and the decoding from the top to the 36th bit is performed in the first parallel processing. Complete.
すなわち、二次元符号化テーブルを利用して符号化されたデータを復号化する場合、M台の復号処理ユニットは、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を任意の回数だけ繰り返せばよい。具体的には、正常な復号処理が可能な限り何回でも処理を続行するようにしてもよいし、1つの単位符号データについてのランレングス値および実データに対応する数値データを取り出した時点で処理を中止してもよい。もちろん、その折衷方式として、第1台目〜第(M−1)台目のユニットについては、1つの単位符号データについてのランレングス値および実データに対応する数値データを取り出した時点で処理を中止し、第M台目のユニットについては、正常な復号処理が可能な限り処理を続行するようにしてもよい。 That is, when decoding the encoded data using the two-dimensional encoding table, the M decoding processing units start from the top of the distributed partial data every time new partial data is distributed. The process for extracting the numerical data corresponding to the run length value and the actual data may be repeated an arbitrary number of times. Specifically, the normal decoding process may be continued as many times as possible, or when the run-length value for one unit code data and the numerical data corresponding to the actual data are extracted. Processing may be stopped. Of course, as a compromise method, for the first to (M−1) th units, the processing is performed when the run length value for one unit code data and the numerical data corresponding to the actual data are extracted. For the Mth unit, the processing may be continued as long as normal decoding processing is possible.
<ランレングス値に基づく復元処理の担当>
§9で述べた二次元符号化テーブルを利用する方法では、M台の復号処理ユニットによる並列処理により、二次元符号化テーブルを参照しながら、それぞれ分配された部分データから、0を示す数値データを羅列する回数を示すランレングス値と、当該0を示す数値データに後続する実データに対応する数値データと、を取り出す復号処理が行われ、1回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列が生成される。
<Responsible for restoration processing based on run length value>
In the method using the two-dimensional encoding table described in §9, numerical data indicating 0 is obtained from each distributed partial data while referring to the two-dimensional encoding table by parallel processing by M decoding processing units. The decoding process is performed to extract the run-length value indicating the number of times the data is enumerated and the numerical data corresponding to the actual data following the numerical data indicating 0, and each is collected by one or more parallel processes. A decoded data string is generated by arranging numerical data based on the information.
図17に示す流れ図において、ステップS24として示されている復号処理段階が、M台の復号処理ユニットによって実行される並列処理であり、続く、ステップS25として示されているデータ編成段階が、復号化データ列を生成する処理である。§10で説明した方法では、ステップS24の復号処理段階において、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに対応する数値データを並べることにより、元のデータ列を復元する復号処理を行い、続くステップS25のデータ編成段階において、このM台の復号処理ユニットによる復号処理の結果を取捨選択して、0を示す数値データおよび個々の実データに対応する数値データを並べた復号化データ列を生成する処理を行っていた。 In the flowchart shown in FIG. 17, the decoding process stage shown as step S24 is a parallel process executed by M decoding process units, and the data organization stage shown as step S25 is a decoding process. This is a process for generating a data string. In the method described in §10, in the decoding process step in step S24, the numerical data indicating 0 is arranged for the number of times corresponding to the run-length value, and then the numerical data corresponding to the actual data is arranged, whereby the original data sequence is changed. The decoding process to restore is performed, and in the subsequent data organization stage of step S25, the result of the decoding process by the M decoding processing units is selected, and the numerical data indicating 0 and the numerical data corresponding to each actual data are obtained. A process of generating the arranged decoded data string was performed.
別言すれば、§10で説明した方法では、ステップS24の復号処理段階において、M台の復号処理ユニットのそれぞれが、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、ステップS25のデータ編成段階において、データ編成部が、復元されたデータを並べることにより復号化データ列を生成する処理を行っていた。すなわち、この方法では、M台の復号処理ユニットのそれぞれが、ランレングス値に基いて0の羅列データの復元処理を担当していることになる。 In other words, in the method described in §10, in the decoding processing stage of step S24, each of the M decoding processing units enumerates the numerical data indicating 0 for the number of times corresponding to the run length value, and then the actual data. The process of restoring the original data is performed by arranging the numerical data corresponding to the above, and the data organization unit generates the decoded data sequence by arranging the restored data in the data organization stage of step S25 Had gone. In other words, in this method, each of the M decoding processing units is in charge of the process of restoring the enumerated data of 0 based on the run length value.
しかしながら、実用上は、ランレングス値に基づく復元処理は、データ編成部に担当させるのが好ましい。その理由は、各復号処理ユニットからデータ編成部への配線を効率化するためである。図19に示すように、実際の復号化装置には、M台の復号処理ユニット240のそれぞれから、データ編成部250に対して、処理結果を示す情報を伝達するための配線が必要である。データ編成部250は、M台の復号処理ユニット240による1回の並列処理の結果として得られた情報を、時分割して受け取ることもできるが、実用上は、パラレル信号として同一タイミングで受け取り、復号化データ列を生成する処理を行うのが好ましい。そうすると、もし、M台の復号処理ユニット240側で既にランレングス値に基づく復元処理(0を示す数値データをランレングス値に相当する回数だけ羅列する処理)を実施してしまっていると、これらの数値データをパラレル信号としてデータ編成部250に伝達するためには、膨大な数の配線が必要になる。
However, in practice, it is preferable that the data organization unit performs the restoration process based on the run length value. The reason is to make the wiring from each decoding processing unit to the data organization unit more efficient. As shown in FIG. 19, an actual decoding device requires wiring for transmitting information indicating processing results from each of the M
そこで、実用上は、復号処理段階では、M台の復号処理ユニット240のそれぞれが、取り出したランレングス値および実データに対応する数値データをそのまま出力する処理を実行するようにし、データ編成段階で、データ編成部250が、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータを並べることにより復号化データ列を生成する処理を行うようにする。そうすれば、各復号処理ユニット240からデータ編成部250に対しては、ランレングス値と、実データに対応する数値データと、正常処理ビット長と、を伝達するための配線を用意しておけば足りるので、配線の数を大幅に節約することができる。
Therefore, in practice, in the decoding processing stage, each of the M
<専用の参照テーブルを利用した復号化>
本発明に係る符号化方法で用いる符号化テーブルは、「テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在しない」という条件を満たすテーブルである。そして、復号化を行う際には、そのような条件を満たすことを利用して、符号化されたデータの先頭から1ビット、2ビット、3ビット、... の部分について順に、テーブル内に合致する識別コードがあるか否かを判定する処理を行うことが可能になる。
<Decryption using dedicated reference table>
The encoding table used in the encoding method according to the present invention is “a portion of a bit from the beginning when the bit length of the identification code of interest is a, regardless of any identification code in the table. Is a table that satisfies the condition that there is no other identification code in the table that is the same as the target identification code. Then, when performing the decoding, by utilizing such a condition, the 1 bit, 2 bit, 3 bit,... It is possible to perform processing for determining whether there is a matching identification code.
このように、復号化の基本原理は、符号化テーブル内の識別コードとの合致判定処理ということになるが、実用上は、次のような効率的な合致判定処理が行われている。この処理は、JPEG画像の復号化などに利用されている公知の技術であるが、以下、本発明に適用した場合の具体例を簡単に述べておく。 As described above, the basic principle of decoding is the matching determination process with the identification code in the encoding table. However, in practice, the following efficient matching determination process is performed. This processing is a well-known technique used for decoding JPEG images and the like, but a specific example when applied to the present invention will be briefly described below.
ここで述べる効率的な合致判定処理を行うためには、予め、復号化に利用する符号化テーブルに基づいて、専用の復号化用参照テーブルを用意しておく必要がある。ここでは、図31に示す「AC成分用符号化テーブル」に基づいて作成した復号化用参照テーブルを図46および図47に例示する。 In order to perform the efficient match determination process described here, it is necessary to prepare a dedicated decoding reference table in advance based on an encoding table used for decoding. Here, FIG. 46 and FIG. 47 illustrate the decoding reference tables created based on the “AC component coding table” shown in FIG.
図46に示す復号化用第1参照テーブルは、識別コード自身のビット長aと、当該ビット長aをもつ識別コードの総数(図31のテーブル内の総数)を示す符号語数wと、当該ビット長aをもつ識別コードのうち、値が最小の識別コードCminと、を収容したものである。たとえば、この参照テーブルの1行目には、a=3,w=1,Cmin =「000」なるデータが収容されているが、これは、図31に示すテーブル内に、ビット長が「3」の識別コードが1つだけ存在し(b=1,R=0の欄)、当該識別コードが「000」であることを意味している。同様に、この参照テーブルの2行目には、a=4,w=4,Cmin =「0010」なるデータが収容されているが、これは、図31に示すテーブル内に、ビット長が「4」の識別コードが4つ存在し(b=0,R=0の欄、b=0,R=15の欄、b=4,R=0の欄、b=4,R=1の欄)、これら4つの識別コードのうちの最小値が「0010」であることを意味している。以下、同様である。 The decoding first reference table shown in FIG. 46 includes the bit length a of the identification code itself, the number of code words w indicating the total number of identification codes having the bit length a (the total number in the table of FIG. 31), and the bit. Among the identification codes having the length a, the identification code Cmin having the smallest value is accommodated. For example, the first row of the reference table contains data of a = 3, w = 1, and Cmin = “000”. This is because the bit length is “3” in the table shown in FIG. ”Means that there is only one identification code (b = 1, R = 0), and the identification code is“ 000 ”. Similarly, the data of a = 4, w = 4, Cmin = “0010” is accommodated in the second row of this reference table. This is because the bit length is “0” in the table shown in FIG. 4 ”(b = 0, R = 0 column, b = 0, R = 15 column, b = 4, R = 0 column, b = 4, R = 1 column) ), The minimum value of these four identification codes is “0010”. The same applies hereinafter.
一方、図47に示す復号化用第2参照テーブルは、図31のテーブルに収容されている各識別コードを、そのビット長aの小さい順に、かつ、同じビット長aをもつ識別コードについては識別コードの小さい順に並べ、当該識別コードの収容位置を示すbおよびRの値を記載したテーブルである。たとえば、この参照テーブルの1行目には、識別コード「000」の収容位置「b=1,R=0」が記載され、2行目には、識別コード「0010」の収容位置「b=0,R=0(=EOB)」が記載され、3行目には、識別コード「0011」の収容位置「b=4,R=0」が記載され、4行目には、識別コード「0100」の収容位置「b=4,R=1」が記載されている。なお、この復号化用第2参照テーブルには、識別コード自身を記載しておく必要はないので、図では、参考のために右欄外に括弧書きで識別コードを示してある。また、左欄外には、個々のビット長aの先頭アドレスを矢印で示してある。 On the other hand, the second reference table for decoding shown in FIG. 47 identifies each identification code accommodated in the table in FIG. 31 for the identification codes having the same bit length a in ascending order of the bit length a. It is a table in which the values of b and R indicating the accommodation position of the identification code are listed in order from the smallest code. For example, in the first row of the reference table, the accommodation position “b = 1, R = 0” of the identification code “000” is described, and in the second line, the accommodation position “b =” of the identification code “0010”. 0, R = 0 (= EOB) ”is described, the accommodation position“ b = 4, R = 0 ”of the identification code“ 0011 ”is described in the third line, and the identification code“ 0011 ”is described in the fourth line. 0100 ”is described as“ b = 4, R = 1 ”. Since it is not necessary to describe the identification code itself in the second reference table for decoding, the identification code is shown in parentheses outside the right column in the figure for reference. In addition, the head address of each bit length a is indicated by an arrow outside the left column.
この2つの参照テーブルは、実質的に図31のテーブルと同じ内容を示すものであり、これら2つのテーブルを予め作成しておけば、以下に述べるような効率的な方法で、復号化を行うことが可能である。ここでは、図35に示す復号処理ユニットQ3に分配された24ビットのデータについての復号化を行う場合を例にとって説明しよう。図35に示すとおり、復号処理ユニットQ3については、先頭の10ビットのデータ「1111011000」が、図31のテーブルの収容位置「b=6,R=3」に合致することになる。 These two reference tables show substantially the same contents as the table of FIG. 31, and if these two tables are created in advance, decoding is performed in an efficient manner as described below. It is possible. Here, a case will be described as an example in which decoding is performed on 24-bit data distributed to the decoding processing unit Q3 shown in FIG. As shown in FIG. 35, for the decoding processing unit Q3, the first 10-bit data “1111011000” matches the accommodation position “b = 6, R = 3” in the table of FIG.
図48は、復号化用第1および第2参照テーブルを用いた効率的な復号化処理の原理を示す図である。まず、ビット長a=3をもつ識別コードについての合致判定を行うために、図46に示す第1参照テーブルから、ビット長a=3の行に記載されている識別コードCmin 「000」(ビット長3をもつ識別コードの最小値)を取り出し、ユニットQ3内のビット列の先頭に揃えて減算を行い、差dを求める。図48の丸数字3には、このような減算が示されている。図示のとおり、ユニットQ3内のビット列の先頭3ビットは「111」であるから、ここで行う減算は、「111−000=111」であり、差d=「111」が求まる。
FIG. 48 is a diagram showing the principle of an efficient decoding process using the first and second reference tables for decoding. First, in order to make a match determination for an identification code having a bit length a = 3, the identification code Cmin “000” (bits) described in the row of the bit length a = 3 is obtained from the first reference table shown in FIG. The minimum value of the identification code having the
続いて、図46に示す第1参照テーブルから、ビット長a=3の行に記載されている符号語数w(この場合、w=1)を取り出し、「0≦d<w」が満足するか否かを調べる。差d=「111」の10進表記はd=7であるから、d≧wとなり、a=3の場合、「0≦d<w」は満足しないことになる。このような処理を、aを1ずつ増やしながら、「0≦d<w」が満足されるまで繰り返し実行してゆく。 Subsequently, the number of code words w (in this case, w = 1) described in the row with the bit length a = 3 is extracted from the first reference table shown in FIG. 46, and “0 ≦ d <w” is satisfied? Check for no. Since the decimal notation of the difference d = “111” is d = 7, d ≧ w, and when a = 3, “0 ≦ d <w” is not satisfied. Such processing is repeatedly executed while increasing “a” by 1 until “0 ≦ d <w” is satisfied.
たとえば、a=4の場合は、識別コードCmin 「0010」(ビット長4をもつ識別コードの最小値)が取り出され、図48の丸数字4に示されているように、ユニットQ3内のビット列の先頭4ビット「1111」に対する減算が行われ、「1111−0010=1101」として、差d=「1101(10進表記では13)」が求まる。一方、ビット長a=4の行に記載されている符号語数wは、w=4であるから、d≧wとなり、a=4の場合も「0≦d<w」は満足しないことになる。
For example, when a = 4, the identification code Cmin “0010” (the minimum value of the identification code having a bit length of 4) is taken out, and as shown in the circled
続く、a=5の場合は、識別コードCmin 「01100」(ビット長5をもつ識別コードの最小値)が取り出され、図48の丸数字5に示されているように、ユニットQ3内のビット列の先頭5ビット「11110」に対する減算が行われ、「11110−01100=10010」として、差d=「10010(10進表記では18)」が求まる。一方、ビット長a=5の行に記載されている符号語数wは、w=5であるから、d≧wとなり、a=5の場合も「0≦d<w」は満足しないことになる。同様に、a=6〜9の場合も、減算によって求めた差dについて、「0≦d<w」は満足しない。
Subsequently, when a = 5, the identification code Cmin “01100” (the minimum value of the identification code having a bit length of 5) is taken out, and as shown by the circled
次に、a=10の場合は、識別コードCmin 「1111010110」(ビット長10をもつ識別コードの最小値)が取り出され、図48の丸数字10に示されているように、ユニットQ3内のビット列の先頭10ビット「1111011000」に対する減算が行われ、「1111011000−1111010110=0000000010」として、差d=「0000000010(10進表記では2)」が求まる。一方、ビット長a=10の行に記載されている符号語数wは、w=20であるから、a=10の場合に初めて「0≦d<w」が満足されることになる。
Next, in the case of a = 10, the identification code Cmin “1111010110” (the minimum value of the identification code having a bit length of 10) is taken out, and as indicated by the circled
こうして、「0≦d<w」が満足したら、図47に示す第2参照テーブルを参照して、その時点のビット長aの先頭アドレスからd個目のデータを抽出する。上例の場合、ビット長a=10の先頭アドレスから2個目のデータ、すなわち、「b=6,R=3」が抽出されることになる。こうして抽出されたデータ「b=6,R=3」は、正に、復号処理ユニットQ3の先頭の10ビットのデータ「1111011000」に合致する識別コードが示すビット長bおよびランレングス値Rである。 Thus, when “0 ≦ d <w” is satisfied, the second reference table shown in FIG. 47 is referred to, and the d-th data is extracted from the start address of the bit length a at that time. In the case of the above example, the second data, that is, “b = 6, R = 3” is extracted from the head address of the bit length a = 10. The data “b = 6, R = 3” thus extracted is exactly the bit length b and the run length value R indicated by the identification code that matches the first 10 bits of data “1111011000” of the decoding processing unit Q3. .
上述した復号化方法を採れば、図31のテーブルの各欄を総当たりで比較してゆく方法に比べて、非常に効率的な合致判定処理が可能になる。なお、この復号化方法を採る場合は、図18に示す符号化装置におけるデータ出力部170に、テーブル格納部120に格納されている符号化テーブルT(二次元符号化テーブル)に基づいて、図46に示すような復号化用第1参照テーブルおよび図47に示すような復号化用第2参照テーブルを作成する機能をもたせておき、符号化データファイルF内に、これら参照テーブル自身を、もしくはこれら参照テーブルを特定するテーブル特定情報を組み込むようにすればよい。前述したとおり、図46および図47に示す参照テーブルは、図31のテーブルと同等の機能を果たすテーブルであり、実質的には同一内容を示すテーブルである。
If the decoding method described above is employed, a very efficient match determination process can be performed as compared with the method of comparing each column of the table of FIG. Note that when this decoding method is adopted, the
なお、上述した復号化の演算処理を高速化するには、図48に丸数字3〜10として示されているような個々の減算処理(具体的には、図46の第1参照テーブルに示されているビット長a=3についての識別コードCmin 〜ビット長a=14についての識別コードCmin を、それぞれユニットQ3に分配された24ビットのデータの先頭に桁合わせして引き算する処理)を並列して行うようにすればよい。すなわち、復号処理ユニットQ3の内部に、個々の減算処理を実行するためのハードウエアを複数台用意しておけば、ビット長a=3についての減算、ビット長a=4についての減算、ビット長a=5についての減算、... と個々の減算処理を順番に繰り返し実行する代わりに、すべての減算処理を並行して行うことができ、ビット長a=3〜14についての減算結果を同時に得ることができる。
Note that in order to speed up the above-described decoding calculation processing, individual subtraction processing (specifically, as shown in the first reference table of FIG. 46) as shown by the circled
110:データ格納部
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:正常処理端線
110: Data storage unit 120: Table storage unit 130: Data extraction unit 140: Actual data generation unit 150: Identification code selection unit 160: Unit code data generation unit 170: Data output unit 180: Frequency counting unit 190: Table correction unit 210 : Data storage unit 220: Table storage unit 230: Data distribution unit 240 (1), 240 (2),..., 240 (m): Decoding processing unit 250: Data organization unit 260: Data output unit 300: JPEG image Compression processing apparatus 310: DCT means 320: quantization means 330: encoding means 400: JPEG image decompression processing apparatus 410: decoding means 420: inverse quantization means 430: inverse DCT means a: bit of identification code C itself Length B1 to B11: Data block b having reference bit length N: Bit length C, C1, C2, C3, C of actual data D , C5,...: Identification code C00 to C88: Identification code Cmin: Minimum identification code D, D1, D2, D3, D4, D5,...: Numerical data / actual data d: Difference E: Numerical data string F: Encoded data file F1: Header part F2: Body part F3: Footer part G: Decoded data string H: Table specifying information i: Decoding processing unit number J: Count value k: Arbitrary integer (1, 2, 3,4, ...)
L: Number of bits that can be processed by the decoding processing unit (integer multiple of N)
M: Number of decoding processing units N: Reference bit length (integer of 2 or more)
P1 to P8: Normal processing bit lengths Q1 to Q8: Decoding processing unit R: Run length value Rmax: Maximum run length value S: Encoded data sequence S11 to S27: Steps T, T1, T2, T3 of the flowchart T4: Encoding table U, U1, U2, U3, U4, U5,... Un: Unit code data Umax: Maximum bit length of unit code data w: Number of codewords X: Data of 8 × 8 pixel block Y: Compression Data Z0 to Z4: Normal processing end line
Claims (39)
演算処理装置が、
符号化の対象となる数値データ列を入力するデータ入力段階と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを入力するテーブル入力段階と、
入力した数値データ列から個々の数値データを順番に抽出するデータ抽出段階と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成段階と、
前記符号化テーブルを参照して、生成された前記実データのビット長に対応する識別コードを選択する識別コード選択段階と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成段階と、
前記データ抽出段階、前記実データ生成段階、前記識別コード選択段階、前記単位符号データ生成段階を、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行する段階と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力段階と、
を実行し、
前記符号化テーブルが、
前記実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであり、
前記実データ生成段階で、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を、それぞれ生成することを特徴とする数値データ列の符号化方法。 An encoding method for encoding a numeric data string composed of fixed-length bits using a variable-length bit string,
Arithmetic processing unit
A data input stage for inputting a numeric data string to be encoded;
A table input stage for inputting a coding table indicating a unique identification code corresponding to each bit length;
A data extraction stage for sequentially extracting individual numerical data from the input numerical data string;
An actual data generation stage for generating actual data by deleting redundant bits from the extracted numerical data;
An identification code selection step of selecting an identification code corresponding to the bit length of the generated actual data with reference to the encoding table;
A unit code data generation step for generating unit code data indicating the extracted numerical data by adding the selected identification code to the head of the generated actual data;
Repeatedly executing the data extraction step, the actual data generation step, the identification code selection step, and the unit code data generation step for each of the numerical data constituting the input numerical data string;
A data output stage for arranging the generated unit code data in order and outputting them as an encoded data string;
Run
The encoding table is
It is a table showing the correspondence between individual bit lengths and unique identification codes corresponding to the bit lengths for a plurality of bit lengths within a predetermined range sufficient to represent the actual data,
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code The code does not exist in this table, and when the bit length corresponding to the identification code of interest is b, “a + b = k × N ”(where k is an arbitrary integer).
In the actual data generation stage, as actual data indicating the extracted numerical data, when the numerical data is data indicating 0, a virtual bit string having a bit length of 0 is data indicating a positive value Is a variable-length bit string that does not include 0 at the beginning, and a variable-length bit string that does not include 1 at the beginning if the data indicates a negative value. Method.
演算処理装置が、
符号化の対象となる数値データ列を入力するデータ入力段階と、
個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルを入力するテーブル入力段階と、
入力した数値データ列から個々の数値データを順番に抽出するデータ抽出段階と、
抽出した数値データが0を示すデータであり、かつ、これまでのカウント値が最大値Rmaxに達していない場合に、0を示す数値データが連続して抽出された回数をランレングス値としてカウントするランレングス値カウント段階と、
抽出した数値データが正の値を示すデータである場合に、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成し、抽出した数値データが負の値を示すデータである場合に、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成し、抽出した数値データが0を示すデータであり、かつ、前記カウント値が前記最大値Rmaxに達していた場合に、ビット長が0である仮想のビット列を実データとして生成する実データ生成段階と、
前記二次元符号化テーブルを参照して、生成された前記実データのビット長と、当該実データが生成された時のランレングス値と、の組み合わせに対応する識別コードを選択し、前記カウント値を0にリセットする識別コード選択段階と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成段階と、
前記データ抽出段階を、入力した数値データ列を構成する数値データのそれぞれについて繰り返し実行するとともに、前記ランレングス値カウント段階、前記実データ生成段階、前記識別コード選択段階および前記単位符号データ生成段階を、必要に応じて繰り返し実行する段階と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力段階と、
を実行し、
前記符号化テーブルが、予め定められた所定の最大ランレングス値をRmaxとしたときに、前記実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであることを特徴とする数値データ列の符号化方法。 An encoding method for encoding a numeric data string composed of fixed-length bits using a variable-length bit string,
Arithmetic processing unit
A data input stage for inputting a numeric data string to be encoded;
A table input stage for inputting a two-dimensional encoding table indicating a unique identification code corresponding to a combination of individual bit lengths and individual run length values;
A data extraction stage for sequentially extracting individual numerical data from the input numerical data string;
When the extracted numerical data is data indicating 0 and the count value so far has not reached the maximum value Rmax, the number of times the numerical data indicating 0 is continuously extracted is counted as a run length value. A run length value counting stage;
When the extracted numerical data is data indicating a positive value, a variable-length bit string that does not include a leading zero is generated as actual data indicating the numerical data, and the extracted numerical data is data indicating a negative value In some cases, a variable-length bit string not including 1 at the beginning is generated as actual data indicating the numerical data, the extracted numerical data is data indicating 0, and the count value reaches the maximum value Rmax. If so, a real data generation stage for generating a virtual bit string having a bit length of 0 as real data;
With reference to the two-dimensional encoding table, an identification code corresponding to a combination of a bit length of the generated actual data and a run length value when the actual data is generated is selected, and the count value An identification code selection stage for resetting to zero,
A unit code data generation step for generating unit code data indicating the extracted numerical data by adding the selected identification code to the head of the generated actual data;
The data extraction step is repeatedly executed for each of the numerical data constituting the input numerical data string, and the run length value counting step, the actual data generation step, the identification code selection step, and the unit code data generation step are performed. , Repeat as needed, and
A data output stage for arranging the generated unit code data in order and outputting them as an encoded data string;
Run
When the predetermined maximum run length value determined in advance is Rmax, the encoding table has a plurality of bit lengths within a predetermined range sufficient to represent the actual data, and a range up to Rmax. For each combination of multiple run length values, a table showing the correspondence between each combination and a unique identification code corresponding to the combination,
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code. The code does not exist in this table, and when the bit length corresponding to the target identification code is b, “a + b = N” is a predetermined reference bit length N (where N is an integer of 2 or more). A numerical data string encoding method, characterized in that the table satisfies a condition of “k × N” (where k is an arbitrary integer).
データ抽出段階で、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行し、当該調査処理により前記ゼロ永続状態であることが確認された場合に、
実データ生成段階では、ビット長が0である仮想のビット列を実データとして生成し、識別コード選択段階では、ゼロ永続状態を示す終端コードを識別コードとして選択することを特徴とする数値データ列の符号化方法。 The encoding method according to claim 2 , wherein
In the data extraction stage, when extracting numeric data, it is checked whether or not “zero persistent state that all numeric data subsequent to the end of the numeric data string including the numeric data to be extracted is 0”. When the investigation process is executed and it is confirmed by the investigation process that the zero permanent state is present,
In the actual data generation stage, a virtual bit string having a bit length of 0 is generated as actual data, and in the identification code selection stage, a termination code indicating a zero permanent state is selected as an identification code. Encoding method.
演算処理装置が、特定の数値データを可変長のビット列を用いて表現した実データを生成し、この実データの先頭に、少なくとも当該実データのビット長を示す情報をもった識別コードを付加することにより、少なくとも前記特定の数値データ自身を示す情報をもった単位符号データを生成し、生成された複数の単位符号データを順番に並べて符号化データ列として出力する処理を実行し、
付加する識別コードを選択する際に、少なくとも「所定範囲内の複数通りのビット長と、当該ビット長に対応する識別コードとの対応関係」を示す符号化テーブルを用いるようにし、かつ、当該テーブルが、当該テーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであり、
実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルを用いることを特徴とする数値データ列の符号化方法。 An encoding method for encoding a numeric data string composed of fixed-length bits using a variable-length bit string,
The arithmetic processing unit generates actual data representing specific numerical data using a variable-length bit string, and adds an identification code having at least information indicating the bit length of the actual data to the head of the actual data. By doing this, generate unit code data having information indicating at least the specific numerical data itself, execute a process of arranging the generated plurality of unit code data in order and outputting them as an encoded data string,
When selecting an identification code to be added, an encoding table indicating at least “a correspondence relationship between a plurality of bit lengths within a predetermined range and an identification code corresponding to the bit length” is used, and the table However, when focusing on any identification code in the table, when the bit length of the target identification code itself is a, the a-bit portion from the beginning is the same as the target identification code. No identification code exists in this table, and when a bit length corresponding to the identification code of interest is b, “N” is an integer greater than or equal to 2 a + b = k × N ”(where k is an arbitrary integer).
As the appearance frequency of the bit length b of actual data or the appearance frequency of the combination of the bit length b and the run length value R is higher, an encoding table in which an identification code having a shorter bit length a is associated is used. A numerical data string encoding method characterized by the above.
符号化の対象となる数値データ列について、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度を集計する頻度集計段階と、
既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成するテーブル修正段階と、
を更に実行し、
識別コード選択段階で、前記修正した符号化テーブルを参照して、識別コードの選択を行うことを特徴とする数値データ列の符号化方法。 The encoding method according to claim 4 , wherein
A frequency counting stage for counting the appearance frequency of the bit length b of the actual data or the appearance frequency of the combination of the bit length b and the run length value R for the numerical data string to be encoded;
The frequency of occurrence of the bit length b of the actual data or the bit by performing the process of exchanging the contents of the table for the bit lengths b having an integer multiple difference of the reference bit length N in the existing standard encoding table A table modification stage for generating a modified encoding table in which an identification code having a shorter bit length a is associated with an increase in the appearance frequency of the combination of the length b and the run length value R;
And execute
A numerical data string encoding method, wherein an identification code is selected by referring to the corrected encoding table in an identification code selection step.
データ出力段階において、符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルを出力することを特徴とする数値データ列の符号化方法。 In the encoding method in any one of Claims 1-5 ,
An encoding method for a numerical data string, wherein a data file including an encoded data string and an encoding table used for encoding processing is output in a data output stage.
データ出力段階において、符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルを出力することを特徴とする数値データ列の符号化方法。 In the encoding method in any one of Claims 1-5 ,
An encoding method of a numerical data string, wherein a data file including an encoded data string and table specifying information for specifying an encoding table used for encoding processing is output in a data output stage.
複数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回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。 A decoding method for restoring a numeric data sequence that is a target of encoding with respect to an encoded data sequence encoded by the encoding method of the numeric data sequence according to claim 2 ,
An arithmetic processing device including a plurality of M decoding processing units is provided.
A data input stage for inputting an encoded data sequence to be decoded;
A table input stage for inputting a two-dimensional encoding table used for encoding;
Decoding of a plurality of M units each having a function of performing decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax when the maximum bit length of unit code data is Umax) A data distribution step of distributing a part of the encoded data sequence as partial data to a processing unit;
By means of parallel processing by the M decoding processing units, referring to the two-dimensional encoding table, a run length value indicating the number of times numeric data indicating 0 is enumerated from each distributed partial data, A decoding process stage for performing a decoding process to extract numerical data corresponding to actual data following the numerical data shown;
A data organization stage for selecting a result of the decoding processing by the M decoding processing units and generating a decoded data string in which numerical data indicating 0 and numerical data corresponding to individual actual data are arranged;
A data output step of outputting the generated decoded data sequence;
Run
In the data distribution stage, from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the head of the undecoded portion of the encoded data string. The process of distributing the bit string to the i-th unit (i = 1 to M) is repeated until decoding of all parts of the encoded data string is completed,
In the decoding process step, each time the M decoding processing units distribute new partial data, numerical data corresponding to the run length value and the actual data is obtained from the head of the distributed partial data. Do the processing to take out,
In the data organization stage, when processing results are obtained from the M decoding processing units by one parallel processing, the first unit is first determined as the first adopted unit, and normal decoding is performed by this adopted unit. Recognize the last bit that has been processed, and continue as much as possible the process of deciding another unit to which the partial data with the bit immediately after the last bit as the first bit is distributed as the new adopted unit Collecting numerical data that has been successfully decoded in each selected unit, and generating a decoded data string by arranging the numerical data based on the information collected by one or more parallel processes. A method of decoding a numerical data string characterized by
前記符号化データ列を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回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。 “At least an identification code indicating a predetermined bit length followed by actual data consisting of a bit string having the bit length, the total length of which is a predetermined reference bit length N (where N is an integer of 2 or more ) Is a decoding method for restoring at least numerical data corresponding to individual actual data for an encoded data string configured by arranging a plurality of sets of unit code data set to be an integral multiple of ,
Dividing the encoded data sequence in units of an integer multiple of N bits to generate a plurality of partial data, and distributing each partial data to a plurality of M decoding processing units;
Performing a decoding process on the distributed partial data by parallel processing of the plurality of M decoding processing units;
Generate a decoded data string by arranging numerical data that has been successfully decoded,
“Subsequent to an identification code indicating a combination of a predetermined bit length and a predetermined run length value, it has a structure in which real data including a bit string having the bit length is arranged, and numerical data indicating 0 is expressed as the run length. A data string in which numerical data corresponding to the actual data is arranged after being enumerated a number of times corresponding to the value, and the total length is an integral multiple of a predetermined reference bit length N (where N is an integer of 2 or more). In order to restore an original data sequence in which numerical data indicating 0 and individual actual data are arranged for an encoded data sequence configured by arranging a plurality of sets of set unit code data (maximum bit length Umax) In addition,
An arithmetic processing device including a plurality of M decoding processing units is provided.
A data input stage for inputting an encoded data sequence to be decoded;
A table input stage for inputting a two-dimensional encoding table indicating a combination of a specific bit length corresponding to each identification code and a specific run length value;
Part of the encoded data string for a plurality of M decoding processing units each having a function of performing decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax). A data distribution stage for distributing the data as partial data;
By means of parallel processing by the M decoding processing units, referring to the two-dimensional encoding table, a run length value indicating the number of times numeric data indicating 0 is enumerated from each distributed partial data, A decoding process stage for performing a decoding process to extract numerical data corresponding to actual data following the numerical data shown;
A data organization stage for selecting a result of the decoding processing by the M decoding processing units and generating a decoded data string in which numerical data indicating 0 and numerical data corresponding to individual actual data are arranged;
A data output step of outputting the generated decoded data sequence;
Run
In the data distribution stage, from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the head of the undecoded portion of the encoded data string. The process of distributing the bit string to the i-th unit (i = 1 to M) is repeated until decoding of all parts of the encoded data string is completed,
In the decoding process step, each time the M decoding processing units distribute new partial data, numerical data corresponding to the run length value and the actual data is obtained from the head of the distributed partial data. Do the processing to take out,
In the data organization stage, when processing results are obtained from the M decoding processing units by one parallel processing, the first unit is first determined as the first adopted unit, and normal decoding is performed by this adopted unit. Recognize the last bit that has been processed, and continue as much as possible the process of deciding another unit to which the partial data with the bit immediately after the last bit as the first bit is distributed as the new adopted unit Collecting numerical data that has been successfully decoded in each selected unit, and generating a decoded data string by arranging the numerical data based on the information collected by one or more parallel processes. A method of decoding a numerical data string characterized by
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することを特徴とする数値データ列の復号化方法。 The decoding method according to claim 9 , wherein
In the decoding process stage, each of the M decoding processing units extracts numerical data corresponding to the run-length value and the actual data from the head of the distributed partial data each time new partial data is distributed. The numerical data string decoding method is characterized by continuing normal decoding processing as much as possible.
復号処理段階で、M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行うことを特徴とする数値データ列の復号化方法。 The decoding method according to claim 9 , wherein
In the decoding process stage, each time the M decoding processing units distribute new partial data, the run length value and actual data for one unit code data are converted from the head of the distributed partial data. A method for decoding a numeric data string, wherein a process for extracting only corresponding numeric data is performed.
復号処理段階で、M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することを特徴とする数値データ列の復号化方法。 The decoding method according to claim 9 , wherein
In the decoding process stage, each of the first to (M−1) -th units among the M decoding processing units is distributed each time new partial data is distributed. Each time the M-th unit distributes new partial data, it performs a process for extracting only the run-length value for one unit code data and the numerical data corresponding to the actual data. A method for decoding a numerical data string, characterized in that normal decoding processing is continued as much as possible for processing for extracting numerical data corresponding to run length values and actual data from the beginning of the distributed partial data .
復号処理段階で、M台の復号処理ユニットのそれぞれが、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、
データ編成段階で、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。 In the decoding method in any one of Claims 9-12 ,
In the decoding process stage, each of the M decoding processing units restores the original data by arranging the numerical data corresponding to the actual data after arranging the numerical data indicating 0 as many times as the run-length value. Execute the process,
A decoding method of a numerical data string, wherein a decoded data string is generated by arranging restored data in a data organization stage.
復号処理段階で、M台の復号処理ユニットのそれぞれが、取り出したランレングス値および実データに対応する数値データをそのまま出力する処理を実行し、
データ編成段階で、各採択ユニットから収集した情報に基づいて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化方法。 In the decoding method in any one of Claims 9-12 ,
In the decoding process stage, each of the M decoding processing units executes a process of outputting the run length value and the numerical data corresponding to the actual data as they are,
In the data organization stage, based on the information collected from each adopted unit, the original data is restored by arranging the numerical data indicating 0 for the number of times corresponding to the run-length value and arranging the numerical data corresponding to the actual data. A decoding method for a numerical data string, wherein the decoding data string is generated by arranging the restored data by performing a process to perform
符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルが与えられたときに、
データ入力段階において、前記データファイルから符号化データ列を抽出する処理を行い、
テーブル入力段階において、前記データファイルから符号化テーブルを抽出する処理を行うことを特徴とする数値データ列の復号化方法。 In the decoding method in any one of Claims 9-14 ,
When a data file including an encoded data string and an encoding table used for encoding processing is given,
In the data input stage, a process of extracting an encoded data string from the data file is performed,
A numerical data string decoding method, comprising: performing a process of extracting an encoding table from the data file in a table input stage.
符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルが与えられたときに、
データ入力段階において、前記データファイルから符号化データ列を抽出する処理を行い、
テーブル入力段階において、前記データファイルからテーブル特定情報を抽出する処理を行った後、当該テーブル特定情報によって特定されるテーブルを選択して利用することを特徴とする数値データ列の復号化方法。 In the decoding method in any one of Claims 9-14 ,
When a data file including an encoded data string and table specifying information for specifying an encoding table used for encoding processing is given,
In the data input stage, a process of extracting an encoded data string from the data file is performed,
A method of decoding a numerical data string, wherein, in a table input stage, after performing processing for extracting table specifying information from the data file, a table specified by the table specifying information is selected and used.
データ分配段階では、M≧1+L/Nとなるような複数M台の復号処理ユニットに部分データの分配を行い、
復号処理段階では、これらM台の復号処理ユニットによる並列処理を行うことを特徴とする数値データ列の復号化方法。 The decoding method according to any one of claims 9 to 16 ,
In the data distribution stage, partial data is distributed to a plurality of M decoding processing units such that M ≧ 1 + L / N,
A decoding method for a numerical data string, wherein parallel processing is performed by these M decoding processing units in a decoding processing stage.
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを格納するテーブル格納部と、
前記データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成部と、
前記符号化テーブルを参照して、生成された前記実データのビット長に対応する識別コードを選択する識別コード選択部と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を備え、
前記符号化テーブルが、
前記実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであり、
前記実データ生成部が、抽出した数値データを示す実データとして、当該数値データが0を示すデータである場合にはビット長が0である仮想のビット列を、正の値を示すデータである場合には先頭に0を含まない可変長のビット列を、負の値を示すデータである場合には先頭に1を含まない可変長のビット列を、それぞれ生成することを特徴とする数値データ列の符号化装置。 An encoding device that encodes a numeric data string composed of fixed-length bits using a variable-length bit string,
A data storage unit for inputting and storing a numeric data sequence to be encoded;
A table storage unit for storing a coding table indicating a unique identification code corresponding to each bit length;
A data extraction unit for sequentially extracting individual numerical data from the numerical data string stored in the data storage unit;
An actual data generation unit that generates actual data by deleting redundant bits from the extracted numerical data;
An identification code selection unit that selects an identification code corresponding to the bit length of the generated actual data with reference to the encoding table;
A unit code data generating unit that generates unit code data indicating the extracted numerical data by adding the selected identification code to the head of the generated actual data;
A data output unit that arranges the generated unit code data in order and outputs the encoded data as an encoded data sequence;
With
The encoding table is
It is a table showing the correspondence between individual bit lengths and unique identification codes corresponding to the bit lengths for a plurality of bit lengths within a predetermined range sufficient to represent the actual data,
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code The code does not exist in this table, and when the bit length corresponding to the identification code of interest is b, “a + b = k × N ”(where k is an arbitrary integer).
In the case where the actual data generation unit is a data indicating a positive value as a virtual bit string having a bit length of 0 when the numerical data is data indicating 0 as the actual data indicating the extracted numerical data Is a variable-length bit string that does not include 0 at the beginning, and a variable-length bit string that does not include 1 at the beginning if the data indicates a negative value. Device.
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長と個々のランレングス値との組み合わせに対応する固有の識別コードを示す二次元符号化テーブルを格納するテーブル格納部と、
前記データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データが0を示すデータであり、かつ、これまでのカウント値が最大値Rmaxに達していない場合には、0を示す数値データが連続して抽出された回数をランレングス値としてカウントする処理を行い、抽出した数値データが正の値を示すデータである場合には、当該数値データを示す実データとして先頭に0を含まない可変長のビット列を生成する処理を行い、抽出した数値データが負の値を示すデータである場合には、当該数値データを示す実データとして先頭に1を含まない可変長のビット列を生成する処理を行い、抽出した数値データが0を示すデータであり、かつ、前記カウント値が前記最大値Rmaxに達していた場合には、ビット長が0である仮想のビット列を実データとして生成する実データ生成部と、
前記二次元符号化テーブルを参照して、生成された前記実データのビット長と、当該実データが生成された時のランレングス値と、の組み合わせに対応する識別コードを選択し、前記カウント値を0にリセットする識別コード選択部と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を備え、
前記符号化テーブルが、予め定められた所定の最大ランレングス値をRmaxとしたときに、前記実データを表現するのに十分な所定範囲内の複数通りのビット長と、Rmax までの範囲内の複数通りのランレングス値と、の各組み合わせについて、個々の組み合わせと、当該組み合わせに対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであることを特徴とする数値データ列の符号化装置。 An encoding device that encodes a numeric data string composed of fixed-length bits using a variable-length bit string,
A data storage unit for inputting and storing a numeric data sequence to be encoded;
A table storage unit for storing a two-dimensional encoding table indicating a unique identification code corresponding to a combination of individual bit lengths and individual run length values;
A data extraction unit for sequentially extracting individual numerical data from the numerical data string stored in the data storage unit;
When the extracted numerical data is data indicating 0 and the count value so far has not reached the maximum value Rmax, the number of times the numerical data indicating 0 is continuously extracted is counted as a run length value. If the extracted numerical data is data indicating a positive value, a process of generating a variable-length bit string that does not include a leading zero as actual data indicating the numerical data is performed. When the data is a data indicating a negative value, a process of generating a variable-length bit string not including 1 at the head is performed as actual data indicating the numerical data, and the extracted numerical data is data indicating 0 And when the count value has reached the maximum value Rmax, an actual data generation unit that generates a virtual bit string having a bit length of 0 as actual data;
With reference to the two-dimensional encoding table, an identification code corresponding to a combination of a bit length of the generated actual data and a run length value when the actual data is generated is selected, and the count value An identification code selection unit for resetting to 0,
A unit code data generating unit that generates unit code data indicating the extracted numerical data by adding the selected identification code to the head of the generated actual data;
A data output unit that arranges the generated unit code data in order and outputs the encoded data as an encoded data sequence;
With
When the predetermined maximum run length value determined in advance is Rmax, the encoding table has a plurality of bit lengths within a predetermined range sufficient to represent the actual data, and a range up to Rmax. For each combination of multiple run length values, a table showing the correspondence between each combination and a unique identification code corresponding to the combination,
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code. The code does not exist in this table, and when the bit length corresponding to the target identification code is b, “a + b = N” is a predetermined reference bit length N (where N is an integer of 2 or more) An apparatus for encoding a numerical data string, characterized in that the table satisfies a condition “k × N” (where k is an arbitrary integer).
データ抽出部が、数値データを抽出する際に、「抽出対象となる数値データを含めて、数値データ列の末尾までに後続する数値データがすべて0であるというゼロ永続状態」か否かを調べる調査処理を実行し、
実データ生成部が、前記調査処理により前記ゼロ永続状態であることが確認された場合に、ビット長が0である仮想のビット列を実データとして生成し、
識別コード選択部が、前記調査処理により前記ゼロ永続状態であることが確認された場合に、ゼロ永続状態を示す終端コードを識別コードとして選択することを特徴とする数値データ列の符号化装置。 The encoding device according to claim 19 ,
When the data extraction unit extracts the numerical data, it checks whether or not “a zero-permanent state in which all the numerical data subsequent to the end of the numerical data string including the numerical data to be extracted is 0” is in effect. Run the investigation process,
When the real data generation unit is confirmed to be in the zero permanent state by the investigation process, a virtual bit string having a bit length of 0 is generated as real data,
A numerical data string encoding apparatus, wherein an identification code selection unit selects, as an identification code, an end code indicating a zero permanent state when it is confirmed that the zero permanent state is obtained by the examination process.
符号化の対象となる数値データ列を入力して格納するデータ格納部と、
個々のビット長に対応する固有の識別コードを示す符号化テーブルを格納するテーブル格納部と、
前記データ格納部に格納されている数値データ列から個々の数値データを順番に抽出するデータ抽出部と、
抽出した数値データから冗長なビットを削除することにより実データを生成する実データ生成部と、
前記符号化テーブルを参照して、生成された前記実データのビット長に対応する識別コードを選択する識別コード選択部と、
生成された前記実データの先頭に、選択された前記識別コードを付加することにより、抽出した前記数値データを示す単位符号データを生成する単位符号データ生成部と、
生成された単位符号データを順番に並べて、符号化データ列として出力するデータ出力部と、
を備え、
前記符号化テーブルが、
前記実データを表現するのに十分な所定範囲内の複数通りのビット長について、個々のビット長と、当該ビット長に対応する固有の識別コードと、の対応関係を示すテーブルであり、
このテーブル内のいずれの識別コードに着目した場合にも、当該着目識別コード自身のビット長をaとしたときに、先頭からaビットの部分が当該着目識別コードと同一になるような別な識別コードはこのテーブル内に存在せず、かつ、当該着目識別コードに対応するビット長をbとしたときに、所定の基準ビット長N(但し、Nは2以上の整数)に対して「a+b=k×N」(但し、kは任意の整数)なる条件を満足するテーブルであり、
前記テーブル格納部に格納されている符号化テーブルが、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルであることを特徴とする数値データ列の符号化装置。 An encoding device that encodes a numeric data string composed of fixed-length bits using a variable-length bit string,
A data storage unit for inputting and storing a numeric data sequence to be encoded;
A table storage unit for storing a coding table indicating a unique identification code corresponding to each bit length;
A data extraction unit for sequentially extracting individual numerical data from the numerical data string stored in the data storage unit;
An actual data generation unit that generates actual data by deleting redundant bits from the extracted numerical data;
An identification code selection unit that selects an identification code corresponding to the bit length of the generated actual data with reference to the encoding table;
A unit code data generating unit that generates unit code data indicating the extracted numerical data by adding the selected identification code to the head of the generated actual data;
A data output unit that arranges the generated unit code data in order and outputs the encoded data as an encoded data sequence;
With
The encoding table is
It is a table showing the correspondence between individual bit lengths and unique identification codes corresponding to the bit lengths for a plurality of bit lengths within a predetermined range sufficient to represent the actual data,
When any of the identification codes in this table is focused, another identification is made such that when the bit length of the focused identification code itself is a, the a-bit portion from the beginning is the same as the focused identification code The code does not exist in this table, and when the bit length corresponding to the identification code of interest is b, “a + b = k × N ”(where k is an arbitrary integer).
The encoding table stored in the table storage unit has a shorter bit length a as the appearance frequency of the bit length b of the actual data or the appearance frequency of the combination of the bit length b and the run length value R increases. An encoding device for a numerical data string, wherein the encoding table is associated with an identification code.
テーブル格納部に格納されている符号化テーブルが、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている符号化テーブルであることを特徴とする数値データ列の符号化装置。 The encoding device according to any one of claims 18 to 20 ,
The encoding table stored in the table storage unit has a shorter bit length a as the appearance frequency of the bit length b of the actual data or the appearance frequency of the combination of the bit length b and the run length value R increases. An encoding device for a numerical data string, wherein the encoding table is associated with an identification code.
データ格納部に格納されている数値データ列について、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度を集計する頻度集計部と、
既存の標準符号化テーブル内の、基準ビット長Nの整数倍の差をもつビット長b相互について、テーブルの内容を入れ替える処理を行うことにより、実データのビット長bの出現頻度、もしくは、ビット長bとランレングス値Rとの組み合わせの出現頻度が高いほど、より短いビット長aをもつ識別コードが対応づけられている修正した符号化テーブルを生成し、これをテーブル格納部に格納するテーブル修正部と、
を更に設けたことを特徴とする数値データ列の符号化装置。 The encoding device according to claim 21 or 22 ,
A frequency counting unit that counts the appearance frequency of the bit length b of the actual data or the appearance frequency of the combination of the bit length b and the run length value R for the numerical data string stored in the data storage unit;
The frequency of occurrence of the bit length b of the actual data or the bit by performing the process of exchanging the contents of the table for the bit lengths b having an integer multiple difference of the reference bit length N in the existing standard encoding table A table for generating a modified encoding table in which an identification code having a shorter bit length a is associated with each other as the appearance frequency of the combination of the length b and the run length value R is higher, and storing the table in the table storage unit Correction part,
A numerical data string encoding device characterized by further comprising:
データ出力部が、符号化データ列とともに、テーブル格納部に格納されている符号化テーブルもしくは当該符号化テーブルを特定するテーブル特定情報を出力することを特徴とする数値データ列の符号化装置。 The encoding device according to any one of claims 18 to 23 ,
A data output unit outputs an encoding table stored in a table storage unit or table specifying information for specifying the encoding table together with an encoded data sequence.
復号化の対象となる符号化データ列を入力して格納するデータ格納部と、
個々の識別コードに対応する特定のビット長と特定のランレングス値との組み合わせを示す二次元符号化テーブルを格納するテーブル格納部と、
それぞれ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回もしくは複数回の並列処理によってそれぞれ収集された情報に基づいて数値データを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化装置。 “Subsequent to an identification code indicating a combination of a predetermined bit length and a predetermined run length value, it has a structure in which real data including a bit string having the bit length is arranged, and numerical data indicating 0 is expressed as the run length. A data string in which numerical data corresponding to the actual data is arranged after being enumerated a number of times corresponding to the value, and the total length is an integral multiple of a predetermined reference bit length N (where N is an integer of 2 or more). Decoding that restores an original data sequence in which numerical data indicating 0 and individual actual data are arranged for an encoded data sequence configured by arranging a plurality of sets of set unit code data (maximum bit length Umax) Device.
A data storage unit for inputting and storing an encoded data sequence to be decoded;
A table storage unit for storing a two-dimensional encoding table indicating a combination of a specific bit length corresponding to each identification code and a specific run length value;
A plurality of M decoding processing units that perform decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax) in parallel,
A data distribution unit that distributes a part of the encoded data sequence stored in the data storage unit as partial data to the M decoding processing units;
A data organization unit that selects a result of the decoding processing by the M decoding processing units, and generates a decoded data string in which numerical data indicating 0 and numerical data corresponding to individual real data are arranged;
A data output unit for outputting the generated decoded data sequence;
With
The data distribution unit counts from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the beginning of the undecoded portion of the encoded data string. The process of distributing the bit string to the i-th unit (i = 1 to M) is repeated until decoding of all parts of the encoded data string is completed,
The M decoding processing units refer to the two-dimensional encoding table, run length values indicating the number of times numerical data indicating 0 is listed from the distributed partial data, and numerical data indicating 0 And a decoding process for extracting the numerical data corresponding to the actual data that follows, and every time new partial data is distributed, the run length value and the actual data from the beginning of the distributed partial data Process to extract the numerical data corresponding to
When the processing result is obtained from the M decoding processing units by one parallel processing, the data organization unit first determines the first unit as the first selected unit, and the selected unit performs normal decoding. Recognize the last bit that has been processed, and continue as much as possible the process of deciding another unit to which the partial data with the bit immediately after the last bit as the first bit is distributed as the new adopted unit Collecting numerical data that has been successfully decoded in each selected unit, and generating a decoded data string by arranging the numerical data based on the information collected by one or more parallel processes. An apparatus for decoding a numerical data string characterized by
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することを特徴とする数値データ列の復号化装置。 The decoding device according to claim 25 ,
Each time the M decoding processing units perform distribution of new partial data, the process for extracting the numerical data corresponding to the run length value and the actual data from the head of the distributed partial data is normally performed. And a decoding apparatus for a numerical data string, characterized in that a simple decoding process is continued as much as possible.
M台の復号処理ユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行うことを特徴とする数値データ列の復号化装置。 The decoding device according to claim 25 ,
Each time each of the M decoding processing units distributes the new partial data, only the run length value and the numerical data corresponding to the actual data for one unit code data from the head of the distributed partial data. A numerical data string decoding apparatus, characterized by performing a process for extracting data.
M台の復号処理ユニットのうち、第1台目〜第(M−1)台目のユニットのそれぞれが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、1つの単位符号データについてのランレングス値および実データに対応する数値データのみを取り出すための処理を行い、第M台目のユニットが、新たな部分データの分配が行われるたびに、分配された部分データの先頭から、ランレングス値および実データに対応する数値データを取り出すための処理を、正常な復号処理が可能な限り続行することを特徴とする数値データ列の復号化装置。 The decoding device according to claim 25 ,
Among the M decoding processing units, each of the first to (M−1) -th units is 1 from the head of the distributed partial data each time new partial data is distributed. A process for extracting only numerical data corresponding to run length values and actual data for one unit code data is performed, and each time the M-th unit distributes new partial data, the distributed part An apparatus for decoding a numerical data string, characterized in that a process for extracting numerical data corresponding to a run length value and actual data from the beginning of data is continued as long as normal decoding processing is possible.
M台の復号処理ユニットのそれぞれが、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータをデータ編成部に与え、
データ編成部が、各復号処理ユニットから与えられたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化装置。 The decoding device according to any one of claims 25 to 28 ,
Each of the M decoding processing units executes a process of restoring the original data by arranging the numerical data corresponding to the actual data after arranging the numerical data indicating 0 for the number of times corresponding to the run length value, The restored data is given to the data organization department,
A numerical data sequence decoding apparatus, wherein the data organization unit generates a decoded data sequence by arranging data provided from each decoding processing unit.
M台の復号処理ユニットのそれぞれが、取り出したランレングス値および実データに対応する数値データをそのままデータ編成部に与え、
データ編成部が、各採択ユニットから与えられた情報に基づいて、0を示す数値データをランレングス値に相当する回数だけ羅列した後に実データに相当する数値データを並べることにより、元のデータを復元する処理を実行し、復元されたデータを並べることにより復号化データ列を生成することを特徴とする数値データ列の復号化装置。 The decoding device according to any one of claims 25 to 28 ,
Each of the M decoding processing units gives the run length value and the numerical data corresponding to the actual data as they are to the data organization unit,
The data organization unit arranges the numerical data corresponding to the actual data after arranging the numerical data indicating 0 based on the information given from each adopted unit, and arranging the numerical data corresponding to the run-length value. An apparatus for decoding a numerical data string, wherein a decoding data string is generated by executing a restoring process and arranging the restored data.
符号化データ列と、符号化の処理に用いた符号化テーブルと、を含むデータファイルが与えられたときに、
データ格納部が、前記データファイルから符号化データ列を抽出して格納する処理を行い、
テーブル格納部が、前記データファイルから符号化テーブルを抽出して格納する処理を行うことを特徴とする数値データ列の復号化装置。 The decoding device according to any one of claims 25 to 30 ,
When a data file including an encoded data string and an encoding table used for encoding processing is given,
The data storage unit performs a process of extracting and storing the encoded data string from the data file,
A numerical data string decoding apparatus, wherein a table storage unit performs a process of extracting and storing an encoding table from the data file.
符号化データ列と、符号化の処理に用いた符号化テーブルを特定するテーブル特定情報と、を含むデータファイルが与えられたときに、
データ格納部が、前記データファイルから符号化データ列を抽出して格納する処理を行い、
テーブル格納部が、前記データファイルからテーブル特定情報を抽出する処理を行った後、当該テーブル特定情報によって特定されるテーブルを外部から読み込んで格納する処理を行うことを特徴とする数値データ列の復号化装置。 The decoding device according to any one of claims 25 to 30 ,
When a data file including an encoded data string and table specifying information for specifying an encoding table used for encoding processing is given,
The data storage unit performs a process of extracting and storing the encoded data string from the data file,
Decoding of a numerical data string, wherein a table storage unit performs processing for extracting table specifying information from the data file and then reading and storing a table specified by the table specifying information from the outside Device.
M≧1+L/Nとなるような複数M台の復号処理ユニットを設けたことを特徴とする数値データ列の復号化装置。 The decoding device according to any one of claims 25 to 32 ,
A numerical data string decoding apparatus comprising a plurality of M decoding processing units such that M ≧ 1 + L / N.
各復号処理ユニットが、データ編成部に対して、正常な復号処理によって得られた情報と、当該正常な復号処理に関与したビット数を示す正常処理ビット長とを報告する機能を有し、
データ編成部が、報告された前記正常処理ビット長に基づいて採択ユニットを決定し、報告された前記情報を用いて復号化データ列を生成することを特徴とする数値データ列の復号化装置。 The decoding device according to any one of claims 25 to 33 ,
Each decoding processing unit has a function of reporting to the data organization unit information obtained by normal decoding processing and a normal processing bit length indicating the number of bits involved in the normal decoding processing,
An apparatus for decoding a numerical data sequence, wherein a data organization unit determines an adopted unit based on the reported normal processing bit length, and generates a decoded data sequence using the reported information.
データ編成部が、1回の並列処理によってM台の復号処理ユニットからの処理結果が得られるたびに、各採択ユニットから報告された正常処理ビット長を合計することにより既復号化部を認識し、これをデータ分配部に対して報告する機能を有し、
データ分配部が、前記報告に基づいて、次回の並列処理のための未復号化部の認識を行うことを特徴とする数値データ列の復号化装置。 The decoding device according to claim 34 ,
Each time the data organization unit obtains the processing results from the M decoding processing units by one parallel processing, it recognizes the already-decoding unit by summing the normal processing bit lengths reported from each adopted unit. , Has a function to report this to the data distribution unit,
The data distribution unit recognizes an undecoded unit for the next parallel processing based on the report, and decodes a numerical data string.
(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のいずれかに記載の数値データ列の復号化装置。 The decoding device for the numerical data sequence described in (1) below is used as a decoding means for the numerical data of the DC component, and the decoding device for the numerical data sequence described in (2) is used as the numerical data sequence for the AC component. A decompression processing apparatus for JPEG images, characterized in that it is used as a decoding means.
(1) “A data in which actual data consisting of a bit string having the bit length is arranged following an identification code indicating a predetermined bit length, and the total length is a predetermined reference bit length N (where N is 2 or more) Numerical data corresponding to individual actual data is restored for an encoded data string formed by arranging a plurality of sets of unit code data (maximum bit length Umax) set to be an integer multiple of (integer)) A decryption device for
A data storage unit for inputting and storing an encoded data sequence to be decoded;
A table storage unit for storing a coding table indicating a specific bit length corresponding to each identification code;
A plurality of M decoding processing units that perform decoding processing on continuous bit data of L bits (where L is an integer multiple of N and L ≧ Umax) in parallel,
A data distribution unit that distributes a part of the encoded data sequence stored in the data storage unit as partial data to the M decoding processing units;
A data organization unit that selects a result of the decryption processing by the M decryption processing units and generates a decrypted data sequence in which numerical data corresponding to individual actual data are arranged;
A data output unit for outputting the generated decoded data sequence;
With
The data distribution unit counts from the (N × (i−1) +1) th bit to the (N × (i−1) + L) th bit counted from the beginning of the undecoded portion of the encoded data string. The process of distributing the bit string to the i-th unit (i = 1 to M) is repeated until decoding of all parts of the encoded data string is completed,
The M decoding processing units have a function of performing a decoding process of extracting numerical data corresponding to actual data from each distributed partial data while referring to the encoding table, and distributing new partial data Is performed, the process to extract the numerical data corresponding to the actual data from the beginning of the distributed partial data,
When the processing result is obtained from the M decoding processing units by one parallel processing, the data organization unit first determines the first unit as the first selected unit, and the selected unit performs normal decoding. Recognize the last bit that has been processed, and continue as much as possible the process of deciding another unit to which the partial data with the bit immediately after the last bit as the first bit is distributed as the new adopted unit , Collecting numerical data successfully decoded in each selected unit, and generating a decoded data string by arranging the numerical data collected by one or more parallel processes, respectively Decoding device for numeric data string.
(2) The numerical data string decoding device according to any one of claims 25 to 30.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009268415A JP5472610B2 (en) | 2009-11-26 | 2009-11-26 | Method and apparatus for encoding / decoding numeric data string |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009268415A JP5472610B2 (en) | 2009-11-26 | 2009-11-26 | Method and apparatus for encoding / decoding numeric data string |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013257542A Division JP5626440B2 (en) | 2013-12-13 | 2013-12-13 | Method and apparatus for encoding / decoding numeric data string |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011114525A JP2011114525A (en) | 2011-06-09 |
JP5472610B2 true JP5472610B2 (en) | 2014-04-16 |
Family
ID=44236550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009268415A Expired - Fee Related JP5472610B2 (en) | 2009-11-26 | 2009-11-26 | Method and apparatus for encoding / decoding numeric data string |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5472610B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5450534B2 (en) * | 2011-08-31 | 2014-03-26 | 京楽産業.株式会社 | Game machine |
JP5450532B2 (en) * | 2011-08-31 | 2014-03-26 | 京楽産業.株式会社 | Game machine |
CN105335989B (en) * | 2014-06-11 | 2019-04-05 | 富士通株式会社 | Image encoding method and picture coding device |
JP6821184B2 (en) | 2017-02-28 | 2021-01-27 | 株式会社シキノハイテック | Image decoder |
JP7024866B2 (en) * | 2018-06-01 | 2022-02-24 | 株式会社島津製作所 | Data processing method and equipment for instrumental analysis |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6276931A (en) * | 1985-09-30 | 1987-04-09 | Toshiba Corp | Data compressor |
JPS62298280A (en) * | 1986-06-18 | 1987-12-25 | Ricoh Co Ltd | Image encoding method |
JPH05207301A (en) * | 1992-01-28 | 1993-08-13 | Mitsubishi Electric Corp | Facsimile encoding device |
JP2646503B2 (en) * | 1992-10-14 | 1997-08-27 | 株式会社ハドソン | data format |
JPH07135471A (en) * | 1993-11-09 | 1995-05-23 | Tokyo Electron Ltd | Data compressor and data expander |
JPH08316844A (en) * | 1995-05-17 | 1996-11-29 | Hitachi Ltd | Code data decoding method and code data decoder |
JPH0993138A (en) * | 1995-09-27 | 1997-04-04 | Canon Inc | Data compressor and data decoder |
JP3676078B2 (en) * | 1998-05-07 | 2005-07-27 | 株式会社リコー | Run-length encoding method and compression apparatus |
JP2000217003A (en) * | 1999-01-20 | 2000-08-04 | Ricoh Co Ltd | Coding system and decoding system |
JP3661594B2 (en) * | 2001-02-07 | 2005-06-15 | ソニー株式会社 | Data stream generating apparatus and method, variable length encoded data stream generating apparatus and method, and camera system |
-
2009
- 2009-11-26 JP JP2009268415A patent/JP5472610B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011114525A (en) | 2011-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8578058B2 (en) | Real-time multi-block lossless recompression | |
US5818877A (en) | Method for reducing storage requirements for grouped data values | |
JP6025923B2 (en) | System and method for compressing a stream of integer data | |
JP5944510B2 (en) | Context-Adaptive Binary Arithmetic Coding Method and Apparatus for Syntax Element Context-Adaptive Binary Arithmetic Coding | |
JP5472610B2 (en) | Method and apparatus for encoding / decoding numeric data string | |
US7375660B1 (en) | Huffman decoding method | |
WO2014131527A1 (en) | Data encoder, data decoder and method | |
US8682091B2 (en) | Real-time image compression | |
Saravanan et al. | Enhancing efficiency of huffman coding using Lempel Ziv coding for image compression | |
JP5656593B2 (en) | Apparatus and method for decoding encoded data | |
JP5626440B2 (en) | Method and apparatus for encoding / decoding numeric data string | |
KR101023536B1 (en) | Lossless data compression method | |
RU2709656C2 (en) | Encoder, decoder and method using modal symbols | |
EP0635807B1 (en) | Coding apparatus for image compression | |
US7123656B1 (en) | Systems and methods for video compression | |
JP4758494B2 (en) | Circuit and method for converting bit length to code | |
van der Meer et al. | JPEG File Fragmentation Point Detection using Huffman Code and Quantization Array Validation | |
KR101268934B1 (en) | Data compression/decompression device and method thereof | |
Baruah et al. | Enhancing dictionary based preprocessing for better text compression | |
CN113868206B (en) | Data compression method, decompression method, device and storage medium | |
Chang et al. | Very efficient variable-length codes for the lossless compression of VQ indices | |
JP6593445B2 (en) | Encoding program, encoding method, encoding device, decoding program, decoding method, and decoding device | |
JP4462087B2 (en) | Encoding apparatus and encoding method | |
KR20210012580A (en) | Binary data compression method thereof | |
Kim | A new lossless data compression method |
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 |