JP2008099134A - Data decoding apparatus and program - Google Patents
Data decoding apparatus and program Download PDFInfo
- Publication number
- JP2008099134A JP2008099134A JP2006280456A JP2006280456A JP2008099134A JP 2008099134 A JP2008099134 A JP 2008099134A JP 2006280456 A JP2006280456 A JP 2006280456A JP 2006280456 A JP2006280456 A JP 2006280456A JP 2008099134 A JP2008099134 A JP 2008099134A
- Authority
- JP
- Japan
- Prior art keywords
- decoding
- unit
- point
- code data
- decoding unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
Description
本発明は、可変長符号化されたデータの復号に関する。 The present invention relates to decoding of variable length encoded data.
JPEG(Joint Photographic Experts Group)等の画像符号化方式には、可変長符号化技術を用いられることが多い。可変長符号化では、ビット長がまちまちの符号語を詰め合わせて符号データファイルを構成する。このため、N番目の符号語の情報を正しく取り出すには、1番目から(N−1)番目までの符号語を順に解釈していく必要がある。このため、可変長符号化により生成された符号データの復号においては、最初の符号語から順に復号していくことが一般的であった。別の角度からいえば、可変長符号化された符号データはランダムアクセスが原理的に困難であるといえる。ランダムアクセスが困難であるため、符号データを複数に分けて並列的に復号するということも困難であった。 A variable-length encoding technique is often used for an image encoding method such as JPEG (Joint Photographic Experts Group). In variable-length coding, a code data file is configured by assembling codewords having different bit lengths. Therefore, in order to correctly extract the information of the Nth code word, it is necessary to sequentially interpret the first to (N−1) th code words. For this reason, in decoding of code data generated by variable-length coding, it is common to sequentially decode from the first code word. If it says from another angle, it can be said that the random access of the code data by which variable-length encoding was carried out is difficult in principle. Since random access is difficult, it is also difficult to divide code data into a plurality of pieces and decode them in parallel.
特許文献1に示される方式では、M(横方向)×N(縦方向)個の圧縮パケットからなる1ページ分の圧縮画像データを、個々の圧縮パケットを構成する横方向4個のMCUの各ライン(行)をハフマン符号化したビットストリームのブロック(ECS、エントロピコーデッドセグメント)にリスタートマーカまたはEOIマーカが付加された「MCUグループG(n)」をM個配置したデータブロックを一単位として、1つのMCUの縦画素数(8画素)を1ラインとして4Nライン分連続して配列する。これにより、並列処理を実行しやすくしている。しかしながら、このデータ形式は標準的なJPEG形式ではないので、この方式に適合したデコーダでないと復号ができない。
In the method shown in
特許文献2に示される画像処理装置には、a個の最小符号化単位(MCU)のブロック毎に、リスタートマーカが挿入された1ページのJPEG圧縮画像データが入力される。入力された画像データについて、a個の最小符号化単位と挿入されたリスタートマーカとから構成されるグループを1ブロックとして、この圧縮したままのブロック単位で、画像を再配置して画像パケットを生成し、1ページ画像を横方向M個×縦方向N個の画像パケットの集まりに再構成する。その後、画像パケットとして並列画像処理される。しかしながら、このデータ形式も標準的なJPEG形式ではないので、この方式に適合したデコーダでないと復号ができない。
The image processing apparatus disclosed in
上記従来技術は画像の符号化に関するものであったが、復号処理の並列化が困難であるという問題は可変長符号化を含むデータ符号化技術一般に該当する。 Although the above prior art has been related to image coding, the problem of difficulty in parallelizing decoding processing generally applies to data coding techniques including variable length coding.
本発明は、可変長符号化技術を用いたシステムにおいて、復号処理の並列化を可能又は容易にする。 The present invention enables or facilitates parallelization of decoding processes in a system using a variable-length coding technique.
(1)本発明の1つの側面では、復号対象の符号データの先頭である第1開始点から復号を実行する第1復号部と、2以上N以下の各整数kについてそれぞれ設けられた第k復号部であって、前記符号データの途中の第(k−1)開始点より後ろに位置する第k開始点から復号を試行し、復号が失敗した場合は第k開始点の位置を変えて再度復号を試行する第k復号部と、第N復号部が前記符号データの末尾まで失敗せずに復号を終了した場合の第N開始点を第N成功点とし、第(k−1)復号部が第k成功点まで失敗せずに復号を終了した場合の第(k−1)開始点を第(k−1)成功点とした場合に、2以上N以下の各kについて、前記符号データの前記第(k−1)成功点から第k成功点までの部分について前記第(k−1)復号部の復号結果と、前記符号データの第N成功点から末尾までの部分についての前記第N復号部の復号結果と、に基づき、前記符号データ全体に対応する復号結果を生成する復号結果生成部と、を備えるデータ復号装置を提供する。 (1) In one aspect of the present invention, the first decoding unit that performs decoding from the first start point that is the head of the code data to be decoded, and the k-th provided for each integer k that is greater than or equal to 2 and less than or equal to N A decoding unit that attempts decoding from the k-th start point located after the (k-1) start point in the middle of the code data, and if the decoding fails, the position of the k-th start point is changed The (k-1) th decoding is performed with the kth decoding unit that tries decoding again and the Nth starting point when the Nth decoding unit finishes decoding without failing to the end of the code data. When the (k-1) th starting point when the part finishes decoding without failing to the kth successful point is the (k-1) th successful point, the code for each k of 2 or more and N or less The (k-1) th decoding part of the data from the (k-1) th success point to the k th success point A decoding result generation unit that generates a decoding result corresponding to the entire code data based on the result of the signal and the decoding result of the N-th decoding unit for the portion from the Nth success point to the end of the code data; A data decoding apparatus comprising:
(2)1つの態様では、上記構成(1)において、前記各復号部はJPEG方式の復号におけるハフマン復号を行うものであり、前記第2復号部〜第N復号部までの各復号部は、ハフマン復号により得られる量子化DCT係数がJPEGに規定されるブロックをあふれた場合に、復号が失敗したと判定する。 (2) In one aspect, in the above configuration (1), each of the decoding units performs Huffman decoding in JPEG decoding, and each of the decoding units from the second decoding unit to the N-th decoding unit includes: When the quantized DCT coefficient obtained by Huffman decoding overflows a block defined by JPEG, it is determined that decoding has failed.
(3)別の態様では、上記構成(1)において、記各復号部はJPEG方式の復号におけるハフマン復号を行うものであり、前記第2復号部〜第N復号部までの各復号部は、量子化DCT係数に対応づけられない失敗検知用の符号ビット列を含んだ符号割り当て規則に従ってハフマン復号を実行し、前記符号割り当て規則に含まれる失敗検知用の符号ビット列を検知した場合に、復号が失敗したと判定する。 (3) In another aspect, in the configuration (1), each decoding unit performs Huffman decoding in JPEG decoding, and each decoding unit from the second decoding unit to the N-th decoding unit includes: If Huffman decoding is performed according to a code allocation rule including a code bit string for failure detection that is not associated with a quantized DCT coefficient, and the code bit string for failure detection included in the code allocation rule is detected, decoding fails. It is determined that
(4)さらに別の態様では、上記構成(1)において、前記各復号部はJPEG方式の復号におけるハフマン復号を行うものであり、前記第i復号部(iは1以上(N−1)以下の整数)が第i成功点から第(i+1)成功点まで復号を行った際に得られた最後のブロックの直流成分に基づき、第(i+1)復号部の復号結果を補正する直流成分補正部、を更に備える。 (4) In still another aspect, in the configuration (1), each of the decoding units performs Huffman decoding in JPEG decoding, and the i-th decoding unit (i is 1 or more and (N−1) or less). DC component correction unit that corrects the decoding result of the (i + 1) -th decoding unit based on the DC component of the last block obtained when decoding from the i-th success point to the (i + 1) -th success point Are further provided.
(5)更に別の態様では、上記構成(1)において、前記第k復号部(kは2以上N以下の整数)は、復号が失敗した場合、失敗した位置の次の位置を新たな第k開始点として復号を続行する。 (5) In still another aspect, in the configuration (1), when the decoding fails, the k-th decoding unit (k is an integer not less than 2 and not more than N) sets a position next to the failed position as a new position. Decoding continues with k starting point.
(6)本発明の別の側面では、復号対象の符号データの先頭から復号を実行する第1復号部と、前記符号データの途中の開始点から復号を試行し、復号が失敗した場合は開始点の位置を変えて再度復号を試行する第2復号部と、前記第2復号部が前記符号データの末尾まで失敗なく復号を終了した場合の試行の開始点を成功点とした場合に、前記符号データの先頭から前記成功点までの部分についての前記第1復号部の復号結果と、前記成功点から前記符号データの末尾までについての前記第2復号部の復号結果とに基づき、前記符号データ全体の復号結果を生成する復号結果生成部と、を備えるデータ復号装置を提供する。 (6) In another aspect of the present invention, the first decoding unit that performs decoding from the beginning of the code data to be decoded and the decoding is attempted from a starting point in the middle of the code data, and starts when decoding fails A second decoding unit that tries decoding again by changing the position of the point, and when the second decoding unit finishes decoding without failure to the end of the code data as a success point, The code data based on the decoding result of the first decoding unit for the part from the beginning of the code data to the success point and the decoding result of the second decoding unit for the part from the success point to the end of the code data There is provided a data decoding device including a decoding result generation unit that generates an entire decoding result.
(7)本発明の別の側面では、第1復号部に、復号対象の符号データの先頭である第1開始点から復号を実行させ、2以上N以下の各整数kについてそれぞれ設けられた第k復号部に、前記符号データの途中の第(k−1)開始点より後ろに位置する第k開始点から復号を試行させ、第k復号部の復号の失敗を検知し、第k復号部の復号の失敗を検知した場合は第k開始点の位置を変えて再度第k復号部に復号を試行させ、第N復号部が前記符号データの末尾まで失敗せずに復号を終了した場合の第N開始点を第N成功点とし、第(k−1)復号部が第k成功点まで失敗せずに復号を終了した場合の第(k−1)開始点を第(k−1)成功点とした場合に、2以上N以下の各kについて、前記符号データの前記第(k−1)成功点から第k成功点までの部分について前記第(k−1)復号部の復号結果と、前記符号データの第N成功点から末尾までの部分についての前記第N復号部の復号結果と、に基づき、前記符号データ全体に対応する復号結果を生成する、処理をコンピュータに実行させるためのプログラム、を提供する。 (7) In another aspect of the present invention, the first decoding unit executes decoding from the first start point that is the head of the code data to be decoded, and the first decoding unit is provided for each integer k of 2 or more and N or less. The k decoding unit is caused to try decoding from the kth start point located after the (k−1) th start point in the middle of the code data, detects a decoding failure of the kth decoding unit, and the kth decoding unit When the decoding failure is detected, the position of the kth starting point is changed and the kth decoding unit tries again, and the Nth decoding unit finishes decoding without failing to the end of the code data. The (k-1) th starting point when the Nth starting point is the Nth successful point and the (k-1) th decoding unit finishes decoding without failing to the kth successful point is the (k-1) th. In the case of success points, for each k of 2 to N, the kth component from the (k-1) th success point of the code data. The code data based on the decoding result of the (k−1) th decoding unit for the part up to the point and the decoding result of the Nth decoding unit for the part from the Nth successful point to the end of the code data A program for generating a decoding result corresponding to the whole and causing a computer to execute processing is provided.
(8)本発明の別の側面では、第1復号部に、復号対象の符号データの先頭から復号を実行させ、第2復号部に、前記符号データの途中の開始点から復号を試行させ、第2復号部の復号の失敗を検知し、第2復号部の復号の失敗が検知された場合は開始点の位置を変えて再度第2復号部に復号を試行させ、前記第2復号部が前記符号データの末尾まで失敗なく復号を終了した場合の試行の開始点を成功点とした場合に、前記符号データの先頭から前記成功点までの部分についての前記第1復号部の復号結果と、前記成功点から前記符号データの末尾までについての前記第2復号部の復号結果とに基づき、前記符号データ全体の復号結果を生成する、処理をコンピュータに実行させるためのプログラムを提供する。 (8) In another aspect of the present invention, the first decoding unit is caused to perform decoding from the beginning of the code data to be decoded, and the second decoding unit is caused to try decoding from a starting point in the middle of the code data, When the decoding failure of the second decoding unit is detected, and when the decoding failure of the second decoding unit is detected, the position of the start point is changed and the second decoding unit tries again, and the second decoding unit The decoding result of the first decoding unit for the portion from the beginning of the code data to the success point when the start point of the trial when the decoding is completed without failure to the end of the code data, A program for causing a computer to execute a process for generating a decoding result of the entire code data based on the decoding result of the second decoding unit from the success point to the end of the code data is provided.
上記構成(1)又は(7)によれば、可変長符号化された符号データをN個の復号部による並列的な復号により高速に復号することができる。 According to the above configuration (1) or (7), variable-length encoded code data can be decoded at high speed by parallel decoding by N decoding units.
上記構成(2)によれば、JPEGの性質を用いて簡便に復号の失敗を検知することができる。 According to the configuration (2), it is possible to easily detect a decoding failure using the properties of JPEG.
上記構成(3)によれば、失敗検知用符号を用いることで復号の失敗が検知できる可能性を高めることができる。 According to the configuration (3), the possibility of detecting a decoding failure can be increased by using the failure detection code.
上記構成(4)によれば、第2復号部以降の各復号部の復号結果における直流成分を補正することができる。 According to the configuration (4), it is possible to correct the DC component in the decoding result of each decoding unit after the second decoding unit.
上記構成(5)によれば、復号が失敗した場合に復号対象の位置を変えることなく、そのまま復号を続行することができる。 According to the configuration (5), when decoding fails, decoding can be continued without changing the position to be decoded.
上記構成(6)又は(8)によれば、可変長符号化された符号データを2個の復号部による並列的な復号により高速に復号することができる。 According to the above configuration (6) or (8), variable-length-coded code data can be decoded at high speed by parallel decoding by two decoding units.
以下、本発明の実施形態を、図面を参照しながら説明する。各図面において、同一又は類似の構成要素には同一符号を付すことで、重複する説明は省略する。 Embodiments of the present invention will be described below with reference to the drawings. In the drawings, the same or similar components are denoted by the same reference numerals, and redundant description is omitted.
以下ではJPEG方式で圧縮符号化された画像の復号を例にとって説明する。ただし、当業者ならば以下の説明で理解できるように、本実施形態の手法は、JPEG方式に限らず、可変長符号化を含む符号化方式により符号化された符号データ一般に適用可能であり、また画像に限らず他の種類のデータにも適用可能である。 In the following, description will be made by taking the decoding of an image compressed and encoded by the JPEG method as an example. However, as can be understood by those skilled in the art from the following description, the method of the present embodiment is not limited to the JPEG method, but can be applied to code data generally encoded by an encoding method including variable length encoding. Further, the present invention can be applied not only to images but also to other types of data.
まず、図1を参照して、本実施形態における並列復号の実現方式の原理を説明する。図1では、符号データ100を2つの復号部により並列に復号する場合の例を示す。本実施形態では、2つの復号部のうちの第1復号部には符号データ100の先頭から復号を開始させ、もう一方の第2復号部には符号データ100の途中から選んだ開始点A1から復号を開始させる。第1復号部は符号データ100の先頭から復号を行うので原理的には正しく復号を進めることができる。これに対し第2復号部は符号データの途中の開始点から復号を開始するので、その復号は成功するとは限らず、一般的には失敗する。これは以下のようなことからである。
First, with reference to FIG. 1, the principle of the parallel decoding implementation method in this embodiment will be described. FIG. 1 shows an example in which
すなわち、例えば隣り合うMCU(Minimum Coded Unit。例えばフルカラー画像をY(輝度):Cb(色差):Cr(色差)=4:1:1でサブサンプリングする場合、MCUは16画素×16画素の領域)同士の境界位置に対応する符号データ100上の位置を開始点とするなど特定の条件を満たす開始点からならば第2復号部12−2も正しく復号を進めることができる。これに対し、本実施形態ではそのような条件を満たす符号データ100上の位置が事前の知識として与えられていないので、そのような適切な開始点を定めることができないため、選んだ開始点から復号したので最終的に復号が失敗する可能性が高いのである。
That is, for example, when an adjacent MCU (Minimum Coded Unit. For example, when sub-sampling a full color image with Y (luminance): Cb (color difference): Cr (color difference) = 4: 1: 1, the MCU is an area of 16 pixels × 16 pixels. The second decoding unit 12-2 can also correctly proceed decoding from a starting point that satisfies a specific condition, such as a position on the
第2復号部における復号の失敗は、後に詳しく説明するいくつかの方法で検知することができる。適切な開始点ではないにもかかわらずその開始点から正しい符号配列に一致するパターンが偶然しばらく続く場合があり、そのようなパターンが続いている間は復号の失敗は検知することはできない。しかし、そのような偶然が長く続くことはなく、開始点が適切でなければ何千、何万、何百万ビットと復号を進めていくうちに失敗が検知されることになる。 The decoding failure in the second decoding unit can be detected by several methods described in detail later. Although it is not an appropriate starting point, a pattern that coincides with the correct code sequence from that starting point may accidentally continue for some time, and decoding failure cannot be detected while such a pattern continues. However, such a coincidence does not continue for a long time, and if the starting point is not appropriate, failure will be detected as the decoding progresses to thousands, tens of thousands, and millions of bits.
このように復号の失敗を検知した場合、第2復号部は、開始点の位置を新たな位置に移動させてその新たな位置から再度復号を試みる。 When the decoding failure is detected in this way, the second decoding unit moves the position of the start point to a new position and tries decoding again from the new position.
もっとも、上述と同様の理由で、移動した新たな開始点から復号を開始しても復号が成功するとは限らない。失敗すればまた再び開始点を移動させ、新たな開始点から復号を試行する。このように開始点を変えながら試行を繰り返すことで、いずれ適切な開始点が見いだされ、符号データの末尾まで失敗なく復号を完了できるようになる。本実施形態では、このようにある開始点から符号データ100の末尾まで失敗が検知されずに第2復号部の復号が完了した場合に、第2復号部の復号が成功したと判断する。
However, for the same reason as described above, decoding does not always succeed even if the decoding is started from the moved new starting point. If it fails, the start point is moved again and decoding is attempted from the new start point. By repeating the trial while changing the starting point in this way, an appropriate starting point is eventually found, and decoding can be completed without failure to the end of the code data. In the present embodiment, when the decoding of the second decoding unit is completed without detecting a failure from the certain starting point to the end of the encoded
復号が失敗した場合の開始点の移動は、例えば、符号データ上で前回の開始点から1ビット後ろを新たな開始点に選ぶという方式で行えばよい。このように開始点を後方に移動させる代わりに、前方に移動させてもよい。移動量は1ビットに限るわけではなく、2ビット以上でも良いし、移動の度に移動量を変えてもよい。隣り合うMCU同士の境界であれば、ある方向に1ビットずつ移動させていけば、MCUに相当する符号のビット数以内の試行で探り当てることができる。 If the decoding fails, the start point may be moved by, for example, a method of selecting a new start point one bit after the previous start point on the code data. Thus, instead of moving the starting point backward, the starting point may be moved forward. The amount of movement is not limited to 1 bit, and may be 2 bits or more, and the amount of movement may be changed for each movement. If it is a boundary between adjacent MCUs, it can be found by trial within the number of bits of the code corresponding to the MCU if it is moved bit by bit in a certain direction.
また別の方式として、失敗を検知したときの符号データの位置の次のビットを新たな開始点に選ぶ方式を用いることもできる。上述の方式では、復号が失敗すると前回の開始点近傍まで戻る必要があり、復号位置のジャンプが生じたが、この方式では、復号が失敗しても単にそのまま復号を進めればよく、単に記録する開始点の位置が変更されるだけである。このような方式でも、何千、何万ビットと復号を進めていくうちに、末尾まで失敗なく復号できる適切な開始点を見いだすことができる。 As another method, a method of selecting the next bit at the position of the code data when a failure is detected as a new start point can be used. In the above method, when decoding fails, it is necessary to return to the vicinity of the previous start point, and a jump of the decoding position occurs. However, in this method, even if decoding fails, it is sufficient to simply proceed with decoding, and simply record It only changes the position of the starting point. Even with this method, it is possible to find an appropriate starting point that can be decoded without failure to the end as the decoding progresses to thousands or tens of thousands of bits.
図1の例は、後者の方式を用いた場合の例を示している。この例では、第2復号部が最初の開始点A1から復号を開始した当初は失敗が検知されないが、復号がA2に達したときに復号の失敗が検知される。このとき、第2復号部は、失敗を検知した位置の次のビットを新たな開始点として復号を再度試みるが、図1の例では、この試行は即座に失敗する。この例では、A2からA3までは復号の失敗が検知される範囲110である。第2復号部が復号試行を繰り返して開始点がA3に達すると、再び失敗が検知されなくなるが、その後また失敗が検知される。最終的には、開始点がA5に達した以降は、失敗が検知されないまま符号データ100の末尾まで復号が完了する。このように、図1の例では、開始点A5からの試行において、第2復号部の復号が最終的に成功する。
The example of FIG. 1 shows an example in which the latter method is used. In this example, no failure is detected at the beginning when the second decoding unit starts decoding from the first start point A1, but a decoding failure is detected when the decoding reaches A2. At this time, the second decoding unit tries decoding again with the next bit at the position where the failure is detected as a new start point, but in the example of FIG. 1, this attempt fails immediately. In this example, A2 to A3 are a
本実施形態では、このように第2復号部の復号が成功したときの開始点を「成功点」とし、符号データ100の先頭から復号する第1復号部には、この成功点まで復号を行わせる。第1復号部は先頭から復号するので、この復号は成功する。
In the present embodiment, the starting point when the decoding of the second decoding unit is successful is set as the “success point”, and the first decoding unit that decodes from the top of the
そして、本実施形態の復号装置は、符号データ100の先頭から成功点(図1ではA5)までの部分についての第1復号部の復号結果と、成功点から末尾までの部分についての第2復号部の復号結果とを組み合わせることで、符号データ100全体についての復号結果を得る。
Then, the decoding apparatus according to the present embodiment decodes the decoding result of the first decoding unit for the part from the beginning of the
以上説明したように、本実施形態では、符号データの後半部の復号を担当する第2復号部が試行錯誤により符号データの末尾まで失敗なく復号できる成功点を見つけ出し、前半部を復号する第1復号部に符号データの先頭からその成功点までの復号を行わせる。そして、それら両復号部の復号結果を組み合わせることで、符号データ全体に対応する復号結果を求める。このような仕組みによれば、符号データ100についての事前の知識がなくても、2つの復号部による並列的な復号が実現できる。
As described above, in the present embodiment, the second decoding unit in charge of decoding the second half of the code data finds a success point that can be decoded without failure to the end of the code data by trial and error, and the first half is decoded. The decoding unit is made to perform decoding from the head of the code data to the success point. And the decoding result corresponding to the whole code data is calculated | required by combining the decoding result of both these decoding parts. According to such a mechanism, parallel decoding by two decoding units can be realized without prior knowledge about the
以上のような仕組みを実現する実施形態の画像復号装置を、図2を参照して説明する。この装置が復号する符号ファイル10は、復号の並列化のための特段の情報を含んでいる必要はなく、JPEG方式に準拠した一般的な符号化装置で画像データを符号化して生成した、一般的なJFIF又はExif形式のファイルでよい。符号ファイル10には、画像データを符号化した符号データと、その符号化に用いたハフマンテーブル等の符号化パラメータの情報とが含まれる。復号の際、符号ファイル10は、画像復号装置が備えるメモリ上にロードされる。
An image decoding apparatus according to an embodiment that implements the above mechanism will be described with reference to FIG. The
図2に示す画像復号装置は、第1復号部12−1及び第2復号部12−2という2つの復号部を備える。以下、特に区別する必要がない場合は、両者を復号部12と総称する。復号部12は、JPEG方式の復号処理を行う。
The image decoding apparatus illustrated in FIG. 2 includes two decoding units, a first decoding unit 12-1 and a second decoding unit 12-2. Hereinafter, when it is not necessary to distinguish between them, both are collectively referred to as a
周知のように、JPEG方式の符号化では、対象となる画像データをMCUに分割し、色差成分にサブサンプリングの比率が指定されている場合は、MCUに含まれる画素群の色差成分をその比率でサブサンプリングする。そして、MCUから、輝度成分及び各色差成分について8画素×8画素のブロックを構成する。そして、ブロックごとに離散コサイン変換(DCT)を行い、得られた各DCT係数を量子化し、得られた量子化DCT係数に対して可変長符号化の一種であるハフマン符号化を施すことで、符号データを求める。JPEG方式の復号では、その符号化の逆の処理を行う。すなわち、符号データに対してハフマン復号を行い、この結果得られる量子化DCT係数を逆量子化し、その逆量子化結果を逆DCT変換することで、原画像データを再生する。 As is well known, in JPEG encoding, when target image data is divided into MCUs and a sub-sampling ratio is specified for the color difference component, the color difference component of the pixel group included in the MCU is determined as the ratio. Subsample with. Then, from the MCU, a block of 8 pixels × 8 pixels is configured for the luminance component and each color difference component. Then, discrete cosine transform (DCT) is performed for each block, each obtained DCT coefficient is quantized, and the obtained quantized DCT coefficient is subjected to Huffman coding which is a kind of variable length coding. Obtain code data. In JPEG decoding, the reverse process of the encoding is performed. That is, Huffman decoding is performed on the code data, the resulting quantized DCT coefficient is inversely quantized, and the inversely quantized result is inversely DCT transformed to reproduce the original image data.
復号部12は、このようなJPEG方式の復号処理のうちの少なくともハフマン復号を実行するモジュールである。復号部12は、復号のためのプログラムをプロセッサに実行させることにより実現することもできるし、ハードウエア回路として実現することもできる。
The
第1結果蓄積部14−1及び第2結果蓄積部14−2は、それぞれ、第1復号部12−1及び第2復号部12−2の復号結果の画像データを蓄積する。第1結果蓄積部14−1及び第2結果蓄積部14−2は、例えば画像復号装置のメインメモリのメモリ空間内に確保することができる。 The first result storage unit 14-1 and the second result storage unit 14-2 store the image data of the decoding results of the first decoding unit 12-1 and the second decoding unit 12-2, respectively. The first result accumulation unit 14-1 and the second result accumulation unit 14-2 can be secured in the memory space of the main memory of the image decoding device, for example.
復号制御部16は、第1復号部12−1及び第2復号部12−2による並列的な復号を制御する機能モジュールである。上位システム(例えばアプリケーションプログラムなど)から、符号ファイル10の復号を指示された場合、復号制御部16は、第1復号部12−1には符号ファイル10中の符号データの先頭アドレスを、第2復号部12−2にはその符号データの途中のアドレスを、それぞれ復号処理の開始点として指定し、それぞれ復号を開始させる。ここで、第2復号部12−2の開始点としては、例えば符号データの中央位置のアドレスを指定すればよい。また、復号制御部16は、符号ファイル10中に含まれるハフマンテーブルや量子化テーブルの情報を第1復号部12−1及び第2復号部12−2に渡し、復号処理ができるようにする。復号制御部16は、ソフトウエアとして実現することもできるし、ハードウエア回路として実現することもできる。
The
このような復号制御部16の制御により、第1復号部12−1は符号データの先頭から後ろに向かって復号を開始し、第2復号部12−2は符号データの途中の開始点から後ろに向かって復号を開始することになる。ここで、第1復号部12−1は符号データの先頭から復号を行うので原理的には正しく復号を進めることができる。これに対し第2復号部12−2は符号データの途中の開始点から復号を開始するので、その復号は成功するとは限らない。
By such control of the
第2復号部12−2は、失敗検知部124を備え、この失敗検知部124が第2復号部12−2が行っている復号が失敗したことを検知すると、第2復号部12−2は、開始点を、前回の位置から1ビット後ろにずらしたり、あるいは失敗を検知した位置の次のビットへとずらしたりするなどして、新たな位置に移動させ、その新たな位置から復号を開始する。この再試行で失敗すればまた再び開始点を移動させ、更に試行を繰り返す。開始点から符号データの末尾まで、失敗検知部124が失敗を検知しないまま復号が完了するまで、そのような試行錯誤を繰り返す。なお、第2復号部12−2は、失敗検知部124が復号の失敗を検知した場合、それまでに第2結果蓄積部14−2に蓄積した復号結果を削除してもよい。
The second decoding unit 12-2 includes a
開始点管理部122は、そのように復号失敗の度に変更される開始点の位置を記憶する。そして、開始点管理部122は、最終的に第2復号部12−2が、ある開始点から符号データの末尾まで失敗なく復号を終えた場合に、その開始点の位置情報(メモリ空間内でのアドレスなど)を復号制御部16に伝える。復号制御部16は成功点の位置情報を第1復号部12−1に伝え、第1復号部12−1はその成功点まで復号を実行する。なお、第2復号部12−2の成功点の情報を、復号制御部16経由ではなく、直接第1復号部12−1が取得してもよい。
The starting
第1復号部12−1の復号が終了すると、復号制御部16は、復号結果合成部18に復号結果の合成を指示する。この指示を受けた復号結果合成部18は、第1結果蓄積部14−1に蓄積された符号データ100の先頭から成功点までの復号結果と、第2結果蓄積部14−2に蓄積された成功点から符号データ100の末尾までの復号結果とを組み合わせ、符号データ100全体の復号結果を生成する。復号結果合成部18は、ソフトウエアとして実現することもできるし、ハードウエア回路として実現することもできる。
When the decoding of the first decoding unit 12-1 is completed, the
以上の例では、第2復号部12−2の復号が失敗した場合、第2復号部12−2自身が開始点を移動させて復号を再試行したが、この代わりに、復号が失敗した場合、第2復号部12−2がその旨を復号制御部16に通知し、復号制御部16が開始点の移動、及び移動後の開始点の記録を行うようにしてもよい。
In the above example, when the decoding of the second decoding unit 12-2 fails, the second decoding unit 12-2 itself moves the starting point and reattempts decoding, but instead, when decoding fails. The second decoding unit 12-2 may notify the
以上、実施形態の画像復号装置の構成について説明した。次に、失敗検知部124の復号失敗の検知手法の例を説明する。
The configuration of the image decoding device according to the embodiment has been described above. Next, an example of a decoding failure detection method of the
まず1つの例として、JPEG方式における1ブロック内のDCT係数の数(言い換えれば1ブロックの画素数)を用いる方法がある。この方法での失敗検知方式を図3〜図5を参照して説明する。 As an example, there is a method using the number of DCT coefficients in one block (in other words, the number of pixels in one block) in the JPEG system. A failure detection method using this method will be described with reference to FIGS.
JPEG符号化方式では、原画像の8×8画素のブロックに対してDCTを行うことで、1ブロックあたり64個のDCT係数を求め、これら各係数を量子化テーブルにより量子化する。このようにして得られた8×8の量子化DCT係数を低周波数から高周波数の方向へとジグザグスキャンすることで1次元の配列とする。この配列において最も低周波数であるDC(直流)成分と呼ばれ、直前のブロックのDC成分との差分がハフマン符号化される。その他の成分はAC(交流)成分と呼ばれ、量子化により値が0の成分が多いため、連続する0の数(ゼロラン)とそのあとに続く非ゼロの成分値との組がハフマン符号化される。 In the JPEG encoding method, DCT is performed on an 8 × 8 pixel block of an original image to obtain 64 DCT coefficients per block, and these coefficients are quantized using a quantization table. The 8 × 8 quantized DCT coefficients obtained in this way are zigzag scanned from a low frequency to a high frequency to obtain a one-dimensional array. This array is called the DC (direct current) component having the lowest frequency, and the difference from the DC component of the immediately preceding block is Huffman encoded. Other components are called AC (alternating current) components, and there are many components that have a value of 0 due to quantization, so a set of consecutive zeros (zero run) followed by non-zero component values is Huffman coded Is done.
このような方式で符号化された符号データのハフマン復号の結果の例を図3〜図5に示す。図3〜図5では、図3では、ハフマン復号結果において、ブロックの先頭の量子化DCT係数を0番目とし、最後を63番目としている。 Examples of the results of Huffman decoding of code data encoded by such a method are shown in FIGS. 3 to 5, in FIG. 3, in the Huffman decoding result, the quantized DCT coefficient at the beginning of the block is 0th and the last is 63rd.
図3〜図5に示すように、ブロックの最初の符号語の復号結果はDC成分の値と見なされ、そのあとの符号語の復号結果はゼロランと非ゼロのAC成分値の組と見なされる。すなわち、AC成分については1つの符号語の復号結果が、0の連続とその後に続く非ゼロ値の組となる。例えば、図3の例では、3つめの符号語の復号結果は、1つの「0」とその後に続く1つの非ゼロ値との組み合わせになっている。ブロックの先頭からハフマン復号を進めていった場合、その復号が成功していれば、何番目かの符号語を復号したときに得られる非ゼロ値が図3に示すようにブロックの63番目に来る。また、JPEGでは、ブロックの中のあるAC成分から末尾までがすべて0である場合、EOB(エンド・オブ・ブロック)という特別な符号に変換するので、図4に示すようにEOBの復号結果の0がブロックの63番目に来る場合も、復号は成功していると見なすことができる。これに対し、図5に示す例では、ある符号語をハフマン復号した結果がブロックの63番目に至らず、その次の符号語を復号したときに得られたゼロランのあとの非ゼロのAC成分値が63番目より後ろに来ている。復号が成功していれば、このように復号結果がブロックからあふれることはない。したがって、このようなことが起こった場合、復号が失敗したと判定できる。 As shown in FIGS. 3 to 5, the decoding result of the first code word of the block is regarded as a DC component value, and the decoding result of the subsequent code word is regarded as a set of zero run and non-zero AC component values. . That is, for the AC component, the decoding result of one codeword is a set of a series of zeros followed by a non-zero value. For example, in the example of FIG. 3, the decoding result of the third codeword is a combination of one “0” followed by one non-zero value. If the Huffman decoding proceeds from the beginning of the block, if the decoding is successful, the non-zero value obtained when decoding some codewords is the 63rd of the block as shown in FIG. come. Also, in JPEG, when all the AC components in the block to the end are 0, they are converted into a special code called EOB (end of block). Therefore, as shown in FIG. Decoding can also be considered successful if 0 comes in the 63rd position of the block. On the other hand, in the example shown in FIG. 5, the result of Huffman decoding of a certain code word does not reach the 63rd block, and the non-zero AC component after the zero run obtained when the next code word is decoded. The value is behind the 63rd. If the decoding is successful, the decoding result does not overflow from the block in this way. Therefore, when this occurs, it can be determined that decoding has failed.
このような失敗検知手法を用いたときの画像復号装置の処理手順を、図6及び図7を参照して説明する。 A processing procedure of the image decoding apparatus when such a failure detection method is used will be described with reference to FIGS.
第1復号部12−1は、図6に示すように、復号制御部16から割り当てられた符号データ100の先頭位置から復号を開始する。第1復号部12−1は、1MCU分の符号データを復号(S11)しては、その次に第1復号部12−1が復号のために読み出す符号データの位置が第2復号部の成功点に到達したか否かを判定する(S12)。成功点に到達していない場合は、第2復号部12−2が成功点を見いだす前ならば、この判定結果はNoとなり、第1復号部12−1は復号処理を続行する。そして、ステップS12の判定結果がYesとなったときに、第1復号部12−1は復号を終了する。
As illustrated in FIG. 6, the first decoding unit 12-1 starts decoding from the head position of the
ここで、第2復号部12−2に符号データ100の中央位置から復号を開始させた場合、第1復号部12−1の復号が中央位置に達するときには、第2復号部12−2の復号が符号データ100の末尾まで達し、成功点が確定している可能性が高い。第2復号部に最初に割り当てる開始点を符号データ100の中央位置よりある程度後ろに設定しておけば、第1復号部12−1の復号がその開始点に達するまでに、第2復号部12−2の成功点が確定しているようにすることができる。
Here, when the second decoding unit 12-2 starts decoding from the central position of the
なお、第2復号部12−2の成功点の位置を第1復号部12−1が知った時点で、第1復号部12−1の復号していた位置がその成功点を越えていた場合は、第1復号部12−1は復号を完了すればよい。この場合、第1結果蓄積部14−1に蓄積される画像データは成功点より後ろの部分も含み、第2結果蓄積部14−2に蓄積される画像データと重複部分ができる。しかし、復号結果の画像のサイズは符号ファイル10内の情報からわかるので、そのように重複部分が存在しても、それら画像データを正しく組み合わせて原画像データを復号できる。
When the first decoding unit 12-1 knows the position of the success point of the second decoding unit 12-2, the position decoded by the first decoding unit 12-1 exceeds the success point The first decoding unit 12-1 may complete the decoding. In this case, the image data stored in the first result storage unit 14-1 includes a portion after the success point, and an overlapping portion is formed with the image data stored in the second result storage unit 14-2. However, since the size of the image of the decoding result can be known from the information in the
次に図7を参照して第2復号部12−2の処理手順を説明する。第2復号部12−2は、復号制御部16から指定された開始点からハフマン復号を開始し、最初に読み出した符号語をDC成分として復号する(S21)。第2符号部12−2は、ハフマン復号によって得られた量子化DCT係数のブロック内での番号をカウントするカウンタを備えており、DC成分の復号が終わるとそのカウンタの値を0とする。これにより、ブロック内の0番目のDCT係数が復号されたことを示す。第2復号部12−2は、次の符号語はAC成分として復号する(S22)。ここで、そのとき読み出した符号語がEOB符号であるか否かを判定し(S23)、EOB符号であれば、ブロックの復号が成功したことになるので、カウンタをクリアする(S28)。そして、符号データの末尾まで復号が終わったかどうかを判定し(S29)、終わっていなければ、ステップS21に戻って残りの復号を行う。
Next, the processing procedure of the second decoding unit 12-2 will be described with reference to FIG. The second decoding unit 12-2 starts Huffman decoding from the start point designated by the
AC復号(S22)で復号した符号語がEOBでなければ(S23)、第2復号部12−2は、その復号結果に応じて前述のカウンタの値をインクリメントする(S24)。例えば復号の結果、3個の0とそれに続く1つの非ゼロ係数が得られた場合、カウンタの値を4つインクリメントする。そして、インクリメント後のカウンタの示す値と「63」とを比較する(S25)。カウンタ値が63未満であれば、ブロック内のAC成分をすべて復号し終わっていないと言うことなので、ステップS22に戻って残りの復号を続ける。カウンタ値が63と等しければ、図4に示したケースに該当し、ブロックの末尾まで復号が成功したことになる。この場合、第2復号部12−2はカウンタをクリアし(S28)、符号データ末尾まで復号が終わっていなければステップS21に戻る。 If the code word decoded by AC decoding (S22) is not EOB (S23), the second decoding unit 12-2 increments the value of the counter according to the decoding result (S24). For example, when three 0s and one non-zero coefficient subsequent thereto are obtained as a result of decoding, the counter value is incremented by four. Then, the value indicated by the incremented counter is compared with “63” (S25). If the counter value is less than 63, it means that all the AC components in the block have not been decoded, so the process returns to step S22 to continue the remaining decoding. If the counter value is equal to 63, this corresponds to the case shown in FIG. 4 and the decoding has succeeded up to the end of the block. In this case, the second decoding unit 12-2 clears the counter (S28), and returns to step S21 if decoding has not been completed to the end of the code data.
ステップS25において、カウンタ値が63を越えていれば、図5に示したケースに該当し、復号が失敗したことになる。この場合、第2復号部12−2はカウンタをクリアし(S26)、開始点の位置を変更した上で(S27)、ステップS21に戻り、変更後の開始点から再び復号を試みる。なお、ステップS26での開始点の変更は、前述した方式のいずれでもよい。開始点管理部122は、変更後の開始点を記録する。
If the counter value exceeds 63 in step S25, this corresponds to the case shown in FIG. 5, and the decoding has failed. In this case, the second decoding unit 12-2 clears the counter (S26), changes the position of the start point (S27), returns to step S21, and tries decoding again from the changed start point. Note that the change of the starting point in step S26 may be any of the methods described above. The starting
以上の処理を繰り返すうちに、符号データの末尾まで失敗なく復号できる開始点が見いだされる。そのような開始点が見いだされると、復号は失敗なく進む。そして、ステップS29で符号データの最後まで復号が終わったと判定されると、第2復号部12−2は、その開始点を成功点として記録する(S30)。この成功点の情報は、第1復号部12−1に知らされる。 As the above processing is repeated, a starting point is found where the end of the code data can be decoded without failure. If such a starting point is found, decoding proceeds without failure. When it is determined in step S29 that decoding has been completed up to the end of the code data, the second decoding unit 12-2 records the start point as a success point (S30). The information on this successful point is notified to the first decoding unit 12-1.
次に、失敗検知部124の復号失敗検知のための別の方法を、図8〜図10を用いて説明する。この方法では、ハフマン符号化における符号語の割り当てにおいて、符号化対象の情報に対応する符号語に加え、更に失敗検知用の符号語を用いる。そして、復号において失敗検知用の符号語が検出されると、復号が失敗したと判定する。
Next, another method for detecting a failure in decoding by the
例えば、A〜Hの8種類の情報からなる原データをハフマン符号化する場合に、符号語の最大長を6とすると、例えば図8に示すような符号語割り当てを行えばよい。この例では、例えば情報「A」に対し符号語「0」が、情報「B」に対し符号語「10」が割り当てられている。図8に示すような符号割り当て規則は、ハフマンテーブルの形で、符号化及び復号において利用される。 For example, when Huffman coding is performed on the original data consisting of eight types of information A to H, if the maximum length of the code word is 6, code word allocation as shown in FIG. In this example, for example, code word “0” is assigned to information “A”, and code word “10” is assigned to information “B”. The code allocation rule as shown in FIG. 8 is used in encoding and decoding in the form of a Huffman table.
ここで、A〜Hの8個の情報に対し、更に失敗検知用の符号を1つ追加し、最大符号語長を6として符号語割り当てを行うと、例えば図9のような符号割り当て規則が得られる。この符号割り当て規則では、失敗検知用の符号として、「1110」というビット列の符号語が割り当てられる。この例では、失敗検知用の符号を1つとしたが、複数にすることももちろん可能である。失敗検知用の符号は、DC成分用のハフマンテーブルに組み込んでもよいし、AC成分用のハフマンテーブルに組み込んでもよい。またそれら両方に組み込んでもよい。 Here, when one code for failure detection is further added to the eight pieces of information A to H and the codeword assignment is performed with the maximum codeword length set to 6, the code assignment rule as shown in FIG. can get. In this code assignment rule, a code word of a bit string “1110” is assigned as a failure detection code. In this example, there is one failure detection code, but it is of course possible to use a plurality of codes. The failure detection code may be incorporated into a DC component Huffman table or an AC component Huffman table. Moreover, you may incorporate in both of them.
この失敗検知法を用いる場合、画像を符号化する装置が、失敗検知用符号を含んだ符号割り当て規則に従って符号化を行う。そして、画像復号装置の第2復号部12−2は、符号ファイルを復号する際に、そのファイル中のハフマンテーブルにある失敗検知用符号を検出すると、復号失敗と判定すればよい。 When this failure detection method is used, a device that encodes an image performs encoding according to a code allocation rule including a failure detection code. Then, when the second decoding unit 12-2 of the image decoding apparatus detects the failure detection code in the Huffman table in the file when decoding the code file, the second decoding unit 12-2 may determine that the decoding has failed.
この失敗検出方式と、上述のブロックあふれによる失敗検知法の両方を用いた場合の第2復号部12−2の処理手順を、図10に示す。この手順は、AC成分用のハフマンテーブルに失敗検知用符号を組み込んだ場合の例である。 FIG. 10 shows the processing procedure of the second decoding unit 12-2 when both the failure detection method and the failure detection method due to block overflow described above are used. This procedure is an example when a failure detection code is incorporated in the AC component Huffman table.
図10の手順は、図7の手順に対し、ステップS40を加えたものである。ステップS40では、AC成分の復号(S22)の結果が失敗検知用符号であるかどうかを判定し、失敗検知用符号であれば復号が失敗したと判断してステップS26に進む。失敗検知用符号でなければ、ステップS23に進んで、その復号結果がEOBであるかどうかを判定する。なお、ステップS40とS23の実行順序は逆でもよい。 The procedure in FIG. 10 is obtained by adding step S40 to the procedure in FIG. In step S40, it is determined whether or not the result of AC component decoding (S22) is a failure detection code. If the result is a failure detection code, it is determined that decoding has failed, and the process proceeds to step S26. If it is not a failure detection code, the process proceeds to step S23 to determine whether or not the decoding result is EOB. The execution order of steps S40 and S23 may be reversed.
以上に説明した画像復号装置では、第2復号部12−2は符号データ100の途中の開始点から復号を行うが、開始点の直前のブロックのDC成分が不明であるため、復号結果のDC成分は正しい値とならない場合がある。このような不具合に対処するには、第1復号部12−1の復号結果の最後のブロックのDC成分を用いて、第2復号部12−2の復号結果を補正すればよい。この第2復号部12−2の復号結果の補正は、逆DCT処理で得られた各画素のデータに、第1復号部12−1の最後のブロックのDC成分を加算する方法で行えばよい。また、別の方法として、ハフマン復号で得られた各ブロックのDC成分の量子化DCT係数に対し、第1復号部12−1の最後のブロックのDC成分を加算することでも、同様の補正が可能である。カラー画像の場合は、輝度成分及び各色差成分という各成分ごとに、第1復号部12−1の復号結果の最後のブロックDC成分を求め、これらにより第2復号部12−2の復号結果の輝度成分、各色差成分を補正すればよい。
In the image decoding apparatus described above, the second decoding unit 12-2 performs decoding from the starting point in the middle of the
この補正処理を含んだ画像復号装置の構成の例を図11に示す。図11の例では、ハフマン復号部41−1と逆DCT部42−1とを合わせたものが図2の装置構成の第1復号部12−1に対応し、ハフマン復号部41−2と逆DCT部42−2とを合わせたものが第2復号部12−2に対応する。なお、第2復号部12−2の開始点管理部122や失敗検知部124に対応する機能モジュールについては、煩雑さを避けるために図示を省略している。
An example of the configuration of the image decoding apparatus including this correction processing is shown in FIG. In the example of FIG. 11, the combination of the Huffman decoding unit 41-1 and the inverse DCT unit 42-1 corresponds to the first decoding unit 12-1 of the apparatus configuration of FIG. 2, and is the reverse of the Huffman decoding unit 41-2. The combination of the DCT unit 42-2 corresponds to the second decoding unit 12-2. Note that the functional modules corresponding to the start
ハフマン復号部41−1は、符号ファイル10中の符号データの先頭を開始点として、ハフマン符号を行う。逆DCT部42−1は、そのハフマン復号の結果を逆量子化し、その逆量子化結果に対して逆DCTを施す。これにより、画像情報が復元される。逆DCT部42−1から出力される各画素の画素値の情報は、第1結果蓄積部43−1に蓄積される。また、ハフマン復号部41−1は、第2復号部12−2の成功点まで復号を行ったときの最後のブロックのDC成分を第1結果蓄積部43−1に蓄積する。
The Huffman decoding unit 41-1 performs Huffman coding with the beginning of the code data in the
ハフマン復号部41−2は符号データの途中の指定された開始点からハフマン復号を行い、そのハフマン復号結果に対し逆DCT部42−2が逆量子化及び逆DCTを施す。逆DCT部42−2の出力は、第2結果蓄積部43−2に蓄積される。ハフマン復号部41−2において上述の方式を用いて復号の失敗が検知された場合は、開始点の位置を変更して再びハフマン復号部41−2が復号を再試行する。 The Huffman decoding unit 41-2 performs Huffman decoding from a designated starting point in the middle of the code data, and the inverse DCT unit 42-2 performs inverse quantization and inverse DCT on the Huffman decoding result. The output of the inverse DCT unit 42-2 is accumulated in the second result accumulation unit 43-2. When the Huffman decoding unit 41-2 detects a decoding failure using the above-described method, the position of the start point is changed, and the Huffman decoding unit 41-2 tries decoding again.
復号結果合成部44は、第1結果蓄積部43−1と第2結果蓄積部43−2に蓄積された画像情報を合成することで、符号データ全体に対応する復号結果の画像を生成する。ここで、復号結果合成部44は、第1結果蓄積部43−1と第2結果蓄積部43−2に蓄積された画像情報を合成する際に、第2結果蓄積部43−2の各画素の値を第1結果蓄積部43−1に蓄積された最後のブロックのDC成分により補正する。補正は、第2結果蓄積部43−2の各画素の値に、第1結果蓄積部43−1に蓄積された最後のブロックのDC成分を加算することで行うことができる。このような補正演算は、加算器とセレクタ(データ選択切替器)の組み合わせで実装できる。
The decoding
後処理部46は、復号結果合成部44が出力する復号結果の画像に対し、目的に応じた後処理を行う。後処理には、例えばFIR(finite impulse response) フィルタ処理、画像の拡大又は縮小、解像度変換、色補正などがある。出力部48は、後処理部46の処理結果の画像を出力する装置であり、例えばプリンタや表示装置などである。また出力部48は、画像データをファイルへと書き出す装置であってもよい。なお、後処理が必要ない装置の場合には、後処理部46は不要である。
The
次に図12を参照して、DC成分の補正を行う画像復号装置の別の例を説明する。図12において、図11に示した要素と同一の要素には同一符号を付して説明を省略する。 Next, another example of an image decoding device that corrects a DC component will be described with reference to FIG. In FIG. 12, the same elements as those shown in FIG.
図12の装置では、第2復号部の復号結果のDC成分の補正を、復号結果合成部44aではなく、後処理部46aが実行する。復号結果合成部44aは、第1結果蓄積部43−1と第2結果蓄積部43−2の画像データを、DC成分の補正をせずに、単に組み立てて符号データ全体に対応する復号結果の画像を生成する。後処理部46は、その画像に対して後処理を行う際に、その画像のうち第2結果蓄積部43−2から取得した部分の各画素の値を、第1結果蓄積部43−1中の最後のDC成分を用いて補正する。後処理部46が行う処理が、FIRフィルタ処理、拡大・縮小、解像度変換、色補正などの場合にはこのように後処理部46でDC成分の補正が可能である。後処理が、画素単位の処理である場合には、後処理部46でDC成分の補正が可能である。
In the apparatus of FIG. 12, the
次に図13を参照して、DC成分の補正を行う画像復号装置の別の例を説明する。図13において、図11に示した要素と同一の要素には同一符号を付して説明を省略する。 Next, another example of an image decoding device that corrects a DC component will be described with reference to FIG. In FIG. 13, the same elements as those shown in FIG.
図13の装置では、ハフマン復号部41−1及び41−2の復号結果である中間情報を、それぞれ、第1結果蓄積部45−1及び第2結果蓄積部45−2に蓄積する。そして、それら蓄積された中間情報を復号結果合成部47で合成することにより、符号データ全体に対応する中間情報を得て、これに対し逆DCT部42aにより逆DCTを施す。ここで、図13の構成では、逆DCT部42aにおいて、ハフマン復号部41−1の最終ブロックのDC成分により、ハフマン復号部41−2の復号結果を補正する。この補正は、例えば、ハフマン復号部41−2の復号結果の各ブロックのDC成分を、前記最終ブロックのDC成分により補正することにより行えばよい。また、この代わりに、逆DCT結果のうち、第2復号部(ハフマン復号部41−2)の出力に該当する各画素の値を、前記最終ブロックのDC成分により補正してもよい。
In the apparatus of FIG. 13, intermediate information as decoding results of the Huffman decoding units 41-1 and 41-2 is stored in the first result storage unit 45-1 and the second result storage unit 45-2, respectively. Then, the intermediate information corresponding to the entire code data is obtained by synthesizing the accumulated intermediate information by the decoding
以上では、2つの復号部12を備える画像復号装置を例示した。次に3以上の復号部を備える画像復号装置の例を説明する。
In the above, the image decoding apparatus provided with the two
この例の画像復号装置は、図14に示すように、N個(Nは3以上の整数)の復号部12を備える。このうち、第2復号部12−2〜第N復号部12−Nは、開始点管理部122及び失敗検知部124を備える。開始点管理部122及び失敗検知部124の機能は、上述した図2の例の場合と同じでよい。復号制御部16は、第1復号部12−1〜第N復号部12−Nによる並列的な復号を制御する。符号ファイル10を復号する場合、復号制御部16は、図15に示すように、各復号部12に対して復号処理の開始点SPi(iは1〜Nの整数)を指定し、復号の開始を指示する。第1復号部12−1に割り当てられる開始点SP1は符号ファイル10中の符号データの先頭アドレスである。第k復号部12−k(kは2以上N以下の整数)に割り当てられる第k開始点SPkは、kが大きくなるほど符号データ中で後ろの位置(すなわち、より末尾に近い位置)となる。例えば、符号データをN個に均等分割したときの各分割点を、第k開始点SPkとして割り当てればよい。
As shown in FIG. 14, the image decoding apparatus of this example includes N (N is an integer of 3 or more) decoding
第1復号部12−1は、図2の例の第1復号部12−1と同様、符号データの先頭から第2復号部12−2の成功点まで復号を行えばよい。その処理手順は、図6に示したものと同様でよい。最後の復号部、すなわち第N復号部12−Nの処理手順は、図2の例の第2復号部12−2と同様、符号データの末尾まで失敗なく復号が終了する開始点が見つかるまで、開始点を移動させながら復号の試行を繰り返す。その処理手順は、図7又は図10に示すようなものでよい。第N復号部12−Nが符号データの末尾まで失敗なく復号が終了したときの開始点を第N成功点と呼ぶこととする。 Similar to the first decoding unit 12-1 in the example of FIG. 2, the first decoding unit 12-1 may perform decoding from the head of the code data to the success point of the second decoding unit 12-2. The processing procedure may be the same as that shown in FIG. The processing procedure of the last decoding unit, that is, the N-th decoding unit 12-N is the same as that of the second decoding unit 12-2 in the example of FIG. Repeat decoding attempts while moving the starting point. The processing procedure may be as shown in FIG. 7 or FIG. The starting point when the Nth decoding unit 12-N completes decoding without failure to the end of the code data is referred to as the Nth success point.
第k復号部12−k(kは2以上(N−1)以下の整数)は、第(k+1)復号部12−(k+1)が試行により求めた第(k+1)成功点まで失敗なく復号が終了する第k開始点が見つかるまで、第k開始点を移動させながら復号の試行を繰り返す。第(k+1)成功点まで失敗なく復号が終了したときの第k開始点を、第k成功点と呼ぶ。以上の処理により、第N成功点から番号が若くなる方向に第k成功点が確定していく。 The k-th decoding unit 12-k (k is an integer of 2 or more and (N-1) or less) is decoded without failure until the (k + 1) th successful point obtained by the trial by the (k + 1) -th decoding unit 12- (k + 1). The decoding attempt is repeated while moving the k-th starting point until the k-th starting point to be finished is found. The k-th start point when the decoding is completed without failure up to the (k + 1) -th success point is referred to as the k-th success point. With the above processing, the kth success point is determined in the direction of decreasing the number from the Nth success point.
第k復号部12−k(kは2以上(N−1)以下の整数)の処理手順の一例を図16に示す。この手順は、ブロックあふれにより失敗検知を行う場合の例であり、図7の手順の変形と捉えることができる。図16の手順において、図7の手順のステップと同様の処理を行うステップには、同一符号を付して説明を省略する。なお、失敗検知用符号を用いる方式(図10参照)についても、同様に変形することで、第k復号部の処理手順とすることができる。 An example of the processing procedure of the k-th decoding unit 12-k (k is an integer of 2 or more and (N-1) or less) is shown in FIG. This procedure is an example in which failure detection is performed due to block overflow, and can be regarded as a modification of the procedure of FIG. In the procedure of FIG. 16, steps that perform the same processing as the steps of the procedure of FIG. Note that the method using the failure detection code (see FIG. 10) can be modified in the same manner to be the processing procedure of the k-th decoding unit.
図16の手順では、第k復号部12−kは、指定された第k開始点から復号を開始する。そして、ステップS25で復号の失敗が検知された場合、復号済みの量子化DCT係数をカウントするカウンタをクリアし(S26)、第k開始点の位置を移動させる(S27a)。第k開始点の移動のさせ方としては、図2の例の場合と同様、さまざまな方式を用いることができる。また、ステップS23でEOBが検知されるか、ステップS25でブロックの末尾まで復号が終了したと検知されると、第k復号部12−kは、カウンタをクリアし(S28)、第(k+1)成功点まで復号が終わったかを調べ(S29a)、終わっていなければ、ステップS21に戻り復号を続行する。第(k+1)成功点まで復号が終われば、そのときの第k開始点を第k成功点とし、第k成功点の情報を第(k−1)復号部12−(k−1)に通知するための処理を行う。 In the procedure of FIG. 16, the k-th decoding unit 12-k starts decoding from the designated k-th starting point. If a decoding failure is detected in step S25, the counter for counting the decoded quantized DCT coefficients is cleared (S26), and the position of the k-th starting point is moved (S27a). As a method of moving the k-th starting point, various methods can be used as in the example of FIG. When it is detected in step S23 that EOB has been detected or in step S25 that decoding has been completed up to the end of the block, the k-th decoding unit 12-k clears the counter (S28) and (k + 1) -th. It is checked whether the decoding has been completed up to the success point (S29a). If not completed, the process returns to step S21 to continue the decoding. When the decoding is completed up to the (k + 1) th successful point, the kth starting point at that time is set as the kth successful point, and information on the kth successful point is notified to the (k-1) th decoding unit 12- (k-1). Process to do.
このようにして求められた第1復号部12−1〜第N復号部12−Nの各復号結果は、それぞれ第1結果蓄積部14−1〜第N結果蓄積部14−Nに蓄積される。復号結果合成部18は、それら第1結果蓄積部14−1〜第N結果蓄積部14−Nに蓄積された部分的な復号結果を合成して、符号データ全体に対応する復号結果を求める。
The decoding results of the first decoding unit 12-1 to the N-th decoding unit 12-N obtained in this way are accumulated in the first result accumulation unit 14-1 to the N-th result accumulation unit 14-N, respectively. . The decoding
以上、実施形態を説明した。以上に説明した画像復号装置の各例は、例えばプリンタやデジタル複合機に組み込むことができる。符号ファイルから画像を再生して印刷する場合に、上述の画像復号装置の技術を適用することができる。なお、以上に例示したのは、各実施形態の適用分野の一例に過ぎない。 The embodiment has been described above. Each example of the image decoding apparatus described above can be incorporated into, for example, a printer or a digital multi-function peripheral. When the image is reproduced from the code file and printed, the above-described technology of the image decoding device can be applied. In addition, what was illustrated above is only an example of the application field of each embodiment.
また、以上の実施形態ではJPEG符号化方式を例にとったが、実施形態の手法のうちJPEG固有の性質を用いるもの以外は、可変長符号化を用いる他の画像符号化・復号方式(例えばMPEGやJPEG2000など)にも適用可能である。 In the above embodiment, the JPEG encoding method is taken as an example, but other image encoding / decoding methods using variable length encoding (for example, other than the method using the JPEG specific property among the methods of the embodiment (for example, (MPEG, JPEG2000, etc.).
また、以上の各実施形態では可変長符号化方式としてハフマン符号化を例にとったが、算術符号化など他の符号化方式を用いる場合にも上記各実施形態の手法は適用可能である。また、上記実施形態の手法は原理的にはデータの表す内容によるものではないので、画像以外のデータについても適用可能である。 In each of the above embodiments, Huffman coding is taken as an example of the variable length coding method. However, the method of each of the above embodiments can be applied even when other coding methods such as arithmetic coding are used. In addition, since the method of the above embodiment is not based on the contents represented by data in principle, it can be applied to data other than images.
また、失敗検知部124における復号失敗の検知方法は、上に例示したものに限らず、様々なものを用いることができる。
Further, the detection method of the decoding failure in the
上記実施形態の画像復号装置をソフトウエア的に実現する場合、上記各機能モジュールの機能を記述したプログラムをコンピュータに実行させればよい。コンピュータは、図17に示すようにCPU(中央演算装置)50、メモリ(一次記憶)52、各種I/O(入出力)インタフェース54等がバス56を介して接続された回路構成を有する。また、そのバス56に対し、例えばI/Oインタフェース54経由で、ハードディスクドライブ58やCDやDVD、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ60が接続される。このようなドライブ58又は60は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク経由で、ハードディスクドライブ58等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されCPUにより実行されることにより、実施形態の処理が実現される。また、各復号部12はハードウエア回路として実現し、それらを制御する復号制御部16又は復号結果合成部18又はその両方をプログラムとして実現してもよい。
When the image decoding apparatus according to the above-described embodiment is realized by software, a program describing the function of each functional module may be executed by a computer. The computer has a circuit configuration in which a CPU (central processing unit) 50, a memory (primary storage) 52, various I / O (input / output) interfaces 54, and the like are connected via a
10 符号ファイル、12−1 第1復号部、12−2 第2復号部、14−1 第1結果蓄積部、14−2 第2結果蓄積部、16 復号制御部、18 復号結果合成部、100 符号データ。
DESCRIPTION OF
Claims (8)
2以上N以下の各整数kについてそれぞれ設けられた第k復号部であって、前記符号データの途中の第(k−1)開始点より後ろに位置する第k開始点から復号を試行し、復号が失敗した場合は第k開始点の位置を変えて再度復号を試行する第k復号部と、
第N復号部が前記符号データの末尾まで失敗せずに復号を終了した場合の第N開始点を第N成功点とし、第(k−1)復号部が第k成功点まで失敗せずに復号を終了した場合の第(k−1)開始点を第(k−1)成功点とした場合に、2以上N以下の各kについて、前記符号データの前記第(k−1)成功点から第k成功点までの部分について前記第(k−1)復号部の復号結果と、前記符号データの第N成功点から末尾までの部分についての前記第N復号部の復号結果と、に基づき、前記符号データ全体に対応する復号結果を生成する復号結果生成部と、
を備えるデータ復号装置。 A first decoding unit that performs decoding from a first start point that is a head of code data to be decoded;
K-th decoding unit provided for each integer k of 2 or more and N or less, attempting decoding from the k-th start point located after the (k-1) start point in the middle of the code data, A k-th decoding unit that attempts to decode again after changing the position of the k-th starting point when decoding fails;
The Nth starting point when the Nth decoding unit completes decoding without failing to the end of the code data is set as the Nth success point, and the (k−1) th decoding unit without failing to the kth success point. The (k-1) th success point of the code data for each k of 2 or more and N or less when the (k-1) th start point when decoding is finished is the (k-1) th success point. Based on the decoding result of the (k−1) th decoding unit for the part from the first to the kth successful point and the decoding result of the Nth decoding unit for the part from the Nth successful point to the end of the code data. A decoding result generation unit that generates a decoding result corresponding to the entire encoded data;
A data decoding apparatus comprising:
前記第2復号部〜第N復号部までの各復号部は、ハフマン復号により得られる量子化DCT係数がJPEGに規定されるブロックをあふれた場合に、復号が失敗したと判定する、ことを特徴とする請求項1記載のデータ復号装置。 Each decoding unit performs Huffman decoding in JPEG decoding,
Each of the decoding units from the second decoding unit to the N-th decoding unit determines that decoding has failed when the quantized DCT coefficient obtained by Huffman decoding overflows a block defined in JPEG. The data decoding device according to claim 1.
前記第2復号部〜第N復号部までの各復号部は、量子化DCT係数に対応づけられない失敗検知用の符号ビット列を含んだ符号割り当て規則に従ってハフマン復号を実行し、前記符号割り当て規則に含まれる失敗検知用の符号ビット列を検知した場合に、復号が失敗したと判定する、ことを特徴とする請求項1記載のデータ復号装置。 Each decoding unit performs Huffman decoding in JPEG decoding,
Each of the decoding units from the second decoding unit to the N-th decoding unit performs Huffman decoding according to a code allocation rule including a code bit string for failure detection that is not associated with a quantized DCT coefficient. 2. The data decoding apparatus according to claim 1, wherein when a failure detection code bit string is detected, it is determined that decoding has failed.
前記第i復号部(iは1以上(N−1)以下の整数)が第i成功点から第(i+1)成功点まで復号を行った際に得られた最後のブロックの直流成分に基づき、第(i+1)復号部の復号結果を補正する直流成分補正部、
を更に備えることを特徴とする請求項1記載のデータ復号装置。 Each decoding unit performs Huffman decoding in JPEG decoding,
Based on the direct current component of the last block obtained when the i th decoding unit (i is an integer of 1 to (N−1)) from the i th successful point to the (i + 1) th successful point, A DC component correction unit that corrects the decoding result of the (i + 1) th decoding unit;
The data decoding apparatus according to claim 1, further comprising:
前記符号データの途中の開始点から復号を試行し、復号が失敗した場合は開始点の位置を変えて再度復号を試行する第2復号部と、
前記第2復号部が前記符号データの末尾まで失敗なく復号を終了した場合の試行の開始点を成功点とした場合に、前記符号データの先頭から前記成功点までの部分についての前記第1復号部の復号結果と、前記成功点から前記符号データの末尾までについての前記第2復号部の復号結果とに基づき、前記符号データ全体の復号結果を生成する復号結果生成部と、
を備えるデータ復号装置。 A first decoding unit that performs decoding from the beginning of code data to be decoded;
A second decoding unit that attempts decoding from a starting point in the middle of the code data, and if decoding fails, changes the position of the starting point and tries decoding again;
The first decoding of the portion from the top of the code data to the success point when the second decoding unit has successfully completed the decoding to the end of the code data without success A decoding result generation unit that generates a decoding result of the entire code data, based on the decoding result of the unit and the decoding result of the second decoding unit from the success point to the end of the code data;
A data decoding apparatus comprising:
2以上N以下の各整数kについてそれぞれ設けられた第k復号部に、前記符号データの途中の第(k−1)開始点より後ろに位置する第k開始点から復号を試行させ、
第k復号部の復号の失敗を検知し、
第k復号部の復号の失敗を検知した場合は第k開始点の位置を変えて再度第k復号部に復号を試行させ、
第N復号部が前記符号データの末尾まで失敗せずに復号を終了した場合の第N開始点を第N成功点とし、第(k−1)復号部が第k成功点まで失敗せずに復号を終了した場合の第(k−1)開始点を第(k−1)成功点とした場合に、2以上N以下の各kについて、前記符号データの前記第(k−1)成功点から第k成功点までの部分について前記第(k−1)復号部の復号結果と、前記符号データの第N成功点から末尾までの部分についての前記第N復号部の復号結果と、に基づき、前記符号データ全体に対応する復号結果を生成する、
処理をコンピュータに実行させるためのプログラム。 Causing the first decoding unit to perform decoding from the first start point that is the head of the code data to be decoded;
Causing the k-th decoding unit provided for each integer k of 2 or more and N or less to try decoding from the k-th start point located after the (k-1) start point in the middle of the code data;
Detecting a decoding failure of the k-th decoding unit,
When the decoding failure of the k-th decoding unit is detected, the position of the k-th starting point is changed, and the k-th decoding unit is tried again,
The Nth starting point when the Nth decoding unit completes decoding without failing to the end of the code data is set as the Nth success point, and the (k−1) th decoding unit without failing to the kth success point. The (k-1) th success point of the code data for each k of 2 or more and N or less when the (k-1) th start point when decoding is finished is the (k-1) th success point. Based on the decoding result of the (k−1) th decoding unit for the part from the first to the kth successful point and the decoding result of the Nth decoding unit for the part from the Nth successful point to the end of the code data. A decoding result corresponding to the entire code data is generated,
A program that causes a computer to execute processing.
第2復号部に、前記符号データの途中の開始点から復号を試行させ、
第2復号部の復号の失敗を検知し、
第2復号部の復号の失敗が検知された場合は開始点の位置を変えて再度第2復号部に復号を試行させ、
前記第2復号部が前記符号データの末尾まで失敗なく復号を終了した場合の試行の開始点を成功点とした場合に、前記符号データの先頭から前記成功点までの部分についての前記第1復号部の復号結果と、前記成功点から前記符号データの末尾までについての前記第2復号部の復号結果とに基づき、前記符号データ全体の復号結果を生成する、
処理をコンピュータに実行させるためのプログラム。 Let the first decoding unit perform decoding from the beginning of the code data to be decoded,
Let the second decoding unit try decoding from the starting point in the middle of the code data,
Detecting a decoding failure of the second decoding unit;
If a failure in decoding by the second decoding unit is detected, the position of the starting point is changed and the second decoding unit tries again,
The first decoding of the portion from the top of the code data to the success point when the second decoding unit has successfully completed the decoding to the end of the code data without success Generating a decoding result of the entire code data based on a decoding result of a part and a decoding result of the second decoding unit from the success point to the end of the code data;
A program that causes a computer to execute processing.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006280456A JP2008099134A (en) | 2006-10-13 | 2006-10-13 | Data decoding apparatus and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006280456A JP2008099134A (en) | 2006-10-13 | 2006-10-13 | Data decoding apparatus and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008099134A true JP2008099134A (en) | 2008-04-24 |
Family
ID=39381481
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006280456A Pending JP2008099134A (en) | 2006-10-13 | 2006-10-13 | Data decoding apparatus and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2008099134A (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010093522A (en) * | 2008-10-08 | 2010-04-22 | Mega Chips Corp | Image processor |
| JP2010154225A (en) * | 2008-12-25 | 2010-07-08 | Sony Corp | Encoder and decoder, encoding method and decoding method, and recording medium |
| JP2014078994A (en) * | 2013-12-13 | 2014-05-01 | Dainippon Printing Co Ltd | Method and device for encoding/decoding numerical data string |
| WO2017044225A1 (en) * | 2015-09-10 | 2017-03-16 | Intel Corporation | Methods and apparatus to parallelize data decompression |
| CN109492451A (en) * | 2018-10-30 | 2019-03-19 | 维沃移动通信有限公司 | A kind of coded image recognition methods and mobile terminal |
-
2006
- 2006-10-13 JP JP2006280456A patent/JP2008099134A/en active Pending
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010093522A (en) * | 2008-10-08 | 2010-04-22 | Mega Chips Corp | Image processor |
| JP2010154225A (en) * | 2008-12-25 | 2010-07-08 | Sony Corp | Encoder and decoder, encoding method and decoding method, and recording medium |
| JP2014078994A (en) * | 2013-12-13 | 2014-05-01 | Dainippon Printing Co Ltd | Method and device for encoding/decoding numerical data string |
| WO2017044225A1 (en) * | 2015-09-10 | 2017-03-16 | Intel Corporation | Methods and apparatus to parallelize data decompression |
| US9876509B2 (en) | 2015-09-10 | 2018-01-23 | Intel Corporation | Methods and apparatus to parallelize data decompression |
| US10320414B2 (en) | 2015-09-10 | 2019-06-11 | Intel Corporation | Methods and apparatus to parallelize data decompression |
| US10763894B2 (en) | 2015-09-10 | 2020-09-01 | Intel Corporation | Methods and apparatus to parallelize data decompression |
| US11258459B2 (en) | 2015-09-10 | 2022-02-22 | Intel Corporation | Methods and apparatus to parallelize data decompression |
| US11595055B2 (en) | 2015-09-10 | 2023-02-28 | Intel Corporation | Methods and apparatus to parallelize data decompression |
| CN109492451A (en) * | 2018-10-30 | 2019-03-19 | 维沃移动通信有限公司 | A kind of coded image recognition methods and mobile terminal |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0665653B1 (en) | Apparatus and method for decoding variable-length code | |
| JP4878262B2 (en) | Entropy encoding device | |
| US8666179B2 (en) | Image encoding apparatus and decoding apparatus | |
| US8600183B2 (en) | Optimized method and system for entropy coding | |
| JP2013524679A (en) | Video encoding method, decoding method and apparatus using adaptive coefficient scan order | |
| GB2496209A (en) | Entropy encoder with first and second, bypass encoding systems | |
| US8457428B2 (en) | Image coding apparatus, control method thereof, and storage medium | |
| US20040013312A1 (en) | Moving image coding apparatus, moving image decoding apparatus, and methods therefor | |
| JPH04221465A (en) | recording device | |
| US20110058613A1 (en) | Method and apparatus for generating bitstream based on syntax element | |
| JP4768728B2 (en) | Method and apparatus for encoding a block of values | |
| KR20090048547A (en) | Decoding method, program of decoding method, recording medium recording program of decoding method, decoding device | |
| US8175401B2 (en) | Image processing apparatus and computer readable medium storing program therefor | |
| JP2008099134A (en) | Data decoding apparatus and program | |
| JP4785706B2 (en) | Decoding device and decoding method | |
| CN1692626A (en) | Image encoding device and method, and encoded image decoding device and method | |
| USRE45300E1 (en) | Context-adaptive variable length coder with simultaneous storage of incoming data and generation of syntax elements | |
| US20130002458A1 (en) | Variable-length code decoding apparatus, decoding system, and variable-length code decoding method | |
| JP3866539B2 (en) | Encoding method, decoding method, encoding device, decoding device, encoding program, decoding program, and program recording medium thereof | |
| JPS6364948B2 (en) | ||
| US8260070B1 (en) | Method and system to generate a compressed image utilizing custom probability tables | |
| JPH07255055A (en) | Variable length code decoding circuit and decoding method | |
| JP5872804B2 (en) | Encoding apparatus and encoding method | |
| JP6312879B2 (en) | Image encoding device, image encoding method and program, image decoding device, image decoding method and program | |
| JP2004364127A (en) | Compensation value correction decoder, compensation value correction encoding / decoding system, compensation value correction decoding method, compensation value compensation encoding / decoding method, compensation value compensation decoding program, and compensation value compensation encoding / decoding program |