(57)【要約】  本発明は、デジタル的に符号化されたビデオフレームシーケンスを圧縮する方法に関するものである。本方法においては、所定のフレームをブロックに分割し、選択したブロックの情報量を隣接する１つ又は複数のブロック内に含まれている情報に基づいて変更（予測）し、これらのブロックを空間表現から周波数表現に変換する。変換されたブロックの情報量を算術符号化によって符号化する。更なる変換を実行する前に、ブロックのサブブロックへの動的な分割またはブロックに対する圧縮性分析を実行するような様々な方法によって、符号化の効率を改善する。エントロピー符号化は、ニューラルネットワークを使用して、算術符号化のパラメータを判定する。こうして、利用可能な帯域幅及び符号化する画像の品質に応じて、所定のフレームを動的にリスケーリングする。
2007503784.tif 000002
【特許請求の範囲】
【請求項１】
デジタル的に符号化されたビデオフレームシーケンスを圧縮する方法であって、
ａ、所定のフレームをブロックに分割する段階と、
ｂ、任意の選択により、個々のブロックを更に小さなブロックに更に分割する段階と、
ｃ、隣接する１つまたは複数のブロック（予測用）に含まれている情報に基づいて、選択されたブロックの情報量を変更する段階と、
ｄ、空間表現を周波数表現に変換する変換（ＤＣＴ）を前記選択されたブロックに対して実行することによって変換されたブロックを生成する段階と、
ｅ、最後に、前記変換されたブロックの前記情報量を、エントロピー符号化によって符号化する段階とを具備する方法において、
ｉ、前記段階ｄに規定されている前記変換を実行する前に、前記選択されたブロックに関して圧縮性分析を実行し、前記分析の結果に応じて、
ｉｉ、前記段階ｃ（予測）および前記段階ｄ（ＤＣＴ）を前記ブロックに対して実行するか、または、
ｉｉｉ、任意の選択により、前記ブロックをサブブロックに更に分割し、前記段階ｉに規定されている前記圧縮性分析を、個々の分割の結果として得られた前記ブロックに対して再度実行し、
ｉｖ、前記段階ｉおよび前記段階ｉｉｉから得られた結果に基づいて、最良の結果をもたらす可能性があるブロック分割を選択し、
ｖ、最後に、前記最良の潜在的な結果をもたらす前記ブロック分割を使用して、前記段階ｃに規定されている前記予測に基づいて、前記段階ｄに規定されている前記変換を実行することを特徴とする方法。
【請求項２】
個々のブロック分割に属するブロックの前記圧縮性分析は、前記ブロックの情報および／または個々のブロックタイプの発生頻度を考慮して実行されることを特徴とする請求項１に記載の方法。
【請求項３】
前記圧縮性分析において、前記ブロックの情報に対して、直接的に、またはアダマールフィルタを介して、分散分析を適用することを特徴とする請求項１に記載の方法。
【請求項４】
前記分散分析は、次式を用いて実行され、
【数１】
2007503784.tif 000017
ここで、Ｍは、所定のブロックまたはサブブロック内の要素の数であり、pixel（ｉ）は、圧縮されていない（オリジナルの）ブロックの要素であり、
前記演算された分散値を特定の閾値と比較して、前記分散が前記特定の閾値を上回っているかどうかを確証することを特徴とする請求項３に記載の方法。
【請求項５】
所定のフレーム内の最大許容ブロックサイズを有するブロックに割り当てられている特定のデータをエントロピー符号化によって更に符号化し、前記特定のデータは、それらが割り当てられている前記ブロックの前記ブロック分割を表していること（四分木）を特徴とする請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記空間ドメインにおける表現を前記周波数ドメインにおける表現に変換する前記変換として、離散コサイン変換（ＤＣＴ）を適用することを特徴とする請求項１から５のいずれか一項に記載の方法。
【請求項７】
１６ｘ１６ピクセルよりも小さいブロックに対してＤＣＴを適用し、１６ｘ１６ピクセルのサイズを有するブロックに対しては、アダマール変換を適用することを特徴とする請求項６に記載の方法。
【請求項８】
前記圧縮性分析において、変更（予測）される前記ブロックの情報量は、次式によって定量化され、
【数２】
2007503784.tif 000018
ここで、Ｍは、前記予測されたブロック内の要素の数であり、pixel（ｉ）は、前記予測されたブロックの要素であり、
前記演算された「ｓｕｍ」値を特定の閾値または以前の「ｓｕｍ」値と比較し、前記演算された「ｓｕｍ」値が前記特定の閾値または前記以前の「ｓｕｍ」値を上回っているかどうかを確証することを特徴とする請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記個別ブロックの前記予測の際に、複数の予測モードを使用して予測を実行し、最小の「ｓｕｍ」値をもたらす予測モードが前記所定のブロックに対して適用されることを特徴とする請求項８に記載の方法。
【請求項１０】
２つの最も頻繁に発生するブロックサイズの発生頻度が特定の値を上回っていることが個々のブロックサイズの発生カウントによって確認された場合に、すべてのブロックを前記２つの最も頻繁に発生するブロックサイズのブロックによって置換することを特徴とする請求項１から９のいずれか一項に記載の方法。
【請求項１１】
ブロックの前記圧縮性分析の際に、誤差を演算し、閾値を上回る前記誤差に寄与する前記ブロックを、前記演算された誤差を考慮して、更なるサブブロックに分割することを特徴とする請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
所定のサブブロックのケースにおいて前記誤差が既定値を上回っている場合に、前記サブブロックを更に小さなサブブロックに分割し、前記更に小さなサブブロックを含む前記結果的に得られたブロック分割に対して前記圧縮性分析を実行することを特徴とする請求項１１に記載の方法。
【請求項１３】
１６ｘ１６、８ｘ８、４ｘ４、または２ｘ２のサイズの前記ブロックおよび前記サブブロックを使用することを特徴とする請求項１から１２のいずれか一項に記載の方法。
【請求項１４】
デジタル的に符号化されたビデオフレームシーケンスを圧縮する方法であって、
ａ、所定のフレームを２次元のブロックに分割する段階と、
ｂ、特定のケースにおいては、個別のブロックを更なるサブブロックに分割することにより、前記フレームのブロック分割を確立する段階と、
ｃ、空間表現を周波数表現に変換する変換（ＤＣＴ）を前記ブロックの情報量に対して実行し、これにより、変換済みの多数要素の２次元ブロック（ＤＣＴ係数のマトリックス）を生成する段階と、
ｄ、外部境界条件に従って前記変換済みのブロックの前記要素を変更する段階（量子化）と、
ｅ、最後に、エントロピー符号化により、前記変換済みのブロック内に含まれている前記情報を符号化する段階とを有する方法において、
前記段階ｄにおいて、前記変換済みの多数要素の２次元ブロック内におけるデータの前記変更は、前記ブロックのサイズおよび符号化されたデータを伝送するのに利用可能な帯域幅に応じて実行されることを特徴とする方法。
【請求項１５】
前記変換済みのブロックの前記変更は、量子化であることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記量子化は、次式で求められるＭＰＥＧ量子化であって、
【数３】
2007503784.tif 000019
ここで、qcoeff(j)は、変換される多数要素の２次元ブロックの要素であり、
matrix(j)は、変換される多数要素の２次元ブロックにサイズが対応しているマトリックスの要素であり、
ＱＰは、前記量子化の係数であることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記matrix(j)の値は、経験値が設定されたマトリックステーブルから取得され、前記テーブルの個々の要素は、matrix(j)マトリックス全体であり、前記テーブルからの選択は、前記段階ｄに規定されている前記外部境界条件に応じて実行されることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記テーブルからの前記選択は、前記ＱＰ量子化係数の値に関連して実行されることを特徴とする請求項１６または１７に記載の方法。
【請求項１９】
前記ＱＰドメイン全体が、個々のサブドメインに割り当てられたマトリックステーブルを有するＮ個のサブドメインに分割され、この場合に、前記マトリックステーブルのサイズは、前記ブロックサイズに対応しており、それぞれのサブドメインは、事前に規定されている帯域幅の範囲に割り当てられることを特徴とする請求項１６から１８のいずれか一項に記載の方法。
【請求項２０】
前記段階ｄの前記外部境界条件は、利用可能なストレージ容量および／または利用可能な帯域幅によって課されることを特徴とする請求項１６から１９のいずれか一項に記載の方法。
【請求項２１】
特定のケースにおいて、前記選択されたブロックの前記情報量は、前記段階ｃにおいて実行される前記変換に先立って、隣接する１つまたは複数のブロックの以前に選択された画像要素内に含まれている情報（予測）、または参照フレーム内に含まれている参照ブロックの情報量に基づいて、変更されることを特徴とする請求項１４から２０のいずれか一項に記載の方法。
【請求項２２】
イントラフレームを符号化するように、請求項１から１３のいずれか一項に記載の方法の段階が実行されることを特徴とする請求項１４から２１のいずれか一項に記載の方法。
【請求項２３】
デジタル的に符号化されたビデオフレームシーケンスを圧縮する方法であって、特定フレームの情報量は、先行するまたは後続するフレーム（参照フレーム）の情報から符号化され、
ａ、前記符号化対象のフレームをブロックに分割する段階と、
ｂ、前記符号化対象のブロックを含む前記フレームより先行するまたは後続する前記参照画像内において、前記符号化対象のブロックと一致する参照ブロックを探索する段階と、
ｃ、一致した参照ブロックと前記符号化対象のブロックとを比較することによって圧縮性分析を実行する段階と、
ｄ、前記圧縮性分析の結果に基づいて、前記最良の参照ブロックを選択する段階と、
ｅ、前記選択された最良の参照ブロックを使用して前記ブロックを符号化する段階と、を有する方法において、
参照ブロックの前記探索の際に、前記段階ｂにおいて、
ｉ、前記符号化対象のブロックをサブブロックに分割し、
ii、前記サブブロックの情報を分析し、
ｉｉｉ、事前に規定されている基準に従って、事前に定められた数のサブブロックを、好ましくは少なくとも２つは選択し、
iv、前記選択したサブブロックを使用して、参照ブロック探索を実行し、前記探索は、前記選択したサブブロックからの違いが最も少ないサブブロックを含む前記参照ブロックについて、選択された参照フレーム内において、特定の探索範囲内において実行され、前記選択されたブロックの相対的な位置は、前記探索において一定に維持され、
ｖ、前記選択されたサブブロックを使用した探索の結果として、前記最良の参照ブロックが選択されることを特徴とする方法。
【請求項２４】
前記段階ｖにおいて、探索によって現在の参照ブロックよりも良好なブロックが検出されるたびに、新しく検出されたブロックの位置データを多数要素を格納する循環バッファ内に書き込み、前記バッファの最後の要素が前記最良のサブブロックの位置を格納する方式によって、前記最良の参照ブロックが選択されることを特徴とする請求項２３に記載の方法。
【請求項２５】
参照探索は、前記符号化対象のブロック全体を使用して実行され、前記探索は、前記最良の参照ブロックと考えられる参照ブロックの近傍において実行され、前記最終的な参照ブロックは、前記符号化対象のブロック全体を使用して実行された前記探索の結果に応じて選択されることを特徴とする請求項２３または２４に記載の方法。
【請求項２６】
前記符号化対象のブロックと前記参照ブロックとの絶対二乗差を評価し、前記評価された絶対二乗差に基づいて、前記参照ブロックの許容可能性に関する判定を行うことを特徴とする請求項２３から２５のいずれか一項に記載の方法。
【請求項２７】
前記参照ブロック探索は、フィルタ処理された参照フレーム内において実行されることを特徴とする請求項２３から２６のいずれか一項に記載の方法。
【請求項２８】
前記探索結果が依然として不満足である場合に、更なる参照フレーム内に配置されている探索範囲内において、参照ブロック探索を実行することを特徴とする請求項２３から２７のいずれか一項に記載の方法。
【請求項２９】
前記探索がすべての参照フレーム内において不成功であった場合に、前記符号化対象のブロックをサブブロックに分割し、それぞれのサブブロックごとに、一致する参照サブブロックを探索し、前記探索は、それまで最良の結果をもたらしていた参照フレーム内において最良と考えられる参照フレーム位置の近傍において実行されることを特徴とする請求項２３から２８のいずれか一項に記載の方法。
【請求項３０】
前記符号化対象のブロックをサブブロックに分割することにより、満足できる結果が生成されなかった場合には、他の参照フレームの最良の位置の近傍において前記参照サブブロックの探索を実行することを特徴とする請求項２９に記載の方法。
【請求項３１】
サブブロックが誤った状態に留まった場合には、前記誤りを有するサブブロックを更に小さなサブブロックに更に分割し、前記探索を反復することを特徴とする請求項２９または３０に記載の方法。
【請求項３２】
前記符号化対象のブロックを前記参照ブロックから減算し、前記差分ブロックを前記段階ｅにおいて符号化することを特徴とする請求項２３から３１のいずれか一項に記載の方法。
【請求項３３】
空間表現を周波数表現に変換する変換（ＤＣＴまたはアダマール変換）を前記差分ブロックの情報量に対して実行し、これにより、変換済みの多数要素の２次元ブロック（ＤＣＴまたはアダマール係数のマトリックス）を生成し、エントロピー符号化により、前記変換済みのブロックの情報量を符号化することを特徴とする請求項２３から３２のいずれか一項に記載の方法。
【請求項３４】
前記符号化プロセスにおいて、請求項１から１３の中のいずれか一項に記載の方法の段階が実行されることを特徴とする請求項２３から３２のいずれか一項に記載の方法。
【請求項３５】
デジタル的に符号化されたビデオフレームシーケンスを圧縮する方法であって、
ａ、それぞれのフレームを、別個に符号化する対象であるブロックに分割する段階と、
ｂ、空間表現を周波数表現に変換する変換（ＤＣＴ）を前記ブロックの情報量に対して実行し、これにより、変換済みのブロックを生成する段階と、
ｅ、最後に、エントロピー符号化により、前記変換済みのブロック内に含まれている情報を符号化し、エントロピー符号化として算術符号化を適用し、この際に、
・前記ビットシーケンスの連続したビットの値の関数としてインターバルの下限と上限を変更することによって、ビットシーケンスを符号化し、
・前記インターバルの前記限度を変更する前記関数において、前記シーケンスの既に到着しているビットの分布を考慮するような段階とを有する方法において、
・前記ビットシーケンスの既に到着しているビット値からアドレスを生成し、
・複数の処理要素を有するニューラルネットワークの個々の処理要素をアドレス指定するように前記アレドレスを適用し
・個々のアドレス指定処理の頻度と前記ビットシーケンスの現在到着しているビットの値を入力として使用するように、前記処理要素のパラメータを変更し、且つ、前記インターバルの前記下限および上限を変更するパラメータを判定するべく、前記ニューラルネットワークの出力を適用し、
・複数ビットの処理を伴う初期学習フェーズの後に、到来ビットの符号化の際に、前記インターバルの前記上限または下限を前記ニューラルネットワークの前記出力の関数として判定することを特徴とする方法。
【請求項３６】
前記符号化対象の到来ビットシーケンスをバッファに供給し、多数の更に短いビットシーケンスに分割することを特徴とする請求項３５に記載の方法。
【請求項３７】
前記更に短いビットシーケンスのビットによって表されたバイナリ値をアドレスと見なすことを特徴とする請求項３６に記載の方法。
【請求項３８】
前記アドレスをテーブルの行を選択するために使用し、前記テーブルは、前記符号化対象の現在のビットの可能な値の発生頻度を表す関数値と、少なくとも１つの重み関数を含んでいることを特徴とする請求項３５から３７のいずれか一項に記載の方法。
【請求項３９】
個々のニューロンの前記重み関数を前記符号化対象のビットの可能な値の発生頻度を表す関数値の関数として変更することを特徴とする請求項３８に記載の方法。
【請求項４０】
前記アドレスの可能なアドレス範囲が、互いに結合を形成している（少なくとも部分的にオーバーラップしている）ことを特徴とする請求項３５に記載の方法。
【請求項４１】
前記ニューラルネットワークの利得および学習係数を前記境界条件に応じて動的に調節することを特徴とする請求項３５から４０のいずれか一項に記載の方法。
【請求項４２】
符号器は、各レベルのパラメータが個別に調整可能となる異なるレベルで使用され、各レベルに割り当てられた専用パラメータによって動作するニューラルネットワークと一緒に使用されることを特徴とする請求項３５から４１のいずれか一項に記載の方法。
【請求項４３】
前記符号化プロセスにおいて、請求項１から３４の中のいずれか一項に記載の方法の段階を実行することを特徴とする請求項３５から４２のいずれか一項に記載の方法。
【請求項４４】
デジタル的に符号化されたビデオフレームシーケンスを圧縮する方法であって、
ａ、所定のフレームを２次元ブロックに分割する段階と、
ｂ、空間表現を周波数表現に変換する変換（ＤＣＴ）をブロックの情報量に対して実行し、これにより、変換済みの多数要素の２次元ブロック（ＤＣＴ係数のマトリックス）を生成する段階と、
ｃ、外部境界条件に従って前記変換済みのブロックの要素を変更する段階（量子化）と、
ｄ、最後に、エントロピー符号化によって、変換済みのブロック内に含まれている情報を符号化する段階とを有する方法において、
前記変換済みの多数要素の２次元ブロックのデータの変更を、前記段階ｃにおいて、ニューラルネットワークの出力の関数として実行することを特徴とする方法。
【請求項４５】
前記ニューラルネットワークは、バックプロパゲーションまたはカウンタープロパゲーションの構造を有しているか、または多数のニューロンから構成された単純なネットワークであり、
・予想された／符号化済みの長さおよび予想された／符号化済みの品質の正規化された値を入力データとして使用し、
・事前に受信された入力データと現在の入力データとの特定な数を時間窓（時間的スロット）内において保存し、前記時間窓（時間的スロット）内に含まれている前記データを前記ニューラルネットワークの入力ニューロンに割り当てることを特徴とする請求項４４に記載の方法。
【請求項４６】
前記ニューラルネットワークの入力層内のニューロンの数は、前記時間窓内に保存されているデータ要素の数と等しいことを特徴とする請求項４５に記載の方法。
【請求項４７】
前記ネットワークは、隠れ層を有することを特徴とする請求項４６に記載の方法。
【請求項４８】
前記隠れ層内のニューロンの数は、前記入力層内のニューロンの数よりも大きいことを特徴とする請求項４７に記載の方法。
【請求項４９】
正規化された予測された／符号化済みの長さ値と予想された／符号化済みの品質値を入力データとして適用し、
・既定数（Ｎ）（好ましくは、Ｎ＝３１またはＮ＝６３）の以前に受信された入力データ要素を前記現在の入力データと共に時間窓内に保存し、前記時間スロット内に含まれている前記データに基づいてアドレスを生成し、
・入力データを前記アドレス生成プロセス用の所定ビット長に丸め、
・ハッシュ関数によって前記時間窓のそれぞれの要素からアドレスを生成し、前記アドレスは、前記ニューラルネットワークの処理要素の中の１つに対応するテーブルの要素を指し示していることを特徴とする請求項４４に記載の方法。
【請求項５０】
予測された／符号化済みの長さおよび品質データをアドレス生成のために丸める前に、そのオリジナルの形態における前記予測された／符号化済みの長さおよび品質データを利用して、前記ニューラルネットワークを事前学習されることを特徴とする請求項４９に記載の方法。
【請求項５１】
前記時間窓内に含まれている前記データから、ハッシュ関数によってアドレスを生成することを特徴とする請求項４９または５０に記載の方法。
【請求項５２】
前記ニューラルネットワークの残りの部分から独立した２つの処理要素の入力データとして、最小および最大の許容帯域幅値を適用することを特徴とする請求項４４から５１のいずれか一項に記載の方法。
【請求項５３】
前記ニューラルネットワークの処理要素と２つの独立した処理要素によって生成される結果が２つの出力として出現する請求項５２に記載の方法。
【請求項５４】
前記ニューラルネットワークの出力は、フレームサイズのスケーリングファクタおよび／または量子化係数であることを特徴とする請求項５２に記載の方法。
【請求項５５】
前記ニューラルネットワークの出力は、フレームサイズのスケーリングファクタおよび／または量子化係数であることを特徴とする請求項５２に記載の方法。
【請求項５６】
前記符号化プロセスにおいて、請求項１から４３のいずれか一項に記載の方法の段階を実行する請求項４４から５５のいずれか一項に記載の方法。
【請求項５７】
デジタルビデオデータを符号化する装置であって、請求項１から５５のいずれか一項に記載の方法の段階を実行するように適合された手段を有することを特徴とする装置。
【請求項５８】
請求項１から５５のいずれか一項に記載の方法の段階を実行する命令を含むソフトウェア。
【請求項５９】
請求項１から５５のいずれか一項に記載の圧縮方法によって生成される符号化のシーケンス。
【請求項６０】
請求項１から５５のいずれか一項に記載の圧縮方法によって生成される符号化シーケンスにより符号化されたビデオデータを復号化する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ圧縮に関し、更に詳しくは、ビデオフレームシーケンスを圧縮する方法および装置に関するものである。
【背景技術】
【０００２】
日常生活において、マルチメディアは、かつてないほどに大きな役割を果たしている。ほとんど、どこにおいても、デジタルビデオ画像（動画）を見つけることができる。デジタルビデオ内に含まれている情報量によって、デジタルビデオシステムの転送帯域幅の向上と大容量のストレージ装置が求められている。後者のストレージ装置分野における進歩の証が、近年におけるフラッシュタイプの半導体メモリモジュールの記録容量の急激な増大である。しかしながら、デジタルビデオの情報量は極めて大きいため、半導体メモリを使用してビデオデジタルデータを保存するには、実際は不可能であるか、または、少なくとも非常に高価になる。例えば、フル分解能（Ｄ１）の１分間のデジタルビデオは、圧縮しない場合には、１，８６６Ｇバイトのストレージ容量を必要とする。１９９０年代初頭に、ＭＰＥＧ１と呼ばれるビデオ符号化システムが登場したが、これは、デジタルビデオデータの量をオリジナルの約１／３０に低減する能力を有していた。このシステムは、品質問題のために改善され、ＭＰＥＧ２と呼ばれるビデオ符号器が誕生した。これは、主にＤＶＤおよびＤＶＢシステムに適用されている。インターネット指向のいわゆるストリーミングメディアを目的として、このシステムの改善バージョンであるＭＰＥＧ４の設計が既に完了している。
【０００３】
本発明の目的は、高効率のビデオデータ圧縮システムである。この提案するシステムによれば、半導体メモリモジュール内にビデオデータを保存可能であり、ビデオデータを保存する低コストのＲＡＭメモリモジュールアプリケーションが実現する（このようなＲＡＭモジュールは、コンピュータ市場に広く行き渡っている）。このような非機械的なストレージシステム（すなわち、可動部品を含んでいないストレージシステム）は、テレビ受像機や衛星放送およびケーブルテレビのアプリケーションに使用するいわゆるセットトップボックスに、放送番組の中間ストレージ用として、また、従来のビデオテープレコーダの代替品として、便利なものとして適用することが可能である。
【０００４】
また、本発明の圧縮方法を適用した符号化システムは、デジタルビデオデータを保存する従来のビデオカメラの機械的なテープ記録システムの代替品としても便利なものとして使用可能であり、例えば、フラッシュメモリを搭載したシステムに使用可能である。本発明であるハイブリッドビデオ圧縮符号化システムによれば、良好なビデオ品質を保持しつつ、デジタルビデオデータストリームの帯域幅を３００〜６００Ｋビット／秒に低減することが可能であり、これは、２時間のビデオ録画に対して、４〜５００Ｍバイトのストレージ空間しか必要としないことを意味している。
【０００５】
（Ｉ．背景技術）
ビデオフレームシーケンスを圧縮するために、既にいくつかの異なる方法が考案されている。
【０００６】
ビデオフレームの符号化プロセスの過程においては、要求される品質と要求される合計データ長を維持するために、符号化するデータの総量が最少および最大限度内においてダイナミックに変化している。一般に、既知のソフトウェアプログラムは、フレームｘの構成順序にそって符号化を行い、得られた符号化の平均フレーム長に応じて、圧縮の制御を実行している。平均フレーム長が以前の平均長の値を上回った場合には、圧縮を更に強化し（圧縮比が増大する）、平均フレーム長が以前の平均値を下回った場合には、規定されている最小および最大限度値内に入るように圧縮比を減少させることになる。
【０００７】
圧縮比は、通常、「より強力」な量子化（変換の際に実行される「丸め」処理のこと、以下を参照）を選択することによって増大する。この結果、誤り率が増大し、雑音が発生する。エラーは、しばしば、特に、１Ｍビット／秒未満において視覚的に顕著であり、且つ、耐え難くなる。圧縮性は、フレームごとに変化するため、期待品質を一定に保つ場合、通常、要求される平均フレーム長を維持することが困難となる。通常、フレーム長の最小値および最大値を過大に設定することはできない。この理由は、結果として、制御レンジが広くなり過ぎると共に、符号化されたフレームの長さが、膨大なスケールで変化することになるためである。多くの場合、規定されているフレーム長の最小値によって、要求される品質を確保することができず、結果的に圧縮比の更なる増大が必要となることがある。
【０００８】
（Ｉ．１．  ＭＰＥＧ法）
最も広範に使用されている周知のビデオデータ圧縮法の１つが、ＭＰＥＧである。これは、空間的冗長性に基づいた圧縮と時間的冗長性に基づいた圧縮とを統合しているため、ハイブリッド符号化法と見なすことができる。空間的冗長性に基づいた方法においては、フレーム内の細部を低減することによって、あるいは、フレーム内において繰り返し発生する特徴を識別し活用することによって、フレームの情報量を低減する。一方、時間的冗長性に基づいた圧縮法においては、先行および後続するフレームを使用することにより、これらの変化のみを符号化する。また、静止画像圧縮用の既知の方法の１つが、ＪＰＥＧである。この方法も空間的冗長性の活用に基づいたものである。圧縮対象の画像は、ブロックに分割され、分割されたブロックの情報量は離散コサイン変換を使用して低減される。
【０００９】
本発明の新規な特徴について容易に理解できるように、既知のＭＰＥＧシステムの動作について簡単に復習してみる。このＭＰＥＧシステムの処理内容は、図１に例示されており、システムの機能的な要素が示されている。圧縮対象の受信ブロックは、入力ライン１を通じてセレクタ２に伝達される。セレクタ２は、上記受信ブロックが、イントラ、インター、または予測用ブロックであるかどうかを判定し、相応して、これを処理する。ＤＣＴ（Discrete Cosine Transform：離散コサイン変換）モジュール３および量子化モジュール４を通過したブロックは、エントロピー符号化モジュール１３内において符号化され、ビデオマルチプレクサ１４を通じて、出力１５に書き出されることにより、伝送または保存対象の圧縮済みの出力データストリームとなる。イントラ／インターブロック（以下で、説明）の変換済みのデータは、逆量子化モジュール５、ＩＤＣＴ（逆コサイン変換）モジュール６、およびセレクタ７によって再構築され、このデータが、最終的に参照フレームストア８内に書き込まれる。後程詳述するように、量子化モジュール４は、基本的に、ＤＣＴ変換済みのブロックの要素（ＤＣＴ係数）を量子化係数によって除算する。そして、これらの係数は、実際に、これらに量子化係数を乗算することにより、逆量子化モジュール５によって再構築される。換言すれば、逆量子化モジュールは、少なくとも、整数除算から生じる誤差が許容可能な程度にまでＤＣＴ係数のオリジナルの値を回復するように試みている。これは、それぞれのフレームまたはフレーム内のそれぞれのブロックを即座に復号化しようという意図の下に行われている。即座の復号化を必要とする理由は、この方法が、復号化済みのフレームを次のフレームを符号化するための参照用として使用しているためである。尚、この手順には、エントロピー符号化（復号化）は含まれていない。この理由は、復号化された参照フレーム内において、考慮すべき情報損失をエントロピー符号化が引き起こさないようにする点を考えた場合に、エントロピー符号化は過剰処理になるためである。
【００１０】
最初に受信される第１フレームは、参照すべきフレームを有していない。これは、第１フレームが常にいわゆるイントラフレーム（Ｉフレーム）であることを意味している。従って、第１フレームの場合には、Ｉタイプのフレーム全体の処理が確定するまで、上記手順が反復される。先行または後続のフレームを参照用として使用する場合、各々のフレーム／ブロックは、それぞれ、ＰタイプおよびＢタイプのフレーム／ブロックと呼ぶ。
【００１１】
次に受信されたフレームのブロックは、動き推定モジュール１０に供給される。動き推定モジュールは、参照フレームストア８内に保存されている参照フレームの中から、符号化対象となる受信ブロック用の参照ブロックを捜し出すことを試みる。
【００１２】
動き推定モジュール１０は、捜し出された参照ブロックを使用して、動き補償を実行し、次いで、予測モジュール９により、符号化対象の（オリジナルの）ブロックが参照ブロックから減算され、差分が、前述の変換を実行するモジュール（セレクタ２、ＤＣＴ変換モジュール３、および量子化モジュール４、次いで、エントロピー符号化モジュール１３、そして、最後に、マルチプレクサ１４）に伝達される。動き補償の結果として生成される動きベクトル（ＭＶ）は、エントロピー符号化モジュール１２によって符号化された後に、マルチプレクサ１４に伝達され、この結果、動きベクトルが出力データストリーム１５内に挿入される。
【００１３】
参照番号７のモジュールは、ＰタイプおよびＢタイプのブロックの場合には検出された参照ブロックを逆変換済みの差分に加算し、且つ、Ｉタイプのブロックの場合には変化させないようなセレクタ／合計モジュールである。このようにして再構築されたブロックが、続いて、参照フレームストア内に書き込まれる。探索において検出された位置が、ベクトルに変換され、エントロピー符号化モジュール１２によって符号化される。
【００１４】
次に、これらの動作について更に詳細に説明する。
【００１５】
（Ｉ．２．１．）
時間的冗長性に基づいた圧縮システムは、連続したフレームの変化した部分のみを符号化する。これは、実際には、フレームをブロックに分割し、個々のブロックを先行または後続のフレームの探索範囲内に配置されているピクセルとピクセルごとに比較することによって実行される。この手順が、図２に示されており、これは、先行のフレーム１６内に配置されている探索範囲２１、または後続のフレーム１８の探索範囲１９内において、フレーム１７の対象とするブロック２０に対して最も一致する参照ブロックを探索している状況を示している。参照ブロックは、どこにでも配置可能であり、これが、参照フレーム１６または１８内に示されている（グレーで示されている）探索範囲と一致する必要はない。当然のことながら、このような場合には、１つまたは複数の対象とする参照フレーム内において参照探索が成功しないということになる。また、明らかなように、参照フレーム１７、１８は、参照探索のためにブロックに分割されることはなく、図２に示されているブロックは、わかりやすくするためのものである。
【００１６】
比較は、次式を使用して実行される。
【数１】
2007503784.tif 000003
ここで、ＭＳＥは、符号化対象のブロックの個々のピクセルと、求めている参照ブロックとの比較を基本的に定量化するいわゆる平均二乗誤差であり、この比較は、ピクセルごとに実行され、インデックスｋ、ｌは、符号化対象のブロックの位置を定めるインデックスであり、インテックスｕ、ｖは、参照フレーム内に配置された探索範囲を指し示すインデックスであり、Ｍ、Ｎは、ブロックの水平および垂直サイズを示す。
【００１７】
符号化対象のブロックを含むフレームの前後に連続的に配置されているフレームを、いずれも参照フレームと呼ぶ。探索手順においては、参照フレーム内において、通常、−３２／３２ピクセルのサイズを有する探索範囲を設定する。符号化対象の現在のブロックの位置を探索範囲の中心として指定することになる。すなわち、符号化プロセスが、現在、位置１０，１０に位置している場合には、この位置が、参照フレーム内における探索範囲の中心となる。探索範囲を現在のブロックから一歩一歩走査し、それぞれの段階において誤差（先程規定したＭＳＥ値）を算出する。最良の参照ブロックの候補は、探索が最小誤差を付与する位置、すなわち、符号化対象の現在のブロックに最もマッチングしたブロックとなる。探索を成功と見なすことができるか否かを誤差値に基づいて判定することが可能である。探索に成功した場合には、求めている参照ブロックの位置がフル分解能モードで得られる。但し、大部分の場合に、探索の結果は不満足なものとなる。
【００１８】
この問題を更に詳細に検討すれば、過大な誤差（従って、探索の不成功）の原因が、誤差の評価方法であることが直ぐにわかる。例えば、最良の位置にあっても、雑音の多いフレームの場合には、２つのブロックが同一にならず、ブロックの情報量は、雑音のために異なっている。この状況は、１つのブロックの位置ずれが、ピクセルサイズの正確な倍数になっていない場合にも発生し、位置ずれは、結果的に２つの整数倍のピクセルの間のどこで終了しており、すなわち、実際の位置ずれの量は、ピクセルサイズの端数によってしか正確に表現できない。従って、符号化対象のブロックと参照ブロックとの間の正しい一致を図るためには、雑音やその他の邪魔な要因をフィルタリングする必要がある。通常、この目的には、低域通過フィルタを適用する。これらのフィルタは、既定のサンプリング周波数に従って高周波成分を減衰させ、これにより、画像の雑音をある程度抑圧することができる。フィルタは、通常、それぞれのピクセルを、その隣のまたは上部に配置されているピクセルと、あるいはこれらの両方と平均化することによって誤差を補償する。例えば、いわゆる１／２ピクセルの分解能をもつ参照フレームは、オリジナルフレームのそれぞれの２つの隣接するピクセルの間に、これら２つの隣接するピクセルの平均値を有するピクセルを挿入することによって生成される。各々の２つの隣接するピクセルの平均値から新しいピクセルを生成し、この新しいピクセルを使用してオリジナルと同一の分解能を有する新しいフレームを生成すれば、結果として、実質的に同一のものが得られる。得られたフレームは、実際には、水平に補間された場合には、オリジナルのものに対して１／２ピクセルだけ左にシフトし、垂直に補間された場合には、１／２ピクセルだけ上にシフトされる。
【００１９】
（Ｉ．２．２．）
誤差補償のためには、通常、双１次フィルタ処理が提案されている。双１次フィルタ処理は、３つの補間された参照フレーム（フィルタ処理済）を生成する段階を含んでいる。３つとは、すなわち垂直補間、水平補間、および垂直と水平の両方による補間を言う。参照フレームは、符号化済みのイントラ（または、インター）フレームの復号化（再構築）された変形であるということを思い起こして頂きたい。これは、対象とする参照フレームに基づいた更なるフレームが、復号化された参照フレーム内に存在している量子化誤差によって更に劣化することを防止するために実行されるものである。
【００２０】
次の段階において、１／２ピクセル分解能で探索を実行する（すなわち、これは、フィルタ処理済の参照フレーム内において継続される）。セレクタＳを、一致したｘ，ｙ位置のビットから、下記の式にて生成する。
Ｓ＝（ｙ＆１）＊２＋ｘ＆１（ここで、＆は、論理ＡＮＤ演算を意味する）。次に、−１／＋１、−１／＋１の限度において新しい探索範囲を設定する。すなわち、（ｘ＋（−１／＋１），ｙ＋（−１／＋１））で設定する。範囲の中心として設定された第１の探索段階（フィルタ処理がされていない参照フレーム内での探索）において見出された最良のブロックの位置により、探索は行なわれる。そして、この新しい範囲を使用して探索を反復する。セレクタは、最良のブロックの位置に従って必要とする補間済みの参照フレームと、上記位置によって決定されるフレーム内の特定のブロックとを選択し、対象とするブロックに関連する二乗誤差を算出する。探索の終了時点においては、誤差が最小であった位置が保持されている。従って、誤差が最小であった際にセレクタが指し示していたブロックのピクセルから、対象とするブロックのピクセルを減算することになる。これが図３に示されている。符号化対象のフレーム２２のブロック２４と類似するまたは同一のブロックを、参照フレーム２３内において求めている。最良に一致したブロック２５が検出された際に、このブロックの情報はＳａｄ／Ｓｕｂ（比較）モジュール２９にデータライン２８を通じて供給され、下記の比較が実行される。セレクタが、位置の値に基づいて、式Ｓ＝（ｙ＆１）＊２＋ｘ＆１によって選択される内容に従って、フィルタ未処理、水平補間（フィルタ処理）済、垂直補間（フィルタ処理）済、または、両方向での補間（フィルタ処理）済のいずれかの参照ブロックを使用して、当該ブロックとの比較を実行する。この手順は、局部的なフィルタ処理（補間）がされるようなフィルタ未処理の参照フレームのみを含むことになる。この手順は、事前にフィルタ処理（水平、垂直、および両方向への補間）がされた３つの参照フレームが利用可能な場合と同一である。この場合には、セレクタは、前述の選択肢（フィルタ処理がされていないフレームと３つの異なる方式でフィルタ処理されたもの）から適切な参照フレームを選択し、位置ｘ，ｙに配置されているブロックを更なる比較および処理のために転送することになる。
【００２１】
最終的には、二乗誤差、あるいは、最小誤差ブロックの場合には、参照ブロック２５と符号化されたブロック２４との差分が出力３０に伝達される。
【００２２】
（Ｉ．２．３．）
次いで、探索に成功した場合には、結果的に生成された差分が、あるいは、探索に成功しなかった場合には、現在のブロック自体が、ＤＣＴ変換によって空間表現から周波数表現に変換される。次いで、データの不必要な精度を、いわゆる量子化処理によって低減する。これは、基本的に、ＤＣＴによって生成される高次の係数を破棄する段階を伴っており、この理由は、通常、これらの係数が小さいことにある。残りのＤＣＴ係数も、小さい値であるか、あるいは、ゼロであり、これらは、先程設定された位置の値と同時に、エントロピー符号化によって効率的に符号化可能である。この手順が図４〜図５に示されている。
【００２３】
図４は、イントラフレーム用の符号化プロセスの概略ブロック図を示している。入力フレーム３１は、Ｙ、ＵＶフォーマットを有しており、ここで、Ｙは、輝度情報を含んでおり、ＵＶは、色差（色度）情報を含んでいる。フレーム３１は、例えば、８ｘ８ピクセルサイズのブロックを有している。従って、個々のブロックは、８ｘ８のマトリックスであり、別個のＹおよびＵＶブロックが対象とするフレームに関連付けられている。以下においては、特記しない限り、ＹおよびＵＶブロックは、同様に符号化されており、従って、これらは、図４においては、一般的に、マトリックスｆ（ｉ，ｊ）によって表されている。対象とするブロックに対して段階３１において実行されるＤＣＴ変換の結果は、Ｆ（ｕ，ｖ）と表記されているマトリックスであり、これも、８ｘ８の要素を有している。段階３３において、マトリックスＦ（ｕ，ｖ）の個々の要素を変更することにより、図４に参照番号３７によって示されている量子化済みのマトリックスＦｑ（ｕ，ｖ）が得られる。前述のように、量子化は、基本的に、データの不必要な精度の削減を伴っており、これは、実際には、Ｆ（ｕ，ｖ）マトリックスの特定の要素を破棄することによって実行される。従って、オリジナルブロック内に含まれていた情報は、これ以降も、量子化済みのマトリックス３７内に含まれている。量子化済みのマトリックス３７の第１要素、いわゆるＤＣ係数が、段階３４において、ＤＰＣＭ（Delta Pulse Code Modulation）によって低減される。これは、基本的に、同じレベルの大きさを有する後続ブロックのＤＣ係数を互いに減算することによって、振幅が相対的に小さいＤＣ係数を取得し、これらを、段階３６において実行される静的なハフマンエントロピー符号化によって効率的に符号化可能であることを意味している。マトリックスのもう１つの要素、いわゆるＡＣ係数は、いわゆるランレングス符号化を適用して符号化するが、これは、発生カウントと、繰り返し発生する係数の係数値のみを記録することに基づいたものである（この手順については、後程詳述する）。ＤＣおよびＡＣ係数は、マトリックス３７に示されているように、いわゆるジグザグ走査順序に従って、量子化済みの８ｘ８マトリックスから取得される。この結果、これらの係数は、低頻度係数から始まって高頻度係数に向かう頻度の昇順で、エントロピー符号化器に転送される。
【００２４】
（Ｉ．２．４．）
ブロックが、イントラではなく、インター符号化されたブロックである場合に、一致して補間がされたＰタイプブロックの符号化が図５に示されている。符号化対象のブロック４２用の参照ブロック４３を見出すことが求められている。ブロック４２は、符号化対象の現在のフレームの各ブロック３８の中において、そのオリジナルの位置４０に配置されている。参照ブロック４３は、参照番号４１によって示されている位置に配置可能である。探索は、参照フレームの探索範囲３９内において、符号化対象のブロック４２を段階的に移動させることによって実行される。最良の一致が見出された場合に、符号化対象のブロック４２を参照ブロック４３から減算し（または、この逆で）、符号化対象のブロック４２と、一致した参照ブロック４３との間の誤差を生成する。この結果、誤差の輝度成分４４およびクロミナンス成分４５が得られる。これらの成分に対して、段階４６において、ＤＣＴ変換、量子化、およびランレングス符号化を適用し、次いで、このランレングス符号化済みのデータに対して、最後に、段階４７において、更にエントロピー符号化を施す。
【００２５】
復号化の際に、参照用としてオリジナルのフレームが利用可能でないことから、参照用として使用できるのは、既に復号化済みのフレームのみである。符号化プロセスにおいて、既に符号化済みのデータから参照フレームを再構築する必要があるのは、これが理由である。これを実行する最も簡単な方法は、量子化の直後に逆量子化と逆ＤＣＴを実行する方法である。
【００２６】
参照探索に成功した場合には、マッチングした参照ブロックを逆変換済みのブロックに追加し、この逆変換済みのブロックを現在のフレームの現在の位置に書き込む。この段階で取得されたフレームが、次のフレーム用の参照用として機能することになるため、現在のフレームのすべてのブロックを更新する。
【００２７】
参照探索に成功した場合には、ブロックは、インターブロックとして分類され、探索に成功しなかった際には、ブロックは、イントラブロックとして分類される。ブロック分類データは、符号化プロセスにおいてそのブロックを生成した方法を示しているため、復号化器のために必要である。フレームも、同一の原理に従って分類される。
【００２８】
フレーム用の参照フレームが検出されない場合（あるいは、差分の符号化が、オリジナルフレームの符号化と同一量のデータを実質的に必要とするほどに、フレームが参照フレームと比べて変化している場合）には、フレーム全体をＤＣＴを使用して変換し、Ｉフレームとして分類する。フレームが、先行フレームのみを参照用として使用している場合には、Ｐフレームとして分類し、フレームが、先行および後続するフレームの両方を参照用として使用している場合には、Ｂフレームとして分類する。
【００２９】
図６は、Ｂフレームの場合に、符号化システムが、先行フレーム４８と後続フレーム５０の両方の内部において、フレーム４９にある符号化対象のブロックＣの参照ブロックを探索し、最終的に、最小の誤差を生成したもの、または２つのブロック間で線形補間された平均のいずれかを基準として保持する状況を示している。
【００３０】
まず、一致したブロックＰおよびＣのＭＳＥ値を演算し、そして、ブロックＦおよびＣについても、ＭＳＥを算出する。次に、処理システムは、0.5＊（Ｐ＋Ｆ）の式によって生成されるブロックのＭＳＥとブロックＣのＭＳＥとを算出し、最小のＭＳＥをもたらすブロックを最終的に符号化する。すなわち、ブロックＣのＭＳＥが、先行するフレーム４８に関連して最良である場合には、このフレーム４８のブロックＰが、ブロックＣ用の参照ブロックとなる。最良の結果が、フレーム４９の後続のフレーム５０によって生成される場合には、フレーム５０のブロックＦがＣの参照用となり、最良の結果がＦおよびＰの平均によって得られる場合には、これらのブロックの両方がＣ用の参照用として使用されることになる。いずれの結果も十分に良好ではない場合には、ブロックは、イントラブロックとして符号化される。常にブロック記述子構造は、参照用のソース、すなわち、ブロックＣがどう符号化されたかを示さなければならない。
【００３１】
（Ｉ．２．５．）
参照探索に成功した場合には、設定された参照位置をベクトルに変換し、ベクトルを符号化する。これらのベクトルは、参照に対する符号化対象のブロックの変位の大きさと方向を規定している。
【００３２】
ＤＣＴの適用は、次のような事実から正当化が可能である。逆ＤＣＴ変換は、係数の一部が低減された（ゼロになった）場合に、非常に良好な近似によってオリジナルのブロックデータを再構築する能力を有している。ＤＣＴは、ＦＦＴの同一処理機能であるのに、なぜ、ＤＣＴを使用するのかという疑問が生じよう。回答は、ビデオ符号化の場合には、ＦＦＴよりも、ＤＣＴのほうが、良好な関数近似を付与するという経験的な証拠が存在しているためである。図７に例として示されているいくつかの具体的な値が、これを示している。ＦＦＴ係数５２およびＤＣＴ係数５３は、それぞれ、ＦＦＴおよびＤＣＴ変換を入力データ５１に対して実行することによって生成されたものである。量子化の後（すなわち、係数を破棄または切り捨てた後）に、切り捨て済みのＦＦＴ係数５４と切り捨て済みのＤＣＴ係数５５が得られる。逆変換の後に、ＩＦＦＴによって再構築されたデータ５６と、ＩＤＣＴによって再構築されたデータ５７が得られる。再構築されたデータを曲線５８および５９によってプロットすることにより、ＦＦＴが、係数の切り捨ての影響を受けやすいことがわかる。
【００３３】
（Ｉ．２．６．）
量子化の目的は、不必要な細部を破棄することによるフレームデータの精度（詳細レベル）の低減である。対象とするブロックを綿密に調査すれば、ブロックが、視覚的に知覚されない多くの細部を含んでいることに気付く。この理由は、人間の眼の感度が、空間周波数成分が減少する方向に増大しているという点にある。従って、フレームの高周波数成分が低周波数成分よりも大きく減衰した場合にも、ある程度のレベルまでは、データの圧縮率が増大しても、復号化されたフレーム内において変化を視覚的に認識することはできない。この種の量子化は、ＭＰＥＧ１〜２規格によって適用されている。別の既知の方法によれば、係数の周波数分布を無視しており、この結果、それぞれの係数を同一の定数によって除算している（ＭＰＥＧ４規格のＨ２６Ｘ）。量子化の最も重要な機能は、ＤＣＴ係数を表しているビット数の低減である。換言すれば、ＤＣＴ変換された係数は、可能な限り少ない数のビットによって表すことが要求される。係数を表すビット数が少ないほど、圧縮率も良好となる。但し、除数の値が増大すると、整数除算によって発生する誤差も増大することになる。
【００３４】
ＤＣＴ係数を表すビット数を低減する既知の方法には、その他のものも存在している。例えば、いわゆるＤＣ（Delta Code）予測は、連続したＤＣＴブロックの０番目の位置に配置されている値は、互いにわずかに異なっているに過ぎないという認識に基づいたものである。従って、ＤＣ値を先行するものから減算すれば、ＤＣ成分の値と共に、これらの値を表すビット数を低減可能である（尚、ブロックの０番目の位置に配置されている係数をＤＣと呼び、その他のものをＡＣと呼ぶ）。
【００３５】
ＡＣ予測のプロセスは、ＤＣ予測に類似しているが、係数を異なる方向に走査し、様々な方法を使用して平均化するという相違点を有している。ＡＣ／ＤＣ予測用の解決方法としては、いくつかのものが周知であり、従って、本明細書において、それらについて詳細に説明する必要はない。
【発明の開示】
【発明が解決しようとする課題】
【００３６】
（ＩＩ．）
本発明の全般的な目的は、前述の既知の方法の圧縮効率を改善することにあり、更に詳しくは、相対的に小さな演算負荷を有する効率的な圧縮を提供することにある。この目的は、本明細書に添付されている独立請求項に記述されている本発明による方法によって実現されている。
【００３７】
尚、前述の各方法は、それ自体を効果的に適用可能であるが、一方においては、個々の方法の効果が加算されると共に、他方においては、個々の方法が圧縮プロセスの異なる段階に関係しているため、これらを同時に使用することにより、結果的に、特に著しい改善が実現可能である。
【００３８】
本発明の方法の各段階を実行する種々の装置およびソフトウェア（コンピュータプログラムプロダクト）と、符号化されたデータの復号化を実行する実質的に逆変換の方法も、本発明の目的である。
【００３９】
以下、添付の図面を参照し、本発明について説明する。
【課題を解決するための手段】
【００４０】
（ＩＩＩ．）
本発明によるハイブリッド符号化システムの論理構造（概略機能図）が図８に示されている。このシステムの主要機能ユニットは、図１に示されている既知のＭＰＥＧ符号化システムに、多くの点において類似している。入力ビデオデータ６０（換言すれば、符号化対象のフレーム）が、フレームスケーリングモジュール６１に供給され、このモジュールが、いくつかの異なる基準（後程詳述する）に従って、入力フレームのサイズを低減するかまたは、変更することなしに、そのままの状態で処理する。本システム全体は、符号化制御ユニット６２によって制御されており、この正確な機能については、本明細書において、後程、明らかにする。供給されたフレームまたはブロックは、イントラ／インタースイッチ６３に従って、イントラまたはインター符号化によって符号化される。ブロックは、ＤＣＴ変換モジュール６４、量子化モジュール６５、およびエントロピー符号化モジュール７２を通過することにより、変換、量子化、および符号化された状態で、出力７３に送出される。インターフレームを符号化するのに必要な参照フレームは、逆量子化モジュール６６および逆ＤＣＴモジュール６７によって生成され、これによって再構築された参照フレームが、ブロック解除フィルタ６９を通じて、フレームストア７０に供給される。動き補償、すなわち、フィルタ処理された参照フレームと補償された動き情報７４（動きベクトルおよび減算されたブロック）の生成は、参照番号６８によって示されているモジュールによって実行される（生成時の分解能は１／２、１／４、および１／８ピクセルの間で調節可能）。フレームストア７０は、最新の参照フレームを保存し、当該ブロックは、自動的に更新（実行）される。モジュール７１は、変化を識別し、フレーム内の変化を追跡するのに最も適したブロック分割を見出し、且つ、モジュール７１は、四分木構造（後程詳述する）を使用して最良のブロック分割を表す。エントロピー符号化モジュール７２は、いわゆるニューラル算術圧縮器である（以下を参照）。
【発明を実施するための最良の形態】
【００４１】
以下、本発明による符号化（圧縮）プロセスの特定の態様について更に詳細に説明する。
【００４２】
本明細書においては、「予測（Prediction）」という用語は可逆的な数式を包含するという意味において使用されており、この数式は実質的に平均化の特徴を有する動作に基き、且つ、実際または潜在的に期待可能な類似性を活用することで、良好な近似によってオリジナルの値に戻すことができる。これは、データの再構築によってオリジナルデータの近似値のみが生成可能であることを意味し、換言すれば、期待値が「予測値」であることを意味している。実際には、特定の関数を使用し、これらの計算（これらは、通常、平均化の処理を含む）を実行する。
【００４３】
本発明の圧縮法は、時間的および空間的な冗長性の両方を活用しているため、基本的にハイブリッドの特性を具備している。実行される圧縮は、サイズが動的に変化するブロックを含む階層的なブロック構造に基づいている。参照の探索においては、現在のフレームの直前および直後のフレームのみならず、更に先行および後続のフレームをも使用しており、この最大深度は、＋１および３のフレームである（すなわち、参照探索は、１つの後続のフレームと、３つの先行するフレーム内において許容されている）。この方法によれば、高度な動き圧縮が実現され、分解能の範囲は、１／２〜１／８ピクセルである。エントロピー圧縮器は、マルチレベル予測に基づいて、最適化された算術符号化を実行する。
【００４４】
以下においては、「イントラ予測（Intra Prediction）」という用語は、１つまたは複数の基準ブロック内の値に応じて、符号化対象の現在のブロックのピクセル値を低減またはゼロにする可逆的な数式を意味している。
【００４５】
わかりやすくするために、本明細書においては、以下の２つの基本的に異なる予測原理を参照していることを指摘しておかなければならない。
（１）イントラフレームの符号化に適用されるいわゆる「イントラ予測」
（２）ニューラルエントロピー符号化において使用される予測
これらは、該当する当該箇所において説明することになる。
【００４６】
（ＩＶ．符号化対象ブロックの高速イントラ予測）
（ＩＶ．１）
イントラ予測は、対象フレーム内で隣接するブロックが、しばしば、類似した特性を有しており、従って、隣接するブロック間における空間的な相関をデータ圧縮に使用することが可能であるという観察に基づいたものである。従って、このイントラ予測手順を使用することにより、選択されたブロック（符号化対象のブロック）の情報量を、その選択されたブロックに隣接している１つまたは複数のブロックの既定となるピクセルの情報量に基づいて変更することが可能である。可能な態様においては、図９に概略的に描かれているように、符号化対象ブロックの前に配置されているブロックの垂直ライン７６、またはこの対象ブロックの上部に配置されているブロックの水平ライン７７、あるいは、これらの両方（すなわち、その場所でのピクセル値）を使用して、イントラ予測は実現される。垂直ライン７６をＢと呼び、水平ラインをＡと呼ぶことにしよう。具体的な例を考えてみよう。符号化対象のブロックの上に配置されているブロックの最後の水平ライン７７の要素が、２２１、２２４、２３０、２３２であるとしよう。
【００４７】
符号化対象のブロックが、次のものであるとしよう。
２１９、２２３、２２６、２３２
２１９、２２４、２２４，２３１
２１７、２２０、２２１、２２９
２１４、２２０、２２１、２２８
【００４８】
ここで、符号化対象のブロックのそれぞれの水平ラインの値から水平ライン７７の値を減算する。この結果、次の予測ブロックが得られる。
２、１、４、０
２、０、６、１
４、４、９、３
７、４、９、４
【００４９】
この例は、水平予測を使用している。この予測の利点は、ピクセルのビットの低減であり、水平ライン７７内において観察される左から右に増大する値の傾向が、符号化対象のブロックの場合にも同様であり、符号化対象のデータのエントロピーも向上している。結果的に得られた値の分布は、２ｘ「２」、２ｘ「１」、２ｘ「０」、４ｘ「４」、２ｘ「９」、１ｘ「７」であり、これは、オリジナルのブロックよりも高いシンボル発生率を示している。
【００５０】
変換／予測タイプをより多く規定し、これら１つ１つを実行することによって、達成可能なエントロピーはより一層良くなっていく。従って、提案する解決方法の実際的な一実施例においては、符号化対象のオリジナルブロック７５の代わりに、変更（予測）されたブロックを符号化する。この予測されたブロックは、符号化対象のブロック７５の水平または垂直ラインから、隣接する水平ライン７７Ａまたは垂直ライン７６Ｂをラインごとに減算することによって、あるいは、オリジナルのピクセル値からＡおよびＢの平均値を減算することによって、この計算は、通常、（ピクセル−(Ａ+Ｂ)/２）の演算式によって実行される）、この結果、いわゆる予測ブロックが得られる。これ自体は、既知の解決方法ではあるが、本発明は、異なるサイズのブロックの使用を許容することにより、場合によってはそれらを同時に混合することで、イントラ符号化の効率を大幅に改善することが可能であり、これにより、通常、良好に圧縮可能なブロックが得られることを発見した。しかしながら、実行を要する計算が多いことから、この解決方法は、それ自体、実行不可能である。既知の方法においては、予測ブロックに対してＤＣＴ変換およびエントロピー符号化を効果的に実行することにより、最終的な最良に圧縮された予測ブロックを見出している。対象の予測ブロックをどの程度圧縮可能であるかは、この後で確証される。しかしながら、従来において見出された最良に圧縮された予測ブロックは、再構築されたブロックの誤差（オリジナルとの比較）が過大でない場合にのみ使用可能である。従って、誤差を評価するべく、逆変換を実行しなければならず、結局、非常に大きな演算能力が要求されることになる。
【００５１】
従って、本発明によれば、ＤＣＴ変換を実行する前に、符号化対象のブロックについて圧縮性分析を実行している。この圧縮性分析に基づいて、ＤＣＴおよびエントロピー符号化によってブロックを符号化する。但し、この圧縮性分析によれば、ほとんどの場合に、符号化対象のブロックを更なるサブブロックに分割することによってブロックの圧縮性を調べることも有益であることが明らかとなる。この場合には、様々なブロック分割の変形に関連付けられているブロックの圧縮性を分析し、最良となる可能性がある結果を約束する分割を選択する。最終的に、ブロック分割に続くイントラ予測の後に、選択した最も可能性がある良好なブロック分割に基づいてＤＣＴ変換を実行する。
【００５２】
（ＩＶ．２．）
次に、このプロセスについて更に詳細に説明する。図１２から分かるように、本発明の図示の実施例においては、可能なブロックサイズは、１６ｘ１６、８ｘ８、および４ｘ４のピクセルである。異なるサイズを有するブロックの（イントラ）予測は、複数の方法で実行可能である。これらを以下に記載する。
【００５３】
（ＩＶ．２．１  ４ｘ４ブロックの予測）
６つの予測タイプが規定される。
【００５４】
（１）ＤＣ予測
予測ベクトルＳ０は、以下で求められる。
ＡおよびＢが存在する場合、
Ｓ０=Σ(Ａj+Ｂj+4)/8
Ａのみが存在する場合、
Ｓ０=Σ(Ａj+2)/4
Ｂのみが存在する場合、
Ｓ０=Σ(Ｂj+2)/4
その他の場合は、Ｓ０＝128
【００５５】
そして、予測ブロックは、次の式に従って演算される。
ＤＣＰ(j,i)＝ＩＢ(j,i)−Ｓ０    ここで、ｊ＝0‥3、ｉ＝0‥3
なお、ＩＢは、符号化対象のブロックで、ＤＣＰは、予測ブロックである。
【００５６】
（２）水平予測
ＤＣＰ(j,i)=ＩＢ(j,i)-Ａ(i)     ここで、ｊ＝0‥3、ｉ＝0‥3
【００５７】
（３）垂直予測
ＤＣＰ(j,i)=ＩＢ(j,i)-Ｂ(i)     ここで、ｊ＝0‥3、ｉ＝0‥3
【００５８】
（４）水平および垂直と組み合わせた対角予測
Ｔ(0,0)=(Ｂ(3)+2*Ｂ(2)+Ｂ(1)+2)/4
Ｔ(1,0)=(Ｂ(2)+2*Ｂ(1)+ Ｂ(0)+2)/4
Ｔ(2,0)=(Ｂ(1)+2*Ｂ(0)+Ａ(-1)+2)/4
Ｔ(3,0)=(Ｂ(0)+2*Ａ(-1)+Ａ(0)+2)/4
Ｔ(4,0)=(Ａ(-1)+2*Ａ(0)+Ａ(1)+2)/4
Ｔ(5,0)=(Ａ(0)+2*Ａ(1)+Ａ(2)+2)/4
Ｔ(6,0)=(Ａ(1)+2*Ａ(2)+Ａ(3)+2)/4
ＤＣＰ(j,i)=ＩＢ(j,i)-Ｔ(j-i+3)     ここで、ｊ＝0‥3、ｉ＝0‥3
【００５９】
（５）垂直を有する対角
Ｔ(j,i)=Ａ(3)     ここで、ｊ＝0‥3、ｉ＝0‥3
Ｔ(0,0)=(Ａ(0)+Ａ(1))/2
Ｔ(1,0)=Ａ(1)
Ｔ(0,1)=Ｔ(2,0)=(Ａ(1)+Ａ(2))/2
Ｔ(1,1)=Ｔ(3,0)=Ａ(2)
Ｔ(0,2)=Ｔ(2,1)=(Ａ(2)+Ａ(3))/2
ＤＣＰ(j,i)=ＩＢ(j,i)-Ｔ(j,i)     ここで、ｊ＝0‥3、ｉ＝0‥3
【００６０】
（６）水平を有する対角
Ｔ(j,i)=Ｂ(3)     ここで、ｊ＝0‥3、ｉ＝0‥3
Ｔ(0,0)=(Ｂ(0)+Ｂ(1))/2
Ｔ(0,1)=Ｂ(1)
Ｔ(1,0)=Ｔ(0,2)=(Ｂ(1)+Ｂ(2))/2
Ｔ(1,1)=Ｔ(0,3)=Ｂ(2)
Ｔ(2,0)=Ｔ(1,2)=(Ｂ(2)+Ｂ(3))/2
ＤＣＰ(j,i)=ＩＢ(j,i)-Ｔ(j,i)     ここで、ｊ＝0‥3、ｉ＝0‥3
【００６１】
（ＩＶ．２．２．）
８ｘ８ピクセルのサイズを有するブロックの予測を同様の原理によって実行可能である。この場合には、４つの可能なタイプが定義される。
【００６２】
（１）ＤＣ予測
ＡおよびＢが存在する場合、
Ｓ０=Σ(Ａj+Ｂj+8)/16
Ａのみが存在する場合、
Ｓ０=Σ(Ａj+4)/8
Ｂのみが存在する場合、
Ｓ０=Σ(Ｂj+4)/8
その他の場合は、Ｓ０＝128
【００６３】
（２）水平予測
ＤＣＰ(j,i)=ＩＢ(j,i)-Ａ(i)     ここで、ｊ＝0‥8、ｉ＝0‥8
【００６４】
（３）垂直予測
ＤＣＰ(j,i)=ＩＢ(j,i)-Ｂ(i)     ここで、ｊ＝0‥8、ｉ＝0‥8
【００６５】
（４）対角予測
ＤＣＰ(j,i)=ＩＢ(j,i)-(Ａ(i)+Ｂ(i))/2  ここで、ｊ＝0‥8、ｉ＝0‥8
【００６６】
（ＩＶ．２．３．）
最後に、１６ｘ１６ピクセルブロックの予測も同様である。この場合には、４つの予測タイプが規定される。
【００６７】
（１）ＤＣ予測
ＡおよびＢが存在する場合、
Ｓ０=Σ(Ａj+Ｂj+16)/32
Ａのみが存在する場合、
Ｓ０=Σ(Ａj+8)/16
Ｂのみが存在する場合、
Ｓ０=Σ(Ｂj+8)/16
その他の場合は、Ｓ０＝128
ＤＣＰ(j,i)=ＩＢ(j,i)-Ｓ０  ここで、ｊ＝0‥15、ｉ＝0‥15
（ＩＢは、現在のブロックであり、ＤＣＰは、予測ブロックである。）
【００６８】
（２）水平予測
ＤＣＰ(i,j)=ＩＢ(j,i)-Ａ(i)   ここで、ｊ＝0‥15、ｉ＝0‥15
【００６９】
（３）垂直予測
ＤＣＰ(j,i)=ＩＢ(j,i)-Ｂ(i)   ここで、ｊ＝0‥15、ｉ＝0‥15
【００７０】
（４）いわゆる「計画予測」
ｖ=5*(（ΣＡ(j+7)-Ａ(j-7)*j))/4)/4
ｈ=5*((ΣＢ(j+7)-Ｂ(j-7)*j))/4)/4
ｋ=Ａ(15)+Ｂ(15)
Ｔ(j,i)=(ｋ+(i-7)*ｈ+(j-7)*ｖ+16)/32
ＤＣＰ(j,i)=ＩＢ(j,i)-Ｔ(i)   ここで、ｊ＝0‥15、ｉ＝0‥15
【００７１】
（ＩＶ．２．４．）
従って、この態様においては、提案する方法は、３つの異なるブロックサイズと、１４個にも及ぶ予測タイプを使用している。既知の方法を適用した場合には、すべての予測と後続の計算を、１６ｘ１６モードにおいて、４回（すなわち、許容されているブロックサイズが、１６ｘ１６である場合）、８ｘ８モードにおいて、４回、そして、４ｘ４モードにおいて、１６回実行する必要があるため、高い演算能力を必要とすることが容易にわかる。実際には、これは、１６ｘ１６のサイズのブロックがサブブロックに分割されていない場合には、Ｐ→ＤＣＴ→Ｑ→ＩＱ→ＩＤＣＴ→ＩＰ変換の順序処理と、後続する係数のエントロピー符号化と、オリジナルのブロックと逆変換されたブロックとのＭＳＥ値の判定を４回実行しなければならないことを意味している。サブブロックへのブロックの分割が許容されている場合には、前述の方法によれば、上記変換の合計数は、１６回（４＊４）、あるいは、場合によっては、９６回（６＊１６）にも増大する（但し、ブロックサイズは小さくなる）。
【００７２】
この理由から、最良の予測ブロックの選択は、図１０に示されているフローチャートに従って実行される。ブロックデータ７９が、マルチプレクサ／セレクタ８０を通過し、このマルチプレクサ／セレクタによって、ブロックサイズに応じて、先程列挙されたものの中から現在の予測モード８１が選択される。セレクタ８２ｂは、予測ブロックのブロックデータ７９を直接的に、またはアダマール変換モジュール８２ａを介して、処理モジュール８２ｃに送出するように、ユーザーによって設定可能である。処理モジュール８２ｃが、ブロックの絶対二乗合計を生成し、結果的に得られた合計を比較器８３が評価する。値が基準となる閾値を下回っている場合には、基準となる閾値をその瞬間的な合計によって上書きし、処理モジュール８４が、現在の予測モードを予測ブロックと共に保存する。以降、マルチプレクサ／セレクタ８０が、次の予測モードを選択し、すべての利用可能なモード（換言すれば、ブロックの異なる潜在的な分割に属する予測モード）の試験が完了するまで、このプロセス全体が反復される。最終的に、最良の予測ブロックと、それを生成した予測モードが判定される。
【００７３】
処理モジュール８２ｃは、次式を使用して予測ブロックを合計する。
【数２】
2007503784.tif 000004
Ｍは、ブロックの長さを示す。
【００７４】
前述の方法において空間周波数を考慮していないことが不都合であるケースも存在しよう。これが、アダマール変換モジュールを含んでいる理由である。この変換は、二乗合計を演算する前に実行され、これを適用するかどうかをユーザーが決定することが可能である。アダマール変換の定義については後述する。この変換は、変換済みのブロックの周波数成分／係数を生成するという意味において、ＤＣＴに類似している。ほとんどの場合に、結果的に、相対的に有効な予測が得られ、変換済みのブロックが、相対的に少ない数の周波数成分／係数を含んでいる。
【００７５】
最良のブロック分割および対応する予測モードを前述のように判定した後に、残りの変換（ＤＣＴなど）を実行し、ブロックをエントロピー符号化モジュールによって符号化する。
【００７６】
既知の解決方法と本発明の方法を比較した結果、本発明の方法の品質／圧縮比のほうが、ｃｃａ．１ｄＢだけ良好であることが判明した。既知の方法によって更に良好な圧縮を実現することは、可能であるが、これには、常に品質の犠牲が払われることになる。しかしながら、本発明の方法によれば、相対的に良好な画像品質と、実際に同一の圧縮効率が得られている。
【００７７】
本発明の方法の別の重要な特徴は、その演算負荷が、アダマール変換を実行した場合には、既知の方法のおおよそ１／１０であり、アダマール変換を適用しない場合には、既知の方法に要する演算負荷の約１／１６であるという点にある。
【００７８】
復号化に成功するように、ブロックの分割をなんらかの方法で記録しなければならないため、ブロックをいわゆる四分木構造に従って分割する。１６ｘ１６ピクセルのそれぞれのブロックを、４つの子孫葉を有する根と考えることが可能であり、これらを、更に、４ｘ４のブロックサイズの４つの更なる子孫に分解することが可能である。これが図１１に示されており、対象となるブロックの４ｘ４ピクセルのサブブロックの１つ（０３）の内部に、更なる２ｘ２ピクセルのサブブロックが示されており、これらの２ｘ２ピクセルのブロックの１つの内部に、個々のピクセルが示されている。このブロックの画像の隣にあるグラフは、必要に応じて、各々のサブブロック、またはブロックの個々のピクセルを識別可能とする方法を示している。分解能が増大するに伴って、対象となる分割を表すのに必要なデータ量も増大することが明瞭にわかる。
【００７９】
上記の分割法（３つの異なるブロックサイズを許容している）は、本発明の方法においては、初期設定されているものとして考えている。しかしながら、別の実施においては、ユーザーまたはシステム自体によって、これを上書きすることも可能であり、２つの異なるブロックサイズのみを使用するモードを設定することも可能である。この分割法は、便宜上、フレーム全体に関係しており、３ブロックサイズモードは他と混合させることができないので、対象となるフレーム内の１つのブロックが２ブロックモードで符号化された場合、別のものが３ブロックモードで符号化されることを防止している。
【００８０】
本発明で実施する一態様におけるイントラ予測符号化においては、動的に変化するブロックサイズを使用する４つのモードが許容されている（Ｉタイプ）。従って、Ｉフレーム全体の符号化の際に、異なるサイズのブロックの適用が許容される（適用可能なブロックサイズを、以下に記載する）。この場合にも、選択されたモードをフレームのヘッダ構造内において示さなければならないことに再度留意されたい。この例における４つの可能なモードは、次のとおりである。
・３つの異なる動的に変化するブロックサイズ（１６ｘ１６、８ｘ８、４ｘ４）を使用する符号化
・２つの動的に変化するブロックサイズ（１６ｘ１６、８ｘ８）を使用する符号化
・２つの動的に変化するブロックサイズ（１６ｘ１６、４ｘ４）を使用する符号化
・２つの動的に変化するブロックサイズ（８ｘ８、４ｘ４）を使用する符号化
【００８１】
この方法の実施例においては、ユーザーは、２ブロックモードと３ブロックモードから選択可能であり、あるいは、任意の選択により、システムが、最適なモードを自動的に選択することも可能である。従って、ユーザーは次の選択肢の中から選択することが可能である。
１．３つの異なる動的に変化するブロックサイズを使用する符号化
２．２つの動的に変化するブロックサイズを使用する符号化
３．上記選択肢の中から、いずれか１つを自動的に選択
【００８２】
選択肢は、通常、利用可能な演算能力によって決定されるか、あるいは、状況によって符号化対象のフレームの特性評価に基づいて決定される。図１２は、上記の例において使用されるブロックサイズを示している。
【００８３】
次に、動的に変化するブロックサイズによるイントラ予測符号化のプロセスについて更に詳しく説明する。
【００８４】
（ＩＶ．３．  ３つの異なる動的に変化するブロックサイズ（Ｉタイプ）を使用するイントラ予測符号化）
Ｙブロックのサイズは、１６ｘ１６であるか、あるいは、この代わりに、４つの８ｘ８ピクセルサブブロック、または１６個の４ｘ４ピクセルサブブロックが使用される。ＵＶのサイズは、８ｘ８であるか、あるいは、Ｙブロックの分割に対応して、４つの４ｘ４ピクセルサブブロック、または１６個の２ｘ２ピクセルサブブロックが適用される（図１３参照）。ＵＶ色表面上における２ｘ２ピクセルのブロックサイズは、「インター」モードにおいてのみ許容されていることに留意しなければならない。
【００８５】
３つの異なるブロックサイズが適用されるため、最適なサイズを選択する方法が必要である。
【００８６】
既知の方法に従って遂行する場合には、最大ブロックサイズを使用して、すべての必要な変換を実行し、オリジナルおよび再構築されたブロック間の誤差を評価しなければならないであろう。次いで、誤差が限度を上回っている場合には、ブロックを４つの部分に分割し、変換および誤差の比較をそれぞれのサブブロックごとに反復することになろう。規定されている閾値を上回る誤差を有するサブブロックについて、再度、４つのサブブロックに分割し、変換を再度反復することになろう。
【００８７】
この方法は、理想的ではあるが、最終結果を得るのに不必要な多数の変換処理を伴うことになろう。
【００８８】
１つのブロックを３つの８ｘ８および４つの４ｘ４ピクセルのサブブロックに分割しなければならない場合には、変換の１つの組を、１６ｘ１６ブロック上において両方向に実行する必要があり、４つの８ｘ８変換の組も、両方向に実行し、且つ、４つの４ｘ４変換の組も実行する必要がある。これらの中で、１６ｘ１６ブロック上において実行される変換の組と、８ｘ８ブロックの１つの上において実行される変換の組（ＤＣＴおよびエントロピー符号化／復号化）は、重複することになる。従って、厳密には、最大の演算負荷を有するこれらの変換の組を、無駄に実行しなければならないことがある。
【００８９】
従って、本発明によれば、最初に、ブロックに対して圧縮性分析を実行している。本発明の一態様においては、この圧縮性分析は、ブロックを４つのサブブロックに分割し、次式を使用していわゆるブロックの分散を演算することになる。
【数３】
2007503784.tif 000005
ここで、Ｍは、サブブロック長であり、分散≦ＴＨ８または分散≦ＴＨ１６という条件を満足するかどうかを調べることを実行している。
ＴＨ８は、８ｘ８ブロックに許容される分散の閾値であり、
ＴＨ１６は、１６ｘ１６ブロックに許容される分散の閾値であり、
ＴＨ８およびＴＨ１６は、経験的な定数である。この式が示しているように、「分散」の値は、ブロック内の視覚的な詳細の量を定量化している。
【００９０】
ユーザーの選択で、上記計算の前にアダマール変換を起動することは可能であるが、しかし、上記のＴＨ定数は、アダマール変換なしの計算を使用した場合とは異なることがある。
【００９１】
すべてのサブブロックの分散値が±Ｎ％の限度内に留まっており、且つ、これらの分散値の合計が事前に設定された閾値ＴＨ１６を上回っていない場合には、ブロックは、最大のブロックサイズを使用して符号化可能である。
【００９２】
上記条件を満足していないが、サブブロックの分散がＴＨ８を下回っている場合には、対象のサブブロックは、８ｘ８サイズで符号化可能である。さもなければ、８ｘ８ピクセルのサブブロックを４ｘ４ピクセルのサブブロックに更に分割する必要がある。
【００９３】
量子化誤差が相対的に小さければ、満足できる結果と共に相対的に大きなブロックサイズが使用可能であり、ブロックのサブ分割が不要となることから、ＴＨ８／１６の値を決定する際には、量子化によって生じる誤差について考慮する必要がある。例えば、ＴＨ値は、次の式を使用して決定することが可能である。
ＴＨ(i)＝THbasevalue(i)＊errorfactor(qp)   ここで、i=0..1、qp=1..MAXQP
errorfactor(qp)の値は、量子化係数ＱＰに基づいて決定されるｑｐによって割り出しテーブルから取得する。上記量子化係数ＱＰは、この場合は、後述する本発明のニューラル制御システムによって決定されるが、この代わりに、ＱＰは定数であるか、あるいは、別の既知の方法を利用して決定することも可能である。
【００９４】
誤差係数のテーブルは、量子化誤差値の組み合わせから生成された値を収容しており、誤差係数値は、インデックスが大きくなるほど減少している。換言すれば、相対的に大きな量子化は、ＴＨの相対的に小さな変化と、相対的に厳しい条件を意味しており、別の表現をすれば、１つのブロック内の視覚的な詳細の量が増大することと量子化が増大することとは、ブロックサイズを相対的により小さなブロックサイズ値に向かって収束させることになる。
【００９５】
後述するように、ブロック分割自体の符号化に相対的に大量のデータを必要とするため、３つの異なるブロックサイズの使用を許容するのが有益であるかどうかを調べるのは得策となろう。２つの異なるブロックのみが許容されている場合には、ブロック分割データを記録するために符号化しなければならない追加情報は格段に少なくなる。
【００９６】
従って、本発明の一態様においては、それぞれのブロックサイズに統計的な量を割り当てることより、フレーム全体にわたって、ブロック分割を分析している（すなわち、許容されているすべてのブロックサイズを有するブロックの数を評価している）。すべてのブロックサイズのそれぞれの発生率がおおよそ同一であり、３ブロックまたは自動選択モードにある場合には、本プロセスは継続される。さもなければ、大部分のブロックが２つの支配的なブロックサイズのいずれか一つから構成されている場合には、それらの支配的なサイズを判定し、本方法は、「２つの動的に変化するブロックサイズを使用するイントラ予測符号化」と記載されている箇所（以下のＩＶ．４）に記述されている段階によって実行されることになる。
【００９７】
本方法は、２つの部分において処理される。第１の部分においては、分散計算に基づいて、フレーム全体にわたって圧縮性分析を実行し、この結果、最適なブロック分割を判定する。第２の部分においては、実行する最適な分割について見出された予測によってブロック分割を実行し、最終的に、最良であると判明した予測を利用し、選択されたブロック分割に属するそれぞれのブロックに対して符号化および逆変換を実行する。
【００９８】
分散分析は、対象とするブロックの個々のサブブロックを分割する方法を正確に規定するが、この分割をなんらかの方法で記録しなければならない。代表的な解決方法は、いわゆる四分木構造（図１１に示す）を適用するものである。
【００９９】
ブロック全体を表すには、２つの変数レベルが必要である。第１レベルの変数は、Ｌと呼ばれ、第２レベル変数は、ＡＢＣＤという文字によって表される。対象とするブロックが分割されていない場合には、Ｌは、０に設定される（ブロックサイズが１６ｘ１６の場合には、Ｌ＝０である）。ブロックが分割されている場合には、Ｌは、１に設定される。この場合には、サブブロックを表すために、４つの更なるビットが必要である。サブブロックが更に分割されていない場合（８ｘ８ピクセルのサイズを有する）には、関連するビットの値は、０である。サブブロックが更に（４ｘ４ピクセルサブブロックに）分割されている場合には、関連するビットの値は、１である。例えば、次のとおりである。
【０１００】
Ｌ  ＡＢＣＤ
0 ---- ブロックは、分割されていない。
1 0000  ブロックは、４つの８ｘ８サブブロックに分割されている。
1 0001  ブロックの四半分の第１が、４ｘ４ピクセルのサブブロックに分割されており、
その他のブロックは、８ｘ８である。
1 0010  ブロックの四半分の第２が、４ｘ４ピクセルのサブブロックに分割されており、
その他のものは、８ｘ８のサイズである。
ブロックが分割されている場合（Ｌ＝１）には、１６個の可能な組み合わせが存在しており、従って、この場合には、ブロックの分割を符号化するデータは、Ｌを含んで５ビット長であり、ブロックが分割されていない場合には、分割データは、１ビットの長さ（Ｌのみ）のみである。
【０１０１】
ブロック分割が完了した後に、個別のブロックに関する変換を実行し、変換されたブロックに対しエントロピー符号化モジュールにおいて符号化処理を行う。
【０１０２】
（ＩＶ．４．  ２つの動的に変化するブロックサイズを使用するイントラ予測符号化）
２つのブロックサイズを使用する選択肢のほうが有利であると分析によって判定された場合には、２つの支配的なブロックサイズが既に決定した状態にある（可能なサブブロックの構成方法を図１４に示す）。２つのブロックサイズによる符号化は、基本的に既に説明しているものと同一の方法によって実行されるが、わずかないくつかの微細な調節が伴う。
【０１０３】
支配的なブロックサイズの１つが１６ｘ１６（他のサイズは、８ｘ８または４ｘ４）であるの場合には、分散が限度ＴＨ１６（すなわち、ブロックが１６ｘ１６サイズにおいて満足すべき条件）を越えていなければ、ブロックは、１６ｘ１６のサイズで符号化され、さもなければ、符号化の前に、８ｘ８または４ｘ４ピクセルのサブブロックに分割されることになる。しかしながら、２つの支配的なブロックサイズが８ｘ８および４ｘ４である場合には、ブロックは、少なくとも３つのサブブロックの分散値がＴＨ８（すなわち、ブロックが８ｘ８サイズにおいて満足すべき条件）を下回っている場合に、８ｘ８のサイズで符号化され、さもなければ、４ｘ４ピクセルのサイズで符号化される。
【０１０４】
２つのブロックサイズのみを許容するブロック分割の利点は、５ビットのＱＴコード（分割記述子）を選択された分割を意味する１ビットのコードに置換可能という点にある（例えば、１６ｘ１６が基本的なブロックサイズの場合、０が、１６ｘ１６ブロックを意味し、１が、４つの８ｘ８サイズのサブブロックを意味することになる）。
【０１０５】
後続のすべての変換は、前述のものと同一である。要約すれば、上記の分散分析によって、フレームについて、２つのブロックサイズが選択され、これらが、そのフレーム全体の符号化に使用されることになるのである。
【０１０６】
図１４の部分１、２、３は、可能なサブブロックの組み合わせを示している。
【０１０７】
従って、ブロック符号化プロセスは、
（１）圧縮性分析によって最良であると見なされたブロック分割によるブロックのサブブロックへの分割と、
（２）それぞれのサブブロックごとの最良の予測サブブロックの判定と予測ブロックの符号化という順序で進行する。
【０１０８】
（ＩＶ．５．  空間表現から周波数表現への変換）
（ＩＶ．５．１）
離散コサイン変換（ＤＣＴ）は、それ自体、新規なものではない。基本的な原理は、すべてのブロックサイズについて同一である。
【０１０９】
（離散コサイン変換）
【数４】
2007503784.tif 000006
【０１１０】
（逆ＤＣＴ変換）
【数５】
2007503784.tif 000007
【０１１１】
これらの上記変換は、因数分解された行列ベクトル積として実行可能であり、この結果、計算の量が大幅に減少する。
【０１１２】
現在実行されている変換方法は、整数に基づいた２Ｄ変換によって実現されている。コンピュータによるＤＣＴ変換の実現に関しては、立証されているいくつかの方法が存在しているので、本明細書におけるそれらの説明は不要とする。
【０１１３】
（ＩＶ５．２  アダマール変換）
【数６】
2007503784.tif 000008
ここで、それぞれ次のとおりである
ａ←→ａ(n-1)..ａ(1)ａ(0)
ｂ←→ｂ(n-1)..ｂ(1)ｂ(0)
ａ(k)，ｂ(k)=0,1
【０１１４】
離散コサイン変換と同様に、アダマール変換は、ＦＦＴの一変形であり、行列の形態の加算および減算のみを有しているという大きな利点を有している。従って、アダマール変換は、ＤＣＴやＦＦＴよりもコンピュータ上において格段に高速に実行可能である。なお、重要な欠点であるが、すなわち関数が非連続的になる性質を有する。このため、アダマール変換は、ＤＣＴと比べて、細部の変化が大きいブロックの場合に、視覚的に顕著な誤差を生じやすくなる。従って、アダマール変換は、「フラット」（細部の変化が小さい）な１６ｘ１６のブロックに対してのみ直接適用するのに適している。１６ｘ１６ピクセルのブロックサイズは最大の計算量を必要とするため、これらの変換を要する場合には、１６ｘ１６ブロックに対してアダマール変換を適用することが好ましい。ここでは、対象となるブロックの詳細レベルの変化が十分に小さいような特定の実施例においては、本発明によって実行される分散分析は、１６ｘ１６ブロックサイズのアプリケーションのみを許容していることに留意されたい。
【０１１５】
（ＩＶ．６）
ブロックまたはサブブロックのＤＣＴ変換とエントロピー符号化の間において実行される段階が、いわゆる量子化であり、この量子化段階においては、エントロピー符号化モジュールにより、符号化処理を容易に行えるように、特定のガイドラインに従って、ＤＣＴ変換済みのブロックのマトリックス要素を修正する。
【０１１６】
本発明によって適用される方法は、標準的なＭＰＥＧ量子化に類似しており、次式を使用して実行される。
【数７】
2007503784.tif 000009
ここで、qcoeff(j)は、量子化後のＤＣＴ変換済みのブロックに対応したマトリックスのｊ番目の要素であり、
data(j)は、量子化前のＤＣＴ変換済みのブロックに対応したマトリックスのｊ番目の要素であり、
matrix(j)は、量子化マトリックスのｊ番目の要素であり、
ＱＰは、量子化係数（スカラー値）である。
【０１１７】
（量子化逆変換）
【数８】
2007503784.tif 000010
量子化マトリックスmatrix(j)は、ＤＣＴ変換済みのブロック、またはオリジナルのブロック自体（例えば、１６ｘ１６、８ｘ８など）と同一のサイズを有している。本発明の方法によって提供される解決方法は、量子化係数に応じて量子化マトリックスmatrix(j)を選択するという点が、既知のＭＰＥＧ量子化法と異なっている。既知のＭＰＥＧ量子化は、単一のmatrix(j)量子化マトリックスを使用している。
【０１１８】
量子化マトリックスとＱＰ量子化係数間における対応は、量子化ドメイン全体を、Ｎ個のサブドメインに分割し、以前に規定されている帯域幅レンジをそれぞれのサブドメインに割り当てることによって実行される。本発明の一実施例においては、ＱＰは、１〜３６の間にあり、インターバルは、（１−４）、（４−８）、（８−２０）、（２０−３６）のように、複数（一態様において、４つ）のサブドメインに分割されている。これらのサブドメインに割り当てられている帯域幅の範囲は、6,000〜10,000ｋビット／秒、800〜1,000ｋビット／秒、400〜800ｋビット／秒、100〜400ｋビット／秒であった。これは、最適化された４ｘ３マトリックステーブル（３つの異なるブロックサイズに対応）が、分割されたＱＰドメインに割り当てられ、テーブルの個々の要素が、matrix(j)量子化マトリックス全体であったことを意味している。matrix(j)のサイズがブロックサイズ（４ｘ４、８ｘ８、１６ｘ１６）と同一であることから、別個のマトリックスが、これらのブロックのそれぞれに割り当てられ、これにより、テーブルのそれぞれの行は、３つのセルを有している（換言すれば、３つのマトリックスが、それぞれのサブドメインに割り当てられている）。
【０１１９】
従って、この方法によってＱＰを変更する場合には、対象となる帯域幅に対応している最適なテーブルの行（最適なマトリックス）を新しい量子化係数に割り当てる。
【０１２０】
（ＩＶ．６．  量子化された係数の符号化）
本発明の圧縮システムの具体的な実施例においては、係数の符号化のために、３つの異なる方法が実行されている。これらの方法の基本的な原理は既知であるが、わかりやすくするために、以下、これらについて簡単に説明する。
【０１２１】
（ＩＶ６．１．  離散コサイン変換のＤＣ値の差分に基づいた符号化法）
名前からわかるように、この方法は、連続したブロックのＤＣ値を相互に減算し、結果的に得られる差分を算術符号化法によって符号化する段階を有している（算術符号化の原理は周知されている内容であり、本明細書において後程詳述する）。
Ｘdpcm＝Ｘ(i)−Ｘ(i-1)
【０１２２】
この方法は、ＤＰＣＭ（Delta Pulse Code Modulation）とも呼ばれており、連続したＤＣ値間の差分が、通常、非常に小さく、従って、この差分を値自体よりも少ない数のビットによって符号化可能であるという観察に基づいている。本発明の方法は、複数のブロックサイズを利用しており、ブロックサイズがＤＣ係数の大きさを決定することから、便宜上、相互に減算できるのは、同一サイズのブロックのＤＣ値のみであるこという点に留意することが重要である。この算術法は、それぞれのブロックを専用のパラメータ（符号化インターバルのサブ分割、符号化インターバルの上限／下限など）によって符号化する。
【０１２３】
（ＩＶ．６．２  ＡＣ値のランレングス符号化と結果的に得られる圧縮済みの値の算術符号化）
ＡＣ係数は、いわゆる「ジグザグ」テーブル（図４の参照番号３７、参照）によって取得され、既知のランレングス法によって圧縮される。ランレングス法は、順序付けられたペア（係数：発生カウント）を生成し、ここで、後者の値は、データシーケンス内における対象係数の発生数を規定している。対象とするブロック内のペアの合計数は予見不可能であるため、ペアの数を規定するか、または、ブロック末尾コードを最後のペアの後に挿入する必要がある。
【０１２４】
最新のペアの係数値がゼロの場合には、この最新のペアを符号化する必要はない。シーケンスにＥＯＢ（End OF Block）符号を書き込むだけで十分である。係数／発生カウントのペアは、符号化対象のデータシーケンス内に逆の順序（発生カウント：係数）で書き込まれる。この理由は、このようにすれば、発生カウントパラメータのゼロ値をブロックの末尾コード（当然のことながら、対応する係数を伴うことなしに）として使用可能になるからであり、何故なら、すべてのペアが有効なものである場合は、発生カウントがゼロになる組み合わせがどこにも発生せず、従って、コードをＥＯＢ符号として安全に適用することが可能だからである。ブロックが符号化の前にゼロのみを含んでいた場合には、ＥＯＢ符号のみが符号化される。この場合には、ブロックの再構築の際の復号化の前に、この対象とするブロックがゼロ化されることになる（ゼロが充填される）。ランレングス法によって生成されたペアも、最終的に算術符号化によって符号化される。
【０１２５】
（ＩＶ．６．３．  従来のパラメータとニューラルネットワークによって予測されたパラメータを使用するＡＣ値の算術符号化）
この方法においては、ＡＣ係数は、中間的なランレングス符号化を伴うことなしに、算術法によって直接符号化される。本発明による符号化器において実行される方法の中の１つにおいては、現在の係数を符号化するレベルを、モジュロ関数を通じて以前に符号化された係数の値によって判定するように、算術符号化を実行している（これは、多くの点において、ニューラルネットワークを伴わない従来の算術符号化に類似している）。このモジュロ関数が保証しているのは、通常、複数の同一のＡＣ係数が互いに隣り合っている場合に、これらの係数が同一レベルにおいて符号化されるということのみである。ニューラル算術符号化モジュールの動作原理については、本明細書において、後程詳細に説明する。ここでは、本発明のニューラル算術符号化器においては、ＡＣ値に依存することになるパラメータ（インターバル限度、インターバルサブ分割）が存在していないと言っておくだけで十分であろう。ＥＯＢ符号を使用せず、その代わりに、実際の位置＋１を生成することにより、変換および量子化済みのブロック内の最後の非ゼロのＡＣ係数の位置を記録している。これを必要とする理由は、すべてのＡＣ係数がブロック内においてゼロ化された場合に、ゼロを書き出すことにより、この対象とするブロックに関連する更なるデータが出力データストリーム（換言すれば、ブロックがゼロのみを含んでいる）内において符号化されないことを通知可能とするためである。
【０１２６】
例えば、次のとおりである。
位置    ０  １  ２  ３  ４  ５  ６  ７
係数：  ６３  １２  ２１  ３２  ０  ０  ０  ０
出力：  ３  ６３  １１  ２１  ３２
ここで、上記出力の先頭にある数字３は、最後のアクティブな位置（非ゼロの値、係数３２を示す）を示している。しかしながら、この調整方法では、すべてのデータがゼロであるという状況を示すことができない。上記出力の先頭にある数字が０の場合、位置０において１が検出された場合、依然として最後のアクティブな（非ゼロの）位置について０を符号化する必要がでてくる。従って、すべてのデータがゼロである場合を除いて、位置の値に１だけ加算する。
従って、出力データのシーケンスは、４  ６３  １１  ２１  ３２となり、あるいは、すべてがゼロである場合には、０のみとなる。
【０１２７】
前述の方法に対する代替方法として、既定のレベルにおけるそれぞれの係数に対してゼロを、そして、最後の非ゼロの値に到達した場合に１を符号化する方法も考えられよう。
例えば、次のとおりである。
レベル０：  ０  ０  ０  １      ここで、「１」は、最後の非ゼロのデータを示す。
レベル１： ６３  １１  ２１  ３２）
【０１２８】
本発明によって実行される符号化モジュールにおいては、エントロピー符号化用のＡＣデータを準備するように、これら２つの方法の中のいずれかが適用される。但し、本発明の範囲を逸脱することなしに、その他の変換も利用可能である。
【０１２９】
（ＩＶ．６．４．）
エントロピー符号化の際には、方法２（ＩＶ．６．２参照）と方法３（ＩＶ．６．３参照）の両方を試験モードにおいて実行し、最終的に、短いデータシーケンスを結果的にもたらした方法を適用する。当然のことながら、符号化済みのデータストリーム内において、選択した方法をなんらかの方法で識別しておかなければならない。
【０１３０】
方法１（ＤＣ係数を符号化するためもの）は、常に実行され、符号化済みのデータが、出力データストリームに出力され、次いで、本発明によるニューラルエントロピー符号化モジュールによって符号化される。当然のことながら、その他の既知のエントロピー符号化方法も利用可能である。
【０１３１】
わかりやすくするために、方法２および方法３（それぞれ、ＩＶ６．２およびＩＶ．６．２で説明）を利用する単一サブブロック用の出力データストリームのフォーマット（算術符号化器に進入する前のフォーマット）を考えてみよう。
２．|0|PRED|DPCM|AC|EOB、または、すべてがゼロの場合には、|0|PRED|DPCM|EOB
３．|1|PRED|DPCM|POS|AC、または、すべてがゼロの場合には、|1|PRED|DPCM|EOB
ここで、開始ビットは、符号化モードを識別しており、
PREDは、予測タイプ、
DPCMは、デルタ符号化によって符号化されたＤＣ係数、
ACは、１つまたは複数のＡＣ係数、
POSは、ＡＣ係数の位置、
EOBは、ブロック末尾（End OF Block）文字である。
【０１３２】
１６ｘ１６ブロック全体を符号化するためのフォーマットは、下記である。
|QT=0000|[0|PRED|DPCM|AC|EOB],[0|PRED|DPCM|AC|EOB]  
[0|PRED|DPCM|AC|EOB],[|0|PRED|DPCM|AC|EOB]
ここで、ＱＴ（四分木）は、ブロックが４つのサブブロックに分割された場合のブロック分割を表すデータであり、それぞれのサブブロックは、タイプ２の符号化を適用する。
または、
|QT=0001|
[0|PRED|DPCM|AC|EOB],|[0|PRED|DPCM|AC|EOB]   (2 x 4x4)
[0|PRED|DPCM|AC|EOB],|[0|PRED|DPCM|AC|EOB]   (2 x 4x4)
[0|PRED|DPCM|AC|EOB]                   (1 x 8x8)
[0|PRED|DPCM|AC|EOB],[0|PRED|DPCM|AC|EOB]   (2 x 8x8)
これは、１６ｘ１６ブロックが、サブ分割されていない３つの８ｘ８サブブロックを含んでおり、第４の８ｘ８ブロック（これは、実際には、最初に到来する）が、４つの４ｘ４サブブロックに分割されていることを意味している。
【０１３３】
（ＩＶ．７．  ＵＶ色表面のイントラ予測符号化）
ＭＰＥＧ符号化の既知の方法においては、対象とするフレームのピクセルデータをＲＧＢから、いわゆるＹＵＶ２フォーマットに変換している。ここで、Ｙは、明度（輝度）信号を意味しており、ＵＶは、色差（色度）信号である。
【０１３４】
ＵＶ表面の物理的なサイズをＹの半分に縮小する（この結果、データ損失が生じるが、この損失は、許容可能であることが判明しており、品質の大幅な低下には結び付かない）。従って、それぞれの１６ｘ１６Ｙブロックに対して、１つの８ｘ８Ｕと１つの８ｘ８Ｖブロックが割り当てられる（これが図１２に示されている）。
【０１３５】
このようにしてＵおよびＶブロックをサブブロックに分割する場合には、８ｘ８および４ｘ４サイズのみを使用することが要求される（２ｘ２ピクセルのサブブロックは、４ｘ４または８ｘ８のものよりも圧縮性が優れていないため、使用に値しない）。ブロック分割の分析は、既に説明したものと実際に同一の方法によって実行されるが、この場合には、ＴＨ８分散の閾値のみとの比較が実行されるという重要な相違点を有している。ＴＨ８は、経験的な値であることを思い出すべきである。これと分散を比較するが、後者は、式ＩＩに類似した方法で演算される。試験対象のブロックの分散がＴＨ８≦分散という条件を満足した場合には、ブロックを８ｘ８サイズで符号化し、そうでない場合には、４ｘ４ピクセルのサイズで符号化する。
【０１３６】
ＵおよびＶブロックの予測には、ＤＣ予測のみを利用する（その他の予測モードの使用によって得られる利益は、わずかであることが経験的に示されている）。
【０１３７】
その他の変換は、前述のものと同一である。唯一の相違点は、量子化のステップサイズ（量子化のレベル）にある。
【０１３８】
データブロックの（算術符号化前の）出力フォーマットは、次のとおりである。
|0|M|DPCM|AC|EOB、または、すべてがゼロの場合には、|0|M|DPCM|EOB
|1|M|DPCM|POS|AC、または、すべてがゼロの場合には、|1|M|DPCM|EOB
ここで、Ｍは、ブロック分割を示すビットである。例えば、ブロックが分割されていない場合には、Ｍ＝０であり、分割されている場合には、Ｍ＝１である。
【０１３９】
次に、別のフレーム内において符号化対象のブロック用の基準ブロックを探索するいわゆる「インター」ブロックの符号化について説明する。
【０１４０】
（Ｖ．  動的に変化するブロックサイズを使用するインター予測符号化）
（Ｖ．１）
既に指摘したように、インターフレームの符号化は、時間的な冗長性に基づいている。これは、現在のフレームを先行または後続のフレームと比較し、２つのフレーム間の差分のみを符号化することを意味している。この方法の参照探索モードが、図１５に示されている。３つの先行するＰタイプフレーム内のみにおける探索（図１５ａ）、２つの先行するＢタイプフレーム内のみにおける探索（図１５ｂ）、および先行および後続する動き補償済みの参照フレーム内における探索（図１５ｃ：この場合には、通常、Ｂタイプのフレームを参照用として使用することはできない）という選択肢が可能である。
【０１４１】
この方法の基本は、既知の方法と同一であり、参照フレーム内に規定されている探索範囲内において符号化対象のブロックに関する探索を実行し、次いで、冗長性（差分ブロック）を、参照ブロックの位置（または、更に正確には、動きベクトル）と共に符号化するが、この場合に、差分ブロックは、探索によって判定された位置に配置されているブロックの個々のピクセルから符号化対象のブロックの個々のピクセルを減算することによって演算される。
【０１４２】
可能な探索法の中で、最良の結果は、いわゆる「フル探索」によってもたらされよう。しかしながら、このような探索は、探索範囲内の可能な場所のすべてにおいて一致するブロックを探索する際に、レンジのそれぞれのピクセルから始まる探索範囲内におけるデータと１６ｘ１６ブロックの比較を伴っているため、巨大な演算負荷を有することになろう。実際に、３２ｘ３２ピクセルの探索範囲の場合には、これは、一致する１６ｘ１６の参照ブロックを見出すためだけに、1024＊256＝262144回の加算および減算と、差分の絶対値を判定するための処理を意味することになろう。７２０ｘ５７６ピクセルのフレームは、１６２０ブロック（１ブロックは、１６ｘ１６ピクセルのサイズ）を含んでいるため、計算の全体ステップ数は、４億２千４百万回を上回ることになろう。このため、実際には、フル探索の代わりに、通常、いわゆる「高速探索」法が適用される。「高速探索」法においては、少ない試験ポイント（通常、６４ポイント未満である）を適用しており、変位が小さい（通常、１〜４ピクセルよりも小さい）場合、すなわち、そのビデオ場面における動きが低速である場合にしか成功しないという欠点を有している。変位が大きい場合には、探索に成功する確率が急速に低下する。高速探索の別の欠点は、探索が成功したように思われる場合にも、検出した位置が探索範囲内の最小ポイント（最適な参照ブロックの位置）であることを確認することができないという点にある。
【０１４３】
本発明において実行される探索法は、実際には、「フル探索」と見なすことが可能であり、これは、低速動きの場合には、純粋なフル探索法と比べて、わずかに大きな演算負荷をもつことになるのにすぎない。高速動き（大きな変位）の場合にも、本発明による方法の演算負荷は、標準的な「フル探索」法が必要としている演算負荷の数分の１に過ぎない。
【０１４４】
（Ｖ．２．）
本発明によって実行される探索法は、いわゆる「スパイラル探索」に基づいており、これは、実際には、次のように実行される。
【０１４５】
（Ｖ．２．１．）
探索範囲を参照フレーム内において規定する。探索範囲の中心の座標は、探索サンプル（符号化対象のブロック）の中心の座標と同一である。
【０１４６】
次の段階において、探索サンプル、すなわち、符号化対象のブロック８８を更に小さなサブブロックに分割する（図１６参照）。本発明の一実施例においては、４ｘ２サブブロックを使用して良好な結果を生成している。この場合には、式ＩＩに類似した式を使用して、それぞれのサブブロックごとに分散値を演算する。その他のすべてのサブブロックの分散値よりも大きな分散を有する少なくとも２つのサブブロックが存在しており、それらの分散の合計が、事前に定義されている経験的な定数ＴＨＶ２２よりも大きく、且つ、２つのサブブロックが隣接されて配置されていない場合（例えば、サブブロック８８ｂおよび８８ｃ）には、探索において、１６ｘ１６のブロック８８の中のこれらのサブブロックのみを試験する。
【０１４７】
ＴＨＶ２２≦分散1＋分散2という条件が満足されない場合には（ここで、分散1および分散2は、最大分散を示す非隣接のサブブロックの２つの分散値である）、最大分散を示す非隣接の４つのサブブロックに関して前述の処理を反復し、これらの分散を組み合わせたものを別の定数ＴＨＶ２４と比較する（これが、ブロック８９のサブブロック８９ａ、８９ｂ、８９ｃ、８９ｄによって示されている）。
【０１４８】
４つのサブブロックの分散用の条件が依然として真でない場合には、サブブロックを４ｘ４サブブロックにマージし、２つのサブブロックに関して、定数ＴＨＶ４２により（並びに、必要に応じて、４つのサブブロックに関して、定数ＴＨＶ４４により）、前述の走査を反復し（ブロック９０のサブブロック９０ａ、９０ｂを参照）、後者のケースにおいては、４つの最大分散を示す非隣接のサブブロックを見出すべく試みる。
【０１４９】
それぞれの条件が前述の状況の中のいずれかにおいて満足されない場合には、１６ｘ１６ブロックの４つのコーナーおよび中心に配置されている５つの４ｘ４サブブロックを使用して参照探索を実行する（図１６）。定数ＴＨＶは、サブブロックの分散の組み合わせが、前述の状況のそれぞれにおいて等しいまたは上回ることを要する最小分散を規定している。
【０１５０】
以上において詳述したプロセスは、最も詳細なるサブブロックが探索範囲内において一致する参照用を有している場合には、それよりも詳細でないその他のサブブロックもそれぞれの適切な参照用を有することになると仮定し、１６ｘ１６ブロック内で最も詳細なるサブブロックを検出するように試みることを直観的に結論づけることは可能である。
【０１５１】
スパイラルの中心を、探索サンプルの位置に一致した参照フレーム内の位置に規定し、次いで、この規定したポイントの周りのブロックを、前述の低減された探索サンプルにより、サイクルの幅を拡大させつつ試験する。一定に維持されたサンプルパターンのサブブロックの相対的な位置によって探索範囲を走査する。
【０１５２】
（Ｖ．２．２．）
試験を次式に従って実行する。
【数９】
2007503784.tif 000011
ここで、Ｍは、ブロック長であり、ＭＳＥは、いわゆる平均二乗誤差である。ＭＳＥ値が現在の最小算出ＭＳＥを下回っていることが検出されるたびに、新しいＭＳＥ値を現在の位置と共に、一時バッファ、例えば、６４要素の循環バッファ内に書き込む。バッファが満杯になった場合には、再度第１要素からデータを上書きする。
【０１５３】
好ましくは、その他の側面から得られたＭＳＥ値も同様に分析することにより、探索法を微調節する。例えば、探索が一致条件を満足する（例えば、ＭＳＥが最大許容誤差を下回っている）複数の位置を検出し、且つ、これらの位置が、開始点から見て同一の方向（同一の側）に配置されていると共に、探索がこれらの位置の領域を離れるに伴って誤差が増大する場合には、探索が最適なポイントを離れるように移動している可能性が高いため探索を中止する。
【０１５４】
探索の終了時点において、すべてのポイントの試験が完了しているか、または探索が中止された後に、循環バッファには、参照用の位置の恐らく最良の候補である位置が含まれている（可能な１０２４の位置の中の小さな数のみが保存される。例えば、前述の例によれば、６４個の位置）。次いで、この保存されている位置を再度試験するが、今回は、１６ｘ１６ブロック全体を試験し、最小誤差をもたらす位置を判定する。
【０１５５】
（Ｖ．２．３．）
次いで、符号化済みのブロックから演算したＳＡＤ16値（Sum Absolute Diference：ブロックサイズを示すインデックス）と新しく設定された参照ブロックを、経験的な定数ＭＡＸＳＡＤ１６と比較する。ＳＡＤは、次式を使用して演算する。
【数１０】
2007503784.tif 000012
ここで、Ｍは、ブロック長であり、ＡおよびＢは、参照ブロックと符号化対象のブロックの要素を意味している。
【０１５６】
定数ＭＡＸＳＡＤ１６は、１６ｘ１６ブロックにマッチングした基準の最大許容誤差を規定している。探索によって検出されたブロックの誤差を許容できない場合には、（フレームタイプに応じて）現在のフレームの先行するまたは後続するフレーム内において、参照探索を反復する。いずれの参照フレームも許容可能な結果を付与しない場合には、最小誤差をもたらしたものを選択する。次いで、ブロックを４つの４ｘ４サブブロックに分割し、それぞれのサブブロックごとに、ＳＡＤ8値を演算し、（経験的な）定数ＭＡＸＳＡＤ８と比較する。
【０１５７】
その後、参照フレームと関連するバッファ内に含まれている位置を試験し、大部分の８ｘ８サブブロックが許容可能な結果（ＳＡＤ8≦ＭＡＸＳＡＤ８条件を満足）をもたらすような参照フレームと位置とを選択する。
【０１５８】
過大な誤差を有するそれぞれのサブブロックごとに、低減された探索範囲内において、８ｘ８のブロックサイズを使用し、対象サブブロックの位置から探索を反復する。誤差が依然として限度を上回っている場合には、８ｘ８探索によって最良であると見出されたサブブロックを４ｘ４サブブロックにサブ分割し、ＳＡＤ4＞ＭＡＸＳＡＤ４の条件を満足するサブブロックについて探索を反復する。
【０１５９】
特定ブロックのすべてのサブブロックを４ｘ４サブブロックにサブ分割しなければならなかった場合に、現在の参照フレーム内において成功しなかった場合には、この特定のブロックについて、すべての参照フレーム内において参照探索を反復することは可能である。
【０１６０】
探索が終了した後に、個々のサブブロックの誤差が依然として過大であると判明した場合には、探索が不成功であったブロックをマーキングする。これらは、本方法の後続の段階において、イントラブロックとして符号化されることになる。
【０１６１】
尚、すべての参照フレーム内における探索とは、探索が、例えば、第２フレーム内において、満足できる結果によって停止した場合に、第３フレームに継続しないことを意味している。
【０１６２】
（Ｖ．３．  １６ｘ１６パーティションにおけるブロックの処理）
１６ｘ１６ブロックの場合に、参照探索が現在のフレーム内において不成功であり（基準ブロックが検出されない）、現在のフレームがＰタイプである場合には、３フレームの最大深度により、先行するＰタイプの参照フレーム内において、探索を反復する。探索に成功した場合には、参照フレームの数を記録し、探索を終了する。そうでない場合には、本方法は、最小誤差を有するフレームを選択し、ブロックを４つの８ｘ８サブブロックに分割し、誤差が限度を超過しているサブブロックによって探索を継続する。現在のフレームがＢタイプである場合には、探索は、まず、後続するＰフレームにおいて実行した後に、３つの先行するＰフレーム内において実行する。Ｂタイプフレームの場合に、探索がすべての参照フレーム内において不成功であった場合には、ＭＰＥＧ法において適用される単純な式を使用し、後続フレームと、先行するフレームの中の１つのものの中において検出される最良の基準ブロック候補の位置を補間することにより、後続するフレームと、先行するフレームの中の１つのものから、平均化された基準ブロックを生成する。生成された補間済みのブロックとオリジナルのブロックの間の二乗誤差が依然として過大である場合には、誤差が最小であった参照フレームを選択し、ブロックを４つの８ｘ８サブブロックに分割する。
【０１６３】
（Ｖ．４  ８ｘ８パーティションにおけるブロックの処理）
８ｘ８ブロックの処理は、１６ｘ１６ブロックの処理とほとんど同一であるが、処理の終了時点において、探索が依然として不成功であった場合に、ブロックを４ｘ４ピクセルのサブブロックにサブ分割するという相違点を有している。
【０１６４】
（Ｖ．５  ４ｘ４パーティションにおけるブロックの処理）
４ｘ４ブロックの処理は、８ｘ８ブロックの処理とほとんど同一であり、唯一の相違点は、探索が依然として不成功であった場合に、その誤ったブロックに対してイントラブロックとマーキングする点にある。
【０１６５】
（Ｖ．６  １／２、１／４、および１／８ピクセル分解能による拡張探索）
ブロックの処理がフルピクセル分解能によって終了した後に、１／２、１／４、および１／８ピクセル分解能によって、探索を実行する（フィルタリング／補間された参照用内における探索）。唯一の例外は、１／２、１／４、および１／８ピクセル分解能の探索を、補間の前に実行することを要するＢタイプフレームの補間モードである。１／２、１／４、および１／８ピクセル分解能による探索は、基本的に、本明細書において前述した既知の方法と同一であるため、ここでは、そのプロセスに関する説明を省略する。
【０１６６】
実行される方法においては、３つの基本フレームの最大値をそれぞれのフレームに割り当てる。これらの違いは、各々のサイズと、生成されたフィルタリング方法のみである（図１７参照）。
参照フレームのサイズ１：４→１：８
└→１：１
適用されたフィルタ：Wiener→双一次
└→双一次
【０１６７】
それぞれの探索プロセスにおいては、関連する参照フレームを使用する。１／２および１／４ピクセル分解能による探索は、１：４比率で補間された参照フレームを使用し、１／８ピクセル分解能の探索は、１：８比率で補間された参照フレームを利用する。フルピクセル探索は、１：１比率で補間された参照フレームを使用する。補間済みの参照フレームとフィルタのアプリケーションは、それ自体、既知であるため、本明細書において、これについて詳述する必要はない。
【０１６８】
以前の状況と同様に、スパイラル探索を適用するが、この場合には、大きく低減された探索範囲に起因し、試験ポイントの数は、２０未満である。通常、探索は、ＳＡＤ＝０（現在のブロックと基準ブロックの間における完全なマッチング）の場合にのみ、中止可能である。探索は、それぞれのブロックサイズごとに実行可能である。但し、ブロックの縮小を伴わないもののみであり（すなわち、サブブロックではなく、ブロック全体のみを比較する）、これは、１６ｘ１６ブロックの試験が２５６回の減算処理を伴っていることを意味している。
【０１６９】
一致した参照ブロックから符号化対象のブロックを減算した後に、結果的に得られる縮小されたブロックを空間表現から周波数表現に変換する。
【０１７０】
（Ｖ．７．）
１６ｘ１６ブロック全体用の参照ブロックの検出および参照ブロックの分割のプロセスが正常に完了した後に、符号化対象のブロックも等しいサイズのサブブロックに分割し、これらのサブブロックを参照ブロックのサブブロックから減算する。次いで、差分に対して離散コサイン変換および量子化を適用し、結果的に得られたブロック内に含まれている係数に対してＡＣ／ＤＣ予測を適用する。イントラブロックの予測プロセスと同様に、この予測法は、変換済みのブロックのＤＣ値間の差分を生成し、ＡＣ係数の第１水平／垂直ラインに対して水平／垂直予測を適用する。この方法と以前のものとの相違点は、前述のイントラ予測が、符号化対象のブロックのピクセル値から隣接するピクセルの実際のピクセル値を減算しているのに対して、この場合には、隣接するＤＣＴ変換済みのブロックの要素をＤＣＴ変換済みのブロックの要素から減算している点にある。この方法によれば、エントロピー符号化における変換済みのブロックの符号化効率が更に改善される。
【０１７１】
どの予測モード（水平および垂直）を適用するべきかに関する決定は、変換済みのブロックを取り囲んでいるブロックのＤＣ係数間の差分に基づいて決定されるが、この場合に、ブロックの相対的な位置決めは、次のとおりであってよい。
ＣＢ
ＡＸ
ここで、Ｘは、処理対象の変換済みのブロックを意味しており、Ａ、Ｂ、およびＣは、取り囲んでいるブロックである。
【０１７２】
予測モード（pred）は、次の条件式によって選択される。
pred=abs(Ａ-Ｃ)＜abs(Ｃ-Ｂ)
ここで、Ａ、Ｂ、およびＣは、処理対象のブロックを取り囲んでいるブロックのＤＣ係数である。
【０１７３】
この条件が真である場合には、垂直予測を適用し、そうでない場合には、水平モードを選択する。予測モードを決定する相関が、ブロックの再構築を実行する際に利用可能であるため、選択されたモードを出力に記録する必要はない。
【０１７４】
（Ｖ．８．）
本節においては、ブロック分割を表すデータ用の可能なデータフォーマットと符号化法を提示する。
【０１７５】
符号化対象のブロックのブロック分割の記述は、イントラフレームを取り扱った説明箇所において提示したものに類似している。
【０１７６】
最大２ビット長の値であるＬにより、１６ｘ１６ブロックの分割を表している。ビット１は、ブロックが分割されていない場合には、０であり、分割されている場合には、１である。ブロックにイントラというラベルが付加されている場合には、ビット２が値１を有している。この後者は、８ｘ８サブブロックのそれぞれが４ｘ４サブブロックにサブ分割された場合に発生し、これらのサブブロックの５０％以上にイントラブロックというラベルが付加される。この場合には、本システムは、イントラブロックを符号化するプロセスに従って、その対象ブロックを符号化することになる。
【０１７７】
エントロピー符号化前のデータは、次のとおりである。
ＲＦＩＤＸは、適用された参照フレームのフレーム数である。
ＭＶは、動きベクトルである。
ＤＣは、離散コサイン変換の第１係数である。
ＡＣは、その他のＤＣＴ係数を示している。
ＩＰは、Ｂフレーム用の補間モードを示している。
Ｉは、イントラモードを意味している。
Ｐは、イントラモード予測の数である。
【０１７８】
Ｐフレーム用のモードは、次のとおりである。
モード０: |Ｌ|ＲＦＩＤＸ|ＭＶ|ＤＣ|ＡＣ
モード１‥１５: |Ｌ|ＱＴ|ＲＦＩＤＸ|Ｉ|ＭＶ|ＤＣ|ＡＣ…Ｉ|ＭＶ|ＤＣ｜ＡＣ
【０１７９】
Ｂフレーム用のモードは、次のとおりである。
モード０: |Ｌ|ＲＦＩＤＸ|ＩＰ|ＭＶ|ＤＣ|ＡＣ
モード１‥15: |Ｌ|ＱＴ|ＲＦＩＤＸ|Ｉ|ＩＰ|ＭＶ|ＤＣ|ＡＣ…I|ＩＰ|ＭＶ|ＤＣ|ＡＣ
Ｉ＝１の場合には、この対象ブロックの記述は、|Ｉ|Ｐ|ＤＣ|ＡＣに変化する。
【０１８０】
Ｐタイプフレームの２つの具体的な例を見てみよう。
１|0001|2|                         １|0001|0|
０ ＭＶ４ ＤＣ４ ＡＣ４            １ Ｐ ＤＣ４ ＡＣ４
０ ＭＶ４ ＤＣ４ ＡＣ４            ０ ＭＶ４ ＤＣ４ ＡＣ４
０ ＭＶ４ ＤＣ４ ＡＣ４            ０ ＭＶ４ ＤＣ４ ＡＣ４
０ ＭＶ４ ＤＣ４ ＡＣ４            ０ ＭＶ４ ＤＣ４ ＡＣ４
０ ＭＶ８ ＤＣ８ ＡＣ８            ０ ＭＶ８ ＤＣ８ ＡＣ８
０ ＭＶ８ ＤＣ８ ＡＣ８            ０ ＭＶ８ ＤＣ８ ＡＣ８
０ ＭＶ８ ＤＣ８ ＡＣ８            ０ ＭＶ８ ＤＣ８ ＡＣ８
４つの4x4ブロックと                ４つの4x4ブロックと、３つの8x8ブロック、
３つの8x8ブロック                  第１のブロックは、イントラブロック。
（また、この場合には、変数「ＡＣ」は、通常、複数のデータ要素を表している。）
【０１８１】
１６ｘ１６ブロックのＹ色表面を符号化した後の次の段階は、ＵＶ色表面の符号化である。ブロックのサイズは、Ｙブロックとそのサブブロックのサイズに比例している。
【０１８２】
Ｙブロックが１６ｘ１６ピクセルのサイズを有している場合には、ＵＶブロックは、８ｘ８ピクセルのサイズとなり、Ｙブロックが８ｘ８サイズである場合には、ＵＶブロックのサイズは、４ｘ４であり、最後に、４ｘ４のＹブロックに対応するＵＶブロックのサイズは、２ｘ２である。さもなければ、ＵおよびＶブロックの分割は、Ｙブロックの分割と同一である。ＵＶブロックの分割法は、Ｙブロックの分割と同一の方式で実行される。従って、すべてのその他のデータ（ブロック分割記述子、ブロック識別子など）をＹブロック内において既に記述済みであるため、符号化プロセスにおいて、エントロピー符号化の前に、シーケンシャルに書き出さなければならないのは、ＤＣおよびＡＣ値のみである。
【０１８３】
（Ｖ．９．  マクロブロック（動きベクトルとインターブロック）の予測）
動きベクトル（すなわち、参照ブロックに対する動きを示すベクトル）の最適な符号化のために、動きベクトルは、可能な最短の形態で表すことが好ましい。これは、現在の動きベクトルから、現在のブロックの隣、上部、または対角的に上部に配置されているブロックに属する動きベクトルを減算することによって提供可能である。３つの可能な隣接する動きベクトルの中から平均値に最も近いもの、換言すれば、最小値よりも大きく、最大値よりも小さいものを選択する。
【０１８４】
（Ｖ．１０．）
最終的に、エントロピー符号化モジュールを使用してデータを符号化する。次に、本発明のバイナリマルチレベル算術符号化モジュールについて説明することにしよう。
【０１８５】
（ＶＩ．ニューラル算術符号化モジュール）
本発明によるエントロピー符号化モジュールは、バイナリ適応技法を利用している。これは、入力データを、発生頻度と既に受信済みのビットパターンの関数によって、ビットごとに処理することを意味している。
【０１８６】
（ＶＩ．１．）
本方法の主な設計目的は、相対的に単純な計算によって可能な最良の圧縮を達成することであった。本発明の方法は、除算を使用することなしに、２つの乗算と２〜３の加算および論理演算を実行することによって実行可能である。その他の処理は、すべて整数に基づいて行われる。
【０１８７】
本発明の方法は、いわゆる算術符号化法である。算術符号化は、それ自体が既知の方法である。算術符号化の基本的な原理は、符号化対象のデータシーケンスの受信データに応じて、インターバル（レンジ）の上限と下限を変更する段階を伴っている。算術符号化は、到来するデータの分布がある程度判明している場合、換言すれば、次の入力データ要素の値の確率推定値がある程度判明している場合にのみ、真に有効である。
【０１８８】
次の短いアルゴリズムは、バイナリデータストリーム（０および１のシンボルのみを含んでいる）に対して算術符号化を実行する。符号化対象の現在のデータ（データストリームの次のビット）は、「bit」変数内に保存される。符号化インターバルの上限と下限は、変数「area[0]」および「area[1]」である。
area[inverz(bit)]=area[0]+((area[1]-area[0])*prob)/216+bit
if((area[1]-area[0]<256)
｛
outdata=area[1]/224
area[0]=area[0]*28
area[1]=area[1]*28
｝
prob=calc_next_probe(bit)
符号化の効率向上のためのキーファクタは、変数「prob」（以下、プローブ値またはプローブと呼ぶ）の値を判定する方法である。プローブ値は、上記の例においては、「calc_next_probe(bit)」関数によって返される。
【０１８９】
配列「area[0,1]」は、２つの３２ビット値、すなわち、符号化範囲の上限および下限を保存する変数「area[0]」および変数「area[1]」を含んでいる。算術符号化の理論からわかるように、範囲(area[0]、area[1])をプローブ値によってスケーリングする。既知の方法においては、通常、プローブ値を以前に到着したビットの発生頻度の関数として判定している。新しく受信したビットの値に応じて、スケーリング済みの値によって符号化インターバルの上限または下限を変更する。上限および下限の差が２５６を下回るまで、インターバルを変更可能である（新しいビットを符号化することが可能である）。原則的に、その他の値も使用可能であるが、オーバーフローを処理するには、２５６が最も実際的な値であると考えられる。従って、上限と下限の差が２５６未満になった場合には、８つの最上位ビットを出力データシーケンスに書き出し、下限および上限を表す変数を、８つの位置だけ、左にシフトさせる。
【０１９０】
これは、数式により、次のように表記可能である。
area[1]=area[1]*256
area[0]=area[0]*256
【０１９１】
（ＶＩ．２．プローブ値は、次のように判定される）
本発明では、頻度テーブルの概念を導入し、到来データシーケンス内の０と１の発生率を表す２つの関数f(0)およびf(1)を規定した。受信ビットは、ｍビットの長さを有するバッファ内に供給する（ここで、２m＝Ｎであり、従って、２を底とするＮの対数が、時間窓の幅を提供している）。バッファ内にシーケンシャルに到着するビットが、（必要に応じて、バッファの情報を左にシフトする）変数「window」を構成する。この変数「window」は、ｍビットの長さに切り捨てることにより、頻度テーブル内の行の１つをポイントする（変数「index」内に保存される）インデックスを形成する。ここで提示している例においては、頻度テーブルは、５１２の行を有している。頻度テーブルの要素は、変数FreqTbl[index]ｆ0および変数FreqTbl[index]ｆ1によって規定されている。これらの変数は、ビットの組み合わせが、バッファ内に現在保存されているビットの組み合わせと同一であった場合に、受信ビットが、何回、０または１であったかを示している（換言すれば、現在のビットの組み合わせを、テーブルの対象行をポイントするインデックスとして見なしている）。
【０１９２】
count=count+1
If(count>=log2(N+1))｛
count=0
window=0
｝
window=window*2+bit
FreqTbl[index].f0=FreqTbl[index].f0+(2*bit)
FreqTbl[index].f1=FreqTbl[index].f1+(2-(2*bit))
index=window mod N
sum=FreqTbl[index].f0+FreqTbl[index].f1
prob=(FreqTbl[index].f0*FracTbl[sum])/210
if(sum>256)｛
FreqTbl[index].f0=(FreqTbl[index].f0)/2
FreqTbl[index].f1=(FreqTbl[index].f1)/2+1
｝
【０１９３】
圧縮の開始時点において、すべての変数（２を底とする対数が窓長を付与するＮを除く）にゼロを充填する。到来ビットが、バッファ（窓）の最下位ビットを上書きし、バッファの以前の値によってアドレス指定されていた頻度テーブルの要素が、新しく到着した値に応じて更新される。直ぐに明らかになるように、重要なことは、バッファの以前の値を、１段階後に到着するビット（すなわち、現在処理中のビット）と関連付けることを要するという要件にある。本システムの動作において、到来するビットの値の「予測」を可能にしているのは、まさに、この機能である。バッファの以前の値は、Ｎが上限となっている変数「index」内に保存される。
【０１９４】
本方法の次の段階においては、次のビット用のプローブ値（変数「prob」の値）を算出する。このための正確な式は、次のとおりである。
prob=(FreqTbl[index].f0)/sum
しかしながら、結果が端数となるため、この式は、直接適用されない。この計算（除算）は、本発明の目的には、実際に低速に過ぎる計算を必要とすることになろう。
【０１９５】
この代わりに、５１２個の要素のフラクションテーブルを使用し（変数「FracTbl[sum]」によって表されている）、この中から適切な要素を、頻度テーブルの対応する行内のビット頻度の合計によって選択する（前述のアルゴリズム内の変数「ｓｕｍ」を参照）。プローブ値を判定するには、頻度テーブルの適切な行内のｆ０値に対して、フラクションテーブルから先程取得された値を乗算し、次いで、この積に対して、定数を乗算する（例えば、積を１０ビットだけ右にシフトさせる）。この結果、プローブ値が得られ、これは、インターバル0..1と類似した0..65535のインターバル内に属することになる。フラクションテーブルが５１２個の要素（実際には、これは、1/sumの適切にスケーリングされた値である）を含んでおり、この場合に、変数「ｓｕｍ」が、同時に、テーブルに対するインデックスとしても使用されるため、「ｓｕｍ」値が、この値を超過しないようにする必要がある。これは、「ｓｕｍ」値を試験し、「ｓｕｍ」が２５６を上回った場合にｆ０およびｆ１をリスケーリングすることによって実現される（変数「prob」の値は、実際には、ｆ０およびｆ１の絶対値ではなく、ｆ０とｆ１の比率によって判定されるため、これらはリスケーリング可能である）。
【０１９６】
このアルゴリズムからわかるように、本方法は、非常に単純である。除数が２の指数なので、除算を右シフトの処理によって置換することが可能である。ＭＯＤ処理も、ＡＮＤ論理によって置換することが可能である。
【０１９７】
（ＶＩ．３．）
前述のように、本方法は、異なるレベルにおいて符号化を実行する。実際には、これは、プローブ変数に対してのみ影響を与える。換言すれば、同一の符号化モジュールをすべてのデータタイプに使用可能であり、調節を要するのは、パラメータ（Ｎ、窓サイズ、符号化範囲の限度）のみである。それぞれのレベルを、対象データタイプの要件に応じて、複数のサブレベルに分割し、異なるレベルをそれぞれのデータタイプに割り当てる。例えば、４ｘ４離散コサイン変換処理の結果を符号化するには、特定タイプのレベルを定義し、異なるサブレベルをＡＣおよびＤＣ係数の符号化に割り当てる。
【０１９８】
定数Ｎは、窓サイズを決定するが、換言すれば、すでに受信しているビットと現在受信しているビットとを一緒に試験することになる。このファクタは、符号化効率に強い影響を与えるだけでなく、必要なメモリ量も増加させることになる。なぜなら、Ｎが増加すると共にメモリの所要量も増加することになるからである。
【０１９９】
以上において提示した方法は、既知の方法による整数算術の高速化版である。パラメータを適切にチューニングすることにより、圧縮効率は、ＭＰＥＧシステムにおいて使用されているＶＬＣのものよりも１０％高い。これまで、これよりも格段に良好に稼働しているものは、はるかに複雑なプローブアルゴリズムを使用した方法のみである。効率を改善するには、頻度テーブルのサイズも大幅に拡大する必要がある。選択したプローブアルゴリズムと頻度テーブルサイズの両方が、この方法の実行時間に影響を及ぼす。
【０２００】
本発明において利用しているデータ構造のプローブ値を判定する最良の既知の方法は、いわゆる動的マルコフモデルであろう。しかしながら、これが有効に機能するのは、少なくとも６４Ｋｂの頻度テーブルの場合である。符号化に適用されるすべてのサブレベルをこのサイズ（すなわち、異なるブロックサイズに対応させて、すべての変数および変数タイプをこの方式で符号化した場合）に設定すると、頻度テーブルのみに、１６Ｍｂを上回るメモリを割り当てなければならない。
【０２０１】
これらの問題のために、新しい格段に効率的なプローブアルゴリズムを考案することが必要となった。
【０２０２】
（ＶＩ．４．  ニューラルプローブを有する算術符号化器）
（ＶＩ．４．１．）
算術符号化の重要な欠点は、最適な効率の符号化のためには、符号化対象のデータ内に出現する個々のシンボルの発生確率が判明している必要があるという点にある。原則的には、既に発生した複数のシンボルを考慮することができよう。個別のシンボルのみならず、異なるシンボルグループの発生頻度にも注意を払えば、更に効率的であろう。しかしながら、これには、非常に多数の頻度値を保存することが必要となろう。この保存数をある程度軽減するには、既に発生している（状況）すべてを組み合わせ可能にするようなシンボルを保存する代わりに、実際に発生したシンボルの組み合わせのみを保存することにより軽減可能となる。この方法は、新しく発生したシンボルの組み合わせを表すときは、特別なシンボル（拡張用）を導入しなければならないことを意味している。
【０２０３】
既知の符号化法、主にＰＰＭ（Prediction by Partial Match）法においては、長さが変化するシンボルの組み合わせを調べている。受信シンボルを符号化する場合には、まず、最も長い許容されている組み合わせを試験する。新しく到着したシンボルを、保存されているシンボルグループに追加し、現在のシンボルグループ長によって探索を実行し、現在のグループが既に発生しているかどうかを確認する。例えば、グループ長が４である場合には、３つの最新のシンボルを新しく到着したものと共に試験することになる。シンボルの組み合わせが既に発生している場合には、その対象シンボルの組み合わせに割り当てられている瞬間的なまたは一定の確率値を使用して、それを符号化する。一方、組み合わせがまだ発生していない場合には、拡張したシンボルを符号化することにより、その組み合わせが新しいものであることを（復号化器のために）通知し、更に短い組み合わせ長によって探索を継続する。
【０２０４】
受信シンボルが、以前の組み合わせにおいて、まだ符号化されていない場合には、個々のシンボルに割り当てられている発生確率の平均値を使用して、それを符号化する。符号化が完了した後に、シンボルの組み合わせ（すなわち、その発生確率を定量化）の発生カウントを評価しているカウンタを更新し、必要に応じて、新しい組み合わせを追加する。
【０２０５】
この方法は低速であり、相対的に大きなメモリ負荷を具備しているため、ビデオデータの直接的な符号化には適していない。
【０２０６】
しかしながら、本発明においては、長さが変化するシンボルの組み合わせを調べるこの原理を、本発明に適用するニューラル符号化法に引き継いでいる。算術プローブ値を判定するためにニューラルネットワークを適用するという概念は、新しいものではないことに留意しなければならない。ニューラルネットワークを利用する方法は、１９９６年に、シュミットフーバーおよびハイルによって実行されている。彼らの方法は、ある意味では、ＰＰＭと同様に、以前に受信したシンボルと新しく到着したものの同時発生に対して注意を払い、相応して、プローブ値を判定している。この既知の解決方法によれば、現在試験されている組み合わせと、以前に「教授」されたものの中の１つの間に相関が存在しているニューラルネットワークの入力のみがアクティブとなるため、探索のために異なるシンボルグループ長を使用する必要はない。この結果、このようなシンボルの組み合わせの選択（認識）が自動的に実行される。しかしながら、この既知の方法は、トレーニングプロセスが非常に長いため、実際には、ほとんど有用ではない。例えば、１つの試験のケースにおいては、約２０ｋＢのデータの相関を認識するためのネットワークのトレーニングに、２日間を要している。
【０２０７】
マシュー V.マホーニー（フロリダ工科大学）が、ニューラルネットワーク理論から導出されたオンラインのトレーニング法を使用し、一定レートの代わりに、適応型学習係数を適用することにより、バイナリ算術符号化（この場合には、０と１のみが符号化対象のシンボルである）に対するニューラルネットワーク技法の適用を継承している。しかしながら、この改善された方法も、最適な符号化に必要なメモリ容量が過大であるため、ビデオ符号化に直接適用するには、十分なものではない。マホーニーのオリジナルの方法は、単一レベルの符号化のために２５８ｋＢのメモリを適用している。１２８レベル（予測、ブロックサイズ、ＤＣおよびＡＣ係数などを考慮して、１２８の異なるタイプのデータ構造用）において、これを適用した場合には、必要な合計メモリは、３２ＭＢを上回ることになろう。但し、ビデオ符号化のために、単一レベルのみを定義した場合には、この方法は、複数レベルを使用する従来の符号化方法よりも非効率的なものになろう。
【０２０８】
これらのすべての問題点を考慮した上で、ニューラルプローブ値を判定する本発明の方法を考案した。本発明による方法によれば、１〜２ｋＢという少ないメモリを使用してエントロピーを極大化することが可能である。最大で約１６ｋＢまでのメモリの拡大が有益であり、これを上回る領域においては、符号化係数の改善が無視できることが判明した。
【０２０９】
（ＶＩ．４．２）
以下の頁においては、この方法について詳細に説明する。前述の算術法に比べた唯一の違いは、プローブ値の計算（変数「prob」の値を返す機能）が、ニューラルプローブによって置換されているという点にある。
【０２１０】
符号化対象の到来ビットは、３２、６４、または、場合によっては、これよりも多くのビットサイズを有するシフトレジスタ（バッファ）に供給される（以下においては、３２ビットレジスタを有する例で説明）。このレジスタの情報が、いわゆる窓を構成する。次に、レジスタ内（３２ビットの整数として取り扱う）に保存されている値は、ハッシュ関数を使用してＮ個の部分に動的に分割される。
【０２１１】
次のようなハッシュ関数の定義を考えてみる（これは、一例として説明）。
adr1=register mod Ｈ0
adr2=Ｈ0-(Ｈ0*k)+((register/64)mod Ｈ1)
adr3=(Ｈ0+H1)-(Ｈ1*k)+((register/16384)mod Ｈ2)
adr4=(Ｈ0+Ｈ1+Ｈ2)-(Ｈ2*k)+((register/4194304)modＨ3)
【０２１２】
レンジ長Ｈ3が、(Ｈ0+Ｈ1+Ｈ2)-(Ｈ2*k)から残りのメモリの末尾（2048まで）まで延長するように、Ｈ3を以前のアドレス値から演算する。このハッシュ関数の結果が、図１８に示されている。
【０２１３】
変数「register」は、レジスタ１５０内に現在保存されているバイナリ値であり、Ｈ0〜Ｈ2は、既定の値である。例えば、Ｈ0〜Ｈ2の値は、２５６、５１２、１０２４であってよく、具体的な状況においては、これから、H3の値を１５３６と算出している。係数ｋは、ニューラルネットワークの出力によって付与される。係数ｋは、既定の値を具備しており、０〜１のインターバル内に属することができる。
【０２１４】
以上において提示されたハッシュ関数は、アドレスadr1〜adr4をテーブル１５５の行にマッピングし、このテーブル１５５は、２０４８行から構成されている。更に正確には、このマッピングは、サブレンジ１５１〜１５４に対するものであり、これは、address1がサブレンジ１５１内の要素（テーブル行）をポイントし、address2がサブレンジ１５２内の行をポイントし、address3がサブレンジ１５３内の行をポイントし、address4がサブレンジ１５４内の行をポイントすることを意味している。本発明の解決方法の重要な特徴は、サブレンジがオーバーラップ可能であり、これにより、ユニオン１５６−１５８を形成するという点にあり、この実施例は、３つのユニオン１５６〜１５８を有している。先程の式からわかるように、ユニオンのサイズは、係数ｋによって決定される。ユニオンの重要性は、最下位から最上位ビットに向かって増大する。ユニオンは、入力ストリーム内の繰り返し発生するビットシーケンスの認識において重要な役割を果たす。また、ユニオンは、２つのアドレスがテーブル１５５の同一の行をポイントすることを可能にするため、ユニオンの役割は重要である。数学的な考察の細部に分け入ることなしに、ここでは、入力がシーケンシャルに処理されるため、第１アドレスが対象ニューロンをポイントする場合に、その重みが、トレーニングプロセスにおいて変化するということに留意すれば十分であろう。別のアドレスが同一のニューロンを選択した場合にも、重みは、それに割り当てられているビット頻度関数の値と共に、再度変化することになる。従って、ニューロンに関連付けられているビット頻度関数の値も、２度にわたって変更されることになる。本システムの動作の際には、両方の入力が同一の重みを有することになる。
【０２１５】
係数ｋには、ニューラルネットワークの出力によって値が割り当てられ、サブドメイン１５２〜１５４の実際の長さＨ１〜Ｈ４が、係数ｋによって決定されるため（ユニオンサイズがサブドイメインの長さに影響を及ぼすため、ユニオンサイズを通じて間接的に決定）、サブドメイン１５１〜１５４へのテーブル１５５の分割は、それぞれの受信ビットの後に、ニューラルネットワークの出力に応じて動的に変化する。
【０２１６】
ハッシュ関数によって定義されたＮ個のアドレス（この場合には、Ｎ＝４である）が、テーブル１５５のＮ個の要素（行）を選択する。テーブル１５５のそれぞれの行は、量子化重み関数Ｗi,Qと、スケール重み関数Ｗi,Sという２つの重み関数と（あるいは、スケーリングファクタＳを生成する必要がない場合には、Ｗi,Qのみ）、離散アルゴリズムの場合と同様の方法で定義される頻度ペアｆ(0)i、ｆ(1)iを含んでいる（すなわち、頻度値は、ビットが受信されるたびに、ビット値に基づいて更新される）。選択された重み関数は、次のように、トレーニングプロセスにおいて変更される。
Ｗi=Ｗi+(error*gain*eta*((ｆ(0)i+ｆ(1)i)/(ｆ(0)i*ｆ(1)i))
ここで、ｉは、テーブルのアドレス指定された行のインデックスであり、「error」は、予測されたビットと実際に受信されたビットの差分であり、「gain」は、利得係数であり、「eta」は、学習係数であり、ｆ(0)、ｆ(1)は、先程定義されたビット頻度である。実際には、本方法において適用されるＮ入力ニューラルネットワークの知識ベースは、重み関数とテーブル１５５内に保存されている頻度値から構成されている。
【０２１７】
演算処理のときは、この例によるネットワークの出力は、次式によって与えられる。
【数１１】
2007503784.tif 000013
ここで、ｉは、出力の数であり、このインデックスｉは、１〜Ｎである（すなわち、すべての選択された重み関数について、出力を合計している）。ネットワークの出力は、ｋおよび「prob」値自体が出力に現れるように定義可能である。
【０２１８】
この場合にも、更に詳細な数学的分析はスキップし、ニューラルネットワークの動作を次のように記述可能である。最初のビットが到着する際には、プローブ値は０である（これは、確率０．５に対応している）。次いで、ネットワークが誤差 (error=bit-probe)を算出し、この誤差を、以前のビット値に割り当てられているニューロンに対して「教授」する（第１段階においては、これらの値は無関係である。以前のデータが存在しないため、すべてのアドレスが０であり、従って、０番目のニューロンが入力に割り当てられることになる）。次いで、本システムは、レジスタ（バッファ）の現在の値から新しいアドレスを生成する。次いで、これらのアドレスによって選択されたニューロンの重み関数（第１段階においては、ゼロである）を合計し、合計の指数関数を算出し（同様に、第１段階の結果はゼロである）、これが新しいプローブ値となる。次のプローブインターバルは、-0.5..+0.5であり、従って、0..1のインターバルに対してマッピングされる現在のプローブ値は、0.5となる。以降の到来ビットについては、今度は、有効なアドレスにより、前述のプロセスを反復し、以前に選択されたニューロンの重み関数を誤差値に基づいて変更する。このプロセスは、係数ｋについても、同一である。
【０２１９】
前述のように、システムの利得と学習係数を動的に調節可能である。好適な実施例においては、利得は、ニューロンを選択するアドレスがユニオン内のアドレスレンジをポイントしている場合にのみ、変更される。すなわち、利得係数は、ユニオンの優先順位に応じて、それぞれのユニオンに割り当てられる。学習係数は、係数ｋといくつかの外部決定要素によって決定される。学習係数は、ネットワークの学習曲線のスロープ、すなわち、誤差がそれぞれのトレーニングサイクルにおいて極小化される程度を規定している。
【０２２０】
ニューラルネットワークは、２つの出力を有しており、出力「probe」が、算術プローブ値を付与し、もう１つの出力が、ユニオンのパーティションを判定するべく適用される係数ｋを規定する。ニューラルネットワークの可能な構造が図１８ｂに示されており、入力レイヤ１６０と、「prob」および係数ｋをもたらす出力１６９および１６８のニューロンが示されている。この図示のニューラルネットワークは、隠れ層１６２をも具備しているが、本発明は、更に単純な構造のネットワークによっても適切に動作する。
【０２２１】
このようにして、ニューラルネットワークの知識ベースを構成するテーブルのそれぞれの行には、カウンタと見なすことが可能な頻度ｆ（０）およびｆ（１）が割り当てられる。これらのカウンタは、前述のテーブルFreqTbl[index]の要素と同様に、テーブル１５５のサブ分割によって生成されたサブレンジ１５１−１５４をポイントとするアドレスaddress1〜4の中の１つによって、所定のテーブルの行が選択される際に、現在の符号化済みのビットが０または１であった回数を規定している。従って、頻度ｆ(0)およびｆ(1)は、Ｎ行のテーブル内に保存可能であり、前述の方法と同様に、これらは、これらの値が所定の限度を超過した場合に、リスケーリングする必要がある。
【０２２２】
（ＶＩ．５．）
次に、レジスタ１５０のパーティションを反復的に試験し、最良のパーティションを選択する。ニューラルネットワークは、次に受信したビットの値に基づいて、最近にアドレス指定されたテーブル行の頻度データｆ(0)、ｆ(1)を更新し、これらの行内に保存されているニューロン重み関数に対して、ｋの最新の値と、予測されたおよび受信されたビット値間の差（誤差）に関連して頻度ｆ(0)、ｆ(1)から導出されたプローブ係数を「教授」する。
【０２２３】
本システムの動作は、多くの点において、前述の方法に類似しているが、動的なレジスタ分割と動的な利得および学習係数の利用は、機能的に新規な要素である。
【０２２４】
この方法が実際にどれほど有効であるかに関する実例を見てみよう。本発明は、２０個の８ｘ８ブロックのＤＣＴ係数を符号化し、１２８０バイトのデータを生成した。符号化済みのブロックは、フレーム内において隣接しており、これらは、実際に同一であった。本発明は、異なるブロック内にＤＣＴ係数の繰り返し発生するデータシーケンスが存在している状況におけるこれらの方法の符号化効率に対して主に関心を持っていたが、個々のブロック自体の内部には、繰り返し発生するシーケンスが存在していなかった。
【０２２５】
この結果を、その他の方法と比較して、次の表に示す。
【表１】
2007503784.tif 000014
その他のデータタイプの場合には、結果が相対的に大きな広がりを示しているが、本発明の方法は、依然として、その他の解決方法よりも格段に良好に稼働している。
【０２２６】
（ＶＩＩ．  帯域幅（転送レート）制御と圧縮比の調節）
（ＶＩＩ．１．）
帯域幅（転送レート）制御は、ビデオ符号化において最も重要な課題の１つである。ビデオフレームシーケンス内のフレームの情報量は、大きく変化しており、従って、実質的に均等な画像品質の維持を目的としている場合には、これらの変化に追随するべく、圧縮比を大きなスケールで調節しなければならない。
【０２２７】
圧縮済みのデータがストレージ装置上に保存されている場合には、その装置のストレージ容量が、符号化済みのデータの合計量を制限することになる。しかしながら、帯域幅が制約事項である最も顕著なケースは、データ転送システム上においてデータをリアルタイムで転送しなければならない場合に発生する。このようなケースにおいては、転送するビデオの品質は、利用可能な帯域幅（データ転送レート）によって制限される。従って、転送レート（１秒間に転送されるデータの量）をおおよそ一定の値に維持することが必要である。これは、圧縮比を調節することによって実現可能である。以下においては、圧縮比の調節とは、量子化係数の増大または減少を意味している。しかしながら、因果関係を伴うことなしに、量子化を増大させることはできない。量子化が増大すると、画像の細部が消失し、識別可能な空間周波数の減少が画像内に発生し、同時に、視覚的に知覚可能なエラーが増大する。特定のポイントにおいて、画像は、不可避的に複数のブロックに分離され、その他の視覚的に明白な画像の歪が発生する。
【０２２８】
利用可能な帯域幅に応じた量子化係数の変更は、それ自体、既知である。従来の解決方法においては、符号化済みのシーケンスの予測されたおよび実際の長さから、新しい量子化係数を算出し、次のフレームに対して適用している。更に進化した解決方法においては、一度に１つのフレームを考慮する代わりに、所定の時間フレーム内において圧縮されたフレームの平均長と予想平均長を使用して新しい量子化係数を算出している。これらの方法は、通常、演算された最大値を制御システムが実現することを要する時間を規定したリアクション遅延ファクタを伴っている。
【０２２９】
このような方法は、一定の転送レートまたは一定のビットレートを提供している（ＣＢＲ法）。
【０２３０】
転送レート制御に最小および最大限度を設定し、転送レートをこれらの限度内に常に維持すると共に、上限および下限の平均値に等しい支配的な転送レートを長期間にわたって実現するように試みることにより、結果を大幅に改善することができる。オリジナルおよび再構築されたフレーム間の信号対雑音比を制御パラメータとして考慮することが好適であり、すなわち、ＳＮＲが劣化した場合には、転送レートを（特定の限度内において）増大させるべきであり、ＳＮＲが改善した場合には、転送レートを低下させることが可能である。これは、いわゆるＶＢＲ(Variable Bit Rate)法である。この解決方法の主な欠点は、合計予想データ長を正確に予測できないという点にある。制御レンジが過大になると共に、合計符号化済みデータ長も過大なスケールで変化することになるため、最小および最大値を過大に設定することはできない。また、システムによって設定された最大転送レートによって要求される品質を維持できないという状況も、しばしば発生し、転送レートの更なる増大が必要となる。
【０２３１】
（ＶＩＩ．２．）
本発明によれば、帯域幅（転送レート）制御のために、２つの解決方法が提供されている。いずれの方法も、ニューラルネットワークのアプリケーションに基づいている。
【０２３２】
（ＶＩＩ．３．１．）
第１の解決方法によれば、ニューラルネットワークは、バックプロパゲーション構造を有しており、これは、それ自体、既知である。このネットワークが図１８ｃに示されている。ネットワークは、Ｎ個の入力１８０１〜１８０ｎ、２Ｎ個のニューロンを含む隠れ層１８５、および少なくとも１つの出力を有している。量子化係数ＱおよびスケーリングファクタＳ（この役割は、ＶＩＩＩにおいて後程詳述する）が出力１８８および１８９に現れる。
【０２３３】
連続制御を提供するために、ネットワークの入力は、最新のＮ個の受信データ要素であり、これらは、その順序に従ってＮ個の入力に対してシーケンシャルに供給される。これらのデータ要素は、予想されたおよび符号化済みフレーム長の比率によって構成されており、これらのデータ要素は、時系列で考えられている。
ＥＬi-1/ＣＬi-1、ＥＬi/ＣＬi、ＥＬi+1/ＣＬi+1、他、
ここで、ＥＬは予想される長さ（Expeted Length）であり、ＣＬは符号化済みの長さ（Coded Length）であり、ｉはｉ番目（例えば、符号化済みのフレーム）のデータに対応したインデックスである。
【０２３４】
ネットワークのトレーニングのために適用される試験データは、トレーニングプロセスの開始前に、外部の制御システムを使用か、または手動によって生成され、これらの試験データは、複雑な相関計算によって、1,000〜4,000個のトレーニングサンプルに低減される。トレーニングサンプルは、通常のビデオ記録内において発生するすべてのフレームタイプを表すように考案されている。これらのサンプルは、いくつかのトレーニング周期を通じて、具体的な実施では、50,000回の周期で、システムに対して「教授」される。
【０２３５】
トレーニングが完了すれば、ネットワークは、実際のデータを受信および処理する準備が整うことになる。この具体的な実施例においては、ネットワークの出力に、量子化係数Ｑではなく、ｋQ係数が現れるように、計算が設定されており、このｋQ係数が、現在のＱを変更するために使用されていることに留意されたい。
【０２３６】
離散システムと比べた場合のニューラルネットワークの主な利点は、これらによって実質的に制御特性のすべてのタイプを実施可能であるという点にある。制御特性は、一定ビットレートの制御システムよりも、可変ビットレートの制御システムにおいて格段に重要である。
【０２３７】
（ＶＩＩ．３．２．）
前述のように、ネットワークは、吟味されたトレーニングによって動作する。ニューラルネットワークは、以前に予測されたおよび符号化済みのフレーム長値によって要求されるマッピングを推定し、この後者は、データシーケンスと見なされる。この方法は、一定帯域幅（ＣＢＲ）の場合には、うまく適用可能であるが、可変帯域幅（ＶＢＲ）システムの場合には、それ自体、常に適しているわけではない。この理由は、ＶＢＲシステムの場合には、画像品質をも考慮しているからである。画像品質が平均品質値を上回っている場合には、圧縮比を増大させ、品質が平均値を下回っている場合には、圧縮比を減少させる。ニューラルネットワーク制御システムは、この点をも考慮しなければならない。従って、制御システムが超過してはならない最小および最大量子化係数を制御ネットワークに対して指定する。これらの値は、図１８ｃの参照番号１８６および１８７によって示されているニューロンを通じて有効になる。
【０２３８】
（ＶＩＩ．３．３．）
ＶＢＲモードに適用されるニューラルネットワークは、ＣＢＲモードに使用されるネットワークよりも２倍多い入力を有している。なぜならば、予測される長さ／符号化済みの長さの比率に加えて、また、画像品質を表すデータも符号化済みの品質に対する予測される品質の比率の形（下記の式）で、ネットワークの入力に供給されるためである。
ＥＱi-1/ＣＱi-1、ＥＱi/ＣＱi、ＥＱi+1/ＣＱi+1、他
ここで、ＥＱは、予測品質であり、ＣＱは、符号化済みの品質であり、ｉは、データのインデックスを示す。
【０２３９】
図１８ｃからわかるように、ＶＢＲモードにおいて使用されるニューラルネットワークは、量子化係数を判定する出力１８８に加えて、スケーリングファクタＳを表す更なる出力１８９（この出力の役割については後述する）をも有することができる。前述のケースと同様に、ネットワークは、トレーニングの際に、時系列の予測された／符号化済みの品質と予測された／符号化済みの長さの入力データを処理し、規定されている最小および最大値に従って、求められているマッピングを推定する。トレーニングデータは、規定されている制御特性と制御スロープを反映するべく選択されている。
【０２４０】
ネットワークの実際の符号化動作においては（すなわち、実際のデータを処理する際には）、更なるトレーニングは存在せず、ニューロンの重み関数は一定に維持される。符号化自体は、実際には、関連付けのタスクであり、時間スロット内に含まれている受信した入力データを、ネットワークがトレーニングプロセスにおいて「学習」した内容に基づいて、ＱおよびＳファクタに対してマッピングする。従って、受信した長さおよび品質データに従ってＱおよびＳの次の値を判定することにより、ネットワークは、従来の制御システムと同一のタスクを実行する。時間スロットは、直観的には特定の状況を表していると言うことができる。ネットワークの目的は、トレーニングの際に出会った種々の状況の中から現在のものに最も一致するものを探索し、探索した特定の状況の中で学習したことから最も好適な対応を選択し付与することである。
【０２４１】
このニューラルネットワークの実施の一変形は、実質的に、次の単一の式（いわゆるシグモイド合計）のみを使用している。
【数１２】
2007503784.tif 000015
ここで、Ｎは、ニューロンの数である。「gain」値は、１であってよく、その唯一の役割は、出力値の大きさの順序を判定することであるため、これは、最適な探索によって判定可能である。まず、１つまたは複数の隠れ層内のニューロンの重み関数を前述の式によって合計し、次いで、出力層の重み関数についても同様に計算を実行する。
【０２４２】
実際の実施においては、入力データを除いて、ＶＢＲおよびＣＢＲネットワーク間には、大きな違いは存在しておらず、これは、ＶＢＲモードを実行するネットワークが、ＣＢＲモードの機能をも同様に実行可能であることを意味している。ＣＢＲモード動作の場合には、これは、単純に品質入力に（可能な最大値において）一定の値を提供することによって実現する（この入力は、トレーニングの際にも、同様に一定に維持される）。ＣＢＲモードにおいては、最小および最大帯域幅限度入力を所望の一定の帯域幅に対応した値に設定することにより、等しく設定し一定に維持する。
【０２４３】
（ＶＩＩ．４．）
本節においては、ニューラルネットワークによって実行される改善された動的な量子化の更なる変形（いわゆるアドレス分解法）について説明する。
【０２４４】
（ＶＩＩ．４．１．）
このネットワークモデルは、算術符号化を取り扱った節において提示したものの一種である。これが前述のネットワークと異なる点は、ネットワークの特定の選択されたニューロンのアドレッシングが、時間窓／時間スロット全体によって決定されないという点のみである。これが図１９に概略的に示されており、時間窓内においてチェックされた入力データが、アドレス生成器をバイパスすることが示されている。この場合には、入力データシーケンスの要素は、０と１ではなく、従って、前述のアドレス生成手順を直接適用することは不可能である。その代わり、ニューラルネットワークの入力層が２つの部分から構成されている。到来データが、予測された／符号化済みの長さデータまたは予測された／符号化済みの品質データであるかどうかに応じて、時間窓内において検出可能なそれぞれのデータ値に対して、（先程提示した例に類似した）ハッシュ関数が、２０４８や２５６などの適切な数のニューロンから選択された１つのニューロンを割り当てる。実際には、これは、予測された／符号化済みの長さデータによって機能するニューロン（更に正確には、その重み関数）用のテーブルと、予測された／符号化済みの品質データによって機能するニューロンの重み関数用の別のテーブルという２つのニューロン重みテーブルを意味している。時間窓のサイズがＮ＝３２であり、２つのデータタイプについて、それぞれ、１１および８ビットを使用してアドレス生成を実行する場合には、ニューロンの入力データを保存するのに必要なメモリのサイズは、Ｍｅｍ＝2048＊16＋256＊16となる（予測された／符号化済みの長さから生成されたアドレスの１６ｘ１１ビット長の正規化データと、予測された／符号化済みの品質データから生成されたアドレスの１６ｘ８ビット長の正規化データとから成る）。
【０２４５】
使用したアドレス変換手順において、ニューラルネットワークの入力は、０と１の間の値を有する正規化されたデータであり、続いて、アドレス生成のために、これらを整数に変換する。
Ｃｖｋ=ＶＫｎ＊２11
Ｃｍ=Ｍｎ＊２8                式ＩＩＩ
ここで、ＶＫnは、正規化された予測された／符号化済みの長さの比率であり、Ｃvkは、生成されたアドレスであり、Ｍnは、正規化された品質であり、Ｃmは、生成されたアドレスである。
【０２４６】
これら上記の式に基づいて、時間シーケンスのそれぞれの位置に配置されているデータからアドレスを生成する。次いで、このように生成されたアドレスが、テーブル内に保存されているニューロンをアドレッシングする。換言すれば、ニューロンは、これらの生成されたアドレスによって選択され、ニューロンは、トレーニングプロセスにおいて、予測された／符号化済みの長さと、予測された／符号化済みの品質の比率とを受信する。本システムは、時間シーケンスと関連付けられていない２つのその他の入力を有している。図１８ｃに示されているネットワークと同様に、これらの入力は、最小および最大帯域幅を決定するべく適用される。誤差係数は式（１／Ｑ−１／Ｑprev）を使用して算出する（すなわち、誤差係数は、現在のトレーニング量子化係数の逆数と、以前に算出された量子化係数の逆数の差分として判定され、ここで、Ｑprevは、以前の量子化係数である）。
【０２４７】
重み関数は、次のように変更する。
【数１３】
2007503784.tif 000016
ネットワークの有効な制御動作の際には、更なるトレーニングは存在しない。すなわち、このシステムは、プレトレーニングネットワークをも使用している。制御動作のプロセスは、重みの変更を実施しないことを除いて、トレーニングプロセスと同一である。
【０２４８】
前述の内容と同様に、最小／最大帯域幅および品質データを個々の一定の値に固定することにより、このシステムをＣＢＲモードに切り換えることができる。
【０２４９】
このシステムは、多段階モードにおいても、同様に問題なく動作する。この動作モードの本質は、第１段階において、システムが、制御を伴うことなしに、場面全体を量子化係数（例えば、Ｑを３に設定して）によって符号化する。後続の第２段階において、制御システムを起動した状態で符号化を実行する。第１段階において、それぞれのフレームを圧縮可能な程度を規定しており、従って、Ｑの判定が不要であって、第１段階から直接適合可能であるため、この解決方法によれば、改善された高精度の符号化が提供される。さもなければ、本発明のニューラルネットワークは、変更を伴うことなしに適用可能である。多段階モードにおいては、高速トレーニング手順を使用してトレーニングを実行可能である。また、このモードにおいては、補間が非常に有効であり、本発明は、離散制御システムによって、４〜６段階で実現する品質に、ニューラル制御システムによれば、わずかに２段階において到達可能であることを観察した。尚、単一段階モードと比較して、多段階モードは、必ずしも良好な品質を提供しないことに留意されたい。このモードの利点の１つは、出力の長さを、例えば、ストレージ媒体の容量などに対応した既定の値に調節可能であるという点にある。
【０２５０】
（ＶＩＩＩ．  動的なスケーリング）
（ＶＩＩＩ．１．）
前述のように、要求される長さに保存するために符号化されたビデオが、要求されるビデオ品質で保存できないという状況が、しばしば、発生する。これは、例えば、事前設定された圧縮比が、特性のシーケンスにとって極めて大きく、従って、現在設定されている圧縮の最小／最大限度を使用することによっては、要求される画像品質で保存できないという状況において発生しよう。このような状況は、通常、非常に詳細且つアクションの多い画面において発生する。一例として、長編映画「The Mummy Returns」の最初の５分間を挙げることができる。この特定のシーケンスの場合には、良好な品質のＭＰＥＧ圧縮のために、少なくとも２．５Ｍビット／秒の帯域幅が必要とされるであろう。しかしながら、利用可能な帯域幅を１．５Ｍビット／秒に低下させると、エラーを除去するために、圧縮時および復元時の両方において、かなり複雑な事前または事後のフィルタリング処理が必要となろう。この結果、符号化したビデオの品質がほとんど「許容可能」なレベルに到達し得ない程度にまで、画像のシャープネスが大幅に低下することになろう。
【０２５１】
（ＶＩＩＩ．２．）
前述の問題を除去するために、本発明においては、動的なスケーリングの概念を導入している。この概念は、限定された外部境界条件のために制御システムが要求される画像品質を維持できない場合に、縮小（サイズ変更）を行うことを基本的に意味している。満足できる結果が得られるサイズにフレームを縮小（サイズ変更）するのである。本システムは、この縮小されたサイズのフレームを圧縮し、復元において、これをそのオリジナルのサイズに回復する。当然のことながら、この場合には、画像品質も低下し、これは、主にシャープネスの低下となって現れる。少なくとも、圧縮比を極端に大きく設定しない限り、圧縮によって発生するブロッキングアーチファクトやその他の一般的なエラーは発生しない。
【０２５２】
本発明は、このようなクリティカルなフレームシーケンスについて、入力データの量を低減する一方で、圧縮係数を不変に維持した場合に、何が起るかを調べた。換言すれば、フレームを、そのオリジナルサイズの３／４または１／２に縮小した。符号器が、画像品質を考慮して、データレートを可能な限り一定に維持できるようにするため、フレームサイズを縮小させることにより、結果的に、圧縮処理のレベルを低下させることができる。この方法で、出力データの量が、サイズ変更の前と同一の量に維持される。例えば、データストリーム全体が、例えば、０．５Ｍビット／秒の帯域幅で符号化され、クリティカルなシーケンスにおいて、フレームがそのオリジナルのサイズの半分に縮小された場合には、実際の転送レートは、０．５Ｍビット／秒に維持されるが、圧縮比と量子化係数は、大幅に低下する。前述の画像例の場合には、後者の量子化係数は、オリジナルのフレームサイズにおいて２Ｍビット／秒の帯域幅で符号化された画像品質に対応する程度にまで低下させた。これは、エラーの減少を伴っている。この方法の欠点は、サイズ変更によってフレームの分解能が低下するという点にある。従って、フレームが復号化においてオリジナルサイズに復元した際に、消失したピクセルの値を推測しなければならない。但し、この問題は、適切なスケーリング法を適用することによって大幅に軽減可能である。フレーム内に空間周波数成分が存在しており、相応して変換を実行しなければならないことを考慮しなければならない。
【０２５３】
（ＶＩＩＩ．３．）
従って、本発明による動的なスケーリング法においては、スケーリングされた画像が必要である。補間に基づいたいくつかのフレームスケーリング法を試験した。Lancos法が、最良の結果をもたらした（Lancos法は、それ自体既知のリサンプリング手順であり、画像の空間周波数成分に基づいて、フィルタによって消失したピクセルを補間する）。スケーリングを伴う圧縮と伴わない圧縮を比較すると、スケーリングを伴わない場合には、ストリームを０．５Ｍビット／秒の転送レートで圧縮した場合に、厳しい条件のシーケンスにおいて品質低下を容易に感知可能であることが判明した。画像の多くの領域が完全に「フラット」になり、ブロックアーチファクトとストライプが出現し、画像に消しゴムを使用したかのように、いくつかの領域内において、画像のシャープネスが大幅に低下する。一方、本発明によるフレームスケーリングによって圧縮を実行した場合には、これらのエラーは、いずれも発生しない。感知可能な唯一のエラーは、シャープネスの低下である。但し、シーケンスを分析した結果、通常、高速な動きがビデオ画面において発生するポイントにおいてスケーリングが必要であることが判明した。高速な移動が発生する画面は、通常、オリジナルが既にわずかにぼやけているため、リスケーリングによって引き起こされる情報損失は、ほとんど感知不可能である。
【０２５４】
本発明の動的なスケーリングは、次のように実行される。まず、最初にそれぞれの着信フレームは、０のスケーリング係数（スケーリングを伴うことなし）で、スケーリングモジュールを通過する。符号化の結果が、規定されている限度内において満足できるものになっているかどうかを圧縮制御システムが判定する。結果が不満足なものになっている場合は、復号化後であっても許容可能な品質を確保できる程度にフレームサイズを変更（縮小）する。
【０２５５】
このスケーリング処理は、離散法を利用して解決可能であることに留意されたい。但し、本発明のシステムに、帯域幅制御のためにニューラルネットワークが既に適用されていることを考えれば、ニューラルネットワークによるスケーリングもより効率的に実行することが可能である。問題が帯域幅制御の問題に密接に関係していることから、ニューラルネットワーク（図１８ｃ参照）に別の出力を追加すれば十分であることが判明した。従って、ネットワークは、量子化係数のＱ係数を提供するものと、スケーリングファクタＳを提供するもう１つのものからなる２つの出力を具備している。
【０２５６】
帯域幅制御用（ＶＩＩ．３および図１８ｃを参照）に提供されている第１の解決方法においては、新しいニューロン１８９を直接挿入し、この出力によってスケーリングファクタＳを提供可能である。しかしながら、第２の提案解決方法（ＶＩＩ．４参照）の場合には、実際には、２つの重みベクトルをそれぞれのテーブルアドレスに割り当てる必要がある。実際には、これは、同一の入力を具備しているが、出力に異なる値を送信する２つの独立したニューラルネットワークに対応している。ネットワークを更に高度なものにするべく、ニューラルネットワークに隠れ層を追加し、そのニューロンを出力層に接続することを提案する。この場合には、ネットワークは、いわゆるバックプロパゲーション構造を有することになる。この場合にも、以前の解決方法と同様に、入力層のニューロンは、本システムによって生成されるアドレスによってポイントされた位置によって選択される。スケーリング手順は、Ｉ（イントラ）フレームから始まり、次のＩフレームまで継続する。その他のタイプのフレームについて判定されたスケーリング係数を平均化する。これが、図２０、図２１に示されており、この場合には、スケーリングは、Ａにおいて始まり、Ｂとマーキングされたポイントにおいて終了している。
【０２５７】
（Ｘ．  本発明に適用するニューラル制御システムに関するいくつかの全般的な所見）
本発明は、本発明の制御システムに伴う潜在的なアプリケーション用のいくつかの異なるネットワークタイプを試験した。これらの演算負荷と適切な制御動作を考慮した結果、意外にも、最良の結果は、最も単純な構造を有するネットワークによって生成された。いわゆるカウンタープロパゲーションタイプのネットワークも優れた結果を提供可能であり、多くの場合に、前述のバックプロパゲーションタイプのネットワークよりも良好な近似を提供するが、これは、アドレス分解法（前述の内容を参照されたい）を適用した場合のみである。要約すれば、第２の方法は、そのカウンターパートよりも格段に多くのニューロンを使用しており、これらが相対的に大きな知識ベースを提供するという事実に起因して、第１の方法よりも良好に稼働した。バックプロパゲーションまたはカウンタープロパゲーションに変換されることにより、優れた制御が提供される。
【０２５８】
本発明は、基本的に、異なる制御特性を実現し、視覚的に感知される画像品質を考慮しつつ、最適な圧縮を保証する能力を有する制御システムを提供するという概念に基づいている。学習した異なる特性を、対象ビデオシーケンスに最適な特性を選択可能なプロファイルにグループ化可能である。また、本発明は、離散制御システムの試験も行い、これらの制御ダイナミクスが不十分なものであることを見出した。例えば、中間の帯域幅を使用して符号化を２つの段階で実行すれば、より高い圧縮を必要としたであろうシーケンスや、より低い圧縮を使用すれば満足できたであろう場面を常に検出することができよう。既知の離散符号化システムは、閉じたシステムであり、これは、これらが、通常、一定の関数を使用して符号化を実行することを意味している。しかしながら、ニューラルシステムは、以前のフレームの情報を考慮して、学習した瞬間的な特性を使用して符号化制御を実行する能力を有している。
【０２５９】
様々なニューラルネットワークがそれ自体既知であるため、本明細書においては、本発明のニューラルネットワークの動作の詳細な分析は省略した。本発明は、ビデオフレームシーケンスの符号化に適合されたニューラルネットワークのいくつかの具体的な実例を提供したに過ぎない。
【０２６０】
（ＸＩ．１．  本発明の方法を実装するハイブリッドビデオ符号化システムの動作概要）
システム全体の構造が図８および図２２〜図２４に描かれている。圧縮の際には、フレームは、まず、スケーリングシステム（リサンプラモジュール）６１を通過する（図８）。本システムは、符号化を継続するべき方法を判定し、相応して、符号化モード（Ｉ、Ｐ、Ｂ）を選択する。Ｉフレームの場合には、それぞれのブロックごとに、予測を実行し、本システムは、分散分析の結果に基づいて、最良の圧縮性を約束する予測を選択する。次いで、ブロックをＤＣＴによって変換し、適切なレベルにおいて量子化および圧縮を行う。
【０２６１】
Ｐフレームの場合には、符号化対象の現在のブロック用の一致した参照ブロックを探索するための参照フレームとして、先行するフレームのみを使用し、Ｂフレームの場合には、先行するおよび後続するフレームを使用する。次いで、検出したブロックをブロックサイズと位置に応じて補償し（任意選択により、１／２または１／４ピクセル分解能探索および動き補償を使用して、それを参照ブロックから減算する）、次いで、そのブロックを、予測、変換、および符号化する。同時に、検出した基準位置を動きベクトルに変換し、この動きベクトルを以前のものから減算して、適切なレベルで圧縮する。圧縮比は、予測されたおよび符号化済みの長さおよび品質の値に従って、制御システムによって調節する。要求される品質を現在の限度内において維持不可能な場合には、品質が許容可能になるサイズにフレームを縮小する。尚、この場合に、具体的な実施においては、本システムは、フレームをそのオリジナルのサイズの半分未満には決して縮小しなかったという点に留意しなければならない。
【０２６２】
意外にも、この実施方法が、期待をはるかに超えて機能することが判明した。４５０ｋＢ／秒の帯域幅において、リスケーリングによって発生するシャープネスの低下以外には、クリティカルなシーケンス内に、視覚的に知覚可能なエラーがほとんど存在していない。３８０〜４５０ｋＢ／秒の転送レートにおいては、本発明のハイブリッド符号化システムは、平均的なビデオレコーダのＳＰモードの品質を提供し、２８０〜３８０ｋＢ／秒のレンジにおいては、品質は、一般的なビデオレコーダのＬＰモードに対応していることが判明した。帯域幅が５００ｋＢ／秒を上回る場合には、ビデオ品質は、ＤＶＤ品質に接近する。７５０ｋＢ／秒の限度を上回る領域においては、実際に、ＤＶＤと視覚的に区別するのが不可能である。
【０２６３】
本発明の符号化システムの欠点は、算術符号化に起因し、伝送チャネル内におけるデータ損失によって生じるエラーの影響を受けやすいという点にある。しかしながら、最新のデジタル伝送ネットワーク（インターネットなど）は、非常に大量のデータの場合にも、高度なセキュリティと実質的に無損失のデータ転送能力を有しており、従って、この欠点は、深刻なものではない。符号化システムの動作を効率の良いものにするには、頻度テーブルを連続して更新する必要がある。復号化プロセスにおいて伝送エラーがどこかで発生した場合には、影響を受けたフレームの末尾まで、その時点以降のすべてのデータが損傷することになる。
【０２６４】
（ＸＩ．２．１．）
図２２を参照し、本発明によるシステムによって圧縮されたデータの復号化に適用される本発明のハイブリッドビデオ複合化器の動作について説明する。フレームの再構築は、符号化されたデータを入力バッファ１２１に供給し、ストリーム情報ブロック１３３を復号化することによって始まる。ストリーム情報ブロック１３３は、フレームのオリジナルのサイズと、復号化においては変化しないその他のデータを含んでいる。従って、ストリーム情報ブロック１３３は、復号化プロセスの開始時点において、一度復号化されるのみである。次いで、フレームヘッダ情報を復号化（段階１２２）する。フレームヘッダ情報ブロックは、現在のフレームサイズ、フレームタイプ（Ｉ、Ｐ、Ｂ）、量子化タイプ、および対象フレームにのみ属するその他のデータを含んでいる。
【０２６５】
フレームがイントラフレームである場合には、ブロック分割を表す四分木構造は、ＤＣＴ係数と個別のブロック毎に分割された特定情報（段階１２６）と一緒に復号化される（段階１２３）。次に、それぞれのブロックに関して本発明の変換を実行し（段階１２７、１２８、１２９）、結果的に得られた逆変換済みのブロックを、新しいフレームを保存する最新ビデオ用メモリ１３１内に書き込む。イントラフレーム内においては、それぞれのブロックが、その再構築に必要なすべてのデータ（特に、予測タイプと、そのブロックが１６ｘ１６ブロックまたは４つの４ｘ４ブロックなどに分割されているかどうかを示す情報）を含んでいる。
【０２６６】
インターフレームの場合には、四分木構造がブロックの再構築に必要なデータを含んでいるため、まず、ブロック分割を表す四分木構造を段階１２３において復号化する。これらのデータを使用し、個別のサブブロックに関連付けられたＤＣＴ係数、動きベクトル、および予測コードを復号化すると共に、符号化に使用された参照フレームを識別するコードを復号化する。逆変換も実行し（段階１２７、１２８、１２９）、次いで、段階１２４において動きベクトルを使用して選択された参照メモリ１２５内に保存されている参照フレームのブロックを、段階１３０において、逆変換済みのブロックに追加する。
【０２６７】
フレームが線形補間を使用して符号化されている場合には、まず、段階１２４の再構築された動きベクトルによって選択されたブロックと参照メモリ１２５内に保存されている参照フレームに基づいて、補間済みのブロックを生成し、次いで、この補間済みのブロックを逆変換済みのブロックに追加する。それぞれの再構築されたブロックを、新しいフレームを保存する最新ビデオ用メモリ１３１内に書き込む。イントラおよびインターの復号化および再構築されたフレームの両方を参照メモリ１２５内に書き込む。参照メモリ１２５は、符号化プロセスにおいて使用された最も遠い参照フレームに応じて、複数のフレームを格納可能である。参照メモリ１２５は、循環バッファであり、これは、新しいフレームを保存するたびに、最も古くなったフレームが削除されることを意味している。
【０２６８】
次は、段階１３２において、フレームサイズをオリジナルのものに回復する段階である。フレームサイズは、好ましくは、Lancos法によって回復する。適切なサブルーチンにより、符号化および復号化の両方において、スケーリングを実行する。スケーリングの能力を有するハードウェアビデオソースまたは出力装置が利用可能である場合には、符号化器または復号化器による指定を要するのは、フレームサイズのみである。
【０２６９】
（ＸＩ．２．２．  ニューラル復号化器）
周知のように、算術符号化においては、符号化器の動作は、復号化器の動作と同一であるため、ニューラル算術復号化器は、ニューラル算術符号化モジュールと実質的に同一の方法で動作する。この方法は、適応型であるため、開始時点において、単一のビットを復号化し、復号化されたビットを使用して、新しい予測子を演算する。予測子を演算するには、符号化に使用するニューラルネットワークを変更することなしに使用可能である。符号化器と復号化器の相違点は、周知の数学的計算における違いのみであり、その他の機能的な要素は完全に同一である。
【０２７０】
最後に、完全なビデオ符号化／変換システムを提示する（図２３参照）。本発明のビデオ符号化システムは、ビデオ信号のデジタル化、効率的な符号化、および保存を実行する能力を有している。同時に、これは、ストレージ効率を向上させるために、既に符号化済みのデジタルビデオデータを変換（transcoding）する能力をも有している。例えば、このような変換を適用し、例えば、衛星放送またはテレビ放送を記録するために、ＤＶＢ放送のＭＰＥＧ転送パケットの帯域幅を約２０Ｍビット／秒から約６００Ｋビット／秒に低減することができる。同様に、本発明の高効率符号化法を使用することにより、機械的な装置の適用を伴うことなしに、デジタルビデオカメラによって記録されたビデオシーケンスを保存することも可能である。
【０２７１】
この符号化システムの入力は、アナログビデオ入力９３、合成および復号化されたＭＰＥＧデジタルビデオ／オーディオパケット入力９４、およびアナログオーディオ入力１０５から構成されている。
【０２７２】
この符号化システムは、
（ａ）デジタル変換の後に、アナログビデオ入力９３およびアナログオーディオ入力１０５から到来する信号を符号化するモードと、
（ｂ）デジタルビデオ信号９４とオーディオ信号とを変換するモードがあり、オーディオ信号は、合成されたデジタルビデオ／オーディオ信号パケットからデマルチプレクサ１０９によって分離されるようなモードからなる２つのモードにおいて動作可能である。
【０２７３】
セレクタ９６によって選択されたデジタルビデオデータは、入力９７を通じて（図８と関連して先程説明した）符号化システム９８に供給される。符号化済みのビデオデータ９９は、マルチプレクサ１００により、デジタルオーディオデータと多重化されて合成パケット１０１が生成される。ＰＳＣ（Peripheral System Controller）１０２によってルーティングされたデジタルパケットは、ハードディスク１０３上、光ストレージ装置上、または半導体メモリ１０４内に保存可能である。セレクタ１０７によって選択されたデジタルオーディオ信号は、符号化器１０８によって符号化され、前述のように保存される。
【０２７４】
（ＸＩ．２．３．）
保存されているビデオおよびオーディオデータの復号化が図２４に示されている。デマルチプレクサ１１０が、半導体メモリ１０４またはハードディスク１０３上に保存されているデータパケットを、符号化済みのデジタルビデオデータ１１１と符号化済みのデジタルオーディオデータ１１２に分離する。デジタルビデオデータ１１１は、図２２を参照して前述した復号化システム１１３によって復号化される。復号化されたビデオデータ１１４は、任意選択により、フィルタリングおよびスケーリングモジュール１１５に供給され、次いで、Ｄ／Ａ変換器１１６によってアナログビデオ信号１１７に変換される。デマルチプレクサ１１０によって分離されたデジタルオーディオデータ１１２は、復号化器１１８によって復号化され、最終的に、Ｄ／Ａコンバータ１１９によってアナログオーディオ信号１１２に変換される。本発明は、前述の実施例に限定されるものではなく、その他の変形および実施も考えられる。
【図面の簡単な説明】
【０２７５】
【図１】従来技術によるＭＰＥＧ符号化の概略を示すブロック図である。
【図２】インターフレームを検出する方法を示す図である。
【図３】参照ブロックと符号化対象のブロックとを比較する方法を示す図である。
【図４】ＤＣＴ変換、量子化、および後続するエントロピー符号化の段階を示している図である。
【図５】参照ブロックから符号化対象のブロックを減算する方法を示す図である。
【図６】先行または後続するフレームにおいて参照フレームを探索するプロセスを示している図である。
【図７】ＤＣＴ法とＦＦＴ法の相違点を示している図である。
【図８】本発明のハイブリッドビデオ符号器の概略機能図である。
【図９】イントラブロックの予測モードを示している図である。
【図１０】可能な予測モードの中から採用する予測モードが選択される方法を示している図である。
【図１１】ブロック分割の符号化の一実施例を示している図である。
【図１２】異なるサイズのサブブロックを使用することを可能とするブロック分割方法を示している図である。
【図１３】３つの異なるブロックサイズから構成される分割方法を示している図である。
【図１４】２つの異なるブロックサイズから構成される分割方法を示している図である。
【図１５ａ】ＰおよびＢフレームに適用可能な探索モードを示している図である。
【図１５ｂ】ＰおよびＢフレームに適用可能な探索モードを示している図である。
【図１５ｃ】ＰおよびＢフレームに適用可能な探索モードを示している図である。
【図１６】縮小されたサンプルを使用する参照探索法を示しており、この探索プロセスにおいて使用するブロックサイズとブロックパターンが示されている図である。
【図１７】本発明による方法において使用する補間済みの参照フレームを生成する方法を示している図である。
【図１８ａ】本発明によるニューラル算術符号化ユニット内のニューロンの選択（アドレッシング）を示しており、且つ、アドレスレンジ内のユニオンのレイアウトを示している図である。
【図１８ｂ】本発明によるニューラル帯域幅制御システムの一実施例に適用可能なニューラルネットワークを示している概略図である。
【図１８ｃ】本発明によるニューラル帯域幅制御システムの別の実施例に適用可能なニューラルネットワークを示している概略図である。
【図１９】大きなダイナミックレンジのニューラル帯域幅制御システム内における入力データのデータ経路の変更を示している図である。
【図２０】本発明による動的スケーリング法を示している図である。
【図２１】本発明の動的スケーリング法において実現される伝送の信号／雑音特性と、動的スケーリングを伴わない場合の特性とを比較して示している図である。
【図２２】本発明による方法によって符号化されたビデオデータを復号化するプロセスのフローチャート図である。
【図２３】本発明による方法を適用するオーディオおよびビデオデータ符号化システムの概略ブロック図である。
【図２４】本発明に従って符号化されたオーディオおよびビデオデータを復号化するのに適用可能なシステムの概略ブロック図である。
【図１】
2007503784.tif 000020
【図２】
2007503784.tif 000021
【図３】
2007503784.tif 000022
【図４】
2007503784.tif 000023
【図５】
2007503784.tif 000024
【図６】
2007503784.tif 000025
【図７】
2007503784.tif 000026
【図８】
2007503784.tif 000027
【図９】
2007503784.tif 000028
【図１０】
2007503784.tif 000029
【図１１】
2007503784.tif 000030
【図１２】
2007503784.tif 000031
【図１３】
2007503784.tif 000032
【図１４】
2007503784.tif 000033
【図１５ａ】
2007503784.tif 000034
【図１５ｂ】
2007503784.tif 000035
【図１５ｃ】
2007503784.tif 000036
【図１６】
2007503784.tif 000037
【図１７】
2007503784.tif 000038
【図１８ａ】
2007503784.tif 000039
【図１８ｂ】
2007503784.tif 000040
【図１８ｃ】
2007503784.tif 000041
【図１９】
2007503784.tif 000042
【図２０】
2007503784.tif 000043
【図２１】
2007503784.tif 000044
【図２２】
2007503784.tif 000045
【図２３】
2007503784.tif 000046
【図２４】
2007503784.tif 000047
【国際調査報告】
2007503784.tif 000048
2007503784.tif 000049
2007503784.tif 000050
2007503784.tif 000051
2007503784.tif 000052
2007503784.tif 000053
2007503784.tif 000054