JP3739094B2 - 符号化システムにおけるレート制御を最適にするための装置 - Google Patents

符号化システムにおけるレート制御を最適にするための装置 Download PDF

Info

Publication number
JP3739094B2
JP3739094B2 JP51684597A JP51684597A JP3739094B2 JP 3739094 B2 JP3739094 B2 JP 3739094B2 JP 51684597 A JP51684597 A JP 51684597A JP 51684597 A JP51684597 A JP 51684597A JP 3739094 B2 JP3739094 B2 JP 3739094B2
Authority
JP
Japan
Prior art keywords
frame
image
macroblock
quantizer
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP51684597A
Other languages
English (en)
Other versions
JP2000516050A (ja
Inventor
チャン,ティーハオ
チェン,マックス
ウォック,ウィルソン
サン,フュイファン
ザン,ヤチン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27358239&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3739094(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of JP2000516050A publication Critical patent/JP2000516050A/ja
Application granted granted Critical
Publication of JP3739094B2 publication Critical patent/JP3739094B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer

Description

本願は、1995年10月25日に出願された米国仮特許出願第60/007,014号、1995年10月25日に出願された同第60/007,016号および1996年6月28日に出願された同第60/020,872号の権利を請求するものである。
本発明は、動画ビデオの符号化を最適にするための装置および関連する方法に関する。より詳細には、本発明は符号化レートを最適にしながら動画ビデオの全体の画質を維持するよう、マクロブロック毎に量子化器のスケールを再帰的に調節する方法および装置に関する。
発明の背景
デジタルビデオ技術が多く開発されるにつれ、ビデオ圧縮コーデック(符号化器/復号器)の高コストを低減し、異なるメーカーの機器の相互作動性を解決するという課題が増大した。これら目標を達成するため、MPEG(Moving Picture Experts Group:動画専門家グループ)は国際規格11172および13818(これら規格の全体を本願で参考例として引用する)を定めた。
レート制御の分野ではMPEGは符号化器のビットレートを制御するための特定のアルゴリズムを規定していない。符号化の設計者の仕事は復号化器の入力バッファがオーバーフローやアンダーフローを生じないようにビットレートを制御するためのレート制御プロセスを考え付くことにある。従って、符号化器にオーバーフローおよびアンダーフロー状態を防止するように、符号化によって発生されるビット数をモニタさせるようにすることは符号化器のタスクである。
現在では、ビットレートを制御する1つの方法は、入力ビデオ画像のひずみに影響する量子化プロセスを変更することである。量子化器のスケールを変えることによりビットレートを変更し、制御できる。量子化器のスケールを変えることは、符号化器のレート制御を実現する有効な方法であるが、良好でないレート制御プロセスは実際にビデオ画像の可視画質を劣化することが判っている。
現在のMPEG符号化方針では、同一タイプのすべての画像は画像グループ内で同じ複雑度となっていることを仮定してマクロブロックごとの量子化器のスケールを選択している。しかしながらこの基準によって選択された量子化器のスケールは各画像の複雑度が時間と共に変化するので、最適な符号化特性を得ることはできない。
更にグローバルタイプの変換を利用する符号化器は、同様な問題を有する。音響学、音声および信号処理に関する国際会議の議事録、カリフォルニア州サンフランシスコ、1992年3月、第IV巻、657〜660ページには、例えばかかるグローバルタイプの圧縮技術が記載されており、この文献では階層的サブバンド分解、又はウェーブレット変換を行い、ゼロツリーを組入れた階層的な連続近似エントロピー符号化量子化を行う信号圧縮システムが開示されている。マルチ解像階層的サブバンド表示を使用する信号データの表示は、バート、外著、通信に関するIEEEトランザクション、Vol Com-31、No.4、1983年4月、533ページに開示されている。クリチカルにサンプリングされる直交ミラーフィルタ(QMF:Quadrature-Mirror Filter)サブバンド表示としても知られるウェーブレットピラミッドは、画像の特殊なタイプのマルチ解像階層的サブバンド表示である。ウェーブレットピラミッドはペントランド、外著、データ圧縮会議議事録(1991年8月8日〜11日、ユタ州スノーバード)に開示されている。QMFサブバンドピラミッドは「サブバンド画像符号化」、J.W.ウッズ編、クルーエル・アカデミック・パブリッシャー、1991年、およびI.ドベッシー著「ウェーブレットに関する10講」、工業および応用数学学会(SIAM)ペンシルバニア州フィラデルフィア、1992年に記載されている。更に、1995年5月2日に発行され、本願で参考例として引用する米国特許第5,412,741号は、高い圧縮度で情報を符号化するための装置および方法を開示している。
ビデオ符号化器からの出力ビットストリームはシーンの内容および符号化器が使用する符号化プロセスの性質に従って変動する可変ビットレートを有する性質がある。このように符号化器はチャンネルレートを信号の質の最小損失に合わせるよう、出力ビットレートを制御する機構を必要としている。
このように、当該技術分野では符号化レートを最適にしながら、ビデオ画像の全体の画質を維持するための装置および方法に対するニーズが存在する。同様に、ウェーブレット変換のようなグローバルタイプの変換を利用する符号化器は従来のレート制御技術では満たされない特殊な条件を有する。
発明の概要
本発明は符号化レートを最適にしながらビデオ画像の全体の画質を維持するように、最適な量子化器のスケールを選択するための方法および装置に関する。すなわち画像全体にわたって一様な主観画質を発生するよう、連続するマクロブロックに対して最適な量子化器のスケール比を維持しながら、画像に対する目標ビットレートが得られるよう、マクロブロックごとに量子化器のスケールを選択する。一実施例ではこの方法をフレームレベルに対して実行するが、他の実施例ではウェーブレット変換と組み合わせてこの方法を実行する。
【図面の簡単な説明】
添付図面を参照し、次の詳細な説明を検討すれば、本発明の教示内容について容易に理解できよう。
図1は、本発明の装置のブロック図を示す。
図2は、装置のビットレートを制御するための複雑度モデルに従った最適な量子化器のスケールを求めるためのフローチャートを示す。
図3は、最適な量子化比の制限に基づき、量子化スケールに対するモディファイアを求めるためのフローチャートを示す。
図4は、次のマクロブロックに対する量子化器のスケールを直接計算するために符号化プロセスから生じた実際のデータを使用するレート制御方法のためのフローチャートを示す。
図5は、第nフレームに対するビットTp(n)の予定数を計算するためのフローチャートを示す。
図6は、本発明を実施するウェーブレットに基づく符号化器のブロック図を示す。
図7は、ウェーブレットツリーのグラフである。
図8は、図6のウェーブレットに基づく符号化器における量子化器の符号化レートを制御するためのレートコントローラの詳細なブロック図である。
図9は、図8のレートコントローラによって実行されるフレームレイヤービット割り当てプロセスのフローチャートである。
図10は、図9のプロセスのサブルーチンであるウェーブレットツリーレイヤービット割り当てプロセスのフローチャートである。
本発明の理解を容易にするよう異なる図にわたって共通する同一要素を表示するのに、可能な場合には同一参照番号を使用した。
詳細な説明
図1は符号化レートを制御しながらビデオ画像の全体の画質を維持するよう、各マクロブロックに対する符号化器スケールを求めるための本発明の装置100のブロック図を示す。本発明の好ましい実施例では、装置100は符号化器またはより複雑なブロックに基づく動き補償符号化システムのうちの一部である。この装置100は動き予測モジュール140と、動き補償モジュール150と、レートコントロールモジュール130と、DCT(Discrete Cosine Transform)モジュール160と、量子化(Q)モジュール170と、可変長符号化(VLC:Variable Length Coding)モジュール180と、バッファ190と、逆量子化(Q-1)モジュール175と、逆DCT(DCT-1)モジュール165と、減算器115と、加算器155とを含む。装置100は複数のモジュールを含むが、当業者であれば図1に示されるような別個のモジュールに分離する必要がないようにした、種々のモジュールによってこれらの機能を実現できよう。例えば動き補償モジュール150、逆量子化モジュール175および逆DCTモジュール165を含むモジュールの組は、一般に「埋込み復号化器」として知られている。
図1は、入力ビデオ画像(画像シーケンス110)を示し、このビデオ画像はMPEG規格に従った1つの輝度信号および2つの色差信号(Y、Cr、Cb)としてデジタル表示される。これら信号は各画像(フレーム)が複数のマクロブロックで表示されるように、更に複数のレイヤー(シーケンス、画像のグループ、画像、スライス、マクロブロックおよびブロック)に分割される。各マクロブロックは4つの輝度ブロックと1つのCbブロックと、1つのCrブロックから成り、ここで1つのブロックは8×8のサンプルアレイで表示される。画像をブロックユニットに分割することにより、2つの連続する画像の間の変化を弁別する能力が改善され、振幅の小さい、変換された係数(後述する)を除くことにより、画像圧縮が改善される。デジタル化された信号に対しオプションとして前(プリ)処理、例えば適当なウィンドー、解像度および入力フォーマットを選択するためのフォーマット変換を行ってもよい。
動きベクトルを予測するための動き予測モジュール140内にパス110上の入力ビデオ画像が受信される。動きベクトルは二次元ベクトルであり、このベクトルは動き補償によって使用され、基準フレーム内の座標に対する現在の画像における1つのブロックの座標位置からのずれを示す。ビデオ画像シーケンスの連続するフレームの間に存在する高い冗長性のために、動き情報(動きベクトル)を使用することにより基準フレームおよび現在フレームと基準フレームとの間の差から現在フレームを再構成できる。基準フレームは過去のフレーム(P−フレーム)でもよいし、過去の、および/または将来のフレーム(B−フレーム)でもよい。現在フレームと基準フレームとの間の変化の符号化および伝送しか行わないので、チャンネルを通して伝送される情報量を低減することにより、動きベクトルの使用は画像圧縮を大幅に高めることができる。現在では、動きの予測を実現するのに符号化器の設計者は種々の方法を利用できる。
動き予測モジュール140からの動きベクトルは動き補償モジュール150によって受信され、サンプル値の予測の効率を改善する。動き補償は予測エラーを形成するのに使用された、先に符号化されたサンプル値を含む過去および/または将来の基準フレームにオフセットを与えるよう、動きベクトルを利用した予測を行う。すなわち動き補償モジュール150は先に符号化されたフレームおよび動きベクトルを使って現在フレームの予測値を構成する。更に、当業者であれば、動き予測モジュールおよび動き補償モジュールによって実行される機能を、組み合わされたモジュール、例えば単一ブロックの動き補償器内で実現できることが理解できよう。
更に、所定のマクロブロックに対する動き補償予測を実行する前に符号化モードを選択しなければならない。符号化モード決定の分野において、MPEGは複数の異なるマクロブロックの符号化モードを提供している。一般に、これら複数モードは2つの広義の分類、すなわちインター(フレーム間)モード符号化とイントラ(フレーム内)モード符号化にグループ分けされる。イントラモード符号化とは、マクロブロックまたは画像からの情報だけを使用してマクロブロックまたは画像の符号化を行うものであり、逆に、インターモード符号化とはマクロブロックまたは画像からの情報、および異なる時間で生じるマクロブロックまたは画像の情報を使用するマクロブロックまたは画像の符号化を行うものである。特にMPEG−2はマクロブロック符号化モードを規定しており、これら符号化モードには、イントラモードと、動き補償なしモード(No MC)と、フレーム/フィールド/デュアルプライム動き補償インターモードと、順方向/逆方向/平均インターモードと、フィールド/フレームDCTモードとが含まれる。各マクロブロックに対して符号化モードを適正に選択することにより符号化特性が改善される。更に現在では、符号化モードの決定を行うのに符号化器設計者にとって種々の方法を利用できる。
一旦、符号化モードを選択すると、動き補償モジュール150は過去および/または将来の基準画像に基づき、ブロックの内容の動き補償予測(予測された画像像)をパス152上に発生する。現在マクロブロックにおけるパス110上のビデオ画像から減算器115によりパス152上の動き補償予測が減算され、パス153上にエラー信号、すなわち予測残余信号が形成される。この予測残余信号の形成は入力ビデオ画像における冗長情報を効果的に除くためのものである。すなわち伝送チャンネルを介し、実際のビデオ画像を伝送する代わりに、ビデオ画像の予測およびこれら予測のエラーを発生するのに必要な情報だけを伝送し、よって伝送に必要なデータ量を大幅に低減するようになっている。更にビットレートを低減するために、パス153上の予測残余信号をDCTモジュール160へ送り、符号化を行う。
DCTモジュール160は予測残余信号の各ブロックに対し、順方向の離散コサイン変換プロセスを実行し、DCT係数の8×8ブロックのセットを発生する。離散コサイン変換とは逆変換可能な離散変換であり、ここでDCT係数はコサイン基底関数の組の振幅を示す。この離散コサイン変換の1つの利点は、DCT係数に相関性がないことである。このようなDCT係数の無相関性は、圧縮する上で重要であり、その理由は、圧縮効率を低下することなく、各係数を別々に処理できるからである。更に、DCT基底関数(basis function)あるいはサブバンド分解は、量子化の次のステップに重要な心理視覚的(psychovisual)基準を有効に利用できるようにする。
こうして得られた8×8ブロックのDCT係数は量子化モジュール170により受信され、ここでDCT係数が量子化される。この量子化プロセスは整数値を形成するように適当な丸めを行った量子化値の組(セット)にDCT係数を分けることにより、そのDCT係数を表現する精度を低下させる。(通常、視覚的な重み付け量子化として知られる)基底関数の可視性に基づく基準を使用して、各DCT係数に対して量子化値を別々設定できる。すなわち、量子化値は所定の基底関数の可視性に対するスレッショルド、すなわち人の眼が検出できる係数の振幅に対応する。この値により、DCT係数を量子化することによりDCT係数の多くをゼロの値に変換し、よって画像圧縮効率を改善できる。この量子化プロセスは、キーとなる演算であり、画質を改善し、出力を所定のビットレートに一致させる(レート制御)ために符号化器を制御する上での重要な手段である。各DCT係数に対し、異なる量子化値を利用できるので、一般に「量子化マトリックス」が基準テーブル、例えば輝度量子化テーブルまたはクロミナンス(色度)量子化テーブルとして設定される。
従って、符号化器は変換ブロック内の各周波数係数をどのように量子化するかを決定する量子化マトリックスを選択する。
しかしながら、量子化誤差の主観的知覚の度合は周波数と共に大きく変化し、より高い周波数に対してはより粗い量子化値を使用すると有利である。すなわち量子化誤差による人の認識感度は空間周波数が高くなるにつれ、低くなる。この結果、高い周波数はより粗く量子化され、低い周波数よりも少数の値しか許容されない。更に、正確な量子化マトリックスは多くの外部パラメータ、例えば意図するディスプレイの特性、可視距離およびソース内のノイズ量に依存する。従って、応用例または個々のフレームシーケンスに対しても、特別な量子化マトリックスを適応させることも可能である。一般に、適応量子化マトリックスは圧縮されたビデオ画像と共にコンテクストとして記憶できる。量子化器のスケールの適正な選択はレート制御モジュール130によって実現される。
次に、量子化されたDCT係数の、こうして得られる8×8ブロックは、信号接続部171を介して可変長符号化(VLC)モジュール180によって受信され、このモジュールで量子化された係数の二次元ブロックがジグザグ順序でスキャンされ、ブロックを量子化されたDCT係数の一次元ストリングに変換する。このジグザグスキャン順序は、近似的に最低空間周波数から最高空間周波数までの順番にDCT係数を並べ変える順序である。量子化は一般に、高い空間周波数のDCT係数をゼロまで低下させるので、量子化されたDCT係数の一次元ストリングは数個の整数と、その後続くゼロ列によって一般に表示される。
可変長符号化(VLC)モジュール180は、量子化されたDCT係数のストリングおよびマクロブロックに対するすべてのサイド情報、例えばマクロブロックタイプおよび動きベクトルを符号化する。このVLCモジュール180は符号化効率を効率的に改善するよう、可変長符号化およびランレングス符号化を利用する。可変長符号化は反転可能な符号化プロセスであり、より頻繁に生じるイベント(event)に対しては、より短い符号ワードが割り当てられ、あまり頻繁でないイベントに対しては、より長い符号ワードが割り当てられ、一方ランレングス符号化はシンボルの実行を単一シンボルで符号化することにより符号化効率を高める。これら符号化方式は、当業者には周知のものであり、整数長符号ワードを使用する時はハフマン符号化として称されることが多い。従って、VLCモジュール180は入力ビデオ画像を有効データストリームに変換するための最終ステップを実行する。当業者であれば、VLCモジュールは他のタイプのエントロピー符号化器と置換できることが理解できよう。
データストリームは先入れ先出し(FIFO)バッファ190に受信され、異なる画像タイプおよび可変長符号化を使用する結果、FIFOへの全体のビットレートは可変となる。すなわち各フレームを符号化するのに使用されるビット数を変えることができる。固定レートチャンネルを利用する応用例では、ビットレートを平滑化するために符号化器の出力をチャンネルに整合するのにFIFOバッファが使用される。従って、FIFOバッファ190の出力信号はパス110上では入力ビデオ画像の圧縮表示信号であり、ここではパス295を介して記憶媒体または通信チャンネルへ送られる。
レート制御モジュール130はデータストリームを伝送した後、(受信機または目標記憶デバイス(図示せず)における)復号化器側でのオーバーフローおよびアンダーフローを防止するために、FIFOバッファ190に進入するデータストリームのビットレートをモニタし、調節するように働く。従って、レート制御モジュール130の目的は、符号器によって発生されるビット数を制御するよう、バッファ190の状態をモニタすることである。
本発明の好ましい実施例では、レート制御モジュール130は符号化レートを制御しながらビデオ画像の全体の画質を維持するために、各マクロブロックに対する量子化器のスケールを選択する。すなわち画像全体にわたって一様な主観画質を発生するように、連続するマクロブロックに対し、最適な量子化スケール比を維持しながら、画像に対する目標ビットレートが得られるよう、各マクロブロックに対する量子化器のスケールが選択される。
より詳細に説明すれば、レート制御モジュール130は、まず先に符号化された画像から、またはTM4およびTM5の方法を実行することにより、特定タイプの画像(I、P、B)の複雑度のラフな予測値を得る。この予測された複雑度は各マクロブロックを符号化するのに必要な予測ビット数を導き出すのに使用される。こうした知識を用いることにより、多項式の複雑度モデルに従い、マクロブロックに対する量子化器のスケールが計算される。この複雑度モデルはマクロブロックに対する選択された量子化器のスケールを画像に対する目標ビットレートに近付ける制限条件を満たすように導き出される。
更に、量子化器のスケールは画像全体に対し、一定の画質を維持するための制限条件を満たすように導き出されたモディファイアによって適性化される。すなわちこの制限は、連続するマクロブロックに対し最適な量子化スケール比を維持することを求めるものである。レート制御モジュールはこのモディファイアを量子化器のスケールに適用し、マクロブロックを符号化するのに使用される最適な符号化器スケールを発生する。一旦、マクロブロックが符号化されると、レート制御モジュールは多項式の繰り返しプロセスを使用することにより複雑度モデルを再帰的に調節する。すなわちマクロブロックを符号化するのに必要な実際のビット数を使用して、符号化モデルを改良し、次のマクロブロックに対する量子化器のスケー”の予測を改善する。この量子化器のスケールの選択方法の詳細について、図2および図3を参照して後述する。
図1に戻ると、信号接続部172を介し、逆量子化モジュール175により、量子化モジュール170からの量子化されたDCT係数の、その結果得られる8×8ブロックも受信される。この段階で、符号化器はデータがその後の符号化のための基準フレームとして使用されるようにデータを復号することにより、入力ビデオ画像のIフレームおよびPフレームを再生する。逆量子化モジュール175は、量子化されたDCT係数を逆量子化することにより、復号プロセスを開始する。すなわち量子化されたDCT係数は整数値を発生するように適当に丸められた量子化値の組(セット)により乗算される。
DCT係数の、この結果得られる逆量子化された8×8ブロックは、逆DCTモジュール165に送られ、ここで各マクロブロックに対し、逆DCTが加えられ、復号されたエラー信号が発生される。このエラー信号は加算器155を介し、動き補償モジュールからの予測信号に再び加算され、復号された基準画像(再構成された画像)を発生する。一般に、IフレームまたはPフレームが復号された場合、このフレームは最も古く記憶された基準と置き換えられるように記憶される。従って、符号化レートを最適にしながらビデオ画像全体の画質を維持するために、各マクロブロックに対する量子化器のスケールを選択するための装置100が開示される。
図2は、本発明の好ましい実施例における装置のビットレートを制御するための複雑度モデルに従い、最適量子化器のスケールを求めるためのフローチャートを示す。本発明の好ましい実施例を開発するために、量子化器のスケールの選択に対する最適化問題を明確にした。この解決案は符号化を行っている画像を組み立てるマクロブロックのすべてに対するレートひずみ特性、すなわちR(D)曲線に基づくものである。これらの結果に基づき、実際の実現例に対する複雑度の低い、各マクロブロックに対する量子化器のスケールを選択するための方法が提示される。
最適な解決方法のための第1制限式は次のとおりである。
Figure 0003739094
この式は画像に対する目標ビットレートを記述し、Tは個々のマクロブロックRiに割り当てられたビット数を画像内のマクロブロックの総数Mのすべてについて累積した値である。
最適解のための第2の制限式は次のとおりである。
l×kl=……=QN×kn (2)
この式は一定の画質を維持するには、量子化器のスケールQiのマクロブロックiと人の視覚系の重みkiとの積が画像上の他のマクロブロックのQとkとの積に等しくなければならないことを意味している。実際には下記のように別の式で表現できる等しい画像全体が均一な画質を有するような、最適な量子化スケール比ki′…kN-1′の組が存在する。
Figure 0003739094
ここで、ki′=k1/k2,…,kN-1′=kN-1/kNである。
最適解に対する第3の制限式は次のとおりである。
i×Ri=Xi(Vi) (4)
この式はマクロブロックiに対する複雑度の度合いXiが測定値Viの関数であり、また、マクロブロックiのビットレートと量子化器のスケールの積で記述できることを示している。この関数の関係は、画像レイヤーおよびスライスレイヤーでも暗黙に仮定される。好ましい実施例では、測定値viはマクロブロックiにおけるピクセルにわたって計算された変化量である。
図2に示された本発明の方法200は、上記制限式を満たす各マクロブロックに対する量子化器のスケールを導き出すように定められる。この解は1つの画像すなわちフレーム内で主観画質が一様となるように、すべての量子化器のスケールの相対比を維持しながら目標ビットレートを達成する。
図2を参照すると、この方法はステップ205で開始し、ステップ210に進み、ここでRi、すなわち現在のマクロブロックiを符号化するのに割り当てられるビットを予測するための、Ri=Xii -1の関係式(式4)を有する初期モデルを適用する。この初期モデルは先の画像を実際に符号化することにより、または他のモデル、例えばTM4およびTM5によりそれぞれ画像I、PおよびBの各タイプに対する複雑度X1、XPおよびXBの初期予測値を得る。各画像を符号化することにより発生されるビット数および画像内のマクロブロックを量子化するのに使用される符号化器スケールの平均値から、各タイプの画像に対する複雑度が導き出される。初期モデルは同一タイプの画像は同様な複雑度を有すると仮定しているので、先に符号化された画像からの現在のマクロブロックに対するRiがステップ210で短時間で予測できる。現在のマクロブロックに対する予測Riはステップ220に送られ、適当な量子化器のスケールを計算する。
ステップ220ではこの方法は量子化器のスケールを計算するのに、次のように表記されるより正確な複雑度モデルを使用する
Figure 0003739094
ここでRiはマクロブロックiに割り当てられたビットであり、Qiはマクロブロックiの量子化器のスケールであり、X0、X1およびX2は定数である。符号化プロセスの開始時に定数X0およびX2はゼロに設定される。これにより式(5)は事実上式(4)の初期モデルに簡単化される。符号化プロセスのこのような初期段階では不充分なデータしかないので、現在のマクロブロックに対する符号化器スケールのラフな予測値を得るのに式(4)が使用される。すなわち選択される符号化器スケールは先の画像におけるマクロブロックを符号化するのに使用された符号化器スケールの平均値である。
ステップ230では、この方法は最適な量子化スケール比の組を維持するという制限に基づくモディファイアγを計算する。このモディファイアは量子化器のスケールに対して乗算され、画像全体にわって一定の視覚的な画質が得られるように、最適な量子化器のスケールQi(optimal)を発生する。モディファイアを発生するための方法については図3を参照して後に詳述する。
ステップ240ではこの方法はステップ230から計算された最適な量子化器ステップを使用することによりマクロブロックiを符号化する。この符号化方法はマクロブロックiを符号化するのに必要な実際のビット数を発生し、このビット数はステップ250へ送られる。
ステップ250ではこの方法はマクロブロックiを符号化するのに使用される最適な量子化器のスケール、および多項式回帰モデルまたは2次回帰モデルでマクロブロックiを符号化するのに必要な実際のビット数を使用し、ステップ220の複雑度モデルを改良する。すなわちマクロブロックiに割り当てられるビットと、特定の量子化器のスケールに対するマクロブロックを符号化するのに必要な実際のビット数との差を考慮して、定数X0、X1およびX2を更新する。当業者には回帰モデルは周知のものである。種々の回帰モデルを詳細に検討するには、例えば、ボーワーマンおよびオッコーネル著「予測および時間シリーズ」第3版、ダクスベリープレス(1993年第4章)を参照されたい。
ステップ260において方法200は、現在の画像で符号化するのに残っている別のマクロブロックがあるかどうかを問い合わせる。この質問に対し肯定的な回答がなされれば、方法200はステップ220にリターンし、更新された定数X0、X1およびX2を有する次のマクロブロックに対する新しい量子化器のスケールを計算する。問い合わせに対して否定的な回答がなされた場合、方法200は次の画像を符号化するように進むか、終了する。
図3は、最適な量子化スケール比の制限に基づく量子化器のスケールに対するモディファイアを導き出すための方法300(図2のステップ230)を示す。この方法はステップ305で開始し、ステップ310へ進み、ここで次の式に従って、人の視覚系の重みki....kNの組を計算する。
Figure 0003739094
および
Acti=1+min(Var_ablk) (7)
ここでActiはマクロブロックiに対する空間的な活動度の度合であり、このActiはフレーム構成された4つの輝度のサブブロックおよびフィールド構成された4つの輝度のサブブロックのうちの最小のものからの最初のピクセル値を使用して計算される。Var_sblkは次のように表記される。
Figure 0003739094
および
Figure 0003739094
ここでPkは元の8×8サブブロックにおける元のピクセル値である。
ステップ310の好ましい実施例では、人の視覚系の重みの組を計算するのに使用される測定基準はマクロブロックiにおけるピクセルにわたって計算される変化量である。画像に対するすべてのマクロブロックに対する人の視覚系の重みの組は、符号化前に計算される。
ステップ320では、この方法は画像に対する人の視覚系の重みの合計を示す度合Kを導き出すのに、人の視覚系の重みの組を合計する。従って、Kは次のように表記される。
Figure 0003739094
ステップ330ではこの方法は次のように表現されるki-1までの人の視覚系の重みのすべての合計を得る。
Figure 0003739094
実際にこのステップは、先のマクロブロックi−1までの人の視覚系の重みのすべての合計を計算する。
ステップ340では、画像全体に対するビットの予定数Tpは次の式によって計算される。
Figure 0003739094
ここで、Bi-1は先のマクロブロックi−1を含むマクロブロックまでの現在のフレームを符号化するのに使用されたすべてのビットの合計である。
ステップ350において、この方法はビットの予定数Tpを画像に対するビットの目標数Tで割ることにより、次のように表示されるモディファイア、すなわちビット活動インデックス比γを計算する。
Figure 0003739094
このモディファイアはステップ220で計算された量子化器のスケールQiに対して乗算され、よって一定の画質が維持されるようにQi(optimal)を発生する。
本発明の好ましい実施例では、ステップ220で表示される複雑度モデルは二次の多項式である。しかしながら線形複雑度モデルと二次多項式複雑度モデルと三次多項式複雑度モデルの性能を比較するためにフラワーガーデンシーケンスでのシミュレーションを行った。これら3つの方法の性能を判断する際に、実際のデータに対するモデルの適合の比較、すなわち平均二乗誤差の平方根計算を行い、比較した。下記の表1にこの結果を示す。
Figure 0003739094
この結果は、二次多項式の複雑度モデルは画像の複雑度を予測する際に線形モデルに対して71%強の改善率をもたらすことから、符号化器の全体のレート制御を改善することを示している。更に、この結果は三次の多項式の複雑度モデルは線形モデルと比較して、改善率を76%強にすることを示している。三次多項式の複雑度モデルのほうが良好な予測をするが、より高度の計算オーバーヘッドも必要となる。従って、符号化器の設計者は適当な複雑度モデルを選択するにあたり、予測性能と計算オーバーヘッドとをバランスさせなければならない。好ましい実施例では、二次多項式の複雑度モデルは適当な計算オーバーヘッドで正確な予測値を提供する。更に計算オーバーヘッドは特定の応用例に対し重要な制約となる場合、レート制御プロセスを簡略化するため、図3に示されるようなステップ230を省略してもよい。
本発明の第2実施例では、次のマクロブロックに対する量子化器のスケールを計算するのに、符号化プロセスから得られた実際のデータが直接使用される。この最適化プロセスは次の式から定式化される。
R(D)=F(D)+λ*E (14)
ここで、R(D)は画像を符号化するのに使用されるビット総数であり、F(D)は現在ブロックのレートひずみ関数であり、Eはこの画像で使用すべきビットの目標数であり、λはラグランジュ乗数である。実際に、画像に対する目標ビット割り当てEの制約の下でレートひずみ関数F(D)を最小にするのにラグランジュ乗数プロセスが使用される。この最適化プロセスについては図4を参照して後述する。
図4は次のマクロブロックに対する量子化器のスケールを直接計算するために、符号化プロセスから得られた実際のデータを使用するレート制御方法400のためのフローチャートを示す。この方法はステップ405で開始し、ステップ410まで進み、ここで、この方法はIフレーム、PフレームおよびBフレームのためのそれぞれの目標ビットレートTIPおよびTBを計算するためにTM4またはTM5のような初期モデルを採用する。別のモデルは先のI、PおよびBフレームを符号化するのに必要なビットの実際の数から、単に目標ビットレートTI、TP、およびTBを割り当てることである。
方法400はステップ415において次のようにフレーム内の各マクロブロックに対するバッファの充満度の度合を計算する。
Figure 0003739094
ここで、Riはi番目のマクロブロックを符号化する前のバッファの充満度であり、
0は初期のバッファの充満度であり、
i-1はi−1個のマクロブロックを含む、このi−1番目のマクロブロックまでのすべてのマクロブロックを符号化することによって発生されるビット数であり、
Tは先のI、PまたはBフレームにおけるI、PまたはBフレームのための目標ビットバジェットであり、
MBは現在のフレームにおけるマクロブロックの総数である。
バッファの充満度Riは現在、符号化されたビットによって満たされている出力バッファの量に関するインジケータである。この度合は、符号化器がバッファをアンダーフローまたはオーバーフローさせないようにし、この結果、データが失われないように補償するものである。従って、この方法は出力バッファの充満度に応じて変化する量子化器のスケールを設定する。
この方法は次に、ステップ420でi番目のマクロブロックのための量子化器のスケールQiを次のように計算する。
Figure 0003739094
Figure 0003739094
ステップ425では、この方法はステップ420にて計算されたマクロブロックに対する量子化器のスケールにより、iマクロブロックMBを符号化する。この結果得られるマクロブロックに対する符号化された信号はステップ430へ送られる。
ステップ430では符号化された信号からマクロブロックに対するひずみDを計算する。このひずみDは入力画像の対応する元のマクロブロックと量子化器されたマクロブロックとの間の実際のひずみである。計算されたひずみは比較のためにステップ435へ送られる。
ステップ435ではこの方法は、先の計算と比較してひずみが減少したかどうかを問い合わせる。最初の問い合わせに対し常に否定的な回答がなされるようにDはゼロにセットされている。問い合わせに対する答えが否定的である場合、方法はステップ440に進み、ここでTはT−ΔTに置換される。ここでΔTは次のように表示される。
Figure 0003739094
次に、ステップ415に戻り、量子化器のスケールの選択およびマクロブロックの符号化のプロセスを繰り返す。問い合わせに対する回答が肯定的である場合、この方法はステップ450に進む。実際に、この方法ではTを調節する際にひずみが減少したことを示す実際のデータから判断した。
ステップ450では、Tを調節する所定の回数の繰り返しを行ったかどうかを問い合わせる。この問い合わせに対する回答が否定的であればステップ455へ進み、ここで式(18)に従ってTは再びT−Δに置換される。この方法は、所定の回数の繰り返しが満たされるまで繰り返される。問い合わせに対する回答が肯定的であればステップ465まで進む。好ましい実施例では、Tは20回調節される。しかしながら他の要素、例えば速度、計算オーバーヘッドおよびひずみに合わせるように繰り返し回数を調節できる。
ステップ465ではこの方法はひずみを最小とするTを選択する。このTはステップ415において次のマクロブロックに対して使用される。
ステップ470では、この方法はiを1だけインクリメントする。ステップ475では、更に別のマクロブロックがあるかどうかを問い合わせる。問い合わせに対する回答が肯定的であればステップ415に進み、次のマクロブロックに対し全体の方法を繰り返す。問い合わせに対する回答が否定的であれば、ステップ480に進み、ここでこの方法は終了するか、次の画像またはフレームに進む。
第3実施例では、図3のステップ340に開示されているようなビット予定数Tは先のフレームまたは画像の符号化情報を用いて計算できる。より詳細には、連続するフレームは密接に関連しているのが多いので、n番目のフレームに対するビットの予定数Tp(n)を導き出すのに、先のフレームを符号化するのに使用したビット数が用いられる。
図5は、先のフレームを符号化するのに使用されたビット数およびチャンネルの全ビットレート(または画像のグループ(GOP)に対するビットバジェット)に従って、n番目のフレームに対するビットの予定数Tp(n)を計算するための方法500のフローチャートを示す。この方法500はすべての画像タイプに使用できるが、特にP画像に対するビット数を予測するのに特に適す。しかしながら、当業者であればIおよびB画像の予測を改善するのに、方法500を調整できることが理解できよう。
図5を参照すると、方法500はステップ510で開始し、ステップ520まで進み、ここで方法500はTP(AVG)を計算する。ここでTP(AVG)は次のように表示される。
P(AVG)=Max(ビットレート/フレームレート,R/N) (19)
ここで、TP(AVG)は残りのフレームを符号化するのに必要なビットの予定平均数であり、Rはビットの残りの数であり、Nはフレームの残りの数である。すなわち、ステップ520にて方法500はチャンネルビットレートをフレームレートで割った値、またはGOPにおけるビットの残りの数(すなわちGOPのためのビットバジェットの残り)をGOPにおけるフレームの残りの数で割った値のうちの大きいほうを選択することにより、残りのフレームを符号化するのに必要なビットの予定平均数を導出する。式(19)はフレームに対するビットバジェットに大きく影響するチャンネルビットレートの変化を方法500が考慮できるようにするものである。最後に、フレームレートは一般に毎秒30枚のフレームに設定される。
しかしながらTP(AVG)の計算は連続するフレーム内の内容の密接な相関性を考慮するものではない。すなわちこの計算が内容と独立しており、利用できるビットを残りのフレームに等しく分散させるものである。
ステップ530では、方法500はTP(AVG)からのn番目のフレームに対するビットの予定数Tp(n)を計算する。ここで、TP(n)は次のように表示される。
P(n)=TP(AVG) *(1−w)+B(n−1)*w (20)
ここで、B(n−1)は先のフレームを符号化するのに使用されたビット数であり、wは0.05にセットされた重み付け係数である。従って、n番目のフレームに対するビットの予定数Tp(n)は先のフレームを符号化するのに使用されたビット数を考慮した要素を含むので、1つのフレームを符号化するのに使用されるビット数の予定値を改善する。次にTp(n)は図2〜4にてこれまで説明したように、効率的なレート制御を行うための、量子化器のスケール変更に使用できる。最後に方法500はステップ540で終了する。
更に、当業者であれば、使用されたビット数と残りのビット数の関係を評価することにより、方法500を実現できることが理解できよう。更に他の応用例に合わせるように、重み付け係数wを他の値に調節したり、GOP内の内容に応答して調節できる。
更に、今後採用されるMPEG4規格で提案されている検証モデル(VM:Verification Models)と比較して方法500に示されたレート制御方法の有効性を実証するのに、アペンディクスAを添付した。
図6は、本発明の第4実施例を含む符号化器600を示す。この符号化器はブロック動き補償器(BMC)および動きベクトル符号化器604と、減算器602と、離散ウェーブレット変換(DWT)符号化器606と、ビットレートコントローラ610と、DWT復号化器612と、出力バッファ614とを含む。
一般に、入力信号はビデオ画像(ビデオシーケンスでフレームを定めるピクセル(ペル)の二次元アレイ)である。低ビットレートチャンネルを通して画像を正確に伝送するには、ビデオフレームシーケンスにおける空間的、かつ時間的冗長性を実質的に低減しなければならない。これは一般的に、連続するフレームの間の差のみを符号化し、伝送することによって達成される。符号化器は3つの機能を有する。第1の機能としてBMCおよび符号化器604を使用してフレーム間で生じる動きを示す複数の動きベクトルを発生する。第2の機能として、この動きベクトルと組み合わされた先のフレームの再構成されたバージョンを使用して、現在フレームを予測する。第3の機能として、現在フレームから予測されたフレームを減算し、残余フレームを生成し、この残余フレームを符号化し、動きベクトルと共に受信機へ伝送する。受信機では復号器は符号化された残余信号および動きベクトルを使用して各ビデオフレームを再構成する。図6に示されているような一般的な構造を有するウェーブレットに基づくビデオ復号器は、1995年10月25日に出願された米国仮特許出願第60/007,012号(代理人整理番号11908)(本願は 年 月 日に出願された米国特許出願第 号に変更(代理人整理番号DSRC11908))および1995年10月25日に出願された米国仮特許出願第60/007,013号(代理人整理番号11730)(本願は1996年10月23日に出願された米国特許出願第 号に変更(代理人整理番号DSRC11730))の双方に開示されており、いずれの出願も本願で参考例として引用する。これら双方の出願は、ビデオ信号を符号化するのにウェーブレット変換を使用することを記載している。
本発明はウェーブレット符号化器の符号化レートを制御する技術に焦点を合わせている。ビデオシーケンスからウェーブレットを生成するための符号化器の一般的な機能は、本発明の一部を構成するものではなく、単に図6に示され、本発明を実施化するための背景をなすものとして以下に説明するにすぎない。
離散ウェーブレット変換は入力画像の従来のウェーブレットツリー表示を生成するように、ウェーブレット階層サブバンド分解を実行する。かかる画像分解を行うには高水平−高垂直(HH)、高水平−低垂直(HL)、低水平−高垂直(LH)および低水平−低垂直(LL)周波数サブバンドへの、2回サブサンプリングを使用して画像を分解する。更にLLサブバンドはHH、HL、LHおよびLLサブバンドの組を生成するように、更に2回サブサンプリングされる。このサブサンプリングは、3回のサブサンプリングを使用する図7に示されているようなサブバンドアレイを生成するよう再帰的に行われる。実際には、好ましくは6回のサブサンプリングを使用する。サブバンドの間のペアレント(親)とチャイルド(子)の従属性は、ペアレントのノードのサブバンドからチャイルドノードのサブバンドを指す矢印のように示される。最低周波数のサブバンドは左側頂部のLL1であり、最高周波数のサブバンドは底部右側のHH3である。本例では、すべてのチャイルドノードは1つのペアレントを有する。サブバンド分解の詳細な説明は、J.M.シャピロ著「ウェーブレット係数のゼロツリーを使用する埋め込み画像符号化」信号処理に関するIEEEトランザクション、第41巻第12号、3445〜62ページ、1993年12月に記載されている。
図6のDWT符号化器は「ブレス第1」または「デプス第1」パターンのいずれかでウェーブレットツリーの係数を符号化する。ブレス第1パターンはビット平面毎のパターンによりビット平面内のウェーブレットツリーを横断し、すなわちすべてのペアレントノードを量子化し、次にすべてのチャイルドノードを量子化し、次にすべてのグランドチャイルド(孫)ノード等を量子化する。これと対照的に、デプス第1パターンは低−低サブバンド(LL1)のルートからチャイルドノードを通って(トップダウン)、またはチャイルドノードから低−低サブバンドを通って(ボトムアップ)、各ツリーを横断する。
図8は、レートコントローラ610およびそのDWT符号化器606との相互接続部の詳細なブロック図である。DWT符号化器は量子化器804と直列に接続されたDWT802を含み、量子化器804はエントロピー符号化器806と直列に接続されている。この量子化器の出力はDWT復号器612にも接続されている。エントロピー符号化器からの出力信号は出力バッファ614へ送られる。DWT符号化器への入力信号は一般に、動き補償された残余信号を含む、あるシーケンスのフレームである。しかしながら一般的には、この入力シーケンスは任意の二次元データを含む一連のフレームでよい。フレーム内のこのデータの特定の性質は、本発明の作動と無関係である。
量子化器804はウェーブレット変換の係数を量子化するのに使用される。本発明に係わるレートコントローラ610は、符号化プロセス中に所定の連続したフレームに対する所定ビットバジェットを越えないように多数のパラメータに応じて量子化器のスケール(ステップサイズ)を制御する。本発明は、あるシーケンスのビデオフレーム内のフレーム(任意に第1フレーム)を統計学的に分析することに基づき、次のフレーム(第2フレーム)のためのビットバジェットを生成する。この統計学的分析は変換前のフレームに対して行われるので、この分析はフレームレイヤーで行うべきである。変換後行う処理は、ウェーブレットツリーレイヤー内で行うべきである。低−低サブバンドから延びる各ツリーにフレームレイヤービットバジェットが割り当てられる。ツリー毎の所定の数のビットの割り当てはシーケンス内の先のフレームを符号化するのに既に使用されたビット数、現在フレームの符号化の複雑度および出力バッファによって提供されるバッファの充満情報に従って行われる。ツリー内の各係数に対する量子化パラメータは、そのツリーに対するビット割り当てに基づき計算される。
符号化器への入力ビデオシーケンスは2つのタイプの一連のフレーム、すなわちイントラフレーム(Iフレーム)および予測フレーム(Pフレーム)を含むものと仮定する。更に、例えばシーケンスが....IPPPPPP....PPPIPP....となるようにF個のPフレーム毎にシーケンス内で1つのIフレームが発生すると仮定する。
Iフレームから次のIフレームに広がるフレームのグループを符号化するのに必要なビットの総数Gは次のとおりである。
Figure 0003739094
従って、120個のフレーム毎に1つのIフレームが伝送され、64kbpsで作動し、毎秒30フレームが伝送されるシステム内の符号化器に対しては、グループ内のすべてのフレームを符号化するのに必要なビット総数は256kビット、すなわちシーケンスに対するビットバジェットは256kビットとなる。このように少数のビットしか作用させない場合、ビットバジェットを種々のフレームに最適に割り当てるレート制御技術が望ましいものであることが明らかである。
この最適割り当てを行うためにレートコントローラ610はフレームレイヤービット割り当て器808と、ウェーブレットツリーレイヤービット割り当て器810と、量子化器パラメータマスク発生器812とを含む。フレームレイヤー割り当て器808はウェーブレットツリーレイヤー割り当て器810に接続され、これら双方の割り当て器は量子化器パラメータマスク発生器812に接続されている。マスク発生器は量子化器パラメータの二次元アレイを発生する。このアレイはDWT符号化器606により最適なビットレートが発生されるよう、量子化器の公称スケール値に変えるのに使用される。フレームレイヤービット割り当て器の作動については図9を参照して説明し、ウェーブレットツリーレイヤービット割り当て器の作動については図10を参照して説明する。
A.フレームレイヤーにおけるビットの割り当て
図9は、フレームレイヤービット割り当て器を作動させるプロセス900のフローチャートを示す。このプロセスはステップ902で開始し、ステップ904に続く。最初のIフレームを符号化する前に、レート制御プロセスは総ビットバジェットGに等しい、フレームのグループを符号化するために残っているビット数を表示する変数Rをステップ904で設定する。次にこのプロセスは、次の式に従って、第1Iフレームに対する目標ビットレートをステップ906で確立する。
Figure 0003739094
ここで、
iは、第1のフレームに対する目標ビットレートであり、
p=F−1は、シーケンスにおけるPフレームの数であり、
pは、Pフレームに対して設定された平均ビットバジェットであり、
Rは、割り当てに利用できる残りビットであり、
pは、所定のPフレームに対する複雑度の度合であり、
iは、所定のIフレームに対する複雑度の度合であり、
iは、Iフレームに対する重み付け係数であり、
pは、Pフレームに対する重み付け係数である。
pおよびXiの値は次のように、所望するビットレートの関数として最初に設定される。
Figure 0003739094
その後、プロセスが繰り返される毎にXpおよびXiの更新された値が発生される。フレームが符号化される際に、複雑度の度合XpおよびXiが更新される。この複雑度の度合を更新するのに使用される方法は、最も簡単な形態では、先のフレームに対して発生された量子化パラメータの平均値を、先の画像を符号化するのに使用したビット数で乗算することにより更新される。初期の符号化の値を設定し、この値を更新する簡単な方法については、ISO(International Organization for standardization)、画像およびオーディオの符号化表現:テストモデル5、ISO−IEC/JTC1/SC29/WG11、バージョン1、61〜64ページ、1993年4月、に開示されている。上記の図2〜3には、複雑度の良好な度合が開示されている。本方法には複雑度の度合を計算するいずれの方法も利用できる。
pおよびKiの値は「普遍的定数」であり、この定数は量子化スケール値QT(後述する)によって定められる。一般にQTは単一の値ではなく、むしろフレームにおける各ツリーに対する公称量子化スケールを設定する値のマトリックスである。重み付け関数KpおよびKiに対する代表的な値は、それぞれ1.4および1.0である。
Iフレームに対し符号化が完了した後に、プロセスはステップ908でRの値を更新する。
R=R−Ti (24)
このプロセスは、ステップ910でフレームのグループ内でn番目のフレーム、すなわちPフレーム、に対する目標ビットレートを下記のように設定する。
p n=R/Np (25)
ここで、Tp nはn番目のフレームに対する目標ビットレートである。
ステップ912では、プロセスは現在の(n番目の)フレーム内に含まれるウェーブレットツリーの各々に対するビット割り当てを計算する。この計算は図10のウェーブレットツリーレイヤービット割り当てプロセスを実行することによって達成される。このプロセスについては後に詳述する。
ステップ914ではシーケンス内のフレームのすべてが処理されたかどうか、すなわちn=Fであるかどうかを問い合わせる。この問い合わせに対する回答が肯定的であれば、フレームのすべて、すなわち1つのIフレームおよび(F−1)個のPフレームが処理されており、プロセスはステップ904に戻り、フレームの次のグループを処理する。問い合わせに対する回答が否定的であれば、プロセスはステップ916に進む。
フレームを符号化する毎に式(21)の変数はステップ916で次のように更新される。
p=Np−1 (26)
R=R−BNT n (27)
n=n+1 (28)
ここで、BNT nはn番目のフレームを符号化するのに使用されるビットの実際の数であり、
NTは、各フレームを表示するウェーブレットツリーの総数である。
このポイントではDWT符号化器によって符号化される次のフレーム(n番目のフレーム)に対するビットバジェットは既に計算されている。次に、プロセスはn番目のフレームを含む各ツリーに対し、フレームレイヤービットバジェットを割り当てなければならない。
B.ウェーブレットツリーに対するビットの割り当て
図10は、ウェーブレットツリーレイヤービットの割り当て器の作動を示す、ウェーブレットツリーレイヤービット割り当てプロセス1000のフローチャートを示す。このプロセス1000はステップ1002においてプロセス900から入る。上記のように、各フレームは分解された入力フレームの低−低バンドから延びた複数のウェーブレットツリーによって表示される。従って、n番目のフレームに割り当てられる符号化ビットはツリーjに割り当てられなければならない。プロセス1000はステップ1004にて次のようにフレーム内の各ツリーに対するバッファ充満度を計算する。
Figure 0003739094
ここで、
j nは、j番目のツリーを符号化する前のバッファの充満度であり、
o nは、初期のバッファ充満度であり、
j nは、j番目のツリーまで(このj番目のツリーを含む)、n番目のフレーム内のすべてのウェーブレットツリーを符号化することによって生じるビットの数であり、
nは、先のIまたはPフレームにおける目標ビットバジェット(すなわちこの値はバッファから先のフレームが抽出された際に、バッファ内で自由となるビットの近似数である)であり、
NTは、現在フレームにおけるウェーブレトツリーの総数である。
バッファの充満度Rj nは、現在、符号化されたビットで満たされている出力バッファの量に関するインジケータである。この度合は、符号化器がバッファをアンダーフローまたはオーバーフローさせて、結果データを失わせないように補償するものである。従って、このプロセスは出力バッファの充満度に応じて変化する量子化スケールを設定する。
次に、ステップは1006でj番目のウェーブレットツリーに対する量子化パラメータQj nを次のように計算する。
Figure 0003739094
Figure 0003739094
この量子化パラメータはかかるパラメータのアレイ内に記憶され、このアレイは、後述するように、各ツリー内でウェーブレット係数を最適に量子化するのに使用できるマスクを形成する。
ステップ1008では、プロセスは現在フレームにおけるツリーの全てが処理されたかどうか、すなわちj=NTであるかどうかを問い合わせる。この問い合わせに対する回答が否定的であれば、プロセスはステップ1010でツリーインデックスを増加し(j=j+1)、次にステップ1004へ戻り、フレーム内の次のツリーに対するバッファの充満度を計算する。次に、プロセスはj=NTとなるまで、すべてのj個の値に対して繰り返すことにより、フレーム内のすべてのツリーが処理されるまで、このループを回る。ステップ1008における問い合わせに対する回答が肯定的であれば、プロセスはYESパスに沿ってステップ1012へ進む。ステップ1012では、j=NTの時にn番目のフレームに対するバッファ充満度をn+1フレーム番目のフレームに対する初期バッファ充満度として使用するよう、初期バッファ充満度を更新するのに最終バッファ充満度の値を使用する。すなわち次のようになる。
o n=RNT n (32)
一旦完了すると、フレーム内のツリー毎のビットの割り当ての計算を終了し、ステップ1014でフレームレイヤービット割り当てプロセス900に戻る。このポイントで、レートコントローラは現在フレームに対する量子化マスクの発生を完了している。このように、現在フレームをこれから量子化し、符号化できる。
C.適応量子化
各フレームに対する目標ビットレートを生じさせるような量子化ステップサイズ(量子化器のスケール)を設定するのに、量子化パラメータマスクを使用する。量子化ステップ(m_quant)を次のように計算する。
m_quant=Qj n*QT (33)
ここで、QTは公称量子化スケール値でありフレームの全シーケンスに対し一定とすることができるが、この値は、フレーム毎に変わり得るが、各フレーム内で一定にしてもよいし、あるいは、各フレーム内で変化してもよい。
このように、式(33)における値の各々をマトリックス量とすることができる。実際の量子化パラメータはビットバジェットを維持し、ウェーブレットに基づくビデオ符号化器の出力におけるビットレートをほぼ一定とすることを保証するように、公称量子化スケールの値を変更する。
以上で、符号化レートを最適にしながら、ビデオ画像の全画質を維持するよう、各マクロブロックに対し量子化器のスケールを再帰的に調整する新規な装置および方法について図示し、説明した。しかしながら、当業者が本発明の実施例を開示した本明細書および添付図面を検討すれば、本発明の多くの変形例、改変例、変更例およびその他の使用法および応用例について明らかとなろう。本発明の要旨および範囲から逸脱しないかかる変形例、改変例、変更例およびその他の用途および応用例は、次の請求の範囲のみによって限定される本発明によりカバーされるものとなる。
アペンディクスA
3.実験結果
これらはクラスAおよびBのシーケンスに対する符号化の結果である。Iフレームに対し、我々は量子化ステップを10を設定し、Pフレームに対し、クラスAのシーケンスで10、24、48kbpsに対し、量子化ステップ15、10、6をそれぞれ設定した。クラスBのシーケンスで24、48、112kbpsに対し、量子化ステップ15、10、6をそれぞれ設定した。この量子化ステップのセットを用いて、VMレート制御が目標レートを達成することができない場合、目標レートに達するまで微調整を行う。Q2方法は初期の量子化ステップを必要としない。
3.1.クラスAシーケンス
Figure 0003739094
Figure 0003739094
Figure 0003739094
Figure 0003739094
3.2.クラスBシーケンス
Figure 0003739094
Figure 0003739094
Figure 0003739094
Figure 0003739094

Claims (3)

  1. 少なくとも1つのブロックに区分される少なくとも1つの入力フレームを有する入力画像シーケンスを符号化するための装置において、
    前記ブロックに対する動きベクトルを計算し、該動きベクトルを用いて予測画像を生成するためのブロック動き補償器と、
    該ブロック動き補償器に結合されており、前記入力フレームと前記予測画像との間の差信号に対する変換として、複数の係数を発生する変換を行うための変換モジュールと、
    該変換モジュールに結合されており、前記複数の係数を或る量子化スケールで量子化するための量子化器と、
    該量子化器に結合されており、直前の符号化された部分からの符号化情報に応答して、現在ブロックに対する前記量子化スケールを、前記ブロックに割り当てられたビット数が量子化スケールの逆数の2次以上の関数で表される複雑度モデルを用いて選択的に調整するためのコントローラと、
    前記量子化器に結合されており、前記複数の量子化された係数を符号化するための符号化器とを備えて入力画像シーケンスを符号化するための装置。
  2. 前記変換モジュールがDCTを行い、前記ブロックから複数のDCTブロックを生成する請求項1記載の装置。
  3. 前記複雑度モデルを前記2次以上の関数の定数項をブロック単位に更新することで調整する請求項1記載の装置。
JP51684597A 1995-10-25 1996-10-24 符号化システムにおけるレート制御を最適にするための装置 Expired - Lifetime JP3739094B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US701695P 1995-10-25 1995-10-25
US701495P 1995-10-25 1995-10-25
US60/007,016 1995-10-25
US60/007,014 1995-10-25
US2087296P 1996-06-28 1996-06-28
US60/020,872 1996-06-28
PCT/US1996/017204 WO1997016029A1 (en) 1995-10-25 1996-10-24 Apparatus and method for optimizing the rate control in a coding system

Publications (2)

Publication Number Publication Date
JP2000516050A JP2000516050A (ja) 2000-11-28
JP3739094B2 true JP3739094B2 (ja) 2006-01-25

Family

ID=27358239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51684597A Expired - Lifetime JP3739094B2 (ja) 1995-10-25 1996-10-24 符号化システムにおけるレート制御を最適にするための装置

Country Status (6)

Country Link
US (1) US6160846A (ja)
EP (1) EP0857394B1 (ja)
JP (1) JP3739094B2 (ja)
KR (1) KR19990067041A (ja)
DE (1) DE69628935T2 (ja)
WO (1) WO1997016029A1 (ja)

Families Citing this family (161)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6873734B1 (en) * 1994-09-21 2005-03-29 Ricoh Company Ltd Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6549666B1 (en) 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
KR0185646B1 (ko) * 1996-01-06 1999-05-01 김광호 영상압축장치의 영상압축데이터량 조정회로 및 그 방법
US6233017B1 (en) * 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US6728775B1 (en) 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
GB9712651D0 (en) * 1997-06-18 1997-08-20 Nds Ltd Improvements in or relating to encoding digital signals
KR19990005283A (ko) * 1997-06-30 1999-01-25 배순훈 웨이브렛 변환 영역에서의 계층적 움직임 추정 방법
FI107496B (fi) * 1997-07-18 2001-08-15 Nokia Mobile Phones Ltd Kuvan kompressointi
DE69830979T2 (de) 1997-07-29 2006-05-24 Koninklijke Philips Electronics N.V. Verfahren und vorrichtung zur videocodierung mit variabler bitrate
JP2001501430A (ja) * 1997-07-29 2001-01-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変ビットレート・ビデオ符号化方法および対応するビデオ符号器
GB9716579D0 (en) * 1997-08-05 1997-10-08 Univ Bath Signal coding and decoding
AUPO951297A0 (en) * 1997-09-29 1997-10-23 Canon Information Systems Research Australia Pty Ltd Method and apparatus for digital data compression
WO1999017257A2 (en) * 1997-09-29 1999-04-08 Conexant Systems, Inc. System and method for compressing images using multi-threshold wavelet coding
US6873368B1 (en) * 1997-12-23 2005-03-29 Thomson Licensing Sa. Low noise encoding and decoding method
TW501022B (en) * 1998-03-16 2002-09-01 Mitsubishi Electric Corp Moving picture coding system
JPH11298890A (ja) * 1998-04-13 1999-10-29 Hitachi Ltd 画像データの圧縮又は伸張方法とその装置、並びに、それを用いた画像伝送システム及び監視システム
US6292512B1 (en) * 1998-07-06 2001-09-18 U.S. Philips Corporation Scalable video coding system
WO2000003544A1 (en) * 1998-07-10 2000-01-20 Koninklijke Philips Electronics N.V. Bit-rate modification
US6411740B1 (en) * 1998-11-04 2002-06-25 Sharp Laboratories Of America, Incorporated Method for non-uniform quantization in a resolution hierarchy by use of a nonlinearity
US7181073B1 (en) * 1999-03-08 2007-02-20 Texas Instruments Incorporated Image coding using embedded zerotree patterns and bitplanes
KR20000059799A (ko) * 1999-03-09 2000-10-05 구자홍 웨이브릿 부호화를 이용한 움직임 보상 부호화 장치 및 방법
US6778709B1 (en) * 1999-03-12 2004-08-17 Hewlett-Packard Development Company, L.P. Embedded block coding with optimized truncation
FR2792798B1 (fr) * 1999-04-26 2001-05-25 Thomson Multimedia Sa Procede et dispositif de quantification pour compression video
US6351491B1 (en) * 1999-06-23 2002-02-26 Sarnoff Corporation Apparatus and method for optimizing the rate control for multiscale entropy encoding
US6535644B1 (en) * 1999-07-01 2003-03-18 Koninklijke Philips Electronics N.V. Hierarchical foveation based on wavelets
JP4287545B2 (ja) * 1999-07-26 2009-07-01 パナソニック株式会社 サブバンド符号化方式
US6549673B1 (en) * 1999-10-28 2003-04-15 Lucent Technologies Inc. Wavelet-based compression of images for storage, transmission and reconstruction using hierarchical subband decomposition
WO2001052550A1 (en) * 2000-01-12 2001-07-19 Koninklijke Philips Electronics N.V. Image data compression
KR100359821B1 (ko) * 2000-01-20 2002-11-07 엘지전자 주식회사 움직임 보상 적응형 영상 압축과 복원방법 및 그 장치와디코더
JP2001285876A (ja) * 2000-03-30 2001-10-12 Sony Corp 画像符号化装置とその方法、ビデオカメラ、画像記録装置、画像伝送装置
US6724817B1 (en) * 2000-06-05 2004-04-20 Amphion Semiconductor Limited Adaptive image data compression
JP2002084540A (ja) * 2000-06-28 2002-03-22 Canon Inc 画像処理装置、画像処理方法、電子カメラ、及び、プログラム
WO2002023475A2 (en) 2000-09-12 2002-03-21 Koninklijke Philips Electronics N.V. Video coding method
US7062445B2 (en) * 2001-01-26 2006-06-13 Microsoft Corporation Quantization loop with heuristic approach
US6671324B2 (en) * 2001-04-16 2003-12-30 Mitsubishi Electric Research Laboratories, Inc. Estimating total average distortion in a video with variable frameskip
DE10120395A1 (de) * 2001-04-25 2002-10-31 Bosch Gmbh Robert Einrichtung zur Interpolation von Abtastwerten sowie Bildencoder und Bilddecoder
US6944225B2 (en) * 2001-07-24 2005-09-13 Sharp Laboratories Of America, Inc. Resolution-scalable video compression
WO2003028237A1 (en) * 2001-09-28 2003-04-03 Divxnetworks, Inc. Dynamic bit rate control process
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7356079B2 (en) * 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7027982B2 (en) * 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
JP2005524354A (ja) * 2002-04-29 2005-08-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数基準フレームに基づいた動き補償時間的フィルタ化を行うウェーブレット・ベース符号化
US7388912B1 (en) * 2002-05-30 2008-06-17 Intervideo, Inc. Systems and methods for adjusting targeted bit allocation based on an occupancy level of a VBV buffer model
US7099513B2 (en) * 2002-06-18 2006-08-29 Pts Corporation Bit allocation process for multi-stage image compression
US6980695B2 (en) * 2002-06-28 2005-12-27 Microsoft Corporation Rate allocation for mixed content video
EP1520431B1 (en) * 2002-07-01 2018-12-26 E G Technology Inc. Efficient compression and transport of video over a network
WO2004006188A2 (en) * 2002-07-09 2004-01-15 Aware, Inc. Iterative compression parameters control for a sequence of images
US7769084B1 (en) 2002-07-15 2010-08-03 Apple Inc. Method for implementing a quantizer in a multimedia compression and encoding system
US7418037B1 (en) * 2002-07-15 2008-08-26 Apple Inc. Method of performing rate control for a compression system
US7440502B2 (en) * 2002-11-14 2008-10-21 Georgia Tech Research Corporation Signal processing system
US7804897B1 (en) * 2002-12-16 2010-09-28 Apple Inc. Method for implementing an improved quantizer in a multimedia compression and encoding system
US7940843B1 (en) * 2002-12-16 2011-05-10 Apple Inc. Method of implementing improved rate control for a multimedia compression and encoding system
US7352809B2 (en) * 2003-02-21 2008-04-01 Polycom, Inc. System and method for optimal transmission of a multitude of video pictures to one or more destinations
EP1892965A3 (en) * 2003-04-04 2011-04-06 Avid Technology, Inc. Fixed bit rate, intraframe compression and decompression of video
ES2299847T3 (es) * 2003-04-04 2008-06-01 Avid Technology, Inc. Tasa de bits fija, compresion y descompresion entre cuadros de un video.
US7433519B2 (en) 2003-04-04 2008-10-07 Avid Technology, Inc. Bitstream format for compressed image data
US7403561B2 (en) 2003-04-04 2008-07-22 Avid Technology, Inc. Fixed bit rate, intraframe compression and decompression of video
WO2004109586A1 (en) 2003-06-05 2004-12-16 Aware, Inc. Image quality control techniques
CN1823530A (zh) * 2003-07-16 2006-08-23 皇家飞利浦电子股份有限公司 编码方法和设备
US8218624B2 (en) 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
US7602851B2 (en) 2003-07-18 2009-10-13 Microsoft Corporation Intelligent differential quantization of video coding
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7383180B2 (en) 2003-07-18 2008-06-03 Microsoft Corporation Constant bitrate media encoding techniques
US7580584B2 (en) 2003-07-18 2009-08-25 Microsoft Corporation Adaptive multiple quantization
US7343291B2 (en) 2003-07-18 2008-03-11 Microsoft Corporation Multi-pass variable bitrate media encoding
US20050063314A1 (en) * 2003-09-19 2005-03-24 Zafer Sahinoglu Method and system for content aware and energy efficient transmission of videos and images
JP2007509525A (ja) * 2003-10-20 2007-04-12 サムスン エレクトロニクス カンパニー リミテッド 視覚的画質を均一にするビットレートコントロール方法及び装置
US7889792B2 (en) 2003-12-24 2011-02-15 Apple Inc. Method and system for video encoding using a variable number of B frames
KR100575962B1 (ko) * 2003-12-31 2006-05-02 삼성전자주식회사 비디오 처리 장치의 파이프 라인 동작 방법과 그에 따른비트율 제어 방법
US20050207491A1 (en) * 2004-03-17 2005-09-22 Bin Zhang Estimating motion trials in video image sequences
US20050207501A1 (en) * 2004-03-18 2005-09-22 Sony Corporation Method of and system for video bit allocation for scene cuts and scene changes
US7801383B2 (en) 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
US20050286629A1 (en) * 2004-06-25 2005-12-29 Adriana Dumitras Coding of scene cuts in video sequences using non-reference frames
FR2872989A1 (fr) * 2004-07-06 2006-01-13 Thomson Licensing Sa Procede et dispositif pour choisir un vecteur mouvement pour le codage d'un ensemble de blocs
US7860158B2 (en) * 2004-08-27 2010-12-28 Mitsubishi Electric Research Laboratories Inc. Coding correlated images using syndrome bits
KR100677128B1 (ko) 2004-08-30 2007-02-02 삼성전자주식회사 동영상 부호화기의 비트율 제어장치 및 방법
US7983160B2 (en) 2004-09-08 2011-07-19 Sony Corporation Method and apparatus for transmitting a coded video signal
US7653129B2 (en) * 2004-12-28 2010-01-26 General Instrument Corporation Method and apparatus for providing intra coding frame bit budget
FR2880498A1 (fr) * 2005-01-05 2006-07-07 Nextream France Sa Dispositif et procede d'analyse d'images
US8437403B2 (en) * 2005-01-05 2013-05-07 Jean-Yves Babonneau Device and method for analysing images by calculating the variance for each pixel of a high-frequency image
US8031774B2 (en) * 2005-01-31 2011-10-04 Mediatek Incoropration Video encoding methods and systems with frame-layer rate control
US7983341B2 (en) * 2005-02-24 2011-07-19 Ericsson Television Inc. Statistical content block matching scheme for pre-processing in encoding and transcoding
EP1720356A1 (en) * 2005-05-03 2006-11-08 Matsushita Electric Industrial Co., Ltd. A frequency selective video compression
US7593026B2 (en) * 2005-05-11 2009-09-22 L-3 Communications Corporation Dynamic display optimization method and system with image motion
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
KR100785855B1 (ko) * 2005-07-19 2007-12-14 한국전자통신연구원 향상된 snr 스케일러빌리티 제공을 위한 양자화 장치 및방법
WO2007011160A1 (en) * 2005-07-19 2007-01-25 Electronics And Telecommunications Research Institute Apparatus and method of embedded quantizaton for the improved snr scalbilty
US9479794B2 (en) 2005-11-10 2016-10-25 Freescale Semiconductor, Inc. Resource efficient video processing via prediction error computational adjustments
US8674855B2 (en) 2006-01-13 2014-03-18 Essex Pa, L.L.C. Identification of text
US8861585B2 (en) * 2006-01-20 2014-10-14 Qualcomm Incorporated Method and apparatus for error resilience algorithms in wireless video communication
JP4795223B2 (ja) * 2006-01-31 2011-10-19 キヤノン株式会社 画像処理装置
US8116371B2 (en) * 2006-03-08 2012-02-14 Texas Instruments Incorporated VLC technique for layered video coding using distinct element grouping
KR100790986B1 (ko) * 2006-03-25 2008-01-03 삼성전자주식회사 가변 비트율 비디오 코딩에서 비트율을 제어하는 장치 및방법
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US7974340B2 (en) 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
US7783079B2 (en) 2006-04-07 2010-08-24 Monro Donald M Motion assisted data enhancement
US8059721B2 (en) 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US8077775B2 (en) * 2006-05-12 2011-12-13 Freescale Semiconductor, Inc. System and method of adaptive rate control for a video encoder
US7773672B2 (en) * 2006-05-30 2010-08-10 Freescale Semiconductor, Inc. Scalable rate control system for a video encoder
US7586424B2 (en) 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
US7770091B2 (en) 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US7845571B2 (en) 2006-06-19 2010-12-07 Monro Donald M Data compression
US7689049B2 (en) 2006-08-31 2010-03-30 Donald Martin Monro Matching pursuits coding of data
US7508325B2 (en) 2006-09-06 2009-03-24 Intellectual Ventures Holding 35 Llc Matching pursuits subband coding of data
US7974488B2 (en) 2006-10-05 2011-07-05 Intellectual Ventures Holding 35 Llc Matching pursuits basis selection
US9883202B2 (en) 2006-10-06 2018-01-30 Nxp Usa, Inc. Scaling video processing complexity based on power savings factor
US8315466B2 (en) 2006-12-22 2012-11-20 Qualcomm Incorporated Decoder-side region of interest video processing
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US7707214B2 (en) 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location with indirect addressing
US7707213B2 (en) 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location
US10194175B2 (en) 2007-02-23 2019-01-29 Xylon Llc Video coding with embedded motion
US8594187B2 (en) * 2007-03-02 2013-11-26 Qualcomm Incorporated Efficient video block mode changes in second pass video coding
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8090016B2 (en) * 2007-05-17 2012-01-03 Zoran Corporation Activity normalization for video encoding
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8055085B2 (en) 2007-07-12 2011-11-08 Intellectual Ventures Fund 44 Llc Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems
US7671767B2 (en) 2007-07-12 2010-03-02 Donald Martin Monro LIFO radix coder for electrical computers and digital data processing systems
US7545291B2 (en) 2007-07-12 2009-06-09 Donald Martin Monro FIFO radix coder for electrical computers and digital data processing systems
US8144037B2 (en) 2007-07-12 2012-03-27 Intellectual Ventures Fund 44 Llc Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems
US7548176B2 (en) 2007-07-12 2009-06-16 Donald Martin Monro Data coding buffer for electrical computers and digital data processing systems
US7990289B2 (en) 2007-07-12 2011-08-02 Intellectual Ventures Fund 44 Llc Combinatorial coding/decoding for electrical computers and digital data processing systems
US7602316B2 (en) 2007-07-12 2009-10-13 Monro Donald M Data coding/decoding for electrical computers and digital data processing systems
US8249141B1 (en) * 2007-07-13 2012-08-21 Sprint Spectrum L.P. Method and system for managing bandwidth based on intraframes
US20090161766A1 (en) * 2007-12-21 2009-06-25 Novafora, Inc. System and Method for Processing Video Content Having Redundant Pixel Values
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8311111B2 (en) 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
KR20100057388A (ko) * 2008-11-21 2010-05-31 삼성전자주식회사 버퍼 상태에 적응적인 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US8767825B1 (en) * 2009-11-30 2014-07-01 Google Inc. Content-based adaptive video transcoding framework
US8660178B2 (en) 2010-07-01 2014-02-25 Broadcom Corporation Method and system for multi-layer rate control for a multi-codec system
US9100657B1 (en) 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US9100509B1 (en) * 2012-02-07 2015-08-04 Google Inc. Dynamic bit allocation in parallel video encoding
CN104704827B (zh) * 2012-11-13 2019-04-12 英特尔公司 用于下一代视频的内容自适应变换译码
WO2014120368A1 (en) 2013-01-30 2014-08-07 Intel Corporation Content adaptive entropy coding for next generation video
US20140254659A1 (en) 2013-03-11 2014-09-11 Mediatek Inc. Video coding method using at least evaluated visual quality and related video coding apparatus
GB2514540B (en) * 2013-04-10 2020-01-08 Microsoft Technology Licensing Llc Resource for encoding a video signal
US20150256832A1 (en) * 2014-03-07 2015-09-10 Magnum Semiconductor, Inc. Apparatuses and methods for performing video quantization rate distortion calculations
US10284849B2 (en) 2015-04-13 2019-05-07 Qualcomm Incorporated Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
US10356428B2 (en) 2015-04-13 2019-07-16 Qualcomm Incorporated Quantization parameter (QP) update classification for display stream compression (DSC)
US9936203B2 (en) 2015-04-13 2018-04-03 Qualcomm Incorporated Complex region detection for display stream compression
US10244255B2 (en) 2015-04-13 2019-03-26 Qualcomm Incorporated Rate-constrained fallback mode for display stream compression
US10142049B2 (en) * 2015-10-10 2018-11-27 Dolby Laboratories Licensing Corporation Near optimal forward error correction system and method
US10462490B2 (en) * 2015-11-06 2019-10-29 Raytheon Company Efficient video data representation and content based video retrieval framework
US10356408B2 (en) * 2015-11-27 2019-07-16 Canon Kabushiki Kaisha Image encoding apparatus and method of controlling the same
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
CN111416630A (zh) * 2020-03-05 2020-07-14 烽火通信科技股份有限公司 一种编译码方法及系统
JPWO2022259632A1 (ja) * 2021-06-10 2022-12-15
WO2024054467A1 (en) * 2022-09-07 2024-03-14 Op Solutions, Llc Image and video coding with adaptive quantization for machine-based applications

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5144426A (en) * 1989-10-13 1992-09-01 Matsushita Electric Industrial Co., Ltd. Motion compensated prediction interframe coding system
US5134476A (en) * 1990-03-30 1992-07-28 At&T Bell Laboratories Video signal encoding with bit rate control
US5038209A (en) * 1990-09-27 1991-08-06 At&T Bell Laboratories Adaptive buffer/quantizer control for transform video coders
EP0557310B1 (de) * 1990-11-16 1997-06-04 Siemens Aktiengesellschaft Verfahren zur adaptiven quantisierung zwecks datenreduktion bei der übertragung von digitalen bildern
US5418617A (en) * 1991-08-08 1995-05-23 Matsushita Electric Corporation Of America Motion compensation using minimum bits per motion block as criterion for block matching
US5144424A (en) * 1991-10-15 1992-09-01 Thomson Consumer Electronics, Inc. Apparatus for video data quantization control
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5315670A (en) * 1991-11-12 1994-05-24 General Electric Company Digital data compression system including zerotree coefficient coding
US5253059A (en) * 1992-05-15 1993-10-12 Bell Communications Research, Inc. Method and circuit for adjusting the size of a video frame
US5291281A (en) * 1992-06-18 1994-03-01 General Instrument Corporation Adaptive coding level control for video compression systems
KR0134871B1 (ko) * 1992-07-17 1998-04-22 사또오 후미오 고능률 부호화 복호화 시스템
AU6099594A (en) * 1993-02-03 1994-08-29 Qualcomm Incorporated Interframe video encoding and decoding system
US5440346A (en) * 1993-06-16 1995-08-08 Intel Corporation Mode selection for method and system for encoding images
BE1007807A3 (nl) * 1993-11-30 1995-10-24 Philips Electronics Nv Inrichting voor het coderen van een videosignaal.
US5592226A (en) * 1994-01-26 1997-01-07 Btg Usa Inc. Method and apparatus for video data compression using temporally adaptive motion interpolation
US5594504A (en) * 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine

Also Published As

Publication number Publication date
KR19990067041A (ko) 1999-08-16
JP2000516050A (ja) 2000-11-28
WO1997016029A1 (en) 1997-05-01
EP0857394B1 (en) 2003-07-02
EP0857394A1 (en) 1998-08-12
US6160846A (en) 2000-12-12
DE69628935D1 (de) 2003-08-07
EP0857394A4 (ja) 1998-09-09
DE69628935T2 (de) 2004-05-27

Similar Documents

Publication Publication Date Title
JP3739094B2 (ja) 符号化システムにおけるレート制御を最適にするための装置
US6895050B2 (en) Apparatus and method for allocating bits temporaly between frames in a coding system
US7372903B1 (en) Apparatus and method for object based rate control in a coding system
US6690833B1 (en) Apparatus and method for macroblock based rate control in a coding system
US6084908A (en) Apparatus and method for quadtree based variable block size motion estimation
US6243497B1 (en) Apparatus and method for optimizing the rate control in a coding system
US6990246B1 (en) Image coding
US5724453A (en) Image compression system and method having optimized quantization tables
KR100308627B1 (ko) 중첩블럭이동보상및제로트리웨이브릿코딩을이용한저비트레이트비디오엔코더
US6351491B1 (en) Apparatus and method for optimizing the rate control for multiscale entropy encoding
JP2000511366A6 (ja) 4分割ツリーベースの可変ブロックサイズ動き推定装置および方法
GB2308768A (en) Video encoding based on inter block redundancy
Wu et al. Efficient rate-control system with three stages for JPEG2000 image coding
Lee New MPEG-2 rate control algorithms based on motion estimation statistics
Lee et al. Fast algorithm for optimal bit allocation
MATSUO et al. JPEG2000 ENCODER FOR REDUCING TILING ARTIFACTS AND ACCELERATING THE CODING PROCESS

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050928

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051101

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131111

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term