(57)【要約】【課題】従来の画像符号化装置に比べ、より小さなバッファ容量で２値データを算術符号化する画像符号化装置を提供すること。【解決手段】画像データを符号化する画像符号化部１０と、符号化データを２値化する２値化部３１と、中間バッファ１２と、中間バッファ１２のデータ量を計測する蓄積量計測部２２と、所定の単位ごとに、計測されたデータ量と閾値とを比較するＩ＿ＰＣＭ判定部２１と、閾値を越えない場合、次の２値データを中間バッファ１２に蓄積させ、閾値を越える場合、次のＩ＿ＰＣＭデータを中間バッファ１２に蓄積させるバッファ入力選択部１１と、中間バッファ１２に蓄積された２値データを算術符号化する算術符号化部３２と、算術符号化部３２により２値データが算術符号化された場合、算術符号化データを出力し、Ｉ＿ＰＣＭデータが中間バッファ１２に蓄積された場合、Ｉ＿ＰＣＭデータを出力する出力選択部１３とを備える。【選択図】図１
2008022383.tif 000002
【特許請求の範囲】
【請求項１】
画像データを所定の単位ごとに順次符号化する画像符号化手段と、
前記画像符号化手段により得られる符号化データが入力されると、前記符号化データを２値化する２値化手段と、
前記画像データに対応する前記所定の単位ごとのＩ＿ＰＣＭデータまたは前記２値化手段により得られる２値データを蓄積する蓄積手段と、
前記蓄積手段に蓄積されているデータ量を計測する計測手段と、
前記所定の単位ごとに、前記計測手段により計測されたデータ量と閾値とを比較する比較手段と、
前記比較手段による比較の結果、（ａ）前記データ量が前記閾値を越えない場合、次の符号化データを前記２値化手段に入力することで得られる２値データを前記蓄積手段に蓄積させ、（ｂ）前記データ量が前記閾値を越える場合、次のＩ＿ＰＣＭデータを前記蓄積手段に蓄積させる蓄積選択手段と、
前記蓄積手段に蓄積された前記２値データを算術符号化する算術符号化手段と、
（ｃ）前記算術符号化手段により前記２値データが算術符号化された場合、前記算術符号化手段により得られる算術符号化データを出力し、（ｄ）前記Ｉ＿ＰＣＭデータが前記蓄積手段に蓄積された場合、前記蓄積手段に蓄積された前記Ｉ＿ＰＣＭデータを出力する出力手段と
を備える画像符号化装置。
【請求項２】
前記比較手段は、比較の結果を、前記出力手段に通知し、
前記出力手段は、通知された前記比較の結果、（ｅ）前記データ量が前記閾値を越えない場合、前記算術符号化手段により得られる算術符号化データを出力し、（ｆ）前記データ量が前記閾値を越える場合、前記蓄積手段に蓄積されている前記Ｉ＿ＰＣＭデータを出力する
請求項１記載の画像符号化装置。
【請求項３】
さらに、
前記画像符号化手段により得られる符号化データが２値化された場合の２値データの量の予測値である予測量を順次求める予測手段を備え、
前記比較手段は、前記計測手段により計測されたデータ量に、前記予測手段により求められた前記予測量を加えた上で、前記閾値と比較し、さらに、前記予測量と、前記所定の単位に対応する処理期間内に前記算術符号化手段が算術符号化可能な量である単位処理量とを比較し、
前記蓄積選択手段は、前記比較手段による比較の結果、（ａ）前記予測量が加えられた前記データ量が前記閾値を越えない場合、または、前記予測量が前記単位処理量を越えない場合、次の符号化データを前記２値化手段に入力することで得られる２値データを前記蓄積手段に蓄積させ、（ｂ）前記予測量が加えられた前記データ量が前記閾値を越え、かつ、前記予測量が前記単位処理量を越える場合、次のＩ＿ＰＣＭデータを前記蓄積手段に蓄積させる
請求項１記載の画像符号化装置。
【請求項４】
さらに、
前記閾値を記憶する閾値記憶手段と、
前記出力手段が出力するデータに要求されるビットレートを示す情報を受け付け、前記ビットレートを示す情報に応じて前記閾値記憶手段に記憶されている前記閾値を変更する受付手段とを備え、
前記ビットレートを示す情報は、第１のビットレートを示す第１情報、または、前記第１のビットレートより高いビットレートである第２のビットレートを示す第２情報であり、
前記画像符号化手段は、前記受付手段が、前記第１情報を受け付けた場合、前記第２情報を受け付けた場合よりも高い圧縮率で前記画像データを符号化し、
前記受付手段は、前記第１情報を受け付けた場合、前記閾値を第１の値に変更し、前記第２情報を受け付けた場合、前記閾値を、前記第１の値より小さな第２の値に変更する
請求項１記載の画像符号化装置。
【請求項５】
さらに、
前記閾値を記憶する閾値記憶手段と、
前記算術符号化手段が行う算術符号化の処理能力を示す能力情報を取得し、前記能力情報に応じて前記閾値記憶手段に記憶されている前記閾値を変更する能力取得手段を備え、
前記能力情報は、第１の処理能力を示す第１情報、または、前記第１の処理能力より高い第２の処理能力を示す第２情報であり、
前記能力取得手段は、前記第１情報を受け付けた場合、前記閾値を第１の値に変更し、前記第２情報を受け付けた場合、前記閾値を、前記第１の値より大きな第２の値に変更する
請求項１記載の画像符号化装置。
【請求項６】
さらに、
前記閾値を記憶する閾値記憶手段と、
前記２値化手段により得られる２値データの量を順次取得し、その推移から、後に得られる２値データの量が所定の量を越えるか否かを予測する推移予測手段と、
（ｅ）前記推移予測手段により、前記２値データの量が前記所定の量を越えると予測された場合、前記閾値を第１の値に変更し、（ｆ）前記推移予測手段により、前記２値データの量が前記所定の量を越えないと予測された場合、前記閾値を、前記第１の値より大きな第２の値に変更する変更手段と
を備える請求項１記載の画像符号化装置。
【請求項７】
前記計測手段は、前記蓄積手段への入力データ量と前記蓄積手段からの出力データ量とを計測し、計測した前記入力データ量と前記出力データ量との差を算出することで、前記蓄積手段に蓄積されているデータ量を計測する
請求項１記載の画像符号化装置。
【請求項８】
前記算術符号化手段は、前記蓄積手段に蓄積されている前記所定の単位のデータを読み出し、読み出したデータにＩ＿ＰＣＭデータであることを示す制御情報が付加されている場合、前記所定の単位のデータがＩ＿ＰＣＭデータであることを前記出力手段に通知し、
前記出力手段は、前記所定の単位のデータが前記Ｉ＿ＰＣＭデータであることを通知された場合、前記蓄積手段に蓄積されている前記Ｉ＿ＰＣＭデータを出力する
請求項１記載の画像符号化装置。
【請求項９】
前記制御情報は、前記所定の単位のデータがＩ＿ＰＣＭデータであることを示す２値データであり、
前記算術符号化手段は、前記制御情報を算術符号化して前記出力手段に出力した場合、前記所定の単位のデータがＩ＿ＰＣＭデータであることを前記出力手段に通知し、
前記出力手段は、前記所定の単位のデータが前記Ｉ＿ＰＣＭデータであることを通知された場合、前記蓄積手段に蓄積されている前記Ｉ＿ＰＣＭデータを、前記算術符号化手段から受け取った算術符号化された前記制御情報に続けて出力する
請求項８記載の画像符号化装置。
【請求項１０】
画像データを所定の単位ごとに順次符号化する画像符号化ステップと、
データを蓄積する蓄積手段に蓄積されているデータ量を計測する計測ステップと、
前記所定の単位ごとに、前記計測ステップにおいて計測されたデータ量と閾値とを比較する比較ステップと、
前記比較ステップにおける比較の結果、（ａ）前記データ量が前記閾値を越えない場合、次の符号化データを２値化し、その２値化によって得られる２値データを前記蓄積手段に蓄積させ、（ｂ）前記データ量が前記閾値を越える場合、次の、前記画像データに対応する前記所定の単位ごとのＩ＿ＰＣＭデータを前記蓄積手段に蓄積させる蓄積選択ステップと、
前記蓄積手段に蓄積された前記２値データを算術符号化する算術符号化ステップと、
（ｃ）前記算術符号化ステップにおいて前記２値データが算術符号化された場合、前記算術符号化ステップにおいて得られる算術符号化データを出力し、（ｄ）前記Ｉ＿ＰＣＭデータが前記蓄積手段に蓄積された場合、前記蓄積手段に蓄積された前記Ｉ＿ＰＣＭデータを出力する出力ステップと
を含む画像符号化方法。
【請求項１１】
画像データを所定の単位ごとに順次符号化する画像符号化ステップと、
データを蓄積する蓄積手段に蓄積されているデータ量を計測する計測ステップと、
前記所定の単位ごとに、前記計測ステップにおいて計測されたデータ量と閾値とを比較する比較ステップと、
前記比較ステップにおける比較の結果、（ａ）前記データ量が前記閾値を越えない場合、次の符号化データを２値化し、その２値化によって得られる２値データを前記蓄積手段に蓄積させ、（ｂ）前記データ量が前記閾値を越える場合、次の、前記画像データに対応する前記所定の単位ごとのＩ＿ＰＣＭデータを前記蓄積手段に蓄積させる蓄積選択ステップと、
前記蓄積手段に蓄積された前記２値データを算術符号化する算術符号化ステップと、
（ｃ）前記算術符号化ステップにおいて前記２値データが算術符号化された場合、前記算術符号化ステップにおいて得られる算術符号化データを出力し、（ｄ）前記Ｉ＿ＰＣＭデータが前記蓄積手段に蓄積された場合、前記蓄積手段に蓄積された前記Ｉ＿ＰＣＭデータを出力する出力ステップと
をコンピュータに実行させるためのプログラム。
【請求項１２】
画像データを所定の単位ごとに順次符号化する画像符号化手段と、
前記画像符号化手段により得られる符号化データが入力されると、前記符号化データを２値化する２値化手段と、
前記画像データに対応する前記所定の単位ごとのＩ＿ＰＣＭデータまたは前記２値化手段により得られる２値データを蓄積する蓄積手段と、
前記蓄積手段に蓄積されているデータ量を計測する計測手段と、
前記所定の単位ごとに、前記計測手段により計測されたデータ量と閾値とを比較する比較手段と、
前記比較手段による比較の結果、（ａ）前記データ量が前記閾値を越えない場合、次の符号化データを前記２値化手段に入力することで得られる２値データを前記蓄積手段に蓄積させ、（ｂ）前記データ量が前記閾値を越える場合、次のＩ＿ＰＣＭデータを前記蓄積手段に蓄積させる蓄積選択手段と、
前記蓄積手段に蓄積された前記２値データを算術符号化する算術符号化手段と、
（ｃ）前記算術符号化手段により前記２値データが算術符号化された場合、前記算術符号化手段により得られる算術符号化データを出力し、（ｄ）前記Ｉ＿ＰＣＭデータが前記蓄積手段に蓄積された場合、前記蓄積手段に蓄積された前記Ｉ＿ＰＣＭデータを出力する出力手段と
を備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像に関するデータを符号化する画像符号化装置に関し、特に、Ｈ．２６４／ＡＶＣ規格に対応した画像符号化装置に関する。
【背景技術】
【０００２】
近年、デジタル映像技術の発展とともに、扱われる映像データ、特に動画像のデータ量は増加の一途を辿っている。例えば、最近実用化されているＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ）映像では、従来のＳＤ（Ｓｔａｎｄａｒｄ  Ｄｅｆｉｎｉｔｉｏｎ）映像と比べて、約６倍のデータ量となっている。
【０００３】
一方、コンピュータやその他機器の情報処理能力の向上に伴い、複雑な演算を用いた動画圧縮が可能となっており、映像データの圧縮率は大幅に高められてきている。近年規格化されたＨ．２６４／ＡＶＣは、ＭＰＥＧ‐２の２倍前後の圧縮率を実現する規格である。Ｈ．２６４／ＡＶＣでは、多くの圧縮化技術を組み合わせることで高い圧縮率を実現している。このため、従来の圧縮方式に比べ演算量も大幅に増加している。
【０００４】
Ｈ．２６４／ＡＶＣで採用されている圧縮化技術の一つにエントロピー符号化（可変長符号化）がある。Ｈ．２６４／ＡＶＣではエントロピー符号化の方式として、ＣＡＶＬＣ（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）とＣＡＢＡＣ（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）という２つの方式が用意されている。
【０００５】
ＣＡＢＡＣでの符号化は主に２つの処理に分けられる。１つ目は符号化すべき多値データを２値データに変換する２値化と呼ばれる処理である。２つ目は２値化によって得られた２値データの発生確率を計算および更新し、算術符号化を行う処理である。
【０００６】
２値化はシンタックス要素単位で行われ、不定期に不定量のビットが出力される。一方、算術符号化は、ビット毎に逐次更新される２値データの出現確率を元に符号化を行うため、１クロックあたり多量のビットを算術符号化することは実装上困難である。このため、２値化部と算術符号化部の間に一時的に２値データを保持するバッファが必要となる。
【０００７】
図８は、従来の画像符号化装置における２値化部、バッファ、および算術符号化部における処理量または蓄積量の推移の一例を示す図である。
【０００８】
図８の各グラフにおいて、縦軸は各処理部の処理量または蓄積量を表しており、１目盛りが１ビットに対応する。また、横軸は時刻を表しており、１目盛りが１クロックに対応する。
【０００９】
また、図中の算術符号化部５３は、１ビット／１クロックの処理能力を有していると想定する。
【００１０】
例えば、ｔ0において２値化部５１から出力された２ビットの２値データは、ｔ1においてバッファ５２に蓄積される。また、バッファ５２に蓄積された２ビットの２値データのうち１ビットは、ｔ2において算術符号化部５３により算術符号化処理される。
【００１１】
その結果、ｔ2におけるバッファ５２の蓄積量は１ビットとなる。このようなデータの流れが間欠的に続けば、バッファ５２の蓄積量が大幅に増加することはない。
【００１２】
しかし、例えば、図８に示すように、ｔ7およびｔ9において２値化部５１から５ビットの２値データが出力された場合を想定する。この場合であっても、算術符号化部５３が処理する量は、１ビット／１クロックである。
【００１３】
つまり、２値化部５１から、ほぼ連続して大量の２値データが出力されたような場合、２値化部５１からの出力に対して算術符号化部５３で処理遅延が生じ、バッファ５２に２値データが蓄積されていくことになる。このため、ＣＡＢＡＣでは大容量のバッファが必要である。
【００１４】
さらに、Ｈ．２６４／ＡＶＣにおいては、算術符号化後の最大符号量が規定されており、例えば、マクロブロックあたりの最大符号量は、４−２−０フォーマット、ｂｉｔ＿ｄｅｐｔｈ８ビットの場合で３２００ビットに制限されている。また、マクロブロックを算術符号化した結果、符合量が３２００ビットを越える場合は、そのマクロブロックの符号化の条件を変更して再度符号化を行なわなければならない。このことによっても、算術符号化部において処理遅延が発生することとなる。
【００１５】
このように、Ｈ．２６４／ＡＶＣ規格に対応した画像符号化装置において、算術符号化部の単位時間当たりの処理能力は一定である。そのため、一時に大量の２値データが発生したような場合、算術符号化に伴う処理遅延が装置全体における処理の流れに影響を与えることになる。
【００１６】
そこで、画像符号化装置において、算術符号化に伴う処理遅延の影響を軽減するための技術が開示されている（例えば、特許文献１参照）。
【００１７】
この従来の画像符号化装置によれば、算術符号化部に入力される２値データ量または算術符号化部から出力されるデータ量を監視する。さらに、このデータ量が、ピクチャ、スライス、またはマクロブロックといった所定の単位において一定量を越える場合、算術符号化の対象となるデータを再度符号化するのではなく、非圧縮のデータであるＩ＿ＰＣＭデータをビットストリーム（以下、「ストリーム」ともいう。）として出力する。
【００１８】
図９は、従来の画像符号化装置の機能的な構成を示す機能ブロック図である。
【００１９】
図９に示す画像符号化装置５００は、入力された画像データを符号化し、ビットストリームとして出力する従来の画像符号化装置の一例である。画像符号化装置５００の動作の概要を以下に説明する。
【００２０】
なお画像データは、動画像を構成するマクロブロックの画素値に関するデータの他に、マクロブロックタイプ等の制御データやその他の属性データなど、動画像に関する種々のデータを含んでいる。
【００２１】
符号化対象の画像データは、まず動き予測部１０２と面内予測部１０３に入力される。また、Ｉ＿ＰＣＭデータバッファ１１４にも入力され、Ｉ＿ＰＣＭデータとして格納される。
【００２２】
動き予測部１０２は、符号化対象のブロックを含むピクチャとは異なるピクチャから、その符号化対象ブロックと相関の高いブロックを検出する。さらに、符号化対象ブロックと検出されたブロックとの差分画像を求め、その差分画像と動きベクトルを出力する。
【００２３】
面内予測部１０３は、画面内の符号化対象ブロックの画像を、隣接するブロックの画像を用いて予測する。さらに、符号化対象ブロックの画像と予測された画像の差分画像を求め、その差分画像と予測の方式を表すデータを出力する。
【００２４】
入力選択部１０４は、動き予測部１０２と面内予測部１０３から出力されたデータのいずれかを、それぞれのデータ量等に基づいて選択し、直交変換部１０５に入力する。
【００２５】
直交変換部１０５が行う直交変換により得られる直交変換係数は量子化部１０６に入力され、量子化部１０６により量子化される。
【００２６】
量子化された直交変換係数である量子化後係数は、２値化部１３１により２値データ（図では「ｂｉｎ」と表示されている。）に変換され、中間バッファ１１２に入力される。また、Ｉ＿ＰＣＭデータも、Ｉ＿ＰＣＭデータバッファ１１４から出力され中間バッファ１１２に入力される。
【００２７】
その後、中間バッファ１１２から出力される２値データは算術符号化部１３２によって算術符号化される。この算術符号化の際、２値データにおける“１”または“０”の出現確率等を示す変数が記録されている変数テーブルが参照され、符号化の結果に応じて更新される。変数テーブルは、例えば、中間バッファ１１２に保持されており、図９では「テーブルＡ」と表示されている。
【００２８】
また、算術符号化により得られたデータ（以下、「算術符号化データ」という。）は出力バッファ１３３に保持される。
【００２９】
ここで、データ量計測部１２２は、算術符号化部１３２への入力データ量を計測する。Ｉ＿ＰＣＭ判定部１２１は、所定の単位ごとにビットストリームとして出力するデータを、出力バッファ１３３に保持されている算術符号化データとするか、中間バッファ１１２に保持されているＩ＿ＰＣＭデータとするかを、データ量計測部１２２により計測された入力データ量を元に判定する。具体的には、計測された入力データ量が所定の閾値を超えた場合、ビットストリームとして出力するデータをＩ＿ＰＣＭデータに切り換えると判定する。
【００３０】
なお、ここではＩ＿ＰＣＭ判定に算術符号化部１３２への入力データ量を用いたが、算術符号化部１３２からの出力データ量を用いてもよい。
【００３１】
出力選択部１１３は、Ｉ＿ＰＣＭ判定部１２１の判定に従い、出力バッファ１３３に保持されている算術符号化データ、および中間バッファ１１２に保持されているＩ＿ＰＣＭデータのいずれか一方を出力する。
【００３２】
また、Ｉ＿ＰＣＭデータを出力する場合、上記のテーブルＡは、出力されない算術符号化データが得られた際に更新されたことになる。従って、テーブルＡをその更新の前の状態に戻す必要がある。
【００３３】
そのため、その更新が行われる前の状態のテーブルＡを、例えば、中間バッファ１１２に保持しておく。この更新前の状態のテーブルＡは図９では「テーブルＢ」と表示されている。算術符号化部１３２は、算術符号化データが出力されなかった場合、テーブルＡをテーブルＢの内容に書き換えることでテーブルＡを更新前の状態に戻す。
【００３４】
また、Ｉ＿ＰＣＭデータは算術符号化部を経由せず出力されるため、１クロックあたり大量のデータを出力できる。このため、２値化部１３１において大量の２値データが生成された場合、上述のように、出力をＩ＿ＰＣＭデータに切り替えることにより、算術符号化に伴う処理遅延の影響を軽減できる。
【特許文献１】特開２００４−１３５２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００３５】
しかしながら、上記従来の技術の場合、以下のような問題点がある。
【００３６】
（１）２値データおよびＩ＿ＰＣＭデータともに、生成されたものがすべて中間バッファ１１２に流入することになる。すなわち、実際には出力ストリームに使用されない２値データおよびＩ＿ＰＣＭデータも中間バッファ１１２に蓄積されることになる。
【００３７】
そのため、上記従来の画像符号化装置においては、図９に示したような、２値データのみを一時的に蓄積するバッファよりも容量の大きなバッファを用意する必要がある。
【００３８】
（２）出力されるのが、算術符号化データであるのかＩ＿ＰＣＭデータであるのかが最終的に選択されるまで、算術符号化部１３２から出力された算術符号化データも出力バッファ１３３に保持しなければならない。
【００３９】
（３）出力ストリームとしてＩ＿ＰＣＭデータが選択された場合、上述のように、更新された変数テーブルを更新前の状態に戻す必要がある。そのため、算術符号化の際に参照し更新する変数テーブルに加え、更新前の変数テーブルも常に中間バッファ１１２等に保持しなければならない。
【００４０】
なお、２値データ、Ｉ＿ＰＣＭデータ、および２種類の変数テーブルのそれぞれを、専用のバッファに蓄積することで、各バッファの容量を減らすことは可能である。しかし、このようにした場合であっても、画像符号化装置全体において必要なバッファ容量は変わらない。
【００４１】
このように、上記従来の技術を用いた場合、２値データの再符号化に伴う遅延時間は削減されるものの、依然として大きなバッファ容量が必要となるという問題がある。
【００４２】
本発明は、前記従来の課題を解決するもので、装置全体として、より小さなバッファ容量で２値データを算術符号化する画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００４３】
上記従来の課題を解決するために、本発明の画像符号化装置は、画像データを所定の単位ごとに順次符号化する画像符号化手段と、前記画像符号化手段により得られる符号化データが入力されると、前記符号化データを２値化する２値化手段と、前記画像データに対応する前記所定の単位ごとのＩ＿ＰＣＭデータまたは前記２値化手段により得られる２値データを蓄積する蓄積手段と、前記蓄積手段に蓄積されているデータ量を計測する計測手段と、前記所定の単位ごとに、前記計測手段により計測されたデータ量と閾値とを比較する比較手段と、前記比較手段による比較の結果、（ａ）前記データ量が前記閾値を越えない場合、次の符号化データを前記２値化手段に入力することで得られる２値データを前記蓄積手段に蓄積させ、（ｂ）前記データ量が前記閾値を越える場合、次のＩ＿ＰＣＭデータを前記蓄積手段に蓄積させる蓄積選択手段と、前記蓄積手段に蓄積された前記２値データを算術符号化する算術符号化手段と、（ｃ）前記算術符号化手段により前記２値データが算術符号化された場合、前記算術符号化手段により得られる算術符号化データを出力し、（ｄ）前記Ｉ＿ＰＣＭデータが前記蓄積手段に蓄積された場合、前記蓄積手段に蓄積された前記Ｉ＿ＰＣＭデータを出力する出力手段とを備える。
【００４４】
この構成により、本発明の画像符号化装置は所定の単位の符号化データが２値化される前に、蓄積手段に蓄積するデータをＩ＿ＰＣＭデータとするか否かを判定できる。また、最終的な出力に使用されるデータのみを蓄積手段に蓄積する。
【００４５】
従って、従来の技術の３つの主な問題点はそれぞれ以下のように解決される。
【００４６】
（１）出力に使用されない２値データおよびＩ＿ＰＣＭデータを蓄積手段の一例であるバッファに保持する必要がない。
【００４７】
（２）符号化データが２値化される前に、上記判定が行われる。そのため、従来の画像符号化装置における出力バッファのように、ある算術符号化データが出力されるか否かが決定されるまでその算術符号化データを保持するためのバッファを備える必要がない。
【００４８】
（３）出力に使用されない２値データを算術符号化することがない。つまり、変数テーブルに不要な更新を行うことがないため、更新前の変数テーブルをバッファに保持しておく必要がない。
【００４９】
このように、本発明の画像符号化装置においては、従来の画像符号化装置に比べ、画像符号化装置全体としてバッファに保持されるデータ量が削減される。つまり、従来の画像符号化装置に比べ、より小さなバッファ容量で２値データを算術符号化することができる。
【００５０】
なお、本発明は、以上のような画像符号化装置として実現することができるだけでなく、画像符号化方法として実現したり、その方法をコンピュータに実行させるプログラムとして実現したり、そのプログラムが記録された記録媒体として実現することもできる。そして、そのプログラムをインターネット等の伝送媒体又はＤＶＤ等の記録媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【００５１】
以上のように本発明は、従来の画像符号化装置に比べ、より小さなバッファ容量で２値データを算術符号化する画像符号化装置を提供することができる。
【発明を実施するための最良の形態】
【００５２】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００５３】
（実施の形態１）
図１は、本発明の実施の形態１の画像符号化装置の機能的な構成を示す機能ブロック図である。
【００５４】
本実施の形態の画像符号化装置１００は、画像符号化部１０と、バッファ入力選択部１１と、Ｉ＿ＰＣＭデータバッファ１４と、中間バッファ１２と、出力選択部１３と、Ｉ＿ＰＣＭ判定部２１と、蓄積量計測部２２と、閾値記憶部２３と、２値化部３１と、算術符号化部３２と、Ｉ＿ＰＣＭデータバッファ１４とを備える。
【００５５】
画像符号化部１０は、入力される画像データを所定の単位ごとに符号化する処理部であり、動き予測部２と、面内予測部３、入力選択部４、直交変換部５、量子化部６とを有している。
【００５６】
なお、所定の単位とは、動画像を構成する画素の集合の単位である、ピクチャ、スライス、またはマクロブロック等である。以下、この所定の単位を「符号化単位」ともいう。
【００５７】
画像符号化部１０が有するこれら構成部の機能および動作は、図９を用いて説明した従来の画像符号化装置における、動き予測部１０２、面内予測部１０３、入力選択部１０４、および量子化部１０６の機能および動作とそれぞれ同じである。
【００５８】
なお、逆量子化および逆直交変換を行う構成要素等、画像符号化装置が本来有するその他の構成要素については、本発明の効果とは直接関係しないことから、それらの図示および説明は省略する。
【００５９】
中間バッファ１２は、本発明の画像符号化装置における蓄積手段の一例であり、画像符号化装置１００に入力される画像データに対応する符号化単位ごとのＩ＿ＰＣＭデータまたは２値化部３１により得られる２値データを蓄積する構成部である。
【００６０】
また、中間バッファ１２にはさらに、算術符号化部３２から参照および更新される変数テーブルが保持されている。
【００６１】
蓄積量計測部２２は、本発明の画像符号化装置における計測手段の一例であり、中間バッファ１２に蓄積されているデータ量を計測する処理部である。
【００６２】
Ｉ＿ＰＣＭ判定部２１は、本発明の画像符号化装置における比較手段の一例であり、符号化単位ごとに、蓄積量計測部２２により計測されたデータ量と閾値とを比較する処理部である。この閾値は閾値記憶部２３に記憶されている。
【００６３】
また、Ｉ＿ＰＣＭ判定部２１は、上記比較の結果に応じ、バッファ入力選択部１１に、２値データおよびＩ＿ＰＣＭデータのいずれか一方を中間バッファ１２に蓄積させる指示を行う。
【００６４】
言い換えると、Ｉ＿ＰＣＭ判定部２１は、蓄積量計測部２２により計測されたデータ量に基づき、中間バッファ１２データに２値データを蓄積するかＩ＿ＰＣＭデータを蓄積するかの判定を行う。この判定を、以下、「Ｉ＿ＰＣＭ判定」ともいう。
【００６５】
バッファ入力選択部１１は、本発明の画像符号化装置における蓄積選択手段の一例であり、Ｉ＿ＰＣＭ判定部２１からの指示に従い、２値データおよびＩ＿ＰＣＭデータのいずれか一方を中間バッファ１２に蓄積させる処理部である。
【００６６】
具体的には、バッファ入力選択部１１は、Ｉ＿ＰＣＭ判定部２１による比較の結果、計測されたデータ量が閾値を越えない場合、Ｉ＿ＰＣＭ判定部２１からの指示に従い、画像符号化部１０により得られる次の符号化データを前記２値化手段に入力することで得られる２値データを中間バッファ１２に蓄積させる。
【００６７】
また、Ｉ＿ＰＣＭ判定部２１による比較の結果、計測されたデータ量が閾値を越える場合、Ｉ＿ＰＣＭ判定部２１からの指示に従い、次のＩ＿ＰＣＭデータを中間バッファ１２に蓄積させる。
【００６８】
２値化部３１は、画像符号化部１０により得られる符号化データが入力されると、その符号化データを２値化する処理部である。また、２値化部３１により得られる２値データは中間バッファ１２に蓄積される。
【００６９】
算術符号化部３２は、中間バッファ１２に蓄積された２値データを算術符号化する処理部である。これにより、算術符号化データが得られる。
【００７０】
出力選択部１３は、本発明の画像符号化装置における出力手段の一例であり、符号化単位ごとに、算術符号化データおよびＩ＿ＰＣＭデータのいずれか一方をビットストリームとして出力する処理部である。
【００７１】
具体的には、出力選択部１３は、Ｉ＿ＰＣＭ判定部２１から比較の結果の通知を受け、計測されたデータ量が閾値を越えない場合、算術符号化部３２により得られる算術符号化データをビットストリームとして出力する。また、計測されたデータ量が閾値を越える場合、中間バッファ１２に蓄積されているＩ＿ＰＣＭデータをビットストリームとして出力する。
【００７２】
つまり、出力選択部１３は、算術符号化部３２により前記２値データが算術符号化された場合、算術符号化部３２により得られる当該算術符号化データを出力し、Ｉ＿ＰＣＭデータが中間バッファ１２に蓄積された場合、中間バッファ１２に蓄積された当該Ｉ＿ＰＣＭデータを出力する。
【００７３】
ここで、画像符号化装置１００は、図９を用いて説明した従来の画像符号化装置が備える出力バッファ１３３に相当するバッファを備えていない。これは、以下の理由による。
【００７４】
すなわち、画像符号化装置１００においては、従来の画像符号化装置と異なり、最終的にビットストリームとして出力される算術符号化データのみが算術符号化部３２から出力される。従って、算術符号化部３２により得られる算術符号化データはそのままビットストリームとして出力すればよく、バッファに保持しておく必要がない。そのため、画像符号化装置１００は、従来の出力バッファ１３３に相当するバッファを備える必要がない。
【００７５】
上記のように構成された本実施の形態の画像符号化装置１００の動作について、図１を参照しながら説明する。
【００７６】
なお、画像符号化装置１００において画像符号化に係る動作が開始された後であり、中間バッファ１２には、２値化データまたはＩ＿ＰＣＭデータが蓄積されている状態を想定して以下の説明を行う。
【００７７】
符号化対象の画像データは、画像符号化装置１００に入力されると、まず画像符号化部１０の動き予測部２と面内予測部３に入力される。また、Ｉ＿ＰＣＭデータバッファ１４にも入力され、Ｉ＿ＰＣＭデータとして保持される。
【００７８】
入力選択部４は、動き予測部２と面内予測部３のいずれかの出力データを選択し、直交変換部５に入力する。直交変換によって得られる直交変換係数は、量子化部６に入力され量子化される。
【００７９】
このような各構成部の動作により、画像符号化部１０から符号化データが得られる。
【００８０】
蓄積量計測部２２は、中間バッファ１２が有する制御情報により、符号化単位ごとに、中間バッファ１２に蓄積されているデータ量（以下、「バッファ内データ量」という。）を計測し、Ｉ＿ＰＣＭ判定部２１に出力する。
【００８１】
Ｉ＿ＰＣＭ判定部２１は、蓄積量計測部２２から入力されるバッファ内データ量と閾値記憶部２３に保持されている閾値とを符号化単位ごとに比較する。
【００８２】
この閾値は、例えば、中間バッファ１２に２値データおよびＩ＿ＰＣＭデータが蓄積されていない状態でのこれらデータを蓄積可能な容量（以下、「蓄積可能容量」という。）と、符号化単位ごとの２値データおよびＩ＿ＰＣＭデータそれぞれの想定最大量との差に基づいて決定され、閾値記憶部２３に記憶される。
【００８３】
ここで、上記閾値の決定方法の一例を説明する。例えば、蓄積可能容量が２００００ビット（ｂｉｔ）であり、符号化単位ごとの２値データおよびＩ＿ＰＣＭデータの想定最大量がそれぞれ、４０００ｂｉｔ、３０００ｂｉｔである場合を想定する。
【００８４】
また、符号化単位に対応する処理期間（以下、「サイクル」ともいう。）あたりの算術符号化部３２の処理可能量が１０００ｂｉｔである場合を想定する。例えば、中間バッファ１２に、ある時点で１００００ｂｉｔの２値データが蓄積されており、次のサイクルで、２０００ｂｉｔの２値データが中間バッファ１２に入力される場合、蓄積されている１０００ｂｉｔが中間バッファ１２から算術符号化部３２に出力されるため、中間バッファ１２の蓄積量は見かけ上、“２０００−１０００”だけ増加し、１１０００ｂｉｔとなる。
【００８５】
このような想定の下で、閾値をＸ（０ｂｉｔ＜Ｘ＜２００００ｂｉｔ）とすると、あるサイクル［ｎ］においてバッファ内データ量がＸである場合、つまり、バッファ内データ量が閾値Ｘを越えていない場合、次のサイクル［ｎ＋１］で中間バッファ１２には２値データが入力される。
【００８６】
従って、サイクル［ｎ＋１］におけるバッファ内データ量は、最大で“Ｘ＋４０００−１０００”（単位はｂｉｔ、以下同様）となる。つまり、このバッファ内データ量をＡとすると、このサイクル［ｎ＋１］における中間バッファ１２の最低残容量は“２００００−Ａ”となる。
【００８７】
また、サイクル［ｎ＋１］におけるバッファ内データ量は、閾値Ｘを越えているため、次のサイクル［ｎ＋２］では、Ｉ＿ＰＣＭデータが中間バッファ１２に入力される。
【００８８】
ここで、バッファ内データ量Ａの全てが２値データである場合、バッファ内データ量Ａの全てが消費されるまでの期間は、サイクル毎に１０００ｂｉｔずつ消費されるのみであり、中間バッファ１２が最もあふれ易い状態であるといえる。
【００８９】
そこで、この想定下で、中間バッファ１２をあふれさせないための閾値Ｘを以下のようにして求める。
【００９０】
サイクル［ｎ＋２］以降のサイクルでは、Ｉ＿ＰＣＭデータが中間バッファ１２に入力され、２値データが中間バッファ１２から出力される状態が継続するため、サイクル毎に最大で“３０００−１０００”ずつバッファ内データ量Ａから増加していくことになる。
【００９１】
しかし、中間バッファ１２があふれる前に、サイクル［ｎ＋１］以前に蓄積されていた全てのデータ、つまり、全ての２値データが出力されると、サイクル［ｎ＋２］以降に蓄積されたＩ＿ＰＣＭデータが出力されることになり、一時に大量のデータが中間バッファ１２から出力される。そのため、バッファ内データ量は減少していき、閾値Ｘを下回ることになる。
【００９２】
従って、サイクル［ｎ＋２］から、Ｉ＿ＰＣＭデータが出力される直前のサイクルまでの期間にバッファ内データ量Ａから増加する量が、上記の最低算容量“２００００−Ａ”を越えなければ、中間バッファ１２があふれることはない。
【００９３】
そこで、この条件を満たすように式を立てることを考えると、上記期間にバッファ内データ量Ａから増加する量のサイクル毎の最大値は、上述のように“３０００−１０００”である。
【００９４】
また、最大サイクル数は、バッファ内データ量Ａを、サイクル毎の消費量“１０００”で割った数“Ａ／１０００”である。
【００９５】
つまり、“（３０００−１０００）×Ａ／１０００”が、上記期間においてバッファ内データ量Ａから増加する量の最大値である。
【００９６】
従って、閾値Ｘは、以下に示す（式１）を満たす値として求めることができる。
【００９７】
２００００−（Ｘ＋４０００−１０００）≧（３０００−１０００）×（Ｘ＋４０００−１０００）／１０００  （式１）
【００９８】
上記（式１）を満たすＸは“１１０００／３”以下の値であり、例えば３６００ｂｉｔが閾値Ｘとして決定される。
【００９９】
ＰＣＭ判定部２１は、上記のように決定された閾値を用いて上記比較を行い、その結果、バッファ内データ量が閾値を越えない場合、次の２値データを中間バッファ１２に蓄積するよう、バッファ入力選択部１１へ指示する。
【０１００】
バッファ入力選択部１１は、上記指示に従い、画像符号化部１０から出力される符号化データを自身への入力データとして選択し、その選択した符号化データを２値化部３１に出力する。これにより、２値化部３１から２値データが出力され中間バッファ１２に蓄積される。
【０１０１】
また、上記比較の結果、バッファ内データ量が閾値を越える場合、次のＩ＿ＰＣＭデータを中間バッファ１２に蓄積するよう、バッファ入力選択部１１へ指示する。
【０１０２】
バッファ入力選択部１１は、上記指示に従い、Ｉ＿ＰＣＭデータバッファ１４に蓄積されているＩ＿ＰＣＭデータを自身への入力データとして選択し、その選択したＩ＿ＰＣＭデータを中間バッファ１２に出力することで、そのＩ＿ＰＣＭデータを中間バッファ１２に蓄積させる。
【０１０３】
このように、バッファ入力選択部１１は、Ｉ＿ＰＣＭ判定部２１で行われる比較の結果に応じ、符号化単位ごとに、２値データおよびＩ＿ＰＣＭデータのいずれか一方を中間バッファ１２に蓄積させる。
【０１０４】
さらにＩ＿ＰＣＭ判定部２１は、上記判定の結果に基づき、中間バッファ１２に入力されるデータが、２値データであるのか、Ｉ＿ＰＣＭデータであるのかを示す情報を出力選択部１３に送信する。
【０１０５】
中間バッファ１２は、蓄積している２値データを順次、算術符号化部３２へ出力する。算術符号化部３２は入力される２値データを算術符号化し、出力選択部１３に出力する。つまり、算術符号化部３２は、最終的にビットストリームとして出力される算術符号化データのみを出力選択部１３に出力する。
【０１０６】
さらに、算術符号化部３２は、算術符号化ごとに中間バッファ１２に保持されている変数テーブルを更新する。
【０１０７】
また、中間バッファ１２は、蓄積しているＩ＿ＰＣＭデータを、算術符号化部３２を経由せずに、出力選択部１３へ直接出力する。
【０１０８】
出力選択部１３は、Ｉ＿ＰＣＭ判定部２１からの情報に従い、算術符号化データおよびＩ＿ＰＣＭデータのいずれか一方を選択しビットストリームとして出力する。
【０１０９】
上記の構成によれば、Ｉ＿ＰＣＭ判定部２１は、所定の単位の符号化データが２値化される前に、バッファ内データ量と閾値とを比較することにより、その符号化データを２値化して得られる２値データ、およびＩ＿ＰＣＭデータのいずれを中間バッファ１２に蓄積するかを判定できる。
【０１１０】
また、この判定により選択された２値データおよびＩ＿ＰＣＭデータのいずれか一方のみが、中間バッファ１２に蓄積され、最終的に出力されるビットストリームに使用される。
【０１１１】
ここで、ある１つの符号化単位の画像データについて、２値データではなく、Ｉ＿ＰＣＭデータを中間バッファ１２に入力した場合、バッファ内データ量は、２値データを入力した場合より一時的に大きくなることが考えられる。
【０１１２】
しかしながら、上述のように、中間バッファ１２に蓄積された２値データは算術符号化部３２の処理能力に応じた量しか消費されないのに対し、Ｉ＿ＰＣＭデータは、算術符号化部３２を経由せず出力されるため、一時に、または短期間で消費されることとなる。
【０１１３】
そのため、中間バッファ１２での最大蓄積量を抑える上で、つまり、中間バッファ１２の容量をより少ないものにする上で、バッファ内データ量が閾値を越えた場合に、２値データに替えてＩ＿ＰＣＭデータを中間バッファ１２に入力することは効果的である。
【０１１４】
また、上述のように、算術符号化部３２は最終的にビットストリームとして出力される算術符号化データのみを出力選択部１３に出力する。そのため、従来の画像符号化装置とは異なり、算術符号化部３２から出力される算術符号化データを保持するためのバッファを必要としない。
【０１１５】
さらに、算術符号化部３２は、不要な算術符号化を行わないため、中間バッファ１２に保持されている変数テーブルに対して不要な更新を行うことがない。従って、更新した後に、変数テーブルを更新前の状態に戻す事態が発生することがないため、更新前の状態の変数テーブルを中間バッファ１２等の蓄積手段に保持しておく必要がない。
【０１１６】
図２は、中間バッファ１２に保持されているデータ等の構成例を示す模式図である。
【０１１７】
図２に示すように、本実施の形態の画像符号化装置１００における中間バッファ１２は、図９に示す従来の画像符号化装置５００における中間バッファ１１２とは異なり、変数テーブルとして、算術符号化部３２に参照および更新される変数テーブルであるテーブルＡのみを保持しておけばよい。
【０１１８】
また、図９に示すように、従来の画像符号化装置５００における中間バッファ１１２には、符号化単位ごとに２値データおよびＩ＿ＰＣＭデータの組が常に蓄積されるが、本実施の形態の画像符号化装置１００における中間バッファ１２には、出力に使用される２値データまたはＩ＿ＰＣＭデータのみが蓄積される。
【０１１９】
このように、本実施の形態の画像符号化装置１００は、従来の画像符号化装置よりも、装置全体として、より小さなバッファ容量で２値データを算術符号化できる。
【０１２０】
なお、本実施の形態において、蓄積量計測部２２は、中間バッファ１２が有する制御情報によりバッファ内データ量を計測するとした。しかしながら、別の方法で、バッファ内データ量を計測してもよい。
【０１２１】
例えば、中間バッファ１２の入力データ量と出力データ量とを計測し、入力データ量と出力データ量の差を算出することで、バッファ内データ量を計測してもよい。
【０１２２】
また、出力選択部１３は、Ｉ＿ＰＣＭ判定部２１からの比較の結果の通知を受け、算術符号化データおよびＩ＿ＰＣＭデータのいずれか一方を選択しビットストリームとして出力するとした。
【０１２３】
しかしながら、Ｉ＿ＰＣＭ判定部２１から情報を受け取らずに、出力するデータを選択してもよい。例えば、Ｉ＿ＰＣＭデータを中間バッファ１２に入力する際に、Ｉ＿ＰＣＭデータを出力すべき旨を示す制御フラグをＩ＿ＰＣＭデータに付加して中間バッファ１２に入力し、出力選択部１３がその制御フラグの存在を検出した場合のみＩ＿ＰＣＭデータを出力するとしてもよい。
【０１２４】
また、例えば、Ｉ＿ＰＣＭデータの先頭に、符号化タイプがＩ＿ＰＣＭデータであることを示す制御情報を付加して中間バッファ１２に蓄積させ、算術符号化部３２が、その制御情報を利用して出力選択部１３にＩ＿ＰＣＭデータを選択させてもよい。
【０１２５】
図３は、算術符号化部３２がＩ＿ＰＣＭデータの検出を行う画像符号化装置１００の機能ブロック図である。
【０１２６】
算術符号化部３２は、データに付加された制御情報から、当該データがＩ＿ＰＣＭデータであることを検出した場合、その制御情報の後に続くデータがＩ＿ＰＣＭデータであることを出力選択部１３に通知する（図３では「Ｉ＿ＰＣＭ通知」と記載している。）。
【０１２７】
出力選択部１３は、その通知を受けて当該制御情報に対応するＩ＿ＰＣＭデータを中間バッファ１２から読み出して出力する。
【０１２８】
こうすることによっても、出力選択部１３は、出力するデータを適切に選択することができる。
【０１２９】
なお、Ｈ．２６４の規格では、各マクロブロックデータの先頭に当該マクロブロックの符号化タイプを示すデータ（マクロブロックタイプデータ）が存在する。
【０１３０】
そこで、Ｉ＿ＰＣＭデータをビットストリームとして出力する場合、画像符号化装置１００において、例えば２値化部３１が、Ｉ＿ＰＣＭデータであることを示す制御情報を２値データにする。
【０１３１】
算術符号化部３２は、マクロブロックタイプデータを算術符号化し、マクロブロックタイプデータがＩ＿ＰＣＭを示す場合、算術符号化したマクロブロックタイプデータを出力選択部１３に出力するとともに、それに続く出力データがＩ＿ＰＣＭデータであることを出力選択部１３に通知する。
【０１３２】
出力選択部１３は、Ｉ＿ＰＣＭデータを、算術符号化部３２から受け取った算術符号化されたマクロブロックタイプデータに続けて出力する。
【０１３３】
画像符号化装置１００は、以上の手順で処理を行えば、Ｈ．２６４の規格に沿った符号ストリーム、すなわち、Ｉ＿ＰＣＭであることを示す符号化データの後にＩ＿ＰＣＭデータが続くビットストリームを生成し出力することができる。
【０１３４】
（実施の形態２）
本発明の実施の形態２として、２値データの予測量を求め、その予測量を利用して中間バッファへの入力データの選択を行う画像符号化装置について説明する。
【０１３５】
図４は、本発明の実施の形態２の画像符号化装置２００の機能的な構成を示す機能ブロック図である。図４において、図１に示す画像符号化装置１００が備える各構成要素と同じ構成要素については同じ符号を用い、それらの説明を省略する。
【０１３６】
実施の形態２の画像符号化装置２００は、図４に示すように、図１に示す画像符号化装置１００の有する構成要素に加えて２値データ量予測部２４を有している。
【０１３７】
２値データ量予測部２４は、画像符号化部１０により得られる符号化データが２値化された場合の２値データの量の予測値である予測量を求める処理部である。
【０１３８】
具体的には、２値データ量予測部２４は、画像符号化部１０の量子化部６から得られる符号化データである量子化後係数から、その量子化後係数が２値化された場合のデータ量、つまり２値データの予測量を求める。
【０１３９】
なお、２値データ量予測部２４は、例えば、量子化後係数の値と２値データのビット数とが対応付けられた変換テーブルを有しており、この変換テーブルを参照することにより、量子化後係数からその量子化後係数が２値化された場合の２値データの予測量を求めることができる。
【０１４０】
上記のように構成された画像符号化装置２００の動作について、実施の形態１の画像符号化装置１００とは異なる動作を中心に図４を参照しながら説明する。
【０１４１】
量子化部６から２値データ量予測部２４へ量子化後係数が入力される。２値データ量予測部２４は量子化後係数をもとに、その量子化後係数が２値化された場合の２値データ量を予測する。
【０１４２】
２値データの予測量はＩ＿ＰＣＭ判定部２１へ入力される。Ｉ＿ＰＣＭ判定部２１は、蓄積量計測部２２から入力されるバッファ内データ量に２値データの予測量を加えた上で、閾値記憶部２３に記憶されている閾値と比較する。
【０１４３】
また、Ｉ＿ＰＣＭ判定部２１は、上記の２値データの予測量と、符号化単位に対応する処理期間内に算術符号化部３２が算術符号化可能な量である単位処理量とを比較する。
【０１４４】
ここで、単位処理量とは、上述の閾値の決定方法の説明の中で述べた１サイクルあたりの算術符号化部３２の処理可能量である。
【０１４５】
上記２種類の比較の結果、２値データの予測量が加えられたバッファ内データ量（以下、「合計量」という。）が閾値を越えない場合、または、２値データの予測量が単位処理量を越えない場合、その量子化後係数を２値化部３１に入力し、２値化部３１から出力される２値データを中間バッファ１２に蓄積するように、バッファ入力選択部１１へ指示する。
【０１４６】
また、比較の結果、合計量が閾値を越え、かつ、２値データの予測量が単位処理量を越える場合、Ｉ＿ＰＣＭデータを中間バッファ１２に蓄積するように、バッファ入力選択部１１へ指示する。
【０１４７】
以降、２値データが中間バッファ１２に蓄積された場合、その２値データは算術符号化部３２により算術符号化され、算術符号化データとして出力選択部１３に入力される。また、Ｉ＿ＰＣＭデータが中間バッファ１２に蓄積された場合、そのＩ＿ＰＣＭデータは、出力選択部１３に入力される。
【０１４８】
出力選択部１３は、Ｉ＿ＰＣＭ判定部２１からの情報に従い、算術符号化データおよびＩ＿ＰＣＭデータのいずれか一方をビットストリームとして出力する。
【０１４９】
このように、本実施の形態の画像符号化装置２００は、計測されたバッファ内データ量に、２値データの予測量を加えた上で、閾値と比較し、さらに、２値データの予測量と単位処理量とを比較し、２種類の比較の結果に応じて中間バッファ１２に２値データを入力するかＩ＿ＰＣＭデータを入力するかを選択する。
【０１５０】
具体的には、合計量が閾値を越える場合であっても、２値データの予測量が単位処理量以下であれば、２値データを中間バッファ１２に入力させることになる。
【０１５１】
例えば、閾値が５０００ｂｉｔ、バッファ内データ量が４０００ｂｉｔ、２値データの予測量が２０００ｂｉｔ、算術符号化部３２の単位処理量が２５００ｂｉｔという状況にあるサイクルを想定する。
【０１５２】
このサイクルにおいては、合計量は６０００ｂｉｔとなり、閾値を越えることとなる。しかし、２０００ｂｉｔの２値データを次のサイクルで中間バッファ１２に入力したとしても、当該次のサイクルでは、２５００ｂｉｔの２値データが中間バッファ１２において消費されるため、中間バッファ１２があふれることはない。
【０１５３】
このように、合計量が閾値を越える場合であっても、２値データの予測量が算術符号化部３２の単位処理量を超えない場合は、２値データを中間バッファ１２に入力しても中間バッファ１２があふれることはない。
【０１５４】
これにより、不要に出力をＩ＿ＰＣＭデータに切り替える可能性を低減できることから、最終的に出力するビットストリームの符号量を削減できる。
【０１５５】
なお、本実施の形態において、量子化部６から出力される量子化後係数を元に次符号化単位での２値データ量を予測したが、動き予測部２からの出力データなどその他のデータを元に２値データ量を予測してもよい。
【０１５６】
また、２値データ量予測部２４は、変換テーブルを用いて２値データの予測量を求めるとしたが、その他の手法で２値データの予測量を求めてもよい。例えば、量子化後係数を２値データの予測量に変換する変換式により２値データの予測量を求めてもよい。
【０１５７】
（実施の形態３）
本発明の実施の形態３として、出力するビットストリームに要求されるビットレートである要求ビットレートの入力を受け付け、受け付けた要求ビットレートに基づいて閾値を変更する形態の画像符号化装置について説明する。
【０１５８】
図５は、本発明の実施の形態３の画像符号化装置３００の機能的な構成を示す機能ブロック図である。図５において、図１に示す画像符号化装置１００が備える各構成要素と同じ構成要素については同じ符号を用い、それらの説明を省略する。
【０１５９】
実施の形態３の画像符号化装置３００は、図５に示すように、図１に示す画像符号化装置１００の有する構成要素に加えて受付部２５を有している。
【０１６０】
受付部２５は、要求ビットレートを示す情報を受け付け、その情報に応じて前記閾値記憶部に記憶されている閾値を変更する処理部である。要求ビットレートは、例えば、ユーザによって決定され画像符号化装置３００に入力される。
【０１６１】
上記のように構成された本実施の形態の画像符号化装置３００の動作について、実施の形態１の画像符号化装置１００とは異なる動作を中心に図５を参照しながら説明する。
【０１６２】
なお、画像符号化装置３００に設定可能なビットレートとして、第１のビットレートと、第１のビットレートより高いビットレートである第２のビットレートの２種類があると想定する。また、第１のビットレートを示す情報を第１情報とし、第２のビットレートを示す情報を第２情報とする。
【０１６３】
また、互いに異なる２つの閾値として、第１の閾値と、第１の閾値より大きな第２の閾値とを想定する。後述する実施の形態３の変形例１および２においても同じである。
【０１６４】
ユーザの画像符号化装置３００、または画像符号化装置３００を含む機器に対する所定の操作により、受付部２５は、要求ビットレートを示す情報を受け付ける。
【０１６５】
受け付けられた情報は、画像符号化部１０へ送られ、その情報に応じた符号化が行われる。
【０１６６】
具体的には、画像符号化部１０は、要求ビットレートを示す情報として第１情報を受付部２５から受け取った場合、つまり、比較的低い要求ビットレートを示す情報を受け取った場合、ビットレートを低くするために、高い圧縮率で圧縮したデータを符号化データとしてバッファ入力選択部１１に出力する。
【０１６７】
また、第２情報を受付部２５から受け取った場合、つまり、比較的高い要求ビットレートを示す情報を受け取った場合、ビットレートを高くするために、低い圧縮率で圧縮したデータを符号化データとしてバッファ入力選択部１１に出力する。
【０１６８】
また、受付部２５は、要求ビットレートを示す情報を受け付けると、受け付けたビットレートに応じて閾値記憶部２３に記憶されている閾値を変更する。
【０１６９】
具体的には、第１情報を受け付けた場合、つまり、比較的低い要求ビットレートを示す情報を受け取った場合、上述のように、画像符号化部１０から、圧縮率の高い符号化データが出力される。従って、符号化データを２値化した後の２値データ量は比較的少ないと予測される。そのため、Ｉ＿ＰＣＭ判定に用いる閾値を、より高い閾値である第２の閾値に変更する。
【０１７０】
一方、第２情報を受け付けた場合、つまり、比較的高い要求ビットレートを示す情報を受け取った場合、上述のように、画像符号化部１０から、圧縮率の低い符号化データが出力される。従って、符号化データを２値化した後の２値データ量は比較的多いと予測される。そのため、Ｉ＿ＰＣＭ判定に用いる閾値を、より低い閾値である第１の閾値に変更する。
【０１７１】
このように、閾値を変更することにより、残りのバッファ容量で算術符号化処理が可能であるにも関わらず、不要に出力をＩ＿ＰＣＭデータに切り替える可能性を低減できる。このため、画像符号化装置３００が出力するビットストリームの符号量を削減できる。
【０１７２】
なお、本実施の形態において、要求ビットレートを示すビットレート情報に応じて閾値を変更したが、算術符号化部３２の演算処理能力や過去の符号化状況等その他のパラメータに応じて閾値を変化させてもよい。
【０１７３】
そこで、以下に、実施の形態３の変形例１および２として、算術符号化部３２の演算処理能力、および、発生する２値データ量の推移のそれぞれに応じて閾値を変更する場合について説明する。
【０１７４】
（実施の形態３の変形例１）
画像符号化装置において、例えば、消費電力の低下等を目的として動作クロック周波数を下げることが可能な場合、つまり、動作クロック周波数が可変である場合を想定する。
【０１７５】
ここで、動作クロック周波数は、演算処理能力（以下、単に「処理能力」という。）と正の相関関係があるため、動作クロック周波数が可変であるということは、処理能力が可変であるということを意味する。
【０１７６】
この場合、算術符号化部３２の処理能力に応じて、閾値を変更することにより、中間バッファ１２を効率よく使用し、かつ、出力ビットストリームの符号量を削減することが可能となる。
【０１７７】
図６は、算術符号化部３２の処理能力に応じて閾値を変更する画像符号化装置の機能的な構成を示す機能ブロック図である。
【０１７８】
図６に示す画像符号化装置３０１は閾値を変更する処理部として、処理能力取得部２６を備えている。
【０１７９】
処理能力取得部２６は、算術符号化部３２が行う算術符号化の処理能力を示す能力情報を取得し、能力情報に応じて閾値記憶部２３に記憶されている閾値を変更する処理部である。
【０１８０】
なお、算術符号化部３２の処理能力として、第１の処理能力と、第１の処理能力より高い処理能力である第２の処理能力の２種類があると想定する。また、第１の処理能力を示す情報を第１能力情報とし、第２の能力を示す情報を第２能力情報とし、処理能力取得部２６の動作を説明する。
【０１８１】
処理能力取得部２６は、算術符号化部３２から能力情報を取得する。取得した能力情報が第１能力情報である場合、つまり、比較的低い処理能力を示す情報を取得した場合、算術符号化部３２が単位時間内で処理できる２値データの量が少ないことを意味する。
【０１８２】
つまり、中間バッファ１２に蓄積されている２値データの単位時間あたりの消費量が少ないことを意味する。そのため、Ｉ＿ＰＣＭ判定に用いる閾値を、より低い閾値である第１の閾値に変更する。
【０１８３】
また、処理能力取得部２６は、取得した能力情報が第２情報を示す場合、つまり、比較的高い処理能力を示す情報を取得した場合、算術符号化部３２が単位時間内で処理できる２値データの量が多いことを意味する。
【０１８４】
つまり、中間バッファ１２に蓄積されている２値データの単位時間あたりの消費量が多いことを意味する。そのため、Ｉ＿ＰＣＭ判定に用いる閾値を、より高い閾値である第２の閾値に変更する。
【０１８５】
このように、算術符号化部３２の処理能力に応じて閾値を変更することもできる。また、これにより、不要に出力をＩ＿ＰＣＭデータに切り替える可能性を低減できる。このため、画像符号化装置３０１が出力するビットストリームの符号量を削減できる。
【０１８６】
（実施の形態３の変形例２）
画像符号化装置で符号化される画像データにおいて、空間的あるいは時間的に近い符号化単位の画像は類似したものとなる。そのため、発生する２値データ量も同程度となる可能性が高い。このことを用いて、２値化部３１から出力される２値データ量の推移から、後に発生する２値データ量が比較的多いものであるか少ないものであるか予測することができる。
【０１８７】
つまり、２値データ量の推移に応じて閾値を変更することが可能となる。これにより、中間バッファ１２を効率よく使用し、かつ、出力ビットストリームの符号量を削減することが可能となる。
【０１８８】
図７は、２値化部３１から出力される２値データ量の推移に応じて、閾値を変更する画像符号化装置の機能的な構成を示す機能ブロック図である。
【０１８９】
図７に示す画像符号化装置３０２は閾値を変更する処理部として、推移状況取得部２７を備えている。
【０１９０】
推移状況取得部２７は、２値化部３１から出力される２値データ量の推移から、後に発生する２値データ量が比較的多いものであるか少ないものであるか予測し、この予測結果に応じて、閾値を変更する処理部である。
【０１９１】
なお、推移状況取得部２７は、本発明の画像符号化装置における、推移予測手段が有する、後に発生する２値データ量を予測する機能と、変更手段が有する、閾値を変更する機能とを実現する処理部の一例である。
【０１９２】
以下、推移状況取得部２７の動作を説明する。
【０１９３】
推移状況取得部２７は、２値化部３１から出力される２値データ量を順次取得する。さらに、２値データ量の推移から、後の２値データ量が、所定の量を越えるか否かを予測する。
【０１９４】
例えば、所定の量を越える２値データ量が、一定期間または一定数の符号化単位だけ連続して２値化部３１から出力された場合、後の２値データ量も、一定期間または一定数の符号化単位だけ連続して所定の量を越えると予測する。
【０１９５】
同様に、所定の量を越えない２値データ量が、一定期間または一定数の符号化単位だけ連続して２値化部３１から出力された場合、後の２値データ量も、一定期間または一定数の符号化単位だけ連続して所定の量を越えないと予測する。
【０１９６】
この予測結果に基づき、後の２値データの量が所定の量を越えると予測された場合、閾値を、より低い閾値である第１の閾値に変更する。
【０１９７】
また、後の２値データの量が所定の量を越えないと予測された場合、閾値を、より高い閾値である第２の閾値に変更する。
【０１９８】
このように、２値化部３１から出力される２値データ量の推移に応じて閾値を変更することもできる。また、これにより、不要に出力をＩ＿ＰＣＭデータに切り替える可能性を低減できる。このため、画像符号化装置３０２が出力するビットストリームの符号量を削減できる。
【０１９９】
なお、画像符号化装置３００、画像符号化装置３０１、および画像符号化装置３０２のそれぞれにおいて、第１の閾値および第２の２段階の閾値があり、要求ビットレートの高低等の符号化に関連する情報に応じて閾値を変更するとした。
【０２００】
しかしながら、３段階以上の閾値を用意し、符号化に関連する情報に応じてそれぞれの閾値に変更してもよい。
【０２０１】
また、予め決定された閾値に変更するのではなく、例えば、符号化に関連する情報を数値化し、演算式により変更後の閾値を求めても良い。
【０２０２】
このようにすることにより、画像符号化装置において、要求ビットレートの高低など符号化に関連する情報に基づいて、閾値に対する緻密な変更制御が可能となる。すなわち、符号化の状況の変化に即して、効率的に中間バッファを使用することができ、不要に出力をＩ＿ＰＣＭデータに切り替える可能性をより低減することができる。つまり、出力するビットストリームの符号量を削減できる。
【産業上の利用可能性】
【０２０３】
本発明は、算術符号化を実行する画像符号化装置に利用することができる。具体的には、Ｈ．２６４／ＡＶＣに規定されたデータ圧縮技術により符号化する、ハイビジョン映像などを出力する画像符号化装置において有用である。
【図面の簡単な説明】
【０２０４】
【図１】本発明の実施の形態１の画像符号化装置の機能的な構成を示す機能ブロック図である。
【図２】中間バッファに保持されているデータ等の構成例を示す模式図である。
【図３】算術符号化部がＩ＿ＰＣＭデータの検出を行う実施の形態１の画像符号化装置の機能ブロック図である。
【図４】本発明の実施の形態２の画像符号化装置の機能的な構成を示す機能ブロック図である。
【図５】本発明の実施の形態３の画像符号化装置の機能的な構成を示す機能ブロック図である。
【図６】算術符号化部の処理能力に応じて閾値を変更する画像符号化装置の機能的な構成を示す機能ブロック図である。
【図７】２値化部から出力される２値データ量の推移に応じて、閾値を変更する画像符号化装置の機能的な構成を示す機能ブロック図である。
【図８】従来の画像符号化装置における２値化部、バッファ、および算術符号化部における処理量または蓄積量の推移の一例を示す図である。
【図９】従来の画像符号化装置の機能的な構成を示す機能ブロック図である。
【符号の説明】
【０２０５】
２    動き予測部
３    面内予測部
４    入力選択部
５    直交変換部
６    量子化部
１０    画像符号化部
１１    バッファ入力選択部
１２    中間バッファ
１３    出力選択部
１４    Ｉ＿ＰＣＭデータバッファ
２１    Ｉ＿ＰＣＭ判定部
２２    蓄積量計測部
２３    閾値記憶部
２４    ２値データ量予測部
２５    受付部
２６    処理能力取得部
２７    推移状況取得部
３１    ２値化部
３２    算術符号化部
１００、２００、３００、３０１、３０２    画像符号化装置
【図１】
2008022383.tif 000003
【図２】
2008022383.tif 000004
【図３】
2008022383.tif 000005
【図４】
2008022383.tif 000006
【図５】
2008022383.tif 000007
【図６】
2008022383.tif 000008
【図７】
2008022383.tif 000009
【図８】
2008022383.tif 000010
【図９】
2008022383.tif 000011