(57)【要約】【課題】本発明は、映像と音声の符号化データとを多重化して一定のビットレートで伝送するときに、伝送遅延を長くすることなく伝送映像の画質の向上を実現し、かつ、伝送映像の画質の劣化なしに伝送遅延を短くすることを実現する技術の提供を目的とする。【解決手段】通常時は、音声符号化データを映像符号化データよりもできるだけ早いタイミングに伝送する。そして、映像デコーダバッファがアンダーフローする場合には、音声符号化データの伝送ビットレートを下げ映像符号化データの伝送ビットレートを上げることで、そのアンダーフローの発生を回避する。この回避を行った後、音声符号化データの伝送タイミングを徐々に早め、元の伝送タイミングに戻った時点で伝送ビットレートを元に戻す。従来技術では、アンダーフローの回避のために映像符号量を抑制するようにしていたが、そのようなことをしないで済むので伝送映像の画質の低下を招くことがない。【選択図】図１
2010136040.tif 000002
【特許請求の範囲】
【請求項１】
映像符号化データと音声符号化データとを多重化して一定のビットレートで伝送するとともに、その伝送にあたって、音声符号化データを映像符号化データよりも時間的に先に伝送することを制御する映像・音声ストリーム伝送制御方法であって、
映像を符号化する場合の符号量により映像デコーダバッファのアンダーフローが発生する状態となったのか否かを判断する過程と、
前記アンダーフローが発生する状態となったことを判断するときに、音声符号化データの伝送ビットレートを下げ、映像符号化データの伝送ビットレートを上げることで、そのアンダーフローの発生を回避する過程と、
前記アンダーフローの発生を回避した後、所定の期間内に、音声符号化データおよび映像符号化データの伝送ビットレートを前記一定のビットレートのときの伝送ビットレートに復帰させる過程とを備えることを、
特徴とする映像・音声ストリーム伝送制御方法。
【請求項２】
請求項１に記載の映像・音声ストリーム伝送制御方法において、
前記回避する過程では、音声符号化データの伝送を停止させて映像符号化データのみを伝送させることで、前記アンダーフローの発生を回避することを、
特徴とする映像・音声ストリーム伝送制御方法。
【請求項３】
映像符号化データと音声符号化データとを多重化して一定のビットレートで伝送するとともに、その伝送にあたって、音声符号化データを映像符号化データよりも時間的に先に伝送することを制御する映像・音声ストリーム伝送制御装置であって、
映像を符号化する場合の符号量により映像デコーダバッファのアンダーフローが発生する状態となったのか否かを判断する手段と、
前記アンダーフローが発生する状態となったことを判断するときに、音声符号化データの伝送ビットレートを下げ、映像符号化データの伝送ビットレートを上げることで、そのアンダーフローの発生を回避する手段と、
前記アンダーフローの発生を回避した後、所定の期間内に、音声符号化データおよび映像符号化データの伝送ビットレートを前記一定のビットレートのときの伝送ビットレートに復帰させる手段とを備えることを、
特徴とする映像・音声ストリーム伝送制御装置。
【請求項４】
請求項３に記載の映像・音声ストリーム伝送制御装置において、
前記回避する手段は、音声符号化データの伝送を停止させて映像符号化データのみを伝送させることで、前記アンダーフローの発生を回避することを、
特徴とする映像・音声ストリーム伝送制御装置。
【請求項５】
請求項１または２に記載の映像・音声ストリーム伝送制御方法をコンピュータに実行させるための映像・音声ストリーム伝送制御プログラム。
【請求項６】
請求項１または２に記載の映像・音声ストリーム伝送制御方法をコンピュータに実行させるための映像・音声ストリーム伝送制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像符号化データと音声符号化データとを多重化して一定のビットレートで伝送するときに、伝送遅延を長くすることなく伝送映像の画質の向上を実現し、かつ、伝送映像の画質の劣化を招くことなしに伝送遅延を短くすることを実現する映像・音声ストリーム伝送制御方法およびその装置と、その映像・音声ストリーム伝送制御方法の実現に用いられる映像・音声ストリーム伝送制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体とに関する。
【背景技術】
【０００２】
一般に、映像と音声とを圧縮して一定のビットレートで多重化して伝送するシステムでは、映像と音声とを別々にビットレート制御するようにしていた。
【０００３】
この伝送にあたっては、映像の圧縮データが一定の遅延時間内にデコーダに伝送されるように映像の符号量を制御する必要がある。
【０００４】
このとき、伝送遅延時間を短くするためには、映像符号量の変動をより抑制する必要があることから、映像符号量が大きくなった場合には、その符号量を大きく抑制する必要がある。一方、伝送映像の画質を向上するためには、大きな映像符号量の変動に対応できるようにする必要があることから、伝送遅延時間を長くする必要がある。
【０００５】
そこで、従来技術では、伝送遅延時間を短くすることを優先する場合には、伝送映像の画質よりも伝送遅延時間を優先する形で伝送遅延時間を設定し、一方、伝送映像の画質の向上を実現することを優先する場合には、伝送遅延時間よりも伝送映像の画質を優先する形で伝送遅延時間を設定するようにしていた。
【０００６】
このような本発明に関連する従来技術については、下記の非特許文献１，２参照に記載されている。
【非特許文献１】ISO/IEC 13818-2 Annex C, ITU-T Recomendation H.264 AnnexC
【非特許文献２】映像情報メディア学会編,"総合マルチメディア選書  ＭＰＥＧ",オーム社, 1996
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術に従っていると、伝送映像の画質よりも伝送遅延時間を優先する形で伝送遅延時間を設定するようにすると、映像符号量の変動をより抑制する必要があることから、映像符号量が大きくなった場合には、その符号量を大きく抑制する必要があることで伝送映像の画質が劣化するという問題がある。
【０００８】
一方、伝送遅延時間よりも伝送映像の画質を優先する形で伝送遅延時間を設定するようにすると、伝送映像の画質を向上するためには、大きな映像符号量の変動に対応できるようにする必要があることから、伝送遅延時間が長くなるという問題がある。
【０００９】
本発明はかかる事情に鑑みてなされたものであって、映像符号化データと音声符号化データとを多重化して一定のビットレートで伝送するという構成を採るときに、伝送遅延を長くすることなく伝送映像の画質の向上を実現し、かつ、伝送映像の画質の劣化を招くことなしに伝送遅延を短くすることを実現する新たな映像・音声ストリーム伝送制御技術の提供を目的とする。
【課題を解決するための手段】
【００１０】
この目的を達成するために、本発明は、映像符号化データと音声符号化データとを多重化して一定のビットレートで伝送するという構成を採るときに、次のように伝送を制御する。
【００１１】
（１）通常時は、音声符号化データを映像符号化データよりもできるだけ早いタイミングに伝送する。
【００１２】
（２）ある映像フレームを符号化する場合の符号量が大きいことで、映像デコーダバッファがアンダーフローする場合、すなわち、一定遅延時間内に映像符号化データを伝送できないことが判明した場合には、音声符号化データの伝送ビットレートを下げ、映像符号化データの伝送ビットレートを上げることで、そのアンダーフローの発生を回避する。このとき、音声符号化データの伝送を停止させ、映像符号化データのみを伝送させるようにすることもある。
【００１３】
（３）アンダーフローの発生を回避した場合には、その後、音声符号化データの伝送タイミングが遅れているので、所定の期間、音声符号化データの伝送ビットレートを上げ、映像符号化データの伝送ビットレートを下げる。これにより、音声符号化データの伝送タイミングを徐々に早め、元の伝送タイミングに戻った時点で映像符号化データおよび音声符号化データの伝送ビットレートを元に戻すことで、所定の期間内に、音声符号化データおよび映像符号化データの伝送ビットレートを通常の伝送ビットレートに復帰させる。
【００１４】
従来技術では、映像と音声とを圧縮して一定のビットレートで多重化して伝送する場合に、音声は映像に比べて伝送タイミングに自由度があるのに、この自由度を十分利用していなかった。
【００１５】
本発明はその点に着目して、この自由度を映像の符号量の変動幅拡大に活用することにより、伝送遅延を短くすることを優先する場合に問題となる伝送映像の画質の劣化を解決するとともに、伝送映像の画質の向上を図る場合に問題となる伝送遅延の増大を解決するようにするのである。
【発明の効果】
【００１６】
本発明によれば、映像符号化データと音声符号化データとを多重化して一定のビットレートで伝送するときに、伝送遅延を長くすることなく伝送映像の画質の向上を実現できるようになる。
【００１７】
そして、本発明によれば、映像符号化データと音声符号化データとを多重化して一定のビットレートで伝送するときに、伝送映像の画質の劣化を招くことなしに伝送遅延を短くすることを実現できるようになる。
【発明を実施するための最良の形態】
【００１８】
以下、実施の形態に従って本発明を詳細に説明する。
【００１９】
〔１〕実施形態例の構成
図１に、本発明により構成される映像・音声符号化伝送装置の一実施形態例を図示する。
【００２０】
この図において、映像符号化部１０は、映像・音声重畳信号のうち映像信号を入力し、映像信号を符号化して映像ストリームを出力する。音声符号化部２０は、映像・音声重畳信号のうち音声信号を入力し、音声信号を符号化して音声ストリームを出力する。多重化部３０は、音声ストリームと映像ストリームとを所定のビットレートとなるように多重化して出力する。
【００２１】
本実施形態例において、音声符号化部２０は、映像符号化部１０の設定する音声伝送ビットレートに従って音声ストリームの伝送ビットレートを制御し、さらに、フレーム毎もしくは逐次、音声発生符号量を映像符号化部１０に伝達する機能を持つほかは従来技術と同様であるので、その内部構成についての詳しい説明は省略する。
【００２２】
映像符号化部１０は、映像信号をフレーム目標符号量に従って符号化することで映像ストリームを生成する映像フレーム符号化部１１と、映像フレーム符号化部１１を制御することで映像ストリームの生成を制御するとともに、映像ストリームおよび音声ストリームの伝送ビットレートを制御する映像符号化制御部１２と、映像ストリームの伝送ビットレートの制御のために設けられる出力バッファ１３とを備える。
【００２３】
そして、映像符号化制御部１２は、上記の制御を実現するために、映像符号化の制御処理を実行する符号化制御実行部１２０と、映像ストリームが規定の遅延時間内に受信側で受信できるようにするためのバッファ検定を行うバッファ検定部１２１とを備える。
【００２４】
この符号化制御実行部１２０は、フレーム目標符号量を算出するフレーム目標符号量算出部１２００と、映像フレーム符号化部１１に伝達するフレーム目標符号量を決定するフレーム目標符号量決定部１２０１と、映像デコーダバッファのアンダーフローが発生する状態であるのか否かを判断するとともに、映像デコーダバッファのオーバーフローが発生する状態であるのか否かを判断するアンダーフロー・オーバーフロー発生判断部１２０２と、映像デコーダバッファのアンダーフローが発生する状態にあるときに、映像ストリームおよび音声ストリームの伝送ビットレートを定常時のものから変更する制御を行う伝送レート変更制御部１２０３と、伝送レート変更制御部１２０３の変更した伝送ビットレートを元の伝送ビットレートに復帰させるための制御を行う伝送レート復帰制御部１２０４とを備える。
【００２５】
一方、バッファ検定部１２１は、バッファ検定に必要となる映像デコーダバッファのバッファサイズについての処理を実行するデコーダバッファサイズ処理部１２１０と、バッファ検定に必要となる映像デコーダバッファの占有量についての処理を実行するデコーダバッファ占有量処理部１２１１と、映像デコーダバッファのオーバーフロー発生時に伝送タイミングを遅らせるために挿入するフィラーデータ（スタッフィングデータ）の量を決定して、映像フレーム符号化部１１に伝達する処理を行うフィラーデータ量決定部１２１２とを備える。
【００２６】
このように構成される本実施形態例に係る映像・音声符号化伝送装置は、図２のαの個所で示すように、映像フレームｉと音声フレームｊとが同時にデコードされて出力されるという関係（表示時刻と表示期間とが同じである関係）にある場合で説明するならば、図２のβの個所で示すように、音声フレームｊの符号化データを映像フレームｉの符号化データよりも先に伝送するという構成を採る。
【００２７】
ここで、本実施形態例では、簡素化のために、図中に示すように、音声フレームの時間的な長さは“１／Ｐ（Ｐ：映像フレームレート）”であるとし、音声フレームの符号量は一定値であるとする。
【００２８】
〔２〕バッファ検定
次に、本発明の説明に入る前に、映像デコーダバッファのアンダーフローおよびオーバーフローが発生するのか否かについて検出するためのバッファ検定の処理について説明する。なお、ここに言うバッファ検定とは、ＭＰＥＧ２で要求するＶＢＶ（Video Buffering Verifier）の規格や、Ｈ．２６４で要求するＨＲＤ（Hypothetical Reference Decoder）の規格に該当する。
【００２９】
バッファ検定では、図３の上段に示すように、映像フレームｉのエンコード終了時刻から映像フレームｉのデコード開始時刻までに伝送可能な映像符号量を映像デコーダバッファサイズＢmax(ｉ）と定義し、映像フレームｉ−１の伝送終了時刻から映像フレームｉのデコード開始時刻までに伝送可能な映像符号量を映像デコーダバッファ占有量Ｂ（ｉ）と定義する。
【００３０】
映像フレームｉに対しての目標符号量に応じて映像フレームｉの発生符号量Ｓ（ｉ）が決まると、図３の中段に示すように、映像フレームｉ−１の伝送終了時刻を起点として、その発生符号量Ｓ（ｉ）を映像デコーダバッファ占有量Ｂ（ｉ）に割り付けることで、映像フレームｉの伝送終了時刻が映像フレームｉのデコード開始時刻よりも前になるのか後になるのかを判定できる。
【００３１】
映像フレームｉの伝送終了時刻が映像フレームｉのデコード開始時刻よりも後になる場合には、映像フレームｉの符号量が大きいことで映像デコーダバッファがアンダーフローすることになり、バッファが破綻することになる。
【００３２】
すなわち、映像デコーダバッファ占有量Ｂ（ｉ）と映像フレームｉの発生符号量Ｓ（ｉ）との大小比較を行うことで、映像デコーダバッファがアンダーフローするのか否かを判定できることになる。
【００３３】
なお、以下に説明するように、本発明は、このアンダーフローによるバッファ破綻を伝送映像の画質の低下を招くことなく回避することを実現する。ちなみに、従来技術では、アンダーフローとなる場合には、映像フレームｉの符号量を抑制するようにしている。ただ、そのようにすると伝送映像の画質の低下を招くことになる。
【００３４】
一方、それまでの映像フレームの符号量が少ない場合には、映像デコーダバッファ占有量Ｂ（ｉ）が映像デコーダバッファサイズＢmax(ｉ）よりも大きくなるという映像デコーダバッファのオーバーフローが起こる。つまり、映像フレームｉ−１の伝送終了時刻が映像フレームｉのエンコード終了時刻よりも前になるということが起こることで、フィラーデータを挿入しないと、映像フレームｉの伝送開始が早すぎてしまうということが起こる。
【００３５】
これから、映像デコーダバッファサイズＢmax(ｉ）と映像デコーダバッファ占有量Ｂ（ｉ）との大小比較を行うことで、映像デコーダバッファがオーバーフローするのか否かを判定できることになる。
【００３６】
このようにして、この２つの大小比較処理に従って、バッファ検定を行うことで、映像デコーダバッファがアンダーフローするのかということと、映像デコーダバッファがオーバーフローするのかということを判定できることになる。
【００３７】
前述した映像デコーダバッファサイズＢmax(ｉ）の定義から分かるように、映像と音声とを多重化して一定のビットレートで伝送するという構成を採るときに、音声フレームの符号量が変動しない場合には、“Ｂmax(ｉ）＝Ｂmax(ｉ＋１）”というように、映像デコーダバッファサイズＢmax(ｐ）は変動しない。一方、前述した映像デコーダバッファ占有量Ｂ（ｉ）の定義から分かるように、音声フレームの符号量が変動しない場合でも、映像フレームｉの発生符号量Ｓ（ｉ）に応じて“Ｂ（ｉ）≠Ｂ（ｉ＋１）”となることから、映像デコーダバッファ占有量Ｂ（ｐ）は変動する。
【００３８】
そこで、バッファ検定では、映像フレームｉの発生符号量Ｓ（ｉ）が決まると、図３の中段に示すように、
Ｂ（ｉ）−Ｓ（ｉ）＝Ｂ* （ｉ）
を求めて、図３の後段に示すように、
Ｂ* （ｉ）＋Ｒ／Ｐ＝Ｂ（ｉ＋１）
を算出することにより、映像デコーダバッファサイズＢmax(ｉ＋１）を更新するようにしている。ここで、Ｒは映像の伝送ビットレート、Ｐは映像フレームレートを表している。
【００３９】
〔３〕本実施形態例の実行する処理
次に、本実施形態例に係る映像・音声符号化伝送装置の実行する処理について説明する。まず最初に、図４に従って、本実施形態例に係る映像・音声符号化伝送装置の実行する処理について簡単に説明する。
【００４０】
本実施形態例に係る映像・音声符号化伝送装置では、図２のβの個所で示すとともに、図４の上段に示すように、映像フレームに対応付けられる音声フレームの符号化データをその映像フレームの符号化データよりも先に伝送するように処理する。
【００４１】
このようにして、音声の符号化データを映像の符号化データよりも先に伝送しているときに、前述したバッファ検定に従って、図４の中段に示すように、映像フレームｉの符号化データを伝送すると映像デコーダバッファがアンダーフローするということを検出すると、図４の下段に示すように、映像フレームｉと同時に伝送することになる音声フレーム（図４の例では音声フレームｊ＋５）の符号化データの伝送を停止することで、そのアンダーフローを回避するように処理する。
【００４２】
そして、そのアンダーフローを回避すると、音声の符号化データの伝送を一時的に停止させたことにより音声の符号化データの伝送タイミングが遅れているので、音声の符号化データの伝送を再開する際に、例えば５つの音声フレームについて伝送ビットレートを上げ、それに対応した映像フレームについて伝送ビットレートを下げることで、音声の伝送タイミングの遅れを取り戻すように処理する。
【００４３】
この構成に従って、従来技術では、映像デコーダバッファがアンダーフローとなる場合に、映像フレームｉの符号量を抑制することでアンダーフローを回避するようにしていたのに対して、本実施形態例に係る映像・音声符号化伝送装置では、映像フレームｉの符号量を抑制することなくアンダーフローを回避することができるようになるので、伝送映像の画質の低下を招くことなくアンダーフローを回避することができるようになる。
【００４４】
図５〜図７に、本実施形態例に係る映像・音声符号化伝送装置の備える映像符号化部１０の実行するフローチャートを図示する。次に、これらのフローチャートに従って、映像符号化部１０の実行する処理について詳細に説明する。
【００４５】
映像符号化部１０は、図５〜図７のフローチャートに示すように、まず最初に、ステップＳ１０１で、ＧＯＰ内のフレーム数をＮ、映像伝送ビットレートをＲ、映像フレームレートをＰで表すならば、ｑ番目のＧＯＰ（group of pictures)であるＧＯＰ（ｑ）の目標符号量Ｇ（ｑ）を、
Ｇ（ｑ）＝Ｎ×（Ｒ／Ｐ）＋前のＧＯＰからの繰越符号量
という式に従って算出する。
【００４６】
続いて、ステップＳ１０２で、下記の参考文献などに記載される方法に従って、ＧＯＰ（ｑ）の目標符号量Ｇ（ｑ）を今後のＮフレームに対して配分して、次フレームの目標符号量Ｔ（ｉ）を求める。
【００４７】
〔参考文献〕International Organisation for Standardisation, Test Model Editing              Committee, 1993. Test Model5. April, ISO-IEC/JTC1/SC29/WG11/N0400 
続いて、ステップＳ１０３で、バッファ検定に従い、次フレームの目標符号量Ｔ（ｉ）が映像デコーダバッファ占有量Ｂ（ｉ）よりも小さいのか否かを判断する。すなわち、
Ｔ（ｉ）＜Ｂ（ｉ）
が成立するのか否かを判断するのである。
【００４８】
このステップＳ１０３の判断処理に従って、次フレームの目標符号量Ｔ（ｉ）が映像デコーダバッファ占有量Ｂ（ｉ）よりも小さいことを判断するとき、すなわち、映像デコーダバッファがアンダーフローしないことを判断するときには、ステップＳ１０４に進んで、目標符号量Ｔ（ｉ）に従って映像フレームｉを符号化する。なお、このとき、指定があるときには、フィールド単位で符号化することになる。
【００４９】
続いて、ステップＳ１０５で、図３で説明したように、映像デコーダバッファ占有量Ｂ（ｉ）からフレーム発生符号量Ｓ（ｉ）を減算することでＢ* （ｉ）を算出する。すなわち、図３に記載するＢ* （ｉ）
Ｂ* （ｉ）＝Ｂ（ｉ）−Ｓ（ｉ）
を算出するのである。
【００５０】
続いて、ステップＳ１０６で、映像デコーダバッファ占有量を更新することで、次の映像フレームｉ＋１についての映像デコーダバッファ占有量Ｂ（ｉ＋１）を求める。すなわち、図３に記載するように、
Ｂ（ｉ＋１）＝Ｂ* （ｉ）＋（Ｒ／Ｐ）
を算出するのである。
【００５１】
続いて、ステップＳ１０７で、バッファ検定に従い、映像デコーダバッファ占有量Ｂ（ｉ＋１）が映像デコーダバッファサイズＢmax(ｉ＋１）よりも大きいのか否かを判断する。すなわち、
Ｂ（ｉ＋１）＞Ｂmax(ｉ＋１）
が成立するのか否かを判断するのである。
【００５２】
このステップＳ１０７の判断処理に従って、映像デコーダバッファ占有量Ｂ（ｉ＋１）が映像デコーダバッファサイズＢmax(ｉ＋１）よりも大きいことを判断するとき、すなわち、映像デコーダバッファがオーバーフローすることを判断するときには、ステップＳ１０８に進んで、
Ｆ（ｉ）＝Ｂ（ｉ＋１）−Ｂmax(ｉ＋１）
により算出される超過分のフィラーデータＦ（ｉ）を挿入するとともに、
Ｂ（ｉ＋１）←Ｂ（ｉ＋１）−Ｆ（ｉ）＝Ｂmax(ｉ＋１）
に従って、映像デコーダバッファ占有量Ｂ（ｉ＋１）を更新する。
【００５３】
続いて、ステップＳ１０９で、映像フレームの番号を指定する変数ｉの値を１つインクリメントし、続くステップＳ１１０で、符号化処理中のＧＯＰの符号化が終了したのか否かを判断して、符号化処理中のＧＯＰの符号化が終了していないことを判断するときには、ステップＳ１０２の処理に戻り、符号化処理中のＧＯＰの符号化が終了したことを判断するときには、次のＧＯＰを符号化すべくステップＳ１０１の処理に戻る。
【００５４】
一方、ステップＳ１０７の判断処理に従って、映像デコーダバッファ占有量Ｂ（ｉ＋１）が映像デコーダバッファサイズＢmax(ｉ＋１）よりも小さいことを判断するときには、映像デコーダバッファがオーバーフローしないことを判断して、ステップＳ１０８の処理を行うことなく直ちにステップＳ１０９の処理に進んで、映像フレームの番号を指定する変数ｉの値を１つインクリメントし、続くステップＳ１１０で、符号化処理中のＧＯＰの符号化が終了したのか否かを判断して、符号化処理中のＧＯＰの符号化が終了していないことを判断するときには、ステップＳ１０２の処理に戻り、符号化処理中のＧＯＰの符号化が終了したことを判断するときには、次のＧＯＰを符号化すべくステップＳ１０１の処理に戻る。
【００５５】
このようにして、映像符号化部１０は、映像デコーダバッファがアンダーフローしない場合には、ステップＳ１０１〜ステップＳ１１０の処理を繰り返していくことで、従来技術と同様の処理に従って、映像フレームの符号化データを生成していくように制御することになる。
【００５６】
一方、ステップＳ１０３の判断処理に従って、次フレームの目標符号量Ｔ（ｉ）が映像デコーダバッファ占有量Ｂ（ｉ）よりも大きいことを判断するとき、すなわち、映像デコーダバッファがアンダーフローする状態（図４の中段に示す状態）になることを判断するときには、ステップＳ１１１に進んで、伝送を停止する音声フレームの個数を指定する変数ｎに初期値の１をセットする。
【００５７】
続いて、ステップＳ１１２で、図４に示す映像フレームｉのデコード開始時刻ＤＴＳ（ｉ）から遡るｎ音声フレーム目の伝送開始時刻が、映像フレーム（ｉ−１）の伝送開始時刻τ（ｉ−１）よりも後であるのか否かを判断する。すなわち、
τ（ｉ−１）≦ＤＴＳ（ｉ）−ｎ／Ｐ
が成立するのか否かを判断するのである。
【００５８】
このステップＳ１１２の判断処理に従って、映像フレームｉのデコード開始時刻ＤＴＳ（ｉ）から遡るｎ音声フレーム目の伝送開始時刻が、映像フレーム（ｉ−１）の伝送開始時刻τ（ｉ−１）よりも後であることを判断するときには、ステップＳ１１３に進んで、音声符号化データｎフレーム分の符号量がバッファ超過分の符号量以上であるのか否かを判断する。すなわち、１音声フレーム分の符号化データの符号量をＡudio-frame-bitで表すならば、
ｎ×Ａudio-frame-bit≧Ｔ（ｉ）−Ｂ（ｉ）
が成立するのか否かを判断するのである。
【００５９】
このステップＳ１１３の判断処理に従って、音声符号化データｎフレーム分の符号量がバッファ超過分の符号量以上ではないことを判断するときには、ステップＳ１１４に進んで、変数ｎの値を１つインクリメントしてから、ステップＳ１１２の処理に戻る。
【００６０】
このステップＳ１１２〜ステップＳ１１４の処理について説明するならば、要するに、この処理では、何個の音声フレームの伝送を停止させればバッファ超過分の“Ｔ（ｉ）−Ｂ（ｉ）”という符号量をバッファを超過させない形（アンダーフローが発生しない形）で伝送できることになるのかということを探索するようにしている。そして、この探索にあたって、映像フレームｉのデコード開始時刻ＤＴＳ（ｉ）から遡るｎ音声フレーム目の伝送開始時刻が、映像フレーム（ｉ−１）の伝送開始時刻τ（ｉ−１）よりも前になると、伝送タイミングが決定済みの映像フレーム（ｉ−１）に対して影響を与えることになってしまうので、そこまで遡ることは認めないようにするという条件を課して、この探索を行うようにしている。
【００６１】
このようにして、ステップＳ１１２〜ステップＳ１１４の処理を繰り返していくときに、ステップＳ１１２で、映像フレームｉのデコード開始時刻ＤＴＳ（ｉ）から遡るｎ音声フレーム目の伝送開始時刻が、映像フレーム（ｉ−１）の伝送開始時刻τ（ｉ−１）よりも前であることを判断すると、ステップＳ１１５に進んで、次フレームの目標符号量Ｔ（ｉ）を、映像デコーダバッファ占有量Ｂ（ｉ）に音声フレーム（ｎ−１）分の符号量を加算した値でクリッピングする。
【００６２】
以下、説明の便宜上、伝送を停止する音声フレームの個数をｎと記載することで統一する。これから、ステップＳ１１５では、次フレームの目標符号量Ｔ（ｉ）を、
Ｔ（ｉ）＝Ｂ（ｉ）＋ｎ×Ａudio-frame-bit
でクリッピングすることで説明する。
【００６３】
このクリッピングの意味するところは、ステップＳ１１５の処理に入ってくるということは、バッファ超過分“Ｔ（ｉ）−Ｂ（ｉ）”を完全にカバーできるところまで音声フレームを停止させることはできないので、遡ることが可能なところまでの数の音声フレームを停止させて、それでも残るバッファ超過分については目標符号量Ｔ（ｉ）を減らして対処する、という考え方に基づいてクリッピングを行うことにある。
【００６４】
ステップＳ１１５の処理を終了し、また、ステップＳ１１３の判断処理に従って、音声符号化データｎフレーム分の符号量がバッファ超過分の符号量以上であることを判断すると、ステップＳ１１６に進んで、目標符号量Ｔ（ｉ）に従って映像フレームｉを符号化する。なお、このとき、指定があるときには、フィールド単位で符号化することになる。
【００６５】
続いて、ステップＳ１１７で、音声符号化部２０および多重化部３０に対して、映像フレームｉのデコード開始時刻ＤＴＳ（ｉ）から遡るｎ音声フレームの伝送を停止することを伝達する。
【００６６】
この伝達を受けて、音声符号化部２０および多重化部３０は、映像フレームｉのデコード開始時刻ＤＴＳ（ｉ）から遡るｎ音声フレームの伝送を停止させ、これにより、図４の下段に示すように、映像デコーダバッファのアンダーフローが回避されることになる。
【００６７】
続いて、ステップＳ１１８で、ｎ×Ａudio-frame-bit分の符号量が利用可能な符号量として音声符号化側から映像符号化側に渡されたことに対応して、映像デコーダバッファ占有量Ｂ（ｉ）および映像デコーダバッファサイズＢmax(ｉ）を修正する。すなわち、
Ｂ（ｉ）  ←Ｂ（ｉ）＋ｎ×Ａudio-frame-bit
Ｂmax(ｉ）←Ｂmax(ｉ）＋ｎ×Ａudio-frame-bit
という式に従って、映像デコーダバッファ占有量Ｂ（ｉ）および映像デコーダバッファサイズＢmax(ｉ）を修正するのである。
【００６８】
続いて、ステップＳ１１９で、音声符号化部２０および多重化部３０に対して、音声伝送ビットレートを、映像フレームｉのデコード開始時刻ＤＴＳ（ｉ）から予め設定されるＡ個の音声フレーム期間に渡って、
Ｃ＝（ｎ／Ａ）×通常時の音声伝送ビットレート
という一定量Ｃだけ、通常時の音声伝送ビットレートから上げることを伝達する。
【００６９】
すなわち、ｎ個の音声フレームの伝送を一時的に停止させたことにより音声の伝送タイミングが遅れているので、音声フレームの伝送を再開する際に、Ａ個の音声フレームについて伝送ビットレートを上げ、それに対応した映像フレームについて伝送ビットレートを下げることで、音声の伝送タイミングの遅れを取り戻すように処理するのである。図４では、ｎ＝１、Ａ＝５を想定して図示している。
【００７０】
続いて、ステップＳ１２０で、ステップＳ１０２のところで記載した参考文献などに記載される方法に従って、ＧＯＰ（ｑ）の目標符号量Ｇ（ｑ）を今後のＮフレームに対して配分して、次フレームの目標符号量Ｔ（ｉ）を求める。
【００７１】
続いて、ステップＳ１２１で、次フレームの目標符号量Ｔ（ｉ）が映像デコーダバッファ占有量Ｂ（ｉ）以上である場合には、次フレームの目標符号量Ｔ（ｉ）をそのＢ（ｉ）でクリッピングする。すなわち、
Ｔ（ｉ）←ｍｉｎ（Ｔ（ｉ），Ｂ（ｉ））
というようにクリッピングするのである。
【００７２】
この処理段階では、一度音声フレームの伝送を停止させた後、その停止による伝送タイミングの遅れを取り戻すべく非通常時の複雑な伝送処理を行っている最中であり、これから、この処理段階で映像デコーダバッファがアンダーフローすることになったとしても、再度音声フレームの伝送を停止させるような複雑な処理は行わないで、次フレームの目標符号量Ｔ（ｉ）を映像デコーダバッファ占有量Ｂ（ｉ）でクリッピングするように処理するのである。
【００７３】
続いて、ステップＳ１２２で、目標符号量Ｔ（ｉ）に従って映像フレームｉを符号化する。なお、このとき、指定があるときには、フィールド単位で符号化することになる。
【００７４】
続いて、ステップＳ１２３で、図３で説明したように、映像デコーダバッファ占有量Ｂ（ｉ）からフレーム発生符号量Ｓ（ｉ）を減算することでＢ* （ｉ）を算出する。すなわち、図３に記載するＢ* （ｉ）
Ｂ* （ｉ）＝Ｂ（ｉ）−Ｓ（ｉ）
を算出するのである。
【００７５】
続いて、ステップＳ１２４で、映像デコーダバッファサイズを更新することで、次の映像フレームｉ＋１についての映像デコーダバッファサイズＢmax(ｉ＋１）を求める。前述したように、音声フレームの伝送ビットレートが変動しない場合には、映像デコーダバッファサイズＢmax(ｐ）は変動しない値となる。しかしながら、音声フレームの伝送ビットレートが変動している場合には、図８に示すように、映像デコーダバッファサイズＢmax(ｐ）も変動することになる。
【００７６】
これから、このステップＳ１２４では、
Ｂmax(ｉ＋１）＝Ｂmax(ｉ）− delta＿Ｒ（ｉ）／Ｐ
という式に従って、次の映像フレームｉ＋１についての映像デコーダバッファサイズＢmax(ｉ＋１）を更新するのである。
【００７７】
ここで、 delta＿Ｒ（ｉ）は、
delta＿Ｒ（ｉ）＝
“ＤＴＳ（ｉ−１）〜ＤＴＳ（ｉ）間の映像伝送ビットレート”
−“ＤＴＳ（ｉ−１）−Ｄ〜ＤＴＳ（ｉ）−Ｄ間の映像伝送ビットレート”
で定義される。
【００７８】
この delta＿Ｒ（ｉ）に記載される“ＤＴＳ（ｉ−１）〜ＤＴＳ（ｉ）間の映像伝送ビットレート”とは、図８で説明するならば、図８の中段に示す映像伝送ビットレートｘに相当するものである。また、この delta＿Ｒ（ｉ）に記載される“ＤＴＳ（ｉ−１）−Ｄ〜ＤＴＳ（ｉ）−Ｄ間の映像伝送ビットレート”とは、図８で説明するならば、図８の中段に示す映像伝送ビットレートｙに相当するものである。また、この delta＿Ｒ（ｉ）に記載されるＤは、図８中に記載するように、映像フレームｉのエンコード終了時刻からデコード開始時刻までの時間を映像フレーム数に換算した値（図８の例ではＤ＝６）である。
【００７９】
続いて、ステップＳ１２５で、映像デコーダバッファ占有量を更新することで、次の映像フレームｉ＋１についての映像デコーダバッファ占有量Ｂ（ｉ＋１）を求める。このとき、音声の伝送ビットレートが通常時のものからＣだけ増えていることから、ステップＳ１０６の処理とは異なって、
Ｂ（ｉ＋１）＝Ｂ* （ｉ）＋((Ｒ−Ｃ）／Ｐ）
という式に従って、映像デコーダバッファ占有量Ｂ（ｉ＋１）を更新することになる。
【００８０】
続いて、ステップＳ１２６で、デコーダ検定に従って、映像デコーダバッファがオーバーフローするのか否かを判断して、映像デコーダバッファがオーバーフローすることを判断するときには、
Ｆ（ｉ）＝ｍａｘ（０，Ｂ（ｉ＋１）−Ｂmax(ｉ＋１))
により算出される超過分のフィラーデータＦ（ｉ）を挿入するとともに、
Ｂ（ｉ＋１）←Ｂ（ｉ＋１）−Ｆ（ｉ）＝Ｂmax(ｉ＋１）
に従って、映像デコーダバッファ占有量Ｂ（ｉ＋１）を更新する。
【００８１】
続いて、ステップＳ１２７で、映像フレームの番号を指定する変数ｉの値を１つインクリメントし、続くステップＳ１２８で、映像フレームｉの伝送開始時刻が音声伝送ビットレートを上げている期間内であるのか否かを判断する。
【００８２】
このステップＳ１２８の判断処理に従って、映像フレームｉの伝送開始時刻が音声伝送ビットレートを上げている期間内であることを判断するときには、ステップＳ１２９に進んで、符号化処理中のＧＯＰの符号化が終了したのか否かを判断して、符号化処理中のＧＯＰの符号化が終了していないことを判断するときには、ステップＳ１２０の処理に戻り、符号化処理中のＧＯＰの符号化が終了したことを判断するときには、続くステップＳ１３０で、次のＧＯＰを処理すべくＧＯＰ初期化処理を実行してから、ステップＳ１２０の処理に戻る。
【００８３】
一方、ステップＳ１２８の判断処理に従って、映像フレームｉの伝送開始時刻が音声伝送ビットレートを上げている期間内ではないことを判断するときには、符号化処理中のＧＯＰの符号化が終了したのか否かを判断して、符号化処理中のＧＯＰの符号化が終了していないことを判断するときには、ステップＳ１０２の処理に戻り、符号化処理中のＧＯＰの符号化が終了したことを判断するときには、次のＧＯＰを符号化すべくステップＳ１０１の処理に戻る。
【００８４】
このようにして、映像符号化部１０は、図５〜図７のフローチャートを実行することで、音声フレームの符号化データを映像フレームの符号化データよりも先に伝送しつつ、映像デコーダバッファがアンダーフローすることを検出すると、音声フレームの符号化データの伝送を停止することで、そのアンダーフローを回避して、その後、音声フレームの符号化データの伝送ビットレートを通常時よりも上げることで音声の伝送タイミングの遅れを取り戻すように処理する。
【００８５】
この処理に従って、映像の符号量を抑制することなく映像デコーダバッファがアンダーフローを回避することができるようになるので、伝送映像の画質の低下を招くことなくアンダーフローを回避することができるようになる。
【００８６】
以上、図示実施形態例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施形態例では、映像デコーダバッファがアンダーフローすることを検出すると、音声フレームの符号化データの伝送を停止することで、そのアンダーフローを回避するようにしたが、伝送停止まで実行するのではなくて、音声フレームの符号化データの伝送ビットレートを下げることで、そのアンダーフローを回避するようにしてもよい。
【産業上の利用可能性】
【００８７】
本発明は、映像符号化データと音声符号化データとを多重化して一定のビットレートで伝送する場合に適用できるものであり、本発明を適用することで、伝送遅延を長くすることなく伝送映像の画質の向上を実現できるようになるとともに、伝送映像の画質の劣化を招くことなしに伝送遅延を短くすることを実現できるようになる。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施形態例である。
【図２】本発明の実行する伝送処理の説明図である。
【図３】バッファ検定の説明図である。
【図４】本発明の実行する伝送処理の説明図である。
【図５】映像符号化部の実行するフローチャートである。
【図６】映像符号化部の実行するフローチャートである。
【図７】映像符号化部の実行するフローチャートである。
【図８】映像デコーダバッファサイズの変動の説明図である。
【符号の説明】
【００８９】
１０      映像符号化部
１１      映像フレーム符号化部
１２      映像符号化制御部
１３      出力バッファ
２０      音声符号化部
３０      多重化部
１２０    符号化制御実行部
１２１    バッファ検定部
１２００  フレーム目標符号量算出部
１２０１  フレーム目標符号量決定部
１２０２  アンダーフロー・オーバーフロー発生判断部
１２０３  伝送レート変更制御部
１２０４  伝送レート復帰制御部
１２１０  デコーダバッファサイズ処理部
１２１１  デコーダバッファ占有量処理部
１２１２  フィラーデータ量決定部
【図１】
2010136040.tif 000003
【図２】
2010136040.tif 000004
【図３】
2010136040.tif 000005
【図４】
2010136040.tif 000006
【図５】
2010136040.tif 000007
【図６】
2010136040.tif 000008
【図７】
2010136040.tif 000009
【図８】
2010136040.tif 000010