説明

コンテンツ送信装置、コンテンツ送信方法及びコンテンツ送信プログラム

【課題】本発明は、ネットワークに適してコンテンツデータを送信する。
【解決手段】本発明は、ストリーミング形式で配信されるコンテンツデータD2をFIFO12に記憶し、記憶された順に読み出して暗号化部14により暗号化して受信装置4に送信する際、ネットワークNTの状況によりFIFO12の残容量が閾値以下になった場合、FIFO12から読み出したコンテンツデータD2を破棄するようにしたことにより、コンテンツデータD2を暗号化する前に破棄することができ、かくしてネットワークNTに適してコンテンツデータD2を送信することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンテンツ送信装置、コンテンツ送信方法及びコンテンツ送信プログラムに関し、例えばストリーミング形式で配信されるコンテンツデータをネットワークを介してレコーダ等の受信装置に送信する場合に適用して好適なものである。
【背景技術】
【0002】
近年、家庭内の家電機器やコンピュータ等をネットワーク接続し、これら機器間で通信を可能にしたホームネットワークが普及し始めている。
【0003】
このようなホームネットワークでは、コンテンツ送信装置が例えば放送局から配信されるストリームミング形式でなるコンテンツデータを受信し、当該コンテンツデータをホームネットワークを介してディスプレイやレコーダ等の受信装置に送信することにより、例えばレコーダによりコンテンツデータを記憶し得るようになされている。
【0004】
ところでコンテンツデータは、デジタル化されて提供されることが多く、デジタルのコンテンツデータはコピーや改竄が比較的容易に行われてしまう。
【0005】
そこで、ホームネットワークにおいては、DTLA(Digital Transmission Licensing Administrator)によって開発されたDTCP(Digital Transmission Content Protection)をIP(Internet Protocol)インターフェースに対応させたDTCP−IP(DTCP over IP)により著作権が保護された形でコンテンツデータが送信される。
【0006】
コンテンツ送信装置は、ストリームミング形式でなるコンテンツデータを受信装置に送信する場合、通常、RTP(Real Time Protocol)/UDP(User Datagram Protocol)を用いてコンテンツデータを送信する。これによりコンテンツ送信装置は、送信速度が高い状態でコンテンツデータを受信装置に送信することができる。
【0007】
一方、ホームネットワークにおいては、DLNA(Digital Living Network Alliance)に代表されるように家電機器やコンピュータ等をHTTP(Hyper Text Transmission Protocol)/TCP(Transmission Control Protocol)により接続するようになされてきている。
【0008】
この場合、コンテンツ送信装置は、コンテンツデータをHTTP/TCPを用いて送信することになり、信頼性の高い状態でコンテンツデータを受信装置に送信することができる。
【0009】
しかしながら、このようなコンテンツ送信装置では、コンテンツデータを受信装置が受信できなかった場合、当該受信装置から再送要求が行われ、コンテンツデータを再送するといった処理が行われるので、ストリームミング形式でなるコンテンツデータの送信に遅延が発生してしまうことになる。
【0010】
そこでこのようなコンテンツ送信装置のなかには、当該コンテンツ送信装置内に設けられたバッファに放送局から配信されるコンテンツデータを記憶する。そしてコンテンツ送信装置は、遅延が発生して所定量以上のコンテンツデータがバッファに記憶されたとき、当該コンテンツデータをリアルタイム性を判断して破棄するようになされたものが提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0011】
特開2005−51709公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
ところで上述したコンテンツ送信装置では、DTCP−IP規格に準拠したAES(Advanced Encryption Standard)−CBCモードでコンテンツデータを暗号化して受信装置に送信する場合、暗号化されたコンテンツデータの一部が破棄されてしまうことが考えられる。
【0013】
このような場合、受信装置では、暗号化されたコンテンツデータのうちのコンテンツ送信装置によって破棄されていない部分だけを受信しても、破棄された一部以降のコンテンツデータを復号することができない。
【0014】
これにより受信装置では、映像が劣化したり、誤動作等が発生してしまうことも考えられ、コンテンツ送信装置がネットワークに適してコンテンツデータを送信しているとは言い難い。
【0015】
本発明は以上の点を考慮してなされたもので、ネットワークに適してコンテンツデータを送信し得るコンテンツ送信装置、コンテンツ送信方法及びコンテンツ送信プログラムを提案しようとするものである。
【課題を解決するための手段】
【0016】
かかる課題を解決するため本発明においては、ストリーミング形式で配信されるコンテンツデータを取得する取得部と、取得部により取得されたコンテンツデータを一時的に記憶する一時記憶部と、一時記憶部に記憶されたコンテンツデータを記憶された順に読み出すデータ制御部と、データ制御部により読み出されたコンテンツデータを所定量を単位として暗号化する暗号化部と、暗号化部により暗号化されたコンテンツデータをネットワークを介して所定の受信装置に送信する送信部とを具え、データ制御部は、上記ネットワークの状況により上記一時記憶部の残容量が所定閾値以下になった場合、上記一時記憶部から読み出したコンテンツデータを破棄するようにした。
【0017】
また本発明においては、ストリーミング形式で配信されるコンテンツデータを取得する取得ステップと、取得ステップにより取得されたコンテンツデータを一時記憶部に一時的に記憶する一時記憶ステップと、一時記憶部に記憶されたコンテンツデータを記憶された順に読み出すデータ制御ステップと、データ制御ステップにより読み出されたコンテンツデータを所定量を単位として暗号化する暗号化ステップと、暗号化ステップにより暗号化されたコンテンツデータをネットワークを介して所定の受信装置に送信する送信ステップとを設け、データ制御ステップは、ネットワークの状況により一時記憶部の残容量が所定閾値以下になった場合、一時記憶部から読み出したコンテンツデータを破棄するようにした。
【0018】
さらに本発明においては、コンピュータに対して、ストリーミング形式で配信されるコンテンツデータを取得する取得ステップと、取得ステップにより取得されたコンテンツデータを一時記憶部に一時的に記憶する一時記憶ステップと、一時記憶部に記憶されたコンテンツデータを記憶された順に読み出すデータ制御ステップと、データ制御ステップにより読み出されたコンテンツデータを所定量を単位として暗号化する暗号化ステップと、暗号化ステップにより暗号化されたコンテンツデータをネットワークを介して所定の受信装置に送信する送信ステップとを実行させ、データ制御ステップは、ネットワークの状況により一時記憶部の残容量が所定閾値以下になった場合、一時記憶部から読み出したコンテンツデータを破棄するようにした。
【0019】
これにより、ネットワークの状態により受信装置に送信するコンテンツデータに遅延が発生して一時記憶部の残容量が所定閾値以下になった場合、コンテンツデータを暗号化する前に破棄することができる。
【発明の効果】
【0020】
以上のように本発明によれば、ネットワークの状態により受信装置に送信するコンテンツデータに遅延が発生して一時記憶部の残容量が所定閾値以下になった場合、コンテンツデータを暗号化する前に破棄することができ、かくしてネットワークの状況に適してコンテンツデータを送信し得るコンテンツ送信装置、コンテンツ送信方法及びコンテンツ送信プログラムを実現できる。
【図面の簡単な説明】
【0021】
【図1】コンテンツ送信システムの構成を示す略線図である。
【図2】コンテンツ送信装置を示す略線図である。
【図3】コンテンツ送信システムの機能的構成を示す略線図である。
【図4】データ破棄処理手順の説明に供するフローチャートである。
【図5】タイムアウト付き書込処理手順の説明に供するフローチャートである。
【図6】第2の実施の形態におけるコンテンツ送信装置を示す略線図である。
【図7】TTSパケット検出処理手順の説明に供するフローチャートである。
【図8】第4の実施の形態におけるコンテンツ送信装置を示す略線図である。
【図9】他の実施の形態におけるデータ破棄処理手順の説明に供するフローチャートである。
【発明を実施するための形態】
【0022】
以下、発明を実施するための形態(以下実施形態とする)について説明する。
なお、説明は以下の順序で行う。
1.第1の実施の形態
2.第2の実施の形態
3.第3の実施の形態
4.第4の実施の形態
5.他の実施の形態
【0023】
<1.第1の実施の形態>
[1−1.コンテンツ送信システムの構成]
図1に示すようにコンテンツ送信システム1は、放送局2、例えばセットトップボックスでなるコンテンツ送信装置3、及び例えばレコーダでなる受信装置4により構成されており、コンテンツ送信装置3と受信装置4とがネットワークNTを介して接続される。このコンテンツ送信装置3及び受信装置4は、例えばDLNA規格に準拠しており、当該DLNA規格に基づいてネットワークNTを介して接続される。
【0024】
コンテンツ送信装置3は、放送局2から送信される放送データに対して選局処理、暗号化処理等を施し、その結果得られる暗号化されたコンテンツデータをネットワークNTを介して受信装置4へ送信する。
【0025】
受信装置4は、ネットワークNTを介してコンテンツ送信装置3から送信されたコンテンツデータを受信すると、当該コンテンツデータに対して復号処理等を施してから記憶するようになされている。
【0026】
[1−2.コンテンツ送信システムの構成]
次にコンテンツ送信システム1におけるコンテンツ送信装置3及び受信装置4の構成について図2を用いて説明する。
【0027】
コンテンツ送信装置3は、チューナ部11、FIFO(First In First Out)12、データ制御部13、暗号化部14、HTTP/TCPインターフェース部15および記憶部16が設けられる。
【0028】
受信装置4は、HTTP/TCPインターフェース部21、復号部22及び記憶部23が設けられる。
【0029】
コンテンツ送信装置3は、放送局2から配信されるコンテンツデータD2を含む放送データD1をアンテナ(図示せず)を介してチューナ部11によって受信し、当該受信した放送データD1から所定の放送チャンネルに対応するコンテンツデータD2を抽出する。
【0030】
チューナ部11は、コンテンツデータD2を抽出すると、その抽出したコンテンツデータD2をFIFO12へ書き込む。FIFO12は、チューナ部11から供給されるコンテンツデータD2を順に記憶していく。
【0031】
データ制御部13は、後述するデータ破棄処理に従って、FIFO12からコンテンツデータD2を記憶された順に読み出してバッファ13Aへ記憶する。そしてデータ制御部13は、バッファ13Aに記憶されたコンテンツデータD2を暗号化部14のFIFO14Aに書き込める場合、バッファ13Aから読み出してFIFO14AにコンテンツデータD2を書き込む。
【0032】
暗号化部14は、FIFO14Aに書き込まれたコンテンツデータD2に対して、DTCP−IP規格に準拠したAES−CBCモードで暗号化し、当該暗号化した暗号化データD3をHTTP/TCPインターフェース部15に送出する。
【0033】
ここで暗号化部14は、コンテンツデータD2をAES−CBCモードで暗号化する場合、DTCP−IP規格に基づいてAES−CBCモードのブロックサイズである16バイトの整数倍をペイロードとして暗号化する。
【0034】
そして暗号化部14は、暗号化することにより得られたペイロードに対してヘッダ部分を付したPCP(Protected Content Packet)を生成し、当該PCPを暗号化データD3としてHTTP/TCPインターフェース部15へ送出する。
【0035】
因みに暗号化部14は、HTTP/TCPインターフェース部15を介して予め受信装置4と相互認証及び鍵交換(AKE(Authentication and Key Exchange))を行うことにより、暗号化するためのコンテンツ鍵を用いて暗号化する。
【0036】
HTTP/TCPインターフェース部15は、暗号化部14から供給されるPCP単位の暗号化データD3を供給される度にHTTP/TCPを用いて受信装置4に出力する。
【0037】
一方、受信装置4では、コンテンツ送信装置3から供給される暗号化データD3をHTTP/TCPインターフェース部21により受信し、当該暗号化データD3を復号化部22に送出する。
【0038】
復号化部22は、HTTP/TCPインターフェース部21を介して予めコンテンツ送信装置3と相互認証及び鍵交換を行うことにより、復号化するためのコンテンツ鍵を取得しており、当該コンテンツ鍵を用いて暗号化データD3を復号する。そして復号化部22は、暗号化データD3を復号化することにより得られるコンテンツデータD2を記憶部23に送出する。
【0039】
記憶部23は、復号化部22から供給されるコンテンツデータD2をデコードすると共に、当該デコードしたコンテンツデータD2を記録するようになされている。
【0040】
一方、コンテンツ送信装置3では、記憶部16に予め記録されたコンテンツデータD11を暗号化部14によりコンテンツ鍵を用いて暗号化し、当該暗号化した暗号化データD12をHTTP/TCPインターフェース部21から受信装置4に出力し得るようになされている。
【0041】
このとき受信装置4では、HTTP/TCPインターフェース部21によって受信した暗号化データD12をコンテンツ鍵を用いて復号化部22で復号し、その結果得られるコンテンツデータD11を記憶部23に記憶する。
【0042】
このようにしてコンテンツ送信装置3では、放送局2から配信されるコンテンツデータD2をHTTP/TCPを用いて受信装置4にネットワークNTを介してリアルタイムストリーミング送信し得る。これと共にコンテンツ送信装置3は、記憶部16に記憶されたコンテンツデータD11をHTTP/TCPを用いて受信装置4にネットワークNTを介して送信し得るようになされている。
【0043】
ここでコンテンツ送信装置3では、HTTP/TCPを用いて受信装置4に暗号化データD3をネットワークNTを介して送信している。従ってコンテンツ送信装置3は、受信装置4に暗号化データD3が送信できなかった場合、当該受信装置4からコンテンツ送信装置3へ再送要求が行われ、当該暗号化データD3を再送するといった処理が行われる。
【0044】
従ってコンテンツ送信装置3では、暗号化データD3を再送するといった処理が行われた場合、暗号化データD3の送信に遅延が発生する。
【0045】
FIFO12は、例えばペイロード長の5倍のコンテンツデータD2を蓄積し得る容量が設けられおり、ネットワークNTの転送速度が下がることによりコンテンツデータD2の送信に遅延が発生した場合、コンテンツデータD2を蓄積し得るようになされている。
【0046】
しかしながらFIFO12は、ペイロード長の5倍のコンテンツデータD2を蓄積し得る容量が設けられている場合であっても、ネットワークの遅延に応じてコンテンツデータD2がオーバーフローしてしまうことが考えられる。
【0047】
このときコンテンツ送信装置3では、FIFO12に記憶されたコンテンツデータD2のデータサイズに基づいて当該コンテンツデータD2を破棄するデータ破棄処理が行われる。
【0048】
[1−3.データ破棄処理]
次に、主にデータ制御部13により行われるデータ破棄処理について詳しく説明する。
【0049】
データ制御部13は、FIFO12の残容量を逐次チェックしている。データ制御部13は、FIFO12の残容量が所定の閾値より多い場合、すなわちFIFO12にコンテンツデータD2を蓄える余裕がある場合、暗号化部14により暗号化されるペイロード長のコンテンツデータD2をFIFO12からバッファ13Aに読み出す。
【0050】
そしてデータ制御部13は、FIFO12からバッファ13Aに読み出されたペイロード長のコンテンツデータD2に対して、所定の時間に設定されたタイムアウトを設けて暗号化部14のFIFO14Aに書き込む準備をする。
【0051】
因みにこのタイムアウトは、例えばコンテンツデータD2のビットレートが30[Mbps]であり、ペイロード長が1920バイトであった場合、512[us]に設定される。
【0052】
データ制御部13は、暗号化部14のFIFO14Aにペイロード長のコンテンツデータD2を書き込めるだけの残容量がある場合、コンテンツデータD2をタイムアウトにならずにFIFO14Aに書き込む。
【0053】
暗号化部14は、FIFO14Aに書き込まれたペイロード長のコンテンツデータD2に対してAES−CBCモードで暗号化し、その結果得られる暗号化データD3をHTTP/TCPインターフェース部15を介して受信装置4に送信する。
【0054】
これに対してデータ制御部13は、例えばネットワークNTの転送速度が遅くなることにより、暗号化データD3の送信に遅延が生じた場合、暗号化部14のFIFO14AにコンテンツデータD2を書き込めずにタイムアウトが発生することがある。
【0055】
この場合、データ制御部13は、FIFO12から読み出したペイロード長のコンテンツデータD2を暗号化部14のFIFO14Aへ書き込むことなく破棄する。
【0056】
また、例えばネットワークNTの転送速度が遅くなることにより受信装置4に暗号化データD3をリアルタイムで送信することができず、FIFO12にコンテンツデータD2が蓄積され、FIFO12の残容量が所定の閾値以下になる。
【0057】
この場合、データ制御部13は、暗号化部14により暗号化されるペイロード長のコンテンツデータD2を当該FIFO12から読み出してFIFO14Aへ書き込むことなく破棄する。
【0058】
[1−4.データ破棄処理手順]
続いて上述したデータ破棄処理の手順について図3及び図4に示すフローチャートを用いて説明する。実際上、データ制御部13は、ルーチンRT1の開始ステップから入って次のステップSP1に移る。
【0059】
ステップSP1においてデータ制御部13は、暗号化部14をオープンし、次のステップSP2へ移る。ステップSP2においてデータ制御部13は、FIFO12をオープンし、次のステップSP3に移る。
【0060】
ステップSP3においてデータ制御部13は、FIFO12の残容量を取得し、次のステップSP4へ移る。ステップSP4においてデータ制御部13は、ステップSP3において取得したFIFO12の残容量が所定の閾値以下かであるか否かを判断する。
【0061】
ステップSP4において肯定結果が得られると、このことはFIFO12の残容量が閾値以下であり、例えばネットワークNTの転送速度が遅くなることにより受信装置4に暗号化データD3をリアルタイムで送信することができていないことを意味する。
【0062】
従って、放送局2から配信されるコンテンツデータD2がFIFO12に蓄積され、当該FIFO12がオーバーフローする可能性があり、このときデータ制御部13はステップSP5に移る。
【0063】
ステップSP5においてデータ制御部13は、暗号化部14により暗号化されるペイロード長のコンテンツデータD2をFIFO12から空読みすることにより、当該ペイロード長のコンテンツデータD2を破棄して、ステップSP3に戻る。
【0064】
これに対してステップSP4において否定結果が得られると、このことはFIFO12の残容量が閾値より多く、FIFO12に蓄積されたコンテンツデータD2がオーバーフローすることがないことを意味し、このときデータ制御部13はステップSP6に移る。
【0065】
ステップSP6においてデータ制御部13は、暗号化部14により暗号化されるペイロード長のコンテンツデータD2をFIFO12からバッファ13Aに読み出し、次のサブルーチンSRT1に移る。
【0066】
サブルーチンSRT1(図4)においてデータ制御部13は、開始ステップから入って次のステップSP11へ移る。ステップSP11においてデータ制御部13は、ステップSP6においてFIFO12から読み出したペイロード長のコンテンツデータD2をタイムアウト付きで暗号化部14のFIFO14Aに書き込む準備をし、次のステップSP12に移る。
【0067】
ステップSP12においてデータ制御部13は、ステップSP11において書き込む準備ができてから、所定の時間が経過してタイムアウトが発生したか否かを判断する。
【0068】
ここで肯定結果が得られると、このことは受信装置4に対する暗号化データD3の送信に遅延が生じてFIFO14AにコンテンツデータD2が書き込めずにタイムアウトが発生したことを意味する。このときデータ制御部13は、FIFO14AにコンテンツデータD2を書き込むことができないので、当該コンテンツデータD2を破棄して、ステップSP3に戻る。
【0069】
これに対してステップSP12において否定結果が得られると、このことは暗号化部14のFIFO14AにコンテンツデータD2を書き込めることを意味し、このときデータ制御部13は、次のステップSP13に移る。
【0070】
ステップSP13においてデータ制御部13は、ステップSP6において読み出したペイロード長のコンテンツデータD2を暗号化部14のFIFO14Aに書き込み、次のステップSP14に移る。
【0071】
ステップSP14においてデータ制御部13は、暗号化部14のFIFO14Aに書き込んだコンテンツデータD2のバイト数をチェックすることにより、書込みエラーが発生することなくコンテンツデータD2を書き込めたかチェックし、ステップSP3へ戻る。
【0072】
このようにデータ制御部13は、FIFO12の残容量が閾値より多く、かつ暗号化部14のFIFO14Aに書き込むコンテンツデータD2がタイムアウトにならなかったとき、FIFO14Aに当該コンテンツデータD2を書き込むようになされている。
【0073】
これに対してデータ制御部13は、FIFO12の残容量が閾値以下、又は暗号化部14のFIFO14Aに書き込むコンテンツデータD2がタイムアウトになったとき、FIFO14Aに当該コンテンツデータD2を書き込むことなく破棄するようになされている。
【0074】
[1−5.コンテンツ送信装置の回路構成]
なお、上述したコンテンツ送信装置3では、FIFO12、データ制御部13、暗号化部14及びHTTP/TCPインターフェース部15をソフトウェア構成によって実行する場合、例えば図5に示すようなハードウェア構成によって実現できる。
【0075】
具体的には、コンテンツ送信装置3は、CPU(Central Processing Unit)31、RAM(Random Access Memory)32、ROM(Read Only Memory)33、チューナ部11、ネットワークインターフェース部34及び記憶部16がバス35を介して接続される。
【0076】
コンテンツ送信装置3は、CPU31がROM33から読み出してRAM32に起動した基本プログラムに従い、全体を統括制御すると共に、各種アプリケーションプログラムに従って種々の処理を実行し得るようになされている。
【0077】
またコンテンツ送信装置3は、上述した一連の処理を実行する際、CPU31がRAM32を適時制御して、FIFO12、データ制御部13、暗号化部14として機能する。またCPU31がネットワークインターフェース部34を適宜制御してHTTP/TCPインターフェース部15として機能する。
【0078】
そしてCPU31は、ROM33に格納されたデータ破棄処理プログラムをRAM32に読み出して実行することにより、データ制御部13として機能して上述したデータ破棄処理手順に従ってデータ破棄処理を実行する。
【0079】
[1−6.動作及び効果]
以上の構成においてコンテンツ送信装置3は、HTTP/TCPを用いて例えば放送局2から配信されるコンテンツデータD2を受信装置4に送信する際、データ制御部13によりコンテンツデータD2が蓄積されたFIFO12の残容量をチェックする。
【0080】
そしてデータ制御部13は、FIFO12の残容量が閾値より多い場合、DTCP−IP規格に準拠したAES−CBCモードのブロックサイズである16バイトの整数倍でなるペイロード長のコンテンツデータD2をFIFO12から読み出す。
【0081】
またデータ制御部13は、FIFO12から読み出したペイロード長のコンテンツデータD2をタイムアウト付きで暗号化部14のFIFO14Aに書き込む準備をし、タイムアウトが発生していない場合、コンテンツデータD2をFIFO14Aに書き込む。
【0082】
そしてコンテンツ送信装置3は、暗号化部14によりコンテンツデータD2をAES−CBCモードで暗号化し、その結果得られる暗号化データD3をHTTP/TCPインターフェース部15を介して受信装置4に出力する。
【0083】
一方、データ制御部13は、FIFO12の残容量が閾値以下であった場合、FIFO12がオーバーフローする可能性があることから、FIFO12からペイロード長のコンテンツデータD2を読み出して破棄する。
【0084】
またデータ制御部13は、FIFO12から読み出したコンテンツデータD2をタイムアウト付きで暗号化部14のFIFO14Aに書き込む際にタイムアウトが発生した場合、コンテンツデータD2をFIFO14Aに書き込まずに破棄する。
【0085】
従ってコンテンツ送信装置3は、ネットワークNTの状態により暗号化データD3の送信に遅延が発生した場合、暗号化部14によりコンテンツデータD2を暗号化する前に、データ制御部13によりコンテンツデータD2を破棄することができる。
【0086】
これによりコンテンツ送信装置3は、暗号化された暗号化データD3の一部が受信装置4に送信せずに破棄した際に、送信できた暗号化データD3が復号できないといったことを防止することができる。
【0087】
またコンテンツ送信装置3は、暗号化データD3の一部だけが受信装置4に送信されることにより、当該受信装置4において誤動作等が発生してしまうことも防止することができると共に、復号できないことによる画像の劣化を抑制することができる。
【0088】
さらにコンテンツ送信装置3は、ストリーミング形式のコンテンツデータD2を送信する際にはRTP/UDPを用い、記憶部16に記憶されたコンテンツデータD11を送信する際にはHTTP/TCPを用いるといった異なるプロトコルを用いることがない。
【0089】
従ってコンテンツ送信装置3は、ストリーミング形式のコンテンツデータD2の送信と、記憶部16に記憶されたコンテンツデータD11の送信とを同一のHTTP/TCPを用いて行うことができる。これによりコンテンツ送信装置3は、構成を簡易化することができると共に、その開発コストを削減することができる。
【0090】
以上の構成によれば、コンテンツ送信装置3は、ストリーミング形式で配信されるコンテンツデータD2をFIFO12に記憶し、記憶された順に読み出して暗号化部14により暗号化して受信装置4に送信する。
【0091】
そしてコンテンツ送信装置3は、ネットワークNTの状況によりFIFO12の残容量が閾値以下になった場合、FIFO12から読み出したコンテンツデータD2を破棄するようにした。
【0092】
これによりコンテンツ送信装置3は、コンテンツデータD2を暗号化する前に破棄することができ、かくしてネットワークNTに適してコンテンツデータD2を送信することができる。
【0093】
<2.第2の実施の形態>
[2−1.コンテンツ送信装置の構成]
第2の実施の形態においては、第1の実施の形態におけるソフトウェア構成であったFIFO12、データ制御部13及び暗号化部14をハードウェア構成により実現する。
【0094】
実際上、図6に示すようにコンテンツ送信装置40は、ハードウェア構成でなるFIFO41、データ制御部42及び暗号化部43が設けられる。
【0095】
因みに第2の実施の形態におけるコンテンツ送信装置40は、FIFO41、データ制御部42及び暗号化部43以外は第1の実施の形態におけるコンテンツ送信装置3(図2)と同様であるため、図6において同一部分を省略して示している。
【0096】
FIFO41は、非同期FIFOであり、チューナ部11から供給されるコンテンツデータD2を供給される順に記憶していく。そしてFIFO41は、残容量が閾値以下である場合、データ制御部42の制御回路51にAlmost_Full信号S1を送出する。
【0097】
データ制御部42は、制御回路51により全体を統括制御するようになされており、制御回路51が所定タイミングごとにスタート信号S2をDMA(Direct Memory Access)コントローラ52に送出する。
【0098】
このときDMAコントローラ52は、後段の暗号化部43によりAES−CBCモードで暗号化されるブロックサイズである16バイトの整数倍のコンテンツデータD2をFIFO41から読み出す。
【0099】
具体的にDMAコントローラ52は、FIFO41に対してクロックとして機能するリードインクリメント信号S3を送出することにより、リードインクリメント信号S3の立ち上がりエッジでコンテンツデータD2を読み出す。
【0100】
そしてDMAコントローラ52は、読み出したコンテンツデータD2を暗号化部43のFIFO61に送出する。これとともにDMAコントローラ52は、クロックとして機能するライトインクリメント信号S4をライトイネーブル回路53に送出する。
【0101】
ライトイネーブル回路53は、DMAコントローラ52から供給されるライトインクリメント信号S4と、後述する制御回路51から供給されるライトイネーブル信号S5との論理積をとる。
【0102】
ところでFIFO61は、ペイロード長のコンテンツデータD2を書き込めるだけの残容量がないとき、データ制御部42の制御回路51に対してフル信号S7を送出するようになされている。
【0103】
制御回路51は、FIFO41からのAlmost_Full信号S1及びFIFO61からのフル信号S7が両方とも供給されていない場合、ライトイネーブル回路53に対して「True」を示すライトイネーブル信号S5を送出する。
【0104】
ライトイネーブル回路53は、制御回路51から「True」を示すライトイネーブル信号S5が供給された場合、ライトインクリメント信号S4をライトインクリメント信号S6としてそのままFIFO61に送出する。
【0105】
このときDMAコントローラ52は、FIFO41から読み出したコンテンツデータD2をライトインクリメント信号S6の立ち上がりエッジでFIFO61に書き込むことができる。
【0106】
これに対して制御回路51は、FIFO41からのAlmost_Full信号S1及びFIFO61からのフル信号S7が少なくとも一方から供給された場合、ライトイネーブル回路53に対して「False」を示すライトイネーブル信号S5を送出する。
【0107】
ライトイネーブル回路53は、制御回路51から「False」を示すライトイネーブル信号S5が供給された場合、「False」を示すライトインクリメント信号S6をFIFO61に送出する。このときDMAコントローラ52は、FIFO41から読み出したコンテンツデータD2をFIFO61に書き込むことができない。
【0108】
従ってDMAコントローラ52は、FIFO41から読み出したコンテンツデータD2をFIFO61に書き込むことなく破棄し得るようになされている。
【0109】
因みに制御回路51は、ペイロード長のコンテンツデータD2を単位としてDMAコントローラ52に対してFIFO41からFIFO61に転送させるようになされている。
【0110】
このため制御回路51は、FIFO41からのAlmost_Full信号S1及びFIFO61からのフル信号S7が少なくとも一方から供給された場合、スタート信号S2をDMAコントローラ52に送出すると共に、ライトイネーブル回路53に「False」を示すライトイネーブル信号S5を送出する。
【0111】
これによりデータ制御部42は、ペイロード長のコンテンツデータD2を単位として、FIFO41から読み出したコンテンツデータD2を破棄又はFIFO61へ転送し得るようになされている。
【0112】
ところで暗号化部43の認証回路63は、HTTP/TCPインターフェース部15を介して予め受信装置4と相互認証及び鍵交換を行うことにより、暗号化するためのコンテンツ鍵を取得する。認証回路63は、取得したコンテンツ鍵を暗号処理回路62へ送出する。
【0113】
暗号処理回路62は、FIFO61からペイロード長のコンテンツデータD2を読み出し、当該読み出したコンテンツデータD2に対して認証回路63から供給されたコンテンツ鍵を用いてAES−CBCモードで暗号化する。
【0114】
暗号化処理回路62は、暗号化することにより得られた暗号化データD3AをPCP化回路64へ送出する。PCP化回路64は、暗号処理回路62から供給される暗号化データD3Aをペイロードとし、当該ペイロードに対してヘッダ部分が付加されたPCPを暗号化データD3として生成する。
【0115】
DMAコントローラ65は、PCP化回路64により生成された暗号化データD3を読み出し、当該読み出した暗号化データD3をRAM32に書き込む。
【0116】
そしてCPU31(図5)は、RAM32に書き込まれた暗号化データD3をHTTP/TCPインターフェース部15を介してHTTP/TCPを用いて受信装置4に送信するようになされている。
【0117】
[2−2.動作及び効果]
以上の構成において、コンテンツ送信装置40は、HTTP/TCPを用いて例えば放送局2から送信されるコンテンツデータD2を受信装置4に送信する際、当該コンテンツデータD2をFIFO41に一時的に蓄積する。
【0118】
データ制御部42の制御回路51は、スタート信号S2をDMAコントローラ52に送出し、AES−CBCモードのブロックサイズである16バイトの整数倍でなるペイロード長のコンテンツデータD2をFIFO41から読み出させる。
【0119】
またDMAコントローラ52は、リードインクリメント信号S3の立ち上がりエッジでコンテンツデータD2をFIFO41から読み出してFIFO61に送出すると共に、ライトインクリメント信号S4をライトイネーブル回路53に送出する。
【0120】
ライトイネーブル回路53は、DMAコントローラ52から供給されるライトインクリメント信号S4と、制御回路51から供給されるライトイネーブル信号S5との論理積をとる。
【0121】
制御回路51は、FIFO61にコンテンツデータD2を書き込める場合、ライトイネーブル回路53に対して「True」を示すライトイネーブル信号S5を送出する。このときライトイネーブル回路53は、DMAコントローラ52から供給されるライトインクリメント信号S4をライトインクリメント信号S6としてFIFO61に送出する。
【0122】
これによりDMAコントローラ52は、ライトイネーブル回路53から送出されたライトインクリメント信号S6の立ち上がりエッジでコンテンツデータD2を書き込むことになる。
【0123】
ところでFIFO41は、残容量が所定の閾値以下であった場合、データ制御部42の制御回路51にAlmost_Full信号S1を送出する。またFIFO61は、ペイロード長のコンテンツデータD2を書き込めるだけの残容量がないとき、データ制御部42の制御回路51に対してフル信号S7を送出するようになされている。
【0124】
制御回路51は、FIFO41からのAlmost_Full信号S1及びFIFO61からのフル信号S7が少なくとも一方から供給された場合、ライトイネーブル回路53に対して「False」を示すライトイネーブル信号S5を送出する。
【0125】
ライトイネーブル回路53は、制御回路51から「False」を示すライトイネーブル信号S5が供給された場合、「False」を示すライトインクリメント信号S6をFIFO61に送出する。このときDMAコントローラ52は、FIFO41から読み出したコンテンツデータD2をFIFO61に書き込むことができない。
【0126】
従ってDMAコントローラ52は、FIFO41から読み出したコンテンツデータD2をFIFO61に書き込むことなく破棄し得るようになされている。
【0127】
従ってコンテンツ送信装置40は、HTTP/TCPを用いたネットワークNTの状態により送信の遅延が発生した場合、暗号化部43によりコンテンツデータD2を暗号化する前に、データ制御部42により当該コンテンツデータD2を破棄することができる。かくしてコンテンツ送信装置40は、ネットワークNTの状況に適してコンテンツデータD2を受信装置4に送信することができる。
【0128】
その他、コンテンツ送信装置40は、第1の実施の形態におけるコンテンツ送信装置3と同様の作用効果を奏し得る。
【0129】
<3.第3の実施の形態>
[3−1.テレビジョン受像機の構成]
第3の実施の形態においては、第1の実施の形態とは異なり、コンテンツデータD2を破棄及び暗号化する際、AES−CBCモードのブロックサイズである16バイトの整数倍を単位として行うのではなく、TTS(Timestamped Transport Stream)パケットの整数倍を単位として行う。なお、第3の実施の形態におけるコンテンツ送信装置3(図2)の構成については、第1の実施の形態と同様であるためその説明を省略する。
【0130】
コンテンツ送信装置3は、第1の実施の形態と同様に、放送局2から送信される放送データD1をアンテナを介してチューナ部11によって受信し、当該受信した放送データD1から所定の放送チャンネルに対応するコンテンツデータD2を抽出する。
【0131】
このコンテンツデータD2は、例えばMPEG2形式のデータでなり、188バイトのTS(Transport Stream)パケットに4バイトのタイムスタンプを付加した192バイトのTTSパケットに分割されて構成される。
【0132】
チューナ部11は、コンテンツデータD2を抽出すると、その抽出したコンテンツデータD2をFIFO12へ送出する。FIFO12は、チューナ部11から供給されるコンテンツデータD2を供給される順に記憶していく。
【0133】
データ制御部13は、後述するデータ破棄処理に従って、コンテンツデータD2をFIFO12から読み出してバッファ13Aへ記憶する。そしてデータ制御部13は、バッファ13Aに記憶されたコンテンツデータD2を暗号化部14のFIFO14Aに書き込める場合、バッファ13Aから読み出してFIFO14AにコンテンツデータD2を書き込む。
【0134】
暗号化部14は、FIFO14Aに書き込まれたコンテンツデータD2に対して、TTSパケットのデータサイズである192バイトの整数倍である例えば1920バイトをペイロードとして暗号化する。そして暗号化部14は、暗号化することにより得られる暗号化データD3をHTTP/TCPインターフェース部15に送出する。
【0135】
HTTP/TCPインターフェース部15は、暗号化部14から供給される暗号化データD3を供給される度に受信装置4に出力する。
【0136】
このようにしてコンテンツ送信装置3では、放送局2から配信されるコンテンツデータD2をHTTP/TCPを用いて受信装置4へリアルタイムストリーム送信し得るようになされている。
【0137】
[3−2.データ破棄処理]
次に、主にデータ制御部13により行われるデータ破棄処理について詳しく説明する。
【0138】
データ制御部13は、FIFO12の残容量を逐次チェックしており、当該FIFO12の残容量が閾値より多い場合、暗号化部14により暗号化されるペイロード長(1920バイト)のコンテンツデータD2をFIFO12からバッファ13Aに読み出す。
【0139】
そしてデータ制御部13は、バッファ13Aに記憶されたコンテンツデータD2がTTSパケットの途中から記憶されているかを検出する。
【0140】
ここでTTSパケットは、4バイトのタイムスタンプに続く5バイト目に「0x47」が格納されている。従ってデータ制御部13は、バッファ13Aに記憶されたコンテンツデータD2の先頭から5バイト目が「0x47」であるか否かを判断する。
【0141】
因みに第3の実施の形態においては、バッファ13AがFIFOとして機能し、先に記憶されたコンテンツデータD2から順に読み出されるようになされていると共に、その容量がペイロード長である1920バイトである。
【0142】
従ってデータ制御部13は、バッファ13Aの先頭から5バイト目が「0x47」であった場合、TTSパケットの先頭からバッファ13Aに記憶されており、10のTTSパケットが完全な状態でバッファ13Aに記憶されている。
【0143】
これに対してデータ制御部13は、バッファ13Aの先頭から5バイト目が「0x47」であるか否かを判断し、5バイト目が「0x47」でなかった場合、TTSパケットの途中から記憶されていると判断する。
【0144】
この場合、データ制御部13は、バッファ13Aの先頭から6バイト目以降で「0x47」が格納されているアドレスを検出する。
【0145】
ここでデータ制御部13により例えばバッファ13Aの先頭から100バイト目に「0x47」が検出された場合、検出された「0x47」を含むTTSパケットは、100バイト目から4バイト前に相当する96バイト目から記憶されている。
【0146】
そこでデータ制御部13は、例えばバッファ13Aの先頭から100バイト目に「0x47」を検出した場合、バッファ13Aの96バイト目から最終アドレスまでのコンテンツデータD2を先頭アドレスから始まるようシフトさせる。
【0147】
これによりデータ制御部13は、バッファの先頭から5バイト目に「0x47」が格納されることになり、バッファ13Aの先頭にTTSパケットの先頭を揃えることができる。
【0148】
またデータ制御部13は、バッファの先頭から100バイト目に「0x47」が検出された場合、当該バッファの先頭アドレスから95バイト目までのコンテンツデータD2を破棄することになる。
【0149】
そこでデータ制御部13は、破棄したデータサイズと同じ95バイトのコンテンツデータD2を新たにFIFO12から読み出し、バッファ13A内のシフトさせたコンテンツデータD2の後に書き込む。これによりデータ制御部13は、バッファ13Aに10のTTSパケットを完全な状態で記憶することができる。
【0150】
このようにしてデータ制御部13は、FIFO12から完全な状態の10のTTSパケットからなるコンテンツデータD2を読み出した後、当該コンテンツデータD2に対して所定の時間に設定されたタイムアウトを設けて暗号化部14のFIFO14Aに書き込む準備をする。
【0151】
暗号化部14は、データ制御部13によりFIFO14Aに書き込まれた1920バイトのコンテンツデータD2に対してAES−CBCモードで暗号化し、その結果得られる暗号化データD3をHTTP/TCPインターフェース部15を介して受信装置4に送信する。
【0152】
これに対してデータ制御部13は、例えばネットワークNTの転送速度が遅くなることにより、暗号化データD3の送信に遅延が生じた場合、タイムアウトが発生することがある。
【0153】
この場合、データ制御部13は、FIFO12から読み出した1920バイトのコンテンツデータD2を暗号化部14へ書き込むことなく破棄する。
【0154】
またデータ制御部13は、ネットワークNTの遅延などによりFIFO12の残容量が閾値以下である場合、当該FIFO12から1920バイトのコンテンツデータD2を読み出して暗号化部14のFIFO14Aに書き込むことなく破棄する。
【0155】
因みに暗号化部14は、1920バイトのコンテンツデータD2に対してAES−CBCモードで暗号化する際、1920バイトはブロックサイズである16バイトの整数倍のため、ペディングデータを付加することなく暗号化することができる。
【0156】
[3−3.データ破棄処理手順]
次に上述したデータ破棄処理の手順について説明する。ここで第3の実施の形態におけるデータ制御部13は、第1の実施の形態におけるデータ破棄処理手順(図3)に従って処理を実行し、加えてステップSP6とサブルーチンSRT1との間に図7に示すTTSパケット検出処理手順を実行するようになされている。
【0157】
実際上、データ制御部13は、第1の実施の形態と同様に、ルーチンRT1(図4)の開始ステップから入ってステップSP1〜SP5を実行した後、ステップSP6へ移る。
【0158】
ステップSP6においてデータ制御部13は、TTSパケットの整数倍である例えば1920バイトのコンテンツデータD2をFIFO12から読み出してバッファ13Aに書き込み、TTSパケット検出処理手順(図7)に入って次のステップSP21へ移る。
【0159】
ステップSP21においてデータ制御部13は、バッファ13Aの先頭から5バイト目が「0x47」であるか否かを判断する。ここで肯定結果が得られると、このことはバッファ13Aに全てのTTSパケットが完全な状態で記憶されていることを意味し、このときデータ制御部13は次のサブルーチンSRT1へ移る。
【0160】
これに対してステップSP21において否定結果が得られると、このことはバッファ13AにコンテンツデータD2がTTSパケットの途中から記憶されていることを意味し、このときデータ制御部13は次のステップSP22へ移る。
【0161】
ステップSP22においてデータ制御部13は、バッファ13Aにおける先頭から6バイト目以降に「0x47」が格納されているアドレスを検出し、次のステップSP23へ移る。
【0162】
ステップSP23においてデータ制御部13は、バッファ13Aにおける先頭から6バイト目以降に「0x47」が格納されているアドレスが見つかったか否かを判断する。
【0163】
ここで本実施の形態においては、バッファ13Aの容量がTTSパケットのデータサイズの10倍であることから否定結果が得られることはない。しかしながらバッファ13Aの容量がTTSパケットのデータサイズである192バイトより小さい場合には否定結果が得られる場合があり、このときデータ制御部13は次のステップSP24へ移る。
【0164】
ステップSP24においてデータ制御部13は、FIFO12からバッファサイズ分のコンテンツデータD2を再び読み出し、ステップSP22へ戻る。この場合、データ制御部13は、バッファ13Aに予め記憶されたコンテンツデータD2を破棄して、再び読み出したコンテンツデータD2をバッファ13Aに上書きすることにより記憶する。
【0165】
一方、ステップSP23において肯定結果が得られると、このことはコンテンツデータD2がバッファ13AにTTSパケットの途中から記憶されていることを意味し、このときデータ制御部13はステップSP25へ移る。
【0166】
ステップSP25においてデータ制御部13は、ステップSP23で見つかった「0x47」がバッファ13Aの先頭から5バイト目に格納されるようにバッファ13A内のコンテンツデータD2をシフトさせる。
【0167】
またデータ制御部13は、シフトさせることにより破棄したデータ分のコンテンツデータD2をFIFO12から読み出し、シフトさせたコンテンツデータD2の後に書き込み、サブルーチンSRT1へ移る。
【0168】
そしてデータ制御部13は、第1の実施の形態と同様にサブルーチンSRT1(図5)を実行してステップSP1へ戻る。
【0169】
[3−4.動作及び効果]
以上の構成において、コンテンツ送信装置3は、HTTP/TCPを用いて例えば放送局2から配信されるコンテンツデータD2を受信装置4に送信する際、当該コンテンツデータD2を蓄積しておくFIFO12の残容量をチェックする。
【0170】
そしてデータ制御部13は、FIFO12の残容量が閾値より多い場合、TTSパケットの整数倍のコンテンツデータD2をFIFO12からバッファ13Aに読み出す。
【0171】
またデータ制御部13は、FIFO12から読み出してバッファ13Aに記憶されたコンテンツデータD2がTTSパケットの途中から記憶されている場合、バッファ13Aの先頭に記憶された不完全なTTSパケットを破棄する。
【0172】
さらにコンテンツ送信装置3は、破棄したデータ分のコンテンツデータD2をFIFO12から読み出して、破棄されなかったコンテンツデータD2の後に記憶する。
【0173】
そしてコンテンツ送信装置3は、FIFO12から読み出したコンテンツデータD2をタイムアウト付きで暗号化部14に書き込む準備をし、タイムアウトが発生していない場合、当該コンテンツデータD2を暗号化部14に書き込む。
【0174】
そしてコンテンツ送信装置3は、暗号化部14によりコンテンツデータD2をAES−CBCモードで暗号化し、その結果得られる暗号化データD3をHTTP/TCPインターフェース部15を介して受信装置4に出力する。
【0175】
一方、コンテンツ送信装置3は、FIFO12の残容量が閾値以下であった場合、FIFO12がオーバーフローする可能性があることから、FIFO12からTTSパケットの整数倍のコンテンツデータD2を読み出して破棄する。
【0176】
従ってコンテンツ送信装置3は、ネットワークNTの状態により暗号化データD3の送信に遅延が発生した場合、暗号化部14によりコンテンツデータD2を暗号化する前に、データ制御部13によりコンテンツデータD2を破棄することができる。かくしてコンテンツ送信装置3は、ネットワークNTの状況に適してコンテンツデータD2を暗号化して受信装置4に送信することができる。
【0177】
またコンテンツ送信装置3は、データ制御部13により完全な状態のTTSパケットだけを暗号化部14のFIFO14Aに書き込み、当該暗号化部14によりTTSパケットの整数倍を単位として暗号化して受信装置4に送信するようにした。
【0178】
これによりコンテンツ送信装置3は、不完全な状態のTTSパケットを受信装置4に送信することがないので、当該受信装置4においてTTSパケットの読み取りエラー等を防止することができる。
【0179】
従ってコンテンツ送信装置3は、受信装置4での誤動作等が発生してしまうことも防止することができると共に、復号化できないことによる画像の劣化を抑制することができる。
【0180】
その他、コンテンツ送信装置3は、第1の実施の形態におけるコンテンツ送信装置3と同様の作用効果を奏し得る。
【0181】
以上の構成によれば、コンテンツ送信装置3は、ストリーミング形式で配信されるコンテンツデータD2をFIFO12に記憶し、記憶された順に読み出して暗号化部14により暗号化して受信装置4に送信する。
【0182】
そしてコンテンツ送信装置3は、ネットワークNTの状況によりFIFO12の残容量が閾値以下になった場合、FIFO12から読み出したコンテンツデータD2を破棄するようにした。
【0183】
これによりコンテンツ送信装置3は、コンテンツデータD2を暗号化する前に破棄することができ、かくしてネットワークNTの状況に適してコンテンツデータD2を送信することができる。
【0184】
<4.第4の実施の形態>
[4−1.コンテンツ送信装置の構成]
第4の実施の形態においては、第3の実施の形態におけるソフトウェア構成であったFIFO12、データ制御部13及び暗号化部14をハードウェア構成で実現する。
【0185】
実際上、図6との対応部分に同一符号を付した図8に示すように、コンテンツ送信装置80は、FIFO41とDMAコントローラ52との間にTTSパケット検出部81が設けられており、その他は第2の実施の形態と同様である。
【0186】
因みに第4の実施の形態におけるコンテンツ送信装置80は、FIFO41、TTSパケット検出部81、データ制御部42及び暗号化部43以外は第1の実施の形態におけるコンテンツ送信装置3と同様であるため、図8において同一部分を省略して示している。
【0187】
FIFO41は、チューナ部11から供給されるコンテンツデータD2を供給される順に記憶していく。一方、データ制御部42の制御回路51は、所定タイミングごとにスタート信号S2をDMAコントローラ52に送出する。
【0188】
このときDMAコントローラ52は、ライトインクリメント信号S3をTTSパケット検出回路81に送出すると共に、制御回路51から供給されたスタート信号S2をTTSパケット検出回路81に送出する。
【0189】
TTSパケット検出回路81は、DMAコントローラ52からスタート信号S2を受信すると、FIFO41に対してリードインクリメント信号S11を送出し、リードインクリメント信号S11の立ち上がりエッジでコンテンツデータD2を読み出す。
【0190】
このときTTSパケット検出回路81は、読み出した5バイト目が「0x47」であった場合、TTSパケットの整数倍である例えば1920バイトのコンテンツデータD2をFIFO41から読み出す。
【0191】
一方、TTSパケット検出回路81は、読み出した5バイト目が「0x47」でなかった場合、「0x47」を検出するまでFIFO41からコンテンツデータD2を空読みする。
【0192】
因みにTTSパケット検出回路81は、FIFO41からコンテンツデータD2を空読みする際、現在読み出しているコンテンツデータD2の少なくとも4バイト前までのコンテンツデータD2を保持している。
【0193】
そしてTTSパケット検出回路81は、FIFO41から読み出したデータが「0x47」であった場合、当該「0x47」の4バイト前から1920バイト分のコンテンツデータD2をFIFO41から読み出す。
【0194】
これによりTTSパケット検出回路81は、完全な状態の10のTTSパケットをFIFO41から読み出すことができる。
【0195】
従ってDMAコントローラ52は、TTSパケット検出回路81からコンテンツデータD2を読み出すことにより、完全な状態の10のTTSパケットを暗号化部43のFIFO61に送出し得る。これと共にDMAコントローラ52は、FIFO61に対してライトインクリメント信号S4をライトイネーブル回路53に送出する。
【0196】
コンテンツ送信装置80では、これ以降において第2の実施の形態と同様に、制御回路51が、FIFO41からのAlmost_Full信号S1及びFIFO61からのフル信号S7が両方とも供給されていない場合、ライトイネーブル回路53に対して「True」を示すライトイネーブル信号S5を送出する。
【0197】
このときライトイネーブル回路53は、DMAコントローラ52から供給されるライトインクリメント信号S4をライトインクリメント信号S6としてそのままFIFO61に送出する。
【0198】
これによりDMAコントローラ52は、ライトイネーブル回路53から送出されたライトインクリメント信号S6の立ち上がりエッジでコンテンツデータD2をFIFO61に書き込む。
【0199】
暗号処理回路62は、FIFO61から1920バイトのコンテンツデータD2を読み出し、当該読み出したコンテンツデータD2に対して認証回路63から供給されたコンテンツ鍵を用いてAES−CBCモードで暗号化する。
【0200】
PCP化回路64は、暗号処理回路62から供給される暗号化データD3Aをペイロードとし、当該ペイロードに対してヘッダ部分が付加されたPCPを暗号化データD3として生成する。
【0201】
DMAコントローラ65は、PCP化回路64により生成された暗号化データD3を読み出し、当該読み出した暗号化データD3をRAM32に書き込む。
【0202】
そしてCPU31は、RAM32に書き込まれた暗号化データD3をHTTP/TCPインターフェース部15を介してHTTP/TCPを用いて受信装置4に送信するようになされている。
【0203】
これに対して制御回路51は、FIFO41からのAlmost_Full信号S1及びFIFO61からのフル信号S7が少なくとも一方から供給された場合、ライトイネーブル回路53に対して「False」を示すライトイネーブル信号S5を送出する。
【0204】
ライトイネーブル回路53は、制御回路51から「False」を示すライトイネーブル信号S5が供給された場合、「False」を示すライトインクリメント信号S6をFIFO61に送出する。このときDMAコントローラ52は、TTSパケット検出部81を介してFIFO41から読み出したコンテンツデータD2をFIFO61に書き込むことができない。
【0205】
従ってDMAコントローラ52は、TTSパケット検出部81を介してFIFO41から読み出したコンテンツデータD2をFIFO61に書き込むことなく破棄し得るようになされている。
【0206】
[4−2.動作及び効果]
以上の構成において、コンテンツ送信装置80は、HTTP/TCPを用いて例えば放送局2から配信されるコンテンツデータD2を受信装置4に送信する際、当該コンテンツデータD2をFIFO41に一時的に蓄積する。
【0207】
そしてTTSパケット検出回路81は、TTSパケットの整数倍のコンテンツデータD2を読み出す際、「0x47」の4バイト前からTTSパケットの整数倍のコンテンツデータD2を読み出す。
【0208】
DMAコントローラ52は、TTSパケット検出回路81により読み出されたコンテンツデータD2をFIFO61に送出すると共に、ライトインクリメント信号S4をライトイネーブル回路53に送出する。
【0209】
制御回路51は、FIFO61にコンテンツデータD2を書き込める場合、ライトイネーブル回路53に対して「True」を示すライトイネーブル信号S5を送出する。このときライトイネーブル回路53は、DMAコントローラ52から供給されるライトインクリメント信号S4をライトインクリメント信号S6としてFIFO61に送出する。
【0210】
これによりDMAコントローラ52は、ライトイネーブル回路53から送出されたライトインクリメント信号S6の立ち上がりエッジでコンテンツデータD2を書き込むことになる。
【0211】
ところでFIFO41は、ネットワークNTの遅延等により残容量が所定の閾値以下であった場合、データ制御部42の制御回路51にAlmost_Full信号S1を送出する。またFIFO61は、ペイロード長のコンテンツデータD2を書き込めるだけの容量が残っていないとき、制御回路51に対してフル信号S7を送出する。
【0212】
制御回路51は、FIFO41からのAlmost_Full信号S1及びFIFO61からのフル信号S7が少なくとも一方から供給された場合、ライトイネーブル回路53に対して「False」を示すライトイネーブル信号S5を送出する。
【0213】
ライトイネーブル回路53は、制御回路51から「False」を示すライトイネーブル信号S5が供給された場合、「False」を示すライトインクリメント信号S6をFIFO61に送出する。
【0214】
このときDMAコントローラ52は、FIFO41から読み出したコンテンツデータD2をFIFO61に書き込むことができないので、FIFO41から読み出したコンテンツデータD2をFIFO61に書き込むことなく破棄する。
【0215】
従ってコンテンツ送信装置80は、HTTP/TCPを用いたネットワークNTの状態により送信の遅延が発生した場合、暗号化部43によりコンテンツデータD2を暗号化する前に、データ制御部42により当該コンテンツデータD2を破棄することができる。かくしてコンテンツ送信装置80は、ネットワークNTの状況に適してコンテンツデータD2を受信装置4に送信することができる。
【0216】
またコンテンツ送信装置80は、データ制御部42により完全な状態のTTSパケットだけを暗号化部43のFIFO61に書き込み、当該暗号化部43によりTTSパケットの整数倍を単位として暗号化して受信装置4に送信するようにした。
【0217】
これによりコンテンツ送信装置80は、不完全な状態のTTSパケットを受信装置4に送信することがないので、当該受信装置4においてTTSパケットの読み取りエラー等を防止することができる。従ってコンテンツ送信装置80は、受信装置4での誤動作等が発生してしまうことも防止することができると共に、復号化できないことによる画像の劣化を抑制することができる。
【0218】
その他、コンテンツ送信装置80は、第1の実施の形態におけるコンテンツ送信装置3と同様の作用効果を奏し得る。
【0219】
<5.他の実施の形態>
[5−1.他の実施の形態1]
なお上述した第1の実施の形態においては、データ破棄処理手順に従って、FIFO12に蓄積されたコンテンツデータD2を破棄するようにした場合について述べた。
【0220】
しかしながら本発明はこれに限らず、データ制御部13が、図9に示すデータ破棄処理手順に従ってコンテンツデータD2を破棄するようにしても良い。
【0221】
実際上、データ制御部13は、ルーチンRT2の開始ステップから入って次のステップSP31に移る。ステップSP31においてデータ制御部13は、暗号化部14をオープンし、次のステップSP32へ移る。ステップSP32においてデータ制御部13は、暗号化部14をノンブロックに指定し、次のステップSP33へ移る。
【0222】
ステップSP33においてデータ制御部13は、FIFO12をオープンし、次のステップSP34に移る。
【0223】
ステップSP34においてデータ制御部13は、暗号化部14により暗号化されるペイロード長のコンテンツデータD2をFIFO12から読み出し、次のステップSP35に移る。
【0224】
ステップSP35においてデータ制御部13は、FIFO12から読み出したペイロード長のコンテンツデータD2を暗号化部14のFIFO14Aに書き込む準備をし、次のステップSP36に移る。
【0225】
ステップSP36においてデータ制御部13は、FIFO12から読み出したペイロード長のコンテンツデータD2を暗号化部14のFIFO14Aに書き込めるか否かを判断し、肯定結果が得られると次のステップSP37へ移る。
【0226】
ステップSP37においてデータ制御部13は、ステップSP34において読み出したペイロード長のコンテンツデータD2を暗号化部14のFIFO14Aに書き込み、ステップSP34に戻る。
【0227】
これに対してステップSP36において否定結果が得られると、このことは暗号化部14のFIFO14AにコンテンツデータD2を書き込むことができないことを意味し、このときデータ制御部13はステップSP38に移る。
【0228】
ステップSP38においてデータ制御部13は、FIFO12の残容量を取得し、次のステップSP39へ移る。ステップSP39においてデータ制御部13は、ステップSP38において取得したFIFO12の残容量が閾値以下であるか否かを判断する。
【0229】
ステップSP39において否定結果が得られると、このことはFIFO12の残容量が閾値より多く、FIFO12に蓄積されたコンテンツデータD2がオーバーフローすることがないことを意味しており、このときデータ制御部13はステップSP36に戻る。
【0230】
そしてデータ制御部13は、暗号化部14のFIFO14AにコンテンツデータD2が書き込めるようになるか、FIFO12の残容量が閾値以下になるまでステップSP36、SP38及びSP39を繰り返す。
【0231】
これに対してステップSP39において肯定結果が得られると、このことは暗号化部14のFIFO14AにコンテンツデータD2が書き込めずに、FIFO12の残容量が閾値以下になったことを意味する。
【0232】
このときFIFO12に蓄積されたコンテンツデータD2がオーバーフローする可能性があるので、データ制御部13は次のステップSP34に戻り、FIFO12から新たにペイロード長のコンテンツデータD2を読み出す。
【0233】
従ってデータ制御部13は、FIFO12から読み出したコンテンツデータD2が暗号化部14のFIFO14Aに書き込めずに、FIFO12の残容量が閾値以下になった場合、当該コンテンツデータD2を破棄して新たなコンテンツデータD2を読み出す。
【0234】
これによりデータ制御部13は、ネットワークの遅延等によりコンテンツデータD2の送信が遅延した場合、暗号化部14によりコンテンツデータD2を暗号化する前に破棄することができる。
【0235】
因みに第3の実施の形態においても、上述したデータ破棄処理手順(図9)に従ってコンテンツデータD2を破棄するようにしても良い。
【0236】
この場合、データ制御部13は、ステップSP34においてFIFO12から暗号化部14により暗号化されるTTSパケットの整数倍のコンテンツデータD2を読み出す。またデータ制御部13は、ステップSP34とステップSP35との間に図7に示したTTSパケット検出処理手順を実行すればよい。
【0237】
[5−2.他の実施の形態2]
上述した第1及び第2の実施の形態においては、DTCP−IP規格に準拠したAES−CBCモードで暗号化するためのブロックサイズである16バイトの整数倍のコンテンツデータD2を単位として破棄するようにした場合について述べた。
【0238】
また上述した第3及び第4の実施の形態においては、TTSパケットのデータサイズである192バイトの整数倍のコンテンツデータD2を単位として破棄するようにした場合について述べた。
【0239】
すなわち第1乃至第4の実施の形態においては、暗号化部14又は43により暗号化させるペイロード長のコンテンツデータD2を単位として破棄するようにした場合について述べた。
【0240】
しかしながら本発明はこれに限らず、第1及び第2の実施の形態においては、データ制御部13又は42により任意のデータサイズでFIFO12に記憶されたコンテンツデータD2を読み出して破棄するようにしても良い。
【0241】
また第3及び第4の実施の形態においては、データ制御部13又は42により完全な状態のTTSパケットを暗号化部14又は43に書き込むようにするのであれば、任意のデータサイズでFIFO12に記憶されたコンテンツデータD2を読み出して破棄するようにしても良い。
【0242】
例えばデータ制御部13又は42は、FIFO12又は41の残容量が閾値以下になった場合、TTSパケットを単位としてコンテンツデータD2をFIFO12又は41から読み出して破棄する。
【0243】
ここで、例えば放送局から供給されるコンテンツデータを暗号化した後にバッファに記憶し、当該バッファに所定量以上の暗号化されたコンテンツデータが記憶された場合、当該コンテンツデータを破棄するコンテンツ送信装置が提案されている(特開2008−199435)。
【0244】
このコンテンツ送信装置では、暗号化されたコンテンツデータが部分的に受信装置に送信されることを防止するため、暗号化されたコンテンツデータを単位として破棄する。このためこのコンテンツ送信装置では、暗号化されたコンテンツデータを単位としてバッファに記憶するため、バッファのサイズが大きくなってしまう。
【0245】
これに対して本願発明のコンテンツ送信装置3及び40では、放送局2から供給されるコンテンツデータD2を暗号化する前にFIFO12及び41に記憶する。そしてコンテンツ送信装置3及び40では、FIFO12及び41の残容量が閾値以下である場合、任意のデータサイズでFIFO12及び41に記憶されたコンテンツデータD2を破棄することができる。
【0246】
これによりコンテンツ送信装置3及び40では、FIFO12及び41のサイズを小さくすることができる。
【0247】
[5−3.他の実施の形態3]
上述した第1及び第2の実施の形態においては、DTCP−IP規格に準拠したAES−CBCモードで暗号化するためのブロックサイズである16バイトの整数倍のコンテンツデータD2を単位として破棄するようにした場合について述べた。
【0248】
また上述した第3及び第4の実施の形態においては、TTSパケットのデータサイズである192バイトの整数倍のコンテンツデータD2を単位として破棄するようにした場合について述べた。
【0249】
しかしながら本発明はこれに限らず、FIFO12及び41の残容量が閾値以下になった場合、フレーム単位でFIFO12に記憶されたコンテンツデータD2を破棄するようにしても良い。
【0250】
ここでMPEG2は、複数のフレームからなるGOP(Group Of Picture)単位で構成されている。ここでIピクチャは、他のフレームに依存することなく単体で復号することができる。またPピクチャは、単体では復号することができずにIピクチャを参照することにより復号することができる。さらにBピクチャは、Iピクチャ及びPピクチャを参照することにより復号することができる。
【0251】
このことから、データ制御部13及び42は、FIFO12及び41の残容量が閾値以下になった場合、例えばPESヘッダ及びエレメンタリストリーム内部のヘッダを参照することにより、Iピクチャに相当するTTSパケットを破棄することなく、Pピクチャ及びBピクチャに相当するTTSパケットだけを破棄するようにしても良い。
【0252】
[5−4.他の実施の形態4]
上述した第1及び第3の実施の形態においては、FIFO12、データ制御部13及び暗号化部14がソフトウェアで構成されるようにした場合について述べた。また上述した第2及び第4の実施の形態においては、FIFO41、データ制御部42及び暗号化部43がハードウェアで構成されるようにした場合について述べた。
【0253】
しかしながら本発明においてはこれに限らず、例えばFIFOがハードウェア構成で、データ制御部及び暗号化部がソフトウェア構成であっても良く、FIFO、データ制御部及び暗号化部がそれぞれソフトウェア又はハードウェアのどちらで構成されていても良い。
【0254】
[5−5.他の実施の形態5]
上述した第1乃至第4の実施の形態においては、放送局2から送信されるコンテンツデータD2をリアルタイムで受信装置4に送信するようにした場合について述べた。
【0255】
しかしながら本発明においてはこれに限らず、例えばデジタルビデオカメラにより撮像される映像データを所定のインターフェース(図示せず)を介して取得してリアルタイムで受信装置4に送信するような場合にも適応できる。
【0256】
また本発明は、例えばパーソナルコンピュータにより作成されたコンピュータグラフィックスの動画像を所定のインターフェースを介して取得してリアルタイムで受信装置4に送信するような場合にも適応できる。
【0257】
このように本発明においては、種々の家電機器やコンピュータ又はインターネットを介して供給される映像データをリアルタイムで受信装置4に送信する場合に適応できる。
【0258】
[5−6.他の実施の形態6]
上述した第1乃至第4の実施の形態においては、MPEG2形式でなるコンテンツデータD2をリアルタイムで受信装置4に送信するようにした場合について述べた。
【0259】
しかしながら本発明はこれに限らず、種々のフォーマットでなるコンテンツデータを受信装置4に送信する場合に適応することができる。
【0260】
[5−7.他の実施の形態7]
上述した第1及び第2の実施の形態においては、DTCP−IP規格に準拠したAES−CBCモードで暗号化するためのブロックサイズである16バイトの整数倍のコンテンツデータD2を単位として破棄するようにした場合について述べた。
【0261】
また上述した第3及び第4の実施の形態においては、TTSパケットのデータサイズである192バイトの整数倍のコンテンツデータD2を単位として破棄するようにした場合について述べた。
【0262】
すなわち第1乃至第4の実施の形態においては、固定長のコンテンツデータD2を単位として破棄するようにした場合について述べた。
【0263】
しかしながら本発明はこれに限らず、データ制御部13及び42により破棄するコンテンツデータD2のデータサイズを可変にするようにしても良い。
【0264】
具体的には、例えば第1の実施の形態におけるコンテンツ送信装置3のデータ制御部13は、コンテンツデータD2の破棄するデータサイズを切り替えるようにする。
【0265】
このデータ制御部13は、例えば画質優先モード及びリアルタイム優先モードが設定されており、ユーザ操作に応じて切り替えるようになされている。
【0266】
そしてデータ制御部13は、ユーザ操作に応じて画質優先モードが設定された場合、FIFO12の残容量が閾値以下になったとき、例えばIピクチャに相当するTTSパケットを破棄せず、Pピクチャ及びBピクチャに相当するTTSパケットを破棄する。
【0267】
これによりコンテンツ送信装置3は、Iピクチャに相当するTTSパケットを受信装置4に送信することができるので、フレーム数は少なくなるものの1フレームごとの画質がよいコンテンツをユーザに提供することができる。
【0268】
またデータ制御部13は、ユーザ操作に応じてリアルタイム優先モードが設定された場合、FIFO12の残容量が閾値以下になったとき、フレーム数が減少しないように1フレームあたりのデータサイズを減らすように破棄する。
【0269】
これによりコンテンツ送信装置3は、フレーム数が減少していないコンテンツデータを受信装置4に提供することができる。
【0270】
またデータ制御部13は、FIFO12に記憶されたコンテンツデータD2のフォーマットの種類に応じて破棄するコンテンツデータD2のデータサイズを切り替えるようにしても良い。
【0271】
例えばデータ制御部13は、例えばMPEG2形式のコンテンツデータD2がFIFO12に記憶されている場合、FIFO12の残容量が閾値以下になったとき、フレーム単位でコンテンツデータD2を破棄する。
【0272】
またデータ制御部13は、FIFO12に記憶されているコンテンツデータD2がパケットにより構成されてないフォーマットである場合、FIFO12の残容量が閾値以下になったとき、暗号化部14により暗号化されるペイロード長単位でFIFO12からコンテンツデータD2を読み出して破棄する。
【0273】
このようにすればデータ制御部13は、FIFO12に記憶されたコンテンツデータD2のフォーマットの種類に応じて破棄するコンテンツデータのデータサイズを切り替えることができる。
【0274】
なおデータ制御部13が破棄するコンテンツデータD2のデータサイズを切り替えるようにしたが、データ制御部13とは別に破棄するコンテンツデータD2のデータサイズを切り替える切替部を備えるようにしても良い。
【0275】
[5−8.他の実施の形態8]
さらに上述した第1及び第3の実施の形態においては、CPU31がROM33に格納されているデータ破棄処理プログラムに従い、上述したデータ破棄処理を行うようにした場合について述べた。
【0276】
しかしながら本発明はこれに限らず、記憶媒体からインストールしたり、インターネットからダウンロードしたデータ破棄処理プログラムに従って上述したデータ破棄処理を行うようにしても良い。
【0277】
またその他種々のルートによってインストールしたデータ破棄処理プログラムに従って上述したデータ破棄処理を行うようにしても良い。
【0278】
[5−9.他の実施の形態9]
さらに上述した第1乃至第4の実施の形態においては、取得部としてチューナ部11が設けられるようにした場合について述べた。しかしながら本発明は、その他種々の構成でなる取得部を設けるようにしても良い。
【0279】
さらに上述した第1乃至第4の実施の形態においては、一時記憶部としてFIFO12及び41が設けられるようにした場合について述べた。しかしながら本発明は、その他種々の構成でなる一時記憶部を設けるようにしても良い。
【0280】
さらに上述した第1乃至第4の実施の形態においては、データ制御部としてデータ制御部13及び42が設けられるようにした場合について述べた。しかしながら本発明は、その他種々の構成でなるデータ制御部を設けるようにしても良い。
【0281】
さらに上述した第1乃至第4の実施の形態においては、暗号化部として暗号化部14及び43が設けられるようにした場合について述べた。しかしながら本発明は、その他種々の構成でなる暗号化部を設けるようにしても良い。
【0282】
さらに上述した第1乃至第4の実施の形態においては、送信部としてHTTP/TCPインターフェース部15が設けられるようにした場合について述べた。しかしながら本発明は、その他種々の構成でなる送信部を設けるようにしても良い。
【産業上の利用可能性】
【0283】
本発明は、例えばストリーミング形式で配信されるコンテンツデータを暗号化して受信装置に送信する場合に利用することができる。
【符号の説明】
【0284】
1……コンテンツ送信システム、2……放送局、3、40,80……コンテンツ送信装置、4……受信装置、11……チューナ部、12、41……FIFO、13、42……データ制御部、14、43……暗号化部、15、21……HTTP/TCPインターフェース部、16、23……記憶部、22……復号化部、31……CPU、32……RAM、33……ROM、34……ネットワークインターフェース部、35……バス。

