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