JP4737665B2 - Code processing apparatus, code processing method, program, and information recording medium - Google Patents
Code processing apparatus, code processing method, program, and information recording medium Download PDFInfo
- Publication number
- JP4737665B2 JP4737665B2 JP2005103188A JP2005103188A JP4737665B2 JP 4737665 B2 JP4737665 B2 JP 4737665B2 JP 2005103188 A JP2005103188 A JP 2005103188A JP 2005103188 A JP2005103188 A JP 2005103188A JP 4737665 B2 JP4737665 B2 JP 4737665B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- image quality
- control unit
- quality control
- code processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本発明は、画像から符号化データを生成する符号処理装置(エンコーダ)や、画像の符号化データから新たな符号化データを生成する符号処理装置(トランスコーダ又はパーサー)に係り、特に、符号破棄によるレート制御を行う符号処理装置に関する。 The present invention relates to a code processing device (encoder) that generates encoded data from an image and a code processing device (transcoder or parser) that generates new encoded data from encoded data of an image. The present invention relates to a code processing device that performs rate control according to.
人間の視覚特性は、彩度の大きさによって色信号の感度が変化する。例えば、赤信号の彩度が小さい場合には赤信号の歪は視覚的にわかりにくいが、赤信号の彩度が大きい場合には赤信号の歪は視覚的に顕著である。このことを根拠に、輝度及び色差信号を含む画像信号の符号化において、直交変換後の色差信号のDCレベルを参照し、当該色差信号の非線形量子化を行う発明が特許文献1に記載されている。
As for human visual characteristics, the sensitivity of the color signal varies depending on the magnitude of saturation. For example, when the saturation of the red signal is small, the distortion of the red signal is visually difficult to understand, but when the saturation of the red signal is large, the distortion of the red signal is visually noticeable. On the basis of this,
また、色差成分に対し、その量子化誤差が視覚的に均一になるように非線形量子化を行う発明が特許文献2に記載されている。
Further,
画像の符号化において、高圧縮率下でより良い主観画質を得るためには、人間の視覚特性の非線形性を利用するのが一般的である。この非線形性の代表例が、コントラストマスキングとよばれる現象である。 In image coding, in order to obtain better subjective image quality under a high compression rate, it is common to use the non-linearity of human visual characteristics. A typical example of this nonlinearity is a phenomenon called contrast masking.
コントラストマスキングとは、信号値自体が大きいほど視覚的な許容誤差が大きくなる効果である。周波数変換を利用する符号化においては、変換後の係数値が上記信号値に相当する。一般に、係数値が小さい範囲を除いて、許容量子化誤差は係数値のα乗(0<α≦1)に比例すると言われている(実験的には、α=0.7程度と言われており、α=1の場合が、いわゆるウェーバーの法則である)。簡単には、大きい係数ほど粗く量子化し、小さい係数ほど細かく量子化すべきである、ということである。 Contrast masking is an effect that the visual tolerance increases as the signal value itself increases. In encoding using frequency conversion, the coefficient value after conversion corresponds to the signal value. Generally, except for a small coefficient value range, it is said that the allowable quantization error is proportional to the coefficient value α power (0 <α ≦ 1) (experimentally, it is said that α = 0.7) , Α = 1 is the so-called Weber's law). In simple terms, larger coefficients should be quantized more coarsely, and smaller coefficients should be quantized finer.
しかし、例えばJPEG2000の基本仕様(Part1)においては、計算量を削減するために、ウェーブレット係数(周波数係数)に対しては線形量子化のみが可能であり(ウェーブレット変換の種類によっては線形量子化さえ行わない)、非線形量子化はJPEG2000の拡張仕様(Part2)でのみ可能になっている。 However, for example, in the basic specification of JPEG2000 (Part 1), in order to reduce the amount of calculation, only linear quantization is possible for wavelet coefficients (frequency coefficients). (None), non-linear quantization is possible only with the extended specification of JPEG2000 (Part 2).
したがって、JPEG2000の基本仕様内の符号化では、非線形量子化は不可能であるが、JPEG2000に代表される埋め込み符号化においては、ビットプレーン符号化後のエントロピー符号を破棄することによって、係数の量子化と同じ効果を得ることが可能である(いわゆるポスト量子化)。係数のビットプレーン1枚分の符号の破棄は、係数を2で量子化するのと同様な効果があるからである。 Therefore, non-linear quantization is impossible with the encoding within the basic specification of JPEG2000, but with embedded encoding represented by JPEG2000, the entropy code after bit-plane encoding is discarded, thereby quantizing the coefficient. It is possible to obtain the same effect as the quantization (so-called post-quantization). This is because discarding the code for one coefficient bit plane has the same effect as quantizing the coefficient by 2.
本発明の1つ目の目的は、周波数係数の非線形量子化が許容されていない符号化方式において、エントロピー符号の破棄(ポスト量子化)によって周波数係数の非線形量子化と同等な効果を簡易に得ること(「非線形性の反映」)にある。なお、エンコーダの外に、一旦生成された符号化ファイルに対するエントロピー符号の破棄(ポスト量子化)を主な目的とするトランスコーダ又はパーサーも、本発明の格好の適用対象である。よって、本明細書においては、エンコーダとトランスコーダ/パーサーを符号処理装置と総称する。 The first object of the present invention is to easily obtain the same effect as nonlinear quantization of frequency coefficients by discarding entropy codes (post-quantization) in an encoding system that does not allow nonlinear quantization of frequency coefficients. ("Reflection of non-linearity"). In addition to an encoder, a transcoder or a parser whose main purpose is to discard an entropy code (post-quantization) for an encoded file once generated is also a suitable application target of the present invention. Therefore, in this specification, an encoder and a transcoder / parser are collectively referred to as a code processing device.
次に、発明者は、係数を例えば二進値として扱う場合、各二進値ビットの視覚的な重要度自体が一様ではないことを見い出した。例えば、係数のMSBは、その係数の存在自体を担うもっとも重要なビットである。なぜならば、MSBが量子化で失われた場合(0になった場合)には、復号時の逆量子化を経ても、その係数は0のまま(失われたまま)であるのが通常だからである。 Next, the inventor has found that when the coefficients are treated as binary values, for example, the visual importance of each binary value bit itself is not uniform. For example, the MSB of a coefficient is the most important bit responsible for the existence of the coefficient itself. This is because when the MSB is lost due to quantization (when it becomes 0), it is normal that the coefficient remains 0 (is lost) even after the inverse quantization at the time of decoding. It is.
一方、係数のLSB付近のビット(例えば、係数の下位3ビット)も、係数の存在自体は担わないが、その画像におけるテクスチャ成分を担う視覚特性上重要なビットである。これらの下位ビットが失われると、画像のテクスチャが失われ、過度に平滑化された印象を与えてしまうことがあるからである。 On the other hand, the bits in the vicinity of the LSB of the coefficient (for example, the lower 3 bits of the coefficient) are also important bits in terms of visual characteristics that bear the texture component in the image, although they do not bear the presence of the coefficient itself. This is because if these lower bits are lost, the texture of the image may be lost, giving an over-smoothed impression.
これら2つの例に対し、MSBでも下位ビットでもないビットは、視覚特性上は相対的な重要度が低いと言える。よって、係数のビットに対して、かかる視覚特性上の特殊性を加味できれば、より主観画質の高いレート制御を行うことが可能となる。これが本発明の2つ目の目的(「特殊性の反映」)である。 In contrast to these two examples, it can be said that bits that are neither the MSB nor the low-order bits are relatively less important in terms of visual characteristics. Therefore, if such special characteristics in visual characteristics can be added to the coefficient bits, rate control with higher subjective image quality can be performed. This is the second purpose of the present invention ("reflection of speciality").
以下、各請求項に係る発明について順を追って説明する。 Hereinafter, the invention according to each claim will be described in order.
まず、本発明の適用対象として好適な符号化方式の例はJPEG2000であるので、JPEG2000の概要について説明する。ただし、本発明は、JPEG2000に限らず、ブロック単位でのビットプレーン符号化のような、周波数係数を絶対値方向に複数に分割して符号単位を構成し、複数の画質制御単位を有する符号化方式に広く適用可能である。 First, JPEG2000 is an example of an encoding method suitable as an application target of the present invention, so an outline of JPEG2000 will be described. However, the present invention is not limited to JPEG2000, and a coding unit having a plurality of image quality control units is formed by dividing a frequency coefficient into a plurality of pieces in the absolute value direction, such as bit plane coding in block units. Widely applicable to methods.
JPEG2000の符号化(圧縮)処理は概ね図1に示す流れで行われる。画像は矩形のタイルに分割され(分割数≧1)、タイル単位で処理される。 JPEG2000 encoding (compression) processing is generally performed according to the flow shown in FIG. The image is divided into rectangular tiles (number of divisions ≧ 1) and processed in tile units.
まず、各タイルは輝度・色差等のコンポ−ネントへ色変換される(step1)。この際、RGBカラー画像などは、そのダイナミックレンジの半分を減ずるためのDCレベルシフトも行われる。 First, each tile is color-converted into components such as luminance and color difference (step 1). At this time, the RGB color image or the like is also subjected to DC level shift to reduce half of its dynamic range.
変換後のコンポ−ネント(タイルコンポ−ネントと呼ばれる)は2次元ウェーブレット変換によってサブバンドに分割される(step2)。すなわち、1回の2次元ウェーブレット変換によってLL,HL,LH,HHと略称される4つのサブバンドに分割される。LLサブバンドに対して再帰的に2次元ウェーブレット変換(デコンポジション)が繰り返され、最終的に1つのLLサブバンドと複数のHL,LH,HHサブバンドが生成される。各サブバンドの係数は必要に応じて線形量子化を施される(step3)。 The component after transformation (referred to as a tile component) is divided into subbands by two-dimensional wavelet transformation (step 2). That is, it is divided into four subbands abbreviated as LL, HL, LH, and HH by one two-dimensional wavelet transform. Two-dimensional wavelet transform (decomposition) is recursively repeated for the LL subbands, and finally one LL subband and a plurality of HL, LH, and HH subbands are generated. The coefficients of each subband are linearly quantized as required (step 3).
次に、各サブバンドはプリシンクトとよばれる矩形に分割される。図2に示すように、プリシンクトとは、サブバンドを矩形に分割したもので、大まかには画像中の場所(Position)を表すものである。HL,LH,HHの3つのサブバンドについてのプリシンクトは、空間的に対応する3つが1まとまりとして扱われる。ただし、LLサブバンドを分割したプリシンクトは1つで1まとまりとして扱われる。プリシンクトはサブバンドと同じサイズにできる。プリシンクトをさらに矩形に分割したものがコードブロックである(図2)。よって、物理的な大きさの序列は
画像≧タイル>サブバンド≧プリシンクト≧コードブロック
となる。なお、後の説明のため、デコンポジションレベル(施すウェーブレット変換の回数)と解像度レベルの関係を図3に示す。
Next, each subband is divided into rectangles called precincts. As shown in FIG. 2, the precinct is a subband divided into rectangles, and roughly represents a position in the image. Precincts for the three subbands HL, LH, and HH are treated as a group of three spatially corresponding ones. However, one precinct obtained by dividing the LL subband is handled as one unit. The precinct can be the same size as the subband. A code block is obtained by further dividing the precinct into rectangles (FIG. 2). Therefore, the physical size order is image ≧ tile> subband ≧ precinct ≧ code block. For the following explanation, FIG. 3 shows the relationship between the decomposition level (the number of wavelet transforms to be performed) and the resolution level.
以上の分割の後、係数に対しMQ符号化と呼ばれるエントロピー符号化(ビットプレーン符号化)が、コードブロック毎かつビットプレーン順(より正確には、サブビットプレーン順)になされる(step4)。サブビットプレーンとは、1枚のビットプレーンに含まれるビットを3種類に分類した結果得られる、ビットプレーンの部分集合3つを言う。したがって、JPEG2000の場合は、1つのコードブロックの1つのサブビットプレーンの符号が、符号の最小単位(符号単位)である。 After the above division, entropy coding (bit plane coding) called MQ coding is performed on the coefficients for each code block and in the bit plane order (more precisely, in the sub bit plane order) (step 4). The sub bit plane refers to three subsets of bit planes obtained as a result of classifying the bits included in one bit plane into three types. Therefore, in the case of JPEG2000, the code of one sub bit plane of one code block is the minimum code unit.
次に、サブビットプレーンの符号から、所望の総符号量(ファイル容量)に収めるために必要な符号だけを選択して(不要な符号を破棄(トランケート)して)パケットを生成する、いわゆるレート制御と呼ばれる処理がなされる(step5)。そして、生成されたパケットを所定の順序で並べて必要なタグ又はタグ情報を付加することにより符号化データ(コードストリーム)を生成する(step6)。 Next, from the sub-bit plane codes, only the codes necessary to fit within the desired total code amount (file capacity) are selected (unnecessary codes are discarded (truncated)) to generate packets, so-called rate A process called control is performed (step 5). Then, encoded data (code stream) is generated by arranging the generated packets in a predetermined order and adding necessary tags or tag information (step 6).
さて、step5におけるレート制御は、単に総符号量を目標に合わせるだけでなく、その符号量において最大のPSNR(Peak Signal−to−Noise Ratio)や最高の画質を得るために行われる。そのために、コードブロック毎かつサブビットプレーン毎に、符号の価値(重要度)の順序づけを行って、符号の取捨選択を行う。 The rate control in step 5 is performed not only to match the total code amount to the target, but also to obtain the maximum PSNR (Peak Signal-to-Noise Ratio) and the highest image quality at that code amount. For this purpose, the code values (importance) are ordered for each code block and each sub-bit plane, and the codes are selected.
良好なPSNRを得ることを目的とした場合、各コードブロックの各サブビットプレーンの符号の価値は、典型的には、
「その符号を破棄した場合の画素値の量子化誤差の増分/その符号量」‥‥(A)
で表すことができる。すなわち、ある符号を捨てても誤差が増えないのであれば、その符号は不要な符号である。ある符号を維持した場合に、誤差が減り、かつ、総符号量が増えないのであれば、その符号は維持すべき有用な符号である。
When aiming to obtain a good PSNR, the value of the code of each sub-bit plane of each code block is typically
“Increment of pixel value quantization error when the code is discarded / code amount” (A)
Can be expressed as That is, if an error does not increase even if a certain code is discarded, the code is an unnecessary code. When a certain code is maintained, if the error is reduced and the total code amount does not increase, the code is a useful code to be maintained.
この様に、誤差量の増分値および符号量の増分値で規定される、符号の重要度を示す指標を一般にディストーションスロープと呼ぶ。ディストーションスロープ自体の算出式は、典型的には上記式(A)であるが、目的によって様々である。 In this way, the index indicating the importance of the sign, which is defined by the increment value of the error amount and the increment value of the code amount, is generally called a distortion slope. The calculation formula of the distortion slope itself is typically the above formula (A), but it varies depending on the purpose.
さて、上記式(A)の分母である符号長は、エントロピー符号化の際に実データとして得られる量である。一方、分子である量子化誤差の増分は、コードブロック単位での誤差の増分であり、最大のPSNRを得ることを目的とする場合には、コードブロック単位での二乗誤差の増分として算出される(PSNRを最大にするには、二乗誤差を最小にする必要があるからである)。すなわち、分子は、当該コードブロックに含まれる全ての係数について、ビットを破棄した場合に増加する二乗誤差の総和をとったものにサブバンドゲイン(後述)を乗じたものである。図4のΔDi/ΔLiは、PSNRを最大にするために使用されるディストーションスロープを示したものである。 Now, the code length, which is the denominator of the above formula (A), is an amount obtained as actual data at the time of entropy coding. On the other hand, the increment of quantization error, which is a numerator , is the increment of error in units of code blocks, and is calculated as the increment of square error in units of code blocks when the objective is to obtain the maximum PSNR. (To maximize PSNR, the square error needs to be minimized). That is, the numerator is obtained by multiplying the sum of square errors that increase when bits are discarded for all the coefficients included in the code block by a subband gain (described later). ΔDi / ΔLi in FIG. 4 indicates the distortion slope used to maximize the PSNR.
ここで、前記符号の価値が「ビットプレーン単位」で算出される点が重要である。つまり、MSB位置のビットを符号化した符号、LSB位置のビットを符号化した符号、という様に、ビットプレーン符号化における符号は「ビット位置」という属性を有する。つまり、ビット位置をパラメータとして、符号の価値に重み付けを行い、重み付けの結果をもとに符号の取捨選択を行うことが可能なのである。例えば、上位ビットの符号の重要度を相対的に下げるという操作は、その操作をしない場合に比べ、絶対値の大きい係数(が含まれるコードブロック)に対して多めの符号破棄を行うということであり、コントラストマスキング効果の反映に他ならない。従来から用いられているディストーションスロープは、量子化誤差と符号長で規定される数学的な算出値であるが、これにビット位置への考慮を加えることで、新たに非線形性や特殊性をディストーションスロープに反映させることができるのである。 Here, it is important that the value of the code is calculated in “bit plane units”. That is, a code in bit plane coding has an attribute of “bit position”, such as a code in which bits in MSB positions are encoded and a code in which bits at LSB positions are encoded. That is, it is possible to weight the code value using the bit position as a parameter, and to select the code based on the weighting result. For example, the operation of lowering the importance of the sign of the upper bits is that a larger number of codes are discarded for a coefficient having a large absolute value (a code block that includes) than when the operation is not performed. Yes, it is a reflection of the contrast masking effect. The distortion slope that has been used in the past is a mathematical calculation value defined by the quantization error and the code length, but by adding consideration to the bit position, distortion and nonlinearity are newly added. It can be reflected in the slope.
なお、以上ではコードブロック単位で符号の重要度を算出する例を説明したが、コードブロックの集合、例えばサブバンド単位でのサブビットプレーンごとに重要度を算出してレート制御を行うことも可能である。また、コードブロック単位ではあるものの、サブビットプレーン毎ではなくビットプレーン毎に重要度を算出することも可能である。どの単位を重要度算出の単位にとるかは、レート制御の精度,複雑度,処理速度等の兼ね合いによって決定される。したがって、本明細書においては、符号単位(コードブロック毎かつサブビットプレーン単位)の集合で構成されるこうした単位を、「画質制御単位」と総称する。 In the above description, the code importance level is calculated in units of code blocks. However, it is also possible to perform rate control by calculating the level of importance for each set of code blocks, for example, sub-bit planes in subband units. It is. In addition, although it is a code block unit, it is possible to calculate the importance level for each bit plane instead of for each sub-bit plane. Which unit is used as the unit of importance calculation is determined by a balance of accuracy, complexity, processing speed, etc. of rate control. Therefore, in the present specification, such units composed of a set of code units (each code block and each sub-bit plane) are collectively referred to as “image quality control unit”.
また,かかる画質制御は、符号化処理の際に適用されるほか、生成済みの符号ファイルから、ファイル容量を削減した新たなファイルを生成する、いわゆる「トランスコーディング」や「パーシング」を行う場合にも適用できる。JPEG2000のような、符号単位の連結によって符号全体が構成される符号化方式(いわゆる埋め込み符号化)では、符号ファイル生成後も、不要な符号単位を切り捨てることによって、エントロピー復号(JPEG2000の場合はMQ復号)をすることなく、ファイル容量を削減することができるからである。よって、本明細書においては、画像から符号ファイルを生成するエンコーダと、生成された符号ファイルのトランスコーディングを行うトランスコーダ又はパーサーとを符号処理装置と総称する。なお、トランスコーダ/パーサーにおける画質制御のためには、例えば、符号ファイル中に、あるいは符号ファイルと対応するような形で、コードブロックごとの前記スロープと後述する式Lによる符号長を予め保持しておくことができるが、それをトランスコーダ/パーサーにおいて算出(推定)するようにしてもよい。 Such image quality control is applied in the case of encoding processing, and also when performing so-called “transcoding” or “parsing”, in which a new file with a reduced file size is generated from a generated code file. Is also applicable. In an encoding method (so-called embedded encoding) in which the entire code is formed by concatenating code units, such as JPEG2000, entropy decoding (MQ in the case of JPEG2000) is performed by truncating unnecessary code units after the code file is generated. This is because the file capacity can be reduced without performing decryption. Therefore, in this specification, an encoder that generates a code file from an image and a transcoder or parser that transcodes the generated code file are collectively referred to as a code processing device. In order to control the image quality in the transcoder / parser, for example, the slope for each code block and the code length according to the expression L described later are stored in advance in the code file or in a form corresponding to the code file. However, it may be calculated (estimated) by the transcoder / parser.
さて、前記非線形性を簡易に反映させるためには、通常のディストーションスロープに、前記画質制御単位のビット位置をパラメータとした非線形な関数を乗じればよい。従来から用いられているディストーションスロープは、量子化誤差と符号長の比として数学的に算出された計算値であり、これにビット位置を考慮して非線形性(や特殊性)を反映される例は知られていない。 In order to easily reflect the nonlinearity, a normal distortion slope may be multiplied by a nonlinear function using the bit position of the image quality control unit as a parameter. The distortion slope that has been used in the past is a calculated value that is mathematically calculated as the ratio between the quantization error and the code length, and this reflects the nonlinearity (or specialness) in consideration of the bit position. Is not known.
よって、請求項1に係る発明は、周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対するレート制御において、符号単位の集合で構成される所定の単位(以下、画質制御単位と記す)毎に算出された符号の重要度の指標であるディストーションスロープに基づいて符号の取捨選択をする符号処理装置において、画質制御単位のディストーションスロープの算出式に、該画質制御単位に含まれる符号単位の分割位置をパラメータとした非線形関数の乗算を含むことを特徴とする符号処理装置である。また、請求項2に係る発明は、請求項1記載の符号処理装置であって、前記分割が二進値のビット単位であることを特徴とする符号処理装置である。かかる構成によれば、画質制御単位のディストーションスロープに非線形性を簡易に反映させ、主観画質等の良好なレート制御が可能となる。
Therefore, in the invention according to
次に、前記特殊性を簡易に反映するためには、当該画質制御単位(符号単位)を構成する係数の、当該符号単位のビット位置のビットがMSBかLSBか等をパラメータとした非線形関数を、当該ビットの破棄によって増加する量子化誤差に乗じればよい。当該ビットがMSBか否かは係数毎に異なるため、前記乗算は係数毎に行うことになる。JPEG2000では、通常、ディストーションスロープの分子は「当該コードブロックに含まれる係数の、破棄されるビットプレーン位置のビットを破棄した場合に増加する二乗誤差について、当該コードブロック内での総和をとったもの」であるから、「当該コードブロックに含まれる係数の、破棄されるビットプレーン位置のビットを破棄した場合に増加する二乗誤差に、当該ビット位置がMSBかLSBか等をパラメータとした非線形関数を乗じたものについて、コードブロック内での総和をとったもの」とすればよい。 Next, in order to easily reflect the peculiarity, a nonlinear function having a parameter such as whether the bit at the bit position of the code unit of the coefficient constituting the image quality control unit (code unit) is MSB or LSB is used. The quantization error that increases due to the discarding of the bit may be multiplied. Since whether or not the bit is an MSB differs for each coefficient, the multiplication is performed for each coefficient. In JPEG2000, the distortion slope numerator is usually the sum of the square errors that increase when the bits in the discarded bit plane position of the coefficient included in the code block are discarded. Therefore, a non-linear function with a parameter such as whether the bit position is MSB or LSB is added to the square error that increases when the bits in the bit plane position to be discarded of the coefficient included in the code block are discarded. What is multiplied is the sum of the code blocks.
よって、請求項3に係る発明は、周波数係数を絶対値方向に複数に分割して符号単位を構成する符号化方式の符号に対するレート制御において、符号単位の集合で構成される所定の単位(以下、画質制御単位と記す)毎に算出された符号の重要度の指標であるディストーションスロープに基づいて符号の取捨選択をする符号処理装置において、画質制御単位の重要度の算出式に該画質制御単位に含まれるディストーションスロープの算出式に、該画質制御単位に含まれる周波数係数の分割部分が特定の部分であるか否かをパラメータとした非線形関数の乗算を含むことを特徴とする符号処理装置である。また、請求項4に係る発明は、請求項3に係る発明の符号処理装置であって、前記分割が二進値のビット単位であることを特徴とする符号処理装置である。かかる構成によれば、画質制御単位のディストーションスロープに前記特殊性を簡易に反映させることができるため、主観画質等の良好なレート制御が可能となる。
Therefore, the invention according to
さて、請求項1乃至4に係る発明において、非線形性をどう与えるかは、それによりどのような目的(効果)を得ようとするかに依存する。例えば、より高い主観画質を得ることが目的であれば、マスキング効果を利用すべく、前記ビット位置が高いほど、あるいは当該ビットがMSBである場合に前記非線形関数が小さな値をとるようにすればよい。逆に、主観画質の高低ではなく、できるだけ多くのエッジが残った状態の画質を得ることが目的であれば(例えば防犯カメラ等で犯人の人相を特定したい場合には、輪郭,しわ,ほくろ等のエッジ情報が重要である)、前記ビット位置が高いほど(すなわち、当該ビットがエッジを担うMSBである確率が高いほど)、あるいは当該ビットがMSBである場合に、前記非線形関数が大きくなるようにすればよい。
In the inventions according to
請求項5に係る発明は、請求項2に係る発明の符号処理装置であって、前記画質制御単位に含まれる符号単位の分割ビット位置が高いほど前記非線形関数が小さな値をとることを特徴とする符号処理装置である。かかる構成によれば、マスキング効果を反映させたレート制御が可能となる。
The invention according to claim 5 is the code processing apparatus according to
また、請求項6に係る発明は、請求項4に係る発明の符号処理装置であって、前記画質制御単位に含まれる周波数係数の分割部分が最上位ビット(MSB)である場合に前記非線形関数が最小値をとることを特徴とする符号処理装置である。かかる構成によれば、エッジの維持を重要視しないレート制御が可能となる。
The invention according to claim 6 is the code processing apparatus according to
また、請求項7に係る発明は、請求項2に係る発明の符号処理装置であって、前記画質制御単位に含まれる符号単位の分割ビット位置が高いほど前記非線形関数が大きな値をとることを特徴とする符号処理装置である。かかる構成によれば、エッジの維持を重要視したレート制御が可能となる。
The invention according to claim 7 is the code processing apparatus according to
また、請求項8に係る発明は、請求項4に係る発明の符号処理装置であって、前記画質制御単位に含まれる周波数係数の分割部分が最上位ビット(MSB)である場合に前記非線形関数が最大値をとることを特徴とする符号処理装置である。かかる構成によれば、エッジの維持を重要視したレート制御が可能となる。
The invention according to claim 8 is the code processing device according to
先述のように、テクチャを保存したい場合には、LSB付近のビットプレーンを維持するのが望ましい。 As mentioned above, it is desirable to maintain the bit plane near the LSB when you want to preserve the texture.
よって、請求項9に係る発明は、請求項2記載の符号処理装置であって、前記画質制御単位に含まれる符号単位の分割単位の分割ビット位置が所定のビット位置より下位の場合に前記非線形関数は最小値をとらないことを特徴とする符号処理装置である。かかる構成によれば、テクスチャの維持を重要視したレート制御が可能となる。
Therefore, the invention according to claim 9 is the code processing device according to
また、請求項10に係る発明は、請求項4に係る発明の符号処理装置であって、前記画質制御単位に含まれる周波数係数の分割部分が所定のビット位置より下位のビットである場合に前記非線形関数は最小値をとらないことを特徴とする符号処理装置である。かかる構成によれば、テクスチャの維持を重要視したレート制御が可能となる。
The invention according to
さて、静止画では、文字通り静止しているため細部を観察されやすいため、動画に比べ、高い解像度や多くの高周波成分を必要する。一方、動画は、画面の連続として表示され、それを見る人間は画面内の細部よりも画面間の差分に敏感となる。特に低周派成分の誤差が大きい場合には、画面間の広い領域に渡って差分が大きくなり、該差分がうねりとなって観察されることがある。したがって、動画については、静止画に比べ、より低周波成分を重視した、逆に言えば高周波成分を軽視した取扱いが望ましいことが多い。高周波成分の軽視は、すなわちエッジの軽視であり、これは上位ビットの符号の重要度を低くすることに他ならない。 Now, since a still image is literally still, it is easy to observe details, so a higher resolution and more high-frequency components are required than a moving image. On the other hand, moving images are displayed as a series of screens, and the person who sees them is more sensitive to differences between screens than details in the screen. In particular, when the error of the low frequency component is large, the difference increases over a wide area between the screens, and the difference may be observed as undulation. Therefore, with regard to moving images, it is often desirable to deal with low frequency components more importantly than still images, and conversely, handling with high frequency components neglected. The neglect of the high-frequency component is the neglect of the edge, which is nothing but reducing the importance of the sign of the upper bits.
よって、請求項11に係る発明は、請求項1乃至4のいずれか1項に係る発明の符号処理装置であって、処理対象が動画であるか静止画であるかによって前記非線形関数を異ならせることを特徴とする符号処理装置である。かかる構成によれば、動画と静止画の特性の違いを考慮したレート制御が可能となる。
Therefore, the invention according to
また、請求項12に係る発明は、請求項2に係る発明の符号処理装置であって、処理対象が動画である場合、前記画質制御単位に含まれる符号単位の分割ビット位置が高いほど前記非線形関数が小さな値をとることを特徴とする符号処理装置である。かかる構成によれば、動画の特性を考慮したレート制御が可能となる。
The invention according to
また、請求項13に係る発明は、請求項4に係る発明の符号処理装置であって、処理対象が動画である場合、前記画質制御単位に含まれる周波数係数の分割部分が最上位ビット(MSB)であるときに前記非線形関数が最小値をとることを特徴とする符号処理装置である。かかる構成によれば、動画の特性を考慮したレート制御が可能となる。
The invention according to claim 13 is the code processing device of the invention according to
また、請求項17に係る発明は、請求項1乃至13のいずれか1項に係る発明の符号処理装置としてコンピュータを機能させるプログラムであり、コンピュータを利用して請求項1乃至13に係る発明の符号処理装置を実現可能とするものである。
The invention according to claim 17 is a program causing a computer to function as a coding apparatus of the invention according to any one of
また、請求項18に係る発明は、請求項1乃至13のいずれか1項に係る発明の符号処理装置としてコンピュータを機能させるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体であり、コンピュータを利用して請求項1乃至13に係る発明の符号処理装置を実現可能とするものである。
The invention according to claim 18 is a computer-readable information recording medium in which a program for causing a computer to function as the code processing apparatus according to any one of
以上に述べたように、請求項1乃至16に係る発明によれば、エンコーダやトランスコーダもしくはパーサーにおいて、周波数係数の非線形量子化を用いることなく、主観画質の良好なレート制御、エッジの維持を重要視しないレート制御、エッジの維持を重要視したレート制御、テクスチャの維持を重要視したレート制御、動画と静止画の特性の違いを考慮したレート制御、動画の特性を考慮したレート制御が可能となる。また、請求項17,18に係る発明によれば、コンピュータを利用して請求項1乃至13に係る発明の符号処理装置を容易に実現可能となる、等々の効果を得られる。
As described above, according to the inventions according to
図5は、本発明の一実施形態に係る符号処理装置のブロック図である。本実施形態に係る符号処理装置は、JPEG2000のアルゴリズムに準拠して画像からその符号ファイルを生成するエンコーダであり、図1に示したstep1,2,3,4,5,6に対応した処理を実行するための処理ブロック100,101,102,103,104,105から構成される。この符号処理装置の基本的な処理動作は従来のJPEG2000に準拠したエンコーダと同様であるが、処理ブロック103におけるディストーションスロープの計算に本発明が適用され、その処理内容は本発明に特有である。そして、処理ブロック103で求められたディストーションスロープが処理ブロック104でのレート制御に適用される。図13に処理ブロック103,104,105による処理の流れを示す。
FIG. 5 is a block diagram of a code processing device according to an embodiment of the present invention. The code processing apparatus according to the present embodiment is an encoder that generates a code file from an image in accordance with the JPEG2000 algorithm, and performs processing corresponding to
図13のフローチャートに沿った説明に先立ち、レート制御に必要な符号長計算、誤差計算、ディストーションスロープの計算の方法について説明する。 Prior to the description along the flowchart of FIG. 13, a method for calculating the code length, error calculation, and distortion slope necessary for rate control will be described.
まず、JPEG2000において各サブビットプレーンの符号長を計算する方法について説明する。この計算は処理ブロック103で行われる。
First, a method for calculating the code length of each sub-bit plane in JPEG2000 will be described. This calculation is performed in
JPEG2000のエントロピー符号化はコードブロック単位でビットプレーン順になされる。例えば、次のようなネストされたforループ
for(コンポ−ネント){
for(解像度){
for(サブバンド){
for(プリシンクト){
for(コードブロック){
for(サブビットプレーン){
MQ符号化
}
}
}
}
}
}
により定まる順で処理される(各forループの物理的な位置関係に関しては図2及び図3を参照)。
JPEG2000 entropy coding is performed in bit plane order in units of code blocks. For example, the nested for loop
for (component) {
for (resolution) {
for (subband) {
for (Precinct) {
for (code block) {
for (subbit plane) {
MQ coding
}
}
}
}
}
}
(For the physical positional relationship of each for loop, see FIG. 2 and FIG. 3).
この場合、MQ符号化で生成されるMQ符号は、図7に示す様にサブビットプレーン順に生成され、図8に示す様にシーケンシャルに連結されたものとなる。MQ符号器は、各サブビットプレーンkの符号化が終わった時点で、その時点までに生成した(正確には、バイト単位ではき出した)符号長の合計L(k)を出力する。よって、この合計値を保持しておき、あるサブビットプレーンでの符号長合計値と、その直前のサブビットプレーンまでの符号長合計値との差分をとることにより、各サブビットプレーンごとの符号長を算出することができる。 In this case, the MQ codes generated by the MQ encoding are generated in the order of the sub bit planes as shown in FIG. 7, and are sequentially concatenated as shown in FIG. The MQ encoder outputs the total L (k) of the code lengths generated up to that point (exactly, in units of bytes) when the encoding of each sub-bit plane k is completed. Therefore, by storing this total value and taking the difference between the code length total value in a certain sub-bit plane and the code length total value up to the sub-bit plane immediately before it, the code for each sub-bit plane is obtained. The length can be calculated.
レート制御(処理ブロック104)においては、図8のシーケンシャルな符号のうち、下位サブビットプレーン側から不要な部分を破棄(トランケート)し、必要な符号のみを集めてパケット生成を行う。ただし、サブビットプレーンkより下の符号が破棄されたMQ符号が正しくMQ復号されるためには、最大で、サブビットプレーンkまでに生成した符号長の合計+5バイト分の符号が必要になることがある(符号はバイト単位でMQ符号器から出力されるので、符号器内部に残っているバイト未満の符号があること等の事情による)。よって、ここでは、
「各サブビットプレーンの符号化が終わった時点で、その時点までに生成した符号長の合計L(k)+5」 ‥‥式L
を保持しておき、この差分をとることで各サブビットプレーンごとの符号長ΔLを算出するものとする。
In rate control (processing block 104), unnecessary portions are discarded (truncated) from the lower sub-bitplane side in the sequential codes of FIG. 8, and only necessary codes are collected to generate packets. However, in order to correctly decode the MQ code in which the code below the sub-bit plane k is discarded, a code corresponding to the sum of the code lengths generated up to the sub-bit plane k plus 5 bytes is required at the maximum. (Since the code is output from the MQ encoder in byte units, there are codes less than bytes remaining inside the encoder, etc.). So here,
“When each sub-bit plane has been encoded, the total length L (k) +5 of the code lengths generated up to that point” Expression L
And the code length ΔL for each sub-bit plane is calculated by taking this difference.
次に、各サブビットプレーンを破棄した場合の二乗誤差の増分の算出法について説明する。図9に示すように、
・量子化前のウェーブレット係数の絶対値を y
・ビットプレーンをp枚トランケートした後(2pで量子化し整数化した後)のウェーブレット係数を vp
・ビットプレーンをp枚トランケートした後,逆量子化した後のウェーブレット係数を
yp^
・ウェーブレット係数yを,2pで除算した後のウェーブレット係数の小数部分を vp ~
とする。トランケーションでは、量子化後のウェーブレット係数はフロア関数で整数化されるが、整数部分vpと小数部分vp ~に分けて考える。なお、サブビットプレーンはビットプレーンの部分集合であるから、当該サブビットプレーンが含まれるビットプレーンがトランケートされた場合には、その各サブビットプレーンもトランケートされことになる。
Next, a method of calculating the square error increment when each sub bit plane is discarded will be described. As shown in FIG.
・ The absolute value of wavelet coefficient before quantization is y
・ The wavelet coefficient after truncating p bit planes (quantized by 2 p and converted to an integer) is v p
・ After truncating p bit planes, wavelet coefficients after dequantization
y p ^
・ The wavelet coefficient y divided by 2 p is the fractional part of the wavelet coefficient v p ~
And In truncation, wavelet coefficients after quantization are converted into integers by a floor function, but are considered by dividing them into an integer part v p and a decimal part v p ~ . Since a sub bit plane is a subset of bit planes, when a bit plane including the sub bit plane is truncated, each sub bit plane is also truncated.
トランケートするビットプレーンをp枚からp+1枚に増やしたときの二乗誤差の
増分Δ(D2)は、
Δ(D2)=(y(p+1)^−y)2−(yp^−y)2
となるが、これを小数部分vp ~の関数として表す。
The square error increment Δ (D 2 ) when truncating bitplanes from p to p + 1 is
Δ (D 2 ) = (y (p + 1) ^ −y) 2 − (y p ^ −y) 2
This is expressed as a function of the fractional part v p ~ .
まず、係数yの大きさとトランケート量の大小関係により、1つの係数について
(ケースA)vp=0かつvp+1=0 (このときΔ(D2)=0)
(ケースB)vp=1かつvp+1=0 (p+1枚目で、ちょうど係数yのMSBがトランケートされる)
(ケースC)vp≧2かつvp+1≧1 (p+1枚目でも、まだ係数yのMSBが生き残る)
の3通りのいずれかが成立する(以下、vp+1=0の場合に注意を要する)。
First, depending on the magnitude relationship between the magnitude of the coefficient y and the truncation amount, one coefficient (case A) v p = 0 and v p + 1 = 0 (At this time Δ (D 2 ) = 0)
(Case B) v p = 1 and v p + 1 = 0 (The MSB with the coefficient y is truncated on the p + 1th sheet)
(Case C) v p ≧ 2 and v p + 1 ≧ 1 (p + 1 th in even still survive MSB of the coefficient y)
One of the following three holds (be careful when v p + 1 = 0).
また、上記小数部分の定義より、vp ~=y/2p−vpであるから、
y=2p(vp+vp ~) ‥‥(1)
同様に、vp+1 ~=y/2(p+1)−vp+1より、
y=2p+1(vp+1+v(p+1) ~) ‥‥(2)
ただし、vp+1=0のときは、
y=2p+1・v(p+1) ~ ‥‥(3)となる。
From the definition of the decimal part above, v p ~ = y / 2 p −v p , so
y = 2 p (v p + v p ~ ) (1)
Similarly, from v p + 1 ~ = y / 2 (p + 1) −v p + 1 ,
y = 2 p + 1 (v p + 1 + v (p + 1) ~ ) (2)
However, when v p + 1 = 0,
y = 2 p + 1 · v (p + 1) ~ (3)
また,逆量子化後の係数は、区間中央に復号するとして、
yp^=2p(vp+0.5) (ただしvp≠0) ‥‥(4)
ただし、量子化後0となった係数は0に復号するので、
yp^=0 (ただしvp=0) ‥‥(5)
同様に、
y(p+1)^=2p+1(vp+1+0.5) (ただしvp+1≠0) ‥‥(6)
y(p+1)^=0 (ただしvp+1=0) ‥‥(7)
となる。
Also, the coefficient after inverse quantization is decoded at the center of the section,
y p ^ = 2 p (v p +0.5) (where v p ≠ 0) (4)
However, since the coefficient that became 0 after quantization is decoded to 0,
y p ^ = 0 (where v p = 0) (5)
Similarly,
y (p + 1) ^ = 2 p + 1 (v p + 1 +0.5) (where v p + 1 ≠ 0) (6)
y (p + 1) ^ = 0 (where v p + 1 = 0) (7)
It becomes.
(ケースA)の様に、注目係数について、vp=0のときは、トランケートする枚数をp枚からp+1枚に増やしても、これ以上誤差は増えない。 As in (Case A), with respect to the attention coefficient, when v p = 0, the error does not increase even if the number of truncation is increased from p to p + 1.
(ケースB)の様に、注目係数について、vp=1かつvp+1=0 のとき、二乗誤差の
増分Δ(D2)は,
Δ(D2)=(y(p+1)^−y)2−(yp^−y)2
=(0−y)2−(yp^−y)2 (∵式(7))
=y2−(yp^−y)2
=(2p+1・v(p+1) ~)2−(2p(vp+0.5)−2p(vp+vp ~))2 (∵式(3),(4),(1))
=(2p+1・v(p+1) ~)2−(2p(0.5−vp ~))2
=22p{(2・v(p+1) ~)2−(vp ~−0.5)2}
ここで、vp ~=2・v(p+1) ~−|_2・v(p+1) ~_| ‥‥(8)
ただし、式(8)中の|_x_|は、xのフロア関数(実数xを、xを越えず、かつ、xに最も近い整数に置換する関数)を示す。
As in (Case B), when v p = 1 and v p + 1 = 0, the square error increment Δ (D 2 ) is
Δ (D 2 ) = (y (p + 1) ^ −y) 2 − (y p ^ −y) 2
= (0−y) 2 − (y p ^ −y) 2 (Equation (7))
= y 2 − (y p ^ −y) 2
= (2 p + 1 · v (p + 1) ~ ) 2 − (2 p (v p +0.5) −2 p (v p + v p ~ )) 2 (Equation (3), (4), (1))
= (2 p + 1・ v (p + 1) ~ ) 2 − (2 p (0.5−v p ~ )) 2
= 2 2p {(2 ・ v (p + 1) ~ ) 2 − (v p ~ −0.5) 2 }
Where v p ~ = 2 ・ v (p + 1) ~ − | _2 ・ v (p + 1) ~ _ | (8)
In Equation (8), | _x_ | represents a floor function of x (a function that replaces the real number x with an integer that does not exceed x and is closest to x).
また、vp+1=0のとき、|_2・v(p+1) ~_|≧1 なので、vp ~=2・v(p+1) ~−1
∴Δ(D2)=22p{(2・v(p+1) ~)2−(2・v(p+1) ~−1.5)2}≡22p・S(v(p+1) ~)
となる。
When v p + 1 = 0, | _2 · v (p + 1) ~ _ | ≧ 1, so v p ~ = 2 · v (p + 1) ~ −1
∴Δ (D 2 ) = 2 2p {(2 ・ v (p + 1) ~ ) 2 − (2 ・ v (p + 1) ~ −1.5) 2 } ≡2 2p・ S (v (p + 1) ~ )
It becomes.
(ケースC)の場合、二乗誤差の増分Δ(D2)は,
Δ(D2)=(y(p+1)^−y)2−(yp^−y)2
=(2p+1(vp+1+0.5)−2p+1(vp+1+v(p+1) ~))2−(2p(vp+0.5)−2p(vp+vp ~))2
(∵式(6),(2),(4),(1))
=(2p+1(0.5−v(p+1) ~))2−(2p(0.5−vp ~))2
=22p{(2・v(p+1) ~−1)2−(vp ~−0.5)2}
=22p{(2・v(p+1) ~−1)2−(2・v(p+1) ~−|_2・v(p+1) ~_|−0.5)2}≡22p・M(v(p+1) ~)
となる。
In case C, the square error increment Δ (D 2 ) is
Δ (D 2 ) = (y (p + 1) ^ −y) 2 − (y p ^ −y) 2
= (2 p + 1 (v p + 1 +0.5) −2 p + 1 (v p + 1 + v (p + 1) to )) 2 − (2 p (v p +0.5) −2 p ( v p + v p ~ )) 2
(Formula (6), (2), (4), (1))
= (2 p + 1 (0.5−v (p + 1) ~ )) 2 − (2 p (0.5−v p ~ )) 2
= 2 2p {(2 ・ v (p + 1) ~ −1) 2 − (v p ~ −0.5) 2 }
= 2 2p {(2 ・ v (p + 1) ~ −1) 2 − (2 ・ v (p + 1) ~ − | _2 ・ v (p + 1) ~ _ | −0.5) 2 } ≡2 2p・ M (v (p + 1) ~ )
It becomes.
以上より、各サブビットプレーンにおける注目コードブロック内での二乗誤差の増分の総和ΣΔ(D2)は、(ケースB)または(ケースC)の増分のコードブロック内での総和となり、ウェーブレット係数yを2p+1で除算した後の小数部分を改めてhとすれば、
ΣΔ(D2)=22p{S(h)+M(h)}
=22p・Σ{(2h)2−(2h−1.5)2} (vp=1,MSBの場合)
+22p・Σ{(2h−1)2−(2h−|_2h_|−0.5)2} (vp≧2,MSB以外の場合)
・・・・式D1
となる。
From the above, the sum ΣΔ (D 2 ) of the square error increments in the target code block in each sub bit plane is the sum in the code block of the (Case B) or (Case C) increment, and the wavelet coefficient y Let h be the fractional part after dividing by 2 p + 1 .
ΣΔ (D 2 ) = 2 2p {S (h) + M (h)}
= 2 2p · Σ {(2h) 2 − (2h−1.5) 2 } (when v p = 1 and MSB)
+2 2p · Σ {(2h−1) 2 − (2h− | _2h_ | −0.5) 2 } (v p ≧ 2, other than MSB)
.... Formula D1
It becomes.
ただし、p=0のときは、トランケーションはされず、5x3変換の場合はロスレスになるので、
Δ(D2)=(y(p+1)^−y)2−(yp^−y)2=(y(p+1)^−y)2となり、
ΣΔ(D2)=22p{S(h)+M(h)}
=22p・Σ{(2h)2} (vp=1,MSBの場合)
+22p・Σ{(2h−1)2} (vp≧2,MSB以外の場合)
・・・・式D2
となる。
However, when p = 0, truncation is not performed, and in the case of 5x3 conversion, it is lossless.
Δ (D 2 ) = (y (p + 1) ^ −y) 2 − (y p ^ −y) 2 = (y (p + 1) ^ −y) 2
ΣΔ (D 2 ) = 2 2p {S (h) + M (h)}
= 2 2p · Σ {(2h) 2 } (v p = 1, MSB)
+2 2p · Σ {(2h−1) 2 } (v p ≧ 2, other than MSB)
.... Formula D2
It becomes.
なお、係数に生じた誤差は、逆ウェーブレット変換を経て画素値の誤差に変換されるが、前記画素値の二乗誤差は、前記係数の二乗誤差の定数倍として近似的に扱うことができる。該定数は、サブバンドに依存し、サブバンドゲインと呼ばれる。また、原画像に対してYCbCr等へのコンポーネント変換がなされ、コンポーネントに対してウェーブレット変換がなされている場合は、コンポーネントからRGB画素値へ逆変換する際の二乗誤差の倍率であるコンポーネント変換ゲインGcも考慮する必要がある(Gcはサブバンドによらない値をとる)。 Note that an error generated in a coefficient is converted into an error of a pixel value through an inverse wavelet transform, but the square error of the pixel value can be approximately treated as a constant multiple of the square error of the coefficient. The constant depends on the subband and is called a subband gain. Further, when component conversion to YCbCr or the like is performed on the original image and wavelet transform is performed on the component, the component conversion gain Gc that is a magnification of a square error when the component is inversely converted to the RGB pixel value. (Gc takes a value that does not depend on the subband).
以上より、サブバンドbに属する各コードブロックに関し、各サブビットプレーンのディストーションスロープは以下の様に算出できることになる。 From the above, for each code block belonging to subband b, the distortion slope of each sub bit plane can be calculated as follows.
(Gb×Gc×STEPb2)×ΣΔ(D2)/ΔL ・・・・式S0
ここで、Σはコードブロック内の全係数についてとり、Gbはサブバンドbのサブバンドゲイン、STEPbはサブバンドbに対する量子化ステップ数である(量子化しない場合はSTEPb=1)。よって、これを、コードブロック内の全てのサブビットプレーンについてとれば、当該コードブロックに関するディストーションカーブ(図4のような折れ線形状)を得ることができる。
(Gb × Gc × STEPb 2 ) × ΣΔ (D 2 ) / ΔL... S0
Here, Σ is taken for all coefficients in the code block, Gb is the subband gain of subband b, and STEPb is the number of quantization steps for subband b (STEPb = 1 if not quantized). Therefore, if this is applied to all the sub-bit planes in the code block, a distortion curve (a polygonal line shape as shown in FIG. 4) relating to the code block can be obtained.
なお、通常、ディストーションカーブは図4のような下に凸の単調減少な形状となるが、例外的に図10のように凹部が生じることがある。この場合は、図10に示すように、複数のサブビットプレーンを一体化したスロープを計算し直し、単調減少に整形する。この処理は例外処理でもあり、凹凸の判断は傾きの比較によって容易にでき、一体化した傾きを求めるのも簡単であるため、その詳細な手順は省略する。 Normally, the distortion curve has a monotonously decreasing shape that protrudes downward as shown in FIG. 4, but an exceptionally concave portion may be formed as shown in FIG. In this case, as shown in FIG. 10, a slope obtained by integrating a plurality of sub-bit planes is recalculated and shaped to be monotonously decreased. This process is also an exception process, and it is easy to determine the unevenness by comparing the inclinations, and it is also easy to obtain an integrated inclination, and the detailed procedure is omitted.
さて、以上の処理で、全てのサブバンド、全てのコードブロックに対して、単調減少なディストーションカーブを生成された後に、いわゆるラグランジェレート制御が行われる。 By the above processing, so-called Lagrangian rate control is performed after generating a distortion curve that decreases monotonously for all subbands and all code blocks.
すなわち、あるコードブロックiについてトランケーションするサブビットプレーン数をtとした場合に、維持される符号長をR(t)、係数に生じる二乗誤差をΣD2(t)とすれば、
所望の符号量R下でPSNRを最大にするためには、
Σ{ΣD2(t)}→最小 (最初の総和は全コードブロックについてとり、次の総和はコードブロックi内の全ての係数についてとる)
かつ
ΣR(t)−R=0 (総和は全コードブロックについてとる)
を満たせばよい。このとき、未定乗数をλとしたラグランジェ関数Lag(t,λ)は、
Lag(t,λ)=Σ{ΣD2(t)}+λ{ΣR(t)―R}
となる。
That is, assuming that the number of sub-bit planes to be truncated for a certain code block i is t, the maintained code length is R (t), and the square error generated in the coefficient is ΣD 2 (t).
In order to maximize the PSNR under the desired code amount R,
Σ {ΣD 2 (t)} → minimum (the first sum is for all code blocks, the next sum is for all coefficients in code block i)
And ΣR (t) −R = 0 (the sum is taken for all code blocks)
Should be satisfied. At this time, the Lagrangian function Lag (t, λ) where the undetermined multiplier is λ is
Lag (t, λ) = Σ {ΣD 2 (t)} + λ {ΣR (t) −R}
It becomes.
ここで、第1項Σ{ΣD2(t)}が極値をとる条件は、ラグランジェ関数の偏微分が0となることから、全てのiについて
∂ΣD2(t)/∂t+λ{∂R(t)/∂t}=0
∴∂ΣD2(t)/∂R(t)=−λ
かつ
ΣR(t)=R
である。
Here, the condition that the first term Σ {ΣD 2 (t)} takes an extreme value is that the partial differentiation of the Lagrangian function is 0, so that ΣΣ D 2 (t) / ∂t + λ {∂ R (t) / ∂t} = 0
∴∂ΣD 2 (t) / ∂R (t) = − λ
And ΣR (t) = R
It is.
よって、各ディストーションカーブに対し、図11のように任意の値λ(>0)よりも大きなスロープを持つサブビットプレーンの符号(図10で傾き−λの線分との接点より左側にある部分)だけを維持し、それ以外の符号を破棄する。そして、全サブバンド,全コードブロックに関し、値λに対応した符号長の総和R(λ)を算出する。 Therefore, for each distortion curve, the sign of the sub-bit plane having a slope larger than an arbitrary value λ (> 0) as shown in FIG. 11 (the portion on the left side of the contact point with the line segment of slope −λ in FIG. 10). ) Only, discard other codes. Then, the sum R (λ) of code lengths corresponding to the value λ is calculated for all subbands and all code blocks.
ここで、R(λ)が所望の値Rより大きければλを大きくしてR(λ)を計算し直し、逆にR(λ)が所望の値より小さければλを小さくしてR(λ)を計算し直す。そして、R(λ)が「所望の値R±許容誤差」になるまで、これを繰り返す。該λの探索は、いわゆる二分探索法で容易に行うことができる。 Here, if R (λ) is larger than the desired value R, λ is increased and R (λ) is recalculated. Conversely, if R (λ) is smaller than the desired value, λ is decreased and R (λ ) Is recalculated. This is repeated until R (λ) becomes “desired value R ± allowable error”. The search for λ can be easily performed by a so-called binary search method.
こうして生成した符号は、容量R(λ)において、ΣD2(t)を最小にするため、最良のPSNRを持つことになる。なお、より詳細には、上記のようにして維持した符号長の総和の他に、該符号から生成するパケットのヘッダやメインヘッダが必要なため、これらのヘッダ長も加味することになる。 The code thus generated has the best PSNR in order to minimize ΣD 2 (t) in the capacity R (λ). More specifically, in addition to the sum of the code lengths maintained as described above, a header and a main header of a packet generated from the codes are required, so these header lengths are also taken into account.
以上のように、ディストーションスロープさえ規定できれば、ラグランジェの未定乗数法によってレート制御が可能であり、本発明では以下の様なスロープを使用する。 As described above, the rate can be controlled by the Lagrange's undetermined multiplier method as long as the distortion slope can be defined. In the present invention, the following slope is used.
各サブビットプレーンが属するビットプレーンの番号(LSBの番号が0)をpとし、例えばpに対して非線形な関数を例えば
f1(p)=(0.8)p
とする。すなわち,f1(p)はpに対して単調減少であり(請求項1,2)、
当該画質制御単位のスロープ=f1(p)×(Gb×Gc×STEPb2)×ΣΔ(D2)/ΔL
‥‥式S1
とする。このように、上位ビットの符号の重要度を相対的に下げることにより、該操作をしない場合に比べ、絶対値の大きい係数(が含まれるコードブロック)に対して多めの符号破棄を行うことができる。
The number of the bit plane to which each sub bit plane belongs (LSB number is 0) is p, and for example, a non-linear function with respect to p is, for example, f1 (p) = (0.8) p
And That is, f1 (p) is monotonically decreasing with respect to p (
Slope of the image quality control unit = f1 (p) × (Gb × Gc × STEPb 2 ) × ΣΔ (D 2 ) / ΔL
... S1
And In this way, by lowering the importance of the high-order bit code, it is possible to discard a larger number of codes for a coefficient having a large absolute value (including a code block) than when the operation is not performed. it can.
図12は、上記作用に関する模式的な説明図であり、3つのコードブロックA,B,Cの本発明適用前後のスロープの値を示している。コードブロックA,B,Cに含まれる係数の絶対値は、平均的にA<B<Cとなっている。このことは、スロープの最大値がA<B<Cであることで示唆される。係数の絶対値が大きいほど、MSBがトランケートされたときの誤差が大きくなるため、結果的にスロープの最大値が大きくなるからである。 FIG. 12 is a schematic explanatory diagram regarding the above-described operation, and shows slope values before and after application of the present invention for three code blocks A, B, and C. FIG. The absolute values of the coefficients included in the code blocks A, B, and C are A <B <C on average. This is suggested by the fact that the maximum value of the slope is A <B <C. This is because the larger the absolute value of the coefficient, the larger the error when the MSB is truncated, resulting in a larger maximum value of the slope.
図12の上段がf1(p)を乗じる前(本発明適用前)のスロープであり、例えば2000以下のスロープ部分を破棄するとすると網掛け部分の符号が破棄されることになる。これに対し、f1(p)を乗じて求めたスロープ(本発明適用後のスロープ)が下段であり、例えば1000以下のスロープ部分を破棄するとすると網掛け部分の符号が破棄されることになる。 The upper part of FIG. 12 shows the slope before multiplying by f1 (p) (before application of the present invention). For example, if the slope portion of 2000 or less is discarded, the code of the shaded portion is discarded. On the other hand, the slope obtained by multiplying f1 (p) (the slope after application of the present invention) is the lower stage. For example, if the slope portion of 1000 or less is discarded, the code of the shaded portion is discarded.
図12の網掛け部分を比較すれば明らかなように、本発明用後は、平均的に絶対値の大きいコードブロックのトランケート量が増え、そうでないコードブロックのトランケート量が減る効果が生じる。したがって、コントラストマスキング効果を利用することができる。 As apparent from comparison of the shaded portions in FIG. 12, after the present invention, the truncation amount of the code block having a large absolute value on the average increases and the truncation amount of the other code block decreases. Therefore, the contrast masking effect can be used.
さて、図13は、本実施形態に係る符号処理装置における処理ブロック103,104,105の処理を説明するためのフローチャートである。step1300〜1306は処理ブロック103における処理ステップであり、MQ符号化、サブビットプレーン毎の符号長及びスロープの算出を行う。step1307は処理ブロック104におけるレート制御の処理ステップであり、step1308は処理ブロック105における符号形成の処理ステップである。
FIG. 13 is a flowchart for explaining the processing of the processing blocks 103, 104, and 105 in the code processing device according to this embodiment.
step1300〜1306は、次のようなネストされたforループ
for(コンポ−ネント){
for(解像度){
for(サブバンド){
for(プリシンクト){
for(コードブロック){
for(サブビットプレーン){
MQ符号化、サブビットプレーンごの符号長を保持(step1305)
}
for(サブビットプレーン){
スロープを計算し保持(step1306)
}
}
}
}
}
}
を構成することは明らかである。
Steps 1300-1306 are nested for loops like
for (component) {
for (resolution) {
for (subband) {
for (Precinct) {
for (code block) {
for (subbit plane) {
MQ coding, holding the code length of each sub-bit plane (step 1305)
}
for (subbit plane) {
Calculate and hold slope (step 1306)
}
}
}
}
}
}
It is clear that
そして、step1307では、算出されたスロープを用いて公知の二分探索でλを決定し、不要なMQ符号を破棄し、必要なMQ符号を用いてパケットを形成する。次のstep1308で、それらパケットを配置し、また必要なタグ及びタグ情報を付加しJPEG2000の符号ファイルを生成する。
In step 1307, λ is determined by a known binary search using the calculated slope, unnecessary MQ codes are discarded, and packets are formed using necessary MQ codes. In the
さて、step1306であるが、第1の実施例にあっては、前述のように、サブビットプレーンごとに、式LでΔLを計算し、式D1,D2で誤差ΣΔD2を計算し、f1(p)及び式S1を用いてスロープを計算して保持する。 In step 1306, as described above, for each sub-bit plane, ΔL is calculated using equation L, error ΣΔD 2 is calculated using equations D1 and D2, and f1 ( Calculate and hold the slope using p) and equation S1.
なお、以上では簡易に、関数f1(p)=(0.8)p としたが、コントラストマスキング効果を反映するためには、それは非線形な関数であればよく、テーブル形式で定義してもよい。また、その関数はpに対して単調減少であるのが典型である(請求項5)。また厳密には、コントラストマスキング効果は信号値が所定値Th以上の範囲で成立するので、例えばp<3では値1をとり、p≧3では単調に減少していく関数でもよい。
In the above, the function f1 (p) = (0.8) p is simply used. However, in order to reflect the contrast masking effect, it may be a non-linear function and may be defined in a table format. The function is typically monotonically decreasing with respect to p (Claim 5 ). Strictly speaking, since the contrast masking effect is established in the range where the signal value is equal to or greater than the predetermined value Th, for example, a function that takes a
さて、以上の説明においては、コードブロックごとの各サブビットプレーンにまとめてf1(p)を乗じたが、係数毎に乗じる方法もある。前述のように、誤差Δ(D2)は、各係数ごとに算出されて総和をとられるからである。そこで
f2(p)=1 (ただし,pがその係数のMSBでない場合)
f2(p)=0.8 (ただし,pがその係数のMSBである場合)
なるf2(p)を用意し、
ΣΔ(D2)=22p{S(h)+M(h)}
=22p・Σ[{(2h)2−(2h−1.5)2}×f2(p)] (vp=1,MSBの場合,f2(p)=0.8)
+22p・Σ[{(2h−1)2−(2h−|_2h_|−0.5)2}×f2(p)]
(vp≧2,MSB以外の場合)
‥‥式D3
ただし、p=0のときは、
ΣΔ(D2)=22p{S(h)+M(h)}
=22p・Σ[{(2h)2}×f2(p)] (vp=1,MSBの場合,f2(p)=0.8)
+22p・Σ[{(2h−1)2}×f2(p)] (vp≧2,MSB以外の場合)
‥‥式D4
として、ΣΔ(D2)を算出すれば、MSBが多く含まれるコードブロックほど、誤差の増加量ΣΔ(D2)が小さくなり、スロープが小さくなる(請求項3,4,6)。その結果、f2(p)を乗じない場合に比べ、MSBが多く含まれるコードブロックほどトランケートされやすくなる。したがって、エッジの再現性は低下するが、その分たけ非エッジすなわち低周波成分に多くの符号が割り当てられ、特に動画などで安定した画質が得られるのである。低周波成分に優先的に符号を割り当てる点では、コントラストマスキングと同じ効果を生むことが出来るとも言える。
よって、第2の実施例によれば、step1306において、サブビットプレーンごとに、式LでΔLを算出し、f2(p)と式D3,D4で誤差ΣΔD2を計算し、式S0を用いてスロープを計算して保持する(請求項3,4,6)。
In the above description, each sub bit plane for each code block is collectively multiplied by f1 (p). However, there is a method of multiplying for each coefficient. This is because the error Δ (D 2 ) is calculated for each coefficient and summed as described above. Therefore
f2 (p) = 1 (when p is not the MSB of the coefficient)
f2 (p) = 0.8 (when p is the MSB of the coefficient)
F2 (p)
ΣΔ (D 2 ) = 2 2p {S (h) + M (h)}
= 2 2p · Σ [{( 2h) 2 - (2h-1.5) 2} × f2 (p)] (v case of p = 1, MSB, f2 ( p) = 0.8)
+2 2p · Σ [{(2h−1) 2 − (2h− | _2h_ | −0.5) 2 } × f2 (p)]
(v p ≧ 2, other than MSB)
... Formula D3
However, when p = 0,
ΣΔ (D 2 ) = 2 2p {S (h) + M (h)}
= 2 2p · Σ [{(2h) 2 } × f2 (p)] (v p = 1, f2 (p) = 0.8 for MSB)
+2 2p · Σ [{(2h−1) 2 } × f2 (p)] (v p ≧ 2, other than MSB)
... Formula D4
Assuming that ΣΔ (D 2 ) is calculated, the code block containing more MSBs has a smaller error increase amount ΣΔ (D 2 ) and a smaller slope (claims 3, 4, 6 ). As a result, compared to a case where f2 (p) is not multiplied, a code block including more MSBs is more likely to be truncated. Therefore, although the reproducibility of the edge is lowered, a lot of codes are assigned to the non-edge, that is, the low-frequency component accordingly, and a stable image quality can be obtained particularly for moving images. It can be said that the same effect as contrast masking can be produced in that a code is preferentially assigned to low frequency components.
Therefore, according to the second embodiment, in step 1306, for each sub-bit plane, ΔL is calculated using equation L, error ΣΔD 2 is calculated using f2 (p) and equations D3, D4, and equation S0 is used. The slope is calculated and held (
さて、以上とは異なり、あくまでエッジの再現性を優先したいということであれば,
f3(p)=(1.1)p
とする。すなわち、f3(p)はpに対して単調増加であり(請求項7)、
当該画質制御単位のスロープ=f3(p)×(Gb×Gc×STEPb2)×ΣΔ(D2)/ΔL
‥‥式S3
とする。このように、上位ビットの符号の重要度を相対的に上げることにより、該操作をしない場合に比べ、絶対値の大きい係数(が含まれるコードブロック)に対して少な目の符号破棄を行うことができる。
Now, unlike the above, if you want to give priority to edge reproducibility,
f3 (p) = (1.1) p
And That is, f3 (p) monotonically increases with respect to p (Claim 7 ).
Slope of the image quality control unit = f3 (p) × (Gb × Gc × STEPb 2 ) × ΣΔ (D 2 ) / ΔL
... Formula S3
And In this way, by relatively increasing the importance of the high-order bit code, it is possible to perform a smaller number of code discards for a coefficient having a large absolute value (including a code block) than when the operation is not performed. it can.
よって、第3の実施例によれば、step1306において、サブビットプレーンごとに、式LでΔLを算出し、式D1,D2で誤差ΣΔD2を計算し、f3(p)及び式S3を用いてスロープを計算して保持する(請求項1,2,7)。
Therefore, according to the third embodiment, in step 1306, for each sub-bit plane, ΔL is calculated using equation L, error ΣΔD 2 is calculated using equations D1 and D2, and f3 (p) and equation S3 are used. The slope is calculated and held (
また、係数毎に乗じる方法では、
f4(p)=1 (ただし、pがその係数のMSBでない場合)
f4(p)=1.2 (ただし、pがその係数のMSBである場合)
なるf4(p)を用意し、
ΣΔ(D2)=22p{S(h)+M(h)}
=22p・Σ[{(2h)2−(2h−1.5)2}×f4(p)] (vp=1,MSBの場合,f4(p)=1.2)
+22p・Σ[{(2h−1)2−(2h−|_2h_|−0.5)2}×f4(p)] (vp≧2,MSB以外の場合)
‥‥式D5
ただし、p=0のときは、
ΣΔ(D2)=22p{S(h)+M(h)}
=22p・Σ[{(2h)2}×f4(p)] (vp=1,MSBの場合,f4(p)=1.2)
+22p・Σ[{(2h−1)2}×f4(p)] (vp≧2,MSB以外の場合)
‥‥式D6
としてΣΔ(D2)を算出すれば、MSBが多く含まれるコードブロックほど、誤差の増加量ΣΔ(D2)が大きくなり、スロープが大きくなる。その結果、MSBが多く含まれるコードブロックほどトランケートされなくなり、エッジの再現性が向上するのである。
Also, in the method of multiplying by coefficient,
f4 (p) = 1 (when p is not the MSB of the coefficient)
f4 (p) = 1.2 (where p is the MSB of the coefficient)
F4 (p)
ΣΔ (D 2 ) = 2 2p {S (h) + M (h)}
= 2 2p · Σ [{(2h) 2 − (2h−1.5) 2 } × f4 (p)] (v p = 1, MSB, f4 (p) = 1.2)
+2 2p · Σ [{(2h -1) 2 - (2h- | _2h_ | -0.5) 2} × f4 (p)] (v otherwise p ≧ 2, MSB)
... Formula D5
However, when p = 0,
ΣΔ (D 2 ) = 2 2p {S (h) + M (h)}
= 2 2p · Σ [{(2h) 2 } × f4 (p)] (v p = 1, f4 (p) = 1.2 for MSB)
+2 2p · Σ [{(2h−1) 2 } × f4 (p)] (v p ≧ 2, other than MSB)
... D6
If ΣΔ (D 2 ) is calculated as follows, the error increase amount ΣΔ (D 2 ) increases and the slope increases as the code block includes more MSBs. As a result, code blocks that contain more MSBs are not truncated and edge reproducibility is improved.
よって、第4の実施例によれば、step1306において、サブビットプレーンごとに、式LでΔLを算出し、f4(p)と式D1,D2で誤差ΣΔD2を計算し、式S0を用いてスロープを計算して保持する(請求項3,4,8)。
Therefore, according to the fourth embodiment, in step 1306, for each sub-bit plane, ΔL is calculated using equation L, error ΣΔD 2 is calculated using f4 (p) and equations D1, D2, and equation S0 is used. The slope is calculated and held (
また、以上とは異なり、原画像のテクスチャを維持したい場合には、例えば
f5(p)=1 (0≦p≦2)
f5(p)=0.8 (p>2)
なるf5(p)を用意する。すなわち、f5(p)を、所定値以下のpに対して最小値をとらない様にする(請求項9)。そして、
当該画質制御単位のスロープ=f5(p)×(Gb×Gc×STEPb2)×ΣΔ(D2)/ΔL
‥‥式S5
とする。一般にテクスチャは、値の小さな(例えば絶対値8未満の)周波数係数に変換されるため、このように下位ビットの符号の重要度を相対的に上げることにより、該操作をしない場合に比べ、絶対値の小さい係数(が含まれるコードブロック)に対して少な目の符号破棄を行うことができる(デコンポジションレベルの高いサブバンドの上位ビットのスロープが、該レベルの低いサブバンドの下位ビットのスロープよりも小さいことがありうるため。ただし、この効果が生じるのは主に圧縮率が低い場合である)。
In addition, unlike the above, when it is desired to maintain the texture of the original image, for example, f5 (p) = 1 (0 ≦ p ≦ 2)
f5 (p) = 0.8 (p> 2)
F5 (p) is prepared. That is, f5 (p) is set so as not to take a minimum value with respect to p equal to or less than a predetermined value (claim 9 ). And
Slope of the image quality control unit = f5 (p) × (Gb × Gc × STEPb 2 ) × ΣΔ (D 2 ) / ΔL
... Formula S5
And In general, texture is converted into a frequency coefficient having a small value (for example, less than an absolute value of 8). Thus, by relatively increasing the importance of the sign of the lower bits, the absolute value is smaller than that in the case where the operation is not performed. It is possible to perform a small code discard for a coefficient with a small value (including a code block) (the slope of the upper bit of the subband with the higher decomposition level is lower than the slope of the lower bit of the subband with the lower level). However, this effect occurs mainly when the compression ratio is low).
よって、第5の実施例によれば、step1306において、サブビットプレーンごとに、式LでΔLを算出し、式D1,D2で誤差ΣΔD2を計算し、f5(p)と式S5を用いてスロープを計算して保持する(請求項1,2,9)。
Therefore, according to the fifth embodiment, in step 1306, for each sub-bit plane, ΔL is calculated using equation L, error ΣΔD 2 is calculated using equations D1 and D2, and f5 (p) and equation S5 are used. The slope is calculated and held (
また、係数毎に乗じる方法では、
f6(p)=1 (その係数が7未満の場合)
f6(p)=0.8 (その係数が8以上の場合)
なるf6(p)を用意し、
ΣΔ(D2)=22p{S(h)+M(h)}
=22p・Σ[{(2h)2−(2h−1.5)2}×f6(p)] (vp=1,MSBの場合)
+22p・Σ[{(2h−1)2−(2h−|_2h_|−0.5)2}×f6(p)]
(vp≧2,MSB以外の場合)
‥‥式D7
ただし、p=0のときは,
ΣΔ(D2)=22p{S(h)+M(h)}
=22p・Σ[{(2h)2}×f6(p)] (vp=1,MSBの場合)
+22p・Σ[{(2h−1)2}×f6(p)] (vp≧2,MSB以外の場合)
‥‥式D8
としてΣΔ(D2)を算出すれば、7未満の係数が多く含まれるコードブロックほど、誤差の増加量ΣΔ(D2)が大きくなり、スロープが大きくなる。その結果、7未満の係数が多く含まれるコードブロックほどトランケートされなくなり、テクスチャの再現性が向上するのである。
Also, in the method of multiplying by coefficient,
f6 (p) = 1 (when the coefficient is less than 7)
f6 (p) = 0.8 (when the coefficient is 8 or more)
F6 (p)
ΣΔ (D 2 ) = 2 2p {S (h) + M (h)}
= 2 2p · Σ [{(2h) 2 − (2h−1.5) 2 } × f6 (p)] (when v p = 1 and MSB)
+2 2p · Σ [{(2h−1) 2 − (2h− | _2h_ | −0.5) 2 } × f6 (p)]
(v p ≧ 2, other than MSB)
... Formula D7
However, when p = 0,
ΣΔ (D 2 ) = 2 2p {S (h) + M (h)}
= 2 2p · Σ [{(2h) 2 } x f6 (p)] (when v p = 1, MSB)
+2 2p · Σ [{(2h−1) 2 } × f6 (p)] (v p ≧ 2, other than MSB)
... Formula D8
If ΣΔ (D 2 ) is calculated as follows, the amount of increase in error ΣΔ (D 2 ) increases and the slope increases as the code block includes many coefficients less than 7. As a result, code blocks containing many coefficients less than 7 are not truncated, and texture reproducibility is improved.
よって、第6の実施例によれば、step1306において、サブビットプレーンごとに、式LでΔLを算出し、f6(p)と式D7,D8で誤差ΣΔD2を計算し、式S0を用いてスロープを計算して保持する(請求項3,4,10)。
Therefore, according to the sixth embodiment, in step 1306, for each sub-bit plane, ΔL is calculated using equation L, error ΣΔD 2 is calculated using f6 (p) and equations D7, D8, and equation S0 is used. The slope is calculated and held (
また、静止画はエッジ重視、動画は低域重視という目的で非線形性を切り替えることもできる(請求項11,12)。 The non-linearity can also be switched for the purpose of emphasizing edges for still images and emphasizing low frequencies for moving images (claims 11 and 12 ).
例えば、第7の実施例によれば、符号化対象が静止画のときには、step1306において、サブビットプレーンごとに、式LでΔLを算出し、式D1,D2で誤差ΣΔD2を計算し、f1(p)と式S1を用いてスロープを計算して保持するが、符号化対象が動画のときには、step1306において、サブビットプレーンごとに、式LでΔLを算出し、式D1,D2で誤差ΣΔD2を計算し、f3(p)と式S3を用いてスロープを計算して保持する。 For example, according to the seventh embodiment, when the encoding target is a still image, in step 1306, ΔL is calculated for each sub-bit plane using equation L, error ΣΔD 2 is calculated using equations D1 and D2, and f1 (p) and equation S1 are used to calculate and hold the slope, but when the encoding target is a moving image, in step 1306, ΔL is calculated for each sub-bit plane using equation L, and error ΣΔD is calculated using equations D1 and D2. 2 is calculated and the slope is calculated and stored using f3 (p) and equation S3.
また、第8の実施例によれば、符号化対象が静止画のときには、step1306において、サブビットプレーンごとに、式LでΔLを算出し、f2(p)と式D3,D4で誤差ΣΔD2を計算し、式S0を用いてスロープを計算して保持するが、符号化対象が動画のときには、step1306において、サブビットプレーンごとに、式LでΔLを算出し、f4(p)と式D5,D6で誤差ΣΔD2を計算し、式S0を用いてスロープを計算して保持する。 Further, according to the eighth embodiment, when the encoding target is a still image, ΔL is calculated for each sub-bit plane in step 1306 using equation L, and error ΣΔD 2 is calculated using f2 (p) and equations D3 and D4. , And the slope is calculated and stored using Expression S0. When the encoding target is a moving image, ΔL is calculated using Expression L for each sub-bit plane in Step 1306, and f4 (p) and Expression D5 are calculated. , D6, the error ΣΔD 2 is calculated, and the slope is calculated and held using the equation S0.
先に述べたように、一旦生成された符号ファイルに対するトランスコーディングの際のレート制御にも本発明を適用できる。 As described above, the present invention can also be applied to rate control when transcoding a once generated code file.
図14は、このようなトランスコーディングを実行する、本発明の第2の実施形態に係る符号処理装置(トランスコーダ/パーサー)を説明するための簡略化したブロック図である。本実施形態に係る符号処理装置は、処理しようとする符号ファイルに対し符号解析を行う処理ブロック200、不要な符号を破棄し必要な符号を用いてパケットを再生成(レート制御)する処理ブロック201、再生成されたパケットから符号再形成を行って新たな符号ファイルを生成する処理ブロック202から構成される。
FIG. 14 is a simplified block diagram for explaining a code processing apparatus (transcoder / parser) according to the second embodiment of the present invention that performs such transcoding. The code processing apparatus according to the present embodiment includes a
図15は、この符号処理装置の処理の流れを説明するためのフローチャートである。step2100〜2105は、符号解析の処理ブロック200における処理ステップであり、その内容は次のようなネストされたforループ
for(コンポ−ネント){
for(解像度){
for(サブバンド){
for(プリシンクト){
for(コードブロック){
for(サブビットプレーン){
コードブロックの符号に対応したスロープと必要な符号長(式Lの結果)を読み込む(step2105)
}
}
}
}
}
}
で表されることは明らかである。
FIG. 15 is a flowchart for explaining the processing flow of the code processing device.
for (component) {
for (resolution) {
for (subband) {
for (Precinct) {
for (code block) {
for (subbit plane) {
Read the slope corresponding to the code of the code block and the required code length (result of expression L) (step 2105)
}
}
}
}
}
}
It is clear that
そして、step2106において、処理ブロック201は、公知の二分探索でλを決定し、コードブロックごとに維持すべきサブビットプレーン数と必要な符号長を算出し、パケットより不要な符号を破棄し、それに対応してパケットヘッダを再生成することにより、レート制御されたパケットを再生する。step2107において、処理ブロック202は再生成されたパケットを配置して新たな符号ファイルを再生成することになる。
Then, in step 2106, the
なお、パケットヘッダの再生成に必要なデータは、
(a)パケットが空かどうか
(b)そのパケットに含まれるコードブロック
(c)各コードブロックのゼロビットプレーン数
(d)各コードブロックに含まれるサブビットプレーン数
(e)各コードブロックのMQ符号長
であるが、(c)は原符号のパケットヘッダに書かれている値を再利用し、その他はレート制御の結果を反映したサブビットプレーン数,符号長等を用いることになる。
The data necessary for regenerating the packet header is
(a) Whether the packet is empty
(b) Code block included in the packet
(c) Number of zero bit planes in each code block
(d) Number of sub bit planes included in each code block
(e) MQ code length of each code block, (c) reuses the value written in the packet header of the original code, and the others are the number of sub bit planes and code length reflecting the result of rate control Etc. will be used.
なお、先述のように、トランスコーダ/パーサーにおいて、符号からレート制御に必要な符号長計算、誤差計算、ディストーションスロープ計算などを行い、その情報を用いてレート制御を行うことも可能であり、かかる態様も本実施形態に包含される。 As described above, the transcoder / parser can perform code length calculation, error calculation, distortion slope calculation, and the like necessary for rate control from the code, and perform rate control using the information. Aspects are also included in this embodiment.
また、サブバンドゲインについては「J.Katto and Y.Yasuda,”Performance evaluation of subband coding and optimization of its filter coefficients,”Journal of Visual Communication and Image Representation,vol.2,pp.303−313,Dec,1991」中の”Gsbc”に詳しいが、図21に5x3変換と9x7変換のサブバンドゲインを示す。JPEG2000では、5x3変換にはRCTと呼ばれるコンポーネント変換が、9x7変換にはICTと呼ばれるコンポーネント変換が用いられるが、それらの逆変換時のゲインも図16に示されている。 For subband gain, see “J. Katto and Y. Yasuda,“ Performance evaluation of subband coding and optimization of its filter coefficients, ”“ Journal of Visual Communication and Image Representation, vol. 2, pp. 303-313, Dec. Details on “Gsbc” in “1991”, FIG. 21 shows subband gains of 5 × 3 conversion and 9 × 7 conversion. In JPEG2000, component conversion called RCT is used for 5x3 conversion, and component conversion called ICT is used for 9x7 conversion, and the gain at the time of inverse conversion is also shown in FIG.
なお、図5に関連して説明した本発明に係る符号処理装置(エンコーダ)は、例えば図6に示すようなCPU150、メモリ151、ハードディスク装置(HDD)152などをバス153で接続したようなコンピュータにおいて、ソフトウェアにより実現することも可能である。すなわち、図5の処理ブロック100〜105としてコンピュータを機能させるためのプログラムをメモリ151にロードし、それをCPU150で実行させることによって、コンピュータを本発明に係る符号処理装置として機能させるわけである。この場合の処理の流れは概ね次のようになる。
(1)HDD152に記憶されているオリジナル画像のうちの1つのフレームが、CPU150からの命令によってメモリ151に読み込まれる。
(2)CPU150は、メモリ151上の画像を読み込み、JPEG2000フォーマットでの符号化を行うが、その際のレート制御(符号破棄)に本発明を適用する。
(3)CPU150は、生成した符号化ファイルをメモリ151上の別の領域に書き込む。
(4)CPU150からの命令によって、符号化ファイルはHDD152に保存される。
The code processing apparatus (encoder) according to the present invention described with reference to FIG. 5 is a computer in which a
(1) One frame of the original image stored in the
(2) The
(3) The
(4) The encoded file is stored in the
なお、図14に関連して説明した本発明に係る符号処理装置(トランスコーダ/パーサー)も同様に、コンピュータを利用しプログラムにより実現可能であることは明らかである。このような本発明に係る符号処理装置をコンピュータにより実現するためのプログラム、及び、それが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子などの、コンピュータが読み取り可能な各種の情報記録(記憶)媒体も本発明に包含される。 It is obvious that the code processing apparatus (transcoder / parser) according to the present invention described with reference to FIG. 14 can also be realized by a program using a computer. A program for realizing the code processing apparatus according to the present invention by a computer, and various information recordings readable by a computer, such as a magnetic disk, an optical disk, a magneto-optical disk, and a semiconductor storage element, on which the program is recorded (Storage) media are also encompassed by the present invention.
また、以上の説明は、請求項14,15,16に係る符号処理方法の実施形態の説明でもあることは明らかであるので、その説明は繰り返さない。
Moreover, since it is clear that the above description is also the description of the embodiment of the code processing method according to claims 14 , 15, and 16 , the description thereof will not be repeated.
また、以上の説明から明らかなように、JPEG2000に限らず、ブロック単位でのビットプレーン符号化のような、周波数係数を絶対値方向に複数に分割して符号単位を構成し、複数の画質制御単位を有する任意の符号化方式による符号処理装置に対し、本発明を同様に適用可能である。 Further, as is clear from the above description, not only JPEG2000 but also a code unit is formed by dividing a frequency coefficient into a plurality of pieces in the absolute value direction, such as bit plane coding in block units, and a plurality of image quality controls. The present invention can be similarly applied to a code processing apparatus using an arbitrary encoding method having a unit.
100 DCレベルシフト及び色変換のための処理ブロック
101 ウェーブレット変換のための処理ブロック
102 量子化のための処理ブロック
103 ビットプレーン符号化及びレート制御のためのディストーションスロープ等の計算を行う処理ブロック
104 レート制御及びパケット生成のための処理ブロック
105 符号形成のための処理ブロック
200 符号解析のための処理ブロック
201 レート制御のための処理ブロック
202 符号再形成のための処理ブロック
100 Processing Block for DC Level Shift and
Claims (18)
画質制御単位のディストーションスロープの算出式に、該画質制御単位に含まれる符号単位の分割位置をパラメータとした非線形関数の乗算を含むことを特徴とする符号処理装置。 A code processing apparatus characterized in that a distortion slope calculation formula of an image quality control unit includes a multiplication of a nonlinear function using a division position of a code unit included in the image quality control unit as a parameter.
画質制御単位の重要度の算出式に該画質制御単位に含まれるディストーションスロープの算出式に、該画質制御単位に含まれる周波数係数の分割部分が特定の部分であるか否かをパラメータとした非線形関数の乗算を含むことを特徴とする符号処理装置。 Non-linearity with the calculation formula of the importance of the image quality control unit as a parameter in the calculation formula of the distortion slope included in the image quality control unit and whether the frequency coefficient division part included in the image quality control unit is a specific part A code processing apparatus comprising a multiplication of a function.
画質制御単位のディストーションスロープの算出式に、該画質制御単位に含まれる符号単位の分割位置をパラメータとした非線形関数の乗算を含むことを特徴とする符号処理方法。 A code processing method characterized in that a distortion slope calculation formula of an image quality control unit includes multiplication of a nonlinear function using a division position of a code unit included in the image quality control unit as a parameter.
画質制御単位の重要度の算出式に該画質制御単位に含まれるディストーションスロープの算出式に、該画質制御単位に含まれる周波数係数の分割部分が特定の部分であるか否かをパラメータとした非線形関数の乗算を含むことを特徴とする符号処理方法。 Non-linearity with the calculation formula of the importance of the image quality control unit as a parameter in the calculation formula of the distortion slope included in the image quality control unit and whether the frequency coefficient division part included in the image quality control unit is a specific part A code processing method comprising multiplication of a function.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005103188A JP4737665B2 (en) | 2005-03-31 | 2005-03-31 | Code processing apparatus, code processing method, program, and information recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005103188A JP4737665B2 (en) | 2005-03-31 | 2005-03-31 | Code processing apparatus, code processing method, program, and information recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006287487A JP2006287487A (en) | 2006-10-19 |
JP4737665B2 true JP4737665B2 (en) | 2011-08-03 |
Family
ID=37408932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005103188A Expired - Fee Related JP4737665B2 (en) | 2005-03-31 | 2005-03-31 | Code processing apparatus, code processing method, program, and information recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4737665B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7232969B1 (en) | 2023-01-30 | 2023-03-03 | シチズンファインデバイス株式会社 | pressure detector |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5469127B2 (en) | 2011-05-30 | 2014-04-09 | 富士フイルム株式会社 | Image data encoding apparatus, operation control method thereof, and program thereof |
CN110097497B (en) * | 2019-05-14 | 2023-03-24 | 电子科技大学 | Multi-scale image transformation and inverse transformation method based on residual multisystemlets |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004234340A (en) * | 2003-01-30 | 2004-08-19 | Konica Minolta Holdings Inc | Storage medium, authentication card, authentication method, authentication device and authentication system |
JP4195978B2 (en) * | 2003-02-10 | 2008-12-17 | パナソニック株式会社 | Video signal encoding apparatus and method, and recording medium |
JP2005045356A (en) * | 2003-07-23 | 2005-02-17 | Canon Inc | Image encoding apparatus and method |
JP4219303B2 (en) * | 2003-07-25 | 2009-02-04 | 株式会社リコー | Encoding apparatus, encoding control method, program, and recording medium |
-
2005
- 2005-03-31 JP JP2005103188A patent/JP4737665B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7232969B1 (en) | 2023-01-30 | 2023-03-03 | シチズンファインデバイス株式会社 | pressure detector |
Also Published As
Publication number | Publication date |
---|---|
JP2006287487A (en) | 2006-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4444790B2 (en) | Image compression method, image compression apparatus, image compression system, and program | |
US7925102B2 (en) | Picture encoding apparatus and method, program and recording medium | |
US7848580B2 (en) | Image encoding method, image decoding method, moving-image compression method, moving-image expansion method, image encoding program, image decoding device, image encoding device, image encoding/decoding system, and extended image compression/expansion system | |
JP4273996B2 (en) | Image encoding apparatus and method, and image decoding apparatus and method | |
RU2433479C2 (en) | Adaptive coding and decoding wide-range coefficients | |
US8306339B2 (en) | Information processing device and method | |
EP1860886A1 (en) | Encoding device and dynamic image recording system having the encoding device | |
US6876770B2 (en) | Image encoding device, electronic camera and recording medium for image encoding program | |
JP2001501783A (en) | Data compression using adaptive bit allocation and hybrid lossless entropy coding | |
JP2007267384A (en) | Compression apparatus and compression method | |
US7403561B2 (en) | Fixed bit rate, intraframe compression and decompression of video | |
JP2005192087A (en) | Compression-coding apparatus, compression-coding method and program | |
US7778468B2 (en) | Decoding apparatus, dequantizing method, and program thereof | |
US7333664B2 (en) | Image compression method capable of reducing tile boundary distortion | |
US20050015247A1 (en) | Encoded data generation apparatus and a method, a program, and an information recording medium | |
JP4737665B2 (en) | Code processing apparatus, code processing method, program, and information recording medium | |
US7551788B2 (en) | Digital image coding device and method for noise removal using wavelet transforms | |
US8873878B2 (en) | Image processing apparatus and method with reduced processing load | |
US10536697B2 (en) | Method for re-encoding image and apparatus therefor | |
EP1892965A2 (en) | Fixed bit rate, intraframe compression and decompression of video | |
KR20220040970A (en) | Apparatus and Method for Compressing JPEG Images | |
JP4656497B2 (en) | Image processing apparatus, image processing method, program, and information recording medium | |
JP4255071B2 (en) | Pixel value selection type encoding device and decoding device of interest | |
JP2002232721A (en) | Image coding apparatus and its method, and storage medium | |
JPH05276391A (en) | Method for compressing picture and device therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080324 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101015 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101027 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101227 |
|
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: 20110420 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110422 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4737665 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: 20140513 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |