JP7269112B2 - 受信装置及びプログラム - Google Patents

受信装置及びプログラム Download PDF

Info

Publication number
JP7269112B2
JP7269112B2 JP2019118834A JP2019118834A JP7269112B2 JP 7269112 B2 JP7269112 B2 JP 7269112B2 JP 2019118834 A JP2019118834 A JP 2019118834A JP 2019118834 A JP2019118834 A JP 2019118834A JP 7269112 B2 JP7269112 B2 JP 7269112B2
Authority
JP
Japan
Prior art keywords
packet
fec
frame
fec block
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019118834A
Other languages
English (en)
Other versions
JP2021005799A (ja
Inventor
侑輝 河村
裕靖 永田
悠喜 山上
浩一郎 今村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2019118834A priority Critical patent/JP7269112B2/ja
Publication of JP2021005799A publication Critical patent/JP2021005799A/ja
Application granted granted Critical
Publication of JP7269112B2 publication Critical patent/JP7269112B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、FTTH(Fiber To The Home)、LTE(Long Term Evolution)等のIP(Internet Protocol)回線によるIP放送、地上放送または衛星放送のIP再送信、MBMS(Multimedia Broadcast and Multicast Service)等のモバイル通信の放送モードによるIP放送及びIP再送信、VOD(Video On Demand)サービスによるUDP(User Datagram Protocol)/IPマルチキャスト及びUDP/IPユニキャストでの映像配信等に用いる送信装置、受信装置及びプログラムに関し、特に、伝送路上で損失したパケットを復元する誤り訂正技術に関する。
従来、デジタル放送で用いられるMPEG-2 TS(Transport Stream:トランスポートストリーム)に代わるIPベースの新たなメディアトランスポート方式の国際標準規格として、MMT(MPEG Media Transport)が知られている(非特許文献1を参照)。また、デジタル放送サービスにおけるMMTの利用方法が規格化されている(非特許文献2を参照)。2018年12月には、MMTを採用した新4K8K衛星放送が開始された。
デジタル放送では、MPEG-2 Video、MPEG-4 AVC(Advanced Video Coding)、MPEG-H HEVC(High Efficiency Video Coding)等の映像符号化方式を用いて映像信号を情報圧縮して伝送する。
一般に、映像符号化における情報圧縮は、単一フレーム内の小領域の近傍類似性による情報圧縮と、時間方向に連続するフレーム間の近傍類似性による情報圧縮を組み合わせて行われる。
ただし、任意のタイミングから再生を開始可能なランダムアクセス性を確保するために、一定周期で、時間方向のフレーム間での情報圧縮を使用せず、単一フレーム内で完結した情報圧縮を行うフレームの挿入が必要である。一般に、このようなフレームを「I(Intra)フレーム」という。また、符号化順でIフレームから次のIフレームの前のフレームまでの間の複数のフレームの集合を、「GOP(Group of Picture)」という。
GOP内の符号化順において、Iフレームより後方に位置するフレームは、Iフレームからの差分情報を符号化することで、高効率な情報圧縮が可能である。その反面、伝送路上のパケット損失等によりIフレームのデータが破損した場合には、該当するIフレームだけでなく、依存関係にあるGOP内の全てのフレームに映像破綻等の影響が生じる。一方、Iフレーム以外のフレーム(Pフレーム、Bフレーム)のパケット損失等による映像破綻の影響は、そのフレームとそのフレームを参照する一部のフレームに留まる。
例えば、デジタル放送におけるHEVC映像符号化では、4階層のフレーム間参照構造が用いられる(非特許文献3を参照)。尚、HEVC規格ではスライス単位で符号化モードを決定するため、厳密にはI,P,Bフレームは定義されないが、便宜上、MPEG-2 Video等の従来の符号化方式に倣い、フレーム内符号化のみを行うIスライスからなるフレームをIフレーム、表示順で前方のフレームを参照するPスライスを含むフレームをPフレーム、表示順で前方及び後方のフレームを参照するBスライスを含むフレームをBフレームと呼ぶこととする。PフレームはIスライスを含む場合があり、BフレームはIスライス及びPスライスも含む場合がある。
図18は、HEVC映像符号化における4階層のフレーム間参照構造の例を示す図である。横軸は表示時間を示し、縦軸は階層を示し、四角はIフレーム等のフレームを示し、四角内の数字は符号化順を示す。また、矢印は、復号の際のフレームの参照関係を示す。具体的には、矢印の先のフレームは、矢印の元のフレームを参照して復号されることを示している。例えば符号化順11のフレームは、符号化順1及び10のフレームを参照して復号される。
図18におけるGOPは、符号化順1から32までの32枚のフレームにより構成され、各階層は、Temporal IDで識別される。符号化順でGOPの先頭(符号化順1)のIフレームは、Temporal ID=0に属する。Iフレーム以外のTemporal ID=0に属するフレームは、表示順で前方直近の復号済みのTemporal ID=0のフレームを参照するPフレームである。
Temporal ID=1のフレームは、横軸の表示順において前後直近に位置する復号済みのTemporal ID=0のフレームを参照するBフレームである。Temporal ID=2のフレームは、表示順において前後直近に位置する復号済みのTemporal ID=0または1のフレームを参照するBフレームである。Temporal ID=3のフレームは、表示順において前後直近に位置する復号済みのTemporal ID=0,1または2のフレームを参照するBフレームである。
つまり、Temporal ID=0のIまたはPフレームのデータが破損した場合には、そのフレームが属するGOP内の復号順で後方に位置する全てのフレーム、及び次のGOPに属するフレームのうちそのGOPのIフレームよりも表示順が早いフレームまで映像破綻等の影響が生じる。
一方、Temporal ID=1のBフレームのデータが破損した場合には、そのフレームと前後3フレームの計7フレームに映像破綻等の影響が生じる。また、Temporal ID=2のBフレームのデータが破損した場合には、そのフレームと前後1フレームの計3フレームに映像破綻等の影響が生じる。また、Temporal ID=3のBフレームのデータが破損した場合には、そのフレームのみに映像破綻等の影響が生じる。
一般に、IP回線を用いたIP放送またはIP再送信では、伝送路上でIPパケットの損失が生じると、映像破綻が生じる等、サービス品質に影響を与える可能性がある。このため、サービス品質の確保を目的として、伝送路上で損失したIPパケットを受信装置が復元することを可能とするFEC(Forward Error Correction:前方誤り訂正)が一般的に使用される。
FECには様々なアルゴリズムがあり、一例として、ProMPEG FECがある(非特許文献4を参照)。ProMPEG FECでは、一定数のIPパケットの横1次元または縦横2次元のFECブロックを構成し、横1行または縦1列に並ぶパケットの排他的論理和(XOR)演算によって、1つのリペアパケットを生成する。例えば、10×10の2次元FECブロックを用いた場合、最大100個のソースパケットに対して合計20個のリペアパケットが生成される。
TSを用いる従来のデジタル放送では、映像符号化によるES(Elementary Stream:エレメンタリストリーム)の出力ビットレートの時間変動を、ヌルTSパケットの挿入によって一定のビットレートに平滑化する。IP放送またはIP再送信のIPパケットには、固定数のTSパケットが格納されるため、結果としてIPパケットの送出間隔が一定となり、FECブロックの時間周期も一定となる。
一方、新4K8K放送等のMMT/IPを用いる新しい放送では、ヌルMMTPパケットが規定されていないため、映像符号化によるESの出力ビットレートの時間変動がそのままIPパケットの送出間隔に影響する。
このため、新4K8K放送等ではIPパケットの送出間隔が一定でないことから、IP再送信等のためにFEC付加を行ったとき、FECブロックの時間周期が一定ではなくなる。つまり、映像符号化によるESの出力ビットレートが低下したとき、FECブロックが完成するまでの時間が長くなり、IPパケットが後段に送出されない状態が生じ得る。
このとき、受信装置では、FEC復号部の後段に設けられた映像復号部にてバッファアンダーフローが発生し、映像破綻や表示のカクつきを生じる可能性がある。受信装置の受信バッファを大きくすることにより、映像復号部におけるバッファアンダーフローの発生を防ぐことが可能である。しかし、映像の表示遅延時間及びメモリコストの増大につながる。
符号化された映像を伝送するIPパケットフローにおいて、IPパケットのペイロードに格納された映像データのフレームの種別(フレーム種別)によっては、1個のIPパケットの損失により最悪でGOP長の映像破綻が生じる可能性がある。
パケット損失による映像破綻を防ぐためには、元の信号であるソースパケットに対し、誤り耐性を加えるリペアパケットを追加して送信する誤り訂正手法が用いられる。しかしながら、従来の誤り訂正手法では、フレーム種別等を考慮することなく、全てのIPパケットを等しい誤り訂正強度で保護している。つまり、常に等しい比率でリペアパケットが追加される。この場合の伝送路全体の伝送帯域に対するリペアパケットの伝送に用いられる伝送帯域は、フレーム種別に関わることなく一定である。一方で、図18に示したとおり、IPパケットのフレーム種別または階層によっては、IPパケットの損失に伴う影響が異なるものとなる。このため、従来の誤り訂正手法では、フレーム種別等に応じた伝送帯域を、効果的に活用していないという問題があった。
リペアパケットの伝送に用いる伝送帯域を効果的に活用するためには、IPパケットは、フレーム種別等に応じた誤り訂正強度で保護されることが望ましい。例えば、重要度の高いフレームのIPパケットについては、リペアパケットの伝送に用いられる伝送帯域を広くし、重要度の低いフレームのIPパケットについては、リペアパケットの伝送に用いられる伝送帯域を狭くする。これにより、映像破綻を効果的に防ぎつつ、空いた伝送帯域を別の用途に用いることができ、伝送路全体の伝送帯域を効率よく活用することができる。
また、符号化された映像を伝送するIPパケットフローにおいて、ESの瞬時的なビットレート低下によりIPパケットの送出間隔が長くなると、送信装置のFEC符号化部及び受信装置のFEC復号部において、FECブロックが完成してからIPパケットが後段に出力されるまでの間の待ち時間が長くなる。この場合、特に受信装置の映像復号部では、バッファアンダーフローが発生し易くなり、映像破綻や表示のカクつきが生じる可能性がある。
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、符号化された映像を伝送するIPパケットフローにおいて、伝送帯域の有効活用を可能とし、かつ映像破綻が生じ難い受信装置及びプログラムを提供することにある。
前記課題を解決するために、請求項の受信装置は、映像データが格納されたIPパケットをソースパケットとし、当該ソースパケットに対するFEC符号化により生成されたIPパケットをリペアパケットとして、前記ソースパケット及び前記リペアパケットを受信し、前記ソースパケット及び前記リペアパケットを用いてFEC復号を行う受信装置において、前記ソースパケットには、前記ソースパケット毎にインクリメントされたカウンタ値を示すパケットカウンタ値が含まれており、前記リペアパケットには、FECブロックを構成する前記ソースパケットの行列の次元を示す次元フラグ、フレーム種別毎に設定された前記FECブロックの行列サイズ、前記FECブロックの先頭に位置する前記ソースパケットの前記パケットカウンタ値を示す開始パケットカウンタ値、及び、前記FECブロックに含まれる前記ソースパケットの数を示す有効パケット数が含まれており、受信した前記ソースパケット及び前記リペアパケットを入力し、前記フレーム種別毎に、前記行列サイズまたは前記行列サイズ未満の前記ソースパケット、及び前記リペアパケットを含む前記FECブロックを構成し、前記ソースパケットが損失した場合、前記FECブロックに含まれる前記ソースパケット及び前記リペアパケットに基づいて前記FEC復号を行い、損失した前記ソースパケットを復元するFEC復号部を備え、前記FEC復号部が、前記ソースパケットから前記パケットカウンタ値を抽出すると共に、前記リペアパケットから、前記次元フラグ、前記行列サイズ、前記開始パケットカウンタ値及び前記有効パケット数を抽出し、入力した前記ソースパケット及び前記リペアパケットを入力パケットとして、前記次元フラグが1次元を示している場合、前記入力パケットが前記FECブロックの最終パケットであると判定し、または、前記次元フラグが2次元を示している場合、前記開始パケットカウンタ値及び前記行列サイズに基づいて、前記入力パケットが前記FECブロックの最終パケットであるか否かを判定し、前記入力パケットが前記FECブロックの最終パケットであると判定した場合、前記入力パケットを含む前記FECブロックを構成し、当該FECブロックに含まれる前記ソースパケット及び前記リペアパケットを出力し、前記入力パケットが前記FECブロックの最終パケットでないと判定した場合、前記パケットカウンタ値、及び前記開始パケットカウンタ値に前記有効パケット数を加算した結果の値に基づいて、前記入力パケットが、次の前記FECブロックに属するパケットであるか否かを判定し、前記入力パケットが、次の前記FECブロックに属する前記パケットでないと判定した場合、前記入力パケットを、構成中の前記FECブロックに追加し、前記入力パケットが、次の前記FECブロックに属する前記パケットであると判定した場合、構成中の前記FECブロックに含まれる前記ソースパケット及び前記リペアパケットを出力するFECブロック処理部と、前記FECブロック処理部により出力された前記FECブロックに含まれる前記ソースパケット及び前記リペアパケットを入力し、前記FECブロックに含まれる前記ソースパケット及び前記リペアパケットを用いて、前記フレーム種別がIフレームの場合、Bフレームよりも誤り訂正強度の強い前記FEC復号を行い、前記フレーム種別が前記Bフレームの場合、前記Iフレームよりも前記誤り訂正強度の弱い前記FEC復号を行い、前記フレーム種別がPフレームの場合、前記Iフレーム及び前記Bフレームのいずれかと等しいか、または前記Iフレームと前記Bフレームの間の前記誤り訂正強度の前記FEC復号を行うFEC復号処理部と、を備えたことを特徴とする。
また、請求項のプログラムは、コンピュータを、請求項1に記載の受信装置として機能させることを特徴とする。
以上のように、本発明によれば、符号化された映像を伝送するIPパケットフローにおいて、伝送帯域を有効活用することができる。また、映像破綻が生じ難くなり、サービス品質を確保することが可能となる。
実施例1の映像配信システムの構成例を示す概略図である。 実施例2の映像配信システムの構成例を示す概略図である。 実施例1の送信装置の構成例を示すブロック図である。 実施例1の受信装置の構成例を示すブロック図である。 実施例2の送信装置の構成例を示すブロック図である。 実施例2の受信端末の構成例を示すブロック図である。 FEC符号化部の構成例を示すブロック図である。 FEC符号化部の処理例を示すフローチャートである。 図8に示したステップS807,S808の処理におけるFECブロックの構成例を説明する図である。 FEC符号化処理部の処理例(ステップS805,S807,S808)を示すフローチャートである。 IPパケット(リペア)の生成処理を説明する図である。 IPパケット(リペア)に含まれるFECヘッダの各データを説明する図である。 図10に示したステップS1004~S1009の処理を説明する図である。 FEC復号部の構成例を示すブロック図である。 FEC復号部の処理例を示すフローチャートである。 IPパケット(リペア)に含まれるFECヘッダの構造例を示す図である。 FECヘッダの具体例を示す図である。 HEVC映像符号化における4階層のフレーム間参照構造の例を説明する図である。
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、映像データのフレーム種別に応じて、適応的に誤り訂正強度の異なるFECを用いることを特徴とする。
これにより、符号化された映像を伝送するIPパケットフローにおいて、フレーム種別に応じた伝送帯域(損失による影響が大きいフレームほど誤り訂正用に広い伝送帯域、損失による影響が小さいフレームほど誤り訂正用に狭い伝送帯域を使用)となり、伝送帯域を有効活用することができる。また、受信側では、伝送路上でIPパケットが損失したときに、損失による映像品質への影響が大きいIPパケットほど復元できる可能性が高くなり、映像破綻が生じ難くなるため、サービス品質を確保することができる。
また、本発明は、映像データのフレーム境界を判定し、そのときまでにFECブロックを構成したフレーム境界以前のIPパケットを強制的に出力することを特徴とする。
これにより、FECブロックの構成に伴う遅延を、常に1フレーム以内に収めることができ、短遅延化を実現することができる。そして、受信側では、IPパケットの受信待ちによるバッファアンダーフローの発生を抑えることができる。
〔映像配信システム〕
まず、本発明の実施形態による送信装置及び受信装置を含む映像配信システムについて説明する。図1は、実施例1の映像配信システムの構成例を示す概略図である。この映像配信システム1-1は、送信装置2-1及び受信装置3を備えて構成される。送信装置2-1及び受信装置3はIP回線4を介して接続され、映像配信システム1-1には、符号化された映像を伝送するIPパケットフローが構成される。
送信装置2-1は、図示しない単体の符号化装置等から送信されたMMTのパケット(MMTP/UDP/IPのレイヤ構造のパケット、MMTを含むIPパケット)を受信する。
送信装置2-1は、IPパケットに含まれる映像データのフレーム種別を判定し、IPパケットに対し、フレーム種別に応じて誤り訂正強度の異なるFEC符号化を行う。送信装置2-1は、元のIPパケット、及びFEC符号化にて生成したIPパケットを、IP回線4を介して受信装置3へ送信する。
受信装置3は、送信装置2-1から送信されたIPパケットを、IP回線4を介して受信する。そして、受信装置3は、IPパケットが損失した場合、フレーム種別に応じて誤り訂正強度の異なるFEC符号化に対応するFEC復号を行い、損失したIPパケットを復元する。受信装置3は、MMTを含むIPパケットを送信する。
図2は、実施例2の映像配信システムの構成例を示す概略図である。この映像配信システム1-2は、送信装置2-2及び受信端末5を備えて構成される。送信装置2-2及び受信端末5はIP回線4を介して接続され、映像配信システム1-2には、符号化された映像を伝送するIPパケットフローが構成される。
送信装置2-2は、映像信号を入力し、映像信号を符号化してMMTを含むIPパケットを生成する。そして、送信装置2-2は、図1に示した送信装置2-1と同様に、IPパケットに含まれる映像データのフレーム種別を判定し、IPパケットに対し、フレーム種別に応じて誤り訂正強度の異なるFEC符号化を行う。送信装置2-2は、元のIPパケット、及びFEC符号化にて生成したIPパケットを、IP回線4を介して受信端末5へ送信する。
受信端末5は、スマートフォン、小型ノートパソコン、タブレット型端末等のモバイル端末であり、携帯型の受信装置、またはテレビ、STB(Set Top Box)、メディアプレイヤ、デジタルサイネージ等の固定型の受信装置である。
受信端末5は、送信装置2-2から送信されたIPパケットを、IP回線4を介して受信する。そして、受信端末5は、図1に示した受信装置3と同様に、IPパケットが損失した場合、フレーム種別に応じて誤り訂正強度の異なるFEC符号化に対応するFEC復号を行い、損失したIPパケットを復元する。受信端末5は、IPパケットからMMTを分離して復号し、映像信号を外部へ出力するか、または内蔵のディスプレイに表示する。
尚、映像配信システムは、図1に示した送信装置2-1及び図2に示した受信端末5を備えて構成されるようにしてもよいし、図2に示した送信装置2-2及び図1に示した受信装置3を備えて構成されるようにしてもよい。
〔実施例1〕
まず、図1に示した実施例1の送信装置2-1及び受信装置3について説明する。実施例1は、送信装置2-1が、MMTを含むIPパケットを入力してFEC符号化を行い、元のIPパケット及びFEC符号化にて生成したIPパケットを送信し、受信装置3が、IPパケットを受信してFEC復号を行い、MMTを含むIPパケットを送信する例である。
(送信装置2-1)
図3は、実施例1の送信装置2-1の構成例を示すブロック図である。この送信装置2-1は、IPパケット受信部10、フレーム境界・種別判定部11、FEC符号化部12及びIPパケット送信部13を備えている。
IPパケット受信部10は、図示しない単体の符号化装置等から送信されたMMTを含むIPパケットを受信し、IPパケットに対して所定の受信処理を行う。そして、IPパケット受信部10は、受信処理後のIPパケットをフレーム境界・種別判定部11及びFEC符号化部12に出力する。
IPパケット受信部10が出力するIPパケットは、FEC符号化により生成されるIPパケットと区別して、「IPパケット(ソース)」という。ソースは、ソースパケットであることを意味する。
フレーム境界・種別判定部11は、IPパケット受信部10からIPパケット(ソース)を入力し、IPパケット(ソース)のペイロード(有効ペイロード)からMMTPヘッダ等を抽出する。IPパケット(ソース)のペイロード、MMTPヘッダ等については、後述する図11にて説明する。
フレーム境界・種別判定部11は、IPパケット(ソース)に格納された映像データについて、MMTPヘッダ等のデータに基づき、フレーム境界(フレームの先頭)及びフレームの種別(I,P,Bの種別)を判定し、フレーム境界・種別情報を生成する。フレーム境界・種別判定部11は、入力したIPパケット(ソース)に対応するフレーム境界・種別情報をFEC符号化部12に出力する。
ここで、IPパケット(ソース)には、I,P,Bフレームのうちのいずれかのフレームの映像データが格納されている。また、フレーム境界情報は、当該IPパケット(ソース)に格納されている映像データがフレーム境界であるフレームの先頭部分のデータであるか否かを示す(当該IPパケット(ソース)に、I,P,Bフレームのいずれかのフレームについての最初の映像データが含まれているか否かを示す)情報である。種別情報は、当該IPパケット(ソース)に格納されている映像データの属するフレームの種別を示す情報である。
MMT/IPを用いる新しい放送では、システムレイヤで映像符号化を意識した多重化処理が行われるため、TSを用いる場合と比較して、IPパケットのペイロードに対する解析が容易である。このため、IPパケットのペイロードに格納されたデータに基づいて、フレーム境界・種別情報を生成することができる。
例えば、フレーム境界・種別判定部11は、IPパケット(ソース)に含まれるMMTPヘッダからRAP(Random Access Point)フラグを抽出し、RAPフラグに基づいて、当該IPパケット(ソース)に、GOPの先頭のIフレームにおける先頭部分(先頭の映像データ)が格納されているか否かを判定する。そして、フレーム境界・種別判定部11は、当該IPパケット(ソース)に、GOPの先頭のIフレームにおける先頭部分(先頭の映像データ)が格納されていると判定した場合、Iフレームの境界を示すフレーム境界情報を生成する。
また、MMTでは、映像符号化の処理単位を、MMTPにおいてDU(Data Unit)として取り扱う。映像符号化がHEVCである場合、フレーム境界・種別判定部11は、MMTPペイロード(MMTPペイロードのうちヘッダ以外の部分、後述する図11を参照)に格納されているNALユニットの先頭位置を検出する。NALユニットには、フレームの映像データが格納されている。
フレーム境界・種別判定部11は、NALユニットヘッダからnal_unit_type領域を抽出し、nal_unit_type領域のデータに基づいて、NALユニットの映像データにおけるフレームの種別を特定する。
この場合、フレーム境界・種別判定部11は、NALユニットヘッダのnal_unit_type領域のデータがAUD(Access Unit Delimiter)である場合、当該IPパケットにはフレームの先頭部分のデータが格納されていると判断することができる。RAPフラグが0のパケットに対してこの判定を行うことで、PフレームまたはBフレームの先頭データを含むIPパケットであることがわかる。
さらに、AUDにはpic_type(ピクチャタイプ)領域が格納されており、そのフレームに含まれるスライスの符号化モードを識別することができる。これにより、pic_type=0(Iスライスのみ)の場合はIフレーム、pic_type=1(IまたはPスライス)の場合はPフレーム、pic_type=2(I、PまたはBスライス)の場合はBフレームであると判別することができる。つまり、フレーム境界・種別判定部11は、P,Bフレームの境界及び種別を示すフレーム境界・種別情報を生成することができる。
このように、フレーム境界・種別判定部11により、入力したIPパケット(ソース)に格納された映像データのフレームについて、当該IPパケット(ソース)のペイロードに格納されたデータ(RAPフラグ、NALユニットヘッダ、AUD等)に基づき、フレーム境界及びフレーム種別が判定され、フレーム境界・種別情報が生成される。
尚、フレーム境界・種別判定部11は、IPパケット(ソース)のペイロードからDUを抽出し、DUからDUヘッダを抽出し、DUヘッダに含まれるsample_numberの変化によってフレーム境界を判定するようにしてもよい。
ここで、以下の非特許文献によれば、新4K8K衛星放送の運用では、sample_numberは0に固定されている。このため、この非特許文献の規定に準拠する場合、sample_numberの変化からフレーム境界を判定することができない。
ARIB TR-B39、“高度広帯域衛星デジタル放送運用規定(第三分冊)”
FEC符号化部12は、IPパケット受信部10からIPパケット(ソース)を入力すると共に、フレーム境界・種別判定部11から、当該IPパケット(ソース)に対応するフレーム境界・種別情報を入力する。そして、FEC符号化部12は、フレーム境界・種別情報に基づき、フレーム種別毎に、IPパケット(ソース)を含む所定の行列サイズのFECブロックを構成する。
ここで、FEC符号化部12は、フレーム種別がIフレームの場合、Bフレームよりも誤り訂正強度の強いFEC符号化を行うために、所定の行列サイズのFECブロックを構成する。また、FEC符号化部12は、フレーム種別がBフレームの場合、Iフレームよりも誤り訂正強度の弱いFEC符号化を行うために、Iフレームの場合とは異なる所定の行列サイズのFECブロックを構成する。また、FEC符号化部12は、フレーム種別がPフレームの場合、Iフレーム及びBフレームのいずれかに等しいか、または両者の間の所定の行列サイズのFECブロックを構成する。
すなわち、Iフレームの誤り訂正強度をIp、Bフレームの誤り訂正強度をBp、及びPフレームの誤り訂正強度をPpとすると、Ip,Bpについては以下の式が成り立つ。
[数1]
Ip>Bp ・・・(1)
また、Ip,Pp,Bpについては以下の式が成り立つ。
[数2]
Ip=Pp>Bp または
Ip>Pp=Bp または
Ip>Pp>Bp ・・・(2)
FEC符号化部12は、IPパケット(ソース)が所定の行列サイズに満たない場合、ダミーデータを生成してFECブロックに含める。
FEC符号化部12は、FECブロックを単位としてFEC符号化を行い、後述するFECヘッダ等を生成し、FECヘッダ等を含むリペアパケットを生成する。以下、リペアパケットを「IPパケット(リペア)」という。
FEC符号化部12は、FECブロックを構成するIPパケット(ソース)及びIPパケット(リぺア)をIPパケット送信部13に出力する。この場合、FEC符号化部12は、ダミーデータをIPパケット送信部13に出力しない。FEC符号化部12の詳細については後述する。
IPパケット送信部13は、FEC符号化部12からIPパケット(ソース)及びIPパケット(リペア)を入力し、これらに対して所定の送信処理を行う。そして、IPパケット送信部13は、送信処理後のIPパケット(ソース)及びIPパケット(リペア)をIPパケットとして、IP回線4を介して受信装置3へ送信する。
(受信装置3)
図4は、実施例1の受信装置3の構成例を示すブロック図である。この受信装置3は、IPパケット受信部20、FEC復号部21及びIPパケット送信部22を備えている。
IPパケット受信部20は、送信装置2-1により送信されたIPパケットを、IP回線4を介して受信し、IPパケットに対して所定の受信処理を行う。そして、IPパケット受信部20は、受信処理後のIPパケットであるIPパケット(ソース)及びIPパケット(リペア)をFEC復号部21に出力する。
FEC復号部21は、IPパケット受信部20からIPパケット(ソース)及びIPパケット(リペア)を入力し、IPパケット(リペア)からFECヘッダを抽出し、FECヘッダのデータに基づいて、フレーム種別毎にFECブロックの行列サイズを特定する。そして、FEC復号部21は、フレーム種別毎にFECブロックを構成する。
FEC復号部21は、IPパケット(ソース)が損失している場合、IPパケット(リペア)を用いてFEC復号を行い、損失したIPパケット(ソース)を復元する。FEC復号部21は、IPパケット(ソース)をIPパケット送信部22に出力する。FEC復号部21の詳細については後述する。
IPパケット送信部22は、FEC復号部21からIPパケット(ソース)を入力し、IPパケット(ソース)に対して所定の送信処理を行う。そして、IPパケット送信部22は、送信処理後のIPパケット(ソース)を、MMTを含むIPパケットとして出力する。
〔実施例2〕
次に、図2に示した実施例2の送信装置2-2及び受信端末5について説明する。実施例2は、送信装置2-2が、映像信号を入力して映像符号化を行い、MMTを含むIPパケットを生成してFEC符号化を行い、元のIPパケット及びFEC符号化にて生成したIPパケットを送信し、受信端末5が、IPパケットを受信してFEC復号を行い、IPパケットからMMTを分離して映像復号を行い、映像信号を出力する例である。
(送信装置2-2)
図5は、実施例2の送信装置2-2の構成例を示すブロック図である。この送信装置2-2は、映像入力部14、映像符号化部15、MMT多重化部16、フレーム境界・種別判定部11、FEC符号化部12及びIPパケット送信部13を備えている。送信装置2-2は、これらの構成部に加え、図示しない音声入力部、音声符号部等を備えるようにしてもよい。
映像入力部14は、映像信号を入力し、映像信号に対して所定の入力処理を行い、入力処理後の映像信号を映像符号化部15に出力する。
映像符号化部15は、映像入力部14から映像信号を入力し、映像信号に対して映像符号化処理を行い、映像符号化処理後の映像信号をMMT多重化部16に出力する。
MMT多重化部16は、映像符号化部15から映像符号化処理後の映像信号を入力し、映像信号に対して多重化処理を行うことでMMTを生成し、MMTを含むIPパケット(ソース)を生成する。そして、MMT多重化部16は、IPパケット(ソース)をフレーム境界・種別判定部11及びFEC符号化部12に出力する。
フレーム境界・種別判定部11は、MMT多重化部16からIPパケット(ソース)を入力し、図3に示したフレーム境界・種別判定部11と同様の処理を行う。
FEC符号化部12は、MMT多重化部16からIPパケット(ソース)を入力し、図3に示したFEC符号化部12と同様の処理を行う。また、IPパケット送信部13は、図3に示したIPパケット送信部13と同様の処理を行う。
(受信端末5)
図6は、実施例2の受信端末5の構成例を示すブロック図である。この受信端末5は、IPパケット受信部20、FEC復号部21、MMT分離部23、映像復号部24及び映像出力部25を備えている。
IPパケット受信部20は、送信装置2-2により送信されたIPパケットを、IP回線4を介して受信し、図4に示したIPパケット受信部20と同様の処理を行う。
FEC復号部21は、図4に示したFEC復号部21と同様の処理を行い、IPパケット(ソース)をMMT分離部23に出力する。
MMT分離部23は、FEC復号部21からIPパケット(ソース)を入力し、IPパケット(ソース)に含まれるMMTに対して分離処理を行い、分離処理後の映像信号を映像復号部24に出力する。
映像復号部24は、MMT分離部23から映像信号を入力し、映像信号に対して映像復号処理を行い、映像復号後の映像信号を映像出力部25に出力する。
映像出力部25は、映像復号部24から映像復号後の映像信号を入力し、映像信号に対して所定の映像出力処理を行い、映像出力処理後の映像信号を外部へ出力するか、または内蔵するディスプレイに表示する。
〔FEC符号化部12〕
次に、図3及び図5に示したFEC符号化部12について詳細に説明する。図7は、FEC符号化部12の構成例を示すブロック図である。このFEC符号化部12は、FECブロック処理部30、メモリ31及びFEC符号化処理部32を備えている。
図8は、FEC符号化部12の処理例を示すフローチャートである。以下、図7及び図8を参照して、FEC符号化部12の処理について説明する。
FEC符号化部12のFECブロック処理部30は、IPパケット受信部10からIPパケット(ソース)を入力すると共に、フレーム境界・種別判定部11から、当該IPパケット(ソース)に対応するフレーム境界・種別情報を入力する(ステップS801)。
FECブロック処理部30は、フレーム境界情報がフレーム境界(フレームの先頭)を示しているか否かを判定する(ステップS802)。
FECブロック処理部30は、ステップS802において、フレーム境界情報がフレーム境界を示していると判定した場合(ステップS802:Y)、ステップS807へ移行する。
これにより、フレーム境界情報に対応するIPパケット(ソース)は、新たなフレームの開始点であると判断され、現在のFECブロックの構成処理は締め切られる。FECブロック処理部30は、メモリ31からFECブロックを構成するIPパケット(ソース)を読み出し、IPパケット(ソース)をFEC符号化処理部32に出力する。そして、後述するステップS807~S810の処理により、メモリ31から読み出されたIPパケット(ソース)に対してFEC符号化処理が行われ、次にフレーム種別に応じたFECブロックの行列サイズにて、メモリ31の初期化をした上で、新たなフレームの開始点であると判断されたIPパケット(ソース)をメモリ31に格納する。ステップS807~S810の処理については後述する。
一方、FECブロック処理部30は、ステップS802において、フレーム境界情報がフレーム境界を示していないと判定した場合(ステップS802:N)、入力したIPパケット(ソース)をFECブロックに追加する(ステップS803)。具体的には、FECブロック処理部30は、IPパケット(ソース)をメモリ31に格納する。これにより、メモリ31には、FECブロックを構成するIPパケット(ソース)が格納される。
FECブロック処理部30は、フレーム種別情報に基づいて、当該IPパケット(ソース)に含まれる映像データのフレーム種別を特定する。そして、FECブロック処理部30は、メモリ31に格納されたFECブロックを構成するIPパケット(ソース)の行列サイズS1と、特定したフレーム種別についての予め設定されたFECブロックの行列サイズS2とを比較することで、FECブロックが完成されたか否かを判定する(ステップS804)。
ここで、予め設定されたFECブロックの行列サイズS2は、フレーム種別がIフレームの場合、Bフレームよりも誤り訂正強度の強いFEC符号化が行われるサイズとする。具体的には、FECブロックを構成するIPパケット(ソース)の数に対するIPパケット(リペア)の割合いが、Bフレームよりも高くなるように、行列サイズS2が設定される。
また、フレーム種別がBフレームの場合、Iフレームよりも誤り訂正強度の弱いFEC符号化が行われるサイズとする。具体的には、その割合いが、Iフレームよりも低くなるように、行列サイズS2が設定される。また、フレーム種別がPフレームの場合、Iフレームの行列サイズ及びBフレームの行列サイズのいずれかと同じ行列サイズとするか、またはIフレームの行列サイズとBフレームの行列サイズとの間に位置する行列サイズとする。
FECブロック処理部30は、ステップS804において、FECブロックが完成されていないと判定した場合(ステップS804:N)、すなわちS1<S2を判定した場合、ステップS801へ移行し、新たなIPパケット(ソース)等を入力する。
一方、FECブロック処理部30は、ステップS804において、FECブロックが完成されたと判定した場合(ステップS804:Y)、すなわち行列サイズS1=行列サイズS2を判定した場合、メモリ31からIPパケット(ソース)を読み出す。メモリ31から読み出された全てのIPパケット(ソース)の行列サイズは、予め設定された行列サイズS2である。そして、FECブロック処理部30は、予め設定された行列サイズS2のFECブロックを構成するIPパケット(ソース)をFEC符号化処理部32に出力する。
FEC符号化処理部32は、FECブロック処理部30から、予め設定された行列サイズS2のFECブロックを構成するIPパケット(ソース)を入力する。そして、FEC符号化処理部32は、IPパケット(ソース)を用いてFEC符号化を行うことで、IPパケット(リペア)を生成し、IPパケット(ソース)及びIPパケット(リペア)をIPパケット送信部13に出力する(ステップS805)。この場合、FEC符号化処理部32は、FECヘッダ等を生成し、FECヘッダ等を含むIPパケット(リペア)を生成する。IPパケット(リペア)の詳細については後述する。
これにより、予め設定された行列サイズS2のFECブロックを構成する全てのIPパケット(ソース)、及びIPパケット(リペア)が出力される。
FECブロック処理部30は、現在のフレーム種別に応じたFECブロックの初期化を行い(ステップS806)、ステップS811へ移行する。具体的には、FECブロック処理部30は、メモリ31をクリアし、ステップS804の処理に伴って特定したフレーム種別の行列サイズS2につき、領域を確保する。
一方、FECブロック処理部30は、ステップS802(Y)から移行して、すなわち、フレーム境界情報がフレーム境界を示していると判定した場合、メモリ31からIPパケット(ソース)を読み出す。メモリ31から読み出されたIPパケット(ソース)の行列サイズは、予め設定された行列サイズS2またはこれ未満である。そして、FECブロック処理部30は、予め設定された行列サイズS2またはこれ未満のFECブロックを構成するIPパケット(ソース)をFEC符号化処理部32に出力する。
FEC符号化処理部32は、FECブロック処理部30から、予め設定された行列サイズS2またはこれ未満のFECブロックを構成するIPパケット(ソース)を入力する。
FEC符号化処理部32は、FECブロックに空きがある場合、空きの数分のダミーデータを生成する(ステップS807)。ダミーデータは、有効ペイロード長0であり、先頭から最大長の位置まで全て値0のバイトが設定されたデータである。
具体的には、FEC符号化処理部32は、FECブロックを構成する(構成中のFECブロックの)IPパケット(ソース)の行列サイズS1が、特定したフレーム種別についての予め設定された行列サイズS2未満の場合(S1<S2)、その差分(S2-S1)に相当する数のダミーデータを生成する。尚、直前に入力されたIPパケット(ソース)が、フレームの最終パケットであり、かつFECブロックの最終のIPパケット(ソース)であった場合には、ステップS807において構成中のFECブロックは空(S1=0)である。このため、ステップS807でダミーデータを生成せずにステップS808をスキップして、ステップS809に遷移する。
FEC符号化処理部32は、IPパケット(ソース)及びダミーデータを用いてFEC符号化を行うことで、IPパケット(リペア)を生成し、IPパケット(ソース)及びIPパケット(リペア)をIPパケット送信部13に出力する(ステップS808)。この場合、FEC符号化処理部32は、ダミーデータを出力しない。また、FEC符号化処理部32は、IPパケット(リペア)を生成する際に、FECヘッダ等を生成し、IPパケット(リペア)にFECヘッダ等を含める。
これにより、予め設定された行列サイズS2未満のFECブロックを構成する全てのIPパケット(ソース)、及びIPパケット(リペア)が出力される。尚、ダミーデータのみから生成されたIPパケット(リペア)は出力しなくてもよい。
図9は、図8に示したステップS807,S808の処理におけるFECブロックの構成例を説明する図である。図9(1)は、予め設定されたFECブロックの行列サイズS2が1行×5列=5の場合における1次元のFECブロックの構成例を示す。図9(2)は、予め設定されたFECブロックの行列サイズS2が5行×5列=25の場合における2次元のFECブロックの構成例を示す。
また、SはIPパケット(ソース)を示し、0はダミーデータを示し、RはIPパケット(リペア)を示す。
図9(1)を参照して、FEC符号化処理部32は、FECブロックを構成するIPパケット(ソース)の行列サイズS1(1行×4列=4)が、予め設定された行列サイズS2(1行×5列=5)未満であると判断する(S1<S2)。そして、FEC符号化処理部32は、FECブロックに空きがあると判定し、空きの数分(1個)のダミーデータを生成する。
FEC符号化処理部32は、FECブロックを構成する4個のIPパケット(ソース)及び1個のダミーデータを用いて、1個のIPパケット(リペア)を生成する。
図9(2)を参照して、FEC符号化処理部32は、FECブロックを構成するIPパケット(ソース)の行列サイズS1(3行×5列+1行×3列=18)が、予め設定された行列サイズS2(5行×5列=25)未満であると判断する(S1<S2)。そして、FEC符号化処理部32は、FECブロックに空きがあると判定し、空きの数分(7個)のダミーデータを生成する。
FEC符号化処理部32は、FECブロックを構成する18個のIPパケット(ソース)及び7個のダミーデータを用いて、行方向(横方向)及び列方向(縦方向)にそれぞれ5個、合計10個のIPパケット(リペア)を生成する。
図7及び図8に戻って、FEC符号化処理部32は、ステップS807において、FECブロックに空きがない場合、ダミーデータの生成を行わず、ステップS808に移行してFEC符号化を行う。
これにより、予め設定された行列サイズS2のFECブロックを構成する全てのIPパケット(ソース)、及びIPパケット(リペア)が出力される。
FECブロック処理部30は、入力したIPパケット(ソース)に対応するフレーム種別情報に基づいて、当該IPパケット(ソース)に含まれる映像データのフレーム種別を特定する。そして、FECブロック処理部30は、特定した新たなフレーム種別に応じたFECブロックの初期化を行う(ステップS809)。これにより、メモリ31はクリアされ、特定した新たなフレーム種別の行列サイズS2の領域が確保される。
FECブロック処理部30は、入力したIPパケット(ソース)をFECブロックに追加し(ステップS810)、ステップS811へ移行する。具体的には、FECブロック処理部30は、IPパケット(ソース)をメモリ31に格納する。これにより、メモリ31には、新たなFECブロックを構成する最初のIPパケット(ソース)が格納される。
FEC符号化部12は、ステップS806またはステップS810から移行して、当該処理が終了しない限り(ステップS811:N)、ステップS801へ移行し、新たなIPパケット(ソース)等を入力する。一方、FEC符号化部12は、ユーザによる終了操作等に従い、当該処理を終了させる(ステップS811:Y)。
(FEC符号化処理部32)
図10は、図7に示したFEC符号化処理部32の処理例(ステップS805,S807,S808)を示すフローチャートである。
FEC符号化処理部32は、FECブロック処理部30から、FECブロックを構成する1または複数のIPパケット(ソース)を入力する(ステップS1001)。具体的には、FEC符号化処理部32は、図8に示したステップS805の処理の場合、フレーム種別に応じて予め設定された行列サイズS2のIPパケット(ソース)を入力する。一方、FEC符号化処理部32は、図8に示したステップS807,S808の処理の場合、行列サイズS2未満のサイズのIPパケット(ソース)を入力する。
FEC符号化処理部32は、FECブロックを構成する1または複数のIPパケット(ソース)のうち最大長(最大のデータ長)のIPパケット(ソース)を特定する(ステップS1002)。そして、FEC符号化処理部32は、最大長から最大長未満のIPパケット(ソース)の長さを減算し、最大長未満のIPパケット(ソース)に対し、末尾に減算結果の長さ分の値0を付加する(ステップS1003)。これにより、入力した全てのIPパケット(ソース)の長さを揃えることができ、その長さは同じになる。尚、末尾に追加した値0は、IPパケット(リペア)の生成のために用いられるものであり、IPパケット(ソース)として出力されるときには除外される。
FEC符号化処理部32は、入力したFECブロックを構成する1または複数のIPパケット(ソース)について空きがあるか否かを判定する(ステップS1004)。具体的には、FEC符号化処理部32は、前述のとおり、FECブロックを構成する1または複数のIPパケット(ソース)の行列サイズS1が、予め設定された行列サイズS2未満の場合(S1<S2)、FECブロックに空きがあると判定する。一方、FEC符号化処理部32は、行列サイズS1が行列サイズS2と同じ場合(S1=S2)、FECブロックに空きがないと判定する。
FEC符号化処理部32は、ステップS1004において、FECブロックに空きがあると判定した場合(ステップS1004:Y)、行列サイズS1と行列サイズS2の差分(S2-S1)を求め、差分に相当する数(空き分)のダミーデータを生成する(ステップS1005)。ダミーデータは、FEC符号化処理のXOR演算に影響しないデータであり、前述のとおり、有効ペイロード長0であり、先頭から最大長の位置まで全て値0のバイトが設定されたデータである。
一方、FEC符号化処理部32は、ステップS1004において、FECブロックに空きがないと判定した場合(ステップS1004:N)、ステップS1006へ移行する。
FEC符号化処理部32は、ステップS1005またはステップS1004(N)から移行して、IPパケット(ソース)、またはIPパケット(ソース)及びダミーデータを用いて、FECブロックの行毎及び列毎に、有効ペイロード部分のXOR演算を行うことでFEC符号化を行う(ステップS1006)。
FEC符号化処理部32は、予め設定された行列サイズS2等を含むFECヘッダ、及びその他のデータを生成する(ステップS1007)。具体的には、FEC符号化処理部32は、後述する図12に示すFECヘッダを生成すると共に、MMTPヘッダの一部のデータとして、FEC_type(FECタイプ)及びpkt_seq_num(packet_sequence_number:パケットシーケンス番号)を生成する。また、FEC符号化処理部32は、バイト長XOR値を算出する。
FEC_typeは、MMTPパケットがIPパケット(ソース)であるか、またはIPパケット(リペア)であるかを識別する領域である。FEC_typeの値により、IPパケット(ソース)とIPパケット(リペア)を区別することができる。
IPパケット(リペア)に格納されるpkt_seq_numは、FECブロックにおいてIPパケット(リペア)に順番に付与される番号である。このpkt_seq_numにより、FECブロックにおけるIPパケット(リペア)の位置を特定することができる。
バイト長XOR値は、それぞれのIPパケット(ソース)のうち、FECによる保護の対象となる有効ペイロードのバイト長をXOR演算した結果の値である。このとき、ダミーデータについては、有効ペイロードのバイト長を0としてXOR演算を行う。
FEC符号化処理部32は、バイト長XOR値及びXOR演算結果をFECペイロードのデータとして、FECヘッダ、MMTPヘッダ、FECペイロード等を格納したIPパケット(リペア)を生成する(ステップS1008)。
このように、FEC符号化処理部32により、フレーム種別毎に、FECブロックを単位としたFEC符号化が行われ、IPパケット(リペア)が生成される。
FEC符号化処理部32は、IPパケット(ソース)及びIPパケット(リペア)をIPパケット送信部13に出力する(ステップS1009)。
ここで、FEC符号化処理部32は、ステップS1005にてダミーデータを生成した場合、FECブロックに対応するIPパケット(ソース)、ダミーデータ及びIPパケット(リペア)のうち、IPパケット(ソース)及びIPパケット(リペア)のみを出力し、ダミーデータを出力しない。
これにより、FECブロックの構成及び符号化処理に伴う遅延を小さくすることができ、受信側では、バッファアンダーフローの発生を抑えることができる。
また、ステップS1006におけるFEC符号化処理において、前述のとおり、予め設定されたFECブロックの行列サイズS2は、フレーム種別がIフレームの場合、FECブロックを構成するIPパケット(ソース)の数に対するIPパケット(リペア)の割り合いが、Bフレームよりも高いサイズである。したがって、その割り合いがBフレームよりも高くなることで、Bフレームよりも強いFEC符号化が行われ、所定数のIPパケット(リペア)が生成される。
また、FECブロックの行列サイズS2は、フレーム種別がBフレームの場合、その割り合いがIフレームよりも低いサイズである。したがって、その割り合いがIフレームよりも低くなることで、Iフレームよりも弱いFEC符号化が行われ、所定数のIPパケット(リペア)が生成される。
また、FECブロックの行列サイズS2は、フレーム種別がPフレームの場合、その割り合いがIフレーム及びBフレームのいずれかと等しいか、または両者の間に位置するサイズである。したがって、その割り合いがIフレーム及びBフレームのいずれかと等しい場合、その等しいIフレームまたはBフレームと同じFEC符号化が行われ、所定数のIPパケット(リペア)が生成される。また、その割り合いがIフレームよりも低くBフレームよりも高い場合、Iフレームよりも弱く、Bフレームより強いFEC符号化が行われ、所定数のIPパケット(リペア)が生成される。
(IPパケット(リペア)の生成処理)
IPパケット(リペア)の生成処理について詳細に説明する。図11は、IPパケット(リペア)の生成処理を説明する図である。a_1~a_nは、FECブロックにおいて行方向または列方向に並ぶIPパケット(ソース)であり、bは、a_1~a_nのIPパケット(ソース)を用いて生成されたIPパケット(リペア)である。
a_1~a_nを参照して、IPパケット(ソース)は、IPヘッダ、UDPヘッダ、MMTPヘッダ、MMTPペイロードヘッダ、並びにDUヘッダ及びNALユニットの組から構成される。a_1,a_nのIPパケット(ソース)は、さらに、図10に示したステップS1003の処理により値0が付加されている。
IPヘッダ及びUDPヘッダは、IPパケット(ソース)のヘッダであり、MMTPヘッダ、MMTPペイロードヘッダ、並びにDUヘッダ及びNALユニットの組は、IPパケット(ソース)の有効ペイロードである。このうち、MMTPペイロードヘッダ、並びにDUヘッダ及びNALユニットの組は、MMTPペイロードである。前述のとおり、NALユニットには、フレームの映像データが格納されている。
また、図11には示していないが、IPパケット(ソース)のMMTPヘッダには、packet_id(パケットID)、pkt_seq_num(packet_sequence_number:パケットシーケンス番号)及びpacket_counter(パケットカウンタ)が含まれる。尚、MMTPヘッダのpacket_counterは、packet_counter_flag(パケットカウンタフラグ)が1の場合に存在し、0の場合には存在しない。
packet_idは、映像及び音声等を区別する識別子である。pkt_seq_numは、IPパケット(ソース)毎に、packet_idが異なる映像及び音声等のそれぞれを区別してインクリメントされたカウント値であり、全ての映像のIPパケット(ソース)を対象に設定され、全ての音声のIPパケット(ソース)を対象に設定される。
packet_counterは、IPパケット(ソース)毎に、映像及び音声等を区別することなくインクリメントされたカウント値(パケットカウンタ値)であり、全てのIPパケット(ソース)を対象にして設定される。
これらのpacket_id、pkt_seq_num及びpacket_counterは、図1の実施例1において、図1には示していない符号化装置等により設定され、図2の実施例2において、図5に示した送信装置2-2のMMT多重化部16により設定される。
図11のbを参照して、IPパケット(リペア)は、IPヘッダ、UDPヘッダ、MMTPヘッダ、FECヘッダ及びFECペイロードから構成される。
FECペイロードにおける先頭のバイト長XORは、a_1~a_nのIPパケット(ソース)のFECによる保護の対象とする有効ペイロード(図10のステップS1003においてパケット末尾に追加した値0の部分を含まない)のバイト長をXOR演算した結果のデータである。また、FECペイロードのバイト長XOR以外のデータは、a_1~a_nのIPパケット(ソース)の有効ペイロード部分(パケット末尾に追加した値0の部分を含む)をXOR演算して得られたデータである。
また、図11には示していないが、IPパケット(リペア)のMMTPヘッダには、前述のとおり、FEC_type及びpkt_seq_numが含まれる。これらのFEC_type及びpkt_seq_numは、前述のとおり、送信装置2-1,2-2に備えたFEC符号化部12のFEC符号化処理部32により設定される。
(FECヘッダ)
次に、IPパケット(リペア)に含まれるFECヘッダについて詳細に説明する。図12は、IPパケット(リペア)に含まれるFECヘッダの各データを説明する図である。以下では、MMTPヘッダのpacket_counter_flagが1、つまりpacket_counterが存在する場合とする。
FECヘッダは、2d_flag(次元フラグ)、start_packet_counter(開始パケットカウンタ)、num_column_packets(列方向パケット数)、num_row_packets(行方向パケット数)及びnum_valid_packets(有効パケット数)から構成される。
2d_flagは、FECブロックの次元を示すフラグであり、0の場合、1次元のFECブロックを示し、1の場合、2次元のFECブロックを示す。start_packet_counterは、FECブロックにおいて、先頭に位置するIPパケット(ソース)のpacket_counterの値(開始パケットカウンタ値)である。
num_column_packetsは、FECブロックにおける列方向のパケット数を示し、予め設定されたFECブロックの行列サイズS2における行サイズに相当する。num_row_packetsは、FECブロックにおける行方向のパケット数を示し、予め設定されたFECブロックの行列サイズS2における列サイズに相当する。
num_valid_packetsは、FECブロックにおける有効なIPパケット(ソース)の数(有効パケット数)を示し、メモリ31から読み出されたFECブロックを構成するIPパケット(ソース)の行列サイズS1に相当する。例えば、ダミーデータが生成されないFECブロックでは、この値は、予め設定されたFECブロックの行列サイズS2に相当する。
FEC符号化部12のFEC符号化処理部32は、IPパケット(リペア)を生成する際に、図10に示したステップS1007の処理において、予め設定されたFECブロックの行列サイズS2に基づいて、FECブロックの次元フラグ、列方向パケット数及び行方向パケット数を特定し、それぞれ2d_flag、num_column_packets及びnum_row_packetsを生成する。
また、FEC符号化処理部32は、FECブロックの先頭に位置するIPパケット(ソース)のMMTPヘッダからpacket_counterを抽出し、抽出したpacket_counterの値を開始パケットカウンタとして、start_packet_counterを生成する。
また、FEC符号化処理部32は、FECブロック処理部30から入力したFECブロックを構成するIPパケット(ソース)をカウントし、その数を有効パケット数として、num_valid_packetsを生成する。つまり、有効パケット数は、メモリ31から読み出されたFECブロックを構成するIPパケット(ソース)の行列サイズS1に相当する。
このようにして、FEC符号化処理部32は、2d_flag、start_packet_counter、num_column_packets、num_row_packets及びnum_valid_packetsからなるFECヘッダを生成し、FECヘッダを含むIPパケット(リペア)を生成する。
(ステップS1004~S1009の処理)
次に、図10に示したステップS1004~S1009の処理について具体例を挙げて説明する。図13は、図10に示したステップS1004~S1009の処理を説明する図である。
図13(1)は、予め設定されたFECブロックの行列サイズS2が1行×5列=5の場合における1次元のFECブロックの構成例を示す。図13(2)は、予め設定されたFECブロックの行列サイズS2が5行×5列=25の場合における2次元のFECブロックの構成例を示す。図13(1)(2)は、それぞれ図9(1)(2)に対応する。
また、SはIPパケット(ソース)を示し、0はダミーデータを示し、RはIPパケット(リペア)を示す。
図13(1)を参照して、予め設定されたFECブロックの行列サイズS2が1行×5列=5であるため、FECブロックは1次元であり、行方向パケット数は5である。このため、FEC符号化処理部32は、2d_flag=0及びnum_row_packets=5を生成する。
FEC符号化処理部32は、FECブロックを構成するIPパケット(ソース)をカウントして4を求め、その数を有効パケット数として、num_valid_packets=4を生成する。この場合、FEC符号化処理部32は、1個のダミーデータを生成する。
FEC符号化処理部32は、FECブロックの先頭に位置するIPパケット(ソース)のMMTPヘッダからpacket_counterを抽出し、packet_counterの値を開始パケットカウンタとして、start_packet_counterを生成する。
FEC符号化処理部32は、IPパケット(リペア)について、パケットシーケンス番号を0として、pkt_seq_num=0を生成する。
FEC符号化処理部32は、2d_flag=0、num_row_packets=5、num_valid_packets=4及びstart_packet_counterを含むFECヘッダを生成する。そして、FEC符号化処理部32は、IPパケット(リペア)であることを示すFEC_type及びpkt_seq_num=0をMMTPヘッダに格納し、FECヘッダ、FEC_type及びpkt_seq_num=0を含むIPパケット(リペア)を生成する。
このように、1次元のFECブロックの場合、最大でnum_row_packets個のIPパケット(ソース)を用いて、1個のIPパケット(リペア)が生成される。本例では、4個のIPパケット(ソース)が用いられる。
図13(2)を参照して、予め設定されたFECブロックの行列サイズS2が5行×5列=25であるため、FECブロックは2次元、列方向のパケット数は5、行方向のパケット数は5である。このため、FEC符号化処理部32は、2d_flag=1、num_column_packets=5及びnum_row_packets=5を生成する。
FEC符号化処理部32は、FECブロックを構成するIPパケット(ソース)をカウントして18を求め、その数を有効パケット数として、num_valid_packets=18を生成する。この場合、FEC符号化処理部32は、7個のダミーデータを生成する。
FEC符号化処理部32は、FECブロックの先頭に位置するIPパケット(ソース)のMMTPヘッダからpacket_counterを抽出し、packet_counterの値を開始パケットカウンタとして、start_packet_counterを生成する。
この例では、FEC符号化処理により、10個のIPパケット(リペア)が生成される。FEC符号化処理部32は、生成されるべき10個のIPパケット(リペア)について、図13(2)に示すように、パケットシーケンス番号0,1,・・,9を順番に付与し、pkt_seq_num=0,1,・・・,9を設定する。
ここで、IPパケット(リペア)のpkt_seq_num は、FECブロックを跨いで連続性を持たせる必要がないため、FECブロックの最上行のIPパケット(リペア)について、pkt_seq_numを0とする。pkt_seq_numにより、FECブロックにおいて各IPパケット(リペア)の位置を特定することができる。
FEC符号化処理部32は、2d_flag=1、num_column_packets=5、num_row_packets=5、num_valid_packets=18及びstart_packet_counterを含むFECヘッダを生成する。そして、FEC符号化処理部32は、IPパケット(リペア)であることを示すFEC_type及びpkt_seq_numをMMTPヘッダに格納し、FECヘッダを含むIPパケット(リペア)を生成する。
このように、2次元のFECブロックの場合、行毎に、最大でnum_row_packets個のIPパケット(ソース)を用いて、1個のIPパケット(リペア)が生成される。本例の場合、5個のIPパケット(リペア)が生成される。また、列毎に、最大でnum_column_packets個のIPパケット(ソース)を用いて、1個のIPパケット(リペア)が生成される。本例では、5個のIPパケット(リペア)が生成される。したがって、このFECブロックにおいて、10個のIPパケット(リペア)が生成される。
また、FECブロックは、最大でnum_row_packets×num_column_packets個のIPパケット(ソース)により構成されるが、この数に満たない場合は、num_valid_packets<num_row_packets×num_column_packetsとなる。本例では、(num_valid_packets=18)<(num_row_packets=5)×(num_column_packets=5)=25となる。
尚、図13(2)において、FEC符号化処理部32は、18個のIPパケット(ソース)、及び10個のpkt_seq_num=0~9のIPパケット(リペア)をIPパケット送信部13に出力する。この場合、FEC符号化処理部32は、pkt_seq_num=4のIPパケット(リペア)を出力しなくてもよい。
これは、pkt_seq_num=4のIPパケット(リペア)は、5個のダミーデータを用いて生成されるため、受信側では、pkt_seq_num=4のIPパケット(リペア)を用いて復元されるIPパケット(ソース)が存在しないからである。
つまり、FEC符号化処理部32は、FECブロックにおいて、1行または1列の全てにIPパケット(ソース)が存在しない場合(1行または1列の全てがダミーデータである場合)、その1行または1列について、XOR演算によるFEC符号化を行わなくてもよいし、IPパケット(リペア)を生成しなくてもよい。または、FEC符号化処理部32は、その1行または1列について、XOR演算によるFEC符号化を行い、IPパケット(リペア)を生成するが、IPパケット(リペア)を出力しなくてもよい。
これにより、FEC復号処理に不要なIPパケット(リペア)が送信されないから、伝送帯域を一層有効に活用することができる。
以上のように、本発明の実施例1,2の送信装置2-1,2-2によれば、フレーム境界・種別判定部11は、IPパケット(ソース)のMMTPヘッダ等のデータに基づいて、当該IPパケット(ソース)に格納された映像データが、フレーム境界にあるか否かを判定すると共に、当該映像データのフレーム種別を判定し、フレーム境界・種別情報を生成する。
FEC符号化部12は、フレーム境界・種別情報に基づき、フレーム種別毎に、IPパケット(ソース)を含む所定の行列サイズのFECブロックを構成する。そして、FEC符号化部12は、FECブロックを単位としてFEC符号化を行い、FECブロックの行列サイズ等が格納されたFECヘッダを生成し、FECヘッダ等を含むIPパケット(リペア)を生成する。
ここで、FEC符号化部12は、Iフレームについて、Bフレームよりも誤り訂正強度の強いFEC符号化を行うために、所定の行列サイズのFECブロックを構成する。一方、FEC符号化部12は、Bフレームについて、Iフレームよりも誤り訂正強度の弱いFEC符号化を行うために、Iフレームとは異なる所定の行列サイズのFECブロックを構成する。また、FEC符号化部12は、Pフレームについて、IフレームまたはBフレームと同じ誤り訂正強度のFEC符号化を行うために、IフレームまたはBフレームと同じ所定の行列サイズのFECブロックを構成する。または、FEC符号化部12は、Pフレームについて、IフレームとBフレームの間に位置する誤り訂正強度のFEC符号化を行うために、IフレームとBフレームの間に位置する所定の行列サイズのFECブロックを構成する。
FEC符号化部12は、IPパケット(ソース)が所定の行列サイズに満たない場合、ダミーデータを生成してFECブロックに含める。FEC符号化部12は、IPパケット(ソース)及びIPパケット(リぺア)を出力し、ダミーデータを出力しない。
これにより、送信装置2-1,2-2からIPパケット(ソース)及びIPパケット(リぺア)が送信される。これらのIPパケットの伝送帯域は、Iフレームが他のフレームよりも広くなる。そして、受信側では、フレーム種別毎に、IPパケット(リペア)のFECヘッダのデータに基づき、FECブロックを構成して復号することができる。
このように、映像データのフレーム種別に応じたFECブロックのサイズの変化に対応して、適応的に誤り訂正強度の異なるFEC符号化が行われる。従来のFECブロックは、フレーム種別に関係なく一定サイズであったが、本発明の実施例1,2では、フレーム種別に応じて、FECブロックのサイズが動的に変化することとなる。つまり、パケット損失により映像破綻等の影響が大きいIフレームについては、他のフレームよりも伝送路上において損失したIPパケットを受信側で復元できる可能性が高まり、映像破綻が生じ難くなるため、サービス品質を確保することができる。また、Bフレームについては、他のフレームよりも誤り訂正に用いる伝送帯域を狭くするようにしたため、空いた伝送帯域を他の用途に用いる等有効に活用することができる。
また、FEC符号化部12は、IPパケット(ソース)のフレーム境界であるフレームの先頭を判定した場合、そのときまでにFECブロックを構成したフレーム境界以前のIPパケット(ソース)及びダミーデータを用いてFEC符号化を行い、IPパケット(ソース)及びIPパケット(リペア)を出力するようにした。
これにより、ビットレートが変動するIPパケットフローにおいて、必ず1フレーム以下の時間周期でFEC処理が行われるため、FECブロックの構成に伴う遅延を短くすることができ、受信側では、バッファアンダーフローの発生を抑えることができる。
〔FEC復号部21〕
次に、図4及び図6に示したFEC復号部21について詳細に説明する。図14は、FEC復号部21の構成例を示すブロック図である。このFEC復号部21は、FECブロック処理部40、メモリ41及びFEC復号処理部42を備えている。
図15は、FEC復号部21の処理例を示すフローチャートである。以下、図14及び図15を参照して、FEC復号部21の処理について説明する。
FEC復号部21のFECブロック処理部40は、IPパケット受信部20からIPパケット(IPパケット(ソース)及びIPパケット(リペア))を入力する(ステップS1501)。
FECブロック処理部40は、入力したIPパケット(ソース)及びIPパケット(リペア)について、MMTPヘッダのFEC_typeの値を参照することで、IPパケット(ソース)及びIPパケット(リペア)を区別する。
具体的には、FECブロック処理部40は、MMTPヘッダのFEC_typeの値がIPパケット(リペア)を示す値ではないと判定した場合、入力したIPパケットはIPパケット(ソース)であると判定する。一方、FECブロック処理部40は、MMTPヘッダのFEC_typeの値がIPパケット(リペア)を示す値であると判定した場合、入力したIPパケットはIPパケット(リペア)であると判定する。
FECブロック処理部40は、入力したIPパケットが、構成中のFECブロックについての最終パケット(最終のIPパケット(リペア))であるか否かを判定する(ステップS1502)。
最終のIPパケット(リペア)とは、1次元のFECブロックの場合、当該FECブロックのIPパケット(リペア)であり、2次元のFECブロックの場合、複数のIPパケット(リペア)のうち最大のpkt_seq_numが格納されたIPパケット(リペア)である。
具体的には、FECブロック処理部40は、まず入力したIPパケットがIPパケット(ソース)である場合、入力したIPパケットは最終のIPパケット(リペア)でないと判定する。
その上で、FECブロック処理部40は、入力したIPパケットがIPパケット(リペア)である場合、当該IPパケット(リペア)のFECヘッダから2d_flag、num_column_packets及びnum_row_packetsを抽出する。また、FECブロック処理部40は、当該IPパケット(リペア)のMMTPヘッダからpkt_seq_numを抽出する。
FECブロック処理部40は、2d_flag=0(1次元のFECブロック)である場合、当該IPパケット(リペア)は最終のIPパケット(リペア)であると判定する。
また、FECブロック処理部40は、2d_flag=1(2次元のFECブロック)である場合、num_column_packetsにnum_row_packetsを加算し、加算結果から1を減算し、pkt_seq_numが減算結果に等しいか否かを判定する。つまり、FECブロック処理部40は、条件式(pkt_seq_num=num_column_packets+num_row_packets-1)が成立するか否かを判定する。
FECブロック処理部40は、pkt_seq_numが減算結果に等しい(pkt_seq_num=num_column_packets+num_row_packets-1)と判定した場合、当該IPパケット(リペア)は最終のIPパケット(リペア)であると判定する。一方、FECブロック処理部40は、pkt_seq_numが減算結果に等しくない、すなわちpkt_seq_numが減算結果未満である(pkt_seq_num<num_column_packets+num_row_packets-1)と判定した場合、当該IPパケット(リペア)は最終のIPパケット(リペア)でないと判定する。
図13(2)の例において、前記条件式の右辺は、num_column_packets+num_row_packets-1=5+5-1=9である。pkt_seq_num=9のIPパケット(リペア)の場合、前記条件式が成立するため、当該IPパケット(リペア)は最終のIPパケット(リペア)であると判定される。一方、pkt_seq_num=0~8のIPパケット(リペア)の場合、前記条件式が成立しないため、当該IPパケット(リペア)は最終のIPパケット(リペア)でないと判定される。
FECブロック処理部40は、ステップS1502において、入力したIPパケットが最終のIPパケット(リペア)でないと判定した場合(ステップS1502:N)、FECブロックの構成の途中であると判断し、ステップS1503へ移行する。
FECブロック処理部40は、ステップS1502(N)から移行して、入力したIPパケットが、次のFECブロックに属するIPパケット(IPパケット(ソース)またはIPパケット(リペア))であるか否かを判定する(ステップS1503)。すなわち、FECブロック処理部40は、現在構成中のFECブロックの末尾にパケット損失が生じたか否かを判断する。
具体的には、FECブロック処理部40は、まず入力したIPパケットが、IPパケット(ソース)であるか、またはIPパケット(リペア)であるかを判定する。
FECブロック処理部40は、ステップS1503で入力したIPパケットがIPパケット(ソース)である場合、当該IPパケット(ソース)のMMTPヘッダからpacket_counterを抽出する。また、FECブロック処理部40は、現在構成中のFECブロックに属するIPパケット(リペア)のFECヘッダから抽出されたstart_packet_counter及びnum_valid_packetsを参照する。
FECブロック処理部40は、start_packet_counterにnum_valid_packetsを加算し、packet_counterが加算結果よりも大きいか否かを判定する。FECブロック処理部40は、packet_counterが加算結果よりも大きいと判定した場合(packet_counter>start_packet_counter+num_valid_packets)、入力したIPパケット(ソース)が、次のFECブロックに属するIPパケット(ソース)であると判定する。この場合、FECブロック処理部40は、現在構成途中のFECブロックの末尾にパケット損失が生じFECブロックの末尾が埋まらずに終了したことを判断し、ステップS1509に遷移する。
一方、FECブロック処理部40は、packet_counterが加算結果よりも大きくないと判定した場合(packet_counter≦start_packet_counter+num_valid_packets)、入力したIPパケット(ソース)が、次のFECブロックに属するIPパケット(ソース)でないと判定する。この場合、FECブロック処理部40は、当該IPパケット(ソース)は現在構成の途中であるFECブロックのIPパケット(ソース)であることを判断し、ステップS1504に遷移する。
また、FECブロック処理部40は、ステップS1503で入力したIPパケットがIPパケット(リペア)である場合、現在構成途中のFECブロックに属するIPパケット(リペア)のFECヘッダから抽出されたstart_packet_counterを参照する。これが、入力したIPパケット(リペア)のstart_packet_counterと異なれば、入力したIPパケットは次のFECブロックに属するIPパケット(リペア)と判定する。この場合、FECブロック処理部40は、現在構成途中のFECブロックの末尾にパケット損失が生じFECブロックの末尾が埋まらずに終了したことを判断し、ステップS1509に遷移する。
このように、ステップS1502,S1503によるFEC復号の前段処理では、FECヘッダの情報を用いることができるため、FEC符号化の前段処理と異なり、IPパケット(ソース)のペイロードに格納された映像データに基づき、フレーム境界及びフレーム種別を判定する必要がない。このため、FEC復号処理では、FEC符号化処理に比べ、処理負荷を低減することができる。
FECブロック処理部40は、ステップS1503において、入力したIPパケットが、次のFECブロックに属するIPパケットでないと判定した場合(ステップS1503:N)、ステップS1504へ移行する。つまり、入力したIPパケットが現在構成中のFECブロックのIPパケットである場合、ステップS1504へ移行することとなる。
FECブロック処理部40は、ステップS1503(N)から移行して、入力したIPパケット(IPパケット(ソース)またはIPパケット(リペア))をFECブロックに追加し(ステップS1504)、ステップS1513へ移行する。具体的には、FECブロック処理部40は、IPパケット(ソース)またはIPパケット(リペア)をメモリ41に格納する。これにより、メモリ41にはIPパケット(ソース)またはIPパケット(リペア)が格納される。
FECブロック処理部40は、ステップS1502において、入力したIPパケットが最終のIPパケット(リペア)であると判定した場合(ステップS1502:Y)、ステップS1505へ移行する。後述するステップS1505~S1508により、構成済みのFECブロックに対する復号処理が行われ、FECブロックを構成するIPパケット(ソース)が出力される。構成済みのFECブロックは、フレーム種別毎に、所定の行列サイズまたは所定の行列サイズ未満のIPパケット(ソース)、及びIPパケット(リペア)で構成される。
FECブロック処理部40は、ステップS1502(Y)から移行して、入力したIPパケット(リペア)をFECブロックに追加する(ステップS1505)。具体的には、FECブロック処理部40は、入力したFECブロックの最終のIPパケット(リペア)をメモリ41に格納する。
FECブロック処理部40は、メモリ41からFECブロックを構成する全てのIPパケット(ソース)及び全てのIPパケット(リペア)を読み出し、これらをFEC復号処理部42に出力する。
FEC復号処理部42は、FECブロック処理部40から、FECブロックを構成する全てのIPパケット(ソース)及び全てのIPパケット(リペア)を入力し、IPパケット(ソース)の損失の有無を判定する。IPパケット(ソース)の損失の有無は、IPパケット(ソース)のMMTPヘッダに格納されたpkt_seq_num、及びIPパケット(リペア)のFECヘッダに格納されたnum_column_packets及びnum_row_packetsに基づいて判定される。
FEC復号処理部42は、IPパケット(ソース)の損失がある場合、損失したIPパケット(ソース)に対応する行及び/または列における損失していないIPパケット(ソース)及びIPパケット(リペア)を用いて、FEC復号を行い、損失したIPパケット(ソース)を復元する(ステップS1506)。このように、FECブロックを単位として復号が行われる。
ここで、FEC復号処理部42は、構成するFECブロックのフレーム種別がIフレームの場合、Bフレームよりも誤り訂正強度の強いFEC復号を行う。つまり、フレーム種別がIフレームの場合、Bフレームよりも誤り訂正強度の強いFEC復号が行われるように、FECブロック処理部40は、FECブロックの初期化を行い、所定の行列サイズのFECブロックを構成する。
また、FEC復号処理部42は、構成するFECブロックのフレーム種別がBフレームの場合、Iフレームよりも誤り訂正強度の弱いFEC復号を行う。つまり、フレーム種別がBフレームの場合、Iフレームよりも誤り訂正強度の弱いFEC復号が行われるように、FECブロック処理部40は、FECブロックの初期化を行い、所定の行列サイズのFECブロックを構成する。
また、FEC復号処理部42は、構成するFECブロックのフレーム種別がPフレームの場合、Iフレーム及びBフレームのいずれかと等しい誤り訂正強度のFEC復号を行うか、またはIフレームとBフレームの間の誤り訂正強度のFEC復号を行う。つまり、フレーム種別がPフレームの場合、Iフレーム及びBフレームのいずれかと等しい誤り訂正強度のFEC復号が行われるように、またはIフレームとBフレームの間の誤り訂正強度のFEC復号が行われるように、FECブロック処理部40は、FECブロックの初期化を行い、所定の行列サイズのFECブロックを構成する。
FEC復号処理部42は、FECブロックを構成する全てのIPパケット(ソース)を、IPパケット送信部22(図4に示した実施例1の場合)またはMMT分離部23(図6に示した実施例2の場合)に出力する(ステップS1507)。
FECブロック処理部40は、次に構成するFECブロックの初期化を行い(ステップS1508)、ステップS1513へ移行する。具体的には、FECブロック処理部40は、メモリ41をクリアする。尚、次のFECブロックのIPパケット(リペア)を受信するまで、次のFECブロックの行列サイズは確定しない。後述するステップS1511についても同様である。
FECブロック処理部40は、ステップS1503において、入力したIPパケットが、次のFECブロックに属するIPパケットであると判定した場合(ステップS1503:Y)、ステップS1509へ移行する。後述するステップS1509~S1512により、現在構成中のFECブロックの末尾のパケット損失が生じFECブロックの末尾が埋まらずに終了した場合の処理が行われる。
FECブロック処理部40は、ステップS1503(Y)から移行して、メモリ41から、現在構成中のFECブロックにおける全てのIPパケット(ソース)及び全てのIPパケット(リペア)を読み出し、これらをFEC復号処理部42に出力する。
FEC復号処理部42は、FECブロック処理部40から、現在構成中のFECブロックにおける全てのIPパケット(ソース)及び全てのIPパケット(リペア)を入力する。そして、FEC復号処理部42は、ステップS1506の処理と同様に、IPパケット(ソース)の損失がある場合、損失したIPパケット(ソース)に対応する行及び/または列における損失していないIPパケット(ソース)及びIPパケット(リペア)を用いて、FEC復号を行い、損失したIPパケット(ソース)を復元する(ステップS1509)。このように、FECブロックを単位として復号が行われる。
FEC復号処理部42は、現在構成中のFECブロックにおける全てのIPパケット(ソース)を、IPパケット送信部22(図4に示した実施例1の場合)またはMMT分離部23(図6に示した実施例2の場合)に出力する(ステップS1510)。
FECブロック処理部40は、ステップS1508の処理と同様に、次に構成するFECブロックの初期化を行う(ステップS1511)。
FECブロック処理部40は、入力したFECブロックのIPパケット(IPパケット(ソース)またはIPパケット(リペア))をFECブロックに追加し(ステップS1512)、ステップS1513へ移行する。具体的には、FECブロック処理部40は、入力したIPパケットをメモリ41に格納する。入力したIPパケットがIPパケット(リペア)であれば、この時点で行列サイズが確定し、所定の位置に格納される。一方、入力したIPパケットがIPパケット(ソース)であれば、この時点で行列サイズは確定しないため、仮の位置に一時格納される。これにより、メモリ41には、FECブロックを構成するIPパケットが格納される。
尚、図15には示してないが、現在構成中のFECブロックにおける最初のIPパケット(リペア)を受信し、FECブロックの行列サイズが確定したタイミングで、それまでメモリ41上で仮の位置に格納していたIPパケット(ソース)を、行列サイズに応じて所定の位置に移動してもよい。
FEC復号部21は、ステップS1504、ステップS1508またはステップS1512から移行して、当該処理が終了しない限り(ステップS1513:N)、ステップS1501へ移行し、新たなIPパケット(ソース)及びIPパケット(リペア)を入力する。一方、FEC復号部21は、ユーザによる終了操作等に従い、当該処理を終了させる(ステップS1513:Y)。
尚、ステップS1502では、現在構成中のFECブロックの最終のIPパケット(リペア)が正常に受信されFECブロックが終了した場合を判定しているが、ステップS1502及びステップS1505~S1508を省略し、ステップS1501からステップS1503に直接遷移する構成としてもよい。このような構成であっても、FECブロックの終了を判定することができる。ただし、この場合には、最終のIPパケット(リペア)に損失がない場合にも、FECブロックの終了判断が次のIPパケットを受信するまで遅延することとなる。
以上のように、本発明の実施例1,2の受信装置3及び受信端末5によれば、FEC復号部21は、IPパケット(リペア)のFECヘッダに格納されたデータに基づいて、フレーム種別毎のFECブロックの行列サイズを特定し、フレーム種別毎にFECブロックを構成する。
FEC復号部21は、IPパケット(ソース)が損失している場合、IPパケット(リペア)等を用いてFEC復号を行い、損失したIPパケット(ソース)を復元する。
このように、映像データのフレーム種別に応じたFECブロックのサイズの変化に対応して、適応的に誤り訂正強度の異なるFEC復号が行われる。従来のFECブロックは、フレーム種別に関係なく一定サイズであったが、本発明の実施例1,2では、フレーム種別に応じて、FECブロックのサイズが動的に変化することとなる。つまり、パケット損失により映像破綻等の影響が大きいIフレームについては、他のフレームよりも伝送路上において損失したIPパケットを受信側で復元できる可能性が高まり、映像破綻が生じ難くなるため、サービス品質を確保することができる。また、Bフレームについては、他のフレームよりも誤り訂正に用いる伝送帯域を広く狭くするようにしたため、空いた伝送帯域を他の用途に用いる等有効に活用することができる。また、フレーム種別毎に変化するFECブロックのサイズに応じて、適用的にFEC復号を行うことができる。
また、受信装置3及び受信端末5は、ビットレートが変動するIPパケットフローにおいて、必ず1フレーム以下の時間周期でFEC処理が行われるため、FECブロックの構成に伴う遅延を短くすることができ、バッファアンダーフローの発生を抑えることができる。
〔符号化された映像及び音声を伝送するIPパケットフロー〕
以上、符号化された映像を伝送するIPパケットフローについて説明したが、本発明は、符号化された映像に加え、音声を伝送するIPパケットフローにも適用がある。
IPパケット(ソース)のMMTPヘッダに格納されたpacket_counterを用いることにより、符号化された映像及び音声を伝送するIPパケットフローにおいて、実施例1,2を適用することができる。前述のとおり、packet_counterは、IPパケット(ソース)毎に、映像及び音声を区別することなくインクリメントされたカウント値である。
packet_counterを用いることにより、映像信号を含むIPパケット(ソース)及び音声信号を含むIPパケット(ソース)の集合におけるパケットの連続性を検知することができる。このため、音声信号を含むIPパケット(ソース)の有無に関わらず、映像のフレーム境界を基準として、前述の処理を行うことができる。この場合、映像データを含むIPパケット(ソース)が多数に対し、音声データを含むIPパケット(ソース)は少数である。例えば、音声のIPパケット(ソース)は、その中身を問わず、直前の映像のIPパケット(ソース)と同じフレーム種別でありフレーム境界ではないパケットとして扱うことができる。
一方、音声データを含むIPパケット(ソース)をFEC符号化の対象としない場合、または、映像データを含むIPパケット(ソース)と音声データを含むIPパケット(ソース)とで独立した異なるFEC符号化及び復号処理を行う場合には、packet_counter ではなくpkt_seq_numを用いる。前述のとおり、pkt_seq_numは、IPパケット(ソース)毎に、packet_idが異なる映像及び音声等のそれぞれを区別してインクリメントされたカウント値である。
pkt_seq_numを用いることにより、映像データを含むIPパケット(ソース)と音声データを含むIPパケット(ソース)とを区別して、それぞれのパケットの連続性を検知することができる。
尚、パケットの連続性検知のために、packet_counterを用いるか、またはpkt_seq_numを用いるかの識別データは、送信装置2-1,2-2のFEC符号化部12のFEC符号化処理部32により、IPパケット(リペア)のFECヘッダに格納される。この場合、受信装置3及び受信端末5のFEC復号部21は、IPパケット(リペア)のFECヘッダに格納された識別データに基づいて、パケットの連続性検出のためのpacket_counterまたはpkt_seq_numを判断する。
pkt_seq_numはpacket_id毎に独立してインクリメントされる値が設定されるから、FECによる保護の対象とする映像及び音声等を区別するため、その識別子であるpacket_idも識別データとして、FECヘッダに格納される必要がある。
図16は、IPパケット(リペア)に含まれるFECヘッダの構造例を示す図であり、図17は、FECヘッダの具体例を示す図である。
図16を参照して、FECヘッダは、counter_select_flag(カウンタ選択フラグ、1ビット)、2d_flag(1ビット)、L1(1ビット)、L2(2ビット)、L3(1ビット)、reserved(予備、2ビット)、num_row_packets((L1+1)×8ビット)、start_packet_counter((L2+1)×8ビット)及びnum_valid_packets((L3+1)×8ビット)により構成される。さらに、FECヘッダは、counter_select_flag=1の場合、packet_idも含み、2d_flag=1の場合、num_column_packetsも含んで構成される。L1,L2,L3はフラグである。
FECヘッダは、図17に示す(1)~(4)の構成となる。図17(1)は、1次元FECブロックの場合の第1例である。このFECヘッダは、counter_select_flag=0、2d_flag=0、L1、L2、L3、reserved、num_row_packets、start_packet_counter及びnum_valid_packetsにより構成される。
図17(2)は、1次元FECブロックの場合の第2例である。このFECヘッダは、図17(1)のFECヘッダに加え、packet_idを含んで構成される。この場合、counter_select_flag=1、2d_flag=0である。
図17(3)は、2次元FECブロックの場合の第1例である。このFECヘッダは、counter_select_flag=0、2d_flag=1、L1、L2、L3、reserved、num_column_packets、num_row_packets、start_packet_counter及びnum_valid_packetsにより構成される。
図17(4)は、2次元FECブロックの場合の第2例である。このFECヘッダは、図17(3)のFECブロックに加え、packet_idを含んで構成される。この場合、counter_select_flag=1、2d_flag=1である。
図3に示した送信装置2-1のIPパケット受信部10が受信するIPパケットにおいて、MMTPヘッダにpacket_counterが含まれていない場合、packet_counterを連続性検知に使用したいときは、FEC符号化部12は、その入力段にてpacket_counter_flag=1を設定し、MMTPヘッダにpacket_counter領域を追加するようにしてもよい。
FECブロックのサイズによっては、num_column_packets及びnum_row_packets領域に必要なバイト数が変化する。このため、L1のフラグを用いることで、num_column_packets、num_row_packets領域に必要なバイト数を指定することができる。num_column_packets及びnum_row_packetsが共に255以下である場合、L1=0で十分である。一方、num_column_packets及びnum_row_packetsのいずれかが256以上である場合、L1=1とする必要がある。
同様に、num_valid_packets領域もFECブロックのサイズに応じて必要なバイト数が変化する。このため、何バイトで記述するかをL3のフラグで指定する。例えば、100×100のFECブロックの場合、L1=0で十分であるが、L3=1とする必要がある。
MMTPヘッダのpacket_counter及びpkt_seq_num領域は4バイトであるが、FECブロックのサイズに対し、4バイトで表現可能な整数は一般に過大である場合が多い。このため、FECブロックを構成する先頭のIPパケット(ソース)のpacket_counterまたはpkt_seq_numの4バイト全てを、start_packet_counterとして記載することは冗長と言える。
そこで、L2のフラグを用いて、start_packet_counter領域のバイト数を1バイトから4バイトの範囲で指定する。start_packet_counterが4バイトよりも小さい場合、図4に示した受信装置3及び図6に示した受信端末5のFEC復号部21によりFECブロックの境界の判定(図15に示したステップS1502,S1503)の処理において、IPパケット(ソース)のpacket_counter及びpkt_seq_numについてもstart_packet_counter領域と同じバイト数にクリップして、FECブロックの最終のIPパケット(リペア)の判定を行う必要がある。
また、IPパケット(リペア)において、FECブロック内での位置情報を示すだけにpkt_seq_numの4バイトの領域は過大であるため、上位バイトをFECブロック毎にインクリメントする値とする等して、FECブロックを跨いで一意の値としてもよい。この場合、図4に示した受信装置3及び図6に示した受信端末5のFEC復号部21によりFECブロックの終了判定(図15に示したステップS1502)の処理において、pkt_seq_numのうちFECブロック内での位置情報を示す下位バイトをクリップして判定を行う必要がある。
以上、実施例1,2を挙げて本発明を説明したが、本発明は前記実施例1,2に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。
例えば、前記実施例1,2では、送信装置2-1,2-2のFEC符号化部12は、フレーム種別毎に、誤り訂正強度の異なるFEC符号化を行うようにした。これに対し、FEC符号化部12は、IフレームについてFEC符号化を行い、P,BフレームのそれぞれについてFEC符号化を行わないようにしてもよい。また、FEC符号化部12は、I,PフレームについてFEC符号化を行い、BフレームについてFEC符号化を行わないようにしてもよい。
また、前記実施例1,2では、送信装置2-1,2-2に備えたFEC符号化部12のFECブロック処理部30は、AUDのpic_type領域に基づいてフレーム種別を判定し、Iフレームについて、Bフレームよりも誤り訂正強度の強いFEC符号化が行われるように、所定の行列サイズのFECブロックを構成し、FEC符号化処理部32は、FECブロック処理部30により構成されたFECブロックを単位として、FEC符号化を行う。また、FECブロック処理部30は、Bフレームについて、Iフレームよりも誤り訂正強度の弱いFEC符号化が行われるように、所定の行列サイズのFECブロックを構成し、FEC符号化処理部32は、FECブロック処理部30により構成されたFECブロックを単位として、FEC符号化を行う。また、FECブロック処理部30は、Pフレームについて、Iフレーム及びBフレームのいずれかと等しい誤り訂正強度のFEC符号化が行われるように、またはIフレームとBフレームの間の誤り訂正強度のFEC符号化が行われるように、所定の行列サイズのFECブロックを構成し、FEC符号化処理部32は、FECブロック処理部30により構成されたFECブロックを単位として、FEC符号化を行う。
これに対し、FEC符号化部12は、図18に示したTemporal IDが示す階層のスライス毎に、誤り訂正強度の異なるFEC符号化を行うようにしてもよい。具体的には、FEC符号化部12のFECブロック処理部30は、IPパケット(ソース)に含まれるNALユニットの先頭に格納されたNALユニットヘッダからnuh_temporal_id_plus1領域を抽出し、nuh_temporal_id_plus1領域のデータに基づいて、当該IPパケット(ソース)に格納された映像データについて、そのスライスのTemporal IDを特定する。尚、フレーム内をスライスによって領域分割しない場合には、一般にフレームとスライスは同等である。
FECブロック処理部30は、Temporal IDが所定値以下の階層に含まれるスライス(低い階層のスライス)について、当該Temporal IDが所定値よりも大きい階層に含まれるスライス(高い階層のスライス)よりも誤り訂正強度の強いFEC符号化が行われるように、所定の行列サイズのFECブロックを構成し、FEC符号化処理部32は、FECブロック処理部30により構成されたFECブロックを単位として、FEC符号化を行う。
一方、FECブロック処理部30は、Temporal IDが所定値よりも大きい階層に含まれるスライス(高い階層のスライス)について、当該Temporal IDが所定値以下の階層に含まれるスライス(低い階層のスライス)よりも誤り訂正強度の弱いFEC符号化が行われるように、所定の行列サイズのFECブロックを構成し、FEC符号化処理部32は、FECブロック処理部30により構成されたFECブロックを単位として、FEC符号化を行う。この場合、FEC符号化部12は、Temporal ID=3の階層に含まれるスライスについて、FEC符号化を行わないようしてもよい。
また、前記実施例1,2では、送信装置2-1,2-2のFEC符号化部12のFEC符号化処理部32は、FECブロックを構成するIPパケット(ソース)がFECブロックの所定の行列サイズに満たない場合に、ダミーデータ(値0)を生成するようにした。また、行方向または列方向にXOR演算を行う際に、対象のIPパケット(ソース)のパケット長を揃えるために最大のパケット長を決定し、それ未満のパケットの末尾に値0を追加した。これらは、XOR演算を行う際に対象のパケット数や各パケットの有効バイト長を考慮せずに高速に演算を行うことを目的としている。
これに対し、FEC符号化処理部32は、行方向及び列方向のFEC符号化処理の実装が、対象のIPパケット(ソース)のみを1パケット毎等で逐次的にXOR演算を行うような実装手法である場合、ダミーデータを生成しなくてもよい。また、行方向及び列方向のFEC符号化処理の実装が、有効データの範囲内を1バイト毎等で逐次的にXOR演算を行うような実装手法である場合、パケット末尾に値0を追加してパケット長を揃えなくてもよい。なぜならば、値0とXOR演算を行っても結果が変わらないため、ダミーデータの生成やパケット末尾に値0を追加してXOR演算をせずとも、等価な演算となるからである。
また、FECの符号化方式は、行方向及び列方向のXOR演算によるProMPEG FECが簡便であるが、LDGM FEC(Low Density Generator Matrix Forward Error Correction)符号等より高度なFEC符号化を用いるようにしてもよい。
尚、実施例1による送信装置2-1及び受信装置3、並びに実施例2による送信装置2-2及び受信端末5のハードウェア構成としては、通常のコンピュータを使用することができる。送信装置2-1,2-2、受信装置3及び受信端末5は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
送信装置2-1に備えたIPパケット受信部10、フレーム境界・種別判定部11、FEC符号化部12及びIPパケット送信部13の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
また、受信装置3に備えたIPパケット受信部20、FEC復号部21及びIPパケット送信部22の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
また、送信装置2-2に備えた映像入力部14、映像符号化部15、MMT多重化部16、フレーム境界・種別判定部11、FEC符号化部12及びIPパケット送信部13の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
また、受信端末5に備えたIPパケット受信部20、FEC復号部21、MMT分離部23、映像復号部24及び映像出力部25の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
1-1,1-2 映像配信システム
2-1,2-2 送信装置
3 受信装置
4 IP回線
5 受信端末
10,20 IPパケット受信部
11 フレーム境界・種別判定部
12 FEC符号化部
13,22 IPパケット送信部
14 映像入力部
15 映像符号化部
16 MMT多重化部
21 FEC復号部
23 MMT分離部
24 映像復号部
25 映像出力部
30,40 FECブロック処理部
31,41 メモリ
32 FEC符号化処理部
42 FEC復号処理部
2d_flag 次元フラグ
start_packet_counter 開始パケットカウンタ
num_column_packets 列方向パケット数
num_row_packets 行方向パケット数
num_valid_packets 有効パケット数
packet_id パケットID
packet_counter パケットカウンタ
pkt_seq_num(packet_sequence_number) パケットシーケンス番号
FEC_type FECタイプ
counter_select_flag カウンタ選択フラグ
reserved 予備

Claims (2)

  1. 映像データが格納されたIPパケットをソースパケットとし、当該ソースパケットに対するFEC符号化により生成されたIPパケットをリペアパケットとして、前記ソースパケット及び前記リペアパケットを受信し、前記ソースパケット及び前記リペアパケットを用いてFEC復号を行う受信装置において、
    前記ソースパケットには、前記ソースパケット毎にインクリメントされたカウンタ値を示すパケットカウンタ値が含まれており、
    前記リペアパケットには、FECブロックを構成する前記ソースパケットの行列の次元を示す次元フラグ、フレーム種別毎に設定された前記FECブロックの行列サイズ、前記FECブロックの先頭に位置する前記ソースパケットの前記パケットカウンタ値を示す開始パケットカウンタ値、及び、前記FECブロックに含まれる前記ソースパケットの数を示す有効パケット数が含まれており、
    受信した前記ソースパケット及び前記リペアパケットを入力し、前記フレーム種別毎に、前記行列サイズまたは前記行列サイズ未満の前記ソースパケット、及び前記リペアパケットを含む前記FECブロックを構成し、前記ソースパケットが損失した場合、前記FECブロックに含まれる前記ソースパケット及び前記リペアパケットに基づいて前記FEC復号を行い、損失した前記ソースパケットを復元するFEC復号部を備え、
    前記FEC復号部は、
    前記ソースパケットから前記パケットカウンタ値を抽出すると共に、前記リペアパケットから、前記次元フラグ、前記行列サイズ、前記開始パケットカウンタ値及び前記有効パケット数を抽出し、
    入力した前記ソースパケット及び前記リペアパケットを入力パケットとして、前記次元フラグが1次元を示している場合、前記入力パケットが前記FECブロックの最終パケットであると判定し、または、前記次元フラグが2次元を示している場合、前記開始パケットカウンタ値及び前記行列サイズに基づいて、前記入力パケットが前記FECブロックの最終パケットであるか否かを判定し、
    前記入力パケットが前記FECブロックの最終パケットであると判定した場合、前記入力パケットを含む前記FECブロックを構成し、当該FECブロックに含まれる前記ソースパケット及び前記リペアパケットを出力し、
    前記入力パケットが前記FECブロックの最終パケットでないと判定した場合、前記パケットカウンタ値、及び前記開始パケットカウンタ値に前記有効パケット数を加算した結果の値に基づいて、前記入力パケットが、次の前記FECブロックに属するパケットであるか否かを判定し、
    前記入力パケットが、次の前記FECブロックに属する前記パケットでないと判定した場合、前記入力パケットを、構成中の前記FECブロックに追加し、
    前記入力パケットが、次の前記FECブロックに属する前記パケットであると判定した場合、構成中の前記FECブロックに含まれる前記ソースパケット及び前記リペアパケットを出力するFECブロック処理部と、
    前記FECブロック処理部により出力された前記FECブロックに含まれる前記ソースパケット及び前記リペアパケットを入力し、前記FECブロックに含まれる前記ソースパケット及び前記リペアパケットを用いて、前記フレーム種別がIフレームの場合、Bフレームよりも誤り訂正強度の強い前記FEC復号を行い、前記フレーム種別が前記Bフレームの場合、前記Iフレームよりも前記誤り訂正強度の弱い前記FEC復号を行い、前記フレーム種別がPフレームの場合、前記Iフレーム及び前記Bフレームのいずれかと等しいか、または前記Iフレームと前記Bフレームの間の前記誤り訂正強度の前記FEC復号を行うFEC復号処理部と、を備えたことを特徴とする受信装置。
  2. コンピュータを、請求項1に記載の受信装置として機能させるためのプログラム。
JP2019118834A 2019-06-26 2019-06-26 受信装置及びプログラム Active JP7269112B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019118834A JP7269112B2 (ja) 2019-06-26 2019-06-26 受信装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019118834A JP7269112B2 (ja) 2019-06-26 2019-06-26 受信装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2021005799A JP2021005799A (ja) 2021-01-14
JP7269112B2 true JP7269112B2 (ja) 2023-05-08

Family

ID=74097321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019118834A Active JP7269112B2 (ja) 2019-06-26 2019-06-26 受信装置及びプログラム

Country Status (1)

Country Link
JP (1) JP7269112B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149203A (ja) 2003-11-17 2005-06-09 Toshiba Corp データ取り込み装置及びデータ取り込み方法
WO2008123496A1 (ja) 2007-03-30 2008-10-16 Sony Corporation 情報処理装置および方法
JP2009124354A (ja) 2007-11-13 2009-06-04 Fujitsu Ltd 符号化装置
JP2010119021A (ja) 2008-11-14 2010-05-27 Toshiba Corp 通信装置
CN101854224A (zh) 2009-04-01 2010-10-06 华为技术有限公司 纠错编码方法、装置和系统以及转发控制方法和装置
WO2015015880A1 (ja) 2013-07-30 2015-02-05 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP2018505597A (ja) 2015-01-08 2018-02-22 上海交通大学Shanghai Jiao Tong University メディアコンテンツに基づくfecメカニズム
US20190098339A1 (en) 2016-07-07 2019-03-28 Tencent Technology (Shenzhen) Company Limited Video data processing method and apparatus

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149203A (ja) 2003-11-17 2005-06-09 Toshiba Corp データ取り込み装置及びデータ取り込み方法
WO2008123496A1 (ja) 2007-03-30 2008-10-16 Sony Corporation 情報処理装置および方法
JP2009124354A (ja) 2007-11-13 2009-06-04 Fujitsu Ltd 符号化装置
JP2010119021A (ja) 2008-11-14 2010-05-27 Toshiba Corp 通信装置
CN101854224A (zh) 2009-04-01 2010-10-06 华为技术有限公司 纠错编码方法、装置和系统以及转发控制方法和装置
WO2015015880A1 (ja) 2013-07-30 2015-02-05 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP2018505597A (ja) 2015-01-08 2018-02-22 上海交通大学Shanghai Jiao Tong University メディアコンテンツに基づくfecメカニズム
US20190098339A1 (en) 2016-07-07 2019-03-28 Tencent Technology (Shenzhen) Company Limited Video data processing method and apparatus

Also Published As

Publication number Publication date
JP2021005799A (ja) 2021-01-14

Similar Documents

Publication Publication Date Title
JP3507766B2 (ja) 転送セルに圧縮されたビデオデータをフォーマットする方法
CA2281211C (en) Method and apparatus for receiving mpeg video over the internet
KR101739821B1 (ko) 스케일러블 비디오 코딩(svc)디코딩에서 향상 계층의 패킷 분실에 기인한 오류 은폐를 위한 방법
US9246630B2 (en) Method, device, and system for forward error correction
US6317462B1 (en) Method and apparatus for transmitting MPEG video over the internet
JP4261508B2 (ja) 動画像復号装置
US10326811B2 (en) Communication apparatus, communication data generation method, and communication data processing method
US8396113B2 (en) Data receiving device and method for shortening channel switching time in digital multimedia broadcasting system
US20120063462A1 (en) Method, apparatus and system for forwarding video data
JP5043096B2 (ja) チャネル変更方法及びデジタル・ビデオ装置
KR20110042201A (ko) 스케일러블 비디오 코딩(svc)을 이용한 고속 채널 변경 응용을 위한 실시간 전송 프로토콜(rtp) 패킷화 방법
SG177621A1 (en) Signaling characteristics of an mvc operation point
US8300705B2 (en) Method for generating and processing hierarchical PES packet for digital satellite broadcasting based on SVC video
JP3987541B2 (ja) パケットストリーム受信装置
JP5357839B2 (ja) 送信装置及び送信プログラム
EP2404451B1 (en) Processing of multimedia data
JP7269112B2 (ja) 受信装置及びプログラム
KR101643848B1 (ko) 네트워크 코딩 기반의 고화질 실시간 방송 시스템
KR102350570B1 (ko) 영상프레임의 손실을 측정하기 위한 iptv 셋탑박스 및 그 동작방법
KR20100066292A (ko) Svc 비디오 기반의 디지털 위성 방송을 위한 계층 분리형 pes 패킷 생성 및 처리 방법
US20120144443A1 (en) System and method for executing source buffering for multiple independent group transmission of real-time encoded scalabe video contents
JP5159973B1 (ja) 伝送パケットの配信方法
Kim et al. A quality ratio-based novel unequal loss protection scheme in Wi-Fi broadcasting system
KR101883554B1 (ko) Mmt-기반 방송을 위한 시그널 메시지 송출 스케줄링 방법
CN117061813A (zh) 媒体回放方法与相关媒体回放装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230421

R150 Certificate of patent or registration of utility model

Ref document number: 7269112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150