【特許請求の範囲】
【請求項1】
ストリーミング形式で配信されるコンテンツデータを取得する取得部と、
上記取得部により取得されたコンテンツデータを一時的に記憶する一時記憶部と、
上記一時記憶部に記憶されたコンテンツデータを記憶された順に読み出すデータ制御部と、
上記データ制御部により読み出されたコンテンツデータを所定量を単位として暗号化する暗号化部と、
上記暗号化部により暗号化されたコンテンツデータをネットワークを介して所定の受信装置に送信する送信部と
を具え、
データ制御部は、
上記ネットワークの状況により上記一時記憶部の残容量が所定閾値以下になった場合、上記一時記憶部から読み出したコンテンツデータを破棄する
コンテンツ送信装置。
【請求項2】
上記送信部は、
HTTP(Hyper Text Transmission Protocol)/TCP(Transmission Control Protocol)を用いて上記暗号化部により暗号化されたコンテンツデータを上記受信装置に送信する
請求項1に記載のコンテンツ送信装置。
【請求項3】
上記データ制御部は、
上記コンテンツデータのデータ破棄量を当該コンテンツデータのフォーマットに応じて切り替える
請求項2に記載のコンテンツ送信装置。
【請求項4】
上記データ制御部は、
上記コンテンツデータのデータ破棄量を、上記受信装置における当該コンテンツデータの再生品質に応じて切り替える
請求項2に記載のコンテンツ送信装置。
【請求項5】
上記コンテンツデータは、タイムスタンプを付加したTS(Transport Stream)パケットであるTTS(Timestamped Transport Stream)パケットにより構成され、
上記データ制御部は、
上記コンテンツデータを上記TTSパケットごとに破棄する
請求項2に記載のコンテンツ送信装置。
【請求項6】
上記暗号化部は、
上記コンテンツデータを上記TTSパケットの整数倍を単位として暗号化する
請求項5に記載のコンテンツ送信装置。
【請求項7】
ストリーミング形式で配信されるコンテンツデータを取得する取得ステップと、
上記取得ステップにより取得されたコンテンツデータを一時記憶部に一時的に記憶する一時記憶ステップと、
上記一時記憶部に記憶されたコンテンツデータを記憶された順に読み出すデータ制御ステップと、
上記データ制御ステップにより読み出されたコンテンツデータを所定量を単位として暗号化する暗号化ステップと、
上記暗号化部により暗号化されたコンテンツデータをネットワークを介して所定の受信装置に送信する送信ステップと
を具え、
データ制御ステップでは、
上記ネットワークの状況により上記一時記憶部の残容量が所定閾値以下になった場合、上記一時記憶部から読み出したコンテンツデータを破棄する
コンテンツ送信方法。
【請求項8】
コンピュータに対して、
ストリーミング形式で配信されるコンテンツデータを取得する取得ステップと、
上記取得ステップにより取得されたコンテンツデータを一時記憶部に一時的に記憶する一時記憶ステップと、
上記一時記憶部に記憶されたコンテンツデータを記憶された順に読み出すデータ制御ステップと、
上記データ制御ステップにより読み出されたコンテンツデータを所定量を単位として暗号化する暗号化ステップと、
上記暗号化部により暗号化されたコンテンツデータをネットワークを介して所定の受信装置に送信する送信ステップと
を実行させ、
データ制御ステップでは、
上記ネットワークの状況により上記一時記憶部の残容量が所定閾値以下になった場合、上記一時記憶部から読み出したコンテンツデータを破棄させる
コンテンツ送信プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−251912(P2010−251912A)
【公開日】平成22年11月4日(2010.11.4)
【国際特許分類】
【出願番号】特願2009−97205(P2009−97205)
【出願日】平成21年4月13日(2009.4.13)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】