説明

トランスコーダ

【課題】制御単位期間内における入力ストリームのビットレートを大きく変動させることなく、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御することを目的とする。
【解決手段】入力ストリームのGOP内のIピクチャフレームの比率が0.2以下である場合には、GOPを制御単位期間と決定する。GOP内のIピクチャフレームの比率が0.2を超える場合には、比率が0.2以下となるまで後続のGOPを連結し、連結された複数のGOPを制御単位期間とする。制御単位期間を補正した上で、各制御単位期間の入力平均ビットレートSnを求め、入力平均ビットレートSnを含む入力ストリームの情報を用いて、出力ストリームの量子化ステップ値を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力ストリームをデコードして異なる出力ストリームに変換するトランスコーダに関し、詳しくは、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御する技術に関する。
【背景技術】
【0002】
デジタル放送で配信される画像や、DVD、ハードディスクなどに格納される画像などは、各種の符号化方式に従って圧縮される。これは、伝送帯域を圧迫しないため、伝送速度を上げるため、あるいは、記憶サイズを小さくするなどの目的のためである。
【0003】
画像の符号化方式には、MPEG2やH.264など様々な規格が存在する。そして、入力した符号化画像の符号量を削減するなどの目的で符号化方式の変換が行われる場合がある。トランスコーダは、入力した符号化画像を一旦デコードする。そして、トランスコーダは、デコードした画像を、再び異なる符号化方式(あるいは同じ符号化方式)で符号化する。このようにして、トランスコーダは、出力ストリームのビットレートを制御するのである。
【0004】
下記特許文献1は、第1の圧縮符号化方式で圧縮された画像を第2の圧縮符号化方式で圧縮された画像に変換するトランスコーダに関するものである。このトランスコーダは、第1の圧縮符号化方式で圧縮された画像を復号する際に発生する中間情報を用いて、第2の圧縮符号化方式で画像を圧縮するようにしている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−74635号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来のビットレート変換技術では、入力ストリームのGOP(Group of pictures)単位のビットレートや出力ストリームのGOP単位の目標ビットレートに基づいて、ビットレート変換が行われている。つまり、GOP単位をレート制御の制御単位期間として設定している。そして、入力ストリームのGOPのピクチャ構成がシーケンス全体において、ある程度一定であることが前提とされており、入力ストリームのGOP単位のビットレートが急激に変動することは想定されていない。
【0007】
このため、シーケンスの途中で一時的にGOPを構成するフレーム数が少なくなった場合、あるいはGOPのピクチャ構成が、PピクチャフレームやIピクチャフレームが連続して挿入される構成となった場合などには、制御単位期間内のIピクチャフレームの挿入比率が高くなる。
【0008】
一般的に、MPEG2においてピクチャフレームのビット比率はI:P:B=5:3:1とされている。したがって、一時的に、GOP内のIピクチャフレームやPピクチャフレームの挿入比率が高くなった場合、その制御単位期間のビットレートが、入力ストリームの平均ビットレートよりも一時的に急激に増加し、レート変換制御が不安定になるという問題があった。
【0009】
そこで、本発明は前記問題点に鑑み、制御単位期間内における入力ストリームのビットレートを大きく変動させることなく、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するため、請求項1記載の発明は、第1のストリームを第2のストリームに変換するトランスコーダであって、制御単位期間を決定する期間決定手段と、決定された制御単位期間ごとの第1のストリームのビットレートを取得する手段と、取得した制御単位期間ごとの第1のストリームのビットレートを含む第1のストリームの情報を用いて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、を備え、前記期間決定手段は、各制御単位期間に含まれるIピクチャフレームの比率が所定の比率以下となるよう各制御単位期間を決定することを特徴とする。
【0011】
請求項2記載の発明は、請求項1に記載のトランスコーダにおいて、前記期間決定手段は、GOP内のIピクチャフレームの比率が所定の割合以下である場合には、GOPを制御単位期間として決定し、GOP内のIピクチャフレームの比率が所定の割合を超える場合には、Iピクチャフレームの比率が所定の比率以下となるまで複数のGOPを連結し、連結された複数のGOPを制御単位期間として決定することを特徴とする。
【0012】
請求項3記載の発明は、請求項2に記載のトランスコーダにおいて、前記期間決定手段は、I、P、Bピクチャフレームにそれぞれ所定の重み付けを設定し、重み付けを加味した上で、GOP内のIピクチャフレームの比率が所定の比率以下となるか否かを判断することを特徴とする。
【0013】
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載のトランスコーダにおいて、さらに、第N+1期間の第2のストリームの目標ビットレートと第N期間以前の第1のストリームのビットレートとの比に基づいて第N+1期間の期間変換係数を算出する期間変換係数算出手段、を備え、前記量子化ステップ値算出手段は、第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段、を含むことを特徴とする。
【0014】
請求項5記載の発明は、請求項4に記載のトランスコーダにおいて、さらに、第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートと、第N期間の第2のストリームの目標ビットレートに基づいて第N+1期間の第2のストリームの目標ビットレートを決定する目標ビットレート決定手段、を備えることを特徴とする。
【0015】
請求項6記載の発明は、請求項5に記載のトランスコーダにおいて、第N期間以前の変換済みの第2のストリームのビットレートと第N期間の第2のストリームの目標ビットレートとの比を目標比とすると、前記目標ビットレート決定手段は、第2のストリームの全体の目標ビットレートと前記目標比との比に基づいて第N+1期間の第2のストリームの目標ビットレートを算出することを特徴とする。
【0016】
請求項7記載の発明は、請求項6に記載のトランスコーダにおいて、第N−1期間の第1のストリームのビットレートと第N期間の第1のストリームのビットレートの比を期間比とすると、前記目標ビットレート決定手段は、前記目標比に前記期間比を乗算し、前記目標比を調整することを特徴とする。
【0017】
請求項8記載の発明は、請求項6に記載のトランスコーダにおいて、第N期間の第1のストリームのビットレートと第N+1期間の第1のストリームのビットレートの比を期間比とすると、前記目標ビットレート決定手段は、前記目標比に前記期間比を乗算し、前記目標比を調整することを特徴とする。
【0018】
請求項9記載の発明は、請求項5に記載のトランスコーダにおいて、第N期間の第2のストリームの目標ビットレートと第N期間以前の変換済みの第2のストリームのビットレートとの差に基づいて算出される値を目標差とすると、前記目標ビットレート決定手段は、第2のストリームの全体の目標ビットレートに前記目標差を加算することで、第N+1期間の第2のストリームの目標ビットレートを算出することを特徴とする。
【0019】
請求項10記載の発明は、請求項9に記載のトランスコーダにおいて、第N期間の第1のストリームのビットレートと第N−1期間の第1のストリームのビットレートの比を期間比とすると、前記目標ビットレート決定手段は、前記目標差に前記期間比を乗算し、前記目標差を調整することを特徴とする。
【0020】
請求項11記載の発明は、請求項9に記載のトランスコーダにおいて、第N期間の第1のストリームのビットレートと第N−1期間の第1のストリームのビットレートの差に基づいて算出される値を期間差とすると、前記目標ビットレート決定手段は、前記目標差に前記期間差を乗算し、前記目標差を調整することを特徴とする。
【0021】
請求項12記載の発明は、請求項9に記載のトランスコーダにおいて、第N期間の第1のストリームのビットレートと第N−1期間の第1のストリームのビットレートの差に基づいて算出される値を期間差とすると、前記目標ビットレート決定手段は、前記目標差に前記期間差を加算し、前記目標差を調整することを特徴とする。
【発明の効果】
【0022】
本発明のトランスコーダは、各制御単位期間が所定のフレーム数以上となるよう各制御単位期間を決定し、制御単位期間ごとの第1のストリームのビットレートを含む第1のストリームの情報を用いて、第2のストリームの量子化ステップ値を算出する。これにより、制御単位期間ごとの第1のストリームのビットレートの変動を小さく抑えることができ、ビットレートの制御を適正に行うことが可能である。
【0023】
また、本発明のトランスコーダは、制御単位期間内のIピクチャフレームの比率が所定の割合以下となるよう各制御単位期間を決定し、制御単位期間ごとの第1のストリームのビットレートを含む第1のストリームの情報を用いて、第2のストリームの量子化ステップ値を算出する。これにより、制御単位期間ごとの第1のストリームのビットレートの変動を小さく抑えることができ、ビットレートの制御を適正に行うことが可能である。
【図面の簡単な説明】
【0024】
【図1】トランスコーダのブロック図である。
【図2】入力ストリーム(第1ストリーム)と出力ストリーム(第2ストリーム)の情報を制御単位期間ごとに示した図である。
【図3】第1の実施の形態に係る制御単位期間の補正方法(補正されない場合の例)を示す図である。
【図4】第1の実施の形態に係る制御単位期間の補正方法を示す図である。
【図5】第1の実施の形態に係る制御単位期間の補正方法を示す図である。
【図6】第1の実施の形態に係る制御単位期間の補正方法を示す図である。
【図7】第2の実施の形態に係る制御単位期間の補正方法(補正されない場合の例)を示す図である。
【図8】第2の実施の形態に係る制御単位期間の補正方法を示す図である。
【図9】第2の実施の形態に係る制御単位期間の補正方法を示す図である。
【図10】第2の実施の形態に係る制御単位期間の補正方法を示す図である。
【発明を実施するための形態】
【0025】
{1.トランスコーダの全体構成}
以下、図面を参照しつつ本発明の実施の形態について説明する。図1は、本実施の形態に係るトランスコーダ1のブロック図である。このトランスコーダ1は、デコーダ2とエンコーダ3とを備えている。
【0026】
デコーダ2は、第1ストリームを入力する。第1ストリームは、符号化画像のストリームである。デコーダ2は、第1ストリームをデコードし、非圧縮の画像データをエンコーダ3に出力する。エンコーダ3は、デコーダ2においてデコードされた非圧縮の画像データを再び符号化し、第2ストリームを出力するのである。
【0027】
たとえば、トランスコーダ1は、MPEG2で符号化された第1ストリームを入力し、H.264で符号化された第2ストリームを出力するなど、ストリームの符号化方式を変換する処理を行う。そして、変換処理を行う際、出力する第2ストリームのレート制御を最適に行えるよう本発明は工夫されている。あるいは、トランスコーダ1は、MPEG2で符号化された第1ストリームを入力し、再びMPEG2で符号化された第2ストリームを出力するなど、同じ符号化方式のストリームを出力する。このときにも、出力する第2ストリームのレート制御を最適に行えるよう本発明は工夫されている。
【0028】
なお、この後説明するレート制御方法(A)〜(D)における各演算処理は、デコーダ2およびエンコーダ3において実行される演算処理であるが、デコーダ2およびエンコーダ3における各演算処理は、ハードウェアにより実現されてもよいし、ソフトウェア処理により実現されていてもよい。つまり、デコーダ2およびエンコーダ3は、ハードウェア回路として構成されていてもよいし、CPUとメモリに格納されたプログラムとで構成されていてもよい。あるいは、一部の処理がハードウェアで処理され、一部の処理がソフトウェアで処理される形態であってもよい。
【0029】
{2.レート制御方法}
図2は、トランスコーダ1が入出力するストリームの制御単位期間ごとの情報を表した図である。トランスコーダ1は、処理時間軸を制御単位期間L(n=1,2・・・)に区分し、この制御単位期間Lを処理単位としてレート制御を行う。以下の説明において、適宜、制御単位期間Lを第n期間と呼ぶことにする。本実施の形態においては、基本的には、1GOPが制御単位期間Lとして設定されるが、後で説明するように入力ストリームの状態に応じて連続する複数のGOPが制御単位期間Lとして設定される。ただし、制御単位期間Lとしては、1フレーム、連続する複数フレームなどを設定することが可能である。
【0030】
第1ストリームの入力全体ビットレートSは、シーケンスヘッダなどから取得される。入力平均ビットレートSは、第n期間における第1ストリームの平均ビットレートである。トランスコーダ1は、バッファを備えており、M期間分の入力平均ビットレートSに関する情報を格納可能としている。つまり、バッファは、第(n−M+1)期間から第n期間までの入力平均ビットレートSに関する情報を格納可能としている。そして、期間平均ビットレートASは、第(n−M+1)期間から第n期間における入力平均ビットレートSを平均した値である。期間平均ビットレートASは、数1式で表される。
【0031】
【数1】

【0032】
デコーダ2は、入力した第1ストリームから、入力全体ビットレートS、入力平均ビットレートS、期間平均ビットレートAS、第n期間における量子化ステップ値Pなどの情報を取得し、これらの情報をエンコーダ3に与える。エンコーダ3は、これらの情報を利用して、画像の再符号化を行う。
【0033】
第2ストリームの全体目標ビットレートTは、ユーザにより設定される。たとえば、ユーザが、トランスコーダ1に設けられた図示せぬ操作部を用いて全体目標ビットレートTを設定する。目標設定ビットレートTは、第n期間における第2ストリームの目標ビットレートである。出力平均ビットレートCは、第n期間における変換済みの第2ストリームの平均ビットレートである。トランスコーダ1は、バッファを備えており、M期間分の出力平均ビットレートCに関する情報を格納可能としている。つまり、バッファは、第(n−M+1)期間から第n期間までの出力平均ビットレートCに関する情報を格納可能としている。そして、期間平均ビットレートACは、第(n−M+1)から第n期間における出力平均ビットレートCを平均した値である。期間平均ビットレートACは、数2式で表される。なお、この実施の形態では、期間平均ビットレートAS、ACを計算する場合に利用するバッファ期間を、制御単位期間Lと連動させたが、バッファ期間の設定方法は、これに限るものではない。たとえば、符号化が終わった時点の過去1フレーム、連続する過去複数フレームなどをバッファ期間として設定することが可能である。
【0034】
【数2】

