【誤訳訂正書】
【提出日】平成27年2月2日(2015.2.2)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【発明の詳細な説明】
【発明の名称】ビデオコード化における固定小数点変換のための可変局所ビット深度増加
【技術分野】
【０００１】
本開示は、ビデオコード化に関し、より詳細には、ビデオコード化における固定小数点変換（fixed-point transform）に関する。
【背景技術】
【０００２】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー又は衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信及び受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコード化（ＡＶＣ：Advanced Video Coding）、又は提案されているＩＴＵ−Ｔ  Ｈ．２６５、高効率ビデオコード化（ＨＥＶＣ：High Efficiency Video Coding）によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技術など、ビデオ圧縮技術を実装する。
【０００３】
ビデオ圧縮技術は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び／又は時間的予測を実行し得る。ブロックベースのビデオコード化の場合、ビデオフレーム又はスライスはマクロブロックに区分され得る。各マクロブロックはさらに区分され得る。イントラコード化（Ｉ）フレーム又はスライス中のマクロブロックは、隣接マクロブロックに対する空間的予測を使用して符号化される。インターコード化（Ｐ又はＢ又は一般化されたＰ／Ｂ）フレーム又はスライス中のマクロブロックは、同じフレーム又はスライス中の隣接マクロブロックに対する空間的予測、あるいは他の参照フレームに対する時間的予測を使用し得る。
【０００４】
ビデオ圧縮技術はまた、コード化のための効率的な方法で、コード化されるべき現在フレームのビデオブロックと、参照フレームの予測ビデオブロックとの間の差分である、残差ビデオブロックデータを表すために線形変換を実行し得る。場合によっては、ビデオコード化装置は、カスケードバタフライ構造（cascaded butterfly structure）を使用して実行される線形変換の高速実装形態を使用し得る。変換を表すために使用されるカスケードバタフライ構造の数は変換のサイズに依存する。ビデオコード化装置内の計算量を低減するために、線形変換は、浮動小数点変換（floating point transform）ではなく固定小数点変換として実装され得る。但し、固定小数点実装は、変換を表すために使用されるバタフライ構造のカスケードレベルの各々において丸め誤差（rounding error）を導入し得る。従って、固定小数点変換の場合、累積丸め誤差は変換のサイズとともに増加する。
【発明の概要】
【０００５】
本開示では、ビデオコード化に関連する固定小数点変換において可変局所ビット深度増加を適用することによって、変換における丸め誤差を緩和するための技術について説明する。より詳細には、本技術は、ビデオコード化装置において固定小数点変換のサイズに基づいて定数値を選択し、その定数値に等しい値を用いて変換において可変局所ビット深度増加を適用することを含む。可変局所ビット深度増加を適用するための本技術は、固定小数点変換の前に定数値に等しいビット数だけ変換入力信号を左シフトし、固定小数点変換の後に定数値に等しいビット数だけ変換出力信号を右シフトすることを含む。
【０００６】
本技術によれば、固定小数点変換のサイズの定数値は、ビデオコード化装置に記憶された複数の異なる変換サイズのための複数の定数値から選択される。定数値の各々は、ビデオコード化によってサポートされる複数の異なる変換サイズのうちの１つについて事前計算される。固定小数点変換は、変換のサイズに依存するビット深度の損失により変換出力信号の丸め誤差を導入し得る。固定小数点変換において可変局所ビット深度増加を適用すると、変換のためのより高いビット深度の変換入力信号が与えられる。その上、固定小数点変換のサイズに基づいて計算された値を用いて可変局所ビット深度増加を適用すると、変換の固定小数点実装による丸め誤差が低減又は除去され得る。
【０００７】
一例では、本開示は、ビデオ信号をコード化する方法であって、本方法は、定数値の各々がビデオコード化に関連する複数の異なる変換サイズのうちの１つに関連する複数の定数値を記憶することと、ビデオコード化装置において固定小数点変換のサイズに基づいて定数値のうちの１つを選択することとを備える、方法を対象とする。本方法はさらに、ビデオコード化装置において、固定小数点変換の前に定数値に等しいビット数だけ変換入力信号を左シフトすること、及び固定小数点変換の後に定数値に等しいビット数だけ変換出力信号を右シフトすることによって、定数値に等しい値を用いて固定小数点変換において可変局所ビット深度増加を適用することを含む。
【０００８】
別の例では、本開示は、ビデオ信号をコード化するためのビデオコード化装置であって、本ビデオコード化装置は、定数値の各々がビデオ符号化に関連する複数の異なる変換サイズのうちの１つに関連する複数の定数値を記憶するメモリと、ビデオコード化装置において固定小数点変換のサイズに基づいて定数値のうちの１つを選択することと、固定小数点変換の前に定数値に等しいビット数だけ変換入力信号を左シフトすること、及び固定小数点変換の後に定数値に等しいビット数だけ変換出力信号を右シフトすることによって、定数値に等しい値を用いて固定小数点変換において可変局所ビット深度増加を適用することとを行うプロセッサとを備える、ビデオコード化装置を対象とする。
【０００９】
さらなる一例では、本開示は、ビデオ信号をコード化するためのビデオコード化装置であって、本ビデオコード化装置は、定数値の各々がビデオコード化に関連する複数の異なる変換サイズのうちの１つに関連する複数の定数値を記憶するための手段と、ビデオコード化装置において固定小数点変換のサイズに基づいて定数値のうちの１つを選択するための手段とを備える、ビデオコード化装置を対象とする。本ビデオコード化装置はさらに、固定小数点変換の前に定数値に等しいビット数だけ変換入力信号を左シフトすること、及び固定小数点変換の後に定数値に等しいビット数だけ変換出力信号を右シフトすることによって、定数値に等しい値を用いて固定小数点変換において可変局所ビット深度増加を適用するための手段を含む。
【００１０】
別の例では、本開示は、ビデオ信号をコード化するための命令を備えるコンピュータ可読記憶媒体であって、命令は、プロセッサ中で実行されると、定数値の各々がビデオコード化に関連する複数の異なる変換サイズのうちの１つに関連する複数の定数値を記憶することと、ビデオコード化装置において固定小数点変換のサイズに基づいて定数値のうちの１つを選択することと、ビデオコード化装置において、固定小数点変換の前に定数値に等しいビット数だけ変換入力信号を左シフトすること、及び固定小数点変換の後に定数値に等しいビット数だけ変換出力信号を右シフトすることによって、定数値に等しい値を用いて固定小数点変換において可変局所ビット深度増加を適用することとをプロセッサに行わせる、コンピュータ可読記憶媒体を対象とする。
【図面の簡単な説明】
【００１１】
【図１】システム内の発信源機器のビデオエンコーダと宛先機器のビデオデコーダとに関連する固定小数点変換において可変局所ビット深度増加を適用するための技術を利用し得る例示的なビデオ符号化及び復号システムを示すブロック図。
【図２】ビデオコード化に関連する変換のバタフライ構造を示す概念図。
【図３】ビデオコード化に関連する変換のカスケードバタフライ構造を示す概念図。
【図４】変換ユニットの固定小数点実装における丸め誤差を緩和するために変換ユニットにおいて可変局所ビット深度増加を適用するための技術を実装し得る例示的なビデオエンコーダを示すブロック図。
【図５】逆変換ユニットの固定小数点実装における丸め誤差を緩和するために逆変換ユニットにおいて可変局所ビット深度増加を適用するための技術を実装し得る例示的なビデオデコーダを示すブロック図。
【図６】変換ユニットにおいて同じく可変局所ビット深度増加を適用するための技術を実装し得る内部ビット深度増加（ＩＢＤＩ：internal bit-depth increase）が使用される、例示的なビデオエンコーダを示すブロック図。
【図７】逆変換ユニットにおいて同じく可変局所ビット深度増加を適用するための技術を実装し得る内部ビット深度増加（ＩＢＤＩ）が使用される、例示的なビデオデコーダを示すブロック図。
【図８】変換ユニットの固定小数点実装における丸め誤差を緩和するために変換ユニットにおいて可変局所ビット深度増加を適用する例示的な方法を示すフローチャート。
【図９】逆変換ユニットの固定小数点実装における丸め誤差を緩和するために逆変換ユニットにおいて可変局所ビット深度増加を適用する例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１２】
本開示では、変換において可変局所ビット深度増加を適用することによって、ビデオコード化に関連する変換の固定小数点実装によって導入される丸め誤差を緩和するための技術について説明する。より詳細には、本技術は、ビデオコード化装置において固定小数点変換のサイズに基づいて定数値を選択し、その定数値に等しい値を用いて変換において可変局所ビット深度増加を適用することを含む。可変局所ビット深度増加を適用するための本技術は、固定小数点変換の前に定数値に等しいビット数だけ変換入力信号を左シフトし、固定小数点変換の後に定数値に等しいビット数だけ変換出力信号を右シフトすることを含む。固定小数点変換のサイズの定数値は、ビデオコード化装置に記憶された複数の異なる変換サイズのための複数の定数値から選択される。定数値の各々は、ビデオコード化によってサポートされる複数の異なる変換サイズのうちの１つについて事前計算される。
【００１３】
図１は、システム１０内の発信源機器１２のビデオエンコーダ２０及び宛先機器１４のビデオデコーダ３０に関連する固定小数点変換において可変局所ビット深度増加を適用するための技術を利用し得る例示的なビデオ符号化及び復号システム１０を示すブロック図である。可変局所ビット深度増加の値が、複数の異なる変換サイズについて事前計算され、ビデオエンコーダ２０とビデオデコーダ３０とに記憶される。適切な可変局所ビット深度増加が、次いで、ビデオエンコーダ２０とビデオデコーダ３０とによってそれぞれの固定小数点変換のサイズに基づいて選択され得る。このようにして、可変局所ビット深度増加は、システム１０内の特定の変換の固定小数点実装によって導入される丸め誤差を緩和し得る。
【００１４】
図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先機器１４に送信する発信源機器１２を含む。発信源機器１２及び宛先機器１４は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、発信源機器１２及び宛先機器１４は、通信チャネル１６を介してビデオ情報を通信することができるワイヤレス通信デバイスを備え得、その場合、通信チャネル１６はワイヤレスである。
【００１５】
但し、ビデオコード化に関連する固定小数点変換において可変局所ビット深度増加を適用することに関係する本開示の技術は、必ずしもワイヤレスアプリケーション又は設定に限定されるとは限らない。例えば、これらの技術は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、又は他のシナリオに適用され得る。従って、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレス又は有線媒体の任意の組合せを備え得る。
【００１６】
図１の例では、発信源機器１２は、ビデオ発信源１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先機器１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、表示装置３２とを含む。本開示によれば、発信源機器１２のビデオエンコーダ２０は、ビデオエンコーダ２０に記憶された複数の定数値からの固定小数点変換のサイズに基づいて定数値を選択し、その定数値に等しい値を用いて変換において可変局所ビット深度増加を適用することによって、ビデオエンコーダ２０に関連する固定小数点変換において可変局所ビット深度増加を適用するための技術を実行するように構成され得る。その上、宛先機器１４のビデオデコーダ３０は、同様に、ビデオデコーダ３０に関連する固定小数点逆変換において可変局所ビット深度増加を適用するための技術を実行するように構成され得る。他の例では、発信源機器及び宛先機器は他の構成要素又は構成を含み得る。例えば、発信源機器１２は、外部カメラなどの外部ビデオ発信源１８からビデオデータを受信し得る。同様に、宛先機器１４は、内蔵表示装置を含むのではなく、外部表示装置とインターフェースし得る。
【００１７】
図１の図示のシステム１０は一例にすぎない。ビデオコード化に関連する固定小数点変換において可変局所ビット深度増加を適用するための技術は、任意のデジタルビデオ符号化及び／又は復号装置によって実行され得る。本開示の技術は、一般に「コーデック」と呼ばれる、ビデオエンコーダ／デコーダによっても実行され得る。さらに、本開示の技術はビデオプリプロセッサによっても実行され得る。発信源機器１２及び宛先機器１４は、発信源機器１２が宛先機器１４に送信するためのコード化ビデオデータを生成する、そのようなコード化装置の例にすぎない。幾つかの例では、機器１２、１４は、機器１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。従って、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、又はビデオテレフォニーのためのビデオ機器１２とビデオ機器１４との間の一方向又は双方向のビデオ送信をサポートし得る。
【００１８】
発信源機器１２のビデオ発信源１８は、ビデオカメラなどの撮像機器、以前に撮影されたビデオを含んでいるビデオアーカイブ、及び／又はビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオ発信源１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオ発信源１８がビデオカメラである場合、発信源機器１２及び宛先機器１４は、いわゆるカメラ付き携帯電話又はビデオ電話を形成し得る。但し、上述のように、本開示で説明する技術は、概してビデオコード化に適用可能であり得、ワイヤレス及び／又は有線アプリケーションに適用可能であり得る。各場合において、撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先機器１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、及び１つ以上のアンテナを含む、データを送信するために設計された回路を含み得る。
【００１９】
宛先機器１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調する。チャネル１６を介して通信される情報は、ビデオエンコーダ２０によって定義され、またビデオデコーダ３０によって使用される、マクロブロック及び他のコード化ユニット、例えば、ＧＯＰの特性及び／又は処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。表示装置３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【００２０】
図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つ又は複数の物理伝送線路など、任意のワイヤレス又は有線通信媒体、又はワイヤレス媒体と有線媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、有線媒体又はワイヤレス媒体の任意の好適な組合せを含む、ビデオデータを発信源機器１２から宛先機器１４に送信するのに好適な任意の通信媒体、又は様々な通信媒体の集合体を表す。通信チャネル１６は、発信源機器１２から宛先機器１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
【００２１】
ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコード化（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、又は高効率ビデオコード化（ＨＥＶＣ）と呼ばれる新生の次世代ビデオコード化規格など、ビデオ圧縮規格に従って動作し得る。但し、本開示の技術は、いかなる特定のコード化規格にも限定されない。他の例には、ＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２２】
ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャグループ（ＧＯＰ）は、概して、一連の１つ以上のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれる幾つかのフレームを記述するシンタックスデータを、ＧＯＰのヘッダ、ＧＯＰの１つ以上のフレームのヘッダ、又は他の場所中に含み得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ビデオブロックは、マクロブロック又はマクロブロックのパーティションに対応し得る。例えば、マクロブロックのサイズよりも小さいブロックサイズは、マクロブロックのパーティションと呼ばれることがある。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定のコード化規格に応じてサイズが異なり得る。各ビデオフレームは複数のスライスを含み得る。各スライスは複数のマクロブロックを含み得、それらのマクロブロックは、サブブロックとも呼ばれるパーティションに構成され得る。
【００２３】
一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、又は４×４、及びクロマ成分については８×８など、様々なブロックサイズのイントラ予測をサポートし、並びにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８及び４×４、及びクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。ＨＥＶＣ規格は、３２×３２、６４×６４、又は１２８×１２８までのブロックサイズのイントラ及びインター予測をサポートし得る。ＨＥＶＣ規格は、コード化ユニット（ＣＵ：coding unit）と、予測ユニット（ＰＵ：prediction unit）と、変換ユニット（ＴＵ：transform unit）とに基づく、より効率的でフレキシブルなビデオコード化を与える。ＣＵは、Ｈ．２６４規格において使用されるマクロブロックと同様の圧縮の基本ユニットである。ＨＥＶＣでは、高精細度ビデオコンテンツを効果的に圧縮するために、３２×３２、６４×６４、さらには１２８×１２８までのＣＵサイズがサポートされる。ＰＵはインター／イントラ予測のユニットであり、単一のＣＵ中に複数のＰＵが存在し得る。ＴＵは、変換のユニットであり、１つ以上のＰＵを含むことができる。従来の４×４及び８×８変換に加えて、ＴＵでは１６×１６、３２×３２、６４×６４、及び１２８×１２８整数変換がサポートされ得る。さらに、ＴＵでは、４×８、８×４、８×１６、１６×８、１６×３２、３２×１６、３２×６４、６４×３２、６４×１２８、及び１２８×６４を含む、矩形変換もサポートされ得る。
【００２４】
本開示では、「Ｎ×（x）Ｎ」と「Ｎ×（by）Ｎ」は、垂直寸法及び水平寸法に関するブロックの画素寸法、例えば、１６×（x）１６画素又は１６×（by）１６画素を指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６画素を有し（ｙ＝１６）、水平方向に１６画素を有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮ画素を有し、水平方向にＮ画素を有し、但し、Ｎは非負整数値を表す。ブロック中の画素は行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要はない。例えば、ブロックはＮ×Ｍ画素を備え得、Ｍは必ずしもＮに等しいとは限らない。
【００２５】
ビデオブロックは、画素領域中の画素データのブロックを備え得、あるいは、コード化ビデオブロックと予測ビデオブロックとの画素差分を表す残差ビデオブロックデータに変換を適用した後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換から出力された変換係数に量子化器を適用した後の、変換領域中の量子化変換係数のブロックを備え得る。
【００２６】
より小さいビデオブロックは、より良好な解像度を与えることができ、高い詳細レベルを含むビデオフレームのロケーションのために使用され得る。一般に、マクロブロック及び様々なパーティションはサブブロックと呼ばれることがあり、ビデオブロックと見なされ得る。さらに、スライスは、マクロブロック及び／又はサブブロックなどの複数のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、又はフレームの他の部分が復号可能なユニットとして定義され得る。上記で説明した、ＣＵのコード化ユニットという用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャグループ（ＧＯＰ）など、ビデオフレームの単独で復号可能な任意のユニット、又は適用可能なコード化技術に従って定義される別の単独で復号可能なユニットを指すことがある。
【００２７】
予測データと残差データとを生成するためのイントラ予測又はインター予測コード化の後に、コード化のためのより効率的な方法で残差データを表す残差変換係数を生成するために残差データの変換が実行され得る。変換は、順方向又は逆離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、若しくは別の概念的に同様の線形変換を備え得る。場合によっては、変換は、変換のサイズに関係する幾つかのカスケードバタフライ構造を使用して実行される高速実装を有し得る。その上、計算量を低減するために、変換は固定小数点実装を有し得る。但し、固定小数点変換は変換出力信号において丸め誤差を導入し得る。これは、カスケードバタフライ段が丸めを用いて又は用いずにあるビット数だけ変換出力信号を右シフトするときに起こり得る。例えば、固定小数点変換中にｎビット値がｍビット値に右シフトされ得、但し、ｎはｍよりも大きい。ビット損失の量は、一般に、変換のサイズに対応するカスケードバタフライ段の数に依存する。
【００２８】
本開示の技術によれば、ビデオエンコーダ２０及び／又はビデオデコーダ３０は、固定小数点変換において可変局所ビット深度増加を適用することによって変換における丸め誤差を緩和し得る。より詳細には、本技術は、固定小数点変換のサイズに基づいて定数値を選択し、その定数値に等しい値を用いて変換において可変局所ビット深度増加を適用することを含む。可変局所ビット深度増加は、固定小数点変換の前に定数値に等しいビット数だけ変換入力信号を左シフトし、次いで、固定小数点変換の後に定数値に等しいビット数だけ変換出力信号を右シフトすることによって適用される。固定小数点変換のサイズの定数値は、ビデオエンコーダ２０及び／又はビデオデコーダ３０に記憶された複数の定数値から選択され得る。定数値の各々は、ビデオコード化によってサポートされる複数の異なる変換サイズのうちの１つについて事前計算される。
【００２９】
一般に、ビデオコード化に関連する固定小数点変換は２次元変換を備える。一例として、２次元変換は、ビデオブロック内の画素データの行に第１段１次元変換を適用し、次いで、ビデオブロック内の画素データの列に第２段１次元変換を適用すること、又はその逆によって実行され得る。本開示の技術は、従って、２次元固定小数点変換の１つの段のサイズに基づいて定数値を選択することと、その定数値を２倍にすることと、２倍にされた定数値よりも小さいか又はそれに等しい値を用いて２次元変換において可変局所ビット深度増加を適用することとを含み得る。他の例では、局所ビット深度増加は、２次元変換の１つの段のために選択された定数値に等しい値を用いて２次元変換の各段において適用され得る。
【００３０】
本技術によれば、ビデオコード化規格によってサポートされる各異なる変換サイズについて異なる定数値が事前計算される。例えば、ＩＴＵ−Ｔ  Ｈ．２６４（ＡＶＣ）規格は４×４及び８×８サイズの変換をサポートし得る。新生のＨＥＶＣ規格は、ＴＵのための４×４、４×８、８×４、８×８、８×１６、１６×８、１６×１６、１６×３２、３２×１６、３２×３２、３２×６４、６４×３２、６４×６４、６４×１２８、１２８×６４、又は１２８×１２８を含む変換をサポートし得る。複数の定数値は、次いで、ビデオエンコーダ２０及び／又はビデオデコーダ３０に記憶され得、ビデオエンコーダ２０及び／又はビデオデコーダ３０において適用されるべき固定小数点変換のサイズに基づいて定数値のうちの適切な１つが選択され得る。固定小数点変換において可変局所ビット深度増加を適用すると、変換入力信号においてより高いビット精度が与えられ、変換中のビット深度の損失がオフセットされる。その上、固定小数点変換のサイズに基づいて計算された値を用いて可変局所ビット深度増加を適用すると、変換のサイズに対応するカスケードバタフライ段の数だけ変換出力信号を右シフトすることにより丸め誤差が低減又は除去される。
【００３１】
一例では、ビデオエンコーダ２０及び／又はビデオデコーダ３０は、符号化されるべきビデオフレーム又はスライスの所定のＣＵについてのＴＵのサイズに基づいてビデオコード化に関連する固定小数点変換において局所可変ビット深度増加を選択的に適用し得る。例えば、局所可変ビット深度増加は、３２×３２、６４×６４、又は１２８×１２８など、ＴＵが比較的大きいときは変換において適用されるが、４×４又は８×８など、ＴＵが小さいときは適用されないことがある。
【００３２】
幾つかの例では、ビデオエンコーダ２０は、任意のビデオブロックコード化を実行する前に、ビデオ発信源１８から受信されたビデオ信号に内部ビット深度増加（ＩＢＤＩ）を適用し得る。例えば、ビデオエンコーダ２０は、より高いビット精度のビデオコード化を実行するために、ビデオ信号のビット深度を８ビットのそれの入力ビット深度から１２ビットに増加させ得る。ビデオエンコーダ２０はビデオ信号のビット深度を増加させ得、ビデオデコーダ３０は、再構成されたビデオ信号のビット深度を後でそれの入力ビット深度に低減し得る。この場合、本技術によれば、固定小数点変換のサイズに基づいて選択される定数値はＩＢＤＩの値に基づいて調整され得る。例えば、ビデオ信号にＩＢＤＩが適用されたとき、固定小数点変換のサイズに基づいて選択される定数値はＩＢＤＩの値によって低減され得る。但し、その低減によって可変局所ビット深度増加が負値となることになるように、ＩＢＤＩの値が定数値よりも大きい場合、定数値は０に低減され、固定小数点変換において可変局所ビット深度増加は適用されない。
【００３３】
変換の後に、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータの量ができるだけ低減されるように変換係数が量子化されるプロセスを指す。量子化プロセスはまた、係数の一部又は全部に関連するビット深さを低減し得る。量子化の後に、例えば、コンテンツ適応型可変長符号化（ＣＡＶＬＣ）、コンテキスト適応型２値算術コード化（ＣＡＢＡＣ）、又は別のエントロピーコード化方法に従って、量子化データのエントロピーコード化が実行され得る。エントロピーコード化用に構成された処理ユニット、又は別の処理ユニットは、量子化係数のゼロランレングス符号化、及び／又はコード化ブロックパターン（ＣＢＰ：coded block pattern）値、マクロブロックタイプ、コード化モード、（フレーム、スライス、マクロブロック、又はシーケンスなどの）コード化ユニットの最大マクロブロックサイズなどのシンタックス情報の生成など、他の処理機能を実行し得る。
【００３４】
ビデオエンコーダ２０はさらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、及びＧＯＰベースのシンタックスデータなどのシンタックスデータを、例えば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、又はＧＯＰヘッダ中でビデオデコーダ３０に送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ中の幾つかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化／予測モードを示し得る。ビデオ信号にＩＢＤＩが適用されたとき、ビデオエンコーダ２０は、ビデオデコーダ３０が復号ビデオ信号をそれの入力ビット深度に戻すためにＩＢＤＩを除去し得るように、ＩＢＤＩの値を明示的にビデオデコーダ３０に信号伝達し得る。幾つかの例では、ビデオエンコーダ２０はまた、逆変換において可変局所ビット深度増加のために選択された定数値に関する情報を明示的にビデオデコーダ３０に信号伝達し得る。
【００３５】
本開示では、「コード化」という用語は符号化又は復号を指す。同様に、「コーダ」という用語は、一般に、任意のビデオエンコーダ、ビデオデコーダ、又は複合エンコーダ／デコーダ（コーデック）を指す。従って、「コーダ」という用語は、本明細書では、ビデオ符号化又はビデオ復号を実行する専用コンピュータデバイス又は装置を指すために使用される。本開示の技術はエンコーダ又はデコーダに適用可能であり得る。例えば、ビデオエンコーダ２０及びビデオデコーダ３０の各々は、それぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどの中に含まれ得る。ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。
【００３６】
図２は、ビデオコード化に関連する変換のバタフライ構造３４を示す概念図である。上記で説明したように、ビデオコード化に関連する変換は、図１のビデオエンコーダ２０又はビデオデコーダ３０など、ビデオコード化装置内の高速実装を有し得る。変換のそのような高速実装は、変換のサイズに関係する幾つかのカスケードバタフライ構造を使用して実行され得る。図２に示すバタフライ構造３４は、１つのそのようなバタフライ構造の一例である。例えば、１次元１６点変換の場合、変換は、バタフライ構造３４と同様の複数のカスケードバタフライ構造によって表され得る（図３参照）。少なくとも部分的にバタフライ構造３４によって表される変換は、順方向離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は別の概念的に同様の線形変換を備え得る。
【００３７】
バタフライ構造３４によって実装される変換の部分は以下の式によって表され得る。
【００３８】
Yi = Wi * Xi + Wi+1 * Xi+1
Yi+1 = Wi+1 * Xi − Wi * Xi+1,但し、Ｘi及びＸi+1は変換入力値であり、Ｙi及びＹi+1は変換出力値であり、Ｗi及びＷi+1は重み係数（weighting factor）又は増倍率（multiplication factor）である。変換入力信号は、Ｘ＝（Ｘ0，Ｘ1，Ｘ2．．．ＸM）として表され得、変換出力信号は、Ｙ＝（Ｙ0，Ｙ1，Ｙ2．．．ＹM）として表され得る。例えば、ビデオ符号化の場合、変換入力値は残差ビデオブロックの画素値を備え得、変換出力値は変換係数を備え得る。ビデオ復号の場合、変換入力値は、逆量子化された変換係数を備え得、変換出力値は残差ビデオブロックの画素値を備え得る。例えば、変換がＤＣＴである場合、増倍率はサイン及びコサインである。他の変換タイプの場合、増倍率は、整数、ウェーブレットなどの形式をとり得る。
【００３９】
図１のビデオエンコーダ２０又はビデオデコーダ３０など、ビデオコード化装置内の計算量を低減するために、ビデオコード化に関連する変換は、浮動小数点変換ではなく固定小数点変換として実装され得る。固定小数点変換の場合、増倍率は整数又は２進分数であり得る。２進分数は、分子が整数であり、分母が２のべき乗である有理数である。例えば、少なくとも部分的にバタフライ構造３４によって表される変換の固定小数点実装では、増倍率は、形式Ｗi＝Ａ／２m及びＷi+1＝Ｂ／２mの２進分数によって近似され得、但し、Ａ、Ｂ、及びｍは整数である。固定小数点では、２mによる除算は、ｍビットの右シフトとしても表され得る。バタフライ構造３４の変換出力値は、従って、以下に式によって表され得る。
【００４０】
Yi = (A * Xi + B * Xi+1) >> m, 
Yi+1 = (B * Xi − A * Xi+1) >> m,
但し、（＞＞ｍ）は、丸めなしのｍビットの右シフトを表す。
【００４１】
変換の固定小数点実装における右シフトは、変換を表すために使用されるカスケードバタフライ構造の各々におけるビット深度の丸め誤差又は損失を導入する。ビット深度のこの損失の１つのさらなる理由は、バタフライ構造が丸めではなくクリッピングを実行することである。クリッピングが実行される理由は、各バタフライ段において丸めを実行すると計算量的にコストがかかり得るからである。固定小数点変換の変換出力信号の累積丸め誤差は、従って、変換のサイズとともに増加する。本開示の技術は、固定小数点変換の入力において可変局所ビット深度増加を適用することによって固定小数点変換における丸め誤差を緩和する。
【００４２】
図３は、ビデオコード化に関連する変換のカスケードバタフライ構造３６を示す概念図である。一例では、カスケードバタフライ構造３６は１次元１６点変換を表し得る。カスケードバタフライ構造３６は変換の１つの例示的な表現にすぎない。他の例では、変換を表すために、バタフライ構造の多くの他の変形形態及び組合せが互いにカスケードされ得る。カスケードバタフライ構造３６によって表される変換は、順方向又は逆離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、若しくは別の概念的に同様の線形変換を備え得る。
【００４３】
図示の例では、カスケードバタフライ構造３６は、１６点変換を表すために互いにカスケードされた、図２のバタフライ構造３４と同様の、複数の個々のバタフライ構造を含む。例えば、カスケードバタフライ構造３６は、変換入力値Ｘ0〜Ｘ15のペア間のバタフライ構造を含む。さらに、カスケードバタフライ構造３６は、１６点変換を表すために３６個の乗算を使用する。他の例では、カスケードバタフライ構造３６は、変換入力値との異なる数学演算、例えば、加算又は乗算を実行する、異なる構成でカスケードされた、異なる数の変換入力値間の、変換入力値の異なるペア化（pairings）間の個々のバタフライ構造を含み得る。
【００４４】
上記で説明したように、カスケードバタフライ構造３６によって表される変換の固定小数点実装は、変換出力信号を右シフトすることにより、個々のバタフライ構造の各々においてビット深度の丸め誤差又は損失を導入する。ビット深度のこの損失の１つのさらなる理由は、バタフライ構造の各々が丸めではなくクリッピングを実行することである。図示の例では、図示の１６点固定小数点変換は、従って、変換を表すために使用されるカスケードバタフライ構造の数に依存するそれの変換出力信号の累積丸め誤差を有する。他の例では、ビデオコード化規格が３２×３２、６４×６４、１２８×１２８までのサイズの変換をサポートし得るので、固定小数点変換の累積丸め誤差は一層より大きくなり得る。
【００４５】
その上、変換のサイズが増加するにつれて、バタフライ構造の各々における重み係数又は増倍率、例えば、ｍの値の増加として２進分数で表され得るＷi＝Ａ／２mが低減され得る。ｍの値が増加すると、固定小数点変換のバタフライ構造の各々における右シフトがより大きくなり、従って、累積丸め誤差がより大きくなる。ビデオ符号化装置における順変換と、ビデオ復号装置における逆変換の両方におけるビット深度の関連する損失により、表示のためのビデオブロックのビット精度再構成が低くなり得る。
【００４６】
本開示の技術は、固定小数点変換において可変局所ビット深度増加を適用することによって固定小数点変換における丸め誤差を緩和する。本技術は、固定小数点変換のサイズに基づいて定数値Ｎを選択し、その定数値に等しい値を用いて固定小数点変換において可変局所ビット深度増加を適用することを含む。定数値は、複数の異なる変換サイズについて事前計算された複数の定数値から選択され得る。可変局所ビット深度増加を適用することは、固定小数点変換の前に定数値に等しいビット数だけ変換入力信号Ｘを左シフトし、固定小数点変換の後に定数値に等しいビット数だけ変換出力信号Ｙを右シフトすることを含む。
【００４７】
固定小数点変換において可変局所ビット深度増加が適用されたとき、変換入力信号はＸ’＝Ｘ＜＜Ｎとして表され得、但し、（＜＜Ｎ）はＮビットの左シフトを表し、変換出力信号はＹ’＝（Ｙ＋２N-1）＞＞Ｎとして表され得、但し、２N-1はオフセットを表し、（＞＞Ｎ）はＮビットの右シフトを表す。他の例では、Ｎビットの右シフトの前に、異なるオフセットが変換出力信号に適用され得る。場合によっては、可変局所ビット深度増加とともに追加のオフセット及び右シフトが変換出力信号に適用され得る。それらの場合、オフセットと右シフトは互いに結合され得る。例えば、追加のオフセットが２M-1の値を有し、追加の右シフトがＭの値を有する場合、結合されたオフセットは、２M+N-1に等しい値を有し得、結合された右シフトは、（Ｍ＋Ｎ）に等しい値を有し得る。
【００４８】
固定小数点変換の入力において可変局所ビット深度増加を適用すると、変換のためのより高いビット深度の変換入力信号が与えられる。その上、固定小数点変換のサイズに基づいて計算された値を用いて可変局所ビット深度増加を適用すると、変換の固定小数点実装による丸め誤差が低減又は除去される。
【００４９】
上記で説明したように、カスケードバタフライ構造３６は１次元１６点変換を表し得る。一般に、ビデオコード化に関連する固定小数点変換は２次元変換を備える。２次元変換は、ビデオブロック内の画素データの行に第１段１次元変換を適用し、次いで、ビデオブロック内の画素データの列に第２段１次元変換を適用すること、又はその逆によって実行され得る。例えば、２次元１６×１６変換は、カスケードバタフライ構造３６と同様のカスケードバタフライ構造の２つのセットによって表され得る。本開示の技術は、２次元固定小数点変換の１つの段のサイズに基づいて定数値を選択することと、その定数値を２倍にすることと、２倍にされた定数値よりも小さいか又はそれに等しい値を用いて２次元変換において可変局所ビット深度増加を適用することとを含み得る。２倍にされた定数値よりも小さい値をもつ可変局所ビット深度は、丸め誤差を緩和するためにより低い定数値が十分に大きいとき、及び／又は変換を実装するために必要とされるビット深度を制限するためにより低い定数値が必要であるときに適用され得る。他の例では、局所ビット深度増加は、２次元変換の１つの段のために選択された定数値に等しい値を用いて２次元変換の各段において適用され得る。
【００５０】
図４は、変換ユニット５２の固定小数点実装における丸め誤差を緩和するために変換ユニット５２において可変局所ビット深度増加を適用するための技術を実装し得る例示的なビデオエンコーダ２０Ａを示すブロック図である。ビデオエンコーダ２０Ａは、図１を参照しながら説明した発信源機器１２内のビデオエンコーダ２０の一例を備え得る。
【００５１】
ビデオエンコーダ２０Ａは、マクロブロック又はマクロブロックのパーティション若しくはサブパーティションを含む、ビデオ信号のビデオフレーム内のブロックのイントラ符号化及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム内のビデオブロックの空間的冗長性を低減又は除去するために空間的予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレーム内のビデオブロックの時間的冗長性を低減又は除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、幾つかの空間ベースの圧縮モードのいずれかを指し、単方向予測（Ｐモード）、双方向予測（Ｂモード）、又は一般化されたＰ／Ｂ予測（ＧＰＢモード）などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指し得る。
【００５２】
ビデオエンコーダ２０Ａは、符号化されるべきビデオ信号のビデオフレーム内の現在のビデオブロックを受信する。図４の例では、ビデオエンコーダ２０Ａは、予測ユニット４０と、参照フレームメモリ６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピーコード化ユニット５６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０Ａはまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図４に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理するであろう。変換ユニット５２の固定小数点実装の丸め誤差を補正するために変換ユニット５２において可変局所ビット深度増加を適用するための本技術によれば、ビデオエンコーダ２０Ａはまた、定数値メモリ４３とともに局所ビット深度増加（ＬＢＤＩ：localized bit-depth increase）ユニット４２を含む。
【００５３】
符号化プロセス中に、ビデオエンコーダ２０Ａは、コード化されるべきビデオフレーム又はスライスを受信する。フレーム又はスライスは複数のビデオブロックに分割され得る。予測ユニット４０は、時間圧縮を行うために、１つ以上の参照フレーム中の１つ以上のブロックに対して、受信されたビデオブロックのインター予測コード化を実行する。イントラ予測ユニットはまた、空間圧縮を行うために、コード化されるべきブロックと同じフレーム又はスライス中の１つ以上の隣接ブロックに対して、受信されたビデオブロックのイントラ予測コード化を実行し得る。予測ユニット４０は、例えば、誤り結果に基づいてコード化モード、即ち、イントラ又はインターのうちの１つを選択するためのモード選択を実行し得、残差ブロックデータを生成するために、得られたイントラコード化ブロック又はインターコード化ブロックを加算器５０に供給し、参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロック又はインターコード化ブロックを加算器６２に供給する。
【００５４】
予測ユニット４０は、動き推定と動き補償の両方を実行し得る。他の例では、動き推定及び動き補償は別々の機能ユニットを備え得る。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム（又は、他の符号化ユニット）内のコード化されている現在のブロックに対する予測参照フレーム（又は、他のコード化ユニット）内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、又は他の差分メトリックによって決定され得る画素差分に関して、コード化されるべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、マクロブロックのパーティションの変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックを取込む（fetching）又は生成することに関与し得る。
【００５５】
動き推定を実行するとき、予測ユニット４０は、ビデオブロックを参照フレームメモリ６４中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックの動きベクトルを計算する。予測ユニット４０は、計算された動きベクトルをエントロピーコード化ユニット５６に送る。動きベクトルによって識別される参照フレームブロックは予測ブロックと呼ばれることがある。予測ユニット４０は、参照フレームの予測ブロックの誤差値を計算する。予測ユニット４０はまた、予測ブロックに基づいて予測データを計算し得る。ビデオエンコーダ２０Ａは、コード化されている元のビデオブロックから、予測ユニット４０からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つ以上の構成要素を表す。
【００５６】
変換ユニット５２は、離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に同様の線形変換などの変換を残差ビデオブロックに適用して、残差変換係数値を備えるビデオブロックを生成する。変換ユニット５２は、変換を残差ブロックに適用して、残差変換係数のブロックを生成する。変換ユニット５２は、残差情報を画素値領域から周波数領域などの変換領域に変換し得る。
【００５７】
上記で説明したように、変換ユニット５２の固定小数点実装は、変換ユニット５２の固定小数点変換のサイズに対応するカスケードバタフライ構造の数だけの右シフトに起因して、それの変換出力信号においてビット深度の丸め誤差又は損失を導入し得る。変換ユニット５２の固定小数点実装における丸め誤差を低減又は除去するために、ＬＢＤＩユニット４２は、定数値メモリ４３から変換ユニット５２の固定小数点変換のサイズに基づいて定数値を選択し、その定数値に等しい値を用いて変換ユニット５２において可変局所ビット深度増加を適用する。より詳細には、ＬＢＤＩユニット４２は、変換ユニット５２に入力される残差ビデオブロックデータに、その定数値に等しいビット数だけ左シフト４４を導入する。ＬＢＤＩユニット４２はまた、変換ユニット５２から出力された残差変換係数に、その定数値に等しいビット数だけ右シフト４５を適用する。ＬＢＤＩユニット４２はまた、残差変換係数にオフセットを適用し、その後、オフセットされた残差変換係数に右シフト４５を適用し得る。場合によっては、追加のオフセット及び右シフトが、変換出力信号に適用され得、可変局所ビット深度増加のオフセット及び右シフトと結合され得る。
【００５８】
残差ビデオブロックのビット深度を増加させると、ビット精度は増加するが、高ビット精度ビデオブロックを処理するための計算量も増加する。ＬＢＤＩユニット４２は、従って、変換ユニット５２において可変局所ビット深度増加を局所化されたままに保つために、変換ユニット５２の直前及び直後に左シフト４４及び右シフト４５を適用する。このようにして、高複雑度処理は、変換ユニット５２では必要とされるが、ビデオエンコーダ２０Ａ中の残りの機能ユニットでは必要でなくなり得る。
【００５９】
ＬＢＤＩユニット４２内の定数値メモリ４３は、ビデオエンコーダ２０Ａによって使用されるビデオコード化規格によってサポートされる複数の異なる変換サイズについての複数の定数値を記憶する。定数値メモリ４３に記憶された定数値の各々は、複数の異なる変換サイズのうちの１つについて事前計算される。このようにして、ＬＢＤＩユニット４２は、どんなサイズの固定小数点変換でも丸め誤差を効果的に低減するために、変換ユニット５２によって適用される異なる変換サイズごとに異なる定数値を選択し得る。例えば、Ｈ．２６４（ＡＶＣ）規格は４×４及び８×８サイズの変換をサポートし得る。新生のＨＥＶＣ規格は、１６×１６、３２×３２、６４×６４、又は１２８×１２８までのサイズの方形変換及び／又は矩形変換をサポートし得る。
【００６０】
定数値メモリ４３に記憶された複数の異なる変換サイズのうちの１つのための定数値の各々は、ビデオ信号の入力ビット深度値Ｂiと、固定小数点変換におけるオーバーフローを回避するのに必要な追加のビット数である変換ビット深度値ＢTRと、固定小数点変換に関連する変換ビット精度値Ｚとに基づいて事前計算される。定数値Ｎの各々は、式Ｂi＋ＢTR＋Ｎ≦Ｚを満たすように事前計算され得る。
【００６１】
場合によっては、定数値に等しい値を用いて可変局所ビット深度増加を適用することにより、変換入力信号が、ビデオエンコーダ２０Ａによってサポートされる全体的なビット深度よりも大きいビット深度を有することになるように、定数値は大きい値を有するように事前計算され得る。例えば、ビデオエンコーダ２０Ａが３２ビットエンコーダを備える場合、３２ビットよりも大きいビット深度を変換入力信号が有することになる定数値が事前計算され得る。その場合、定数値は、変換入力信号のビット深度がビデオエンコーダ２０Ａの全体的なビット深度を超えることがないように、定数値メモリ４３に記憶される前に低減され得る。
【００６２】
複数の異なる変換サイズのうちの１つのための定数値の各々を事前計算するために、変換ビット精度値Ｚは、ビデオエンコーダ及び／又はビデオデコーダの両方における固定小数点変換の実装に基づいて選択される。例えば、変換ビット精度値は、１６、３２、又は６４ビットに等しくなり得る。変換ビット精度値は、固定小数点変換のサイズと、ビデオコード化装置内に実装された変換に関連するレジスタのサイズとに依存し得る。
【００６３】
その上、複数の異なる変換サイズのうちの１つのための定数値の各々を事前計算するために、固定小数点変換におけるオーバーフローを回避するのに必要な変換ビット深度値ＢTRは、固定小数点変換のサイズに基づいて決定される。より詳細には、変換ビット深度値は、固定小数点変換ユニットを表すカスケードバタフライ構造の各々における変換出力値のワーストケース分析に基づいて決定され得る。変換出力Ｙi及びＹi+1の可能な値の範囲は、個々のバタフライ構造の各々において、増倍率Ｗi及びＷi+1に基づいて計算され得る。固定小数点変換全体の変換出力信号の累積ビット範囲は、追加のビットの最大数、即ち、固定小数点変換におけるオーバーフローを回避するために必要とされる変換ビット深度値ＢTRを与える。
【００６４】
幾つかの例では、変換ユニット５２は２次元固定小数点変換を備え得る。例えば、変換ユニット５２は、残差ビデオブロック内の画素データの行に第１段１次元変換を適用し、次いで、残差ビデオブロック内の画素データの列に第２段１次元変換を適用することによって、又はその逆によって２次元変換を実行し得る。一例として、変換ユニット５２は１６×１６固定小数点変換を備え得る。ＬＢＤＩユニット４２は、定数値メモリ４３に記憶された複数の定数値から変換ユニット５２の固定小数点変換の１６×１６サイズに基づいて定数値を選択し得る。１６×１６サイズのために記憶される定数値は、例えば、１２ビットに等しくなり得る。一例として、記憶される定数値は、サイズ１６×１６変換のための事前計算に基づき得、ビデオ信号の入力ビット深度値Ｂiは８ビットに等しく、変換ビット精度値Ｚは３２ビットに等しく、変換ビット深度値ＢTRは１２ビットに等しい。定数値Ｎは、式Ｂi＋ＢTR＋Ｎ≦Ｚを満たすように１２ビットに等しく事前計算される。
【００６５】
この例では、ＬＢＤＩユニット４２は、変換ユニット５２に入力される残差ビデオブロックに１２ビットの左シフト４４を適用する。ＬＢＤＩユニット４２は、同様に、変換ユニット５２から出力された残差変換係数に１２ビットの右シフト４５を適用する。ＬＢＤＩ４２は、最初に、変換ユニット５２から出力された残差変換係数にオフセットを適用し、その後、オフセットされた残差変換係数に右シフト４５を適用し得る。一例では、ＬＢＤＩ４２は、２N-1に等しいオフセットを適用し得、但し、Ｎは定数値である。他の例では、右シフト４５を適用する前に、変換ユニット５２から出力された残差変換係数に異なるオフセットが適用され得る。場合によっては、可変局所ビット深度増加とともに追加のオフセット及び右シフトが変換出力信号に適用され得る。それらの場合、オフセットと右シフトは互いに結合され得る。例えば、追加のオフセットが２M-1の値を有し、追加の右シフトがＭの値を有する場合、結合されたオフセットは、２M+N-1に等しい値を有し得、結合された右シフトは、（Ｍ＋Ｎ）に等しい値を有し得る。
【００６６】
場合によっては、定数値メモリ４３は、１次元変換サイズに対応する定数値を記憶し得る。変換ユニット５２が２次元固定小数点変換を備えるとき、ＬＢＤＩユニット４２は、変換ユニット５２の２次元固定小数点変換の１つの段のサイズに基づいて定数値を選択し、２次元固定小数点変換の両方の段を考慮に入れるためにその定数値を２倍にし得る。ＬＢＤＩユニット４２は、次いで、２倍にされた定数値よりも小さいか又はそれに等しい値を用いて変換ユニット５２において可変局所ビット深度増加を適用し得る。２倍にされた定数値よりも小さい値をもつ可変局所ビット深度は、丸め誤差を緩和するためにより低い定数値が十分に大きいとき、及び／又は変換を実装するために必要とされるビット深度を制限するためにより低い定数値が必要であるときに適用され得る。他の例では、ＬＢＤＩユニット４２は、２次元固定小数点変換の１つの段のために選択された定数値に等しい値を用いて変換ユニット５２の２次元固定小数点変換の各段において局所ビット深度増加を適用し得る。
【００６７】
ＬＢＤＩユニット４２は、変換のためのより高いビット深度の変換入力信号を与えるために、変換ユニット５２において可変局所ビット深度増加を適用することによって変換ユニット５２における丸め誤差を低減又は除去し得る。変換ユニット５２に入力される残差ビデオブロックデータのより高いビット深度は、変換ユニット５２の固定小数点変換を表すために使用されるカスケードバタフライ構造によって実行される右シフトの影響を緩和する。その上、変換ユニット５２の固定小数点変換のサイズに基づいて計算された値を用いて可変局所ビット深度増加を適用すると、残差ビデオブロックデータに適用される特定の固定小数点変換による変換ユニット５２における丸め誤差がより効果的に低減される。
【００６８】
量子化ユニット５４は、ビットレートをさらに低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深さを低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。特に、量子化ユニット５４は、マクロブロック又はパーティション中の変換係数を走査するためにジグザグ走査又は他の走査パターンを適用し得る。量子化の後に、エントロピーコード化ユニット５６は量子化変換係数をエントロピーコード化する。例えば、エントロピーコード化ユニット５６は、コンテンツ適応型可変長コード化（ＣＡＶＬＣ）、コンテキスト適応型２値算術コード化（ＣＡＢＡＣ）、又は別のエントロピーコード化技術を実行し得る。エントロピーコード化ユニット５６によるエントロピーコード化の後に、符号化されたビデオは、別のデバイスに送信されるか、又は後の送信若しくは検索のためにアーカイブされ得る。コンテキスト適応型２値算術コード化の場合、コンテキストは隣接マクロブロックに基づき得る。
【００６９】
場合によっては、エントロピーコード化ユニット５６又はビデオエンコーダ２０Ａの別のユニットは、エントロピーコード化に加えて他のコード化機能を実行するように構成され得る。例えば、エントロピーコード化ユニット５６はマクロブロック及びパーティションのＣＢＰ値を決定するように構成され得る。また、場合によっては、エントロピーコード化ユニット５６は、マクロブロック又はそれのパーティション中の係数のランレングスコード化を実行し得る。エントロピーコード化ユニット５６はまた、符号化されたビデオビットストリーム中での送信のために適切なシンタックス要素を用いてヘッダ情報を構成し得る。
【００７０】
逆量子化ユニット５８及び逆変換ユニット６０は、それぞれ逆量子化及び逆変換を適用して、例えば参照ブロックとして後で使用するために、画素領域において残差ブロックを再構成する。変換ユニット５２に関して上記で説明した処理と同様に、ＬＢＤＩユニット４２は、定数値メモリ４３から逆変換ユニット６０の固定小数点逆変換のサイズに基づいて定数値を選択し、その定数値に等しい値を用いて逆変換ユニット６０において可変局所ビット深度増加を適用する。
【００７１】
幾つかの例では、ＬＢＤＩユニット４２は、変換ユニット５２における定数値とは異なる、逆変換ユニット６０における可変局所ビット深度増加のための定数値を選択し得る。場合によっては、逆変換ユニット６０によって適用される固定小数点逆変換は、変換ユニット５２によって適用された固定小数点順変換とは異なるサイズを有する。他の場合には、ビデオエンコーダ２０Ａのデコーダ部分は、ビデオエンコーダ２０Ａのエンコーダ部分よりも低いビット精度値を有するか、又は逆量子化ユニット５８は、逆変換ユニット６０における丸め誤差が変換ユニット５２における丸め誤差よりもひどくならないような左シフトを生成し得る。定数値メモリ４３は、従って、異なるビット精度値及び異なる逆量子化行列とともにコード化装置のための定数値の異なるセットを記憶し得る。但し、ＬＢＤＩユニット４２は、ドリフトを回避するために、対応するビデオデコーダ中の逆変換における可変局所ビット深度増加と同じである、逆変換ユニット６０における可変局所ビット深度増加の定数値を選択することが重要である。
【００７２】
ＬＢＤＩユニット４２は、逆変換ユニット６０に入力される残差変換係数に、その定数値に等しいビット数だけ左シフト４６を導入し、逆変換ユニット６０から出力された残差ビデオブロックデータに、その定数値に等しいビット数だけ右シフト４７を適用する。ＬＢＤＩ４２はまた、逆変換ユニット６０から出力された残差ビデオブロックデータにオフセットを適用し、その後、オフセットされた残差ビデオブロックデータに右シフト４７を適用し得る。場合によっては、追加のオフセット及び右シフトが、変換出力信号に適用され得、可変局所ビット深度増加のオフセット及び右シフトと結合され得る。この場合も、ＬＢＤＩユニット４２は、逆変換ユニット６０において可変局所ビット深度増加を局所化されたままに保つために、逆変換ユニット６０の直前及び直後に左シフト４６及び右シフト４７を適用し得る。
【００７３】
予測ユニット４０は、残差ブロックを参照フレームメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。予測ユニット４０はまた、再構成された残差ブロックに１つ又は複数の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器６２は、再構成された残差ブロックを、予測ユニット４０によって生成された動き補償予測ブロックに加算して、参照フレームメモリ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコード化するために予測ユニット４０によって参照ブロックとして使用され得る。
【００７４】
図５は、逆変換ユニット７８の固定小数点実装における丸め誤差を緩和するために逆変換ユニット７８において可変局所ビット深度増加を適用するための技術を実装し得るビデオデコーダ３０Ａの一例を示すブロック図である。ビデオデコーダ３０Ａは、図１を参照しながら説明した宛先機器１４内のビデオデコーダ３０の一例を備え得る。
【００７５】
ビデオデコーダ３０Ａは、図４からのビデオエンコーダ２０Ａなどのビデオエンコーダからビットストリーム中で受信された符号化ビデオシーケンスを復号する。図５の例では、ビデオデコーダ３０Ａは、エントロピー復号ユニット７０と、予測ユニット７２と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームメモリ８２と、加算器８０とを含む。逆変換ユニット７８の固定小数点実装における丸め誤差を緩和するために逆変換ユニット７８において可変局所ビット深度増加を適用するための本技術によれば、ビデオデコーダ３０Ａはまた、定数値メモリ８５とともに局所ビット深度増加（ＬＢＤＩ）ユニット８４を含む。
【００７６】
ビデオデコーダ３０Ａは、幾つかの例では、ビデオエンコーダ２０Ａ（図４）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。予測ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得る。予測ユニット７２は、ビットストリーム中で受信された動きベクトルを使用して、参照フレームメモリ８２中の参照フレーム中の予測ブロックを識別し得る。予測ユニット７２はまた、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット７６は、ビットストリーム中で供給され、エントロピー復号ユニット７０によって復号された量子化ブロック係数を逆量子化（inverse quantize）、即ち、逆量子化（de-quantize）する。逆量子化プロセスは、例えば、Ｈ．２６４復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、各マクロブロックについてエンコーダ２０Ａによって計算される量子化パラメータの使用を含み得る。
【００７７】
逆変換ユニット７８は、残差ビデオブロックを生成するために、逆変換、例えば、逆ＤＣＴ、逆整数変換、逆ウェーブレット変換、又は概念的に同様の逆線形変換を変換係数に適用する。逆変換ユニット７８は、変換係数を周波数領域などの変換領域から画素領域に変換し得る。
【００７８】
図４からの変換ユニット５２に関して上記で説明したように、逆変換ユニット７８の固定小数点実装は、逆変換ユニット７８の固定小数点逆変換のサイズに依存するそれの変換出力信号においてビット深度の丸め誤差又は損失を導入し得る。逆変換ユニット７８の固定小数点実装の丸め誤差を低減又は除去するために、ＬＢＤＩユニット８４は、定数値メモリ８５から逆変換ユニット７８の固定小数点逆変換のサイズに基づいて定数値を選択し、その定数値に等しい値を用いて逆変換ユニット７８において可変局所ビット深度増加を適用するために、図４からのＬＢＤＩユニット４２と実質的に同様の技術を実行する。
【００７９】
より詳細には、ＬＢＤＩユニット８４は、逆変換ユニット７８に入力される変換係数に、その定数値に等しいビット数だけ左シフト８６を導入する。ＬＢＤＩユニット８４はまた、逆変換ユニット７８から出力された残差ビデオブロックに、その定数値に等しいビット数だけ右シフト８７を適用する。ＬＢＤＩユニット８４はまた、逆変換ユニット７８から出力された残差ビデオブロックにオフセットを適用し、その後、オフセットされた残差ビデオブロックに右シフト８７を適用し得る。場合によっては、追加のオフセット及び右シフトが、変換出力信号に適用され得、可変局所ビット深度増加のオフセット及び右シフトと結合され得る。ＬＢＤＩユニット８４は、逆変換ユニット７８において可変局所ビット深度増加を局所化されたままに保つために、逆変換ユニット７８の直前及び直後に左シフト８６及び右シフト８７を適用する。
【００８０】
ＬＢＤＩユニット８４内の定数値メモリ８５は、ビデオデコーダ３０Ａによって使用されるビデオコード化規格によってサポートされる複数の異なる逆変換サイズについての複数の定数値を記憶する。定数値メモリ８５に記憶された定数値の各々は、複数の異なる逆変換サイズのうちの１つについて事前計算される。このようにして、ＬＢＤＩユニット８４は、どんなサイズの固定小数点逆変換でも丸め誤差を効果的に低減するために、逆変換ユニット７８によって適用される異なる逆変換サイズごとに異なる定数値を選択する。
【００８１】
定数値メモリ８５に記憶された複数の異なる逆変換サイズのうちの１つのための定数値の各々は、ビデオ信号の入力ビット深度値Ｂiと、固定小数点逆変換におけるオーバーフローを回避するのに必要な追加のビット数である変換ビット深度値ＢTRと、固定小数点逆変換に関連する変換ビット精度値Ｚとに基づいて事前計算される。定数値Ｎの各々は、定数値が式Ｂi＋ＢTR＋Ｎ≦Ｚを満たすように事前計算され得る。
【００８２】
場合によっては、定数値に等しい値を用いて可変局所ビット深度増加を適用することにより、変換入力信号が、ビデオデコーダ３０Ａによってサポートされる全体的なビット深度よりも大きいビット深度を有することになるように、定数値は大きい値を有するように事前計算され得る。例えば、ビデオデコーダ３０Ａが３２ビットデコーダを備える場合、３２ビットよりも大きいビット深度を変換入力信号が有することになる定数値が事前計算され得る。その場合、定数値は、変換入力信号のビット深度がビデオデコーダ３０Ａの全体的なビット深度を超えることがないように、定数値メモリ８５に記憶される前に低減され得る。
【００８３】
場合によっては、ビデオデコーダ３０Ａは、逆変換ユニット７８において可変局所ビット深度増加の定数値を選択するために、ビデオエンコーダ２０Ａから明示的に信号伝達された情報を受信し得る。例えば、ビデオデコーダ３０Ａは、ビデオエンコーダ２０Ａ中の逆変換ユニット６０において適用される可変局所ビット深度増加のためにＬＢＤＩユニット４２によって選択された定数値を明示的に受信し得る。ＬＢＤＩユニット８４は、エンコーダとデコーダとの間のドリフトを回避するために、ビデオエンコーダ２０Ａ中の逆変換ユニット６０における可変局所ビット深度増加と同じである、逆変換ユニット７８における可変局所ビット深度増加の定数値を選択することが重要である。
【００８４】
幾つかの例では、逆変換ユニット７８は２次元固定小数点変換を備え得る。一例として、逆変換ユニット７８は１６×１６固定小数点逆変換を備え得る。ＬＢＤＩユニット８４は、定数値メモリ８５に記憶された複数の定数値から逆変換ユニット７８の固定小数点逆変換の１６×１６サイズに基づいて定数値を選択し得る。１６×１６サイズのために記憶される定数値は、例えば、１２ビットに等しくなり得る。一例として、記憶される定数値は、サイズ１６×１６変換のための事前計算に基づき得、ビデオ信号の入力ビット深度値Ｂiは８ビットに等しく、変換ビット精度値Ｚは３２ビットに等しく、変換ビット深度値ＢTRは１２ビットに等しい。定数値Ｎは、式Ｂi＋ＢTR＋Ｎ≦Ｚを満たすように１２ビットに等しく事前計算される。
【００８５】
この例では、ＬＢＤＩユニット８４は、逆変換ユニット７８に入力される変換係数に１２ビットの左シフト８６を適用する。ＬＢＤＩユニット８４は、同様に、逆変換ユニット７８から出力された残差ビデオブロックに１２ビットの右シフト８７を適用する。ＬＢＤＩユニット８４は、最初に、逆変換ユニット７８から出力された残差ビデオブロックにオフセットを適用し、その後、オフセットされた残差ビデオブロックに右シフト８７を適用し得る。一例では、ＬＢＤＩユニット８４は、２N-1に等しいオフセットを適用し得、但し、Ｎは定数値である。他の例では、右シフト８７を適用する前に、逆変換ユニット７８から出力された残差ビデオブロックに異なるオフセットが適用され得る。場合によっては、可変局所ビット深度増加とともに追加のオフセット及び右シフトが変換出力信号に適用され得る。それらの場合、オフセットと右シフトは互いに結合され得る。例えば、追加のオフセットが２M-1の値を有し、追加の右シフトがＭの値を有する場合、結合されたオフセットは、２M+N-1に等しい値を有し得、結合された右シフトは、（Ｍ＋Ｎ）に等しい値を有し得る。
【００８６】
場合によっては、定数値メモリ８５は、１次元変換サイズに対応する定数値を記憶し得る。逆変換ユニット７８が２次元固定小数点変換を備えるとき、ＬＢＤＩユニット８４は、逆変換ユニット７８の２次元固定小数点変換の１つの段のサイズに基づいて定数値を選択し、２次元固定小数点変換の両方の段を考慮に入れるためにその定数値を２倍にし得る。ＬＢＤＩユニット８４は、次いで、２倍にされた定数値よりも小さいか又はそれに等しい値を用いて逆変換ユニット７８において可変局所ビット深度増加を適用し得る。２倍にされた定数値よりも小さい値をもつ可変局所ビット深度は、丸め誤差を緩和するためにより低い定数値が十分に大きいとき、及び／又は変換を実装するために必要とされるビット深度を制限するためにより低い定数値が必要であるときに適用され得る。他の例では、ＬＢＤＩユニット８４は、２次元固定小数点変換の１つの段のために選択された定数値に等しい値を用いて逆変換ユニット７８の２次元固定小数点変換の各段において局所ビット深度増加を適用し得る。
【００８７】
予測ユニット７２は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。予測ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０Ａによって使用された補間フィルタを使用して、参照ブロックのサブ整数画素の補間値を計算し得る。予測ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０Ａによって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【００８８】
予測ユニット７２は、シンタックス情報の幾つかを使用して、符号化ビデオシーケンスの（１つ又は複数の）フレームを符号化するために使用されるマクロブロックのサイズと、符号化ビデオシーケンスのフレームの各マクロブロックがどのように区分されるかを記述するパーティション情報と、各パーティションがどのように符号化されるかを示すモードと、各インター符号化マクロブロック又はパーティションのための１つ以上の参照フレーム（又はリスト）と、符号化ビデオシーケンスを復号するための他の情報とを決定し得る。
【００８９】
加算器８０は、予測ユニット７２によって生成された対応する予測ブロックに残差ブロックを加算して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して復号ブロックをフィルタ処理することもある。復号されたビデオブロックは、次いで、参照フレームメモリ８２に記憶され、参照フレームメモリ８２は、参照ブロックを後続の動き補償に供給し、また、（図１の表示装置３２などの）表示装置上での提示のために復号されたビデオを生成する。
【００９０】
図６は、変換ユニット５２において同じく可変局所ビット深度増加を適用するための技術を実装し得る内部ビット深度増加（ＩＢＤＩ）が使用される、例示的なビデオエンコーダ２０Ｂを示すブロック図である。ビデオエンコーダ２０Ｂは、図１を参照しながら説明した発信源機器１２内のビデオエンコーダ２０の一例を備え得る。その上、ビデオエンコーダ２０Ｂは、ＩＢＤＩの修正とともに、図４からのビデオエンコーダ２０Ａと実質的に同様に動作し得る。
【００９１】
図４からのビデオエンコーダ２０Ａと同様に、ビデオエンコーダ２０Ｂは、予測ユニット４０と、参照フレームメモリ６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピーコード化ユニット５６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０Ｂはまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。変換ユニット５２の固定小数点実装における丸め誤差を緩和するために変換ユニット５２において可変局所ビット深度増加を適用するための本技術によれば、ビデオエンコーダ２０Ｂはまた、定数値メモリ４３とともにＬＢＤＩユニット４２を含む。
【００９２】
図６の図示の例では、ビデオエンコーダ２０Ｂはまた、ビデオエンコーダ２０Ｂが任意のビデオブロックコード化を実行する前に、ビデオ信号にＩＢＤＩを適用する、内部ビット深度増加（ＩＢＤＩ）ユニット９０を含む。一例では、ＩＢＤＩユニット９０は、より高いビット精度のビデオコード化を実行するために、ビデオ信号に４ビットＩＢＤＩを適用してビデオ信号のビット深度を８ビットのそれの入力ビット深度から１２ビットに増加させ得る。ビデオ信号にＩＢＤＩが適用されると、ビデオエンコーダ２０Ｂ内のあらゆる機能ユニットにおいて高複雑度及び高ビット精度ビデオ処理が必要とされる。ＩＢＤＩの適用によってビデオ信号の符号化はより正確になるが、ＩＢＤＩ９０は、高ビット深度信号を処理及びバッファすることが可能なエンコーダのみにおいてＩＢＤＩを適用し得る。その上、ＩＢＤＩ９０がビデオ信号にＩＢＤＩを適用したとき、ビデオエンコーダ２０Ｂは、ビデオデコーダが復号ビデオ信号をそれの入力ビット深度に戻すためにＩＢＤＩを除去し得るように、図７のビデオデコーダ３０Ｂなど、関連するビデオデコーダにＩＢＤＩの値を明示的に信号伝達し得る。
【００９３】
変換ユニット５２の固定小数点実装における丸め誤差を低減又は除去するために、ＬＢＤＩユニット４２は、定数値メモリ４３から変換ユニット５２の固定小数点変換のサイズに基づいて定数値を選択し、ＩＢＤＩユニット９０によって適用されたＩＢＤＩの値に基づいてその定数値を調整する。ＬＢＤＩユニット４２は、次いで、調整された定数値に等しい値を用いて変換ユニット５２において可変局所ビット深度増加を適用する。より詳細には、ＬＢＤＩユニット４２は、変換ユニット５２に入力される残差ビデオブロックデータに、調整された定数値に等しいビット数だけ左シフト９４を導入する。ＬＢＤＩユニット４２はまた、変換ユニット５２から出力された残差変換係数に、調整された定数値に等しいビット数だけ右シフト９５を適用する。ＬＢＤＩユニット４２はまた、最初に、変換ユニット５２から出力された残差変換係数にオフセットを適用し、その後、オフセットされた残差変換係数に右シフト９５を適用し得る。場合によっては、追加のオフセット及び右シフトが、変換出力信号に適用され、可変局所ビット深度増加のオフセット及び右シフトと結合され得る。
【００９４】
図４に関して上記で説明したように、ＬＢＤＩユニット４２内の定数値メモリ４３は、ビデオエンコーダ２０Ｂによって使用されるビデオコード化規格によってサポートされる複数の異なる変換サイズについての複数の定数値を記憶する。定数値メモリ４３に記憶された定数値の各々は、複数の異なる変換サイズのうちの１つについて事前計算される。ビデオ信号にＩＢＤＩが適用されたとき、ＬＢＤＩユニット４２は、定数値メモリ４３から変換ユニット５２の固定小数点変換のサイズに基づいて定数値を選択し続ける。但し、定数値が選択されると、ＬＢＤＩ４２は、ＩＢＤＩユニット９０によって適用されたＩＢＤＩの値だけ定数値を低減し得る。
【００９５】
しかしながら、ＬＢＤＩユニット４２は、定数値を非負値のみに低減し得、さもなければ定数値を０に等しく設定する。負の定数値の場合、ＬＢＤＩユニット４２は、変換ユニット４２に入力される残差ビデオブロックに、左シフト９４ではなく右シフトを適用し、変換出力信号の丸め誤差は潜在的により一層大きくなる。ＬＢＤＩユニット４２は、従って、ＩＢＤＩの値が定数値よりも小さいか又はそれに等しい、即ち、（Ｎ−Ｂd）≧０である限り、調整された定数値がＮ−Ｂdに等しくなるように、ＩＢＤＩユニット９０によって適用されたＩＢＤＩの値Ｂdだけ定数値Ｎを低減する。ＩＢＤＩユニット９０によって適用されたＩＢＤＩの値Ｂdが定数値Ｎよりも大きい、即ち、（Ｎ−Ｂd）＜０であるとき、ＬＢＤＩユニット４２は定数値Ｎを０に低減する。この場合、ＬＢＤＩユニット４２は、変換ユニット５２において可変局所ビット深度増加を適用しない。
【００９６】
一例として、ＩＢＤＩユニット９０は、ビデオエンコーダ２０Ｂに入力されるビデオ信号に４ビットのＩＢＤＩを適用し得、変換ユニット５２は固定小数点１６×１６変換を備え得る。ＬＢＤＩユニット４２は、サイズ１６×１６変換のための８ビットに等しくなるように定数値Ｎを選択し得る。ＬＢＤＩユニット４２は、次いで、調整された定数値が４ビットに等しくなるように、ＩＢＤＩユニット９０によって適用されたＩＢＤＩの値Ｂdだけ定数値Ｎを低減する。この例では、ＬＢＤＩユニット４２は、変換ユニット５２に入力される残差ビデオブロックに４ビットの左シフト９４を適用し、変換ユニット５２から出力された残差変換係数に４ビットの右シフト９５を適用する。別の例では、ＩＢＤＩユニット９０は、ビデオ信号に１０ビットのＩＢＤＩを適用し得る。この場合、定数値ＮをＩＢＤＩの値Ｂdだけ低減すると負値が生じることになるので、ＬＢＤＩユニット４２は定数値Ｎを０に低減する。この例では、ＬＢＤＩユニット４２は、変換ユニット５２において可変局所ビット深度増加を適用しない。
【００９７】
変換ユニット５２に関して上記で説明した処理と同様に、ＬＢＤＩユニット４２は、逆変換ユニット６０の固定小数点逆変換のサイズに基づいて定数値を選択し、ＩＢＤＩユニット９０によって適用されたＩＢＤＩの値に基づいてその定数値を調整する。ＬＢＤＩユニット４２は、次いで、調整された定数値に等しい値を用いて逆変換ユニット６０において可変局所ビット深度増加を適用する。幾つかの例では、ＬＢＤＩユニット４２は、変換ユニット５２における定数値とは異なる、逆変換ユニット６０における可変局所ビット深度増加のための定数値を選択し得、それは、異なる調整された定数値を生じる。但し、ＬＢＤＩユニット４２は、ドリフトを回避するために、対応するビデオデコーダ中の逆変換における可変局所ビット深度増加と同じである、逆変換ユニット６０における可変局所ビット深度増加の定数値を選択し、調整することが重要である。
【００９８】
ＬＢＤＩユニット４２は、逆変換ユニット６０に入力される残差変換係数に、その定数値に等しいビット数だけ左シフト９６を導入し、逆変換ユニット６０から出力された残差ビデオブロックデータに、その定数値に等しいビット数だけ右シフト９７を適用する。ＬＢＤＩユニット４２はまた、逆変換ユニット６０から出力された残差ビデオブロックデータにオフセットを適用し、その後、オフセットされた残差ビデオブロックデータに右シフト９７を適用し得る。場合によっては、追加のオフセット及び右シフトが、変換出力信号に適用され、可変局所ビット深度増加のオフセット及び右シフトと結合され得る。
【００９９】
図７は、逆変換ユニット７８において同じく可変局所ビット深度増加を適用するための技術を実装し得る内部ビット深度増加（ＩＢＤＩ）が使用される、ビデオデコーダ３０Ｂの一例を示すブロック図である。ビデオデコーダ３０Ｂは、図１を参照しながら説明した宛先機器１４内のビデオデコーダ３０の一例を備え得る。その上、ビデオデコーダ３０Ｂは、ＩＢＤＩの修正とともに、図５からのビデオデコーダ３０Ａと実質的に同様に動作し得る。
【０１００】
図５からのビデオデコーダ３０Ａと同様に、ビデオデコーダ３０Ｂは、エントロピー復号ユニット７０と、予測ユニット７２と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームメモリ８２と、加算器８０とを含む。逆変換ユニット７８の固定小数点実装における丸め誤差を緩和するために逆変換ユニット７８において可変局所ビット深度増加を適用するための本技術によれば、ビデオデコーダ３０Ｂはまた、定数値メモリ８５とともにＬＢＤＩユニット８４を含む。
【０１０１】
ビデオデコーダ３０Ｂは、図６からのビデオエンコーダ２０Ｂなどのビデオエンコーダからビットストリーム中で受信された内部ビット深度増加（ＩＢＤＩ）を有する符号化ビデオシーケンスを復号する。場合によっては、ビデオデコーダ３０Ｂは、逆変換ユニット７８において可変局所ビット深度増加の定数値を選択し、調整するために、ビデオエンコーダ２０Ｂから明示的に信号伝達された情報を受信し得る。例えば、ビデオデコーダ３０Ｂは、ビデオエンコーダ２０Ｂ中の逆変換ユニット６０において適用される可変局所ビット深度増加の定数値を調整するために、ＬＢＤＩユニット４２によって選択された定数値と、ＬＢＤＩユニット４２によって使用されたＩＢＤＩの値とを明示的に受信し得る。ＬＢＤＩユニット８４は、エンコーダとデコーダとの間のドリフトを回避するために、ビデオエンコーダ２０Ａ中の逆変換ユニット６０における可変局所ビット深度増加と同じである、逆変換ユニット７８における可変局所ビット深度増加の定数値を選択し、調整することが重要である。
【０１０２】
図７の図示の例では、ビデオデコーダ３０Ｂは、ビデオデコーダ３０Ｂがビデオブロック復号を実行した後に、復号されたビデオ信号に逆ＩＢＤＩを適用する、逆ＩＢＤＩユニット１００を含む。逆ＩＢＤＩユニット１００は、ビデオエンコーダ２０Ｂ中のＩＢＤＩユニット９０によってビデオ信号に適用されたＩＢＤＩの明示的に受信された値に等しい値を用いて、復号されたビデオ信号に逆ＩＢＤＩを適用し得る。このようにして、ビデオデコーダ３０Ｂは、復号されたビデオ信号をそれの入力ビット深度に戻すためにＩＢＤＩを除去し得る。一例では、逆ＩＢＤＩユニット１００は、復号されたビデオ信号のビット深度を１２ビットから８ビットのそれの入力ビット深度に減少させるために、復号されたビデオ信号に４ビットの逆ＩＢＤＩを適用し得る。
【０１０３】
逆変換ユニット７８の固定小数点実装における丸め誤差を低減又は除去するために、ＬＢＤＩユニット８２は、定数値メモリ８５から逆変換ユニット７８の固定小数点逆変換のサイズに基づいて定数値を選択し、ビデオエンコーダ２０Ｂ中のＩＢＤＩユニット９０によって適用され、ビデオデコーダ３０Ｂに明示的に信号伝達されたＩＢＤＩの値に基づいてその定数値を調整する。ＬＢＤＩユニット８４は、次いで、調整された定数値に等しい値を用いて逆変換ユニット７８において可変局所ビット深度増加を適用する。
【０１０４】
より詳細には、ＬＢＤＩユニット８４は、逆変換ユニット７８に入力される変換係数に、その調整された定数値に等しいビット数だけ左シフト１０６を導入する。ＬＢＤＩユニット８４はまた、逆変換ユニット７８から出力された残差ビデオブロックに、その調整された定数値に等しいビット数だけ右シフト１０７を適用する。ＬＢＤＩユニット８４はまた、逆変換ユニット７８から出力された残差ビデオブロックにオフセットを適用し、その後、オフセットされた残差ビデオブロックに右シフト１０７を適用し得る。場合によっては、追加のオフセット及び右シフトが、変換出力信号に適用され、可変局所ビット深度増加のオフセット及び右シフトと結合され得る。
【０１０５】
図５に関して上記で説明したように、ＬＢＤＩユニット８４内の定数値メモリ８５は、ビデオデコーダ３０Ｂによって使用されるビデオコード化規格によってサポートされる複数の異なる逆変換サイズについての複数の定数値を記憶する。定数値メモリ８５に記憶された定数値の各々は、複数の異なる逆変換サイズのうちの１つについて事前計算される。ビデオ信号にＩＢＤＩが適用されたとき、ＬＢＤＩユニット８４は、定数値メモリ８５から逆変換ユニット７８の固定小数点逆変換のサイズに基づいて定数値を選択し続ける。但し、定数値が選択されると、ＬＢＤＩ８４は、ビデオエンコーダ２０Ｂ中のＩＢＤＩユニット９０によって適用され、ビデオデコーダ３０Ｂに明示的に信号伝達されたＩＢＤＩの値だけ定数値を低減し得る。
【０１０６】
しかしながら、ＬＢＤＩユニット８４は、定数値を非負値のみに低減し得、さもなければ定数値を０に等しく設定する。負の定数値の場合、ＬＢＤＩユニット８４は、逆変換ユニット７８に入力される変換係数に、左シフト１０６ではなく右シフトを適用し、変換出力信号の丸め誤差は潜在的により一層大きくなる。ＬＢＤＩユニット８４は、従って、ＩＢＤＩの値が定数値よりも小さいか又はそれに等しい、即ち、（Ｎ−Ｂd）≧０である限り、調整された定数値がＮ−Ｂdに等しくなるように、ＩＢＤＩの値Ｂdだけ定数値Ｎを低減する。ＩＢＤＩの値Ｂdが定数値Ｎよりも大きい、即ち、（Ｎ−Ｂd）＜０であるとき、ＬＢＤＩユニット８４は定数値Ｎを０に低減する。この場合、ＬＢＤＩユニット８４は、逆変換ユニット７８において可変局所ビット深度増加を適用しない。
【０１０７】
一例として、ＩＢＤＩユニット９０は、ビデオエンコーダ２０Ｂにおいてビデオ信号に４ビットのＩＢＤＩを適用していることがあり、逆変換ユニット７８は固定小数点１６×１６変換を備え得る。ＬＢＤＩユニット８４は、サイズ１６×１６変換のための８ビットに等しくなるように定数値Ｎを選択し得る。ＬＢＤＩユニット８４は、次いで、調整された定数値が４ビットに等しくなるように、ＩＢＤＩの値Ｂdだけ定数値Ｎを低減する。この例では、ＬＢＤＩユニット８４は、逆変換ユニット７８に入力される変換係数に４ビットの左シフト１０６を適用し、逆変換ユニット７８から出力された残差ビデオブロックに４ビットの右シフト９５を適用する。別の例では、ＩＢＤＩユニット９０は、ビデオエンコーダ２０Ｂにおいてビデオ信号に１０ビットのＩＢＤＩを適用していることがある。この場合、定数値ＮをＩＢＤＩの値Ｂdだけ低減すると負値が生じることになるので、ＬＢＤＩユニット８４は定数値Ｎを０に低減する。この例では、ＬＢＤＩユニット８４は、逆変換ユニット７８において可変局所ビット深度増加を適用しない。
【０１０８】
図８は、変換ユニットの固定小数点実装の丸め誤差を緩和するために変換ユニットにおいて可変局所ビット深度増加を適用する例示的な方法を示すフローチャートである。図８に示す方法は、図４からのビデオエンコーダ２０Ａと、図６からのビデオエンコーダ２０Ｂとに関して説明する。
【０１０９】
ビデオエンコーダ２０Ａ又は２０Ｂは、ＬＢＤＩユニット４２中の定数値メモリ４３に複数の異なる変換サイズについての複数の定数値を記憶する（１３０）。上記で説明したように、複数の異なる変換サイズのうちの１つに関連する定数値の各々は、ビデオ信号の入力ビット深度値Ｂiと、変換サイズに関連する変換ビット深度値ＢTRと、変換サイズに関連する変換ビット精度値Ｚとに基づいて事前計算される。例えば、各定数値Ｎは、式Ｂi＋ＢTR＋Ｎ≦Ｚを満たすように事前計算され得る。
【０１１０】
ビデオエンコーダ２０Ａ又は２０Ｂは、次いで、符号化されるべきビデオ信号を受信する（１３２）。ビデオ信号を受信すると、ビデオエンコーダ２０Ａ又は２０ＢのＬＢＤＩユニット４２は、変換ユニット５２によって適用されるべき固定小数点変換のサイズを決定し、その固定小数点変換のサイズに基づいて定数値メモリ５３に記憶された定数値を選択する（１３４）。
【０１１１】
ＬＢＤＩユニット４２は、次いで、受信されたビデオ信号に内部ビット深度増加（ＩＢＤＩ）が適用されたかどうかを決定する（１３６）。図４からのビデオエンコーダ２０Ａの例の場合のように、ＩＢＤＩが適用されていない場合（１３６のＮＯ）、変換ユニット５２の直前に、ＬＢＤＩユニット４２は、変換ユニット５２に入力される残差ビデオブロックデータに、選択された定数値に等しいビット数だけ左シフト４４を適用する（１４０）。変換ユニット５２は、次いで、左シフトされた残差ビデオブロックデータを変換係数に変換する（１４２）。変換ユニット５２の直後に、ＬＢＤＩユニット４２は、変換ユニット５２から出力された変換係数にオフセットを適用する（１４４）。例えば、ＬＢＤＩユニット４２は、２N-1に等しいオフセットを変換係数に適用し得る。ＬＢＤＩユニット４２は、次いで、オフセット変換係数に、選択された定数値に等しいビット数だけ右シフト４５を適用する（１４６）。
【０１１２】
場合によっては、可変局所ビット深度増加とともに追加のオフセット及び右シフトが変換出力信号に適用され得る。それらの場合、オフセットと右シフトは互いに結合され得る。例えば、追加のオフセットが２M-1の値を有し、追加の右シフトがＭの値を有する場合、結合されたオフセットは、２M+N-1に等しい値を有し得、結合された右シフトは、（Ｍ＋Ｎ）に等しい値を有し得る。
【０１１３】
図６からのビデオエンコーダ２０Ｂの例の場合のように、ＩＢＤＩが適用された場合（１３６のＹＥＳ）、ＬＢＤＩユニット４２は、ＩＢＤＩユニット９０によってビデオ信号に適用されたＩＢＤＩの値を決定する。ＬＢＤＩユニット４２は、次いで、ＩＢＤＩの値に基づいて、選択された定数値を調整する（１３８）。この場合、変換ユニット５２の固定小数点変換のサイズのために選択された定数値Ｎは、調整された定数値がＮ−Ｂdに等しくなるように、ＩＢＤＩの値Ｂdだけ低減されることになる。
【０１１４】
ＬＢＤＩユニット４２は、選択された定数値を非負値のみに低減し得る。例えば、ＬＢＤＩユニット４２は、（Ｎ−Ｂd）≧０となるように、ＩＢＤＩの値が、選択された定数値よりも小さいか又はそれに等しいとき、選択された定数値をＩＢＤＩの値だけ低減する。（Ｎ−Ｂｄ）＜０となるように、ＩＢＤＩの値が、選択された定数値よりも大きい場合、ＬＢＤＩユニット４２は、選択された定数値を０に低減する。
【０１１５】
変換ユニット５２の直前に、ＬＢＤＩユニット４２は、変換ユニット５２に入力される残差ビデオブロックデータに、調整された定数値に等しいビット数だけ左シフト９４を適用する（１４０）。変換ユニット５２は、次いで、左シフトされた残差ビデオブロックデータを変換係数に変換する（１４２）。変換ユニット５２の直後に、ＬＢＤＩユニット４２は、変換ユニット５２から出力された変換係数にオフセットを適用する（１４４）。例えば、ＬＢＤＩユニット４２は、２N-1に等しいオフセットを変換係数に適用し得る。ＬＢＤＩユニット４２は、次いで、オフセットされた変換係数に、調整された定数値に等しいビット数だけ右シフト９５を適用する（１４６）。
【０１１６】
場合によっては、可変局所ビット深度増加とともに追加のオフセット及び右シフトが変換出力信号に適用され得る。それらの場合、オフセットと右シフトは互いに結合され得る。例えば、追加のオフセットが２M-1の値を有し、追加の右シフトがＭの値を有する場合、結合されたオフセットは、２M+N-1に等しい値を有し得、結合された右シフトは、（Ｍ＋Ｎ）に等しい値を有し得る。
【０１１７】
ＬＢＤＩユニット４２は、変換のためのより高いビット深度の変換入力信号を与えるために、変換ユニット５２において可変局所ビット深度増加を適用することによって変換ユニット５２の丸め誤差を低減又は除去し得る。変換ユニット５２に入力される残差ビデオブロックデータのより高いビット深度は、変換ユニット５２の固定小数点変換を表すために使用されるカスケードバタフライ構造によって実行される右シフトの量によってあまり損なわれない。その上、変換ユニット５２の固定小数点変換のサイズに基づいて計算された値を用いて可変局所ビット深度増加を適用すると、残差ビデオブロックデータに適用される特定の固定小数点変換による変換ユニット５２の丸め誤差がより効果的に低減される。
【０１１８】
図９は、逆変換ユニットの固定小数点実装の丸め誤差を緩和するために逆変換ユニットにおいて可変局所ビット深度増加を適用する例示的な方法を示すフローチャートである。図９に示す方法は、図５からのビデオデコーダ３０Ａと、図７からのビデオデコーダ３０Ｂとに関して説明する。
【０１１９】
ビデオデコーダ３０Ａ又は３０Ｂは、ＬＢＤＩユニット８４中の定数値メモリ８５に複数の異なる変換サイズについての複数の定数値を記憶する（１５０）。上記で説明したように、複数の異なる変換サイズのうちの１つに関連する定数値の各々は、ビデオ信号の入力ビット深度値Ｂiと、変換サイズに関連する変換ビット深度値ＢTRと、変換サイズに関連する変換ビット精度値Ｚとに基づいて事前計算される。例えば、各定数値Ｎは、式Ｂi＋ＢTR＋Ｎ≦Ｚを満たすように事前計算され得る。
【０１２０】
ビデオデコーダ３０Ａ又は３０Ｂは、次いで、復号されるべき符号化ビデオ信号を受信する（１５２）。符号化ビデオ信号を受信すると、ビデオデコーダ３０Ａ又は３０ＢのＬＢＤＩユニット８４は、逆変換ユニット７８によって適用されるべき固定小数点逆変換のサイズを決定し、その固定小数点変換のサイズに基づいて定数値メモリ８５に記憶された定数値を選択する（１５４）。
【０１２１】
ＬＢＤＩユニット８４は、次いで、ビデオエンコーダにおいてビデオ信号に内部ビット深度増加（ＩＢＤＩ）が適用されたかどうかを決定する（１５６）。ビデオ信号にＩＢＤＩが適用された場合、ビデオエンコーダは、ビデオデコーダ３０Ａ又は３０ＢにＩＢＤＩの値を明示的に信号伝達し得る。図５からのビデオデコーダ３０Ａの例の場合のように、ＩＢＤＩが適用されていない場合（１５６のＮＯ）、逆変換ユニット７８の直前に、ＬＢＤＩユニット８４は、逆変換ユニット７８に入力される変換係数に、選択された定数値に等しいビット数だけ左シフト８６を適用する（１６０）。逆変換ユニット７８は、次いで、左シフトされた変換係数を残差ビデオブロックデータに逆変換する（１６２）。逆変換ユニット７８の直後に、ＬＢＤＩユニット８４は、逆変換ユニット７８から出力された残差ビデオブロックデータにオフセットを適用する（１６４）。例えば、ＬＢＤＩユニット８４は、２N-1に等しいオフセットを残差ビデオブロックデータに適用し得る。ＬＢＤＩユニット８４は、次いで、オフセットされた残差ビデオブロックデータに、選択された定数値に等しいビット数だけ右シフト８７を適用する（１６６）。
【０１２２】
場合によっては、可変局所ビット深度増加とともに追加のオフセット及び右シフトが変換出力信号に適用され得る。それらの場合、オフセットと右シフトは互いに結合され得る。例えば、追加のオフセットが２M-1の値を有し、追加の右シフトがＭの値を有する場合、結合されたオフセットは、２M+N-1に等しい値を有し得、結合された右シフトは、（Ｍ＋Ｎ）に等しい値を有し得る。
【０１２３】
図７からのビデオエンコーダ３０Ｂの例の場合のように、ＩＢＤＩが適用された場合（１５６のＹＥＳ）、ＬＢＤＩユニット８４は、ビデオエンコーダ２０Ｂによって明示的に信号伝達されたようにＩＢＤＩの値を決定する。ＬＢＤＩユニット８４は、次いで、ＩＢＤＩの値に基づいて、選択された定数値を調整する（１５８）。この場合、変換ユニット５２の固定小数点変換のサイズのために選択された定数値Ｎは、調整された定数値がＮ−Ｂdに等しくなるように、ＩＢＤＩの値Ｂdだけ低減されることになる。
【０１２４】
ＬＢＤＩユニット８４は、選択された定数値を非負値のみに低減し得る。例えば、ＬＢＤＩユニット８４は、（Ｎ−Ｂd）≧０となるように、ＩＢＤＩの値が、選択された定数値よりも小さいか又はそれに等しいとき、選択された定数値をＩＢＤＩの値だけ低減する。（Ｎ−Ｂｄ）＜０となるように、ＩＢＤＩの値が、選択された定数値よりも大きい場合、ＬＢＤＩユニット８４は、選択された定数値を０に低減する。
【０１２５】
逆変換ユニット７８の直前に、ＬＢＤＩユニット８４は、逆変換ユニット７８に入力される変換係数に、調整された定数値に等しいビット数だけ左シフト１０６を適用する（１６０）。逆変換ユニット７８は、次いで、左シフトされた変換係数を残差ビデオブロックデータに逆変換する（１６２）。逆変換ユニット７８の直後に、ＬＢＤＩユニット８４は、逆変換ユニット７８から出力された残差ビデオブロックデータにオフセットを適用する（１６４）。例えば、ＬＢＤＩユニット８４は、２N-1に等しいオフセットを残差ビデオブロックデータに適用し得る。ＬＢＤＩユニット８４は、次いで、オフセットされた残差ビデオブロックデータに、調整された定数値に等しいビット数だけ右シフト１０７を適用する（１６６）。
【０１２６】
場合によっては、可変局所ビット深度増加とともに追加のオフセット及び右シフトが変換出力信号に適用され得る。それらの場合、オフセットと右シフトは互いに結合され得る。例えば、追加のオフセットが２M-1の値を有し、追加の右シフトがＭの値を有する場合、結合されたオフセットは、２M+N-1に等しい値を有し得、結合された右シフトは、（Ｍ＋Ｎ）に等しい値を有し得る。
【０１２７】
ＬＢＤＩユニット８４は、変換のためのより高いビット深度の変換入力信号を与えるために、逆変換ユニット７８において可変局所ビット深度増加を適用することによって逆変換ユニット７８の丸め誤差を低減又は除去し得る。逆変換ユニット７８に入力される変換係数のより高いビット深度は、逆変換ユニット７８の逆固定小数点変換を表すために使用されるカスケードバタフライ構造によって実行される右シフトの量によってあまり損なわれない。その上、逆変換ユニット７８の固定小数点逆変換のサイズに基づいて計算された値を用いて可変局所ビット深度増加を適用すると、変換係数に適用される特定の固定小数点逆変換による逆変換ユニット７８の丸め誤差がより効果的に低減される。
【０１２８】
以下で提示する表１及び表２に、内部ビット深度増加（ＩＢＤＩ）が適用されないとき、線形変換において局所ビット深度増加を適用した最初の結果を与える。表１と表２は両方とも、幾つかのビデオシーケンスについて、ＩＢＤＩが適用されたときの局所ビット深度増加がない場合と、ＩＢＤＩが適用されないときの局所ビット深度増加がある場合とのビットレート低減割合を与えている。表１は、低遅延高効率、即ち、一般化されたＰ／Ｂ（ＧＰＢ）の構成の結果を提示し、表２は、ランダムアクセス高効率、即ち、階層Ｂの構成の結果を提示している。局所ビット深度増加がある場合の平均ビットレート低減は、低遅延高効率構成では１．２６％であり（表１）、ランダムアクセス高効率構成では１．０３％である（表２）。
【表１】
2013534795.tif 000001
【表２】
2013534795.tif 000002
【０１２９】
１つ以上の例では、本開示において説明した機能又は動作は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能又は動作は、１つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、又はコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技術の実装のための命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータ若しくは１つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１３０】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージデバイス、フラッシュメモリ、若しくは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体など、非一時的媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）及びブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１３１】
命令は、１つ以上のデジタル信号プロセッサ（ＤＳＰ）などの１つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、又は他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技術の実装に好適な他の構造のいずれかを指し得る。さらに、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内に提供され得、若しくは複合コーデックに組み込まれ得る。また、本技術は、１つ以上の回路又は論理要素中に十分に実装され得る。
【０１３２】
本開示の技術は、ワイヤレスハンドセット、集積回路（ＩＣ）又はＩＣのセット（例えば、チップセット）を含む、多種多様なデバイス又は装置において実施され得る。本開示では、開示する技術を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上記で説明したように１つ又は複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。