(57)【特許請求の範囲】
【請求項１】
動画像シーケンスを符号化する際、入力フレームレートが一定で、単位時間内に入力される複数のフレームのうち、符号化するフレーム数を表す符号化フレームレートを変化させることが可能な符号化方法において、
符号化対象フレームを予め与えられた一定フレーム間隔でフレーム内符号化で符号化し、その符号化が終了した後、フレーム内符号化フレームの発生情報量と予め与えられた定数から、フレーム間符号化フレームの仮の目標発生情報量を算出して、次のフレーム内符号化フレームまでの間に符号化されるフレーム間符号化の枚数を算出することで、符号化フレームレートを決定する、
ことを特徴とする画像符号化制御方法。
【請求項２】
前期フレーム内符号化フレームの発生情報量をG0、ビットレートをR,前記フレーム内符号化の間隔をTc、符号化データバッファの初期値をBinit、フレーム内符号化を行う直前の符号化データバッファの占有量をB0、予め与えられた定数をＩＰrateとすると、
単位時間内に符号化するフレーム間符号化のフレーム数である前記符号化フレームレートＦｔを（R・Tc＋（Ｂinit−B0）−G０）／（G0・ＩＰrate・Tc）で求めて決定する、
ことを特徴とする請求項１記載の画像符号化制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画像符号化の符号化制御方法に関するものである。
【０００２】
【従来の技術】
固定ビットレートにて符号化制御が行われる場合、直前に符号化されたフレームの発生情報量から、次の符号化対象フレームまでの時間を決定している。例えば、ビットレートをＲ、符号化対象フレームにおける発生情報量をＧとすると、次の符号化対象フレームまでの時間Ｔは、
Ｔ＝Ｇ／Ｒ
となる。実際は、入力フレームは決まったフレームレート（ＮＴＳＣの場合、２９．９７Ｈｚ）で入力されるため、入力フレームレートにより量子化される。図４にその例を示す。この例では、各符号化対象フレーム（ＦｒａｍｅＡ〜Ｄ）で発生した情報量に対し、ビットレートＲを傾きとし、全ての情報を伝送し終えた時点で、次の入力フレームを符号化対象フレームとして符号化を行う。例えば、ＦｒａｍｅＡの発生情報量をＧａ、入力フレームレートをｆ［ｆｐｓ］とした場合、ＦｒａｍｅＡとＦｒａｍｅＢの間のフレームのコマ落し枚数Ｓａｂは次式より算出できる。
【０００３】
Ｓａｂ＝（Ｇａ／Ｒ）・ｆ
上記のように、符号化対象フレームの発生情報量に応じてフレームのコマ落し（以下、フレームスキップ）を決定することにより、固定ビットレートでの符号化が可能となる。
【０００４】
しかし、上記の方法では、フレームスキップが頻繁に発生する。そこで、符号化データを一時的に蓄えておくバッファメモリを持つことにより、発生情報量の変動を吸収し、フレームスキップを抑える方法がある。但し、この手法においても、符号化データのバッファメモリの占有量が高くなった場合は、フレームスキップが発生する。図５にその例を示す。この例では、発生情報量が大きい符号化フレームであっても、バッファ容量以下であればフレームスキップは発生させない。逆に、バッファの占有量が高くなり、占有量がバッファ上限を越える可能性がある場合は、フレームスキップを発生させる。
【０００５】
このように、バッファメモリを持つことで、フレームスキップを抑えつつ固定ビットレートでの符号化が可能となる。
【０００６】
【発明が解決しようとする課題】
上記従来の固定ビットレートによる符号化制御方法では、現在の符号化対象フレームの発生情報量や符号化データのバッファ占有量により、次の符号化対象フレームまでの間隔（フレームスキップ数）が決定される。つまり、発生情報量が多いフレームの後やバッファメモリ占有量が上限近くであるときには、フレームスキップ数が多くなり符号化フレームレートは低下し、逆に発生情報量が少ない場合やバッファ占有量が小さいときは、フレームスキップ数が少なくなり符号化フレームレートは高くなる。
【０００７】
今、フレーム内符号化とフレーム間符号化を組み合わせた場合を例としてあげる。フレーム内符号化は、フレーム間符号化に比べ、符号化効率は低いために発生情報量は極端に大きくなるが、最初の符号化対象フレームと、伝送エラーに対する処置や誤差伝搬の防止、あるいはネットワークプロトコルによりパケットの破棄が発生しそのパケットが再送されない場合や、ライブ中継のように常時伝送中の映像データを途中から復号開始するため（Ｉｎｔｒａリフレッシュ）に用いる必要がある。図６にその例を示す。この例では、最初の符号化対象フレームをフレーム内符号化フレーム（Ｉｎｔｒａフレーム：●印）とし、それ以降をフレーム間符号化フレーム（Ｉｎｔｅｒフレーム：○印）としている。また、リフレッシュの為に、４フレーム毎にフレーム内符号化を行っている。この例から分かるように、Ｉｎｔｒａフレームの直後はフレームのスキップ数が多くなる。また、Ｓｃｅｎｅ（シーン）ＡからＳｃｅｎｅＢに切り替わった後もフレームスキップが大きくなっている。これは、ＳｃｅｎｅＡとＳｃｅｎｅＢの映像の相関性が小さいことにより、フレーム間符号化を用いても冗長性の削除は出来なかったためである。この例から分かるように、各符号化対象フレームにおける発生情報量の変動が激しい場合は、それに伴いフレームレートの変動が激しくなる。
【０００８】
次に、符号化データのバッファ占有量がバッファ上限に近くで動作している場合を考える。従来方法では、符号化フレームレートを入力フレームレートに近付ける制御を行なっている。バッファ占有量がバッファ上限に近い場合、バッファメモリのオーバーフローを防ぐため、粗く量子化するなどして発生情報量を減少させる制御が働く。粗く量子化しても十分に発生情報量を減す事ができない場合は、フレームスキップを発生させる。このため、符号化フレームレートは、入力フレームレートに近づくものの、各符号化対象フレームは、粗く量子化されるために著しく画質が劣化する。
【０００９】
以上、示したように、従来の固定ビットレートによる符号化の制御方法では、各符号化対象フレームにおける発生情報量の変動が激しい場合は、それに伴いフレームレートの変動が激しくなるという問題と、符号化データのバッファ占有量がバッファ上限に近くで動作している場合は、符号化対象フレームの再生画質が著しく劣化する問題があった。
【００１０】
本発明の目的は、動画像符号化において、符号化フレームレートを均一に揃え、かつ、符号化フレームの画質を向上させることにある。
【００１１】
【課題を解決するための手段】
上記の目的を達成するため、本発明は、動画像シーケンスを符号化する際、入力フレームレートが一定で、単位時間内に入力される複数のフレームのうち、符号化するフレーム数を表す符号化フレームレートを変化させることが可能な符号化方法において、符号化対象フレームを予め与えられた一定フレーム間隔でフレーム内符号化で符号化し、その符号化が終了した後、フレーム内符号化フレームの発生情報量と予め与えられた定数から、フレーム間符号化フレームの仮の目標発生情報量を算出して、次のフレーム内符号化フレームまでの間に符号化されるフレーム間符号化の枚数を算出することで、符号化フレームレートを決定する過程を有することを特徴とする。
【００１３】
さらに、前記フレーム内符号化フレームの発生情報量をＧ0、ビットレートをＲ、前記フレーム内符号化の間隔をＴc、符号化データバッファの初期値をＢinit、フレーム内符号化を行う直前の符号化データバッファの占有量をＢ0、予め与えられた定数をＩＰrateとすると、単位時間内に符号化するフレーム間符号化のフレーム数である前記符号化フレームレートＦｔを（Ｒ・Ｔc＋（Ｂint−Ｂ0）−Ｇ0）／（Ｇ0・ＩＰrate・Ｔc）で求めて決定することを特徴とする。
【００１４】
従来方法では、符号化フレームレートは、発生情報量や符号化データバッファの占有量によって決定される。このため、発生情報量の変動が激しい場合は、その影響を受けて符号化フレームレートの変動も大きくなっていた。また、符号化フレームレートを入力フレームレートに近づけようとするため、符号化データのバッファ占有量がバッファ上限に近くで動作している場合は、符号化対象フレームは粗く量子化されて画質の劣化を招いていた。
【００１５】
そこで、本発明では、直前の符号化対象フレームの発生情報量および符号化時の符号化データバッファの占有量に因らず、一定時間内の符号化フレームレートをほぼ固定として符号化処理を行う。以下に、本発明の制御方法を示す。
【００１６】
まず、時間間隔Ｔの目標符号化フレームレートＦｔを算出する。目標符号化フレームレートＦｔは、符号化済みフレームの発生情報量や符号化データバッファの占有量から算出する。その時の時間間隔Ｔ内の符号化対象フレーム数Ｎは、
Ｎ＝Ｔ／Ｆｔ
となる。入力フレームレートに対し、より小さい目標符号化フレームレートＦｔを設定することにより、各符号化対象フレームに割り当て可能な情報量を増やすことが可能であり、画質向上につながる。
【００１７】
次に、時間間隔Ｔ内の符号化対象フレームの目標情報量Ｔｂi（ｉ＝１，２，３，…Ｎ）を算出する。符号化対象フレームの目標情報量Ｔｂiは、次式から算出する。
【００１８】
Ｔｂi＝ｆ（Ｒ，Ｔ，Ｆｔ，Ｂ0，Ｂi，Ｂinit）
ここで、Ｒはビットレート、Ｂ0は時間間隔Ｔ内における最初のフレームの符号化直前のバッファ占有量、Ｂiは符号化対象フレームの符号化直前のバッファ占有量、Ｂinitはバッファの初期値である。
【００１９】
そして、時間間隔Ｔが過ぎた後、次の時間間隔内の符号化フレームレートを決定し、同様に符号化処理を行う。
【００２０】
時間間隔Ｔ内では、符号化フレームレートＦｔは、基本的に一定である。しかし、バッファ占有量や画質の観点から、符号化フレームレートＦｔを変動させることは可能である。
【００２１】
また、本発明で用いている時間間隔Ｔは、例えばリフレッシュ間隔Ｔcを用いるなど予め与えておくことで処理を進めることもできるが、入力される画像信号の性質や発生情報量、符号化データバッファの状態など、他の要因から動的に決定しても良い。
【００２２】
【発明の実施の形態】
以下、図を用いて本発明の実施形態例を説明する。本実施形態例では、フレーム内／フレーム間符号化を用い、一定期間ＴｃでＩｎｔｒａリフレッシュを行う。また、Ｒをビットレート、Ｂinitを符号化データバッファの初期値とし、時間間隔は、Ｉｎｔｒａリフレッシュの間隔Ｔｃ（リフレッシュ周期）を用いる。更に、最大符号化フレームレートＦmax、最低目標情報量ＴＧminを設定する。
【００２３】
図１に本発明の一実施形態例の符号化制御方法を実施するための構成例をブロック図で示す。入力端子４０１に入力されるフレームは、スイッチ４０２が閉じた時にスイッチ４０３に送られる。このスイッチ４０２は、フレームスキップ数算出部４１３により制御され、符号化フレームレートに応じて開閉される。スイッチ４０３，４０６，４１１は、符号化アルゴリズムにより切替えるスイッチである。これらのスイッチ４０３，４０６，４１１は、符号化アルゴリズム切替え制御部４０７により制御され、イントラ（Ｉｎｔｒａ）リフレッシュ間隔ＴｃごとＩｎｔｒａ側に切替える。符号化対象フレームは、スイッチ４０３，４０６の切替え状態がＩｎｔｒａ側であればフレーム内符号化部４０４で、Ｉｎｔｅｒ側であればフレーム間符号化部４０５で符号化され、その符号化データは、符号化データバッファメモリ４０９に蓄えられて伝送レートＲで出力端子４１５から出力される。
【００２４】
ここで、制御の手順を説明する。図２に本実施形態例のフローチャートを示す。フレーム内符号化から符号化処理を始める場合を考える。この時、スイッチ４０３，４０６，４１１は、Ｉｎｔｒａ側に閉じている。
【００２５】
まず、スイッチ４０３に入力された符号化対象フレームは、フレーム内符号化部４０４に入力され、ここでフレーム内符号化が行なわれる。そして、フレーム内符号化終了後、フレーム内符号化部４０４から送られたフレーム内符号化フレームの発生情報量Ｇ0と、予め与えられた定数ＩＰrateとから、フレーム間符号化フレーム数算出部４１０にて、次のフレーム内符号化フレームまでのフレーム間符号化フレームの枚数Ｎを決定する。
【００２６】
フレーム間符号化フレームの枚数Ｎは、以下のように算出する。始めに、フレーム間符号化フレームの仮の目標発生情報量ＴＧInterを算出する。この仮の目標発生情報量ＴＧInterは、イントラリフレッシュの時間間隔Ｔｃ内に符号化するＩｎｔｅｒフレームに、均等に情報量を割り当てた場合の目標情報量である。フレーム間符号化フレームの仮の目標発生情報量ＴＧInterは次式より算出する。
【００２７】
ＴＧInter＝Ｇ0・ＩＰrate
更に、求められたフレーム間符号化フレームの仮の目標発生情報量ＴＧInterから、フレーム間符号化フレームの枚数Ｎを決定する。例えば、図６において、本発明による方法ではＮ＝３である。
【００２８】
Ｎ＝（Ｒ・Ｔｃ＋（Ｂinit−Ｂ0）−Ｇ0）／ＴＧInter
Ｂ0はフレーム内符号化を行う直前の符号化データバッファメモリ４０９の占有量であり、スイッチ４１１がＩｎｔｒａ側に閉じているときにメモリ４１２に蓄えられる。このメモリ４１２の初期値は、バッファの初期値Ｂinitである。そして、フレームスキップ数算出部４１３で、フレーム間符号化フレームの枚数Ｎから符号化フレームレートＦｔを算出し、この符号化フレームレートＦｔからフレームスキップ数を算出して、入力フレームに対し、１／Ｆｔ間隔でスイッチ４０２を閉じる。この時、符号化フレームレートＦｔは、
Ｆｔ＝Ｎ／Ｔｃ
となる。符号化フレームレートＦｔが、最大符号化フレームレートＦmaxより大きい場合は、Ｆｔ＝Ｆmaxとする。
【００２９】
符号化フレームレート算出後、次のイントラリフレッシュまで、フレーム間符号化を行う。この時、スイッチ４０３，４０６，４１１は、符号化アルゴリズム切替え制御部４０７によりＩｎｔｅｒ側に閉じられる。
【００３０】
各々のフレーム間符号化フレームの目標情報量Ｔｂi（ｉ＝１，２，３，…Ｎ）は、目標情報量算出部４０８で、各符号化対象フレームの符号化の直前に算出する。ｉ番目のフレーム間符号化フレームの符号化直前のバッファ占有量Ｂiは、
【００３１】
【数１】
0003946804.tif 000002
【００３２】
である。ここで、Ｇjは符号化済みフレームの発生情報量である。符号化直前のバッファ占有量Ｂiから、目標情報量Ｔｂiは、次式より算出できる。この目標情報量Ｔｂiが大きい場合には、符号化時に量子化ステップを小さくして、実際の発生情報量を大きくできるし、又目標情報量Ｔｂiが小さい場合には、符号化時に量子化ステップを大きくして、実際の発生情報量を小さくする制御を行う。
【００３３】
Ｔｂi＝（Ｒ・Ｔｃ（１−ｉ／Ｎ）＋Ｂi＋Ｂinit−２Ｂ0）／（Ｎ−（ｉ−１））
符号化直前のバッファ占有量Ｂiは、スイッチ４１１がＩｎｔｅｒ側に閉じて符号化データバッファメモリ４０９に接続されているときにメモリ４１４に蓄えられる。目標情報量Ｔｂiが、最低目標情報量ＴＧmin以下である場合は、Ｔｂi＝ＴＧminとする。
【００３４】
例として、図３にフレームスキップ数の変化を示す。実線は本発明による方法であり、破線は従来方法によるものである。この例のリフレッシュ周期Ｔｃ内の全発生情報量は、本発明による方法と従来方法とも同じである。この例から分かるように、従来方法に比べ、符号化フレームレートは低下しているものの、各符号化フレームの発生情報量を増加させることが出来るため、画質を向上させることが出来る。すなわち、従来ではＮ＝４、本発明でＮ＝３となっており、符号化フレームレートは減少しているが、各フレーム間符号化フレームに対応する発生情報量は本発明の方が大きい。また、従来方法では、フレームレートが不均一でフレームレートの変動がはげしいが、本発明による方法では、フレームレートが均一になり、実時間復号処理が可能になることがわかる。
【００３５】
本実施形態例では、時間間隔Ｔは、リフレッシュ周期など符号化処理の構造に合わせているが、入力される画像や発生情報量、符号化データバッファの状態など、他の要因から動的に決定しても良い。例えば、入力されるフレームのシーンチェンジを検出し、各シーンに合わせて時間間隔Ｔを設定する場合などである。
【００３６】
【発明の効果】
以上説明したように、本発明によれば、符号化フレームレートの変動を抑えることができ、さらに、符号化対象フレームの画質劣化を抑えることができる。これにより、本発明は、特に比較的低レートの映像伝送において、高効率な映像符号化アルゴリズムを提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態例の画像符号化制御方法を実施するための構成例を示すブロック図である。
【図２】上記実施形態例の画像符号化制御方法による手順を示すフローチャートである。
【図３】本発明方法と従来方法による符号化フレーム数の比較を示す図である。
【図４】従来技術による入力フレームと符号化対象フレームの関係を示す図である。
【図５】従来技術による入力フレームと符号化対象フレーム（バッファメモリあり）の関係を示す図である。
【図６】従来技術によるフレーム内／フレーム間符号化の例を示す図である。
【符号の説明】
４０１…入力端子
４０２…スイッチ
４０３，４０６，４１１…スイッチ
４０４…フレーム内符号化部
４０５…フレーム間符号化部
４０７…符号化アルゴリズム切替え制御部
４０８…目標情報量算出部
４０９…符号化データバッファメモリ
４１０…フレーム間符号化フレーム数算出部
４１２，４１４…メモリ
４１３…フレームスキップ数算出部
４１５…出力端子
【図１】
0003946804.tif 000003
【図２】
0003946804.tif 000004
【図３】
0003946804.tif 000005
【図４】
0003946804.tif 000006
【図５】
0003946804.tif 000007
【図６】
0003946804.tif 000008