JP2010213059A - Image encoding apparatus and image encoding method - Google Patents
Image encoding apparatus and image encoding method Download PDFInfo
- Publication number
- JP2010213059A JP2010213059A JP2009057801A JP2009057801A JP2010213059A JP 2010213059 A JP2010213059 A JP 2010213059A JP 2009057801 A JP2009057801 A JP 2009057801A JP 2009057801 A JP2009057801 A JP 2009057801A JP 2010213059 A JP2010213059 A JP 2010213059A
- Authority
- JP
- Japan
- Prior art keywords
- image
- size
- code block
- encoding
- vertical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 57
- 239000000872 buffer Substances 0.000 claims abstract description 45
- 230000015654 memory Effects 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims description 29
- 238000006243 chemical reaction Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 29
- 238000000354 decomposition reaction Methods 0.000 description 19
- 230000006835 compression Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000009466 transformation Effects 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 5
- 238000013139 quantization Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000002427 irreversible effect Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
Description
本発明は、画像をJPEG2000方式で符号化する画像符号化装置及び画像符号化方法に関するものであり、特に、画像を符号化する際に、ラインベースウェーブレット変換を用い、圧縮効率を落とさずにメモリ容量の制限の下で効率的に圧縮する画像符号化装置及び画像符号化方法に関するものである。 The present invention relates to an image encoding apparatus and an image encoding method for encoding an image using the JPEG2000 method, and in particular, when encoding an image, a line-based wavelet transform is used and a memory without reducing compression efficiency. The present invention relates to an image encoding apparatus and an image encoding method for efficiently compressing data under capacity limitations.
静止画像の圧縮方式として、従来広く用いられているJPEG(Joint Photographic Experts Group)よりも高画質、且つ多機能化の図られたJPEG2000の基本方式(part1)がISO/IEC 15444−1,ITU−T T.800で標準化されている。JPEG2000は、高圧縮率で画質向上が図られたのが特徴的で、符号量制御が容易で符号データ上の編集も可能であり、従来のJPEGに比べて機能性が高い。 As a still image compression method, the basic method (part 1) of JPEG 2000, which has higher image quality and more functions than the widely used JPEG (Joint Photographic Experts Group), is ISO / IEC 15444-1, ITU- TT 800 is standardized. JPEG2000 is characterized in that the image quality is improved at a high compression rate, the code amount control is easy, the code data can be edited, and the functionality is higher than that of the conventional JPEG.
JPEG2000符号化方式には、ウェーブレット変換が採用されている。ウェーブレット変換は、従来のJPEGで用いられている離散コサイン変換(DCT)のようなブロック単位の処理ではなく、画像全体に対して適用する周波数変換処理である。特許文献1には、ウェーブレット変換方式を利用した効果的な符号化及び復号化の方法が開示されている。ウェーブレット変換による方式を採用する際に、原画像における矩形領域に対応した各サブバンドの領域を一つの符号化単位としており、ラインバッファの容量が分解レベルで決定される。
The JPEG2000 encoding method employs wavelet transform. The wavelet transform is a frequency transform process applied to the entire image, not a block unit process such as the discrete cosine transform (DCT) used in the conventional JPEG.
ウェーブレット変換は画像全体に対して適用する周波数変換処理であるため、単純に実装すると、画像サイズの分だけの画素値もしくは変換係数を保持するためのバッファが処理過程を通して必要になってしまう。 Since the wavelet transform is a frequency transform process applied to the entire image, if it is simply implemented, a buffer for holding pixel values or transform coefficients corresponding to the image size is required throughout the process.
これに対する解決策として、非特許文献2に記されたようなラインベースウェーブレット処理方式がある。ラインベースウェーブレット処理は、ウェーブレット変換のタップ数に応じた必要最小限のバッファ(ラインメモリ)に、逐次画素値もしくは変換係数をストアして変換処理を行う手法である。ラインベースでウェーブレット変換された後、これらの係数は、同時に全てを保持するのではなく、逐次エントロピー符号化してしまうことで係数用のバッファの空きを作ることができる。そのため、これが消費メモリ量の大幅な削減の効果を生み出す。
As a solution to this, there is a line-based wavelet processing method as described in Non-Patent
また、ラインベースでウェーブレット変換を行う方法に関しては、特許文献2によっても開示されている。特許文献2によれば、ウェーブレット変換に必要なバッファが、画像全体分に相当するバッファではなく、画像の縦のサイズに依存しないライン数によるラインバッファで済むという効果があると記載されている。
A method for performing wavelet transform on a line basis is also disclosed in
しかしながら、ラインベースウェーブレットを用いた場合でも、係数バッファの保持方法、ウェーブレット変換の分解レベル、符号化を実行する単位などによって、必要なバッファ量、即ち消費メモリ量が変化することになる。また、特許文献2にはラインベースでウェーブレット変換を行う方法が示されているが、コードブロックサイズの制御に関する記述はなされておらず、利用可能なバッファの制限下で圧縮する方法に関する記述もなされていない。
However, even when a line-based wavelet is used, the required buffer amount, that is, the amount of memory consumed varies depending on the coefficient buffer holding method, the wavelet transform decomposition level, the unit for executing encoding, and the like.
近年ではデジタルカメラや複写機などが処理する画像の解像度が非常に高くなっており、ラインベースウェーブレットを用いる場合でも、その消費メモリは、画像全体を処理するウェーブレットより遥かに小さいとはいえ、ラインでの処理が大きくなれば消費メモリも大きくなってしまうという問題が残る。 In recent years, the resolution of images processed by digital cameras, copiers, etc. has become very high, and even when using line-based wavelets, the memory consumed is much smaller than that of wavelets that process the entire image. The problem remains that the amount of memory consumed increases as the processing in the process increases.
また、このようなデジタルカメラ、デジタルスキャナ、複合機などの機器では、搭載されているメモリが小さいだけでなく、使用できるメモリに制限がある場合が多く、入力され得るどんな画像に対しても、使用できるメモリ容量内で正常に動作するように制御することが求められる。 In addition, in such devices as digital cameras, digital scanners, multifunction devices, etc., not only the installed memory is small, but there are many cases where the memory that can be used is limited, and for any image that can be input, Control is required to operate normally within the available memory capacity.
本発明は、前述した問題点に鑑みてなされたものであって、ラインベースウェーブレットを用いてJPEG2000方式で画像を符号化する際に、画像の圧縮効率を落とさずにメモリ容量の制限の下で、効率的な画像符号化を実現することをその目的の一つとする。 The present invention has been made in view of the above-described problems. When an image is encoded by the JPEG2000 system using a line-based wavelet, the memory capacity is limited without reducing the compression efficiency of the image. One of the purposes is to realize efficient image coding.
前述した課題を解決し、目的を達成するために、本発明にかかる画像符号化装置は、係数ラインバッファを用いたウェーブレット変換の処理を行う画像符号化装置において、符号化の対象となる画像を入力する画像入力手段と、画像入力手段で入力した画像の横方向のサイズに基づいて、符号化の最小単位であるコードブロックの縦方向のサイズを決定するコードブロックサイズ決定手段と、コードブロックサイズ決定手段で決定したコードブロックのサイズを用いて画像の符号化を行う画像符号化手段と、を備える。 In order to solve the above-described problems and achieve the object, an image encoding apparatus according to the present invention is an image encoding apparatus that performs wavelet transform processing using a coefficient line buffer. An image input means for inputting, a code block size determining means for determining a vertical size of a code block which is a minimum unit of encoding based on a horizontal size of an image input by the image input means, and a code block size Image encoding means for encoding an image using the code block size determined by the determining means.
本発明によれば、ラインベースのウェーブレット変換を用いて画像を符号化するので、画像処理を行う際に、使用可能なメモリ容量内で画像を処理することができ、省メモリを実現することができ、且つ、コードブロックが入力画像のサイズに応じて適切に設定されるので、画像の圧縮効率を落とさずに、メモリ容量の制限下で効率的な画像符号化を実現することができる、という効果を奏する。 According to the present invention, since an image is encoded using line-based wavelet transform, when performing image processing, the image can be processed within a usable memory capacity, and memory saving can be realized. In addition, since the code block is appropriately set according to the size of the input image, it is possible to realize efficient image coding under the limitation of the memory capacity without reducing the compression efficiency of the image. There is an effect.
以下、添付図面を参照して、この発明にかかる画像符号化装置及び画像符号化方法の最良の実施形態を詳細に説明する。この実施形態により、この発明が限定されるものではない。また、下記実施形態における構成要素には、当業者が容易に想定できるもの、または実質的に同一のものが含まれる。 DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Exemplary embodiments of an image encoding device and an image encoding method according to the present invention are explained in detail below with reference to the accompanying drawings. The present invention is not limited to the embodiments. In addition, constituent elements in the following embodiments include those that can be easily assumed by those skilled in the art or those that are substantially the same.
図1〜6を参照して、JPEG2000の符号化処理の概要について説明する。なお、JPEG2000方式の変換式などの詳細については、非特許文献1を参照することによって得られる。JPEG2000は、画像圧縮方式の一つであって、従来広く用いられてきたJPEGを発展させた仕様であり、標準化・規格化されている。前述したように、ウェーブレット変換方式を採用しており、周波数帯域に分かれた縦横の周波数成分を量子化、符号化して圧縮を行う。詳細には、1次元の波を低周波成分と高周波成分に分割することがウェーブレットの作用であり、逆変換では低周波成分と高周波成分の組から元の信号を復元する。画像のような2次元のデータをウェーブレット変換すると、画像が行×列のデータの集合と捉えられるため、その各行又は各列に対して変換がなされる。
An overview of JPEG2000 encoding processing will be described with reference to FIGS. The details of the JPEG2000 conversion formula and the like can be obtained by referring to
図1は、本発明にかかるJPEG2000の基本的な符号化と復号化のアルゴリズムを説明するためのブロック図である。 FIG. 1 is a block diagram for explaining a basic encoding and decoding algorithm of JPEG2000 according to the present invention.
まず、画像は重複しない矩形領域(タイル)に分割され(分割数≧1)、タイル単位で処理される(画像全体を1つのタイルとして処理することも可能である)。次に、タイルはRGBの3コンポーネントで構成されるカラー画像を符号化する際に、分割されたタイルを輝度及び色差のコンポーネントへの色変換が施される。色変換部1では、RGB画像を輝度色差系のYCrCb画像に変換することにより、カラー画像の圧縮効率を高める処理を行うことができる。色変換は、カラー画像を効率良く圧縮するために行うものである。色変換には、可逆と非可逆の2つの方法が定義されている。
First, the image is divided into rectangular regions (tiles) that do not overlap (number of divisions ≧ 1) and processed in units of tiles (the entire image can be processed as one tile). Next, when the tile encodes a color image composed of three RGB components, the divided tiles are subjected to color conversion into luminance and color difference components. The
色変換されたコンポ−ネントは、2次元ウェーブレット変換部2において、ウェーブレット変換が施され、後述する4つのサブバンドに分割される。量子化部3では、量子化が行われ、エントロピー符号化部4、タグ処理部5を経て、符号化データが生成される。この処理が順変換で行われるのが符号化(圧縮)であり、逆変換で行われるのが復号(伸張)である。
The color-converted component is subjected to wavelet transform in the two-dimensional
JPEG2000のウェーブレット変換においては、整数型では5×3フィルタ、実数型では9×7フィルタが採用されている。可逆5×3フィルタの特徴は、変換のために使用される係数が整数であること、及び変換後の係数を丸め処理によって整数にすることである。 In the JPEG2000 wavelet transform, an integer type 5 × 3 filter and a real number type 9 × 7 filter are employed. The feature of the reversible 5 × 3 filter is that the coefficients used for conversion are integers, and the converted coefficients are converted into integers by rounding.
ここで、可逆5×3フィルタの変換式を式(1)に示す。
順変換
Y(2n+1)=X(2n+1)-floor((X(2n)+X(2n+2))/2) [step 1]
Y(2n)=X(2n)+floor((Y(2n-1)+Y(2n+1)+2)/2) [step 2]
逆変換 ・・・(1)
X(2n)=Y(2n)-floor((Y(2n-1)+Y(2n+1)+2)/4) [step 1]
X(2n+1)=Y(2n+1)+floor((X(2n)+X(2n+2))/2) [step 2]
Here, the conversion formula of the reversible 5 × 3 filter is shown in Formula (1).
Forward conversion
Y (2n + 1) = X (2n + 1) -floor ((X (2n) + X (2n + 2)) / 2) [step 1]
Y (2n) = X (2n) + floor ((Y (2n-1) + Y (2n + 1) +2) / 2) [step 2]
Inverse transformation (1)
X (2n) = Y (2n) -floor ((Y (2n-1) + Y (2n + 1) +2) / 4) [step 1]
X (2n + 1) = Y (2n + 1) + floor ((X (2n) + X (2n + 2)) / 2) [step 2]
また、可逆5×3フィルタとは反対に、非可逆9×7フィルタの特徴は、変換のために使用される係数が実数であること及び変換後の係数に対して丸め処理を行わないことである。以下、非可逆9×7フィルタの変換式を式(2)に示す。
順変換
Y(2n+1)=X(2n+1)+α*(X(2n)+X(2n+2)) [step 1]
Y(2n)=X(2n)+β*(Y(2n-1)+Y(2n+1)) [step 2]
Y(2n+1)=Y(2n+1)+γ*(Y(2n)+Y(2n+2)) [step 3]
Y(2n)=Y(2n)+δ*(Y(2n-1)+Y(2n+1)) [step 4]
Y(2n+1)=Κ*Y(2n+1) [step 5]
Y(2n)=(1/Κ)*Y(2n) [step 6]
逆変換・・・(2)
X(2n)=Κ*Y(2n) [step 1]
X(2n+1)=(1/Κ)*Y(2n+1) [step 2]
X(2n)=X(2n)-δ*(X(2n-1)+X(2n+1)) [step 3]
X(2n+1)=X(2n+1)-γ*(X(2n)+X(2n+2)) [step 4]
X(2n)=X(2n)-β*(X(2n-1)+X(2n+1)) [step 5]
X(2n+1)=X(2n+1)-α*(X(2n)+X(2n+2)) [step 6]
但し、α=-1.586134342059924
β=-0.052980118572961
γ=0.882911075530934
δ=0.443506852043971
Κ=1.230174104914001
In contrast to the reversible 5 × 3 filter, the feature of the irreversible 9 × 7 filter is that the coefficients used for the conversion are real numbers and that the converted coefficients are not rounded. is there. Hereinafter, the conversion formula of the irreversible 9 × 7 filter is shown in Formula (2).
Forward conversion
Y (2n + 1) = X (2n + 1) + α * (X (2n) + X (2n + 2)) [step 1]
Y (2n) = X (2n) + β * (Y (2n-1) + Y (2n + 1)) [step 2]
Y (2n + 1) = Y (2n + 1) + γ * (Y (2n) + Y (2n + 2)) [step 3]
Y (2n) = Y (2n) + δ * (Y (2n-1) + Y (2n + 1)) [step 4]
Y (2n + 1) = Κ * Y (2n + 1) [step 5]
Y (2n) = (1 / Κ) * Y (2n) [step 6]
Inverse transformation (2)
X (2n) = Κ * Y (2n) [step 1]
X (2n + 1) = (1 / Κ) * Y (2n + 1) [step 2]
X (2n) = X (2n) -δ * (X (2n-1) + X (2n + 1)) [step 3]
X (2n + 1) = X (2n + 1) -γ * (X (2n) + X (2n + 2)) [step 4]
X (2n) = X (2n) -β * (X (2n-1) + X (2n + 1)) [step 5]
X (2n + 1) = X (2n + 1) -α * (X (2n) + X (2n + 2)) [step 6]
However, α = -1.586134342059924
β = -0.052980118572961
γ = 0.882911075530934
δ = 0.443506852043971
Κ = 1.230174104914001
図2は、一段のサブバンド分割(順変換)とデインターリーブ(逆変換)後のサブバンドの係数について示した図である。ウェーブレット変換によって、元の画像はHH,HL,LH,LLの4つのサブバンドに分割される。前述したように、2次元ウェーブレット変換では、縦方向の変換と横方向の変換を順に行うため、それぞれ2分の1サイズに分割され、結果的に4分の1サイズのサブバンドが4つ形成される。分割された4つのサブバンドの中から、LLサブバンドに対して再帰的にウェーブレット変換が行われ、再帰的ウェーブレット変換(デコンポジション)が繰り返されると、最終的に1つのサブバンドLLと複数のサブバンドHL,LH,HHが生成されることとなる。 FIG. 2 is a diagram illustrating subband coefficients after one-stage subband division (forward conversion) and deinterleaving (inverse conversion). By the wavelet transform, the original image is divided into four subbands HH, HL, LH, and LL. As described above, in the two-dimensional wavelet transform, the vertical direction conversion and the horizontal direction conversion are sequentially performed. Therefore, each of the two-dimensional wavelet transforms is divided into half sizes, resulting in the formation of four quarter-size subbands. Is done. When the wavelet transform is recursively performed on the LL subband from among the divided four subbands, and the recursive wavelet transform (decomposition) is repeated, finally one subband LL and a plurality of subbands Subbands HL, LH, and HH are generated.
順変換における変換後の係数は1/2に間引きされ、係数の数は変換前に対して水平方向、垂直方向ともに1/2の数になるが、HH、HL、LH、LLの4つのサブバンドに分解されるため、変換前と変換後で係数の数は変わらない。この分解をLL成分に対して再帰的に繰り返すことによって、JPEG2000の周波数分解が実現される。 The coefficients after conversion in the forward conversion are decimated to ½, and the number of coefficients is ½ in both the horizontal direction and the vertical direction with respect to the pre-conversion, but there are four subs of HH, HL, LH, and LL. Since it is decomposed into bands, the number of coefficients does not change before and after conversion. By repeating this decomposition recursively for the LL component, JPEG2000 frequency decomposition is realized.
図3は、画像分割における画像、タイル、サブバンド、プリシンクト、及びコードブロックの関係を示した図である。プリシンクトとは、サブバンドを矩形に分割したものであって、同じデコンポジションレベルのサブバンドHL,LH,HHの空間的に同じ位置にある3つの領域の組が1つのプリシンクトとして扱われる。ただし、LLサブバンドは、1つの領域が1つのプリシンクトとして扱われる。プリシンクトのサイズはサブバンドと同じサイズにすることができ、プリシンクトを分割した矩形領域がコードブロックである。ここで、コードブロックとは符号化の単位であり、エントロピー符号化はコードブロックごとに独立に行われる。物理的な大きさの序列は、画像≧タイル>サブバンド≧プリシンクト≧コードブロックとなる。 FIG. 3 is a diagram illustrating the relationship among images, tiles, subbands, precincts, and code blocks in image division. The precinct is a subband divided into rectangles, and a set of three regions at the same spatial position of subbands HL, LH, and HH having the same decomposition level is treated as one precinct. However, in the LL subband, one area is treated as one precinct. The size of the precinct can be the same as that of the subband, and the rectangular area into which the precinct is divided is a code block. Here, the code block is a unit of encoding, and entropy encoding is performed independently for each code block. The physical size order is image ≧ tile> subband ≧ precinct ≧ code block.
図4は、コードブロックとビットプレーンについての符号化順を示した図である。サブバンド分割がなされたことによって、コードブロック毎に、且つビットプレーン順に、係数のエントロピー符号化(ビットプレーン符号化)が行われる。プリシンクトに含まれる全てのコードブロックからビットプレーンの符号の一部を取り出して集め、ヘッダのついたものをパケットと呼ぶ。取り出した符号は、例えば、全てのコードブロックのMSBから、3枚目までのビットプレーンの符号を集めたものであってもよい。また、符号の一部は「空(から)」の状態であっても良いので、パケットの中身が符号的には「空(から)」ということもある。パケットのヘッダには、当該パケットに含まれる符号に関する情報が含まれており、各パケットは独立に扱うことができる。パケットは符号の単位である。 FIG. 4 is a diagram illustrating an encoding order for a code block and a bit plane. By performing subband division, coefficient entropy coding (bit-plane coding) is performed for each code block and in bit-plane order. A part of the code of the bit plane is extracted from all the code blocks included in the precinct and collected, and the one with the header is called a packet. The extracted code may be, for example, a collection of the code of bit planes up to the third one from the MSB of all code blocks. In addition, since a part of the code may be in an “empty” state, the contents of the packet may be “empty” from a code point of view. The header of the packet includes information regarding the code included in the packet, and each packet can be handled independently. A packet is a unit of code.
そして全てのプリシンクト(即ち、全てのコードブロック、全てのサブバンドと同じ)のパケットを集めると、画像全域の符号の一部(例えば、画像全域のウェーブレット係数のMSBから3枚目までのビットプレーンの符号)が生成されるが、これをレイヤと呼ぶ。レイヤは画像全体のビットプレーンの符号の一部であるので、復号されるレイヤ数が多いほど当該画像の画質は良好になる。すなわち、レイヤはビット深さ方向に形成された画質の単位である。すべてのレイヤが集められることによって、画像全体のビットプレーンが符号化されることとなる。 When packets of all precincts (ie, all code blocks and all subbands) are collected, a part of the code of the entire image area (for example, the MSB to the third bit plane of the wavelet coefficients of the entire image area) Is called a layer. Since the layer is a part of the code of the bit plane of the entire image, the image quality of the image becomes better as the number of decoded layers increases. That is, the layer is a unit of image quality formed in the bit depth direction. By collecting all the layers, the bit plane of the entire image is encoded.
図5は、デコンポジションレベルが2であり、プリシンクトサイズとサブバンドサイズを同等としたときのレイヤと、それに含まれるパケットの例を示した図である。パケットは、プリシンクトを単位とするものであるから、プリシンクトがサブバンドと同じであるとした場合、サブバンドHL〜HHをまたいだものとなる。また、説明を明瞭にするために、図中において、いくつかのパケットを太線で囲んだ。 FIG. 5 is a diagram illustrating an example of a layer and a packet included in the layer when the decomposition level is 2 and the precinct size is equal to the subband size. Since the packet is based on the precinct, when the precinct is the same as the subband, the packet spans the subbands HL to HH. Further, in order to clarify the explanation, some packets are surrounded by thick lines in the figure.
図6は、JPEG2000におけるパケットの属性の階層のプログレッション順を示した図である。生成されたパケット及びレイヤの区切りに従って、パケットを並べる作業を符号形成という。即ち、パケットは、どのコンポ−ネントに属するか、どの解像度レベルに属するか、どのプリシンクト(場所)に属するか、どのレイヤに属するか、という4つの属性を有する。パケットの配列とは、どの属性の順に階層的に並べるかを意味するものである。該配列順をプログレッションオーダとよび、図6を参照すると、5通りの配列順が示されている。 FIG. 6 is a diagram showing the progression order of packet attribute hierarchies in JPEG2000. The operation of arranging packets according to the generated packet and layer division is called code formation. That is, a packet has four attributes, which component belongs to, which resolution level belongs to which precinct (location), and which layer belongs to. The packet arrangement means which attributes are arranged in a hierarchical order. The arrangement order is called a progression order, and referring to FIG. 6, five arrangement orders are shown.
次に、エンコーダがプログレッション順にパケットを並べる様子、およびデコーダがプログレッション順にパケットの属性を解釈する様子の例を示す。コンポーネントをC、解像度レベルをR、プリシンクトをP、レイヤをLとすると、LRCPプログレッションの場合、L、R、C、Pの順にネストされた次のようなforループ
for (レイヤ){
for (解像度レベル){
for (コンポ−ネント){
for (プリシンクト){
エンコード時:パケットを配置
デコード時:パケットの属性を解釈
}
}
}
}
という階層順に、エンコード時にパケットが配列され、デコード時には、パケットの解釈がなされる。各パケットはパケットヘッダを有する。パケットヘッダに含まれる情報には、そのパケットが空かどうか、そのパケットにどのコードブロックが含まれるか、そのパケットに含まれる各コードブロックのゼロビットプレーン数、そのパケットに含まれる各コードブロック符号のコーディングパス数(ビットプレーン数)、そのパケットに含まれる各コードブロックの符号長などが含まれる。
Next, an example of how the encoder arranges packets in the order of progression and how the decoder interprets the attributes of the packets in the order of progression is shown. If the component is C, the resolution level is R, the precinct is P, and the layer is L, in the case of LRCP progression, the following for loop nested in the order of L, R, C, P
for (layer) {
for (resolution level) {
for (component) {
for (Precinct) {
Encoding: Place packet
When decoding: Interpret packet attributes}
}
}
}
In the hierarchical order, packets are arranged at the time of encoding, and packets are interpreted at the time of decoding. Each packet has a packet header. The information included in the packet header includes whether the packet is empty, which code block is included in the packet, the number of zero bit planes in each code block included in the packet, and the code block code included in the packet. The number of coding passes (number of bit planes), the code length of each code block included in the packet, and the like are included.
しかしながら、パケットヘッダにはレイヤ番号や解像度番号等の記載はなく、デコード時に、そのパケットがどのレイヤのどの解像度であるかを判別するには、メインヘッダ中のCODマーカに記載されたプログレッションオーダから上記forループを形成し、そのパケットに含まれる各コードブロックの符号長の和からパケットの切れ目を判別し、各パケットが、forループ内のどの位置でハンドリングされたかを見ればよい。即ち、パケットヘッダ中の符号長さえ読み出すことができれば、エントロピー符号自体をデコードしなくても、次のパケットを検出することができる。従って、任意のパケットにアクセスできることを意味する。 However, there is no description of the layer number, resolution number, etc. in the packet header, and in order to determine which layer of which resolution the packet is at the time of decoding, from the progression order described in the COD marker in the main header. The for loop may be formed, a packet break may be determined from the sum of the code lengths of the code blocks included in the packet, and it may be determined at which position in the for loop each packet is handled. That is, as long as the code length in the packet header can be read, the next packet can be detected without decoding the entropy code itself. Therefore, it means that any packet can be accessed.
(第1の実施形態)
本発明における第1の実施形態では、ウェーブレット変換方式を用いるJPEG2000による符号化方式において、係数ラインバッファを用いたウェーブレット変換方式を採用して、画像の符号化処理を行う画像符号化装置について説明する。
(First embodiment)
In the first embodiment of the present invention, an image encoding apparatus that performs an image encoding process using a wavelet transform method using a coefficient line buffer in a JPEG2000 encoding method that uses a wavelet transform method will be described. .
図7は、第1の実施形態にかかるパーソナルコンピュータ(PC)のハードウェア構成を示すブロック図である。本実施形態にかかるPC100は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103等をシステムバス104により相互接続した一般的なPCである。なお、本実施形態では、画像符号化装置を備える一般的なPCについて説明したが、PCに限られず、MFP(Multi Function Peripheral)、デジタル複写機、プリンタ、ファクシミリ、スキャナ機能付コピーなどの画像符号化処理を行うものであれば、本実施形態の画像符号化装置を適用することができる。
FIG. 7 is a block diagram illustrating a hardware configuration of the personal computer (PC) according to the first embodiment. A
CPU101は、PC100の全体を制御するためのマイクロプロセッサである。RAM102は、各種データを書換え可能に記憶する性質を有していることから、CPU101の作業エリアとして機能し、バッファ等の役割を果たす。HDD103は、画像やCPU101により実行される各種プログラムを記憶する情報記録媒体である。
The
なお、情報記録媒体としては、HDD103のみならず、CD(Compact Disk)−ROM、DVD(Digital Versatile Disk)などの各種の光ディスク、各種光磁気ディスク、フレキシブルディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、図示しない外部I/F装置を介してインターネットなどのネットワークからプログラムをダウンロードし、HDD103にインストールするようにしてもよい。このような場合に、送信側のサーバでプログラムを記憶している記憶装置も、本発明における情報記録媒体である。なお、プログラムは、所定のOS(Operating System)上で動作するものであってもよい。その場合には、後述する各種処理の一部の実行をOSに肩代わりさせるものであってもよい。または、所定のアプリケーションソフトやOSなどを構成する一群のプログラムファイルの一部として含まれるものであってもよい。
As the information recording medium, not only the
このシステム全体の動作を制御するCPU101は、このシステムの主記憶装置として使用されるHDD103に記憶されたプログラムに基づいて、各種処理を実行する。
The
次に、PC100のHDD103に記憶されているプログラムがCPU101に実行させる機能のうち、本実施形態のPC100が備える特長的な機能について説明する。
Next, among the functions that the program stored in the
まず、図7を参照して、PC100が備える特長的な機能の概略について説明する。(1)HDD103より、処理対象となる原画像がCPU101からの命令によってRAM102に読み込まれる。(2)CPU101は、RAM102上の原画像を読み込み、後述するように、本実施形態のコードブロックサイズを決定し、ウェーブレット変換を用いた符号化を行う。(3)CPU101は、符号化されたデータをRAM102上の別の領域に書き込む。(4)CPU101からの命令によってその符号化されたデータがHDD103に保存される。
First, with reference to FIG. 7, an outline of characteristic functions provided in the
図8は、本実施形態にかかる画像符号化装置の符号化処理を示すブロック図である。図8によれば、画像入力部201は、符号化の対象となるRAM102に読み込まれた画像を入力画像として入力する。コードブロックサイズ決定部202は、画像入力部201で入力した画像のサイズ(画像の横方向のサイズ)を取り込み、画像のサイズに基づいて、符号化の最小単位であるコードブロックの縦方向のサイズを決定する。画像符号化部203は、画像入力部201から画像を入力し、コードブロックサイズ決定部202で決定したコードブロックのサイズを用いて、入力画像にウェーブレット変換処理を行い、入力画像の符号化を行う。ここで、画像符号化部203において行われる符号化処理は、量子化、係数ビットモデリング、エントロピー符号化の全ての符号化工程を行う処理である。符号化処理された画像は、一旦RAM102に書き込まれて、HDD103上の所定の領域に書き込まれる。
FIG. 8 is a block diagram illustrating an encoding process of the image encoding device according to the present embodiment. According to FIG. 8, the image input unit 201 inputs an image read into the
次に、本実施形態のラインベース符号化について詳細に説明する。図9は、本実施形態にかかるラインベースウェーブレットのウインドウを表した図である。ラインベースウェーブレットは、前述したように、画像全体分の係数バッファを用意してウェーブレット変換を施す方法とは異なり、図9のように、画像を横方向に短冊状に切り出し、縦方向にLの長さを持つウインドウに対して順にウェーブレット変換を行う方法である。ここで、係数バッファは画像全体分を保持する必要はなく、同時に数ライン分の係数バッファを保持すれば良い。 Next, line-based encoding according to this embodiment will be described in detail. FIG. 9 is a view showing a line-based wavelet window according to the present embodiment. As described above, the line-based wavelet is different from the method in which the coefficient buffer for the entire image is prepared and wavelet transform is performed. As shown in FIG. 9, the image is cut into strips in the horizontal direction and L in the vertical direction. This is a method of performing wavelet transform in order on a window having a length. Here, it is not necessary for the coefficient buffer to hold the entire image, and it is sufficient to hold coefficient buffers for several lines at the same time.
図10は、本実施形態にかかるラインベースウェーブレット変換について示した図である。図10について詳細に説明すると、まずLラインの画像データ(図10の入力画素)をラインバッファに読み込む。ここで、入力画像の画素値に対して色変換を行う場合には、色変換後の各プレーンの画素値をLラインのラインバッファに展開する。次に、この画像データに対して垂直方向のウェーブレット変換を行うと、ハイパスフィルタ及びローパスフィルタによって、垂直方向ハイパス成分と垂直方向ローパス成分に分解される。このとき、Lの値はウェーブレット変換に用いるフィルタサイズ以上の値である必要がある。 FIG. 10 is a diagram illustrating the line-based wavelet transform according to the present embodiment. 10 will be described in detail. First, L-line image data (input pixels in FIG. 10) is read into the line buffer. Here, when color conversion is performed on the pixel value of the input image, the pixel value of each plane after color conversion is developed in a line buffer of L lines. Next, when vertical wavelet transform is performed on the image data, the image data is decomposed into a vertical high-pass component and a vertical low-pass component by a high-pass filter and a low-pass filter. At this time, the value of L needs to be larger than the filter size used for the wavelet transform.
次に、垂直方向ハイパス成分と垂直方向ローパス成分のそれぞれに対して、水平方向のウェーブレット変換を行う。この結果として生成されるのが、サブバンドHH、HL、LH、LLの係数成分であり、画像全体に同時にウェーブレット変換を行った場合に生成されるサブバンド係数成分と同じものである。図10ではウェーブレット変換に9×7フィルタを用いた例を示している。 Next, horizontal wavelet transform is performed on each of the vertical high-pass component and the vertical low-pass component. As a result, the coefficient components of the subbands HH, HL, LH, and LL are generated, which are the same as the subband coefficient components generated when the wavelet transform is simultaneously performed on the entire image. FIG. 10 shows an example in which a 9 × 7 filter is used for wavelet transform.
図10におけるフィルタの長さをFとすると、Fラインの画素値(もしくは色変換後の画素値)を読み込み、1ラインのサブバンドHH、HL、LH、LL成分を出力する。例えば、(F+K)ラインを一度に読み込んだ場合、一度に(1+K)ラインの各サブバンド信号が出力されることになる。生成されたサブバンド信号のうち、HH、HL、LHサブバンド信号はさらに分解がなされないため、HH、HL、LHのサブバンド信号については符号化ステップへ進むこととなる(図11参照)。一方、生成されたサブバンドのうち、LLサブバンドは、さらに次段のウェーブレット変換が行われ、下位の分解レベルのサブバンド信号に分解される。 If the length of the filter in FIG. 10 is F, the pixel value of the F line (or the pixel value after color conversion) is read, and one-line subbands HH, HL, LH, and LL components are output. For example, when the (F + K) line is read at a time, each subband signal of the (1 + K) line is output at a time. Among the generated subband signals, the HH, HL, and LH subband signals are not further decomposed, and therefore the HH, HL, and LH subband signals proceed to the encoding step (see FIG. 11). On the other hand, among the generated subbands, the LL subband is further subjected to the next wavelet transform to be decomposed into subband signals of lower decomposition levels.
図11は、本実施形態にかかるラインベースウェーブレット変換によるエントロピー符号化の処理を示すフローチャートである。ここでは、HH、HL、LHのサブバンド信号のラインベース符号化処理について、フローチャートに従って簡単に説明する。 FIG. 11 is a flowchart showing entropy encoding processing by line-based wavelet transform according to the present embodiment. Here, the line-based encoding processing of HH, HL, and LH subband signals will be briefly described with reference to a flowchart.
最初に、画像から短冊状に切り出した、画像の続くL行を係数バッファに読み込む(ステップS1101)。読み込まれた係数バッファのデータに対して、ウェーブレット変換を行う(ステップS1102)。ここで、エントロピー符号化を行う単位は、コードブロックごとであるため、コードブロック分の係数が生成される必要がある。ウェーブレット変換がなされた係数は、コードブロック単位の係数が生成されるまでメモリに蓄えられる。係数は画像のラインで出力され、コードブロックの縦方向のサイズに対して十分な変換係数が生成されれば(ステップS1103,Yes)、サブバンド係数は量子化される(ステップS1104)。量子化されたサブバンド係数は、ビットモデリングを行い(ステップS1105)、エントロピー符号化する処理が行われる(ステップS1106)。一方、コードブロックサイズに対して、十分な変換係数が生成されなければ(ステップS1103,No)、ステップS1101に戻り、続く係数バッファの読み込み処理が行われる。以上が、一段のウェーブレット変換についての処理である。 First, L lines following the image cut out in a strip shape from the image are read into the coefficient buffer (step S1101). Wavelet transform is performed on the read coefficient buffer data (step S1102). Here, since the unit for performing entropy coding is for each code block, it is necessary to generate coefficients for the code block. The coefficients subjected to the wavelet transform are stored in a memory until a coefficient for each code block is generated. The coefficients are output on the image line, and if sufficient transform coefficients are generated for the vertical size of the code block (step S1103, Yes), the subband coefficients are quantized (step S1104). The quantized subband coefficients are subjected to bit modeling (step S1105) and subjected to entropy coding (step S1106). On the other hand, if a sufficient transform coefficient is not generated for the code block size (step S1103, No), the process returns to step S1101, and the subsequent coefficient buffer reading process is performed. The above is the process for one-stage wavelet transform.
図12は、LLサブバンドについて、次段のサブバンド分解の処理を示すフローチャートである。以下、LLサブバンドの処理を簡単に説明する。図11のフローチャートと同様に、まず、画像から短冊状に切り出したL行を係数バッファに読み込み(ステップS1201)、係数バッファのデータに対してウェーブレット変換を行う(ステップS1202)。次に、前述したようにLLサブバンド信号については、さらに次段のウェーブレット変換が施されるため、再分解に十分なLLサブバンド係数が生成されれば(ステップS1203,Yes)、LLサブバンド係数のウェーブレット変換が行われて下位の分解レベルに分解される(ステップS1204)。再分解に十分とされるLLサブバンド係数が生成されなければ(ステップS1203,No)、ステップS1201に戻り、続く係数バッファの読み込み処理が行われる。ここで、最大分解レベルまで達したLLサブバンド成分は、他のHH、HL、LHサブバンドと同様に図11のフローチャートの流れに従って符号化される。 FIG. 12 is a flowchart showing the subband decomposition process of the next stage for the LL subband. Hereinafter, the processing of the LL subband will be briefly described. As in the flowchart of FIG. 11, first, L rows cut out in a strip shape from an image are read into the coefficient buffer (step S1201), and wavelet transform is performed on the data in the coefficient buffer (step S1202). Next, as described above, the LL subband signal is further subjected to the next wavelet transform. Therefore, if LL subband coefficients sufficient for re-decomposition are generated (step S1203, Yes), the LL subband signal is generated. A coefficient wavelet transform is performed to decompose the coefficient into lower decomposition levels (step S1204). If an LL subband coefficient sufficient for re-decomposition is not generated (step S1203, No), the process returns to step S1201, and the subsequent coefficient buffer reading process is performed. Here, the LL subband component that has reached the maximum resolution level is encoded according to the flow of the flowchart of FIG. 11 in the same manner as other HH, HL, and LH subbands.
図13は、ウェーブレット変換と符号化に関する機能ブロック図である。図13に示すように、ウェーブレット変換され、サブバンド分解された各係数は、HH、HL、LH、LL係数バッファに蓄えられる。係数バッファに蓄えられた係数のうち、HH、HL、LHの係数は符号化部へ入力され、符号が生成される。LLサブバンドの係数については、次段のウェーブレット変換がなされる。 FIG. 13 is a functional block diagram relating to wavelet transform and encoding. As shown in FIG. 13, the coefficients subjected to wavelet transform and subband decomposition are stored in HH, HL, LH, and LL coefficient buffers. Among the coefficients stored in the coefficient buffer, the HH, HL, and LH coefficients are input to the encoding unit, and a code is generated. For the coefficients of the LL subband, the next wavelet transform is performed.
次に、本実施形態のラインベース符号化に伴う係数バッファの確保例について説明する。図14は、本実施形態におけるラインベース符号化に伴う係数バッファの確保例を示した図である。例として、分解レベルが3の場合は、多段ウェーブレット変換の過程において、複数のサブバンド1HH、1HL、1LH、1LL、2HH、2HL、2LH、2LL、3HH、3HL、3LH、3LLのサブバンド係数が生成される。 Next, an example of securing a coefficient buffer associated with line-based encoding according to the present embodiment will be described. FIG. 14 is a diagram illustrating an example of securing a coefficient buffer associated with line-based encoding in the present embodiment. For example, when the decomposition level is 3, the subband coefficients of a plurality of subbands 1HH, 1HL, 1LH, 1LL, 2HH, 2HL, 2LH, 2LL, 3HH, 3HL, 3LH, and 3LL are obtained in the multistage wavelet transform process. Generated.
ラインベースウェーブレット変換ではなく、画像全体に適用されるようなウェーブレット変換を用いる場合は、複数のサブバンド係数が同時にメモリに展開される。しかし、ラインベースウェーブレット変換によれば、コードブロックごとに処理が行われるため、同時にメモリに展開されるのは、各サブバンドのコードブロックの縦サイズに相当するライン分とすることができる。 When using wavelet transform that is applied to the entire image instead of line-based wavelet transform, a plurality of subband coefficients are simultaneously developed in the memory. However, according to the line-based wavelet transform, since processing is performed for each code block, it is possible to develop a line corresponding to the vertical size of the code block of each subband at the same time.
例えば、コードブロックサイズが32*32であるとすると、全てのサブバンドに関して、それぞれ32ラインずつの係数バッファを同時に保持することとなる。32ライン分の係数が蓄積されたHH、HL、LHサブバンドは、随時エントロピー符号化までがなされ、符号が生成されるとメモリ上で保持する必要が無くなり、その部分が上書きされる。ここで、古いラインから優先的に上書きされる32ラインの循環バッファを用いることが望ましい。 For example, if the code block size is 32 * 32, 32 lines of coefficient buffers are simultaneously held for all subbands. The HH, HL, and LH subbands in which the coefficients for 32 lines are accumulated are subjected to entropy coding at any time, and when the codes are generated, there is no need to hold them in the memory, and the portions are overwritten. Here, it is desirable to use a 32-line circular buffer preferentially overwritten from the old line.
また、1LL、2LLサブバンドのサブバンド係数は、再帰的にウェーブレット変換されるため、必ずしも32ラインを必要とはしない。但し、さらにウェーブレット変換がなされるため、ウェーブレット変換に必要なフィルタサイズのラインバッファを備えることが必要である。ここでも、ウェーブレット変換の際のウィンドウサイズに応じて、循環バッファを用いることが望ましい。 Further, since the subband coefficients of the 1LL and 2LL subbands are recursively wavelet transformed, 32 lines are not necessarily required. However, since wavelet transformation is further performed, it is necessary to provide a line buffer having a filter size necessary for wavelet transformation. Again, it is desirable to use a circular buffer depending on the window size at the time of wavelet transform.
前述した係数バッファを用いる場合、ラインベースウェーブレット変換の処理の過程において必要なメモリ量は、入力画像の入力方向に対する横方向のサイズ(横サイズ)と、コードブロックの縦方向のサイズ(縦サイズ)によって決定される。 When the coefficient buffer described above is used, the amount of memory required in the process of line-based wavelet transform is the size in the horizontal direction (horizontal size) relative to the input direction of the input image and the size in the vertical direction of the code block (vertical size). Determined by.
ここで、コードブロックの縦方向のサイズを算出する方法について説明する。入力画像の横方向のサイズをW、コードブロックの縦方向のサイズをCv、入力された画素(もしくは色変換後の画素)の精度をPバイト、分解レベルをn、サブバンド係数の精度をBytesCoeffバイトとすると、ウェーブレット変換を行う際に画素値(もしくはLL成分)をL行ずつ読み込むウィンドウラインバッファと、同時に全てのサブバンド係数を保持する係数バッファの合計から計算されるメモリ使用量は、式(3)のように算出できる。
ここで、コードブロックサイズには一定の制限が設けられる。図15は、JPEG2000のコードブロックサイズに対する制限を示すテーブル図である。図15に示されたように、コードブロックサイズは、算出した最大コードブロックサイズを超えず、2のべき乗であって、縦サイズと横サイズにおける2のべき乗の指数の和が12以下である値を選択することが望ましい。 Here, there is a certain restriction on the code block size. FIG. 15 is a table showing restrictions on the code block size of JPEG2000. As shown in FIG. 15, the code block size does not exceed the calculated maximum code block size and is a power of 2, and the sum of exponents of powers of 2 in the vertical size and the horizontal size is 12 or less. It is desirable to select.
本実施形態にかかる画像符号化装置によれば、入力画像の横サイズによって符号化の最小単位であるコードブロックの縦方向のサイズを決定するので、使用可能なメモリ容量内で画像を処理することができ、高解像度の画像に対しても省メモリを実現することができる。また、入力画像の横サイズを用いて、ウェーブレット変換処理に利用可能なメモリ領域の最大容量から、コードブロックの縦方向のサイズを算出するようにしたので、画像の符号化効率を落とさずに、メモリ容量の制限下で効率的な符号化を実現することができる。 According to the image coding apparatus according to the present embodiment, since the vertical size of the code block, which is the minimum unit of coding, is determined by the horizontal size of the input image, the image is processed within the usable memory capacity. Thus, memory saving can be realized even for high-resolution images. In addition, since the horizontal size of the input image is used to calculate the vertical size of the code block from the maximum capacity of the memory area that can be used for the wavelet transform process, without reducing the encoding efficiency of the image, Efficient encoding can be realized under the limitation of memory capacity.
(第2の実施形態)
本発明の第2の実施形態では、コードブロックの縦方向のサイズを決定する際、第1の入力画像の横方向のサイズより第2の入力画像の横方向のサイズが大きい場合、第1の画像に用いるコードブロックの縦方向のサイズより第2の画像に用いるコードブロックの縦方向のサイズを小さくする画像符号化装置について説明する。
(Second Embodiment)
In the second embodiment of the present invention, when determining the vertical size of the code block, if the horizontal size of the second input image is larger than the horizontal size of the first input image, An image coding apparatus that reduces the size of the code block used for the second image in the vertical direction from the size of the code block used for the image will be described.
本実施形態においても、第1の実施形態で説明した一般的なハードウェア構成を有するPCが用いられる(図7参照)。また、第1の実施形態で示した画像符号化装置の符号化処理の機能を同様に有する(図8参照)。 Also in this embodiment, a PC having the general hardware configuration described in the first embodiment is used (see FIG. 7). Moreover, it similarly has the function of the encoding process of the image encoding device shown in the first embodiment (see FIG. 8).
画像を横方向に短冊状に切り出したラインを基準とした係数ラインバッファを用いるラインベースウェーブレット変換であれば、横サイズが非常に大きい画像を処理する場合に、ウェーブレット変換の係数バッファとして大量の作業用メモリが必要となる。そのために、入力画像の横サイズに応じて、コードブロックサイズを決定することが望ましい。 A line-based wavelet transform that uses a coefficient line buffer based on a line obtained by cutting an image into a strip in the horizontal direction. When processing images with very large horizontal sizes, a large amount of work can be done as a wavelet transform coefficient buffer. Memory is required. Therefore, it is desirable to determine the code block size according to the horizontal size of the input image.
図16は、サイズの異なる二つの画像とそれらのコードブロックサイズの例を示した図である。図16に示すように、例えば、入力画像の横サイズが2048画素である画像1を符号化するときには、コードブロックの縦サイズが64であるコードブロックを用いて符号化する。また、入力画像の横サイズが4096の画像2を符号化するときには、コードブロックの縦サイズが32であるコードブロックを用いて符号化する。
FIG. 16 is a diagram illustrating an example of two images having different sizes and their code block sizes. As shown in FIG. 16, for example, when encoding an
このように、相対的に横方向に長い画像2の場合は、コードブロックの縦サイズが32に制限されるため、縦サイズ64のコードブロックサイズを使用した場合と比較して、ラインベースによる大量の作業用メモリが発生するのを抑えることができる。画像1の処理時においても、画像2の処理時においても、処理時に必要とされる作業用メモリが大きく変化することがないため、安定して画像の符号化を行うことができる。
In this way, in the case of the
本実施形態によれば、画像サイズの違いによって、メモリで処理される係数バッファの量が増加するのを抑えることができるため、画像サイズの違いによる影響を受けることなく、安定的な画像符号化処理を実現することができる。 According to the present embodiment, it is possible to suppress an increase in the amount of coefficient buffers processed in the memory due to a difference in image size, so that stable image coding is not affected by the difference in image size. Processing can be realized.
(第3の実施形態)
本発明の第3の実施形態では、コードブロックの縦方向のサイズを決定する際、第1の入力画像の横方向のサイズより第2の入力画像の横方向のサイズが大きい場合、コードブロックの面積を保ったままで、第1の画像に用いるコードブロックの縦方向のサイズより第2の画像に用いるコードブロックの縦方向のサイズを小さくする画像符号化装置について説明する。
(Third embodiment)
In the third embodiment of the present invention, when determining the vertical size of the code block, if the horizontal size of the second input image is larger than the horizontal size of the first input image, the code block An image encoding apparatus will be described in which the size of the code block used for the second image is made smaller than the size of the code block used for the first image while maintaining the area.
本実施形態においても、第1の実施形態で説明した一般的なハードウェア構成を有するPCが用いられる(図7参照)。また、第1の実施形態で示した画像符号化装置の符号化処理の機能を同様に有する(図8参照)。 Also in this embodiment, a PC having the general hardware configuration described in the first embodiment is used (see FIG. 7). Moreover, it similarly has the function of the encoding process of the image encoding device shown in the first embodiment (see FIG. 8).
コードブロックサイズは、エントロピー符号化の効率に影響を及ぼす。コードブロック毎にエントロピー符号化のコンテクストが初期化されるためである。そのため、コードブロックサイズを決定する際には、コードブロックに含まれる係数の数が少なくなり過ぎてはいけない。64*64のサイズや32*32のサイズが適当な大きさであることが経験的に分かっている。 The code block size affects the efficiency of entropy coding. This is because the context of entropy coding is initialized for each code block. Therefore, when determining the code block size, the number of coefficients included in the code block must not be too small. It has been empirically found that the size of 64 * 64 and the size of 32 * 32 are appropriate.
例えば、図17に示すように、二種類の入力画像があり、相対的に横方向のサイズが短い画像と長い画像を符号化する場合を考える。図17に示されたように、入力画像の横方向のサイズが2048画素である画像1及び横方向のサイズが4096画素の画像2を符号化する。画像1を符号化する場合には、コードブロックサイズを縦64*横32とし、入力方向に対して縦長の矩形となる。また、画像2を符号化する場合には、コードブロックサイズを縦32*横64とし、入力方向に対して横長の矩形となる。
For example, as shown in FIG. 17, consider a case where there are two types of input images and an image having a relatively short horizontal size and a long image are encoded. As shown in FIG. 17, an
コードブロックの縦方向のサイズを決定する際に、第1の入力画像の横方向のサイズより第2の入力画像の横方向のサイズが大きい場合、コードブロックの面積を一定に保ったままで、第1の画像に用いるコードブロックの縦方向のサイズより第2の画像に用いるコードブロックの縦方向のサイズを小さくする。即ち、コードブロックの面積が一定に保たれたまま、コードブロックの縦方向のサイズを小さくするので、コードブロックの横方向のサイズが大きくなることを意味する。 When determining the vertical size of the code block, if the horizontal size of the second input image is larger than the horizontal size of the first input image, the code block area is kept constant, The vertical size of the code block used for the second image is made smaller than the vertical size of the code block used for the first image. That is, since the code block size is reduced while the code block area is kept constant, it means that the code block size is increased.
このように、コードブロックの面積を一定にして縦方向のサイズを調整することによって、コードブロックに含まれる係数の数を減らすことなく一定に保つことができ、消費メモリの増加を防ぐことができる。 Thus, by adjusting the vertical size while keeping the area of the code block constant, the code block can be kept constant without reducing the number of coefficients included in the code block, and an increase in memory consumption can be prevented. .
なお、第1〜第3の実施形態において用いた入力画像の横方向のサイズを入力画像の縦方向のサイズとしてもよく、その際にコードブロックの縦方向のサイズは、コードブロックの横方向のサイズとしてもよい。換言すれば、入力画像の横方向を入力画像の縦方向に、コードブロックサイズの縦方向をコードブロックの横方向に、コードブロックサイズの横方向をコードブロックの縦方向に、置き換えてもよい。 The horizontal size of the input image used in the first to third embodiments may be the vertical size of the input image. In this case, the vertical size of the code block is the horizontal size of the code block. It is good also as a size. In other words, the horizontal direction of the input image may be replaced with the vertical direction of the input image, the vertical direction of the code block size may be replaced with the horizontal direction of the code block, and the horizontal direction of the code block size may be replaced with the vertical direction of the code block.
(第4の実施形態)
前述した第1〜3の実施形態では、サブバンド全体を分割して符号化する形態、即ち、主にプリシンクト分割を行わずに符号化する形態について説明した。第4の実施形態においては、プリシンクト分割を用いて画像を符号化する画像符号化装置について説明する。
(Fourth embodiment)
In the above-described first to third embodiments, the form in which the entire subband is divided and encoded, that is, the form in which encoding is performed without mainly performing the precinct division has been described. In the fourth embodiment, an image encoding apparatus that encodes an image using precinct division will be described.
本実施形態においても、第1の実施形態で説明した一般的なハードウェア構成を有するPCが用いられる(図7参照)。 Also in this embodiment, a PC having the general hardware configuration described in the first embodiment is used (see FIG. 7).
図18は、本実施形態にかかる画像符号化装置の符号化処理を示すブロック図である。図18によれば、画像入力部301は、符号化の対象となるRAM102に読み込まれた画像を入力画像として入力する。プリシンクトサイズ決定部302は、画像入力部301で入力した画像のサイズ(画像の横方向のサイズ)を取り込み、画像のサイズに基づいて、サブバンド係数空間で分割する単位であるプリシンクトの縦方向のサイズを決定する。画像符号化部303は、画像入力部301から画像を入力し、プリシンクトサイズ決定部302で決定したプリシンクトのサイズを用いて、入力画像にウェーブレット変換処理を行い、入力画像の符号化を行う。ここで、画像符号化部303において行われる符号化処理は、量子化、係数ビットモデリング、エントロピー符号化の全ての符号化工程を行う処理である。符号化処理された画像は、一旦RAM102に書き込まれて、HDD103上の所定の領域に書き込まれる。
FIG. 18 is a block diagram illustrating an encoding process of the image encoding device according to the present embodiment. According to FIG. 18, the image input unit 301 inputs an image read into the
前述したように、コードブロックは、プリシンクトの矩形領域を超えないように切り取られる。即ち、コードブロックのサイズはプリシンクトのサイズを超えないため、本実施形態によれば、コードブロックサイズを変更することなく、プリシンクトサイズを変更することで、消費メモリの増加を抑えることができる。 As described above, the code block is cut out so as not to exceed the rectangular area of the precinct. That is, since the size of the code block does not exceed the size of the precinct, according to the present embodiment, it is possible to suppress an increase in memory consumption by changing the precinct size without changing the code block size. .
例えば、コードブロックサイズを64*64で一定の値をとるように設定する場合、入力画像の横方向のサイズが大きい場合は、例えば、32*32のプリシンクトサイズによってプリシンクト分割を行うと、プリシンクトサイズを超えるサブバンド係数を保持しておく必要はないので、コードブロックの縦方向のサイズを小さくした場合と同様の係数バッファ量の削減効果が得られる。 For example, when the code block size is set to be a constant value of 64 * 64, and the horizontal size of the input image is large, for example, when precinct division is performed with a precinct size of 32 * 32, Since it is not necessary to hold subband coefficients exceeding the precinct size, the same effect of reducing the coefficient buffer amount as when the code block vertical size is reduced can be obtained.
ここで、プリシンクト分割を行う際には、図19に示すような制約が設けられる。図19によれば、プリシンクトは、(0,0)を原点として水平方向に2のPPxべき乗、垂直方向に2のPPyべき乗の大きさで分割される。また、プリシンクト分割は各分解レベルに対して独立にプリシンクトサイズを決定することができる。全分解レベルにおいて同じプリシンクトサイズを用いてもよいし、特定の分解レベルのみをプリシンクト分割するということであってもよい。 Here, when precinct division is performed, restrictions as shown in FIG. 19 are provided. According to FIG. 19, the precinct is divided by the magnitude of PPx power of 2 in the horizontal direction and PPy power of 2 in the vertical direction with (0, 0) as the origin. Also, the precinct division can determine the precinct size independently for each decomposition level. The same precinct size may be used for all decomposition levels, or only a specific decomposition level may be precinct divided.
分解レベルが0である、即ち最大解像度を有するサブバンドは、1ラインに含まれる係数の数が最も多いので、分解レベル0のサブバンドを32*32などの適切なサイズでプリシンクト分割することが省メモリには最も効果的となる。 A subband having a resolution level of 0, that is, a subband having the maximum resolution has the largest number of coefficients included in one line, and therefore, a subband having a resolution level of 0 may be precinct divided by an appropriate size such as 32 * 32. It is most effective for saving memory.
本実施形態によれば、コードブロックサイズを一定に保ったままで、コードブロックサイズを変更することなく、プリシンクトサイズを決定することで消費メモリの増加を抑えた画像符号化処理を行うことができる。 According to the present embodiment, it is possible to perform image encoding processing that suppresses an increase in memory consumption by determining the precinct size without changing the code block size while keeping the code block size constant. it can.
以上、本発明について実施形態を用いて説明したが、前述した実施形態に多様な変更または改良を加えることができる。 As described above, the present invention has been described using the embodiment, but various modifications or improvements can be added to the above-described embodiment.
100 PC
101 CPU
102 RAM
103 HDD
104 システムバス
201、301 画像入力部
202 コードブロックサイズ決定部
203、303 画像符号化部
302 プリシンクトサイズ決定部
100 PC
101 CPU
102 RAM
103 HDD
104 System bus 201, 301 Image input unit 202 Code block
Claims (11)
符号化の対象となる画像を入力する画像入力手段と、
前記画像入力手段で入力した画像の横方向のサイズに基づいて、符号化の最小単位であるコードブロックの縦方向のサイズを決定するコードブロックサイズ決定手段と、
前記コードブロックサイズ決定手段で決定したコードブロックのサイズを用いて画像の符号化を行う画像符号化手段と、
を備えることを特徴とする画像符号化装置。 In an image encoding device that performs wavelet transform processing using a coefficient line buffer,
An image input means for inputting an image to be encoded;
Code block size determining means for determining a vertical size of a code block which is a minimum unit of encoding based on a horizontal size of an image input by the image input means;
Image encoding means for encoding an image using the code block size determined by the code block size determining means;
An image encoding device comprising:
符号化の対象となる画像を入力する画像入力手段と、
前記画像入力手段で入力した画像の横方向のサイズに基づいて、サブバンド係数空間で分割する単位であるプリシンクトの縦方向のサイズを決定するプリシンクトサイズ決定手段と、
前記プリシンクトサイズ決定手段で決定したプリシンクトのサイズを用いて画像の符号化を行う画像符号化手段と、
を備えることを特徴とする画像符号化装置。 In an image encoding device that performs wavelet transform processing using a coefficient line buffer,
An image input means for inputting an image to be encoded;
Precinct size determining means for determining a vertical size of a precinct, which is a unit divided in a subband coefficient space, based on a horizontal size of an image input by the image input means;
Image encoding means for encoding an image using the size of the precinct determined by the precinct size determining means;
An image encoding device comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009057801A JP5201019B2 (en) | 2009-03-11 | 2009-03-11 | Image coding apparatus and image coding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009057801A JP5201019B2 (en) | 2009-03-11 | 2009-03-11 | Image coding apparatus and image coding method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010213059A true JP2010213059A (en) | 2010-09-24 |
JP5201019B2 JP5201019B2 (en) | 2013-06-05 |
Family
ID=42972772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009057801A Expired - Fee Related JP5201019B2 (en) | 2009-03-11 | 2009-03-11 | Image coding apparatus and image coding method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5201019B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805107B2 (en) | 2011-05-30 | 2014-08-12 | Fujifilm Corporation | Image data coding apparatus, method of controlling operation of same, and program therefor |
JP2020526947A (en) * | 2017-07-07 | 2020-08-31 | キヤノン株式会社 | Methods, devices, and programs for decoding video bitstreams |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003051952A (en) * | 2001-08-06 | 2003-02-21 | Fuji Xerox Co Ltd | Image processing apparatus |
JP2004357154A (en) * | 2003-05-30 | 2004-12-16 | Minolta Co Ltd | Data processing unit |
JP2006129447A (en) * | 2004-09-29 | 2006-05-18 | Ricoh Co Ltd | Image processor, image processing method, and image processing program |
JP2006262294A (en) * | 2005-03-18 | 2006-09-28 | Ricoh Co Ltd | Image processing apparatus, image processing method, program, and recording medium |
-
2009
- 2009-03-11 JP JP2009057801A patent/JP5201019B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003051952A (en) * | 2001-08-06 | 2003-02-21 | Fuji Xerox Co Ltd | Image processing apparatus |
JP2004357154A (en) * | 2003-05-30 | 2004-12-16 | Minolta Co Ltd | Data processing unit |
JP2006129447A (en) * | 2004-09-29 | 2006-05-18 | Ricoh Co Ltd | Image processor, image processing method, and image processing program |
JP2006262294A (en) * | 2005-03-18 | 2006-09-28 | Ricoh Co Ltd | Image processing apparatus, image processing method, program, and recording medium |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805107B2 (en) | 2011-05-30 | 2014-08-12 | Fujifilm Corporation | Image data coding apparatus, method of controlling operation of same, and program therefor |
JP2020526947A (en) * | 2017-07-07 | 2020-08-31 | キヤノン株式会社 | Methods, devices, and programs for decoding video bitstreams |
Also Published As
Publication number | Publication date |
---|---|
JP5201019B2 (en) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4177583B2 (en) | Wavelet processing system, method and computer program | |
US7565020B2 (en) | System and method for image coding employing a hybrid directional prediction and wavelet lifting | |
CN100401778C (en) | Fast CODEC with high compression ratio and minimal required resources | |
EP1218824A1 (en) | System and method for transmitting a digital image over a communication network | |
US20090245668A1 (en) | Picture encoding apparatus and method, program and recording medium | |
WO1999053429A1 (en) | Multiresolution compressed image management system and method | |
JP5469127B2 (en) | Image data encoding apparatus, operation control method thereof, and program thereof | |
JP4349816B2 (en) | Image processing apparatus, image compression apparatus, image processing method, image compression method, program, and recording medium | |
JP2004248152A (en) | Image compressor, image decompressor, image compressing metod, image decompressing metod, program, and recording medium | |
US8611686B2 (en) | Coding apparatus and method | |
JP2004242290A (en) | Image processing apparatus and image processing method, image edit processing system, image processing program, and storage medium | |
JP4671354B2 (en) | Image compression apparatus and image compression method | |
JP5088607B2 (en) | Method for reducing defects introduced in digital video data to be printed | |
US9521431B2 (en) | Method and a system for wavelet based processing | |
JP5201019B2 (en) | Image coding apparatus and image coding method | |
JP2005039793A (en) | Image encoding device, program, and storage medium | |
JP2007142614A (en) | Image processing apparatus and method, program, and information recording medium | |
JP4489474B2 (en) | Image processing apparatus, program, and recording medium | |
JP5843450B2 (en) | Image processing apparatus and control method thereof | |
JP2006086579A (en) | Image processing apparatus, program and storage medium | |
JP2004289333A (en) | Data processing apparatus, data processing method, program, and recording medium | |
JP4114144B2 (en) | Image encoding device, image encoding program, and image decoding program | |
JP4137458B2 (en) | Fixed-length image encoding device | |
JP4055994B2 (en) | Image processing apparatus, image processing method, program, and recording medium | |
Aguzzi et al. | A new algorithm for the embedding of a prediction mechanism into the JPEG2000 coding chain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120620 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130128 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5201019 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160222 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |