(57)【要約】  符号化オーディオフレーム境界（７４）を特定し、そのフレーム境界（７４）に対応する点からオーディオ復号化を開始するため、オーディオデコーダ（５０）は、符号化オーディオフレーム（７２）のヘッダ（８０）に関する同期語（６２）と付加ビット（６４）とを含むマッチングパタン（６０）を生成し、マッチングパタン（６０）のインスタンスがないか符号化オーディオフレーム（７２）のデータストリーム（７０）を検索することにより、オーディオフレーム境界（７４）を検出し、検出されたオーディオフレーム境界（７４）に対応するデータストリーム（７０）における点からオーディオフレーム（７２）の復号化を開始する。
2010525414.tif 000002
【特許請求の範囲】
【請求項１】
データストリーム（７０）における複数の符号化オーディオフレーム（７２）であって各フレームがヘッダ（８０）を有する符号化オーディオフレーム（７２）を復号化する方法であって、
同期語（６２）と、有効な符号化オーディオフレーム（７２）のヘッダ（８０）フィールドに対する少なくとも１つの予測値に対応する１つ以上の付加ビット（６４）とを含むマッチングパタン（６０）を生成するステップと、
前記マッチングパタン（６０）のインスタンスがないかデータストリーム（７０）の部分を検索することによりフレーム境界（７４）を検出するステップと、
前記検出されたフレーム境界（７４）に対応する前記データストリーム（７０）における点から始まる１つ以上の符号化オーディオフレーム（７２）を復号化するステップと、
を有することを特徴とする方法。
【請求項２】
前記フレーム境界（７４）を検出するステップは、前記マッチングパタン（６０）の所定数のインスタンスを検索するステップを含み、前記検出されたフレーム境界（７４）は、前記所定数のインスタンスのうちの最後のものに対応することを特徴とする請求項１に記載の方法。
【請求項３】
停止信号を受信するステップを更に有し、
前記フレーム境界（７４）を検出するステップは、前記停止信号が受信されるまで、前記マッチングパタン（６０）のインスタンスがないか前記データストリーム（７０）の部分を検索するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記フレーム境界（７４）を検出するステップは、前記停止信号が受信される前に検出された前記マッチングパタン（６０）の最後のインスタンスに対応するフレーム境界（７４）を検出するステップを含むことを特徴とする請求項３に記載の方法。
【請求項５】
検出された前記マッチングパタン（６０）のインスタンスの数を示す、前記停止信号の生成に用いるためのフレーム検出信号を提供するステップを更に有することを特徴とする請求項４に記載の方法。
【請求項６】
前記符号化オーディオフレーム（７２）は、Advanced Audio Codec Rawデータブロックを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記フレームヘッダ（８０）は、Audio Data Transport Stream (ADTS)ヘッダを含み、前記マッチングパタン（６０）は、１２ビット同期語（６２）と、１ビットIDフィールド（８４）、２ビットレイヤフィールド（８６）、１ビット保護なしフィールド（８８）の予測値に対応する付加ビット（６４）とを含むことを特徴とする請求項６に記載の方法。
【請求項８】
オーディオ処理誤りを検出するステップと、
前記オーディオ処理誤りに対応する前記データストリーム（７０）における誤り位置を特定するステップと、を更に有し、
前記マッチングパタン（６０）のインスタンスがないか前記データストリーム（７０）の部分を検索するステップは、前記誤り位置から開始することを特徴とする請求項１に記載の方法。
【請求項９】
前記フレーム境界（７４）を検出するステップは、前記検出されたフレーム境界（７４）が有効なヘッダ（８０）に対応しているかを検証するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記検出されたフレーム境界（７４）が有効なヘッダ（８０）に対応しているかを検証するステップは、ＣＲＣ（cyclical redundancy checksum）ビットを評価して前記検出されたフレーム境界（７４）が有効なヘッダ（８０）に対応しているかを確認するステップを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
データストリーム（７０）における符号化オーディオフレーム（７２）を復号化するオーディオデコーダ（５０）であって、
同期語（６２）と、有効な符号化オーディオフレーム（７２）のヘッダ（８０）フィールドに対する少なくとも１つの予測値に対応する１つ以上の付加ビット（６４）とを含むマッチングパタン（６０）を生成するマッチングパタン生成部（５４）と、
前記マッチングパタン（６０）のインスタンスがないかデータストリーム（７０）の部分を検索してフレーム境界（７４）を検出するフレーム境界検出部（５６）と、
前記検出されたフレーム境界（７４）に対応する前記データストリーム（７０）における点から始まる１つ以上の符号化オーディオフレーム（７２）を復号化するフレームデコーダ（５８）と、
を備えることを特徴とするオーディオデコーダ（５０）。
【請求項１２】
前記フレーム境界検出部（５６）は、前記マッチングパタン（６０）の所定数のインスタンスを検索するように構成され、前記検出されたフレーム境界（７４）は、前記所定数のインスタンスのうちの最後のものに対応することを特徴とする請求項１１に記載のオーディオデコーダ（５０）。
【請求項１３】
前記フレーム境界検出部（５６）は、停止信号を受信するように構成され、
前記フレーム境界検出部（５６）は更に、前記停止信号が受信されるまで、前記マッチングパタン（６０）のインスタンスがないか前記データストリーム（７０）の部分を検索するように構成されている
ことを特徴とする請求項１１に記載のオーディオデコーダ（５０）。
【請求項１４】
前記フレーム境界検出部（５６）は更に、検出された前記マッチングパタン（６０）のインスタンスの数を示す、前記停止信号の生成に用いるためのフレーム検出信号を提供するように構成されていることを特徴とする請求項１３に記載のオーディオデコーダ（５０）。
【請求項１５】
前記符号化フレーム（７２）は、Audio Data Transport Stream (ADTS)ヘッダを含み、マッチングパタン生成部（５４）は、１２ビット同期語（６２）と、１ビットIDフィールド（８４）、２ビットレイヤフィールド（８６）、１ビット保護なしフィールド（８８）の予測値に対応する付加ビット（６４）とを含むマッチングパタン（６０）を生成するように構成されていることを特徴とする請求項１１に記載のオーディオデコーダ（５０）。
【請求項１６】
オーディオ処理誤りを検出し、前記オーディオ処理誤りに対応する前記データストリームにおける誤り位置を特定する復号化誤り検出部を更に有し、
前記フレーム境界検出部（５６）は、前記誤り位置から前記検索を開始する
ことを特徴とする請求項１１に記載のオーディオデコーダ（５０）。
【請求項１７】
前記フレーム境界検出部（５６）は更に、前記検出されたフレーム境界（７４）が有効なヘッダ（８０）に対応しているかを検証するように構成されていることを特徴とする請求項１１に記載のオーディオデコーダ（５０）。
【請求項１８】
前記フレーム境界検出部（５６）は、前記データストリーム（７０）におけるＣＲＣ（cyclical redundancy checksum）ビットを評価して前記検出されたフレーム境界（７４）が有効なヘッダ（８０）に対応しているかを確認することによって、前記検出されたフレーム境界（７４）が有効なヘッダ（８０）に対応しているかを検証するように構成されていることを特徴とする請求項１７に記載のオーディオデコーダ（５０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯音楽プレーヤその他のマルチメディア装置などに使用し得る、オーディオデコーダに関する。オーディオデコーダは、格納されたオーディオファイルまたはネットワークを介して提供されるデータストリームを復号化するために使用される。
【背景技術】
【０００２】
オーディオを符号化するために様々な標準規格が知られている。また、符号化オーディオデータをデータストリーム（データファイルまたはネットワークを介して提供されるデータストリームを含む）に含めるために様々な標準規格も知られている。Audio Data Transport Stream (ADTS)方式はそれらの一例で、広く使われているAdvanced Audio Coding (AAC) 標準規格に従って符号化されたオーディオをデータストリームに含ませて送信するために使用される。
【０００３】
ADTSその他の方式では、データストリームを、それぞれのフレームがヘッダを有するオーディオデータのフレームに組織化する。あるアプリケーションでは、符号化オーディオフレームの始まりを判定するためにデータストリームの部分をスキャンする必要があり得る。そのスキャンを容易にするために、フレームヘッダに同期語（syncword）と呼ばれるものを含めるのが一般的である。同期語は、一定の長さをもち、一定の値であり、一般的には、例えばヘッダの最初などヘッダの決められた位置に置かれる。
【０００４】
データストリームをスキャンして同期語の存在を検出することはフレームヘッダを特定するのに有効ではあるが、誤りを生じることもあり得る。実用的な理由から、一般に同期語は１２ビットなど、比較的短いため、オーディオペイロードデータ中、すなわちフレームヘッダの外で、見かけ上の同期語が現れることがあり得る。それによって誤ったフレーム検出が行われてしまう。そのような検出誤りから回復するため様々な方法はあり得るが、検出誤りによって貴重な処理時間、処理サイクルが使われてしまう。
【０００５】
したがって、検出誤りを低減して、データストリームにおけるフレーム境界を効果的に特定する方法が必要である。
【発明の概要】
【０００６】
データストリームにおける複数の符号化オーディオフレームであって各フレームがヘッダを有する符号化オーディオフレームを復号化するオーディオデコーダが提供される。オーディオデコーダは、同期語と、有効な符号化オーディオフレームのヘッダフィールドに対する少なくとも１つの予測値に対応する１つ以上の付加ビットとを含むマッチングパタンを生成し、マッチングパタンのインスタンスがないかデータストリームの部分を検索してフレーム境界を検出し、検出されたフレーム境界に対応するデータストリームにおける点から始まる１つ以上の符号化オーディオフレームを復号化するための１つ以上の回路を含む。
【図面の簡単な説明】
【０００７】
【図１】符号化オーディオフレームを含むデータストリームを示す図である。
【図２】符号化オーディオフレームのヘッダ構造の一例を示す図。
【図３】本発明の実施形態で使用されるマッチングパタンの一例を示す図。
【図４】符号化オーディオフレームを処理する方法の一例を示す図。
【図５】オーディオフレームを処理するオーディオデコーダの一例を示すブロック図。
【発明を実施するための形態】
【０００８】
本発明は、符号化オーディオデータを含むデータストリームであってデータストリームがフレームに組織化されるデータストリームを処理する方法を提供する。以下説明する方法で、フレーム境界の検出誤りを少なくし、オーディオデコーダにおける誤り回復の改良及びオーディオ処理機能の強化を可能にする。本発明は、ファイルに組織化され、不揮発性メモリに格納されるオーディオデータ、または、ネットワーク接続可能な装置で受信される、オーディオストリームまたはマルチメディアストリームにおけるオーディオデータに適用可能である。
【０００９】
図１は、いくつかの符号化オーディオフレーム７２を含むデータストリーム７０を示す。符号化オーディオフレーム７２はそれぞれヘッダ８０を含む。ここで、ヘッダの始まりはフレーム境界７４に対応する。
【００１０】
データストリーム７０は、MP3（MPEG Layer 3）、Advanced Audio Coding（AAC）などの種々の公知のオーディオ符号化方式のうちの１つによって符号化されたオーディオデータを含むことができる。AACは、MPEG-2標準規格（正式には ISO/IEC 13818-7:1997）のPart７として、また、MPEG-４標準規格（正式にはISO/IEC 14496-3:1999）のPart３として標準化されている。さまざまなオーディオ符号化方法が既に存在しており、将来も開発されていくであろうが、それらの各手法は、オーディオデータを圧縮し符号化するための様々な技術を含むことは、当業者は理解するであろう。AAC標準でいうと、それ自体で、“プロファイル（profile）”または“オブジェクトタイプ（object type）”に整理される多数の符号化方法を有している。
【００１１】
AACで符号化されたような符号化オーディオデータは一般的に、データブロックの系列からなる。そのデータをカプセル化するために様々の方法が提案されている。その中で一番単純な方法は、オーディオデータがファイルとして整理され、完全なファイルとしてメモリに格納される状況において使用されることを想定している。そのような状況においては、オーディオのカプセル化は、単にデータファイルの最初に１つのヘッダを挿入するだけでよい。このヘッダは、オーディオデータのフォーマットを示すデータを、その他のデータとともに含むことができる。例えば、AACファイル作成するためには、Audio Data Interchange Format (ADIF)が、AACデータととともに使用される。ADIFヘッダは、ファイルのフォーマットを特定するためのフィールド、著作権の管理に関するデータ、オーディオデータの生成に使用されたオーディオ符号化方式に関する詳細のデータを含む。
【００１２】
ネットワーク環境におけるオーディオストリーム又はマルチメディアストリームの転送などを扱うために、符号化オーディオデータのより複雑なカプセル化手法が開発されている。インターネットラジオやモバイル通信で実現されるネットワークストリーム環境においては、オーディオデコーダは、全てのオーディオデータにアクセスすることがいつでもできるわけではない。さらに、例えばビデオデータのように、データ転送のために、オーディオデータはマルチメディアと織り合わされることもあり得る。この場合に対応するべく、オーディオデータが図１に示される符号化オーディオフレーム７２のようなフレームに組織化される、オーディオデータをカプセル化するさまざまな手法が提案されている。AACデータとともに使用されるそのような方式の一例が、Audio Data Transport Stream (ADTS)フォーマットである。このフォーマットは、MPEG-2 Part 7、MPEG-4 Part 3において、AACとともに標準化されている。図１に示されるように、ADTSフォーマットデータは一般に、データストリーム７０に整理され、そのデータストリームが符号化オーディオフレーム７２に組織化され、それぞれの符号化オーディオフレーム７２はヘッダ８０を含む。
【００１３】
ADTSを使うか使わないにかかわらず、データストリームは、符号化オーディオに加えて、例えばビデオデータなどの他のデータを含みうることは、当業者は認識するであろう。したがって、一連の符号化オーディオフレーム７２としてフォーマットされたオーディオデータを使用する転送手法は、データストリーム７０における他のデータと区別するのに有用である。よって、符号化オーディオフレーム７２は、連続するブロックに組織化される必要はない。さらに、オーディオフレームを使用するADTS及びその他の転送方式は、データネットワークにおけるオーディオのストリーミングに関するアプリケーションに限定されない。ADTSのようなフレームベースの方式は、ADIFのような簡単なフォーマットよりもオーバヘッドが増大するが、フレームベースのフォーマットは言うまでもなく、オーディオデータがファイルに組織化され、取得や再生のためメモリに格納される状況に好適である。従って、本明細書において、「データストリーム」とは、ファイルに組織化されてメモリに格納されるデータ、あるいは、オーディオデコーダがいつでもオーディオデータの全てにアクセスできるわけではないインターネットラジオなどのストリーミングアプリケーションにより転送されるデータをいう。
【００１４】
図２は、データストリーム７０における符号化オーディオフレーム７２のヘッダ８０の一例を示す図である。ヘッダ８０は、フレームヘッダの存在を表すのに使用される固定長のビット列である同期語（syncword）８２を含む。図２では、同期語８２は１２個の“１”からなるビット列からなり、フレームヘッダの最初に現れる。ADTSフォーマットでは図２に示されるようなヘッダが使用されるが、他のフォーマットにおいては、異なる長さ、異なるデータ、さらには、ヘッダ中の異なる位置に現れる同期語を有するヘッダが使用されうることはもちろんである。しかし、所与の転送フォーマットにおいては構成及び内容が一定であることが、同期語８２の一貫性の特徴である。したがって、ADTSでフォーマットされたすべてのデータストリームにおいては、例えば、各ヘッダ８０は同一の同期語８２を有することになる。
【００１５】
一方、ヘッダ内の他のフィールドは、データストリームによって変化しうる。例えば、図２のヘッダ８０は１ピットのIDフィールドを含んでいる。ADTSでは、このフィールドは、データストリーム７０がMPEG-2 標準で符号化されたのか（ID フィールド = 1 ）、MPEG-4 標準で符号化されたのか（ID フィールド = 0）を示している。そのため、このフィールドはデータストリームによって変わることがあり得る。また図２には、ADTSでは“００”固定されているレイヤフィールド８６、保護なし（Protection Absent）フィールド８８（ADTSでは、ヘッダがチェックサムを含むかどうか表す１ビットのフィールド）、プロファイルフィールド９０（ADTSでは、AAC符号化の中でどれが使われたかを示す２ビットのフィールド）も表示されている。ヘッダは最後に、ヘッダの安全性の検証に使用されうる、ADTSではオプションであるCRC (cyclical redundancy check) チェックサム・フィールド９２を含む。
【００１６】
図２はヘッダの一例の構成を示したものに過ぎない。様々な代案が可能だが、通常のヘッダ８０は、同じタイプのデータストリームに対してすべての値が一定である同期語と、さらに、同じタイプの違ったデータストリーム７０で変化する又は同じデータストリームの中でもヘッダによって変わる様々な他のフィールドとを備える。例えば、ADTSでは、IDフィールド８４、レイヤフィールド８６、保護なしフィールド８８、プロファイルフィールド９０は、通常は１つのデータストリーム７０の中では一定である。ただし、データストリームが変わると１つ以上のフィールドが変わることはあり得る。一方、CRCフィールド９２は、同じデータストリーム中でもヘッダ８０とヘッダ８０との間で変わり得る。ヘッダの中で１つ以上のフィールドがデータストリームの中で一定であるため、多くの場合、任意のヘッダ８０の同期語のみならず、有効なヘッダ８０の内容について前もって得た知識から１つ以上のフィールドの値を予測することが可能である。
【００１７】
データストリーム７０を処理する場合には、フレームヘッダ８０の始めに対応するフレーム境界７４を検出する必要がある。データストリーム７０は通常は直線的（すなわち、１ビットずつ、または、１ワードずつ）に処理されるが、データストリーム７０の中に誤りのあるデータが存在すると、データストリーム７０の処理される位置から次のヘッダ８０の位置を特定する必要が生じる。さらに、オーディオ再生装置では、１つまたは複数の符号化オーディオフレーム７２がスキップされる場合があるので、ヘッダの特定を繰り返し行うための、より複雑な機能が必要である。たとえば、早送り機能では、データストリーム７０の任意の点でデータ処理を停止し、そのデータストリーム７０における次の符号化オーディオフレーム７２から再開する必要がある。そのような機能は、停止信号が送られるまで符号化オーディオフレーム７２をスキップすることが必要になるであろう。代わりに、そのような機能は、所定の数の符号化フレームをスキップし、次に来る符号化オーディオフレーム７２から再生（すなわち復号化）を再開することが必要になろう。
【００１８】
一般に、データストリーム７０は連続的にスキャンされ同期語８２に一致するビット列が検索される。そのため、次の符号化オーディオフレームに進み、単純に同期語８２と一致するまで次々とデータストリーム７０をスキャンし、一致したビットの位置から、符号化オーディオフレーム７２の処理が始まる。
【００１９】
しかし、同期語８２が実用的な長さであるほど、同期語８２とマッチするビット列がヘッダ８０の同期語位置であると限らなくなってくる。一致するビット列が符号化オーディオデータの中でランダムな位置で現れることがあり得る。具体的な例としては、そのようなビット列のランダムな発生がASTSフォーマットされたデータの中でよく見られている。
【００２０】
結果として、符号化オーディオの処理では、上述の従来技術に依存するどんなフレーム境界検出方法でも、受け入れがたい頻度の検出誤りが生じうる。そのような検出誤りを防止する方法においては、同期語に一致するビット列を検出してから、続くビットが通常のヘッダファイルに対応するかを確認するため解析することで、正しく解析されれば、次のオーディオデータの処理を進める。この解析は、ヘッダ８０の安全性を検証するCRCチェックサム・フィールド９２の評価を含み、これにより有効なヘッダ８０が検出されたことを間接的に検証している。
【００２１】
しかし、ヘッダを全て解析するには時間がかかる。処理サイクルが限定されている処理環境では、頻繁に起こるフレーム境界の検出誤りは、たとえその頻度が比較的低いとしても、望ましくない。
【００２２】
図３は、本発明による実施形態で使用し得るマッチングパタン６０を示している。マッチングパタン６０は、ターゲットとするデータストリーム７０の有効な符号化オーディオフレーム７２にある同期語８２と同一の同期語６２を含む。そのマッチングパタン６０には、データストリーム７０の有効な符号化オーディオフレーム７２のヘッダ８０中で予測できる一つまたは複数のフィールドの値に対応する付加ビット６４も含まれる。その付加ビット６４の内容を以下で説明する。付加ビットは効果的に同期語を拡張するために使用できる。同期語の長さは検出誤り頻度に直接関係するので、同期語の拡張は、検出誤り頻度を下げることができる。
【００２３】
図４は、本発明による１つまたは複数の実施形態で、データストリーム７０の符号化オーディオフレーム７２を処理する方法を示している。データストリーム７０関して知られている情報に基づいて、最初に、マッチングパタン６０を再生する（ブロック１００）。特に、マッチングパタンは、ターゲットとするデータストリーム７０の有効なヘッダ８０で現れる同期語８２に対応する同期語６０を含む。例えば、ターゲットとするデータストリーム７０がADTSフォーマット化されたデータであるとき、同期語６２は１２個の“１”ビットの列で構成される。
【００２４】
ブロック１００で生成されたマッチングパタン６０は、１つ以上の付加ビット６４も含む。この付加ビット６４は、特定のデータストリーム７０の有効なヘッダ８０に含まれている１つまたは複数のフィールドの予測値を含む。上述したように、同じ種類のデータストリーム７０間で値が変化しても、特定のデータストリーム７０中を考えるとき、ヘッダ８０の特定のフィールドの値は一定である。それに応じて、ターゲットとするデータストリーム７０の１つのヘッダ８０に対してそのフィールドの値がわかれば、他のヘッダ８０の中でも対応するフィールドの値が同じであることが予想できる。
【００２５】
また図２を参照すると、ADTSヘッダは、例えば、IDフィールド８４、レイヤフィールド８６、保護なしフィールド８８、プロファイルフィールド８８を含みうる。データストリームがADTSでフォーマットされている場合、そのフィールドの全てが、特定のデータストリーム７０の中で、通常は一定である。逆に、CRCチェックサム・フィールド９２の場合は、フォーマットされたヘッダとヘッダの間でフィールドが変化する。
【００２６】
したがって、オーディオデコーダは、ADTSフォーマットされたデータストリーム７０で使用するためのマッチングパタン６０を生成でき、そのマッチングパタンは、１２ビットの同期語６２と、付加ビット６４としてIDフィールド８４とレイヤフィールド８６、保護なしフィールド８８、プロファイルフィールド９０のうちの１つまたは複数に対応する予想値を含む。以下の限定にはならない例では、結果として得られるマッチングパタン６０の長さは１８ビットである。代わりに、マッチングパタン６０は１２ビットの同期語６２と、付加ビット６４としてIDフィールド８４とレイヤフィールド８６と、保護なしフィールド８８とだけに対応する予想値を含むこともあり得る。この場合には、マッチングパタン６０の長さは１６ビットで、つまり２バイト、である。この長さが本発明の実施形態ではより便利であり得る。
【００２７】
図４のブロック１００は、マッチングパタン６０を生成することを示している。マッチングパタン６０は同期語６２と付加ビット６４の様々な組み合わせにより構成することができる。上述したように、その付加ビットはデータストリーム７０の有効な符号化オーディオフレーム７２のヘッダにある１つ以上のフィールドに対応する予想値から構成される。そのヘッダフィールドの値は、ターゲットとするデータストリーム７０の過去の情報を用いて予想することができる。この過去の情報は、ターゲットとするデータストリーム７０の１つのヘッダ８０の内容を解析することで、または、別に提供されているターゲットとするデータストリーム７０の情報を使うことで取得することができる。例えば、ストリーミングされる環境では、オーディオストリームを発生させているコンピュタサーバが、データストリーム７０と別にオーディオストリームを記述するパラメータを提供することがあり得る。そのパラメータとしては、例えば、データストリーム７０はMPEG-2標準に従ったAACエンコードされたデータである、あるいは、データストリーム７０はヘッダ８０にはCRCチェックサム・フィールド９２を含まない、といった情報を提供するものがある。これらのパラメータがどのようにフォーマットされたかにかかわらず、以上により、最初にヘッダ８０を復号化することなく、ヘッダ８０の中での複数のヘッダフィールドの値を予想することができる。そのため、オーディオデコーダは、ヘッダ８０をデコードすることで得られる情報、又は、別に提供される情報を使ってマッチングパタン６０を生成し得る。
【００２８】
図４は更に、マッチングパタンのインスタンス（instance）がないかをデータストリーム７０の一部を検索することによりフレーム境界７４を検出することを示している（ブロック１０２）。この検索は上述の同期語検索と同じように、つまりマッチングパタン６０に一致するビット列を見つけるためデータストリームを連続的にスキャンすることで行うことができる。例えば、これは、データストリームを、マッチングパタンの長さと同じ長さのシフトレジスタに連続的に通すことで実行することができる。それぞれのサイクルでは、シフトレジスタの内容をマッチングパタン６０と比較し、一致した場合にはフレーム境界を示すことになる。代わりに、データストリーム７０の一部を、その一部の全ての可能な位置をマッチングパタンと比較するように設定された処理部がメモリに格納し、マッチを発見したとき、フレーム境界の検出を示す。上に挙げられた例はすべて、ただの例であって、それらの態様で本発明を限定するものではない。情報処理技術の分野における通常の知識を有する者であれば、データストリーム７０の一部からマッチングパタン６０のインスタンスを検索する様々な方法が可能であることが分かろう。
【００２９】
どんな場合でも、マッチングパタン６０は同期語６２より長いので、マッチングパタンとデータストリームの任意ビット列と一致する確率は、同期語だけの場合に比べて低い。マッチングパタン６０に含まれる付加ビット６４の数によるが、この方法により、検出誤り率を大幅に低減させることできる。例えば、符号化された音楽は一般にランダムであると仮定すると、長さ１６ビットのマッチングパタンを使用することで検出誤り率を９３％以上に低減させることができる。もちろん、実際の場合では、この改善の効果は変化するが、それでも、検出誤り率は、比較的少ない付加ビットを使った時にも、大幅に低減する。
【００３０】
ブロック１０２で表示している検出ステップでは、オプションとしてデータストリーム７０の中でマッチングパタンの複数のインスタンスを検出することもできる。この方法の一例として、データストリーム７０の中で、マッチングパタンのインスタンスを所定の数だけ連続的に検査し、最終に検索したフレーム境界を検出する。例えば、この方法のアプリケーションはフレーム５個をスキップする必要がある場合が挙げられる。この場合には、検出ステップは、データストリーム７０の中で、５個の連続したマッチングパタン６０のインスタンスを検索することを含み、検出したフレーム境界はその５個の連続したインスタンスの最終のインスタンスに対応する。
【００３１】
他の実施形態では、停止信号を受けるまで、データストリーム７０がマッチングパタン６０の複数のインスタンスが連続的検査される。この実施形態では、検出されたフレーム境界７４は停止信号が受ける前に最終的に検査されたマッチングパタン６０のインスタンスに対応するものとすることができる。
【００３２】
本発明のもう一つの実施形態としては、それぞれのマッチングパタン６０のインスタンスの検出を、マッチングが得られたこと示す信号の発生のトリガとし、この信号を停止信号として使用する。例えば、マッチングパタン６０の複数のインスタンスのためにデータストリーム７０が高速に検索される。各マッチングによって信号が発生するので、その発生した信号を数えることで、マッチが検出された回数を示すパラメータが得られる。たとえば、あるアプリケーションが６０フレームをスキップすることが必要になると、６０回のマッチがカウントされるまで検索を実行させ、６０回のカウントを完了すると停止信号を発生することでスキップ処理を終了させる。この場合、検出したフレーム境界７４は、この例では、停止信号を受ける前に検出されたマッチングパタン６０の最終のインスタンスに対応する。
【００３３】
フレーム境界７４を検出してから、次の符号化オーディオフレーム７２に進むことができる。本発明のある実施形態では、ブロック１０４で表示しているように、検出されたフレーム境界７４に対応する符号化オーディオフレーム７２のヘッダ８０がオーディオデータを復号化する前に検証することができる。例えば、CRCチェックサム・フィールド９２を計算することでヘッダ８０を正しく受信したことを確認する。フレーム検出誤りの場合（本発明の実施形態では、発生する確率は低いものの発生する可能性はある）には、CRCチェックサム９２はほぼ確実に不良となり、データが破損したこと、又は、間違ったフレーム境界７４を検出していることが示される。したがって、CRCチェックサム・フィールド９２の評価によって、検出したフレーム境界７４は有効なヘッダ８０に対応しているかを確認できる。
【００３４】
検出したフレーム境界７４が有効なヘッダに対応することを検証できる他の方法も使用可能である。例えば、ヘッダ８０はフレーム長さを示す情報を含んでいれば、処理部はデータストリームの先にあり得る次のフレームの同期語が正しい位置であることが確認できる。しかし、検出されたフレーム境界７４が有効なヘッダに対応することを検証する処理は一般に、追加的な処理ステップを必要とする。したがって、本発明の教示による検出誤りの低減は、フレーム境界検出の検証に使われる処理ステップの低減にもつながる。
【００３５】
ブロック１０６で示すように、検出されたフレームヘッダが有効であれば、符号化オーディオフレーム７２の復号化が、データストリームの検出されたフレーム境界に対応する点から始まる。符号化オーディオフレームの復号化は適用される符号化方法に従って行われる。したがって、例えば、AACで符号化されたオーディオフレーム７３はAACデコーダを使って復号化される。
【００３６】
図５は、本発明の一つまたは複数の実施形態によるオーディオデコーダの一例を簡単化して示すブロック図である。オーディオデコーダ５０は、最低限、制御論理部５２と、マッチングパタン生成部５４と、フレーム境界検出部５６と、フレームデコーダ５８とを備える。デコーダ５０はメモリ４０とインタフェースするように表示され、復号化オーディオを出力する。
【００３７】
制御論理部５２は、オーディオデコーダ５０の全体的な制御を行う。制御論理部５２がオーディオ復号化処理の開始及び停止をトリガする。さらに、制御論理部５２は、キーパッド、タッチ画面などのユーザインタフェースのための論理部も含み、ユーザがオーディオデコーダ５０を操作することを可能にする。
【００３８】
代わりに、又は、追加として、制御論理部５２は他のソフトウェアまたはソフトウェアモジュールと通信するためのAPI(application programming interface)を実現する。
【００３９】
マッチングパタン生成部５４は、上述したように、ターゲットとするデータストリーム７０に対して使用するマッチングパタン６０を生成する。そのため、マッチングパタン生成部５４には、データストリームで使われている同期語８２の情報を含むターゲットとするデータストリーム７０についての情報が提供される。追加として、マッチングパタン生成部５４には、ターゲットとするデータストリーム７０中で、最低限一つの有効なヘッダフィールドの予測値の情報が提供される。上述したように、その情報は、ターゲットとするデータストリームの中で１つのヘッダ８０を読むことで、又は、別に提供されるデータストリームに関する情報から参照することで取得することができる。どの場合でも、マッチングパタン生成部５４は、同期語６２（同期語８２とまったく同じである）と有効なヘッダの１つまたは複数のヘッダフィールドに対応する予測値とを含むマッチングパタン６０を生成する。
【００４０】
マッチングパタン６０のインスタンスをデータストリームの一部の中から検索するために、フレーム境界検出部５６によってマッチングパタン６０が使用される。マッチングパタン６０のそれぞれのインスタンスは一般に、フレーム境界７４に対応する。本発明のある実施形態では、フレーム境界検出部５６は、マッチングパタンの最初のインスタンスで検索を停止し、それに対応するフレーム境界を取得する。他の実施形態では、フレーム境界検出部５６は、データストリーム７０を、制御論理部５２から停止信号を発生するまで検索し続けるように構成され、それにより、マッチングパタン６０の複数のインスタンスを検索する。この例の場合、検出されたフレーム境界７４は停止信号受ける前に検索された最終のマッチングパタン６０のインスタンスに対応するフレーム境界になる。
【００４１】
もう一つの方法として、上述したように、フレーム境界検出部５６は、データストリーム７０を、所定の回数のマッチングパタンのインスタンスを検索するまで検索し続けるように構成され、それによって、得られる検出されたフレーム境界７４は最終に検索されたマッチングパタンのインスタンスに対応するものになる。
【００４２】
どんな場合でも、フレーム境界検出部５６は、検出されたフレーム境界７４に関する情報はフレームデコーダ５８に転送する。フレームデコーダ５８は、適切な復号化アルゴリズムを使用し、１つまたは複数の符号化オーディオフレームを復号化する。フレームデコーダ５８は、オーディオアプリケーションで使用するため、及び/又は、アナログオーディオに変換するために、例えばPCM（pulse code modulation）オーディオストリームのような非圧縮のオーディオストリームになる復号化オーディオ出力を発生する。
【００４３】
オーディオデコーダ５０はデータストリーム７０にアクセスするため、メモリとインタフェースすることがあり得る。データストリーム７０はファイルとして組織化し、メモリ４０に格納することが可能で、この場合、メモリ４０はランダムアクセスメモリ（RAM）、又はフラシュ、磁気ディスク記憶装置のような不揮発性メモリであり得る。
【００４４】
データストリーム７０はネットワーク上でストリーミングオーディオ、またはマルチメディア情報源から生成されうる。メモリ４０は、データストリーム７０の一部をバファリングするランダムアクセスメモリ（RAM）である。
【００４５】
制御論理部５２、マッチングパタン生成部５４、フレーム境界検出部５６、フレームデコーダ５８は、デジタル論理ハードウェア、又は、ソフトウェアを実行するマイクロプロセッサ、または、その両方の組み合わせで実現することができる。どんなブロックでも専用のプロセッサで実現することができるし、いくつかのブロックを１つのプロセッサで実現することもできる。フレームデコーダ５８は特に、専用のDSP（digital signal processor）で実現することができ、他の部分は一般的に全体として、または部分として、一般使用のためのマイクロプロセッサまたはDSPを使って実現することができる。追加として、どんなブロックの機能でも、発明の本質から離れることなく、１つまたは複数のプロセッサまたはハードウェアブロックの間で分けることがあり得る。
【００４６】
当業者であれば、本発明によれば、オーディオデコーダで使用される符号化オーディオストリームのフレーム境界を、高速かつ効果的に検出する方法及び装置が広く提供されることが理解されよう。
【００４７】
本発明は、発明の本質から離れることがなく、ここに記載されてない方法で実施することが可能である。そのため、本発明は上述の特徴及び利点又は図面に限定されない。本発明は、以下の特許請求の範囲及びそれに対して法律的に均等な範囲によってのみ限定される。
【図１】
2010525414.tif 000003
【図２】
2010525414.tif 000004
【図３】
2010525414.tif 000005
【図４】
2010525414.tif 000006
【図５】
2010525414.tif 000007
【手続補正書】
【提出日】平成21年12月25日(2009.12.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データストリーム（７０）における複数の符号化オーディオフレーム（７２）であって各フレームがヘッダ（８０）を有する符号化オーディオフレーム（７２）を復号化する方法であって、
同期語（６２）と、有効な符号化オーディオフレーム（７２）のヘッダ（８０）フィールドに対する少なくとも１つの予測値に対応する１つ以上の付加ビット（６４）とを含むマッチングパタン（６０）を生成するステップと、
前記マッチングパタン（６０）のインスタンスがないかデータストリーム（７０）の部分を検索することによりフレーム境界（７４）を検出するステップと、
前記検出されたフレーム境界（７４）に対応する前記データストリーム（７０）における点から始まる１つ以上の符号化オーディオフレーム（７２）を復号化するステップと、
を有することを特徴とする方法。
【請求項２】
前記フレーム境界（７４）を検出するステップは、前記マッチングパタン（６０）の所定数のインスタンスを検索するステップを含み、前記検出されたフレーム境界（７４）は、前記所定数のインスタンスのうちの最後のものに対応することを特徴とする請求項１に記載の方法。
【請求項３】
停止信号を受信するステップを更に有し、
前記フレーム境界（７４）を検出するステップは、前記停止信号が受信されるまで、前記マッチングパタン（６０）のインスタンスがないか前記データストリーム（７０）の部分を検索するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記符号化オーディオフレーム（７２）は、Advanced Audio Codec Rawデータブロックを含み、前記フレームヘッダ（８０）は、Audio Data Transport Stream (ADTS)ヘッダを含み、前記マッチングパタン（６０）は、１２ビット同期語（６２）と、１ビットIDフィールド（８４）、２ビットレイヤフィールド（８６）、１ビット保護なしフィールド（８８）の予測値に対応する付加ビット（６４）とを含むことを特徴とする請求項１に記載の方法。
【請求項５】
オーディオ処理誤りを検出するステップと、
前記オーディオ処理誤りに対応する前記データストリーム（７０）における誤り位置を特定するステップと、を更に有し、
前記マッチングパタン（６０）のインスタンスがないか前記データストリーム（７０）の部分を検索するステップは、前記誤り位置から開始することを特徴とする請求項１に記載の方法。
【請求項６】
前記フレーム境界（７４）を検出するステップは、ＣＲＣ（cyclical redundancy checksum）ビットを評価して前記検出されたフレーム境界（７４）が有効なヘッダ（８０）に対応しているかを確認することにより、前記検出されたフレーム境界（７４）が有効なヘッダ（８０）に対応しているかを検証するステップを含むことを特徴とする請求項１に記載の方法。
【請求項７】
データストリーム（７０）における符号化オーディオフレーム（７２）を復号化するオーディオデコーダ（５０）であって、
同期語（６２）と、有効な符号化オーディオフレーム（７２）のヘッダ（８０）フィールドに対する少なくとも１つの予測値に対応する１つ以上の付加ビット（６４）とを含むマッチングパタン（６０）を生成するマッチングパタン生成部（５４）と、
前記マッチングパタン（６０）のインスタンスがないかデータストリーム（７０）の部分を検索してフレーム境界（７４）を検出するフレーム境界検出部（５６）と、
前記検出されたフレーム境界（７４）に対応する前記データストリーム（７０）における点から始まる１つ以上の符号化オーディオフレーム（７２）を復号化するフレームデコーダ（５８）と、
を備えることを特徴とするオーディオデコーダ（５０）。
【請求項８】
前記フレーム境界検出部（５６）は、前記マッチングパタン（６０）の所定数のインスタンスを検索するように構成され、前記検出されたフレーム境界（７４）は、前記所定数のインスタンスのうちの最後のものに対応することを特徴とする請求項７に記載のオーディオデコーダ（５０）。
【請求項９】
前記フレーム境界検出部（５６）は、停止信号を受信するように構成され、
前記フレーム境界検出部（５６）は更に、前記停止信号が受信されるまで、前記マッチングパタン（６０）のインスタンスがないか前記データストリーム（７０）の部分を検索するように構成されている
ことを特徴とする請求項７に記載のオーディオデコーダ（５０）。
【請求項１０】
オーディオ処理誤りを検出し、前記オーディオ処理誤りに対応する前記データストリームにおける誤り位置を特定する復号化誤り検出部を更に有し、
前記フレーム境界検出部（５６）は、前記誤り位置から前記検索を開始する
ことを特徴とする請求項７に記載のオーディオデコーダ（５０）。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
データストリームにおける複数の符号化オーディオフレームであって各フレームがヘッダを有する符号化オーディオフレームを復号化するオーディオデコーダが提供される。オーディオデコーダは、同期語と、有効な符号化オーディオフレームのヘッダフィールドに対する少なくとも１つの予測値に対応する１つ以上の付加ビットとを含むマッチングパタンを生成し、マッチングパタンのインスタンスがないかデータストリームの部分を検索してフレーム境界を検出し、検出されたフレーム境界に対応するデータストリームにおける点から始まる１つ以上の符号化オーディオフレームを復号化するための１つ以上の回路を含む。
実施形態において、オーディオデコーダは、同期語と、有効な符号化オーディオフレームのヘッダフィールドに対する少なくとも１つの予測値に対応する１つ以上の付加ビットとを含むマッチングパタンを生成するマッチングパタン生成部を含む。オーディオデコーダは更に、前記マッチングパタンのインスタンスがないかデータストリームの部分を検索してフレーム境界を検出するフレーム境界検出部と、前記検出されたフレーム境界に対応する前記データストリームにおける点から始まる１つ以上の符号化オーディオフレームを復号化するフレームデコーダとを含む。実施形態において、前記フレーム境界検出部は、前記マッチングパタンの所定数のインスタンスを検索するように構成され、前記検出されたフレーム境界は、前記所定数のインスタンスのうちの最後のものに対応する。また、前記フレーム境界検出部は、停止信号を受信するように構成され、前記フレーム境界検出部は更に、前記停止信号が受信されるまで、前記マッチングパタンのインスタンスがないか前記データストリームの部分を検索するように構成される。また、実施形態において、前記フレーム境界検出部は更に、検出された前記マッチングパタンのインスタンスの数を示す、前記停止信号の生成に用いるためのフレーム検出信号を提供するように構成される。また、実施形態において、前記符号化フレームは、Audio Data Transport Stream (ADTS)ヘッダを含み、マッチングパタン生成部は、１２ビット同期語と、１ビットIDフィールド、２ビットレイヤフィールド、１ビット保護なしフィールドの予測値に対応する付加ビットとを含むマッチングパタンを生成するように構成される。
また、実施形態において、オーディオ処理誤りを検出し、前記オーディオ処理誤りに対応する前記データストリームにおける誤り位置を特定する復号化誤り検出部を更に有し、前記フレーム境界検出部は、前記誤り位置から前記検索を開始する。また、実施形態において、前記フレーム境界検出部は更に、前記検出されたフレーム境界が有効なヘッダに対応しているかを検証するように構成される。また、実施形態において、前記フレーム境界検出部は、前記データストリームにおけるＣＲＣ（cyclical redundancy checksum）ビットを評価して前記検出されたフレーム境界が有効なヘッダに対応しているかを確認することによって、前記検出されたフレーム境界が有効なヘッダに対応しているかを検証するように構成される。
データストリームにおける複数の符号化オーディオフレームを復号化するための種々の方法も開示する。そのような方法の一例は、同期語と、有効な符号化オーディオフレームのヘッダフィールドに対する少なくとも１つの予測値に対応する１つ以上の付加ビットとを含むマッチングパタンを生成するステップと、前記マッチングパタンのインスタンスがないかデータストリームの部分を検索することによりフレーム境界を検出するステップと、前記検出されたフレーム境界に対応する前記データストリームにおける点から始まる１つ以上の符号化オーディオフレームを復号化するステップとを有する。実施形態において、前記フレーム境界を検出するステップは、前記マッチングパタンの所定数のインスタンスを検索するステップを含み、前記検出されたフレーム境界は、前記所定数のインスタンスのうちの最後のものに対応する。実施形態において、上記方法は、停止信号を受信するステップを更に有し、前記フレーム境界を検出するステップは、前記停止信号が受信されるまで、前記マッチングパタンのインスタンスがないか前記データストリームの部分を検索するステップを含む。実施形態において、前記フレーム境界を検出するステップは、前記停止信号が受信される前に検出された前記マッチングパタンの最後のインスタンスに対応するフレーム境界を検出するステップを含む。実施形態において、上記方法は、検出された前記マッチングパタンのインスタンスの数を示す、前記停止信号の生成に用いるためのフレーム検出信号を提供するステップを更に有する。
方法の実施形態においては、上記した装置と同様に、前記符号化オーディオフレームは、Advanced Audio Codec Rawデータブロックを含む。実施形態において、前記フレームヘッダは、Audio Data Transport Stream (ADTS)ヘッダを含み、前記マッチングパタンは、１２ビット同期語と、１ビットIDフィールド、２ビットレイヤフィールド、１ビット保護なしフィールドの予測値に対応する付加ビットとを含む。
実施形態において、上記したいずれかの方法は、オーディオ処理誤りを検出するステップと、前記オーディオ処理誤りに対応する前記データストリームにおける誤り位置を特定するステップとを更に有し、前記マッチングパタンのインスタンスがないか前記データストリームの部分を検索するステップは、前記誤り位置から開始する。また、実施形態において、前記フレーム境界を検出するステップは、前記検出されたフレーム境界が有効なヘッダに対応しているかを検証するステップを含む。また、実施形態において、前記検出されたフレーム境界が有効なヘッダに対応しているかを検証するステップは、ＣＲＣ（cyclical redundancy checksum）ビットを評価して前記検出されたフレーム境界が有効なヘッダに対応しているかを確認するステップを含む。
【国際調査報告】
2010525414.tif 000008
2010525414.tif 000009
2010525414.tif 000010