(57)【要約】  圧縮データを復号するためのシステムおよび方法が、本明細書で説明される。メモリは、算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信し得る。符号化シンボルのストリングは、１つまたは複数の復号シンボルの系列を表す。１つまたは複数の復号シンボルの各々は、優勢シンボルおよび劣勢シンボルのうちの一方を備える。プロセッサは、符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの系列の中の連続する優勢シンボルの個数を決定し得る。プロセッサは、複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの系列のシンボルのグループをさらに復号し得る。シンボルのグループは、その個数の連続する優勢シンボルを備える。
2018536344.tif 000002
【特許請求の範囲】
【請求項１】
圧縮データを復号するための方法であって、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信することと、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
前記符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数を決定することと、
前記複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号することと、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、
を備える、方法。
【請求項２】
前記個数の連続する優勢シンボルを前記復号することが、単一のクロックサイクルの中で生じる、請求項１に記載の方法。
【請求項３】
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、請求項１に記載の方法。
【請求項４】
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、請求項１に記載の方法。
【請求項５】
算術コーディングベースのコーディング技法が、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つを備える、請求項１に記載の方法。
【請求項６】
前記算術コーディングベースのコーディング技法が、乗算器ベースのコーディング技法である、請求項１に記載の方法。
【請求項７】
シンボルの前記復号グループが、ピクチャのシーケンスの少なくとも一部分を規定する１つまたは複数のシンタックス要素を示す、請求項１に記載の方法。
【請求項８】
圧縮データを復号するためのシステムであって、デコーダが、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信するように構成されたメモリと、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
前記符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数を決定し、
前記複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号する、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、
ように構成されたプロセッサとを備える、システム。
【請求項９】
前記個数の連続する優勢シンボルを前記復号することが、単一のクロックサイクルの中で生じる、請求項８に記載のシステム。
【請求項１０】
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、請求項８に記載のシステム。
【請求項１１】
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、請求項８に記載のシステム。
【請求項１２】
算術コーディングベースのコーディング技法が、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つを備える、請求項８に記載のシステム。
【請求項１３】
前記算術コーディングベースのコーディング技法が、乗算器ベースのコーディング技法である、請求項８に記載のシステム。
【請求項１４】
シンボルの前記復号グループが、ピクチャのシーケンスの少なくとも一部分を規定する１つまたは複数のシンタックス要素を示す、請求項８に記載のシステム。
【請求項１５】
実行されると、データを復号するためのデバイスのプロセッサに、圧縮データを復号するための方法を実行させる命令を記憶した非一時的コンピュータ可読媒体であって、前記方法が、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信することと、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
前記符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数を決定することと、
前記複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号することと、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、
を備える、非一時的コンピュータ可読媒体。
【請求項１６】
前記個数の連続する優勢シンボルを前記復号することが、単一のクロックサイクルの中で生じる、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１７】
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１８】
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１９】
算術コーディングベースのコーディング技法が、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つを備える、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記算術コーディングベースのコーディング技法が、乗算器ベースのコーディング技法である、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項２１】
圧縮データを復号するためのシステムであって、デコーダが、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信するための手段と、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
前記符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数を決定するための手段と、
前記複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号するための手段と、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、
を備える、システム。
【請求項２２】
前記個数の連続する優勢シンボルを前記復号することが、単一のクロックサイクルの中で生じる、請求項２１に記載のシステム。
【請求項２３】
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、請求項２１に記載のシステム。
【請求項２４】
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、請求項２１に記載のシステム。
【請求項２５】
算術コーディングベースのコーディング技法が、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つを備える、請求項２１に記載のシステム。
【請求項２６】
前記算術コーディングベースのコーディング技法が、乗算器ベースのコーディング技法である、請求項２１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、一般に、ビデオコーディングを含むコーディングに関する。より詳細には、本開示は、並列処理技法（parallel processing technique）を使用することによる算術コーディングベースのコーディング技法（arithmetic coding based coding technique）を使用して符号化された、ビデオデータ（video data）を含むデータを復号する（decode）ための、システムおよび方法に関する。
【背景技術】
【０００２】
[0002]  デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法などの、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および／または記憶することができる。
【０００３】
[0003]  ビデオコーディング技法は、ビデオシーケンスに固有の冗長性（redundancy）を低減または除去するための空間（イントラピクチャ（intra-picture））予測および／または時間（インターピクチャ（inter-picture））予測を含む。ブロックベースビデオコーディングでは、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）が、いくつかの技法ではツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００４】
[0004]  空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされるブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コーディングされたブロックと予測ブロックとの差分を示す。イントラコーディングされるブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことがあり、その残差変換係数が次いで、量子化され得る。最初に２次元アレイで構成される量子化された変換係数は、変換係数の１次元ベクトルを生成するために走査されることがあり、なお一層の圧縮を達成するためにエントロピーコーディングが適用されることがある。
【０００５】
[0005]  デジタルビデオ機能に加えて、またはその代替として、デバイスは、オーバージエア（over the air）で、または有線リンクを介して、任意のタイプのデジタルコンテンツの送信および受信が可能であり得る。そのようなデジタルコンテンツは、送信の前に圧縮され得る。
【発明の概要】
【０００６】
[0006]  本開示の教示の一態様は、圧縮データ（compressed data）を復号するための方法に関する。方法は、算術コーディングベースのコーディング技法を使用して符号化された符号化シンボル（encoded symbol）のストリング（string）を備えるデータストリーム（data stream）を受信することを備える。符号化シンボルのストリングは、１つまたは複数の復号シンボル（decoded symbol）の系列（series）を表す。１つまたは複数の復号シンボルの各々は、優勢シンボル（most probable symbol）および劣勢シンボル（least probable symbol）のうちの一方を備える。方法は、符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較（parallel mathematical comparison）を実行することによって、１つまたは複数の復号シンボルの系列の中の連続する優勢シンボル（consecutive most probable symbol）の個数を決定することをさらに備える。方法は、複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの系列のシンボルのグループを復号することをさらに備える。シンボルのグループは、その個数の連続する優勢シンボルを備える。
【０００７】
[0007]  本開示の教示の別の態様は、圧縮データを復号するためのシステムに関する。システムは、算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信するように構成されたメモリを備える。符号化シンボルのストリングは、１つまたは複数の復号シンボルの系列を表す。１つまたは複数の復号シンボルの各々は、優勢シンボルおよび劣勢シンボルのうちの一方を備える。システムは、符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの系列の中の連続する優勢シンボルの個数を決定するように構成されたプロセッサをさらに備える。プロセッサは、複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの系列のシンボルのグループを復号するようにさらに構成される。シンボルのグループは、その個数の連続する優勢シンボルを備える。
【０００８】
[0008]  本開示の教示の別の態様は、実行されると、データを復号するためのデバイスのプロセッサに、圧縮データを復号するための方法を実行させる命令を記憶した、非一時的コンピュータ可読媒体（non-transitory computer-readable medium）に関する。方法は、算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信することを備える。符号化シンボルのストリングは、１つまたは複数の復号シンボルの系列を表す。１つまたは複数の復号シンボルの各々は、優勢シンボルおよび劣勢シンボルのうちの一方を備える。方法は、符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの系列の中の連続する優勢シンボルの個数を決定することをさらに備える。方法は、複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの系列のシンボルのグループを復号することをさらに備える。シンボルのグループは、その個数の連続する優勢シンボルを備える。
【０００９】
[0009]  本開示の教示の別の態様は、圧縮データを復号するためのシステムに関する。システムは、算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信するための手段を備える。符号化シンボルのストリングは、１つまたは複数の復号シンボルの系列を表す。１つまたは複数の復号シンボルの各々は、優勢シンボルおよび劣勢シンボルのうちの一方を備える。システムは、符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの系列の中の連続する優勢シンボルの個数を決定するための手段をさらに備える。システムは、複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの系列のシンボルのグループを復号するための手段をさらに備える。シンボルのグループは、その個数の連続する優勢シンボルを備える。
【図面の簡単な説明】
【００１０】
【図１】[0010]  本開示の技法を実装し得る例示的なビデオ符号化および復号システム（video encoding and decoding system）を示すブロック図。
【図２】[0011]  本開示の技法を実装し得るビデオエンコーダ（video encoder）の例を示すブロック図。
【図３】[0012]  本開示の技法を実装し得るビデオデコーダ（video decoder）の例を示すブロック図。
【図４】[0013]  本開示の技法を実装し得るデコーダ（decoder）の一例を示すブロック図。
【図５】[0014]  圧縮データを復号するためのプロセスのフローチャートの図。
【発明を実施するための形態】
【００１１】
[0015]  本開示の技法は、復号（decoding）に関するレイテンシ（latency）を低減するために、並列処理技法を使用することによる算術コーディングベースのコーディング技法を使用して符号化された、ビデオデータを含むデータを復号するための、システムおよび方法に関する。詳細には、本明細書で説明するシステムおよび方法は、コード化データのブロックを一度に（たとえば、いくつかの復号シンボルを単一のクロックサイクル（single clock cycle）の中で）処理する算術復号技法（arithmetic decoding technique）に関し得、そうした技法は、「ブロック算術コーディング（block arithmetic coding）」と呼ばれることがある。そのような技法は、有利なことに、コード化データの復号レート（decoding rate）がコード化データの符号化（たとえば、圧縮）データシンボルレートに近似的に比例することを可能にし得、そのことは、符号化データシンボルのストリングを復号するのに必要とされるサイクルの数が符号化データシンボルの個数に近似的に等しいことを意味する。そのような低減されたレイテンシは、復号のためのより高速な計算をもたらすことができ、潜在的に時間とエネルギーとを節約する。本技法は、高効率ビデオコーディング（ＨＥＶＣ）などの既存のビデオコーデックのいずれにも適用されてよく、または未来のあらゆるビデオコーディング規格に対する効率的なコーディングツールであり得る。さらに、そのような技法は、乗算器なしのコーディング技法（multiplier-free coding technique）（たとえば、Ｑコーダ、ＭＱコーダなど）および乗算器ベースのコーディング技法（multiplier based coding technique）に適合され得る。このことは、圧縮率（compression ratio）においていかなる負の影響もなくレイテンシが低減されたデコーダを有するための（たとえば、乗算器ベースのコーディング技法）、または圧縮率を計算の複雑さと交換できるための（たとえば、乗算器なしベースのコーディング技法）フレキシビリティを可能にする。さらに、そのような技法は、並列処理を実行するためにビットスタッフィング（bit-stuffing）を必要としない。本技法はビデオコーディングに関して説明されるが、当業者は、そのような技法が他のタイプのデータのコーディング（coding）のために使用され得ることを理解するだろう。
【００１２】
[0016]  たとえば、デジタルデータのシリアル送信（serial transmission）は、一般に、低電力要件を向上させるためにさらなる圧縮を使用することによって改善され得る。そのようなシリアル送信は、同期リンクおよび／または非同期リンクに対して、本明細書で説明する技法に従って改善され得る。詳細には、本明細書で説明する圧縮技法は、同期リンクを介して送信されることを必要とするビットの総数を低減し得るだけでなく、デバイス間で送信されることが必要とされる同期したクロックの数も低減し得る。より一般的には、本明細書で説明する圧縮技法は、デジタルデータを圧縮（compress）および圧縮解除（decompress）するのに必要とされるクロックサイクルの数（the number of clock cycles）を低減し得、それによって、電力を節約するためにできる限り速やかにクロックがシャットダウンされることを許容することなどによって、実施するためにより低い電力を必要とする。
【００１３】
[0017]  ビデオコーディングデバイスは、ビデオデータを効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間予測（たとえば、フレーム内予測、イントラ予測）、時間予測（たとえば、フレーム間予測、インター予測）、および／または他の予測技法を適用することを含み得る。ビデオエンコーダは通常、ビデオブロックまたはコーディングユニットと呼ばれる矩形の領域に、元のビデオシーケンスの各ピクチャを区分する。これらのビデオブロックは、特定の予測モードを使用して符号化され得る。
【００１４】
[0018]  これらのビデオブロックは、本明細書でさらに説明されるように、より小さいビデオブロック（たとえば、予測ブロック（ＰＢ）、変換ブロック（ＴＢ））の１つまたは複数のグループに１つまたは複数の方法で分割され得、各グループはビデオブロック全体を個々に表す。したがって、概してブロックへの言及は、別段に規定されていない限り、当業者によって理解されることになるように、そのようなビデオブロック（たとえば、コーディングツリーブロック（ＣＴＢ）、コーディングブロックなど）、予測ブロック、変換ブロック、または他の適切なブロックもしくはサブブロックを指すことがある。さらに、これらのブロックの各々はまた、本明細書では、互換的に「ユニット」（たとえば、コーディングツリーユニット（ＣＴＵ）、コーディングユニット、予測ユニット（ＰＵ）、変換ユニット（ＴＵ）など）と呼ばれることがある。ユニットが、ビットストリームの中で符号化されるコーディング論理ユニットを示し得、一方ブロックが、プロセスがターゲットであるビデオフレームバッファの一部分を示し得ることを、当業者は認識するだろう。
【００１５】
[0019]  インター予測モードでは、ビデオエンコーダは通常、参照フレームと呼ばれる別の時間的場所にあるフレームの中に符号化されているブロックに類似するブロックを探す。ビデオエンコーダは、符号化されるべきブロックからの一定の空間的変位に対する探索を制限し得る。水平方向の変位成分と垂直方向の変位成分とを含む２次元（２Ｄ）動きベクトルを使用して、ベストマッチが特定され得る。イントラ予測モードでは、ビデオエンコーダは、同じピクチャ内の以前に符号化された隣接ブロックからのデータに基づいて、空間予測技法を使用して予測されたブロックを形成することができる。
【００１６】
[0020]  ビデオエンコーダは、予測誤差、すなわち、符号化されているブロック中のピクセル値と予測されたブロックとの差（残差とも呼ばれる）を決定することができる。ビデオエンコーダはまた、変換係数を生成するために、離散コサイン変換（ＤＣＴ）などの変換を予測誤差に適用することができる。変換の後で、ビデオエンコーダは変換係数を量子化することができる。量子化された変換係数および動きベクトルは、シンタックス要素を使用して表されることがあり、制御情報とともに、ビデオシーケンスのコーディングされた表現を形成し得る。いくつかの事例では、ビデオエンコーダは、シンタックス要素をエントロピーコーディングすることができ、それによりそれらの表現に必要なビットの数をさらに減らす。
【００１７】
[0021]  たとえば、算術コーディングは、シンタックス要素（syntax element）および／または制御情報をエントロピーコーディングするためにビデオエンコーダによって使用され得るエントロピーコーディングの形態である。詳細には、エントロピーコーディングでは、頻繁に使用される文字は、より少ないビットを用いて符号化および記憶され、同じくらい頻繁には使用されない文字は、より多くのビットを用いて符号化および記憶される。復号ビデオシーケンス（たとえば、シンタックス要素および／または制御情報）の表現は、シンボル（たとえば、ビット）の系列またはストリングとして表され得る。シンボルは、優勢シンボルと劣勢シンボルとを含む異なる値を有し得る。詳細には、あるシンボルは、別のシンボル（すなわち、劣勢シンボル）よりも、復号ストリングの中にある可能性がずっと高いことがある（すなわち、優勢シンボル）。たとえば、優勢シンボルが０であってよく、劣勢シンボルが１であってよい。ビデオエンコーダは、シンボルの復号ストリングを表す符号化シンボルのストリングを生成するために、シンボルのストリングを符号化するように構成され得る。ビデオデコーダは、シンボルの元の（すなわち、復号された）ストリングを取り出すために、符号化シンボルを復号するように構成され得る。
【００１８】
[0022]  区間スケーリング（interval-scaling）と整数演算（）とを使用する算術符号化プロセス（arithmetic encoding process）の一例が、下の擬似コード（pseudo-code）に示される。
【００１９】
[0023]  一例では、符号化されるべきストリングは、２００ビット（たとえば、シンボル）の長さを有し、そのため、変数Ｔｏｔａｌ＿ＣｏｕｎｔおよびＣｕｍ＿ｃｏｕｎｔ（ｘ）は、長さ８ビット（たとえば、最大で２００の値を表すことができるための最小数のビット）のレジスタを表す。擬似コードが他の適切なレジスタサイズおよびストリング長に対して同様に適合され得ることを、当業者は理解するだろう。さらに、この例では、ＬおよびＵは、
【００２０】
【数１】
2018536344.tif 000003
【００２１】
としての長さを有するレジスタを表し得、この例では１０ビットであってよい。Ｓｃａｌｅ３は、長さ
【００２２】
【数２】
2018536344.tif 000004
【００２３】
のレジスタであり得、この例では４ビットであってよい。さらに、レジスタは、次のように、すなわち、Ｌ＝０、Ｓｃａｌｅ３＝０、Ｕはすべて１（すなわち、この例では１０２３）に設定、Ｔｏｔａｌ＿Ｃｏｕｎｔ＝２００（すなわち、符号化されるべきビット数を表す）、Ｃｕｍ＿ｃｏｕｎｔ（０）＝０、Ｃｕｍ＿ｃｏｕｎｔ（１）＝符号化されるべきストリングの中の優勢シンボル（たとえば、０）の合計カウント、およびＣｕｍ＿ｃｏｕｎｔ（２）＝２００（すなわち、符号化されるべきビット数を表す）、のように初期化され得る。算術符号化（arithmetic encoding）は、符号化擬似コード（encoding pseudo code）Ａに従って次のように実行され得る。
【００２４】
【数３】
2018536344.tif 000005
【００２５】
[0024]  ビデオデコーダは、上で論じられたシンタックス要素と制御情報とを使用して、現在のフレームを復号するための予測データ（たとえば、予測ブロック）を構築することができる。たとえば、ビデオデコーダは、予測ブロックと圧縮予測誤差とを追加することができる。ビデオデコーダは、量子化された係数を使用して変換基底関数を重み付けることによって、圧縮された予測誤差を決定することができる。再構築されたフレームと元のフレームとの差分は、再構築誤差（reconstruction error）と呼ばれる。たとえば、ビデオデコーダは、シンタックス要素および／または制御情報を取り出すために、ビデオエンコーダから受信された、算術コーディングベースのコーディング技法（擬似コードＡに基づくような）を使用して符号化された符号化シンボルのストリングを復号し得る。
【００２６】
[0025]  区間スケーリングと整数演算とを使用する算術復号プロセスの一例が、下の擬似コードＢに示される。
【００２７】
[0026]  一例では、符号化されたストリングは、長さ２００ビット（たとえば、シンボル）を有したが、そのため、変数Ｔｏｔａｌ＿Ｃｏｕｎｔ、Ｃｕｍ＿ｃｏｕｎｔ（ｘ）、およびＣｏｕｎｔ＿０は、長さ８ビットの（すなわち、最大で２００の値を表すことができるための）レジスタを表す。符号化された復号ストリングの長さの値、および符号化ストリング（encoded string）の中の優勢シンボルの個数のカウントは、たとえば、制御情報として、エンコーダから受信され得る。擬似コードが他の適切なレジスタサイズおよびストリング長に対して同様に適合され得ることを、当業者は理解するだろう。さらに、この例では、Ｌ、Ｕ、およびＴは、
【００２８】
【数４】
2018536344.tif 000006
【００２９】
としての長さを有するレジスタを表し得、この例では１０ビットであってよい。さらに、レジスタは、次のように、すなわち、Ｌ＝０、Ｕはすべて１（すなわち、この例では１０２３）に設定、Ｔｏｔａｌ＿Ｃｏｕｎｔ＝２００（すなわち、符号化されるべきビット数を表す）、符号化ストリング（encoded string）の最初の
【００３０】
【数５】
2018536344.tif 000007
【００３１】
ビットをＴの中へ読み取り（すなわち、Ｔは入力符号化ストリングを表す）、Ｃｕｍ＿ｃｏｕｎｔ（０）＝０、Ｃｕｍ＿ｃｏｕｎｔ（１）＝Ｃｏｕｎｔ＿０、Ｃｕｍ＿ｃｏｕｎｔ（２）＝２００（すなわち、符号化されるべきビット数を表す）、およびＣｏｕｎｔ＿０＝符号化ストリングの中の優勢シンボルの合計カウント、のように初期化され得る。算術復号は、復号擬似コードＢに従って次のように実行され得る。
【００３２】
【数６】
2018536344.tif 000008
【００３３】
[0027]  復号擬似コードＢの第１のｗｈｉｌｅループ（第２のｗｈｉｌｅループの前）の第１の部分をセクションＡとして、および第１のｗｈｉｌｅループの中でネストされた第２のｗｈｉｌｅループをセクションＢとして参照すると、擬似コードＢは復号アルゴリズムを表す。このアルゴリズムでは、セクションＡが実行されるたびに、単一の出力シンボルが復号され、次いで、セクションＢが実行される。セクションＢでは、ｗｈｉｌｅループは、セクションＡに戻る前に１回または複数回実行し得る。擬似コードＢからわかるように、セクションＡが実行する回数は、データの復号ストリングの長さ（すなわち、シンボルの個数）に等しい（復号ストリングの長さは、エンコーダから受信されたデータの符号化ストリングの長さよりも長い）。したがって、復号アルゴリズムによるデータの符号化ストリングの復号のレート（rate）は、データの符号化ストリングのレートよりも高い。
【００３４】
[0028]  本明細書で説明する技法は、セクションＢの条件が満たされず、復号のために新たなシンボルがＴの中に読み取られることを必要としない場合、次のシンボルを復号するためにセクションＡだけが実行されることに留意する。セクションＢは、ＵおよびＬが等しいか、あるいは区間
【００３５】
【数７】
2018536344.tif 000009
【００３６】
、
【００３７】
【数８】
2018536344.tif 000010
【００３８】
、または
【００３９】
【数９】
2018536344.tif 000011
【００４０】
の中に含まれる場合のみトリガされる。したがって、本明細書では、アルゴリズムのセクションＢをトリガする前にできる限り多くのシンボルを復号するために、並列処理技法を使用する算術コーディング技法を使用して符号化された符号化ストリングを復号するための技法が説明される。これらのシンボルは、近似的に符号化シンボルレート（たとえば、符号化シンボル当り１クロックサイクル）で復号され得る。以下で説明する例は、優勢シンボルが「０」であり、したがって、いくつかの「０」を同時に復号するように設計されていると仮定する。並列処理技法を使用して別の値としてのいくつかの優勢シンボルを復号するために、類似の技法が使用され得ることに当業者は留意するだろう。
【００４１】
[0029]  セクションＡでは、復号シンボルが「０」である限りＬの値は変化しない。したがって、Ｕの値は、次のように非再帰的（non-recursively）に復号され得る。
【００４２】
【数１０】
2018536344.tif 000012
【００４３】
[0030]  エンコーダアルゴリズムとデコーダアルゴリズムの両方に対して、フロア演算子（floor operator）が除去されると仮定する。
【００４４】
【数１１】
2018536344.tif 000013
【００４５】
[0031]  したがって、エンコーダ側とデコーダ側の両方において同じ式１が使用されるという条件で、ＵNは、上の式１を用いて近似され得る。したがって、決定すべき残された唯一の変数は、ＵNの式１における「Ｎ」の値を復号または決定すべき「０」の個数である。
【００４６】
[0032]  Ｌが変化せず、復号されている入力シンボルが０であると仮定すると、Ｖａｌの値は変化しない。したがって、セクションＡのすべてのブロック復号に対して復号されるべき「０」の個数を決定するための並列比較（parallel comparison）のセットは、次のようになる。
【００４７】
【数１２】
2018536344.tif 000014
【００４８】
【数１３】
2018536344.tif 000015
【００４９】
【数１４】
2018536344.tif 000016
【００５０】
[0033]  上の式２．１〜２．Ｎの各々は、並行して評価されてよく（たとえば、並列復号のブロック）、最初の無効な条件（すなわち、Ｎの最低値にとって無効な式）がＮの値を与える。たとえば、式２．３が最初の無効な式である場合、Ｎ＝３である。したがって、並行して動作させられてよい式２．Ｎの数（たとえば、そうした数は、使用される復号ハードウェアに依存し得、そうした復号ハードウェアは、説明される技法を実行するように設計および／またはプログラムされた任意の好適な形態の専用処理ハードウェアであってよい）に応じて、いくつかのシンボルが単一のクロックサイクルの中で復号され得る。詳細には、行の中の同数の連続する優勢シンボルと、後続の単一の劣勢シンボルが、単一のクロックサイクルの中で復号され得る。代替として、復号され得る行の中の連続する優勢シンボルの個数がハードウェア制約によって限定され、劣勢シンボルが到達されない（すなわち、比較のいずれも無効でない）場合、その最大個数の連続する優勢シンボルが復号される。したがって、セクションＡのブロック反復の数（たとえば、並列比較が行われる回数）は、説明される技法に基づくと、連続的に符号化された優勢シンボルの個数に依存し、そのことは、シンボルを復号しセクションＡを実行するレートが着信符号化シンボルのレートに近似的に比例し得ること（たとえば、符号化シンボルごとに、復号のために１クロックサイクル）を意味する。
【００５１】
[0034]  さらに、擬似コードＢに記載されるデコーダアルゴリズムのセクションＢも、並行して評価され得る。詳細には、セクションＢにおいて実行される計算は、値のビットシフト（bit shift）、補完（complement）、および比較（comparison）に限定される。したがって、並列ブロック（parallel block）（すなわち、並列計算論理（parallel computed logic））としてセクションＢの計算を実行するために、組合せ論理（たとえば、説明される技法を実行するように設計および／またはプログラムされた任意の好適な形態の専用処理ハードウェア）が実装され得る。
【００５２】
[0035]  たとえば、セクションＢを計算するために２つの並列ブロックが使用される場合、セクションＢを計算するための第１のブロックは、セクションＢのｗｈｉｌｅループの第１の動作を計算するように示されるような、セクションＢのアルゴリズムを実装するための組合せ論理から作られることになる。セクションＢを計算するための第２のブロックは、先読み論理（look ahead logic）を含むことになり、セクションＢのｗｈｉｌｅループの第２の動作に対するセクションＢの、１）ｗｈｉｌｅループの第１の動作によるＵおよびＬの１ビット左シフトを伴う、および２）ｗｈｉｌｅループの第１の動作によるＵおよびＬの１ビット左シフトならびにＵ、Ｌ、およびＴのＭＳＢの補完も伴う、２つの可能な分岐を計算することになる。最終の結果として使用される、セクションＢを計算するための第２のブロックの結果は、セクションＢを計算するための第１のブロックの結果に基づくことになる（たとえば、キャリーチェーン論理（carry chain logic）と同様に）。したがって、セクションＢの２つのパスの計算は、単一のクロックサイクルの中で実行され得る。
【００５３】
[0036]  同様に、単一のクロックサイクルの中で計算され得るセクションＢのパスの数を増やすために、セクションＢを計算するための任意の数の追加の並列ブロックが使用され得る。追加の並列ブロックは、ｗｈｉｌｅループのその動作（すなわち、第１、第２、第３、第４などの）において可能な分岐のすべてを実行および計算するように構成されることになる。たとえば、セクションＢを計算するための第３のブロックは、ｗｈｉｌｅループの第３の動作に対応する４つの可能な分岐（すなわち、ｗｈｉｌｅループの２つの可能な第２の動作の各々によるＵおよびＬの１ビット左シフトを伴う、およびｗｈｉｌｅループの２つの可能な第２の動作の各々によるＵおよびＬの１ビット左シフトならびにＵ、Ｌ、およびＴのＭＳＢの補完も伴う）を計算することを必要とすることになる。計算される最終の並列ブロックの結果は、前の並列ブロックの結果に基づいて選択されることになる（すなわち、最終ブロックは前のブロックに基づいており、前のブロックは、その前のブロックに基づいているなど）。わかるように、セクションＢを計算するために使用される並列ブロックの数を増やすために、引き続くブロックごとに論理が指数関数的に増大する（すなわち、第１のブロックの論理要件が１つと見なされると仮定すると、各ブロックの論理要件は２＾ｘであり、ただし、ｘはブロック数１、２、３、４などである）。
【００５４】
[0037]  さらに、セクションＢを処理するために並列ブロックを使用することによって、セクションＢの反復の総数は、復号されている符号化シンボルの個数に近似的に等しくなり得る。
【００５５】
[0038]  セクションＡのための並列比較および／またはセクションＢにおけるブロックの並列処理を実行するために使用される論理の量（たとえば、ハードウェアにおける並列構成要素の量）が、ハードウェアコストと性能との間の適切な均衡を見つけるためのテストに基づいて選択され得ることに留意されたい。たとえば、論理の量は、実装のための技術（たとえば、ＤＳＰ、ＦＰＧＡなど）の選択およびコーディングされているデータのタイプに応じて変わり得る。
【００５６】
[0039]  上記の例では、レジスタＵのビット幅は１０ビットである。したがって、任意の時点において必要とされるセクションＢの反復の数は、１０未満であることになる。したがって、そのような実装形態におけるセクションＢのための並列ブロックの数は、１０以下に限定されてよく、より詳細には、７つの並列ブロックの使用を上回る著しい性能利点があり得ないとき、７に設定されてよい。
【００５７】
[0040]  復号について説明したブロック並列処理に基づくと、セクションＢの反復の総数は、復号されるべき符号化シンボルの総数に等しい。したがって、セクションＡと同様に、セクションＢを実行するレートは、着信符号化シンボルのレートに近似的に比例し得る（たとえば、符号化シンボルごとに、実行のために１クロックサイクル）。したがって、組み合わせられたセクションＡとセクションＢにとって符号化シンボルの復号レートは、符号化シンボルレート（たとえば、復号されている符号化シンボルの個数）に近似的に正比例する。いくつかの実施形態では、セクションＡとセクションＢの両方の反復の計算は、単一のクロックサイクルの中で一緒に計算され得る。
【００５８】
[0041]  上記で説明した並列処理技法を使用することによる算術コーディングベースのコーディング技法を使用して符号化された、ビデオデータを含むデータを復号するための技法は、乗算器ベースのコーディング技法（multiplier based coding technique）に関して説明される。ただし、本明細書で説明するように、類似の技法が、倍数なしベースのコーディング技法（multiple-free based coding technique）に適用され得る。
【００５９】
[0042]  一例では、本明細書におけるデータを復号するための技法は、Ｑコーダベース乗算器なしの符号化方式（Q- coder based multiplier-free encoding scheme）を使用して符号化されたデータのために使用され得る。詳細には、上記で説明した擬似コードＢの復号アルゴリズムのセクションＡは、次のように計算され得る。
【００６０】
[0043]  上記で説明したように、セクションＡでは、復号シンボルが「０」である限りＬの値は変化しない。したがって、Ｕの値は、次のように非再帰的に復号され得る。
【００６１】
【数１５】
2018536344.tif 000017
【００６２】
【数１６】
2018536344.tif 000018
【００６３】
[0044]  したがって、
【００６４】
【数１７】
2018536344.tif 000019
【００６５】
[0045]  整数表現を得るためにＵおよびＬが２＾ｋにスケーリングされるので、式３が書き直されてよく、ここで、ＵおよびＬは、単位元にスケーリングされ、次いで、式の整数形式を有理形式に変換して、次の式４が導出され得る。
【００６６】
【数１８】
2018536344.tif 000020
【００６７】
[0046]  ただし、ｕおよびｌは、ＵおよびＬのスケーリングされていない値を示し、０と１との間で有界である。
【００６８】
[0047]  Ｑコーダとしての類似の近似を適用すると、以下のことは真が成り立つ。
【００６９】
【数１９】
2018536344.tif 000021
【００７０】
[0048]  式５の上記の条件をｕn+1に適用すると、以下のことが導出され得る。
【００７１】
【数２０】
2018536344.tif 000022
【００７２】
[0049]  適応型Ｑコーダにおけるときにすべての反復に対してＱが異なる場合、式６は、
【００７３】
【数２１】
2018536344.tif 000023
【００７４】
となる。
【００７５】
[0050]  これらの式６および式７の整数等価物は、次のようにＴｏｔａｌ＿Ｃｏｕｎｔによって（たとえば、シフト演算を実行することによって）スケーリングされることを必要とすることになる。
【００７６】
【数２２】
2018536344.tif 000024
【００７７】
【数２３】
2018536344.tif 000025
【００７８】
【数２４】
2018536344.tif 000026
【００７９】
[0051]  乗算器ベースの手法を用いて説明したように、エンコーダ（encoder）とデコーダ（decoder）の両方においてＬおよびＵの整合されたトラッキングを保証するために、Ｕnの近似は、エンコーダとデコーダの両方において適用される場合のみ有効であり得る。
【００８０】
[0052]  Ｌが変化せず、復号されている入力シンボルが０であると仮定すると、Ｖａｌの値は変化しない。
【００８１】
[0053]  セクションＡから、以下の比較が行われる。
【００８２】
【数２５】
2018536344.tif 000027
【００８３】
[0054]  さらに、
【００８４】
【数２６】
2018536344.tif 000028
【００８５】
[0055]  したがって、
【００８６】
【数２７】
2018536344.tif 000029
【００８７】
[0056]  加えて、Ｑコーダ型近似を適用することによって、またＵおよびＬが整数表現についてのｕおよびｌのスケーリングされたバージョンであるので、以下のことは真が成り立つ。
【００８８】
【数２８】
2018536344.tif 000030
【００８９】
[0057]  したがって、セクションＡのすべてのブロック復号に対して復号されるべき０の個数を決定するための並列比較のセットは、次のように行われる。
【００９０】
【数２９】
2018536344.tif 000031
【００９１】
【数３０】
2018536344.tif 000032
【００９２】
【数３１】
2018536344.tif 000033
【００９３】
[0058]  変数Ｑに対して、比較は、
【００９４】
【数３２】
2018536344.tif 000034
【００９５】
となる。
【００９６】
[0059]  上の式１１．１〜１１．ｎの各々は、並行して評価されてよく（たとえば、並列復号のブロック）、最初の無効な条件（すなわち、ｎの最低値にとって無効な式）がｎの値を与える。たとえば、式１１．３が最初の無効な式である場合、ｎ＝３である。したがって、並行して動作させられてよい式１１．ｎの数（たとえば、そうした数は、使用される復号ハードウェアに依存し得、そうした復号ハードウェアは、説明される技法を実行するように設計および／またはプログラムされた任意の好適な形態の専用処理ハードウェアであってよい）に応じて、いくつかのシンボルが単一のクロックサイクルの中で復号され得る。詳細には、行の中の同数の連続する優勢シンボルと、後続の単一の劣勢シンボルが、単一のクロックサイクルの中で復号され得る。代替として、復号され得る行の中の連続する優勢シンボルの個数がハードウェア制約によって限定され、劣勢シンボルが到達されない（すなわち、比較のいずれも無効でない）場合、その最大個数の連続する優勢シンボルが復号される。したがって、セクションＡのブロック反復の数（たとえば、並列比較が行われる回数）は、説明される技法に基づくと、連続的に符号化された優勢シンボルの個数に依存し、そのことは、シンボルを復号しセクションＡを実行するレートが着信符号化シンボルのレートに近似的に比例し得ること（たとえば、符号化シンボルごとに、復号のために１クロックサイクル）を意味する。
【００９７】
[0060]  別の例では、本明細書におけるデータを復号するための技法は、適応型Ｑコーダベース乗算器なしの符号化方式（Adaptive Q- coder based multiplier-free encoding scheme）を使用して符号化されたデータのために使用され得る。たとえば、ＪＰＥＧ  Ｑコーダは、事前計算されたＱ値のテーブルを使用し、そうしたＱ値は、区間の再正規化（たとえば、復号アルゴリズムのセクションＢの実行）が行われるたびに使用される。ＪＰＥＧによって使用されるテーブルは、１１２エントリを有し得る。
【００９８】
[0061]  本明細書で説明される技法によれば、テーブルにおいて、Ｑは、０．５に初期化されてよく、復号されるべきすべての新たな入力符号化シンボルに対して修正される代わりに、再正規化（re-normalization）（すなわち、セクションＢの実行）が行われるたびに修正されてよい。符号化シンボルから優勢シンボルが復号された後、テーブルは、Ｑの値を減らすことによって、次の復号シンボルが優勢シンボルである尤度（likelihood）を変更する。符号化シンボルから劣勢シンボルが復号された後、テーブルは、次の復号シンボルが優勢シンボルである尤度を、Ｑの値を増やすことによって変更する。
【００９９】
[0062]  復号アルゴリズムのセクションＢに入っているときしかＱの値が更新されないので、このことは、セクションＡだけを実行している間はＱの値が変化しないことを暗示する。したがって、次の式１２および式１３は、適応型Ｑコーダベースの符号化シンボルを復号するために整数形式で使用され得る（ここで、ＵおよびＬはＴｏｔａｌ＿Ｃｏｕｎｔだけスケーリングされる）。
【０１００】
【数３３】
2018536344.tif 000035
【０１０１】
【数３４】
2018536344.tif 000036
【０１０２】
[0063]  これらは、Ｑコーダベースの符号化シンボルを復号することに関して説明した式８および式９と同じであり、したがって、式１１．ｎを使用する同じ比較が、符号化シンボルを復号するためにセクションＡを実行するために使用され得る。
【０１０３】
[0064]  適応型ＱコーダおよびＱコーダベースのコーディング技法に関して説明される例示的な復号技法のために使用されるＱコーダ近似は、以下の分析に基づいて有効である。
【０１０４】
[0065]  復号データストリングの中の劣勢シンボル（たとえば、１）としての真の確率をｑ、および乗算器なしの手法の例から並列処理技法を使用する算術復号（arithmetic decoding）への近似において使用される確率をＱとする。したがって、乗算器なしの式６のスケーリングされていないバージョンは、次のようになる。
【０１０５】
【数３５】
2018536344.tif 000037
【０１０６】
[0066]  セクションＡに入っている間の区間をＡi、およびセクションＡから出ているときの区間をＡiiとすると、区間の変化は、式１４に基づいて次のように計算される。
【０１０７】
【数３６】
2018536344.tif 000038
【０１０８】
[0067]  ｑが劣勢シンボルとしての真の確率であるので、セクションＡの中にある間、シーケンスの中にｎ個の優勢シンボル０を有する確率Ｐｍｐｓｒは、式１４に基づいて次のように計算され得る。
【０１０９】
【数３７】
2018536344.tif 000039
【０１１０】
[0068]  ｑとしての小さい値に対して、以下の近似が行われ得る。
【０１１１】
【数３８】
2018536344.tif 000040
【０１１２】
【数３９】
2018536344.tif 000041
【０１１３】
[0069]  等しい数の優勢シンボルおよび劣勢シンボルの再正規化がある場合、Ｐｍｐｓｒ＝０．５である。したがって、
【０１１４】
【数４０】
2018536344.tif 000042
【０１１５】
[0070]  式１７および式１９を使用し、Ｑについて解くと、以下のことが導出される。
【０１１６】
【数４１】
2018536344.tif 000043
【０１１７】
[0071]  ΔＡが、通常、  ．７５未満（すなわち、約  ．６３９またはｌｎ（２））であると仮定すると、理論的にＱ≒ｑであり、近似は、したがって、近似は真が成り立つ。
【０１１８】
[0072]  ΔＡの大きさは再正規化のタイプに依存するので、最後に優勢シンボルの再正規化が生じた場合、ΔＡは０．７５に近い。さらに、最後に劣勢シンボルが出現した場合、ΔＡは、通常、０．７５よりもいくぶん小さい。さらに、Ｑが大きすぎる場合、Ｐｍｐｓｒも大きく、アルゴリズムは、Ｑとしてのもっと小さい値に移動する傾向がある。反対に、Ｑが小さすぎる場合、Ｐｍｐｓｒは小さく、アルゴリズムは、Ｑとしてのもっと大きい値に移動する傾向がある。したがって、アルゴリズムは、Ｑ≒ｑという場合に適合し、そうした場合に近似的に近く均衡する。
【０１１９】
[0073]  本開示に基づいて当業者が理解するように、符号化技法および復号技法が、本明細書で説明されるようなシステムおよび方法の異なる実施形態において実装され得ることに留意されたい。さらに、実装される符号化技法および復号技法は、擬似コードＡおよび擬似擬似コードＢに関係し本明細書で説明される例（たとえば、乗算器ベースの手法、乗算器なしベースの手法）のいずれか、または任意の類似のコーディング技法に基づいてよく、システムおよび方法は、１つまたは複数の符号化シンボルに基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの系列の中の連続する優勢シンボルの個数を決定する。
【０１２０】
[0074]  図１は、本明細書で説明されるような並列処理技法を使用することによる算術コーディングベースのコーディング技法を利用および実装し得る、例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化されたビデオデータを提供するソースデバイス１２を含む。ビデオデータは、擬似コードＡなどによる算術コーディングベースのコーディング技法または類似のコーディング技法を用いて、本明細書で説明されるように符号化され得る。ビデオデータは、擬似コードＢなどによる算術コーディングベースのコーディング技法または類似のコーディング技法を用いて、本明細書で説明されるように復号され得る。具体的には、ソースデバイス１２は、コンピュータ可読媒体１６を介して宛先デバイス１４にビデオデータを提供する。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォン、いわゆる「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信に対応し得る。
【０１２１】
[0075]  宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化されたビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体１６は、ソースデバイス１２が宛先デバイス１４にリアルタイムで符号化されたビデオデータを直接送信することを可能にする通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信標準規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路などの、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【０１２２】
[0076]  いくつかの例では、符号化されたデータは、出力インターフェース２２から記憶デバイスに出力され得る。同様に、符号化されたデータは、記憶デバイスから入力インターフェースによってアクセスされ得る。記憶デバイスは、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体などの、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイス１２によって生成された符号化されたビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶することができ、その符号化されたビデオデータを宛先デバイス１４に送信することができる、任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワークアタッチストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適した、両方の組合せを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【０１２３】
[0077]  本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ：dynamic adaptive streaming over HTTP）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア応用のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオ電話などの応用をサポートするために、一方向または両方向のビデオ送信をサポートするように構成され得る。
【０１２４】
[0078]  図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、擬似コードＡに関して説明されたものと類似の符号化技法などの、本明細書で説明される算術コーディングのための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。たとえば、ソースデバイス１２は、外部カメラなどの外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【０１２５】
[0079]  図１の示されるシステム１０は一例にすぎない。本明細書で説明される算術コーディング技法を利用するための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスによって実行されるが、本技法は、「コーデック」と通常は呼ばれるビデオエンコーダ／デコーダによっても実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサ、または、さらにビデオデータに限定されない全般的なエンコーダ／デコーダによって実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４への送信のためのコーディングされたビデオデータを生成するようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス１２とビデオデバイス１４との間で一方向または双方向のビデオ送信をサポートし得る。
【０１２６】
[0080]  ソースデバイス１２のビデオソース１８は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータにより生成されたビデオとの組合せを生成し得る。いくつかの場合には、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き電話またはビデオ電話を形成し得る。しかしながら、上述のように、本開示で説明される技法は、全般にビデオコーディング、またはコーディングにさえ適用可能であることがあり、ワイヤレスおよび／または有線の適用例に適用されることがある。各々の場合において、キャプチャされたビデオ、前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、その後、出力インターフェース２２によってコンピュータ可読媒体１６に出力され得る。
【０１２７】
[0081]  コンピュータ可読媒体１６は、ワイヤレスブロードキャストもしくは有線ネットワーク送信などの一時媒体、または、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、もしくは他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバ（図示されず）は、たとえば、ネットワーク送信を介して、ソースデバイス１２から符号化されたビデオデータを受信し、その符号化されたビデオデータを宛先デバイス１４に与え得る。同様に、ディスクスタンピング設備などの、媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化されたビデオデータを受信し、その符号化されたビデオデータを含んでいるディスクを製造し得る。したがって、様々な例では、コンピュータ可読媒体１６は、様々な形態の１つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【０１２８】
[0082]  宛先デバイス１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ブロックおよび他のコーディングされたユニット、たとえば、ＧＯＰの特性および／または処理を記述するシンタックス要素を含む、ビデオエンコーダ２０によって定義されビデオデコーダ３０によっても使用される、シンタックス情報を含み得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
【０１２９】
[0083]  図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合されることがあり、共通のデータストリームまたは別個のデータストリームの中でオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【０１３０】
[0084]  ビデオエンコーダ２０およびビデオデコーダ３０（または、並列処理技法を使用する算術コーディングベースのコーディング技法に関する、本明細書で説明される技法を実装する任意のエンコーダもしくはデコーダ）は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、個別論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなどの、様々な好適なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つまたは複数のエンコーダまたはデコーダに含まれることがあり、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合されることがある。
【０１３１】
[0085]  本開示は、一般に、ビデオエンコーダ２０が、ビデオデコーダ３０などの別のデバイスにある情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、全般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素および／または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムで発生し得る。代替として、そのような通信は、符号化時に符号化されたビットストリームにおいてシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われることがあるなど、ある時間の長さにわたって行われることがあり、次いで、シンタックス要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出されることがある。
【０１３２】
[0086]  ビデオエンコーダ２０およびビデオデコーダ３０は、ビデオコーディング規格に従って動作し得る。Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＪＣＴ−ＶＣ）、ならびにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  （ＶＣＥＧ）およびＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  （ＭＰＥＧ）のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  ３Ｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｔｅｎｓｉｏｎ  Ｄｅｖｅｌｏｐｍｅｎｔ  （ＪＣＴ−３Ｖ）によって開発された例示的なビデオコーディング規格は、その範囲拡張と、マルチビュー拡張（ＭＶ−ＨＥＶＣ）とスケーラブル拡張（ＳＨＶＣ）とを含む、高効率ビデオコーディング（ＨＥＶＣ）またはＩＴＵ−Ｔ  Ｈ．２６５を含む。完成したＨＥＶＣ規格文書は、「ＩＴＵ−Ｔ  Ｈ．２６５、ＳＥＲＩＥＳ  Ｈ：ＡＵＤＩＯＶＩＳＵＡＬ  ＡＮＤ  ＭＵＬＴＩＭＥＤＩＡ  ＳＹＳＴＥＭＳ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ｏｆ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ−Ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｖｉｄｅｏ−Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ」、国際電気通信連合（ＩＴＵ）の電気通信標準化部門、２０１３年４月として公開されている。代わりに、ビデオエンコーダ２０およびビデオデコーダ３０は、そのスケーラブルビデオコーディング（ＳＶＣ）拡張とマルチビュービデオコーディング（ＭＶＣ）と拡張を含む、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＶｉｓｕａｌおよびＩＴＵ−Ｔ  Ｈ．２６４（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）などの、他のプロプライエタリ規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。たとえば、本開示の技法は、ＩＴＵ−Ｔ  Ｈ．２６６などの、様々な他のプロプライエタリもしくは非プロプライエタリビデオコーディング技法または後続の規格とともに使用され得る。
【０１３３】
[0087]  図２は、本明細書で説明されるような並列処理技法を使用することによる算術コーディングベースのコーディング技法を利用および実装し得る、ビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指すことがある。
【０１３４】
[0088]  図２に示されているように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、ビデオデータメモリ３８と、モード選択ユニット４０と、参照ピクチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット（entropy encoding unit）５６とを含む。そして、モード選択ユニット４０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、分割ユニット４８とを含む。ビデオブロックの再構築のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構築されたビデオからブロッキネスアーティファクト（blockiness artifact）を除去するためにブロック境界をフィルタリングするための、（図２に示されていない）デブロッキングフィルタ（deblocking filter）も含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器６２の出力をフィルタリングする。追加のフィルタ（ループ内またはループ後）もデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタリングし得る。
【０１３５】
[0089]  符号化プロセスの間に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。ビデオデータメモリ３８は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ３８に記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。参照ピクチャメモリ６４は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する、ＤＰＢと呼ばれることがある。ビデオデータメモリ３８および参照ピクチャメモリ６４は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ３８および参照ピクチャメモリ６４は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ３８は、ビデオエンコーダ２０の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【０１３６】
[0090]  動き推定ユニット４２および動き補償ユニット４４は、時間的予測を行う（provide）ために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、代わりに、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ２０は、たとえば、ビデオデータの各ブロックに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【０１３７】
[0091]  その上、区分ユニット４８は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット４８は、最初にフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、ＬＣＵをサブＣＵに区分することを示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと１つまたは複数のＴＵとを含み得る。
【０１３８】
[0092]  モード選択ユニット４０は、たとえば、誤差結果に基づいて、コーディングモード、イントラまたはインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器５０に提供し、参照フレームとして使用するための符号化されたブロックを再構築するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器６２に提供し得る。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素を、エントロピー符号化ユニット５６に与える。
【０１３９】
[0093]  動き推定ユニット４２および動き補償ユニット４４は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（または他のコーディングされたユニット）内でコーディングされている現在のブロックに対する相対的な、参照フレーム（または他のコーディングされたユニット）内の予測ブロックに対する相対的な現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分尺度（difference metrics）によって決定され得るピクセル差分に関して、コーディングされるべきブロックとよく一致することが判明しているブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数のピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【０１４０】
[0094]  動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測的ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのＰＵの動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択されることがあり、それらの各々が、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを特定する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６および動き補償ユニット４４に送る。
【０１４１】
[0095]  動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを伴い得る。同じく、動き推定ユニット４２および動き補償ユニット４４は、いくつかの例では、機能的に統合され得る。現在のビデオブロックのＰＵの動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックを位置特定し得る。加算器５０は、以下で説明されるように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット４２は、ルーマ成分に対して動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方について、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際のビデオデコーダ３０による使用のために、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成し得る。
【０１４２】
[0096]  イントラ予測ユニット４６は、上で説明されたように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。
【０１４３】
[0097]  たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析（rate-distortion analysis）を使用してレートひずみ値を計算し、テストされたモードの間で最も良好なレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに、符号化されたブロックを生成するために使用されるビットレート（bitrate）（すなわち、ビット数（a number of bits））を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を計算し得る。
【０１４４】
[0098]  ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に提供し得る。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックのための符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを、送信されるビットストリームに含め得る。
【０１４５】
[0099]  ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって、残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に類似する変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴに概念的に類似する他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。いずれの場合でも、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、ピクセル値領域からの残差情報を、周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４へ送り得る。量子化ユニット５４は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は次いで、量子化された変換係数を含む行列の走査を実行し得る。代わりに、エントロピー符号化ユニット５６が走査を実行し得る。
【０１４６】
[0100]  量子化の後に、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディング、Ｑコーディング（Q-coding）、適応型Ｑコーディング、算術コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。詳細には、いくつかの実施形態では、エントロピー符号化ユニット（entropy encoding unit）５６は、本明細書で説明されるような並列処理技法を使用することによる算術コーディングベースのコーディング技法に従って、ビデオデータ（たとえば、量子化変換係数）をコーディングするように構成され得る。たとえば、いくつかの実施形態では、エントロピー符号化ユニット５６は、本明細書で説明されるような擬似コードＡに基づいて算術コーディング技法を実装するように構成される。エントロピー符号化ユニット５６は、エントロピー符号化ユニット５６および対応するデコーダにおけるレジスタ値の整合されたトラッキングを保証するために、擬似コードＡなどにおけるいくつかの値または式を近似するためのいくつかの式を使用するように構成され得る。たとえば、エントロピー符号化ユニット５６は、式１、式８、式９、式１０、式１２、および式１３のうちの１つまたは複数を利用または実装するように構成され得る。
【０１４７】
[0101]  エントロピー符号化ユニット５６によるエントロピーコーディングに続いて、１つまたは複数の符号化シンボル（たとえば、劣勢シンボルおよび優勢シンボル）のストリングを備える符号化ビットストリームが、別のデバイス（たとえば、ビデオデコーダ３０）へ送信されてよく、または後で送信もしくは取出しができるようにアーカイブされてよい。
【０１４８】
[0102]  逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構築する。動き補償ユニット４４は、残差ブロックを参照ピクチャメモリ６４のフレームのうちの１つの予測ブロックに加えることによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに１つまたは複数の補間フィルタを適用し得る。加算器６２は、参照ピクチャメモリ６４に記憶するための再構築されたビデオブロックを生成するために、動き補償ユニット４４によって生成された動き補償予測ブロックに、再構築された残差ブロックを加える。再構築されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０１４９】
[0103]  図３は、本明細書で説明されるような並列処理技法を使用することによる算術コーディングベースのコーディング技法を利用および実装し得る、ビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、ビデオデータメモリ６８と、エントロピー復号ユニット（entropy decoding unit）７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照ピクチャメモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて、予測データを生成することができるが、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて、予測データを生成することができる。
【０１５０】
[0104]  復号プロセス中、ビデオデコーダ３０は、符号化ビデオスライスのビデオブロックと関連するシンタックス要素とを表す１つまたは複数の符号化シンボル（たとえば、劣勢シンボルおよび優勢シンボル）のストリングを備える符号化ビデオビットストリームを、ビデオエンコーダ２０から受信する。ビデオデータメモリ６８に記憶されるビデオデータは、たとえば、コンピュータ可読媒体から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線通信もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ６８は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶する、コーディング済みピクチャバッファ（ＣＰＢ：coded picture buffer）を形成し得る。参照ピクチャメモリ８２は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する、ＤＰＢと呼ばれることがある。ビデオデータメモリ６８および参照ピクチャメモリ８２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ６８および参照ピクチャメモリ８２は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ６８は、ビデオデコーダ３０の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【０１５１】
[0105]  ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。詳細には、いくつかの実施形態では、エントロピー復号ユニット（entropy decoding unit）７０は、本明細書で説明されるような並列処理技法を使用することによる算術コーディングベースのコーディング技法に従って、ビットストリームを復号するように構成され得る。たとえば、いくつかの実施形態では、エントロピー復号ユニット７０は、本明細書で説明されるような擬似コードＢに基づいて算術復号技法を実装するように構成される。エントロピー復号ユニット７０は、エントロピー復号ユニット７０および対応するエントロピー符号化ユニット５６におけるレジスタ値の整合したトラッキングを保証するために、擬似コードＢなどにおけるいくつかの値または式を近似するためのいくつかの式を使用するように構成され得る。たとえば、エントロピー復号ユニット７０は、式１、式８、式９、式１０、式１２、および式１３のうちの１つまたは複数を利用または実装するように構成され得る。さらに、エントロピー復号ユニット７０は、ビットストリームを復号するために、擬似コードＢなどに関する、本明細書で説明されるような並列処理技法を使用するように構成され得る。たとえば、エントロピー復号ユニット７０は、復号されるべき連続する優勢シンボルの個数をビットストリームに基づいて決定するために、複数の並列数値比較（たとえば、式２．Ｎおよび／または１１．ｎ）を実行するように構成され得る。したがって、エントロピー復号ユニット７０は、近似的にビットストリームのデータレートで、擬似コードＢのセクションＡに従ってシンボルを復号するように構成され得る。
【０１５２】
[0106]  追加または代替として、エントロピー復号ユニット７０は、本明細書で説明されるような擬似コードＢのセクションＢに従って、復号すべきシンボルを選択する（たとえば、復号のためにビットストリームから追加のシンボルを読み取る）ために並列ブロックを実装するように構成される。したがって、エントロピー復号ユニット７０は、近似的にビットストリームのデータレートで、擬似コードＢのセクションＢを実行するように構成され得る。さらに、エントロピー復号ユニット７０は、セクションＡおよびセクションＢの並列処理の反復を単一のクロックサイクルの中で実行するように構成され得る。
【０１５３】
[0107]  エントロピー復号ユニット７０は、動きベクトルと他のシンタックス要素とを動き補償ユニット７２に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【０１５４】
[0108]  ビデオスライスがイントラコーディングされた（Ｉ）スライスとしてコーディングされるとき、イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックの予測データを生成し得る。ビデオフレームが、インターコーディングされた（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックの予測ブロックを生成する。予測ブロックは、参照ピクチャリストの１つの中の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ８２に記憶された参照ピクチャに基づくデフォルトの構築技法を使用して、参照フレームリスト、リスト０およびリスト１を構築し得る。
【０１５５】
[0109]  動き補償ユニット７２は、動きベクトルと他のシンタックス要素とを構文解析することによって現在のビデオスライスのビデオブロックの予測情報を決定し、この予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラ予測またはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスのための参照ピクチャリストのうちの１つまたは複数に対する構築情報と、スライスの各々のインター符号化されたビデオブロックの動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【０１５６】
[0110]  動き補償ユニット７２は、補間フィルタに基づいて補間を実行することもできる。動き補償ユニット７２は、参照ブロックのサブ整数ピクセルの補間された値を計算するために、ビデオブロックの符号化の間にビデオエンコーダ２０によって使用された補間フィルタを使用することができる。この場合に、動き補償ユニット７２は、受け取られたシンタックス要素から、ビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用することができる。
【０１５７】
[0111]  逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された量子化された変換係数を逆量子化（inverse quantize）、すなわち逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に適用されるべき逆量子化の程度を決定するために、ビデオスライス中の各ビデオブロックに対してビデオデコーダ３０によって計算される量子化パラメータＱＰＹを使用することを含み得る。
【０１５８】
[0112]  逆変換ユニット７８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１５９】
[0113]  動き補償ユニット７２が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックの予測ブロックを生成した後に、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器８０は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために復号されたブロックをフィルタリングする、デブロッキングフィルタも適用され得る。他のループフィルタ（コーディングループの中、またはコーディングループの後のいずれかにおける）も、ピクセルの遷移を平滑化し、または場合によってはビデオ品質を改善するために使用され得る。所与のフレームまたはピクチャ内の復号されたビデオブロックは次いで、参照ピクチャメモリ８２内に記憶され、参照ピクチャメモリ８２は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ８２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上で後で提示するための、復号されたビデオを記憶する。
【０１６０】
[0114]  図４は、本明細書で説明されるような並列処理技法を使用することによる算術コーディングベースのコーディング技法を利用および実装し得る、デコーダ４００の一例を示すブロック図である。たとえば、デコーダ４００は、エントロピー復号ユニット７０の一例であり得る。
【０１６１】
[0115]  図示のように、デコーダ４００は、バッファ（buffer）４０５（または、他のタイプの適切なメモリ）を含む。図示のように、バッファ４０５は、先入れ先出し（ＦＩＦＯ）バッファである。バッファ４０５は、算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備える符号化データストリームのクロックサイクルごとに、Ｍ個のシンボル（たとえば、ビット）を受信するように構成され得る（たとえば、擬似コードＡに基づいて、またバッファ４０５はレジスタＴに相当し得る）。符号化シンボルのストリングは、１つまたは複数の復号シンボルの系列を表し得、１つまたは複数の復号シンボルの各々は、優勢シンボル（たとえば、０）および劣勢シンボル（たとえば、１）のうちの一方を備える。
【０１６２】
[0116]  デコーダ４００は、並列比較ユニット（parallel comparison unit）４１０と、平行シフトおよび補完ユニット（parallel shift and complement unit）４１５とをさらに含み得る。並列比較ユニット４１０は、擬似コードＢのセクションＡに従ってデータを復号するための１つもしくは複数の並列処理技法、または類似の並列処理技法を実装するように構成され得る。平行シフトおよび補完ユニット４１５は、本明細書で説明されるような擬似コードＢのセクションＢ、または類似の並列処理技法に従ってシンボルを復号するための、並列ブロックを実装するように構成され得る。
【０１６３】
[0117]  たとえば、並列比較ユニット４１０は、バッファ４０５からの符号化シンボル、ならびにレジスタからの変数および値（たとえば、擬似コードＢからの、説明されたように初期化され得るＬ、Ｕ、Ｃｕｍ＿ｃｏｕｎｔ（）、Ｃｏｕｎｔ＿０、Ｔｏｔａｌ＿Ｃｏｕｎｔなど）を含む入力を、入力として受信するように構成され得る。並列比較ユニット４１０は、（たとえば、式２．Ｎおよび／または１１．ｎなどにおける）複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの系列の中の連続する優勢シンボルの個数を決定するために、受信された入力を使用するように構成され得る。並列比較ユニット４１０は、複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの系列のシンボルのグループを出力するために符号化シンボルのうちの１つまたは複数を復号するように構成され得、シンボルのグループは、その個数の連続する優勢シンボルを含む。シンボルのグループはまた、式２．Ｎおよび式１１．ｎに関して説明されたように、その個数の連続する優勢シンボルに後続する１つの劣勢シンボルを含み得る。
【０１６４】
[0118]  並列比較ユニット４１０はまた、擬似コードＢのセクションＡのレジスタの中の値（たとえば、ＬおよびＵ）を更新するための他の計算を実行するように構成され得る。平行シフトおよび補完ユニット４１５は、本明細書で説明されるような擬似コードＢのセクションＢに従って、復号すべきシンボルを選択する（たとえば、復号のために符号化データストリームから追加のシンボルを読み取る）ための並列ブロックを実装するために、更新されたレジスタ値、およびバッファ４０５からの入力を、入力として受信するように構成され得る。並列比較ユニット４１０ならびに平行シフトおよび補完ユニット４１５は、両方が（並列比較（parallel comparison）ならびに並列ブロックシフト（parallel block shift）および補完（complement）を実行することを含む）単一の反復を単一のクロックサイクルの中で一緒に実行するように構成され得る。したがって、デコーダ４００は、本明細書で説明されるような並列処理技法を使用することによる算術コーディングベースのコーディング技法を使用して符号化されたデータを復号するように構成される。
【０１６５】
[0119]  図５は、圧縮データを復号するためのプロセス５００のフローチャートの図である。プロセス５００は、本明細書で説明されるデコーダ４００などの任意の好適なデコーダにおいて実装され得る。図示のように、ブロック５０５において、デコーダは、算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームの少なくとも一部分を、バッファの中に受信する。符号化シンボルのストリングは、１つまたは複数の復号シンボルの系列を表す。１つまたは複数の復号シンボルの各々は、優勢シンボルおよび劣勢シンボルのうちの一方を備える。
【０１６６】
[0120]  さらに、ブロック５１０において、デコーダは、符号化シンボルのうちの１つまたは複数に基づいて、（たとえば、式２．Ｎおよび／または１１．ｎなどにおける、また擬似コードＢのセクションＡに関して説明されたような）複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの系列の中の連続する優勢シンボルの個数を決定する。
【０１６７】
[0121]  引き続き、ブロック５１５において、デコーダは、複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの系列のシンボルのグループを復号する。シンボルのグループは、その個数の連続する優勢シンボルを備える。シンボルのグループはまた、式２．Ｎおよび式１１．ｎに関して説明されたように、その個数の連続する優勢シンボルに後続する１つの劣勢シンボルを含み得る。
【０１６８】
[0122]  さらに、ブロック５２０において、デコーダは、レジスタの中の値を更新するための他の計算を実行する（たとえば、擬似コードＢのセクションＡに関して説明されたように）。
【０１６９】
[0123]  ブロック５２５において、デコーダは、復号すべきもっと多くの任意の符号化シンボルがデータストリームの中にあるかどうかを決定する。ブロック５２５において、復号すべき追加の符号化シンボルがないと決定される場合、プロセスは終了する。ブロック５２５において、復号すべき追加の符号化シンボルがあると決定される場合、プロセスはブロック５３０に進む。
【０１７０】
[0124]  ブロック５３０において、デコーダは、レジスタの中の値を更新するとともに追加の符号化シンボルをデータストリームからバッファの中に読み取るために、並列処理（parallel processing）を使用する。たとえば、デコーダは、いくつかのレジスタ値のシフトおよび補完を実行し得、追加の符号化シンボルをデータストリームからバッファの中にどのように読み取るべきかを決定するために、いくつかの基準が満たされるかどうかをレジスタ値に基づいてチェックし得る（たとえば、擬似コードＢのセクションＢに関して説明されたように）。プロセス５００は、次いで、ブロック５１０に戻り得る。
【０１７１】
[0125]  上記で説明されたように、算術コーディング技法に基づいて復号のための並列処理技法を実装するデコーダに対して、擬似コードＢのセクションＡとセクションＢとを実装するための並列化の程度は、コスト、効率改善、および本技法を実装するために使用されるハードウェアのタイプに基づく設計選択である。たとえば、デコーダ４００において、バッファ４０５のサイズ、並列比較ユニット４１０が並行して行うように構成されている比較の数、平行シフトおよび補完ユニット４１５が並行して行うように構成されている並列ブロック反復の数に関して、選択が行われ得る。これらの選択は、データを復号するのに必要とされるクロックサイクル（clock cycle）の数に影響を及ぼし得る。
【０１７２】
[0126]  いくつかの実施形態では、並列比較ユニット４１０が並行して行うように構成されている比較の数は６に設定され、平行シフトおよび補完ユニット４１５が並行して行うように構成されている並列ブロック反復の数は７に設定され、並列比較ユニット４１０ならびに平行シフトおよび補完ユニット４１５は、単一のクロックサイクルの中で動作するように構成される。したがって、良好な復号レートを依然として達成しながら、バッファ４０５のサイズが低減され得る。さらに、入力シンボルレートは、クロックサイクル当り単一の入力シンボルであってよく、またはクロックサイクル当り２つの入力シンボルであってよい（たとえば、デュアルデータレート（ＤＤＲ）システムにおいて）。いくつかの実施形態では、並列比較ユニット４１０の複雑さを低減するために、並列比較ユニット４１０が並行して行うように構成されている比較の数は４に設定される。さらに、ハードウェアの複雑さおよびコスト対性能は、依然として良好な性能をもたらし得る。他の設計選択が行われてよいが、これらの特定の設計選択または類似の設計選択が、性能対複雑さに関していくつかの利点を与え得ることを、当業者は認識するだろう。
【０１７３】
[0127]  例に応じて、本明細書で説明された技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行されることがあり、追加され、統合され、または完全に除外され得る（たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて同時に実行され得る。
【０１７４】
[0128]  １つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベース処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１７５】
[0129]  限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【０１７６】
[0130]  命令は、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の同等の集積された論理回路もしくは個別の論理回路などの、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内で与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０１７７】
[0131]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられ得るか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１７８】
[0132]  様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内にある。
【図１】
2018536344.tif 000044
【図２】
2018536344.tif 000045
【図３】
2018536344.tif 000046
【図４】
2018536344.tif 000047
【図５】
2018536344.tif 000048
【手続補正書】
【提出日】平成30年7月9日(2018.7.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
圧縮データを復号するための方法であって、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信することと、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
少なくとも複数の数値比較を並行して実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数のカウントを決定することと、ここにおいて、前記複数の数値比較の各々は、しきい値と、前記符号化シンボルのうちの１つまたは複数に基づいて生成された個数との間で実行される、
前記複数の数値比較から決定された前記カウントに基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号することと、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、を備える、方法。
【請求項２】
１つまたは複数の復号シンボルの前記系列のシンボルの前記グループを前記復号することが、単一のクロックサイクルで完了する、請求項１に記載の方法。
【請求項３】
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、請求項１に記載の方法。
【請求項４】
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、請求項１に記載の方法。
【請求項５】
符号化シンボルの前記ストリングが、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つに基づいて符号化される、請求項１に記載の方法。
【請求項６】
符号化シンボルの前記ストリングが、乗算器ベースのコーディング技法に基づいて符号化される、請求項１に記載の方法。
【請求項７】
シンボルの前記復号グループが、ピクチャのシーケンスの少なくとも一部分を規定する１つまたは複数のシンタックス要素を示す、請求項１に記載の方法。
【請求項８】
圧縮データを復号するためのシステムであって、デコーダが、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信するように構成されたメモリと、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
少なくとも複数の数値比較を並行して実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数のカウントを決定し、ここにおいて、前記複数の数値比較の各々は、しきい値と、前記符号化シンボルのうちの１つまたは複数に基づいて生成された個数との間で実行される、
前記複数の数値比較から決定された前記カウントに基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号する、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、
ように構成されたプロセッサとを備える、システム。
【請求項９】
１つまたは複数の復号シンボルの前記系列のシンボルの前記グループを前記復号することが、単一のクロックサイクルで完了する、請求項８に記載のシステム。
【請求項１０】
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、請求項８に記載のシステム。
【請求項１１】
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、請求項８に記載のシステム。
【請求項１２】
符号化シンボルの前記ストリングが、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つに基づいて符号化される、請求項８に記載のシステム。
【請求項１３】
符号化シンボルの前記ストリングが、乗算器ベースのコーディング技法に基づいて符号化される、請求項８に記載のシステム。
【請求項１４】
シンボルの前記復号グループが、ピクチャのシーケンスの少なくとも一部分を規定する１つまたは複数のシンタックス要素を示す、請求項８に記載のシステム。
【請求項１５】
実行されると、データを復号するためのデバイスのプロセッサに、圧縮データを復号するための方法を実行させる命令を記憶した非一時的コンピュータ可読媒体であって、前記方法が、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信することと、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
少なくとも複数の数値比較を並行して実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数のカウントを決定することと、ここにおいて、前記複数の数値比較の各々は、しきい値と、前記符号化シンボルのうちの１つまたは複数に基づいて生成された個数との間で実行される、
前記複数の数値比較から決定された前記カウントに基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号することと、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、を備える、非一時的コンピュータ可読媒体。
【請求項１６】
１つまたは複数の復号シンボルの前記系列のシンボルの前記グループを前記復号することが、単一のクロックサイクルで完了する、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１７】
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１８】
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１９】
符号化シンボルの前記ストリングが、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つに基づいて符号化される、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項２０】
符号化シンボルの前記ストリングが、乗算器ベースのコーディング技法に基づいて符号化される、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項２１】
圧縮データを復号するためのシステムであって、デコーダが、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信するための手段と、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
少なくとも複数の数値比較を並行して実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数のカウントを決定するための手段と、ここにおいて、前記複数の数値比較の各々は、しきい値と、前記符号化シンボルのうちの１つまたは複数に基づいて生成された個数との間で実行される、
前記複数の数値比較から決定された前記カウントに基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号するための手段と、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、を備える、システム。
【請求項２２】
１つまたは複数の復号シンボルの前記系列のシンボルの前記グループを前記復号することが、単一のクロックサイクルで完了する、請求項２１に記載のシステム。
【請求項２３】
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、請求項２１に記載のシステム。
【請求項２４】
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、請求項２１に記載のシステム。
【請求項２５】
符号化シンボルの前記ストリングが、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つに基づいて符号化される、請求項２１に記載のシステム。
【請求項２６】
符号化シンボルの前記ストリングが、乗算器ベースのコーディング技法に基づいて符号化される、請求項２１に記載のシステム。
【請求項２７】
前記複数の数値比較を並行して前記実行することは、
前記符号化シンボルのうちの前記１つまたは複数に基づいて、前記個数を生成することと、
前記個数を複数のしきい値の各々に対して並行して比較することと、
を備え、前記複数のしきい値は、連続する優勢シンボルの個数の複数の候補カウントに対応する、請求項１に記載の方法。
【請求項２８】
１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの前記個数の前記カウントを前記決定することは、
前記複数の数値比較のうちの１つまたは複数の１つまたは複数の比較結果に基づいて、および前記複数のしきい値から、前記符号化シンボルのうちの前記１つまたは複数に基づいて生成された前記個数に少なくとも等しい第１のしきい値を決定することと、
前記複数の候補カウントから、前記第１のしきい値に対応する第１の候補カウントを決定することと、
前記第１の候補カウントに基づいて、前記カウントを決定することと、
を備える、請求項２７に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１７８
【補正方法】変更
【補正の内容】
【０１７８】
[0132]  様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
圧縮データを復号するための方法であって、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信することと、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
前記符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数を決定することと、
前記複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号することと、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、を備える、方法。
［Ｃ２］
前記個数の連続する優勢シンボルを前記復号することが、単一のクロックサイクルの中で生じる、Ｃ１に記載の方法。
［Ｃ３］
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、Ｃ１に記載の方法。
［Ｃ４］
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、Ｃ１に記載の方法。
［Ｃ５］
算術コーディングベースのコーディング技法が、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つを備える、Ｃ１に記載の方法。
［Ｃ６］
前記算術コーディングベースのコーディング技法が、乗算器ベースのコーディング技法である、Ｃ１に記載の方法。
［Ｃ７］
シンボルの前記復号グループが、ピクチャのシーケンスの少なくとも一部分を規定する１つまたは複数のシンタックス要素を示す、Ｃ１に記載の方法。
［Ｃ８］
圧縮データを復号するためのシステムであって、デコーダが、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信するように構成されたメモリと、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
前記符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数を決定し、
前記複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号する、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、
ように構成されたプロセッサとを備える、システム。
［Ｃ９］
前記個数の連続する優勢シンボルを前記復号することが、単一のクロックサイクルの中で生じる、Ｃ８に記載のシステム。
［Ｃ１０］
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、Ｃ８に記載のシステム。
［Ｃ１１］
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、Ｃ８に記載のシステム。
［Ｃ１２］
算術コーディングベースのコーディング技法が、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つを備える、Ｃ８に記載のシステム。
［Ｃ１３］
前記算術コーディングベースのコーディング技法が、乗算器ベースのコーディング技法である、Ｃ８に記載のシステム。
［Ｃ１４］
シンボルの前記復号グループが、ピクチャのシーケンスの少なくとも一部分を規定する１つまたは複数のシンタックス要素を示す、Ｃ８に記載のシステム。
［Ｃ１５］
実行されると、データを復号するためのデバイスのプロセッサに、圧縮データを復号するための方法を実行させる命令を記憶した非一時的コンピュータ可読媒体であって、前記方法が、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信することと、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
前記符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数を決定することと、
前記複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号することと、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、を備える、非一時的コンピュータ可読媒体。
［Ｃ１６］
前記個数の連続する優勢シンボルを前記復号することが、単一のクロックサイクルの中で生じる、Ｃ１５に記載の非一時的コンピュータ可読媒体。
［Ｃ１７］
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、Ｃ１５に記載の非一時的コンピュータ可読媒体。
［Ｃ１８］
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、Ｃ１５に記載の非一時的コンピュータ可読媒体。
［Ｃ１９］
算術コーディングベースのコーディング技法が、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つを備える、Ｃ１５に記載の非一時的コンピュータ可読媒体。
［Ｃ２０］
前記算術コーディングベースのコーディング技法が、乗算器ベースのコーディング技法である、Ｃ１５に記載の非一時的コンピュータ可読媒体。
［Ｃ２１］
圧縮データを復号するためのシステムであって、デコーダが、
算術コーディングベースのコーディング技法を使用して符号化された符号化シンボルのストリングを備えるデータストリームを受信するための手段と、ここにおいて、符号化シンボルの前記ストリングが、１つまたは複数の復号シンボルの系列を表し、ここにおいて、前記１つまたは複数の復号シンボルの各々が、優勢シンボルおよび劣勢シンボルのうちの一方を備える、
前記符号化シンボルのうちの１つまたは複数に基づいて複数の並列数値比較を実行することによって、１つまたは複数の復号シンボルの前記系列の中の連続する優勢シンボルの個数を決定するための手段と、
前記複数の並列数値比較に基づいて、１つまたは複数の復号シンボルの前記系列のシンボルのグループを復号するための手段と、ここにおいて、シンボルの前記グループが、前記個数の連続する優勢シンボルを備える、を備える、システム。
［Ｃ２２］
前記個数の連続する優勢シンボルを前記復号することが、単一のクロックサイクルの中で生じる、Ｃ２１に記載のシステム。
［Ｃ２３］
シンボルの前記グループが、さらに前記個数の連続する優勢シンボルに後続する１つの劣勢シンボルからなる、Ｃ２１に記載のシステム。
［Ｃ２４］
符号化シンボルの前記ストリングが、ビットスタッフィング技法を使用することなく符号化される、Ｃ２１に記載のシステム。
［Ｃ２５］
算術コーディングベースのコーディング技法が、以下のもの、すなわち、算術コーディングおよびＱコーディングのうちの１つを備える、Ｃ２１に記載のシステム。
［Ｃ２６］
前記算術コーディングベースのコーディング技法が、乗算器ベースのコーディング技法である、Ｃ２１に記載のシステム。
【国際調査報告】
2018536344.tif 000049
2018536344.tif 000050
2018536344.tif 000051