(57)【特許請求の範囲】
【請求項１】
画像を所定サイズ毎に順次処理して符号化を行う画像符号化装置であって、
前記所定サイズの画像の符号化対象データを可変長符号化する可変長符号化部と、
前記可変長符号化部により可変長符号化される前の符号化対象データを用いて、可変長符号化後の符号量を推定する推定部と、
推定された符号量の累積値に基づいて、画像のスライス分割を制御するスライス制御部と、
を備え、
前記スライス制御部は、
ビットレート、ピクチャレート、分割数を用いて閾値を算出し、前記累積値が前記閾値を超えた場合にスライス分割を行うよう制御する画像符号化装置。
【請求項２】
前記スライス制御部は、
前記可変長符号化部により符号化された符号化対象データの符号量と前記推定された符号量との誤差を取得し、取得した誤差を用いて前記累積値を修正する請求項１記載の画像符号化装置。
【請求項３】
前記推定部は、
前記符号化対象データに含まれる動きベクトルの大きさに基づいて前記符号量を推定する請求項１又は２記載の画像符号化装置。
【請求項４】
前記推定部は、
前記符号化対象データに含まれる量子化後のＤＣＴ係数のｒｕｎ及びｌｅｖｅｌの大きさに基づいて前記符号量を推定する請求項１又は２記載の画像符号化装置。
【請求項５】
前記推定部は、
前記符号化対象データに含まれる量子化後のＤＣＴ係数に対し、逆量子化を行ったＡＣ係数のレート歪関数を用いて前記符号量を推定する請求項１又は２記載の画像符号化装置。
【請求項６】
前記スライス制御部は、
高画質モード、低遅延モードを含むモードの設定に応じて、前記分割数を決定する請求項１乃至５いずれか一項に記載の画像符号化装置。
【請求項７】
画像を所定サイズ毎に順次処理して符号化を行う画像符号化方法であって、
可変長符号化される前の前記所定サイズの画像の符号化対象データを用いて、可変長符号化後の符号量を推定し、
推定された符号量の累積値に基づいて、画像のスライス分割を制御し、
前記符号化対象データを可変長符号化し、
前記画像のスライス分割を制御する際に、
ビットレート、ピクチャレート、分割数を用いて閾値を算出し、前記累積値が前記閾値を超えた場合にスライス分割を行うよう制御する画像符号化方法。
【請求項８】
画像を所定サイズ毎に順次処理して符号化を行う画像符号化プログラムであって、
可変長符号化される前の前記所定サイズの画像の符号化対象データを用いて、可変長符号化後の符号量を推定し、
推定された符号量の累積値に基づいて、画像のスライス分割を制御し、
前記符号化対象データを可変長符号化し、
前記画像のスライス分割を制御する際に、
ビットレート、ピクチャレート、分割数を用いて閾値を算出し、前記累積値が前記閾値を超えた場合にスライス分割を行うよう制御する
処理をコンピュータに実行させるための画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化を行う画像符号化装置、画像符号化方法、及び画像符号化プログラムに関する。
【背景技術】
【０００２】
近年、動画像データは、データ量が大きいので、送信装置から受信装置へ伝送される際、あるいは記憶装置に格納される際などに高能率符号化が行われる。「高能率符号化」とは、あるデータ列を他のデータ列に変換する符号化処理であって、そのデータ量を圧縮する処理をいう。
【０００３】
代表的な動画像符号化方式として、ＩＳＯ／ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｏｒｇａｎｉｚａｔｉｏｎ／Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）  ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）−２／ＭＰＥＧ−４（以下ＭＰＥＧ−２、ＭＰＥＧ−４）などが挙げられる。
【０００４】
ＭＰＥＧ−２では、Ｉ，Ｐ，Ｂの３種類のピクチャを規定している。Ｉピクチャは、他のピクチャの符号化画像を参照せず、フレーム内で閉じた符号化処理である。Ｐピクチャは、過去のピクチャから順方向予測を行い、予測誤差を符号化したピクチャである。Bピクチャは、過去と未来のピクチャから双方向予測を行い、予測誤差を符号化したピクチャである。
【０００５】
図１は、ＩＢＢＰ構造のシーケンスの例を示す図である。図１に示すＩ、Ｐ、Ｂの後の数字は、表示順を示す。表示順では、図１に示す例では、Ｂ０、Ｂ１、Ｉ２、Ｂ３、Ｂ４、Ｐ５、・・・である。
【０００６】
図１に示す符号化順は、Ｉ２、Ｂ０、Ｂ１、Ｐ５、Ｂ２、Ｂ３、・・・である。図１に示すように、Ｂピクチャによる遅延が発生する。また、符号化されたデータは、バッファに蓄積され、復号装置に出力される。なお、Ｉピクチャは、フレーム内符号化されるため、ピクチャ全体がリフレッシュされる。よって、このＩピクチャにより、エラーの伝播を防ぐことができる。
【０００７】
一方、一般的な動画像のエンコーダは、前処理部、予測符号化部、可変長符号化部、多重化部を、例えばピクチャ単位で順次処理（パイプライン処理）する。前処理部では、ピクチャタイプに合わせてピクチャを並べ替えるピクチャ並べ替え部等を備え、ピクチャタイプ及びフレームごとのフレーム画像等を順次出力する。
【０００８】
予測符号化部では、予測画像との差分をとり、直行変化や量子化を行う。可変長符号化部では、エントロピー符号化を行う。多重化部では、エントロピー符号化されたデータを多重化し、出力するビットストリームを生成する。
【０００９】
図２は、ピクチャ単位の順次処理の一例を示す図である。図２に示す例では、ピクチャ単位で順次、各処理が行われる。多重化されたビットストリームは、ＣＰＢ（Ｃｏｄｅｄ  Ｐｉｃｔｕｒｅ  Ｂｕｆｆｅｒ）に一時記憶され、デコーダに出力される。
【００１０】
ＣＰＢは、デコーダに入力される前のビットストリームを保持するバッファである。エンコーダは、デコーダ側のバッファが破綻しないようにＣＰＢを制御する。なお、リアルタイム処理系において、遅延が一番大きいのは、ＣＰＢによる遅延である。
【００１１】
ＣＰＢのサイズを大きくすれば画質は良くなるが遅延が大きくなる。ＣＰＢのサイズを小さくすれば画質は悪くなるが遅延は削減できる。このＣＰＢのサイズは、画質とトレードオフの関係にあり、いかに画質を落とさずにバッファ遅延を削減できるかが研究されている。
【００１２】
なお、ＣＰＢは、Ｈ．２６４／ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）（以下、Ｈ．２６４ともいう）でのバッファの名称であり、ＭＰＥＧでは、ＶＢＶ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒ  Ｖｅｒｉｆｉｅｒ）に相当する。以下の説明では、ＣＰＢと表記するが、ＭＰＥＧの場合には、このＣＰＢをＶＢＶに置き換えればよい。
【００１３】
リアルタイム処理での遅延を減らすため、ピクチャを数個のスライスに分割し、順次処理する単位をスライス単位とする方法がある。例えば、動きベクトルの大きさ、回線容量、バッファへ書き込んだ符号量に基づいて、スライスの大きさ（スライス内のマクロブロックの数）を決定する手法がある。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２０００−２２４５８４号公報
【特許文献２】特開２０１０−３４８０２号公報
【特許文献３】特開２０１０−６２９４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
画像を所定サイズに分割してエンコーダ遅延を削減することを考える。図３は、４個のスライスに分割した場合の順次処理の一例を示す図である。図３に示すように、スライス単位で順次処理を行うことにより、ピクチャ単位での順次処理よりも、多少遅延を削減することはできる。
【００１６】
しかし、各スライスで発生するビット量は一定ではない。図４は、スライスにおけるビット量とエンコーダ遅延との関係を示す図である。図４に示すように、あるスライスだけで１ピクチャ分のほとんどのビット量が発生することもありうる。図４に示す例では、スライス１で、１ピクチャに相当するビット量が発生している。
【００１７】
よって、この場合のスライス分割によるバッファ遅延は、あまり削減することができない。なぜなら、ピクチャ単位での順次処理時のＣＰＢとほぼ同じサイズとなるからである。ＣＰＢのサイズを削減すると、ＣＰＢの容量が足りなくなり、データが欠けてしまう。データが欠けた場合、エラーストリームとなり、正常に復号することができない。
【００１８】
次に、マクロブロック単位で順次処理を行うことを考える。図５は、マクロブロック単位の順次処理とエンコーダ遅延との関係を示す図である。図５に示すように、マクロブロック単位での順次処理は、スライス単位での順次処理よりも遅延は削減できるが、ＣＰＢのサイズは削減できない。
【００１９】
削減できない理由は、前述したとおり、１スライスだけで１ピクチャ分のほとんどのビット量を発生することもありうるため、ピクチャ単位で順次処理を行った場合のＣＰＢと同様のサイズとなる。ＣＰＢのサイズが同様であるということは、ＣＰＢによる遅延もピクチャ単位の場合と同様であることを表す。
【００２０】
なお、ある特定のスライスにビット量が偏ってしまうことが原因でＣＰＢのサイズが削減できなければ、従来技術のように、発生するビット量に基づいてスライス分割を行う方法がある。これにより、ＣＰＢのサイズを均等にすることで、ＣＰＢのサイズを削減することができる。
【００２１】
図６は、発生するビット量とスライス分割との関係を示す図である。図６（Ａ）に示すように、スライス分割を均等にした場合、各スライスに発生するビット量（符号量）は異なる。図６（Ｂ）に示すように、発生するビット量を均等にした場合、各スライスのサイズは様々になる。図６（Ｂ）に示すように、スライス１〜４の発生符号量は均等であるため、ＣＰＢのサイズを削減することは可能になる。
【００２２】
しかし、従来技術のように、バッファ部に書き込まれたビット量に基づいて、各スライスのビット量が均等になるように分割制御する場合、以下のような異常データを発生してしまう。
【００２３】
図７は、従来技術のスライス分割による問題点（その１）を説明するための図である。図７に示すように、例えば、マクロブロック（ＭＢ）単位で順次処理を行い、発生した符号量がカウントされる。この符号量の累積値が閾値を超えた場合に、次のＭＢから新しいスライスとしてスライス分割が行われる。
【００２４】
しかし、図７に示すように、ＭＢ２とＭＢ３との間でスライスを分割する場合、ＭＢ３では既に予測符号化が終了しているので、ＭＢ２の画像領域を参照している可能性があり、スライスの独立性を保つことができない。また、スライスの独立性が保てないと、エラーの伝播を抑制できず、スライス毎にリフレッシュできないという問題点もある。
【００２５】
また、Ｈ．２６４で符号化する場合、予測符号化の処理では、ＭＢ２とＭＢ３との間がスライス境界であると判断できない。よって、デブロックフィルタがスライス境界にかかってしまう場合がある。これにより、スライスの独立性が失われてしまう。
【００２６】
また、Ｈ．２６３で符号化する場合、スライス同士が独立でなくなってしまうため、Ａｎｎｅｘ  Ｋのスライス構造モードが使用できない。動きベクトルの予測のために、他のスライスの画像領域を参照することになり、規格違反となる。
【００２７】
上記の問題を解決するためには、予測符号化部のデータを修正するため予測符号化をやり直す必要がある。予測符号化部をやり直すためには、コスト増となってしまう。
【００２８】
図８は、従来技術のスライス分割による問題点（その２）を説明するための図である。図８に示す例では、ＭＢ２の発生符号量を累積した時点で閾値を超えたとする。この場合、ＭＢ１とＭＢ２との間でスライスを分割する。スライスの独立性を保つためには、可変長符号化されたＭＢ２は破棄し、ＭＢ２から再度処理をやり直す必要がある。
【００２９】
ＭＢ２から再度処理をやり直すためには、前のＭＢ情報を保持する機構が必要になり、既にＣＰＢに書き込んだデータを破棄することも必要になる。また、前処理部や予測符号化部などで、開始ＭＢの修正機能が必要になる。
【００３０】
よって、画像に対し、スライス単位で均等に分割しても、画質劣化を防いでバッファのサイズを削減することはできなかった。また、画像に対し、発生符号量を均等にしてスライス分割しても、スライスの独立性が保てず、予測符号化などの処理のやり直しが必要となり、効率的な符号化ができなかった。
【００３１】
そこで、開示の技術は、上記課題に鑑みてなされたものであり、スライスの独立性を保ちつつバッファサイズを削減することにより低遅延を実現することを目的とする。
【課題を解決するための手段】
【００３２】
開示の一態様における画像符号化装置は、画像を所定サイズ毎に順次処理して符号化を行う画像符号化装置であって、前記所定サイズの画像の符号化対象データを可変長符号化する可変長符号化部と、前記可変長符号化部により可変長符号化される前の符号化対象データを用いて、可変長符号化後の符号量を推定する推定部と、推定された符号量の累積値に基づいて、画像のスライス分割を制御するスライス制御部と、を備え、前記スライス制御部は、ビットレート、ピクチャレート、分割数を用いて閾値を算出し、前記累積値が前記閾値を超えた場合にスライス分割を行うよう制御する。
【発明の効果】
【００３３】
開示の技術によれば、スライスの独立性を保ちつつバッファサイズを削減することにより低遅延を実現することができる。
【図面の簡単な説明】
【００３４】
【図１】ＩＢＢＰ構造のシーケンスの例を示す図。
【図２】ピクチャ単位の順次処理の一例を示す図。
【図３】４個のスライスに分割した場合の順次処理の一例を示す図。
【図４】スライスにおけるビット量とエンコーダ遅延との関係を示す図。
【図５】マクロブロック単位の順次処理とエンコーダ遅延との関係を示す図。
【図６】発生するビット量とスライス分割との関係を示す図。
【図７】従来技術のスライス分割による問題点（その１）を説明するための図。
【図８】従来技術のスライス分割による問題点（その２）を説明するための図。
【図９】実施例１における画像符号化装置の構成の一例を示すブロック図。
【図１０】実施例１におけるスライス分割を説明するための図。
【図１１】実施例１における符号化処理の一例を示すフローチャート。
【図１２】実施例１におけるスライス分割制御処理の一例を示すフローチャート。
【図１３】実施例２における画像符号化装置の構成の一例を示すブロック図。
【図１４】予想符号量の累積値を修正する一例を示す図。
【図１５】実施例２におけるスライス分割制御処理の一例を示すフローチャート。
【図１６】ＣＰＢモードの一例を示す図。
【図１７】分割数とピクチャ構造との一例を示す図。
【図１８】ＣＰＢモードの他の例を示す図。
【発明を実施するための形態】
【００３５】
以下、添付図面を参照しながら実施例について詳細に説明する。
【００３６】
［実施例１］
＜構成＞
図９は、実施例１における画像符号化装置１０の構成の一例を示すブロック図である。図９に示す画像符号化装置１０は、前処理部１０１、予測符号化部１１７、可変長符号化部１１４、多重化部１１５、ＣＰＢ１１６を有する。
【００３７】
予測符号化部１１７は、予測誤差信号生成部１０２、ＤＣＴ部１０３、量子化部１０４、逆量子化部１０５、逆ＤＣＴ部１０６、復号画像生成部１０７、フレームバッファ１０８、動き推定部１０９、動き補償部１１０、レート制御部１１１、符号量推定部１１２、スライス制御部１１３を有する。
【００３８】
また、実施例１では、前処理部１０１、予測符号化部１１７、可変長符号化部１１４、多重化部１１５、ＣＰＢ１１６を、ＭＢ単位で順次処理する例について説明する。
【００３９】
前処理部１０１は、ピクチャタイプに合わせてピクチャを並べ替えるピクチャ並べ替え部等を有し、ピクチャタイプ及びフレームごとのフレーム画像等を順次出力する。また、前処理部１０１は、縮小画像を生成し、動きの方向などを調査する処理などを行ってもよい。
【００４０】
予測誤差信号生成部１０２は、入力された動画像データの符号化対象画像が１６×１６ピクセル（画素）のブロック（ＭＢ）に分割されたマクロブロックデータ（以降、ＭＢデータともいう）を取得する。予測誤差信号生成部１０２は、そのＭＢデータと、動き補償部１１０から出力される予測画像のＭＢデータとにより、予測誤差信号を生成する。予測誤差信号生成部１０２は、生成された予測誤差信号をＤＣＴ部１０３に出力する。
【００４１】
ＤＣＴ部１０３は、入力された予測誤差信号を８×８単位や４×４単位でＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）変換する。なお、ＤＣＴ変換以外にもアダマール（Ｈａｄａｍａｒｄ）変換などの直交変換を行ってもよい。ＤＣＴ部１０３は、直交変換処理によって水平及び垂直方向の周波数成分に分離されたデータを取得する。
【００４２】
これは、画像の空間相関性により、周波数成分に変換する事により低周波成分にデータが集まり情報量圧縮を行う事が可能となるからである。
【００４３】
量子化部１０４は、直交変換されたデータ（ＤＣＴ係数）を量子化することによって、データの符号量を低減し、この量子化された値を可変長符号化部１１４及び逆量子化部１０５に出力する。また、量子化部１０４は、必要に応じて、量子化値を符号量推定部１１２に出力する。
【００４４】
逆量子化部１０５は、量子化部１０４から出力されたデータを逆量子化する。逆量子化部１０５は、逆量子化されたデータを逆ＤＣＴ部１０６、符号量推定部１１２、及びレート制御部１１１に出力する。
【００４５】
逆ＤＣＴ部１０６は、逆量子化されたデータに対して、逆ＤＣＴ変換を行って、周波数成分から画素成分へ変換し、変換後のデータを復号画像生成部１０７及びレート制御部１１１に出力する。逆ＤＣＴ部１０６によって処理が行われることにより、符号化前の予測誤差信号と同程度の信号が得られる。
【００４６】
復号画像生成部１０７は、動き補償部１１０で動き補償された画像のＭＢデータと、逆ＤＣＴ部１０６により復号処理された予測誤差信号とを加算する。これにより、復号化側と同等の処理画像を符号化側でも生成することができる。
【００４７】
符号化側で生成された画像を局所復号画像と呼び、符号化側に復号化側と同一の処理画像を生成することにより、次ピクチャ以降の差分符号化を行うことが可能となる。復号画像生成部１０７は、加算して生成した局所復号画像のＭＢデータを、フレームバッファ１０８に出力する。なお、局所復号画像のＭＢデータに対し、デブロッキングフィルタをかけてもよい。局所復号画像は、参照画像となりうる。
【００４８】
フレームバッファ１０８は、入力したＭＢデータを新たな参照画像のデータとして記憶し、動き推定部１０９に出力する。
【００４９】
動き推定部１０９は、符号化対象画像におけるＭＢデータと、フレームバッファ１０８から取得する符号化済みの参照画像のＭＢデータとを用いて動き探索を行い、適切な動きベクトルを求める。
【００５０】
動きベクトルとは、ブロック単位で参照画像から符号化対象画像に最も類似している位置を探索するブロックマッチング技術を用いて求められるブロック単位の空間的なずれを示す値である。
【００５１】
動き探索は、例えば、画素の差分絶対値和の大きさのみでなく、動きベクトルの評価値も付加することが一般的である。動きベクトルの符号化は、成分そのものでなく周辺ＭＢの動きベクトルとの差分ベクトルを符号化する。よって、動き推定部１０９は、差分ベクトルを求め、その成分の大きさにより、動きベクトル符号長相当の評価値を出力する。
【００５２】
動き推定部１０９は、探索した動きベクトルを動き補償部１１０及び符号量推定部１１２に出力する。
【００５３】
動き補償部１１０は、参照画像のデータを動き推定部１０９から提供される動きベクトルで動き補償する。これにより、動き補償された参照画像としてのＭＢデータが生成される。
【００５４】
レート制御部１１１は、取得したデータに基づいて、量子化スケール値（ｑＰ値）などを制御してビットレートを制御する。
【００５５】
符号量推定部１１２は、可変長符号化前の符号化対象データを用いて、可変長符号化後の符号化処理単位（例えば、ＭＢなど）の符号量を推定する。符号量推定についての様々な方法について、以下に説明する。
【００５６】
（ＤＣＴ係数を用いる方法）
符号量推定部１１２は、逆量子化部１０５からのＤＣＴ係数を用いて符号量を推定する。符号量推定部１１２は、ＤＣＴ係数のうちＡＣ係数のレート歪関数を用いて、各ＡＣ係数の２乗から求まるビット数Ｂｉｊの和をＭＢ内の符号量として、式（１）により推定する。
【００５７】
【数１】
0005741073.tif 000002
レート歪関数Ｄは、ＡＣ係数の分布がガウス分布に従うとすると、式（２）で表せる。
【００５８】
【数２】
0005741073.tif 000003
σ：分散
ｂ：ビット数
【００５９】
この式を変換すると、式（３）になる。
【００６０】
【数３】
0005741073.tif 000004
【００６１】
本来、σの２乗は分散を表すが、符号量推定部１１２は、ＡＣ係数の２乗もσの２乗に近い値になると予想し、σにＡＣ係数を代入し、Ｄに所定の値を代入してＢｉｊを算出する。符号量推定部１１２は、式（１）により求めた値を、スライス制御部１１３に出力する。
【００６２】
（動きベクトルを用いる方法）
符号量推定部１１２は、動き推定部１０９から取得した動きベクトルの大きさを用いて、ＭＢの符号量を推定する。動きベクトルも符号化データに含まれるため、その他のデータの符号量が同様であると仮定すれば、動きベクトルの大きさでＭＢの符号量を推定できる。
【００６３】
符号量推定部１１２は、動きベクトルの大きさをｘだとすると、推定関数Ｆ（ｘ）により符号量を推定する。
Ｆ（ｘ）＝｜ｘ｜×β１（定数）  ・・・式（４）
Ｆ（ｘ）＝ｌｏｇ｜ｘ｜×β２（定数）  ・・・式（５）
Ｆ（ｘ）＝ｘ＾２×β３（定数）  ・・・式（６）
【００６４】
符号量推定部１１２は、式（４）〜（６）のいずれかの式によりＦ（ｘ）を求め、この値を符号量と推定する。符号量推定部１１２は、推定した符号量をスライス制御部１１３に出力する。
【００６５】
（量子化値を用いる方法）
符号量推定部１１２は、量子化された量子化値のｌｅｖｅｌとｒｕｎとを用いて符号量を推定する。符号量推定部１１２は、量子化後のＤＣＴ係数のｒｕｎ及びｌｅｖｅｌを用いて推定関数Ｇ（ｙ）により符号量を推定する。例えば、符号量推定部１１２は、Ｇ（ｒｕｎ）＋Ｇ（ｌｅｖｅｌ）を符号量と推定する。
Ｇ（ｙ）＝｜ｙ｜×γ１（定数）  ・・・式（７）
Ｇ（ｙ）＝ｌｏｇ｜ｙ｜×γ２（定数）  ・・・式（８）
Ｇ（ｙ）＝ｙ＾２×γ３（定数）  ・・・式（９）
ｙには、ｒｕｎやｌｅｖｅｌが代入される。
【００６６】
前述した推定方法はあくまでも一例であり、符号量推定部１１２は、可変長符号化前のデータを用いて符号量を推定すればよい。また、符号量推定部１１２は、前述した符号量を組み合わせてＭＢの符号量を推定してもよい。
【００６７】
符号量推定部１１２は、例えば、式（１）によるＢｉｔと、式（４）〜（６）の何れかのＦ（ｘ）とを加算して符号量としてもよい。符号量推定部１１２は、例えば、式（４）〜（６）の何れかのＦ（ｘ）と、式（７）〜（９）の何れかのＧ（ｙ）とを加算して符号量としてもよい。また、符号量推定部１１２は、式（１）によるＢｉｔと、式（７）〜（９）の何れかのＧ（ｙ）とを加算して符号量としてもよい。推定された符号量を予想符号量と呼ぶ。
【００６８】
スライス制御部１１３は、符号量推定部１１２から取得した符号量を累積し、この累積値が閾値以上となるか否かを判定する。この累積値が閾値を超えた場合、閾値を超えた際のＭＢと次のＭＢとの間をスライス境界としてスライス分割する。
【００６９】
スライス制御部１１３は、スライス分割した場合は、その内容を動き推定部１０９に出力する。これは、動き推定部１０９で、スライス間の参照をなくし、スライスの独立性を保つためである。
【００７０】
図１０は、実施例１におけるスライス分割を説明するための図である。図１０に示すように、画像に対し、予想符号量が均等となるようにスライス分割を行う。予想が当っている場合は、発生符号量が均等となるようにスライス分割を行うことができる。
【００７１】
図１０に示すように、例えば、ＭＢ０の予想符号量が３、ＭＢ１の予想符号量が２、ＭＢ３の予想符号量が４であるとし、閾値は８であるとする。このとき、ＭＢ２までの予想符号量の累積値は９（＝３＋２＋４）となり、閾値を超える。よって、スライス制御部１１３は、ＭＢ３の前で分割されるようスライス分割を制御する。
【００７２】
これにより、予測符号化部１１７で、スライス分割を判断することにより、スライスの独立性を保つことができる。スライスが独立であることで、エラーの伝播を防ぐリフレッシュを行うこともできる。
【００７３】
また、符号化方式がＨ．２６４の場合でも、スライス境界のＭＢ２とＭＢ３との間でデブロックフィルタをかけることを防止することができる。また、符号化方式がＨ．２６３の場合でも、規格違反となることを防止することができる。
【００７４】
図９に戻り、可変長符号化部１１４は、量子化部１０４から出力されたデータを可変長符号化して出力する。可変長符号化とは、シンボルの出現頻度に応じて可変長の符号を割り当てる方式をいう。
【００７５】
可変長符号化部１１４は、例えば、基本的には出現頻度の高い係数の組合せにはより短い符号を、出現頻度の低い係数組合せにはより長い符号を割当てる。これにより、全体的に符号長を短くしようとする。例えば、Ｈ．２６４では、ＣＡＶＬＣ（Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）やＣＡＢＡＣ（Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）と呼ばれる方式の可変長符号を選択することができる。
【００７６】
多重化部１１５は、可変長符号化されたデータを、出力されるビットストリームの形式に多重化する。
【００７７】
ＣＰＢ１１６は、ビットストリームを記憶する。ＣＰＢ１１６に記憶されたビットストリームは、復号装置に出力される。
【００７８】
＜動作＞
次に、実施例１における画像符号化装置１０の動作について説明する。図１１は、実施例１における符号化処理の一例を示すフローチャートである。図１１に示す処理は、ＭＢ単位で行われる処理で、前処理後の処理を表す。ステップＳ１０１で、予測符号化部１１７は、画像をＭＢ単位で予測符号化する。
【００７９】
ステップＳ１０２で、符号量推定部１１２、スライス制御部１１３は、可変長符号化前の符号化対象データを用いて符号量を推定し、推定した符号量に基づいてスライス分割を制御する。この処理は、図１２を用いて後述する。
【００８０】
ステップＳ１０３で、可変長符号化部１１４は、符号化対象データを可変長符号化する。なお、ステップＳ１０２とステップＳ１０３とは、並列して行われてもよい。
【００８１】
ステップＳ１０４で、多重化部１０４は、可変長符号化されたデータを含めて多重化を行い、画像符号化装置１０から出力されるビットストリームを生成する。
【００８２】
ステップＳ１０５で、ＣＰＢ１１６は、ビットストリームを記憶し、デコード側で映像が破綻しないようにする。
【００８３】
図１２は、実施例１におけるスライス分割制御処理の一例を示すフローチャートである。図１２に示すステップＳ２０１で、符号量推定部１１２は、可変長符号化前の符号化対象データを用いてＭＢの可変長符号化後の符号量（予想符号量）を推定する。推定されたＭＢ毎の予想符号量は、スライス制御部１１３に出力される。
【００８４】
ステップＳ２０２で、スライス制御部１１３は、取得した予想符号量を、次の式（１０）により予想符号量を累積する。
ｓｕｍ＿ｂｉｔ＋＝ＭＢの予想符号量  ・・・式（１０）
ｓｕｍ＿ｂｉｔは予想符号量の累積値であり、ピクチャの処理開始時に０にリセットされる。
【００８５】
ステップＳ２０３で、スライス制御部１１３は、累積値ｓｕｍ＿ｂｉｔが閾値Ｔｈ＿ｂｉｔを超えたか否かを判定する。累積値が閾値を超えれば（ステップＳ２０３−ＹＥＳ）ステップＳ２０４に進み、累積値が閾値以下であれば（ステップＳ２０３−ＮＯ）次のＭＢの処理に移る。
【００８６】
なお、閾値Ｔｈ＿ｂｉｔは、例えば、次の式（１１）により求められる。
Ｔｈ＿ｂｉｔ＝ｂｉｔｒａｔｅ／（ピクチャレート×分割数）  ・・・式（１１）
ピクチャレートは、１秒間のピクチャの枚数であり、フィールド構造時であれば６０、フレーム構造であれば３０である。
ｂｉｔｒａｔｅを６Ｍｂｐｓとし、分割数を４とした場合、２５０００ｂｉｔが閾値となる。
Ｔｈ＿ｂｉｔ＝６００００００／（６０×４）＝２５０００（ｂｉｔ）
ステップＳ２０４で、スライス制御部１１３は、閾値を超えた際のＭＢの次のＭＢから、次のスライスとなるようスライス分割を制御する。このとき、ｓｕｍ＿ｂｉｔを０にリセットする。
【００８７】
以上、実施例１によれば、スライスの独立性を保ちつつバッファサイズを削減することにより低遅延を実現することができる。また、実施例１によれば、スライスの符号量に適したバッファサイズにするので、バッファイサイズを削減してもデータを破損することなく、画質劣化を防ぐことができる。
【００８８】
なお、ピクチャの分割数を４に設定したとしても、ピクチャ毎にビット数が異なるため、必ずしも各ピクチャが４つのスライスに分割されるわけではない。なお、ピクチャ毎にスライスの分割数が異なっても問題にはならない。
【００８９】
［実施例２］
次に、実施例２における画像符号化装置２０について説明する。実施例２では、予想符号量と発生した符号量との誤差をフィードバックする機構を有する。これにより、発生した符号量がより均等になるようにスライス分割することができる。
【００９０】
＜構成＞
図１３は、実施例２における画像符号化装置２０の構成の一例を示すブロック図である。図１３に示す構成で、図９に示す構成と同様のものは同じ符号を付し、その説明を省略する。
【００９１】
予測符号化部２０１は、可変長符号化部２０２から符号量の誤差を取得する。そのため、符号量推定部２０３は、推定した予想符号量を可変長符号化部２０２に出力する。可変長符号化部２０２は、取得した予想符号量と、可変長符号化後の符号量との誤差を求め、スライス制御部２０４に出力する。
【００９２】
スライス制御部２０４は、可変長符号化部２０２から取得した誤差を用いて予想符号量の累積値を修正する。スライス制御部２０４は、修正された累積値を用いてスライス分割を制御する。
【００９３】
なお、可変長符号化部２０２は、可変長符号化後の符号量をスライス制御部２０４に出力し、スライス制御部２０４が誤差を求めるようにしてもよい。この場合、符号量推定部１１２は、予想符号量を可変長符号化部２０２に出力する必要はない。
【００９４】
図１４は、予想符号量の累積値を修正する一例を示す図である。図１４に示す例では、ＭＢ０の予想符号量は３、ＭＢ１の予想符号量は２、ＭＢ３の予想符号量は４とする。また、ＭＢ０の実際の符号量は３、ＭＢ１の実際の符号量は４、ＭＢ２の実際の符号量は４とする。よって、ＭＢ２について、誤差が「＋２」生じている。
【００９５】
スライス制御部２０４は、可変長符号化部２０２からＭＢ２についての誤差２を取得すると、ＭＢ３の予想符号量を累積する際に、累積値を修正する。スライス制御部２０４は、例えば、ＭＢ２までの予想符号量の累積値９に誤差２を加算して累積値を修正する。
【００９６】
これにより、実際の符号量と予想符号量との誤差を用いて、予想符号量の累積値を修正することで、実際の符号量がより均等となるようにスライス分割をすることができる。
【００９７】
＜動作＞
次に、実施例２における画像符号化装置２０の動作について説明する。ＭＢの符号化処理は、図１１に示す処理と同様であるため、その説明を省略する。図１５は、実施例２におけるスライス分割制御処理の一例を示すフローチャートである。
【００９８】
図１５に示すステップＳ３０１で、符号量推定部２０３は、可変長符号化前の符号化対象データを用いてＭＢの可変長符号化後の符号量（予想符号量）を推定する。推定されたＭＢ毎の予想符号量は、スライス制御部２０４に出力される。
【００９９】
ステップＳ３０２で、スライス制御部２０４は、取得した予想符号量を、次の式（１０）により予想符号量を累積する。
ｓｕｍ＿ｂｉｔ＋＝ＭＢの予想符号量  ・・・式（１０）
ｓｕｍ＿ｂｉｔは予想符号量の累積値であり、ピクチャの処理開始時に０にリセットされる。
【０１００】
ステップＳ３０３で、スライス制御部２０４は、可変長符号化部２０２から取得した符号量の誤差を用いて累積値ｓｕｍ＿ｂｉｔを修正する。
【０１０１】
ステップＳ３０４で、スライス制御部２０４は、修正された累積値ｓｕｍ＿ｂｉｔが閾値Ｔｈ＿ｂｉｔを超えたか否かを判定する。修正された累積値が閾値を超えれば（ステップＳ３０４−ＹＥＳ）ステップＳ３０５に進み、修正された累積値が閾値以下であれば（ステップＳ３０４−ＮＯ）次のＭＢの処理に移る。
【０１０２】
ステップＳ３０５で、スライス制御部２０４は、閾値を超えた際のＭＢの次のＭＢから、次のスライスとなるようスライス分割を制御する。このとき、ｓｕｍ＿ｂｉｔを０にリセットする。
【０１０３】
以上、実施例２によれば、実際の符号量と予想符号量との誤差を用いて、予想符号量の累積値を修正することで、実際の符号量がより均等となるようにスライス分割をすることができる。
【０１０４】
［変形例］
次に、変形例について説明する。例えば、画像符号化装置は、ＣＰＢモードとして複数のモードを有する。ＣＰＢモードは、例えば、高画質モード、中間モード、低遅延モードがあるとする。
【０１０５】
この場合、画像符号化装置は、ＣＰＢモードに応じて、スライスの分割数及び／又はＧＯＰ構造を設定する。図１６は、ＣＰＢモードの一例を示す図である。図１６に示す例では、高画質モードのとき、分割数は１で、ＧＯＰ構造はＩＢＢＰ構造である。このモードは、遅延よりも画質を優先させることができる。
【０１０６】
中間モードは、分割数は２で、ＧＯＰ構造はＩＰＰＰ構造である。このモードは、画質劣化を防ぎつつ遅延を削減することができる。
【０１０７】
低遅延モードは、分割数は４で、ＧＯＰ構造はＰＰＰＰ構造である。画質劣化を防ぎつつ遅延を中間モードより削減することができる。
【０１０８】
図１７は、分割数とＧＯＰ構造との一例を示す図である。図１７に示すように、分割数１の場合には、遅延よりも高画質を優先するためにＩＢＢＰ構造で処理を行うように画像符号化装置は制御されてもよい。
【０１０９】
分割数が４の場合は、ピクチャの並べ替えが不要なＩＰＰＰ構造、ＰＰＰＰ構造にしてバッファのサイズを削減することで、バッファ遅延を削減することができる。よって、スライスの分割数に応じて、ＧＯＰの構造を切り替えるようにしてもよい。なお、ＣＰＢモードによりスライスの分割数が決まれば、スライス制御部は、その分割数に基づいて閾値Ｔｈ＿ｂｉｔを求める。
【０１１０】
なお、分割数とＧＯＰ構造とは特に関係がなく、他の対応関係でもよい。図１８は、ＣＰＢモードの他の例を示す図である。図１８（Ａ）に示すＣＰＢモードは、分割数は同じで、ＧＯＰ構造を変更する。これにより、ＧＯＰ構造の違いによってＣＰＢモードに対応することができる。図１８（Ｂ）に示すＣＰＢモードは、ＧＯＰ構造は同じで分割数を変更する。これにより、分割数の違いによってＣＰＢモードに対応することができる。
【０１１１】
なお、ＣＰＢのサイズは、Ｔｈ＿ｂｉｔで設定される容量よりも大きくする。例えば、ヘッダ情報やＤＣ係数の符号量分を考慮してＣＰＢのサイズを設定すればよい。これは、バッファのオーバーフローによるデータ破損を回避するためである。
【０１１２】
なお、ＣＰＢの容量としては、３０Ｍｂｐｓで符号化を行う場合、ＣＰＢでの遅延を１秒とすれば、最低３０Ｍｂｉｔ分、０．５秒とすれば、最低１５Ｍｂｉｔ分のバッファ容量が必要となる。画像符号化装置は、最大ビットレートのＣＰＢが最低必要となり、これより所定サイズ大きいＣＰＢのサイズが設定されればよい。
【０１１３】
符号化レートの最大が１００Ｍｂｐｓの符号化装置において、ＣＰＢでの遅延を０．５秒とすれば、ＣＰＢのサイズは５０Ｍｂｉｔになる。画像符号化装置には、十分なメモリを搭載しておき、ＣＰＢの遅延によって、ＣＰＢのサイズが決まるようにしておけばよい。
【０１１４】
また、前述した実施例では、ＭＢ単位で順次処理を行ったが、スライス単位やピクチャ単位で順次処理を行ってもよい。また、前述した実施例では、Ｈ．２６４やＨ．２６３の符号化方式以外にも、ＭＰＥＧ−２、４などのスライス分割を行う符号化方式にも適用できる。
【０１１５】
なお、前述した実施例で説明した画像符号化処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、前述した画像符号化処理を実現することができる。
【０１１６】
また、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータや携帯端末に読み取らせて、前述した画像符号化処理を実現させることも可能である。なお、記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。また、前述した各実施例で説明した画像符号化処理は、１つ又は複数の集積回路に実装してもよい。
【０１１７】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記変形例以外にも種々の変形及び変更が可能である。
【０１１８】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
画像を所定サイズ毎に順次処理して符号化を行う画像符号化装置であって、
前記所定サイズの画像の符号化対象データを可変長符号化する可変長符号化部と、
前記可変長符号化部により可変長符号化される前の符号化対象データを用いて、可変長符号化後の符号量を推定する推定部と、
推定された符号量の累積値に基づいて、画像のスライス分割を制御するスライス制御部と、
を備える画像符号化装置。
（付記２）
前記スライス制御部は、
前記可変長符号化部により符号化された符号化対象データの符号量と前記推定された符号量との誤差を取得し、取得した誤差を用いて前記累積値を修正する付記１記載の画像符号化装置。
（付記３）
前記推定部は、
前記符号化対象データに含まれる動きベクトルの大きさに基づいて前記符号量を推定する付記１又は２記載の画像符号化装置。
（付記４）
前記推定部は、
前記符号化対象データに含まれる量子化後のＤＣＴ係数のｒｕｎ及びｌｅｖｅｌの大きさに基づいて前記符号量を推定する付記１又は２記載の画像符号化装置。
（付記５）
前記推定部は、
前記符号化対象データに含まれる量子化後のＤＣＴ係数に対し、逆量子化を行ったＡＣ係数のレート歪関数を用いて前記符号量を推定する付記１又は２記載の画像符号化装置。（付記６）
前記スライス制御部は、
ビットレート、ピクチャレート、分割数を用いて閾値を算出し、前記累積値が前記閾値を超えた場合にスライス分割を行うよう制御する付記１乃至５いずれか一項に記載の画像符号化装置。
（付記７）
前記スライス制御部は、
高画質モード、低遅延モードを含むモードの設定に応じて、前記分割数を決定する付記６記載の画像符号化装置。
（付記８）
画像を所定サイズ毎に順次処理して符号化を行う画像符号化方法であって、
可変長符号化される前の前記所定サイズの画像の符号化対象データを用いて、可変長符号化後の符号量を推定し、
推定された符号量の累積値に基づいて、画像のスライス分割を制御し、
前記符号化対象データを可変長符号化する画像符号化方法。
（付記９）
画像を所定サイズ毎に順次処理して符号化を行う画像符号化プログラムであって、
可変長符号化される前の前記所定サイズの画像の符号化対象データを用いて、可変長符号化後の符号量を推定し、
推定された符号量の累積値に基づいて、画像のスライス分割を制御し、
前記符号化対象データを可変長符号化する、
処理をコンピュータに実行させるための画像符号化プログラム。
【符号の説明】
【０１１９】
１０１  前処理部
１０２  予測誤差信号生成部
１０３  ＤＣＴ部
１０４  量子化部
１０５  逆量子化部
１０６  逆ＤＣＴ部
１０７  復号画像生成部
１０８  フレームバッファ
１０９  動き推定部
１１０  動き補償部
１１１  レート例御部
１１２  符号量推定部
１１３  スライス制御部
１１４  可変長符号化部
１１５  多重化部
１１６  ＣＰＢ
１１７  予測符号化部
【図１】
0005741073.tif 000005
【図２】
0005741073.tif 000006
【図３】
0005741073.tif 000007
【図４】
0005741073.tif 000008
【図５】
0005741073.tif 000009
【図６】
0005741073.tif 000010
【図７】
0005741073.tif 000011
【図８】
0005741073.tif 000012
【図９】
0005741073.tif 000013
【図１０】
0005741073.tif 000014
【図１１】
0005741073.tif 000015
【図１２】
0005741073.tif 000016
【図１３】
0005741073.tif 000017
【図１４】
0005741073.tif 000018
【図１５】
0005741073.tif 000019
【図１６】
0005741073.tif 000020
【図１７】
0005741073.tif 000021
【図１８】
0005741073.tif 000022