トランスコーダ
【課題】ビットレートの一定化という目的と、画質の維持という目的のバランスをとりながら、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御することを課題とする。
【解決手段】トランスコーダ1は、デコーダ2でデコードしたストリームを再びエンコーダ3でエンコードする。エンコーダ3は、量子化ステップ値を算出するときに、パラメータとして、第1ストリームの期間平均ビットレートASn(M)や、第2ストリームの期間平均ビットレートACn(M)を用いる。バッファ4,6には、それぞれM期間の第1,第2ストリームのビットレートSn,Cnが格納される。エンコーダ3は、M期間のうち、M1,M2,M3いずれかの期間の第1ストリームの期間平均ビットレートASn(M)や、第2ストリームの期間平均ビットレートACn(M)を利用する。
【解決手段】トランスコーダ1は、デコーダ2でデコードしたストリームを再びエンコーダ3でエンコードする。エンコーダ3は、量子化ステップ値を算出するときに、パラメータとして、第1ストリームの期間平均ビットレートASn(M)や、第2ストリームの期間平均ビットレートACn(M)を用いる。バッファ4,6には、それぞれM期間の第1,第2ストリームのビットレートSn,Cnが格納される。エンコーダ3は、M期間のうち、M1,M2,M3いずれかの期間の第1ストリームの期間平均ビットレートASn(M)や、第2ストリームの期間平均ビットレートACn(M)を利用する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力ストリームをデコードして異なる出力ストリームに変換するトランスコーダに関し、詳しくは、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御する技術に関する。
【背景技術】
【0002】
デジタル放送で配信される画像や、DVD、ハードディスクなどに格納される画像などは、各種の符号化方式に従って圧縮される。これは、伝送帯域を圧迫しないため、伝送速度を上げるため、あるいは、記憶サイズを小さくするなどの目的のためである。
【0003】
画像の符号化方式には、MPEG2やH.264など様々な規格が存在する。そして、入力した符号化画像の符号量を削減するなどの目的で符号化方式の変換が行われる場合がある。トランスコーダは、入力した符号化画像を一旦デコードする。そして、トランスコーダは、デコードした画像を、再び異なる符号化方式(あるいは同じ符号化方式)で符号化する。このようにして、トランスコーダは、出力ストリームのビットレートを制御するのである。
【0004】
下記特許文献1は、第1の圧縮符号化方式で圧縮された画像を第2の圧縮符号化方式で圧縮された画像に変換するトランスコーダに関するものである。このトランスコーダは、第1の圧縮符号化方式で圧縮された画像を復号する際に発生する中間情報を用いて、第2の圧縮符号化方式で画像を圧縮するようにしている。
【0005】
【特許文献1】特開2006−74635号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
トランスコーダに入力されるストリームには、様々なシーンが含まれる。符号量をより多く割り当てなければ画質劣化を招いてしまうようなシーンや、符号量をそれほど割り当てなくても画質劣化しないようなシーンなどが含まれる。したがって、シーンによって画像圧縮の難易度は大きく変化する。
【0007】
一方、符号量制御は、上記のような画像圧縮の難易度に関わらず、ある期間におけるビットレートを一定に保持することを目的としている。このため、ビットレートを一定に保持する期間をどの程度の期間とするかは、通信路の帯域制限や画質に対するユーザの要求仕様などで変わってくる。
【0008】
たとえば、通信路の帯域制限が厳しいという想定のもとでは、符号量制御におけるフィードバックの応答期間を短く設定する必要がある。つまり、ビットレートを一定に保持する期間を短く設定する必要がある。このような符号量制御を行った場合、画質が劣化するという問題があった。
【0009】
逆に、画質を優先する場合、符号量制御におけるフィードバックの応答期間を長く設定する必要がある。つまり、ビットレートを一定に保持する期間を長く設定し、その期間、ある程度ビットレートに自由度を持たせ画質の向上を目指すのである。しかし、このような制御を行った場合、局所的にビットレートが増減する可能性があるため、通信帯域の制限に適合しないような場合がある。
【0010】
そこで、本発明は前記問題点に鑑み、ビットレートの一定化という目的と、画質の維持という目的のバランスをとりながら、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、請求項1記載の発明は、第1のストリームを第2のストリームに変換するトランスコーダであって、制御単位期間ごとの第1のストリームのビットレートを取得する手段と、過去複数期間の第1のストリームのビットレートを格納するバッファと、前記バッファに格納されている過去複数期間の第1のストリームのビットレートから、選択された期間に対応する第1のストリームのビットレートを取得して、第1のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、前記基準値算出手段が算出した第1のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、を備えることを特徴とする。
【0012】
請求項2記載の発明は、第1のストリームを第2のストリームに変換するトランスコーダであって、制御単位期間ごとの変換済みの第2のストリームのビットレートを取得する手段と、過去複数期間の第2のストリームのビットレートを格納するバッファと、前記バッファに格納されている過去複数期間の第2のストリームのビットレートから、選択された期間に対応する第2のストリームのビットレートを取得して、第2のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、前記基準値算出手段が算出した第2のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、を備えることを特徴とする。
【0013】
請求項3記載の発明は、請求項1または請求項2に記載のトランスコーダにおいて、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を、トランスコード処理の途中で変更可能としたことを特徴とする。
【0014】
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載のトランスコーダにおいて、ユーザ操作により前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を指定可能としたことを特徴とする。
【0015】
請求項5記載の発明は、請求項3に記載のトランスコーダにおいて、出力ストリームの符号量の変動が所定の基準を上回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とする。
【0016】
請求項6記載の発明は、請求項3に記載のトランスコーダにおいて、出力ストリームの画質が所定の基準を下回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とする。
【0017】
請求項7記載の発明は、請求項1ないし請求項6のいずれかに記載のトランスコーダにおいて、前記基準値は、選択期間内のビットレートの平均値、を含むことを特徴とする。
【0018】
請求項8記載の発明は、請求項1ないし請求項7のいずれかに記載のトランスコーダであって、第1のストリーム全体のビットレートを取得する手段と、第2のストリーム全体の目標ビットレートを設定する手段と、第2のストリーム全体の目標ビットレートと第1のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートとから変動係数を算出する変動係数算出手段と、前記基準変換係数に前記変動係数を加算することで、次の第N+1期間の期間変換係数を算出する手段と、第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、を備え、前記変動係数算出手段は、第N期間以前の変換済みの第2のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第2のストリームの基準値を用いることを特徴とする。
【0019】
請求項9記載の発明は、請求項1ないし請求項7のいずれかに記載のトランスコーダであって、第1のストリーム全体のビットレートを取得する手段と、第2のストリーム全体の目標ビットレートを設定する手段と、第2のストリーム全体の目標ビットレートと第1のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートとから変動係数を算出する変動係数算出手段と、前記基準変換係数に前記変動係数を加算することで、次の第N+1期間の期間変換係数を算出する手段と、第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、を備え、前記変動係数算出手段は、算出した前記変動係数を、さらに、前記基準値算出手段が算出した第N期間を含む選択期間内の第1のストリームの基準値で除算することで前記変動係数を調整することを特徴とする。
【0020】
請求項10記載の発明は、請求項1ないし請求項7のいずれかに記載のトランスコーダであって、第2のストリーム全体の目標ビットレートを設定する手段と、第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートと、第N期間の第2のストリームの目標ビットレートに基づいて第N+1期間の第2のストリームの目標ビットレートを決定する目標ビットレート決定手段と、を備え、第N期間以前の変換済みの第2のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第2のストリームの基準値が用いられることを特徴とする。
【0021】
請求項11記載の発明は、請求項10に記載のトランスコーダにおいて、第N期間以前の第1のストリームのビットレートを取得する手段と、決定された第N+1期間の第2のストリームの目標ビットレートと第N期間以前の第1のストリームのビットレートとの比に基づいて第N+1期間の期間変換係数を算出する期間変換係数算出手段と、第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、を備え、前記期間変換係数算出手段は、第N期間以前の第1のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第1のストリームの基準値を用いることを特徴とする。
【発明の効果】
【0022】
本発明のトランスコーダは、符号量制御の演算に用いる符号量のバッファ期間を可変としたので、状況、要求に応じて、発生符号量の適正化を行いつつ、符号量を制御することができる。
【0023】
また、符号量制御の演算に用いる符号量の選択期間をトランスコード処理の途中で可変としたので、適応的に、発生符号量の適正化を図ることが可能である。
【発明を実施するための最良の形態】
【0024】
{1.トランスコーダの全体構成}
以下、図面を参照しつつ本発明の実施の形態について説明する。図1は、本実施の形態に係るトランスコーダ1のブロック図である。このトランスコーダ1は、デコーダ2とエンコーダ3とを備えている。また、トランスコーダ1は、バッファ4、平均値算出部5、バッファ6、平均値算出部7を備えている。
【0025】
デコーダ2は、第1ストリームを入力する。第1ストリームは、符号化画像のストリームである。デコーダ2は、第1ストリームをデコードし、非圧縮の画像データをエンコーダ3に出力する。エンコーダ3は、デコーダ2においてデコードされた非圧縮の画像データを再び符号化し、第2ストリームを出力するのである。
【0026】
たとえば、トランスコーダ1は、MPEG2で符号化された第1ストリームを入力し、H.264で符号化された第2ストリームを出力するなど、ストリームの符号化方式を変換する処理を行う。そして、変換処理を行う際、出力する第2ストリームのレート制御を最適に行えるよう本発明は工夫されている。あるいは、トランスコーダ1は、MPEG2で符号化された第1ストリームを入力し、再びMPEG2で符号化された第2ストリームを出力するなど、同じ符号化方式のストリームを出力する。このときにも、出力する第2ストリームのレート制御を最適に行えるよう本発明は工夫されている。
【0027】
なお、この後説明するレート制御方法(A)〜(D)における各演算処理は、デコーダ2、エンコーダ3および平均値算出部5,7などにおいて実行される演算処理であるが、デコーダ2、エンコーダ3および平均値算出部5,7における各演算処理は、ハードウェアにより実現されてもよいし、ソフトウェア処理により実現されていてもよい。つまり、これらの処理部が、ハードウェア回路として構成されていてもよいし、CPUとメモリに格納されたプログラムとで構成されていてもよい。あるいは、一部の処理がハードウェアで処理され、一部の処理がソフトウェアで処理される形態であってもよい。
【0028】
{2.レート制御方法}
図2は、トランスコーダ1が入出力するストリームの制御単位期間ごとの情報を表した図である。トランスコーダ1は、処理時間軸を制御単位期間Ln(n=1,2・・・)に区分し、この制御単位期間Lnを処理単位としてレート制御を行う。以下の説明において、適宜、制御単位期間Lnを第n期間と呼ぶことにする。本実施の形態においては、1GOPが制御単位期間Lnとして設定される。ただし、制御単位期間Lnとしては、複数のGOP、1フレーム、連続する複数フレームなどを設定することが可能である。
【0029】
第1ストリームの入力全体ビットレートSは、シーケンスヘッダなどから取得される。入力平均ビットレートSnは、第n期間における第1ストリームの平均ビットレートである。トランスコーダ1は、バッファ4を備えており、M期間分の入力平均ビットレートSnに関する情報を格納可能としている。つまり、バッファ4は、第(n−M+1)期間から第n期間までの入力平均ビットレートSnに関する情報を格納可能としている。そして、期間平均ビットレートASn(M)は、第(n−M+1)期間から第n期間における入力平均ビットレートSnを平均した値である。期間平均ビットレートASn(M)は、数1式で表される。
【0030】
【数1】
【0031】
デコーダ2は、入力した第1ストリームから、入力全体ビットレートS、入力平均ビットレートSn、第n期間における量子化ステップ値Pなどの情報を取得し、これらの情報をエンコーダ3に与える。また、平均値算出部5は、期間平均ビットレートASn(M)をエンコーダ3に与える。エンコーダ3は、これらの情報を利用して、画像の再符号化を行う。
【0032】
第2ストリームの全体目標ビットレートTは、ユーザにより設定される。たとえば、ユーザが、トランスコーダ1に設けられた図示せぬ操作部を用いて全体目標ビットレートTを設定する。目標設定ビットレートTnは、第n期間における第2ストリームの目標ビットレートである。出力平均ビットレートCnは、第n期間における変換済みの第2ストリームの平均ビットレートである。トランスコーダ1は、バッファ6を備えており、M期間分の出力平均ビットレートCnに関する情報を格納可能としている。つまり、バッファ6は、第(n−M+1)期間から第n期間までの出力平均ビットレートCnに関する情報を格納可能としている。そして、期間平均ビットレートACn(M)は、第(n−M+1)から第n期間における出力平均ビットレートCnを平均した値である。期間平均ビットレートACn(M)は、数2式で表される。なお、この実施の形態では、期間平均ビットレートASn(M)、ACn(M)を計算する場合に利用するバッファ期間を、制御単位期間Lnと連動させたが、バッファ期間の設定方法は、これに限るものではない。たとえば、連続する過去複数フレームなどをバッファ期間として設定することが可能である。
【0033】
【数2】
【0034】
図3は、バッファ4に格納される入力平均ビットレートSn、および平均値算出部5における処理の内容を示す図である。バッファ4は、第(n−M+1)期間から第n期間における入力平均ビットレートSn−M+1〜Snを格納している。
【0035】
平均値算出部5は、バッファ4に格納されている入力平均ビットレートSnを取得し、3種類の期間平均ビットレートASn(M1),ASn(M2),ASn(M3)を算出する。期間平均ビットレートASn(M1)は、入力平均ビットレートSn−M1+1〜Snを用いて求められたM1期間の平均値である。期間平均ビットレートASn(M2)は、入力平均ビットレートSn−M2+1〜Snを用いて求められたM2期間の平均値である。期間平均ビットレートASn(M3)は、入力平均ビットレートSn−M3+1〜Snを用いて求められたM3期間の平均値である。期間平均ビットレートASn(M1),ASn(M2),ASn(M3)は、数3式で示される。
【0036】
【数3】
【0037】
後述するように、エンコーダ3は、期間平均ビットレートASn(M)を利用して、第2ストリームの量子化ステップ値Qを算出する。このとき、ユーザの設定により、あるいは所定の条件に基づいて、期間平均ビットレートASn(M1),ASn(M2),ASn(M3)のうち、いずれかの平均値が選択されて、期間平均ビットレートASn(M)として用いられる。
【0038】
図4は、バッファ6に格納される入力平均ビットレートCn、および平均値算出部7における処理の内容を示す図である。バッファ6は、第(n−M+1)期間から第n期間における入力平均ビットレートCn−M+1〜Cnを格納している。
【0039】
平均値算出部7は、バッファ6に格納されている入力平均ビットレートCnを取得し、3種類の期間平均ビットレートACn(M1),ACn(M2),ACn(M3)を算出する。期間平均ビットレートACn(M1)は、入力平均ビットレートCn−M1+1〜Cnを用いて求められたM1期間の平均値である。期間平均ビットレートACn(M2)は、入力平均ビットレートCn−M2+1〜Cnを用いて求められたM2期間の平均値である。期間平均ビットレートACn(M3)は、入力平均ビットレートCn−M3+1〜Cnを用いて求められたM3期間の平均値である。期間平均ビットレートACn(M1),ACn(M2),ACn(M3)は数4式で示される。
【0040】
【数4】
【0041】
後述するように、エンコーダ3は、期間平均ビットレートACn(M)を利用して、第2ストリームの量子化ステップ値Qを算出する。このとき、ユーザの設定により、あるいは所定の条件に基づいて、期間平均ビットレートACn(M1),ACn(M2),ACn(M3)のうち、いずれかの平均値が選択されて、期間平均ビットレートACn(M)として用いられる。
【0042】
再び、図2を参照する。量子化ステップ変換係数αnは、第(n−1)期間の終了時に算出される係数である。第1ストリームの量子化ステップ値そのもの、あるいは第1ストリームの量子化ステップ値から計算される値Pに、量子化ステップ変換係数αnを乗算することで、第2ストリームの量子化ステップ値Qが決定される。この関係を数5式に示す。
【0043】
【数5】
【0044】
ここで、量子化ステップ変換係数αnの初期値α1は、数6式で与えられる。つまり、第2ストリームの全体目標ビットレートTを第1ストリームの入力全体ビットレートSで除算した値、つまりビットレート比を関数fに入力することによって、量子化ステップ変換係数の初期値α1を求めている。
【0045】
【数6】
【0046】
ここで、関数fは、ビットレートの比から量子化ステップ値の比を求める関数であり、ビットレートの比をRB、量子化ステップ値の比をRQとすると、一般的に、数7式で表される。
【0047】
【数7】
【0048】
関数fの具体例を説明する。本実施の形態では、数8式に示すように、ピクチャあるいはマクロブロックのタイプI、P、B(Iピクチャ、Pピクチャ、Bピクチャ)それぞれに異なる特性で量子化ステップ値の比を制御できる関数を利用している。数8式中、fI(x)、fP(x)、fB(x)は、それぞれI、P、Bピクチャに対応して適応される関数を示している。
【0049】
【数8】
【0050】
数8式においては、MPEG2からH.264へストリーム変換する場合のεI、εP、εB、δI、δP、δBの値として、実験等に基づいて算出された具体的数値を例示した。つまり、実験の結果、εI=2.1、εP=2.1、εB=1.3、δI=1.1、δP=0.8、δB=0.9とすることで、良好な特性が得られた。これ以外に、入力ストリームをデコードする際に得られる画像の特徴量を利用して、ε、δの値を決定するようにしてもよい。たとえば、数9式に示すように、入力ストリームのActivity値(act値)や、動き評価値(sad値)に基づいてε、δの値を決定するようにしてもよい。
【0051】
【数9】
【0052】
数9式中、aは、act値、sはsad値を示しており、εI(a,s)、εP(a,s)、εB(a,s)、−δI(a,s)、−δP(a,s)、−δB(a,s)は、act値およびsad値をパラメータとして、εおよびδの値が算出されることを示している。
【0053】
Activity値は、マクロブロック内の画素平均値とマクロブロック内の各画素の画素値との差分絶対値和をマクロブロックごとに計算したものである。つまり、Activity値は、マクロブロック内の画素のばらつき度合い示す評価値である。MPEG2の符号量制御モデルTM5などで用いられるActivity値と同様である。動き評価値(sad値)は、マクロブロックごとに参照画像マクロブロック内の画素とフレーム間差分絶対値和を計算したものである。つまり、マクロブロックの各画素と、参照画像マクロブロックの各画素とを比較し、同じ座標位置にある画素同士の画素値差分の絶対値和を算出したものである。
【0054】
より一般的には、第n期間における画像の特徴量をILnとすると、fI(x)、fP(x)、fB(x)は、それぞれ数10式で表される。
【0055】
【数10】
【0056】
数10式中、εI(ILn)、εP(ILn)、εB(ILn)、−δI(ILn)、−δP(ILn)、−δB(ILn)は、それぞれ、画像の特徴量ILnをパラメータとして、係数ε、δが決定されることを示している。
【0057】
以下、4つのレート制御方法(A)〜(D)について説明する。
【0058】
<2−1.レート制御方法(A)>
まず、レート制御方法(A)に関して、第2ストリームの量子化ステップ値Qを算出するための量子化ステップ変換係数αnの算出方法を説明する。トランスコーダ1は、第n期間経過時において、量子化ステップ変換係数αn+1を算出する。
【0059】
数11式は、量子化ステップ変換係数αn+1を算出するための数式を示している。数11式中、(T−Cn)は、第2ストリームの全体目標ビットレートTから変換済みの第n期間における出力平均ビットレートCnを減算したものである。この値を変動係数と呼ぶことにする。kは、変動係数を調整する調整係数であり、正の値が用いられる。
【0060】
【数11】
【0061】
このように、数6式で求められたα1に対して、変動係数を加算することで、量子化ステップ値の比が目標へと近づくように調整するのである。この意味で、量子化ステップ変換係数の初期値α1は、基準変換係数と呼ぶことができる。
【0062】
数11式を用いて、量子化ステップ変換係数αn+1が算出されると、数5式により、第2ストリームの第(n+1)期間における量子化ステップ値Qが求められるのである。
【0063】
上記数11式において変動係数を算出する際、第n期間における出力平均ビットレートCnを用いた。ここで、数12式で示すように、出力平均ビットレートCnに代えて、第(n−M+1)期間から第n期間における期間平均ビットレートACn(M)用いても良い。
【0064】
【数12】
【0065】
これにより、局所的なCnの変化に大きく左右されることなく、変動係数を緩やかに制御することができる。上述したように、期間平均ビットレートACn(M)としては、平均値算出部7が算出した3つの期間平均ビットレートACn(M1),ACn(M2),ACn(M3)のうちいずれかの平均値が選択される。つまり、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0066】
また、上記数11式において変動係数を算出する際、第2ストリームの全体目標ビットレートTから変換済みの第n期間における出力平均ビットレートCnを減算したものを採用した。ここで、数13式に示すように、減算値をさらに第1のストリームの第n期間における入力平均ビットレートSnで除算するようにしてもよい。
【0067】
【数13】
【0068】
これにより、第1ストリームのビットレートが局所的に大きく変化した場合などに、変動係数が大きく影響を受けることを回避できるのである。
【0069】
さらに、数12式と数13式を用いて説明した変動係数の算出方法の両方の考え方を取り入れるようにしてもよい。つまり、数14式に示すように、出力平均ビットレートCnに代えて、期間平均ビットレートACn(M)を用い、さらに、減算値を入力平均ビットレートSnで除算するのである。これにより、変動係数をより緩やかに制御することができる。
【0070】
【数14】
【0071】
また、数13式では、全体目標ビットレートTから出力平均ビットレートCnを減算し、その減算値をビットレートSnで除算するようにした。これに代えて、数15式に示すように、減算値を、第(n−M+1)期間から第n期間における第1ストリームの期間平均ビットレートASn(M)で除算するようにしてもよい。これにより、第1ストリームのビットレートの局所的変換に影響されることなく、より緩やかに変動係数を制御することができる。上述したように、期間平均ビットレートASn(M)としては、平均値算出部5が算出した3つの期間平均ビットレートASn(M1),ASn(M2),ASn(M3)のうちいずれかの平均値が選択される。つまり、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0072】
【数15】
【0073】
また、数16式で示したように、出力平均ビットレートCnに代えて、期間平均ビットレートACn(M)を用い、入力平均ビットレートSnに代えて、期間平均ビットレートASn(M)を用いても良い。これにより、さらに緩やかに変動係数を制御することが可能である。
【0074】
【数16】
【0075】
<2−2.レート制御方法(B)>
次に、レート制御方法(B)について説明する。レート制御方法(B)においても、量子化ステップ変換係数を算出し、数5式を用いて、第2ストリームの量子化ステップ値Qを算出する。ただし、量子化ステップ変換係数の算出方法がレート制御方法(A)とは異なる。レート制御方法(A)では、量子化ステップ変換係数の初期値α1を求め、これを基準変換係数として、基準変換係数からの変動を順次求めていくこととした。これに対して、レート制御方法(B)においては、第n期間が終了した時点で、第(n+1)期間における第2ストリームの目標設定ビットレートTn+1を決定し、決定された目標設定ビットレートTn+1を用いて、第(n+1)期間の量子化ステップ変換係数αn+1を算出するのである。
【0076】
第(n+1)期間の目標設定ビットレートTn+1が決定すると、数7式を用いて説明した場合と同様の方法で、量子化ステップ変換係数αn+1が算出される。つまり、数8式〜数10式で例示したような関数fを利用して、量子化ステップ変換係数αn+1が算出される。具体的には、数17式で示すように、第(n+1)期間の目標設定ビットレートTn+1と第n期間の入力平均ビットレートSnの比を関数fに入力することで、量子化ステップ変換係数αn+1を算出する。
【0077】
【数17】
【0078】
あるいは、数18式で示すように、第n期間における入力平均ビットレートSnに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートASn(M)用いて量子化ステップ変換係数αn+1を算出してもよい。上述したように、期間平均ビットレートASn(M)としては、平均値算出部5が算出した3つの期間平均ビットレートASn(M1),ASn(M2),ASn(M3)のうちいずれかの平均値が選択される。バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0079】
【数18】
【0080】
数19式は、第(n+1)期間の目標設定ビットレートTn+1を算出する式である。つまり、トランスコーダ1が、第n期間終了後に算出する第(n+1)期間の目標設定ビットレートTn+1を示している。具体的には、第n期間の変換済みの第2ストリームの出力平均ビットレートCnを第n期間の目標設定ビットレートTnで除算した値を目標比と考えると、第(n+1)期間の目標設定ビットレートTn+1は、第2ストリームの全体目標ビットレートTを目標比で除算することで算出されるのである。
【0081】
【数19】
【0082】
数19式中、kは正の係数であり、目標設定ビットレートTn+1を調整するための係数である。このように、Cn/Tnにより第n期間における目標との比を算出し、全体目標ビットレートTを目標比で除算することで第(n+1)期間の目標設定ビットレートTn+1を調整し、全体として目標ビットレートに近づくよう制御するのである。
【0083】
数19式では、第n期間の第2ストリームの出力平均ビットレートCnを目標設定ビットレートTnで除算した値を目標比として利用しているが、この目標比をさらに調整するようにしたのが、数20式である。
【0084】
【数20】
【0085】
数20式において、目標比にSn−1/Snが乗算されている。Sn−1/Snは、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を、第n期間の第1ストリームの入力平均ビットレートSnで除算した値であり、入力平均ビットレートの期間比と呼ぶことができる。つまり、目標比に期間比を乗算することで、目標比を調整しているのである。
【0086】
このように目標比に期間比を乗算することで、局所的な目標比の変化を補正することができる。たとえば、入力平均ビットレートSnが局所的に小さく変化した場合には、それに伴い、目標比Cn/Tnも小さく変動する場合がある。このような場合にも、期間比Sn−1/Sn(この場合、期間比が1より大きな値となる。)を乗算することで、目標比を調整し、目標設定ビットレートTn+1が大きく変動することを回避できるのである。逆に、入力平均ビットレートSnが局所的に大きく変化した場合には、期間比Sn−1/Snが1より小さい値となり、目標比が急激に大きくなることを抑制することができる。
【0087】
数20式では、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を、第n期間の第1ストリームの入力平均ビットレートSnで除算した値を期間比とした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。入力平均ビットレートSn+1を先読みできる場合とは、入力平均ビットレートSn+1に関する情報をバッファリングした上で、第(n+1)期間の目標設定ビットレートTn+1を算出できる時間的余裕がある場合である。つまり、ある程度の処理遅延が許されるような場合である。数21式に、入力平均ビットレートSn+1を用いて目標設定ビットレートTn+1を算出する式を示す。
【0088】
【数21】
【0089】
数21式に示すように、期間比として、Sn/Sn+1、つまり、第n期間の第1ストリームの入力平均ビットレートSnを、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1で除算した値を用いている。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。つまり、より最新の入力情報を用いることで、目標ビットレートに対する最適制御を行うことができるのである。
【0090】
期間比として、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用した場合には、数17式に代えて、数22式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間の入力平均ビットレートSn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0091】
【数22】
【0092】
また、数20式では、期間比としてSn−1/Snを利用した。これに代えて、第(n−1)期間を含む過去M期間の期間平均ビットレートASn−1(M)と、第n期間を含む過去M期間の期間平均ビットレートASn(M)の比を期間比として用いてもよい。つまり、数20式において、期間比として、Sn−1/Snに代えて、ASn−1(M)/ASn(M)を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートTn+1を最適制御することが可能である。
【0093】
あるいは、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、第n期間を含む過去M期間の期間平均ビットレートASn(M)と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)の比を期間比として用いてもよい。つまり、数20式において、期間比として、Sn−1/Snに代えて、ASn(M)/ASn+1(M)を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートTn+1を制御することが可能である。
【0094】
期間比として、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)を利用した場合には、数18式に代えて、数23式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0095】
【数23】
【0096】
制御レート方法(B)における目標設定ビットレートTn+1の計算方法を、数19式、数20式、数21式などを用いて説明したが、これら数式を用いて説明した場合を含め制御レート方法(B)における全ての場合において、第n期間の出力平均ビットレートCnに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートACn(M)を用いても良い。たとえば、数19式、数20式、数21式などにおいて、Cnに代えてACn(M)を用いるのである。数19式において、Cnに代えてACn(M)を用いた場合の第(N+1)期間の目標設定ビットレートTn+1の演算式を数24式に示す。これにより、目標設定ビットレートTn+1を、より緩やかに制御することが可能である。上述したように、期間平均ビットレートACn(M)としては、平均値算出部7が算出した3つの期間平均ビットレートACn(M1),ACn(M2),ACn(M3)のうちいずれかの平均値が選択される。つまり、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0097】
【数24】
【0098】
<2−3.レート制御方法(C)>
次に、レート制御方法(C)について説明する。レート制御方法(C)においても、量子化ステップ変換係数を算出し、数5式を用いて、第2ストリームの量子化ステップ値Qを算出する。また、レート制御方法(C)においても、レート制御方法(B)と同様、第n期間が終了した時点で、第(n+1)期間における第2ストリームの目標設定ビットレートTn+1を決定し、決定された目標設定ビットレートTn+1を用いて、第(n+1)期間の量子化ステップ変換係数αn+1を算出する。
【0099】
第(n+1)期間の目標設定ビットレートTn+1が決定すると、数7式を用いて説明した場合と同様の方法で、量子化ステップ変換係数αn+1が算出される。つまり、数8式〜数10式で例示したような関数fを利用して、量子化ステップ変換係数αn+1が算出される。具体的には、数17式で示すように、第(n+1)期間の目標設定ビットレートTn+1と第n期間の入力平均ビットレートSnの比を関数fに入力することで、量子化ステップ変換係数αn+1を算出する。あるいは、数18式で示すように、入力平均ビットレートSnの比に代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートASn(M)用いて量子化ステップ変換係数αn+1を算出してもよい。ASn(M)を用いる場合には、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0100】
数25式は、第(n+1)期間の目標設定ビットレートTn+1を算出する式である。つまり、トランスコーダ1が、第n期間終了後に算出する第(n+1)期間の目標設定ビットレートTn+1を表している。具体的には、第n期間の目標設定ビットレートTnから第n期間の変換済みの第2ストリームの出力平均ビットレートCnを減算した値を目標差と考えると、第(n+1)期間の目標設定ビットレートTn+1は、第2ストリームの全体目標ビットレートTに目標差を加算することで算出されるのである。
【0101】
【数25】
【0102】
数25式中、kは正の係数であり、目標設定ビットレートTn+1を調整するための係数である。このように、(Tn−Cn)により、第n期間における目標との差を算出し、全体目標ビットレートTに目標差を加算することで、出力ストリームが目標ビットレートに近づくような制御を行うのである。
【0103】
数25式では、第n期間の目標設定ビットレートTnから第n期間の第2ストリームの出力平均ビットレートCnを減算した目標差を利用しているが、この目標差をさらに調整するようにしたのが、数26式である。
【0104】
【数26】
【0105】
数26式において、目標差にSn/Sn−1が乗算されている。Sn/Sn−1は、第n期間の第1ストリームの入力平均ビットレートSnを、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1で除算した期間比である。つまり、目標差に期間比を乗算することで、目標差を調整しているのである。
【0106】
このように目標差に期間比を乗算することで、局所的な目標差の変化を補正することができる。たとえば、第n期間の入力平均ビットレートSnが局所的に第(n−1)期間と比べて小さく変化した場合には、それに伴い、目標差(Tn−Cn)が大きく変動する場合がある。このような場合にも、期間比Sn/Sn−1(この場合、期間比が1より小さな値となる。)を乗算することで、目標差を調整し、目標設定ビットレートTn+1が大きく変動することを回避できるのである。
【0107】
数26式では、第n期間の第1ストリームの入力平均ビットレートSnを、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1で除算した値を期間比とした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。入力平均ビットレートSn+1を先読みできる場合とは、上述したように、入力平均ビットレートSn+1に関する情報をバッファリングした上で、第(n+1)期間の目標設定ビットレートTn+1を算出できる時間的余裕がある場合である。この場合には、数26式において、期間比として、Sn/Sn−1に代えて、Sn+1/Snを用いるのである。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。
【0108】
期間比として、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用した場合には、数17式に代えて、数22式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間の入力平均ビットレートSn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0109】
また、数26式では、期間比としてSn/Sn−1を利用した。これに代えて、第n期間を含む過去M期間の期間平均ビットレートASn(M)と、第(n−1)期間を含む過去M期間の期間平均ビットレートASn−1(M)の比を期間比として用いてもよい。つまり、数26式において、期間比として、Sn/Sn−1に代えて、ASn(M)/ASn−1(M)を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートTn+1を最適制御することが可能である。
【0110】
あるいは、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)と、第n期間を含む過去M期間の期間平均ビットレートASn(M)の比を期間比として用いてもよい。つまり、数26式において、期間比として、Sn/Sn−1に代えて、ASn+1(M)/ASn(M)を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートTn+1を制御することが可能である。
【0111】
期間比として、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)を利用した場合には、数18式に代えて、数23式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0112】
また、制御レート方法(C)における目標設定ビットレートTn+1の計算方法を、数25式、数26式などを用いて説明したが、これら数式を用いて説明した場合を含め、この制御レート方法(C)において説明した全ての計算方法において、第n期間の出力平均ビットレートCnに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートACn(M)を用いても良い。たとえば、数25式、数26式などにおいて、Cnに代えてACn(M)を用いても良い。数25式において、Cnに代えてACn(M)を用いて目標設定ビットレートTn+1を求める演算式を数27式に示す。これにより、目標設定ビットレートTn+1を、より緩やかに制御することが可能である。そして、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0113】
【数27】
【0114】
<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)と異なる。
【0115】
数28式は、第(n+1)期間の目標設定ビットレートTn+1を算出する式である。第n期間の目標設定ビットレートTnから第n期間の変換済みの第2ストリームの出力平均ビットレートCnを減算した値を目標差として利用する点も、レート制御方法(C)と同様である。レート制御方法(C)では、この目標差に期間比を乗算することで、目標差を調整したが、数28式に示すように、レート制御方法(D)では、目標差に期間差を乗算するようにしている。
【0116】
【数28】
【0117】
数28式において、目標差に(Sn−Sn−1)が乗算されている。(Sn−Sn−1)は、第n期間の第1ストリームの入力平均ビットレートSnから、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を減算した期間差である。つまり、目標差に期間差を乗算することで、目標差を調整しているのである。なお、数28式中、係数kは、目標設定ビットレートTn+1を調整するための正の係数である。
【0118】
このように目標差に期間差を乗算することで、局所的な目標差の変化を補正することができる。たとえば、入力平均ビットレートSnが次第に小さく変化しているような場合には、それに伴い、Cnが小さくなる場合があり、目標差(Tn−Cn)が正の値になる。このような場合には、期間差(Sn−Sn−1)が負の値となり、目標設定ビットレートTn+1が大きく設定されないよう補正するのである。つまり、入力平均ビットレートSnが小さく変化しているような場合には、その変化に反して、目標設定ビットレートTn+1が大きく変化しないよう制御するのである。
【0119】
数28式で説明した目標設定ビットレートTn+1の算出方法では、目標差(Tn−Cn)に期間差を乗算するようにした。これに対して、数29式に示すように、目標差に期間差を加算するようにしてもよい。数25式中、hは、目標設定ビットレートTn+1を調整するための正の係数である。このように、期間差を加算することで、乗算した場合とは異なる特性で目標設定ビットレートTn+1を制御することが可能である。
【0120】
【数29】
【0121】
数28式では、第n期間の第1ストリームの入力平均ビットレートSnから第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を減算した値を期間差とした。そして、目標差に期間差を乗算するようにした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。この場合には、数28式において、期間差として、(Sn−Sn−1)に代えて、(Sn+1−Sn)を用いるのである。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。
【0122】
また、数29式においても、第n期間の第1ストリームの入力平均ビットレートSnから第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を減算した値を期間差とした。そして、目標差に期間差を加算するようにした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。この場合には、数29式において、期間差として、(Sn−Sn−1)に代えて、(Sn+1−Sn)を用いるのである。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。
【0123】
期間差として、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用した場合には、数22式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間の入力平均ビットレートSn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0124】
また、数28式、数29式では、期間差として(Sn−Sn−1)を利用した。これに代えて、第n期間を含む過去M期間の期間平均ビットレートASn(M)と、第(n−1)期間を含む過去M期間の期間平均ビットレートASn−1(M)の差を期間差として用いてもよい。つまり、数28式、数29式において、期間差として、(Sn−Sn−1)に代えて、(ASn(M)−ASn−1(M))を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートTn+1を最適制御することが可能である。そして、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0125】
あるいは、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)と、第n期間を含む過去M期間の期間平均ビットレートASn(M)の比を期間差として用いてもよい。つまり、数28式、数29式において、期間差として、(Sn−Sn−1)に代えて、(ASn+1(M)−ASn(M))を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートTn+1を制御することが可能である。
【0126】
期間差として、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)を利用した場合には、数23式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0127】
また、レート制御方法(D)における目標設定ビットレートTn+1の計算方法を、数28式、数29式などを用いて説明したが、これら数式を用いて説明した場合を含めレート制御方法(D)で説明した全ての計算方法において、第n期間の出力平均ビットレートCnに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートACn(M)を用いても良い。数28式において、Cnに代えてACn(M)を用いて目標設定ビットレートTn+1を算出する演算式を数30式に示す。また、数29式において、Cnに代えてACn(M)を用いて目標設定ビットレートTn+1を算出する演算式を数31式に示す。これにより、目標設定ビットレートTn+1を、より緩やかに制御することが可能である。そして、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0128】
【数30】
【0129】
【数31】
【0130】
{3.期間平均ビットレートASn(M)、ACn(M)の選択方法}
上述したように、レート制御方法(A)〜(D)において、エンコーダ3は、様々な態様で、期間平均ビットレートASn(M)、ACn(M)をパラメータとして用いて量子化ステップ値Qを算出した。
【0131】
そして、上述したように、エンコーダ3が、期間平均ビットレートASn(M)をパラメータとして用いる場合には、期間平均ビットレートASn(M1),期間平均ビットレートASn(M2),期間平均ビットレートASn(M3)の中からいずれかの平均値を選択し、量子化ステップ値Qの計算用パラメータとして用いる。また、エンコーダ3が、期間平均ビットレートACn(M)をパラメータとして用いる場合には、期間平均ビットレートACn(M1),期間平均ビットレートACn(M2),期間平均ビットレートACn(M3)の中からいずれかの平均値を選択し、量子化ステップ値Qの計算用パラメータとして用いる。
【0132】
ここで、期間平均ビットレートASn(M1),ACn(M1)をパラメータとして用いる場合には、符号量制御のフィードバックの応答期間を短く設定することになる。つまり、ビットレートの一定化に重点を置いた制御であり、いわゆるCBR(Constant Bit Rate)制御に近い制御となる。
【0133】
一方、期間平均ビットレートASn(M3),ACn(M3)をパラメータとして用いる場合には、符号量制御のフィードバックの応答期間を長く設定することになる。つまり、画質に重点を置いた制御であり、いわゆるVBR(Variable Bit Rate)制御に近い制御となる。
【0134】
期間平均ビットレートASn(M2),ACn(M2)をパラメータとして用いる場合には、上記2つの制御の中間の特性を有する制御となる。
【0135】
エンコーダ3は、エンコード処理を行いつつ、状況に応じて、パラメータとして用いる期間平均ビットレートASn(M),ACn(M)を切り替えるのである。つまり、期間平均ビットレートASn(M),ACn(M)の算出に用いるバッファ期間をM1,M2,M3の間で切り替える。
【0136】
たとえば、出力ストリームの符号量の変動が激しくなった場合には、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M3),ACn(M3)を選択する。つまり、出力平均ビットレートCnが、目標ビットレートTを中心に上下に激しく振動するような場合である。このような場合には、期間平均ビットレートASn(M),ACn(M)の計算期間を長くすることで、出力平均ビットレートCnの振動を吸収するように制御するのである。
【0137】
たとえば、出力ストリームの画質劣化が大きい場合には、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M3),ACn(M3)を選択する。つまり、入力ストリームの画像と出力ストリームの画像とのSN比が小さくなった場合である。このような場合には、期間平均ビットレートASn(M),ACn(M)の計算期間を長くすることで、比較的長い期間のビットレートを一定に保持するよう制御し、その期間内で、ある程度ビットレートの自由度を持たせることができ、画質を優先することができる。
【0138】
また、通信路の帯域に余裕があれば、比較的長い期間のビットレートを一定に保持するようにすれば、その期間内で、ある程度ビットレートの自由度を持たせることができ、画質を優先することができる。つまり、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M3),ACn(M3)を選択する。
【0139】
一方、通信路の帯域に余裕がなければ、短い期間のビットレートを一定に保持し、円滑な通信を優先する必要がある。つまり、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M1),ACn(M1)を選択する。
【0140】
通信路の帯域の状態が、上記の2つの状態にあてはまらず中間の状態であれば、期間平均ビットレートASn(M2),ACn(M2)を選択すればよい。
【0141】
このような制御を行うために、トランスコーダ1が、通信路の帯域の状態を検出する機能を備えればよい。エンコーダ3は、通信路の帯域を予め設定しておいた条件と比較し、状態に応じて、期間平均ビットレートASn(M),ACn(M)として選択するパラメータを適応的に選択するのである。
【0142】
また、画質に対するユーザの要求が高い場合には、比較的長い期間のビットレートを一定に保持するようにし、その期間内で、ある程度ビットレートの自由度を持たせる必要がある。つまり、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M3),ACn(M3)を選択する。
【0143】
一方、画質に対するユーザの要求が低ければ、短い期間のビットレートを一定に保持することで、ビットレートの一定化に重点を置くことができる。つまり、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M1),ACn(M1)を選択する。
【0144】
画質に対するユーザの要求が中程度であれば、期間平均ビットレートASn(M2),ACn(M2)を選択すればよい。
【0145】
ユーザは、トランスコーダ1に対して出力ストリームの画質レベルの設定を行うことが可能である。エンコーダ3は、ユーザにより設定された画質レベルの設定値に応じて、期間平均ビットレートASn(M),ACn(M)として選択するパラメータを選択する。ユーザが、エンコード処理の途中で画質レベルの設定値を変更した場合には、それに応じて、選択するパラメータも変更される。
【0146】
あるいは、ユーザが、直接的に、期間平均ビットレートASn(M),ACn(M)として選択するパラメータを選択するようにしてもよい。
【0147】
また、エンコーダ3が、ディスクの空き容量に応じてパラメータを適応的に選択してもよい。たとえば、ディスクの空き容量が非常に小さくなった場合には、期間平均ビットレートASn(M1),ACn(M1)を選択し、ビットレートの一定化を早急に行うよう制御すればよい。
【0148】
このように、本実施の形態においては、ストリームの符号量バッファ期間を可変とすることで、符号量制御におけるフィードバック制御の応答の速さを制御することが可能となった。これにより、ビットレートの一定化という目的と、画質の向上という目的のバランスをとりつつ、符号量を制御することが可能となる。
【0149】
なお、上記の実施の形態においては、M1,M2,M3の3つの期間の平均値を算出して用いるようにしたが、これは一例である。2つの期間の平均値を利用してもよいし、4つ以上の期間の平均値を利用してもよい。
【0150】
また、平均値算出部5,7は、常に、M1,M2,M3の期間に対応する3種類の平均値を計算し、メモリに格納するようにしてもよいし、選択された期間に対応する平均値のみを計算するようにしてもよい。
【0151】
本実施の形態においては、ストリームの符号量バッファ期間を可変とし、バッファ期間内のストリームのビットレートの平均値ASn(M),ACn(M)を利用した。つまり、数1式〜数4式に示したように、バッファ期間内の基準値として入力平均ビットレートSnあるいは出力平均ビットレートCnの平均値を利用した。この他の例として、たとえば、バッファ期間内の基準値として、ビットレートの中央値あるいは重み付けされた平均値などを用いてもよい。中央値を用いる場合、第(n−M+1)期間から第n期間までの入力平均ビットレートSnあるいは出力平均ビットレートCnの中央値を基準値として利用する。重み付けされた平均値を用いる場合には、たとえば、第n期間に近い期間のビットレートに高い重み付けした上で平均値をとる方法などが考えられる。これら他の基準値を利用する場合にも、上述した実施の形態と同様、バッファ期間として異なる期間を所定の条件やユーザ操作により設定することで、フィードバック制御の応答の速さを制御することができる。
【図面の簡単な説明】
【0152】
【図1】トランスコーダのブロック図である。
【図2】入力ストリーム(第1ストリーム)と出力ストリーム(第2ストリーム)の情報を制御単位期間ごとに示した図である。
【図3】入力平均ビットレートを格納するバッファと平均値算出部を示す図である。
【図4】出力平均ビットレートを格納するバッファと平均値算出部を示す図である。
【符号の説明】
【0153】
1 トランスコーダ
2 デコーダ
3 エンコーダ
4,6 バッファ
5,7 平均値算出部
ACn(M),ACn(M1〜M3) 期間平均ビットレート
ASn(M),ASn(M1〜M3) 期間平均ビットレート
Cn 出力平均ビットレート
Ln 制御単位期間
P 量子化ステップ値
Q 量子化ステップ値
S 入力全体ビットレート
Sn 入力平均ビットレート
T 全体目標ビットレート
Tn 目標設定ビットレート
αn 量子化ステップ変換係数
【技術分野】
【0001】
本発明は、入力ストリームをデコードして異なる出力ストリームに変換するトランスコーダに関し、詳しくは、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御する技術に関する。
【背景技術】
【0002】
デジタル放送で配信される画像や、DVD、ハードディスクなどに格納される画像などは、各種の符号化方式に従って圧縮される。これは、伝送帯域を圧迫しないため、伝送速度を上げるため、あるいは、記憶サイズを小さくするなどの目的のためである。
【0003】
画像の符号化方式には、MPEG2やH.264など様々な規格が存在する。そして、入力した符号化画像の符号量を削減するなどの目的で符号化方式の変換が行われる場合がある。トランスコーダは、入力した符号化画像を一旦デコードする。そして、トランスコーダは、デコードした画像を、再び異なる符号化方式(あるいは同じ符号化方式)で符号化する。このようにして、トランスコーダは、出力ストリームのビットレートを制御するのである。
【0004】
下記特許文献1は、第1の圧縮符号化方式で圧縮された画像を第2の圧縮符号化方式で圧縮された画像に変換するトランスコーダに関するものである。このトランスコーダは、第1の圧縮符号化方式で圧縮された画像を復号する際に発生する中間情報を用いて、第2の圧縮符号化方式で画像を圧縮するようにしている。
【0005】
【特許文献1】特開2006−74635号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
トランスコーダに入力されるストリームには、様々なシーンが含まれる。符号量をより多く割り当てなければ画質劣化を招いてしまうようなシーンや、符号量をそれほど割り当てなくても画質劣化しないようなシーンなどが含まれる。したがって、シーンによって画像圧縮の難易度は大きく変化する。
【0007】
一方、符号量制御は、上記のような画像圧縮の難易度に関わらず、ある期間におけるビットレートを一定に保持することを目的としている。このため、ビットレートを一定に保持する期間をどの程度の期間とするかは、通信路の帯域制限や画質に対するユーザの要求仕様などで変わってくる。
【0008】
たとえば、通信路の帯域制限が厳しいという想定のもとでは、符号量制御におけるフィードバックの応答期間を短く設定する必要がある。つまり、ビットレートを一定に保持する期間を短く設定する必要がある。このような符号量制御を行った場合、画質が劣化するという問題があった。
【0009】
逆に、画質を優先する場合、符号量制御におけるフィードバックの応答期間を長く設定する必要がある。つまり、ビットレートを一定に保持する期間を長く設定し、その期間、ある程度ビットレートに自由度を持たせ画質の向上を目指すのである。しかし、このような制御を行った場合、局所的にビットレートが増減する可能性があるため、通信帯域の制限に適合しないような場合がある。
【0010】
そこで、本発明は前記問題点に鑑み、ビットレートの一定化という目的と、画質の維持という目的のバランスをとりながら、出力ストリームの発生符号量を目標ビットレートに向けて適正に制御することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、請求項1記載の発明は、第1のストリームを第2のストリームに変換するトランスコーダであって、制御単位期間ごとの第1のストリームのビットレートを取得する手段と、過去複数期間の第1のストリームのビットレートを格納するバッファと、前記バッファに格納されている過去複数期間の第1のストリームのビットレートから、選択された期間に対応する第1のストリームのビットレートを取得して、第1のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、前記基準値算出手段が算出した第1のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、を備えることを特徴とする。
【0012】
請求項2記載の発明は、第1のストリームを第2のストリームに変換するトランスコーダであって、制御単位期間ごとの変換済みの第2のストリームのビットレートを取得する手段と、過去複数期間の第2のストリームのビットレートを格納するバッファと、前記バッファに格納されている過去複数期間の第2のストリームのビットレートから、選択された期間に対応する第2のストリームのビットレートを取得して、第2のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、前記基準値算出手段が算出した第2のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、を備えることを特徴とする。
【0013】
請求項3記載の発明は、請求項1または請求項2に記載のトランスコーダにおいて、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を、トランスコード処理の途中で変更可能としたことを特徴とする。
【0014】
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載のトランスコーダにおいて、ユーザ操作により前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を指定可能としたことを特徴とする。
【0015】
請求項5記載の発明は、請求項3に記載のトランスコーダにおいて、出力ストリームの符号量の変動が所定の基準を上回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とする。
【0016】
請求項6記載の発明は、請求項3に記載のトランスコーダにおいて、出力ストリームの画質が所定の基準を下回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とする。
【0017】
請求項7記載の発明は、請求項1ないし請求項6のいずれかに記載のトランスコーダにおいて、前記基準値は、選択期間内のビットレートの平均値、を含むことを特徴とする。
【0018】
請求項8記載の発明は、請求項1ないし請求項7のいずれかに記載のトランスコーダであって、第1のストリーム全体のビットレートを取得する手段と、第2のストリーム全体の目標ビットレートを設定する手段と、第2のストリーム全体の目標ビットレートと第1のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートとから変動係数を算出する変動係数算出手段と、前記基準変換係数に前記変動係数を加算することで、次の第N+1期間の期間変換係数を算出する手段と、第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、を備え、前記変動係数算出手段は、第N期間以前の変換済みの第2のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第2のストリームの基準値を用いることを特徴とする。
【0019】
請求項9記載の発明は、請求項1ないし請求項7のいずれかに記載のトランスコーダであって、第1のストリーム全体のビットレートを取得する手段と、第2のストリーム全体の目標ビットレートを設定する手段と、第2のストリーム全体の目標ビットレートと第1のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートとから変動係数を算出する変動係数算出手段と、前記基準変換係数に前記変動係数を加算することで、次の第N+1期間の期間変換係数を算出する手段と、第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、を備え、前記変動係数算出手段は、算出した前記変動係数を、さらに、前記基準値算出手段が算出した第N期間を含む選択期間内の第1のストリームの基準値で除算することで前記変動係数を調整することを特徴とする。
【0020】
請求項10記載の発明は、請求項1ないし請求項7のいずれかに記載のトランスコーダであって、第2のストリーム全体の目標ビットレートを設定する手段と、第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートと、第N期間の第2のストリームの目標ビットレートに基づいて第N+1期間の第2のストリームの目標ビットレートを決定する目標ビットレート決定手段と、を備え、第N期間以前の変換済みの第2のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第2のストリームの基準値が用いられることを特徴とする。
【0021】
請求項11記載の発明は、請求項10に記載のトランスコーダにおいて、第N期間以前の第1のストリームのビットレートを取得する手段と、決定された第N+1期間の第2のストリームの目標ビットレートと第N期間以前の第1のストリームのビットレートとの比に基づいて第N+1期間の期間変換係数を算出する期間変換係数算出手段と、第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、を備え、前記期間変換係数算出手段は、第N期間以前の第1のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第1のストリームの基準値を用いることを特徴とする。
【発明の効果】
【0022】
本発明のトランスコーダは、符号量制御の演算に用いる符号量のバッファ期間を可変としたので、状況、要求に応じて、発生符号量の適正化を行いつつ、符号量を制御することができる。
【0023】
また、符号量制御の演算に用いる符号量の選択期間をトランスコード処理の途中で可変としたので、適応的に、発生符号量の適正化を図ることが可能である。
【発明を実施するための最良の形態】
【0024】
{1.トランスコーダの全体構成}
以下、図面を参照しつつ本発明の実施の形態について説明する。図1は、本実施の形態に係るトランスコーダ1のブロック図である。このトランスコーダ1は、デコーダ2とエンコーダ3とを備えている。また、トランスコーダ1は、バッファ4、平均値算出部5、バッファ6、平均値算出部7を備えている。
【0025】
デコーダ2は、第1ストリームを入力する。第1ストリームは、符号化画像のストリームである。デコーダ2は、第1ストリームをデコードし、非圧縮の画像データをエンコーダ3に出力する。エンコーダ3は、デコーダ2においてデコードされた非圧縮の画像データを再び符号化し、第2ストリームを出力するのである。
【0026】
たとえば、トランスコーダ1は、MPEG2で符号化された第1ストリームを入力し、H.264で符号化された第2ストリームを出力するなど、ストリームの符号化方式を変換する処理を行う。そして、変換処理を行う際、出力する第2ストリームのレート制御を最適に行えるよう本発明は工夫されている。あるいは、トランスコーダ1は、MPEG2で符号化された第1ストリームを入力し、再びMPEG2で符号化された第2ストリームを出力するなど、同じ符号化方式のストリームを出力する。このときにも、出力する第2ストリームのレート制御を最適に行えるよう本発明は工夫されている。
【0027】
なお、この後説明するレート制御方法(A)〜(D)における各演算処理は、デコーダ2、エンコーダ3および平均値算出部5,7などにおいて実行される演算処理であるが、デコーダ2、エンコーダ3および平均値算出部5,7における各演算処理は、ハードウェアにより実現されてもよいし、ソフトウェア処理により実現されていてもよい。つまり、これらの処理部が、ハードウェア回路として構成されていてもよいし、CPUとメモリに格納されたプログラムとで構成されていてもよい。あるいは、一部の処理がハードウェアで処理され、一部の処理がソフトウェアで処理される形態であってもよい。
【0028】
{2.レート制御方法}
図2は、トランスコーダ1が入出力するストリームの制御単位期間ごとの情報を表した図である。トランスコーダ1は、処理時間軸を制御単位期間Ln(n=1,2・・・)に区分し、この制御単位期間Lnを処理単位としてレート制御を行う。以下の説明において、適宜、制御単位期間Lnを第n期間と呼ぶことにする。本実施の形態においては、1GOPが制御単位期間Lnとして設定される。ただし、制御単位期間Lnとしては、複数のGOP、1フレーム、連続する複数フレームなどを設定することが可能である。
【0029】
第1ストリームの入力全体ビットレートSは、シーケンスヘッダなどから取得される。入力平均ビットレートSnは、第n期間における第1ストリームの平均ビットレートである。トランスコーダ1は、バッファ4を備えており、M期間分の入力平均ビットレートSnに関する情報を格納可能としている。つまり、バッファ4は、第(n−M+1)期間から第n期間までの入力平均ビットレートSnに関する情報を格納可能としている。そして、期間平均ビットレートASn(M)は、第(n−M+1)期間から第n期間における入力平均ビットレートSnを平均した値である。期間平均ビットレートASn(M)は、数1式で表される。
【0030】
【数1】
【0031】
デコーダ2は、入力した第1ストリームから、入力全体ビットレートS、入力平均ビットレートSn、第n期間における量子化ステップ値Pなどの情報を取得し、これらの情報をエンコーダ3に与える。また、平均値算出部5は、期間平均ビットレートASn(M)をエンコーダ3に与える。エンコーダ3は、これらの情報を利用して、画像の再符号化を行う。
【0032】
第2ストリームの全体目標ビットレートTは、ユーザにより設定される。たとえば、ユーザが、トランスコーダ1に設けられた図示せぬ操作部を用いて全体目標ビットレートTを設定する。目標設定ビットレートTnは、第n期間における第2ストリームの目標ビットレートである。出力平均ビットレートCnは、第n期間における変換済みの第2ストリームの平均ビットレートである。トランスコーダ1は、バッファ6を備えており、M期間分の出力平均ビットレートCnに関する情報を格納可能としている。つまり、バッファ6は、第(n−M+1)期間から第n期間までの出力平均ビットレートCnに関する情報を格納可能としている。そして、期間平均ビットレートACn(M)は、第(n−M+1)から第n期間における出力平均ビットレートCnを平均した値である。期間平均ビットレートACn(M)は、数2式で表される。なお、この実施の形態では、期間平均ビットレートASn(M)、ACn(M)を計算する場合に利用するバッファ期間を、制御単位期間Lnと連動させたが、バッファ期間の設定方法は、これに限るものではない。たとえば、連続する過去複数フレームなどをバッファ期間として設定することが可能である。
【0033】
【数2】
【0034】
図3は、バッファ4に格納される入力平均ビットレートSn、および平均値算出部5における処理の内容を示す図である。バッファ4は、第(n−M+1)期間から第n期間における入力平均ビットレートSn−M+1〜Snを格納している。
【0035】
平均値算出部5は、バッファ4に格納されている入力平均ビットレートSnを取得し、3種類の期間平均ビットレートASn(M1),ASn(M2),ASn(M3)を算出する。期間平均ビットレートASn(M1)は、入力平均ビットレートSn−M1+1〜Snを用いて求められたM1期間の平均値である。期間平均ビットレートASn(M2)は、入力平均ビットレートSn−M2+1〜Snを用いて求められたM2期間の平均値である。期間平均ビットレートASn(M3)は、入力平均ビットレートSn−M3+1〜Snを用いて求められたM3期間の平均値である。期間平均ビットレートASn(M1),ASn(M2),ASn(M3)は、数3式で示される。
【0036】
【数3】
【0037】
後述するように、エンコーダ3は、期間平均ビットレートASn(M)を利用して、第2ストリームの量子化ステップ値Qを算出する。このとき、ユーザの設定により、あるいは所定の条件に基づいて、期間平均ビットレートASn(M1),ASn(M2),ASn(M3)のうち、いずれかの平均値が選択されて、期間平均ビットレートASn(M)として用いられる。
【0038】
図4は、バッファ6に格納される入力平均ビットレートCn、および平均値算出部7における処理の内容を示す図である。バッファ6は、第(n−M+1)期間から第n期間における入力平均ビットレートCn−M+1〜Cnを格納している。
【0039】
平均値算出部7は、バッファ6に格納されている入力平均ビットレートCnを取得し、3種類の期間平均ビットレートACn(M1),ACn(M2),ACn(M3)を算出する。期間平均ビットレートACn(M1)は、入力平均ビットレートCn−M1+1〜Cnを用いて求められたM1期間の平均値である。期間平均ビットレートACn(M2)は、入力平均ビットレートCn−M2+1〜Cnを用いて求められたM2期間の平均値である。期間平均ビットレートACn(M3)は、入力平均ビットレートCn−M3+1〜Cnを用いて求められたM3期間の平均値である。期間平均ビットレートACn(M1),ACn(M2),ACn(M3)は数4式で示される。
【0040】
【数4】
【0041】
後述するように、エンコーダ3は、期間平均ビットレートACn(M)を利用して、第2ストリームの量子化ステップ値Qを算出する。このとき、ユーザの設定により、あるいは所定の条件に基づいて、期間平均ビットレートACn(M1),ACn(M2),ACn(M3)のうち、いずれかの平均値が選択されて、期間平均ビットレートACn(M)として用いられる。
【0042】
再び、図2を参照する。量子化ステップ変換係数αnは、第(n−1)期間の終了時に算出される係数である。第1ストリームの量子化ステップ値そのもの、あるいは第1ストリームの量子化ステップ値から計算される値Pに、量子化ステップ変換係数αnを乗算することで、第2ストリームの量子化ステップ値Qが決定される。この関係を数5式に示す。
【0043】
【数5】
【0044】
ここで、量子化ステップ変換係数αnの初期値α1は、数6式で与えられる。つまり、第2ストリームの全体目標ビットレートTを第1ストリームの入力全体ビットレートSで除算した値、つまりビットレート比を関数fに入力することによって、量子化ステップ変換係数の初期値α1を求めている。
【0045】
【数6】
【0046】
ここで、関数fは、ビットレートの比から量子化ステップ値の比を求める関数であり、ビットレートの比をRB、量子化ステップ値の比をRQとすると、一般的に、数7式で表される。
【0047】
【数7】
【0048】
関数fの具体例を説明する。本実施の形態では、数8式に示すように、ピクチャあるいはマクロブロックのタイプI、P、B(Iピクチャ、Pピクチャ、Bピクチャ)それぞれに異なる特性で量子化ステップ値の比を制御できる関数を利用している。数8式中、fI(x)、fP(x)、fB(x)は、それぞれI、P、Bピクチャに対応して適応される関数を示している。
【0049】
【数8】
【0050】
数8式においては、MPEG2からH.264へストリーム変換する場合のεI、εP、εB、δI、δP、δBの値として、実験等に基づいて算出された具体的数値を例示した。つまり、実験の結果、εI=2.1、εP=2.1、εB=1.3、δI=1.1、δP=0.8、δB=0.9とすることで、良好な特性が得られた。これ以外に、入力ストリームをデコードする際に得られる画像の特徴量を利用して、ε、δの値を決定するようにしてもよい。たとえば、数9式に示すように、入力ストリームのActivity値(act値)や、動き評価値(sad値)に基づいてε、δの値を決定するようにしてもよい。
【0051】
【数9】
【0052】
数9式中、aは、act値、sはsad値を示しており、εI(a,s)、εP(a,s)、εB(a,s)、−δI(a,s)、−δP(a,s)、−δB(a,s)は、act値およびsad値をパラメータとして、εおよびδの値が算出されることを示している。
【0053】
Activity値は、マクロブロック内の画素平均値とマクロブロック内の各画素の画素値との差分絶対値和をマクロブロックごとに計算したものである。つまり、Activity値は、マクロブロック内の画素のばらつき度合い示す評価値である。MPEG2の符号量制御モデルTM5などで用いられるActivity値と同様である。動き評価値(sad値)は、マクロブロックごとに参照画像マクロブロック内の画素とフレーム間差分絶対値和を計算したものである。つまり、マクロブロックの各画素と、参照画像マクロブロックの各画素とを比較し、同じ座標位置にある画素同士の画素値差分の絶対値和を算出したものである。
【0054】
より一般的には、第n期間における画像の特徴量をILnとすると、fI(x)、fP(x)、fB(x)は、それぞれ数10式で表される。
【0055】
【数10】
【0056】
数10式中、εI(ILn)、εP(ILn)、εB(ILn)、−δI(ILn)、−δP(ILn)、−δB(ILn)は、それぞれ、画像の特徴量ILnをパラメータとして、係数ε、δが決定されることを示している。
【0057】
以下、4つのレート制御方法(A)〜(D)について説明する。
【0058】
<2−1.レート制御方法(A)>
まず、レート制御方法(A)に関して、第2ストリームの量子化ステップ値Qを算出するための量子化ステップ変換係数αnの算出方法を説明する。トランスコーダ1は、第n期間経過時において、量子化ステップ変換係数αn+1を算出する。
【0059】
数11式は、量子化ステップ変換係数αn+1を算出するための数式を示している。数11式中、(T−Cn)は、第2ストリームの全体目標ビットレートTから変換済みの第n期間における出力平均ビットレートCnを減算したものである。この値を変動係数と呼ぶことにする。kは、変動係数を調整する調整係数であり、正の値が用いられる。
【0060】
【数11】
【0061】
このように、数6式で求められたα1に対して、変動係数を加算することで、量子化ステップ値の比が目標へと近づくように調整するのである。この意味で、量子化ステップ変換係数の初期値α1は、基準変換係数と呼ぶことができる。
【0062】
数11式を用いて、量子化ステップ変換係数αn+1が算出されると、数5式により、第2ストリームの第(n+1)期間における量子化ステップ値Qが求められるのである。
【0063】
上記数11式において変動係数を算出する際、第n期間における出力平均ビットレートCnを用いた。ここで、数12式で示すように、出力平均ビットレートCnに代えて、第(n−M+1)期間から第n期間における期間平均ビットレートACn(M)用いても良い。
【0064】
【数12】
【0065】
これにより、局所的なCnの変化に大きく左右されることなく、変動係数を緩やかに制御することができる。上述したように、期間平均ビットレートACn(M)としては、平均値算出部7が算出した3つの期間平均ビットレートACn(M1),ACn(M2),ACn(M3)のうちいずれかの平均値が選択される。つまり、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0066】
また、上記数11式において変動係数を算出する際、第2ストリームの全体目標ビットレートTから変換済みの第n期間における出力平均ビットレートCnを減算したものを採用した。ここで、数13式に示すように、減算値をさらに第1のストリームの第n期間における入力平均ビットレートSnで除算するようにしてもよい。
【0067】
【数13】
【0068】
これにより、第1ストリームのビットレートが局所的に大きく変化した場合などに、変動係数が大きく影響を受けることを回避できるのである。
【0069】
さらに、数12式と数13式を用いて説明した変動係数の算出方法の両方の考え方を取り入れるようにしてもよい。つまり、数14式に示すように、出力平均ビットレートCnに代えて、期間平均ビットレートACn(M)を用い、さらに、減算値を入力平均ビットレートSnで除算するのである。これにより、変動係数をより緩やかに制御することができる。
【0070】
【数14】
【0071】
また、数13式では、全体目標ビットレートTから出力平均ビットレートCnを減算し、その減算値をビットレートSnで除算するようにした。これに代えて、数15式に示すように、減算値を、第(n−M+1)期間から第n期間における第1ストリームの期間平均ビットレートASn(M)で除算するようにしてもよい。これにより、第1ストリームのビットレートの局所的変換に影響されることなく、より緩やかに変動係数を制御することができる。上述したように、期間平均ビットレートASn(M)としては、平均値算出部5が算出した3つの期間平均ビットレートASn(M1),ASn(M2),ASn(M3)のうちいずれかの平均値が選択される。つまり、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0072】
【数15】
【0073】
また、数16式で示したように、出力平均ビットレートCnに代えて、期間平均ビットレートACn(M)を用い、入力平均ビットレートSnに代えて、期間平均ビットレートASn(M)を用いても良い。これにより、さらに緩やかに変動係数を制御することが可能である。
【0074】
【数16】
【0075】
<2−2.レート制御方法(B)>
次に、レート制御方法(B)について説明する。レート制御方法(B)においても、量子化ステップ変換係数を算出し、数5式を用いて、第2ストリームの量子化ステップ値Qを算出する。ただし、量子化ステップ変換係数の算出方法がレート制御方法(A)とは異なる。レート制御方法(A)では、量子化ステップ変換係数の初期値α1を求め、これを基準変換係数として、基準変換係数からの変動を順次求めていくこととした。これに対して、レート制御方法(B)においては、第n期間が終了した時点で、第(n+1)期間における第2ストリームの目標設定ビットレートTn+1を決定し、決定された目標設定ビットレートTn+1を用いて、第(n+1)期間の量子化ステップ変換係数αn+1を算出するのである。
【0076】
第(n+1)期間の目標設定ビットレートTn+1が決定すると、数7式を用いて説明した場合と同様の方法で、量子化ステップ変換係数αn+1が算出される。つまり、数8式〜数10式で例示したような関数fを利用して、量子化ステップ変換係数αn+1が算出される。具体的には、数17式で示すように、第(n+1)期間の目標設定ビットレートTn+1と第n期間の入力平均ビットレートSnの比を関数fに入力することで、量子化ステップ変換係数αn+1を算出する。
【0077】
【数17】
【0078】
あるいは、数18式で示すように、第n期間における入力平均ビットレートSnに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートASn(M)用いて量子化ステップ変換係数αn+1を算出してもよい。上述したように、期間平均ビットレートASn(M)としては、平均値算出部5が算出した3つの期間平均ビットレートASn(M1),ASn(M2),ASn(M3)のうちいずれかの平均値が選択される。バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0079】
【数18】
【0080】
数19式は、第(n+1)期間の目標設定ビットレートTn+1を算出する式である。つまり、トランスコーダ1が、第n期間終了後に算出する第(n+1)期間の目標設定ビットレートTn+1を示している。具体的には、第n期間の変換済みの第2ストリームの出力平均ビットレートCnを第n期間の目標設定ビットレートTnで除算した値を目標比と考えると、第(n+1)期間の目標設定ビットレートTn+1は、第2ストリームの全体目標ビットレートTを目標比で除算することで算出されるのである。
【0081】
【数19】
【0082】
数19式中、kは正の係数であり、目標設定ビットレートTn+1を調整するための係数である。このように、Cn/Tnにより第n期間における目標との比を算出し、全体目標ビットレートTを目標比で除算することで第(n+1)期間の目標設定ビットレートTn+1を調整し、全体として目標ビットレートに近づくよう制御するのである。
【0083】
数19式では、第n期間の第2ストリームの出力平均ビットレートCnを目標設定ビットレートTnで除算した値を目標比として利用しているが、この目標比をさらに調整するようにしたのが、数20式である。
【0084】
【数20】
【0085】
数20式において、目標比にSn−1/Snが乗算されている。Sn−1/Snは、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を、第n期間の第1ストリームの入力平均ビットレートSnで除算した値であり、入力平均ビットレートの期間比と呼ぶことができる。つまり、目標比に期間比を乗算することで、目標比を調整しているのである。
【0086】
このように目標比に期間比を乗算することで、局所的な目標比の変化を補正することができる。たとえば、入力平均ビットレートSnが局所的に小さく変化した場合には、それに伴い、目標比Cn/Tnも小さく変動する場合がある。このような場合にも、期間比Sn−1/Sn(この場合、期間比が1より大きな値となる。)を乗算することで、目標比を調整し、目標設定ビットレートTn+1が大きく変動することを回避できるのである。逆に、入力平均ビットレートSnが局所的に大きく変化した場合には、期間比Sn−1/Snが1より小さい値となり、目標比が急激に大きくなることを抑制することができる。
【0087】
数20式では、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を、第n期間の第1ストリームの入力平均ビットレートSnで除算した値を期間比とした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。入力平均ビットレートSn+1を先読みできる場合とは、入力平均ビットレートSn+1に関する情報をバッファリングした上で、第(n+1)期間の目標設定ビットレートTn+1を算出できる時間的余裕がある場合である。つまり、ある程度の処理遅延が許されるような場合である。数21式に、入力平均ビットレートSn+1を用いて目標設定ビットレートTn+1を算出する式を示す。
【0088】
【数21】
【0089】
数21式に示すように、期間比として、Sn/Sn+1、つまり、第n期間の第1ストリームの入力平均ビットレートSnを、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1で除算した値を用いている。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。つまり、より最新の入力情報を用いることで、目標ビットレートに対する最適制御を行うことができるのである。
【0090】
期間比として、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用した場合には、数17式に代えて、数22式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間の入力平均ビットレートSn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0091】
【数22】
【0092】
また、数20式では、期間比としてSn−1/Snを利用した。これに代えて、第(n−1)期間を含む過去M期間の期間平均ビットレートASn−1(M)と、第n期間を含む過去M期間の期間平均ビットレートASn(M)の比を期間比として用いてもよい。つまり、数20式において、期間比として、Sn−1/Snに代えて、ASn−1(M)/ASn(M)を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートTn+1を最適制御することが可能である。
【0093】
あるいは、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、第n期間を含む過去M期間の期間平均ビットレートASn(M)と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)の比を期間比として用いてもよい。つまり、数20式において、期間比として、Sn−1/Snに代えて、ASn(M)/ASn+1(M)を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートTn+1を制御することが可能である。
【0094】
期間比として、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)を利用した場合には、数18式に代えて、数23式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0095】
【数23】
【0096】
制御レート方法(B)における目標設定ビットレートTn+1の計算方法を、数19式、数20式、数21式などを用いて説明したが、これら数式を用いて説明した場合を含め制御レート方法(B)における全ての場合において、第n期間の出力平均ビットレートCnに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートACn(M)を用いても良い。たとえば、数19式、数20式、数21式などにおいて、Cnに代えてACn(M)を用いるのである。数19式において、Cnに代えてACn(M)を用いた場合の第(N+1)期間の目標設定ビットレートTn+1の演算式を数24式に示す。これにより、目標設定ビットレートTn+1を、より緩やかに制御することが可能である。上述したように、期間平均ビットレートACn(M)としては、平均値算出部7が算出した3つの期間平均ビットレートACn(M1),ACn(M2),ACn(M3)のうちいずれかの平均値が選択される。つまり、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0097】
【数24】
【0098】
<2−3.レート制御方法(C)>
次に、レート制御方法(C)について説明する。レート制御方法(C)においても、量子化ステップ変換係数を算出し、数5式を用いて、第2ストリームの量子化ステップ値Qを算出する。また、レート制御方法(C)においても、レート制御方法(B)と同様、第n期間が終了した時点で、第(n+1)期間における第2ストリームの目標設定ビットレートTn+1を決定し、決定された目標設定ビットレートTn+1を用いて、第(n+1)期間の量子化ステップ変換係数αn+1を算出する。
【0099】
第(n+1)期間の目標設定ビットレートTn+1が決定すると、数7式を用いて説明した場合と同様の方法で、量子化ステップ変換係数αn+1が算出される。つまり、数8式〜数10式で例示したような関数fを利用して、量子化ステップ変換係数αn+1が算出される。具体的には、数17式で示すように、第(n+1)期間の目標設定ビットレートTn+1と第n期間の入力平均ビットレートSnの比を関数fに入力することで、量子化ステップ変換係数αn+1を算出する。あるいは、数18式で示すように、入力平均ビットレートSnの比に代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートASn(M)用いて量子化ステップ変換係数αn+1を算出してもよい。ASn(M)を用いる場合には、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0100】
数25式は、第(n+1)期間の目標設定ビットレートTn+1を算出する式である。つまり、トランスコーダ1が、第n期間終了後に算出する第(n+1)期間の目標設定ビットレートTn+1を表している。具体的には、第n期間の目標設定ビットレートTnから第n期間の変換済みの第2ストリームの出力平均ビットレートCnを減算した値を目標差と考えると、第(n+1)期間の目標設定ビットレートTn+1は、第2ストリームの全体目標ビットレートTに目標差を加算することで算出されるのである。
【0101】
【数25】
【0102】
数25式中、kは正の係数であり、目標設定ビットレートTn+1を調整するための係数である。このように、(Tn−Cn)により、第n期間における目標との差を算出し、全体目標ビットレートTに目標差を加算することで、出力ストリームが目標ビットレートに近づくような制御を行うのである。
【0103】
数25式では、第n期間の目標設定ビットレートTnから第n期間の第2ストリームの出力平均ビットレートCnを減算した目標差を利用しているが、この目標差をさらに調整するようにしたのが、数26式である。
【0104】
【数26】
【0105】
数26式において、目標差にSn/Sn−1が乗算されている。Sn/Sn−1は、第n期間の第1ストリームの入力平均ビットレートSnを、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1で除算した期間比である。つまり、目標差に期間比を乗算することで、目標差を調整しているのである。
【0106】
このように目標差に期間比を乗算することで、局所的な目標差の変化を補正することができる。たとえば、第n期間の入力平均ビットレートSnが局所的に第(n−1)期間と比べて小さく変化した場合には、それに伴い、目標差(Tn−Cn)が大きく変動する場合がある。このような場合にも、期間比Sn/Sn−1(この場合、期間比が1より小さな値となる。)を乗算することで、目標差を調整し、目標設定ビットレートTn+1が大きく変動することを回避できるのである。
【0107】
数26式では、第n期間の第1ストリームの入力平均ビットレートSnを、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1で除算した値を期間比とした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。入力平均ビットレートSn+1を先読みできる場合とは、上述したように、入力平均ビットレートSn+1に関する情報をバッファリングした上で、第(n+1)期間の目標設定ビットレートTn+1を算出できる時間的余裕がある場合である。この場合には、数26式において、期間比として、Sn/Sn−1に代えて、Sn+1/Snを用いるのである。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。
【0108】
期間比として、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用した場合には、数17式に代えて、数22式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間の入力平均ビットレートSn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0109】
また、数26式では、期間比としてSn/Sn−1を利用した。これに代えて、第n期間を含む過去M期間の期間平均ビットレートASn(M)と、第(n−1)期間を含む過去M期間の期間平均ビットレートASn−1(M)の比を期間比として用いてもよい。つまり、数26式において、期間比として、Sn/Sn−1に代えて、ASn(M)/ASn−1(M)を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートTn+1を最適制御することが可能である。
【0110】
あるいは、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)と、第n期間を含む過去M期間の期間平均ビットレートASn(M)の比を期間比として用いてもよい。つまり、数26式において、期間比として、Sn/Sn−1に代えて、ASn+1(M)/ASn(M)を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートTn+1を制御することが可能である。
【0111】
期間比として、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)を利用した場合には、数18式に代えて、数23式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0112】
また、制御レート方法(C)における目標設定ビットレートTn+1の計算方法を、数25式、数26式などを用いて説明したが、これら数式を用いて説明した場合を含め、この制御レート方法(C)において説明した全ての計算方法において、第n期間の出力平均ビットレートCnに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートACn(M)を用いても良い。たとえば、数25式、数26式などにおいて、Cnに代えてACn(M)を用いても良い。数25式において、Cnに代えてACn(M)を用いて目標設定ビットレートTn+1を求める演算式を数27式に示す。これにより、目標設定ビットレートTn+1を、より緩やかに制御することが可能である。そして、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0113】
【数27】
【0114】
<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)と異なる。
【0115】
数28式は、第(n+1)期間の目標設定ビットレートTn+1を算出する式である。第n期間の目標設定ビットレートTnから第n期間の変換済みの第2ストリームの出力平均ビットレートCnを減算した値を目標差として利用する点も、レート制御方法(C)と同様である。レート制御方法(C)では、この目標差に期間比を乗算することで、目標差を調整したが、数28式に示すように、レート制御方法(D)では、目標差に期間差を乗算するようにしている。
【0116】
【数28】
【0117】
数28式において、目標差に(Sn−Sn−1)が乗算されている。(Sn−Sn−1)は、第n期間の第1ストリームの入力平均ビットレートSnから、第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を減算した期間差である。つまり、目標差に期間差を乗算することで、目標差を調整しているのである。なお、数28式中、係数kは、目標設定ビットレートTn+1を調整するための正の係数である。
【0118】
このように目標差に期間差を乗算することで、局所的な目標差の変化を補正することができる。たとえば、入力平均ビットレートSnが次第に小さく変化しているような場合には、それに伴い、Cnが小さくなる場合があり、目標差(Tn−Cn)が正の値になる。このような場合には、期間差(Sn−Sn−1)が負の値となり、目標設定ビットレートTn+1が大きく設定されないよう補正するのである。つまり、入力平均ビットレートSnが小さく変化しているような場合には、その変化に反して、目標設定ビットレートTn+1が大きく変化しないよう制御するのである。
【0119】
数28式で説明した目標設定ビットレートTn+1の算出方法では、目標差(Tn−Cn)に期間差を乗算するようにした。これに対して、数29式に示すように、目標差に期間差を加算するようにしてもよい。数25式中、hは、目標設定ビットレートTn+1を調整するための正の係数である。このように、期間差を加算することで、乗算した場合とは異なる特性で目標設定ビットレートTn+1を制御することが可能である。
【0120】
【数29】
【0121】
数28式では、第n期間の第1ストリームの入力平均ビットレートSnから第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を減算した値を期間差とした。そして、目標差に期間差を乗算するようにした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。この場合には、数28式において、期間差として、(Sn−Sn−1)に代えて、(Sn+1−Sn)を用いるのである。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。
【0122】
また、数29式においても、第n期間の第1ストリームの入力平均ビットレートSnから第(n−1)期間の第1ストリームの入力平均ビットレートSn−1を減算した値を期間差とした。そして、目標差に期間差を加算するようにした。これに対して、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、入力平均ビットレートSn+1を利用してもよい。この場合には、数29式において、期間差として、(Sn−Sn−1)に代えて、(Sn+1−Sn)を用いるのである。このように、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用することで、目標設定ビットレートTn+1をより高い精度で制御することが可能となる。
【0123】
期間差として、第(n+1)期間の第1ストリームの入力平均ビットレートSn+1を利用した場合には、数22式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間の入力平均ビットレートSn+1の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0124】
また、数28式、数29式では、期間差として(Sn−Sn−1)を利用した。これに代えて、第n期間を含む過去M期間の期間平均ビットレートASn(M)と、第(n−1)期間を含む過去M期間の期間平均ビットレートASn−1(M)の差を期間差として用いてもよい。つまり、数28式、数29式において、期間差として、(Sn−Sn−1)に代えて、(ASn(M)−ASn−1(M))を用いてもよい。これにより、局所的な変動の影響を小さくし、目標設定ビットレートTn+1を最適制御することが可能である。そして、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0125】
あるいは、第1ストリームの第(n+1)期間の入力平均ビットレートSn+1を先読みできる場合には、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)と、第n期間を含む過去M期間の期間平均ビットレートASn(M)の比を期間差として用いてもよい。つまり、数28式、数29式において、期間差として、(Sn−Sn−1)に代えて、(ASn+1(M)−ASn(M))を用いてもよい。これにより、局所的な変動の影響を小さくするとともに、最新の入力ビットレートを利用することで、より精度高く目標設定ビットレートTn+1を制御することが可能である。
【0126】
期間差として、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)を利用した場合には、数23式で示すように、第(n+1)期間の目標設定ビットレートTn+1と、第(n+1)期間を含む過去M期間の期間平均ビットレートASn+1(M)の比を関数fに入力することで、第(n+1)期間の量子化ステップ変換係数αn+1を算出するようにすればよい。
【0127】
また、レート制御方法(D)における目標設定ビットレートTn+1の計算方法を、数28式、数29式などを用いて説明したが、これら数式を用いて説明した場合を含めレート制御方法(D)で説明した全ての計算方法において、第n期間の出力平均ビットレートCnに代えて、第(n−M+1)期間から第n期間までの期間平均ビットレートACn(M)を用いても良い。数28式において、Cnに代えてACn(M)を用いて目標設定ビットレートTn+1を算出する演算式を数30式に示す。また、数29式において、Cnに代えてACn(M)を用いて目標設定ビットレートTn+1を算出する演算式を数31式に示す。これにより、目標設定ビットレートTn+1を、より緩やかに制御することが可能である。そして、バッファ期間としてM1,M2,M3のいずれかの期間を選択することで、フィードバック制御の応答の速度を調整することができる。
【0128】
【数30】
【0129】
【数31】
【0130】
{3.期間平均ビットレートASn(M)、ACn(M)の選択方法}
上述したように、レート制御方法(A)〜(D)において、エンコーダ3は、様々な態様で、期間平均ビットレートASn(M)、ACn(M)をパラメータとして用いて量子化ステップ値Qを算出した。
【0131】
そして、上述したように、エンコーダ3が、期間平均ビットレートASn(M)をパラメータとして用いる場合には、期間平均ビットレートASn(M1),期間平均ビットレートASn(M2),期間平均ビットレートASn(M3)の中からいずれかの平均値を選択し、量子化ステップ値Qの計算用パラメータとして用いる。また、エンコーダ3が、期間平均ビットレートACn(M)をパラメータとして用いる場合には、期間平均ビットレートACn(M1),期間平均ビットレートACn(M2),期間平均ビットレートACn(M3)の中からいずれかの平均値を選択し、量子化ステップ値Qの計算用パラメータとして用いる。
【0132】
ここで、期間平均ビットレートASn(M1),ACn(M1)をパラメータとして用いる場合には、符号量制御のフィードバックの応答期間を短く設定することになる。つまり、ビットレートの一定化に重点を置いた制御であり、いわゆるCBR(Constant Bit Rate)制御に近い制御となる。
【0133】
一方、期間平均ビットレートASn(M3),ACn(M3)をパラメータとして用いる場合には、符号量制御のフィードバックの応答期間を長く設定することになる。つまり、画質に重点を置いた制御であり、いわゆるVBR(Variable Bit Rate)制御に近い制御となる。
【0134】
期間平均ビットレートASn(M2),ACn(M2)をパラメータとして用いる場合には、上記2つの制御の中間の特性を有する制御となる。
【0135】
エンコーダ3は、エンコード処理を行いつつ、状況に応じて、パラメータとして用いる期間平均ビットレートASn(M),ACn(M)を切り替えるのである。つまり、期間平均ビットレートASn(M),ACn(M)の算出に用いるバッファ期間をM1,M2,M3の間で切り替える。
【0136】
たとえば、出力ストリームの符号量の変動が激しくなった場合には、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M3),ACn(M3)を選択する。つまり、出力平均ビットレートCnが、目標ビットレートTを中心に上下に激しく振動するような場合である。このような場合には、期間平均ビットレートASn(M),ACn(M)の計算期間を長くすることで、出力平均ビットレートCnの振動を吸収するように制御するのである。
【0137】
たとえば、出力ストリームの画質劣化が大きい場合には、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M3),ACn(M3)を選択する。つまり、入力ストリームの画像と出力ストリームの画像とのSN比が小さくなった場合である。このような場合には、期間平均ビットレートASn(M),ACn(M)の計算期間を長くすることで、比較的長い期間のビットレートを一定に保持するよう制御し、その期間内で、ある程度ビットレートの自由度を持たせることができ、画質を優先することができる。
【0138】
また、通信路の帯域に余裕があれば、比較的長い期間のビットレートを一定に保持するようにすれば、その期間内で、ある程度ビットレートの自由度を持たせることができ、画質を優先することができる。つまり、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M3),ACn(M3)を選択する。
【0139】
一方、通信路の帯域に余裕がなければ、短い期間のビットレートを一定に保持し、円滑な通信を優先する必要がある。つまり、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M1),ACn(M1)を選択する。
【0140】
通信路の帯域の状態が、上記の2つの状態にあてはまらず中間の状態であれば、期間平均ビットレートASn(M2),ACn(M2)を選択すればよい。
【0141】
このような制御を行うために、トランスコーダ1が、通信路の帯域の状態を検出する機能を備えればよい。エンコーダ3は、通信路の帯域を予め設定しておいた条件と比較し、状態に応じて、期間平均ビットレートASn(M),ACn(M)として選択するパラメータを適応的に選択するのである。
【0142】
また、画質に対するユーザの要求が高い場合には、比較的長い期間のビットレートを一定に保持するようにし、その期間内で、ある程度ビットレートの自由度を持たせる必要がある。つまり、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M3),ACn(M3)を選択する。
【0143】
一方、画質に対するユーザの要求が低ければ、短い期間のビットレートを一定に保持することで、ビットレートの一定化に重点を置くことができる。つまり、エンコーダ3は、期間平均ビットレートASn(M),ACn(M)として、期間平均ビットレートASn(M1),ACn(M1)を選択する。
【0144】
画質に対するユーザの要求が中程度であれば、期間平均ビットレートASn(M2),ACn(M2)を選択すればよい。
【0145】
ユーザは、トランスコーダ1に対して出力ストリームの画質レベルの設定を行うことが可能である。エンコーダ3は、ユーザにより設定された画質レベルの設定値に応じて、期間平均ビットレートASn(M),ACn(M)として選択するパラメータを選択する。ユーザが、エンコード処理の途中で画質レベルの設定値を変更した場合には、それに応じて、選択するパラメータも変更される。
【0146】
あるいは、ユーザが、直接的に、期間平均ビットレートASn(M),ACn(M)として選択するパラメータを選択するようにしてもよい。
【0147】
また、エンコーダ3が、ディスクの空き容量に応じてパラメータを適応的に選択してもよい。たとえば、ディスクの空き容量が非常に小さくなった場合には、期間平均ビットレートASn(M1),ACn(M1)を選択し、ビットレートの一定化を早急に行うよう制御すればよい。
【0148】
このように、本実施の形態においては、ストリームの符号量バッファ期間を可変とすることで、符号量制御におけるフィードバック制御の応答の速さを制御することが可能となった。これにより、ビットレートの一定化という目的と、画質の向上という目的のバランスをとりつつ、符号量を制御することが可能となる。
【0149】
なお、上記の実施の形態においては、M1,M2,M3の3つの期間の平均値を算出して用いるようにしたが、これは一例である。2つの期間の平均値を利用してもよいし、4つ以上の期間の平均値を利用してもよい。
【0150】
また、平均値算出部5,7は、常に、M1,M2,M3の期間に対応する3種類の平均値を計算し、メモリに格納するようにしてもよいし、選択された期間に対応する平均値のみを計算するようにしてもよい。
【0151】
本実施の形態においては、ストリームの符号量バッファ期間を可変とし、バッファ期間内のストリームのビットレートの平均値ASn(M),ACn(M)を利用した。つまり、数1式〜数4式に示したように、バッファ期間内の基準値として入力平均ビットレートSnあるいは出力平均ビットレートCnの平均値を利用した。この他の例として、たとえば、バッファ期間内の基準値として、ビットレートの中央値あるいは重み付けされた平均値などを用いてもよい。中央値を用いる場合、第(n−M+1)期間から第n期間までの入力平均ビットレートSnあるいは出力平均ビットレートCnの中央値を基準値として利用する。重み付けされた平均値を用いる場合には、たとえば、第n期間に近い期間のビットレートに高い重み付けした上で平均値をとる方法などが考えられる。これら他の基準値を利用する場合にも、上述した実施の形態と同様、バッファ期間として異なる期間を所定の条件やユーザ操作により設定することで、フィードバック制御の応答の速さを制御することができる。
【図面の簡単な説明】
【0152】
【図1】トランスコーダのブロック図である。
【図2】入力ストリーム(第1ストリーム)と出力ストリーム(第2ストリーム)の情報を制御単位期間ごとに示した図である。
【図3】入力平均ビットレートを格納するバッファと平均値算出部を示す図である。
【図4】出力平均ビットレートを格納するバッファと平均値算出部を示す図である。
【符号の説明】
【0153】
1 トランスコーダ
2 デコーダ
3 エンコーダ
4,6 バッファ
5,7 平均値算出部
ACn(M),ACn(M1〜M3) 期間平均ビットレート
ASn(M),ASn(M1〜M3) 期間平均ビットレート
Cn 出力平均ビットレート
Ln 制御単位期間
P 量子化ステップ値
Q 量子化ステップ値
S 入力全体ビットレート
Sn 入力平均ビットレート
T 全体目標ビットレート
Tn 目標設定ビットレート
αn 量子化ステップ変換係数
【特許請求の範囲】
【請求項1】
第1のストリームを第2のストリームに変換するトランスコーダであって、
制御単位期間ごとの第1のストリームのビットレートを取得する手段と、
過去複数期間の第1のストリームのビットレートを格納するバッファと、
前記バッファに格納されている過去複数期間の第1のストリームのビットレートから、選択された期間に対応する第1のストリームのビットレートを取得して、第1のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、
前記基準値算出手段が算出した第1のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、
を備えることを特徴とするトランスコーダ。
【請求項2】
第1のストリームを第2のストリームに変換するトランスコーダであって、
制御単位期間ごとの変換済みの第2のストリームのビットレートを取得する手段と、
過去複数期間の第2のストリームのビットレートを格納するバッファと、
前記バッファに格納されている過去複数期間の第2のストリームのビットレートから、選択された期間に対応する第2のストリームのビットレートを取得して、第2のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、
前記基準値算出手段が算出した第2のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、
を備えることを特徴とするトランスコーダ。
【請求項3】
請求項1または請求項2に記載のトランスコーダにおいて、
前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を、トランスコード処理の途中で変更可能としたことを特徴とするトランスコーダ。
【請求項4】
請求項1ないし請求項3のいずれかに記載のトランスコーダにおいて、
ユーザ操作により前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を指定可能としたことを特徴とするトランスコーダ。
【請求項5】
請求項3に記載のトランスコーダにおいて、
出力ストリームの符号量の変動が所定の基準を上回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とするトランスコーダ。
【請求項6】
請求項3に記載のトランスコーダにおいて、
出力ストリームの画質が所定の基準を下回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とするトランスコーダ。
【請求項7】
請求項1ないし請求項6のいずれかに記載のトランスコーダにおいて、
前記基準値は、
選択期間内のビットレートの平均値、
を含むことを特徴とするトランスコーダ。
【請求項8】
請求項1ないし請求項7のいずれかに記載のトランスコーダであって、
第1のストリーム全体のビットレートを取得する手段と、
第2のストリーム全体の目標ビットレートを設定する手段と、
第2のストリーム全体の目標ビットレートと第1のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、
第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートとから変動係数を算出する変動係数算出手段と、
前記基準変換係数に前記変動係数を加算することで、次の第N+1期間の期間変換係数を算出する手段と、
第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、
を備え、
前記変動係数算出手段は、第N期間以前の変換済みの第2のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第2のストリームの基準値を用いることを特徴とするトランスコーダ。
【請求項9】
請求項1ないし請求項7のいずれかに記載のトランスコーダであって、
第1のストリーム全体のビットレートを取得する手段と、
第2のストリーム全体の目標ビットレートを設定する手段と、
第2のストリーム全体の目標ビットレートと第1のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、
第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートとから変動係数を算出する変動係数算出手段と、
前記基準変換係数に前記変動係数を加算することで、次の第N+1期間の期間変換係数を算出する手段と、
第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、
を備え、
前記変動係数算出手段は、算出した前記変動係数を、さらに、前記基準値算出手段が算出した第N期間を含む選択期間内の第1のストリームの基準値で除算することで前記変動係数を調整することを特徴とするトランスコーダ。
【請求項10】
請求項1ないし請求項7のいずれかに記載のトランスコーダであって、
第2のストリーム全体の目標ビットレートを設定する手段と、
第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートと、第N期間の第2のストリームの目標ビットレートに基づいて第N+1期間の第2のストリームの目標ビットレートを決定する目標ビットレート決定手段と、
を備え、
第N期間以前の変換済みの第2のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第2のストリームの基準値が用いられることを特徴とするトランスコーダ。
【請求項11】
請求項10に記載のトランスコーダにおいて、
第N期間以前の第1のストリームのビットレートを取得する手段と、
決定された第N+1期間の第2のストリームの目標ビットレートと第N期間以前の第1のストリームのビットレートとの比に基づいて第N+1期間の期間変換係数を算出する期間変換係数算出手段と、
第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、
を備え、
前記期間変換係数算出手段は、第N期間以前の第1のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第1のストリームの基準値を用いることを特徴とするトランスコーダ。
【請求項1】
第1のストリームを第2のストリームに変換するトランスコーダであって、
制御単位期間ごとの第1のストリームのビットレートを取得する手段と、
過去複数期間の第1のストリームのビットレートを格納するバッファと、
前記バッファに格納されている過去複数期間の第1のストリームのビットレートから、選択された期間に対応する第1のストリームのビットレートを取得して、第1のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、
前記基準値算出手段が算出した第1のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、
を備えることを特徴とするトランスコーダ。
【請求項2】
第1のストリームを第2のストリームに変換するトランスコーダであって、
制御単位期間ごとの変換済みの第2のストリームのビットレートを取得する手段と、
過去複数期間の第2のストリームのビットレートを格納するバッファと、
前記バッファに格納されている過去複数期間の第2のストリームのビットレートから、選択された期間に対応する第2のストリームのビットレートを取得して、第2のストリームのビットレートの選択期間内の基準値を算出する基準値算出手段と、
前記基準値算出手段が算出した第2のストリームのビットレートの選択期間内の基準値をパラメータとして含めて、第2のストリームの量子化ステップ値を算出する量子化ステップ値算出手段と、
を備えることを特徴とするトランスコーダ。
【請求項3】
請求項1または請求項2に記載のトランスコーダにおいて、
前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を、トランスコード処理の途中で変更可能としたことを特徴とするトランスコーダ。
【請求項4】
請求項1ないし請求項3のいずれかに記載のトランスコーダにおいて、
ユーザ操作により前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を指定可能としたことを特徴とするトランスコーダ。
【請求項5】
請求項3に記載のトランスコーダにおいて、
出力ストリームの符号量の変動が所定の基準を上回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とするトランスコーダ。
【請求項6】
請求項3に記載のトランスコーダにおいて、
出力ストリームの画質が所定の基準を下回った場合に、前記量子化ステップ値算出手段がパラメータとして用いる基準値の選択期間を拡大する方向へ制御することを特徴とするトランスコーダ。
【請求項7】
請求項1ないし請求項6のいずれかに記載のトランスコーダにおいて、
前記基準値は、
選択期間内のビットレートの平均値、
を含むことを特徴とするトランスコーダ。
【請求項8】
請求項1ないし請求項7のいずれかに記載のトランスコーダであって、
第1のストリーム全体のビットレートを取得する手段と、
第2のストリーム全体の目標ビットレートを設定する手段と、
第2のストリーム全体の目標ビットレートと第1のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、
第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートとから変動係数を算出する変動係数算出手段と、
前記基準変換係数に前記変動係数を加算することで、次の第N+1期間の期間変換係数を算出する手段と、
第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、
を備え、
前記変動係数算出手段は、第N期間以前の変換済みの第2のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第2のストリームの基準値を用いることを特徴とするトランスコーダ。
【請求項9】
請求項1ないし請求項7のいずれかに記載のトランスコーダであって、
第1のストリーム全体のビットレートを取得する手段と、
第2のストリーム全体の目標ビットレートを設定する手段と、
第2のストリーム全体の目標ビットレートと第1のストリーム全体のビットレートとの比に基づいて基準変換係数を算出する手段と、
第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートとから変動係数を算出する変動係数算出手段と、
前記基準変換係数に前記変動係数を加算することで、次の第N+1期間の期間変換係数を算出する手段と、
第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、
を備え、
前記変動係数算出手段は、算出した前記変動係数を、さらに、前記基準値算出手段が算出した第N期間を含む選択期間内の第1のストリームの基準値で除算することで前記変動係数を調整することを特徴とするトランスコーダ。
【請求項10】
請求項1ないし請求項7のいずれかに記載のトランスコーダであって、
第2のストリーム全体の目標ビットレートを設定する手段と、
第2のストリーム全体の目標ビットレートと、第N期間以前の変換済みの第2のストリームのビットレートと、第N期間の第2のストリームの目標ビットレートに基づいて第N+1期間の第2のストリームの目標ビットレートを決定する目標ビットレート決定手段と、
を備え、
第N期間以前の変換済みの第2のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第2のストリームの基準値が用いられることを特徴とするトランスコーダ。
【請求項11】
請求項10に記載のトランスコーダにおいて、
第N期間以前の第1のストリームのビットレートを取得する手段と、
決定された第N+1期間の第2のストリームの目標ビットレートと第N期間以前の第1のストリームのビットレートとの比に基づいて第N+1期間の期間変換係数を算出する期間変換係数算出手段と、
第N+1期間の第1のストリームの量子化ステップ値に前記期間変換係数を乗算することで、第N+1期間の第2のストリームの量子化ステップ値を算出する手段と、
を備え、
前記期間変換係数算出手段は、第N期間以前の第1のストリームのビットレートとして、前記基準値算出手段が算出した第N期間を含む選択期間内の第1のストリームの基準値を用いることを特徴とするトランスコーダ。
【図1】
【図2】
【図3】
【図4】
【図2】
【図3】
【図4】
【公開番号】特開2009−206543(P2009−206543A)
【公開日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願番号】特願2008−43848(P2008−43848)
【出願日】平成20年2月26日(2008.2.26)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
【公開日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願日】平成20年2月26日(2008.2.26)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
[ Back to top ]