【0035】
また、量子化ステップ変換係数αは、第(n−1)期間の終了時に算出される係数である。第1ストリームの量子化ステップ値そのもの、あるいは第1ストリームの量子化ステップ値から計算される値Pに、量子化ステップ変換係数αを乗算することで、第2ストリームの量子化ステップ値Qが決定される。この関係を数3式に示す。
【0036】
【数3】

【0037】
ここで、量子化ステップ変換係数αの初期値αは、数4式で与えられる。つまり、第2ストリームの全体目標ビットレートTを第1ストリームの入力全体ビットレートSで除算した値、つまりビットレート比を関数fに入力することによって、量子化ステップ変換係数の初期値αを求めている。
【0038】
【数4】

【0039】
ここで、関数fは、ビットレートの比から量子化ステップ値の比を求める関数であり、ビットレートの比をR、量子化ステップ値の比をRとすると、一般的に、数5式で表される。
【0040】
【数5】

【0041】
関数fの具体例を説明する。本実施の形態では、数6式に示すように、ピクチャあるいはマクロブロックのタイプI、P、B(Iピクチャ、Pピクチャ、Bピクチャ)それぞれに異なる特性で量子化ステップ値の比を制御できる関数を利用している。数6式中、f(x)、f(x)、f(x)は、それぞれI、P、Bピクチャに対応して適応される関数を示している。
【0042】
【数6】

【0043】
数6式においては、MPEG2からH.264へストリーム変換する場合のε、ε、ε、δ、δ、δの値として、実験等に基づいて算出された具体的数値を例示した。つまり、実験の結果、ε=2.1、ε=2.1、ε=1.3、δ=1.1、δ=0.8、δ=0.9とすることで、良好な特性が得られた。これ以外に、入力ストリームをデコードする際に得られる画像の特徴量を利用して、ε、δの値を決定するようにしてもよい。たとえば、数7式に示すように、入力ストリームのActivity値(act値)や、動き評価値(sad値)に基づいてε、δの値を決定するようにしてもよい。
【0044】
【数7】

【0045】
数7式中、aは、act値、sはsad値を示しており、ε(a,s)、ε(a,s)、ε(a,s)、−δ(a,s)、−δ(a,s)、−δ(a,s)は、act値およびsad値をパラメータとして、εおよびδの値が算出されることを示している。
【0046】
Activity値は、マクロブロック内の画素平均値とマクロブロック内の各画素の画素値との差分絶対値和をマクロブロックごとに計算したものである。つまり、Activity値は、マクロブロック内の画素のばらつき度合い示す評価値である。MPEG2の符号量制御モデルTM5などで用いられるActivity値と同様である。動き評価値(sad値)は、マクロブロックごとに参照画像マクロブロック内の画素とフレーム間差分絶対値和を計算したものである。つまり、マクロブロックの各画素と、参照画像マクロブロックの各画素とを比較し、同じ座標位置にある画素同士の画素値差分の絶対値和を算出したものである。
【0047】
より一般的には、第n期間における画像の特徴量をILnとすると、f(x)、f(x)、f(x)は、それぞれ数8式で表される。
【0048】
【数8】

【0049】
数8式中、ε(ILn)、ε(ILn)、ε(ILn)、−δ(ILn)、−δ(ILn)、−δ(ILn)は、それぞれ、画像の特徴量ILnをパラメータとして、係数ε、δが決定されることを示している。
【0050】
以下、4つのレート制御方法(A)〜(D)について説明する。
【0051】
<2−1.レート制御方法(A)>
まず、レート制御方法(A)に関して、第2ストリームの量子化ステップ値Qを算出するための量子化ステップ変換係数αの算出方法を説明する。トランスコーダ1は、第n期間経過時において、量子化ステップ変換係数αn+1を算出する。
【0052】
数9式は、量子化ステップ変換係数αn+1を算出するための数式を示している。数9式中、(T−C)は、第2ストリームの全体目標ビットレートTから変換済みの第n期間における出力平均ビットレートCを減算したものである。この値を変動係数と呼ぶことにする。kは、変動係数を調整する調整係数であり、正の値が用いられる。
【0053】
【数9】

【0054】
このように、数4式で求められたαに対して、変動係数を加算することで、量子化ステップ値の比が目標へと近づくように調整するのである。この意味で、量子化ステップ変換係数の初期値αは、基準変換係数と呼ぶことができる。
【0055】
数9式を用いて、量子化ステップ変換係数αn+1が算出されると、数3式により、第2ストリームの第(n+1)期間における量子化ステップ値Qが求められるのである。
【0056】
上記数9式において変動係数を算出する際、第n期間における出力平均ビットレートCを用いた。ここで、数10式で示すように、出力平均ビットレートCに代えて、第(n−M+1)期間から第n期間における期間平均ビットレートACを用いても良い。
【0057】
【数10】

【0058】
これにより、局所的なCの変化に大きく左右されることなく、変動係数を緩やかに制御することができる。
【0059】
また、上記数9式において変動係数を算出する際、第2ストリームの全体目標ビットレートTから変換済みの第n期間における出力平均ビットレートCを減算したものを採用した。ここで、数11式に示すように、減算値をさらに第1のストリームの第n期間における入力平均ビットレートSで除算するようにしてもよい。
【0060】
【数11】

【0061】
これにより、第1ストリームのビットレートが局所的に大きく変化した場合などに、変動係数が大きく影響を受けることを回避できるのである。
【0062】
さらに、数10式と数11式を用いて説明した変動係数の算出方法の両方の考え方を取り入れるようにしてもよい。つまり、数12式に示すように、出力平均ビットレートCに代えて、期間平均ビットレートACを用い、さらに、減算値を入力平均ビットレートSで除算するのである。これにより、変動係数をより緩やかに制御することができる。
【0063】
【数12】

【0064】
また、数11式では、全体目標ビットレートTから出力平均ビットレートCを減算し、その減算値をビットレートSで除算するようにした。これに代えて、数13式に示すように、減算値を、第(n−M+1)期間から第n期間における第1ストリームの期間平均ビットレートASで除算するようにしてもよい。これにより、第1ストリームのビットレートの局所的変換に影響されることなく、より緩やかに変動係数を制御することができる。
【0065】
【数13】

