(57)【要約】【課題】キーデータの符号化及び復号化装置、並びに方法を提供する。【解決手段】入力された差分データの正数側の範囲及び負数側の範囲に応じて、正数側の範囲を半分に分け、上位範囲に位置する差分データを負数に変換するディバイド演算を行った後、演算の行われた差分データの範囲に応じて、負数領域に位置した差分データの範囲を狭めるディバイド−アップ演算または正数領域に位置した差分データの範囲を狭めるディバイド−ダウン演算を行って入力された差分データの範囲を狭めるＤＮＤ演算を所定回数行うＤＮＤ演算部と、ＤＮＤ演算された差分データに対して差分データの範囲を正数側または負数側に移動させるシフト−アップ演算を行うシフト−アップ演算部と、ＤＮＤ演算された差分データまたはシフト−アップ演算された差分データを選択的に出力する差分データ選択部、及び差分データ選択部において選択された差分データをエントロピ符号化するエントロピ符号化器を備える符号化装置。【選択図】　図２
2004007380.tif 000002
【特許請求の範囲】
【請求項１】
キーフレームの時間軸上の位置情報であるキーデータに対してＤＰＣＭが行われた差分データを符号化する装置であって、
入力された差分データの正数側の範囲及び負数側の範囲に応じて、正数側の範囲を半分に分け、上位範囲に位置する差分データを負数に変換するディバイド演算を行った後、演算の行われた差分データの範囲に応じて、負数領域に位置した差分データの範囲を狭める前記ディバイド−アップ演算または正数領域に位置した差分データの範囲を狭めるディバイド−ダウン演算を行い、入力された差分データの範囲を狭めるＤＮＤ演算を所定回数行うＤＮＤ演算部と、
前記ＤＮＤ演算された差分データに対して差分データの範囲を正数側または負数側に移動させるシフト−アップ演算を行うシフト−アップ演算部と、
前記ＤＮＤ演算された差分データまたは前記シフト−アップ演算された差分データを選択的に出力する差分データ選択部と、
前記差分データ選択部において選択された差分データをエントロピ符号化するエントロピ符号化器と、を備えることを特徴とする符号化装置。
【請求項２】
前記差分データ選択部は、
前記ＤＮＤ演算された差分データ及びシフト−アップ演算された差分データの散布度を各々測定し、前記散布度の小さい方の差分データを出力することを特徴とする請求項１に記載の符号化装置。
【請求項３】
キーフレームの時間軸上の位置情報であるキーデータに対してＤＰＣＭが行われた差分データを符号化する装置であって、
前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト部と、
前記差分データを正数領域または負数領域に変換するフォルド処理部と、
前記変換された差分データと、前記変換された差分データの最大値及び最小値間の関係に応じて前記変換された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト部から入力された差分データ、前記フォルド処理部から入力された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択して出力するＤＮＤ処理部と、
前記ＤＮＤ処理部から入力された差分データを符号化するエントロピ符号化器と、を備えることを特徴とする符号化装置。
【請求項４】
前記フォルド処理部は、
前記シフト部から出力された差分データが所定の基準値より大きい場合には前記差分データに所定の第１の定数をかけ、前記差分データが前記基準値より小さい場合には前記差分データの絶対値に前記第１の定数をかけて所定の第２の定数を引くことを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記ＤＮＤ処理部は、
フォルド処理部から入力された差分データに対してＤＮＤ演算を行うＤＮＤ演算部と、
前記シフト演算された差分データ、前記フォルド演算された差分データ及び前記ＤＮＤ演算された差分データを各々入力されてそれらのうちいずれか一つを選択して出力する第１の差分データ選択部と、
前記ＤＮＤ演算された差分データが前記第１の差分データ選択部から入力された場合、前記ＤＮＤ演算された差分データに対してシフト−アップ演算を行うシフト−アップ演算部と、
前記ＤＮＤ演算された差分データまたは前記シフト−アップ演算された差分データを選択的に出力する第２の差分データ選択部と、を備えることを特徴とする請求項３に記載の符号化装置。
【請求項６】
前記ＤＮＤ演算部は、
前記フォルド処理部から入力された差分データを半分に分け、上位範囲に位置する差分データは負数に変換するディバイド演算を行い、ディバイド演算の行われた差分データの範囲に応じて、負数領域に位置したキーデータの差分データの範囲を狭めるディバイド−アップ演算、または正数領域に位置したキーデータの差分データの範囲を狭めるディバイド−ダウン演算を行い、符号化されるべき差分データの範囲を狭めるＤＮＤ演算を行うことを特徴とする請求項５に記載の符号化装置。
【請求項７】
前記ディバイド演算は、前記入力された差分データのうち選択された最大値をｎＫｅｙＭａｘとした時、入力された差分データがｎＫｅｙＭａｘ／２より大きい場合には入力された差分データから最大値を引いて所定の定数を引くことを特徴とする請求項６に記載の符号化装置。
【請求項８】
前記ディバイド−アップ演算は、
差分データの負数側の範囲が正数側の範囲より大きい場合、差分データのうち選択された最小値をｎＫｅｙＭｉｎとした時、差分データが所定の基準値より小さく、且つ、ｎＫｅｙＭｉｎ／２以上であれば、前記差分データに所定の第１の定数をかけ、前記差分データがｎＫｅｙＭｉｎ／２より小さければ、ｎＫｅｙＭｉｎから前記入力された差分データを引き、前記第１の定数をかけて所定の第２の定数を引くことを特徴とする請求項６に記載の符号化装置。
【請求項９】
前記ディバイド−ダウン演算は、
差分データの正数側の範囲が負数側の範囲より大きい場合、差分データのうち選択された最大値をｎＫｅｙＭａｘとした時、差分データがｎＫｅｙＭａｘ／２より大きい場合には差分データからｎＫｅｙＭａｘを引き、所定の第１の定数をかけて所定の第２の定数を引き、差分データが所定の基準値より小さい場合には前記第１の定数をかけることを特徴とする請求項６に記載の符号化装置。
【請求項１０】
前記ＤＮＤ演算部は、
前記ＤＮＤ演算を所定回数行い、符号化に必要なビット数が最小となる回数のＤＮＤ演算された差分データを出力することを特徴とする請求項５に記載の符号化装置。
【請求項１１】
前記シフト−アップ演算部は、
ｎＫｅｙＭａｘを前記ＤＮＤ演算された差分データのうち選択された最大値とした時、ＤＮＤ演算された差分データが所定の基準値より小さい場合にはｎＫｅｙＭａｘから前記ＤＮＤ演算された差分データを引くことを特徴とする請求項５に記載の符号化装置。
【請求項１２】
前記第１の差分データ選択部は、
前記シフト部、前記フォルド処理部及び前記ＤＮＤ演算部から各々入力されたキーデータの差分データのうち符号化に必要なビット数が最小となる差分データを選択して出力することを特徴とする請求項５に記載の符号化装置。
【請求項１３】
前記第１の差分データ選択部は、
前記シフト部または前記フォルド処理部から入力された差分データが選択された場合、選択された差分データを前記エントロピ符号化器に出力することを特徴とする請求項５に記載の符号化装置。
【請求項１４】
前記第２の差分データ選択部は、
前記ＤＮＤ演算された差分データ及びシフト−アップ演算された差分データの散布度を各々測定し、前記散布度の小さい方の差分データを出力することを特徴とする請求項５に記載の符号化装置。
【請求項１５】
キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化装置であって、
入力されたキーデータを所定の量子化ビットで量子化する量子化器と、
前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理部と、
前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト部と、
前記差分データを正数領域または負数領域に変換するフォルド処理部と、
前記変換された差分データと、前記変換された差分データの最大値及び最小値間の関係に応じて前記変換された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト部から入力された差分データ、前記フォルド処理部から入力された差分データ、及びＤＮＤ演算された差分データのうちいずれか一つを選択して出力するＤＮＤ処理部と、
前記ＤＮＤ処理部から入力された差分データを符号化するエントロピ符号化器と、を備えることを特徴とする符号化装置。
【請求項１６】
前記ＤＮＤ処理部は、
入力された差分データに対してＤＮＤ演算を行うＤＮＤ演算部と、
前記シフト演算された差分データ、前記フォルド演算された差分データ及び前記ＤＮＤ演算された差分データを各々入力されてそれらのうちいずれか一つを選択して出力する差分データ選択部と、を備えることを特徴とする請求項１５に記載の符号化装置。
【請求項１７】
前記ＤＮＤ演算部は、
入力された差分データの正数側の範囲及び負数側の範囲に応じて、正数側の範囲を半分に分け、上位範囲に位置する差分データを負数に変換するディバイド演算を行った後、演算の行われた差分データの範囲に応じて、前記ディバイド−アップ演算または正数領域に位置した差分データの範囲を狭めるディバイド−ダウン演算を行い、入力された差分データの範囲を狭めるＤＮＤ演算を所定回数行うことを特徴とする請求項１６に記載の符号化装置。
【請求項１８】
キーフレームに基づくグラフィックアニメーション方式において、キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化装置であって、
入力されたキーデータを所定の量子化ビットで量子化する量子化器と、
前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理部と、
前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト部と、
前記シフトされた差分データの最大値及び最小値間の関係に応じて前記シフトされた差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト部から入力された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択して出力するＤＮＤ処理部と、
前記ＤＮＤ処理部から入力された差分データを符号化するエントロピ符号化器と、を備えることを特徴とする符号化装置。
【請求項１９】
キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化装置であって、
入力される全体キーデータのうちキーデータが線形に増える領域を識別して符号化する線形キー符号化器と、
量子化誤差が最小化可能に入力されたキーデータの最大値及び最小値を調整して出力する量子化誤差最小化部と、
前記量子化誤差最小化部から入力された最大値及び最小値を用い、入力されたキーデータを所定の量子化ビットで量子化する量子化器と、
前記線形キー符号化器から入力され、且つ、２進数の体系で表わされた線形キー領域の開始キーデータ及び終了キーデータ、及び前記量子化誤差最小化部から入力され、且つ、２進数の体系で表わされた最大値及び最小値を１０進数の体系の実数に変換する実数変換部と、
前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理部と、
前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト部と、
前記差分データを正数領域または負数領域に変換するフォルド処理部と、
前記変換された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト部から入力された差分データ、前記フォルド処理部から入力された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択して出力するＤＮＤ処理部と、
前記ＤＮＤ処理部から入力された差分データを符号化するエントロピ符号化器と、
前記線形キー符号化器、量子化器、実数変換部、ＤＰＣＭ処理部、シフト部、フォルド処理部、ＤＮＤ処理部及び前記エントロピ符号化器のうち少なくとも一つから復号化に必要なデータを入力され、キーヘッダデータを生成するキーヘッダ符号化器と、を備えることを特徴とする請求項１９に記載の符号化装置。
【請求項２０】
前記線形キー符号化器は、
任意のキーデータ領域において線形に予測されたキーデータと実際のキーデータとの最大誤差が所定の臨界値以下であれば、前記領域を類似線形として判定することを特徴とする請求項１９に記載の符号化装置。
【請求項２１】
前記量子化器は、
入力されたキーデータのうち選択された最大値及び最小値を用い、各入力キーデータを所定範囲の値に変換し、前記変換された値を所定の量子化ビットで量子化することを特徴とする請求項１９に記載の符号化装置。
【請求項２２】
前記量子化誤差最小化部は、
任意の最大値及び最小値を用いて入力されたキーデータを所定範囲の値に変換し、前記変換された値を所定の量子化ビットで量子化し、前記量子化されたキーデータを逆量子化した後、入力されたキーデータと逆量子化されたキーデータとの誤差の和が最小となる前記最大値及び最小値を求めて前記量子化器に出力することを特徴とする請求項１９に記載の符号化装置。
【請求項２３】
前記実数変換部は、
ｍａｎｔｉｓｓａ＿ｂｉｎａｒｙ＊２ｅｘｐｏｎｅｎｔ＿ｂｉｎａｒｙの形で表わされた２進数の体系の実数をｍａｎｔｉｓｓａ＊１０ｅｘｐｏｎｅｎｔの形の１０進数の体系の実数に変換することを特徴とする請求項１９に記載の符号化装置。
【請求項２４】
前記フォルド処理部は、
前記シフト部から出力された差分データが所定の基準値より大きい場合には前記差分データに所定の第１の定数をかけ、前記差分データが前記基準値より小さい場合には前記差分データの絶対値に前記第１の定数をかけて所定の第２の定数を引くことを特徴とする請求項１９に記載の符号化装置。
【請求項２５】
前記ＤＮＤ処理部は、
フォルド演算された差分データに対してＤＮＤ演算を行うＤＮＤ演算部と、
前記シフト演算された差分データ、前記フォルド演算された差分データ及び前記ＤＮＤ演算された差分データを各々入力されてそれらのうちいずれか一つを選択して出力する第１の差分データ選択部と、
前記ＤＮＤ演算された差分データが前記第１の差分データ選択部から入力された場合、前記ＤＮＤ演算された差分データに対してシフト−アップ演算を行うシフト−アップ演算部と、
前記ＤＮＤ演算された差分データまたは前記シフト−アップ演算された差分データを選択的に出力する第２の差分データ選択部と、を備えることを特徴とする請求項１９に記載の符号化装置。
【請求項２６】
前記ＤＮＤ演算部は、
前記フォルド処理部から入力されたキーデータの差分データを半分に分け、上位範囲に位置する差分データは負数に変換するディバイド演算を行い、ディバイド演算が行われた後の差分データの範囲に応じて、負数領域に位置したキーデータの差分データの範囲を狭めるディバイド−アップ演算、または正数領域に位置したキーデータの差分データの範囲を狭めるディバイド−ダウン演算を行い、符号化されるべき差分データの範囲を狭めるＤＮＤ演算を行うことを特徴とする請求項２５に記載の符号化装置。
【請求項２７】
前記キーヘッダ符号化器は、
前記入力されたキーデータから符号化すべきキーデータの数及びキーデータの桁数を入力され、
前記量子化器から量子化ビットのサイズ、及び量子化に用いられた最大値及び最小値のうち少なくとも一つを入力され、
前記線形キー符号化器から線形キー符号化された線形キー領域の存否及び線形キーデータの数を入力され、
前記実数変換部から線形キー領域の開始キーデータ及び終了キーデータを入力され、
前記ＤＰＣＭ処理部からＤＰＣＭ遂行回数であるＤＰＣＭ次数及び各次数のイントラキーデータを入力され、
前記シフト部から前記モード値を入力され、
前記ＤＮＤ処理部から前記ＤＮＤ演算を行った回数であるＤＮＤ次数及びＤＮＤ演算に用いられた最大値及び最小値を入力されてキーヘッダに含めることを特徴とする請求項１９に記載の符号化装置。
【請求項２８】
キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化装置であって、
入力された全体キーデータのうちキーデータが線形に増える領域を識別して符号化する線形キー符号化器と、
前記線形キー符号化器から入力され、且つ、２進数の体系で表わされた線形キー領域の開始キーデータ及び終了キーデータを１０進数の体系の実数に変換する実数変換部と、
前記全体キーデータのうち前記線形キー領域が除かれたキーデータを入力され、入力されたキーデータを所定の量子化ビットで量子化する量子化器と、
前記量子化されたキーデータに所定の演算を行ってエントロピ符号化するエントロピ符号化部と、
前記線形キー符号化器から線形キーデータ領域に含まれるキーデータの数を入力され、前記実数変換部から変換された線形キー領域の開始キーデータ及び終了キーデータを入力されてキーヘッダとして符号化するキーヘッダ符号化器と、を備えることを特徴とする符号化装置。
【請求項２９】
量子化誤差が最小化可能に前記量子化器に入力されるキーデータの最大値及び最小値を調整して前記量子化器に出力する量子化誤差最小化部をさらに備え、前記量子化器は、前記量子化誤差最小化部から入力された最大値及び最小値を用いて入力されたキーデータを所定の量子化ビットで量子化することを特徴とする請求項２８に記載の符号化装置。
【請求項３０】
キーフレームの時間軸上の位置情報であるキーデータにＤＰＣＭが行われた差分データに対してＤＮＤ演算を行って符号化したビットストリームを復号化する復号化装置であって、
前記入力されたビットストリームをエントロピ復号化するエントロピ復号化器と、
復号化された差分データがシフト−アップ演算の行われた差分データである場合にシフト−ダウン演算を行い、復号化された差分データをＤＮＤ演算された差分データに復元して出力し、そうでなければ、復号化された差分データをバイパスする逆シフト−アップ演算部と、
前記逆シフト−アップ演算部から入力された差方データに対し、前記ビットストリームから読み込まれたＤＮＤ次数だけ逆ＤＮＤ演算を行う逆ＤＮＤ演算部と、を備えることを特徴とする復号化装置。
【請求項３１】
前記シフト−ダウン演算は、
前記エントロピ復号化された差分データが前記ビットストリームから読み込まれたＤＮＤ演算された差分データの最大値より大きければ、前記ＤＮＤ演算された差分データの最大値から前記エントロピ復号化された差分データを引くことを特徴とする請求項３０に記載の復号化装置。
【請求項３２】
前記逆ＤＮＤ演算部は、
逆ＤＮＤ演算を前記ＤＮＤ次数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の基準値より小さければ、逆ディバイド−アップ演算を行って差分データの範囲を広め、
前記逆ディバイド−アップ演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが負の奇数であれば、ｎＫｅｙＭａｘから前記差分データを所定の第１の定数で割った値及び所定の第２の定数値を引き、当該逆ＤＮＤ次数における差分データが負の偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項３０に記載の復号化装置。
【請求項３３】
前記逆ＤＮＤ演算部は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じでなければ、逆ディバイド−ダウン演算を行って差分データの範囲を広め、
前記逆ディバイド−ダウン演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さい奇数であれば、ｎＫｅｙＭａｘに前記差分データを所定の第１の定数で割った値及び所定の第２の定数を加え、当該逆ＤＮＤ次数における差分データが前記第２の基準値より小さい偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項３０に記載の復号化装置。
【請求項３４】
前記逆ＤＮＤ演算部は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じであれば、逆ディバイド演算を行って差分データの範囲を広め、
前記逆ディバイド演算は、当該逆ＤＮＤ演算の次数に対応するＤＮＤ演算の次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さければ、前記差分データにｎＫｅｙＭａｘ及び所定の定数を加えることを特徴とする請求項３０に記載の復号化装置。
【請求項３５】
キーフレームに基づくグラフィックアニメーション方式において、キーフレームの時間軸上の位置情報であるキーデータに対して量子化及び所定次数のＤＰＣＭ演算を行った後、差分データの範囲を狭めるシフト演算、フォルド演算、及び所定次数のＤＮＤ演算のうち少なくとも一つの演算を行って符号化したビットストリームを復号化する復号化装置であって、
入力されたビットストリームをエントロピ復号化し、復号化された差分データを出力するエントロピ復号化器と、
前記ビットストリームから読み込まれたＤＮＤ次数に応じて前記エントロピ復号化された差分データに対して逆ＤＮＤ演算を行うか、それともバイパスする逆ＤＮＤ演算部と、
前記逆ＤＮＤ演算部から差分データを入力され、前記ＤＮＤ次数に応じて差分データの範囲を負数及び正数に分離する逆フォルド演算を行うか、それともバイパスする逆フォルド処理部と、
前記逆ＤＮＤ演算部または前記逆フォルド処理部から入力された差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト部と、
前記逆シフトされた差分データを復元し、量子化されたキーデータを出力する逆ＤＰＣＭ処理部と、
前記復元された量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、を備えることを特徴とする復号化装置。
【請求項３６】
前記逆フォルド処理部は、
入力された差分データが偶数である場合には前記入力された差分データを所定の第１の定数で割り、前記入力された差分データが奇数である場合には前記入力された差分データに所定の第２の定数を加えた値を前記第１の定数と同値を有して符号が反対である定数で割ることを特徴とする請求項３５に記載の復号化装置。
【請求項３７】
前記逆ＤＮＤ演算部は、
逆ＤＮＤ演算を前記ＤＮＤ次数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の基準値より小さければ、逆ディバイド−アップ演算を行って差分データの範囲を広め、
前記逆ディバイド−アップ演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが負の奇数であれば、ｎＫｅｙＭａｘから前記差分データを所定の第１の定数で割った値及び所定の第２の定数値を引き、当該逆ＤＮＤ次数における差分データが負の偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項３５に記載の復号化装置。
【請求項３８】
前記逆ＤＮＤ演算部は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じでなければ、逆ディバイド−ダウン演算を行って差分データの範囲を広め、
前記逆ディバイド−ダウン演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さい奇数であれば、ｎＫｅｙＭａｘに前記差分データを所定の第１の定数で割った値及び所定の第２の定数を加え、当該逆ＤＮＤ次数における差分データが前記第２の基準値より小さい偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項３５に記載の復号化装置。
【請求項３９】
前記逆ＤＮＤ演算部は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じであれば、逆ディバイド演算を行って差分データの範囲を広め、
前記逆ディバイド演算は、当該逆ＤＮＤ演算の次数に対応するＤＮＤ演算の次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さければ、前記差分データにｎＫｅｙＭａｘ及び所定の定数を加えることを特徴とする請求項３５に記載の復号化装置。
【請求項４０】
キーフレームの時間軸上の位置情報であるキーデータに対して量子化及び所定次数のＤＰＣＭ演算を行った後、差分データの範囲を狭めるシフト演算、所定次数のＤＮＤ演算及びＤＮＤ演算された差分データに対するシフト−アップのうち少なくとも一つの演算を行って符号化したビットストリームを復号化する復号化装置であって、
入力されたビットストリームをエントロピ復号化し、復号化された差分データを出力するエントロピ復号化器と、
前記ビットストリームから読み込まれたＤＮＤ次数に応じて前記エントロピ復号化された差分データに逆ＤＮＤ演算を行うか、それともバイパスする逆ＤＮＤ処理部と、
前記逆ＤＮＤ処理部から入力された差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト部と、
前記逆シフトされた差分データを復元し、量子化されたキーデータを出力する逆ＤＰＣＭ処理部と、
前記復元された量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、を備えることを特徴とする復号化装置。
【請求項４１】
キーフレームの時間軸上の位置情報であるキーデータに対して量子化及び所定次数のＤＰＣＭ演算を行った後、差分データの範囲を狭めるシフト演算、フォルド演算、及び所定次数のＤＮＤ演算のうち少なくとも一つの演算を行って符号化したビットストリームを復号化する復号化装置であって、
入力されたビットストリームをエントロピ復号化し、復号化された差分データを出力するエントロピ復号化器と、
前記ビットストリームから読み込まれたＤＮＤ次数に応じて前記エントロピ復号化された差分データに対して逆ＤＮＤ演算を行うか、それともバイパスする逆ＤＮＤ処理部と、
前記逆ＤＮＤ処理部から差分データを入力され、前記ＤＮＤ次数に応じて差分データの範囲を負数及び正数に分離する逆フォルド演算を行うか、それともバイパスする逆フォルド処理部と、
前記逆ＤＮＤ処理部または前記逆フォルド処理部から入力された差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト部と、
前記逆シフトされた差分データを復元し、量子化されたキーデータを出力する逆ＤＰＣＭ処理部と、
前記復元された量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、
１０進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記逆量子化器において用いられる最大値及び最小値とを前記ビットストリームから抽出して２進数体系に変換して出力する実数逆変換部と、
前記実数逆変換部から線形キー領域の開始キーデータ及び終了キーデータを入力され、線形キーデータを復号化して前記逆量子化器から出力されたキーデータに加える線形キー復号化器と、を備えることを特徴とする復号化装置。
【請求項４２】
前記符号化されたキーデータの復号化に必要なヘッダ情報を前記ビットストリームから復号化し、前記エントロピ復号化器、前記逆ＤＮＤ処理部、前記逆シフト部、及び前記逆ＤＰＣＭ処理部及び前記逆量子化器のうち少なくとも一つにヘッダ情報を与えるキーヘッダ復号化器をさらに備えることを特徴とする請求項４１に記載の復号化装置。
【請求項４３】
前記逆ＤＮＤ処理部は、
前記キーデータを符号化する時にＤＮＤ演算された差分データを正数または負数に変換するシフト−アップ演算が行われたならば、シフト−ダウン演算を行ってシフト−アップ演算された差分データを復元し、
前記シフト−ダウン演算は、前記エントロピ復号化された差分データがＤＮＤ演算された差分データの最大値より大きければ、前記ＤＮＤ演算された差分データの最大値から前記エントロピ復号化された差分データを引くことを特徴とする請求項４１に記載の復号化装置。
【請求項４４】
前記逆ＤＮＤ処理部は、
逆ＤＮＤ演算を前記ＤＮＤ次数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の基準値より小さければ、逆ディバイド−アップ演算を行って差分データの範囲を広め、
前記逆ディバイド−アップ演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが負の奇数であれば、ｎＫｅｙＭａｘから前記差分データを所定の第１の定数で割った値及び所定の第２の定数値を引き、当該逆ＤＮＤ次数における差分データが負の偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項４１に記載の復号化装置。
【請求項４５】
前記逆ＤＮＤ処理部は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じでなければ、逆ディバイド−ダウン演算を行って差分データの範囲を広め、
前記逆ディバイド−ダウン演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さい奇数であれば、ｎＫｅｙＭａｘに前記差分データを所定の第１の定数で割った値及び所定の第２の定数を加え、当該逆ＤＮＤ次数における差分データが前記第２の基準値より小さい偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項４１に記載の復号化装置。
【請求項４６】
前記逆ＤＮＤ処理部は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じであれば、逆ディバイド演算を行って差分データの範囲を広め、
前記逆ディバイド演算は、当該逆ＤＮＤ演算の次数に対応するＤＮＤ演算の次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さければ、前記差分データにｎＫｅｙＭａｘ及び所定の定数を加えることを特徴とする請求項４１に記載の復号化装置。
【請求項４７】
前記逆ＤＮＤ処理部は、前記ＤＮＤ次数をチェックし、前記ＤＮＤ次数が入力された差分データに対してＤＮＤ演算が行われていない旨を示せば、入力された差分データを前記逆フォルド処理部に出力し、前記ＤＮＤ次数が入力された差分データに対してＤＮＤ演算及びフォルド演算が行われていない旨を示せば、入力された差分データを前記逆シフト部に出力することを特徴とする請求項４１に記載の復号化装置。
【請求項４８】
前記逆フォルド処理部は
入力された差分データが偶数である場合には、前記入力された差分データを所定の第１の定数で割り、前記入力された差分データが奇数である場合には、前記入力された差分データに所定の第２の定数を加えた値を前記第１の定数と同値を有して符号が反対である定数で割ることを特徴とする請求項４１に記載の復号化装置。
【請求項４９】
前記逆量子化器は、
前記実数逆変換部から入力され、且つ、前記キーデータを量子化する時に用いられた最大値と最小値との差を所定の量子化ステップサイズで割った値に前記逆ＤＰＣＭ処理部から入力された量子化されたキーデータをかけて前記最小値を加えて逆量子化することを特徴とする請求項４１に記載の復号化装置。
【請求項５０】
キーフレームの時間軸上の位置情報であるキーデータを符号化したビットストリームを復号化する復号化装置であって、
入力されたビットストリームから符号化されたキーデータの復号化に必要なキーヘッダ情報を復号化するキーヘッダ復号化器と、
前記ビットストリームをエントロピ復号化して量子化されたキーデータを出力するエントロピ復号化部と、
１０進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記キーヘッダ復号化器から入力され、２進数の体系に変換して出力する実数逆変換部と、
前記最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、
前記実数逆変換部から線形キー領域の開始キーデータ及び終了キーデータを入力され、線形キーデータを復号化して前記逆量子化器から出力されたキーデータに加える線形キー復号化器と、を備えることを特徴とする復号化装置。
【請求項５１】
キーフレームの時間軸上の位置情報であるキーデータを符号化して復号化する装置であって、
入力されたキーデータを所定の量子化ビットで量子化する量子化器と、前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理部と、前記差分データに所定の演算を行い、前記差分データの範囲を狭める範囲縮小部と、前記範囲縮小部から入力された差分データを符号化してビットストリームを生成するエントロピ符号化器と、を備える符号化装置と、
入力されたビットストリームをエントロピ復号化し、復号化された差分データを出力するエントロピ復号化器と、前記復号化された差分データに所定の演算を行って差分データの範囲を広める範囲拡張部と、前記範囲拡張部から入力された差分データを復元して量子化されたキーデータを出力する逆ＤＰＣＭ処理部と、前記復元された量子化されたキーデータを逆量子化して復号化されたキーデータを出力する逆量子化器と、を備える復号化装置と、を備えることを特徴とするキーデータ符号化及び復号化装置。
【請求項５２】
キーフレームの時間軸上の位置情報であるキーデータに対してＤＰＣＭが行われた差分データを符号化する方法であって、
符号化すべき差分データの正数側の範囲及び負数側の範囲に応じて、正数側の範囲を半分に分け、上位範囲に位置する差分データを負数に変換するディバイド演算、または負数領域に位置した差分データの範囲を狭めるディバイド−アップ演算を選択的に行った後、演算の行われた差分データの範囲に応じて、前記ディバイド−アップ演算または正数領域に位置した差分データの範囲を狭めるディバイド−ダウン演算を行い、差分データの範囲を狭めるＤＮＤ演算を所定回数行ってＤＮＤ演算された差分データを生成するＤＮＤ演算段階と、
前記ＤＮＤ演算された差分データに対して差分データの範囲を正数領域または負数領域に移動させるシフト−アップ演算を行ってシフト−アップ演算された差分データを生成するシフト−アップ演算段階と、
前記ＤＮＤ演算された差分データまたは前記シフト−アップ演算された差分データを選択する差分データ選択段階と、
前記選択された差分データをエントロピ符号化するエントロピ符号化段階と、を含むことを特徴とする符号化方法。
【請求項５３】
前記差分データ選択段階は、
前記ＤＮＤ演算された差分データ及びシフト−アップ演算された差分データの散布度を各々測定し、前記散布度の小さい方の差分データを選択することを特徴とする請求項５２に記載の符号化方法。
【請求項５４】
キーフレームの時間軸上の位置情報であるキーデータに対してＤＰＣＭが行われた差分データを符号化する方法であって、
符号化すべき差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト演算を行うシフト演算段階と、
前記シフト演算されたデータを正数領域または負数領域に変換するフォルド演算を行うフォルド演算段階と、
前記フォルド演算された差分データと前記フォルド演算された差分データの最大値及び最小値間の関係に応じて前記フォルド演算された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト演算された差分データ、前記フォルド演算された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択するＤＮＤ処理段階と、
前記選択された差分データをエントロピ符号化するエントロピ符号化段階と、を含むことを特徴とする符号化方法。
【請求項５５】
前記フォルド演算段階は、
前記シフト演算された差分データが所定の基準値以上である場合には前記差分データに所定の第１の定数をかけ、前記差分データが前記基準値より小さい場合には前記差分データの絶対値に前記第１の定数をかけて所定の第２の定数を引くことを特徴とする請求項５４に記載の符号化方法。
【請求項５６】
前記ＤＮＤ処理段階は、
前記フォルド演算された差分データに対してＤＮＤ演算を行うＤＮＤ演算段階と、
前記シフト演算された差分データ、前記フォルド演算された差分データ及び前記ＤＮＤ演算された差分データのうちいずれか一つを選択する第１の差分データ選択段階と、
前記ＤＮＤ演算された差分データが前記第１の差分データ選択段階において選択された場合、前記ＤＮＤ演算された差分データに対してシフト−アップ演算を行うシフト−アップ演算段階と、
前記ＤＮＤ演算された差分データまたは前記シフト−アップ演算された差分データを選択する第２の差分データ選択段階と、を含むことを特徴とする請求項５４に記載の符号化方法。
【請求項５７】
前記ＤＮＤ演算段階は、
前記フォルド演算された差分データを半分に分け、上位範囲に位置する差分データは負数に変換するディバイド演算を行い、ディバイド演算が行われた差分データの範囲に応じて、負数領域に位置したキーデータの差分データの範囲を狭めるディバイド−アップ演算、または正数領域に位置したキーデータの差分データの範囲を狭めるディバイド−ダウン演算を行い、符号化されるべき差分データの範囲を狭めるＤＮＤ演算を行うことを特徴とする請求５６に記載の符号化方法。
【請求項５８】
前記ディバイド演算は、
差分データのうち選択された最大値をｎＫｅｙＭａｘとした時、差分データがｎＫｅｙＭａｘ／２より大きい場合には前記差分データから最大値を引いて所定の定数を引くことを特徴とする請求項５７に記載の符号化方法。
【請求項５９】
前記ディバイド−アップ演算は、
差分データの負数側の範囲が正数側の範囲より大きい場合、差分データのうち選択された最小値をｎＫｅｙＭｉｎとした時、差分データが所定の基準値より小さく、且つ、ｎＫｅｙＭｉｎ／２以上であれば、前記差分データに所定の第１の定数をかけ、前記差分データがｎＫｅｙＭｉｎ／２より小さければ、ｎＫｅｙＭｉｎから前記差分データを引き、前記第１の定数をかけて所定の第２の定数を引くことを特徴とする請求項５７に記載の符号化方法。
【請求項６０】
前記ディバイド−ダウン演算は、
差分データの正数側の範囲が負数側の範囲より大きい場合、差分データのうち選択された最大値をｎＫｅｙＭａｘとした時、差分データがｎＫｅｙＭａｘ／２より大きい場合には差分データからｎＫｅｙＭａｘを引き、所定の第１の定数をかけて所定の第２の定数を引き、差分データが所定の基準値より小さい場合には前記第１の定数をかけることを特徴とする請求項５７に記載の符号化方法。
【請求項６１】
前記ＤＮＤ演算段階は、
前記ＤＮＤ演算を所定回数行い、符号化に必要なビット数が最小となる回数のＤＮＤ演算された差分データをＤＮＤ演算の結果として決めることを特徴とする請求項５６に記載の符号化方法。
【請求項６２】
前記シフト−アップ演算段階は、
ｎＫｅｙＭａｘを前記ＤＮＤ演算された差分データのうち選択された最大値とした時、ＤＮＤ演算された差分データが所定の基準値より小さい場合にはｎＫｅｙＭａｘから前記ＤＮＤ演算された差分データを引くことを特徴とする請求項５６に記載の符号化方法。
【請求項６３】
前記第１の差分データ選択段階は、
前記シフト演算された差分データ、前記フォルド演算された差分データ及び前記ＤＮＤ演算された差分データのうち符号化に必要なビット数が最小となる差分データを選択することを特徴とする請求項５６に記載の符号化方法。
【請求項６４】
前記第１の差分データ選択段階において、前記シフト演算された差分データまたは前記フォルド演算された差分データが選択された場合、選択された差分データを前記エントロピ符号化段階において符号化することを特徴とする請求項５６に記載の符号化方法。
【請求項６５】
前記第２の差分データ選択段階は、
前記ＤＮＤ演算された差分データ及びシフト−アップ演算された差分データの散布度を各々測定し、前記散布度の小さい方の差分データを選択することを特徴とする請求項５６に記載の符号化方法。
【請求項６６】
キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化方法であって、
符号化すべきキーデータを所定の量子化ビットで量子化する量子化段階と、
前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理段階と、
前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト演算段階と、
前記シフト演算された差分データを正数領域または負数領域に変換するフォルド演算段階と、
前記フォルド演算された差分データと前記フォルド演算された差分データの最大値及び最小値間の関係に応じて前記フォルド演算された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト演算された差分データ、前記フォルド演算された差分データ、及び前記ＤＮＤ演算された差分データのうちいずれか一つを選択するＤＮＤ処理段階と、
前記選択された差分データを符号化するエントロピ符号化段階と、を含むことを特徴とする符号化方法。
【請求項６７】
前記ＤＮＤ処理段階は、
フォルド演算された差分データに対してＤＮＤ演算を行うＤＮＤ演算段階と、前記シフト演算された差分データ、前記フォルド演算された差分データ及び前記ＤＮＤ演算された差分データのうちいずれか一つを選択する差分データ選択段階と、を含むことを特徴とする請求項６６に記載の符号化方法。
【請求項６８】
前記ＤＮＤ演算段階は、
差分データの正数側の範囲及び負数側の範囲に応じて、正数側の範囲を半分に分け、上位範囲に位置する差分データを負数に変換するディバイド演算を行った後、演算の行われた差分データの範囲に応じて、負数領域に位置した差分データの範囲を狭めるディバイド−アップ演算または正数領域に位置した差分データの範囲を狭めるディバイド−ダウン演算を行い、差分データの範囲を狭めるＤＮＤ演算を所定回数行うことを特徴とする請求項６７に記載の符号化方法。
【請求項６９】
キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化方法であって、
符号化すべきキーデータを所定の量子化ビットで量子化する量子化段階と、
前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理段階と、
前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト演算段階と、
前記シフト演算された差分データの最大値及び最小値間の関係に応じて前記シフト演算された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト演算された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択するＤＮＤ処理段階と、
前記ＤＮＤ処理段階において選択された差分データを符号化するエントロピ符号化段階と、を含むことを特徴とする符号化方法。
【請求項７０】
キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化方法であって、
符号化すべき全体キーデータのうちキーデータが線形に増える線形キー領域を識別して符号化する線形キー符号化段階と、
２進数の体系で表わされた前記線形キー領域の開始キーデータ及び終了キーデータを１０進数の体系の実数に変換する実数変換段階と、
量子化誤差が最小化可能に量子化すべきキーデータの最大値及び最小値を調整し、２進数の体系で表わされた前記調整された最大値及び最小値を１０進数の体系の実数に変換する量子化誤差最小化段階と、
前記量子化誤差最小化段階において調整された最大値及び最小値を用い、キーデータを所定の量子化ビットで量子化する量子化段階と、
前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理段階と、
前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト演算段階と、
前記シフト演算された差分データを正数領域または負数領域に変換するフォルド演算段階と、
前記フォルド演算された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト演算された差分データ、前記フォルド演算された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択するＤＮＤ処理段階と、
前記ＤＮＤ処理段階において選択された差分データを符号化するエントロピ符号化段階と、
前記線形キー符号化段階、量子化段階、実数変換段階、ＤＰＣＭ処理段階、シフト演算段階、フォルド演算段階、ＤＮＤ処理段階及び前記エントロピ符号化段階のうち少なくとも一つの段階において生成された復号化に必要なデータを、キーヘッダとして生成するキーヘッダ符号化段階と、を含むことを特徴とする符号化方法。
【請求項７１】
前記線形キー符号化段階は、
任意のキーデータ領域において線形に予測されたキーデータと実際のキーデータとの最大誤差が所定の臨界値以下であれば、前記領域を類似線形として判定することを特徴とする請求項７０に記載の符号化方法。
【請求項７２】
前記量子化段階は、
量子化すべきキーデータのうち選択された最大値及び最小値を用い、量子化すべき各キーデータを所定範囲の値に変換し、前記変換された値を所定の量子化ビットで量子化することを特徴とする請求項７０に記載の符号化方法。
【請求項７３】
前記量子化誤差最小化段階は、
任意の最大値及び最小値を用いて量子化すべきキーデータを所定範囲の値に変換し、前記変換された値を所定の量子化ビットで量子化し、前記量子化されたキーデータを逆量子化した後、量子化すべきキーデータと前記逆量子化されたキーデータとの誤差の和が最小となる前記任意の最大値及び最小値を求めることを特徴とする請求項７０に記載の符号化方法。
【請求項７４】
前記実数変換段階は、
ｍａｎｔｉｓｓａ＿ｂｉｎａｒｙ＊２ｅｘｐｏｎｅｎｔ＿ｂｉｎａｒｙの形で表わされた２進数の体系の実数をｍａｎｔｉｓｓａ＊１０ｅｘｐｏｎｅｎｔの形の１０進数の体系の実数に変換することを特徴とする請求項７０に記載の符号化方法。
【請求項７５】
前記フォルド演算段階は、
前記シフト演算された差分データが所定の基準値以上である場合には、前記差分データに所定の第１の定数をかけ、前記差分データが前記基準値より小さい場合には、前記差分データの絶対値に前記第１の定数をかけて所定の第２の定数を引くことを特徴とする請求項７０に記載の符号化方法。
【請求項７６】
前記ＤＮＤ処理段階は、
フォルド演算された差分データに対してＤＮＤ演算を行うＤＮＤ演算段階と、前記シフト演算された差分データ、前記フォルド演算された差分データ及び前記ＤＮＤ演算された差分データのうちいずれか一つを選択する第１の差分データ選択段階と、
前記ＤＮＤ演算された差分データが前記第１の差分データ選択段階において選択された場合、前記ＤＮＤ演算された差分データに対してシフト−アップ演算を行うシフト−アップ演算段階と、
前記ＤＮＤ演算された差分データまたは前記シフト−アップ演算された差分データを選択する第２の差分データ選択段階と、を含むことを特徴とする請求項７０に記載の符号化方法。
【請求項７７】
前記ＤＮＤ演算段階は、
前記フォルド演算されたキーデータの差分データを半分に分け、上位範囲に位置する差分データは負数に変換するディバイド演算を行い、ディバイド演算が行われた後の差分データの範囲に応じて、負数領域に位置したキーデータの差分データの範囲を狭めるディバイド−アップ演算、または正数領域に位置したキーデータの差分データの範囲を狭めるディバイド−ダウン演算を行い、符号化されるべき差分データの範囲を狭めるＤＮＤ演算を行うことを特徴とする請求項７６に記載の符号化方法。
【請求項７８】
前記キーヘッダ符号化段階は、
符号化すべきキーデータの数及びキーデータの桁数、量子化ビットのサイズ、及び量子化に用いられた最大値及び最小値、線形キー符号化された線形キー領域の存否及び線形キーデータの数、線形キー領域の開始キーデータ及び終了キーデータ、ＤＰＣＭ遂行回数であるＤＰＣＭ次数及び各次数のイントラキーデータ、前記モード値、前記ＤＮＤ演算を行った回数であるＤＮＤ次数及びＤＮＤ演算に用いられた最大値及び最小値のうち少なくとも一つをキーヘッダに含めることを特徴とする請求項７０に記載の符号化方法。
【請求項７９】
キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化方法であって、
符号化すべき全体キーデータのうちキーデータが線形に増える線形キー領域を識別して符号化する線形キー符号化段階と、
２進数の体系で表わされた前記線形キー領域の開始キーデータ及び終了キーデータを１０進数の体系の実数に変換する実数変換段階と、
前記全体キーデータのうち前記線形キー領域が除かれたキーデータを所定の量子化ビットで量子化する量子化段階と、
前記量子化されたキーデータに所定の演算を行ってエントロピ符号化するエントロピ符号化段階と、
前記線形キー領域に含まれるキーデータの数、及び前記変換された線形キー領域の開始キーデータ及び終了キーデータをキーヘッダとして符号化するキーヘッダ符号化段階と、を含むことを特徴とする符号化方法。
【請求項８０】
前記量子化段階は、
量子化誤差が最小化可能に前記量子化すべきキーデータの最大値及び最小値を調整する量子化誤差最小化段階をさらに含み、前記量子化誤差最小化段階において調整された前記最大値及び最小値を用いて量子化すべきキーデータを所定の量子化ビットで量子化することを特徴とする請求項７９に記載の符号化方法。
【請求項８１】
キーフレームの時間軸上の位置情報であるキーデータにＤＰＣＭが行われた差分データに対してＤＮＤ演算を行って符号化したビットストリームを復号化する復号化方法であって、
前記復号化すべきビットストリームをエントロピ復号化するエントロピ復号化段階と、
前記復号化された差分データがシフト−アップ演算の行われた差分データである場合、前記復号化された差分データに対してシフト−ダウン演算を行い、復号化された差分データをＤＮＤ演算された差分データに復元する逆シフト−アップ演算段階と、
前記復号化された差分データがシフト−アップ演算の行われた差分データである場合には、前記シフト−ダウン演算の行われた差分データに対して前記ビットストリームから読み込まれたＤＮＤ次数だけ逆ＤＮＤ演算を行い、前記復号化された差分データがシフト−アップ演算の行われていない差分データである場合には、前記復号化された差分データに対して前記ＤＮＤ次数だけ逆ＤＮＤ演算を行う逆ＤＮＤ演算段階と、を含むことを特徴とする復号化方法。
【請求項８２】
前記シフト−ダウン演算は、
前記エントロピ復号化された差分データが前記ビットストリームから読み込まれたＤＮＤ演算された差分データの最大値より大きければ、前記ＤＮＤ演算された差分データの最大値から前記エントロピ復号化された差分データを引くことを特徴とする請求項８１に記載の復号化方法。
【請求項８３】
前記逆ＤＮＤ演算段階は、
逆ＤＮＤ演算を前記ＤＮＤ次数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の基準値より小さければ、逆ディバイド−アップ演算を行って差分データの範囲を広め、
前記逆ディバイド−アップ演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが負の奇数であれば、ｎＫｅｙＭａｘから前記差分データを所定の第１の定数で割った値及び所定の第２の定数値を引き、当該逆ＤＮＤ次数における差分データが負の偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項８１に記載の復号化方法。
【請求項８４】
前記逆ＤＮＤ演算段階は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じでなければ、逆ディバイド−ダウン演算を行って差分データの範囲を広め、
前記逆ディバイド−ダウン演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さい奇数であれば、ｎＫｅｙＭａｘに前記差分データを所定の第１の定数で割った値及び所定の第２の定数を加え、当該逆ＤＮＤ次数における差分データが前記第２の基準値より小さい偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項８１に記載の復号化方法。
【請求項８５】
前記逆ＤＮＤ演算段階は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じであれば、逆ディバイド演算を行って差分データの範囲を広め、
前記逆ディバイド演算は、当該逆ＤＮＤ演算の次数に対応するＤＮＤ演算の次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さければ、前記差分データにｎＫｅｙＭａｘ及び所定の定数を加えることを特徴とする請求項８１に記載の復号化方法。
【請求項８６】
キーフレームの時間軸上の位置情報であるキーデータに対して量子化及び所定次数のＤＰＣＭ演算を行った後、差分データの範囲を狭めるシフト演算、フォルド演算、及び所定次数のＤＮＤ演算のうち少なくとも一つの演算を行って符号化したビットストリームを復号化する復号化方法であって、
（ａ）前記ビットストリームをエントロピ復号化し、復号化された差分データを生成するエントロピ復号化段階と、
（ｂ）差分データに対して逆ＤＮＤ演算を行う逆ＤＮＤ演算段階と、
（ｃ）差分データの範囲を負数及び正数に分離する逆フォルド演算を行う逆フォルド演算段階と、
（ｄ）差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト演算段階と、
（ｅ）前記逆シフト演算された差分データを復元し、量子化されたキーデータを生成する逆ＤＰＣＭ処理段階と、
（ｆ）前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、を含み、
前記ビットストリームから読み込まれたＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｃ）段階を行い、前記ＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算及びフォルド演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｄ）段階を行うことを特徴とする復号化方法。
【請求項８７】
前記逆フォルド演算段階は、
差分データが偶数である場合には前記差分データを所定の第１の定数で割り、前記差分データが奇数である場合には前記差分データに所定の第２の定数を加えた値を前記第１の定数と同値を有して符号が反対である定数で割ることを特徴とする請求項８６に記載の復号化方法。
【請求項８８】
前記逆ＤＮＤ演算段階は、
逆ＤＮＤ演算を前記ＤＮＤ次数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の基準値より小さければ、逆ディバイド−アップ演算を行って差分データの範囲を広め、
前記逆ディバイド−アップ演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが負の奇数であれば、ｎＫｅｙＭａｘから前記差分データを所定の第１の定数で割った値及び所定の第２の定数値を引き、当該逆ＤＮＤ次数における差分データが負の偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項８６に記載の復号化方法。
【請求項８９】
前記逆ＤＮＤ演算段階は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じでなければ、逆ディバイド−ダウン演算を行って差分データの範囲を広め、
前記逆ディバイド−ダウン演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さい奇数であれば、ｎＫｅｙＭａｘに前記差分データを所定の第１の定数で割った値及び所定の第２の定数を加え、当該逆ＤＮＤ次数における差分データが前記第２の基準値より小さい偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項８６に記載の復号化方法。
【請求項９０】
前記逆ＤＮＤ演算段階は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じであれば、逆ディバイド演算を行って差分データの範囲を広め、
前記逆ディバイド演算は、当該逆ＤＮＤ演算の次数に対応するＤＮＤ演算の次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さければ、前記差分データにｎＫｅｙＭａｘ及び所定の定数を加えることを特徴とする請求項８６に記載の復号化方法。
【請求項９１】
キーフレームの時間軸上の位置情報であるキーデータに対して量子化及び所定次数のＤＰＣＭ演算を行った後、差分データの範囲を狭めるシフト演算、所定次数のＤＮＤ演算及びＤＮＤ演算された差分データに対するシフト−アップのうち少なくとも一つの演算を行って符号化したビットストリームを復号化する復号化方法であって、
（ａ）前記ビットストリームをエントロピ復号化し、復号化された差分データを生成するエントロピ復号化段階と、
（ｂ）差分データに対して逆ＤＮＤ演算を行う逆ＤＮＤ処理段階と、
（ｃ）差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト演算段階と、
（ｄ）前記逆シフト演算された差分データを復元し、量子化されたキーデータを生成する逆ＤＰＣＭ処理段階と、
（ｅ）前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、を含み、
前記ビットストリームから読み込まれたＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｃ）段階を行うことを特徴とする復号化方法。
【請求項９２】
キーフレームの時間軸上の位置情報であるキーデータに対して量子化及び所定次数のＤＰＣＭ演算を行った後、差分データの範囲を狭めるシフト演算、フォルド演算、及び所定次数のＤＮＤ演算のうち少なくとも一つの演算を行って符号化したビットストリームを復号化する復号化方法であって、
（ａ）前記ビットストリームをエントロピ復号化し、復号化された差分データを生成するエントロピ復号化段階と、
（ｂ）差分データに対して逆ＤＮＤ演算を行う逆ＤＮＤ処理段階と、
（ｃ）差分データの範囲を負数及び正数に分離する逆フォルド演算を行う逆フォルド演算段階と、
（ｄ）差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト演算段階と、
（ｅ）前記逆シフト演算された差分データを復元し、量子化されたキーデータを生成する逆ＤＰＣＭ処理段階と、
（ｆ）１０進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記ビットストリームから抽出して２進数の体系に変換する実数逆変換段階と、
（ｇ）前記実数逆変換段階において変換された最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、
（ｈ）前記線形キー領域の開始キーデータ及び終了キーデータを用いて線形キーデータを復号化し、前記逆量子化されたキーデータに加える線形キー復号化段階と、を含み、
前記ビットストリームから読み込まれたＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｃ）段階を行い、前記ＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算及びフォルド演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｄ）段階を行うことを特徴とする復号化方法。
【請求項９３】
前記逆ＤＮＤ処理段階は、
前記キーデータを符号化する時にＤＮＤ演算された差分データを正数または負数に変換するシフト−アップ演算が行われたならば、シフト−ダウン演算を行ってＤＮＤ演算された差分データを復元し、
前記シフト−ダウン演算は、前記エントロピ復号化された差分データがＤＮＤ演算された差分データの最大値より大きければ、前記ＤＮＤ演算された差分データの最大値から前記エントロピ復号化された差分データを引くことを特徴とする請求項９２に記載の復号化方法。
【請求項９４】
前記逆ＤＮＤ処理段階は、
逆ＤＮＤ演算を前記ＤＮＤ次数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の基準値より小さければ、逆ディバイド−アップ演算を行って差分データの範囲を広め、
前記逆ディバイド−アップ演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが負の奇数であれば、ｎＫｅｙＭａｘから前記差分データを所定の第１の定数で割った値及び所定の第２の定数値を引き、当該逆ＤＮＤ次数における差分データが負の偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項９２に記載の復号化方法。
【請求項９５】
前記逆ＤＮＤ処理段階は、
逆ＤＮＤ演算を前記ＤＮＤ次数に対応する回数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じでなければ、逆ディバイド−ダウン演算を行って差分データの範囲を広め、
前記逆ディバイド−ダウン演算は、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さい奇数であれば、ｎＫｅｙＭａｘに前記差分データを所定の第１の定数で割った値及び所定の第２の定数を加え、当該逆ＤＮＤ次数における差分データが前記第２の基準値より小さい偶数であれば、前記差分データを前記第１の定数で割ることを特徴とする請求項９２に記載の復号化方法。
【請求項９６】
前記逆ＤＮＤ処理段階は、
逆ＤＮＤ演算を前記ＤＮＤ次数だけ行い、当該逆ＤＮＤ次数に対応するＤＮＤ次数における差分データの最大値が所定の第１の基準値以上であり、且つ、当該逆ＤＮＤ演算の次数が前記ＤＮＤ次数と同じであれば、逆ディバイド演算を行って差分データの範囲を広め、
前記逆ディバイド演算は、当該逆ＤＮＤ演算の次数に対応するＤＮＤ演算の次数における差分データの最大値をｎＫｅｙＭａｘとした時、当該逆ＤＮＤ次数における差分データが所定の第２の基準値より小さければ、前記差分データにｎＫｅｙＭａｘ及び所定の定数を加えることを特徴とする請求項９２に記載の復号化方法。
【請求項９７】
前記逆フォルド処理段階は、
差分データが偶数である場合には前記差分データを所定の第１の定数で割り、前記差分データが奇数である場合には前記差分データに所定の第２の定数を加えた値を前記第１の定数と同値を有して符号が反対である定数で割ることを特徴とする請求項９２に記載の復号化方法。
【請求項９８】
前記逆量子化段階は、
前記実数逆変換段階において求められた最大値と最小値との差を所定の量子化ステップサイズで割った値に前記逆ＤＰＣＭ処理段階において生成された量子化されたキーデータをかけ、前記最小値を加えて逆量子化することを特徴とする請求項９２に記載の復号化方法。
【請求項９９】
キーフレームの時間軸上の位置情報であるキーデータを符号化したビットストリームを復号化する復号化方法であって、
前記ビットストリームから符号化されたキーデータの復号化に必要なキーヘッダ情報を復号化するキーヘッダ復号化段階と、
前記ビットストリームをエントロピ復号化し、量子化されたキーデータを生成するエントロピ復号化段階と、
１０進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記キーヘッダ復号化器から入力されて２進数の体系に変換する実数逆変換段階と、
前記最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、
前記線形キー領域の開始キーデータ及び終了キーデータを用いて線形キーデータを復号化し、前記逆量子化されたキーデータに加える線形キー復号化段階と、を含むことを特徴とする復号化方法。
【請求項１００】
請求項５４に記載の符号化方法をコンピュータにて読取り可能で且つ実行可能なプログラムコードにて記録した記録媒体。
【請求項１０１】
請求項７０に記載の符号化方法をコンピュータにて読取り可能で且つ、実行可能なプログラムコードにて記録した記録媒体。
【請求項１０２】
請求項８１に記載の復号化方法をコンピュータにて読取り可能で且つ、実行可能なプログラムコードにて記録した記録媒体。
【請求項１０３】
請求項８６に記載の復号化方法をコンピュータにて読取り可能で且つ、実行可能なプログラムコードにて記録した記録媒体。
【請求項１０４】
請求項９２に記載の復号化方法をコンピュータにて読取り可能で且つ、実行可能なプログラムコードにて記録した記録媒体。
【請求項１０５】
請求項９９に記載の復号化方法をコンピュータにて読取り可能で且つ、実行可能なプログラムコードにて記録した記録媒体。
【請求項１０６】
キーフレームに基づくグラフィックアニメーション方式において、キーフレームの時間軸上の位置情報であるキーデータを符号化したビットストリームであって、
入力された量子化されるべきキーデータの数及び量子化に用いられた量子化ビット数、及び前記量子化ビット数で量子化されたキーデータの最大値及び最小値を含むキーデータ量子化情報と、前記量子化ビット数で量子化されたキーデータに対して行われて差分データを生成するＤＰＣＭ演算の回数を示すＤＰＣＭ演算次数、及び前記各ＤＰＣＭ演算次数のイントラキーデータを含むＤＰＣＭ演算情報と、前記キーデータの差分データを所定のシフトモードだけ移動させて差分データの範囲を狭めるシフト演算に用いられた前記シフトモードと、前記シフト演算が行われてフォルド演算が行われた差分データの範囲を狭めるＤＮＤ演算が行われた回数を示すＤＮＤ演算次数、前記各ＤＮＤ次数でＤＮＤ演算された差分データの最大値及び最小値、ＤＮＤ演算が行われた差分データに対してシフトアップ演算が行われたか否かを示すフラグと、を含むＤＮＤ演算情報を含むキーヘッダ情報と、
前記ＤＮＤ演算されたキーデータの差分データをエントロピ符号化した、符号化されたキーデータ情報と、を含むことを特徴とするビットストリーム。
【請求項１０７】
入力されたキーデータのうちキーデータが線形に増える線形キー領域の存否を示すフラグ、前記線形キー領域に含まれるキーデータの数、前記線形キー領域の開始キーデータ及び終了キーデータをさらに含むことを特徴とする請求項１０６に記載のビットストリーム。
【請求項１０８】
前記開始キーデータの及び終了キーデータは、１０進数の仮数及び指数で表わされることを特徴とする請求項１０７に記載のビットストリーム。
【請求項１０９】
前記量子化されたキーデータの最大値及び最小値は、量子化されたキーデータの量子化誤差を最小化する量子化されたキーデータの最大値及び最小値であることを特徴とする請求項１０６に記載のビットストリーム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はキーデータを符号化して復号化する装置及び方法に関する。
【０００２】
具体的に、本発明は、キーデータに対してＤＰＣＭを行って差分データを生成し、差分データの範囲を狭める所定の演算を行って符号化されるべき差分データの範囲を狭めることにより、キーデータの符号化効率を高める符号化方法及び装置と、符号化されたキーデータを復号化する方法及び装置とに関する。
【０００３】
【従来の技術】
３次元表現技法は、３次元コンピュータゲームやコンピュータシステムの仮想現実環境においてひろく用いられている。３次元アニメーションを表わす手段としては、仮想現実モデリング言語（ＶＲＭＬ）がある。
【０００４】
ＶＲＭＬ及びＭＰＥＧ−４のＢＩＦＳ（Ｂｉｎａｒｙ　Ｆｏｒｍａｔ　ｆｏｒ　Ｓｃｅｎｅ）は、キーフレーミング方式に基づくアニメーション表現方式を支援する。このアニメーション表現方式では、所定のキーフレームが任意の時間軸上において決められ、各キーフレーム間のアニメーションデータは線形補間法により補間される。この方式において用いられるキーフレームは、インタポレータノードにより定義され、インタポレータノードは、与えられた範囲（−∞〜＋∞）の実数（ｆｌｏａｔｉｎｇ　ｐｏｉｎｔ　ｎｕｍｂｅｒ）値として表わされ、キーフレームの時間軸上の位置を示すキーデータと、該当キーにおいてキーフレームの属性及び動き情報などを示すキー値データとによりフィールドを構成する。
【０００５】
一方、区分（ｐｉｅｃｅｗｉｓｅ）線形補間特性を有するキーフレーミング方法により実際に動く物体と類似したスムーズなアニメーションを具現するためには、インタポレータノードを通じて相当のキーフレーム情報が供給されなければならず、これは、コスト面及び効率面で深刻な問題を招く。キーフレーミング方法がオフライン上において用いられる時、莫大な量の３次元アニメーションデータを記憶するための大容量の記憶機器が必要である。キーフレーミング方法がオンライン上において用いられる時には、大容量の記憶装置だけではなく、サーバから端末機へと３次元アニメーション情報を伝送するために高速の大容量の伝送線路が要され、伝送エラーが生じる可能性が高まるに伴い、データの信頼性も落ちてしまう。このため、インタポレータノードデータの量を減らし得る効率的な圧縮及び符号化方法が望まれる。
【０００６】
ＭＰＥＧ−４のＢＩＦＳは、アニメーションデータを符号化するための２種の方法を提案する。一つは、量子化だけでアニメーションデータを符号化するＢＩＦＳ−Ｑ方式であり、他の一つは、予測ＭＦフィールド符号化（ＰＭＦＣ）方法と呼ばれる、データの差を符号化するＤＰＣＭ方法である。ＢＩＦＳ−Ｑは、量子化だけを用いるため、効率的な符号化方法であるとは言えず、ＰＭＦＣは、ＤＰＣＭを行った後にデータ冗長性を減らすエントロピ符号化を行うので、ＢＩＦＳ−Ｑより効率的である。キーに対するＰＭＦＣの符号化及び復号化器が図１に示してある。しかし、ＰＭＦＣは、エントロピ符号化に先立ってＤＰＣＭのみを行うだけであって、キーの性質や相関関係を全く考慮しないため、アニメーションデータの符号化の上であまり効率的ではない。
【０００７】
図１を参照すれば、入力キーデータ１０５は、インタポレータノードから符号化装置１００に入力される。量子化器１１０は、入力キーデータを受け取り、データを整数値で量子化する。ＤＰＣＭプロセッサ１１５は、量子化されたキーデータを受け取って差分データを生成する。エントロピ符号化器１２０は、差分データを受け取り、シンボル発生の可能性に対してビット間冗長性を除去し、圧縮されたビットストリーム１２５を生じる。図１の符号化装置１００により生じたビットストリーム１２５は、符号化装置１５０のエントロピ復号化器１５５に入力されてエントロピ復号化され、エントロピ復号化された差分データは、逆ＤＰＣＭプロセッサ１６０により量子化された差分データとして出力され、逆量子化器１６５は、量子化されたキーデータを入力されて逆量子化を行い、復号化されたキーデータを出力する。
【０００８】
しかしながら、前述したような構造を有する符号化装置１００は、キーの性質を考慮しておらず、エントロピ符号化に先立ってＤＰＣＭのみを行う。このため、高い圧縮率の効率的な符号化が達成し難い。
【０００９】
【発明が解決しようとする課題】
本発明が解決しようとする第１の技術的な課題は、キーデータの性質を考慮してデータ冗長性を除去することにより、高効率のアニメーションキーデータの圧縮が可能な符号化装置及び方法を提供するところにある。
【００１０】
本発明が解決しようとする第２の技術的な課題は、前記符号化装置及び方法により符号化されたビットストリームを復号化する装置及び方法を提供するところにある。
【００１１】
【課題を解決するための手段】
前記技術的な課題を達成するために、本発明の符号化装置は、入力された差分データの正数側の範囲及び負数側の範囲に応じて、正数側の範囲を半分に分け、上位範囲に位置する差分データを負数に変換するディバイド演算を行った後、演算の行われた差分データの範囲に応じて、負数領域に位置した差分データの範囲を狭める前記ディバイド−アップ演算または正数領域に位置した差分データの範囲を狭めるディバイド−ダウン演算を行い、入力された差分データの範囲を狭めるＤＮＤ演算を所定回数行うＤＮＤ演算部と、前記ＤＮＤ演算された差分データに対して差分データの範囲を正数側または負数側に移動させるシフト−アップ演算を行うシフト−アップ演算部と、前記ＤＮＤ演算された差分データまたは前記シフト−アップ演算された差分データを選択的に出力する差分データ選択部と、前記差分データ選択部において選択された差分データをエントロピ符号化するエントロピ符号化器と、を備える。
【００１２】
また、前記技術的課題を達成するために、本発明の他の符号化装置は、　前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト部と、前記差分データを正数領域または負数領域に変換するフォルド処理部と、前記変換された差分データと、前記変換された差分データの最大値及び最小値間の関係に応じて前記変換された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト部から入力された差分データ、前記フォルド処理部から入力された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択して出力するＤＮＤ処理部と、前記ＤＮＤ処理部から入力された差分データを符号化するエントロピ符号化器と、を備える。
【００１３】
また、前記技術的課題を達成するために、本発明の他の符号化装置は、　入力されたキーデータを所定の量子化ビットで量子化する量子化器と、前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理部と、前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト部と、前記差分データを正数領域または負数領域に変換するフォルド処理部と、前記変換された差分データと、前記変換された差分データの最大値及び最小値間の関係に応じて前記変換された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト部から入力された差分データ、前記フォルド処理部から入力された差分データ、及びＤＮＤ演算された差分データのうちいずれか一つを選択して出力するＤＮＤ処理部と、前記ＤＮＤ処理部から入力された差分データを符号化するエントロピ符号化器と、を備える。
【００１４】
また、前記技術的課題を達成するために、本発明の他の符号化装置は、入力されたキーデータを所定の量子化ビットで量子化する量子化器と、前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理部と、前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト部と、前記シフトされた差分データの最大値及び最小値間の関係に応じて前記シフトされた差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト部から入力された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択して出力するＤＮＤ処理部と、前記ＤＮＤ処理部から入力された差分データを符号化するエントロピ符号化器と、を備える。
【００１５】
また、前記技術的課題を達成するために、本発明の他の符号化装置は、入力される全体キーデータのうちキーデータが線形に増える領域を識別して符号化する線形キー符号化器と、量子化誤差が最小化可能に入力されたキーデータの最大値及び最小値を調整して出力する量子化誤差最小化部と、前記量子化誤差最小化部から入力された最大値及び最小値を用い、入力されたキーデータを所定の量子化ビットで量子化する量子化器と、前記線形キー符号化器から入力され、且つ、２進数の体系で表わされた線形キー領域の開始キーデータ及び終了キーデータ、及び前記量子化誤差最小化部から入力され、且つ、２進数の体系で表わされた最大値及び最小値を１０進数の体系の実数に変換する実数変換部と、前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理部と、前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト部と、前記差分データを正数領域または負数領域に変換するフォルド処理部と、前記変換された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト部から入力された差分データ、前記フォルド処理部から入力された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択して出力するＤＮＤ処理部と、前記ＤＮＤ処理部から入力された差分データを符号化するエントロピ符号化器と、前記線形キー符号化器、量子化器、実数変換部、ＤＰＣＭ処理部、シフト部、フォルド処理部、ＤＮＤ処理部及び前記エントロピ符号化器のうち少なくとも一つから復号化に必要なデータを入力され、キーヘッダデータを生成するキーヘッダ符号化器と、を備える。
【００１６】
また、前記技術的課題を達成するために、本発明の他の符号化装置は、入力された全体キーデータのうちキーデータが線形に増える領域を識別して符号化する線形キー符号化器と、前記線形キー符号化器から入力され、且つ、２進数の体系で表わされた線形キー領域の開始キーデータ及び終了キーデータを１０進数の体系の実数に変換する実数変換部と、前記全体キーデータのうち前記線形キー領域が除かれたキーデータを入力され、入力されたキーデータを所定の量子化ビットで量子化する量子化器と、前記量子化されたキーデータに所定の演算を行ってエントロピ符号化するエントロピ符号化部と、前記線形キー符号化器から線形キーデータ領域に含まれるキーデータの数を入力され、前記実数変換部から変換された線形キー領域の開始キーデータ及び終了キーデータを入力されてキーヘッダとして符号化するキーヘッダ符号化器と、を備える。
【００１７】
一方、前記技術的課題を達成するために、本発明の復号化装置は、前記入力されたビットストリームをエントロピ復号化するエントロピ復号化器と、復号化された差分データがシフト−アップ演算の行われた差分データである場合にシフト−ダウン演算を行い、復号化された差分データをＤＮＤ演算された差分データに復元して出力し、そうでなければ、復号化された差分データをバイパスする逆シフト−アップ演算部と、前記逆シフト−アップ演算部から入力された差方データに対し、前記ビットストリームから読み込まれたＤＮＤ次数だけ逆ＤＮＤ演算を行う逆ＤＮＤ演算部と、を備える。
【００１８】
また、前記技術的課題を達成するために、本発明の他の復号化装置は、入力されたビットストリームをエントロピ復号化し、復号化された差分データを出力するエントロピ復号化器と、前記ビットストリームから読み込まれたＤＮＤ次数に応じて前記エントロピ復号化された差分データに対して逆ＤＮＤ演算を行うか、それともバイパスする逆ＤＮＤ演算部と、前記逆ＤＮＤ演算部から差分データを入力され、前記ＤＮＤ次数に応じて差分データの範囲を負数及び正数に分離する逆フォルド演算を行うか、それともバイパスする逆フォルド処理部と、前記逆ＤＮＤ演算部または前記逆フォルド処理部から入力された差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト部と、前記逆シフトされた差分データを復元し、量子化されたキーデータを出力する逆ＤＰＣＭ処理部と、前記復元された量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、を備える。
【００１９】
また、前記技術的課題を達成するために、本発明の他の復号化装置は、入力されたビットストリームをエントロピ復号化し、復号化された差分データを出力するエントロピ復号化器と、前記ビットストリームから読み込まれたＤＮＤ次数に応じて前記エントロピ復号化された差分データに逆ＤＮＤ演算を行うか、それともバイパスする逆ＤＮＤ処理部と、前記逆ＤＮＤ処理部から入力された差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト部と、前記逆シフトされた差分データを復元し、量子化されたキーデータを出力する逆ＤＰＣＭ処理部と、前記復元された量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、を備える。
【００２０】
また、前記技術的課題を達成するために、本発明の他の復号化装置は、入力されたビットストリームをエントロピ復号化し、復号化された差分データを出力するエントロピ復号化器と、前記ビットストリームから読み込まれたＤＮＤ次数に応じて前記エントロピ復号化された差分データに対して逆ＤＮＤ演算を行うか、それともバイパスする逆ＤＮＤ処理部と、前記逆ＤＮＤ処理部から差分データを入力され、前記ＤＮＤ次数に応じて差分データの範囲を負数及び正数に分離する逆フォルド演算を行うか、それともバイパスする逆フォルド処理部と、前記逆ＤＮＤ処理部または前記逆フォルド処理部から入力された差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト部と、前記逆シフトされた差分データを復元し、量子化されたキーデータを出力する逆ＤＰＣＭ処理部と、前記復元された量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、１０進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記逆量子化器において用いられる最大値及び最小値とを前記ビットストリームから抽出して２進数体系に変換して出力する実数逆変換部と、前記実数逆変換部から線形キー領域の開始キーデータ及び終了キーデータを入力され、線形キーデータを復号化して前記逆量子化器から出力されたキーデータに加える線形キー復号化器と、を備える。
【００２１】
前記技術的課題を達成するために、本発明の他の復号化装置は、入力されたビットストリームから符号化されたキーデータの復号化に必要なキーヘッダ情報を復号化するキーヘッダ復号化器と、前記ビットストリームをエントロピ復号化して量子化されたキーデータを出力するエントロピ復号化部と、１０進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記キーヘッダ復号化器から入力され、２進数の体系に変換して出力する実数逆変換部と、前記最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、前記実数逆変換部から線形キー領域の開始キーデータ及び終了キーデータを入力され、線形キーデータを復号化して前記逆量子化器から出力されたキーデータに加える線形キー復号化器と、を備える。
【００２２】
一方、前記技術的課題を達成するために、本発明の符号化方法は、符号化すべき差分データの正数側の範囲及び負数側の範囲に応じて、正数側の範囲を半分に分け、上位範囲に位置する差分データを負数に変換するディバイド演算、または負数領域に位置した差分データの範囲を狭めるディバイド−アップ演算を選択的に行った後、演算の行われた差分データの範囲に応じて、前記ディバイド−アップ演算または正数領域に位置した差分データの範囲を狭めるディバイド−ダウン演算を行い、差分データの範囲を狭めるＤＮＤ演算を所定回数行ってＤＮＤ演算された差分データを生成するＤＮＤ演算段階と、前記ＤＮＤ演算された差分データに対して差分データの範囲を正数領域または負数領域に移動させるシフト−アップ演算を行ってシフト−アップ演算された差分データを生成するシフト−アップ演算段階と、前記ＤＮＤ演算された差分データまたは前記シフト−アップ演算された差分データを選択する差分データ選択段階と、前記選択された差分データをエントロピ符号化するエントロピ符号化段階と、を含む。
【００２３】
また、前記技術的課題を達成するために、本発明の他の符号化方法は、符号化すべき差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト演算を行うシフト演算段階と、前記シフト演算されたデータを正数領域または負数領域に変換するフォルド演算を行うフォルド演算段階と、前記フォルド演算された差分データと前記フォルド演算された差分データの最大値及び最小値間の関係に応じて前記フォルド演算された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト演算された差分データ、前記フォルド演算された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択するＤＮＤ処理段階と、前記選択された差分データをエントロピ符号化するエントロピ符号化段階と、を含む。
【００２４】
また、前記技術的課題を達成するために、本発明の他の符号化方法は、符号化すべきキーデータを所定の量子化ビットで量子化する量子化段階と、前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理段階と、前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト演算段階と、前記シフト演算された差分データを正数領域または負数領域に変換するフォルド演算段階と、前記フォルド演算された差分データと前記フォルド演算された差分データの最大値及び最小値間の関係に応じて前記フォルド演算された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト演算された差分データ、前記フォルド演算された差分データ、及び前記ＤＮＤ演算された差分データのうちいずれか一つを選択するＤＮＤ処理段階と、前記選択された差分データを符号化するエントロピ符号化段階と、を含む。
【００２５】
また、前記技術的課題を達成するために、本発明の他の符号化方法は、符号化すべき全体キーデータのうちキーデータが線形に増える線形キー領域を識別して符号化する線形キー符号化段階と、２進数の体系で表わされた前記線形キー領域の開始キーデータ及び終了キーデータを１０進数の体系の実数に変換する実数変換段階と、量子化誤差が最小化可能に量子化すべきキーデータの最大値及び最小値を調整し、２進数の体系で表わされた前記調整された最大値及び最小値を１０進数の体系の実数に変換する量子化誤差最小化段階と、前記量子化誤差最小化段階において調整された最大値及び最小値を用い、キーデータを所定の量子化ビットで量子化する量子化段階と、前記量子化されたキーデータの差分データを生成するＤＰＣＭ処理段階と、前記差分データのうち頻度数が最も高い差分データ（モード）を求め、前記差分データから前記モードを引くシフト演算段階と、前記シフト演算された差分データを正数領域または負数領域に変換するフォルド演算段階と、前記フォルド演算された差分データの範囲を狭めるＤＮＤ演算を行い、前記シフト演算された差分データ、前記フォルド演算された差分データ、ＤＮＤ演算された差分データ、及び前記ＤＮＤ演算された差分データに対してシフト−アップ演算の行われた差分データのうちいずれか一つを選択するＤＮＤ処理段階と、前記ＤＮＤ処理段階において選択された差分データを符号化するエントロピ符号化段階と、前記線形キー符号化段階、量子化段階、実数変換段階、ＤＰＣＭ処理段階、シフト演算段階、フォルド演算段階、ＤＮＤ処理段階及び前記エントロピ符号化段階のうち少なくとも一つの段階において生成された復号化に必要なデータを、キーヘッダとして生成するキーヘッダ符号化段階と、を含む。
【００２６】
また、前記技術的課題を達成するために、本発明の他の符号化方法は、符号化すべき全体キーデータのうちキーデータが線形に増える線形キー領域を識別して符号化する線形キー符号化段階と、２進数の体系で表わされた前記線形キー領域の開始キーデータ及び終了キーデータを１０進数の体系の実数に変換する実数変換段階と、前記全体キーデータのうち前記線形キー領域が除かれたキーデータを所定の量子化ビットで量子化する量子化段階と、前記量子化されたキーデータに所定の演算を行ってエントロピ符号化するエントロピ符号化段階と、前記線形キー領域に含まれるキーデータの数、及び前記変換された線形キー領域の開始キーデータ及び終了キーデータをキーヘッダとして符号化するキーヘッダ符号化段階と、を含む。
【００２７】
一方、前記技術的課題を達成するために、本発明の復号化方法は、前記復号化すべきビットストリームをエントロピ復号化するエントロピ復号化段階と、前記復号化された差分データがシフト−アップ演算の行われた差分データである場合、前記復号化された差分データに対してシフト−ダウン演算を行い、復号化された差分データをＤＮＤ演算された差分データに復元する逆シフト−アップ演算段階と、前記復号化された差分データがシフト−アップ演算の行われた差分データである場合には、前記シフト−ダウン演算の行われた差分データに対して前記ビットストリームから読み込まれたＤＮＤ次数だけ逆ＤＮＤ演算を行い、前記復号化された差分データがシフト−アップ演算の行われていない差分データである場合には、前記復号化された差分データに対して前記ＤＮＤ次数だけ逆ＤＮＤ演算を行う逆ＤＮＤ演算段階と、を含む。
【００２８】
また、前記技術的課題を達成するために、本発明の他の復号化方法は、（ａ）前記ビットストリームをエントロピ復号化し、復号化された差分データを生成するエントロピ復号化段階と、（ｂ）差分データに対して逆ＤＮＤ演算を行う逆ＤＮＤ演算段階と、（ｃ）差分データの範囲を負数及び正数に分離する逆フォルド演算を行う逆フォルド演算段階と、（ｄ）差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト演算段階と、（ｅ）前記逆シフト演算された差分データを復元し、量子化されたキーデータを生成する逆ＤＰＣＭ処理段階と、（ｆ）前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、を含み、前記ビットストリームから読み込まれたＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｃ）段階を行い、前記ＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算及びフォルド演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｄ）段階を行う。
【００２９】
また、前記技術的課題を達成するために、本発明の他の復号化方法は、（ａ）前記ビットストリームをエントロピ復号化し、復号化された差分データを生成するエントロピ復号化段階と、（ｂ）差分データに対して逆ＤＮＤ演算を行う逆ＤＮＤ処理段階と、（ｃ）差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト演算段階と、（ｄ）前記逆シフト演算された差分データを復元し、量子化されたキーデータを生成する逆ＤＰＣＭ処理段階と、（ｅ）前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、を含み、前記ビットストリームから読み込まれたＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｃ）段階を行う。
【００３０】
また、前記技術的課題を達成するために、本発明の他の復号化方法は、（ａ）前記ビットストリームをエントロピ復号化し、復号化された差分データを生成するエントロピ復号化段階と、（ｂ）差分データに対して逆ＤＮＤ演算を行う逆ＤＮＤ処理段階と、（ｃ）差分データの範囲を負数及び正数に分離する逆フォルド演算を行う逆フォルド演算段階と、（ｄ）差分データに所定のモードを加えて差分データの範囲を移動させる逆シフト演算段階と、（ｅ）前記逆シフト演算された差分データを復元し、量子化されたキーデータを生成する逆ＤＰＣＭ処理段階と、（ｆ）１０進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記ビットストリームから抽出して２進数の体系に変換する実数逆変換段階と、（ｇ）前記実数逆変換段階において変換された最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、（ｈ）前記線形キー領域の開始キーデータ及び終了キーデータを用いて線形キーデータを復号化し、前記逆量子化されたキーデータに加える線形キー復号化段階と、を含み、前記ビットストリームから読み込まれたＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｃ）段階を行い、前記ＤＮＤ次数が、前記エントロピ符号化された差分データがＤＮＤ演算及びフォルド演算の行われていない差分データである旨を示せば、前記（ａ）段階後に前記（ｄ）段階を行う。
【００３１】
また、前記技術的課題を達成するために、本発明の他の復号化方法は、前記ビットストリームから符号化されたキーデータの復号化に必要なキーヘッダ情報を復号化するキーヘッダ復号化段階と、前記ビットストリームをエントロピ復号化し、量子化されたキーデータを生成するエントロピ復号化段階と、１０進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記キーヘッダ復号化器から入力されて２進数の体系に変換する実数逆変換段階と、前記最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、前記線形キー領域の開始キーデータ及び終了キーデータを用いて線形キーデータを復号化し、前記逆量子化されたキーデータに加える線形キー復号化段階と、を含む。
【００３２】
本発明は、キーデータを符号化するに際し、キーデータの性質を用いるために、まず、キーデータの散布度を測定する。上述したように、キーデータは、時間軸上のキーフレームの位置を示すため、最初のキーフレームを示すキーデータから最後のキーフレームを示すキーデータまでキーデータ値は単調増加する。このため、第１次のＤＰＣＭを行った後の差分データはいずれも正数値を有し、第２次のＤＰＣＭを行った後には正数値または負数値を有する。
【００３３】
一般に、キーデータの最大値と最小値との間の範囲が狭いほど重なる値が多くなり、重なる値が多いほどエントロピ符号化器の圧縮率が高まる。このような性質を用いた本発明の符号化方法は、キーデータの範囲を狭めた後にエントロピ符号化を行う。キーデータの範囲を狭めるために、最小散布度を生成するＤＰＣＭ及びＤＮＤ次数、及び該当次数における演算結果が用いられる。キーデータの散布度が小さいほどキーデータ冗長性が高まる。
【００３４】
【発明の実施の形態】
以下、添付した図面に基づき、本発明の好ましい実施の形態を説明する。
【００３５】
図２は、本発明の好ましい実施の形態による符号化器の構成を示す図である。
【００３６】
本発明の符号化器は、キーヘッダ符号化器２７０及びキーデータ符号化器を備える。また、キーデータ符号化器は、線形キー符号化器２００、量子化器２１０、ＤＰＣＭ処理部２２０、シフト部２３０、フォルド処理部２４０、ＤＮＤ処理部２５０及びエントロピ符号化器２６０を備える。
【００３７】
線形キー符号化器２００は、全体のキーデータの範囲においてキーデータが線形に増える領域を識別して符号化する。量子化器２１０は、量子化誤差を最小化する方法を用いて入力されたキーデータを量子化する。ＤＰＣＭ処理部２２０は、量子化されたキーデータを受け取り、キーデータの差分データを生成する。シフト部２３０は、全ての差分データから頻度数が最も高い差分データを引く。フォルド処理部２４０は、全ての差分データを正数の領域または負数の領域に移動させる。ＤＮＤ処理部２５０は、ディバイド、ディバイド−アップ、及びディバイド−ダウンの３種の演算を選択的に行ってキーデータの差分データの範囲を狭める。キーデータに対するエントロピ符号化器２６０は、ビットプレイン単位に差分データを符号化するＳｉｇｎｅｄＡＡＣ及びＵｎｓｉｇｎｅｄＡＡＣ関数を用いて差分データを符号化する。
【００３８】
以下、図９及び図１０をさらに参照し、本発明の好ましい実施の形態によるキーデータ符号化方法を説明する。図９及び図１０は、本発明のキーデータ符号化方法を示すフローチャートである。
【００３９】
キーデータが符号化器に入力されれば、キーデータの総数及び各キーデータの桁数などの情報はキーヘッダ符号化器２７０に入力されて符号化され、入力されたキーデータは線形キー符号化器２００において線形キー領域、すなわち、一定の時間間隔をおいてキーフレームが存在してキーデータが同じ差を有し、キーデータが線形に変わる領域の存否を検索し、検索された線形領域を先に符号化する（Ｓ３０００）。
【００４０】
３Ｄｍａｘ、Ｍａｙａなどの有名な３次元アプリケーションソフトウェアは、特定の領域が一定の時間間隔を有するキーを用い、キーフレームに基づくアニメーションを生成する。この場合、線形キーデータ領域は、線形領域が始まるキーデータ、終わるキーデータ及び中間に存在するキーフレームの数さえ分かれば簡単にキーデータを符号化できるので、インタポレータにおいて特定領域のキーの符号化のために線形予測を用いることは極めて有用である。
【００４１】
線形予測に用いられる数式は、下記式１の通りである。
【００４２】
【数１】
2004007380.tif 000003
【００４３】
ここで、ｔＳは部分的に線形である領域が始まるキーのデータを示し、ｔＥは、部分的に線形である領域が終わるキーのデータを示し、Ｓは、ｔＳのインデックスを、Ｅは、ｔＥのインデックスを各々示す。第Ｓ番目のキーデータ及び第Ｅ番目のキーデータに対応する特定の領域において前記式１により線形的に予測されたキーデータと実際のキーデータとの誤差は、下記式２により計算できる。
【００４４】
【数２】
2004007380.tif 000004
【００４５】
もし、前記式２により計算された誤差値のうち最大誤差値が所定の臨界値以下であれば、ｔｉは［ｔＳ，ｔＥ］区間及び所定の誤差内において類似線形であると言える。最大誤差値及び特定の領域が類似線形であるか否かは、下記式３により決められる。
【００４６】
【数３】
2004007380.tif 000005
【００４７】
もし、
2004007380.tif 000006
であれば、ｔｉは、［ｔＳ，ｔＥ］区間において類似線形である。ここで、ｎＢｉｔｓは符号化に用いられる符号化ビット数を示す。
【００４８】
線形キー符号化器２００は、部分的に線形である領域を見つけると、領域の開始点のキーデータ及び終了点のキーデータは実数変換部２０５に出力し、線形キー領域に含まれるキーの数はキーヘッダ符号化器２７０に出力して符号化する。このように、線形符号化を用いることにより、符号化するデータの量を大いに低減できるということが分かる。開始キーデータ及び終了キーデータは、実数変換部２０５において後述する実数変換過程により符号化される。
【００４９】
実数変換部２０５は、開始キーデータ及び終了キーデータを符号化するために２進数の体系で表わされたキーデータを１０進数の体系に変換する。
【００５０】
コンピュータは、実数を３２ビットの２進数の形で記憶する。実数が２進数の形で与えられれば、実数変換部２０５は、実数を１０進数の体系の仮数及び指数に変換する。すなわち、下記式４のように変換される。
【００５１】
【数４】
2004007380.tif 000007
【００５２】
例えば、実数１２．３４をコンピュータにて２進数の形で表わせば、下記の通りである。
2004007380.tif 000008
１：　符号
２：　２進数の体系における仮数
３：　２進数の体系における指数
【００５３】
この数を前記式４により１０進数で表わせば、下記の通りである。
2004007380.tif 000009
１：　符号
２：　１０進数の体系における仮数
３：　１０進数の体系における指数
【００５４】
１０進数の体系の仮数及び指数をビットストリームに含めるためには、各々が必要とするビット数を計算しなければならない。まず、指数は−３８〜３８の範囲の値を有するため、指数は符号を含んで７ビットで表わせる。また、仮数は、桁数に応じて必要なビットの数が決められる。仮数の値及びこれに必要なビット数（但し、符号ビットは除く。）を下記表１に示す。
【００５５】
【表１】
2004007380.tif 000010
【００５６】
一方、前記のような過程により検索されて変換された線形キー領域の開始キーデータ及び終了キーデータは、図１１及び図１２に示されたような符号化過程により符号化され、キーヘッダ符号化器２７０に出力されてビットストリームに記憶される。
【００５７】
図１１及び図１２は、実数変換部２０５が入力された２つの実数を符号化する過程を示す。図１１及び図１２を参照し、実数変換部２０５が変換された実数を符号化する過程を説明する。
【００５８】
実数変換部２０５は、線形キー符号化器２００から元のキーデータの桁数（ｏｒｉｇｉｎａｌ　ｋｅｙ　ｄｉｇｉｔ）Ｋｄ、線形領域が始まるキーデータ（Ｓｔａｒｔ　ｋｅｙ）Ｓ、線形領域が終わるキーデータ（ｅｎｄ　ｋｅｙ）Ｅを入力され、前記式４によりキーデータを変換する（Ｓ３０４０）。
【００５９】
実数変換部２０５は、まず、Ｓを符号化するが、Ｓの桁数がＫｄと異なるかを判断し、桁数が異なれば、Ｓの桁数を求めてキーヘッダ符号化器２７０に出力する（Ｓ３０４２）。この時、実数変換部２０５は、ｄｉｇｉｔ（）関数を用いてＳの桁数を求める。
【００６０】
その後、実数変換部２０５は、Ｓの桁数が７より大きければ、所定のビット数を本発明では、ＩＥＥＥ標準７５４のｆｌｏａｔｉｎｇ−ｐｏｉｎｔ　ｎｕｍｂｅｒ方式により３２ビットを用い、Ｓの桁数がビットストリームに含まれるようにキーヘッダ符号化器２７０に出力する（Ｓ３０４３）。
【００６１】
一方、Ｓの桁数が０でなくて７より小さければ、実数変換部２０５は、Ｓの符号をキーヘッダ符号化器２７０に出力し（Ｓ３０４４）、Ｓの仮数の絶対値の符号化に必要なビット数を前記表１から求め、求められたビット数として仮数の絶対値をキーヘッダ符号化器２７０に出力する（Ｓ３０４５）。その後、Ｓの指数を求め、符号をキーヘッダ符号化器２７０に出力し、指数を所定のビット数として本発明の実施の形態では６ビットとしてキーヘッダ符号化器２７０に出力する（Ｓ３０４６）。このように、キーデータの変換により、ビットストリームに含まれるビット数は大幅に減る。
【００６２】
一方、Ｓの桁数が０であれば、開始キーデータの符号化過程は終わり、終了キーデータを変換するための過程へ進む。なぜならば、桁数が０であれば、実数は０を意味するため、それ以上の符号化過程が不要であるからである。
【００６３】
実数変換部２０５は、開始キーデータを変換して符号化した後に終了キーデータＥを変換する。Ｅの変換は、Ｓの変換と同じ過程を繰り返すが、単に、Ｅの指数がＳの指数と同じ値を有するか否かを判別し（Ｓ３０４７）、両値が同じであれば、これを示すフラグビットのみをキーヘッダ符号化器２７０に出力し、両値が相異なれば、フラグビット及びＥの指数をＳの指数と同じ方式によりキーヘッダ符号化器２７０に出力する（Ｓ３０４８）。
【００６４】
一方、入力キーデータにおいて線形領域を除いたキーデータは量子化器２１０に入力され、所定の量子化ビットサイズであるｎＫｅｙＱｂｉｔにより量子化される。
【００６５】
しかしながら、復号化器において量子化されたキーデータを復号化して用いる時には、元のキーデータと量子化されたキーデータとの誤差により元のキーデータが完全に復元できない。したがって、本発明の量子化器２１０は、単に入力されるキーデータから最大値及び最小値を求め、求められた値を用いて量子化可能であるだけではなく、量子化誤差最小化部２１５を含んで、量子化誤差が最小化可能に修正された最大値及び最小値を用いて量子化できる。
【００６６】
量子化誤差最小化部２１５は、量子化誤差を最小化するために入力されたデータに対して予め量子化及び逆量子化を行い、量子化の誤差が最小となる量子化の範囲を制御する方法を用いる（Ｓ３１００）。
【００６７】
具体的に説明すれば、固定された量子化に用いられる最大値をＭａｘとし、調節される量子化に用いられる最小値をＭｉｎとした時、Ｘｉを入力値、ｎＱｕａｎｔＢｉｔを量子化に用いられるビットとした時、
2004007380.tif 000011
は、各々下記式５により計算する。
【００６８】
【数５】
2004007380.tif 000012
【００６９】
誤差の和ｅｉを減らす方法には２種類があるが、一つは誤差の和が最小となるまでＭｉｎ値を調節することであり、他の一つは、下記の通りである。
【００７０】
まず、ΔＸが入力データの基本ステップサイズであり、ｎが任意の整数であり、ｉが０平均乱数ノイズであるとした時、入力キーデータシーケンスＸｉをＸｉ＝（ｉ＋ｎ）ΔＸ＋εｉのように表わされる量子化された値であると仮定する。
【００７１】
その後、ｄｉ＝Ｘｉ−Ｘｉ−１＝ΔＸ＋（εｉ−εｉ−１）であるとした時、Δ’ｘ＝Ｅ［ｄｉ］であり、最小値Ｍｉｎは、Ｍａｘ−Δ’ｘ＊（２ｎＱｕａｎｔＢｉｔ−１）となる。
【００７２】
このような過程を通じて求められた量子化誤差を最小化するＭｉｎ値は、Ｍａｘ値及び量子化器２１０に入力されてキーデータの量子化に用いられる。
【００７３】
量子化誤差が最小となる最大値Ｍａｘ及び最小値Ｍｉｎを受け取った量子化器２１０は、下記式６を用いてキーデータｆＫｅｙｉの量子化を行う（Ｓ３２００）。
【００７４】
【数６】
2004007380.tif 000013
【００７５】
ここで、ｉは、量子化されたキーデータのインデックスを、ｎＱＫｅｙｉは、量子化されたデータの整数配列を、ｆＫｅｙｉは、入力キーデータとしての実数配列を、ｆＫｅｙＭａｘ及びｆＫｅｙＭｉｎは、量子化誤差最小化部２１５において受け取られた最大値Ｍａｘ及び最小値Ｍｉｎを、ｎＫｅｙＱＢｉｔは量子化ビットサイズを各々示す。一方、前記式６において用いられた関数ｆｌｏｏｒ（ｖ）は実数ｖを入力され、ｖ以下の最大整数を出力する関数である。
【００７６】
一方、本発明の量子化器２１０は、前記量子化誤差を最小化するアルゴリズムを用いず、簡単に、入力されたキーデータのうち最大値ｆＫｅｙＭａｘ及び最小値ｆＫｅｙＭｉｎを求めて量子化を行うこともできる。
【００７７】
本発明の量子化過程を示す図１３を参照し、量子化過程を詳細に説明する。
【００７８】
量子化器２１０は、キーデータを入力され（Ｓ３２１０）、量子化誤差最小化部２１５から最大値及び最小値が入力されたか否かをチェックする（Ｓ３２２０）。
【００７９】
量子化器２１０は、量子化誤差最小化部２１５から最大値Ｍａｘ及び最小値Ｍｉｎが入力されたならば、量子化に用いる最大値ｆＫｅｙＭａｘ及び最小値ｆＫｅｙＭｉｎをＭａｘ及びＭｉｎとして設定し（Ｓ３２３０）、設定された最大値及び最小値を前記実数変換部２０５に出力する。量子化に用いられる最大値及び最小値は、前記実数変換過程を通じて変換され符号化されてキーヘッダ符号化器２７０に出力されることにより、復号化に利用可能に最大値及び最小値をキーヘッダに含める。
【００８０】
量子化器２１０は、量子化誤差最小化部２１５から入力された値がなければ、入力されたキーデータのうち最初のキーデータｆＫｅｙ０を最小値ｆＫｅｙＭｉｎとして、そして最後のキーデータｆＫｅｙＮ−１を最大値ｆＫｅｙＭａｘとして設定する（Ｓ３２４０）。
【００８１】
その後、量子化器２１０は、設定された最大値が１より小さく、且つ、最小値が０より大きいか否かを判断し（Ｓ３２５０）、そうでなければ、最大値及び最小値を前記実数変換部２０５に出力し、前記過程を通じて変換して符号化した後、キーヘッダ符号化器２７０に出力して復号化に利用可能に最大値及び最小値をキーヘッダに含める（Ｓ３２６０）。
【００８２】
一方、最大値及び最小値が第Ｓ３２５０段階の条件を満足すれば、最大値及び最小値を復号化に利用可能にキーヘッダデータに含めるか否かを示すフラグをチェックする（Ｓ３２７０）。もし、フラグが最大値及び最小値をキーヘッダに含めるように設定されていれば、前記第Ｓ３２６０段階を行って最大値ｆＫｅｙＭａｘ及び最小値ｆＫｅｙＭｉｎを符号化した後にキーヘッダ符号化器２７０に出力し、そうでなければ、量子化器２１０は、最大値及び最小値をキーヘッダに含めない。
【００８３】
最大値及び最小値をキーヘッダに含めない場合は、キーデータ符号化器及びキーデータ復号化器が互いに最大値を１として、且つ、最小値を０として設定して符号化及び復号化を行うことを規約したケースに当たるため、量子化器２１０は、最小値ｆＫｅｙＭｉｎを０として、そして最大値ｆＫｅｙＭａｘを１として各々設定する（Ｓ３２８０）。このように設定された量子化に用いられる最大値及び最小値は、既に復号化器に知られているため、別途にキーヘッダに含めない。
【００８４】
一方、量子化器２１０は、前記過程を通じて設定されたｆＫｅｙＭａｘ及びｆＫｅｙＭｉｎを前記式６に代入して入力されたキーデータを量子化し、量子化されたキーデータをＤＰＣＭ処理部２２０に出力する（Ｓ３２９０）。
【００８５】
量子化されたキーデータを受け取ったＤＰＣＭ処理部２２０は、所定回数のＤＰＣＭを行って最小の散布度が生成される次数及びイントラキーデータをキーヘッダ符号化器２７０に出力し、ＤＰＣＭ演算の行われたキーデータの差分データをシフト部２３０に出力する（Ｓ３３００）。
【００８６】
以下、図１４を参照し、ＤＰＣＭ処理過程を説明する。ＤＰＣＭ処理部２２０は、入力されたキーデータに対してまず所定の回数だけＤＰＣＭ演算を行い、ＤＰＣＭが行われた回数はＤＰＣＭ次数として記憶する（Ｓ３３１０）。本発明の好ましい実施の形態では、３回のＤＰＣＭ演算を行った。
【００８７】
その後、ＤＰＣＭ処理部２２０は、各次数のＤＰＣＭ演算の結果に対して散布度を計算する（Ｓ３３２０）。この時の散布度を示す統計値として分散、標準偏差、及び四分偏差などが用いられ、本発明の好ましい実施の形態では、四分偏差が散布度として用いられる。
【００８８】
各次数のＤＰＣＭ演算の結果に対する散布度が計算されば、ＤＰＣＭ処理部２２０は、散布度が最小となるＤＰＣＭ次数及び該当次数のＤＰＣＭ結果を選択し、ＤＰＣＭ演算の結果はシフト部２３０に出力し、ＤＰＣＭ次数、各次数のイントラキーデータ及びその他のＤＰＣＭ演算において必要な情報はキーヘッダ符号化器２７０に出力する（Ｓ３３３０）。但し、本発明の好ましい実施の形態では、キーの数が５より小さければ、１次ＤＰＣＭのみを行った。例えば、１次ＤＰＣＭが行われる時には、下記式７を用いてＤＰＣＭ演算を行った。
【００８９】
【数７】
2004007380.tif 000014
【００９０】
ここで、ｉは、量子化されたキーデータのインデックスを、ｎＱＫｅｙｉは整数配列を、そしてｉは差分データを各々示す。
【００９１】
一方、ＤＰＣＭ処理部２２０は、選択されたＤＰＣＭの結果、及びＤＰＣＭされたキーデータの差分データを符号化する時に必要なビット数を計算し、所定の記憶場所（本発明の実施の形態では、ｎＱＳｔｅｐ＿ＤＰＣＭ）に記憶する（Ｓ３３４０）。但し、符号化に必要なビット数を計算する段階は、後述する符号化すべきキーデータを選択する段階において行っても良いということは当業者に取って自明である。
【００９２】
ＤＰＣＭ結果を受け取ったシフト部２３０は、入力された差分データのうち頻度数が最も高い差分データ（以下、モードと称する）を選択して全ての差分データからモードを引くことにより、符号化されるべきデータを０の周りに集中的に分布せしめて符号化に必要なビット数を減らす（Ｓ３４００）。
【００９３】
シフト演算は、量子化された全てのキーデータの差分データからモードｎＫｅｙＳｈｉｆｔを引くことにより行われる。このようなシフト演算は、下記式８で表わされる。
【００９４】
【数８】
2004007380.tif 000015
【００９５】
ｉは、量子化されたキーデータのインデックスを示し、ｎＱＫｅｙｉは、整数配列を示し、ｎＫｅｙＳｈｉｆｔは、モード値を示す。シフト演算が行われた後には、キーデータの差分データのうち頻度数が最も高い差分データは０となるので、符号化に必要なビット数を大幅に低減できる。
【００９６】
シフト演算が行われたキーデータは、フォルド処理部２４０及びＤＮＤ処理部２５０に出力され、モード値ｎＫｅｙＳｈｉｆｔは、キーヘッダ符号化器２７０に出力されてキーヘッダに含まれる。
【００９７】
シフトされたデータを受け取ったフォルド処理部２４０は、ＤＮＤ演算を行うための前処理段階としてフォルド演算を行い、フォルド演算されたキーデータをＤＮＤ処理部２５０に出力する（Ｓ３５００）。
【００９８】
フォルド演算は、０を中心として負数領域及び正数領域に様々に分布される差分データを正数領域または負数領域に集中させて差分データの範囲を狭めるためのものであり、この実施の形態では、下記式９によりフォルド演算を行って差分データの分布を正数領域に集中させた。
【００９９】
【数９】
2004007380.tif 000016
【０１００】
ここで、ｉは、量子化されたキーデータのインデックスを示し、ｎＱＫｅｙｉは、整数配列を示す。フォルド演算により、シフトされたキーデータの差分データのうち正数データは正の偶数に、負数のデータは正の奇数に各々変換される。
【０１０１】
フォルド処理部２４０は、フォルド演算が行われたデータを符号化する時に必要なビット数を計算して所定の記憶場所ｎＱＳｔｅｐ＿ｆｏｌｄに記憶する。第Ｓ３３００段階と同じく、符号化に必要なビット数の計算は、後述するエントロピ符号化する差分データを選択する段階において行っても良いということは当業者に取って自明である。一方、フォルド処理部２４０においてフォルト演算が行われたデータは、ＤＮＤ処理部２５０に出力される。
【０１０２】
ＤＮＤ処理部２５０は、エントロピ符号化の効率を高めるために、入力されたキーデータの差分データに対してＤＮＤ演算を所定の回数だけ行ってデータの範囲を狭める（Ｓ３６００）。
【０１０３】
以下、図３を参照し、ＤＮＤ処理部２５０を説明する。　ＤＮＤ処理部は、ＤＮＤ演算を行うＤＮＤ演算部２５２、符号化ビット数に応じてエントロピ符号化すべき差分データを選択する第１の差分データ選択部２５４、第１の差分データ選択部においてＤＮＤ演算の行われた差分データが選択されれば、ＤＮＤ演算の行われた差分データに対してシフト−アップ演算を行うシフト−アップ演算部２５６、及びＤＮＤ演算された差分データ及びシフト−アップ演算された差分データのうち散布度が小さい差分データを選択してエントロピ符号化器２６０に出力する第２の差分データ選択部２５８を備える。
【０１０４】
まず、ＤＮＤ演算部２５２において行われるＤＮＤ演算について説明する。
【０１０５】
フォルド演算された差分データがＤＮＤ演算部２５２に入力されれば、入力された差分データは半分に分けられ、上位範囲に位置する差分データはディバイド関数によって負数領域に移動する。ディバイド関数は、下記式１０のように定義される。
【０１０６】
【数１０】
2004007380.tif 000017
【０１０７】
ここで、ｊは、入力された差分データのインデックスであり、ｎＱＫｅｙｊは、整数配列を示し、ｎＫｅｙＭａｘは、入力されたフォルド演算された差分データのうち最大値を示す。差分データの分布が全体差分データが占める範囲の境界領域に集中している場合、ＤＮＤ演算はデータの全体領域を大幅に狭める効果がある。
【０１０８】
ディバイド演算後に散布度が計算されるが、この場合、最小限の符号化ビットサイズが選択されるように符号化に必要なビットサイズが散布度として用いられる。
【０１０９】
ディバイド演算が行われた後、ディバイド演算と類似した他のＤＮＤ演算のディバイド−アップ演算またはディバイド−ダウン演算が行われるが、行われるべき演算はディバイド演算後のデータの正数側及び負数側の範囲によって決められる。
【０１１０】
正数側の範囲の方が大きければ、下記式１１により定義されるディバイド−ダウン演算が行われる。
【０１１１】
【数１１】
2004007380.tif 000018
【０１１２】
一方、負数側の範囲の方が大きければ、下記式１２により定義されるディバイド−アップ演算が行われる。
【０１１３】
【数１２】
2004007380.tif 000019
【０１１４】
前記式において、ｊは、量子化されたキーデータのインデックスであり、ｎＱＫｅｙｊは、整数配列であり、ｎＫｅｙＭａｘは、ｎＱＫｅｙｊの最大値であり、ｎＫｅｙＭｉｎは、ｎＱＫｅｙｊの最小値である。
【０１１５】
以下、ＤＮＤ演算部２５２の演算過程を示す図１５を参照し、ＤＮＤ演算過程を説明する。
【０１１６】
ＤＮＤ演算部２５２は、フォルド処理部２４０からキーデータの差分データが入力されれば、入力された差分データのうち最大値ｎＫｅｙＭａｘ及び最小値ｎＫｅｙＭｉｎを求める（Ｓ３６１０）。その後、ＤＮＤ演算部２５２は、最大値及び最小値の絶対値を比較し（Ｓ３６２０）、最大値が最小値の絶対値以上であれば、求められた最大値を現在のＤＮＤ演算次数の最大値として設定する（Ｓ３６２２）。
【０１１７】
ＤＮＤ演算部２５２は、ＤＮＤ演算次数が１であるか否かをチェックし（Ｓ３６２４）、次数が１であれば、前記式１０に最大値ｎＫｅｙＭａｘを代入してＤＮＤ演算部２５２に入力された差分データに対してディバイド演算を行う（Ｓ３６３０）。
【０１１８】
ディバイド演算を行ったＤＮＤ演算部２５２は、符号化に必要なビットサイズを求めるための関数ｇｅｔＱＢｉｔ（）を用い、ディバイド演算を行って狭まった差分データの範囲を符号化するために必要なビットサイズを測定する（Ｓ３６４０）。その後、現在のＤＮＤ演算次数が１であれば（Ｓ３６５０）、前記値をＤＮＤ演算後に最小符号化ビットサイズを示す値ｎＱＢｉｔＤＮＤに一旦記憶し、ＤＮＤ次数を１だけインクリメントする（Ｓ３６５５）。
【０１１９】
その後、ＤＮＤ演算部２５２は、前記過程を再び行うが、第Ｓ３６２４段階において次数が１でなければ、前記式１１にｎＫｅｙＭａｘ値を代入してディバイド−ダウン演算を行う（Ｓ３６３４）。ＤＮＤ演算部２５２は、ディバイド−ダウン演算が行われた差分データの符号化に必要なビット数を計算し（Ｓ３６４０）、この値が以前の次数のＤＮＤ演算により記憶された符号化に必要な最小値ｎＱＢｉｔＤＮＤより小さければ（Ｓ３６５２）、ＤＮＤ演算後に符号化に必要な最小ビットサイズをこの値に代える（Ｓ３６５８）。
【０１２０】
一方、第Ｓ３６２０段階において、最小値の絶対値が最大値より大きければ、当該次数の最大値を入力された最小値に更新し（Ｓ３６２３）、最小値を前記式１２に代入してディバイド−アップ演算を行う（Ｓ３６３８）。その後、ＤＮＤ演算部２５２は、ディバイド−アップ演算の行われた差分データの符号化に必要なビット数を計算し（Ｓ３６４０）、この値が以前の次数のＤＮＤ演算により記憶された符号化に必要な最小値ｎＱＢｉｔＤＮＤより小さければ（Ｓ３６５２）、ＤＮＤ演算後に符号化に必要な最小ビットサイズをこの値に代える（Ｓ３６５８）。
【０１２１】
ＤＮＤ演算部２５２は、所定の回数となるまで前記過程を繰り返すが、ＤＮＤ演算を行う回数は可変的である。例えば、この実施の形態は、ＤＮＤ演算を行う回数を７回として設定した。ＤＮＤ演算演算部２５２は、符号化に必要な最小ビットサイズｎＱＢｉｔＤＮＤ及びその時のＤＮＤ演算された差分データを第１の差分データ選択部２５４に出力し、その時の次数をキーヘッダ符号化器２７０に出力してビットストリームに含める。
【０１２２】
第１の差分データ選択部２５４は、シフト演算された差分データ、フォルド演算された差分データ及びＤＮＤ演算された差分データを入力され、いかなる演算の結果をエントロピ符号化するかを決める。
【０１２３】
図９及び図１０をさらに参照すれば、第１の差分データ選択部２５４は、ＤＮＤ演算後に符号化に必要な最小ビット数ｎＱＢｉｔＤＮＤがＤＰＣＭ演算後の符号化ビットサイズｎＱＳｔｅｐ＿ＤＰＣＭ以上であれば（Ｓ３７００）、ＤＰＣＭ演算の結果を選択してシフト演算を行った後、シフトされた差分データをエントロピ符号化器２６０に出力してエントロピ符号化する（Ｓ３７１０）。この場合、ＤＮＤ次数は、−１として設定され、キーヘッダ復号化器２７０に出力されてキーヘッダに含まれる。
【０１２４】
しかし、ｎＱＢｉｔＤＮＤがＤＰＣＭ後の符号化ビットサイズより小さいものの、フォルド演算後の符号化ビットサイズ以上であれば（Ｓ３７２０）、第１の差分データ選択部２５４は、フォルド演算された差分データをエントロピ符号化器２６０に出力してエントロピ符号化する（Ｓ３７３０）。この場合、ＤＮＤ次数は、０として設定され、キーヘッダ符号化器２７０に出力されてキーヘッダに含まれる。
【０１２５】
もし、ＤＮＤ演算された後の差分データの符号化ビット数が最小であれば、第１の差分データ選択部２５４は、ＤＮＤ演算された差分データをシフト−アップ演算部２５６に出力し、シフト−アップ演算部２５６は、差分データを入力され、ＤＮＤ演算された差分データに対して第１の散布度を計算すると共に（Ｓ３７４０）、ＤＮＤ演算された差分データに対して下記式１３で定義されるシフト−アップ演算を行った後（Ｓ３８００）、シフト−アップ演算された差分データの第２の散布度を再び計算する（Ｓ３８１０）。
【０１２６】
【数１３】
2004007380.tif 000020
【０１２７】
ここで、ｊは、量子化されたキーデータの差分データのインデックスであり、ｎＱＫｅｙｊは、整数配列であり、そしてｎＫｅｙＭａｘは、差分データのうち最大値を示す。
【０１２８】
ＤＮＤ演算された差分データ及びシフト−アップ演算された差分データを入力された第２の差分データ選択部２５８は、第１の散布度及び第２の散布度を比較し（Ｓ３９００）、シフト−アップ演算後の第２の散布度がＤＮＤ演算後の第１の散布度より小さければ、シフト−アップ演算が行われた差分データをエントロピ符号化器２６０に出力してエントロピ符号化し（Ｓ３９１０）、ＤＮＤ演算に用いられた最大値ｎＫｅｙＭａｘ及び最小値ｎＫｅｙＭｉｎ、そして、シフト−アップ演算に用いられた最大値ｎＫｅｙＭａｘをキーヘッダ符号化器２７０に出力してキーヘッダに含める。
【０１２９】
しかし、ＤＮＤ演算後の第１の散布度がシフト−アップ演算後の第２の散布度より小さければ、第２の差分データ選択部２５８は、ＤＮＤ演算が行われた差分データをエントロピ符号化器２６０に出力してエントロピ符号化し（Ｓ３９２０）、ＤＮＤ演算に用いられた最大値ｎＫｅｙＭａｘ及び最小値ｎＫｅｙＭｉｎのみがキーヘッダ符号化器２７０に出力される。本発明の好ましい実施の形態では、前記第１及び第２の散布度として標準偏差を用いた。
【０１３０】
エントロピ符号化器２６０は、符号化すべき差分データの性質に応じて２種の関数演算を行って差分データを符号化する。例えば、ＤＰＣＭが行われてシフト演算が行われた差分データ及びディバイド演算が行われた差分データは、正数及び負数を共に有するため、差分データの符号を含む符号化を行い、フォルド演算された差分データ及びシフト−アップ演算された差分データは正数値のみを有するため、符号を含まない符号化を行う。
【０１３１】
本発明の好ましい実施の形態では、符号を含む符号化関数としてｅｎｃｏｄｅＳｉｇｎｅｄＡＡＣ関数を用い、符号を含まない符号化関数としてｅｎｃｏｄｅＵｎｓｉｇｎｅｄＡＡＣ関数を用いて差分データを符号化する。
【０１３２】
図１６は、ｅｎｃｏｄｅＳｉｇｎｅｄＡＡＣ関数の一例を示す図面である。図１６を参照すれば、入力値が７４であり、この値に対する符号化ビット数が８であれば、この値の符号は０であり、この値の２進数は１００１０１０となる。符号及び全てのビットプレインは下記のような過程を通じて符号化される。
【０１３３】
第１の段階：２進数をＭＳＢからＬＳＢにビットプレイン単位に符号化する。第２の段階：符号化中に現在符号化されるビットが０でないか否かをチェックする。
第３の段階：もし、最初の０ではない値であれば、２進数の現在符号化ビットを符号化した後に符号を符号化する。
第４の段階：２進数の残りのビットを符号化する。
【０１３４】
ｅｎｃｏｄｅＵｎｓｉｇｎｅｄＡＡＣ関数は、符号無き値に対するコンテキストを用いて適応算術符号化ビットストリームに符号化する。これは、符号コンテキストがあるという点を除ければ、前記ｅｎｃｏｄｅＳｉｇｎｅｄＡＡＣ関数の処理過程と類似している。
【０１３５】
図１７ないし図２６は、本発明の好ましい実施の形態による演算が行われた後のキーデータを示す図面である。図１７ないし図２６において、横軸は各キーデータのインデックスを示し、縦軸はキーデータの値を示す。
【０１３６】
図１７は、本発明の符号化器に入力された元のキーデータを示す図面である。図１７に示されたキーデータが量子化器２１０に出力されて９ビットの量子化ビットで量子化されれば、図１８に示されたように、量子化されたキーデータが得られる。量子化されたキーデータに対してＤＰＣＭを行えば、図１９のように、キーデータの差分データが得られる。
【０１３７】
その後、量子化されたキーデータの差分データを約７のモード値にシフトすれば、図２０に示されたように、キーデータの差分データが得られ、シフトされた差分データにフォルド演算を行えば、図２１に示されたように、いずれも正数に変換されたデータが得られる。
【０１３８】
フォルドされたデータにＤＮＤ演算を行ったデータを図２２ないし図２４に示す。
【０１３９】
フォルドされたデータに対してまずＤＮＤ演算のうちディバイド演算を行った後の差分データを図２２に示す。示されたように、正数側の範囲は０〜２８であり、負数側の範囲は０〜−２９であるため、負数側の範囲がより広い。したがって、図２２に示されたデータに対してディバイド−アップ演算が行われ、ディバイド−アップ演算の結果を図２３に示す。
【０１４０】
ディバイド−アップ演算によりキーデータの負数側の範囲は正数側の範囲に比べて相当狭まり、ＤＮＤの次の次数においてディバイド−アップ演算された差分データに対してディバイド−ダウン演算が行われる。図２４は、図２３の差分データに対してディバイド−ダウン演算を行った結果を示す図面である。一方、ディバイド−ダウン演算されたキーデータに対してシフト−アップ演算を行った結果を図２５に示す。
【０１４１】
前記図１７ないし図２３では、キーデータ及び差分データの範囲が次第に狭まるということが分かる。しかし、シフト−アップ演算結果を示す図２５及び図２４を比較してみれば、シフト−アップ演算後の符号化されるべき差分データの範囲がより広がったということが分かる。したがって、最終的に符号化すべきキーデータの差分データは、ディバイド−ダウン演算が行われた差分データであることが図２６から分かる。
【０１４２】
一方、キーヘッダ符号化器２７０において符号化されてキーヘッダに記憶される情報を説明する。
【０１４３】
符号化されるべきキーデータらが入力されれば、キーヘッダ符号化器２７０は、入力キーデータからキーデータの桁数及び符号化されるべきキーの総数を入力されて符号化する。その後、キーヘッダ符号化器２７０は、線形キー符号化器２００から線形キー符号化された線形キー領域の存否を示す情報及び線形キー領域のキーデータの数を入力され、実数変換部２０５から実数変換された線形キー領域の開始キーデータ及び終了キーデータを入力される。
【０１４４】
併せて、実数変換部２０５が量子化誤差最小化部２１５から量子化誤差が最小化となる最大値及び最小値を入力されて実数変換した場合には、変換された最大値及び最小値は逆量子化に利用可能に実数変換部２０５からキーヘッダ符号化器２７０に入力されてキーヘッダに含まれる。また、量子化に用いられた量子化ビットサイズもキーヘッダ符号化器２７０に入力されてキーヘッダに含まれる。
【０１４５】
また、キーヘッダ符号化器２７０は、ＤＰＣＭ処理部２２０からＤＰＣＭ演算次数及び各次数におけるイントラキーデータを入力され、シフト部２３０からシフト演算に用いられたモード値を入力され、ＤＮＤ処理部２５０からシフト−アップ演算が行われたか否か、散布度が最小となるＤＮＤ次数及び各ＤＮＤ次数における最大値及び最小値を入力される。
【０１４６】
最後に、キーヘッダ符号化器２７０は、エントロピ符号化器２６０から符号化に用いられた符号化ビット数を入力されてキーヘッダに符号化する。
【０１４７】
以上、本発明の好ましい実施の形態によるキーデータ符号化装置の一例を説明した。当該技術分野の通常の知識を有した者は、前記好ましい実施の形態による符号化装置の様々な変形実施の形態が存在するということが分かるであろう。以下、図４ないし図８を参照し、キーデータの符号化効率を高めるための好ましい実施の形態の変形実施の形態を説明する。一方、前記図２及び図３と同じ機能を行う構成要素には、同じ参照符号を使用した。
【０１４８】
図４を参照すれば、本発明の符号化装置の第２の実施の形態は、量子化器２１０、ＤＰＣＭ処理部２２０、シフト部２３０、フォルド処理部２４０、ＤＮＤ処理部２５０、及びエントロピ符号化器２６０を備える。
【０１４９】
本発明の符号化装置に入力されたキーデータは、まず、量子化器２１０に入力されて所定の量子化ビットで量子化される。量子化されたキーデータは、ＤＰＣＭ処理部２２０に入力され、ＤＰＣＭ処理部２２０は、キーデータにＤＰＣＭ演算を行って生成された差分データをシフト部２３０に出力する。シフト部２３０は、入力された差分データのうち頻度数が最も高い差分データ（モード）を求め、入力された差分データから前記モードを引くシフト演算を行ってフォルド処理部２４０に出力する。フォルド処理部２４０は、入力された差分データを正数領域または負数領域に変換してＤＮＤ処理部２５０に出力する。ＤＮＤ処理部２５０は、入力されたフォルド演算された差分データに対して前記ＤＮＤ演算を行い、シフト演算された差分データ、フォルド演算された差分データ、及びＤＮＤ演算された差分データのうち符号化に必要なビット数が最小となる差分データをエントロピ符号化器２６０に出力してキーデータを符号化することができる。この時、前記ＤＮＤ処理部２５０は、ＤＮＤ演算された差分データに対してシフト−アップ演算を行うことを省略でき、前記符号化器は、従来のキーデータ符号化装置と比較して顕著な符号化効率を示す。
【０１５０】
図５を参照すれば、本発明の符号化装置の第３の実施の形態は、量子化器２１０、ＤＰＣＭ処理部２２０、シフト部２３０、ＤＮＤ処理部２５０、及びエントロピ符号化器２６０を備える。
【０１５１】
本発明の符号化装置に入力されたキーデータは、まず、量子化器２１０に入力されて所定の量子化ビットで量子化される。量子化されたキーデータは、ＤＰＣＭ処理部２２０に入力され、ＤＰＣＭ処理部２２０は、キーデータに対してＤＰＣＭ演算を行って生成された差分データをシフト部２３０に出力する。シフト部２３０は、入力された差分データのうち頻度数が最も高い差分データ（モード）を求め、入力された差分データから前記モードを引くシフト演算を行ってＤＮＤ処理部２５０に出力する。ＤＮＤ処理部２５０は、シフトされた差分データに対して前記ＤＮＤ演算を行い、シフト演算された差分データ及びＤＮＤ演算された差分データのうち符号化に必要なビット数がより小さい差分データを選択し、ＤＮＤ演算された差分データが選択されたならば、ＤＮＤ演算された差分データに対してシフト−アップ演算を行い、ＤＮＤ演算された差分データ及びシフト−アップ演算された差分データのうち符号化に必要なビット数がより小さい差分データをエントロピ符号化器２６０に出力する。エントロピ符号化器２６０は、差分データに対してエントロピ符号化を行ってビットストリームを生成する。前記符号化器は、前記好ましい実施の形態の符号化装置においてフォルド演算過程を省略したが、前記構成だけでも従来のキーデータ符号化装置と比較して顕著な符号化効率を示す。
【０１５２】
図６を参照すれば、本発明の符号化装置の第４の実施の形態は、符号化装置にキーデータの差分データが入力される時、入力された差分データを符号化して出力する符号化装置を説明する。
【０１５３】
第４の実施の形態の符号化装置は、シフト部２３０、フォルド処理部２４０、ＤＮＤ処理部２５０、及びエントロピ符号化器２６０を備える。入力された差分データは、シフト部２３０において差分データのうち頻度数が最も高い差分データが引かれてフォルド処理部２４０に出力される。フォルド処理部２４０は、入力された差分データを正数領域または負数領域に変換してＤＮＤ処理部２５０に出力する。ＤＮＤ処理部２５０は、入力されたフォルド演算された差分データに対して前記ＤＮＤ演算を行い、シフト演算された差分データ、フォルド演算された差分データ、及びＤＮＤ演算された差分データのうち符号化に必要なビット数が最小となる差分データを選択する。ＤＮＤ処理部２５０においてシフトされた差分データまたはフォルド演算された差分データが選択された場合には、選択された差分データはエントロピ符号化器２６０に出力してキーデータを符号化することができる。一方、ＤＮＤ処理部２５０においてＤＮＤ演算された差分データを選択した場合には、ＤＮＤ演算された差分データに対してシフト−アップ演算を行い、ＤＮＤ処理部２５０は、ＤＮＤ演算された差分データ及びシフト−アップ演算された差分データのうち符号化に必要なビット数がより小さい差分データを選択してエントロピ符号化器２６０に出力する。エントロピ符号化器２６０は、入力された差分データをエントロピ符号化してビットストリームを生成する。第４の実施の形態の符号化装置もまた、従来の符号化装置と比較して高い符号化効率を示すということが分かる。
【０１５４】
図７に示された第５の実施の形態の符号化装置は、入力されたキーデータの差分データに対してＤＮＤ演算のみを行って符号化する。第５の実施の形態の符号化装置は、ＤＮＤ演算部２５２、シフト−アップ演算部２５６、差分データ選択部２５８ｂ及びエントロピ符号化器２６０を備える。
【０１５５】
入力されたキーデータの差分データは、ＤＮＤ演算部２５２において前記ＤＮＤ演算が所定回数行われてＤＮＤ演算された差分データは、シフト−アップ演算部２５６及び差分選択部に各々入力される。シフト−アップ演算部２５６は、入力されたＤＮＤ演算された差分データに対して前記シフト−アップ演算を行って差分データ選択部２５８ｂに出力し、差分データ選択部２５８ｂは、入力されたＤＮＤ演算された差分データ及びシフト−アップ演算された差分データの符号化に必要なビット数を比較して符号化に必要なビット数がより小さい差分データをエントロピ符号化器２６０に出力してキーデータのビットストリームを出力する。第５の実施の形態の符号化装置もまた、従来の符号化装置と比較して高い符号化効率を示すということが分かる。
【０１５６】
図８に示された第６の実施の形態の符号化装置は、入力差分データから線形キー領域を識別して符号化することにより、全体キーデータの符号化効率を高める符号化装置である。第６の実施の形態の符号化装置は、線形キー符号化器２００、実数変換部２０５、量子化器２１０、エントロピ符号化部２８０、及びキーヘッダ符号化器２７０を備える。
【０１５７】
キーデータが第６の実施の形態の符号化装置に入力されれば、線形キー符号化器２００は、入力されたキーデータのうちキーデータが線形に増える領域の存否を検索して線形キー領域として判断される領域の開始キーデータ及び終了キーデータを実数変換部２０５に出力し、入力キーデータのうち線形キー領域を除いたキーデータを量子化器２１０に入力する。量子化器２１０に入力されたキーデータは、所定のビットサイズで量子化されてエントロピ符号化部２８０に出力され、エントロピ符号化部２８０は、入力された量子化されたキーデータに対して所定の演算を行ってエントロピ符号化してビットストリームに出力する。
【０１５８】
一方、実数変換部２０５は、２進数の体系で表わされた線形キー領域の開始キーデータ及び終了キーデータを１０進数の体系に変換してキーヘッダ符号化器２７０に出力してビットストリームに含める。一方、第６の実施の形態は、前記量子化誤差最小化部２１５をさらに備えることもできる。
【０１５９】
図１０（ａ）及び図１０（ｂ）は、キーデータ及びキー値データを用いてアニメーションデータを符号化する過程を簡略に示す図面である。
【０１６０】
キー値のアニメーションの経路において、キー値符号化器は、近似化した経路を示す点の集合を見つける。この場合、多数のキー値がデクリメントされ、残りの点は、キー選択フラグにより表わされる。例えば、与えられたキー値曲線が図１０（ａ）の通りであり、４つの点が選択された時、キー選択フラグの配列は、図１０（ｂ）のような値を有する。そして、キー選択フラグは、エントロピ符号化器２６０により符号化され、キー選択フラグに当たるキー値データのみが符号化される。
【０１６１】
以下、図３５ないし図３９を参照し、前記符号化のためのプログラムコード及び各パラメータの意味の一例を説明する。プログラムコード及び各パラメータの意味は、ＳＤＬ言語の形で後述する。
【０１６２】
キーヘッダのプログラムコードは、図３５に示してある。図３５に示されたプログラムコードに用いられた各パラメータの意味を説明する。
【０１６３】
キーヘッダデータは、キーデータを復号化するために必要な情報である。キーヘッダの主たる情報は、キーの数、量子化ビット、イントラキーデータ、ＤＮＤヘッダ及び符号化に必要な実際のビット数である。ｎＫｅｙＱＢｉｔは、実数のキー値を復元する逆量子化に用いられる量子化ビットである。ｎＮｕｍＫｅｙＣｏｄｉｎｇＢｉｔは、キーデータの数を示すｎＮｕｍｂｅｒＯｆＫｅｙのビットサイズを示す。ｎＫｅｙＤｉｇｉｔは、元のキーデータの最大重要桁数を示し、復号化された値の切り上げに用いられる。キーヘッダに線形キー領域に関する情報が含まれた場合、ｂｌｓＬｉｎｅａｒＫｅｙＳｕｂＲｅｇｉｏｎフラグが１として設定される。この場合、全体キーに含まれる所定のキー領域に含まれたキーは、ｂｌｓＬｉｎｅａｒＫｅｙＳｕｂＲｅｇｉｏｎフラグに追従する復号化されたヘッダ情報を用いて計算できる。ｂＲａｎｇｅＦｌａｇは、キーデータの範囲が０ないし１であるか否かを示す。もし、範囲が０ないし１でなければ、最小値及び最大値はＫｅｙＭｉｎＭａｘから復号化される。ＫｅｙＭｉｎＭａｘクラスは、逆量子化のために最小値及び最大値を再構成する。各値は、仮数及び指数に分けられる。ｎＢｉｔＳｉｚｅは、ｎＱＩｎｔｒａＫｅｙのビットサイズであり、ｎＫｅｙＳｈｉｆｔは、ｎＫｅｙＭａｘの最初のビットサイズである。ｎＱＩｎｔｒａＫｅｙは、第１の量子化されたイントラデータの大きさである。これは、ｎＱＩｎｔｒａＫｅｙの符号を示すｎＱＩｎｔｒａＫｅｙＳｉｇｎと共に結合される。これは、残りの量子化されたキーデータを復元するためのベースとして用いられる。インタポレータ圧縮に用いられる全ての符号ビットにおいて、０は正数を、１は負数を各々意味する。ｎＫＤＰＣＭＯｒｄｅｒは、ＤＰＣＭ次数−１である。次数の範囲は、１ないし３である。量子化されたイントラデータの数は、ＤＰＣＭの次数と同じである。
【０１６４】
ｎｋｅｙＳｈｉｆｔは、符号ビットであるｎＫｅｙＳｈｉｆｔＳｉｇｎと共にキーデータ復号化器のシフト量を示す整数である。これら両値は、ｂＳｈｉｆｔＦｌａｇが１として設定されれば復号化される。ｎＤＮＤＯｒｄｅｒは、ＤＮＤ（Ｄｉｖｉｄｅ−ａｎｄ−Ｄｉｖｉｄｅ）の次数である。ＤＮＤは、キーデータ復号化器において説明する。もし、ｎＤＮＤＯｒｄｅｒ値が７であれば、ｂＮｏＤＮＤが復号化される。このブール値は、逆ＤＮＤが処理されるか否かを示す。ｎＫｅｙＭａｘ及びｎＫｅｙＭｉｎは、連続した逆ＤＮＤ演算中にそれぞれ用いられる最大値及び最小値である。ｎＫｅｙＣｏｄｉｎｇＢｉｔは、キーデータの符号化に用いられるビットである。ｂＳｉｇｎｅｄＡＡＣＦｌａｇは、ＡＡＣ復号化のためにいかなる復号化方法が用いられるかを示す。もし、値が０であれば、ｕｎｓｉｇｎｅｄＡＡＣ復号化が行われる。そうでなければ、ｓｉｇｎｅｄＡＡＣ復号化が行われる。ｂＫｅｙＩｎｖｅｒｔＤｏｗｎＦｌａｇは、ｎＫｅｙＩｎｖｅｒｔＤｏｗｎが用いられるのか否かを示すブール値である。ｎＫｅｙＩｎｖｅｒｔＤｏｗｎは整数値であり、これを超える全ての量子化されたキーデータを−１以下の負数値に反転させる。ｎＫｅｙＩｎｖｅｒｔＤｏｗｎが−１であれば、シフト−ダウン演算は行われない。
【０１６５】
図３６は、ＬｉｎｅａｒＫｅｙのプログラムコードを示す図面である。
【０１６６】
ＬｉｎｅａｒＫｅｙのパラメータの意味を説明すれば、ｎＮｕｍＬｉｎｅａｒＫｅｙＣｏｄｉｎｇＢｉｔは、線形に予測可能なキーの数を符号化するために必要なビットの数を示す値である。
【０１６７】
図３７は、ＫｅｙＳｅｌｅｃｔｉｏｎＦｌａｇのプログラムコードを示す図面である。
【０１６８】
ＫｅｙＳｅｌｅｃｔｉｏｎＦｌａｇに用いられたパラメータを説明すれば、ｋｅｙＦｌａｇは、ブール配列で第ｉ番目のキーのキー値が符号化されたか否かを示す。ｎＮｕｍＯｆＫｅｙＶａｌｕｅは整数値であって、復号化されるキー値の数を示す。
【０１６９】
図３８は、ＫｅｙＭｉｎＭａｘのプログラムコードを示す図面である。
【０１７０】
ＫｅｙＭｉｎＭａｘに用いられたパラメータの意味を説明すれば、まず、ｂＭｉｎＫｅｙＤｉｇｉｔＳａｍｅは、全体キーの最も高い重要桁数ｎＫｅｙＤｉｇｉｔ及びキーの最大値の最も高い重要桁数が同じであるか否かを示す。ｎＭｉｎＫｅｙＤｉｇｉｔは、キーの最大値の最も高い重要桁数を示す。ｎＭｉｎＫｅｙＭａｎｔｉｓｓａＳｉｇｎは、ｎＭｉｎＫｅｙＭａｎｔｉｓｓａの符号を示す。ｎＭｉｎＫｅｙＭａｎｔｉｓｓａは、キーの最小値の仮数をを示す。
【０１７１】
ｎＭｉｎＫｅｙＥｘｐｏｎｅｎｔＳｉｇｎは、ｎＭｉｎＫｅｙＥｘｐｏｎｅｎｔの符号を示す。ｎＭｉｎＫｅｙＥｘｐｏｎｅｎｔは、キーの最小値の指数を示す。
【０１７２】
ｆＫｅｙＭｉｎは、キーの最小値を示す。ｎＭａｘＫｅｙＤｉｇｉｔＳａｍｅは、全体キーの最も高い重要桁数ｎＫｅｙＤｉｇｉｔ及びキーの最大値の最も高い重要桁数が同じであるかを示す。ｎＭａｘＫｅｙＤｉｇｉｔは、キーの最大値の重要桁数を示す。ｎＭａｘＫｅｙＭａｎｔｉｓｓａＳｉｇｎは、ｎＭａｘＫｅｙＭａｎｔｉｓｓａの符号を示す。ｎＭａｘＫｅｙＭａｎｔｉｓｓａは、キーの最大値の仮数を示す。
【０１７３】
ｂＳａｍｅＥｘｐｏｎｅｎｔは、キーの最大値の指数がｎＭｉｎＫｅｙＥｘｐｏｎｅｎｔと同じであるかを示す。ｎＭａｘＫｅｙＥｘｐｏｎｅｎｔＳｉｇｎは、ｎＭａｘＫｅｙＥｘｐｏｎｅｎｔの符号を示す。ｎＭａｘＫｅｙＥｘｐｏｎｅｎｔは、キーの最大値の指数を示す。ｆＫｅｙＭａｘは、キーの最大値を示す。
【０１７４】
図３９は、Ｋｅｙのプログラムコードを示す図面である。
【０１７５】
Ｋｅｙに用いられたパラメータの意味を説明すれば、ｎＱＫｅｙはビットストリームから復号化される量子化されたキーデータを記憶した配列を示す。ＫｅｙＣｏｎｔｅｘｔは、ｎＱＫｅｙの大きさを読み込むのに用いられるコンテキストを意味する。ＫｅｙＳｉｇｎＣｏｎｔｅｘｔは、ｎＱＫｅｙの符号を読み込むのに用いられるコンテキストを意味する。
【０１７６】
ｄｅｃｏｄｅＵｎｓｉｇｎｅｄＡＡＣは、後述する与えられたコンテキストであって、適応的な算術符号化に対して符号無き復号化を行う関数である。ｄｅｃｏｄｅＳｉｇｎｅｄＡＡＣは、後述する与えられたコンテキストであって、適応的な算術符号化に対して符号あり復号化を行う関数である。
【０１７７】
以下、図２８及び図３３を参照し、本発明の好ましい実施の形態による復号化装置及び方法を説明する。
【０１７８】
図２８は、本発明の好ましい実施の形態による復号化装置の構成を示すブロック図である。本発明の復号化器は、符号化されたビットストリームを受け取り、復号化されたキーデータにより再構成する。
【０１７９】
本発明の復号化器は、キーヘッダ復号化器３７０及びキーデータ復号化器の２部分を備える。また、キーデータ復号化器は、エントロピ復号化器３６０、逆ＤＮＤ処理部３５０、逆フォルド処理部３４０、逆シフト部３３０、逆ＤＰＣＭ処理部３２０、逆量子化器３１０、線形キー復号化器３００及び実数逆変換部３０５を備える。
【０１８０】
図３３は、本発明の好ましい実施の形態による復号化方法を説明するフローチャートである。
【０１８１】
まず、キーデータを圧縮したビットストリームは、キーヘッダ復号化器３７０及びエントロピ復号化器３６０に入力される。
【０１８２】
キーヘッダ復号化器３７０は、各復号化段階別に必要な情報を復号化して各段階に与えるが、キーヘッダ復号化器３７０において復号化される情報は各段階ごとに説明する（Ｓ４０００）。
【０１８３】
ビットストリームを入力されたエントロピ復号化器３６０は、キーヘッダ復号化器３７０から復号化すべき差分データの数と符号化に用いられたビット数、すなわち、復号化すべきビット数を入力され、ビットストリームをエントロピ復号化する（Ｓ４１００）。この時、復号化すべき差分データの数は、与えられたキーデータの数からＤＰＣＭ演算のイントラキーデータの数だけ引いた数となる。
【０１８４】
エントロピ復号化器３６０は、ビットストリームを復号化する時、ビットストリームに含まれた所定の情報（この実施の形態では、ｂＳｉｇｎｅｄＡＡＣＦｌａｇ）に基づき符号化された差分データが負数であるか、それとも正数であるかを識別し、負数であれば、ｄｅｃｏｄｅＳｉｇｎｅｄＡＡＣ（）関数を用いて復号化し、正数であれば、ｄｅｃｏｄｅＵｎｓｉｇｎｅｄＡＡＣ（）関数を用いて復号化する。このようにして復号化された差分データは、逆ＤＮＤ処理部３５０に送られる。
【０１８５】
本発明の好ましい実施の形態において、ビットストリームを復号化するための関数を具現するプログラムコードの一例は後述する。
【０１８６】
エントロピ復号化された差分データを受け取った逆ＤＮＤ処理部３５０は、キーヘッダ復号化器３７０からＤＮＤ次数及び各ＤＮＤ次数における最大値ｎＫｅｙＭａｘを入力される。
【０１８７】
もし、ＤＮＤ次数が−１であれば、これは、符号化器がＤＮＤ演算された差分データの代わりにＤＰＣＭ演算されてシフトされた差分データをエントロピ符号化したことを示すため、逆シフト演算を行う過程へ直ちに進む。一方、ＤＮＤ次数が０であれば、これは、符号化器がＤＮＤ演算された差分データの代わりにフォルドされた差分データをエントロピ符号化したことを示すために、逆フォルド演算を行う過程へ直ちに進む。しかし、ＤＮＤ次数が０より大きければ、逆ＤＮＤ演算を行う（Ｓ４１５０）。
【０１８８】
まず、逆ＤＮＤ処理部３５０は、シフト−アップ演算の行われた差分データが符号化されたか否かを判断する（Ｓ４１７０）。本発明の好ましい実施の形態においては、ビットストリームに含まれたｎＫｅｙＩｎｖｅｒｔＤｏｗｎ値が０より大きいか否かをチェックすることにより、シフト−アップ演算の行われた差分データが符号化されたか否かを判断する。
【０１８９】
もし、シフト−アップ演算の行われていない差分データが符号化されたならば、逆ＤＮＤ処理部３５０は、逆ＤＮＤ演算を行う過程へ進む。しかし、シフト−アップ演算の行われた差分データが符号化されたならば、シフト−アップ演算により正数の領域に移動した差分データをさらに元の負数領域に戻す（Ｓ４２００）。本発明の実施の形態は、下記式１４で表わされるシフト−ダウン（以下、“インバート−ダウン”と同じ意味で使用する）演算を行ってシフト−アップ演算された差分データを復元する。
【０１９０】
【数１４】
2004007380.tif 000021
【０１９１】
ここで、ｎＫｅｙＩｎｖｅｒｔＤｏｗｎは、シフト−アップ演算における最大値ｎＫｅｙＭａｘと同じ値が用いられる。シフト−ダウン演算によりｎＫｅｙＩｎｖｅｒｔＤｏｗｎを超える差分データは−１以下の負数値に変わる。
【０１９２】
シフト−ダウン演算の行われた差分デーに対して各ＤＮＤ次数における値に応じて逆ディバイド−ダウンまたは逆ディバイド−アップ演算が選択的に行われる。
【０１９３】
図３４をさらに参照し、この逆ＤＮＤ演算過程を説明すれば、逆ＤＮＤ処理部３５０は、符号化過程において行われたＤＮＤ演算の次数の回数だけ逆ＤＮＤ演算を行う。すなわち、逆ＤＮＤ処理部３５０は、逆ＤＮＤ次数の初期値をＤＮＤ次数として設定し、逆ＤＮＤ演算を行う都度１ずつデクリメントし、逆ＤＮＤ次数が１となるまで逆ＤＮＤ演算を行う。まず、逆ＤＮＤ処理部３５０は、各次数におけるｎＫｅｙＭａｘ値をチェックしてｎＫｅｙＭａｘ値が０以上であるか否かを判断する（Ｓ４３１０）。
【０１９４】
ｎＫｅｙＭａｘ値が０より小さければ、符号化過程においてディバイド−アップ演算が行われた旨を意味するために、逆ＤＮＤ処理部３５０は、逆ディバイド−アップ演算を行って差分データの範囲を負数領域に広める（Ｓ４３２０）。本発明の好ましい実施の形態は、下記式１５のような逆ディバイド−アップ演算を用いた。
【０１９５】
【数１５】
2004007380.tif 000022
【０１９６】
しかしながら、もし、ｎＫｅｙＭａｘが０以上であれば、逆ＤＮＤ処理部３５０は、逆ＤＮＤ演算の次数が１であるか否かをチェックする。逆ＤＮＤ次数が１でなければ、符号化する時にディバイド−ダウン演算が行われた旨を意味するために、逆ＤＮＤ処理部３５０は、逆ディバイド−ダウン演算を行って差分データの範囲を正数領域に広める（Ｓ４３４０）。
【０１９７】
本発明の好ましい実施の形態は、下記式１６のような逆ディバイド−ダウン演算を用いた。
【０１９８】
【数１６】
2004007380.tif 000023
【０１９９】
もし、ｎＫｅｙＭａｘが０以上であり、且つ、逆ＤＮＤ演算の次数が１であれば、逆ＤＮＤ処理部３５０は、逆ディバイド演算を行うことにより逆ＤＮＤ演算を終える（Ｓ４３５０）。本発明の好ましい実施の形態は、下記式１７のような逆ディバイド演算を用いた。
【０２００】
【数１７】
2004007380.tif 000024
【０２０１】
逆ＤＮＤ演算の行われたキーデータの差分データは、逆フォルド処理部３４０に入力され、逆フォルド処理部３４０は、逆フォルド演算を行い、正数領域にのみ位置する差分データの範囲を正数及び負数に分離する（Ｓ４４００）。本発明の好ましい実施の形態は、下記式１８のような逆フォルド演算を用いた。
【０２０２】
【数１８】
2004007380.tif 000025
【０２０３】
逆フォルドされた差分データは、逆シフト部３３０に出力され、逆シフト部３３０は、キーヘッダ復号化器３７０から符号化器に用いられたモードｎＫｅｙＳｈｉｆｔを入力され、下記式１９のように入力されたｎＫｅｙＭａｘ差分データにモードを加える（Ｓ４５００）。
【０２０４】
【数１９】
2004007380.tif 000026
【０２０５】
逆シフト部３３０から差分データを入力された逆ＤＰＣＭ処理部３２０は、キーヘッダ符号化器３７０からＤＰＣＭ次数を入力され、差分データを量子化されたキーデータに復元する（Ｓ４６００）。逆シフト部３３０は、下記式２０を用いてＤＰＣＭ次数だけ逆ＤＰＣＭ演算を行う。
【０２０６】
【数２０】
2004007380.tif 000027
【０２０７】
ここで、ｉは、差分データ及びキーデータのインデックスを、ｖは整数配列を、ｄｅｌｔａ（ｉ）は差分データを各々示す。
【０２０８】
逆ＤＰＣＭ処理されて生成された量子化されたキーデータは、逆量子化器３１０に入力され、逆量子化器３１０は、キーヘッダ復号化器３７０から量子化ビットサイズｎＫｅｙＱＢｉｔ及び逆量子化に用いられる最大値及び最小値が量子化過程において実数変換部２０５により符号化されたか否かを入力され、下記式２１を用いて入力された量子化されたキーデータを逆量子化されたキーデータに変換する（Ｓ４７００）。
【０２０９】
【数２１】
2004007380.tif 000028
【０２１０】
符号化器においてキーデータを量子化する時、量子化に用いられた最大値及び最小値が実数変換部２０５において変換されなかったならば、前記式２１のｆＫｅｙＭｉｎ及びｆＫｅｙＭａｘは０及び１として各々設定される。しかし、量子化に用いられた最大値及び最小値が実数変換部２０５において変換されたならば、逆量子化に用いられる最大値及び最小値は、後述する実数逆変換部３０５において逆変換されて入力される最小値及び最大値が各々用いられる。
【０２１１】
上述した逆ＤＮＤ演算過程から逆量子化過程をプログラムコードにて具現した一例は後述する。
【０２１２】
一方、逆量子化器３１０から出力される復号化されたキーデータは、線形キー復号化器３００において復号化された線形キーデータに加えられて復号化されたキーデータを構成する。
【０２１３】
以下、線形キー復号化過程を説明する。
【０２１４】
キーヘッダ復号化器３７０は、ビットストリームからキーヘッダ情報を復号化して線形キーに関する情報があれば、線形キー領域の開始キー及び終了キーを復号化するために必要な情報を実数逆変換部３０５に出力し、線形キー復号化器３００に線形キーとして符号化されたキーの数を出力する。
【０２１５】
線形キー復号化に用いられる開始キー及び終了キー情報を入力された実数逆変換部３０５は。１０進数の体系で表わされた開始キー及び終了キーをさらに２進数の体系に逆変換して線形キー復号化器３００に出力する。
【０２１６】
復号化すべき２つの実数をｆＫｅｙＭｉｎ及びｆＫｅｙＭａｘとすれば、最初の値ｆＫｅｙＭｉｎを逆変換する過程は、下記の通りである。
【０２１７】
キーヘッダ復号化器３７０は、ｆＫｅｙＭｉｎの桁数をビットストリームから読み込む。もし、桁数が０であれば、ｆＫｅｙＭｉｎの値を０として設定した後、ｆＫｅｙＭａｘの値を復号化するためにｆＫｅｙＭａｘの桁数をビットストリームから読み込む。もし、桁数が８以上であれば、ＩＥＥＥ標準７５４方式に従って符号化されたものであるため、実数を３２ビットだけ読み込んだ後、ｆＫｅｙＭａｘの値を復号化する過程へ進む。
【０２１８】
しかしながら、もし、桁数が１と７との間の値を有すれば、キーヘッダ復号化器３７０は、符号ビットをビットストリームから読み込む。本発明の実施の形態においては、符号ビットが１であれば、ＭｉｎＫｅｙＭａｎｔｉｓｓａＳｉｇｎを−１として、０であれば、ＭｉｎＫｅｙＭａｎｔｉｓｓａＳｉｇｎを１として設定して符号を読み込む。そして、仮数を前記表１の桁数と必要なビット数との関係に基づき必要なビット数を得た後、そのビット数だけビットストリームから読み込み、読み込まれた値をｎＭｉｎＫｅｙＭａｎｔｉｓｓａに記憶する。その後、ビットストリームから１ビットのみを読み込んでＭｉｎＫｅｙＥｘｐｏｎｅｎｔＳｉｇｎに記憶するが、ＭｉｎＫｅｙＭａｎｔｉｓｓａＳｉｇｎと同じ方式により記憶する。そして、ビットストリームから６ビットのみの指数値を読み込んでｎＭｉｎＫｅｙＥｘｐｏｎｅｎｔに記憶する。
【０２１９】
実数逆変換部３０５は、キーヘッダ復号化器３７０から入力された値を下記式２２に代入してｆＫｅｙＭｉｎを復元する。
【０２２０】
【数２２】
2004007380.tif 000029
【０２２１】
ｆＫｅｙＭａｘを復元する過程は、ｆＫｅｙＭｉｎのそれと同じである。但し、ｆＫｅｙＭａｘの指数をビットストリームから読み込む前に、ｆＫｅｙＭａｘの指数としてｆＫｅｙＭｉｎと同じ指数が用いられたか否かを判読し、同じ値が用いられたならば、ｆＫｅｙＭｉｎの指数を用い、そうでなければ、ｆＫｅｙＭｉｎの指数をビットストリームから読み込む方式と同じく、ｆＫｅｙＭａｘの指数を読み込む。
【０２２２】
一方、実数逆変換部３０５から線形キー領域の開始キー及び終了キーを入力された線形キー復号化器３００は、下記式２３を用いて線形キー領域を復号化する。
【０２２３】
【数２３】
2004007380.tif 000030
【０２２４】
ここで、ｆＫｅｙＭｉｎ及びｆＫｅｙＭａｘは、線形キー領域の開始キーデータ及び終了キーデータを意味する。
【０２２５】
このようにして復号化された線形キー領域のキーデータは、逆量子化器３１０から出力されたキーデータに加えられて復号化された最終キーデータとして出力される。
【０２２６】
以上、本発明の好ましい実施の形態によるキーデータ復号化装置の一例を説明した。当該技術分野における通常の知識を有した者は、上述した好ましい実施の形態による復号化装置の様々な変形された実施の形態が存在するということが分かるであろう。以下、図２９ないし図３２を参照し、好ましいキーデータ復号化装置の実施の形態を説明する。一方、前記図２８に示された構成要素と同じ機能を行う構成要素には同じ参照符号を使用した。
【０２２７】
図２９を参照すれば、本発明の復号化装置の第２の実施の形態は、エントロピ復号化器３６０、逆ＤＮＤ演算部３５２、逆フォルド処理部３４０、逆シフト部３３０、逆ＤＰＣＭ処理部３２０、及び逆量子化器３１０を備える。
【０２２８】
キーデータを符号化したビットストリームが第２の実施の形態の復号化装置に入力されれば、エントロピ復号化器３６０は、入力されたビットストリームをエントロピ復号化し、復号化された差分データを逆ＤＮＤ演算部３５２に出力する。逆ＤＮＤ演算部３５２は、入力された差分データのＤＮＤ次数をチェックし、入力された差分データがＤＮＤ演算の行われた差分データであるか否かを判断し、ＤＮＤ演算が行われたならば、前記逆ＤＮＤ演算を行って出力し、そうでなければ、バイパスする。
【０２２９】
逆ＤＮＤ演算部３５２から差分データを入力された逆フォルド処理部３４０は、ＤＮＤ次数をチェックして入力された差分データがフォルド演算の行われた差分データであれば、逆フォルド演算を行って逆シフト部３３０に出力し、そうでなければ、逆シフト部３３０にバイパスする。
【０２３０】
一方、逆シフト部３３０は、入力された差分データに対して前記逆シフト演算を行って逆ＤＰＣＭ処理部３２０に出力し、逆ＤＰＣＭ処理部３２０は、差分データを量子化されたキーデータに変換して逆量子化器３１０に出力する。逆量子化器３１０は、量子化された差分データを逆量子化し、復号化されたキーデータを出力する。
【０２３１】
図３０を参照すれば、本発明の復号化装置の第３の実施の形態は、エントロピ復号化器３６０、逆ＤＮＤ処理部３５０、逆シフト部３３０、逆ＤＰＣＭ処理部３２０、及び逆量子化器３１０を備える。
【０２３２】
キーデータを符号化したビットストリームが第３の実施の形態の復号化装置に入力されれば、エントロピ復号化器３６０は、入力されたビットストリームをエントロピ復号化した後、復号化された差分データを逆ＤＮＤ処理部３５０に出力する。逆ＤＮＤ処理部３５０は、入力された差分データに対して符号化過程においてシフト−アップ演算が行われたか否かをチェックし、シフト−アップ演算が行われたならば、前記シフト−ダウン演算を行った後に前記逆ＤＮＤ演算を行って出力し、そうでなければ、逆ＤＮＤ演算を行って逆シフト部３３０に出力する。
【０２３３】
一方、逆シフト部３３０は、入力された差分データに対して前記逆シフト演算を行って逆ＤＰＣＭ処理部３２０に出力し、逆ＤＰＣＭ処理部３２０は、差分データを量子化されたキーデータに変換して逆量子化器３１０に出力する。逆量子化器３１０は、量子化された差分データを逆量子化し、復号化されたキーデータを出力する。
【０２３４】
図３１を参照すれば、本発明の復号化装置の第４の実施の形態は、エントロピ復号化器３６０、逆シフト−アップ演算部３５６、及び逆ＤＮＤ演算部３５２を備える。
【０２３５】
入力されたビットストリームは、エントロピ復号化器３６０において復号化されて差分データに変換された後に逆シフト−アップ演算部３５６に入力される。逆シフト−アップ演算部３５６は、入力された差分データに対して前記シフト−ダウン演算を行い、ＤＮＤ演算された差分データを生成して逆ＤＮＤ演算部３５２に出力する。逆ＤＮＤ演算部３５２は、前記逆ＤＮＤ演算を行って復号化されたキーデータの差分データを出力する。復号化されたキーデータの差分データは、通常の復号化器の構成を用いて復号化されたキーデータを出力することができる。
【０２３６】
図３２を参照すれば、本発明の復号化装置の第５の実施の形態は、線形キー符号化器を用いる符号化装置において符号化されたビットストリームを復号化する復号化装置である。
【０２３７】
入力ビットストリームは、エントロピ復号化部３８０及びキーヘッダ復号化器３７０に入力される。エントロピ復号化部３８０は、ビットストリームにおいてキーデータに当たる部分をエントロピ復号化して所定の演算を行って逆量子化器３１０に出力し、キーヘッダ復号化器３７０は、入力されたビットストリームからキーヘッダに当たるビットストリームを復号化して線形キー復号化器に線形キー領域に含まれるキーデータの数を出力し、実数逆変換部３０５に線形キー領域の開始キーデータ及び終了キーデータ情報を出力する。
【０２３８】
逆量子化器３１０は、入力された量子化されたキーデータを逆量子化して出力し、線形キー復号化器は、実数逆変換部３０５から入力された線形キー領域の開始キーデータ及び終了キーデータを入力されて線形キー領域を復号化し、復号化された線形キー領域を逆量子化器３１０から出力されたキーデータに加えて復号化されたキーデータを出力する。
【０２３９】
図４０ないし図４２を参照し、復号化過程を行う演算を具現したプログラムコードの例を説明する。
【０２４０】
図４０は、符号及び値に対するコンテキストを用いた、適応的算術符号化されたビットストリームから符号あり値を復号化するｄｅｃｏｄｅＳｉｇｎｅｄＡＡＣ（）関数を具現するプログラムコードの一例を示す図面である。
【０２４１】
図４１は、符号及び値に対するコンテキストを用いた、適応的算術符号化されたビットストリームから符号なき値を復号化するｄｅｃｏｄｅＵｎｓｉｇｎｅｄＡＡＣ（）関数を具現するプログラムコードの一例を示す図面である。図４１において、ｑｆ＿ｄｅｃｏｄｅ（）は、ビットストリームから１ビットを読み込む関数である。
【０２４２】
図４２は、前記逆ＤＮＤ演算過程から逆量子化過程をプログラムコードにて具現した一例を示す図面である。
【０２４３】
本発明はまた、コンピュータにて読取り可能な記録媒体にコンピュータにて読取り可能なコードとして具現可能である。コンピュータにて読取り可能な記録媒体は、コンピュータシステムによって読取り可能なデータが記憶されるあらゆる種類の記録装置を含む。コンピュータにて読取り可能な記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピーディスク、光データ記憶装置などがあり、また、キャリアウェーブ（例えば、インターネットを通じた伝送）の形で具現されるものも含む。また、コンピュータにて読取り可能な記録媒体は、ネットワークにより結ばれたコンピュータシステムに分散され、分散方式によりコンピュータにて読取り可能なコードが記憶されて実行できる。
【０２４４】
今まで本発明についてその好ましい実施の形態を中心として説明した。本発明が属する技術分野における通常の知識を有した者は、本発明が本発明の本質的な特性から逸脱しない範囲において変形された形態で具現できることが理解できるであろう。よって、開示された実施の形態は限定的な観点ではなく、説明的な観点からら考慮されるべきである。本発明の範囲は、以上の説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にあるあらゆる違いは、本発明に含まれたものとして解釈されるべきである。
【０２４５】
【発明の効果】
上述した本発明のキーデータ符号化及び復号化方法、並びに装置は、ＤＰＣＭ演算のみを行ってキーデータを符号化する従来の符号化及び復号化装置とは異なって、ＤＰＣＭ演算により得られた差分データの範囲を狭めるためにシフト演算、フォルド演算及びＤＮＤ演算などを行い、符号化に必要なビット数が最小となる演算結果を符号化することにより、キーデータの符号化効率を大幅に改善した。よって、本発明によれば、３次元アニメーションの記憶空間を大幅に縮めることができ、高速のアニメーションデータ伝送が可能となる。
【図面の簡単な説明】
【図１】通常のキーデータ符号化及び復号化装置の構成を示すブロック図である。
【図２】本発明の好ましい実施の形態による符号化装置の構成を示すブロック図である。
【図３】図２に示されたＤＮＤ処理部の構成を示すブロック図である。
【図４】本発明の符号化装置の第２の実施の形態の構成を示すブロック図である。
【図５】本発明の符号化装置の第３の実施の形態の構成を示すブロック図である。
【図６】本発明の符号化装置の第４の実施の形態の構成を示すブロック図である。
【図７】本発明の符号化装置の第５の実施の形態の構成を示すブロック図である。
【図８】本発明の符号化装置の第６の実施の形態の構成を示すブロック図である。
【図９】本発明の好ましい実施の形態による符号化方法（前半部）を説明するフローチャートである。
【図１０】本発明の好ましい実施の形態による符号化方法（後半部）を説明するフローチャートである。
【図１１】本発明の好ましい実施の形態による実数変換過程（前半部）を説明するフローチャートである。
【図１２】本発明の好ましい実施の形態による実数変換過程（後半部）を説明するフローチャートである。
【図１３】本発明の好ましい実施の形態による量子化過程を説明するフローチャートである。
【図１４】本発明の好ましい実施の形態によるＤＰＣＭ演算過程を説明するフローチャートである。
【図１５】本発明の好ましい実施の形態によるＤＮＤ演算過程を説明するフローチャートである。
【図１６】本発明の好ましい実施の形態によるエントロピ符号化方法の一例を示す図面である。
【図１７】本発明の好ましい実施の形態による演算過程における、本発明の符号化器に入力される元のキーデータを示す。
【図１８】本発明の好ましい実施の形態による演算過程における、量子化されたキーデータを示す。
【図１９】本発明の好ましい実施の形態による演算過程における、ＤＰＣＭを行った後のキーデータの差分データを示す。
【図２０】本発明の好ましい実施の形態による演算過程における、シフトされたキーデータの差分データを示す。
【図２１】本発明の好ましい実施の形態による演算過程における、フォルド演算後の差分データを示す。
【図２２】本発明の好ましい実施の形態による演算過程における、ディバイド演算後の差分データを示す。
【図２３】本発明の好ましい実施の形態による演算過程における、ディバイド−アップ演算後の差分データを示す。
【図２４】本発明の好ましい実施の形態による演算過程における、ディバイド−ダウン演算後の差分データを示す。
【図２５】本発明の好ましい実施の形態による演算過程における、シフト−アップ演算後の差分データを示す。
【図２６】本発明の好ましい実施の形態による演算過程において確定した、最終的に符号化すべきキーデータを示す。
【図２７】（ａ）及び（ｂ）は、キーデータ及びキー値データを用いてアニメーションデータを符号化する過程を簡略に示す図面である。
【図２８】Ａは、本発明の好ましい実施の形態によるキーデータ復号化装置の構成を示すブロック図であり、そして
【図２９】本発明の復号化装置の第２の実施の形態の構成を示すブロック図である。
【図３０】本発明の復号化装置の第３の実施の形態の構成を示すブロック図である。
【図３１】本発明の復号化装置の第４の実施の形態の構成を示すブロック図である。
【図３２】本発明の復号化装置の第５の実施の形態の構成を示すブロック図である。
【図３３】本発明の好ましい実施の形態による復号化方法を説明するフローチャートである。
【図３４】本発明の好ましい実施の形態による逆ＤＮＤ演算過程を説明するフローチャートである。
【図３５】符号化のためのＫｅｙｈｅａｄｅｒプログラムコードの一例を説明する図面である。
【図３６】符号化のためのＬｉｎｅａｒＫｅｙプログラムコードの一例を説明する図面である。
【図３７】符号化のためのＫｅｙＳｅｌｅｃｔｉｏｎＦｌａｇプログラムコードの一例を説明する図面である。
【図３８】符号化のためのＫｅｙＭｉｎＭａｘプログラムコードの一例を説明する図面である。
【図３９】符号化のためのＫｅｙプログラムコードの一例を説明する図面である。
【図４０】復号化過程を行う演算を具現したプログラムコードの一例として、ｄｅｃｏｄｅＳｉｇｎｅｄＡＡＣ関数を説明する図面である。
【図４１】復号化過程を行う演算を具現したプログラムコードの一例として、ｄｅｃｏｄｅＵｎｓｉｇｎｅｄＡＡＣ関数を説明する図面である。
【図４２】復号化過程を行う演算を具現したプログラムコードの一例として、逆ＤＮＤ演算過程から逆量子化過程を説明する図面である。
【符号の説明】
２８０　　　エントロピ符号化部
２９０　　　線形キーデータ符号化部
【図１】
2004007380.tif 000031
【図２】
2004007380.tif 000032
【図３】
2004007380.tif 000033
【図４】
2004007380.tif 000034
【図５】
2004007380.tif 000035
【図６】
2004007380.tif 000036
【図７】
2004007380.tif 000037
【図８】
2004007380.tif 000038
【図９】
2004007380.tif 000039
【図１０】
2004007380.tif 000040
【図１１】
2004007380.tif 000041
【図１２】
2004007380.tif 000042
【図１３】
2004007380.tif 000043
【図１４】
2004007380.tif 000044
【図１５】
2004007380.tif 000045
【図１６】
2004007380.tif 000046
【図１７】
2004007380.tif 000047
【図１８】
2004007380.tif 000048
【図１９】
2004007380.tif 000049
【図２０】
2004007380.tif 000050
【図２１】
2004007380.tif 000051
【図２２】
2004007380.tif 000052
【図２３】
2004007380.tif 000053
【図２４】
2004007380.tif 000054
【図２５】
2004007380.tif 000055
【図２６】
2004007380.tif 000056
【図２７】
2004007380.tif 000057
【図２８】
2004007380.tif 000058
【図２９】
2004007380.tif 000059
【図３０】
2004007380.tif 000060
【図３１】
2004007380.tif 000061
【図３２】
2004007380.tif 000062
【図３３】
2004007380.tif 000063
【図３４】
2004007380.tif 000064
【図３５】
2004007380.tif 000065
【図３６】
2004007380.tif 000066
【図３７】
2004007380.tif 000067
【図３８】
2004007380.tif 000068
【図３９】
2004007380.tif 000069
【図４０】
2004007380.tif 000070
【図４１】
2004007380.tif 000071
【図４２】
2004007380.tif 000072