(57)【要約】【課題】  １つの符号化対象ブロック当たりの符号量が規定された最大符号量を超えないようにすることと、画質の劣化の範囲を低減させることとを共に実現する。【解決手段】  二値算術符号化の際に、規格違反のブロック（ＭＢ）が生じたピクチャについて、ラスター順で規格違反ＭＢになるまでは、当該ピクチャに対する二値データに対して算術符号化処理を行った符号化データを採用する。そして、ラスター順で規格違反ＭＢ以降では、スキップＭＢの二値データに対して算術符号化処理を行った符号化データを採用する。【選択図】  図１
2014216712.tif 000002
【特許請求の範囲】
【請求項１】
入力画像データと予測画像データとの差分画像データを量子化する量子化手段と、
前記量子化手段により量子化された差分画像データに対してエントロピー符号化を行って符号化データを生成する符号化手段と、
前記入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であるか否かを符号化対象ブロックの単位でラスター順に判定する判定手段と、を有し、
前記入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定手段により判定された場合、当該符号量が所定の符号量以上になる符号化対象ブロックよりもラスター順で前の符号化対象ブロックについては、前記入力画像データに対する符号化データとして、前記入力画像データと予測画像データとの差分画像データに基づいて前記符号化手段により生成された符号化データを採用し、当該符号化対象ブロックと当該符号化対象ブロックよりもラスター順で後の符号化対象ブロックについては、前記入力画像データに対する符号化データとして、前記入力画像データと予測画像データとの差分画像データの符号量が最も少なくなる場合の符号化データを採用することを特徴とする符号化装置。
【請求項２】
前記量子化手段により量子化された差分画像データを復元して参照画像データを生成する復元手段と、
入力画像データと参照画像データとを用いて動きベクトルを検出する動き検出手段と、
前記動き検出手段により検出された動きベクトルを用いて前記予測画像データを生成して、前記入力画像データと前記予測画像データとの差分画像データを生成する動き補償手段と、を有し、
前記動き検出手段は、新たに入力した入力画像データに対応する参照画像データの基となった入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定手段により判定されていた場合、当該符号量が所定の符号量以上になる符号化対象ブロックよりもラスター順で前の符号化対象ブロックにおいては、当該新たに入力した入力画像データと、当該新たに入力した入力画像データに対応する参照画像データと、を用いて動きベクトルを検出することを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記動き検出手段は、前記新たに入力した入力画像データに対応する参照画像データの基となった入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定手段により判定されていた場合、当該符号量が所定の符号量以上になる符号化対象ブロックと、当該符号化対象ブロックよりもラスター順で後の符号化対象ブロックにおいては、当該新たに入力した入力画像データと、当該新たに入力した入力画像データに対応する参照画像データの基となった入力画像データに対応する参照画像データと、を用いて動きベクトルを検出することを特徴とする請求項２に記載の符号化装置。
【請求項４】
新たに入力した前記入力画像データに対応する参照画像データの基となった入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定手段により判定されていた場合、当該新たに入力した入力画像データに対する符号化データとして、全ての符号化対象ブロックにおいて、当該新たに入力した入力画像データと予測画像データとの差分画像データに対する符号量が最も少なくなる場合の符号化データを採用することを特徴とする請求項１〜３の何れか１項に記載の符号化装置。
【請求項５】
新たに入力した入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定手段により判定されると、ラスター順で先頭の符号化対象ブロックから、当該符号量が所定の符号量以上になる符号化対象ブロックまでの数が閾値以下であるか否かを判断する判断手段を有し、
前記判断手段により、ラスター順で先頭の符号化対象ブロックから、当該符号量が所定の符号量以上になる符号化対象ブロックまでの数が閾値以下であると判断されると、前記新たに入力した入力画像データに対する符号化データとして、全ての符号化対象ブロックにおいて、当該新たに入力した入力画像データと予測画像データとの差分画像データに対する符号量が最も少なくなる場合の符号化データを採用することを特徴とする請求項１〜４の何れか１項に記載の符号化装置。
【請求項６】
前記量子化手段によって量子化された差分画像データを二値化して二値データを生成する二値化手段を有し、
前記符号化手段は、二値データに対する算術符号化を行って符号化データを生成し、
前記入力画像データと予測画像データとの差分画像データに基づいて前記符号化手段により生成された符号化データは、前記二値化手段により生成された二値データに対して前記符号化手段により算術符号化されることにより生成された符号化データであり、
前記入力画像データと予測画像データとの差分画像データに対する符号量が最も少なくなる場合の符号化データは、前記量子化手段によって量子化された差分画像データに対する符号量が最も少なくなる場合の二値データに対して前記符号化手段により算術符号化されることにより生成された符号化データであることを特徴とする請求項１〜５の何れか１項に記載の符号化装置。
【請求項７】
前記入力画像データに対する符号量が最も少なくなる場合の符号化データが採用される符号化対象ブロックは、スキップマクロブロックであることを特徴とする請求項１〜６の何れか１項に記載の符号化装置。
【請求項８】
入力画像データと予測画像データとの差分画像データを量子化する量子化工程と、
前記量子化工程により量子化された差分画像データに対してエントロピー符号化を行って符号化データを生成する符号化工程と、
前記入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であるか否かを符号化対象ブロックの単位でラスター順に判定する判定工程と、を有し、
前記入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定工程により判定された場合、当該符号量が所定の符号量以上になる符号化対象ブロックよりもラスター順で前の符号化対象ブロックについては、前記入力画像データに対する符号化データとして、前記入力画像データと予測画像データとの差分画像データに基づいて前記符号化工程により生成された符号化データを採用し、当該符号化対象ブロックと当該符号化対象ブロックよりもラスター順で後の符号化対象ブロックについては、前記入力画像データに対する符号化データとして、前記入力画像データと予測画像データとの差分画像データに対する符号量が最も少なくなる場合の符号化データを採用することを特徴とする符号化方法。
【請求項９】
前記量子化工程により量子化された差分画像データを復元して参照画像データを生成する復元工程と、
入力画像データと参照画像データとを用いて動きベクトルを検出する動き検出工程と、
前記動き検出工程により検出された動きベクトルを用いて前記予測画像データを生成して、前記入力画像データと前記予測画像データとの差分画像データを生成する動き補償工程と、を有し、
前記動き検出工程は、新たに入力した入力画像データに対応する参照画像データの基となった入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定工程により判定されていた場合、当該符号量が所定の符号量以上になる符号化対象ブロックよりもラスター順で前の符号化対象ブロックにおいては、当該新たに入力した入力画像データと、当該新たに入力した入力画像データに対応する参照画像データと、を用いて動きベクトルを検出することを特徴とする請求項８に記載の符号化方法。
【請求項１０】
前記動き検出工程は、前記新たに入力した入力画像データに対応する参照画像データの基となった入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定工程により判定されていた場合、当該符号量が所定の符号量以上になる符号化対象ブロックと、当該符号化対象ブロックよりもラスター順で後の符号化対象ブロックにおいては、当該新たに入力した入力画像データと、当該新たに入力した入力画像データに対応する参照画像データの基となった入力画像データに対応する参照画像データと、を用いて動きベクトルを検出することを特徴とする請求項９に記載の符号化方法。
【請求項１１】
新たに入力した前記入力画像データに対応する参照画像データの基となった入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定工程により判定されていた場合、当該新たに入力した入力画像データに対する符号化データとして、全ての符号化対象ブロックにおいて、当該新たに入力した入力画像データと予測画像データとの差分画像データに対する符号量が最も少なくなる場合の符号化データを採用することを特徴とする請求項８〜１０の何れか１項に記載の符号化方法。
【請求項１２】
新たに入力した入力画像データと予測画像データとの差分画像データに基づく符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定工程により判定されると、ラスター順で先頭の符号化対象ブロックから、当該符号量が所定の符号量以上になる符号化対象ブロックまでの数が閾値以下であるか否かを判断する判断工程を有し、
前記判断工程により、ラスター順で先頭の符号化対象ブロックから、当該符号量が所定の符号量以上になる符号化対象ブロックまでの数が閾値以下であると判断されると、前記新たに入力した入力画像データに対する符号化データとして、全ての符号化対象ブロックにおいて、当該新たに入力した入力画像データと予測画像データとの差分画像データに対する符号量が最も少なくなる場合の符号化データを採用することを特徴とする請求項８〜１１の何れか１項に記載の符号化方法。
【請求項１３】
前記量子化工程によって量子化された差分画像データを二値化して二値データを生成する二値化工程を有し、
前記符号化工程は、二値データに対する算術符号化を行って符号化データを生成し、
前記入力画像データと予測画像データとの差分画像データに基づいて前記符号化工程により生成された符号化データは、前記二値化工程により生成された二値データに対して前記符号化工程により算術符号化されることにより生成された符号化データであり、
前記入力画像データと予測画像データとの差分画像データに対する符号量が最も少なくなる場合の符号化データは、前記量子化工程によって量子化された差分画像データに対する符号量が最も少なくなる場合の二値データに対して前記符号化工程により算術符号化されることにより生成された符号化データであることを特徴とする請求項８〜１２の何れか１項に記載の符号化方法。
【請求項１４】
前記入力画像データに対する符号量が最も少なくなる場合の符号化データが採用される符号化対象ブロックは、スキップマクロブロックであることを特徴とする請求項８〜１３の何れか１項に記載の符号化方法。
【請求項１５】
請求項８〜１４の何れか１項に記載の符号化方法の各工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、符号化方法、及びコンピュータプログラムに関し、特に、画像データを符号化するために用いて好適なものである。
【背景技術】
【０００２】
近年、高能率な符号化方式としてＨ.２６４方式が提案されている。Ｈ．２６４方式では、エントロピー符号化に二値算術符号化を用いたＣＡＢＡＣ（Context-Adaptive Binary Arithmetic Coding）を採用している。また、ＣＡＶＬＣ（Context-Adaptive VLC）も採用している。ＣＡＢＡＣでは、処理内容の違いから、二値化部と二値算術符号化部とに分けられる。アルゴリズムの性質上処理時間がかかるため、二値算術符号化処理を行う際には、二値算術符号化部を、二値化部及びその他の符号化部とは非同期に動作させることが多い。
【０００３】
Ｈ．２６４方式では、画像をマクロブロック（ＭＢ）と呼ばれる１６画素×１６画素のブロックに分割し、マクロブロックの単位で符号化処理を行う。Ｈ．２６４方式では、マクロブロックの最大符号量が規定されている。具体的には、１マクロブロック当たりの符号量が３２００ビットという符号量を超えた場合は、規格違反となる。したがって、最大符号量を超えないように符号量制御を行いつつ符号化を行う必要がある。最大符号量を超えたマクロブロックを含むストリームは規格違反となる。
【０００４】
図９は、規格違反になるマクロブロックの一例を説明する図である。
図９（ａ）は、符号化順にピクチャを示す図であり、二値化部及びその他の符号化部の処理時間と、規格違反が発生した際のＣＡＢＡＣの二値算術符号化部の処理時間との関係の一例を示す図である。
図９（ａ）の上段は、二値化部及びその他の符号化部が１ピクチャを処理する時間を符号化順で示す。図９（ａ）の下段は、二値算術符号化部が１ピクチャを処理する時間を符号化順で示す。「Ｉ」、「Ｐ」、「Ｂ」は、符号化のピクチャタイプを示す。Ｉピクチャはイントラ予測を行うピクチャである。Ｐピクチャ及びＢピクチャはインター予測を行うピクチャである。「Ｉ」、「Ｐ」、「Ｂ」の横の添え字は、符号化順を示す番号である。
【０００５】
図９（ｂ）は、表示順にピクチャを示す図であり、それぞれのピクチャの参照関係の一例を示す図である。ピクチャＢ４、Ｂ５、Ｐ６、Ｂ７、Ｂ８では、規格違反が発生したピクチャＰ３を参照して符号化が行われる。
図９（ａ）では、二値算術符号化部がピクチャＰ３を処理中に規格違反が発生した場合を示す。ピクチャＢ４、Ｂ５については、規格違反を含むピクチャＰ３を参照して二値化処理及びその他の符号化処理を既に終えているか、符号化の途中である。
このような規格違反が生じた場合に、正常なストリームに置き換える技術に関して、特許文献１に記載の技術がある。特許文献１に記載の技術では、規格違反が生じるピクチャと、当該規格違反が生じるピクチャを参照画像としているピクチャとをコピーピクチャに差し替える。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１５９５９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の技術では、ピクチャ単位の差し替え処理を行う。このため、ピクチャの差し替え処理が行われた場合に、画質の劣化を伴う範囲が大きいという問題がある。
本発明は、このような問題点に鑑みてなされたものであり、１つの符号化対象ブロック当たりの符号量が規定された最大符号量を超えないようにすることと、画質の劣化の範囲を低減させることとを共に実現することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の符号化装置は、入力画像データと予測画像データとの差分画像データを量子化する量子化手段と、前記量子化手段により量子化された差分画像データに対してエントロピー符号化を行って符号化データを生成する符号化手段と、前記入力画像データと予測画像データとの差分画像データに基づいて符号化データが生成された際に発生した符号量が所定の符号量以上であるか否かを符号化対象ブロックの単位でラスター順に判定する判定手段と、を有し、前記入力画像データと予測画像データとの差分画像データに基づいて符号化データが生成された際に発生した符号量が所定の符号量以上であることが前記判定手段により判定された場合、当該符号量が所定の符号量以上になる符号化対象ブロックよりもラスター順で前の符号化対象ブロックについては、前記入力画像データに対する符号化データとして、前記入力画像データと予測画像データとの差分画像データに基づいて前記符号化手段により生成された符号化データを採用し、当該符号化対象ブロックと当該符号化対象ブロックよりもラスター順で後の符号化対象ブロックについては、前記入力画像データに対する符号化データとして、前記入力画像データと予測画像データとの差分画像データに対する符号量が最も少なくなる場合の符号化データを採用することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、１つの符号化対象ブロック当たりの符号量が規定された最大符号量を超えないようにすると共に画質の劣化の範囲を低減させることができる。
【図面の簡単な説明】
【００１０】
【図１】符号化装置の構成の第１の例を示す図である。
【図２】符号化部の構成を示す図である。
【図３】二値算術符号化処理を説明するフローチャートである。
【図４】規格違反ＭＢ位置とスキップＭＢになるＭＢとの第１の例を示す図である。
【図５】動き検出部のデータパスを示す図である。
【図６】復号後のピクチャを示す図である。
【図７】符号化装置の構成の第２の例を示す図である。
【図８】規格違反ＭＢ位置とスキップＭＢになるＭＢとの第２の例を示す図である。
【図９】規格違反になるマクロブロックを説明する図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本発明の実施形態を説明する。
（第１の実施形態）
本発明の第１の実施形態を説明する。
図１は、符号化装置の全体の構成の一例を示す図である。符号化装置１００は、符号化部１０１、二値化部１０２、バッファ１０３、二値算術符号化部１０４、多重化部１０５、符号量制御部１０６、ＲＯＭ１０７、スイッチ１０８、符号量監視部１０９、制御部１１０、及びスイッチ１１１を備えて構成される。本実施形態では、Ｈ．２６４の符号化方式を採用した場合を例に挙げて符号化装置１００の説明を行う。また、本実施形態の符号化装置１００は、例えば、撮像装置等に適用される。
【００１２】
符号化部１０１は、画像を入力してから、Ｈ．２６４におけるエントロピー符号化までの前処理を行う。符号化部１０１からは、動きベクトル、直交変換係数、量子化パラメータ、予測モード等が出力され、これらが二値化部１０２に入力される。
【００１３】
図２は、符号化部１０１の詳細な構成の一例を示す図である。
符号化部１０１は、イントラ予測部２０１、加算器２０２、スイッチ２０３、直交変換部２０４、量子化部２０５を備える。さらに符号化部１０１は、動き補償予測に係る、逆量子化部２０６、逆直交変換部２０７、加算器２０８、デブロッキングフィルタ２０９、フレームメモリ２１０、動き検出部２１１、及び動き補償部２１２を備える。本実施形態では、符号化部１０１は、入力画像データの領域を、１６画素×１６画素で構成される符号化対象ブロック（以後、マクロブロックと称す）に分割して処理を行うものとする。尚、以下の説明では、「マクロブロック」を必要に応じて「ＭＢ」と称する。
【００１４】
イントラ予測部２０１は、同一のフレーム内の画像データのみを用いて予測画像データを生成する。イントラ予測部２０１は、生成した予測画像データと、入力画像データとの差分画像データを生成し、スイッチ２０３に出力する。
加算器２０２は、入力画像データから、後述する動き補償部２１２で生成された予測画像データを差し引き、差分画像データを生成する。加算器２０２は、生成した差分画像データを、スイッチ２０３に出力する。
【００１５】
スイッチ２０３は、イントラ予測が行われる場合には、イントラ予測部２０１からの差分画像データを選択する。一方、インター予測が行われる場合には、スイッチ２０３は、加算器２０２からの差分画像データを選択する。スイッチ２０３は、選択した差分画像データを直交変換部２０４に出力する。
直交変換部２０４は、スイッチ２０３から出力された差分画像データに対して直交変換処理を行う。量子化部２０５は、直交変換処理により得られた直交変換係数に対して、符号量制御部１０６から入力する量子化パラメータを用いて量子化処理を行う。以上のように入力画像データに基づいて得られる直交変換係数に対いて量子化処理を行うことで入力画像データのデータ量の削減が行われる。
【００１６】
ここで、量子化とは、直交変換係数の振幅を、ある代表値で表現することである。量子化を行うことにより代表値が少なくなり、符号量を少なくすることができる。ところが、量子化を粗く行うと元の直交変換係数の再現性が低くなり、再現される画像の画質が劣化する。また、量子化を細かく行うと、画質劣化は少なくなるが符号量が多くなる。このような量子化の度合いを設定する量子化パラメータを制御することによって、ストリームの符号量の調整が行われる。
【００１７】
量子化された画像データは、逆量子化部２０６に入力されて逆量子化処理され、さらに逆直交変換部２０７で逆直交変換処理される。これにより、差分画像データが復元され、加算器２０８に出力される。
デブロッキングフィルタ２０９は、差分画像データに対して、ブロック歪みを除去するデブロッキング処理を施し、フレームメモリ２１０に出力する。ただし、イントラ予測が行われる場合、デブロッキングフィルタ２０９は、デブロッキング処理を施さずに差分画像データをフレームメモリ２１０に出力する。
【００１８】
動き検出部２１１は、入力画像データと、フレームメモリ２１０から読み出した参照画像データ（差分画像データ）とを用いて動きベクトルを検出する。検出された動きベクトルは、動き補償部２１２に出力される。また、動きベクトルは不図示の経路を介して二値化部１０２にも出力され算術符号化の対象となる。
動き補償部２１２は、動き検出部２１１から入力した動きベクトルと、フレームメモリ２１０から読み出した参照画像データ（差分画像データ）とを用いてインター予測で使用する予測画像データを生成する。動き補償部２１２で生成された予測画像データは、加算器２０２に出力され、加算器２０２において差分画像データが生成される。
本実施形態では、このような動作を行うことで、入力した画像データを符号化し、エントロピー符号化の前処理を行う。
【００１９】
図１の説明に戻り、二値化部１０２は、ＣＡＢＡＣ方式の前段処理を行う。符号化部１０１より入力された動きベクトル、直交変換係数、量子化パラメータ、及び予測モード等を、規格で定められたテーブルに基づき二値データに変換する。二値化部１０２は、変換した二値データを後段のバッファ１０３に出力する。尚、二値化部１０２は、符号化部１０１と同期してパイプライン処理が可能である。
【００２０】
バッファ１０３は、二値化部１０２が出力した二値データを蓄積するバッファである。二値算術符号化部１０４は、そのアルゴリズムの性質上処理時間がかかるため、符号化部１０１及び二値化部１０２と同期して処理できない。そのためバッファ１０３では、二値データを蓄積し、後段の二値算術符号化部１０４が処理可能になり次第、二値データを出力する。
二値算術符号化部１０４は、ＣＡＢＡＣ方式の後段処理を行う。二値化部１０２が生成した二値データ又はＲＯＭ１０７に記憶された二値データを入力として、算術符号化処理を行う。この算術符号化処理で生成される符号がストリームとなる。二値算術符号化部１０４は、生成した符号化データを多重化部１０５に出力する。
【００２１】
多重化部１０５は、制御部１１０等で生成されるヘッダ情報、二値算術符号化部１０４で生成される符号化データ、及び音声データ等を多重化し最終的なストリームを生成する。多重化されたストリームは、符号化装置１００の内外の不図示の記録媒体に記録される。
符号量制御部１０６は、符号量を制御する。二値算術符号化部１０４の符号量を入力とし、入力した符号量と目標符号量と比較し、適切な符号量になるように量子化パラメータを決定し、符号化部１０１内の量子化部２０５に出力する。
【００２２】
ＲＯＭ１０７には、ＭＢがスキップマクロブロック（スキップＭＢ）である時（直交変換係数の値がゼロである時）の二値データが１ＭＢ分記録される。またＲＯＭ１０７には、ピクチャ内の全てのＭＢがスキップＭＢで構成されるピクチャの二値算術符号化の結果である符号化データも記録される。
スキップＭＢとは、符号量が最も少なくなるＭＢタイプであり、復号後の画像は、参照画像と同じになるＭＢのことである。
スイッチ１０８は、後述する符号量監視部１０９の制御に従い、バッファ１０３及びＲＯＭ１０７の何れかの二値データを二値算術符号化部１０４に出力する。
【００２３】
符号量監視部１０９は、二値算術符号化部１０４における符号量を入力し、規格違反となる符号量が発生しているか否かを１つのマクロブロック単位で検出している。二値算術符号化部１０４で規格違反となる所定の符号量以上の符号が発生した場合、符号量監視部１０９は、スイッチ１０８に対してＲＯＭ１０７の二値データが二値算術符号化部１０４に入力されるように制御を行う。この制御により規格違反となる符号量を含むＭＢは、スキップＭＢに変換されることになる。以下の説明では、「規格違反となる符号量を含むＭＢ」を必要に応じて「規格違反ＭＢ」と称する。
【００２４】
符号量監視部１０９は、規格違反ＭＢ以降のＭＢについては、符号化対象のピクチャの符号化処理が終了するまで全てＲＯＭ１０７に記憶されている二値データを二値算術符号化部１０４に出力させるように制御を行う。また、符号量監視部１０９は、規格違反ＭＢが発生したことと、規格違反ＭＢの位置とを後述する制御部１１０に通知する。
【００２５】
スイッチ１１１は、二値算術符号化部１０４が出力する符号化データと、ＲＯＭ１０７に記憶されている符号化データであって、ピクチャ内の全てのＭＢがスキップＭＢで構成されるピクチャの符号化データと、の何れかを選択して多重化部１０５に出力する。符号化データの選択方法の一例については後述する。
【００２６】
制御部１１０は、符号化装置１００全体を制御する。符号化部１０１、二値化部１０２、二値算術符号化部１０４、多重化部１０５、及び符号量制御部１０６に対して、初期設定、割り込み制御、動作の開始制御等を行う。制御部１１０は、符号化部１０１の内部の動き検出部２１１及び動き補償部２１２に対しては、参照するピクチャを設定する。
【００２７】
次に、図３のフローチャートを参照しながら、二値算術符号化処理の一例を説明する。
ステップＳ３０１は、二値算術符号化部１０４が１ＭＢの算術符号化処理を行うステップである。
【００２８】
ステップＳ３０２は、符号量監視部１０９が、ステップＳ３０１で生じた符号量を監視し、当該符号量が、規格違反となる符号量（閾値）以上であるか否かを判定するステップである。この判定の結果、ステップＳ３０１で生じた符号量が、規格違反となる符号量以上の符号量である場合には、ステップＳ３０３に進む。一方、ステップＳ３０１で生じた符号量が、規格違反となる符号量未満の符号量である場合は、ステップＳ３０６に進む。
ステップＳ３０３は、二値算術符号化部１０４が、入力した二値データをスキップＭＢの二値データに置き換えるステップである。
【００２９】
ステップＳ３０４は、二値算術符号化部１０４が、ステップＳ３０３で置き換えられた二値データを用いて１ＭＢの二値算術符号化処理を行うステップである。
ステップＳ３０５は、二値算術符号化部１０４が、二値算術符号化処理を行ったＭＢがピクチャの最後のＭＢであるか否かを判定するステップである。この判定の結果、二値算術符号化処理を行ったＭＢがピクチャの最後のＭＢではない場合には、ステップＳ３０３に進む。一方、二値算術符号化処理を行ったＭＢがピクチャ最後のＭＢである場合には、図３のフローチャートによる処理（当該ピクチャの二値算術符号化処理）を終える。
【００３０】
ステップＳ３０６は、二値算術符号化部１０４が、二値算術符号化処理を行ったＭＢがピクチャの最後のＭＢであるか否かの判定するステップである。この判定の結果、二値算術符号化処理を行ったＭＢがピクチャの最後のＭＢではない場合には、ステップＳ３０１に進む。一方、二値算術符号化処理を行ったＭＢがピクチャの最後のＭＢである場合には、図３のフローチャートによる処理（当該ピクチャの二値算術符号化処理）を終える。
【００３１】
以上のように本実施形態では、二値算術符号化部１０４における二値算術符号化処理の際に規格違反ＭＢが発生した場合、符号量監視部１０９がそのことを検知し、ＭＢがスキップＭＢである時の二値データをＲＯＭ１０７から読み出す。そして、ＭＢがスキップＭＢである時の二値データを、スイッチ１０８を介して二値算術符号化部１０４に出力する。規格違反ＭＢの符号は多重化部１０５で破棄される。その代わりに、多重化部１０５は、ＲＯＭ１０７に記憶されているスキップＭＢの二値データを二値算術符号化した符号化データを多重化する。
また、二値算術符号化部１０４は、同一のピクチャ内において、規格違反ＭＢ以降のＭＢについては全てＲＯＭ１０７の二値データを用いて二値算術符号化を行う。
【００３２】
次に、図４を用いて、ピクチャと規格違反ＭＢの位置について説明する。図４は、規格違反ＭＢの位置とスキップＭＢになるＭＢとの関係の一例を示す図である。
ピクチャ４０１は、規格違反ＭＢが発生したピクチャである。ＭＢ４０２は規格違反ＭＢである。ラスター順でＭＢ４０２以降のＭＢ群４０３が全てスキップＭＢである。
このように規格違反ＭＢとそれ以降のＭＢとをスキップＭＢに変換すれば規格違反のストリームは生じない。
【００３３】
次に、図９における規格違反ＭＢが発生したピクチャＰ３を、今後の符号化処理で参照するピクチャＰ６、Ｂ７、Ｂ８に対する処理の一例を、図１及び図９を用いて説明する。ピクチャＰ３に規格違反ＭＢが存在しなければ、ピクチャＰ３のローカルデコード画像を参照画像データとして、ピクチャＰ６、Ｂ７、Ｂ８についてのインター予測が行われる。
【００３４】
図１における制御部１１０は、規格違反ＭＢが発生したピクチャに対応する参照ピクチャを符号化部１０１内のフレームメモリ２１０から消去しないように制御する。
規格違反ＭＢを含むピクチャを参照する場合、制御部１１０は、規格違反ＭＢが発生したピクチャと、消去しないようにしたピクチャと、のいずれかを切り替えて動き検出部２１１の参照画像データになるように制御する。図９を用いて説明すると、制御部１１０は、規格違反ＭＢが発生したピクチャＰ３に対応する参照ピクチャであるピクチャＩ０をフレームメモリ２１０から消去しないように制御する。ピクチャＰ６、Ｂ７、Ｂ８が符号化対象ピクチャである場合、制御部１１０は、動き検出部２１１の参照画像データを規格違反ＭＢが発生したピクチャＰ３と、フレームメモリ２１０から消去しないようにしたピクチャＩ０との何れかになるように制御する。
【００３５】
次に、図５及び図９を用いて、参照画像データを切り替える際の制御部１１０の動作の一例を説明する。
図５は、符号化部１０１に含まれる動き検出部２１１のデータパスであって、参照画像データを入力するデータパスの一例を示す図である。
選択部５０１は、制御部１１０から入力された規格違反ＭＢの位置を入力し、当該規格違反ＭＢの位置に応じて出力を切り替える。以下の説明では、「規格違反ＭＢの位置」を必要に応じて「規格違反ＭＢ位置」と称する。選択部５０１は、参照画像データのＭＢの位置が、規格違反ＭＢ位置になるまでは、規格違反ＭＢを含むピクチャＰ３のローカルデコード画像のデータを参照画像データとして選択する。そして、規格違反ＭＢ位置以降のＭＢ位置では、選択部５０１は、消去しないようにしたピクチャＩ０のローカルデコード画像のデータを参照画像データとして選択する。
【００３６】
図４を用いて、参照するＭＢの位置を説明する。規格違反ＭＢが存在する場合、新たに入力したピクチャＰ６、Ｂ７、Ｂ８が既に入力されているピクチャＰ３を参照する際は、ラスター順で規格違反ＭＢ４０２より以前のＭＢのみをピクチャＰ３から参照する。一方、ＭＢ４０２及びラスター順でそれ以降のＭＢ群４０３を含む領域を参照する際は、参照画像として、既に入力されているピクチャＰ３に対応する参照ピクチャであるピクチャＩ０のローカルデコード画像を用いる。
【００３７】
続いて、図１及び図９を用いて、規格違反ＭＢが発生したピクチャを参照し、且つ、規格違反ＭＢが発生した時に既に二値化処理まで終了しているピクチャについて説明する。
図９（ｂ）に示すように、ピクチャＰ３を参照して二値算術符号化処理以前の符号化を行っているピクチャＢ４及びＢ５については、全てのＭＢをスキップＭＢにする。これは、ピクチャＰ３の二値算術符号化処理においてピクチャＰ３のＭＢの少なくとも一部はスキップＭＢに変換されているため、ストリームに存在しないＭＢを含むピクチャＰ３を参照画像として用いて符号化した結果は使用できないからである。
ピクチャの参照関係を把握している制御部１１０は、ピクチャＢ４、Ｂ５の二値算術符号化処理を行う際に、スイッチ１１１に対して、ＲＯＭ１０７を選択させる。これにより、ピクチャの全てのＭＢがスキップＭＢになる符号化データが選択される。このように制御することで、ピクチャＢ４及びＢ５の画像は全てスキップＭＢとなる。
【００３８】
次に、図４及び図９を用いて、前述した処理の具体的な効果の一例を説明する。
復号器がピクチャＰ３を復号した場合、ＭＢ４０２及びＭＢ群４０３はスキップＭＢである。したがって、ピクチャＰ３のＭＢ４０２及びＭＢ群４０３は、ピクチャＰ３の符号化処理で参照されるピクチャＩ０のローカルデコード画像と同じ画像となる。
符号化中のローカルデコード画像と、復号器が復号した画像とに不一致があるとこれらの画像に差分が生じ、画質劣化につながる。しかしながら前述したように、規格違反ＭＢを含むピクチャＰ３を参照するピクチャＰ６、Ｂ７、Ｂ８の符号化時には、その参照先を切替えることによって、復号器が復号した画像と符号化中のローカルデコード画像との不一致が起こることがなく画質が保たれる。
【００３９】
また、従来の技術ではラスター順でＭＢ４０２までの領域もスキップＭＢになっていた。そのため、当該領域を参照すると、結果的にピクチャＩ０を参照していることと同じであった。しかし、本実施形態では、当該領域はスキップＭＢにしていないので、ピクチャＩ０よりも表示順で時間距離的に近いピクチャＰ３の画像を参照することができるので画質の低減を防止できる。
【００４０】
次に、図６を用いて、前述した処理を行った際の復号後のピクチャについて説明する。図６は、復号後のピクチャを時間軸で示している。
図６において、Ｂ１、Ｂ２等の表記は、各復号後のピクチャタイプを示す。ピクチャＰ３で規格違反ＭＢとなる符号量が発生した場合、従来技術においては、ピクチャ６０１、６０２及び６０３は全てスキップＭＢで構成されるため、ピクチャＰ３の復号後の画像はピクチャＩ０の復号後の画像と等しくなる。
【００４１】
これに対して本実施形態の場合においては、ピクチャ６０７及び６０８の復号後の画像は、ピクチャＩ０の復号後の画像と等しくなる。しかしピクチャ６０９は、規格違反ＭＢまでは、スキップＭＢにしないので、図６に示すように三角形の画像が復号される。ただし、規格違反ＭＢの位置が当該三角形の画像の位置よりもラスター順で後であることが条件になる。
従来技術では、ピクチャ６０４、６０５、及び６０６の符号化処理では、ピクチャ６０３を参照するため、結果的にはピクチャＩ０を参照することになる。一方、本実施形態では、ピクチャ６１０、６１１、及び６１２は、ピクチャ７０９を参照しており、規格違反ＭＢ位置までの画像を参照できる。すなわち、ピクチャＩ０には存在しないピクチャ内の三角形を参照することができるため、動き検出部２１１及び動き補償部２１２が生成する差分画像データの情報量を削減できる。
【００４２】
以上のように本実施形態においては、二値算術符号化の際に、規格違反ＭＢが生じたピクチャについて、ラスター順で規格違反ＭＢになるまでは、当該ピクチャに対する二値データに対して算術符号化処理を行った符号化データを採用する。そして、ラスター順で規格違反ＭＢ以降では、スキップＭＢの二値データに対して算術符号化処理を行った符号化データを採用する。したがって、規格違反ＭＢが生じたピクチャも規格違反ＭＢ位置までは、参照ピクチャとして利用することができ、且つ、規格違反ＭＢの回避と、差し替え処理後の画質の劣化の範囲を低減することができる。
尚、本実施形態では、規格違反となる符号量が発生しているか否かを１つのマクロブロック単位で検出した。しかしながら、規格違反となる符号量が発生しているか否かを、ピクチャに含まれるマクロブロックの総数未満の複数のマクロブロック単位で検出してもよい。
【００４３】
（第２の実施形態）
次に、本発明の第２の実施形態を説明する。前述した第１の実施形態では、規格違反ＭＢが生じたピクチャでは、規格違反ＭＢになるまでのＭＢを、当該ピクチャに対して算術符号化処理を行った符号化データを一律に採用した。一方、本実施形態では、規格違反ＭＢ位置に応じて、先頭のＭＢから規格違反ＭＢになるまでのＭＢに対し、当該ピクチャに対して算術符号化を行った符号化データと、スキップＭＢの二値データに対して算術符号化を行った符号化データとの何れかを選択する。このように本実施形態は、第１の実施形態とは、スキップＭＢを採用する範囲が主として異なる。したがって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜６、図９に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００４４】
図７は、符号化装置の全体の構成の一例を示す図である。
本実施形態の符号化装置７００は、第１の実施形態の符号化装置１００に対し、ＭＢカウンタ７０１が追加され、且つ、二値算術符号化部７０２及び制御部７０３の機能の一部が二値算術符号化部１０４及び制御部１１０と異なる。本実施形態の符号化装置７００と第１の実施形態の符号化装置１００のその他の構成は同じである。
【００４５】
二値算術符号化部７０２は、算術符号化処理の内部信号をＭＢカウンタ７０１に出力する。内部信号とは、ＭＢの終了を検出することが可能な信号である。Ｈ．２６４方式では、end＿of＿slice＿flagというSyntax Elementが存在し、当該Syntax Elementを監視すればＭＢの終了を検知できる。以下の説明では、この「内部信号」を必要に応じて「ＭＢ終了信号」と称する。
【００４６】
ＭＢカウンタ７０１は、二値算術符号化部７０２からのＭＢ終了信号を入力し、先頭のＭＢからのＭＢ数をカウントする。また、ＭＢカウンタ７０１は、現在符号化中のピクチャの総ＭＢ数を把握している。当該総ＭＢ数は、符号化処理の開始時に制御部７０３から与えられる。ＭＢカウンタ７０１は、現在符号化中のＭＢが閾値以下である場合、制御部７１３に対して、現在符号化中のＭＢが閾値以下であることを通知する。当該閾値の詳細については後述する。
【００４７】
制御部７０３は、前記閾値以下のＭＢ位置において、符号量監視部１０９から、規格違反となる符号量が発生した通知を受け取った場合、現在符号化中のピクチャの全てのＭＢがスキップＭＢになるようにスイッチ１１１を制御する。具体的に制御部７０３は、ＲＯＭ１０７に記憶されている符号化データであって、ピクチャ内の全てのＭＢがスキップＭＢで構成されるピクチャの符号化データが選択されるようにスイッチ１１１の動作を制御する。
【００４８】
前述した動作を、図８に示すピクチャとＭＢの位置関係と、図９に示すピクチャの参照関係とを用いて説明する。
ピクチャ８０１は、規格違反ＭＢが発生したピクチャである。ＭＢ８０２は、規格違反ＭＢである。ＭＢ群８０３は、ラスター順でＭＢ８０２以降のＭＢ群である。ＭＢ８０４は閾値ＭＢである。
【００４９】
閾値ＭＢ８０４は、ピクチャのラスター順で前半部に設定されるが自由に設定可能である。規格違反ＭＢ８０２が閾値ＭＢ８０４の位置よりもラスター順で前である場合、ピクチャ８０１内の全てのＭＢをスキップＭＢにする。閾値ＭＢ８０４の位置よりもラスター順で前である場合、ＭＢ群８０３の領域は、最初のＭＢから規格違反ＭＢ８０２までの領域と比較してピクチャの大半の領域を占める。このような場合は、ピクチャ８０１内の全てのＭＢをスキップＭＢとする。すなわち、ピクチャ８０１が図９のピクチャＰ３である場合、ピクチャ８０１を復号器で復号すると、図９のピクチャＩ０と同じ復号画像となる。よって、ピクチャＰ３を参照するピクチャＢ７、Ｂ８、Ｐ６の符号化時には、参照画像として、ピクチャＩ０のローカルデコード画像が用いられる。
【００５０】
以上のように本実施形態においては、規格違反ＭＢが生じたピクチャにおいて参照ピクチャとして利用できる領域が少ないと判断される場合には、全てのＭＢをスキップＭＢとした。したがって、第１の実施形態で説明した効果に加えて、符号化の処理速度を上げることができると共に、規格違反となる符号量を有するＭＢが発生する位置に応じて適応的に処理を変えることができるという効果が得られる。
【００５１】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００５２】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が当該コンピュータプログラムを読み出して実行する。
【符号の説明】
【００５３】
１００、７００：符号化装置、１０４、７０２：二値算術符号化部、スイッチ：１０８、１１１、１０９：符号量監視部、制御部：１１０、７０３
【図１】
2014216712.tif 000003
【図２】
2014216712.tif 000004
【図３】
2014216712.tif 000005
【図４】
2014216712.tif 000006
【図５】
2014216712.tif 000007
【図６】
2014216712.tif 000008
【図７】
2014216712.tif 000009
【図８】
2014216712.tif 000010
【図９】
2014216712.tif 000011