(57)【要約】【課題】改良された画像圧縮システムを提供する【解決手段】画像入力情報のブロックの各画素値と直前のフレーム内で対応するブロックとを比較する画像圧縮技術の改良を開示する。ブロックを解析し、２つのテストによって変化の有無を判定する。まず、ブロックの画素値をその前のブロックの画素値と比較し、ブロック内の閾値数の画素値が、対応する部分の画素値を特定の閾値分超える場合はそのブロックは変化したとみなし、標準的な通信プロトコルや圧縮技術や媒体を使って送信される。次に、ブロック内の閾値数の画素が変わらない場合でも、その直前の対応部分の画素値と比較して、画素値が第二の閾値よりも変化したかどうかを判定する。また、そのような画素が識別されるとブロックは変化したとみなして送信する。【選択図】図３【特許請求の範囲】
【請求項１】
１つのフレームから別のフレームへ映像情報が変化する際の当該映像情報を伝達する方法であって、
ａ．現在のブロック内の映像フレーム情報の画素値を解析して、画素値のフレームの変化を判定し、
ｂ．（ｉ）前記ブロック内のいずれか１つの画素の、画素値のフレームの変化が、第１の閾値を超えているか否か、及び
（ii）前記ブロック内の第２の閾値の画素数が、画素値において、第３の閾値を超えているか否か、をテストし、
ｃ．ステップｂ．（ｉ）又はｂ．（ii）のいずれかの状態が、前記閾値を超えている場合、前記ブロック内の前記画素値を識別する情報を伝達する
ことを含む
ことを特徴とする方法。
【請求項２】
上記方法は、さらに、
前記ｄ．ステップｂ．（ｉ）および前記ｂ．（ii）の両方の状態が、前記閾値を超えない場合、前記現在のブロック内での状態変化がない旨を伝達する
ことを特徴とする請求項１記載の方法。
【請求項３】
伝達される前記状態変化がない旨は、
前記現在のブロックに関して何も伝達せず、及び
前のフレーム内の対応するブロックと比較して、変化なしとして何も伝達されない現在のブロックを書くことによって、前記映像情報を復号化する
ことを特徴とする請求項２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像信号の圧縮技術に関する。
【背景技術】
【０００２】
その生の形式において、映像は、大容量のデータ形式である。様々な形式での通信帯域は、生の映像情報を送信すると、直ちに消費されてしまう。情報送信のために必要なデータ容量を削減しながら、原画像の再生可能性を最大に維持するための画像圧縮技術が、公知である。
【０００３】
１つの映像圧縮形式としては、連続する画素情報の画素パターンが、個々の画素によってではなくコードによって識別され符号化され送信されるランレングス符号がある。２００２年１０月１日出願の米国特許出願１０／２６０，５３４（’５３４出願）の「映像圧縮システム」では、他のタイプの新規パターン符号と組み合わせられた様々なランレングス符号のいくつかについて詳細に開示している。’５３４出願の全内容は、本願において援用により参照される。’５３４出願で言及されるアルゴリズムは、本願では「ＤＶＣ圧縮」と呼ばれることがある。
【０００４】
その他の映像圧縮形式では、映像情報をより大きな画素ブロックに分割し、個々の画素自体に関する情報ではなく画素ブロックに関する情報を送信する。通常、このようなシステムにおいては、コンピュータやその他の画像発信元で受信された映像は、フレームバッファにロードされる。そこから、情報ブロックが、対応するその前のフレームブロックと比較されて、ブロック内で変化が起こったかどうかが判定される。変化が検出されなかったブロックについての情報は、受信側に送信される必要がないので、結果的に映像が圧縮されることになる。むしろ、圧縮側で使用される公知の圧縮アルゴリズムを利用する受信側は、圧縮側から指示がない限り、フレーム間ではブロック内の画素は同一であるとみなす。
【０００５】
ブロック毎のアルゴリズムの一例において、８ビット映像が取り込まれ、６４×１６ビットの映像ブロックに分割され、対応するその前のブロックと比較される。ブロック内の映像の変化が検出されると、このブロックの情報が、受信側に伝達される。変化が検出されない場合は、そのブロックに関する情報は、何も送信されない。
【０００６】
そのようなアルゴリズムは、現在のコンピュータ環境で利用されており、遠方のワークステーションからコンピュータシステムへの遠隔アクセスを可能にするものである。キーボードやマウスやその他の（低容量の）シリアルデバイス情報が、通信リンクを介してワークステーションから遠隔のコンピュータに伝達され、そして、その結果得られる（潜在的に大容量の）映像情報が、そのコンピュータから通信リンクを介してワークステーションに送り返される。このような通信を利用するシステムや方法はいまや当業者にとっては周知のものである。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このコンピュータ環境において重要なことは、ユーザによるキーボードやマウス動作に対して、コンピュータ画像が、「遅れ」ないことである。キーを叩いたりマウスを動かした後に、その結果が知覚できる程に遅れてワークステーションのモニターに表示されることはユーザにとって容認できない。遠隔のコンピュータ環境、即ち、シリアルデバイス情報が遠隔のコンピュータに伝達されなければならない（通常は、低データ容量による比較的容易なタスク）環境では、コンピュータの映像プロセッサは、新しい映像を作成するためにその情報に基づいて動作しなければならない。また、コンピュータの通信システムは、キーボードやマウスを利用した時間と、その結果得られる映像が送り返される間の時間差にユーザが気付く前に、ユーザに映像を送り返さなければならない。
【０００８】
ブロック毎の映像符号化は、ユーザにとって知覚可能な遅れが生じないように、コンピュータからワークステーションへ映像を迅速に送り返す方法の一つである。このコンピュータ環境において、コンピュータスクリーン上の多くの情報ブロックは、フレーム間（例えば、デスクトップのバックグラウンド、或いは文書処理のバックグラウンド、或いは画面上の他の「非活性」位置上で）で変化しない。ブロック毎に符号化することによって、コンピュータは、映像情報をワークステーションに送信する際にこうしたブロックを効果的に無視することができる。何故ならば、ワークステーションは、ブロックの変化について明確に伝えられない限りそのブロックは変化しなかったものと見なすからである。
【０００９】
ブロック内の画素値を評価することによって、ブロック解析が行われる。ブロックでの変化が検出された際に常にブロックを送信する方法があるが、さらに改良された方法では、ブロックが送信される前に、変化しなければならない画素数が提供される。従って、例えば６４×１６のブロックでは、ブロック送信を行うためにそのブロックが十分な程度に異なると見なされる前に、１０２４画素のうちの６画素という閾値数に変化が生じていなければならなかった。この閾値は、このシステムに、画素数の変化が典型的なノイズ環境で予想され得る数を超えない限り、ブロックが無視され得るように、ノイズレベルに適応できるような余地を与える。
【００１０】
ブロック解析は、キーボードやマウスからの入力と、それに対応する映像表示の遅れを低減するために非常に有効である。しかしながら、実質的に画素が変化しても、そのブロックにおいて、ノイズの閾値、例えば、６画素における変化、を超えなかったために、ブロックで起こった重要かつ実質的な画素の変化についてワークステーションに報告されない、という問題がある。この一例としては、ブロック内の一つもしくは二つの画素を介して移動するマウスポインタ端がある。ブロック内で変化した画素数（ノイズを考慮して１画素もしくは２画素、あるいは、３画素もしくは４画素でマウス端の一片が定義される）が閾値を超えられないため、ブロックでの変化は、ワークステーションに報告されない。その結果として、マウス端はワークステーションに表示されるマウス端は、明瞭性を欠くこととなる。ワープロ処理文書内のキャラクタやデスクトップでも同じ状況が発生する。変化したキャラクタの２画素もしくは３画素が、例えば、「ｒ」の屈曲端部が、その他の点では変化しないブロックまで伸びている場合、画素が伝達されずに「ｒ」の端部は削除される。
【００１１】
このため、送信されるべき変化に関する情報に対して、ブロック内で変化する画素数が１に設定されている場合は、システム内のノイズのせいで実際には変化していないブロックも伝達されることになる。しかしながら、ブロック内で変化する画素数が１より大きい値に設定されている場合は、潜在的に重要な画素の変化が失われることになる。
【課題を解決するための手段】
【００１２】
発明の概要
画素は、画素の赤色を定義するＮビット・コード、緑色を定義するＮビット・コード、及び青色を定義するＮビット・コードとして、定義される。従来のシステムにおいては、ブロック解析によってブロック内の画素（例えば、６４×１６のブロック内の１０００画素）のいずれかで、３色のいずれかのＮビットのいずれかで変化が検出されると、このブロックの伝達前に、変化しなければならない画素の閾値数を充足する目的のために、この画素を変化したものとしてカウントする。本実施形態においては、各ブロックに対して２種類の異なる解析が行われる。第１に、ブロック内で変化した画素数に対して、従来のデルタを適用する。本願において、このデルタとは、ブロックの変化に対する閾値であって、定義されたブロック内で、一つの基準（例えば、１フレーム）から他の点（例えば、次のフレーム）までで変化する画素数を記述するものとして参照される。従って、ＲＧＢコード内の３Ｎビットのいずれかが変化している場合、この画素は変化したものとみなされ、ブロックの変化を計算する目的のためにカウントされる。ブロックの変化が閾値を超えた場合、このブロックの変化は、受信側に伝達される。
【００１３】
第２の解析では、ブロック内の個々の画素それぞれのコントラストの変化が評価される。本願において、この第２のデルタは、画素の変化に対する閾値であって、どの程度画素の変化が発生したかを値で記述するものとして参照される。ブロックの変化に対する閾値が充足されない場合であっても、高いコントラストで画素が変化する場合には、ブロックが受信側に伝達される。
【００１４】
２種類の解析によって、従来のブロック解析の問題の双方を解決することができる。第１に、単に画素ノイズによりブロック内で変化が起きた場合は、画素の変化は低い値であり、ブロックの変化を計算する目的のために、１画素の変化として登録する。１画素のみが変化した場合は、ブロックの変化に対する閾値も、画素の変化に対する閾値も、充足されない（何故ならば、値における変化は、低コントラスト、即ち、低い値であるからである）。従って、ノイズに起因してブロックが送信されることはないので、バンド幅を節約することができる。しかしながら、その１画素のみの変化が、高いコントラストの変化の場合には、ブロックの変化に対する閾値は充足されないが、画素の変化に対する閾値は充足される。従って、ブロックの変化に対する閾値が充足されない場合であっても、そのブロックは、送信される。同様に、ブロックの隅でわずかな色変化が広範囲に起きた場合には、画素の変化に対する閾値は充足されないが、（変化した画素数のための）ブロックの変化に対する閾値は充足される。従って、ブロックは適切に伝達され、わずかな色変化が反映される。
【発明を実施するための最良の形態】
【００１５】
図１のコンピュータシステム１０において、キーボード及びマウス情報１７は、クライアント１２に入力されて、このクライアント１２のプロセッサ１９によって処理され、通信チャネル１６を介してサーバ１１に伝達される。この通信チャネルは、電話回線、ＬＡＮ、ＷＡＮ、インターネット、ファイバーリンク、無線リンク、或いはあらゆるその他の好適な通信システムであってよい。サーバ１１は、キーボード及びマウス情報１７を受信し、サーバ１１のアプリケーションに基づいてプロセッサ１３内でこれを処理し、適切な映像応答を生成する。映像情報１８は、クライアント１２に伝達され、クライアント１２では、これを受信し、プロセッサ１９内でこれを処理し、クライアントユーザ向けに表示する。
【００１６】
典型的なクライアントユーザは、ユーザがキーを叩いたりマウスを動かす時間と、クライアント１２のモニタ（図示せず）上で結果として得られた映像をユーザが見る時間までの間の大きな遅延時間を許容しない。このため、上述の処理と共に、クライアント１２とサーバ１１との間の情報のループは、知覚可能な遅延を引き起こしてはならない。幸いなことに、プロセッサ１９及びプロセッサ１３のためのハードウェア及びソフトウェアを利用することによって、ユーザが知覚可能な遅延を引き起こすことなく、キーボード、マウス、及び映像情報を迅速に処理することができる。一方、映像情報１８が十分に圧縮されない限り、通信チャネル１６は、知覚可能な遅延を引き起こしかねない。
【００１７】
この理由のため、映像エンコーダ１４及び映像デコーダ１５は、それぞれサーバ１１及びクライアントサーバ１２に提供される。映像エンコーダ１４及び映像デコーダ１５は、上の背景技術で参照された’５３４出願で説明されたようなシステムを、以下の説明に基づいて修正したものであってよい。
【００１８】
上述したように、エンコーダ１４は、映像情報ブロックの変化を解析することによって、そのブロックの伝送が特定フレームに必要であるか否かを判定するブロックエンコーダであってよい。本発明によれば、この判定は２つの側面について行われる。即ち、１つは画素の変化に対する閾値に基づいて、もう１つはブロックの変化に対する閾値に基づくものである。
【００１９】
ブロックの変化に対する閾値に基づく判定では、ブロック内で値が変化する画素数が、カウントされて、閾値と比較される。画素数が、閾値を超える場合には、そのブロックは、送信に価するほど十分に変化したと見なされる。
【００２０】
画素の変化に対する閾値に基づく判定では、各画素における変化値が解析され、この変化値が、閾値と比較される。ブロック内のいずれかの画素の変化値が、閾値を超える場合には、そのブロックは送信に価するほど十分に変化したと見なされる。
【００２１】
「ブロック」の送信は、様々な形式で可能であって、これらは全て本発明の範囲内にある。基本形式において、ブロックの生のピクセル値が、シリアルに送信される。より好適な形式において、ブロックのシリアルなピクセルの値が、’５３４出願のＤＶＣ圧縮技術に受け渡され、さらに圧縮される。その他の圧縮形式も、同様に適用可能である。本発明は、（一旦、送信候補として識別されると）サーバ１１からチャネル１６を介してクライアント１２にブロックを送信するためのいかなる特定の方法にも限定されるものではない。
【００２２】
図２は、本発明が非常に有益である理由の一例を示す。図２において、映像スクリーン２０の一部が小さく示され、そのスクリーン２０上にマウスのカーソル２１が示されている。本システム内部では、情報スクリーンは、複数のブロック、例えば、ブロック２２からブロック２５に分割される。ここでは例示することだけを目的として、カーソル２１は、クライアントユーザのスクリーン上で変化する唯一のものであり、また、直線的に上方（矢印で示される方向）に動くものと仮定する。また、図２に示されるフレームにおいて、カーソル２１の一部２１Ａは、初めてブロック２５内に入ったものと仮定する。この部分２１Ａは、図２の下部に大きく示され、ここで、カーソルの点は、画素２９、３０、３２、３３で示されている。周囲の画素２６、２７、２８、３１、３４、３５は変化しないままであると仮定することができる。上述したように、理想的にはブロック２５では、４つの画素のみが変化する。即ち、画素２９、３０、３２、３３が背景色からカーソル色に変化する。
【００２３】
本システムが、従来のブロック解析技術を用いる場合には、ブロック２５は、送信される適格を有しない。何故ならば、変化した画素の数（４）は、サーバ１１がブロックの変化を伝達するために必要な閾値（６）を充足しないからである。その結果、クライアント１２のユーザは、モニタ上で、変化しないブロック２５、即ち、カーソル２１の一部２１Ａが切除されたブロック２５で、映像を受信する。このような丸みのあるポインタ端やキャラクタの明瞭性における欠陥が、ブロック解析システムの特徴である。
【００２４】
本発明は、ブロック閾値解析と、実質的に同時の画素コントラスト解析とを組み合わせることによってこの問題を解決する。好適な実施形態によれば、図２のブロック２５は、比較され、十分な画素が変化したかどうかが判定される。そして、十分な画素に変化がない場合は、ブロック２５内の画素のそれぞれが評価され、いずれか１つの画素において、ブロック送信に十分価する変化があるかどうかが判定される。図２において、画素２９、３０、３２、３３は全て、画素コントラスト制限値に基づいて、送信される適格を有する（背景色は、区別できない程度までカーソル色に近いものではないと仮定する）。
【００２５】
本発明の範囲は、ブロックカウントの閾値の実際の数によって画定されるものではない。上述したように、６４×１６のブロック毎に６画素の閾値は、有用であり得る。しかしながら、６／１０００の比より少ない閾値であってもよい。何万画素、何十万画素／ブロックに対して２画素／ブロックの閾値であってもよい。実際の数の範囲は限定されるものではない。何故ならば、本開示を理解した当業者であれば、閾値を上げたり下げたりすることによって、感度を所望のまま増減できることを理解するからである。従って、例えば、ブロックを比較的小さい２×２と定義した場合、高いノイズの除去を提供する閾値、例えば、ブロックの送信前にブロック毎の全画素の変化を要求するような閾値を、想定することができる。本発明は、ブロック内の２画素から画素１００％までの全ての閾値に及ぶことを意図している。
【００２６】
同様に、その実際の画素の変化に対する閾値は、その最も広範囲に亘る形態の本発明を限定するものではない。送信の判定は、ブロックの変化に対する閾値と画素の変化に対する閾値との双方の関数であるため、この２つの値は、好適には、相互に補完されるよう選択される。比較的低い画素の変化に対する閾値の場合は、１画素の低いコントラストの変化でもブロック送信を引き起こすことになる。比較的高い画素の変化に対する閾値の場合は、ブロック送信の可能性を低下させることになる。ノイズレベル、公称ノイズスパイク、色成分ごとのビット数などの評価基準に基づいて設計上の選択を行うことが可能であり、これにより、実質的な画素の変化は、伝達されるが、ノイズの変化は伝達されない。本発明は、値が１である低い画素コントラスト・デルタから、画素の色値の５０％以上の高い画素コントラスト・デルタまでの全閾値に及ぶものである。
【００２７】
図３は、２種類の閾値を実装するシステムとその方法の一例を示す。入力映像４１は（図３の例示では１５ビット映像として）、ＦＩＦＯ４２に伝達される。ＦＩＦＯ４２は、入力映像をリファレンスメモリ５７に送り、リファレンスメモリ５７ではそれを映像情報フレームとして記憶する。本例示的実施形態では、リファレンスメモリ５７は、１Ｍ×１６のメモリであってよい。メモリコントローラ５８が図示されるアドレス線や制御線を介してリリースするまで、リファレンスメモリ５７は、映像情報を記憶する。メモリコントローラ５８が情報フレームをリリースする先の１つは、画像差分計算機４３である。一つの情報フレームがその直前のフレームと比較される例示的実施形態によれば、メモリコントローラ５８は、前の情報フレームをメモリ５７から画素差分計算機４３に送出し、ＦＩＦＯ４２は、また、現在の１５ビットの映像フレームをこの画素差分計算機に送る。対応する画素を受信すると、画素差分計算機は、現在の画素の絶対値と直前のフレームの対応値とを比較する。この差分値は、画素差分計算機４３によって閾値ブロック４４および４６に伝達される。
【００２８】
画素閾値ブロック４４は、ノイズ閾値４５を受信する。このノイズ閾値４５は、画素差分ブロック４３から受信された各画素差分値と比較される。即ち、画素差分ブロック４３から（直前のフレームの対応値と比較される、現在の画素の３つの５ビット色成分値の間のコントラストの程度を示す）各画素差分値が受信されると、これが、ノイズ閾値と比較されることによって画素値の変化が発生したと見なすか否かが判定される。画素差分ブロック４３から受信されたデルタ値が、ノイズ閾値４５より低いと、変化しなかったと推定される。即ち、システムは実質的なスクリーン画像の変化を引き起こさなかったと推定される。ノイズ閾値は、５ビットの信号であってもよく、これによって、画素差分ブロック４３から差分信号として受信される３つの５ビット色成分値の各々を評価することができる。ブロック４４は、画素差分ブロック４３から受信された差分値がノイズ閾値を上回るときは常に、閾値ブロックカウンタ５０に対して正出力信号で応答する。出力信号ｃｎｔ＋＋は、これらの受信信号の数をカウントする閾値ブロックカウンタ５０によって受信されるカウント信号である。
【００２９】
一方、画素閾値ブロック４６は、現在の画素に対する同じデルタ値を、画素差分ブロック４３から受信する。画素閾値ブロック４６は、このデルタ値ともう１つの閾値、即ち、「オーバーライド閾値」４７とを比較する。このオーバーライド閾値は、ブロック内でその他の画素が変化しているかどうかに拘わらず、クライアント１２に送らなければならない程に、画素が、実質的に変化していると言うための基礎となる閾値として受信される。画素閾値ブロック４６が、オーバーライド閾値を超える画素デルタ値を受信した場合、このブロック４６は、システムがクライアントにブロックを送信する「カウント閾値数」５２に等しい数の信号を閾値ブロックカウンタ５０に伝達する。即ち、図３の例においては、閾値ブロックカウンタ５０は、だまされて実際の発生数よりも過剰に画素デルタをカウントしてしまうことになる（結果としてブロック送信が起こることは、ブロック４６からカウンタ５０への通知によってすでに予定することができるが、「正確な」数は、ブロック４４からカウンタ５０に、さらに通知される）。
【００３０】
カウンタ５０は、ブロック全体について、ブロック４４及びブロック４６の両方からくる、画素に関する通知の全てをカウントする。画素ブロックの処理を画素差分ブロック４３で開始する場合、プロセッサ（図３では図示せず）は、イネーブル線４８を介してカウンタを有効にする。ブロックの最後で、プロセッサは、リセット線４９を介してカウンタをゼロにリセットする。従って、カウンタ５０は、常に、１つの映像情報ブロック内の過剰なデルタ（或いは、場合によっては、ブロック４６が通知した擬似過剰値）をカウントする。
【００３１】
カウンタ５０によってカウントされる過剰なデルタの数は、コンパレータ５１に通知される。コンパレータ５１は、カウントされた過剰なデルタの数が、通知されたブロックに対するカウント閾値５２を超えているか否かを判定する。超えている場合は、コンパレータ５１は、ブロック更新メモリ５５にブロック状態（変化或いは不変）を通知する。ブロック更新メモリ５５は、更新、即ち、受信側への通信を要求するブロックのそれぞれに対するフラグをセットする。受信映像４１のフレームが完成すると、ブロック更新メモリは（セットされたフラグに基づいて）、通信を要求するブロックのＩＤをメモリコントローラ５８に送る。これによって、リファレンスメモリからＤＶＣ圧縮ブロック５９にこれらのブロックがダウンロードされる。
【００３２】
一旦、送信のためのブロックが識別されると、メモリ５７は、通信を要求するブロックを、ＤＶＣ圧縮ブロック５９に提供する。ＤＶＣ圧縮ブロック５９は、必要なブロックを受信して、（’５３４出願の開示に基づいて）情報ブロックを圧縮し、圧縮されたストリームを出力ＦＩＦＯ６０に送る。そして、圧縮された映像ストリームは、例えば、通信チャネルインタフェースを介して送信用プロセッサバス６１を通り、通信チャネル１６に向かうことが可能となる。
【００３３】
図３の構造は、この実施形態に限定されることはなく、本発明の幅広い態様を本実施形態に組み込むことが可能である。図３の全構造は、ソフトウェアモジュール、ハードウェア、もしくはその組み合わせに組み込むことが可能である。計算、カウント処理、比較、そして、その他の機能は、図示されている個別のユニットによって実現可能であり、また、１つ又は複数の処理要素内での処理方法として実行可能である。本発明は、２種類の閾値に基づく解析を行うために選択された特定の構造に限定されるものではない。
【００３４】
また、カウンタ５０をだまして最大カウント値にする方法は、変化した画素の正確なカウント値がカウント閾値に達する以前のどの時点でブロック送信がされるかを判定するための、本発明で検討された唯一の方法ではない。その他の方法によれば、メモリコントローラに状態を直接通知することを想定するものでもよく、又は、ブロックのカウント値と画素値のカウント値とを解析する処理要素のための完全に独立した経路を想定するものでもよい。
【００３５】
本発明は、現在最も実用的で好適な実施形態と考えられるものに基づいて説明されたが、本発明は開示された実施形態に限定されることはなく、添付の請求項の要旨とその範囲内にある様々な変形及びそれと等価な構成を含むものであると理解されるべきである。
【図面の簡単な説明】
【００３６】
【図１】本発明のアプリケーションであるシステムの一例を示す図である。
【図２】画像フレームの一例を示す図である。
【図３】本発明の一実施形態を示す図である。
【図１】
2007529123.tif 000002
【図２】
2007529123.tif 000003
【図３】
2007529123.tif 000004
【国際調査報告】
2007529123.tif 000005