JP4564599B2 - Method and apparatus for improved video coding using a zero block predictor module - Google Patents
Method and apparatus for improved video coding using a zero block predictor module Download PDFInfo
- Publication number
- JP4564599B2 JP4564599B2 JP1153097A JP1153097A JP4564599B2 JP 4564599 B2 JP4564599 B2 JP 4564599B2 JP 1153097 A JP1153097 A JP 1153097A JP 1153097 A JP1153097 A JP 1153097A JP 4564599 B2 JP4564599 B2 JP 4564599B2
- Authority
- JP
- Japan
- Prior art keywords
- module
- block
- signal
- motion compensation
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Color Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、一般的に、画像処理に関し、より詳細には、ビデオデータの改良したエンコーディングのための方法およびシステムに関する。
【0002】
【従来の技術】
画像圧縮および圧縮解除は、ビデオ会議システム、ビデオ電話および映画伝送を含む広範囲の応用において使用されている。これら応用における従来の手法はビデオコーディングすなわち画像圧縮および圧縮解除のための専用のハードウェアを用いることであった。ビデオコーディング処理は計算を行う上で高価となり、一般的な目的のすなわち汎用のハードウェアでは低速であるために、専用のハードウェア、典型的にはデジタル信号処理器(DSP)を使用する必要がある。
この結果、これら応用を広げて使用することは、良好な性能を得るために必要とする特殊なハードウェアを有効に利用することに関連したコストにより阻止されていた。しかしながら、これら応用、特にビデオ会議は、次の数年でデスクトップの必需的なものとなるであろうと予測されている。ビデオコーダおよびビデオコーディング処理にとっての改良はこの予想を実現させるために必要である。
【0003】
1秒当たり28Kビットといった極めて低いビット速度でのビデオコーディングおよびエンコーディングのための国際電気通信連合(ITU)規準H.263(以下、ITU・H.263規準という)に従ったビデオコーディング処理を示す図が図1に示されている。
【0004】
図1に示されるビデオエンコーダはカラー変換モジュール12と、動き検出器モジュール14と、動き補償モジュール16と、変換モジュール18と、量子化モジュール20と、コーディングモジュール22とを含んでいる。更に、フィードバックモジュール24も含まれており、これは逆量子化モジュール30と、逆変換モジュール28と、フレーム再構成モジュール26とを含んでいる。
【0005】
図2に示されるようなビデオデコーダはビデオコーダと逆の処理を行い、ビットストリームデコーディングモジュール40と、逆量子化モジュール30と、逆変換モジュール28と、逆動き補償モジュール42と、フレーム再構成モジュール26とを含んでいる。
【0006】
ビデオコーディング処理において、動き補償モジュール16によって行われる動き補償は最も時間がかかる動作段階である。それぞれ変換モジュール18および量子化モジュール20によって行われる変換および量子化動作段階もそれを実行するのに高価となる動作段階である。
【0007】
しかしながら、2年毎にプロセッサの速度が倍加する実情をもってすれば、良好な性能および品位を得、デスクトップコンピュータの環境で画像処理を必需的な事項とするのに充分なビデオ処理を必要とする応用に関連したコストを低下することをソフトウェアだけで解決することを可能とする。
【0008】
種々の段階の計算上の要求に打ち勝つようにするために、従来技術のシステムのビデオ処理の応用は種々の計算を行う上で高価格となる段階をより高速で実行させるために専用のDSPを用いる。専用のハードウェアを使用することは現在のビデオ会議システムを弱体化してしまう。ビデオコーディングの規準が変化しかつ発展している際に新たなハードウェアを設計することは高価で、時間のかかるものとなってしまい、更に得られるシステムのコストを実質的に増大させてしまう。専用のハードウェアに関連した大きなコストは、デスクトップの必需品となる画像処理の応用に対する障壁を与えるばかりでなく、それらはまたオープンシステムを使用するハードウェア/ソフトウェア解決法の最近の風潮に反することにもなる。
【0009】
【発明が解決しようとする課題】
従って、現在のビデオ処理の応用の構成化の制限および弱点を打ち負かす方法およびシステムが必要となる。特に、従来技術のものよりも計算的により効率的であり、かつ低コストの一般目的のすなわち汎用のDSPを用いる構成化すなわちソフトウェア単独での解決法を可能とするビデオエンコーディングのための方法およびシステムを必要とする。
【0010】
【課題を解決するための手段】
本発明は、低コストの一般目的のDSPで、あるいは許容できる性能を得るために一般目的のマイクロプロセッサによるソフトウェア単独の解決法として構成され得るビデオコーディング処理を含んでいる。本発明は全体のビデオコーディング処理を変更し、全体のビデオコーディング計算時間を減少させるその最適化の機能を増大させ、それにより低コストのDSPの解決法あるいはソフトウェアだけの解決法を使用できるようにする。この両者により今日のデスクトップCPUで許容できる性能が可能となる。
【0011】
本発明の1つの特徴は動き検出段階の最適化を含んでいる。
本発明の他の特徴は動き補償段階の最適化を含んでいる。
本発明の更に他の特徴はゼロブロック予測段階を加えることを含んでいる。
本発明のこれらおよび他の特徴は、添付図面を参照することにより、本発明の以下の詳細な記載から当業者にとって明白となるであろう。
【0012】
【発明の実施の形態】
図3に示されるような本発明によるビデオコーダは図1に示される従来技術のビデオコーダおよびビデオコーディング処理に対する幾つかの改良を含んでいる。図3に示されるような本発明によるビデオコーダでの改良は、従来技術のビデオコーダおよびビデオコーディング処理に対する向上した性能を与える。本発明によるビデオコーダおよびビデオコーディング処理はビデオコーディング技術を用いる任意の応用において有用であると考えられる。
【0013】
本発明はペンテアム処理器を含んだワークステーションでマイクロソフトのビジュアルC++コンパイラを用いるC++で構成される。しかしながら、他の言語およびハードウェア構成も当業者にとって明かであると考えられる。
【0014】
本発明によるビデオコーダの全体の構成が図3に示されている。上で述べたように、動き補償段階および変換段階は典型的なビデオコーディング処理でとりわけ時間がかかる段階である。本発明は、変更された動き検出器モジュール50によって行われるような動き検出段階に対する改良を与える。本発明によるこの動き検出器モジュール50は、変更された動き補償モジュール52によって行われる動き補償段階をバイパスすべきかどうかを決定する。この変更された動き補償モジュール52は、また、従来技術の動き補償モジュール16のものに対する動き補償段階についての改良を含んでいる。
【0015】
本発明によるビデオコーディング処理は、また、ゼロブロック予測モジュール54によって行われるゼロブロック予測段階を付加することを含んでいる。このゼロブロック予測器モジュール54は変換および量子化段階をバイパスするかどうかを決定する。これら特徴のそれぞれを以下に詳細に説明する。
【0016】
本発明の図3に示された実施例に加えて、従来技術のビデオコーダに対する改良を同様与える他の実施例も可能であると考えられる。本発明によるビデオコーダの1つの他の実施例が図4に示されており、これは変更された動き補償モジュール52を含んでいる。図5は本発明によるビデオコーダの更に他の実施例を示し、これは変更された動き検出器モジュール50とゼロブロック予測器モジュール54とを含んでいる。
【0017】
図3に示されるビデオエンコーダの動作は図6に示されている。ブロック60で、カラー変換モジュール12は51でのビデオ画像信号入力からデータ信号を発生する。次いで、このデータ信号はブロック62で示されるように変更された動き検出器モジュール50に入力され、この動き検出器モジュール50は、与えられた画像に動きが検出されたかどうかを決定する。決定ブロック64で、動きが決定されたら、変更された動き補償モジュール52は、ブロック66で示されるように、その動きを補償し、ブロック68での動作が続く。決定ブロック64で、動きが決定されなかったら、変更された動き補償モジュール52によって行われる動き補償段階はバイパスされ、ブロック68での動作が続く。
【0018】
ブロック68で、ゼロブロック予測器モジュール54は、それぞれ変換モジュール18および量子化モジュール20によってなされる変換および量子化段階の後にデータ信号の現在処理しているマクロブロックがゼロ値のマクロブロックを発生するかどうかを決定する。決定ブロック70で、ゼロ値のマクロブロックが予測される場合に、変換および量子化段階はバイパスされ、ブロック78での動作が続く。
【0019】
決定ブロック70で、ゼロ値のマクロブロックが予測されなければ、ブロック72での動作が続き、データ信号が変換モジュール18によって変換される。本発明において、変換モジュール18は個別のコサイン変換を行うが、他の変換が行われてもよいことが考えられる。次いで、変換されたデータ信号はブロック74において量子化モジュール20によって量子化される。ブロック76で、現在処理されている画像のデータ信号は補間画像を発生するために使用され、この補間画像はブロック66での変更された動き補償モジュール52にフィードバックされる。
【0020】
ブロック74で発生された量子化されたデータ信号は、本発明のビデオコーダを組み込んでいるかあるいはそれを使用する応用によって更に処理するためブロック78でエンコードされる。
【0021】
変更された動き検出モジュール50によって行われる動き検出段階(この動作は図7において詳細に示されている)において、現在処理している画像のマクロブロックは動きあるいは静止のいずれかとして分類される。これらマクロブロックを分類するために、変更された動き検出モジュール50はマクロブロックが所定の動き基準に基づいて動きがあったかどうかを決定する。次いで、変更された動き検出器ブロック50は、上記所定の動き基準を使用して、現在処理しているマクロブロックと前の画像の同一位置にあるマクロブロックとを比較し、現在処理しているマクロブロックが現在の画像にある際にフィードバックモジュール24によって補間画像が発生される。
【0022】
現在処理している画像のマクロブロックと前の画像の同一位置のマクロブロックとの間のピクセル対ピクセル絶対差が計算される。現在処理している画像のピクセルと前の画像の同一位置でのピクセルとの間の差が所定のスレッショルド以上であるならば、そのピクセルはそのマクロブロック内で動きがあるものとして分類される。動きがあるものとして分類されたピクセルの数が第2の所定のスレッショルド以上であるならば、マクロブロックは動きがあるものとして分類され、そうでなければマクロブロックは静止のものとして分類される。マクロブロックが静止のものであれば、動き補償動作段階は完全にスキップされ、図6に示されるような計算が続く。
【0023】
図7に戻り、決定ブロック110で、変更された動き検出器モジュール50が現在の画像を表す第1のフレームのデータのマクロブロックを処理しているならば(すなわち、それがINTRAコード化ブロックであるならば)、そのマクロブロックはブロック134で静止のものとして分類され、この変更された検出器モジュール50による処理は終了する。決定ブロック110で、現在のマクロブロックが処理されている第1のマクロブロックでないとされるならば、カウンタおよび最大データ信号指示器が始動されるようなブロック112での動作が続けられる。次いで、現在処理しているマクロブロックの第1のピクセルが補充されるようなブロック114での動作が続く。
【0024】
決定ブロック116で、現在処理しているマクロブロックでの現在のピクセルの信号値が最大データ信号指示器の現在値よりも大であるとされれば、最大データ信号指示器の値はブロック118でその信号値と置き換えられ、ブロック120での動作が続く。決定ブロック116で、現在のピクセルの信号値が最大データ信号指示器の現在の値よりも大きくはないとされる場合には、ブロック120での動作が続き、変更された動き検出器モジュール50は現在のピクセルの信号値と前の画像の同一位置でのピクセルの信号値との間の差を決定する。
【0025】
決定ブロック122で、その差が上記第1の所定のスレッショルドよりも大とされれば、ブロック124でカウンタが進められ、決定ブロック126での動作が続く。決定ブロック122で、その差が上記第1のスレッショルドよりも大きくないとされれば、同様決定ブロック126での動作が続き、現在処理しているマクロブロックに一層のピクセルが存在すれば、ブロック128で次のピクセルが補充され、決定ブロック116での動作が続く。決定ブロック126で、現在のマクロブロックの全てのピクセルが処理されたら、カウンタが上記第2の所定のスレッショルド以上であるかどうかについての決定が決定ブロック130でなされる。
【0026】
決定ブロック130で、カウンタが上記第2の所定のスレッショルド以上であるならば、マクロブロックはブロック132で動きがあるものとして分類される。決定ブロック130で、カウンタが上記第2の所定のスレッショルドより大きくなければ、マクロブロックはブロック134で静止のものとして分類される。次いで、変更された動き検出器モジュール50の動作は停止する。
【0027】
図6に戻り、決定ブロック64で示されるように、変更された動き検出器モジュール50が現在のマクロブロックを動きがあるものとして分類すれば、変更された動き補償モジュール52によって行われる動き補償段階はバイパスされない。この変更された動き補償モジュール52は図8に示されるように動作する。
【0028】
従来技術のビデオコーダの動き補償モジュール16および本発明による変更された動き補償モジュール52は共に前の画像の最適な整合マクロブロックを見つけるためにサーチプロシージャを用いており、次いで共に与えられた画像の補間されたものの最適な整合マクロブロックの周りを半ペルサーチ(half−pel search)を行う。従来技術のビデオコーダの動き補償モジュール16において全サーチブロック整合プロシージャが使用される場合には、動き補償動作段階はビデオコーディング処理の他の動作段階よりも桁違いに高価となる(付加的および倍数的に)。従って、この動き補償段階の複雑性を減少するために、本発明の変更された動き補償モジュールは幾つかの改良を含んでいる。
【0029】
図8のブロック80で示されるように、変更された動き補償モジュール52は、最初に、現在処理しているマクロブロックが現在の画像中に存在する際に、前の画像の同一位置にある前の画像からマクロブロックを補充する。次いで、この変更された動き補償モジュール52は、ブロック82で、前の画像からの補充されたマクロブロックと現在の画像の現在処理しているマクロブロックとの間の絶対差の和を決定する。
【0030】
決定ブロック84で、現在処理している画像のマクロブロックと前の画像の同一位置でのマクロブロックとの間の絶対差の和がある所定のスレッショルド以下であるとされる場合には、これ以上のサーチは行われず、前の画像の補充されたマクロブロックが最適な整合ブロックとして選択されるようなブロック92での処理が続く。
【0031】
決定ブロック84で、その和が所定のスレッショルド以上とされる場合には、前の画像の補充されたマクロブロックの中央の周りの8つの近傍する点が決定されるようなブロック86の処理が続く。次いで、変更された動き補償モジュール52は、ブロック88において、現在処理しているマクロブロックおよび8つの近傍する点の1つの周りに中央決めされた前の画像の各マクロブロックのピクセル間の絶対差の和を決定する。
【0032】
本発明の動き補償モジュール52によって使用されるブロック整合のためのこの中央バイアス直交サーチアルゴリズム(C−OSA)はIEEE会報ICASSSP、1987年、25.4.1−25.4.4頁で発表されているA.Puri等による「動き補償コーディングのための効果的なブロック整合アルゴリズム」と題する文献に記載されている直交サーチアルゴリズム(OSA)の最適化である。本発明での変更された動き補償モジュール52に使用されるC−OSAは、前の画像の補充されたマクロブロックでのサーチ点の周りに中央決めされた8つの近傍する点の組(各方向で対角線に沿った+あるいは−の1つのピクセル)での迅速なサーチを行う。
【0033】
本発明の変更された動き補償モジュール52で使用される中央バイアスサーチプロシージャにおいて、決定ブロック90で、最良の整合が中央にて生じたとされると、これ以上のサーチは行われず、その最良の整合点の周りに中央決めされたマクロブロックが選択されるようなブロック92の処理が続く。しかしながら、決定ブロック90で、最良の整合が8つの近傍する点の中の1つで生じたとされるならば、決定ブロック94での処理が続く。
【0034】
決定ブロック94で、最良の整合が直交点{中央点からのいずれかの方向の+あるいは−のpピクセル(pは7に等しい)となる点、すなわち対角線に沿った点の1つではない}とされるならば、本発明の変更された動き補償モジュールによって行われるサーチプロシージャはPuri等の上記文献に記載されるOSAプロシージャの場合のように続く。しかしながら、決定ブロック94で、最良の整合が8つの近傍する点の1つ以外で生じるとされれば、新たな組の8つの近傍する点が中央点としてその最良の整合点を有するものとして選択される。この新たな組の8つの近傍する点の中での最良の整合は結果としてブロック100に戻される。新たな組の8つの近傍する点において、8つ全ての点が再計算される必要はないことに留意されたい。そのあるものは前に既に計算されているからである。
【0035】
この変更された動き補償モジュール52によって行われる手法は、典型的にはビデオ会議への応用といった継続した画像間での動きが比較的小さい場合のような画像の動き補償に好適であることに留意されたい。本発明の変更された動き補償モジュール52によって使用されるC−OSAプロシージャは極めて小さなサーチ域での最適な整合ブロックを見い出す迅速な試験を含んでいる。最悪の場合に、本発明の変更された動き補償モジュール52はさほど複雑ではなく良好な結果をもたらす完全な直交サーチを行う。本発明の変更された動き補償モジュール52で使用されるC−OSAの複雑さは16+4log2w(ここで、wはピクセルのサーチ距離であり、典型的にはプラスあるいはマイナス15ピクセルである)である。
【0036】
最後に、ブロック102で示されるように、本発明の変更された動き補償モジュール52は半ペル動き補償サーチにPuri等による上記文献に記載されたOSAプロシージャを与える。この半ペルサーチは全ての方向のおよび対角線に沿ったプラスあるいはマイナス1ピクセルのサーチ域での補間された画像に行われる。驚くべきことに、これは、上に記載した全ペルサーチが既に全く効果的であるため、変更された動き補償モジュール52によって使用される全動き補償時間の相当部分を越える時間を必要とした。Puri等による上記の文献に記載されたOSAプロシージャを半ペルサーチに適用することは、サーチ点の数を相当に減少する。また、境界のブロックのためのサーチ域は、その一部が画像限界内に存在しないため一層小さくなり、これは計算時間の節約を与えることにもなる。
【0037】
変更された動き補償モジュール52によってそれぞれ全ペルおよび半ペルサーチに与えられるC−OSAおよびOSAプロシージャから得られる結果として、画像品位の顕著な劣化がない全数サーチに密に近付き、全数サーチに比較して桁違いに動き補償を高速化する結果が得られた。「ミスアメリカ」の画像を含んだ幾つかのITU・H.263規準試験画像に関して、動き補償は、信号対ノイズ比が0.1dB以下の減少の状態で、全計算時間の12%以下でなされる。
【0038】
図6に戻り、典型的な画像シーケンスで、例えば、ITU試験画像シーケンスで、30%以下のINTERコード化ブロックが74での量子化段階の後に非ゼロ値を持ったが、全てのブロックが72での高価な変換段階を通る必要はなかった。更にまた、非ゼロ値のブロックは1つだけあるいは2つの非ゼロ係数を持った。この結果を利用するため、ゼロブロック予測器モジュール54によって行われる70でのゼロブロック予測段階が66での動き補償段階の後に含まれる。
【0039】
上述したような変更された動き検出器モジュール50はマクロブロックを動きがあるものあるいは静止のもののいずれかとして分類する。変更された動き検出器モジュール50は、また、最大信号値および全体のマクロブロックにおける静止ピクセルの数を記録する。処理の進みとして変化する量子化値に基づいて、この情報は、変換および量子化段階の後にマクロブロックが全てのゼロ値を有するかどうかを決定するかあるいは予測するようにゼロブロック予測器モジュール50によって使用される。ゼロ値のブロックが予測されたら、それぞれ72および74での変換および量子化段階がスキップされ、ゼロ値のブロックが発生される。
【0040】
ゼロブロック予測器モジュール54の動作は図9に示されている。ブロック140で、予測は「なし」に設定される。決定ブロック142で、第1のフレーム内のマクロブロックが処理されているとされれば、ゼロブロック予測器モジュール54での処理は終了する。そうでなければ、ブロック144で、ゼロブロック予測器モジュール54は、現在のマクロブロックが変換および量子化段階の後にゼロ値ブロックを発生するかどうかを決定するために、最大信号値と静止ピクセルの数と現在の量子化値とを用いて発見的事項を与える。決定ブロック146で、ゼロ値のブロックが予測されると、ブロック148で予測が「あり」に設定され、ゼロブロック予測器モジュール54での処理が終了する。
【0041】
ゼロブロック予測器モジュール54によって使用される発見的事項はINTERコード化ブロックに与えられるだけである。平均的には、これはブロックの約30%が変換および量子化段階を通ることからの節約を行う。しかしながら、ゼロブロック予測器モジュール54によって使用される発見的事項が保存性があるために、ゼロ値のブロックを持っていたであろう40%のブロックが高価な変換および量子化段階を通ったことになる。しかしながら、ゼロブロック予測器モジュール54によってゼロ値のブロックとして予測されるブロックの部分は使用される発見的事項が改善されるにつれ増大され得ることが考えられる。
【0042】
この最適化が行われる前に、変換および量子化段階は全処理時間の約30%を消費している。上記の最適化が与えられた後にこれは約18%まで減少した。この処理時間はゼロ値ブロックを予測する改善された発見的事項が与えられれば一層減少され得ると考えられる。本発明の全体のビデオコーディング処理はITU・H.263規準をビデオコーディング処理にわたり約5−6倍増大する。従って、本発明によるビデオコーディング処理は計算上より効率的であり、低コストのDSPあるいはソフトウェアだけの解決法を用いて構成化することが可能となる。
【0043】
本発明における記載された技術および概念は、特に、ビデオ会議システムによって使用されるビデオコーディング処理のために開発された。しかしながら、本発明は画像圧縮のためのビデオコーディング技術を用いるあらゆる応用に同様適用可能であると考えられる。
【0044】
本発明およびその長所が詳細に記載されたが、種々の変化、置換および変更が特許請求の範囲によって定められるような発明の精神および範囲から逸脱することなくなされることができることを理解すべきである。
【0045】
以上の説明に関して更に以下の項を開示する。
(1)ビデオエンコーダにおいて、
入力ビデオ信号を受け入れ、複数のピクセルを含んだ現在の画像を表す第1の組のデータ信号を発生するカラー変換モジュールと、
上記カラー変換モジュールに結合されており、上記第1の組のデータ信号に応じて、上記現在の画像を動きがあるものあるいは静止のものとして分類する分類信号を発生する動き検出器モジュールと、
上記動き検出器モジュールによって発生された上記分類信号およびフィードバックモジュールによって発生される前の画像を表す第2の組のデータ信号に応じて、中央バイアス直交サーチ技術を用いて上記現在の画像の動きを補償する変更された動き補償モジュールと、
上記変更された動き補償モジュールに応じて、上記第1の組のデータ信号からデジタル化したデータ信号を発生する計算モジュールと、
上記デジタル化したデータ信号に応じて、上記動き補償モジュールに入力するための上記第2の組のデータ信号を発生する上記フィードバックモジュールと、
上記デジタル化したデータ信号に応じて、エンコード化データ信号を発生するコーディングモジュールと、
を具備したことを特徴とするビデオエンコーダ。
【0046】
(2)ビデオエンコーダにおいて、
入力ビデオ信号を受け入れ、複数のピクセルを含んだ現在の画像を表す第1の組のデータ信号を発生するカラー変換モジュールと、
上記カラー変換モジュールに結合されており、上記第1の組のデータ信号に応じて、上記現在の画像を動きがあるものあるいは静止のものとして分類する分類信号と、最大値信号と、静止のものとして分類された上記ピクセルがどの位多いかを指示するカウンタ信号とを発生する動き検出器モジュールと、
上記動き検出器モジュールによって発生された上記分類信号およびフィードバックモジュールによって発生される前の画像を表す第2の組のデータ信号に応じて、上記現在の画像の動きを補償する変更された動き補償モジュールと、上記第1の組のデータ信号、上記最大値信号および上記カウンタ信号に応じて、上記第1の組のデータ信号についての計算が非ゼロデータを発生するかどうかを指示するゼロブロック信号を発生するゼロブロック予測器モジュールと、
上記ゼロブロック信号に応じて、上記第1の組のデータ信号からデジタル化したデータ信号を発生する計算モジュールと、
上記デジタル化したデータ信号に応じて、上記動き補償モジュールに入力するための上記第2の組のデータ信号を発生する上記フィードバックモジュールと、
上記デジタル化したデータ信号に応じて、エンコード化データ信号を発生するコーディングモジュールと、
を具備したことを特徴とするビデオエンコーダ。
【0047】
(3)ビデオエンコーダにおいて、
入力ビデオ信号を受け入れ、複数のピクセルを含んだ現在の画像を表す第1の組のデータ信号を発生するカラー変換モジュールと、
上記カラー変換モジュールに結合されており、上記第1の組のデータ信号に応じて、上記現在の画像を動きがあるものあるいは静止のものとして分類する分類信号と、最大値信号と、静止のものとして分類された上記ピクセルがどの位多いかを指示するカウンタ信号とを発生する変更された動き検出器モジュールと、
上記変更された動き検出器モジュールによって発生された上記分類信号およびフィードバックモジュールによって発生される前の画像を表す第2の組のデータ信号に応じて、中央バイアス直交サーチ技術を用いて上記現在の画像の動きを補償する変更された動き補償モジュールと、
上記第1の組のデータ信号、上記最大値信号および上記カウンタ信号に応じて、上記第1の組のデータ信号についての計算が非ゼロデータを発生するかどうかを指示するゼロブロック信号を発生するゼロブロック予測器モジュールと、
上記ゼロブロック信号に応じて、上記第1の組のデータ信号からデジタル化したデータ信号を発生する計算モジュールと、
上記圧縮されたデータ信号に応じて、上記動き補償モジュールに入力するための上記第2の組のデータ信号を発生する上記フィードバックモジュールと、
上記デジタル化したデータ信号に応じて、エンコード化データ信号を発生するコーディングモジュールと、
を具備したことを特徴とするビデオエンコーダ。
【0048】
(4)第3項記載のビデオエンコーダにおいて、上記変更された動き補償モジュールは上記中央バイアス直交サーチ技術に従って全ペルサーチを行うように動作可能であることを特徴とするビデオエンコーダ。
(5)第3項記載のビデオエンコーダにおいて、上記変更された動き補償モジュールは直交サーチ技術に従って半ペルサーチを行うように動作可能であることを特徴とするビデオエンコーダ。
(6)本発明は一般目的のDSPを用いてあるいは一般目的のマイクロプロセッサで実行可能なソフトウェアとして構成されるように最適化されるビデオエンコーダを含んでいる。本発明は現在処理している画像のブロックを動きがあるものあるいは静止のものとして分類する変更された動き検出器モジュール(50)を含んでいる。次いで、動きがあるものとして分類されたブロックは、ブロックを前に処理された画像と整合させるために中央バイアス直交サーチプロシージャを用いる変更された動き補償モジュール(52)によって処理される。ゼロブロック検出器モジュール(54)は、変換モジュール(18)および量子化モジュール(20)によって処理された後にブロックがゼロ値のブロックを発生するかどうかを決定する。ゼロ値のブロックが予測されれば、変換モジュール(18)および量子化モジュール(20)がバイパスされる。
【図面の簡単な説明】
【図1】従来技術のビデオエンコーダを示すブロック図である。
【図2】従来技術のビデオデコーダを示すブロック図である。
【図3】本発明によるビデオエンコーダの第1の実施例を示す。
【図4】本発明によるビデオエンコーダの第2の実施例を示す。
【図5】本発明によるビデオエンコーダの第3の実施例を示す。
【図6】本発明によるビデオエンコーダの動作を示す流れ図である。
【図7】本発明による変更された動き検出器モジュールの動作を示す流れ図である。
【図8】本発明による変更された動き補償モジュールの動作を示す流れ図である。
【図9】本発明によるゼロブロック予測器モジュールの動作を示すブロック図である。
【符号の説明】
50 変更された動き検出器モジュール
52 変更された動き補償モジュール
54 ゼロブロック予測器モジュール[0001]
BACKGROUND OF THE INVENTION
The present invention relates generally to image processing, and more particularly to a method and system for improved encoding of video data.
[0002]
[Prior art]
Image compression and decompression is used in a wide range of applications including video conferencing systems, video telephony and movie transmission. The traditional approach in these applications has been to use dedicated hardware for video coding or image compression and decompression. Video coding processes are computationally expensive and slow for general purpose or general purpose hardware, requiring the use of dedicated hardware, typically a digital signal processor (DSP). is there.
As a result, the widespread use of these applications has been hampered by the costs associated with effectively using the special hardware needed to achieve good performance. However, these applications, especially video conferencing, are expected to become a necessity for the desktop in the next few years. Improvements to the video coder and video coding process are necessary to realize this expectation.
[0003]
International Telecommunications Union (ITU) standard for video coding and encoding at very low bit rates, such as 28 Kbits per second. A diagram illustrating a video coding process according to H.263 (hereinafter referred to as ITU / H.263 standard) is shown in FIG.
[0004]
The video encoder shown in FIG. 1 includes a
[0005]
The video decoder as shown in FIG. 2 performs the reverse process of the video coder, and includes a
[0006]
In the video coding process, the motion compensation performed by the
[0007]
However, applications that require sufficient video processing to get good performance and quality and make image processing a necessity in a desktop computer environment, given the fact that the processor speed doubles every two years. It is possible to solve only the software to reduce the cost associated with the software.
[0008]
In order to overcome the computational requirements of the various stages, the video processing application of the prior art system requires a dedicated DSP to perform the expensive stages in performing the various calculations faster. Use. Using dedicated hardware weakens current video conferencing systems. Designing new hardware as video coding standards change and evolve is expensive and time consuming, and further substantially increases the cost of the resulting system. The large costs associated with dedicated hardware not only provide a barrier to image processing applications that are a necessity for desktops, but they also run counter to the recent trend of hardware / software solutions that use open systems. Also become.
[0009]
[Problems to be solved by the invention]
Therefore, there is a need for a method and system that overcomes the limitations and weaknesses of configuring current video processing applications. In particular, a method and system for video encoding that is computationally more efficient than that of the prior art and enables a low-cost general purpose or general-purpose DSP configuration or software-only solution Need.
[0010]
[Means for Solving the Problems]
The present invention includes a video coding process that can be configured with a low cost general purpose DSP or as a software-only solution with a general purpose microprocessor to obtain acceptable performance. The present invention modifies the overall video coding process and increases its optimization capability to reduce the overall video coding computation time so that a low cost DSP solution or a software only solution can be used. To do. Both of these allow for acceptable performance on today's desktop CPUs.
[0011]
One feature of the present invention includes optimization of the motion detection stage.
Other features of the invention include optimization of the motion compensation stage.
Yet another feature of the present invention includes adding a zero block prediction step.
These and other features of the present invention will become apparent to those skilled in the art from the following detailed description of the invention, with reference to the accompanying drawings.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
The video coder according to the present invention as shown in FIG. 3 includes several improvements over the prior art video coder and video coding process shown in FIG. Improvements in the video coder according to the invention as shown in FIG. 3 give improved performance over prior art video coders and video coding processes. The video coder and video coding process according to the present invention are considered useful in any application using video coding techniques.
[0013]
The present invention consists of a C ++ using a Microsoft Visual C ++ compiler on a workstation containing a Pentium processor. However, other languages and hardware configurations will be apparent to those skilled in the art.
[0014]
The overall structure of a video coder according to the present invention is shown in FIG. As mentioned above, the motion compensation and conversion stages are particularly time consuming stages in a typical video coding process. The present invention provides an improvement to the motion detection stage as performed by the modified
[0015]
The video coding process according to the present invention also includes adding a zero block prediction stage performed by the zero
[0016]
In addition to the embodiment of the present invention shown in FIG. 3, it is contemplated that other embodiments are possible that also provide improvements to the prior art video coder. One other embodiment of a video coder according to the present invention is shown in FIG. 4 and includes a modified
[0017]
The operation of the video encoder shown in FIG. 3 is shown in FIG. At
[0018]
At block 68, the zero
[0019]
At
[0020]
The quantized data signal generated at
[0021]
In the motion detection stage performed by the modified motion detection module 50 (this operation is shown in detail in FIG. 7), the currently processed image Macro block Are classified as either moving or stationary. these Macro block Modified
[0022]
Of the currently processed image Macro block And the same position in the previous image Macro block The pixel-to-pixel absolute difference between is calculated. If the difference between the pixel of the image currently being processed and the pixel at the same position in the previous image is greater than or equal to a predetermined threshold, the pixel Macro block Are classified as moving. If the number of pixels classified as having motion is greater than or equal to the second predetermined threshold, Macro block Is classified as moving, otherwise Macro block Are classified as stationary. Macro block If is stationary, the motion compensation phase is completely skipped and the calculation as shown in FIG. 6 continues.
[0023]
Returning to FIG. 7, at
[0024]
Currently processing at
[0025]
If at
[0026]
At
[0027]
Returning to FIG. 6, as indicated by
[0028]
Both the prior art video coder
[0029]
As indicated by
[0030]
At
[0031]
In
[0032]
This centrally biased orthogonal search algorithm (C-OSA) for block matching used by the
[0033]
In the central bias search procedure used in the modified
[0034]
At
[0035]
Note that the technique performed by this modified
[0036]
Finally, as indicated by
[0037]
The results obtained from the C-OSA and OSA procedures given to the full pel and half pel search, respectively, by the modified
[0038]
Returning to FIG. 6, in a typical image sequence, for example, in an ITU test image sequence, no more than 30% of INTER coded blocks had non-zero values after the quantization stage at 74, but all blocks had 72 There was no need to go through an expensive conversion step. Furthermore, the non-zero value block has only one or two non-zero coefficients. To take advantage of this result, a zero block prediction stage at 70 performed by the zero
[0039]
The modified
[0040]
The operation of the zero
[0041]
The heuristics used by the zero
[0042]
Before this optimization takes place, the transformation and quantization stage consumes about 30% of the total processing time. This was reduced to about 18% after the above optimization was given. It is believed that this processing time can be further reduced given an improved heuristic that predicts zero value blocks. The overall video coding process of the present invention is described in ITU H.264. The H.263 standard is increased about 5-6 times over the video coding process. Thus, the video coding process according to the present invention is computationally more efficient and can be configured using a low cost DSP or software-only solution.
[0043]
The described techniques and concepts in the present invention have been developed specifically for the video coding process used by video conferencing systems. However, it is believed that the present invention is equally applicable to any application that uses video coding techniques for image compression.
[0044]
Although the invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made without departing from the spirit and scope of the invention as defined by the claims. is there.
[0045]
The following items are further disclosed with respect to the above description.
(1) In the video encoder,
A color conversion module that accepts an input video signal and generates a first set of data signals representing a current image including a plurality of pixels;
A motion detector module coupled to the color conversion module and generating a classification signal for classifying the current image as moving or stationary according to the first set of data signals;
In response to the classification signal generated by the motion detector module and a second set of data signals representing the previous image generated by a feedback module, the current image motion is determined using a center bias orthogonal search technique. A modified motion compensation module to compensate; and
A calculation module for generating a digitized data signal from the first set of data signals in response to the modified motion compensation module;
The feedback module for generating the second set of data signals for input to the motion compensation module in response to the digitized data signal;
A coding module for generating an encoded data signal in response to the digitized data signal;
A video encoder comprising:
[0046]
(2) In the video encoder,
A color conversion module that accepts an input video signal and generates a first set of data signals representing a current image including a plurality of pixels;
A classification signal coupled to the color conversion module for classifying the current image as moving or stationary according to the first set of data signals; a maximum value signal; and a stationary signal A motion detector module that generates a counter signal indicating how many of the pixels classified as
A modified motion compensation module that compensates for motion of the current image in response to the classification signal generated by the motion detector module and a second set of data signals representing the previous image generated by a feedback module And, according to the first set of data signals, the maximum value signal, and the counter signal, a zero block signal that indicates whether the calculation for the first set of data signals generates non-zero data The generated zero block predictor module; and
A calculation module for generating a digitized data signal from the first set of data signals in response to the zero block signal;
The feedback module for generating the second set of data signals for input to the motion compensation module in response to the digitized data signal;
A coding module for generating an encoded data signal in response to the digitized data signal;
A video encoder comprising:
[0047]
(3) In the video encoder,
A color conversion module that accepts an input video signal and generates a first set of data signals representing a current image including a plurality of pixels;
A classification signal coupled to the color conversion module for classifying the current image as moving or stationary according to the first set of data signals; a maximum value signal; and a stationary signal A modified motion detector module that generates a counter signal indicating how many of the pixels classified as
In response to the classification signal generated by the modified motion detector module and a second set of data signals representing the previous image generated by a feedback module, the current image using a center bias orthogonal search technique A modified motion compensation module that compensates for the motion of
In response to the first set of data signals, the maximum value signal, and the counter signal, a zero block signal is generated that indicates whether the calculation for the first set of data signals generates non-zero data. A zero block predictor module;
A calculation module for generating a digitized data signal from the first set of data signals in response to the zero block signal;
The feedback module for generating the second set of data signals for input to the motion compensation module in response to the compressed data signals;
A coding module for generating an encoded data signal in response to the digitized data signal;
A video encoder comprising:
[0048]
(4) The video encoder according to item 3, wherein the changed motion compensation module is operable to perform a full pel search according to the central bias orthogonal search technique.
(5) The video encoder according to item 3, wherein the changed motion compensation module is operable to perform a half-pel search according to an orthogonal search technique.
(6) The present invention includes a video encoder that is optimized to be configured as software that can be executed using a general purpose DSP or in a general purpose microprocessor. The present invention includes a modified motion detector module (50) that classifies the currently processed block of images as moving or stationary. The blocks classified as having motion are then processed by a modified motion compensation module (52) that uses a central bias orthogonal search procedure to align the blocks with previously processed images. The zero block detector module (54) determines whether the block generates a zero-valued block after being processed by the transform module (18) and the quantization module (20). If a zero-valued block is predicted, the transform module (18) and quantization module (20) are bypassed.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a prior art video encoder.
FIG. 2 is a block diagram illustrating a prior art video decoder.
FIG. 3 shows a first embodiment of a video encoder according to the invention.
FIG. 4 shows a second embodiment of a video encoder according to the invention.
FIG. 5 shows a third embodiment of a video encoder according to the invention.
FIG. 6 is a flowchart showing the operation of the video encoder according to the present invention.
FIG. 7 is a flow diagram illustrating the operation of a modified motion detector module according to the present invention.
FIG. 8 is a flowchart illustrating the operation of a modified motion compensation module according to the present invention.
FIG. 9 is a block diagram illustrating the operation of a zero block predictor module according to the present invention.
[Explanation of symbols]
50 Modified motion detector module
52 Modified motion compensation module
54 Zero Block Predictor Module
Claims (5)
入力ビデオ信号を受け入れ、複数のピクセルを含んだ現在の画像を表す、マクロブロックなどの第1の組のデータ信号を発生するカラー変換モジュールと、
上記カラー変換モジュールに結合されており、上記第1の組のデータ信号に応じて、上記現在の画像を動きのあるものあるいは静止のものとして分類する分類信号、ピクセルの信号値が大であるとされる時に最大の信号値と置き換えられる最大値信号指示器、及び前記複数ピクセルのうちのいくつが静止のものとして分類されたかを示すカウンタを発生する変更された動き検出器モジュールと、
上記変更された動き検出器モジュールによって発生された上記分類信号およびフィードバックモジュールによって発生される前の画像を表す第2の組のデータ信号に応じて、上記現在の画像の動きを補償する変更された動き補償モジュールと、
上記最大値信号指示器、及び上記カウンタに応じて、上記第1の組のデータ信号についての計算がゼロ値データを発生するかどうかを指示するゼロブロック信号を発生するゼロブロック予測器モジュールと、
上記ゼロブロック信号に応じて、上記第1の組のデータ信号からデジタル化したデータ信号を発生する計算モジュールと、
上記デジタル化したデータ信号に応じて、上記動き補償モジュールに入力するための上記第2の組のデータ信号を発生する上記フィードバックモジュールと、
上記デジタル化したデータ信号に応じて、エンコード化データ信号を発生するコーディングモジュールと、
を具備したことを特徴とするビデオエンコーダ。In video encoder,
A color conversion module that accepts an input video signal and generates a first set of data signals, such as macroblocks, representing a current image including a plurality of pixels;
A classification signal that is coupled to the color conversion module and classifies the current image as moving or stationary according to the first set of data signals, and the pixel signal value is large A modified motion detector module that generates a maximum value signal indicator that is replaced with a maximum signal value when being done, and a counter that indicates how many of the plurality of pixels have been classified as stationary ;
In response to a second set of data signals representing an image before the upper Symbol Ru generated by the classification signal and the feedback module generated by the modified motion detector module, is changed to compensate for the motion of the current image A motion compensation module,
Upper Symbol maximum value signal indicator, and in response to the counter, the zero block predictor module whether calculations for the first set of data signals to generate a zero value data to generate the finger Shimesuru zero block signal When,
A calculation module for generating a digitized data signal from the first set of data signals in response to the zero block signal;
The feedback module for generating the second set of data signals for input to the motion compensation module in response to the digitized data signal;
A coding module for generating an encoded data signal in response to the digitized data signal;
A video encoder comprising:
前記前の画像内の前のマクロブロック内のサーチする点の周囲の各方向にある近傍の点の組からのデータ信号と現在のデータ信号のマクロブロックの間の絶対差を計算する手段であって、中心の点において最適の整合が得られた場合には最適の点として上記中心の点を選択し、最適の点が得られなかった場合は対角線に沿わない方向にある近傍の点から離れた距離にある直交点において整合するか否かを判定し、直交点において最適に整合する場合には直交サーチ技術に従って最適な整合を選択し、直交点の近傍において最適に整合する場合には最適な整合点の近傍の点を上記中心点として選択する前記計算手段を有することを特徴とするビデオエンコーダ。The video encoder of claim 2, wherein the modified motion compensation module is
Means for calculating an absolute difference between a data signal from a set of neighboring points in each direction around a point to be searched in a previous macroblock in the previous image and a macroblock of the current data signal; If the optimum match is obtained at the center point, the center point is selected as the optimum point, and if the optimum point is not obtained, it is separated from the neighboring points in the direction not along the diagonal line. Whether or not to match at an orthogonal point at a certain distance, and if optimal matching is performed at the orthogonal point, the optimal matching is selected according to the orthogonal search technique, and optimal when matching is optimal near the orthogonal point. A video encoder comprising the calculating means for selecting a point near a matching point as the center point.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1153097A JP4564599B2 (en) | 1997-01-24 | 1997-01-24 | Method and apparatus for improved video coding using a zero block predictor module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1153097A JP4564599B2 (en) | 1997-01-24 | 1997-01-24 | Method and apparatus for improved video coding using a zero block predictor module |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10224780A JPH10224780A (en) | 1998-08-21 |
JP4564599B2 true JP4564599B2 (en) | 2010-10-20 |
Family
ID=11780532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1153097A Expired - Fee Related JP4564599B2 (en) | 1997-01-24 | 1997-01-24 | Method and apparatus for improved video coding using a zero block predictor module |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4564599B2 (en) |
-
1997
- 1997-01-24 JP JP1153097A patent/JP4564599B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10224780A (en) | 1998-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2924431B2 (en) | Coding method | |
JP2897763B2 (en) | Motion compensation coding device, decoding device, coding method and decoding method | |
EP1262073B1 (en) | Methods and apparatus for motion estimation using neighboring macroblocks | |
EP0637894B1 (en) | Apparatus and method for detecting motion vectors to half-pixel accuracy | |
US6483876B1 (en) | Methods and apparatus for reduction of prediction modes in motion estimation | |
US5926221A (en) | Method and apparatus for improved video coding using a center-biased orthogonal search technique and a zero block predictor module | |
US20030156646A1 (en) | Multi-resolution motion estimation and compensation | |
US20070071096A1 (en) | Transcoder and transcoding method operating in a transform domain for video coding schemes possessing different transform kernels | |
JPH09179987A (en) | Method and device for detecting motion vector | |
KR20050025567A (en) | Predicting motion vectors for fields of forward-predicted interlaced video frames | |
KR20000076522A (en) | Motion estimation using orthogonal transform-domain block matching | |
JPH0955945A (en) | Movement vector specifying method and device | |
WO2001049029A1 (en) | Methods and apparatus for motion estimation in compressed domain | |
EP0786907A2 (en) | Video encoder | |
JPH09191459A (en) | Method and device for coding video data flow of video sequence consisting of image block | |
CN1136728C (en) | Method and equipment for testing optimum movement vector | |
US5790207A (en) | Motion compensation method for use in an image encoding system | |
JP4564599B2 (en) | Method and apparatus for improved video coding using a zero block predictor module | |
KR100266161B1 (en) | Method of predicting motion for digital image | |
JPH0730899A (en) | Hierarchical motion vector detection system | |
JP4164903B2 (en) | Video code string conversion apparatus and method | |
KR100262962B1 (en) | Motion prediction method and apparatus | |
JPH06153185A (en) | Motion compensation device and coder using the device | |
JPH11275591A (en) | Moving image coding decoding device, moving image coding decoding method and moving image code record medium | |
JPH10150665A (en) | Method for generating predictive image, and method and device for image encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040126 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061031 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070131 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070416 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070910 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071023 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080321 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100628 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100802 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |