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


【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
る際に、マクロブロックを例えば４画素×４ラインのサブブロックに分割し、分割されたサブブロックのそれぞれについてアクティビティを検出する。そして、検出されたアクティビティに基づきマクロブロック毎のアクティビティを決定する。このアクティビティに基づきマクロブロック毎に量子化スケールを決め、マクロブロックの適応量子化を行う。
第２図Ａおよび第２図Ｂ、ならびに、第３図Ａおよび第３図Ｂを用いて、この発明によるアクティビティ検出の方法を、上述した従来技術であるＭＰＥＧ２のＴＭ５と対比させながら説明する。第２図Ａおよび第２図Ｂは、この発明によるアクティビティ検出を説明するための図である。第２図Ａにおいて、１６画素×１６ラインからなるマクロブロックに対して、文字「３」が表示されている。ここでは、黒く塗り潰された（■）画素の画素値を「１６」、白いままの（□）画素の画素値を「０」とする。また、画素値は、その画素の輝度レベルを表すものとする。
この発明では、以下の手順に従いマクロブロックのアクティビティを検出する。先ず、１６画素×１６ラインからなるマクロブロックを、４画素×４ラインのサブブロックに分割し、式（４）により、サブブロック毎に輝度レベルＹｋの平均値Ｐを求める。
2002080574.tif 000056
次に、式（５）により、４画素×４ラインのサブブロックそれぞれについて、サブブロックの各位置の画素毎に輝度レベルＹｋと当該サブブロックの平均値Ｐとの差分の絶対値を求め、さらに、サブブロック毎に、その差分値の絶対値の平均をとり平均差分値ｖａｒ＿ｓｂｌｋを求める。
2002080574.tif 000057
１マクロブロックは、４画素×４ラインのサブブロックが１６個で構成される。この１マクロブロックを構成する１６個のサブブロックの平


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
ＥＣＣエンコーダ１０７は、シンクブロック単位でＩＤを付加する回路や、同期信号を付加する回路を含む。なお、実施の第１の形態では、ビデオ信号およびオーディオ信号に対するエラー訂正符号としては、積符号が使用される。積符号は、ビデオ信号またはオーディオ信号の２次元配列の縦方向に外符号の符号化を行い、その横方向に内符号の符号化を行い、データシンボルを２重に符号化するものである。外符号および内符号としては、リードソロモンコード（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ  ｃｏｄｅ）を使用できる。
ＥＣＣエンコーダ１０７には、ＭＦＣ回路１０６から出力された変換エレメンタリストリームが供給されると共に、ＳＤＴＩ入力部１０５およびディレイ回路１０４から出力されたオーディオ信号が供給される。ＥＣＣエンコーダ１０７では、供給された変換エレメンタリストリーム及びオーディオ信号に対してシャフリング及びエラー訂正符号化を施し、シンクブロック毎にＩＤおよび同期信号を付加し記録データとして出力する。
ＥＣＣエンコーダ１０７から出力された記録データは、記録アンプを含むイコライザＥＱ１０８で記録ＲＦ信号に変換される。記録ＲＦ信号は、回転ヘッドが所定に設けられた回転ドラム１０９に供給され、磁気テープ１１０上に記録される。回転ドラム１０９には、実際には、隣接するトラックを形成するヘッドのアジマスが互いに異なる複数の磁気ヘッドが取り付けられている。
記録データに対して必要に応じてスクランブル処理を行っても良い。また、記録時にディジタル変調を行っても良く、さらに、パーシャル・レスポンスクラス４とビタビ符号を使用しても良い。なお、イコライザ１０８は、記録側の構成と再生側の構成とを共に含む。
次に、このディジタルＶＴＲにおける再生系の構成および処理動作に


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
３Ｂでは、このアクティビティの平均値を用いて入力ビデオデータの量子化による発生符号量が見積もられる。この見積もり結果に基づき、エンコード部１０３Ｃにおいて、符号量制御しながら入力ビデオデータに対する実際の量子化が行われ、量子化されたビデオデータに対しさらに可変長符号化がなされ、ＭＰＥＧ  ＥＳとされて出力される。
なお、タイミングジェネレータＴＧ２２０は、例えば第７図のタイミングジェネレータＴＧ１０２から供給された水平同期信号ＨＤ、垂直同期信号ＶＤおよびフィールド同期信号ＦＬＤに基づき、ＭＰＥＧエンコーダ１０３内で必要とされるタイミング信号を生成し出力する。また、ＣＰＵ  Ｉ／Ｆブロック２２１は、第７図のシステムコントローラ１１７とのインターフェイスであり、ＣＰＵ  Ｉ／Ｆブロック２２１を介してやりとりされた制御信号やデータにより、ＭＰＥＧエンコーダ１０３における動作が制御される。
先ず、入力フィールドアクティビティ平均化処理部１０３Ａの処理について説明する。ＳＤＩ入力部１０１から出力されＭＰＥＧエンコーダ１０３に入力されたビデオデータは、入力部２０１に供給され、メインメモリ２０３に格納するのに適したインターフェイスに変換されると共に、パリティチェックがなされる。入力部２０１から出力されたビデオデータは、ヘッダ作成部２０２に供給され、垂直ブランキング区間などを利用してＭＰＥＧにおける、ｓｅｑｕｅｎｃｅ＿ｈｅａｄｅｒ、ｑｕａｎｔｉｚｅｒ＿ｍａｔｒｉｘ、ｇｏｐ＿ｈｅａｄｅｒなどの各ヘッダが抽出される。抽出された各ヘッダは、メインメモリ２０３に格納される。これらのヘッダは、主に、ＣＰＵ  Ｉ／Ｆブロック２２１から指定される。また、ヘッダ作成部２０２において、垂直ブランキング区間以外では、入力部２０１から供給されたビデオデータがメインメモリ２０３に格納される。
メインメモリ２０３は、画像のフレームメモリであり、ビデオデータ


【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
の再配列やシステムディレイの吸収などが行われる。ビデオデータの再配列は、例えば図示されないアドレスコントローラによりメインメモリ２０３からの読み出しアドレスを制御されることによりなされる。なお、図中、メインメモリ２０３のブロック中に記載される８ライン、０．５フレームおよび１フレームは、ディレイ値であり、メインメモリ２０３からのリードタイミングが示される。これらは、タイミングジェネレータＴＧ２２０の指令に基づき適切に制御される。
ラスタスキャン／ブロックスキャン変換部２０４は、ライン毎にメインメモリ２０３に格納されたビデオデータを、ＭＰＥＧで扱うマクロブロック毎に切り出して後段のサブブロック化部２３０に送る。この実施の一形態では、第１フィールドだけを用いてアクティビティの計算を行うため、ラスタスキャン／ブロックスキャン変換部２０４から出力されるマクロブロックは、第１フィールドのビデオデータにより構成される。
ラスタスキャン／ブロックスキャン変換部２０４から出力データとして出力されたストリームは、第９図Ａに一例が示されるように、垂直および水平方向のマクロブロックのアドレス情報が先頭に配され、所定サイズの空き領域の後ろに、１マクロブロック分の画像データが格納される。
なお、ストリームは、例えば８ビットを１ワードとして、５７６ワードのデータ長を有し、後半の５１２ワード（データ部と称する）が１マクロブロック分の画像データを格納する領域に割り当てられている。前半の６４ワード（ヘッダ部と称する）は、先頭に上述のマクロブロックのアドレス情報が格納され、その他の部分は、後段の各部にて埋め込まれるデータやフラグなどのため空き領域とされる。
ＭＰＥＧで扱うマクロブロックは、１６画素×１６ラインのマトリク


【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
スである。一方、この入力フィールドアクティビティ平均化処理部１０３Ａでは、第１６図Ａおよび第１６図Ｂを用いて後述するように、第１フィールドだけによるアクティビティを求める処理を行う。そのため、第１フィールドの８ラインまでがメインメモリ２０３に格納された時点で処理を開始することができる。なお、実際には、タイミングジェネレータＴＧ２２０からの指令にて処理が適切に開始される。
サブブロック化部２３０では、ラスタスキャン／ブロックスキャン変換部２０４から供給された１フィールド分のマクロブロックをサブブロックに細分化する。第１６図Ａおよび第１６図Ｂは、このサブブロック化部２３０によるマクロブロックの細分化の一例の処理を示す。ラスタスキャン／ブロックスキャン変換部２０４から供給されたマクロブロックは、第１６図Ａに一例が示されるように、８画素×８ラインのＤＣＴブロック４個からなる。また、入力フィールドアクティビティ平均化処理部１０３Ａでは、第１フィールドだけを用いて平均アクティビティを求めるため、実際には、斜線で塗り潰された第２フィールドのラインのデータは、存在しない。
この１６画素×１６ラインのマクロブロックを、第１６図Ｂの左側に示されるように、４画素×４ラインのサブブロックに細分化する。最終的には、第１６図Ｂの右側に示されるように、第１フィールドのデータだけからなる４画素×２ラインのサブブロックが１６個、形成される。
サブブロック部２３０の出力は、アクティビティ部２０５に供給される。アクティビティ部２０５では、サブブロック単位で供給されたデータに基づき、第１フィールドにおけるマクロブロック毎のアクティビティｆｉｅｌｄ＿ａｃｔが求められる。先ず、式（７）により、４画素×２ラインのサブブロック毎に、サブブロック内の画素について、輝度レベルＹｋの平均値Ｐが求められる。


