(57)【特許請求の範囲】
【請求項１】
符号量予測のための第１の変換符号化処理を実行し、予測符号量が所定の値以内になった後に、最終的な符号化データ生成のための第２の変換符号化処理を実行する情報処理装置において、
前記第２の変換符号化処理が行われるデータ全体から、前記第１の変換符号化処理を実行するための所定量の前記データを抽出する抽出手段と、
前記抽出手段により抽出された前記データを用いて、予測符号量が所定の値以内になるまで前記第１の変換符号化処理を実行する符号化手段と、
前記符号化手段による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になった場合、前記符号化手段による前記第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出手段と、
前記検出手段により、前記符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、前記符号化手段が実行する前記第２の変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更手段と
を備え、
前記抽出手段は、前記符号化手段による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になるまで、それ以前の処理において前記第１の変換符号化処理が実行されていない前記データを優先的に抽出し、
前記符号化手段は、前記量子化処理変更手段により変更された前記パラメータを用いて前記第２の変換符号化処理を実行する
ことを特徴とする情報処理装置。
【請求項２】
前記量子化処理変更手段により変更される前記パラメータは、量子化係数である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の変換符号化処理、および前記第２の変換符号化処理は、ＩＳＯ／ＩＥＣ１１１７２で規定されている処理である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記量子化処理変更手段は、前記符号化手段による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になるまでの間、前記第１の変換符号化処理が実行される毎に、前記検出手段の検出結果に従って前記量子化処理の前記パラメータを変更し、
前記符号化手段は、最新の前記パラメータを用いて前記第１の変換符号化および前記第２の変換符号化処理を実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記量子化処理変更手段は、前記符号化手段による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になり、全ての前記第１の変換符号化処理が終了した後に、前記検出手段の検出結果に従って、前記量子化処理の前記パラメータを変更し、
前記符号化手段は、前記符号の割り当て範囲内に収まっていないシンボルが存在したときに変更された前記パラメータを用いて前記第２の変換符号化処理を実行する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
符号量予測のための第１の変換符号化処理を実行し、予測符号量が所定の値以内になった後に、最終的な符号化データ生成のための第２の変換符号化処理を実行する情報処理装置の情報処理方法において、
前記第２の変換符号化処理が行われるデータ全体から、前記第１の変換符号化処理を実行するための所定量の前記データを抽出する抽出ステップと、
前記抽出ステップの処理により抽出された前記データを用いて、予測符号量が所定の値以内になるまで前記第１の変換符号化処理を実行する第１の符号化ステップと、
前記第１の符号化ステップの処理による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になった場合、前記第１の符号化ステップの処理による前記第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出ステップと、
前記検出ステップの処理により、前記符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、前記第２の変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更ステップと、
前記量子化処理変更ステップの処理により変更された前記パラメータを用いて前記第２の変換符号化処理を実行する第２の符号化ステップと
を含み、
前記抽出ステップは、前記第１の符号化ステップの処理による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になるまで、それ以前の処理において前記第１の変換符号化処理が実行されていない前記データを優先的に抽出し、
前記第２の符号化ステップは、前記量子化処理変更ステップの処理により変更された前記パラメータを用いて前記第２の変換符号化処理を実行する
ことを特徴とする情報処理方法。
【請求項７】
符号量予測のための第１の変換符号化処理を実行し、予測符号量が所定の値以内になった後に、最終的な符号化データ生成のための第２の変換符号化処理を実行する情報処理装置であって、
前記第２の変換符号化処理が行われるデータ全体から、前記第１の変換符号化処理を実行するための所定量の前記データを抽出する抽出手段と、
前記第１の変換符号化処理および前記第２の変換符号化処理を実行する符号化手段と、
前記符号化手段による前記第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出手段と、
前記検出手段により、前記符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、前記符号化手段が実行する変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更手段とを備える情報処理装置に、
前記第２の変換符号化処理が行われるデータ全体から、前記第１の変換符号化処理を実行するための所定量の前記データを抽出する抽出ステップと、
前記抽出ステップの処理により抽出された前記データを用いて、予測符号量が所定の値以内になるまで前記第１の変換符号化処理を実行する第１の符号化ステップと、
前記第１の符号化ステップの処理による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になった場合、前記第１の符号化ステップの処理による前記第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出ステップと、
前記検出ステップの処理により、前記符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、前記第２の変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更ステップと、
前記量子化処理変更ステップの処理により変更された前記パラメータを用いて前記第２の変換符号化処理を実行する第２の符号化ステップと
を実行させ、
前記抽出ステップの処理においては、前記第１の符号化ステップの処理による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になるまで、それ以前の処理において前記第１の変換符号化処理が実行されていない前記データが優先的に抽出され、
前記第２の符号化ステップの処理においては、前記量子化処理変更ステップの処理により変更された前記パラメータを用いて前記第２の変換符号化処理が実行される
プログラムが記録されている記録媒体。
【請求項８】
符号量予測のための第１の変換符号化処理を実行し、予測符号量が所定の値以内になった後に、最終的な符号化データ生成のための第２の変換符号化処理を実行する情報処理装置であって、
前記第２の変換符号化処理が行われるデータ全体から、前記第１の変換符号化処理を実行するための所定量の前記データを抽出する抽出手段と、
前記第１の変換符号化処理および前記第２の変換符号化処理を実行する符号化手段と、
前記符号化手段による前記第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出手段と、
前記検出手段により、前記符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、前記符号化手段が実行する変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更手段とを備える情報処理装置に、
前記第２の変換符号化処理が行われるデータ全体から、前記第１の変換符号化処理を実行するための所定量の前記データを抽出する抽出ステップと、
前記抽出ステップの処理により抽出された前記データを用いて、予測符号量が所定の値以内になるまで前記第１の変換符号化処理を実行する第１の符号化ステップと、
前記第１の符号化ステップの処理による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になった場合、前記第１の符号化ステップの処理による前記第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出ステップと、
前記検出ステップの処理により、前記符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、前記第２の変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更ステップと、
前記量子化処理変更ステップの処理により変更された前記パラメータを用いて前記第２の変換符号化処理を実行する第２の符号化ステップと
を実行させ、
前記抽出ステップの処理においては、前記第１の符号化ステップの処理による前記第１の変換符号化処理の結果得られる前記予測符号量が所定の値以内になるまで、それ以前の処理において前記第１の変換符号化処理が実行されていない前記データが優先的に抽出され、
前記第２の符号化ステップの処理においては、前記量子化処理変更ステップの処理により変更された前記パラメータを用いて前記第２の変換符号化処理が実行される
プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および情報処理方法、記録媒体、並びにプログラムに関し、特に、可変長符号を生成する場合に、そのシンボルの値を所定の割り当て範囲以内としつつ、符号化のために生じる誤差が少ない符号化処理を実行することができるようにした情報処理装置および情報処理方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
例えば、JPEGなどによる画像圧縮処理において、DCT（Discrete Cosine Transform：離散コサイン変換）、量子化、および、VLC（Variable Length Cording：可変長符号化）が実行される。
【０００３】
DCTとは、画像データを周波数成分に変換する直交変換（動画データの空間方向の冗長性を削除する圧縮方式の1つ）であり、画像データを小さなブロック単位（例えば８×８画素）に分割して、それぞれを直交変換し、周波数成分を示す係数を得る。これによって、画像データのうちの、例えば輝度データが、周波数領域に写像される。量子化とは、それぞれの周波数成分を、成分ごとに決められた間隔で量子化していく処理であり、この処理により、元のデータの細部が失われる。そして、量子化されたDCT係数が、例えば、ハフマン符号化方式などを用いて、可変長符号化される。
【０００４】
図１は、符号化処理（上述したDCT、量子化、およびVLCの一連の処理）を実行するパーソナルコンピュータの構成を示す図である。
【０００５】
パーソナルコンピュータ１−１およびパーソナルコンピュータ１−２は、例えば、インターネット、有線あるいは無線によるＬＡＮ（local area network）、あるいはＷＡＮ（wide area network）などの、ネットワーク２を介して、相互に接続されている。ネットワーク２には、パーソナルコンピュータ１−１および１−２以外にも、複数のパーソナルコンピュータが接続されていてもよいが、ここでは、図示を省略する。
【０００６】
パーソナルコンピュータ１−１のCPU（Central Processing Unit）１１−１は、ネットワークインターフェース（Ｉ／F）１５−１を介して、他のパーソナルコンピュータが送信した制御信号や、入出力インターフェース１２−１を介して入力される、ユーザが、キーボード２２−１を用いて入力した各種指令に対応する信号の入力を受け、入力された信号に基づいた各種処理を実行する。
【０００７】
入出力インターフェース（Ｉ／F）１２−１はモニタ２１−１およびキーボード２２−１と接続されている。キーボード２２−１は、ユーザがCPU１１−１に各種の指令を入力するとき操作される。モニタ２１−１は、例えば、ＣＲＴ（Cathode Ray Tube）や液晶表示装置などからなり、各種情報をテキスト、あるいはイメージなどで表示する。
【０００８】
RAM（Random Access Memory）１３−１は、CPU１１−１の実行において使用するプログラムや、その実行において適宜変化するパラメータを格納する。ROM（Read Only Memory）１４−１は、CPU１１−１が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。
【０００９】
ネットワークインターフェース１５−１は、ネットワーク２を介して、他の機器と接続され、それらの機器との情報の授受を行う。
【００１０】
ＨＤＤ（hard disk drive）１７−１は、ハードディスクを駆動し、それらにCPU１１−１によって実行するプログラムや情報を記録または再生させる。ドライブ１６−１には、必要に応じて磁気ディスク３１、光ディスク３２、光磁気ディスク３３、および半導体メモリ３４が装着され、データの授受を行う。
【００１１】
パーソナルコンピュータ１−２のCPU１１−２乃至キーボード２２−２は、上述したパーソナルコンピュータ１−１乃至キーボード２２−１と、基本的に同様であるので、その説明を省略する。
【００１２】
以下、パーソナルコンピュータ１−１および１−２を個々に区別する必要がない場合、単にパーソナルコンピュータ１と総称し、ＣＰＵ１１−１および１１−２を個々に区別する必要がない場合、単にＣＰＵ１１と総称し、入出力インターフェース１２−１および１２−２を個々に区別する必要がない場合、単に入出力インターフェース１２と総称し、ＲＡＭ１３−１および１３−２を個々に区別する必要がない場合、単にＲＡＭ１３と総称する。
【００１３】
また、ＲＯＭ１４−１および１４−２を個々に区別する必要がない場合、単にＲＯＭ１４と総称し、ネットワークインターフェース１５−１および１５−２を個々に区別する必要がない場合、単にネットワークインターフェース１５と総称し、ドライブ１６−１および１６−２を個々に区別する必要がない場合、単にドライブ１６と総称し、モニタ２１−１および２１−２を個々に区別する必要がない場合、単にモニタ２１と総称し、キーボード２２−１および２２−２を個々に区別する必要がない場合、単にキーボード２２と総称する。
【００１４】
CPU１１は、例えば、ＨＤＤ１７などに記録されているデータを、後述する所定の処理により符号化し、ネットワークインターフェース１５を介して、他のパーソナルコンピュータに出力したり、ネットワークインターフェース１５を介して入力された符号化データを復号し、モニタ２１に出力して表示させる処理を実行する。
【００１５】
このとき、CPU１１は、ＨＤＤ１７などに記録されている符号化するべき対象のデータの一部を抽出して、見積もりのための符号化処理を実行して符号化されたデータの符号量を基に、予測符号量が目標範囲以内か否かを判断し、目標範囲に収まるまで、符号化パラメータを変更して見積もりのための符号化を繰り返し、符号量が目標範囲以内になった場合、対応するパラメータを用いて、データ全体を符号化する処理を実行する。
【００１６】
図２のフローチャートを参照して、従来の符号化データ作成処理１について説明する。
【００１７】
ステップＳ１において、ＣＰＵ１１は、例えば、ＨＤＤ１７などに記録されている符号化するべき対象のデータ全体のうちの、１／２、１／３、あるいは１／４などの所定の量のデータを、見積もりのためのデータとして抽出する。
【００１８】
ステップＳ２において、ステップＳ１において抽出された見積もりのためのデータを用いて、図３を用いて後述する符号化処理１が実行される。
【００１９】
ステップＳ３において、ＣＰＵ１１は、ステップＳ２において実行された見積もりのための符号化処理１の処理結果を基に、予測符号量が目標範囲にあるか否かを判断する。ステップＳ３において、予測符号量が目標範囲にないと判断された場合、処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。
【００２０】
ステップＳ３において、予測符号量が目標範囲にあると判断された場合、ステップＳ４において、ＣＰＵ１１は、例えば、ＨＤＤ１７などに記録されている符号化するべき対象の全データを読み出す。
【００２１】
ステップＳ５において、ステップＳ４において抽出された全データを用いて、図３を用いて後述する符号化処理１が実行されて、処理が終了される。
【００２２】
このような処理により、目標範囲内の符号量の符号化データが生成される。
【００２３】
次に、図３のフローチャートを確認して、図２のステップＳ２及びステップＳ５において実行される符号化データ作成処理１について説明する。
【００２４】
CPU１１は、ステップＳ１１において、抽出されたデータの入力を受け、ステップＳ１２において、入力されたデータに対して、DCT（Discrete Cosine Transform：離散コサイン変換）を実行する。DCTとは、画像データを周波数成分に変換する直交変換の1つであり、直交変換とは、動画データの空間方向の冗長性を削除する圧縮方式である。
【００２５】
図４に、DCTの結果を示す。図４のデータにおいては、左上ほど低周波成分、右下ほど高周波成分を表し、最も左上は直流成分を表す。DCT前のデータを０乃至２５５（もしくは-１２８乃至−１２７）の８ビットデータとすると、DCT後のデータは、各要素とも−１０２３乃至１０２３の１１ビットのデータとなる。データの範囲を考えれば、DCT後のデータは、DCT前のデータより冗長になったように見えるが、高周波数成分にはあまり大きな信号が現れず、分散されていた信号の電力成分を低周波成分側に集める事ができるため、データを圧縮することが可能となる。
【００２６】
ステップＳ１３において、CPU１１は、ステップＳ１２においてDCTされたデータに対して、量子化を行う。DCT後の周波数成分値は実数値であるが、圧縮という観点から見ると、データを実数値で持つのは容量的に無駄となるので、量子化を実行する。量子化とは、音声などをデジタル化するときに、特定の周波数でサンプリングして得られた信号を、一定のビット数のデータに置き換える操作であり、具体的には、DCT後の周波数成分値に所定の値を積算し、図５に示されるような量子化テーブルを用いて、積算結果を除算する。図６に、図４のDCT結果に８を積算した後、図５に示される量子化テーブルによって除算した場合の演算結果のマトリクスを示す。
【００２７】
ステップＳ１４において、CPU１１は、ステップＳ１３の量子化結果において、符号で割り当てられている範囲を越えるシンボルがあるか否かを判断する。ここで、符号に割り当てられている範囲を−２５５乃至２５５であるものとする。
【００２８】
ステップＳ１４において、符号で割り当てられている範囲を越えるシンボルがあると判断された場合、ステップＳ１５において、CPU１１は、割り当てを越えているシンボルを、所定の値に制限する。すなわち、ステップＳ１３の量子化結果が、図６に示されるシンボルであった場合、図中網掛けの部分において、符号に割り当てられている範囲を越えてしまっているので、CPU１１は、対応する部分のシンボルを２５５に制限し、図７に示されるシンボルを生成する。
【００２９】
ステップＳ１４において、符号で割り当てられている範囲を越えるシンボルがないと判断された場合、もしくは、ステップＳ１５の処理の終了後、ステップＳ１６において、CPU１１は、量子化されたシンボルに対して、VLC（Variable Length Cording：可変長符号化）を実行する。VLCとは、シンボルの出現頻度に応じて符号長を割り当てることによって情報量（データ量）を圧縮する符号化方式であり、発生頻度が高いシンボルに対して、短い符号長の符号が割り当てられる。
【００３０】
ステップＳ１７において、CPU１１は、ステップＳ１６において生成された符号化データを出力して、処理が終了する。
【００３１】
図２および図３を用いて説明した処理による数値の範囲の変化について、図８を用いて説明する。
【００３２】
図８（Ａ）に示されるように、原画像データの値の範囲が０乃至２５５の２５６階調であった場合、DCTおよび量子化を実行することにより、図８（Ｂ）に示されるように、対応するシンボルが取る値の範囲は、−１０２３乃至１０２３となる。しかしながら、データ授受のための規格などによって、符号化データの出力値として、符号に割り当てられている範囲は、−２５５乃至２５５である。
【００３３】
従って、図３を用いて説明した処理のステップＳ１５において、図８（Ｃ）に示されるように、割り当てを越えているシンボルが、−２５５乃至２５５に制限される。そして、その後VLCが実行されて生成された可変調符号が取る値の範囲は、図８（Ｄ）に示されるように、−２５５乃至２５５である。
【００３４】
【発明が解決しようとする課題】
図３のステップＳ１５において、図６を用いて説明した演算結果のうち、２５５を超えるシンボルを、図７を用いて説明したように全て２５５に制限し、その量子化結果を用いて可変長符号化したシンボルが取る値の範囲は、確かに、図８（Ｄ）を用いて説明したように、規格内の−２５５乃至２５５となる。しかしながら、符号割り当ての範囲を越えたために数値が制限された量子化データに対応する部分の符号化データは、正しく復号することができない場合がある。
【００３５】
図９は、図７の量子化されたシンボルの逆量子化結果である。図９に示されるように、逆量子化されたデータは、図４を用いて説明したDCTの結果と比較して、非常に誤差の大きいデータとなる。図１０に、図４を用いて説明したDCTの結果と、逆量子化されたデータの誤差を示す。符号割り当ての範囲を越えたために数値が制限された３つのデータのうちの１つにおいて、５０の誤差が発生している。
【００３６】
このように、符号割り当ての範囲を越えたために数値が制限されてしまうことにより、復号されたデータが、符号化前のデータと大きく異なってしまう場合が生じてしまう。例えば、画像データを符号化した場合、復号されたデータが、符号化前のデータと大きく異なってしまうということは、復号の結果生成される画像の劣化につながる。
【００３７】
本発明はこのような状況に鑑みてなされたものであり、可変長符号の範囲を所定の値以内としつつ、誤差の少ない符号化処理を実行することができるようにするものである。
【００３８】
【課題を解決するための手段】
本発明の情報処理装置は、第２の変換符号化処理が行われるデータ全体から、第１の変換符号化処理を実行するための所定量のデータを抽出する抽出手段と、抽出手段により抽出されたデータを用いて、予測符号量が所定の値以内になるまで第１の変換符号化処理を実行する符号化手段と、符号化手段による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になった場合、符号化手段による第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出手段と、検出手段により、符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、符号化手段が実行する第２の変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更手段とを備え、抽出手段は、符号化手段による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になるまで、それ以前の処理において第１の変換符号化処理が実行されていないデータを優先的に抽出し、符号化手段は、量子化処理変更手段により変更されたパラメータを用いて第２の変換符号化処理を実行することを特徴とする。
【００３９】
量子化処理変更手段により変更されるパラメータは、量子化係数であるものとすることができる。
【００４０】
第１の変換符号化処理、および第２の変換符号化処理は、ＩＳＯ／ＩＥＣ１１１７２で規定されている処理であるものとすることができる。
【００４２】
量子化処理変更手段には、符号化手段による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になるまでの間、第１の変換符号化処理が実行される毎に、検出手段の検出結果に従って量子化処理のパラメータを変更させるようにすることができ、符号化手段には、最新のパラメータを用いて第１の変換符号化および第２の変換符号化処理を実行させるようにすることができる。
【００４３】
量子化処理変更手段には、符号化手段による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になり、全ての第１の変換符号化処理が終了した後に、検出手段の検出結果に従って、量子化処理のパラメータを変更させるようにすることができ、符号化手段には、符号の割り当て範囲内に収まっていないシンボルが存在したときに変更されたパラメータを用いて第２の変換符号化処理を実行させるようにすることができる。
【００４４】
本発明の情報処理方法は、第２の変換符号化処理が行われるデータ全体から、第１の変換符号化処理を実行するための所定量のデータを抽出する抽出ステップと、抽出ステップの処理により抽出されたデータを用いて、予測符号量が所定の値以内になるまで第１の変換符号化処理を実行する第１の符号化ステップと、第１の符号化ステップの処理による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になった場合、第１の符号化ステップの処理による第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出ステップと、検出ステップの処理により、符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、第２の変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更ステップと、量子化処理変更ステップの処理により変更されたパラメータを用いて第２の変換符号化処理を実行する第２の符号化ステップとを含み、抽出ステップは、第１の符号化ステップの処理による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になるまで、それ以前の処理において第１の変換符号化処理が実行されていないデータを優先的に抽出し、第２の符号化ステップは、量子化処理変更ステップの処理により変更されたパラメータを用いて第２の変換符号化処理を実行することを特徴とする。
【００４５】
本発明の記録媒体に記録されているプログラムは、第２の変換符号化処理が行われるデータ全体から、第１の変換符号化処理を実行するための所定量のデータを抽出する抽出ステップと、抽出ステップの処理により抽出されたデータを用いて、予測符号量が所定の値以内になるまで第１の変換符号化処理を実行する第１の符号化ステップと、第１の符号化ステップの処理による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になった場合、第１の符号化ステップの処理による第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出ステップと、検出ステップの処理により、符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、第２の変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更ステップと、量子化処理変更ステップの処理により変更されたパラメータを用いて第２の変換符号化処理を実行する第２の符号化ステップとを情報処理装置に実行させ、抽出ステップの処理においては、第１の符号化ステップの処理による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になるまで、それ以前の処理において第１の変換符号化処理が実行されていないデータが優先的に抽出され、第２の符号化ステップの処理においては、量子化処理変更ステップの処理により変更されたパラメータを用いて第２の変換符号化処理が実行される。
【００４６】
本発明のプログラムは、第２の変換符号化処理が行われるデータ全体から、第１の変換符号化処理を実行するための所定量のデータを抽出する抽出ステップと、抽出ステップの処理により抽出されたデータを用いて、予測符号量が所定の値以内になるまで第１の変換符号化処理を実行する第１の符号化ステップと、第１の符号化ステップの処理による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になった場合、第１の符号化ステップの処理による第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することを検出する検出ステップと、検出ステップの処理により、符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、第２の変換符号化処理に含まれる量子化処理のパラメータを変更する量子化処理変更ステップと、量子化処理変更ステップの処理により変更されたパラメータを用いて第２の変換符号化処理を実行する第２の符号化ステップとを情報処理装置に実行させ、抽出ステップの処理においては、第１の符号化ステップの処理による第１の変換符号化処理の結果得られる予測符号量が所定の値以内になるまで、それ以前の処理において第１の変換符号化処理が実行されていないデータが優先的に抽出され、
第２の符号化ステップの処理においては、量子化処理変更ステップの処理により変更されたパラメータを用いて第２の変換符号化処理が実行される。
【００４７】
本発明の情報処理装置および情報処理方法、並びにプログラムにおいては、第２の変換符号化処理が行われるデータ全体から、第１の変換符号化処理を実行するための所定量のデータが抽出され、符号量予測のための第１の変換符号化処理、および、最終的な符号化データ生成のための第２の変換符号化処理が実行され、第１の変換符号化処理の結果得られる予測符号量が所定の値以内になった場合、第１の変換符号化処理結果に、予め定められた符号の割り当て範囲内に収まっていないシンボルが存在することが検出され、符号の割り当て範囲内に収まっていないシンボルが存在することが検出された場合、第２の変換符号化処理に含まれる量子化処理のパラメータが変更される。なお、第１の変換符号化処理の結果得られる予測符号量が所定の値以内になるまで、それ以前の処理において第１の変換符号化処理が実行されていないデータが優先的に抽出され、変更された前記パラメータを用いて第２の変換符号化処理が実行される。
【００４８】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。本発明による符号化処理を実行するパーソナルコンピュータの構成は、図１を用いて説明したパーソナルコンピュータ１と基本的に同様であるので、その説明は省略する。
【００４９】
図１１のフローチャートを参照して、本発明を適応した符号化データ生成処理２について説明する。
【００５０】
ステップＳ３１において、ＣＰＵ１１は、例えば、ＨＤＤ１７などに記録されている符号化するべき対象のデータ全体のうちの、１／２、１／３、あるいは１／４などの所定の量のデータを、見積もりのためのデータとして抽出する。
【００５１】
ステップＳ３２において、ステップＳ３１において抽出された見積もりのためのデータを用いて、図１４を用いて後述する符号化処理２が実行される。
【００５２】
ステップＳ３３において、ＣＰＵ１１は、ステップＳ３２において実行された見積もりのための符号化処理２の処理結果を基に、予測符号量が目標範囲にあるか否かを判断する。ステップＳ３３において、予測符号量が目標範囲にないと判断された場合、処理は、ステップＳ３１に戻り、それ以降の処理が繰り返される。
【００５３】
ここで、予測符号量が目標範囲にないと判断された場合、次に実行されるステップＳ３１の処理においては、それ以前に実行されたステップＳ３１の処理において抽出された見積もりのためのデータと異なる部分のデータを、次の見積もりのためのデータとして抽出する。多くの場合、符号化処理において、１度の見積もりで予測符号量が目標範囲に入ることはない。従って、ステップＳ３１の処理が繰り返されるたびに見積もりのために抽出されたデータを変更することによって、符号化するべきデータのうちの殆どを、符号化予測のために一度は符号化することになる。
【００５４】
ステップＳ３４において、ＣＰＵ１１は、符号の割り当て範囲を越えていることを示すフラグが立っているか否かを判断する。ここで、符号の割り当て範囲は、図３のフローチャートを用いて説明した従来の符号化処理１における場合と同様に、−２５５乃至２５５であるものとする。符号の割り当て範囲を越えていることを示すフラグは、ステップＳ３２において実行された符号量予測のための符号化処理２の後述するステップＳ５５の処理によって立てられるので、それについての詳細は後述する。
【００５５】
ステップＳ３４において、割り当て範囲を越えていることを示すフラグが立っていると判断された場合、すなわち、DCTの結果が、例えば図4に示されるデータであり、それに対して図５の量子化テーブルを用いて量子化した結果が、図６を用いて説明したように、−２５５乃至２５５の範囲を越えるシンボルを含んでいる場合、ＣＰＵ１１は、割り当て範囲内に収まるように、量子化係数を変更し、図５の量子化テーブルとは異なる量子化テーブルであって、量子化した結果得られるシンボルが割り当て範囲を越えないような量子化テーブルを生成する。新たに生成される量子化テーブルの例を図１２に示す。
【００５６】
上述したように、見積もりのためのデータ抽出と符号化処理２は、複数回実行されていることが多いので、割り当て範囲を越えていることを示すフラグが立っているか否かを判断することによって、符号化するべきデータのうちの殆どのデータにおいて、割り当て範囲を越えているか否かを判断することが可能である。
符号化処理２において、複数のデータに対してフラグが立った場合、フラグが立っているそれぞれのデータに対して、符号化係数が変更される。
【００５７】
ステップＳ３４において、割り当て範囲を越えていることを示すフラグが立っていないと判断された場合、もしくはステップＳ３５の処理の終了後、ステップＳ３６において、ＣＰＵ１１は、例えば、ＨＤＤ１７などに記録されている符号化するべき対象の全データを読み出す。
【００５８】
そして、ステップＳ３７において、ステップＳ３６において抽出された全データを用い、ステップＳ３５において量子化係数が変更された場合は、その量子化係数による新たな量子化テーブルを用いて、図１４を用いて後述する符号化処理２が実行されて、処理が終了される。
【００５９】
図１３に、後述する符号化処理２において、図４のDCT結果に８を積算した後、図１２に示される量子化テーブルによって除算した場合の演算結果のマトリクスを示す。図１３に示されるシンボルは、−２５５乃至２５５の範囲を越えるシンボルを含んでいない。
【００６０】
次に、図１４を参照して、図１１のステップＳ３２およびステップＳ３７において実行される符号化処理２について説明する。符号化処理２は、国際標準規格（ISO/IEC11172）に準拠した処理である。
【００６１】
CPU１１は、ステップＳ５１において、抽出されたデータの入力を受け、ステップＳ５２において、入力されたデータに対して、DCTを実行する。DCTとは、画像データを周波数成分に変換する直交変換の1つであり、直交変換とは、動画データの空間方向の冗長性を削除する圧縮方式である。DCTを使ったデータ圧縮では、画像内の小さなブロック単位（例えば、８×８画素）を直交変換し、周波数成分を示す係数を得る。DCT方式は、直交変換の中で最も効率が高い方式として知られている。またDCT方式は、MPEG、JPEG、H.261などの国際標準規格にも採用されている。
【００６２】
ステップＳ５１におけるDCTの結果は、図４を用いて説明した場合と同様であり、左上ほど低周波成分、右下ほど高周波成分を表し、最も左上は直流成分を表す。DCT前のデータを０乃至２５５（もしくは-１２８乃至−１２７）の８ビットデータとすると、DCT後のデータは、各要素とも−１０２３乃至１０２３の１１ビットのデータとなる。データの範囲を考えれば、DCT後のデータは、DCT前のデータより冗長になったように見えるが、高周波数成分にはあまり大きな信号が現れず、分散されていた信号の電力成分を低周波成分側に集める事ができるため、データを圧縮することが可能となる。
【００６３】
ステップＳ５３において、CPU１１は、ステップＳ５２においてDCTされたデータに対して、量子化を行う。DCT後の周波数成分値は実数値であるが、圧縮という観点から見ると、データを実数値で持つのは容量的に無駄となるので、量子化を実行する。量子化とは、音声などをデジタル化するときに、特定の周波数でサンプリングして得られた信号を、一定のビット数のデータに置き換える操作であり、具体的には、DCT後の周波数成分値に所定の値を積算し、図５、あるいは図１２を用いて説明した量子化テーブルを用いて、積算結果を除算する。
【００６４】
例えば、図４のDCT結果に８を積算した後、図５に示される量子化テーブルによって除算した場合の演算結果のマトリクスは、図６を用いて説明した場合と同様であり、図４のDCT結果に８を積算した後、図１２に示される量子化テーブルによって除算した場合の演算結果のマトリクスは、図１３を用いて説明した場合と同様である。
【００６５】
ステップＳ５４において、CPU１１は、ステップＳ５３の量子化結果において、符号で割り当てられている範囲を越えるシンボルがあるか否かを判断する。ここで、符号に割り当てられている範囲を−２５５乃至２５５であるとする。
【００６６】
なお、図１１のステップＳ３７において実行される処理では、図１２および図１３を用いて説明したように、符号で割り当てられている範囲を越えるシンボルは存在しない。
【００６７】
ステップＳ５４において、符号で割り当てられている範囲を越えるシンボルがあると判断された場合、ステップＳ５５において、CPU１１は、シンボルが割り当て範囲を越えていることを示すフラグを立てる。例えば、ステップＳ５３の量子化結果が、図６に示されるシンボルであった場合、図中網掛けの部分において、符号に割り当てられている範囲を越えているので、フラグを立てる。
【００６８】
ステップＳ５４において、符号で割り当てられている範囲を越えるシンボルがないと判断された場合、もしくは、ステップＳ５５の処理の終了後、ステップＳ５６において、CPU１１は、量子化されたシンボルに対して、VLCを実行する。VLCとは、シンボルの出現頻度に応じて符号長を割り当てることによって情報量（データ量）を圧縮する符号化方式である。すなわち、VLCにおいては、発生頻度が高いデータに対して、短い符号長の符号が割り当てられる。
【００６９】
ステップＳ５７において、CPU１１は、ステップＳ５６において生成された符号化データを出力して、処理が終了する。
【００７０】
このような処理により、量子化データの値を変更することなく、符号化が実行され、符号化データが出力される。すなわち、ステップＳ５４において、符号で割り当てられている範囲を越えるシンボルがあると判断された場合、フラグが立つため、図１１のステップＳ３４において、フラグが立っていることが検出され、量子化係数が変更され、図１２に示される新たな量子化テーブルが生成される。そして、ステップＳ３７において、変更された量子化係数を用いて全シンボルに対する符号化処理が行われる。
【００７１】
従って、図１５に示されるように、量子化後の値の範囲は、−２５５乃至２５５の範囲を超えないので（図１５の（Ｂ）に示される範囲）、可変長符号のある範囲も、−２５５乃至２５５の範囲内（図１５の（Ｄ）に示される範囲）となる。
【００７２】
DCTによって生成されたデータが図４に示されるデータである場合、そのDCT結果データを、本発明を適応した処理により量子化して生成された符号化データが、図１３に示されるデータである。図１３のデータを逆量子化したデータを図１６に示す。そして、本発明の効果を示すために、図４のデータと、図１３のデータとの誤差を図１７に示す。
【００７３】
図１７に示されるように、符号化前のデータ（図４）と、本願を適応した処理により符号化されたデータを逆量子化したデータ（図１６）は、殆ど誤差がない。すなわち、本発明を用いて符号化を実行することにより、復号側で、符号化前のデータと殆ど誤差のないデータを得ることができる。
【００７４】
次に、図１８のフローチャートを参照して、第２の実施の形態として、本発明を適応した符号化データ生成処理３について説明する。
【００７５】
ステップＳ７１およびステップＳ７２において、図１１を用いて説明した符号化データ生成処理２のステップＳ３１およびステップＳ３２と同様の処理が実行される。
【００７６】
ステップＳ７３およびステップＳ７４において、図１１を用いて説明した符号化データ生成処理２のステップＳ３４およびステップＳ３５と同様の処理が実行される。
【００７７】
ステップＳ７３において、割り当て範囲を越えていることを示すフラグが立っていないと判断された場合、もしくは、ステップＳ７４の処理の終了後、ステップＳ７５において、図１１を用いて説明した符号化データ生成処理２のステップＳ３３と同様の処理が実行される。ステップＳ７５において、予測符号量が目標範囲内にないと判断された場合、処理は、ステップＳ７１に戻り、それ以降の処理が繰り返される。
【００７８】
ステップＳ７５において、予測符号量が目標範囲内であると判断された場合、ステップＳ７６およびステップＳ７７において、図１１を用いて説明した符号化データ生成処理２のステップＳ３６およびステップＳ３７と同様の処理が実行され、処理が終了される。
【００７９】
すなわち、図１１を用いて説明した符号化データ生成処理２と、図１８の符号化データ生成処理３との違いは、量子化係数の変更のタイミングである。図１１を用いて説明した符号化データ生成処理２においては、予測符号量が目標範囲内に収まったのちに、量子化係数を変更するようになされているが、図１８の符号化データ生成処理３においては、見積もりのために符号化処理２（ステップＳ７２）の処理が終了する毎に、量子化係数を変更するようになされている。
【００８０】
以上説明した処理により、生成される符号化シンボルが、符号割り当て範囲（例えば、−２５５乃至２５５）から出てしまうことなく、複号されたデータと符号化前のデータとの誤差を小さくすることができる。すなわち、本発明を適応した符号化処理は、符号化によるデータの劣化を防ぐことができるようにしたものである。従って、本発明を画像データの符号化に適応した場合、復号されて得られる画像の画質の劣化を防ぐことが可能となる。
【００８１】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【００８２】
この記録媒体は、図１に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク３１（フレキシブルディスクを含む）、光ディスク３２（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク３３（ＭＤ(Mini-Disk)（商標）を含む）、もしくは半導体メモリ３４などよりなるパッケージメディアなどにより構成される。
【００８３】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００８４】
【発明の効果】
本発明の情報処理装置および情報処理方法、記録媒体、並びにプログラムによれば、可変長符号を生成する場合に、そのデータの値を所定の割り当て範囲以内としつつ、符号化のために生じる誤差が少ない符号化処理を実行することができる。
【図面の簡単な説明】
【図１】符号化処理を実行するパーソナルコンピュータの構成を説明するための図である。
【図２】従来の符号化データ生成処理１について説明するためのフローチャートである。
【図３】図２のステップＳ２およびステップＳ５において実行される符号化処理１について説明するためのフローチャートである。
【図４】  DCTの結果得られたデータを示す図である。
【図５】量子化テーブルを示す図である。
【図６】図５の量子化テーブルを用いた演算結果を示す図である。
【図７】図６の演算結果において符号割り当て範囲を越えたシンボルを制限した量子化結果を示す図である。
【図８】原画像から可変長符号までのデータまたはシンボルの範囲について説明するための図である。
【図９】図７の量子化結果を逆量子化したデータを示す図である。
【図１０】図４のDCT結果と図９の逆量子化結果との誤差を示す図である。
【図１１】本発明を適応した符号化データ生成処理２について説明するためのフローチャートである。
【図１２】シンボルが割り当て範囲を越えた場合に、変更された量子化係数によって生成された量子化テーブルを示す図である。
【図１３】図１２の量子化テーブルを用いた場合の量子化結果を示す図である。
【図１４】図１１のステップＳ３２およびステップＳ３７において実行される符号化処理２について説明するためのフローチャートである。
【図１５】本発明を適応した場合における、原画像から可変長符号までのデータまたはシンボルの範囲について説明するための図である。
【図１６】図１３の量子化結果を逆量子化したデータを示す図である。
【図１７】図４のDCT結果と図１６の逆量子化結果との誤差を示す図である。
【図１８】本発明を適応した符号化データ生成処理３について説明するためのフローチャートである。
【符号の説明】
１  パーソナルコンピュータ，  ２  ネットワーク，  １１  CPU，  １３  RAM，  １７  ＨＤＤ，  ２１  モニタ，  ３１  磁気ディスク，  ３２  光ディスク，  ３３  光磁気ディスク，  ３４  半導体メモリ
【図１】
0004569056.tif 000002
【図２】
0004569056.tif 000003
【図３】
0004569056.tif 000004
【図４】
0004569056.tif 000005
【図５】
0004569056.tif 000006
【図６】
0004569056.tif 000007
【図７】
0004569056.tif 000008
【図８】
0004569056.tif 000009
【図９】
0004569056.tif 000010
【図１０】
0004569056.tif 000011
【図１１】
0004569056.tif 000012
【図１２】
0004569056.tif 000013
【図１３】
0004569056.tif 000014
【図１４】
0004569056.tif 000015
【図１５】
0004569056.tif 000016
【図１６】
0004569056.tif 000017
【図１７】
0004569056.tif 000018
【図１８】
0004569056.tif 000019