(57)【要約】オーバーラップ変換を行って生成された二つのストリームから、それぞれ第１群のアクセス・ユニットと第２群のアクセス・ユニットとを入力する入力部１と、第１群のアクセス・ユニットを復号して第１群のフレームを生成し、第２群のアクセス・ユニットを復号して第２群のフレームを生成する復号部２と、第１群のフレームと第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットを基準として、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成し、二つのストリームを、所定の数の第３群のアクセス・ユニットを継ぎ目として、二つのストリームと所定の数の第３群のアクセス・ユニットとの境界において隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合する合成部３と、を備える、ストリーム合成装置を提供する。【選択図】図７
2011021239.tif 000002
【特許請求の範囲】
【請求項１】
オーバーラップ変換を行って生成された圧縮データからなる二つのオーディオ・ストリームを接合して一つのオーディオ・ストリームを生成するオーディオ・ストリーム合成装置であって、
前記二つのオーディオ・ストリームを復号するための単位となるアクセス・ユニットをそれぞれ第１群のアクセス・ユニットと第２群のアクセス・ユニットとし、前記二つのオーディオ・ストリームを復号して得られるフレームをそれぞれ第１群のフレームと第２群のフレームとし、前記第１群のフレームと前記第２群のフレームを混合して生成した混合フレームを符号化して得られるアクセス・ユニットを第３群のアクセス・ユニットとし、
前記オーディオ・ストリーム合成装置は、
第１群のアクセス・ユニットと第２群のアクセス・ユニットとを入力する入力部と、
前記入力部によって入力された第１群のアクセス・ユニットを復号して第１群のフレームを生成し、前記第２群のアクセス・ユニットを復号して第２群のフレームを生成する復号部と、
前記復号部によって復号された複数の第１群のフレームと複数の第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットを基準として、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成し、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットとを、前記所定の数の第３群のアクセス・ユニットを継ぎ目として、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットと、前記所定の数の第３群のアクセス・ユニットとの境界において隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合する合成部と、
を備える、前記オーディオ・ストリーム合成装置。
【請求項２】
前記合成部は、
前記複数の第１群のフレームのうち、末尾のフレームを含む所定の数の第１群のフレームと、前記複数の第２群のフレームのうち、先頭のフレームを含む所定の数の第２群のフレームとを、前記所定の数の第１群のフレームの先頭から少なくとも１以上のフレームと、前記所定の数の第２群のフレームの末尾から少なくとも１以上のフレームとを除くフレームどうしが相互に重なるように混合して、前記所定の数よりも大きい数の混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成する符号化部を含む、請求項１記載のオーディオ・ストリーム合成装置。
【請求項３】
前記合成部は、
前記複数の第１群のアクセス・ユニットと前記所定の数の第３群のアクセス・ユニットとを、前記所定の数の第１群のフレームを復号するために用いた複数のアクセス・ユニットのうち先頭のアクセス・ユニットと前記所定の数の第３群のアクセス・ユニットの先頭のアクセス・ユニットとが隣接するように接合し、
前記複数の第２群のアクセス・ユニットと前記所定の数の第３群のアクセス・ユニットとを、前記所定の数の第２群のフレームを復号するために用いた複数のアクセス・ユニットのうち末尾のアクセス・ユニットと前記所定の数の第３群のアクセス・ユニットの末尾のアクセス・ユニットとが隣接するように接合する接合部を含む、請求項２記載のオーディオ・ストリーム合成装置。
【請求項４】
前記符号化部は、前記所定の数の第３群のアクセス・ユニットのバッファの初期占有量と最後の占有量が、それぞれ、前記所定の数の第１群のフレームを復号するために用いた複数のアクセス・ユニットのうち先頭部分のアクセス・ユニットのバッファの占有量と、前記所定の数の第２群のフレームを復号するために用いた複数のアクセス・ユニットのうち末尾部分のアクセス・ユニットのバッファの占有量と一致するように、前記第３群のアクセス・ユニットの符号化を行う、請求項３記載のオーディオ・ストリーム合成装置。
【請求項５】
前記合成部は、前記第１群のフレームと前記第２群のフレームとをクロスフェードして混合する混合部を含む、請求項１記載のオーディオ・ストリーム合成装置。
【請求項６】
前記第１群のアクセス・ユニットと前記第２群のアクセス・ユニットは、等しい伝送レートとサンプリング周波数で入力される、請求項１記載のオーディオ・ストリーム合成装置。
【請求項７】
前記第１群のアクセス・ユニットと前記第２群のアクセス・ユニットは、ＡＤＴＳ（Ａｕｄｉｏ  Ｄａｔａ  Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ）フレーム形式である、請求項１記載のオーディオ・ストリーム合成装置。
【請求項８】
オーバーラップ変換を行って生成された圧縮データからなる二つのオーディオ・ストリームを接合して一つのオーディオ・ストリームを生成するオーディオ・ストリーム合成方法であって、
前記二つのオーディオ・ストリームを復号するための単位となるアクセス・ユニットをそれぞれ第１群のアクセス・ユニットと第２群のアクセス・ユニットとし、前記二つのオーディオ・ストリームを復号して得られるフレームをそれぞれ第１群のフレームと第２群のフレームとし、前記第１群のフレームと前記第２群のフレームを混合して生成した混合フレームを符号化して得られるアクセス・ユニットを第３群のアクセス・ユニットとし、
前記オーディオ・ストリーム合成方法は、
第１群のアクセス・ユニットと第２群のアクセス・ユニットとを入力する入力ステップと、
前記入力ステップで入力された第１群のアクセス・ユニットを復号して第１群のフレームを生成し、前記第２群のアクセス・ユニットを復号して第２群のフレームを生成する復号ステップと、
前記復号ステップで復号された複数の第１群のフレームと複数の第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットを基準として、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成し、
前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットとを、前記所定の数の第３群のアクセス・ユニットを継ぎ目として、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットと、前記所定の数の第３群のアクセス・ユニットとの境界において隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合する合成ステップと、
を備える、前記オーディオ・ストリーム合成方法。
【請求項９】
オーバーラップ変換を行って生成された圧縮データからなる二つのオーディオ・ストリームを接合して一つのオーディオ・ストリームを生成するオ処理をコンピュータに実行させるオーディオ・ストリーム合成プログラムであって、
前記二つのオーディオ・ストリームを復号するための単位となるアクセス・ユニットをそれぞれ第１群のアクセス・ユニットと第２群のアクセス・ユニットとし、前記二つのオーディオ・ストリームを復号して得られるフレームをそれぞれ第１群のフレームと第２群のフレームとし、前記第１群のフレームと前記第２群のフレームを混合して生成した混合フレームを符号化して得られるアクセス・ユニットを第３群のアクセス・ユニットとし、
前記オーディオ・ストリーム合成プログラムは、
第１群のアクセス・ユニットと第２群のアクセス・ユニットとを入力する入力ステップと、
前記入力ステップで入力された第１群のアクセス・ユニットを復号して第１群のフレームを生成し、前記第２群のアクセス・ユニットを復号して第２群のフレームを生成する復号ステップと、
前記復号ステップで復号された複数の第１群のフレームと複数の第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットを基準として、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成し、
前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットとを、前記所定の数の第３群のアクセス・ユニットを継ぎ目として、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットと、前記所定の数の第３群のアクセス・ユニットとの境界において隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合する合成ステップと、をコンピュータに実行させる、前記オーディオ・ストリーム合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮データからなるストリームを合成する装置、方法及びプログラムに関し、例えば、オーディオ・データを圧縮して生成したオーディオ・ストリームを合成する装置、方法及びプログラムに関する。
【背景技術】
【０００２】
オーディオ圧縮では、オーディオ信号を所定数のデータ・サンプル（以後、「オーディオ・サンプル」と呼ぶ）からなるブロックに分割し、さらに、ブロック毎にそれぞれが所定の周波数成分を表す周波数信号に変換して符号化してオーディオ圧縮データを生成している。ここで、例えば、ＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ：アドバンスト・オーディオ・コーディング）に準拠した符号化処理などでは、より滑らかなオーディオ圧縮データを得るために、隣接するブロックを部分的にオーバーラップさせる処理（以後、「オーバーラップ変換」と呼ぶ）を行っている（例えば、非特許文献１参照）。【０００３】
また、オーディオ圧縮データからなるオーディオ・ストリームに対しては、バッファ管理上の制約を満たすため、ＣＢＲ（Ｃｏｎｓｔａｎｔ  Ｂｉｔ−Ｒａｔｅ：固定ビット・レート）やＡＢＲ（Ａｖｅｒａｇｅ  Ｂｉｔ−Ｒａｔｅ：平均ビット・レート）などのレート・コントロールが必要とされている（例えば、非特許文献１、２参照）。【０００４】
オーディオ編集では、オーディオ圧縮データからなるオーディオ・ストリームを編集することが頻繁に行われており、かかるオーディオ・ストリームを繋ぎ合わせることもある。オーディオ圧縮データは所定数のオーディオ・サンプルからなるブロック毎に部分的にオーバーラップ変換をして生成されているため、異なるオーディオ・ストリームを単純に接合すると、オーディオ・ストリームのデータの継ぎ目部分で不完全に復号されるフレームが発生してアーティファクト（歪み）が発生することがある。さらに、オーディオ圧縮データを安易に接合すると、バッファ管理上の制約を破り、バッファのオーバーフローやアンダーフローが発生ることもある。このような問題を回避するため、従来、異なるオーディオ・ストリームを接合する場合には、一度すべてのオーディオ・ストリームを復号した後に再び符号化する必要があった。【０００５】
一方で、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）符号化方式で符号化された画像データ（以後、「ＭＰＥＧ画像データ」と呼ぶ）同士を、ＭＰＥＧ画像データの継ぎ目に限定して再符号化して記憶媒体に記憶させるＭＰＥＧデータの記憶方法がある（特許文献１参照）。この技術によると、二つの異なるＭＰＥＧ画像データを接合する際、所定の区間におけるＶＢＶ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒ  Ｖｅｒｉｆｉｅｒ）バッファの占有値に関する情報を事前に記憶しておき、この情報に基づいてオーバーフローやアンダーフローが起きないようにしてＶＢＶバッファの管理をしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−５２０１０号公報
【非特許文献】
【０００７】
【非特許文献１】ＩＳＯ／ＩＥＣ  １３８１８−７：２００６，  “Ｉｎｆｏｒｍａｔｉｏｎ  ＴｅｃｈｎｏＬｏｇｙ  −  Ｇｅｎｅｒｉｃ  Ｃｏｄｉｎｇ  ｏｆ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  ａｎｄ  Ａｓｓｏｃｉａｔｅｄ  Ａｕｄｉｏ  −  Ｐａｒｔ  ７：  Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ  （ＡＡＣ），”  ２００６
【非特許文献２】Ｍ．  Ｂｏｓｉ  ａｎｄ  Ｒ．  Ｅ．  ＧｏＬｄｂｅｒｇ，  “Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  ＤｉｇｉｔａＬ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ  ａｎｄ  Ｓｔａｎｄａｒｄｓ，”  ＫＬｕｗｅｒ  Ａｃａｄｅｍｉｃ  ＰｕｂＬｉｓｈｅｒｓ，  ２００３
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のように、複数の異なるオーディオ・ストリームを接合する場合、すべてのオーディオ・ストリームを再符号化することは、非効率で時間と計算コストがかかるという課題があった。【０００９】
また、特許文献１に開示されたＭＰＥＧデータの記憶方法は、ＶＢＶバッファの要件を満たしながら、継ぎ目に限定して再符号化をして異なるＭＰＥＧ画像データを接合するものであるが、オーバーラップ変換を行って生成された圧縮データの接合に関する課題を解決するものではない。
【課題を解決するための手段】
【００１０】
そこで本発明は、オーバーラップ変換を行って生成された圧縮データのストリームを、すべての圧縮データをオーディオ・フレームに復号して再符号化することなく滑らかに接合するストリーム合成装置、ストリーム合成方法及びストリーム合成プログラムを提供することを目的とする。【００１１】
本発明の第１の態様によると、オーバーラップ変換を行って生成された圧縮データからなる二つのオーディオ・ストリームを接合して一つのオーディオ・ストリームを生成するオーディオ・ストリーム合成装置であって、前記二つのオーディオ・ストリームを復号するための単位となるアクセス・ユニットをそれぞれ第１群のアクセス・ユニットと第２群のアクセス・ユニットとし、前記二つのオーディオ・ストリームを復号して得られるフレームをそれぞれ第１群のフレームと第２群のフレームとし、前記第１群のフレームと前記第２群のフレームを混合して生成した混合フレームを符号化して得られるアクセス・ユニットを第３群のアクセス・ユニットとすると、前記オーディオ・ストリーム合成装置は、
第１群のアクセス・ユニットと第２群のアクセス・ユニットとを入力する入力部と、前記入力部によって入力された第１群のアクセス・ユニットを復号して第１群のフレームを生成し、前記第２群のアクセス・ユニットを復号して第２群のフレームを生成する復号部と、前記復号部によって復号された複数の第１群のフレームと複数の第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットを基準として、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成し、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットとを、前記所定の数の第３群のアクセス・ユニットを継ぎ目として、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットと、前記所定の数の第３群のアクセス・ユニットとの境界において隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合する合成部と、を備える、ストリーム合成装置を提供する。【００１２】
上述のストリームはオーバーラップ変換を行って生成されているため、個々のフレームを復号するための単位となるアクセス・ユニットのうち、隣接する２つのアクセス・ユニットは、その２つのアクセス・ユニットに共通する同一のフレームの情報を分配し合っている。この結果、一つのフレームを正しく復号するためには、該フレームの情報を分配して有する、隣接する前後の２つのアクセス・ユニットが必須となる。従来、異なるストリームを接合する場合、個々のフレームを復号するための単位となるアクセス・ユニットのうち、隣接する２つのアクセス・ユニットにそれらに共通するフレームを復号するための必須の情報が分配されていることに着目することはなかった。このため、異なるストリームどうしを単純に接合しようとすると、ストリームとストリームとの境界で、隣接する２つのアクセス・ユニットは各々、同一のフレームを復号するための情報ではなく、異なるフレームを復号するための情報の一部を有するようになる。このため、境界部の２つのアクセス・ユニットから不完全に復号されるフレームが発生するようになり、この不完全に復号されるフレームがアーティファクトの原因となった。本発明のストリーム合成装置は上記構成によって、合成部が、複数の第１群のフレームと複数の第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットに基づいて、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、二つのストリームの継ぎ目となる第３群のアクセス・ユニットを生成するので、すべての圧縮データをフレームに復号して再び符号化（以後、「再符号化」と呼ぶ）する必要はない。さらに合成部が、こうして生成した所定の数の第３群のアクセス・ユニットを継ぎ目として、二つのストリームと所定の数の第３群のアクセス・ユニットとの境界で、隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合するので、すべての圧縮データをフレームに復号して再符号化せずとも、アーティファクトの発生しない滑らかな接合を実現できる。【００１３】
例えば、本発明のストリーム合成装置において、前記合成部は、前記複数の第１群のフレームのうち、末尾のフレームを含む所定の数の第１群のフレームと、前記複数の第２群のフレームのうち、先頭のフレームを含む所定の数の第２群のフレームとを、前記所定の数の第１群のフレームの先頭から少なくとも１以上のフレームと、前記所定の数の第２群のフレームの末尾から少なくとも１以上のフレームとを除くフレームどうしが相互に重なるように混合して、前記所定の数よりも大きい数の混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成する符号化部を含むようにしてもよい。さらに、本発明のストリーム合成装置において、前記合成部は、前記複数の第１群のアクセス・ユニットと前記所定の数の第３群のアクセス・ユニットとを、前記所定の数の第１群のフレームを復号するために用いた複数のアクセス・ユニットのうち先頭のアクセス・ユニットと前記所定の数の第３群のアクセス・ユニットの先頭のアクセス・ユニットとが隣接するように接合し、前記複数の第２群のアクセス・ユニットと前記所定の数の第３群のアクセス・ユニットとを、前記所定の数の第２群のフレームを復号するために用いた複数のアクセス・ユニットのうち末尾のアクセス・ユニットと前記所定の数の第３群のアクセス・ユニットの末尾のアクセス・ユニットとが隣接するように接合する接合部を含むようにしてもよい。【００１４】
このような構成によって、本発明のストリーム合成装置は、二つのストリームの継ぎ目となる第３群のアクセス・ユニットを、再符号化されず出力されるアクセス・ユニットの一部を含むようにして第１群のアクセス・ユニットと第２群のアクセス・ユニットとを復号して、それぞれ第１群のフレームと第２群のフレームを生成し、これらの第１群のフレームと第２群のフレームとを混合して再符号化して生成することができる。この第３群のアクセス・ユニットを継ぎ目部分として用いることによって、再符号化されるストリームと再符号化されないストリームとの境界で隣接する２つのアクセス・ユニットには、通常に符号化された他の部分と同様に、それらに共通する同一のフレームを復号するための情報が分配されているため、不完全に復号されるフレームが発生することがない。従って、オーバーラップ変換を行って生成された異なる圧縮データのストリームどうしを接合する場合であっても、すべての圧縮データをフレームに復号して再符号化せずとも、アーティファクトの発生しない滑らかな接合を実現できる。このため、すべての圧縮データをオーディオ・フレームに復号して再符号化することなく滑らかに接合することが可能となる。【００１５】
さらに、本発明のストリーム合成装置において、前記符号化部は、前記所定の数の第３群のアクセス・ユニットのバッファの初期占有量と最後の占有量が、前記所定の数の第１群のフレームを復号するために用いた複数のアクセス・ユニットのうち先頭部分のアクセス・ユニットのバッファの占有量と、前記所定の数の第２群のフレームを復号するために用いた複数のアクセス・ユニットのうち末尾部分のアクセス・ユニットのバッファの占有量と一致するように、前記第３群のアクセス・ユニットの符号化を行うようにしてもよい。【００１６】
このような構成によって、本発明のストリーム合成装置は、二つのストリームのそれぞれを構成する第１群のアクセス・ユニットと第２群のアクセス・ユニットとにおいて、再符号化されずに接合される第１群のアクセス・ユニットの末尾の部分となる、所定の数の第１群のフレームを復号するために用いた複数のアクセス・ユニットのうち先頭のアクセス・ユニットのバッファの占有量と、再符号化される接合されるストリームの第２群のアクセス・ユニットの末尾の部分となる、所定の数の第２群のフレームを復号するために用いた複数のアクセス・ユニットのうち末尾から２番目のアクセス・ユニットのバッファの占有量とが、それぞれ、再符号化して生成された第３群のアクセス・ユニットのバッファの初期占有量と最後の占有量と等しくなるようにレート制御して、第３群のアクセス・ユニットを継ぎ目として接合することによって、合成ストリームのバッファの占有量の変化を連続的にすることができる。この第３群のアクセス・ユニットを継ぎ目部分として用いることによって、別々にレート制御された異なるストリーム間のバッファの占有量を連続的に保ち、合成ストリームにおいてバッファの制約を満たすように合成ストリームを合成できる。【００１７】
本発明のストリーム合成装置において、前記合成部は、前記第１群のフレームと前記第２群のフレームとをクロスフェードして混合する混合部を含んでもよい。【００１８】
このような構成によって、本発明のストリーム合成装置は、この第３群のアクセス・ユニットを継ぎ目部分として用いることによって、ストリームどうしを一層滑らかに接合することができる。【００１９】
本発明の第２の態様によると、オーバーラップ変換を行って生成された圧縮データからなる二つのオーディオ・ストリームを接合して一つのオーディオ・ストリームを生成するオーディオ・ストリーム合成方法であって、前記二つのオーディオ・ストリームを復号するための単位となるアクセス・ユニットをそれぞれ第１群のアクセス・ユニットと第２群のアクセス・ユニットとし、前記二つのオーディオ・ストリームを復号して得られるフレームをそれぞれ第１群のフレームと第２群のフレームとし、前記第１群のフレームと前記第２群のフレームを混合して生成した混合フレームを符号化して得られるアクセス・ユニットを第３群のアクセス・ユニットとすると、前記オーディオ・ストリーム合成方法は、第１群のアクセス・ユニットと第２群のアクセス・ユニットとを入力する入力ステップと、前記入力ステップで入力した第１群のアクセス・ユニットを復号して第１群のフレームを生成し、前記第２群のアクセス・ユニットを復号して第２群のフレームを生成する復号ステップと、前記復号ステップで復号した複数の第１群のフレームと複数の第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットを基準として、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成し、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットとを、前記所定の数の第３群のアクセス・ユニットを継ぎ目として、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットと、前記所定の数の第３群のアクセス・ユニットとの境界において隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合する合成ステップと、を備える、ストリーム合成方法を提供する。【００２０】
本発明の第３の態様によると、オーバーラップ変換を行って生成された圧縮データからなる二つのオーディオ・ストリームを接合して一つのオーディオ・ストリームを生成するオ処理をコンピュータに実行させるオーディオ・ストリーム合成プログラムであって、前記二つのオーディオ・ストリームを復号するための単位となるアクセス・ユニットをそれぞれ第１群のアクセス・ユニットと第２群のアクセス・ユニットとし、前記二つのオーディオ・ストリームを復号して得られるフレームをそれぞれ第１群のフレームと第２群のフレームとし、前記第１群のフレームと前記第２群のフレームを混合して生成した混合フレームを符号化して得られるアクセス・ユニットを第３群のアクセス・ユニットとすると、前記オーディオ・ストリーム合成プログラムは、第１群のアクセス・ユニットと第２群のアクセス・ユニットとを入力する入力ステップと、前記入力ステップで入力した第１群のアクセス・ユニットを復号して第１群のフレームを生成し、前記第２群のアクセス・ユニットを復号して第２群のフレームを生成する復号ステップと、前記復号ステップで復号した複数の第１群のフレームと複数の第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットを基準として、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成し、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットとを、前記所定の数の第３群のアクセス・ユニットを継ぎ目として、前記複数の第１群のアクセス・ユニットと前記複数の第２群のアクセス・ユニットと、前記所定の数の第３群のアクセス・ユニットとの境界において隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合する合成ステップと、をコンピュータに実行させる、オーディオ・ストリーム合成プログラムを提供する。
【発明の効果】
【００２１】
本発明によれば、オーバーラップ変換を行って生成された圧縮データのストリームを、すべての圧縮データを再符号化することなく、効率的に、滑らかに接合することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施の形態のストリーム合成装置のブロック図である。
【図２】図１のストリーム合成装置が実行する動作を説明するフローチャートである。
【図３】オーディオ・フレームとアクセス・ユニットとの関係を示す図である。
【図４】バッファの状態を示す図である。
【図５】ストリームＡとストリームＢとを接合する一例を示す図である。
【図６】バッファの状態を示す図である。
【図７】本発明の第２の実施の形態のストリーム合成装置のブロック図である。
【図８】図７のストリーム合成装置が実行する動作を説明するフローチャートである。
【図９】ストリームＡとストリームＢとを接合する場合の擬似コードを示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態について説明する。
【００２４】
＜第１の実施の形態＞
＜１．ストリーム接合処理の概要＞
図１は、本発明のストリーム合成を実行する代表的な実施の形態のストリーム合成装置１０の概略機能ブロック図である。まず、図１のストリーム合成装置１０を用いて、本発明のストリーム合成の基本的な原理について説明する。
【００２５】
ストリーム合成装置１０は、第１のストリームＡと第２のストリームＢを入力する入力部１と、入力した第１のストリームＡと第２のストリームＢをそれぞれ復号して、第１群のフレームと第２群のフレームとを生成する復号部である復号部２と、第１群のフレームと第２群のフレームとから第３のストリームＣを生成する合成部３とを備える。合成部はフレームを再符号化する符号化部（図示していない）を含む。ここで、それぞれ第１のストリームＡと第２のストリームＢを復号して得られる個々のフレームを「第１群のフレーム」と「第２群のフレーム」と呼ぶことにする。
【００２６】
ここで、第１のストリームＡと第２のストリームＢは、信号をサンプリングして得たフレームにオーバーラップ変換を行って符号化して生成された圧縮データのストリームとする。
【００２７】
図２は、ストリーム合成装置１０がストリームを合成する動作を説明するフローチャートである。ここで、フレームを復号する際の圧縮データの基本単位を「アクセス・ユニット」と呼ぶ。本明細書において、第１のストリームＡを復号するための単位となる個々のアクセス・ユニットの集合を「第１群のアクセス・ユニット」、第２のストリームＢを復号するための単位となる個々のアクセス・ユニットの集合を「第２群のアクセス・ユニット」とし、第１群のフレームと第２群のフレームを混合して生成した混合フレームを符号化して得られるアクセス・ユニットの集合を「第３群のアクセス・ユニット」とする。各処理は、ストリーム合成装置１０の、図示されていないＣＰＵ（ＣｅｎｔｒａＬ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのコントローラおよび関連するプログラムの制御によって実行されるものとする。
【００２８】
ステップＳ１で、第１のストリームＡを構成する第１群のアクセス・ユニットと、第２のストリームＢを構成する第２群のアクセス・ユニットが、それぞれ入力部１に入力される。
【００２９】
ステップＳ２で、復号部２は、この入力部１に入力された圧縮データの第１のストリームＡと第２のストリームＢから、それぞれ第１群のアクセス・ユニットと第２群のアクセス・ユニットとを復号して、第１群のフレームと第２群のフレームとを生成する。
【００３０】
ステップＳ３で、合成部３は、復号部２によって復号された第１群のフレームと第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットを基準として、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成する。
【００３１】
ステップＳ４で、こうして生成した所定の数の第３群のアクセス・ユニットを継ぎ目として、二つのストリームと所定の数の第３群のアクセス・ユニットとの境界において隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合する。
【００３２】
このように合成部３が、第１群のフレームと第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットに基づいて、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、二つのストリームの継ぎ目となる第３群のアクセス・ユニットを生成するので、すべての圧縮データをフレームに復号して再び符号化（以後、「再符号化」と呼ぶ）する必要はない。さらに合成部が、こうして生成した所定の数の第３群のアクセス・ユニットを継ぎ目として、二つのストリームと所定の数の第３群のアクセス・ユニットとの境界で、隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合するので、すべての圧縮データをフレームに復号して再符号化せずとも、アーティファクトの発生しない滑らかな接合を実現できる。
【００３３】
ここで合成部３は、複数の第１群のフレームと複数の第２群のフレームとを、連続する第１群のフレームのうち、末尾のフレームを含む所定の数の第１群のフレームと、連続する第２群のフレームのうち、先頭のフレームを含む所定の数の第２群のフレームとを、所定の数の第１群のフレームの先頭から少なくとも１以上のフレームと、所定の数の第２群のフレームの末尾から少なくとも１以上のフレームとを除くフレームどうしが相互に重なるように混合して、所定の数よりも大きい数の混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成する符号化部を含んでもよい。
【００３４】
さらに、合成部３は、連続する第１群のアクセス・ユニットを、所定の数の第１群のフレームを復号するために用いた複数のアクセス・ユニットのうち先頭のアクセス・ユニットを継ぎ目として所定の数の第３群のアクセス・ユニットの先頭に繋げ、連続する第２群のアクセス・ユニットを、所定の数の第２群のフレームを復号するために用いた複数のアクセス・ユニットのうち末尾のアクセス・ユニットを継ぎ目として、所定の数の第３群のアクセス・ユニットの末尾に繋げる接合部を含んでもよい。
【００３５】
また、上述の符号化部は、所定の数の第３群のアクセス・ユニットのバッファの初期占有量と最後の占有量が、それぞれ、所定の数の第１群のフレームを復号するために用いた複数のアクセス・ユニットのうち先頭部分のアクセス・ユニットのバッファの占有量と、所定の数の第２群のフレームを復号するために用いた複数のアクセス・ユニットのうち末尾部分のアクセス・ユニットのバッファの占有量と一致するように、第３群のアクセス・ユニットの符号化を行うようにしてもよい。
【００３６】
このような構成によって、本発明のストリーム合成装置は、二つのストリームのそれぞれを構成する第１群のアクセス・ユニットと第２群のアクセス・ユニットとを第３群のアクセス・ユニットに接合する際に、再符号化されずに第３群のアクセス・ユニットの先頭部分に接合される第１群のアクセス・ユニットの末尾の部分のバッファの占有量と、再符号化されて第３群のアクセス・ユニットに置き換えられる第２群のアクセス・ユニットの末尾の部分のアクセス・ユニットのバッファの占有量とが、それぞれ、再符号化して生成された第３群のアクセス・ユニットのバッファの初期占有量と最後の占有量と等しくなるようにレート制御することによって、合成ストリームのバッファの占有量の変化を連続的にすることができる。この第３群のアクセス・ユニットを継ぎ目部分として用いることによって、別々にレート制御された異なるストリーム間のバッファの占有量を連続的に保ち、合成ストリームにおいてバッファの制約を満たすように合成ストリームを合成できる。
【００３７】
以下、ストリーム合成装置１０が実行するストリーム接合処理について詳細に説明する。
【００３８】
＜２．ストリーム接合処理の原理＞
以下、ＡＡＣ符号化規格に従って生成したオーディオ圧縮データを例に本発明のストリーム接合方法の原理について説明する。
【００３９】
ＡＡＣの符号化処理では、オーディオ信号を１０２４サンプル毎にブロック化したオーディオ・フレームを形成し、このオーディオ・フレームを符号化処理又は復号処理の単位とする。隣接する２つのオーディオ・フレームは、窓長が２０４８の長い窓を１つ又は窓長が２５６の短い窓を８つ用いたＭＤＣＴ（Ｍｏｄｉｆｉｅｄ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：修正離散コサイン変換）変換によって、１０２４個のＭＤＣＴ係数に変換される。ＭＤＣＴによって生成された１０２４個のＭＤＣＴ係数は、ＡＡＣの符号化処理に従って符号化され、圧縮されたオーディオ・フレーム又はアクセス・ユニットを生成する。ＭＤＣＴ変換において参照され、ＭＤＣＴ係数に寄与するオーディオ・サンプルの集まりをＭＤＣＴブロックと呼ぶ。例えば、窓長が２０４８の長い窓の場合、その隣接する２つのオーディオ・フレームが１つのＭＤＣＴブロックを構成する。ＭＤＣＴ変換はオーバーラップ変換の一種であり、ＭＤＣＴ変換に用いるすべての隣接する２つの窓はオーバーラップするように構成される。ＡＡＣでは、周波数特性の異なる２つの窓関数、サイン窓（Ｓｉｎｅ  ｗｉｎｄｏｗ）とカイザー・ベッセル派生窓（Ｋａｉｓｅｒ−ＢｅｓｓｅＬ  ｄｅｒｉｖｅｄ  ｗｉｎｄｏｗ）が使用される。窓長は、入力するオーディオ信号の性質に応じて切り替えることができる。以下では、特に断らない限り、窓長が２０４８の長い窓関数を１つ用いる場合について説明する。このように、オーディオ・フレームをＡＡＣの符号化処理に従って符号化して生成した圧縮されたオーディオ・フレーム、又はアクセス・ユニットはオーバーラップ変換を行って生成されている。
【００４０】
まず、図３に、オーディオ・フレームとアクセス・ユニットとの関係を示す。ここでは、オーディオ・フレームはオーディオ信号をサンプリングして得たオーディオ・サンプルを１０２４個単位にまとめたものを表し、アクセス・ユニットはオーディオ・フレーム１個分を復号するための符号化ストリーム又はオーディオ圧縮データのストリームの最小単位を表すものとする。図３において、アクセス・ユニットは符号量に対応した正しい縮尺で描かれていない（以下同様）。オーバーラップ変換のため、オーディオ・フレームとアクセス・ユニットは、フレーム長の５０％だけずれた関係となる。
【００４１】
図３に示すように、ｉを任意の整数とすると、入力オーディオ・フレーム（ｉ−１）とｉとからなるＭＤＣＴブロック＃ｉから、アクセス・ユニットｉが生成される。アクセス・ユニットｉと（ｉ＋１）からそれぞれ復号されたエリアシングを含んだＭＤＣＴブロック＃ｉと＃（ｉ＋１）をオーバーラップ加算することでオーディオ・フレームｉが再生される。入力オーディオ・フレーム（−１）とＮは出力されないので、これらのフレームの内容は任意であり、例えばすべてのサンプルを０としてもよい。
【００４２】
図３に示すように、Ｎを任意の整数とすると、オーバーラップ変換を行うため、復号時にＮ個のオーディオ・フレーム、すなわち出力オーディオ・フレームを得るには、（Ｎ＋２）個のオーディオ・フレームを符号化部に入力する必要があることがわかる。このとき、生成されるアクセス・ユニットの数は（Ｎ＋１）個となる。
【００４３】
図４に、ＡＢＲ（平均ビット・レート）を満たすレート・コントロールを行った場合の復号部のバッファの状態を示す。この復号部のバッファは、データを一時的に所定の符号量まで蓄積して、ビット・レートを擬似的に調整とすることから、ビット・リザバとも呼ばれる。
【００４４】
復号部のバッファには固定のレートＲでビット・ストリームが送られ続ける。理解を容易にするため、アクセス・ユニットｉが復号されると、アクセス・ユニットｉの符号はバッファから瞬時に取り除かれ、瞬時にフレーム（ｉ−１）が出力されるものとして考える。ここでｉは任意の整数とする。ただし、オーバーラップ変換を行っているため、最初のアクセス・ユニットを復号したときにはオーディオ・フレームは出力されない。
【００４５】
復号を実行する間隔をｄ、サンプリング周波数をｆＳとすると、ｄ＝１０２４／ｆｓと表すことができる。アクセス・ユニット１個あたりの平均符号量をＬ（アッパースコア付き）とすると、平均符号量は、固定レートＲに復号を実行する間隔ｄを乗じて、Ｌ（アッパースコア付き）=Ｒｄと表すことができる。
【００４６】
符号化部にどのような入力が与えられても、アクセス・ユニットの符号量を平均符号量Ｌ（アッパースコア付き）より小さく制御できるとき、レート・コントロールが保証されることになる。以下の説明では、特に断らない限り、所定のレートでレート・コントロールが保証されるものと仮定する。
【００４７】
アクセス・ユニットｉの符号量をＬｉとして、アクセス・ユニットｉがバッファから取り除かれた後のバッファの占有量を、そのアクセス・ユニットｉにおけるバッファの占有量Ｓｉと定義すると、ＳｉはＳｉ−１とＬｉを使って次のように表すことができる。
【数１】
2011021239.tif 000003
復号部のバッファの大きさをＳｂｕｆｆｅｒとすると、平均符号量がＬ（アッパースコア付き）のとき、バッファの最大占有量はＳｍａｘ＝Ｓｂｕｆｆｅｒ−Ｌ（アッパースコア付き）と表される。バッファがオーバーフローもアンダーフローもしないことを保証するためには、数式（２）を満たすように符号量Ｌｉを制御すればよい。符号量Ｌｉは、例えば、バイト単位で制御する。
【数２】
2011021239.tif 000004
明らかに、上式が成り立つには０≦Ｓｍａｘである必要がある。あるストリームの符号化するとき、最初のアクセス・ユニットのバッファ占有量Ｓ０を計算するのに、数式（１）から、Ｓ−１（以下、バッファの「初期占有量」と呼ぶ）が必要となる。Ｓ−１は数式２を満たすような任意の値でよい。Ｓ−１＝Ｓｍａｘとすると、バッファが満杯の状態からそのストリームの復号を開始することを意味し、Ｓ−１＝０とすると、バッファが空の状態からそのストリームの復号を開始することを意味する。図４の例では、Ｓ−１＝Ｓｍａｘとしている。
【００４８】
従って、図１のストリーム合成装置１０において合成部３が、出力オーディオ・フレームのアクセス・ユニット、すなわち第３群のアクセス・ユニットのバッファに対する占有量が、ゼロ以上でかつバッファの最大占有量以下となるように、符号化を行うようにしてもよい。これによって、バッファのオーバーフローやアンダーフローを確実に回避することができる。
【００４９】
以下、特に断らない限り、０≦Ｓｍａｘの条件は満たされているものとして説明を進める。
【００５０】
図４に戻ると、時刻ｔ＝０にバッファリングを開始したとすると、最初に復号するアクセス・ユニット０を復号する時刻ｔ０は以下のように表される。ここで、アクセス・ユニット０は最初に復号するアクセス・ユニットとし、必ずしもストリームの先頭のアクセス・ユニットでなくてもよい。
【数３】
2011021239.tif 000005
また、アクセス・ユニットには、ＳｉとＬｉの情報が保存されているものとする。以下の説明で、アクセス・ユニットはＡＤＴＳ（Ａｕｄｉｏ  Ｄａｔａ  Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ：オーディオ・データ・トランスポート・ストリーム）の形式で、アクセス・ユニットｉのＡＤＴＳヘッダにＳｉの量子化値とＬｉの値が保存されているものとして説明を続ける。与えられたＡＤＴＳストリームについて、伝送ビット・レートＲとサンプリング周波数ｆｓを既知であると仮定する。
【００５１】
次に、ストリームＡとストリームＢを合成してストリームＣを生成する処理について説明する。まず、ストリームＡとストリームＢを接合する際に継ぎ目部分となる継ぎ目のフレーム（以後、「継ぎ目フレーム」と呼ぶ）の生成と再符号化について詳細に説明する。
【００５２】
図５に、ストリームＡとストリームＢとを接合する場合の一例を示す。図５の例では、ストリームＡとストリームＢとを、ストリームＡとストリームＢを部分的に再符号化して生成したストリームＡＢで接合して、ストリームＣを生成している。ここで、ストリームＡ又はＢのアクセス・ユニットのうち、再符号化されずに、ストリームＣに出力されるアクセス・ユニットを、「再符号化されないアクセス・ユニット」と呼ぶ。また、ストリームＡ又はＢのアクセス・ユニットのうち、継ぎ目のストリームに対応して、ストリームＣにおいて再符号化されたアクセス・ユニットに置き換えられるアクセス・ユニットを、「再符号化されるアクセス・ユニット」と呼ぶ。なお、ストリームＡを構成するアクセス・ユニットが第１群のアクセス・ユニットに、ストリームＢを構成するアクセス・ユニットが第２群のアクセス・ユニットに、ストリームＡＢを構成するアクセス・ユニットが第３群のアクセス・ユニットに相当する。
【００５３】
ストリームＡとストリームＢを復号した時に得られるオーディオ・フレームの数をそれぞれＮＡとＮＢとする。ストリームＡはＮＡ＋１個のアクセス・ユニットＵＡ［０］，ＵＡ［１］，…，ＵＡ［ＮＡ］からなり、これらを復号するとＮＡ個のオーディオ・フレームＦＡ［０］，ＦＡ［１］，…，ＦＡ［ＮＡ−１］が得られる。ストリームＢはＮＢ＋１個のアクセス・ユニットＵＢ［０］，ＵＢ［１］，…，ＵＢ［ＮＢ］からなり、これらを復号するとＮＢ個のオーディオ・フレームＦＢ［０］，ＦＢ［１］，…，ＦＢ［ＮＢ−１］が得られる。図５は、ストリームＡの末尾の３個のアクセス・ユニットとストリームＢの先頭の３個のアクセス・ユニットが重なるように、ストリームＡとストリームＢが配置されている様子を示している。重なった３個のアクセス・ユニット、すなわち、ストリームＡのａ１とａ２を境界とする範囲にあるＵＡ［ＮＡ−２］，ＵＡ［ＮＡ−１］，ＵＡ［ＮＡ］とストリームＢのｂ１とｂ２を境界とする範囲にあるＵＢ［０］，ＵＢ［１］，ＵＢ［２］は再符号化されるアクセス・ユニットであり、それ以外のストリームＡとストリームＢのアクセス・ユニットは再符号化されないアクセス・ユニットである。再符号化されるアクセス・ユニットは、継ぎ目のアクセス・ユニットＵＡＢ［０］，ＵＡＢ［１］，ＵＡＢ［２］で置き換えられる。継ぎ目のアクセス・ユニットは継ぎ目のフレームを符号化することで得られる。
【００５４】
継ぎ目のフレームは、ストリームＡの末尾のアクセス・ユニットを含む連続した４個のアクセス・ユニットＵＡ［ＮＡ−３］，ＵＡ［ＮＡ−２］，ＵＡ［ＮＡ−１］，ＵＡ［ＮＡ］を復号して得られる３個のフレームＦＡ［ＮＡ−３］，ＦＡ［ＮＡ−２］，ＦＡ［ＮＡ−１］と、ストリームＢの先頭のアクセス・ユニットを含む連続した４個のアクセス・ユニットＵＢ［０］，ＵＢ［１］，ＵＢ［２］，ＵＢ［３］を復号して得られる３個のフレームＦＢ［０］，ＦＢ［１］，ＦＢ［２］とを、図５の斜線で示した２個のフレームが重なり合うように、すなわち、ＦＡ［ＮＡ−２］とＦＢ［０］、ＦＡ［ＮＡ−１］とＦＢ［１］がそれぞれ重なり合うように混合して得られる。
【００５５】
ＦＡ［ＮＡ−２］とＦＢ［０］、ＦＡ［ＮＡ−１］とＦＢ［１］が混合されたフレームをそれぞれＦＡＢ［０］，ＦＡＢ［１］とすると、継ぎ目のフレームは、時間順に、ＦＡ［ＮＡ−３］，ＦＡＢ［０］，ＦＡＢ［１］，ＦＢ［２］となる。これら４個の継ぎ目のフレームを符号化すると、３個の継ぎ目のアクセス・ユニットＵＡＢ［０］，ＵＡＢ［１］，ＵＡＢ［２］が得られる。ここで、境界ｃ１、ｃ２を挟んで隣接する、再符号化されないアクセス・ユニットと再符号化されたアクセス・ユニットに注目する。再符号化されないアクセス・ユニットＵＡ［ＮＡ−３］と、境界ｃ１を挟んでアクセス・ユニットＵＡ［ＮＡ−３］と隣接する継ぎ目のアクセス・ユニットＵＡＢ［０］には、フレームＦＡ［ＮＡ−３］を復号するための情報が分配されており、それら２個の隣接するアクセス・ユニットからＦＡ［ＮＡ−３］を復号できる。同様に、継ぎ目のアクセス・ユニットＵＡＢ［２］と、境界ｃ２を挟んでアクセス・ユニットＵＡＢ［２］と隣接する再符号化されないアクセス・ユニットＵＢ［３］には、フレームＦＢ［２］を復号するための情報が分配されており、それら２個の隣接するアクセス・ユニットからＦＢ［２］を復号できる。したがって、再符号化されないストリームと再符号化された継ぎ目のストリームの境界部分、ｃ１、ｃ２から不完全に復号されるフレームが生じることはない。
【００５６】
ストリームＡのオーディオ・フレームＦＡ［ＮＡ−３］，ＦＡ［ＮＡ−２］，ＦＡ［ＮＡ−１］とストリームＢのオーディオ・フレームＦＢ［０］〜ＦＢ［２］とは、オーバーラップ変換によって生成されているため、再符号化する際、重ね合わせて混合し、再符号化する部分、すなわち、ストリームＡのアクセス・ユニットＵＡ［ＮＡ−２］〜ＵＡ［ＮＡ］と、ストリームＢのアクセス・ユニットＵＢ［０］〜ＵＢ［２］のみから復号可能な部分が、それぞれの先端ａ１’、ｂ１’と後端ａ２’、ｂ２’で画定される部分に絞られている。また、ストリームＡとストリームＢのレートとサンプリング周波数はそれぞれＲ、ｆｓとして共通とし、アクセス・ユニット１個当たりの平均符号量Ｌ（アッパースコア付き）も等しいものとする。
【００５７】
再符号化されないアクセス・ユニットＵＡ［ＮＡ−３］と、境界ｃ１を挟んで隣接する継ぎ目のアクセス・ユニットＵＡＢ［０］との間と、継ぎ目のアクセス・ユニットＵＡＢ［２］と、境界ｃ２を挟んで隣接する再符号化されないアクセス・ユニットＵＢ［３］との間で、窓関数の長さ（２０４８と２５６）や形（サイン窓とカイザー・ベッセル派生窓）に関する不連続が生じないように、窓関数のパラメータを適切に設定して再符号化してもよい。ただし、窓関数の不連続性は、不連続な窓関数は規格上許されていること、及び、ほとんどのアクセス・ユニットは長い窓を使うため、不連続が生じることがまれであることから許容される場合が多い。
【００５８】
また、オーディオを一層滑らかに接合するため、ストリームＡとストリームＢとの継ぎ目のフレームにおいて、混合するフレームＦＡＢ［０］，ＦＡＢ［１］をクロスフェードにより生成してもよい。
【００５９】
以下、一般化したケースについて説明する。ストリームＡとストリームＢを合成するとき、ストリームＡの最後から数えてＭ個のオーディオ・フレームと、ストリームＢの最初から数えてＭ個のオーディオ・フレームとが重なり合うように混合（クロスフェード）するものとする。
【００６０】
具体的には、オーバーラップ変換を考慮して、ストリームＡの最後から数えて（Ｍ＋１）個のアクセス・ユニットと、ストリームＢの先頭から数えて（Ｍ＋１）個のアクセス・ユニットを削除し、継ぎ目部分に新たに（Ｍ＋１）個のアクセス・ユニットを生成して、ストリームＡとストリームＢを接合する。（Ｍ＋１）個のアクセス・ユニットを生成するため、クロスフェードするＭ個フレームとその前後それぞれ１個のフレーム（合計（Ｍ＋２）個のフレーム）を再符号化する。図５の例では、Ｍ＝２としている。
【００６１】
クロスフェードする長さは任意である。また、Ｍ＝２として説明したが、本発明はこれに限定されず、Ｍは１でもよく、３以上でもよい。ストリームを合成するときの、混合する、又はクロスフェードするオーディオ・フレームの数や再符号化されるアクセス・ユニットの数は、合成するストリームに応じて決定してもよい。さらに、ここでは、ストリームＡとストリームＢをクロスフェードして合成ストリームＣを生成する、具体的には、ストリームＡのボリュームを次第に下げる一方で（ストリームＡをフェードアウト）、ストリームＢのボリュームを次第に大きく（ストリームＢをフェードイン）しながらストリームＡとストリームＢを合成して、ストリームＣを生成するとしたが、本発明はこれに限定されない。後に詳述するバッファ管理上の制約を守りながら、ストリームをアクセス・ユニットの単位で合成するのならば、如何なる手法によって合成してもよい。
【００６２】
また、Ｍ＝０としてストリームＡのオーディオ・フレームとストリームＢのオーディオ・フレームとを直接繋げてもよい。この場合でも、不完全に復号されるフレームが発生しないようにストリームＡとストリームＢとを合成できる。
【００６３】
ＡＤＴＳヘッダを参照して、再符号化する（Ｍ＋１）個のアクセス・ユニットのバッファの初期占有量と最後のアクセス・ユニットのバッファの占有量を所定の精度で復元することができる。次に、本実施の形態におけるストリームの接合とバッファの状態の関係について説明する。
【００６４】
本実施の形態における、ストリームを接合する際のバッファ状態を図６に示す。本実施の形態では、再符号化されないストリームのバッファ状態と再符号化されるストリームのバッファ状態とが連続するように接合する。具体的には、再符号化された合成ストリームのバッファの初期占有量Ｓｓｔａｒｔと最後の占有量Ｓｅｎｄを、それぞれ、再符号化されないストリームＡの最後のアクセス・ユニットＵＡ［ＮＡ−３］の占有量と再符号化されるストリームＢの最後のアクセス・ユニットＵＢ［２］の占有量と等しくする。この例では、３個のアクセス・ユニットＵＡＢ［０］，ＵＡＢ［１］，ＵＡＢ［２］にほぼ同量の符号を割り当てている。すなわち、ＣＢＲのレート・コントロールを行うことに等しい。このようにすることで、バッファがオーバーフローやアンダーフローするのを回避して、２つのストリームを接合できる。
【００６５】
また、再符号化するアクセス・ユニットへの符号量の割り当て方法は任意である。例えば、クオリティが一定になるように割り当てる符号量を変化させてもよい。さらに、図５の例では、ストリームＡとストリームＢを合成するとき、ストリームＡとストリームＢとが重なり合う（Ｍ＋１）個のアクセス・ユニットを再符号化、すなわち、（Ｍ＋１）個の継ぎ目のストリームＡＢに置き換えているが、本発明はこれに限定されず、ストリームＡ又はストリームＢにおいて（Ｍ＋１）より大きい数のアクセス・ユニットを再符号化してもよい。
【００６６】
ストリームはオーバーラップ変換によって生成されていることから、あるストリームからあるオーディオ・フレームを復号する場合、そのオーディオ・フレームを復号するための情報が分配されている隣接する２つのアクセス・ユニットが必要である。従来、ストリームを接合しようとする際、オーディオ信号の時間領域における滑らかな接合を意識することはあっても、オーディオ・フレームを復号するために必須となるアクセス・ユニットに着目することはなかった。例えば、図５の例で、フレームＦＡ［ＮＡ−３］を復号するためにはアクセス・ユニットＵＡ［ＮＡ−３］とＵＡ［ＮＡ−２］が必須であり、ＵＡ［ＮＡ−３］とＵＡ［ＮＡ−２］どちらのアクセス・ユニットが欠けてもフレームＦＡ［ＮＡ−３］の復号は不完全なものとなりうる。また、不完全に復号されたフレームはアーティファクト発生の原因となる。
【００６７】
本発明は、この点に着目し、継ぎ目部分を構成するアクセス・ユニットを再符号化して生成する際に、隣接する再符号化されないアクセス・ユニットと再符号化されるアクセス・ユニット２つのアクセス・ユニットにそれらに共通するフレームを復号するための情報が分配されるようにしている。具体的には、図１のストリーム合成装置１０において合成部３は、第１群のアクセス・ユニットの末尾のアクセス・ユニットを含む（Ｍ＋２）個の連続したアクセス・ユニットを復号して（Ｍ＋１）個のフレームからなる第１群のフレームを生成し、第２群のアクセス・ユニットの先頭のアクセス・ユニットを含む（Ｍ＋２）個の連続したアクセス・ユニットを復号して（Ｍ＋１）個のフレームからなる第２群のフレームを生成し、前記第１群のフレームと前記第２群のフレームを、それぞれの先頭の１以上のフレームと末尾の１以上のフレームが互いに重なりあわないように、かつ、Ｍ個のフレームだけ互いに重なり合うように混合し、（Ｍ＋２）個のフレームからなる第３のフレームを生成し、この第３のフレームを符号化することによって第３群のアクセス・ユニットを生成する。第１群のフレームをそれから復号したアクセス・ユニットの最初のアクセス・ユニットを含んだ、第１群のアクセス・ユニットの先頭を含む連続したアクセス・ユニットと、第３群のアクセス・ユニットと、第２群のフレームをそれから復号したアクセス・ユニットの最後のアクセス・ユニットを含んだ、第２群のアクセス・ユニットの末尾を含む連続したアクセス・ユニットと、をこの順で接合して、合成ストリームＣを生成する。これによって、圧縮データのストリームがオーバーラップ変換を行って生成されたストリームであっても、再符号化されるストリームと再符号化されないストリームとの境界で隣接する２つのアクセス・ユニットには、通常の符号化と同様に、それらに共通する同一のフレームを復号するための情報が分配されているため、継ぎ目部分でアーティファクトが発生することはない。したがって、すべての圧縮データをオーディオ・フレームに復号して再符号化することなく、異なるストリームを滑らかに接合することができる。また、接合するストリームどうしをクロスフェードすることによって接合をより滑らかにすることができる。
【００６８】
このように、本実施の形態のストリーム合成装置は、オーバーラップ変換を行って生成された圧縮データからなる二つのストリームから、それぞれ連続する第１群のアクセス・ユニットと連続する第２群のアクセス・ユニットとを入力する入力部１と、連続する第１群のアクセス・ユニットを復号して連続する第１群のフレームを生成し、連続する第２群のアクセス・ユニットを復号して連続する第２群のフレームを生成する復号部２と、連続する第１群のフレームと連続する第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットを基準として、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、所定の数の第３群のアクセス・ユニットを生成し、連続する第１群のアクセス・ユニットと連続する第２群のアクセス・ユニットとを、所定の数の第３群のアクセス・ユニットを継ぎ目として、連続する第１群のアクセス・ユニットと連続する第２群のアクセス・ユニットと、所定の数の第３群のアクセス・ユニットとの境界において隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合する合成部３と、を備えるので、各々のストリームから所定の数のアクセス・ユニットのみを抽出し、各々の先端と後端とを合わせて混合して再符号化して生成した第３群のアクセス・ユニットを生成する。この第３群のアクセス・ユニットを継ぎ目部分として用いることによって、オーバーラップ変換を行って生成された異なる圧縮データのストリームどうしを接合する場合であっても、不完全に復号されるフレームが発生することがない。従って、すべての圧縮データをフレームに復号して再符号化せずとも、アーティファクトの発生しない滑らかな接合を実現できる。
【００６９】
以上説明したように、本実施の形態のストリーム合成装置１０は、第１のストリームＡと第２のストリームＢとして入力部１に入力された連続する第１群のアクセス・ユニットと連続する第２群のアクセス・ユニットとを、復号部２で復号して連続する第１群のフレームと連続する第２群のフレームを生成し、合成部３が、こうして復号した連続する第１群のフレームと連続する第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットに基づいて、選択的に混合して混合フレームを生成し、該混合フレームを符号化して、二つのストリームの継ぎ目となる第３群のアクセス・ユニットを生成するので、すべての圧縮データをフレームに復号して再び符号化する、すなわち再符号化する必要はない。さらに合成部３が、こうして生成した所定の数の第３群のアクセス・ユニットを継ぎ目として、二つのストリームと所定の数の第３群のアクセス・ユニットとの境界で、隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合するので、すべての圧縮データをフレームに復号して再符号化せずとも、アーティファクトの発生しない滑らかな接合を実現できる。
【００７０】
以上、本発明の基本的な実施の形態のストリーム合成装置について詳述したが、本発明は係る特定の実施の形態に限定されるものではなく、種々の変形・変更が可能である。本実施の形態では、ＡＡＣに従って生成したオーディオ圧縮データを用いた場合について説明したが、本発明はこれに限定されず、オーバーラップ変換を行って生成された圧縮データであれば、ＭＰＥＧ  Ａｕｄｉｏ、ＡＣ３符号化などの各種符号化によって生成したストリームに適用可能である。
【００７１】
＜第２の実施の形態＞
図７は、第２の実施の形態のストリーム合成装置のブロック図である。
【００７２】
図７に示すように、本実施の形態のストリーム合成装置２０は、入力された第１のストリームＡをアクセス・ユニット毎にストリーム切替部又は第１復号部に出力する第１ルータ部１１Ａと、第２のストリームＢをアクセス・ユニット毎に第２復号部又はストリーム切替部に出力する第２ルータ部１１Ｂと、第１ルータ部１１Ａから入力されたアクセス・ユニットを復号して第１群のフレームを生成する第１復号部１２Ａと、第２ルータ部１１Ｂから入力されたアクセス・ユニットを復号して第２群のフレームを生成する第２復号部１２Ｂと、第１復号部１２Ａで生成される第１群のフレームと第２復号部１２Ｂで生成される第２群のフレームとを混合して継ぎ目のフレームを生成する混合部１３と、混合部１３によって生成された継ぎ目のフレームを符号化して継ぎ目のアクセス・ユニットを生成する符号化部１４と、第１ルータ部１１Ａから入力された第１のストリームＡのアクセス・ユニットと、符号化部１４で生成された継ぎ目のアクセス・ユニットと、第２ルータ部１１Ｂから入力された第２のストリームＢのアクセス・ユニットとを必要に応じて切り替えて出力するストリーム切替部１５と、第１ルータ部１１Ａ、第２ルータ部１１Ｂ、第１復号部１２Ａ、第２復号部１２Ｂ、混合部１３、符号化部１４、ストリーム切替部１５を制御する制御部１６とを備える。なお、本実施の形態のストリーム合成装置２０が実行するストリーム接合処理の原理は第１の実施の形態のストリーム合成装置１０と同一であるので、ストリーム接合処理の詳細については説明を省略する。ストリーム切替部１５は、本発明の接合部を構成する。
【００７３】
ここで、本実施の形態のストリーム合成装置２０が入力するストリームは、ＡＡＣ規格に従って生成したオーディオ圧縮データからなるストリームに限定されず、オーバーラップ変換を行って生成された任意の圧縮データのストリームとする。
【００７４】
制御部１６はユーザから入力される制御パラメータに従って、ストリームＡ、Ｂを接合する際のクロスフェードの方法、及びクロスフェードするフレーム数を決定する。さらに、ストリームＡ、Ｂを入力して、ストリームＡ、Ｂの長さ、すなわち、アクセス・ユニットの数を取得する。また、ストリームがＡＤＴＳ形式の場合、それぞれのアクセス・ユニットのバッファの状態、例えば、占有率などをそのアクセス・ユニットのＡＤＴＳヘッダから取得するが、ヘッダなどから直接それぞれのアクセス・ユニットのバッファの状態などの情報を得ることができない場合は、デコーダ・バッファをシミュレートするなどして必要な情報を取得する。
【００７５】
制御部１６は、ストリームＡとＢそれぞれのアクセス・ユニットの数とストリームＡとＢそれぞれのバッファの状態から、再符号化するアクセス・ユニットを特定し、さらに符号化部１４が符号化して生成するアクセス・ユニットの符号量などを決定する。各ブロックに正しいタイミングでアクセス・ユニットやフレームが入力されるように、制御部１６は適切な位置に挿入された可変遅延器（図示していない）を制御する。図７では説明を簡素にするため可変遅延器を省略している。
【００７６】
次に、制御部１６が第１ルータ部１１Ａ、第２ルータ部１１Ｂ、混合部１３、符号化部１４を制御する処理について説明する。
【００７７】
第１ルータ部１１Ａに入力された第１のストリームＡは、ストリーム切替部１５又は第１復号部１２Ａに入力される。ストリーム切替部１５に入力された第１のストリームＡは、再符号化されずに直接ストリームＣとして出力される。同様に、第２ルータ部１１Ｂに入力された第２のストリームＢは、ストリーム切替部１５又は第２復号部１２Ｂに入力される。第２ルータ部１１Ｂに入力された第２のストリームＢは、再符号化されずに直接ストリームＣとして出力される。
【００７８】
第１のストリームＡ、第２のストリームＢは、オーバーラップ変換をして符号化されているため、第１のストリームＡと第２のストリームＢのうち、再符号化するアクセス・ユニットと、その前後のアクセス・ユニットが、第１復号部１２Ａと第２復号部１２Ｂで復号され、第１の実施の形態で説明したように、指定された数だけ指定された方法によって混合部１３で混合される。指定された方法とは、ここでは、クロスフェードとする。混合されたフレームは符号化部１４で再符号化されてストリーム切替部１５に出力される。
【００７９】
制御部１６は、このようにして生成されてストリーム切替部１５から順に出力されるストリームが、第１の実施の形態で説明したバッファ管理上の制約を満たすように、符号化部１４におけるビット割り当てを制御する。また、第１復号部１２Ａと第２復号部１２Ｂは、使用された窓関数の種類や長さなどの情報を制御部１６に通知する。この情報を使って、制御部１６は、再符号化するアクセス・ユニットと再符号化しないアクセス・ユニットとの間で窓関数が滑らかに接合するように符号化部１４を制御してもよい。適切に制御された可変遅延器（図示されていない）によって、ストリーム切替部１５には同時刻には１つだけの入力にアクセス・ユニットが入力される。ストリーム切替部１５は入力されたアクセス・ユニットを加工せずに出力する。
【００８０】
図８は、制御部１６の制御の下、本実施の形態のストリーム合成装置２０が実行するストリームＡとストリームＢを接合してストリームＣを生成する処理を説明するフローチャートである。図９は、図８の処理を実行する際の擬似コードである。図８と図９を参照して、本実施の形態のストリーム合成装置２０が実行する処理について詳細に説明する。
【００８１】
ステップＳ１１で、ストリームＡの再符号化しない部分をストリームＣとして出力する。具体的には、制御部１６は、第１ルータ部１１Ａとストリーム切替部１５を制御して、ストリームＡの再符号化しない部分をそのままストリームＣとして出力する。
【００８２】
図９の疑似コードでは、以下のプログラムを実行する。
【数４】
2011021239.tif 000006
【００８３】
ここで、ストリームＡ、ＢはそれぞれＮＡ、ＮＢ個のオーディオ・フレーム、すなわちＮＡ＋１、ＮＢ＋１個のアクセス・ユニットを有するものとする。ストリームＸは、ストリームＡ、Ｂ、Ｃを要素とする集合に属するストリームであり、ストリームＸのアクセス・ユニットをＵｉｘ、（０≦ｉ≦ＮＸ−１）とする。
【００８４】
次に、ステップＳ１２で、ストリームＡとストリームＢから継ぎ目のストリームを生成して出力する。具体的には、制御部１６は、第１ルータ部１１Ａ、第２ルータ部１１Ｂ、第１復号部１２Ａ、第２復号部１２Ｂ、混合部１３、符号化部１４、ストリーム切替部１５を制御して、図５を参照して説明したように、ストリームＡ、Ｂから取り出した（Ｍ＋２）個のアクセス・ユニットデコードをデコードして、（Ｍ＋１）個のオーディオ・フレームを生成し、そのうちＭ個のオーディオ・フレームをクロスフェードして、（Ｍ＋２）個の継ぎ目のオーディオ・フレームを再符号化して、（Ｍ＋１）個の継ぎ目のアクセス・ユニットを生成してストリームＣとして出力する。
【００８５】
図９の疑似コードでは、以下のプログラムを実行する。
【数５】
2011021239.tif 000007
【００８６】
このときストリームＣはＮＣ＝ＮＡ＋ＮＢ−Ｍ個のオーディオ・フレーム、すなわちＮＣ＋１個のアクセス・ユニットを有することになる。また、ストリームＸのオーディオ・フレームをＦｉＸとする。
【００８７】
関数ｍｉｘ（（Ｆ０，Ｆ１，・・・，ＦN-1），（Ｆ´０，Ｆ´１，・・・，Ｆ´N-1））は、２組のＮ個のオーディオ・フレームのベクトルをクロスフェードした、Ｎ個のオーディオ・フレームのベクトルを表す。関数ｄｅｃ（Ｕ０，Ｕ１，・・・，ＵＮ）は、Ｎ＋１個のアクセス・ユニットのベクトルを復号した、Ｎ個のオーディオ・フレームのベクトル（Ｆ０，Ｆ１，・・・，ＦＮ−１）を表す。関数ｅｎｃ（Ｆ−１，Ｆ０，・・・，ＦＮ）は、Ｎ＋２個のオーディオ・フレームのベクトルを符号化した、Ｎ＋１個のアクセス・ユニット（Ｕ０，Ｕ１，・・・，ＵＮ）を表す。
【００８８】
関数ｅｎｃ（・・・）は、Ｍ＋２個のオーディオ・フレームを再符号化し、Ｍ＋１個のアクセス・ユニットを生成する。このとき、再符号化されるストリームと再符号化されないストリームとのバッファ状態の連続性を保つためには、再符号化されるストリームがオーバーフローもアンダーフローもしないことに加えて、次のバッファの制約を満たす必要がある。
【００８９】
再符号化されたストリーム（ストリームＡＢと呼ぶ）のバッファの初期占有量と最後の占有量が、それぞれ、再符号化されないストリームＡの最後のアクセス・ユニットの占有量と再符号化されるストリームＢの最後のアクセス・ユニットの占有量と等しくなる。すなわち、アクセス・ユニットＵｉＸがバッファから取り除かれた後のバッファの占有量をＳｉＸとすると、以下のようになる。
【数６】
2011021239.tif 000008
かつ
【数７】
2011021239.tif 000009
再符号化したストリームのアクセス・ユニット１個あたりの平均符号量は以下のようになる。
【数８】
2011021239.tif 000010
ここで、
【数９】
2011021239.tif 000011
Ｌ（アッパースコア付き）はストリームＡ又はＢのアクセス・ユニット１個あたりの平均符号量とする。
【数１０】
2011021239.tif 000012
から、Ｍを大きくすれば
【数１１】
2011021239.tif 000013
となるので、Ｍを十分大きくとればバッファ管理上の制約を満たすレート・コントロールが保証できることが容易に理解できる。
【００９０】
再符号化するストリームのアクセス・ユニットの平均符号量をＬ（アッパースコア付き）ABに等しくするには、例えば、それぞれのアクセス・ユニットにＬ（アッパースコア付き）ABだけ符号量を割り当てればよい。ただし、場合によっては必ずしもすべてのアクセス・ユニットに同じ符号量を割り当てられない。そのような場合は、符号量の割り当てを変化させたり、パディングを挿入するなどして、平均符号量がＬ（アッパースコア付き）ABとなるように調整すればよい。
【００９１】
次に、ステップＳ１３で、ストリームＢの再符号化しない部分を出力する。図９の疑似コードでは、以下のプログラムを実行する。
【数１２】
2011021239.tif 000014
【００９２】
具体的には、制御部１６は、第２ルータ部１１Ｂとストリーム切替部１５を制御して、ストリームＢの再符号化しない部分をそのままストリームＣとして出力する。
【００９３】
以上説明したように、本実施の形態のストリーム合成装置２０は、第１のストリームＡと第２のストリームＢとして第１ルータ部１１Ａ及び第２ルータ部１１Ｂに入力された連続する第１群のアクセス・ユニットと連続する第２群のアクセス・ユニットとを、第１復号部１２Ａ及び第２復号部１２Ｂで復号して連続する第１群のフレームと連続する第２群のフレームを生成し、混合部１３が、こうして復号した連続する第１群のフレームと連続する第２群のフレームとを、各々のフレームを復号するために用いるアクセス・ユニットに基づいて、選択的に混合して混合フレームを生成し、符号化部１４が該混合フレームを符号化して、二つのストリームの継ぎ目となる第３群のアクセス・ユニットを生成するので、すべての圧縮データをフレームに復号して再び符号化する、すなわち再符号化する必要はない。さらにストリーム切替部１５が、こうして生成した所定の数の第３群のアクセス・ユニットを継ぎ目として、二つのストリームと所定の数の第３群のアクセス・ユニットとの境界で、隣接するアクセス・ユニットが、共通する同一のフレームを復号するための情報を分配するように接合して第３のストリームＣを生成するので、すべての圧縮データをフレームに復号して再符号化せずとも、アーティファクトの発生しない滑らかな接合を実現できる。
【００９４】
以上、本発明の好ましい実施の形態について詳述したが、本発明は係る特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の範囲内において、種々の変形・変更が可能である。上述の実施の形態では、ＡＡＣに従って生成したオーディオ圧縮データを用いた場合について説明したが、オーバーラップ変換を行って生成されたあらゆる圧縮データに適用可能である。また、本発明のストリーム合成装置は、ＣＰＵとメモリを含む、一般的なコンピュータを上述した各手段として機能させるストリーム合成プログラムによって動作させることができるストリーム合成プログラムは、通信回線を介して配布することも可能であるし、ＣＤ−ＲＯＭ等の記録媒体に書き込んで配布することも可能である。
【符号の説明】
【００９５】
１   入力部
２   復号部
３   合成部
１０ ストリーム合成装置
１１Ａ      第１ルータ部
１１Ｂ      第２ルータ部
１２Ａ      第１復号部
１２Ｂ      第２復号部
１３        混合部
１４        符号化部
１５        ストリーム切替部
１６        制御部
２０        ストリーム合成装置
【図１】
2011021239.tif 000015
【図２】
2011021239.tif 000016
【図３】
2011021239.tif 000017
【図４】
2011021239.tif 000018
【図５】
2011021239.tif 000019
【図６】
2011021239.tif 000020
【図７】
2011021239.tif 000021
【図８】
2011021239.tif 000022
【図９】
2011021239.tif 000023
【国際調査報告】
2011021239.tif 000024
2011021239.tif 000025