JP2005277758A - Image decoding apparatus - Google Patents
Image decoding apparatus Download PDFInfo
- Publication number
- JP2005277758A JP2005277758A JP2004087720A JP2004087720A JP2005277758A JP 2005277758 A JP2005277758 A JP 2005277758A JP 2004087720 A JP2004087720 A JP 2004087720A JP 2004087720 A JP2004087720 A JP 2004087720A JP 2005277758 A JP2005277758 A JP 2005277758A
- Authority
- JP
- Japan
- Prior art keywords
- decoding
- unit
- pass
- path
- 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.)
- Withdrawn
Links
Images
Landscapes
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
この発明は画像復号装置に関する。とくに複数の性質のデータ群が含まれる符号化画像データを復号する画像復号装置に関する。 The present invention relates to an image decoding apparatus. In particular, the present invention relates to an image decoding apparatus that decodes encoded image data including a data group having a plurality of properties.
ISO/ITU−Tにおいて、静止画像の圧縮符号化の標準技術であるJPEG(Joint Photographic Expert Group)の後継として、離散ウェーブレット変換(DWT)を用いたJPEG2000の標準化が行われている。JPEG2000では、低ビットレート符号化からロスレス圧縮まで広範囲の画質を高性能で符号化することができ、画質を徐々に高めるスケーラビリティ機能も実現が容易である。 In ISO / ITU-T, standardization of JPEG2000 using discrete wavelet transform (DWT) is performed as a successor of JPEG (Joint Photographic Expert Group), which is a standard technology for compression coding of still images. JPEG2000 can encode a wide range of image quality from low bit rate encoding to lossless compression with high performance, and it is easy to realize a scalability function that gradually increases image quality.
JPEG2000における符号化処理では、ブロック分割処理と、係数ビットモデリング処理と、算術符号化処理とが行われる。ブロック分割処理は、原画像を離散ウェーブレット変換することにより生成された各サブバンドをコードブロックと呼ばれる小領域に分割する。係数ビットモデリング処理は、ウェーブレット変換係数の量子化値を最上位ビット(Most Significant Bit;MSB)から最下位ビット(Least Significant Bit;LSB)までのビットプレーンに分解して、算術符号化用の2値シンボルとコンテクストを生成する。算術符号化処理は、生成されたシンボルとコンテクストをもとにシンボル系列の出現確率に基づくエントロピー符号化を行う。その際、ビットプレーンをパス単位に分割して符号化する。
パス毎の算術符号化の計算方法は、パス毎に独立して行う方法と、パスをまたいで行う方法がある。前者により符号化されたデータに対しては、パス毎に独立して復号することができる。これに対して、後者により符号化されたデータに対しては、独立して復号することができない。また、復号処理を高速に実行するためには、復号処理の並列化が必要である。 The calculation method of arithmetic coding for each pass includes a method of performing independently for each pass and a method of performing across the passes. The data encoded by the former can be decoded independently for each pass. On the other hand, the data encoded by the latter cannot be decoded independently. Further, in order to execute the decoding process at high speed, it is necessary to parallelize the decoding process.
本発明はこうした課題に鑑みてなされたものであり、その目的は、高速に復号を行うことのできる画像復号技術を提供することにある。別の目的は、汎用性が高い画像復号技術を提供することにある。 The present invention has been made in view of these problems, and an object thereof is to provide an image decoding technique capable of performing decoding at high speed. Another object is to provide a highly versatile image decoding technique.
本発明のある態様は画像復号装置に関する。この装置は、符号化画像データのうち、復号可能な性質のデータについて仕様が異なる第1復号部および1以上の第2復号部と、符号化画像データを並列に復号できるか否かを解析する解析部と、を有し、解析部は、解析結果に応じて、第1復号部が符号化画像データを単独で復号するか、第1復号部および第2復号部のうちの複数の復号部が符号化画像データを並列に復号するか、を選択する。第1および第2復号部は、一例として、画素を算術復号するものであってもよい。 One embodiment of the present invention relates to an image decoding apparatus. This apparatus analyzes, in encoded image data, whether or not encoded image data can be decoded in parallel with a first decoding unit and one or more second decoding units having different specifications for data having a decodable property. An analyzing unit, wherein the analyzing unit decodes the encoded image data independently according to the analysis result, or a plurality of decoding units of the first decoding unit and the second decoding unit Selects whether to decode the encoded image data in parallel. As an example, the first and second decoding units may arithmetically decode pixels.
本態様によれば、符号化画像データの並列処理が可能なときは、複数の復号部で並列に復号化するため、復号処理を高速化することができる。並列処理が不可能なときでも、仕様が高い第1復号部が単独で復号処理するため、汎用性が高い。 According to this aspect, when the encoded image data can be processed in parallel, decoding is performed in parallel by the plurality of decoding units, so that the decoding process can be speeded up. Even when parallel processing is impossible, the first decoding unit with high specifications performs decoding processing alone, so that versatility is high.
本発明の別の態様も画像復号装置に関する。この装置は、符号化画像をエントロピー復号するエントロピー復号ブロックと、エントロピー復号されたデータを逆量子化する逆量子化部と、逆量子化されたデータに空間周波数逆変換を施す逆変換部と、を備え、エントロピー復号ブロックは、符号化画像データのうち、復号可能な性質のデータについて仕様が異なる第1復号部および1以上の第2復号部と、符号化画像データを並列に復号できるか否かを解析する解析部と、を有し、解析部は、解析結果に応じて、第1復号部が符号化画像データを単独で復号するか、第1復号部および第2復号部のうちの複数の復号部が符号化画像データを並列に復号するか、を選択する。 Another aspect of the present invention also relates to an image decoding apparatus. The apparatus includes an entropy decoding block that entropy-decodes an encoded image, an inverse quantization unit that inversely quantizes entropy-decoded data, an inverse transform unit that performs spatial frequency inverse transform on the dequantized data, And the entropy decoding block is capable of decoding the encoded image data in parallel with the first decoding unit and the one or more second decoding units having different specifications with respect to the decodable data among the encoded image data. And an analysis unit that analyzes whether the first decoding unit decodes the encoded image data independently according to the analysis result, or of the first decoding unit and the second decoding unit. A plurality of decoding units select whether to decode the encoded image data in parallel.
第1復号部および第2復号部からなる復号部を複数備えてもよい。これによれば、さらなる復号処理の高速化を実現することができる。 A plurality of decoding units including the first decoding unit and the second decoding unit may be provided. According to this, it is possible to further speed up the decoding process.
第1復号部は、並列に復号処理される場合、ある性質のデータを専用に復号してもよい。第1復号部は、並列処理できない場合に単独で符号化画像データを復号するモードと、並列処理する場合にある性質のデータを専用で復号するモードとを持つ。これによれば、並列処理する場合に、第1復号部がある性質のデータを復号する専用の第2復号部の機能を提供することから、第2復号部の数を1つ減らすことができる。よって、高速化と省回路面積化の両立に資する。 When the first decoding unit performs decoding processing in parallel, the first decoding unit may exclusively decode data having a certain property. The first decoding unit has a mode for decoding encoded image data independently when parallel processing cannot be performed, and a mode for exclusively decoding data having a certain property when performing parallel processing. According to this, in the case of performing parallel processing, the first decoding unit provides the function of the second decoding unit dedicated for decoding certain data, so the number of second decoding units can be reduced by one. . Therefore, it contributes to both speeding up and circuit saving.
解析部は、符号化画像データのヘッダに記述されている性質ごとに分類された複数のデータ群がそれぞれ独立して符号化されたか否かを解析してもよい。また、解析部は、符号化画像データのヘッダに、性質ごとに分類された複数のデータ群のそれぞれの符号量が記述されているか否かを解析してもよい。このように、符号化画像データのヘッダに記述されている情報を解析することにより、当該符号化画像データが並列処理可能か否かを判別することができる。上記データ群が独立して符号化されていない場合、並列処理ができない。また、上記データ群の符号量が記述されていない場合も、並列処理ができない。 The analysis unit may analyze whether or not each of the plurality of data groups classified for each property described in the header of the encoded image data is independently encoded. Further, the analysis unit may analyze whether or not each code amount of a plurality of data groups classified according to properties is described in the header of the encoded image data. Thus, by analyzing the information described in the header of the encoded image data, it is possible to determine whether or not the encoded image data can be processed in parallel. If the data groups are not independently encoded, parallel processing cannot be performed. Further, parallel processing cannot be performed even when the code amount of the data group is not described.
性質は、符号化画像データの符号化パスの種類であってもよい。「符号化パス」は、JPEG2000の仕様に準拠したパスを含む。 The property may be the type of encoding pass of the encoded image data. The “encoding pass” includes a pass conforming to the specification of JPEG2000.
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。 It should be noted that any combination of the above-described constituent elements and a conversion of the expression of the present invention between a method, an apparatus, a system, a computer program, a recording medium, and the like are also effective as an aspect of the present invention.
本発明によれば、高速に符号化画像の復号を行うことができる。 According to the present invention, it is possible to decode an encoded image at high speed.
実施の形態1
図1は、実施の形態1に係る画像復号装置100の構成図である。画像復号装置100の構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた復号機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
FIG. 1 is a configuration diagram of an
画像復号装置100は、圧縮符号化された画像の入力を受け、入力された符号化画像を復号して出力する。符号化画像は、原画像が4つの周波数サブバンドへ再帰的に分割されてウェーブレット変換され、量子化の後、算術符号化された画像であり、一例としてJPEG2000の規格にしたがうものである。
The
画像復号装置100に入力される符号化画像は、動画像の符号化フレームであってもよい。画像復号装置100は、符号化ストリームとして入力される動画像の各符号化フレームを連続的に復号することにより動画を再生することができる。
The encoded image input to the
ストリーム解析部10は、入力された符号化画像のストリームを解析して符号化データを抽出し、エントロピー復号部12に与える。エントロピー復号部12は、符号化データをビットプレーン毎にエントロピー復号し、復号の結果得られる量子化されたウェーブレット変換係数を逆量子化部14に与える。
The
逆量子化部14は、ウェーブレット変換係数の量子化値を逆量子化してウェーブレット逆変換部16に与える。ウェーブレット逆変換部16は逆量子化されたウェーブレット変換係数を逆変換し、得られた復号画像を出力する。
The
図2は、エントロピー復号部12の構成図である。ストリーム解析部10からエントロピー復号部12に符号化データCDが入力される。周辺情報レジスタ群20は、符号化データCDの算術復号に使用するコンテクストを推定するための着目画素に対する周辺情報を保持するレジスタである。コンテクスト推定部22は、周辺情報レジスタ群20に保持された周辺情報をもとに、符号化データCDの復号結果を予測するためのコンテクストを推定し、コンテクストラベルCXを算術復号部24に与える。
FIG. 2 is a configuration diagram of the
算術復号部24は、ストリーム解析部10からは符号化データCD、コンテクスト推定部22からはコンテクストラベルCXを入力として受け取り、算術復号演算により2値の判定値であるデシジョンDを求めて、逆量子化部14に与える。算術復号部24から出力されるデシジョンDは、単位復号期間の終了時に、すなわち復号と同一サイクルで、周辺情報レジスタ群20に入力され、周辺情報レジスタ群20に保持されている周辺情報が算術復号部24による演算結果により更新される。
The
コンテクスト推定部22は、JPEG2000における復号時の係数ビットモデリング処理を行うものである。復号時の係数ビットモデリング処理は、算術復号部24による復号結果を利用して周辺情報を更新しながら、算術復号の際に必要となるコンテクストを決定する処理である。以下、図3〜図10を参照して、復号時の係数ビットモデリング処理を説明する。
The
ストリーム解析部10により符号化ストリームから抽出されたサブバンド画像はコードブロックと呼ばれる小領域に分割され、コードブロックが復号処理単位となる。サブバンド画像は、原画像のx、yの両方向において低周波成分を有するLLサブバンド、x、yのいずれかひとつの方向において低周波成分を有し、かつもう一方の方向において高周波成分を有するHLおよびLHサブバンド、x、yの両方向において高周波成分を有するHHサブバンドのいずれかである。
The subband image extracted from the encoded stream by the
コードブロックのサイズは、高さと幅が22〜210の範囲にある2のべき乗の整数値であり、高さと幅の指数の和は12以下であることが規格において定められている。本実施の形態では、コードブロックは縦横32ピクセルとして説明する。 The size of the code block is an integer value of a power of 2 in which the height and width are in the range of 2 2 to 2 10 , and the standard defines that the sum of the height and width indices is 12 or less. In the present embodiment, the code block is described as 32 pixels in length and width.
図3は、コードブロックをビット毎にスライスして形成されたビットプレーンを説明する図である。コードブロックのビットプレーンは、ウェーブレット変換係数の量子化値の正負の符号を格納したSignプレーンと、ウェーブレット変換係数の量子化値の絶対値を与えるMSBからLSBまでの複数のプレーンとから構成される。エントロピー復号部12は、上位ビットから順にビットプレーンを選択し、ビットプレーン単位でビットプレーン上で各係数の復号処理を行う。
FIG. 3 is a diagram for explaining a bit plane formed by slicing a code block for each bit. The bit plane of the code block is composed of a Sign plane that stores the sign of the quantized value of the wavelet transform coefficient, and a plurality of planes from MSB to LSB that give the absolute value of the quantized value of the wavelet transform coefficient. . The
図4は、ビットプレーン上の係数を復号する際の走査順序を説明する図である。ビットプレーンは、縦4ピクセルのストライプに分割され、ストライプ単位で走査されて復号される。各ストライプの横幅はコードブロックの横幅であり、本例では32ピクセルである。ストライプの本数は、合計で8本となる。 FIG. 4 is a diagram for explaining the scanning order when the coefficients on the bit plane are decoded. The bit plane is divided into stripes of 4 pixels in length, and is scanned and decoded in units of stripes. The width of each stripe is the width of the code block, which is 32 pixels in this example. The total number of stripes is 8.
各ストライプにおいて、矢印で示すように最初の列の縦4ピクセルを上から順に走査して1ピクセルずつ復号処理を進め、次に2番目の列の縦4ピクセルを同じ向きに走査し、これを最後の列まで繰り返す。ストライプの終端まで復号処理が終わると、次のストライプの先頭の係数から同じように走査して復号処理を進め、コードブロックの最後の行まで繰り返す。なお、係数の正負の符号を格納したSignプレーンの復号は、係数の絶対値部分に相当するプレーンを復号する際に適宜行われる。 In each stripe, as indicated by the arrows, the vertical four pixels in the first column are scanned in order from the top, and the decoding process proceeds one pixel at a time, and then the vertical four pixels in the second column are scanned in the same direction. Repeat until the last column. When the decoding process is completed up to the end of the stripe, scanning is performed in the same manner from the leading coefficient of the next stripe, the decoding process is performed, and the process is repeated until the last line of the code block. Note that the decoding of the Sign plane storing the positive and negative signs of the coefficients is appropriately performed when decoding the plane corresponding to the absolute value portion of the coefficients.
コードブロック内の各係数は、有意であるか、有意でないかの2つの状態で識別される。有意である場合は1、有意でない場合は0を割り当て、各係数の有意性状態を2値で識別する。復号開始時は、コードブロック内のすべての係数は有意でない。 Each coefficient in the code block is identified in two states: significant or insignificant. 1 is assigned if significant, 0 is assigned if not significant, and the significance state of each coefficient is identified by a binary value. At the start of decoding, all coefficients in the code block are not significant.
ここで、係数が有意であるとは、着目しているウェーブレット変換係数の量子化値が、これまでの復号処理の結果から‘0’ではないとわかっている状態をいう。言い換えれば、上位ビットプレーンから順次ストライプ単位で走査しながら復号していく中で、‘1’であるビットが発見されているウェーブレット変換係数の状態をいう。また、係数が有意でないとは、着目しているウェーブレット変換係数の量子化値が‘0’であるか、あるいは‘0’である可能性が残っている状態をいう。言い換えれば、上位ビットプレーンから順次復号していく中で、‘1’であるビットが未だ発見されていないウェーブレット変換係数の状態をいう。 Here, the coefficient is significant means a state in which the quantized value of the focused wavelet transform coefficient is known to be not “0” from the results of the decoding processing so far. In other words, it means the state of the wavelet transform coefficient in which a bit of “1” is found while decoding while scanning in units of stripes sequentially from the upper bit plane. Also, the coefficient is not significant means a state where the quantized value of the focused wavelet transform coefficient is “0” or remains “0”. In other words, it means the state of the wavelet transform coefficient in which the bit of “1” has not yet been found during the sequential decoding from the upper bit plane.
係数ビットモデリング処理では、ビットプレーン上の係数の周囲にある係数の有意性状態にもとづいて各係数ビット毎にコンテクストが決定される。図5は、ビットプレーン上の復号対象の係数X(以下、現係数Xという)の周囲に隣接する8個の近傍係数を説明する図である。8個の近傍係数は、現係数Xに対して水平方向に隣接する2つの係数h0、h1と、垂直方向に隣接する2つの係数v0、v1と、斜め方向に隣接する4つの係数d0〜d3とからなる。 In the coefficient bit modeling process, the context is determined for each coefficient bit based on the significance state of the coefficients around the coefficients on the bit plane. FIG. 5 is a diagram illustrating eight neighboring coefficients adjacent to the periphery of the coefficient X to be decoded on the bit plane (hereinafter referred to as the current coefficient X). The eight neighboring coefficients are two coefficients h0 and h1 adjacent to the current coefficient X in the horizontal direction, two coefficients v0 and v1 adjacent in the vertical direction, and four coefficients d0 to d3 adjacent in the oblique direction. It consists of.
図5の8個の近傍係数はそれぞれ有意であるか、有意でないかの2つの状態をとりうるため、現係数Xに対して、組み合わせとしては256個のコンテクストがありうるが、JPEG2000では、対称性などを利用して、19種類のコンテクストに集約されており、これらのコンテクストは0〜18のラベルをつけて識別される。なお、いずれかの近傍係数が処理中のコードブロックの外部に位置する場合は、その近傍係数は有意でないとみなして処理する。 Since each of the eight neighboring coefficients in FIG. 5 can take two states, which are significant or not significant, there can be 256 contexts as a combination with respect to the current coefficient X. It is collected into 19 kinds of contexts using the sex etc., and these contexts are identified with labels of 0-18. If any neighborhood coefficient is located outside the code block being processed, the neighborhood coefficient is regarded as insignificant and processed.
ビットプレーン内の各係数ビットは、Sパス(significance propagation pass)、Rパス(magnitude refinement pass)、Cパス(cleanup pass)の3種類の処理パスのうちのいずれかにもとづいて復号される。Sパスでは、有意である係数が周囲に存在する有意でない係数の復号が行われ、Rパスでは、有意である係数の復号が行われ、Cパスでは、残りの係数の復号が行われる。 Each coefficient bit in the bit plane is decoded based on one of three types of processing paths, that is, an S pass (significance propagation pass), an R pass (magnitude refinement pass), and a C pass (cleanup pass). In the S pass, a non-significant coefficient around which a significant coefficient exists is decoded, in the R pass, a significant coefficient is decoded, and in the C pass, the remaining coefficients are decoded.
Sパス、Rパス、Cパスの各処理パスはこの順に画像の画質への寄与度が大きい。各処理パスはこの順に実行され、各係数のコンテクストが近傍係数の情報を考慮して決定される。以下、各処理パスにおける具体的な処理手順を説明する。最初にSパス処理を説明する。 Each processing pass of the S pass, R pass, and C pass has a large contribution to the image quality in this order. Each processing pass is executed in this order, and the context of each coefficient is determined in consideration of information on neighboring coefficients. Hereinafter, a specific processing procedure in each processing path will be described. First, the S pass process will be described.
ビットプレーンの各ストライプにおける走査において、現係数Xが有意でない状態であり、かつその現係数Xに隣接する8個の近傍係数の内、少なくとも1つの近傍係数が有意である場合、現係数XはSパスの処理対象として選ばれる。それ以外の場合は、Sパスの処理対象とはならない。Sパスで復号対象となる係数は、そのビットプレーンにおいて最も有意になる可能性が高い係数である。 When the current coefficient X is insignificant in scanning in each stripe of the bit plane, and at least one of the eight neighboring coefficients adjacent to the current coefficient X is significant, the current coefficient X is It is selected as an S pass processing target. In other cases, it is not an S pass processing target. A coefficient to be decoded in the S pass is a coefficient that is most likely to be significant in the bit plane.
コンテクスト推定部22は、現係数Xに対して、水平方向の2つの近傍係数h0,h1の内、有意である係数の数を与えるΣhi(=h0+h1)と、垂直方向の2つの近傍係数v0,v1の内、有意である係数の数を与えるΣvi(=v1+v2)と、斜め方向の4つの近傍係数d0,d1,d2,d3の内、有意である係数の数を与えるΣdi(=d1+d2+d3+d4)とを求める。
The
図6は、Sパスにおけるコンテクストの分類テーブルを説明する図である。このコンテクストテーブルは、処理中のコードブロックが、LH/LLサブバンド、HLサブバンド、HHサブバンドのいずれに属しているかによって、水平、垂直、斜め方向の有意である近傍係数の数Σhi,Σvi,Σdiの組み合わせと、0〜8のラベルで識別される9種類のコンテクストラベルCXとを対応づけたものである。コンテクスト推定部22は、このコンテクストの分類テーブルを参照し、サブバンドの周波数成分の方向性と有意である近傍係数の数Σhi,Σvi,Σdiの組み合わせにしたがって、Sパスで処理する係数を9種類のコンテクストのいずれかに分類し、該当するコンテクストラベルCXを出力する。
FIG. 6 is a diagram for explaining a context classification table in the S pass. This context table shows the number of neighborhood coefficients Σhi, Σvi that are significant in the horizontal, vertical, and diagonal directions depending on whether the code block being processed belongs to the LH / LL subband, HL subband, or HH subband. , Σdi and nine kinds of context labels CX identified by
また、Sパスでは、現係数Xのビットの値が‘1’であった場合、現係数Xの有意性状態を「有意でない」から「有意である」に変更する。現係数Xが有意になった場合、引き続き、その現係数Xの正負を示す極性ビットを復号する。 In the S pass, when the value of the bit of the current coefficient X is “1”, the significance state of the current coefficient X is changed from “not significant” to “significant”. When the current coefficient X becomes significant, the polarity bit indicating the sign of the current coefficient X is subsequently decoded.
極性ビットに対するコンテクストは、垂直方向の2つの近傍係数v0,v1および水平方向の2つの近傍係数h0,h1の有意性状態および正負の極性値にもとづいて次の2段階で決定される。 The context for the polarity bit is determined in the following two steps based on the significance state and the positive and negative polarity values of the two neighboring coefficients v0, v1 in the vertical direction and the two neighboring coefficients h0, h1 in the horizontal direction.
図7は、極性ビットのコンテクスト決定のための垂直指標および水平指標テーブルを説明する図である。コンテクスト推定部22は、まず、2つの垂直方向の近傍係数v0、v1のそれぞれが正の有意である係数であるか、負の有意である係数であるか、有意でない係数であるかを判定し、図7のテーブルを参照して、垂直指標vに‘0’、‘1’、‘−1’のいずれかの値を割り当てる。同様にして、水平方向の近傍係数h0、h1に対しても図7のテーブルを参照して、水平指標hに‘0’、‘1’、‘−1’のいずれかの値を割り当てる。
FIG. 7 is a diagram for explaining a vertical index and a horizontal index table for determining the context of the polarity bit. The
図8は、水平指標hと垂直指標vの組み合わせと、9〜13のラベルで識別される5種類の極性ビットに対するコンテクストラベルCXとを対応づけたテーブルである。コンテクスト推定部22は、図8のテーブルを参照して、求めた水平指標hと垂直指標vの値の組み合わせによって極性ビットを5種類のコンテクストのいずれかに分類し、該当するコンテクストラベルCXを出力する。
FIG. 8 is a table in which combinations of horizontal indices h and vertical indices v are associated with context labels CX for five types of polarity bits identified by labels 9 to 13. The
次にRパス処理を説明する。現係数Xがすでに有意であると判定されている場合、現係数Xは処理中のビットプレーンにおいてRパスの処理対象となる。ただし、そのビットプレーンにおいて、直前のSパスで有意である状態に変化した係数は処理対象としない。Rパスの復号処理は、Sパスで復号された係数の精度を上げる役割をもつ。 Next, R path processing will be described. When it is determined that the current coefficient X is already significant, the current coefficient X becomes an R path processing target in the bit plane being processed. However, a coefficient that has changed to a significant state in the immediately preceding S pass in the bit plane is not processed. The R-pass decoding process has a role of increasing the accuracy of the coefficients decoded in the S-pass.
図9は、Rパスにおけるコンテクストの分類テーブルを示す図である。Rパスでは、コンテクスト推定部22は、現係数Xに対する8つの近傍係数に内、有意である係数の数を示すΣhi+Σvi+Σdiの値を求め、さらに、現係数Xが1つ上のビットプレーンで有意になったかどうか、言い換えれば、当該Rパスは、現係数Xが有意でない状態から有意である状態に変化した後の最初のパスであるかどうかを判定し、これらの結果にもとづいて、同図に示すように、14〜16のラベルで識別される3種類のコンテクストに分類し、該当するコンテクストラベルCXを出力する。
FIG. 9 is a diagram showing a context classification table in the R path. In the R path, the
最後にCパス処理を説明する。Cパスは、現係数XがSパス、Rパスのいずれの処理対象にも該当しない場合に用いられる。Cパスでは、ランレングス復号か、Sパスのように8つの近傍係数の値を参照した復号処理を行う。Cパスでは、ランレングス復号を行うかどうかを判断しながら処理を進める。 Finally, the C pass process will be described. The C path is used when the current coefficient X does not correspond to either the S path or the R path. In the C pass, run length decoding or decoding processing referring to the values of eight neighboring coefficients as in the S pass is performed. In the C pass, the process proceeds while determining whether to perform run-length decoding.
図10は、Cパスにおけるコンテクストの分類テーブルを示す図である。Cパスでは、垂直方向に連続する4つの係数が全て有意でない、すなわちストライプ内の縦1列がすべてCパスに属しており、かつ、その4つのすべての係数に対する8個の近傍係数にも有意である係数が存在しないという条件の成否を判断する。この条件に該当する場合、ランレングスモードで復号処理を行い、コンテクストラベルCXは17である。この条件に該当しない場合、垂直方向に連続する4つの係数値の中に少なくとも1つの有意である係数が存在するため、最初に有意になる係数の位置はUNIFORMコンテクストを用い、このときのコンテクストラベルCXは18である。残りのすべての係数に対してはSパスと同様の処理を行う。 FIG. 10 is a diagram illustrating a context classification table in the C path. In the C path, all four consecutive coefficients in the vertical direction are not significant, that is, all the vertical columns in the stripe belong to the C path, and the eight neighboring coefficients for all the four coefficients are also significant. It is determined whether or not the condition that there is no coefficient is. When this condition is satisfied, the decoding process is performed in the run length mode, and the context label CX is 17. If this condition is not met, there is at least one significant coefficient among the four consecutive coefficient values in the vertical direction. Therefore, the position of the first significant coefficient is determined using the UNIFORM context, and the context label at this time CX is 18. The same processing as in the S pass is performed for all remaining coefficients.
以上述べたように、コンテクスト推定部22による係数ビットモデリング処理において、3つのいずれかの処理パスを用いて、ビットプレーン上の各係数のコンテクストラベルCXが決定される。
As described above, in the coefficient bit modeling process by the
周辺情報レジスタ群20は、コードブロックの1枚のビットプレーン分の大きさに対応して縦横32ビットのレジスタを5種類設けたものであり、コードブロック全体の周辺情報を保持する。周辺情報レジスタ群20を構成する第1から第5レジスタは、コンテクスト推定部22がビットプレーンにおける各処理パスでコンテクストラベルCXを求めるために必要な情報を格納する。
The peripheral
周辺情報レジスタ群20の第1レジスタは、各係数が有意であるか、有意でないかを示す情報を格納する。第2レジスタは、各係数が一つ上のビットプレーンで有意になったかどうかを示す情報を格納し、Rパスの処理で使用される。第3レジスタは、各係数が現在のビットプレーンで有意になったかどうかを示す情報を格納する。これは第2レジスタの情報を生成するために必要となる。第4レジスタは、各係数は既に復号済みかどうかを示す情報を格納し、Cパスの処理で使用される。第4レジスタの情報は、第1レジスタと第3レジスタの情報から算出できるが、処理の便宜のために別途情報を保持しておく。第5レジスタは、各係数の正負の符号を示す極性の情報を格納する。
The first register of the peripheral
第1、第5レジスタの内容はコードブロックの処理開始時もしくは処理終了時に零にリセットされる。第2レジスタの内容は、ビットプレーンの処理開始時もしくは処理終了時に第3レジスタの内容をコピーすることにより初期化される。第3、第4のレジスタの内容は、ビットプレーンの処理開始時もしくは処理終了時に零にリセットされる。 The contents of the first and fifth registers are reset to zero when the code block processing starts or ends. The contents of the second register are initialized by copying the contents of the third register at the start or end of processing of the bit plane. The contents of the third and fourth registers are reset to zero when the bit plane processing starts or ends.
図11は、周辺情報レジスタ群20の各レジスタの構成を説明する図である。周辺情報レジスタ群20に含まれる5種類のレジスタの各々は、コードブロックがストライプ単位で走査されて復号処理されることに合わせて、ストライプの大きさのレジスタがストライプの本数分だけ並んだ構成をとる。各レジスタ列は、ストライプの縦方向4ピクセルに対応して縦4ビットで、コードブロックの横幅32ピクセルに対応して横32ビットである。
FIG. 11 is a diagram for explaining the configuration of each register of the peripheral
各レジスタ列は、高速化と小型化のために、横方向に4ビットずつ、R00〜R07、R10〜R17、…、R70〜R77のように区切られ、左端の斜線を付したR00、R10、…、R70の4ビットに対してのみ読み出し、書き込みが可能なシフトレジスタである。以下、4ビットずつの区切りをレジスタブロックと呼ぶ。 Each register row is divided into four bits in the horizontal direction, such as R00 to R07, R10 to R17,..., R70 to R77, and R00, R10, and R00, R10, which are hatched at the left end for speeding up and downsizing ..., a shift register that can read and write only to the four bits of R70. Hereinafter, a 4-bit segment is called a register block.
なお、第1、第5レジスタの場合だけ、Sパス処理において近傍係数の参照が必要となるため、左端のレジスタブロックの左右の1ピクセル分の読み出しが可能である。すなわち、左端の各レジスタブロックR00、R10、…、R70の4ビットとともに、右隣の各レジスタブロックR01、R11、…、R71の左側1ビットと、論理的に左隣(実際には右端)の各レジスタブロックR07、R17、…、R77の右側1ビットも合わせて読み出し可能な構成とする。 Note that only in the case of the first and fifth registers, it is necessary to refer to the neighborhood coefficient in the S pass process, and therefore it is possible to read one pixel on the left and right of the leftmost register block. That is, the leftmost register blocks R01, R11,..., R71 and the left one bit of each register block R00, R10,. It is assumed that the right one bit of each register block R07, R17,.
図12(a)、(b)は、図11の各レジスタ列の動作を説明する図である。図12(a)は、一例としてストライプ0のレジスタ列を示しており、4ビットずつ、レジスタブロックR00〜R07に区切られ、左端のレジスタブロックR00に対して読み書きが可能である。このレジスタは、リングバッファないしはバレルシフタのように機能し、図12(b)に示すように、左端にあったR00を右端に移動させ、残りのR01〜R07を順に左に4ビットずつシフトさせることで、読み書きできるレジスタの箇所を4ビットずつずらすことができる。
12A and 12B are diagrams for explaining the operation of each register row in FIG. FIG. 12A shows a register string of
本実施の形態では、各プレーンについて、Sパス、Rパス、Cパスの順に逐次的に処理パスを実行するため、復号動作は次のようになる。まず、MSBプレーンの各ストライプに対して、Cパスの処理を実行し、各レジスタ列を4ビットずつ7回シフトすることで、各ストライプが終端まで処理され、8回目のシフトで最初にもどる。次に、MSBより一つ下のプレーンの各ストライプに対して、Sパスの処理を実行し、4ビットずつ7回シフトすることで、各ストライプが終端まで処理され、8回目のシフトで最初にもどる。この状態で、同一プレーンの各ストライプについてRパスの処理を実行し、同様に、4ビットずつ7回シフトすることで、各ストライプが終端まで処理され、8回目のシフトで最初にもどる。以降、Cパスの処理を同様に実行する。これをLSBプレーンまで繰り返すことで、当該コードブロックについての復号処理が終了する。 In this embodiment, for each plane, the processing path is sequentially executed in the order of the S path, the R path, and the C path, so the decoding operation is as follows. First, the C pass process is executed for each stripe of the MSB plane, and each register string is shifted 7 times by 4 bits, whereby each stripe is processed to the end, and returns to the beginning by the eighth shift. Next, the S pass processing is executed for each stripe in the plane immediately below the MSB, and each stripe is processed 7 times by shifting 4 bits by 7 times. Return. In this state, the R pass processing is executed for each stripe of the same plane, and similarly, by shifting 7 times by 4 bits, each stripe is processed to the end, and the first shift returns. Thereafter, the C pass process is similarly executed. By repeating this up to the LSB plane, the decoding process for the code block ends.
コードブロックの復号処理の過程で、周辺情報レジスタ群20に保持されている周辺情報の内容は、算術復号部24がビットプレーンの係数を一つ復号してデシジョンDを決定するたびにその復号サイクルにおいて更新される。
During the decoding process of the code block, the content of the peripheral information held in the peripheral
以上説明したように、本実施の形態によれば、各係数のコンテクストの推定に必要な周辺情報をレジスタで保持しているため、周辺情報を高速に読み出して、コンテクストを推定し、算術復号部に与えることができる。また、算術復号による演算結果を利用して、算術復号と同一サイクルでレジスタに保持された周辺情報を更新することができる。周辺情報をSRAMなどのメモリに保持した場合、アドレッシングが必要となり、読み出し、書き込みに数サイクルかかってしまい、処理が遅くなるが、周辺情報をレジスタに保持することにより、復号時に必要な一連の処理、すなわち、周辺情報の読み出し、コンテクストの推定、算術符号の復号、周辺情報の更新を同一サイクルで行うことができ、1画素の復号を1サイクルで処理することが可能となり、復号処理の高速化を図ることができる。 As described above, according to the present embodiment, since the peripheral information necessary for estimating the context of each coefficient is held in the register, the peripheral information is read at high speed, the context is estimated, and the arithmetic decoding unit Can be given to. Further, the peripheral information held in the register can be updated in the same cycle as the arithmetic decoding by using the calculation result by the arithmetic decoding. When peripheral information is held in a memory such as SRAM, addressing is required, and it takes several cycles to read and write, which slows down processing. However, by holding peripheral information in a register, a series of processes necessary for decoding is performed. That is, reading of peripheral information, estimation of context, decoding of arithmetic code, and updating of peripheral information can be performed in the same cycle, and decoding of one pixel can be processed in one cycle, thereby speeding up decoding processing. Can be achieved.
実施の形態2
図13は、実施の形態2に係る画像復号装置におけるエントロピー復号部12の構成図である。本実施の形態の画像復号装置は、実施の形態1の画像復号装置100とエントロピー復号部12の構成だけが異なり、他の構成は同じである。
FIG. 13 is a configuration diagram of the
本実施の形態のエントロピー復号部12では、コンテクスト推定部22によりあらかじめ計算されたコンテクストラベルCXを保持するためのコンテクストレジスタ23がコンテクスト推定部22の後段に設けられる。
In the
周辺情報レジスタ群20には、算術復号部24による符号化データCDを復号した結果得られたデシジョンDがフィードバックされて、各レジスタに保持される内容が適宜更新され、コンテクスト推定部22は、次のコンテクストの推定のために、更新された周辺情報レジスタ群20を参照する。本実施の形態では、コンテクスト推定部22は、さらに、周辺情報レジスタ群20を介さずに、直接、算術復号部24からのデシジョンDの値を受け取ることで、次のサイクルで必要になるコンテクストラベルCXを先に求め、コンテクストレジスタ23がそのコンテクストラベルCXをラッチする。算術復号部24は、コンテクストレジスタ23にラッチされたコンテクストラベルCXを受け取り、符号化データCDの復号を進める。
A decision D obtained as a result of decoding the encoded data CD by the
本実施の形態によれば、周辺情報レジスタ群20を利用した通常のコンテクストラベルCXの計算と並行して、周辺情報レジスタ群20をバイパスしてコンテクストラベルCXの計算が可能であり、算術復号部24がラッチされたコンテクストラベルCXを利用することにより、さらなる復号処理の高速化を図ることができる。
According to the present embodiment, in parallel with the calculation of the normal context label CX using the peripheral
実施の形態3
図14は、実施の形態3に係る画像復号装置におけるエントロピー復号部12の構成図である。本実施の形態の画像復号装置も、実施の形態1の画像復号装置100とエントロピー復号部12の構成だけが異なり、他の構成は同じである。
FIG. 14 is a configuration diagram of the
本実施の形態のエントロピー復号部12は、ビットプレーンのストライプを走査しながら復号する際、すべての係数を走査するのではなく、復号すべき係数の箇所を特定しながら、復号処理を進める。
The
復号位置算出部27は、周辺情報レジスタ群20に保持された周辺情報を参照して、各処理パスにおいて復号すべき係数の位置を算出する。
The decoding
図15(a)〜(c)は、復号位置算出部27による復号位置の算出手順を説明する図である。図15(a)は、縦横4ピクセルの最小処理単位60を縦方向に4画素ずつ走査して復号する順序を矢印で示したものであり、通常は、この走査順に1ピクセルずつ、周辺情報を調べて復号する。
FIGS. 15A to 15C are diagrams illustrating the decoding position calculation procedure by the decoding
Sパスでは、有意でない係数の周囲に1つでも有意である係数が存在すれば、復号を行う。ある係数に対する8個の近傍係数の情報は、他の係数の周辺情報としても一部利用できるため、すべての画素に対して、周辺情報を調べなくても、これまで得られた周辺情報から次の復号すべき係数を特定することができる。たとえば、図15(b)に示すように、左上端の斜線で示す係数50に対する8個の点線で囲んだ近傍係数52の内、符号51で示した係数が有意であったとする。このとき、たとえば斜線で示す第2の係数53に対しても8個の近傍係数54の内、少なくとも1つの係数が有意であることがわかるので、第2の係数53を復号すべき係数と判定することができる。図15(c)に、こうして復号すべきと判定された係数50、53、55を順にたどって復号する様子を示す。
In the S pass, if any significant coefficient exists around a non-significant coefficient, decoding is performed. Information on eight neighboring coefficients for a certain coefficient can be used in part as peripheral information for other coefficients. Therefore, the next information can be obtained from the peripheral information obtained so far without checking the peripheral information for all pixels. The coefficient to be decoded can be specified. For example, as shown in FIG. 15B, it is assumed that the coefficient indicated by
周辺情報読取部28は、復号位置算出部27で指定された位置に対する周辺情報を周辺情報レジスタ群20から読み取り、コンテクスト推定部22に与える。算術復号部24によるデシジョンDは、復号位置算出部27により決められた位置Lにもとづいて、画像バッファ26に格納される。画像バッファ26に書き出された復号後のウェーブレット変換係数は逆量子化部14に出力される。画像バッファ26は、コードブロック単位もしくはストライプ単位などの所定の単位の復号が終わると、次の復号単位の結果を格納する前にリセットされる。
The peripheral
本実施の形態によれば、周辺情報レジスタ群20の内容を参照することで、各処理パスにおいて次に復号すべき係数を特定し、復号の必要のない係数の処理をスキップすることができるため、復号処理のさらなる高速化を図ることができる。
According to the present embodiment, by referring to the contents of the peripheral
実施の形態4
図16は、実施の形態4に係る画像復号装置におけるエントロピー復号部12の構成図である。本実施の形態の画像復号装置も、実施の形態1の画像復号装置100とエントロピー復号部12の構成だけが異なり、他の構成は同じである。
FIG. 16 is a configuration diagram of the
本実施の形態では、2つのコンテクスト推定部22a、22bと、2つの算術復号部24a、24bとを設け、2画素を並列に復号する。第1のコンテクスト推定部22aが第1画素についてのコンテクストラベルCX1を推定し、そのコンテクストラベルCX1にもとづいて、第1の算術復号部24aが第1画素についての復号処理を行い、第1のデシジョンD1を出力する。一方、第2のコンテクスト推定部22bが第2画素についてのコンテクストラベルCX2を推定し、そのコンテクストラベルCX2にもとづいて、第2の算術復号部24bが第2画素についての復号処理を行い、第2のデシジョンD2を出力する。
In the present embodiment, two
更新判定部25は、第1の算術復号部24aの第1のデシジョンD1の値により、第1の算術復号部24aによる復号結果によって第2の算術復号部24bに入力された情報を更新する必要があるかどうかを判定し、その必要があれば、第1の算術復号部24aによる復号結果を第2の算術復号部24bに与える。また、第1、第2の算術復号部24a、bは互いに確率推定値を交換し、算術復号の精度を向上させる。
The
第1、第2の算術復号部24a、24bによる第1、第2のデシジョンD1、D2はともに周辺情報レジスタ群20にフィードバックされて、各レジスタの保持された情報が更新される。
Both the first and second decisions D1 and D2 by the first and second
なお、本実施の形態において、第1、第2のコンテクスト推定部22a、22bの後段に第2の実施の形態と同様にコンテクストレジスタ23a、23bをさらに設け、コンテクストラベルCX1、CX2をラッチするように構成してもよい。
In the present embodiment, context registers 23a and 23b are further provided in the subsequent stage of the first and second
実施の形態5
図17は、実施の形態5に係る画像復号装置におけるエントロピー復号部12の構成図である。本実施の形態の画像復号装置も、実施の形態1の画像復号装置100とエントロピー復号部12の構成だけが異なり、他の構成は同じである。
FIG. 17 is a configuration diagram of the
本実施の形態は、図14で示した第3の実施の形態のエントロピー復号部12において、2画素の並列復号が可能なように構成を変更したものであり、2つの周辺情報読取部28a、28bと、2つのコンテクスト推定部22a、22bと、2つの算術復号部24a、24bとが設けられる。
In the present embodiment, the
復号位置算出部27は、実施の形態3で説明した方法で、周辺情報レジスタ群20に保持された周辺情報を参照して、各処理パスにおいて復号すべき係数の位置を算出するが、本実施の形態では、並列化のために、復号すべき係数を2箇所求め、その位置L1、L2をそれぞれ、第1、第2の周辺情報読取部28a、28bに与える。第1、第2の周辺情報読取部28a、28bは、それぞれ復号位置算出部27で指定された位置L1、L2に対する周辺情報を周辺情報レジスタ群20から読み取り、第1、第2のコンテクスト推定部22a、22bに与える。
The decoding
以降、第1、第2のコンテクスト推定部22a、22b、第1、第2の算術復号部24a、24b、および更新判定部25による2画素の並列復号動作については、実施の形態4と同じである。
Thereafter, the parallel decoding operation of two pixels by the first and second
画像バッファ26には、復号位置算出部27から与えられる位置L1、L2にもとづいて第1、第2の算術復号部24a、24bから出力される第1、第2のデシジョンD1、D2が格納される。
The
なお、本実施の形態において、第1、第2のコンテクスト推定部22a、22bの後段に第2の実施の形態と同様にコンテクストレジスタ23a、23bをさらに設け、コンテクストラベルCXをラッチするように構成してもよい。
Note that, in the present embodiment, context registers 23a and 23b are further provided in the subsequent stage of the first and second
実施の形態6
図18は、実施の形態6に係る画像復号装置におけるストリーム解析部10およびエントロピー復号部40の構成図である。本実施の形態の画像復号装置は、実施の形態1の画像復号装置100とストリーム解析部10およびエントロピー復号部12の構成が異なり、他の構成は同じである。
FIG. 18 is a configuration diagram of the
本実施の形態のエントロピー復号部12は、処理パス単位の並列化を行うものであり、Sパス、Rパス、Cパスの各処理パス単位の並列化のために、S、R、Cパス復号部12S、Rパス復号部12R、およびCパス復号部12Cが含まれる。
The
ストリーム解析部10は、符号化画像バッファ102、ヘッダ情報解析部104、アドレス計算部106、および符号化画像データ入力I/F108を含む。符号化画像バッファ102は、入力される符号化画像データを一時記憶する。SDRAM等で構成される。JPEG2000の符号化画像データは、パケット単位で入力される。
The
図19(a)、(b)は、JPEG2000のファイル構造の例を示す図である。各ファイル構造には、画像サイズを指定したり量子化の単位を指定したりするマーカが付される。図19(a)は、マーカにPPM(Packet packet header,main header)が付された構造であり、図19(b)は、PPMが付されない構造である。図19(a)は、PPMの後に、全パケットのヘッダが記述され、その後に全パケットのデータが記述される。図19(b)は、マーカの後に、第1パケットのヘッダおよびデータ、第2パケットのヘッダおよびデータというように記述されていく。後ろにいくにしたがって、解像度が上がっていく。パケットのヘッダには、少なくとも符号化パスの数、符号化画像データの長さ、即ち符号終端処理がされるまでの長さを記述することができる。 FIGS. 19A and 19B are diagrams illustrating an example of a JPEG2000 file structure. Each file structure is provided with a marker that designates an image size or a unit of quantization. FIG. 19A shows a structure in which PPM (Packet packet header, main header) is attached to the marker, and FIG. 19B shows a structure in which no PPM is attached. In FIG. 19A, the headers of all packets are described after PPM, and the data of all packets are described thereafter. In FIG. 19B, the header and data of the first packet and the header and data of the second packet are described after the marker. The resolution goes up as you go back. In the header of the packet, at least the number of encoding passes, the length of encoded image data, that is, the length until the code termination process is performed can be described.
ここで、COD(Coding style default)マーカには、各符号化パスごとに独立して符号化されたか否かが記述されている。即ち、画像符号装置の算術符号化器で算術符号化を行う際、パス境界のコンテクストリセットが行われたか否か、換言すれば、当該算術符号化器のインデックス、シンボルが初期化されたか否かが記述されている。このように、JPEG2000では、各符号化パスの算術符号化が終わると、算術符号化のデータをフラッシュして、次の符号化に備えてパラメータをリセットする計算方法と、各符号化パスの算術符号化データをフラッシュせずに、次の符号化にパラメータを引き継ぐ計算方法とがあり、いずれかを選択可能である。 Here, a COD (Coding style default) marker describes whether or not each coding pass has been independently coded. That is, when performing arithmetic encoding with the arithmetic encoder of the image encoder, whether or not the context reset of the path boundary has been performed, in other words, whether or not the index and symbol of the arithmetic encoder have been initialized. Is described. As described above, in JPEG2000, after the arithmetic coding of each coding pass is finished, the arithmetic coding data is flushed and the parameter is reset in preparation for the next coding, and the arithmetic of each coding pass. There is a calculation method in which parameters are transferred to the next encoding without flushing the encoded data, and either one can be selected.
また、CODマーカには、各パスにおいて、終端処理がなされた否かも記述されている。終端処理がなされると、各パスごとにバイトスタッフィングされるため、各パスの符号化ストームの先頭を容易に見つけることができる。また、パケットのヘッダに各パスの符号バイト数を記載することができる。 The COD marker also describes whether or not termination processing has been performed in each path. When termination processing is performed, byte stuffing is performed for each path, so that the head of the encoding storm of each path can be easily found. In addition, the number of code bytes of each path can be described in the packet header.
図20は、ヘッダ情報解析部104の動作を示すフローチャートである。まず、ヘッダ情報解析部104は、符号化画像バッファ102に一時記憶されている符号化画像データのCODマーカを読み出して、解読する(S10)。そして、CODマーカに記述されている各符号化パスの独立性の可否を判断する(S12)。各符号化パスが独立に符号化されていない場合(S12のN)、各符号化パスごとに並列して処理することができないので、逐次的復号化処理を選択する(S18)。
FIG. 20 is a flowchart showing the operation of the header
各符号化パスが独立に符号化されている場合(S12のY)、各符号化パスごとに終端処理がなされており、各符号化パスの符号化ストリームの符号量が判別するか否かを判断する(S14)。各符号化パスの符号化ストリームの符号量が判別しない場合(S14のN)、2個目以降の符号化パスの符号化ストリームの先頭にアクセスすることができないので、逐次的復号化処理を選択する(S18)。各符号化パスの符号化ストリームの符号量が判別する場合(S14のY)、2個目以降の符号化パスの符号化ストリームの先頭にアクセスすることができるので、3パス並列復号化処理を選択する(S16)。 When each coding pass is coded independently (Y in S12), termination processing is performed for each coding pass, and it is determined whether or not the code amount of the coded stream of each coding pass is determined. Judgment is made (S14). When the code amount of the encoded stream of each encoding pass is not discriminated (N in S14), the head of the encoded stream of the second and subsequent encoding passes cannot be accessed, so the sequential decoding process is selected. (S18). When the code amount of the encoded stream of each encoding pass is determined (Y in S14), since the head of the encoded stream of the second and subsequent encoding passes can be accessed, the 3-pass parallel decoding process is performed. Select (S16).
再び、図18に戻り、ヘッダ情報解析部104は、CODマーカの解読の結果、3パス並列復号化処理を選択した場合、パケットヘッダを解読して、パケットデータの先頭アドレスおよび各符号化パスの符号化ストリームの符号量を取得する。そして、パケットデータの先頭アドレス、各符号化パスの符号化ストリームの符号量、即ちSパスの符号化ストリームの符号量Ln、Rパスの符号化ストリームの符号量LnおよびCパスの符号化ストリームの符号量Lnを各ビットプレーンごとにアドレス計算部106に渡していく。これと共に、ヘッダ情報解析部104は、符号化画像データ入力I/F108、S、R、Cパス復号部12S、Rパス復号部12R、Cパス復号部12C、および符号化画像データ出力I/F122に、3パス並列復号化処理モードを選択することを伝える制御信号を送る。
Returning to FIG. 18 again, if the header
アドレス計算部106は、最初のビットプレーンがCパスのみであるから、まずC0パスの符号化ストリームの符号化画像バッファ102内における先頭アドレスAD(C0)を特定する。これは、パケットデータの先頭アドレスであり、ヘッダ情報解析部104から渡されたものである。次に、S1パスの符号化ストリームの先頭アドレスAD(S1)は、C0パスの符号化ストリームの先頭アドレスAD(C0)にこのC0パスの符号化ストリームの符号量Lnを足したアドレスとなる。この符号量Lnはヘッダ情報解析部104から渡されたものである。次に、R1パスの符号化ストリームの先頭アドレスAD(R1)は、S1パスの符号化ストリームの先頭アドレスAD(S1)にこのR1パスの符号化ストリームの符号量Lnを足したアドレスとなる。このように、各符号化パスの符号化ストリームの先頭アドレスは、その前の符号化パスの符号化ストリームの先頭アドレスにこの符号化パスの符号化ストリームの符号量Lnを足してやれば、算出することができる。
Since the first bit plane is only the C path, the address calculation unit 106 first specifies the head address AD (C0) in the encoded
符号化画像データ入力I/F108は、アドレス計算部106から指定された各符号化パスの符号化ストリームの先頭アドレスをもとに、符号化画像バッファ102から各符号化パスの符号化ストリームを取り出し、対応するS、R、Cパス復号部12S、Rパス復号部12RおよびCパス復号部12Cに出力する。S、R、Cパス復号部12Sは、Sパスを専用に復号処理し、それと並行して、Rパス復号部12RがRパス、Cパス復号部12CがCパスを専用に復号処理することで各パスが並列に復号処理される。符号化画像データ出力I/F122は、S、R、Cパス復号部12S、Rパス復号部12RおよびCパス復号部12Cから各々出力されるデシジョンDの値を組み立てて、逆量子化部14に出力する。
The encoded image data input I /
次に、ヘッダ情報解析部104は、CODマーカの解読の結果、逐次復号化処理を選択した場合、パケットデータの先頭アドレスを取得し、アドレス計算部106に渡す。これと共に、ヘッダ情報解析部104は、符号化画像データ入力I/F108、S、R、Cパス復号部12S、Rパス復号部12R、Cパス復号部12C、および符号化画像データ出力I/F122に、逐次復号化処理モードを選択することを伝える制御信号を送る。Rパス復号部12RおよびCパス復号部12Cは、この制御信号を受けると、動作を停止する。これにより、省電力化を図ることができる。
Next, when the sequential decoding process is selected as a result of decoding the COD marker, the header
アドレス計算部106は、取得したパケットデータの先頭アドレスを特定し、符号化画像データ入力I/F108に渡す。符号化画像データ入力I/F108は、アドレス計算部106から指定されたパケットデータの先頭アドレスをもとに、符号化画像バッファ102から最初の符号化パスの符号化ストリームを取り出し、Sパス、Rパス、Cパスの各符号化ストリームを順次、S、R、Cパス復号部12Sに出力する。S、R、Cパス復号部12Sは、入力されてくるパスの順に各パスを順次復号処理する。符号化画像データ出力I/F122は、S、R、Cパス復号部12Sから出力されるデシジョンDを逆量子化部14に出力する。
The address calculation unit 106 identifies the start address of the acquired packet data and passes it to the encoded image data input I /
図21(a)、(b)は、各パスの符号化ストリームの復号タイミングを示すタイミングチャートである。図21(a)は、逐次復号化処理モードの復号タイミングを示す。S、R、Cパス復号部12Sは、最初のビットプレーンのC0パスの符号化ストリームを復号化した後、その下のビットプレーンの符号化ストリームをSパス、Rパス、Cパスの順で復号化していく。 FIGS. 21A and 21B are timing charts showing the decoding timing of the encoded stream of each pass. FIG. 21A shows the decoding timing in the sequential decoding processing mode. The S, R, C path decoding unit 12S decodes the C0 pass encoded stream of the first bit plane, and then decodes the lower bit plane encoded stream in the order of the S pass, R pass, and C pass. It will become.
図21(b)は、3パス並列復号化処理モードの復号タイミングを示す。まず、Cパス復号部12Cが最初のビットプレーンのCパスの符号化ストリームを復号化する。以後、S、R、Cパス復号部12S、Rパス復号部12RおよびCパス復号部12Cは、その下のビットプレーンのSパス、Rパス、Cパスの符号化ストリームを並列して、復号化していく。図21(b)は、ビットプレーン7枚の例を示しており、7枚目ビットプレーンのCパスの符号化ストリームを復号化すると、1つのコードブロックの復号化処理が終了し、次のコードブロックのビットプレーンの復号化を開始する。このように、図21(a),(b)を参照すると、3パス並列復号化処理モードは、逐次復号化処理モードより、復号化処理を高速に行うことができる。
FIG. 21B shows the decoding timing in the 3-pass parallel decoding processing mode. First, the C
図22は、実施の形態5に示した2つのビットプレーンの並列復号が可能な構成にした場合の各パスの符号化ストリームの復号タイミングを示すタイミングチャートである。当該構成は、図18のS、R、Cパス復号部12S、Rパス復号部12RおよびCパス復号部12Cを2個ずつ設ける。符号化画像データ入力I/F108は、各組のS、R、Cパス復号部12S、Rパス復号部12RおよびCパス復号部12Cに、対応するパスの符号化ストリームをビットプレーン1枚おきに渡す。この構成の詳細は、後述する。
FIG. 22 is a timing chart showing the decoding timing of the encoded stream of each pass in the case where the configuration capable of parallel decoding of the two bit planes shown in the fifth embodiment is adopted. In this configuration, two S, R, and C path decoding units 12S, two R
図22において、1つの組のS、R、Cパス復号部12S、Rパス復号部12RおよびCパス復号部12Cが上3つのS、R、Cパスの符号化ストリームを復号化し、もう1つの組のS、R、Cパス復号部12S、Rパス復号部12RおよびCパス復号部12Cが下3つのS、R、Cパスの符号化ストリームを復号化する。このように、図21(b)と図22とを参照すると、同じ3パス並列復号化処理モードでも、2組のS、R、Cパス復号部12S、Rパス復号部12RおよびCパス復号部12Cで処理するほうが、高速化することが分かる。
In FIG. 22, one set of S, R, C path decoding unit 12S, R
以上説明したように、本実施の形態によれば、各パスが独立して符号化された符号化画像ストリームを復号化する際に、各パスの復号部12S、12R、12Cが並列して復号化することにより、復号化処理を高速化することができる。また、すべてのパスの符号化ストリームを復号化することができるS、R、Cパス復号部12Sを備えることにより、各パスが独立して符号化されていない符号化画像ストリームにも対応することができ、汎用性が高い。
As described above, according to the present embodiment, when the encoded image stream in which each path is independently encoded is decoded, the
実施の形態7
図23は、実施の形態7に係る画像復号装置におけるエントロピー復号部40の構成図である。本実施の形態の画像復号装置は、実施の形態1の画像復号装置100のエントロピー復号部12の構成を同図のエントロピー復号部40に置き換えたものであり、他の構成は実施の形態1の画像復号装置100と同じである。
FIG. 23 is a configuration diagram of the
本実施の形態のエントロピー復号部40は、ビットプレーン単位および処理パス単位の並列化を行うものであり、ビットプレーン単位の並列化のために、第1ビットプレーン復号部30aと第2ビットプレーン復号部30bが設けられる。また、Sパス、Rパス、Cパスの各処理パス単位の並列化のために、第1ビットプレーン復号部30a、第2ビットプレーン復号部30bの内部には、S、R、Cパス復号部12S、Rパス復号部12R、およびCパス復号部12Cが含まれる。
The
入力された符号化画像が、各パスの符号化ストリームのバイト数をヘッダに指定したフォーマットである場合、ストリーム解析部10が、各パス毎に符号化ストリームを抽出して、パス単位の並列処理が可能である。この場合、ストリーム解析部10から、Sパス、Rパス、Cパスの符号化ストリームがそれぞれ、S、R、Cパス復号部12S、Rパス復号部12R、Cパス復号部12Cに与えられて復号処理される。S、R、Cパス復号部12Sは、Sパスを専用に復号処理し、それと並行して、Rパス復号部12RがRパス、Cパス復号部12CがCパスを専用に復号処理することで各パスが並列に復号処理される。
When the input encoded image has a format in which the number of bytes of the encoded stream of each pass is specified in the header, the
符号化画像のヘッダに各パスの符号化ストリームのバイト数が指定されていない場合は、各パスの区切りがわからないため、パス単位の並列処理を行うことはできない。パス単位の並列処理ができない場合、ストリーム解析部10は、Sパス、Rパス、Cパスの各符号化ストリームを順次S、R、Cパス復号部12Sに与え、S、R、Cパス復号部12Sは、Sパス、Rパス、Cパスの順に各パスを順次復号処理する。このとき、Rパス復号部12RおよびCパス復号部12Cは動作しない。この動作の詳細は、実施の形態6で既に説明した。
If the number of bytes of the encoded stream of each pass is not specified in the header of the encoded image, the path delimiter cannot be known, so that parallel processing in units of passes cannot be performed. When parallel processing in units of paths cannot be performed, the
これらの各パス用の復号部12S、12R、12Cは、それぞれ実施の形態1〜5のいずれのエントロピー復号部12の構成であってもよいが、ここでは、説明の簡単のため、実施の形態1のエントロピー復号部12の構成を複数含む形態を説明する。
Each of the
第1ビットプレーン復号部30aの各パス用の復号部12S、12R、12Cは、それぞれコンテクスト推定部22と算術復号部24を含み、コンテクスト推定部22は、周辺情報レジスタ群20から周辺情報を読み出し、コンテクストラベルを計算して、算術復号部24に与える。算術復号部24はコンテクストラベルにもとづいて、各パスの符号化データを復号して、第1のデータレジスタ32aに書き込む。
The
第2ビットプレーン復号部30bについても同様であり、同一の周辺情報レジスタ群20を共用して、第2ビットプレーンの各パスの復号を並列に行い、第2のデータレジスタ32bに結果を出力する。なお、第1ビットプレーン復号部30aについては実線でデータの流れを図示し、第2ビットプレーン復号部30bについては点線でデータの流れを図示している。
The same applies to the second bit plane decoding unit 30b. The same peripheral
周辺情報レジスタ群20の5種類のレジスタの内、第5レジスタはコードブロック内の係数の正負の符号を示すSignプレーンである。データ出力部34は、第1ビットプレーン復号部30aによる第1ビットプレーンの復号結果を第1のデータレジスタ32aから読み取り、第2ビットプレーン復号部30bによる第2ビットプレーンの復号結果を第2のデータレジスタ32bから読み取り、さらに、周辺情報レジスタ群20のSignプレーンから係数の正負の符号を示す極性データを読み取り、最終的にSignプレーンと、MSBからLSBまでのプレーンからなる復号されたコードブロック36の形で復号結果を出力する。
Of the five types of registers in the peripheral
本実施の形態では、周辺情報レジスタ群20が2枚のビットプレーンで共有され、さらに各ビットプレーン内の各処理パスによっても共有される。そのため、周辺情報レジスタ群20の構成が、実施の形態1〜5とは一部異なる。以下、周辺情報レジスタ群20の構成と並列動作について詳しく説明する。
In this embodiment, the peripheral
図24は、ビットプレーンの各ストライプにおける縦横4ピクセル、合計16ピクセルの最小処理単位60とその周囲の隣接ピクセル群を示す図である。この最小処理単位60は、周辺情報レジスタ群20の各レジスタから周辺情報を読み出す単位であり、各レジスタ列のレジスタブロックに相当する。実施の形態1で既に説明したように、Sパスでは、処理対象の係数に対して周囲の8個の近傍係数の有意性状態の情報が必要である。そのため、縦横4ピクセルの領域について1ピクセル毎に復号処理を行う際、斜線で示した隣接ピクセルについて周辺情報が必要となる。
FIG. 24 is a diagram illustrating a
上下の6ピクセルずつの隣接ピクセル群62、64は、当該ストライプにはなく、上下のストライプに位置する。また、左右に4ピクセルずつの隣接ピクセル群61、63は、同一のストライプにおいて隣のレジスタブロックの位置にある。
The
図25は、図24の最小処理単位60の周囲の隣接ピクセル群61〜64のレジスタ上の対応する位置を説明する図である。ある時刻において、ストライプ2がRパスの処理対象、ストライプ3がSパスの処理対象、ストライプ4が前のビットプレーンのCパスの処理対象であるとする。
FIG. 25 is a diagram illustrating the corresponding positions on the register of the
Rパスでは、ストライプ2について、現在、左端に位置するレジスタブロックR22から周辺情報を読み出して復号処理を行っている。Sパスでは、ストライプ3について、現在、左端に位置するレジスタブロックR34から周辺情報を読み出して復号処理を行っている。Cパスでは、ストライプ4について、現在、左端に位置するレジスタブロックR46から周辺情報を読み出して復号処理を行っている。このように、処理パス単位の並列処理では、各処理パスの復号箇所は、周辺情報の更新の影響を避ける目的で、水平方向に最低2ブロックずれるように制御される。
In the R path, the peripheral information is read from the register block R22 currently located at the left end and the decoding process is performed on the
いま、Sパスがストライプ3の復号処理において参照しているレジスタブロックR34に注目すると、最小処理単位60は、このレジスタブロックR34の位置にある。一方、上下の6ピクセルずつの隣接ピクセル群62、64は、それぞれストライプ2のレジスタブロックR24、ストライプ4のレジスタブロックR44の位置にある。また、左右の4ピクセルずつの隣接ピクセル群61、63は、それぞれストライプ3のレジスタブロックR33、R35の位置にある。Sパスの処理を行うためには、これらの隣接ピクセル群61〜64の周辺情報をそれぞれの位置のレジスタブロックから取り出す必要がある。
When attention is paid to the register block R34 that the S path refers to in the decoding process of the
図26は、周辺情報レジスタ群20の第1、第5レジスタの構成を説明する図である。実施の形態1の周辺情報レジスタ群20の各レジスタと同様に、ビットプレーンのストライプに対応したレジスタ列が並んでおり、各レジスタ列は、リングバッファのように4ビットずつ独立にリング上にシフトして左端から読み出しと書き込みが可能である。本実施の形態では、第1、第5レジスタに限り、左端の各レジスタブロックR00、R10、…、R70の4ビット、右隣のレジスタブロックR01、R11、…、R71の左側1ビット、および論理的に左隣(実際には右端)の各レジスタブロックR07、R17、…、R77の右側1ビットの合計6ビットが出力される。
FIG. 26 is a diagram for explaining the configuration of the first and fifth registers of the peripheral
さらに、第1、第5レジスタに限り、ストライプ1〜7に対応する各レジスタ列内の全レジスタブロックを横断する上端1ビット列は、それぞれシフタ71〜77に入力されて保持される。ストライプ0〜6に対応する各レジスタ列内の全レジスタブロックを横断する下端1ビット列は、それぞれシフタ80〜86に入力されて保持される。各シフタ71〜77、80〜86は、入力が32ビットで、出力が6ビットであり、シフト量の指示を与えることで、図25で説明した上下の6ピクセルずつの隣接ピクセルが出力される。このように第1、第5レジスタでは、上下の隣接ピクセルの読み出しのために、合計14個のシフタ71〜77、80〜86が設けられる。
Further, only in the first and fifth registers, the upper-
なお、周辺情報レジスタ群20の内、第2、3、4のレジスタについては、隣接ピクセルの情報の読み出しを必要としないので、実施の形態1のレジスタと同じ構成でよい。また、実施の形態1では、パス単位の並列化を行っていないので、各ストライプでパス処理をずらす必要がないため、実施の形態1では、第1、第5のレジスタについても、シフタの構成が不要であった点に留意する。
Note that the second, third, and fourth registers in the peripheral
再び、図25を参照して、上下の隣接ピクセルをシフタで取り出すためにシフタに与えるシフト量を説明する。下側の隣接ピクセル44を取り出すためのシフト量は、Cパスで現在参照しているレジスタブロックR46の水平位置すなわち6から、Sパスが現在参照しているレジスタブロックR34の水平位置すなわち4を引くことにより求められ、シフト量は2である。コンテクスト推定部22は、図21のストライプ4に対応するレジスタ列の上側のシフタ74に対してシフト量2を与えることで、シフタの保持する32ビットの情報を右へ2ブロック分だけシフトさせて、この隣接ピクセル44の周辺情報を取り出すことができる。
Again, referring to FIG. 25, the shift amount given to the shifter in order to extract the upper and lower adjacent pixels by the shifter will be described. The shift amount for extracting the lower
同様に、上側の隣接ピクセル42を取り出すためのシフト量は、Rパスで現在参照しているレジスタブロックR22の水平位置すなわち2から、Sパスが現在参照しているレジスタブロックR34の水平位置すなわち4を引くことにより求められ、シフト量は−2である。コンテクスト推定部22は、図21のストライプ2の下側のシフタ82に対してシフト量−2を与えることで、シフタの保持する32ビットの情報を左へ2ブロック分だけシフトさせて、この隣接ピクセル42の周辺情報を取り出すことができる。
Similarly, the shift amount for extracting the upper
図27は、周辺情報レジスタ群20を共有してビットプレーン単位およびパス単位で並列処理を行う様子を説明する図である。同図は、ある時刻において、ストライプ7では、前のビットプレーンのCパスが処理され、ストライプ6、5、4では、それぞれ現ビットプレーンのSパス、Rパス、Cパスがそれぞれ処理され、ストライプ3、2、1では、それぞれ次のビットプレーン(ここでは、最下位のビットプレーン)のSパス、Rパス、Cパスがそれぞれ処理され、ストライプ0では、次のコードブロックの最初のCパスが処理されている状態を示している。それぞれの処理パスで参照されているレジスタブロックを斜線で示している。実際には、斜線を付したレジスタブロックが左端に位置しているが、ここでは説明の便宜上、各レジスタ列のレジスタブロックをシフトさせないで、参照されるレジスタブロックの位置の方をずらして図示している。
FIG. 27 is a diagram illustrating a state in which the peripheral
パス単位の並列化を行う際、第1、第5レジスタでは隣接ピクセルが重なり合う可能性があり、隣接ピクセルが重なった場合、周辺情報の更新により影響を及ぼし合う。そこで、隣接ピクセルが重ならないように、上下のストライプで、各処理パスが参照するレジスタブロックが水平方向に2だけずれるように制御する。 When parallelization is performed in units of paths, adjacent pixels may overlap in the first and fifth registers. If adjacent pixels overlap, there is an influence by updating peripheral information. Therefore, control is performed so that the register block referred to by each processing path is shifted by 2 in the horizontal direction in the upper and lower stripes so that adjacent pixels do not overlap.
たとえば、ストライプ6でSパスが参照するレジスタブロックR66の水平位置と、ストライプ5でRパスが参照するレジスタブロックR54の水平位置は、2ブロック分ずれている。このように2ブロックだけずらしておけば、上下の隣接ピクセルは重なりをもたないため、周辺情報が更新されても影響を及ぼし合うことがない。
For example, the horizontal position of the register block R66 referenced by the S path in the
パス単位の並列化では、自分の処理パスの復号位置が前のパスの復号位置と水平方向に少なくとも2ブロック分ずれるように制御する。このため、上下のストライプで復号位置の差が2ブロックよりも小さくなる場合は、当該処理パスを停止し、少なくとも2ブロックだけずれたタイミングで動作を再開するように制御するタイミング制御部が設けられる。 In parallel processing in units of paths, control is performed so that the decoding position of its own processing path is shifted by at least two blocks in the horizontal direction from the decoding position of the previous path. For this reason, when the difference between the decoding positions in the upper and lower stripes is smaller than two blocks, a timing control unit is provided for controlling the processing path to stop and restart the operation at a timing shifted by at least two blocks. .
図28は、各処理パスの復号開始タイミング制御を説明するタイミングチャートである。第1ビットプレーン復号部30a(以下、BP0と略す)による各処理パスのストライプの処理タイミングと、第2ビットプレーン復号部30b(以下、BP1と略す)による各処理パスのストライプの処理タイミングとが示されている。 FIG. 28 is a timing chart illustrating decoding start timing control for each processing path. The stripe processing timing of each processing path by the first bit plane decoding unit 30a (hereinafter abbreviated as BP0) and the stripe processing timing of each processing path by the second bit plane decoding unit 30b (hereinafter abbreviated as BP1). It is shown.
時刻t1において、MSBプレーンに対してBP0によるCパスの処理が開始される。st0〜st7はそれぞれストライプ0〜7の処理タイミングを図示したものである。時刻t2において、2番目のプレーンにおいてBP1によるSパスの処理が開始される。ここで、BP1によるSパス処理がストライプ0の復号を開始する時刻t2は、BP0によるCパス処理がストライプ1に進み、参照するレジスタブロックの位置が2ブロックだけ離れたときである。このタイミング制御を図29を用いて説明する。
At time t1, C path processing by BP0 is started for the MSB plane. st0 to st7 illustrate the processing timing of the
図29は、図28の復号開始タイミング制御を詳しく説明するタイミングチャートである。上段には、BP0によるCパスのストライプ0、ストライプ1の復号処理のタイミングがレジスタブロックR00〜R07、R10〜R17の処理単位で図示されている。下段には、BP1によるSパスのストライプ0の復号処理のタイミングがレジスタブロックR00〜R07の処理単位で図示されている。
FIG. 29 is a timing chart for explaining in detail the decoding start timing control of FIG. In the upper part, the timing of decoding processing of
BP0によるCパス処理がストライプ1の3番目のレジスタブロックR12の位置まで進んだ時点t2において、BP1によるSパス処理がストライプ0の最初のレジスタブロックR00の位置で開始する。このとき、ストライプ1とストライプ0で各パスの復号位置が2ブロック分ずれているため、隣接ピクセルの重なりは生じない。以降、2ブロック分だけずれた状態で、ストライプ1についてはBP0によるCパス処理、ストライプ0についてはBP1によるSパス処理が進む。
At the time point t2 when the C pass processing by BP0 has advanced to the position of the third register block R12 of the
時刻t7において、BP1によるSパス処理では、ストライプ0の2番目のレジスタブロックR01の位置の復号処理が終了するが、BP0によるCパス処理では、ストライプ1の4番目のレジスタブロックR13の位置の復号処理に時間がかかり、まだ終了していない。このとき、BP1によるストライプ0のSパス処理は一旦停止する。
At time t7, the decoding process of the position of the second register block R01 in
時刻t8において、BP0によるCパス処理でストライプ1の4番目のレジスタブロックR13の位置の復号処理が終了すると、BP1によるストライプ0のSパス処理が再開し、3番目のレジスタブロックR02の位置の復号処理を開始する。このとき、BP0によるストライプ1のCパス処理は5番目のレジスタブロックR14の位置の復号処理を始める。この動作タイミング制御により、ストライプ1についてのCパス処理、ストライプ0についてのSパス処理は2ブロック分だけずれた状態が保持される。
At time t8, when the decoding process of the position of the fourth register block R13 of
再び、図28に戻り、時刻t3において、BP1によるRパスが2番目のプレーンのストライプ0の復号を開始する。ここで、BP1によるRパス処理がストライプ0の復号を開始する時刻t3は、BP1によるSパス処理がストライプ1に進み、参照するレジスタブロックの位置が2ブロックだけ離れたときである。このタイミング制御は図29と同じである。以下、同様にして、時刻t4において、BP1によるCパス処理がストライプ0の復号を開始する。
Returning to FIG. 28 again, at time t3, the R path by BP1 starts decoding the
さらに、BP1によるCパス処理がストライプ1に進み、参照するレジスタブロックの位置が2ブロックだけ進んだ時点t5において、BP0によるSパス処理が3番目のプレーンのストライプ0の復号を開始する。同様にして、時刻t6では、BP0によるRパス処理がストライプ0の復号を開始する。
Further, at time t5 when the C path processing by BP1 advances to
このようにして、周辺情報レジスタ群20を共有しながら、2つのビットプレーンの各パスの処理が並列に実行される。
In this way, processing of each path of the two bit planes is executed in parallel while sharing the peripheral
図30は、コードブロックの復号開始タイミング制御を説明するタイミングチャートである。上段には、BP0によるSパス、Rパス、Cパスにおける各ストライプの復号タイミングが図示されている。下段には、BP1によるSパス、Rパス、Cパスにおける各ストライプの復号タイミングが図示されている。現在のコードブロックの処理については、斜線が付されており、次のコードブロックの処理については、斜線が付されていない。 FIG. 30 is a timing chart illustrating code block decoding start timing control. The upper part shows the decoding timing of each stripe in the S pass, R pass, and C pass by BP0. The lower part shows the decoding timing of each stripe in the S pass, R pass, and C pass by BP1. The process of the current code block is hatched, and the process of the next code block is not hatched.
BP0では、現在のコードブロックのLSBプレーンについて、Sパス、Rパス、Cパスの順に処理が進み、時刻t11で当該コードブロックの最後のCパスの処理が終了している。一方、BP1では、現在のコードブロックのLSBより一つ上のプレーンについて、Sパス、Rパス、Cパスの順に処理が進み、BP0のコードブロックの復号終了時刻t11よりも早い時刻t10において当該プレーンのCパスの処理が終了している。そこで、BP0によりコードブロックの最後のパスが終了する時刻t11を待たずに、BP1によりLSBより一つ前のプレーンのCパスが終了した時点t10において、BP1によって次のコードブロックの最初のCパス処理を開始する。この動作制御により、次のコードブロックのMSBプレーンのCパス処理を早期に連続して実行することができる。 In BP0, the LSB plane of the current code block is processed in the order of the S pass, the R pass, and the C pass, and the process of the last C pass of the code block is completed at time t11. On the other hand, in BP1, processing proceeds in the order of the S pass, R pass, and C pass for the plane immediately above the LSB of the current code block, and the plane at time t10 earlier than the decoding end time t11 of the code block of BP0. The C path processing has been completed. Therefore, without waiting for the time t11 when the last pass of the code block is finished by BP0, at the time t10 when the C pass of the plane immediately before LSB is finished by BP1, the first C pass of the next code block by BP1. Start processing. By this operation control, the C path processing of the MSB plane of the next code block can be executed continuously at an early stage.
以降、BP1によるCパス処理がMSBプレーンのストライプ1まで進んでから、BP0によるSパス処理が次のプレーンのストライプ0から始まる。以降、順にBP0によるRパス処理、Cパス処理、さらに、BP1によるSパス処理、Rパス処理が始まる。各パスの処理開始タイミング制御は図28、29で既に説明した通りである。
Thereafter, after the C path processing by BP1 proceeds to
以上説明したように、本実施の形態によれば、各パスの復号部12S、12R、12Cが周辺情報レジスタ群20を共有して、1サイクルで一連の復号処理を完結できることを利用して、ビットプレーン単位およびパス単位で算術復号を並列して行うことができる。算術復号は周辺情報の更新をしながら行うため、一般には復号処理の並列化は困難であるが、本実施の形態では、周辺情報レジスタ群20の更新が算術復号と同一サイクルで行えるため、ビットプレーン単位の並列化だけでなく、パス単位の細かい並列化もできる。また、符号化画像のヘッダに各パスのバイト数の情報が含まれていない場合は、少なくともビットプレーン単位の並列化ができる。
As described above, according to the present embodiment, using the fact that the
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を以下に示す。 The present invention has been described based on the embodiments. The embodiments are exemplifications, and it will be understood by those skilled in the art that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are within the scope of the present invention. . Such a modification is shown below.
上記のいずれの実施の形態の画像復号装置も、入力された原画像をJPEG2000方式により圧縮符号化する画像符号化装置と一体化されてもよく、その場合、画像復号装置と画像符号化装置の間で、周辺情報レジスタを共用し、画像符号化装置においても復号の際と同様の周辺情報レジスタを利用する算術符号化部の構成を設けてもよい。ただし、符号化の場合は、周辺情報レジスタの内容は、原画像データからあらかじめ作成することができるため、復号時のように周辺情報レジスタの内容を演算結果によって更新する必要はない。 The image decoding apparatus according to any of the above embodiments may be integrated with an image encoding apparatus that compresses and encodes an input original image by the JPEG2000 method. In this case, the image decoding apparatus and the image encoding apparatus The peripheral information register may be shared, and the image encoding apparatus may be provided with an arithmetic encoding unit that uses the same peripheral information register as that used for decoding. However, in the case of encoding, since the contents of the peripheral information register can be created in advance from the original image data, it is not necessary to update the contents of the peripheral information register with the calculation results as in decoding.
上記の実施の形態の画像復号装置は、画像撮像ブロックと撮影した画像を算術符号化する画像符号化部を含むデジタルカメラに組み込まれ、算術符号化された画像を復号し再生するために用いられてもよい。また、上記の実施の形態の画像復号装置は監視カメラの信号処理部に組み込まれ、JPEG2000方式で符号化された監視画像の復号再生に利用されてもよい。監視カメラで撮影され、符号化された画像データがネットワーク経由で送信され、ネットワークに接続した画像復号装置が、ネットワークから受信した符号化画像データを復号して再生する構成でもよい。 The image decoding apparatus according to the above embodiment is incorporated in a digital camera including an image capturing block and an image encoding unit that arithmetically encodes a captured image, and is used to decode and reproduce the arithmetically encoded image. May be. Further, the image decoding apparatus according to the above-described embodiment may be incorporated in a signal processing unit of a surveillance camera and used for decoding and reproduction of a surveillance image encoded by the JPEG2000 system. The image data captured and encoded by the surveillance camera may be transmitted via the network, and the image decoding apparatus connected to the network may decode and reproduce the encoded image data received from the network.
実施の形態6の画像復号装置は、S、R、Cパス復号部12S、Rパス復号部12R、およびCパス復号部12Cの3つの復号部を設けていた。この点、S、R、Cパス復号部12S、Sパス復号部、Rパス復号部12R、およびCパス復号部12Cの4つの復号部を設けてもよい。このSパス復号部はSパス専用である。S、R、Cパス復号部12Sは逐次復号処理専用となる。この場合、3パス並列復号化処理が選択された場合、当該Sパス復号部、Rパス復号部12R、およびCパス復号部12Cで復号処理を行う。また、逐次的復号化処理が選択された場合、S、R、Cパス復号部12Sが単独で復号処理を行う。これによれば、3パス並列復号化処理と逐次的復号化処理との切替が容易になる。
The image decoding apparatus according to the sixth embodiment includes three decoding units, that is, an S, R, and C path decoding unit 12S, an R
10 ストリーム解析部、 12 エントロピー復号部、 14 逆量子化部、 16 ウェーブレット逆変換部、 20 周辺情報レジスタ群、 22 コンテクスト推定部、 23 コンテクストレジスタ、 24 算術復号部、 25 更新判定部、 26 画像バッファ、 27 復号位置算出部、 28 周辺情報読取部、 30a 第1ビットプレーン復号部、 30b 第2ビットプレーン復号部、 12S S、R、Cパス復号部、 12R Rパス復号部、 12C Cパス復号部、 40 エントロピー復号部、 100 画像復号装置、 102 符号化画像バッファ、 104 ヘッダ情報解析部、 106 アドレス計算部、 108 符号化画像データ入力I/F、 122 符号化画像データ出力I/F。
10 stream analysis unit, 12 entropy decoding unit, 14 inverse quantization unit, 16 wavelet inverse transformation unit, 20 peripheral information register group, 22 context estimation unit, 23 context register, 24 arithmetic decoding unit, 25 update determination unit, 26
Claims (7)
前記符号化画像データを並列に復号できるか否かを解析する解析部と、を有し、
前記解析部は、解析結果に応じて、前記第1復号部が前記符号化画像データを単独で復号するか、前記第1復号部および前記第2復号部のうちの複数の復号部が前記符号化画像データを並列に復号するか、を選択することを特徴とする画像復号装置。 Among encoded image data, a first decoding unit and one or more second decoding units having different specifications for data having a decodable property;
An analysis unit that analyzes whether the encoded image data can be decoded in parallel,
The analysis unit may be configured such that the first decoding unit independently decodes the encoded image data according to an analysis result, or a plurality of decoding units among the first decoding unit and the second decoding unit An image decoding device that selects whether to decode parallel image data in parallel.
エントロピー復号されたデータを逆量子化する逆量子化部と、
逆量子化されたデータに空間周波数逆変換を施す逆変換部と、を備え、
前記エントロピー復号ブロックは、
符号化画像データのうち、復号可能な性質のデータについて仕様が異なる第1復号部および1以上の第2復号部と、
前記符号化画像データを並列に復号できるか否かを解析する解析部と、を有し、
前記解析部は、解析結果に応じて、前記第1復号部が前記符号化画像データを単独で復号するか、前記第1復号部および前記第2復号部のうちの複数の復号部が前記符号化画像データを並列に復号するか、を選択することを特徴とする画像復号装置。 An entropy decoding block for entropy decoding the encoded image;
An inverse quantization unit for inversely quantizing the entropy decoded data;
An inverse transform unit that performs inverse spatial frequency transform on the inversely quantized data,
The entropy decoding block is:
Among encoded image data, a first decoding unit and one or more second decoding units having different specifications for data having a decodable property;
An analysis unit that analyzes whether the encoded image data can be decoded in parallel,
The analysis unit may be configured such that the first decoding unit independently decodes the encoded image data according to an analysis result, or a plurality of decoding units among the first decoding unit and the second decoding unit An image decoding device that selects whether to decode parallel image data in parallel.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004087720A JP2005277758A (en) | 2004-03-24 | 2004-03-24 | Image decoding apparatus |
US11/054,537 US7418146B2 (en) | 2004-02-10 | 2005-02-10 | Image decoding apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004087720A JP2005277758A (en) | 2004-03-24 | 2004-03-24 | Image decoding apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005277758A true JP2005277758A (en) | 2005-10-06 |
Family
ID=35176959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004087720A Withdrawn JP2005277758A (en) | 2004-02-10 | 2004-03-24 | Image decoding apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005277758A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009049630A (en) * | 2007-08-17 | 2009-03-05 | Fujitsu Electronics Inc | Arithmetic decoder and entropy decoder |
WO2009031519A1 (en) * | 2007-09-07 | 2009-03-12 | Kanazawa University | Entropy encoding/decoding method and entropy encoding/decoding device |
JP2009518917A (en) * | 2005-12-07 | 2009-05-07 | イマジネイション テクノロジーズ リミテッド | Data decoding |
-
2004
- 2004-03-24 JP JP2004087720A patent/JP2005277758A/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009518917A (en) * | 2005-12-07 | 2009-05-07 | イマジネイション テクノロジーズ リミテッド | Data decoding |
JP2009049630A (en) * | 2007-08-17 | 2009-03-05 | Fujitsu Electronics Inc | Arithmetic decoder and entropy decoder |
WO2009031519A1 (en) * | 2007-09-07 | 2009-03-12 | Kanazawa University | Entropy encoding/decoding method and entropy encoding/decoding device |
JP4771263B2 (en) * | 2007-09-07 | 2011-09-14 | 国立大学法人金沢大学 | Entropy encoding / decoding method and entropy encoding / decoding device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7418146B2 (en) | Image decoding apparatus | |
JP4878262B2 (en) | Entropy encoding device | |
US6031940A (en) | System and method for efficiently encoding video frame sequences | |
JP5606591B2 (en) | Video compression method | |
TWI436286B (en) | Method and apparatus for decoding image | |
CN111901596B (en) | Video hybrid coding and decoding method, device and medium based on deep learning | |
US20040013312A1 (en) | Moving image coding apparatus, moving image decoding apparatus, and methods therefor | |
US20110091123A1 (en) | Coding apparatus and coding method | |
WO2021056214A1 (en) | Encoding method, decoding method, encoder, decoder and storage medium | |
JP4061104B2 (en) | Memory access and skipping based on run / skip count by context model | |
US7123656B1 (en) | Systems and methods for video compression | |
Jilani et al. | JPEG image compression using FPGA with Artificial Neural Networks | |
JP2005277758A (en) | Image decoding apparatus | |
JP5842357B2 (en) | Image processing apparatus and image processing program | |
JP2001025018A (en) | Wavelet transformer, encoding/decoding device, wavelet transformation processing method and recording medium | |
US20030039400A1 (en) | Hardware context vector generator for JPEG2000 block-coding | |
JP2005229218A (en) | Image decoding apparatus | |
TWI552573B (en) | Coding of video and audio with initialization fragments | |
JP2020156106A (en) | Video encoding device and video encoding method | |
US20040179592A1 (en) | Image coding apparatus | |
CN102547275A (en) | Image decoding apparatus, image decoding method, image encoding apparatus, image encoding method, and program | |
JP2004253889A (en) | Image processing apparatus and method | |
WO2022067806A1 (en) | Video encoding and decoding methods, encoder, decoder, and storage medium | |
JP3193285B2 (en) | Coding noise reduction filter circuit | |
JP3990949B2 (en) | Image coding apparatus and image coding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061012 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080711 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20080717 |