(57)【要約】ビデオストリーム（例えば、Ｈ．２６４ビデオ）は、イントラ符号化された部分を含む。イントラ符号化された部分の復号化は、フレーム内の1つまたは複数の他の部分（プリデセサと呼ばれる）の復号化結果を利用する。フレームの再構成は、未だ復号化されていないプリデセサ部分を持たない部分を識別することと、そして次に、識別された部分(単数または複数)の復号化を開始することと、を伴う。1つの部分の復号化が実質的に完了すると、そのあと、復号化されるべき残りの部分が、未だ復号化されていないプリデセサを持たない部分を識別するために調べられる。この方法を実行することにより、複数の部分が同時に復号化できる。それぞれは、異なるワークエンティティ上で復号化されることができ、そのことによってプレデセサ、フレーム全体の復号化レートを高めることができる。プリデセサの非ブロック化フィルタリングは、他の部分のイントラ復号化において必要な情報を破壊するので、プレフィルタ処理されたプリデセサ情報が、イントラ復号化の間に引き続いて使用されるためにバッファ内に記憶され、そのことによって、複数の部分の同時復号化を容易にする。
2009525001.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）  複数個のフレームについてのビデオ情報を受信することと、なおここでは、前記複数個のフレームの1つについてのビデオ情報は、複数個の符号化されたマクロブロック情報部分（ＥＭＩＰｓ）を有しており、前記複数個のＥＭＩＰのいくつかは、インター符号化されており、前記複数個のＥＭＩＰｓのその他のものは、イントラ符号化されている；
（ｂ）  復号化されていないプリデセサＥＭＩＰｓを持たない、前記の1つのフレームの前記複数個のＥＭＩＰｓの1つまたは複数を識別することと；
（ｃ）  （ｂ）で識別された各ＥＭＩＰの復号化を開始することと; 
（ｄ）  （ｃ）において開始されたいずれかのＥＭＩＰの前記復号化が少なくとも実質的に完了した後で（ｂ）へ戻ることと、なおここでは、（ｂ）、（ｃ）、および（ｄ）は、イントラ符号化された複数個のＥＭＩＰｓの同時の復号化により複数回実行される；
を備える方法。
【請求項２】
前記ビデオ情報は、Ｈ．２６４ビデオ情報およびＭＰＥＧ４ビデオ情報の少なくとも1つを有している、請求項１記載の方法。
【請求項３】
（ｃ）で開始された前記復号化は、１）ピクセル情報の、プレフィルタ処理された、再構成されたマクロブロックを生成することと、２）ピクセル情報の、フィルタ処理された、再構成されたマクロブロックを生成するために、前記の、ピクセル情報の、プレフィルタ処理された、再構成されたマクロブロックを、非ブロック化フィルタ処理することと、を備える請求項１記載の方法。
【請求項４】
前記の（ｂ）へ戻ることは、前記の非ブロック化フィルタ処理することが行われるときと同時に行われる、請求項３記載の方法。
【請求項５】
前記の（ｂ）へ戻ることは、前記の非ブロック化フィルタ処理することが完了した後に行われる、請求項３記載の方法。
【請求項６】
前記の（ｄ）での実質的な完了とともに、前記のピクセル情報の、プレフィルタ処理された、再構成されたマクロブロックの量は、記憶される、また、前記の記憶された情報の量は、後で、前記フレームの前記複数個のＥＭＩＰｓの別のもののイントラ復号化において、使用される、請求項３記載の方法。
【請求項７】
前記複数個のイントラ符号化されたＥＭＩＰsの前記同時の復号化は、第1のイントラ符号化されたＥＭＩＰの復号化および第２のイントラ符号化されたＥＭＩＰの復号化を伴い、前記第1のイントラ符号化されたＥＭＩＰの前記復号化は、前記第２のイントラ符号化されたＥＭＩＰの前記復号化よりも、時間が長くかかる、請求項１記載の方法。
【請求項８】
（ｂ）の前記識別することは、プリデセサ表を用いることを伴い、このプリデセサ表は、前記フレームの各ＥＭＩＰのプリデセサカウント値を含んでいる、また、特定のＥＭＩＰの前記プリデセサカウント値は、未だ復号化されていないプリデセサＥＭＩＰｓの数を示している、請求項１記載の方法。
【請求項９】
、イントラ符号化された1つのＥＭＩＰのプリデセサカウント値を、そのプリデセサＥＭＩＰｓの1つの復号化の完了もしくは実質的な完了とともに決定すること、
を更に備える請求項３記載の方法。
【請求項１０】
（ｂ）は、復号化されていないプリデセサＥＭＩＰｓを持たない前記1つのフレームの複数個のＥＭＩＰｓを識別することを伴う、また、（ｃ）は、（ｂ）で識別された前記複数個のＥＭＩＰｓの各々の復号化を開始することを伴う、請求項１記載の方法。
【請求項１１】
前記フレームは、輝度情報のフレームであり、前記ビデオ情報は、前記フレーム輝度情報に対応するクロミナンス情報の２つのフレームをさらに備える、請求項１記載の方法。
【請求項１２】
（ｃ）の前記開始することは、第１のスレッドにより第１のＥＭＩＰの復号化を開始することと、第２のスレッドにより第２のＥＭＩＰの復号化を開始することと、を伴う、請求項１記載の方法。
【請求項１３】
（ｃ）の前記開始することは、１）第１のハードウェア復号化エンジンによって第１のＥＭＩＰの復号化を開始することと、２）第２のハードウェア復号化エンジンへの第２のＥＭＩＰの復号化を開始することと、を伴う、請求項１記載の方法。
【請求項１４】
（ａ）において受信された前記ビデオ情報は、ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットのストリームを備えている、請求項１記載の方法。
【請求項１５】
前記ビデオ情報は、メモリに記憶される、また、前記ビデオ情報は、前記メモリから、ベースバンドプロセシング集積回路上で、（ａ）において受信される、請求項１記載の方法。
【請求項１６】
プロセッサ読取り可能媒体上に記憶された、プロセッサ実行可能な1セットの命令であって、
（ａ）  ビデオ情報の量における、1つまたは複数の符号化されたマクロブロック情報部分（ＥＭＩＰｓ）を識別することと、なおここでは、前記のビデオ情報の量は、イントラ符号化された複数のＥＭＩＰｓとインター符号化された復数のＥＭＩＰとを含んでおり、識別された各ＥＭＩＰは、復号化されていないプリデセサＥＭＩＰを持たないＥＭＩＰである；
（ｂ）  （ａ）において識別された各ＥＭＩＰの復号化を開始することと；
（ｃ）  ステップ（ａ）において開始されたいずれかのＥＭＩＰの前記復号化が少なくとも実質的に完了した後で、（ａ）へ戻ることと、なおここでは、（ａ）、（ｂ）、および（ｃ）は、前記のビデオ情報の量が復号化されるまで複数回実行され、、また、前記のビデオ情報の量の復号化は、複数のイントラ符号化されたＥＭＩＰｓの同時の復号化を伴う；
を備えるプロセッサ実行可能な1セットの命令。
【請求項１７】
前記のビデオ情報の量の前記復号化は、輝度情報の再構成されたフレームを生成する、請求項１６記載のプロセッサ実行可能な1セットの命令。
【請求項１８】
前記ビデオ情報は、Ｈ．２６４ビデオ情報およびＭＰＥＧ４ビデオ情報から成るグループ、から選択される、請求項１６記載のプロセッサ実行可能な1セットの命令。
【請求項１９】
符号化されたビデオ情報を受信するように適合されたシステムであって、前記符号化されたビデオ情報は、イントラ符号化された部分とインター符号化された部分とを含んでおり、
複数のワークエンティティと、なおここでは、各エンティティは、再構成されたピクセル情報の量を生成するために、前記符号化されたビデオ情報の一部分をビデオイントラ復号化するように動作する；
ビデオ復号化されていないいずれのプリデセサ部分も持たない1つまたは複数の部分を識別するように動作するコントロールエンティティと、なおここでは、前記コントロールエンティティは、そのあと、前記複数のワークエンティティの選択された１つによって、前記識別された部分の各々がビデオ復号化されるようにし、また、前記コントロールエンティティは、前記イントラ符号化された部分のうちの少なくともいくつかが同時にイントラ復号化されるように、そして、再構成されたピクセル情報の１フレームが生成されるように、識別された部分を前記複数のワークエンティティによって復号化されるようにする；
を備えるシステム。
【請求項２０】
前記複数のワークエンティティは、複数の命令スレッドおよび複数の専用ハードウェアプロセシングユニットから成るグループ、から選択される、請求項１９記載のシステム。
【請求項２１】
前記システム上で受信される前記符号化されたビデオ情報は、Ｈ．２６４ビデオ符号化情報およびＭＰＥＧ４ビデオ符号化情報から成るグループ、から選択される、請求項１９記載のシステム。
【請求項２２】
前記コントロールエンティティは、プリデセサ表を用いて1つまたは複数の部分を識別し、プリデセサ表は、前記部分の各々に対応するプリデセサカウント値を含んでいる、請求項１９記載のシステム。
【請求項２３】
前記システムは、ベースバンドプロセッサ集積回路、ビデオＣＯＤＥＣ（ｅｎＣＯｄｅｒ／ＤＥＣｏｄｅｒ）集積回路、パーソナルコンピュータ、および前記パーソナルコンピュータ上で実行されるビデオ復号化アプリケーションレイヤソフトウェアから成るグループ、から選択される請求項１９記載のシステム。
【請求項２４】
符号化されたビデオ情報を受信するように適合されたシステムであって、前記符号化されたビデオ情報は、イントラ符号化された部分とインター符号化された部分とを含んでおり、
複数のワークエンティティと、なおここでは、各ワークエンティティは、再構成されたピクセル情報の量を生成するために、前記符号化されたビデオ情報の１部分をビデオイントラ復号化するように動作する；
１）ビデオ復号化されていない、いずれのプリデセサ部分も持たない、1つまたは複数の部分を識別するために、プリデセサ表を使用すること、また、２）前記識別された部分の各々が、前記複数のワークエンティティの中の選択された１つによってビデオ復号化されるようにすること、のための手段と；
を備えるシステム。
【請求項２５】
前記イントラ符号化された部分の少なくともいくつかは、同時にイントラ復号化される、請求項２５記載のシステム。
【請求項２６】
Ｈ．２６４ビデオ情報およびＭＰＥＧ４ビデオ情報の少なくとも1つを備えているビデオ情報の量を復号化する方法であって、
前記量の第１の部分と、前記量の第２の部分と、前記量の第３の部分とを同時にイントラ復号化すること、
を備え、前記第1の部分のイントラ復号化は、１フレーム内の第1のマクロブロック行における第1の再構成されたマクロブロックを生じさせ、前記第２の部分のイントラ復号化は、前記フレーム内の第２のマクロブロック行における第２の再構成されたマクロブロックを生じさせ、前記第３の部分のイントラ復号化は、前記フレーム内の第３のマクロブロック行における第３の再構成されたマクロブロックを生じさせる、
方法。
【発明の詳細な説明】
【背景】
【０００１】
［分野］  
ここに開示されている実施形態は、ビデオ復号化に関するものである。
【０００２】
［背景情報］  
携帯電話は、そのユーザに対して、無線電話呼び出しを行いそして受け取るという単なる能力以上に、より多くの機能を提供している。携帯電話の製造業者は、ユーザの関心について、他の携帯電話製造業者と競うために、その携帯電話にますます多くの機能を組み込んでいる。携帯電話製造業者は、例えば、その携帯電話内にビデオ受信能力を組み入れることができる。そのような携帯電話は、衛星から送信されてくる圧縮されたビデオ情報のストリームを受信するために、圧縮された情報をビデオに復号化する(to decode)ために、また、携帯電話のディスプレイ上にそのビデオを表示するために、使用できる予定である。それ故、携帯電話のユーザは、携帯電話のディスプレイ上で、衛星テレビ番組を観ることができる。しかしながら、製造業者はまた、携帯電話が製造するのに安価であることを望んでいる。一例として、携帯電話を構成する集積回路のコストを低減化するために、古い半導体処理技術は、携帯電話のデジタル処理回路を実現するために用いられることができる。古い処理技術の使用は、より高速の、より新しい処理技術の使用に比べ、より安価である。
【０００３】
一例として、前記古い処理技術は、実現されることのできるデジタル信号処理プロセッサのクロック速度を、約１００メガヘルツに限定している。ＶＧＡ（６４０ｘ４８０ピクセル）圧縮されたビデオ情報を毎秒３０フレームでビデオ復号し、その結果得られたＶＧＡ解像度のビデオ信号を携帯電話のディスプレイ上にリアルタイムで表示するために、この古い技術を利用できることが望まれている。残念なことに、１００メガヘルツのデジタル信号プロセッサは、要求される処理量を遂行するための適切な処理能力を備えていない。ＶＧＡビデオストリームを毎秒３０フレームで復号化するためには、２５０から３００メガヘルツのクロック周波数を有するデジタル信号プロセッサが要求されるであろう。従って、もし安価な半導体処理技術が用いられるならば、そのときは、携帯電話は、必要とされる毎秒３０フレームのフレームレートで所望の解像度画像の３分の１を表示することしかできないかもしれない。
【０００４】
更に、携帯電話内でデジタル信号処理回路をクロックするクロック信号の周波数を制限している理由が、コストの他にもある。
【発明の開示】
【０００５】
［概要］
復号化されることができ且つ携帯電話のディスプレイ上で見られることができるビデオの解像度を抑えることなく、制限されたクロックレートが使用されることを可能とする解決が、望まれている。
【０００６】
符号化されたビデオ（例えば、Ｈ．２６４ビデオまたはＭＰＥＧ４ビデオ）の量(amount)は、符号化された部分のシーケンス(a sequence of encoded portions)を含んでいる。符号化された各部分は、ビデオの１フレーム内のピクセルの、対応するマクロブロック(macroblock)をどのように再構成するかについての情報を含んでいる。いくつかの部分は、イントラ符号化されている(intra-encoded)。イントラ符号化された部分の復号化(decoding)は、一つもしくは複数の他の部分の復号化の結果を利用する。他の部分は、「プリデセサ(predecessor)」と呼ばれることができる。ビデオのフレーム全体の再構成は、符号化されていないプリデセサ部分を有さない一部分を識別すること(identifying)を伴う。「プリデセサ表(predecessor table)」と呼ばれる表が、この識別において使用されることができる。そのような識別された部分の各々の復号化が、そのあと、開始される。１つの部分の復号が実質的に完了する（少なくとも非ブロック化ポイントまで再構成される）と、つぎに、復号化されるべき残りの部分が、復号化されていないプリデセサを持っていない部分を識別するために、調べられる。再度、そのような識別された部分の各々の復号化が、そのあと、開始される。復号化されていないプリデセサを持たない部分を識別し、そのあと、それらの識別された部分の復号化を開始する、この処理は、フレームの全ての部分が復号化されるまで繰り返される。
【０００７】
この方法を実行することにより、部分の復号化は、複数の部分(multiple portions)が同時に復号化されるように開始される。このような部分の各々は、異なるワークエンティティ(work entity)上で復号化されることができ、それ故一度に１つの部分しか復号化されることができない復号化方法に比べ、フレーム全体の復号化のレート(rate)を高めることができる。再構成されたプリデセサマクロブロック(reconstructed predecessor macroblock)の非ブロック化フィルタリング(deblock filtering)は、他の従属部分(dependent portions)のイントラ復号化において必要な情報（再構成されているが、プレフィルタ処理された情報(reconstructed but prefiltered information)）を破壊できるので、プレフィルタ処理されたプリデセサ情報は、従属部分のイントラ復号化の間に引き続いて使用するためにバッファの中に記憶され、それによって、複数の部分の同時復号化を容易にしている。
【０００８】
一実施形態において、符号化されたビデオ信号の量(the amount of encoded video)が、ネットワークアブストラクションレイヤ(Network Abstract Layer)（ＮＡＬ）ユニットビットストリーム(unit bit stream)として、携帯電話上で受信される。携帯電話内の、ベースバンドプロセッサ集積回路における１組の並列デジタル信号プロセッサは、ビットストリームを、リアルタイムで復号化する。それ故、ベースバンドプロセッサ集積回路は、機能的に、ビデオＣＯＤＥＣ（ｅｎＣｏｄｅｒ／ＤＥＣｏｄｅｒ）を有している。この方法が、同時に復号化されることができる部分を識別した後、これら識別された部分は、種々の並列デジタル信号プロセッサにより並行して復号化される。複数のデジタル信号プロセッサへ仕事負荷(workload)を分散すること(distributing)によって、より高い解像度のビデオのフレームが、ベースバンドプロセッサ集積回路内のデジタル信号プロセッサの最大プロセッサクロックレートを高める必要もなく、適切な高フレームレートで描画される(rendered)ことができる。結果として得られたビデオの高解像度フレームは、ベースバンドプロセッサ集積回路から出力され、見るために携帯電話のディスプレイ上に描画される。一例においては、カラーＶＧＡフレーム（６４０ｘ４８０ピクセル）のＨ．２６４ビデオストリームが、携帯電話上で受信され、１組の並列デジタル信号プロセッサを使用することにより、毎秒３０フレームのフレームレートでリアルタイムにおいて復号化され、ここでは、デジタル信号プロセッサの各々は、１００メガヘルツの最大クロックレートを有する。
【０００９】
更なる方法および構成は、以下の詳細な説明の中で説明される。この概要(summary)は、本発明を定義することを意味しない。本発明は、特許請求の範囲により定義されている。
【００１０】
［詳細な説明］  
図１は、移動通信装置１のブロック図である。この例における移動通信装置１は、無線周波数集積回路（ＲＦＩＣ）２、ベースバンドプロセッサ集積回路（ＢＰＩＣ）３、およびディスプレイ４を含む携帯電話、を備えている。ＲＦＩＣ２は、アンテナ５からＲＦ携帯電話信号を受信し、同信号を処理してデジタル形式に変換し、結果として得られたデジタル情報をＢＰＩＣ３へ伝えるための、アナログ回路を含んでいる。ＲＦＩＣ２はまた、ＢＰＩＣ３からのデジタル情報を受取り、デジタル情報を処理しアナログ形式に変換し、その情報をＲＦ信号としてアンテナ５から送信するための回路も、備えている。携帯電話通信をサポートすることに加え、ＢＰＩＣ３はまた、種々のアプリケーションレイヤーのプログラムを走らせるためのハードウェアプラットフォームとしても機能している。本例におけるそのようなアプリケーションの一つは、ビデオ復号化アプリケーションである。ＢＰＩＣ３は、ビデオＣＯＤＥＣ（ｅｎＣｏｄｅｒ／ＤＥＣｏｄｅｒ）機能を含んでいる。Ｈ．２６４形式のビデオ情報のストリームは、衛星から送信される。ビデオＲＦ信号は、ＲＦＩＣ２によって受信され、Ｈ．２６４ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットのビットストリーム６の形式でＢＰＩＣ３へ伝えられる。ビットストリーム６は、区分けされ(sectioned up)、プロトコルに従ってＢＰＩＣへ伝えられる。ＢＰＩＣ３のＡＲＭプロセッサ部７は、プロトコルに従ってビットストリーム６を再組立て(reassembles)し、ビットストリーム６をＮＡＬユニット９の形式でメモリ８へ収納する。
【００１１】
図２は、ビデオ情報のビットストリーム６の簡略図である。ここに示される簡略化した例においては、ビットストリーム６は、２０個のマクロブロック情報部分のシーケンスを含む。  図２において、これらのマクロブロック情報部分は、０から１９までの番号がラベル表示れている。各部分は、３つのサブ部分を含み、ここでは、「符号化されたマクロブロック情報部分(encoded macroblock information portions)」（ＥＭＩＰｓ）、と称される。例えば、ビットストリーム７のマクロブロック情報部分ＭＢ０ついて考えてみよう。この部分ＭＢ０は、マクロブロックＭＢＯのＹ輝度情報をどのように再構成するかを示す第１のＥＭＩＰ１０と、マクロブロックＭＢ０のＣｒクロマ情報をどのように再構成するかを示す第２のＥＭＩＰ１１と、マクロブロックＭＢ０のＣｂクロマ情報をどのように再構成するかを示す第３のＥＭＩＰ１２とを、含んでいる。この特定の例におけるマクロブロックは、ピクセル情報の１６ｘ１６ブロックである。
【００１２】
各ピクセルが輝度およびクロミナンス情報を含んでいる場合、ピクセル情報の１フレーム(frame)は、３つのフレーム（「フィールド」とも呼ばれる）に編成されることができ、１つはＹ輝度用であり、１つはＣｒクロミナンス用であり、もう１つはＣｂクロミナンス用である。フレームがディスプレイ４上で描画される(rendered)べきとき、３つのフレームからの対応する輝度値とクロミナンス値が、組み合わされ、そして赤−緑−青（ＲＧＢ）の色空間(color space)へ変換される。ＹＣｒＣｂからＲＧＢへの変換は、ＢＰＩＣ３の移動ディスプレイプロセッサ(Mobile Display Processor)（ＭＤＰ）１３によって行われる。ＲＧＢピクセル情報は、レンダリング(rendering)のためにディスプレイ４に供給される。
【００１３】
図３は、輝度フレームを示す。図２の部分ＭＢ０のＥＭＩＰ１０は、図３のフレームにおけるマクロブロックＭＢ０用の輝度情報をどのように再構成するのかについての情報を含み、図２の部分ＭＢ１における輝度情報用のＥＭＩＰは、図３のマクロブロックＭＢ１用の輝度情報をどのように再構成するのかの情報を含み、以下同様である。
【００１４】
図４は、図３のフレームが、Ｈ．２６４規格に従ってどのように再構成されることができるのかを示す簡略図である。図４に図示される処理の説明を容易にするために、簡略化された用語が用いられている。ＮＡＬユニットビットストリームをどのように処理するのか、および、ビデオ情報のフレームをどのように再構成するのか、に関する更なる詳細については、Ｈ．２６４規格（例えば、ＩＴＵ−Ｔビデオ符号化エキスパートグループ（ＶＧＥＧ）、推奨Ｈ．２６４／ＩＳＯ／ＩＥＣ  １４４９６−１０、「先端ビデオ復号化」、２００３ (ITU-T Video Coding Experts Group (VCEG), Recommendation H.264/ISO/IEC 14496-10, “Advanced Video Coding,” 2003)を参照）図４に対応する以下の説明は、それが、Ｈ．２６４／ＡＶＣ準拠の復号器(decoder)のシングルスレッドインプリメンテーション(single-threaded implementation)を表わしているという点において、説明の目的のために簡略化されている。
【００１５】
ＡＲＭプロセッサ部７は、メモリ８からＮＡＬユニット９を読み出す。ＮＡＬユニット９は、ヘッダとその他の情報とを有している。各ＮＡＬヘッダが何を意味するかについては、Ｈ．２６４規格に規定されている。ＮＡＬヘッダは、ブロック１４によって示されるように解読され、ブロック１５によって示されるように、残りの情報に関してエントロピアンパッキング(entropy unpacking)が実行される。残りの情報は、シンボル(symbols)を含んでいる。各シンボルは、対応するビットストリング（string of bits）を識別するために表の中で調べられる。その結果得られたシンボルに対応するビットストリングは、量子化係数(quantized coefficients)（Ｘ）のストリームを形成するために連結される。ブロック１４と１５の処理は、両方共、ＡＲＭプロセッサ７によって実行され、量子化係数および解読されたヘッダ情報の、結果として得られたストリームは、メモリ８へ書き戻される。ＡＲＭプロセッサ７は、本例の場合、おおよそ１ギガヘルツでクロックされる(clocked)ことができる。
【００１６】
ブロック１４のＮＡＬヘッダの解読は、技術的には、「ＮＡＬヘッダ復号化(NAL header decoding)」と称されることができ、また、ブロック１５のエントロピアンパッキングは、技術的には、「エントロピ復号化(entropy decoding)」と称されることができる、ということが認識される。しかしながら、ブロック１４と１５の処理は、ここでは、復号化とは称されない。寧ろ、用語「復号化(decoding)」は、ここでは、逆変換(inverse transforming)、インター復号化(inter-decoding)、イントラ復号化(intra-decoding)を含む他の処理を説明するために使用されている（図４の点線４２を参照）。
【００１７】
ベースバンドプロセッサ集積回路３のデジタル信号プロセッサ（ＤＳＰ）部１６は、量子化係数（Ｘ）を取り出し、Ｈ．２６４規格に従いそれらの係数の再スケーリングを行う(rescales)。この再スケーリングは、フレームのＨ．２６４符号化の間に行われたスケーリング(scaling)をリバースする(reverses)。この再スケーリングは、図４のブロック１７によって示されている。（ＤＳＰ部１６およびＡＲＭプロセッサ部７の両方は、、メモリ８から読み取ることができ、また、メモリ８に書き込みができる。メモリ８は、プロセッサ読取り可能な媒体(processor-readable medium)である。ＡＲＭプロセッサ部７およびＤＳＰ部１６の両方は、別々のセットの命令を実行し、それらのセットの命令は、他のプロセッサ読取り可能媒体（示されていない）に記憶されており、それらの媒体は、それぞれ、ＡＲＭプロセッサ部７およびＤＳＰ部１６の一部である。）
【００１８】
そのあと、ＤＳＰ部１６は、Ｈ．２６４規格に規定されているように、再スケーリングが行われた係数を逆変換する(inverse transforms)。この逆変換は、フレームのＨ．２６４復号化の間に行われた変換をリバースする。逆変換の適用は、図４のブロック１８によって示されている。その結果は、差分情報(difference information)（Ｄ）のピクセルである。差分ピクセル値は、第１のマクロブロック用の差分ピクセル値が出力され、次に第２のマクロブロック用の差分ピクセル値が出力され、以下同様にマクロブロック走査ライン順に出力されるように、順序づけられる(ordered)。
【００１９】
差分ピクセル情報（Ｄ）のマクロブロックは、インター符号化されていても、或いはイントラ符号化されていても、可能であったであろう。図４の例において、「インター符号化された(inter-encoded)」は、マクロブロックが、別のフレーム（現在再構成されているフレームではない）の別のブロックからのピクセル情報に少なくとも一部基づいて符号化される、ということを意味する。例えば、差分ピクセル情報（Ｄ）は、その前のフレーム（再構成されているフレームに先行する、ビデオ情報中のフレーム）内の対応するマクロブロックから、符号化されつつあるマクロブロックを差引くことによって、インター符号化されたかもしれない。この差分ピクセル情報は、次に、インター符号化されたＥＭＩＰを形成するために、変換され、量子化され、スケーリングが行われ、パックされ、エントロピパックされ(entropy packed)た。
【００２０】
「イントラ符号化された(intra-encoded)」は、マクロブロックが、現在のフレーム内の別のブロックからのピクセル情報に一部基づいて符号化される、ということを意味する。例えば、差分ピクセル情報（Ｄ）は、同じフレーム内の隣接するマクロブロックのエッジ(edge)に沿ったピクセル情報から、符号化されているマクロブロックのピクセル情報を差引くことによって、イントラ符号化されたかもしれない。この差分ピクセル情報は、次に、イントラ符号化されたＥＭＩＰを形成するために、変換され、量子化され、スケーリングが行われ、パックされ、そして、エントロピパックされた。更なる詳細については、Ｈ．２６４規格を参照。
【００２１】
例えば、もしも復号化されている現在のＥＭＩＰが、インター符号化されたＥＭＩＰであるならば、ブロック１９は、前のフレームからの適切なピクセルが加算器（図４では、加算ノードシンボル２１によって表わされている）へ供給されるようにする（図４では、スイッチシンボル２０によって表されている）。マクロブロックからの供給されたピクセルは、予測マクロブロック(prediction macroblock)（Ｐ）と呼ばれる。差分マクロブロック（Ｄ）のピクセル値は、ピクセル値の再構成された（しかしフィルタ処理されていない(unfiltered)）マクロブロック（ＵＦ）を生成するためにマクロブロックＰのピクセル値に加えられる。他方、もし復号化されている現在のＥＭＩＰがイントラ符号化されたＥＭＩＰであれば、そのときは、ブロック２２および２３は、現在のフレームの既に復号化されたマクロブロックの一部が加算器２１へ供給されるようにする（図４では、スイッチシンボル２０によって表されている）。供給されたマクロブロックの一部は、予測マクロブロック（Ｐ）と呼ばれる。異なるマクロブロックＤの各ピクセル値は、再構成された（しかしフィルタ処理されていない）マクロブロック（ＵＦ）を生成するために、マクロブロックＰからのピクセル値へ加えられる。このイントラ復号化においては、予測マクロブロック（Ｐ）の部分は、非ブロック化フィルタブロック２５の出力から取り出された、フィルタ処理されたマクロブロック(filtered macroblock)の一部ではなく、寧ろ、加算器２１の出力から取り出された、プレフィルタ処理されたマクロブロック(prefiltered macroblock)の一部である、ということに注目する必要がある。イントラ符号化されたＥＭＩＰから再構成されたマクロブロックを生成するために、予測マクロブロック（Ｐ）の部分が使用される多くの方法がある。これらの多くの方法に関する詳細については、Ｈ．２６４規格を参照。
【００２２】
復号化が行われている現在のＥＭＩＰが、インター符号化されたのか，あるいはイントラ符号化されたのかは、ビットストリームのヘッダ情報によって決定される。図４のブロック２４は、インター復号化またはイントラ復号化が使用されるのかどうかをコントロールするために、このヘッダ情報を使用している。それ故、ブロック２４は、スイッチシンボル２０の位置をコントロールするものとして図示されている。
【００２３】
そのような再構成されたマクロブロックのフレームは、フレーム内の種々のマクロブロック間のブロック性(blockiness)と不連続性(discontinuities)を示すことがある。Ｈ．２６４に従って、隣接する再構成されたマクロブロック間の境界は、ブロック性を減らす助けになるようにフィルタ処理されている(filtered)。このフィルタリング(filtering)は、時には、「非ブロック化フィルタリング(deblocking filtering)」と呼ばれており、図４においてブロック２５によって表されている。非ブロック化フィルタ２５は、再構成され且つフィルタ処理された現在のマクロブロック（Ｆ）２６を出力する。マクロブロック（Ｆ）２６は、同一フレーム内の、同様に再構成された他のマクロブロックと共に、再構成されたマクロブロックのフレーム全体２７が生成されるようにメモリ８内に記憶される。再構成されたフレーム２７は、図１のメモリ８内に記憶される。上述したように、移動ディスプレイプロセッサ１３は、フレーム２７を取り出し、それをＲＧＢフォーマットに変換し、ＲＧＢピクセルのフレームをレンダリングのためにディスプレイへ供給する。次のフレームに対応するビットストリーム６へのＮＡＬユニットの復号化が更に始まると、今まさに完了した、再構成され且つフィルタ処理されたフレーム２７が、インター符号化されたＥＭＩＰの復号のために利用できるようになる。このような、先行して再構成され且つフィルタ処理されたフレームの記憶場所は、図４においては、ブロック１９で示されている。いま説明される実施形態において、Ｈ．２６４ビットストリームは、ＢＰＩＣ３を用いて、毎秒３０ＶＧＡフレームで復号化される。ＢＰＩＣ３は、１つのＡＲＭプロセッサ７（１ギガヘルツの最大クロックレート）と、６つの並列ＤＳＰプロセッサ（各ＤＳＰプロセッサは１００ＭＨｚの最大クロックレートを有する）とを有している。
【００２４】
図５は、１００メガヘルツのＤＳＰプロセッサが、ＮＡＬユニットのＨ．２６４ビットストリームを、毎秒３０フレームのレートでのＶＧＡフレームへ復号化できるようにした、新規な方法を示すフローチャート図である。図５の方法は、「プリデセサ表(predecessor table)」と呼ぶことのできる表を伴っている。どのようにこのプリデセサ表を得るかについては、以下に説明されている。プリデセサ表の説明の後で、図５の方法のステップについて説明する。
【００２５】
図６は、マクロブロックＡ、Ｂ、Ｃ、Ｄ、およびＸからなる一組を示している。マクロブロックＸは、復号化されるべき現在のマクロブロックである。イントラ符号化とＨ．２６４の非ブロック化との使用により、マクロブロックＸの復号化は、マクロブロックＣおよびＤの復号化結果を要求することができる。それ故、マクロブロックＸの復号化は、マクロブロックＣおよびＤが実質的に復号化され（再計算され、逆変換され、少なくとも非ブロック化ポイントまで再構成され）るまでは、行うことはできない。それは、もしもマクロブロックＸがイントラ符号化されているとすると、その復号化には、図４のブロック２２が、再構成された(しかしフィルタ処理されていない）マクロブロックＣおよびＤを持っていることを要求するからである。従って、マクロブロックＣおよびＤは、マクロブロックＸに対する「プリデセサ(predecessor)」マクロブロックと言われる。この関係は、イントラ符号化と非ブロック化のタイプの詳細にもよるが、プリデセサ表の作成に用いられる。
【００２６】
図７は、マクロブロックのフレームを示す図である。各マクロブロックの右上方隅の数字は、マクロブロックの数字である。各マクロブロックの中央にある数字は、そのマクロブロックのプリデセサカウント値(predecessor count value)である。最初、表中の全てのプリデセサカウント値は知られていない、それ故、図７においては「Ｘ］で表されている。
【００２７】
第１のステップにおいて、図６のマクロブロック構成のマクロブロックＸが図７のマクロブロックＭＢ０上に配置されるように、図６のマクロブロック構成が図７のフレームに関して置かれる。このことは、図８の左部分に図示されている。暗く描かれたマクロブロックは、図６のマクロブロック構成のマクロブロックを表している。マクロブロックＣおよびＤは、図８に示されているようにフレームの境界外にあるので、マクロブロックＸは、他のどのようなマクロブロックの復号化も待つことなく復号化されることができる。それ故、マクロブロックＭＢ０は、プリデセサを持っていないと言われる。図８の右部分に示されているように、ゼロ（ＭＢ０はプリデセサを持っていないことを表す）は、ＭＢ０のプリデセサカウント値である。
【００２８】
次に、図６のマクロブロック構成のマクロブロックＸが、マクロブロックＭＢ１上に配置されるように、図６のマクロブロック構成が右に移される。このことは、図９の左部分に示されている。マクロブロックＣは依然としてフレーム外にあるが、マクロブロックＤは、今やＭＢ０の上にある。従って、マクロブロックＭＢ０はマクロブロックＭＢ１が復号化できる前に復号化されなければならない。それ故、ＭＢ１は、１つのプリデセサマクロブロック（ＭＢ０）を持っている、と言われる。図９の右部分に示されているように、１(one)（ＭＢ１はプリデセサを１つ持っていることを表す）は、ＭＢ１のプリデセサカウント値である。
【００２９】
次に、図６のマクロブロック構成のマクロブロックＸが、マクロブロックＭＢ２上に配置されるように、図６のマクロブロック構成が右に移される。このことは、図１０の左部分に示されている。マクロブロックＣは依然としてフレーム外にあるが、マクロブロックＤは、今やＭＢ１の上にある。従って、マクロブロックＭＢ１はマクロブロックＭＢ２が復号化できる前に復号化されなければならない。それ故、ＭＢ２は、１つのプリデセサマクロブロック（ＭＢ１）を持っている、と言われる。図１０の右部分に示されているように、１(one)（ＭＢ２はプリデセサを１つ持っていることを表す）は、ＭＢ２のプリデセサカウント値である。
【００３０】
図６のマクロブロック構成を、図７のフレームのマクロブロックを横切るように移す処理は、プリデセサ表がプリデセサカウント値で満たされるまで、走査ライン順に、左から右へ、フレームの種々の行を下向きに一行ごとに、繰り返される。
【００３１】
図１１は、結果として得られたプリデセサ表を示している。この表は、図５の方法において使用される。図５の方法において、最初に、ビデオ情報が受信される（図５のステップ１００）。ビデオ情報は、１フレームについて複数のＥＭＩＰｓを有している。あるＥＭＩＰｓはインター符号化され、他のＥＭＩＰｓはイントラ符号化されている。ビデオ情報は、例えば、図１のビットストリーム６である。
【００３２】
次に（ステップ１０２）、未だ復号化されていないプリデセサＥＭＩＰｓを持たない１つまたは複数のＥＭＩＰｓが識別される。一例において、ＤＳＰ１６で実行されるコントロールエンティティ処理により、メモリ８から図１１のプリデセサ表が読み出される。ＭＢ０のゼロプリデセサカウント値は、ＭＢ０のＥＭＩＰが、未だ復号化されていないプリデセサＥＭＩＰｓを持たないＥＭＩＰであることを示している。
【００３３】
次に（ステップ１０１）、ステップ１０１で識別されたＥＭＩＰｓの復号が開始される。これらＥＭＩＰｓの各々の復号は、異なるワーキングエンティティによって遂行される。一つの例として、ＤＳＰ１６は、６つの並列ＤＳＰプロセッサを有している。各ＤＳＰプロセッサは、１００メガヘルツレートでクロックされる。交互的１００メガヘルツのクロック信号が各々のＤＳＰプロセッサをクロックするパイプライン型アーキテクチュアが利用される。ＤＳＰ１６で実行されるソフトウェアの観点からは、コードの実行のために利用可能な６つの別々のＤＳＰプロセッサあるように見える。各ＤＳＰプロセッサは、それぞれ別の命令スレッド（separate thread of instructions）（を実行し、それ故、異なるワークエンティティとみなされる。全てのスレッドは、別個のキュー(queue)するべきワークを受取る。
【００３４】
いま説明される例においては、ステップ１０１において１つのＥＭＩＰだけが識別されたが、これがＭＢ０のＥＭＩＰである。この、ＭＢ０用のＥＭＩＰは、共用キュー(shared queue)）へ置かれる。第１のスレッド（図１ではＴ１で示されている）が、第１のバーチャルＤＳＰプロセッサ上での復号化のためにそれを拾い出し、図４の方法に従ってＭＢ０のＥＭＩＰを復号化する。
【００３５】
図１２は、処理におけるこのステージを示している。この状態(state)は、ＥＭＩＰの復号化が実質的に完了していない限り持続する（実質的に完了するとは、再構成された、しかしフィルタ処理されていないマクロブロック（ＵＦ）を得るポイントまで復号化が完了していること、を意味する）。１つのＥＭＩＰの復号化が実質的に完了したと判断されると（ステップ１０３）、処理フローは、ステップ１０１へ戻る。図１２−図２３の図において、自らのＥＭＩＰが実質的に復号化されたマクロブロックは、斜線で満たされたものとして表されている。ステップ１０３から、再構成されたマクロブロック（ＵＦ）が、再構成され且つフィルタ処理されたマクロブロックを生成するために非ブロック化フィルタ処理されるように、復号化も同様に続く。結果として得られる再構成され且つフィルタ処理されたマクロブロックは、出力され（ステップ１０４）、再構成され且つフィルタ処理されたフレームの形成開始のために蓄積される(accumulated)。
【００３６】
いま説明される例において、一たびマクロブロックＭＢ０の復号が実質的に完了すると、図１２のプリデセサ表を使用して、プリデセサＥＭＩＰを有しない1つまたは複数のＥＭＩＰｓの識別（ステップ１０１）が行われる。プリデセサ表において、ＭＢ０がプリデセサである全てのマクロブロックのプリデセサカウント値は、１だけデクリメントされる(decremented)。それらのプリデセサ（ＭＢ０）の１つが、今、適切に復号化されたので、それらは１だけデクリメントされる。いま説明される例において、ＭＢ０は、ＭＢ１のプリデセサである。図１３によって示されているように、ＭＢ１のプリデセサカウント値は、１から０にデクリメントされる。プリデセサカウント値がゼロのマクロブロックのいずれもプリデセサを有していない。従って、ＭＢ１はステップ１０１において、未だ復号化されていないプリデセサＥＭＩＰｓを持たないＥＭＩＰであると、識別される。
【００３７】
次に（ステップ１０２）、ＭＢ１のＥＭＩＰの復号が開始される。本例の場合、ＭＢ１のＥＭＩＰは、共用キュー上に置かれる。このときスレッドＴ１は、アイドル状態（ｉｄｌｅ）にあるので、スレッドＴ１は，前記キューからＭＢ１のＥＭＩＰを読み出すことができ、その復号化を開始する。ＭＢ１のＥＭＩＰの復号が実質的に終了すると（ステップ１０３）、処理は、ステップ１０１へ戻る。復号化は更に、ＭＢ１用の再構成され且つフィルタ処理されたマクロブロックを生成するために、ＭＢ１用の再構成されたマクロブロック（ＵＦ）が非ブロック化フィルタ処理されるように、続く。
【００３８】
ＭＢ１のＥＭＩＰのための復号化は、処理をステップ１０１へ戻させ、ＭＢ１がプリデセサになる全てのマクロブロックのプリデセサカウント値は、デクリメントされる。図１４に示されているように、このことは、マクロブロックＭＢ２およびＭＢ５のプリデセサカウント値をデクリメントすることになる。図６のマクロブロック依存構成(macroblock dependency structure)は、ＭＢ１がＭＢ２およびＭＢ５の両方に対するプリデセサであることを示している、ということに注目されたい。プリデセサカウント値をデクリメントすることにより、マクロブロックＭＢ２およびＭＢ５のプリデセサカウント値がそれぞれ１から０へ変えられる。それ故、ＭＢ２およびＭＢ５のＥＭＩＰｓは、ステップ１０１において、未だ復号されていないＥＭＩＰｓを持っていないＥＭＩＰｓとして識別される。
【００３９】
今説明される例においては、ＭＢ２およびＭＢ５のＥＭＩＰｓは、先行するＭＢｓについての最後のステップの処理として、共用ワークキュー上にプッシュされる(pushed)へ。ＤＳＰスレッドＴ１は、前記キューからＭＢ２用のＥＭＩＰをポップし(pops)、スレッドＴ２は前記キューからＭＢ５用のＥＭＩＰをポップする。これが、図１５に示された処理の状態である。この時点において、ただ１つではなく２つのＥＭＩＰｓが、複数の異なるワークエンティティ（この場合は、２つのスレッド）を使用して、同時に復号化されている。
【００４０】
これらＥＭＩＰｓの１つが実質的に復号化されると、処理は、決定ステップ１０３からステップ１０１へ進み戻る。いま説明される簡略化された例では、全てのＥＭＩＰｓの復号化には、同じ時間量がかかる。それ故、ＭＢ２のＥＭＩＰおよびＭＢ５のＥＭＩＰは、両方とも、ステップ１０３において同時に、実質的に復号化されるものと決定される。実質的に復号化されたＭＢ２は、ＭＢ３およびＭＢ６の両方のプリデセサである。従って、ステップ１０１は、ＭＢ３およびＭＢ６のプリデセサカウント値をデクリメントすることを伴う。また、実質的に復号化されたＭＢ５は、ＭＢ６のプリデセサである。従って、ステップ１０１は、ＭＢ３のプリデセサカウント値を１回デクレメントすることを伴い、ＭＢ６のプリデセサカウント値を２回デクレメントすることを伴う。図１６に示されているように、ＭＢ３およびＭＢ６のプリデセサカウント値はゼロに減らされる。ＭＢ３およびＭＢ６のプリデセサカウント値がゼロであることから、ＭＢ３およびＭＢ６のＥＭＩＰｓは、未だ復号化されていないＥＭＩＰｓを持たないＥＭＩＰであると識別される（ステップ１０１）。識別されたＥＭＩＰｓの復号化（ステップ１０２）が開始される。図１６に示されているように、ＭＢ３およびＭＢ６のＥＭＩＰは、共用キュー上にプッシュされる。スレッドＴ１がキューからＭＢ３のＥＭＩＰをポップし、スレッドＴ２がキューからＭＢ６のＥＭＩＰをポップする。ＭＢ３およびＭＢ６のＥＭＩＰｓは、その後、異なるワークエンティティ（この場合は、異なるスレッド）によって同時に復号化される。
【００４１】
処理は、このようにして、フレームのマクロブロック全体にわたって進む。今説明される例におけるＥＭＩＰｓの処理は、図１６−図２３の一連のダイアグラムにより述べられている。コントロールエンティティによって遂行されるこの方法（ＤＳＰ１６で実行される処理）は、３つのＥＭＩＰｓが、処理全体の中の異なるポイントで（図１６および図１８を参照）同時に処理されるようにする、ということに注目されたい。このような並行処理を行う３つのワークエンティティ（３つの命令スレッドＴ１、Ｔ２、およびＴ３）は、図１では、ＤＳＰ１６内に複数のブロック(blocks)として示されている。
【００４２】
プレフィルタ処理された値のためのバッファ(BUFFER FOR PREFILTERED VALUES)：  グループ内の各ＥＭＩＰを復号化するために必要な情報は、同時に復号化されるべき、グループ内のＥＭＩＰｓのうちの他のものの復号化の結果に依存していないので、ＥＭＩＰｓのグループを同時に復号化することは可能である。図６に示されているように、マクロブロックＸのイントラ符号化されたＥＭＩＰの復号化は、マクロブロックＣおよびＤＭＩＰが最初に復号化されることを要求する。更に具体的には、マクロブロックＸのイントラ復号化は、マクロブロックＢの底部エッジに沿った値のストリップ(strip)からの復号化結果を要求し、また、マクロブロックＤの右側エッジに沿った値のストリップからの復号結果を要求し、また、マクロブロックＡの下方右隅の値の小さな四角部の復号結果を要求することができる。図２４は、マクロブロックＸのイントラ復号化において要求されるかもしれない値のこのストリップを示している。Ｈ．２６４の例では、このストリップは、１つの値の幅があり(one value wide)、マクロブロックＤの右側エッジに沿って上方へ伸び、マクロブロックＡの底部右隅（１つの値(one value)）をとおって、マクロブロックＢの底部エッジを左から右へ越えて、そしてマクロブロックＣの中の方へ約四分の一伸びている。
【００４３】
上記に述べた図１２―２３図の復号化フローにおけるＭＢ７の復号化を実行する際に、もしＭＢ７のＥＭＩＰが、プレフィルタ処理されたマクロブロック値（ＵＦ）を生成するために再構成されたのであれば、そしてそのとき、それらのプレフィルタ処理されたマクロブロック値（ＵＦ）が、次のＥＭＩＰを復号化するために先へ進める前に非ブロック化フィルタ処理されたのであれば、また、もしプレフィルタ処理されたマクロブロック値（ＵＦ）が記憶されていないのであれば、そして、マクロブロックＭＢ８のＥＭＩＰが復号化される予定であったときは（図１７を参照）、ＭＢ７の右側エッジのプレフィルタ処理されたマクロブロック値（ＵＦ）は、ＭＢ８のＥＭＩＰのイントラ復号化には利用可能でないであろう。同様に、マクロブロックＭＢ１２のＥＭＩＰが復号化される予定であったとき（図１８を参照）、ＭＢ７の底部エッジの、プレフィルタ処理されたマクロブロック値（ＵＦ）は、ＭＢ１２のＥＭＩＰのイントラ復号化には利用可能でないであろう。他のマクロブロックのＥＭＩＰｓの引き続く復号化に対して、これらのプレフィルタ処理された値へのアクセスを提供するために、復号化されているＥＭＩＰの、プレフィルタ処理された値の底部エッジストリップが、非ブロックフィルタリングの前にバッファの中に記憶される。同様に、他のマクロブロックのＥＭＩＰｓの引き続く復号化に対して、これらのプレフィルタ処理された値へのアクセスを提供するために、復号化されるＥＭＩＰのプレフィルタ処理された値の右側エッジストリップがバッファの中に記憶される。
【００４４】
図２５は、同じフレーム内の次のＥＭＩＰｓの復号化に使用するために、プレフィルタ処理された、再構成された値を記憶するために用いられるバッファ２８を示している。バッファ２８は、垂直方向に伸びるいくつかの列部２９−３２と、水平方向に伸びるいくつかの行部３３−３７とを有している。矢印３８は、マクロブロックＭＢ７のＥＭＩＰの復号化が実質的に完了すると、その底部エッジに沿った、プレフィルタ処理された値のストリップが、バッファ２８の対応部分３５に記憶される、ということを示している。部分３５は、マクロブロックＭＢ７を有するマクロブロック列に対応したバッファ２８の部分である。これらの値は、マクロブロックＭＢ１２のＥＭＩＰが復号化されるべきときまでバッファ２８内に留まっている。マクロブロック１２のＥＭＩＰが復号化されるときに、バッファ２８の部分３５における値を、イントラ復号化に使用することができる。フレームのマクロブロックの先行順位(precedence order)は、マクロブロックＭＢ１２のＥＭＩＰの前に、列の中にあるマクロブロックの如何なるＥＭＩＰも復号化されないことを、確実にする。従って、列中の１つのマクロブロックの１つのＥＭＩＰが実質的に完了すると、その、プレフィルタ処理された値の底部ストリップは、その列に対応するバッファ２８の部分に書き込まれる。これらの記憶された、プレフィルタ処理された値は、そのあと、列の直ぐ下にあるマクロブロックＥＭＩＰの復号化においての使用に利用可能である。
【００４５】
図２６は、マクロブロックＭＢ７のＥＭＩＰの復号化が実質的に完了したときに、その右側エッジに沿った、プレフィルタ処理された値のストリップがバッファ２８の対応する部分３０に記憶されることを示している。部分３０は、マクロブロックＭＢ７を有するマクロブロック行に対応したバッファ２８の部分である。これらの値は、マクロブロックＭＢ８のＥＭＩＰが復号化されるときまでバッファ２８内に留まっている。マクロブロック８のＥＭＩＰが復号化されると、バッファ２８の部分３０における値は、イントラ復号化に使用することができる。マクロブロックの先行順位は、マクロブロックＭＢ８のＥＭＩＰよりも前に、行の中にあるマクロブロックの如何なるＥＭＩＰも復号化されないことを、確実にする。従って、行中の１つのマクロブロックのＥＭＩＰが実質的に完了すると、プレフィルタ処理された値の右側エッジ部のストリップは、バッファ２８の、その行に対応する部分へ書き込まれる。これら記憶された、プレフィルタ処理された値は、そのあと、行の直ぐ右にあるマクロブロックＥＭＩＰの復号化においての使用に利用可能である。
【００４６】
図２４から、再構成されたがフィルタ処理されていないマクロブロックＡからの値（マクロブロックＡの下方右隅）は、マクロブロックＸのＥＭＩＰのイントラ復号化のために必要とされ得る、ということに注意されたい。それ故、部分３０−３２の各々は、その部分の上端部(top)に付加的な値(additional value)を持っている。図２６の例において、マクロブロックＭＢ７の復号化が実質的に完了すると、ＭＢ７の、プレフィルタ処理された値である右側エッジ部のストリップが、バッファ２８内の３０の下部(lower portion of 30)へ書き込まれ、部分３５の右隅からの、プレフィルタ処理された値は部分３０の上端部(top)へ書き込まれる。部分３５の右隅は、ＭＢ２の先行する処理の結果得られたものである。次に、図２５に示されているように、ＭＢ７の底部水平エッジストリップは、バッファ２８の部分３５に書き込まれる。マクロブロックＭＢ８のＥＭＩＰのイントラ復号化は、そのあと、行部３６における値と同様に、列部３０の底部における他の値と同様に、列部３０の上端部(top)における値を使用することができる。（部分２９−３２の各々が、マクロブロックの行に対応しているのではあるが）部分２９−３２は１つの列を形成する故、部分２９−３２は、バッファ２８の「列」部分と呼ばれることができる。利点のある一つの態様においては、ＤＳＰ１６がイントラ復号化動作を実行するために必要とされるバス４１を介してのメモリアクセスの数を減少させるために、バッファ２８は、メモリ８の中においてよりも寧ろＤＳＰ１６内のメモリの中においてに設けられる。上記文章 (text)においては、図２５が図２６の前に図示され、説明されているが、図２６の線３９および４０によって示される列バッファアップデートオペレーション(column buffer update operations)は、図２５の線３８により説明されているオペレーションに先行して実行される。
【００４７】
Ｈ．２６４以外の符号化アルゴリズム(ENCODING ALGORITHMS OTHER THAN H.264)：  複数のＥＭＩＰｓを同時に復号化するための上述した方法は、Ｈ．２６４以外の符号化アルゴリズムを使用して符号化されているＥＭＩＰｓの復号化について、適用される。Ｈ．２６４ＥＭＩＰｓの復号化の上記の説明は、１つの例として適用されている。本方法を、別の符号化アルゴリズムを使用して符号化されているＥＭＩＰを復号化するように適用するために、その符号化アルゴリズムに従って復号化されるべきブロックのプリデセサが、決定される。一つの例においては、復号化されるべきブロックに対するこれらのプリデセサの関係がそのあと、先行表(precedence table)を生成するために適用される。次に、この先行表は、与えられたＥＭＩＰについての全てのプリデセサがいつ適切に復号化されたかを決定するために、ＥＭＩＰｓの復号化において使用される。与えられたＥＭＩＰについての全プリデセサが適切に復号化されたと決定されたとき、そのときは、与えられたＥＭＩＰの復号化が開始される。ＥＭＩＰｓの復号化は、複数のＥＭＩＰｓが同時に復号化されるように、異なるワークエンティティ上で開始されることができる。
【００４８】
図２７は、ＭＰＥＧ４復号化アルゴリズムについてのプリデセサマクロブロック関係を示している。図２７に示されている４つのマクロブロックＡ、Ｂ、Ｃ、およびＸの組(set)において、マクロブロックＸは、復号化されるべき現在のマクロブロックである。マクロブロックＢおよびＤは、マクロブロックＸのプリデセサである。図６のプリデセサ関係がＨ．２６４用の図６のプリデセサ表を生成するために用いられるのと同じ方法で、図２７に示されたプリデセサの関係が、ＭＰＥＧ４のためのプリデセサ表(predecessor table)を生成するために用いられる。図２５および図２６におけるバッファ２８のようなバッファが、１つのＥＭＩＰのＭＰＥＧ４復号化において生成された、プレフィルタ処理され再構成された値を記憶するために用いられる。記憶された、プレフィルタ処理され再構成された値は、フレーム中の別のＥＭＩＰのイントラ復号化において、後で用いられる。このようにして、本特許明細書に述べられている、複数のＥＭＩＰを同時に復号化する方法は、Ｈ．２６４以外の符号化アルゴリズムおよびＭＰＥＧ４を用いて符号化されたビデオ情報を復号化するために利用されることができる。
【００４９】
説明の目的のために、或る特定の実施形態が上記に説明されているが、本発明はそれらに限定されない。符号化されたビデオ情報は、情報のストリームの形態で復号化装置上で受信される必要はなく、むしろ、メモリの中から符号化されたビデオ情報を読み取ることによって復号化装置上で受信されるすることができる。メモリ内の符号化されたビデオ信号は、例えば、ファイルとして記憶されることができ、読み出されることができる。ＥＭＩＰｓを復号化することのできるワークエンティティは、図５の方法全体がソフトウェア内で実現されるような、ソフトウェアスレッドであってもよい。別の方法として、ワークエンティティは、異なる専用のハードウェアプロセッシングユニットであってもよい。ソフトウェアが、これらの専用のハードウェアプロセシングユニット用の１つのキュー上に、もしくは複数のキュー上に、ＥＭＩＰｓの復号化を押し進める(push)ために使用されることができる。別の方法として、専用のハードウェアが、ハードウェアプロセシングユニット用の１つのキュー上に、もしくは複数のキュー上に、ＥＭＩＰｓの復号化を押し進めるために使用されることができる。本復号化方法は、移動通信装置上で具現化される必要はなく、むしろ、その他の装置上で具現化化されてもよい。１つの実施形態において、本復号化方法は、パーソナルコンピュータ上で実行されるビデオリーダ(video reader)（例えば、ウィンドウズ（登録商標）メディアプレイヤ）アプリケーションによって実行される。本復号化方法は、テレビジョン、ビデオディスクプレーヤ、および他のビデオ復号化およびビューイング装置において具現化されたビデオ復号化ハードウェア、および／または、ソフトウェアによって実行されることができる。従って、説明された具体的な実施形態の様々な特徴の、様々な修正、適合、および組み合わせは、特許請求の範囲に記載されたられた本発明の範囲を逸脱することなく、実施されることができる。
【図面の簡単な説明】
【００５０】
【図１】図１は、新規な一態様による移動通信装置のブロック図である。
【図２】図２は、図１の移動通信装置上で受信されるビデオのストリームの簡略図である。
【図３】図３は、図２のビデオのストリームから再構成されるべき一つのフレームを示す。
【図４】図４は、図３のフレームが、Ｈ．２６４規格に従ってどのように再構成されることができるのかを示す簡略図である  。
【図５】図５は、図１の移動通信装置によって実行される新規な方法を示すフローチャートである。
【図６】図６は、Ｈ．２６４規格に必要なプリデセサマクロブロック関係を図解した図である。
【図７】図７は、マクロブロックのフレーム図である。図７のフレーム中の各マクロブロックについて、図２のビデオのストリームの中に、符号化されたマクロブロック情報部分がある。
【図８】図８から図１０は、プリデセサ表を生成する際のステップを示す。
【図９】図８から図１０は、プリデセサ表を生成する際のステップを示す。
【図１０】図８から図１０は、プリデセサ表を生成する際のステップを示す。
【図１１】図１１は、図８−図１０のステップを実行することから結果として生じるプリデセサ表を示す。
【図１２】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図１３】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図１４】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図１５】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図１６】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図１７】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図１８】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図１９】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図２０】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図２１】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図２２】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図２３】図１２から図２３は、図１の移動通信装置へ図２のストリームとして通信されたビデオのフレームを再構成するために、図５の方法のステップを実行することにより得られた結果を示す。
【図２４】図２４は、マクロブロックＸのイントラ復号化において要求されるかもしれない再構成された値（再構成されているがフィルタにかけられていない値）のストリップを示す。
【図２５】図２５および図２６は、フレーム内で引き続いておこるイントラ復号化において次の使用のために、プレフィルタ処理された情報のバッファへローディングを示す。
【図２６】図２５および図２６は、フレーム内で引き続いておこるイントラ復号化において次の使用のために、プレフィルタ処理された情報のバッファへのローディングを示す。
【図２７】図２７は、ＭＰＥＧ４符号化アルゴリズムのためのプリデセサマクロブロック関係を示す。
【図１】
2009525001.tif 000003
【図２】
2009525001.tif 000004
【図３】
2009525001.tif 000005
【図４】
2009525001.tif 000006
【図５】
2009525001.tif 000007
【図６】
2009525001.tif 000008
【図７】
2009525001.tif 000009
【図８】
2009525001.tif 000010
【図９】
2009525001.tif 000011
【図１０】
2009525001.tif 000012
【図１１】
2009525001.tif 000013
【図１２】
2009525001.tif 000014
【図１３】
2009525001.tif 000015
【図１４】
2009525001.tif 000016
【図１５】
2009525001.tif 000017
【図１６】
2009525001.tif 000018
【図１７】
2009525001.tif 000019
【図１８】
2009525001.tif 000020
【図１９】
2009525001.tif 000021
【図２０】
2009525001.tif 000022
【図２１】
2009525001.tif 000023
【図２２】
2009525001.tif 000024
【図２３】
2009525001.tif 000025
【図２４】
2009525001.tif 000026
【図２５】
2009525001.tif 000027
【図２６】
2009525001.tif 000028
【図２７】
2009525001.tif 000029
【国際調査報告】
2009525001.tif 000030
2009525001.tif 000031
2009525001.tif 000032