(57)【要約】【課題】映像符号化において，音声の余剰符号量を映像符号化に利用し，画質を向上させるとともに，デコード遅延時間の増加を抑える。【解決手段】映像符号化制御部１１は，音声符号化部２０が映像よりも先行して符号化した音声発生符号量をもとに，映像ストリームの伝送に用いることができる音声の余剰符号量を利用して目標符号量を決め，映像フレーム符号化部１２により符号化する。多重化部５０は，映像と音声の符号化データを多重化して伝送するが，このとき音声符号化部２０が符号化した音声フレームは，遅延バッファ４０を用いて，伝送先におけるデコード直前のタイミングで伝送する。【選択図】図１
2010136041.tif 000002
【特許請求の範囲】
【請求項１】
映像符号化データと音声符号化データとを多重化した符号化ストリームを，所定のビットレートの範囲内で伝送する符号化ストリーム伝送方法であって，
符号化対象の音声信号を，伝送先で同時刻に復号する符号化対象の映像信号よりも先に符号化する過程と，
符号化済みの音声発生符号量から映像符号化制御単位の期間における音声の余剰符号量を算出する過程と，
前記余剰符号量の一部または全部を映像符号化制御単位における目標符号量に加え，次に符号化する映像符号化制御単位における目標符号量を決定する過程と，
前記決定された目標符号量に従って，映像符号化制御単位における映像信号を符号化する過程と，
符号化結果の映像符号化データと音声符号化データとを多重化して伝送する際に，音声符号化データについては，該音声符号化データの伝送先における復号直前のタイミングで伝送する過程とを有する
ことを特徴とする符号化ストリーム伝送方法。
【請求項２】
請求項１に記載の符号化ストリーム伝送方法において，
前記符号化対象の音声信号を符号化する過程では，伝送先で同時刻に復号する符号化対象の映像信号よりも１映像符号化制御単位の期間分だけ先行して音声信号を符号化する
ことを特徴とする符号化ストリーム伝送方法。
【請求項３】
請求項１または請求項２に記載の符号化ストリーム伝送方法において，
前記映像信号を符号化する過程では，前記音声の余剰符号量に従ってデコーダバッファサイズとデコーダバッファ占有量とを更新し，デコーダバッファが破綻しないかを検証するデコーダバッファ検定を行う
ことを特徴とする符号化ストリーム伝送方法。
【請求項４】
映像符号化データと音声符号化データとを多重化した符号化ストリームを，所定のビットレートの範囲内で伝送する符号化ストリーム伝送装置であって，
符号化対象の音声信号を，伝送先で同時刻に復号する符号化対象の映像信号よりも先に符号化する手段と，
符号化済みの音声発生符号量から映像符号化制御単位の期間における音声の余剰符号量を算出する手段と，
前記余剰符号量の一部または全部を映像符号化制御単位における目標符号量に加え，次に符号化する映像符号化制御単位における目標符号量を決定する手段と，
前記決定された目標符号量に従って，映像符号化制御単位における映像信号を符号化する手段と，
符号化結果の映像符号化データと音声符号化データとを多重化して伝送する際に，音声符号化データについては，該音声符号化データの伝送先における復号直前のタイミングで伝送する手段とを備える
ことを特徴とする符号化ストリーム伝送装置。
【請求項５】
請求項１から請求項３までのいずれか１項に記載の符号化ストリーム伝送方法を，コンピュータに実行させるための符号化ストリーム伝送制御プログラム。
【請求項６】
請求項１から請求項３までのいずれか１項に記載の符号化ストリーム伝送方法を，コンピュータに実行させるための符号化ストリーム伝送制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，音声ストリームのビットレートと映像ストリームのビットレートとの和が所定のビットレートの範囲内になるように，音声の発生符号量に応じて映像の符号量を制御して伝送する符号化ストリーム伝送方法，符号化ストリーム伝送装置，符号化ストリーム伝送制御プログラムおよびその記録媒体に関するものである。
【背景技術】
【０００２】
一般に，映像ストリームと，音声やデータなどの他のストリームとを多重化して送るような伝送システムでは，映像は，他のストリームとは独立にビットレート制御を行っていた（非特許文献１，２参照）。
【０００３】
特に，ロスレス音声符号化ストリームは，固定ビットレート（ＣＢＲ：Constant Bit Rate ）で伝送されるのに対し，ロッシー映像符号化ストリームは，動きが激しかったり，複雑な絵柄のシーンでは符号量を多くし，単調で動きが少ないシーンでは符号量を少なくして，所定の範囲内で発生符号量を変化させる可変ビットレート（ＶＢＲ：Variable Bit Rate ）の制御が行われている。
【非特許文献１】ISO/IEC 13818-2 Annex C, ITU-T Recomendation H.264 Annex C
【非特許文献２】映像情報メディア学会編，“総合マルチメディア選書ＭＰＥＧ”，社団法人映像情報メディア学会，（株）オーム社発行，1996.4.20
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＭＰＥＧ−４  ＡＬＳのようなロスレス音声符号化ストリームと映像符号化ストリーム（以下，符号化ストリームを単に「ストリーム」ともいう）とを多重化する場合，音声ビットレートの変動が映像ビットレートに比べて無視できないほど大きいことが多い。
【０００５】
したがって，映像と音声の多重化ストリームにおいて，固定で割り当てられていた音声のビットレートのうち，音声符号化データの発生符号量が小さい余剰符号量分を映像符号化に利用することができれば，ビットレートに無駄が生じることがなく，画質の向上に寄与すると考えられる。
【０００６】
しかし，このように音声符号化データの発生符号量の変動分を，映像符号化に有効に利用するために，音声のビットレートに合わせて映像のビットレートを変化させると，音声符号量の変動によって，映像伝送ビットレートが変動するため，それに応じて同じ映像発生符号量でも伝送に要する時間が変動する。
【０００７】
一般にロッシー映像符号化では，ピクチャの種別や絵柄により符号量が変動し，その変動を一定遅延時間内に伝送できる範囲に制御する必要がある。さらに，音声の余剰符号量分のビットレートを映像の伝送に利用した場合には，その余剰符号量によるビットレートの変動分を考慮して，デコーダバッファのアンダーフローおよびオーバーフローが生じないような伝送の制御が必要になる。
【０００８】
デコーダバッファのアンダーフローやオーバーフローが生じないようにする方法としては，あらかじめデコーダのバッファサイズを大きくして，デコード遅延を大きめに設定する方法，もしくは全体の伝送ビットレートを高めにして，オーバーフローが生じそうなときには，フィラーデータ（ヌルパケット）等を挿入して伝送するなどの方法がある。
【０００９】
しかしながら，デコード遅延の許容時間（バッファサイズ）にも限界があり，また伝送ビットレートを高めに設定することは，音声の余剰符号量分のビットレートを映像の伝送に利用して効率的な伝送を実現するという目的にも反することになるため，一定のデコード遅延の制限時間内，および一定の伝送ビットレート内で，上記課題を解決する必要がある。
【００１０】
本発明は，以上の問題点の解決を図り，音声の余剰符号量分のビットレートを映像ストリームの伝送に有効に利用するとともに，デコード遅延が小さくデコーダバッファの破綻が生じない伝送方式を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は，上記課題を解決するため，ロスレス音声符号化ストリームやデータストリーム等の符号化ビットレートを制御できないストリームと，ロッシー映像符号化ストリームとを固定ビットレート（ＣＢＲ）で多重化する場合に，次のように音声・映像の符号化およびストリームの伝送を制御する。
【００１２】
（１）ある映像ピクチャを符号化する際に，同時刻の音声フレームを先に符号化し，その発生符号量の情報を得てから，映像ピクチャの符号化を行う。
【００１３】
（２）音声フレームの圧縮データを，受信側装置におけるデコード直前のタイミングで伝送する。
【００１４】
これにより，映像ピクチャ符号化時に，その映像ピクチャ復号直前までの映像伝送帯域を確定させることができ，かつ符号化から復号までのデコード遅延時間を短くすることができる。
【００１５】
映像伝送帯域は，ＴＳ（Transport Stream）ビットレートから音声伝送帯域を減算することで求まるので，映像ピクチャ符号化直後からデコード直前までの期間に伝送される音声の伝送タイミングと伝送レートを，映像ピクチャ符号化に先立って決める必要があり，上記の（１），（２）を実施することで，これをもっとも効率的に実現することができる。
【００１６】
本発明によってデコード遅延を短縮することができる理由は，以下のとおりである。符号化から復号までの遅延の内訳は，次のように分類することができる。
【００１７】
Ａ：映像・音声符号化時間
Ｂ：送信側および受信側のバッファ滞留時間
Ｃ：映像・音声デコード
もし，上記（１）を実施しないで，音声フレームの発生符号量を得ずに映像を符号化すると，バッファ・遅延条件が破綻する可能性が生じる。それを回避するには，Ｂの時間を長くとる必要があり，デコード遅延が大きくなる。
【００１８】
また，上記（２）を行わないで，音声フレームの伝送タイミングを遅くした場合，デコード時に映像の待ちが生じ，Ｃの時間が増えることになる。一方，上記（２）を行わないで，音声フレームの伝送タイミングを早くした場合，伝送帯域確定のため音声を先行して符号化する必要が生じ，Ａの時間が増えることになる。
【００１９】
また，符号化効率が極端に低下しない範囲で音声フレームをできるだけ小さくすることが望ましい。音声フレームを可能な範囲で小さくすることで，音声符号化に要する時間が短くなり，ひいては全体の遅延を短くすることが可能になる。
【００２０】
以上の点を踏まえて，本発明は，符号化ストリームの伝送を次のように制御する。まず，符号化対象の音声信号を，伝送先で同時刻に復号する符号化対象の映像信号よりも先に符号化する。次に，符号化済みの音声発生符号量から映像符号化制御単位（例えばＧＯＰまたはフレーム）の期間における音声の余剰符号量を算出する。こうして算出した余剰符号量の一部または全部を映像符号化制御単位における目標符号量に加え，次に符号化する映像符号化制御単位における目標符号量を決定する。決定された目標符号量に従って，映像符号化制御単位における映像信号を符号化する。符号化の後，符号化結果の映像符号化データと音声符号化データとを多重化して伝送する際に，音声符号化データについては，該音声符号化データの伝送先における復号直前のタイミングで伝送する。
【００２１】
上記本発明において，符号化対象の音声信号を符号化する場合に，伝送先で同時刻に復号する符号化対象の映像信号よりも１映像符号化制御単位の期間分だけ先行して音声信号を符号化するようにすると，映像符号化制御単位における目標符号量の精度を上げることができる。
【００２２】
上記発明において，映像信号を符号化する場合に，音声の余剰符号量に従ってデコーダバッファサイズとデコーダバッファ占有量とを更新し，デコーダバッファが破綻しないかを検証するデコーダバッファ検定を行うようにすることにより，音声の余剰符号量を映像符号化データの伝送に利用することによるデコーダバッファのオーバーフローおよびアンダーフローを効果的に回避することができる。
【発明の効果】
【００２３】
本発明によれば，映像符号化データと音声符号化データとを多重化した符号化ストリームを，所定のビットレートの範囲内で伝送する場合に，音声の余剰符号量を映像符号化データの伝送に利用し，余分なビットレートを加えずに効率的に多重化することができ，また，デコード遅延を小さくすることができる。すなわち，ストリームバッファサイズ（デコーダバッファサイズ）を小さくすることができる。
【発明を実施するための最良の形態】
【００２４】
以下，本発明の実施の形態を図面を用いながら詳細に説明する。
【００２５】
図１は，本発明の実施例に係る装置の構成例を示す図である。符号化ストリーム送信装置１は，映像を符号化する映像符号化部１０と，音声を符号化する音声符号化部２０と，信号を遅延させる遅延バッファ３０，４０と，符号化された音声ストリームと映像ストリームとを多重化して伝送する多重化部５０とからなる。
【００２６】
遅延バッファ３０は，入力した符号化対象の映像・音声重畳信号のうち映像信号を一時的に保持し，その符号化を音声信号の符号化より遅らせるためのバッファである。映像符号化部１０は，映像・音声重畳信号のうち映像信号を遅延バッファ３０から入力し，それを符号化して映像ストリームを生成する。
【００２７】
音声符号化部２０は，映像・音声重畳信号のうち音声信号を入力し，音声信号を符号化する。この音声の符号化では，音声符号化部２０は，遅延バッファ３０による遅延によって，映像信号よりも先に音声信号を符号化し，フレーム毎もしくは逐次，音声発生符号量を映像符号化部１０に伝達し，また，音声ＰＥＳ出力ビットレートの情報を出力する（ＰＥＳ：Packetized Elementary Stream）。
【００２８】
また，音声符号化部２０の出力する音声ストリームは，遅延バッファ４０に格納され，遅延バッファ４０から受信装置におけるデコード直前のタイミングで音声ＰＥＳが多重化部５０へ出力される。なお，音声ＰＥＳは，本装置のエンコーダが自律的に出力する構成でも実現可能である。
【００２９】
映像符号化部１０は，映像符号化制御部１１と，映像フレーム符号化部１２と，出力バッファ１３とを備える。映像符号化制御部１１は，音声符号化部２０から音声符号量の情報を取得し，ＧＯＰ目標符号量およびフレーム目標符号量を算出して映像フレーム符号化部１２における符号化の制御を行う。映像フレーム符号化部１２は，フレーム目標符号量に従って映像信号を符号化し，符号化された映像ストリームを出力バッファ１３に格納する。出力バッファ１３に格納された映像ストリームは，多重化部５０からの出力可能通知に応じて映像ＰＥＳとして出力される。
【００３０】
〔実施例１〕
次に，本発明の第１の実施例（実施例１という）を説明する。映像と音声の符号化は並行して行われる。実施例１では，映像フレームｉと音声フレームｊの表示時刻と表示期間は同じであるとする。
【００３１】
図２は，映像符号化部１０における映像符号化処理のフローチャートである。以下の説明において，余剰符号量Ｒr （ｉ）は，映像フレームｉ−１のデコード開始時刻から映像フレームｉのデコード開始時刻の間に伝送される音声の余剰符号量である。Ｄは，映像フレームエンコード終了からデコード開始までの時間を映像フレーム数で換算した値である。基準映像ビットレートは，音声余剰符号量が常に０の場合のビットレートとする。すなわち，基準映像ビットレートは，音声フレームの発生符号量が常に最大の場合に確保できる映像ビットレートを指す。ｎ番目のＧＯＰ（Group Of Pictures ）を，ＧＯＰ（ｎ）と表す。
【００３２】
まず，映像符号化制御部１１は，音声符号化部２０から音声発生符号量の情報を受け取り，直前ＧＯＰ（ｎ−１）と同一の表示期間の音声フレームの余剰符号量やその時点までの映像符号化結果から追加ＧＯＰ目標符号量Ｇd （ｎ）を決定する（ステップＳ１０１）。
【００３３】
追加ＧＯＰ目標符号量Ｇd （ｎ）は，例えば次のようにして決定する。ＧＯＰ（ｎ−１）の映像フレームと同一表示期間の音声フレームｊ−Ｍ〜ｊ−１について，ＧＯＰ（ｎ）期間の余剰符号量Ｇr ′（ｎ）を，次式によって求める。
【００３４】
Ｇr ′（ｎ）＝Σx=j-M j-1 ｛Ｓamax−Ｓa （ｘ）｝
ここで，Ｓamaxは，各音声フレームの最大発生符号量，Ｓa （ｘ）は，ｘ番目の音声フレームの発生符号量である。
【００３５】
この余剰符号量Ｇr ′（ｎ）の全部または一部を，追加ＧＯＰ目標符号量Ｇd （ｎ）とする。余剰符号量Ｇr ′（ｎ）の一部を，追加ＧＯＰ目標符号量Ｇd （ｎ）とする場合，余剰符号量Ｇr ′（ｎ）を超えない範囲で，追加ＧＯＰ目標符号量Ｇd （ｎ）を過去の数映像フレームの平均量子化パラメータや平均量子化ステップなどに応じて，平均量子化パラメータもしくは平均量子化ステップが大きいほど大きい値となるような関数を用いて定めてもよい。
【００３６】
次に，ＧＯＰ目標符号量Ｇ（ｎ）を，ＧＯＰ内フレーム数Ｎ×基準映像ビットレートＲ／映像フレームレートＰと，追加ＧＯＰ目標符号量Ｇd （ｎ）と，前のＧＯＰからの繰越符号量の和で求める（ステップＳ１０２）。ＧＯＰ目標符号量Ｇ（ｎ）は，次のようになる。
【００３７】
Ｇ（ｎ）＝Ｎ・Ｒ／Ｐ＋Ｇd （ｎ）＋前のＧＯＰからの繰越符号量
ＧＯＰ目標符号量Ｇ（ｎ）が決まったならば，そのＧ（ｎ）を今後のＮフレームに対して配分し，次フレームの目標符号量Ｔ（ｉ）を求める（ステップＳ１０３）。ＧＯＰ（ｎ）の目標符号量から，次フレームの目標符号量Ｔ（ｉ）を算出する方法としては，例えば次の参考文献１に開示されている方法などがあり，周知技術であるため，ここでの詳細な説明は省略する。
［参考文献１］International Organisation for Standardisation, Test Model Editing Committee, 1993, Test Model 5, April, ISO-IEC/JTC1/SC29/WG11/N0400 
次に，目標符号量Ｔ（ｉ）が，デコーダバッファ占有量Ｂ（ｉ）より大きいかどうかを判定する（ステップＳ１０４）。Ｔ（ｉ）＞Ｂ（ｉ）の場合，Ｔ（ｉ）＝Ｂ（ｉ）となるように目標符号量Ｔ（ｉ）をデコーダバッファ占有量Ｂ（ｉ）でクリッピングする（ステップＳ１０５）。
【００３８】
映像符号化制御部１１が，以上の処理によって次フレームの目標符号量Ｔ（ｉ）を決定すると，映像フレーム符号化部１２は，その目標符号量Ｔ（ｉ）に従って，映像フレームｉを符号化する（ステップＳ１０６）。なお，インターレースの場合に，その指定があればフィールド単位で符号化するが，説明を簡単にするため，フィールド単位の符号化の場合も単にフレームの符号化として説明する。
【００３９】
フレームの符号化が終了すると，映像符号化制御部１１は，デコーダバッファ占有量Ｂ（ｉ）から，フレーム発生符号量Ｓ（ｉ）を減算する（ステップＳ１０７）。この結果をＢ* （ｉ）とする。すなわち，Ｂ* （ｉ）＝Ｂ（ｉ）−Ｓ（ｉ）とする。
【００４０】
次に，デコーダバッファサイズＢmax （）を，下記のように余剰符号量Ｒr （）で更新する（ステップＳ１０８）。
【００４１】
Ｂmax （ｉ＋１）＝Ｂmax （ｉ）−Ｒr （ｉ−Ｄ＋１）＋Ｒr （ｉ＋１）
また，デコーダバッファ占有量を，下記のように余剰符号量Ｒr （）で更新する（ステップＳ１０９）。
【００４２】
Ｂ（ｉ＋１）＝Ｂ* （ｉ）＋Ｒ／Ｐ＋Ｒr （ｉ＋１）
次に，デコーダバッファに破綻が生じないかどうかのバッファ検定のため，デコーダバッファ占有量Ｂ（ｉ＋１）が，デコーダバッファサイズＢmax （ｉ＋１）より大きいかどうかを判定する（ステップＳ１１０）。デコーダバッファ占有量Ｂ（ｉ＋１）が，デコーダバッファサイズＢmax （ｉ＋１）より大きい場合，このまま転送したのでは，デコーダバッファのオーバーフローが生じるので，超過分のフィラーデータＦ（ｉ）を挿入し，デコーダバッファ占有量を，デコーダバッファサイズＢmax （ｉ＋１）となるように更新する（ステップＳ１１１）。
【００４３】
Ｆ（ｉ）＝Ｂ（ｉ＋１）−Ｂmax （ｉ＋１）
Ｂ（ｉ＋１）←Ｂ（ｉ＋１）−Ｆ（ｉ）＝Ｂmax （ｉ＋１）
その後，ＧＯＰ（ｎ）内の全フレームについて符号化が終了したかどうかを判定し，終了していなければ，ステップＳ１０３に戻って，全フレームについて符号化が終了するまで同様に処理を繰り返す（ステップＳ１１２）。
【００４４】
ＧＯＰ（ｎ）内の全フレームについて符号化が終了したならば，映像符号化制御部１１は，ＧＯＰ開始時のＧＯＰ目標符号量Ｇ（ｎ）と，ＧＯＰ発生符号量との差から，次のＧＯＰへの繰越符号量を決定する（ステップＳ１１３）。以下，ステップＳ１０１に戻って，次のＧＯＰについて同様に符号化処理を行う。
【００４５】
〔実施例２〕
実施例１では，追加ＧＯＰ目標符号量Ｇd （ｎ）を，直前ＧＯＰ（ｎ−１）と同一の表示期間の音声フレームの余剰符号量やその時点までの映像符号化結果から決定していた。これに対し，実施例２では，これから符号化するＧＯＰ（ｎ）と同一の表示期間の音声フレームの余剰符号量やその時点までの映像符号化結果から決定する。
【００４６】
すなわち，実施例２では，図２に示すステップＳ１０１の処理が，以下のような処理に置き換わる。映像符号化制御部１１は，音声符号化部２０から音声発生符号量の情報を受け取り，これから符号化するＧＯＰ（ｎ）と同一の表示期間の音声フレームの余剰符号量やその時点までの映像符号化結果から追加ＧＯＰ目標符号量Ｇd （ｎ）を，次のように決定する。
【００４７】
ＧＯＰ（ｎ）の映像フレームと同一表示期間の音声フレームｊ〜ｊ＋Ｍ−１についての余剰符号量Ｇr ′（ｎ）を，次式によって求める。
【００４８】
Ｇr ′（ｎ）＝Σx=j j+M-1 ｛Ｓamax−Ｓa （ｘ）｝
ここで，Ｓamaxは，各音声フレームの最大発生符号量，Ｓa （ｘ）は，ｘ番目の音声フレームの発生符号量である。
【００４９】
この余剰符号量Ｇr ′（ｎ）の全部または一部を，追加ＧＯＰ目標符号量Ｇd （ｎ）とする。余剰符号量Ｇr ′（ｎ）の一部を，追加ＧＯＰ目標符号量Ｇd （ｎ）とする場合，余剰符号量Ｇr ′（ｎ）を超えない範囲で，追加ＧＯＰ目標符号量Ｇd （ｎ）を過去の数映像フレームの平均量子化パラメータや平均量子化ステップなどに応じて，平均量子化パラメータもしくは平均量子化ステップが大きいほど大きい値となるような関数を用いて定めてもよい。
【００５０】
実施例２における以降の処理は，実施例１のステップＳ１０２〜Ｓ１１３と同様である。
【００５１】
〔実施例３〕
実施例１，２では，映像フレームｉと音声フレームｊの表示時刻と表示期間は同じとしていたが，この表示時刻と表示期間は必ずしも同じでなくてもよい。例えば音声フレームが映像フレームの２倍の長さで，映像フレームｉ〜ｉ＋１と音声フレームｊとの表示期間が同じであるような場合にも，同様に本発明を実施することができる。
【００５２】
〔多重化処理〕
図１に示す多重化部５０の処理フローを，図３に示す。まず，多重化部５０は，次に出力する音声ＰＥＳの出力ビットレートを音声符号化部２０から取得する。また，最初に出力する音声ＴＳパケット出力時刻を求める（ステップＳ２０１）。この最初の音声ＴＳパケットの出力時刻は，当該音声フレームのデコード時刻の１フレーム期間前の時刻とする。また，次に出力する映像ＰＥＳのデコード時刻を求める（ステップＳ２０２）。
【００５３】
その後，次のＴＳパケット出力時刻まで待つ（ステップＳ２０３）。ＴＳパケット出力時刻間隔は，ＴＳレートより決まる値である。
【００５４】
ＴＳパケット出力時刻になったならば，ＴＳパケット出力時刻にＰＣＲ出力可能状態であるかどうかを判定する（ステップＳ２０４）。ＰＣＲ(Program Clock Reference) は，ＴＳのクロック情報である。ＰＣＲ出力可能状態であれば，ＰＣＲ−ＴＳパケットを出力する。ここで，当該ＴＳパケット送出時刻のＳＴＣを，ＰＣＲとして打刻する。ＰＣＲ−ＴＳパケットを出力したならば，一定時間後までＰＣＲ出力不可能状態にする（ステップＳ２０５）。その後，ステップＳ２１３に進む。
【００５５】
次に，ＴＳパケット出力時刻にＰＳＩ出力可能状態であるかどうかを判定する（ステップＳ２０６）。ＰＳＩは，ＴＳのプログラム構成情報である。ＰＳＩ出力可能状態であれば，ＰＳＩ−ＴＳパケットを出力する。ＰＳＩ−ＴＳパケットを出力したならば，一定時間後までＰＳＩ出力不可能状態にする（ステップＳ２０７）。その後，ステップＳ２１３に進む。
【００５６】
次に，ＴＳパケット出力時刻に音声ＴＳ出力可能状態であるかどうかを判定する（ステップＳ２０８）。音声ＴＳ出力可能状態であれば，音声ＴＳパケットを１つ出力する。音声ＰＥＳ出力ビットレートから，次に音声ＴＳパケットを出力する時刻を決め，それまで音声ＴＳ出力不可能状態にする（ステップＳ２０９）。その後，ステップＳ２１３に進む。
【００５７】
次に，ＴＳパケット出力時刻に映像ＰＥＳエンコード終了済みかどうかを判定する（ステップＳ２１０）。映像ＰＥＳエンコード終了済みであれば，映像ＴＳパケットを１つ出力し（ステップＳ２１１），ステップＳ２１３に進む。
【００５８】
ステップＳ２０４，Ｓ２０６，Ｓ２０８，Ｓ２１０の判定条件を満たさない場合，ヌルＴＳパケットを１つ出力する（ステップＳ２１２）。
【００５９】
次に，当該音声ＰＥＳのＴＳパケット出力が終了したかどうかを判定し（ステップＳ２１３），その出力が終了した場合には，次に出力する音声ＰＥＳの出力ビットレートを取得し，音声ＰＥＳ出力ビットレートから，次に音声ＴＳパケット出力可能状態にする時刻を求める（ステップＳ２１４）。
【００６０】
続いて，当該映像ＰＥＳのＴＳパケット出力が終了したかどうかを判定し（ステップＳ２１５），その出力が終了した場合には，次に出力する映像ＰＥＳデコード時刻を求める（ステップＳ２１６）。その後，ステップＳ２０３に戻り，同様に処理を繰り返す。
【００６１】
以下，本実施例におけるエンコードとストリーム伝送とデコードのタイミングの例を，図面に従って説明する。
【００６２】
図４は，実施例１として説明したように，映像フレームｉと音声フレームｊの長さが同じ場合の伝送タイミングの例を示す図である。実施例１では，直前ＧＯＰ（ｎ−１）と同一の表示期間の音声フレームの余剰符号量やその時点までの映像符号化結果から追加ＧＯＰ目標符号量Ｇd （ｎ）を決定する例を説明したが，ここでは説明を簡単にするために，同時刻の音声フレームｊを先に符号化し，その発生符号量の情報を得て，映像フレームｉを符号化するものとして表している。ここで同時刻とは，音声と映像のデコード時刻が同じ時刻であることを意味している。
【００６３】
図４において，横軸が時間軸ｔであり，時刻は左から右方向へ進むものとする。映像符号化データが伝送されるタイミングは，その時点のデコーダバッファ占有量に応じて異なる。音声フレームｊの音声符号化データは，図４に示すように，デコード直前のタイミングで伝送する。すなわち，音声フレームｊは，映像フレームｉ−１デコード開始時刻からフレームｉデコード開始時刻までの１フレーム分の時間で伝送する。これにより，音声フレームｊと映像フレームｉを同時刻にデコードし，デコード遅延を小さくすることができる。
【００６４】
図５は，実施例２と同様に，音声を１ＧＯＰ分先行して符号化する場合の伝送タイミングの例を示している。この図５に示す例では，音声フレームを１ＧＯＰ分（例えば１５フレーム等）先に符号化し，その発生符号量の情報を得てから，映像符号化制御部１１が，基準映像ビットレートに対して追加する追加ＧＯＰ目標符号量Ｇd （ｎ）を決定し，それをもとに算出したＧＯＰ目標符号量Ｇ（ｎ）を各フレームに配分する。
【００６５】
ＧＯＰ符号化開始時に１ＧＯＰ分の余剰符号量が判明しているため，ＧＯＰ目標符号量の妥当性が高まり，ＧＯＰ内のレート制御が安定する。ただし，音声エンコード開始から映像エンコード終了までの時間が図４の例よりも延び，その分だけ遅延時間が大きくなる。
【００６６】
この場合にも，音声符号化データは，デコード直前のタイミングで，１フレーム分の時間で伝送する。
【００６７】
図６は，実施例３と同様に，音声フレームｊの期間が映像フレームｉの期間より長い場合の伝送タイミングの例を示している。図６の例では，音声フレームが映像フレームの２倍の長さで，映像フレームｉ〜ｉ＋１と音声フレームｊとの表示期間が同じである。音声フレームｊの音声符号化データは，デコード直前のタイミングで伝送する。音声フレームが大きいほど，音声エンコード開始から映像エンコード終了までの遅延時間が延びることになる。したがって，音声フレームは，符号化効率が極端に低下しない範囲でできるだけ小さいほうが好ましい。
【００６８】
図７は，本発明の実施例と異なり，音声符号化データの伝送タイミングを早くした場合に遅延が増加することを説明する図である。
【００６９】
図７に示すように，音声フレームｊの音声符号化データをデコード直前ではなく，それよりも早めのタイミングで伝送したとする。こうすると，映像フレームｉの符号化より前に音声フレームｊ＋１を先に符号化する必要が生じることから，音声フレームｊのエンコード開始から映像フレームｉのエンコード終了までの遅延時間が延びることになる。本発明の実施例で説明したように，音声フレームｊの音声符号化データをデコード直前のタイミングで伝送するようにすれば，図７の場合よりも遅延時間の延びを少なくすることができる。
【００７０】
図８は，本発明の実施例と異なり，同時刻にデコードされる音声フレームｊを映像フレームｉよりも先に符号化しない場合に遅延が増加することを説明する図である。
【００７１】
図８に示すように，音声フレームｊを映像フレームｉよりも先に符号化しないで同時に符号化した場合，映像フレームｉの符号化では，音声発生符号量がわからないため符号量の制限条件が不明であり，デコーダバッファの破綻が生じないようにするためには，デコード時刻を大きく遅らせる必要が生じる。もしくは，映像フレームｉの符号量の制限条件を音声フレームｊの発生符号量が最大であるものと仮定して決める必要があるため，画質低下につながることになる。本発明の実施例で説明したように，音声フレームｊの音声符号化データを映像フレームｉの符号化より先に符号化し，その音声発生符号量を考慮して映像フレームｉの目標符号量を決めることにより，図８の場合の問題は解決されることになる。
【００７２】
図９は，本発明の実施例で行うデコーダバッファ検定を説明するための図である。
【００７３】
デコーダバッファにオーバーフローやアンダーフローによる破綻が生じないようにするためには，例えばＭＰＥＧ−２における可変ビットレート時のＶＢＶ（Video Buffer Verifier ）の要求する条件やＨ．２６４におけるＨＲＤ（Hypothetical Reference Decoder）の規格に準拠している必要がある。これをデコーダバッファ検定という。
【００７４】
従来技術では，この仮想的なデコーダバッファサイズは固定した値であったが，本発明の場合には，音声発生符号量に応じてその余剰符号量に相当するビットレートを，映像フレームの伝送に利用するため，実質的にデコーダバッファサイズが変化することになる。したがって，このデコーダバッファサイズの変化を考慮したデコーダバッファ検定を行う。
【００７５】
図９に示す例では，説明の簡素化のため映像フレームｉと音声フレームｊの表示時刻と表示期間は同じとする。Ｂmax （ｉ）は，デコーダバッファサイズであり，映像フレームｉのエンコード終了時刻から映像フレームｉのデコード開始時刻までの間に伝送可能な映像符号量に相当する。デコーダバッファ占有量Ｂ（ｉ）は，映像フレームｉ−１の伝送終了時刻から映像フレームｉのデコード開始時刻までの間に伝送可能な映像符号量に相当する。デコーダバッファサイズＢmax （ｉ）は，いわば最大デコーダバッファ占有量と考えることができる。
【００７６】
図９（Ａ）〜（Ｃ）において，底辺から点線までの高さが基準映像ビットレートである。音声ストリームが固定ビットレート（ＣＢＲ）の従来方法の場合には，映像符号量を基準映像ビットレート内に収める必要がある。本発明では，音声発生符号量の余剰符号量を映像ストリームの伝送に利用するので，音声フレームｊ−５〜ｊ＋１ごとに各図に凹凸で示されるように，音声発生符号量の変動に応じて実際の映像ビットレートが変化する。
【００７７】
図９（Ａ）に示すデコーダバッファの状態で，図２に示すステップＳ１０６による映像フレームｉの符号化が終了したとする。このとき，続くステップＳ１０７でデコーダバッファ占有量Ｂ（ｉ）からフレームｉの発生符号量Ｓ（ｉ）を減算する。これは，図９（Ｂ）に示すＢ* （ｉ）の算出を意味する。
【００７８】
Ｂ* （ｉ）＝Ｂ（ｉ）−Ｓ（ｉ）
続く，図２のステップＳ１０８では，デコーダバッファサイズを更新する。すなわち，図９（Ｃ）に示すＢmax （ｉ＋１）を次式により算出する。
【００７９】
Ｂmax （ｉ＋１）＝Ｂmax （ｉ）−Ｒr （ｉ−Ｄ＋１）＋Ｒr （ｉ＋１）
ここで，Ｒr （ｉ＋１）は，映像フレームｉのデコード開始時刻から映像フレームｉ＋１のデコード開始時刻の間に伝送される音声の余剰符号量である。Ｒr （ｉ−Ｄ＋１）におけるＤは，映像フレームのエンコード終了からデコード開始までの時間を映像フレーム数に換算した値であり，図９の例では，Ｄ＝６となっている。
【００８０】
図２のステップＳ１０９では，デコーダバッファ占有量を更新する。すなわち，図９（Ｃ）に示すＢ（ｉ＋１）を次式により算出する。次式のＲは基準映像ビットレート，Ｐは映像フレームレートである。
【００８１】
Ｂ（ｉ＋１）＝Ｂ* （ｉ）＋Ｒ／Ｐ＋Ｒr （ｉ＋１）
以上のようにして算出したデコーダバッファ占有量Ｂ（ｉ＋１）が，デコーダバッファサイズＢmax （ｉ＋１）よりも大きくなった場合，デコーダバッファにオーバーフローが生じることになる。したがって，Ｂ（ｉ＋１）＞Ｂmax （ｉ＋１）の場合には，映像フレームｉ＋１の伝送を遅らせるために，超過分のフィラーデータＦ（ｉ）＝Ｂ（ｉ＋１）−Ｂmax （ｉ＋１）を挿入し，デコーダバッファ占有量Ｂ（ｉ＋１）をデコーダバッファサイズＢmax （ｉ＋１）の大きさに収める。
【００８２】
デコーダバッファサイズＢmax （）と，デコーダバッファ占有量Ｂ（）と，映像フレームのフレーム番号ｉとの関係は，図９（Ｄ）に示すようになる。
【００８３】
Ｂmax （ｉ＋１）は，Ｂmax （ｉ）に余剰符号量Ｒr （ｉ＋１）−Ｒr （ｉ−Ｄ＋１）を加算した値になる。従来のビットレート制御におけるデコーダバッファサイズは，この余剰符号量の項を０とした場合に相当する。デコーダバッファ占有量Ｂ（ｉ）から映像フレームｉの発生符号量Ｓ（ｉ）を減算したものがＢ* （ｉ）であり，デコーダバッファ占有量Ｂ（ｉ＋１）は，Ｂ* （ｉ）に，Ｒ／Ｐ＋Ｒr （ｉ＋１）を加算したものになる。なお，従来のデコーダバッファ検定の場合には，デコーダバッファ占有量Ｂ（ｉ＋１）は，Ｂ（ｉ＋１）＝Ｂ（ｉ）＋Ｒ／Ｐであり，余剰符号量Ｒr （ｉ＋１）は加算されない。
【００８４】
以上の符号化およびストリーム伝送の処理は，コンピュータとソフトウェアプログラムとによって実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施例に係る装置の構成例を示す図である。
【図２】本発明の実施例の映像符号化処理のフローチャートである。
【図３】本発明の実施例における多重化部の処理フローチャートである。
【図４】映像フレームｉと音声フレームｊの長さが同じ場合の伝送タイミングの例を示す図である。
【図５】音声を１ＧＯＰ分先行して符号化する場合の伝送タイミングの例を示す図である。
【図６】音声フレームｊの期間が映像フレームｉの期間より長い場合の伝送タイミングの例を示す図である。
【図７】音声符号化データの伝送タイミングを早くした場合に遅延が増加することを説明する図である。
【図８】同時刻にデコードされる音声フレームｊを映像フレームｉよりも先に符号化しない場合に遅延が増加することを説明する図である。
【図９】本発明の実施例で行うデコーダバッファ検定を説明するための図である。
【符号の説明】
【００８６】
１  符号化ストリーム送信装置
１０  映像符号化部
１１  映像符号化制御部
１２  映像フレーム符号化部
１３  出力バッファ
２０  音声符号化部
３０，４０  遅延バッファ
５０  多重化部
【図１】
2010136041.tif 000003
【図２】
2010136041.tif 000004
【図３】
2010136041.tif 000005
【図４】
2010136041.tif 000006
【図５】
2010136041.tif 000007
【図６】
2010136041.tif 000008
【図７】
2010136041.tif 000009
【図８】
2010136041.tif 000010
【図９】
2010136041.tif 000011