(57)【要約】【課題】ビットレートの一定化という目的と、画質の維持という目的のバランスをとりながら、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御することを課題とする。【解決手段】トランスコーダ１は、デコーダ２でデコードしたストリームを再びエンコーダ３でエンコードする。エンコーダ３は、量子化ステップ値を算出するときに、パラメータとして、第１ストリームの期間平均ビットレートＡＳｎ（Ｍ）や、第２ストリームの期間平均ビットレートＡＣｎ（Ｍ）を用いる。バッファ４，６には、それぞれＭ期間の第１，第２ストリームのビットレートＳｎ，Ｃｎが格納される。エンコーダ３は、Ｍ期間のうち、Ｍ１，Ｍ２，Ｍ３いずれかの期間の第１ストリームの期間平均ビットレートＡＳｎ（Ｍ）や、第２ストリームの期間平均ビットレートＡＣｎ（Ｍ）を利用する。【選択図】図１
2012138943.tif 000002
【特許請求の範囲】
【請求項１】
第１のストリームを第２のストリームに変換するトランスコーダであって、
制御単位期間ごとの変換済みの第２のストリームのビットレートを取得する手段と、
過去複数期間の第２のストリームのビットレートを格納するバッファと、
前記バッファに格納されている過去複数期間の第２のストリームのビットレートから、選択された期間に対応する第２のストリームのビットレートを取得して、第２のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、
前記基準値算出手段が算出した第２のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第２のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、
を備えることを特徴とするトランスコーダ。
【請求項２】
請求項１に記載のトランスコーダにおいて、
前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を、トランスコード処理の途中で変更可能としたことを特徴とするトランスコーダ。
【請求項３】
請求項１又は請求項２に記載のトランスコーダにおいて、
ユーザ操作により前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を指定可能としたことを特徴とするトランスコーダ。
【請求項４】
請求項２に記載のトランスコーダにおいて、
出力ストリームの符号量の変動が所定の基準を上回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とするトランスコーダ。
【請求項５】
請求項２に記載のトランスコーダにおいて、
出力ストリームの画質が所定の基準を下回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とするトランスコーダ。
【請求項６】
請求項１ないし請求項５のいずれかに記載のトランスコーダにおいて、
前記基準値は、
選択期間内のビットレートの平均値、
を含むことを特徴とするトランスコーダ。
【請求項７】
請求項１ないし請求項６のいずれかに記載のトランスコーダであって、
第１のストリーム全体のビットレートを取得する手段と、
第２のストリーム全体の目標ビットレートを設定する手段と、
第２のストリーム全体の目標ビットレートと第１のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、
第２のストリーム全体の目標ビットレートと、第Ｎ期間以前の変換済みの第２のストリームのビットレートとから変動係数を算出する変動係数算出手段と、
前記基準変換係数に前記変動係数を加算することで、次の第Ｎ＋１期間の期間変換係数を算出する手段と、
第Ｎ＋１期間の第１のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第Ｎ＋１期間の第２のストリームの量子化ステップ値を算出する手段と、
を備え、
前記変動係数算出手段は、第Ｎ期間以前の変換済みの第２のストリームのビットレートとして、前記基準値算出手段が算出した第Ｎ期間を含む選択期間内の第２のストリームの基準値を用いることを特徴とするトランスコーダ。
【請求項８】
請求項１ないし請求項６のいずれかに記載のトランスコーダであって、
第１のストリーム全体のビットレートを取得する手段と、
第２のストリーム全体の目標ビットレートを設定する手段と、
第２のストリーム全体の目標ビットレートと第１のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、
第２のストリーム全体の目標ビットレートと、第Ｎ期間以前の変換済みの第２のストリームのビットレートとから変動係数を算出する変動係数算出手段と、
前記基準変換係数に前記変動係数を加算することで、次の第Ｎ＋１期間の期間変換係数を算出する手段と、
第Ｎ＋１期間の第１のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第Ｎ＋１期間の第２のストリームの量子化ステップ値を算出する手段と、
を備え、
前記変動係数算出手段は、算出した前記変動係数を、さらに、前記基準値算出手段が算出した第Ｎ期間を含む選択期間内の第１のストリームの基準値で除算することで前記変動係数を調整することを特徴とするトランスコーダ。
【請求項９】
請求項１ないし請求項６のいずれかに記載のトランスコーダであって、
第２のストリーム全体の目標ビットレートを設定する手段と、
第２のストリーム全体の目標ビットレートと、第Ｎ期間以前の変換済みの第２のストリームのビットレートと、第Ｎ期間の第２のストリームの目標ビットレートに基づいて第Ｎ＋１期間の第２のストリームの目標ビットレートを決定する目標ビットレート決定手段と、
を備え、
第Ｎ期間以前の変換済みの第２のストリームのビットレートとして、前記基準値算出手段が算出した第Ｎ期間を含む選択期間内の第２のストリームの基準値が用いられることを特徴とするトランスコーダ。
【請求項１０】
請求項９に記載のトランスコーダにおいて、
第Ｎ期間以前の第１のストリームのビットレートを取得する手段と、
決定された第Ｎ＋１期間の第２のストリームの目標ビットレートと第Ｎ期間以前の第１のストリームのビットレートとの比に基づいて第Ｎ＋１期間の期間変換係数を算出する期間変換係数算出手段と、
第Ｎ＋１期間の第１のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第Ｎ＋１期間の第２のストリームの量子化ステップ値を算出する手段と、
を備え、
前記期間変換係数算出手段は、第Ｎ期間以前の第１のストリームのビットレートとして、前記基準値算出手段が算出した第Ｎ期間を含む選択期間内の第１のストリームの基準値を用いることを特徴とするトランスコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力ストリームをデコードして異なる出力ストリームに変換するトランスコーダに関し、詳しくは、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御する技術に関する。
【背景技術】
【０００２】
デジタル放送で配信される画像や、ＤＶＤ、ハードディスクなどに格納される画像などは、各種の符号化方式に従って圧縮される。これは、伝送帯域を圧迫しないため、伝送速度を上げるため、あるいは、記憶サイズを小さくするなどの目的のためである。
【０００３】
画像の符号化方式には、ＭＰＥＧ２やＨ．２６４など様々な規格が存在する。そして、入力した符号化画像の符号量を削減するなどの目的で符号化方式の変換が行われる場合がある。トランスコーダは、入力した符号化画像を一旦デコードする。そして、トランスコーダは、デコードした画像を、再び異なる符号化方式（あるいは同じ符号化方式）で符号化する。このようにして、トランスコーダは、出力ストリームのビットレートを制御するのである。
【０００４】
下記特許文献１は、第１の圧縮符号化方式で圧縮された画像を第２の圧縮符号化方式で圧縮された画像に変換するトランスコーダに関するものである。このトランスコーダは、第１の圧縮符号化方式で圧縮された画像を復号する際に発生する中間情報を用いて、第２の圧縮符号化方式で画像を圧縮するようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−７４６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
トランスコーダに入力されるストリームには、様々なシーンが含まれる。符号量をより多く割り当てなければ画質劣化を招いてしまうようなシーンや、符号量をそれほど割り当てなくても画質劣化しないようなシーンなどが含まれる。したがって、シーンによって画像圧縮の難易度は大きく変化する。
【０００７】
一方、符号量制御は、上記のような画像圧縮の難易度に関わらず、ある期間におけるビットレートを一定に保持することを目的としている。このため、ビットレートを一定に保持する期間をどの程度の期間とするかは、通信路の帯域制限や画質に対するユーザの要求仕様などで変わってくる。
【０００８】
たとえば、通信路の帯域制限が厳しいという想定のもとでは、符号量制御におけるフィードバックの応答期間を短く設定する必要がある。つまり、ビットレートを一定に保持する期間を短く設定する必要がある。このような符号量制御を行った場合、画質が劣化するという問題があった。
【０００９】
逆に、画質を優先する場合、符号量制御におけるフィードバックの応答期間を長く設定する必要がある。つまり、ビットレートを一定に保持する期間を長く設定し、その期間、ある程度ビットレートに自由度を持たせ画質の向上を目指すのである。しかし、このような制御を行った場合、局所的にビットレートが増減する可能性があるため、通信帯域の制限に適合しないような場合がある。
【００１０】
そこで、本発明は前記問題点に鑑み、ビットレートの一定化という目的と、画質の維持という目的のバランスをとりながら、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、請求項１記載の発明は、第１のストリームを第２のストリームに変換するトランスコーダであって、制御単位期間ごとの変換済みの第２のストリームのビットレートを取得する手段と、過去複数期間の第２のストリームのビットレートを格納するバッファと、前記バッファに格納されている過去複数期間の第２のストリームのビットレートから、選択された期間に対応する第２のストリームのビットレートを取得して、第２のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、前記基準値算出手段が算出した第２のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第２のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、を備えることを特徴とする。
【００１２】
請求項２記載の発明は、請求項１に記載のトランスコーダにおいて、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を、トランスコード処理の途中で変更可能としたことを特徴とする。
【００１３】
請求項３記載の発明は、請求項１又は請求項２に記載のトランスコーダにおいて、ユーザ操作により前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を指定可能としたことを特徴とする。
【００１４】
請求項４記載の発明は、請求項２に記載のトランスコーダにおいて、出力ストリームの符号量の変動が所定の基準を上回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とする。
【００１５】
請求項５記載の発明は、請求項２に記載のトランスコーダにおいて、出力ストリームの画質が所定の基準を下回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とする。
【００１６】
請求項６記載の発明は、請求項１ないし請求項５のいずれかに記載のトランスコーダにおいて、前記基準値は、選択期間内のビットレートの平均値、を含むことを特徴とする。
【００１７】
請求項７記載の発明は、請求項１ないし請求項６のいずれかに記載のトランスコーダであって、第１のストリーム全体のビットレートを取得する手段と、第２のストリーム全体の目標ビットレートを設定する手段と、第２のストリーム全体の目標ビットレートと第１のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、第２のストリーム全体の目標ビットレートと、第Ｎ期間以前の変換済みの第２のストリームのビットレートとから変動係数を算出する変動係数算出手段と、前記基準変換係数に前記変動係数を加算することで、次の第Ｎ＋１期間の期間変換係数を算出する手段と、第Ｎ＋１期間の第１のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第Ｎ＋１期間の第２のストリームの量子化ステップ値を算出する手段と、を備え、前記変動係数算出手段は、第Ｎ期間以前の変換済みの第２のストリームのビットレートとして、前記基準値算出手段が算出した第Ｎ期間を含む選択期間内の第２のストリームの基準値を用いることを特徴とする。
【００１８】
請求項８記載の発明は、請求項１ないし請求項６のいずれかに記載のトランスコーダであって、第１のストリーム全体のビットレートを取得する手段と、第２のストリーム全体の目標ビットレートを設定する手段と、第２のストリーム全体の目標ビットレートと第１のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、第２のストリーム全体の目標ビットレートと、第Ｎ期間以前の変換済みの第２のストリームのビットレートとから変動係数を算出する変動係数算出手段と、前記基準変換係数に前記変動係数を加算することで、次の第Ｎ＋１期間の期間変換係数を算出する手段と、第Ｎ＋１期間の第１のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第Ｎ＋１期間の第２のストリームの量子化ステップ値を算出する手段と、を備え、前記変動係数算出手段は、算出した前記変動係数を、さらに、前記基準値算出手段が算出した第Ｎ期間を含む選択期間内の第１のストリームの基準値で除算することで前記変動係数を調整することを特徴とする。
【００１９】
請求項９記載の発明は、請求項１ないし請求項６のいずれかに記載のトランスコーダであって、第２のストリーム全体の目標ビットレートを設定する手段と、第２のストリーム全体の目標ビットレートと、第Ｎ期間以前の変換済みの第２のストリームのビットレートと、第Ｎ期間の第２のストリームの目標ビットレートに基づいて第Ｎ＋１期間の第２のストリームの目標ビットレートを決定する目標ビットレート決定手段と、を備え、第Ｎ期間以前の変換済みの第２のストリームのビットレートとして、前記基準値算出手段が算出した第Ｎ期間を含む選択期間内の第２のストリームの基準値が用いられることを特徴とする。
【００２０】
請求項１０記載の発明は、請求項９に記載のトランスコーダにおいて、第Ｎ期間以前の第１のストリームのビットレートを取得する手段と、決定された第Ｎ＋１期間の第２のストリームの目標ビットレートと第Ｎ期間以前の第１のストリームのビットレートとの比に基づいて第Ｎ＋１期間の期間変換係数を算出する期間変換係数算出手段と、第Ｎ＋１期間の第１のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第Ｎ＋１期間の第２のストリームの量子化ステップ値を算出する手段と、を備え、前記期間変換係数算出手段は、第Ｎ期間以前の第１のストリームのビットレートとして、前記基準値算出手段が算出した第Ｎ期間を含む選択期間内の第１のストリームの基準値を用いることを特徴とする。
【発明の効果】
【００２１】
本発明のトランスコーダは、符号量制御の演算に用いる符号量のバッファ期間を可変としたので、状況、要求に応じて、発生符号量の適正化を行いつつ、符号量を制御することができる。
【００２２】
また、符号量制御の演算に用いる符号量の選択期間をトランスコード処理の途中で可変としたので、適応的に、発生符号量の適正化を図ることが可能である。
【図面の簡単な説明】
【００２３】
【図１】トランスコーダのブロック図である。
【図２】入力ストリーム（第１ストリーム）と出力ストリーム（第２ストリーム）の情報を制御単位期間ごとに示した図である。
【図３】入力平均ビットレートを格納するバッファと平均値算出部を示す図である。
【図４】出力平均ビットレートを格納するバッファと平均値算出部を示す図である。
【発明を実施するための形態】
【００２４】
｛１．トランスコーダの全体構成｝
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、本実施の形態に係るトランスコーダ１のブロック図である。このトランスコーダ１は、デコーダ２とエンコーダ３とを備えている。また、トランスコーダ１は、バッファ４、平均値算出部５、バッファ６、平均値算出部７を備えている。
【００２５】
デコーダ２は、第１ストリームを入力する。第１ストリームは、符号化画像のストリームである。デコーダ２は、第１ストリームをデコードし、非圧縮の画像データをエンコーダ３に出力する。エンコーダ３は、デコーダ２においてデコードされた非圧縮の画像データを再び符号化し、第２ストリームを出力するのである。
【００２６】
たとえば、トランスコーダ１は、ＭＰＥＧ２で符号化された第１ストリームを入力し、Ｈ．２６４で符号化された第２ストリームを出力するなど、ストリームの符号化方式を変換する処理を行う。そして、変換処理を行う際、出力する第２ストリームのレート制御を最適に行えるよう本発明は工夫されている。あるいは、トランスコーダ１は、ＭＰＥＧ２で符号化された第１ストリームを入力し、再びＭＰＥＧ２で符号化された第２ストリームを出力するなど、同じ符号化方式のストリームを出力する。このときにも、出力する第２ストリームのレート制御を最適に行えるよう本発明は工夫されている。
【００２７】
なお、この後説明するレート制御方法（Ａ）〜（Ｄ）における各演算処理は、デコーダ２、エンコーダ３および平均値算出部５，７などにおいて実行される演算処理であるが、デコーダ２、エンコーダ３および平均値算出部５，７における各演算処理は、ハードウェアにより実現されてもよいし、ソフトウェア処理により実現されていてもよい。つまり、これらの処理部が、ハードウェア回路として構成されていてもよいし、ＣＰＵとメモリに格納されたプログラムとで構成されていてもよい。あるいは、一部の処理がハードウェアで処理され、一部の処理がソフトウェアで処理される形態であってもよい。
【００２８】
｛２．レート制御方法｝
図２は、トランスコーダ１が入出力するストリームの制御単位期間ごとの情報を表した図である。トランスコーダ１は、処理時間軸を制御単位期間Ｌｎ（ｎ＝１，２・・・）に区分し、この制御単位期間Ｌｎを処理単位としてレート制御を行う。以下の説明において、適宜、制御単位期間Ｌｎを第ｎ期間と呼ぶことにする。本実施の形態においては、１ＧＯＰが制御単位期間Ｌｎとして設定される。ただし、制御単位期間Ｌｎとしては、複数のＧＯＰ、１フレーム、連続する複数フレームなどを設定することが可能である。
【００２９】
第１ストリームの入力全体ビットレートＳは、シーケンスヘッダなどから取得される。入力平均ビットレートＳｎは、第ｎ期間における第１ストリームの平均ビットレートである。トランスコーダ１は、バッファ４を備えており、Ｍ期間分の入力平均ビットレートＳｎに関する情報を格納可能としている。つまり、バッファ４は、第（ｎ−Ｍ＋１）期間から第ｎ期間までの入力平均ビットレートＳｎに関する情報を格納可能としている。そして、期間平均ビットレートＡＳｎ（Ｍ）は、第（ｎ−Ｍ＋１）期間から第ｎ期間における入力平均ビットレートＳｎを平均した値である。期間平均ビットレートＡＳｎ（Ｍ）は、数１式で表される。
【００３０】
【数１】
2012138943.tif 000003
【００３１】
デコーダ２は、入力した第１ストリームから、入力全体ビットレートＳ、入力平均ビットレートＳｎ、第ｎ期間における量子化ステップ値Ｐなどの情報を取得し、これらの情報をエンコーダ３に与える。また、平均値算出部５は、期間平均ビットレートＡＳｎ（Ｍ）をエンコーダ３に与える。エンコーダ３は、これらの情報を利用して、画像の再符号化を行う。
【００３２】
第２ストリームの全体目標ビットレートＴは、ユーザにより設定される。たとえば、ユーザが、トランスコーダ１に設けられた図示せぬ操作部を用いて全体目標ビットレートＴを設定する。目標設定ビットレートＴｎは、第ｎ期間における第２ストリームの目標ビットレートである。出力平均ビットレートＣｎは、第ｎ期間における変換済みの第２ストリームの平均ビットレートである。トランスコーダ１は、バッファ６を備えており、Ｍ期間分の出力平均ビットレートＣｎに関する情報を格納可能としている。つまり、バッファ６は、第（ｎ−Ｍ＋１）期間から第ｎ期間までの出力平均ビットレートＣｎに関する情報を格納可能としている。そして、期間平均ビットレートＡＣｎ（Ｍ）は、第（ｎ−Ｍ＋１）から第ｎ期間における出力平均ビットレートＣｎを平均した値である。期間平均ビットレートＡＣｎ（Ｍ）は、数２式で表される。なお、この実施の形態では、期間平均ビットレートＡＳｎ（Ｍ）、ＡＣｎ（Ｍ）を計算する場合に利用するバッファ期間を、制御単位期間Ｌｎと連動させたが、バッファ期間の設定方法は、これに限るものではない。たとえば、連続する過去複数フレームなどをバッファ期間として設定することが可能である。
【００３３】
【数２】
2012138943.tif 000004
【００３４】
図３は、バッファ４に格納される入力平均ビットレートＳｎ、および平均値算出部５における処理の内容を示す図である。バッファ４は、第（ｎ−Ｍ＋１）期間から第ｎ期間における入力平均ビットレートＳｎ−Ｍ＋１〜Ｓｎを格納している。
【００３５】
平均値算出部５は、バッファ４に格納されている入力平均ビットレートＳｎを取得し、３種類の期間平均ビットレートＡＳｎ（Ｍ１），ＡＳｎ（Ｍ２），ＡＳｎ（Ｍ３）を算出する。期間平均ビットレートＡＳｎ（Ｍ１）は、入力平均ビットレートＳｎ−Ｍ１＋１〜Ｓｎを用いて求められたＭ１期間の平均値である。期間平均ビットレートＡＳｎ（Ｍ２）は、入力平均ビットレートＳｎ−Ｍ２＋１〜Ｓｎを用いて求められたＭ２期間の平均値である。期間平均ビットレートＡＳｎ（Ｍ３）は、入力平均ビットレートＳｎ−Ｍ３＋１〜Ｓｎを用いて求められたＭ３期間の平均値である。期間平均ビットレートＡＳｎ（Ｍ１），ＡＳｎ（Ｍ２），ＡＳｎ（Ｍ３）は、数３式で示される。
【００３６】
【数３】
2012138943.tif 000005
【００３７】
後述するように、エンコーダ３は、期間平均ビットレートＡＳｎ（Ｍ）を利用して、第２ストリームの量子化ステップ値Ｑを算出する。このとき、ユーザの設定により、あるいは所定の条件に基づいて、期間平均ビットレートＡＳｎ（Ｍ１），ＡＳｎ（Ｍ２），ＡＳｎ（Ｍ３）のうち、いずれかの平均値が選択されて、期間平均ビットレートＡＳｎ（Ｍ）として用いられる。
【００３８】
図４は、バッファ６に格納される入力平均ビットレートＣｎ、および平均値算出部７における処理の内容を示す図である。バッファ６は、第（ｎ−Ｍ＋１）期間から第ｎ期間における入力平均ビットレートＣｎ−Ｍ＋１〜Ｃｎを格納している。
【００３９】
平均値算出部７は、バッファ６に格納されている入力平均ビットレートＣｎを取得し、３種類の期間平均ビットレートＡＣｎ（Ｍ１），ＡＣｎ（Ｍ２），ＡＣｎ（Ｍ３）を算出する。期間平均ビットレートＡＣｎ（Ｍ１）は、入力平均ビットレートＣｎ−Ｍ１＋１〜Ｃｎを用いて求められたＭ１期間の平均値である。期間平均ビットレートＡＣｎ（Ｍ２）は、入力平均ビットレートＣｎ−Ｍ２＋１〜Ｃｎを用いて求められたＭ２期間の平均値である。期間平均ビットレートＡＣｎ（Ｍ３）は、入力平均ビットレートＣｎ−Ｍ３＋１〜Ｃｎを用いて求められたＭ３期間の平均値である。期間平均ビットレートＡＣｎ（Ｍ１），ＡＣｎ（Ｍ２），ＡＣｎ（Ｍ３）は数４式で示される。
【００４０】
【数４】
2012138943.tif 000006
【００４１】
後述するように、エンコーダ３は、期間平均ビットレートＡＣｎ（Ｍ）を利用して、第２ストリームの量子化ステップ値Ｑを算出する。このとき、ユーザの設定により、あるいは所定の条件に基づいて、期間平均ビットレートＡＣｎ（Ｍ１），ＡＣｎ（Ｍ２），ＡＣｎ（Ｍ３）のうち、いずれかの平均値が選択されて、期間平均ビットレートＡＣｎ（Ｍ）として用いられる。
【００４２】
再び、図２を参照する。量子化ステップ変換係数αｎは、第（ｎ−１）期間の終了時に算出される係数である。第１ストリームの量子化ステップ値そのもの、あるいは第１ストリームの量子化ステップ値から計算される値Ｐに、量子化ステップ変換係数αｎを乗算することで、第２ストリームの量子化ステップ値Ｑが決定される。この関係を数５式に示す。
【００４３】
【数５】
2012138943.tif 000007
【００４４】
ここで、量子化ステップ変換係数αｎの初期値α１は、数６式で与えられる。つまり、第２ストリームの全体目標ビットレートＴを第１ストリームの入力全体ビットレートＳで除算した値、つまりビットレート比を関数ｆに入力することによって、量子化ステップ変換係数の初期値α１を求めている。
【００４５】
【数６】
2012138943.tif 000008
【００４６】
ここで、関数ｆは、ビットレートの比から量子化ステップ値の比を求める関数であり、ビットレートの比をＲＢ、量子化ステップ値の比をＲＱとすると、一般的に、数７式で表される。
【００４７】
【数７】
2012138943.tif 000009
【００４８】
関数ｆの具体例を説明する。本実施の形態では、数８式に示すように、ピクチャあるいはマクロブロックのタイプＩ、Ｐ、Ｂ（Ｉピクチャ、Ｐピクチャ、Ｂピクチャ）それぞれに異なる特性で量子化ステップ値の比を制御できる関数を利用している。数８式中、ｆＩ（ｘ）、ｆＰ（ｘ）、ｆＢ（ｘ）は、それぞれＩ、Ｐ、Ｂピクチャに対応して適応される関数を示している。
【００４９】
【数８】
2012138943.tif 000010
【００５０】
数８式においては、ＭＰＥＧ２からＨ．２６４へストリーム変換する場合のεＩ、εＰ、εＢ、δＩ、δＰ、δＢの値として、実験等に基づいて算出された具体的数値を例示した。つまり、実験の結果、εＩ＝２．１、εＰ＝２．１、εＢ＝１．３、δＩ＝１．１、δＰ＝０．８、δＢ＝０．９とすることで、良好な特性が得られた。これ以外に、入力ストリームをデコードする際に得られる画像の特徴量を利用して、ε、δの値を決定するようにしてもよい。たとえば、数９式に示すように、入力ストリームのＡｃｔｉｖｉｔｙ値（ａｃｔ値）や、動き評価値（ｓａｄ値）に基づいてε、δの値を決定するようにしてもよい。
【００５１】
【数９】
2012138943.tif 000011
【００５２】
数９式中、ａは、ａｃｔ値、ｓはｓａｄ値を示しており、εＩ（ａ，ｓ）、εＰ（ａ，ｓ）、εＢ（ａ，ｓ）、−δＩ（ａ，ｓ）、−δＰ（ａ，ｓ）、−δＢ（ａ，ｓ）は、ａｃｔ値およびｓａｄ値をパラメータとして、εおよびδの値が算出されることを示している。
【００５３】
Ａｃｔｉｖｉｔｙ値は、マクロブロック内の画素平均値とマクロブロック内の各画素の画素値との差分絶対値和をマクロブロックごとに計算したものである。つまり、Ａｃｔｉｖｉｔｙ値は、マクロブロック内の画素のばらつき度合い示す評価値である。ＭＰＥＧ２の符号量制御モデルＴＭ５などで用いられるＡｃｔｉｖｉｔｙ値と同様である。動き評価値（ｓａｄ値）は、マクロブロックごとに参照画像マクロブロック内の画素とフレーム間差分絶対値和を計算したものである。つまり、マクロブロックの各画素と、参照画像マクロブロックの各画素とを比較し、同じ座標位置にある画素同士の画素値差分の絶対値和を算出したものである。
【００５４】
より一般的には、第ｎ期間における画像の特徴量をＩＬｎとすると、ｆＩ（ｘ）、ｆＰ（ｘ）、ｆＢ（ｘ）は、それぞれ数１０式で表される。
【００５５】
【数１０】
2012138943.tif 000012
【００５６】
数１０式中、εＩ（ＩＬｎ）、εＰ（ＩＬｎ）、εＢ（ＩＬｎ）、−δＩ（ＩＬｎ）、−δＰ（ＩＬｎ）、−δＢ（ＩＬｎ）は、それぞれ、画像の特徴量ＩＬｎをパラメータとして、係数ε、δが決定されることを示している。
【００５７】
以下、４つのレート制御方法（Ａ）〜（Ｄ）について説明する。
【００５８】
＜２−１．レート制御方法（Ａ）＞
まず、レート制御方法（Ａ）に関して、第２ストリームの量子化ステップ値Ｑを算出するための量子化ステップ変換係数αｎの算出方法を説明する。トランスコーダ１は、第ｎ期間経過時において、量子化ステップ変換係数αｎ＋１を算出する。
【００５９】
数１１式は、量子化ステップ変換係数αｎ＋１を算出するための数式を示している。数１１式中、（Ｔ−Ｃｎ）は、第２ストリームの全体目標ビットレートＴから変換済みの第ｎ期間における出力平均ビットレートＣｎを減算したものである。この値を変動係数と呼ぶことにする。ｋは、変動係数を調整する調整係数であり、正の値が用いられる。
【００６０】
【数１１】
2012138943.tif 000013
【００６１】
このように、数６式で求められたα１に対して、変動係数を加算することで、量子化ステップ値の比が目標へと近づくように調整するのである。この意味で、量子化ステップ変換係数の初期値α１は、基準変換係数と呼ぶことができる。
【００６２】
数１１式を用いて、量子化ステップ変換係数αｎ＋１が算出されると、数５式により、第２ストリームの第（ｎ＋１）期間における量子化ステップ値Ｑが求められるのである。
【００６３】
上記数１１式において変動係数を算出する際、第ｎ期間における出力平均ビットレートＣｎを用いた。ここで、数１２式で示すように、出力平均ビットレートＣｎに代えて、第（ｎ−Ｍ＋１）期間から第ｎ期間における期間平均ビットレートＡＣｎ（Ｍ）用いても良い。
【００６４】
【数１２】
2012138943.tif 000014
【００６５】
これにより、局所的なＣｎの変化に大きく左右されることなく、変動係数を緩やかに制御することができる。上述したように、期間平均ビットレートＡＣｎ（Ｍ）としては、平均値算出部７が算出した３つの期間平均ビットレートＡＣｎ（Ｍ１），ＡＣｎ（Ｍ２），ＡＣｎ（Ｍ３）のうちいずれかの平均値が選択される。つまり、バッファ期間としてＭ１，Ｍ２，Ｍ３のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【００６６】
また、上記数１１式において変動係数を算出する際、第２ストリームの全体目標ビットレートＴから変換済みの第ｎ期間における出力平均ビットレートＣｎを減算したものを採用した。ここで、数１３式に示すように、減算値をさらに第１のストリームの第ｎ期間における入力平均ビットレートＳｎで除算するようにしてもよい。
【００６７】
【数１３】
2012138943.tif 000015
【００６８】
これにより、第１ストリームのビットレートが局所的に大きく変化した場合などに、変動係数が大きく影響を受けることを回避できるのである。
【００６９】
さらに、数１２式と数１３式を用いて説明した変動係数の算出方法の両方の考え方を取り入れるようにしてもよい。つまり、数１４式に示すように、出力平均ビットレートＣｎに代えて、期間平均ビットレートＡＣｎ（Ｍ）を用い、さらに、減算値を入力平均ビットレートＳｎで除算するのである。これにより、変動係数をより緩やかに制御することができる。
【００７０】
【数１４】
2012138943.tif 000016
【００７１】
また、数１３式では、全体目標ビットレートＴから出力平均ビットレートＣｎを減算し、その減算値をビットレートＳｎで除算するようにした。これに代えて、数１５式に示すように、減算値を、第（ｎ−Ｍ＋１）期間から第ｎ期間における第１ストリームの期間平均ビットレートＡＳｎ（Ｍ）で除算するようにしてもよい。これにより、第１ストリームのビットレートの局所的変換に影響されることなく、より緩やかに変動係数を制御することができる。上述したように、期間平均ビットレートＡＳｎ（Ｍ）としては、平均値算出部５が算出した３つの期間平均ビットレートＡＳｎ（Ｍ１），ＡＳｎ（Ｍ２），ＡＳｎ（Ｍ３）のうちいずれかの平均値が選択される。つまり、バッファ期間としてＭ１，Ｍ２，Ｍ３のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【００７２】
【数１５】
2012138943.tif 000017
【００７３】
また、数１６式で示したように、出力平均ビットレートＣｎに代えて、期間平均ビットレートＡＣｎ（Ｍ）を用い、入力平均ビットレートＳｎに代えて、期間平均ビットレートＡＳｎ（Ｍ）を用いても良い。これにより、さらに緩やかに変動係数を制御することが可能である。
【００７４】
【数１６】
2012138943.tif 000018
【００７５】
＜２−２．レート制御方法（Ｂ）＞
次に、レート制御方法（Ｂ）について説明する。レート制御方法（Ｂ）においても、量子化ステップ変換係数を算出し、数５式を用いて、第２ストリームの量子化ステップ値Ｑを算出する。ただし、量子化ステップ変換係数の算出方法がレート制御方法（Ａ）とは異なる。レート制御方法（Ａ）では、量子化ステップ変換係数の初期値α１を求め、これを基準変換係数として、基準変換係数からの変動を順次求めていくこととした。これに対して、レート制御方法（Ｂ）においては、第ｎ期間が終了した時点で、第（ｎ＋１）期間における第２ストリームの目標設定ビットレートＴｎ＋１を決定し、決定された目標設定ビットレートＴｎ＋１を用いて、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出するのである。
【００７６】
第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１が決定すると、数７式を用いて説明した場合と同様の方法で、量子化ステップ変換係数αｎ＋１が算出される。つまり、数８式〜数１０式で例示したような関数ｆを利用して、量子化ステップ変換係数αｎ＋１が算出される。具体的には、数１７式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と第ｎ期間の入力平均ビットレートＳｎの比を関数ｆに入力することで、量子化ステップ変換係数αｎ＋１を算出する。
【００７７】
【数１７】
2012138943.tif 000019
【００７８】
あるいは、数１８式で示すように、第ｎ期間における入力平均ビットレートＳｎに代えて、第（ｎ−Ｍ＋１）期間から第ｎ期間までの期間平均ビットレートＡＳｎ（Ｍ）用いて量子化ステップ変換係数αｎ＋１を算出してもよい。上述したように、期間平均ビットレートＡＳｎ（Ｍ）としては、平均値算出部５が算出した３つの期間平均ビットレートＡＳｎ（Ｍ１），ＡＳｎ（Ｍ２），ＡＳｎ（Ｍ３）のうちいずれかの平均値が選択される。バッファ期間としてＭ１，Ｍ２，Ｍ３のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【００７９】
【数１８】
2012138943.tif 000020
【００８０】
数１９式は、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を算出する式である。つまり、トランスコーダ１が、第ｎ期間終了後に算出する第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を示している。具体的には、第ｎ期間の変換済みの第２ストリームの出力平均ビットレートＣｎを第ｎ期間の目標設定ビットレートＴｎで除算した値を目標比と考えると、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１は、第２ストリームの全体目標ビットレートＴを目標比で除算することで算出されるのである。
【００８１】
【数１９】
2012138943.tif 000021
【００８２】
数１９式中、ｋは正の係数であり、目標設定ビットレートＴｎ＋１を調整するための係数である。このように、Ｃｎ／Ｔｎにより第ｎ期間における目標との比を算出し、全体目標ビットレートＴを目標比で除算することで第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を調整し、全体として目標ビットレートに近づくよう制御するのである。
【００８３】
数１９式では、第ｎ期間の第２ストリームの出力平均ビットレートＣｎを目標設定ビットレートＴｎで除算した値を目標比として利用しているが、この目標比をさらに調整するようにしたのが、数２０式である。
【００８４】
【数２０】
2012138943.tif 000022
【００８５】
数２０式において、目標比にＳｎ−１／Ｓｎが乗算されている。Ｓｎ−１／Ｓｎは、第（ｎ−１）期間の第１ストリームの入力平均ビットレートＳｎ−１を、第ｎ期間の第１ストリームの入力平均ビットレートＳｎで除算した値であり、入力平均ビットレートの期間比と呼ぶことができる。つまり、目標比に期間比を乗算することで、目標比を調整しているのである。
【００８６】
このように目標比に期間比を乗算することで、局所的な目標比の変化を補正することができる。たとえば、入力平均ビットレートＳｎが局所的に小さく変化した場合には、それに伴い、目標比Ｃｎ／Ｔｎも小さく変動する場合がある。このような場合にも、期間比Ｓｎ−１／Ｓｎ（この場合、期間比が１より大きな値となる。）を乗算することで、目標比を調整し、目標設定ビットレートＴｎ＋１が大きく変動することを回避できるのである。逆に、入力平均ビットレートＳｎが局所的に大きく変化した場合には、期間比Ｓｎ−１／Ｓｎが１より小さい値となり、目標比が急激に大きくなることを抑制することができる。
【００８７】
数２０式では、第（ｎ−１）期間の第１ストリームの入力平均ビットレートＳｎ−１を、第ｎ期間の第１ストリームの入力平均ビットレートＳｎで除算した値を期間比とした。これに対して、第１ストリームの第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１を先読みできる場合には、入力平均ビットレートＳｎ＋１を利用してもよい。入力平均ビットレートＳｎ＋１を先読みできる場合とは、入力平均ビットレートＳｎ＋１に関する情報をバッファリングした上で、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を算出できる時間的余裕がある場合である。つまり、ある程度の処理遅延が許されるような場合である。数２１式に、入力平均ビットレートＳｎ＋１を用いて目標設定ビットレートＴｎ＋１を算出する式を示す。
【００８８】
【数２１】
2012138943.tif 000023
【００８９】
数２１式に示すように、期間比として、Ｓｎ／Ｓｎ＋１、つまり、第ｎ期間の第１ストリームの入力平均ビットレートＳｎを、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１で除算した値を用いている。このように、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１を利用することで、目標設定ビットレートＴｎ＋１をより高い精度で制御することが可能となる。つまり、より最新の入力情報を用いることで、目標ビットレートに対する最適制御を行うことができるのである。
【００９０】
期間比として、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１を利用した場合には、数１７式に代えて、数２２式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と、第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１の比を関数ｆに入力することで、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出するようにすればよい。
【００９１】
【数２２】
2012138943.tif 000024
【００９２】
また、数２０式では、期間比としてＳｎ−１／Ｓｎを利用した。これに代えて、第（ｎ−１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ−１（Ｍ）と、第ｎ期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ（Ｍ）の比を期間比として用いてもよい。つまり、数２０式において、期間比として、Ｓｎ−１／Ｓｎに代えて、ＡＳｎ−１（Ｍ）／ＡＳｎ（Ｍ）を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートＴｎ＋１を最適制御することが可能である。
【００９３】
あるいは、第１ストリームの第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１を先読みできる場合には、第ｎ期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ（Ｍ）と、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１（Ｍ）の比を期間比として用いてもよい。つまり、数２０式において、期間比として、Ｓｎ−１／Ｓｎに代えて、ＡＳｎ（Ｍ）／ＡＳｎ＋１（Ｍ）を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートＴｎ＋１を制御することが可能である。
【００９４】
期間比として、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１（Ｍ）を利用した場合には、数１８式に代えて、数２３式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１（Ｍ）の比を関数ｆに入力することで、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出するようにすればよい。
【００９５】
【数２３】
2012138943.tif 000025
【００９６】
制御レート方法（Ｂ）における目標設定ビットレートＴｎ＋１の計算方法を、数１９式、数２０式、数２１式などを用いて説明したが、これら数式を用いて説明した場合を含め制御レート方法（Ｂ）における全ての場合において、第ｎ期間の出力平均ビットレートＣｎに代えて、第（ｎ−Ｍ＋１）期間から第ｎ期間までの期間平均ビットレートＡＣｎ（Ｍ）を用いても良い。たとえば、数１９式、数２０式、数２１式などにおいて、Ｃｎに代えてＡＣｎ（Ｍ）を用いるのである。数１９式において、Ｃｎに代えてＡＣｎ（Ｍ）を用いた場合の第（Ｎ＋１）期間の目標設定ビットレートＴｎ＋１の演算式を数２４式に示す。これにより、目標設定ビットレートＴｎ＋１を、より緩やかに制御することが可能である。上述したように、期間平均ビットレートＡＣｎ（Ｍ）としては、平均値算出部７が算出した３つの期間平均ビットレートＡＣｎ（Ｍ１），ＡＣｎ（Ｍ２），ＡＣｎ（Ｍ３）のうちいずれかの平均値が選択される。つまり、バッファ期間としてＭ１，Ｍ２，Ｍ３のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【００９７】
【数２４】
2012138943.tif 000026
【００９８】
＜２−３．レート制御方法（Ｃ）＞
次に、レート制御方法（Ｃ）について説明する。レート制御方法（Ｃ）においても、量子化ステップ変換係数を算出し、数５式を用いて、第２ストリームの量子化ステップ値Ｑを算出する。また、レート制御方法（Ｃ）においても、レート制御方法（Ｂ）と同様、第ｎ期間が終了した時点で、第（ｎ＋１）期間における第２ストリームの目標設定ビットレートＴｎ＋１を決定し、決定された目標設定ビットレートＴｎ＋１を用いて、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出する。
【００９９】
第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１が決定すると、数７式を用いて説明した場合と同様の方法で、量子化ステップ変換係数αｎ＋１が算出される。つまり、数８式〜数１０式で例示したような関数ｆを利用して、量子化ステップ変換係数αｎ＋１が算出される。具体的には、数１７式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と第ｎ期間の入力平均ビットレートＳｎの比を関数ｆに入力することで、量子化ステップ変換係数αｎ＋１を算出する。あるいは、数１８式で示すように、入力平均ビットレートＳｎの比に代えて、第（ｎ−Ｍ＋１）期間から第ｎ期間までの期間平均ビットレートＡＳｎ（Ｍ）用いて量子化ステップ変換係数αｎ＋１を算出してもよい。ＡＳｎ（Ｍ）を用いる場合には、バッファ期間としてＭ１，Ｍ２，Ｍ３のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【０１００】
数２５式は、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を算出する式である。つまり、トランスコーダ１が、第ｎ期間終了後に算出する第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を表している。具体的には、第ｎ期間の目標設定ビットレートＴｎから第ｎ期間の変換済みの第２ストリームの出力平均ビットレートＣｎを減算した値を目標差と考えると、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１は、第２ストリームの全体目標ビットレートＴに目標差を加算することで算出されるのである。
【０１０１】
【数２５】
2012138943.tif 000027
【０１０２】
数２５式中、ｋは正の係数であり、目標設定ビットレートＴｎ＋１を調整するための係数である。このように、（Ｔｎ−Ｃｎ）により、第ｎ期間における目標との差を算出し、全体目標ビットレートＴに目標差を加算することで、出力ストリームが目標ビットレートに近づくような制御を行うのである。
【０１０３】
数２５式では、第ｎ期間の目標設定ビットレートＴｎから第ｎ期間の第２ストリームの出力平均ビットレートＣｎを減算した目標差を利用しているが、この目標差をさらに調整するようにしたのが、数２６式である。
【０１０４】
【数２６】
2012138943.tif 000028
【０１０５】
数２６式において、目標差にＳｎ／Ｓｎ−１が乗算されている。Ｓｎ／Ｓｎ−１は、第ｎ期間の第１ストリームの入力平均ビットレートＳｎを、第（ｎ−１）期間の第１ストリームの入力平均ビットレートＳｎ−１で除算した期間比である。つまり、目標差に期間比を乗算することで、目標差を調整しているのである。
【０１０６】
このように目標差に期間比を乗算することで、局所的な目標差の変化を補正することができる。たとえば、第ｎ期間の入力平均ビットレートＳｎが局所的に第（ｎ−１）期間と比べて小さく変化した場合には、それに伴い、目標差（Ｔｎ−Ｃｎ）が大きく変動する場合がある。このような場合にも、期間比Ｓｎ／Ｓｎ−１（この場合、期間比が１より小さな値となる。）を乗算することで、目標差を調整し、目標設定ビットレートＴｎ＋１が大きく変動することを回避できるのである。
【０１０７】
数２６式では、第ｎ期間の第１ストリームの入力平均ビットレートＳｎを、第（ｎ−１）期間の第１ストリームの入力平均ビットレートＳｎ−１で除算した値を期間比とした。これに対して、第１ストリームの第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１を先読みできる場合には、入力平均ビットレートＳｎ＋１を利用してもよい。入力平均ビットレートＳｎ＋１を先読みできる場合とは、上述したように、入力平均ビットレートＳｎ＋１に関する情報をバッファリングした上で、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を算出できる時間的余裕がある場合である。この場合には、数２６式において、期間比として、Ｓｎ／Ｓｎ−１に代えて、Ｓｎ＋１／Ｓｎを用いるのである。このように、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１を利用することで、目標設定ビットレートＴｎ＋１をより高い精度で制御することが可能となる。
【０１０８】
期間比として、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１を利用した場合には、数１７式に代えて、数２２式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と、第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１の比を関数ｆに入力することで、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出するようにすればよい。
【０１０９】
また、数２６式では、期間比としてＳｎ／Ｓｎ−１を利用した。これに代えて、第ｎ期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ（Ｍ）と、第（ｎ−１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ−１（Ｍ）の比を期間比として用いてもよい。つまり、数２６式において、期間比として、Ｓｎ／Ｓｎ−１に代えて、ＡＳｎ（Ｍ）／ＡＳｎ−１（Ｍ）を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートＴｎ＋１を最適制御することが可能である。
【０１１０】
あるいは、第１ストリームの第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１を先読みできる場合には、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１（Ｍ）と、第ｎ期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ（Ｍ）の比を期間比として用いてもよい。つまり、数２６式において、期間比として、Ｓｎ／Ｓｎ−１に代えて、ＡＳｎ＋１（Ｍ）／ＡＳｎ（Ｍ）を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートＴｎ＋１を制御することが可能である。
【０１１１】
期間比として、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１（Ｍ）を利用した場合には、数１８式に代えて、数２３式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１（Ｍ）の比を関数ｆに入力することで、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出するようにすればよい。
【０１１２】
また、制御レート方法（Ｃ）における目標設定ビットレートＴｎ＋１の計算方法を、数２５式、数２６式などを用いて説明したが、これら数式を用いて説明した場合を含め、この制御レート方法（Ｃ）において説明した全ての計算方法において、第ｎ期間の出力平均ビットレートＣｎに代えて、第（ｎ−Ｍ＋１）期間から第ｎ期間までの期間平均ビットレートＡＣｎ（Ｍ）を用いても良い。たとえば、数２５式、数２６式などにおいて、Ｃｎに代えてＡＣｎ（Ｍ）を用いても良い。数２５式において、Ｃｎに代えてＡＣｎ（Ｍ）を用いて目標設定ビットレートＴｎ＋１を求める演算式を数２７式に示す。これにより、目標設定ビットレートＴｎ＋１を、より緩やかに制御することが可能である。そして、バッファ期間としてＭ１，Ｍ２，Ｍ３のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【０１１３】
【数２７】
2012138943.tif 000029
【０１１４】
＜２−４．レート制御方法（Ｄ）＞
次に、レート制御方法（Ｄ）について説明する。レート制御方法（Ｄ）においても、レート制御方法（Ｃ）と同様、第ｎ期間が終了した時点で、第（ｎ＋１）期間における第２ストリームの目標設定ビットレートＴｎ＋１を決定し、決定された目標設定ビットレートＴｎ＋１を用いて、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出する。レート制御方法（Ｄ）においては、第（ｎ＋１）期間における第２ストリームの目標設定ビットレートＴｎ＋１の決定の方法が、レート制御方法（Ｃ）と異なる。
【０１１５】
数２８式は、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１を算出する式である。第ｎ期間の目標設定ビットレートＴｎから第ｎ期間の変換済みの第２ストリームの出力平均ビットレートＣｎを減算した値を目標差として利用する点も、レート制御方法（Ｃ）と同様である。レート制御方法（Ｃ）では、この目標差に期間比を乗算することで、目標差を調整したが、数２８式に示すように、レート制御方法（Ｄ）では、目標差に期間差を乗算するようにしている。
【０１１６】
【数２８】
2012138943.tif 000030
【０１１７】
数２８式において、目標差に（Ｓｎ−Ｓｎ−１）が乗算されている。（Ｓｎ−Ｓｎ−１）は、第ｎ期間の第１ストリームの入力平均ビットレートＳｎから、第（ｎ−１）期間の第１ストリームの入力平均ビットレートＳｎ−１を減算した期間差である。つまり、目標差に期間差を乗算することで、目標差を調整しているのである。なお、数２８式中、係数ｋは、目標設定ビットレートＴｎ＋１を調整するための正の係数である。
【０１１８】
このように目標差に期間差を乗算することで、局所的な目標差の変化を補正することができる。たとえば、入力平均ビットレートＳｎが次第に小さく変化しているような場合には、それに伴い、Ｃｎが小さくなる場合があり、目標差（Ｔｎ−Ｃｎ）が正の値になる。このような場合には、期間差（Ｓｎ−Ｓｎ−１）が負の値となり、目標設定ビットレートＴｎ＋１が大きく設定されないよう補正するのである。つまり、入力平均ビットレートＳｎが小さく変化しているような場合には、その変化に反して、目標設定ビットレートＴｎ＋１が大きく変化しないよう制御するのである。
【０１１９】
数２８式で説明した目標設定ビットレートＴｎ＋１の算出方法では、目標差（Ｔｎ−Ｃｎ）に期間差を乗算するようにした。これに対して、数２９式に示すように、目標差に期間差を加算するようにしてもよい。数２５式中、ｈは、目標設定ビットレートＴｎ＋１を調整するための正の係数である。このように、期間差を加算することで、乗算した場合とは異なる特性で目標設定ビットレートＴｎ＋１を制御することが可能である。
【０１２０】
【数２９】
2012138943.tif 000031
【０１２１】
数２８式では、第ｎ期間の第１ストリームの入力平均ビットレートＳｎから第（ｎ−１）期間の第１ストリームの入力平均ビットレートＳｎ−１を減算した値を期間差とした。そして、目標差に期間差を乗算するようにした。これに対して、第１ストリームの第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１を先読みできる場合には、入力平均ビットレートＳｎ＋１を利用してもよい。この場合には、数２８式において、期間差として、（Ｓｎ−Ｓｎ−１）に代えて、（Ｓｎ＋１−Ｓｎ）を用いるのである。このように、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１を利用することで、目標設定ビットレートＴｎ＋１をより高い精度で制御することが可能となる。
【０１２２】
また、数２９式においても、第ｎ期間の第１ストリームの入力平均ビットレートＳｎから第（ｎ−１）期間の第１ストリームの入力平均ビットレートＳｎ−１を減算した値を期間差とした。そして、目標差に期間差を加算するようにした。これに対して、第１ストリームの第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１を先読みできる場合には、入力平均ビットレートＳｎ＋１を利用してもよい。この場合には、数２９式において、期間差として、（Ｓｎ−Ｓｎ−１）に代えて、（Ｓｎ＋１−Ｓｎ）を用いるのである。このように、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１を利用することで、目標設定ビットレートＴｎ＋１をより高い精度で制御することが可能となる。
【０１２３】
期間差として、第（ｎ＋１）期間の第１ストリームの入力平均ビットレートＳｎ＋１を利用した場合には、数２２式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と、第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１の比を関数ｆに入力することで、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出するようにすればよい。
【０１２４】
また、数２８式、数２９式では、期間差として（Ｓｎ−Ｓｎ−１）を利用した。これに代えて、第ｎ期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ（Ｍ）と、第（ｎ−１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ−１（Ｍ）の差を期間差として用いてもよい。つまり、数２８式、数２９式において、期間差として、（Ｓｎ−Ｓｎ−１）に代えて、（ＡＳｎ（Ｍ）−ＡＳｎ−１（Ｍ））を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートＴｎ＋１を最適制御することが可能である。そして、バッファ期間としてＭ１，Ｍ２，Ｍ３のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【０１２５】
あるいは、第１ストリームの第（ｎ＋１）期間の入力平均ビットレートＳｎ＋１を先読みできる場合には、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１（Ｍ）と、第ｎ期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ（Ｍ）の比を期間差として用いてもよい。つまり、数２８式、数２９式において、期間差として、（Ｓｎ−Ｓｎ−１）に代えて、（ＡＳｎ＋１（Ｍ）−ＡＳｎ（Ｍ））を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートＴｎ＋１を制御することが可能である。
【０１２６】
期間差として、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１（Ｍ）を利用した場合には、数２３式で示すように、第（ｎ＋１）期間の目標設定ビットレートＴｎ＋１と、第（ｎ＋１）期間を含む過去Ｍ期間の期間平均ビットレートＡＳｎ＋１（Ｍ）の比を関数ｆに入力することで、第（ｎ＋１）期間の量子化ステップ変換係数αｎ＋１を算出するようにすればよい。
【０１２７】
また、レート制御方法（Ｄ）における目標設定ビットレートＴｎ＋１の計算方法を、数２８式、数２９式などを用いて説明したが、これら数式を用いて説明した場合を含めレート制御方法（Ｄ）で説明した全ての計算方法において、第ｎ期間の出力平均ビットレートＣｎに代えて、第（ｎ−Ｍ＋１）期間から第ｎ期間までの期間平均ビットレートＡＣｎ（Ｍ）を用いても良い。数２８式において、Ｃｎに代えてＡＣｎ（Ｍ）を用いて目標設定ビットレートＴｎ＋１を算出する演算式を数３０式に示す。また、数２９式において、Ｃｎに代えてＡＣｎ（Ｍ）を用いて目標設定ビットレートＴｎ＋１を算出する演算式を数３１式に示す。これにより、目標設定ビットレートＴｎ＋１を、より緩やかに制御することが可能である。そして、バッファ期間としてＭ１，Ｍ２，Ｍ３のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【０１２８】
【数３０】
2012138943.tif 000032
【０１２９】
【数３１】
2012138943.tif 000033
【０１３０】
｛３．期間平均ビットレートＡＳｎ（Ｍ）、ＡＣｎ（Ｍ）の選択方法｝
上述したように、レート制御方法（Ａ）〜（Ｄ）において、エンコーダ３は、様々な態様で、期間平均ビットレートＡＳｎ（Ｍ）、ＡＣｎ（Ｍ）をパラメータとして用いて量子化ステップ値Ｑを算出した。
【０１３１】
そして、上述したように、エンコーダ３が、期間平均ビットレートＡＳｎ（Ｍ）をパラメータとして用いる場合には、期間平均ビットレートＡＳｎ（Ｍ１），期間平均ビットレートＡＳｎ（Ｍ２），期間平均ビットレートＡＳｎ（Ｍ３）の中からいずれかの平均値を選択し、量子化ステップ値Ｑの計算用パラメータとして用いる。また、エンコーダ３が、期間平均ビットレートＡＣｎ（Ｍ）をパラメータとして用いる場合には、期間平均ビットレートＡＣｎ（Ｍ１），期間平均ビットレートＡＣｎ（Ｍ２），期間平均ビットレートＡＣｎ（Ｍ３）の中からいずれかの平均値を選択し、量子化ステップ値Ｑの計算用パラメータとして用いる。
【０１３２】
ここで、期間平均ビットレートＡＳｎ（Ｍ１），ＡＣｎ（Ｍ１）をパラメータとして用いる場合には、符号量制御のフィードバックの応答期間を短く設定することになる。つまり、ビットレートの一定化に重点を置いた制御であり、いわゆるＣＢＲ（Ｃｏｎｓｔａｎｔ  Ｂｉｔ  Ｒａｔｅ）制御に近い制御となる。
【０１３３】
一方、期間平均ビットレートＡＳｎ（Ｍ３），ＡＣｎ（Ｍ３）をパラメータとして用いる場合には、符号量制御のフィードバックの応答期間を長く設定することになる。つまり、画質に重点を置いた制御であり、いわゆるＶＢＲ（Ｖａｒｉａｂｌｅ  Ｂｉｔ  Ｒａｔｅ）制御に近い制御となる。
【０１３４】
期間平均ビットレートＡＳｎ（Ｍ２），ＡＣｎ（Ｍ２）をパラメータとして用いる場合には、上記２つの制御の中間の特性を有する制御となる。
【０１３５】
エンコーダ３は、エンコード処理を行いつつ、状況に応じて、パラメータとして用いる期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）を切り替えるのである。つまり、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）の算出に用いるバッファ期間をＭ１，Ｍ２，Ｍ３の間で切り替える。
【０１３６】
たとえば、出力ストリームの符号量の変動が激しくなった場合には、エンコーダ３は、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）として、期間平均ビットレートＡＳｎ（Ｍ３），ＡＣｎ（Ｍ３）を選択する。つまり、出力平均ビットレートＣｎが、目標ビットレートＴを中心に上下に激しく振動するような場合である。このような場合には、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）の計算期間を長くすることで、出力平均ビットレートＣｎの振動を吸収するように制御するのである。
【０１３７】
たとえば、出力ストリームの画質劣化が大きい場合には、エンコーダ３は、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）として、期間平均ビットレートＡＳｎ（Ｍ３），ＡＣｎ（Ｍ３）を選択する。つまり、入力ストリームの画像と出力ストリームの画像とのＳＮ比が小さくなった場合である。このような場合には、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）の計算期間を長くすることで、比較的長い期間のビットレートを一定に保持するよう制御し、その期間内で、ある程度ビットレートの自由度を持たせることができ、画質を優先することができる。
【０１３８】
また、通信路の帯域に余裕があれば、比較的長い期間のビットレートを一定に保持するようにすれば、その期間内で、ある程度ビットレートの自由度を持たせることができ、画質を優先することができる。つまり、エンコーダ３は、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）として、期間平均ビットレートＡＳｎ（Ｍ３），ＡＣｎ（Ｍ３）を選択する。
【０１３９】
一方、通信路の帯域に余裕がなければ、短い期間のビットレートを一定に保持し、円滑な通信を優先する必要がある。つまり、エンコーダ３は、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）として、期間平均ビットレートＡＳｎ（Ｍ１），ＡＣｎ（Ｍ１）を選択する。
【０１４０】
通信路の帯域の状態が、上記の２つの状態にあてはまらず中間の状態であれば、期間平均ビットレートＡＳｎ（Ｍ２），ＡＣｎ（Ｍ２）を選択すればよい。
【０１４１】
このような制御を行うために、トランスコーダ１が、通信路の帯域の状態を検出する機能を備えればよい。エンコーダ３は、通信路の帯域を予め設定しておいた条件と比較し、状態に応じて、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）として選択するパラメータを適応的に選択するのである。
【０１４２】
また、画質に対するユーザの要求が高い場合には、比較的長い期間のビットレートを一定に保持するようにし、その期間内で、ある程度ビットレートの自由度を持たせる必要がある。つまり、エンコーダ３は、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）として、期間平均ビットレートＡＳｎ（Ｍ３），ＡＣｎ（Ｍ３）を選択する。
【０１４３】
一方、画質に対するユーザの要求が低ければ、短い期間のビットレートを一定に保持することで、ビットレートの一定化に重点を置くことができる。つまり、エンコーダ３は、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）として、期間平均ビットレートＡＳｎ（Ｍ１），ＡＣｎ（Ｍ１）を選択する。
【０１４４】
画質に対するユーザの要求が中程度であれば、期間平均ビットレートＡＳｎ（Ｍ２），ＡＣｎ（Ｍ２）を選択すればよい。
【０１４５】
ユーザは、トランスコーダ１に対して出力ストリームの画質レベルの設定を行うことが可能である。エンコーダ３は、ユーザにより設定された画質レベルの設定値に応じて、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）として選択するパラメータを選択する。ユーザが、エンコード処理の途中で画質レベルの設定値を変更した場合には、それに応じて、選択するパラメータも変更される。
【０１４６】
あるいは、ユーザが、直接的に、期間平均ビットレートＡＳｎ（Ｍ），ＡＣｎ（Ｍ）として選択するパラメータを選択するようにしてもよい。
【０１４７】
また、エンコーダ３が、ディスクの空き容量に応じてパラメータを適応的に選択してもよい。たとえば、ディスクの空き容量が非常に小さくなった場合には、期間平均ビットレートＡＳｎ（Ｍ１），ＡＣｎ（Ｍ１）を選択し、ビットレートの一定化を早急に行うよう制御すればよい。
【０１４８】
このように、本実施の形態においては、ストリームの符号量バッファ期間を可変とすることで、符号量制御におけるフィードバック制御の応答の速さを制御することが可能となった。これにより、ビットレートの一定化という目的と、画質の向上という目的のバランスをとりつつ、符号量を制御することが可能となる。
【０１４９】
なお、上記の実施の形態においては、Ｍ１，Ｍ２，Ｍ３の３つの期間の平均値を算出して用いるようにしたが、これは一例である。２つの期間の平均値を利用してもよいし、４つ以上の期間の平均値を利用してもよい。
【０１５０】
また、平均値算出部５，７は、常に、Ｍ１，Ｍ２，Ｍ３の期間に対応する３種類の平均値を計算し、メモリに格納するようにしてもよいし、選択された期間に対応する平均値のみを計算するようにしてもよい。
【０１５１】
本実施の形態においては、ストリームの符号量バッファ期間を可変とし、バッファ期間内のストリームのビットレートの平均値ＡＳｎ（Ｍ），ＡＣｎ（Ｍ）を利用した。つまり、数１式〜数４式に示したように、バッファ期間内の基準値として入力平均ビットレートＳｎあるいは出力平均ビットレートＣｎの平均値を利用した。この他の例として、たとえば、バッファ期間内の基準値として、ビットレートの中央値あるいは重み付けされた平均値などを用いてもよい。中央値を用いる場合、第（ｎ−Ｍ＋１）期間から第ｎ期間までの入力平均ビットレートＳｎあるいは出力平均ビットレートＣｎの中央値を基準値として利用する。重み付けされた平均値を用いる場合には、たとえば、第ｎ期間に近い期間のビットレートに高い重み付けした上で平均値をとる方法などが考えられる。これら他の基準値を利用する場合にも、上述した実施の形態と同様、バッファ期間として異なる期間を所定の条件やユーザ操作により設定することで、フィードバック制御の応答の速さを制御することができる。
【符号の説明】
【０１５２】
１    トランスコーダ
２    デコーダ
３    エンコーダ
４，６    バッファ
５，７    平均値算出部
ＡＣｎ（Ｍ），ＡＣｎ（Ｍ１〜Ｍ３）    期間平均ビットレート
ＡＳｎ（Ｍ），ＡＳｎ（Ｍ１〜Ｍ３）    期間平均ビットレート
Ｃｎ  出力平均ビットレート
Ｌｎ  制御単位期間
Ｐ  量子化ステップ値
Ｑ  量子化ステップ値
Ｓ    入力全体ビットレート
Ｓｎ  入力平均ビットレート
Ｔ    全体目標ビットレート
Ｔｎ  目標設定ビットレート
αｎ  量子化ステップ変換係数
【図１】
2012138943.tif 000034
【図２】
2012138943.tif 000035
【図３】
2012138943.tif 000036
【図４】
2012138943.tif 000037