【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
2002080574.tif 000058
次に、４画素×２ラインのサブブロック毎に、式（８）のようにして、サブブロック内の画素毎の輝度レベルＹｋと平均値Ｐとの差分値の絶対値が求められ、さらに、求められた差分の絶対値の、サブブロック内での平均差分値ｖａｒ＿ｓｂｌｋが求められる。
2002080574.tif 000059
１マクロブロックは、１６個のサブブロックから構成されるので、サブブロック毎に得られた１６個の平均差分値ｖａｒ＿ｓｂｌｋの中から最小値が選択される（式（９））。選択された平均差分値ｖａｒ＿ｓｂｌｋが第１フィールドのデータによる当該マクロブロックのアクティビティｆｉｅｌｄ＿ａｃｔとされる。
2002080574.tif 000060
こうして得られたマクロブロックの第１フィールドだけによるアクティビティｆｉｅｌｄ＿ａｃｔは、平均化部２０６に供給され、１フィールド分が積算され、アクティビティｆｉｅｌｄ＿ａｃｔの平均値（平均アクティビティ）ａｖｇ＿ａｃｔが求められる（式（１０））。なお、式（１０）において、ＭＢｎｕｍは、１フレームにおけるマクロブロックの総数を示す。
2002080574.tif 000061
平均値ａｖｇ＿ａｃｔは、後述するプリエンコード処理部１０３Ｂの正規化部２３３に供給される。詳細は後述するが、正規化部２３３では、平均値ａｖｇ＿ａｃｔを用いて、マクロブロック毎に、アクティビティの正規化を行う。正規化部２３３では、第１および第２フィールドの平均値ａｖｇ＿ａｃｔを共に用いて正規化処理が行われる。したがって、第１フィールドにおけるアクティビティの平均値ａｖｇ＿ａｃｔが判明した後、その平均値を用いて、適応量子化を考慮したプリエンコード処理を行うことが可能となる。


【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
ロブロックの第１および第２フィールドを用いたアクティビティａｃｔとされる。
2002080574.tif 000062
こうして得られたマクロブロックのアクティビティａｃｔは、第９図Ｃに示されるように、ストリームのヘッダ部に埋め込まれ、マクロブロックのデータと共に正規化部２３３に供給される。正規化部２３３では、マクロブロックのアクティビティａｃｔと上述した平均化部２０６から得られるフィールドアクティビティの平均値ａｖｇ＿ａｃｔとを用いて、正規化アクティビティＮａｃｔが求められる。
正規化アクティビティＮａｃｔは、例えば、マクロブロックのアクティビティａｃｔとフィールドアクティビティの平均値ａｖｇ＿ａｃｔとから、「２．０」〜「０．５」の範囲の値をとるように、次式（１４）で求めることができる。
2002080574.tif 000063
正規化アクティビティＮａｃｔは、正規化アクティビティデータｎｏｒｍ＿ａｃｔとして、第１０図Ａに示されるように、ストリーム中のヘッダ部に一時的にフラグとして挿入され、後段に伝えられる。なお、上述のアクティビティａｃｔは、ストリーム中で、正規化アクティビティデータｎｏｒｍ＿ａｃｔに上書きされる。
正規化部２３３の出力は、ＤＣＴ部２１０Ａに供給される。ＤＣＴ部２１０Ａでは、供給されたマクロブロックを８画素×８ラインからなるＤＣＴブロックに分割し、ＤＣＴブロックに対して２次元ＤＣＴが行われ、ＤＣＴ係数が生成される。ＤＣＴ係数は、第１０図Ｂに示されるように、ストリームのデータ部に格納され、量子化テーブル部２１１Ａに供給される。
量子化テーブル部２１１Ａでは、ＤＣＴ部２１０Ａで変換されたＤＣ


【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
ち何れを用いて符号化するかが決められる。このとき、既にＤＣＴモード部２０８において符号化モードが決められ、その結果がＤＣＴタイプデータｄｃｔ＿ｔｙｐとしてストリーム中に一時的に挿入されている（第１３図Ａ参照）。ＤＣＴモード部２１６では、ストリームからこのＤＣＴタイプデータｄｃｔ＿ｔｙｐを検出し、検出されたＤＣＴタイプデータｄｃｔ＿ｔｙｐに基づきフィールド符号化モードおよびフレーム符号化モードを切り換える。ＤＣＴモード部２１６の出力を第１３図Ｂに示す。
ＤＣＴモード部２１６から出力されたマクロブロックは、ＤＣＴ部２１０Ｂに供給され、上述のＤＣＴ部２１０Ａと同様にして８画素×８ラインのＤＣＴブロック単位で２次元ＤＣＴされる。２次元ＤＣＴされたＤＣＴ係数は、第１３図Ｃに示されるように、ストリーム中のデータ部に格納されて、ＤＣＴ部２１０Ｂから出力される。
量子化テーブル部２１１Ｂは、上述の量子化テーブル部２１１Ａと同様に構成することができ、ＤＣＴ部２１０Ｂで変換されたＤＣＴ係数に対して量子化マトリクスによる量子化が行われる。量子化テーブル部２１１Ｂで量子化されたＤＣＴ係数は、第１４図Ａに示されるように、ストリーム中のデータ部に格納されてレートコントロール部２１７に供給される。
レートコントロール部２１７では、上述したプリエンコード処理部１０３Ｂにおいて積算部Σ２１５、２１５、・・・で得られた、各量子化スケールＱｎ毎のフレームデータレートの中から、システムコントローラ１１７により設定される１フレーム当たりの最大発生符号量を超えないもので、且つ、最も設定値に近いものが選択される。そして、選択されたフレームデータレートに対応する量子化器において用いられたマクロブロック毎の量子化スケール（ｍｑｕａｎｔ）が、ストリーム中に挿入された正規化アクティビティデータｎｏｒｍ＿ａｃｔから再度求められ、量子化部２１


【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
ステップＳ３では、第１フィールドのビデオデータがラスタスキャンからブロックスキャンへと変換され、マクロブロックが切り出される。これは、例えばメモリに格納されたビデオデータを読み出す際の読み出しアドレスを制御することでなされる。ステップＳ４で、切り出されたマクロブロックが細分化され、４画素×２ラインのサブブロックとされる。
ステップＳ５では、サブブロックに細分化されたビデオデータを用いて第１フィールドによるアクティビティａｃｔが計算される。すなわち、上述したように、４画素×２ラインのサブブロック毎に輝度レベル値Ｙｋの平均値Ｐが求められ、さらに輝度レベルＹｋ値と平均値Ｐとの差分の絶対値が求められ、差分の絶対値から当該サブブロックの輝度レベル値Ｙｋの平均差分値ｖａｒ＿ｓｂｌｋが求められる。そして、１マクロブロック内で最小となる平均差分値ｖａｒ＿ｓｂｌｋが当該マクロブロックのアクティビティａｃｔとして選択される。
ステップＳ５で求められたアクティビティＡｃｔｉｂｉｔｙ（ａｃｔ）がステップＳ６で積算され、積算値ｓｕｍとしてメモリに格納される。これらステップＳ３〜Ｓ６までの処理は、ステップＳ７において第１フィールドの最終マクロブロックの処理が終了したと判断されるまで繰り返される。すなわち、積算値ｓｕｍは、１フィールド分のマクロブロックのアクティビティの合計となる。
ステップＳ７において１フィールドの最終マクロブロックまで処理が終了したと判断されたら、ステップＳ８で、メモリに格納された積算値ｓｕｍが１フィールド分のマクロブロック数で除され、１フィールド分のアクティビティが平均化されたフィールドアクティビティの平均値Ａｃｔｉｂｉｔｙ（ａｖｇ＿ａｃｔ）が求められ、メモリに格納される。
フィールドアクティビティの平均値Ａｃｔｉｂｉｔｙ（ａｖｇ＿ａｃｔ）が求められる


【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
ｐに基づきＤＣＴ符号化モードが設定される。
ステップＳ３３では、ステップＳ３１でビデオデータから切り出されたマクロブロックが８画素×８ラインからなるＤＣＴブロックに分割され、このＤＣＴブロックに対して２次元ＤＣＴが行われる。２次元ＤＣＴによりＤＣＴブロックが変換されたＤＣＴ係数は、ステップＳ３４で量子化テーブル（ｑｕａｎｔｉｚｅｒ＿ｔａｂｌｅ）による量子化がなされ、処理はステップＳ３５に移行される。
ステップＳ３５では、上述したステップＳ１１〜Ｓ２２において見積もられた、量子化スケールＱｎ毎の１フレーム分の発生符号量に基づき、実際のエンコード処理において発生される符号量の制御を行うために、後述するステップＳ３６で用いられる量子化スケールＱｎがマクロブロック毎に設定される。
そして、処理はステップＳ３６に移行され、ステップＳ３５で設定された量子化スケールＱｎを用いて、ステップＳ３４で量子化テーブルを用いて量子化されたＤＣＴ係数の量子化が行われる。ステップＳ３６で量子化されたＤＣＴ係数は、次のステップＳ３７でＶＬＣテーブルが参照され可変長符号化される。そして、ステップＳ３８で１フレームの最終マクロブロックまで処理が行われたか否かが判断され、１フレームの最終マクロブロックまで処理されていないと判断されれば、処理がステップＳ３１に戻され、次のマクロブロックに対する量子化処理および可変長符号化処理が行われる。一方、ステップＳ３８で、１フレームの最終マクロブロックまで処理が行われたと判断されれば、１フレーム分のエンコード処理が終了したとされる。
なお、上述では、ステップＳ１１〜Ｓ２２までのプリエンコード処理と、ステップＳ３１〜Ｓ３８までのエンコード処理とを別々の処理として説明したが、これはこの例に限定されない。例えば、ステップＳ１１


【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】第８図Ｃ
【補正方法】変更
【補正の内容】
【図８Ｃ】
2002080574.tif 000064
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】第１０図Ａ
【補正方法】変更
【補正の内容】
【図１０Ａ】
2002080574.tif 000065
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】第１０図Ｂ
【補正方法】変更
【補正の内容】
【図１０Ｂ】
2002080574.tif 000066
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】第１０図Ｃ
【補正方法】変更
【補正の内容】
【図１０Ｃ】
2002080574.tif 000067
【手続補正１６】
【補正対象書類名】図面
【補正対象項目名】第１１図Ａ
【補正方法】変更
【補正の内容】
【図１１Ａ】
2002080574.tif 000068
【手続補正１７】
【補正対象書類名】図面
【補正対象項目名】第１１図Ｂ
【補正方法】変更
【補正の内容】
【図１１Ｂ】
2002080574.tif 000069
【手続補正１８】
【補正対象書類名】図面
【補正対象項目名】第１２図Ａ
【補正方法】変更
【補正の内容】
【図１２Ａ】
2002080574.tif 000070
【手続補正１９】
【補正対象書類名】図面
【補正対象項目名】第１２図Ｂ
【補正方法】変更
【補正の内容】
【図１２Ｂ】
2002080574.tif 000071
【手続補正２０】
【補正対象書類名】図面
【補正対象項目名】第１３図Ａ
【補正方法】変更
【補正の内容】
【図１３Ａ】
2002080574.tif 000072
【手続補正２１】
【補正対象書類名】図面
【補正対象項目名】第１３図Ｂ
【補正方法】変更
【補正の内容】
【図１３Ｂ】
2002080574.tif 000073
【手続補正２２】
【補正対象書類名】図面
【補正対象項目名】第１３図Ｃ
【補正方法】変更
【補正の内容】
【図１３Ｃ】
2002080574.tif 000074
【手続補正２３】
【補正対象書類名】図面
【補正対象項目名】第１４図Ａ
【補正方法】変更
【補正の内容】
【図１４Ａ】
2002080574.tif 000075
【手続補正２４】
【補正対象書類名】図面
【補正対象項目名】第１４図Ｂ
【補正方法】変更
【補正の内容】
【図１４Ｂ】
2002080574.tif 000076
【手続補正２５】
【補正対象書類名】図面
【補正対象項目名】第１４図Ｃ
【補正方法】変更
【補正の内容】
【図１４Ｃ】
2002080574.tif 000077
【国際調査報告】
2002080574.tif 000078
2002080574.tif 000079