(57)【特許請求の範囲】
【請求項１】
インタ符号化又はイントラ符号化、フレーム符号化又はフィールド符号化の符号化モードを用いる複数の符号化タイプの中からマクロブロック毎に選ばれた符号化が各ピクチャマクロブロックに適用されるMPEG2タイプの画像圧縮方法であって、
上記マクロブロックに適用されるべき符号化を選択するため、MB_activがマクロブロックのアクティビティであり、Qが所定の量子化間隔を表わし、αが所定の係数であるときに、以下のパラメータ、すなわち、
MB_activ−αQ
が決定され、選択される符号化モードは上記パラメータ
MB_activ−αQ
の最小値に対応することを特徴とする画像圧縮方法。
【請求項２】
上記マクロブロックのアクティビティは、x(i,j)が各マクロブロック内のi行j列のポイントのルミナンスを表わす場合に、以下の式、すなわち、
【数１】
0004806483.tif 000008
によって定義されることを特徴とする請求項１記載の画像圧縮方法。
【請求項３】
上記αの値は、インタモードとイントラモードとで異なることを特徴とする請求項１記載の画像圧縮方法。
【請求項４】
上記係数αの値は１であることを特徴とする請求項１記載の画像圧縮方法。
【請求項５】
上記係数αの値は離散コサイン変換係数を量子化する処理で使用される加重マトリックスの内容に依存させられることを特徴とする請求項１記載の画像圧縮方法。
【請求項６】
イントラ（又はインタ）符号化モードでα＝１であり、
インタ（又はイントラ）符号化モードで使用される加重マトリックスは、イントラ（又はインタ）符号化モードよりも小さい重み付けを実施し、インタ（又はイントラ）符号化モードで使用される係数αは１よりも小さくされることを特徴とする請求項５記載の画像圧縮方法。
【請求項７】
各ブロックに対し、イントラ符号化モードにおいて、パラメータblock_activ−α.Qが所与の閾値よりも低下したとき、所定の値がこのパラメータblock_activ−α.Qに与えられることを特徴とする請求項２乃至６のうちいずれか一項記載の画像圧縮方法。
【請求項８】
上記所定の値はイントラ符号化マクロブロックの最小コストの４分の１に対応することを特徴とする請求項７記載の画像圧縮方法。
【請求項９】
上記符号化モードは、符号化に関連したヘッダHdr_MBを符号化するコストに依存して選択されることを特徴とする請求項１又は２記載の画像圧縮方法。
【請求項１０】
上記ヘッダを符号化するコストはインタ符号化モードに対する符号化ブロックパラメータCBPが考慮されていないことを特徴とする請求項９記載の画像圧縮方法。
【請求項１１】
上記符号化ブロックパラメータCBPは符号化されるべきピクチャの標準に依存した所定の値によって置き換えられることを特徴とする請求項１０記載の画像圧縮方法。
【請求項１２】
複数の符号化モードの中から選択された符号化モードは、次の式で表わされるパラメータval、すなわち、
Val = (MB_activ−α.Q).MBdfd/MBdfdmin＋Hdr_MB
が最小値になる符号化モードであり、式中、MB_activはマクロブロックのアクティビティを表わし、Qは量子化間隔を表わし、αは一定係数を表わし、Hdr_MBは符号化モードに関連したヘッダを符号化するコストを表わし、MBdfdはマクロブロックのエネルギーパラメータを表わすとき、上記エネルギーパラメータMBdfdはインタ符号化の場合に以下の値、すなわち、
【数２】
0004806483.tif 000009
をとり、式中、i及びjは各ポイントの行番号及び列番号を表わし、e(i,j)は対応したポイントに対するルミナンス予測誤差を表わし、上記エネルギーパラメータMBdfdはイントラ符号化の場合に以下の値、すなわち、
【数３】
0004806483.tif 000010
をとり、式中、x(i,j)は各ブロックのi行j列におけるポイントのルミナンスを表わし、bl.avr.lumは各ブロックに関するルミナンスの平均値を表わすことを特徴とする請求項９記載の画像圧縮方法。
【請求項１３】
上記パラメータMBdfdはイントラ符号化モードの場合にインタ符号化モードよりも大きい係数が割り当てられることを特徴とする請求項１２記載の画像圧縮方法。
【請求項１４】
上記パラメータMBdfdに割り当てられた値は、イントラ符号化モードの場合に、符号化されるべきピクチャがＰピクチャであるか、或いは、Ｂピクチャであるかに依存することを特徴とする請求項１３記載の画像圧縮方法。
【請求項１５】
値MB_activは、量MB_activ−α.Qが所定の閾値よりも降下したとき、デフォルト値として上記量MB_activ−α.Qに割り当てられることを特徴とする請求項９乃至１４のうちいずれか一項記載の画像圧縮方法。
【請求項１６】
上記デフォルト値はイントラ符号化マクロブロックを符号化する最小コストの４分の１に対応することを特徴とする請求項１５記載の画像圧縮方法。
【請求項１７】
ピクチャ離散コサイン変換DCT符号化モード又はフレーム離散コサイン変換DCT符号化モードが上記マクロブロックのアクティビティの関数として選択され、選択された離散コサイン変換DCT符号化モードは上記マクロブロックのアクティビティが小さい方の符号化モードに対応し、
上記マクロブロックのアクティビティが一致する場合に、フレームエネルギーパラメータとピクチャエネルギーパラメータが比較され、小さい方のエネルギーパラメータMBdfdに対応した符号化モードが選択されることを特徴とする請求項９乃至１６のうちいずれか一項記載の画像圧縮方法。
【請求項１８】
ピクチャ離散コサイン変換DCT符号化モードは上記パラメータMBdfdが一致する場合に選択されることを特徴とする請求項１７記載の画像圧縮方法。
【請求項１９】
上記値valは、スキップマクロブロックを符号化すべき確率が高い場合に、すなわち、Ｐタイプのピクチャに対し、補償無しの符号化モードにあるか、若しくは、Ｂタイプのピクチャに対し、動きベクトルが最後に符号化されたマクロブロックによって使用された動きベクトルと一致する場合に、所定の値によって下限が定められることを特徴とする請求項１２記載の画像圧縮方法。
【請求項２０】
MB_src(i,j)がマクロブロックMB内の画素(i,j)のルミナンスに対応するとき、項Hdr_MBは、マクロブロックの平均アクティビティ、すなわち、
【数４】
0004806483.tif 000011
と、マクロブロックの平均値、すなわち、
【数５】
0004806483.tif 000012
とが所定の閾値に満たない場合に、双方向予測モードを優先するよう値valに関する式に従って重み付けされることを特徴とする請求項１２記載の画像圧縮方法。
【請求項２１】
重み付けは、上記マクロブロックの平均値に比例し、該マクロブロックの平均アクティビティに反比例することを特徴とする請求項２０記載の画像圧縮方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各ピクチャ又はピクチャマクロブロックに対し数種類の符号化方式の中から選択された符号化が行なわれる画像圧縮方法に関する。
【０００２】
本発明は、特に、MPEG圧縮方法に関する。本発明は、MPEGタイプの圧縮方法に限定されないが、以下の説明では、主としてMPEGタイプを取り扱う。
【０００３】
【従来の技術】
最初に、MPEGタイプの圧縮方法の原理と、各マクロブロックに対し選択されるべき符号化タイプについて説明する。
【０００４】
MPEG2標準の場合に、順次走査モードで各行に７２０点ずつで５７６行を含むピクチャから始めることができる。インタレースモードでは、ピクチャーは、各行に７２０点ずつの２８８行を有する２枚のフレームにより構成される。
【０００５】
各ピクチャはマクロブロックに分割され、各マクロブロックは１６×１６個のルミナンス点の矩形により形成される。４．２．０フォーマットでは、４個のルミナンス点毎に、2個のクロミナンスブロックが関連付けられ、クロミナンスブロックは８×８個の点を含み、一方のブロックは色差信号若しくは赤クロミナンス信号Crを表わし、もう一方のブロックは色差信号若しくは青クロミナンス信号Cbを表わす。４．２．２フォーマットの場合、各ルミナンスブロックには、８×８形の４個のマクロブロック、すなわち、青クロミナンス用の２ブロック及び赤クロミナンス用の２ブロックが関連付けられる。また、４．４．４フォーマットの場合、ルミナンス成分及びクロミナンス成分はそれぞれ８×８形の４ブロックにより構成される。
【０００６】
図１には、４個の８×８形ルミナンスブロック１０と、青クロミナンス用の８×８形クロミナンスブロック１２と、赤クロミナンス用の８×８形クロミナンスブロック１４とが示され、この組は４．２．０標準形式のマクロブロックを表わす。
【０００７】
各ブロックは、離散コサイン変換DCTを用いて符号化される。離散コサイン変換はルミナンスブロック若しくはクロミナンスブロックを空間周波数を表わす係数ブロックに変換することができる。図２からわかるように、ソースブロック１６は８×８個の係数のブロック１８に変換される。ブロック１８の左上隅はゼロ空間周波数（ブロックの平均ルミナンス値）に対応し、この原点２０から、水平周波数は矢印２２で示されるように右方向に増加し、垂直周波数は矢印２４で示されるように上から下に向かって増加する。
【０００８】
各マクロブロック毎に、イントラ（フレーム内）若しくはインタ（フレーム間）の符号化タイプを選択することが必要である。イントラ符号化はDCT変換をピクチャーのソースブロックに適用し、インタ符号化はDCT変換を、ソースブロックと、先行ピクチャ若しくは後続ピクチャの予測ブロックとの差を表現するブロックに適用する。
【０００９】
いずれを選択するかは、マクロブロックが属するピクチャのタイプに依存する。ピクチャには３通りのタイプがあり、第１のタイプは、いわゆるＩタイプすなわちイントラタイプであり、符号化は全てのマクロブロックに対し、イントラ（内部的）である。
【００１０】
第２のタイプは、Ｐタイプすなわち予測タイプであり、Ｐタイプのピクチャの場合、各マクロブロックの符号化はイントラ若しくはインタである。Ｐタイプのピクチャのマクロブロックをイントラ符号化する場合、DCT変換が、ピクチャＰの現在マクロブロックと、先行Ｉ若しくはＰピクチャから得られた予測マクロブロックとの差に適用される。
【００１１】
第３のタイプは、Ｂタイプすなわち双方向タイプである。このピクチャタイプの各マクロブロックはイントラ符号化若しくはインタ符号化である。インタ符号化は、このＢピクチャの現在マクロブロックと予測マクロブロックとの差に変換を適用する。予測マクロブロックは、先行ピクチャ若しくは後続ピクチャから、又は、同時に両方（双方向予測）から獲得され、いわゆる先行若しくは後続予測ピクチャはＩタイプ若しくはＰタイプだけが許される。
【００１２】
図３には、いわゆるGOP（グループ・オブ・ピクチャ）と呼ばれるグループを編成するピクチャの組が示されている。このピクチャの組は、１枚のＩピクチャと、それに続く１１枚のＢピクチャ及びＰピクチャの系列：Ｂ，Ｂ，Ｐ，Ｂ，Ｂ，Ｐ，Ｂ，Ｂ，Ｐ，Ｂ，Ｂにより構成された１２枚のピクチャを含む。
【００１３】
予測画像の場合（すなわち、他のピクチャから推定された画像の場合）、動き推定と、その後に続いて動き補償が、符号化されるべきマクロブロックに適用される。その理由は、２枚のピクチャの間で、マクロブロックは、ピクチャ間移動及びピクチャ内移動のため異なる場所に存在するからである。動き補償の効果は、所定の補間モード（一般的に予測モードと称される）に従って予測マクロブロックを計算することであり、このマクロブロックは、所与の符号化モードの現在マクロブロックに対する予測として実際に作用する。以下、この予測マクロブロックと、同じように符号化モードは、符号化モードを選択する計算の手続内のいて行なわれる判定に依存して維持され、若しくは、拒絶される。
【００１４】
また、各ピクチャが奇数フレームと偶数フレームの２枚の連続したフレームにより構成されるインタレースモードの場合に、DCT変換を順番に適用するか、若しくは、各フレーム毎に個別に適用するのかを決める必要がある。なぜならば、ピクチャの動き又はピクチャの構造に依存して、符号化の結果は、変換がピクチャに関して行なわれるか、フレーム毎に行なわれるかに応じて異なるからである。
【００１５】
この選択は、図４の（ａ）及び（ｂ）に示される。図４の（ａ）には、奇数フレームの行３０1，３０3、．．．、３０15と偶数フレームの行３０2、３０4、．．．、３０16とにより構成されたインタレース型ピクチャのマクロブロック２８が示されている。図４の（ａ）は、ピクチャに関して行なわれるDCT変換に対応し、マクロブロック２９の中の４個の各ブロックは、行を並べ替えること無く変換される。かくして、符号化は、マクロブロック２８を形成する４個のブロック２８1、２８2、２８3、２８4に関して行なわれ、変換はブロック２８1及び２８2に対する行３０1乃至３０8とブロック２８3及び２８4に対する行３０9乃至３０16とに関して行なわれる。
【００１６】
これに対し、図４の（ｂ）には、奇数フレームと偶数フレームに別個に行なわれる変換が示されている。ブロック３２1及び３２2は奇数フレームに対応し、ブロック３２3及び３２4は偶数フレームに対応する。したがって、ブロック３２1は、行３０1、３０3、．．．、３０15により構成され、ブロック３２3及び３２4は、行３０2、３０4、．．．、３０16により構成される。
【００１７】
図５には、画像圧縮若しくはビデオ圧縮に関して行なわれるべき種々の動作が機能的なブロック図で示されている。デジタル化された各ピクチャは、８×８形のブロックへの分割を行なうブロック化処理部４０の入力に供給され、これらの８×８形のブロックはイントラ符号化とインタ符号化の間で選択を行なう処理部４２に伝達される。イントラ符号化が選択された場合、このブロックはDCT変換処理部４４に伝達される。インタ符号化が選択された場合、ブロックは、このブロック自体と、時間予測処理部４８によって送出された予測ブロックとの差を得る減算処理部４６によって減算される。
【００１８】
DCT変換処理部４４の後、量子化処理部５０で量子化が行なわれ、かくして得られた量子化された係数は、可変長若しくは固定長の可変長符号化処理部５２で符号化される。符号化処理部５２の出力で符号化された係数は、バッファメモリ５４に送られ、このバッファメモリ５４の出力が符号化出力５６を構成する。バッファメモリ５４が一杯になること、及び、空になることを防止するため、調節処理部６０は量子化処理部５０を変更する。
【００１９】
時間予測が行なえるようにするため、量子化処理部５０の出力は、逆量子化Q-1処理部６２の入力に供給され、逆量子化処理部６２の出力は逆離散コサイン変換DCT-1処理部６４に供給される。逆離散コサイン変換処理部６４の出力は、判定処理部６８によって判定されたブロックの符号化タイプがイントラ符号化であるとき、そのまま画像メモリ６６に送られる。これに対し、判定処理部６８が符号化がインタ符号化であると判定した場合、逆離散コサイン変換処理部６４の出力は加算器７０を用いて、時間予測処理部４８によって送出された予測マクロブロックに加算され、加算器７０からの出力が画像メモリ６６に伝達される。メモリ６６は復号化された画像を保持する。
【００２０】
ピクチャ間及びピクチャ内の動きは、一方で画像メモリ６６からの情報を受信し、他方でブロック化処理部４０からの出力を受信する動き推定処理部７２によって推定される。このように、時間予測処理４８は、一方で画像メモリ６６に基づき、他方で動き推定処理部７２に基づいて行なわれることがわかる。
【００２１】
符号化若しくは２進数列の計算処理５２は、特に、動き推定処理機能部７２からの動きベクトルと、符号化されたDCT係数と、マクロブロックのヘッダと、MPEG2符号化情報処理部７４から送出されるMPEG2符号化情報とに基づく。この情報は、MPEG2シグナリングキュー、すなわち、マクロブロック（若しくはスライス）の行のヘッダと、GOPのピクチャのヘッダと、符号化されるべきシーケンスのヘッダとに関係する。
【００２２】
Ｉタイプのピクチャの場合に、符号化は、フレーム形式のイントラ符号化又はピクチャ形式のイントラ符号化の間で選択される。この選択は、マクロブロックに含まれる動きの解析に基づいて行なわれ、一般的に優れた結果を与える。
【００２３】
Ｐタイプ及びＢタイプのピクチャの場合に、判定すべき事項の数は実質的に増加する。
【００２４】
かくして、Ｐマクロブロックは、以下の８通りの基本モード
・イントラ、フレームDCT
・イントラ、ピクチャDCT
・動き補償無し(noMC)、フレームDCT
・動き補償無し(noMC)、フレームDCT
・動き補償あり、先行フレームによる予測、フレームDCT
・動き補償あり、先行フレームによる予測、ピクチャDCT
・動き補償あり、先行ピクチャによる予測、フレームDCT
・動き補償あり、先行ピクチャによる予測、ピクチャDCT
に従って符号化される。
【００２５】
Ｂタイプのピクチャの場合に、２種類のイントラ符号化モードと、Ｐタイプのピクチャに関して指定された動き補償を伴う４種類のモードと、後方予測ピクチャに基づく以下の４種類の類似した符号化モード
・後方フレームによる予測、フレームDCT
・後方フレームによる予測、ピクチャDCT
・後方ピクチャによる予測、フレームDCT
・後方ピクチャによる予測、ピクチャDCT
と、以下の４種類の双方向モード
・フレーム形式双方向予測、フレームDCT
・フレーム形式双方向予測、ピクチャDCT
・ピクチャ形式双方向予測、フレームDCT
・ピクチャ形式双方向予測、ピクチャDCT
とを含む１４通りの基本符号化モードが考えられる。
【００２６】
ＰピクチャとＢピクチャの種々のモードの間で選択を行なうために使用される規準は、性質が変化し得る結果を与えることに注意する必要がある。
【００２７】
1998年8月28日にTHOMSOM Multimediaによって出願された先行の特許出願第98-10802号には、圧縮方法が開示されている。考えられる全てのモード或いはその中の一部のモードに従ってトライアル符号化が行なわれ、トライアル符号化毎に、符号化コスト及び／又はクォリティファクタQが判定され、使用される符号化モードは、符号化コストの値及び／又はクォリティファクタの値の関数として選択される。
【００２８】
換言すると、先行の特許出願に記載された方法によれば、符号化モードはマクロブロックの内部解析の関数としては選択されず、全て（又は一部）の符号化の可能性を試行し、符号化コストを最小限に抑えるか、或いは、画質を最良にするか、符号化コストと画質の間で最良の妥協点を与える点で最良の結果が得られるモードを採用することによって選択された。
【００２９】
【発明が解決しようとする課題】
この処理は、特に、特定のコスト／クォリティ規準が選択された場合に、各マクロブロックに対し最適な結果を与える。しかし、この処理は、非常に長い計算時間を要し、この計算時間は特に携帯型装置では削減することが難しいので、符号化を実時間で実行しなければならないという観点で適用することが困難である。
【００３０】
それにもかかわらず、上記の先行の特許出願による符号化方法は、実時間で計算でき、Ｐ及びＢピクチャの場合に優れた結果を与える符号化のモードを選択させることができるパラメータを決定するため使用される。
【００３１】
【課題を解決するための手段】
本発明の第１の局面によれば、Ｐ及び／又はＢピクチャのマクロブロックを符号化するモードを決定するため、インタ符号化モードの場合にはピクチャ間エネルギーであり、イントラ符号化モードの場合にはルミナンスの平均値に対する相対エネルギーであるエネルギーパラメータを符号化モード毎に計算し、最小エネルギーパラメータを与える符号化モード、又は、上記最小エネルギーパラメータの所定の倍率ｋ倍を超えないエネルギーパラメータを符号化モードを採用する。一実施例において、倍率ｋは２．５である。
【００３２】
【発明の実施の形態】
インターマクロブロックの場合に、ピクチャ間エネルギーMBdfdは以下の値を有する。
【００３３】
【数６】
0004806483.tif 000002
上式において、e(i,j)は予測誤差を表わし、iはマクロブロック内の行番号を表わし、jはマクロブロック内の列番号を表わす。
【００３４】
イントラ符号化モードの場合に、相対エネルギーは、８×８形のブロック毎に、ブロックの画素のルミナンスx(i,j)とブロックの輝度の平均値(bl.avr.lum.)の差の絶対値の和、すなわち、次式（２）を計算することによって決定される。
【００３５】
【数７】
0004806483.tif 000003
平均値bl.avr.lumは、ピクチャ符号化モードとフレーム符号化モードの両方で決定される。
【００３６】
インタマクロブロック（マクロブロック間）の場合にパラメータMBdfdを使用することは公知の事項である。しかし、上式（２）によって定義されたパラメータMBdfdは、イントラ符号化モードでも利用できることがわかった。すなわち、符号化モードを決定するために新しいパラメータが利用される。
【００３７】
この新しいパラメータMBdfdは、フレームDCTモードかピクチャDCTモードを選択するため使用される。ピクチャDCTモードかフレームDCTモードを決定するため、マクロブロックの局部的な動き量がピクチャモード及びフレームモードで比較され、最も小さい局所的な動き量を与えるモードが選択される。本発明によれば、ピクチャの局所的な動き量とフレームの局所的な動き量が一致するときに、選択を最適化することが可能である。この場合、上述のように定義されたエネルギーパラメータMBdfdが比較され、パラメータMBdfdが小さくなる方のピクチャDCT符号化モード又はフレームDCT符号化モードが選択される。
【００３８】
最後に、ピクチャパラメータMBdfdとフレームパラメータMBdfdが一致する場合、好ましくは、ピクチャDCT符号化が実行される。
【００３９】
局所的動き量（アクティビティ）は次式の通り定義されることに注意する必要がある。
【００４０】
【数８】
0004806483.tif 000004
上式において、x(i,j)とiとjは既に説明した通りである。しかし、予測モードの場合に、MB_activは、予測誤差のあるマクロブロックについて計算される。
【００４１】
上記の特徴とは別個に使用される本発明の別の特徴によれば、Ｐピクチャ及びＢピクチャを符号化する全ての可能性のあるモードに対しパラメータ、すなわち、
パラメータ：MB_activ−α.Q
決定され、このパラメータを最小限に抑える符号化モードが選択される。
【００４２】
MB_activは、マクロブロックの局部的動き量であり、Qは量子化間隔を表わし、αは量子化マトリックスに重み付けをするパラメータに依存した係数である。一実施例において、このパラメータαは１である。
【００４３】
値α.Qを値MB_activから減算することにより得られる量（MB_activ−α.Q）は、着目しているマクロブロックの潜在的コストの推定量である。実際上、決定されたMB_activに対し、量子化間隔Qが大きいほど、量子化ルーチンで最小される係数が少なくなるので、マクロブロックのコストは小さくなる。
【００４４】
実際上、量子化ルーチンにおいて、MPEG2符号化標準は、量子化間隔Qと、一般的に、高周波係数の振幅を減少させることが可能であるDCT係数のためのいわゆる加重マトリックス（DCTのサイズに対応した８×８のサイズを有する）とを使用する。かくして、DCT係数c(i,j)は、量子化間隔Qと加重マトリックス中の対応した係数p(i,j)の値の積で振幅を割り算することにより量子化される。
【００４５】
一般的に、ピクチャ間加重マトリックスとピクチャ内加重マトリックスは同じではない。また、これらのマトリックスの内容は標準規格には指定されず、符号化器の仕様に関係して変化する。
【００４６】
αに対しては、以下のイントラ加重マトリックス及びインタ加重マトリックスの組の関係の範囲内で値１が選択される。
イントラマトリックスm_intra_1        インタマトリックスm_inter_1
08 16 16 19 16 19 22 22              16 17 17 19 18 19 20 20
22 22 22 22 26 24 26 27              20 20 22 21 22 21 22 23
27 27 26 26 26 26 27 27              23 24 23 24 23 25 25 26
27 29 29 29 34 34 34 29              25 26 24 25 26 26 27 27
29 29 27 27 29 29 32 32              28 27 27 26 28 29 29 30
34 34 37 38 37 35 35 34              29 29 28 31 31 32 31 32
35 38 38 40 40 40 48 48              30 33 34 33 34 33 36 35
46 46 56 56 58 69 69 83              36 35 38 39 38 41 40 43
他方で、マトリックスは以下のようにも構成される。
イントラマトリックスm_intra_1        インタマトリックスm_inter_2
08 16 16 19 16 19 22 22              16 16 16 16 16 16 16 16
22 22 22 22 26 24 26 27              16 16 16 16 16 16 16 16
27 27 26 26 26 26 27 27              16 16 16 16 16 16 16 16
27 29 29 29 34 34 34 29              16 16 16 16 16 16 16 16
29 29 27 27 29 29 32 32              16 16 16 16 16 16 16 16
34 34 37 38 37 35 35 34              16 16 16 16 16 16 16 16
35 38 38 40 40 40 48 48              16 16 16 16 16 16 16 16
46 46 56 56 58 69 69 83              16 16 16 16 16 16 16 16
ピクチャ間符号化モードのため使用されるパラメータαの値αとして、１未満、たとえば、0.875が選択される。その理由は、マトリックスm_inter_2がマトリックスm_inter_1よりも多数のDCT係数を許容するからである。この構成の場合には、
・ピクチャ内モードで、α＝α_intra＝１
・ピクチャ間モードで、α＝α_inter＝０．０８７５
であると考えられる。
【００４７】
一実施例において、イントラ符号化モードの場合に、あるブロックに対して、パラメータblock_activ−αQが所定のレベル未満であるならば、このパラメータblock_activ−αQは、たとえば、イントラ符号化マクロブロックの最小コストの４分の１に対応したデフォルト値が与えられる。実際上、イントラモードで符号化されたマクロブロックは、ピクチャ間モードの場合とは異なり、ゼロコストにはなり得ない。実際のブロックの最小コストは、ブロックの平均値（DC）とブロックの最後を表現するコードの符号化コストに対応する。したがって、
・４．２．０符号化構造の場合に、ブロックの最小コストの推定量は、bl_intra_420_minになる（たとえば、bl_intra_420_min＝11）。
・４．２．２符号化構造の場合に、ブロックの最小コストの推定量は、bl_intra_422_minになる（たとえば、bl_intra_422_min＝15）。
【００４８】
これらの最小値は、勿論、係数を符号化するため使用されるVLCテーブルの関数として実質的に変化し、ブロックの最後のエンド・オブ・ブロックのコードの長さも変化する。この方法の基本的な事項は、ゼロコストのイントラマクロブロックを有するとは考えられないことである。
【００４９】
本発明の好ましい実施例によれば、上記の規準の組合せが使用され、Ｐピクチャ及びＢピクチャに対し以下の方法で進められる。
【００５０】
パラメータMBdfdの最小値、すなわち、MBdfdminは、全ての起こり得る符号化モード（イントラ符号化を含む）の中から各マクロブロックに対して決定され、その最小値に対する符号化モードが選択される。
【００５１】
MBdfd＜k.MBdfdmin
但し、ｋは所定の倍率であり、本例では、２．５である。
【００５２】
DCTのタイプ（フレーム若しくはピクチャ）を決定するため、上記の処理が進められ、すなわち、局所的動き量パラメータMB_activが考慮され、ピクチャMB_activeパラメータ若しくはフレームMB_activパラメータのどちらが小さいかに依存してピクチャDCT又はフレームDCTが選択され、両方のパラメータが一致する場合には、ピクチャMBdfdパラメータとフレームMBdfdパラメータのどちらが小さいかに依存してピクチャDCT又はフレームDCTが選択される。両方のパラメータMBdfdが一致する場合に、ピクチャDCTが選択される。
【００５３】
最後に、候補とされている符号化モードの中から採用されるべき符号化モードを選択するため、以下のパラメータ、
Val = (MB_activ−α.Q).MBdfd/MBdfdmin＋Hdr＿MB      （３）
が考慮され、このパラメータValの最小値を与える符号化モードが選択される。
【００５４】
上式（３）において、Hdr_MBは、パラメータCBP（符号化ブロックパターン）以外のマクロブロックのヘッダの全てのパラメータの合計を表わす。パラメータCBPは、インタピクチャ（ピクチャ間）モードにおいてあるブロックが空である場合に、係数を含むブロックの分布を復号器に示すことができる可変長符号である。実際上、ヘッダの全てのパラメータは、パラメータCBPを除いて符号化の前に決定することができる。このパラメータはHdr_MB内では所定の値で置換してもよい。
【００５５】
４．２．０マクロブロック（４個のルミナンスブロックと２個のクロミナンスブロック）に対するCBP符号の長さは、VLC符号のテーブルに従って、３ビットから９ビットまで変化する。所定の値は、たとえば、４である。４．２．２標準（４個のルミナンスブロックと４個のクロミナンスブロック）の場合、この値は僅かに大きくなる（たとえば、６）。
【００５６】
全ての有用な目的のため、マクロブロックのヘッダに含まれるパラメータは、最後に符号化されたマクロブロックに対するマクロブロックの相対アドレスを表わすMBAアドレス符号（マクロブロックアドレス）と、符号化モードと、量子間間隔の値と、DCTのタイプ（ピクチャ又はフレーム）と、ベクトルとであることを記す。
【００５７】
この最後のポイントに関して、ベクトルのコストは、一般的にピクチャモードよりもフレームモードの方で高い点に注意する必要がある。その理由は、フレームモードでは、ピクチャモードよりも２倍多数のベクトルを準備しなければならないからである。しかし、ベクトルの符号化は伝達された最新のベクトルに関して別々に行なわれるので、フレームモードの符号化コストはピクチャモードの符号化コストよりも高い。
【００５８】
好ましくは、式（３）において、MBdfdには重み係数thdが割り当てられる。重み係数thdは、インタ符号化モードの場合には１であり、イントラ符号化モードでは１よりも大きく、Ｐピクチャ又はＢピクチャのいずれか処理されているかに依存して、経験的に決められた異なる値を示す。
【００５９】
この重み係数は、イントラモードでマクロブロックを符号化するコストがインタモードでマクロブロックを符号化するコストよりも一般的に高いという事実を示唆する。
【００６０】
MB_activ−α.Q＝０であるならば、マクロブロックは空であり、符号化されない。
【００６１】
この場合、常にパラメータvalはヘッダHdr_MBのコストに制限される。
【００６２】
また、マクロブロックが潜在的に空であり、符号化されていない（インタピクチャモードのままである）と推定される場合、マクロブロックの省略された構造（SKIPPED  MACROBLOCK）が考慮される。この構造は２通りの特別なケースに対応する。
【００６３】
（第１の場合）Ｐピクチャの場合に、マクロブロックは空であり、符号化されず、符号化モードはnoMC、すなわち、いわゆる補償無しモードである（実際にはこのベクトルはデフォルトでゼロである）。
【００６４】
（第２の場合）Ｂピクチャの場合に、マクロブロックは空であり、符号化されず、動きベクトルは先に伝達された動きベクトルと一致する。
【００６５】
省略マクロブロックの場合に、当該マクロブロックに関する情報は伝達されない。
【００６６】
かくして、パラメータvalを用いて、特に、符号化されていないマクロブロック、或いは、省略されたマクロブロックにさえ連動した空のブロックを最良識別することが試みられる。これは、先験的なアプローチという状況の範囲内で合理的なコスト／クォリティ比を実現し、すなわち、実時間でセットアップすることができる。
【００６７】
従来、イントラタイプのピクチャに対し、フレームDCT符号化とピクチャDCT符号化の間の選択しかできなかった。この目的のため、パラメータMB_activが利用され、フレームMB_activパラメータとピクチャMB_activパラメータのいずれが小さいかに依存してフレーム符号化モード又はピクチャ符号化モードが選択される。
【００６８】
経験的に、本発明の実施例とは無関係に、この画像圧縮方法は、先行技術の方法よりも、同じクォリティに対する符号化コストを削減することができ、一定符号化コストに関してクォリティを高め得ることがわかった。
【００６９】
一般的な方法で、本発明は、特に、マクロブロック毎に数通りの符号化タイプから選択された符号化がピクチャマクロブロック１０毎に適用されるMPEG2タイプの画像圧縮方法を提供する。マクロブロックに適用されるべき符号化のタイプを選択するため、パラメータMB_activ−α.Qが決定される。MB_activの値は以下の通りである。
【００７０】
【数９】
0004806483.tif 000005
式中、Qは量子化間隔であり、αは所定のパラメータであり、選択された符号化のモードは上記パラメータMB_activ−α.Qの最小値に対応する。
【００７１】
一実施例によれば、係数αは１に一致する。
【００７２】
さらにαの値は、DCT係数を量子化する処理で使用された加重マトリックスの内容に依存させてもよい。
【００７３】
この装置の一実施例によれば、イントラ（又はインタ）ピクチャモードにおいてα＝１であり、インタ（又はイントラ）ピクチャモードで使用される加重マトリックスは、イントラ（又はインタ）モードよりも小さい重み付けを実施し、インタ（又はイントラ）ピクチャモードで使用される係数αは１よりも小さい。
【００７４】
一実施例によれば、各ブロック（１６）に対し、イントラ符号化モードにおいて、パラメータblock_activ−α.Qが所与の閾値よりも低下したとき、所定の値がこのパラメータblock_activ−α.Qに与えられる。
【００７５】
所定の値はイントラ符号化マクロブロックの最小コストの４分の１に対応する。
【００７６】
一実施例において、マクロブロックが潜在的に空であると推定された場合に、計算された値valを重み付けすることによって、スキップマクロブロック符号化を優先することが可能である。これらの場合については、既にMB_activ−α.Q＝０の場合についての説明と共に以下の説明を参照のこと。
【００７７】
Ｐピクチャの場合に、符号化モードはnoMC、すなわち、いわゆる補償無しモードである（実際に、このベクトルはデフォルトでゼロにされる）。
【００７８】
Ｂピクチャの場合に、動きベクトルは先に伝達された動きベクトル、すなわち、最後に符号化されたマクロブロックによって使用された動きベクトルと同じである。
【００７９】
本発明の一変形例によれば、valに関する式中のHdr_MBの値は変数Contextによって重み付けされる。
【００８０】
val＝MB_activ＊MB_dfd／MB_dfd_min＋Hdr_MB＊Context
この変数は以下の値をとる。
１）MB_val_avg≦threshold_val_avg
かつ
MB_mean_activ≦threshold_mean_activ
であるならば、
Context＝(MB_val_avg／256)＊(MB_mean_activ／16)
である。ここで使用された閾値は予め定義された閾値である。
２）それ以外の場合には、
Context＝１
である。
【００８１】
この重み付けは以下の２個のパラメータに依存する。
・ソースマクロブロックの平均動き量：この値は、符号化されるべきマクロブロックの平均動き量を推定することによってコンテキストを考慮することが可能である。このパラメータは次式に従って計算される。
【００８２】
【数１０】
0004806483.tif 000006
・ソースマクロブロックの平均ルミナンス値：平均動き量の場合と同様に、この情報は現在マクロブロックが存在するコンテキストを推定し、判定規準を最適化するために役立つ。この平均値はルミナンスブロックだけに関して、次式に従って計算される。
【００８３】
【数１１】
0004806483.tif 000007
式中、MB_src(i,j)はマクロブロックMB内の画素(i,j)のルミナンスに対応する。
【００８４】
より一般的に説明すると、選択された重み付けは、ソースマクロブロックの平均ルミナンス値に比例し、ソースマクロブロックの平均動き量に反比例する。このため、マクロブロックの動き量と、同じマクロブロックの平均ルミナンス値とを考慮できるようになる。
【００８５】
均一なマクロブロックの場合、すなわち、MB_activの値が小さいか、或いは、量子化間隔が大きい場合、式MB_activ−α.Qは、ヘッダのコストよりも小さい。したがって、このアルゴリズムは、先行ピクチャ若しくはフレームに基づく予測モード、又は、より高いコストHdr_MBを有するフレーム若しくはピクチャ双方向予測モードに有害な後続ピクチャ若しくはフレームに基づく予測モードを優先する傾向がある。
【００８６】
双方向予測モードは予測誤差を平均化し、主観的なクォリティを改善する。その理由は、ソースマクロブロックの平均動き量及び平均ルミナンス値が所定の閾値よりも小さい場合に、このヘッダのコストの重み付けによって、パラメータvalの値が双方向予測モードの場合には減少し、このモードが優先される、すなわち、DFDminが選択されるからである。
【００８７】
マクロブロックの平均動き量が小さく、平均ルミナンスが低い場合に、均一の暗いゾーンが現れるので、ブロックの効果は最も顕著である。重み付けは、アーティファクトのタイプを制限することができる双方向符号化を優先するように実行される。
【００８８】
マクロブロックの平均動き量が大きいか、若しくは、少なくとも所定の閾値よりも大きい場合に、テクスチャ状ゾーンが現われ、ブロックの効果は良く見分けることができず、双方向モード（Context＝１）を選択する必要がない。重み付けを考慮するのは、実際にはマクロブロックの平均動き量であって、マクロブロックの動き量ではないことに注意する必要がある。なぜならば、マクロブロックの動き量は、一部の画素だけがマクロブロック内の他の画素よりもルミナンスに大きい不均衡を有する場合でも高くなるからである。
【図面の簡単な説明】
【図１】４．２．０標準形式のマクロブロックを表わす図である。
【図２】ソースブロックから係数ブロックへのDCT処理を示す図である。
【図３】  GOPを示す図である。
【図４】フレームに関するDCT変換とピクチャに関するDCT変換を説明する図である。
【図５】画像圧縮に関して行なわれるべき種々の動作の機能的なブロック図である。
【符号の説明】
１０    ルミナンスブロック
１２，１４    クロミナンスブロック
１６    ソースブロック
１８    係数ブロック
４０    ブロック化処理部
４２    選択処理部
４４    DCT変換処理部
４６    減算処理部
４８    時間予測処理部
５０    量子化処理部
５２    符号化処理部
５４    バッファメモリ
６０    調節処理部
６２    逆量子化処理部
６４    逆DCT処理部
６６    画像メモリ
６８    判定処理部
７０    加算器
７２    動き推定処理部
７４    MPEG2符号化情報処理部
【図１】
0004806483.tif 000013
【図２】
0004806483.tif 000014
【図３】
0004806483.tif 000015
【図４】
0004806483.tif 000016
【図５】
0004806483.tif 000017