説明

データ圧縮装置及びデータ圧縮方法

【課題】 データコンテンツの急速な変化にも対応できる圧縮処理を実現するとともに、処理オーバーヘッド及び処理遅延を軽減する。
【解決手段】 圧縮制御変数の試行グループにより入力データの連続するセクションを試行エンコードし、試行データ量に基づいて、所望のデータ量を実現する基礎圧縮制御変数を選択し、試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、基礎圧縮制御変数を用いて入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較していずれの圧縮制御変数を使用するかを決定する。

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ圧縮装置及びデータ圧縮方法に関し、例えばビデオデータを圧縮するためのデータ圧縮装置、データ圧縮方法、コンピュータソフトウェアプログラム及び記録媒体に関する。
【0002】
【従来の技術】例えばMPEG−2標準規格の等のビデオデータ圧縮の分野において、ピクチャにより表現される画像の性質に基づいて、ピクチャ又はピクチャの一部を生成するためのデータビットのビット数を決定する圧縮技術が知られている。ここでは、主な圧縮パラメータのビットレートは、ブロック間又はピクチャ間で変化し、このような圧縮パラメータ、すなわち量子化の程度は、非線形であり、用いられる実際のビットレートを予測することは困難である。
【0003】このような特性は、特にビデオテープレコーダ等の装置において問題となる。ビデオレコーダ等においては、ピクチャ又はピクチャのグループ(group of pictures:以下、GOPという。)用に割り当てられるビット数は固定されており、このような固定されたビット数を超えてビットの割り当てを行うことは、殆ど不可能又は全く不可能である。したがって、ビデオデータ圧縮において、ビットレートを制御する技術が重要となる。
【0004】
【発明が解決しようとする課題】MPEG−2のいわゆる「テストモデル5(Test Model 5)」では、ビットレート制御アルゴリズムが提案されている。このビットレート制御アルゴリズムは、先行するピクチャを構成する実際のビット数と、これを実現するために用いた量子化パラメータとに基づく「包括的複雑性予測(global complexty estimation)」の結果に応じて、ピクチャ間のビットの割り当てを行う。この手法では、圧縮処理により実現されるビットレートを監視し、圧縮処理における量子化の程度を変化させて、ピクチャ用の所望の総ビット数を実現する。しかしながら、この手法は、圧縮処理中の画像の種類の変化に対する反応が遅く、また、特定のピクチャに対する処理において、高いビットレートを必要とするためにエンコードが困難である画像部分の存在を予測することが難しい。さらに、この手法では、シーンの変更等により生じるピクチャコンテンツの急速な変化に素早く対応することが難しい。
【0005】英国特許出願第2306831号(GB-A-2 306 831)に開示されている手法においては、少なくともピクチャ又はGOPの一部に対する試行的なエンコード処理(trial encoding)を行い、これらピクチャに対する最適な圧縮の程度を評価する。特に、ここでは、要求される量子化因子を達成するために複数段の処理を繰り返す「バイナリサーチ(binary search)」技術が用いられている。しかしながら、このように所望の量子化因子を実現するための複数段処理の試行は、実際に含まれる処理のオーバーヘッド及び処理シーケンスに加えられる遅延といった観点から、望ましくない。
【0006】そこで、本発明は、データコンテンツの急速な変化にも対応できるとともに、処理オーバーヘッド及び処理遅延を軽減できるデータ圧縮装置、データ圧縮方法、コンピュータソフトウェアプログラム及び記録媒体を提供することを目的とする。
【0007】
【課題を解決するための手段】上述の目的を達成するために、本発明に係るデータ圧縮装置は、一定範囲の複数の圧縮制御変数の値を選択することにより、実行する圧縮の程度を決定し、入力データユニットを圧縮して所望のデータ量を有する出力データユニットを生成するデータ圧縮装置において、圧縮制御変数のうちの2以上の変数からなり、圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、入力データの連続するセクションを圧縮する試行エンコード手段と、入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、検出した試行データ量に基づいて、所望のデータ量を実現するために入力データユニットに適用できる基礎圧縮制御変数を選択するデータ量検出手段と、(a)試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)基礎圧縮制御変数を用いて入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成する割り当て手段とを備える。
【0008】本発明に係るデータ圧縮装置は、従来の予測試行エンコード法及び完全試行エンコード法の両方の欠点を同時に克服するものである。
【0009】すなわち、本発明に係るデータ圧縮装置は、例えば画像を表す現在の入力データユニットを試行エンコードし、これにより例えばテストモデル5型の手法において、特にシーン変更時に生じる応答の遅さを克服する。
【0010】また、本発明は、圧縮制御変数(例えば量子化係数Q)の下位集合(好ましくは、値が隣接しない下位集合)のみにより試行エンコーディングを行った後、この試行グループの値に基づいて、圧縮にどの値を用いるかを決定する。これにより、例えば英国特許出願第2306831号(GB-A-2 306 831)に開示されている手法に比べ、処理オーバーヘッド及び遅延が軽減される。
【0011】また、本発明に係るデータ圧縮方法は、一定範囲の複数の圧縮制御変数の値を選択することにより、実行する圧縮の程度を決定し、入力データユニットを圧縮して所望のデータ量を有する出力データユニットを生成するデータ圧縮方法において、圧縮制御変数のうちの2以上の変数からなり、圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、入力データの連続するセクションを試行エンコードするステップと、入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、検出した試行データ量に基づいて、所望のデータ量を実現するために入力データユニットに適用できる基礎圧縮制御変数を選択するステップと、(a)試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)基礎圧縮制御変数を用いて入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成するステップとを有する。
【0012】本発明に係るデータ圧縮方法によれば、画像データ等のデータ圧縮処理における処理オーバーヘッド及び遅延が軽減される。
【0013】本発明に係るコンピュータソフトウェアプログラムは、データ圧縮方法を実行するプログラムコードを有するコンピュータソフトウェアプログラムにおいて、コンピュータソフトウェアプログラムは、一定範囲の複数の圧縮制御変数の値を選択することにより、実行する圧縮の程度を決定し、入力データユニットを圧縮して所望のデータ量を有する出力データユニットを生成することでデータ圧縮を行い、圧縮制御変数のうちの2以上の変数からなり、圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、入力データの連続するセクションを試行エンコードするステップと、入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、該検出した試行データ量に基づいて、所望のデータ量を実現するために入力データユニットに適用できる基礎圧縮制御変数を選択するステップと、(a)試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)基礎圧縮制御変数を用いて入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成するステップとを有する。
【0014】本発明に係る記録媒体は、データ圧縮方法を実行するプログラムコードを有するコンピュータソフトウェアプログラムを格納する記録媒体において、コンピュータソフトウェアプログラムは、一定範囲の複数の圧縮制御変数の値を選択することにより、実行する圧縮の程度を決定し、入力データユニットを圧縮して所望のデータ量を有する出力データユニットを生成することでデータ圧縮を行い、圧縮制御変数のうちの2以上の変数からなり、圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、入力データの連続するセクションを試行エンコードするステップと、入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、該検出した試行データ量に基づいて、所望のデータ量を実現するために入力データユニットに適用できる基礎圧縮制御変数を選択するステップと、(a)試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)基礎圧縮制御変数を用いて入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成するステップとを有する。
【0015】
【発明の実施の形態】以下、本発明に係るデータ圧縮装置、データ圧縮方法、コンピュータソフトウェアプログラム及び記録媒体について、図面を参照して詳細に説明する。
【0016】図1は、本発明に基づくデータ圧縮の手法を用いるビデオテープレコーダ(以下、VTRという。)の構成を示すブロック図である。このVTRに入力されたビデオデータは、まずデータ圧縮回路10に供給される。データ圧縮回路10は、後述する圧縮技術を用いて、ビデオデータのデータ量を減少させる。圧縮されたビデオデータは、エラー訂正コード(error correcting code:以下、ECCという。)処理及びフォーマット回路20に供給される。ECC処理及びフォーマット回路20は、供給されたデータをテープ状記録媒体への記録に適切なフォーマットに変換するとともに、周知のエラー訂正技術に基づくECCをデータに追加する。このようにしてECC処理及びフォーマット回路20は、データをフォーマットして、フォーマットしたデータをテープ状記録媒体30に記録する。
【0017】ビデオ再生処理においては、ECC処理及びフォーマット回路40がテープ状記録媒体30からデータを読み出す。ECC処理及びフォーマット回路40は、データ記録処理において生じたエラーを検出し、望ましくは、検出したエラーを訂正する。また、ECC処理及びフォーマット回路40は、テープ状記録媒体30から読み出したデータのフォーマットを伸長処理に適したデータのフォーマットに変換して、データ伸長回路50に供給する。データ伸長回路50は、データ圧縮回路10が実行する圧縮処理に対する相補的な伸長処理を実行する。
【0018】この手法の主要な特徴は、圧縮回路10における処理にあり、この処理については、後に詳細に説明する。図1におけるその他の部分は、従来と同様の手法により実現できる。
【0019】圧縮回路10の内部構成を図2に示し、圧縮回路10における処理について説明する。
【0020】この具体例に示すVTRは、いわゆるIピクチャ(イントラピクチャ)のみを使用する。したがって、MPEG−2による通常のシステムとは異なり、各ピクチャ、通常フレームは、隣接する又は近隣のピクチャを参照することなく圧縮される。したがって、この具体例に示すVTRでは、PフレームやBフレームを用いたロングGOPシステム程の効率的な圧縮を実現することはできないが、ビデオ信号におけるあらゆるフレームの境界において、容易に編集処理を行うことができる。したがって、このようなIフレームのみを用いるVTRは、編集スタジオ等における使用に適している。
【0021】このVTRは、Iピクチャしか使用しないため、図2に示すように、圧縮回路10は、従来のロングGOPエンコード回路に比べて非常に単純な構成とすることができる。
【0022】すなわち、圧縮回路10は、離散コサイン変換(discrete cosine transform:以下、DCTという。)エンコーダ60と、プレエンコーダ(pre-encoder)70と、量子化回路80と、エントロピーエンコーダ90とを備える。DCTエンコーダ60は、ピクチャを8×8のブロックに分解し、DCT処理を実行して、このピクチャに対応する増加空間周波数成分(increasing spatial frequencycomponents)を表すDCT係数の8×8行列を生成する。なお、この他の実施の形態として、例えばウェーブレット変換等の他の変換処理を適用してもよい。
【0023】DCT処理に平行して、プレエンコーダ70は、入力画像を検査し、各画像の異なる領域に対し、各画像をエンコードするために使用できるビットを適切な割合で割り当てる。各画像のエンコード用に使用できるビットの総数は、テープ状記録媒体30による制約のために、通常、固定されている。この具体例においては、この割当は、マクロブロック(macroblock:MB)単位で行われる。この明細書において、マクロブロックとは、16×16画素のアレイ、すなわち4つのDCTブロックを意味するものとする。プレエンコーダ70は、各マクロブロックに対するターゲットデータ量を示すデータを量子化回路80に供給する。このプレエンコーダ70による処理については、後にさらに詳細に説明する。
【0024】量子化回路80は、閾値の適用(thresholding)及び量子化処理を行う。この処理は、所定の閾値より低い値の係数を0にし、出力されるデータの質を制御するために、及び従来の手法により画像内の領域間で変化するいわゆる画像アクティビティ等の画像の属性を考慮して、量子化の程度を選択し、これに基づいて残りの係数を量子化する処理を含む。
【0025】エントロピーエンコーダ90は、ランレングスコーディング(run length coding)及び可変長(ハフマン(Huffman))コーディングを実行し、ランレングスエンコードされたシーケンスにおいて、頻繁に発生するビットパターンをより短いデータワードにエンコードする。ここでも、このようなエンコード処理に代えて、他の種類のエントロピーエンコードを適用してもよい。
【0026】上述したシステムは、2組の量子化係数、すなわち線形セット(linear set)及び非線形セット(non-linear set)のいずれを用いても動作することができる。線形セットとは、使用可能な値の範囲内で、値が順次等間隔に配列されている係数の組をいう。一方、非線形セットとは、使用可能な範囲内において、値が低くい程、値間の間隔が密であり、値が大きくなるにつれて間隔が粗くなるような係数の組をいう。
【0027】MPEGシステム用の量子化係数Qのための完全な線形セット及び非線形セットの例を以下に示す。
線形: 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 4648 50 52 54 56 58 60 62非線形:1 2 3 4 5 6 7 8 10 12 14 16 18 20 22 24 28 32 36 40 44 48 5356 64 72 80 88 96 104 112この具体例では、システムにおける処理要求を低減するために、使用可能な量子化値の縮小非線形セット("reduced" non-linear set)を用いる。縮小非線形セットを以下に示す。
縮小非線形:1 2 3 4 5 6 8 10 12 14 16 18 20 24 28 32 36 40 44 48 53 56すなわち、縮小非線形セットは、非線形セットから7,22及び64〜112を省略したものである。これにより、非線形セットにおける最大量子化係数は56となり、線形セットにおける最大量子化係数は62となる。
【0028】図3は、プレエンコーダ70における処理を図式的に示す図である。
【0029】プレエンコーダ70は、DCTエンコーダ60から供給されたDCTデータをそれぞれの量子化係数を用いて、平行にプレエンコードする4つのプレエンコード回路102,104,106,108を備える。この処理において、いわゆる画像アクティビティは、従来と同様の手法により考慮される。
【0030】非線形セット及び線形セットのいずれを用いる場合も、4つのプレエンコード回路102,104,106,108は、それぞれ以下のようなQ値を使用する。
プレエンコード回路102プレエンコード1: Q1=2+アクティビティを使用プレエンコード回路104プレエンコード2: Q2=6+アクティビティを使用プレエンコード回路106プレエンコード3: Q3=10+アクティビティを使用プレエンコード回路108プレエンコード4: Q4=20+アクティビティを使用。
【0031】4つのプレエンコード回路102,104,106,108は、画像スライスを単位として処理を行う。なお、画像スライスとは、縦横に少なくとも1マクロブロック分の幅を有する画像領域を表すものとする。画像スライスは、望ましくは、全て同一の大きさとする。しかしながら、本発明において、画像スライスの大きさは、互いに異なるものであってもよい。プレエンコーダは、各画像スライスをそれぞれの量子化値により生成した場合のデータビット数を表す出力データを生成する。
【0032】4つのプレエンコード回路102,104,106,108のそれぞれから出力されたビット毎スライス(bit per slice)を表す値は、それぞれの加算回路112,114,116,118に供給される。加算回路112,114,116,118は、例えば1フレーム分等、完全な画像に対応するこれらの値の総和を求める。これによりビット毎フレーム(bit per flame)が算出され、各加算回路112,114,116,118は、算出したビット毎フレームを示す値をQ値選択回路120に供給する。
【0033】Q値選択回路120については、図4を用いて後に詳細に説明するが、簡潔に説明すれば、Q値選択回路120は、加算回路112,114,116,118から供給されたビット毎フレームを示す4つの値に基づき、画像全体の基礎的量子化係数(base quantisation factor)を選択する。この処理において、Q値選択回路120は、プレエンコーディングにより得られたビット毎フレームと、圧縮回路10全体に求められるビット毎フレームとを比較する。Q値選択回路120は、選択した単一のQ値を量子化回路80に供給する。また、プレエンコード回路102,104,106,108が生成した各ビット毎スライスを示す値も量子化回路80に供給される。
【0034】Q値選択回路120は、図4に示すように、比較論理回路130と、内挿回路140とを備える。
【0035】比較論理回路130には、加算回路112,114,116,118からビット毎フレームを示す値が供給され、比較論理回路130は、これらの値と、システム全体に必要とされるビット毎フレームの値とを比較する。比較論理回路130は、2つのプレエンコード量子化値Q、Qと、ハイ又はローを示すフラグとを出力する。必要なビット毎フレームの値が、4つのプレエンコード処理により得られた値の範囲内にある場合、この範囲を上回る場合、及びこの範囲を下回る場合の3つの状況について説明する。
【0036】(a)必要なビット毎フレームがプレエンコード処理の結果の範囲内にある場合通常の状態では、必要とされるビット毎フレームの値は、プレエンコード処理により得られるビット毎フレームのうちの2つの値の間に存在する。実際には、現システムにおける特定のビットレート(50Mbps)の画像の大部分がこの状態となるように、プレエンコード量子化係数を故意に選択している。この状況においては、比較論理回路130は、必要とされるビット毎フレームの値に最も近いプレエンコードにより得られたビット毎フレームの値を実現する量子化係数と、オーバーフロー又はアンダーフローが発生しないこと("no over flow or underflow)を示すh/lフラグのセットとを出力する。詳しくは、Qは必要とされるビット毎フレームの値を超えない最大ビット数を実現する量子化係数であり、Qは、必要とされるビット毎フレームの値を超える最小ビット数を実現する量子化係数である。
【0037】なお、この具体例において、各係数はQ値により除算されるため、Q値が小さいほど、入力データの量子化は密になる。したがって、Qは、Qよりも密な量子化、すなわちより多くのビットを生成する量子化を表す。もちろん、これは単なる取り決めによる定義であり、この逆の取り決めを行ってもよい。
【0038】有効なQ及びQが生成されると、すなわち必要とされるビット毎フレームの値がプレエンコード処理により得られたビット毎フレームの値の間に存在する場合、Q値はQとQの間の線形内挿を行うことにより選択できる。QとQの間の使用可能な量子化値xについて、xが使用された場合に生成されるビット数の推定値est_bit(x)を以下の式に基づいて算出する。
【0039】
【数1】


【0040】ここで、pre-encode(Q)及びpre-encode(Q)は、それぞれQ及びQを用いたフレームのプレエンコード処理により得られた実際のビット数を表す。この式は、以下の条件を満たすxの最小値が得られるまで、繰り返し実行される。est_bits(x)≦必要とされるビットビット毎フレームの値以上の要求を満たすxをフレーム量子化値Qとして選択する。
【0041】(b)必要なビット毎フレームがプレエンコード処理の結果を下回る場合この状態は、プレエンコーダにより生成された全てのビット数の値が大きすぎるため、最も大きなプレエンコード値、すなわちQ4=20よりさらに大きな量子化係数を選択する必要がある。h/lフラグは、比較論理により「ハイレベル」に設定され、これにより20より大きな量子化値を用いるべきであることが示される。このh/lフラグにより、内挿回路140は、実行する処理を以下に説明するように変更する。
【0042】50Mbpsを用いた実験では、このような状況は観察されなかったが、このような状況が発生した場合を想定し、予防策として、内挿回路140は、この状況に対応するための以下のアルゴリズムを有している。
【0043】この場合、Q値の選択において、線形内挿の手法を用いることはできない。そこで、最大プレエンコード値20より大きいQを検査するため、以下の式を用いてest_bits(x)を求める。
【0044】
【数2】


【0045】ここで、Qmaxは、関連する範囲内の最大のQ値、すなわち線形セットにおける62及び非線形セットにおける56である。この式は、ビット数は、Q=20とQ=Qmaxとの略中間になるとの仮定に基づいている。
【0046】この式は、以下の条件を満たすxの最小値が得られるまで、繰り返し実行される。
est_bits(x)≦必要とされるビットビット毎フレームの値以上の要求を満たすxをフレーム量子化値Qとして選択する。
【0047】(c)必要なビット毎フレームがプレエンコード処理の結果を上回る場合この状態は、プレエンコーダにより生成された全てのビット数の値が小さすぎるため、最も小さなプレエンコード値、すなわちQ1=2よりさらに小さな量子化係数を選択する必要がある。なお、さらに小さな量子化値は、非線形セットの場合にのみ選択可能である。線形セットが使用されている場合は、以下の説明は適用されず、Q=2が使用される。h/lフラグは、比較論理により「低い(low)」に設定され、これにより2より小さな量子化値を用いるべきであることが示される。このh/lフラグにより、内挿回路140は、実行する処理を以下に説明するように変更する。
【0048】なお、Q=1を使用した場合に生成されると予想されるビット数の外挿に基づく推定値は、不確実なものとなりやすい。
【0049】Q=1を使用した場合に生成されると予想されるビット数を評価するために、量子化係数がQ=2からQ=1に変更された場合に生じる可能性のあるビット数の大きな増加を反映する異なる式を用いてest_bits(Q=1)の量を推定する。
【0050】
【数3】


【0051】ここで、pre-encode(Q=2)及びpre-encode(Q=6)は、それぞれ量子化値2及び6を用いたフレームのプレエンコード処理により得られた実際のビット数を表す。
【0052】この検査の結果、est_bits(Q=1)の値が以下の要求を満たした場合、内挿回路140は、フレーム量子化値Qを1に設定する。
est_bits(x)≦必要とされるビットビット毎フレームの値以上の処理により求められたフレーム全体の量子化値Qは、Q値選択回路120から量子化回路80に供給される。
【0053】図5は、量子化回路80の内部構成及びエントロピーエンコーダ90を示す図である。量子化回路80は、第1及び第2の検査論理回路(test logic)200,210と、スライス検査器(slice tester)220と、最終スライス検出器(last slice detector)230と、ビット累算器240と、量子化器250とを備える。
【0054】第1及び第2の検査論理回路200,210には、Q値選択回路120により選択されたQ値が供給され、第1及び第2の検査論理回路200,210は、供給されたQ値がプレエンコード値(Q=2,6,10,20)であるか否か、及びQ=1であるか否かを検査する。第1及び第2の検査論理回路200,210は、この検査の結果を示す信号をスライス検査器220に供給する。この検査の結果は、後述するように、スライス検査器220の動作に影響を与える。
【0055】スライス検査器220には、Q値選択回路120により選択されたQ値と、プレエンコーダ102,104,106,108から出力されたビット毎スライスを表す値と、第1及び第2の検査論理回路200,210の検査結果を示す信号と、最終スライス検出器230及びビット累算器240からの出力信号とが供給される。スライス検査器220は、画像の各スライスに対するQ値、すなわちQslを選択する。
【0056】量子化器250及び最終スライス検出器230には、DCTエンコーダ60からDCTデータが供給される。最終スライス検出器230は、現在のDCTデータが画像の最後のスライスを表すものであるか否かを判定し、この情報を制御信号としてスライス検査器220に供給する。量子化器250は、各スライス及びそのスライスの画像アクティビティに対してスライス検査220により選択されたQ値、すなわちQslに基づいて、各スライスを量子化する。
【0057】エントロピーエンコーダ90は、量子化器250により量子化されたデータに対するエントロピーエンコード処理を行う。この処理により生成されたビットの数は、ビット累算器240により検出及び累算される。ビット累算器240は、累算結果を示す信号を制御信号としてスライス検査器220に供給する。
【0058】図5に示す量子化回路80の動作を3つの状況別に説明する。これら3つの状況は、第1及び第2の検査論理回路200,210による検査結果によって決定される。すなわち、(a)Q値選択回路120により選択されたQがプレエンコード値のいずれかである場合、(b)Q値選択回路120により選択されたQがプレエンコード値のいずれでもない場合、(c)Q値選択回路120がQ=1を選択した特別な場合の3つの状況が存在する。
【0059】(a)選択されたQがプレエンコード値のいずれかである場合図6は、選択されたQがプレエンコード値、すなわちQ=2,6,10,20のいずれかである場合における図5R>5に示す量子化回路80の動作を説明するフローチャートである。
【0060】ステップ300において、スライス検査器220は、選択されたQが2であるか否かを判定する。Qが2である場合は特別な処理が行われる。すなわち、Qが2である場合、この次に小さな値、すなわち非線形セットの場合にのみ使用されるQ=1へ値を低減する処理は行わない。これは、Q=1とした場合のビットレートの推定値が不確実であるためでる。したがって、Qが2である場合、ステップ310において、Qの値は2のまま維持され、ステップ320において、Q=2としてフレームをエンコードする。このフレームに関する処理はここで終了する。
【0061】Q=2の場合、Qがプレエンコードにより得られたQ値であり、利用可能なビットレートを超過しないことは既知である。したがって、このQ値により、フレームは問題なくエンコード処理できる。
【0062】一方、ステップ300において、Qが2ではないと判定された場合、処理はステップ330に移行し、変数Xが以下のように設定される。
x = pre_encode_data(Q) - pre_endode_data(Qsl)ここで、QLは、線形セット又は非線形セットにおける次に低い値を表す。
【0063】ステップ340において、xは変数spare(variable "spare")と比較される。変数spareは、初期的に以下のように定義されている。
spare = max_per_prm - bits(Qfrm)ここで、max_per_prmは、許容されているビット毎フレームの最大値を表す。50Mbps、30フレーム毎秒のシステムにおいては、16×10である。また、Qfrmは、そのフレームについて選択されたQ値を表し、bits(Qfrm)は、Qfrmにより実際に生成される実際のビット数を表す。なお、この式は、Qfrがプレエンコード値であるか否かに関わらず適用されるが、Qfrがプレエンコード値ではない場合は、bits(Qfrm)は、推定値を用いることになる。
【0064】ステップ340において、xがこの変数spareより小さいと判定された場合、処理はステップ350に進み、次に小さいQ値が選択される。ここで選択されるQ値は、使用可能な範囲内のQの集合において、次に小さい値であり、したがって、ステップ350で選択されるQ値は、定義上、プレエンコードにより得られたQ値ではない。ステップ360において、スライスは、この選択されたQ値を用いてエンコードされる。
【0065】なお、この他の実施の形態においては、線形セット又は非線形セットにおける隣接するQ値がプレエンコード値と一致する場合もある。例えば、プレエンコードにより得られたQ値を2,8,10,20であり、線形セットにおいても非線形セットにおいても8と10が隣接する場合などには、選択されるQ値がプレエンコード値と一致する。また、プレエンコードにより得られるQ値は、4個より多くてもよく、少なくてもよい。
【0066】一方、ステップ340において、xが340以上であると判定された場合、Q値は、ステップ370において、最初に選択された基礎的Q値のまま維持され、スライスは、ステップ360において、この基礎的Q値を用いてエンコードされる。
【0067】ステップ380においては、以下の式に基づいて変数spareを更新する。
spare = spare - (actual_slice_bits - slice bits(Qsl))上述の式において、Qslが最初に選択されたプレエンコード値であるある場合、括弧内のactual_slice_bits - slice bits(Qsl)は0となる。
【0068】最後に、ステップ390において、処理すべきスライスがまだ存在するか否かが判定される。処理すべきスライスがまだ存在する場合、処理はステップ330に戻り、上述の処理が繰り返される。一方、処理すべきスライスがもう存在しない場合、このフレームに関する処理は終了する。
【0069】(b)選択されたQがプレエンコード値のいずれでもない場合図7及び図8は、フレーム用に選択されたQがプレエンコード値でも1でもない場合における図5に示す量子化回路80の動作を説明するフローチャートである。
【0070】ステップ400において、slice_error及びcarryの2つの変数が初期設定される。これら2つの変数slice_error及びcarryの初期設定は以下のとおりである。
slice_error = 0carry = 0さらに2つの値Q及びQを定義する。Qは、線形セット又は非線形セットの適切ないずれか一方において、選択されたQ値より小さく、且つ選択されたQ値に最も近い値とする。同様にQは、線形セット又は非線形セットの適切ないずれか一方において、選択されたQ値より大きく、且つ選択されたQ値に最も近い値とする。
【0071】ステップ410において、Qがプレエンコード値であるか否かが判定される。Qは選択されたQ値より密度の高い量子化を行い、すなわちより多くのデータ量を必要とするため、ここでの判定は重要である。ここで、Qがプレエンコード値である場合、このシステムは、プレエンコード処理により、Qが生成するデータ量に関する絶対的な測定値に関する情報を既に有している。
【0072】したがって、Qがプレエンコード値である場合、ステップ420において、変数safetyは、0に設定される。一方、Qがプレエンコード値ではない場合、ステップ430において、変数safetyは、例えば5000ビット等の値に設定される。変数safetyは、以後の計算において安全性を確保するための余白(safetymargin)を表し、Qを用いて生成されるデータ量の推定値は、使用可能な最大データ量からこの変数safetyが示す余白分を差し引いた値と比較される。換言すれば、変数safetyにより、Qが使用可能なビットレートを超過してはならないと言う要求をより確実に満足させることができる。
【0073】ステップ420又はステップ430のいずれかを実行したのち、処理はステップ440に移行する。ステップ440においては、変数carryが以下の式に基づいて設定される。
【0074】
【数4】


【0075】ステップ450においては、変数final_errorが以下の式に基づいて設定される。
【0076】
【数5】


【0077】ステップ460において、Q値は、このフレームについてQ値選択回路120により初期的に選択されたQ値にリセットされる。ステップ470において、現在のスライスが現在の画像における最後のスライスであるか否かが判定される。ステップ470における判定の結果がYES、すなわち現在のスライスが現在の画像における最後のスライスである場合、処理は後述する図8に示すステップ560に移行する。一方、ステップ470における判定の結果がNO、すなわち現在のスライスが現在の画像における最後のスライスではない場合、処理はステップ480に移行し、現在のスライスが現在の画像の最初の2つのスライスのうちのいずれかであるか否かが判定される。ここで、判定の結果がNO、すなわち現在のスライスが現在の画像の最初の2つのスライスのうちのいずれでもない場合、処理はステップ490に移行し、変数final_errorは、変数spareと比較される。ここで、変数final_errorが変数spareより大きい場合、ステップ500において、QはQに増加され、図8に示すステップ540において、スライスのエンコードが実行される。そしてステップ550において、変数slice_errorは、以下の式に基づいて更新される。
slice_error = slice_error+ (actual_slice_bits - slice_estimate(Qfrm))続いて、処理はステップ440に戻る。
【0078】ステップ480において、現在のスライスが現在の画像の最初の2つのスライスのうちのいずれかでると判定された場合、処理は後述するステップ520に移行する。また、ステップ490において、変数final_errorが変数spareより小さいと判定された場合、処理はステップ510に移行する。
【0079】ステップ510において、変数slice_errorは以下の式により検査される。
slice_error + slice_estimate(Q) + safety< (slice_estimate(Qfrm) + carry)この検査の結果が否定的であった場合、すなわち上の不等式が真にならない場合、処理はステップ520に移行し、Qは、フレーム用にQ値選択回路120により選択されたQに設定される。この後、上述の場合と同様に、ステップ540においてスライスがエンコードされ、ステップ550において変数slice_errorが更新される。一方、この検査の結果が肯定的であった場合、すなわち上の不等式が真になる場合、処理はステップ530に移行し、QはQに設定される。この後、上述の場合と同様に、ステップ540においてスライスがエンコードされ、ステップ550において変数slice_errorが更新される。
【0080】すなわち、ステップ480及びステップ520から明らかなように、最初の2つのスライスは、常に、フレーム用に選択されたQを用いてエンコードされる。これにより、ビット推定値がどれほど適切なものであるかを示す情報が得られる。最初の2つのスライスに対して生成されるビットを過小に評価してしまい、その結果、最大ビット毎フレームを超過するビットが生成されてしまう修正不可能な事態が生じる可能性が僅かではあるが存在する。このような事態を回避するために、演算処理において上述の変数safetyを反映させる。
【0081】ステップ470において、現在のスライスが最後のスライスであると判定された場合、ステップ560において、変数final_spareが以下のように設定される。
final_spare = spare - slice_errorステップ570,580,590,600では、変数final_spareに基づくspareデータ量を用いて、プレエンコードに基づくQ値がこの最後のスライスに使用できるか否かを順次検査する。すなわち、ステップ570においては、以下の検査が行われる。
spare_pre_encode(Q=2) < slice_est(Qfrm) + final_spareこの検査の結果が肯定的である場合、すなわちこの不等式が真である場合、ステップ610において、Qは2に設定される。一方、この検査の結果が否定的である場合、すなわちこの不等式が偽である場合、以後、ステップ580,590,600において、同様の検査がQ=6,10,20について順次実行され、各検査の結果が肯定的である場合、Qは検査されたプレエンコード値に設定される。なお、ステップ580は、ステップ570の検査が否定的である場合にのみ実行され、ステップ590は、ステップ580の検査が否定的である場合にのみ実行され、ステップ600は、ステップ590の検査が否定的である場合にのみ実行される。
【0082】これら4つの検査が全て否定的である場合、処理はステップ650に移行し、最後のスライス用のQは線形セット及び非線形セットのいずれか一方における使用可能で最も大きなQに設定される。
【0083】ステップ660において、最後のスライスはエンコードされ、このフレームに関する処理は終了する。
【0084】(c)選択されたQが1である場合図9は、Q値選択回路120がQ=1を選択した場合における図5に示す量子化回路80の動作を説明するフローチャートである。
【0085】上述のとおり、Q=1は、Q値について非線形セットが使用されている場合にのみ選択可能である。Q=1とする処理は、幾分の予測不可能な性質を有し、多くの観点において、Q=2とする処理に比べて顕著な向上を示すものではない。しかしながら、この処理は、ピクチャのエンコードが容易であるという点で優れており、Q=1とすることにより、実現可能なビットレートをより有効に利用するものと考えられる。これは、特に現在の実ビットレートを読み取って表示する50MbpsのVTR等の装置のユーザにとって、心理的に重要である。すなわち、このような装置を購入したユーザは、この装置において実現可能なビットレートを最大限に活用する状態を確認することにより、満足感を得られる。
【0086】図9に示すステップ700において、変数slice_errorは0に初期設定される。
【0087】ステップ720において、現在のスライスが現在の画像の最後のスライスであるか否かが判定される。現在のスライスが現在の画像の最後のスライスである場合、処理はステップ730に移行し、Qは2に設定され、ステップS740においてスライスがエンコードされる。これにより、このフレームに関する処理は終了する。
【0088】最後のスライスついて生成されたデータ量の推定値における誤差を訂正する機会はこれ以降なく、したがって最後のスライスについてQを2に設定することは重要である。すなわち、最後のスライスについては、絶対的な安全性のために、プレエンコードに基づくQ=2を使用する。
【0089】一方、ステップ720において、現在のスライスが現在の画像の最後のスライスではないと判定された場合、処理はステップ750に進み、さらに現在のスライスが現在の画像における第1又は第2のスライスであるか否かが判定される。現在のスライスが現在の画像における第1又は第2のスライスである場合、処理はステップ760に移行し、Qは1に設定される。これにより、画像の始まりにおいて、Qをプレエンコード値ではなく、1とした場合に生成されるビットレートを検査する機会を得ることができる。ステップ810において、スライスはエンコードされる。
【0090】また、ステップ750において、現在のスライスが現在の画像における第1又は第2のスライスではないと判定された場合、処理はステップ770に移行し、変数final_errorが設定される。これは、現在のフレームに対する予測ビットレート(データ量)の総合的な偏差の外挿された動揺予測(extrapolated rollingprediction)を示し、当然、最大ビットレートより小さいものであり、現在のフレーム全体に亘って発生する可能性のあるものである。
【0091】以下に示す変数final_errorを求めるための式は、このアルゴリズムでは、画像の最後のスライスは、Qを2として圧縮されており、したがってエラーを生じないことが既知であるという事実を反映させたものである。
【0092】
【数6】


【0093】また、このフレームの実際のビット数(actual bits)は、以下のようになる。
actual bits = fram_est(Q=1) - slice_estimate(last_slice atQ=1)+ slice_estimate(last_slice at Q=2)ステップ780において、変数final_errorは、安全のためのマージンであるガンマ(gamma)が減算された変数spareと比較される。変数final_errorが(spare - gamma)より大きい場合、ステップ800においてQを2に設定し、ステップ810においてスライスをエンコードする。一方、変数final_errorが(spare- gamma)以下である場合、ステップ790においてQを1に設定し、ステップ810においてスライスをエンコードする。このようにステップ810においてスライスをエンコードした後、ステップ820において上述と同様に変数slice_error及び変数spareを更新し、処理はステップ720に戻る。
【0094】以上の具体例は、イントラピクチャ(Iピクチャ)のみを使用するII−VTRに関するものであるが、Bピクチャ及びPピクチャを含むGOPを採用したシステムにも本発明を適用できることは当該技術分野の専門家にとって明らかである。
【0095】また、上述の技術は、汎用のデータ処理装置上で実行されるソフトウェアプログラムによっても実現できることは、当該技術分野の専門家にとって明らかである。このようなソフトウェアプログラム及びこのソフトウェアプログラムを格納する磁気ディスクや光ディスク等の記録媒体も本発明の範囲内にあることは明らかである。
【0096】
【発明の効果】以上のように、本発明に係るデータ圧縮装置は、圧縮制御変数のうちの2以上の変数からなり、圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、入力データの連続するセクションを圧縮する試行エンコード手段と、入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、検出した試行データ量に基づいて、所望のデータ量を実現するために入力データユニットに適用できる基礎圧縮制御変数を選択するデータ量検出手段と、(a)試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)基礎圧縮制御変数を用いて入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成する割り当て手段とを備える。これにより、本発明に係るデータ圧縮装置によれば、データコンテンツの急速な変化にも対応できる圧縮処理を実現できるとともに、処理オーバーヘッド及び処理遅延を軽減できる。
【0097】また、本発明に係るデータ圧縮方法は、圧縮制御変数のうちの2以上の変数からなり、圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、入力データの連続するセクションを試行エンコードするステップと、入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、検出した試行データ量に基づいて、所望のデータ量を実現するために入力データユニットに適用できる基礎圧縮制御変数を選択するステップと、(a)試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)基礎圧縮制御変数を用いて入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成するステップとを有する。これにより、本発明に係るデータ圧縮方法によれば、データコンテンツの急速な変化にも対応できる圧縮処理を実現できるとともに、処理オーバーヘッド及び処理遅延を軽減できる。
【図面の簡単な説明】
【図1】本発明を適用したビデオテープレコーダの内部構成を示すブロック図である。
【図2】図1に示すデータ圧縮回路の内部構成を示すブロック図である。
【図3】図2に示すプレエンコーダの内部構成を示すブロック図である。
【図4】図3に示す選択回路の内部構成を示すブロック図である。
【図5】図4に示す量子化回路の内部構成及びエントロピーエンコーダを示すブロック図である。
【図6】Qがプレエンコード値である場合の、図5に示す量子化回路及びエントロピーエンコーダの動作を説明するフローチャートである。
【図7】Qがプレエンコード値ではない場合の、図5に示す量子化回路及びエントロピーエンコーダの動作を説明するフローチャートである。
【図8】図7のに続くフローチャートを示す図である。
【図9】Q=1である場合の、図5に示す量子化回路及びエントロピーエンコーダの動作を説明するフローチャートである。
【符号の説明】
80 量子化回路、90 エントロピーエンコーダ、200 第1の検査論理回路、210 第2の検査論理回路、220 スライス検査器、230 最終スライス検出器、240 ビット累算器240、250 量子化器

