(57)【特許請求の範囲】
【請求項１】
画像データに対して、量子化を行う単位の量子化ブロックが分割された変換ブロック単位で変換処理を施し該変換処理による変換係数を出力する変換手段と、
上記画像データに対して、上記量子化ブロックに含まれる、上記変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティを算出し、算出された複数のアクティビティのうち最小のアクティビティを、上記画像データの第１フィールドに対して求められた上記変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティのうち上記最小のアクティビティの上記画像データの第１フィールド内での平均で正規化して、上記量子化ブロックのアクティビティとして出力するアクティビティ検出手段と、
上記アクティビティ検出手段から出力された上記量子化ブロックのアクティビティに基づいて上記量子化ブロックの量子化スケールを決定し、該量子化スケールを用いて上記変換手段から出力された上記変換係数を量子化する量子化手段と
を有する
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
上記変換手段は、上記画像データに対してＤＣＴブロック単位でＤＣＴを行い、ＤＣＴ係数を出力するようにされ、上記変換ブロックは、上記ＤＣＴブロックである
ことを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
上記量子化ブロックは、ＭＰＥＧ２で扱われるマクロブロックである
ことを特徴とする画像処理装置。
【請求項４】
請求項１に記載の画像処理装置において、
上記変換ブロックは、Ｘ画素×Ｙラインのブロックサイズを有し、上記サブブロックは、所定の整数ｎおよびｍについて、（Ｘ／２n）画素×（Ｙ／２m）ラインのブロックサイズを有する
ことを特徴とする画像処理装置。
【請求項５】
請求項１に記載の画像処理装置において、
上記アクティビティは、上記画像データの各フレームをフィールド毎のデータに組み替え、該フィールド毎に組み替えたデータを上記サブブロック単位に分割して算出する
ことを特徴とする画像処理装置。
【請求項６】
請求項１に記載の画像処理装置において、
上記アクティビティ検出手段は、
上記サブブロック毎に該サブブロックを構成する画素のレベルの平均値を求める手段と、
上記サブブロック毎に、上記画素のレベルと上記平均値との差分の絶対値を上記画素それぞれについて求める手段と、
上記差分の絶対値を上記サブブロックについて平均した平均差分値を求める手段と、  上記量子化ブロック分の平均差分値から最小値を選択して該量子化ブロックの上記アクティビティとして採用する手段と
からなる
ことを特徴とする画像処理装置。
【請求項７】
画像データに対して、量子化を行う単位の量子化ブロックが分割された変換ブロック単位で変換処理を施し該変換処理による変換係数を出力する変換のステップと、
上記画像データに対して、上記量子化ブロックに含まれる、上記変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティを算出し、算出された複数のアクティビティのうち最小のアクティビティを、上記画像データの第１フィールドに対して求められた上記変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティのうち上記最小のアクティビティの上記画像データの第１フィールド内での平均で正規化して、上記量子化ブロックのアクティビティとして出力するアクティビティ検出のステップと、
上記アクティビティ検出のステップから出力された上記量子化ブロックのアクティビティに基づいて上記量子化ブロックの量子化スケールを決定し、該量子化スケールを用いて上記変換のステップから出力された上記変換係数を量子化する量子化のステップと
を有する
ことを特徴とする画像処理方法。
【請求項８】
入力された画像データをブロック単位で量子化する画像処理方法をコンピュータ装置に実行させる画像処理プログラムにおいて、
上記画像処理方法は、
上記画像データに対して、量子化を行う単位の量子化ブロックが分割された変換ブロック単位で変換処理を施し該変換処理による変換係数を出力する変換のステップと、
上記画像データに対して、上記量子化ブロックに含まれる、上記変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティを算出し、算出された複数のアクティビティのうち最小のアクティビティを、上記画像データの第１フィールドに対して求められた上記変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティのうち上記最小のアクティビティの上記画像データの第１フィールド内での平均で正規化して、上記量子化ブロックのアクティビティとして出力するアクティビティ検出のステップと、
上記アクティビティ検出のステップから出力された上記量子化ブロックのアクティビティに基づいて上記量子化ブロックの量子化スケールを決定し、該量子化スケールを用いて上記変換のステップから出力された上記変換係数を量子化する量子化のステップと
を有する
ことを特徴とする画像処理プログラム。
【請求項９】
入力された画像データをブロック単位で量子化する画像処理方法をコンピュータ装置に実行させる画像処理プログラムを記録した記録媒体において、
上記画像処理方法は、
上記画像データに対して、量子化を行う単位の量子化ブロックが分割された変換ブロック単位で変換処理を施し該変換処理による変換係数を出力する変換のステップと、
上記画像データに対して、上記量子化ブロックに含まれる、上記変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティを算出し、算出された複数のアクティビティのうち最小のアクティビティを、上記画像データの第１フィールドに対して求められた上記変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティのうち上記最小のアクティビティの上記画像データの第１フィールド内での平均で正規化して、上記量子化ブロックのアクティビティとして出力するアクティビティ検出のステップと、
上記アクティビティ検出のステップから出力された上記量子化ブロックのアクティビティに基づいて上記量子化ブロックの量子化スケールを決定し、該量子化スケールを用いて上記変換のステップから出力された上記変換係数を量子化する量子化のステップと
を有する
ことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像データをブロック単位で量子化することで圧縮符号化を行う画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体に関する。
【０００２】
【従来の技術】
従来から、画像データの圧縮符号化方式として、画像データを所定画素数から成るブロック単位で量子化を行うことで圧縮符号化するものが知られている。例えばＭＰＥＧ２(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を求める。なお、ここで最小値を採用するのは、マクロブロック内の一部だけでも平坦な部分のある場合には、このマクロブロックに対する量子化を細かくする必要があるからである。
【００１２】
【発明が解決しようとする課題】
以上のように、ＭＰＥＧ２のＴＭ５では、ＤＣＴブロックと同じ８画素ｘ８ラインをサブブロックとして、サブブロック毎でアクティビティを計算し、８つのサブブロックのアクティビティの中で最小のアクティビティを選択し、これをそのマクロブロックのアクティビティとして決定していた。
【００１３】
しかし、この方法では、圧縮率が高く符号量に余裕のない場合には有効であるが、圧縮率が低く符号量に比較的余裕のある場合にこの方法をそのまま適用すると、画像全体が高画質になった分だけ、平坦領域を僅かでも含むマクロブロックに、所謂モスキートノイズがより目立ちやすくなるという問題点があった。
【００１４】
モスキートノイズについて概略的に説明する。ＤＣＴ係数の高域成分を粗く量子化することにより、例えば第１図Ａに示すような、画面内の物体１０のエッジ部分１０Ａに、第１図Ｂに示すようなリンギング１１が生じる。画面内の物体１０のエッジ部１０Ａが動くと、ＤＣＴブロック１２の切り分けが方が変わるために、このリンギング１１の発生の具合が変わる。これが、恰もエッジ部１０Ａの回りに蚊が飛んでいるような印象を与える表示になってしまうため、モスキートノイズと称される。特にエッジ部１０Ａの周辺が平坦領域である場合には、モスキートノイズの発生が顕著である。
【００１５】
上述のように画像全体が高画質化した場合に、平坦領域にモスキートノイズが現れると、視覚的により目立ちやすい。そのため、平坦領域を僅かでも含むマクロブロックの量子化スケールＱｊをより細かい量子化ステップを有するものにすることは、特に符号量に余裕がある圧縮率の低い符号化の際には、非常に有効である。
【００１６】
したがって、この発明の目的は、平坦領域を僅かでも含むマクロブロックにおけるモスキートノイズの発生を抑制することが可能な画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体を提供することにある。
【００１７】
【課題を解決するための手段】
この発明は、上述した課題を解決するために、画像データに対して、量子化を行う単位の量子化ブロックが分割された変換ブロック単位で変換処理を施し変換処理による変換係数を出力する変換手段と、画像データに対して、量子化ブロックに含まれる、変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティを算出し、算出された複数のアクティビティのうち最小のアクティビティを、画像データの第１フィールドに対して求められた変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティのうち最小のアクティビティの上記画像データの第１フィールド内での平均で正規化して、量子化ブロックのアクティビティとして出力するアクティビティ検出手段と、アクティビティ検出手段から出力された量子化ブロックのアクティビティに基づいて量子化ブロックの量子化スケールを決定し、量子化スケールを用いて変換手段から出力された変換係数を量子化する量子化手段とを有することを特徴とする画像処理装置である。
【００１８】
また、この発明は、画像データに対して、量子化を行う単位の量子化ブロックが分割された変換ブロック単位で変換処理を施し変換処理による変換係数を出力する変換のステップと、画像データに対して、量子化ブロックに含まれる、変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティを算出し、算出された複数のアクティビティのうち最小のアクティビティを、画像データの第１フィールドに対して求められた変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティのうち最小のアクティビティの上記画像データの第１フィールド内での平均で正規化して、量子化ブロックのアクティビティとして出力するアクティビティ検出のステップと、アクティビティ検出のステップから出力された量子化ブロックのアクティビティに基づいて量子化ブロックの量子化スケールを決定し、量子化スケールを用いて変換のステップから出力された変換係数を量子化する量子化のステップとを有することを特徴とする画像処理方法である。
【００１９】
また、この発明は、入力された画像データをブロック単位で量子化する画像処理方法をコンピュータ装置に実行させる画像処理プログラムにおいて、画像処理方法は、画像データに対して、量子化を行う単位の量子化ブロックが分割された変換ブロック単位で変換処理を施し変換処理による変換係数を出力する変換のステップと、画像データに対して、量子化ブロックに含まれる、変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティを算出し、算出された複数のアクティビティのうち最小のアクティビティを、画像データの第１フィールドに対して求められた変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティのうち最小のアクティビティの上記画像データの第１フィールド内での平均で正規化して、量子化ブロックのアクティビティとして出力するアクティビティ検出のステップと、アクティビティ検出のステップから出力された量子化ブロックのアクティビティに基づいて量子化ブロックの量子化スケールを決定し、量子化スケールを用いて変換のステップから出力された変換係数を量子化する量子化のステップとを有することを特徴とする画像処理プログラムである。
【００２０】
また、この発明は、入力された画像データをブロック単位で量子化する画像処理方法をコンピュータ装置に実行させる画像処理プログラムを記録した記録媒体において、画像処理方法は、画像データに対して、量子化を行う単位の量子化ブロックが分割された変換ブロック単位で変換処理を施し変換処理による変換係数を出力する変換のステップと、画像データに対して、量子化ブロックに含まれる、変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティを算出し、算出された複数のアクティビティのうち最小のアクティビティを、画像データの第１フィールドに対して求められた変換ブロックよりサイズの小さい複数のサブブロックそれぞれのアクティビティのうち最小のアクティビティの上記画像データの第１フィールド内での平均で正規化して、量子化ブロックのアクティビティとして出力するアクティビティ検出のステップと、アクティビティ検出のステップから出力された量子化ブロックのアクティビティに基づいて量子化ブロックの量子化スケールを決定し、量子化スケールを用いて変換のステップから出力された変換係数を量子化する量子化のステップとを有することを特徴とする記録媒体である。
【００２１】
上述したように、この発明は、画像データに対して変換ブロック単位で変換処理を施し変換処理による変換係数を出力すると共に、画像データに対して変換ブロックに含まれる複数のサブブロック単位で算出されたアクティビティを用いて出力された、複数の変換ブロックで構成されるブロックのアクティビティに基づいてブロックの量子化スケールを決定し、量子化スケールにより変換係数を量子化するようにしているため、各サブブロックのアクティビティがより強調され、適応量子化による画質が最適化される。
【００２２】
【発明の実施の形態】
以下、この発明の実施の一形態について説明する。この発明では、例えば符号化単位である１６画素×１６ラインのマクロブロックが４分割された、８画素×８ラインのブロックでＤＣＴ(Discrete Cosine Transform)を行い、得られたＤＣＴ係数を量子化スケールに基づき量子化する際に、マクロブロックを例えば４画素×４ラインのサブブロックに分割し、分割されたサブブロックのそれぞれについてアクティビティを検出する。そして、検出されたアクティビティに基づきマクロブロック毎のアクティビティを決定する。このアクティビティに基づきマクロブロック毎に量子化スケールを決め、マクロブロックの適応量子化を行う。
【００２３】
第２図Ａおよび第２図Ｂ、ならびに、第３図Ａおよび第３図Ｂを用いて、この発明によるアクティビティ検出の方法を、上述した従来技術であるＭＰＥＧ２のＴＭ５と対比させながら説明する。第２図Ａおよび第２図Ｂは、この発明によるアクティビティ検出を説明するための図である。第２図Ａにおいて、１６画素×１６ラインからなるマクロブロックに対して、文字「３」が表示されている。ここでは、黒く塗り潰された（■）画素の画素値を「１６」、白いままの（□）画素の画素値を「０」とする。また、画素値は、その画素の輝度レベルを表すものとする。
【００２４】
この発明では、以下の手順に従いマクロブロックのアクティビティを検出する。先ず、１６画素×１６ラインからなるマクロブロックを、４画素×４ラインのサブブロックに分割し、式（４）により、サブブロック毎に輝度レベルYkの平均値Pを求める。
P=1/16Σ[k=1,16]Yk      ・・・（４）
【００２５】
次に、式（５）により、４画素×４ラインのサブブロックそれぞれについて、サブブロックの各位置の画素毎に輝度レベルYkと当該サブブロックの平均値Pとの差分の絶対値を求め、さらに、サブブロック毎に、その差分値の絶対値の平均をとり平均差分値var_sblkを求める。
var_sblk=1/16Σ[k=1,16]abs(Yk-P)    ・・・（５）
【００２６】
１マクロブロックは、４画素×４ラインのサブブロックが１６個で構成される。この１マクロブロックを構成する１６個のサブブロックの平均差分値var_sblkの中から最小の平均差分値var_sblkを選択し、当該マクロブロックのアクティビティactに決定する（式（６））。
act=min[blk=1,16](var_sblk)      ・・・（６）
【００２７】
より具体的には、第２図Ａに示されるように、先ず、１６画素×１６ラインからなるマクロブロックを４画素×４ラインからなるサブブロックに分割する。そして、式（４）により、分割されたそれぞれのサブブロックについて、輝度レベルYkの平均値Pが求められる。例えば第２図Ａの左上隅のサブブロックでは、輝度レベル＝１６の画素が２個、輝度レベル＝０の画素が１４個あるので、平均値P=(16×2+0×14)/16=2となる。
【００２８】
次に、式（５）により、式（４）で求められた平均値Pと当該サブブロックの各画素の輝度レベル値との差分の絶対値がそれぞれ求められ、差分平均値var_sblkが計算される。第２図Ａの左上隅のサブブロックの例では、差分平均値var_sblk={abs(16-2)×2+abs(0-2)×14}/16=3.5となる。
【００２９】
第２図Ｂは、これら式（４）および式（５）による計算を、１マクロブロックの各サブブロックについて行った結果を示す。なお、第２図Ｂでは、差分平均値var_sblkが「var」として記されている。サブブロック毎に、差分平均値var_sblkが求められている。この中から、上述の式（６）に示されるように、最小の差分平均値var_sblkが選択される。第２図Ｂの例では、左から２列目、上から３行目のサブブロックの差分平均値var_sblkの値が「０」で、最小となっている。そこで、当該マクロブロックのアクティビティactを、「０」と決定する。
【００３０】
第３図Ａおよび第３図Ｂは、ＭＰＥＧ２のＴＭ５によるアクティビティ検出を説明するための図である。１６画素×１６ラインに表示される画像（文字「３」）は、上述の第２図Ａと同一である。このＭＰＥＧ２のＴＭ５では、第３図Ａに示されるように、１６画素×１６ラインからなるマクロブロックが４分割された、８画素×８ラインのサブブロックに基づきアクティビティが検出される。
【００３１】
第３図Ａの左上のサブブロックを例にとって説明する。先ず、従来技術で説明した式（３）により、８画素×８ラインからなるサブブロックにおける各画素の輝度レベルの平均値Pkが求められる。この例では、輝度レベル＝１６の画素が８個あり、その他の画素が輝度レベル＝０であるので、平均値Pk=(16×8+0×56)/64=2となる。次に、上述の式（２）により、当該サブブロックにおける差分平均値var_sblkが、var_sblk={abs(16-2)×8+abs(0-2)×56}/64=3.5となる。
【００３２】
第３図Ｂは、この式（３）および式（２）による計算を、１マクロブロックの各サブブロックについて行った結果を示す。なお、第３図Ｂでは、差分平均値var_sblkが「var」として記されている。サブブロック毎に求められた差分平均値var_sblkから最小の差分平均値var_sblk=3.1が選択され、当該マクロブロックのアクティビティactが「３．１」に決定される。
【００３３】
このように、平坦部分を僅かでも含むマクロブロックに対してこの発明によるアクティビティの計算方法を適用することで、当該マクロブロックのアクティビティ値を、従来技術であるＭＰＥＧ２のＴＭ５による値より、小さく抑えることができる。すなわち、この発明では、マクロブロックを、ＭＰＥＧ２のＴＭ５によるサブブロックのサイズよりも小さなサイズのサブブロックに分割しているので、マクロブロック中の平坦部分を検出できる確率が高くなる。そのため、文字、画像の輪郭部などの、所謂エッジ部を含むマクロブロックのアクティビティを抑えることができ、モスキートノイズを抑制することができる。
【００３４】
第４図、第５図および第６図を用いて、実際の画像におけるアクティビティの算出結果について説明する。第４図に示されるサンプル画像は、全体的に平坦な構成とされ、特に背景部に描かれる各絵の境界部や、カレンダーの文字部にエッジが存在する。
【００３５】
第５図および第６図は、この第４図のサンプル画像における、ＭＰＥＧ２のＴＭ５によるアクティビティと、この発明によるアクティビティの画像内での分布をそれぞれ示す。これら第５図および第６図において、図中の「●（黒丸）」は、その直径が、画像内の対応する位置（マクロブロック）のアクティビティの値に対応する。
【００３６】
第５図に示されるＭＰＥＧ２のＴＭ５によるアクティビティと、第６図に示されるこの発明によるアクティビティとを比較すると、この発明によるアクティビティは、ＭＰＥＧ２のＴＭ５によるアクティビティに比して、全体的に小さな値に抑制されているのが分かる。例えば、右側中央におけるカレンダーの部分（Ｘ＝４２付近，Ｙ＝１８〜２３付近）を見ると、第５図では平坦部の中に極端に大きなアクティビティのマクロブロックが存在するのが分かる。その部分では粗い量子化が行われ、モスキートノイズが顕著となると考えられる。これに対し、第６図のこの発明による結果では、カレンダー部において、全体的にアクティビティが小さく抑えられているのが分かる。これにより、細かい量子化が行われ、モスキートノイズがより目立たなくされる。
【００３７】
第７図Ａおよび第７図Ｂは、この発明の実施の一形態が適用されたディジタルＶＴＲの一例の構成を示す。このディジタルＶＴＲは、ＭＰＥＧ方式により圧縮符号化されたディジタルビデオ信号を記録媒体に直接的に記録することができるようにしたものである。
【００３８】
先ず、このディジタルＶＴＲにおける記録系の構成および処理動作について説明する。この記録系に外部より入力される信号は、ＳＤＩ(Serial Data Interface)信号およびＳＤＴＩ(Serial Data Transport Interface)信号の２種類のシリアルディジタルインターフェイス信号、アナログインターフェイス信号および制御信号である外部基準信号ＲＥＦである。
【００３９】
なお、ＳＤＩは、（４：２：２）コンポーネントビデオ信号とディジタルオーディオ信号と付加的データとを伝送するために、ＳＭＰＴＥによって規定されたインターフェイスである。また、ＳＤＴＩは、ディジタルビデオ信号がＭＰＥＧ方式で圧縮符号化されたストリームであるＭＰＥＧエレメンタリストリーム（以下、ＭＰＥＧ  ＥＳと称する）が伝送されるインターフェイスである。ＥＳは、４：２：２のコンポーネントであり、また、上述したように、全てＩピクチャのストリームであり、１ＧＯＰ＝１ピクチャの関係を有する。ＳＤＴＩ−ＣＰ(Content Package)のフォーマットでは、ＭＰＥＧ  ＥＳがアクセスユニットへ分離され、また、フレーム単位のパケットにパッキングされている。ＳＤＴＩ−ＣＰでは、十分な伝送帯域（クロックレートで２７ＭHzまたは３６ＭHz、ストリームビットレートで２７０Ｍ bpsまたは３６０Ｍ bps）を使用しており、１フレーム期間で、バースト的にＥＳを送ることが可能である。
【００４０】
ＳＤＩにより伝送されるＳＤＩ信号は、ＳＤＩ入力部１０１に入力される。また、アナログビデオ信号からなるアナログ入力信号がアナログ入力部１２０に入力される。アナログ入力部１２０では、入力されたアナログ入力信号をディジタル信号に変換し、例えば上述のＳＤＩフォーマットにマッピングして出力する。アナログ入力信号が変換されＳＤＩフォーマットにマッピングされたこのＳＤＩ信号は、ＳＤＩ入力部１０１に供給される。
【００４１】
ＳＤＩ入力部１０１では、供給されたＳＤＩ信号をシリアル信号からパラレル信号に変換して出力すると共に、ＳＤＩ信号に含まれる入力の位相基準である入力同期信号を抽出し、タイミングジェネレータＴＧ１０２に出力する。
【００４２】
また、ＳＤＩ入力部１０１は、変換したパラレル信号からビデオ信号とオーディオ信号とを分離する。分離されたビデオ入力信号とオーディオ入力信号は、それぞれＭＰＥＧエンコーダ１０３とディレイ回路１０４に出力される。
【００４３】
タイミングジェネレータＴＧ１０２は、入力された外部基準信号ＲＥＦから基準同期信号を抽出する。タイミングジェネレータＴＧでは、この基準同期信号とＳＤＩ入力部１０１から供給された入力同期信号とのうち、所定に指定された基準信号に同期して、このディジタルＶＴＲで必要なタイミング信号を生成し、タイミングパルスとして各ブロックに供給する。
【００４４】
ＭＰＥＧエンコーダ１０３は、入力されたビデオ入力信号を、ＤＣＴ変換して係数データに変換し、係数データを量子化した後、可変長符号化する。ＭＰＥＧエンコーダ１０３から出力される可変長符号化（ＶＬＣ）データは、ＭＰＥＧ２に準拠したエレメンタリストリーム（ＥＳ）である。この出力は、記録側のマルチフォーマットコンバータ（以下、記録側ＭＦＣと称する）１０６の一方の入力端に供給される。
【００４５】
ディレイ回路１０４は、入力されたオーディオ入力信号を、非圧縮データのままで、ＭＰＥＧエンコーダ１０３でのビデオ信号に対する処理のディレイに合わせるためのディレイラインの働きをするものである。このディレイ回路１０４で所定に遅延されたオーディオ信号は、ＥＣＣエンコーダ１０７に出力される。これは、この実施の一形態によるディジタルＶＴＲにおいて、オーディオ信号が非圧縮信号として扱われるためである。
【００４６】
外部からＳＤＴＩにより伝送され供給されたＳＤＴＩ信号は、ＳＤＴＩ入力部１０５に入力される。ＳＤＴＩ信号は、ＳＤＴＩ入力部１０５で同期検出される。そして、バッファに一旦溜め込まれ、エレメンタリストリームが抜き出される。抜き出されたエレメンタリストリームは、記録側ＭＦＣ１０６の他方の入力端に供給される。同期検出されて得られた同期信号は、上述したタイミングジェネレータＴＧ１０２に供給される（図示しない）。
【００４７】
なお、ＳＤＴＩ入力部１０５では、さらに、入力されたＳＤＴＩ信号からディジタルオーディオ信号を抽出する。抽出されたディジタルオーディオ信号は、ＥＣＣエンコーダ１０７に供給される。
【００４８】
このように、この実施の一形態によるディジタルＶＴＲは、ＳＤＩ入力部１０１から入力されるベースバンドのビデオ信号と独立して、ＭＰＥＧ  ＥＳを直接的に入力することができる。
【００４９】
記録側ＭＦＣ回路１０６は、ストリームコンバータとセレクタとを有し、ＳＤＩ入力部１０１およびＳＤＴＩ入力部１０５から供給されたＭＰＥＧ  ＥＳのうち、何れかが選択され、選択されたＭＰＥＧ  ＥＳのＤＣＴ係数を、１マクロブロックを構成する複数のＤＣＴブロックを通して周波数成分毎にまとめ、まとめた周波数成分を低周波数成分から順に並び替える。ＭＰＥＧ  ＥＳの係数が並べ替えられたストリームを、以下、変換エレメンタリストリームと称する。このようにＭＰＥＧ  ＥＳを再配置することにより、サーチ再生時にもなるべく多くのＤＣ係数と低次のＡＣ係数を拾い、サーチ画の品位向上に貢献している。変換エレメンタリストリームは、ＥＣＣエンコーダ１０７に供給される。
【００５０】
ＥＣＣエンコーダ１０７は、大容量のメインメモリが接続され（図示しない）、パッキングおよびシャフリング部、オーディオ用外符号エンコーダ、ビデオ用外符号エンコーダ、内符号エンコーダ、オーディオ用シャフリング部およびビデオ用シャフリング部などを内蔵する。また、ＥＣＣエンコーダ１０７は、シンクブロック単位でＩＤを付加する回路や、同期信号を付加する回路を含む。なお、実施の第１の形態では、ビデオ信号およびオーディオ信号に対するエラー訂正符号としては、積符号が使用される。積符号は、ビデオ信号またはオーディオ信号の２次元配列の縦方向に外符号の符号化を行い、その横方向に内符号の符号化を行い、データシンボルを２重に符号化するものである。外符号および内符号としては、リードソロモンコード(Reed-Solomon code) を使用できる。
【００５１】
ＥＣＣエンコーダ１０７には、ＭＦＣ回路１０６から出力された変換エレメンタリストリームが供給されると共に、ＳＤＴＩ入力部１０５およびディレイ回路１０４から出力されたオーディオ信号が供給される。ＥＣＣエンコーダ１０７では、供給された変換エレメンタリストリーム及びオーディオ信号に対してシャフリング及びエラー訂正符号化を施し、シンクブロック毎にＩＤおよび同期信号を付加し記録データとして出力する。
【００５２】
ＥＣＣエンコーダ１０７から出力された記録データは、記録アンプを含むイコライザＥＱ１０８で記録ＲＦ信号に変換される。記録ＲＦ信号は、回転ヘッドが所定に設けられた回転ドラム１０９に供給され、磁気テープ１１０上に記録される。回転ドラム１０９には、実際には、隣接するトラックを形成するヘッドのアジマスが互いに異なる複数の磁気ヘッドが取り付けられている。
【００５３】
記録データに対して必要に応じてスクランブル処理を行っても良い。また、記録時にディジタル変調を行っても良く、さらに、パーシャル・レスポンスクラス４とビタビ符号を使用しても良い。なお、イコライザ１０８は、記録側の構成と再生側の構成とを共に含む。
【００５４】
次に、このディジタルＶＴＲにおける再生系の構成および処理動作について説明する。再生時には、磁気テープ１１０から回転ドラム１０９で再生された再生信号が再生アンプなどを含むイコライザ１０８の再生側の構成に供給される。イコライザ１０８では、再生信号に対して、等化や波形整形などがなされる。また、ディジタル変調の復調、ビタビ復号等が必要に応じてなされる。イコライザ１０８の出力は、ＥＣＣデコーダ１１１に供給される。
【００５５】
ＥＣＣデコーダ１１１は、上述したＥＣＣエンコーダ１０７と逆の処理を行うもので、大容量のメインメモリと、内符号デコーダ、オーディオ用およびビデオ用それぞれのデシャフリング部ならびに外符号デコーダを含む。さらに、ＥＣＣデコーダ１１１は、ビデオ用として、デシャフリングおよびデパッキング部、データ補間部を含む。同様に、オーディオ用として、オーディオＡＵＸ分離部とデータ補間部を含む。
【００５６】
ＥＣＣデコーダ１１１では、再生データに対して同期検出を行い、シンクブロックの先頭に付加されている同期信号を検出してシンクブロックを切り出す。再生データは、シンクブロック毎の内符号のエラー訂正がなされ、その後、シンクブロックに対してＩＤ補間処理がなされる。ＩＤが補間された再生データは、ビデオデータとオーディオデータとに分離される。ビデオデータおよびオーディオデータは、それぞれデシャフリング処理され、記録時にシャフリングされたデータ順が元に戻される。デシャフリングされたデータは、それぞれ外符号のエラー訂正が行われる。
【００５７】
ＥＣＣデコーダ１１１において、エラー訂正能力を超え、訂正できないエラーがあるデータに関しては、エラーフラグがセットされる。ここで、ビデオデータのエラーに関しては、エラーを含むデータを指し示す信号ＥＲＲが出力される。
【００５８】
エラー訂正された再生オーディオデータは、ＳＤＴＩ出力部１１５に供給されると共に、ディレイ回路１１４で所定の遅延を与えられてＳＤＩ出力部１１６に供給される。ディレイ回路１１４は、後述するＭＰＥＧデコーダ１１３でのビデオデータの処理による遅延を吸収するために設けられる。
【００５９】
一方、エラー訂正されたビデオデータは、再生変換エレメンタリストリームとして再生側ＭＦＣ回路１１２に供給される。上述した信号ＥＲＲも、再生側ＭＦＣ回路１１２に供給される。再生側ＭＦＣ１１２は、上述した記録側ＭＦＣ１０６と逆の処理を行うものであって、ストリームコンバータを含む。ストリームコンバータでは、記録側のストリームコンバータと逆の処理がなされる。すなわち、ＤＣＴブロックに跨がって周波数成分毎に並べられていたＤＣＴ係数を、ＤＣＴブロック毎に並び替える。これにより、再生信号がＭＰＥＧ２に準拠したエレメンタリストリームに変換される。このとき、ＥＣＣデコーダ１１１から信号ＥＲＲが供給された場合は、対応するデータをＭＰＥＧ２に完全に準拠する信号に置き換えて出力する。
【００６０】
再生側ＭＦＣ回路１１２から出力されたＭＰＥＧ  ＥＳは、ＭＰＥＧデコーダ１１３およびＳＤＴＩ出力部１１５に供給される。ＭＰＥＧデコーダ１１３は、供給されたＭＰＥＧ  ＥＳを復号し、非圧縮の元のビデオ信号に戻す。すなわち、ＭＰＥＧデコーダ１１３は、供給されたＭＰＥＧ  ＥＳに対して逆量子化処理と、逆ＤＣＴ処理とを施す。復号されたビデオ信号は、ＳＤＩ出力部１１６に供給される。
【００６１】
上述したように、ＳＤＩ出力部１１６には、ＥＣＣデコーダ１１１でビデオデータと分離されたオーディオデータがディレイ１１４を介して供給されている。ＳＤＩ出力部１１６では、供給されたビデオデータとオーディオデータとを、ＳＤＩのフォーマットにマッピングし、ＳＤＩフォーマットのデータ構造を有するＳＤＩ信号へ変換される。このＳＤＩ信号が外部に出力される。
【００６２】
一方、ＳＤＴＩ出力部１１５には、上述したように、ＥＣＣデコーダ１１１でビデオデータと分離されたオーディオデータが供給されている。ＳＤＴＩ出力部１１５では、供給された、エレメンタリストリームとしてのビデオデータと、オーディオデータとをＳＤＴＩのフォーマットにマッピングし、ＳＤＴＩフォーマットのデータ構造を有するＳＤＴＩ信号へ変換されるこのＳＤＴＩ信号が外部に出力される。
【００６３】
なお、システムコントローラ１１７（第７図Ａおよび第７図Ｂ中では、シスコン１１７と略記する）は、例えばマイクロコンピュータからなり、信号ＳＹ＿ＩＯにより各ブロックと通信を行うことにより、このディジタルＶＴＲの全体の動作を制御する。サーボ１１８は、信号ＳＹ＿ＳＶによりシステムコントローラ１１７と互いに通信を行いながら、信号ＳＶ＿ＩＯにより、磁気テープ１１０の走行制御や回転ドラム１０９の駆動制御などを行う。
【００６４】
第８図Ａ、第８図Ｂおよび第８図Ｃは、上述したＭＰＥＧエンコーダ１０３の一例の構成を、より具体的に示す。また、第８図Ａ、第８図Ｂおよび第８図Ｃの各部において転送されるストリームの構成例を、第９図Ａ、第９図Ｂおよび第９図Ｃ、第１０図Ａ、第１０図Ｂおよび第１０図Ｃ、第１１図Ａおよび第１１図Ｂ、第１２図Ａおよび第１２図Ｂ、第１３図Ａ、第１３図Ｂおよび第１３図Ｃ、第１４図Ａ、第１４図Ｂおよび第１４図Ｃ、ならびに、第１５図にそれぞれ示す。
【００６５】
ＭＰＥＧエンコーダ１０３は、入力フィールドアクティビティ平均化処理部１０３Ａ、プリエンコード処理部１０３Ｂおよびエンコード部１０３Ｃからなる。入力フィールドアクティビティ平均化処理部１０３Ａでは、入力されたビデオデータのアクティビティの平均値が求められてプリエンコード処理部１０３Ｂに渡される。プリエンコード処理部１０３Ｂでは、このアクティビティの平均値を用いて入力ビデオデータの量子化による発生符号量が見積もられる。この見積もり結果に基づき、エンコード部１０３Ｃにおいて、符号量制御しながら入力ビデオデータに対する実際の量子化が行われ、量子化されたビデオデータに対しさらに可変長符号化がなされ、ＭＰＥＧ  ＥＳとされて出力される。
【００６６】
なお、タイミングジェネレータＴＧ２２０は、例えば第７図のタイミングジェネレータＴＧ１０２から供給された水平同期信号ＨＤ、垂直同期信号ＶＤおよびフィールド同期信号ＦＬＤに基づき、ＭＰＥＧエンコーダ１０３内で必要とされるタイミング信号を生成し出力する。また、ＣＰＵ  Ｉ／Ｆブロック２２１は、第７図のシステムコントローラ１１７とのインターフェイスであり、ＣＰＵ  Ｉ／Ｆブロック２２１を介してやりとりされた制御信号やデータにより、ＭＰＥＧエンコーダ１０３における動作が制御される。
【００６７】
先ず、入力フィールドアクティビティ平均化処理部１０３Ａの処理について説明する。ＳＤＩ入力部１０１から出力されＭＰＥＧエンコーダ１０３に入力されたビデオデータは、入力部２０１に供給され、メインメモリ２０３に格納するのに適したインターフェイスに変換されると共に、パリティチェックがなされる。入力部２０１から出力されたビデオデータは、ヘッダ作成部２０２に供給され、垂直ブランキング区間などを利用してＭＰＥＧにおける、sequence_header 、 quantizer_matrix、 gop_header などの各ヘッダが抽出される。抽出された各ヘッダは、メインメモリ２０３に格納される。これらのヘッダは、主に、ＣＰＵ  Ｉ／Ｆブロック２２１から指定される。また、ヘッダ作成部２０２において、垂直ブランキング区間以外では、入力部２０１から供給されたビデオデータがメインメモリ２０３に格納される。
【００６８】
メインメモリ２０３は、画像のフレームメモリであり、ビデオデータの再配列やシステムディレイの吸収などが行われる。ビデオデータの再配列は、例えば図示されないアドレスコントローラによりメインメモリ２０３からの読み出しアドレスを制御されることによりなされる。なお、図中、メインメモリ２０３のブロック中に記載される８ライン、０．５フレームおよび１フレームは、ディレイ値であり、メインメモリ２０３からのリードタイミングが示される。これらは、タイミングジェネレータＴＧ２２０の指令に基づき適切に制御される。
【００６９】
ラスタスキャン／ブロックスキャン変換部２０４は、ライン毎にメインメモリ２０３に格納されたビデオデータを、ＭＰＥＧで扱うマクロブロック毎に切り出して後段のサブブロック化部２３０に送る。この実施の一形態では、第１フィールドだけを用いてアクティビティの計算を行うため、ラスタスキャン／ブロックスキャン変換部２０４から出力されるマクロブロックは、第１フィールドのビデオデータにより構成される。
【００７０】
ラスタスキャン／ブロックスキャン変換部２０４から出力データとして出力されたストリームは、第９図Ａに一例が示されるように、垂直および水平方向のマクロブロックのアドレス情報が先頭に配され、所定サイズの空き領域の後ろに、１マクロブロック分の画像データが格納される。
【００７１】
なお、ストリームは、例えば８ビットを１ワードとして、５７６ワードのデータ長を有し、後半の５１２ワード（データ部と称する）が１マクロブロック分の画像データを格納する領域に割り当てられている。前半の６４ワード（ヘッダ部と称する）は、先頭に上述のマクロブロックのアドレス情報が格納され、その他の部分は、後段の各部にて埋め込まれるデータやフラグなどのため空き領域とされる。
【００７２】
ＭＰＥＧで扱うマクロブロックは、１６画素×１６ラインのマトリクスである。一方、この入力フィールドアクティビティ平均化処理部１０３Ａでは、第１６図Ａおよび第１６図Ｂを用いて後述するように、第１フィールドだけによるアクティビティを求める処理を行う。そのため、第１フィールドの８ラインまでがメインメモリ２０３に格納された時点で処理を開始することができる。なお、実際には、タイミングジェネレータＴＧ２２０からの指令にて処理が適切に開始される。
【００７３】
サブブロック化部２３０では、ラスタスキャン／ブロックスキャン変換部２０４から供給された１フィールド分のマクロブロックをサブブロックに細分化する。第１６図Ａおよび第１６図Ｂは、このサブブロック化部２３０によるマクロブロックの細分化の一例の処理を示す。ラスタスキャン／ブロックスキャン変換部２０４から供給されたマクロブロックは、第１６図Ａに一例が示されるように、８画素×８ラインのＤＣＴブロック４個からなる。また、入力フィールドアクティビティ平均化処理部１０３Ａでは、第１フィールドだけを用いて平均アクティビティを求めるため、実際には、斜線で塗り潰された第２フィールドのラインのデータは、存在しない。
【００７４】
この１６画素×１６ラインのマクロブロックを、第１６図Ｂの左側に示されるように、４画素×４ラインのサブブロックに細分化する。最終的には、第１６図Ｂの右側に示されるように、第１フィールドのデータだけからなる４画素×２ラインのサブブロックが１６個、形成される。
【００７５】
サブブロック部２３０の出力は、アクティビティ部２０５に供給される。アクティビティ部２０５では、サブブロック単位で供給されたデータに基づき、第１フィールドにおけるマクロブロック毎のアクティビティfield_actが求められる。先ず、式（７）により、４画素×２ラインのサブブロック毎に、サブブロック内の画素について、輝度レベルYkの平均値Pが求められる。
P=1/8Σ[k=1,8]yk      ・・・（７）
【００７６】
次に、４画素×２ラインのサブブロック毎に、式（８）のようにして、サブブロック内の画素毎の輝度レベルYkと平均値Pとの差分値の絶対値が求められ、さらに、求められた差分の絶対値の、サブブロック内での平均差分値var_sblkが求められる。
var_sblk=1/8Σ[k=1,8]abs(Yk-P)      ・・・（８）
【００７７】
１マクロブロックは、１６個のサブブロックから構成されるので、サブブロック毎に得られた１６個の平均差分値var_sblkの中から最小値が選択される（式（９））。選択された平均差分値var_sblkが第１フィールドのデータによる当該マクロブロックのアクティビティfield_actとされる。
field_act=min[blk=1,16](var_sblk)      ・・・（９）
【００７８】
こうして得られたマクロブロックの第１フィールドだけによるアクティビティfield_actは、平均化部２０６に供給され、１フィールド分が積算され、アクティビティfield_actの平均値（平均アクティビティ）avg_actが求められる（式（１０））。なお、式（１０）において、MBnumは、１フレームにおけるマクロブロックの総数を示す。
avg_act=1/MBnumΣ[m=1.MBnum]field_act[m]      ・・・（１０）
【００７９】
平均値avg_actは、後述するプリエンコード処理部１０３Ｂの正規化部２３３に供給される。詳細は後述するが、正規化部２３３では、平均値avg_actを用いて、マクロブロック毎に、アクティビティの正規化を行う。正規化部２３３では、第１および第２フィールドの平均値avg_actを共に用いて正規化処理が行われる。したがって、第１フィールドにおけるアクティビティの平均値avg_actが判明した後、その平均値を用いて、適応量子化を考慮したプリエンコード処理を行うことが可能となる。
【００８０】
次に、プリエンコード処理部１０３Ｂについて説明する。ラスタスキャン／ブロックスキャン変換部２０７Ａは、上述したラスタスキャン／ブロックスキャン変換部２０４と基本的には同様の処理を行う。但し、このラスタスキャン／ブロックスキャン変換部２０７Ａは、符号量の見積もりを行うプリエンコード処理のために行われるため、第１フィールドおよび第２フィールドのビデオデータが共に必要とされる。そのため、ラスタスキャン／ブロックスキャン変換部２０７Ａでは、第２フィールドの８ラインまでがメインメモリ２０３に格納された時点で、ＭＰＥＧで扱う１６画素×１６ラインのサイズのマクロブロックを構成することが可能となり、この時点で処理を開始することができる。なお、実際には、タイミングジェネレータＴＧ２２０からの指令によって、処理が適切に開始される。
【００８１】
ラスタスキャン／ブロックスキャン変換部２０７Ａから出力されたビデオデータは、ＤＣＴモード部２０８に供給される。ＤＣＴモード部２０８は、フィールドＤＣＴ符号化モードおよびフレームＤＣＴ符号化モードの何れを用いて符号化するかを決める。
【００８２】
ここでは、実際に符号化するのではなく、垂直方向に隣接した画素間差分値の絶対値和をフィールドＤＣＴ符号化モードで計算したものと、フレームＤＣＴ符号化モードで計算したものとが比較され、その値が小さい符号化モードが選択される。選択結果は、ＤＣＴモードタイプデータdct_typとしてストリーム中に一時的にフラグとして挿入され、後段に伝えられる。ＤＣＴモードタイプデータdct_typは、第９図Ｂに示されるように、ヘッダ部中の空き領域の後端側に格納される。
【００８３】
ＤＣＴモード部２０８から出力されたマクロブロックは、サブブロック化部２３１に供給される。サブブロック化部２３１では、供給されたマクロブロックを４画素×４ラインのサブブロックに細分化する。
【００８４】
このとき、供給されたストリーム中に挿入されたＤＣＴモードタイプデータdct_typが参照され、ＤＣＴモードタイプデータdct_typがフレーム符号化モードを示していると判断されれば、第１７図Ａに示されるマクロブロックが第１７図Ｂに示されるように、それぞれ第１および第２フィールドのラインを交互に含んだ４画素×４ラインのサブブロックに細分化される。一方、ＤＣＴモードタイプデータdct_typがフィールド符号化モードを示していると判断されれば、マクロブロックは、第１７図Ｃに示されるように、第１フィールドのみのデータからなる４画素×４ラインのサブブロックと、第２フィールドのデータのみからなる４画素×４ラインのサブブロックとに分類されて細分化される。
【００８５】
なお、第１７図Ａ、第１７図Ｂおよび第１７図Ｃにおいて、斜線で塗り潰されているラインが第２フィールド、他のラインが第１フィールドを示す。
【００８６】
こうしてサブブロックに細分化されたマクロブロックは、アクティビティ部２３２に供給される。アクティビティ部２３２では、供給されたマクロブロックについて、４画素×４ラインのサブブロック毎に、式（１１）により輝度レベルYkの平均値Pが求められる。
P=1/16Σ[k=1,16]Yk      ・・・（１１）
【００８７】
次に、４画素×４ラインのサブブロック毎に、式（１２）のようにして、サブブロック内の輝度レベルYkと平均値Pとの差分の絶対値が求められる。さらに、求められた差分の絶対値の、サブブロック内での平均差分値var_sblkが求められる。
var_sblk=1/16Σ[k=1,16]abs(Yk-P)      ・・・（１２）
【００８８】
１マクロブロックは、１６個のサブブロックから構成されるので、サブブロック毎に得られた１６個の平均差分値var_sblkの中から最小値が選択される（式（１３））。選択された平均差分値var_sblkが当該マクロブロックの第１および第２フィールドを用いたアクティビティactとされる。
act=min[blk=1,16](var_sblk)      ・・・（１３）
【００８９】
こうして得られたマクロブロックのアクティビティactは、第９図Ｃに示されるように、ストリームのヘッダ部に埋め込まれ、マクロブロックのデータと共に正規化部２３３に供給される。正規化部２３３では、マクロブロックのアクティビティactと上述した平均化部２０６から得られるフィールドアクティビティの平均値avg_actとを用いて、正規化アクティビティNactが求められる。
【００９０】
正規化アクティビティNactは、例えば、マクロブロックのアクティビティactとフィールドアクティビティの平均値avg_actとから、「２．０」〜「０．５」の範囲の値をとるように、次式（１４）で求めることができる。
Nact＝(2×act＋avg_act)/(act＋2×avg_act)      ・・・（１４）
【００９１】
正規化アクティビティNactは、正規化アクティビティデータnorm_actとして、第１０図Ａに示されるように、ストリーム中のヘッダ部に一時的にフラグとして挿入され、後段に伝えられる。なお、上述のアクティビティactは、ストリーム中で、正規化アクティビティデータnorm_actに上書きされる。
【００９２】
正規化部２３３の出力は、ＤＣＴ部２１０Ａに供給される。ＤＣＴ部２１０Ａでは、供給されたマクロブロックを８画素×８ラインからなるＤＣＴブロックに分割し、ＤＣＴブロックに対して２次元ＤＣＴが行われ、ＤＣＴ係数が生成される。ＤＣＴ係数は、第１０図Ｂに示されるように、ストリームのデータ部に格納され、量子化テーブル部２１１Ａに供給される。
【００９３】
量子化テーブル部２１１Ａでは、ＤＣＴ部２１０Ａで変換されたＤＣＴ係数に対して量子化マトリクス(quantizer_matrix)による量子化が行われる。量子化テーブル部２１１Ａで量子化されたＤＣＴ係数は、第１０図Ｃに示されるように、ストリームのデータ部に格納され、出力される。量子化テーブル部２１１Ａの出力は、複数のＱ＿ｎ（量子化）部２１２、２１２、・・・、ＶＬＣ部２１３、２１３、・・・、積算部Σ２１４、２１４、・・・、ならびに、積算部Σ２１５、２１５、・・・とからなる多段階の量子化部に供給される。量子化テーブル部２１１Ａで量子化されたＤＣＴ係数は、この多段階ステップの量子化部で多段階に量子化される。
【００９４】
ＤＣＴ係数は、Ｑ＿ｎ部２１２、２１２、・・・において、それぞれ異なった量子化スケール(quantizer_scale)Ｑを用いて量子化される。なお、量子化スケールＱの値は、例えばＭＰＥＧ２の規格によって予め決められており、Ｑ＿ｎ部２１２、２１２、・・・は、この規格に基づき、例えば３１個の量子化器で構成される。このとき、ｎ＝３１であって、Ｑ＿ｎ部２１２、２１２、・・・は、Ｑ＿１部、Ｑ＿２部、・・・、Ｑ＿３１部である。そして、各量子化器がそれぞれに割り振られた量子化スケールＱｎを用いて、ＤＣＴ係数の量子化が合計で３１ステップ、行われる。以下では、Ｑ＿ｎ部２１２、２１２、・・・のそれぞれに対応する量子化スケール値を量子化スケールＱｎ値とする。
【００９５】
Ｑ＿ｎ部２１２、２１２、・・・において、それぞれの量子化スケールＱｎ値により量子化が行われる。このとき、上述の正規化部２３３で得られた正規化アクティビティデータnorm_actを用いて次の式（６）により求めた、視覚特性を考慮した量子化スケールであるmqauntにより適応量子化が行われる。
qaunt＝Ｑ＿ｎ×norm_act      ・・・（６）
【００９６】
m  Ｑ＿ｎ部２１２、２１２、・・・において適応量子化された、量子化スケールＱｎ毎のＤＣＴ係数は、それぞれ第１１図Ａに示されるようにストリーム中のデータ部に格納され、ＶＬＣ部２１３、２１３、・・・にそれぞれ供給される。量子化スケールＱｎ毎のＤＣＴ係数は、ＶＬＣ部２１３、２１３、・・・において、ジグザグスキャンなどのスキャニングが施され、２次元ハフマンコードなどに基づくＶＬＣテーブルが参照されてそれぞれ可変長符号化される。
【００９７】
ＶＬＣ部２１３、２１３、・・・で可変長符号化されたデータは、第１１図Ｂに示されるようにストリーム中のデータ部に格納され、それぞれ出力される。ＶＬＣ部２１３、２１３、・・・の出力は、それぞれ対応する積算部Σ２１４、２１４、・・・に供給される。
【００９８】
積算部Σ２１４、２１４、・・・では、それぞれマクロブロック毎に発生符号量が積算される。上述のように３１種類の量子化器を用いる場合には、それぞれに対応する３１種類の発生符号量がマクロブロック毎に得られることになる。マクロブロック毎の発生符号量は、第１２図Ａに示されるように、積算部Σ２１４、２１４、・・・において積算された発生符号量がストリーム中のヘッダ部に、各々格納される。すなわち、Ｑ＿１部２１２〜Ｑ＿ｎ部２１２のそれぞれの量子化による発生符号量が、マクロブロック毎に、ストリームのヘッダ部に格納される。なお、ストリームのデータ部は、削除される。このマクロブロック毎のストリームは、メインメモリ２０３に供給される。
【００９９】
また、積算部Σ２１４、２１４、・・・から出力されたマクロブロック毎の発生符号量は、それぞれ積算部Σ２１５、２１５、・・・に供給される。積算部Σ２１５、２１５、・・・は、上述した視覚特性を考慮した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
：Ｑ＿６部２１２による発生符号量を、第１２図Ａのヘッダ部から求める。
qaunt[3]=4x0.8=3.2
：Ｑ＿３部２１２による発生符号量を、第１２図Ａのヘッダ部から求める。
mqaunt[4]=4x1.0=4.0
：Ｑ＿４部２１２による発生符号量を、第１２図Ａのヘッダ部から求める。
・・・
以上を、１フレーム分、積算する。これを、Ｑ＿１部２１２〜Ｑ＿ｎ部２１２に対してそれぞれ行い、１フレーム分の発生符号量を求める。
【０１０３】
次に、エンコード処理部１０３Ｃについて説明する。エンコード処理部１０３Ｃでは、最終的なエンコード処理が行われる。上述したように、プリエンコード処理部１０３Ｂにおいて、様々な量子化を行った場合の１フレーム分の発生符号量が見積もられる。エンコード処理部１０３Ｃでは、この１フレーム分で見積もられた発生符号量に基づき、予め設定された目標発生符号量を絶対に超えないようにエンコードが行われ、ＭＰＥＧ  ＥＳが出力される。
【０１０４】
エンコード処理部１０３Ｃで用いられるデータは、既にメインメモリ２０３に格納されているが、上述したように、プリエンコード処理部１０３Ｂにより様々な量子化を行った場合の１フレームにおける発生符号量が見積もられた時点で処理を開始することができる。エンコード処理部１０３Ｃの各部における処理は、上述と同様に、タイミングジェネレータＴＧ２２０からの指令に基づき適切に開始される。
【０１０５】
メインメモリ２０３から読み出されたビデオデータは、ラスタスキャン／ブロックスキャン変換部２０７Ｂにおいて、上述のラスタスキャン／ブロックスキャン変換部２０７Ａと同様の処理をされて１６画素×１６ラインのマクロブロックが切り出される。切り出されたマクロブロックは、第１３図Ａに示されるように、上述した第１２図Ａに示されるヘッダ部に対応するデータ部に格納され、ＤＣＴモード部２１６に供給される。
【０１０６】
ＤＣＴモード部２１６では、上述のＤＣＴモード部２０８と同様に、フィールドＤＣＴ符号化モードおよびフレームＤＣＴ符号化モードのうち何れを用いて符号化するかが決められる。このとき、既にＤＣＴモード部２０８において符号化モードが決められ、その結果がＤＣＴタイプデータdct_typとしてストリーム中に一時的に挿入されている（第１３図Ａ参照）。ＤＣＴモード部２１６では、ストリームからこのＤＣＴタイプデータdct_typを検出し、検出されたＤＣＴタイプデータdct_typに基づきフィールド符号化モードおよびフレーム符号化モードを切り換える。ＤＣＴモード部２１６の出力を第１３図Ｂに示す。
【０１０７】
ＤＣＴモード部２１６から出力されたマクロブロックは、ＤＣＴ部２１０Ｂに供給され、上述のＤＣＴ部２１０Ａと同様にして８画素×８ラインのＤＣＴブロック単位で２次元ＤＣＴされる。２次元ＤＣＴされたＤＣＴ係数は、第１３図Ｃに示されるように、ストリーム中のデータ部に格納されて、ＤＣＴ部２１０Ｂから出力される。
【０１０８】
量子化テーブル部２１１Ｂは、上述の量子化テーブル部２１１Ａと同様に構成することができ、ＤＣＴ部２１０Ｂで変換されたＤＣＴ係数に対して量子化マトリクスによる量子化が行われる。量子化テーブル部２１１Ｂで量子化されたＤＣＴ係数は、第１４図Ａに示されるように、ストリーム中のデータ部に格納されてレートコントロール部２１７に供給される。
【０１０９】
レートコントロール部２１７では、上述したプリエンコード処理部１０３Ｂにおいて積算部Σ２１５、２１５、・・・で得られた、各量子化スケールＱｎ毎のフレームデータレートの中から、システムコントローラ１１７により設定される１フレーム当たりの最大発生符号量を超えないもので、且つ、最も設定値に近いものが選択される。そして、選択されたフレームデータレートに対応する量子化器において用いられたマクロブロック毎の量子化スケール(mquant)が、ストリーム中に挿入された正規化アクティビティデータnorm_actから再度求められ、量子化部２１８に供給される。
【０１１０】
マクロブロック毎の量子化スケールは、第１４図Ｂに示されるように、ストリーム中のヘッダ部の後端側にqauntiser_scaleとして格納され、量子化部２１８に伝えられる。
【０１１１】
なお、１フレーム当たりの最大発生符号量は、例えばシステムコントローラ１１７により設定され、ＣＰＵ  Ｉ／Ｆ２２１を介してレートコントロール部２１７に伝えられる。
【０１１２】
また、この際、システムコントローラ１１７で設定されＣＰＵ  Ｉ／Ｆ２２１を介して伝えられる、１フレームあたりの最大発生符号量と、上述したストリーム中に挿入された正規化アクティビティデータnorm_actから求められたマクロブロック毎の量子化スケール(mqaunt)による発生符号量との差分を超えない範囲で、マクロブロック毎に量子化スケール(mquant)の値を１サイズ小さくするようにできる。これにより、システムコントローラ１１７で設定されＣＰＵ  Ｉ／Ｆ２２１を介して伝えられる１フレーム当たりの最大発生符号量に近付け、高画質を実現することが可能である。
【０１１３】
量子化部２１８では、レートコントロール部２１７により上述のようにして指定される量子化スケール(quantizer_scale)をストリーム中から取り出し、取り出された量子化スケールに基づき量子化テーブル部２１１Ｂで量子化されたＤＣＴ係数の量子化が行われる。このとき、レートコントロール部２１７から与えられる量子化スケールは、正規化アクティビティデータnorm_actから求められた量子化スケール(mquant)の値であるため、視覚特性が考慮された適応量子化が行われることになる。
【０１１４】
量子化部２１８で量子化されたＤＣＴ係数は、第１４図Ｃに示されるようにストリーム中のデータ部に格納され、ＶＬＣ部２１９に供給される。量子化されＶＬＣ部２１９に供給されたＤＣＴ係数は、ジグザグスキャンなどのスキャンニングが施され、２次元ハフマンコードに基づくＶＬＣテーブルが参照されてそれぞれ可変長符号化される。さらに、可変長符号に対して、バイト単位で整列するようにビットシフトが施され、ＭＰＥＧ  ＥＳとされて出力される。
【０１１５】
このとき、ＶＬＣ部２１９までストリームの前半部を構成していたヘッダ部が第１５図に示されるようにスライス層以下のＭＰＥＧのヘッダ情報が格納されるＭＰＥＧのヘッダ部にすげ替えられて出力される。可変長符号は、ストリームの後半側のデータ部に格納される。
【０１１６】
第１８図は、上述のサブブロック化部２３１およびアクティビティ部２３２の一例の構成を示す。なお、この構成は、一部を変更することで、上述のサブブロック化部２３０およびアクテビティ部２０５に容易に適用することができる。
【０１１７】
４画素×４ラインからなるサブブロックの１画素の輝度レベル値Ykがディレイ回路３１と加算器３３の一方の入力端子とに入力される。加算器３３の他方の入力端子には、セレクタ３２からのデータが入力される。加算器３３で、輝度レベル値Ykとセレクタ３２から出力されたデータとが加算される。加算器３３からの出力値は、レジスタ３４に一時的に保持され、セレクタ３２に送られる。この加算器３３、セレクタ３２およびレジスタ３４のループにより、４画素×４ラインのサブブロックの１６個の輝度レベル値Ykの総和が求められる。
【０１１８】
なお、１サブブロックの総和演算が終了すると、セレクタ３２により初期値０が出力され、加算器３３およびレジスタ３４が初期化される。
【０１１９】
レジスタ３４の出力がシフト回路３５に送られ、４ビットシフトされることで１／１６の演算がなされ、サブブロックにおける輝度レベル値Ykの平均値Pが求められる。平均値Pは、減算器３６の減算入力端に入力される。一方、減算器３６の被減算入力端には、ディレイ回路３１で上述のサブブロックの総和演算に対応した時間だけ遅延された輝度レベル値Ykが入力される。
【０１２０】
減算器３６で、ディレイ回路３１から出力された輝度レベル値Ykからシフト回路３５から供給された平均値Pが減ぜられる。減算器３６の出力は、絶対値化回路３７で絶対値化され、差分値の絶対値{abs(Yk-P)}とされる。差分値の絶対値{abs(Yk-P)}は、レジスタ３８を介して加算器４０の一方の入力端に入力される。
【０１２１】
加算器４０の他方の入力端には、セレクタ３９からのデータが入力される。加算器４０では、差分値の絶対値{abs(Yk-P)}とセレクタ３９から出力されたデータとが加算される。加算器４０の出力は、レジスタ４１で一時的に保持され、セレクタ３９に入力されると共にシフト回路４２に供給される。加算器４０、セレクタ３９およびレジスタ４１のループで、４画素×４ラインのサブブロックの１６個の、差分値の絶対値{abs(Yk-P)}の総和が求められる。
【０１２２】
なお、１サブブロックの総和演算が終了すると、セレクタ３９により初期値０が出力され、加算器４０およびレジスタ４１が初期化される。
【０１２３】
レジスタ４１から出力された１サブブロックの差分値の絶対値{abs(Yk-P)}の総和は、シフト回路４２に供給され、４ビットシフトされることで１／１６の演算がなされ、サブブロックの平均差分値var_sblkが求められる。この平均差分値var_sblkは、最小値回路４３に供給される。最小値回路４３では、供給された平均差分値var_sblkを示すサブブロックが属するマクロブロックにおける、最小の平均差分値var_sblkが選択される。選択された平均差分値var_sblkは、当該マクロブロックのアクティビティactとして出力される。
【０１２４】
なお、上述では、ＭＰＥＧエンコーダ１０３における処理がハードウェアにより行われるように説明したが、これはこの例に限定されない。ＭＰＥＧエンコーダ１０３の処理は、ソフトウェアによっても同様に実現可能なものである。例えば、コンピュータ装置にビデオ信号のアナログおよびディジタルの入力インターフェイスを設け、コンピュータ上に搭載されたソフトウェアによりＣＰＵおよびメモリなどを利用して実行することができる。また、上述のディジタルＶＴＲの構成において、ＭＰＥＧエンコーダ１０３をＣＰＵおよびメモリに置き換えたような構成としてもよい。
【０１２５】
このソフトウェアは、例えばＣＤ−ＲＯＭ(Compact Disc-Read Only Memory)といった記録媒体にプログラムデータとして記録されて提供される。このソフトウェアが記録された記録媒体をコンピュータ装置に装填し、所定の操作を行うことで当該ソフトウェアがコンピュータ装置にインストールされ、当該ソフトウェアによる処理を実行することが可能な状態とされる。なお、コンピュータ装置の構成は、極めて周知であるため、ここでは説明を省略する。
【０１２６】
第１９図は、ＭＰＥＧエンコーダ１０３の処理をソフトウェアで行う場合の一例のフローチャートである。このフローチャートによる処理は、上述したハードウェアによる処理と同様なものであるので、以下では、上述したハードウェアにおける処理を考慮しながら、概略的に説明する。ステップＳ１〜Ｓ８は、上述の入力フィールドアクティビティ平均化処理部１０３Ａによる処理に対応する。ステップＳ１１〜Ｓ２２は、上述のプリエンコード処理部１０３Ｂに対応する。また、ステップＳ３１〜Ｓ３８は、上述のエンコード処理部１０３Ｃに対応する。
【０１２７】
最初のステップＳ１で、ビデオデータが取り込まれる。次のステップＳ２で、取り込まれたビデオデータから、垂直ブランキング区間でＭＰＥＧにおける各ヘッダが抽出されメモリに格納される。垂直ブランキング区間以外では、取り込まれたビデオデータがメモリに格納される。
【０１２８】
ステップＳ３では、第１フィールドのビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。これは、例えばメモリに格納されたビデオデータを読み出す際の読み出しアドレスを制御することでなされる。ステップＳ４で、切り出されたマクロブロックが細分化され、４画素×２ラインのサブブロックとされる。
【０１２９】
ステップＳ５では、サブブロックに細分化されたビデオデータを用いて第１フィールドによるアクティビティactが計算される。すなわち、上述したように、４画素×２ラインのサブブロック毎に輝度レベル値Ykの平均値Pが求められ、さらに輝度レベルYk値と平均値Pとの差分の絶対値が求められ、差分の絶対値から当該サブブロックの輝度レベル値Ykの平均差分値var_sblkが求められる。そして、１マクロブロック内で最小となる平均差分値var_sblkが当該マクロブロックのアクティビティactとして選択される。
【０１３０】
ステップＳ５で求められたアクティビティActibity(act)がステップＳ６で積算され、積算値sumとしてメモリに格納される。これらステップＳ３〜Ｓ６までの処理は、ステップＳ７において第１フィールドの最終マクロブロックの処理が終了したと判断されるまで繰り返される。すなわち、積算値sumは、１フィールド分のマクロブロックのアクティビティの合計となる。
【０１３１】
ステップＳ７において１フィールドの最終マクロブロックまで処理が終了したと判断されたら、ステップＳ８で、メモリに格納された積算値sumが１フィールド分のマクロブロック数で除され、１フィールド分のアクティビティが平均化されたフィールドアクティビティの平均値Actibity(avg_act)が求められ、メモリに格納される。
【０１３２】
フィールドアクティビティの平均値Actibity(avg_act)が求められると、処理はステップＳ１１に移行する。ステップＳ１１では、上述のステップＳ３と同様に、メモリに格納されたビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。
【０１３３】
次のステップＳ１２で、ＤＣＴをフィールドＤＣＴ符号化モードおよびフレームＤＣＴ符号化モードの何れで行うかが選択され、選択結果がＤＣＴモードタイプデータdct_typとしてメモリに格納される。ステップＳ１３では、ステップＳ１２の選択結果に応じて、マクロブロックが４画素×４ラインのサブブロックに細分化される。
【０１３４】
次のステップＳ１４で、サブブロックに細分化されたビデオデータを用いて、第１および第２フィールドによるマクロブロック毎のアクティビティactが求められる。すなわち、上述したように、４画素×４ラインのサブブロック毎に輝度レベルYkの平均値Pが求められ、さらに輝度レベル値Ykと平均値Pとの差分の絶対値が求められ、差分の絶対値から当該サブブロックの輝度レベル値Ykの平均差分値var_sblkが求められる。そして、１マクロブロック内で最小となる平均差分値var_sblkが当該マクロブロックのアクティビティactとして選択される。こうして求められたアクティビティactと、上述のステップＳ８で求められメモリに格納されたフィールドアクティビティの平均値Actibity(avg_act)とを用いて正規化アクティビティActibity(norm_act)が求められる。求められた正規化アクティビティActibity(norm_act)は、メモリに格納される。
【０１３５】
次のステップＳ１５で、上述のステップＳ１１でビデオデータから切り出されたマクロブロックが８画素×８画素からなるＤＣＴブロックに分割され、このＤＣＴブロックに対して２次元ＤＣＴが行われる。２次元ＤＣＴによりＤＣＴブロックが変換されたＤＣＴ係数は、ステップＳ１６で量子化テーブル(quantizer_table)による量子化がなされ、処理はステップＳ１７に移行される。
【０１３６】
ステップＳ１７〜Ｓ２１の処理を、量子化スケール(quantizer_scale)Ｑｎ値それぞれについて行うように繰り返すことで、上述のＱ＿ｎ部２１２、２１２、・・・、ＶＬＣ部２１３、２１３、・・・、積算部Σ２１４、２１４、・・・、ならびに、積算部Σ２１５、２１５、・・・に相当する処理が行われる。すなわち、ステップＳ１７で、ＤＣＴ係数に対して量子化スケールＱ＝１での量子化が行われ、ステップＳ１８で、ＶＬＣテーブルが参照されて量子化されたＤＣＴ係数が可変長符号化される。そして、ステップＳ１９で可変長符号化によるマクロブロックにおける発生符号量が計算され、ステップＳ２０で、ステップＳ１９で求められたマクロブロック毎の発生符号量が１フレーム分、積算される。ステップＳ２１で次の量子化スケールＱｎがあるか否かが判断され、次の量子化スケールＱｎがあると判断されたら、処理はステップＳ１７に戻され、次の量子化スケールＱｎに基づく処理が行われる。量子化スケールＱｎ毎の１フレーム分の発生符号量は、それぞれメモリに格納される。
【０１３７】
ステップＳ２１で、全ての量子化スケールＱｎの値についてフレームにおける発生符号量の積算値が求められたとされれば、ステップＳ２２で、１フレームの最終マクロブロック（ＭＢ）まで処理が終了したかどうかが判断され、最終マクロブロックまでの処理が終了していなければ、処理がステップＳ１１に戻される。最終マクロブロックまでの処理が終了され１フレーム分の発生符号量が見積もられれば、ステップＳ３１に移行され、実際のエンコード処理が行われる。
【０１３８】
ステップＳ３１では、上述のステップＳ１１と同様に、メモリに格納されたビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。次のステップＳ３２では、上述のステップＳ１２でメモリに格納されたＤＣＴモードタイプデータdct_typに基づきＤＣＴ符号化モードが設定される。
【０１３９】
ステップＳ３３では、ステップＳ３１でビデオデータから切り出されたマクロブロックが８画素×８画素からなるＤＣＴブロックに分割され、このＤＣＴブロックに対して次元ＤＣＴが行われる。２次元ＤＣＴによりＤＣＴブロックが変換されたＤＣＴ係数は、ステップＳ３４で量子化テーブル(quantizer_table)による量子化がなされ、処理はステップＳ３５に移行される。
【０１４０】
ステップＳ３５では、上述したステップＳ１１〜Ｓ２１において見積もられた、量子化スケールＱｎ毎の１フレーム分の発生符号量に基づき、実際のエンコード処理において発生される符号量の制御を行うために、後述するステップＳ３６で用いられる量子化スケールＱｎがマクロブロック毎に設定される。
【０１４１】
そして、処理はステップＳ３６に移行され、ステップＳ３５で設定された量子化スケールＱｎを用いて、ステップＳ３４で量子化テーブルを用いて量子化されたＤＣＴ係数の量子化が行われる。ステップＳ３６で量子化されたＤＣＴ係数は、次のステップＳ３７でＶＬＣテーブルが参照され可変長符号化される。そして、ステップＳ３８で１フレームの最終マクロブロックまで処理が行われたか否かが判断され、１フレームの最終マクロブロックまで処理されていないと判断されれば、処理がステップＳ３１に戻され、次のマクロブロックに対する量子化処理および可変長符号化処理が行われる。一方、ステップＳ３８で、１フレームの最終マクロブロックまで処理が行われたと判断されれば、１フレーム分のエンコード処理が終了したとされる。
【０１４２】
なお、上述では、ステップＳ１１〜Ｓ２２までのプリエンコード処理と、ステップＳ３１〜Ｓ３８までのエンコード処理とを別々の処理として説明したが、これはこの例に限定されない。例えば、ステップＳ１１〜Ｓ２２において発生符号量の見積もりにより得られたデータをメモリに格納し、そこから実際のエンコード処理により得られるデータを選択して取り出すようにする。これにより、ステップＳ３１〜Ｓ３８の処理をステップＳ１１〜Ｓ２２による処理に含まれるループとして組み込むことができる。
【０１４３】
なお、上述では、１６画素×１６ラインからなるマクロブロックを、４画素×４ラインのサブブロックに細分化しているが、これはこの例に限定されない。マクロブロックを、８画素×８ラインより小さい、他のサイズのサブブロックに細分化してアクティビティを求めるようにしてもよい。例えば、Ｘ画素×ＹラインのＤＣＴブロックより小さい、（Ｘ／２n）画素×（Ｙ／２m）ラインのサブブロック単位でアクティビティを算出することができる。
【０１４４】
また、上述では、画像データの符号化方式として画像をブロック単位でＤＣＴして符号化するＭＰＥＧ２方式を採用しているが、これはこの例に限定されない。画像データをブロック単位で符号化する符号化方式であれば、他の符号化方式を用いることも可能である。
【０１４５】
さらに、上述では、この発明の適用される例として、ディジタルＶＴＲを説明しているが、これはこの例に限定されない。この発明は、画像データをブロック符号化を用いて圧縮符号化する他の画像処理装置、例えば伝送のために画像データを圧縮符号化する画像伝送装置にも適用することが可能である。
【０１４６】
【発明の効果】
以上説明したように、この発明は、マクロブロックのアクティビティを求める際のサブブロックのサイズが４画素×４ラインと、従来の８画素×８ラインより小さくされているため、各サブブロックの差分平均値が８画素×８ラインの場合よりも強調された値となる。そのため、マクロブロックにおいて、４画素×４ラインのサブブロックで求めた差分平均値の中から最小の値を選択して当該マクロブロックのアクティビティとすることで、平坦部分を僅かでも含むマクロブロックのアクティビティをより抑えることができる。
【０１４７】
これは、文字、画像の輪郭部など、所謂画像のエッジを含むマクロブロックの量子化値を小さくできることを意味し、結果として、画像のエッジ部分を含むマクロブロックのモスキートノイズを抑えることができる。
【０１４８】
画像の平坦部にモスキートノイズが発生すると、視覚的により目立ちやすい。そのため、平坦部分を僅かでも含むマクロブロックの量子化値を抑えることは、特に符号量に余裕のある圧縮率の低い場合に、非常に有効である。
【図面の簡単な説明】
【図１】  モスキートノイズについて説明するための図である。
【図２】  この発明によるアクティビティ検出を説明するための図である。
【図３】  ＭＰＥＧ２のＴＭ５によるアクティビティ検出を説明するための図である。
【図４】  実際の画像におけるアクティビティの算出結果について説明するためのサンプル画像である。
【図５】  ＭＰＥＧ２のＴＭ５によるアクティビティの画像内での一例の分布を示す略線図である。
【図６】  この発明によるアクティビティの画像内での一例の分布を示す略線図である。
【図７】  この発明の実施の一形態が適用されたディジタルＶＴＲの一例の構成を示すブロック図である。
【図８】  ＭＰＥＧエンコーダの一例の構成をより具体的に示すブロック図である。
【図９】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図１０】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図１１】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図１２】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図１３】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図１４】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図１５】  ＭＰＥＧエンコーダの各部において転送されるストリームの構成例を示す略線図である。
【図１６】  サブブロック化部によるマクロブロックの細分化の一例の処理を示す略線図である。
【図１７】  ＤＣＴモードが決定された後のサブブロック化部によるマクロブロックの細分化の一例の処理を示す略線図である。
【図１８】  サブブロック化部およびアクティビティ部の一例の構成を示す略線図である。
【図１９】  ＭＰＥＧエンコーダの処理をソフトウェアで行う場合の一例のフローチャートである。
【符号の説明】
１０２  タイミングジェネレータＴＧ
１０３  ＭＰＥＧエンコーダ
１１７  システムコントローラ
２０３  メインメモリ
２０４，２０７Ａ，２０７Ｂ  ラスタスキャン／ブロックスキャン変換部
２０５，２３２  アクティビティ部
２０６  平均化部
２０８，２１６  ＤＣＴモード部
２１０Ａ，２１０Ｂ  ＤＣＴ部
２１１Ａ，２１１Ｂ  量子化テーブル部
２１２  量子化部
２１３  ＶＬＣ部
２１４，２１５  積算部Σ
２１７  レートコントロール部
２１８  量子化部
２１９  ＶＬＣ部
２３０，２３１  サブブロック化部
２３３  正規化部
Ｓ１  画像の取り込み
Ｓ２  ヘッダの付加
Ｓ３  ラスタスキャン→ブロックスキャン変換
Ｓ４  サブブロック化
Ｓ５  第１フィールドによるアクティビティ（ａｃｔ）計算
Ｓ６  アクティビティ（ａｃｔ）積算  ｓｕｍ＝ｓｕｍ＋ａｃｔ
Ｓ７  第１フィールドの最終ＭＢか？
Ｓ８  第１フィールドの平均アクティビティ（ａｖｇ＿ａｃｔ）の計算
ａｖｇ＿ａｃｔ＝ｓｕｍ／ＭＢ数
Ｓ１１  ラスタスキャン→ブロックスキャン変換
Ｓ１２  ＤＣＴモードの決定（ｆｉｅｌｄ＿ｄｃｔ／ｆｒａｍｅ＿ｄｃｔ）
Ｓ１３  サブブロック化
Ｓ１４  アクティビティ（ｎｏｒｍ＿ａｃｔ）の計算
Ｓ１５  ＤＣＴの計算
Ｓ１６  Ｑ＿ｔａｂｌｅによる量子化
Ｓ１７  Ｑ＿ｓｃａｌｅによる量子化
Ｓ１８  ＶＬＣによる可変長符号化
Ｓ１９  ＭＢにおける発生符号量の計算
Ｓ２０  フレームにおける発生符号量の積算（Ｑ＿ｓｃａｌｅの種類毎）
Ｓ２１  他のＱ＿ｓｃａｌｅがあるか？
Ｓ２２  最終ＭＢか？
Ｓ３１  ラスタスキャン→ブロックスキャン変換
Ｓ３２  ＤＣＴモードの選択（ｆｉｅｌｄ＿ｄｃｔ／ｆｒａｍｅ＿ｄｃｔ）
Ｓ３３  ＤＣＴの計算
Ｓ３４  Ｑ＿ｔａｂｌｅによる量子化
Ｓ３５  符号量の制御（Ｑ＿ｓｃａｌｅの設定）
Ｓ３６  Ｑ＿ｓｃａｌｅによる量子化
Ｓ３７  ＶＬＣによる可変長符号化
Ｓ３８  最終ＭＢか？
【図１Ａ】
0004144357.tif 000002
【図１Ｂ】
0004144357.tif 000003
【図２Ａ】
0004144357.tif 000004
【図２Ｂ】
0004144357.tif 000005
【図３Ａ】
0004144357.tif 000006
【図３Ｂ】
0004144357.tif 000007
【図４】
0004144357.tif 000008
【図５】
0004144357.tif 000009
【図６】
0004144357.tif 000010
【図７】
0004144357.tif 000011
【図７Ａ】
0004144357.tif 000012
【図７Ｂ】
0004144357.tif 000013
【図８】
0004144357.tif 000014
【図８Ａ】
0004144357.tif 000015
【図８Ｂ】
0004144357.tif 000016
【図８Ｃ】
0004144357.tif 000017
【図９Ａ】
0004144357.tif 000018
【図９Ｂ】
0004144357.tif 000019
【図９Ｃ】
0004144357.tif 000020
【図１０Ａ】
0004144357.tif 000021
【図１０Ｂ】
0004144357.tif 000022
【図１０Ｃ】
0004144357.tif 000023
【図１１Ａ】
0004144357.tif 000024
【図１１Ｂ】
0004144357.tif 000025
【図１２Ａ】
0004144357.tif 000026
【図１２Ｂ】
0004144357.tif 000027
【図１３Ａ】
0004144357.tif 000028
【図１３Ｂ】
0004144357.tif 000029
【図１３Ｃ】
0004144357.tif 000030
【図１４Ａ】
0004144357.tif 000031
【図１４Ｂ】
0004144357.tif 000032
【図１４Ｃ】
0004144357.tif 000033
【図１５】
0004144357.tif 000034
【図１６Ａ】
0004144357.tif 000035
【図１６Ｂ】
0004144357.tif 000036
【図１７Ａ】
0004144357.tif 000037
【図１７Ｂ】
0004144357.tif 000038
【図１７Ｃ】
0004144357.tif 000039
【図１８】
0004144357.tif 000040
【図１９】
0004144357.tif 000041
0004144357.tif 000042
0004144357.tif 000043