(57)【要約】【課題】リアルタイム可変ビット率制御によって画質を改善させるビデオエンコーダのエンコーディング率制御器、それを備えたビデオデータ伝送システム、及びその方法を提供する。【解決手段】エンコーディング率と歪曲との関係を定義せずとも、従来のエンコーディング結果に基づいて現在のピクチャーにビットを割当て、現在のピクチャーの性質が以前のピクチャーと異なる場合、制限されたビットに合せるように強制せず、量子化スケール変化による追加ビットも使用せずにピクチャー内の多様な性質に適応して量子化スケールを設定するエンコーディング率制御器、及びビデオデータ伝送システムである。したがって、このようなリアルタイム可変ビット率制御方式でエンコーディングされたビデオデータがモニターに表示されるようにデコーディングされる時、ディスプレイ画質を改善させうる。【選択図】図１
2005065291.tif 000002
【特許請求の範囲】
【請求項１】
以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数と平均目標ビット数、及びバッファバランス値を利用して、現在のピクチャータイプの目標ビット数を計算して出力するビット割当て段階と、
前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値と前記目標ビット数とを利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算して出力するレートコントロール段階と、
前記現在のピクチャータイプのマクロブロックローそれぞれに対応して、以前のローでの単位ロー当り目標ビット数とエンコーディングビット数とを計算し、その値を含む関数によって現在のローに対応する量子化スケール値を計算して出力し、前記現在のピクチャータイプの全体エンコーディングビット数を計算して出力する適応量子化段階と、
前記適応量子化段階で出力される前記量子化スケール値を保存して、前記以前のピクチャータイプ及び前記以前のローマクロブロックの量子化スケール値を出力するメモリ入出力段階と、
前記現在のピクチャータイプの全体エンコーディングビット数及び前記平均目標ビット数を利用して、前記バッファバランス値を計算して出力するバッファ量計算段階と、を備えることを特徴とするビデオエンコーダのエンコーディング率の制御方法。
【請求項２】
前記目標ビット数の計算は、
数式、
【数１】
2005065291.tif 000013
（ここで、Ｔは目標ビット数、Ｔａｖｇｉ，ｐ，ｂはピクチャータイプ別平均目標ビット数、Ｂｉ，ｐ，ｂはピクチャータイプ別平均エンコーディングビット数、Ｎｉ、Ｎｐ、及びＮｂそれぞれはＧＯＰ内のＩ、Ｐ、及びＢピクチャー数、ｂｉｔ＿ｒａｔｅは所定の伝送率、ｆｒａｍｅ＿ｒａｔｅはフレーム率、ｄはバッファバランス値、Ｎｄｉｓは分散ピクチャー数）
によって決定されることを特徴とする請求項１に記載のビデオエンコーダのエンコーディング率の制御方法。
【請求項３】
前記バッファバランス値は、
数式、
ｄ＋＝Ｓｉ，ｐ，ｂ−Ｔａｖｇｉ，ｐ，ｂ
（ここで、ｄはバッファバランス値、Ｓｉ，ｐ，ｂはピクチャータイプ別１ピクチャーの全体エンコーディングビット数）
によって決定されることを特徴とする請求項２に記載のビデオエンコーダのエンコーディング率の制御方法。
【請求項４】
前記ピクチャータイプ別平均エンコーディングビット数Ｂｉ，ｐ，ｂは、
補正条件式、
If(Bp < 1.2・Bb) Bp = 1.2・Bb;
If(Bi < 1.2・Bp) Bi = 1.2・Bp;
If(Bi > 3.5・Bp) Bi = 3.5・Bp;
If(Bb < 0.6・Bp) Bb = 0.6・Bp.
によって補正されることを特徴とする請求項２に記載のビデオエンコーダのエンコーディング率の制御方法。
【請求項５】
前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値の計算は、
数式、
【数２】
2005065291.tif 000014
（ここで、Ｑｉ，ｐ，ｂは平均量子化スケール値、ｍｑｕａｎｔｊはｊ番目のローマクロブロックに対応する量子化スケール値、Ｎｒｏｗはピクチャー内の全体ロー数、Ｔａｖｇｉ，ｐ，ｂはピクチャータイプ別平均目標ビット数、Ｔは目標ビット数、Ｑｉｎｉｔは一番目のローマクロブロックに対応する量子化スケール値、δは定数）
によって決定されることを特徴とする請求項２に記載のビデオエンコーダのエンコーディング率の制御方法。
【請求項６】
前記現在のピクチャータイプのマクロブロックローそれぞれに対応する量子化スケール値の計算は、
前記関数と関連された数式、
If (f(j,Sj,Sj-1,Trow)>β_upj) mquantj+1 = mquant_up(mquantj,q_scale_type);
else if (g(j,Sj,Sj-1,Trow)>β_dnj) mquantj+1 = mquant_dn(mquantj,q_scale_type);
else mquantj+1 = mquantj.
（ここで、Ｓｊはピクチャー内の一番目のローマクロブロックからｊ番目のローマクロブロックまでエンコーディングビット数、Ｔｒｏｗは単位ロー当り目標ビット数、ｍｑｕａｎｔ＿ｕｐ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより大きいコードに対応する量子化スケール値、ｍｑｕａｎｔ＿ｄｎ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより小さなコードに対応する量子化スケール値、β＿ｕｐｊ及びβ＿ｄｎｊそれぞれは第１臨界定数及び第２臨界定数）
によって決定されることを特徴とする請求項５に記載のビデオエンコーダのエンコーディング率の制御方法。
【請求項７】
前記関数ｆ（）、及びｇ（）は、
以前のローでのエンコーディングビット数を表す数式、
Ｓｊ−Ｓｊ−１.
を含む関数であることを特徴とする請求項６に記載のビデオエンコーダのエンコーディング率の制御方法。
【請求項８】
前記ｍｑｕａｎｔ＿ｕｐ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）及びｍｑｕａｎｔ＿ｄｎ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は、
多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより、１が大きい“ｋ＋１”番目のコードに対応する量子化スケール値、及び１が小さな“ｋ−１”番目のコードに対応する量子化スケール値であることを特徴とする請求項６に記載のビデオエンコーダのエンコーディング率の制御方法。
【請求項９】
現在のピクチャータイプの現在のローマクロブロックに対応する量子化スケール値を入力されて、前記量子化スケール値によってビデオ入力データをエンコーディングし、エンコーディングされたビデオデータを出力するビデオエンコーディング段階と、
前記エンコーディングされたビデオデータに対する以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数と平均目標ビット数、及びバッファバランス値を利用して計算された現在のピクチャータイプの目標ビット数、及び前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値を利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算し、以前のローマクロブロックでの単位ロー当り目標ビット数とエンコーディングビット数とを含む関数によって前記現在のローマクロブロックに対応する量子化スケール値を計算して出力するエンコーディング率制御段階と、
前記エンコーディングされたビデオデータを伝送率によって出力するバッファリング段階と、を備えることを特徴とするビデオデータの伝送方法。
【請求項１０】
前記エンコーディング率制御段階は、
前記平均エンコーディングビット数と前記平均目標ビット数、及び前記バッファバランス値を利用して、前記目標ビット数を計算して出力するビット割当て段階と、
前記平均量子化スケール値と前記目標ビット数とを利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算して出力するレートコントロール段階と、
前記現在のピクチャータイプのマクロブロックローそれぞれに対応して、以前のローでの単位ロー当り目標ビット数とエンコーディングビット数とを計算し、その値を含む関数によって現在のローに対応する量子化スケール値を計算して出力し、前記現在のピクチャータイプの全体エンコーディングビット数を計算して出力する適応量子化段階と、
前記適応量子化段階で出力される前記量子化スケール値を保存し、前記以前のピクチャータイプ及び前記以前のローマクロブロックの量子化スケール値を出力するメモリ入出力段階と、
前記現在のピクチャータイプの全体エンコーディングビット数及び前記平均目標ビット数を利用して、前記バッファバランス値を計算して出力するバッファ量計算段階と、を備えることを特徴とする請求項９に記載のビデオデータの伝送方法。
【請求項１１】
以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数と平均目標ビット数、及びバッファバランス値を利用して現在のピクチャータイプの目標ビット数を計算して出力するビット割当て部と、
前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値と前記目標ビット数とを利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算して出力するレートコントロール部と、
前記現在のピクチャータイプのマクロブロックローそれぞれに対応して、以前のローでの単位ロー当り目標ビット数とエンコーディングビット数とを計算し、その値を含む関数によって現在のローに対応する量子化スケール値を計算して出力し、前記現在のピクチャータイプの全体エンコーディングビット数を計算して出力する適応量子化部と、
前記適応量子化部から出力される前記量子化スケール値を保存し、前記以前のピクチャータイプ及び前記以前のローマクロブロックの量子化スケール値を出力するメモリと、
前記現在のピクチャータイプの全体エンコーディングビット数及び前記平均目標ビット数を利用して、前記バッファバランス値を計算して出力するバッファ量計算部と、を備えることを特徴とするビデオエンコーダのエンコーディング率制御器。
【請求項１２】
前記目標ビット数の計算は、
数式、
【数３】
2005065291.tif 000015
（ここで、Ｔは目標ビット数、Ｔａｖｇｉ，ｐ，ｂはピクチャータイプ別平均目標ビット数、Ｂｉ，ｐ，ｂはピクチャータイプ別平均エンコーディングビット数、Ｎｉ、Ｎｐ、及びＮｂそれぞれはＧＯＰ内のＩ、Ｐ、及びＢピクチャー数、ｂｉｔ＿ｒａｔｅは所定伝送率、ｆｒａｍｅ＿ｒａｔｅはフレーム率、ｄはバッファバランス値、Ｎｄｉｓは分散ピクチャー数）
によって決定されることを特徴とする請求項１１に記載のビデオエンコーダのエンコーディング率制御器。
【請求項１３】
前記バッファバランス値は、
数式、
ｄ＋＝Ｓｉ，ｐ，ｂ−Ｔａｖｇｉ，ｐ，ｂ
（ここで、ｄはバッファバランス値、Ｓｉ，ｐ，ｂはピクチャータイプ別の１ピクチャーの全体エンコーディングビット数）
によって決定されることを特徴とする請求項１２に記載のビデオエンコーダのエンコーディング率制御器。
【請求項１４】
前記ピクチャータイプ別の平均エンコーディングビット数Ｂｉ，ｐ，ｂは、
補正条件式、
If (Bp < 1.2・Bb)・Bp = 1.2・Bb;
If (Bi < 1.2・Bp)・Bi = 1.2・Bp;
If (Bi > 3.5・Bp)・Bi = 3.5・Bp;
If (Bb < 0.6・Bp)・Bb = 0.6・Bp.
によって補正されることを特徴とする請求項１２に記載のビデオエンコーダのエンコーディング率制御器。
【請求項１５】
前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値の計算は、
数式、
【数４】
2005065291.tif 000016
（ここで、Ｑｉ，ｐ，ｂは平均量子化スケール値、ｍｑｕａｎｔｊはｊ番目ローマクロブロックに対応する量子化スケール値、Ｎｒｏｗはピクチャー内の全体ロー数、Ｔａｖｇｉ，ｐ，ｂはピクチャータイプ別の平均目標ビット数、Ｔは目標ビット数、Ｑｉｎｉｔは一番目のローマクロブロックに対応する量子化スケール値、δは定数）
によって決定されることを特徴とする請求項１２に記載のビデオエンコーダのエンコーディング率制御器。
【請求項１６】
前記現在のピクチャータイプのマクロブロックローそれぞれに対応する量子化スケール値の計算は、
前記関数と関連された数式、
If (f(j,Sj,Sj-1,Trow)>β_upj) mquantj+1 = mquant_up(mquantj,q_scale_type);
else if (g(j,Sj,Sj-1,Trow)>β_dnj) mquantj+1 = mquant_dn(mquantj,q_scale_type);
else mquantj+1 = mquantj.
（ここで、Ｓｊはピクチャー内の一番目のローマクロブロックからｊ番目のローマクロブロックまでエンコーディングビット数、Ｔｒｏｗは単位ロー当り目標ビット数、ｍｑｕａｎｔ＿ｕｐ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより大きいコードに対応する量子化スケール値、ｍｑｕａｎｔ＿ｄｎ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより小さなコードに対応する量子化スケール値、β＿ｕｐｊ及びβ＿ｄｎｊそれぞれは第１臨界定数及び第２臨界定数）
によって決定されることを特徴とする請求項１５に記載のビデオエンコーダのエンコーディング率制御器。
【請求項１７】
前記関数ｆ（）、及びｇ（）は、
以前のローでのエンコーディングビット数を表す数式、
Ｓｊ−Ｓｊ−１．
を含む関数であることを特徴とする請求項１６に記載のビデオエンコーダのエンコーディング率制御器。
【請求項１８】
前記ｍｑｕａｎｔ＿ｕｐ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）及びｍｑｕａｎｔ＿ｄｎ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は、
多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより、１が大きい“ｋ＋１”番目のコードに対応する量子化スケール値、及び１が小さな“ｋ−１”番目のコードに対応する量子化スケール値であることを特徴とする請求項１６に記載のビデオエンコーダのエンコーディング率制御器。
【請求項１９】
現在のピクチャータイプの現在のローマクロブロックに対応する量子化スケール値を入力されて、前記量子化スケール値によってビデオ入力データをエンコーディングし、エンコーディングされたビデオデータを出力するビデオエンコーダと、
前記エンコーディングされたビデオデータに対する以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数と平均目標ビット数、及びバッファバランス値を利用して計算された現在のピクチャータイプの目標ビット数、及び前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値を利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算し、以前のローマクロブロックでの単位ロー当り目標ビット数とエンコーディングビット数とを含む関数によって、前記現在のローマクロブロックに対応する量子化スケール値を計算して出力するエンコーディング率制御器と、
前記エンコーディングされたビデオデータを伝送率によって出力するエンコーダバッファと、を備えることを特徴とするビデオデータ伝送システム。
【請求項２０】
前記エンコーディング率制御器は、
前記平均エンコーディングビット数と前記平均目標ビット数、及び前記バッファバランス値を利用して、前記目標ビット数を計算して出力するビット割当て部と、
前記平均量子化スケール値と前記目標ビット数とを利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算して出力するレートコントロール部と、
前記現在のピクチャータイプのマクロブロックローそれぞれに対応して、以前のローでの単位ロー当り目標ビット数とエンコーディングビット数とを計算し、その値を含む関数によって現在のローに対応する量子化スケール値を計算して出力し、前記現在のピクチャータイプの全体エンコーディングビット数を計算して出力する適応量子化部と、
前記適応量子化部から出力される前記量子化スケール値を保存して、前記以前のピクチャータイプ及び前記以前のローマクロブロックの量子化スケール値を出力するメモリと、
前記現在のピクチャータイプの全体エンコーディングビット数及び前記平均目標ビット数を利用して前記バッファバランス値を計算して出力するバッファ量計算部を備えることを特徴とする請求項１９に記載のビデオデータ伝送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビデオデータ伝送システムに係り、特に、ＭＰＥＧ２（Ｍｏｖｉｎｇ Ｐｉｃｔｕｒｅ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ ２）ビデオエンコーダのエンコーディング率制御器、それを備えたビデオデータ伝送システム、及びその方法に関する。
【背景技術】
【０００２】
ＭＰＥＧ２ビデオエンコーディングでエンコーディング率の制御方法には２つがある。その一つは恒等ビット率方式であり、他の一つは可変ビット率方式である。恒等ビット率方式は、ＤＴＶ（Ｄｉｇｉｔａｌ Ｔｅｌｅｖｉｓｉｏｎ）放送信号のように一定時間に対して決まったビット数でエンコーディングする方式であって、静止映像のビデオデータ及び動き映像のビデオデータが何れも同じビット数でエンコーディングするので、大きいビット数を割当てなければならない動き映像の画質が相対的に悪い。そして、可変ビット率方式は、帯域幅が十分であるか、またはＤＶＤ（Ｄｉｇｉｔａｌ Ｖｉｄｅｏ Ｄｉｓｋ）などの保存媒体を使用する状況のようにデータ伝送率が可変的である時、動き映像のビデオデータにさらに大きいビット数で割当てられるので、恒等ビット率方式に比べて画質を向上させうる。このようにビデオカメラで撮像されたビデオデータがビデオエンコーディングによって圧縮されたデータは、無線ＬＡＮやＤＴＶ送信機などで変調されてＲＦ（Ｒａｄｉｏ Ｆｒｅｑｕｅｎｃｙ）信号として出力されうる。また、圧縮されたビデオデータはＤＶＤ光ディスクなどにコード化されて記録されうる。
【０００３】
ＭＰＥＧ２ビデオエンコーディングのエンコーディング率制御は、主にマクロブロック量子化パラメータの量子化スケールを調節する方法を使用する。マクロブロックは、エンコーディングされたＩ、Ｐ、Ｂフレームデータで所定ウィンドー（例えば、１６＊１６ピクセル）を取る時、当該ウィンドー内にあるピクセルデータを意味する。グレーレベルを表すピクセルデータは、主に８ビットデータである。この時、可変ビット率方式によるエンコーディング率の制御方法は、大きく３段階に分けられる。第一段階は、フレームごとにピクチャータイプ（Ｉ、Ｐ、またはＢ）に適するビット数を割当てるビット割当て段階であり、第二段階は、量子化スケールを決定するレート制御段階であり、第三段階は、ピクチャータイプ（Ｉ、Ｐ、またはＢ）内の全てのマクロブロックに対して量子化スケールを調節する適応量子化段階である。
【０００４】
ビット割当て段階では、エンコーディング率と歪曲との関係を利用して複雑度を定義した後、以前にエンコーディングされたピクチャータイプ（Ｉ、Ｐ、またはＢ）の複雑度を参照して、現在のピクチャータイプ（Ｉ、Ｐ、またはＢ）のビット数を決定して、それに合わせてビット数を割当てる。レート制御段階では、仮想のバッファ量や以前のピクチャータイプ（Ｉ、Ｐ、またはＢ）の複雑度に基づいて量子化スケールを計算する。ここで、量子化スケールは、エンコーディングビット数と反比例する関係にあるため、量子化スケールが大きくなれば、エンコーディングビット数が小さくなる方向に量子化される。適応量子化段階では、以前のマクロブロック内での活動度（データ変化度）を利用して、現在のマクロブロックに対して新しい量子化スケールを決定する。
【０００５】
このような可変ビット率方式による従来のエンコーディング率の制御方法では、ビット割当て段階で、エンコーディング率と歪曲との関係を表す最も近い数式を探そうとする色々な試みから見れば、その正確な関係を定義し難く、近い数式で定義しても、ピクチャータイプ（Ｉ、Ｐ、またはＢ）の多様な変化に対応できないという問題点がある。
【０００６】
また、従来のエンコーディング率の制御方法では、適応量子化段階で、全てのマクロブロックに対して新しい量子化スケールを計算する方法は、ビット使用量に比べて画質向上性能が高くないという問題点がある。一方、１ピクチャーに一つの量子化スケールを使用する他の方法も適用できるが、この場合には、ピクチャー内に多様な性質が存在する時に効果的ではないという問題点が再び現れる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする技術的課題は、エンコーディング率と歪曲との関係を定義せずとも、従来のエンコーディング結果に基づいて現在のピクチャーにビットを割当て、現在のピクチャーの性質が以前のピクチャーと異なる場合、制限されたビットに合せるように強制せず、量子化スケールの変化による追加ビットも使用せずにピクチャー内の多様な性質に適応して量子化スケールを設定する、リアルタイム可変ビット率制御方式で画質を改善させるビデオエンコーダのエンコーディング率の制御方法、及びそれを備えてＭＰＥＧ−２ビデオエンコーディングを行うビデオデータ伝送方法を提供することである。
【０００８】
本発明が解決しようとする他の技術的課題は、エンコーディング率と歪曲との関係を定義せずとも、従来のエンコーディング結果に基づいて現在のピクチャーにビットを割当て、現在のピクチャーの性質が以前のピクチャーと異なる場合、制限されたビットに合せるように強制せず、量子化スケールの変化による追加ビットも使用せずにピクチャー内の多様な性質に適応して量子化スケールを設定する、リアルタイム可変ビット率制御方式で画質を改善させるビデオエンコーダのエンコーディング率制御器、及びそれを備えてＭＰＥＧ−２ビデオエンコーディングを行うビデオデータ伝送システムを提供することである。
【課題を解決するための手段】
【０００９】
前記課題を達成するための本発明によるビデオエンコーダのエンコーディング率の制御方法は、
以前のＧＯＰ（Ｇｒｏｕｐ Ｏｆ Ｐｉｃｔｕｒｅ）のピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数と平均目標ビット数、及びバッファバランス値を利用して、現在のピクチャータイプの目標ビット数を計算して出力するビット割当て段階と、
前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値と前記目標ビット数とを利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算して出力するレートコントロール段階と、
前記現在のピクチャータイプのマクロブロックローそれぞれに対応して、以前のローでの単位ロー当り目標ビット数とエンコーディングビット数とを計算し、その値を含む関数によって現在のローに対応する量子化スケール値を計算して出力し、前記現在のピクチャータイプの全体エンコーディングビット数を計算して出力する適応量子化段階と、
前記適応量子化段階で出力される前記量子化スケール値を保存し、前記以前のピクチャータイプ及び前記以前のローマクロブロックの量子化スケール値を出力するメモリ入出力段階と、前記現在のピクチャータイプの全体エンコーディングビット数及び前記平均目標ビット数を利用して前記バッファバランス値を計算して出力するバッファ量計算段階と、を備える。
【００１０】
前記目標ビット数の計算は、数式、
【００１１】
【数１】
2005065291.tif 000003
（ここで、Ｔは目標ビット数、Ｔａｖｇｉ，ｐ，ｂはピクチャータイプ別平均目標ビット数、Ｂｉ，ｐ，ｂはピクチャータイプ別平均エンコーディングビット数、Ｎｉ、Ｎｐ、及びＮｂそれぞれはＧＯＰ内のＩ、Ｐ、及びＢピクチャー数、ｂｉｔ＿ｒａｔｅは所定伝送率、ｆｒａｍｅ＿ｒａｔｅはフレーム率、ｄはバッファバランス値、Ｎｄｉｓは分散ピクチャー数）
によって決定されることを特徴とする。
【００１２】
前記バッファバランス値は、数式、
ｄ＋＝Ｓｉ，ｐ，ｂ−Ｔａｖｇｉ，ｐ，ｂ
（ここで、ｄはバッファバランス値、Ｓｉ，ｐ，ｂはピクチャータイプ別の１ピクチャーの全体エンコーディングビット数）
によって決定されることを特徴とする。
【００１３】
前記ピクチャータイプ別平均エンコーディングビット数Ｂｉ，ｐ，ｂは、補正条件式、
If (Bp < 1.2・Bb) Bp = 1.2・Bb;
If (Bi < 1.2・Bp) Bi = 1.2・Bp;
If (Bi > 3.5・Bp) Bi = 3.5・Bp;
If (Bb < 0.6・Bp) Bb = 0.6・Bp.
によって補正されることを特徴とする。
【００１４】
前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値の計算は、数式、
【００１５】
【数２】
2005065291.tif 000004
（ここで、Ｑｉ，ｐ，ｂは平均量子化スケール値、ｍｑｕａｎｔｊはｊ番目のローマクロブロックに対応する量子化スケール値、Ｎｒｏｗはピクチャー内の全体ロー数、Ｔａｖｇｉ，ｐ，ｂはピクチャータイプ別平均目標ビット数、Ｔは目標ビット数、Ｑｉｎｉｔは一番目のローマクロブロックに対応する量子化スケール値、δは定数）
によって決定されることを特徴とする。
【００１６】
前記現在のピクチャータイプのマクロブロックローそれぞれに対応する量子化スケール値の計算は、前記関数と関連された数式、
If (f(j,Sj,Sj-1,Trow)>β_upj) mquantj+1 = mquant_up(mquantj,q_scale_type);
else if (g(j,Sj,Sj-1,Trow)>β_dnj) mquantj+1 = mquant_dn(mquantj,q_scale_type);
else mquantj+1 = mquantj.
（ここで、Ｓｊはピクチャー内の一番目のローマクロブロックからｊ番目のローマクロブロックまでのエンコーディングビット数、Ｔｒｏｗは単位ロー当り目標ビット数、ｍｑｕａｎｔ＿ｕｐ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより大きいコードに対応する量子化スケール値、ｍｑｕａｎｔ＿ｄｎ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより小さなコードに対応する量子化スケール値、β＿ｕｐｊ及びβ＿ｄｎｊそれぞれは第１臨界定数及び第２臨界定数）
によって決定されることを特徴とする。
【００１７】
前記関数ｆ（）、及びｇ（）は、以前のローでのエンコーディングビット数を表す数式、    Ｓｊ−Ｓｊ−１．
を含む関数であることを特徴とする。
【００１８】
前記ｍｑｕａｎｔ＿ｕｐ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）及びｍｑｕａｎｔ＿ｄｎ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は、多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより、１が大きい“ｋ＋１”番目のコードに対応する量子化スケール値、及び１が小さな“ｋ−１”番目のコードに対応する量子化スケール値であることを特徴とする。
【００１９】
前記課題を達成するための本発明によるビデオデータ伝送方法は、現在のピクチャータイプの現在のローマクロブロックに対応する量子化スケール値を入力されて、前記量子化スケール値によってビデオ入力データをエンコーディングしてエンコーディングされたビデオデータを出力するビデオエンコーディング段階と、
前記エンコーディングされたビデオデータに対する以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数と平均目標ビット数、及びバッファバランス値を利用して計算された現在のピクチャータイプの目標ビット数、及び前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値を利用して前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算し、以前のローマクロブロックでの単位ロー当り目標ビット数とエンコーディングビット数とを含む関数によって前記現在のローマクロブロックに対応する量子化スケール値を計算して出力するエンコーディング率制御段階と、
前記エンコーディングされたビデオデータを伝送率によって出力するバッファリング段階と、を備えることを特徴とする。
【００２０】
前記エンコーディング率制御段階は、
前記平均エンコーディングビット数と前記平均目標ビット数、及び前記バッファバランス値を利用して前記目標ビット数を計算して出力するビット割当て段階と、
前記平均量子化スケール値と前記目標ビット数とを利用して前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算して出力するレートコントロール段階と、
前記現在のピクチャータイプのマクロブロックローそれぞれに対応して、以前のローでの単位ロー当り目標ビット数とエンコーディングビット数とを計算してその値を含む関数によって現在のローに対応する量子化スケール値を計算して出力し、前記現在のピクチャータイプの全体エンコーディングビット数を計算して出力する適応量子化段階と、
前記適応量子化段階で出力される前記量子化スケール値を保存し、前記以前のピクチャータイプ及び前記以前のローマクロブロックの量子化スケール値を出力するメモリ入出力段階と、
前記現在のピクチャータイプの全体エンコーディングビット数及び前記平均目標ビット数を利用して前記バッファバランス値を計算して出力するバッファ量計算段階と、を備えることを特徴とする。
【００２１】
前記課題を達成するための本発明によるビデオエンコーダのエンコーディング率制御器は、ビット割当て部、レートコントロール部、適応量子化部、メモリ、及びバッファ量計算部を備える。
前記ビット割当て部は、以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数と平均目標ビット数、及びバッファバランス値を利用して現在のピクチャータイプの目標ビット数を計算して出力する。
前記レートコントロール部は、前記現在ピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値と前記目標ビット数とを利用して前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算して出力する。
前記適応量子化部は、前記現在のピクチャータイプのマクロブロックローそれぞれに対応して、以前のローでの単位ロー当り目標ビット数とエンコーディングビット数とを計算し、その値を含む関数によって現在のローに対応する量子化スケール値を計算して出力し、前記現在のピクチャータイプの全体エンコーディングビット数を計算して出力する。
前記メモリは、前記適応量子化部から出力される前記量子化スケール値を保存し、前記以前のピクチャータイプ及び前記以前のローマクロブロックの量子化スケール値を出力する。
前記バッファ量計算部は、前記現在のピクチャータイプの全体エンコーディングビット数及び前記平均目標ビット数を利用して前記バッファバランス値を計算して出力する。
【００２２】
前記課題を達成するための本発明によるビデオデータ伝送システムは、ビデオエンコーダ、エンコーディング率制御器、及びエンコーダバッファを備える。
前記ビデオエンコーダは、現在のピクチャータイプの現在のローマクロブロックに対応する量子化スケール値を入力されて、前記量子化スケール値によってビデオ入力データをエンコーディングしてエンコーディングされたビデオデータを出力する。
前記エンコーディング率制御器は、前記エンコーディングされたビデオデータに対する以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数と平均目標ビット数、及びバッファバランス値を利用して計算された現在のピクチャータイプの目標ビット数、及び前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値を利用して前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値を計算し、以前のローマクロブロックでの単位ロー当り目標ビット数とエンコーディングビット数とを含む関数によって前記現在のローマクロブロックに対応する量子化スケール値を計算して出力する。
前記エンコーダバッファは、前記エンコーディングされたビデオデータを伝送率によって出力する。
【発明の効果】
【００２３】
本発明によるエンコーディング率制御器及びビデオデータ伝送システムは、エンコーディング率と歪曲との関係を定義せずとも、従来のエンコーディング結果に基づいて現在のピクチャーにビットを割当て、現在ピクチャーの性質が以前のピクチャーと異なる場合、制限されたビットに合わせるように強制せず、量子化スケールの変化による追加ビットも使用せずにピクチャー内の多様な性質に適応して量子化スケールを設定する。したがって、このようなリアルタイム可変ビット率制御方式でエンコーディングされたビデオデータがモニターに表示されるようにデコーディングされる時、ディスプレイ画質を改善させうる。
【発明を実施するための最良の形態】
【００２４】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施例を例示する添付図面及び図面に記載された内容を参照しなければならない。
以下、添付した図面を参照して本発明の望ましい実施例を説明することによって、本発明を詳細に説明する。各図面に提示された同じ参照符号は同じ部材を表す。
【００２５】
図１は、本発明の一実施例によるエンコーディング率制御器を備えたＭＰＥＧ２ビデオデータ伝送システムのブロック図である。
図１を参照すれば、本発明の一実施例によるビデオデータ伝送システムは、ビデオエンコーダ１１０、エンコーディング率制御器１２０、及びエンコーダバッファ１３０を備える。
【００２６】
前記ビデオエンコーダ１１０は、現在のピクチャータイプの現在のローマクロブロックに対応する量子化スケール値ｍｑｕａｎｔｊ＋１を入力されて、前記量子化スケール値ｍｑｕａｎｔｊ＋１によってビデオ入力データをエンコーディングしてエンコーディングされたビデオデータＥＤを出力する。ビデオ入力データは、通常、ビデオカメラで撮像されて８ビットデジタル信号として出力されるビデオデータのＲ、Ｇ、Ｂ信号、またはＹ、Ｐｂ、Ｐｒ信号であるが、これに限定されない。
【００２７】
前記エンコーディング率制御器１２０は、前記エンコーディングされたビデオデータＥＤに対する以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数Ｂｉ，ｐ，ｂと平均目標ビット数Ｔａｖｇｉ，ｐ，ｂ、及びバッファバランス値ｄを利用して計算された現在のピクチャータイプの目標ビット数Ｔ、及び前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値Ｑｉ，ｐ，ｂを利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値Ｑｉｎｉｔを計算し、以前のローマクロブロックでの単位ロー当り目標ビット数Ｔｒｏｗとエンコーディングビット数Ｓｊ−Ｓｊ−１を含む関数ｆ，ｇによって、前記現在のローマクロブロックに対応する量子化スケール値ｍｑｕａｎｔｊ＋１を計算して出力する。ＧＯＰは、通常、１５個のピクチャーより構成され、２個のＧＯＰが伝送される時間は１秒である。ＧＯＰを構成するピクチャータイプの伝送順序は、Ｉ，Ｂ，Ｂ，Ｐ，Ｂ，Ｂ，Ｐ，Ｂ，Ｂ，Ｐ，．．．と同じであり、ピクチャータイプのうち一つに当る時間は一つのフレームに当る時間と同じである。
【００２８】
前記エンコーダバッファ１３０は、前記エンコーディングされたビデオデータＥＤを伝送率によって出力する。伝送率は、ＤＴＶの場合、２０Ｍｂｐｓほどであり、ＤＶＤの場合、５Ｍｂｐｓほどである。前記エンコーダバッファ１３０から出力されたビデオデータＢＤは、ＭＰＥＧ２規格によって圧縮されたデータであって、無線ＬＡＮやＤＴＶ送信機などで変調されてＲＦ信号として出力されうる。また、このように圧縮されたビデオデータＢＤは、ＤＶＤ光ディスクにコード化されて記録されうる。
【００２９】
本発明は、特に、前記エンコーディング率制御器１２０の可変ビット率方式によるエンコーディング率制御と関連付けがなされている。
図２は、図１のエンコーディング率制御器１２０の具体的なブロック図である。
図２を参照すれば、図１のエンコーディング率制御器１２０は、ビット割当て部１２１、レートコントロール部１２３、適応量子化部１２５、メモリ１２７、及びバッファ量計算部１２９を備える。
【００３０】
前記ビット割当て部１２１は、以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数Ｂｉ，ｐ，ｂと平均目標ビット数Ｔａｖｇｉ，ｐ，ｂ、及びバッファバランス値ｄを利用して、現在のピクチャータイプの目標ビット数Ｔを計算して出力する。前記目標ビット数Ｔの計算は、数式１及び２によって決定される。図２で、平均エンコーディングビット数計算部１２１１は、前記エンコーディングされたビデオデータＥＤを受信してピクチャータイプ別平均エンコーディングビットＢｉ，ｐ，ｂを計算し、目標ビット数計算部１２１３は数式１を利用して数式２のように目標ビット数Ｔを計算して出力する。
【００３１】
Ｔａｖｇｉ，ｐ，ｂはピクチャータイプ別平均目標ビット数であって、Ｉ、Ｐ、Ｂピクチャータイプ別にＴａｖｇｉ、Ｔａｖｇｐ、Ｔａｖｇｂそれぞれを意味する。同様に、Ｂｉ，ｐ，ｂはピクチャータイプ別平均エンコーディングビット数であって、Ｉ、Ｐ、Ｂピクチャータイプ別にＢｉ、Ｂｐ、Ｂｂそれぞれを意味する。Ｎｄｉｓは、バッファバランスの影響を分散させる分散ピクチャー数であって、前記の例で１秒に当るフレーム数である３０と同じである。Ｎｉ、Ｎｐ、及びＮｂそれぞれはＧＯＰ内のＩ、Ｐ、及びＢピクチャー数であって、それぞれは前記の例で、１、４、１０と同じである。ｂｉｔ＿ｒａｔｅは所定伝送率であって、１秒当り伝送ビット数と同じであり、ｆｒａｍｅ＿ｒａｔｅはフレーム率であって１秒当りフレーム数と同じである。
【００３２】
前記バッファバランス値ｄは、数式２を利用して数式３のように計算される。数式３の計算は、前記バッファ量計算部１２９でなされる。
数式３は“ｄ（ｉ）＝ｄ（ｉ−１）＋Ｓｉ，ｐ，ｂ−Ｔａｖｇｉ，ｐ，ｂ”を簡略に表したものであって、ｄ（ｉ）は現在のピクチャーのバッファバランス値であり、ｄ（ｉ−１）は以前のピクチャーのバッファバランス値である。ここで、数式２に表されたように、バッファバランス値ｄが負の値であれば、現在のピクチャータイプの目標ビット数Ｔは大きくなる関係がある。Ｓｉ,ｐ,ｂはピクチャータイプ別の１ピクチャーの全体エンコーディングビット数であって、Ｉ、Ｐ、Ｂピクチャータイプ別にＳｉ、Ｓｐ、Ｓｂそれぞれを意味する。前記ピクチャータイプ別平均エンコーディングビット数Ｂｉ,ｐ,ｂは、補正条件式、例えば、数式４のような補正条件式によって補正される。
【００３３】
【数３】
2005065291.tif 000005
（ここで、Ｔａｖｇｉ,ｐ,ｂはピクチャータイプ別平均目標ビット数、Ｂｉ,ｐ,ｂはピクチャータイプ別平均エンコーディングビット数、Ｎｉ、Ｎｐ、及びＮｂそれぞれはＧＯＰ内のＩ、Ｐ、及びＢピクチャー数、ｂｉｔ＿ｒａｔｅは所定伝送率、ｆｒａｍｅ＿ｒａｔｅはフレーム率）
【００３４】
【数４】
2005065291.tif 000006
（ここで、Ｔは目標ビット数、ｄはバッファバランス値、Ｎｄｉｓは分散ピクチャー数）
【００３５】
【数５】
2005065291.tif 000007
（ここで、ｄはバッファバランス値、Ｓｉ,ｐ,ｂはピクチャータイプ別の１ピクチャーの全体エンコーディングビット数）
【００３６】
【数６】
2005065291.tif 000008
【００３７】
前記レートコントロール部１２３は、前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値Ｑｉ,ｐ,ｂと前記目標ビット数Ｔとを利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値Ｑｉｎｉｔを計算して出力する。一番目のローマクロブロックに対応する量子化スケール値Ｑｉｎｉｔはｍｑｕａｎｔ１と同じである。前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値Ｑｉｎｉｔの計算は、数式５ないし数式７によって決定される。数式７は、数式６を利用して計算する。
【００３８】
【数７】
2005065291.tif 000009
（ここで、Ｑｉ,ｐ,ｂは平均量子化スケール値、ｍｑｕａｎｔｊはｊ番目のローマクロブロックに対応する量子化スケール値、Ｎｒｏｗはピクチャー内の全体ロー数）
【００３９】
【数８】
2005065291.tif 000010
（ここで、Ｔａｖｇｉ,ｐ,ｂはピクチャータイプ別平均目標ビット数、Ｔは目標ビット数、Ｑｉｎｉｔは一番目のローマクロブロックに対応する量子化スケール値）
【００４０】
【数９】
2005065291.tif 000011
（ここで、δは定数）
【００４１】
前記適応量子化部１２５は、前記現在ピクチャータイプのマクロブロックローそれぞれに対応して、以前のローでの単位ロー当り目標ビット数Ｔｒｏｗとエンコーディングビット数Ｓｊ−Ｓｊ−１を計算し、その値を含む関数ｆ，ｇによって現在のローに対応する量子化スケール値を計算して出力し、前記現在のピクチャータイプの全体エンコーディングビット数Ｓｉ,ｐ,ｂを計算して出力する。前記現在のピクチャータイプのマクロブロックローそれぞれに対応する量子化スケール値ｍｑｕａｎｔｊ＋１の計算は、前記関数ｆ，ｇと関連された数式８によって決定される。
【００４２】
数式８で、関数ｆ（）、及びｇ（）は、以前のローでのエンコーディングビット数、“Ｓｊ−Ｓｊ−１”を含む関数である。図４に示されたようなｍｑｕａｎｔタイプ別量子化スケールを表す一例で、数式８のｍｑｕａｎｔ＿ｕｐ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）及びｍｑｕａｎｔ＿ｄｎ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は、多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより、１が大きい“ｋ＋１”番目のコードに対応する量子化スケール値、及び１が小さな“ｋ−１”番目のコードに対応する量子化スケール値にできる。例えば、図４でｍｑｕａｎｔｊに対応する以前のｋ番目のコードが２であり、この時、ｑ＿ｓｃａｌｅ＿ｔｙｐｅ“０”で量子化スケール値が４である場合に、ｍｑｕａｎｔ＿ｕｐ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）及びｍｑｕａｎｔ＿ｄｎ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）それぞれは、“ｋ＋１”番目及び“ｋ−１”番目のコードに対応する量子化スケール値６及び２を表す。
【００４３】
前記メモリ１２７は、前記適応量子化部１２５から出力される前記量子化スケール値ｍｑｕａｎｔｊ＋１を保存し、前記以前のピクチャータイプ及び前記以前のローマクロブロックの量子化スケール値ｍｑｕａｎｔｊを出力する。
前記バッファ量計算部１２９は、前記現在のピクチャータイプの全体エンコーディングビット数Ｓｉ,ｐ,ｂ及び前記平均目標ビット数Ｔａｖｇｉ,ｐ,ｂを利用して、数式３のように前記バッファバランス値ｄを計算して出力する。
【００４４】
【数１０】
2005065291.tif 000012
（ここで、Ｓｊは、ピクチャー内の一番目のローマクロブロックからｊ番目のローマクロブロックまでのエンコーディングビット数、Ｔｒｏｗは単位ロー当り目標ビット数、ｍｑｕａｎｔ＿ｕｐ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は、多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより大きいコードに対応する量子化スケール値、ｍｑｕａｎｔ＿ｄｎ（ｍｑｕａｎｔｊ，ｑ＿ｓｃａｌｅ＿ｔｙｐｅ）は、多数のｑ＿ｓｃａｌｅ＿ｔｙｐｅのうち何れか一つでｍｑｕａｎｔｊに対応する以前のｋ番目のコードより小さなコードに対応する量子化スケール値、β＿ｕｐｊ及びβ＿ｄｎｊそれぞれは第１臨界定数及び第２臨界定数）
【００４５】
以下、本発明の一実施例による前記エンコーディング率制御器１２０の動作を、さらに詳細に説明する。
図３は、エンコーディング率制御器１２０の動作説明のためのフローチャートである。
図３を参照するに、図１のビデオエンコーダ１１０がエンコーディングを開始すれば、エンコーディング率制御器１２０で、以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数Ｂｉ,ｐ,ｂと、現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値Ｑｉ,ｐ,ｂと、がリセットされて初期化され（Ｓ３１１）、ＧＯＰ開始段階に進入する（Ｓ３１３）。エンコーディングが開始されて、現在のＧＯＰ内での各ピクチャータイプに対するエンコーディングは、まず、平均エンコーディングビット数計算部１２１１が、以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数Ｂｉ,ｐ,ｂを計算する（Ｓ３１３）。
【００４６】
これに基づいて、目標ビット数計算部１２１３は、数式２によって、平均目標ビット数Ｔａｖｇｉ,ｐ,ｂ、及びバッファバランス値ｄを利用して、現在のピクチャータイプの目標ビット数Ｔを計算する。この時、レートコントロール部１２３は、数式７によって、前記現在のピクチャータイプと同じ以前のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値Ｑｉ,ｐ,ｂを利用して、前記現在のピクチャータイプの一番目のローマクロブロックに対応する量子化スケール値Ｑｉｎｉｔ、すなわち、ｍｑｕａｎｔ１を計算する（Ｓ３１５）。
【００４７】
各ピクチャーを構成するマクロブロックローに対する量子化スケール値ｍｑｕａｎｔｊ＋１計算段階に進入すれば（Ｓ３１７）、適応量子化部１２５が以前のローマクロブロックでのエンコーディングビット数Ｓｊ−Ｓｊ−１を計算し（Ｓ３１９）、単位ロー当り目標ビット数Ｔｒｏｗを含む関数ｆ,ｇによって、数式８のように、現在のピクチャーの最後のローまで前記現在のローマクロブロックに対応する量子化スケール値ｍｑｕａｎｔｊ＋１を計算する（Ｓ３２０〜Ｓ３２１）。
【００４８】
１ピクチャーに対する計算が終われば、適応量子化部１２５は、現在のピクチャータイプの全体エンコーディングビット数Ｓｉ,ｐ,ｂも計算して出力する。この時、次のピクチャーに対する計算のために、バッファ量計算部１２９は、数式３によって、バッファバランス値ｄを計算し、レートコントロール部１２３は、数式５によって、再び従来のピクチャータイプのうち最も最近のピクチャータイプの平均量子化スケール値Ｑｉ,ｐ,ｂを計算する（Ｓ３２３）。ＧＯＰが終われば、平均エンコーディングビット数計算部１２１１が、再び以前のＧＯＰのピクチャータイプＩ、Ｐ、及びＢそれぞれの平均エンコーディングビット数Ｂｉ,ｐ,ｂを計算する（Ｓ３２５、Ｓ３１３）。新しいＧＯＰ内でピクチャータイプ別に量子化スケール値ｍｑｕａｎｔｊ＋１を計算するために、前記のような過程はエンコーディングシークエンスが終了するまで続く（Ｓ３２７）。
【００４９】
以上、本発明による本発明の一実施例によるエンコーディング率制御器１２０は、ビット割当て部１２１、レートコントロール部、及び適応量子化部１２５を備えて、現在のピクチャーの性質が以前のピクチャーと異なる場合、制限されたビットに合せるように強制せず、量子化スケール変化による追加ビットも使用せずにピクチャー内の多様な性質に適応して量子化スケールを設定する可変ビット率制御方式で、現在のピクチャータイプのマクロブロックローそれぞれに対応する量子化スケール値ｍｑｕａｎｔｊ＋１をリアルタイム計算して出力する。
【００５０】
以上のように、図面と明細書とで最適の実施例が開示された。ここで、特定の用語が使われたが、これは単に本発明を説明するための目的で使われたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。したがって、当業者ならば、これから多様な変形及び均等な他の実施例が可能であることが分かる。こうして、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決定されなければならない。
【産業上の利用可能性】
【００５１】
本発明によるビデオエンコーダのエンコーディング制御器、それを備えたビデオデータ伝送システム及びその方法は、ＭＰＥＧ２ビデオエンコーダなどに利用されて、ビデオデータのエンコーディング方式を大きく改善する。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施例によるエンコーディング率制御器を備えたＭＰＥＧ２ビデオデータ伝送システムのブロック図である。
【図２】図１のエンコーディング率制御器の具体的なブロック図である。
【図３】エンコーディング率制御器の動作説明のためのフローチャートである。
【図４】適応量子化過程を説明するためのｍｑｕａｎｔタイプ別量子化スケールを表す一例である。
【符号の説明】
【００５３】
１１０    ビデオエンコーダ
１２０    エンコーディング率制御器
１３０    エンコーダバッファ
ＥＤ    エンコーディングされたビデオデータ
ＢＤ    出力されたビデオデータ
ｍｑｕａｎｔｊ＋１    量子化スケール値
【図１】
2005065291.tif 000017
【図２】
2005065291.tif 000018
【図３】
2005065291.tif 000019
【図４】
2005065291.tif 000020