(57)【特許請求の範囲】
【請求項１】
暗号化されているストリームを復号する復号手段と、
前記復号手段により復号されたストリームを構成する複数のパケットを、前記パケットを識別するパケット識別子に従って分離し、CPU（Central Processing Unit）の制御に従って、前記ストリームから一部分を抜き出したパーシャルストリームを作成するとともに、前記ストリームに含まれる特定の文字列を検索して、その文字列が含まれているパケットの位置を表す位置情報が記述されるマップ情報を作成するストリームデータ処理手段と、
前記パーシャルストリームを暗号化する暗号化手段と
を備え、
前記復号手段、前記ストリームデータ処理手段、および前記暗号化手段が、パッケージ化された集積回路として構成され、前記CPUにバスを介して接続されており、
前記ストリームデータ処理手段は、前記CPUに前記マップ情報を直接的に供給する
暗号化ストリーム処理回路。
【請求項２】
前記ストリームデータ処理手段は、前記CPUからの通知に従って、前記パーシャルストリームとして残す必要のないパケットをパケット単位で削除して前記パーシャルストリームを作成する
請求項１に記載の暗号化ストリーム処理回路。
【請求項３】
前記ストリームには、前記ストリームのコンテンツに設定されている著作権を表す著作権保護情報が記述されており、
前記ストリームデータ処理手段は、前記著作権保護情報を必要に応じて書き換える
請求項１に記載の暗号化ストリーム処理回路。
【請求項４】
前記ストリームデータ処理手段は、前記ストリームを構成する複数のパケットに、前記ストリームをデコードするデコーダへの入力タイミングを表すタイムスタンプの付加または削除を行う
請求項１に記載の暗号化ストリーム処理回路。
【請求項５】
暗号化されているストリームを復号し、
前記復号されたストリームを構成する複数のパケットを、前記パケットを識別するパケット識別子に従って分離し、CPU（Central Processing Unit）の制御に従って、前記ストリームから一部分を抜き出したパーシャルストリームを作成するとともに、前記ストリームに含まれる特定の文字列を検索して、その文字列が含まれているパケットの位置を表す位置情報が記述されるマップ情報を作成し、
前記パーシャルストリームを暗号化する
ステップを含み、
各ステップの処理が、前記CPUにバスを介して接続されているパッケージ化された集積回路内で行われ、
前記集積回路を構成するストリームデータ処理手段であって、前記パーシャルストリームを作成するとともに前記マップ情報を作成する前記ストリームデータ処理手段から前記CPUに前記マップ情報が直接的に供給される
暗号化ストリーム処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化ストリーム処理回路および暗号化ストリーム処理方法に関し、特に、暗号化されたストリームに対する処理を高速で行うことができるようにした暗号化ストリーム処理回路および暗号化ストリーム処理方法に関する。
【背景技術】
【０００２】
従来、著作権により保護されているコンテンツのストリームを、CPU（Central Processing Unit）に接続されたバスを介して伝送する際には、暗号化して伝送しなければならないという制約がある。
【０００３】
従って、CPUは、暗号化されたストリームを受け取ると、CPUの内部で、ストリームを復号して、そのストリームに対して施す必要がある所定の処理を行い、その処理が施されたストリームを暗号化した後に出力しなければならない。即ち、CPUでは、ストリームを復号する処理、ストリームに対する所定の処理、およびストリームを暗号化する処理がソフトウエアにより行われている。
【０００４】
しかしながら、このような処理をソフトウエアにより行うことは、CPUにとって負荷が大きく、処理能力が低いCPUでは高速に処理を行うことが難しい。また、高速で処理を行うには、比較的に高速かつ高価なCPUが必要となる。
【０００５】
例えば、特許文献１には、ストリームに記述されている著作権保護情報を変更せずに目的の著作権を保護するデータ記録再生装置が開示されており、著作権保護情報を書き換える処理を行うことが容易ではないことが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３６２７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、著作権により保護されているコンテンツのストリームをバスを介して伝送する際、暗号化して伝送しなければならず、CPUが、暗号化されたストリームに対する処理を高速で行うことは困難であった。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、暗号化されたストリームに対する処理を高速で行うことができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面の暗号化ストリーム処理回路は、暗号化されているストリームを復号する復号手段と、前記復号手段により復号されたストリームを構成する複数のパケットを、前記パケットを識別するパケット識別子に従って分離し、CPUの制御に従って、前記ストリームから一部分を抜き出したパーシャルストリームを作成するとともに、前記ストリームに含まれる特定の文字列を検索して、その文字列が含まれているパケットの位置を表す位置情報が記述されるマップ情報を作成するストリームデータ処理手段と、前記パーシャルストリームを暗号化する暗号化手段とを備え、前記復号手段、前記ストリームデータ処理手段、および前記暗号化手段が、パッケージ化された集積回路として構成され、前記CPUにバスを介して接続されており、前記ストリームデータ処理手段は、前記CPUに前記マップ情報を直接的に供給する。
【００１０】
本発明の一側面の暗号化ストリーム処理方法は、暗号化されているストリームを復号し、前記復号されたストリームを構成する複数のパケットを、前記パケットを識別するパケット識別子に従って分離し、CPUの制御に従って、前記ストリームから一部分を抜き出したパーシャルストリームを作成するとともに、前記ストリームに含まれる特定の文字列を検索して、その文字列が含まれているパケットの位置を表す位置情報が記述されるマップ情報を作成し、前記パーシャルストリームを暗号化するステップを含み、各ステップの処理が、前記CPUにバスを介して接続されているパッケージ化された集積回路内で行われ、前記集積回路を構成するストリームデータ処理手段であって、前記パーシャルストリームを作成するとともに前記マップ情報を作成する前記ストリームデータ処理手段から前記CPUに前記マップ情報が直接的に供給される。
【００１１】
本発明の一側面においては、暗号化されているストリームが復号され、そのストリームを構成する複数のパケットが、パケットを識別するパケット識別子に従って分離され、CPUの制御に従って、ストリームから一部分を抜き出したパーシャルストリームが作成されるとともに、ストリームに含まれる特定の文字列が検索されて、その文字列が含まれているパケットの位置を表す位置情報が記述されるマップ情報が作成され、パーシャルストリームが暗号化される。そして、それらの処理が、CPUにバスを介して接続されているパッケージ化された集積回路内で行われ、その集積回路を構成するストリームデータ処理手段であって、パーシャルストリームを作成するとともにマップ情報を作成するストリームデータ処理手段からCPUにマップ情報が直接的に供給される。
【発明の効果】
【００１２】
本発明の一側面によれば、暗号化されたストリームに対する処理を高速で行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明を適用したコンテンツ処理装置の一実施の形態の構成例を示すブロック図である。
【図２】PMT中に記述されているDTCP Descriptorの例を示す図である。
【図３】暗号化ストリーム処理回路１６において暗号化ＡＶストリームに対して行われる処理を説明するフローチャートである。
【図４】ステップＳ１４におけるPTSの位置情報を抜き出す処理を説明するフローチャートである。
【図５】ステップＳ１５におけるI-PicureのIndicatorの位置情報を抜き出す処理を説明するフローチャートである。
【図６】コンテンツ処理装置１１の他の実施の形態の構成例を示すブロック図である。
【図７】コンテンツ処理装置１１のさらに他の実施の形態の構成例を示すブロック図である。
【図８】コンテンツ処理装置１１のさらに他の実施の形態の構成例を示すブロック図である。
【００１４】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１５】
図１は、本発明を適用したコンテンツ処理装置の一実施の形態の構成例を示すブロック図である。
【００１６】
図１において、コンテンツ処理装置１１は、通信コントローラ１２，CPU１３、ディスクコントローラ１４、記録部１５、暗号化ストリーム処理回路１６から構成される。また、暗号化ストリーム処理回路１６は、復号部１７、ストリームデータ処理部１８、および暗号化部１９から構成される。
【００１７】
通信コントローラ１２は、例えば、IEEE（Institute of Electrical and Electronics Engineers）802.3イーサーネットワークやIEEE802.11ワイヤレスネットワークなどのネットワークを介しての通信を制御する制御部であり、ネットワークを介してのデータの送受信を行う。例えば、著作権付きのTransport Stream形式のコンテンツが暗号化されて、ネットワークを介して配信されてくると、通信コントローラ１２は、その暗号化されたコンテンツ（以下、適宜、暗号化ＡＶ（Audio Visual）ストリームと称する）を受信して、CPU１３に供給する。
【００１８】
CPU１３は、通信コントローラ１２から供給される暗号化ＡＶストリームを、暗号化ストリーム処理回路１６の復号部１７に供給し、暗号化ストリーム処理回路１６のストリームデータ処理部１８を制御して、暗号化ＡＶストリームに対して必要な処理を行わせる。また、CPU１３は、ストリームデータ処理部１８において処理が施された暗号化ＡＶストリームが暗号化ストリーム処理回路１６の暗号化部１９から供給されると、その暗号化ＡＶストリームをディスクコントローラ１４に供給する。
【００１９】
ディスクコントローラ１４は、記録部１５に記録されているデータの入出力を制御する制御部であり、例えば、CPU１３から供給される暗号化ＡＶストリームを記録部１５に記録させる。
【００２０】
記録部１５は、例えば、ハードディスクドライブや、DVD（Digital Versatile Disc）、Blu-Ray Discなどの記録媒体であり、ディスクコントローラ１４の制御に従って、暗号化ＡＶストリームを記録する。
【００２１】
暗号化ストリーム処理回路１６は、PCI（Peripheral Component Interconnect）バスやUSB(Universal Serial Bus)などを介してCPU１３に接続されており、CPU１３の制御に従って、暗号化ＡＶストリームに対して必要な処理を行う。ここで、暗号化ストリーム処理回路１６は、復号部１７、ストリームデータ処理部１８、および暗号化部１９がパッケージ化された集積回路であり、復号部１７、ストリームデータ処理部１８、および暗号化部１９の間で送受信されるデータを外部から取得することはできない。
【００２２】
復号部１７には、CPU１３からバスを介して暗号化ＡＶストリームが供給され、復号部１７は、例えば、あらかじめ設定されている復号鍵を用いて暗号化ＡＶストリームを復号し、平文のＡＶストリームをストリームデータ処理部１８に供給する。
【００２３】
ストリームデータ処理部１８は、CPU１３の制御に従い、復号部１７からのＡＶストリームに対して所定の処理を行い、処理後のＡＶストリームを暗号化部１９に供給する。
【００２４】
暗号化部１９は、ストリームデータ処理部１８から供給されるＡＶストリームを、予め設定されている暗号化鍵を用いて暗号化し、暗号化ＡＶストリームをCPU１３に供給する。
【００２５】
ここで、ストリームデータ処理部１８において行われる処理について説明する。
【００２６】
ストリームデータ処理部１８は、ストリームを分離する処理や、パーシャルストリームを作成する処理、マップ情報を作成する処理、著作権情報を書き換える処理、タイムスタンプを付加または削除する処理などを行う。
【００２７】
ストリームを分離する処理、いわゆるDemux処理では、ストリームデータ処理部１８は、復号部１７から供給されるＡＶストリームを解析し、PID(Packet Identifier)が0x0000と決められているPAT(Program Association Table)を検出する。そして、PATに記述されているPMT(Program Map Table)のPIDを取得する。PMTには、ビデオや、オーディオ、PCR（Program Clock Reference）などが含まれるTS（Transport Stream）パケットのPIDが記述されている。
【００２８】
ここで、PMT に記述されているPIDは、タイムスタンプが付加されていない標準のTSパケットについては、先頭が8bitsのSync Byte(=0x47)で、それにtransport_error_indicator，payload_unit_start_indicator，transport_priorityの各１bit、計3bitsの直後の13bitsで表されている。また、タイムスタンプが付加されているTSパケットでは、Sync Byteの直前に32Bits(=4 Bytes)のタイムスタンプが存在する。なお、TSパケットにタイムスタンプが付加されているか否かは、通常、ＡＶストリームを送受信する際に認識することができるが、例えば、TSパケットにタイムスタンプが付加されているか不明である場合には、ストリームデータ処理部１８が、Sync Byte=0x47の繰り返し周期に基づいて、TSパケットにタイムスタンプが付加されているかを判定することができる。
【００２９】
そして、ストリームデータ処理部１８は、PMT に記述されているPIDに従って、ＡＶストリームからTSパケットを分離する。例えば、ストリームデータ処理部１８は、ＡＶストリームを再生する処理に用いられるPAT，PMT，PCR，DIT（Discontinuity Information Packet）などのパケットのPID、ビデオが含まれているパケットのPID、およびオーディオが含まれているパケットのPIDに基づいて、それぞれのTSパケットを分離する。
【００３０】
また、パーシャルストリームを作成する処理では、ストリームデータ処理部１８は、コンテンツ処理装置１１において記録部１５に記録させるコンテンツに関するTSパケットからなるパーシャルストリームを作成する。即ち、ストリームデータ処理部１８は、復号部１７から供給されるＡＶストリームから、記録部１５に記録させるコンテンツに関するTSパケット以外のTSパケットを削除したものを、パーシャルストリームとして作成する。
【００３１】
ここで、記録部１５に記録させるコンテンツに関するTSパケットのPID 、例えば、PAT，PMT，PCR，DIT（Discontinuity Information Packet）などのTSパケットのPID、ビデオが含まれているTSパケットのPID、およびオーディオが含まれているTSパケットのPIDは、CPU１３からストリームデータ処理部１８に通知（指定）される。そして、ストリームデータ処理部１８は、タイムスタンプが付加されていない標準のTSパケットについては、削除すべきPIDにより識別される188BytesのTSパケットを削除する。また、ストリームデータ処理部１８は、タイムスタンプが付加されているTSパケットについては、削除すべきPIDにより識別される192BytesのTSパケットを削除する。これにより、記録部１５に記録させる必要のないTSパケットは、暗号化部１９に供給されない。
【００３２】
また、マップ情報を作成する処理では、ストリームデータ処理部１８は、ＡＶストリームを解析し、Picture Header(I-Picture)のIndicatorや、PTS(Presentation Timestamp)などが含まれているTSパケットの位置を検出して、それらの位置情報（Packet Number）を記述したマップ情報を作成する。ストリームデータ処理部１８は、Picture HeaderのIndicatorや、PTSなどが含まれているTSパケットの位置情報や、それらのTSパケットの属性がわかる情報を記述したマップ情報を、CPU１３に供給する。
【００３３】
このようなマップ情報を作成することにより、記録部１５に記録されている暗号化ＡＶストリームを再生する際に、CPU１３は、サーチやスキップ再生などの処理をスムーズに行うことができる。即ち、CPU１３は、マップ情報を参照してサーチやスキップ再生などの処理を行うことで、暗号化ＡＶストリームを復号しながらそれらの処理を行う場合よりも、早く処理を行うことができる。
【００３４】
なお、Picture Header(I-Picture)のIndicatorが含まれているTSパケットの位置を検出する処理については、図４を参照して後述する。また、PTSが含まれているTSパケットの位置を検出する処理については、図５を参照して後述する。なお、パーシャルストリームを作成する処理において、例えば、Null Packet（PID=0x1FFFのTSパケット）の削除などが行われる場合には、それらの処理後の位置情報がマップ情報に記述される。
【００３５】
また、著作権情報を書き換える処理において、例えば、ＡＶストリームのPMTに、著作権情報として、DTCP（Digital Transmission Content Protection） Descriptorが記述されている場合、ストリームデータ処理部１８は、そのDTCP Descriptorに基づいて、DTCP Descriptorを書き換える。
【００３６】
例えば、図２には、PMT中に記述されているDTCP Descriptorの例が示されている。
【００３７】
例えば、図２の右側に示されているように、DTCP Descriptorが「0x88 04 0F FF FC FC」である場合、処理の対象となっているＡＶストリームはコピーフリー（Copy Free）のコンテンツであることを表している。
【００３８】
また、例えば、処理の対象となっているＡＶストリームのDTCP Descriptorが「0x88 04 0F FF FE FC」である場合、処理の対象となっているＡＶストリームはコピーワンス（Copy Once）のコンテンツであることを表している。コピーワンスのコンテンツを記録部１５に記録する場合には、ストリームデータ処理部１８は、No More Copiesのコンテンツであることを表す「0x88 04 0F FF FD FC」にDTCP Descriptorを書き換える。
【００３９】
ここで、ストリームデータ処理部１８は、PMTが記述されているTSパケットの中から、「0x88 04 0F FF Fx FC」を検索する。ただし、FxのxはDon't Careを意味する。即ち、検索の時には、Fxのxが何であるかは、不明なためである。
【００４０】
そして、ストリームデータ処理部１８が、「0x88 04 0F FF Fx FC」を検索した結果をCPU１３に供給することで、CPU１３は、暗号化ＡＶストリームの内容（ビデオやオーディオなど）を把握することなく、暗号化ＡＶストリームのDTCP Descriptorを把握することができる。そして、CPU１３は、ストリームデータ処理部１８からの検索結果に基づいて、その「Fx」の書き換えをストリームデータ処理部１８に指示する。また、これにより、CPU１３が、暗号化ＡＶストリームにDTCP Descriptorが存在しているか否を把握することができる。
【００４１】
なお、上述したように、著作権により保護されているコンテンツのストリームを、CPUに接続されたバスを介して伝送する際には、暗号化して伝送しなければならないという制約があるが、PATやPMTなどのビデオおよびオーディオのデータではないコンテンツの補助情報を平文で流すことは不可とされていない。従って、PATやPMTなどが含まれているTSパケットだけをCPU１３に供給し、CPU１３が、DTCP Descriptorの書き換えを行った後、ストリームデータ処理部１８に供給してもよい。
【００４２】
また、タイムスタンプを付加または削除する処理では、ストリームデータ処理部１８は、タイムスタンプが付加されていないTSパケットにタイムスタンプを付加したり、タイムスタンプが付加されているTSパケットからタイムスタンプを削除する。
【００４３】
タイムスタンプが付加されているTSパケットは192Bytesであるので、例えば、ストリームデータ処理部１８は、タイムスタンプが付加されているTSパケットからタイムスタンプを削除する場合には、ＡＶストリームについて、192Bytesごとに先頭部の4Bytesを削除する。
【００４４】
また、TSパケットにタイムスタンプを付加する場合には、時刻の計算基準はPCR(Program Clock Reference)になるので、ストリームデータ処理部１８は、PCRが含まれているパケットを検索し、そのパケットのPCR値に基づいて27MHz Clock Counterのタイムスタンプを算出する。例えば、PCRは、全体が42bitsで構成されるデータで始めの33bitsが90kHz counter値、残りの9bitsが27MHz counter値である。従って、たとえば、32 bitsのタイムスタンプ値は、次の式（１）で表される。
【００４５】
[32bit Timestamp value] = ( [ PCRの先頭33bitsの値] * 300 + [残りの9bitsの値]) mod 2^32
・・・（１）
【００４６】
なお、Blu-Rayでは、30bitのタイムスタンプが用いられており、30bitのタイムスタンプ値は、次の式（２）で表される。
【００４７】
[30bit Timestamp value] = ( [ PCRの先頭33bitsの値] * 300 + [残りの9bitsの値]) mod 2^30
・・・（２）
【００４８】
そして、PCRが含まれているTSパケットの間にある各TSパケットについては、それらの前後のPCRが含まれているTSパケットのタイムスタンプ値に基づき、その前後のタイムスタンプ値を均等に分割した値が用いられる。例えば、CPU１３が、各TSパケットの先頭に付加する4Bytesのタイムスタンプ値を指定するとともに、タイムスタンプをインクリメントする値を指定することで、PCRが含まれているTSパケットの間にある各TSパケットのタイムスタンプ値を自動的に設定することができる。
【００４９】
このように、ストリームデータ処理部１８において、ストリームを分離する処理や、パーシャルストリームを作成する処理、マップ情報を作成する処理、著作権情報を書き換える処理、タイムスタンプを付加または削除する処理などが行われる。
【００５０】
次に、図３は、図１の暗号化ストリーム処理回路１６において暗号化ＡＶストリームに対して行われる処理を説明するフローチャートである。
【００５１】
例えば、ネットワークを介して配信された暗号化ＡＶストリームが、通信コントローラ１２により受信され、CPU１３を介して暗号化ストリーム処理回路１６の復号部１７に供給されると処理が開始される。ステップＳ１１において、復号部１７は、CPU１３を介して供給される暗号化ＡＶストリームを復号し、平文のＡＶストリームをストリームデータ処理部１８に供給する。
【００５２】
ステップＳ１１の処理後、処理はステップＳ１２に進み、ストリームデータ処理部１８は、復号部１７から供給されるＡＶストリームを解読し、PATおよびPMTを取得する。そして、PMTに記述されているPIDの属性に従って、ＡＶストリームを構成するパケットを分離し、処理はステップＳ１３に進む。
【００５３】
ステップＳ１３において、ストリームデータ処理部１８には、パーシャルストリームとして残す必要のあるパケットのPIDがCPU１３から通知され、ストリームデータ処理部１８は、そのPIDに従ってパーシャルストリームを作成する。即ち、ストリームデータ処理部１８は、パーシャルストリームとして残す必要のないパケットを、パケット単位で削除する。
【００５４】
ステップＳ１３の処理後、処理はステップＳ１４に進み、ストリームデータ処理部１８は、ステップＳ１３で作成したパーシャルストリームを解析して、パーシャルストリームに含まれているPTSの位置情報を抜き出す処理（図４）を行う。
【００５５】
ステップＳ１５において、ストリームデータ処理部１８は、ステップＳ１３で作成したパーシャルストリームを解析して、パーシャルストリームに含まれているI-PicureのIndicatorの位置情報を抜き出す処理（図５）を行う。
【００５６】
ステップＳ１５の処理後、処理はステップＳ１６に進み、ストリームデータ処理部１８は、ステップＳ１４の処理で抜き出したPTSの位置情報、および、ステップＳ１５の処理で抜き出したI-PicureのIndicatorの位置情報を記述したマップ情報を作成する。ストリームデータ処理部１８は、マップ情報をCPU１３に供給し、処理はステップＳ１７に進む。
【００５７】
ステップＳ１７において、ストリームデータ処理部１８は、ステップＳ１２で取得したPMTに記述されているDTCP Descriptorに基づいて、DTCP Descriptorを書き換える処理を行う。例えば、ストリームデータ処理部１８は、Copy Onceを意味するDTCP DescriptorがPMTに記述されていれば、そのDTCP DescriptorをNo More Copiesに書き換える処理を行う。
【００５８】
ステップＳ１７の処理後、処理はステップＳ１８に進み、ストリームデータ処理部１８は、CPU１３の制御に従って、パーシャルストリームに含まれているPCRの間隔に基づき、各パケットの時間間隔が均等になるような値を算出し、その値をタイムスタンプとして各パケットに付加する。または、ストリームデータ処理部１８は、CPU１３の制御に従って、既に各パケットに付加されているタイムスタンプを削除する。
【００５９】
ステップＳ１８の処理後、処理はステップＳ１９に進み、ストリームデータ処理部１８は、ステップＳ１２乃至Ｓ１８の処理が施されたＡＶストリームを暗号化部１９に供給する。暗号化部１９は、ストリームデータ処理部１８からのＡＶストリームを暗号化し、暗号化ＡＶストリームをCPU１３に供給する。
【００６０】
以上のように、コンテンツ処理装置１１では、CPU１３とバスを介して接続された暗号化ストリーム処理回路１６において、暗号化ＡＶストリームを復号し、ＡＶストリームに対する所定の処理を行い、その処理後のＡＶストリームを暗号化して出力するので、バスを介して平文のＡＶストリームを送受信することはない。また、CPU１３でソフトウエアにより暗号化ＡＶストリームに対する処理を行うよりも、高速に暗号化ＡＶストリームに対する処理を行うことができる。
【００６１】
このように、コンテンツ処理装置１１では、CPU１３が、暗号化ＡＶストリームの内容を把握することがなくても、暗号化ＡＶストリームを適正に処理することができる。
【００６２】
次に、図４は、図３のステップＳ１４におけるPTSの位置情報を抜き出す処理を説明するフローチャートである。
【００６３】
ストリームデータ処理部１８は、復号部１７から供給されるＡＶストリームに含まれているビットの先頭から順に処理の対象とし、ステップＳ２１において、8bitごとに、ビットの値が0x000001に一致しているかを確認する。ここで、0x000001は、ＡＶストリームの先頭に含まれるビット列である。
【００６４】
ステップＳ２１の処理後、処理はステップＳ２２に進み、ストリームデータ処理部１８は、ステップＳ２１での確認の結果、ビットの値が0x000001に一致しているか否かを判定する。
【００６５】
ステップＳ２２において、ストリームデータ処理部１８が、ビットの値が0x000001に一致していないと判定した場合、処理はステップＳ２１に戻り、以下、同様の処理が繰り返される。一方、ストリームデータ処理部１８が、ビットの値が0x000001に一致していると判定した場合、処理はステップＳ２３に進み、ストリームデータ処理部１８は、次の8bitsを確認する。
【００６６】
ステップＳ２３の処理後、処理はステップＳ２４に進み、ストリームデータ処理部１８は、ステップＳ２３での確認の結果、その8bitsの値が0xC0 から0xEFまでの間の数値であるか否かを判定する。
【００６７】
ステップＳ２４において、ストリームデータ処理部１８が、8bitsの値が0xC0 から0xEFまでの間の数値でないと判定した場合、処理はステップＳ２１に戻り、以下、同様の処理が繰り返される。一方、ストリームデータ処理部１８が、8bitsの値が0xC0 から0xEFまでの間の数値であると判定した場合、処理はステップＳ２５に進み、ストリームデータ処理部１８は、次の16bitsの、その次の2bitsを確認する。
【００６８】
ステップＳ２５の処理後、処理はステップＳ２６に進み、ストリームデータ処理部１８は、ステップＳ２５での確認の結果、その2bitsの値が0b10であるか否かを判定する。
【００６９】
ステップＳ２６において、ストリームデータ処理部１８が、2bitsの値が0b10でないと判定した場合、処理はステップＳ２１に戻り、以下、同様の処理が繰り返される。一方、ストリームデータ処理部１８が、2bitsの値が0b10であると判定した場合、処理はステップＳ２７に進み、ストリームデータ処理部１８は、6bitsスキップして、次の2bitsを確認する。
【００７０】
ステップＳ２７の処理後、処理はステップＳ２８に進み、ストリームデータ処理部１８は、ステップＳ２７での確認の結果、その2bitsの値が0b01または0b11のいずれかであるか否かを判定する。
【００７１】
ステップＳ２８において、ストリームデータ処理部１８が、2bitsの値が0b01または0b11のいずれでもないと判定した場合、処理はステップＳ２１に戻り、以下、同様の処理が繰り返される。一方、ストリームデータ処理部１８が、2bitsの値が0b01または0b11のいずれかであると判定した場合、処理はステップＳ２９に進み、ストリームデータ処理部１８は、次の14bitsをスキップして、次の4bitsを確認する。
【００７２】
ステップＳ２９の処理後、処理はステップＳ３０に進み、ストリームデータ処理部１８は、ステップＳ３０での確認の結果、その4bitsの値が0b0010であるか否かを判定する。
【００７３】
ステップＳ３０において、ストリームデータ処理部１８が、4bitsの値が0b0010でないと判定した場合、処理はステップＳ２１に戻り、以下、同様の処理が繰り返される。一方、ストリームデータ処理部１８が、4bitsの値が0b0010であると判定した場合、処理はステップＳ３１に進む。
【００７４】
ステップＳ３１において、ストリームデータ処理部１８は、処理の対象となっているＡＶストリームに含まれているPTSの位置を表す位置情報を生成する。具体的には、ストリームデータ処理部１８は、ステップＳ３０で4bitsの値が0b0010であると判定したbitsの、次の3bitsをPTS[32〜30]として抽出し、その次の1bitをスキップして、次の15bitsをPTS[29〜15]として抽出し、その次の1bitスキップして、次の15bitsをPTS[14〜0]として抽出して、それらのPTS[32〜0]を位置情報とする。
【００７５】
ステップＳ３１の処理後、PTSの位置情報を抜き出す処理は終了される。
【００７６】
次に、図５は、図３のステップＳ１５におけるI-PicureのIndicatorの位置情報を抜き出す処理を説明するフローチャートである。
【００７７】
ストリームデータ処理部１８は、復号部１７から供給されるＡＶストリームに含まれているビットの先頭から順に処理の対象とし、ステップＳ４１において、8bitごとに、ビットの値が0x000001に一致しているかを確認する。
【００７８】
ステップＳ４１の処理後、処理はステップＳ４２に進み、ストリームデータ処理部１８は、ステップＳ４１での確認の結果、ビットの値が0x000001に一致しているか否かを判定する。
【００７９】
ステップＳ４２において、ストリームデータ処理部１８が、ビットの値が0x000001に一致していないと判定した場合、処理はステップＳ４１に戻り、以下、同様の処理が繰り返される。一方、ストリームデータ処理部１８が、ビットの値が0x000001に一致していると判定した場合、処理はステップＳ４３に進み、ストリームデータ処理部１８は、次の8bitsを確認する。
【００８０】
ステップＳ４３の処理後、処理はステップＳ４４に進み、ストリームデータ処理部１８は、ステップＳ４３での確認の結果、その8bitsの値が0x00であるか否かを判定する。
【００８１】
ステップＳ４４において、ストリームデータ処理部１８が、8bitsの値が0x00でないと判定した場合、処理はステップＳ４１に戻り、以下、同様の処理が繰り返される。一方、ストリームデータ処理部１８が、8bitsの値が0x00であると判定した場合、処理はステップＳ４５に進み、ストリームデータ処理部１８は、次の10bitsの、その次の3bitsを確認する。
【００８２】
ステップＳ４５の処理後、処理はステップＳ４６に進み、ストリームデータ処理部１８は、ステップＳ４５での確認の結果、その3bitsの値が0b001であるか否かを判定する。
【００８３】
ステップＳ４６において、ストリームデータ処理部１８が、3bitsの値が0b001でないと判定した場合、処理はステップＳ４１に戻り、以下、同様の処理が繰り返される。一方、ストリームデータ処理部１８が、3bitsの値が0b001であると判定した場合、処理はステップＳ４７に進む。
【００８４】
ステップＳ４７において、ストリームデータ処理部１８は、I-PicureのIndicatorの位置情報を生成する。例えば、ストリームデータ処理部１８は、処理が開始されてからのパケット数をカウントしており、ステップＳ４６で3bitsの値が0b001であると判定したパケットのカウント数をI-PicureのIndicatorの位置情報として生成する。
【００８５】
ステップＳ４７の処理後、処理はステップＳ４８に進み、ストリームデータ処理部１８は、処理の対象となっているストリームが終了したか否を判定する。例えば、ストリームデータ処理部１８は、復号部１７からのストリームの供給が停止し、そのストリームの全てのビットを確認した場合、ストリームが終了したと判定する。
【００８６】
ステップＳ４８において、ストリームデータ処理部１８が、処理の対象となっているストリームが終了していないと判定した場合、処理はステップＳ４１に戻り、以下、同様の処理が繰り返される。一方、ストリームデータ処理部１８が、処理の対象となっているストリームが終了したと判定した場合、I-PicureのIndicatorの位置情報を抜き出す処理は終了される。
【００８７】
なお、図１のコンテンツ処理装置１１は、通信コントローラ１２が受信した暗号化ＡＶストリームが、CPU１３を介して、暗号化ストリーム処理回路１６の復号部１７に供給されるように構成されている。また、コンテンツ処理装置１１は、暗号化部１９が暗号化した暗号化ＡＶストリームが、CPU１３を介して、ディスクコントローラ１４に供給されるように構成されている。コンテンツ処理装置１１は、このような構成以外の構成にしてもよい。
【００８８】
即ち、図６は、コンテンツ処理装置１１の他の実施の形態の構成例を示すブロック図である。図６のコンテンツ処理装置１１は、通信コントローラ１２と復号部１７とがバスを介して接続されるように構成されており、通信コントローラ１２は、暗号化ＡＶストリームを受信すると、復号部１７に直接供給する。
【００８９】
また、図７は、コンテンツ処理装置１１のさらに他の実施の形態の構成例を示すブロック図である。図７のコンテンツ処理装置１１は、暗号化部１９とディスクコントローラ１４とがバスを介して接続されるように構成されており、暗号化部１９は、暗号化ＡＶストリームをディスクコントローラ１４に直接供給する。
【００９０】
また、図８は、コンテンツ処理装置１１のさらに他の実施の形態の構成例を示すブロック図である。図８のコンテンツ処理装置１１は、通信コントローラ１２と復号部１７とがバスを介して接続されるとともに、暗号化部１９とディスクコントローラ１４とがバスを介して接続されるように構成されている。通信コントローラ１２は、暗号化ＡＶストリームを受信すると、復号部１７に直接供給し、暗号化部１９は、暗号化ＡＶストリームをディスクコントローラ１４に直接供給する。
【００９１】
図６乃至図８に示されているように、コンテンツ処理装置１１は、CPU１３の外部の暗号化ストリーム処理回路１６において、暗号化ＡＶストリームの処理が行われるように構成されていれば、暗号化ストリーム処理回路１６への暗号化ＡＶストリームの入出力が、どのように行われていてもよい。
【００９２】
なお、本実施の形態においては、コンテンツ処理装置１１が、ネットワークを介して配信されているＡＶストリームを受信して記録する場合について説明したが、例えば、コンテンツ処理装置１１は、記録部１５に記録されているＡＶストリームをネットワークを介して送信（配信）することができる。この場合、記録部１５に記録されている暗号化ＡＶストリームが、ディスクコントローラ１４により読み出され、CPU１３を介して暗号化ストリーム処理回路１６に供給される。そして、暗号化ストリーム処理回路１６において、例えば、DTCP Descriptorを書き換える処理や、タイムスタンプを削除する処理が行われて、CPU１３および通信コントローラ１２を介して送信される。
【００９３】
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【００９４】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【００９５】
１１  コンテンツ処理装置，  １２  通信コントローラ，  １３  CPU，  １４  ディスクコントローラ，  １５  記録部，  １６  暗号化ストリーム処理回路，  １７  復号部，  １８  ストリームデータ処理部，  １９  暗号化部
【図１】
0005476754.tif 000002
【図２】
0005476754.tif 000003
【図３】
0005476754.tif 000004
【図４】
0005476754.tif 000005
【図５】
0005476754.tif 000006
【図６】
0005476754.tif 000007
【図７】
0005476754.tif 000008
【図８】
0005476754.tif 000009