(57)【要約】  可変長復号を、１クロックパルスあたり１構文要素より多くすることにより、コンテクスト適応可変長ビットストリーム復号の性能を改善し、消費電力を削減できる。
2015515802.tif 000002
【特許請求の範囲】
【請求項１】
１クロックパルスあたり１より多い構文要素を用いるコンテクスト適応可変長復号をインプリメントするステップを有する方法。
【請求項２】
複数のサイクルのそれぞれで、構文要素を支障なくデコードするステップを含む、
請求項１に記載の方法。
【請求項３】
ＦＩＦＯ（first  in  first  out）バッファを用いて、コンテクスト適応可変長復号する構文要素をバッファするステップを含む、請求項１に記載の方法。
【請求項４】
複数のデコードシンボルデコードを結合するステップを含む、
請求項１に記載の方法。
【請求項５】
ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断するステップを含む、
請求項１に記載の方法。
【請求項６】
そうであれば、２つのｒｕｎ＿ｂｅｆｏｒｅシンボルを同時にデコードするステップを含む、請求項５に記載の方法。
【請求項７】
シーケンスを実行する命令を記憶した一以上の非一時的コンピュータ読み取り可能媒体であって、前記シーケンスは、
１クロックパルスあたり１より多い構文要素を用いるコンテクスト適応可変長復号をインプリメントするステップを有する媒体。
【請求項８】
前記シーケンスは、複数のサイクルのそれぞれで、構文要素を支障なくデコードするステップを含む、請求項７に記載の媒体。
【請求項９】
前記シーケンスは、ＦＩＦＯ（first  in  first  out）バッファを用いて、コンテクスト適応可変長復号する構文要素をバッファするステップを含む、
請求項７に記載の媒体。
【請求項１０】
前記シーケンスは、複数のデコードシンボルデコードを結合するステップを含む、
請求項７に記載の媒体。
【請求項１１】
前記シーケンスは、ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断するステップを含む、
請求項７に記載の媒体。
【請求項１２】
前記シーケンスは、そうであれば、２つのｒｕｎ＿ｂｅｆｏｒｅシンボルを同時にデコードするステップを含む、請求項１１に記載の媒体。
【請求項１３】
コンテクスト適応可変長デコーダの装置であって、
１クロックあたり１より多い構文要素を用いてデコードする可変長デコーダと、
前記デコーダに結合した動き予測器と、
前記デコーダに結合した係数機能ブロックとを有する、装置。
【請求項１４】
前記デコーダは、複数のサイクルのそれぞれで、構文要素を支障なくデコードする、
請求項１３に記載の装置。
【請求項１５】
前記デコーダは、ＦＩＦＯ（first  in  first  out）バッファを用いて、コンテクスト適応可変長復号する構文要素をバッファするステップを含む、
請求項１３に記載の装置。
【請求項１６】
前記デコーダは、複数のデコードシンボルデコードを結合する、
請求項１３に記載の装置。
【請求項１７】
前記デコーダは、ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断する、
請求項１３に記載の装置。
【請求項１８】
前記デコーダは、そうであれば、２つのｒｕｎ＿ｂｅｆｏｒｅシンボルを同時にデコードする、請求項１７に記載の装置。
【請求項１９】
プロセッサと、
前記プロセッサに結合したコーデックとを有し、前記コーデックは、ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断し、そうであれば、２つのシンボルを同時にデコードするコンテンツ適応可変長デコーダを含む、
システム。
【請求項２０】
前記デコーダは、複数のサイクルのそれぞれで、構文要素を支障なくデコードする、
請求項１９に記載のシステム。
【請求項２１】
コンテクスト適応可変長復号する構文要素をバッファするＦＩＦＯバッファを含む、
請求項１９に記載のシステム。
【請求項２２】
前記デコーダは、複数のデコードシンボルデコードを結合する、
請求項１９に記載のシステム。
【請求項２３】
前記デコーダは、ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断する、
請求項１９に記載のシステム。
【請求項２４】
そうであれば、前記デコーダは、２つのｒｕｎ＿ｂｅｆｏｒｅシンボルを同時にデコードする、請求項２３に記載のシステム。
【請求項２５】
オペレーティングシステムを含む、請求項１９に記載のシステム。
【請求項２６】
バッテリを含む、請求項１９に記載のシステム。
【請求項２７】
ファームウェアと、前記ファームウェアをアップデートするモジュールとを含む、
請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
これは圧縮と解凍の分野に関し、より具体的には、ビデオコンテンツ適応可変長符号化（ＣＡＶＬＣ）に関する。
【背景技術】
【０００２】
ビデオ符号化は、デジタルテレビジョン、ビデオ会議、モバイルビデオ及びビデオストリーミングを含む幅広いマルチメディアアプリケーションで用いられている。ビデオ符号化は多くの国際標準とともに発展してきた。これらの国際標準は可変長符号（ＶＬＣ）の利用を含む。例えば、Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６３＋としてＩＴＵ−Ｔにより公開された国際標準は、可変長符号（ＶＬＣ）符号化を含む。
【０００３】
Ｈ．２６４／ＭＰＥＧ−４  Ｐａｒｔ１０の現時点のドラフトは、ＶＬＣ符号が用いられる復号（ｄｅｃｏｄｉｎｇ）プロセスを含む。非特許文献１を参照されたい。以前のビデオ符号化標準と同様、Ｈ．２６４は、ビデオをいかに圧縮（「符号化」）するか指定せず、そのかわり、符号化ビデオデータを含むビットストリームの構文と、データの復号方法とを指定している。
【０００４】
［関連出願への相互参照］
本願は、２０１２年３月２９日出願の仮出願第６１／６１７，３１８号の優先権を主張する非仮出願である。該仮出願はここに明示的に参照援用する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「Draft  Errata  List  with  Revision-  Marked  Corrections  for  H.264/AVC」(the  approved  Joint  Video  Team  (JVT)  output  document  from  the  Sept.  2-5,  2003  meeting,  JVT-1050.doc)
【発明の概要】
【０００６】
Ｈ．２６４ビデオエンコーダを用いるエントロピー符号化において、量子化された変換係数と（動きベクトル、予測モード選択、及びヘッダを含む）サイド情報が、可変長符号または算術符号化を用いてエントロピー符号化される。可変長符号化が用いられるとき、量子化された変換係数がコンテクスト適応可変長符号化（ＣＡＶＬＣ）を用いて符号化され、他の構文要素が「ユニバーサル」可変長符号を用いて符号化される。
【０００７】
ＣＡＶＬＣは、最初に係数をジグザグに１次元配列としてスキャンすることにより、係数の統計的相関を利用する。各非ゼロ係数が、前の非ゼロ係数までのゼロ係数の数をカウントする可変ラン（variable  run）と関連づけられる。
【０００８】
符号付き１ビットは最頻出係数であることが多い。これらは、カウントされ、一組の符号テーブルから一規則を用いて、非ゼロ係数の総数で符号化される。どのテーブルを使うかの決定は、近傍ブロック中の非ゼロ係数の数に基づいて行われる。また、１ビットの符号がデコーダに示されねばならない。残った係数の値が適応ライス符号（adaptive  Rice  codes）を用いて符号化される。このように、複数の符号テーブルが用いられ、テーブルの選択は前に符号化された係数の値によって行われる。それゆえ、ランの合計が計算され、そのブロック中の非ゼロ係数の数に応じて、１５通りのテーブルのうちの１つで符号化される。この点において、唯一残っている演算は、残っているランの合計に応じて、７通りの符号テーブルのうちの１つで個々のラン値を符号化することである。ＣＡＶＬＣにより用いられるすべての符号テーブルは経験的に作られる。
【０００９】
要するに、変換係数ブロックのＣＡＶＬＣ符号化は次のように進む。第１に、非ゼロ係数の数（ｎｕｍＣｏｅｆ）とそれに続く１（Ｔ１ｓ）が符号化される。第２に、各Ｔ１の符号が符号化される。次に、残りの非ゼロ係数のレベルが符号化される。次に、最後の係数の前に現れるゼロの総数が符号化される。最後に、ゼロのランがそれぞれ符号化される。
【図面の簡単な説明】
【００１０】
一部の実施形態を以下の図面を参照して説明する。
【図１】一実施形態によるデコーダを示す図である。
【図２】一実施形態によるフロントエンド復号の詳細を示す図である。
【図３】一実施形態によるシステムを示す図である。
【図４】一実施形態を示す正面図である。
【図５】一実施形態を示すフローチャートである。
【発明を実施するための形態】
【００１１】
アドバンストビデオコーディング（ＡＶＣ）Ｈ．２６４コンテキスト適応可変長復号（ＣＡＶＬＤ）において、ビデオビットストリームパーシングは複雑なプロセスである。これは、前の構文要素（ＳＥ）の復号に応じて次の構文要素を復号する順次プロセスである。構文要素の復号が１クロックより長くかかる場合、これにより復号のスループットが制限される。
【００１２】
可変長復号（ＶＬＤ）を１クロックパルスあたり１構文要素より速くすることにより、ＣＡＶＬＣビットストリーム復号の性能が改善され、パワーが低減される。
【００１３】
復号エンジン（decode  engine）は、動き予測と係数生成ブロックから不要なフィードバックパスを減らすまたは無くすように設計でき、ＶＬＤは構文要素を、毎サイクル支障なく復号し続けられる。
【００１４】
図１を参照して、ＣＡＶＬＣフロントエンドデコーダ１０は、３つのブロック１２，１４，及び１６に分かれている。ＶＬＤ１２は、ビットストリーム４０を読み込み、シンボルを復号し、構文要素４２を送り出す。各ＶＬＤブロック４１は、ビットストリームを可能性のあるすべてのシンボルに変換するＶＬＤテーブル２０と指数ゴロム（exponential  golomb（Expglomb））２２をすべて有する。ＣＡＶＬＣ構文要素（ＳＥ）復号状態機械１８は、ＣＡＶＬＣ復号シーケンスを理解して、ＳＥ  ＶＬＤテーブル２０から正しいシンボルを選択し、それを構文要素として、動き予測器（ＭＰＲ）１４と係数（Ｃｏｅｆ）機能ユニットブロック（ｆｕｂｓ）１６に送る。ＭＰＲとＣｏｅｆ機能ユニットブロックは、ＶＬＤ機能ユニットブロックから構文要素を受け取り、それを入力フィーストイン・ファーストアウトレジスタ（ＦＩＦＯ）２４または２６に格納する。入力ＦＩＦＯ２４または２６により、ＶＬＤは、ＭＲＰとＣｏｅｆ機能ユニットブロック１６が構文要素の処理に余分な時間がかかっても、構文要素４２の生成を続けられる。
【００１５】
ＭＰＲ機能ユニットブロック１４の場合、動きベクトル予測器機能ユニットブロック２８は動きベクトル予測を処理する。これはビットストリーム復号とは独立である。動きベクトルＳＥ逆二値化機能ユニットブロック３０は、ＶＬＤ構文要素を用いて動きベクトル差分を生成する。動きベクトル予測子と動きベクトル差分とを結合することにより、動きベクトル生成機能ユニットブロック３２により動きベクトル３３が構成される。
【００１６】
Ｃｏｅｆ機能ユニットブロック１６について、係数符号化ブロックパターン（ＣＢＰ）及びブロック制御３７が、係数がマクロブロックで符号化されているか、係数ブロックがどうアセンブルされているか（ｌｕｍａブロックサイズ／フレーム・フィールド符号化など）判断する。係数レベルＳＥ逆二値化３６が、構文要素を実際の符号付き係数値に変換する。ブロック制御、計数値、及びインバーススキャンを組み合わせることにより、実際の係数４４と係数位置４６を、インバーススキャン及び係数生成３８により決定して、次の段階に送ることができる。
【００１７】
図２は、本発明の一実施形態による、フロントエンド可変長復号のアーキテクチャ５０と、デコーダ１２（図１）に関するフィードバックパスの削減／除去とを説明している。入力ビットストリームデータと構文要素復号は、少なくとも１クロック当たり１ＳＥの復号の実現の役に立つ。
【００１８】
一実施形態では、３２ビットバレルシフタ５４が、必要に応じて、入力ビデオストリームからのビットを、それに続く段階に配信する。例えば、バレルシフタ５４は、各ブロック５６，５８，６０，６４及び６６に、適切な数のビットを供給できる。フィードバック入力ラベルされたシフト長［５：０］からそれらのブロックにシフトすべき長さを決定できる。
【００１９】
指数ゴロム（exponential  golomb）５６は、あらゆる点において従来技術であり、マルチプレクサ７０に信号長［５：０］を出力する。先行ゼロ予測５８が、先行するゼロの数を決定し、指数ゴロムユニット５６とレベルテーブル６０に入力を供給する。幾つかの実施形態では、レベルテーブルは、あらゆる点で従来技術である。値係数トークン／後続の１  ６４によりＴ１値が生成される。Ｔｏｔａｌ＿ｚｅｒｏｓ  ＡＮＤ  ｒｕｎ＿ｂｅｆｏｒｅがブロック６６で決められる。
【００２０】
このように、ＬＥＮＧＴＨ値がマルチプレクサ７０に行き、マルチプレクサ７０がバレルシフタ５４にフィードバックする。ｄａｔａ＿ｖａｌｕｅがマルチプレクサ７２に行き、マルチプレクサ７２が出力ｄａｔａ＿ｖａｌｕｅを供給する。ＣＡＶＬＤマシンステートがブロック５２がブロック５２により生成される。不要なフィードバックストリームを除去した結果として、シフタ５４から、マルチプレクサ７２からの出力構文要素まで、１クロックパスある。
【００２１】
後で説明するように、複数の復号シンボル復号（decode  symbol  decodes）を結合することにより、ＶＬＤは、１クロックパルスごとに１構文要素を超える復号をできる。ｒｕｎ＿ｂｅｆｏｒｅ構文要素とＺｅｒｏｓＬｅｆｔテーブルは再構成され、２つのｒｕｎ＿ｂｅｆｏｒｅ構文要素が１クロックでデコードされるようになる。
【００２２】
下記したのは、係数デコード用の従来のｒｕｎ＿ｂｅｆｏｒｅテーブルである。このテーブルを用いて、組み込まれたゼロの位置を探す。これを用いて、最後の非ゼロ係数と最初の係数との間のゼロの位置に対するコードを探す。
【００２３】
【表１】
2015515802.tif 000003
最も上の行（ＺｅｒｏＬｅｆｔ）は、現在の係数ブロックにのこっているゼロの数を示し、左の列（ｒｕｎ＿ｂｅｆｏｒｅ）は、現在の係数と次の係数との間のゼロの数を示す。（例えば、６つのゼロが残っており、現在の係数と次の係数との間の２つのゼロがある場合、次の係数の後にはゼロが４つだけある）。
【００２４】
このテーブルを再構成すれば、ＶＬＤエンジンは、ＺｅｒｏｓＬｅｆｔが６より少ない時、同時に２つの「ｒｕｎ＿ｂｅｆｏｒｅ」をデコードできる。
【００２５】
【表２】
2015515802.tif 000004
次のＺｅｒｏｓＬｅｆｔは現在のＺｅｒｏｓＬｅｆｔ−ｒｕｎ＿ｂｅｆｏｒｅであるから、２つのＺｅｒｏｓＬｅｆｔのデコーディングを１クロックにすることが可能である。
【００２６】
シーケンス８０を図５に示したが、これは一実施形態によるものであって、ソフトウェア、ファームウェア、及び／またはハードウェアで実装できる。ソフトウェアとファームウェアの実施形態では、磁気、光、または半導体ストレージなどの位置以上の非一時的コンピュータ読み取り可能記憶媒体に格納されたコンピュータ実行命令を用いて実装できる。このコンピュータ読み取り可能媒体は、幾つかの実施形態では、デコーダ１０の一部であってもよい。これはプロセッサベースのデバイスであってもよい。
【００２７】
このシーケンスは、初めに、残っているゼロがＸ個より少ないか判断する（ダイヤモンド８２）。一実施形態では、Ｘは６であるが、他の値を使ってもよい。その場合、２つのｒｕｎ＿ｂｅｆｏｒｅシンボルが同時にデコードされる（ブロック８４）。
【００２８】
図３はシステム３００の一実施形態を示す。実施形態では、システム３００はメディアシステムであるが、これに限定されない。デコーダ１０（図１）はコーデック３９４の一部であり、プロセッサ３１０に結合している。例えば、システム３００は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、セルラー電話、セルラー電話・ＰＤＡのコンビネーション、テレビジョン、スマートデバイス（例えば、スマートホン、スマートタブレットまたはスマートテレビジョン）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイスなどに組み込み得る。
【００２９】
実施形態では、システム３００は、ディスプレイ３２０に結合したプラットフォーム３０２を有する。プラットフォーム３０２は、コンテンツサービスデバイス３３０やコンテンツ配信デバイス３４０などのコンテンツデバイス、その他の同様なコンテンツ源からコンテンツを受け取る。一以上のナビゲーション機能を有するナビゲーションコントローラ３５０を用いて、例えばプラットフォーム３０２及び／またはディスプレイ３２０とインターラクトしてもよい。これらの各コンポーネントを以下により詳しく説明する。
【００３０】
実施形態では、プラットフォーム３０２は、チップセット３０５、プロセッサ３１０、メモリ３１２、ストレージ３１４、グラフィックスサブシステム３１５、アプリケーション３１６及び／または無線通信３１８の任意の組み合わせを有する。チップセット３０５は、プロセッサ３１０、メモリ３１２、ストレージ３１４、グラフィックスサブシステム３１５、アプリケーション３１６及び／または無線通信３１８間の相互通信を提供する。例えば、チップセット３０５は、ストレージ３１４との相互通信を提供できるストレージアダプタ（図示せず）を含む。
【００３１】
プロセッサ３１０は、複数命令セットコンピュータ（ＣＩＳＣ）プロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、ｘ８６命令セット互換プロセッサ、マルチコア、またはその他の任意のマイクロプロセッサまたは中央処理装置（ＣＰＵ）として実装できる。実施形態では、プロセッサ３１０は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサなどを含む。
【００３２】
メモリ３１２は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）などの揮発性メモリとして実装できる。
【００３３】
ストレージ３１４は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部ストレージデバイス、付加ストレージデバイス、フラッシュメモリ、バッテリーバックアップＳＤＲＡＭ（シンクロナスＤＲＡＭ）、及び／またはネットワークアクセス可能ストレージデバイスなどの不揮発性ストレージデバイスとして実装することもできる。実施形態では、ストレージ３１４は、例えば複数のハードドライブが含まれている場合、貴重なデジタルメディアに対する保護を強化してストレージ性能を向上する技術を有していてもよい。
【００３４】
グラフィックスサブシステム３１５は、表示する静止画やビデオなどの画像の処理を行う。グラフィックスサブシステム３１５は、例えば、グラフィックス処理装置（ＧＰＵ）やビジュアル処理装置（ＶＰＵ）である。アナログまたはデジタルのインタフェースを用いて、グラフィックスサブシステム３１５とディスプレイ３２０とを通信可能に結合する。例えば、このインタフェースは、ＨＤＭＩ（High  Definition  Multimedia  Interface）、ＤｉｓｐｌａｙＰｏｒｔ、無線ＨＤＭＩ、及び／またはＨＤ準拠技術である。グラフィックスサブシステム３１５は、プロセッサ３１０またはチップセット３０５に集積できる。グラフィックスサブシステム３１５は、チップセット３０５に通信可能に結合したスタンドアロンカードであり得る。
【００３５】
ここに説明するグラフィックス及び／またはビデオ処理手法は、様々なハードウェアアーキテクチャで実装できる。例えば、グラフィックス及び／またはビデオ機能はチップセット内に組み込まれる。あるいは、ディスクリートのグラフィックス及び／またはビデオプロセッサを用いても良い。さらに他の一実施形態として、グラフィックス機能及び／またはビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより実装できる。さらに別の一実施形態では、これらの機能はコンシューマエレクトロニクスデバイスに実装できる。
【００３６】
無線通信３１８は、好適な様々な無線通信手法を用いて信号を送受信できる一以上の無線機を含む。かかる手法は、一以上の無線ネットワークによる通信を含む。無線ネットワークの例には、無線ローカルエリアネットワーク、（ＷＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、無線メトロポリタンエリアネットワーク（ＷＭＡ）、セルラーネットワーク、および衛星ネットワークが含まれる（これらに限定されない）。かかるネットワークでの通信において、無線機３１８は、一以上の適用可能標準の任意のバージョンにより動作する。
【００３７】
実施携帯では、ディスプレイ３２０は、任意のテレビジョンタイプのモニターまたはディスプレイである。ディスプレイ３２０は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビジョン類似デバイス、及び／またはテレビジョンを含む。ディスプレイ３２０はデジタルでもアナログでもよい。実施形態では、ディスプレイ３２０はホログラフディスプレイであってもよい。また、ディスプレイ３２０は、可視的な投影を受ける透明な表面であってもよい。かかる投影は、様々な形式の情報、画像、及び／またはオブジェクトを担う。例えば、かかる投影はモバイル拡張現実（ＭＡＲ）アプリケーションの可視的なオーバーレイであってもよい。プラットフォーム３０２は、一以上のソフトウェアアプリケーション３１６の制御下、ディスプレイ３２０にユーザインタフェース３２２を表示する。
【００３８】
実施形態では、コンテンツサービスデバイス３３０は、国内サービス、国際的サービス及び／または独立なサービスによりホスティングされ、インターネットなどを介してプラットフォーム３０２にアクセス可能である。コンテンツサービスデバイス３３０は、プラットフォーム３０２及び／またはディスプレイ３２０に結合されている。プラットフォーム３０２及び／またはコンテンツサービスデバイス３３０は、ネットワーク３６０に結合され、ネットワーク３６０との間でメディア情報を通信（例えば、送受信）できる。コンテンツ配信デバイス３４０もプラットフォーム３０２及び／またはディスプレイ３２０に結合されている。
【００３９】
実施形態では、コンテンツサービスデバイス３３０は、ケーブルテレビジョンボックス、パーソナルコンピュータ、ネットワーク、電話、デジタル情報及び／またはコンテンツを配信できるインターネット機能付きデバイスまたは機器、その他の、コンテンツプロバイダとプラットフォーム３０２及び／またはディスプレイ３２０との間でネットワーク３６０を介してまたは直接的にコンテンツを一方向または双方向で通信できる同様のデバイスを含む。言うまでもなく、コンテンツは、システム３００のコンポーネントのいずれか１つとの間で、及びネットワーク３６０を介してコンテンツプロバイダとの間で、一方向及び双方向で通信できる。コンテンツの例には、ビデオ、音楽、医療及びゲーミング情報などが含まれる。
【００４０】
コンテンツサービスデバイス３３０は、メディア情報、デジタル情報、及び／またはその他のコンテンツを含むケーブルテレビジョンプログラミングなどのコンテンツを受信する。コンテンツプロバイダの例には、任意のケーブルテレビジョンまたは衛星テレビジョンまたはラジオまたはインターネットコンテンツプロバイダが含まれる。例として挙げたものは本発明の実施形態を限定するものではない。
【００４１】
実施形態では、プラットフォーム３０２は、一以上のナビゲーション機能を有するナビゲーションコントローラ３５０からの制御信号を受け取る。コントローラ３５０のナビゲーション機能を用いて、例えばユーザインタフェース３２２とインターラクトできる。実施形態では、ナビゲーションコントローラ３５０は、ユーザがコンピュータに空間データ（例えば、連続的かつ多次元のもの）を入力できるコンピュータハードウェアコンポーネント（具体的にはヒューマンインタフェースデバイス）であるポインティングデバイスであり得る。グラフィカルユーザインタフェース（ＧＵＩ）、テレビジョン、及びモニターなどの多くのシステムにより、ユーザは、物理的ジェスチャを用いてコンピュータまたはテレビジョンにデータを提供することができる。
【００４２】
コントローラ３５０のナビゲーション機能の動きは、ポインタ、カーソル、フォーカスリング、またはディスプレイ上に表示されたその他の仮想的インジケータの動きにより、ディスプレイ（例えば、ディスプレイ３２０）上に反映される。例えば、ソフトウェアアプリケーション３１６の制御下、ナビゲーションコントローラ３５０上に配置されたナビゲーション機能を、例えば、ユーザインタフェース３２２上に表示された仮想的ナビゲーション機能にマッピングしてもよい。実施形態では、コントローラ３５０は、プラットフォーム３０２及び／またはディスプレイ３２０に集積されて、別のコンポーネントでなくてもよい。しかし、実施形態は、ここに図示または説明した要素や内容には限定されない。
【００４３】
実施形態では、ドライバ（図示せず）は、例えば、イネーブルされていれば、初期ブートアップ後に、ボタンを押せば、ユーザがテレビジョンなどのプラットフォーム３０２を瞬時にオン・オフできる機能を有していてもよい。プログラムロジックにより、プラットフォーム３０２は、「オフ」になっている時に、メディアアダプタまたはその他のコンテンツサービスデバイス３３０またはコンテンツ配信デバイス３４０にコンテンツをストリーミングできる。また、チップセット３０５は、例えば、５．１サラウンドサウンドオーディオ及び／またはハイデフィニション７．１サラウンドサウンドオーディオをサポートするハードウェア及び／またはソフトウェアを有する。ドライバは、集積グラフィックスプラットフォーム用のグラフィックスドライバを含み得る。実施形態では、グラフィックスドライバは、ＰＣＩ（peripheral  component  interconnect）エクスプレスグラフィックスカードを有してもよい。
【００４４】
様々な実施形態において、システム３００に示したどのコンポーネントも集積することができる。例えば、プラットフォーム３０２とコンテンツサービスデバイス３３０を集積でき、またはプラットフォーム３０２とコンテンツ配信デバイス３４０を集積でき、またはプラットフォーム３０２とコンテンツサービスデバイス３３０とコンテンツ配信デバイス３４０を集積できる。様々な実施形態において、プラットフォーム３０２とディスプレイ３２０も一体化できる。例えば、ディスプレイ３２０とコンテンツサービスデバイス３３０してもよいし、またはディスプレイ３２０とコンテンツ配信デバイス３４０を集積してもよい。これらの例は本発明を限定するものではない。
【００４５】
実施形態によっては、システム３００は無線システム、有線システム、またはこれらの組み合わせとして実装してもよい。無線システムとして実装したとき、システム３００は、一以上のアンテナ、送信器、受信器、送受信器、増幅器、フィルタ、制御ロジックなど、無線共有媒体により通信するのに適したコンポーネントとインタフェースを含み得る。無線共有媒体の一例には、ＲＦスペクトルなど無線スペクトルの一部が含まれる。有線システムとして実装されたとき、システム３００は、入出力（Ｉ／Ｏ）アダプタ、そのＩ／Ｏアダプタを対応有線通信媒体と接続する物理的コネクタ、ネットワークインタフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなどの有線通信媒体により通信するのに適したコンポーネントとインタフェースを含み得る。有線通信メディアの例としては、ワイヤ、ケーブル、金属リード、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック（switch  fabric）、半導体材料、ツイストペア線、同軸ケーブル、ファイバオプティクスなどがある。
【００４６】
プラットフォーム３０２は、情報を伝送する一以上の論理的または物理的なチャンネルを確立できる。この情報には、媒体情報とコントロール情報が含まれ得る。媒体情報はユーザに向けたコンテンツを表す任意のデータをいう。コンテンツ例には、例えば、音声会話、テレビ会議、ストリーミングビデオ、電子メールメッセージ、ボイスメールメッセージ、英数字記号、グラフィックス、画像、ビデオ、テキストなどが含まれ得る。音声会話からのデータは、例えば、音声情報、静音期間、背景雑音、コンフォート雑音、音程などである。制御情報は、自動化されたシステム向けのコマンド、命令、制御ワードを表す任意のデータを指す。例えば、制御情報を用いて、媒体情報をシステムを通してルーティングすることも、所定の方法で媒体情報を処理するようにノードに命令することもできる。しかし、本実施形態は、図４に示しまたは説明した要素や内容には限定されない。
【００４７】
上記の通り、システム３００は、可変な物理的スタイルやフォームファクタで実施することができる。図４は、システム３００を実施できる小型フォームファクタデバイス４００の実施形態を示す。実施形態において、例えば、デバイス４００は無線機能を有するモバイルコンピューティングデバイスとして実装できる。モバイルコンピューティングデバイスは、処理システムと、一以上のバッテリなどのモバイル電源とを有する任意のデバイスをいう。
【００４８】
上記の通り、モバイルコンピューティングデバイスの例には、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、セルラー電話、セルラー電話・ＰＤＡのコンビネーション、テレビジョン、スマートデバイス（例えば、スマートホン、スマートタブレットまたはスマートテレビジョン）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイスなどを含み得る。
【００４９】
モバイルコンピューティングデバイスの例には、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、靴コンピュータ、衣服コンピュータ、その他のウェアラブルコンピュータなど、人が装着するように構成されたコンピュータを含み得る。実施形態において、例えば、モバイルコンピューティングデバイスは、音声通信及び／またはデータ通信だけでなく、コンピュータアプリケーションを実行できるスマートホンとして実装することもできる。いくつかの実施形態を例としてスマートホンとして実装したモバイルコンピューティングデバイスで説明するが、言うまでもなく、他の実施形態は他の無線モバイルコンピューティングデバイスを用いて実装できる。実施形態はこれに限定されない。
【００５０】
幾つかの実施形態では、プロセッサ３１０は、カメラ３２２及びグローバルポジショニングシステムセンサ３２０と通信できる。メモリ３１２は、プロセッサ３１０に結合され、ソフトウェア及び／またはファームウェアの実施形態では、図１に示したシーケンスを実装するコンピュータ読み取り可能命令を記憶している。具体的に、このシーケンスは、コンピュータ実装命令を記憶する一以上の非一時的記憶デバイスにより実装できる。
【００５１】
図４に示したように、デバイス４００は、ハウジング４０２、ディスプレイ４０４、入出力（Ｉ／Ｏ）デバイス４０６、及びアンテナ４０８を有する。デバイス４００は、ナビゲーション機能４１２も有する。ディスプレイ４０４は、モバイルコンピューティングデバイスに好適な情報を表示する任意の好適な表示部を有する。Ｉ／Ｏデバイス４０６は、モバイルコンピューティングデバイスに情報を入力する任意の好適なＩ／Ｏデバイスを有する。Ｉ／Ｏデバイス４０６の例には、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロホン、スピーカ、音声認識デバイス及びソフトウェアなどが含まれる。情報は、マイクロホンによりデバイス４００に入力することもできる。かかる情報は、音声認識デバイスによりデジタル化される。実施形態はこれに限定されない。
【００５２】
様々な実施形態は、ハードウェア要素、ソフトウェア要素、または両者の組み合わせを用いて実装できる。ハードウェア要素の例としては、プロセッサ、マイクロプロセッサ、回路、回路要素（例えば、トランジスタ、抵抗、キャパシタ、インダクタなど）、集積回路、ＡＳＩＣ、ＰＬＤ、ＤＳＰ、ＦＰＧＡ、論理ゲート、レジスタ、半導体装置、チップ、マイクロチップ、チップセット等を含む。ソフトウェアの例としては、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはこれらの組み合わせが含まれる。一実施形態をハードウェア要素及び／またはソフトウェア要素を用いて実装するかの決定は、所望の計算レート、パワーレベル、耐熱、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバススピード、その他の設計上または性能上の制約などの要因により変わりうる。
【００５３】
少なくとも一実施形態の一以上の態様は、プロセッサにおける様々なロジックを表す機械読み取り可能媒体に記憶された代表的命令により実装できる。命令は、機械により読み取られると、その機械に、ここに説明した手法を実行するロジックを構成させる。かかる表現は、「ＩＰコア」として知られているが、有体の機械読み取り可能媒体上に記憶され、様々なカスタマーまたは生産施設に供給され、ロジックまたはプロセッサを実際に作る生産機械にロードされる。
【００５４】
一以上の実装の上記の説明は例示と説明を提供するものであるが、これは網羅的ではないし、本発明の範囲を開示した形式そのものに限定するものでもない。修正と変更が、上記の教示を考慮して可能であり、本発明の様々な実施のプラクティスから得られると思われる。
【００５５】
ここに説明するグラフィックス処理手法は、様々なハードウェアアーキテクチャで実装できる。例えば、グラフィックス機能はチップセット内に組み込まれる。あるいは、個別のグラフィックスプロセッサを用いることもできる。さらに他の一実施形態として、グラフィックス機能は、マルチコアプロセッサを含む汎用プロセッサにより実装できる。
【００５６】
本明細書において「一実施形態」とは、その実施形態に関して説明する具体的な機能、構造、特徴などが本発明に含まれる少なくとも１つの実施形態に含まれることを意味している。したがって、「一実施形態」と言っても、必ずしも同じ実施形態を指しているとは限らない。さらに、こうした具体的な機能、構造、特徴は、例示した具体的な実施形態以外の他の好適な形式で構成してもよく、かかる形式はすべて本願の特許請求の範囲に含まれる。
【００５７】
本発明を少数の実施形態を参照して説明したが、当業者はこれから多数の修正や変形を理解できるであろう。添付した請求項は、本発明の精神と範囲に含まれる修正や変形をすべてカバーするものである。
【図１】
2015515802.tif 000005
【図２】
2015515802.tif 000006
【図３】
2015515802.tif 000007
【図４】
2015515802.tif 000008
【図５】
2015515802.tif 000009
【手続補正書】
【提出日】平成26年9月18日(2014.9.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１クロックパルスあたり１より多い構文要素を用いるコンテクスト適応可変長復号をインプリメントするステップを有する方法。
【請求項２】
複数のサイクルのそれぞれで、構文要素を支障なくデコードするステップを含む、
請求項１に記載の方法。
【請求項３】
ＦＩＦＯ（first  in  first  out）バッファを用いて、コンテクスト適応可変長復号する構文要素をバッファするステップを含む、請求項１に記載の方法。
【請求項４】
複数のデコードシンボルデコードを結合するステップを含む、
請求項１に記載の方法。
【請求項５】
ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断するステップを含む、
請求項１に記載の方法。
【請求項６】
そうであれば、２つのｒｕｎ＿ｂｅｆｏｒｅシンボルを同時にデコードするステップを含む、請求項５に記載の方法。
【請求項７】
シーケンスを実行する命令を記憶した一以上の非一時的コンピュータ読み取り可能媒体であって、前記シーケンスは、
１クロックパルスあたり１より多い構文要素を用いるコンテクスト適応可変長復号をインプリメントするステップを有する媒体。
【請求項８】
前記シーケンスは、複数のサイクルのそれぞれで、構文要素を支障なくデコードするステップを含む、請求項７に記載の媒体。
【請求項９】
前記シーケンスは、ＦＩＦＯ（first  in  first  out）バッファを用いて、コンテクスト適応可変長復号する構文要素をバッファするステップを含む、
請求項７に記載の媒体。
【請求項１０】
前記シーケンスは、複数のデコードシンボルデコードを結合するステップを含む、
請求項７に記載の媒体。
【請求項１１】
前記シーケンスは、ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断するステップを含む、
請求項７に記載の媒体。
【請求項１２】
前記シーケンスは、そうであれば、２つのｒｕｎ＿ｂｅｆｏｒｅシンボルを同時にデコードするステップを含む、請求項１１に記載の媒体。
【請求項１３】
コンテクスト適応可変長デコーダの装置であって、
１クロックあたり１より多い構文要素を用いてデコードする可変長デコーダと、
前記デコーダに結合した動き予測器と、
前記デコーダに結合した係数機能ブロックとを有する、装置。
【請求項１４】
前記デコーダは、複数のサイクルのそれぞれで、構文要素を支障なくデコードする、
請求項１３に記載の装置。
【請求項１５】
前記デコーダは、ＦＩＦＯ（first  in  first  out）バッファを用いて、コンテクスト適応可変長復号する構文要素をバッファするステップを含む、
請求項１３に記載の装置。
【請求項１６】
前記デコーダは、複数のデコードシンボルデコードを結合する、
請求項１３に記載の装置。
【請求項１７】
前記デコーダは、ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断する、
請求項１３に記載の装置。
【請求項１８】
前記デコーダは、そうであれば、２つのｒｕｎ＿ｂｅｆｏｒｅシンボルを同時にデコードする、請求項１７に記載の装置。
【請求項１９】
プロセッサと、
前記プロセッサに結合したコーデックとを有し、前記コーデックは、ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断し、そうであれば、２つのシンボルを同時にデコードするコンテンツ適応可変長デコーダを含む、
システム。
【請求項２０】
前記デコーダは、複数のサイクルのそれぞれで、構文要素を支障なくデコードする、
請求項１９に記載のシステム。
【請求項２１】
コンテクスト適応可変長復号する構文要素をバッファするＦＩＦＯバッファを含む、
請求項１９に記載のシステム。
【請求項２２】
前記デコーダは、複数のデコードシンボルデコードを結合する、
請求項１９に記載のシステム。
【請求項２３】
前記デコーダは、ＺｅｒｏｓＬｅｆｔが所定数より少ないか判断する、
請求項１９に記載のシステム。
【請求項２４】
そうであれば、前記デコーダは、２つのｒｕｎ＿ｂｅｆｏｒｅシンボルを同時にデコードする、請求項２３に記載のシステム。
【請求項２５】
オペレーティングシステムを含む、請求項１９に記載のシステム。
【国際調査報告】
2015515802.tif 000010
2015515802.tif 000011
2015515802.tif 000012