【0066】
また、数14式で示したように、出力平均ビットレートCに代えて、期間平均ビットレートACを用い、入力平均ビットレートSに代えて、期間平均ビットレートASを用いても良い。これにより、さらに緩やかに変動係数を制御することが可能である。
【0067】
【数14】

【0068】
<2−2.レート制御方法(B)>
次に、レート制御方法(B)について説明する。レート制御方法(B)においても、量子化ステップ変換係数を算出し、数3式を用いて、第2ストリームの量子化ステップ値Qを算出する。ただし、量子化ステップ変換係数の算出方法がレート制御方法(A)とは異なる。レート制御方法(A)では、量子化ステップ変換係数の初期値αを求め、これを基準変換係数として、基準変換係数からの変動を順次求めていくこととした。これに対して、レート制御方法(B)においては、第n期間が終了した時点で、第(n+1)期間における第2ストリームの目標設定ビットレートTn+1を決定し、決定された目標設定ビットレートTn+1を用いて、第(n+1)期間の量子化ステップ変換係数αn+1を算出するのである。
【0069】
第(n+1)期間の目標設定ビットレートTn+1が決定すると、数5式を用いて説明した場合と同様の方法で、量子化ステップ変換係数αn+1が算出される。つまり、数6式〜数8式で例示したような関数fを利用して、量子化ステップ変換係数αn+1が算出される。具体的には、数15式で示すように、第(n+1)期間の目標設定ビットレートTn+1と第n期間の入力平均ビットレートSの比を関数fに入力することで、量子化ステップ変換係数αn+1を算出する。
【0070】
【数15】

【0071】
あるいは、数16式で示すように、第n期間における入力平均ビットレートSに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートASを用いて量子化ステップ変換係数αn+1を算出してもよい。
【0072】
【数16】

【0073】
数17式は、第(n+1)期間の目標設定ビットレートTn+1を算出する式である。つまり、トランスコーダ1が、第n期間終了後に算出する第(n+1)期間の目標設定ビットレートTn+1を示している。具体的には、第n期間の変換済みの第2ストリームの出力平均ビットレートCを第n期間の目標設定ビットレートTで除算した値を目標比と考えると、第(n+1)期間の目標設定ビットレートTn+1は、第2ストリームの全体目標ビットレートTを目標比で除算することで算出されるのである。
【0074】
【数17】

【0075】
数17式中、kは正の係数であり、目標設定ビットレートTn+1を調整するための係数である。このように、C/Tにより第n期間における目標との比を算出し、全体目標ビットレートTを目標比で除算することで第(n+1)期間の目標設定ビットレートTn+1を調整し、全体として目標ビットレートに近づくよう制御するのである。
【0076】
数17式では、第n期間の第2ストリームの出力平均ビットレートCを目標設定ビットレートTで除算した値を目標比として利用しているが、この目標比をさらに調整するようにしたのが、数18式である。
【0077】
【数18】

【0078】
数18式において、目標比にSn−1/Sが乗算されている。Sn−1/Sは、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を、第n期間の第1ストリームの入力平均ビットレートSで除算した値であり、入力平均ビットレートの期間比と呼ぶことができる。つまり、目標比に期間比を乗算することで、目標比を調整しているのである。
【0079】
このように目標比に期間比を乗算することで、局所的な目標比の変化を補正することができる。たとえば、入力平均ビットレートSが局所的に小さく変化した場合には、それに伴い、目標比C/Tも小さく変動する場合がある。このような場合にも、期間比Sn−1/S(この場合、期間比が1より大きな値となる。)を乗算することで、目標比を調整し、目標設定ビットレートTn+1が大きく変動することを回避できるのである。逆に、入力平均ビットレートSが局所的に大きく変化した場合には、期間比Sn−1/Sが1より小さい値となり、目標比が急激に大きくなることを抑制することができる。
【0080】
数18式では、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を、第n期間の第1ストリームの入力平均ビットレートSで除算した値を期間比とした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。入力平均ビットレートSn+1を先読みできる場合とは、入力平均ビットレートSn+1に関する情報をバッファリングした上で、第(n+1)期間の目標設定ビットレートTn+1を算出できる時間的余裕がある場合である。つまり、ある程度の処理遅延が許されるような場合である。数19式に、入力平均ビットレートSn+1を用いて目標設定ビットレートTn+1を算出する式を示す。
【0081】
【数19】

【0082】
数19式に示すように、期間比として、S/Sn+1、つまり、第n期間の第1ストリームの入力平均ビットレートSを、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1で除算した値を用いている。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。つまり、より最新の入力情報を用いることで、目標ビットレートに対する最適制御を行うことができるのである。
【0083】
期間比として、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用した場合には、数15式に代えて、数20式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間の入力平均ビットレートSn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0084】
【数20】

【0085】
また、数18式では、期間比としてSn−1/Sを利用した。これに代えて、第(n−1)期間を含む過去M期間の期間平均ビットレートASn−1と、第n期間を含む過去M期間の期間平均ビットレートASの比を期間比として用いてもよい。つまり、数18式において、期間比として、Sn−1/Sに代えて、ASn−1/ASを用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートTn+1を最適制御することが可能である。
【0086】
あるいは、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、第n期間を含む過去M期間の期間平均ビットレートASと、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1の比を期間比として用いてもよい。つまり、数18式において、期間比として、Sn−1/Sに代えて、AS/ASn+1を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートTn+1を制御することが可能である。
【0087】
期間比として、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1を利用した場合には、数16式に代えて、数21式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0088】
【数21】

【0089】
制御レート方法(B)における目標設定ビットレートTn+1の計算方法を、数17式、数18式、数19式などを用いて説明したが、これら数式を用いて説明した場合を含め制御レート方法(B)における全ての場合において、第n期間の出力平均ビットレートCに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートACを用いても良い。たとえば、数17式、数18式、数19式などにおいて、Cに代えてACを用いるのである。これにより、目標設定ビットレートTn+1を、より緩やかに制御することが可能である。
【0090】
<2−3.レート制御方法(C)>
次に、レート制御方法(C)について説明する。レート制御方法(C)においても、量子化ステップ変換係数を算出し、数3式を用いて、第2ストリームの量子化ステップ値Qを算出する。また、レート制御方法(C)においても、レート制御方法(B)と同様、第n期間が終了した時点で、第(n+1)期間における第2ストリームの目標設定ビットレートTn+1を決定し、決定された目標設定ビットレートTn+1を用いて、第(n+1)期間の量子化ステップ変換係数αn+1を算出する。
【0091】
第(n+1)期間の目標設定ビットレートTn+1が決定すると、数5式を用いて説明した場合と同様の方法で、量子化ステップ変換係数αn+1が算出される。つまり、数6式〜数8式で例示したような関数fを利用して、量子化ステップ変換係数αn+1が算出される。具体的には、数15式で示すように、第(n+1)期間の目標設定ビットレートTn+1と第n期間の入力平均ビットレートSの比を関数fに入力することで、量子化ステップ変換係数αn+1を算出する。あるいは、数16式で示すように、入力平均ビットレートSの比に代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートASを用いて量子化ステップ変換係数αn+1を算出してもよい。
【0092】
数22式は、第(n+1)期間の目標設定ビットレートTn+1を算出する式である。つまり、トランスコーダ1が、第n期間終了後に算出する第(n+1)期間の目標設定ビットレートTn+1を表している。具体的には、第n期間の目標設定ビットレートTから第n期間の変換済みの第2ストリームの出力平均ビットレートCを減算した値を目標差と考えると、第(n+1)期間の目標設定ビットレートTn+1は、第2ストリームの全体目標ビットレートTに目標差を加算することで算出されるのである。
【0093】
【数22】

