(57)【要約】【課題】そこで、本発明は前記問題点に鑑み、量子化ステップ値の急激な変動を抑え、安定したレート制御を可能とする技術を提供することを目的とする。【解決手段】ビットレート比から量子化ステップ変換係数を算出する関数ｆ１は、関数ｆ０と基準点（Ｒ０，ｆ０（Ｒ０））で交わる傾き−１の直線である。関数ｆ０は、単調減少の指数関数である。基準ビットレート比Ｒ０は、第１ストリームの全体ビットレートＳ、第２のストリームの全体目標ビットレートＴを用いてＲ０＝Ｔ／Ｓで表される。関数ｆ０は、符号変換においてビットレート比と量子化ステップ変換係数の関係を適切に表現するが、ビットレート比が０．５程度の領域で変動率が大きい。関数ｆ１は変動率が小さく、量子化ステップ変換値の急激な変動を抑制することができる。【選択図】図３
2010041358.tif 000002
【特許請求の範囲】
【請求項１】
第１のストリームを第２のストリームに変換するトランスコーダであって、
第１のストリームと第２のストリームのビットレート比から第１のストリームと第２のストリームの量子化ステップ変換値を算出する変換値算出部と、
第１のストリームの量子化ステップ値に前記量子化ステップ変換値を乗算することで第２のストリームの量子化ステップ値を算出する量子化ステップ値算出部と、
を備え、
前記変換値算出部は、前記ビットレート比と前記量子化ステップ変換値との関係が属する領域を指定する領域指定関数と、前記領域内において前記ビットレート比と前記量子化ステップ変換値との具体的な関係を決定する関係決定関数とを用いて、前記ビットレート比から前記量子化ステップ変換値を算出することを特徴とするトランスコーダ。
【請求項２】
請求項１に記載のトランスコーダにおいて、
第１のストリームの全体ビットレートと第２のストリームの全体目標ビットレートとの比を基準ビットレート比とすると、前記領域指定関数と前記関係決定関数とは、前記基準ビットレート比に対して同じ前記量子化ステップ変換値が対応付けられていることを特徴とするトランスコーダ。
【請求項３】
請求項２に記載のトランスコーダにおいて、
変換済みの過去の期間の第１のストリームのビットレートと第２のストリームの目標ビットレートとの比を現在ビットレート比とすると、前記領域指定関数を用いて前記現在ビットレート比に対して算出した前記量子化ステップ変換値と、前記関係決定関数を用いて前記現在ビットレート比に対して算出した前記量子化ステップ変換値との差が所定の閾値を越えた場合、前記現在ビットレート比により前記基準ビットレート比を更新することを特徴とするトランスコーダ。
【請求項４】
請求項２または請求項３に記載のトランスコーダにおいて、
前記基準ビットレート比の近傍においては、前記関係決定関数の変化率は、前記領域指定関数の変化率よりも小さいことを特徴とするトランスコーダ。
【請求項５】
請求項４に記載のトランスコーダにおいて、
前記領域指定関数は、
単調減少の指数関数、
を含むことを特徴とするトランスコーダ。
【請求項６】
請求項４または請求項５に記載のトランスコーダにおいて、
前記関係決定関数は、
前記基準ビットレート比において前記領域指定関数と交わる負の傾きを有する直線であることを特徴とするトランスコーダ。
【請求項７】
請求項４または請求項５に記載のトランスコーダにおいて、
前記関係決定関数は、
前記基準ビットレート比において前記領域指定関数と交わり、前記基準ビットレート比において負の傾きを有する接線を持つ双曲線であることを特徴とするトランスコーダ。
【請求項８】
請求項４または請求項５に記載のトランスコーダにおいて、
前記関係決定関数は、
前記基準ビットレート比において前記領域指定関数と接する直線であることを特徴とするトランスコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力ストリームをデコードして異なる出力ストリームに変換するトランスコーダに関し、詳しくは、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御する技術に関する。
【背景技術】
【０００２】
デジタル放送で配信される画像や、ＤＶＤ、ハードディスクなどに格納される画像などは、各種の符号化方式に従って圧縮される。これは、伝送帯域を圧迫しないため、伝送速度を上げるため、あるいは、記憶サイズを小さくするなどの目的のためである。
【０００３】
画像の符号化方式には、ＭＰＥＧ２やＨ．２６４など様々な規格が存在する。そして、入力した符号化画像の符号量を削減するなどの目的で符号化方式の変換が行われる場合がある。トランスコーダは、入力した符号化画像を一旦デコードする。そして、トランスコーダは、デコードした画像を、再び異なる符号化方式（あるいは同じ符号化方式）で符号化する。このようにして、トランスコーダは、出力ストリームのビットレートを制御するのである。
【０００４】
下記特許文献１では、トランスコーダにおいて出力ストリームの量子化ステップ値を算出すための技術が開示されている。特許文献１では、デコードされた画像のマクロブロック内の画素のばらつき度合いや、動き評価値を加味して量子化ステップ値を調整するようにしている。
【０００５】
【特許文献１】特開２００８−４２４２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ビットレートを一定に保つため、あるいはビットレートを削減することを目的として出力ストリームの量子化ステップ値を制御する場合、入力ストリームの状況、演算条件によっては量子化ステップの変動が大きくなるケースが発生する。量子化ステップの変動が大きくなると、レート制御が不安定になり、画質の劣化を招くことになる。
【０００７】
そこで、本発明は前記問題点に鑑み、量子化ステップ値の急激な変動を抑え、安定したレート制御を可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、請求項１記載の発明は、第１のストリームを第２のストリームに変換するトランスコーダであって、第１のストリームと第２のストリームのビットレート比から第１のストリームと第２のストリームの量子化ステップ変換値を算出する変換値算出部と、第１のストリームの量子化ステップ値に前記量子化ステップ変換値を乗算することで第２のストリームの量子化ステップ値を算出する量子化ステップ値算出部と、
を備え、前記変換値算出部は、前記ビットレート比と前記量子化ステップ変換値との関係が属する領域を指定する領域指定関数と、前記領域内において前記ビットレート比と前記量子化ステップ変換値との具体的な関係を決定する関係決定関数とを用いて、前記ビットレート比から前記量子化ステップ変換値を算出することを特徴とする。
【０００９】
請求項２記載の発明は、請求項１に記載のトランスコーダにおいて、第１のストリームの全体ビットレートと第２のストリームの全体目標ビットレートとの比を基準ビットレート比とすると、前記領域指定関数と前記関係決定関数とは、前記基準ビットレート比に対して同じ前記量子化ステップ変換値が対応付けられていることを特徴とする。
【００１０】
請求項３記載の発明は、請求項２に記載のトランスコーダにおいて、変換済みの過去の期間の第１のストリームのビットレートと第２のストリームの目標ビットレートとの比を現在ビットレート比とすると、前記領域指定関数を用いて前記現在ビットレート比に対して算出した前記量子化ステップ変換値と、前記関係決定関数を用いて前記現在ビットレート比に対して算出した前記量子化ステップ変換値との差が所定の閾値を越えた場合、前記現在ビットレート比により前記基準ビットレート比を更新することを特徴とする。
【００１１】
請求項４記載の発明は、請求項２または請求項３に記載のトランスコーダにおいて、前記基準ビットレート比の近傍においては、前記関係決定関数の変化率は、前記領域指定関数の変化率よりも小さいことを特徴とする。
【００１２】
請求項５記載の発明は、請求項４に記載のトランスコーダにおいて、前記領域指定関数は、単調減少の指数関数、を含むことを特徴とする。
【００１３】
請求項６記載の発明は、請求項４または請求項５に記載のトランスコーダにおいて、前記関係決定関数は、前記基準ビットレート比において前記領域指定関数と交わる負の傾きを有する直線であることを特徴とする。
【００１４】
請求項７記載の発明は、請求項４または請求項５に記載のトランスコーダにおいて、前記関係決定関数は、前記基準ビットレート比において前記領域指定関数と交わり、前記基準ビットレート比において負の傾きを有する接線を持つ双曲線であることを特徴とする。
【００１５】
請求項８記載の発明は、請求項４または請求項５に記載のトランスコーダにおいて、前記関係決定関数は、前記基準ビットレート比において前記領域指定関数と接する直線であることを特徴とする。
【発明の効果】
【００１６】
本発明のトランスコーダは、ビットレート比と量子化ステップ変換値との関係が属する領域を指定する領域指定関数と、領域内においてビットレート比と量子化ステップ変換値との具体的な関係を決定する関係決定関数とを用いて、ビットレート比から量子化ステップ変換値を算出する。領域指定関数により、符号変換に最適な特性を維持しつつ、関係決定関数により、量子化ステップ変換値の変動を調整することができる。
【００１７】
また、領域指定関数および関係決定関数を用いて現在ビットレート比に対して算出した量子化ステップ変換値の差が所定の閾値を越えた場合、現在ビットレート比により基準ビットレート比を更新する。これにより、関係決定関数の特性が、領域指定関数の特性から大きく乖離することを回避できる。
【００１８】
そして、基準ビットレート比の近傍においては、関係決定関数の変化率は、領域指定関数の変化率よりも小さいので、領域指定関数の特性により符号変換に適した関係を維持しつつ、関係決定関数により量子化ステップ変換値の急激な変動を抑制することができる。
【発明を実施するための最良の形態】
【００１９】
｛第１の実施の形態｝
＜１．トランスコーダの構成＞
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、本実施の形態に係るトランスコーダ１のブロック図である。このトランスコーダ１は、ＣＰＵ１１、デコーダ１２、画像メモリ１３、ステップ値算出部１４、エンコーダ１５、バッファメモリ１６を備えている。
【００２０】
デコーダ１２は、第１ストリームを入力する。第１ストリームは、符号化画像のストリームである。デコーダ１２は、第１ストリームをデコードし、非圧縮の画像データを画像メモリ１３に出力する。エンコーダ１５は、画像メモリ１３に格納されたデコード後の非圧縮の画像データを再び符号化し、第２ストリームを出力する。
【００２１】
たとえば、トランスコーダ１は、ＭＰＥＧ２で符号化された第１ストリームを入力し、Ｈ．２６４で符号化された第２ストリームを出力するなど、ストリームの符号化方式を変換する処理を行う。あるいは、トランスコーダ１は、ＭＰＥＧ２で符号化された第１ストリームを入力し、再びＭＰＥＧ２で符号化された第２ストリームを出力するなど、同じ符号化方式のストリームを出力する。
【００２２】
なお、デコーダ１２、ステップ値算出部１４、エンコーダ１５における各演算処理は、ハードウェアにより実現されてもよいし、ソフトウェア処理により実現されていてもよい。つまり、これら演算処理部は、ハードウェア回路として構成されていてもよいし、ＣＰＵとメモリに格納されたプログラムとで構成されていてもよい。あるいは、一部の処理がハードウェアで処理され、一部の処理がソフトウェアで処理される形態であってもよい。
【００２３】
＜２．制御単位期間と期間内の情報＞
図２は、トランスコーダ１が入出力するストリームの制御単位期間ごとの情報を表した図である。トランスコーダ１は、処理時間軸を制御単位期間Ｌｎ（ｎ＝１，２・・・）に区分し、この制御単位期間Ｌｎを処理単位としてレート制御を行う。以下の説明において、適宜、制御単位期間Ｌｎを第ｎ期間と呼ぶことにする。制御単位期間Ｌｎとしては、１フレーム、連続する複数フレーム、１ＧＯＰ、連続する複数ＧＯＰなどを１単位期間として設定することが可能である。
【００２４】
第１ストリームの入力全体ビットレートＳは、シーケンスヘッダなどから取得される。入力平均ビットレートＳｎは、第ｎ期間における第１ストリームの平均ビットレートである。トランスコーダ１は、Ｍ期間分の入力平均ビットレートＳｎに関する情報をバッファメモリ１６に格納可能としている。つまり、バッファメモリ１６は、第（ｎ−Ｍ＋１）期間から第ｎ期間までの入力平均ビットレートＳｎに関する情報を格納可能としている。期間平均ビットレートＡＳｎは、第（ｎ−Ｍ＋１）期間から第ｎ期間における入力平均ビットレートＳｎを平均した値である。期間平均ビットレートＡＳｎは、数（１）式で表される。
【００２５】
【数１】
2010041358.tif 000003
【００２６】
第２ストリームの全体目標ビットレートＴは、ユーザにより設定される。たとえば、ユーザが、トランスコーダ１に設けられた図示せぬ操作部を用いて全体目標ビットレートＴを設定する。
【００２７】
目標設定ビットレートＴｎは、第ｎ期間における第２ストリームの目標ビットレートである。出力平均ビットレートＣｎは、第ｎ期間における変換済みの第２ストリームの平均ビットレートである。トランスコーダ１は、Ｍ期間分の出力平均ビットレートＣｎに関する情報をバッファメモリ１６に格納可能としている。つまり、バッファメモリ１６は、第（ｎ−Ｍ＋１）期間から第ｎ期間までの出力平均ビットレートＣｎに関する情報を格納可能としている。期間平均ビットレートＡＣｎは、第（ｎ−Ｍ＋１）から第ｎ期間における出力平均ビットレートＣｎを平均した値である。期間平均ビットレートＡＣｎは、数（２）式で表される。
【００２８】
【数２】
2010041358.tif 000004
【００２９】
なお、この実施の形態では、期間平均ビットレートＡＳｎ、ＡＣｎを計算する場合に利用するバッファ期間を、制御単位期間Ｌｎと連動させたが、バッファ期間の設定方法は、これに限るものではない。たとえば、符号化が終わった時点の過去１フレーム、連続する過去複数フレーム、過去１ＧＯＰ、連続する過去複数ＧＯＰなどをバッファ期間として設定することが可能である。
【００３０】
量子化ステップ変換係数αｎは、第（ｎ−１）期間の終了時に算出される係数である。第１ストリームの量子化ステップ値そのもの、あるいは第１ストリームの量子化ステップ値から計算される値Ｐに、量子化ステップ変換係数αｎを乗算することで、第２ストリームの量子化ステップ値Ｑが決定される。この関係を数（３）式に示す。
【００３１】
【数３】
2010041358.tif 000005
【００３２】
再び、図１を参照する。ＣＰＵ１１は、デコーダ１２から第１ストリームのピクチャごとのビットレートｓ＿ｂを取得し、バッファメモリ１６に格納する。ＣＰＵ１１は、バッファメモリ１６に格納されたビットレートｓ＿ｂに基づき、第ｎ期間の入力平均ビットレートＳｎや期間平均ビットレートＡＳｎを算出する。
【００３３】
デコーダ１２は、第１ストリームのマクロブロックごとの量子化ステップ値Ｐをステップ値算出部１４に出力する。
【００３４】
ＣＰＵ１１は、エンコーダ１５から変換済みの第２ストリームのピクチャごとのビットレートｃ＿ｂを取得し、バッファメモリ１６に格納する。ＣＰＵ１１は、バッファメモリ１６に格納されたビットレートｃ＿ｂに基づき、第ｎ期間の出力平均ビットレートＣｎや期間平均ビットレートＡＣｎを算出する。
【００３５】
ＣＰＵ１１は、また、ユーザにより設定された全体目標ビットレートＴを取得する。
【００３６】
ＣＰＵ１１は、全体目標ビットレートＴ、出力平均ビットレートＣｎ、期間平均ビットレートＡＣｎ、入力平均ビットレートＳｎ、期間平均ビットレートＡＳｎなどの情報を利用し、第（ｎ＋１）期間の第２ストリームの目標設定ビットレートＴｎ＋１を決定する。目標設定ビットレートＴｎ＋１の算出方法は、次の項＜３．目標ビットレートの算出例＞において説明する。
【００３７】
ＣＰＵ１１は、さらに、第（ｎ＋１）期間の第２ストリームの目標設定ビットレートＴｎ＋１から本発明の特徴的な処理である関数ｆを利用することで、量子化ステップ変換係数αｎ＋１を算出し、ステップ値算出部１４に出力する。関数ｆについては、後の＜４．変換係数の算出＞において説明する。
【００３８】
ステップ値算出部１４は、量子化ステップ値Ｐと量子化ステップ変換係数αｎ＋１を入力し、数（３）式に示す演算を実行することで、第２ストリームの量子化ステップ値Ｑを算出する。ステップ値算出部１４は、算出した量子化ステップ値Ｑをエンコーダ１５に与える。
【００３９】
エンコーダ１５は、ステップ値算出部１４から入力した量子化ステップ値Ｑに基づいて非圧縮の画像データを符号化し、第２ストリームを生成する。
【００４０】
＜３．目標ビットレートの算出例＞
次に、第（ｎ＋１）期間における第２ストリームの目標設定ビットレートＴｎ＋１の算出例について説明する。トランスコーダ１は、第ｎ期間経過時において、第（ｎ＋１）期間における第２ストリームの目標設定ビットレートＴｎ＋１を決定する。
【００４１】
数（４）式は、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を算出する式である。具体的には、第ｎ期間の変換済みの第２ストリームの出力平均ビットレートＣｎを第ｎ期間の目標設定ビットレートＴｎで除算した値を目標比と考えると、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１は、第２ストリームの全体目標ビットレートＴを目標比で除算することで算出される。
【００４２】
【数４】
2010041358.tif 000006
【００４３】
数（４）式中、ｋは正の係数であり、目標設定ビットレートＴｎ＋１を調整するための係数である。このように、Ｃｎ／Ｔｎにより第ｎ期間における目標との比を算出し、全体目標ビットレートＴを目標比で除算することで第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を調整し、全体として目標ビットレートに近づくよう制御するのである。
【００４４】
数（４）式では、第ｎ期間の第２ストリームの出力平均ビットレートＣｎを目標設定ビットレートＴｎで除算した値を目標比として利用しているが、この目標比をさらに調整するようにしたのが、数（５）式である。
【００４５】
【数５】
2010041358.tif 000007
【００４６】
数（５）式において、目標比にＳｎ−１／Ｓｎが乗算されている。Ｓｎ−１／Ｓｎは、第（ｎ−１）期間の第１ストリームの入力平均ビットレートＳｎ−１を、第ｎ期間の第１ストリームの入力平均ビットレートＳｎで除算した値であり、入力平均ビットレートの期間比と呼ぶことができる。つまり、目標比に期間比を乗算することで、目標比を調整しているのである。
【００４７】
このように目標比に期間比を乗算することで、局所的な目標比の変化を補正することができる。たとえば、入力平均ビットレートＳｎが局所的に小さく変化した場合には、それに伴い、目標比Ｃｎ／Ｔｎも小さく変動する場合がある。このような場合にも、期間比Ｓｎ−１／Ｓｎ（この場合、期間比が１より大きな値となる。）を乗算することで、目標比を調整し、目標設定ビットレートＴｎ＋１が大きく変動することを回避できるのである。逆に、入力平均ビットレートＳｎが局所的に大きく変化した場合には、期間比Ｓｎ−１／Ｓｎが１より小さい値となり、目標比が急激に大きくなることを抑制することができる。
【００４８】
数（５）式では、第（ｎ−１）期間の第１ストリームの入力平均ビットレートＳｎ−１を、第ｎ期間の第１ストリームの入力平均ビットレートＳｎで除算した値を期間比とした。これに対して、第１ストリームの第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１を先読みできる場合には、入力平均ビットレートＳｎ＋１を利用してもよい。入力平均ビットレートＳｎ＋１を先読みできる場合とは、入力平均ビットレートＳｎ＋１に関する情報をバッファリングした上で、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を算出できる時間的余裕がある場合である。つまり、ある程度の処理遅延が許されるような場合である。数（６）式に、入力平均ビットレートＳｎ＋１を用いて目標設定ビットレートＴｎ＋１を算出する式を示す。
【００４９】
【数６】
2010041358.tif 000008
【００５０】
数（６）式に示すように、期間比として、Ｓｎ／Ｓｎ＋１、つまり、第ｎ期間の第１ストリームの入力平均ビットレートＳｎを、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１で除算した値を用いている。このように、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１を利用することで、目標設定ビットレートＴｎ＋１をより高い精度で制御することが可能となる。つまり、より最新の入力情報を用いることで、目標ビットレートに対する最適制御を行うことができるのである。
【００５１】
また、数（５）式では、期間比としてＳｎ−１／Ｓｎを利用した。これに代えて、第（ｎ−１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ−１と、第ｎ期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎの比を期間比として用いてもよい。つまり、数（５）式において、期間比として、Ｓｎ−１／Ｓｎに代えて、ＡＳｎ−１／ＡＳｎを用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートＴｎ＋１を最適制御することが可能である。
【００５２】
あるいは、第１ストリームの第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１を先読みできる場合には、第ｎ期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎと、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１の比を期間比として用いてもよい。つまり、数（５）式において、期間比として、Ｓｎ−１／Ｓｎに代えて、ＡＳｎ／ＡＳｎ＋１を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートＴｎ＋１を制御することが可能である。
【００５３】
また、第ｎ期間の出力平均ビットレートＣｎに代えて、第（ｎ−Ｍ＋１）期間から第ｎ期間までの期間平均ビットレートＡＣｎを用いても良い。つまり、数（４）式〜数（６）式等、上述した算出例において、Ｃｎに代えてＡＣｎを用いるのである。これにより、目標設定ビットレートＴｎ＋１を、より緩やかに制御することが可能である。
【００５４】
第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を算出する別の算出例を数（７）式に示す。第ｎ期間の目標設定ビットレートＴｎから第ｎ期間の変換済みの第２ストリームの出力平均ビットレートＣｎを減算した値を目標差と考えると、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１は、第２ストリームの全体目標ビットレートＴに目標差を加算することで算出されるのである。
【００５５】
【数７】
2010041358.tif 000009
【００５６】
数（７）式中、ｋは正の係数であり、目標設定ビットレートＴｎ＋１を調整するための係数である。このように、（Ｔｎ−Ｃｎ）により、第ｎ期間における目標との差を算出し、全体目標ビットレートＴに目標差を加算することで、出力ストリームが目標ビットレートに近づくような制御を行うのである。
【００５７】
また、目標差（Ｔｎ−Ｃｎ）に、期間比Ｓｎ−１／Ｓｎや、期間比ＡＳｎ−１／ＡＳｎを乗算するようにしてもよい。あるいは、入力平均ビットレートＳｎ＋１を先読みできる場合には、目標差（Ｔｎ−Ｃｎ）に、期間比Ｓｎ／Ｓｎ＋１、や期間比ＡＳｎ／ＡＳｎ＋１を乗算するようにしてもよい。また、Ｃｎに代えてＡＣｎを用いても良い。
【００５８】
＜４．変換係数の算出＞
第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１が算出されると、数（８）式に示す演算を行うことにより、量子化ステップ変換係数αｎ＋１を算出する。つまり、現在ビットレート比＝Ｔｎ＋１／Ｓｎ（＝ＲＢ）を関数ｆに代入することで、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出する。
【００５９】
【数８】
2010041358.tif 000010
【００６０】
数（８）式中、関数ｆは、“ビットレートの比”から“量子化ステップ値の比”（量子化ステップ変換係数）を求める関数である。“ビットレートの比”とは、第１ストリームのビットレートに対する第２ストリームのビットレートの比である。第１ストリームのビットレートとしては、Ｓ、Ｓｎなどを用いる。第２ストリームのビットレートとしてはＴ、Ｔｎなどを用いる。“量子化ステップ値の比”とは、第１ストリームの量子化ステップ値に対する第２ストリームの量子化ステップ値の比である。“ビットレートの比”をＲＢ、“量子化ステップ値の比”をＲＱとすると、関数ｆは、一般的に、数（９）式で表される。
【００６１】
【数９】
2010041358.tif 000011
【００６２】
量子化ステップ変換係数αｎの初期値α１は、数（１０）式で与えられる。つまり、第２ストリームの全体目標ビットレートＴを第１ストリームの入力全体ビットレートＳで除算した値、つまりビットレートの比を関数ｆに入力することによって、量子化ステップ変換係数の初期値α１を求めている。
【００６３】
【数１０】
2010041358.tif 000012
【００６４】
第２ストリームの全体目標ビットレートＴを第１ストリームの入力全体ビットレートＳで除算した値を、数（１１）式に示すように、基準ビットレート比Ｒ０と呼ぶことにする。
【００６５】
【数１１】
2010041358.tif 000013
【００６６】
関数ｆについて詳しく説明する。上述したように、関数ｆは、“ビットレートの比”から量子化ステップ変換係数αｎを算出する関数である。数（１２）式は、第１の実施の形態に係る関数ｆとして関数ｆ１を示す。
【００６７】
【数１２】
2010041358.tif 000014
【００６８】
関数ｆ１は、点（Ｒ０，ｆ０（Ｒ０））を通る傾き−１の直線である。ここで、関数ｆ０は、数（１３）式で表される。関数ｆ０をそのまま関数ｆとして利用することも可能であるが、本実施の形態においては、関数ｆ０を領域指定関数として利用し、この領域指定関数ｆ０の局所的な傾きを調整した関係決定関数ｆ１を利用して量子化ステップ変換係数を算出することとしている。
【００６９】
【数１３】
2010041358.tif 000015
【００７０】
数（１３）式においては、ＭＰＥＧ２からＨ．２６４へストリーム変換する場合のε、δの値として、実験等に基づいて算出された具体的数値を例示した。つまり、実験の結果、ε＝２．１、δ＝１．１とすることで、良好な特性が得られた。本実施の形態においては、全ピクチャに共通の関数ｆ０を利用しているが、ピクチャタイプ（Ｉピクチャ、Ｐピクチャ、Ｂピクチャ）でそれぞれに異なる特性の関数を利用してもよい。
【００７１】
図３は、関数ｆ１と関数ｆ０を示す図である。図中、ｘ軸はビットレートの比を示し、ｙ軸は量子化ステップ変換係数を示している。関数ｆ１、関数ｆ０として具体的にε＝２．１、δ＝１．１の値を用いている。関数ｆ０は、指数関数であり、ビットレートの比が小さい領域については、その傾きが大きくなっている。ビットレートの比が、おおよそ０．４〜０．６程度で推移することを想定すると、関数ｆ０はこの領域において大きく量子化ステップ変換係数が変動することになる。したがって、関数ｆ０をそのまま関数ｆとして用いた場合には、ビットレートの比が小さい領域において、量子化ステップ変換係数の変動が大きくなる。そこで、基準ビットレート比Ｒ０の近傍領域において関数ｆ０よりも変動の小さい関数ｆ１を用いて量子化ステップ変換係数を算出することとしている。なお、図３においては、基準ビットレート比Ｒ０＝０．５の場合を例に図示している。
【００７２】
つまり、領域指定関数ｆ０は、ビットレートの比と量子化ステップ変換係数との関係を決めるおおよそのエリアを規定する役割を有し、そのエリアの中で、関数ｆ１は、ビットレートの比と量子化ステップ変換係数との関係を具体的に決定する役割を有する。上述したように、関数ｆ０は、実験等に基づいて求められた関数であり、ＭＰＥＧ２からＨ．２６４へストリーム変換する場合におけるビットレートの比と量子化ステップ変換係数の関係を良好に保つことができる。しかし、上述したように、ビットレートの比が０．４〜０．６程度において、量子化ステップ変換係数の変動が大きくならないように、関数ｆ１を利用するのである。
【００７３】
関数ｆ１は、点（Ｒ０，ｆ０（Ｒ０））において、関数ｆ０と交わっている。つまり、基準ビットレート比Ｒ０の近傍においては、関数ｆ０と比較的近い特性を維持している。しかし、関数ｆ１が、点（Ｒ０，ｆ０（Ｒ０））から離れるにつれて、関数ｆ１は関数ｆ０と特性が乖離する。関数ｆ１が関数ｆ０から特性が大きくずれると、関数ｆ０の特性を維持できなくなり、関数ｆ１を使用し続けるのは不適切となる。そこで、数（１４）式の関係を満たす限りにおいて、関数ｆ１を利用するのである。
【００７４】
【数１４】
2010041358.tif 000016
【００７５】
数（１４）式において、ＲＢは、現在ビットレート比であり、数（１５）式で示される。
【００７６】
そして、数（１４）式の関係を満たさなくなった場合には、数（１５）式に示す現在ビットレート比ＲＢにより、基準ビットレート比Ｒ０を更新するのである。
【００７７】
【数１５】
2010041358.tif 000017
【００７８】
これにより、図４に示すように、基準点（Ｒ０，ｆ０（Ｒ０））が更新され、あわせて関数ｆ１も更新される。つまり、関数ｆ０で指定されるエリアに沿って、関数ｆ１を移動させながら、関数ｆ１を用いて量子化ステップ変換係数を算出するのである。これにより、関数ｆ０と関数ｆ１の両方の特性を利用して、最適なレート制御を行うことが可能である。
【００７９】
上記の実施の形態においては、数（８）式に示したように、ビットレートの比としてＴｎ＋１／Ｓｎを用いたが、数（１６）式で示すように、第ｎ期間における入力平均ビットレートＳｎに代えて、第（ｎ−Ｍ＋１）期間から第ｎ期間までの期間平均ビットレートＡＳｎを用いて量子化ステップ変換係数αｎ＋１を算出してもよい。
【００８０】
【数１６】
2010041358.tif 000018
【００８１】
また、目標設定ビットレートＴｎ＋１を算出する演算過程において、数（６）式で示した場合のように、期間比として第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１を利用した場合には、数（８）式に代えて、数（１７）式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と、第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１の比を関数ｆ（関数ｆ１）に入力することで、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出するようにすればよい。
【００８２】
【数１７】
2010041358.tif 000019
【００８３】
また、目標設定ビットレートＴｎ＋１を算出する演算過程において、期間比として、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１を利用した場合には、数（１６）式に代えて、数（１８）式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１の比を関数ｆ（関数ｆ１）に入力することで、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出するようにすればよい。
【００８４】
【数１８】
2010041358.tif 000020
【００８５】
なお、第１の実施の形態において、関数ｆ１の傾きを−１としたが、これは一例である。関数ｆ０よりも変動の小さい負の傾きで最適なものを選択すればよい。また、数（１４）式において、閾値を０．５に設定したが、これも一例である。この閾値を自由に設定することで基準ビットレート比Ｒ０（同様に更新された基準ビットレート比Ｒ０）の近傍領域を自由に設定可能である。
【００８６】
｛第２の実施の形態｝
次に、本発明の第２の実施の形態について説明する。第２の実施の形態と第１の実施の形態とでは関数ｆが異なる。数（１９）式は、第２の実施の形態において関数ｆとして利用される関数ｆ２を示す。
【００８７】
【数１９】
2010041358.tif 000021
【００８８】
関数ｆ２は、点（Ｒ０，ｆ０（Ｒ０））を通り、かつ、点（Ｒ０，ｆ０（Ｒ０））において傾き−１の接線ｐ（ｘ）を有する直交双曲線（直角双曲線）である。関数ｆ０は、数（１３）式で表したものと同じである。
【００８９】
図５は、関数ｆ２と関数ｆ０を示す図である。図中、ｘ軸はビットレートの比を示し、ｙ軸は量子化ステップ変換係数を示している。関数ｆ２、関数ｆ０として具体的にε＝２．１、δ＝１．１の値を用いている。上述したように、関数ｆ０は、指数関数であり、ビットレートの比が小さい領域については、その傾きが大きくなっている。そこで、基準ビットレート比Ｒ０の近傍において、関数ｆ０よりも変動の小さい関数ｆ２を用いて量子化ステップ変換係数を算出することとしている。
【００９０】
第１の実施の形態と同様、関数ｆ０は、ビットレートの比と量子化ステップ変換係数との関係を決めるおおよそのエリアを規定する領域指定関数としての役割を有し、そのエリアの中で、関数ｆ２は、ビットレートの比と量子化ステップ変換係数との関係を具体的に決定する関係決定関数としての役割を有する。
【００９１】
関数ｆ２は、点（Ｒ０，ｆ０（Ｒ０））において、関数ｆ０と交わっている。つまり、基準ビットレート比Ｒ０の近傍においては、関数ｆ０と比較的近い特性を維持している。しかし、関数ｆ２が、点（Ｒ０，ｆ０（Ｒ０））から離れるにつれて、関数ｆ２は関数ｆ０と特性が乖離する。関数ｆ２が関数ｆ０から特性が大きくずれると、関数ｆ０の特性を維持できなくなり、関数ｆ２を使用し続けるのは不適切となる。そこで、数（２０）式の関係を満たす限りにおいて、関数ｆ２を利用するのである。
【００９２】
【数２０】
2010041358.tif 000022
【００９３】
そして、数（２０）式の関係を満たさなくなった場合には、数（１５）式に示す現在ビットレート比ＲＢにより、基準ビットレート比Ｒ０を更新するのである。これにより、基準点（Ｒ０，ｆ０（Ｒ０））が更新され、あわせて関数ｆ２も更新される。つまり、関数ｆ０のエリアに沿って、関数ｆ２を移動させながら、関数ｆ２を用いて量子化ステップ変換係数を算出するのである。これにより、関数ｆ０と関数ｆ２の両方の特性を利用して、最適なレート制御を行うことが可能である。
【００９４】
なお、第２の実施の形態において、接線ｐ（ｘ）の傾きを−１としたが、これは一例である。関数ｆ２の変動が関数ｆ０よりも小さくなるような負の傾きで最適なものを選択すればよい。また、数（２０）式において、閾値を０．５に設定したが、これも一例である。この閾値を自由に設定することで基準ビットレート比Ｒ０（同様に更新された基準ビットレート比Ｒ０）の近傍領域を自由に設定可能である。
【００９５】
｛第３の実施の形態｝
次に、本発明の第３の実施の形態について説明する。第３の実施の形態と第１の実施の形態とでは関数ｆが異なる。数（２１）式は、第３の実施の形態において関数ｆとして利用される関数ｆ３を示す。
【００９６】
【数２１】
2010041358.tif 000023
【００９７】
関数ｆ３は、点（Ｒ０，ｆ０（Ｒ０））を通り、かつ、点（Ｒ０，ｆ０（Ｒ０））において関数ｆ０と接する直線である。関数ｆ０は、数（１３）式で表したものと同じである。
【００９８】
図６は、関数ｆ３と関数ｆ０を示す図である。図中、ｘ軸はビットレートの比を示し、ｙ軸は量子化ステップ変換係数を示している。関数ｆ３、関数ｆ０として具体的にε＝２．１、δ＝１．１の値を用いている。
【００９９】
ここで、関数ｆ３は、関数ｆ１や関数ｆ２とは異なる特性を有する。つまり、点（Ｒ０，ｆ０（Ｒ０））よりビットレート比が小さい領域については、量子化ステップ変換係数の変動を小さくするよう作用するが、点（Ｒ０，ｆ０（Ｒ０））よりビットレート比が大きい領域については、逆に変動が大きくなる。
【０１００】
第１、第２の実施の形態と同様、関数ｆ０は、ビットレートの比と量子化ステップ変換係数との関係を決めるおおよそのエリアを規定する領域指定関数としての役割を有し、そのエリアの中で、関数ｆ３は、ビットレートの比と量子化ステップ変換係数との関係を具体的に決定する関係決定関数としての役割を有する。
【０１０１】
また、関数ｆ３を利用する条件も第１、第２の実施の形態と同様である。数（２２）式の関係を満たす限りにおいて、関数ｆ３を利用するのである。
【０１０２】
【数２２】
2010041358.tif 000024
【０１０３】
ただし、第３の実施の形態においては、関数ｆ３の利用条件を限定的にする方が好ましい。上述したように、点（Ｒ０，ｆ０（Ｒ０））よりビットレート比が大きい領域については、量子化ステップ変換係数の変動幅が大きくなるが、この現象は、ビットレートの比が点（Ｒ０，ｆ０（Ｒ０））より離れるにつれて顕著になる。したがって、数（２２）式において、閾値の値を０．５より小さい値、０．２や０．３などを設定し、より点（Ｒ０，ｆ０（Ｒ０））の近傍でのみ関数を利用するようにした方が好ましい。
【０１０４】
数（２２）式の関係を満たさなくなった場合には、数（１５）式に示す現在ビットレート比ＲＢにより、基準ビットレート比Ｒ０を更新する点も同様である。
【０１０５】
｛変形例｝
上記第１〜第３の実施の形態においては、数（１４）、（２０）、（２２）式で示したように、関数ｆ１、ｆ２、ｆ３の利用条件を設けた。数（１４）、（２０）、（２２）式では、点（Ｒ０，ｆ０（Ｒ０））よりビットレート比の大きい領域、小さい領域で同じ条件としているが、異なる条件としてもよい。たとえば、関数ｆ１について、点（Ｒ０，ｆ０（Ｒ０））よりビットレート比の小さい領域では、数（１４）式をそのまま用い、点（Ｒ０，ｆ０（Ｒ０））よりビットレート比の大きい領域では、数（１４）式において閾値０．５を０．３などに置き換え、利用条件を厳しくするなどの方法が考えられる。
【０１０６】
関数ｆ３については、点（Ｒ０，ｆ０（Ｒ０））よりビットレート比が大きい領域については、量子化ステップ変換係数の変動幅が大きくなることを述べた。そして、この現象は、ビットレート比が点（Ｒ０，ｆ０（Ｒ０））より離れるにつれて顕著になる。そこで、関数ｆ３については、点（Ｒ０，ｆ０（Ｒ０））よりビットレート比の小さい領域では、数（２２）式をそのまま用い、点（Ｒ０，ｆ０（Ｒ０））よりビットレート比の大きい領域では、数（２２）式において閾値０．５を０．２などに置き換え、利用条件を厳しくすればよい。関数ｆ３は、関数ｆ０の接線であるので、ビットレート比の小さい領域では、比較的関数ｆ０に近い特性を有し、関数ｆ０よりも緩やかな変動特性を持たせることができ、ビットレート比の大きい領域では、点（Ｒ０，ｆ０（Ｒ０））のごく近傍でのみ関数ｆ３を利用することで、関数ｆ０の特性から大きく乖離することを防止できる。
【０１０７】
点（Ｒ０，ｆ０（Ｒ０））を境界として利用する関数ｆを異ならせることもできる。たとえば、点（Ｒ０，ｆ０（Ｒ０））よりもビットレート比の小さい領域では、関数ｆ３を利用し、点（Ｒ０，ｆ０（Ｒ０））よりもビットレート比の大きい領域では、関数ｆ２を利用するのである。これにより、ビットレート比の小さい領域では、関数ｆ３を利用することで、比較的関数ｆ０に近い特性を有し、関数ｆ０よりも緩やかな変動特性を持たせることができ、ビットレート比の大きい領域では、関数ｆ２を利用することで、関数ｆ０の特性から大きく乖離することなく、緩やかな変動特性を持たせることができる。
【０１０８】
あるいは、点（Ｒ０，ｆ０（Ｒ０））よりもビットレート比の小さい領域では、関数ｆ１や関数ｆ２利用し、点（Ｒ０，ｆ０（Ｒ０））よりもビットレート比の大きい領域では、関数ｆ０をそのまま利用することもできる。
【図面の簡単な説明】
【０１０９】
【図１】トランスコーダのブロック図である。
【図２】入力ストリーム（第１ストリーム）と出力ストリーム（第２ストリーム）の情報を制御単位期間ごとに示した図である。
【図３】関数ｆ１と関数ｆ０の特性を示す図である。
【図４】基準ビットレート比Ｒ０の更新と関数ｆ１の更新を示す図である。
【図５】関数ｆ２と関数ｆ０の特性を示す図である。
【図６】関数ｆ３と関数ｆ０の特性を示す図である。
【符号の説明】
【０１１０】
１    トランスコーダ
１１  ＣＰＵ
１２    デコーダ
１４    ステップ値算出部
１５    エンコーダ
【図１】
2010041358.tif 000025
【図２】
2010041358.tif 000026
【図３】
2010041358.tif 000027
【図４】
2010041358.tif 000028
【図５】
2010041358.tif 000029
【図６】
2010041358.tif 000030