(57)【特許請求の範囲】
【請求項１】
入力画像と参照画像との間の動きベクトルを求める動きベクトル検出手段と、
上記動きベトル検出手段で求められた動きベクトルに基づいて動き補償を行なって上記参照画像と上記入力画像との差分を直交変換する直交変換手段と、
上記直交変換手段の出力を量子化する量子化手段と、
上記入力画像の難しさが所定値を越える場合には、上記動きベクトル検出手段により検出された動きベトクルの信頼性が低いとして、上記量子化手段の量子化値を小さくする量子化値制御手段と
を備え、
上記入力画像の難しさは、直近の符号化時平均量子化値である符号化装置。
【請求項２】
上記量子化値制御手段は、上記入力画像の終端の付近に位置するマクロブロックを対象として、上記動きベトクルの信頼性が低いとして、上記量子化手段の量子化値を小さくする
請求項１に記載の符号化装置。
【請求項３】
上記量子化値制御手段は、上記入力画像の終端からの距離を複数に分割し、上記入力画像の終端からの距離に応じて、上記量子化手段の量子化値を段階的に変更する
請求項２に記載の符号化装置。
【請求項４】
上記量子化値制御手段は、上記画面内符号化を行なうマクロブロックを対象として、上記動きベクトルの信頼度に係わらず、上記量子化値を変更しない
請求項１に記載の符号化装置。
【請求項５】
上記入力画像の難しさは、直近のＰピクチャ符号化時平均量子化値と、直近のＢピクチャ符号化時平均量子化値との和である請求項１記載の符号化装置。
【請求項６】
上記量子化値制御手段は、上記入力画像の符号化の難しさを示す指標を複数の閾値と比較し、上記閾値に応じて、上記量子化手段の量子化値を段階的に変更する
請求項１に記載の符号化装置。
【請求項７】
入力画像と参照画像との間の動きベクトルを求め、
求められた動きベクトルに基づいて動き補償を行なって上記参照画像と上記入力画像との差分を直交変換し、
上記入力画像の難しさが所定値を越える場合には、求められた動きベトクルの信頼性が低いとして、量子化値を小さくし、上記直交変換された出力を量子化し、
上記入力画像の難しさは、直近の符号化時平均量子化値である符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＭＰＥＧ方式により画像を圧縮符号化するＭＰＥＧエンコーダに用いて好適な符号化装置及び方法に関する。
【０００２】
【従来の技術】
ディジタル衛星放送では、画像の圧縮方式として、ＭＰＥＧ２方式が用いられている。ＭＰＥＧ２方式では、動きベクトルを用いた動き補償予測符号化が行われている。すなわち、ＭＰＥＧ２方式では、Ｉ（Intra ）ピクチャと、Ｐ（Predicti）ピクチャと、Ｂ（Bidirectionally Predictive）ピクチャと呼ばれる３種類の画面が送られる。Ｉピクチャでは、同一画面（フレーム又はフィールド）の画素を使ってＤＣＴ符号化が行なわれる。Ｐピクチャでは、既に符号化されたＩピクチャ又はＰピクチャを参照して動きベトルを検出し、動き補償予測を用いたＤＣＴ符号化が行なわれる。Ｂピクチャでは、その前後のＩピクチャ又はＰピクチャを参照して、動き予測を用いたＤＣＴ符号化が行なわれる。
【０００３】
【発明が解決しようとする課題】
このように、ＭＰＥＧ２方式では、動き補償予測符号化が行われ、Ｉピクチャ叉はＢピクチャでは、既に符号化されたＩピクチャ又はＰピクチャを参照して、動きベクトルを検出して、符号化が行われる。このような動き補償予測符号化を行なうと、符号量が下がり、効率的な圧縮処理が行なえる。
【０００４】
ところが、動き補償予測符号化を行う場合、動きベクトルの信頼性が重要である。動きベクトルの信頼性が低いと、参照ピクチャと現ピクチャとの相関が弱くなり、符号量を下げると、画質が劣化してしまう。
【０００５】
動きベクトルの信頼性が低い場合としては、画面の終端付近のマクロブロックで動きベクトルが検出された場合や、入力画像の符号化の難しさが大きい所で動きベクトルが検出された場合が考えられる。
【０００６】
すなわち、動きベクトルは、処理の対象となる現画面のブロックに対して、参照画面の同位置を基点としてそのブロックと大きさの等しいブロックを抽出し、所定の探索範囲内でこのブロックを動かしながら、現画面のブロックの各画素と参照画面のブロックの各画素との差分の絶対値和を求め、この値が最小となるブロックを検出するようなブロックマッチングにより求められる。
【０００７】
このようなブロックマッチングの処理では、画面の中央付近では、探索範囲が画面内に収まるため、動きベクトルの信頼性は高い。ところが、画面の終端に近いエリアでは、探索範囲が画面の外に来るため、動きベクトルの信頼性が低下すると考えられる。
【０００８】
また、絵柄が複雑で、動きの激しい場合には、現フレームのブロックの各画素と参照フレームのブロックの各画素との差分の絶対値和が著しく小さくなるようなブロックは求まりにくい。このため、絵柄が複雑で、動きの激しく、符号化が難しい所で検出された動きベクトルは、信頼性が低下すると考えられる。
【０００９】
このように、動きベクトルを用いて動き補償を行なって符号化を行なう場合には、動きベクトルの信頼性が低いと、その部分で画質の劣化が生じる。
【００１０】
したがって、この発明の目的は、動きベクトルの信頼性が低い部分での画質の劣化を防止するようにした符号化装置及び方法を提供することにある。
【００１１】
【課題を解決するための手段】
この発明は、入力画像と参照画像との間の動きベクトルを求める動きベクトル検出手段と、
動きベトル検出手段で求められた動きベクトルに基づいて動き補償を行なって参照画像と入力画像との差分を直交変換する直交変換手段と、
直交変換手段の出力を量子化する量子化手段と、
入力画像の難しさが所定値を越える場合には、動きベクトル検出手段により検出された動きベトクルの信頼性が低いとして、量子化手段の量子化値を小さくする量子化値制御手段と
を備え、
入力画像の難しさは、直近の符号化時平均量子化値である符号化装置である。
【００１２】
この発明では、量子化値制御手段は、入力画像の終端付近に位置するマクロブロックを対象として、動きベトクルの信頼性が低いとして、量子化手段の量子化値を小さくする。
【００１３】
この発明では、量子化値制御手段は、入力画像の終端からの距離を複数に分割し、入力画像の終端からの距離に応じて、量子化手段の量子化値を段階的に変更する。
【００１４】
この発明では、量子化値制御手段は、画面内符号化を行なうマクロブロックを対象として、動きベクトルの信頼度に係わらず、量子化値を変更しない。
【００１７】
この発明では、量子化値制御手段は、入力画像の符号化の難しさを示す指標を複数の閾値と比較し、閾値に応じて、量子化手段の量子化値を段階的に変更する。
【００１９】
画面の終端付近のマクロブロックでは、探索範囲が画面の外に来るため、動きベクトルの信頼性が低下すると考えられる。このため、画面の終端の付近のマクロブロックで、動きベクトルの信頼性が低下すると考えられる部分では、量子化値が下げられ、符号量が増加される。これにより、画面の終端付近の動きベクトルの信頼性が低下する部分の画質劣化が補償される。
【００２０】
また、入力画像の符号化の難しさが大きい所では、動きベクトルの信頼性が低下すると考えられる。入力画像の符号化の難しさが大きい所は、絵柄が複雑で動きの大きい所であり、これは、直近の量子化値から判断できる。このため、直近の平均量子化値が所定値以上で、動きベクトルの信頼性が低下すると考えられる部分では、量子化値が下げられ、符号量が増加される。これにより、画面の終端付近の動きベクトルの信頼性が低下する部分の画質劣化が補償される。
【００２１】
【発明の実施の形態】
以下、この発明の実施の形態について図面を参照して説明する。図１は、この発明が適用されたＭＰＥＧ２方式のエンコーダの構成の一例を示すものである。この発明が適用されたＭＰＥＧ２方式のエンコーダの一例では、画面の終端のマクロブロックは動きベクトルの信頼性が低いと考えられることから、画面の終端のマクロブロックでは、量子化値を下げて、動きベクトルの信頼性の低下による画質の劣化を補償するようにしている。
【００２２】
図１において、入力端子１に、輝度信号Ｙと、色差信号Ｃｂ、Ｃｒからなるコンポーネントディジタルビデオ信号が供給される。入力端子１からのディジタルビデオ信号は、フレームメモリ２に一旦蓄積される。このフレームメモリ２は、少なくとも、現画面と、過去の参照画面と、未来の参照画面との３フレーム分の画像を蓄積できる容量を有している。
【００２３】
フレームメモリ２に蓄積されたデータを用いて、動きベクトル検出回路３で、参照画面と現画面との間の動きベクトルが求められる。動きベクトルは、マクロブロックを単位として求められる。すなわち、動きベクトルは、処理の対象となる現画面（フレーム叉はフィールド）のブロックに対して、参照画面の同位置を基点としてそのブロックと大きさの等しいブロックを抽出し、所定の探索範囲内でこのブロックを動かしながら、現画面のブロックの各画素と参照画面のブロックの各画素との差分の絶対値和を求め、この値が最小となるブロックを検出するようなブロックマッチングにより求められる。
【００２４】
動きベクトル検出回路３で求められた動きベクトルＭＶは、可変長符号化回路８、動き補償回路１５に供給される。
【００２５】
また、動きベクトル検出回路３で動きベクトルを求める際に得られる残差情報ｅは、モード設定回路４に供給される。更に、動きベクトル検出回路３で動きベクトルを求める際のマクロブロックの位置情報が終端マクロブロック検出回路２１に供給される。終端マクロブロック検出回路２１で、画面上の終端の位置にあるマクロブロックを求めているか否かが判断される。
【００２６】
Ｉピクチャでは、スイッチ回路５は、モード設定回路４からのモード設定信号により、符号化モードに応じて切り換えられる。すなわち、スイッチ回路５は、フレーム内符号化モード（イントラ符号化）のときには、端子５Ａ側に設定され、順方向予測符号化モードのときには、端子５Ｂ側に設定され、双方向予測符号化モードのときには、端子５Ｃ側に設定される。なお、ＰピクチャやＢピクチャの場合にも、イントラ符号化の方が符号量が減る場合には、フレーム内符号化モードに設定される。
【００２７】
先ず、Ｉピクチャを伝送するときについて説明する。Ｉピクチャを伝送するときには、フレーム内予測符号化が行なわれる。このときには、スイッチ回路５は、端子５Ａ側に設定される。そして、フレームメモリ２からは、現フレームの画像データが出力される。この現フレームの画像データは、スイッチ回路５を介して、ＤＣＴ回路６に供給される。
【００２８】
ＤＣＴ回路６で、（８×８）を１ブロックとして、時間領域のビデオ信号がＤＣＴ変換され、周波数領域のスペクトラムデータに変換され。このスペクトラムデータは、所謂ジグザグスキャンにより、直流分の成分から順に読み出される。ＤＣＴ変換回路６の出力が量子化回路７に供給される。
【００２９】
量子化回路７には、量子化制御回路２２から量子化値が供給される。量子化制御回路２２には、送信バッファ９から出力ビットレートの情報が供給される。
【００３０】
量子化回路７で、量子化制御回路２２からの量子化値に応じて、ＤＣＴ変化回路６からのスペクトラムデータが量子化される。これにより、出力されるビットストリームのビットレートが一定に保たれる。
【００３１】
量子化回路７の出力は、可変長符号化回路８に供給されると共に、逆量子化回路１０に供給される。可変長符号化回路８で、量子化回路７からのスペクトラムデータは、動きベクトルと、量子化スケールと、予測モードと共に、可変長符号化される。
【００３２】
可変長符号化回路８からは、符号化されたビットストリームか出力される。このビットストリームは、送信バッファ９に一旦蓄積される。送信バッファ９からは、要求されるビットレートに応じてデータストリームが読み出され、出力端子１１から、ビットストリームが出力される。
【００３３】
また、量子化回路７の出力が逆量子化回路１０に供給される。逆量子化回路１０の出力がＩＤＣＴ回路１２に供給される。Ｉピクチャの場合には、フレーム内の画素でＤＣＴ変換が行なわれるため、逆量子化回路１０及びＩＤＣＴ回路１２により、元の画面が形成される。この１画面分のディジタルビデオデータは、加算回路１３を介して、フレームメモリ１４に供給される。このフレームメモリ１４に蓄積されたデータが次のＰピクチャ又はＢピクチャでの参照フレームのデータとされる。
【００３４】
次に、Ｐピクチャを伝送するときについて説明する。Ｐピクチャを伝送するときには、参照フレームとの間で順方向予測符号化が行なわれる。このときには、スイッチ回路５は、端子５Ｂ側に設定される。フレームメモリ２からは、現フレームのディジタルビデオ信号が出力される。このフレームメモリ２の出力は、減算回路６に供給される。
【００３５】
フレームメモリ１４には、参照フレームのデータが蓄積されている。この参照フレームのデータは、動き補償回路１５により、動き補償され、減算回路６に供給される。減算回路６で、現フレームのデータと、動き補償された参照フレームのデータとの差分が求められる。この現フレームのデータと、参照フレームのデータとの差分データがスイッチ回路５を介して、ＤＣＴ回路６に供給される。
【００３６】
ＤＣＴ回路６により、参照フレームのデータと現フレームのデータとの差分データがＤＣＴ変換され、スペクトラムデータに変換される。ＤＣＴ変換回路６の出力が量子化回路７に供給される。量子化回路７で、ＤＣＴ変化回路６からのスペクトラムデータが量子化される。
【００３７】
量子化回路７には、量子化制御回路２２から量子化値が供給される。量子化制御回路２２には、送信バッファ９から出力ビットレートの情報が供給される。また、量子化制御回路２２には、終端マクロブロック検出回路２１の出力が供給される。
【００３８】
量子化回路７で、量子化制御回路２２からの量子化値に応じて、ＤＣＴ変化回路６からのスペクトラムデータが量子化される。これにより、出力されるビットストリームのビットレートが一定に保たれる。また、画面の終端のマクロブロックでは、量子化値が下げられる。これにより、動きベクトルの信頼性の低下による画質の劣化が補償される。
【００３９】
量子化回路７の出力は、可変長符号化回路８に供給されると共に、逆量子化回路１０に供給される。可変長符号化回路８で、量子化回路７からのスペクトラムデータは、動きベクトルと、量子化スケールと、予測モードと共に、可変長符号化される。
【００４０】
可変長符号化回路８からは、符号化されたビットストリームか出力される。このビットストリームは、送信バッファ９に一旦蓄積される。送信バッファ９からは、要求されるビットレートに応じてデータストリームが読み出され、出力端子１１から、ビットストリームが出力される。
【００４１】
また、量子化回路７の出力が逆量子化回路１０に供給される。逆量子化回路１０の出力がＩＤＣＴ回路１２に供給される。Ｐピクチャの場合には、参照フレームのデータと現画面のデータとの差分がＤＣＴ変換されるため、逆量子化回路１０及びＩＤＣＴ回路１２により、参照フレームのデータと現画面のデータとの差分が得られる。この差分データが加算回路１３に供給される。
【００４２】
加算回路１３には、フレームメモリ１４から、動き補償回路１５を介して、それまでの参照画面のデータが供給される。加算回路１３で、それまでの参照画面のデータに差分データが加算される。この加算回路１３の出力が次の参照フレームのデータとしてフレームメモリ１４に蓄積される。
【００４３】
次に、Ｂピクチャを伝送するときについて説明する。Ｂピクチャを伝送するときには、過去の参照フレームと、未来の参照フレームとを使って、両方向予測符号化が行なわれる。このときには、スイッチ回路５は、端子５Ｃ側に設定される。フレームメモリ２からは、現フレームのディジタルビデオ信号が出力される。このバッファメモリ２の出力は、減算回路７に供給される。
【００４４】
フレームメモリ４には、過去参照フレームと、未来の参照フレームのデータが蓄積されている。この両方の参照フレームのデータは、動き補償回路５により、動き補償され、減算回路７に供給される。減算回路７で、現フレームのデータと、動き補償された過去及び未来の参照フレームのデータとの差分が求められる。この現フレームのデータと、過去及び未来の参照フレームのデータとの差分データがスイッチ回路５を介して、ＤＣＴ回路６に供給される。
【００４５】
ＤＣＴ回路６により、過去及び未来の参照フレームのデータと、現フレームのデータとの差分データがＤＣＴ変換され、スペクトラムデータに変換される。ＤＣＴ変換回路６の出力が量子化回路７に供給される。量子化回路７で、ＤＣＴ変化回路６からのスペクトラムデータが量子化される。
【００４６】
量子化回路７には、量子化制御回路２２から量子化値が供給される。量子化制御回路２２には、送信バッファ９から出力ビットレートの情報が供給される。また、量子化制御回路２２には、終端マクロブロック検出回路２１の出力が供給される。
【００４７】
量子化回路７で、量子化制御回路２２からの量子化値に応じて、ＤＣＴ変化回路６からのスペクトラムデータが量子化される。これにより、出力されるビットストリームのビットレートが一定に保たれる。また、画面の終端のマクロブロックでは、量子化値が下げられる。これにより、動きベクトルの信頼性の低下による画質の劣化が補償される。
【００４８】
量子化回路７の出力は、可変長符号化回路８に供給されると共に、逆量子化回路１０に供給される。可変長符号化回路８で、量子化回路７からのスペクトラムデータは、動きベクトルと、量子化スケールと、予測モードと共に、可変長符号化される。
【００４９】
可変長符号化回路８からは、符号化されたビットストリームか出力される。このビットストリームは、送信バッファ９に一旦蓄積される。送信バッファ９からは、要求されるビットレートに応じてデータストリームが読み出され、出力端子１１から、ビットストリームが出力される。
【００５０】
このように、この発明が適用されたＭＰＥＧ２方式のエンコーダの一例では、終端マクロブロック検出回路２１が設けられており、画面の終端のマクロブロックで動きベクトルが検出されているか否かが検出され、画面の終端のマクロブロックを検出しているときと、それ以外のときとで、量子化回路７に対する量子化値が切り替えられる。これにより、画面の終端付近の動きベクトルの信頼性の低い所での画質の劣化が防止できる。
【００５１】
すなわち、図２Ａに示すように、画面の中央付近のマクロブロックを検出しているときには、探索範囲ＳＡは、画面内に収まる。このため、ブロックがＢＬＫ１とブロックＢＬＫ２とがマッチングブロックであったときには、このマッチングブロックが正しく検出され、動きベクトルＶ１が正しく求められる。
【００５２】
これに対して、図２Ｂに示すように、画面の終端の付近のマクロブロックを検出しているときには、探索範囲ＳＡが画面の外に来る。このため、ブロックＢＬＫ３とブロックＢＬＫ４とがマッチングブロックであったとしても、ブロックＢＬＫ３が画面の外に来るため、正しい動きベクトルＶ２を検出できない。
【００５３】
このように、画面の中央付近のマクロブロックでの動きベクトルの信頼性に比べて、画面の終端の付近のマクロブロックでの動きベクトルの信頼性は低い。このため、画面の終端の付近では画質劣化が生じる。
【００５４】
そこで、この例では、Ｂピクチャ叉はＰピクチャで符号化を行う場合に、マクロブロックの終端では、量子化値が小さくされる。すなわち、図３は１画面のマクロブロックを示し、１画面のマクロブロックの中で、斜線で示すようなマクロブロックの終端のエリアＡＲ１では、量子値が小さくなるように、量子化制御回路２２が制御される。これにより、動きベクトルの信頼性の低下による画質低下が補償される。
【００５５】
図４は、このときの量子化処理を示すフローチャートである。図４において、ピクチャタイプ毎にターゲットビット数が決定される（ステップＳ１）。処理しているｊ番目のマクロブロックに対する量子化値Ｑｊが決定される（ステップＳ２）。この処理しているｊ番目のマクロブロックが画面の終端に位置しているか否かが判断される（ステップＳ３）。
【００５６】
ｊ番目のマクロブロックが画面の終端に位置していなければ、量子化値の変更は行なわれず、ステップＳ２で決定された量子化値Ｑｊで量子化処理が行なわれる（ステップＳ４）。
【００５７】
ｊ番目のマクロブロックが画面の終端に位置しているなら、ステップＳ２で決定された量子化値Ｑｊに対して、例えば、０．５が乗じられる（ステップＳ５）。この０．５Ｑｊで、量子化処理が行なわれる（ステップＳ４）。
【００５８】
ステップＳ４で量子化処理が行なわれたら、１フレーム分のマクロブロックを処理したか否かが判断される（ステップＳ６）。１フレーム分のマクロブロックを処理していなければ、ステップＳ２にリターンされ、上述の処理が繰り返される。１フレーム分のマクロブロックを処理したら、量子化処理が終了される。
【００５９】
このように、この例では、画面の終端のマクロブロックでは、量子化値Ｑｊに対して０．５が乗じられ、量子化値が小さくされる。このように、画面の終端のマクロブロックの量子化値が小さくされるため、動きベクトルの信頼性の低下による画質の劣化が補償される。
【００６０】
ところで、ＰピクチャやＢピクチャでも、フレーム内で符号化する方が符号量が減る場合には、フレーム内符号化処理（イントラ符号化）が行われる。イントラ処理をする場合には、動きベクトルは不要なので、ｊ番目のマクロブロックが画面の終端にあっても、画質の劣化は起こらず、量子化値を変更する必要はない。
【００６１】
図５は、このようなイントラ処理が行われる場合を考慮した例を示すフローチャートである。図５において、ピクチャタイプ毎にターゲットビット数が決定される（ステップＳ１１）。処理しているｊ番目のマクロブロックに対する量子化値Ｑｊが決定される（ステップＳ１２）。
【００６２】
ｊ番目のマクロブロックがイントラ符号化処理のマクロブロックであるか否かが判断される（ステップＳ１３）。ｊ番目のマクロブロックがイントラ符号化処理のマクロブロックなら、量子化値の変更は行なわれず、ステップＳ１２で決定された量子化値Ｑｊで量子化処理が行なわれる（ステップＳ１４）。
【００６３】
ステップＳ１３で、ｊ番目のマクロブロックがイントラ符号化処理のマクロブロックでなければ、ｊ番目のマクロブロックが画面の終端のマクロブロックか否かが判断される（ステップＳ１５）。
【００６４】
ｊ番目のマクロブロックが画面の終端のマクロブロックでなければ、量子化値の変更は行なわれず、ステップＳ１２で決定された量子化値Ｑｊで量子化処理が行なわれる（ステップＳ１４）。
【００６５】
ｊ番目のマクロブロックが画面の終端のマクロブロックなら、ステップＳ１２で決定された量子化値Ｑｊに対して、例えば、０．５が乗じられる（ステップＳ１６）。この０．５Ｑｊで、量子化処理が行なわれる（ステップＳ１４）。
【００６６】
ステップＳ１４で量子化処理が行なわれたら、１フレーム分のマクロブロックを処理したか否かが判断される（ステップＳ１７）。１フレーム分のマクロブロックを処理していなければ、ステップＳ１２にリターンされ、上述の処理が繰り返される。１フレーム分のマクロブロックを処理したら、量子化処理が終了される。
【００６７】
図６は、動きベクトルの信頼性の低下による画質劣化を補償するための量子化値設定処理の他の例を示すものである
前述の例では、図３におけるマクロブロックの終端のエリアＡＲ１で量子値を０．５にすることで、動きベクトルの信頼性の低下による画質劣化を防止するようにしているが、この例では、更に、図７に示す終端のエリアＡＲ１１と終端から２番目のエリアＡＲ１２とを検出している。そして、終端から２番目のエリアＡＲ１２でマクロブロックを検出しているときには、量子化値が小さくされ、終端のエリアＡＲ１１でマクロブロックを検出しているときは、更に、量子化値を小さくするようにしている。
【００６８】
図６において、ピクチャタイプ毎にターゲットビット数が決定される（ステップＳ２１）。処理しているｊ番目のマクロブロックに対する量子化値Ｑｊが決定される（ステップＳ２２）。
【００６９】
この処理しているｊ番目のマクロブロックが画面の端から３マクロブロック以内に位置しているか否かが判断される（ステップＳ２３）。処理しているｊ番目のマクロブロックが画面の端から３マクロブロック以内なら、画面の終端に位置しているか否かが判断される（ステップＳ２４）。画面の終端に位置していなければ、画面の終端から２マクロブロック目に位置しているか否かが判断される（ステップＳ２５）。
【００７０】
ステップＳ２３で、処理しているｊ番目のマクロブロックが画面の終端から３マクロブロック以内に位置していないと判断されたときには、量子化値の変更は行なわれず、ステップＳ２２で決定された量子化値Ｑｊで量子化処理が行なわれる（ステップＳ２６）。
【００７１】
ステップＳ２４で、処理しているｊ番目のマクロブロックが画面の終端に位置していると判断されたら、ステップＳ２２で決定された量子化値Ｑｊに対して、例えば、０．５が乗じられる（ステップＳ２７）。ステップＳ２６で、この変更された量子化値０．５Ｑｊで、量子化処理が行なわれる。
【００７２】
ステップＳ２５で、処理しているｊ番目のマクロブロックが画面の終端から２マクロブロック目に位置していると判断されたら、ステップＳ２２で決定された量子化値Ｑｊに対して、例えば、０．７５が乗じられる（ステップＳ２８）。ステップＳ２６で、この変更された量子化値０．７５Ｑｊで、量子化処理が行なわれる。
【００７３】
ステップＳ２５で、処理しているｊ番目のマクロブロックが画面の終端から２マクロブロック目に位置していないと判断されたら、ステップＳ２２で決定された量子化値Ｑｊに対して、例えば、０．９が乗じられる（ステップＳ２９）。ステップＳ２６で、この変更された量子化値０．９Ｑｊで、量子化処理が行なわれる。
【００７４】
ステップＳ２６で量子化処理が行なわれたら、１フレーム分のマクロブロックを処理したか否かが判断される（ステップＳ３０）。１フレーム分のマクロブロックを処理していなければ、ステップＳ２２にリターンされ、上述の処理が繰り返される。１フレーム分のマクロブロックを処理したら、量子化処理が終了される。
【００７５】
なお、上述の例では、画面の終端のマクロブロックの位置にあるか否かと、画面の終端から２番目マクロブロックの位置にあるか否かとを検出しているが、さらに、画面の終端から３番目、４番目、…のマクロブロックにあるか否か検出して、量子化値を切り替えるようにしてもよい。
【００７６】
また、勿論、図４に示した例と同様に、ｊ番目のマクロブロックがイントラ処理されるものであったら、画面の終端や終端から２番目にあるか否かにかかかわらず、量子化値を変更しないようにしても良い。
【００７７】
図８は、動きベクトルの信頼性の低下による画質劣化を補償するための量子化値設定処理のさらに他の例を示すものである
上述までの例では、画面の終端付近のマクロブロックでは、動きベクトルの信頼性が低いとして、画面の終端に付近のマクロブロックでは、量子化値を小さくして、動きベクトルの信頼性の低下による画質劣化を補償するようにしている。
【００７８】
ところが、動きベクトルの信頼性が低下するのは、画面の終端のマクロブロックの場合だけではない。入力画像の難しさ、すなわち、絵柄が複雑で動きが激しい場合にも、動きベクトルの信頼性が低下する。
【００７９】
そこで、この例は、入力画像の難しさが大きい場合には、量子化値を下げて、動きベクトルの信頼性の低下による画質劣化を補償するようにしている。
【００８０】
入力画像の難しさが大きいか否かの指標として、この例では、直近のＰピクチャ符号化時平均量子化値とＢピクチャ符号化時平均量子化値との和が用いられる。
【００８１】
図８において、ピクチャタイプ毎にターゲットビット数が決定される（ステップＳ３１）。処理しているｊ番目のマクロブロックに対する量子化値Ｑｊが決定される（ステップＳ３２）。
【００８２】
直近Ｐピクチャ符号化時平均量子化値Ｑｐと、直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和が例えば６０より小さいか否かが判断される（ステップＳ３３）。この直近Ｐピクチャ符号化時平均量子化値Ｑｐと直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和が例えば６０より小さければ、入力画像の難しさは低く、動きベクトルの信頼性は高いとして、量子化値の変更は行なわれず、ステップＳ３２で決定された量子化値Ｑｊで量子化処理が行なわれる（ステップＳ３４）。
【００８３】
ステップＳ３３で、直近Ｐピクチャ符号化時平均量子化値Ｑｐと、直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和が例えば６０より小さくなければ、直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和が例えば８０より小さいか否かが判断される（ステップＳ３５）。
【００８４】
直近Ｐピクチャ符号化時平均量子化値Ｑｐと、直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和が例えば８０より小さければ、ステップＳ３２で決定された量子化値Ｑｊに対して、例えば、０．７５が乗じられる（ステップＳ３６）。この０．７５Ｑｊで、量子化処理が行なわれる（ステップＳ３４）。
【００８５】
ステップＳ３５で、直近Ｐピクチャ符号化時平均量子化値Ｑｐと、直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和が例えば８０より小さくなければ、ステップＳ３２で決定された量子化値Ｑｊに対して、例えば、０．５が乗じられる（ステップＳ３７）。この０．５Ｑｊで、量子化処理が行なわれる。
【００８６】
ステップＳ３４で量子化処理が行なわれたら、１フレーム分のマクロブロックを処理したか否かが判断される（ステップＳ３８）。１フレーム分のマクロブロックを処理していなければ、ステップＳ３２にリターンされ、上述の処理が繰り返される。１フレーム分のマクロブロックを処理したら、量子化処理が終了される。
【００８７】
このように、この例では、直近Ｐピクチャ符号化時平均量子化値Ｑｐと、直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和が例えば６０より大きいときには、入力画像は難しいとして、ステップＳ３２で決定された量子化値Ｑｊに対して例えば０．７５が乗じられ、直近Ｐピクチャ符号化時平均量子化値Ｑｐと、直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和が例えば８０のより大きいときには、さらに難しいとして、ステップＳ１２で決定された量子化値Ｑｊに対して例えば、０．５が乗じられる。これにより、動きベクトルの信頼性の低下による画質の劣化が補償される。
【００８８】
なお、上述の例では、入力画像の難しさの指標として、直近Ｐピクチャ符号化時平均量子化値Ｑｐと直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和を用いたが、他の指標を用いることもできる。例えば、直近Ｐピクチャ符号化時平均量子化値Ｑｐ又は直近Ｂピクチャ符号化時平均量子化値Ｑｂを、入力画像の難しさの指標として用いるようにしても良い。
【００８９】
また、この例では、入力画像の難しさの指標として用いた直近Ｐピクチャ符号化時平均量子化値Ｑｐと直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和に対して、２つの閾値を用いて、量子化値を設定しているが、１つの閾値でも良く、或いは、更に、複数の閾値を設定するようにしても良い。
【００９０】
また、勿論、図４に示した例と同様に、ｊ番目のマクロブロックがイントラ符号化処理されるものであったら、直近Ｐピクチャ符号化時平均量子化値Ｑｐと直近Ｂピクチャ符号化時平均量子化値Ｑｂとの和の値にかかかわらず、量子化値を変更しないようにしても良い。
【００９１】
また、画面の終端付近にマクロブロックがあるか否かの情報と、入力画像の難しさの情報とを組み合わせて、量子化値を決定するようにしても良い。すなわち、図４叉は図５で示した処理と、図７で示した処理とを組み合わせて、量子化値を設定するようにしても良い。
【００９２】
また、上述の例では、ＭＰＥＧ２方式のエンコード処理について説明したが、この発明は、ＭＰＥＧ２方式に限定されず、ＭＰＥＧ１方式や動き補償予測符号化を行なう他の方式でも同様に適用できる。
【００９３】
【発明の効果】
この発明によれば、画面の終端の付近のマクロブロックで、動きベクトルの信頼性が低下すると考えられる部分では、量子化値が下げられ、符号量が増加される。これにより、画面の終端付近の動きベクトルの信頼性が低下する部分の画質劣化が補償される。
【００９４】
また、この発明によれば、直近の平均量子化値が所定値以上で、画像の符号化の難しさが大きく、動きベクトルの信頼性が低下すると考えられる部分では、量子化値が下げられ、符号量が増加される。これにより、画面の終端付近の動きベクトルの信頼性が低下する部分の画質劣化が補償される。
【図面の簡単な説明】
【図１】この発明が適用された動きＭＰＥＧ２エンコーダの一例のブロック図である。
【図２】動きベトクルの信頼性を説明するための略線図である。
【図３】この発明が適用された動きＭＰＥＧ２エンコーダの一例の説明に用いる略線図である。
【図４】この発明が適用された動きＭＰＥＧ２エンコーダの一例の説明に用いるフローチャートである。
【図５】この発明が適用された動きＭＰＥＧ２エンコーダの他の例の説明に用いるフローチャートである。
【図６】この発明が適用された動きＭＰＥＧ２エンコーダの更に他の例の説明に用いるフローチャートである。
【図７】この発明が適用された動きＭＰＥＧ２エンコーダの更に他の例の説明に用いる略線図である。
【図８】この発明が適用された動きＭＰＥＧ２エンコーダの更に他の例の説明に用いるフローチャートである。
【符号の説明】
３・・・動きベクトル検出回路、７・・・量子化回路、２１・・・終端マクロブロック検出回路、２２・・・量子化制御回路
【図１】
0004269405.tif 000002
【図２】
0004269405.tif 000003
【図３】
0004269405.tif 000004
【図４】
0004269405.tif 000005
【図５】
0004269405.tif 000006
【図６】
0004269405.tif 000007
【図７】
0004269405.tif 000008
【図８】
0004269405.tif 000009