JP2010041624A - 画像符号化装置及びその制御方法 - Google Patents

画像符号化装置及びその制御方法 Download PDF

Info

Publication number
JP2010041624A
JP2010041624A JP2008204775A JP2008204775A JP2010041624A JP 2010041624 A JP2010041624 A JP 2010041624A JP 2008204775 A JP2008204775 A JP 2008204775A JP 2008204775 A JP2008204775 A JP 2008204775A JP 2010041624 A JP2010041624 A JP 2010041624A
Authority
JP
Japan
Prior art keywords
encoding
frequency band
data
code amount
band data
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
Application number
JP2008204775A
Other languages
English (en)
Other versions
JP4979655B2 (ja
Inventor
Hiroshi Kajiwara
浩 梶原
Takeshi Yamazaki
健史 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2008204775A priority Critical patent/JP4979655B2/ja
Priority to US12/533,157 priority patent/US8260072B2/en
Publication of JP2010041624A publication Critical patent/JP2010041624A/ja
Application granted granted Critical
Publication of JP4979655B2 publication Critical patent/JP4979655B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients

Abstract

【課題】 画素ブロックを単位に周波数変換、量子化を行なう画像符号化処理において、少ないメモリ量で、簡易かつ高画質に、目標符号量以下となるように符号化する技術を提供する。
【解決手段】画像データはブロック分割部102、系列変換103を経て低周波帯域データと高周波帯域データとに分解される。係数量子化部105、係数符号化106、符号量制御部108の動作により高周波帯域データを所定値以下に符号化する。そして、高周波帯域データの符号化処理が完了すると、その高周波帯域データの発生符号量に応じて低周波帯域データの量子化パラメータを設定する。そして、係数量子化部110、係数符号化部111、符号量検出部112、量子化パラメータ更新部113の動作により、低周波帯域目標符号量以下の符号となるよう低周波帯域データを符号化する。
【選択図】 図1

Description

本発明は画像符号化技術、特に、画像データを周波数空間のデータへと変換し、得られた変換係数を符号化することで符号化画像データを生成する技術に関するものである。
従来、画像の符号化手法として、画像データを周波数空間のデータへと変換して符号化を行う変換符号化が用いられる。静止画符号化の国際標準方式として勧告されるJPEGは周波数空間への変換手法としてDCT(Discrete Cosine Transform)を利用した変換符号化の代表例である。以下、JPEGの符号化処理過程を簡単に述べる。
符号化対象の画像は、矩形領域のブロックに分割され、各ブロック内の各画素値にDCT変換が適用される。変換によって得られた係数を、所望の画質レベル、符号量に応じて量子化し、量子化後の変換係数をエントロピ符号化する。JPEG Baselineでは、係数のエントロピ符号化手法としてハフマン符号化を採用している。1ブロックは8×8画素(=64画素)であるので、DCT変換によって1個のDC成分値と、63個のAC成分値が生成される。DC成分値は直前のブロックとの差分値として符号化され、AC成分値はゼロの連続数(ゼロラン)と非ゼロの係数値の組み合わせによりハフマン符号化される。
JPEG Baselineに見られるように、ゼロの連続数を符号化する符号化手法において、符号化が効率的に行われるためには、量子化後の係数値が0となる個数が多いほど良い。このためには、量子化する際に用いる量子化ステップ値を大きくすることである。しかしながら、量子化ステップ値を大きな値にすればするほど、復号して得られる画像とオリジナルの画像との差が大きくなる。すなわち、復号して得られる画像の画質が劣化したものとなる。
従って、画質を優先するのであれば量子化ステップ値は小さい程よいが、この場合、逆に高い符号化効率が望めない。
さて、量子化ステップ値を小さい値にしながらも、符号化を効率的に機能させるため、各係数値を上位ビット部と下位ビット部に分離して、上位ビット部に対してのみランレングス符号化を適用するといった手法が提案されている。
このような従来技術を用いた画像処理装置、画像処理方法の一例が特許文献1に開示されている。
一方、画像符号化を行う場合において、符号量が所定値以下となるように符号量制御することが必要となる場合がある。例えば、デジタルカメラなどでは、ある限られた容量の記憶媒体に一定の枚数の画像データを格納することが求められる。また、画像符号化装置の内部のメモリ量を削減する目的においても符号量制御が必要となる。
符号量制御の手段としては、種々の方法が提案されているが、最も単純な方法は目標符号量になるまで、量子化ステップの調整と、符号化処理を繰り返すものであろう。
また、簡易な手法として、例えば、係数の下位ビットを切り捨てる方法など、生成した符号化データの一部分を破棄することで符号量制御を行う方式が知られている。
特開2000−13797号公報
上述の量子化ステップを調整して目標符号量に制御する符号量制御手段では、細かな量子化ステップの設定が可能となるため、定められた符号量内で良好な画質を得ることができるが、再符号化に演算コスト、処理時間を要す。
さらに、再符号化のためには、係数値を復元しなければならず、画像、または係数値を保持する場合には、多くのメモリを必要とする。一旦、符号化したデータから係数を復号して再符号化する場合には、復号のための演算コストが掛かり、さらに、一度量子化した値を別の量子化ステップで量子化するため、細やかな制御ができなくなる。
また、上述の符号の一部を破棄する手法は、下位ビットを切り捨てることは選択可能な量子化ステップを2のべき乗の倍数に限定することに等価の処理である。従って、やはり細やかな量子化ステップ設定ができないために、再生画質に問題を起こす可能性がある。
本願発明は、上述の問題点に鑑みてなされたものであり、画素ブロックを単位に周波数変換、量子化を行なう画像符号化処理において、少ないメモリ量と少ない処理時間で、かつ、良好な画質の画像を再生可能な符号化技術を提供しようとするものである。
かかる課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像データを符号化し、目標符号量L以内の符号化データを生成する画像符号化装置であって、
符号化対象画像データから、複数画素で構成される画素ブロックの画像データを入力する入力手段と、
入力した画素ブロックの画像データを周波数変換して、高周波帯域データと低周波帯域データを生成する周波数変換手段と、
該周波数変換手段で得られた前記低周波帯域データをバッファメモリに格納する格納手段と、
前記周波数変換手段で得られた高周波帯域データを量子化、符号化を行ない、得られた符号化データを符号列格納用メモリに格納する第1の符号化手段と、
該第1の符号化手段によって生成された高周波帯域データの符号化データの総符号量CL_Hを検出する検出手段と、
前記符号化対象画像データの全画素ブロックの高周波帯域データの前記第1の符号化手段による符号化処理を終えた場合、前記目標符号量Lから前記高周波帯域データの符号化データの総符号量CL_Hを減じた容量を低周波帯域目標符号量とし、当該低周波帯域目標符号量に基づいて前記低周波帯域データの符号化パラメータを決定する決定手段と、
該決定手段で決定された符号化パラメータに従って、前記バッファメモリに格納された低周波帯域データを符号化し、得られた符号化データを前記符号列格納用メモリに格納する第2の符号化手段と、
該第2の符号化手段による全画素ブロックの低周波帯域データの符号化処理を終えた場合、前記符号列格納用メモリに格納された低周波帯域データの符号化データ、及び、高周波帯域データの符号化データを、予め設定された形式のデータ構造にして出力する出力手段とを備える。
本発明によれば、視覚的に良好で、かつ、メモリコスト、演算コストの少なくし、目標符号量以下の符号化データを生成することが可能になる。
以下添付図面に従って本発明に係る実施形態を詳細に説明する。
[第1の実施形態]
図1は、実施形態における画像符号化装置のブロック構成図である。
本実施形態の画像符号化装置は、符号化対象となる画像データを外部から入力し、画素ブロックを単位として符号化処理を行い、所定の目標符号量L以内となる符号列を生成するものである。本実施形態では目標符号量Lにヘッダ等の付加情報を含めないものとするが、ヘッダ等を含めて符号量を調整するようにしても構わない。なお、画像データの入力源は、イメージスキャナとするが、画像データをファイルとして格納している記憶媒体等であっても良く、その種類は問わない。
なお、符号化の対象となる画像データは輝度成分のみのモノクロ多値画像データとし、輝度成分は8ビット(0乃至255の256階調)として説明する。但し、これは実施形態の説明を簡単なものとするためであって、1画素が複数成分(例えば、RGBやCMYK)でも構わず、その色空間の種類は問わないし、1成分のビット数も8ビットに限らず、8ビットを超えるビット数でも構わない。また、更に、符号化対象の画像は水平方向W画素、垂直方向H画素により構成され、説明簡易化のため、W、Hは16の整数倍であるとして説明する。
以下、図1における画像符号化装置における符号化処理を説明する。図中、116は図1の画像符号化装置全体の動作を制御する制御部である。各処理部は制御部116の制御によって協調して動作する。以下、各処理部の処理内容を説明する。
まず、画像入力部101は、符号化対象となる画像データが順に入力する。画素データの入力順序はラスタースキャン順とする。1画素の値は8ビットであり、0乃至255の範囲の非負の整数値とする。画像の左上隅を座標(0,0)とし、水平右方向の画素位置x、垂直下方向の画素位置yにある画素の値をP(x,y)と表すこととする。例えば、位置(x、y)=(3,4)にある画素が、128という輝度値を持つ場合、P(3,4)=128と表現する。また、以下の説明では、位置(x、y)の“画素”を表現する場合にも“P(x,y)”という表現を用いることとする。
ブロック分割部102は画像入力部101から供給される画素データを適宜不図示の内部バッファに格納する。そして、ブロック分割部102は、複数画素で構成される矩形のブロック(実施形態では16×16画素とする)の画像データを単位として順番に出力する。以下、この16×16画素で構成される矩形ブロックを画素ブロックという。ブロック分割部102はこのように画素ブロックを単位に出力する。ここで、実施形態では、画像の左上端の画素ブロックを識別番号を“0”とし、ラスタースキャンの順序で、昇順に識別番号を付与することで、1つの画素ブロックを特定する。このため、第i番目の画素ブロックをMB(i)と表わす。また、画素ブロックの総数をNとすると、N=W/16×H/16である。つまり、変数iが取り得る範囲は[0、1、2、…、W/16×H/16−1]である。
系列変換部103では、ブロック分割部102から出力される画素ブロックのデータ(以下、単に画素ブロックデータという)を不図示の内部バッファに格納して、これを周波数変換を基本とする系列変換処理を行なう。ここでは、系列変換処理として4×4画素を単位とするアダマール変換を用いるものとして説明するが、画素ブロックデータを周波数成分に分離する変換であれば良く、別の実施形態では離散コサイン変換を用いても良い。以下、系列変換(ここではアダマール変換)の対象となる4×4画素で構成される部分画像データの矩形ブロックをサブ画素ブロックと呼ぶ。
ブロック分割部102により切り出される16×16画素の大きさの画素ブロックMB(i)と、サブ画素ブロックとの関係を図2に示す。同図に示すように、1つの画素ブロックには、16(=4×4)個のサブ画素ブロックが含まれる。
系列変換部103は、系列変換処理を2つのステージに分けて処理する。以下、各ステージについて説明する。
[第1ステージ(第1の系列変換)]
系列変換部103は、16個のサブ画素ブロックそれぞれについて2次元のアダマール変換を実行し、各サブ画素ブロックにつき1つのDC係数と15個のAC係数を生成する。図3は、画素ブロックMB(i)内の各サブ画素ブロックに対して、4×4回のアダマール変換を適用して得られる256個の係数の概要を示している。図中、網かけで示した係数は各サブ画素ブロックのDC係数値を表し、白領域がAC係数値を表す。図示の通り、1つの画素ブロックには16個のサブ画素ブロックが含まれるので、1つの画素ブロックからは16(=4×4)個のDC係数値と、240(=16×16−16)個のAC係数値が得られる。この変換結果で得られる240個のAC係数値が係数量子化部105に供給され、16個のDC係数値が次に説明する第2ステージのアダマール変換に利用される。
[第2ステージ(第2の系列変換)]
系列変換部103は各サブ画素ブロックのDC係数を集めて、図4の参照符号40のように新たな4×4個のDC係数で構成されるDCブロックを作る。そして、系列変換部103は、このDCブロック40について再度アダマール変換を行ない、同図の参照符号41に示す1個のDC係数(図中、黒色の係数)と15個のAC係数で構成される変換係数データ41を得る。この第2ステージで得られるDC係数及びAC係数と、第1ステージで得られるDC係数及びAC係数とを区別するため、第2ステージで得られるDC係数、AC係数を、DCDC係数、DCAC係数と言う。
さて、本実施形態における符号化処理では、系列変換部103で生成した係数を大きく2つに分けて処理する。ひとつは、第2ステージの処理にて得られた1個のDCDC係数と15個のDCAC係数で構成される変換係数データ41であり、以降、これらのデータを総称して低周波帯域データと呼ぶことにする。もうひとつは、第1ステージの処理にて得られたDC係数を除く240個のAC係数で構成されるデータであり、以降、これらを総称して高周波帯域データと呼ぶ。
ここで、系列変換部103は、低周波帯域データをバッファメモリとして機能する低周波帯域用メモリ104に格納し、高周波帯域データを係数量子化部105に出力する。
また、実施形態では、符号化対象の画像データについて高周波帯域データの符号化処理を完了した後に、低周波帯域データの符号化処理を開始する。そのため、低周波帯域データを低周波帯域用メモリ104に一旦格納する。
以下、高周波帯域データの符号化処理について説明し、その後で低周波帯域データの符号化処理を説明する。
[高周波帯域データの符号化]
係数量子化部105は系列変換部103により得られた高周波帯域データ(第1ステージにおける240個のAC係数)を、予め周波数帯域毎に設定される量子化ステップを用いて量子化処理を実行する。
1つのサブ画素ブロックの高周波帯域データは、図5に示すように、帯域の異なる15個のAC係数から構成されている。この15種の帯域のそれぞれに量子化ステップ値を設定しておく。これらの量子化ステップ値はいくつかのサンプル画像を用いて、予め設定した目標符号量Lに近似し、且つ、復号画像が許容範囲の画質となるような値を用いればよい。
ただし、この量子化ステップ値の設定は後述する符号量削減処理の実行頻度に関係する。例えば、目標符号量Lよりも少なくなるように量子化ステップを調整しておけば、符号量削減処理が行われる可能性は低くなるが、高周波帯域を必要以上に除去してしまう可能性がある(スピード重視)。一方、目標符号量Lよりも多くなるように調整した場合には、符号量削減処理の実施される可能性は高くなるが、高周波帯域データをできるだけ多く残しておくことになる(画質重視)。これらは利用形態に応じて設定すれば良い。
さて、係数量子化部105は、高周波帯域データの量子化結果である各係数値を係数符号化部106へと出力する。以降、特に量子化の有無を区別する必要がない場合、量子化された係数値を単に、係数値と記す。また、実施形態では、1個の係数値は、9ビット(うち1ビットは正負の符号)で表わされるものとして説明するが、精度を向上させるため10ビット以上であっても構わない。
係数符号化部106は係数量子化部105からの高周波帯域データの240個の量子化後の係数値を符号化する。具体的には、係数符号化部106は1つの係数値(9ビット)を、境界ビットBで示されるビット位置より上位の上位ビット部と、境界ビットB以下の下位ビット部に分離し、上位ビット部に対してゼロの連続数の符号化、即ち、ランレングス符号化を適用する。生成される符号列は、符号列格納用メモリ107に符号列を順次格納される。上位ビット部と下位ビット部に分離するための境界ビット位置情報で示される境界ビット位置Bは、画像の符号化開始時点で初期値として設定しておく。そして、係数符号化部106は、1つの画素ブロックを符号化する毎にその境界ビット位置Bのビット位置を更新する。
なお、復号装置でも、復号開始時には符号化装置と同じ初期の境界ビット位置Bを設定し、復号する境界ビット位置Bの更新アルゴリズムを符号化装置のそれと同じにする。この結果、境界ビット位置Bにかかる情報を、最終的に得られる符号化データファイルに格納することが不要にできる。
以下、係数符号化部106の処理と境界ビット位置Bの更新アルゴリズムについて説明する。
図6は係数符号化部106のブロック構成図である。係数符号化部106は、係数バッファ601、上位/下位ビット分離部602、上位ビット符号化部603、下位ビット符号化部604から構成される。以下、同図を用いて係数符号化部106の処理について説明する。
係数符号化部106に入力される高周波帯域データの240個の量子化係数値は、一旦、係数バッファ601に格納される。
上位/下位ビット分離部602は、係数バッファ601から所定の順番で係数値を読み出し、その符号絶対値表現における境界ビット位置Bより上位の上位ビット部と、境界ビット位置B以下の下位ビット部とに分離する。但し、正負の符号ビットは処理対象外とする。係数値の読み出し順は、どのような順序でも構わない。ここでは、画素ブロックMB(i)を構成する16個のサブ画素ブロックをラスタースキャン順に読出し、1つのサブ画素ブロック内の量子化係数値(AC係数値)については、ジグザグスキャン順で読むこととする。但し、この順序は、復号装置と共通になれば良いので、必ずしもこれに限らない。
詳細については後述するが、後段の上位ビット符号化部603において、係数の上位ビット部をゼロの連続数と非ゼロの係数値の組み合わせにより符号化する。この際にゼロの連続数が長くなるなスキャン順が都合が良い。例えば、いくつかのスキャンパターンから適切な方法を選択するようにしても良い。また、過去に符号化したブロックにおける係数の分布を参照して係数のパワーの大きいものから小さいものへと並ぶように動的にスキャン順序を変えるなどしても構わない。
着目するサブ画素ブロック内のn番目(1≦n≦15)の係数値をCnと表すとき、上位/下位ビット分離部602は、上位ビット部Un(=Cn>>B)と、下位ビット部Ln(=|Cn|&((1<<B)−1))を求める。ここで「Y>>X」は、値YをXビットだけ下位方向にシフトすることを示し、Y<<Xは値YをXビットだけ上位方向にシフトすることを示している。また、|Y|は値Yの絶対値を、X&Yは値Xと値Yとのビット単位の論理積(AND)を示す。
上位/下位ビット分離部602は、着目係数値Cnの境界ビット位置より上位の上位ビット部Unを上位ビット符号化部603に出力し、境界ビット位置以下の下位ビット部Lnを下位ビット符号化部604へと出力する。
なお、正負符号ビットを除く上位ビット部Unの値が“0”である係数Cnについては、その係数Cnの正負を表す符号も下位ビット符号化部604へと引き渡されるものとする。
図7に、係数値Cnの一例として“−41、−7、28、−1、…”が入力され、境界ビット位置B=4で上位ビット部Unと下位ビット部Lnに分離した例を示す。
図示の場合、上位/下位ビット分離部602は、ひとつのサブ画素ブブロックについて、正負符号の1ビットを含む15個の上位ビット部Unを上位ビット符号化部603に出力する。
上位ビット符号化部603は、入力される上位ビット部Unの正負符号ビットを除外した4ビットで表わされる値が“0”の場合、ここではその正負符号ビットの符号化は行わない。上位ビット部Unにおいて、正負符号ビットを除外した4ビットで表わされる値が“0”となるのは、図7の場合係数値Cn=“−7”、“−1”である。また、上位ビット部Unの正負符号ビットを除く、4ビットで表わされる値が非“0”の場合、その正負符号ビットを含む上位ビット部Unがそのままランレングス符号化対象となる。
従って、図7の場合、上位ビット符号化部603は、10進数表記の多値データ“−2”、“0”、“1”、“0”…の順に、ランレングス符号化を行うことになる。この結果、上位ビット部が“0”となる確率が高くなり、符号化効率が高めることができる。
上記は、1つのサブ画素ブロックのAC係数値の上位ビットの符号化処理である。着目画素ブロックには、4×4個のサブ画素ブロックが含まれるので、上記処理を4×4回行うことになる。
実施形態における上位ビット符号化部603の符号化はJPEGのBaselineでのAC係数の符号化と同じ方法を用いる。すなわち、着目するサブ画素ブロックのAC係数の上位ビット部Un(15個)については、ゼロの連続数と非ゼロの係数を組み合わせてハフマン符号化を行う。サブ画素ブロックの最後がゼロの連続で終わる場合にはEOB(End Of Block)を表す特殊符号を用いる点についてもJPEG Baselineと同様である。JPEG BaselineでのAC係数の符号化方法についての詳細は、以下の国際標準勧告書等に記載されているので、ここでは説明を割愛する。
“ITU-T Recommendation T.81 | ISO/IEC 10918-1:1994, Information technology - Digital compression and coding of continuous-tone still images: Requirements and guidelines.”
なお、上位ビット符号化部603では、上位ビット部の符号化を行いながら、上位ビット部の値が0である係数値の数NZをカウントする。このカウントは画素ブロック(サブ画素ブロックではない)を単位として行い、ひとつの画素ブロックの符号化開始時点でNZ=0とし、Unとして0が入力される毎にカウンタをインクリメントしていく。ひとつの画素ブロックの符号化が終了した時点で、NZの値をしらべ、所定の閾値Th以下であれば境界ビット位置Bの値を1つインクリメントする。つまり、境界ビット位置Bのビット位置を1つ上位ビット方向に更新する。反対に、NZ>Thであれば境界ビット位置の値を1つデクリメントする。但し、境界ビット位置Bの値は、0乃至8の間である。例えば、更新後の値が−1になった場合には、0に戻す。このようにして更新された境界ビット位置Bを用いて、次の画素ブロックのAC成分値の境界ビット位置位置が決定されていく。
一方、上位/下位ビット分離部602は、着目ブロックの240個の下位ビット部Ln(1≦n≦240)を下位ビット符号化部112に出力する。ただし、先に説明したように、上位/下位ビット分離部110は、上位ビット部Unの正負符号ビットを除く4ビットの値が“0”である係数Cnについては、その正負符号ビットを下位ビット部Lnに付加して下位ビット符号化部112に出力する。
正負符号ビットを除く上位ビット部Unの値が“0”となるのは、図7の例では、係数値“−7”と、“−1”である。そこで、正負符号ビットの付加位置は、下位ビット部Lnの上位から下位に向かって最初に“1”が出現する位置とする。図7の場合には、斜線で示される位置が正負ビットを挿入する位置になる。
下位ビット符号化部604は上位/下位ビット分離部602から出力された下位ビット部Lnの符号化を行う。上位ビット部Unに対し、下位ビット部Lnは一般に圧縮しにくいデータであるので、下位ビット符号化部604では下位ビット部を非圧縮で出力する。非圧縮であるので、基本的には入力データがそのまま符号化データとなるが、画質への影響度に応じてビットデータが配置されるようにする。具体的には、必要に応じて下位ビットプレーンを削除することによる符号量調整がし易いようにするため、ビットプレーン順に出力する。
図7の場合、下位ビット符号化部604は、入力した下位ビット部Ln(1≦n≦240)を不図示の内部バッファに格納し、まず、各下位ビット部Lnの最上位のビット桁(B番目の桁)で構成されるビットプレーンを出力する。この処理を最下位のビット桁(1番目の桁)まで繰り返す。
なお、詳細は後述するが、符号量制御部108によって既に符号量制御処理が行われ、符号列格納用メモリ107に格納するビットプレーンの下限ビット位置が決定されている場合、制御部116は、係数符号化部106に対して、下限ビット位置より低い桁のプレーンを出力を禁止させる。つまり、下限ビット位置が決定されている場合には、その下限ビット位置より下位のビットプレーンは符号列格納用メモリ107に格納されない。例えば、符号列格納用メモリ107の内部で保持している下限ビット位置がBminである場合、Bmin未満の桁については、その符号長Cl(i)=0(但し、i<Bmin)とし、Bmin未満のビットプレーンは符号列格納用メモリ107に格納しない。
図7に示した係数値列“−41、−7、28、−1、…”の場合(境界ビット位置B=4)における、下位ビット符号化部604が出力するデータの例を、図8に示す。
下位ビット部Lnの最初に出力されるプレーン(同一ビット位置のビット情報)はB桁のビットプレーン“1010…”となる。この中の“1”に対応するのは、係数値“−41”、“28”である。係数値“−41”、“28”の符号ビットを除く上位ビット部Unが表す値は非0であるので、正負符号ビットは挿入されない。
次のB−1桁のビットプレーンに着目すると、係数値“−7”を表す最初の“1”のビットが出現する(図7参照)。また、係数値“−7”の正負符号ビットを除く上位ビット部Unの値は“0”となる。それ故、図示の如く、係数値“−7”を表す最初の“1”に後続する位置に、正負の符号ビットを挿入する。以下、B−2桁のビットプレーン、B−3桁のビットプレーンを出力していく。B−3桁のビットプレーンでは、係数値“−1”を表す最初の“1”が出現するので、それに後続して正負符号ビットが挿入される。
以上の処理により、係数符号化部106からは上位ビット部に対応する符号列と下位ビット部に対応する符号列の2つが生成され、符号列格納用メモリ107へと格納される。以下、符号列格納用メモリ107をメモリ107と略記する。メモリ107は内部に少なくとも目標符号量Lのメモリ容量を有する。このメモリ107には2つの領域があり、1つは高周波帯域の符号化処理においては目標符号量Lのα倍(0<α<1.0)の容量(高周波帯域の許容符号量)を割り当てられている。そして、残りの領域(L×(1−α)の領域)には、後述する低周波帯域の符号化処理で生成された符号化データを格納するための領域に割り当てられている。
図9(a)は、メモリ107のうち、高周波帯域用に割り当てられたLのα倍(α<1.0)の領域について、画像の符号化開始時点での様子を示した図である。符号化開始時点では何も格納されておらず、その全容量が利用可能な状態である。乗数αは、目標符号量Lにおいて、高周波帯域データの符号量が占める割合の目安であり、かつ、高周波帯域データの格納に必要なメモリ容量を決定するものである。あらかじめ幾つかの画像サンプルを用いて、目標符号量Lで視覚的に良好な復号画質となるように量子化ステップを調整してみて、高周波帯域の符号量の占める割合の平均を求めるなどして、乗数αを設定すれば良い。例えば、このようにして求めた高周波帯域の符号量比が6割であるならば、αを0.6とし、符号列格納用メモリ107としてL×0.6の容量を高周波帯域用の符号化データ格納用領域として確保する。
係数符号化部106から出力される2つの符号列(上位ビット部と下位ビット部の符号化データ)はメモリ107の先頭からと末尾からとに分けて格納される。先に説明したとおり、下位ビット部は非圧縮で出力されるので、上位/下位ビット分離を行った段階で符号量が明確になっているため、符号列の格納を開始する番地を算出することができ、メモリの末尾から格納することも容易であることが理解できよう。例えば、i番目の画素ブロックMB(i)の下位ビット部に対応する符号列の格納を開始する番地をADR(i)と表すとき、画素ブロックMB(i)の下位ビット部の符号量がCl(i)と分かれば、
ADR(i)= L×α − Cl(i) ・・・ i=0の場合
ADR(i)= ADR(i−1)−Cl(i) ・・・ i≠0の場合
により、格納開始の番地を定め、その番地からMB(i)の下位ビット符号化データを格納すればよい。但し、ここではメモリ107の先頭番地を0番地としている。
なお、符号量制御部108は、各画素ブロックの上位ビット部、下位ビット部それぞれに対する符号列の長さCu(i)、Cl(i)を保持する。図11は、n番目の画素ブロックMB(n)まで符号化が終了した時点で、符号量制御部108が保持、及び、管理する各画素ブロックの符号長についての情報を図示したものである。n+1番目以降の部分(斜線部)についてはこの時点では、まだ値が入っていない。
さらに、符号量制御部108は、各画素ブロックの境界ビット位置と各ビットプレーンの符号長を含んだ下位ビット部符号長情報を保持する。以降、画素ブロックMB(i)について、境界ビット位置をB(i)、b桁(1≦b≦B(i))のプレーンの符号長をCp(i,b)と記す。図12はひとつのブロックについて格納される下位ビット部符号長情報を図示したものである。
図9(b)は、n番目の画素ブロックMB(n)まで符号化が終了した時点でのメモリ107の様子を示している。図に示すように、高周波帯域の係数の上位ビット部に対応する符号列は、メモリ107の先頭番地から、ブロックMB(0)からMB(n)まで順番に格納される。一方、下位ビット部に対応する符号列についてはメモリ107の末尾の番地から先頭番地に向けて格納されていく。
符号量制御部108は、メモリ107の空きメモリ容量Wを監視し、ひとつの画素ブロックの最悪符号長BLと比較して、W<BLであれば、メモリ107に格納される符号量の削減を行う。n番目のブロックの符号化終了時点で、メモリ107に格納されている上位ビット部符号化データの容量をCL_Hu、下位ビット部符号化データの容量をCL_Hlとすると、
CL_Hu = Σ Cu(i) (但し、i=0、1、2…n)
CL_Hk = Σ Cl(i) (但し、i=0、1、2…n)
である。さらに符号量の総和をCL_Hとすると、空きのメモリ容量Wは
W=L×α−CL_H = L×α−(CL_Hu+CL_Hl
で表すことができる。
図10(a)はm番目の画素ブロックMB(m)の符号化により、空きのメモリ容量Wがブロックの最悪符号長BLよりも少なくなった状態を図示している。この場合、ブロックMB(m)が画像の最後のブロックでない(m≠N−1)ならば、符号量制御部108は下位ビット部の符号化データを削除して、メモリの空き容量を増やす。
図13はm番目の画素ブロックの符号化により、W<BLとなった場合に、符号量制御部108により行われる符号量削減の処理を示すフローチャートである。以下、同図を参照して、符号量制御部108における符号量削減の処理の流れを説明する。以下の説明からもわかるように、ビットプレーンの下位から上位に向かう優先順位に従って、ビットプレーンを削除していく。
まず、メモリ107に格納される上位ビット部符号化データの1画素ブロック当たりの平均符号量(平均符号長)を算出する(ステップS1301)。これはCL_Huを符号化済のブロック数m+1で割ることにより算出される。
次に、内部に保持する下位ビット部符号長情報を参照して、各画素ブロックにおける境界ビット位置の最大値Bmaxを取得し、変数iに格納する(ステップS1302)。
続いて、iプレーンよりも上位(iプレーンは含まない)の推定符号量PL(i)を算出する。推定符号量とは、符号化済の画素ブロックの平均符号量から、符号化対象画像データの予想される高周波帯域データの最終符号量である。iがBmaxである場合には高周波帯域データを上位ビット部だけで構成した場合に推定される符号量であり、以下の式により求める。
PL(i)=CL_Hu/(m+1)×N (i=Bmaxの場合)
また、iがBmaxでない場合(i<Bmaxの場合)、PL(i)は上位ビット部の符号化データと下位ビット部のi+1以上の桁のプレーンにより高周波帯域データを構成した場合に推定される符号量である。i桁のプレーンの平均符号長をS(i)とするとき、以下の式でPL(i)を求めることができる。
S(i) = ΣCp(j,i)/(m+1) (j=0〜mまで)
PL(i)=PL(i+1)+ S(i+1)×N (i≠Bmaxの場合)
PL(i)+BLが、メモリ107の容量(L×α)以下であるか否かを判定する(ステップS1304)。BLはひとつのブロックの最悪符号長であり、BLを加えて比較することにより、符号量削減後に最低でも1ブロックの符号化データを格納できることを保証する。PL(i)+BL<L×αであるならば変数iをデクリメントし(ステップS1305)、再び、ステップS1303の処理に戻る。そうでない場合には、ステップS1306へと処理を移す。
ステップS1306ではi以下の桁のプレーンをメモリ107から削除し、下位ビット部の符号列を再配置する。符号量制御部に保持される下位ビット部符号長情報を参照することにより、所定のプレーンの情報が削除できることが理解されるであろう。図10(b)はi以下の桁のプレーンを削除することにより、符号量削減が行われた後の様子を示す。このとき、図11に示した各ブロックの下位ビット部符号長Cl(i)も符号長の削減に伴って更新される。なお、i以下の下位プレーンのデータを削除した場合、メモリ107に格納される最も低いプレーンの番号として“i+1”を変数Bmin(下限ビット位置)として保持する。
ステップS1307では、変数iがBmaxであるか否かを判定し、i=Bmaxである場合にはステップS1308へ、そうでない場合には符号量削減の処理を終了する。

変数iがBmaxである場合、即ち、上位ビット部の符号化データのみで高周波帯域データを構成する場合、現在の上位ビット部の総符号量CL_HuにBLを加えて、メモリ容量L×αと比較する(ステップS1308)。この判定は上位ビット部の符号化データのみをメモリ107内に残した場合の空き容量がBL以上であるか否かを判定していることになる。CL_Hu+BL<L×αの場合は処理を終了する。また、CL_Hu+BL≧L×αである場合、すなわち、空き容量がBL未満の場合にはステップS1309へと処理を移す。
ステップS1309ではメモリ107の内部に格納された高周波帯域データを全て削除する。高周波帯域データを全て破棄してしまうため、解像度が落ちることになる。この処理はメモリの破綻を引き起こさないための回避措置として適用する手段であり、出来る限りこのような状態を引き起こさないように係数量子化部105の量子化ステップを設定しておく必要がある。
以上の処理により、符号化対象が最後の画素ブロックに至る以前では、メモリ107内に少なくとも1ブロックの最悪符号長BL以上の空き容量が常に確保される。そして、符号化対象の画像データを構成する全ての画素ブロックの高周波帯域の符号化データが、係数量子化部105、係数符号化部106、及び、符号量制御部108の動作により、符号列格納用メモリ107に格納されることになる。なお、係数量子化部105及び係数符号化部106によって、本発明の第1の符号化部1001を構成する。
[低周波帯域データの符号化]
以下に説明する係数量子化部110及び係数符号化部111によって、本発明の第2の符号化部1001を構成する。詳細は後述するが、係数量子化部110は、量子化パラメータ設定部、及び、量子化パラメータ更新部113より設定される符号化パラメータに従って量子化処理を行うものである。
さて、上記のようにして、符号化対象の画像データの上記高周波帯域データの符号化処理が完了すると、制御部116は、係数量子化部110、係数量子化部110、係数符号化部111、符号量検出部112を制御し、低周波帯域データの符号化処理を開始させる。このとき、制御部116は、目標符号量Lから、符号列格納用メモリ107に格納された高周波帯域データの総符号化データ量CL_Hを減じた値(後述する低周波帯域目標符号量に対応する)を、符号量検出部112に設定する。
さて、低周波帯域データの符号化を開始するとき、低周波帯域用メモリ104には、符号化対象の画像データの全画素ブロックMB(0)乃至MB(N−1)それぞれの低周波帯域データ(図4参照)が既に格納されている点に注意されたい。ここで、Nは総画素ブロック数である。また、符号列格納用メモリ107には、既に高周波帯域データの符号化データが格納されて、最終的な符号化データ量CL_Hも確定している点についても注意されたい。
先に説明したように、符号列格納用メモリ107には、高周波帯域データの符号化データを格納するための領域(その容量はL×α)が確保されている。しかし、実際の高周波帯域データの符号量CL_Hは、CL_H≦L×αの関係にある。換言すれば、符号列格納用メモリ107中の、高周波帯域データの符号化データを格納するために確保したメモリ容量には、W(=L×α−CL_H)だけの空き領域があることを意味する。
そこで、本実施形態では、符号列格納用メモリ107のL×(1−α)として確保された領域と、高周波帯域データの符号化データを格納した領域中の未使用のWの領域とを、低周波帯域データの格納可能な領域として決定し、低周波帯域データの符号化を行う。「L×(1−α)+W」は、低周波帯域データの符号化データの許容符号量であるので、これ以降、「L×(1−α)+W」を低周波帯域目標符号量L’と記す。これは、先に説明したように、符号量検出部112に設定する情報でもある。
以下、実施形態の低周波帯域データの符号化処理を説明する。
量子化パラメータ設定部109は、低周波帯域目標符号量L’に基づいて決定されるデフォルトの量子化パラメータqを係数量子化部110に設定する。
発明者は、予めいくつかのサンプル画像で、低周波帯域目標符号量L’と量子化パラメータの関係を調べておき、低周波帯域目標符号量L’と量子化パラメータを対応づける図18に示すルックアップテーブルを作成した。そして、このテーブルを、量子化パラメータ設定部109内の不図示のメモリに格納するようにした。そして、量子化パラメータ設定部109は、図18のルックアップテーブルを参照して、低周波帯域目標符号量L’から、量子化パラメータqを決定した。
この量子化パラメータqは、符号列格納用メモリ107のL×(1−α)のときに“1.0”となる値であって、Wが大きい程小さくなる。
係数量子化部110は、低周波帯域データ(実施形態では4×4個の係数値)を量子化するための、4×4個の基準となる量子化ステップ値を保持するメモリを有する。そして、量子化パラメータ設定部109から設定された量子化パラメータqを、各基準の量子化ステップ値に乗算することで、実際に量子化する際の量子化ステップ値を算出する。
この後、係数量子化部110は、低周波帯域用メモリ104に格納された各画素ブロックの低周波帯域データ(16個の係数値;図4参照)を単位に量子化し、その量子化結果を係数符号化部111に出力する。
係数符号化部111は係数量子化部110から出力される係数量子化値を、ゼロの連続数と非ゼロの係数値の組み合わせによりランレングス符号化する。ここでの符号化は特にこの方式に限定されるものではなく、例えば、係数符号化部106と同じように、係数値をビット分離して、上位ビット部分のみをランレングス符号化するといった方法を用いても良い。低周波帯域符号化データは符号列格納用メモリ107へと格納される。低周波帯域データの符号化データは、符号列格納用メモリ107の内部にあらかじめ確保した低周波帯域用の領域L×(1−α)に順番に書き込まれる。また、低周波帯域用の領域が一杯になった時には、高周波帯域符号化用として使用していたL×αの領域のうちの空きメモリ領域(W)を使用する。
ここで、低周波帯域データの符号化処理で得られた符号化データの現時点での総符号量をCL_Lと定義する。高周波帯域データの符号化処理で得られた符号量は既に説明したようにCL_Hとして確定しているので、これらの合計符号量“CL_L+CL_H”は、目標符号量L以下でなければならない。言い換えれば、その常時、低周波帯域データの総符号量CL_Lが低周波帯域目標符号量L’以下でなければならない。
先に説明したデフォルトの量子化パラメータqは、統計的に求めたものであるので、着目している画像データを符号化処理中に、
CL_L+CL_H>L(or CL_L>L’)
になってしまうことが起こり得る。つまり、目標符号量Lをオーバーフローすることが起こり得る。
そこで、CL_L>L’となると判定した場合、量子化パラメータ更新部113に量子化パラメータqの変更を指示すると共に、制御部116にその旨を通知する。制御部116がこの通知を受けた場合、低周波帯域データの符号化処理を実行する各処理部を停止し、メモリ107に格納された、それまでの低周波帯域データの全符号化データを破棄させる。
この後、量子化パラメータ更新部113は、生成される符号量がより少なくするため、量子化パラメータqを更新するためのパラメータ(更新パラメータrという)を係数量子化部110に設定する。量子化パラメータ更新部113が設定する更新パラメータrは、1以上の値であり、量子化パラメータ設定部109が設定した量子化パラメータqに乗算するために使用される。すなわち、量子化パラメータ109が持つ基準となる量子化ステップ値をQ0とした場合、係数量子化部110は、Q=Q0×q×rを新たな量子化ステップ値として算出する。この新たな量子化ステップ値Qは、それ以前の量子化ステップ値Q0×qよりも大きな値になっていることに注意されたい。なお、2回め以降のオーバーフローが発生した場合、量子化パラメータ更新部113は、前回よりも大きな更新パラメータrを設定することになる。
なお、ここでは、Q=Q0×q×rを、新たな量子化ステップ値とする例を説明したが、これによって本願発明が限定されるものではない。例えば、係数量子化部109には、量子化ステップ値を格納する複数の量子化テーブルを格納するメモリを有し、q、rをアドレスとして入力し、一義的に決まる量子化テーブルを選択して、量子化ステップ値を決定しても構わない。重要な点は、CL_L>L’と判断される度に、その時点で使用していた量子化ステップ値よりも大きな値を持つ量子化ステップ値を用い、符号化圧縮率を上げるようにすることである。
いずれにせよ、係数量子化部110が、量子化パラメータ更新部113から、量子化パラメータの更新のためのパラメータrを入力したとする。この場合、制御部116は、低周波帯域用メモリ104の先頭の画素ブロックの低周波帯域データから量子化処理を再度実行を開始させる。そして、係数符号化部111による再符号化を開始する。
従って、符号量制御部108を第1の符号量制御部とするなら、量子化パラメータ設定部109、量子化パラメータ更新部113、符号量検出部112は第2の符号量制御部として機能することになる。
上記のようにして、低周波帯域目標符号量L’に収まる範囲で全ての画素ブロックについて低周波帯域符号化データが格納されると、符号列形成部114により、所定の形式の符号化データを生成し、符号出力部115に出力する。
符号出力部115は、符号化対象の画像データを入力する際に、出力先(例えばハードディスク装置)にファイルヘッダを生成し、それに後続して、符号列形成部114で生成された符号列を出力し、1個の符号化データファイルを生成することになる。
図15に本実施形態の画像符号化装置から出力される符号化データファイルの構造を示す。ファイルヘッダには画像の水平方向画素数、垂直方向画素数や、色成分の数(実施形態でモノクロ画像の例であるので色成分の数は1つ)、各画素のビット数など、復号に必要な各種情報がヘッダとして付与される。このヘッダには高周波帯域符号化データの有無や、符号列に含まれる最下位のプレーンの番号Bminの情報が含まれる。ファイルヘッダの後に、画像の画素ブロックについて低周波帯域の符号化データが配置され、その後に高周波帯域の符号化データが並ぶ。また、高周波帯域符号化データの中には、まず、全ての画素ブロックについて上位ビット符号化データが配置され、その後に、下位ビット符号化データが並ぶ。図中、Nは画素ブロックの総数を表す。上位ビット符号化データは、画素ブロックを単位とするラスタースキャンの順番で、各画素ブロックの上位ビット部符号化データを連結して構成される。下位ビット符号化データは各画素ブロックの下位ビット部符号化データをビットプレーン順に配置して構成される。ビットプレーンiはラスタースキャンの順番で各画素ブロックのビットプレーンiのデータを集めて構成される。但し、境界ビットB(n)<iとなるブロックMB(n)が存在することもあるので、必ずしもすべての画素ブロックからデータが集められるわけではない。
図15に示した符号の構造は、あくまでもその一例であり、低周波帯域符号化データと、上位ビット部と下位ビット部に分離されて符号化された高周波帯域符号化データを格納するのに適した形態であれば良い。例えば、図15の構造に変えて、複数の画素ブロックで構成されるマクロブロック、又は、そのマクロブロックを複数包含するタイルを単位とするデータ構造としても構わない。
本実施形態の画像符号化装置で生成した符号化データは、上位ビット部を境界ビット位置Bで表されるビット数分上位にシフトして、必要な画質レベルに応じて下位ビット部を復元し、符号化と逆の過程で復号することにより、再生できる。
以上のように、本実施形態の画像符号化装置は、複数の画素で構成される画素ブロック(実施形態では16×16画素のサイズ)で、系列変換を行い、低周波帯域データと高周波帯域データとに分離する。視覚的に重要な低周波帯域データはメモリ(低周波帯域用メモリ104)に確保しておき、先に高周波帯域データを、上位ビット部と下位ビット部に分離してそれぞれ符号化する。このとき、下位ビット部は非圧縮としてビットプレーン順のデータを構成し、生成符号量に応じて下位のビットを破棄することにより、高周波帯域データの符号量を一定の範囲(実施形態ではL×α)に限定することができる。高周波帯域データを符号化した後に、高周波帯域データの発生符号量に基づいて量子化ステップを設定し、低周波帯域データの符号化を行う。これにより、低周波帯域データの量子化を細かく制御することができ、目標符号量を高画質に実現することが可能となる。
[第1の実施形態の変形例]
上記第1の実施形態と同等の処理を、コンピュータが読込み実行するコンピュータプログラムによって実現する例を第1の実施形態の変形例として以下に説明する。
図14は、本変形例における情報処理装置(例えばパーソナルコンピュータ)のブロック構成図である。
図中、1401はCPUで、RAM1402やROM1403に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。1402はRAMで、外部記憶装置1407や記憶媒体ドライブ1408、若しくはI/F1409を介して外部装置からダウンロードされたプログラムやデータを記憶する為のエリアを備える。また、RAM1402は、CPU1401が各種の処理を実行する際に使用するワークエリアも備える。1403はROMで、ブートプログラムや本装置の設定プログラムやデータを格納する。1404、1405は夫々キーボード、マウスで、CPU1401に対して各種の指示を入力することができる。
1406は表示装置で、CRTや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。1407はハードディスクドライブ装置等の大容量の外部記憶装置である。この外部記憶装置1407には、OS(オペレーティングシステム)や後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどがファイルとして保存されている。また、CPU1401は、これらのプログラムやデータをRAM1402上の所定のエリアにロードし、実行することになる。
1408は記憶媒体ドライブで、CD−ROMやDVD−ROMなどの記憶媒体に記録されたプログラムやデータを読み出してRAM1402や外部記憶装置1407に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。この場合、記憶媒体ドライブ1408は、CPU1401による制御によって、これらのプログラムやデータをRAM1402上の所定のエリアにロードする。
1409はI/Fで、このI/F1409によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のRAM1402や外部記憶装置1407、あるいは記憶媒体ドライブ1408に入力することもできる。1410は上述の各部を繋ぐバスである。
上記構成において、本装置の電源がONになると、CPU1401はROM1403のブートプログラムに従って、外部記憶装置1407からOSをRAM1402にロードする。この結果、キーボード1404、マウス1405の入力が可能となり、表示装置1406にGUIを表示することが可能になる。ユーザが、キーボード1404やマウス1405を操作し、外部記憶装置1407に格納された画像符号化処理用アプリケーションプログラムの起動の指示を行なうと、CPU1401はそのプログラムをRAM1402にロードし、実行する。これにより、本装置が画像符号化装置として機能することになる。
以下、CPU1401が実行する画像処理用のアプリケーションプログラムの処理手順を図16のフローチャートに従って説明する。基本的に、このプログラムは、図1に示す各構成要素に相当する関数を備えることになる。ただし、図1における低周波帯域用メモリ104、符号列格納用メモリ107等の各領域はRAM1402内に予め確保することになる。
まず、ステップS1600において、符号化を開始する前の初期化処理が行われる。ここでは、処理する画素ブロックの番号を保持する変数iを0に初期化する。
次に、ステップS1601においてI/F1409によって接続される外部装置から符号化対象の画像データを順次入力し、RAM1402に格納しながら、i番目の画素ブロックデータを形成する(画像入力部101、ブロック分割部102の処理に相当)。このとき、画像データのヘッダを参照することで、その画像に含まれる画素ブロックの総数を算出しておく。
次に、ステップS1602において、着目する画素ブロックMB(i)についてアダマール変換等の系列変換処理を施し、対応する変換係数データ(高周波帯域データ、低周波帯域データ)をRAM1402内に格納する(系列変換部103の処理に相当)。
続いて、ステップS1603で、画素ブロックMB(i)の高周波帯域データの符号化を行う(係数量子化部105、係数符号化部106の処理に相当)。生成された符号列はRAM1402の内部に格納する。
次いで、ステップS1604にて、高周波帯域符号化データの符号量CL_H+BLと目標符号量L×αの比較を行う。CL_H+BL<×αの場合には、処理をステップS1606へと移し、そうでない場合には下位のビットプレーンから削除していくことにより高周波帯域の符号量削減を行う(ステップS1605)。ステップS1604とステップS1605の処理は符号量制御部108の処理に相当する。
ステップS1606では、符号化処理を行った画素ブロックMB(i)が符号化対象画像の最後のブロックであるか否かを判定する。すなわち、ブロック番号iがN−1であるか否かを調べ、N−1である場合には処理をステップS1608へと移す。N−1でない場合には、ステップS1607でブロック番号iをインクリメントし、次のブロックについてステップS1601から処理を繰り返す。
処理がステップS1608に移ったときには、すべてのブロックについて高周波帯域データの符号化が終了しており、その総符号量CL_Hは判明する。従って、低周波帯域目標符号量L’を算出し、初期の量子化ステップを決定する(量子化パラメータ設定部109の処理に相当)。
ステップS1609では、低周波帯域データの符号化開始の準備として、ブロック番号を保持する変数iに0を設定する。
ステップS1610では、着目する画素ブロックMB(i)について、RAM1402内に格納される低周波帯域データを読み出す。読み出された画素ブロックMB(i)の低周波帯域データは、ステップS1608により決定された量子化ステップを用いて量子化された後、符号化を行う(ステップS1611)。これらの処理は係数量子化部110、係数符号化部111の処理に相当する。生成された符号化データはRAM1402の内部に格納される。
ステップS1612では、既に符号化済の高周波帯域データの符号量CL_Hと、ここまでに発生した低周波帯域データの符号量CL_Lとの和を目標符号量Lとを比較する。なお、この代りに、符号量CL_Lと低周波帯域目標符号量L’と比較しても構わない。
CL_H+CL_L<Lの場合(or CL_L<L’の場合)には、ステップS1614へと処理を移し、そうでない場合には、ステップS1613へと処理を移す(符号量検出部112の処理に相当)。
ステップS1613では量子化ステップが大きくなるように量子化パラメータを更新して、ステップS1609へと戻り、更新された量子化ステップにより再度MB(0)の低周波帯域データから符号化処理を再開する(量子化パラメータ更新部の処理に相当)。このとき、RAM1402に格納される低周波帯域データの符号は破棄する。
ステップS1614では符号化したブロックMB(i)が符号化対象画像の最後のブロックであるか否かを判断する。最後のブロックの場合、すなわちブロック番号iがN−1である場合、ステップS1616へと移る。最後のブロックでない場合(i≠N−1)、ステップS1615にてブロック番号を保持する変数iをインクリメントし、次のブロックについてステップS1610から処理を繰り返す。
ステップS1616では、RAM1402に格納された全ブロックの符号化データから、最終的な符号化データを生成して、I/F1409を解して外部装置へと出力する(符号列形成部114、符号出力部115の処理に相当)。
以上説明したように本変形例によっても、第1の実施形態と同様の作用効果を奏することが可能となるのは明らかであろう。すなわち、高周波帯域データの切り捨てにより高周波帯域データの符号量を調整した後、低周波帯域データの量子化ステップを設定して目標符号量になるように符号化する。この結果、少ないメモリ量で、簡易かつ高画質の目標符号量以下の符号化データを生成することができる。
[第2の実施形態]
上記第1の実施形態及びその変形例では、低周波帯域データと高周波帯域データに分離し、まず、高周波帯域データを符号化した。その後、高周波帯域データの符号量に基づいて低周波帯域の量子化パラメータを設定し、目標符号量以下となるように量子化パラメータを繰り返して調整して符号化を行った。しかしながら、たとえば、一定時間内に多くの画像を符号化処理しなければならない場合など、再符号化に伴う処理の時間が問題となる場合もある。
そこで、本第2の実施形態として、単写モードと連写モードを切り替え可能なデジタルカメラ等に好適な実施形態について説明する。一枚の画像の符号化処理にかかる時間制約が厳しくない単写モードでは第1の実施形態と同様に必要に応じて低周波帯域データの再符号化を行う。一方、高速な符号化処理が必要とされる連写モードの場合には低周波帯域データの再符号化を実施しない。上記を言い換えると、符号化する画像データの個数/単位時間を言い換えてもよい。
なお、本第2の実施形態でも、対象の画像データは、説明を簡単にするためにモノクロ画像データとするが、RGB画像データや、CMYKカラー画像データに適用しても良い。また、画像は水平方向W画素、垂直方向H画素により構成されるものとする。
本第2の実施形態に係る画像符号化装置のブロック図は、第1の実施形態で説明した図1のブロック図と基本的に同じである。ブロック全体の動作を制御する制御部116に不図示の操作部からの動作モードを指示入力がある点が異なる。
以下、第2の実施形態の処理について、第1の実施形態と動作が異なる部分について説明する。
本第2の実施形態の画像符号化装置に入力される動作モード信号は“0”,“1”の2値であるとする。動作モード信号が“0”である場合を符号化対象画像データが単数である「通常モード」とする。また“1”である場合には、符号化対象画像データが複数であるので「高速モード」とする。処理時間にゆとりがあり、第1の実施形態の説明における、低周波帯域データの再符号化による符号量制御を許容する場合には通常モードが選択される。一方、低周波帯域データの再符号化を行わず、高速に符号化処理を終了したい場合には高速モードが選択される。
通常モードが選択される場合、即ち、動作モード信号が“0”である場合には、本第2の実施形態の画像符号化装置は第1の実施形態で説明した通りの動作を行う。
一方、高速モードが選択される場合、即ち、動作モード信号が“1”である場合には、高周波帯域データの符号化と、低周波帯域データ用の量子化パラメータの設定までは第1の実施形態で説明した動作と同じである。しかしながら、低周波帯域データの符号化時に、符号量制御部108を動作させることにより低周波帯域データの複数回の符号化を行わず、メモリ107内の高周波帯域データの符号化データ中の部分符号化データを削除する点が異なる。
図17はm番目の画素ブロックMB(m)の低周波帯域データの符号化により、メモリ107の空き容量が少なくなったと判定した場合の、符号量制御部108により行われる符号削減処理の流れを示すフローチャートである。以下、同図を参照して、符号量制御部108により行われる符号量削減処理の流れを説明する。
まず、メモリ107に格納される低周波帯域データの画素ブロックの平均符号長を算出する(ステップS1701)。これはこれまでに出力された低周波帯域データの符号量CL_Lを符号化済のブロック数m+1で割ることにより算出される。
次に、算出した平均符号長とブロック総数Nの積を計算することにより、最後のブロックまで符号化した場合の、低周波帯域データの推定符号量PCL_Lを求める(ステップS1702)。PCL_Lは以下の式で表すことができる。
PCL_L=CL_L/(m+1)×N
ここで、上式の右辺第一項はステップS1701で求めたブロック平均符号長である。
次に、変数iに高周波帯域データの下位ビット部として保持される最下位のプレーンBminを設定する(ステップS1703)。
続いて、変数iと境界ビット位置Bの最大値Bmaxとを比較し(ステップS1704)、i≦Bmaxである場合にはステップS1705へ、そうでない場合にはステップS1709へと処理を移す。
ステップS1705ではi以下のプレーンを削除した場合の高周波帯域データの符号量L(i)を算出する。i桁のプレーンの符号量をP(i)とするとき、
L(i)=CL_Hu (i=Bmaxの場合)
P(i)=ΣCp(j,i) (j=0〜mまで)
L(i)=L(i+1)+P(i+1)(i≠Bmaxの場合)
により求められる。
ステップS1706では低周波帯域データの推定符号量PCL_Lと、iプレーン以下の削除した場合の高周波帯域データの符号量L(i)の和を目標符号量Lと比較する。PCL_L+L(i)<Lとなる場合にはステップS1710へと処理を移し、そうでない場合にはステップS1708へと処理を移す。
ステップS1708では変数iをインクリメントし、再びステップS1704へと処理を移す。
ステップS1710ではi以下の桁のプレーンをメモリ107から削除し、下位ビット部の符号列を再配置する。この処理は第1の実施形態の符号量制御部の動作でステップS1306の動作と同じである。
一方、iがBmaxを越えてしまう場合、即ち、下位ビット部の符号化データをすべて削除しても十分な空き容量が確保できない場合にはステップS1709に至る。この場合、メモリ107から高周波帯域符号化データのすべてを削除する。即ち、高周波帯域データの上位ビット部の符号化データ、下位ビット部の符号化データの両方を削除する。なお、場合によっては高周波帯域データのすべてを削除しても空き容量が不足となることも起こりえる。しかしながら、本実施形態では係数量子化部110の量子化ステップとメモリ107の容量の設定により、低周波帯域データだけでメモリオーバーフローは起こらないものとする。
以上の処理により、低周波帯域の符号量が多くなる場合には、符号化済の高周波帯域の符号化データを削除して空き容量を確保しながら、符号化対象画像を所定の符号量以下で符号化する。
以上説明したように本第2の実施形態によれば、画質優先の符号量制御を行う通常モードと、処理速度有線の符号量制御を行う高速モードの2つを備え、用途に応じて切り替えて動作させることができる。
なお、本第2の実施形態と同等の処理をコンピュータプログラムでもって実現できることは、先に説明した第1の実施形態の変形例から明らかであるので、その説明については省略する。
[第3の実施形態]
上記第2の実施形態の画像処理装置では、画像の撮影モード符号量制御の方法を切り替えた。しかし、これ以外の情報に基づいて、切り替えることもできる。本第3の実施形態では、撮影する画像の大きさから符号量制御方法を切り替える例について説明する。
本第3の実施形態で、第2の実施形態と動作が異なるのは、制御部に入力される動作モード信号の設定方法のみである。
本第3の画像符号化装置では、水平・垂直方向の画素数が異なる3種類の画像を符号化する。小さいほうから順にS,M,Lと記す。Lの場合、即ち、解像度が高い場合には、符号化処理する画素数が多く、S,Mに比べて処理時間が掛かり、かつ、高周波帯域の劣化が目につきにくい。反対に解像度が低い場合には、低周波帯域が主成分であり、視覚的な劣化が目に付きやすい。よって、高解像度で撮像される場合(本実施形態では画像のタイプがLの場合)には、動作モード信号として“1”を入力し、高速モードとする。一方、Sまたは、Mの場合には通常モードを設定する。
なお、本第3の実施形態に相当する処理をコンピュータプログラムでもって実現できることは、先に説明した第1の実施形態の変形例と同様、明らかである。
本第3の実施形態では高周波成分の歪の許容範囲が大きい場合には、高速モードを選択し、歪の許容範囲が小さい場合には通常モードを適用するものである。従って、画像の大きさ以外でも例えば、画質設定(低、中、高)に基づいてモード選択を行っても同様に効果がある。例えば、高画質の場合には高速モードを選択し、中、低画質の場合には通常モードとしても良い。
[その他の実施形態]
上記各実施形態では周波数帯域のデータへの変換に4×4画素を単位とするアダマール変換を2回適用したが、これに限らず、DCTなど、他の周波数変換手段を用いても構わない。また、周波数帯域のデータへの変換を独立のブロックで実施する必要もなく、例えば、ブロックを跨って変換処理を行う重複直交変換や重複双直交変換などを用いても良い。更には、第1ステージと第2ステージで適用する系列変換を別のものとしても構わない。
また、上位ビット部の符号化にJPEG Baselineと同様の手法を用いる例について示した。しかしながら、ビットプレーンを単位として2値の算術符号化を行うなど、別のエントロピ符号化技術を用いても良い。また、上述の実施形態では16×16画素を画素ブロックとして周波数帯域への変換を行ったがブロックの大きさはこれに限定されるものではなく、8×8や32×32など、別のブロックサイズとしても良い。
また、実施形態では、モノクロ画像データの符号化を例に説明したが、画像の色空間は、RGB、CMYK、Lab、YCrCbなど様々なタイプの画像データに適用可能であるのは明らかである。従って、色成分の数や色空間の種類によって本発明が限定されるものではない。
また、通常、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されていて、それをコンピュータの読取り装置(CD−ROMドライブ)にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、このようなコンピュータ可読記憶媒体も本発明の範疇に入ることも明らかである。
第1の実施形態に係る画像符号化装置のブロック構成図である。 符号化処理の単位となるブロックとサブ画素ブロックの関係を示す図である。 ブロックを構成する16個のサブ画素ブロックを周波数変換して得られるDC成分とAC成分を表す図である。 各サブ画素ブロックから集められた4×4のDC成分と、それに対して再度周波数変換を行った結果を表す図である。 AC係数の識別番号を示す図である。 係数符号化部106の内部構造を表すブロック構成図である。 係数のビット分離の概略を示す図である。 下位ビット符号化データの例を示す図である。 符号列格納用メモリ107の高周波帯域データの符号化データを格納する領域とその符号化データの格納状態を表す図である。 符号量制御部108による、符号列格納用メモリ107の内部に格納される符号量の削減の様子を表す図である。 符号量制御部108の内部に保持される各ブロックの符号長に関する情報の概要を示す図である。 符号量制御部108の内部に保持される各ブロックの下位ビットの符号長に関する情報の概要を示す図である。 符号量制御部108の処理の流れを示すフローチャートである。 第1の実施形態の変形例に係る情報処理装置のブロック構成図である。 第1の実施形態の画像符号化装置の出力する符号化データの構造を示す図である。 第1の実施形態の変形例に係る処理の流れを示すフローチャートである。 第2の実施形態において、符号量制御部108の処理の流れを示すフローチャートである。 第1の実施形態における低周波帯域目標符号量と符号化パラメータとの相関関係を示す図である。

Claims (10)

  1. 画像データを符号化し、目標符号量L以内の符号化データを生成する画像符号化装置であって、
    符号化対象画像データから、複数画素で構成される画素ブロックの画像データを入力する入力手段と、
    入力した画素ブロックの画像データを周波数変換して、高周波帯域データと低周波帯域データを生成する周波数変換手段と、
    該周波数変換手段で得られた前記低周波帯域データをバッファメモリに格納する格納手段と、
    前記周波数変換手段で得られた高周波帯域データを量子化、符号化を行ない、得られた符号化データを符号列格納用メモリに格納する第1の符号化手段と、
    該第1の符号化手段によって生成された高周波帯域データの符号化データの総符号量CL_Hを検出する検出手段と、
    前記符号化対象画像データの全画素ブロックの高周波帯域データの前記第1の符号化手段による符号化処理を終えた場合、前記目標符号量Lから前記高周波帯域データの符号化データの総符号量CL_Hを減じた容量を低周波帯域目標符号量とし、当該低周波帯域目標符号量に基づいて前記低周波帯域データの符号化パラメータを決定する決定手段と、
    該決定手段で決定された符号化パラメータに従って、前記バッファメモリに格納された低周波帯域データを符号化し、得られた符号化データを前記符号列格納用メモリに格納する第2の符号化手段と、
    該第2の符号化手段による全画素ブロックの低周波帯域データの符号化処理を終えた場合、前記符号列格納用メモリに格納された低周波帯域データの符号化データ、及び、高周波帯域データの符号化データを、予め設定された形式のデータ構造にして出力する出力手段と
    を備えることを特徴とする画像符号化装置。
  2. 前記周波数変換手段は、
    着目画素ブロックの画像データを、複数のサブ画素ブロックの部分画像データに分割する分割手段と、
    該分割手段で得られた各サブ画素ブロックの部分画像データを1つのDC成分値と複数のAC成分値に周波数変換する第1の系列変換手段と、
    該第1の系列変換手段で得られた各サブ画素ブロックのDC成分値を、再度、1つのDC成分値と複数のAC成分値に周波数変換する第2の系列変換手段と、
    前記第1の系列変換手段で得られた各サブ画素ブロックのAC成分値を前記高周波帯域データとして出力し、前記第2の系列変換手段で得られた変換結果を前記低周波帯域データとして出力する手段と
    を備えることを特徴とする請求項1に記載の画像符号化装置。
  3. 前記第1の符号化手段は、
    着目画素ブロックの高周波帯域データを量子化する量子化手段と、
    前記着目画素ブロックよりも前の画素ブロックを符号化する際に決定された境界ビット位置情報に従い、前記着目画素ブロックの高周波帯域データを構成する各係数値を前記境界ビット位置情報で示される境界ビット位置より上位の上位ビット部と、前記境界ビット位置以下の下位ビット部とに分離する分離手段と、
    前記上位ビット部をランレングス符号化し、上位ビット符号化データとして生成する上位ビット部符号化手段と、
    前記下位ビット部を各ビットの位置に応じたビットプレーンのデータに変換し、下位ビット符号化データとして生成する下位ビット部符号化手段と、
    前記上位ビット部の分布に基づき、前記境界ビット位置を更新する更新手段と、
    前記上位ビット符号化データと前記下位ビット符号化データを前記第1の符号化手段の符号化データとして出力する手段と
    を備えることを特徴とする請求項1又は2に記載の画像符号化装置。
  4. 前記第1の符号化手段による前記符号化対象画像データの全画素ブロックの高周波帯域データの符号化が完了する以前に、前記検出手段が検出した前記高周波帯域データの総符号量CL_Hが予め設定された許容符号量に達した場合、
    高周波帯域データの総符号量CL_Hが予め設定された許容符号量よりも小さくなるまで、前記符号列格納用メモリに格納された高周波帯域データの符号化データのうち、前記下位ビット符号化データ、前記上位ビット符号化データの順に破棄させ、
    且つ、前記第1の符号化手段に対して、前記破棄したビット位置以下の符号化データの出力を禁止させる手段を更に備える
    ことを特徴とする請求項3に記載の画像符号化装置。
  5. 更に、前記第2の符号化手段による低周波帯域データの符号化データの総符号量CL_Lを検出する手段と、
    前記第2の符号化手段による前記符号化対象画像データの全画素ブロックの低周波帯域データの符号化が完了する以前に、検出された前記総符号量CL_Lが前記低周波帯域目標符号量に達した場合、
    前記符号列格納用メモリに格納された低周波帯域データの全符号化データを破棄させ、
    前記第2の符号化手段の符号化圧縮率を更に高めるため、符号化パラメータを更新するとと共に、
    前記第2の符号化手段に対して先頭の画素ブロックの低周波帯域データから再符号化を実行させる手段と
    を備えるとする請求項1乃至4のいずれか1項に記載の画像符号化装置。
  6. 更に、前記第2の符号化手段による低周波帯域データの符号化データの総符号量CL_Lを検出する手段と、
    符号量を調整する第1、第2の符号量制御手段のいずれか一方を選択する選択手段とを備え、
    前記第1の符号量制御手段は、
    前記第2の符号化手段による前記符号化対象画像データの全画素ブロックの低周波帯域データの符号化が完了する以前に、前記総符号量CL_Lが前記低周波帯域目標符号量に達した場合、
    前記符号列格納用メモリに格納された低周波帯域データの全符号化データを破棄させる手段と、
    前記第2の符号化手段の符号化圧縮率を更に高めるため、符号化パラメータを更新する手段と、
    前記第2の符号化手段に対して先頭の画素ブロックの低周波帯域データから再符号化を実行させる手段とを含み、
    前記第2の符号量制御手段は、
    前記第2の符号化手段による前記符号化対象画像データの全画素ブロックの低周波帯域データの符号化が完了する以前に、前記総符号量CL_Lが前記低周波帯域目標符号量に達した場合、画素ブロックの低周波帯域データの平均符号量から、符号化対象画像データの全画素ブロックの低周波帯域データの推定符号量PCL_Lを算出する算出手段と、
    該算出手段で算出された推定符号量PCL_L、前記高周波帯域データの総符号量CL_H、及び前記目標符号量との関係が、
    PCL_L+CL_H<前記目標符号量
    を満たすまで、予め設定された優先順位に従って、前記符号列格納用メモリに格納された前記高周波帯域データの符号化データ中の部分符号化データを削除する削除手段とを含む
    ことを特徴とする請求項1乃至4のいずれか1項に記載の画像符号化装置。
  7. 前記選択手段は、符号化対象画像データのサイズ、又は、符号化対象画像データが単数か複数かに応じて、前記第1、第2の符号量制御手段のいずれか一方を選択することを特徴とする請求項6に記載の画像符号化装置。
  8. 画像データを符号化し、目標符号量L以内の符号化データを生成する画像符号化装置の制御方法であって、
    符号化対象画像データから、複数画素で構成される画素ブロックの画像データを入力する入力工程と、
    入力した画素ブロックの画像データを周波数変換して、高周波帯域データと低周波帯域データを生成する周波数変換工程と、
    該周波数変換工程で得られた前記低周波帯域データをバッファメモリに格納する格納工程と、
    前記周波数変換工程で得られた高周波帯域データを量子化、符号化を行ない、得られた符号化データを符号列格納用メモリに格納する第1の符号化工程と、
    該第1の符号化工程によって生成された高周波帯域データの符号化データの総符号量CL_Hを検出する検出工程と、
    前記符号化対象画像データの全画素ブロックの高周波帯域データの前記第1の符号化工程による符号化処理を終えた場合、前記目標符号量Lから前記高周波帯域データの符号化データの総符号量CL_Hを減じた容量を低周波帯域目標符号量とし、当該低周波帯域目標符号量に基づいて前記低周波帯域データの符号化パラメータを決定する決定工程と、
    該決定工程で決定された符号化パラメータに従って、前記バッファメモリに格納された低周波帯域データを符号化し、得られた符号化データを前記符号列格納用メモリに格納する第2の符号化工程と、
    該第2の符号化工程による全画素ブロックの低周波帯域データの符号化処理を終えた場合、前記符号列格納用メモリに格納された低周波帯域データの符号化データ、及び、高周波帯域データの符号化データを、予め設定された形式のデータ構造にして出力する出力工程と
    を備えることを特徴とする画像符号化装置の制御方法。
  9. コンピュータに読込ませ実行させることで、前記コンピュータを請求項1乃至7のいずれか1項に記載の画像符号化装置として機能させることを特徴とするコンピュータプログラム。
  10. 請求項9に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
JP2008204775A 2008-08-07 2008-08-07 画像符号化装置及びその制御方法 Expired - Fee Related JP4979655B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008204775A JP4979655B2 (ja) 2008-08-07 2008-08-07 画像符号化装置及びその制御方法
US12/533,157 US8260072B2 (en) 2008-08-07 2009-07-31 Image encoding apparatus and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008204775A JP4979655B2 (ja) 2008-08-07 2008-08-07 画像符号化装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2010041624A true JP2010041624A (ja) 2010-02-18
JP4979655B2 JP4979655B2 (ja) 2012-07-18

Family

ID=41653040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008204775A Expired - Fee Related JP4979655B2 (ja) 2008-08-07 2008-08-07 画像符号化装置及びその制御方法

Country Status (2)

Country Link
US (1) US8260072B2 (ja)
JP (1) JP4979655B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013013085A (ja) * 2011-06-29 2013-01-17 Canon Inc 高ビット深度画像の圧縮
JP2015118324A (ja) * 2013-12-19 2015-06-25 株式会社アクセル 符号化装置
JP2017500830A (ja) * 2013-11-04 2017-01-05 マグナム セミコンダクター, インコーポレイテッド マルチパス適応量子化のための方法及び装置
US10845111B2 (en) 2012-12-13 2020-11-24 Whirlpool Corporation Layering of low thermal conductive material on metal tray

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4958831B2 (ja) * 2008-04-02 2012-06-20 キヤノン株式会社 画像符号化装置及びその制御方法
JP5153676B2 (ja) * 2009-02-10 2013-02-27 キヤノン株式会社 画像処理装置、画像処理方法、プログラムおよび記憶媒体
JP5199955B2 (ja) * 2009-06-16 2013-05-15 キヤノン株式会社 画像復号装置及びその制御方法
JP5199956B2 (ja) * 2009-06-16 2013-05-15 キヤノン株式会社 画像復号装置及びその制御方法
TWI462057B (zh) * 2009-12-01 2014-11-21 Mstar Semiconductor Inc 基於哈達瑪轉換之影像壓縮電路及方法
JP5520122B2 (ja) * 2010-04-14 2014-06-11 キヤノン株式会社 データ変換装置
KR101483179B1 (ko) * 2010-10-06 2015-01-19 에스케이 텔레콤주식회사 주파수 마스크 테이블을 이용한 주파수변환 블록 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
TWI502999B (zh) * 2012-12-07 2015-10-01 Acer Inc 影像處理方法及應用該方法之電子裝置
JP6390352B2 (ja) * 2014-10-31 2018-09-19 富士通株式会社 動き探索処理プログラム、動き探索処理方法および動き探索処理装置
EP3211887B1 (en) * 2014-11-13 2020-07-01 Samsung Electronics Co., Ltd. Method and device for generating metadata including frequency characteristic information of image
US9762912B2 (en) * 2015-01-16 2017-09-12 Microsoft Technology Licensing, Llc Gradual updating using transform coefficients for encoding and decoding
JP7249364B2 (ja) * 2018-06-28 2023-03-30 アップル インコーポレイテッド 低レイテンシ動画符号化及び送信のレート制御
US11748839B2 (en) * 2020-04-16 2023-09-05 Samsung Electronics Co., Ltd. Efficient fast random access enabled geometry attribute compression mechanism

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252560A (ja) * 1998-03-03 1999-09-17 Kdd Corp ビデオデータ分割装置
JP2004336254A (ja) * 2003-05-02 2004-11-25 Sony Corp 画像符号化装置及び方法

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3085465B2 (ja) * 1989-10-31 2000-09-11 オリンパス光学工業株式会社 画像データの符号化装置および符号化方法
JP2797159B2 (ja) * 1992-03-02 1998-09-17 カシオ計算機株式会社 画像データ圧縮装置及び画像データ圧縮方法
JP3069455B2 (ja) * 1992-12-22 2000-07-24 富士写真フイルム株式会社 画像データ圧縮伸張装置における量子化・逆量子化回路
KR960010196B1 (ko) * 1993-06-04 1996-07-26 배순훈 인간의 시각특성을 이용한 디씨(dc) 변환계수 양자화기
JPH08130649A (ja) 1994-11-01 1996-05-21 Canon Inc データ処理装置
US6031938A (en) 1995-04-26 2000-02-29 Canon Kabushiki Kaisha Image encoding apparatus with selective Markov and predictive coding
US6101282A (en) 1995-06-22 2000-08-08 Canon Kabushiki Kaisha Apparatus and method for image data encoding
US6028963A (en) 1996-06-17 2000-02-22 Canon Kabushiki Kaisha Image encoding based on judgement on prediction error
JPH10336682A (ja) 1997-04-02 1998-12-18 Canon Inc 符号化装置及び方法及び方法を記憶した記憶媒体
JP2000013797A (ja) 1998-06-25 2000-01-14 Asahi Optical Co Ltd 画像圧縮装置および画像伸張装置
US6396955B1 (en) 1998-06-25 2002-05-28 Asahi Kogaku Kogyo Kabushiki Kaisha Image compression and expansion device
JP2000069292A (ja) 1998-08-24 2000-03-03 Canon Inc 画像処理装置及び方法及び記憶媒体
JP3839974B2 (ja) 1998-10-06 2006-11-01 キヤノン株式会社 符号化装置
JP2000115782A (ja) 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法及び記憶媒体
JP2000115770A (ja) 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法
JP2000115783A (ja) 1998-10-06 2000-04-21 Canon Inc 復号化装置及び方法
US6665444B1 (en) 1999-04-28 2003-12-16 Canon Kabushiki Kaisha Image processing apparatus and method, and storage medium
JP4365957B2 (ja) 1999-11-05 2009-11-18 キヤノン株式会社 画像処理方法及びその装置及び記憶媒体
JP4367880B2 (ja) 1999-12-09 2009-11-18 キヤノン株式会社 画像処理装置及びその方法並びに記憶媒体
JP2002281444A (ja) 2000-03-03 2002-09-27 Canon Inc 画像処理方法及び装置及び記憶媒体
JP4208378B2 (ja) 2000-03-10 2009-01-14 キヤノン株式会社 画像処理装置及び方法及び記録媒体
JP4480119B2 (ja) 2000-03-30 2010-06-16 キヤノン株式会社 画像処理装置及び画像処理方法
US6847735B2 (en) 2000-06-07 2005-01-25 Canon Kabushiki Kaisha Image processing system, image processing apparatus, image input apparatus, image output apparatus and method, and storage medium
JP4612782B2 (ja) 2000-09-27 2011-01-12 キヤノン株式会社 画像処理装置、及びその方法、並びにプログラム、記憶媒体
US7013050B2 (en) 2001-06-26 2006-03-14 Canon Kabushiki Kaisha Image encoding apparatus and method, program code, and storage medium
JP3984886B2 (ja) 2001-09-28 2007-10-03 キヤノン株式会社 データ変換装置、データ変換方法、コンピュータプログラム、記憶媒体
EP1355484B1 (en) 2002-04-17 2017-03-01 Canon Kabushiki Kaisha Image compression method and apparatus, and image coding method and apparatus
US7302105B2 (en) 2002-07-22 2007-11-27 Canon Kabushiki Kaisha Moving image coding apparatus, moving image decoding apparatus, and methods therefor
DE10254872A1 (de) * 2002-11-25 2004-06-03 Symrise Gmbh & Co. Kg Anthranilsäureamide und deren Derivate als kosmetische und pharmazeutische Wirkstoffe
US7903734B2 (en) 2003-04-24 2011-03-08 Canon Kabushiki Kaisha Moving image decoding apparatus, moving image decoding method, image decoding method, and image decoding apparatus
US7574063B2 (en) 2003-07-23 2009-08-11 Canon Kabushiki Kaisha Image coding method and apparatus
JP4702928B2 (ja) 2004-03-12 2011-06-15 キヤノン株式会社 動画像符号化装置及び復号装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP4418762B2 (ja) 2004-05-07 2010-02-24 キヤノン株式会社 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US20080089413A1 (en) 2004-06-28 2008-04-17 Canon Kabushiki Kaisha Moving Image Encoding Apparatus And Moving Image Encoding Method
US7529417B2 (en) 2004-07-09 2009-05-05 Canon Kabushiki Kaisha Apparatus, method and storage medium for image encoding/decoding using shape-based coefficient interpolation
JP4533043B2 (ja) 2004-08-25 2010-08-25 キヤノン株式会社 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US7650039B2 (en) 2005-03-03 2010-01-19 Canon Kabushiki Kaisha Image encoding apparatus, image decoding apparatus, control method therefor, computer program, and computer-readable storage medium
JP4587175B2 (ja) 2005-05-19 2010-11-24 キヤノン株式会社 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP4732203B2 (ja) 2006-03-17 2011-07-27 キヤノン株式会社 画像符号化装置及び復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
EP1978749B1 (en) 2007-04-06 2017-08-30 Canon Kabushiki Kaisha Compression of multidimensional look-up tables for colour space conversion
JP4958832B2 (ja) 2008-04-02 2012-06-20 キヤノン株式会社 画像符号化装置及びその制御方法
JP4958831B2 (ja) 2008-04-02 2012-06-20 キヤノン株式会社 画像符号化装置及びその制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252560A (ja) * 1998-03-03 1999-09-17 Kdd Corp ビデオデータ分割装置
JP2004336254A (ja) * 2003-05-02 2004-11-25 Sony Corp 画像符号化装置及び方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013013085A (ja) * 2011-06-29 2013-01-17 Canon Inc 高ビット深度画像の圧縮
US10845111B2 (en) 2012-12-13 2020-11-24 Whirlpool Corporation Layering of low thermal conductive material on metal tray
US11486622B2 (en) 2012-12-13 2022-11-01 Whirlpool Corporation Layering of low thermal conductive material on metal tray
JP2017500830A (ja) * 2013-11-04 2017-01-05 マグナム セミコンダクター, インコーポレイテッド マルチパス適応量子化のための方法及び装置
JP2015118324A (ja) * 2013-12-19 2015-06-25 株式会社アクセル 符号化装置

Also Published As

Publication number Publication date
US8260072B2 (en) 2012-09-04
JP4979655B2 (ja) 2012-07-18
US20100034478A1 (en) 2010-02-11

Similar Documents

Publication Publication Date Title
JP4979655B2 (ja) 画像符号化装置及びその制御方法
JP3356663B2 (ja) 画像符号化装置、画像符号化方法および画像符号化プログラムを記録した記録媒体
JP4847398B2 (ja) 画像処理装置およびその方法
US8452112B2 (en) Image encoding apparatus and method of controlling the same
JP2005348390A (ja) 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2007182060A (ja) 画像処理装置及びその制御方法
CA2674310A1 (en) System and method for reducing artifacts in images
US8041135B2 (en) Image encoding apparatus and control method thereof
US20090252232A1 (en) Image encoding apparatus and control method thereof
JP2005303979A (ja) 画像処理装置、画像処理方法、およびその方法をコンピュータに実行させるプログラム
JP2006180456A (ja) 画像圧縮装置と画像復号装置と画像変換装置と画像処理方法
US8218648B2 (en) Image encoding apparatus and control method thereof
US8396308B2 (en) Image coding based on interpolation information
JP2008042683A (ja) 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US11803985B2 (en) Information processing apparatus, information processing method, and recording medium
US8463057B2 (en) Image encoding apparatus and control method therefor
JP2016092589A (ja) 符号化装置及びその制御方法
JP5086777B2 (ja) 画像符号化装置及びその制御方法、コンピュータプログラム並びにコンピュータ可読記憶媒体
JP2009260747A (ja) 画像符号化装置及びその制御方法
JP2008042681A (ja) 画像処理方法及び装置、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2002051221A (ja) 画像符号化装置、画像復号化装置、システム、及びその方法並びに記憶媒体
JP2020092327A (ja) 画像符号化装置、画像符号化方法、およびプログラム
JP4944833B2 (ja) 画像符号化装置及びその制御方法
JP5321364B2 (ja) 画像処理装置、画像処理方法、プログラム
JP4262144B2 (ja) 画像符号化装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120314

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: 20120319

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: 20120417

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4979655

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees