(57)【特許請求の範囲】
【請求項１】
ビデオエンコーダーに実装され、少なくとも一つのフレームヘッダと動画像データのペイロードとを含む符号化されたビットストリームを生成するための未符号化ビデオフレームの符号化方法であって、
最大の水平及び垂直符号化ブロックサイズにより決定される、前記未符号化ビデオフレームの最大符号化ブロックサイズ及び
最大の水平及び垂直予測ブロックサイズにより決定される、前記未符号化ビデオフレームの最大変換ブロックサイズ、
をそれぞれ求めるステップと、
前記未符号化ビデオフレームを、
前記最大の水平符号化ブロックサイズ以下の水平符号化ブロックサイズと、
前記最大の垂直符号化ブロックサイズ以下の垂直符号化ブロックサイズとを有する第１の符号化ブロックを含む複数の符号化ブロックに分けるステップと、
前記第１の符号化ブロックを、
水平及び垂直予測ブロックサイズを有する少なくとも一つの予測ブロックに分けるステップと、
前記第１の符号化ブロックを、前記最大の水平予測ブロックサイズ以下の水平変換ブロックサイズと、前記最大垂直予測ブロックサイズ以下の垂直変換ブロックサイズとを有する第１の変換ブロックを含む複数の変換ブロックに分けるステップと、
前記未符号化ビデオフレームを符号化し、前記符号化されたビットストリームからなる前記動画像データのペイロードを生成するステップと、を備え、
前記水平変換ブロックサイズ及び前記垂直変換ブロックサイズは、
少なくとも一部が、前記水平及び垂直符号化ブロックサイズと、前記水平及び垂直予測ブロックサイズとに依存すると共に、
前記ペイロードを生成するステップは、
前記未符号化ビデオフレームの符号化の間、前記水平及び垂直変換ブロックサイズの各々が８画素又は１６画素に等しいと判定するステップと、その結果として、
第１の変換により、前記第１の変換ブロックから第１の一組の整数変換係数を得るステップと、
前記第１の一組の整数変換係数各々を右へ２ビットシフトさせることにより、前記第１の一組の整数変換係数から第２の一組の整数変換係数を得るステップと、
第２の変換により、前記第２の一組の整数変換係数から第３の一組の整数変換係数を得るステップと、
前記第３の一組の整数変換係数各々を右へ２ビットシフトさせることにより、前記第３の一組の整数変換係数から第４の一組の整数変換係数を得るステップと
を順次実行することにより、１６ビット整数値で表される整数変換係数を取得する
ことを特徴とする、方法。
【請求項２】
ビデオエンコーダーに実装される請求項１記載の方法であって、
前記複数の変換ブロックの各々は、一組の変換係数を含み、そして、
前記複数の変換ブロックの各々に、対応する変換ブロックパターンフラグを変換ブロックヘッダにセットするステップを更に備え、
前記一組の変換係数が、ゼロ以外の値を有する少なくとも一つの変換係数を含む場合、
前記対応する変換ブロックパターンフラグには、第１のフラグ値が与えられ、
それ以外の場合、
前記対応する変換ブロックパターンフラグには、第２のフラグ値が与えられる
ことを特徴とする、方法。
【請求項３】
ビデオエンコーダーに実装される請求項１記載の方法であって、
前記第１の変換及び前記第２の変換は、方程式y = T_8x8*xによって表され、そして、T_8x8は、以下によって表されることを特徴とする、方法。
0006704932.tif 000014
【請求項４】
ビデオエンコーダーに実装される請求項１記載の方法であって、
前記前記水平及び垂直変換ブロックサイズの各々が１６画素に等しいと判定された場合、
前記第１及び前記第２の変換は、方程式y = T_16x16*xによって表され、そして、T_16x16は、係数t0 … t15を有する行列であり、
式中、t0…t15は以下により定義されることを特徴とする、方法。
0006704932.tif 000015
【請求項５】
ビデオエンコーダーに実装される請求項１記載の方法であって、
前記水平及び垂直符号化ブロックサイズと前記水平及び垂直予測ブロックサイズとが各々８画素に等しい場合、
前記未符号化ビデオフレームの輝度特性のために前記水平及び垂直変換ブロックサイズをセットするステップを更に備えることを特徴とする、方法。
【請求項６】
ビデオエンコーダーに実装される請求項１記載の方法であって、
前記水平及び垂直符号化ブロックサイズと、前記水平及び垂直予測ブロックサイズとが各々１６画素に等しい場合、
前記未符号化ビデオフレームの輝度特性のために前記水平及び垂直変換ブロックサイズをセットするステップを更に備えることを特徴とする、方法。
【請求項７】
ビデオエンコーダーにより実装される請求項１記載の方法であって、
前記ビデオエンコーダーにより実装される方法は、前記水平及び垂直符号化ブロックサイズが各々３１画素を超える場合、前記未符号化ビデオフレームの輝度特性のために各々１６画素に等しいように、前記水平及び垂直変換ブロックサイズをセットするステップを更に備えることを特徴とする、方法。
【請求項８】
ビデオエンコーダーにより実装される請求項１記載の方法であって、
前記水平及び垂直符号化ブロックサイズと、前記水平及び垂直予測ブロックサイズとが各々１６画素に等しい場合、
前記ビデオエンコーダーにより実装される方法は、前記未符号化ビデオフレームの色度特性のために各々８画素に等しいように、前記水平変換ブロックサイズ及び前記垂直変換ブロックサイズをセットするステップを更に備えることを特徴とする、方法。
【請求項９】
ビデオエンコーダーにより実装される請求項１記載の方法であって、
前記水平及び垂直符号化ブロックサイズが各々３１画素を超える場合、
前記ビデオエンコーダーにより実装される方法は、前記未符号化ビデオフレームの色度特性のために各々８画素に等しいように、前記水平及び垂直変換ブロックサイズをセットするステップを更に含むことを特徴とする、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像データ信号の符号化及び復号化に関し、より詳しくは、劣化を補償する、コードブックを利用したアダプティブフィルタによる符号化及び復号化に関する。
【背景技術】
【０００２】
デジタル画像、音声／オーディオ、グラフィクス、及びビデオ（動画像）等のデジタルマルチメディアの登場により、コンテンツの信頼性の高い格納、通信（communication）、送信（transmission）、検索及びアクセスが比較的容易にできるようになったので、様々なアプリケーションの性能が顕著に向上し、また、新しいアプリケーションが作成された。
一般的に、デジタルマルチメディアのアプリケーションは数多くあり、娯楽、情報、医学、及びセキュリティを含む幅広い分野を網羅しており、数多くの方法で社会に貢献している。
カメラやマイクロホンのようなセンサにより取得されるマルチメディアはアナログである場合も多く、パルス符号変調（ＰＣＭ）方式によるデジタル化プロセスによりデジタル化される。しかし、デジタル化の直後のデータ量は、スピーカ及び／またはＴＶディスプレイで必要となるアナログ表示を再形成するために必要であるので、非常に大きくなる。したがって、大容量のデジタルマルチメディアコンテンツを効率を良く通信、蓄積（格納）、または送信するためには、生のＰＣＭ形式から圧縮された表現形式に変換する必要がある。このように、マルチメディア（コンテンツ）の圧縮のために数多くの技術が発明されてきた。
近年、動画像データの圧縮技術は、圧縮されていないデジタル動画像に匹敵するほどの高い心理視覚品質（ｐｓｙｃｈｏ−ｖｉｓｕａｌ  ｑｕａｌｉｔｙ）を維持しつつ、多くの場合は高い圧縮率（１０〜１００）を達成するほど極めて高性能となっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
数多くの標準機関による動画像符号化規格（例えばＭＰＥＧ―１、ＭＰＥＧ―２、Ｈ．２６３、ＭＰＥＧ−４  ｐａｒｔ２、ＭＰＥＧ―４  ＡＶＣ／Ｈ．２６４、ＭＰＥＧ―４  ＳＶＣ及びＭＶＣ）、産業界主導のデファクト・スタンダード（例えばＷｉｎｄｏｗｓ  Ｍｅｄｉａ  Ｖｉｄｅｏ、ＲｅａｌＶｉｄｅｏ、Ｏｎ２  ＶＰ等）に代表されるように、動画像圧縮技術において今日まで驚異的な進歩が見られるが、さらに高品質な、より高い解像度の、今では三次元（立体）の動画像をいつでもどこでも見たいという、さらに高まる消費者の欲求により、幅広いクライアント・デバイス（ＰＣ／ラップトップ、ＴＶ、セットトップボックス、ゲームコンソール、携帯メディアプレーヤ／デバイス、スマートフォン及びウェアラブルなコンピューター等）に、ＤＶＤ／ＢＤを介して、あるいは無線放送、ケーブル／衛星、有線及びモバイルネットワークを通じて等、さまざまな手段により動画像を配信する必要があり、さらに高いレベルの動画像圧縮が求められている。
このことは、標準化団体による規格において、ＩＳＯ  ＭＰＥＧによる、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）の近年始まった取り組みからも明らかであり、そして、ＩＴＵ−Ｔ規格委員会によるＨ．２６５の動画像圧縮に対する長年の調査研究の技術をベースに新たな技術が組み合わせられることが期待されている。
【０００４】
上述した規格は全て、動画像のフレーム間の動きを補償することにより時間的冗長性を削減する、一般的なフレーム間予測符号化の枠組みを採用する。基礎概念は、ブロックマッチング法を用いて隣接した動画像間の時間的依存を取り除くことである。
符号化プロセスの開始時に、未符号化動画像シーケンスで各フレームは、３つのカテゴリ（Ｉタイプフレーム、Ｐタイプフレーム、Ｂタイプフレーム）のうちの１つに分類される。Ｉタイプフレームはイントラコード化される。すなわち、動画像の符号化のためにフレームそのものからの情報だけを用い、フレーム間動き補償技術は使用されない（フレーム内動き補償技術を適用できるにもかかわらず）。
【０００５】
その他、２つのタイプのフレーム（Ｐタイプ及びＢタイプ）は、フレーム間の動き補償技術を使用して符号化される。ＰフレームピクチャとＢフレームピクチャの違いは、動き補償のために使用する参照動画像の時間的方向である。Ｐフレームピクチャは過去の動画像（表示順序）からの情報を利用するが、Ｂフレームピクチャは過去及び未来両方の動画像（表示順序）からの情報を利用することができる。
【０００６】
フレーム予測タイプがＰタイプ及びＢタイプの場合、各フレームは各画素の輝度成分と色度成分の係数により表現される画素ブロックに分けられ、ブロックごとに一つ以上の動きベクトルが得られる。（なぜなら、Ｂフレームピクチャは、未来と過去の符号化フレーム両方からの情報を利用することができるので、２つの動きベクトルがそれぞれのブロックごとに符号化できるからである。）
動きベクトル（ＭＶ）は、現ブロックの位置から、もう一方の過去に符号化されたフレーム（表示順序においての過去または未来のフレームでもよい）の類似のブロックの位置までの空間変位を表す。そしてそれぞれ、参照ブロック及び参照フレームと呼ばれる。参照ブロックと現ブロックとの差が求められ（もしあれば）、そしてそこから残差（「残差信号」とも呼ばれる）が得られる。従って、ブロックの全コンテンツではなく、残差及び動きベクトルだけを、インター符号化フレームのブロックごとに符号化することが必要とされる。動画像シーケンスのフレーム間のこの種の時間的冗長性を取り除くことにより、動画像シーケンスを圧縮することができる。
【０００７】
動画像データを更に圧縮するために、フレーム間予測またはフレーム内予測技術を適用した後、残差信号の係数は大抵の場合は空間領域から周波数領域へ変換される（例えば離散型コサイン変換（「ＤＣＴ」）または離散サイン変換（「ＤＳＴ」）を使用して）。普通の動画像（人間が認識できる通常の動画像シーケンスを構成するタイプの動画像）では、常に高周波成分より低周波成分の方が強い。
従って、残差信号のエネルギー圧縮は、空間領域でするよりも周波数領域でする方が効率がよい。順方向変換の後、係数及び動きベクトルは、パケット化の前、または、例えばインターネットのようなネットワークを介した伝送のための処理前に、量子化及びエントロピー符号化され得る。
【０００８】
復号化装置側では、空間残差信号を復元させるために逆量子化及び逆変換が適用される。これらは、多くの動画像圧縮規格において、典型的な変換／量子化プロセスである。それから、最初の未符号化動画像シーケンスの再形成されたバージョンを生成するために、逆予測処理を行うことができる。
【０００９】
従前の規格では、符号化で使用されるブロックは、通常１６×１６画素であった（多くの動画像符号化規格においてマクロブロックと呼ばれる）。しかし、これらの規格の開発により、フレームサイズは更に大きくなり、そして多くのデバイスに、「高解像度」（または「ＨＤ」）フレームサイズ（例えば２０４８×１５３０画素）より高度な高解像度で表示する機能が備わった。
従って、これらのフレームサイズのための動きベクトルを効率的に符号化するために、より大きいブロック（例えば６４×６４画素）を有することは望ましいと言える。空間領域から周波数領域へ変換される残差信号のブロックのサイズを増大させることも望ましいこととなる。
【図面の簡単な説明】
【００１０】
【図１】一実施例に従う、典型的な動画像符号化／復号化システムを図示する。
【図２】一実施例に従う、典型的な符号化デバイスのいくつかのコンポーネントを図示する。
【図３】一実施例に従う、典型的な復号化デバイスのいくつかのコンポーネントを図示する。
【図４】少なくとも一つの実施例に従う、典型的なビデオエンコーダーのブロック図を図示する
【図５】少なくとも一つの実施例に従う、典型的な動画像復号化装置のブロック図を図示する。
【図６】少なくとも一つの実施例に従う、変換ブロック処理ルーチンを図示する。
【図７】少なくとも一つの実施例に従う、変換ブロックサイズ選択サブルーチンを図示する。
【図８】少なくとも一つの実施例に従う、順方向整数変換サブルーチンを図示する。
【図９】少なくとも一つの実施例に従う、二重変換サブルーチンを図示する。
【図１０】少なくとも一つの実施例に従う、変換ブロック復元ルーチンを図示する。
【図１１】少なくとも一つの実施例に従う、逆整数変換サブルーチンを図示する。
【発明を実施するための形態】
【００１１】
続く詳細な説明は、主に、プロセッサと、プロセッサ用のメモリ記憶デバイスと、被接続ディスプレイ装置と、入力装置とを含む従来のコンピューター・コンポーネントによるプロセスと演算の記号表現とにより表現される。さらにまた、これらのプロセス及び演算では、リモート・ファイルサーバーと、サーバーコンピューターと、メモリ記憶デバイスとを含む、異機種分散コンピューター環境において従来のコンピューター構成要素を利用することができる。これらの従来の各分散コンピューター構成要素は、ネットワークを介してプロセッサにアクセス可能である。
【００１２】
フレーズ「一実施例において」、「少なくとも一つの実施例において」、「各種実施形態において」、「いくつかの実施例において」等が、繰り返し本願明細書において使用され得る。この種のフレーズは同じ実施例を必ず示すというわけではない。
文脈から判断して明らかにそうでないと分かる以外は、用語「備える」、「有する」、及び「含む」は同義である。動画像間／動画像内予測及び変換符号化を使用するという点で、一般的に上記した典型的な「複合型」動画像符号化アプローチにおいて各種実施形態が記載される。
【００１３】
これより、図面にて図示したような発明を実施するための形態が詳細に参照される。実施例が図面及び図面に関する説明に関連して記載される一方、本開示内容の要旨を逸脱しない範囲で、明示的に図示及び／または記載されているか否かを問わず、すべての代替物、変形例、均等物を含み、代替及び／または等価な実施態様が、図を用いて記載される特定の実施例と置換されることができると当業者により認められる。さまざまな別の実施例において、本願明細書にて開示される実施例の範囲を制限せずに、補助装置または図示のデバイスの組合せが、追加または組み合わせられ得る。
【００１４】
［典型的な動画像符号化／復号化システム］
図１は、少なくとも一つの実施例に従う、典型的な動画像符号化／復号化システム１００を図示する。
符号化デバイス２００（図２にて図示・後述）及び復号化デバイス３００（図３にて図示・後述）は、ネットワーク１０４を介してデータ通信する。
符号化デバイス２００は、ストレージ・エリア・ネットワーク（「ＳＡＮ」）、高速シリアルバス、または他の適切な通信技術といった直接のデータ接続を介してか、またはネットワーク１０４（図１の破線により示される）を介して、未符号化動画像ソース１０８とデータ通信し得る。同様に、復号化デバイス３００は、記憶領域ネットワーク（「ＳＡＮ」）、高速シリアルバス、または他の適切な通信技術といった直接のデータ接続を介してか、またはネットワーク１０４（図１の破線によって示される）を介して、任意の符号化動画像ソース１１２とデータ通信し得る。
いくつかの実施例において、符号化デバイス２００、復号化デバイス３００、符号化動画像ソース１１２及び／または未符号化動画像ソース１０８は、一つ以上の複製及び／または配信された、物理的または論理的なデバイスを備えることができる。多くの実施例において、図示されるより多くの符号化デバイス２００、復号化デバイス３００、未符号化動画像ソース１０８及び／または符号化動画像ソース１１２があってもよい。
【００１５】
各種実施形態において、符号化デバイス２００は通常、ネットワーク１０４を介して、例えば復号化デバイス３００から要求を受け、それに応答できるネットワークに接続されたコンピューターであってもよい。
各種実施形態において、復号化デバイス３００は、ネットワークに接続されたフォームファクタを有するコンピューター（例えば携帯電話；腕時計、ハンズアップディスプレイまたは他の着用できるコンピューター；専用のメディアプレーヤ；タブレット型コンピューター；自動車両ヘッドユニット；オーディオビデオオンデマンド（ＡＶＯＤ）システム；専用のメディアコンソール；ゲームデバイス；「セットトップボックス」；デジタルビデオテープレコーダ；テレビ；汎用コンピューター）であってもよい。
各種実施形態において、ネットワーク１０４は、インターネット、一つ以上のローカルエリアネットワーク（「ＬＡＮ」）、一つ以上の広域ネットワーク（「ＷＡＮ」）、セルラーデータネットワーク及び／または他のデータネットワークを含むことができる。ネットワーク１０４は、さまざまな点で、有線でも無線ネットワークでもよい。
【００１６】
［典型的な符号化デバイス］
図２には、典型的な符号化デバイス２００のいくつかのコンポーネントが図示される。いくつかの実施例において、符号化デバイスは、図２に示されるより多くのコンポーネントを含むことができる。しかしながら、実施例を開示するために、これら通常の従来コンポーネント全てを示す必要はない。
図２に示すように典型的な符号化デバイス２００は、ネットワーク（例えばネットワーク１０４）に接続するためのネットワークインターフェース２０４を含む。典型的な符号化デバイス２００はまた、処理ユニット２０８と、メモリ２１２と、任意のユーザー入力２１４（例えば英数字キーボード、キーパッド、マウスまたは他のポインティングデバイス、タッチスクリーン及び／またはマイクロホン）と、任意のディスプレイ２１６とを含む。そして、全てがバス２２０を介してネットワークインターフェース２０４に相互接続される。メモリ２１２は通常、ＲＡＭと、ＲＯＭと、大容量永久（不揮発性）記録装置（例えばディスクドライブ、フラッシュメモリ等）とを備える。
【００１７】
典型的な符号化デバイス２００のメモリ２１２は、多くのソフトウェアサービスのためのプログラムコードだけでなく、オペレーティングシステム２２４も格納する。例えばソフトウエアサービスは、変換ブロック処理ルーチン６００（図６を参照し後述）を実行するための指示を備える、ソフトウェア実装のフレーム間ビデオエンコーダー４００（図４を参照し後述）である。メモリ２１２は、音声／視覚のメディア作品（例えば、映画及び／またはテレビエピソード）の符号化されていないコピーを表現することができる動画像データファイル（図示せず）を保存することもできる。
これらの、そしてまた他の、ソフトウェアコンポーネントを、非一時的なコンピューター読み取り可能な記録媒体２３２（例えばフロッピーディスク、テープ、ＤＶＤ／ＣＤ―ＲＯＭドライブ、ＵＳＢドライブ、メモリーカード等）と連動するドライブメカニズム（図示せず）を用いて、符号化デバイス２００のメモリ２１２へロードすることができる。
【００１８】
運用においてオペレーティングシステム２２４は、符号化デバイス２００のハードウェア及び他のソフトウェアリソースを管理して、そして、ソフトウエア実装のフレーム間ビデオエンコーダー４００といった、ソフトウェアアプリケーションに共通のサービスを提供する。
様々なソフトウェアアプリケーション（例えばソフトウエア実装のフレーム間ビデオエンコーダー４００）のための、ネットワークインターフェース２０４を介したネットワーク通信、入力２１４を介したデータの受信、任意のディスプレイ２１６を介したデータの出力、及びメモリ２１２の割り当て等といった、ハードウェア機能のために、オペレーティングシステム２２４は符号化デバイスで実行されているソフトウェアと、ハードウェアとの間で仲介役として機能する。
【００１９】
いくつかの実施例において符号化デバイス２００は、未符号化動画像ソース１０８と通信を行うための特殊な未符号化ビデオインターフェース２３６（例えば高速シリアルバス等）を更に備えることができる。いくつかの実施例において、符号化デバイス２００は、ネットワークインターフェース２０４を介して未符号化動画像ソース１０８と通信することができる。他の実施態様においては、未符号化動画像ソース１０８を、メモリ２１２またはコンピューター読み取り可能な記録媒体２３２に常駐させることができる。
【００２０】
典型的な符号化デバイス２００は、従来の汎用コンピューターに通常適合すると記載されているが、符号化デバイス２００は、各種実施形態に従って動画像を符号化するための指示を実行することができる多くのデバイスのいずれかでもよい（例えば典型的なソフトウエア実装のビデオエンコーダー４００及び変換ブロック処理ルーチン６００）。そして例えば、ビデオ録画装置、ビデオ・コプロセッサ及び／またはアクセラレータ、パーソナルコンピューター、ゲーム機、セットトップボックス、携帯またはウェアラブルなコンピューター、スマートフォン、または他のいかなる好適な装置でもよい。
【００２１】
一つの例として、符号化デバイス２００をオンデマンドのメディアサービス（図示せず）を促進するために作動させることができる。少なくとも一つの典型的な実施形態において、オンデマンドのメディアサービスは、メディア作品（例えば動画像コンテンツ）のデジタルコピーを作品ごと及び／または購読料ベースでユーザーに提供するオンラインオンデマンドのメディアストアを促進するために、符号化デバイス２００を作動させることができる。オンデマンドのメディアサービスは、未符号化動画像ソース１０８からこの種のメディア作品のデジタルコピーを得ることができる。
【００２２】
［典型的な復号化デバイス］
図３には、典型的な復号化デバイス３００のいくつかのコンポーネントが図示される。いくつかの実施例において復号化デバイスは、図３に示されるより多くのコンポーネントを含むことができる。しかしながら、通常これらの従来のコンポーネント全てを、実施例を開示するために示す必要はない。
図３に示すように、典型的な復号化デバイス３００は、ネットワーク（例えばネットワーク１０４）に接続するためのネットワークインターフェース３０４を含む。典型的な復号化デバイス３００はまた、処理ユニット３０８と、メモリ３１２と、任意のユーザー入力３１４（例えば英数字キーボード、キーパッド、マウスまたは他のポインティングデバイス、タッチスクリーン及び／またはマイクロホン）と、任意のディスプレイ３１６と、任意のスピーカ３１８とを含む。そして、全てがバス３２０を介してネットワークインターフェース３０４に相互接続される。メモリ３１２は通常、ＲＡＭと、ＲＯＭと、大容量永久記録装置（例えばディスクドライブ、フラッシュメモリ等）とを備える。
【００２３】
典型的な復号化デバイス３００のメモリ３１２は、多くのソフトウェアサービスのためのプログラムコードだけでなく、オペレーティングシステム３２４も格納することができる。ソフトウェアサービスは例えば変換ブロック復元ルーチン１０００（図１０を参照して後述）を実行するための指示を備えたソフトウエア実装の動画像復号化装置５００（図５を参照して後述）である。
メモリ３１２は、例えば映画及び／またはテレビエピソードといった音声／視覚のメディア作品を符号化したコピーといった動画像データファイル（図示せず）を格納することもできる。これらの、そしてまた他の、ソフトウェアコンポーネントは、非一時的なコンピューター読み取り可能な記録媒体３３２（例えば、フロッピーディスク、テープ、ＤＶＤ／ＣＤＲＯＭドライブ、メモリーカード等）を伴う駆動機構（図示せず）を用いた復号化デバイス３００のメモリ３１２へロードされる。
【００２４】
運用においてオペレーティングシステム３２４は、復号化デバイス３００のハードウェア及び他のソフトウェアリソースを管理して、そして、例えばソフトウエア実装の動画像復号化装置５００といった、ソフトウェアアプリケーションのための共通のサービスを提供する。例えばネットワークインターフェース３０４を介するネットワーク通信、入力３１４を介したデータの受信、任意のディスプレイ３１６及び／または任意のスピーカ３１８を介した出力データの出力、及びメモリ３１２の割り当て等といった、ハードウェア機能のために、オペレーティングシステム３２４は、符号化デバイスで実行されるソフトウェアと、ハードウェアとの間で仲介役として動作する。
【００２５】
いくつかの実施例において、例えば符号化動画像ソース１１２と通信するために、復号化デバイス３００は、高速シリアルバス等のような、任意の符号化ビデオインターフェース３３６を更に備えることができる。いくつかの実施例において復号化デバイス３００は、ネットワークインターフェース３０４を介して符号化動画像ソース（例えば符号化動画像ソース１１２）と通信することができる。他の実施態様において、符号化動画像ソース１１２は、メモリ３１２またはコンピューター読み取り可能な記録媒体３３２内に常駐させてもよい。
【００２６】
復号化デバイス３００の典型例として、従来の汎用コンピューターを示しているが、典型的なソフトウエア実装の動画像復号化装置５００及び変換ブロック復元ルーチン８００といった、各種実施形態に従う動画像データを復号化するためのプログラムを実行できる多くのデバイスであれば、いずれのものでもよい。例えば、ビデオ録画装置、ビデオ・コプロセッサ及び／またはアクセラレータ、パーソナルコンピューター、ゲーム機、セットトップボックス、携帯またはウェアラブルなコンピューター、スマートフォンまたはその他のいかなる好適な装置であってもよい。
【００２７】
例えば、復号化デバイス３００はオンデマンドのメディアサービスと協同して動作させることができる。少なくとも一つの典型的な実施形態において、オンデマンドのメディアサービスは、復号化デバイス３００を操作するユーザーに、作品ごと及び／または購読料ベースでメディア作品（例えば動画像コンテンツ）のデジタルコピーを提供することができる。復号化デバイスは、未符号化動画像ソース１０８から、例えば、ネットワーク１０４を介した符号化デバイス２００を介して、この種のメディア作品のデジタルコピーを得ることができる。
【００２８】
［ソフトウエア実装のフレーム間ビデオエンコーダー］
図４は、少なくとも一つの実施例に従う残差変換技術を採用するソフトウエア実装のフレーム間ビデオエンコーダー４００（以降「符号化装置４００」）の一般的な機能ブロック図を示す。表示順にある動画像シーケンスの一つ以上の未符号化ビデオフレーム（ｖｉｄｆｒｍｓ）を、シーケンサ４０４に提供することができる。
【００２９】
シーケンサ４０４は、予測符号化（predictive coding）のピクチャタイプ（例えばＩ、ＰまたはＢ）を各未符号化ビデオフレームに割り当てると共に、動き予測のためフレームシーケンスまたはフレームシーケンス・グループを符号化順に並べ替えることができる（例えばＩタイプフレームにＰタイプフレームが続き、更にＢタイプフレームが続くというように）。並べ替えられた未符号化ビデオフレーム（ｓｅｑｆｒｍｓ）は、その後ブロックインデクサ４０８に符号化順に入力されることができる。
【００３０】
各々の並べられた未符号化ビデオフレーム（ｓｅｑｆｒｍｓ）のためにブロックインデクサ４０８は、現フレームの最大符号化ブロックサイズ（「ＬＣＢ」）（例えば６４×６４画素）を定めることができ、そして、その未符号化ビデオフレームを符号化ブロック（ｂｌｋｓ）の配列に分けることができる。与えられたフレームの範囲内の個々の符号化ブロックは、例えば４×４画素から現フレームのＬＣＢサイズまで、サイズが変化し得る。
【００３１】
各符号化ブロックは、それから一つずつ差分器４１２に入力され、そして、先に符号化された符号化ブロックから生成された、対応する予測信号ブロック（ｐｒｅｄ）を用いて、各符号化ブロックの差分が算出され得る。符号化ブロック（ｃｂｌｋｓ）は、予測ブロック（ｐｒｅｄ）を生成するために、動き推定器４１６にも送られる。
差分器４１２で差分を算出した後、得られた残差ブロック（ｒｅｓ）は変換器４２０（後述）により、周波数領域表現に順方向変換され得る。そして、変換係数（ｔｃｏｆ）のブロックとなる。変換係数（ｔｃｏｆ）のブロックはそれから量子化器４２４に送られ得る。そして、変換係数（ｔｃｏｆ）のブロックは、エントロピー符号化器４２８と局部復号化ループ４３０と両方に送られることができる量子化係数（ｑｃｆ）のブロックとなる。
【００３２】
局部復号化ループ４３０の先頭で、変換係数（ｔｃｏｆ´）のブロックは、逆量子化器４３２により逆量子化され、そして逆量子化された残差ブロック（ｒｅｓ´）を生成するために、逆量子化した変換係数（ｔｃｏｆ´）のブロックを逆変換器４３６に渡すことができる。
局部復号ブロック（ｒｅｃ）を生成するために、動き補償予測器４４２からの予測ブロック（ｐｒｅｄ）を、加算器４４０で、逆量子化された残差ブロック（ｒｅｓ´）に追加することができる。それから局部復号ブロック（ｒｅｃ）は、フレームアセンブラ及びデブロックフィルタリングプロセッサ４４４に送られ得る。そして、そこではブロックノイズが低減され、復元フレーム（ｒｅｃｄ）が組み立てられる。そしてその復元フレーム（ｒｅｃｄ）は、動き推定器４１６及び動き補償予測器４４２のための参照フレームとして使用され得る。
【００３３】
エントロピー符号化器４２８は、量子化変換係数（ｑｃｆ）、差分動きベクトル（ｄｍｖ）、及び他のデータを符号化し、そして、符号化された動画像ビットストリーム４４８を生成する。符号化された動画像ビットストリーム４４８は未符号化動画像シーケンスのフレームごとに、符号化動画像データ（例えば、符号化量子化変換係数（ｑｃｆ）及び差分動きベクトル（ｄｍｖ））及び、符号化フレームヘッダ（例えば、現フレームのＬＣＢサイズといった構文情報）を含むことができる。
【００３４】
［順方向整数変換手順］
変換器４２０の機能についていうと、変換器は、各符号化ブロックの輝度値及び色度値のための残差値のブロックを受け取り、残差値のブロックを一つ以上の輝度変換ブロック及び色度変換ブロックに分ける。
【００３５】
少なくとも一つの実施例において、符号化ブロックは、現符号化ブロックサイズならびに、符号化ブロックの動き予測のために使用される予測ブロックのサイズに従いサイズ設定される変換ブロックに分けられる。例えば、変換ブロックサイズは、以下のテーブル１に示される組合せに従い割り当てられることができる。変換器４２０は、最大変換ブロックサイズフラグを現フレームのピクチャヘッダにセットすることもできる。
【００３６】
［テーブル１］
0006704932.tif 000002
【００３７】
符号化ブロックが変換ブロックに分割されたあと、変換ブロックの残差値は空間領域から周波数領域へ、例えば順方向ＤＣＴ変換演算により変換される。少なくとも一つの実施例において、符号化効率を高めるために、変換ブロックの残差値の整数の相当値が求められ、そして、順方向整数ＤＣＴ変換演算を行うことができる。更に符号化効率を高めるために、動画像符号化プロセスの単一命令多重データ（ＳＩＭＤ）命令アーキテクチャを利用することは、有利であってもよい。
しかし、最も一般的なＳＩＭＤ命令アーキテクチャの実装には、１６ビットのビット幅が必要である。従って少なくとも一つの実施例では、１６ビット整数で残差値及び変換係数を表すことができるのを確実にするために、いくつかの順方向変換演算後の残差値に対して、ビットシフト演算を行うことができる（そして、復号化装置側では、いくつかの逆変換演算後の変換係数に対して行うことができる）。
【００３８】
少なくとも一つの実施例において変換器４２０は、４×４変換ブロックに対して、以下の方程式に従い順方向整数ＤＣＴ変換演算を行うことができる。
0006704932.tif 000003
0006704932.tif 000004
【００３９】
少なくとも一つの実施例において変換器４２０は、８×８変換ブロックの場合、以下の方程式に従い順方向整数ＤＣＴ変換演算を行うことができる。
0006704932.tif 000005
0006704932.tif 000006
【００４０】
８×８順方向整数ＤＣＴ変換演算の後、１６ビット演算を確実にするために変換器４２０は、変換係数の値を２ビット右にビットシフトさせることができる。
【００４１】
少なくとも一つの実施例において変換器４２０は、１６×１６変換ブロックの場合、以下の方程式に従い順方向整数ＤＣＴ変換演算を実行することができる。
0006704932.tif 000007
0006704932.tif 000008
式中、ｔ０，ｔ１，ｔ２…ｔ１４，ｔ１５は、以下のテーブル２で定義される。
【００４２】
１６×１６順方向整数ＤＣＴ変換演算の後、１６ビット演算を確実にするために、変換器４２０は、変換係数の値を２ビット右にビットシフトさせることができる。
【００４３】
［テーブル２］
0006704932.tif 000009
【００４４】
符号化ブロック当たりの変換ブロックの数に応じて、各変換ブロックのＤＣ係数に対して付加的な変換演算を行うことにより、更に符号化効率を高めることができるかもしれない。ＤＣ係数は例えば上記の順方向整数ＤＣＴ変換演算の１つに従い、ＤＣ整数変換ブロックに集められ、再び変換される。このプロセスは、二重変換と呼ばれている。
【００４５】
［ソフトウエア実装のフレーム間復号化装置］
図５は、少なくとも一つの実施例に従い、対応するソフトウエア実装のフレーム間動画像復号化装置５００（以降「復号化装置５００」）逆残差変換技術の通常の機能ブロック図を示す。そして、復号化デバイス（例えば復号化デバイス３００）での使用に適している。復号化装置５００は、符号化装置４００での局部復号化ループ４３０と同じように機能することができる。
【００４６】
具体的には、符号化された動画像ビットストリーム５０４を、エントロピー復号化装置５０８に供給することができる。そしてエントロピー復号化装置５０８は、量子化係数のブロック（ｑｃｆ）、差分動きベクトル（ｄｍｖ）、付随的なメッセージデータパケット（ｍｓｇ―データ）、及び他のデータを復号化することができる。それから量子化係数ブロック（ｑｃｆ）は、逆量子化器５１２によって逆量子化されることができ、結果、逆量子化係数（ｔｃｏｆ´）となる。それから、逆量子化係数（ｔｃｏｆ´）は逆変換器５１６（後述）によって周波数領域から逆変換されることができ、結果、復号化残差ブロック（ｒｅｓ´）となる。
加算器５２０は、対応する動きベクトル（ｍｖ）を用いて、得られた、運動補償予測ブロック（ｐｒｅｄ）を追加することができる。得られた復号化動画像（ｄｖ）には、フレームアセンブラ及びデブロックフィルタリングプロセッサ５２４においてデブロックフィルタをかけられることができる。
フレームアセンブラ及びデブロックフィルタリングプロセッサ５２４の出力のブロック（ｒｅｃｄ）は、動画像シーケンスの再構成されたフレームを形成する。そして、それは復号化装置５００から出力されることができ、また、次の符号化ブロックを復号化するための動き補償予測器５３０のための参照フレームとして使用されることもできる。
【００４７】
［逆整数変換手順］
逆変換器５１６の機能性については、逆変換器は、逆量子化器５１２から、逆量子化された１６ビット整数変換係数のブロックを得る。変換器４２０（上記）によって行われる順方向整数ＤＣＴ変換演算を逆にし、残差値を復元させるために、逆変換器５１６は逆量子化器５１２から得られる変換係数に対して逆整数ＤＣＴ変換演算を行う。
【００４８】
現符号化ブロックの変換係数が二重変換された場合、後述のように、逆変換器は逆二重変換手順を行う。ＤＣ変換係数が逆変換されて、その対応する変換ブロックに挿入されたあと、逆変換器は、逆整数ＤＣＴ変換演算の実行に進む。
【００４９】
例えば少なくとも一つの実施例で、４×４変換ブロックに対応する１６ビット整数変換係数のブロックでは、逆変換器５１６は、以下の方程式に従い逆整数ＤＣＴ変換演算を行うことができる.
0006704932.tif 000010
0006704932.tif 000011
【００５０】
４×４逆整数ＤＣＴ変換演算の後、１６ビット演算を確実にするために、逆変換器は、得られた残差値の値を５ビット右にビットシフトさせることができる。
【００５１】
少なくとも一つの実施例において、８×８変換ブロックに対応する１６ビット整数変換係数のブロックでは、逆変換器５１６は、以下の方程式に従い逆整数ＤＣＴ変換演算を行うことができる。
0006704932.tif 000012
【００５２】
８×８逆整数ＤＣＴ変換演算の後、１６ビット演算を確実にするために、逆変換器は、得られた残差値の値を７ビット右にビットシフトさせることができる。
【００５３】
少なくとも一つの実施例において、１６×１６変換ブロックに対応する１６ビット整数変換係数のブロックでは、逆変換器５１６は、以下の方程式に従い逆整数ＤＣＴ変換演算を行うことができる。
0006704932.tif 000013
【００５４】
１６×１６逆整数ＤＣＴ変換演算の後、１６ビット演算を確実にするために、逆変換器は、得られた残差値の値を７ビット右にビットシフトさせることができる。
【００５５】
［変換ブロック処理ルーチン］
図６は、少なくとも一つの実施例（例えば符号化装置２００）での使用に適した変換ブロック処理ルーチン６００を図示する。当業者が認識するように、符号化プロセスのすべてのイベントが図６に図示されるというわけではない。むしろ明確にするため、例示の実施例を説明するのに合理的に関連するステップだけが示される。
【００５６】
変換ブロック処理ルーチン６００は実行ブロック６０４で、符号化されている現フレームの整数残差値の符号化ブロックを得る。
それから変換ブロック処理ルーチン６００は、変換ブロックサイズ選択サブルーチン７００（図７を参照し後述）に、現符号化ブロックのサイズと、動き予測で使用される対応する予測ブロックのサイズと、を提供する。そして、現符号化ブロックサイズ及び予測ブロックサイズの現組合せに対する、適切な色度及び輝度の変換ブロックサイズを返す。
【００５７】
それから変換ブロック処理ルーチン６００は実行ブロック６０８で、現符号化ブロックを、変換ブロックサイズ選択サブルーチン７００（上記）が返す色度及び輝度変換ブロックサイズに従う、１６ビット整数の残差値の一つ以上の変換ブロックに分ける。
【００５８】
現符号化ブロックの各変換ブロックは開始ループブロック６１２で、順番に処理される。
【００５９】
判断ブロック６１６において現変換ブロックの各々の残差値がゼロ値を有する場合、変換ブロック処理ルーチン６００は実行ブロック６２０で、対応する変換ブロックパターンフラグを現変換ブロックの変換ブロックヘッダにセットする。
【００６０】
そうでなければ判断ブロック６１６において、現変換ブロックの残差値の一つ以上がゼロ以外の値を有する場合、変換ブロック処理ルーチン６００は順方向整数変換サブルーチン８００（図８を参照し後述）を呼び出す。そして、順方向整数変換サブルーチン８００は対応ブロックの１６ビット整数変換係数を返す。
【００６１】
変換ブロック処理ルーチン６００は終了ループブロック６２４で、現符号化ブロック次の変換ブロックを処理するために（もしあれば）、開始ループブロック６１２へ戻って繰り返す。
【００６２】
判断ブロック６２８において現符号化ブロックの変換ブロックが二重変換され得る（例えば、１６または６４変換ブロックが、現符号化ブロックにある）場合、変換ブロック処理ルーチン６００は、現符号化ブロックの変換ブロックのＤＣ整数変換係数に対して付加的な変換演算を行い、１６ビット整数変換係数の対応する二重変換されたブロックを返す二重変換サブルーチン９００（図９を参照して後述）を呼び出すことができる。
【００６３】
二重変換サブルーチン９００が１６ビット整数変換係数の二重変換されたブロックを返したあとか、または、判断ブロック６２８を再度参照して、現符号化ブロックが二重変換ができない場合、変換ブロック処理ルーチン６００は、終端ブロック６９９で現符号化ブロックの終了とする。
【００６４】
［変換ブロックサイズ選択サブルーチン］
図７は、少なくとも一つの実施例（例えば変換ブロック処理ルーチン６００）での使用に適した変換ブロックサイズ選択サブルーチン７００を図示する。
【００６５】
変換ブロックサイズ判定サブルーチン７００は実行ブロック７０４で、符号化ブロックサイズと、現符号化ブロックの動き予測プロセスで使用される予測ブロックサイズとを得る。
【００６６】
判断ブロック７１２において現符号化ブロックの符号化ブロックサイズが８×８画素である場合、変換ブロックサイズ判定サブルーチン７００は判断ブロック７１６へ進む。
【００６７】
判断ブロック７１６において現符号化ブロックの予測ブロックサイズが８×８画素である場合、変換ブロックサイズ判定サブルーチン７００は実行ブロック７２０で、８×８輝度変換係数に現符号化ブロックの輝度変換ブロックサイズをセットし、そして実行ブロック７２４で変換ブロックサイズ判定サブルーチンは４×４色度変換係数に現符号化ブロックの色度変換ブロックサイズをセットする。
それから変換ブロックサイズ判定サブルーチンは戻りブロック７９９で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
【００６８】
判断ブロック７１６を再度参照する。現符号化ブロックのための予測ブロックサイズが８×８画素でない場合、変換ブロックサイズ判定サブルーチン７００は実行ブロック７２８で、４×４輝度変換係数に現符号化ブロックの輝度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチン７００は、実行ブロック７２４へと進む。
上述のように、変換ブロックサイズ判定サブルーチンは実行ブロック７２４で、４×４色度変換係数に現符号化ブロックの色度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチンは戻りブロック７９９で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
【００６９】
判断ブロック７１２を再度参照する。現符号化ブロックの符号化ブロックサイズが８×８画素でない場合、変換ブロックサイズ判定サブルーチン７００は判断ブロック７３６へと進む。
【００７０】
判断ブロック７３６において、現符号化ブロックの符号化ブロックサイズが１６×１６画素である場合、変換ブロックサイズ判定サブルーチン７００は判断ブロック７４０へ進む。
【００７１】
判断ブロック７４０において、現符号化ブロックのための予測ブロックサイズが１６×１６画素である場合、変換ブロックサイズ判定サブルーチン７００は実行ブロック７４４で、１６×１６輝度変換係数に現符号化ブロックの輝度変換ブロックサイズをセットし、それから、実行ブロック７４８で変換ブロックサイズ判定サブルーチンは、８×８色度変換係数に現符号化ブロックの色度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチンは、戻りブロック７９９で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
【００７２】
判断ブロック７４０を再度参照する。現符号化ブロックの予測ブロックサイズが１６×１６画素でない場合、変換ブロックサイズ判定サブルーチン７００は、実行ブロック７２８へ進む。
上述のように、変換ブロックサイズ判定サブルーチン７００は実行ブロック７２８で、４×４輝度変換係数に現符号化ブロックの輝度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチン７００は、実行ブロック７２４へ進む。
上述のように、変換ブロックサイズ判定サブルーチンは実行ブロック７２４で、４×４色度変換係数に現符号化ブロックの色度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチンは、戻りブロック７９９で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
【００７３】
判断ブロック７３６を再度参照する。現符号化ブロックの符号化ブロックサイズが１６×１６画素でない場合、変換ブロックサイズ判定サブルーチン７００は実行ブロック７４４へ進む。
上述のように、変換ブロックサイズ判定サブルーチン７００は実行ブロック７４４で、１６×１６輝度変換係数に現符号化ブロックの輝度変換ブロックサイズをセットし、それから、実行ブロック７４８で、変換ブロックサイズ判定サブルーチンは、８×８色度変換係数に現符号化ブロックの色度変換ブロックサイズをセットする。それから変換ブロックサイズ判定サブルーチンは、戻りブロック７９９で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
【００７４】
[順方向整数変換サブルーチン]
図８は、図９を参照して後述するが、少なくとも一つの実施例（例えば変換ブロック処理ルーチン６００または二重変換サブルーチン９００）での使用に適した順方向整数変換サブルーチン８００を図示する。
【００７５】
順方向整数変換サブルーチンは実行ブロック８０４で、例えば変換ブロック処理ルーチン６００から変換ブロックを得る。
【００７６】
判断ブロック８０８において、現変換ブロックが整数変換係数の４×４ブロックである場合、順方向整数変換サブルーチン８００は実行ブロック８１２で、４×４順方向変換（例えば上記の４×４順方向整数変換演算）を行う。それから順方向整数変換サブルーチン８００は、戻りブロック８９９で４×４整数変換で得た変換係数を返す。
【００７７】
判断ブロック８０８を再度参照する。現変換ブロックが整数変換係数の４×４ブロックでない（例えば整数変換係数の８×８、１６×１６、３２×３２または６４×６４ブロックである）場合、順方向整数変換サブルーチン８００は判断ブロック８１６へ進む。
【００７８】
判断ブロック８１６において、現変換ブロックが整数変換係数の８×８ブロックである場合、順方向整数変換サブルーチン８００は実行ブロック８２０で、８×８順方向変換（例えば上記の８×８順方向整数変換演算）を行う。順方向整数変換サブルーチン８００は実行ブロック８２４で、実行ブロック８２０で８×８整数変換を介して得られた変換係数を処理し、変換係数が１６ビット以下となることを確実にするために変換係数を右に二回ビットシフトさせる。順方向整数変換サブルーチン８００は、戻りブロック８９９でビットシフトさせられた変換係数を返す。
【００７９】
判断ブロック８１６を再度参照する。現変換ブロックが８×８ブロックの整数変換係数でない場合（例えば、１６×１６、３２×３２または６４×６４ブロックの整数変換係数である場合）、順方向整数変換サブルーチン８００は判断ブロック８２６へ進む。
【００８０】
判断ブロック８２６において、現変換ブロックが１６×１６ブロックの整数変換係数である場合、順方向整数変換サブルーチン８００は実行ブロック８２８で、１６×１６順方向変換（例えば上記の１６×１６順方向整数変換演算）を行う。それから順方向整数変換サブルーチン８００は、実行ブロック８２４へ進む。
上述のように、順方向整数変換サブルーチン８００は実行ブロック８２４で、実行ブロック８２０で８×８整数変換を介して得られた変換係数を処理し、変換係数が１６ビット以下となることを確実にするために変換係数を右に二回ビットシフトさせる。順方向整数変換サブルーチン８００は、戻りブロック８９９でビットシフトさせられた変換係数を返す。
【００８１】
判断ブロック８２６を再度参照する。現変換ブロックが１６×１６ブロックの整数変換係数より大きい（例えば３２×３２または６４×６４ブロックの整数変換係数である）場合、順方向整数変換サブルーチン８００は実行ブロック８３２で、大きな変換手順を行う。順方向整数変換サブルーチン８００は、戻りブロック８９９で大きな整数変換手順の結果を戻す。
【００８２】
［二重変換サブルーチン］
図９は、少なくとも一つの実施例（例えば変換ブロック処理ルーチン６００）で使用するのに適した二重変換サブルーチン９００を図示する。
【００８３】
二重変換サブルーチン９００は実行ブロック９０４で、現符号化ブロックのための中間整数変換係数の変換ブロックを得る。
【００８４】
二重変換サブルーチン９００は実行ブロック９０８で、中間の整数変換係数の各ブロックから中間のＤＣ係数を抽出する。
【００８５】
二重変換サブルーチン９００は実行ブロック９１２で、中間のＤＣ係数の変換ブロックを生成する。
【００８６】
それから二重変換サブルーチン９００は、順方向変換サブルーチン８００に中間のＤＣ係数を渡し、そして、順方向変換サブルーチン８００は、（たった今、二重変換された）ブロックの１６ビット整数変換係数を返す。
【００８７】
二重変換サブルーチン９００は、戻りブロック９９９で、二重変換された変換ブロックを返す。
【００８８】
［変換ブロック復元ルーチン］
図１０は、少なくとも一つの実施例（例えば復号化装置５００）で使用するのに適した変換ブロック復元ルーチン１０００を図示する。
当業者によって認識されるように、復号プロセスのすべてのイベントが図１０に図示されるというわけではない。
むしろ明確にするため、変換ブロック復元ルーチン１０００を説明するのに、合理的に関連するステップだけが示される。
【００８９】
変換ブロック復元ルーチン１０００は実行ブロック１００４で、例えば逆量子化器５１２から、逆量子化された変換係数のブロックを得る。
【００９０】
変換ブロック復元ルーチン１０００は実行ブロック１００５で、現符号化ブロックのサイズを求める。
【００９１】
変換ブロック復元ルーチン１０００は実行ブロック１００６で、現符号化ブロックのための、動き予測用の予測ブロックのサイズを求める。
【００９２】
変換ブロック復元ルーチン１０００は実行ブロック１００７で、現符号化ブロックサイズと、現符号化ブロックの動き予測用の予測ブロックのサイズと、の対応する組合せの予測ブロックのサイズを検索する。
【００９３】
変換ブロック復元ルーチン１０００はそれから実行ブロック１００８で、実行ブロック１００７（上記）で得た変換ブロックサイズに従い、逆量子化された変換係数を組み立て、１６ビット整数変換係数の一つ以上の変換ブロックとする。
【００９４】
判断ブロック１０２８において、現符号化ブロックの変換ブロックが二重変換されていない場合、変換ブロック復元ルーチン１０００は開始ループブロック１０３２へ進む（後述）。
現符号化ブロックの変換ブロックが二重変換されている（例えば１６ビット整数ＤＣ変換係数の二重変換されたブロックを含む）場合、変換ブロック復元ルーチン１０００は、逆整数変換サブルーチン１１００（図１１を参照して後述）を呼び出す。そして逆整数変換サブルーチン１１００は、現符号化ブロックの変換ブロックの１６ビット整数変換係数の二重変換されたブロックに対して最初の逆変換演算を行い、中間の１６ビット整数ＤＣ変換係数の対応するブロックを返す
【００９５】
変換ブロック復元ルーチン１０００は実行ブロック１０３０で、適切な１６ビット整数ＤＣ変換係数を１６ビット整数変換係数の対応ブロックに挿入して、開始ループブロック１０３２へ進む（後述）。
【００９６】
開始ループブロック１０３２を開始し、変換ブロック復元ルーチン１０００は、順番に１６ビット整数変換係数の各変換ブロックを処理する。
【００９７】
判断ブロック１０３６で、対応する変換ブロックのための変換ブロックパターンフラグが変換ブロックヘッダにセットされる場合、変換ブロック復元ルーチン１０００は終了ループブロック１０４０で、現符号化ブロックの１６ビット整数変換係数の次のブロック（あれば）を処理するために、開始ループブロック１０３２に戻り繰り返す。
【００９８】
判断ブロック１０３６で、対応する変換ブロックのための変換ブロックパターンフラグが変換ブロックヘッダにセットされない場合、変換ブロック復元ルーチン１０００は、復元された残差値のブロックを返す逆整数変換サブルーチン１１００（図１１を参照し後述）を呼び出す。
【００９９】
変換ブロック復元ルーチン１０００は終了ループブロック１０４０で、現符号化ブロックの次の変換ブロック（あれば）を処理するために、開始ループブロック１０３２に戻り、繰り返す
【０１００】
変換ブロック復元ルーチン１０００は、終端ブロック１０９９で終了する。
【０１０１】
［逆整数変換サブルーチン］
図１１は、少なくとも一つの実施例（例えば変換ブロック復元ルーチン１０００）で使用するのに適した逆整数変換サブルーチン１１００を図示する。
【０１０２】
逆整数変換サブルーチン１１００は実行ブロック１１０４で、例えば変換ブロック復元ルーチン１０００から、変換ブロックを得る。
【０１０３】
判断ブロック１１０８において、変換ブロックが４×４変換ブロックである場合、逆整数変換サブルーチン１１００は実行ブロック１１１０で、４×４逆整数変換（例えば上記の４×４逆整数変換）を実行する。逆整数変換サブルーチン１１００は実行ブロック１１１２で、得られた整数変換係数を５ビット右にビットシフトさせる。
逆整数変換サブルーチン１１００は、戻りブロック１１９９でビットシフトされた整数変換係数を返す。
【０１０４】
判断ブロック１１０８を再度参照する。変換ブロックが４×４変換ブロックでない場合、逆整数変換サブルーチン１１００は判断ブロック１１１６へ進む。
【０１０５】
判断ブロック１１１６において、変換ブロックが８×８変換ブロックである場合、逆整数変換サブルーチン１１００は実行ブロック１１１８で、８×８逆整数変換（例えば上記の８×８逆の整数変換）を実行する。逆整数変換サブルーチン１１００は実行ブロック１１２０で、得られた整数変換係数を７ビット右にビットシフトさせる。
逆整数変換サブルーチン１１００は、戻りブロック１１９９でビットシフトさせられた整数変換係数を返す。
【０１０６】
判断ブロック１１１６を再度参照する。変換ブロックが８×８変換ブロックでない場合、逆整数変換サブルーチン１１００は判断ブロック１１２６へ進む。
【０１０７】
判断ブロック１１２６で、変換ブロックが１６×１６変換ブロックである場合、逆整数変換サブルーチン１１００は実行ブロック１１２７で、１６×１６逆整数変換（例えば上記の１６×１６逆整数変換）を実行する。逆整数変換サブルーチン１１００は実行ブロック１１２８で、得られた整数変換係数を７ビット右にビットシフトさせる。
逆整数変換サブルーチン１１００は、戻りブロック１１９９でビットシフトさせられた整数変換係数を返す。
【０１０８】
判断ブロック１１２６を再度参照する。変換ブロックが１６×１６変換ブロック（例えば３２×３２または６４×６４変換ブロック）より大きい場合、逆整数変換サブルーチン１１００は実行ブロック１１３２で、大きな逆変換手順を実行する。
戻りブロック１１９９で、逆整数変換サブルーチン１１００は、大きな整数変換手順の結果を戻す。
【０１０９】
特定の実施例が図示され、本願明細書において記載されたが、当業者によって、本開示内容の要旨を逸脱しない範囲で、図を用いて記載される特定実施例は、別の及び／または等価な実施態様と置換されることができると認められる。本出願は、本願明細書において記載される実施例のいずれの改作または変形例も含めることを意図する。
【図１】
0006704932.tif 000016
【図２】
0006704932.tif 000017
【図３】
0006704932.tif 000018
【図４】
0006704932.tif 000019
【図５】
0006704932.tif 000020
【図６】
0006704932.tif 000021
【図７】
0006704932.tif 000022
【図８】
0006704932.tif 000023
【図９】
0006704932.tif 000024
【図１０】
0006704932.tif 000025
【図１１】
0006704932.tif 000026