本発明は、放送及び/または通信システムに関し、特に、放送及び/または通信システムにおける前方誤り訂正(Forward Error Correction:FEC)パケットの送受信装置及び方法に関する。
最近の放送及び通信環境では、多様なマルチメディアコンテンツや、高画質(High Definition:HD)コンテンツ、超高画質 (Ultra High Definition:UHD)コンテンツのような高容量コンテンツが増加することにより、ネットワーク上のデータ輻輳(Data Congestion)が深刻になってきている。このようなデータ輻輳によって、送信器(Sender、例えば、ホストA)が送信したコンテンツが受信器(Receiver、例えば、ホストB)に正常に転送されず、コンテンツの一部が経路上で消失される状況が発生する。
一般的に、データは、パケット単位で伝送されるので、データ消失は、パケット単位で発生する。このようにネットワーク上でデータが消失されると、受信器はデータパケットを受信できないので、消失されたパケット内のデータを取得することができない。したがって、オーディオの品質低下、ビデオの画質の劣化、画面のとぎれ、字幕欠落、ファイルの損失のような様々な形態でユーザの不便をもたらす。
したがって、ネットワーク上で発生するデータ消失を復旧するための技術が求められている。
ネットワーク上で消失されたデータの受信器での復旧をサポートする技術として、ソースパケットと呼ばれる可変長のデータパケットを一定数集めて、ソースパケットブロックを構成し、前方誤り訂正(Forward Error Correction:FEC)符号化によって、パリティ(Parity)データまたはリペアパケット(Repair packet)のような復旧情報をソースパケットブロックに付加する技術がある。受信器は、消失されたデータがある場合、上記復旧情報を使用して復号(decoding)を実行することができる。
ソースパケットブロックからFEC符号化を通じてパリティデータまたはリペアパケットを生成する処理では、上記ソースパケットブロックから、同じ長さのソースシンボル(source symbol)を含むソースシンボルブロック(source symbol block)を構成し、ソースシンボルブロックをFEC符号化することにより、リペアシンボル(repair symbol)を含むリペアシンボルブロック(repair symbol block)を生成し、上記生成されたリペアシンボルブロックを、FECリペアパケット(FEC repair packet)に変換する。FECリペアパケットと、FEC符号化後のソースパケットであるFECソースパケット(FEC source packet)とは、共にFECパケットとして伝送される。上記ソースパケットの各々は、可変長であり、ソースシンボルブロックは、同じ長さのソースシンボルで構成されるために、ソースパケットブロックからソースシンボルブロックを生成する時、パディングデータが必要である。したがって、効率的なソースシンボルブロック生成方法が求められる。
また、上記誤り訂正パケットブロック内の誤り訂正信号(つまり、source FEC payload IDentifier(ID))を伝送し、各リペアパケット内の誤り訂正信号(repair FEC payload ID)を伝送する、インバンド(in-band)シグナリング方法も求められている。
上記した情報は、本発明の開示の理解を助けるための背景情報として表示されるだけである。上記のいずれが本発明に関する従来技術として適用されるか否かに関しては、何の決定も主張もなされていない。
本発明は、放送及び通信システムにおけるパケットを送受信するためのインバンドシグナリング方法及び装置を提供する。
本発明の一実施形態によれば、マルチメディアサービスシステムにおけるパケットを送信する方法が提供される。上記方法は、ソースパケットを含むソースパケットブロックを複数のソースパケットサブブロックに分割するステップと、上記ソースパケットサブブロックをソースシンボルサブブロックに各々変換するステップと、上記ソースパケットサブブロックを第1の誤り訂正符号を用いて符号化することによって複数の第1のリペアシンボルブロックを生成するステップと、上記ソースシンボルサブブロックに含まれるソースシンボルにソース誤り訂正ペイロードID(識別子)を付加することによって誤り訂正ソースパケットを構成し、上記第1のリペアシンボルサブブロックに含まれるリペアシンボルにリペア誤り訂正ペイロードIDを付加することによって誤り訂正リペアパケットを構成するステップと、上記誤り訂正ソースパケット及び上記誤り訂正リペアパケットを送信するステップと、を含む。上記ソース誤り訂正ペイロードIDは、上記誤り訂正ソースパケット内のソースシンボルを識別するシーケンス番号を示すソースシンボルIDを含み、上記リペア誤り訂正ペイロードIDは、上記ソースシンボルサブブロックを連結することによって生成されたソースシンボルブロック内のソースシンボルの数を示すソースシンボルブロック長を含むことを特徴とする。
本発明の別の実施形態によれば、マルチメディアサービスシステムにおけるパケットを送信する装置が提供される。上記装置は、ソースパケットを含むソースパケットブロックを複数のソースパケットサブブロックに分割し、上記ソースパケットサブブロックをソースシンボルサブブロックに各々変換し、上記ソースパケットサブブロックを第1の誤り訂正符号を用いて符号化することによって複数の第1のリペアシンボルブロックを生成する前方誤り訂正(FEC)スキームと、上記ソースシンボルサブブロックに含まれるソースシンボルにソース誤り訂正ペイロードID(識別子)を付加することによって誤り訂正ソースパケットを構成し、上記第1のリペアシンボルサブブロックに含まれるリペアシンボルにリペア誤り訂正ペイロードIDを付加することによって誤り訂正リペアパケットを構成するプロトコルと、上記誤り訂正ソースパケット及び上記誤り訂正リペアパケットを送信するトランスポートレイヤを含む。上記ソース誤り訂正ペイロードIDは、上記誤り訂正ソースパケット内のソースシンボルを識別するシーケンス番号を示すソースシンボルIDを含み、上記リペア誤り訂正ペイロードIDは、上記ソースシンボルサブブロックを連結することによって生成されたソースシンボルブロック内のソースシンボルの数を示すソースシンボルブロック長を含むことを特徴とする。
本発明の別の実施形態によれば、マルチメディアサービスシステムにおけるパケットを受信する方法が提供される。上記方法は、誤り訂正パケットを受信するステップと、上記誤り訂正パケットのパケットヘッダーに基づいて上記受信した誤り訂正パケットを誤り訂正ソースパケットと誤り訂正リペアパケットに分割するステップと、上記誤り訂正ソースパケットに含まれるソースシンボル及びソース誤り訂正ペイロードIDと、上記誤り訂正リペアパケットに含まれるリペアシンボル及びリペア誤り訂正ペイロードIDと、に基づいてコードシンボルブロックを生成するステップと、上記コードシンボルブロックに適用される誤り訂正符号を使用して上記コードシンボルブロックを復号することによってソースパケットを復元するステップと、を含む。上記ソース誤り訂正ペイロードIDは、上記誤り訂正ソースパケット内のソースシンボルを識別するシーケンス番号を示すソースシンボルIDを含み、上記リペア誤り訂正ペイロードIDは、上記ソースシンボルサブブロックを連結することによって生成されたソースシンボルブロック内のソースシンボルの数を示すソースシンボルブロック長を含むことを特徴とする。
本発明の別の実施形態によれば、マルチメディアサービスシステムにおけるパケットを受信する装置が提供される。上記装置は、誤り訂正パケットを受信する受信器と、上記誤り訂正パケットのパケットヘッダーに基づいて上記受信したパケットを誤り訂正ソースパケットと誤り訂正リペアパケットに分割し、上記誤り訂正ソースパケットに含まれるソースシンボル及びソース誤り訂正ペイロードID(識別子)と上記誤り訂正リペアパケットに含まれたリペアシンボル及びリペア誤り訂正ペイロードIDに基づいてコードシンボルブロックを生成し、上記コードシンボルブロックに適用される誤り訂正符号を使用して上記コードシンボルブロックを復号することによってソースパケットを復元するデコーダと、を含む。上記ソース誤り訂正ペイロードIDは、上記誤り訂正ソースパケット内のソースシンボルを識別するシーケンス番号を示すソースシンボルIDを含み、上記リペア誤り訂正ペイロードIDは、上記ソースシンボルサブブロックを連結することによって生成されたソースシンボルブロック内のソースシンボルの数を示すソースシンボルブロック長を含むことを特徴とする。
本発明の実施形態によれば、放送/通信システムにおける効率的なパケット送受信装置及び方法を提供することができる。
本発明の他の態様、利点、及び顕著な特徴は、下記の詳細な説明から当業者には明らかであり、その詳細な説明は、添付の図面とともに本発明の実施形態で開示する。
本発明の一実施形態による送信器及び受信器のブロック構成図である。
本発明の一実施形態によるMMTシステムのAL−FECアーキテクチャーを示す。
本発明の一実施形態による2段階(two-stage)のFEC符号化方法を示す。
本発明の一実施形態によってメディアが2個のレイヤで構成されている場合にLA−FECを適用するためのソースブロック構成方法を示す。
本発明の一実施形態によるソースパケットブロックからソースシンボルブロックを生成する方法を示す。
本発明の一実施形態によるソースパケットフローからソースパケットブロックを構成し、上記ソースパケットブロックからソースシンボルブロックを生成する方法を示す。
本発明の一実施形態によるFECソースパケットブロックにソースFECペイロードID(SS_ID)を割り当てる方法を示す。
本発明の一実施形態によるFECリペアパケットブロックにリペアFECペイロードIDを設定する方法を示す。
本発明の一実施形態によるFECパケットのフォーマットを示す。
本発明の一実施形態によるFECパケットのフォーマットを示す。
添付の図面を参照した下記の説明は、特許請求の範囲及びこの均等物で定められるような本発明の様々な実施形態の包括的な理解を助けるために提供するものである。その説明は、この理解を助けるための様々な特定の詳細を含むが、単なる一つの実施形態に過ぎない。従って、本発明の範囲及び趣旨を逸脱することなく、ここに説明する実施形態の様々な変更及び修正が可能であるということは、当該技術分野における通常の知識を有する者には明らかである。また、明瞭性と簡潔性の観点から、当業者に良く知られている機能や構成に関する具体的な説明は、省略する。
以下の説明及び請求項に使用する用語及び単語は、辞典的意味に限定されるものではなく、本発明の理解を明確且つ一貫性があるようにするために発明者によって使用されたに過ぎない。従って、本発明の実施形態の説明は、単に実例を提供するためのものであって、特許請求の範囲及び均等物によって定められるように本発明の目的を限定するものでないことは、本発明の技術分野における通常の知識を持つ者には明らかである。
本願明細書に記載の各要素は、文脈中に特に明示しない限り、複数形を含むことは、当業者には理解できるものである。したがって、例えば、コンポーネント表面(a component surface)”との記載は、1つ又は複数の表面を含む。
“実質的に(substantially)”という用語では、提示された特徴、パラメータ、又は値が正確に達成される必要はないが、許容誤差、測定誤差、測定精度限界、及び当業者に知られている他の要素を含んだ偏差又は変動が、これらの特性が提供しようとする効果を排除しない範囲内で発生することがあることを意味する。
後述する本発明の実施形態は、高画質(HD)コンテンツまたは超高画質(UHD)コンテンツのような高容量コンテンツばかりでなく、ビデオ会議及び/またはビデオ電話を含む多様なマルチメディアサービスを送受信できる全ての電子機器に適用可能である。この電子機器は、携帯電話、TV、コンピュータ、電子黒板、タブレット及び電子書籍リーダなどのいずれかであってもよい。特に、本開示は、データパケットにFECを適用する時、ソースパケットブロックをソースパケットサブブロックに分割し、ソースシンボルブロックとソースシンボルサブブロックを効率的に構成して復号性能を改善するか、伝送効率(transmission efficiency)を高めることができる方法を提供する。本明細書において、具体的なFEC符号化方法は言及されないが、本発明が特定FEC方法に限定されるものではない。リードソロモン(RS)符号、LDPC(Low Density Parity Check)符号、ターボ(Turbo)符号、ラプター(Raptor)符号、ラプターQ(Raptor Q)符号、XOR(Single Parity-Check Code)、Pro−MPEG(Moving Picture Experts Group)FEC符号などが本開示において選択的に使用されてもよい。
まず、本発明を説明する前に、本発明で使用される用語を以下のように定義する。
−前方誤り訂正(FEC)符号:エラーシンボル(Error Symbol)または削除シンボル(Erasure Symbol)を訂正するための誤り訂正符号
−ソースシンボル(Source Symbol):符号化処理において使用されるデータ単位
−パリティ(リペア)シンボル(Parity (Repair) Symbol):ソースシンボルでない符号化シンボル
−ソースパケット(Source Packet):FECにより保護されるパケット
−ソースパケットブロック(Source Packet Block):一つのブロックとして保護されるFECソースフローのソースパケットの集合
−ソースシンボルブロック(Source Symbol Block):一つのソースパケットブロックから生成されるソースシンボルの集合
−パリティ(リペア)シンボルブロック(Parity (Repair) Symbol Block):消失されたソースシンボルを復旧するために使用することができるリペアシンボルの集合
−符号化シンボルブロック(Encoding Symbol Block):ソースシンボルブロックの符号化処理によって生成される符号化シンボルの集合
−符号化シンボル(encoding symbol):符号化処理により生成されるデータの単位。なお、ソースシンボルは、符号化シンボルの一部である。
−FECリペアパケット(FEC repair Packet):パリティシンボルブロックの一つ以上のパリティシンボルを配信するためのリペアFECペイロードID(repair FEC payload ID)を有するパケット
−FECソースパケット(FEC source Packet):ソースFECペイロードID(source FEC payload ID)を有するソースパケット
−FECソースパケットブロック(FEC source Packet Block):ソースシンボルブロックを配信するためのFECソースパケットの集合
−FECリペアパケットブロック(FEC repair Packet Block):リペアシンボルブロックを配信するためのリペアパケットの集合
−FECペイロードID(FEC Payload ID):MMT (MPEG(Moving Picture Experts Group) Media Transport) FEC仕様によってMMTパケットのコンテンツを識別するための識別子
−リペアFECペイロードID(repair FEC Payload ID):リペアパケットと共に使用するためのFECペイロードID
−ソースFECペイロードID(Source FEC payload ID):ソースパケットと共に使用するためのFECペイロードID
−MMT(MPEG Media Transport):MPEGデータを効率的に伝送するために設計された国際標準
−FECソースフロー(FEC Source Flow):MMT FEC仕様の一方法により保護されるソースパケットのフロー
−FEC仕様(FEC scheme):FEC符号を使用するために要求されるプロトコル面での拡張を定義する仕様
−FEC符号(FEC code):当該符号化されたデータのフローがデータ消失に対して回復力があるようにする、データを符号化するアルゴリズム
−FECリペアフロー(FEC repair Flow):ソースフローを保護するためにリペアシンボルを搬送するデータのフロー
−FEC符号化フロー(FEC encoded flow):一つのFECソースフローとそれと関係する一つ以上のFECリペアフローとで構成されたフローの論理的な集合
−アセット(Asset):同一のアセットIDを有する一つ又はそれ以上のメディアプロセッシングユニット(Media Processing Unit:MPU)によって構成された同一の伝送特性を有するデータを含むデータエンティティ
−メディアプロセッシングユニット(MPU):メディアコーデックに依存せず、独立して復号可能な、定時出力のデータ(timed data)または出力時刻が制限されないデータ(non-timed data)のためのジェネリックコンテナ
−パッケージ(Package):一つ以上のアセットとそれに関するアセット配信特性と構成情報(Composition Information:CI)で構成されたデータの論理的な集合
−MMTパケット(MMT packet):MMTプロトコルによって生成されるか消費されるデータのフォーマットの1単位
−MMTペイロード(MMT payload):MMTプロトコル、またはインターネットアプリケーションレイヤトランスポートプロトコル(例えば、RTP:Real-Time Transport Protocol)を使用するパッケージやシグナリングメッセージを搬送するためのデータのフォーマットの1単位
−MMTプロトコル(MMT Protocol):IP(インターネットプロトコル)ネットワークを通じてMMTペイロードを配信するためのアプリケーションレイヤトランスポートプロトコル
図1は、本発明の一実施形態による送信器及び受信器のブロック構成図である。
図1を参照すると、送信器100は、FEC上位プロトコルに該当するプロトコルAブロック101、FEC符号化ブロック102、FEC下位プロトコルに該当するプロトコルBブロック103及び送信器物理レイヤブロック104を含む。
プロトコルAブロック101は、伝送データを、ソースペイロード130を含むソースパケット形態で構成してFEC符号化ブロック102に伝達する。FEC符号化ブロック102は、上記ソースパケットの集まりであるソースパケットブロックを構成し、FEC符号化を実行してパリティペイロード131を含むパリティ(リペアシンボル)を生成し、上記ソースパケットとパリティシンボルにFECヘッダー132を追加してプロトコルBブロック103に伝達する。この時、上記FECヘッダーと結合されたソースパケットをFECソースパケットと称し、上記FECヘッダーと結合されたパリティシンボルをFECパリティパケットと称する。図1におけるFECソースパケットは、FECヘッダーとソースペイロードがシーケンシャルに連結されたデータ単位であるが、ソースペイロードの後にFECヘッダーが連結されてもよい。また上記図1におけるFEC符号化ブロック102は、プロトコルAブロック101とプロトコルBブロック103との間に位置するが、プロトコルAブロック101がFEC符号化ブロック102を含まれてもよい。この場合、FECパリティパケットにプロトコルAブロック101の機能を実行するためのプロトコルヘッダーが含まれてもよい、上記FEC符号化ブロック102を含むプロトコルAブロック101は、ソースパケットとパリティパケットを一つのパケットフローで形成するための多重化器(multiplexer)を含んでもよい。
送信器物理レイヤブロック104は、上記FECソースパケットとFECパリティ(リペア)パケットを、トランスポートチャンネル120を介して送信するのに適した信号に変換する。プロトコルBブロック103と送信器物理レイヤブロック104との間には、多様なレイヤが存在してもよく、その具体的な構成は、本発明の要旨と関係ないので省略する。
受信器110は、受信器物理レイヤブロック111、FEC下位プロトコルに該当するプロトコルBブロック112、FEC復号ブロック113及びFEC上位プロトコルに該当するプロトコルAブロック114を含む。
受信器物理レイヤブロック111は、トランスポートチャンネル120を通じて受信された信号を解析し、これをプロトコルBブロック112に伝達する。送信器100の場合と同様に、プロトコルBブロック112と受信器物理レイヤブロック111との間には、多様なレイヤが存在してもよく、その具体的な構成は、本発明の要旨と関係ないので省略する。プロトコルBブロック112は、受信信号またはパケットを解析して受信FECパケットをFEC復号ブロック113に伝達する。この時、送信器で送信したFECパケットの一部は、ネットワークの輻輳及び物理レイヤで発生したエラーの影響により消失され、FEC復号ブロック113に伝達されないことがある。FEC復号ブロック113は、伝達されたFECパケットに対するFEC復号を実行して消失されたソースパケットを復元し、これを受信パケットと共に上位プロトコルAブロック114に伝達する。上述するFECヘッダーは、FECペイロードIDを意味し、FECソースパケットのFECヘッダーはソースFECペイロードIDを意味し、FECリペアパケットのFECヘッダーはリペアFECペイロードIDを意味する。また本発明がMMTシステムに適用される場合、上記ソースパケットはMMTパケットとなり、FECソースパケットはソースFECペイロードIDを有するMMTパケットとなり、FECリペアパケットはパリティ(リペア)シンボルを搬送するリペアFECペイロードIDを有するMMTパケットとなる。
図2は、本発明の一実施形態によるMMTシステムにおけるAL−FEC(Application Layer FEC)アーキテクチャーを示す。
MMTアプリケーション210は、AL−FECで保護して伝送するMMTアセットを決定してMMTプロトコル220に入力する。またMMTアプリケーション210は、AL−FEC設定情報(FEC configuration information)をMMT FECスキーム230に入力する。MMTプロトコル220は、入力されたアセットをMMTペイロード(MMTPs)でパケット化(packetize)し、MMTパケットヘッダーを付加してソースパケットを生成し、各々が所定数のソースパケットを含むソースパケットブロックごとにMMT FECスキーム230に入力する。MMT FECスキーム230は、MMTアプリケーション210から入力されたFEC設定情報に基づいた所定のソースシンボルブロック生成方法に従って入力されたそれぞれのソースパケットブロックからソースシンボルブロックを生成する。この時、本発明の実施形態によるソースシンボルブロック生成方法は、FEC設定情報として提供される。MMT FECスキーム230は、FEC設定情報に本発明の実施形態によるソースシンボルブロック生成方法が明記されていると、本発明の実施形態によるソースシンボルブロックを生成する。FEC符号240は、MMT FECスキーム230から、ソースシンボルブロックを受け取り、入力されたソースシンボルブロックからパリティ(リペア)シンボルブロックを生成してMMT FECスキーム230に入力する。MMT FECスキーム230は、上記ソースシンボルブロックと上記パリティ(リペア)シンボルブロックに対してFECペイロードIDを生成し、FEC符号240から受信したパリティ(リペア)シンボルをMMTプロトコル220に入力する。MMTプロトコル220は、ソースパケットにソースFECペイロードIDを付加してFECソースパケットを生成する。MMTプロトコル220は、パリティ(リペア)シンボルにリペアFECペイロードIDと、MMTペイロードヘッダーとMMTパケットヘッダーとを付加してFECリペアパケットを生成する。MMTプロトコル220は、FECソースパケットとFECリペアパケットとをUDP(User Datagram Protocol)のようなトランスポートレイヤ(Transport Layer)250を通じてIP260に伝送する。上記では、説明の便宜のために、ソースパケットブロック単位で、FECソースパケットと、FECパリティ(リペア)パケットとが生成、伝送されることを説明した。しかし、MMT FECスキーム230は、MMTプロトコル220からソースパケットを受信するとすぐに、受信したソースパケットにソースFECペイロードIDを付加してFECソースパケットを生成し、すぐにそのFECソースパケットを伝送することが望ましい。そして、MMT FECスキーム230は、ソースパケットを内部メモリに保存しておき、ソースパケットブロックの最後のソースパケットを受信するとすぐに、上記ソースパケットブロックからソースシンボルブロックを生成することが望ましい。その結果、FEC符号240は、パリティシンボルブロックを生成する。そして、MMT FECスキーム230は、生成されたパリティシンボルブロックをFECペイロードIDと共にMMTプロトコル220に入力することによって、FECパリティ(リペア)パケットを生成し、伝送することが望ましい。
図3は、本発明の一実施形態による2段階(two-stage)のFEC符号化方式を示す。
MMT標準は、相対的に高い信頼度を要求するパケットを一つ以上の誤り訂正符号を使用して保護するための2段階仕様を採用した。上記図3の2段階仕様によれば、MMTプロトコルとMMT FECスキーム(合わせて、MMT FECFRAMEと呼ぶ)は、所定数のソースパケットで構成されたソースパケットブロック(Source Packet Block)をM(Mは1より大きい整数である)個の第1のソースパケットサブブロック(1〜Mth Source Packet Block)に分割し、第1のソースパケットサブブロックの各々から第1のソースシンボルサブブロック(1〜Mth Source Packet Block)を生成し、第1のソースシンボルサブブロックの各々に対して第1のFEC符号化により生成される第1のパリティ(リペア)シンボルブロックを含む第1の符号化シンボルブロックを生成する。その後、MMT FECFRAMEは、M個の第1のソースシンボルサブブロックを第2のソースシンボルブロックとして第2のFEC符号化により生成される第2のパリティ(リペア)シンボルブロックを含む第2の符号化シンボルブロックを生成する。上記の第1のFEC符号化と第2のFEC符号化では、同一の誤り訂正符号が使用されても、異なる誤り訂正符号が使用されてもよい。第1のFEC符号化、第2のFEC符号化に使用される誤り訂正符号としては、RS符号、LDPC符号、ターボ符号(Turbo Code)、ラプター符号(Raptor Code)、XOR(eXclusive OR;排他的論理和)符号など、現在知られたコード及び将来に知られる符号化方式が使用されてもよく、特定の符号化方式に制限されない。図3において、i番目のP1は、i番目のソースシンボルサブブロックのリペアシンボルブロックであり、P2は、ソースシンボルブロックのためのリペアシンボルブロック(i=1、2、…、M)である。
レイヤ構造を有するメディアデータを効率的に保護するために、LA−FECが使用されてもよい。上記レイヤ構造を有するメディアの例として、SVC(Scalable Video Coding)またはMVC(Multiview Video Coding)を使用して符号化されたコンテンツが挙げられる。
図4は、メディアが2個のレイヤで構成されている場合に、LA−FECを適用するためのソースブロック構成方法を示す。図4で、基本レイヤ(base layer)のBR(base representation)は、メディアコーデックとは独立して復号可能なデータであり、拡張レイヤ(enhancement layer)のER(Enhancement representation)は、BRに依存するデータである。図4でER1のためのパリティを生成する時、BRを共に使用する点に留意する。
図5は、本発明の一実施形態によるソースパケットブロックからソースシンボルブロックを生成する方法を示す。
図5を参照すると、ソースシンボルブロック生成器(図示せず)は、ソースシンボルサイズT、ソースシンボルサイズTあたりのシンボルエレメントの個数m、ソースシンボル個数Kに従って、TxKアレイで構成されたソースシンボルブロックを生成する。ソースシンボルブロック生成器は、ソースシンボルサイズTとシンボルエレメントの個数mとをFEC設定情報から取得する。図5は、T=32バイト、m=2である場合の例を示す。ソースシンボルブロック生成器は、可変パケットサイズを有する5個のソースパケット、すなわちMMTパケット#0乃至MMTパケット#4を受け取る。ソースパケットは、ソースシンボルブロックの最初の列からシーケンシャルにシンボルエレメント単位で、ソースシンボルブロックに詰められる。必要な時、シンボルエレメントの空き部分は、00hのような予め定められる値を有するパディングデータで埋められる。すなわち、ソースパケットは、常にシンボルエレメントの先頭から詰められる。もし、該当ソースパケットがシンボルエレメントを一杯としない場合、上記シンボルエレメントの残りの部分は00hで満たされ、次のソースパケットは、すぐ次のシンボルエレメントの先頭から再度詰められ始める。図5のように、ソースパケットのデータが不足するにより、SS#7の2番目のシンボルエレメント510、すなわちソースシンボルブロックの最後のシンボルエレメントにソースパケットが詰められない場合には、シンボルエレメントの空の部分にパディングデータが詰められる。
複数のソースシンボルブロック構成方式が使用される場合には、該当ソースシンボルブロックに対応するソースシンボル構成方法を示すssbg_modeなどの識別子を受信器に伝送されなければならない。
上記2段階符号化仕様において、ソースシンボルブロックは、以下のように構成される。ソースパケットブロックがM個のソースパケットサブブロックで構成されると仮定する。所定値mに従い、図5に示した方法によって、最初のソースパケットサブブロックに属するソースパケットを使用することによって、TxK1アレイで構成される最初のソースシンボルサブブロックを生成し、これをFECエンコーダ(図示せず)に伝達する。上記FECエンコーダは、上記ソースシンボルサブブロックを使用してパリティシンボルブロックを生成する。この後、2番目からはM番目までのソースシンボルサブブロックにおいて同一の処理が繰り返される。全てのソースシンボルサブブロックに対するパリティシンボルブロックが生成されると、全てのソースシンボルサブブロックを結合してソースシンボルブロックが構成される。上記FECエンコーダは、上記ソースシンボルブロックを使用してパリティシンボルブロックを生成する。
上記LA−FEC仕様において、ソースシンボルブロックは、以下のように構成される。メディアデータはM個のレイヤを有し、i番目のレイヤは、1番目から(i−1)番目のレイヤに依存すると仮定する。この時、ソースパケットブロックは、M個のソースパケットサブブロック(1〜Mth Source packet Block)を含み、i番目のソースパケットサブブロックは、i番目のレイヤのデータに該当する。上記ソースパケットサブブロックのうちの最初のソースパケットサブブロックに属するソースパケットを使用して最初のソースシンボルサブブロックを生成し、これをFECエンコーダに伝達する。上記FECエンコーダは、上記ソースシンボルサブブロックからパリティシンボルブロックを生成し、これをFECブロック生成器に伝達する。この後、最初のソースシンボルサブブロックと2番目のソースシンボルサブブロックとを結合してソースシンボルブロックを構成し、これをFECエンコーダに伝達する。上記FECエンコーダは、上記ソースシンボルブロックからパリティシンボルブロックを生成し、これをFECブロック生成器に伝達する。同一の処理を繰り返すと、最後に、最初からM番目までのソースシンボルサブブロックを結合してソースシンボルブロックを構成し、これをFECエンコーダに伝達する。上記FECエンコーダは、上記ソースシンボルサブブロックからパリティシンボルブロックを生成し、これをFECブロック生成器に伝達する。この処理後に、M個のソースシンボルサブブロックから生成された全てのパリティシンボルブロックと上記ソースシンボルブロックから生成されたパリティシンボルブロックとをFECパケット生成器に伝達する。
図6は、本発明の一実施形態によるMMTパケットストリームからソースパケットブロックを構成し、ソースシンボルブロックを生成する方法を示す。
図6を参照すると、アセット610はMPUを含み、それぞれのMPUは、MMTパケット620にパケット化される。
パケット化されたMMTパケットは、所定数のMMTパケットで構成されたソースパケットブロック630に分割され、分割されたソースパケットブロックのそれぞれは、ソースシンボルブロック640に変換される。図6には、m=2である場合が図示されている。ソースパケットブロックからソースシンボルブロックに変換するとき、ソースパケットブロックのソースパケットの各々は、シンボルエレメント単位でソースシンボルブロックに詰められる。シンボルエレメントがソースエレメントで一杯とならない場合、00hのような所定値を有するパディングデータで満たし、次のソースパケットは、次のシンボルエレメントの開始位置から詰められる。もし、最後のソースパケットがソースシンボルブロックの最後のソースシンボルが最後のソースパケットで一杯とならない場合、残りの部分は、00hのように所定の値を有するパディングデータで満たす。この場合、最後の部分にパディングされたデータのサイズがT/Mより大きいと、パディングシンボルエレメントを生成する。本発明では、シンボルエレメント単位でパディングされたデータをパディングシンボルエレメントと称する。
図7は、本発明の一実施形態によるFECソースパケットブロックにSS_IDを割り当てる方法を示す。
図7を参照すると、本発明の実施形態による図6に示されたソースシンボルブロック生成方法によって、ソースパケットブロックからソースシンボルブロックが生成されている。それぞれのソースシンボルブロックは、K1個のシンボルエレメントとK2個のシンボルエレメントを有するが、最初のソースシンボルブロックの最後のシンボルエレメント(K1−1)はパディングシンボルエレメントである。それぞれのソースシンボルブロックのシンボルエレメントのブロック内の順序を0〜(K1−1)、0〜(K2−1とする。これをFECソースパケットのソースFECペイロードIDをSS_IDに設定する場合、ランダム値jがSS_IDに設定される。以降のFECソースパケットでは、SS_IDは、それぞれのFECソースパケットに含まれるシンボルエレメントの数だけ増加される。ただし、最初のFECソースパケットブロックの最後のFECソースパケットのSS_IDはj+K1−2に設定されており、該当ソースシンボルブロックの最後のシンボルエレメントがパディングシンボルエレメントであるから、2番目のFECソースパケットブロックの最初のFECソースパケットのSS_IDは、j+K1−1でなく、パディングシンボルエレメントを考慮したj+K1に設定される。
図8は、本発明の一実施形態によるリペアFECペイロードIDを設定する方法を示す。図8によれば、図6及び図7と同一の形態でソースシンボルブロックが生成されている。生成された二つのソースシンボルブロックから、第1のFEC符号化(FEC 1)により、各々が3個のパリティシンボルで構成された二つのパリティシンボルブロックを生成する。そして、上記二つのソースシンボルブロックを結合した1つのソースシンボルブロックから、第2のFEC符号化(FEC 2)により3個のパリティシンボルで構成されたパリティシンボルブロックを生成する。図6及び図7のように、それぞれのソースパケットブロックに該当するソースパケットの各々にソースFECペイロードIDとしてSS_IDを図7のように割り当てて、SS_IDを含むソースパケットをFECソースパケットとして伝送する。FEC符号化により生成されたパリティシンボルブロックのそれぞれのパリティシンボルには、リペアFECペイロードID、MMTペイロードヘッダー及びMMTパケットヘッダーが付加され、FECパリティパケットとして伝送される。上記リペアFECペイロードIDは、SS_Start、RSB_length、RS_ID、SSB_length Fieldで構成され、各Fieldに対する説明は、下記の表2にて行う。それぞれのFECパリティ(リペア)パケット内でのフィールドの値は、図8でのように設定される。最初のソースシンボルブロックのパリティシンボルブロックの3個のFECパリティパケットのリペアFECペイロードIDは、以下の通りである。
SS_Startは、最初のFECソースパケットブロックの最初のFECソースパケットのSS_IDであるj値に設定される。SS_Startは、最初のFECソースパケットブロックのすべてのFECパリティパケットにおいてj値に設定される。SS_Startは、該当FECソースパケットブロックの開始パケットを指し示す。RSB_lengthは、全てのFECパリティパケットにおいて3に設定される。これは、パリティシンボルブロックは3つのパリティシンボルを含むことを示す。SSB_lengthは、K1−1に設定する。これは、該当ソースシンボルブロックのパディングシンボルエレメントを除いたシンボルエレメントの数がK1−1であることを示す。RS_IDは、パリティシンボルを識別するようにするために、それぞれのFECパリティシンボルにおいて、0、1、2に設定する。
2番目のソースシンボルブロックに対するパリティシンボルブロックの3個のFECパリティパケットのリペアFECペイロードIDも同じやり方で設定される。SS_Startはj+K1に、RSB_lengthは3に、SSB_lengthはK2に、RS_IDはFECパリティパケットに合わせて各々0、1、2に設定される。
最初と2番目のソースシンボルブロックを結合したソースシンボルブロックのパリティシンボルブロックの3個のFECパリティパケットにおけるリペアFECペイロードIDも同様に設定される。全てのFECパリティパケットにおいて、SS_Startは、結合されたFECソースパケットブロックの最初のFECソースパケットのSS_IDであるj値に設定される。SS_Startは、該当FECソースパケットブロックの開始パケットを指し示す。RSB_lengthは、全てのFECパリティパケットにおいて3に設定される。これは、パリティシンボルブロックは3つのパリティシンボルを含むことを示す。SSB_lengthは、K1+K2に設定される。これは、結合されたソースシンボルブロックの最後のソースシンボルにパディングされたパディングシンボルエレメントを除いたシンボルエレメントの数がK1+K2であることを示す。RS_IDは、パリティシンボルを識別するために、それぞれのFECパリティパケットに合わせて0、1、2に設定される。
このように設定することによって、受信器は、受信したFECパリティパケットから、FECソースパケットブロックの境界と対応するソースシンボルブロックのサイズを定めることができる。SS_Startから開始FECソースパケットを定め、SSB_lengthからソースシンボルブロック内のソースシンボルの数を定めることができるので、受信器は、受信したFECソースパケットのSS_IDから、受信したパケットが対応するFECソースパケットブロックに含まれるかどうかが分かる。すなわち、SS_Startがjであり、SSB_lengthがK1−1であって、受信したFECソースパケットのSS_IDがjである場合、受信したパケットは開始FECソースパケットである。受信したFECソースパケットのSS_IDがj+K1より小さいと、受信したパケットが対応するFECソースパケットブロックに含まれるパケットである。また、アウトバンドシグナリング(out-band signaling)によって予め受信したT値とm値に基づいて、SSB_length値から、ソースシンボルは、大きさがTであるソースシンボルブロック[(K1−1)/m]個によって構成されることが分かるので、対応するFECソースパケットブロックに属する受信したFECソースパケットのSS_IDからSS_Start値を引くことによって、受信したFECソースパケットがソースシンボルブロックのどのシンボルエレメントかを定めることができるので、ソースシンボルブロックを再構成できる。ここで、任意の実数Aに対して、[A」はAより小さいか同一の最大整数を意味する。また、SSB_lengthとして設定されたK1−1がmの倍数でない場合、S(=K1−1(mod m))個のパディングシンボルエレメントがパディングされていることが分かる。ここで、SはK1−1をmで割った余りである。
一方、図2で、FEC符号240は、入力したソースシンボルブロックからFEC符号化アルゴリズムによってパリティシンボルを計算し、パリティシンボルを含むパリティシンボルブロックを出力する。特定の実装において、FEC符号化アルゴリズムは、所定数のソースシンボルを入力して所定数のパリティシンボルの値を計算する。この場合、上記FEC符号は付加的な制御情報を必要としない。別の実装において、FEC符号化アルゴリズムがソースシンボルの数、パリティシンボルの数、及びソースシンボルとパリティシンボルとの関係に対するFEC符号化情報を必要としてもよい。上記FEC符号化情報は、FEC伝送情報の一部として、MMT FECスキーム230内のFECブロック生成器(図示せず)によって上記FEC符号240に伝送されてもよいが、上述するようにシステム全体の観点で、MMT FECFRAMEの他の全ての構成ブロックが上記FEC伝送情報を認知して符号化動作に活用してもよいことは明らかである。
図9A及び図9Bは、本発明の一実施形態によるFECパケットのフォーマットを示す。
図9Aは、FECソースパケットを示すもので、D2ヘッダー910はMMTパケットヘッダーを示し、D1ヘッダー911はMMTペイロードヘッダーを示し、D1ペイロード912はペイロードデータを運搬し、FECインバンド信号913はソースFECペイロードIDを示す。
図9Bは、FECパリティ(リペア)パケットを示すもので、D2ヘッダー920はMMTパケットヘッダーを示し、D1ヘッダー921はMMTペイロードヘッダーを示し、FECインバンド信号923はリペアFECペイロードIDを示し、D2ペイロード922は一つ又はそれ以上のパリティシンボルを運搬する。
上述するように、図9Aのように、MMTパケットには、FEC符号化後にソースFECペイロードIDが割り当てられる。パリティ(リペア)シンボルは、図9Aのようなフォーマットを有するMMTパケットを含むソースパケットブロックから、本発明の実施形態による一連の処理を経て生成される。図9Bに示すように、パリティ(リペア)シンボルには、リペアFECペイロードID、MMTペイロードヘッダー、MMTパケットヘッダーが付加される。図9Aにおいて、プロトコルパケット(MMTパケット)の統一性を維持し、FECパケット内でソースパケットが連続的に位置するようにするためにFECインバンド信号(FEC in-band signals)913がFECソースパケットの最後に設定されている。FECパリティパケットは、一つあるいはそれ以上のパリティシンボルを伝達する。上記パリティシンボルは、ソースパケットを含むソースシンボルブロックの復元に使用される。図9Bにおいて、受信器においてFEC関連情報を容易に取得できるようにするために、FECインバンド信号(FEC in-band signals)923は、トランスミッションプロトコルヘッダーとパリティシンボルの間に配置されている。
図2に戻り、MMTプロトコル220内のFECパケット生成器(図示せず)は、ソースパケット又はパリティシンボル、ソースFECペイロードID又はリペアFECペイロードID、並びにインバンド信号(in-band signals)を含むFECパケットを生成し、これをFECパケットブロックの形態で出力する。図2において、ソースあるいはリペアFECペイロードIDがインバンド信号とみなされてもよい。
MMTシステムにおいて、ソースパケットは、MMTパケットである。MMTパケットは、MMTパケットヘッダーとMMTペイロードを含む。MMTペイロードはMMTペイロードヘッダーとペイロードデータを含む。図2のMMT FECスキーム230は、入力されたパリティ(リペア)シンボルは、リペアFECペイロードIDと共にペイロードデータと見なされるように、ペイロードデータにMMTペイロードヘッダーとMMTパケットヘッダーを付加することによって、FECパリティパケットを構築し、そのFECパリティパケットを伝送する。
本発明の実施形態によるソースFECペイロードIDとリペアFECペイロードIDは、以下のように定義される。
上記<表1>及び<表2>における各フィールドは、以下の意味である。
−SS_ID(Source Symbol ID):FECソースパケットに含まれたソースシンボルを識別するシーケンス番号である。SS_IDは、シンボルエレメントごとに1ずつ増加する。同じことがパディングシンボルエレメントにも適用される。FECソースパケットの最初のシンボルエレメントのSS_IDが設定される。現パケットと次パケットのSS_IDの差異は、現パケットに含まれるシンボルエレメントの数と同一であるが、例外的に現FECソースパケットブロックのソースシンボルブロックにパディングシンボルエレメントがある場合、現FECソースパケットブロックの最後のFECソースパケットとその次のFECソースパケットブロックの最初のFECソースパケットのSS_IDの差異は、現FECソースパケットブロックの最後のFECソースパケット内のシンボルエレメントの数とパディングシンボルエレメントの数との和である。上記シーケンス番号の初期値は、任意の値から開始し、予め定められた4バイト以上で表される整数の最大値に到達した以後には0に戻る。
−SS_Start: このフィールドはFECソースパケットにおいてオプショナルである。FECソースパケットがSS_Startを含む場合に、SS_Startは、上記パケットが属したソースシンボルブロックの最初のソースシンボルのSS_IDに設定される。これは、上記ソースパケットが属したソースシンボルブロックの境界情報に該当する。FECパリティパケットにおいて、この情報は、FECパリティパケットブロックに関係するFECパリティパケットブロックの最初のFECソースパケットのSS_IDが設定される。受信器は、この情報に基づいて、受信されたFECパケットからFECソースパケットの境界、特にFECソースパケットの開始位置が分かる。
−RSB_length:FECパリティパケットのパリティシンボルが属するパリティシンボルブロックを構成するパリティシンボルの数。すなわち、K個のソースシンボルを含むソースシンボルブロックからFEC符号によりP個のパリティ(リペア)シンボルが生成される場合、このフィールドの値は、Pに設定される。
−RS_ID:FECパリティパケット内のパリティシンボルを識別するためのシーケンス番号。それぞれのパリティシンボルブロック内で上記フィールドは0から始まって1ずつ増加する。一つのFECパリティパケットが複数のパリティシンボルを含む場合には、上記複数のパリティシンボルのシーケンス番号のうちの最小値を表す。
−SSB_length:FECパリティパケット内のパリティシンボルによって保護されるソースシンボル(サブ)ブロックに含まれるシンボルエレメントの数。この数は、ソースシンボルブロックの最後のソースシンボルに含まれるパディングシンボルエレメントを含まない。すなわち、ソースシンボルブロック内のソースシンボルの数をKとし、上記ソースシンボルブロックの最後のソースシンボルにパディングされるパディングシンボルエレメントの数をpとすると、このフィールドは(K*m-p)に設定される。
本発明の実施形態において、受信器は、以下のようにFEC復号を行う。受信器は、送信器がアウトバンド信号として伝送したソースフローごとのFECフローID、FECフローIDによるFEC保護可否、FECのタイプ、FECコーディング構造、ソースシンボルの大きさT(すなわち、パリティシンボルの大きさ)、ソースシンボル内のシンボルエレメントの数m、ソースシンボルブロック生成方法(ssbg_mode)を定め、それらの値に基づいてFEC復号を準備する。受信器は、受信したFECパケットの中から、同じFECフローIDを有するFECパケットを分類する。受信器は、分類されたFECパケット内のFECタイプ情報に基づいて、該当FECパケットがFECソースパケットであるかFECパリティパケットであるかを判定する。2段階FEC符号化の場合、受信器はFECパリティパケットがパリティ1であるかパリティ2であるかを追加的に決定する。受信器は、該当FECパケットがFECソースパケットである場合、FECソースパケットのソースFECペイロードIDからSS_IDを調べる。FECパリティパケットである場合、FECパリティパケットのリペアFECペイロードIDから、SS_Start、RSB_length、RS_ID、SSB_lengthを調べる。受信器は、事前に認知されたFECペイロードID、ソースシンボルの大きさT、ソースシンボル内のシンボルエレメントの数m、ssbg_modeに従って、ソースシンボルブロックまたはパリティシンボルブロックの適切な位置にFECパケットのペイロード(ソースシンボルまたはパリティシンボル)を配置して符号化シンボルブロック(encoding symbol block)を生成する。受信器は、生成された符号化シンボルブロックに適用されたFEC符号を使用して復号することによって伝送途中に消失されたソースパケットに該当するソースシンボルを復元する。受信器は、復元されたソースシンボルがパディングデータ(Padding data)を含む場合、パディングデータを除去して最終的にソースパケットを復元する。
各ソースシンボルは、少なくとも一つのシンボルエレメントを含み、上記シンボルエレメントの数は全てのソースシンボルにおいて同じであり、上記SS_IDは、シンボルエレメントごとに1ずつ増加する。上記ソースシンボルは、パディングバイトを含んでもよく、上記ソースシンボルブロックは、最後のシンボルエレメントとしてパディングバイトのみを有するパディングシンボルエレメントを含んでもよい。パディングシンボルエレメントのSS_IDは、ソースFECパケットの最初のシンボルエレメントのSS_IDに設定される。SSB_lengthは、上記パディングシンボルエレメントを除いた上記ソースシンボルブロック内のシンボルエレメントの数を示す。SSB_lengthは、ソースシンボルブロック内のシンボルエレメントの数を示す。上記パリティFECペイロードIDは、上記ソースシンボルブロックの境界を示すSS_Startをさらに含む。SS_Startは、関連ソースシンボルブロックの最初のシンボルエレメントのSS_IDに設定される。
上記受信器は、FEC設定情報を受信する。上記FEC設定情報は、ssbg_modeを含む。上記ssbg_modeは、ソースシンボルブロックを構成する方法と、FECパケット受信前の上記ssbg_modeに従うソースシンボルごとのシンボルエレメントの数とを示す。上記パリティFECペイロードIDは、SS_Start、RSB_length、RS_IDをさらに含む。SS_Startは、ソースシンボルブロックの境界を示し、RSB_lengthは、関連パリティFECシンボルブロックで生成されたリペアシンボルの数を示し、RS_IDはパリティFECパケットに含まれた第1のリペアシンボルを識別する。ソースFECペイロードIDは、上記ソースFECパケットの最後に配置され、パリティFECペイロードIDは、パリティFECパケットの前部に配置される。
本発明の一実施形態によれば、送信器は、FEC設定情報やその他の符号化設定情報を受信器に伝送することによって、FECを適用したコンテンツを選択的に伝送できる。また、本発明の一実施形態によれば、ネットワーク状況やコンテンツのQoS(Quality of Service)に応じてFECが選択的に適用される。また本発明の一実施形態によれば、FEC設定情報やその他の符号化設定情報を含むFEC制御情報の全部または一部を周期的に反復伝送するかまたは、本発明のインバンドシグナリング方法によりFEC設定情報の全部またはその一部を伝送することができる。既にサービスが進行中である状況で新たな受信器もFEC設定情報を取得することができ、FEC復号によって消失されたデータを復旧することができる。これによってユーザにより良質のサービスを提供することができる。
本発明の一実施形態によるFECパケットを送受信する装置及び方法は、コンピュータ読み取り可能な非一時的記録媒体でコンピュータ読み取り可能なコードとして実装されてもよい。コンピュータ読み取り可能な非一時的記録媒体は、コンピュータ読み取り可能なデータを記録する如何なる種類の記憶装置を含んでもよい。この記録媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、光ディスク、磁気テープ、フロッピー(登録商標)ディスク、ハードディスク、及び不揮発性メモリなどを含んでもよい。さらに、上記コンピュータ読み取り可能な非一時的記録媒体は、ネットワークに接続したコンピュータシステムを介して分散され、上記コンピュータ読み取り可能なコードが、分散方式で格納及び実行されてもよい。
以上の詳細な説明から分かるように、放送/通信システムにおいてパケットを効果的に送受信するための装置及び方法を提供することができる。
以上、本発明の詳細な説明においては具体的な実施形態に関して説明したが、特許請求の範囲及びこれらの均等物によって定められる本発明の範囲及び精神を逸脱することなく、形式や細部の様々な変更が可能であることは、当該技術分野における通常の知識を持つ者には明らかである。
本発明は、放送及び/または通信システムに関し、特に、放送及び/または通信システムにおける前方誤り訂正(Forward Error Correction:FEC)パケットの送受信装置及び方法に関する。
最近の放送及び通信環境では、多様なマルチメディアコンテンツや、高画質(High Definition:HD)コンテンツ、超高画質 (Ultra High Definition:UHD)コンテンツのような高容量コンテンツが増加することにより、ネットワーク上のデータ輻輳(Data Congestion)が深刻になってきている。このようなデータ輻輳によって、送信器(Sender、例えば、ホストA)が送信したコンテンツが受信器(Receiver、例えば、ホストB)に正常に転送されず、コンテンツの一部が経路上で消失される状況が発生する。
一般的に、データは、パケット単位で伝送されるので、データ消失は、パケット単位で発生する。このようにネットワーク上でデータが消失されると、受信器はデータパケットを受信できないので、消失されたパケット内のデータを取得することができない。したがって、オーディオの品質低下、ビデオの画質の劣化、画面のとぎれ、字幕欠落、ファイルの損失のような様々な形態でユーザの不便をもたらす。
したがって、ネットワーク上で発生するデータ消失を復旧するための技術が求められている。
ネットワーク上で消失されたデータの受信器での復旧をサポートする技術として、ソースパケットと呼ばれる可変長のデータパケットを一定数集めて、ソースパケットブロックを構成し、前方誤り訂正(Forward Error Correction:FEC)符号化によって、パリティ(Parity)データまたはリペアパケット(Repair packet)のような復旧情報をソースパケットブロックに付加する技術がある。受信器は、消失されたデータがある場合、上記復旧情報を使用して復号(decoding)を実行することができる。
ソースパケットブロックからFEC符号化を通じてパリティデータまたはリペアパケットを生成する処理では、上記ソースパケットブロックから、同じ長さのソースシンボル(source symbol)を含むソースシンボルブロック(source symbol block)を構成し、ソースシンボルブロックをFEC符号化することにより、リペアシンボル(repair symbol)を含むリペアシンボルブロック(repair symbol block)を生成し、上記生成されたリペアシンボルブロックを、FECリペアパケット(FEC repair packet)に変換する。FECリペアパケットと、FEC符号化後のソースパケットであるFECソースパケット(FEC source packet)とは、共にFECパケットとして伝送される。上記ソースパケットの各々は、可変長であり、ソースシンボルブロックは、同じ長さのソースシンボルで構成されるために、ソースパケットブロックからソースシンボルブロックを生成する時、パディングデータが必要である。したがって、効率的なソースシンボルブロック生成方法が求められる。
また、上記誤り訂正パケットブロック内の誤り訂正信号(つまり、source FEC payload IDentifier(ID))を伝送し、各リペアパケット内の誤り訂正信号(repair FEC payload ID)を伝送する、インバンド(in-band)シグナリング方法も求められている。
上記した情報は、本発明の開示の理解を助けるための背景情報として表示されるだけである。上記のいずれが本発明に関する従来技術として適用されるか否かに関しては、何の決定も主張もなされていない。
本発明は、放送及び通信システムにおけるパケットを送受信するためのインバンドシグナリング方法及び装置を提供する。
本発明の一実施形態によれば、マルチメディアサービスシステムにおけるパケットを送信する方法が提供される。上記方法は、ソースパケットを含むソースパケットブロックを複数のソースパケットサブブロックに分割するステップと、上記複数のソースパケットサブブロックを複数のソースシンボルサブブロックに各々変換するステップと、上記ソースシンボルサブブロックを第1の誤り訂正符号を用いて符号化することによって複数の第1のリペアシンボルブロックを生成するステップと、上記ソースシンボルサブブロックに含まれるソースシンボルにソース誤り訂正ペイロードID(識別子)を付加することによって誤り訂正ソースパケットを構成し、上記第1のリペアシンボルブロックに含まれるリペアシンボルにリペア誤り訂正ペイロードIDを付加することによって誤り訂正リペアパケットを構成するステップと、上記誤り訂正ソースパケット及び上記誤り訂正リペアパケットを送信するステップと、を含む。上記ソース誤り訂正ペイロードIDは、上記誤り訂正ソースパケット内のソースシンボルを識別するシーケンス番号を示すソースシンボルIDを含み、上記リペア誤り訂正ペイロードIDは、上記ソースシンボルサブブロックを連結することによって生成されたソースシンボルブロック内のソースシンボルの数を示すソースシンボルブロック長を含むことを特徴とする。
本発明の実施形態によれば、放送/通信システムにおける効率的なパケット送受信装置及び方法を提供することができる。
本発明の他の態様、利点、及び顕著な特徴は、下記の詳細な説明から当業者には明らかであり、その詳細な説明は、添付の図面とともに本発明の実施形態で開示する。
本発明の一実施形態による送信器及び受信器のブロック構成図である。
本発明の一実施形態によるMMTシステムのAL−FECアーキテクチャーを示す。
本発明の一実施形態による2段階(two-stage)のFEC符号化方法を示す。
本発明の一実施形態によってメディアが2個のレイヤで構成されている場合にLA−FECを適用するためのソースブロック構成方法を示す。
本発明の一実施形態によるソースパケットブロックからソースシンボルブロックを生成する方法を示す。
本発明の一実施形態によるソースパケットフローからソースパケットブロックを構成し、上記ソースパケットブロックからソースシンボルブロックを生成する方法を示す。
本発明の一実施形態によるFECソースパケットブロックにソースFECペイロードID(SS_ID)を割り当てる方法を示す。
本発明の一実施形態によるFECリペアパケットブロックにリペアFECペイロードIDを設定する方法を示す。
本発明の一実施形態によるFECパケットのフォーマットを示す。
本発明の一実施形態によるFECパケットのフォーマットを示す。
添付の図面を参照した下記の説明は、特許請求の範囲及びこの均等物で定められるような本発明の様々な実施形態の包括的な理解を助けるために提供するものである。その説明は、この理解を助けるための様々な特定の詳細を含むが、単なる一つの実施形態に過ぎない。従って、本発明の範囲及び趣旨を逸脱することなく、ここに説明する実施形態の様々な変更及び修正が可能であるということは、当該技術分野における通常の知識を有する者には明らかである。また、明瞭性と簡潔性の観点から、当業者に良く知られている機能や構成に関する具体的な説明は、省略する。
以下の説明及び請求項に使用する用語及び単語は、辞典的意味に限定されるものではなく、本発明の理解を明確且つ一貫性があるようにするために発明者によって使用されたに過ぎない。従って、本発明の実施形態の説明は、単に実例を提供するためのものであって、特許請求の範囲及び均等物によって定められるように本発明の目的を限定するものでないことは、本発明の技術分野における通常の知識を持つ者には明らかである。
本願明細書に記載の各要素は、文脈中に特に明示しない限り、複数形を含むことは、当業者には理解できるものである。したがって、例えば、コンポーネント表面(a component surface)”との記載は、1つ又は複数の表面を含む。
“実質的に(substantially)”という用語では、提示された特徴、パラメータ、又は値が正確に達成される必要はないが、許容誤差、測定誤差、測定精度限界、及び当業者に知られている他の要素を含んだ偏差又は変動が、これらの特性が提供しようとする効果を排除しない範囲内で発生することがあることを意味する。
後述する本発明の実施形態は、高画質(HD)コンテンツまたは超高画質(UHD)コンテンツのような高容量コンテンツばかりでなく、ビデオ会議及び/またはビデオ電話を含む多様なマルチメディアサービスを送受信できる全ての電子機器に適用可能である。この電子機器は、携帯電話、TV、コンピュータ、電子黒板、タブレット及び電子書籍リーダなどのいずれかであってもよい。特に、本開示は、データパケットにFECを適用する時、ソースパケットブロックをソースパケットサブブロックに分割し、ソースシンボルブロックとソースシンボルサブブロックを効率的に構成して復号性能を改善するか、伝送効率(transmission efficiency)を高めることができる方法を提供する。本明細書において、具体的なFEC符号化方法は言及されないが、本発明が特定FEC方法に限定されるものではない。リードソロモン(RS)符号、LDPC(Low Density Parity Check)符号、ターボ(Turbo)符号、ラプター(Raptor)符号、ラプターQ(Raptor Q)符号、XOR(Single Parity-Check Code)、Pro−MPEG(Moving Picture Experts Group)FEC符号などが本開示において選択的に使用されてもよい。
まず、本発明を説明する前に、本発明で使用される用語を以下のように定義する。
−前方誤り訂正(FEC)符号:エラーシンボル(Error Symbol)または削除シンボル(Erasure Symbol)を訂正するための誤り訂正符号
−ソースシンボル(Source Symbol):符号化処理において使用されるデータ単位
−パリティ(リペア)シンボル(Parity (Repair) Symbol):ソースシンボルでない符号化シンボル
−ソースパケット(Source Packet):FECにより保護されるパケット
−ソースパケットブロック(Source Packet Block):一つのブロックとして保護されるFECソースフローのソースパケットの集合
−ソースシンボルブロック(Source Symbol Block):一つのソースパケットブロックから生成されるソースシンボルの集合
−パリティ(リペア)シンボルブロック(Parity (Repair) Symbol Block):消失されたソースシンボルを復旧するために使用することができるリペアシンボルの集合
−符号化シンボルブロック(Encoding Symbol Block):ソースシンボルブロックの符号化処理によって生成される符号化シンボルの集合
−符号化シンボル(encoding symbol):符号化処理により生成されるデータの単位。なお、ソースシンボルは、符号化シンボルの一部である。
−FECリペアパケット(FEC repair Packet):パリティシンボルブロックの一つ以上のパリティシンボルを配信するためのリペアFECペイロードID(repair FEC payload ID)を有するパケット
−FECソースパケット(FEC source Packet):ソースFECペイロードID(source FEC payload ID)を有するソースパケット
−FECソースパケットブロック(FEC source Packet Block):ソースシンボルブロックを配信するためのFECソースパケットの集合
−FECリペアパケットブロック(FEC repair Packet Block):リペアシンボルブロックを配信するためのリペアパケットの集合
−FECペイロードID(FEC Payload ID):MMT (MPEG(Moving Picture Experts Group) Media Transport) FEC仕様によってMMTパケットのコンテンツを識別するための識別子
−リペアFECペイロードID(repair FEC Payload ID):リペアパケットと共に使用するためのFECペイロードID
−ソースFECペイロードID(Source FEC payload ID):ソースパケットと共に使用するためのFECペイロードID
−MMT(MPEG Media Transport):MPEGデータを効率的に伝送するために設計された国際標準
−FECソースフロー(FEC Source Flow):MMT FEC仕様の一方法により保護されるソースパケットのフロー
−FEC仕様(FEC scheme):FEC符号を使用するために要求されるプロトコル面での拡張を定義する仕様
−FEC符号(FEC code):当該符号化されたデータのフローがデータ消失に対して回復力があるようにする、データを符号化するアルゴリズム
−FECリペアフロー(FEC repair Flow):ソースフローを保護するためにリペアシンボルを搬送するデータのフロー
−FEC符号化フロー(FEC encoded flow):一つのFECソースフローとそれと関係する一つ以上のFECリペアフローとで構成されたフローの論理的な集合
−アセット(Asset):同一のアセットIDを有する一つ又はそれ以上のメディアプロセッシングユニット(Media Processing Unit:MPU)によって構成された同一の伝送特性を有するデータを含むデータエンティティ
−メディアプロセッシングユニット(MPU):メディアコーデックに依存せず、独立して復号可能な、定時出力のデータ(timed data)または出力時刻が制限されないデータ(non-timed data)のためのジェネリックコンテナ
−パッケージ(Package):一つ以上のアセットとそれに関するアセット配信特性と構成情報(Composition Information:CI)で構成されたデータの論理的な集合
−MMTパケット(MMT packet):MMTプロトコルによって生成されるか消費されるデータのフォーマットの1単位
−MMTペイロード(MMT payload):MMTプロトコル、またはインターネットアプリケーションレイヤトランスポートプロトコル(例えば、RTP:Real-Time Transport Protocol)を使用するパッケージやシグナリングメッセージを搬送するためのデータのフォーマットの1単位
−MMTプロトコル(MMT Protocol):IP(インターネットプロトコル)ネットワークを通じてMMTペイロードを配信するためのアプリケーションレイヤトランスポートプロトコル
図1は、本発明の一実施形態による送信器及び受信器のブロック構成図である。
図1を参照すると、送信器100は、FEC上位プロトコルに該当するプロトコルAブロック101、FEC符号化ブロック102、FEC下位プロトコルに該当するプロトコルBブロック103及び送信器物理レイヤブロック104を含む。
プロトコルAブロック101は、伝送データを、ソースペイロード130を含むソースパケット形態で構成してFEC符号化ブロック102に伝達する。FEC符号化ブロック102は、上記ソースパケットの集まりであるソースパケットブロックを構成し、FEC符号化を実行してパリティペイロード131を含むパリティ(リペアシンボル)を生成し、上記ソースパケットとパリティシンボルにFECヘッダー132を追加してプロトコルBブロック103に伝達する。この時、上記FECヘッダーと結合されたソースパケットをFECソースパケットと称し、上記FECヘッダーと結合されたパリティシンボルをFECパリティパケットと称する。図1におけるFECソースパケットは、FECヘッダーとソースペイロードがシーケンシャルに連結されたデータ単位であるが、ソースペイロードの後にFECヘッダーが連結されてもよい。また上記図1におけるFEC符号化ブロック102は、プロトコルAブロック101とプロトコルBブロック103との間に位置するが、プロトコルAブロック101がFEC符号化ブロック102を含まれてもよい。この場合、FECパリティパケットにプロトコルAブロック101の機能を実行するためのプロトコルヘッダーが含まれてもよい、上記FEC符号化ブロック102を含むプロトコルAブロック101は、ソースパケットとパリティパケットを一つのパケットフローで形成するための多重化器(multiplexer)を含んでもよい。
送信器物理レイヤブロック104は、上記FECソースパケットとFECパリティ(リペア)パケットを、トランスポートチャンネル120を介して送信するのに適した信号に変換する。プロトコルBブロック103と送信器物理レイヤブロック104との間には、多様なレイヤが存在してもよく、その具体的な構成は、本発明の要旨と関係ないので省略する。
受信器110は、受信器物理レイヤブロック111、FEC下位プロトコルに該当するプロトコルBブロック112、FEC復号ブロック113及びFEC上位プロトコルに該当するプロトコルAブロック114を含む。
受信器物理レイヤブロック111は、トランスポートチャンネル120を通じて受信された信号を解析し、これをプロトコルBブロック112に伝達する。送信器100の場合と同様に、プロトコルBブロック112と受信器物理レイヤブロック111との間には、多様なレイヤが存在してもよく、その具体的な構成は、本発明の要旨と関係ないので省略する。プロトコルBブロック112は、受信信号またはパケットを解析して受信FECパケットをFEC復号ブロック113に伝達する。この時、送信器で送信したFECパケットの一部は、ネットワークの輻輳及び物理レイヤで発生したエラーの影響により消失され、FEC復号ブロック113に伝達されないことがある。FEC復号ブロック113は、伝達されたFECパケットに対するFEC復号を実行して消失されたソースパケットを復元し、これを受信パケットと共に上位プロトコルAブロック114に伝達する。上述するFECヘッダーは、FECペイロードIDを意味し、FECソースパケットのFECヘッダーはソースFECペイロードIDを意味し、FECリペアパケットのFECヘッダーはリペアFECペイロードIDを意味する。また本発明がMMTシステムに適用される場合、上記ソースパケットはMMTパケットとなり、FECソースパケットはソースFECペイロードIDを有するMMTパケットとなり、FECリペアパケットはパリティ(リペア)シンボルを搬送するリペアFECペイロードIDを有するMMTパケットとなる。
図2は、本発明の一実施形態によるMMTシステムにおけるAL−FEC(Application Layer FEC)アーキテクチャーを示す。
MMTアプリケーション210は、AL−FECで保護して伝送するMMTアセットを決定してMMTプロトコル220に入力する。またMMTアプリケーション210は、AL−FEC設定情報(FEC configuration information)をMMT FECスキーム230に入力する。MMTプロトコル220は、入力されたアセットをMMTペイロード(MMTPs)でパケット化(packetize)し、MMTパケットヘッダーを付加してソースパケットを生成し、各々が所定数のソースパケットを含むソースパケットブロックごとにMMT FECスキーム230に入力する。MMT FECスキーム230は、MMTアプリケーション210から入力されたFEC設定情報に基づいた所定のソースシンボルブロック生成方法に従って入力されたそれぞれのソースパケットブロックからソースシンボルブロックを生成する。この時、本発明の実施形態によるソースシンボルブロック生成方法は、FEC設定情報として提供される。MMT FECスキーム230は、FEC設定情報に本発明の実施形態によるソースシンボルブロック生成方法が明記されていると、本発明の実施形態によるソースシンボルブロックを生成する。FEC符号240は、MMT FECスキーム230から、ソースシンボルブロックを受け取り、入力されたソースシンボルブロックからパリティ(リペア)シンボルブロックを生成してMMT FECスキーム230に入力する。MMT FECスキーム230は、上記ソースシンボルブロックと上記パリティ(リペア)シンボルブロックに対してFECペイロードIDを生成し、FEC符号240から受信したパリティ(リペア)シンボルをMMTプロトコル220に入力する。MMTプロトコル220は、ソースパケットにソースFECペイロードIDを付加してFECソースパケットを生成する。MMTプロトコル220は、パリティ(リペア)シンボルにリペアFECペイロードIDと、MMTペイロードヘッダーとMMTパケットヘッダーとを付加してFECリペアパケットを生成する。MMTプロトコル220は、FECソースパケットとFECリペアパケットとをUDP(User Datagram Protocol)のようなトランスポートレイヤ(Transport Layer)250を通じてIP260に伝送する。上記では、説明の便宜のために、ソースパケットブロック単位で、FECソースパケットと、FECパリティ(リペア)パケットとが生成、伝送されることを説明した。しかし、MMT FECスキーム230は、MMTプロトコル220からソースパケットを受信するとすぐに、受信したソースパケットにソースFECペイロードIDを付加してFECソースパケットを生成し、すぐにそのFECソースパケットを伝送することが望ましい。そして、MMT FECスキーム230は、ソースパケットを内部メモリに保存しておき、ソースパケットブロックの最後のソースパケットを受信するとすぐに、上記ソースパケットブロックからソースシンボルブロックを生成することが望ましい。その結果、FEC符号240は、パリティシンボルブロックを生成する。そして、MMT FECスキーム230は、生成されたパリティシンボルブロックをFECペイロードIDと共にMMTプロトコル220に入力することによって、FECパリティ(リペア)パケットを生成し、伝送することが望ましい。
図3は、本発明の一実施形態による2段階(two-stage)のFEC符号化方式を示す。
MMT標準は、相対的に高い信頼度を要求するパケットを一つ以上の誤り訂正符号を使用して保護するための2段階仕様を採用した。上記図3の2段階仕様によれば、MMTプロトコルとMMT FECスキーム(合わせて、MMT FECFRAMEと呼ぶ)は、所定数のソースパケットで構成されたソースパケットブロック(Source Packet Block)をM(Mは1より大きい整数である)個の第1のソースパケットサブブロック(1〜Mth Source Packet Block)に分割し、第1のソースパケットサブブロックの各々から第1のソースシンボルサブブロック(1〜Mth Source Packet Block)を生成し、第1のソースシンボルサブブロックの各々に対して第1のFEC符号化により生成される第1のパリティ(リペア)シンボルブロックを含む第1の符号化シンボルブロックを生成する。その後、MMT FECFRAMEは、M個の第1のソースシンボルサブブロックを第2のソースシンボルブロックとして第2のFEC符号化により生成される第2のパリティ(リペア)シンボルブロックを含む第2の符号化シンボルブロックを生成する。上記の第1のFEC符号化と第2のFEC符号化では、同一の誤り訂正符号が使用されても、異なる誤り訂正符号が使用されてもよい。第1のFEC符号化、第2のFEC符号化に使用される誤り訂正符号としては、RS符号、LDPC符号、ターボ符号(Turbo Code)、ラプター符号(Raptor Code)、XOR(eXclusive OR;排他的論理和)符号など、現在知られたコード及び将来に知られる符号化方式が使用されてもよく、特定の符号化方式に制限されない。図3において、i番目のP1は、i番目のソースシンボルサブブロックのリペアシンボルブロックであり、P2は、ソースシンボルブロックのためのリペアシンボルブロック(i=1、2、…、M)である。
レイヤ構造を有するメディアデータを効率的に保護するために、LA−FECが使用されてもよい。上記レイヤ構造を有するメディアの例として、SVC(Scalable Video Coding)またはMVC(Multiview Video Coding)を使用して符号化されたコンテンツが挙げられる。
図4は、メディアが2個のレイヤで構成されている場合に、LA−FECを適用するためのソースブロック構成方法を示す。図4で、基本レイヤ(base layer)のBR(base representation)は、メディアコーデックとは独立して復号可能なデータであり、拡張レイヤ(enhancement layer)のER(Enhancement representation)は、BRに依存するデータである。図4でERのためのパリティを生成する時、BRを共に使用する点に留意する。
図5は、本発明の一実施形態によるソースパケットブロックからソースシンボルブロックを生成する方法を示す。
図5を参照すると、ソースシンボルブロック生成器(図示せず)は、ソースシンボルサイズT、ソースシンボルサイズTあたりのシンボルエレメントの個数m、ソースシンボル個数Kに従って、TxKアレイで構成されたソースシンボルブロックを生成する。ソースシンボルブロック生成器は、ソースシンボルサイズTとシンボルエレメントの個数mとをFEC設定情報から取得する。図5は、T=32バイト、m=2である場合の例を示す。ソースシンボルブロック生成器は、可変パケットサイズを有する5個のソースパケット、すなわちMMTパケット#0乃至MMTパケット#4を受け取る。ソースパケットは、ソースシンボルブロックの最初の列からシーケンシャルにシンボルエレメント単位で、ソースシンボルブロックに詰められる。必要な時、シンボルエレメントの空き部分は、00hのような予め定められる値を有するパディングデータで埋められる。すなわち、ソースパケットは、常にシンボルエレメントの先頭から詰められる。もし、該当ソースパケットがシンボルエレメントを一杯としない場合、上記シンボルエレメントの残りの部分は00hで満たされ、次のソースパケットは、すぐ次のシンボルエレメントの先頭から再度詰められ始める。図5のように、ソースパケットのデータが不足するにより、SS#7の2番目のシンボルエレメント510、すなわちソースシンボルブロックの最後のシンボルエレメントにソースパケットが詰められない場合には、シンボルエレメントの空の部分にパディングデータが詰められる。
複数のソースシンボルブロック構成方式が使用される場合には、該当ソースシンボルブロックに対応するソースシンボル構成方法を示すssbg_modeなどの識別子を受信器に伝送されなければならない。
上記2段階符号化仕様において、ソースシンボルブロックは、以下のように構成される。ソースパケットブロックがM個のソースパケットサブブロックで構成されると仮定する。所定値mに従い、図5に示した方法によって、最初のソースパケットサブブロックに属するソースパケットを使用することによって、TxK1アレイで構成される最初のソースシンボルサブブロックを生成し、これをFECエンコーダ(図示せず)に伝達する。上記FECエンコーダは、上記ソースシンボルサブブロックを使用してパリティシンボルブロックを生成する。この後、2番目からはM番目までのソースシンボルサブブロックにおいて同一の処理が繰り返される。全てのソースシンボルサブブロックに対するパリティシンボルブロックが生成されると、全てのソースシンボルサブブロックを結合してソースシンボルブロックが構成される。上記FECエンコーダは、上記ソースシンボルブロックを使用してパリティシンボルブロックを生成する。
上記LA−FEC仕様において、ソースシンボルブロックは、以下のように構成される。メディアデータはM個のレイヤを有し、i番目のレイヤは、1番目から(i−1)番目のレイヤに依存すると仮定する。この時、ソースパケットブロックは、M個のソースパケットサブブロック(1〜Mth Source packet Block)を含み、i番目のソースパケットサブブロックは、i番目のレイヤのデータに該当する。上記ソースパケットサブブロックのうちの最初のソースパケットサブブロックに属するソースパケットを使用して最初のソースシンボルサブブロックを生成し、これをFECエンコーダに伝達する。上記FECエンコーダは、上記ソースシンボルサブブロックからパリティシンボルブロックを生成し、これをFECブロック生成器に伝達する。この後、最初のソースシンボルサブブロックと2番目のソースシンボルサブブロックとを結合してソースシンボルブロックを構成し、これをFECエンコーダに伝達する。上記FECエンコーダは、上記ソースシンボルブロックからパリティシンボルブロックを生成し、これをFECブロック生成器に伝達する。同一の処理を繰り返すと、最後に、最初からM番目までのソースシンボルサブブロックを結合してソースシンボルブロックを構成し、これをFECエンコーダに伝達する。上記FECエンコーダは、上記ソースシンボルサブブロックからパリティシンボルブロックを生成し、これをFECブロック生成器に伝達する。この処理後に、M個のソースシンボルサブブロックから生成された全てのパリティシンボルブロックと上記ソースシンボルブロックから生成されたパリティシンボルブロックとをFECパケット生成器に伝達する。
図6は、本発明の一実施形態によるMMTパケットストリームからソースパケットブロックを構成し、ソースシンボルブロックを生成する方法を示す。
図6を参照すると、アセット610はMPUを含み、それぞれのMPUは、MMTパケット620にパケット化される。
パケット化されたMMTパケットは、所定数のMMTパケットで構成されたソースパケットブロック630に分割され、分割されたソースパケットブロックのそれぞれは、ソースシンボルブロック640に変換される。図6には、m=2である場合が図示されている。ソースパケットブロックからソースシンボルブロックに変換するとき、ソースパケットブロックのソースパケットの各々は、シンボルエレメント単位でソースシンボルブロックに詰められる。シンボルエレメントがソースエレメントで一杯とならない場合、00hのような所定値を有するパディングデータで満たし、次のソースパケットは、次のシンボルエレメントの開始位置から詰められる。もし、最後のソースパケットがソースシンボルブロックの最後のソースシンボルが最後のソースパケットで一杯とならない場合、残りの部分は、00hのように所定の値を有するパディングデータで満たす。この場合、最後の部分にパディングされたデータのサイズがT/Mより大きいと、パディングシンボルエレメントを生成する。本発明では、シンボルエレメント単位でパディングされたデータをパディングシンボルエレメントと称する。
図7は、本発明の一実施形態によるFECソースパケットブロックにSS_IDを割り当てる方法を示す。
図7を参照すると、本発明の実施形態による図6に示されたソースシンボルブロック生成方法によって、ソースパケットブロックからソースシンボルブロックが生成されている。それぞれのソースシンボルブロックは、K1個のシンボルエレメントとK2個のシンボルエレメントを有するが、最初のソースシンボルブロックの最後のシンボルエレメント(K1−1)はパディングシンボルエレメントである。それぞれのソースシンボルブロックのシンボルエレメントのブロック内の順序を0〜(K1−1)、0〜(K2−1とする。これをFECソースパケットのソースFECペイロードIDをSS_IDに設定する場合、ランダム値jがSS_IDに設定される。以降のFECソースパケットでは、SS_IDは、それぞれのFECソースパケットに含まれるシンボルエレメントの数だけ増加される。ただし、最初のFECソースパケットブロックの最後のFECソースパケットのSS_IDはj+K1−2に設定されており、該当ソースシンボルブロックの最後のシンボルエレメントがパディングシンボルエレメントであるから、2番目のFECソースパケットブロックの最初のFECソースパケットのSS_IDは、j+K1−1でなく、パディングシンボルエレメントを考慮したj+K1に設定される。
図8は、本発明の一実施形態によるリペアFECペイロードIDを設定する方法を示す。図8によれば、図6及び図7と同一の形態でソースシンボルブロックが生成されている。生成された二つのソースシンボルブロックから、第1のFEC符号化(FEC 1)により、各々が3個のパリティシンボルで構成された二つのパリティシンボルブロックを生成する。そして、上記二つのソースシンボルブロックを結合した1つのソースシンボルブロックから、第2のFEC符号化(FEC 2)により3個のパリティシンボルで構成されたパリティシンボルブロックを生成する。図6及び図7のように、それぞれのソースパケットブロックに該当するソースパケットの各々にソースFECペイロードIDとしてSS_IDを図7のように割り当てて、SS_IDを含むソースパケットをFECソースパケットとして伝送する。FEC符号化により生成されたパリティシンボルブロックのそれぞれのパリティシンボルには、リペアFECペイロードID、MMTペイロードヘッダー及びMMTパケットヘッダーが付加され、FECパリティパケットとして伝送される。上記リペアFECペイロードIDは、SS_Start、RSB_length、RS_ID、SSB_length Fieldで構成され、各Fieldに対する説明は、下記の表2にて行う。それぞれのFECパリティ(リペア)パケット内でのフィールドの値は、図8でのように設定される。最初のソースシンボルブロックのパリティシンボルブロックの3個のFECパリティパケットのリペアFECペイロードIDは、以下の通りである。
SS_Startは、最初のFECソースパケットブロックの最初のFECソースパケットのSS_IDであるj値に設定される。SS_Startは、最初のFECソースパケットブロックのすべてのFECパリティパケットにおいてj値に設定される。SS_Startは、該当FECソースパケットブロックの開始パケットを指し示す。RSB_lengthは、全てのFECパリティパケットにおいて3に設定される。これは、パリティシンボルブロックは3つのパリティシンボルを含むことを示す。SSB_lengthは、K1−1に設定する。これは、該当ソースシンボルブロックのパディングシンボルエレメントを除いたシンボルエレメントの数がK1−1であることを示す。RS_IDは、パリティシンボルを識別するようにするために、それぞれのFECパリティシンボルにおいて、0、1、2に設定する。
2番目のソースシンボルブロックに対するパリティシンボルブロックの3個のFECパリティパケットのリペアFECペイロードIDも同じやり方で設定される。SS_Startはj+K1に、RSB_lengthは3に、SSB_lengthはK2に、RS_IDはFECパリティパケットに合わせて各々0、1、2に設定される。
最初と2番目のソースシンボルブロックを結合したソースシンボルブロックのパリティシンボルブロックの3個のFECパリティパケットにおけるリペアFECペイロードIDも同様に設定される。全てのFECパリティパケットにおいて、SS_Startは、結合されたFECソースパケットブロックの最初のFECソースパケットのSS_IDであるj値に設定される。SS_Startは、該当FECソースパケットブロックの開始パケットを指し示す。RSB_lengthは、全てのFECパリティパケットにおいて3に設定される。これは、パリティシンボルブロックは3つのパリティシンボルを含むことを示す。SSB_lengthは、K1+K2に設定される。これは、結合されたソースシンボルブロックの最後のソースシンボルにパディングされたパディングシンボルエレメントを除いたシンボルエレメントの数がK1+K2であることを示す。RS_IDは、パリティシンボルを識別するために、それぞれのFECパリティパケットに合わせて0、1、2に設定される。
このように設定することによって、受信器は、受信したFECパリティパケットから、FECソースパケットブロックの境界と対応するソースシンボルブロックのサイズを定めることができる。SS_Startから開始FECソースパケットを定め、SSB_lengthからソースシンボルブロック内のソースシンボルの数を定めることができるので、受信器は、受信したFECソースパケットのSS_IDから、受信したパケットが対応するFECソースパケットブロックに含まれるかどうかが分かる。すなわち、SS_Startがjであり、SSB_lengthがK1−1であって、受信したFECソースパケットのSS_IDがjである場合、受信したパケットは開始FECソースパケットである。受信したFECソースパケットのSS_IDがj+K1より小さいと、受信したパケットが対応するFECソースパケットブロックに含まれるパケットである。また、アウトバンドシグナリング(out-band signaling)によって予め受信したT値とm値に基づいて、SSB_length値から、ソースシンボルは、大きさがTであるソースシンボルブロック[(K1−1)/m]個によって構成されることが分かるので、対応するFECソースパケットブロックに属する受信したFECソースパケットのSS_IDからSS_Start値を引くことによって、受信したFECソースパケットがソースシンボルブロックのどのシンボルエレメントかを定めることができるので、ソースシンボルブロックを再構成できる。ここで、任意の実数Aに対して、[A」はAより小さいか同一の最大整数を意味する。また、SSB_lengthとして設定されたK1−1がmの倍数でない場合、S(=K1−1(mod m))個のパディングシンボルエレメントがパディングされていることが分かる。ここで、SはK1−1をmで割った余りである。
一方、図2で、FEC符号240は、入力したソースシンボルブロックからFEC符号化アルゴリズムによってパリティシンボルを計算し、パリティシンボルを含むパリティシンボルブロックを出力する。特定の実装において、FEC符号化アルゴリズムは、所定数のソースシンボルを入力して所定数のパリティシンボルの値を計算する。この場合、上記FEC符号は付加的な制御情報を必要としない。別の実装において、FEC符号化アルゴリズムがソースシンボルの数、パリティシンボルの数、及びソースシンボルとパリティシンボルとの関係に対するFEC符号化情報を必要としてもよい。上記FEC符号化情報は、FEC伝送情報の一部として、MMT FECスキーム230内のFECブロック生成器(図示せず)によって上記FEC符号240に伝送されてもよいが、上述するようにシステム全体の観点で、MMT FECFRAMEの他の全ての構成ブロックが上記FEC伝送情報を認知して符号化動作に活用してもよいことは明らかである。
図9A及び図9Bは、本発明の一実施形態によるFECパケットのフォーマットを示す。
図9Aは、FECソースパケットを示すもので、D2ヘッダー910はMMTパケットヘッダーを示し、D1ヘッダー911はMMTペイロードヘッダーを示し、D1ペイロード912はペイロードデータを運搬し、FECインバンド信号913はソースFECペイロードIDを示す。
図9Bは、FECパリティ(リペア)パケットを示すもので、D2ヘッダー920はMMTパケットヘッダーを示し、D1ヘッダー921はMMTペイロードヘッダーを示し、FECインバンド信号923はリペアFECペイロードIDを示し、D2ペイロード922は一つ又はそれ以上のパリティシンボルを運搬する。
上述するように、図9Aのように、MMTパケットには、FEC符号化後にソースFECペイロードIDが割り当てられる。パリティ(リペア)シンボルは、図9Aのようなフォーマットを有するMMTパケットを含むソースパケットブロックから、本発明の実施形態による一連の処理を経て生成される。図9Bに示すように、パリティ(リペア)シンボルには、リペアFECペイロードID、MMTペイロードヘッダー、MMTパケットヘッダーが付加される。図9Aにおいて、プロトコルパケット(MMTパケット)の統一性を維持し、FECパケット内でソースパケットが連続的に位置するようにするためにFECインバンド信号(FEC in-band signals)913がFECソースパケットの最後に設定されている。FECパリティパケットは、一つあるいはそれ以上のパリティシンボルを伝達する。上記パリティシンボルは、ソースパケットを含むソースシンボルブロックの復元に使用される。図9Bにおいて、受信器においてFEC関連情報を容易に取得できるようにするために、FECインバンド信号(FEC in-band signals)923は、トランスミッションプロトコルヘッダーとパリティシンボルの間に配置されている。
図2に戻り、MMTプロトコル220内のFECパケット生成器(図示せず)は、ソースパケット又はパリティシンボル、ソースFECペイロードID又はリペアFECペイロードID、並びにインバンド信号(in-band signals)を含むFECパケットを生成し、これをFECパケットブロックの形態で出力する。図2において、ソースあるいはリペアFECペイロードIDがインバンド信号とみなされてもよい。
MMTシステムにおいて、ソースパケットは、MMTパケットである。MMTパケットは、MMTパケットヘッダーとMMTペイロードを含む。MMTペイロードはMMTペイロードヘッダーとペイロードデータを含む。図2のMMT FECスキーム230は、入力されたパリティ(リペア)シンボルは、リペアFECペイロードIDと共にペイロードデータと見なされるように、ペイロードデータにMMTペイロードヘッダーとMMTパケットヘッダーを付加することによって、FECパリティパケットを構築し、そのFECパリティパケットを伝送する。
本発明の実施形態によるソースFECペイロードIDとリペアFECペイロードIDは、以下のように定義される。
上記<表1>及び<表2>における各フィールドは、以下の意味である。
−SS_ID(Source Symbol ID):FECソースパケットに含まれたソースシンボルを識別するシーケンス番号である。SS_IDは、シンボルエレメントごとに1ずつ増加する。同じことがパディングシンボルエレメントにも適用される。パディングシンボルエレメントには、FECソースパケットの最初のシンボルエレメントのSS_IDが設定される。現パケットと次パケットのSS_IDの差異は、現パケットに含まれるシンボルエレメントの数と同一であるが、例外的に現FECソースパケットブロックのソースシンボルブロックにパディングシンボルエレメントがある場合、現FECソースパケットブロックの最後のFECソースパケットとその次のFECソースパケットブロックの最初のFECソースパケットのSS_IDの差異は、現FECソースパケットブロックの最後のFECソースパケット内のシンボルエレメントの数とパディングシンボルエレメントの数との和である。上記シーケンス番号の初期値は、任意の値から開始し、予め定められた4バイト以上で表される整数の最大値に到達した以後には0に戻る。
−SS_Start: このフィールドはFECソースパケットにおいてオプショナルである。FECソースパケットがSS_Startを含む場合に、SS_Startは、上記パケットが属したソースシンボルブロックの最初のソースシンボルのSS_IDに設定される。これは、上記ソースパケットが属したソースシンボルブロックの境界情報に該当する。FECパリティパケットにおいて、この情報は、FECパリティパケットブロックに関係するFECソースパケットブロックの最初のFECソースパケットのSS_IDが設定される。受信器は、この情報に基づいて、受信されたFECパケットからFECソースパケットブロックの境界、特にFECソースパケットの開始位置が分かる。
−RSB_length:FECパリティパケットのパリティシンボルが属するパリティシンボルブロックを構成するパリティシンボルの数。すなわち、K個のソースシンボルを含むソースシンボルブロックからFEC符号によりP個のパリティ(リペア)シンボルが生成される場合、このフィールドの値は、Pに設定される。
−RS_ID:FECパリティパケット内のパリティシンボルを識別するためのシーケンス番号。それぞれのパリティシンボルブロック内で上記フィールドは0から始まって1ずつ増加する。一つのFECパリティパケットが複数のパリティシンボルを含む場合には、上記複数のパリティシンボルのシーケンス番号のうちの最小値を表す。
−SSB_length:FECパリティパケット内のパリティシンボルによって保護されるソースシンボル(サブ)ブロックに含まれるシンボルエレメントの数。この数は、ソースシンボルブロックの最後のソースシンボルに含まれるパディングシンボルエレメントを含まない。すなわち、ソースシンボルブロック内のソースシンボルの数をKとし、上記ソースシンボルブロックの最後のソースシンボルにパディングされるパディングシンボルエレメントの数をpとすると、このフィールドは(K*m-p)に設定される。
本発明の実施形態において、受信器は、以下のようにFEC復号を行う。受信器は、送信器がアウトバンド信号として伝送したソースフローごとのFECフローID、FECフローIDによるFEC保護可否、FECのタイプ、FECコーディング構造、ソースシンボルの大きさT(すなわち、パリティシンボルの大きさ)、ソースシンボル内のシンボルエレメントの数m、ソースシンボルブロック生成方法(ssbg_mode)を定め、それらの値に基づいてFEC復号を準備する。受信器は、受信したFECパケットの中から、同じFECフローIDを有するFECパケットを分類する。受信器は、分類されたFECパケット内のFECタイプ情報に基づいて、該当FECパケットがFECソースパケットであるかFECパリティパケットであるかを判定する。2段階FEC符号化の場合、受信器はFECパリティパケットがパリティ1であるかパリティ2であるかを追加的に決定する。受信器は、該当FECパケットがFECソースパケットである場合、FECソースパケットのソースFECペイロードIDからSS_IDを調べる。FECパリティパケットである場合、FECパリティパケットのリペアFECペイロードIDから、SS_Start、RSB_length、RS_ID、SSB_lengthを調べる。受信器は、事前に認知されたFECペイロードID、ソースシンボルの大きさT、ソースシンボル内のシンボルエレメントの数m、ssbg_modeに従って、ソースシンボルブロックまたはパリティシンボルブロックの適切な位置にFECパケットのペイロード(ソースシンボルまたはパリティシンボル)を配置して符号化シンボルブロック(encoding symbol block)を生成する。受信器は、生成された符号化シンボルブロックに適用されたFEC符号を使用して復号することによって伝送途中に消失されたソースパケットに該当するソースシンボルを復元する。受信器は、復元されたソースシンボルがパディングデータ(Padding data)を含む場合、パディングデータを除去して最終的にソースパケットを復元する。
各ソースシンボルは、少なくとも一つのシンボルエレメントを含み、上記シンボルエレメントの数は全てのソースシンボルにおいて同じであり、上記SS_IDは、シンボルエレメントごとに1ずつ増加する。上記ソースシンボルは、パディングバイトを含んでもよく、上記ソースシンボルブロックは、最後のシンボルエレメントとしてパディングバイトのみを有するパディングシンボルエレメントを含んでもよい。パディングシンボルエレメントのSS_IDは、ソースFECパケットの最初のシンボルエレメントのSS_IDに設定される。SSB_lengthは、上記パディングシンボルエレメントを除いた上記ソースシンボルブロック内のシンボルエレメントの数を示す。SSB_lengthは、ソースシンボルブロック内のシンボルエレメントの数を示す。上記リペアFECペイロードIDは、上記ソースシンボルブロックの境界を示すSS_Startをさらに含む。SS_Startは、関連ソースシンボルブロックの最初のシンボルエレメントのSS_IDに設定される。
上記受信器は、FEC設定情報を受信する。上記FEC設定情報は、ssbg_modeを含む。上記ssbg_modeは、ソースシンボルブロックを構成する方法と、FECパケット受信前の上記ssbg_modeに従うソースシンボルごとのシンボルエレメントの数とを示す。上記リペアパリティFECペイロードIDは、SS_Start、RSB_length、RS_IDをさらに含む。SS_Startは、ソースシンボルブロックの境界を示し、RSB_lengthは、関連パリティFECシンボルブロックで生成されたリペアシンボルの数を示し、RS_IDはパリティFECパケットに含まれた第1のリペアシンボルを識別する。ソースFECペイロードIDは、上記ソースFECパケットの最後に配置され、パリティFECペイロードIDは、パリティFECパケットの前部に配置される。
本発明の一実施形態によれば、送信器は、FEC設定情報やその他の符号化設定情報を受信器に伝送することによって、FECを適用したコンテンツを選択的に伝送できる。また、本発明の一実施形態によれば、ネットワーク状況やコンテンツのQoS(Quality of Service)に応じてFECが選択的に適用される。また本発明の一実施形態によれば、FEC設定情報やその他の符号化設定情報を含むFEC制御情報の全部または一部を周期的に反復伝送するかまたは、本発明のインバンドシグナリング方法によりFEC設定情報の全部またはその一部を伝送することができる。既にサービスが進行中である状況で新たな受信器もFEC設定情報を取得することができ、FEC復号によって消失されたデータを復旧することができる。これによってユーザにより良質のサービスを提供することができる。
本発明の一実施形態によるFECパケットを送受信する装置及び方法は、コンピュータ読み取り可能な非一時的記録媒体でコンピュータ読み取り可能なコードとして実装されてもよい。コンピュータ読み取り可能な非一時的記録媒体は、コンピュータ読み取り可能なデータを記録する如何なる種類の記憶装置を含んでもよい。この記録媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、光ディスク、磁気テープ、フロッピー(登録商標)ディスク、ハードディスク、及び不揮発性メモリなどを含んでもよい。さらに、上記コンピュータ読み取り可能な非一時的記録媒体は、ネットワークに接続したコンピュータシステムを介して分散され、上記コンピュータ読み取り可能なコードが、分散方式で格納及び実行されてもよい。
以上の詳細な説明から分かるように、放送/通信システムにおいてパケットを効果的に送受信するための装置及び方法を提供することができる。
以上、本発明の詳細な説明においては具体的な実施形態に関して説明したが、特許請求の範囲及びこれらの均等物によって定められる本発明の範囲及び精神を逸脱することなく、形式や細部の様々な変更が可能であることは、当該技術分野における通常の知識を持つ者には明らかである。
本発明は、放送及び/または通信システムに関し、特に、放送及び/または通信システムにおける前方誤り訂正(Forward Error Correction:FEC)パケットの送受信装置及び方法に関する。
最近の放送及び通信環境では、多様なマルチメディアコンテンツや、高画質(High Definition:HD)コンテンツ、超高画質 (Ultra High Definition:UHD)コンテンツのような高容量コンテンツが増加することにより、ネットワーク上のデータ輻輳(Data Congestion)が深刻になってきている。このようなデータ輻輳によって、送信器(Sender、例えば、ホストA)が送信したコンテンツが受信器(Receiver、例えば、ホストB)に正常に転送されず、コンテンツの一部が経路上で消失される状況が発生する。
一般的に、データは、パケット単位で伝送されるので、データ消失は、パケット単位で発生する。このようにネットワーク上でデータが消失されると、受信器はデータパケットを受信できないので、消失されたパケット内のデータを取得することができない。したがって、オーディオの品質低下、ビデオの画質の劣化、画面のとぎれ、字幕欠落、ファイルの損失のような様々な形態でユーザの不便をもたらす。
したがって、ネットワーク上で発生するデータ消失を復旧するための技術が求められている。
ネットワーク上で消失されたデータの受信器での復旧をサポートする技術として、ソースパケットと呼ばれる可変長のデータパケットを一定数集めて、ソースパケットブロックを構成し、前方誤り訂正(Forward Error Correction:FEC)符号化によって、パリティ(Parity)データまたはリペアパケット(Repair packet)のような復旧情報をソースパケットブロックに付加する技術がある。受信器は、消失されたデータがある場合、上記復旧情報を使用して復号(decoding)を実行することができる。
ソースパケットブロックからFEC符号化を通じてパリティデータまたはリペアパケットを生成する処理では、上記ソースパケットブロックから、同じ長さのソースシンボル(source symbol)を含むソースシンボルブロック(source symbol block)を構成し、ソースシンボルブロックをFEC符号化することにより、リペアシンボル(repair symbol)を含むリペアシンボルブロック(repair symbol block)を生成し、上記生成されたリペアシンボルブロックを、FECリペアパケット(FEC repair packet)に変換する。FECリペアパケットと、FEC符号化後のソースパケットであるFECソースパケット(FEC source packet)とは、共にFECパケットとして伝送される。上記ソースパケットの各々は、可変長であり、ソースシンボルブロックは、同じ長さのソースシンボルで構成されるために、ソースパケットブロックからソースシンボルブロックを生成する時、パディングデータが必要である。したがって、効率的なソースシンボルブロック生成方法が求められる。
また、上記誤り訂正パケットブロック内の誤り訂正信号(つまり、source FEC payload IDentifier(ID))を伝送し、各リペアパケット内の誤り訂正信号(repair FEC payload ID)を伝送する、インバンド(in-band)シグナリング方法も求められている。
上記した情報は、本発明の開示の理解を助けるための背景情報として表示されるだけである。上記のいずれが本発明に関する従来技術として適用されるか否かに関しては、何の決定も主張もなされていない。
本発明は、放送及び通信システムにおけるパケットを送受信するためのインバンドシグナリング方法及び装置を提供する。
本発明の一実施形態によれば、マルチメディアサービスシステムにおけるパケットを送信する方法が提供される。上記方法は、ソースパケットを含むソースパケットブロックを複数のソースパケットサブブロックに分割するステップと、上記複数のソースパケットサブブロックを複数のソースシンボルサブブロックに各々変換するステップと、上記ソースシンボルサブブロックを第1の誤り訂正符号を用いて符号化することによって複数の第1のリペアシンボルブロックを生成するステップと、上記ソースシンボルサブブロックに含まれるソースシンボルにソース誤り訂正ペイロードID(識別子)を付加することによって誤り訂正ソースパケットを構成し、上記第1のリペアシンボルブロックに含まれるリペアシンボルにリペア誤り訂正ペイロードIDを付加することによって誤り訂正リペアパケットを構成するステップと、上記誤り訂正ソースパケット及び上記誤り訂正リペアパケットを送信するステップと、を含む。上記ソース誤り訂正ペイロードIDは、上記誤り訂正ソースパケット内のソースシンボルを識別するシーケンス番号を示すソースシンボルIDを含み、上記リペア誤り訂正ペイロードIDは、上記ソースシンボルサブブロックを連結することによって生成されたソースシンボルブロック内のソースシンボルの数を示すソースシンボルブロック長を含むことを特徴とする。
本発明の実施形態によれば、放送/通信システムにおける効率的なパケット送受信装置及び方法を提供することができる。
本発明の他の態様、利点、及び顕著な特徴は、下記の詳細な説明から当業者には明らかであり、その詳細な説明は、添付の図面とともに本発明の実施形態で開示する。
本発明の一実施形態による送信器及び受信器のブロック構成図である。
本発明の一実施形態によるMMTシステムのAL−FECアーキテクチャーを示す。
本発明の一実施形態による2段階(two-stage)のFEC符号化方法を示す。
本発明の一実施形態によってメディアが2個のレイヤで構成されている場合にLA−FECを適用するためのソースブロック構成方法を示す。
本発明の一実施形態によるソースパケットブロックからソースシンボルブロックを生成する方法を示す。
本発明の一実施形態によるソースパケットフローからソースパケットブロックを構成し、上記ソースパケットブロックからソースシンボルブロックを生成する方法を示す。
本発明の一実施形態によるFECソースパケットブロックにソースFECペイロードID(SS_ID)を割り当てる方法を示す。
本発明の一実施形態によるFECリペアパケットブロックにリペアFECペイロードIDを設定する方法を示す。
本発明の一実施形態によるFECパケットのフォーマットを示す。
本発明の一実施形態によるFECパケットのフォーマットを示す。
添付の図面を参照した下記の説明は、特許請求の範囲及びこの均等物で定められるような本発明の様々な実施形態の包括的な理解を助けるために提供するものである。その説明は、この理解を助けるための様々な特定の詳細を含むが、単なる一つの実施形態に過ぎない。従って、本発明の範囲及び趣旨を逸脱することなく、ここに説明する実施形態の様々な変更及び修正が可能であるということは、当該技術分野における通常の知識を有する者には明らかである。また、明瞭性と簡潔性の観点から、当業者に良く知られている機能や構成に関する具体的な説明は、省略する。
以下の説明及び請求項に使用する用語及び単語は、辞典的意味に限定されるものではなく、本発明の理解を明確且つ一貫性があるようにするために発明者によって使用されたに過ぎない。従って、本発明の実施形態の説明は、単に実例を提供するためのものであって、特許請求の範囲及び均等物によって定められるように本発明の目的を限定するものでないことは、本発明の技術分野における通常の知識を持つ者には明らかである。
本願明細書に記載の各要素は、文脈中に特に明示しない限り、複数形を含むことは、当業者には理解できるものである。したがって、例えば、コンポーネント表面(a component surface)”との記載は、1つ又は複数の表面を含む。
“実質的に(substantially)”という用語では、提示された特徴、パラメータ、又は値が正確に達成される必要はないが、許容誤差、測定誤差、測定精度限界、及び当業者に知られている他の要素を含んだ偏差又は変動が、これらの特性が提供しようとする効果を排除しない範囲内で発生することがあることを意味する。
後述する本発明の実施形態は、高画質(HD)コンテンツまたは超高画質(UHD)コンテンツのような高容量コンテンツばかりでなく、ビデオ会議及び/またはビデオ電話を含む多様なマルチメディアサービスを送受信できる全ての電子機器に適用可能である。この電子機器は、携帯電話、TV、コンピュータ、電子黒板、タブレット及び電子書籍リーダなどのいずれかであってもよい。特に、本開示は、データパケットにFECを適用する時、ソースパケットブロックをソースパケットサブブロックに分割し、ソースシンボルブロックとソースシンボルサブブロックを効率的に構成して復号性能を改善するか、伝送効率(transmission efficiency)を高めることができる方法を提供する。本明細書において、具体的なFEC符号化方法は言及されないが、本発明が特定FEC方法に限定されるものではない。リードソロモン(RS)符号、LDPC(Low Density Parity Check)符号、ターボ(Turbo)符号、ラプター(Raptor)符号、ラプターQ(Raptor Q)符号、XOR(Single Parity-Check Code)、Pro−MPEG(Moving Picture Experts Group)FEC符号などが本開示において選択的に使用されてもよい。
まず、本発明を説明する前に、本発明で使用される用語を以下のように定義する。
−前方誤り訂正(FEC)符号:エラーシンボル(Error Symbol)または削除シンボル(Erasure Symbol)を訂正するための誤り訂正符号
−ソースシンボル(Source Symbol):符号化処理において使用されるデータ単位
−パリティ(リペア)シンボル(Parity (Repair) Symbol):ソースシンボルでない符号化シンボル
−ソースパケット(Source Packet):FECにより保護されるパケット
−ソースパケットブロック(Source Packet Block):一つのブロックとして保護されるFECソースフローのソースパケットの集合
−ソースシンボルブロック(Source Symbol Block):一つのソースパケットブロックから生成されるソースシンボルの集合
−パリティ(リペア)シンボルブロック(Parity (Repair) Symbol Block):消失されたソースシンボルを復旧するために使用することができるリペアシンボルの集合
−符号化シンボルブロック(Encoding Symbol Block):ソースシンボルブロックの符号化処理によって生成される符号化シンボルの集合
−符号化シンボル(encoding symbol):符号化処理により生成されるデータの単位。なお、ソースシンボルは、符号化シンボルの一部である。
−FECリペアパケット(FEC repair Packet):パリティシンボルブロックの一つ以上のパリティシンボルを配信するためのリペアFECペイロードID(repair FEC payload ID)を有するパケット
−FECソースパケット(FEC source Packet):ソースFECペイロードID(source FEC payload ID)を有するソースパケット
−FECソースパケットブロック(FEC source Packet Block):ソースシンボルブロックを配信するためのFECソースパケットの集合
−FECリペアパケットブロック(FEC repair Packet Block):リペアシンボルブロックを配信するためのリペアパケットの集合
−FECペイロードID(FEC Payload ID):MMT (MPEG(Moving Picture Experts Group) Media Transport) FEC仕様によってMMTパケットのコンテンツを識別するための識別子
−リペアFECペイロードID(repair FEC Payload ID):リペアパケットと共に使用するためのFECペイロードID
−ソースFECペイロードID(Source FEC payload ID):ソースパケットと共に使用するためのFECペイロードID
−MMT(MPEG Media Transport):MPEGデータを効率的に伝送するために設計された国際標準
−FECソースフロー(FEC Source Flow):MMT FEC仕様の一方法により保護されるソースパケットのフロー
−FEC仕様(FEC scheme):FEC符号を使用するために要求されるプロトコル面での拡張を定義する仕様
−FEC符号(FEC code):当該符号化されたデータのフローがデータ消失に対して回復力があるようにする、データを符号化するアルゴリズム
−FECリペアフロー(FEC repair Flow):ソースフローを保護するためにリペアシンボルを搬送するデータのフロー
−FEC符号化フロー(FEC encoded flow):一つのFECソースフローとそれと関係する一つ以上のFECリペアフローとで構成されたフローの論理的な集合
−アセット(Asset):同一のアセットIDを有する一つ又はそれ以上のメディアプロセッシングユニット(Media Processing Unit:MPU)によって構成された同一の伝送特性を有するデータを含むデータエンティティ
−メディアプロセッシングユニット(MPU):メディアコーデックに依存せず、独立して復号可能な、定時出力のデータ(timed data)または出力時刻が制限されないデータ(non-timed data)のためのジェネリックコンテナ
−パッケージ(Package):一つ以上のアセットとそれに関するアセット配信特性と構成情報(Composition Information:CI)で構成されたデータの論理的な集合
−MMTパケット(MMT packet):MMTプロトコルによって生成されるか消費されるデータのフォーマットの1単位
−MMTペイロード(MMT payload):MMTプロトコル、またはインターネットアプリケーションレイヤトランスポートプロトコル(例えば、RTP:Real-Time Transport Protocol)を使用するパッケージやシグナリングメッセージを搬送するためのデータのフォーマットの1単位
−MMTプロトコル(MMT Protocol):IP(インターネットプロトコル)ネットワークを通じてMMTペイロードを配信するためのアプリケーションレイヤトランスポートプロトコル
図1は、本発明の一実施形態による送信器及び受信器のブロック構成図である。
図1を参照すると、送信器100は、FEC上位プロトコルに該当するプロトコルAブロック101、FEC符号化ブロック102、FEC下位プロトコルに該当するプロトコルBブロック103及び送信器物理レイヤブロック104を含む。
プロトコルAブロック101は、伝送データを、ソースペイロード130を含むソースパケット形態で構成してFEC符号化ブロック102に伝達する。FEC符号化ブロック102は、上記ソースパケットの集まりであるソースパケットブロックを構成し、FEC符号化を実行してパリティペイロード131を含むパリティ(リペアシンボル)を生成し、上記ソースパケットとパリティシンボルにFECヘッダー132を追加してプロトコルBブロック103に伝達する。この時、上記FECヘッダーと結合されたソースパケットをFECソースパケットと称し、上記FECヘッダーと結合されたパリティシンボルをFECパリティパケットと称する。図1におけるFECソースパケットは、FECヘッダーとソースペイロードがシーケンシャルに連結されたデータ単位であるが、ソースペイロードの後にFECヘッダーが連結されてもよい。また上記図1におけるFEC符号化ブロック102は、プロトコルAブロック101とプロトコルBブロック103との間に位置するが、プロトコルAブロック101がFEC符号化ブロック102を含まれてもよい。この場合、FECパリティパケットにプロトコルAブロック101の機能を実行するためのプロトコルヘッダーが含まれてもよい、上記FEC符号化ブロック102を含むプロトコルAブロック101は、ソースパケットとパリティパケットを一つのパケットフローで形成するための多重化器(multiplexer)を含んでもよい。
送信器物理レイヤブロック104は、上記FECソースパケットとFECパリティ(リペア)パケットを、トランスポートチャンネル120を介して送信するのに適した信号に変換する。プロトコルBブロック103と送信器物理レイヤブロック104との間には、多様なレイヤが存在してもよく、その具体的な構成は、本発明の要旨と関係ないので省略する。
受信器110は、受信器物理レイヤブロック111、FEC下位プロトコルに該当するプロトコルBブロック112、FEC復号ブロック113及びFEC上位プロトコルに該当するプロトコルAブロック114を含む。
受信器物理レイヤブロック111は、トランスポートチャンネル120を通じて受信された信号を解析し、これをプロトコルBブロック112に伝達する。送信器100の場合と同様に、プロトコルBブロック112と受信器物理レイヤブロック111との間には、多様なレイヤが存在してもよく、その具体的な構成は、本発明の要旨と関係ないので省略する。プロトコルBブロック112は、受信信号またはパケットを解析して受信FECパケットをFEC復号ブロック113に伝達する。この時、送信器で送信したFECパケットの一部は、ネットワークの輻輳及び物理レイヤで発生したエラーの影響により消失され、FEC復号ブロック113に伝達されないことがある。FEC復号ブロック113は、伝達されたFECパケットに対するFEC復号を実行して消失されたソースパケットを復元し、これを受信パケットと共に上位プロトコルAブロック114に伝達する。上述するFECヘッダーは、FECペイロードIDを意味し、FECソースパケットのFECヘッダーはソースFECペイロードIDを意味し、FECリペアパケットのFECヘッダーはリペアFECペイロードIDを意味する。また本発明がMMTシステムに適用される場合、上記ソースパケットはMMTパケットとなり、FECソースパケットはソースFECペイロードIDを有するMMTパケットとなり、FECリペアパケットはパリティ(リペア)シンボルを搬送するリペアFECペイロードIDを有するMMTパケットとなる。
図2は、本発明の一実施形態によるMMTシステムにおけるAL−FEC(Application Layer FEC)アーキテクチャーを示す。
MMTアプリケーション210は、AL−FECで保護して伝送するMMTアセットを決定してMMTプロトコル220に入力する。またMMTアプリケーション210は、AL−FEC設定情報(FEC configuration information)をMMT FECスキーム230に入力する。MMTプロトコル220は、入力されたアセットをMMTペイロード(MMTPs)でパケット化(packetize)し、MMTパケットヘッダーを付加してソースパケットを生成し、各々が所定数のソースパケットを含むソースパケットブロックごとにMMT FECスキーム230に入力する。MMT FECスキーム230は、MMTアプリケーション210から入力されたFEC設定情報に基づいた所定のソースシンボルブロック生成方法に従って入力されたそれぞれのソースパケットブロックからソースシンボルブロックを生成する。この時、本発明の実施形態によるソースシンボルブロック生成方法は、FEC設定情報として提供される。MMT FECスキーム230は、FEC設定情報に本発明の実施形態によるソースシンボルブロック生成方法が明記されていると、本発明の実施形態によるソースシンボルブロックを生成する。FEC符号240は、MMT FECスキーム230から、ソースシンボルブロックを受け取り、入力されたソースシンボルブロックからパリティ(リペア)シンボルブロックを生成してMMT FECスキーム230に入力する。MMT FECスキーム230は、上記ソースシンボルブロックと上記パリティ(リペア)シンボルブロックに対してFECペイロードIDを生成し、FEC符号240から受信したパリティ(リペア)シンボルをMMTプロトコル220に入力する。MMTプロトコル220は、ソースパケットにソースFECペイロードIDを付加してFECソースパケットを生成する。MMTプロトコル220は、パリティ(リペア)シンボルにリペアFECペイロードIDと、MMTペイロードヘッダーとMMTパケットヘッダーとを付加してFECリペアパケットを生成する。MMTプロトコル220は、FECソースパケットとFECリペアパケットとをUDP(User Datagram Protocol)のようなトランスポートレイヤ(Transport Layer)250を通じてIP260に伝送する。上記では、説明の便宜のために、ソースパケットブロック単位で、FECソースパケットと、FECパリティ(リペア)パケットとが生成、伝送されることを説明した。しかし、MMT FECスキーム230は、MMTプロトコル220からソースパケットを受信するとすぐに、受信したソースパケットにソースFECペイロードIDを付加してFECソースパケットを生成し、すぐにそのFECソースパケットを伝送することが望ましい。そして、MMT FECスキーム230は、ソースパケットを内部メモリに保存しておき、ソースパケットブロックの最後のソースパケットを受信するとすぐに、上記ソースパケットブロックからソースシンボルブロックを生成することが望ましい。その結果、FEC符号240は、パリティシンボルブロックを生成する。そして、MMT FECスキーム230は、生成されたパリティシンボルブロックをFECペイロードIDと共にMMTプロトコル220に入力することによって、FECパリティ(リペア)パケットを生成し、伝送することが望ましい。
図3は、本発明の一実施形態による2段階(two-stage)のFEC符号化方式を示す。
MMT標準は、相対的に高い信頼度を要求するパケットを一つ以上の誤り訂正符号を使用して保護するための2段階仕様を採用した。上記図3の2段階仕様によれば、MMTプロトコルとMMT FECスキーム(合わせて、MMT FECFRAMEと呼ぶ)は、所定数のソースパケットで構成されたソースパケットブロック(Source Packet Block)をM(Mは1より大きい整数である)個の第1のソースパケットサブブロック(1〜Mth Source Packet Block)に分割し、第1のソースパケットサブブロックの各々から第1のソースシンボルサブブロック(1〜Mth Source Packet Block)を生成し、第1のソースシンボルサブブロックの各々に対して第1のFEC符号化により生成される第1のパリティ(リペア)シンボルブロックを含む第1の符号化シンボルブロックを生成する。その後、MMT FECFRAMEは、M個の第1のソースシンボルサブブロックを第2のソースシンボルブロックとして第2のFEC符号化により生成される第2のパリティ(リペア)シンボルブロックを含む第2の符号化シンボルブロックを生成する。上記の第1のFEC符号化と第2のFEC符号化では、同一の誤り訂正符号が使用されても、異なる誤り訂正符号が使用されてもよい。第1のFEC符号化、第2のFEC符号化に使用される誤り訂正符号としては、RS符号、LDPC符号、ターボ符号(Turbo Code)、ラプター符号(Raptor Code)、XOR(eXclusive OR;排他的論理和)符号など、現在知られたコード及び将来に知られる符号化方式が使用されてもよく、特定の符号化方式に制限されない。図3において、i番目のP1は、i番目のソースシンボルサブブロックのリペアシンボルブロックであり、P2は、ソースシンボルブロックのためのリペアシンボルブロック(i=1、2、…、M)である。
レイヤ構造を有するメディアデータを効率的に保護するために、LA−FECが使用されてもよい。上記レイヤ構造を有するメディアの例として、SVC(Scalable Video Coding)またはMVC(Multiview Video Coding)を使用して符号化されたコンテンツが挙げられる。
図4は、メディアが2個のレイヤで構成されている場合に、LA−FECを適用するためのソースブロック構成方法を示す。図4で、基本レイヤ(base layer)のBR(base representation)は、メディアコーデックとは独立して復号可能なデータであり、拡張レイヤ(enhancement layer)のER(Enhancement representation)は、BRに依存するデータである。図4でERのためのパリティを生成する時、BRを共に使用する点に留意する。
図5は、本発明の一実施形態によるソースパケットブロックからソースシンボルブロックを生成する方法を示す。
図5を参照すると、ソースシンボルブロック生成器(図示せず)は、ソースシンボルサイズT、ソースシンボルサイズTあたりのシンボルエレメントの個数m、ソースシンボル個数Kに従って、TxKアレイで構成されたソースシンボルブロックを生成する。ソースシンボルブロック生成器は、ソースシンボルサイズTとシンボルエレメントの個数mとをFEC設定情報から取得する。図5は、T=32バイト、m=2である場合の例を示す。ソースシンボルブロック生成器は、可変パケットサイズを有する5個のソースパケット、すなわちMMTパケット#0乃至MMTパケット#4を受け取る。ソースパケットは、ソースシンボルブロックの最初の列からシーケンシャルにシンボルエレメント単位で、ソースシンボルブロックに詰められる。必要な時、シンボルエレメントの空き部分は、00hのような予め定められる値を有するパディングデータで埋められる。すなわち、ソースパケットは、常にシンボルエレメントの先頭から詰められる。もし、該当ソースパケットがシンボルエレメントを一杯としない場合、上記シンボルエレメントの残りの部分は00hで満たされ、次のソースパケットは、すぐ次のシンボルエレメントの先頭から再度詰められ始める。図5のように、ソースパケットのデータが不足するにより、SS#7の2番目のシンボルエレメント510、すなわちソースシンボルブロックの最後のシンボルエレメントにソースパケットが詰められない場合には、シンボルエレメントの空の部分にパディングデータが詰められる。
複数のソースシンボルブロック構成方式が使用される場合には、該当ソースシンボルブロックに対応するソースシンボル構成方法を示すssbg_modeなどの識別子を受信器に伝送されなければならない。
上記2段階符号化仕様において、ソースシンボルブロックは、以下のように構成される。ソースパケットブロックがM個のソースパケットサブブロックで構成されると仮定する。所定値mに従い、図5に示した方法によって、最初のソースパケットサブブロックに属するソースパケットを使用することによって、TxK1アレイで構成される最初のソースシンボルサブブロックを生成し、これをFECエンコーダ(図示せず)に伝達する。上記FECエンコーダは、上記ソースシンボルサブブロックを使用してパリティシンボルブロックを生成する。この後、2番目からはM番目までのソースシンボルサブブロックにおいて同一の処理が繰り返される。全てのソースシンボルサブブロックに対するパリティシンボルブロックが生成されると、全てのソースシンボルサブブロックを結合してソースシンボルブロックが構成される。上記FECエンコーダは、上記ソースシンボルブロックを使用してパリティシンボルブロックを生成する。
上記LA−FEC仕様において、ソースシンボルブロックは、以下のように構成される。メディアデータはM個のレイヤを有し、i番目のレイヤは、1番目から(i−1)番目のレイヤに依存すると仮定する。この時、ソースパケットブロックは、M個のソースパケットサブブロック(1〜Mth Source packet Block)を含み、i番目のソースパケットサブブロックは、i番目のレイヤのデータに該当する。上記ソースパケットサブブロックのうちの最初のソースパケットサブブロックに属するソースパケットを使用して最初のソースシンボルサブブロックを生成し、これをFECエンコーダに伝達する。上記FECエンコーダは、上記ソースシンボルサブブロックからパリティシンボルブロックを生成し、これをFECブロック生成器に伝達する。この後、最初のソースシンボルサブブロックと2番目のソースシンボルサブブロックとを結合してソースシンボルブロックを構成し、これをFECエンコーダに伝達する。上記FECエンコーダは、上記ソースシンボルブロックからパリティシンボルブロックを生成し、これをFECブロック生成器に伝達する。同一の処理を繰り返すと、最後に、最初からM番目までのソースシンボルサブブロックを結合してソースシンボルブロックを構成し、これをFECエンコーダに伝達する。上記FECエンコーダは、上記ソースシンボルサブブロックからパリティシンボルブロックを生成し、これをFECブロック生成器に伝達する。この処理後に、M個のソースシンボルサブブロックから生成された全てのパリティシンボルブロックと上記ソースシンボルブロックから生成されたパリティシンボルブロックとをFECパケット生成器に伝達する。
図6は、本発明の一実施形態によるMMTパケットストリームからソースパケットブロックを構成し、ソースシンボルブロックを生成する方法を示す。
図6を参照すると、アセット610はMPUを含み、それぞれのMPUは、MMTパケット620にパケット化される。
パケット化されたMMTパケットは、所定数のMMTパケットで構成されたソースパケットブロック630に分割され、分割されたソースパケットブロックのそれぞれは、ソースシンボルブロック640に変換される。図6には、m=2である場合が図示されている。ソースパケットブロックからソースシンボルブロックに変換するとき、ソースパケットブロックのソースパケットの各々は、シンボルエレメント単位でソースシンボルブロックに詰められる。シンボルエレメントがソースエレメントで一杯とならない場合、00hのような所定値を有するパディングデータで満たし、次のソースパケットは、次のシンボルエレメントの開始位置から詰められる。もし、最後のソースパケットがソースシンボルブロックの最後のソースシンボルが最後のソースパケットで一杯とならない場合、残りの部分は、00hのように所定の値を有するパディングデータで満たす。この場合、最後の部分にパディングされたデータのサイズがT/Mより大きいと、パディングシンボルエレメントを生成する。本発明では、シンボルエレメント単位でパディングされたデータをパディングシンボルエレメントと称する。
図7は、本発明の一実施形態によるFECソースパケットブロックにSS_IDを割り当てる方法を示す。
図7を参照すると、本発明の実施形態による図6に示されたソースシンボルブロック生成方法によって、ソースパケットブロックからソースシンボルブロックが生成されている。それぞれのソースシンボルブロックは、K1個のシンボルエレメントとK2個のシンボルエレメントを有するが、最初のソースシンボルブロックの最後のシンボルエレメント(K1−1)はパディングシンボルエレメントである。それぞれのソースシンボルブロックのシンボルエレメントのブロック内の順序を0〜(K1−1)、0〜(K2−1とする。これをFECソースパケットのソースFECペイロードIDをSS_IDに設定する場合、ランダム値jがSS_IDに設定される。以降のFECソースパケットでは、SS_IDは、それぞれのFECソースパケットに含まれるシンボルエレメントの数だけ増加される。ただし、最初のFECソースパケットブロックの最後のFECソースパケットのSS_IDはj+K1−2に設定されており、該当ソースシンボルブロックの最後のシンボルエレメントがパディングシンボルエレメントであるから、2番目のFECソースパケットブロックの最初のFECソースパケットのSS_IDは、j+K1−1でなく、パディングシンボルエレメントを考慮したj+K1に設定される。
図8は、本発明の一実施形態によるリペアFECペイロードIDを設定する方法を示す。図8によれば、図6及び図7と同一の形態でソースシンボルブロックが生成されている。生成された二つのソースシンボルブロックから、第1のFEC符号化(FEC 1)により、各々が3個のパリティシンボルで構成された二つのパリティシンボルブロックを生成する。そして、上記二つのソースシンボルブロックを結合した1つのソースシンボルブロックから、第2のFEC符号化(FEC 2)により3個のパリティシンボルで構成されたパリティシンボルブロックを生成する。図6及び図7のように、それぞれのソースパケットブロックに該当するソースパケットの各々にソースFECペイロードIDとしてSS_IDを図7のように割り当てて、SS_IDを含むソースパケットをFECソースパケットとして伝送する。FEC符号化により生成されたパリティシンボルブロックのそれぞれのパリティシンボルには、リペアFECペイロードID、MMTペイロードヘッダー及びMMTパケットヘッダーが付加され、FECパリティパケットとして伝送される。上記リペアFECペイロードIDは、SS_Start、RSB_length、RS_ID、SSB_length Fieldで構成され、各Fieldに対する説明は、下記の表2にて行う。それぞれのFECパリティ(リペア)パケット内でのフィールドの値は、図8でのように設定される。最初のソースシンボルブロックのパリティシンボルブロックの3個のFECパリティパケットのリペアFECペイロードIDは、以下の通りである。
SS_Startは、最初のFECソースパケットブロックの最初のFECソースパケットのSS_IDであるj値に設定される。SS_Startは、最初のFECソースパケットブロックのすべてのFECパリティパケットにおいてj値に設定される。SS_Startは、該当FECソースパケットブロックの開始パケットを指し示す。RSB_lengthは、全てのFECパリティパケットにおいて3に設定される。これは、パリティシンボルブロックは3つのパリティシンボルを含むことを示す。SSB_lengthは、K1−1に設定する。これは、該当ソースシンボルブロックのパディングシンボルエレメントを除いたシンボルエレメントの数がK1−1であることを示す。RS_IDは、パリティシンボルを識別するようにするために、それぞれのFECパリティシンボルにおいて、0、1、2に設定する。
2番目のソースシンボルブロックに対するパリティシンボルブロックの3個のFECパリティパケットのリペアFECペイロードIDも同じやり方で設定される。SS_Startはj+K1に、RSB_lengthは3に、SSB_lengthはK2に、RS_IDはFECパリティパケットに合わせて各々0、1、2に設定される。
最初と2番目のソースシンボルブロックを結合したソースシンボルブロックのパリティシンボルブロックの3個のFECパリティパケットにおけるリペアFECペイロードIDも同様に設定される。全てのFECパリティパケットにおいて、SS_Startは、結合されたFECソースパケットブロックの最初のFECソースパケットのSS_IDであるj値に設定される。SS_Startは、該当FECソースパケットブロックの開始パケットを指し示す。RSB_lengthは、全てのFECパリティパケットにおいて3に設定される。これは、パリティシンボルブロックは3つのパリティシンボルを含むことを示す。SSB_lengthは、K1+K2に設定される。これは、結合されたソースシンボルブロックの最後のソースシンボルにパディングされたパディングシンボルエレメントを除いたシンボルエレメントの数がK1+K2であることを示す。RS_IDは、パリティシンボルを識別するために、それぞれのFECパリティパケットに合わせて0、1、2に設定される。
このように設定することによって、受信器は、受信したFECパリティパケットから、FECソースパケットブロックの境界と対応するソースシンボルブロックのサイズを定めることができる。SS_Startから開始FECソースパケットを定め、SSB_lengthからソースシンボルブロック内のソースシンボルの数を定めることができるので、受信器は、受信したFECソースパケットのSS_IDから、受信したパケットが対応するFECソースパケットブロックに含まれるかどうかが分かる。すなわち、SS_Startがjであり、SSB_lengthがK1−1であって、受信したFECソースパケットのSS_IDがjである場合、受信したパケットは開始FECソースパケットである。受信したFECソースパケットのSS_IDがj+K1より小さいと、受信したパケットが対応するFECソースパケットブロックに含まれるパケットである。また、アウトバンドシグナリング(out-band signaling)によって予め受信したT値とm値に基づいて、SSB_length値から、ソースシンボルは、大きさがTであるソースシンボルブロック[(K1−1)/m]個によって構成されることが分かるので、対応するFECソースパケットブロックに属する受信したFECソースパケットのSS_IDからSS_Start値を引くことによって、受信したFECソースパケットがソースシンボルブロックのどのシンボルエレメントかを定めることができるので、ソースシンボルブロックを再構成できる。ここで、任意の実数Aに対して、[A」はAより小さいか同一の最大整数を意味する。また、SSB_lengthとして設定されたK1−1がmの倍数でない場合、S(=K1−1(mod m))個のパディングシンボルエレメントがパディングされていることが分かる。ここで、SはK1−1をmで割った余りである。
一方、図2で、FEC符号240は、入力したソースシンボルブロックからFEC符号化アルゴリズムによってパリティシンボルを計算し、パリティシンボルを含むパリティシンボルブロックを出力する。特定の実装において、FEC符号化アルゴリズムは、所定数のソースシンボルを入力して所定数のパリティシンボルの値を計算する。この場合、上記FEC符号は付加的な制御情報を必要としない。別の実装において、FEC符号化アルゴリズムがソースシンボルの数、パリティシンボルの数、及びソースシンボルとパリティシンボルとの関係に対するFEC符号化情報を必要としてもよい。上記FEC符号化情報は、FEC伝送情報の一部として、MMT FECスキーム230内のFECブロック生成器(図示せず)によって上記FEC符号240に伝送されてもよいが、上述するようにシステム全体の観点で、MMT FECFRAMEの他の全ての構成ブロックが上記FEC伝送情報を認知して符号化動作に活用してもよいことは明らかである。
図9A及び図9Bは、本発明の一実施形態によるFECパケットのフォーマットを示す。
図9Aは、FECソースパケットを示すもので、D2ヘッダー910はMMTパケットヘッダーを示し、D1ヘッダー911はMMTペイロードヘッダーを示し、D1ペイロード912はペイロードデータを運搬し、FECインバンド信号913はソースFECペイロードIDを示す。
図9Bは、FECパリティ(リペア)パケットを示すもので、D2ヘッダー920はMMTパケットヘッダーを示し、D1ヘッダー921はMMTペイロードヘッダーを示し、FECインバンド信号923はリペアFECペイロードIDを示し、D2ペイロード922は一つ又はそれ以上のパリティシンボルを運搬する。
上述するように、図9Aのように、MMTパケットには、FEC符号化後にソースFECペイロードIDが割り当てられる。パリティ(リペア)シンボルは、図9Aのようなフォーマットを有するMMTパケットを含むソースパケットブロックから、本発明の実施形態による一連の処理を経て生成される。図9Bに示すように、パリティ(リペア)シンボルには、リペアFECペイロードID、MMTペイロードヘッダー、MMTパケットヘッダーが付加される。図9Aにおいて、プロトコルパケット(MMTパケット)の統一性を維持し、FECパケット内でソースパケットが連続的に位置するようにするためにFECインバンド信号(FEC in-band signals)913がFECソースパケットの最後に設定されている。FECパリティパケットは、一つあるいはそれ以上のパリティシンボルを伝達する。上記パリティシンボルは、ソースパケットを含むソースシンボルブロックの復元に使用される。図9Bにおいて、受信器においてFEC関連情報を容易に取得できるようにするために、FECインバンド信号(FEC in-band signals)923は、トランスミッションプロトコルヘッダーとパリティシンボルの間に配置されている。
図2に戻り、MMTプロトコル220内のFECパケット生成器(図示せず)は、ソースパケット又はパリティシンボル、ソースFECペイロードID又はリペアFECペイロードID、並びにインバンド信号(in-band signals)を含むFECパケットを生成し、これをFECパケットブロックの形態で出力する。図2において、ソースあるいはリペアFECペイロードIDがインバンド信号とみなされてもよい。
MMTシステムにおいて、ソースパケットは、MMTパケットである。MMTパケットは、MMTパケットヘッダーとMMTペイロードを含む。MMTペイロードはMMTペイロードヘッダーとペイロードデータを含む。図2のMMT FECスキーム230は、入力されたパリティ(リペア)シンボルは、リペアFECペイロードIDと共にペイロードデータと見なされるように、ペイロードデータにMMTペイロードヘッダーとMMTパケットヘッダーを付加することによって、FECパリティパケットを構築し、そのFECパリティパケットを伝送する。
本発明の実施形態によるソースFECペイロードIDとリペアFECペイロードIDは、以下のように定義される。
上記<表1>及び<表2>における各フィールドは、以下の意味である。
−SS_ID(Source Symbol ID):FECソースパケットに含まれたソースシンボルを識別するシーケンス番号である。SS_IDは、シンボルエレメントごとに1ずつ増加する。同じことがパディングシンボルエレメントにも適用される。パディングシンボルエレメントには、FECソースパケットの最初のシンボルエレメントのSS_IDが設定される。現パケットと次パケットのSS_IDの差異は、現パケットに含まれるシンボルエレメントの数と同一であるが、例外的に現FECソースパケットブロックのソースシンボルブロックにパディングシンボルエレメントがある場合、現FECソースパケットブロックの最後のFECソースパケットとその次のFECソースパケットブロックの最初のFECソースパケットのSS_IDの差異は、現FECソースパケットブロックの最後のFECソースパケット内のシンボルエレメントの数とパディングシンボルエレメントの数との和である。上記シーケンス番号の初期値は、任意の値から開始し、予め定められた4バイト以上で表される整数の最大値に到達した以後には0に戻る。
−SS_Start: このフィールドはFECソースパケットにおいてオプショナルである。FECソースパケットがSS_Startを含む場合に、SS_Startは、上記パケットが属したソースシンボルブロックの最初のソースシンボルのSS_IDに設定される。これは、上記ソースパケットが属したソースシンボルブロックの境界情報に該当する。FECパリティパケットにおいて、この情報は、FECパリティパケットブロックに関係するFECソースパケットブロックの最初のFECソースパケットのSS_IDが設定される。受信器は、この情報に基づいて、受信されたFECパケットからFECソースパケットブロックの境界、特にFECソースパケットの開始位置が分かる。
−RSB_length:FECパリティパケットのパリティシンボルが属するパリティシンボルブロックを構成するパリティシンボルの数。すなわち、K個のソースシンボルを含むソースシンボルブロックからFEC符号によりP個のパリティ(リペア)シンボルが生成される場合、このフィールドの値は、Pに設定される。
−RS_ID:FECパリティパケット内のパリティシンボルを識別するためのシーケンス番号。それぞれのパリティシンボルブロック内で上記フィールドは0から始まって1ずつ増加する。一つのFECパリティパケットが複数のパリティシンボルを含む場合には、上記複数のパリティシンボルのシーケンス番号のうちの最小値を表す。
−SSB_length:FECパリティパケット内のパリティシンボルによって保護されるソースシンボル(サブ)ブロックに含まれるシンボルエレメントの数。この数は、ソースシンボルブロックの最後のソースシンボルに含まれるパディングシンボルエレメントを含まない。すなわち、ソースシンボルブロック内のソースシンボルの数をKとし、上記ソースシンボルブロックの最後のソースシンボルにパディングされるパディングシンボルエレメントの数をpとすると、このフィールドは(K*m-p)に設定される。
本発明の実施形態において、受信器は、以下のようにFEC復号を行う。受信器は、送信器がアウトバンド信号として伝送したソースフローごとのFECフローID、FECフローIDによるFEC保護可否、FECのタイプ、FECコーディング構造、ソースシンボルの大きさT(すなわち、パリティシンボルの大きさ)、ソースシンボル内のシンボルエレメントの数m、ソースシンボルブロック生成方法(ssbg_mode)を定め、それらの値に基づいてFEC復号を準備する。受信器は、受信したFECパケットの中から、同じFECフローIDを有するFECパケットを分類する。受信器は、分類されたFECパケット内のFECタイプ情報に基づいて、該当FECパケットがFECソースパケットであるかFECパリティパケットであるかを判定する。2段階FEC符号化の場合、受信器はFECパリティパケットがパリティ1であるかパリティ2であるかを追加的に決定する。受信器は、該当FECパケットがFECソースパケットである場合、FECソースパケットのソースFECペイロードIDからSS_IDを調べる。FECパリティパケットである場合、FECパリティパケットのリペアFECペイロードIDから、SS_Start、RSB_length、RS_ID、SSB_lengthを調べる。受信器は、事前に認知されたFECペイロードID、ソースシンボルの大きさT、ソースシンボル内のシンボルエレメントの数m、ssbg_modeに従って、ソースシンボルブロックまたはパリティシンボルブロックの適切な位置にFECパケットのペイロード(ソースシンボルまたはパリティシンボル)を配置して符号化シンボルブロック(encoding symbol block)を生成する。受信器は、生成された符号化シンボルブロックに適用されたFEC符号を使用して復号することによって伝送途中に消失されたソースパケットに該当するソースシンボルを復元する。受信器は、復元されたソースシンボルがパディングデータ(Padding data)を含む場合、パディングデータを除去して最終的にソースパケットを復元する。
各ソースシンボルは、少なくとも一つのシンボルエレメントを含み、上記シンボルエレメントの数は全てのソースシンボルにおいて同じであり、上記SS_IDは、シンボルエレメントごとに1ずつ増加する。上記ソースシンボルは、パディングバイトを含んでもよく、上記ソースシンボルブロックは、最後のシンボルエレメントとしてパディングバイトのみを有するパディングシンボルエレメントを含んでもよい。パディングシンボルエレメントのSS_IDは、ソースFECパケットの最初のシンボルエレメントのSS_IDに設定される。SSB_lengthは、上記パディングシンボルエレメントを除いた上記ソースシンボルブロック内のシンボルエレメントの数を示す。SSB_lengthは、ソースシンボルブロック内のシンボルエレメントの数を示す。上記リペアFECペイロードIDは、上記ソースシンボルブロックの境界を示すSS_Startをさらに含む。SS_Startは、関連ソースシンボルブロックの最初のシンボルエレメントのSS_IDに設定される。
上記受信器は、FEC設定情報を受信する。上記FEC設定情報は、ssbg_modeを含む。上記ssbg_modeは、ソースシンボルブロックを構成する方法と、FECパケット受信前の上記ssbg_modeに従うソースシンボルごとのシンボルエレメントの数とを示す。上記リペアパリティFECペイロードIDは、SS_Start、RSB_length、RS_IDをさらに含む。SS_Startは、ソースシンボルブロックの境界を示し、RSB_lengthは、関連パリティFECシンボルブロックで生成されたリペアシンボルの数を示し、RS_IDはパリティFECパケットに含まれた第1のリペアシンボルを識別する。ソースFECペイロードIDは、上記ソースFECパケットの最後に配置され、パリティFECペイロードIDは、パリティFECパケットの前部に配置される。
本発明の一実施形態によれば、送信器は、FEC設定情報やその他の符号化設定情報を受信器に伝送することによって、FECを適用したコンテンツを選択的に伝送できる。また、本発明の一実施形態によれば、ネットワーク状況やコンテンツのQoS(Quality of Service)に応じてFECが選択的に適用される。また本発明の一実施形態によれば、FEC設定情報やその他の符号化設定情報を含むFEC制御情報の全部または一部を周期的に反復伝送するかまたは、本発明のインバンドシグナリング方法によりFEC設定情報の全部またはその一部を伝送することができる。既にサービスが進行中である状況で新たな受信器もFEC設定情報を取得することができ、FEC復号によって消失されたデータを復旧することができる。これによってユーザにより良質のサービスを提供することができる。
本発明の一実施形態によるFECパケットを送受信する装置及び方法は、コンピュータ読み取り可能な非一時的記録媒体でコンピュータ読み取り可能なコードとして実装されてもよい。コンピュータ読み取り可能な非一時的記録媒体は、コンピュータ読み取り可能なデータを記録する如何なる種類の記憶装置を含んでもよい。この記録媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、光ディスク、磁気テープ、フロッピー(登録商標)ディスク、ハードディスク、及び不揮発性メモリなどを含んでもよい。さらに、上記コンピュータ読み取り可能な非一時的記録媒体は、ネットワークに接続したコンピュータシステムを介して分散され、上記コンピュータ読み取り可能なコードが、分散方式で格納及び実行されてもよい。
以上の詳細な説明から分かるように、放送/通信システムにおいてパケットを効果的に送受信するための装置及び方法を提供することができる。
以上、本発明の詳細な説明においては具体的な実施形態に関して説明したが、特許請求の範囲及びこれらの均等物によって定められる本発明の範囲及び精神を逸脱することなく、形式や細部の様々な変更が可能であることは、当該技術分野における通常の知識を持つ者には明らかである。