【0094】
数22式中、kは正の係数であり、目標設定ビットレートTn+1を調整するための係数である。このように、(T−C)により、第n期間における目標との差を算出し、全体目標ビットレートTに目標差を加算することで、出力ストリームが目標ビットレートに近づくような制御を行うのである。
【0095】
数22式では、第n期間の目標設定ビットレートTから第n期間の第2ストリームの出力平均ビットレートCを減算した目標差を利用しているが、この目標差をさらに調整するようにしたのが、数23式である。
【0096】
【数23】

【0097】
数23式において、目標差にS/Sn−1が乗算されている。S/Sn−1は、第n期間の第1ストリームの入力平均ビットレートSを、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1で除算した期間比である。つまり、目標差に期間比を乗算することで、目標差を調整しているのである。
【0098】
このように目標差に期間比を乗算することで、局所的な目標差の変化を補正することができる。たとえば、第n期間の入力平均ビットレートSが局所的に第(n−1)期間と比べて小さく変化した場合には、それに伴い、目標差(T−C)が大きく変動する場合がある。このような場合にも、期間比S/Sn−1(この場合、期間比が1より小さな値となる。)を乗算することで、目標差を調整し、目標設定ビットレートTn+1が大きく変動することを回避できるのである。
【0099】
数23式では、第n期間の第1ストリームの入力平均ビットレートSを、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1で除算した値を期間比とした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。入力平均ビットレートSn+1を先読みできる場合とは、上述したように、入力平均ビットレートSn+1に関する情報をバッファリングした上で、第(n+1)期間の目標設定ビットレートTn+1を算出できる時間的余裕がある場合である。この場合には、数23式において、期間比として、S/Sn−1に代えて、Sn+1/Sを用いるのである。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。
【0100】
期間比として、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用した場合には、数15式に代えて、数20式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間の入力平均ビットレートSn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0101】
また、数23式では、期間比としてS/Sn−1を利用した。これに代えて、第n期間を含む過去M期間の期間平均ビットレートASと、第(n−1)期間を含む過去M期間の期間平均ビットレートASn−1の比を期間比として用いてもよい。つまり、数23式において、期間比として、S/Sn−1に代えて、AS/ASn−1を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートTn+1を最適制御することが可能である。
【0102】
あるいは、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1と、第n期間を含む過去M期間の期間平均ビットレートASの比を期間比として用いてもよい。つまり、数23式において、期間比として、S/Sn−1に代えて、ASn+1/ASを用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートTn+1を制御することが可能である。
【0103】
期間比として、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1を利用した場合には、数16式に代えて、数21式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0104】
また、制御レート方法(C)における目標設定ビットレートTn+1の計算方法を、数22式、数23式などを用いて説明したが、これら数式を用いて説明した場合を含め、この制御レート方法(C)において説明した全ての計算方法において、第n期間の出力平均ビットレートCに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートACを用いても良い。たとえば、数22式、数23式などにおいて、Cに代えてACを用いても良い。これにより、目標設定ビットレートTn+1を、より緩やかに制御することが可能である。
【0105】
<2−4.レート制御方法(D)>
次に、レート制御方法(D)について説明する。レート制御方法(D)においても、レート制御方法(C)と同様、第n期間が終了した時点で、第(n+1)期間における第2ストリームの目標設定ビットレートTn+1を決定し、決定された目標設定ビットレートTn+1を用いて、第(n+1)期間の量子化ステップ変換係数αn+1を算出する。レート制御方法(D)においては、第(n+1)期間における第2ストリームの目標設定ビットレートTn+1の決定の方法が、レート制御方法(C)と異なる。
【0106】
数24式は、第(n+1)期間の目標設定ビットレートTn+1を算出する式である。第n期間の目標設定ビットレートTから第n期間の変換済みの第2ストリームの出力平均ビットレートCを減算した値を目標差として利用する点も、レート制御方法(C)と同様である。レート制御方法(C)では、この目標差に期間比を乗算することで、目標差を調整したが、数24式に示すように、レート制御方法(D)では、目標差に期間差を乗算するようにしている。
【0107】
【数24】

【0108】
数24式において、目標差に(S−Sn−1)が乗算されている。(S−Sn−1)は、第n期間の第1ストリームの入力平均ビットレートSから、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を減算した期間差である。つまり、目標差に期間差を乗算することで、目標差を調整しているのである。なお、数24式中、係数kは、目標設定ビットレートTn+1を調整するための正の係数である。
【0109】
このように目標差に期間差を乗算することで、局所的な目標差の変化を補正することができる。たとえば、入力平均ビットレートSが次第に小さく変化しているような場合には、それに伴い、Cが小さくなる場合があり、目標差(T−C)が正の値になる。このような場合には、期間差(S−Sn−1)が負の値となり、目標設定ビットレートTn+1が大きく設定されないよう補正するのである。つまり、入力平均ビットレートSが小さく変化しているような場合には、その変化に反して、目標設定ビットレートTn+1が大きく変化しないよう制御するのである。
【0110】
数24式で説明した目標設定ビットレートTn+1の算出方法では、目標差(T−C)に期間差を乗算するようにした。これに対して、数25式に示すように、目標差に期間差を加算するようにしてもよい。数25式中、hは、目標設定ビットレートTn+1を調整するための正の係数である。このように、期間差を加算することで、乗算した場合とは異なる特性で目標設定ビットレートTn+1を制御することが可能である。
【0111】
【数25】

