(57)【要約】【課題】映像コーディングデバイスにおけるＡＣ／ＤＣ予測に関する固定小数点整数除算【解決手段】本開示は、コーディングデバイスにおいて浮動小数点演算（Ａ // Ｂ）の固定小数点計算を行うための方法を説明するものであり、Ａ // Ｂは、ＡをＢで除して最も近い整数に丸める整数除算を表す。前記方法は、インデックスＢの逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）からエントリを選択することであって、Ｂは、コーディング基準と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを含む１つの範囲の値を定義することと、値Ａ、Ｂ１及びＢ２に基づいて前記コーディング基準に従ってコーディングするためにＡ // Ｂを計算することであって、Ｂ１及びＢ２は、前記ＬＵＴの前記選択されたエントリの高部分と低部分を具備すること、とを具備することができる。前記技術は、デジタル信号プロセッサ（ＤＳＰ）による映像コーダの実装を単純化することができ、ＭＰＥＧ−４コーダ及びその他に関して特に有用である。【選択図】図１
2008543182.tif 000002
【特許請求の範囲】
【請求項１】
インデックスＢの逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）を格納するメモリであって、前記インデックスＢは、コーディング基準と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを含む１つの範囲の値を定義するメモリと、
値Ａ、Ｂ１及びＢ２に基づいて前記コーディング基準に従ってコーディングするために浮動小数点演算（Ａ // Ｂ）の固定小数点計算を行う固定小数点計算ユニットであって、Ｂ１及びＢ２は、前記ＬＵＴの選択されたエントリの高部分と低部分とを具備し、Ａ // Ｂは、ＡがＢによって除されて最も近い整数に丸められる整数除算を表す固定小数点計算ユニットと、を具備するコーディングデバイス。
【請求項２】
前記コーディングデバイスは、映像コーディングデバイスを具備し、前記コーディング基準は、ＭＰＥＧ−４映像コーディング基準を具備する請求項１に記載のコーディングデバイス。
【請求項３】
ＢがＤＣスカラーを表すときは前記固定小数点計算を用いて前記ＭＰＥＧ−４基準に従ってＤＣ予測を行い、Ｂが量子化パラメータを表すときは前記固定小数点計算を用いて前記ＭＰＥＧ−４基準に従ってＡＣ予測を行うＡＣ／ＤＣ予測ユニットをさらに具備する請求項２に記載のコーディングデバイス。
【請求項４】
前記ＬＵＴの前記エントリは、以下の式に従って生成され、ｆｌｏｏｒは、切り捨てて整数にするための演算を表す請求項１に記載のコーディングデバイス。
floor(2^31/B) + 1
【請求項５】
Ｂは、［１，４６］の範囲内である請求項４に記載のコーディングデバイス。
【請求項６】
前記浮動小数点演算（Ａ // Ｂ）の前記固定小数点計算は、以下の式によって与えられる結果を具備し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近くの整数に確実に丸められるようにするための定数を表す請求項１に記載のコーディングデバイス。
(((B1 * A) << 1) + ((B2 * A) >> 15) + 32768) >> 16
【請求項７】
前記浮動小数点演算（Ａ // Ｂ）の前記固定小数点計算は、以下の式によって与えられる結果を具備し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、Ｃは、（２ ＊ Ａ）を表し、３２７６８は、最も近い整数に確実に丸められるようにするための定数を表す請求項１に記載のコーディングデバイス。
((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
【請求項８】
前記ＬＵＴを生成することをさらに具備する請求項１に記載のコーディングデバイス。
【請求項９】
前記ＬＵＴと関連するＱ数はＱ３１であり、従って前記エントリの全値が１０進値を表す請求項１に記載のコーディングデバイス。
【請求項１０】
コーディングデバイスにおいて浮動小数点演算（Ａ // Ｂ）の固定小数点計算を行うための方法であって、Ａ // Ｂは、ＡがＢによって除されて最も近い整数に丸められる整数除算を表し、
インデックスＢの逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）からエントリを選択することであって、Ｂは、コーディング基準と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを含む１つの範囲の値を定義することと、
値Ａ、Ｂ１及びＢ２に基づいて前記コーディング基準に従ってコーディングするためにＡ // Ｂを計算することであって、Ｂ１及びＢ２は、前記ＬＵＴの前記選択された高部分と低部分を具備すること、とを具備する、方法。
【請求項１１】
前記コーディング基準は、ＭＰＥＧ−４映像コーディング基準を具備する請求項１０に記載の方法。
【請求項１２】
ＢがＤＣスカラーを表すときは前記固定小数点計算を用いて前記ＭＰＥＧ−４基準に従ってＤＣ予測を行うことと、Ｂが量子化パラメータを表すときは前記固定小数点計算を用いて前記ＭＰＥＧ−４基準に従ってＡＣ予測を行うこと、とをさらに具備する請求項１１に記載の方法。
【請求項１３】
前記ＬＵＴの前記エントリは、以下の式に従って生成され、floorは、切り捨てて整数にするための演算を表す請求項１０に記載の方法。
floor(2^31/B) + 1
【請求項１４】
Ｂは、［１，４６］の範囲内である請求項１３に記載の方法。
【請求項１５】
前記浮動小数点演算（Ａ // Ｂ）の前記固定小数点計算は、以下の式によって与えられる結果を具備し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数に確実に丸められるようにするための定数を表す請求項１０に記載の方法。
(((B1 * A) << 1) + ((B2 * A) >> 15) + 32768) >> 16
【請求項１６】
前記浮動小数点演算（Ａ // Ｂ）の前記固定小数点計算は、以下の式によって与えられる結果を具備し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、Ｃは、（２ ＊ Ａ）を表し、３２７６８は、最も近い整数に確実に丸められるようにするための定数を表す請求項１０に記載の方法。
((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
【請求項１７】
前記ＬＵＴを生成することをさらに具備する請求項１０に記載の方法。
【請求項１８】
前記ＬＵＴと関連するＱ数はＱ３１であり、従って前記エントリの全値が１０進値を表す請求項１０に記載の方法。
【請求項１９】
コーディングデバイスにおいて実行されたときに前記コーディングデバイスに浮動小数点演算（Ａ // Ｂ）の固定小数点計算を行わせる命令を具備し、Ａ // Ｂは、ＡがＢによって除されて最も近い整数に丸められる整数除算を表し、前記命令は、実行されたときに、インデックスＢの逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）からエントリを選択し、Ｂは、コーディング基準と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを含む１つの範囲の値を定義し、値Ａ、Ｂ１及びＢ２に基づいて前記コーディング基準に従ってコーディングするためにＡ // Ｂを計算し、Ｂ１及びＢ２は、前記ＬＵＴの前記選択されたエントリの高部分と低部分を具備する、コンピュータ読み取り可能媒体。
【請求項２０】
前記コーディング基準は、ＭＰＥＧ−４映像コーディング基準を具備する請求項１９に記載のコンピュータ読み取り可能媒体。
【請求項２１】
前記命令は、実行されたときに、ＢがＤＣスカラーを表すときは前記コーディングデバイスに前記固定小数点計算を用いて前記ＭＰＥＧ−４基準に従ってＤＣ予測を行わせ、Ｂが量子化パラメータを表すときは前記固定小数点計算を用いて前記ＭＰＥＧ−４基準に従ってＡＣ予測を行わせる請求項２０に記載のコンピュータ読み取り可能媒体。
【請求項２２】
前記ＬＵＴの前記エントリは、以下の式に従って生成され、floorは、切り捨てて整数するための演算を表す請求項１９に記載のコンピュータ読み取り可能媒体。
floor(2^31/B) + 1
【請求項２３】
Ｂは、［１，４６］の範囲内である請求項２２に記載のコンピュータ読み取り可能媒体。
【請求項２４】
前記浮動小数点演算（Ａ // Ｂ）の前記固定小数点計算は、以下の式によって与えられる結果を具備し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数に確実に丸められるようにするための定数を表す請求項１９に記載のコンピュータ読み取り可能媒体。
(((B1 * A) << 1) + ((B2 *A) >> 15) + 32768) >> 16
【請求項２５】
前記浮動小数点演算（Ａ // Ｂ）の前記固定小数点計算は、以下の式によって与えられる結果を具備し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、Ｃは、（２ ＊ Ａ）を表し、３２７６８は、最も近い整数に確実に丸められるようにするための定数を表す請求項１９に記載のコンピュータ読み取り可能媒体。
((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
【請求項２６】
前記命令は、実行されたときに前記ＬＵＴを生成する請求項１９に記載のコンピュータ読み取り可能媒体。
【請求項２７】
前記ＬＵＴと関連するＱ数はＱ３１であり、従って前記エントリの全値が１０進値を表す請求項１９に記載のコンピュータ読み取り可能媒体。
【請求項２８】
インデックス（Ｂ）の逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）を格納するメモリであって、前記インデックス（Ｂ）は、コーディング基準と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを含む１つの範囲の値を定義するメモリと、
値Ａ、Ｂ１及びＢ２に基づいて前記コーディング基準に従ってコーディングのために浮動小数点演算（Ａ // Ｂ）の固定小数点計算を行うための手段であって、Ｂ１及びＢ２は、前記ＬＵＴの選択されたエントリの高部分と低部分とを具備し、Ａ // Ｂは、ＡがＢによって除されて最も近い整数に丸められる整数除算を表す手段と、を具備するコーディングデバイス。
【請求項２９】
ＢがＤＣスカラーを表すときは前記固定小数点計算を用いて前記ＭＰＥＧ−４基準に従ってＤＣ予測を行うための手段と、Ｂが量子化パラメータを表すときは前記固定小数点計算を用いて前記ＭＰＥＧ−４基準に従ってＡＣ予測を行うための手段と、をさらに具備する請求項２８に記載のコーディングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、映像コーディングに関するものである。本開示は、より具体的には、ＭＰＥＧ−４基準及びその他の映像コーディング基準におけるイントラコーディングに関して用いられる等のＡＣ／ＤＣ予測に関するものである。
【背景技術】
【０００２】
デジタル映像能力は、デジタルテレビ、デジタル直接放送システム、無線通信装置、パーソナルデジタルアシスタント（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、デジタル記録装置、セルラー又は衛星無線電話等を含む広範な装置に組み入れることができる。デジタル映像装置は、完全な動画シーケンスを生成、修正、送信、格納、記録及び再生する際に従来のアナログ映像システムの有意な改良点を提供することができる。
【０００３】
デジタル映像シーケンスを符号化及び復号するための幾つかの異なる映像コーディング基準が確立されている。例えば、ムービング・ピクチャ・エキスパーツ・グループ（ＭＰＥＧ）では、ＭＰＥＧ−１、ＭＰＥＧ−２及びＭＰＥＧ−４を含む幾つかのコーディング基準を開発している。その他の基準は、国際電気通信連合（ＩＴＵ）Ｈ．２６３基準、カリフォルニア州クーパーティーノに所在するアップルコンピュータによって開発されたＱｕｉｃｋＴｉｍｅ（登録商標）、ワシントン州レッドモンドに所在するマイクロソフト・コーポレーションによって開発されたＷｉｎｄｏｗｓ（登録商標）及びＷｉｎｄｏｗｓ（登録商標）メディア、インテル・コーポレーションによって開発されたＩｎｄｅｏ（登録商標）、ワシントン州シアトルに所在するリアルネットワークス・インクによるＲｅａｌＶｉｄｅｏ（登録商標）、及びスーパーマック・インクによって開発されたＣｉｎｅｐａｋ（登録商標）を含む。これらの基準の更新バージョン及び新基準も引き続き現れさらに発展してきており、ＩＴＵＨ．２６４基準及び幾つかの専有基準を含む。静止画像を圧縮するための多くの画像コーディング基準、例えばＪＰＥＧ基準、も開発されている。ＪＰＥＧは、標準化委員会である「ジョイント・フォトグラフィック・エキスパーツ・グループ」を表す。
【０００４】
一部のコーディング基準は、いわゆる「ＡＣ／ＤＣ予測」を利用することができる。ＡＣ／ＤＣ予測は、「イントラ予測」と呼ばれることもあり、一般的にはイントラコーディングと関連する予測プロセスである。例えば、ＡＣ／ＤＣ予測は、イントラコーディングにおいて用いられる所定の映像フレーム又は画像内の他の映像ブロックを識別して前記所定の映像フレーム又は画像内の冗長性を利用してデータ圧縮を達成させる予測プロセスを含む。換言すると、イントラコーディングは、一般的には、映像フレーム又は画像をコーディングするために必要な量のデータを圧縮するフレーム内又は画像内プロセスであり、ＡＣ／ＤＣ予測は、現在の映像ブロックをイントラコーディングするためにいずれの近隣の映像ブロックを用いるべきであるかを識別するプロセスである。
【０００５】
イントラコーディングは、例えば静止画像の圧縮のための圧縮技術として単独で用いることができるが、映像シーケンスを圧縮する際にはその他の映像コーディング技術とともに実装されるのがより一般的である。例えば、イントラコーディングは、時間的相関又はインターフレーム相関と呼ばれる後続の映像フレーム間の類似性を利用するインターフレームコーディング技術と関連して用いることができる。イントラコーディングをインターフレーム圧縮とともに用いるときには、映像シーケンスは、インターフレーム圧縮が単独で用いられるときよりも多く圧縮することができる。
【０００６】
イントラコーディングに関しては、コーダは、希望されるＡＣ／ＤＣ予測モードを選択するモード選択エンジンを利用することができる。ほとんどの映像コーディング基準は、ＡＣ予測モード及びＤＣ予測モードを含む少なくとも２つの可能なＡＣ／ＤＣ予測モードを考慮する。ＤＣ予測は、映像ブロックのＤＣ係数（典型的には、映像ブロックのゼロ周波数値又は映像ブロックの平均値を表すことができる左上の係数）のみを用いるイントラ映像ブロック予測を意味する。ＡＣ予測は、映像ブロックの残りの（非ＤＣ）係数である映像ブロックのＡＣ係数の一部又は全部を用いるイントラ映像ブロック予測を意味する。
【発明の開示】
【発明の概要】
【０００７】
本開示は、ＡＣ／ＤＣ予測中に映像コーディングデバイスによって実装される技術を説明する。これらの技術は、固定小数点演算によって機能するコーディングデバイス、例えばデジタル信号プロセッサ（ＤＳＰ）において実装される映像コーダ、がＡＣ／ＤＣ予測において用いられる浮動小数点演算を正確に推定するのを可能にするために有用である。より具体的には、これらの技術は、コーディングデバイスにおいてＡＣ／ＤＣ予測の際に生じる可能性がある浮動小数点演算（Ａ // Ｂ）のすべての可能な入力パラメータに関して行われる、浮動小数点演算の正確な固定小数点計算を含み、Ａ // Ｂは、ＡがＢによって除されて最も近い整数に丸められる整数除算を表す。半整数値は、ゼロから遠い方に丸められる。
【０００８】
説明される技術は、インデックスＢの逆関数であるエントリを有するルックアップテーブル（ＬＵＴ）の生成を含むことができ、Ｂは、コーディング基準と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを含む１つの範囲の値を定義する。例えばＭＰＥＧ−４の場合は、Ｂは、ＭＰＥＧ−４と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを包含する［１，４６］の範囲を有することができる。浮動小数点演算Ａ // Ｂを正確に推定するために、ＬＵＴの選択されたエントリを成分Ｂ１及びＢ２に分離することができ、成分Ｂ１及びＢ２は、ＬＵＴの選択されたエントリの高部分（ｈｉｇｈ  ｐｏｒｔｉｏｎ）と低部分（ｌｏｗ  ｐｏｒｔｉｏｎ）を具備する。浮動小数点演算（Ａ // Ｂ）の固定小数点計算は、次式によって与えられる結果を具備することができる。
【０００９】
(((B1 * A << 1) + ((B2 * A) >> 15) + 32768) >> 16
＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数に確実に丸められるようにするための定数を表す。デジタル信号プロセッサ（ＤＳＰ）において計算を行うために必要な処理サイクル数をさらに減らすことができるその他の方程式も以下において識別されている。
【００１０】
一実施形態においては、本開示は、コーディングデバイスにおける浮動小数点演算（Ａ// Ｂ）の固定小数点計算を行うための方法を説明し、Ａ // Ｂは、ＡがＢによって除されて最も近い整数に丸められる整数除算を表す。前記方法は、インデックスＢの逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）からエントリを選択することと、値Ａ、Ｂ１及びＢ２に基づいてコーディング基準に従ってコーディングするためにＡ // Ｂを計算すること、とを具備し、インデックスＢは、コーディング基準と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを含む１つの範囲の値を定義し、Ｂ１及びＢ２は、前記ＬＵＴの選択されたエントリの高部分及び低部分を具備する。
【００１１】
他の実施形態においては、本開示は、インデックスＢの逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）であって、インデックスＢは、コーディング基準と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを含む１つの範囲の値を定義するルックアップテーブル（ＬＵＴ）と、値Ａ１、Ｂ１、及びＢ２に基づいて前記コーディング基準に従ってコーディングするために浮動小数点演算（Ａ // Ｂ）の固定小数点計算を行う固定小数点計算ユニットであって、Ｂ１及びＢ２は、前記ＬＵＴの選択されたエントリの高部分及び低部分を具備し、Ａ // Ｂは、ＡがＢによって除されて最も近い整数に丸められる整数除算を表す固定小数点計算ユニットと、を具備するコーディングデバイスを説明する。
【００１２】
本明細書において説明されるこれらの技術及びその他の技術は、コーディングデバイスにおいてハードウェア内、ソフトウェア内、ファームウェア内、又はその組み合わせ内に実装することができる。ソフトウェア内に実装される場合は、前記ソフトウェアは、固定小数点演算を行うデジタル信号プロセッサ（ＤＳＰ）又は他の装置において実行することができる。その場合は、これらの技術を実行するソフトウェアは、コーディングデバイスにおける浮動小数点演算の正確な固定小数点計算を行うために最初にコンピュータによって読み取り可能な媒体に格納し、ＤＳＰ内にローディングして実行することができる。
【００１３】
様々な実施形態の追加の詳細が添付図面及び以下の説明において示されている。これらの説明と図面から、及び請求項からその他の特長、目的及び利点が明確になるであろう。
【発明を実施するための最良の形態】
【００１４】
本開示は、ＡＣ／ＤＣ予測中にコーディングデバイスによって実装される技術を説明するものである。ＡＣ／ＤＣ予測は、一般的には、所定の映像フレーム又は画像内の他の映像ブロックが現在の映像ブロックをイントラコーディングする際に用いるために識別されるイントラコーディング技術において用いられるプロセスである。説明される技術は、コーディングデバイスにおける浮動小数点演算（Ａ // Ｂ）の固定小数点計算を含み、Ａ // Ｂは、ＡがＢによって除されて最も近い整数に丸められる整数除算を表す。半整数値は、ゼロから遠い方に丸められる。
【００１５】
ＭＰＥＧ−４等のコーディング基準及び他の基準に従ったＡＣ／ＤＣ予測は、デジタル信号プロセッサ（ＤＳＰ）等の固定小数点装置において複製することが（処理サイクルの点で）困難であるか又は高いコストを要する可能性がある整数除算浮動小数点計算（Ａ // Ｂ）を要求する。重要なことであるが、本明細書において説明される技術は、ＭＰＥＧ−４等の映像コーディング基準に従ったＡＣ／ＤＣ予測中に発生する可能性があるすべての可能な入力の組み合わせに関する計算精度を保証する。このことは、映像コーディングでは誤った予測が映像コーディングを損なう誤り伝播に結びつく可能性があるため非常に重要である。さらに、従来の技術又は実装と比較して、本明細書において説明される技術は、浮動小数点演算の適切な結果を生成するためにＤＳＰによって用いられる処理サイクル数を減らすことができる。
【００１６】
より具体的には、これらの技術は、ＡＣ／ＤＣ予測において生じる可能性がある浮動小数点演算（Ａ // Ｂ）のすべての可能な入力パラメータに関するコーディングデバイスにおける浮動小数点演算（Ａ // Ｂ）の正確な固定小数点計算を含み、Ａ // Ｂは、ＡがＢによって除されて最も近い整数に丸められる整数除算を表す。例えば、３ // ２は、２に丸められ、−３ // ２は−２に丸められる。これらの技術は、ＤＣ予測に関して用いることができ、その場合は、Ａは、コーディング対象となる映像ブロックの非量子化ＤＣ係数を表し、Ｂは、ＤＣ係数を量子化するために用いられるＤＣスカラー値を表す。さらに、ＡＣ予測に関しても同じ技術を用いることができ、その場合は、Ａは、候補となる予測ブロックの量子化されたＡＣ係数と量子化パラメータの積を表し、Ｂは、コーディング対象となる映像ブロックの量子化パラメータを表す。
【００１７】
以下においてさらに詳細に説明されるように、計算ではルックアップテーブル（ＬＵＴ）が用いられる。ＬＵＴは、インデックスＢの逆関数として生成されたエントリを有する。インデックスＢは、コーディング基準と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを含む１つの範囲の値を定義する。例えばＭＰＥＧ−４基準の場合は、Ｂは、ＭＰＥＧ−４と関連するすべてのＤＣスカラー値及びすべての量子化パラメータを包含する［１，４６］の範囲を有することができる。特に、ＭＰＥＧ−４においては、ＤＣスカラー値は、［８，４６］の範囲内に入り、量子化パラメータは［１，３１］の範囲内に入る。従って、［１，４６］の範囲内の値を有する逆ＬＵＴは、ＭＰＥＧ−４に関するＡＣ／ＤＣ予測におけるＡ // Ｂ計算に関するすべての可能な分母を包含する。
【００１８】
浮動小数点演算Ａ // Ｂの結果を正確に推定するために、ＬＵＴの選択されたエントリを成分Ｂ１及びＢ２に分離することができ、成分Ｂ１及びＢ２は、ＬＵＴの選択されたエントリの高部分と低部分を具備する。浮動小数点演算（Ａ // Ｂ）の固定小数点計算は、以下の式によって与えられる結果を具備することができる。
【００１９】
(((B1 * A) <<1) + ((B2 * A) >> 15) + 32768) >> 16
ここで、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数に確実に丸められるようにするための定数を表す。
【００２０】
さらに、一部のＤＳＰに関する計算は、浮動小数点演算（Ａ // Ｂ）の固定小数点計算を以下の式によって与えられる結果として実装することによって単純化することができる。  
((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
ここで、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、Ｃは、（２＊Ａ）を表し、３２７６８は、最も近い整数に確実に丸められるようにするための定数を表す。これらの方程式は、一般的には、ＬＵＴと関連づけられたＱ数はＱ３１であると仮定しており、エントリのすべての値が１０進値を表すことを意味する。
【００２１】
エントリの一部の値が分数でないようにするためにより小さいＱ数を有するＬＵＴのその他の実装に関しては、以下のようなより一般的な方程式を用いることができる。
【００２２】
(((B1 * A) << (32 − QNumber)) + ((B2 * A) >> (QNumber − 16)) + 32768) >> 16
又は
((B1 * A) + ((B2 * A >> 16) + (1 << (QNumber − 17)))) >> (QNumber − 16)
Ｑ数３１の場合と同様に、２８以下のあらゆるＱ数に関して、固定小数点ＤＳＰ実装は以下の式のように行うことも可能であり、ほとんどのＤＰＳにおいては下式のほうが実装しやすいであろう。
【００２３】
((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
図１は、固定小数点装置を具備する典型的コーディングデバイス１０を例示するブロック図である。コーディングデバイス１０は、一般的には、ＡＣ／ＤＣ予測をイントラ予測コーディング技術の一部として用いるコーディングデバイスを意味する。従って、装置１０は、インター予測コーダ１４及びイントラ予測コーダ１６の両方を含むものとして示されているが、本明細書において説明される技術は、一般的には、イントラ予測コーダ１６に対して適用可能であり、従って、インター予測を行わないコーディングデバイスにおいて実装することができる。例えば、これらの技術は、デジタルカメラ又はその他の画像撮影装置における画像圧縮に関しても用いることができる。コーダ１４、１６は、一般的には、１つ以上のＤＳＰ等の固定小数点装置である。
【００２４】
図１の例においては、コーディングデバイス１０は、映像コーディングデバイスである。映像コーディングデバイスの例は、デジタルテレビ、デジタルビデオカメラ、デジタル直接放送システム、無線通信装置、パーソナルデジタルアシスタント（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、デジタル記録装置、セルラー又は衛星無線電話等を含む。一般的には、本明細書において説明されるコーディング技術を行うあらゆる装置がコーディングデバイスであることができる。しかしながら、これらの技術は、浮動小数点計算を行わないデジタル信号プロセッサ（ＤＳＰ）又は他の装置を実装するより小型の装置に対して最も適用可能である。
【００２５】
図１に示されるように、コーディングデバイス１０は、イントラ予測コーダ１４に結合されたメモリ１２と、イントラ予測コーダと、を含む。メモリ１２は、あらゆる揮発性又は非揮発性の記憶素子を具備することができる。一部の場合においては、メモリ１２は、オンチップ及びオフチップの両メモリを含むことができる。例えば、メモリ１２は、映像シーケンスを格納する相対的に大きなオフチップメモリ空間と、コーディングプロセスにおいて用いられるより小さい、より高速のローカルオンチップメモリと、を含むことができる。その場合は、オフチップメモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）又はＦＬＡＳＨメモリを具備することができ、ローカルオンチップメモリは、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を具備することができる。しかしながら、説明を単純化するため、映像コーディングを容易にするために用いることができるあらゆる数のメモリ素子を表すために単一のメモリ１２が例示されている。
【００２６】
コーダ１４及び１６の各々は、統合された符号器／復号器（ＣＯＤＥＣ）の一部を形成することができ、又は符号化素子又は復号素子のみを具備することができる。いずれの場合も、コーダ１４及び１６は、ハードウェア、ソフトウェア、ファームウェア、１つ以上のデジタル信号プロセッサ（ＤＳＰ）、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートハードウェア構成品、又はそのあらゆる組合せ内においてまとめて又は別々に実装することができる。コーダ１４及び１６は、ＤＳＰ等の固定小数点装置を少なくとも部分的に具備しており、従って、浮動小数点演算を固定小数点方式で計算するための本明細書において説明される技術が適用可能である。
【００２７】
インター予測コーダ１４は、一般的には、映像シーケンス圧縮に関するインターフレーム相関を実行するコーディング素子を意味する。例えば、インター予測コーダ１４は、映像シーケンスのインターフレーム圧縮を達成させるために動き推定及び動作補償技術を実行することができる。動き推定は、「最良の予測」映像ブロックを識別するために現在の映像ブロックをその他のフレームの映像ブロックと比較するプロセスを意味する。動き推定中に現在の映像ブロックに関して「最良の予測」が識別された時点で、インターフレームコーダ１４は、動き補償を用いて現在の映像ブロックと最良の予測との間の差分をコーディングすることができる。動き補償は、コーディング対象となる現在の映像ブロックと最良の予測との間の差分を示す差分ブロックを生成するプロセスを具備する。特に、動き補償は、通常は、動きベクトルを用いて最良の予測ブロックをフェッチし、次に最良の予測を入力ブロックから減じて差分ブロックを生成する行為を意味する。差分ブロックは、典型的には、差分ブロックによって代表される原映像ブロックよりも実質的に少ないデータを含む。
【００２８】
動き補償が差分ブロックを生成後は、差分ブロックをさらにコーディングするために及びデータをさらに圧縮するために一連の追加コーディングステップをインター予測コーダ１４によって行うことも可能である。これらの追加のコーディングステップは、使用中のコーディング基準に依存することができる。例えばＭＰＥＧ−４に準拠したコーダにおいては、追加のコーディングステップは、８×８の離散コサイン変換を含み、その後にスカラー量子化を後続させ、ラスターツージグザグ順序変更を後続させ、ランレングス符号化を後続させ、ハフマン符号化を後続させることができる。コーディングされた差分ブロックは、コーディングデバイス１０（説明を単純化するため送信器は示されていない）によって、前フレーム（又は後続フレーム）からのいずれの映像ブロックがコーディングのために用いられたかを示す動きベクトルとともに送信することができる。
【００２９】
イントラ予測コーダ１６は、イントラフレーム圧縮を達成させるためのイントラフレーム相関を行うコーディング素子を具備する。イントラ予測コーダ１６は、イントラフレーム又は画像圧縮を達成させるために単独で用いることができるが、映像シーケンスの圧縮の追加の一部としてインター予測コーダ１４とともに実装されるのがより一般的である。ＭＰＥＧ−４に準拠した映像シーケンスのコーディングに関しては、イントラ予測コーダ１６は、スカラー定量化後でラスターツージグザグ順序変更後に呼び出すことができる。繰り返しになるが、イントラ予測プロセスは、イントラコーディングにおいて用いられる近隣の映像ブロックを識別するＡＣ／ＤＣ予測プロセスを含み、識別された映像ブロックをイントラフレーム圧縮のために用いるコーディングステップによって後続される。本明細書において説明される技術は、イントラ予測コーダ１６によって行われるＡＣ／ＤＣ予測プロセスに適用可能である。
【００３０】
イントラ予測コーダ１６は、ＡＣ／ＤＣ予測に関して用いられるモードを選択する、例えばＡＣモード又はＤＣモードを予測のために選択するモード選択エンジン１７を含む。ＡＣ／ＤＣ予測ユニット１８は、選択されたモードに依存して、ＡＣ予測又はＤＣ予測を行う。さらに、本開示により、ＡＣ／ＤＣ予測ユニット１８は、固定小数点装置において最も近い整数に丸められる整数除算の浮動小数点演算を効率的に及び有効に行うために固定小数点計算ユニット１５を呼び出す。本明細書において説明されるように、固定小数点計算ユニット１５は、ルックアップテーブル（ＬＵＴ）１９からエントリを選択し、これらのエントリはメモリ１２に格納することができ、次に、固定小数点計算がＡＣ／ＤＣ予測と関連する入力パラメータに関する浮動小数点演算の結果と完璧に一致するようにするための方程式を適用する。この方法により、コーダ装置１０は、ＤＳＰ等の固定小数点装置として実装されるが、ＡＣ／ＤＣ予測に関して必要な浮動小数点演算の結果を効率的に及び有効に計算することができる。
【００３１】
モード選択エンジン１７によって選択可能なモードは、異なる映像コーディング基準によって異なることができる。ＭＰＥＧ−４によると、ＤＣモード、ＡＣモードの２つの一般モードが存在する。さらに、各モードは、水平方向及び垂直方向を有することができる。ＤＣモードは、ＤＣ係数のみを利用し、ＡＣモードは、ＤＣ係数及びＡＣ係数を利用することができる。ＡＣモードは、ＤＣ係数及びＡＣ係数が用いられるためＡＣ＋ＤＣモードと呼ぶこともできる。
【００３２】
１つの相対的に単純な例においては、ブロックＢとＡとの間のＤＣ差（図２参照）がブロックＢとＣとの間のＤＣ差よりも小さい場合は垂直モードが用いられる。ブロックＢとＣとの間のＤＣ差がブロックＢとＡとの間のＤＣ差よりも小さい場合は水平モードが用いられる（図２参照）。動きの方向が決定された時点で、選択された方向においてＤＣ専用モードを用いるか又はＡＣ＋ＤＣモードを用いるかの判断を、所定の状況に関していずれのモードが最良であるかに基づいて符号化のために決定することができる。しかしながら、これらのモード選択は、幾つかの変形を有する。復号の場合は、モードは、ビットストリーム内のビット又はフラグによって識別される。一般的には、イントラ予測に関してはどのようなモードも用いることができるが、一定の事例において特定のモードを選択することによってイントラコーディングプロセスの品質を向上させることができる。繰り返しになるが、本明細書において説明される技術は、ＡＣ／ＤＣ予測において発生する可能性があるすべての可能な浮動小数点演算の固定小数点計算を考慮することができる。
【００３３】
図２は、ＤＣ予測を例示することを目的とした映像ブロックの概念図である。この例においては、モード選択エンジン１７は、イントラ予測に関して用いるモードとしてＤＣモードを選択しておくことができる。図２に示されるように、ＡＣ／ＤＣ予測ユニット１８は、近隣映像ブロックＡ又はＣのうちの１つのＤＣ成分に基づいてＤＣ予測を行う。ＭＰＥＧ−４によるＤＣ予測においては、計算Ｆ［０］［０］// ｄｃ＿ｓｃａｌａｒが行われ、ここで、Ｆ［０］［０］はＤＣに関する非量子化係数であり、ｄｃ＿ｓｃａｌａｒは、係数Ｆ［０］［０］を量子化するために用いられるＤＣスカラー値である。飽和検査により、Ｆ［０］［０］は、ＭＰＥＧ−４の場合は［−２０４８，２０４７］の範囲内にあり、ｄｃ＿ｓｃａｌａｒは、［８，４６］の範囲内にある。  
ＬＵＴ１９は、ｄｃ＿ｓｃａｌａｒのすべての可能な値の逆関数を含むエントリを格納する。固定小数点計算ユニット１５は、使用中のｄｃ＿ｓｃａｌａｒに対応する該当エントリをＬＵＴ１９から選択する。次に、固定小数点計算ユニット１５は、全体の計算を単純化するために、選択されたエントリの下半分と選択されたエントリの上半分を分離する方程式に従って係数Ｆ［０］［０］を有する選択されたエントリを適用する。例えばこの場合においては、固定小数点計算ユニット１５は、Ｆ［０］［０］// ｄｃ＿ｓｃａｌａｒの結果を達成させるために以下のような方程式を適用することができる。
【００３４】
(((B1 * F[0][0]) << 1) + ((B2 * F[0][0]) >> 15) + 32768) >> 16
この方程式において、Ｂ１及びＢ２は、選択されたエントリの下半分及び選択されたエントリの上半分をそれぞれ表し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数に確実に丸められようにするための定数を表す。
【００３５】
ＬＵＴ１９は、ｄｃ＿ｓｃａｌａｒのすべての可能な値の逆関数だけでなくコーディング基準に従って用いることができる量子化パラメータのすべての可能なエントリの逆関数にも対応する逆エントリを格納する。ＭＰＥＧ−４の場合は、量子化パラメータは、［１，３１］の範囲を有する。従って、ＬＵＴ１９が［１，４６］の範囲全体に及ぶ逆エントリを格納する場合は、ＬＵＴ１９は、ｄｃ＿ｓｃａｌａｒのすべての可能な値及び量子化パラメータのすべての可能な値に対応する逆エントリを表すことができる。従って、ＡＣ予測及びＤＣ予測に関して浮動小数点計算を模倣するために同じＬＵＴ１９を呼び出すことができる。
【００３６】
図３は、ＡＣ予測、例えばＡＣ＋ＤＣ予測のＡＣ部分、を例示することを目的とする映像ブロック概念図である。この例においては、モード選択エンジン１７は、イントラ予測のために用いるモードとしてＡＣモードを選択している。図３に示されるように、ＡＣ／ＤＣ予測ユニット１８は、ブロックＡの垂直ＡＣ成分ｃ１乃至ｃ７又はブロックＣの水平ＡＣ成分ｒ１乃至ｒ７のいずれかに基づいてＡＣ予測を行う。繰り返しになるが、ＤＣ成分は、ＡＣ＋ＤＣ予測のためにも用いることができるが、図２においては説明を単純化するために別々に示されている。
【００３７】
ＭＰＥＧ−４に従ったＡＣ予測においては、予測映像ブロックの各ＡＣ係数に関して計算（ＱＦＰ  ＊  ＱＰＰ）//（ＱＰＸ）が行われる。繰り返しになるが、映像ブロックＡ（図３）が予測に関して用いられる場合は、用いられるＡＣ係数は、ブロックＡのｃ１乃至ｃ７であり、ブロックＢが予測のために用いられる場合は、ブロックＢのＡＣ係数ｒ１乃至ｒ７が予測のために用いられる。ＱＦｐは、予測のために使用中であるブロックの所定の量子化されたＡＣ係数を表し、ＱＰｐは、使用中のブロックと関連する量子化パラメータを表す。積（ＱＦＰ  ＊  ＱＰＰ）は、非量子化ＡＣ係数とまったく同じではないが、ＭＰＥＧ−４基準が規定するように、この値は、非量子化ＡＣ係数の半分によって制限され、［−２０４８，２０４７］の範囲内に十分に含めることができる。ＱＰＸは、コーディングされるブロックＸ（図３）と関連する量子化パラメータを表し、ＭＰＥＧ−４に従った［１，３１］の範囲内にある。
【００３８】
ＬＵＴ１９は、ＱＰＸのすべての可能な値の逆関数を含むエントリを格納するため、固定小数点計算ユニット１５は、使用中のＱＰＸに対応する該当エントリをＬＵＴ１９から選択する。次に、固定小数点計算ユニット１５は、全体的な計算を単純化するために、選択されたエントリの下半分と選択されたエントリの上半分を分離する方程式に従って積（ＱＦＰ  ＊  ＱＰＰ）を有する選択されたエントリを適用する。例えばこの場合は、固定小数点計算ユニット１５は、（ＱＦＰ  ＊  ＱＰＰ）//（ＱＰＸ）の結果を達成させるために以下のような方程式を適用することができる。
【００３９】
(((B1 * (QFP*QPP)) << 1) + ((B2 * (QFP*QPP)) >> 15) + 32768) >> 16
この方程式において、Ｂ１及びＢ２は、選択されたエントリの下半分及び選択されたエントリの上半分をそれぞれ表し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数に確実に丸められようにするための定数を表す。
【００４０】
一般的には、本明細書において説明される技術の最終目標は、［−２０４８，２０４７］の範囲内の数字Ａ及び［１，４６］の範囲内の数字Ｂを有する“Ａ // Ｂ”の計算に関する逆数の適切な固定小数点概算を容易にすることである。繰り返しになるが、これらの技術は、前記計算を単純化しさらに固定小数点装置において計算を行うために必要な処理サイクル数を減らすことも可能である。
【００４１】
ＬＵＴ１９は、Ｑ３１に対応するＱ数を定義することができ、ＬＵＴ１９のエントリの全値が分数値に対応することを意味する。テーブル内の各エントリは、floor(2^31/B)+1として計算され、ここで、Ｂは、テーブルのインデックスであり、［１，４６］の範囲内にある。演算“floor”は、切り捨てて整数にするための演算を表す。テーブルは、以下の典型的な疑似符号を用いて生成することができる。
【００４２】
unsigned int q31Num, i;        /* 符号なし整数を定義する*/
unsigned int vInverseTable[46];  /*配列を定義する*/
q31Num = 1 << 31;       /*2^31 *を実行する/
(i=1; i<=46; i++)の場合/*各エントリを生成するため                                     に繰り返す*/
{    
vInverseTable[i-1] = q31Num/i+ 1
}
ＬＵＴ１９の生成のシミュレーション例は以下のとおりである。
【数１】
2008543182.tif 000003
【００４３】
シミュレーションでは、分子［−２０４８，２０４７］及び分母［１，４６］のすべての可能な数に関して、本明細書において説明される逆テーブル及び方程式を用いた結果は、これらの範囲内の分子又は分母のあらゆる可能な組み合わせに関する対応する浮動小数点計算と一致することが示されている。従って、本明細書において説明される逆テーブル及び方程式は、ＭＰＥＧ−４に従ったＡＣＤＣ予測の目的上正確である。繰り返しになるが、浮動小数点演算（Ａ // Ｂ）の固定小数点計算は、以下によって与えられる結果を具備することができる。
【００４４】
(((B1 * A) << 1) + ((B2 *A) >> 15) + 32768) >> 16
ここで、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数まで確実に丸められるようにするための定数を表す。
【００４５】
さらに、一部のＤＳＰに関する計算は、浮動小数点演算（Ａ // Ｂ）の固定小数点計算を以下の式によって与えられる結果として実装することによって単純化することができる。
【００４６】
((B1 * C) + (B2 * C) >> 16) + 32768) >> 16
ここで、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、Ｃは、（２ ＊Ａ）を表し、３２７６８は、最も近い整数まで確実に丸められるようにするための定数を表す。Ｃ＝２ ＊ Ａは１６ビット（［−４０９６，４０９４］内にあるため、＊２に起因する精度損はない。さらに、Ｃ＝２ ＊ Ａは、一部のＤＳＰにおいてはフリーサイクル中に生成することができる。これらの方程式は、一般的には、ＬＵＴと関連づけられたＱ数がＱ３１であると仮定し、エントリの全値が１０進値を表すことを意味する。
【００４７】
以下は、分子（−２０４８，２０４７）及び分母［１，４６］の範囲を有するＱ数Ｑ３０乃至Ｑ１８とともに用いることができる逆テーブル例である。これらのテーブルは、異なるＤＳＰ及び異なる命令セットに関して役立つであろう。
【数２】
2008543182.tif 000004
【数３】
2008543182.tif 000005
【数４】
2008543182.tif 000006
【数５】
2008543182.tif 000007
【数６】
2008543182.tif 000008
【数７】
2008543182.tif 000009
【数８】
2008543182.tif 000010
【数９】
2008543182.tif 000011
【数１０】
2008543182.tif 000012
【数１１】
2008543182.tif 000013
【数１２】
2008543182.tif 000014
【数１３】
2008543182.tif 000015
【数１４】
2008543182.tif 000016
【００４８】
より小さいＱ数を有するためエントリの値の一部が非分数であるＬＵＴの実装に関しては、以下のようなより一般的な方程式を用いることができる。
【００４９】
(((B1 * A) << (32 − QNumber)) + ((B2 * A) >> (QNumber − 16)) + 32768) >> 16
又は
((B1 * A) + ((B2 * A >> 16) + (1 << (QNumber − 17)))) >> (QNumber − 16)
Ｑ数３１の場合と同様に、２８以下のあらゆるＱ数に関して、固定小数点ＤＳＰ実装は以下の式のように行うことも可能であり、ほとんどのＤＰＳにおいては下式のほうがプログラマによりやさしい。
【００５０】
((B1*C) + ((B2*C) >> 16) + 32768) >> 16
図４は、ＤＳＰ等の固定小数点装置においてＡＣ／ＤＣ予測に関する浮動小数点計算を行う技術を例示した流れ図である。図４に示されるように、固定小数点計算ユニット１５は、Ｂの逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）１９からエントリを選択する（４１）。次に、固定小数点計算ユニット１５は、Ａの値及び選択されたエントリの高部分と低部分に基づいて整数除算Ａ // Ｂを計算する（４２）。例えば、固定小数点計算ユニット１５は、以下の方程式を適用することができる。
【００５１】
(((B1 * A) << 1) + ((B2 *A) >> 15) + 32768) >> 16
ここで、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数まで確実に丸められるようにするための定数を表し、Ｂ１及びＢ２は、ＬＵＴの選択されたエントリの高部分及び低部分をそれぞれ具備する。ＡＣ／ＤＣ予測ユニット１８は、Ａ // Ｂの計算を用いてＡＣ／ＤＣ予測を行うことができる（４３）。
【００５２】
図５は、ＤＳＰ等の固定小数点装置においてＡＣ／ＤＣ予測に関する浮動小数点計算を行うためのより特定の技術を例示した流れ図である。図５に示されるように、固定小数点計算ユニット１５は、可能なＤＣスカラーの逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）１９からエントリを選択する（５１）。次に、固定小数点計算ユニット１５は、ＤＣ  Ｓｃａｌａｒの値及び選択されたエントリの高部分と低部分に基づいて整数除算Ｆ［０］［０］// （ＤＣ  Ｓｃａｌａｒ）を計算する（５２）。この場合は、Ｆ［０］［０］は、ＤＣに関する非量子化係数であり、（ＤＣ  Ｓｃａｌａｒ）は、係数Ｆ［０］［０］を量子化するために用いられるＤＣスカラー値である。
【００５３】
例えば、固定小数点計算ユニット１５は、Ｆ［０］［０］// （ＤＣ  Ｓｃａｌａｒ）の結果を達成させるために以下の方程式を適用することができる。
【００５４】
(((B1 * F[0][0]) << 1) + ((B2 * F[0][0]) >> 15) + 32768 >> 16
この方程式において、Ｂ１及びＢ２は、選択されたエントリの下半分及び選択されたエントリの上半分をそれぞれ表し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数に確実に丸められるようにするための定数を表す。ＡＣ／ＤＣ予測ユニット１８は、Ｆ［０］［０］// （ＤＣ  Ｓｃａｌａｒ）の計算を用いてＤＣ予測を行うことができる（５３）。
【００５５】
図６は、ＤＳＰ等の固定小数点装置においてＡＣ／ＤＣ予測に関する浮動小数点計算を行うためのより特定の技術を例示した流れ図である。図６に示されるように、固定小数点計算ユニット１５は、映像ブロックＸの可能な量子化パラメータＱＰＸの逆関数として生成されたエントリを有するルックアップテーブル（ＬＵＴ）１９からエントリを選択する（６１）。ＡＣ予測において用いられる各ＡＣ係数に関して、固定小数点計算ユニットは、ＱＦＰ及びＱＰＰの値及びＱＰＸに対応する選択されたエントリの高部分及び低部分に基づいて整数除算（ＱＦＰ  ＊  ＱＰＰ）//（ＱＰＸ）を計算する（６２）。この場合は、ＱＦＰは、予測のために使用中のブロックの量子化されたＡＣ係数を表し、ＱＰＸは、使用中のブロックと関連する量子化パラメータを表す。
【００５６】
例えば、固定小数点計算ユニット１５は、（ＱＦＰ  ＊  ＱＰＰ）//（ＱＰＸ）の結果を達成させるために以下の方程式を適用することができる。
【００５７】
(((B1 * (QFP *QPP)) << 1) + ((B2 *(QFP*QPP)) >> 15) + 32768) >> 16
この方程式において、Ｂ１及びＢ２は、選択されたエントリの下半分及び選択されたエントリの上半分をそれぞれ表し、＜＜は、左シフト演算を表し、＞＞は、右シフト演算を表し、３２７６８は、最も近い整数に確実に丸められようにするための定数を表す。
【００５８】
ＭＰＥＧ−４  ＡＣ／ＤＣ予測において起こる可能性があるすべての各々の入力において必要な精度で浮動小数点計算をシミュレーションするその他の手法と比較して、本明細書において説明される技術は、ＤＳＰの処理サイクル数を有意な数だけ減らすことができる。有利なことに、本明細書において説明される技術は、符号検査又はその他の処理前又は処理後のステップを行う必要なしに機能する。
【００５９】
幾つかの異なる実施形態が説明されている。特に、ＭＰＥＧ−４  ＡＣ／ＤＣ予測において起こる可能性があるすべての各々の入力において必要な精度を有する浮動小数点計算シミュレーション技術が説明されている。さらに、これらの技術は、前記計算を行うのに要する処理サイクル数をその他の手法よりも少なくすることができる。しかしながら、本明細書において説明される技術は、本発明の精神及び適用範囲から外れることなしに様々な修正を行うことが可能である。例えば、これらの技術は、例えばその他のコーディング基準に関するすべての可能な入力を包含するようにルックアップテーブルを修正することによって、前記その他のコーディング基準とともに用いるように個別適合化することができる。これらの技術は、映像コーディングに適用可能であるとして一般的に説明されており、これらの技術は、映像符号化、映像復号、又は符号化と復号の両方に関して適用可能であることを意味する。
【００６０】
本明細書において説明される技術は、コーディングデバイスにおいてハードウェア内、ソフトウェア内、ファームウェア内、又はその組み合わせ内に実装することができる。ソフトウェア内に実装される場合は、ソフトウェアは、固定小数点演算を行うデジタル信号プロセッサ（ＤＳＰ）又は他の装置において実行することができる。その場合は、これらの技術を実行するソフトウェアは、最初にコンピュータによって読み取り可能な媒体に格納し、その後にコーディングデバイスにおいて浮動小数点演算の正確な固定小数点計算を行うためにＤＳＰにローディングして実行することができる。例えば、コンピュータによって読み取り可能な媒体は、ランダムアクセスメモリ（ＲＡＭ）、例えば同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、非揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気によって消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、ＦＬＡＳＨメモリ等を具備することができる。これらの実施形態及びその他の実施形態は、上記の請求項の適用範囲内である。
【図面の簡単な説明】
【００６１】
【図１】本明細書において説明される技術の実装に適する典型的コーディングデバイスのブロック図である。
【図２】ＤＣ予測を例示するための概念的映像ブロック図である。
【図３】ＡＣ予測を例示するための概念的映像ブロック図である。
【図４】本開示の実施形態による流れ図である。
【図５】本開示の実施形態による流れ図である。
【図６】本開示の実施形態による流れ図である。
【図１】
2008543182.tif 000017
【図２】
2008543182.tif 000018
【図３】
2008543182.tif 000019
【図４】
2008543182.tif 000020
【図５】
2008543182.tif 000021
【図６】
2008543182.tif 000022
【国際調査報告】
2008543182.tif 000023
2008543182.tif 000024