(57)【要約】【課題】ストリーミングマルチメディアにおける最適エラー管理のためのデコーダアーキテクチャ。【解決手段】エラー回復において使用されるマルチレイア統合のための方法および装置が開示されている。エラーは、第１層プロトコルに基づいたマルチメディアデータにおいて検出され、そして、マルチメディアデータにおいて検出されたエラーは、第２層プロトコルに基づいて隠蔽される。一態様では、マルチメディアデータにおけるエラーは通信層プロトコルに基づいて検出され、そして、トランスポート層プロトコルに基づいて制御される。制御されたエラーのエラー分布は、そのあと、同期層プロトコルに基づいて決定され、そして、マルチメディアデータにおいて検出されたエラーは、アプリケーション層プロトコルに基づいて隠蔽される。別の態様では、マルチメディアデータ処理のための方法および装置は、スケーラビリティと同様にエラー回復も備える。最後に、開示されたような方法および装置は、符号化されたマルチメディアデータの複数のストリームを受け取り、ストリームの誤り部分上でエラー回復を行ない、複数のストリームからマルチメディアデータを再構成することによって、マルチメディアストリームの処理を可能にする。【選択図】      図２Ｂ
2008537654.tif 000002
【特許請求の範囲】
【請求項１】
エラー回復において使用されるマルチレイア統合のための方法であって、
第１層プロトコルに基づいてマルチメディアデータにおけるエラーを検出することと、
第２層プロトコルに基づいて前記マルチメディアデータにおける前記検出されたエラーを隠蔽することと、
を備える方法。
【請求項２】
前記第１層は通信層を備える、請求項１記載の方法。
【請求項３】
前記通信層は、物理層、ＭＡＣ層およびトランスポート層のうちの１つかまたは組合せを備える、請求項２記載の方法。
【請求項４】
トランスポート層プロトコルに基づいて前記検出されたエラーを制御すること、
を更に備える請求項１記載の方法。
【請求項５】
前記検出されたエラーを制御することは、前記検出されたエラーをローカライズすることを備える、請求項４記載の方法。
【請求項６】
同期層プロトコルに基づいて前記検出されたエラーのエラー分布を決定すること、
を更に備える請求項１記載の方法。
【請求項７】
前記第２層はアプリケーション層を備える、請求項１記載の方法。
【請求項８】
エラー回復において使用されるマルチレイア統合のための装置であって、
第１層プロトコルに基づいてマルチメディアデータにおけるエラーを検出するための手段と、
第２層プロトコルに基づいて前記マルチメディアデータにおける前記検出されたエラーを隠蔽するための手段と、
を備える装置。
【請求項９】
前記第１層は通信層を備える、請求項８記載の装置。
【請求項１０】
前記通信層は、物理層、ＭＡＣ層およびトランスポート層のうちの１つかまたは組合せを備える、請求項９記載の装置。
【請求項１１】
トランスポート層プロトコルに基づいて前記検出されたエラーを制御するための手段、
を更に備える請求項８記載の装置。
【請求項１２】
前記検出されたエラーを制御するための手段は、
前記検出されたエラーをローカライズするための手段を備える、
請求項１１記載の装置。
【請求項１３】
同期層プロトコルに基づいて前記検出されたエラーのエラー分布を決定するための手段、
を更に備える請求項８記載の装置。
【請求項１４】
前記第２層はアプリケーション層を備える、請求項８記載の装置。
【請求項１５】
エラー回復において使用されるマルチレイア統合のための装置であって、
第１層プロトコルに基づいてマルチメディアデータにおけるエラーを検出する検出器と、
第２層プロトコルに基づいて前記マルチメディアデータにおける前記検出されたエラーを隠蔽するコンシーラと、
を備える装置。
【請求項１６】
前記第１層は通信層を備える、請求項１５記載の装置。
【請求項１７】
前記通信層は物理層、ＭＡＣ層およびトランスポート層のうちの１つかまたは組合せを備える、請求項１６記載の装置。
【請求項１８】
トランスポート層プロトコルに基づいて前記検出されたエラーを制御するコントローラ、
を更に備える請求項１５記載の装置。
【請求項１９】
前記コントローラは前記検出されたエラーをローカライズする、請求項１８記載の装置。
【請求項２０】
同期層プロトコルに基づいて前記検出されたエラーのエラー分布を決定するデタミナ、
を備える請求項１５記載の装置。
【請求項２１】
前記第２層はアプリケーション層を備える、請求項１５記載の装置。
【請求項２２】
エラー回復において使用されるマルチレイア統合のためのプロセッサであって、
第１層プロトコルに基づいてマルチメディアデータにおけるエラーを検出し、
第２層プロトコルに基づいて前記マルチメディアデータにおける前記検出されたエラーを隠蔽する、
ように構成された、プロセッサ。
【請求項２３】
前記第１層は通信層を備える、請求項２２記載のプロセッサ。
【請求項２４】
前記通信層は物理層、ＭＡＣ層およびトランスポート層のうちの１つかまたは組合せを備える、請求項２３記載のプロセッサ。
【請求項２５】
トランスポート層プロトコルに基づいて前記検出されたエラーを制御する、
ように更に構成された、請求項２２記載のプロセッサ。
【請求項２６】
前記コントローラは前記検出されたエラーをローカライズする、請求項２５記載のプロセッサ。
【請求項２７】
同期層プロトコルに基づいて前記検出されたエラーのエラー分布を決定する、
ように更に構成された、請求項２２記載のプロセッサ。
【請求項２８】
前記第２層はアプリケーション層を備える、請求項２２記載のプロセッサ。
【請求項２９】
エラー回復において使用されるマルチレイア統合のための方法を具現化するコンピュータ可読媒体であって、前記方法は、
第１層プロトコルに基づいてマルチメディアデータにおけるエラーを検出することと、
第２層プロトコルに基づいて前記マルチメディアデータにおける前記検出されたエラーを隠蔽することと、
備える。
コンピュータ可読媒体
【請求項３０】
前記第１層は通信層を備える、請求項２９記載のコンピュータ可読媒体。
【請求項３１】
前記通信層は物理層、ＭＡＣ層およびトランスポート層のうちの１つかまたは組合せを備える、請求項３０記載のコンピュータ可読媒体。
【請求項３２】
前記方法は、
トランスポート層プロトコルに基づいて前記検出されたエラーを制御すること、
を更に備える、
請求項２９記載のコンピュータ可読媒体。
【請求項３３】
前記検出されたエラーを制御することは、
前記検出されたエラーをローカライズすること、
を更に備える、
請求項３２記載のコンピュータ可読媒体。
【請求項３４】
前記方法は、
同期層プロトコルに基づいて前記検出されたエラーのエラー分布を決定すること、
を更に備える、
請求項２９記載のコンピュータ可読媒体。
【請求項３５】
前記第２層はアプリケーション層を備える、請求項２９記載のコンピュータ可読媒体。
【請求項３６】
エラー回復において使用されるマルチレイア統合のための方法であって、
通信層プロトコルに基づいてマルチメディアデータにおけるエラーを検出することと、
トランスポート層プロトコルに基づいて前記検出されたエラーを制御することと、
同期層プロトコルに基づいて前記制御されたエラーのエラー分布を決定することと、
アプリケーション層プロトコルに基づいて前記マルチメディアデータにおける前記検出されたエラーを隠蔽することと、
を備える方法。
【請求項３７】
エラー回復において使用されるマルチレイア統合のための装置であって、
通信層プロトコルに基づいてマルチメディアデータにおけるエラーを検出するための手段と、
トランスポート層プロトコルに基づいて前記検出されたエラーを制御するための手段と、
同期層プロトコルに基づいて前記制御されたエラーのエラー分布を決定するための手段と、
アプリケーション層プロトコルに基づいてマルチメディアデータにおける前記検出されたエラーを隠蔽するための手段と、
を備える装置。
【請求項３８】
エラー回復において使用されるマルチレイア統合のための装置であって、
通信層プロトコルに基づいてマルチメディアデータにおけるエラーを検出する検出器と、
トランスポート層プロトコルに基づいて前記検出されたエラーを制御するコントローラと、
同期層プロトコルに基づいて前記制御されたエラーのエラー分布を決定するデタミナと、
アプリケーション層プロトコルに基づいて前記マルチメディアデータにおける前記検出されたエラーを隠蔽するコンシーラと、
を備える装置。
【請求項３９】
エラー回復において使用されるマルチレイア統合のためのプロセッサであって、
通信層プロトコルに基づいてマルチメディアデータにおけるエラーを検出し、
トランスポート層プロトコルに基づいて前記検出されたエラーを制御し、
同期層プロトコルに基づいて前記制御されたエラーのエラー分布を決定し、
アプリケーション層プロトコルに基づいて前記マルチメディアデータにおける前記検出されたエラーを隠蔽にする、
ように構成された、プロセッサ。
【請求項４０】
エラー回復において使用されるマルチレイア統合のための方法を具現化するコンピュータ可読媒体であって、前記方法は、
通信層プロトコルに基づいてマルチメディアデータにおけるエラーを検出することと、
トランスポート層プロトコルに基づいて前記検出されたエラーを制御することと、
同期層プロトコルに基づいて前記制御されたエラーのエラー分布を決定することと、
アプリケーション層プロトコルに基づいて前記マルチメディアデータにおける前記検出されたエラーを隠蔽することと、
を備える、
コンピュータ可読媒体。
【請求項４１】
マルチメディアデータ処理において使用される方法であって、
符号化されたマルチメディアデータのエラー回復を行なうことと、
前記符号化されたマルチメディアデータのスケーラビリティをサポートすることと、
を備える方法。
【請求項４２】
前記スケーラビリティは、空間的および時間的スケーラビリティの一方または両方を備える、請求項４１記載の方法。
【請求項４３】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項４１記載の方法。
【請求項４４】
マルチメディアデータ処理において使用される装置であって、
符号化されたマルチメディアデータのエラー回復を行なうための手段と、
前記符号化されたマルチメディアデータのスケーラビリティをサポートするための手段と、
を備える装置。
【請求項４５】
前記スケーラビリティは、空間的および時間的スケーラビリティの一方または両方を備える、請求項４４記載の装置。
【請求項４６】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項４４記載の装置。
【請求項４７】
マルチメディアデータ処理において使用される装置であって、
符号化されたマルチメディアデータのエラー回復を行なうエラー回復コンポーネントと、
前記符号化されたマルチメディアデータのスケーラビリティをサポートするスケーラビリティコンポーネントと、
を備える装置。
【請求項４８】
前記スケーラビリティは、空間的および時間的スケーラビリティの一方または両方を備える、請求項４７記載の装置。
【請求項４９】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項４７記載の装置。
【請求項５０】
マルチメディアデータ処理において使用されるプロセッサであって、
符号化されたマルチメディアデータのエラー回復を行ない、
前記符号化されたマルチメディアデータのスケーラビリティをサポートする、
ように構成されたプロセッサ。
【請求項５１】
前記スケーラビリティは、空間的および時間的スケーラビリティの一方または両方を備える、請求項５０記載のプロセッサ。
【請求項５２】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項５０記載のプロセッサ。
【請求項５３】
マルチメディアデータ処理において使用される方法を具現化するコンピュータ可読媒体であって、前記方法は、
符号化されたマルチメディアデータのエラー回復を行なうことと、
前記符号化されたマルチメディアデータのスケーラビリティをサポートすることと、
を備える、
コンピュータ可読媒体。
【請求項５４】
前記スケーラビリティは、空間的および時間的スケーラビリティの一方または両方を備える、請求項５３記載のコンピュータ可読媒体。
【請求項５５】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項５３記載のコンピュータ可読媒体。
【請求項５６】
マルチメディアストリーム処理において使用される方法であって、
符号化されたマルチメディアデータの複数のストリームを受け取ることと、
ストリームの誤り部分上でエラー回復を行なうことと、
前記複数のストリームからのマルチメディアデータを再構成することと、
を備える方法。
【請求項５７】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項５６記載の方法。
【請求項５８】
マルチメディアストリーム処理において使用される装置であって、
符号化されたマルチメディアデータの複数のストリームを受け取るための手段と、
ストリームの誤り部分上でエラー回復を行なうための手段と、
前記複数のストリームからの前記マルチメディアデータを再構成するための手段と、
を備える装置。
【請求項５９】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項５８記載の装置。
【請求項６０】
マルチメディアストリーム処理において使用される装置であって、
符号化されたマルチメディアデータの複数のストリームを受け取る受信機と、
ストリームの誤り部分上でエラー回復を行なうエラー回復コンポーネントと、
前記複数のストリームからの前記マルチメディアデータを再構成するリコンストラクタと、
を備える装置。
【請求項６１】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項６０記載の装置。
【請求項６２】
マルチメディアストリーム処理において使用されるプロセッサであって、
符号化されたマルチメディアデータの複数のストリームを受け取り、
ストリームの誤り部分上でエラー回復を行ない、
前記複数のストリームからの前記マルチメディアデータを再構成する、
ように構成された、プロセッサ。
【請求項６３】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項６２記載のプロセッサ。
【請求項６４】
マルチメディアストリーム処理において使用される方法を具現化するコンピュータ可読媒体であって、前記方法は、
符号化されたマルチメディアデータの複数のストリームを受け取ることと、
ストリームの誤り部分上でエラー回復を行なうことと、
前記複数のストリームからの前記マルチメディアデータを再構成することと、
を備える、
コンピュータ可読媒体。
【請求項６５】
前記エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備える、請求項６４記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（米国特許法１１９条のもとでの優先権の主張）
本特許出願は、２００５年３月１０日に出願された「ビデオ通信におけるエラー回復のための方法および装置(Method and Apparatus for Error Recovery in Video Communications)」と題される米国特許仮出願第６０／６６０，６８１号、２００５年３月１０日に出願された「ビデオデコーディングのための方法および装置(A Method And Apparatus For Video Decoding)」と題される米国特許仮出願第６０／６６０，９２３号、および、２００５年３月１０日に出願された「デコーダのためのエラー回復の方法(Method Of Error Recovery For A Decoder)」と題される米国特許仮出願第６０／６８０，８６７号、の優先権を主張する、なお、これらのすべては、本譲受人に譲渡され、また、ここに参照することによりここに明示的に組み込まれる。
【０００２】
（分野）
本発明は、ハンドヘルドデバイス上のリアルタイムストリーミングメディアをデコードするための方法および装置に関連する。
【背景技術】
【０００３】
（背景）
マルチメディアサービスに対しての増加する需要と同様に、インターネットおよび無線通信の爆発的な成長および大きな成功により、インターネットおよびモバイル／無線通信チャネル上のストリーミングメディアは、極めて大きい注意を引き寄せている。ヘテロジニアスな(heterogeneous)インターネットプロトコル（ＩＰ）ネットワークにおいては、ビデオは、サーバーによって提供され、１つ以上のクライアントによって流されることができる。ワイヤード接続(wired connections)は、ダイアルアップ、綜合サービスデジタルネットワーク（ＩＳＤＮ）、ケーブル、デジタル加入者線プロトコル（集団的にｘＤＳＬと呼ばれる）、ファイバー、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク他（ＷＡＮ）などを含む。伝送モードは、ユニキャスト(uni-cast)かマルチキャスト(multi-cast)かであることができる。
【０００４】
ヘテロジニアスなＩＰネットワークに似ているのはモバイル／無線通信である。モバイル／無線通信チャネル上でのマルチメディアコンテンツのトランスポートは、これらのチャネルがマルチパスフェージング(multi-path fading)、シャドウイング(shadowing)、相互シンボル干渉(inter-symbol interference)およびノイズ妨害(noise disturbance)によりしばしば極度に損われるので、非常に厳しい(challenging)。移動度や競合するトラフィックなどのいくつかの他の理由もまた、帯域幅変動およびロスを引き起こす。チャネルノイズおよびサービスを受けているユーザの数が、チャネル環境の時間変化プロパティ(time-varying property)を決定する。
【０００５】
ヘテロジニアスなＩＰネットワークおよび移動通信システムの両方におけるサービスのより高い品質およびより高いデータレートの要求は、急速に増大している。然しながら、制限された遅延時間、制限された送信パワー、制限された帯域幅およびマルチパスフェージングのような要因が、実際のシステムによって処理されるデータレートを制限し続ける。マルチメディア通信においては、特にエラーの傾向のある環境においては、送信されたメディアのエラー障害許容力(error resilience)は、たとえ単一のデコードされた値におけるエラーでさえ、時空間的に伝播するデコーディングアーティファクト(decoding artifacts)をもたらすので、サービスの所望の品質を提供することにおいて重要である(critical)。様々なエンコーディング手段が、必要なデータレートを維持する間にエラーを最小化するために使用されてきている、然しながら、これらの技術のすべてが、デコーダ側に到達するエラーに関連する問題に悩んでいた。
【０００６】
ソースエンコーダ(source encoder)の使用を通して、データは圧縮され  −  最少の数のビットを消費することにより最大の情報を伝達し、これらのビットを受け取る際のエラーの与えられた可能性(a given probability)について伝送チャネルの容量を最大限にする傾向があるチャネルエンコーダが後に続くる。
【０００７】
チャンネルコーディング、例えば、リードソロモン符号は、ソース符号化されたデータの堅牢性を改善するために使用される。合同のソース−チャンネルコーディング方法は、様々なレベルの重要度を有するソース符号化されたデータに様々なレベルのエラープロテクションを提供するために、あるいは、パケットを区分し(partitioning)、ドロップする(dropping)ことを通して、利用可能なネットワーク帯域幅への符号化されたビデオデータのレート適用を可能とするために、使用されてきている。これは、共通のトランスポートプロトコルが破損されたデータをソースデコーダに伝えないからである。
【０００８】
可逆的可変長コーディング（例えばＭＰＥＧ−４における）のようなソースコーディング技術が、破損パケットが実際に受け取られるときに逆の順序でパケットをデコードすることによってエラー回復のために使用されてきている。ソースコーディング技術を用いたコーディング効率に妥協があり、それは与えられたビットレートに対しデコードされたビデオの品質に変える。
【０００９】
ハイブリッドコーディング標準規格、例えば、ＭＰＥＧ−Ｉ、ＭＰＥＧ２、ＭＰＥＧ−４（集団的にＭＰＥＧ−ｘと呼ばれる）、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、およびＨ．２６４（集団的にＨ．２６ｘと呼ばれる）などは、デコーダでエラーを処理する主な方法として、ビットストリームにおける再同期ポイント(resynchronization points)を使用する。
【００１０】
最初の破損を超えるデータロス(data loss)を引き起こす可能性のある別の理由は、不正確なコードワードエミュレーション(codeword emulation)に起因する。最初のビットエラーポジションの識別は、ささいなタスクではなく、典型的に、ＭＡＣ層あるいは物理層のコンポーネントの中のビットエラーポジションの識別をサポートする特別の設計なしでは可能ではない。従って、ビットストリーム破損を検出すると、デコーダは、デコーディングを停止しなければならないかもしれない、そして、次の再同期ポイントを見つけるためにビットストリームにおいて、また、かなり大きい量の潜在的に健全なデータを必然的にスキップするプロセスにおいて、前へ進まなければならないかもしれない。オリジナルのものと同じ長さである異なるコードワード、すなわち、本物の(authentic)コードワード、のエミュレーションは、上記に説明されたエベントのシーケンスに関して問題がより少ないように思えるかもしれないが、これは実際にそうではない。この種のエラーが、デコーダの正確なビットストリーム解釈(bitstream interpretation)において失敗をもたらす方法が多くある。例えば、ほとんどの現在のコーデック(codecs)においては、その値がビットストリームの次の部分のシンタックス(syntax)に影響を及ぼすビットストリーム中のオブジェクト(objects)（圧縮関連のパラメータ）がある。従って、そのようなオブジェクトに対する不正確な値は、不正確なビットストリーム解釈をもたらす。
【００１１】
共通のトランスポートプロトコルは、デコーダ（例、ビデオあるいはオーディオデコーダアプリケーション）に破損されたデータを配達しないので、デコーダは、最も一般的な解決であるパケットのドロッピングおよび再同期を持った、ビットエラーを扱う限定された能力を有する。同期ロスおよび不正確なコードワードエミュレーションのような問題に起因する、エラー伝播およびデータロスに至るビットエラーを処理する、改善された方法が必要とされる。
【発明の開示】
【００１２】
［概要］
一態様においては、エラー回復において使用されるマルチレイア統合(multi-layer integration)のための方法および装置が、第１層プロトコルに基づいてマルチメディアデータ(multimedia data)におけるエラーを検出し、第２層プロトコルに基づいてマルチメディアデータにおける検出されたエラーを隠蔽する(conceal)ための、方法あるいは手段を備える。別の態様においては、エラー回復において使用されるマルチレイア統合のための装置は、第１層プロトコルに基づいてマルチメディアデータにおけるエラーを検出する検出器と、第２層プロトコルに基づいてマルチメディアデータにおける検出されたエラーを隠蔽するコンシーラ(concealer)と、を備える。マルチレイア統合のための方法および装置においては、第１層は通信層(communication layer)を含むことができる。通信層は物理層(physical layer)、ＭＡＣ層(MAC layer)およびトランスポート層(transport layer)のうちの１つかまたは組合せを含むことができる。さらに、方法および装置は、トランスポート層プロトコルに基づいて検出されたエラーを制御するための方法あるいは手段を更に備えることができる。検出されたエラーを制御することは、検出されたエラーをローカライズすること(localizing)を含む。方法および装置は、同期層プロトコル(sync layer protocol)に基づいて検出されたエラーのエラー分布(error distribution)を決定するための方法あるいは手段を更に備える。第２層はアプリケーション層を含むことができる。
【００１３】
別の態様においては、エラー回復において使用されるマルチレイア統合のための方法および装置は、通信層プロトコルに基づいてマルチメディアデータにおけるエラーを検出し、トランスポート層プロトコルに基づいて前記検出されたエラーを制御し、同期層プロトコルに基づいて制御されたエラーのエラー分布を決定し、アプリケーション層プロトコルに基づいてマルチメディアデータにおける検出されたエラーを隠蔽するための、方法あるいは手段を備える。さらに別の態様においては、マルチメディアデータ処理において使用される方法および装置は、符号化されたマルチメディアデータのエラー回復(error recovery)を行ない、符号化されたマルチメディアデータのスケーラビリティ(scalability)をサポートするための方法あるいは手段を備える。まだ更に別の態様においては、マルチメディアデータ処理において使用される装置は、符号化されたマルチメディアデータのエラー回復を行なうエラー回復コンポーネントと、符号化されたマルチメディアデータのスケーラビリティをサポートするスケーラビリティコンポーネントとを備える。マルチメディア処理において使用される方法および装置においては、スケーラビリティは、空間的および時間的スケーラビリティ(spatial and temporal scalability)の一方または両方を備えることができる。エラー回復は、時間的エラー隠蔽(temporal error concealment)、空間的エラー隠蔽(spatial error concealment)およびフレームレートアップ変換(frame rate up conversion)のうちの１つかまたは組み合わせかを備えることができる。
【００１４】
更なる態様においては、マルチメディアストリーム処理において使用される方法および装置は、符号化されたマルチメディアデータの複数のストリームを受け取り、ストリームの誤り部分上でエラー回復を行ない、複数のストリームからのマルチメディアデータを再構成するための方法あるいは手段を備える。さらに更なる態様においては、マルチメディアストリーム処理において使用される装置は、符号化されたマルチメディアデータの複数のストリームを受け取る受信機と、ストリームの誤り部分上でエラー回復を行なうエラー回復コンポーネントと、複数のストリームからのマルチメディアデータを再構成するリコンストラクタ(reconstructor)とを備える。マルチメディアストリーム処理において使用される方法および装置では、エラー回復は、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換のうちの１つかまたは組み合わせかを備えることができる。
【００１５】
上記の方法および装置は、方法あるいは装置のオペレーションを実行するように構成されたコンピュータ可読媒体(computer readable medium)及び／又はプロセッサによって実施されることができる、ということに注意されるべきである。
【００１６】
［詳細な説明］
マルチメディアデコーダにおける改善されたエラー回復機能(error recovery capabilities)を提供する方法および装置が説明される。例えば、上層（例、通信層）で、マルチメディアデータストリームにおけるエラーを検出すること、および、アプリケーション層（例、ビデオあるいはオーディオデコーダ）で、検出されたエラー上でエラー回復を行なうこと、などの統合されたエラー回復機能が提供される。一例においては、様々なタイプのエラー回復技術を行なう際に、十分な情報を得た上での決定(informed decisions)を下すことにおいて使用されるためにアプリケーションコンポーネントに破損ビットのフラグを立てている情報(corrupt bit flagging information)を提供する、デコーダアーキテクチャが示される。エラー回復技術は、破損シンボルを、以前にデコードされたビデオ、オーディオ、テキスト、およびグラフィックス情報のようなアプリケーションコンポーネントに利用可能な情報から得られる、推定されたシンボル(estimated symbol)に取り替えるために使用される。以下の説明においては、実施形態の十分な理解を提供するために、特定な詳細が与えられる。然しながら、実施形態はこれらの特定な詳細なしに実行されてもよいことは、当業者によって理解されるだろう。例えば、電気コンポーネントは、不必要な詳細における実施形態を不明瞭にしないようにブロック図中で示されるかもしれない。他のインスタンスにおいては、そのようなコンポーネント、他の構成および技術が、実施形態を更に説明するために詳細に示されるかもしれない。別々のブロックとして示されている電気コンポーネントは、再配列されることができ、かつ／または、1つのコンポーネントに結合されることができる、ということもまた熟練工によって理解される。
【００１７】
いくつかの実施形態は、フローチャート、フローダイアグラム、構造ダイアグラム、あるいはブロック図として示されるプロセスとして説明されることができるということにもまた注意すべきである。フローチャートは連続するプロセスとしてオペレーションを説明するかもしれないが、オペレーションの多くは、並列にあるいは同時に実行されることができ、また、プロセスは繰り返されることができる。更に、オペレーションの順序は並び替えられることができる。プロセスは、そのオペレーションが完了されるときに、終了する。プロセスは、方法、機能、手続き、サブルーチン、サブプログラムなどに対応するかもしれない。プロセスが機能に対応するときは、その終了は、呼出し機能あるいは主機能への機能のリターンに対応する。
【００１８】
図１Ａは、ストリーミングマルチメディアを配信するための通信システムの一例のブロック図である。システム２０は、送信機２２(transmitter)と受信機マルチメディアデコーダ(receiver multimedia decoder)２４とを含んでいる。送信機２２は、ビデオ、オーディオ、グラフィックス、テキスト、および画像を、これらに限定されずに含んでいる様々な形式の圧縮されたマルチメディアデータを含有する。データは、ＭＰＥＧ−ｘおよびＨ．２６ｘ標準規格におけるような圧縮されたビデオおよびオーディオ、ＭＰＥＧ−４  ＡＡＣ、ＭＰ３、ＡＭＲおよびＧ．７２３オーディオあるいは音声圧縮標準規格におけるような圧縮されたオーディオ、あるいは任意の他のタイプのデジタルデータであることができる。
【００１９】
送信機２２は、外部メモリ、インターネット、およびライブビデオ及び／又はオーディオフィード(live video and/or audio feed)を含む様々なソースからデータを得る。送信機２２はまた、ネットワーク上で取得したデータを送信する（Ｔｘ）。ネットワークは、電話、ケーブル、あるいは光ファイバーのような、ワイヤードネットワーク(wired network)２８、あるいは無線ネットワーク２６であることができる。無線通信システムの場合においては、ネットワーク２６は、例えば、符号分割多元接続（ＣＤＭＡまたはＣＤＭＡ２０００）通信システムの一部を備えることができる、あるいは、システムは、周波数分割多元接続（ＦＤＭＡ）システム、直交周波数分割多元接続（ＯＦＤＭＡ）システム、時分割多元接続（ＴＤＭＡ）システム、例えば、ＧＳＭ／ＧＰＲＳ（汎用パケット無線サービス）／ＥＤＧＥ（拡張されたデータＧＳＭ環境）あるいはサービス産業のためのＴＥＴＲＡ（地上波基幹無線）モバイル電話技術など、広帯域符号分割多元接続（ＷＣＤＭＡ）、高データレート（ＩｘＥＶ−ＤＯあるいはＩｘＥＶ−ＤＯのゴールドマルチキャスト(Gold Multicast)）システム、あるいは一般に技術の組合せを使用する任意の無線通信システム、であることができる。
【００２０】
デコーダ２４は、無線ネットワーク２６及び／又はワイヤードネットワーク２８上でデータを受け取るための、無線周波数アンテナあるいはネットワーク接続のような手段を含む。デコーダ２４は、受信データに関連した復調およびデコーディングのタスクの分配のために、プリプロセッサ（例、ＡＲＭの任意のタイプのセントラルプロセッサユニットＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、ソフトウェア、ファームウェア、およびビデオコアのようなハードウェア、の任意の組合せを含んでいる複数のプロセッサを含むことができる。デコーダ２４はまた、復調／デコーディングプロセスの様々なステージにおける受信されたデータおよび中間のデータを保存するためにメモリコンポーネントを含んでいる。いくつかの実施形態においては、ＡＲＭプリプロセッサは、オーディオ、ビデオその他を含む複数のビットストリームをアンパックすること(unpacking)（ヘッダやシグナリングメッセージのようなサイド情報(side information)を取り除くこと）およびデマルチプレクスすること(demultiplexing)を含んでいるそれほど複雑でないタスクを行なう。ＡＲＭプリプロセッサはまた、ビットストリーム構文解析(bitstream parsing)、エラー検出および隠蔽、および可変長エントロピーデコーディング、を行なう。いくつかのそのような実施形態においては、ＤＳＰは、ＶＬＣ（可変長コード）コードワードの拡張、ピクセル係数を空間的に位置特定するビデオデータの逆ジグザグ走査、ＭＰＥＧ−４ビデオ用ピクセル係数の逆ＡＣ／ＤＣ予測（コンテキスト適応エントロピーコーディングによるＨ．２６４の特徴ではない）、およびオーディオデコーディング（例、ＭＰＥＧ−４、ＡＡＣ、ＭＰ３、ＡＭＲあるいはＧ．７２３）を行なう。ビデオコアは、デクワンタイゼーション(dequantization)、逆変換(inverse transformation)、動き補償予測、および非ブロック化(deblocking)（ピクセルブロックエッジ間のエッジアーティファクト(edge artifacts)を減らすフィルタリングの形式）を備えるビデオデコーディングのより計算上複雑なタスクを行なうことができる。１つ以上のエレメントが、通信システム２０に、追加され、再配置され、あるいは組み合わされることができる。ワイヤード通信システムの場合には、ネットワーク２６は、例えば、リアルタイムトランスポートプロトコル（ＲＴＰ）あるいはユニバーサルデータグラムプロトコル（ＵＤＰ）のようなトランスポートプロトコルを備えたインターネットプロトコル（ＩＰ）ベースの通信システムの一部を備えることができる。
【００２１】
図１Ｂは、送信機２２およびデコーダ２４におけるタスクを分割するために使用される多層プロトコルスタック(multi-layer protocol stack)のブロック図である。送信機２２およびデコーダ２４における上層コンポーネント２０５および２１０は、それぞれ複数のアプリケーション、例えば、ビデオあるいはオーディオのエンコーダ及び／又はデコーダなど、を含む。いくつかの実施形態は、同時にデコードされることが予定されている情報の複数のストリームを含むことができる。これらのケースにおいては、複数のストリームの同期タスクは、上層コンポーネント２０５および２１０において行われることもできる。上層コンポーネント２０５は、無線ネットワーク２６及び／又はワイヤードネットワーク２８上で送信されるビットストリームにおいて符号化されたタイミング情報を提供することができる。上層コンポーネント２１０は、複数のストリームの情報を構文解析できるので、関連するアプリケーションがほぼ同じ時にそれらをデコードする。
【００２２】
送信機２２における下層コンポーネント２１５は、エラー障害許容力(error resiliency)のために供給する様々な方式を含むことができる。エラーしがちなチャネル、例えば、無線ネットワーク２６及び／又はワイヤードネットワーク２８などは、デコーダ２４によって受け取られたビットストリームへエラーを導入するかもしれない。下層コンポーネント２１５において提供されるそのようなエラー障害許容力の方式(error resiliency schemes)は、1つ以上のエラー制御コーディング方式(error control coding schemes)、インタリービング方式(interleaving schemes)、および、当業者に知られている他の方式を含んでもよい。デコーダ２２における下層コンポーネント２２０は、エラーの検波および補正を可能にする、対応するエラーデコーディングコンポーネントを含むことができる。無線ネットワーク２６及び／又はワイヤードネットワーク２８上で導入されるいくつかのエラーは、下層コンポーネント２２０によって訂正可能でないかもしれない。訂正可能でないそれらのエラーについては、送信機２２の下層コンポーネント２１５による破損コンポーネントの再伝送を要求する下層コンポーネント２２０のような解決は、いくつかのある状況、例えば、ストリーミングアプリケーションのようなリアルタイムマルチメディア通信においては、適していないかもしれない。いくつかの実施形態においては、下層コンポーネント２１５および２２０は、通信層コンポーネントを備える。１つ以上のエレメントが、図１Ｂの中で示される送信機２２あるいはデコーダ２４に、追加され、再配列され、あるいは組み合わされることができる。
【００２３】
図１Ｃは、送信機２２およびデコーダ２４におけるタスクを分割するために使用される多層プロトコルスタックのより詳細な一例のブロック図である。送信機２２の、上層コンポーネント２０５は、アプリケーション層２０６および同期層２０７のうちの１つ以上において分配される。送信機２２の、下層コンポーネント２１５は、トランスポート層２１６、ストリームあるいはメディアアクセス制御(medium access control)（ＭＡＣ）層２１７、および物理層２１８のうちの１つ以上へ分配される。同様に、デコーダ２４の、上層コンポーネント２１０は、アプリケーション層２１１および同期層２０７のうちの１つ以上において分配される。デコーダ２４の、下層コンポーネント２２０は、トランスポート層２２１、ストリームあるいはメディアアクセス制御（ＭＡＣ）層２２２、および物理層２２３のうちの１つ以上へ分配される。当業者は、これらの層を認識し、また、それらの間の様々なタスクの割り付けに精通しているであろう。上記に論考されたように、送信機２２において提供されるエラー障害許容力を利用する、デコーダデバイス２４の様々な層を統合するアーキテクチャの一例が、今から論考される。１つ以上のエレメントが、図１Ｃにおいて示される送信機２２あるいはデコーダ２４に、追加され、再配列され、あるいは組み合わされることができる。
【００２４】
図２Ａは、ストリーミングマルチメディアをデコードするためのデコーダデバイスアーキテクチャの一例のブロック図である。図２Ｂは、送信機２２を含むマルチレイア統合管理システムのためのプロトコルスタックダイアグラムであり、また、図２Ａのデコーダデバイスアーキテクチャのプロトコルスタックビューである。図２Ａおよび２Ｂを参照すると、マルチメディアデコーダ３０は、物理層コンポーネント３２、ＭＡＣ層コンポーネント３４、トランスポートおよび同期パーサ(Transport and Sync. Parser)（ＴＳＰ）３９、およびアプリケーション層コンポーネント５０を含んでいる。マルチメディアデコーダ３０は、ターボ／リードソロモン連結方式のような連結エラー訂正方式を含んでいるインプットビットストリーム（ＩＮ）を受け取る。物理層コンポーネント３２は、受け取ること、エラー制御デコーディング、例えば、ターボ符号デコーディング、およびＭＡＣ（メディアアクセス制御）層とインタフェースをとることを、これらに限定されないが、含んでいる復調タスクを行うことができる。ＭＡＣ層コンポーネント３４は、エラー制御デコーディング、例えば、リードソロモンエラー検出、エラー訂正、および、訂正できない破損データ例えば１ビット以上のグループのフラッギング(flagging)、を行うことができる。ＭＡＣ層コンポーネント３４は、トランスポートおよび同期パーサコンポーネント(Transport and Sync. Parser component)（ＴＳＰ）３９とインタフェースをとる。
【００２５】
ＴＳＰコンポーネント３９は、トランスポート層Ｄｅ−Ｍｕｘコンポーネント(Transport Layer De-Mux component)３６およびＳｙｎｃ．（同期）層パーサコンポーネント(Sync. (synchronization) Layer Parser component)３８を更に含むことができる。トランスポート層Ｄｅ−Ｍｕｘコンポーネント３６は、ＭＡＣ層コンポーネント３４から渡された、正確なビットと破損ビットの両方、および破損グループのビットにフラグを立てている(flagging)情報を含んでいるビットストリームを受け取ることができる。ビットの破損グループおよび対応するフラッギング情報は、ターボデコーダＣＲＣ障害３３およびリードソロモン障害３５に対応する情報を備える。（あるプロトコルスタック(protocol stacks)においては、トランスポート層Ｄｅ−Ｍｕｘコンポーネント３６はまた、ストリームサブレイヤとしても知られており、ここでは、ＭＡＣサブレイヤとストリームサブレイヤは、両方とも、トランスポート層のサブレイヤである。）トランスポート層Ｄｅ−Ｍｕｘコンポーネント３６は、それが複数のビットストリーム中に受け取るビットストリームを、デマルチプレックスする(demultiplex)（Ｄｅ−Ｍｕｘ）あるいは構文解析することができる。構文解析されたビットストリームは、異なるアプリケーション、例えば、ビデオデコーダ、オーディオデコーダ、および、テキスト、グラフィックスおよび画像のアプリケーションの様々な組合せなど、を対象としたビットストリームを含むことができる。トランスポート層Ｄｅ−Ｍｕｘコンポーネントはまた、例えばビデオビットストリームのような単一のアプリケーションを対象としたビットストリームを、ベース層およびエンハンスメント層のような２以上の別々の層（例えばスケーラブルコーディング(scalable coding)を使って）に構文解析することができる。これらの層は、そのあと、スケーラビリティ(scalability)、例えば、時間的及び／又はＳＮＲスケーラビリティ、を提供するために使用されることができる。スケーラブルコーディングの１つの例は、イントラ符号化された画像(Intra- coded pictures)（Ｉフレームのような）、および異なるインター符号化された画像(inter-coded pictures)（例えば、動き補償予測を使用して導き出されたＢフレームあるいはＰフレームのような）を、ビットストリームにおいて異なる層に分割する。Ｉフレームはベース層において符号化されることができ、Ｐ及び／又はＢフレームはエンハンスメント層において符号化されることができる。スケーラブルコーディングは、動的なチャネルにおいて有用であり、そこでは、スケーラブルビットストリームは、ネットワーク帯域幅の変動に対応する(match)ように適合されることができる。エラーがありがちなチャネルにおいては、スケーラブルコーディングは、ベース層およびエンハンスメント層の同等でないエラープロテクションを通して強健さ(robustness)を加えることができる。よりよいエラープロテクションは、より重要な層に適用されることができる。
【００２６】
Ｓｙｎｃ．（同期）層パーサコンポーネント３８は、時間同期ベース(time- synchronous basis)で互いに関連するサブビットストリームに関してビットストリームの構文解析を更に行なう。マルチメディアビデオビットストリームは、ビデオビットストリーム、オーディオビットストリームおよび字幕(closed captioning)用の関連するテキストを備えたビットストリームに構文解析されることができる。Ｓｙｎｃ．層パーサコンポーネント３８は、時間同期情報(time-synchronization information)と共に関連するデコーダアプリケーションへ構文解析されたビットストリームを送る。これは、関連するオーディオ、ビデオおよびテキストが、適切な時間に表示されプレイされることを可能にする。
【００２７】
上記に論考された構文解析に加えて、トランスポート層Ｄｅ−Ｍｕｘコンポーネント３６は、それがＭＡＣ層コンポーネント３４および物理層３２から受け取る破損フラッギング情報（例、ＣＲＣ障害情報３３およびリードソロモン障害情報３５）を構文解析し、Ｓｙｎｃ．層パーサコンポーネント３８及び／又は適切なアプリケーション層プロセス（例、ビデオでコーダ、あるいはオーディオでコーダ）に送ることができる。Ｓｙｎｃ．層パーサコンポーネント３８は、破損フラッギング情報をエラー分布情報(error distribution information)３７の形式で送ることができる。Ｓｙｎｃ．層パーサコンポーネント３８はまた、推奨されるエラー制御戦略情報(error control strategy information)４１も送ることができる。アプリケーション層プロセスは、そのあと、エラー処理のために、破損フラッギング情報３７およびコントロール戦略情報４１を使用することができる。
【００２８】
アプリケーション層コンポーネント５０は、例えば、エラー回復コンポーネント(Error Recovery component)４０、スケーラビリティコンポーネント(Scalability Component)４２、フレームレートアップ変換(Frame Rate Up Conversion)（ＦＲＵＣ）コンポーネント４４、コアアプリケーションデコーディングコンポーネント(Core Application Decoding component)４６および後処理コンポーネント(Post Processing Component)４８のような、１つ以上のコンポーネントを含むことができる。アプリケーション層コンポーネント５０は、破損データを操作し、そうすることによってアプリケーションデコーディングコンポーネント４６を用いたより高い品質のデコーディングを提供するために、エラー回復、スケーラビリティおよびＦＲＵＣコンポーネントをどのように利用するかに関して決定するため、送られた破損フラッギング情報３７および制御戦略情報４１を利用する。例えば、いくつかのメディア(some media)が、重要な情報を含んでいる1つの層の中で受け取られ、残りのメディアが他の層の中で受け取られる、時間的スケーラビリティのケースにおいては、もし第２層が受け取られなかったか、あるいは失われたか、あるいは破損された場合は、ＦＲＵＣは、欠落しているメディアを再構成(reconstruct)するために使用されることができる。デコーディングの後、後処理コンポーネント４８は、ビデオディスプレイまたはスピーカ上でそれぞれビデオおよびオーディオ出力（ＯＵＴ）の表示、あるいは、プレイ(playing)あるいはレンダーリング(rendering)をイネーブルにするために、何らかの必要な特定のハードウェア修正(hardware specific modifications)を行う。後処理コンポーネント４８はまた、メディアがレンダーされる(rendered)あるいは提供される前に、拡張(enhancement)または復元(restoration)のオペレーションも行なうことができる。
【００２９】
コアアプリケーションデコーディングコンポーネント４６は、テキストおよびグラフィックスのアプリケーションと同様にビデオデコーダ（単数又は複数）、オーディオデコーダ（単数又は複数）を含むことができる。コアアプリケーションコンポーネント４６でのデコーディングより前に、あるいはその間に、様々なアプリケーションビットストリームのエラー回復、スケーラビリティおよびＦＲＵＣ処理を行なうことによって、低品質ビットストリーム（エラーに起因する、低品質で符号化されたものあるいは低品質で受け取られたもの）の品質を改善するためにエンハンスメント(enhancements)が行われることができる。例えば、コンポーネント４０、４２および４４は、標準規格ベースライン準拠Ｈ．２６４のビデオビットストリーム（ベースラインプロファイルは、ロウパワーデバイス用に設計された、非常に単純なプロファイルである）にエンハンスメントを示す(offer)ことができ、また、ストリームビデオ用のスケーラビリティ、獲得およびエラー障害許容力の要件を満たすために必要とされる、Ｂフレームおよびスライスデータ区割りのような、Ｈ．２６４の他のプロファイルからのある特徴を提供することができる。マルチメディアデコーダ３０のコンポーネントを利用するプロセスの詳細は、以下に提供される。１つ以上のエレメントが、図２Ａおよび２Ｂにおいて示される送信機２２あるいはデコーダ３０に、追加され、再配列され、あるいは組み合わされることができる。
【００３０】
さて、エラー検出およびエラー訂正の簡単な論考が提供される。エラー検出および訂正の方式の１つの例は、内部（チャネル）コードおよび外部（チャネル）コードの両方を含んでいる連結コードを使用する。連結チャンネルコードは、物理層におけるターボ（内部）符号と、トランスポート／ＭＡＣ層の中に位置するリードソロモン（外部）消去訂正符号とから成っている(consist of)。図３は、連結されたリードソロモン消去およびターボコーディングについて組織化されたマルチメディアシンボルの一例を図示する。エンコーディングサイド(encoding side)に関しては、情報源からの出力シンボルと、エンコーダからの２進コードワード出力は、バイト１０２の中にブロックされる(blocked)。各バイト１０２は、ＧＦ（２５６）上の外部（Ｎ，Ｋ）リードソロモン（ＲＳ）符号の目的で、「ガロア域(Galois Field)（２５６）」として知られる有限フィールド(finite field)のシンボルと考えられる。ＮとＫは、それぞれ、全ＲＳコードワード１０４のサイズと、システマテック部分を保持するそのソースデータ１０６のサイズとを、シンボルの数で示す。従って、Ｎ―マイナスＫは、各コードワード１０４に含まれるパリティシンボル１０８の数を与える。（Ｎ，Ｋ）ＲＳ符号は、ＮマイナスＫ消去を訂正することができる。
【００３１】
トップのＫ行１０６は、本質的に、情報源から出力されるシンボルを保持し、これらのシンボルは、行−ファースト(rows-first)か列−ファースト(columns-first)の何れかの方法でＫ行へとスキャンされることができる。列−ファーストのスキャンによって達成されたインタリービング(interleaving)は、与えられたターボ情報パケット行１１２が破損しているとき、著しく短いグループの破損ビットを結果としてもたらす。ターボ情報パケット消去に起因する、破損ビットのグループは、行ファーストのスキャンニングの場合の各々（Ｌ−１）バイトとは対照的に、列ファーストのスキャンニングの場合は、長さで各々１バイトであり得る。デコーダでは、これらの破損グループのビットのフラッギングは、下記に論考されるように、これらのビットグループの（ビットストリームにおける）サイズおよび位置を識別するのを必要とすることができる。ソースデータ配置（source data placement）のこの最初のステップの後に、（Ｋバイトの）Ｌ列１０４の各々は、Ｎ−Ｋパリティバイトを加えることによって、Ｎバイトに符号化されたＲＳであり、従って図３における行Ｋ＋ｌ,・・・，Ｎ１０８が生成される。ソースデータ１０６から成る(consisting of)トップのＫ行は、ＲＳ情報ブロックと呼ばれ、そして、Ｎ行の全セットはＲＳ符号化ブロック(RS encoded block)あるいは単にコードブロック(code block)１１０と呼ばれる。
【００３２】
各行１１２は、ターボコーダ(turbo coder)の正確なオペレーションのために必要とされる、ＣＲＣ（周期的冗長チェック）チェックサム(checksum)およびトレイリングビット(trailing bits)がアペンドされる(appended)。各行１１２にチェックサムをアペンドすることによって、ターボデコーディングの後にそれぞれのチェックサムを満たさないそれらの行は、消去されたと宣言されることができる。各コードブロック１１０は、一度に１つの行１１２がターボコーダへ入力される、従って、各行はターボ情報パケットと呼ばれる。
【００３３】
ターボデコーディングプロセスは、リードソロモンデコーディングプロセスに、厳しい決定のデータ(hard-decision data)を提示し、それは、残差(residual error)のレートを更に減らす。消去について成功裡に訂正する能力は、コードブロック内の消去の総数、および、ＲＳコードワードにつき使用されるパリティシンボルの数（ＮマイナスＫ）に、依存する。
【００３４】
図２のマルチメディアデコーダ３０を対象としたチャンネルコーディング設計において、もしリードソロモン（ＲＳ）コードブロックが訂正容量を超えた消去を有する場合は、対応するＲＳ情報ブロック（図３）は、Ｋターボ情報パケット１１２（図３）のどれが破損されているかの共同の通知フラッギング(joint notification flagging)と共に、トランスポート層、同期層、および最後にアプリケーション層の中のコンポーネントに渡されることができる。ＧＦ（２５６）上の外部（Ｎ，Ｋ）ＲＳ符号のシステマテック構造(systematic structure)は、正確に受け取られる（破損していない）ターボ情報パケットの直接的な利用を可能とする。
【００３５】
図４は、ストリーミングマルチメディアをデコードする方法の一例のフローダイアグラムである。雑音のある変調されたデータ（ＩＮ）が、受け取られ、そして、デコーディングプロセス６０に入力され、復調される６２。データは、ワイヤードあるいは無線のネットワーク、例えば、図1における無線ネットワーク２６やワイヤードネットワーク２８など、を横切って受け取られることができる。図２の物理層コンポーネント３２は、ステップ６２で、受信された雑音のあるデータを復調する動作を実行する。復調されたデータは、そのあと、エラーが検出され訂正されることができる６４ところに伝えられる。図２の物理層コンポーネント３２は、６４のターボデコーディングの動作を実行でき、一方、図２のＭＡＣ層コンポーネント３４は、６４のリードソロモンエラー訂正の動作を実行できる。
【００３６】
ターボおよびリードソロモンデコーディングが、訂正可能なすべてのエラーを検出し訂正した６４後、ターボ情報パケット及び／又は破損バイトは、例えば、フラッギングにより、例えば識別される６６。構文解析６８のためにビットストリームを伝える前に、パリティ行１０８（図３）と同様に各ターボ情報パケット中のＣＲＣチェックサムおよびトレイリングビットも、廃棄される。正確に受け取られたデータ、不正確に受け取られたが訂正されたデータ、および、フラグが立てられた破損データ(flagged corrupt data)は、破損データを識別するフラッギング情報と共に、すべて、ビットストリーム構文解析６８のために伝えられる。図２の物理層コンポーネント３２及び／又はＭＡＣ層コンポーネント３４は、破損データを（例えば、フラッギングによって）識別する動作６６を行なうことができる。
【００３７】
上記に論考されたように、トランスポートＤｅ−Ｍｕｘコンポーネント３６およびＳｙｎｃ．層パーサコンポーネント３８は、該ビットストリームを、複数のアプリケーション層プロセスを対象とした複数のビットストリームに構文解析する６８。図４の中で示される例において、ビットストリームは、ビデオビットストリーム７０、オーディオビットストリーム７２およびテキスト及び／又はグラフィックスビットストリーム７４に構文解析される６８。各両ストリーム７０、７２および７４は、個々のビットストリーム内のビットの破損グループを識別するデータを含むことができる。更に個々のビットストリームが時間同期(time synchronous)であるべきときは、ビットストリームはタイミング情報を含むことができる。
【００３８】
個々のビットストリームが構文解析された後、破損ビットが取り替えられる(replaced)７８、８２および８６ところのアプリケーション層で、エラー回復あるいは隠蔽のいくつかの技術のうちの１つを利用して、エラー処理(error handling)がおこなわれる。図２におけるアプリケーション層コンポーネント５０のエラー回復コンポーネント４０、スケーラビリティコンポーネント４２およびＦＲＵＣコンポーネント４４は、取り替えることの動作７８、８２および８６を実行できる。破損シンボルが交換された後、個々のビデオ、オーディオおよびテキスト／グラフィックスのビットストリームが、夫々、デコードされることができる８０、８４および８８。図２中のアプリケーション層コンポーネント５０のコアアプリケーションコンポーネント４６は、デコーディングを実行できる８０、８４および８８。図２中のアプリケーション層コンポーネント５０のコアアプリケーションコンポーネント４６はまた、フラグが立てられていた可能性がある破損ビットを、下層コンポーネントと取り替えることもできる７８、８２及び／又は８６。図４において示されるプロセス６０に対し、１つ以上のエレメントが、追加され、再配列され、あるいは組み合わされることができる。
【００３９】
図４において示されるような、破損データのフラッギングによって、破損ビットを識別すること６６の一例が、今より、より詳細に論考される。図５は、ビデオデータ用のターボ情報パケット構造を図示する。ブロック１４０は、図３の中で図示されたＲＳ情報ブロックを構成するターボ情報パケット１０６のＫ行のような、１セットのターボ情報パケットを表わす。ビデオのフレームは、符号化されるべきデータの、１つよりも多いターボ情報パケットを要求できる。例えば、第１のフレーム、Ｆｌ、は、情報ブロック１４８Ａにおける行１４２Ａにおいて始められる。フレームＦｌにおける残存するデータは、行１４２Ｂ、１４２Ｃ、１４２Ｄおよび行１４２Ｅの第1の部分に位置する。行１４２Ａはまた、同期ヘッダヘッダ（ＳＨ）１４６Ａを含んでおり、それは、ストリーム識別、同期時間、フレーム識別（ベース層およびエンハンスメント層の場合はフレーム番号(frame number)、そして多分層番号(possibly layer number)）などの情報、および他の情報、を含む。同期ヘッダ１４６Ａは、同期層パーサ（図２における３８を参照）に対し、フレームＦｌを表わす次の情報ブロックに含まれるデータをどこで(どのアプリケーションで)送るのかを識別するように機能する。上記で論考したように、各行の最後にＣＲＣチェックサムがあり、それは、消去された（破損された）パケットを識別するためにリードソロモンデコーディングに関連して使用される。
【００４０】
各ターボ情報パケット行の初めには、トランスポート層ヘッダ（ＴＨ）１４４がある。
【００４１】
各ＴＨ１４４は、ラスト＿フラッグとオフセット＿ポインタとを含んでいる。破損ターボ情報パケットのフラッギングは、図４の状態６６で実行され、オフセット＿ポインタ値自体によって行われることができる。オフセット＿ポインタを誤用の値(illegitimate value)に設定することは、パケットが破損していることを示す(signify)ことができる。あるいは、エラー＿フラッグフィールドは、ＴＨの中で使用されてもよい。フラッギングは、対応するＴＨにおける設定（エラー＿フラッグ＝１）によって達成されることができる。例えば、もし行１４２Ｃが破損している場合、そのときは、行１４２ＣのＴＨは１に等しく設定されることができる。ラスト＿フラッグは、現在の行がフレームの最後の行であることを（例えばそれを１に等しく設定することにより）示すために使用され、そしてもしそれが最後の行である場合は、そのときは、オフセット＿ポインタは、ターボ情報パケット行の中のどこで次のフレームが始まるのかを示すために使用される（バイトの数で）。例えば、行１４２Ｅにおいて、ＴＨ１４４Ｂは（ラスト＿フラッグ＝１）を持つことができ、そして、オフセット＿ポインタは、ＴＨ１４４Ｃの開始（フレームＦ３の開始）の前の行に含まれていたバイトの数に等しくできる。同期ヘッダ１４６Ｂは、上記に論考されたように、フレーム＿ＩＤおよびビットストリームを示すデータを含むことができる。情報ブロック１４８Ｃは、フレームＦ３を表わすビデオデータを含む。もし行１４２Ｅが破損されていると決定される場合、そのときは、デコーダは、フレームＦｌがどこで終了し、フレームＦ３がどこで始まるかを、決定することができないかもしれない。
【００４２】
上記に論考されたようにトランスポートヘッダ中にエラー＿フラッグを含んでいることに加えて（あるいはその代わりに）、データテーブル(data table)が構成され、各ビデオフレームについて表１にリストされた情報と共にアプリケーション層へ送られることができるであろう。
【表１】
2008537654.tif 000003
【００４３】
表１に似た、他のビットストリームエラーテーブルが構成されることができる。トランスポートヘッダ及び／又は表１のようなエラーテーブルに含まれるエラーフラッギング情報は、図４においてそれぞれ、構文解析されたビットストリーム７０、７２および７４中の破損シンボルを識別し、ステップ７８、８２および８６でそれら取り替えるために、図２のコンポーネント４０、４２および４４のような、アプリケーション層コンポーネントによって利用されることができる。上記に論考されたように、ＲＳコーディングからの消去パケットは、廃棄されずに、しかし、ビデオデコーダのようなアプリケーション層まで処理される。これは、全パレット、ビデオパケットの場合は潜在的に長さで１２２以上のバイト、が失われるのを防ぐ。
【００４４】
破損シンボルを取り替える動作、図４中のステップ７８、８２および８６、は２つの主な形態、エラー訂正とエラー隠蔽、を引き受けることができる。ビットストリームレベルエラー訂正および隠蔽オペレーションは、消去とバーストエラーに関して実行される。（バイトエラーに起因する）デコーディングエラーは、可能な程度まで、ＭＡＰ（帰納的最大確率(Maximum a Posteriori Probability）基準を使用して訂正される。訂正することができないエラーは、空間的及び／又は時間的情報を使用して、隣接するマクロブロックから隠蔽される（マクロブロックは、画像圧縮標準規格中で一般に動作する１６ｘ１６ピクセル領域であるが、８ｘ８、８ｘ１６などのような、より小さいサブマクロブロックもまた、使用されることができるであろう）。時間的隠蔽が、例えば、画像が１つよりも多いフレームにわたって静止のとき、使用されることができる。もし、隠蔽されている破損マクロブロックが、前のフレームにおいて比較的コンスタントのままでいた領域にある場合は、それは破損フレームの中にある可能性があり、そして、過去のフレーム領域が、破損領域のための推定値(an estimate)として使用されることができるであろう。空間的隠蔽は、同じフレーム内の隣接するマクロブロック上で存続するエッジ(edges)あるいはオブジェクト(objects)を利用できる。
【００４５】
上記に論考されたように、同じビットストリームを表わしている、符号化されたデータの複数の層が、受け取られることができる。該層は、ベース層と１つ以上のエンハンスメント層を含むことができ、そこでは、エンハンスメント層（単数又は複数）は、（双方向性の予測Ｂフレームのような）ベース層においては利用可能でない特別のフレームを提供することができる、あるいは、それらは、ベース層ピクセル係数(pixel coefficients)に、より高い品質の差異がある改善(higher quality differential refinements)を供給することができる。ベース層係数への差異ある改善のケースにおいては、もしベース層が破損される場合、そのときは、エンハンスメント層は、ベース層ピクセル値に基づいてそれが導き出されたので、役に立たない可能性がある。したがって、エンハンスメント層は、もしベース層データが破損されている場合は、デコーディングから省かれることができる。このプロセスは、選択的デコーディングと呼ばれ、低いパワーシナリオ(low power scenarios)の下で使用されることもできる。例えば、デコーダにホストとして動作するデバイスが、低いパワーモード上で実行している、あるいは、低いバッテリで実行しているとき、ベース層のみが、エンハンスメント層を省略してデコードされることができ、したがって、計算サイクルをそしてさらにはパワー消費を節約する。空間的及び／又は時間的隠蔽技術は、結合されたベースプラスエンハンスメント層データ(combined base plus enhancement layer data)を取り替えることができる。
【００４６】
エンハンスメント層（時々、低い優先順位層として扱われる）は、ベース層（あるいは高い優先順位層）よりも低いパワーで送信されることができる。これは、ベース層上のエンハンスメント層におけるエラーの確率を増加させる。従って、受け取られたベース層が高い割合(percentage)のエラーを含んでいるときは、エンハンスメント層は潜在的に除かれる(dropped)ことができる。
【００４７】
双方向性の予測フレーム（Ｂフレーム）は、前のフレームと続いて起こる動き補償予測(motion compensated prediction)を使用するフレームの両方から予測される。Ｂフレームは、非常に高い圧縮比を提示し(offer)、また、帯域幅を節約するためには非常に望ましい。Ｂフレームはまた、それらの時間的スケーラビリティ特性のために望ましい。標準規格準拠Ｂフレームは、他のどんなフレームの予測については使用されない、そして、この理由のために、それらは、他のフレームに悪影響を及ぼすことなく除かれることができる。Ｂフレームはまた、それらが依存するフレームにおけるエラーに起因するエラー伝播の影響をより受けやすい(susceptible)。これらの理由のため、Ｂフレームは、エンハンスメント（あるいは低い優先順位）層において搬送される可能性が非常に高い。もしエンハンスメント層がより低いパワーで送信される場合、そのときは、Ｂフレームは、エラーの影響をさらにより受けやすい。
【００４８】
もしＢフレーム（あるいは任意の他のタイプのフレーム）が完全に破損されているか、あるいは、時間的または空間的なエラー隠蔽を実行できなくする閾値より上のエラーパーセンテージ(error percentage above a threshold)を有する場合は、フレームレートアップ変換(Frame Rate Up Conversion)（図２のＦＲＵＣコンポーネント４４を参照）が利用されることができる。ＦＲＵＣは、失われたフレームを再生成するために使用される。ＦＲＵＣはまた、パワー節約のような理由でデコーディングからスキップされたフレームを再生成するために使用されることもできる。ＦＲＵＣ技術は、動きベクトルおよびピクセルの値を補間する(interpolate)ために、前のフレームおよび続いて起こるフレームから動きベクトルおよびピクセル情報を利用する。正確なＦＲＵＣ技術は、この論考の範囲を超えている。ＦＲＵＣ技術は、デコーダのみ(decoder-only)およびエンコーダ支援(encoder-assisted)の形態を含んでいる。デコーダのみのＦＲＵＣは、どんな他の情報もなしに、フレームデータの疑似補間(pseudo- interpolation)実行する。エンコーダ支援のＦＲＵＣは、Ｈ．２６４の補足エンハンスメント情報(Supplemental Enhancement Information)（ＳＥＩ）メッセージ、あるいは、ＭＰＥＧ−２のユーザ＿データメッセージにおいて送信される、サイド情報(side information)を利用する。
【００４９】
図６は、マルチメディア受信機、例えば、図１の中で示される受信機２４、の一部であることができるコンポーネントのシステムの一例のブロック図を示す。システム６００は、エラー回復において使用されるマルチレイア統合システムである。図７は、システム６００によって使用されることができるエラー回復のプロセスのフローチャートを示す。図６および７を参照すると、プロセス７００は、マルチメディアデータの１つ以上のストリームを受け取る７０５。データストリームは、ビデオ、オーディオ、及び／又は、字幕テキストなどを、を含むことができる。受信された１つ以上のストリームは、符号化されたデータであり得る。符号化されたデータは、変形されたデータ(transformed data)、量子化されたデータ、圧縮されたデータあるいはそれらの組合せ、であり得る。図１Ａにおける受信機２４のような、受け取る手段(receiving means)は、１つ以上のストリームを受け取る７０５ことができる。マルチメディアの複数のストリームを受け取ることに加えて、各受信されたストリームは、複数の層、例えば、ベース層およびエンハンスメント層、を備えることができる。受信機２４は、無線またはワイヤードの受信機、あるいは組合せであることができる。
【００５０】
ビットストリーム中に残っているエラーは、検出される７１０。検出されたエラーは、下層エラー訂正の後に残っているエラーを備えることができ、そして、検波プロトコルが、チャネル上で、例えば、図１の無線チャネル２６またはワイヤードチャネル２８上で、伝送によってもたらされたエラーのうちのいくつかを訂正している。上記に論考されたように、必ずしも全てのエラーが訂正可能だとは限らず、また、下層プロトコルのうちのどれでも、破損データ、及び／又は、エラーを含んでいるデータのグループを、マークすることができる。エラーを検出する７１０ために使用される下層プロトコルは、上記に論考されたように、通信層の中でインプリメントされる(implemented)ことができる。通信層は、物理層、ＭＡＣ層（あるいはストリーム層）、あるいはトランスポート層、のうちの１つあるいは組合せ、あるいはそれらの組合せ、であることができる。図６におけるエラー検出器６０５のような検出器手段は、エラー検出を実行する７１０ことができる。エラー検出器６０５は、当業者に知られている様々な検波方式のうちのいずれか、例えば、上記に論考されたようなリードソロモン及び／又はターボ符号方式を使用することができる。エラー検出は、ターボデコーダ中のＣＲＣ障害のためであり得る。エラー検出は、リードソロモンデコーダの障害のためであり得る。
【００５１】
検出されたエラーはいくつかの方法による制御される７１５ことができる。制御７１５は、上記に論考されたように、破損データのマーキング（あるいはフラッギング）を備えることができる。コントロール７１５は、検出されたエラーを含んでいる、データのグループ、例えば、パケット、ブロック、スライス、フレーム、マクロブロック、サブマクロブロック、を識別することによって、エラーをローカライズすること(localizing)を備えることができる。制御７１５、はトランスポート層プロトコルに基づくことができる。そのようなプロトコルは、上層による使用のためのトランスポート層ヘッダの中の１ビット以上を符号化することにより、残っているエラーをマークすることができる（図１Ｂおよび１Ｃを参照）。上層は、１つ以上の破損トランスポート層パケットから構成される上層パケットを、更に識別し、且つ／又は、ローカライズする(localize)ために、トランスポート層ヘッダエラーインジケータを使用することができ、そうすることによって、更に、上層ビットストリームにおけるエラーをローカライズする。図６におけるエラーコントローラ６１０のような制御手段は、エラー制御タスク(error control tasks)を行なうことができる。
【００５２】
エラー分布(error distribution)が決定される７２０。一態様においては、エラー分布は、同期層プロトコルに基づいて決定される。受け取られた７０５、１つ以上のビットストリームは、同期層で構文解析される(parsed)ことができる。もし同期層が、より低い、例えば、通信層の１つから、破損データをマークしている情報を受け取る場合は、それは、どのビットストリームのどの部分が破損されているかを識別することができる。そのような情報を持つことは、同期層プロトコルが、上層（例、アプリケーション層）のエラー隠蔽及び／又はエラー回復戦略(error recovery strategies)を計画するのを可能にすることができる。異なる戦略が、破損データのサイズに応じて適用されることができる。誤りがあるとマークされ得る、トランスポート層パケットは、それらがどのビットストリームの部分であるかに応じて、様々なアプリケーション層コンポーネントに送られるべき同期層パケットに、結合されることができる。トランスポート層パケットは、固定長であることができ、また、同期層パケットは、可変長であることができる。同期層は、可変長パケットのどの部分が破損トランスポート層パケットを含むのかを識別するデータを挿入することにより、エラー分布を識別することができる。エラー制御７１５情報を使用することに加えて、同期層プロトコルは、更に、エラー検出方法を含むことができる。これらのエラー検出方法は、同期層パケットのＣＲＣをチェックすることを含むことができる。決定されたエラー分布は、構文解析されたデータパケットにエラーマーキングを挿入することにより、アプリケーション層コンポーネントに更に伝えられる(communicated)ことができる。エラー分布デタミナ(error distribution determiner)６１５のような決定する手段(determining means)は、エラー分布を決定する７２０ことができる。
【００５３】
エラー回復は、１つ以上の符号化されたマルチメディアデータストリームの部分上で実行される７２５ことができる。エラー回復は、アプリケーション層プロトコルに基づくことができる。アプリケーション層コンポーネントは、エラー回復を実行することができる。アプリケーション層コンポーネントは、上記に論考されたように、同期層から受け取られた情報に基づいて、どのタイプのエラー回復を使用するのかを決定することができる。エラー回復は、他の方法と同様に、上記に論考されたように、時間的エラー隠蔽、空間的エラー隠蔽およびフレームレートアップ変換（ＦＲＵＣ）のうちの１つまたは組合せを、備えることができる。１つ以上のマルチメディアデータストリームにおける検出されたエラーを隠蔽することは、アプリケーション層プロトコルに基づくことができる。エラー回復はまた、１つ以上のデータストリームのスケーラビリティをサポートすることができる。スケーラビリティは、上記に論考されたように、空間的または時間的スケーラビリティの１つまたは両方を含むことができる。図２Ａのエラー回復コンポーネント４０のようなエラー回復手段は、エラー回復７２５を実行することができる。エラーコンシーラ(error concealer)６２０のようなエラーコンシーラ手段(error concealer means)は、エラー隠蔽(error concealment)を実行することができる。図２Ａおよび図６のスケーラビリティコンポーネント４２および６２０のような、スケーラビリティ手段は、エラー回復７２５を行なう際にスケーラビリティをサポートすることができる。
【００５４】
プロセス７００は、１つ以上のビットストリームの再構成７３０を含むことができる。再構成７３０は、正確に受け取られたデータと隠蔽にされたデータを結合することを備えることができる。再構成は、フレームにおけるエラーの量が閾値を超える場合に、フレームレート（時間的スケーラビリティの形態(form)）を減らすことを含むことができる。再構成は、エンハンスメント層（ＳＮＲスケーラビリティの形態）をデコードしないか、隠蔽するか、訂正するかを選択することを備えることができる。アプリケーション層プロトコルは、再構成７３０のためのベース(basis)であり得る。データストリームリコンストラクタ(data stream reconstructor)６３０のような再構成手段は、再構成７２５を実行することができる。１つ以上のエレメントが。システム６００に、追加され、再配列され、あるいは組み合わされることができる。１つ以上のエレメントが、プロセス７００に、追加され、再配列され、あるいは組み合わされることができる。
【００５５】
上記に説明された方法および装置の例は、次のものを含む。
【００５６】
ビットストリームを受け取ること(receiving)と、受け取られたビットストリームのエラー制御デコーディングを行なうこと(performing error control decoding)と、なおここでは、エラー制御デコーディングは、訂正されていない破損ビットを識別することを備えている、識別された破損ビットを含んでいるエラー制御デコードされたビットストリームをデコーダに渡すこと(passing)と、識別されたビットのうちの少なくとも１つを取り替えること(replacing)と、取り替えられたビットを含んでいる、エラー制御デコードされたビットストリームをデコードすること(decoding)と、を含む、マルチメディアデータをデコードする方法。一態様においては、方法は更に、エラー制御デコードされたビットストリームを１つ以上のシンボルに構文解析することと、破損ビットを含むどんなシンボルも破損されていると識別されるように、破損ビットを識別する情報を構文解析することと、を含む。別の態様においては、方法は更に、破損ビットを識別する構文解析された情報を含んでいるエラーテーブルを構成することを含み、ここでは、エラーテーブルは、識別されたビットをビデオフレームのシーケンスにおける位置へマッピングする(mapping)情報を含んでいる。さらに別の態様においては、方法は更に、エラー制御符号化されたビットストリームを、第１の構文解析されたビットストリームおよび第２の構文解析されたビットストリームに構文解析することを含み、ここでは、第１の構文解析されたビットストリームはベース層ビットストリームであり、第２の構文解析されたビットストリームはエンハンスメント層ビットストリームである。
【００５７】
ビットストリームを受け取ることと、受けとられたビットストリームのエラー制御デコーディングを行なうことと、なおここでは、エラー制御デコーディングは、訂正されていない破損ビットを識別することを備えている、識別された破損ビットを含んでいるエラー制御デコードされたビットストリームをデコーダに渡すことと、識別されたビットの少なくとも１つを、第１のフレームと第２のフレームとの間でフレームレートアップ変換を行なうことによって、置き換えることと、エラー制御デコードされたビットストリームをデコードすることと、を含む、マルチメディアデータをデコードする方法。
【００５８】
当業者は、情報および信号は様々な異なる技術および技法のうちの任意のものを使用して表わされることができることを、理解するだろう。例えば、上記説明全体を通して参照され得るデータ、インストラクション、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光学粒子、またはそれらの任意の組み合わせ、によって表されることが出来る。
【００５９】
当業者は、ここに開示された例に関連して説明された、様々な説明のための、論理ブロック、モジュール、およびアルゴリズムステップは、電子的ハードウェア、ファームウェア、コンピュータソフトウェア、ミドルウェア、マイクロコード、あるいはそれらの組合せとしてインプリメントされることができることを、更に認識するであろう。ハードウェアおよびソフトウェアのこの互換性を明確に説明するために、様々な説明のための、コンポーネント、ブロック、モジュール、回路、およびステップが、一般に、それらの機能の観点から上記に説明されている。そのような機能が、ハードウェアとしてあるいはソフトウェアとしてインプリメントされるかどうかは、特定のアプリケーションと、全体のシステムに課される設計制約に依存する。熟練者は、各特定のアプリケーションに対し、様々な方法で、説明された機能をインプリメントするかもしれないが、そのようなインプリメンテーションの決定は、開示された方法の範囲からの逸脱を生じさせるものと解釈されるべきではない。
【００６０】
ここに開示された例に関連して記述された様々な説明のための論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいは他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいはここに説明された機能を実行するように設計されたそれらの任意の組み合わせ、を用いてインプリメントされるあるいは実行されることができる。汎用プロセッサは、マイクロプロセッサであってもよいが、別の方法では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、あるいは状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと組み合わせた１つ以上のマイクロプロセッサ、あるいはその他のそのようなコンフィギュレーション、としてインプリメントされることもできる。
【００６１】
ここに開示された例に関連して記述された方法あるいはアルゴリズムのステップは、ハードウェアに直接に、プロセッサによって実行されるソフトウェアモジュールに、あるいは該２つの組合せで直接具現化されることができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは当技術分野で知られているその他の形態の記憶媒体の中にあってもよい。一例の記憶媒体は、プロセッサが記憶媒体から情報を読み出し、かつ、記憶媒体へ情報を書き込むことができるように、プロセッサに結合される。あるいは、記憶媒体はプロセッサと一体化されてもよい。プロセッサと記憶媒体は、特定用途向け集積回路（ＡＳＩＣ）中に常駐してもよい。ＡＳＩＣは、無線モデム中に常駐してもよい。あるいは、プロセッサと記憶媒体は、無線モデム中のディスクリートコンポーネントとして常駐してもよい。
【００６２】
開示された例の上記の説明は、いずれの当業者にも開示された方法および装置を作る又は使用することを可能にするように提供されている。これらの例への様々な修正は、当業者には容易に明らかであろう、そして、ここに定義された原理は他の例に適用されることができ、更なるエレメントが追加されてもよい。
【００６３】
このように、インテリジェントエラー隠蔽および破損データのエラー訂正を行うために、デコーダアプリケーションにおいて、ビット破損フラッギング情報および破損データを利用して、リアルタイムストリーミングマルチメディアをデコードする、方法および装置が、説明された。
【図面の簡単な説明】
【００６４】
【図１Ａ】図１Ａは、ストリーミングマルチメディアを配信するための通信システムの一例のブロック図である。
【図１Ｂ】図１Ｂは、ストリーミングマルチメディアを配信するための多層通信システムの一例のブロック図である。
【図１Ｃ】図１Ｃは、ストリーミングマルチメディアを配信するための多層通信システムの別の例のブロック図である。
【図２Ａ】図２Ａは、ストリーミングマルチメディアをデコードするためのデコーダデバイスアーキテクチャの一例のブロック図である。
【図２Ｂ】図２Ｂは、送信機を含むマルチレイア統合管理システムのプロトコルスタックダイアグラムであり、また、図２Ａのデコーダデバイスアーキテクチャについての別のビューである。
【図３】図３は、連結されたリードソロモン消去およびターボコーディングについて構成されたマルチメディアシンボルの例を表す。
【図４】図４は、ストリーミングマルチメディアをデコードする方法の一例のフローダイアグラムである。
【図５】図５は、ビデオデータ用のターボ情報パケット構造を図示する。
【図６】図６は、図１の中で示されるようなマルチメディア受信機２４の一部であることができるコンポーネントの一例のシステムのブロック図を示す。
【図７】図７は、エラー回復のプロセスのフローチャートを示す。
【図１Ａ】
2008537654.tif 000004
【図１Ｂ】
2008537654.tif 000005
【図１Ｃ】
2008537654.tif 000006
【図２Ａ】
2008537654.tif 000007
【図２Ｂ】
2008537654.tif 000008
【図３】
2008537654.tif 000009
【図４】
2008537654.tif 000010
【図５】
2008537654.tif 000011
【図６】
2008537654.tif 000012
【図７】
2008537654.tif 000013
【国際調査報告】
2008537654.tif 000014
2008537654.tif 000015
2008537654.tif 000016
2008537654.tif 000017
2008537654.tif 000018