(57)【特許請求の範囲】
【請求項１】
遅延時間の変更を伴う符号化ビットレートの切り替えが可能な符号化装置であって、
入力データをフレーム毎に符号化しており、要求に応じて符号化ビットレートを切り替える符号化部と、
前記符号化部にて符号化されたフレームを含むパケットを生成するパケット化部と、
前記パケット化部にて生成されたパケットを、書き込みポインタで示される書き込みの位置と読み出しポインタで示される読み出しの位置との差によって所定の遅延時間だけ遅延させており、前記符号化ビットレートの切り替え時、書き込み途中のパケットのパケット長の情報を、通知された、変更されたパケット長に変更することにより該パケットを完結したパケットに修正し、遅延時間の変更によって溢れるフレームがあれば該フレームを破棄し、切り替え前の最後のパケットと切り替え後の最初のパケットの間に無効データを挿入し、通知された切り替え後の最初の書き込みポインタから切り替え後の書き込みを開始する遅延バッファと、
前記符号化ビットレートの切り替え時、切り替え前の遅延時間に関する情報と、切り替え後の遅延時間に関する情報と、書き込み途中のパケットの先頭の位置とから、前記切り替え後の最初の書き込みポインタと、該書き込み途中のパケットの変更されたパケット長を求め、該切り替え後の最初の書き込みポインタと該変更されたパケット長とを前記遅延バッファに通知する遅延バッファ制御部と、
を有する符号化装置。
【請求項２】
前記遅延バッファ制御部は、前記符号化ビットレートの切り替えによって遅延時間が大きくなる場合には、前記遅延バッファにおける現在の書き込みポインタの位置と読み出しポインタの位置とから切り替え前の書き込みと読み出しのポインタの位置の差を算出し、与えられた切り替え後の遅延時間から切り替え後の書き込みと読み出しのポインタの位置の差を求め、前記現在の読み出しポインタの位置と該切り替え後の書き込みと読み出しのポインタの位置の差とから、前記切り替え後の最初の書き込みポインタの位置を決定して前記遅延バッファに通知する、請求項１に記載の符号化装置。
【請求項３】
前記遅延バッファ制御部は、前記符号化ビットレートの切り替えによって遅延時間が小さくなる場合には、前記遅延バッファにおける現在の書き込みポインタの位置と読み出しポインタの位置とから切り替え前の書き込みと読み出しのポインタの位置の差を算出し、与えられた切り替え後の遅延時間から切り替え後の書き込みと読み出しのポインタの位置の差を求め、切り替え後の最初のパケットの先頭が前記現在の書き込みポインタ以降になるように、前記切り替え後の最初の書き込みポインタの位置を定め、該切り替え後の最初の書き込みポインタの位置と前記切り替え後の書き込みと読み出しのポインタの位置の差とから読み出しポインタの所定位置を決定して前記遅延バッファに指示し、
前記遅延バッファは、読み出しポインタが前記所定位置に来るまで書き込みを停止し、前記読み出しポインタが前記所定位置にきたら、書き込みポインタを前記切り替え後の最初の書き込みポインタの位置に移動させる、請求項１または２に記載の符号化装置。
【請求項４】
音声信号または映像信号の少なくとも一方を符号化する、請求項１から３のいずれか１項に記載の符号化装置。
【請求項５】
遅延時間の変更を伴う符号化ビットレートの切り替えを行う符号化ビットレート切り替え方法であって、
入力データをフレーム毎に符号化し、符号化されたフレームを含むパケットを生成し、該パケットを、書き込みポインタで示される書き込みの位置と読み出しポインタで示される読み出しの位置との差によって所定の遅延時間だけ遅延させており、
前記符号化ビットレートの切り替え時、切り替え前の遅延時間に関する情報と、切り替え後の遅延時間に関する情報と、書き込み途中のパケットの先頭の位置とから、前記切り替え後の最初の書き込みポインタと、該書き込み途中のパケットの変更されたパケット長を求め、
書き込み途中のパケットのパケット長の情報を、前記変更されたパケット長に変更することにより該パケットを完結したパケットに修正し、
遅延時間の変更によって溢れるフレームがあれば該フレームを破棄し、切り替え前の最後のパケットと切り替え後の最初のパケットの間に必要があれば無効データを挿入し、
前記切り替え後の最初の書き込みポインタから切り替え後の書き込みを開始する、
符号化ビットレート切り替え方法。
【請求項６】
前記符号化ビットレートの切り替えによって遅延時間が大きくなる場合には、現在の書き込みポインタの位置と読み出しポインタの位置とから切り替え前の書き込みと読み出しのポインタの位置の差を算出し、与えられた切り替え後の遅延時間から切り替え後の書き込みと読み出しのポインタの位置の差を求め、前記現在の読み出しポインタの位置と該切り替え後の書き込みと読み出しのポインタの位置の差とから、前記切り替え後の最初の書き込みポインタの位置を決定する、請求項５に記載の符号化ビットレート切り替え方法。
【請求項７】
前記符号化ビットレートの切り替えによって遅延時間が小さくなる場合には、現在の書き込みポインタの位置と読み出しポインタの位置とから切り替え前の書き込みと読み出しのポインタの位置の差を算出し、与えられた切り替え後の遅延時間から切り替え後の書き込みと読み出しのポインタの位置の差を求め、切り替え後の最初のパケットの先頭が前記現在の書き込みポインタ以降になるように、前記切り替え後の最初の書き込みポインタの位置を定め、該切り替え後の最初の書き込みポインタの位置と前記切り替え後の書き込みと読み出しのポインタの位置の差とから読み出しポインタの所定位置を決定し、読み出しポインタが前記所定位置に来るまで書き込みを停止し、前記読み出しポインタが前記所定位置にきたら、書き込みポインタを前記切り替え後の最初の書き込みポインタの位置に移動させる、請求項５または６に記載の符号化ビットレート切り替え方法。
【請求項８】
音声信号または映像信号の少なくとも一方の符号化ビットレートの切り替える、請求項５から７のいずれか１項に記載の符号化ビットレート切り替え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化ビットレートの変更が可能な符号化装置に関し、特に、その符号化装置における符号化ビットレート変更時のデータ遅延の制御に関する。
【背景技術】
【０００２】
映像や音声をデジタル信号で送信する装置では映像や音声の符号化が行われる（特許文献１参照）。例えば音声であれば、単位時間当たりの音声データを１フレームとし、フレーム単位で音声データを符号化し、符号化されたデータをパケット化して送信する。映像についても同様にして処理される。
【０００３】
この種の符号化装置では、符号化ビットレートは必ずしも固定されたものではなく、映像や音声を符号化している途中で変更されることがある。符号化ビットレートを変更すると、その境界において映像や音声が一時的に途切れることがある。
【０００４】
この映像や音声の途切れはユーザにとって好ましいものではない。そのため映像や音声の途切れを防止あるいは低減することが望まれる。すなわち、符号化された音声データを受信する側の装置において復号部から出力される音声の途切れを防止あるいは低減することが望まれる。
【０００５】
そのために、従来、符号化部で符号化された映像や音声のデータを一時蓄積するバッファの使用可能なバッファサイズを削減することで、符号化ビットレートを切り替える前後の遅延時間の差を無くすあるいは小さくするという方法があった。
【０００６】
また、符号化ビットレートを切り替えるとき、復号部のバッファを破綻させない、つまりオーバーフローあるいはアンダーフローさせないことが好ましい。そのため、符号化部からのデータを一時蓄積するバッファ内のデータを、復号部のバッファを破綻させないようにしながら清算していた。ここで清算とは、バッファからデータを送出することであり、これにより切り替え前のデータ蓄積状態から切り替え後のデータ蓄積状態に移行させることができる。
【０００７】
バッファ内に蓄積されるデータ量を低減する場合、清算期間中、符号化により発生するデータ量を少なく抑えるような符号化が行なわれていた。
【特許文献１】特開２００４−１４０５０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来装置では、符号化されたデータを一時蓄積するバッファのサイズを削減したり、符号化部で発生する符号化されたデータの量を少なくしたりすることによる音質の劣化が引き起こされていた。
【０００９】
本発明の目的は、符号化ビットレートの切り替え時における音の途切れや音質の劣化を低減した符号化装置を提供することである。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の符号化装置は、
遅延時間の変更を伴う符号化ビットレートの切り替えが可能な符号化装置であって、
入力データをフレーム毎に符号化しており、要求に応じて符号化ビットレートを切り替える符号化部と、
前記符号化部にて符号化されたフレームを含むパケットを生成するパケット化部と、
前記パケット化部にて生成されたパケットを、書き込みポインタで示される書き込みの位置と読み出しポインタで示される読み出しの位置との差によって所定の遅延時間だけ遅延させており、前記符号化ビットレートの切り替え時、書き込み途中のパケットのパケット長の情報を、通知された、変更されたパケット長に変更することにより該パケットを完結したパケットに修正し、遅延時間の変更によって溢れるフレームがあれば該フレームを破棄し、切り替え前の最後のパケットと切り替え後の最初のパケットの間に無効データを挿入し、通知された切り替え後の最初の書き込みポインタから切り替え後の書き込みを開始する遅延バッファと、
前記符号化ビットレートの切り替え時、切り替え前の遅延時間に関する情報と、切り替え後の遅延時間に関する情報と、書き込み途中のパケットの先頭の位置とから、前記切り替え後の最初の書き込みポインタと、該書き込み途中のパケットの変更されたパケット長を求め、該切り替え後の最初の書き込みポインタと該変更されたパケット長とを前記遅延バッファに通知する遅延バッファ制御部と、
を有している。
【発明の効果】
【００１５】
本発明によれば、符号化ビットレートの切り替え時における音の途切れが低減され、音質の劣化が防止される。
【発明を実施するための最良の形態】
【００１６】
本発明を実施するための形態について図面を参照して詳細に説明する。本実施形態では、ＭＰＥＧ２−ＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）方式の音声符号化を例示する。
【００１７】
図１は、本実施形態の符号化装置の構成を示すブロック図である。図１を参照すると、本実施形態の符号化装置は、符号化部１１、符号化バッファ１２、パケット化部１３、遅延バッファ１４、および遅延バッファ制御部１５を有している。
【００１８】
符号化部１１は、単位時間当たりの音声ベースバンド信号を１ＡＤＴＳ（Ａｕｄｉｏ  Ｄａｔａ  Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ）フレームとし、フレーム単位でＭＰＥＧ２−ＡＡＣ方式の符号化を行う。符号化ビットレートは切り替えが可能であり、切り替えを要求されると符号化部１１は符号化ビットレートを切り替える。符号化部１１は、符号化によって得られた、ＡＤＴＳフレーム毎のＥＳ（Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）データＥ１を符号化バッファ１２に送る。ＥＳデータは、複数のＥＳフレームからなるデータのストリームである。
【００１９】
符号化バッファ１２は、符号化部１１からのＥＳデータＥ１を一時蓄積した後にＥＳデータＥ２としてパケット化部１３に送る。
【００２０】
パケット化部１３は、符号化バッファ１２からのＥＳデータＥ２を、指定されたパケット長でパケット化し、得られたＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）データＰ１を遅延バッファ１４に送る。ＰＥＳデータは、複数のＰＥＳパケットからなるデータのストリームである。
【００２１】
遅延バッファ１４は、指定された遅延時間に相当する差分を有する書き込みポインタと読出しポインタを用いて、パケット化部１３からのＰＥＳデータＰ１を指定された遅延時間だけ一時蓄積した後、出力ＰＥＳデータとして出力する。ここで遅延時間は、遅延バッファ１４においてデータを遅延させる時間であり、符号化ビットレートの切り替え時には変更される。また、遅延バッファ１４は、現状態情報として、書き込みポインタの位置、読み出しポインタの位置、および最新のＰＥＳヘッダの位置を遅延バッファ制御部１５に通知する。
【００２２】
符号化ビットレートの切り替え時には遅延バッファ制御部１５から遅延バッファ１４に修正情報が通知される。遅延バッファ制御部１５からの修正情報には、切り替え後の書き込みポインタの位置の情報と、切り替え前の最後のＰＥＳヘッダに付加するパケット長の値とが含まれている。
【００２３】
遅延バッファ１４は、遅延バッファ制御部１５から修正情報を通知されると、その通知情報に基づいて、書き込みポインタの位置と切り替え前の最後のＰＥＳヘッダのパケット長の値とを修正する。また、遅延バッファ１４は、切り替え後の最初のＰＥＳパケットに適切なＰＥＳヘッダを付与する。さらに、遅延バッファ１４は、切り替え前の最後のＰＥＳヘッダと切り替え後の最初のＰＥＳヘッダの間に間隔があれば無効データを挿入する。また、遅延バッファ１４は、切り替え前の最後のＰＥＳヘッダと切り替え後の最初のＰＥＳヘッダの間で遅延時間を修正するためにＥＳデータが溢れる場合には、その溢れたＥＳデータを破棄する。
【００２４】
符号化ビットレートの切り替え時には遅延時間が変更されるので遅延バッファ１４のポインタの変更が必要となる。また、ＰＥＳパケットの途中での切り替えに対して、途中までのＰＥＳパケットを１つの完結したＰＥＳパケットに変換する。途中までのＰＥＳパケットのヘッダ内のパケット長を、この修正情報に含まれている切り替え前の最後のＰＥＳヘッダに付加するパケット長に書き換えることで、その途中までのＰＥＳパケットを完結したＰＥＳパケットに変換することができる。
【００２５】
また、完結したＰＥＳパケットに変換した残りのＥＳフレームについては、遅延バッファ１４は、切り替え後の書き込みポインタの位置との関係で書き込みが可能であれば次のＰＥＳパケットの先頭に書き込み、書き込みが不可能であれば破棄する。
【００２６】
これにより不完全なＰＥＳパケットの廃棄を防止し、遅延時間を大きくする場合には音の途切れを防止し、遅延時間を小さくする場合でも音の途切れを低減することができる。
【００２７】
遅延バッファ制御部１５は、符号化ビットレートの切り替えが行われるとき、遅延指示情報として与えられた切り替え後の遅延時間と、遅延バッファ１４から通知された書き込みポインタの値および読み出しポインタの値とから、切り替え後の書き込みポインタの値を求める。また、遅延バッファ制御部１５は、遅延バッファ１４から通知された最新のＰＥＳヘッダの位置から、切り替え前の最後のＥＳデータのフレームまでを１つのＰＥＳパケットとしたパケット長を求める。このパケット長は、切り替え前の最後のＰＥＳヘッダのパケット長となる。そして、遅延バッファ制御部１５は、切り替え後の書き込みポインタの位置と、切り替え前の最後のＰＥＳパケットのパケット長とを遅延バッファ１４に通知する。
【００２８】
図２は、ＰＥＳデータの例を示す図である。図２に示すように、ＰＥＳデータは、複数のＰＥＳパケットからなるデータのストリームである。ＰＥＳパケットには、ＰＥＳヘッダと複数のＥＳフレームが含まれている。そして、ＰＥＳヘッダには不図示のＰＥＳパケット長フィールドがあり、そこにはＰＥＳヘッダから最後のＥＳフレームまでのＰＥＳパケット長が記載される。図２の例ではＰＥＳパケットとＰＥＳパケットの間に間隔がないが間隔があってもよく、その場合にはその間隔は無効データとなる。
【００２９】
上述したように、符号化ビットレートの切り替えにより遅延時間が変更されるが、遅延時間が長くなる場合と短くなる場合とがある。遅延時間が長くなる場合と短くなる場合とでは符号化装置の動作が異なる。
【００３０】
遅延時間が長くなる場合には書き込みポインタと読み出しポインタの差を大きくする必要がある。逆に、遅延時間が短くなる場合には書き込みポインタと読み出しポインタの差を小さくする必要がある。
【００３１】
図３は、書き込みポインタと読み出しポインタの差を大きくするときの遅延バッファ１４の状態の変化を説明するための図である。図３（ａ）は切り替え前の遅延バッファ１４の状態を示し、図３（ｂ）は切り替え後の遅延バッファ１４の状態を示す。
【００３２】
切り替えの際、遅延バッファ制御部１５は、遅延バッファ１４から通知された現在の書き込みポインタの位置Ａ１と読み出しポインタの位置Ｂ１とから、ポインタの位置の差Ｘ１を算出する。
【００３３】
また、遅延バッファ制御部１５は、遅延指示情報として入力される切り替え後の遅延時間から切り替え後のポインタの位置の差Ｘ２を求める。
【００３４】
さらに、遅延バッファ制御部１５は、現在の読み出しポインタの位置Ｂ１と切り替え後のポインタの位置の差Ｘ２とから、切り替え後の最初の書き込みポインタの位置Ａ３を決定する。
【００３５】
遅延時間をＸ２とするために、遅延バッファ１４は、書き込みポインタＡ１からＡ２まで無効データＭ１を挿入し、Ａ２からＡ３までＰＥＳヘッダＨ２とＥＳフレームＦ１を書き込む。また、切り替え前の最後のＰＥＳパケットのヘッダＨ１に含まれるパケット長の値をＡ１までの値に修正し、ＥＳデータの切れ目までの１つの完結したパケットにする。
【００３６】
図４は、図３に示した切り替えにより遅延バッファ１４から出力されるＰＥＳデータを示す図である。この例では、パケット化部１３では、ＥＳフレーム１〜３を含むＰＥＳパケットの次にＥＳフレーム４〜６を含むＰＥＳパケットが生成され、遅延バッファ１４に送られる。しかし、ＥＳフレーム４〜６を含むＰＥＳパケットの途中で、符号化ビットレートの切り替えによる遅延時間の変更が指示される。そこで、遅延バッファ制御部１５は、ＥＳフレーム４とＥＳフレーム５で１つのＰＥＳパケットとして完結させ、次のＥＳフレーム６〜８を含むＰＥＳパケットとの間で遅延時間を修正している。その際、遅延バッファ１４は、ＥＳフレーム４とＥＳフレーム５を含むＰＥＳパケットと、ＥＳフレーム６〜８を含むＰＥＳパケットの間に無効データを挿入している。
【００３７】
図５は、書き込みポインタと読み出しポインタの差を小さくするときの遅延バッファ１４の状態の変化を説明するための図である。図５（ａ）は切り替え前の遅延バッファ１４の状態を示し、図５（ｂ）は切り替え途中の遅延バッファ１４の状態を示し、図５（ｃ）は切り替え後の遅延バッファ１４の状態を示す。
【００３８】
切り替えの際、遅延バッファ制御部１５は、遅延バッファ１４から通知された現在の書き込みポインタの位置Ａ４と読み出しポインタの位置Ｂ２とから、ポインタの位置の差Ｘ３を算出する。
【００３９】
また、遅延バッファ制御部１５は、遅延指示情報として与えられた切り替え後の遅延時間から切り替え後のポインタの位置の差Ｘ４を求める。そして、遅延バッファ制御部１５は、切り替え後の最初のＰＥＳパケットの先頭Ａ５がＡ４より後になるように、切り替え後の最初の書き込みポインタの位置Ａ６を定め、そのＡ６と切り替え後のポインタの位置の差Ｘ４とから、読み出しポインタの所定位置Ｂ３と読み出しポインタがＢ２からＢ３に来るまでのフレーム数とを決定する。
【００４０】
そして、読み出しポインタがＢ２からＢ３に来るまで符号化部１１の停止により書き込みは停止される。書き込みの停止を継続して書き込みポインタをＡ４に維持したまま読み出しポインタの位置がＢ３にきたら（図５（ｂ）の状態）、遅延バッファ１４は、書き込みポインタの位置をＡ４からＡ６に移動させる。
【００４１】
そのために、遅延バッファ１４は、書き込みポインタＡ４からＡ５まで無効データＭ２を挿入し、Ａ５からＡ６までＰＥＳヘッダＨ４とＥＳフレームＦ２を書き込む（図５（ｃ）の状態）。また、切り替え前の最後のＰＥＳパケットのＰＥＳヘッダＨ３に含まれているパケット長の値をＡ４までに修正し、ＥＳデータの切れ目までを１つの完結したＰＥＳパケットにする。
【００４２】
図６は、図５に示した切り替えにより遅延バッファ１４から出力されるＰＥＳデータを示す図である。この例では、パケット化部１３では、ＥＳフレーム１〜ＥＳフレーム３を含むＰＥＳパケットの次にＥＳフレーム４〜ＥＳフレーム６を含むＰＥＳパケットが生成され、遅延バッファ１４に送られる。しかし、ＥＳフレーム４〜ＥＳフレーム６を含むＰＥＳパケットの途中で、符号化ビットレートの切り替えによる遅延時間の変更が指示される。そこで、遅延バッファ制御部１５は、ＥＳフレーム４とＥＳフレーム５で１つのＰＥＳパケットとして完結させ、その後ろで遅延時間の修正をしている。その際、ＥＳフレーム６〜９が溢れて破棄されている。また、遅延バッファ１４は、ＥＳフレーム４とＥＳフレーム５を含むＰＥＳパケットと、ＥＳフレーム１０〜１２を含むＰＥＳパケットの間に無効データを挿入している。
【００４３】
以上説明したように、本実施形態では、符号化ビットレートの切り替え時、符号化部１１は符号化ビットレートを切り替える。また、遅延バッファ制御部１５は、切り替え後の遅延バッファのポインタの情報と切り替え時に変更するＰＥＳパケットのパケット長とを求めて遅延バッファ１４に通知する。遅延バッファ１４は、遅延バッファ制御部１５からの通知に基づいて、切り替え前の途中のＰＥＳパケットのヘッダ内のパケット長を書き換えることで完結させ、ポインタの位置の差を変更して切り替え後の動作を開始する。したがって、本実施形態によれば、切り替え時に途中のＰＥＳパケットが完結しない状態で破棄されるのを防止し、またバッファサイズの削減やデータ量の削減をせずに切り替えが行われるので、符号化ビットレートの切り替え時における音の途切れが低減され、音質の劣化が防止される。
【００４４】
なお、本実施形態では音声符号化のビットレート切り替えを例示したが、本発明はこれに限定されるものではなく、他の例として映像符号化のビットレート切り替えであってもよい。
【図面の簡単な説明】
【００４５】
【図１】本実施形態の符号化装置の構成を示すブロック図である。
【図２】ＰＥＳデータの例を示す図である。
【図３】書き込みポインタと読み出しポインタの差を大きくするときの遅延バッファ１４の状態の変化を説明するための図である。
【図４】図３に示した切り替えにより遅延バッファ１４から出力されるＰＥＳデータを示す図である。
【図５】書き込みポインタと読み出しポインタの差を小さくするときの遅延バッファ１４の状態の変化を説明するための図である。
【図６】図５に示した切り替えにより遅延バッファ１４から出力されるＰＥＳデータを示す図である。
【符号の説明】
【００４６】
１１    符号化部
１２    符号化バッファ
１３    パケット化部
１４    遅延バッファ
１５    遅延バッファ制御部
Ｅ１、Ｅ２    ＥＳデータ
Ｐ１    ＰＥＳデータ
【図１】
0004636267.tif 000002
【図２】
0004636267.tif 000003
【図３】
0004636267.tif 000004
【図４】
0004636267.tif 000005
【図５】
0004636267.tif 000006
【図６】
0004636267.tif 000007