(57)【特許請求の範囲】
【請求項１】
複数のデータ・フレームを含むデータ・ストリームをエンコードする方法であって：
・前記複数のデータ・フレームのうちからのN個の相続くデータ・フレームのブロックおよび構成情報の暗号学的値を、暗号学的ハッシュ関数を使って生成する段階であって、前記構成情報は前記データ・ストリームをレンダリングするための情報を含む、段階と；
・前記暗号学的値を、前記N個の相続くデータ・フレームの後の前記データ・ストリーム中のフレームに挿入する段階と；
・前記ブロックの前記N個の相続くフレームの各フレームの中間的な暗号学的値を、開始状態を使って逐次反復的に生成する段階であって、前記開始状態は、前記ブロックの直前のフレームの中間的な暗号学的値であり、前記ブロックの最初のフレームの開始状態は前記構成情報の中間的な暗号学的値であり、前記暗号学的値は前記ブロックのN番目のフレームの中間的な暗号学的値である、段階とを含む、
方法。
【請求項２】
請求項１記載の方法であって、さらに：
・ある数N個の相続くデータ・フレームをグループ化して第一のメッセージを形成する段階と；
・前記第一のメッセージを前記構成情報とグループ化して第二のメッセージを形成する段階とを含み、
前記暗号学的値は前記第二のメッセージについて生成される、
方法。
【請求項３】
請求項１記載の方法であって、前記暗号学的値がデータ・ストリーム・エレメント<DSE>として挿入され、前記データ・ストリーム・エレメント<DSE>は前記データ・ストリームのフレームのシンタックス・エレメントであり、前記データ・ストリームはMPEG4-AACまたはMPEG2-AACストリームである、
方法。
【請求項４】
請求項１記載の方法であって、前記フレームの数Nが1より大きい、方法。
【請求項５】
請求項１記載の方法であって、前記データ・フレームがビデオおよび／またはオーディオ・フレームである、方法。
【請求項６】
請求項１記載の方法であって、前記データ・フレームがAACまたはHE-AACフレームである、方法。
【請求項７】
請求項１記載の方法であって、前記構成情報が：
・サンプリング・レートの指標；
・オーディオ符号化システムのチャンネル構成の指標：
・データ・フレーム中のサンプル数の指標
のうちの少なくとも一つを含む、方法。
【請求項８】
請求項１記載の方法であって、前記暗号学的値が鍵値を使って生成される、方法。
【請求項９】
請求項８記載の方法であって、暗号学的値を生成する段階が：
・前記N個の相続くデータ・フレームのブロックおよび前記構成情報のHMAC-MD5値を計算することを含む、
方法。
【請求項１０】
請求項９記載の方法であって、暗号学的値を生成する段階が：
・前記HMAC-MD5値を打ち切って前記暗号学的値を与えることを含む、
方法。
【請求項１１】
請求項１０記載の方法であって、前記HMAC-MD5値が打ち切られて16、24、32、48、64、80、96または112ビットにされる、方法。
【請求項１２】
請求項１記載の方法であって、N個の相続くデータ・フレームのブロックの前記暗号学的値が次のデータ・フレームに挿入される、方法。
【請求項１３】
請求項１記載の方法であって、
・前記N個の相続くデータ・フレームのブロックの後に同期指標を挿入する段階をさらに含み、前記同期指標は前記暗号学的値が挿入されたことを示す、
方法。
【請求項１４】
請求項１記載の方法であって、前記データ・ストリーム・エレメント<DSE>が、<TERM>エレメントに先立って当該フレームの末尾に挿入される、方法。
【請求項１５】
請求項１記載の方法であって、前記データ・ストリーム・エレメント<DSE>の内容が、前記データ・ストリームのバイト境界に整列される、方法。
【請求項１６】
請求項１記載の方法であって、前記暗号学的値を生成する段階および挿入する段階が、N個の相続くデータ・フレームからなる複数のブロックについて反復される、方法。
【請求項１７】
請求項１６記載の方法であって、N個の相続くデータ・フレームのブロックの暗号学的値が、N個の相続くデータ・フレームの直前のブロックの暗号学的値を含む、N個の相続くデータ・フレームのブロックに対して生成される、方法。
【請求項１８】
請求項１記載の方法であって、
・前記N個の相続くフレームのブロックが、適切な構成をもって再生されるときに、対応する信号の所定の継続時間にできるだけ近い継続時間をカバーするよう、Nを選択することを含む、
方法。
【請求項１９】
請求項１８記載の方法であって、
・前記所定の継続時間を超えないようにNを選択することを含む、
方法。
【請求項２０】
請求項１８記載の方法であって、前記所定の継続時間が0.5秒である、方法。
【請求項２１】
請求項５記載の方法であって、
・前記データ・ストリームのビデオおよび／またはオーディオ・エンコーダと相互作用することをさらに含む、
方法。
【請求項２２】
請求項２１記載の方法であって、前記データ・ストリームのビデオおよび／またはオーディオ・エンコーダと相互作用することが：
・前記暗号学的値を含む前記データ・ストリームのビットレートが所定の値を超えないよう前記ビデオおよび／またはオーディオ・エンコーダについての最大ビットレートを設定することを含む、
方法。
【請求項２３】
複数のデータ・フレームと、N個の相続くデータ・フレームのブロックに関連付けられた暗号学的値とを含むデータ・ストリームを、デコーダにおいて検証する方法であって：
・前記N個の相続くデータ・フレームのブロックおよび構成情報の第二の暗号学的値を、暗号学的ハッシュ関数を使って生成する段階であって、前記構成情報は前記データをレンダリングするための情報を含み、前記第二の暗号学的値の生成は、前記ブロックの前記N個の相続くフレームの各フレームの中間的な第二の暗号学的値を、開始状態を使って生成することを含み、前記開始状態は、前記ブロックの直前のフレームの中間的な第二の暗号学的値であり、前記ブロックの最初のフレームの開始状態は前記構成情報の中間的な第二の暗号学的値であり、前記第二の暗号学的値は前記ブロックのN番目のフレームの中間的な第二の暗号学的値である、段階と；
・前記データ・ストリームのフレームから前記暗号学的値を抽出する段階と；
・前記暗号学的値を前記第二の暗号学的値と比較する段階とを含む、
方法。
【請求項２４】
請求項２３記載の方法であって、前記データ・ストリームがMPEG4-AACまたはMPEG2-AACストリームであり、前記暗号学的値がデータ・ストリーム・エレメント<DSE>から抽出され、前記データ・ストリーム・エレメント<DSE>は前記データ・ストリームのフレームのシンタックス・エレメントである、
方法。
【請求項２５】
請求項２３記載の方法であって、
・前記N個の相続くデータ・フレームを抽出して第一のメッセージを形成する段階と；
・前記第一のメッセージを前記構成情報とグループ化して第二のメッセージを形成する段階とをさらに含み、
前記第二の暗号学的値が前記第二のメッセージについて生成される、
方法。
【請求項２６】
請求項２３記載の方法であって、前記データ・ストリームが、N個の相続くデータ・フレームのブロックおよび関連付けられた暗号学的値を複数含み、当該方法がさらに：
・前記数Nを、ある暗号学的値から次の暗号学的値までの間のフレーム数として決定する段階を含む、
方法。
【請求項２７】
請求項２３記載の方法であって、前記暗号学的値が、前記N個の相続くデータ・フレームのブロックおよび前記構成情報から、前記第二の暗号学的値を生成するために使われる前記方法に対応する方法に従って、対応するエンコーダにおいて生成されたものである、方法。
【請求項２８】
請求項２７記載の方法であって、
・前記暗号学的値および前記第二の暗号学的値が一意的な鍵値および一意的な暗号学的ハッシュ関数を使って生成される、
方法。
【請求項２９】
請求項２３記載の方法であって、
・前記暗号学的値が前記第二の暗号学的値に対応する場合にフラグをセットする段階と；
・前記フラグがセットされている場合に視覚的指示を提供する段階とを含む、
方法。
【請求項３０】
請求項２３記載の方法であって、
・前記暗号学的値が前記第二の暗号学的値に対応しない場合、または前記データ・ストリームから暗号学的値が抽出できない場合に、フラグをクリアする段階をさらに含む、
方法。
【請求項３１】
複数のデータ・フレームを含むデータ・ストリームをエンコードするよう動作可能な、プロセッサを有するエンコーダであって、前記プロセッサは：
・前記複数のデータ・フレームのうちからのN個の相続くデータ・フレームのブロックおよび構成情報の暗号学的値を、暗号学的ハッシュ関数を使って生成する段階であって、前記構成情報は前記データ・ストリームをレンダリングするための情報を含む、段階と；
・前記暗号学的値を、前記N個の相続くデータ・フレームの後の前記データ・ストリームのフレーム中に挿入する段階と；
・前記ブロックの前記N個の相続くフレームの各フレームの中間的な暗号学的値を、開始状態を使って逐次反復的に生成する段階であって、前記開始状態は前記ブロックの直前のフレームの中間的な暗号学的値であり、前記ブロックの最初のフレームの開始状態は前記構成情報の中間的な暗号学的値であり、前記暗号学的値は前記ブロックのN番目のフレームの中間的な暗号学的値である、段階とを実行するよう動作可能である、
エンコーダ。
【請求項３２】
複数のデータ・フレームおよびN個の相続くデータ・フレームのブロックに関連付けられた暗号学的値を含むデータ・ストリームを検証するよう動作可能な、プロセッサを有するデコーダであって、前記プロセッサは：
・前記N個の相続くデータ・フレームのブロックおよび構成情報の第二の暗号学的値を、暗号学的なハッシュ関数を使って生成する段階であって、前記構成情報は前記データをレンダリングするための情報を含み、前記第二の暗号学的値の生成は、前記ブロックの前記N個の相続くフレームの各フレームの中間的な第二の暗号学的値を、開始状態を使って生成することを含み、前記開始状態は、前記ブロックの直前のフレームの中間的な第二の暗号学的値であり、前記ブロックの最初のフレームの開始状態は前記構成情報の中間的な第二の暗号学的値であり、前記第二の暗号学的値は前記ブロックのN番目のフレームの中間的な第二の暗号学的値である、段階と；
・前記データ・ストリームのフレームから前記暗号学的値を抽出する段階と；
・前記暗号学的値を前記第二の暗号学的値と比較する段階とを実行するよう動作可能である、
デコーダ。
【請求項３３】
プロセッサ上での実行のため、および、コンピューティング・デバイス上で実行されたときに請求項１ないし２２のうちいずれか一項記載の方法の段階を実行するために適応されたソフトウェア・プログラム。
【請求項３４】
プロセッサ上での実行のため、および、コンピューティング・デバイス上で実行されたときに請求項２３ないし３０のうちいずれか一項記載の方法の段階を実行するために適応されたソフトウェア・プログラム。
【請求項３５】
プロセッサ上での実行のため、および、コンピューティング・デバイス上で実行されたときに請求項１ないし２２のうちいずれか一項記載の方法の段階を実行するために適応されたソフトウェア・プログラムを含む記憶媒体。
【請求項３６】
プロセッサ上での実行のため、および、コンピューティング・デバイス上で実行されたときに請求項２３ないし３０のうちいずれか一項記載の方法の段階を実行するために適応されたソフトウェア・プログラムを含む記憶媒体。
【請求項３７】
オーディオ信号を含む受信されたデータ・ストリームをデコードするためのセットトップボックスであって、前記受信されたデータ・ストリームを検証するために請求項３２記載のデコーダを有する、セットトップボックス。
【請求項３８】
オーディオ信号を含む受信されたデータ・ストリームをデコードするためのポータブル電子装置であって、前記受信されたデータ・ストリームを検証するために請求項３２記載のデコーダを有する、ポータブル電子装置。
【請求項３９】
オーディオ信号を含む受信されたデータ・ストリームをデコードするためのコンピュータであって、前記受信されたデータ・ストリームを検証するために請求項３２記載のデコーダを有する、コンピュータ。
【請求項４０】
オーディオ信号を含むデータ・ストリームを送信する放送システムであって、請求項３１記載のエンコーダを有する、放送システム。
【請求項４１】
第一および第二のビットストリームを連結する方法であって、各ビットストリームは、複数のデータ・フレームおよび所与の数のデータ・フレームに関連付けられた暗号学的値を含み、
・前記第一および第二のビットストリームから連結されたビットストリームを生成する段階を含んでおり、前記連結されたビットストリームは、前記第一および第二のビットストリームからの前記複数のデータ・フレームの少なくとも一部を含み、請求項１ないし２２のうちいずれか一項記載の方法に基づいて生成および挿入された暗号学的値を含む、
方法。
【請求項４２】
第一および第二のビットストリームを連結するよう動作可能な接合器であって、各ビットストリームは、複数のデータ・フレームおよび所与の数のデータ・フレームに関連付けられた暗号学的値を含み、
・前記第一のビットストリームの最後の諸フレームおよび前記第二のビットストリームの最初の諸フレームをエンコードするために請求項３１記載のエンコーダを有する、
接合器。
【請求項４３】
請求項４２記載の接合器であって、
・デコードおよびエンコードされない、前記第一および第二のビットストリームのフレームおよび関連付けられた暗号学的値を先に送るための転送ユニットをさらに有する、
接合器。
【請求項４４】
請求項４２または４３記載の接合器であって、
前記第一のビットストリームの最後の諸フレーム、前記第二のビットストリームの最初の諸フレームおよび関連付けられた暗号学的値をデコードして、前記第一および第二のビットストリームの信頼状態を判別するための、請求項３２記載のデコーダと；
対応する第一または第二のビットストリームが認証された場合にのみ、前記エンコーダが、そのビットストリームの一部の中に暗号学的値を挿入することができるようにする制御ユニットとをさらに有する、
接合器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・ストリームの認証および検証のための技法に関する。特に、本発明は、ドルビー・パルス、AACまたはHE  AACビットストリームのようなデータ・ストリームへの識別子の挿入ならびにそのような識別子に基づくデータ・ストリームの認証および検証に関する。
【背景技術】
【０００２】
デジタル・テレビおよびラジオ・システムが普及してくるとともに、たとえばビデオ・データおよび／またはオーディオ・データを含むデータ・ストリームがますます頻繁に放送されている。実際のビデオおよび／またはオーディオ・コンテンツに加えて、そのようなデータ・ストリームはさらに、たとえばプログラムのラウドネスおよびダイナミックレンジの受信機側での制御や、ステレオ・ダウンミックスおよびその他の機能の制御を許容するメタデータを含む。
【０００３】
典型的なネットワーク・シナリオでは、ビデオ・フレームおよび／またはオーディオ・フレームおよびその関連付けられたメタデータは放送ヘッドエンド・システムにおいてエンコードされる。この目的のためには、ドルビーE、ドルビー・デジタル、AAC、HE  AAC、DTSまたはドルビー・パルスといったさまざまなエンコード方式が使用されうる。これらのエンコード方式の一部、特にドルビー・パルス、AACおよびHE  AACは、電波（たとえばFM周波数帯域、DVB/T、ATSC）、ねじれ銅線（DSL）、同軸ケーブル（たとえばCATV）または光ファイバーといった、さまざまな伝送媒体を通じた伝送のために特に好適である。受信機、たとえばテレビ・セット、ラジオ受信機、パーソナル・コンピュータまたはセットトップボックスは、適切なデコーダを有し、デコードされたメディア・ストリームを提供する。さらに、受信機は通例、ビデオおよび／またはオーディオ・データに付随するメタデータを介して信号伝達される制御機能を提供する。
【０００４】
符号化／復号方式の例は、MPEG-4  AACについては非特許文献１において、MPEG-2  AACについては非特許文献２において規定されている。これらの文献はここに参照によって組み込まれる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ISO/IEC14496-3(2005)、"Information  technology  --  Coding  of  audio-visual  objects  --  Part3:  Audio"
【非特許文献２】ISO/IEC13818-7(2003)、"Genetic  Coding  of  Moving  Pictures  and  Associated  Audio  information  --  Part7:  Advanced  Audio  Coding  (AAC)"
【発明の概要】
【発明が解決しようとする課題】
【０００６】
認証および／または識別のためのいくつかの技法が知られている。いくつかは、符号化されるマルチメディア・データ内に認証および／または識別データを埋め込むことに依拠する。これらの技法は、透かし入れとしても知られており、著作権保護のために特に設計されている。認証および／または識別のためのさらなる技法は、デジタル署名であり、デジタル署名では、電子メールのようなデータ・ファイルとともに別個の認証データが与えられ、デコーダにおいて、認証および識別目的のために使われる。
【０００７】
データ・ストリームの受信機がデータ・ストリームのエンコーダを識別できるためには、データ・ストリームとともに認証手段を提供することが望ましい。また、データ・ストリームの完全性を検証することも有益でありうる。さらに、再生または処理されるべきデータ・ストリームに関して、受信機の正しい構成を保証することが有益でありうる。さらに、適正に認証および／または検証されたデータ・ストリームについての付加価値サービスまたは特別な制御機能の実装を許容することが有益でありうる。これらおよびその他の問題が本願の特許文書において対処される。
【課題を解決するための手段】
【０００８】
提案される方法およびシステムは、データ・ストリーム内のメタデータとして提供されうる識別子を利用する。そのようなデータ・ストリームは好ましくは、有線または無線伝送媒体を通じて伝送されるデータ・ストリームであるが、そのようなデータ・ストリームはまた、CD、DVDまたはフラッシュ・メモリのようなデータ記憶媒体上で提供されてもよい。識別子は、受信側のデコーダが、受信するデータ・ストリームが信頼されるエンコーダ、すなわち送信および／またはエンコード側における正当な（legitimate）エンコーダからのものであるか否かを検証できるようにする。そのような検証は、デコーダが種々の型のエンコーダに対応する場合に特に有益でありうる。たとえば、ドルビー・パルス・デコーダはHE-AACバージョン２エンコーダに対応しうる。そのようなシナリオでは、ドルビー・パルス・デコーダが、ある種の追加的な非標準または非義務的な特徴を、トラフィック、すなわちデータ・ストリームが適切なドルビー・パルス・エンコーダから発している場合にのみ、提供できるようにすることが望ましいことがありうる。そのような識別子を使うことによって、ドルビー・パルス・デコーダは、適切なドルビー・パルス・エンコーダによって生成されたデータ・ストリームまたはビットストリームと、任意のHE-AACv2準拠エンコーダによって生成されたデータ・ストリームまたはビットストリームの間の区別をすることができるようになる。よって、追加的な機能、たとえば動的メタデータの使用は、データ・ストリームが信頼されるエンコーダから発している場合にのみデコーダによって考慮される。これを行うことによって、追加的な機能が正しくはたらくことを保証できる。
【０００９】
前記識別子のさらなる恩恵は、デコーダが、ビットストリームが正しい仕方で受信され、ビットストリームが伝送途中で修正されたり工作されたりしていないことを検証できるようにしうるということである。換言すれば、識別子は、デコーダが、受信ビットストリームの完全性（integrity）を検証できるようにする。
【００１０】
さらに、識別子は、デコーダが、メディア／マルチメディア信号を適切にレンダリングするために正しい処理、たとえば再生の構成に向けて設定されていることを保証するために使用されうる。たとえば、そのような構成は、メディア信号が再生されるサンプリング周波数に向けられてもよい。そのような構成はまた、再生のために使われるチャンネル構成、たとえば２チャンネル・ステレオ、種々のサラウンド・サウンド設定などに向けられていてもよい。さらなる構成側面は、特定の符号化方式において使用されるフレーム長、たとえばAACの場合は1024サンプル・フレームまたは960サンプル・フレームに向けられていてもよい。
【００１１】
エンコーダ識別および認証目的とは別に、前記識別子は、データ・ストリームのペイロードの真正性（authenticity）を検証するために使われてもよい。この目的のために、識別子は簡単に偽造可能であるべきではなく、保護されたセグメントの操作は識別可能であるべきである。さらに、デコーダがビットストリームの真正性を、比較的短い時間間隔で識別することが望ましい。デコーダまたは復号装置がストリーミングしているときに真正なビットストリームを識別できるまでの最大時間が１秒を超えないことが好ましい。さらに、デコーダにおける識別子の検証によって導入される複雑さは低く保たれるべきである。すなわち、デコーダの計算量の増加は無視できるべきである。さらに、識別子によって導入される伝送オーバーヘッドは低く保たれるべきである。
【００１２】
ある実施形態によれば、上記の恩恵は、以下の方法に従って導出される暗号学的値（cryptographic  value）または識別子（identifier）を利用することによって達成されうる。識別子は、エンコーダにおいて、一つまたは複数のデータ・フレームの群に一方向性関数を適用することによって決定されうる。フレームは典型的には、オーディオ・ストリームおよび／またはビデオ・ストリームのあるセグメント、たとえばメディア・ストリームの所与の数のサンプルを含むセグメントに関連付けられたデータを含む。例として、オーディオ・ストリームのフレームは、オーディオ・データの1024個のサンプルおよび対応するメタデータを含んでいてもよい。
【００１３】
上述したように、識別子を決定する目的のために、ある数のフレームが群〔グループ〕にまとめられる。各群内のフレームの数はエンコーダによって選択されてもよく、典型的にはデコーダが前もって知っておく必要はない。一方向性関数は好ましくはHMAC-MD5（hash  message  authentication  code［ハッシュ・メッセージ認証コード］）という暗号学的なハッシュ関数である。ただし、MD5の代わりにSHA-1のような他のハッシュ関数が使用されてもよい。適切な暗号学的ハッシュ関数を選択するための可能な基準は、そのサイズであってもよく、サイズは、必要とされる伝送オーバーヘッドを減らすために、小さく保たれるべきである。暗号学的ハッシュ関数のサイズは典型的にはそのビット数によって与えられる。
【００１４】
ひとたびフレームの群についての識別子がたとえばHMAC-MD5手順を使って計算されたら、その識別子は、次のフレーム群のフレームに関連付けられてもよい。たとえば、次のフレーム群のあるフレーム中に挿入されてもよい。例として、識別子は、そのフレームのデータ・フィールドまたはシンタックス・エレメント中に書き込まれてもよい。好ましくは、識別子は後続フレーム群の最初のフレーム中に挿入される。これは、エンコーダ／デコーダに追加的なレイテンシを導入することなく、識別子が一パスの動作として計算されることを許容する。これはリアルタイムのメディア伝送にとっては特に有益である。この識別子を含むデータ・ストリームは次いで対応する受信機／デコーダに伝送されうる。
【００１５】
受信機では、挿入された識別子はエンコーダ識別（identification）、認証（authentication）、検証（verification）および／または構成（configuration）目的のために使用されてもよい。受信機は典型的には、一群のフレームに同期しうる、すなわち識別子を含むフレームを判別しうるデコーダを有する。識別子を含む二つの相続くフレームの間の距離に基づいて、識別子を計算するために使われたフレーム群当たりのフレーム数が判別されうる。換言すれば、これは、デコーダが、対応するエンコーダからの通知なしに、フレーム群の長さを判別することを許容しうる。
【００１６】
デコーダは、受信されたフレーム群について前記識別子を計算してもよい。受信されたフレーム群に基づいて計算された識別子は、検証識別子と称されうる。識別子が後続のフレーム群の最初のフレーム中に挿入されるとすると、各フレーム群は、直前のフレーム群についての識別子を含む第一フレームをもって始まり、現在のフレーム群についての識別子を含む次のフレームの直前のフレームで終わる。現在のフレーム群について、検証識別子は、上で概説した方法に従って計算されうる。
【００１７】
さらなるステップにおいて、デコーダは、後続フレーム群の対応するフレームからエンコーダによって伝送された識別子を抽出してもよい。ここでもまた、エンコーダにおいて識別子が後続フレーム群の第一フレーム中に挿入されるとすると、受信機もこの第一フレームから識別子を抽出する。データ・ストリームから取り出されたこの識別子は、検証識別子、すなわち受信されたデータ・ストリームに基づいてデコーダによって計算された識別子と比較されてもよい。両方の識別子が一致する場合、デコーダは典型的には、伝送中にエラーが発生しておらず、フレーム群は損なわれることなく受信されており、フレーム群は伝送中に修正されておらず、フレーム群は、信頼されるおよび／または正当なエンコーダからのものであると想定できる。さらに、両方の識別子が一致する場合、デコーダは、任意のビットストリームがデコードされるときには有効にされない一つまたは複数のコーデック固有の機能または改善を有効にすることを選択してもよい。例として、デコーダがドルビー・パルス固有のビットストリームを同定した場合、追加的なサービスが有効にされることができる。一方、そのような追加されるサービスは、標準的なHE-AACバージョン２のエンコードされたビットストリームについては利用可能とはならない。にもかかわらず、デコーダは、追加的なサービスを使うことなく、標準的なHE-AACバージョン２のエンコードされたビットストリームをデコードすることを可能にされてもよい。
【００１８】
さらに、識別子は、メディア・ストリームを正しくデコードするおよび／または再生するための適切な構成がデコーダにおいて設定されることを保証することを可能にされてもよい。そのような場合、一致する検証識別子と伝送された識別子は、デコーダが正しい構成設定を使っていることを示すことになる。
【００１９】
他方、それらの識別子、すなわち検証識別子と伝送された識別子が一致しない場合、デコーダは伝送中にエラーが発生した、フレーム群が無傷で受信されなかった、フレーム群が伝送中に修正された、あるいはフレーム群が信頼されるエンコーダからのものでなかったことを知ることになる。そのような場合、デコーダは完全に無効にされてもよいし、あるいは特定の機能または改善が無効にされてもよい。
【００２０】
識別子は、誤った構成設定が設定されていたことをデコーダに通知するために使用されてもよい。そのような場合、検証識別子と伝送された識別子の間の不一致は、フレーム群は無傷で、かつ信頼されるエンコーダから受信されたにも拘わらずデコーダが誤った構成設定を使っているという事実に起因することがありうる。そのような場合、デコーダは、検証識別子が伝送された識別子と一致するまで、その構成設定を修正し、対応する検証識別子を決定するよう動作可能であってもよい。これはデコーダが実際にその構成を、受信されたビットストリームの要求に合わせて設定することを可能にする。
【００２１】
以下では、提案される方法の種々の側面が記述される。第一の側面によれば、複数のデータ・フレームを含むデータ・ストリームをエンコードする方法が記述される。データ・ストリームはオーディオ、ビデオおよび／または他のメディアおよびマルチメディア・ストリームであってもよい。特に、データ・ストリームは、ドルビー・パルス、AACまたはHE-AACデータ・ストリームであってもよい。これらのデータ・ストリームは典型的には、ある数のデータ・サンプルを含み該データ・ストリームのあるセグメントをカバーするデータ・フレームの形に編成される。例として、フレームは、44.1kHzのサンプリング・レートでサンプリングされたオーディオ信号の1024個のサンプルを含んでいてもよい。すなわち、そのフレームは約23msのセグメントをカバーする。サンプルは一定または可変のビットレートでエンコードされてもよく、フレーム内の実際のビット数は変動してもよいことを注意しておくべきである。
【００２２】
本方法は、N個の相続くデータ・フレームをグループ化して第一のメッセージを形成する段階を含んでいてもよい。相続くデータ・フレームの数Nは典型的には、データ・レート・オーバーヘッドの配慮に鑑みて選ばれる。通例、数Nが増すとともにオーバーヘッドは減少する。Nは好ましくは1より大きい。Nについての典型的な値は約20である。ある好ましい実施形態では、Nは、N個の相続くフレームが、適切なデコーダ構成をもつ対応するデコーダにおいて再生されたときに対応する信号の0.5秒をカバーするよう選択されてもよい。グループ化するステップは、その自然な順序、すなわちストリームする順序で前記N個の相続くフレームを連結することを含んでいてもよいことを注意しておくべきである。
【００２３】
さらなるステップにおいて、第一のメッセージは構成情報とグループ化されて第二のメッセージを形成してもよい。そのような構成情報は、データ・ストリーム外部の情報を含み、それは典型的にはデータ・ストリームに、特に受信機側でデータ・ストリームをレンダリングするための情報に関係している。構成情報は、データ・ストリームを処理するために使用されるべき対応する受信機および／またはデコーダの設定に関する情報を含んでいてもよい。そのような構成情報は典型的には、伝送されたり、データ・ストリーム中に含められたりしないので、帯域外〔アウトオブバンド〕（out-of-band）データとも称されてもよい。これは、帯域内〔インバンド〕（in-band）データとも称されてもよいデータ・ストリームに対するものである。
【００２４】
構成情報は、さまざまな仕方で第一のメッセージとグループ化されうる。第一のメッセージと連結されてもよい。すなわち、第一のメッセージの先頭および／または末尾に置かれてもよい。構成情報はまた、第一のメッセージ内のある位置に、たとえば相続くフレームの一部または全部の間に置かれてもよい。
【００２５】
構成情報についての典型的な例は、根底にあるアナログ・メディア・ストリームをサンプリングするために使われたサンプリング・レートの指示を含む。構成情報はまた、モノ、二チャンネル・ステレオまたは5.1サラウンド・サウンド・チャンネル構成といった、オーディオ符号化システムのチャンネル構成の指示をも含んでいてもよい。データ・フレーム中のサンプル数、たとえばデータ・フレーム当たり960、1024または2048個のサンプル、の指示をも含んでいてもよい。
【００２６】
本方法はさらに、第一および／または第二のメッセージの暗号学的値を生成する段階を含む。暗号学的値は識別子とも称されうる。暗号学的値は、鍵値および暗号学的ハッシュ関数を使って生成されてもよい。特に、暗号学的値は第一および／または第二のメッセージについてHMAC-MD5値を計算することによって生成されてもよい。さらに、暗号学的値の生成は、HMAC-MD5値を打ち切る、たとえば16、24、32、48または64ビットまでで打ち切ることを含んでいてもよい。これは、データ・ストリームにおいて暗号学的値についての必要とされるオーバーヘッドを減らす観点で有益となりうる。
【００２７】
さらに、本方法は、前記暗号学的値を、前記N個の相続くデータ・フレームの後でデータ・ストリーム中に挿入することを含む。好ましくは、対応するデコーダにおける高速の復号およびエンコーダ認証および検証を許容するために、前記暗号学的値は、前記N個の相続くデータ・フレームに続く最初のフレーム中に挿入される。前記N個の相続くデータ・フレームの後に、同期指示をも挿入することが有益でありうる。ここで、前記同期指示は、前記暗号学的値が挿入されたことを示す。対応するデコーダにおける前記暗号学的値の便利な抽出を許容するために、そのような同期指示は、前記暗号学的値の近辺に置かれてもよい。
【００２８】
ある例示的な実施形態では、前記データ・ストリームはMPEG4-AACまたはMPEG2-AACのストリームであり、前記暗号学的値はデータ・ストリーム・エレメント（data  stream  element）<DSE>として挿入される。そのようなデータ・ストリーム・エレメント<DSE>は、<TERM>エレメントに先立ってフレームの末尾に挿入されてもよい。さらに、対応するデコーダにおけるデータ・ストリーム・エレメント<DSE>の、特に前記暗号学的値および／または前記同期指示の抽出を単純化するために、そのようなデータ・ストリーム・エレメント<DSE>の内容は好ましくは、データ・ストリームのバイト境界に整列させられてもよい。
【００２９】
暗号学的値を生成する段階は好ましくは、N個の相続くフレームからなる群の個々のフレームに対して逐次反復的に実行されてもよい。この目的のために、前記N個の相続くフレームのそれぞれについて、開始状態を使って中間的な暗号学的値が生成されてもよい。開始状態は、前の反復工程の中間的な暗号学的値であってもよい。例として、第一のフレームについて中間的な暗号学的値が生成されてもよい。この中間的な暗号学的値は次いで、第二のフレームの中間的な暗号学的値の生成のための開始状態として使用されてもよい。このプロセスは、N番目のフレームの中間的な暗号学的値が生成されるまで繰り返される。このN番目のフレームの中間的な暗号学的値は典型的には、N個の相続くフレームの前記群の暗号学的値を表す。構成情報を考慮に入れるため、第一の反復工程の開始状態は、前記構成情報の中間的な暗号学的値であってもよい。
【００３０】
ある好ましい実施形態において、N個の相続くデータ・フレームからなるブロックの暗号学的値は、N個の相続くデータ・フレームからなる直前のブロックの暗号学的値を含む当該N個の相続くデータ・フレームのブロック上で生成される。これを行うことにより、相互に接続された暗号学的値のストリームが生成されうる。
【００３１】
もう一つの側面によれば、本方法は、データ・ストリームのビデオおよび／またはオーディオ・エンコーダと相互作用する段階を含んでいてもよい。これは、ビデオおよび／またはオーディオ・エンコードおよび暗号学的値の生成を統合された仕方でを実行することによって実装されてもよい。特に、データ・ストリームのビデオおよび／またはオーディオ・エンコーダと、暗号学的値の生成との間の相互作用は、暗号学的値を含むデータ・ストリームのビットレートが所定の値を超えないように、ビデオおよび／またはオーディオ・エンコーダについての最大ビットレートを設定することに向けられてもよい。これは、根底にあるデータ・ストリーム・コーデックが完全なデータ・ストリームについてのビットレート上限を設定している場合に特に有益でありうる。
【００３２】
あるさらなる側面によれば、デコーダおよび／または受信機においてデータ・ストリームを検証する方法が記述される。記述される方法およびシステムは伝送されるデータ・ストリームのコンテキストのほか記憶媒体上で提供されるデータ・ストリームにおいて適用可能でありうることを注意しておくべきである。上で概説したように、データ・ストリームは典型的には、複数のデータ・フレームと、N個の先行する相続くデータ・フレームに関連付けられた暗号学的値とを含む。特にNについての可能な値およびデータ・ストリームおよびそのフレームの構造について、本稿においてなされる考察を参照されたい。
【００３３】
本方法は、N個の相続くデータ・フレームを抽出して第一のメッセージを形成する段階を含む。本方法は、値Nを決定する段階をも含んでいてもよい。これは、複数N個の相続くデータ・フレームおよび関連付けられた暗号学的値を含むデータ・ストリームにおいて実行されてもよい。N個の相続くデータ・フレームがフレーム群と称されるとすると、そのようなデータ・ストリームは典型的には複数のフレーム群およびそのような各フレーム群に関連付けられた暗号学的値を含む。そのような場合、数Nは、二つの相続く暗号学的値の間のフレーム数として決定されてもよい。
【００３４】
第二の暗号学的値を計算するために使われる現在のフレーム群が、直前のフレーム群の暗号学的値を含んでいてもよいことを注意しておくべきである。あるいはまた、直前のフレーム群の暗号学的値およびもしあれば関連付けられた同期指示および／またはシンタックス・エレメントが、第二の暗号学的値を計算する前に、まず現在のフレーム群から除去されてもよい。この解決策は、変化および食い違いが、あるフレーム群から次のフレーム群に伝搬するのを防ぐために好ましいことがありうる。
【００３５】
本方法はさらに、第一のメッセージを構成情報とグループ化して第二のメッセージを形成する段階を含んでいてもよい。ここで、構成情報は典型的にはデータ・ストリームに対して外部の情報を含み、たとえばデータ・ストリームのレンダリングについてのものである。グループ化の段階および構成情報に関する種々の側面はすでに上で概説した。これらの側面はデコーダにおいても等しく適用可能である。
【００３６】
本方法は、第一および／または第二のメッセージの第二の暗号学的値を生成すること、データ・ストリームから暗号学的値を抽出すること、および該暗号学的値を前記第二の暗号学的値と比較することによって進行する。第二の暗号学的値は、検証用暗号学的値または検証識別子と称されてもよい。
【００３７】
第二の暗号学的値が、暗号学的値の生成のコンテキストで述べたような逐次反復的な仕方で生成されてもよいことを注意しておく。
【００３８】
ある好ましい実施形態では、暗号学的値は、対応するエンコーダおよび／または送信機において、N個の相続くデータ・フレームおよび構成情報から、第二の暗号学的値を生成するために使われる前記方法に対応する方法に従って生成されている。換言すれば、対応するエンコーダにおいて暗号学的値を生成する方法は、デコーダにおいて第二の暗号学的値を生成するための方法に対応する。特に、暗号学的値および第二の暗号学的値は、特有の鍵値および／または特有の暗号学的はハッシュ関数を使って生成される。
【００３９】
さらに、エンコーダにおいて暗号学的値を生成するために使われるN個の相続くフレームの集合は、デコーダにおいて第二の暗号学的値を生成するために使われるN個の相続くフレームの集合に対応する。上述したように、暗号学的値および第二の暗号学的値は、N個の相続くフレームからなる直前の集合の暗号学的値を含むまたは含まないN個の相続くフレームの集合に対して決定されうる。エンコーダおよびデコーダにおいて、同じ規則が適用されるべきである。
【００４０】
エンコーダおよびデコーダにおいて使用されるフレームの集合が同一であるべきだとしても、エンコーダおよびデコーダにおけるフレームの内容は、たとえばフレームの伝送中に受けた修正のため、あるいはデータ・ストリームの記憶媒体上のエラーのため、異なることがありうることを注意しておくべきである。
【００４１】
あるさらなる側面によれば、本方法は、暗号学的値が第二の暗号学的値に対応する場合にフラグをセットする、および／または該フラグがセットされている場合に受信機および／またはデコーダにおいて視覚的な指示を提供する段階を含んでいてもよい。同様にして、暗号学的値が第二の暗号学的値に対応しない場合、あるいは暗号学的値がデータ・ストリームから抽出されない場合、フラグおよび／または視覚的指示が除去されてもよい。これは、デコーダのユーザーおよび／またはデータ・ストリームの視聴者に、データ・ストリームの真正性についての情報を提供するのに有益でありうる。
【００４２】
もう一つの側面によれば、本特許文書において概説される諸方法に従って生成および挿入された暗号学的値を含むデータ・ストリームが記述される。
【００４３】
もう一つの側面によれば、複数のデータ・フレームを含むデータ・ストリームをエンコードするよう動作可能なエンコーダが記述される。エンコーダは、本特許文書において概説される方法段階を実行するよう動作可能である。特に、エンコーダは、N個の相続くデータ・フレームをグループ化して第一のメッセージを形成し、ここで、Nは1より大きく、第一のメッセージを構成情報とグループ化して第二のメッセージを形成し、ここで、構成情報はデータ・ストリームのレンダリング用など、データ・ストリームにとって外的な情報を含み、第二のメッセージの暗号学的値を生成し、該暗号学的値を、前記N個の相続くデータ・フレームの後で、データ・ストリーム中に挿入するよう動作可能なプロセッサを有していてもよい。
【００４４】
あるさらなる側面によれば、複数のデータ・フレームおよびN個の先行する相続くデータ・フレームに関連付けられた暗号学的値を含むデータ・ストリームを検証するよう動作可能なデコーダであって、Nが1より大きいものが記述される。本デコーダは、本特許文書において概説された方法段階を実行するよう動作可能である。特に、本デコーダは、N個の相続くデータ・フレームを抽出して第一のメッセージを形成し、第一のメッセージを構成情報とグループ化して第二のメッセージを形成し、ここで、構成情報はデータ・ストリームをレンダリングするための情報を含み、第二のメッセージの第二の暗号学的値を生成し、データ・ストリームから暗号学的値を抽出し、該暗号学的値を前記第二の暗号学的値と比較するよう動作可能である。
【００４５】
あるさらなる側面によれば、ソフトウェア・プログラムが記述される。ソフトウェア・プログラムはプロセッサ上での実行のため、および、コンピューティング・デバイス上で実行されたときに本特許文書において概説される方法段階を実行するために適応される。
【００４６】
あるさらなる側面によれば、記憶媒体が記述される。記憶媒体は、プロセッサ上での実行のため、および、コンピューティング・デバイス上で実行されたときに本特許文書において概説される方法段階を実行するために適応されたソフトウェア・プログラムを含む。
【００４７】
あるさらなる側面によれば、コンピュータ・プログラム・プロダクトが記述される。コンピュータ・プログラム・プロダクトは、コンピュータ上で実行されたときに本特許文書において概説される方法段階を実行するための実行可能命令を含む。
【００４８】
本発明のあるさらなる側面によれば、受信されたデータ・ストリームをデコードするためのセットトップボックス、ポータブル電子装置（たとえば携帯電話、PDA、スマートフォンなど）またはコンピュータ（たとえばデスクトップ・コンピュータ、ラップトップなど）が記述される。データ・ストリームはオーディオ信号を含んでいてもよい。セットトップボックスは好ましくは、本特許文書において概説される側面に基づくデコーダを含む。
【００４９】
あるさらなる側面によれば、データ・ストリームを送信する放送システムが記述される。データ・ストリームはオーディオ信号を含んでいてもよい。放送システムは好ましくは、本特許文書において概説される側面に基づくエンコーダを含む。
【００５０】
もう一つの側面によれば、接合〔スプライシング〕（splicing）点において第一および第二のビットストリームを連結する方法が記載される。二つのビットストリームのそれぞれは、複数のデータ・フレームおよび所与の数のデータ・フレームに関連付けられた暗号学的値を含んでいてもよい。第一のビットストリームは、N1個の相続くフレーム毎についての暗号学的値を含んでいてもよく、一方、第二のビットストリームは、N2個の相続くフレーム毎についての暗号学的値を含んでいてもよい。数N1およびN2は同一であってもよい。すなわち、二つのビットストリームは同じ暗号学的反復周期を有する。あるいは数N1およびN2は異なっていてもよい。すなわち、暗号学的値が何フレーム後にビットストリームに含められるかが異なっている。
【００５１】
連結方法は、第一および第二のビットストリームから連結されたビットストリームを生成する段階を含む。ここで、連結されたビットストリームは、第一および第二のビットストリームからの複数のデータ・フレームの少なくとも一部を含む。換言すれば、第二のビットストリームまたは第二のビットストリームの一部が、第一のビットストリームまたは第一のビットストリームの一部に、接合点において、取り付けられる。
【００５２】
連結されたビットストリームは、本特許文書において概説される方法に基づいて生成および挿入される暗号学的値を含む。有利には、連結されたビットストリームにおける諸暗号学的値は、ビットストリーム真正性の中断が受信機／デコーダにおいて知覚可能でないよう、接合点をなめらかにカバーする。これは、接合点後の連結されたビットストリームについて新しい暗号学的値を明示的に生成することによって達成されうる。
【００５３】
新しい暗号学的値は、接合点に始まる連結されたビットストリームのあるセクションにおける少なくともある数の相続くフレームについて生成されてもよい。場合によっては、第二のビットストリームの暗号学的値が再使用され、新しい暗号学的値が含められた前記セクションの後で、連結されたビットストリーム中にコピーされてもよい。これは特に、次の群の最初のフレームに含められる直前のフレーム群の暗号学的値が次の群の暗号学的値の計算のために考慮されず、各群が独立して扱える、すなわち暗号学的値における変化がある群から次の群へと伝搬しない場合に、当てはまる。
【００５４】
本特許文書において概説される方法に基づく暗号学的値の明示的な生成は、第一のビットストリームと第二のビットストリームの間の境界において、すなわち連結されるビットストリームに含められる、第一のビットストリームの最後の諸フレームおよび第二のビットストリームの最初の諸フレームについて、特に有益でありうる。一般に、二つのビットストリームを接合するとき、第一のビットストリームの最後のフレームの数は、典型的にはN1以下であり、および／または最初の暗号学的値が含められる前に第二のビットストリームから取られるフレームの数は典型的にはN2以下である。換言すれば、接合点は、典型的には、第一および第二のビットストリームの群境界には位置されない。
【００５５】
連結または接合方法のある側面によれば、第一のビットストリームの最後の諸フレームについて新しい暗号学的値が生成され、連結されたビットストリームの次のフレーム中に挿入される。該次のフレームは、第二のビットストリームから取られる最初のフレームである。この新しい暗号学的値は、第一のビットストリームを「完成させる」と考えられる。次いで、第二のビットストリームについて新しい暗号学的値が生成されて、適切な位置において連結されたビットストリーム中に含められてもよい。これは、第二のビットストリームから取られた最初のフレームに挿入された追加の暗号学的値なしでは、第一のビットストリームからのフレームについて生成された最後の暗号学的値と第二のビットストリームからのフレームについて生成された最初の暗号学的値との間のフレーム数が、システムによって許容される最大数を超えてしまう場合に特に有用である。
【００５６】
接合点が第一および第二のビットストリームのフレーム群と整列していない場合、接合方法は、第一および第二のビットストリームから取られたフレームを含む混合群について暗号学的値を生成してもよい。すでに述べたように、暗号学的値は典型的には、それぞれの暗号学的値を計算するために使われるフレーム群に続く次のフレームに含められる。
【００５７】
あるさらなる側面によれば、接合器および／または放送ヘッドエンドが記述される。この接合器および／または放送ヘッドエンドは、それぞれ複数のデータ・フレームおよび所与の数のデータ・フレームに関連付けられた暗号学的値を含む第一および第二のビットストリームを連結するよう動作可能である。本装置は、本特許文書において概説された特徴の任意の組み合わせを有するデコーダを有していてもよい。このデコーダは、第一のビットストリームの最後の諸フレーム、第二のビットストリームの最初の諸フレームおよび関連付けられた暗号学的値をデコードするために使用されてもよい。本接合器および／または放送ヘッドエンドはさらに、本特許文書において概説された特徴の任意の組み合わせを有するエンコーダを有する。エンコーダは、第一のビットストリームの最後の諸フレームおよび第二のビットストリームの最初の諸フレームをエンコードするために使用されてもよい。さらに、本接合器および／または放送ヘッドエンドは、デコードおよびエンコードされない、第一および第二のビットストリームのフレームおよび関連付けられた暗号学的値を先に送るための転送ユニットを有していてもよい。換言すれば、転送ユニットは、フレームおよび関連付けられた暗号学的値を単に連結されたビットストリームにコピーまたは転送または持ち越ししうる。
【００５８】
接合器は完全なデータ・ストリームをデコードおよびエンコードする、すなわちはいってくるデータ・ストリームの暗号学的値をデコードして、出ていくデータ・ストリームのための暗号学的値を生成するよう動作可能であってもよい。これは、暗号学的値を通じてビットストリームの連続的な相互の接続を生成するために有益でありうる。実のところ、複数のビットストリームがデコードされてもよく、前記複数のビットストリームの諸部分を含む連結されたビットストリームが連続的に相互接続された暗号学的値をもってエンコードされてもよい。よって、連結されたビットストリームの受信機は連結されたビットストリームを、単一の信頼されるエンコーダから発するビットストリームと考えることになる。
【００５９】
また、暗号学的値を含むビットストリームのデコードおよび／またはエンコードの目的のために、接合器はデータ・ストリームの根底にあるコーデックを意識する必要はないことがありうることを注意しておくべきである。例として、接合器は、データ・ストリームの暗号学的値を抽出および／または生成するために、HE-AACデコード／エンコードを実行できるようにされている必要はない。状況によっては、たとえば新しい暗号学的値が以前に暗号学的値をもたなかったフレーム中に挿入される場合、データ・ストリームのデコードおよびその後の再エンコードは、新しい暗号学的値のためにビットストリーム中にスペースを創り出すために、特にビットストリーム要件を満たすために、必要であることがある。
【００６０】
本特許出願において概説された好ましい実施形態を含む方法およびシステムは、単独で、あるいは本文書に開示される他の方法およびシステムと組み合わせて使用されうることを注意しておくべきである。さらに、本特許出願において概説される方法およびシステムのあらゆる側面は、任意に組み合わされうる。特に、請求項の特徴は任意の仕方で互いと組み合わされうる。さらに、方法ステップの順序は変更されてもよいことを注意しておくべきである。
【図面の簡単な説明】
【００６１】
本発明について、下記で、付属の図面を参照しつつ例示的に説明する。
【図１】本発明に基づく識別子を決定する例示的な方法を示す図である。
【図２ａ】エンコーダにおける識別子生成および挿入のための例示的な方法のフローチャートである。
【図２ｂ】エンコーダにおける識別子生成および挿入のための例示的な方法のフローチャートである。
【図３】デコーダにおいて行われる例示的な認証および検証ステップのフローチャートである。
【図４】エンコーダおよびデコーダの例示的な実施形態を示す図である。
【図５】放送システム内での識別子の使用についての例を示す図である。
【図６】ビットストリームを接合して連結されたビットストリームを形成する例を示す図である。
【図７】ビットストリームを接合して連結されたビットストリームを形成する例を示す図である。
【発明を実施するための形態】
【００６２】
以下の実施形態は例として記載されており、本特許文書の範囲を制約するべきではない。本発明は、AAC（Advanced  Audio  Coding［先進オーディオ符号化］）、特にMPEG-2  AACおよびMPEG-4  AACのコンテキストにおいて記述されるが、本発明が他のメディア符号化方式、特にオーディオ、ビデオおよび／またはマルチメディア符号化方式にも適用されうることは注意しておくべきである。さらに、複数のエンコーダから組み合わされたビットストリームを与える接合器において適用されうる。
【００６３】
図１は、ビットストリーム１００およびこのビットストリーム１００についてどのようにして識別子が決定されるかの方法を示している。そのようなビットストリームの例は、AAC、HE-AAC（High  Efficiency-Advanced  Audio  Coding［高効率‐先進オーディオ符号化］）、ドルビー・パルス、MPEG-4  AVC/H.264、MPEG-2ビデオまたはMPEG-4ビデオを根底にあるコーデックとするエンコードされたビデオおよび／またはオーディオ・ビットストリームである。そのようなコーデックおよびそのフォーマットは、たとえば、MPEG-4  AACについてはISO/IEC14496-3規格において、MPEG-2  AACについてはISO/IEC13818-7規格において、MPEG-4  AVC/H.264についてはISO/IEC14496-10規格において、MPEG-2ビデオについてはISO/IEC13818-2規格において、MPEG-4ビデオについてはISO/IEC14496-2規格において定義されている。これらの規格書は参照によって組み込まれる。これらのコーデックにおいて、データ・ストリームはいわゆるフレームの形で構成される。フレームはある数のメディア・サンプルを含む。異なるコーデックはフレーム当たり異なる数のサンプルを使ってもよい。典型的な例はフレーム当たり960、1024または2048個のサンプルである。
【００６４】
実際のメディア・データに加えて、フレームはさらにいわゆるメタデータを含んでいてもよい。メタデータは、たとえばプログラム・ラウドネスまたはダイナミックレンジについての、追加的な制御情報を担持してもよい。
【００６５】
図１は、一連のフレーム１０１、１０２、１０３から１０６までを示している。時間軸は左から右の向きであり、フレーム１０１がフレーム１０６より先に処理される。上で概説したように、各フレームはメディア・データおよび追加的メタデータを含んでいてもよい。各フレームの構造およびフレームが含みうる可能なデータ・フィールドまたは要素は、根底にあるエンコード方式によって定義される。例として、MPEG-4  AACのフレームまたはMPEG-2  AACのフレームは、1024または960個のサンプルの時間期間にわたるオーディオ・データ、関係する情報およびその他のデータを含みうる。そのシンタックスおよび構造は、MPEG-4  AACについては上述したISO/IEC14496-3規格のセクション4.4および4.5で、MPEG-2  AACについては上述したISO/IEC13818-7規格のセクション6および8で定義されている。これらのセクションは参照により組み込まれる。
【００６６】
MPEG-4  AACまたはMPEG-2  AACのフレームは、次のような種々のシンタックス・エレメントを含みうる：
・single_channel_element()、略SCE、これは単一オーディオ・チャンネルについての符号化されたデータを含むビットストリームのシンタックス・エレメントである。
・channel_pair_element()、略CPE、これは一対のチャンネルについてのデータを含むビットストリーム・ペイロードのシンタックス・エレメントである。
・coupling_channel_element()、略CCE、これは結合チャンネル（coupling  channel）についてのオーディオ・データを含むシンタックス・エレメントである。
・lfe_channel_element()、略LFE、これは低サンプリング周波数向上チャンネルを含むシンタックス・エレメントである。
・program_config_element()、略PCE、これはプログラム構成データを含むシンタックス・エレメントである。
・fill_element()、略FIL、これは充填データを含むシンタックス・エレメントである。
・data_stream_element()、略DSE、これは補助データを含むシンタックス・エレメントである。
・TERMシンタックス・エレメント。これは生データ・ブロックまたはフレームの終わりを示す。
【００６７】
これらのシンタックス・エレメントは、メディア・データおよび関係する制御データを特定するために、フレームまたは生データ・ブロック内で使用される。例として、モノ・オーディオ信号の二つのフレームは、シンタックス・エレメント<SCE><TERM><SCE><TERM>を通じて指定されうる。ステレオ・オーディオ信号の二つのフレームは、シンタックス・エレメント<CPE><TERM><CPE><TERM>によって指定されうる。5.1チャンネル・オーディオ信号の二つのフレームはシンタックス・エレメント<SCE><CPE><CPE><LFE><TERM><SCE><CPE><CPE><LFE><TERM>によって指定されうる。
【００６８】
提案される方法は、ある数N個のそのようなフレームをグループ化して、それによりフレーム群１１１、１１２および１１３を形成する。図１は、N＝5個のフレーム１０３ないし１０５を含む完全なフレーム群１１２を示している。フレーム群１１２の五つのフレームは、第一のメッセージを形成するために連結される。
【００６９】
暗号学的ハッシュ関数H(.)および典型的にはハッシュ関数H(.)のブロック・サイズまで追加のゼロを右にパディングされる「秘密」鍵Kを使って、第一のメッセージのハッシュ・メッセージ認証コード（HMAC:  hash  message  authentication  code）が決定されうる。記号‖が連結を表し、丸囲みの＋が排他的ORを表し、外側パディングopad＝0x5c5c5c…5c5cおよび内側パディングipad＝0x363636…3636をハッシュ関数H(.)のブロック・サイズの長さの定数とすると、第一のメッセージのHMAC値は次のように書ける。
【００７０】
【数１】
0005542205.tif 000002
ここで、mはメッセージであり、ここでは第一のメッセージとも称される。MD5またはSHA-1ハッシュ関数で使われるブロック・サイズは典型的には512ビットである。HMAC演算の出力のサイズは根底にあるハッシュ関数の出力のサイズと同じであり、すなわちMD5の場合128ビット、SHA-1の場合160ビットである。
【００７１】
第一のメッセージのHMAC値、すなわちフレーム群１１２の連結されたフレーム１０３ないし１０５のHMAC値は、フレーム群１１２の識別子として使用されてもよい。識別子の長さを短くするため、HMAC値は途中で打ち切りされてもよい。たとえば、16、24、32、48または64ビットまでで打ち切られてもよい。しかしながら、そのような打ち切り処理は典型的にはハッシュ・メッセージ認証コードのセキュリティに影響することを注意しておくべきである。識別子はデータ・ストリーム中に挿入されるので、提案される方法は好ましくは、HMAC値の打ち切られたバージョンを識別子として使う。
【００７２】
図１に示されるように、フレーム群１１２の識別子１２２は、次のフレーム群１１３の、あるフレーム中に挿入される。好ましくは、識別子１２２は後続フレーム群１１３の最初のフレーム１０６に挿入される。同様にして、識別子１２１は直前のフレーム群１１１について決定された識別子であり、フレーム群１１２の最初のフレーム１０３に挿入されている。
【００７３】
フレーム群１１２の識別子１２２は、直前のフレーム群１１１の識別子１２１を含む第一のメッセージmに基づいて計算されてもよいし、あるいは直前のフレーム群１１１の識別子１２１を含まない第一のメッセージmに基づいて計算されてもよい。後者の場合、識別子１２１に関する情報は、識別子１２２を決定するのに先立って第一のメッセージmから除去される必要があることになる。エンコーダおよびデコーダが第一のメッセージmを定義するための同じ方法を適用することを保証する必要がある。ある好ましい実施形態では、識別子１２２は、直前のフレーム群１１１の識別子１２１を含む第一のメッセージmに基づいて決定される。これを行うことにより、識別子は連続的に相互接続されることができ、それにより、たとえばビットストリームの何らかのフレーム群を修正したり入れ替えたりすることによる修正ができない、相互接続されたビットストリームが生成されうる。結果として、完全なデータ・ストリームまたはビットストリームの真正性が保証できる。他方、識別子が相互接続されていても、受信機が部分的に壊れたビットストリームに対して再同期しうることも、相変わらず保証される。
【００７４】
ある好ましい実施形態では、識別子は単一のdata_stream_element()中に置かれる。これは<DSE>と略記され、MPEG-4  AACについてはISO/IEC14496-3、表4.10で定義されており、MPEG-2  AACについてはISO/IEC13818-7、表24で定義されている。これらは参照によって組み込まれる。デコーダの同期を容易にするため、AACフレームは識別子を保持するdata_stream_element()を一つのみ含むべきである。それにより、デコーダは、フレーム群の長さを、二つの受信された識別子の間の距離として決定しうる。換言すれば、AACフレームはいくつかのdata_stream_element()  <DSE>を有していてもよいが、識別子を含むdata_stream_element()  <DSE>は一つのみ有するべきである。ある好ましい実施形態では、<DSE>の位置は<TERM>エレメントの直前のAACフレームの末尾である。
【００７５】
識別子の迅速な抽出を許容するため、DSEのバイト整列特徴が使用されてもよい。この目的のために、DSEは典型的には、当該DSEに含まれるデータがバイト整列されていることを示すフィールドまたはビットを有する。これは、DSEの実際のデータが、バイトの先頭のビット位置で始まることを、デコーダに対して示す。
【００７６】
ビットストリームまたはデータ・ストリームは複数の<DSE>を含んでいてもよい。ある<DSE>を他の<DSE>から区別できるために、各<DSE>は典型的にはelement_instance_tagを含む。これは、MPEG-4  AACについてはISO/IEC14496-3、セクション4.5.2.1.1で、MPEG-2  AACについてはISO/IEC13818-7、セクション8.2.2で定義されている。これらはいずれも参照によって組み込まれる。識別子を含むdata_stream_element()のelement_instance_tagの値は特定の値に制約されない、すなわちISO/IEC規格の一般規則が適用されることを注意しておくべきである。換言すれば、好ましくは、伝送される識別子を含む<DSE>について、エレメント・インスタンス・タグ（element  instance  tag）について、MPEG-4  AACについてはISO/IEC14496-3文書で、MPEG-2  AACについてはISO/IEC13818-7文書で述べられている以上には特別な規則はない。
【００７７】
上に示した可能なストリームの例との類推で、２チャンネル・オーディオ・プログラムについてのデータ・ストリームはシンタックス・エレメント<CPE><FIL><DSE><TERM><CPE><FIL><DSE><TERM>…を含むことができる。SBR（Spectral  Band  Replication［スペクトル帯域複製］）のある２チャンネル・オーディオ・プログラムは、<CPE><SBR(CPE)><FIL><DSE><TERM><CPE><SBR(CPE)><FIL><DSE><TERM>…を含むことができる。ここで、<SBR(CPE)>はSBRに固有のシンタックス・エレメントである。5.1チャンネル・オーディオ・プログラムはシンタックス・エレメント<SCE><CPE><CPE><LFE><FIL><DSE><TERM><SCE><CPE><CPE><LFE><FIL><DSE><TERM>…から構成されることができる。
【００７８】
ある好ましい実施形態では、<DSE>エレメント中に置かれる識別子フィールドはidentifier_syncフィールドおよびidentifier_valueフィールドを含むことができる。identifier_syncフィールドは、その特定の<DSE>エレメントが識別子を含むという事実に基づいて迅速な識別を許容するために使用されうる。例として、エンコーダは、その<DSE>エレメントが識別子フィールドを含むことを示すために、このフィールドをあらかじめ定義された値、たとえば二値パターンに設定してもよい。デコーダはこのフィールドを使って、識別子値の利用可能性を検証しうる。換言すれば、デコーダは、受信されたデータ・ストリームが、上述した認証、検証および可能性としては構成目的のために使用されうる識別子を含むことを通知される。
【００７９】
ある好ましい実施形態では、identifier_valueフィールドは、本稿において概説されるようにして決定された識別子値を含む。このフィールドは、識別子についての、すなわちHMAC値の打ち切られたバージョンについての、必要とされるビット数を含む。上で概説したように、識別子は典型的にはN≧1としてN個のAACフレームをカバーし、N番目毎のAACフレームが識別子を含む、つまり上記のような識別子エレメントを含む<DSE>エレメントを含む。典型的には、カバーされるAACフレームの数について決定するのはエンコーダである。デコーダはこの値を、対応する識別子を含む二つのAACフレーム間の、フレーム単位で表した距離によって決定できる。
【００８０】
上で概説したように、識別子は、デコーダが正しい構成設定を使うことを保証するためにも使用されうる。この目的のために、識別子は、N個の相続くフレームの連結を含むのみならず、構成データをも含む拡大されたメッセージに基づいて生成されてもよい。換言すれば、上に概説したN個の相続くフレームを含む第一のメッセージがさらに構成データを含んでいてもよい。そのような構成データは、サンプリング周波数インデックス（samplingFrequencyIndex）、すなわちオーディオ信号の根底にあるサンプリング周波数の指標、チャンネル構成（channleConfiguration）、すなわち使用されるチャンネル構成の指標およびフレーム長フラグ（frameLengthFlag）、すなわち使用されるフレーム長の指標を含んでいてもよい。また、他の構成パラメータも可能である。
【００８１】
これらのパラメータ、すなわちAAC（コア）サンプリング・レートまたは「samplingFrequencyIndex」、チャンネル構成およびAAC変換長指標または「frameLengthFlag」は、configuration_word〔構成語〕を形成するために使用されうる。configuration_wordは、所定のサイズにするためにパディング・ビットをも含んでいてもよい。
【００８２】
ある好ましい実施形態では、パラメータ「samplingFrequencyIndex」および「channelConfiguration」は、それぞれのISO/IEC規格（たとえばISO/IEC14496-3のセクション1.6.2.1）で概説される「AudioSpecificConfig」における同じ名前のエレメントと同じ意味および値をもつ。パラメータ「frameLengthFlag」は、それぞれのISO/IEC規格（たとえばISO/IEC14496-3のセクション4.4.1、表4.1）で概説される「GASpecificConfig」における同じ名前のエレメントと同じ意味および値をもつ。
【００８３】
configuration_wordおよびN個のAACフレームは連結されて、N個のAACフレームを含む第一のメッセージに加えてconfiguration_wordを含む、第二のメッセージとも称されうるメッセージmを形成する。
【００８４】
m＝(configuration_word‖AACフレーム1‖AACフレーム2‖…‖AACフレームN)
ここで、‖は連結を表す。上に示した例では、configuration_wordは第一のメッセージの前に置かれる。configuration_wordは他の位置に、たとえば第一のメッセージの末尾に置かれてもよいことを注意しておくべきである。
【００８５】
上で概説したのと同様の仕方で、メッセージmに対するHMAC値、たとえばHMAC-MD5コード、HMAC(m)が、「秘密」鍵Kを使って計算される。鍵Kはたとえば所与のASCIIコードまたは他の任意の秘密の値であってもよい。メッセージmのHMAC値は上述したHMAC公式を使って計算される。
【００８６】
メッセージmのHMAC値が逐次的な仕方で決定されてもよいことを注意しておくべきである。これは、第一のステップでは、configuration_wordのHMAC値が決定されうることを意味する。これは、AACフレーム1のHMAC値の決定のための出発状態としての第一のHMAC値を与える。この演算の出力は第二のHMAC値であり、これがAACフレーム2のHMAC値の決定のための出発状態となる、といった具合である。最終的には、AACフレームNのHMAC値は、AACフレームN−1のHMAC値を出発状態として使って決定される。そのようなメッセージmを通じた、すなわちフレームおよび／またはconfiguration_wordのシーケンスを通じたHMAC値の逐次的な決定を使うことによって、ビットストリームが被る遅延を増すことなく、識別子を生成することが可能となる。さらに、HMAC値および／または識別子を生成するためのメモリ要求が低く保たれる。記憶される必要があるのがビットストリームの現在フレームおよび出発状態、すなわち128ビット値だけだからである。完全なメッセージmの生成および記憶は要求されない。
【００８７】
追加的な識別子によって引き起こされるビットストリーム中のオーバーヘッドを減らすために、最下位の数ビットを捨てることによって、HMAC値は打ち切られて、128ビットから、削減されたビット数にされる。例として、HMAC値「9e107d9d372bb6826bd81d3542a419d6」が打ち切られて「9e107d9d」とされることができる。打ち切りの度合いは好ましくは、識別子のセキュリティと必要になるビットレート・オーバーヘッドとの間の兼ね合いとして選択される。識別子の可能な長さは、たとえば、16、24、32、48、64、80または96でありうる。打ち切られたHMAC値が、DSEエレメントのidentifier_valueフィールドに挿入される識別子である。
【実施例１】
【００８８】
以下では、エンコード・プロセスに関するさらなる詳細が与えられる。すでに述べたように、一つの識別子によってカバーされるAACフレームの数Nについて決定するのは典型的にはエンコーダである。例として、デコーダが、高々１秒で、フレーム群の長さと同期できることを保証することが望ましいことがありうる。デコーダが、識別子を含む二つのフレームの間のフレーム数によって与えられるフレーム群の長さと同期するためには二つの識別子が必要とされるので、デコーダが所望される時間区間内に少なくとも二つの識別子を受け取ることを保証する必要がある。したがって、エンコーダは、N個のAACフレームの時間表現が、0.5秒を超えない、または最小限にしか超えないよう、値Nを選ぶべきである。N個のAACフレームの時間表現は選択されるAAC（コア）サンプル・レートに依存するので、エンコーダによって選ばれる値Nは、選択されるAAC（コア）サンプル・レートに依存して変わりうる。
【００８９】
識別子によって導入されるビットレート・オーバーヘッドを最小にするため、エンコーダは、N個のAACフレームの時間表現が0.5秒を超えないという制約条件を満たすNの最大の値を選んでもよい。応用によっては、N個のAACフレームの時間表現が0.5秒をわずかに超えることは受け容れ可能であることもある。そうした応用では、エンコーダは、たとえ場合によってN個のAACフレームの時間表現が0.5秒をわずかに超える結果となりうるとしても、N個のAACフレームの時間表現ができるだけ0.5秒に近くなるようNの値を選んでもよい。識別子の伝送によって導入されるオーバーヘッドは、識別子を含むDSEの長さと、フレーム群の全体的な長さ（ビット数単位）との比を評価することによって決定できる。
【００９０】
さらに、識別子の挿入を、SBRヘッダのような他の構成エレメントの挿入と整列させることが賢明である。これは、デコーダが、ビットストリームに簡単に同期することを許容し、単一のフレーム・デコードの間におけるすべての構成語の受領を許容する。
【００９１】
生成される最初のAACフレームはダミー識別子を含んでいてもよいことを注意しておくべきである。最初の識別子の目的は、デコーダに対して、識別子を含むAACフレーム・シーケンスの開始を信号伝達することであろう。しかしながら、識別子は実際のメディア・データに基づかないので、デコーダは、認証および検証を実行する態勢にないであろう。
【００９２】
図１との関連で概説したように、第一の計算された識別子はAACフレーム1ないしNをカバーし、AACフレームN＋1に格納される。次の識別子はAACフレームN＋1ないし2Nをカバーし、AACフレーム2N＋1に格納される、などとなる。
【００９３】
図２ａは、エンコード・プロセスのフローチャートを示している。ステップ２０１において、エンコーダはフレーム群に含まれるN個のフレームを提供することによって初期化される。さらに、鍵Kが提供される。続くステップ２０２では、フレーム群内のN個のフレームが連結されて、第一のメッセージが与えられる。次いで、ステップ２０３において、第一のメッセージが構成語と連結され、第二のメッセージを与える。ステップ２０４では、識別子が、第二のメッセージにわたって計算されたHMAC値の打ち切られたバージョンとして決定される。この識別子は、後続フレーム群の最初のフレームに置かれる（ステップ２０５）。最後に、そのフレーム群がステップ２０６で伝送される。送信されるフレーム群が、直前に伝送されたフレーム群の識別子を含むことを注意しておくべきである。ステップ２０２ないし２０６は、完全なデータ・ストリームが伝送されるまで繰り返される。
【００９４】
すでに述べたように、上記のプロセスは、シーケンシャルな逐次反復的な仕方で実行できる。これは、最初にN個のフレームおよびconfiguration_wordを連結してそのような完全な連結されたメッセージに対してHMAC計算を実行する必要なしに、識別子がフレームごとに決定されうることを意味する。これは図２ｂに示されている。この逐次反復手順はステップ２０７で、開始状態を設定することによって初期化される。開始状態は、128ビット・メモリに記憶されるconfiguration_wordのHMAC値であってもよい。次いで、N個のフレームの最初のものについて、HMAC値が決定されてもよい（ステップ２０８）。結果として得られるHMAC値は128ビット・メモリに記憶され（ステップ２０９）、第二のフレームのHMAC値の計算のための開始状態として使われる（ステップ２０８）。このプロセスは、N−1番目のフレームのHMAC値が128ビット・メモリから取られて開始状態として使われてN番目のフレームのHMAC値が決定される（ステップ２０８）まで繰り返される。識別子は、N番目のフレームのHMAC値の打ち切られたバージョンとして決定される（ステップ２１０）。ステップ２０６への代替として、フレーム群全体をバッファリングすることなく、各フレームは、HMAC値計算のために処理されたあとすぐに送出されてもよい。次いで、識別子はN＋1番目のフレームに追加され、そのフレームと一緒に送出される。その際、そのフレームは、次のN個のフレームについてHMAC値の逐次反復計算において使用される最初のフレームである。そのような逐次反復プロセスを使うことによって、エンコード・プロセスはフレームごとに、少ない遅延、少ない計算量および少ないメモリ要求で、実行できる。
【実施例２】
【００９５】
以下では、デコード・プロセスに関するさらなる詳細が与えられる。典型的には、デコーダは、デコードされるべきストリームが有効な識別子を含まないとの想定をもって開始する。すなわち、メディア・ビットストリーム内の有効な識別子の存在についてのインジケータは最初は「偽」の値に設定され、典型的には、有効な識別子の最初の受信成功に際してはじめて「真」の値に設定される。これは、受信機、たとえばセットトップボックスにおいて、LEDのような視覚的なインジケータによって示されてもよい。該インジケータが、受信されたビットストリームが認証された有効なビットストリームであることを示すのである。結果として、識別子は、受信されたデータ・ストリームの品質をユーザーに対して示すために使用されることができる。
【００９６】
他方、デコーダにおけるインジケータが「真」に設定されているが、Nmax個を超えるフレームについてビットストリーム内で該識別子に関する更新がない場合、インジケータは「偽」にリセットされてもよい。換言すれば、デコーダは、超えるべきではないNについての最大値、たとえばNmaxを意識していてもよい。デコーダがNmaxを超える数のフレームについて有効な識別子を検出しない場合、これは、デコーダに対して、受信されたビットストリームがもはや正当なエンコーダから発するものではない可能性があること、あるいは受信されたビットストリームが改変されている可能性があることを示す。結果として、デコーダはそれぞれのインジケータを「偽」に設定する。これは典型的には視覚的インジケータ、たとえばLEDがリセットされることにつながる。
【００９７】
識別子デコード手順は図３に示されており、次のように述べられる。
・デコーダが開始され、ステップ３００で「ID検証済み」フラグがクリアされる。
・次に、ステップ３０１で、内部メモリ状態（128ビット）が初期化される。
・デコーダはフレームが受信される（ステップ３０２）まで待ち、ステップ３０３で、ビットストリーム識別子の存在について受信されたフレームを検査する。フレームにおける識別子の存在は、上記のidentifier_syncフィールドによって検出されてもよい。ステップ３０４で識別子が検出された場合、ステップ３０７において、デコーダは<DSE>中のそれぞれのフィールドからidentifier_valueを抽出する。
・次に、ステップ３０８において、128ビット状態に含まれるHMAC値を打ち切ることによって検証識別子が生成される。
・デコーダは、ステップ３０９において、ビットストリーム識別子と検証識別子を比較することに進む。両IDが等しくないと判定された場合（ステップ３１０）、ステップ３１１において、ビットストリームが信頼されるエンコーダから発するのでないことを示すために、「ID検証済み」フラグがクリアされる。同一のIDである場合、ビットストリームが検証され、ビットストリームは信頼されるエンコーダからきているので有効と考えられることを示すために、ステップ３１２で「ID検証済み」フラグがセットされる。この場合、デコーダの追加的な機能が有効にされてもよく、および／またはユーザーがビットストリームの検証状態を通知されてもよい。あるいはまた、ビットストリームが信頼されるエンコーダから発するのでないと判定される場合、いくつかの機能が無効にされてもよく、および／またはユーザーがしかるべく通知されてもよい。
・ステップ３１３において、デコード・プロセスは、128ビット内部メモリ状態を初期化することに進む。
・次に、ステップ３１４において、現在フレームについての128ビットHMAC値が計算され、ステップ３１５において、128ビット内部メモリ状態が計算されたHMAC値を用いて更新される。次いでデコーダはステップ３０２に戻って、別のフレームの受信を待つ。
・フレーム中にさらなる識別子が存在しない場合（ステップ３０４で判定）、デコーダはステップ３０５に進んで、デコーダは最後のNmax個のフレーム内に識別子が存在していたかどうかを判定する。
・最後のNmax個のフレーム内に識別子が存在していなかった場合、識別子が受信されないまま最大フレーム数Nmaxが過ぎたため、デコーダは、ステップ３０６で「ID検証済み」フラグをクリアする。次いでデコーダはステップ３０２に戻って別のフレームを待つ。
・ステップ３０５での判定により最後のNmax個のフレーム内に識別子が存在していた場合、デコーダはステップ３１４に進んで、現在フレームについての128ビットHMAC値を計算する。
【００９８】
上で概説したように、デコーダは検証識別子をシーケンシャルな逐次反復プロセスにおいて決定できる。これは、現在フレームだけが処理され、検証識別子の決定のためにまず一組のフレームを連結することが必要とされないことを意味する。結果として、識別子のデコードは少ない遅延、少ない計算量および少ないメモリ要求で実行できる。
【実施例３】
【００９９】
図４は、データ・ストリームのエンコーダ４００およびデコーダ４１０の例示的な実施形態を示している。アナログ・データ・ストリーム４０５、たとえばオーディオ・ストリームは、アナログ‐デジタル変換器４０２を使ってデジタル・データ・ストリーム４０６に変換される。デジタル・データ・ストリーム４０６はオーディオ・エンコーダ４０３、たとえばドルビーE、ドルビー・デジタル、AAC、HE  AAC、DTSまたはドルビー・パルスを使ってエンコードされる。オーディオ・エンコーダ４０３は典型的にはデジタル・データ・ストリーム４０６をオーディオ・フレームにセグメント分割し、データ圧縮を提供する。さらに、オーディオ・エンコーダ４０３はメタデータを追加してもよい。オーディオ・エンコーダ４０３の出力は複数のデータ・フレームを有するデータ・ストリーム４０７である。その後、データ・ストリーム４０７は追加的なフレーム・エンコーダ４０４にはいり、フレーム・エンコーダ４０４は識別子または暗号学的値をデータ・ストリーム４０７に付加する。フレーム・エンコーダ４０４は、本特許文書において概説される諸側面に従って動作する。
【０１００】
典型的には識別子は逐次的な仕方で決定され、付加され、よってオーディオ・エンコーダ４０３からくる各フレームはフレーム・エンコーダ４０４によって直接処理されることを注意しておくべきである。好ましくは、オーディオ・エンコーダ４０３およびフレーム・エンコーダ４０４は、デジタル信号プロセッサ上で実装されてもよい統合エンコーダ４０１をなす。このようにして、オーディオ・エンコード側面および識別子生成側面は相互作用できる。具体的には、オーディオ・ストリームのエンコードの際に識別子によって引き起こされる追加的なオーバーヘッドを考慮に入れることが必要とされることがありうる。これは、オーディオ・ビットストリームのための利用可能なビットレートが減らされる可能性があるということを意味する。オーディオ符号化器と識別子生成との間のそのような相互作用は、ある種のエンコード方式、たとえばHE-AACの全体的な帯域幅および／またはビットレート制限を満たすために使用されてもよい。
【０１０１】
統合エンコーダ４０１は、複数のフレーム群および関連付けられた識別子を含むデータ・ストリーム４０８を出力する。データ・ストリーム４０８は典型的には、さまざまな伝送媒体および／または記憶媒体を使って、関連するデコーダおよび／または受信機４１０に提供される。デコーダ４１０には、データ・ストリーム４０８に対して改変されている可能性のあるデータ・ストリーム４１８として到着する。このデータ・ストリーム４１８は、本特許文書において概説される方法およびシステムに基づいてデータ・ストリーム４１８の検証および認証を実行するフレーム・デコーダ４１４に入力される。フレーム・デコーダ４１４はデータ・ストリーム４１７を出力する。このデータ・ストリーム４１７は典型的には、データ・ストリーム４１８から識別子および対応するデータ・フィールドまたはシンタックス・エレメントを除いたものに対応する。データ・ストリーム４１７はオーディオ・デコーダ４１３においてデコードされ、ここで、データ・ストリーム４１７は圧縮解除され、付加されたメタデータが除去される。上で概説したように、フレーム・デコードは、処理がフレームごとに実行されるよう、典型的にはシーケンシャルな逐次反復的な仕方で実行される。
【０１０２】
統合デコーダを形成するために異なるデコード／受信コンポーネントが一緒にまとめられてもよいことも注意しておくべきである。例として、フレーム・デコーダ４１４およびオーディオ・デコーダ４１３は、デジタル信号プロセッサ上で実装されてもよい統合デコーダ／受信機４１１を形成してもよい。上で概説したように、これは、オーディオ・デコーダと識別子の検証との間の相互作用を許容するために有益となりうる。最後に、統合デコーダ／受信機４１１はデジタル・データ・ストリーム４１６を出力し、これがデジタル‐アナログ変換器４１２を使ってアナログ・オーディオ信号４１５に変換される。
【０１０３】
本稿において、「エンコーダ」という用語は完全なエンコーダ４００、統合エンコーダ４０１またはフレーム・エンコーダ４０４を指す場合があることを注意しておくべきである。「デコーダ」という用語は完全なデコーダ４１０、統合デコーダ４１１またはフレーム・デコーダ４１４を指す場合がある。他方、いわゆる「信頼されないエンコーダ」は、識別子を全く生成しない、あるいは本稿において概説される方法に従った識別子を生成しないエンコーダである。
【実施例４】
【０１０４】
図５は、放送ヘッドエンド５０４を有する例示的な放送システム５００を示している。ヘッドエンド５０４は、異なるエンコーダから発するビットストリーム５０１、５０２および５０３を組み合わせるよう動作可能な接合器または接合手段をも有する。ラジオ放送システム内では、そのような異なるビットストリーム５０１、５０２および５０３は、典型的には異なるオーディオ・エンコーダによってエンコードされている異なるオーディオ・ビットストリームであってもよい。ビットストリーム５０１、５０２および５０３は、異なるシェーディングのブロックによって表現されている複数のフレームから構成される。図示した例では、ビットストリーム５０１は５個のフレームを有し、ビットストリーム５０２は４個のフレームを有し、ビットストリーム５０３は６個のフレームを有する。接合器および／またはヘッドエンド５０４は、統合ビットストリーム５０５を生成するために、該ビットストリームを組み合わせるよう動作可能である。今の例に示されるように、これは、ビットストリーム５０１をビットストリーム５０３に添加し、ビットストリーム５０２をビットストリーム５０１に添加することによって行ってもよい。しかしながら、やはり図５に示されるように、もとのビットストリーム５０１、５０２および５０３の一部のみ、たとえばオーディオ・ビットストリームの部分のみを選択することが要求されてもよい。よって、組み合わされたビットストリーム５０５はビットストリーム５０３のフレームを２個だけ含み、それに続いてビットストリーム５０１の３個のフレーム、続いてビットストリーム５０２の２個のフレームがくる。
【０１０５】
もとのビットストリーム５０１、５０２および５０３は識別子を含んでいてもよい。すなわち、ビットストリーム５０１、５０２および５０３は信頼されるエンコーダから発生してもよい。各識別子は、異なる個数Nのフレームに基づいていてもよい。一般性を失うことなく、ビットストリーム５０１および５０３の識別子は、二つのフレームを含むフレーム群について決定されているとする。他方、ビットストリーム５０２は、信頼されるエンコーダに由来するものではなく、よって識別子を含まない。
【０１０６】
接合器および／またはヘッドエンド５０４が、はいってくるビットストリーム５０１および５０３が信頼されるエンコーダから発している場合に識別子をも含むビットストリーム５０５を放送することが望ましい。そのような識別子は、ビットストリーム５０５の、信頼されるエンコーダに由来するすべての部分について、ビットストリーム５０５内で送られるべきである。他方、ビットストリーム５０５の、信頼されるエンコーダに由来しない部分、すなわちビットストリーム５０２から取られた部分は、識別子を含まないはずである。
【０１０７】
この目標を達成するために、接合器および／またはヘッドエンド５０４は、識別子のデコードおよび／またはエンコードを実行するよう動作可能であってもよい。図５に示されるように、出ていくビットストリーム５０５の最初の二つのフレームはビットストリーム５０３に由来する。これら二つのフレームがあるフレーム群に対応する場合、このフレーム群の識別子はビットストリーム５０５の第三のフレーム内に置かれてもよい。これは、図１との関係で概説した。他方、これら二つのビットストリームが異なるフレーム群に属する場合、ヘッドエンド５０４は
・ビットストリーム５０３が信頼されるエンコーダから発しているかどうかを検証する；および
・ビットストリーム５０３の出ていくフレームについて、すなわちビットストリーム５０５の最初の二つのフレームについて、新しい識別子を生成する、
よう動作可能であってもよい。
【０１０８】
出ていくビットストリーム５０５について識別子を生成するために使われる数Nは、必ずしも、はいってくるビットストリーム５０１および５０３について識別子を生成するために使われる数Nと同じ数である必要はない。これは、出ていくビットストリーム５０５に三つのフレームしか含まれていないビットストリーム５０１のコンテキストにおいて見て取れる。最初の二つのフレームについて第一の識別子が生成されてもよく、一方、第三のフレームについては第二の識別子が生成されてもよい。換言すれば、Nは最初の二つのフレームについては2であってもよく、第三のフレームについては1であってもよい。したがって、一般に、Nはビットストリーム５０５内で変えられてもよいと言える。これは、Nがデコーダにおいて独立して決定できるという事実のためである。好ましくは、出ていくビットストリーム５０５について使われる数Ｎは、はいってくるビットストリーム５０１および５０３について使われる数Ｎ以下である。
【０１０９】
さらに、はいってくるビットストリーム５０２は識別子を含まないことを注意しておくべきである。すなわち、ビットストリーム５０２は信頼されるエンコーダから発するものではない。結果として、接合器および／またはヘッドエンド５０４は、ビットストリーム５０２から発するフレームについては、ビットストリーム５０５内で識別子を提供しない。すでに上で概説したように、デコーダは典型的には、ビットストリーム５０５内での識別子の不在を検出するよう動作可能である。識別子を含まないフレームの数があらかじめ定義された最大数Nmaxを超える場合、デコーダは典型的には、ビットストリーム５０５がもはや信頼されるエンコーダからではないと検出する。
【０１１０】
図５の例によって示されるように、ビットストリーム５０５は信頼されるエンコーダから発する諸部分および信頼されるエンコーダから発するのではない他の諸部分から構成されることがありうる。結果として、ビットストリーム５０５は、有効な識別子を含む諸部分および有効な識別子を含まない他の諸部分を含むことがありうる。接合器および／またはヘッドエンド５０４は、
・識別子を含むはいってくるビットストリームを検出し；
・識別子を含むビットストリームを出ていくビットストリームとして転送し；
・前記識別子に基づいて前記はいってくるビットストリームを認証し；
・新しい識別子をもって前記ビットストリームをエンコードする、
よう動作可能であってもよい。
【０１１１】
換言すれば、接合器および／またはヘッドエンド５０４は、本特許文書において概説されるエンコーダおよび／またはデコーダの諸機能を有していてもよい。すなわち、接合器および／または放送ヘッドエンド５０４は、はいってくるビットストリームを受信するときにはデコーダとして機能してもよく、出ていくビットストリームを生成するときにはエンコーダとして機能してもよい。さらに、認証および再エンコードを実行することなく、識別子を含むビットストリームを先に送るよう動作してもよい。この転送動作は、同じビットストリームの連続的な送信のために実行されてもよい。一方、異なるエンコーダからのビットストリーム間の境界においては、好ましくはデコードおよび再エンコードが使用されてもよい。転送動作を使うことによって、接合器および／または放送ヘッドエンド５０４の計算負荷が軽減されうる。
【０１１２】
転送動作は、先行するフレーム群の識別子が、現在のフレーム群の識別子の値に影響しない場合に使用されうることを注意しておくべきである。そのような場合、フレーム群および関連付けられた識別子は、出ていくビットストリームに直接転送されてもよい独立した実体と見なされうる。他方、連続的な相互接続された識別子が使用されて、現在のフレーム群の識別子が直前のフレーム群の識別子に依存する場合、接合器は好ましくは、出ていくビットストリームについての連続的に相互接続された識別子のストリームを生成するために、ビットストリーム全体を再エンコードすることになる。これは、権限のない者が出ていくビットストリームの諸セグメントを入れ替えることができないことを保証する。
【０１１３】
たいていの事例では、接合器の再エンコードは新しい識別子の生成に限られることを注意しておくべきである。ビットストリーム自身、特に、オーディオ・エンコードは典型的には影響されない。結果として、ビットストリームの再エンコードは低計算量で実行できる。しかしながら、以前は暗号学的値を含んでいなかったフレームに暗号学的値が挿入される場合は、オーディオ再エンコードを実行する必要があることがある。
【０１１４】
図６は、ある好ましい実施形態について、はいってくるビットストリーム１ないし４を接合して、出ていく連結されたビットストリームにする様子を示している。図示した例では、はいってくるビットストリーム１は暗号学的値の生成のために４個のフレームからなる諸群をなしている。ビットストリームの下の斜めの矢印は、フレーム群の暗号学的値が、次の群の最初のフレームに挿入されていることを示している。暗号学的値が挿入されているフレームは図においてハッチングを付されている。はいってくるビットストリーム２のフレーム群は６個のフレームを含み、はいってくるビットストリーム３のフレーム群は５個のフレームを含む。はいってくるビットストリーム４は暗号学的値をもたず、検証されず、信頼されない。
【０１１５】
図中の縦の線は接合点を示す。図から見て取れるように、出ていくビットストリームは、はいってくるビットストリーム１に対応する第一のセクションI、はいってくるビットストリーム２に対応する第二のセクションII、はいってくるビットストリーム３に対応する第三のセクションIIIおよびはいってくるビットストリーム４に対応する第四のセクションIVを含む。これらのセクションは接合点で接合されている。最初の接合点までは、暗号学的値を含むはいってくるビットストリーム１が連結されたビットストリーム中にコピーされることができる。しかしながら、セクションIIにおける最初の暗号学的値は、接合のため、ビットストリーム２の対応する暗号学的値とは異なるデータ・フレームに関係するので、再計算される必要がある。詳しくは、この暗号学的値は５個のフレームに基づく。はいってくるビットストリーム１に属する一つ（接合点より前）と、はいってくるビットストリーム２に属する四つ（接合点後）である。暗号学的値の再計算は、ビットストリームの上の矢印および変化したハッチングによって示されている。連結されたビットストリームにおける第一の再計算された暗号学的値の伝搬のため、ビットストリーム２の以後の暗号学的値も再計算する必要がある。
【０１１６】
第二の接合点において、選択されたビットストリームは２から３に変化する。ビットストリームIIIの最初のフレームの暗号学的値は直前の、ビットストリーム２の６個のフレームに基づいて再計算される。次の接合点では、信頼されないビットストリーム４が選択され、連結されたビットストリームのセクションIVには暗号学的値は挿入されない。あるいはまた、連結されたビットストリームの信頼されたセクションがいつ終わるかを正しく示すために、連結されたビットストリーム中にコピーされたビットストリーム３の最後の諸フレームについて、暗号学的値が生成されてもよい。この追加的な暗号学的値は好ましくは、図中、点線の円で示されるように、セクションIVの最初のフレーム中に挿入される。ビットレート要求に依存して、この追加的な暗号学的値を挿入するためのスペースを創り出すために、このフレームを再エンコードすることが必要なこともある。
【０１１７】
図７は、はいってくるビットストリーム１および２をでていくビットストリーム中に連結するもう一つの例を示している。ここでは、接合点は第一のビットストリーム中の暗号学的値を担持するフレームの直前および第二のビットストリーム中の暗号学的値を担持するフレームの直後である。暗号学的値の位置を第一および第二のビットストリームから取るならば、連結されたビットストリームには暗号学的値の大きなギャップが生じる。連結されたビットストリームのこのセクションにおける暗号学的値の間の距離は、ビットストリーム中の信頼が失われたことを示すことなくデコーダが受け入れる最大値Nmaxを超えることがありうる。よって、接合点において、たとえば第二のビットストリームの最初のフレーム内に、追加的な暗号学的値を挿入することが好ましい。それにより、群内のフレームの数がNmaxを超えないようになる。ここでもまた、ビットレートの制約に依存して、
追加的な暗号学的値をビットストリーム中に挿入するためのスペースを創り出すために、このフレームを再エンコードする必要があることがありうる。ちなみに、この場合の暗号学的値は、ビットストリーム１の接合点後の最初のフレームからコピーされてもよい。連結されたビットストリームにおける追加的な暗号学的値はビットストリーム１の同じ６個のフレームに関係するからである。しかしながら、追加的な暗号学的値が含められるフレームのデータ内容はビットストリーム２に属する（精確には、ビットストリーム２の、接合点後の最初のフレームに対応する）。
【０１１８】
本稿は、識別子または暗号学的値をデータ・ストリーム中に導入することを許容する方法およびシステムを記載している。この識別子は、データ・ストリームを認証および検証するために使用されてもよい。さらに、識別子は、再生または処理されるべきデータ・ストリームについてデコーダの正しい構成設定を保証するために使用されてもよい。特に、本方法およびシステムは、ビットストリームが正当なエンコーダまたは送信機から発していることを認証する追加的なデータ、すなわち識別子をHE  AACビットストリームに付加する。これは、受信機に、そのHE  AACビットストリームがある規格および／またはある品質基準に従っていることを示してもよい。識別子は好ましくは、HMAC-MD5計算から導出される。
【０１１９】
本方法およびシステムは、マルチメディア・ファイルおよびマルチメディア・ストリームの認証のために使用されてもよく、一般に認証を破ることなく、いくつかの保護されたストリームの連結を検出することもできる。これは、完全なストリームではなく、一組の連続するフレームが整合性について検査されることを意味する。これは、典型的な放送シナリオ、すなわち、実際の出力ストリームを生成するために装置が異なるビットストリーム・エンコーダ間で頻繁に切り換えを行う、いうところの「接合」をサポートする。さらに、本方法およびシステムは帯域内および帯域外情報を保護するために使用されてもよい。ここで、帯域内情報は典型的にはメディア・データおよび関連するメタデータを含み、帯域外データは典型的には構成データを含む。したがって、本方法およびシステムは、マルチメディア・ストリームの正しい再生および／またはデコードを制御および／または検出することを許容する。
【０１２０】
本稿で記載した方法およびシステムは、ソフトウェア、ファームウェアおよび／またはハードウェアとして実装されてもよい。ある種のコンポーネントは、たとえばデジタル信号プロセッサまたはマイクロプロセッサ上で走るソフトウェアとして実装されてもよい。他のコンポーネントはたとえば、ハードウェアとして、および／または特定用途向け集積回路（application  specific  integrated  circuit）として実装されてもよい。記載される方法およびシステムに出てくる信号は、ランダム・アクセス・メモリまたは光記憶媒体といった媒体に記憶されてもよく、ネットワークを介して転送されてもよい。ネットワークは、電波ネットワーク、衛星ネットワーク、無線ネットワークまたは有線ネットワーク、たとえばインターネットといったものである。本稿に記載された方法およびシステムを利用する典型的な装置は、セットトップボックスまたはオーディオ信号をデコードする他の消費者構内設備である。エンコード側では、本方法およびシステムは放送局において、たとえばビデオおよびオーディオ・ヘッドエンド・システムにおいて、使用されてもよい。
【図１】
0005542205.tif 000003
【図２ａ】
0005542205.tif 000004
【図２ｂ】
0005542205.tif 000005
【図３】
0005542205.tif 000006
【図４】
0005542205.tif 000007
【図５】
0005542205.tif 000008
【図６】
0005542205.tif 000009
【図７】
0005542205.tif 000010