(57)【要約】色に対する人間の視覚特性を考慮して、画像データの圧縮符号化を行う。マクロブロックが分割された４画素×４ラインのサブブロック毎に、色差成分Ｃｂ、Ｃｒに基づき画素の色が検出される。特定色が検出された画素数がサブブロック毎に計数された結果が例えばサブブロックの画素総数の２／３以上であれば、そのサブブロックを含むマクロブロックが特定色を含むものとされる。このマクロブロックについて輝度成分Ｙを用いて求められたアクティビティが、特定色に対応する量子化優遇値が乗ぜられて修正される。この修正アクティビティに基づき、量子化スケール値がより小さい値に変更される。この変更された量子化スケール値を用ることで、より小さい量子化ステップ幅でマクロブロックが量子化され、特定色が検出されたマクロブロックの量子化による画質の劣化が抑えられる。
2003015423.tif 000002
【特許請求の範囲】
【請求項１】
画像データの各ブロックが少なくとも１種類の特定の色を示すブロックか否かを検出する色検出手段と、
上記画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化手段と、
上記特定の色を示すブロックに対して、上記特定の色を示さないブロックに比べ、上記量子化手段における量子化ステップ幅をより小さく設定する量子化ステップ幅変更手段と
を有することを特徴とする画像処理装置。
【請求項２】
請求の範囲１に記載の画像処理装置において、
上記色検出手段は、上記ブロックを複数に分割してなるサブブロック単位で上記特定の色を検出することを特徴とする画像処理装置。
【請求項３】
請求の範囲２に記載の画像処理装置において、
上記色検出手段は、１つの上記ブロックに含まれる上記複数のサブブロックのうち、閾値以上のサブブロックが上記特定の色を示すサブブロックであるときに、対応するブロック全体を上記特定の色を示すブロックであると検出することを特徴とする画像処理装置。
【請求項４】
請求の範囲２に記載の画像処理装置において、
上記量子化手段による上記画像データの量子化に先立って、上記ブロック単位で上記画像データに所定の変換を行う変換手段をさらに備えることを特徴とする画像処理装置。
【請求項５】
請求の範囲４に記載の画像処理装置において、
上記所定の変換は、ＤＣＴであることを特徴とする画像処理装置。
【請求項６】
請求の範囲２に記載の画像処理装置において、
上記色検出手段は、上記サブブロックを構成する画素のうち少なくとも１／２の画素が上記特定の色であると判定したときに、上記サブブロックが上記特定の色であると検出することを特徴とする画像処理装置。
【請求項７】
請求の範囲１に記載の画像処理装置において、
上記量子化ステップ幅変更手段は、ブロック毎の画像の複雑さに応じた値であって量子化スケール値を設定するためのアクティビティを、上記色検出手段の検出結果に基づき変更することで、上記特定の色を示すブロックに対して、上記特定の色を示さないブロックに比べ、上記量子化手段での量子化ステップ幅をより小さく設定することを特徴とする画像処理装置。
【請求項８】
画像データの各ブロックが少なくとも１種類の特定の色を示すブロックか否かを検出する色検出のステップと、
上記画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化のステップと、
上記特定の色を示すブロックに対して、上記特定の色を示さないブロックに比べ、上記量子化のステップにおける量子化ステップ幅をより小さく設定する量子化ステップ幅変更のステップと
を有することを特徴とする画像処理方法。
【請求項９】
請求の範囲８に記載の画像処理方法において、
上記色検出のステップでは、上記ブロックを複数に分割してなるサブブロック単位で上記特定の色が検出されることを特徴とする画像処理方法。
【請求項１０】
請求の範囲９に記載の画像処理方法において、
上記色検出のステップでは、１つの上記ブロックに含まれる上記複数のサブブロックのうち、閾値以上のサブブロックが上記特定の色を示すサブブロックであるときに、対応するブロック全体が上記特定の色を示すブロックであると検出されることを特徴とする画像処理装置。
【請求項１１】
請求の範囲９に記載の画像処理方法において、
上記量子化のステップによる上記画像データの量子化に先立って、上記ブロック単位で上記画像データに所定の変換を行う変換のステップをさらに備えることを特徴とする画像処理方法。
【請求項１２】
請求の範囲１１に記載の画像処理方法において、
上記所定の変換は、ＤＣＴであることを特徴とする画像処理方法。
【請求項１３】
請求の範囲９に記載の画像処理方法において、
上記色検出のステップでは、上記サブブロックを構成する画素のうち少なくとも１／２の画素が上記特定の色であると判定されたときに、上記サブブロックが上記特定の色であると検出されることを特徴とする画像処理方法。
【請求項１４】
請求の範囲８に記載の画像処理方法において、
上記量子化ステップ幅変更のステップでは、ブロック毎の画像の複雑さに応じた値であって量子化スケール値を設定するためのアクティビティが、上記色検出のステップの検出結果に基づき変更されることで、上記特定の色を示すブロックに対して、上記特定の色を示さないブロックに比べ、上記量子化手段での量子化ステップ幅がより小さく設定されることを特徴とする画像処理方法。
【請求項１５】
画像データの各ブロックが少なくとも１種類の特定の色を示すブロックか否かを検出する色検出のステップと、
上記画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化のステップと、
上記特定の色を示すブロックに対して、上記特定の色を示さないブロックに比べ、上記量子化のステップにおける量子化ステップ幅をより小さく設定する量子化ステップ幅変更のステップと
を有する画像処理方法をコンピュータ装置に実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
技術分野
この発明は、画像データをブロック単位で圧縮符号化する画像処理装置および方法、ならびに、画像処理プログラムに関する。
背景技術
従来から、画像データの圧縮符号化方式として、画像データを所定画素数から成るブロック単位で量子化を行うことで圧縮符号化するものが知られている。例えばＭＰＥＧ２（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ２）では、このような圧縮符号化方式が採用されている。ＭＰＥＧ２では、画像データを所定画素数から成るブロック単位でＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）し、得られたＤＣＴ係数に対して量子化を行うことで、画像データを圧縮符号化する。ＭＰＥＧ２では、量子化の際の量子化ステップを示す量子化スケール値が指定されて、ＤＣＴ係数の圧縮符号化が行われる。
また、従来より、例えばＭＰＥＧ２の圧縮符号化において、圧縮する画像の複雑さや滑らかさを示すアクティビティ（Ａｃｔｉｖｉｔｙ）という指数を算出し、このアクティビティに基づく適応量子化を用いて画質の最適化を図る方法が知られている。
これは、圧縮処理による画質劣化が視覚的に目立ちやすい、画像が単調で滑らかな領域（以下、平坦領域という）では、量子化ステップの細かい量子化スケール値を用いて細かく量子化し、これと反対に、画質劣化の目立ちにくい画像が複雑な領域では、量子化ステップの粗い量子化スケール値を用いて粗く量子化を行なう手法であり、限られた符号量の中で画質の最適化を図る有効な手法である。
ところで、画像データの圧縮を行なう場合、上述したように、各画像の領域を所定サイズの画素ブロックに分割し、各ブロック毎に量子化やＤＣＴを行なうことになる。ＭＰＥＧ２による規格では、８画素×８ラインのブロックが最小処理単位として規定される。この８画素×８ラインのブロックでＤＣＴを行ない、このＤＣＴにより得られたＤＣＴ係数を、１６画素×１６ラインのマクロブロック単位で量子化するように規定されている。
一方、上述したアクティビティの算出を行なう単位としては、明確な規定はないものの、ＭＰＥＧ２のＴＭ５（Ｔｅｓｔ  Ｍｏｄｅｌ  ５）においては、ＤＣＴブロックと同様の８画素×８ラインのサブブロックで処理することが提案されている。
以下、ＭＰＥＧ２のＴＭ５で採用された「視覚特性を考慮した適応量子化」におけるアクティビティの算出方法について説明する。
先ず、適応量子化とは、例えば１フレーム内での発生符号量を制御するために、画像の状態によって異なる量子化スケール値Ｑｊを用いて量子化を行うように、量子化スケール値Ｑｊを各マクロブロック毎のアクティビティにより変化させて、高画質を達成するものである。例えば、視覚的に画質劣化の目立ちやすい画像の平坦領域では、より細かい量子化ステップを有する量子化スケール値Ｑｊを用いて量子化を行い、画質劣化の比較的目立ちにくい絵柄の複雑な画像領域で、より粗い量子化ステップを有する量子化スケール値Ｑｊを用いて量子化を行うように、アクティビティにより量子化スケール値Ｑｊを変化させる。
アクティビティは、予測誤差でなく、原画における輝度信号の画素値を用い、フレームＤＣＴ符号化モードにおける４個のブロックと、フィールドＤＣＴ符号化モードにおける４個のブロックとの合計８個のブロックの画素値を用いて、ｊ番目のマクロブロックについて、以下の（１）から（３）式で与えられる演算を（３）から（１）に順に行なうことにより得られる。
ａｃｔｊ＝１＋ｍｉｎ［ｓｂｌｋ＝１，８］（ｖａｒ＿ｓｂｌｋ）
・・・（１）
ｖａｒ＿ｓｂｌｋ＝１／６４  Σ［ｋ＝１，６４］（Ｐｋ−Ｐａｖｇ）２
・・・（２）
Ｐａｖｇ＝１／６４  Σ［ｋ＝１，６４］Ｐｋ
・・・（３）
ここで、Ｐｋは原画の輝度信号ブロック内の画素値であり、（３）式では８画素×８ラインのブロック内の６４個の画素値を合計し、これを６４で割ることにより、画素値の平均値Ｐａｖｇを求めている。次に、（２）式では、平均値ＰａｖｇとＰｋとの差分をとり、８画素×８ラインのブロック内の平均差分値ｖａｒ＿ｓｂｌｋを算出している。さらに、（１）式において、平均差分値ｖａｒ＿ｓｂｌｋの最小値を採用し、マクロブロックのアクティビティａｃｔｊを求める。なお、ここで最小値を採用するのは、マクロブロック内の一部だけでも平坦な部分のある場合には、このマクロブロックに対する量子化を細かくする必要があるからである。
ところで、人間の色に対する視覚特性は、赤色の感度が高く、その劣化を検知しやすい。また、スタジオ撮影などにおいてクロマキーで用いられるブルーバックの青色なども、画像処理の観点からみて、劣化を抑えたい色である。
そのため、圧縮符号化処理を行うカラー画像を構成する色成分のうち、こうした、特に劣化を抑えたい特定の色成分を含む画像領域について、圧縮率を抑制し、より精細な色を表現することが望まれている。
発明の開示
したがって、この発明の目的は、色に対する人間の視覚特性を考慮し、特定の色成分を含む領域における圧縮率を抑制して視覚的効果を改善した画像処理装置および方法、ならびに、画像処理プログラムを提供することにある。
請求の範囲１に記載の発明は、上述した課題を解決するために、画像データの各ブロックが少なくとも１種類の特定の色を示すブロックか否かを検出する色検出手段と、画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化手段と、特定の色を示すブロックに対して、特定の色を示さないブロックに比べ、量子化手段における量子化ステップ幅をより小さく設定する量子化ステップ幅変更手段とを有することを特徴とする画像処理装置である。
また、請求の範囲８に記載の発明は、画像データの各ブロックが少なくとも１種類の特定の色を示すブロックか否かを検出する色検出のステップと、画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化のステップと、特定の色を示すブロックに対して、特定の色を示さないブロックに比べ、量子化のステップにおける量子化ステップ幅をより小さく設定する量子化ステップ幅変更のステップとを有することを特徴とする画像処理方法である。
また、請求の範囲１５に記載の発明は、画像データの各ブロックが少なくとも１種類の特定の色を示すブロックか否かを検出する色検出のステップと、画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化のステップと、特定の色を示すブロックに対して、特定の色を示さないブロックに比べ、量子化のステップにおける量子化ステップ幅をより小さく設定する量子化ステップ幅変更のステップとを有する画像処理方法をコンピュータ装置に実行させることを特徴とする画像処理プログラムである。
上述したように、この発明は、画像データの各ブロックが少なくとも１種類の特定の色を示すブロックか否かを検出すると共に、画像データをブロック毎に設定された量子化ステップ幅で量子化し、特定の色を示すブロックに対して、特定の色を示さないブロックに比べ、量子化ステップ幅をより小さく設定するようにしているため、人間の目の色に対する視覚特性を考慮した量子化を行うことができる。
発明を実施するための最良の形態
以下、この発明の実施の一形態について説明する。この発明では、画像データのブロック単位に、特定の色の画素を検出し、検出された画素の数がブロックの画素総数に対して閾値以上であるときに、当該ブロックに当該特定の色が検出されたとし、当該ブロックが含まれる画像領域における量子化スケール値をより小さい値として量子化ステップ幅を小さくして当該画像領域に対してより細かい量子化を行う。これにより、特定の色を含む画像領域において画質の劣化が抑えられ、色に対する視覚的効果が改善される。
この発明の実施の一形態では、背景技術において既に説明した、画像の複雑さを示すアクティビティの値を上述した色検出の結果に基づき修正することで、当該画像領域における量子化ステップ幅を変化させる。
なお、以下に説明するこの発明の実施の一形態は、この発明の好適な具体例であり、技術的に好ましい種々の限定が付されているが、この発明の範囲は、以下の説明において特にこの発明を限定する旨の記載がない限り、これらの態様に限定されないものとする。
次に、この発明の実施の一形態について説明する。第１図Ａおよび第１図Ｂは、この発明の実施の一形態が適用されたディジタルＶＴＲの一例の構成を示す。このディジタルＶＴＲは、ＭＰＥＧ方式により圧縮符号化されたディジタルビデオ信号を記録媒体に直接的に記録することができるようにしたものである。
先ず、このディジタルＶＴＲにおける記録系の構成および処理動作について説明する。この記録系に外部より入力される信号は、ＳＤＩ（Ｓｅｒｉａｌ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）信号およびＳＤＴＩ（Ｓｅｒｉａｌ  Ｄａｔａ  Ｔｒａｎｓｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ）信号の２種類のシリアルディジタルインターフェイス信号および制御信号である外部基準信号ＲＥＦである。
なお、ＳＤＩは、（４：２：２）コンポーネントビデオ信号とディジタルオーディオ信号と付加的データとを伝送するために、ＳＭＰＴＥによって規定されたインターフェイスである。また、ＳＤＴＩは、ディジタルビデオ信号がＭＰＥＧ方式で圧縮符号化されたストリームであるＭＰＥＧエレメンタリストリーム（以下、ＭＰＥＧ  ＥＳと称する）が伝送されるインターフェイスである。ＥＳは、４：２：２のコンポーネントであり、また、上述したように、全てＩピクチャのストリームであり、１ＧＯＰ＝１ピクチャの関係を有する。ＳＤＴＩ−ＣＰ（Ｃｏｎｔｅｎｔ  Ｐａｃｋａｇｅ）のフォーマットでは、ＭＰＥＧ  ＥＳがアクセスユニットへ分離され、また、フレーム単位のパケットにパッキングされている。ＳＤＴＩ−ＣＰでは、十分な伝送帯域（クロックレートで２７ＭＨｚまたは３６ＭＨｚ、ストリームビットレートで２７０Ｍ  ｂｐｓまたは３６０Ｍ  ｂｐｓ）を使用しており、１フレーム期間で、バースト的にＥＳを送ることが可能である。
ＳＤＩにより伝送されるＳＤＩ信号は、ＳＤＩ入力部１０１に入力される。ＳＤＩ入力部１０１では、入力されたＳＤＩ信号をシリアル信号からパラレル信号に変換して出力すると共に、ＳＤＩ信号に含まれる入力の位相基準である入力同期信号を抽出し、タイミングジェネレータＴＧ１０２に出力する。
また、ＳＤＩ入力部１０１は、変換したパラレル信号からビデオ信号とオーディオ信号とを分離する。分離されたビデオ入力信号とオーディオ入力信号は、それぞれＭＰＥＧエンコーダ１０３とディレイ回路１０４に出力される。
タイミングジェネレータＴＧ１０２は、入力された外部基準信号ＲＥＦから基準同期信号を抽出する。タイミングジェネレータＴＧでは、この基準同期信号とＳＤＩ入力部１０１から供給された入力同期信号とのうち、所定に指定された基準信号に同期して、このディジタルＶＴＲで必要なタイミング信号を生成し、タイミングパルスとして各ブロックに供給する。
ＭＰＥＧエンコーダ１０３は、入力されたビデオ入力信号を、ＤＣＴ変換して係数データに変換し、係数データを量子化した後、可変長符号化する。ＭＰＥＧエンコーダ１０３から出力される可変長符号化（ＶＬＣ）データは、ＭＰＥＧ２に準拠したエレメンタリストリーム（ＥＳ）である。この出力は、記録側のマルチフォーマットコンバータ（以下、記録側ＭＦＣと称する）１０６の一方の入力端に供給される。
なお、この実施の一形態では、ＭＰＥＧエンコーダ１０３における量子化を、上述したように、色成分に基づき量子化スケール値を変化させ、人間の色に対する視覚特性を考慮して行う。
ディレイ回路１０４は、入力されたオーディオ入力信号を、非圧縮データのままで、ＭＰＥＧエンコーダ１０３でのビデオ信号に対する処理のディレイに合わせるためのディレイラインの働きをするものである。このディレイ回路１０４で所定に遅延されたオーディオ信号は、ＥＣＣエンコーダ１０７に出力される。これは、この実施の一形態によるディジタルＶＴＲにおいて、オーディオ信号が非圧縮信号として扱われるためである。
外部からＳＤＴＩにより伝送され供給されたＳＤＴＩ信号は、ＳＤＴＩ入力部１０５に入力される。ＳＤＴＩ信号は、ＳＤＴＩ入力部１０５で同期検出される。そして、バッファに一旦溜め込まれ、エレメンタリストリームが抜き出される。抜き出されたエレメンタリストリームは、記録側ＭＦＣ１０６の他方の入力端に供給される。同期検出されて得られた同期信号は、上述したタイミングジェネレータＴＧ１０２に供給される（図示しない）。
なお、ＳＤＴＩ入力部１０５では、さらに、入力されたＳＤＴＩ信号からディジタルオーディオ信号を抽出する。抽出されたディジタルオーディオ信号は、ＥＣＣエンコーダ１０７に供給される。
このように、この実施の一形態によるディジタルＶＴＲは、ＳＤＩ入力部１０１から入力されるベースバンドのビデオ信号と独立して、ＭＰＥＧ  ＥＳを直接的に入力することができる。
記録側ＭＦＣ回路１０６は、ストリームコンバータとセレクタとを有し、ＭＰＥＧエンコーダ１０３およびＳＤＴＩ入力部１０５から供給されたＭＰＥＧ  ＥＳのうち、何れかが選択され、選択されたＭＰＥＧ  ＥＳのＤＣＴ係数を、１マクロブロックを構成する複数のＤＣＴブロックを通して周波数成分毎にまとめ、まとめた周波数成分を低周波数成分から順に並び替える。ＭＰＥＧ  ＥＳの係数が並べ替えられたストリームを、以下、変換エレメンタリストリームと称する。このようにＭＰＥＧ  ＥＳを再配置することにより、サーチ再生時にもなるべく多くのＤＣ係数と低次のＡＣ係数を拾い、サーチ画の品位向上に貢献している。変換エレメンタリストリームは、ＥＣＣエンコーダ１０７に供給される。
ＥＣＣエンコーダ１０７は、大容量のメインメモリが接続され（図示しない）、パッキングおよびシャフリング部、オーディオ用外符号エンコーダ、ビデオ用外符号エンコーダ、内符号エンコーダ、オーディオ用シャフリング部およびビデオ用シャフリング部などを内蔵する。また、ＥＣＣエンコーダ１０７は、シンクブロック単位でＩＤを付加する回路や、同期信号を付加する回路を含む。なお、実施の第１の形態では、ビデオ信号およびオーディオ信号に対するエラー訂正符号としては、積符号が使用される。積符号は、ビデオ信号またはオーディオ信号の２次元配列の縦方向に外符号の符号化を行い、その横方向に内符号の符号化を行い、データシンボルを２重に符号化するものである。外符号および内符号としては、リードソロモンコード（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ  ｃｏｄｅ）を使用できる。
ＥＣＣエンコーダ１０７には、ＭＦＣ回路１０６から出力された変換エレメンタリストリームが供給されると共に、ＳＤＴＩ入力部１０５およびディレイ回路１０４から出力されたオーディオ信号が供給される。ＥＣＣエンコーダ１０７では、供給された変換エレメンタリストリーム及びオーディオ信号に対してシャフリング及びエラー訂正符号化を施し、シンクブロック毎にＩＤおよび同期信号を付加し記録データとして出力する。
ＥＣＣエンコーダ１０７から出力された記録データは、記録アンプを含むイコライザＥＱ１０８で記録ＲＦ信号に変換される。記録ＲＦ信号は、回転ヘッドが所定に設けられた回転ドラム１０９に供給され、磁気テープ１１０上に記録される。回転ドラム１０９には、実際には、隣接するトラックを形成するヘッドのアジマスが互いに異なる複数の磁気ヘッドが取り付けられている。
記録データに対して必要に応じてスクランブル処理を行っても良い。また、記録時にディジタル変調を行っても良く、さらに、パーシャル・レスポンスクラス４とビタビ符号を使用しても良い。なお、イコライザ１０８は、記録側の構成と再生側の構成とを共に含む。
次に、このディジタルＶＴＲにおける再生系の構成および処理動作について説明する。再生時には、磁気テープ１１０から回転ドラム１０９で再生された再生信号が再生アンプなどを含むイコライザ１０８の再生側の構成に供給される。イコライザ１０８では、再生信号に対して、等化や波形整形などがなされる。また、ディジタル変調の復調、ビタビ復号等が必要に応じてなされる。イコライザ１０８の出力は、ＥＣＣデコーダ１１１に供給される。
ＥＣＣデコーダ１１１は、上述したＥＣＣエンコーダ１０７と逆の処理を行うもので、大容量のメインメモリと、内符号デコーダ、オーディオ用およびビデオ用それぞれのデシャフリング部ならびに外符号デコーダを含む。さらに、ＥＣＣデコーダ１１１は、ビデオ用として、デシャフリングおよびデパッキング部、データ補間部を含む。同様に、オーディオ用として、オーディオＡＵＸ分離部とデータ補間部を含む。
ＥＣＣデコーダ１１１では、再生データに対して同期検出を行い、シンクブロックの先頭に付加されている同期信号を検出してシンクブロックを切り出す。再生データは、シンクブロック毎の内符号のエラー訂正がなされ、その後、シンクブロックに対してＩＤ補間処理がなされる。ＩＤが補間された再生データは、ビデオデータとオーディオデータとに分離される。ビデオデータおよびオーディオデータは、それぞれデシャフリング処理され、記録時にシャフリングされたデータ順が元に戻される。デシャフリングされたデータは、それぞれ外符号のエラー訂正が行われる。
ＥＣＣデコーダ１１１において、エラー訂正能力を超え、訂正できないエラーがあるデータに関しては、エラーフラグがセットされる。ここで、ビデオデータのエラーに関しては、エラーを含むデータを指し示す信号ＥＲＲが出力される。
エラー訂正された再生オーディオデータは、ＳＤＴＩ出力部１１５に供給されると共に、ディレイ回路１１４で所定の遅延を与えられてＳＤＩ出力部１１６に供給される。ディレイ回路１１４は、後述するＭＰＥＧデコーダ１１３でのビデオデータの処理による遅延を吸収するために設けられる。
一方、エラー訂正されたビデオデータは、再生変換エレメンタリストリームとして再生側ＭＦＣ回路１１２に供給される。上述した信号ＥＲＲも、再生側ＭＦＣ回路１１２に供給される。再生側ＭＦＣ１１２は、上述した記録側ＭＦＣ１０６と逆の処理を行うものであって、ストリームコンバータを含む。ストリームコンバータでは、記録側のストリームコンバータと逆の処理がなされる。すなわち、ＤＣＴブロックに跨がって周波数成分毎に並べられていたＤＣＴ係数を、ＤＣＴブロック毎に並び替える。これにより、再生信号がＭＰＥＧ２に準拠したエレメンタリストリームに変換される。このとき、ＥＣＣデコーダ１１１から信号ＥＲＲが供給された場合は、対応するデータをＭＰＥＧ２に完全に準拠する信号に置き換えて出力する。
再生側ＭＦＣ回路１１２から出力されたＭＰＥＧ  ＥＳは、ＭＰＥＧデコーダ１１３およびＳＤＴＩ出力部１１５に供給される。ＭＰＥＧデコーダ１１３は、供給されたＭＰＥＧ  ＥＳを復号し、非圧縮の元のビデオ信号に戻す。すなわち、ＭＰＥＧデコーダ１１３は、供給されたＭＰＥＧ  ＥＳに対して逆量子化処理と、逆ＤＣＴ処理とを施す。復号されたビデオ信号は、ＳＤＩ出力部１１６に供給される。
上述したように、ＳＤＩ出力部１１６には、ＥＣＣデコーダ１１１でビデオデータと分離されたオーディオデータがディレイ１１４を介して供給されている。ＳＤＩ出力部１１６では、供給されたビデオデータとオーディオデータとを、ＳＤＩのフォーマットにマッピングし、ＳＤＩフォーマットのデータ構造を有するＳＤＩ信号へ変換される。このＳＤＩ信号が外部に出力される。
一方、ＳＤＴＩ出力部１１５には、上述したように、ＥＣＣデコーダ１１１でビデオデータと分離されたオーディオデータが供給されている。ＳＤＴＩ出力部１１５では、供給された、エレメンタリストリームとしてのビデオデータと、オーディオデータとをＳＤＴＩのフォーマットにマッピングし、ＳＤＴＩフォーマットのデータ構造を有するＳＤＴＩ信号へ変換されるこのＳＤＴＩ信号が外部に出力される。
なお、システムコントローラ１１７（第１図Ａおよび第１図Ｂ中ではシスコン１１７と略記する）は、例えばマイクロコンピュータからなり、信号ＳＹ＿ＩＯにより各ブロックと通信を行うことにより、このディジタルＶＴＲの全体の動作を制御する。また、図示されない操作パネルに設けられたスイッチ類が操作されると、操作に応じた制御信号がシステムコントローラ１１７に供給される。この制御信号に基づき、このディジタルＶＴＲでの記録、再生などの動作がシステムコントローラ１１７により制御される。
サーボ１１８は、信号ＳＹ＿ＳＶによりシスコンシステムコントローラ１１７と互いに通信を行いながら、信号ＳＶ＿ＩＯにより、磁気テープ１１０の走行制御や回転ドラム１０９の駆動制御などを行う。
第２図Ａ、第２図Ｂおよび第２図Ｃは、上述したＭＰＥＧエンコーダ１０３の一例の構成を示す。また、第２図Ａ、第２図Ｂおよび第２図Ｃの各部において転送されるストリームの構成例を、第３図Ａ、第３図Ｂおよび第３図Ｃ、第４図Ａ、第４図Ｂおよび第４図Ｃ、第５図Ａおよび第５図Ｂ、第６図Ａおよび第６図Ｂ、第７図Ａ、第７図Ｂおよび第７図Ｃ、第８図Ａ、第８図Ｂおよび第８図Ｃ、ならびに、第９図にそれぞれ示す。
ＭＰＥＧエンコーダ１０３は、入力フィールドアクティビティ平均化処理部１０３Ａ、プリエンコード処理部１０３Ｂおよびエンコード部１０３Ｃからなる。入力フィールドアクティビティ平均化処理部１０３Ａでは、入力されたビデオデータのアクティビティの平均値が求められてプリエンコード処理部１０３Ｂに渡される。プリエンコード処理部１０３Ｂでは、このアクティビティの平均値を用いて入力ビデオデータの量子化による発生符号量が見積もられる。この見積もり結果に基づき、エンコード部１０３Ｃにおいて、符号量制御しながら入力ビデオデータに対する実際の量子化が行われ、量子化されたビデオデータに対しさらに可変長符号化がなされ、ＭＰＥＧ  ＥＳとされて出力される。
なお、タイミングジェネレータＴＧ２２０は、例えば第１図Ａおよび第１図ＢのタイミングジェネレータＴＧ１０２から供給された水平同期信号ＨＤ、垂直同期信号ＶＤおよびフィールド同期信号ＦＬＤに基づき、ＭＰＥＧエンコーダ１０３内で必要とされるタイミング信号を生成し出力する。また、ＣＰＵ  Ｉ／Ｆブロック２２１は、第１図Ａおよび第１図Ｂのシステムコントローラ１１７とのインターフェイスであり、ＣＰＵ  Ｉ／Ｆブロック２２１を介してやりとりされた制御信号やデータにより、ＭＰＥＧエンコーダ１０３における動作が制御される。
先ず、入力フィールドアクティビティ平均化処理部１０３Ａの処理について説明する。ＳＤＩ入力部１０１から出力されＭＰＥＧエンコーダ１０３に入力されたビデオデータは、入力部２０１に供給され、メインメモリ２０３に格納するのに適したインターフェイスに変換されると共に、パリティチェックがなされる。入力部２０１から出力されたビデオデータは、ヘッダ作成部２０２に供給され、垂直ブランキング区間などを利用してＭＰＥＧにおける、ｓｅｑｕｅｎｃｅ＿ｈｅａｄｅｒ、ｑｕａｎｔｉｚｅｒ＿ｍａｔｒｉｘ、ｇｏｐ＿ｈｅａｄｅｒなどの各ヘッダが作成される。作成された各ヘッダは、メインメモリ２０３に格納される。これらのヘッダは、主に、ＣＰＵ  Ｉ／Ｆブロック２２１から指定される。また、ヘッダ作成部２０２において、垂直ブランキング区間以外では、入力部２０１から供給されたビデオデータがメインメモリ２０３に格納される。
メインメモリ２０３は、画像のフレームメモリであり、ビデオデータの再配列やシステムディレイの吸収などが行われる。ビデオデータの再配列は、例えば図示されないアドレスコントローラによりメインメモリ２０３からの読み出しアドレスを制御されることによりなされる。なお、第２図Ａ、第２図Ｂおよび第２図Ｃ中、メインメモリ２０３のブロック中に記載される８ライン、０．５フレームおよび１フレームは、ディレイ値であり、メインメモリ２０３からのリードタイミングが示される。これらは、タイミングジェネレータＴＧ２２０の指令に基づき適切に制御される。
ラスタスキャン／ブロックスキャン変換部２０４は、ライン毎にメインメモリ２０３に格納されたビデオデータを、ＭＰＥＧで扱うマクロブロック毎に切り出して後段のアクティビティ部２０５に送る。この実施の一形態では、第１フィールドだけを用いてアクティビティの計算を行うため、ラスタスキャン／ブロックスキャン変換部２０４から出力されるマクロブロックは、第１フィールド分のビデオデータにより構成される。
ラスタスキャン／ブロックスキャン変換部２０４から出力データとして出力されたストリームは、第３図Ａに一例が示されるように、垂直および水平方向のマクロブロックのアドレス情報が先頭に配され、所定サイズの空き領域の後ろに、１マクロブロック分のビデオデータが格納される。
なお、ストリームは、例えば８ビットを１ワードとして、５７６ワードのデータ長を有し、後半の５１２ワード（データ部と称する）が１マクロブロック分のビデオデータを格納する領域に割り当てられている。前半の６４ワード（ヘッダ部と称する）は、先頭に上述のマクロブロックのアドレス情報が格納され、その他の部分は、後段の各部にて埋め込まれるデータやフラグなどのため空き領域とされる。
ＭＰＥＧで扱うマクロブロックは、１６画素×１６ラインのマトリクスである。一方、この入力フィールドアクティビティ平均化処理部１０３Ａでは、第１フィールドだけによるアクティビティを求める処理を行う。そのため、第１フィールドの８ラインまでがメインメモリ２０３に格納された時点で処理を開始することができる。なお、実際には、タイミングジェネレータＴＧ２２０からの指令にて処理が適切に開始される。
アクティビティ部２０５は、マクロブロック毎のアクティビティを計算する。このＭＰＥＧエンコーダ１０３においては、第１フィールドだけからアクティビティが計算され、その計算結果がフィールドアクティビティ信号ｆｉｅｌｄ＿ａｃｔとして出力される。信号ｆｉｅｌｄ＿ａｃｔは、平均化部２０６に供給され、１フィールド分が積算され、その平均値ａｖｇ＿ａｃｔが求められる。平均値ａｖｇ＿ａｃｔは、後述するプリエンコード処理部１０３Ｂのアクティビティ部２０９に供給される。アクティビティ部２０９では、第１フィールドの平均値ａｖｇ＿ａｃｔを用いてマクロブロック毎にアクティビティの正規化処理が行われる。
したがって、第１フィールドにおけるアクティビティの平均値ａｖｇ＿ａｃｔが判明した後、その平均値を用いて、適応量子化を考慮したプリエンコード処理を行うことが可能となる。
次に、プリエンコード処理部１０３Ｂについて説明する。ラスタスキャン／ブロックスキャン変換部２０７Ａは、上述したラスタスキャン／ブロックスキャン変換部２０４と基本的には同様の処理を行う。但し、このラスタスキャン／ブロックスキャン変換部２０７Ａは、符号量の見積もりを行うプリエンコード処理のために行われるため、第１フィールドおよび第２フィールドのビデオデータが共に必要とされる。そのため、ラスタスキャン／ブロックスキャン変換部２０７Ａでは、第２フィールドの８ラインまでがメインメモリ２０３に格納された時点で、ＭＰＥＧで扱う１６画素×１６ラインのサイズのマクロブロックを構成することが可能となり、この時点で処理を開始することができる。なお、実際には、タイミングジェネレータＴＧ２２０からの指令によって、処理が適切に開始される。
ラスタスキャン／ブロックスキャン変換部２０７Ａから出力されたビデオデータは、ＤＣＴモード部２０８に供給される。ＤＣＴモード部２０８は、フィールドＤＣＴ符号化モードおよびフレームＤＣＴ符号化モードの何れを用いて符号化するかを決める。
ここでは、実際に符号化するのではなく、垂直方向に隣接した画素間差分値の絶対値和をフィールドＤＣＴ符号化モードで計算したものと、フレームＤＣＴ符号化モードで計算したものとが比較され、その値が小さい符号化モードが選択される。選択結果は、ＤＣＴモードタイプデータｄｃｔ＿ｔｙｐとしてストリーム中に一時的にフラグとして挿入され、後段に伝えられる。ＤＣＴモードタイプデータｄｃｔ＿ｔｙｐは、第３図Ｂに示されるように、ヘッダ部中の空き領域の後端側に格納される。
ＤＣＴモード部２０８から出力されたビデオデータは、図示されないサブブロック化部により、ＤＣＴモード部２０８で決定された符号化モードに応じて、マクロブロックがサブブロックに分割される。サブブロックに分割されたビデオデータは、アクティビティ部２０９に供給される。
アクティビティ部２０９は、上述したアクティビティ部２０５と、基本的には同様の処理を行う。ただし、このアクティビティ部２０９では、上述のように、プリエンコード処理を行うためのもので、第１フィールドおよび第２フィールドのデータが共に用いられて、マクロブロック毎のアクティビティが計算される。アクティビティ部２０９により、先ず、アクティビティａｃｔが求められ、第３図Ｃに示されるように、ヘッダ部のマクロブロックアドレスに続けて格納される。次に、このアクティビティａｃｔと上述した平均化部２０６から得られるフィールドアクティビティの平均値ａｖｇ＿ａｃｔとを用いて、正規化アクティビティＮａｃｔが求められる。
正規化アクティビティＮａｃｔは、正規化アクティビティデータｎｏｒｍ＿ａｃｔとして、第４図Ａに示されるように、ストリーム中のヘッダ部に一時的にフラグとして挿入され、後段に伝えられる。なお、上述のアクティビティａｃｔは、ストリーム中で、正規化アクティビティデータｎｏｒｍ＿ａｃｔに上書きされる。
一方、このアクティビティ部２０９において、サブブロック毎に画素の色成分が検出され、検出された色成分が特定の色として設定された範囲に含まれる画素の数が計数される。そして、計数結果が閾値、例えばサブブロックを構成する画素数の少なくとも１／２を超えていたら、当該サブブロックが含まれるマクロブロックに特定の色が検出されたと判定され、当該マクロブロックに対する正規化アクティビティデータｎｏｒｍ＿ａｃｔがより小さい値に修正される。
アクティビティ部２０９の出力は、ＤＣＴ部２１０Ａに供給される。ＤＣＴ部２１０Ａでは、供給されたマクロブロックを８画素×８ラインからなるＤＣＴブロックに分割し、ＤＣＴブロックに対して２次元ＤＣＴが行われ、ＤＣＴ係数が生成される。ＤＣＴ係数は、第４図Ｂに示されるように、ストリームのデータ部に格納され、量子化テーブル部２１１Ａに供給される。
量子化テーブル部２１１Ａでは、ＤＣＴ部２１０Ａで変換されたＤＣＴ係数に対して量子化マトリクス（ｑｕａｎｔｉｚｅｒ＿ｍａｔｒｉｘ）による量子化が行われる。量子化テーブル部２１１Ａで量子化されたＤＣＴ係数は、第４図Ｃに示されるように、ストリームのデータ部に格納され、出力される。量子化テーブル部２１１Ａの出力は、複数の量子化ブロック２１２、２１２、・・・、ＶＬＣ部２１３、２１３、・・・、積算部Σ２１４、２１４、・・・、ならびに、積算部Σ２１５、２１５、・・・とからなる多段階の量子化部に供給される。量子化テーブル部２１１Ａで量子化されたＤＣＴ係数は、この多段階ステップの量子化部で多段階に量子化される。
ＤＣＴ係数は、量子化ブロック２１２、２１２、・・・において、それぞれ異なった量子化スケール（ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ）値Ｑを用いて量子化される。なお、量子化スケール値Ｑは、例えばＭＰＥＧ２の規格によって予め決められており、量子化ブロック２１２、２１２、・・・は、この規格に基づき、量子化ステップ幅がそれぞれ異なる例えばｎ＝３１個の量子化器で構成される。そして、各量子化ブロック２１２、２１２、・・・がそれぞれに割り振られた量子化スケール値Ｑｎを用いて、ＤＣＴ係数の量子化が合計で３１ステップ、行われる。以下では、Ｑ＿ｎ部２１２、２１２、・・・において、それぞれに対応する量子化スケール値を量子化スケール値Ｑｎとする。
量子化ブロック２１２、２１２、・・・において、それぞれの量子化スケール値Ｑｎにより量子化が行われる。量子化ブロック２１２、２１２、・・・における量子化の結果は、整数部と小数部とに分けられて出力される。整数部は、量子化スケール値Ｑｎ毎のＤＣＴ係数として、それぞれ第５図Ａに示されるようにストリーム中のデータ部に格納され、ＶＬＣ部２１３、２１３、・・・にそれぞれ供給される。量子化スケール値Ｑｎ毎のＤＣＴ係数は、ＶＬＣ部２１３、２１３、・・・において、ジグザグスキャンなどのスキャニングが施され、２次元ハフマンコードなどに基づくＶＬＣテーブルが参照されてそれぞれ可変長符号化される。
ＶＬＣ部２１３、２１３、・・・で可変長符号化されたデータは、第５図Ｂに示されるようにストリーム中のデータ部に格納され、それぞれ出力される。ＶＬＣ部２１３、２１３、・・・の出力は、それぞれ対応する積算部Σ２１４、２１４、・・・に供給される。
積算部Σ２１４、２１４、・・・では、それぞれマクロブロック毎に発生符号量が積算される。上述のように３１種類の量子化器を用いる場合には、それぞれに対応する３１種類の発生符号量がマクロブロック毎に得られることになる。マクロブロック毎の発生符号量は、第６図Ａに示されるように、積算部Σ２１４、２１４、・・・において積算された発生符号量がストリーム中のヘッダ部に、各々格納される。すなわち、量子化ブロック２１２、２１２、・・・のそれぞれの量子化による発生符号量が、マクロブロック毎に、ストリームのヘッダ部に格納される。なお、ストリームのデータ部は、削除される。この、マクロブロック毎の発生符号量が埋め込まれたストリームは、メインメモリ２０３に供給され、後述するエンコード部１０３Ｃに供給される。
また、積算部Σ２１４、２１４、・・・から出力されたマクロブロック毎の発生符号量を用いて適応量子化が行われる。すなわち、上述のアクティビティ部２０９で得られた、色に対する視覚特性が考慮された正規化アクティビティデータｎｏｒｍ＿ａｃｔを用いて、次の式（４）により、視覚特性を考慮した量子化スケールであるｍｑａｕｎｔを求める。
ｍｑａｕｎｔ＝Ｑ＿ｎ×ｎｏｒｍ＿ａｃｔ      ・・・（４）
積算部Σ２１５、２１５、・・・は、視覚特性を考慮したｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ（＝ｍｑｕａｎｔ）で量子化した場合のマクロブロック毎の発生符号量に対応する符号量を、積算部Σ２１４で求めたマクロブロック毎の発生符号量の中から選択し、それを１フレーム分積算する。
積算部Σ２１５、２１５、・・・で量子化スケール値Ｑｎ毎にそれぞれ１フレーム分積算された値は、そのフレームにおける発生符号量（フレームデータレート）とされて、第６図Ｂに示されるように、ｎワードのストリームとされる。このフレームデータレートが埋め込まれたストリームは、後述するレートコントロール部２１７に供給される。なお、上述のように３１種類の量子化器を用いる場合には、それぞれに対応する３１種類の発生符号量がフレーム毎に得られることになる。
発生符号量を求める方法を、より具体的に説明する。例えば、「Ｑ＿４部２１２に対応する積算部Σ２１５によるフレームにおける発生符号量」は、次のようにして求められる。
例えば、
ｎｏｒｍ＿ａｃｔ［１］＝１．３
ｎｏｒｍ＿ａｃｔ［２］＝１．５
ｎｏｒｍ＿ａｃｔ［３］＝０．８
ｎｏｒｍ＿ａｃｔ［４］＝１．０
・・・
である場合、
ｍｑａｕｎｔ［１］＝４ｘ１．３＝５．２
：量子化スケール値Ｑｎ＝５である量子化ブロック２１２による発生符号量を、第６図Ａのヘッダ部から求める。
ｍｑａｕｎｔ［２］＝４ｘ１．５＝６．０
：量子化スケール値Ｑｎ＝６である量子化ブロック２１２による発生符号量を、第６図Ａのヘッダ部から求める。
ｍｑａｕｎｔ［３］＝４ｘ０．８＝３．２
：量子化スケール値Ｑｎ＝３である量子化ブロック２１２による発生符号量を、第６図Ａのヘッダ部から求める。
ｍｑａｕｎｔ［４］＝４ｘ１．０＝４．０
：量子化スケール値Ｑｎ＝４である量子化ブロック２１２による発生符号量を、第６図Ａのヘッダ部から求める。
・・・
以上を、１フレーム分、積算する。これを、Ｑ＿１部２１２〜Ｑ＿ｎ部２１２に対応する積算部Σ２１５、２１５、・・・対してそれぞれ行い、１フレーム分の発生符号量を求める。
次に、エンコード処理部１０３Ｃについて説明する。エンコード処理部１０３Ｃでは、最終的なエンコード処理が行われる。上述したように、プリエンコード処理部１０３Ｂにおいて、様々な量子化を行った場合の１フレーム分の発生符号量が見積もられる。エンコード処理部１０３Ｃでは、この１フレーム分で見積もられた発生符号量に基づき、予め設定された目標発生符号量を絶対に超えないようにエンコードが行われ、ＭＰＥＧ  ＥＳが出力される。
エンコード処理部１０３Ｃで用いられるデータは、既にメインメモリ２０３に格納されているが、上述したように、プリエンコード処理部１０３Ｂにより様々な量子化を行った場合の１フレームにおける発生符号量が見積もられた時点で処理を開始することができる。エンコード処理部１０３Ｃの各部における処理は、上述と同様に、タイミングジェネレータＴＧ２２０からの指令に基づき適切に開始される。
メインメモリ２０３から読み出されたビデオデータは、ラスタスキャン／ブロックスキャン変換部２０７Ｂにおいて、上述のラスタスキャン／ブロックスキャン変換部２０７Ａと同様の処理をされて１６画素×１６ラインのマクロブロックが切り出される。切り出されたマクロブロックは、第７図Ａに示されるように、上述した第６図Ａに示されるヘッダ部に対応するデータ部に格納され、ＤＣＴモード部２１６に供給される。
ＤＣＴモード部２１６では、上述のＤＣＴモード部２０８と同様に、フィールドＤＣＴ符号化モードおよびフレームＤＣＴ符号化モードのうち何れを用いて符号化するかが決められる。このとき、既にＤＣＴモード部２０８において符号化モードが決められ、その結果がＤＣＴタイプデータｄｃｔ＿ｔｙｐとしてストリーム中に一時的に挿入されている（第７図Ａ参照）。ＤＣＴモード部２１６では、ストリームからこのＤＣＴタイプデータｄｃｔ＿ｔｙｐを検出し、検出されたＤＣＴタイプデータｄｃｔ＿ｔｙｐに基づきフィールド符号化モードおよびフレーム符号化モードを切り換える。ＤＣＴモード部２１６の出力を第７図Ｂに示す。
ＤＣＴモード部２１６から出力されたマクロブロックは、ＤＣＴ部２１０Ｂに供給され、上述のＤＣＴ部２１０Ａと同様にして８画素×８ラインのＤＣＴブロック単位で２次元ＤＣＴされる。２次元ＤＣＴされたＤＣＴ係数は、第７図Ｃに示されるように、ストリーム中のデータ部に格納されて、ＤＣＴ部２１０Ｂから出力される。
量子化テーブル部２１１Ｂは、上述の量子化テーブル部２１１Ａと同様に構成することができ、ＤＣＴ部２１０Ｂで変換されたＤＣＴ係数に対して量子化マトリクスによる量子化が行われる。量子化テーブル部２１１Ｂで量子化されたＤＣＴ係数は、第８図Ａに示されるように、ストリーム中のデータ部に格納されてレートコントロール部２１７に供給される。
レートコントロール部２１７には、上述したプリエンコード処理部１０３Ｂにおいて積算部Σ２１５、２１５、・・・で得られた、各量子化スケール値Ｑｎ毎のフレームデータレートの中から、システムコントローラ１１７により設定される１フレーム当たりの最大発生符号量を超えないもので、且つ、最も設定値に近いものが選択されると共に、選択されたフレームデータレートに対応する量子化スケール値Ｑが取得される。このマクロブロック毎の量子化スケール値Ｑは、第８図Ｂに示されるように、ストリーム中のヘッダ部の後端側にｑａｕｎｔｉｓｅｒ＿ｓｃａｌｅとして格納され、量子化部２１８に伝えられる。
なお、残り符号量は、レートコントロール部２１７において、例えばシステムコントローラ１１７により設定されＣＰＵ  Ｉ／Ｆ２２１を介して供給される、１フレーム当たりの最大発生符号量（目標符号量）と、積算部Σ２１５、２１５、・・・から供給される各量子化スケール値Ｑｎ毎のフレームデータレートとから求めることができる。
また、システムコントローラ１１７で設定されＣＰＵ  Ｉ／Ｆ２２１を介して伝えられる、１フレームあたりの最大発生符号量と、レートコントロール部２１７で選択された、フレームデータレートの示す１フレーム当たりの発生符号量との差分を超えない範囲で、マクロブロック毎に量子化スケール（ｍｑｕａｎｔ）の値を１サイズ小さくするようにできる。これにより、システムコントローラ１１７で設定されＣＰＵ  Ｉ／Ｆ２２１を介して伝えられる１フレーム当たりの最大発生符号量に近付け、高画質を実現することが可能である。
量子化部２１８では、レートコントロール部２１７により上述のようにして指定される量子化スケール（ｑｕａｎｔｉｚｅｓ＿ｓｃａｌｅ）値をストリーム中から取り出し、取り出された量子化スケール値に基づき量子化テーブル部２１１Ｂで量子化されたＤＣＴ係数の量子化が行われる。このとき、レートコントロール部２１７から与えられる量子化スケール値は、正規化アクティビティデータｎｏｒｍ＿ａｃｔから求められた量子化スケール（ｍｑｕａｎｔ）の値であるため、色成分および画像の複雑さに基づく視覚特性が考慮された適応量子化が行われることになる。
量子化部２１８で量子化されたＤＣＴ係数は、第８図Ｃに示されるようにストリーム中のデータ部に格納され、ＶＬＣ部２１９に供給される。量子化されＶＬＣ部２１９に供給されたＤＣＴ係数は、ジグザグスキャンなどのスキャンニングが施され、２次元ハフマンコードに基づくＶＬＣテーブルが参照されてそれぞれ可変長符号化される。
このとき、ＶＬＣ部２１９までストリームの前半部を構成していたヘッダ部が第９図に示されるようにスライス層以下のＭＰＥＧのヘッダ情報が格納されるＭＰＥＧのヘッダ部にすげ替えられて出力される。可変長符号は、ストリームの後半側のデータ部に格納される。さらに、可変長符号に対して、バイト単位で整列するようにビットシフトが施され、ＭＰＥＧ  ＥＳとされて出力される。
第１０図は、アクティビティ部２０９の一例の構成を概略的に示す。ＤＣＴモード部２０８から出力されたビデオデータうち色差成分Ｃｂ、Ｃｒは、サブブロック化部３００でサブブロック化される。この実施の一形態では、１６画素×１６ラインのマクロブロックが分割され、４画素×４ラインのサブブロックが色差データＣｂ、Ｃｒ毎に形成される。
例えば、クロマフォーマットが４：２：２の場合には、第１１図Ａに示されるように、マクロブロックは、８画素×８ラインからなるＤＣＴブロック２個分の色差データＣｂ、Ｃｒを有し、色差データＣｒ、Ｃｂによるサブブロックがそれぞれ４個の、計８個のサブブロックが形成される。他の例として、クロマフォーマットが４：４：４の場合には、マクロブロックは、８画素×８ラインからなるＤＣＴブロック４個分の色差データＣｂ、Ｃｒを有し、色差データによるサブブロックが１６個、形成される。なお、４：２：２、４：４：４以外の他のクロマフォーマットについても、同様にしてサブブロックを形成することができる。
なお、第１１図Ａ、第１１図Ｂおよび第１１図Ｃにおいて、ラインの塗り分けでそのラインが属するフィールドが示される。
ここで、ＤＣＴモード部２０８でストリームに埋め込まれたＤＣＴモードタイプデータｄｃｔ＿ｔｙｐに基づき、符号化モードがフレームＤＣＴ符号化モードであるとされた場合には、第１１図Ｂに一例が示されるように、１サブブロック内に１フレームを構成する２フィールドのデータが混在される。一方、符号化モードがフィールド符号化モードであるとされた場合には、第１１図Ｃに一例が示されるように、１サブブロックが同一フィールドのデータで構成される。
上述では、サブブロック化をビデオデータの色差成分Ｃｂ、Ｃｒに対してのみ行うように説明したが、ビデオデータの輝度成分Ｙに対しても、同様にサブブロック化してもよい。
サブブロック化部３００から出力されたビデオデータのうち、輝度成分Ｙのデータがアクティビティ（Ｙ）部３０１に、色差成分Ｃｂ、Ｃｒのデータが色検出部３０２にそれぞれ供給される。
アクティビティ（Ｙ）部３０１では、供給されたビデオデータの輝度成分Ｙを用いて、上述したようにして、マクロブロック毎の正規化アクティビティＮａｃｔが求められる。正規化アクティビティＮａｃｔは、アクティビティ修正部３０３に供給される。一方、色検出部３０２では、供給されたビデオデータの色差データＣｂ、Ｃｒに基づき、サブブロック毎に特定の色が検出され、検出結果に基づきマクロブロックが特定の色を含むマクロブロックであるか否かが判定される。判定結果は、アクティビティ修正部３０３に供給される。
アクティビティ修正部３０３では、色検出部３０２から供給された判定結果に基づき、アクティビティ（Ｙ）部３０１から供給された正規化アクティビティＮａｃｔを修正する。修正された正規化アクティビティＮａｃｔは、正規化アクティビティデータｎｏｒｍ＿ａｃｔとして、ストリームに埋め込まれる。これら、色検出部３０２およびアクティビティ修正部３０３における処理の詳細は、後述する。
第１２図は、ＭＰＥＧエンコーダ１０３の処理をソフトウェアで行う場合の一例のフローチャートである。第１２図のフローチャートによる処理は、上述したハードウェアによる処理と同様なものであるので、以下では、ハードウェアにおける処理と対応させながら、概略的に説明する。
第１２図に示される処理のうち、ステップＳ１〜Ｓ７は、上述の入力フィールドアクティビティ平均化処理部１０３Ａによる処理に対応する。ステップＳ１１〜Ｓ２３は、上述のプリエンコード処理部１０３Ｂに対応する。また、ステップＳ３１〜Ｓ３８は、上述のエンコード処理部１０３Ｃに対応する。
最初のステップＳ１で、入力インターフェイスを介してビデオデータが取り込まれる。次のステップＳ２で、取り込まれたビデオデータから、垂直ブランキング区間でＭＰＥＧにおける各ヘッダが作成されメモリに格納される。垂直ブランキング区間以外では、取り込まれたビデオデータがメモリに格納される。
ステップＳ３では、ビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。これは、例えばメモリに格納されたビデオデータを読み出す際の読み出しアドレスを制御することでなされる。ステップＳ４で、マクロブロックに切り出されたビデオデータに対して第１フィールドによるアクティビティ計算がなされ、計算結果のアクティビティＡｃｔｉｂｉｔｙ（ａｃｔ）がステップＳ５で積算され、積算値ｓｕｍとしてメモリに格納される。これらステップＳ３〜Ｓ５までの処理は、ステップＳ６において第１フィールドの最終マクロブロックの処理が終了したと判断されるまで繰り返される。すなわち、積算値ｓｕｍは、１フィールド分のマクロブロックのアクティビティの合計となる。
ステップＳ６において１フィールドの最終マクロブロックまで処理が終了したと判断されたら、ステップＳ７で、メモリに格納された積算値ｓｕｍが１フィールド分のマクロブロック数で除され、１フィールド分のアクティビティが平均化されたフィールドアクティビティの平均値Ａｃｔｉｂｉｔｙ（ａｖｇ＿ａｃｔ）が求められ、メモリに格納される。
フィールドアクティビティの平均値Ａｃｔｉｂｉｔｙ（ａｖｇ＿ａｃｔ）が求められると、処理はステップＳ１１に移行する。ステップＳ１１では、上述のステップＳ３と同様に、メモリに格納されたビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。
次のステップＳ１２で、ＤＣＴをフィールドＤＣＴ符号化モードおよびフレームＤＣＴ符号化モードの何れで行うかが選択され、選択結果がＤＣＴモードタイプデータｄｃｔ＿ｔｙｐとしてメモリに格納される。ステップＳ１３では、第１および第２フィールドが共に用いられて、マクロブロック毎のアクティビティが計算され、上述のステップＳ７で求められメモリに格納されたフィールドアクティビティの平均値Ａｃｔｉｂｉｔｙ（ａｖｇ＿ａｃｔ）を用いて正規化アクティビティＡｃｔｉｂｉｔｙ（ｎｏｒｍ＿ａｃｔ）が求められる。求められた正規化アクティビティＡｃｔｉｂｉｔｙ（ｎｏｒｍ＿ａｃｔ）は、メモリに格納される。
ステップＳ１４で、マクロブロックの色が検出される。例えばメモリからサブブロック毎に読み出されたビデオデータの色差データＣｂ、Ｃｒに基づき、特定の色が検出され、検出結果に基づきマクロブロックが特定の色を含むか否かが判定される。次のステップＳ１５では、ステップＳ１４での判定結果に基づき、特定の色を含むとされたマクロブロックの正規化アクティビティＡｃｔｉｂｉｔｙ（ｎｏｒｍ＿ａｃｔ）が修正される。修正された正規化アクティビティＡｃｔｉｂｉｔｙ（ｎｏｒｍ＿ａｃｔ）は、例えば、メモリ上の元の正規化アクティビティＡｃｔｉｂｉｔｙ（ｎｏｒｍ＿ａｃｔ）に対して上書きされる。
次のステップＳ１６で、上述のステップＳ１１でビデオデータから切り出されたマクロブロックが８画素×８ラインからなるＤＣＴブロックに分割され、このＤＣＴブロックに対して２次元ＤＣＴが行われる。２次元ＤＣＴによりＤＣＴブロックが変換されたＤＣＴ係数は、ステップＳ１７で量子化テーブル（ｑｕａｎｔｉｚｅｒ＿ｔａｂｌｅ）による量子化がなされ、処理はステップＳ１８に移行される。
ステップＳ１８〜Ｓ２１の処理を、量子化スケール（ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ）値Ｑｎそれぞれについて行うように繰り返すことで、上述のＱ＿ｎ部２１２、２１２、・・・、ＶＬＣ部２１３、２１３、・・・、積算部Σ２１４、２１４、・・・、ならびに、積算部Σ２１５、２１５、・・・に相当する処理が行われる。すなわち、ステップＳ１８で、ＤＣＴ係数に対して量子化スケール値Ｑ＝１での量子化が行われる。
ステップＳ１８で量子化されたＤＣＴ係数は、ステップＳ１９で、ＶＬＣテーブルが参照されて可変長符号化される。そして、ステップＳ２０で可変長符号化によるマクロブロックにおける発生符号量が計算され、メモリに格納される。ステップＳ２１で次の量子化スケール値Ｑがあるか否かが判断され、次の量子化スケール値Ｑがあると判断されたら（ＹＥＳ）、処理はステップＳ１８に戻され、次の量子化スケール値Ｑに基づく処理が行われる。
一方、ステップＳ２１で、全ての量子化スケール値Ｑｎの値について、マクロブロックにおける発生符号量の積算値が求められたとされれば、ステップＳ２２で、ステップＳ２０で求められたマクロブロック毎の発生符号量が１フレーム分、積算される。このとき、上述したｍｑｕａｎｔによる視覚特性を利用した適応量子化が行われる。ステップＳ２３で、１フレームの最終マクロブロック（ＭＢ）まで処理が終了したかどうかが判断され、最終マクロブロックまでの処理が終了していないと判断されたら、処理がステップＳ１１に戻される。一方、最終マクロブロックまでの処理が終了され、１フレーム分の発生符号量が見積もられれば、量子化スケール値Ｑｎ毎の適応量子化による１フレーム分の発生符号量は、それぞれメモリに格納され、処理はステップＳ３１に移行され、実際のエンコード処理が行われる。
ステップＳ３１では、上述のステップＳ１１と同様に、メモリに格納されたビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。次のステップＳ３２では、上述のステップＳ１２でメモリに格納されたＤＣＴモードタイプデータｄｃｔ＿ｔｙｐに基づきＤＣＴ符号化モードが設定される。
ステップＳ３３では、ステップＳ３１でビデオデータから切り出されたマクロブロックが８画素×８ラインからなるＤＣＴブロックに分割され、このＤＣＴブロックに対して２次元ＤＣＴが行われる。２次元ＤＣＴによりＤＣＴブロックが変換されたＤＣＴ係数は、ステップＳ３４で量子化テーブル（ｑｕａｎｔｉｚｅｒ＿ｔａｂｌｅ）による量子化がなされ、処理はステップＳ３５に移行される。
ステップＳ３５では、上述したステップＳ１１〜Ｓ２３において見積もられた、量子化スケール値Ｑ毎の１フレーム分の発生符号量に基づき、実際のエンコード処理において発生される符号量の制御を行うために、後述するステップＳ３６で用いられる量子化スケール値Ｑがマクロブロック毎に設定される。
次のステップＳ３６では、ステップＳ３５で設定された量子化スケール値Ｑを用いて、ステップＳ３４で量子化テーブルを用いて量子化されたＤＣＴ係数の量子化が行われる。
ステップＳ３６で量子化されたＤＣＴ係数は、次のステップＳ３７でＶＬＣテーブルが参照され可変長符号化される。そして、ステップＳ３８で１フレームの最終マクロブロックまで処理が行われたか否かが判断され、１フレームの最終マクロブロックまで処理されていないと判断されれば（ＮＯ）、処理がステップＳ３１に戻され、次のマクロブロックに対する量子化処理および可変長符号化処理が行われる。一方、ステップＳ３８で、１フレームの最終マクロブロックまで処理が行われたと判断されれば、１フレーム分のエンコード処理が終了したとされる。
なお、上述では、ステップＳ１１〜Ｓ２３までのプリエンコード処理と、ステップＳ３１〜Ｓ３８までのエンコード処理とを別々の処理として説明したが、これはこの例に限定されない。例えば、ステップＳ１１〜Ｓ２３において発生符号量の見積もりにより得られたデータをメモリに格納し、そこから実際のエンコード処理により得られるデータを選択して取り出すようにする。これにより、ステップＳ３１〜Ｓ３８の処理をステップＳ１１〜Ｓ２３による処理に含まれるループとして組み込むことができる。
次に、この発明の実施の一形態による、色検出によるアクティビティの修正について説明する。以下に説明するアクティビティの修正処理は、上述した第２図Ａ、第２図Ｂおよび第２図Ｃにおいてはアクティビティ部２０９、第１２図においてはステップＳ１４およびＳ１５で行われる。
ＭＰＥＧ２による圧縮符号化において、アクティビティに基づく適応量子化を用いて画質の最適化を図る方法では、画像中、視覚的に劣化の目立ち易い平坦部では小さな量子化スケール値を用いて量子化ステップを小さくして細かく量子化し、劣化の目立ちにくい複雑な部分では大きな量子化スケール値を用いて量子化ステップを大きくして粗く量子化する。これは、限られた符号量の範囲で画質を最適化する、有効な方法である。
しかしながら、アクティビティに基づく適応量子化においては、人間の画像に対する色による視覚特性については、考慮されていない。例えば、人間の色に対する視覚特性は、赤色の感度が高く、その劣化を検知しやすい。また、クロマキーで用いられるブルーバックの青色なども、画像処理の観点からみて、劣化を抑えたい色である。
そこで、この発明の実施の一形態では、このような劣化を防止したい色を検出し、その色を含むマクロブロックの量子化ステップ幅を小さくして当該マクロブロックをより細かく量子化することで、画質の劣化を抑制する。
具体的には、検出したい色を色差Ｃｂ、Ｃｒで表される色差平面（Ｃｂ、Ｃｒ）上の範囲として設定し、上述した４画素×４ラインのサブブロック毎に、サブブロック内の画素の色差信号Ｃｂ、Ｃｒが設定された色差平面（Ｃｂ、Ｃｒ）上の範囲内にあるか否かを判定し、範囲内にあると判定された画素の個数をサブブロック毎に計数する。計数値が閾値を超えた場合、当該サブブロックは、設定された色が検出されたものと判定する。閾値としては、サブブロックに含まれる画素総数の少なくとも１／２以上、例えばサブブロックの画素総数の２／３以上が設定される。この場合、４画素×４ラインのサブブロックに含まれる総計１６個の画素のうち、１１画素以上が計数された場合に、当該サブブロックは、設定された色が検出されたものと判定される。
そして、１マクロブロックに含まれるサブブロックのうち少なくとも１個が、設定された色が検出されたサブブロックであると判定された場合、当該マクロブロックは、設定された色を含むマクロブロックであると判定される。
すなわち、クロマフォーマットが４：２：２の場合は、１マクロブロックに含まれる８個のサブブロックのうち少なくとも１個が、設定された色が検出されたサブブロックであるとされれば、当該マクロブロックは、設定された色を含むマクロブロックであるとされる。同様に、クロマフォーマットが４：４：４の場合は、１マクロブロックに含まれる１６個のサブブロックのうち１個が、設定された色が検出されたサブブロックであるとされれば、当該マクロブロックは、設定された色を含むマクロブロックであるとされる。これは、クロマフォーマットが４：２：２や４：４：４の場合に限らず、他の構成のクロマフォーマットの場合においても同様である。
検出したい色の設定方法について説明する。第１３図は、色差ＣｂおよびＣｒをそれぞれ横軸および縦軸とした、色差平面（Ｃｂ，Ｃｒ）を示す。任意の色は、この色差平面（Ｃｂ，Ｃｒ）上の１点として表現される。一例として、赤色（Ｒ）、青色（Ｂ）および緑色（Ｇ）の色差平面（Ｃｂ，Ｃｒ）上の位置を、「＋（プラス）」印でそれぞれ示す（点Ｒ、点Ｂ、点Ｇ）。この実施の一形態では、検出したい色を、この色差平面（Ｃｂ，Ｃｒ）上の範囲として設定する。
検出したい色としての赤色（Ｒ）は、第１３図において、点Ｒを含む、斜線で塗り潰された範囲として設定される。すなわち、赤色は、色差平面（Ｃｂ，Ｃｒ）上で、直線α、Ｃｂ＝１２８、Ｃｒ＝２５５、Ｃｒ＝１７６で囲まれた範囲として設定される。なお、直線αは、下記の式（５）で表される。
Ｃｒ＝−２Ｃｂ＋３８４        ・・・（５）
検出したい色としての青色（Ｂ）は、第１３図において、点Ｂを含む、斜線で塗り潰された範囲として設定される。すなわち、青色は、色差平面（Ｃｂ，Ｃｒ）上で、直線β、Ｃｒ＝１２８、Ｃｂ＝１７６、Ｃｂ＝２５５で囲まれた範囲として設定される。なお、直線βは、下記の式（６）で表される。
Ｃｒ＝（−１／２）Ｃｂ＋１９２        ・・・（６）
検出したい色としての緑色（Ｇ）は、第１３図において、点Ｇを含む、網線で塗り潰された範囲として設定される。すなわち、緑色は、色差平面（Ｃｂ，Ｃｒ）上で、Ｃｒ＝３２、Ｃｒ＝０、Ｃｂ＝４８、Ｃｂ＝１６で囲まれた範囲として設定される。
なお、上述の範囲は一例であって、これに限定されるものではない。すなわち、検出したい色と色味が似通った色を示すことができればば、他の方法で範囲を設定してもよい。例えば、上述では、赤色と青色の範囲をそれぞれ傾斜した直線αおよびβを用いて設定しているが、赤色および／または青色の範囲を、緑色の範囲設定の例のように矩形で設定することもできる。上述では範囲が直線で囲まれているものとしたが、曲線で囲むような範囲を設定することもできる。また、上述では、検出したい色を赤色、青色および緑色としたが、この例に限定されず、赤色、青色および緑色の何れか一色（若しくは二色）を検出したい色として設定してもよいし、赤色、青色および緑色以外の色を検出したい色として設定することも可能である。
このように設定された範囲に対して、サブブロック毎に、サブブロックに含まれる画素の色差Ｃｂの色差レベルＣｂ［ｐ］と、色差Ｃｒの色差レベルＣｒ［ｐ］とが比較され、当該画素の色が設定された範囲内の色であるか否かが判定される。そして、範囲内の色であると判定された画素数がサブブロック毎に計数される。計数された画素数が閾値以上であるサブブロックがマクロブロック内に少なくとも１個あれば、当該マクロブロックが特定色のマクロブロックであるとされ、当該マクロブロックに対して特定色に対応した量子化優遇値が選択される。この量子化優遇値を正規化アクティビティＮａｃｔに乗ずることにより、正規化アクティビティＮａｃｔを修正する。
検出したい色を赤色（Ｒ）、青色（Ｂ）および緑色（Ｇ）として、各色の検出方法について、より詳細に説明する。
先ず、赤色（Ｒ）の検出方法について、下記の式を用いて説明する。なお、下記に示す式は、コンピュータ装置などのプログラムの記述言語として用いられるＣ言語の記述法に基づく。また、各行の先頭の数字＋「：」は、説明に用いる行番号を示す。
2003015423.tif 000003
１行目で、赤色に対する量子化優遇値Ｒ＿ｄｅｔの初期値が〔１．０〕に設定される。２行目では、以下のサブブロック毎の処理が１マクロブロックに含まれるサブブロックの個数分、繰り返されることが示される。１マクロブロックに含まれるサブブロックの個数は、値ｎｕｍ＿ｏｆ＿ｂｌｏｃｋで与えられ、例えばクロマフォーマットが４：２：２のときは、値ｎｕｍ＿ｏｆ＿ｂｌｏｃｋが〔８〕とされ、４：４：４のときは、値ｎｕｍ＿ｏｆ＿ｂｌｏｃｋが〔１６〕とされる。３行目では、赤色と判定される画素の個数を示す計数値Ｒ＿ｃｎｔが初期化される。
４行目では、サブブロック内の画素数分、以下５行目および６行目の処理が繰り返されることが示される。５行目で、第１３図を用いて説明した赤色の範囲（点Ｒを含む斜線で塗り潰された範囲）が示され、サブブロック内のｐ番目の画素ｐが赤色であるか否かが判定される。すなわち、画素ｐにおける色差レベルＣｂ［ｐ］およびＣｒ［ｐ］が５行目に示される条件を満たしているか否かが判定され、満たしているとされた場合に、画素ｐが赤色であるとされる。なお、記号「＆＆」は、論理積「ＡＮＤ」を示す。若し、画素ｐが赤色であると判定されたら、６行目で、計数値Ｒ＿ｃｎｔが〔１〕だけインクリメントされる。
この判定がサブブロック内の１６画素に対して全てなされたら、８行目で、計数値Ｒ＿ｃｎｔが予め与えられたパラメータＲ＿ｎｕｍと比較される。パラメータＲ＿ｎｕｍは、サブブロック内の画素総数のうち何画素以上が赤色であると判定された場合に、当該サブブロックが赤色を検出したとするかを設定する閾値である。このとき、パラメータＲ＿ｎｕｍは、ランダムノイズなどを誤検出せず、一塊りの連続的な赤色を検出するために、サブブロックの画素総数に対して少なくとも１／２以上の値が設定される。この実施の一形態では、パラメータＲ＿ｎｕｍとしてサブブロックの画素総数〔１６〕の３／４である〔１２〕が設定される。
８行目の計数値Ｒ＿ｃｎｔとパラメータＲ＿ｎｕｍとの比較の結果、計数値Ｒ＿ｃｎｔがパラメータＲ＿ｎｕｍ以上であると判断されたら、９行目で、赤色に対する量子化優遇値Ｒ＿ｄｅｔに対して、予め与えられたパラメータＲ＿ｓｃａｌｅが設定される。パラメータＲ＿ｓｃａｌｅは、この例では〔０．５〕とされる。
１０行目の「ｂｒｅａｋ」は、ここで上述の２行目で繰り返し回数を設定されたループ処理から抜けることが示される。すなわち、１マクロブロックに含まれるサブブロックのうち、計数値Ｒ＿ｃｎｔがパラメータＲ＿ｎｕｍ以上のサブブロックが１個でもあれば、当該マクロブロックに対する処理が終了される。また、各サブブロックにおいて、計数値Ｒ＿ｃｎｔがパラメータＲ＿ｎｕｍに達した時点で、ループ処理から抜け、処理が終了される。処理が終了されると、当該マクロブロックに対して、赤色に対する量子化優遇値Ｒ＿ｄｅｔがパラメータＲ＿ｓｃａｌｅの値に設定される。
この量子化優遇値Ｒ＿ｄｅｔがマクロブロックに適用された場合、そのマクロブロックに対する量子化スケール値が量子化優遇値Ｒ＿ｄｅｔに応じて小さい値に変更され量子化ステップ幅が小さくされ、より細かく量子化が行われることになる。すなわち、量子化優遇値Ｒ＿ｄｅｔが正規化アクティビティＮａｃｔに乗ぜられ、その正規化アクティビティＮａｃｔを量子化スケール値に乗ずることによって得られた、視覚特性を考慮した量子化スケール値ｍｑｕａｎｔを用いて、実際の量子化が行われる。したがって、この例では、量子化スケール値ｍｑｕａｎｔが赤色の検出を行わない場合の０．５倍とされ、量子化の際の発生符号量が優遇され、より細かい量子化がなされる。
なお、上述の式の５行目を下記のようにして、色差平面（Ｃｂ，Ｃｒ）上の赤色の範囲を矩形で与えるようにしてもよい。
５’：ｉｆ（（Ｃｂ［ｐ］＞＝Ｒ＿Ｃｂ＿ｌｏｗｅｒ）＆＆（Ｃｂ［ｐ］＜＝Ｒ＿Ｃｂ＿ｕｐｐｅｒ）＆＆（Ｃｒ［ｐ］＞＝Ｒ＿Ｃｒ＿ｌｏｗｅｒ）＆＆（Ｃｒ［ｐ］＜＝Ｒ＿Ｃｒ＿ｕｐｐｅｒ）
ここで、色差平面（Ｃｂ，Ｃｒ）上の範囲を示すパラメータＲ＿Ｃｂ＿ｌｏｗｅｒ、Ｒ＿Ｃｂ＿ｕｐｐｅｒ、Ｒ＿Ｃｒ＿ｌｏｗｅｒおよびＲ＿Ｃｒ＿ｕｐｐｃｒ（第１３図参照）を、例えば下記のように与える。
Ｒ＿Ｃｂ＿ｌｏｗｅｒ＝６４
Ｒ＿Ｃｂ＿ｕｐｐｅｒ＝１２８
Ｒ＿Ｃｒ＿ｌｏｗｅｒ＝１７６
Ｒ＿Ｃｒ＿ｕｐｐｅｒ＝２５５
次に、青色（Ｂ）の検出方法について、下記の式を用いて説明する。なお、下記に示す式は、コンピュータ装置などのプログラムの記述言語として用いられるＣ言語の記述法に基づく。また、各行の先頭の数字＋「：」は、説明に用いる行番号を示す。
2003015423.tif 000004
１行目で、青色に対する量子化優遇値Ｂ＿ｄｅｔの初期値が〔１．０〕に設定される。２行目では、以下のサブブロック毎の処理が１マクロブロックに含まれるサブブロックの個数分、繰り返されることが示される。１マクロブロックに含まれるサブブロックの個数は、値ｎｕｍ＿ｏｆ＿ｂｌｏｃｋで与えられ、例えばクロマフォーマットが４：２：２のときは、値ｎｕｍ＿ｏｆ＿ｂｌｏｃｋが〔８〕とされ、４：４：４のときは、値ｎｕｍ＿ｏｆ＿ｂｌｏｃｋが〔１６〕とされる。３行目では、青色と判定される画素の個数を示す計数値Ｂ＿ｃｎｔが初期化される。
４行目では、サブブロック内の画素数分、以下５行目および６行目の処理が繰り返されることが示される。５行目で、第１３図を用いて説明した青色の範囲（点Ｂを含む斜線で塗り潰された範囲）が示され、サブブロック内のｐ番目の画素ｐが青色であるか否かが判定される。すなわち、画素ｐにおける色差レベルＣｂ［ｐ］およびＣｒ［ｐ］が５行目に示される条件を満たしているか否かが判定され、満たしているとされた場合に、画素ｐが青色であるとされる。若し、画素ｐが青色であると判定されたら、６行目で、計数値Ｂ＿ｃｎｔが１だけインクリメントされる。
この判定がサブブロック内の１６画素に対して全てなされたら、８行目で、計数値Ｂ＿ｃｎｔが予め与えられたパラメータＢ＿ｎｕｍと比較される。パラメータＢ＿ｎｕｍは、サブブロック内の画素総数のうち何画素以上が青色であると判定された場合に、当該サブブロックが青色を検出したとするかを設定する閾値である。このとき、パラメータＢ＿ｎｕｍは、ランダムノイズなどを誤検出せず、一塊りの連続的な青色を検出するために、サブブロックの画素総数に対して少なくとも１／２以上の値が設定される。この実施の一形態では、パラメータＢ＿ｎｕｍとしてサブブロックの画素総数〔１６〕の３／４である〔１２〕が設定される。
８行目の計数値Ｂ＿ｃｎｔとパラメータＢ＿ｎｕｍとの比較の結果、計数値Ｂ＿ｃｎｔがパラメータＢ＿ｎｕｍ以上であると判断されたら、９行目で、青色に対する量子化優遇値Ｂ＿ｄｅｔに対して、予め与えられたパラメータＢ＿ｓｃａｌｅが設定される。パラメータＢ＿ｓｃａｌｅは、この例では〔０．７５〕とされる。
１０行目の「ｂｒｅａｋ」は、ここで上述の２行目で繰り返し回数を設定されたループ処理から抜けることが示される。すなわち、１マクロブロックに含まれるサブブロックのうち、計数値Ｂ＿ｃｎｔがパラメータＢ＿ｎｕｍ以上のサブブロックが１個でもあれば、当該マクロブロックに対する処理が終了され、当該マクロブロックに対して、青色に対する量子化優遇値Ｂ＿ｄｅｔがパラメータＢ＿ｓｃａｌｅの値に設定される。
この量子化優遇値Ｂ＿ｄｅｔがマクロブロックに適用された場合も、上述の赤色検出の場合と同様である。この青色の検出の場合には、量子化スケール値ｍｑｕａｎｔが青色の検出を行わない場合の０．７５倍に変更され、量子化の際の発生符号量が優遇され、細かい量子化がなされる。
なお、上述の式の５行目を下記のようにして、色差平面（Ｃｂ，Ｃｒ）上の青色の範囲を矩形で与えるようにしてもよい。
５’：ｉｆ（（Ｃｂ［ｐ］＞＝Ｂ＿Ｃｂ＿ｌｏｗｅｒ）＆＆（Ｃｂ［ｐ］＜＝Ｂ＿Ｃｂ＿ｕｐｐｅｒ）＆＆（Ｃｒ［ｐ］＞＝Ｂ＿Ｃｒ＿ｌｏｗｅｒ）＆＆（Ｃｒ［ｐ］＜＝Ｂ＿Ｃｒ＿ｕｐｐｅｒ）
ここで、色差平面（Ｃｂ，Ｃｒ）上の範囲を示すパラメータＢ＿Ｃｂ＿ｌｏｗｅｒ、Ｂ＿Ｃｂ＿ｕｐｐｅｒ、Ｂ＿Ｃｒ＿ｌｏｗｅｒおよびＢ＿Ｃｒ＿ｕｐｐｅｒ（第１３図参照）を、例えば下記のように与える。
Ｂ＿Ｃｂ＿ｌｏｗｅｒ＝１７６
Ｂ＿Ｃｂ＿ｕｐｐｅｒ＝２５５
Ｂ＿Ｃｒ＿ｌｏｗｅｒ＝６４
Ｂ＿Ｃｒ＿ｕｐｐｅｒ＝１２８
次に、緑色（Ｇ）の検出方法について、下記の式を用いて説明する。なお、下記に示す式は、コンピュータ装置などのプログラムの記述言語として用いられるＣ言語の記述法に基づく。また、各行の先頭の数字＋「：」は、説明に用いる行番号を示す。
2003015423.tif 000005
2003015423.tif 000006
１行目で、緑色に対する量子化優遇値Ｇ＿ｄｅｔの初期値が〔１．０〕に設定される。２行目では、以下のサブブロック毎の処理が１マクロブロックに含まれるサブブロックの個数分、繰り返されることが示される。１マクロブロックに含まれるサブブロックの個数は、値ｎｕｍ＿ｏｆ＿ｂｌｏｃｋで与えられ、例えばクロマフォーマットが４：２：２のときは、値ｎｕｍ＿ｏｆ＿ｂｌｏｃｋが〔８〕とされ、４：４：４のときは、値ｎｕｍ＿ｏｆ＿ｂｌｏｃｋが〔１６〕とされる。３行目では、緑色と判定される画素の個数を示す計数値Ｇ＿ｃｎｔが初期化される。
４行目では、サブブロック内の画素数分、以下５行目および６行目の処理が繰り返されることが示される。５行目で、第１３図を用いて説明した緑色の範囲（点Ｇを含む点線斜線で塗り潰された範囲）が示され、サブブロック内のｐ番目の画素ｐが緑色であるか否かが判定される。すなわち、画素ｐにおける色差レベルＣｂ［ｐ］およびＣｒ［ｐ］が５行目に示される条件を満たしているか否かが判定され、満たしているとされた場合に、画素ｐが緑色であるとされる。若し、画素ｐが緑色であると判定されたら、６行目で、計数値Ｇ＿ｃｎｔが１だけインクリメントされる。
なお、色差平面（Ｃｂ，Ｃｒ）上の範囲を示すパラメータＧ＿Ｃｂ＿ｌｏｗｅｒ、Ｇ＿Ｃｂ＿ｕｐｐｅｒ、Ｇ＿Ｃｒ＿ｌｏｗｅｒおよびＧ＿Ｃｒ＿ｕｐｐｅｒ（第１３図参照）を、例えば下記のように与える。
Ｇ＿Ｃｂ＿ｌｏｗｅｒ＝１６
Ｇ＿Ｃｂ＿ｕｐｐｅｒ＝４８
Ｇ＿Ｃｒ＿ｌｏｗｅｒ＝０
Ｇ＿Ｃｒ＿ｕｐｐｅｒ＝３２
この判定がサブブロック内の１６画素に対して全てなされたら、８行目で、計数値Ｇ＿ｃｎｔが予め与えられたパラメータＧ＿ｎｕｍと比較される。パラメータＧ＿ｎｕｍは、サブブロック内の画素総数のうち何画素以上が緑色であると判定された場合に、当該サブブロックが緑色を検出したとするかを設定する閾値である。このとき、パラメータＧ＿ｎｕｍは、ランダムノイズなどを誤検出せず、一塊りの連続的な緑色を検出するために、サブブロックの画素総数に対して少なくとも１／２以上の値が設定される。この実施の一形態では、パラメータＧ＿ｎｕｍとしてサブブロックの画素総数〔１６〕の３／４である〔１２〕が設定される。
８行目の計数値Ｇ＿ｃｎｔとパラメータＧ＿ｎｕｍとの比較の結果、計数値Ｇ＿ｃｎｔがパラメータＧ＿ｎｕｍ以上であると判断されたら、９行目で、緑色に対する量子化優遇値Ｇ＿ｄｅｔに対して、予め与えられたパラメータＧ＿ｓｃａｌｅが設定される。パラメータＧ＿ｓｃａｌｅは、この例では〔１〕とされる。この場合には、緑色が検出されたにもかかわらず、緑色検出を行わない場合に対して量子化スケール値ｍｑｕａｎｔが変化せず、量子化の際の発生符号量が優遇されない。
１０行目の「ｂｒｅａｋ」は、ここで上述の２行目で繰り返し回数を設定されたループ処理から抜けることが示される。すなわち、１マクロブロックに含まれるサブブロックのうち、計数値Ｇ＿ｃｎｔがパラメータＧ＿ｎｕｍ以上のサブブロックが１個でもあれば、当該マクロブロックに対する処理が終了され、当該マクロブロックに対して、緑色に対する量子化優遇値Ｇ＿ｄｅｔがパラメータＧ＿ｓｃａｌｅの値に設定される。
次に、同一のマクロブロックにおいて、複数色について量子化優遇値が検出された場合の、最終的な量子化優遇値の決定方法について説明する。同一のマクロブロックにおいて、例えば、赤色、青色および緑色の各色の量子化優遇値Ｒ＿ｄｅｔ、Ｂ＿ｄｅｔおよびＧ＿ｄｅｔがそれぞれ検出された場合、検出された複数の量子化優遇値の中で最小の値のものを選択し、そのマクロブロックの量子化優遇値とする。これは、Ｃ言語的な記述法によれば、次式のように表現できる。
Ｃｏｌｏｒ＿ｓｃａｌｅ＝ｍｉｎ（Ｒ＿ｄｅｔ，Ｂ＿ｄｅｔ，Ｇ＿ｄｅｔ）
すなわち、当該マクロブロックの最終的な量子化優遇値Ｃｏｌｏｒ＿ｓｃａｌｅは、各色の量子化優遇値Ｒ＿ｄｅｔ、Ｂ＿ｄｅｔおよびＧ＿ｄｅｔから、最小値を選択する演算子ｍｉｎにより選択されたものに決定される。このようにして決定された量子化優遇値Ｃｏｌｏｒ＿ｓｃａｌｅを用いて、アクティビティ（Ｙ）部３０１で輝度成分Ｙから求められた正規化アクティビティＮａｃｔを変更することで、各色検出の結果が量子化スケール値に反映される。量子化優遇値Ｃｏｌｏｒ＿ｓｃａｌｅによる正規化アクティビティＮａｃｔの修正は、正規化アクティビティＮａｃｔを正規化アクティビティデータｎｏｒｍ＿ａｃｔとすれば、Ｃ言語的な記述法を用いて次式のように表現できる。
ｎｏｒｍ＿ａｃｔ＝Ｃｏｌｏｒ＿ｓｃａｌｅ×ｎｏｒｍ＿ａｃｔ
第１４図は、上述した色検出の処理を実行する一例のハードウェア構成を示す。これは、第１０図における色検出部３０２およびアクティビティ修正部３０３に対応する。この第１４図に示される構成により、上述した色検出および正規化アクティビティＮａｃｔの修正を行う各式の処理が実現される。なお、青色および緑色を検出する構成は、赤色を検出する構成と略同等であるので、第１４図では、繁雑さを避けるために、赤色を検出する構成のみを示し、青色および緑色を検出する構成を省略する。
サブブロック内のある画素の色差データＣｒが比較器３３の入力端ａ、比較器３５の入力端ａおよび比較器３６の入力端ｂにそれぞれ入力される。同じ画素の色差データＣｂが比較器３４の入力端ｂおよび比較器３７の入力端ｂに入力されると共に、１ビットシフト回路３１に入力される。
１ビットシフト回路３１に入力された色差データＣｂは、１ビットシフトされて値が２倍とされ、減算器３２の一方の入力端に入力される。減算器３２の他方の入力端には、値〔３８４〕が入力される。減算器３２では、値〔３８４〕から１ビットシフト回路３１の出力が減算される。減算器３２の出力が比較器３３の入力端ｂに入力される。比較器３３では、入力端ａおよびｂに入力された値が比較され、色差データＣｒが減算器３２の出力以上の値であれば、”Ｈ”レベル、例えば値〔１〕が出力される。比較器３３の比較結果がアンド回路３８の第１入力端に入力される。
比較器３４の入力端ａに、値〔１２８〕が入力され、入力端ｂに入力された色差データＣｂと比較され、色差データＣｂが値〔１２８〕以下であれば、”Ｈ”レベルが出力される。比較器３５の入力端ｂに、値〔１７６〕が入力され、入力端ａに入力された色差データＣｒと比較される。色差データＣｒが値〔１７６〕以上であれば、”Ｈ”レベルが出力される。比較器３４および３５の比較結果は、アンド回路３８の第２および第３入力端にそれぞれ入力される。
アンド回路３８では、第１、第２および第３の入力端に入力された、比較器３３、３４および３５の比較結果の論理積がとられ、全ての入力が”Ｈ”レベルである場合に、出力が”Ｈ”レベルとされる。すなわち、１ビットシフト回路３１、減算器３２および比較器３３で、画素の直線αに対する判定がなされ、この判定結果と比較器３４および３５の比較結果の論理積をとることで、その画素の色が、第１３図における点Ｒを含む斜線で塗り潰された範囲内の色であるか否かが判定される。その画素の色が当該範囲内であると判定されれば、アンド回路３８から”Ｈ”レベルが出力される。
一方、この第１４図の例の回路では、赤色の検出を色差平面（Ｃｂ，Ｃｒ）上に矩形で与えられた赤色の範囲に基づき判定することも可能となっている。比較器３６の入力端ａおよびｃに、それぞれ赤色の色差Ｃｒに関する上限値Ｒ＿Ｃｒ＿ｕｐｐｅｒおよび下限値Ｒ＿Ｃｒ＿ｌｏｗｅｒが入力され、色差データＣｒが上限値Ｒ＿Ｃｒ＿ｕｐｐｅｒおよび下限値Ｒ＿Ｃｒ＿ｌｏｗｅｒの範囲内にあれば、”Ｈ”レベルが出力される。同様に、比較器３７の入力端ａおよびｃに、それぞれ赤色の色差Ｃｂに関する上限値Ｒ＿Ｃｂ＿ｕｐｐｅｒおよび下限値Ｒ＿Ｃｂ＿ｌｏｗｅｒが入力され、色差データＣｂが上限値Ｒ＿Ｃｂ＿ｕｐｐｅｒおよび下限値Ｒ＿Ｃｂ＿ｌｏｗｅｒの範囲内にあれば、”Ｈ”レベルが出力される。比較器３６および３７の出力は、それぞれアンド回路３９の一方および他方の入力端に入力され、両者の論理積がとられる。これにより、その画素の色が、赤色の色差Ｃｒに関する上限値Ｒ＿Ｃｒ＿ｕｐｐｅｒおよび下限値Ｒ＿Ｃｒ＿ｌｏｗｅｒ、ならびに、赤色の色差Ｃｂに関する上限値Ｒ＿Ｃｂ＿ｕｐｐｅｒおよび下限値Ｒ＿Ｃｂ＿ｌｏｗｅｒの範囲内にあるか否かが判定される。その画素の色が当該範囲内であると判定されれば、アンド回路３９から”Ｈ”レベルが出力される。
アンド回路３８および３９の出力は、それぞれセレクタ４０に入力され、選択信号Ｒｓｅｌにより一方が選択される。選択信号Ｒｓｅｌは、例えば、ユーザの設定などに基づきシスコン１１７により与えられる信号である。
セレクタ４０の出力は、レジスタ４１に入力され、レジスタ４１から読み出された値が加算器４２の一方の入力端に入力される。加算器４２の出力がレジスタ４３に入力され、レジスタ４３から読み出された値が加算器４２の他方の入力端には入力される。また、レジスタ４３は、サブブロック毎に値がリセットされる。すなわち、加算器４２およびレジスタ４３によって、セレクタ４０の出力がサブブロック毎に積算され、サブブロックにおける計数値Ｒ＿ｃｎｔが計数される。
レジスタ４３から読み出された計数値Ｒ＿ｃｎｔは、比較器４４に供給される。また、比較器４４の出力は、レジスタ４５に入力される。比較器４４では、レジスタ４５に格納された、既に計数されたサブブロックの計数値Ｒ＿ｃｎｔと、新たにレジスタ４３から出力された計数値Ｒ＿ｃｎｔとを比較し、大きい方の値でレジスタ４５を更新する。これにより、１マクロブロックにおいてサブブロック毎に計数された赤色の計数値Ｒ＿ｃｎｔの最大値が求められる。レジスタ４５の出力は、比較器４６の入力端ａに入力され、入力端ｂに入力された、赤色検出で検出された画素数に対する閾値を与えるパラメータＲ＿ｎｕｍと比較される。比較器４６の比較結果は、セレクタ４７に選択信号として供給される。
セレクタ４７の一方の入力端には、量子化優遇値Ｒ＿ｄｅｔを与えるためのパラメータＲ＿ｓｃａｌｅが入力され、他方の端子には、固定値〔１．０〕が入力される。パラメータＲ＿ｓｃａｌｅは、例えば値〔０．５〕とされる。セレクタ４７では、比較器４６から供給された選択信号に基づき一方および他方の入力端を選択する。すなわち、比較器４６において、計数値Ｒ＿ｃｎｔがパラメータＲ＿ｎｕｍ以上の値であった場合、一方の入力端が選択され、パラメータＲ＿ｓｃａｌｅが出力される。セレクタ４７で選択されたパラメータＲ＿ｓｃａｌｅまたは固定値〔１．０〕は、赤色の量子化優遇値Ｒ＿ｄｅｔとして出力され、レジスタ４８を介して比較器８２の第１の入力端に入力される。
一方、青色および緑色についても、この赤色の検出と同様にして検出され、青色の量子化優遇値Ｂ＿ｄｅｔおよび緑色の量子化優遇値Ｇ＿ｄｅｔがそれぞれ得られる。これら青色の量子化優遇値Ｂ＿ｄｅｔおよび緑色の量子化優遇値Ｇ＿ｄｅｔは、それぞれ比較器８２の第２および第３の入力端に入力される。
なお、この実施の一形態では、緑色の検出は、第１３図に示されるように、色差平面（Ｃｒ，Ｃｂ）上の矩形の範囲に対して行われるため、第１４図における１ビットシフト回路３１、減算器３２、比較器３３、３４および３５、アンド回路３８、ならびに、セレクタ４０に相当する構成が省略される。
比較器８２では、赤色、青色および緑色による量子化優遇値Ｒ＿ｄｅｔ、Ｂ＿ｄｅｔおよびＧ＿ｄｅｔが比較され、量子化優遇値Ｒ＿ｄｅｔ、Ｂ＿ｄｅｔおよびＧ＿ｄｅｔのうち最小の値を有するものを最終的な量子化優遇値Ｃｏｌｏｒ＿ｓｃａｌｅとして出力する。最終的な量子化優遇値Ｃｏｌｏｒ＿ｓｃａｌｅは、レジスタ８３を介して乗算器８４の一方の入力端に入力される。
乗算器８４の他方の入力端には、アクティビティ（Ｙ）部３０１において当該マクロブロックの輝度成分Ｙから求められた正規化アクティビティデータｎｏｒｍ＿ａｃｔが入力される。乗算器８４において、他方の入力端に入力された正規化アクティビティデータｎｏｒｍ＿ａｃｔに対して一方の入力端に入力された量子化優遇値Ｃｏｌｏｒ＿ｓｃａｌｅが乗ぜられる。これにより、正規化アクティビティデータｎｏｒｍ＿ａｃｔが量子化優遇値Ｃｏｌｏｒ＿ｓｃａｌｅにより修正された正規化アクティビティデータｎｏｒｍ＿ａｃｔとされ、出力される。
このように、あるマクロブロックにおいて、赤色、青色および緑色のうち複数の色が検出された場合には、各色の量子化優遇値のうち最小のものが最終的な量子化優遇値Ｃｏｌｏｒ＿ｓｃａｌｅとして選択される。この選択された量子化優遇値Ｃｏｌｏｒ＿ｓｃａｌｅを用いて元の正規化アクティビティｎｏｒｍ＿ａｃｔを変更することで、量子化スケール値が小さくされより細かい量子化が行われた状態で、圧縮符号化が行われる。また、何れの色も検出されない場合は、各色の量子化優遇値が何れも固定値〔１．０〕とされ、正規化アクティビティｎｏｒｍ＿ａｃｔには変更が加えられず、元の正規化アクティビティｎｏｒｍ＿ａｃｔを用いて量子化が行われる。
次に、色検出における画素数の閾値を設定する方法について説明する。特定の色（例えば赤色とする）が検出された画素数をブロック毎に計数して、そのブロックが赤色検出されたブロックか否かを判定する際に、ノイズによる誤検出がなされてしまうおそれがある。
例えば、ＤＣＴブロックと同じ８画素×８ラインからなるブロックを単位とし、赤色検出されたと判定される閾値を、ブロックの画素総数の１／２以上としたときを考える。第１５図Ａおよび第１５図Ｂは、何れも、８画素×８ラインのブロックにおいて、ブロックの画素総数の１／２の画素において赤色検出された例を示す。すなわち、第１５図Ａおよび第１５図Ｂは、共に計数値Ｒ＿ｃｎｔが〔３２〕で、ブロックの画素総数〔６４〕の１／２である。なお、第１５図Ａ、第１５図Ｂ、第１５図Ｃおよび第１５図Ｄにおいて、塗り潰された升目が赤色検出された画素を示す。
ブロックにおいて赤色の画素が同じ３２個ある場合でも、第１５図Ｂのように、赤色画素が互いに隣接して連続的に存在するときは、人間の目には、一塊りの赤色として認識される。この場合、赤色が認識され易く、視覚的に劣化が検知され易い。一方、第１５図Ａのように、赤色の画素がブロック内にランダム的に分散されて存在するときは、人間の目に赤色が認識されにくく、劣化が検知されにくい。したがって、この第１５図Ａのような場合には、量子化優遇値を〔１〕未満の値として量子化スケール値を小さくし、細かく量子化する必要が無いとも考えられる。また、第１５図Ａのように、ランダム的に分散されて赤色画素が存在するときは、それらの赤色画素は、ノイズに反応している可能性もある。
一塊りの連続した赤色を検出するためには、赤色として検出された画素の計数値に対する閾値を、例えば３／４以上というように厳しく設定すればよい。第１５図Ｃは、閾値をブロックの画素総数の３／４にしたときに、赤色検出がなされる例を示す。この第１５図Ｃの例では、計数値Ｒ＿ｃｎｔが〔４８〕で、ブロックの画素総数〔６４〕の３／４となっている。このように、閾値を厳しく設定することで、第１５図Ａのようなランダム的な配置がとれなくなり、赤色検出された画素が自ずと一塊りの連続した配置となる。
しかしながら、閾値を高くすると、当然のことながら、第１５図Ｃのように、一塊りの赤色の面積が第１５図Ｂに比べて大きな面積でないと、ブロックの赤色検出ができなくなる。
圧縮率が低く符号量に比較的余裕がある場合は、画像全体が高画質になる分、特定色の境界部分のような、局所的に特定色が存在する部分を含むマクロブロックの画質劣化がより目立ち易くなる。そのため、ブロックに占める面積が第１５図Ｂに示される程度の赤色は、正しく検出して、そのブロックに対する量子化スケール値を小さい値として細かく量子化し、画質劣化を抑えることが望ましい。
一方で、第１５図Ａに示されるような、例えばノイズを要因とした場合などの、赤色がランダム的に分散するブロックに対して量子化スケール値を小さくし、細かい量子化を行うと、本来高画質化を図る必要の無いブロックに符号量を取られてしまうことになる。そのため、フレーム毎に限られた符号量を最適に使うことができず、画質を最適化することができない。
この発明の実施の一形態では、この問題を回避するために、色検出を行うブロックのサイズを、例えば４画素×４ラインというように、より小さいサイズとしている。第１５図Ｄは、４画素×４ラインからなるブロックを単位とし、第１５図Ｃと同様に、ブロックの画素総数の３／４を閾値として色検出を行う例を示す。赤色が検出された画素の計数値Ｒ＿ｃｎｔが閾値の〔１２〕となった場合、赤色が検出された画素は、ランダム的に分散した配置は取れず、第１５図Ｄに示されるように、自ずと一塊りの連続的な配置とされる。また、視覚的にも、赤色が検出された一塊りの画素の面積は、第１５図Ｃの例のように大きな面積とはならない。
このように、より小さいサイズのブロックを単位として特定色を検出し、同一の量子化スケール値を用いて量子化を行う単位であるマクロブロック中に１個でも、特定色が検出されたブロックが存在した場合、そのマクロブロックが当該特定色を含むと判定する。これにより、この発明の実施の一形態では、文字や画像の輪郭部といった所謂エッジ部分を含む、局所的に特定色が存在するマクロブロックのアクティビティを抑えることができ、より小さい量子化ステップ幅で細かく量子化を行い高画質化を図ることが可能となる。
なお、上述では、クロマフォーマットが４：２：２の場合にも、４画素×４ラインのサブブロックが１マクロブロック中に８個存在するとして説明した。実際には、クロマフォーマットが４：２：２の場合には、第１６図Ｂに一例が示されるように、４画素×４ラインのサブブロックは、横長のブロックとなる。そこで、第１６図Ｃに一例が示されるように、サブブロックを２画素×４ラインの正方形とし、１マクロブロックにつき１６個のサブブロックで処理を行うようにしてもよい。クロマフォーマットが４：４：４の場合は、第１６図Ａに示されるように、４画素×４ラインのサブブロックは、正方形をなし、このサブブロックが１マクロブロック中に１６個存在する。
なお、上述したように、この発明の実施の一形態による色検出および検出された色に基づく量子化スケール値の変更処理は、ハードウェアおよびソフトウェアの何れでも実現可能である。この処理を例えばコンピュータ装置に実行させるためのプログラムは、例えばＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）といった記録媒体に記録されて提供される。このＣＤ−ＲＯＭをコンピュータ装置のＣＤ−ＲＯＭドライブに装填し、ＣＤ−ＲＯＭに記録されたプログラムをコンピュータ装置にインストールすることで、上述の処理をコンピュータ装置上で実行可能な状態とすることができる。なお、コンピュータ装置の構成は、極めて周知であるため、説明は省略する。
また、上述では、この発明の実施の一形態をディジタルＶＴＲに適用した例について説明したが、これはこの例に限定されない。例えば、この発明は、色検出および検出された色に基づく量子化スケール値の変更機能を有する量子化演算回路単体として構成することも可能である。
また、上述したマクロブロックおよびサブブロックのブロックサイズは、一例であって、他のブロックサイズの組み合わせであっても、この発明を同様に適用することが可能である。
さらに、上述では、色検出を行う対象の各色について、サブブロック内で色検出された画素の計数値に対する閾値や、サブブロックのサイズが同一であるとして説明しているが、これはこの例に限定されない。例えば、色検出を行う対象の各色のそれぞれで異なる閾値を用いることができる。同様に、各色の色検出を、各色のそれぞれで異なるサイズのサブブロックを単位として行うことができる。
さらにまた、上述では、マクロブロックが特定色を含むと判定するサブブロック数の閾値を１としているが、これはこの例に限定されるものではない。マクロブロックが特定色を含むと判定するサブブロック数の閾値を、複数としてもよい。すなわち、マクロブロックに含まれるサブブロックのうち複数（例えば２）のサブブロックに特定色が検出された場合に、そのマクロブロックが特定色を含むとして判定してもよい。
以上説明したように、この発明は、マクロブロック単位で画像の複雑さに対応するアクティビティを決定する際に、マクロブロックに含まれる色成分の検出を行い、特定の色成分が検出された場合に、当該マクロブロックのアクティビティを変更してより細かく量子化を行えるようにしている。そのため、色に対する人間の視覚特性を考慮した、画像の圧縮符号化を行うことができる。
また、この発明では、マクロブロックに含まれる色成分の検出を、マクロブロックが例えば４画素×４ラインといった、より小さいサイズに分割されたサブブロック毎に行うようにしている。さらに、サブブロックの画素総数の例えば２／３以上といった閾値以上の画素で特定色が検出された場合に、そのサブブロックが含まれるマクロブロックの全体について、特定色が含まれると判定している。
これにより、文字や画像の輪郭部分といった、所謂画像のエッジ部分のような、局所的に特定色が存在するマクロブロックでも、色の検出ができる。
さらにまた、これにより、検出サイズの最適化を図り、且つ、ノイズの影響を排除して一塊りの連続した色だけを検出することが可能となる。
【図面の簡単な説明】
第１図Ａおよび第１図Ｂは、この発明の実施の一形態が適用されたディジタルＶＴＲの一例の構成を示すブロック図、第２図Ａ、第２図Ｂおよび第２図Ｃは、ＭＰＥＧエンコーダの一例の構成を示すブロック図、第３図Ａ、第３図Ｂおよび第３図Ｃは、ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図、第４図Ａ、第４図Ｂおよび第４図Ｃは、ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図、第５図Ａおよび第５図Ｂは、ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図、第６図Ａおよび第６図Ｂは、ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図、第７図Ａ、第７図Ｂおよび第７図Ｃは、ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図、第８図Ａ、第８図Ｂおよび第８図Ｃは、ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図、第９図は、ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図、第１０図は、アクティビティ部の一例の構成を概略的に示すブロック図、第１１図Ａ、第１１図Ｂおよび第１１図Ｃは、符号化モードによるサブブロックの構成方法を説明するための図、第１２図は、ＭＰＥＧエンコーダの処理をソフトウェアで行う場合の一例のフローチャート、第１３図は、色差ＣｂおよびＣｒをそれぞれ横軸および縦軸とした、色差平面（Ｃｂ，Ｃｒ）を示すグラフ、第１４図は、色検出の処理を実行する一例のハードウェア構成を示すブロック図、第１５図Ａ、第１５図Ｂ、第１５図Ｃおよび第１５図Ｄは、色検出を行うサブブロックのサイズと、色が検出された画素の計数値の閾値との関係を説明するための図、第１６図Ａ、第１６図Ｂおよび第１６図Ｃは、クロマフォーマットによるサブブロックの構成方法を説明するための図である。
符号の説明
１０３  ＭＰＥＧエンコーダ
２０９  アクティビティ部
３００  サブブロック部
３０１  アクティビティ（Ｙ）部
３０２  色検出部
３０３  アクティビティ修正部
Ｓ１  画像の取り込み
Ｓ２  ヘッダの付加
Ｓ３  ラスタスキャン  ブロックスキャン変換
Ｓ４  第１フィールドによるアクティビティａｃｔ計算
Ｓ５  アクティビティａｃｔの積算
ｓｕｍ＝ｓｕｍ＋ａｃｔ
Ｓ６  第１フィールドの最終ＭＢか？
Ｓ７  第１フィールドの平均アクティビティａｖｇ＿ａｃｔの計算
ａｖｇ＿ａｃｔ＝ｓｕｍ／ＭＢ数
Ｓ１１  ラスタスキャン  ブロックスキャン変換
Ｓ１２  ＤＣＴモードの決定（ｆｉｅｌｄ＿ｄｃｔ／ｆｒａｍｅ＿ｄｃｔ）
Ｓ１３  アクティビティｎｏｒｍ＿ａｃｔの計算
Ｓ１４  マクロブロックの色の検出
Ｓ１５  特定の色を含むマクロブロックのアクティビティｎｏｒｍ＿ａｃｔの修正
Ｓ１６  ＤＣＴの計算
Ｓ１７  Ｑ＿ｔａｂｌｅによる量子化
Ｓ１８  Ｑ＿ｓｃａｌｅによる量子化
Ｓ１９  ＶＬＣによる可変長符号化
Ｓ２０  ＭＢにおける発生符号量の積算
Ｓ２１  他のＱ＿ｓｃａｌｅがあるか？
Ｓ２２  フレームにおける発生符号量の積算
Ｓ２３  最終ＭＢか？
Ｓ３１  ラスタスキャン  ブロツクスキャン変換
Ｓ３２  ＤＣＴモードの選択
（ｆｉｅｌｄ＿ｄｃｔ／ｆｒａｍｅ＿ｄｃｔ）
Ｓ３３  ＤＣＴの計算
Ｓ３４  Ｑ＿ｔａｂｌｅによる量子化
Ｓ３５  符号量の制御（Ｑ＿ｓｃａｌｅの設定）
Ｓ３６  Ｑ＿ｓｃａｌｅによる量子化
Ｓ３７  ＶＬＣによる可変長符号化
Ｓ３８  最終ＭＢか？
【図１】
2003015423.tif 000007
【図１Ａ】
2003015423.tif 000008
【図１Ｂ】
2003015423.tif 000009
【図２】
2003015423.tif 000010
【図２Ａ】
2003015423.tif 000011
【図２Ｂ】
2003015423.tif 000012
【図２Ｃ】
2003015423.tif 000013
【図３Ａ】
2003015423.tif 000014
【図３Ｂ】
2003015423.tif 000015
【図３Ｃ】
2003015423.tif 000016
【図４Ａ】
2003015423.tif 000017
【図４Ｂ】
2003015423.tif 000018
【図４Ｃ】
2003015423.tif 000019
【図５Ａ】
2003015423.tif 000020
【図５Ｂ】
2003015423.tif 000021
【図６Ａ】
2003015423.tif 000022
【図６Ｂ】
2003015423.tif 000023
【図７Ａ】
2003015423.tif 000024
【図７Ｂ】
2003015423.tif 000025
【図７Ｃ】
2003015423.tif 000026
【図８Ａ】
2003015423.tif 000027
【図８Ｂ】
2003015423.tif 000028
【図８Ｃ】
2003015423.tif 000029
【図９】
2003015423.tif 000030
【図１０】
2003015423.tif 000031
【図１１Ａ】
2003015423.tif 000032
【図１１Ｂ】
2003015423.tif 000033
【図１１Ｃ】
2003015423.tif 000034
【図１２】
2003015423.tif 000035
【図１３】
2003015423.tif 000036
【図１４】
2003015423.tif 000037
【図１５Ａ】
2003015423.tif 000038
【図１５Ｂ】
2003015423.tif 000039
【図１５Ｃ】
2003015423.tif 000040
【図１５Ｄ】
2003015423.tif 000041
【図１６Ａ】
2003015423.tif 000042
【図１６Ｂ】
2003015423.tif 000043
【図１６Ｃ】
2003015423.tif 000044
【国際調査報告】
2003015423.tif 000045
2003015423.tif 000046
2003015423.tif 000047
2003015423.tif 000048