実施の形態1
以下実施の形態を、図面を参照して説明する。図1はコンテンツ処理システムの概要を示す説明図である。コンテンツ処理システムは送信装置1、情報処理装置210、220、230、・・・(以下、場合により2で代表する)、及び、情報記憶装置3等を含む。送信装置1は情報処理装置2に対しコンテンツを送信する装置である。送信装置1は、例えば地上デジタル放送により映像データ及び音声データ、並びに、各種プログラム等のコンテンツを送信する放送装置または中継装置である。その他、送信装置1には、インターネットを介してコンテンツを送信するサーバコンピュータ等が用いられる。
本実施の形態においては説明を容易にするために、コンテンツとして映像データを送信する例を挙げて説明する。また送信装置1を地上デジタル放送により映像データをMPEG(Moving Picture Experts Group)−2TS(Transport Stream)プロトコルにより送信する放送装置1であるものとして説明する。これに対応して情報処理装置2はチューナ2であるものとして説明する。なお、情報処理装置2はチューナ2を搭載するものであれば携帯電話機、PDA(Personal Digital Assistant)、テレビ、DVD等の録画装置、または、カーナビゲーション装置等であっても良い。また、送信装置1がサーバコンピュータであり、インターネット等を通じてIP(Internet Protocol)により情報処理装置2へコンテンツを提供する場合は、情報処理装置2としてパーソナルコンピュータ、PDA、または、携帯電話機等をさらに適用しても良い。
チューナ2はインターネット等の通信網Nを介して情報記憶装置3に接続されている。情報記憶装置3は例えばサーバコンピュータまたはデータベースサーバであり、チューナ2との間でHTTP(HyperText Transfer Protocol)等により情報の送受信を行う。以下では、情報記憶装置3をサーバコンピュータ3という。続いてコンテンツ送信システムの概要について説明する。放送装置1はチューナ210、220、230、・・・に対し映像データ50に検証データ60が多重された送信データをパケット化して送信する。検証データ60は、映像データ50を複数に分割し、分割した分割映像データに基づき算出されるデータである。本実施の形態においては、説明を容易にするために、映像データ50を4つに分割する例を挙げて説明する。なお、この分割数は一例でありこれに限るものではない。また送信されるデータには映像データ50の他、音声データ、制御データ及び字幕データ等が含まれるが、説明を容易にするために映像データ50のみを処理する例を挙げて説明する。
検証データ60は、送信された映像データ50の誤りを検出するためのデータであり、例えば分割映像データのCRC(Cyclic Redundancy Check)データまたはハッシュ値等が用いられる。本実施の形態においてはハッシュ値を用いた例を挙げて説明する。4つの分割映像データ51,52,53,54(以下、場合により50Dで代表する)に対応して、4つの検証データ61,62,63,64(以下、場合により60で代表する)が算出される。4つの検証データ61乃至64の組み合わせからなる検証データ60は映像データ50に多重され、映像データ50の送信開始から送信終了まで繰り返し送信される。
チューナ2は映像データ50の受信完了後、分割映像データ51,52,53,54それぞれのハッシュ値(検証データ60)を算出する。そして算出した検証データ60が、受信した検証データ61,62,63,64それぞれに一致するか否かを判断する。一致する場合、電波障害等がなく、受信した映像データ50が正しいと判断する。一方、一致しないと判断した場合、他のチューナ220,230から分割映像データ50Dを取得する。
例えば、分割映像データ53に誤りがある場合、他のチューナ220または230から誤りのない分割映像データ53を取得する。その際、チューナ210はサーバコンピュータ3に対し、同一映像データ50を受信したチューナ2を特定するための送信先情報の取得を要求する。この送信先情報はチューナ2を特定できるものであれば良く、例えば、IPアドレスまたはMAC(Media Access Control)アドレス等が用いられる。以下では送信先情報がIPアドレスであるものとして説明する。サーバコンピュータ3は取得要求に応じてIPアドレスをチューナ210へ送信する。チューナ210はIPアドレスを参照し、チューナ220またはチューナ230から分割映像データ50Dを取得する。続いて以上述べた処理を詳述する。
図2は放送装置1のハードウェア群を示すブロック図である。放送装置1は、制御部11、記憶部15、検証データ生成部12、多重部13、通信部14及び送信部16等を含む。CPU(Central Processing Unit)及びRAM(Random Access Memory)等を含む制御部11は、バス17を介して放送装置1のハードウェア各部と接続されていて、記憶部15に記憶された制御プログラム15Pに従い、これらを制御する。記憶部15はハードディスクまたは大容量メモリであり、制御プログラム15P及び映像データファイル151を格納している。なお、映像データファイル151は通信部14を介して接続されるデータベースサーバ(図示せず)に記憶しておき、適宜データベースサーバから映像データ50を取得するようにしても良い。
映像データファイル151は映像データ50を特定するための固有の映像データIDに対応づけて送信予定の映像データ50を記憶している。通信部14はLAN(Local Area Network)カード等であり、サーバコンピュータ3を含む他のコンピュータ(図示せず)等との間で、HTTP等により情報を送受信する。制御部11は送信対象となる映像データ50を映像データファイル151から読み出す。そして制御部11は予め定めた所定数に映像データ50を分割し分割映像データ50Dを生成する。なお、本例では一例として所定数は4であるものとして説明するがこの数に限るものではない。
制御部11は分割映像データ50Dを検証データ生成部12へ出力する。検証データ生成部12は、ハッシュ関数を読み出し、制御部11の指示に従い分割された映像データ50Dの検証データ60を生成する。検証データ生成部12はこれを全ての分割映像データ50Dに対して実行し、計4つの検証データ61,62,63,64を生成する。検証データ生成部12は多重部13へ検証データ61,62,63,64を出力する。同様に制御部11は、対応する分割映像データ51,52,53,54を多重部13へ出力する。多重部13は映像データ50に4つの検証データ61,62,63,64を一組とする検証データ60を繰り返し多重する。
図3は送信データ70のデータレイアウトを示す説明図である。映像データ50は4つに分割され時系列に分割映像データ51,52,53,54の順に配置される。多重される検証データ60は、分割映像データ51に対応する検証データ61、分割映像データ52に対応する検証データ62、分割映像データ53に対応する検証データ63、分割映像データ54に対応する検証データ64の順で一セットとなる。
多重部13は一の分割映像データ50Dに対し、複数の一セットの検証データ60,60,60を多重する。多重により完成した送信データ70は送信部16へ出力される。送信部16はパケット化した送信データ70の変調処理等を行い、変調後の送信データ70をチューナ2へ送信する。
図4はチューナ2のハードウェア群を示すブロック図である。チューナ2は制御部21、記憶部25、検証データ生成部22、誤り検出部23、誤り訂正部28、通信部24、時計部29、映像データ出力部291及び受信部26を含む。CPU及びRAM等を含む制御部21は、バス27を介してチューナ2のハードウェア各部と接続されていて、記憶部25に記憶された制御プログラム25Pに従い、これらを制御する。時計部29は時刻情報を制御部21へ出力する。記憶部25はハードディスクまたは大容量メモリであり、制御プログラム25P、映像データファイル251及びIPアドレスファイル252を格納している。
映像データファイル251は取得部たる受信部26を介して受信した映像データ50を映像データIDに対応づけて記憶している。制御部21は映像データファイル251に記憶した映像データ50を読み出し、映像データ出力部291へ出力する。映像データ出力部291にはモニタ(図示せず)が接続されており、映像データ50を表示することができる。IPアドレスファイル252はサーバコンピュータ3のIPアドレスを記憶する他、後述する処理により取得した他のチューナ2のIPアドレスを記憶する。受信部26は放送装置1の送信部16から送信された送信データ70を受信する。受信部26は受信した送信データ70を復調し、復調した送信データ70を制御部21へ出力する。制御部21は全ての分割映像データ51,52,53,54を受信した後、分割映像データ50Dを検証データ生成部22へ出力する。制御部21は受信部26から繰り返しに出力される検証データ60を受け付ける。制御部21は検証データ61,62,63,64を受信した後に、新たな検証データ61,62,63,64を受信する度に、新たな検証データ60に更新する。
制御部21は更新後の検証データ60を誤り検出部23へ出力する。検証データ生成部22はハッシュ関数に基づき、分割映像データ51,52,53,54の検証データ(ハッシュ値)61,62,63,64を算出する。検証データ生成部22は算出した検証データ61,62,63,64を誤り検出部23へ出力する。誤り検出部23は検証データ生成部22により算出された検証データ61,62,63,64と、受信部26により受信した検証データ61,62,63,64とが一致するか否かを判断する。
誤り検出部23は一致すると判断した場合、一致する旨の情報を制御部21へ出力する。制御部21はこれを受けて、受信部26から受信した分割映像データ51,52,53,54を映像データIDに対応づけて映像データファイル251に記憶する。誤り検出部23は一致しないと判断した場合、一致しない検証データ61,62,63,64に対応する分割映像データ51,52,53,54を特定するための特定情報及びエラー情報を制御部21へ出力する。この特定情報は、複数の分割映像データ51,52,53,54の内、いずれかを特定するためのデータである。例えば、「特定情報」の値自体をシーケンス番号等の順序を示す値とすれば良く、分割映像データ51の特定情報を51D、分割映像データ52の特定情報を52D等とすれば良い。
その他、分割映像データ51のタイムスタンプは10乃至11、分割映像データ52のタイムスタンプは11乃至12、分割映像データ53のタイムスタンプは12乃至13、分割映像データ54のタイムスタンプは13乃至14とすれば良い。また、分割映像データ51のインデックスは51、分割映像データ52のインデックスは52、分割映像データ53のインデックスは53、分割映像データ54のインデックスは54とすれば良い。制御部21は映像データID、特定情報、及び一致しなかった検証データ60を誤り訂正部28へ出力する。
誤り訂正部28は映像データIDをLANカード等の通信部24へ出力する。制御部21はIPアドレスファイル252からサーバコンピュータ3のIPアドレスを読み出す。制御部21は読み出したIPアドレスを参照し、通信部24を介して、同一の映像データ50を受信したチューナ2のIPアドレスの取得要求を行う。この際、通信部24は映像データID、自身のIPアドレス及びIPアドレスの取得要求を送信する。
図5はサーバコンピュータ3のハードウェア群を示すブロック図である。サーバコンピュータ3は、CPU31、RAM32、入力部33、表示部34、記憶部35及び通信部36等を含む。CPU31は、バス37を介してサーバコンピュータ3のハードウェア各部と接続されていて、記憶部35に記憶された制御プログラム35Pに従い、これらを制御する。記憶部35はハードディスクまたは大容量メモリであり、制御プログラム35P及びIPアドレスファイル352を格納している。入力部33はキーボードまたはマウス等であり、表示部34は液晶ディスプレイ等である。通信部36は例えばLANカード等であり、放送装置1及びチューナ2を含む他のコンピュータ(図示せず)等との間で、HTTP等により情報を送受信する。
サーバコンピュータ3は通信部36を介して、放送装置1から適宜のタイミングで映像データID及びチューナ2のIPアドレスを受信する。CPU31は受信した映像データID及びチューナ2のIPアドレスをIPアドレスファイル352に記憶する。図6はIPアドレスファイル352のレコードレイアウトを示す説明図である。IPアドレスファイル352は放送装置IDフィールド、映像データフィールド及びIPアドレスフィールド等を含む。放送装置IDフィールドには、放送装置1を特定するための固有の識別情報が記憶されている。図6の例では放送装置1の放送装置IDとして「A1」が記憶されている。映像データIDフィールドには、放送装置1がチューナ2,2,2,・・・に送信した映像データ50を特定するための映像データIDが放送装置IDに対応づけて記憶されている。
IPアドレスフィールドには、映像データ50の送信先であるチューナ2を特定するためのIPアドレスが放送装置ID及び映像データIDに対応づけて記憶されている。CPU31はチューナ2から、映像データID、チューナ2自身のIPアドレス及びIPアドレスの取得要求等を受信した場合、IPアドレスファイル352を検索する。CPU31は、映像データIDに対応するIPアドレスの内、送信された自身のIPアドレスを含むIPアドレス以外のIPアドレスを読み出す。CPU31は読み出したIPアドレスをチューナ2へ送信する。
チューナ2の制御部21は通信部24を介してIPアドレスを受信する。制御部21は受信したIPアドレスを参照し、誤りのあった分割映像データ50Dの取得要求を、通信部24を介して他のチューナ2へ送信する。この際、映像データID、特定情報、自身のIPアドレス及び取得要求を他のチューナ2へ出力する。他のチューナ2は取得要求を受けて、映像データファイル251から映像データID及び特定情報に対応する分割映像データ50Dを読み出す。他のチューナ2の制御部21は通信部24を介して分割映像データ50Dをチューナ2へ送信する。チューナ2は通信部24を介して分割映像データ50Dを受信する。
制御部21は受信した分割映像データ50Dを検証データ生成部22へ出力する。検証データ生成部22はハッシュ関数に基づき、検証データ60を算出する。検証データ生成部22は算出した検証データ60を誤り検出部23へ出力する。そして放送装置1から受信した検証データ60と、他のチューナ2から受信した分割映像データ50Dに基づく検証データ60とが一致するか否かを判断する。一致すると判断した場合は、誤り検出部23は一致する旨の情報を制御部21へ出力する。制御部21は、他のチューナ2から受信した分割映像データ50Dの特定情報を参照し、当該分割映像データ50Dと、他の分割映像データ50D、50D、50Dとを組み合わせて映像データ50を連結する。制御部21は、映像データIDに対応づけて連結した訂正後の映像データ50を映像データファイル251へ記憶する。
以上のハードウェアにおいて、送受信処理の手順を、フローチャートを用いて説明する。図7及び図8は送信データ70の送信処理手順を示すフローチャートである。放送装置1の制御部11は制御プログラム15Pを起動する(ステップS71)。制御部11は送信対象の映像データID及び映像データ50を映像データファイル151から読み出す(ステップS72)。制御部11は記憶部15に予め記憶した送信先のチューナ2,2,2,・・・のIPアドレスを読み出す。制御部11は通信部14を介してサーバコンピュータ3へ、読み出したIPアドレス及び映像データIDを送信する(ステップS73)。なお、ステップS73の処理は必ずしも必要ではなく、IPアドレス及び映像データIDの送信は、図示しない他のコンピュータがサーバコンピュータ3へ送信するようにしても良い。
制御部11は読み出した映像データ50を、記憶部15に予め記憶した分割数に従い、分割し、特定情報及び分割映像データ50Dを生成する(ステップS74)。図9は分割映像データ50Dのレコードレイアウトを示す説明図である。分割映像データ50Dは、さらに複数の映像データパケットにパケット化(パケタイズ)されている。分割映像データ50Dのパケットには、インデックスパケットが付加されている。インデックスパケットには映像データID及び特定情報が記述されている。その他、映像データ50の再生タイミングを定義するクロックパケット等が含まれている。制御部11は映像データID、特定情報及び分割映像データ50Dを検証データ生成部12へ出力する(ステップS75)。
検証データ生成部12は分割映像データ50D毎に検証データ60を生成する(ステップS76)。検証データ生成部12はハッシュ関数を用いて、各特定情報に係る分割映像データ50Dの検証データ60を生成する。図10は検証データ60のレコードレイアウトを示す説明図である。検証データ60のパケットには映像データID及び検証データ60が、どの分割映像データ50Dに対応するものかを示す特定情報が付加されている。制御部11は生成された検証データ60を特定情報に関連づけて記憶部15に記憶する(ステップS77)。制御部11は全ての分割映像データ50Dの検証データ60を生成したか否かを判断する(ステップS78)。具体的には、制御部11は記憶部15に記憶した特定情報を計数することにより全ての分割映像データ50Dに対する検証データ60を生成したか否かを判断する。
制御部11は全ての分割映像データ50Dの検証データ60の生成が終了していないと判断した場合(ステップS78でNO)、ステップS75へ移行し、他の特定情報に係る分割映像データ50Dの検証データ60の生成処理を実行する。制御部11は全ての分割映像データ50Dの検証データ60の生成が終了したと判断した場合(ステップS78でYES)、記憶部15に記憶した全ての分割映像データ50D及び特定情報、並びに、映像データIDを多重部13へ出力する(ステップS79)。
制御部11は記憶部15に記憶した分割映像データ50Dの各検証データ60の一組及び特定情報を多重部13へ出力する(ステップS81)。図3の例では、映像データID、分割映像データ51,52,53,54、及び、これらに対応する特定情報51D,52D,53D,54Dが多重部13に出力される。また、検証データ61,62,63,64及びこれらに対応する特定情報51D,52D,53D,54Dが出力される。多重部13は分割映像データ50Dに複数組の検証データ60を繰り返し多重して送信データ70を生成する(ステップS82)。図3の例では、分割映像データ51,52,53,54の一組に対し、検証データ61,62,63,64を一組とする検証データ60が、分割映像データ51,52,53,54のデータに沿って繰り返し複数回多重される。
多重部13はこのようにして生成された送信データ70を送信部16へ出力する(ステップS83)。送信部16は送信データ70の変調等を行った後、変調後の送信データ70をチューナ2へ送信する(ステップS84)。チューナ2は送信された送信データ70を受信部26にて受信する(ステップS85)。受信部26は復調等を行い、復調後の送信データ70を順次制御部21へ出力する。制御部21は受信した送信データ70を記憶部25に逐次記憶する(ステップS86)。
制御部21は送信予定の送信データ70を全て受信したか否かを判断する(ステップS87)。例えば制御部21は送信データ70のパケットの一部に含まれる放送終了情報を参照することにより、全ての送信データ70を受信したか否かを判断すればよい。制御部21は全ての送信データ70を受信していないと判断した場合(ステップS87でNO)、ステップS85へ移行し、引き続き受信を行う。一方、制御部21は全ての送信データ70を受信したと判断した場合(ステップS87でYES)、一連の処理を終了する。
図11乃至図14は誤り検出及び訂正処理の手順を示すフローチャートである。チューナ2の制御部21は制御プログラム25Pに従い、以下の処理を実行する。チューナ2の制御部21は記憶部15に記憶した送信データ70から、映像データ50と検証データ60とを分離する。制御部21は映像データ50のインデックスパケットに記述された特定情報を参照し、映像データ50を特定情報に対応する分割映像データ50Dに分離する。制御部21は分離した映像データID、特定情報及び分割映像データ50Dを記憶部25に記憶する。同様に、制御部21は検証データ60のパケットに記述された特定情報を参照し、特定情報に対応する検証データ61,62,63,64に分離する。制御部21は分離した特定情報に対応する検証データ60を映像データIDと共に記憶部25に記憶する。
制御部21は特定情報及び分割映像データ50Dを記憶部25から読み出す(ステップS111)。制御部21は読み出した特定情報及び分割映像データ50Dを検証データ生成部22へ出力する(ステップS112)。検証データ生成部22は、ステップS76で用いたハッシュ関数と同じハッシュ関数を用いて検証データ60を生成する(ステップS113)。検証データ生成部22は特定情報及び算出した検証データ60を誤り検出部23へ出力する(ステップS114)。制御部21は記憶部25に記憶した分離後の特定情報及び検証データ60を読み出す(ステップS115)。制御部21は読み出した特定情報及び検証データ60を誤り検出部23へ出力する(ステップS116)。
誤り検出部23は相互の検証データ60が一致するか否かを判断する(ステップS117)。具体的には、誤り検出部23はステップS114で出力された検証データ60、すなわちチューナ2で算出した検証データ60と、ステップS116で出力された検証データ60、すなわち受信した検証データ60とが一致するか否かを判断する。誤り検出部23は一致すると判断した場合(ステップS117でYES)、受信した分割映像データ50Dが正常であることを示す正常情報及び特定情報を制御部21へ出力する。制御部21は特定情報及び正常情報を記憶部25に記憶する(ステップS118)。
一方、誤り検出部23は一致しないと判断した場合(ステップS117でNO)、受信した分割映像データ50Dが異常であることを示す異常情報及び特定情報を制御部21へ出力する。制御部21は特定情報及び異常情報を記憶部25に記憶する(ステップS119)。制御部21は記憶部25に記憶した特定情報の数を参照し、全ての特定情報に係る検証データ60の一致性判断を実行したか否かを判断する(ステップS121)。
制御部21は全ての特定情報に係る検証データ60の一致性判断を実行したと判断しない場合(ステップS121でNO)、他の特定情報に係る分割映像データ50Dについても検証を行うべく、処理をステップS111へ戻す。これにより、全ての特定情報に係る分割映像データ50Dについての検証が行われる。制御部21は全ての特定情報に係る検証データ60の一致性判断を実行したと判断した場合(ステップS121でYES)、全ての特定情報について正常情報が記憶部25に記憶されているか否かを判断する(ステップS122)。
制御部21は全ての特定情報について正常情報が記憶部25に記憶されていると判断した場合(ステップS122でYES)、ステップS123へ移行する。制御部21は、映像データIDに対応づけて、特定情報順に分割映像データ50Dの全てを連結した映像データ50を映像データファイル251に記憶する(ステップS123)。制御部21は、全ての特定情報について正常情報が記憶部25に記憶されていないと判断した場合(ステップS122でNO)、ステップS123の処理をスキップし、処理をステップS124へ移行させる。
制御部21は、誤り訂正を実行すべく記憶部25から異常情報が記憶された特定情報を読み出す(ステップS124)。制御部21はIPアドレスファイル252から、サーバコンピュータ3のIPアドレスを読み出す(ステップS125)。制御部21は通信部24を介して読み出したIPアドレス宛に係るサーバコンピュータ3へ、他のチューナ2のIPアドレスの取得要求、チューナ2自身のIPアドレス、及び映像データIDを送信する(ステップS126)。サーバコンピュータ3のCPU31は通信部36を介してIPアドレスの取得要求、IPアドレス及び映像データIDを受信する(ステップS127)。なお、チューナ2の制御部21は必ずしも直接サーバコンピュータ3のIPアドレスを記憶しておく必要はない。例えば、Peer to Peer形式により他のチューナ2を含む他のノード(図示せず)を介して、サーバコンピュータ3へサーバコンピュータ3のIPアドレスの取得要求を行っても良いことはもちろんである。この場合、隣接しているノードに「映像データIDに係るIPアドレスを管理しているサーバコンピュータ3のIPアドレスを教えてほしい」旨のリクエストパケットを送信する。これにより、バケツリレー方式でリクエストパケットが転送される。リクエストパケットが最終的にサーバコンピュータ3に送信された場合、サーバコンピュータ3からリクエスト元にリプライが返る。これにより、サーバコンピュータ3のIPアドレスを知ることができる。
CPU31は映像データIDを参照し、IPアドレスファイル352から、受信したIPアドレス以外のIPアドレスを読み出す(ステップS128)。具体的には、IPアドレスファイル352には、ステップS73で送信されたIPアドレスが、映像データIDに対応づけて記憶されている。CPU31はステップS127で受信したIPアドレス以外(チューナ2自身のIPアドレス以外)のIPアドレスを読み出す。CPU31は、通信部36を介して読み出したIPアドレスをチューナ2へ送信する(ステップS129)。
チューナ2はこれにより、通信部24を介して、他のチューナ2のIPアドレスを受信(取得)する(ステップS131)。チューナ2の制御部21は他のチューナ2のIPアドレス宛へ、分割映像データ50Dの取得要求、ステップS124で読み出した特定情報及び映像データIDを送信する(ステップS132)。制御部21は他のチューナ2から送信された、特定情報及び分割映像データ50Dを、通信部24を介して受信する(ステップS133)。制御部21は受信した特定情報及び分割映像データ50Dを検証データ生成部22へ出力する(ステップS134)。検証データ生成部22はハッシュ関数を用いて検証データ60を生成する(ステップS135)。検証データ生成部22は特定情報及び算出した検証データ60を誤り検出部23へ出力する(ステップS136)。制御部21は記憶部25に記憶した分離後の特定情報及び検証データ60を読み出す(ステップS137)。制御部21は読み出した特定情報及び検証データ60を誤り検出部23へ出力する(ステップS138)。
誤り検出部23は相互の検証データ60が一致するか否かを判断する(ステップS139)。具体的には、誤り検出部23はステップS136で出力された検証データ60、すなわち他のチューナ2から受信した分割映像データ50Dに基づく検証データ60と、ステップS138で出力された検証データ60、すなわち受信した検証データ60とが一致するか否かを判断する。誤り検出部23は一致すると判断した場合(ステップS139でYES)、受信した分割映像データ50Dが正常であることを示す正常情報及び特定情報を制御部21へ出力する。制御部21は特定情報及び正常情報を記憶部25に記憶する(ステップS141)。制御部21は、映像データIDに対応づけて、特定情報順に分割映像データ50Dの全てを連結した映像データ50を映像データファイル251に記憶する(ステップS142)。
制御部21は検証データ60が一致しないと判断した場合(ステップS139でNO)、ステップS141及びS142の処理をスキップし、さらに別の他のチューナ2から分割映像データ50Dを取得すべく、ステップS145へ移行する。制御部21は記憶部25に記憶した所定回数を読み出す。制御部21はステップS139にて一致しなかった回数を計数する(ステップS145)。制御部21は計数した回数が、読み出した所定回数以上であるか否かを判断する(ステップS146)。
この所定回数は、例えば10回等とすれば良い。また、所定時間(例えば10分)を記憶しておき、ステップS111の処理を含むS111以降の処理開始後からの経過時間が所定時間以上となったか否かを判断しても良い。制御部21は所定回数以上でないと判断した場合(ステップS146でNO)、ステップS147へ移行する。制御部21はサーバコンピュータ3へ他のチューナ2のIPアドレスの取得要求、自身のIPアドレス、ステップS131で受信済みの他のチューナ2のIPアドレス及び映像データIDを送信する(ステップS147)。
その後、処理をステップS127へ移行する。サーバコンピュータ3のCPU31は、取得要求のあったチューナ2のIPアドレス、及び、既に送信済みのIPアドレス以外のIPアドレスを送信する。このように、サーバコンピュータ3は、新たなチューナ2のIPアドレスを送信する。制御部21は計数した回数が所定回数以上であると判断した場合(ステップS146でYES)、タイムアウトであるとして処理を終了する。これにより、放送装置1の送信負担を増大させることなく、他のチューナ2から適切な映像データ50を取得することが可能となる。また、サーバコンピュータ3において、送信するIPアドレスが重複しないよう新たなIPアドレスを送信し、また、上限回数を設けたので、通信網Nにおける通信トラフィックの低減をも図ることが可能となる。
実施の形態2
実施の形態2は他のチューナ2から検証データ60を取得する形態に関する。図15乃至図17は誤り訂正処理の手順を示すフローチャートである。図12におけるステップS122においてNOの処理の後、制御部21は制御プログラム25Pに従い、以下の処理を実行する。制御部21は、誤り訂正を実行すべく記憶部25から異常情報が記憶された特定情報を読み出す(ステップS151)。制御部21は時計部29から出力される時刻情報を参照し、計時を開始する(ステップS152)。
制御部21はIPアドレスファイル252から、サーバコンピュータ3のIPアドレスを読み出す(ステップS153)。制御部21は通信部24を介して読み出したIPアドレス宛に係るサーバコンピュータ3へ、他のチューナ2のIPアドレスの取得要求、チューナ2自身のIPアドレス、及び映像データIDを送信する(ステップS154)。サーバコンピュータ3のCPU31は通信部36を介してIPアドレスの取得要求、IPアドレス及び映像データIDを受信する(ステップS155)。
CPU31は映像データIDを参照し、IPアドレスファイル352から、受信したIPアドレス以外のIPアドレスを読み出す(ステップS156)。CPU31は、通信部36を介して読み出したIPアドレスをチューナ2へ送信する(ステップS157)。チューナ2は、通信部24を介して、他のチューナ2のIPアドレスを受信する(ステップS158)。チューナ2の制御部21は他のチューナ2のIPアドレス宛へ、検証データ60の取得要求、ステップS151で読み出した特定情報及び映像データIDを送信する(ステップS159)。
他のチューナ2の制御部21はこの取得要求を受けて、映像データIDに対応づけて記憶部15に記憶した検証データ60を読み出す。そして他のチューナ2の制御部21は読み出した検証データ60及び特定情報を、通信部24を介して、取得要求を行ったチューナ2へ送信する。チューナ2の制御部21は他のチューナ2から送信された、特定情報及び検証データ60を、通信部24を介して受信する(ステップS161)。制御部21は受信した特定情報及び検証データ60を誤り検出部23へ出力する(ステップS162)。制御部21は記憶部25に記憶した分離後の特定情報及び検証データ60を読み出す(ステップS163)。制御部21は読み出した特定情報及び検証データ60を誤り検出部23へ出力する(ステップS164)。
誤り検出部23は相互の検証データ60が一致するか否かを判断する(ステップS165)。具体的には、誤り検出部23はステップS162で出力された検証データ60、すなわち他のチューナ2から受信した検証データ60と、ステップS164で出力された検証データ60、すなわち放送装置1から受信した検証データ60とが一致するか否かを判断する。誤り検出部23は一致すると判断した場合(ステップS165でYES)、受信した分割映像データ50Dが正常であることを示す正常情報及び特定情報を制御部21へ出力する。制御部21は特定情報及び正常情報を記憶部25に記憶する(ステップS166)。
制御部21は、他のチューナ2から適切な分割映像データ50Dを取得すべく以下の処理を行う。制御部21はステップS158で受信したIPアドレスを参照し、他のチューナ2へ、映像データID、特定情報及び当該特定情報に対応する分割映像データ50Dの取得要求を送信する(ステップS1661)。他のチューナ2の制御部21は、通信部24を介して、映像データID、特定情報及び当該特定情報に対応する分割映像データ50Dの取得要求を受信する。他のチューナ2の制御部21は、映像データID及び特定情報を参照し、映像データファイル251から対応する分割映像データ50Dを読み出す。他のチューナ2の制御部21は読み出した分割映像データ50D及び特定情報を、取得要求を送信したチューナ2へ送信する。
制御部21は特定情報及び誤りのない分割映像データ50Dを、通信部24を介して受信する(ステップS1662)。これにより、誤りのない全ての分割映像データ50Dがそろったことから、分割映像データ50Dを連結して映像データ50を生成する処理を行う。制御部21は、映像データIDに対応づけて、特定情報順に分割映像データ50Dの全てを連結した映像データ50を映像データファイル251に記憶する(ステップS167)。
制御部21は検証データ60が一致しないと判断した場合(ステップS165でNO)、ステップS166、S1661、S1662及びS167の処理をスキップし、さらに別の他のチューナ2から検証データ60を取得すべく、ステップS168へ移行する。制御部21は記憶部25に記憶した所定時間を読み出す(ステップS168)。この所定時間は予め記憶部25に記憶されており例えば3分とすればよい。またこの所定時間は、図示しない操作ボタンまたはリモートコントロールの操作ボタンにより、適宜値を設定し、記憶部25に記憶することが可能である。
制御部21は時計部29の出力を参照し、ステップS152の計時開始からの経過時間を算出する(ステップS169)。制御部21は算出した経過時間が所定時間以上であるか否かを判断する(ステップS171)。なお、実施の形態1で述べた如く、回数を計数しても良く、また回数の計数と経過時間の算出とを組み合わせても良い。制御部21は経過時間が所定時間以上であると判断した場合(ステップS171でYES)、タイムアウトして処理を終了する。
制御部21は所定時間以上でないと判断した場合(ステップS171でNO)、ステップS172へ移行する。制御部21は、サーバコンピュータ3へさらに他のチューナ2のIPアドレスの取得要求、自身のIPアドレス、ステップS131で受信済みの他のチューナ2のIPアドレス及び映像データIDを送信する(ステップS172)。
その後、処理はステップS155へ移行する。サーバコンピュータ3のCPU31は、取得要求のあったチューナ2のIPアドレス、及び、既に送信済みのIPアドレス以外のIPアドレスを送信する。以上の処理を実行することにより、他のチューナ2から誤りのない分割映像データ50Dを取得することが可能となる。さらに、他のチューナ2から最初の段階で取得するデータはデータサイズの小さい検証データ60であり、検証データ60の確認を経た上で、分割映像データ50Dを取得する。従って、通信負担を軽減しより早期に誤り訂正を実行することが可能となる。
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
実施の形態3はさらに補助検証データ60を用いる形態に関する。図18は検証データ60のレコードレイアウトを示す説明図である。図18には分割映像データ51,52,53,54の4つにそれぞれ対応する検証データ61,62,63,64を示している。なお、上述のとおり、検証データ60の数はこれに限るものではない。検証データ60は、映像データIDフィールド、特定情報フィールド、特定情報総数フィールド、検証データフィールド及び補助検証データフィールド等を含む。図19は実施の形態3に係る放送装置1のハードウェア群を示すブロック図である。放送装置1にはさらに補助検証データ生成部121が設けられている。
放送装置1の検証データ生成部12は検証データ61,62,63,64を生成する。映像データIDフィールドには送信予定の映像データ50を特定するためのIDが記述されている。特定情報フィールドには複数の分割映像データ51,52,53,54のそれぞれを特定するための情報が記述されている。本例では検証データ61のパケットには特定情報51Dが記述されている。特定情報総数フィールドには特定情報の合計数が記述されている。本例では、特定情報総数として4が記述されている。検証データフィールドにはハッシュ関数をもちいて算出される検証データ60が記述されている。
補助検証データフィールドには、補助検証データ生成部121により生成される補助検証データが記述されている。補助検証データ生成部121は、少なくとも検証データ50Dに基づき、補助検証データを算出する。例えば、補助検証データ生成部121は検証データ60に基づくハッシュ値を補助検証データとして算出する。その他、補助検証データ生成部121は、検証データ生成部22が用いる生成方法とは異なる生成方法を用いても良い。例えば、補助検証データ生成部121は、検証データ60に基づくCRCコードを補助検証データとしても良い。さらに、検証データ60に加えて、映像データID、特定情報若しくは特定情報総数、または、これらいずれかの組み合わせに基づき、補助検証データを生成するようにしても良い。例えば、検証データ60、特定情報及び映像データIDの3つに基づくCRCコードを生成するようにしても良い。本実施の形態においては説明を容易にするために、検証データ60のみを用いて、ハッシュ値とは異なるCRCコードを用いる例を挙げて説明する。
図20は実施の形態3に係るチューナ2のハードウェア群を示すブロック図である。さらに補助検証データ生成部221が設けられている。補助検証データ生成部221は放送装置1の補助検証データ生成部121と同様のアルゴリズムにより補助検証データを生成する。以上のハードウェアにおいて誤り訂正処理の手順を、フローチャートを用いて説明する。図21乃至図24は誤り訂正処理の手順を示すフローチャートである。放送装置1の制御部11は制御プログラム15Pを起動する(ステップS211)。制御部11は送信対象の映像データID及び映像データ50を映像データファイル151から読み出す(ステップS212)。制御部11は記憶部15に予め記憶した送信先のチューナ2,2,2,・・・のIPアドレスを読み出す。制御部11は通信部14を介してサーバコンピュータ3へ、読み出したIPアドレス及び映像データIDを送信する(ステップS213)。
制御部11は読み出した映像データ50を、記憶部15に予め記憶した分割数に従い、分割し、特定情報及び分割映像データ50Dを生成する(ステップS214)。制御部11は映像データID、特定情報及び分割映像データ50Dを検証データ生成部12へ出力する(ステップS215)。検証データ生成部12は分割映像データ50D毎に検証データ60を生成する(ステップS216)。検証データ生成部12はハッシュ関数を用いて、各特定情報にかかる分割映像データ50Dの検証データ60を生成する。
制御部11は検証データ60を補助検証データ生成部121へ出力する(ステップS217)。補助検証データ生成部121はCRCに係る所定の関数に基づき補助検証データを生成する(ステップS218)。補助検証データ生成部121は生成後の補助検証データを制御部11へ出力する。制御部11は検証データ60のパケットの一部に補助検証データを付加する(ステップS219)。制御部11は特定情報及び補助検証データが付加された検証データ60を記憶部15に記憶する(ステップS221)。
制御部11は全ての分割映像データ50Dの検証データ60を生成したか否かを判断する(ステップS222)。制御部11は他に補助検証データが付加された検証データ60及び特定情報が記憶されているかを、記憶部15を参照して判断する。制御部11は全ての分割映像データ50Dの検証データ60を生成していないと判断した場合(ステップS222でNO)、ステップS215へ処理を戻す。以上の処理を繰り返すことにより、全ての特定情報に対応する補助検証データ付きの検証データ60が生成される。
制御部11は全ての分割映像データ50Dの検証データ60を生成したと判断した場合(ステップS222でYES)、全ての分割映像データ50D及び特定情報、並びに、映像データ50を多重部13へ出力する(ステップS223)。制御部11は記憶部15に記憶した補助検証データが付加された検証データ60の一組及び特定情報を多重部13へ出力する(ステップS224)。多重部13は分割映像データ50Dに複数組の補助検証データが付加された検証データ60を繰り返し多重して送信データ70を生成する(ステップS225)。
多重部13はこのようにして生成された送信データ70を送信部16へ出力する(ステップS226)。送信部16は送信データ70の変調等を行った後、変調後の送信データ70をチューナ2へ送信する(ステップS227)。チューナ2は送信された送信データ70を受信部26にて受信する(ステップS228)。受信部26は復調等を行い、復調後の送信データ70を順次制御部21へ出力する。制御部21は受信した送信データ70を記憶部25に逐次記憶する(ステップS229)。
制御部21は送信予定の送信データ70を全て受信したか否かを判断する(ステップS231)。制御部21は全ての送信データ70を受信していないと判断した場合(ステップS231でNO)、ステップS228へ移行し、引き続き受信を行う。一方、制御部21は全ての送信データ70を受信したと判断した場合(ステップS231でYES)、送信データ70から特定情報及び分割映像データ50Dを記憶部25から抽出する(ステップS232)。
制御部21は送信データ70から特定情報、検証データ60及び補助検証データを抽出する(ステップS233)。制御部21は抽出した特定情報及び検証データ60を補助検証データ生成部221へ出力する(ステップS234)。補助検証データ生成部221は検証データ60及びCRCに係る関数に基づき補助検証データを生成する(ステップS235)。補助検証データ生成部221は生成した補助検証データを誤り検出部23へ出力する。制御部21はステップS233で抽出した特定情報に対応する補助検証データを誤り検出部23へ出力する。
誤り検出部23は抽出した補助検証データと、チューナ2において生成した補助検証データとが一致するか否かを判断する(ステップS236)。誤り検出部23は一致すると判断した場合(ステップS236でYES)、特定情報及び補助検証データが正常であることを示す補助正常情報を記憶部25に記憶する(ステップS237)。一方、誤り検出部23は補助検証データが一致しないと判断した場合(ステップS236でNO)、特定情報及び補助検証データが異常であることを示す補助異常情報を記憶部15に記憶する(ステップS238)。この場合、電波障害等により検証データ60自体に誤りがあることから、繰り返し受信した後の同一特定情報に係る検証データ60を利用する。
制御部21は記憶部25に記憶した異常情報に対応する特定情報を読み出す。制御部21は特定情報を参照し、記憶部25から時系列で後に受信した同一特定情報に係る検証データ60を読み出す。例えば受信日時またはパケット番号が先の特定情報52Dの検証データ62に誤りが検出されたとする。この場合、受信日時またはパケット番号が後の特定情報52Dの検証データ62を記憶部25から読み出す。制御部21は、後に受信した同一の特定情報及び当該特定情報の検証データ60を再び補助検証データ生成部221へ出力する(ステップS239)。その後処理をステップS235へ戻す。このように繰り返し受信する検証データ60を利用することで、検証データ60自身の誤りに起因する異常を未然に回避することが可能となる。
ステップS237の処理の後、ステップS241へ移行する。制御部21は全ての特定情報について補助正常情報が記憶されたか否かを判断する(ステップS241)。制御部21は記憶部25を参照し、全ての特定情報について補助正常情報が記憶されていないと判断した場合(ステップS241でNO)、ステップS242へ移行する。制御部21はステップS241において未だ記憶されていない特定情報及び当該特定情報の検証データ60を記憶部25から読み出し、補助検証データ生成部221へ出力する(ステップS242)。制御部21は処理をステップS235へ戻す。
以上の処理を繰り返すことで、全ての特定情報についての検証データ60に対する検証が完了する。制御部21は全ての特定情報について補助正常情報が記憶部25に記憶されていると判断した場合(ステップS241でYES)、処理を終え、そしてステップS111へ移行する。このように、事前に検証データ60自身の誤りを検出した後に、ステップS111移行における分割映像データ50Dの誤り検出を実行することが可能となる。また検証データ60自身に誤りが検出された場合でも、繰り返し受信した後の検証データ60を活用することで、誤り検証用のデータを他の装置に求めることなく迅速に誤り訂正を行うことが可能となる。
本実施の形態3は以上の如きであり、その他は実施の形態1及び2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態4
実施の形態4は他の放送装置1から送信を受けたチューナ2を利用する形態に関する。図25は実施の形態4に係るコンテンツ処理システムの概要を示す説明図である。コンテンツ処理システムは、放送装置110,120・・(以下、場合により1で代表する。)、チューナ210,220,230,240,250・・・(以下、場合により2で代表する。)、及び、サーバコンピュータ3等を含む。放送装置110は映像データ50をチューナ210,220,230へ送信する。また放送装置110とは異なる他の放送装置120は同一の映像データ50についてチューナ240,250に対し、同一時間または異なる時間で送信する。
実施の形態4の概要を説明する。雷雨等に起因する電波障害により映像データ50に誤りが発生した場合、放送装置1から映像データ50を受信するチューナ210は、他のチューナ220及び230に対し分割映像データ50Dの取得要求を行う。他のチューナ220及び230においても同様の電波障害により、正しい分割映像データ50Dを得ることができない場合がある。この場合、放送装置110が送信する映像データ50と他の放送装置120が送信する映像データ50との関連性を示す関連情報に基づき、サーバコンピュータ3からチューナ240,250のIPアドレスの取得要求を行う。そしてチューナ210はチューナ240またはチューナ250から分割映像データ50Dを受信する。以下に詳細を説明する。
図26はIPアドレスファイル352のレコードレイアウトを示す説明図である。IPアドレスファイル352は放送装置IDフィールド、映像データIDフィールド、関連情報フィールド及びIPアドレスフィールド等を含む。放送装置IDは放送装置1を特定するための識別情報である。例えば、放送装置110には放送装置ID「110」が付与され、放送装置120には放送装置ID「120」が付与されている。映像データIDフィールドには、各放送局が送信する映像データ50に対し付与する識別情報である映像データIDが記憶されている。なお、映像データIDは各放送局間で重複しないよう固有の識別情報が付与されている。
関連情報フィールドには同一の映像データ50に関し、一の放送装置1が送信する映像データ50と他の放送装置1が送信する映像データ50とを関連づけるための関連情報が記憶されている。この関連情報は、例えば、他の放送局名及び放送日時、他の放送局で付与された映像データ50に対する映像データID、Gコード、若しくは、番組名、またはこれらの組み合わせ等を用いればよい。本実施の形態においては説明を容易にするために、関連情報として、同一映像データ50に関し、他の放送局が他の放送装置1での管理のために付与した映像データIDを用いる例を説明する。
例えば放送装置110が送信した映像データ50は映像データID「1101」であり、その関連情報として「1201」が記憶されている。関連情報「1201」は放送装置120が同一の映像データ50を例えば異なる日時に送信した映像データID「1201」と関連づけられる。IPアドレスフィールドには映像データ50の送信先のIPアドレスが記憶されている。サーバコンピュータ3は映像データID及びIPアドレスの取得要求を受信した場合、映像データ50に対応するIPアドレスをチューナ210へ送信する。図26の例では、映像データID「1101」に対応して、IPアドレス「・・22」、または「・・23」を送信する。なお、本例ではIPアドレス「・・22」はチューナ220に対応し、IPアドレス「・・23」はチューナ230に対応する。
サーバコンピュータ3のCPU31は一定の場合、関連情報を参照し、関連情報と同一の映像データIDに対応するIPアドレスを読み出す。図26の例では、放送装置ID「120」、映像データID「1201」に対応するIPアドレス「・・24」及び「・・25」が読み出される。CPU31は読み出したIPアドレスをチューナ210へ送信する。チューナ210はIPアドレス「・・24」に対応するチューナ240、または、IPアドレス「・・25」に対応するチューナ250から分割映像データ50Dを取得する。
図27は検証データ60のレコードレイアウトを示す説明図である。さらに関連情報フィールドが設けられ、検証データ60に関連情報が付加されている。なお、サーバコンピュータ3において予め関連情報を記憶している場合、検証データ60に関連情報を付加する必要は必ずしもない。本実施の形態においては関連情報を付加する例を挙げて説明する。また説明を容易にするために補助検証データについての説明は省略する。
図28及び図29は分割映像データ50Dの送信処理の手順を示すフローチャートである。放送装置1の制御部11は制御プログラム15Pを起動する(ステップS281)。制御部11は送信対象の映像データID及び映像データ50を映像データファイル151から読み出す(ステップS282)。制御部11は記憶部15に予め記憶した送信先のチューナ2,2,2,・・・のIPアドレスを読み出す。制御部11は通信部14を介してサーバコンピュータ3へ、読み出したIPアドレス及び映像データIDを送信する(ステップS283)。サーバコンピュータ3のCPU31は放送装置1からIPアドレス及び映像データIDを受信する。CPU31は図26に示す如く、放送装置1の放送装置IDに対応づけて、映像データID及びIPアドレスをIPアドレスファイル352に記憶する。なお、関連情報をあわせて送信する形態は後述する。
制御部11は読み出した映像データ50を、記憶部15に予め記憶した分割数に従い、分割し、特定情報及び分割映像データ50Dを生成する(ステップS284)。制御部11は映像データID、特定情報及び分割映像データ50Dを検証データ生成部12へ出力する(ステップS285)。検証データ生成部12は分割映像データ50D毎に検証データ60を生成する(ステップS286)。制御部11は生成された検証データ60を特定情報に関連づけて記憶部15に記憶する(ステップS287)。制御部11は全ての分割映像データ50Dの検証データ60を生成したか否かを判断する(ステップS288)。
制御部11は全ての分割映像データ50Dの検証データ60の生成が終了していないと判断した場合(ステップS288でNO)、ステップS285へ移行し、他の特定情報に係る分割映像データ50Dの検証データ60の生成処理を実行する。制御部11は全ての分割映像データ50Dの検証データ60の生成が終了したと判断した場合(ステップS288でYES)、記憶部15に記憶した全ての分割映像データ50D及び特定情報、並びに、映像データIDを多重部13へ出力する(ステップS289)。
制御部11は映像データIDに対応づけて記憶部15に予め記憶した関連情報を読み出す(ステップS291)。この関連情報は他の放送局から通知された他の放送局に係る映像データIDを、オペレータが入力部(図示せず)等から適宜入力するようにすればよい。制御部11は読み出した関連情報を検証データ60のパケットのヘッダ等に付加する(ステップS292)。制御部11は分割映像データ50Dの関連情報が付加された各検証データ60の一組、及び、特定情報を多重部13へ出力する(ステップS293)。多重部13は分割映像データ50Dに複数組の検証データ60を繰り返し多重して送信データ70を生成する(ステップS294)。
多重部13は生成された送信データ70を送信部16へ出力する(ステップS295)。送信部16は送信データ70の変調等を行った後、変調後の送信データ70をチューナ2へ送信する(ステップS296)。チューナ2は送信された送信データ70を受信部26にて受信する(ステップS297)。受信部26は復調等を行い、復調後の送信データ70を順次制御部21へ出力する。制御部21は受信した送信データ70を記憶部25に逐次記憶する(ステップS298)。
制御部21は送信予定の送信データ70を全て受信したか否かを判断する(ステップS299)。制御部21は全ての送信データ70を受信していないと判断した場合(ステップS299でNO)、ステップS297へ移行し、引き続き受信を行う。一方、制御部21は全ての送信データ70を受信したと判断した場合(ステップS299でYES)、一連の処理を終了する。
図30乃至図34は誤り訂正処理の手順を示すフローチャートである。ステップS122でNOの後以下の処理を実行する。制御部21は、誤り訂正を実行すべく記憶部25から異常情報が記憶された特定情報を読み出す(ステップS301)。制御部21はIPアドレスファイル252から、サーバコンピュータ3のIPアドレスを読み出す(ステップS302)。制御部21は通信部24を介して読み出したIPアドレス宛に係るサーバコンピュータ3へ、他のチューナ2のIPアドレスの取得要求、チューナ2自身のIPアドレス、及び映像データIDを送信する(ステップS303)。サーバコンピュータ3のCPU31は通信部36を介してIPアドレスの取得要求、IPアドレス及び映像データIDを受信する(ステップS304)。
CPU31は映像データIDを参照し、IPアドレスファイル352から、受信したIPアドレス以外のIPアドレスを読み出す(ステップS305)。CPU31はステップS305におけるIPアドレスの読み出しに成功したか否かを判断する(ステップS306)。CPU31はIPアドレスの読み出しに成功したと判断した場合(ステップS306でYES)、読み出した他のチューナ2のIPアドレスをチューナ2へ送信する(ステップS307)。一方、CPU31はIPアドレスの読み出しに失敗したと判断した場合(ステップS306でNO)、IPアドレスが存在しないことを示す不存在情報をチューナ2へ送信する(ステップS308)。その後処理はステップS321へ移行する。図26に示す如く、映像データIDに対応するIPアドレスは有限であり、チューナ2自身のIPアドレスを除く、他のチューナ2のIPアドレスを重複しないよう送信し続けた場合、送信すべきIPアドレスが存在しなくなる。この場合、IPアドレス不存在情報を送信する。
チューナ2は、通信部24を介して、他のチューナ2のIPアドレスを受信する(ステップS309)。チューナ2の制御部21は他のチューナ2のIPアドレス宛へ、分割映像データ50Dの取得要求、ステップS301で読み出した特定情報及び映像データIDを送信する(ステップS310)。制御部21は他のチューナ2から送信された、特定情報及び分割映像データ50Dを、通信部24を介して受信する(ステップS311)。制御部21は受信した特定情報及び分割映像データ50Dを検証データ生成部22へ出力する(ステップS312)。検証データ生成部22はハッシュ関数を用いて検証データ60を生成する(ステップS313)。検証データ生成部22は特定情報及び算出した検証データ60を誤り検出部23へ出力する(ステップS314)。制御部21は記憶部25に記憶した分離後の特定情報及び検証データ60を読み出す(ステップS315)。制御部21は読み出した特定情報及び検証データ60を誤り検出部23へ出力する(ステップS316)。
誤り検出部23は相互の検証データ60が一致するか否かを判断する(ステップS317)。誤り検出部23は一致すると判断した場合(ステップS317でYES)、受信した分割映像データ50Dが正常であることを示す正常情報及び特定情報を制御部21へ出力する。制御部21は特定情報及び正常情報を記憶部25に記憶する(ステップS318)。制御部21は、映像データIDに対応づけて、特定情報順に分割映像データ50Dの全てを連結した映像データ50を映像データファイル251に記憶する(ステップS319)。
制御部21は検証データ60が一致しないと判断した場合(ステップS317でNO)、ステップS318及びS319の処理をスキップし、ステップS321へ移行する。制御部21はIPアドレス不存在情報を受信したか否かを判断する(ステップS321)。制御部21はIPアドレス不存在情報を受信していないと判断した場合(ステップS321でNO)、ステップS317にて一致しなかった回数を計数する(ステップS322)。制御部21は計数した回数が、所定回数以上であるか否かを判断する(ステップS323)。
制御部21は所定回数以上でないと判断した場合(ステップS323でNO)、ステップS324へ移行する。制御部21はサーバコンピュータ3へ他のチューナ2のIPアドレスの取得要求、自身のIPアドレス、ステップS309で受信済みの他のチューナ2のIPアドレス及び映像データIDを送信する(ステップS324)。なおステップS309で複数のIPアドレスを受信している場合は,全てのIPアドレスを送信しても良い。またはサーバコンピュータ3のCPU31は重複送信を防止すべく、送信済みのIPアドレスにフラグを設定し、フラグが設定されていない未送信のIPアドレスを送信するようにしても良い。
その後、処理はステップS304へ移行する。サーバコンピュータ3のCPU31は、取得要求のあったチューナ2のIPアドレス、及び、既に送信済みのIPアドレス以外のIPアドレスを送信する。制御部21は計数した回数が所定回数以上であると判断した場合(ステップS323でYES)、または、ステップS321においてIPアドレス不存在情報を受信したと判断した場合(ステップS321でYES)、ステップS325へ移行する。チューナ2は他の放送装置1から送信された分割映像データ50Dを受信したチューナ2のIPアドレスを取得すべく以下の処理を行う。制御部21はステップS297で受信した送信データ70に含まれる関連情報を抽出する(ステップS325)。具体的には、検証データ60のヘッダ等に含まれる関連情報を抽出する。制御部21は自身のIPアドレス、映像データID及び関連情報をサーバコンピュータ3へ送信する(ステップS326)。なお、さらに他の異なるサーバコンピュータ3のIPアドレスを読み出し、ステップS303の処理を行うようにしても良い。
サーバコンピュータ3のCPU31はチューナ2のIPアドレス、映像データID及び関連情報を受信する(ステップS327)。CPU31は受信した映像データID及びIPアドレスを元に、IPアドレスファイル352を検索し、映像データIDに対応づけて受信した関連情報を記憶する(ステップS328)。なおこの映像データIDに対応する関連情報は予め放送装置1から受信しておいても良い。
続いてチューナ2の制御部21は他のチューナ2のIPアドレスの取得要求を行う(ステップS329)。サーバコンピュータ3のCPU31は取得要求を受信する(ステップS331)。CPU31は関連情報に一致する映像データIDを、IPアドレスファイル352を参照して抽出する(ステップS332)。CPU31は抽出した映像データIDに対応するIPアドレスを読み出す(ステップS333)。CPU31は他の放送装置1にて付与された映像データID及び読み出したIPアドレスをチューナ2へ送信する(ステップS334)。
チューナ2は映像データID及びIPアドレスを受信する(ステップS335)。チューナ2の制御部21は他のチューナ2のIPアドレス宛へ、分割映像データ50Dの取得要求、ステップS301で読み出した特定情報及び映像データIDを送信する(ステップS336)。他のチューナ2は、映像データID及び特定情報を参照することで、映像データファイル251から対応する分割映像データ50Dを読み出す。そして、取得要求をなしたチューナ2へ、読み出した分割映像データ50D及び特定情報を送信する。制御部21は他のチューナ2から送信された、特定情報及び分割映像データ50Dを、通信部24を介して受信する(ステップS337)。制御部21は受信した特定情報及び分割映像データ50Dを検証データ生成部22へ出力する(ステップS338)。検証データ生成部22はハッシュ関数を用いて検証データ60を生成する(ステップS339)。検証データ生成部22は特定情報及び算出した検証データ60を誤り検出部23へ出力する(ステップS341)。制御部21は記憶部25に記憶した分離後の特定情報及び検証データ60を読み出す(ステップS342)。制御部21は読み出した特定情報及び検証データ60を誤り検出部23へ出力する(ステップS343)。
誤り検出部23は相互の検証データ60が一致するか否かを判断する(ステップS344)。誤り検出部23は一致すると判断した場合(ステップS344でYES)、受信した分割映像データ50Dが正常であることを示す正常情報及び特定情報を制御部21へ出力する。制御部21は特定情報及び正常情報を記憶部25に記憶する(ステップS345)。制御部21は、映像データIDに対応づけて、特定情報順に分割映像データ50Dの全てを連結した映像データ50を映像データファイル251に記憶する(ステップS346)。
制御部21は検証データ60が一致しないと判断した場合(ステップS344でNO)、ステップS329へ移行し、さらに他のチューナ2のIPアドレスの取得要求を行う。この場合、サーバコンピュータ3のCPU31は送信するIPアドレスが重複しないよう、未送信のIPアドレスを送信する。これにより、同一の放送装置1から送信された分割映像データ50Dを受信するチューナ2が同様の電波障害を受けている場合でも、適宜他の関連情報を参照することで、他のチューナ2から分割映像データ50Dを取得することが可能となる。他の放送装置1は一の放送装置1とは異なるエリアに存在する可能性があるため、エリアの影響を受けないインターネット等の通信網Nを有効に活用することが可能となる。
本実施の形態4は以上の如きであり、その他は実施の形態1乃至3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態5
実施の形態5は関連情報をチューナ2に送信しない形態に関する。図35及び図36は分割映像データ50Dの送信処理の手順を示すフローチャートである。放送装置1の制御部11は制御プログラム15Pを起動する(ステップS351)。制御部11は送信対象の映像データID及び映像データ50を映像データファイル151から読み出す(ステップS352)。制御部21は外部のWebサーバ(図示せず)に対し映像データID及び関連情報の取得要求を、通信部14を介して送信する(ステップS353)。外部のWebサーバは各放送装置1間の映像データIDと関連情報との対応付けを記憶している。Webサーバは映像データIDに対応する関連情報を放送装置1へ送信する。
放送装置1の制御部11は関連情報を受信する(ステップS354)。制御部11は記憶部15に予め記憶した送信先のチューナ2,2,2,・・・のIPアドレスを読み出す。制御部11は通信部14を介してサーバコンピュータ3へ、読み出したIPアドレス、映像データID及び関連情報を送信する(ステップS355)。この場合併せて放送装置IDをサーバコンピュータ3へ送信する。サーバコンピュータ3のCPU31は放送装置1からIPアドレス、映像データID及び関連情報を受信する。CPU31は図26に示す如く、放送装置1の放送装置IDに対応づけて、映像データID、関連情報及びIPアドレスをIPアドレスファイル352に記憶する。
制御部11は読み出した映像データ50を、記憶部15に予め記憶した分割数に従い、分割し、特定情報及び分割映像データ50Dを生成する(ステップS356)。制御部11は映像データID、特定情報及び分割映像データ50Dを検証データ生成部12へ出力する(ステップS357)。検証データ生成部12は分割映像データ50D毎に検証データ60を生成する(ステップS358)。制御部11は生成された検証データ60を特定情報に関連づけて記憶部15に記憶する(ステップS359)。制御部11は全ての分割映像データ50Dの検証データ60を生成したか否かを判断する(ステップS361)。
制御部11は全ての分割映像データ50Dの検証データ60の生成が終了していないと判断した場合(ステップS361でNO)、ステップS357へ移行し、他の特定情報に係る分割映像データ50Dの検証データ60の生成処理を実行する。制御部11は全ての分割映像データ50Dの検証データ60の生成が終了したと判断した場合(ステップS361でYES)、記憶部15に記憶した全ての分割映像データ50D及び特定情報、並びに、映像データIDを多重部13へ出力する(ステップS362)。
制御部11は分割映像データ50Dの各検証データ60の一組、及び、特定情報を多重部13へ出力する(ステップS363)。多重部13は分割映像データ50Dに複数組の検証データ60を繰り返し多重して送信データ70を生成する(ステップS364)。
多重部13は生成された送信データ70を送信部16へ出力する(ステップS365)。送信部16は送信データ70の変調等を行った後、変調後の送信データ70をチューナ2へ送信する(ステップS366)。チューナ2は送信された送信データ70を受信部26にて受信する(ステップS367)。受信部26は復調等を行い、復調後の送信データ70を順次制御部21へ出力する。制御部21は受信した送信データ70を記憶部25に逐次記憶する(ステップS368)。
制御部21は送信予定の送信データ70を全て受信したか否かを判断する(ステップS369)。制御部21は全ての送信データ70を受信していないと判断した場合(ステップS369でNO)、ステップS367へ移行し、引き続き受信を行う。一方、制御部21は全ての送信データ70を受信したと判断した場合(ステップS369でYES)、一連の処理を終了する。
図37乃至図40は誤り訂正処理の手順を示すフローチャートである。図12においてステップS122でNOの後、以下の処理を実行する。制御部21は、誤り訂正を実行すべく記憶部25から異常情報が記憶された特定情報を読み出す(ステップS371)。制御部21は時計部29の出力を参照し、計時を開始する(ステップS372)。制御部21はIPアドレスファイル252から、サーバコンピュータ3のIPアドレスを読み出す(ステップS373)。制御部21は通信部24を介して読み出したIPアドレス宛に係るサーバコンピュータ3へ、他のチューナ2のIPアドレスの取得要求、チューナ2自身のIPアドレス、及び映像データIDを送信する(ステップS374)。サーバコンピュータ3のCPU31は通信部36を介してIPアドレスの取得要求、IPアドレス及び映像データIDを受信する(ステップS375)。
CPU31は映像データIDを参照し、IPアドレスファイル352から、受信したIPアドレス以外のIPアドレスを読み出す(ステップS376)。CPU31はステップS376におけるIPアドレスの読み出しに成功したか否かを判断する(ステップS377)。CPU31はIPアドレスの読み出しに成功したと判断した場合(ステップS377でYES)、映像データID及び読み出した他のチューナ2のIPアドレスをチューナ2へ送信する(ステップS378)。一方、CPU31はIPアドレスの読み出しに失敗したと判断した場合(ステップS377でNO)、映像データIDに対応する関連情報をIPアドレスファイル352から読み出す(ステップS379)。
CPU31は関連情報に一致する映像データIDを、IPアドレスファイル352を参照して抽出する(ステップS381)。CPU31は抽出した映像データIDに対応するIPアドレスを読み出す(ステップS382)。CPU31は他の放送装置1にて付与された映像データID及び読み出したIPアドレスをチューナ2へ送信する(ステップS383)。なお、ステップS382において映像データIDに対応するIPアドレスが記憶されていない場合は、他の図示しないサーバコンピュータ3からIPアドレスの取得要求または送信要求を行う。具体的にはCPU31は記憶部35から他のサーバコンピュータ3のIPアドレスを読み出す。そしてCPU31は読み出したIPアドレス宛へ、映像データIDに対応するIPアドレスの取得要求を行う。その後処理をステップS383へ移行させる。その他、CPU31は読み出したIPアドレス宛へ、映像データIDに対応するIPアドレスを、チューナ2へ送信するよう命じる要求を出力する。この場合、他のサーバコンピュータ3は映像データIDに対応するIPアドレスを、ステップS383と同じくチューナ2へ送信する。
チューナ2は映像データID及び他のチューナ2のIPアドレスを受信する(ステップS384)。ステップS378により送信される映像データIDは映像データ50を送信した放送装置1に係るIDであり、ステップS383により送信される映像データIDは他の放送装置1に係るIDである。チューナ2の制御部21は他のチューナ2のIPアドレス宛へ、検証データ60の取得要求、ステップS151で読み出した特定情報及び映像データIDを送信する(ステップS385)。
他のチューナ2の制御部21はこの取得要求を受けて、映像データIDに対応づけて記憶部15に記憶した検証データ60を読み出す。そして他のチューナ2の制御部21は読み出した検証データ60及び特定情報を、通信部24を介して、取得要求を行ったチューナ2へ送信する。チューナ2の制御部21は他のチューナ2から送信された、特定情報及び検証データ60を、通信部24を介して受信する(ステップS386)。制御部21は受信した特定情報及び検証データ60を誤り検出部23へ出力する(ステップS387)。制御部21は記憶部25に記憶した分離後の特定情報及び検証データ60を読み出す(ステップS388)。制御部21は読み出した特定情報及び検証データ60を誤り検出部23へ出力する(ステップS389)。
誤り検出部23は相互の検証データ60が一致するか否かを判断する(ステップS391)。誤り検出部23は一致すると判断した場合(ステップS391でYES)、受信した分割映像データ50Dが正常であることを示す正常情報及び特定情報を制御部21へ出力する。制御部21は特定情報及び正常情報を記憶部25に記憶する(ステップS392)。
制御部21は、他のチューナ2から適切な分割映像データ50Dを取得すべく以下の処理を行う。制御部21はステップS378またはS383で受信した映像データID及びIPアドレスを参照し、他のチューナ2へ、映像データID、特定情報及び当該特定情報に対応する分割映像データ50Dの取得要求を送信する(ステップS393)。他のチューナ2の制御部21は、通信部24を介して、映像データID、特定情報及び当該特定情報に対応する分割映像データ50Dの取得要求を受信する。他のチューナ2の制御部21は、映像データID及び特定情報を参照し、映像データファイル251から対応する分割映像データ50Dを読み出す。他のチューナ2の制御部21は読み出した分割映像データ50D及び特定情報を、取得要求を送信したチューナ2へ送信する。
制御部21は特定情報及び誤りのない分割映像データ50Dを、通信部24を介して受信する(ステップS394)。これにより、誤りのない全ての分割映像データ50Dがそろったことから、分割映像データ50Dを連結して映像データ50を生成する処理を行う。制御部21は、映像データIDに対応づけて、特定情報順に分割映像データ50Dの全てを連結した映像データ50を映像データファイル251に記憶する(ステップS395)。
制御部21は検証データ60が一致しないと判断した場合(ステップS391でNO)、ステップS392乃至S395の処理をスキップし、さらに別の他のチューナ2から検証データ60を取得すべく、ステップS396へ移行する。制御部21は記憶部25に記憶した所定時間を読み出す(ステップS396)。制御部21は時計部29の出力を参照し、ステップS372の計時開始からの経過時間を算出する(ステップS397)。制御部21は算出した経過時間が所定時間以上であるか否かを判断する(ステップS398)。制御部21は経過時間が所定時間以上であると判断した場合(ステップS398でYES)、タイムアウトして処理を終了する。
制御部21は所定時間以上でないと判断した場合(ステップS398でNO)、ステップS399へ移行する。制御部21は、サーバコンピュータ3へさらに他のチューナ2のIPアドレスの取得要求、自身のIPアドレス、ステップS384で受信済みの他のチューナ2のIPアドレス及び映像データIDを送信する(ステップS399)。その後、処理はステップS375へ移行する。サーバコンピュータ3のCPU31はステップS375以降の処理を繰り返す。これにより、他の放送装置1を通じて同一の映像データ50を受信したチューナ2の検証データ60を有効活用できる。
本実施の形態5は以上の如きであり、その他は実施の形態1乃至4と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態6
実施の形態6は映像データ50の送信中に映像データ50に変更があった場合の処理に関する。図41は実施の形態6に係る放送装置1のハードウェア群を示すブロック図である。映像データ入力部122及び変更情報生成部123がさらに設けられている。映像データ入力部122は例えばキーボード若しくはマウス等の入力デバイスである。例えば緊急地震速報の場合、映像データ50の一部に地震に関する情報がスーパーインポーズされる。この場合、オペレータは映像データ入力部122であるキーボードによりテキストデータを入力する。その他、映像データ入力部122はUSB(Universal Serial Bus)メモリ、ハードディスク、またはDVD(Digital Versatile Disc)等の記録媒体等であっても良い。
制御部11はテキストデータを多重部13へ出力する。多重部13は送信中の分割映像データ50Dにテキストデータを多重する。その他、テキストデータの入力に代えて、記録媒体に記憶されたテキストデータまたは異なる映像データ50を制御部11へ出力してもよい。本実施の形態においては説明を容易にするために分割映像データ50Dにキーボードで入力したテキストデータ(以下、変更データ)を多重する例を挙げて説明する。変更情報生成部123は映像データ入力部122の追加データの出力及び多重部13の出力を参照し、変更情報を多重部13へ出力する。
変更情報は一の分割映像データ50Dが変更されたことを示す情報である。本実施の形態においては、3段階に変化する変更情報を例に挙げて説明する。図42は検証データ60のレコードレイアウトを示す説明図である。検証データ60には、さらに変更情報フィールドが設けられている。検証データ60のヘッダ等に変更情報が記述される。変更情報は、分割映像データ50Dが、送信途中で変更される可能性があることを示す未変更状態(以下、場合により状態「0」で示す。)を含む。変更情報は、分割映像データ50Dが送信途中で変更されることなく送信が完了したことを示す無変更状態(以下、場合により状態「1」で示す。)を含む。さらに、変更情報は、分割映像データ50Dが、送信途中で変更されたことを示す変更状態(以下、場合により状態「2」で示す。)を含む。
図43は変更情報の遷移を示す説明図である。図43Aは放送装置1の送信部16から送信される変更情報の遷移を示す。なお、図43Aにおいては変更データが出力されない例を説明する。分割映像データ51,52,53,54の送信にあわせて、一組の検証データ61,62,63,64が繰り返し送信される。同様に一組の変更情報71,72,73,74(以下、場合により700で代表する)が検証データ60と共に繰り返し送信される。分割映像データ51の送信を開始した場合、制御部11は検証データ生成部12にて生成した検証データ61及び特定情報を多重部13へ出力する。また、変更情報生成部123は変更データが出力されていないことから、変更情報700である状態「0」を多重部13へ出力する。
図43Aに示す如く、検証データ61,62,63,64に付加される変更情報71,72,73,74は「0」「0」「0」「0」となる。変更情報生成部123は分割映像データ51が変更されることなく送信部16から送信されたと判断した場合、特定情報及び無変更状態(状態「1」)を多重部13へ出力する。これにより、分割映像データ51の送信後は、検証データ61,62,63,64に付加される変更情報71,72,73,74は「1」「0」「0」「0」となる。同様に、変更情報生成部123は分割映像データ52が変更されることなく送信部16から送信されたと判断した場合、特定情報及び無変更状態(状態「1」)を多重部13へ出力する。分割映像データ52の送信後は、検証データ61,62,63,64に付加される変更情報71,72,73,74は「1」「1」「0」「0」となる。
次に、変更情報生成部123は分割映像データ53が変更されることなく送信部16から送信されたと判断した場合、特定情報及び無変更状態(状態「1」)を多重部13へ出力する。分割映像データ53の送信後は、検証データ61,62,63,64に付加される変更情報71,72,73,74は「1」「1」「1」「0」となる。変更情報生成部123は分割映像データ54が変更されることなく送信部16から送信されたと判断した場合でも、既に映像データ50は全て送信されている。従って、分割映像データ54の送信終了段階にて、検証データ61,62,63,64に付加される変更情報71,72,73,74は「1」「1」「1」「0」のままとなる。図43Bはチューナ2の変更情報700を示す説明図である。チューナ2の制御部21は受信部26を介して送信データ70を受信した場合、繰り返し送信される変更情報700を分離する。変更情報700は図43Aに示す如く、時系列で順次変化する。制御部21は分離した変更情報700を最新の変更情報700に上書きする。
図43の例では、最後に受信した変更情報71,72,73,74は「1」「1」「1」「0」となる。制御部21は変更情報74が「0」の場合、変更データの追加がないものとみなして、変更情報74を「1」へ書き換える。これにより図43Bに示す如くチューナ2の変更情報71,72,73,74は「1」「1」「1」「1」となる。
図44は変更データが追加された場合の変更情報700の遷移を示す説明図である。図44においては、分割映像データ54の送信途中で変更データが追加された例を挙げて説明する。映像データ入力部122で入力された変更データは制御部11へ出力される。制御部11は多重部13へ変更データを出力する。多重部13は現在送信中の分割映像データ54に変更データを多重する。変更情報生成部123は映像データ入力部122から変更データが出力されたことから変更情報700である変更状態(状態「2」)を多重部13へ出力する。多重部13は送信中の分割映像データ54に対応する検証データ64に変更情報700を多重する。
図44Aは変更情報700の遷移を示す説明図である。図44Aに示す如く分割映像データ54の送信後の変更に伴い、変更情報74は「0」から「2」へと変更される。図44Bは送信部16から送信される分割映像データ50Dを示す説明図である。分割映像データ54に字幕等の変更データが追加されている。図44Cは検証データ60を示す説明図である。検証データ64は変更データが追加される前に算出されたキャッシュ値であり、このままチューナ2へ繰り返し送信される。
チューナ2の誤り検出部23は、変更後の分割映像データ54と、検証データ64とが一致しないことから、以下に述べる処理により、誤り検出を行う。チューナ2の制御部21は他のチューナ2に対し検証データ64の取得要求を行い、一致した場合変更後の分割映像データ54に誤りがある蓋然性が低いと見なす。一致しない場合、制御部21は複数の他のチューナ2から検証データ64を取得し、一致する検証データ60を送信したチューナ2から誤りのない分割映像データ54を取得する。
図45乃至図48は付加処理の手順を示すフローチャートである。放送装置1の制御部11は制御プログラム15Pを起動する(ステップS451)。制御部11は送信対象の映像データID及び映像データ50を映像データファイル151から読み出す(ステップS452)。制御部11は記憶部15に予め記憶した送信先のチューナ2,2,2,・・・のIPアドレスを読み出す。制御部11は通信部14を介してサーバコンピュータ3へ、読み出したIPアドレス及び映像データIDを送信する(ステップS453)。
制御部11は読み出した映像データ50を、記憶部15に予め記憶した分割数に従い、分割し、特定情報及び分割映像データ50Dを生成する(ステップS454)。制御部11は映像データID、特定情報及び分割映像データ50Dを検証データ生成部12へ出力する(ステップS455)。
検証データ生成部12は分割映像データ50D毎に検証データ60を生成する(ステップS456)。検証データ生成部12はハッシュ関数を用いて、各特定情報にかかる分割映像データ50Dの検証データ60を生成する。制御部11は生成された検証データ60を特定情報に関連づけて記憶部15に記憶する(ステップS457)。制御部11は全ての分割映像データ50Dの検証データ60を生成したか否かを判断する(ステップS458)。
制御部11は全ての分割映像データ50Dの検証データ60の生成が終了していないと判断した場合(ステップS458でNO)、ステップS455へ移行し、他の特定情報に係る分割映像データ50Dの検証データ60の生成処理を実行する。制御部11は全ての分割映像データ50Dの検証データ60の生成が終了したと判断した場合(ステップS458でYES)、記憶部15に記憶した分割映像データ50D及び特定情報、並びに、映像データIDを多重部13へ出力する(ステップS459)。
制御部11は記憶部15に記憶した検証データ60の一組及び特定情報を多重部13へ出力する(ステップS461)。変更情報生成部123は、未送信の分割映像データ50Dについて変更情報700(状態「0」)を多重部13へ出力する(ステップS462)。分割映像データ51を送信する段階においては、変更情報71,72,73,74は「0」、「0」、「0」、「0」となる。多重部13は分割映像データ50Dに変更情報700を含む検証データ60を繰り返し多重して送信データ70を生成する(ステップS463)。
多重部13はこのようにして生成された送信データ70を送信部16へ出力する(ステップS464)。送信部16は送信データ70の変調等を行った後、変調後の送信データ70をチューナ2へ送信する(ステップS465)。制御部11は、送信部16の送信状況を監視し、一の分割映像データ50Dの送信が完了したか否かを判断する(ステップS466)。分割映像データ50Dの送信が完了した場合(ステップS466でYES)、ステップS473へ移行する。例えば、分割映像データ51の送信中に、映像データ入力部122から変更データが入力されず、分割映像データ51の送信を完全に終えた場合、ステップS473へ移行する。
制御部11は全ての分割映像データ51,52,53,54の送信が完了したか否かを判断する(ステップS473)。制御部11は全ての分割映像データ50Dの送信が完了していないと判断した場合(ステップS473でNO)、ステップS474へ移行する。変更情報生成部123はステップS466の判断において送信を完了した分割映像データ50Dに係る変更情報700(状態「1」)を多重部13へ出力する(ステップS474)。その後処理をステップS459へ戻す。これを繰り返し行うことにより、全ての分割映像データ50Dの送信が終了する。また変更データが送信されない場合、変更情報700は送信が完了する度に「0」から「1」へ変更される。制御部11は全ての分割映像データ50Dの送信が完了したと判断した場合(ステップS473でYES)、処理を終了する。
制御部11はステップS466において、一の分割映像データ50Dの送信が完了していないと判断した場合(ステップS466でNO)、映像データ入力部122から変更データが入力されたか否かを判断する(ステップS467)。制御部21は変更データが入力されていない(受け付けていない)と判断した場合(ステップS467でNO)、処理をステップS466へ戻す。ステップS467において制御部11は映像データ入力部122から変更データが入力されたと判断した場合(ステップS467でYES)、変更データを多重部13へ出力する(ステップS468)。変更情報生成部123は変更情報700(状態「2」)を多重部13へ出力する(ステップS469)。多重部13は分割映像データ50Dに、変更データを多重する(ステップS471)。多重部13は分割映像データ50Dに、ステップS469で出力された変更情報700を含む複数組の検証データ60を繰り返し多重して送信データ70を生成する(ステップS472)。制御部11は生成した送信データ70を送信部16へ出力する。送信部16は送信データ70をチューナ2へ送信する(ステップS4721)。この場合多重部13は送信中の分割映像データ50Dに対応する検証データ60に変更情報700の状態「2」多重する。多重後の変更データを含む分割映像データ50D及び変更情報700(状態「2」)が送信される。
例えば、分割映像データ51に変更データが多重された場合、検証データ61に変更情報71(状態「2」)が多重される。また、未送信の分割映像データ52,53,54の他の検証データ62,63,64には変更情報72,73,72(状態「0」、「0」、「0」)が付加される。その後処理をステップS459に戻し、次に送信される分割映像データ50Dの処理を行う。ステップS473において、制御部11は全ての分割映像データ50Dの送信を完了したと判断した場合(ステップS473でYES)、処理を終了する。最後に分割映像データ54及び変更情報700(状態「0」、「1」、または「2」)が付加された検証データ60が送信される。
チューナ2はステップS465またはステップS4721において送信された送信データ70を受信部26にて受信する(ステップS475)。受信部26は復調等を行い、復調後の送信データ70を順次制御部21へ出力する。制御部21は受信した送信データ70を記憶部25に逐次記憶する(ステップS476)。制御部21は映像データID、特定情報、検証データ60及び変更情報700を分離する(ステップS477)。そして制御部21は、分離後の映像データID、特定情報、検証データ60及び変更情報700を記憶する(ステップS478)。なお、変更情報700は送信状況及び変更状況に応じて随時変化するが、履歴として記憶しておけばよい。その他、変更情報700については上書き保存するようにしても良い。本実施の形態においては、制御部21は変更情報700に変化が生じない場合、上書き保存し、それ以外の場合、履歴として全ての変更情報700を記憶するようにする例を挙げて説明する。
制御部21は一の分割映像データ50Dの受信を終了したか否かを判断する(ステップS479)。制御部21は一の分割映像データ50Dの受信を終了していないと判断した場合(ステップS479でNO)、ステップS475へ移行し、引き続き、一の分割映像データ50Dの受信を行う。一方、制御部21は一の分割映像データ50Dの受信を終了したと判断した場合(ステップS479でYES)、映像データID、特定情報、及び分割映像データ50Dを記憶部15から読み出し分離する(ステップS481)。制御部21は記憶部25に映像データID、特定情報及び分離した分割映像データ50Dを記憶する(ステップS482)。
制御部21は全ての分割映像データ50Dを受信したか否かを判断する(ステップS483)。制御部21は全ての分割映像データ50Dを受信していないと判断した場合(ステップS483でNO)、ステップS475へ移行し以上の処理を繰り返す。制御部21は全ての分割映像データ50Dを受信したと判断した場合(ステップS483でYES)、特定情報が最も大きい変更情報700の状態が「0」であるか否かを判断する(ステップS484)。すなわち、最後に送信される分割映像データ54の変更情報700が「0」、または、変更に起因する「2」であるか否かを判断する。
制御部21は変更情報700が「0」でないと判断した場合(ステップS484でNO)、変更があったことを示す状態「2」を維持すべく処理を終了する。一方、制御部21は変更状態が「0」であると判断した場合(ステップS484でYES)、変更なく受信したことを示すべく、特定情報が最も大きい変更情報700の状態を「1」に変更して記憶部15に記憶する(ステップS485)。
図49乃至図51は誤り訂正処理の手順を示すフローチャートである。チューナ2の制御部21は図11におけるステップS111以降の処理と並行して以下の処理を行う。制御部21は変更情報700に変更データがスーパーインポーズされたことを示す状態「2」が記憶部25に記憶されているか否かを判断する(ステップS491)。具体的には制御部21はステップS478において記憶部25に記憶された変更情報700を参照して判断する。制御部21は状態「2」が記憶されていないと判断した場合(ステップS491でNO)、処理を終了する。
制御部21は状態「2」が記憶されていると判断した場合(ステップS491でYES)、状態「2」に対応する特定情報、検証データ60及び分割映像データ50Dを記憶部25から読み出す(ステップS492)。上述の例では特定情報54D、検証データ64及び分割映像データ54が読み出される。制御部21は読み出した分割映像データ50Dを検証データ生成部22へ出力する。検証データ生成部22は変更データが付加された分割映像データ50Dの検証データ60を算出する(ステップS4921)。制御部21は、IPアドレスファイル252から、サーバコンピュータ3のIPアドレスを読み出す(ステップS493)。制御部21は通信部24を介して読み出したIPアドレス宛に係るサーバコンピュータ3へ、他のチューナ2のIPアドレスの取得要求、チューナ2自身のIPアドレス、及び映像データIDを送信する(ステップS494)。サーバコンピュータ3のCPU31は通信部36を介してIPアドレスの取得要求、IPアドレス及び映像データIDを受信する(ステップS495)。
CPU31は映像データIDを参照し、IPアドレスファイル352から、受信したIPアドレス以外のIPアドレスを読み出す(ステップS496)。CPU31は、通信部36を介して読み出したIPアドレスをチューナ2へ送信する(ステップS497)。
チューナ2はこれにより、通信部24を介して、他のチューナ2のIPアドレスを受信(取得)する(ステップS498)。チューナ2の制御部21は他のチューナ2のIPアドレス宛へ、検証データ60の取得要求、ステップS492で読み出した特定情報及び映像データIDを送信する(ステップS499)。他のチューナ2の制御部21は、映像データID及び特定情報を参照し、映像データファイル251から分割映像データ50Dを読み出す。制御部21は読み出した分割映像データ50Dを検証データ生成部22へ出力する。検証データ生成部22は検証データ60を算出し、算出後の検証データ60を制御部21へ出力する。他のチューナ2の制御部21は算出した検証データ60を、取得要求をなしたチューナ2へ送信する。検証データ制御部21は他のチューナ2から送信された、特定情報及び検証データ60を、通信部24を介して受信する(ステップS501)。
制御部21は他のチューナ2から受信した検証データ60を誤り検出部23へ出力する(ステップS502)。制御部21はステップS4921で算出した検証データ60を誤り検出部23へ出力する(ステップS503)。誤り検出部23は検証データ60が相互に一致するか否かを判断する(ステップS504)。制御部21は一致すると判断した場合(ステップS504でYES)、変更データが多重された分割映像データ50Dは誤りがないとみなしてステップS505へ移行する。制御部21は特定情報及び分割映像データ50Dを記憶部25から読み出す。制御部21は特定情報の順に読み出した分割映像データ50Dを連結し、映像データIDに対応づけて連結した映像データ50を映像データファイル251に記憶する(ステップS505)。
誤り検出部23は検証データ60が一致しないと判断した場合(ステップS504でNO)、ステップS501で受信した他のチューナ2に係る不一致の検証データ60及び特定情報を記憶部25に記憶する(ステップS506)。制御部21は当該記憶した不一致の検証データ60は複数記憶されているか否かを判断する(ステップS507)。制御部21は複数記憶されていないと判断した場合(ステップS507でNO)、ステップS509へ移行する。
制御部21はサーバコンピュータ3へ、他のチューナ2のIPアドレスの取得要求、IPアドレス、ステップS498で受信した受信済みのIPアドレス及び映像データIDを送信する(ステップS509)。その後処理はステップS495へ移行する。以上の処理を繰り返すことにより、複数の他のチューナ2から複数の検証データ60が蓄積されることになる。
制御部21は検証データ60が複数記憶されていると判断した場合(ステップS507でYES)、相互に一致する検証データ60が存在するか否かを判断する(ステップS508)。制御部21は一致しないと判断した場合(ステップS508でNO)、処理をステップS509へ移行させる。制御部21は一致するデータが存在すると判断した場合(ステップS508でYES)、一致する検証データ60を送信したチューナ2のIPアドレス宛へ特定情報、映像データID及び分割映像データ50Dの取得要求を送信する(ステップS511)。なお、他のチューナ2のIPアドレスはステップS506で記憶した不一致の検証データ60に対応するIPアドレスを参照すればよい。
チューナ2の制御部21は他のチューナ2から送信された特定情報及び分割映像データ50Dを受信する(ステップS512)。制御部21は当該特定情報以外の特定情報の分割映像データ50Dを記憶部15から読み出す。制御部21は分割映像データ50Dを特定情報順に連結し、映像データ51を生成する。制御部21は生成した映像データ50を映像データIDに対応づけて映像データファイル251に記憶する(ステップS513)。これにより送信途中で映像データ50に変更が加えられた場合でも、通信負担を軽減しつつ誤りの訂正が可能となる。
本実施の形態6は以上の如きであり、その他は実施の形態1乃至5と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態7
図52は実施の形態7に係るチューナ2のハードウェア群を示すブロック図である。実施の形態1乃至6に係るチューナ2を動作させるためのプログラムは、本実施の形態7のように、読み取り部(図示せず)にCD−ROM等の可搬型記録媒体1Aを読み取らせて記憶部25に記憶しても良い。また、当該プログラムは、インターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)から、通信部24を介してダウンロードすることも可能である。以下に、その内容を説明する。
図52に示すチューナ2は、検証データ60を受信させ、誤りを検出等させるプログラムを、可搬型記録媒体1Aによりまたは通信網Nを介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム25Pとしてインストールされ、ロードして実行される。これにより、上述したチューナ2からとして機能する。
本実施の形態7は以上の如きであり、その他は実施の形態1乃至6と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態8
実施の形態8は情報処理装置2を情報記憶装置3として機能させる形態に関する。図53は実施の形態8に係るコンテンツ処理システムの概要を示す説明図である。図54は実施の形態8に係るチューナ2のハードウェア群を示すブロック図である。上述の実施の形態で述べたサーバコンピュータ3は当該サーバコンピュータ3の機能と上述の実施の形態のチューナ2の機能とを併せ持つチューナ2としてもよい。図53に示すチューナ260は、チューナ2とサーバコンピュータ3との機能を併せ持ち、チューナ210からのIPアドレスの取得要求等に応じてIPアドレスファイル352に記憶したIPアドレスをチューナ210へ出力する。
図54に示す如く記憶部25には、サーバコンピュータ3の記憶部35に記憶されていた制御プログラム35P及びIPアドレスファイル352が記憶されている。チューナ260は、IPアドレスの取得要求を受け付けた場合、制御プログラム35Pに従い、IPアドレスファイル352を参照し、IPアドレスを、通信部24を介して他のチューナ2へ出力する。
図55は送信データ70のデータレイアウトを示す説明図である。図55は、ステップS84等で放送装置1からチューナ2へ送信される送信データ70の一例を示している。送信データ70は、インデックスパケット、映像データパケット、検証データパケット及びクロックパケット等を含む。なお、音声データパケット等他のパケットについては記載を省略している。チューナ2は受信した送信データ70を記憶部25に記憶する。この場合、制御部21は検証データパケットと映像データパケット等を分離して記憶部25に記憶するようにしても良い。
図56は記憶部25に記憶されるパケットの一例を示す説明図である。検証データパケットが抽出され、抽出された検証データパケットと、インデックスパケット、映像データパケット及びクロックパケット等とが分離された上で、記憶部25に記憶される。
本実施の形態7は以上の如きであり、その他は実施の形態1乃至6と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
以上の実施の形態1乃至8を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
送信装置が送信したコンテンツを情報処理装置に処理させるプログラムにおいて、
コンテンツ、及び、該コンテンツを分割した分割コンテンツに対応する複数の検証データを前記送信装置から受信する受信ステップと、
前記分割コンテンツに基づき算出される検証データ及び前記受信ステップにより受信した検証データに基づき、各分割コンテンツの誤りを検出する検出ステップと、
該検出ステップにより分割コンテンツの誤りを検出した場合に、他の情報処理装置から前記検出ステップにより誤りを検出した分割コンテンツに対応する分割コンテンツを取得する取得ステップと
を情報処理装置に実行させるプログラム。
(付記2)
前記取得ステップは、
前記検出ステップにより分割コンテンツの誤りを検出した場合に、前記送信装置により送信されるコンテンツを受信する情報処置装置を示す送信先情報を記憶する情報記憶装置へ、送信先情報の取得を要求するステップと、
前記情報記憶装置から送信先情報を取得するステップと、
取得した送信先情報を参照し、該送信先情報に対応する他の情報処理装置へ、前記分割コンテンツに対応する分割コンテンツを要求するステップと、
前記他の情報処理装置から送信された分割コンテンツを受信するステップと、
前記他の情報処理装置から受信した分割コンテンツに基づき算出される検証データ及び前記受信ステップにより受信した検証データが一致するか否かを判断する判断ステップと
を含む付記1に記載のプログラム。
(付記3)
前記取得ステップは、
前記検出ステップにより分割コンテンツの誤りを検出した場合に、前記送信装置により送信されるコンテンツを受信する情報処置装置を示す送信先情報を記憶する情報記憶装置へ、送信先情報の取得を要求するステップと、
前記情報記憶装置から送信先情報を取得するステップと、
取得した送信先情報を参照し、該送信先情報に対応する他の情報処理装置へ、前記分割コンテンツに対応する検証データを要求するステップと、
前記他の情報処理装置から送信された検証データを受信するステップと、
前記他の情報処理装置から受信した検証データと前記受信ステップにより受信した検証データとが一致するか否かを判断する判断ステップと、
一致すると判断した場合に、検証データに対応する分割コンテンツを前記他の情報処理装置から取得するステップと
を含む付記1に記載のプログラム。
(付記4)
前記受信ステップは、
コンテンツ、及び、該コンテンツを分割した分割コンテンツに基づき算出されるハッシュ値である複数の検証データを前記送信装置から受信し、
前記検出ステップは、
前記受信ステップにより受信したコンテンツを分割した分割コンテンツに基づきハッシュ値を算出するステップと、
算出した分割コンテンツに係るハッシュ値と、前記受信ステップにより受信した分割コンテンツに係る検証データとが一致するか否かを判断するステップと、
一致しないと判断した場合に、一致しない検証データに係る分割コンテンツに誤りがあることを示す情報を出力するステップと
を含む付記2または3に記載のプログラム。
(付記5)
前記受信ステップは、
コンテンツを前記送信装置から受信するステップと、
前記コンテンツを分割した分割コンテンツに基づき算出されるハッシュ値である複数の検証データを前記送信装置から繰り返し受信するステップと
を含む付記4に記載のプログラム。
(付記6)
前記受信ステップは、
検証データに基づき算出された補助検証データを受信するステップを含み、
前記受信ステップにより受信した検証データに基づき算出される補助検証データと受信した補助検証データとが一致するか否かを判断するステップをさらに含み、
前記検出ステップは、
補助検証データが一致すると判断したことを条件に、各分割コンテンツの誤りを検出する付記5に記載のプログラム。
(付記7)
前記受信ステップは、
前記送信装置が送信するコンテンツと他の送信装置が送信するコンテンツとの関連情報を受信するステップを含み、
前記判断ステップにより、一致しないと判断した場合に、前記関連情報に対応づけて前記他の送信装置が送信するコンテンツの送信先情報を記憶する情報記憶装置へ、受信した関連情報に対応するコンテンツの送信先情報の取得を要求するステップと、
前記情報記憶装置からコンテンツの送信先情報を取得するステップと、
取得した送信先情報を参照し、該送信先情報に対応する他の情報処理装置へ、前記分割コンテンツに対応する分割コンテンツを要求するステップと、
前記他の情報処理装置から送信された分割コンテンツを受信するステップと、
前記他の情報処理装置から受信した分割コンテンツに基づき算出される検証データ及び前記受信ステップにより受信した検証データが一致するか否かを判断するステップと
を含む付記2のプログラム。
(付記8)
前記受信ステップは、
前記送信装置が送信するコンテンツと他の送信装置が送信するコンテンツとの関連情報を受信するステップを含み、
前記判断ステップにより、一致しないと判断した場合に、前記関連情報に対応づけて前記他の送信装置が送信するコンテンツの送信先情報を記憶する情報記憶装置へ、受信した関連情報に対応するコンテンツの送信先情報の取得を要求するステップと、
前記情報記憶装置からコンテンツの送信先情報を取得するステップと、
取得した送信先情報を参照し、該送信先情報に対応する他の情報処理装置へ、前記分割コンテンツに対応する検証データを要求するステップと、
前記他の情報処理装置から送信された検証データを受信するステップと、
前記他の情報処理装置から受信した検証データと前記受信ステップにより受信した検証データとが一致するか否かを判断するステップと、
一致すると判断した場合に、検証データに対応する分割コンテンツを前記他の情報処理装置から取得するステップと
を含む付記3に記載のプログラム。
(付記9)
前記受信ステップは、
コンテンツを受信中に一の分割コンテンツが変更されたことを示す変更情報を受信するステップを含み、
前記変更情報を受信した場合に、前記一の分割コンテンツに基づく検証データを算出する算出ステップと、
前記情報記憶装置へ送信先情報の取得を要求するステップと、
前記情報記憶装置から送信先情報を取得するステップと、
取得した送信先情報を参照し、該送信先情報に対応する他の情報処理装置へ、前記一の分割コンテンツに対応する検証データを要求するステップと、
前記他の情報処理装置から送信された検証データを受信するステップと、
前記他の情報処理装置から受信した検証データと前記算出ステップにより算出した検証データとが一致するか否かを判断する変更判断ステップと
を含む付記5に記載のプログラム。
(付記10)
前記変更判断ステップにより一致しないと判断した場合に、取得した送信先情報を参照し、送信先情報に対応する複数の他の情報処理装置へ、前記一の分割コンテンツに対応する検証データを要求するステップと、
複数の他の情報処理装置から送信された検証データを受信するステップと、
複数の検証データ間で相互に一致する検証データを抽出するステップと、
抽出した検証データを送信した他の情報処理装置へ前記一の分割コンテンツの取得を要求するステップと、
前記他の情報処理装置から送信された前記一の分割コンテンツを取得するステップと
を含む付記9に記載のプログラム。
(付記11)
送信装置が送信したコンテンツを処理する情報処理装置において、
コンテンツ、及び、該コンテンツを分割した分割コンテンツに対応する複数の検証データを前記送信装置から受信する受信部と、
前記分割コンテンツに基づき算出される検証データ及び前記受信部により受信した検証データに基づき、各分割コンテンツの誤りを検出する検出部と、
該検出部により分割コンテンツの誤りを検出した場合に、他の情報処理装置から前記検出部により誤りを検出した分割コンテンツに対応する分割コンテンツを取得する取得部と
を備える情報処理装置。
(付記12)
送信装置から情報処理装置へ送信したコンテンツを処理するコンテンツ処理方法において、
コンテンツ、及び、該コンテンツを分割した分割コンテンツに対応する複数の検証データを前記送信装置から受信する受信ステップと、
前記分割コンテンツに基づき算出される検証データ及び前記受信ステップにより受信した検証データに基づき、各分割コンテンツの誤りを検出する検出ステップと、
該検出ステップにより分割コンテンツの誤りを検出した場合に、他の情報処理装置から前記検出ステップにより誤りを検出した分割コンテンツに対応する分割コンテンツを取得する取得ステップと
を含むコンテンツ処理方法。
(付記13)
送信装置及び情報処理装置を含み、前記送信装置が送信したコンテンツを情報処理装置にて処理するコンテンツ処理システムにおいて、
前記送信装置は、
コンテンツ及び該コンテンツを分割した分割コンテンツに対応する複数の検証データを情報処理装置へ送信する送信部を備え、
前記情報処理装置は、
コンテンツ及び分割コンテンツに対応する複数の検証データを前記送信装置から受信する受信部と、
前記分割コンテンツに基づき算出される検証データ及び前記受信部により受信した検証データに基づき、各分割コンテンツの誤りを検出する検出部と、
該検出部により分割コンテンツの誤りを検出した場合に、他の情報処理装置から前記検出部により誤りを検出した分割コンテンツに対応する分割コンテンツを取得する取得部と
を備えるコンテンツ処理システム。