【特許請求の範囲】
【請求項1】 一定範囲の複数の圧縮制御変数の値を選択することにより、実行する圧縮の程度を決定し、入力データユニットを圧縮して所望のデータ量を有する出力データユニットを生成するデータ圧縮装置において、上記圧縮制御変数のうちの2以上の変数からなり、上記圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、上記入力データの連続するセクションを圧縮する試行エンコード手段と、上記入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、該検出した試行データ量に基づいて、上記所望のデータ量を実現するために上記入力データユニットに適用できる基礎圧縮制御変数を選択するデータ量検出手段と、(a)上記試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)上記基礎圧縮制御変数を用いて上記入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ上記所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、上記基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、上記入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成する割り当て手段とを備えるデータ圧縮装置。
【請求項2】 上記入力データユニットは、ビデオ信号における画像を表すデータユニットであることを特徴とする請求項1記載のデータ圧縮装置。
【請求項3】 上記入力データユニットの連続するセクションは、上記画像の各部分を表すことを特徴とする請求項2記載のデータ圧縮装置。
【請求項4】 上記データ量検出手段は、上記試行グループに対する内挿又は外挿により上記基礎圧縮制御変数を選択することを特徴とする請求項1乃至3いずれか1項記載のデータ圧縮装置。
【請求項5】 上記圧縮制御変数は量子化パラメータであることを特徴とする請求項1乃至4いずれか1項記載のデータ圧縮装置。
【請求項6】 上記試行グループは、連続しない圧縮制御変数値を含むことを特徴とする請求項1記載のデータ圧縮装置。
【請求項7】 使用可能な複数の圧縮制御変数から構成される2組以上の集合を選択的に使用することを特徴とする請求項1記載のデータ圧縮装置。
【請求項8】 上記使用可能な圧縮制御変数の集合は、圧縮制御変数の値が略等間隔に配列されている集合及び/又は圧縮制御変数の値が増加するにつれて隣接する値間の間隔が大きくなるように配列された集合を含むことを特徴とする請求項7記載のデータ圧縮装置。
【請求項9】 上記試行グループは、上記使用可能な複数の圧縮制御変数から構成される2組以上の集合に共通の圧縮制御パラメータの値を含むことを特徴とする請求項8記載のデータ圧縮装置。
【請求項10】 上記基礎圧縮制御変数は、上記試行グループに含まれず、上記割当手段は、(a)上記試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)上記基礎圧縮制御変数を用いて、上記入力データユニットの所定の部分以外の残りの部分を圧縮した場合に得られるデータ量を超え、且つ上記所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較し、上記入力データユニットの所定の部分は、上記試行グループに含まれる圧縮制御変数を用いて圧縮されることを特徴とする請求項1記載のデータ圧縮装置。
【請求項11】 上記基礎圧縮制御変数は、上記試行グループに含まれず、上記割当手段は、データ量の許容最大増加量を所定の安全マージン分低減させることを特徴とする請求項1記載のデータ圧縮装置。
【請求項12】 一定範囲の複数の圧縮制御変数の値を選択することにより、実行する圧縮の程度を決定し、入力データユニットを圧縮して所望のデータ量を有する出力データユニットを生成するデータ圧縮方法において、上記圧縮制御変数のうちの2以上の変数からなり、上記圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、上記入力データの連続するセクションを試行エンコードするステップと、上記入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、該検出した試行データ量に基づいて、上記所望のデータ量を実現するために上記入力データユニットに適用できる基礎圧縮制御変数を選択するステップと、(a)上記試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)上記基礎圧縮制御変数を用いて上記入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ上記所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、上記基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、上記入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成するステップとを有するデータ圧縮方法。
【請求項13】 データ圧縮方法を実行するプログラムコードを有するコンピュータソフトウェアプログラムにおいて、上記コンピュータソフトウェアプログラムは、一定範囲の複数の圧縮制御変数の値を選択することにより、実行する圧縮の程度を決定し、入力データユニットを圧縮して所望のデータ量を有する出力データユニットを生成することでデータ圧縮を行い、上記圧縮制御変数のうちの2以上の変数からなり、上記圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、上記入力データの連続するセクションを試行エンコードするステップと、上記入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、該検出した試行データ量に基づいて、上記所望のデータ量を実現するために上記入力データユニットに適用できる基礎圧縮制御変数を選択するステップと、(a)上記試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)上記基礎圧縮制御変数を用いて上記入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ上記所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、上記基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、上記入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成するステップとを有することを特徴とするコンピュータソフトウェアプログラム。
【請求項14】 データ圧縮方法を実行するプログラムコードを有するコンピュータソフトウェアプログラムを格納する記録媒体において、上記コンピュータソフトウェアプログラムは、一定範囲の複数の圧縮制御変数の値を選択することにより、実行する圧縮の程度を決定し、入力データユニットを圧縮して所望のデータ量を有する出力データユニットを生成することでデータ圧縮を行い、上記圧縮制御変数のうちの2以上の変数からなり、上記圧縮制御変数の一定範囲のサブセットを構成する試行グループに基づいて、上記入力データの連続するセクションを試行エンコードするステップと、上記入力データユニットの一部を試行エンコードすることにより得られる試行データ量を検出し、該検出した試行データ量に基づいて、上記所望のデータ量を実現するために上記入力データユニットに適用できる基礎圧縮制御変数を選択するステップと、(a)上記試行グループにおける次に密な圧縮を実現する圧縮制御変数を用いて現在のユニットを圧縮した場合のデータ量の増加と、(b)上記基礎圧縮制御変数を用いて上記入力データユニットの残りの部分を圧縮した場合に得られるデータ量を超え、且つ上記所望のデータ量の条件を満たすデータ量の増加の最大許容値とを比較することにより、上記基礎圧縮制御変数及び現在のセクションに用いることができる他の圧縮制御変数のいずれを使用するかを決定し、上記入力データユニットの各セクションを最終エンコードするために用いる圧縮制御変数を割り当てて、出力データユニットを生成するステップとを有することを特徴とする記録媒体。

【図2】
image rotate


【図1】
image rotate


【図3】
image rotate


【図4】
image rotate


【図5】
image rotate


【図6】
image rotate


【図7】
image rotate


【図8】
image rotate


【図9】
image rotate


【公開番号】特開2001−204022(P2001−204022A)
【公開日】平成13年7月27日(2001.7.27)
【国際特許分類】
【出願番号】特願2000−350035(P2000−350035)
【出願日】平成12年11月16日(2000.11.16)
【出願人】(593081408)ソニー・ユナイテッド・キングダム・リミテッド (93)
【氏名又は名称原語表記】Sony United Kingdom Limited