【0112】
数24式では、第n期間の第1ストリームの入力平均ビットレートSから第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を減算した値を期間差とした。そして、目標差に期間差を乗算するようにした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。この場合には、数24式において、期間差として、(S−Sn−1)に代えて、(Sn+1−S)を用いるのである。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。
【0113】
また、数25式においても、第n期間の第1ストリームの入力平均ビットレートSから第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を減算した値を期間差とした。そして、目標差に期間差を加算するようにした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。この場合には、数25式において、期間差として、(S−Sn−1)に代えて、(Sn+1−S)を用いるのである。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。
【0114】
期間差として、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用した場合には、数20式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間の入力平均ビットレートSn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0115】
また、数24式、数25式では、期間差として(S−Sn−1)を利用した。これに代えて、第n期間を含む過去M期間の期間平均ビットレートASと、第(n−1)期間を含む過去M期間の期間平均ビットレートASn−1の差を期間差として用いてもよい。つまり、数24式、数25式において、期間差として、(S−Sn−1)に代えて、(AS−ASn−1)を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートTn+1を最適制御することが可能である。
【0116】
あるいは、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1と、第n期間を含む過去M期間の期間平均ビットレートASの比を期間差として用いてもよい。つまり、数24式、数25式において、期間差として、(S−Sn−1)に代えて、(ASn+1−AS)を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートTn+1を制御することが可能である。
【0117】
期間差として、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1を利用した場合には、数21式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0118】
また、レート制御方法(D)における目標設定ビットレートTn+1の計算方法を、数24式、数25式などを用いて説明したが、これら数式を用いて説明した場合を含めレート制御方法(D)で説明した全ての計算方法において、第n期間の出力平均ビットレートCに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートACを用いても良い。たとえば、数24式、数25式などにおいて、Cに代えてACを用いても良い。これにより、目標設定ビットレートTn+1を、より緩やかに制御することが可能である。
【0119】
{3.制御単位期間の決定方法}
次に、制御単位期間の決定方法を説明する。上述したように、各レート制御方法(A)〜(D)においては、量子化ステップ値Qを算出する計算過程において、制御単位期間Lにおける入力平均ビットレートSを利用した。あるいは、制御単位期間Ln−1,Ln+1における入力平均ビットレートSn−1,Sn+1を利用した。さらには、期間平均ビットレートASなどを利用した。
【0120】
本実施の形態においては、上述したように、制御単位期間Lとして、基本的には、1GOP期間を利用する。しかし、1GOP内のフレーム数が少ない場合や、1GOP内のIピクチャフレームの比率が高い場合には、入力平均ビットレートSが急激に高くなる場合が発生する。そこで、本実施の形態のトランスコーダ1は、このような場合に、制御単位期間Lを補正して、入力平均ビットレートSの変動が小さくなるようにする。
【0121】
<3−1.第1の実施の形態>
制御単位期間の補正方法について第1の実施の形態を説明する。デコーダ2は、まず、入力したGOPに含まれるフレーム数を取得する。そして、GOPに含まれるフレーム数が所定の閾値以上である場合には、そのGOPについては、1GOPを制御単位期間Lとする。一方、GOPに含まれるフレーム数が所定の閾値未満である場合には、その後に続くGOPを連結して、連結した2つのGOPのフレーム数が所定の閾値以上となるようにする。2つのGOPを連結してもフレーム数が所定の閾値未満である場合には、さらに、後続のGOPを連結する。このようにして、フレーム数が所定の閾値以上となるまで、GOPを連結し、連結されたGOPを1つの制御単位期間として決定するのである。
【0122】
図3〜図6の例を用いて説明する。図3〜図6において、上段(A)は、入力ストリームのGOPをそのまま1対1で制御単位期間に対応させた場合の例を示す。これに対して、図3〜図6の下段(B)は、上段(A)と同じピクチャ構成の入力ストリームを入力した場合に、本実施の形態の制御単位期間の決定方法により、制御単位期間を補正した場合の例を示している。なお、図3〜図6の例においては、フレーム数の閾値を15と設定する。つまり、GOPのフレーム数が15未満の場合には、フレーム数が15以上となるまで、GOPを連結することで、制御単位期間を補正する。
【0123】
図3の例について説明する。この例は、最も一般的な場合である。各GOP1〜GOP3は、15枚のフレームから構成されている。具体的には、各GOP1〜GOP3が、「IBBPBBPBBPBBPBB」という基本的なピクチャ構成となっている。そのため、図3(A)、(B)ともに、各GOP1〜GOP3が、そのまま制御単位期間L〜Lに対応している。つまり、この例の場合には、制御単位期間は1GOP単位のままであり、補正されない。
【0124】
図4の例について説明する。この例では、GOP1、GOP4は、「IBBPBBPBBPBBPBB」という基本的なピクチャ構成となっており、15枚のフレームから構成されている。しかし、GOP2のピクチャ構成は、「IBB」であり、フレーム数が3である。また、GOP3のピクチャ構成は、「IBBPBBPBBPBB」であり、フレーム数が12である。
【0125】
図4(A)のように、各GOP1〜GOP4が、そのまま制御単位期間L〜Lに対応する場合、制御単位期間LやLの入力平均ビットレートSやSの値が急激に高くなる。そこで、図4(B)に示すように、GOP2とGOP3とを連結して1つの制御単位期間Lと決定する。これにより、制御単位期間Lのフレーム数は15となり、入力平均ビットレートSの変動を小さくすることができる。
【0126】
図5の例について説明する。この例では、GOP1、GOP3、GOP4は、「IBBPBBPBBPBBPBB」という基本的なピクチャ構成となっており、15枚のフレームから構成されている。しかし、GOP2のピクチャ構成は、「IBB」であり、フレーム数が3である。
【0127】
図5(A)のように、各GOP1〜GOP4が、そのまま制御単位期間L〜Lに対応する場合、制御単位期間Lの入力平均ビットレートSの値が急激に高くなる。そこで、図5(B)に示すように、GOP2とGOP3とを連結して1つの制御単位期間Lと決定する。これにより、制御単位期間Lのフレーム数は18となり、入力平均ビットレートSの変動を小さくすることができる。このように、GOP3のフレーム数は15であり、制御単位期間としての条件を満たしているが、GOP2のフレーム数が少ないために、GOP2との連結により制御単位期間が補正される。この結果、制御単位期間Lのフレーム数が18と他の制御単位期間よりもフレーム数が多くなるが、入力平均ビットレートSの変動を小さくするという意味において問題はない。
【0128】
図6の例について説明する。この例では、GOP1は、「IBBPBBPBBPBBPBB」という基本的なピクチャ構成となっており、15枚のフレームから構成されている。しかし、GOP2のピクチャ構成は、「IBB」であり、フレーム数が3である。また、GOP3のピクチャ構成は、「IBBPBBPBB」であり、フレーム数が9である。また、GOP4のピクチャ構成は、「IBBPBBPBBPBBPBBPBB」であり、フレーム数が18である。
【0129】
図6(A)のように、各GOP1〜GOP4が、そのまま制御単位期間L〜Lに対応する場合、制御単位期間LやLの入力平均ビットレートSやSの値が急激に高くなる。そこで、図6(B)に示すように、GOP2とGOP3とGOP4を連結して1つの制御単位期間Lと決定する。これにより、制御単位期間Lのフレーム数は30となり、入力平均ビットレートSの変動を小さくすることができる。このように、2つのGOPを連結しても、フレーム数が閾値15に満たない場合には、さらにそれ以上のGOPを連結することで、入力平均ビットレートSの変動を抑えるのである。
【0130】
なお、本実施の形態においては、GOP単位で制御単位期間を連結させる場合を説明したが、フレーム単位で制御単位期間を補正するようにしてもよい。
【0131】
このように、本実施の形態においては、入力ストリームのGOPに含まれるフレーム数に応じて適応的に制御単位期間を補正する。これにより、入力平均ビットレートSの変動を抑え、一定化された入力平均ビットレートSを用いて、最適なレート制御を行うことが可能である。
【0132】
<3−2.第2の実施の形態>
制御単位期間の補正方法について第2の実施の形態を説明する。デコーダ2は、まず、入力したGOPに含まれるIピクチャフレーム数を取得する。そして、GOPに含まれるIピクチャフレームの比率が所定の閾値以下である場合には、そのGOPについては、1GOPを制御単位期間Lとする。一方、GOPに含まれるIピクチャフレームの比率が所定の閾値を超える場合には、その後に続くGOPを連結して、連結した2つのGOPにおけるIピクチャフレームの比率が所定の閾値以下となるようにする。2つのGOPを連結してもIピクチャフレームの比率が所定の閾値を超える場合には、さらに、後続のGOPを連結する。このようにして、Iピクチャフレームの比率が所定の閾値以下となるまで、GOPを連結し、連結されたGOPを1つの制御単位期間として決定するのである。
【0133】
図7〜図10の例を用いて説明する。図7〜図10において、上段(A)は、入力ストリームのGOPをそのまま1対1で制御単位期間に対応させた場合の例を示す。これに対して、図7〜図10の下段(B)は、上段(A)と同じピクチャ構成の入力ストリームを入力した場合に、本実施の形態の制御単位期間の決定方法により、制御単位期間を補正した場合の例を示している。なお、図7〜図10の例においては、Iピクチャフレームの比率の閾値を0.2と設定する。つまり、GOPに含まれるIピクチャフレームの比率が0.2を超える場合には、Iピクチャフレームの比率が0.2以下となるまで、GOPを連結することで、制御単位期間を補正する。
【0134】
図7の例について説明する。この例は、最も一般的な場合である。各GOP1〜GOP3は、15枚のフレームから構成され、ピクチャ構成は、「IBBPBBPBBPBBPBB」である。したがって、各GOP1〜GOP3において、Iピクチャフレームの比率は、1/15≒0.07である。そのため、図7(A)、(B)ともに、各GOP1〜GOP3が、そのまま制御単位期間L〜Lに対応している。つまり、この例の場合には、制御単位期間は1GOP単位のままであり、補正されない。
【0135】
図8の例について説明する。この例では、GOP1、GOP4は、「IBBPBBPBBPBBPBB」という基本的なピクチャ構成となっており、15枚のフレームから構成されており、Iピクチャフレームの比率は、1/15≒0.07である。しかし、GOP2のピクチャ構成は、「III」であり、フレーム数が3であり、Iピクチャフレームの比率が3/3=1である。また、GOP3のピクチャ構成は、「IBBPBBPBBPBB」であり、フレーム数が12である。
【0136】
図8(A)のように、各GOP1〜GOP4が、そのまま制御単位期間L〜Lに対応する場合、制御単位期間Lの入力平均ビットレートSの値が急激に高くなる。そこで、図8(B)に示すように、GOP2とGOP3とGOP4を連結して1つの制御単位期間Lと決定する。GOP2とGOP3とを連結した場合にも、Iピクチャフレームの比率は4/15≒0.27であり閾値の0.2を超える。3つのGOPを連結することにより、制御単位期間Lのフレーム数は30となり、Iピクチャフレームの比率が5/30≒0.17となる。これにより、入力平均ビットレートSの変動を小さくすることができる。
【0137】
図9の例について説明する。この例では、GOP1、GOP4は、「IBBPBBPBBPBBPBB」という基本的なピクチャ構成となっており、15枚のフレームから構成されている。しかし、GOP2のピクチャ構成は、「IPPIPP」であり、Iピクチャフレームの比率が2/6≒0.33である。また、GOP3のピクチャ構成は、「IBBPBBPBBPBB」である。
【0138】
図9(A)のように、各GOP1〜GOP4が、そのまま制御単位期間L〜Lに対応する場合、制御単位期間Lの入力平均ビットレートSの値が急激に高くなる。そこで、図9(B)に示すように、GOP2とGOP3とを連結して1つの制御単位期間Lと決定する。これにより、制御単位期間LのIピクチャフレームの比率は3/18≒0.17となり、入力平均ビットレートSの変動を小さくすることができる。
【0139】
図10の例について説明する。この例では、GOP1、GOP4は、「IBBPBBPBBPBBPBB」という基本的なピクチャ構成となっており、15枚のフレームから構成されている。GOP2のピクチャ構成は、「IPPPPP」であるが、Iピクチャフレームの比率は1/6≒0.17であり閾値0.2以下である。また、GOP3のピクチャ構成は、「IBBPBBPBB」であり、Iピクチャフレームの比率は0.2以下である。そのため、図10(A)、(B)ともに、各GOP1〜GOP4が、そのまま制御単位期間L〜Lに対応している。
【0140】
なお、この実施の形態で用いた閾値0.2は一例である。入力ストリームのビットレートやピクチャ構成に応じて、適宜、最適な値を選択すればよい。また、本実施の形態においては、GOP単位で制御単位期間を連結させる場合を説明したが、フレーム単位で制御単位期間を補正するようにしてもよい。
【0141】
このように、本実施の形態においては、入力ストリームのGOPに含まれるIピクチャフレームの比率に応じて適応的に制御単位期間を補正する。これにより、入力平均ビットレートSの変動を抑え、一定化された入力平均ビットレートSを用いて、最適なレート制御を行うことが可能である。
【0142】
<3−3.変形例>
次に、変形例について説明する。この変形例は、上記第2の実施の形態に対する変形例である。第2の実施の形態においては、GOPを構成する全フレーム枚数に対するIピクチャフレームの枚数をIピクチャの比率とした。GOPを構成するI、P、Bピクチャフレームのビット比率は、MPEG2においては、一般的には、I:P:B=5:3:1である。この変形例では、GOPを構成するI、P、Bピクチャフレームの枚数に、それぞれ重み付けとしてビット比率を乗算して重み付け枚数を求め、この重み付け枚数によりIピクチャフレームの比率を求める。
【0143】
重み付けを加味することで、Iピクチャフレームの比率は全般的に高くなるので、閾値としては、第2の実施の形態で使用した0.2より大きめの値を設定すればよい。例えば、0.22〜0.24などが考えられる。
【0144】
たとえば、図10の例であれば、GOP2については、第2の実施の形態においては、Iピクチャフレームの比率は、1/6≒0.17であり、制御単位期間の条件を満たしていた。これに対して、重み付けを加味した場合、Iピクチャフレームの枚数は1×5=5枚であり、Pピクチャフレームの枚数は5×3=15である。したがって、GOP2の重み付け全フレーム枚数は20枚であり、GOP2におけるIピクチャフレームの重み付け比率は、5/20=0.25となる。
【0145】
そこで、GOP2とGOP3を連結した制御単位期間を考える。GOP3において、Iピクチャフレームの重み付け枚数は、1×5=5枚であり、Pピクチャフレームの重み付け枚数は3×3=9枚であり、Bピクチャフレームの重み付け枚数は、8×1=8枚である。したがって、GOP3の重み付け全フレーム枚数は22枚であり、Iピクチャフレームの重み付け枚数は5枚である。GOP2とGOP3を連結した制御単位期間では、重み付け全フレーム枚数は42枚であり、Iピクチャフレームの重み付け枚数は10枚であるので、Iピクチャフレームの重み付け比率は10/42≒0.24となる。
【0146】
したがって、閾値が0.24に設定されていれば、GOP2とGOP3とを連結した期間を制御単位期間として補正すればよい。閾値が0.24よりも小さい場合には、さらに、GOP4と連結させればよい。
【0147】
このように、I、P、Bピクチャフレームのビット比率を用いて重み付けをすることにより、さらに入力平均ビットレートSの変動を小さく抑えることができる。
【符号の説明】
【0148】
1 トランスコーダ
2 デコーダ
3 エンコーダ
AC 期間平均ビットレート
AS 期間平均ビットレート
出力平均ビットレート
制御単位期間
P 量子化ステップ値
Q 量子化ステップ値
S 入力全体ビットレート
入力平均ビットレート
T 全体目標ビットレート
目標設定ビットレート
α 量子化ステップ変換係数

