(57)【特許請求の範囲】
【請求項１】
画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出手段と、
上記画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化手段と、
上記色検出手段により特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、上記量子化手段での上記量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更手段と
を有する
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
上記符号化規格はＭＰＥＧ２規格であり、
上記単位ブロックは８画素×８ラインのＤＣＴブロックであり、
上記量子化手段による上記画像データの量子化に先立って、上記ＤＣＴブロック単位で上記画像データにＤＣＴを行うＤＣＴ手段をさらに備える
ことを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置において、
上記色検出手段は、
上記閾値を少なくとも３／４とした
ことを特徴とする画像処理装置。
【請求項４】
請求項１に記載の画像処理装置において、
上記量子化ステップ幅変更手段は、
ブロック毎の画像の複雑さに応じた値であって量子化スケール値を設定するためのアクティビティを正規化した正規化アクティビティに上記量子化優遇値を乗じることによって、上記正規化アクティビティを修正し、上記色検出手段により特定の色を含むと検出されたブロックについて、該修正された正規化アクティビティに基づき、特定の色を含まないブロックに比べ、上記量子化手段での上記量子化ステップ幅をより小さく変更する
ことを特徴とする画像処理装置。
【請求項５】
請求項１に記載の画像処理装置において、
上記量子化ステップ幅変更手段は、
上記色検出手段によって、上記ブロックが複数の色を含むと検出された場合、該複数の色それぞれに対応する量子化優遇値のうち最小の量子化優遇値を用いて上記量子化ステップ幅を変更する
ことを特徴とする画像処理装置。
【請求項６】
画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出のステップと、
上記画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化のステップと、
上記色検出のステップにより特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、上記量子化手段での上記量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更のステップと
を有する
ことを特徴とする画像処理方法。
【請求項７】
画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出のステップと、
上記画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化のステップと、
上記色検出のステップにより特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、上記量子化手段での上記量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更のステップと
を有する画像処理方法をコンピュータ装置に実行させる
ことを特徴とする画像処理プログラム。
【請求項８】
画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出手段と、
上記色検出手段により特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、上記画像データのブロック毎に設定された量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更手段と
を有する
ことを特徴とする量子化制御装置。
【請求項９】
画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出のステップと、
上記色検出のステップにより特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、上記画像データのブロック毎に設定された量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更のステップと
を有する
ことを特徴とする量子化制御方法。
【請求項１０】
画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出のステップと、
上記色検出のステップにより特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、上記画像データのブロック毎に設定された量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更のステップと
を有する量子化制御方法をコンピュータ装置に実行させる
ことを特徴とする量子化制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像データをブロック単位で圧縮符号化する画像処理装置、画像処理方法および画像処理プログラム、ならびに、量子化制御装置、量子化制御方法および量子化制御プログラムに関する。
【０００２】
【従来の技術】
従来から、画像データの圧縮符号化方式として、画像データを所定画素数から成るブロック単位で量子化を行うことで圧縮符号化するものが知られている。例えばＭＰＥＧ２(Moving Pictures Experts Group 2)では、このような圧縮符号化方式が採用されている。ＭＰＥＧ２では、画像データを所定画素数から成るブロック単位でＤＣＴ(Discrete Cosine Transform)し、得られたＤＣＴ係数に対して量子化を行うことで、画像データを圧縮符号化する。ＭＰＥＧ２では、量子化の際の量子化ステップを示す量子化スケール値が指定されて、ＤＣＴ係数の圧縮符号化が行われる。
【０００３】
また、従来より、例えばＭＰＥＧ２の圧縮符号化において、圧縮する画像の複雑さや滑らかさを示すアクティビティ(Activity)という指数を算出し、このアクティビティに基づく適応量子化を用いて画質の最適化を図る方法が知られている。
【０００４】
これは、圧縮処理による画質劣化が視覚的に目立ちやすい、画像が単調で滑らかな領域（以下、平坦領域という）では、量子化ステップの細かい量子化スケール値を用いて細かく量子化し、これと反対に、画質劣化の目立ちにくい画像が複雑な領域では、量子化ステップの粗い量子化スケール値を用いて粗く量子化を行なう手法であり、限られた符号量の中で画質の最適化を図る有効な手法である。
【０００５】
ところで、画像データの圧縮を行なう場合、上述したように、各画像の領域を所定サイズの画素ブロックに分割し、各ブロック毎に量子化やＤＣＴを行なうことになる。ＭＰＥＧ２による規格では、８画素×８ラインのブロックが最小処理単位として規定される。この８画素×８ラインのブロックでＤＣＴを行ない、このＤＣＴにより得られたＤＣＴ係数を、１６画素×１６ラインのマクロブロック単位で量子化するように規定されている。
【０００６】
一方、上述したアクティビティの算出を行なう単位としては、明確な規定はないものの、ＭＰＥＧ２のＴＭ５(Test Model 5)においては、ＤＣＴブロックと同様の８画素×８ラインのサブブロックで処理することが提案されている。
【０００７】
以下、ＭＰＥＧ２のＴＭ５で採用された「視覚特性を考慮した適応量子化」におけるアクティビティの算出方法について説明する。
【０００８】
先ず、適応量子化とは、例えば１フレーム内での発生符号量を制御するために、画像の状態によって異なる量子化スケール値Ｑｊを用いて量子化を行うように、量子化スケール値Ｑｊを各マクロブロック毎のアクティビティにより変化させて、高画質を達成するものである。例えば、視覚的に画質劣化の目立ちやすい画像の平坦領域では、より細かい量子化ステップを有する量子化スケール値Ｑｊを用いて量子化を行い、画質劣化の比較的目立ちにくい絵柄の複雑な画像領域で、より粗い量子化ステップを有する量子化スケール値Ｑｊを用いて量子化を行うように、アクティビティにより量子化スケール値Ｑｊを変化させる。
【０００９】
アクティビティは、予測誤差でなく、原画における輝度信号の画素値を用い、フレームＤＣＴ符号化モードにおける４個のブロックと、フィールドＤＣＴ符号化モードにおける４個のブロックとの合計８個のブロックの画素値を用いて、ｊ番目のマクロブロックについて、以下の（１）から（３）式で与えられる演算を（３）から（１）に順に行なうことにより得られる。
actj = 1 + min[sblk=1,8](var_sblk)      ・・・（１）
var_sblk = 1/64 Σ[k=1,64] (Pk - Pavg)2・・・（２）
Pavg = 1/64 Σ[k=1,64] Pk              ・・・（３）
【００１０】
ここで、Pkは原画の輝度信号ブロック内の画素値であり、（３）式では８画素×８ラインのブロック内の６４個の画素値を合計し、これを６４で割ることにより、画素値の平均値Pavgを求めている。次に、（２）式では、平均値PavgとPkとの差分をとり、８画素×８ラインのブロック内の平均差分値var_sblkを算出している。さらに、（１）式において、平均差分値var_sblkの最小値を採用し、マクロブロックのアクティビティactjを求める。なお、ここで最小値を採用するのは、マクロブロック内の一部だけでも平坦な部分のある場合には、このマクロブロックに対する量子化を細かくする必要があるからである。
【００１１】
【発明が解決しようとする課題】
ところで、人間の色に対する視覚特性は、赤色の感度が高く、その劣化を検知しやすい。また、スタジオ撮影などにおいてクロマキーで用いられるブルーバックの青色なども、画像処理の観点からみて、劣化を抑えたい色である。
【００１２】
そのため、圧縮符号化処理を行うカラー画像を構成する色成分のうち、こうした、特に劣化を抑えたい特定の色成分を含む画像領域について、圧縮率を抑制し、より精細な色を表現することが望まれている。
【００１３】
したがって、この発明の目的は、色に対する人間の視覚特性を考慮し、特定の色成分を含む領域における圧縮率を抑制して視覚的効果を改善した画像処理装置、画像処理方法および画像処理プログラム、ならびに、量子化制御装置、量子化制御方法および量子化制御プログラムを提供することにある。
【００１４】
【課題を解決するための手段】
上述した課題を解決するために、第１の発明は、画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出手段と、画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化手段と、色検出手段により特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、量子化手段での量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更手段とを有することを特徴とする画像処理装置である。
【００１５】
また、第２の発明は、画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出のステップと、画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化のステップと、色検出のステップにより特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、量子化手段での量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更のステップとを有することを特徴とする画像処理方法である。
【００１６】
また、第３の発明は、画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出のステップと、画像データをブロック毎に設定された量子化ステップ幅で量子化する量子化のステップと、色検出のステップにより特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、量子化手段での量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更のステップとを有する画像処理方法をコンピュータ装置に実行させることを特徴とする画像処理プログラムである。
また、第４の発明は、画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出手段と、色検出手段により特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、画像データのブロック毎に設定された量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更手段とを有することを特徴とする量子化制御装置である。
また、第５の発明は、画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出のステップと、色検出のステップにより特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、画像データのブロック毎に設定された量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更のステップとを有することを特徴とする量子化制御方法である。
また、第６の発明は、画像データの符号化規格で規定されている最小処理単位の単位ブロックを複数に分割してなるサブブロック中に、特定の色を示す画素が、連続的に配置されている特定の色の画素を検出するために設定された閾値以上存在する場合に、量子化する単位のブロックが特定の色を含むと検出する色検出のステップと、色検出のステップにより特定の色を含むと検出されたブロックについて、特定の色を含まないブロックに比べ、画像データのブロック毎に設定された量子化ステップ幅を、特定の色に対して量子化の際の発生符号量を優遇する度合いを示す量子化優遇値に応じてより小さく変更する量子化ステップ幅変更のステップとを有する量子化制御方法をコンピュータ装置に実行させることを特徴とする量子化制御プログラムである。
【００１７】
上述したように、この発明は、画像データのブロックのそれぞれについて、設定された色範囲内の色を示す画素数が色範囲に対して設定された閾値以上であるかを検出すると共に、画像データをブロック毎に設定された量子化ステップ幅で量子化し、色範囲内の色を示す画素数が閾値以上であると検出されたブロックに対して、色範囲内の色を示す画素数が閾値未満であると判断されたブロックに比べ、色範囲に対して設定された量子化補正値に基づき量子化ステップ幅をより小さく設定するようにしているため、人間の目の色に対する視覚特性を考慮した量子化を行うことができる。
【００１８】
【発明の実施の形態】
以下、この発明の実施の一形態について説明する。この発明では、画像データのブロック単位に、特定の色の画素を検出し、検出された画素の数がブロックの画素総数に対して閾値以上であるときに、当該ブロックに当該特定の色が検出されたとし、当該ブロックが含まれる画像領域における量子化スケール値をより小さい値として量子化ステップ幅を小さくして当該画像領域に対してより細かい量子化を行う。これにより、特定の色を含む画像領域において画質の劣化が抑えられ、色に対する視覚的効果が改善される。
【００１９】
この発明の実施の一形態では、背景技術において既に説明した、画像の複雑さを示すアクティビティの値を上述した色検出の結果に基づき修正することで、当該画像領域における量子化ステップ幅を変化させる。
【００２０】
なお、以下に説明するこの発明の実施の一形態は、この発明の好適な具体例であり、技術的に好ましい種々の限定が付されているが、この発明の範囲は、以下の説明において特にこの発明を限定する旨の記載がない限り、これらの態様に限定されないものとする。
【００２１】
次に、この発明の実施の一形態について説明する。第１図Ａおよび第１図Ｂは、この発明の実施の一形態が適用されたディジタルＶＴＲの一例の構成を示す。このディジタルＶＴＲは、ＭＰＥＧ方式により圧縮符号化されたディジタルビデオ信号を記録媒体に直接的に記録することができるようにしたものである。
【００２２】
先ず、このディジタルＶＴＲにおける記録系の構成および処理動作について説明する。この記録系に外部より入力される信号は、ＳＤＩ(Serial Data Interface)信号およびＳＤＴＩ(Serial Data Transport Interface)信号の２種類のシリアルディジタルインターフェイス信号および制御信号である外部基準信号ＲＥＦである。
【００２３】
なお、ＳＤＩは、（４：２：２）コンポーネントビデオ信号とディジタルオーディオ信号と付加的データとを伝送するために、ＳＭＰＴＥによって規定されたインターフェイスである。また、ＳＤＴＩは、ディジタルビデオ信号がＭＰＥＧ方式で圧縮符号化されたストリームであるＭＰＥＧエレメンタリストリーム（以下、ＭＰＥＧ  ＥＳと称する）が伝送されるインターフェイスである。ＥＳは、４：２：２のコンポーネントであり、また、上述したように、全てＩピクチャのストリームであり、１ＧＯＰ＝１ピクチャの関係を有する。ＳＤＴＩ−ＣＰ(Content Package)のフォーマットでは、ＭＰＥＧ  ＥＳがアクセスユニットへ分離され、また、フレーム単位のパケットにパッキングされている。ＳＤＴＩ−ＣＰでは、十分な伝送帯域（クロックレートで２７ＭHzまたは３６ＭHz、ストリームビットレートで２７０Ｍ bpsまたは３６０Ｍ bps）を使用しており、１フレーム期間で、バースト的にＥＳを送ることが可能である。
【００２４】
ＳＤＩにより伝送されるＳＤＩ信号は、ＳＤＩ入力部１０１に入力される。ＳＤＩ入力部１０１では、入力されたＳＤＩ信号をシリアル信号からパラレル信号に変換して出力すると共に、ＳＤＩ信号に含まれる入力の位相基準である入力同期信号を抽出し、タイミングジェネレータＴＧ１０２に出力する。
【００２５】
また、ＳＤＩ入力部１０１は、変換したパラレル信号からビデオ信号とオーディオ信号とを分離する。分離されたビデオ入力信号とオーディオ入力信号は、それぞれＭＰＥＧエンコーダ１０３とディレイ回路１０４に出力される。
【００２６】
タイミングジェネレータＴＧ１０２は、入力された外部基準信号ＲＥＦから基準同期信号を抽出する。タイミングジェネレータＴＧでは、この基準同期信号とＳＤＩ入力部１０１から供給された入力同期信号とのうち、所定に指定された基準信号に同期して、このディジタルＶＴＲで必要なタイミング信号を生成し、タイミングパルスとして各ブロックに供給する。
【００２７】
ＭＰＥＧエンコーダ１０３は、入力されたビデオ入力信号を、ＤＣＴ変換して係数データに変換し、係数データを量子化した後、可変長符号化する。ＭＰＥＧエンコーダ１０３から出力される可変長符号化（ＶＬＣ）データは、ＭＰＥＧ２に準拠したエレメンタリストリーム（ＥＳ）である。この出力は、記録側のマルチフォーマットコンバータ（以下、記録側ＭＦＣと称する）１０６の一方の入力端に供給される。
【００２８】
なお、この実施の一形態では、ＭＰＥＧエンコーダ１０３における量子化を、上述したように、色成分に基づき量子化スケール値を変化させ、人間の色に対する視覚特性を考慮して行う。
【００２９】
ディレイ回路１０４は、入力されたオーディオ入力信号を、非圧縮データのままで、ＭＰＥＧエンコーダ１０３でのビデオ信号に対する処理のディレイに合わせるためのディレイラインの働きをするものである。このディレイ回路１０４で所定に遅延されたオーディオ信号は、ＥＣＣエンコーダ１０７に出力される。これは、この実施の一形態によるディジタルＶＴＲにおいて、オーディオ信号が非圧縮信号として扱われるためである。
【００３０】
外部からＳＤＴＩにより伝送され供給されたＳＤＴＩ信号は、ＳＤＴＩ入力部１０５に入力される。ＳＤＴＩ信号は、ＳＤＴＩ入力部１０５で同期検出される。そして、バッファに一旦溜め込まれ、エレメンタリストリームが抜き出される。抜き出されたエレメンタリストリームは、記録側ＭＦＣ１０６の他方の入力端に供給される。同期検出されて得られた同期信号は、上述したタイミングジェネレータＴＧ１０２に供給される（図示しない）。
【００３１】
なお、ＳＤＴＩ入力部１０５では、さらに、入力されたＳＤＴＩ信号からディジタルオーディオ信号を抽出する。抽出されたディジタルオーディオ信号は、ＥＣＣエンコーダ１０７に供給される。
【００３２】
このように、この実施の一形態によるディジタルＶＴＲは、ＳＤＩ入力部１０１から入力されるベースバンドのビデオ信号と独立して、ＭＰＥＧ  ＥＳを直接的に入力することができる。
【００３３】
記録側ＭＦＣ回路１０６は、ストリームコンバータとセレクタとを有し、ＭＰＥＧエンコーダ１０３およびＳＤＴＩ入力部１０５から供給されたＭＰＥＧ  ＥＳのうち、何れかが選択され、選択されたＭＰＥＧ  ＥＳのＤＣＴ係数を、１マクロブロックを構成する複数のＤＣＴブロックを通して周波数成分毎にまとめ、まとめた周波数成分を低周波数成分から順に並び替える。ＭＰＥＧ  ＥＳの係数が並べ替えられたストリームを、以下、変換エレメンタリストリームと称する。このようにＭＰＥＧ  ＥＳを再配置することにより、サーチ再生時にもなるべく多くのＤＣ係数と低次のＡＣ係数を拾い、サーチ画の品位向上に貢献している。変換エレメンタリストリームは、ＥＣＣエンコーダ１０７に供給される。
【００３４】
ＥＣＣエンコーダ１０７は、大容量のメインメモリが接続され（図示しない）、パッキングおよびシャフリング部、オーディオ用外符号エンコーダ、ビデオ用外符号エンコーダ、内符号エンコーダ、オーディオ用シャフリング部およびビデオ用シャフリング部などを内蔵する。また、ＥＣＣエンコーダ１０７は、シンクブロック単位でＩＤを付加する回路や、同期信号を付加する回路を含む。なお、実施の第１の形態では、ビデオ信号およびオーディオ信号に対するエラー訂正符号としては、積符号が使用される。積符号は、ビデオ信号またはオーディオ信号の２次元配列の縦方向に外符号の符号化を行い、その横方向に内符号の符号化を行い、データシンボルを２重に符号化するものである。外符号および内符号としては、リードソロモンコード(Reed-Solomon code) を使用できる。
【００３５】
ＥＣＣエンコーダ１０７には、ＭＦＣ回路１０６から出力された変換エレメンタリストリームが供給されると共に、ＳＤＴＩ入力部１０５およびディレイ回路１０４から出力されたオーディオ信号が供給される。ＥＣＣエンコーダ１０７では、供給された変換エレメンタリストリーム及びオーディオ信号に対してシャフリング及びエラー訂正符号化を施し、シンクブロック毎にＩＤおよび同期信号を付加し記録データとして出力する。
【００３６】
ＥＣＣエンコーダ１０７から出力された記録データは、記録アンプを含むイコライザＥＱ１０８で記録ＲＦ信号に変換される。記録ＲＦ信号は、回転ヘッドが所定に設けられた回転ドラム１０９に供給され、磁気テープ１１０上に記録される。回転ドラム１０９には、実際には、隣接するトラックを形成するヘッドのアジマスが互いに異なる複数の磁気ヘッドが取り付けられている。
【００３７】
記録データに対して必要に応じてスクランブル処理を行っても良い。また、記録時にディジタル変調を行っても良く、さらに、パーシャル・レスポンスクラス４とビタビ符号を使用しても良い。なお、イコライザ１０８は、記録側の構成と再生側の構成とを共に含む。
【００３８】
次に、このディジタルＶＴＲにおける再生系の構成および処理動作について説明する。再生時には、磁気テープ１１０から回転ドラム１０９で再生された再生信号が再生アンプなどを含むイコライザ１０８の再生側の構成に供給される。イコライザ１０８では、再生信号に対して、等化や波形整形などがなされる。また、ディジタル変調の復調、ビタビ復号等が必要に応じてなされる。イコライザ１０８の出力は、ＥＣＣデコーダ１１１に供給される。
【００３９】
ＥＣＣデコーダ１１１は、上述したＥＣＣエンコーダ１０７と逆の処理を行うもので、大容量のメインメモリと、内符号デコーダ、オーディオ用およびビデオ用それぞれのデシャフリング部ならびに外符号デコーダを含む。さらに、ＥＣＣデコーダ１１１は、ビデオ用として、デシャフリングおよびデパッキング部、データ補間部を含む。同様に、オーディオ用として、オーディオＡＵＸ分離部とデータ補間部を含む。
【００４０】
ＥＣＣデコーダ１１１では、再生データに対して同期検出を行い、シンクブロックの先頭に付加されている同期信号を検出してシンクブロックを切り出す。再生データは、シンクブロック毎の内符号のエラー訂正がなされ、その後、シンクブロックに対してＩＤ補間処理がなされる。ＩＤが補間された再生データは、ビデオデータとオーディオデータとに分離される。ビデオデータおよびオーディオデータは、それぞれデシャフリング処理され、記録時にシャフリングされたデータ順が元に戻される。デシャフリングされたデータは、それぞれ外符号のエラー訂正が行われる。
【００４１】
ＥＣＣデコーダ１１１において、エラー訂正能力を超え、訂正できないエラーがあるデータに関しては、エラーフラグがセットされる。ここで、ビデオデータのエラーに関しては、エラーを含むデータを指し示す信号ＥＲＲが出力される。
【００４２】
エラー訂正された再生オーディオデータは、ＳＤＴＩ出力部１１５に供給されると共に、ディレイ回路１１４で所定の遅延を与えられてＳＤＩ出力部１１６に供給される。ディレイ回路１１４は、後述するＭＰＥＧデコーダ１１３でのビデオデータの処理による遅延を吸収するために設けられる。
【００４３】
一方、エラー訂正されたビデオデータは、再生変換エレメンタリストリームとして再生側ＭＦＣ回路１１２に供給される。上述した信号ＥＲＲも、再生側ＭＦＣ回路１１２に供給される。再生側ＭＦＣ１１２は、上述した記録側ＭＦＣ１０６と逆の処理を行うものであって、ストリームコンバータを含む。ストリームコンバータでは、記録側のストリームコンバータと逆の処理がなされる。すなわち、ＤＣＴブロックに跨がって周波数成分毎に並べられていたＤＣＴ係数を、ＤＣＴブロック毎に並び替える。これにより、再生信号がＭＰＥＧ２に準拠したエレメンタリストリームに変換される。このとき、ＥＣＣデコーダ１１１から信号ＥＲＲが供給された場合は、対応するデータをＭＰＥＧ２に完全に準拠する信号に置き換えて出力する。
【００４４】
再生側ＭＦＣ回路１１２から出力されたＭＰＥＧ  ＥＳは、ＭＰＥＧデコーダ１１３およびＳＤＴＩ出力部１１５に供給される。ＭＰＥＧデコーダ１１３は、供給されたＭＰＥＧ  ＥＳを復号し、非圧縮の元のビデオ信号に戻す。すなわち、ＭＰＥＧデコーダ１１３は、供給されたＭＰＥＧ  ＥＳに対して逆量子化処理と、逆ＤＣＴ処理とを施す。復号されたビデオ信号は、ＳＤＩ出力部１１６に供給される。
【００４５】
上述したように、ＳＤＩ出力部１１６には、ＥＣＣデコーダ１１１でビデオデータと分離されたオーディオデータがディレイ１１４を介して供給されている。ＳＤＩ出力部１１６では、供給されたビデオデータとオーディオデータとを、ＳＤＩのフォーマットにマッピングし、ＳＤＩフォーマットのデータ構造を有するＳＤＩ信号へ変換される。このＳＤＩ信号が外部に出力される。
【００４６】
一方、ＳＤＴＩ出力部１１５には、上述したように、ＥＣＣデコーダ１１１でビデオデータと分離されたオーディオデータが供給されている。ＳＤＴＩ出力部１１５では、供給された、エレメンタリストリームとしてのビデオデータと、オーディオデータとをＳＤＴＩのフォーマットにマッピングし、ＳＤＴＩフォーマットのデータ構造を有するＳＤＴＩ信号へ変換されるこのＳＤＴＩ信号が外部に出力される。
【００４７】
なお、システムコントローラ１１７（第１図Ａおよび第１図Ｂ中ではシスコン１１７と略記する）は、例えばマイクロコンピュータからなり、信号ＳＹ＿ＩＯにより各ブロックと通信を行うことにより、このディジタルＶＴＲの全体の動作を制御する。また、図示されない操作パネルに設けられたスイッチ類が操作されると、操作に応じた制御信号がシステムコントローラ１１７に供給される。この制御信号に基づき、このディジタルＶＴＲでの記録、再生などの動作がシステムコントローラ１１７により制御される。
【００４８】
サーボ１１８は、信号ＳＹ＿ＳＶによりシスコンシステムコントローラ１１７と互いに通信を行いながら、信号ＳＶ＿ＩＯにより、磁気テープ１１０の走行制御や回転ドラム１０９の駆動制御などを行う。
【００４９】
第２図Ａ、第２図Ｂおよび第２図Ｃは、上述したＭＰＥＧエンコーダ１０３の一例の構成を示す。また、第２図Ａ、第２図Ｂおよび第２図Ｃの各部において転送されるストリームの構成例を、第３図Ａ、第３図Ｂおよび第３図Ｃ、第４図Ａ、第４図Ｂおよび第４図Ｃ、第５図Ａおよび第５図Ｂ、第６図Ａおよび第６図Ｂ、第７図Ａ、第７図Ｂおよび第７図Ｃ、第８図Ａ、第８図Ｂおよび第８図Ｃ、ならびに、第９図にそれぞれ示す。
【００５０】
ＭＰＥＧエンコーダ１０３は、入力フィールドアクティビティ平均化処理部１０３Ａ、プリエンコード処理部１０３Ｂおよびエンコード部１０３Ｃからなる。入力フィールドアクティビティ平均化処理部１０３Ａでは、入力されたビデオデータのアクティビティの平均値が求められてプリエンコード処理部１０３Ｂに渡される。プリエンコード処理部１０３Ｂでは、このアクティビティの平均値を用いて入力ビデオデータの量子化による発生符号量が見積もられる。この見積もり結果に基づき、エンコード部１０３Ｃにおいて、符号量制御しながら入力ビデオデータに対する実際の量子化が行われ、量子化されたビデオデータに対しさらに可変長符号化がなされ、ＭＰＥＧ  ＥＳとされて出力される。
【００５１】
なお、タイミングジェネレータＴＧ２２０は、例えば第１図Ａおよび第１図ＢのタイミングジェネレータＴＧ１０２から供給された水平同期信号ＨＤ、垂直同期信号ＶＤおよびフィールド同期信号ＦＬＤに基づき、ＭＰＥＧエンコーダ１０３内で必要とされるタイミング信号を生成し出力する。また、ＣＰＵ  Ｉ／Ｆブロック２２１は、第１図Ａおよび第１図Ｂのシステムコントローラ１１７とのインターフェイスであり、ＣＰＵ  Ｉ／Ｆブロック２２１を介してやりとりされた制御信号やデータにより、ＭＰＥＧエンコーダ１０３における動作が制御される。
【００５２】
先ず、入力フィールドアクティビティ平均化処理部１０３Ａの処理について説明する。ＳＤＩ入力部１０１から出力されＭＰＥＧエンコーダ１０３に入力されたビデオデータは、入力部２０１に供給され、メインメモリ２０３に格納するのに適したインターフェイスに変換されると共に、パリティチェックがなされる。入力部２０１から出力されたビデオデータは、ヘッダ作成部２０２に供給され、垂直ブランキング区間などを利用してＭＰＥＧにおける、sequence_header 、 quantizer_matrix、 gop_header などの各ヘッダが作成される。作成された各ヘッダは、メインメモリ２０３に格納される。これらのヘッダは、主に、ＣＰＵ  Ｉ／Ｆブロック２２１から指定される。また、ヘッダ作成部２０２において、垂直ブランキング区間以外では、入力部２０１から供給されたビデオデータがメインメモリ２０３に格納される。
【００５３】
メインメモリ２０３は、画像のフレームメモリであり、ビデオデータの再配列やシステムディレイの吸収などが行われる。ビデオデータの再配列は、例えば図示されないアドレスコントローラによりメインメモリ２０３からの読み出しアドレスを制御されることによりなされる。なお、第２図Ａ、第２図Ｂおよび第２図Ｃ中、メインメモリ２０３のブロック中に記載される８ライン、０．５フレームおよび１フレームは、ディレイ値であり、メインメモリ２０３からのリードタイミングが示される。これらは、タイミングジェネレータＴＧ２２０の指令に基づき適切に制御される。
【００５４】
ラスタスキャン／ブロックスキャン変換部２０４は、ライン毎にメインメモリ２０３に格納されたビデオデータを、ＭＰＥＧで扱うマクロブロック毎に切り出して後段のアクティビティ部２０５に送る。この実施の一形態では、第１フィールドだけを用いてアクティビティの計算を行うため、ラスタスキャン／ブロックスキャン変換部２０４から出力されるマクロブロックは、第１フィールド分のビデオデータにより構成される。
【００５５】
ラスタスキャン／ブロックスキャン変換部２０４から出力データとして出力されたストリームは、第３図Ａに一例が示されるように、垂直および水平方向のマクロブロックのアドレス情報が先頭に配され、所定サイズの空き領域の後ろに、１マクロブロック分のビデオデータが格納される。
【００５６】
なお、ストリームは、例えば８ビットを１ワードとして、５７６ワードのデータ長を有し、後半の５１２ワード（データ部と称する）が１マクロブロック分のビデオデータを格納する領域に割り当てられている。前半の６４ワード（ヘッダ部と称する）は、先頭に上述のマクロブロックのアドレス情報が格納され、その他の部分は、後段の各部にて埋め込まれるデータやフラグなどのため空き領域とされる。
【００５７】
ＭＰＥＧで扱うマクロブロックは、１６画素×１６ラインのマトリクスである。一方、この入力フィールドアクティビティ平均化処理部１０３Ａでは、第１フィールドだけによるアクティビティを求める処理を行う。そのため、第１フィールドの８ラインまでがメインメモリ２０３に格納された時点で処理を開始することができる。なお、実際には、タイミングジェネレータＴＧ２２０からの指令にて処理が適切に開始される。
【００５８】
アクティビティ部２０５は、マクロブロック毎のアクティビティを計算する。このＭＰＥＧエンコーダ１０３においては、第１フィールドだけからアクティビティが計算され、その計算結果がフィールドアクティビティ信号field_actとして出力される。信号field_actは、平均化部２０６に供給され、１フィールド分が積算され、その平均値avg_actが求められる。平均値avg_actは、後述するプリエンコード処理部１０３Ｂのアクティビティ部２０９に供給される。アクティビティ部２０９では、第１フィールドの平均値avg_actを用いてマクロブロック毎にアクティビティの正規化処理が行われる。
【００５９】
したがって、第１フィールドにおけるアクティビティの平均値avg_actが判明した後、その平均値を用いて、適応量子化を考慮したプリエンコード処理を行うことが可能となる。
【００６０】
次に、プリエンコード処理部１０３Ｂについて説明する。ラスタスキャン／ブロックスキャン変換部２０７Ａは、上述したラスタスキャン／ブロックスキャン変換部２０４と基本的には同様の処理を行う。但し、このラスタスキャン／ブロックスキャン変換部２０７Ａは、符号量の見積もりを行うプリエンコード処理のために行われるため、第１フィールドおよび第２フィールドのビデオデータが共に必要とされる。そのため、ラスタスキャン／ブロックスキャン変換部２０７Ａでは、第２フィールドの８ラインまでがメインメモリ２０３に格納された時点で、ＭＰＥＧで扱う１６画素×１６ラインのサイズのマクロブロックを構成することが可能となり、この時点で処理を開始することができる。なお、実際には、タイミングジェネレータＴＧ２２０からの指令によって、処理が適切に開始される。
【００６１】
ラスタスキャン／ブロックスキャン変換部２０７Ａから出力されたビデオデータは、ＤＣＴモード部２０８に供給される。ＤＣＴモード部２０８は、フィールドＤＣＴ符号化モードおよびフレームＤＣＴ符号化モードの何れを用いて符号化するかを決める。
【００６２】
ここでは、実際に符号化するのではなく、垂直方向に隣接した画素間差分値の絶対値和をフィールドＤＣＴ符号化モードで計算したものと、フレームＤＣＴ符号化モードで計算したものとが比較され、その値が小さい符号化モードが選択される。選択結果は、ＤＣＴモードタイプデータdct_typとしてストリーム中に一時的にフラグとして挿入され、後段に伝えられる。ＤＣＴモードタイプデータdct_typは、第３図Ｂに示されるように、ヘッダ部中の空き領域の後端側に格納される。
【００６３】
ＤＣＴモード部２０８から出力されたビデオデータは、図示されないサブブロック化部により、ＤＣＴモード部２０８で決定された符号化モードに応じて、マクロブロックがサブブロックに分割される。サブブロックに分割されたビデオデータは、アクティビティ部２０９に供給される。
【００６４】
アクティビティ部２０９は、上述したアクティビティ部２０５と、基本的には同様の処理を行う。ただし、このアクティビティ部２０９では、上述のように、プリエンコード処理を行うためのもので、第１フィールドおよび第２フィールドのデータが共に用いられて、マクロブロック毎のアクティビティが計算される。アクティビティ部２０９により、先ず、アクティビティactが求められ、第３図Ｃに示されるように、ヘッダ部のマクロブロックアドレスに続けて格納される。次に、このアクティビティactと上述した平均化部２０６から得られるフィールドアクティビティの平均値avg_actとを用いて、正規化アクティビティNactが求められる。
【００６５】
正規化アクティビティNactは、正規化アクティビティデータnorm_actとして、第４図Ａに示されるように、ストリーム中のヘッダ部に一時的にフラグとして挿入され、後段に伝えられる。なお、上述のアクティビティactは、ストリーム中で、正規化アクティビティデータnorm_actに上書きされる。
【００６６】
一方、このアクティビティ部２０９において、サブブロック毎に画素の色成分が検出され、検出された色成分が特定の色として設定された範囲に含まれる画素の数が計数される。そして、計数結果が閾値、例えばサブブロックを構成する画素数の少なくとも１／２を超えていたら、当該サブブロックが含まれるマクロブロックに特定の色が検出されたと判定され、当該マクロブロックに対する正規化アクティビティデータnorm_actがより小さい値に修正される。
【００６７】
アクティビティ部２０９の出力は、ＤＣＴ部２１０Ａに供給される。ＤＣＴ部２１０Ａでは、供給されたマクロブロックを８画素×８ラインからなるＤＣＴブロックに分割し、ＤＣＴブロックに対して２次元ＤＣＴが行われ、ＤＣＴ係数が生成される。ＤＣＴ係数は、第４図Ｂに示されるように、ストリームのデータ部に格納され、量子化テーブル部２１１Ａに供給される。
【００６８】
量子化テーブル部２１１Ａでは、ＤＣＴ部２１０Ａで変換されたＤＣＴ係数に対して量子化マトリクス(quantizer_matrix)による量子化が行われる。量子化テーブル部２１１Ａで量子化されたＤＣＴ係数は、第４図Ｃに示されるように、ストリームのデータ部に格納され、出力される。量子化テーブル部２１１Ａの出力は、複数の量子化ブロック２１２、２１２、・・・、ＶＬＣ部２１３、２１３、・・・、積算部Σ２１４、２１４、・・・、ならびに、積算部Σ２１５、２１５、・・・とからなる多段階の量子化部に供給される。量子化テーブル部２１１Ａで量子化されたＤＣＴ係数は、この多段階ステップの量子化部で多段階に量子化される。
【００６９】
ＤＣＴ係数は、量子化ブロック２１２、２１２、・・・において、それぞれ異なった量子化スケール(quantizer_scale)値Ｑを用いて量子化される。なお、量子化スケール値Ｑは、例えばＭＰＥＧ２の規格によって予め決められており、量子化ブロック２１２、２１２、・・・は、この規格に基づき、量子化ステップ幅がそれぞれ異なる例えばｎ＝３１個の量子化器で構成される。そして、各量子化ブロック２１２、２１２、・・・がそれぞれに割り振られた量子化スケール値Ｑｎを用いて、ＤＣＴ係数の量子化が合計で３１ステップ、行われる。以下では、Ｑ＿ｎ部２１２、２１２、・・・において、それぞれに対応する量子化スケール値を量子化スケール値Ｑｎとする。
【００７０】
量子化ブロック２１２、２１２、・・・において、それぞれの量子化スケール値Ｑｎにより量子化が行われる。量子化ブロック２１２、２１２、・・・における量子化の結果は、整数部と小数部とに分けられて出力される。整数部は、量子化スケール値Ｑｎ毎のＤＣＴ係数として、それぞれ第５図Ａに示されるようにストリーム中のデータ部に格納され、ＶＬＣ部２１３、２１３、・・・にそれぞれ供給される。量子化スケール値Ｑｎ毎のＤＣＴ係数は、ＶＬＣ部２１３、２１３、・・・において、ジグザグスキャンなどのスキャニングが施され、２次元ハフマンコードなどに基づくＶＬＣテーブルが参照されてそれぞれ可変長符号化される。
【００７１】
ＶＬＣ部２１３、２１３、・・・で可変長符号化されたデータは、第５図Ｂに示されるようにストリーム中のデータ部に格納され、それぞれ出力される。ＶＬＣ部２１３、２１３、・・・の出力は、それぞれ対応する積算部Σ２１４、２１４、・・・に供給される。
【００７２】
積算部Σ２１４、２１４、・・・では、それぞれマクロブロック毎に発生符号量が積算される。上述のように３１種類の量子化器を用いる場合には、それぞれに対応する３１種類の発生符号量がマクロブロック毎に得られることになる。マクロブロック毎の発生符号量は、第６図Ａに示されるように、積算部Σ２１４、２１４、・・・において積算された発生符号量がストリーム中のヘッダ部に、各々格納される。すなわち、量子化ブロック２１２、２１２、・・・のそれぞれの量子化による発生符号量が、マクロブロック毎に、ストリームのヘッダ部に格納される。なお、ストリームのデータ部は、削除される。この、マクロブロック毎の発生符号量が埋め込まれたストリームは、メインメモリ２０３に供給され、後述するエンコード部１０３Ｃに供給される。
【００７３】
また、積算部Σ２１４、２１４、・・・から出力されたマクロブロック毎の発生符号量を用いて適応量子化が行われる。すなわち、上述のアクティビティ部２０９で得られた、色に対する視覚特性が考慮された正規化アクティビティデータnorm_actを用いて、次の式（４）により、視覚特性を考慮した量子化スケールであるmqauntを求める。
mqaunt＝Ｑ＿ｎ×norm_act      ・・・（４）
【００７４】
積算部Σ２１５、２１５、・・・は、視覚特性を考慮したquantizer_scale（＝mquant）で量子化した場合のマクロブロック毎の発生符号量に対応する符号量を、積算部Σ２１４で求めたマクロブロック毎の発生符号量の中から選択し、それを１フレーム分積算する。
【００７５】
積算部Σ２１５、２１５、・・・で量子化スケール値Ｑｎ毎にそれぞれ１フレーム分積算された値は、そのフレームにおける発生符号量（フレームデータレート）とされて、第６図Ｂに示されるように、ｎワードのストリームとされる。このフレームデータレートが埋め込まれたストリームは、後述するレートコントロール部２１７に供給される。なお、上述のように３１種類の量子化器を用いる場合には、それぞれに対応する３１種類の発生符号量がフレーム毎に得られることになる。
【００７６】
発生符号量を求める方法を、より具体的に説明する。例えば、「Ｑ＿４部２１２に対応する積算部Σ２１５によるフレームにおける発生符号量」は、次のようにして求められる。
例えば、
norm_act[1]=1.3
norm_act[2]=1.5
norm_act[3]=0.8
norm_act[4]=1.0
・・・
である場合、
mqaunt[1]=4x1.3=5.2
：量子化スケール値Ｑｎ＝５である量子化ブロック２１２による発生符号量を、第６図Ａのヘッダ部から求める。
mqaunt[2]=4x1.5=6.0
：量子化スケール値Ｑｎ＝６である量子化ブロック２１２による発生符号量を、第６図Ａのヘッダ部から求める。
mqaunt[3]=4x0.8=3.2
：量子化スケール値Ｑｎ＝３である量子化ブロック２１２による発生符号量を、第６図Ａのヘッダ部から求める。
mqaunt[4]=4x1.0=4.0
：量子化スケール値Ｑｎ＝４である量子化ブロック２１２による発生符号量を、第６図Ａのヘッダ部から求める。
・・・
以上を、１フレーム分、積算する。これを、Ｑ＿１部２１２〜Ｑ＿ｎ部２１２に対応する積算部Σ２１５、２１５、・・・対してそれぞれ行い、１フレーム分の発生符号量を求める。
【００７７】
次に、エンコード処理部１０３Ｃについて説明する。エンコード処理部１０３Ｃでは、最終的なエンコード処理が行われる。上述したように、プリエンコード処理部１０３Ｂにおいて、様々な量子化を行った場合の１フレーム分の発生符号量が見積もられる。エンコード処理部１０３Ｃでは、この１フレーム分で見積もられた発生符号量に基づき、予め設定された目標発生符号量を絶対に超えないようにエンコードが行われ、ＭＰＥＧ  ＥＳが出力される。
【００７８】
エンコード処理部１０３Ｃで用いられるデータは、既にメインメモリ２０３に格納されているが、上述したように、プリエンコード処理部１０３Ｂにより様々な量子化を行った場合の１フレームにおける発生符号量が見積もられた時点で処理を開始することができる。エンコード処理部１０３Ｃの各部における処理は、上述と同様に、タイミングジェネレータＴＧ２２０からの指令に基づき適切に開始される。
【００７９】
メインメモリ２０３から読み出されたビデオデータは、ラスタスキャン／ブロックスキャン変換部２０７Ｂにおいて、上述のラスタスキャン／ブロックスキャン変換部２０７Ａと同様の処理をされて１６画素×１６ラインのマクロブロックが切り出される。切り出されたマクロブロックは、第７図Ａに示されるように、上述した第６図Ａに示されるヘッダ部に対応するデータ部に格納され、ＤＣＴモード部２１６に供給される。
【００８０】
ＤＣＴモード部２１６では、上述のＤＣＴモード部２０８と同様に、フィールドＤＣＴ符号化モードおよびフレームＤＣＴ符号化モードのうち何れを用いて符号化するかが決められる。このとき、既にＤＣＴモード部２０８において符号化モードが決められ、その結果がＤＣＴタイプデータdct_typとしてストリーム中に一時的に挿入されている（第７図Ａ参照）。ＤＣＴモード部２１６では、ストリームからこのＤＣＴタイプデータdct_typを検出し、検出されたＤＣＴタイプデータdct_typに基づきフィールド符号化モードおよびフレーム符号化モードを切り換える。ＤＣＴモード部２１６の出力を第７図Ｂに示す。
【００８１】
ＤＣＴモード部２１６から出力されたマクロブロックは、ＤＣＴ部２１０Ｂに供給され、上述のＤＣＴ部２１０Ａと同様にして８画素×８ラインのＤＣＴブロック単位で２次元ＤＣＴされる。２次元ＤＣＴされたＤＣＴ係数は、第７図Ｃに示されるように、ストリーム中のデータ部に格納されて、ＤＣＴ部２１０Ｂから出力される。
【００８２】
量子化テーブル部２１１Ｂは、上述の量子化テーブル部２１１Ａと同様に構成することができ、ＤＣＴ部２１０Ｂで変換されたＤＣＴ係数に対して量子化マトリクスによる量子化が行われる。量子化テーブル部２１１Ｂで量子化されたＤＣＴ係数は、第８図Ａに示されるように、ストリーム中のデータ部に格納されてレートコントロール部２１７に供給される。
【００８３】
レートコントロール部２１７には、上述したプリエンコード処理部１０３Ｂにおいて積算部Σ２１５、２１５、・・・で得られた、各量子化スケール値Ｑｎ毎のフレームデータレートの中から、システムコントローラ１１７により設定される１フレーム当たりの最大発生符号量を超えないもので、且つ、最も設定値に近いものが選択されると共に、選択されたフレームデータレートに対応する量子化スケール値Ｑが取得される。このマクロブロック毎の量子化スケール値Ｑは、第８図Ｂに示されるように、ストリーム中のヘッダ部の後端側にqauntiser_scaleとして格納され、量子化部２１８に伝えられる。
【００８４】
なお、残り符号量は、レートコントロール部２１７において、例えばシステムコントローラ１１７により設定されＣＰＵ  Ｉ／Ｆ２２１を介して供給される、１フレーム当たりの最大発生符号量（目標符号量）と、積算部Σ２１５、２１５、・・・から供給される各量子化スケール値Ｑｎ毎のフレームデータレートとから求めることができる。
【００８５】
また、システムコントローラ１１７で設定されＣＰＵ  Ｉ／Ｆ２２１を介して伝えられる、１フレームあたりの最大発生符号量と、レートコントロール部２１７で選択された、フレームデータレートの示す１フレーム当たりの発生符号量との差分を超えない範囲で、マクロブロック毎に量子化スケール(mquant)の値を１サイズ小さくするようにできる。これにより、システムコントローラ１１７で設定されＣＰＵ  Ｉ／Ｆ２２１を介して伝えられる１フレーム当たりの最大発生符号量に近付け、高画質を実現することが可能である。
【００８６】
量子化部２１８では、レートコントロール部２１７により上述のようにして指定される量子化スケール(quantizes_scale)値をストリーム中から取り出し、取り出された量子化スケール値に基づき量子化テーブル部２１１Ｂで量子化されたＤＣＴ係数の量子化が行われる。このとき、レートコントロール部２１７から与えられる量子化スケール値は、正規化アクティビティデータnorm_actから求められた量子化スケール(mquant)の値であるため、色成分および画像の複雑さに基づく視覚特性が考慮された適応量子化が行われることになる。
【００８７】
量子化部２１８で量子化されたＤＣＴ係数は、第８図Ｃに示されるようにストリーム中のデータ部に格納され、ＶＬＣ部２１９に供給される。量子化されＶＬＣ部２１９に供給されたＤＣＴ係数は、ジグザグスキャンなどのスキャンニングが施され、２次元ハフマンコードに基づくＶＬＣテーブルが参照されてそれぞれ可変長符号化される。
【００８８】
このとき、ＶＬＣ部２１９までストリームの前半部を構成していたヘッダ部が第９図に示されるようにスライス層以下のＭＰＥＧのヘッダ情報が格納されるＭＰＥＧのヘッダ部にすげ替えられて出力される。可変長符号は、ストリームの後半側のデータ部に格納される。さらに、可変長符号に対して、バイト単位で整列するようにビットシフトが施され、ＭＰＥＧ  ＥＳとされて出力される。
【００８９】
第１０図は、アクティビティ部２０９の一例の構成を概略的に示す。ＤＣＴモード部２０８から出力されたビデオデータうち色差成分Ｃｂ、Ｃｒは、サブブロック化部３００でサブブロック化される。この実施の一形態では、１６画素×１６ラインのマクロブロックが分割され、４画素×４ラインのサブブロックが色差データＣｂ、Ｃｒ毎に形成される。
【００９０】
例えば、クロマフォーマットが４：２：２の場合には、第１１図Ａに示されるように、マクロブロックは、８画素×８ラインからなるＤＣＴブロック２個分の色差データＣｂ、Ｃｒを有し、色差データＣｒ、Ｃｂによるサブブロックがそれぞれ４個の、計８個のサブブロックが形成される。他の例として、クロマフォーマットが４：４：４の場合には、マクロブロックは、８画素×８ラインからなるＤＣＴブロック４個分の色差データＣｂ、Ｃｒを有し、色差データによるサブブロックが１６個、形成される。なお、４：２：２、４：４：４以外の他のクロマフォーマットについても、同様にしてサブブロックを形成することができる。
【００９１】
なお、第１１図Ａ、第１１図Ｂおよび第１１図Ｃにおいて、ラインの塗り分けでそのラインが属するフィールドが示される。
【００９２】
ここで、ＤＣＴモード部２０８でストリームに埋め込まれたＤＣＴモードタイプデータdct_typに基づき、符号化モードがフレームＤＣＴ符号化モードであるとされた場合には、第１１図Ｂに一例が示されるように、１サブブロック内に１フレームを構成する２フィールドのデータが混在される。一方、符号化モードがフィールド符号化モードであるとされた場合には、第１１図Ｃに一例が示されるように、１サブブロックが同一フィールドのデータで構成される。
【００９３】
上述では、サブブロック化をビデオデータの色差成分Ｃｂ、Ｃｒに対してのみ行うように説明したが、ビデオデータの輝度成分Ｙに対しても、同様にサブブロック化してもよい。
【００９４】
サブブロック化部３００から出力されたビデオデータのうち、輝度成分Ｙのデータがアクティビティ（Ｙ）部３０１に、色差成分Ｃｂ、Ｃｒのデータが色検出部３０２にそれぞれ供給される。
【００９５】
アクティビティ（Ｙ）部３０１では、供給されたビデオデータの輝度成分Ｙを用いて、上述したようにして、マクロブロック毎の正規化アクティビティNactが求められる。正規化アクティビティNactは、アクティビティ修正部３０３に供給される。一方、色検出部３０２では、供給されたビデオデータの色差データＣｂ、Ｃｒに基づき、サブブロック毎に特定の色が検出され、検出結果に基づきマクロブロックが特定の色を含むマクロブロックであるか否かが判定される。判定結果は、アクティビティ修正部３０３に供給される。
【００９６】
アクティビティ修正部３０３では、色検出部３０２から供給された判定結果に基づき、アクティビティ（Ｙ）部３０１から供給された正規化アクティビティNactを修正する。修正された正規化アクティビティNactは、正規化アクティビティデータnorm_actとして、ストリームに埋め込まれる。これら、色検出部３０２およびアクティビティ修正部３０３における処理の詳細は、後述する。
【００９７】
第１２図は、ＭＰＥＧエンコーダ１０３の処理をソフトウェアで行う場合の一例のフローチャートである。第１２図のフローチャートによる処理は、上述したハードウェアによる処理と同様なものであるので、以下では、ハードウェアにおける処理と対応させながら、概略的に説明する。
【００９８】
第１２図に示される処理のうち、ステップＳ１〜Ｓ７は、上述の入力フィールドアクティビティ平均化処理部１０３Ａによる処理に対応する。ステップＳ１１〜Ｓ２３は、上述のプリエンコード処理部１０３Ｂに対応する。また、ステップＳ３１〜Ｓ３８は、上述のエンコード処理部１０３Ｃに対応する。
【００９９】
最初のステップＳ１で、入力インターフェイスを介してビデオデータが取り込まれる。次のステップＳ２で、取り込まれたビデオデータから、垂直ブランキング区間でＭＰＥＧにおける各ヘッダが作成されメモリに格納される。垂直ブランキング区間以外では、取り込まれたビデオデータがメモリに格納される。
【０１００】
ステップＳ３では、ビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。これは、例えばメモリに格納されたビデオデータを読み出す際の読み出しアドレスを制御することでなされる。ステップＳ４で、マクロブロックに切り出されたビデオデータに対して第１フィールドによるアクティビティ計算がなされ、計算結果のアクティビティActibity(act)がステップＳ５で積算され、積算値sumとしてメモリに格納される。これらステップＳ３〜Ｓ５までの処理は、ステップＳ６において第１フィールドの最終マクロブロックの処理が終了したと判断されるまで繰り返される。すなわち、積算値sumは、１フィールド分のマクロブロックのアクティビティの合計となる。
【０１０１】
ステップＳ６において１フィールドの最終マクロブロックまで処理が終了したと判断されたら、ステップＳ７で、メモリに格納された積算値sumが１フィールド分のマクロブロック数で除され、１フィールド分のアクティビティが平均化されたフィールドアクティビティの平均値Actibity(avg_act)が求められ、メモリに格納される。
【０１０２】
フィールドアクティビティの平均値Actibity(avg_act)が求められると、処理はステップＳ１１に移行する。ステップＳ１１では、上述のステップＳ３と同様に、メモリに格納されたビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。
【０１０３】
次のステップＳ１２で、ＤＣＴをフィールドＤＣＴ符号化モードおよびフレームＤＣＴ符号化モードの何れで行うかが選択され、選択結果がＤＣＴモードタイプデータdct_typとしてメモリに格納される。ステップＳ１３では、第１および第２フィールドが共に用いられて、マクロブロック毎のアクティビティが計算され、上述のステップＳ７で求められメモリに格納されたフィールドアクティビティの平均値Actibity(avg_act)を用いて正規化アクティビティActibity(norm_act)が求められる。求められた正規化アクティビティActibity(norm_act)は、メモリに格納される。
【０１０４】
ステップＳ１４で、マクロブロックの色が検出される。例えばメモリからサブブロック毎に読み出されたビデオデータの色差データＣｂ、Ｃｒに基づき、特定の色が検出され、検出結果に基づきマクロブロックが特定の色を含むか否かが判定される。次のステップＳ１５では、ステップＳ１４での判定結果に基づき、特定の色を含むとされたマクロブロックの正規化アクティビティActibity(norm_act)が修正される。修正された正規化アクティビティActibity(norm_act)は、例えば、メモリ上の元の正規化アクティビティActibity(norm_act)に対して上書きされる。
【０１０５】
次のステップＳ１６で、上述のステップＳ１１でビデオデータから切り出されたマクロブロックが８画素×８ラインからなるＤＣＴブロックに分割され、このＤＣＴブロックに対して２次元ＤＣＴが行われる。２次元ＤＣＴによりＤＣＴブロックが変換されたＤＣＴ係数は、ステップＳ１７で量子化テーブル(quantizer_table)による量子化がなされ、処理はステップＳ１８に移行される。
【０１０６】
ステップＳ１８〜Ｓ２１の処理を、量子化スケール(quantizer_scale)値Ｑｎそれぞれについて行うように繰り返すことで、上述のＱ＿ｎ部２１２、２１２、・・・、ＶＬＣ部２１３、２１３、・・・、積算部Σ２１４、２１４、・・・、ならびに、積算部Σ２１５、２１５、・・・に相当する処理が行われる。すなわち、ステップＳ１８で、ＤＣＴ係数に対して量子化スケール値Ｑ＝１での量子化が行われる。
【０１０７】
ステップＳ１８で量子化されたＤＣＴ係数は、ステップＳ１９で、ＶＬＣテーブルが参照されて可変長符号化される。そして、ステップＳ２０で可変長符号化によるマクロブロックにおける発生符号量が計算され、メモリに格納される。ステップＳ２１で次の量子化スケール値Ｑがあるか否かが判断され、次の量子化スケール値Ｑがあると判断されたら（ＹＥＳ）、処理はステップＳ１８に戻され、次の量子化スケール値Ｑに基づく処理が行われる。
【０１０８】
一方、ステップＳ２１で、全ての量子化スケール値Ｑｎの値について、マクロブロックにおける発生符号量の積算値が求められたとされれば、ステップＳ２２で、ステップＳ２０で求められたマクロブロック毎の発生符号量が１フレーム分、積算される。このとき、上述したmquantによる視覚特性を利用した適応量子化が行われる。ステップＳ２３で、１フレームの最終マクロブロック（ＭＢ）まで処理が終了したかどうかが判断され、最終マクロブロックまでの処理が終了していないと判断されたら、処理がステップＳ１１に戻される。一方、最終マクロブロックまでの処理が終了され、１フレーム分の発生符号量が見積もられれば、量子化スケール値Ｑｎ毎の適応量子化による１フレーム分の発生符号量は、それぞれメモリに格納され、処理はステップＳ３１に移行され、実際のエンコード処理が行われる。
【０１０９】
ステップＳ３１では、上述のステップＳ１１と同様に、メモリに格納されたビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。次のステップＳ３２では、上述のステップＳ１２でメモリに格納されたＤＣＴモードタイプデータdct_typに基づきＤＣＴ符号化モードが設定される。
【０１１０】
ステップＳ３３では、ステップＳ３１でビデオデータから切り出されたマクロブロックが８画素×８ラインからなるＤＣＴブロックに分割され、このＤＣＴブロックに対して２次元ＤＣＴが行われる。２次元ＤＣＴによりＤＣＴブロックが変換されたＤＣＴ係数は、ステップＳ３４で量子化テーブル(quantizer_table)による量子化がなされ、処理はステップＳ３５に移行される。
【０１１１】
ステップＳ３５では、上述したステップＳ１１〜Ｓ２３において見積もられた、量子化スケール値Ｑ毎の１フレーム分の発生符号量に基づき、実際のエンコード処理において発生される符号量の制御を行うために、後述するステップＳ３６で用いられる量子化スケール値Ｑがマクロブロック毎に設定される。
【０１１２】
次のステップＳ３６では、ステップＳ３５で設定された量子化スケール値Ｑを用いて、ステップＳ３４で量子化テーブルを用いて量子化されたＤＣＴ係数の量子化が行われる。
【０１１３】
ステップＳ３６で量子化されたＤＣＴ係数は、次のステップＳ３７でＶＬＣテーブルが参照され可変長符号化される。そして、ステップＳ３８で１フレームの最終マクロブロックまで処理が行われたか否かが判断され、１フレームの最終マクロブロックまで処理されていないと判断されれば（ＮＯ）、処理がステップＳ３１に戻され、次のマクロブロックに対する量子化処理および可変長符号化処理が行われる。一方、ステップＳ３８で、１フレームの最終マクロブロックまで処理が行われたと判断されれば、１フレーム分のエンコード処理が終了したとされる。
【０１１４】
なお、上述では、ステップＳ１１〜Ｓ２３までのプリエンコード処理と、ステップＳ３１〜Ｓ３８までのエンコード処理とを別々の処理として説明したが、これはこの例に限定されない。例えば、ステップＳ１１〜Ｓ２３において発生符号量の見積もりにより得られたデータをメモリに格納し、そこから実際のエンコード処理により得られるデータを選択して取り出すようにする。これにより、ステップＳ３１〜Ｓ３８の処理をステップＳ１１〜Ｓ２３による処理に含まれるループとして組み込むことができる。
【０１１５】
次に、この発明の実施の一形態による、色検出によるアクティビティの修正について説明する。以下に説明するアクティビティの修正処理は、上述した第２図Ａ、第２図Ｂおよび第２図Ｃにおいてはアクティビティ部２０９、第１２図においてはステップＳ１４およびＳ１５で行われる。
【０１１６】
ＭＰＥＧ２による圧縮符号化において、アクティビティに基づく適応量子化を用いて画質の最適化を図る方法では、画像中、視覚的に劣化の目立ち易い平坦部では小さな量子化スケール値を用いて量子化ステップを小さくして細かく量子化し、劣化の目立ちにくい複雑な部分では大きな量子化スケール値を用いて量子化ステップを大きくして粗く量子化する。これは、限られた符号量の範囲で画質を最適化する、有効な方法である。
【０１１７】
しかしながら、アクティビティに基づく適応量子化においては、人間の画像に対する色による視覚特性については、考慮されていない。例えば、人間の色に対する視覚特性は、赤色の感度が高く、その劣化を検知しやすい。また、クロマキーで用いられるブルーバックの青色なども、画像処理の観点からみて、劣化を抑えたい色である。
【０１１８】
そこで、この発明の実施の一形態では、このような劣化を防止したい色を検出し、その色を含むマクロブロックの量子化ステップ幅を小さくして当該マクロブロックをより細かく量子化することで、画質の劣化を抑制する。
【０１１９】
具体的には、検出したい色を色差Ｃｂ、Ｃｒで表される色差平面（Ｃｂ、Ｃｒ）上の範囲として設定し、上述した４画素×４ラインのサブブロック毎に、サブブロック内の画素の色差信号Ｃｂ、Ｃｒが設定された色差平面（Ｃｂ、Ｃｒ）上の範囲内にあるか否かを判定し、範囲内にあると判定された画素の個数をサブブロック毎に計数する。計数値が閾値を超えた場合、当該サブブロックは、設定された色が検出されたものと判定する。閾値としては、サブブロックに含まれる画素総数の少なくとも１／２以上、例えばサブブロックの画素総数の２／３以上が設定される。この場合、４画素×４ラインのサブブロックに含まれる総計１６個の画素のうち、１１画素以上が計数された場合に、当該サブブロックは、設定された色が検出されたものと判定される。
【０１２０】
そして、１マクロブロックに含まれるサブブロックのうち少なくとも１個が、設定された色が検出されたサブブロックであると判定された場合、当該マクロブロックは、設定された色を含むマクロブロックであると判定される。
【０１２１】
すなわち、クロマフォーマットが４：２：２の場合は、１マクロブロックに含まれる８個のサブブロックのうち少なくとも１個が、設定された色が検出されたサブブロックであるとされれば、当該マクロブロックは、設定された色を含むマクロブロックであるとされる。同様に、クロマフォーマットが４：４：４の場合は、１マクロブロックに含まれる１６個のサブブロックのうち１個が、設定された色が検出されたサブブロックであるとされれば、当該マクロブロックは、設定された色を含むマクロブロックであるとされる。これは、クロマフォーマットが４：２：２や４：４：４の場合に限らず、他の構成のクロマフォーマットの場合においても同様である。
【０１２２】
検出したい色の設定方法について説明する。第１３図は、色差ＣｂおよびＣｒをそれぞれ横軸および縦軸とした、色差平面（Ｃｂ，Ｃｒ）を示す。任意の色は、この色差平面（Ｃｂ，Ｃｒ）上の１点として表現される。一例として、赤色（Ｒ）、青色（Ｂ）および緑色（Ｇ）の色差平面（Ｃｂ，Ｃｒ）上の位置を、「＋（プラス）」印でそれぞれ示す（点Ｒ、点Ｂ、点Ｇ）。この実施の一形態では、検出したい色を、この色差平面（Ｃｂ，Ｃｒ）上の範囲として設定する。
【０１２３】
検出したい色としての赤色（Ｒ）は、第１３図において、点Ｒを含む、斜線で塗り潰された範囲として設定される。すなわち、赤色は、色差平面（Ｃｂ，Ｃｒ）上で、直線α、Ｃｂ＝１２８、Ｃｒ＝２５５、Ｃｒ＝１７６で囲まれた範囲として設定される。なお、直線αは、下記の式（５）で表される。
Ｃｒ＝−２Ｃｂ＋３８４      ・・・（５）
【０１２４】
検出したい色としての青色（Ｂ）は、第１３図において、点Ｂを含む、斜線で塗り潰された範囲として設定される。すなわち、青色は、色差平面（Ｃｂ，Ｃｒ）上で、直線β、Ｃｒ＝１２８、Ｃｂ＝１７６、Ｃｂ＝２５５で囲まれた範囲として設定される。なお、直線βは、下記の式（６）で表される。
Ｃｒ＝（−１／２）Ｃｂ＋１９２      ・・・（６）
【０１２５】
検出したい色としての緑色（Ｇ）は、第１３図において、点Ｇを含む、網線で塗り潰された範囲として設定される。すなわち、緑色は、色差平面（Ｃｂ，Ｃｒ）上で、Ｃｒ＝３２、Ｃｒ＝０、Ｃｂ＝４８、Ｃｂ＝１６で囲まれた範囲として設定される。
【０１２６】
なお、上述の範囲は一例であって、これに限定されるものではない。すなわち、検出したい色と色味が似通った色を示すことができればば、他の方法で範囲を設定してもよい。例えば、上述では、赤色と青色の範囲をそれぞれ傾斜した直線αおよびβを用いて設定しているが、赤色および／または青色の範囲を、緑色の範囲設定の例のように矩形で設定することもできる。上述では範囲が直線で囲まれているものとしたが、曲線で囲むような範囲を設定することもできる。また、上述では、検出したい色を赤色、青色および緑色としたが、この例に限定されず、赤色、青色および緑色の何れか一色（若しくは二色）を検出したい色として設定してもよいし、赤色、青色および緑色以外の色を検出したい色として設定することも可能である。
【０１２７】
このように設定された範囲に対して、サブブロック毎に、サブブロックに含まれる画素の色差Ｃｂの色差レベルCb[p]と、色差Ｃｒの色差レベルCr[p]とが比較され、当該画素の色が設定された範囲内の色であるか否かが判定される。そして、範囲内の色であると判定された画素数がサブブロック毎に計数される。計数された画素数が閾値以上であるサブブロックがマクロブロック内に少なくとも１個あれば、当該マクロブロックが特定色のマクロブロックであるとされ、当該マクロブロックに対して特定色に対応した量子化優遇値が選択される。この量子化優遇値を正規化アクティビティNactに乗ずることにより、正規化アクティビティNactを修正する。
【０１２８】
検出したい色を赤色（Ｒ）、青色（Ｂ）および緑色（Ｇ）として、各色の検出方法について、より詳細に説明する。
【０１２９】
先ず、赤色（Ｒ）の検出方法について、下記の式を用いて説明する。なお、下記に示す式は、コンピュータ装置などのプログラムの記述言語として用いられるＣ言語の記述法に基づく。また、各行の先頭の数字＋「：」は、説明に用いる行番号を示す。
1 :R_det=1.0;
2 :for(n=0;n<num_of_block;n++) {
3 :    R_cnt=0;
4 :    for(p=0;p<16;p++) {
5 :        if((Cr[p]>=-2*Cb[p]+384)&&(Cr[p]>=176)&&(Cb[p]<=128)) {
6 :        R_cnt++;
7 :    }
8 :    if(R_cnt>=R_num) {
9 :    R_det=R_scale;
10:    break;
11:    }
12:}
【０１３０】
１行目で、赤色に対する量子化優遇値R_detの初期値が〔１．０〕に設定される。２行目では、以下のサブブロック毎の処理が１マクロブロックに含まれるサブブロックの個数分、繰り返されることが示される。１マクロブロックに含まれるサブブロックの個数は、値num_of_blockで与えられ、例えばクロマフォーマットが４：２：２のときは、値num_of_blockが〔８〕とされ、４：４：４のときは、値num_of_blockが〔１６〕とされる。３行目では、赤色と判定される画素の個数を示す計数値R_cntが初期化される。
【０１３１】
４行目では、サブブロック内の画素数分、以下５行目および６行目の処理が繰り返されることが示される。５行目で、第１３図を用いて説明した赤色の範囲（点Ｒを含む斜線で塗り潰された範囲）が示され、サブブロック内のp番目の画素pが赤色であるか否かが判定される。すなわち、画素pにおける色差レベルCb[p]およびCr[p]が５行目に示される条件を満たしているか否かが判定され、満たしているとされた場合に、画素pが赤色であるとされる。なお、記号「&&」は、論理積「ＡＮＤ」を示す。若し、画素pが赤色であると判定されたら、６行目で、計数値R_cntが〔１〕だけインクリメントされる。
【０１３２】
この判定がサブブロック内の１６画素に対して全てなされたら、８行目で、計数値R_cntが予め与えられたパラメータR_numと比較される。パラメータR_numは、サブブロック内の画素総数のうち何画素以上が赤色であると判定された場合に、当該サブブロックが赤色を検出したとするかを設定する閾値である。このとき、パラメータR_numは、ランダムノイズなどを誤検出せず、一塊りの連続的な赤色を検出するために、サブブロックの画素総数に対して少なくとも１／２以上の値が設定される。この実施の一形態では、パラメータR_numとしてサブブロックの画素総数〔１６〕の３／４である〔１２〕が設定される。
【０１３３】
８行目の計数値R_cntとパラメータR_numとの比較の結果、計数値R_cntがパラメータR_num以上であると判断されたら、９行目で、赤色に対する量子化優遇値R_detに対して、予め与えられたパラメータR_scaleが設定される。パラメータR_scaleは、この例では〔０．５〕とされる。
【０１３４】
１０行目の「break」は、ここで上述の２行目で繰り返し回数を設定されたループ処理から抜けることが示される。すなわち、１マクロブロックに含まれるサブブロックのうち、計数値R_cntがパラメータR_num以上のサブブロックが１個でもあれば、当該マクロブロックに対する処理が終了される。また、各サブブロックにおいて、計数値R_cntがパラメータR_numに達した時点で、ループ処理から抜け、処理が終了される。処理が終了されると、当該マクロブロックに対して、赤色に対する量子化優遇値R_detがパラメータR_scaleの値に設定される。
【０１３５】
この量子化優遇値R_detがマクロブロックに適用された場合、そのマクロブロックに対する量子化スケール値が量子化優遇値R_detに応じて小さい値に変更され量子化ステップ幅が小さくされ、より細かく量子化が行われることになる。すなわち、量子化優遇値R_detが正規化アクティビティNactに乗ぜられ、その正規化アクティビティNactを量子化スケール値に乗ずることによって得られた、視覚特性を考慮した量子化スケール値mquantを用いて、実際の量子化が行われる。したがって、この例では、量子化スケール値mquantが赤色の検出を行わない場合の０．５倍とされ、量子化の際の発生符号量が優遇され、より細かい量子化がなされる。
【０１３６】
なお、上述の式の５行目を下記のようにして、色差平面（Ｃｂ，Ｃｒ）上の赤色の範囲を矩形で与えるようにしてもよい。
5':if((Cb[p]>=R_Cb_lower)&&(Cb[p]<=R_Cb_upper)&&(Cr[p]>=R_Cr_lower)&&(Cr[p]<=R_Cr_upper)
【０１３７】
ここで、色差平面（Ｃｂ，Ｃｒ）上の範囲を示すパラメータR_Cb_lower、R_Cb_upper、R_Cr_lowerおよびR_Cr_upper（第１３図参照）を、例えば下記のように与える。
R_Cb_lower=64
R_Cb_upper=128
R_Cr_lower=176
R_Cr_upper=255
【０１３８】
次に、青色（Ｂ）の検出方法について、下記の式を用いて説明する。なお、下記に示す式は、コンピュータ装置などのプログラムの記述言語として用いられるＣ言語の記述法に基づく。また、各行の先頭の数字＋「：」は、説明に用いる行番号を示す。
1 :B_det=1.0;
2 :for(n=0;n<num_of_block;n++) {
3 :    B_cnt=0;
4 :    for(p=0;p<16;p++) {
5 :        if((Cr[p]>=(-1/2)*Cb[p]+192)&&(Cr[p]<=128)&&(Cb[p]>=176)) {
6 :        B_cnt++;
7 :    }
8 :    if(B_cnt>=B_num) {
9 :    B_det=B_scale;
10:    break;
11:    }
12:}
【０１３９】
１行目で、青色に対する量子化優遇値B_detの初期値が〔１．０〕に設定される。２行目では、以下のサブブロック毎の処理が１マクロブロックに含まれるサブブロックの個数分、繰り返されることが示される。１マクロブロックに含まれるサブブロックの個数は、値num_of_blockで与えられ、例えばクロマフォーマットが４：２：２のときは、値num_of_blockが〔８〕とされ、４：４：４のときは、値num_of_blockが〔１６〕とされる。３行目では、青色と判定される画素の個数を示す計数値B_cntが初期化される。
【０１４０】
４行目では、サブブロック内の画素数分、以下５行目および６行目の処理が繰り返されることが示される。５行目で、第１３図を用いて説明した青色の範囲（点Ｂを含む斜線で塗り潰された範囲）が示され、サブブロック内のp番目の画素pが青色であるか否かが判定される。すなわち、画素pにおける色差レベルCb[p]およびCr[p]が５行目に示される条件を満たしているか否かが判定され、満たしているとされた場合に、画素pが青色であるとされる。若し、画素pが青色であると判定されたら、６行目で、計数値B_cntが１だけインクリメントされる。
【０１４１】
この判定がサブブロック内の１６画素に対して全てなされたら、８行目で、計数値B_cntが予め与えられたパラメータB_numと比較される。パラメータB_numは、サブブロック内の画素総数のうち何画素以上が青色であると判定された場合に、当該サブブロックが青色を検出したとするかを設定する閾値である。このとき、パラメータB_numは、ランダムノイズなどを誤検出せず、一塊りの連続的な青色を検出するために、サブブロックの画素総数に対して少なくとも１／２以上の値が設定される。この実施の一形態では、パラメータB_numとしてサブブロックの画素総数〔１６〕の３／４である〔１２〕が設定される。
【０１４２】
８行目の計数値B_cntとパラメータB_numとの比較の結果、計数値B_cntがパラメータB_num以上であると判断されたら、９行目で、青色に対する量子化優遇値B_detに対して、予め与えられたパラメータB_scaleが設定される。パラメータB_scaleは、この例では〔０．７５〕とされる。
【０１４３】
１０行目の「break」は、ここで上述の２行目で繰り返し回数を設定されたループ処理から抜けることが示される。すなわち、１マクロブロックに含まれるサブブロックのうち、計数値B_cntがパラメータB_num以上のサブブロックが１個でもあれば、当該マクロブロックに対する処理が終了され、当該マクロブロックに対して、青色に対する量子化優遇値B_detがパラメータB_scaleの値に設定される。
【０１４４】
この量子化優遇値B_detがマクロブロックに適用された場合も、上述の赤色検出の場合と同様である。この青色の検出の場合には、量子化スケール値mquantが青色の検出を行わない場合の０．７５倍に変更され、量子化の際の発生符号量が優遇され、細かい量子化がなされる。
【０１４５】
なお、上述の式の５行目を下記のようにして、色差平面（Ｃｂ，Ｃｒ）上の青色の範囲を矩形で与えるようにしてもよい。
5':if((Cb[p]>=B_Cb_lower)&&(Cb[p]<=B_Cb_upper)&&(Cr[p]>=B_Cr_lower)&&(Cr[p]<=B_Cr_upper)
【０１４６】
ここで、色差平面（Ｃｂ，Ｃｒ）上の範囲を示すパラメータB_Cb_lower、B_Cb_upper、B_Cr_lowerおよびB_Cr_upper（第１３図参照）を、例えば下記のように与える。
B_Cb_lower=176
B_Cb_upper=255
B_Cr_lower=64
B_Cr_upper=128
【０１４７】
次に、緑色（Ｇ）の検出方法について、下記の式を用いて説明する。なお、下記に示す式は、コンピュータ装置などのプログラムの記述言語として用いられるＣ言語の記述法に基づく。また、各行の先頭の数字＋「：」は、説明に用いる行番号を示す。
1 :G_det=1.0;
2 :for(n=0;n<num_of_block;n++) {
3 :    G_cnt=0;
4 :    for(p=0;p<16;p++) {
5 :        if((Cb[p]>=G_Cb_lower)&&(Cb[p]<=G_Cb_upper)&&(Cr[p]>=G_Cr_lower)&&(Cr[p]<=G_Cr_upper) {
6 :        G_cnt++;
7 :    }
8 :    if(G_cnt>=G_num) {
9 :    G_det=G_scale;
10:    break;
11:    }
12:)
【０１４８】
１行目で、緑色に対する量子化優遇値G_detの初期値が〔１．０〕に設定される。２行目では、以下のサブブロック毎の処理が１マクロブロックに含まれるサブブロックの個数分、繰り返されることが示される。１マクロブロックに含まれるサブブロックの個数は、値num_of_blockで与えられ、例えばクロマフォーマットが４：２：２のときは、値num_of_blockが〔８〕とされ、４：４：４のときは、値num_of_blockが〔１６〕とされる。３行目では、緑色と判定される画素の個数を示す計数値G_cntが初期化される。
【０１４９】
４行目では、サブブロック内の画素数分、以下５行目および６行目の処理が繰り返されることが示される。５行目で、第１３図を用いて説明した緑色の範囲（点Ｇを含む点線斜線で塗り潰された範囲）が示され、サブブロック内のp番目の画素pが緑色であるか否かが判定される。すなわち、画素pにおける色差レベルCb[p]およびCr[p]が５行目に示される条件を満たしているか否かが判定され、満たしているとされた場合に、画素pが緑色であるとされる。若し、画素pが緑色であると判定されたら、６行目で、計数値G_cntが１だけインクリメントされる。
【０１５０】
なお、色差平面（Ｃｂ，Ｃｒ）上の範囲を示すパラメータG_Cb_lower、G_Cb_upper、G_Cr_lowerおよびG_Cr_upper（第１３図参照）を、例えば下記のように与える。
G_Cb_lower=16
G_Cb_upper=48
G_Cr_lower=0
G_Cr_upper=32
【０１５１】
この判定がサブブロック内の１６画素に対して全てなされたら、８行目で、計数値G_cntが予め与えられたパラメータG_numと比較される。パラメータG_numは、サブブロック内の画素総数のうち何画素以上が緑色であると判定された場合に、当該サブブロックが緑色を検出したとするかを設定する閾値である。このとき、パラメータG_numは、ランダムノイズなどを誤検出せず、一塊りの連続的な緑色を検出するために、サブブロックの画素総数に対して少なくとも１／２以上の値が設定される。この実施の一形態では、パラメータG_numとしてサブブロックの画素総数〔１６〕の３／４である〔１２〕が設定される。
【０１５２】
８行目の計数値G_cntとパラメータG_numとの比較の結果、計数値G_cntがパラメータG_num以上であると判断されたら、９行目で、緑色に対する量子化優遇値G_detに対して、予め与えられたパラメータG_scaleが設定される。パラメータG_scaleは、この例では〔１〕とされる。この場合には、緑色が検出されたにもかかわらず、緑色検出を行わない場合に対して量子化スケール値mquantが変化せず、量子化の際の発生符号量が優遇されない。
【０１５３】
１０行目の「break」は、ここで上述の２行目で繰り返し回数を設定されたループ処理から抜けることが示される。すなわち、１マクロブロックに含まれるサブブロックのうち、計数値G_cntがパラメータG_num以上のサブブロックが１個でもあれば、当該マクロブロックに対する処理が終了され、当該マクロブロックに対して、緑色に対する量子化優遇値G_detがパラメータG_scaleの値に設定される。
【０１５４】
次に、同一のマクロブロックにおいて、複数色について量子化優遇値が検出された場合の、最終的な量子化優遇値の決定方法について説明する。同一のマクロブロックにおいて、例えば、赤色、青色および緑色の各色の量子化優遇値R_det、B_detおよびG_detがそれぞれ検出された場合、検出された複数の量子化優遇値の中で最小の値のものを選択し、そのマクロブロックの量子化優遇値とする。これは、Ｃ言語的な記述法によれば、次式のように表現できる。
Color_scale=min(R_det,B_det,G_det)
【０１５５】
すなわち、当該マクロブロックの最終的な量子化優遇値Color_scaleは、各色の量子化優遇値R_det、B_detおよびG_detから、最小値を選択する演算子minにより選択されたものに決定される。このようにして決定された量子化優遇値Color_scaleを用いて、アクティビティ（Ｙ）部３０１で輝度成分Ｙから求められた正規化アクティビティNactを変更することで、各色検出の結果が量子化スケール値に反映される。量子化優遇値Color_scaleによる正規化アクティビティNactの修正は、正規化アクティビティNactを正規化アクティビティデータnorm_actとすれば、Ｃ言語的な記述法を用いて次式のように表現できる。
norm_act=Color_scale×norm_act
【０１５６】
第１４図は、上述した色検出の処理を実行する一例のハードウェア構成を示す。これは、第１０図における色検出部３０２およびアクティビティ修正部３０３に対応する。この第１４図に示される構成により、上述した色検出および正規化アクティビティNactの修正を行う各式の処理が実現される。なお、青色および緑色を検出する構成は、赤色を検出する構成と略同等であるので、第１４図では、繁雑さを避けるために、赤色を検出する構成のみを示し、青色および緑色を検出する構成を省略する。
【０１５７】
サブブロック内のある画素の色差データＣｒが比較器３３の入力端ａ、比較器３５の入力端ａおよび比較器３６の入力端ｂにそれぞれ入力される。同じ画素の色差データＣｂが比較器３４の入力端ｂおよび比較器３７の入力端ｂに入力されると共に、１ビットシフト回路３１に入力される。
【０１５８】
１ビットシフト回路３１に入力された色差データＣｂは、１ビットシフトされて値が２倍とされ、減算器３２の一方の入力端に入力される。減算器３２の他方の入力端には、値〔３８４〕が入力される。減算器３２では、値〔３８４〕から１ビットシフト回路３１の出力が減算される。減算器３２の出力が比較器３３の入力端ｂに入力される。比較器３３では、入力端ａおよびｂに入力された値が比較され、色差データＣｒが減算器３２の出力以上の値であれば、"Ｈ"レベル、例えば値〔１〕が出力される。比較器３３の比較結果がアンド回路３８の第１入力端に入力される。
【０１５９】
比較器３４の入力端ａに、値〔１２８〕が入力され、入力端ｂに入力された色差データＣｂと比較され、色差データＣｂが値〔１２８〕以下であれば、"Ｈ"レベルが出力される。比較器３５の入力端ｂに、値〔１７６〕が入力され、入力端ａに入力された色差データＣｒと比較される。色差データＣｒが値〔１７６〕以上であれば、"Ｈ"レベルが出力される。比較器３４および３５の比較結果は、アンド回路３８の第２および第３入力端にそれぞれ入力される。
【０１６０】
アンド回路３８では、第１、第２および第３の入力端に入力された、比較器３３、３４および３５の比較結果の論理積がとられ、全ての入力が"Ｈ"レベルである場合に、出力が"Ｈ"レベルとされる。すなわち、１ビットシフト回路３１、減算器３２および比較器３３で、画素の直線αに対する判定がなされ、この判定結果と比較器３４および３５の比較結果の論理積をとることで、その画素の色が、第１３図における点Ｒを含む斜線で塗り潰された範囲内の色であるか否かが判定される。その画素の色が当該範囲内であると判定されれば、アンド回路３８から"Ｈ"レベルが出力される。
【０１６１】
一方、この第１４図の例の回路では、赤色の検出を色差平面（Ｃｂ，Ｃｒ）上に矩形で与えられた赤色の範囲に基づき判定することも可能となっている。比較器３６の入力端ａおよびｃに、それぞれ赤色の色差Ｃｒに関する上限値R_Cr_upperおよび下限値R_Cr_lowerが入力され、色差データＣｒが上限値R_Cr_upperおよび下限値R_Cr_lowerの範囲内にあれば、"Ｈ"レベルが出力される。同様に、比較器３７の入力端ａおよびｃに、それぞれ赤色の色差Ｃｂに関する上限値R_Cb_upperおよび下限値R_Cb_lowerが入力され、色差データＣｂが上限値R_Cb_upperおよび下限値R_Cb_lowerの範囲内にあれば、"Ｈ"レベルが出力される。比較器３６および３７の出力は、それぞれアンド回路３９の一方および他方の入力端に入力され、両者の論理積がとられる。これにより、その画素の色が、赤色の色差Ｃｒに関する上限値R_Cr_upperおよび下限値R_Cr_lower、ならびに、赤色の色差Ｃｂに関する上限値R_Cb_upperおよび下限値R_Cb_lowerの範囲内にあるか否かが判定される。その画素の色が当該範囲内であると判定されれば、アンド回路３９から"Ｈ"レベルが出力される。
【０１６２】
アンド回路３８および３９の出力は、それぞれセレクタ４０に入力され、選択信号Rselにより一方が選択される。選択信号Rselは、例えば、ユーザの設定などに基づきシスコン１１７により与えられる信号である。
【０１６３】
セレクタ４０の出力は、レジスタ４１に入力され、レジスタ４１から読み出された値が加算器４２の一方の入力端に入力される。加算器４２の出力がレジスタ４３に入力され、レジスタ４３から読み出された値が加算器４２の他方の入力端には入力される。また、レジスタ４３は、サブブロック毎に値がリセットされる。すなわち、加算器４２およびレジスタ４３によって、セレクタ４０の出力がサブブロック毎に積算され、サブブロックにおける計数値R_cntが計数される。
【０１６４】
レジスタ４３から読み出された計数値R_cntは、比較器４４に供給される。また、比較器４４の出力は、レジスタ４５に入力される。比較器４４では、レジスタ４５に格納された、既に計数されたサブブロックの計数値R_cntと、新たにレジスタ４３から出力された計数値R_cntとを比較し、大きい方の値でレジスタ４５を更新する。これにより、１マクロブロックにおいてサブブロック毎に計数された赤色の計数値R_cntの最大値が求められる。レジスタ４５の出力は、比較器４６の入力端ａに入力され、入力端ｂに入力された、赤色検出で検出された画素数に対する閾値を与えるパラメータR_numと比較される。比較器４６の比較結果は、セレクタ４７に選択信号として供給される。
【０１６５】
セレクタ４７の一方の入力端には、量子化優遇値R_detを与えるためのパラメータR_scaleが入力され、他方の端子には、固定値〔１．０〕が入力される。パラメータR_scaleは、例えば値〔０．５〕とされる。セレクタ４７では、比較器４６から供給された選択信号に基づき一方および他方の入力端を選択する。すなわち、比較器４６において、計数値R_cntがパラメータR_num以上の値であった場合、一方の入力端が選択され、パラメータR_scaleが出力される。セレクタ４７で選択されたパラメータR_scaleまたは固定値〔１．０〕は、赤色の量子化優遇値R_detとして出力され、レジスタ４８を介して比較器８２の第１の入力端に入力される。
【０１６６】
一方、青色および緑色についても、この赤色の検出と同様にして検出され、青色の量子化優遇値B_detおよび緑色の量子化優遇値G_detがそれぞれ得られる。これら青色の量子化優遇値B_detおよび緑色の量子化優遇値G_detは、それぞれ比較器８２の第２および第３の入力端に入力される。
【０１６７】
なお、この実施の一形態では、緑色の検出は、第１３図に示されるように、色差平面（Ｃｒ，Ｃｂ）上の矩形の範囲に対して行われるため、第１４図における１ビットシフト回路３１、減算器３２、比較器３３、３４および３５、アンド回路３８、ならびに、セレクタ４０に相当する構成が省略される。
【０１６８】
比較器８２では、赤色、青色および緑色による量子化優遇値R_det、B_detおよびG_detが比較され、量子化優遇値R_det、B_detおよびG_detのうち最小の値を有するものを最終的な量子化優遇値Color_scaleとして出力する。最終的な量子化優遇値Color_scaleは、レジスタ８３を介して乗算器８４の一方の入力端に入力される。
【０１６９】
乗算器８４の他方の入力端には、アクティビティ（Ｙ）部３０１において当該マクロブロックの輝度成分Ｙから求められた正規化アクティビティデータnorm_actが入力される。乗算器８４において、他方の入力端に入力された正規化アクティビティデータnorm_actに対して一方の入力端に入力された量子化優遇値Color_scaleが乗ぜられる。これにより、正規化アクティビティデータnorm_actが量子化優遇値Color_scaleにより修正された正規化アクティビティデータnorm_actとされ、出力される。
【０１７０】
このように、あるマクロブロックにおいて、赤色、青色および緑色のうち複数の色が検出された場合には、各色の量子化優遇値のうち最小のものが最終的な量子化優遇値Color_scaleとして選択される。この選択された量子化優遇値Color_scaleを用いて元の正規化アクティビティnorm_actを変更することで、量子化スケール値が小さくされより細かい量子化が行われた状態で、圧縮符号化が行われる。また、何れの色も検出されない場合は、各色の量子化優遇値が何れも固定値〔１．０〕とされ、正規化アクティビティnorm_actには変更が加えられず、元の正規化アクティビティnorm_actを用いて量子化が行われる。
【０１７１】
次に、色検出における画素数の閾値を設定する方法について説明する。特定の色（例えば赤色とする）が検出された画素数をブロック毎に計数して、そのブロックが赤色検出されたブロックか否かを判定する際に、ノイズによる誤検出がなされてしまうおそれがある。
【０１７２】
例えば、ＤＣＴブロックと同じ８画素×８ラインからなるブロックを単位とし、赤色検出されたと判定される閾値を、ブロックの画素総数の１／２以上としたときを考える。第１５図Ａおよび第１５図Ｂは、何れも、８画素×８ラインのブロックにおいて、ブロックの画素総数の１／２の画素において赤色検出された例を示す。すなわち、第１５図Ａおよび第１５図Ｂは、共に計数値R_cntが〔３２〕で、ブロックの画素総数〔６４〕の１／２である。なお、第１５図Ａ、第１５図Ｂ、第１５図Ｃおよび第１５図Ｄにおいて、塗り潰された升目が赤色検出された画素を示す。
【０１７３】
ブロックにおいて赤色の画素が同じ３２個ある場合でも、第１５図Ｂのように、赤色画素が互いに隣接して連続的に存在するときは、人間の目には、一塊りの赤色として認識される。この場合、赤色が認識され易く、視覚的に劣化が検知され易い。一方、第１５図Ａのように、赤色の画素がブロック内にランダム的に分散されて存在するときは、人間の目に赤色が認識されにくく、劣化が検知されにくい。したがって、この第１５図Ａのような場合には、量子化優遇値を〔１〕未満の値として量子化スケール値を小さくし、細かく量子化する必要が無いとも考えられる。また、第１５図Ａのように、ランダム的に分散されて赤色画素が存在するときは、それらの赤色画素は、ノイズに反応している可能性もある。
【０１７４】
一塊りの連続した赤色を検出するためには、赤色として検出された画素の計数値に対する閾値を、例えば３／４以上というように厳しく設定すればよい。第１５図Ｃは、閾値をブロックの画素総数の３／４にしたときに、赤色検出がなされる例を示す。この第１５図Ｃの例では、計数値R_cntが〔４８〕で、ブロックの画素総数〔６４〕の３／４となっている。このように、閾値を厳しく設定することで、第１５図Ａのようなランダム的な配置がとれなくなり、赤色検出された画素が自ずと一塊りの連続した配置となる。
【０１７５】
しかしながら、閾値を高くすると、当然のことながら、第１５図Ｃのように、一塊りの赤色の面積が第１５図Ｂに比べて大きな面積でないと、ブロックの赤色検出ができなくなる。
【０１７６】
圧縮率が低く符号量に比較的余裕がある場合は、画像全体が高画質になる分、特定色の境界部分のような、局所的に特定色が存在する部分を含むマクロブロックの画質劣化がより目立ち易くなる。そのため、ブロックに占める面積が第１５図Ｂに示される程度の赤色は、正しく検出して、そのブロックに対する量子化スケール値を小さい値として細かく量子化し、画質劣化を抑えることが望ましい。
【０１７７】
一方で、第１５図Ａに示されるような、例えばノイズを要因とした場合などの、赤色がランダム的に分散するブロックに対して量子化スケール値を小さくし、細かい量子化を行うと、本来高画質化を図る必要の無いブロックに符号量を取られてしまうことになる。そのため、フレーム毎に限られた符号量を最適に使うことができず、画質を最適化することができない。
【０１７８】
この発明の実施の一形態では、この問題を回避するために、色検出を行うブロックのサイズを、例えば４画素×４ラインというように、より小さいサイズとしている。第１５図Ｄは、４画素×４ラインからなるブロックを単位とし、第１５図Ｃと同様に、ブロックの画素総数の３／４を閾値として色検出を行う例を示す。赤色が検出された画素の計数値R_cntが閾値の〔１２〕となった場合、赤色が検出された画素は、ランダム的に分散した配置は取れず、第１５図Ｄに示されるように、自ずと一塊りの連続的な配置とされる。また、視覚的にも、赤色が検出された一塊りの画素の面積は、第１５図Ｃの例のように大きな面積とはならない。
【０１７９】
このように、より小さいサイズのブロックを単位として特定色を検出し、同一の量子化スケール値を用いて量子化を行う単位であるマクロブロック中に１個でも、特定色が検出されたブロックが存在した場合、そのマクロブロックが当該特定色を含むと判定する。これにより、この発明の実施の一形態では、文字や画像の輪郭部といった所謂エッジ部分を含む、局所的に特定色が存在するマクロブロックのアクティビティを抑えることができ、より小さい量子化ステップ幅で細かく量子化を行い高画質化を図ることが可能となる。
【０１８０】
なお、上述では、クロマフォーマットが４：２：２の場合にも、４画素×４ラインのサブブロックが１マクロブロック中に８個存在するとして説明した。実際には、クロマフォーマットが４：２：２の場合には、第１６図Ｂに一例が示されるように、４画素×４ラインのサブブロックは、横長のブロックとなる。そこで、第１６図Ｃに一例が示されるように、サブブロックを２画素×４ラインの正方形とし、１マクロブロックにつき１６個のサブブロックで処理を行うようにしてもよい。クロマフォーマットが４：４：４の場合は、第１６図Ａに示されるように、４画素×４ラインのサブブロックは、正方形をなし、このサブブロックが１マクロブロック中に１６個存在する。
【０１８１】
なお、上述したように、この発明の実施の一形態による色検出および検出された色に基づく量子化スケール値の変更処理は、ハードウェアおよびソフトウェアの何れでも実現可能である。この処理を例えばコンピュータ装置に実行させるためのプログラムは、例えばＣＤ−ＲＯＭ(Compact Disc-Read Only Memory)といった記録媒体に記録されて提供される。このＣＤ−ＲＯＭをコンピュータ装置のＣＤ−ＲＯＭドライブに装填し、ＣＤ−ＲＯＭに記録されたプログラムをコンピュータ装置にインストールすることで、上述の処理をコンピュータ装置上で実行可能な状態とすることができる。なお、コンピュータ装置の構成は、極めて周知であるため、説明は省略する。
【０１８２】
また、上述では、この発明の実施の一形態をディジタルＶＴＲに適用した例について説明したが、これはこの例に限定されない。例えば、この発明は、色検出および検出された色に基づく量子化スケール値の変更機能を有する量子化演算回路単体として構成することも可能である。
【０１８３】
また、上述したマクロブロックおよびサブブロックのブロックサイズは、一例であって、他のブロックサイズの組み合わせであっても、この発明を同様に適用することが可能である。
【０１８４】
さらに、上述では、色検出を行う対象の各色について、サブブロック内で色検出された画素の計数値に対する閾値や、サブブロックのサイズが同一であるとして説明しているが、これはこの例に限定されない。例えば、色検出を行う対象の各色のそれぞれで異なる閾値を用いることができる。同様に、各色の色検出を、各色のそれぞれで異なるサイズのサブブロックを単位として行うことができる。
【０１８５】
さらにまた、上述では、マクロブロックが特定色を含むと判定するサブブロック数の閾値を１としているが、これはこの例に限定されるものではない。マクロブロックが特定色を含むと判定するサブブロック数の閾値を、複数としてもよい。すなわち、マクロブロックに含まれるサブブロックのうち複数（例えば２）のサブブロックに特定色が検出された場合に、そのマクロブロックが特定色を含むとして判定してもよい。
【０１８６】
【発明の効果】
以上説明したように、この発明は、マクロブロック単位で画像の複雑さに対応するアクティビティを決定する際に、マクロブロックに含まれる色成分の検出を行い、特定の色成分が検出された場合に、当該マクロブロックのアクティビティを変更してより細かく量子化を行えるようにしている。そのため、色に対する人間の視覚特性を考慮した、画像の圧縮符号化を行うことができる。
【０１８７】
また、この発明では、マクロブロックに含まれる色成分の検出を、マクロブロックが例えば４画素×４ラインといった、より小さいサイズに分割されたサブブロック毎に行うようにしている。さらに、サブブロックの画素総数の例えば２／３以上といった閾値以上の画素で特定色が検出された場合に、そのサブブロックが含まれるマクロブロックの全体について、特定色が含まれると判定している。
【０１８８】
これにより、文字や画像の輪郭部分といった、所謂画像のエッジ部分のような、局所的に特定色が存在するマクロブロックでも、色の検出ができる。
【０１８９】
さらにまた、これにより、検出サイズの最適化を図り、且つ、ノイズの影響を排除して一塊りの連続した色だけを検出することが可能となる。
【図面の簡単な説明】
【図１】  この発明の実施の一形態が適用されたディジタルＶＴＲの一例の構成を示すブロック図である。
【図２】  ＭＰＥＧエンコーダの一例の構成を示すブロック図である。
【図３】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図４】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図５】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図６】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図７】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図８】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図９】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図１０】  アクティビティ部の一例の構成を概略的に示すブロック図である。
【図１１】  符号化モードによるサブブロックの構成方法を説明するための図である。
【図１２】  ＭＰＥＧエンコーダの処理をソフトウェアで行う場合の一例のフローチャートである。
【図１３】  色差ＣｂおよびＣｒをそれぞれ横軸および縦軸とした、色差平面（Ｃｂ，Ｃｒ）を示す。
【図１４】  色検出の処理を実行する一例のハードウェア構成を示すブロック図である。
【図１５】  色検出を行うサブブロックのサイズと、色が検出された画素の計数値の閾値との関係を説明するための図である。
【図１６】  クロマフォーマットによるサブブロックの構成方法を説明するための図である。
【符号の説明】
１０３・・・ＭＰＥＧエンコーダ、２０９・・・アクティビティ部、３００・・・サブブロック部、３０１・・・アクティビティ（Ｙ）部、３０２・・・色検出部、３０３・・・アクティビティ修正部
【図１】
0003900155.tif 000002
【図１Ａ】
0003900155.tif 000003
【図１Ｂ】
0003900155.tif 000004
【図２】
0003900155.tif 000005
【図２Ａ】
0003900155.tif 000006
【図２Ｂ】
0003900155.tif 000007
【図２Ｃ】
0003900155.tif 000008
【図３Ａ】
0003900155.tif 000009
【図３Ｂ】
0003900155.tif 000010
【図３Ｃ】
0003900155.tif 000011
【図４Ａ】
0003900155.tif 000012
【図４Ｂ】
0003900155.tif 000013
【図４Ｃ】
0003900155.tif 000014
【図５Ａ】
0003900155.tif 000015
【図５Ｂ】
0003900155.tif 000016
【図６Ａ】
0003900155.tif 000017
【図６Ｂ】
0003900155.tif 000018
【図７Ａ】
0003900155.tif 000019
【図７Ｂ】
0003900155.tif 000020
【図７Ｃ】
0003900155.tif 000021
【図８Ａ】
0003900155.tif 000022
【図８Ｂ】
0003900155.tif 000023
【図８Ｃ】
0003900155.tif 000024
【図９】
0003900155.tif 000025
【図１０】
0003900155.tif 000026
【図１１Ａ】
0003900155.tif 000027
【図１１Ｂ】
0003900155.tif 000028
【図１１Ｃ】
0003900155.tif 000029
【図１２】
0003900155.tif 000030
【図１３】
0003900155.tif 000031
【図１４】
0003900155.tif 000032
【図１５Ａ】
0003900155.tif 000033
【図１５Ｂ】
0003900155.tif 000034
【図１５Ｃ】
0003900155.tif 000035
【図１５Ｄ】
0003900155.tif 000036
【図１６Ａ】
0003900155.tif 000037
【図１６Ｂ】
0003900155.tif 000038
【図１６Ｃ】
0003900155.tif 000039
0003900155.tif 000040
0003900155.tif 000041