【特許請求の範囲】
【請求項1】
第1のストリームを第2のストリームに変換するトランスコーダであって、
制御単位期間を決定する期間決定手段と、
決定された制御単位期間ごとの第1のストリームのビットレートを取得する手段と、
取得した制御単位期間ごとの第1のストリームのビットレートを含む第1のストリームの情報を用いて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、
を備え、
前記期間決定手段は、各制御単位期間に含まれるIピクチャフレームの比率が所定の比率以下となるよう各制御単位期間を決定することを特徴とするトランスコーダ。
【請求項2】
請求項1に記載のトランスコーダにおいて、
前記期間決定手段は、GOP内のIピクチャフレームの比率が所定の割合以下である場合には、GOPを制御単位期間として決定し、GOP内のIピクチャフレームの比率が所定の割合を超える場合には、Iピクチャフレームの比率が所定の比率以下となるまで複数のGOPを連結し、連結された複数のGOPを制御単位期間として決定することを特徴とするトランスコーダ。
【請求項3】
請求項2に記載のトランスコーダにおいて、
前記期間決定手段は、I、P、Bピクチャフレームにそれぞれ所定の重み付けを設定し、重み付けを加味した上で、GOP内のIピクチャフレームの比率が所定の比率以下となるか否かを判断することを特徴とするトランスコーダ。
【請求項4】
請求項1ないし請求項3のいずれかに記載のトランスコーダにおいて、さらに、
第N+1期間の第2のストリームの目標ビットレートと第N期間以前の第1のストリームのビットレートとの比に基づいて第N+1期間の期間変換係数を算出する期間変換係数算出手段、
を備え、
前記量子化ステップ値算出手段は、
第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段、
を含むことを特徴とするトランスコーダ。
【請求項5】
請求項4に記載のトランスコーダにおいて、さらに、
第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートと、第N期間の第2のストリームの目標ビットレートに基づいて第N+1期間の第2のストリームの目標ビットレートを決定する目標ビットレート決定手段、
を備えることを特徴とするトランスコーダ。
【請求項6】
請求項5に記載のトランスコーダにおいて、
第N期間以前の変換済みの第2のストリームのビットレートと第N期間の第2のストリームの目標ビットレートとの比を目標比とすると、前記目標ビットレート決定手段は、第2のストリームの全体の目標ビットレートと前記目標比との比に基づいて第N+1期間の第2のストリームの目標ビットレートを算出することを特徴とするトランスコーダ。
【請求項7】
請求項6に記載のトランスコーダにおいて、
第N−1期間の第1のストリームのビットレートと第N期間の第1のストリームのビットレートの比を期間比とすると、前記目標ビットレート決定手段は、前記目標比に前記期間比を乗算し、前記目標比を調整することを特徴とするトランスコーダ。
【請求項8】
請求項6に記載のトランスコーダにおいて、
第N期間の第1のストリームのビットレートと第N+1期間の第1のストリームのビットレートの比を期間比とすると、前記目標ビットレート決定手段は、前記目標比に前記期間比を乗算し、前記目標比を調整することを特徴とするトランスコーダ。
【請求項9】
請求項5に記載のトランスコーダにおいて、
第N期間の第2のストリームの目標ビットレートと第N期間以前の変換済みの第2のストリームのビットレートとの差に基づいて算出される値を目標差とすると、前記目標ビットレート決定手段は、第2のストリームの全体の目標ビットレートに前記目標差を加算することで、第N+1期間の第2のストリームの目標ビットレートを算出することを特徴とするトランスコーダ。
【請求項10】
請求項9に記載のトランスコーダにおいて、
第N期間の第1のストリームのビットレートと第N−1期間の第1のストリームのビットレートの比を期間比とすると、前記目標ビットレート決定手段は、前記目標差に前記期間比を乗算し、前記目標差を調整することを特徴とするトランスコーダ。
【請求項11】
請求項9に記載のトランスコーダにおいて、
第N期間の第1のストリームのビットレートと第N−1期間の第1のストリームのビットレートの差に基づいて算出される値を期間差とすると、前記目標ビットレート決定手段は、前記目標差に前記期間差を乗算し、前記目標差を調整することを特徴とするトランスコーダ。
【請求項12】
請求項9に記載のトランスコーダにおいて、
第N期間の第1のストリームのビットレートと第N−1期間の第1のストリームのビットレートの差に基づいて算出される値を期間差とすると、前記目標ビットレート決定手段は、前記目標差に前記期間差を加算し、前記目標差を調整することを特徴とするトランスコーダ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−110011(P2012−110011A)
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願番号】特願2012−5457(P2012−5457)
【出願日】平成24年1月13日(2012.1.13)
【分割の表示】特願2008−42427(P2008−42427)の分割
【原出願日】平成20年2月25日(2008.2.25)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】