JP2008529416A - 実時間フレーム符号化方法及び装置 - Google Patents

実時間フレーム符号化方法及び装置 Download PDF

Info

Publication number
JP2008529416A
JP2008529416A JP2007553166A JP2007553166A JP2008529416A JP 2008529416 A JP2008529416 A JP 2008529416A JP 2007553166 A JP2007553166 A JP 2007553166A JP 2007553166 A JP2007553166 A JP 2007553166A JP 2008529416 A JP2008529416 A JP 2008529416A
Authority
JP
Japan
Prior art keywords
macroblock
data
amount
encoding
video
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.)
Granted
Application number
JP2007553166A
Other languages
English (en)
Other versions
JP5058823B2 (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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2008529416A publication Critical patent/JP2008529416A/ja
Application granted granted Critical
Publication of JP5058823B2 publication Critical patent/JP5058823B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/156Availability of hardware or computational resources, e.g. encoding based on power-saving 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/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/103Selection of coding mode or of prediction mode
    • 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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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
    • 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/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
    • 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

Abstract

装置は、圧縮すなわち符号化されたビデオデータを提供するソフトウェアベースのH.264ビデオ符号器を内蔵している。H.264符号器は、マクロブロックモード決定及び動き予測フレームワーク内でH.264符号器が利用可能な時間が制約すなわち制限されるように、計時アルゴリズムを内蔵している。そして、H.264符号器が利用可能な特定の時間量が、H.264符号器がマクロブロックを符号化するために使用し得る利用可能な符号化モードの部分集合を決定する。

Description

本発明は、概して、通信システムに関し、より具体的には、例えばビデオといった実時間データを符号化する際に使用する符号器に関する。
実時間H.264符号化は計算的に非常に厳しく、かなりの量のメモリ及び計算資源を必要とする。従来、ビデオ符号器は特定用途向け集積回路(ASIC)の形態でハードウェアにて実装されている。しかしながら、パーソナルコンピュータ(PC)技術の進展により、最も高性能のコンピュータはもはや、実時間音声・映像圧縮を適度な解像度で実行するだけの処理能力を有している。H.264の場合、例えばPentium(登録商標)IV等の最新の高性能汎用PC用プロセッサは、共通中間フォーマット(Common Intermediate Interface;CIF)(352×288画素/フレーム、30フレーム/秒)のビデオを実時間で符号化するのに十分な処理能力を提供することができる。
このビデオ符号器実装に関するハードウェアに基づくソリューションからソフトウェアに基づくソリューションへの移行は、解決されなければならない新たな課題を生じさせる。より具体的には、ソフトウェアに基づくビデオ符号器においては、各ビデオフレームが、1フレームの表示に割り当てられた時間量(ここでは、この時間量を表示時間、又は等価的に、その逆数により表示速度と参照する)以下の時間量内で符号化されることが重要である。しかしながら、H.264符号器の動き予測アルゴリズムは、動き検出が満足のいく閾値(すなわち、近い整合)に到達するか、取り得る全ての検出点を使い尽くすかの何れかまで、その動き検出を反復的に絞り込む反復アルゴリズムを使用している。従って、実行時間は一定ではなく、大きくバラつき得る。また、ソフトウェア実装は本質的に実行性能においてハードウェアの対応部分より決定的ではなく、実行時間の更なるバラつきを生じさせる。例えば、プロセッサ速度がソフトウェアの実行時間に直接的に影響を及ぼす。故に、ソフトウェアに基づくビデオ符号器においては、一部のフレームの符号化は表示速度より速くなり得る一方で、残りのフレームの符号化は表示速度より遅くなり得る。短い待ち時間ウィンドウ全体にわたって平均符号化速度が表示速度に等しい限り、ビデオ符号器は要求通りに機能することになる。しかしながら、平均符号化速度が短い待ち時間ウィンドウにわたって表示速度より下回ると、ビデオ符号器は要求通りに機能しなくなり、フレームの欠落及び性能低下を生じさせ得る。
本発明は、符号化されたビデオの品質に大きく影響を及ぼすことなく実時間フレーム符号化を実行する方法及び装置を提供することを目的とする。
本出願の発明者により、性能に悪影響を及ぼすことなく、実行時間が制限され、故に、より決定的にされるように、ビデオ符号器の演算を制約可能なことが観測された。その結果、このような制約されたビデオ符号器は要求通りに機能し、平均して、表示速度より速くとはいかないまでも、少なくとも表示速度と同じ速さでビデオフレームを符号化する。故に、そして本発明原理に従って、ビデオ符号器はデータのマクロブロックを処理するために或る時間量を割り当て;且つ割当てられた時間量の関数として、利用可能な符号化モードの部分集合を選択し;選択された部分集合に含まれる符号化モードの少なくとも1つがマクロブロックを処理するために使用される。
本発明の一実施形態において、装置は、圧縮又は符号化されたビデオデータを提供するソフトウェアに基づくH.264ビデオ符号器を内蔵している。H.264符号器は、マクロブロックモード決定及び動き予測フレームワーク内でH.264符号器が利用可能な時間が制約又は制限されるように、計時アルゴリズムを内蔵している。そして、H.264符号器が利用可能な特定の時間量が、H.264符号器がマクロブロックを符号化するために使用し得る利用可能な符号化モードの部分集合を決定する。結果として、符号化されたビデオの品質に大きく影響を及ぼすことなく実時間フレーム符号化を実行する方法が提供される。
本発明概念を除いて、図面に示される要素は周知であり、詳細には説明されない。また、ビデオ放送、受信機及びビデオ符号化は、熟知されていることを前提とし、ここでは詳細には説明されない。例えば、本発明概念を除いて、NTSC(National Television System Committee)、PAL(Phase Alternation Lines)、SECAM(SEquential Couleur Avec Memoire)、及びATSC(Advanced Television System Committee)等のTV規格に関する現行及び提案されている勧告は熟知されていることが前提とされる。同様に、本発明概念を除いて、例えば8レベルの残留側波帯(8−VSB)、直交振幅変調(QAM)などの伝送概念、無線周波数(RF)フロントエンド等の受信器部品、又は、低雑音ブロック、チューナー、復調器、相関器、リーク積分器及び自乗回路などの受信器部分は熟知されていることが前提とされる。同様に、本発明概念を除いて、フォーマット及び符号化方法(例えば、MPEG−2システム規格(ISO/IEC13818−1)等)、及び、特に、ビットストリームを生成するためのH.264:国際電気通信連合、“ITU−T勧告H.264:オーディオビジュアルサービス全般のための高度ビデオ符号化方式”、ITU−T、2003年は周知であり、ここでは説明されない。これに関連し、本発明概念のうち公知のH.264符号化と異なる部分のみが以下にて説明され、また図示される。従って、ピクチャー、フレーム、マクロブロック、輝度(luma)、色差(chroma)、フレーム内(イントラ)予測、フレーム間予測などを有するH.264ビデオ符号化の概念は前提とされ、ここでは説明されない。また、本発明概念は、従来のプログラム技術(そういうものとして、ここでは説明されない)を用いて実現されてもよい。最後に、図面における似通った参照符号は同様の要素を表している。
図1は、本発明原理に従った例示的な実施形態に係る装置105を示している。装置105は、例えばPC、サーバ、携帯情報端末(PDA)、携帯電話などの何らかのプロセッサベースのプラットフォームを表している。これに関連し、装置105は1つ以上のプロセッサをそれに付随するメモリ(図示せず)とともに含んでいる。装置105はH.264符号器150を含んでいる。本発明概念ではないが、H.264符号器150は、(例えば入力信号104から得られる)ビデオ信号149を受け取り、上述のITU−T H.264に従ってH.264符号化ビデオ信号151を提供する。後者の信号は、装置105から別の装置又はネットワーク(有線、無線など)への出力信号を表す出力信号106に、その一部として含められてもよい。なお、図1はH.264符号器150が装置105の一部であることを示しているが、本発明はそのように限定されるものではなく、H.264符号器150は、装置105がH.264符号化ビデオ信号を提供するためにH.264符号器を使用可能なように、例えば装置105に物理的に隣接される、あるいはネットワーク(ケーブル、インターネット、セルラーなど)内の何処かに配置されるなど、装置105の外部にあってもよい。単にこの例のため、ビデオ信号149はCIF(352×288画素/フレーム、30フレーム/秒)ビデオフォーマットに準拠した実時間ビデオ信号であると仮定する。
図2は、H.264符号器150の例示的なブロック図を示している。例えば、H.264符号器150は、図2に破線のボックスの形態で示されたプロセッサ190及びメモリ195により表される、ソフトウェアに基づくビデオ符号器である。ここでは、メモリ195にはプロセッサ190による実行のためのコンピュータプログラム又はソフトウェアが格納されている。プロセッサ190は1つ以上の格納プログラム制御プロセッサを代表しており、ビデオ符号化機能専用である必要はない。例えば、プロセッサ190は装置105のその他の機能をも制御してもよい。メモリ195は、例えばランダムアクセスメモリ(RAM)や読み出し専用メモリ(ROM)等を代表しており、プロセッサH.264符号器150の内部及び/又は外部にあってもよく、必要に応じて揮発性及び/又は不揮発性である。技術的に知られているように、H.264符号化ビデオ信号151はビデオ符号化レイヤー160及びネットワーク・アブストラクション・レイヤー165により表される2つのレイヤーを有している。本発明概念ではないが、ビデオ符号化レイヤー160は、例えばビデオシーケンス、ピクチャー、スライス及びマクロブロックといった技術的に既知のビデオ符号化データを有する符号化信号161を提供する。ビデオ符号化レイヤー160は入力バッファ180、符号器170、及び出力バッファ185を有している。入力バッファ180はビデオ信号149からのビデオデータを符号器170による処理のために格納する。本発明概念ではないが、後述されるように、符号器170はビデオデータをH.264に従って圧縮し、圧縮されたビデオデータを出力バッファ185に供給する。出力バッファ185は圧縮されたビデオデータを符号化信号161としてネットワーク・アブストラクション・レイヤー165に提供する。ネットワーク・アブストラクション・レイヤー165は、H.264ビデオ符号化信号151を提供するための多様な通信チャンネル又は記憶チャンネル上での伝送に適するように、符号化信号161をフォーマットする。例えば、ネットワーク・アブストラクション・レイヤー165は、例えばRTP(リアルタイムプロトコル)/IP(インターネットプロトコル)、ファイル様式(例えば、記憶及びMMS用のISO MP4(MPEG−4規格(ISO 14496−14)))、有線及び無線会話サービス用のH.32X、ブロードキャストサービス用のMPEG−2システム等の輸送レイヤーに符号化信号161をマッピング可能とすることを容易にする。
先述のように、ソフトウェアに基づくビデオ符号器は、実行時間のバラつきのために要求通りに機能しないことがある。特に、ビデオ符号器はビデオフレームを表示速度に対して速いか等しいかの何れかで符号化しなければならない。ソフトウェアに基づくビデオ符号器にて1フレームを符号化する時間は、アルゴリズム設計及びプロセッサ速度によって大きく変化し得るので、ソフトウェアに基づくビデオ符号器は要求通りに機能せずに、フレームの欠落及び性能低下を生じさせることがある。しかしながら、本出願の発明者により、性能に悪影響を及ぼすことなく、実行時間が制限され、故に、より決定的にされるように、ビデオ符号器の演算を制約可能であることが観測された。その結果、このような制約されたビデオ符号器は要求通りに機能し、平均して、表示速度より速くとはいかないまでも、少なくとも表示速度と同じ速さでビデオフレームを符号化する。故に、そして本発明原理に従って、ビデオ符号器は、データのマクロブロックを処理するための時間量を割当て、割り当てられた時間量の関数として利用可能な符号化モードの部分集合を選択し、選択された部分集合に含まれる符号化モードの少なくとも1つがマクロブロックの処理に使用される。この点で、H.264符号器150のビデオ符号化層160は本発明概念を内包するものである。
図3は、H.264符号器との関連で本発明概念を実施する一例を概説するフローチャートを示している。この例において、H.264符号器150のビデオ符号化層160はフレーム間予測に際して、すなわち、H.264符号化のマクロブロックモード決定及び動き予測フレームワークにおいて、計時アルゴリズムを使用する。ビデオ符号化アルゴリズムのマクロブロックモード決定部は時間制御の標的として選択され得る。何故なら、この部分はH.264の如何なる他の要素と比較して、符号化時間のより多くの部分を消費するとともに、符号化時間において最大のバラつき量を示すからである。また、H.264マクロブロックモード決定アルゴリズムの反復的な絞り込み性は、時間制御法がマクロブロックモード決定ループから早期に抜け出しながらも、依然として、十分な圧縮性能を有する妥当なビデオビットストリームを供給することを可能にする。結果として、モード決定及び動き予測フレームワーク内での時間制約アルゴリズムの実現は、符号化されたビデオの品質に大きく影響を及ぼすことなく実時間フレーム符号化を実行する方法を提供する。図3を更に詳細に参照するに、段階205にて、ビデオ符号化レイヤー160がビデオ信号149の1フレームに関してフレーム間予測を開始する。段階210にて、このフレームのマクロブロックを符号化するときにビデオ符号化レイヤー160は制約されるべきかどうかの確認が行われる。ビデオ符号化レイヤー160が制約される必要がない場合、段階215にて、ビデオ符号化レイヤー160は技術的に知られているようにマクロブロックを符号化する。しかしながら、ビデオ符号化レイヤー160が制約されなければならない場合、段階220にて、マクロブロックの符号化を制約するために計時アルゴリズムが有効化される。計時アルゴリズム(以下にて更に説明される)は、マクロブロックモード決定及び動き予測フレームワーク内でビデオ符号化レイヤー160が費やす時間量を制約するように実行される。
図4及び5を一時的に参照するに、符号化を制約するか否かを決定するために段階210にて使用される幾つかの例が示されている。図4との関連において、符号化を制約するか否かを決定する一手法は、入力バッファ180に格納されたデータの量すなわちレベルを使用する。具体的には、入力バッファ180に格納されたデータ量が(斜線部518により表されるように)所定の閾値506を上回る場合、入力バッファ180は“バッファ満杯”信号507をプロセッサ190に与える。“バッファ満杯”信号507は、実際には、ビデオデータがビデオ符号器170によって十分に速く処理されるか否かを表している。図5との関連において、符号化を制約するか否かを決定する他の一手法は、出力バッファ185に格納されたデータの量すなわちレベルを使用する。具体的には、出力バッファ185に格納されたデータ量が(斜線部519により表されるように)所定の閾値511を下回る場合、出力バッファ185は“バッファ空き”信号512をプロセッサ190に与える。“バッファ空き”信号512は、実際には、符号化されたビデオデータがビデオ符号器170によって十分に速く供給されるは否かを表している。また、図4及び5に示される技術は組み合わされてもよく、例えば、ビデオ符号化は入力バッファ180が満杯で、且つ出力バッファ185が空いている場合にのみ制約されてもよい。しかしながら、本発明概念はそのように限定されるものではなく、制約された符号化を開始することが望ましい程度に不十分である性能レベルの可能性を検出するために、その他の機構が用いられることも可能である。
続いて図6を参照するに、図3の段階220が一層詳細に示されている。段階305にて、時間量TFがフレームの符号化に割り当てられる。このTFの初期値はフレーム内の全てのマクロブロックを処理するために利用可能な時間量を表している。TFの値は表示時間よりも短い。CIFビデオに関しては、TFは0.033秒よりも短い。この割当てにおいて、符号器のオーバーヘッドは、モード決定及び動き予測に関連しない処理時間をTFが含まないように、決定又は概算されるべきである。本発明概念ではないが、符号器オーバーヘッドは技術的に知られているようにタイマーとバッファを平均化することとを用いて、順応的に決定されることができる。なお、時間量TFはまた、入力バッファ180及び/又は出力バッファ185のレベルに応じて更に調整されてもよい。段階310にて、フレームに含まれる1つのマクロブロックが本発明原理に従って符号化される(これについては後述される)。段階320にて、全てのマクロブロックが処理されたかどうかの確認が行われる。一部のマクロブロックがまだ残っている場合、段階315へと進み、TFの値は更に、先行マクロブロックを処理するために掛かった時間量だけ小さくされる。言い換えれば、この時、TFはフレームに含まれる残りのマクロブロックを処理するために残されている時間量を表す。フレームの全てのマクロブロックが処理されると、この実行は終了する。
段階310にて、1つのフレームのマクロブロックが本発明原理に従って制約的に処理される。段階310にて使用される例示的なフローチャートが図7に示されている。段階405にて、時間量TMが1つのマクロブロックを処理するために割り当てられる。この時間量TMはTFから得られる。例えば、TMは単純に、処理されなければならないマクロブロック数でTFを割ることによって決定されてもよい。単純化のため、時間量TMはここでは“時間単位”との絡みで説明される。時間単位は経験的に決定されてもよい。これを例示する目的で、約3GHzのクロック周波数を有するPentium(登録商標)IVに基づくシステムでは、時間単位は20μsに等しく設定される。本発明原理に従って、1つのマクロブロックを処理するために利用可能な具体的な時間量TMは、H.264符号器がマクロブロックを符号化するために使用することができる利用可能な符号化モードの部分集合を決定する。本発明概念は、結果として、符号化されたビデオの品質に大きく影響を及ぼすことなく実時間フレーム符号化を実行する方法を提供する。
図7のフローチャートの説明を続ける前に、一時的に、図8の表605に注目する。本発明原理に従って、H.264のマクロブロック符号化モードは、各々の部分集合が符号化時間の長さに関連付けられた多数の部分集合に分類される。これは表605に例示されている。例えば、表605から見て取れるように、部分集合Aの符号化モードは2つの時間単位を必要とし、16×16マクロブロックモードを有している。従って、ビデオ符号器が部分集合Aの符号化モードを選択すると、マクロブロックに関して16×16マクロブロックモードが検査される。単に例示として、表605に示された割当ては図7のフローチャートにて使用される。
図7に戻り、段階410にて、ビデオ符号器170は技術的に知られているスキップモードを確認する。具体的には、ビデオ符号器はスキップモードを選択した場合、歪み及び出力ビットを決定する。そして、この実行は段階415へと進み、マクロブロックを処理するために少なくともT時間単位が残されているかどうかを決定するためにTMの値が確認される。T時間単位が残されていない場合、この実行は段階455へと進む(これについては後述される)。一方、少なくともT時間単位が残されている場合、段階420にて、ビデオ符号器は部分集合Aに関連付けられた符号化モードを検査する。すなわち、ビデオ符号器は選択された部分集合に関する符号化モードを用いてマクロブロックを多数の符号化ビットに符号化する。例えば、図8の表605に示された関連付けを用い、ビデオ符号器は16×16マクロブロックモードによりマクロブロックを符号化する。符号化の後、段階425にて、このマクロブロックを符号化するために掛かった時間量がTMから減算される。
段階430にて、このマクロブロックを処理するために少なくともT時間単位が残されているかどうかを決定するためにTMの確認が行われる。少なくともT時間単位が残されている場合、段階435にて、ビデオ符号器は部分集合Bに関連付けられた符号化モードを検査する。すなわち、ビデオ符号器は選択された部分集合に関する符号化モードを用いてマクロブロックを多数の符号化ビットに符号化する。例えば、図8の表605に示された関連付けを用い、ビデオ符号器は8×8、4×8、8×4及び4×4という4つのマクロブロックモードによりマクロブロックを符号化する。
一方、段階430にてT時間単位が残されていない場合、この実行は段階440へと進む。段階440にて、このマクロブロックを処理するために少なくともT時間単位が残されているかどうかを決定するためにTMの確認が行われる。T時間単位が残されていない場合、この実行は段階455へと進む(これについては後述される)。一方、少なくともT時間単位が残されている場合、段階445にて、ビデオ符号器は部分集合Cに関連付けられた符号化モードを検査する。例えば、図8の表605に示された関連付けを用い、ビデオ符号器は8×8マクロブロックモードによりマクロブロックを符号化する。部分集合B又はCの何れかが選択された場合、段階450にて、このマクロブロックを符号化するために掛かった時間量がTMから減算される。
段階455にて、このマクロブロックを処理するために少なくともT時間単位が残されているかどうかを決定するためにTMの確認が行われる。T時間単位が残されていない場合、この実行は段階480へと進む(これについては後述される)。一方、少なくともT時間単位が残されている場合、段階460にて、ビデオ符号器は部分集合Dに関連付けられた符号化モードを検査する。例えば、図8の表605に示された関連付けを用い、ビデオ符号器は16×8マクロブロックモードによりマクロブロックを符号化する。符号化の後、段階465にて、このマクロブロックを符号化するために掛かった時間量がTMから減算される。
段階470にて、このマクロブロックを処理するために少なくともT時間単位が残されているかどうかを決定するためにTMの確認が行われる。T時間単位が残されていない場合、この実行は段階480へと進む(これについては後述される)。一方、少なくともT時間単位が残されている場合、段階475にて、ビデオ符号器は部分集合Eに関連付けられた符号化モードを検査する。例えば、図8の表605に示された関連付けを用い、ビデオ符号器は8×16マクロブロックモードによりマクロブロックを符号化する。
段階480にて、このマクロブロックを符号化するために何らかの部分集合が選択されたかどうかを決定するために確認が行われる。不十分な処理時間しか利用可能でなかったために何れの部分集合も選択されなかった場合、このマクロブロックはスキップされ、この実行は図6の段階320へと進む。一方、少なくとも1つの部分集合が選択された場合、段階485にて、ビデオ符号器は選択された部分集合から1つの符号化モードを選択する。この選択された符号化モードは、伝送及び/又は記憶のためにマクロブロックを符号化するために実際に使用されるものである。具体的には、選択された部分集合の符号化モード毎に、ビデオ符号器は出力符号化ビット数をカウントし、多数ある既知の技術の何れか1つを用いて、再構成されるマクロブロック(出力符号化ビットから得られる)と元のマクロブロックとの間の歪みを計算する。例えば、ビデオ符号器は、再構成されるマクロブロックと元のマクロブロックとの間の絶対差の和(SAD)、再構成されるマクロブロックと元のマクロブロックとの間の自乗誤差の和(SSE)の歪み、又は自乗平均平方根(RMS)の測定値を用いることができる。以降では、レート歪み最適化(rate−distortion optimization;RDO)指標が、符号化モード毎に技術的に知られているように計算される。具体的には、RDOは出力符号化ビットと計算された歪みファクタとを符号化モード毎に結合させる。例えば、“係数A”及び“係数B”を経験的に決定され得る重み付け係数、“符号化ビット数”を或る符号化モードに関する出力符号化ビットの数、そして、“歪み”をその符号化モードに関して計算された歪みファクタとして、RDO=係数A×符号化ビット数+係数B×歪みとされる。各々のRDO値が決定されると、ビデオ符号器は、より小さいRDOを有する符号化モードを実際の符号化モードとして選択する。実際の符号化モードの選択後、この実行は段階320へと進む。
上述のように、そして本発明概念に従って、ビデオ符号器は、ビデオ符号器の演算を制約することによる、より決定的な実行時間のために符号化効率を代償とする。故に、ビデオ符号器は順応的に実時間符号化性能を維持する。具体的には、上述の時間制約アルゴリズムは、基本的に、マクロブロックを処理するために十分な時間が残されていない場合に選択を排除する。例えば、上述された実施形態との関連においては、ビデオ符号器が或るマクロブロックに対して16×16及び16×8モードを検査するのに十分な時間しか有していない場合、ビデオ符号器は、その他のモードを検査する代わりに、これら2つのモードの内の最良のものを選択する。故に、そして本発明原理に従って、符号化効率を全くとは言わないまでも殆ど低下させずに、最良のフレーム符号化時間を実現することが可能である。実際、この方法を用いることにより、全フレームの95%超が割り当てられた時間内で符号化されることになり、故に、入力に関係なく実時間性能を維持する符号器が実現される。例えば、制約されたビデオ符号器は、符号化されたビットストリームの大きさを2−3%増大させ得るが、実時間演算を保証すべく15−20%の時間を節約することができる。
なお、本発明概念はH.264フレーム間予測との関連の下で示されたが、本発明概念はそのように限定されるものではなく、H.264のその他の部分、及びその他の種類のビデオ符号化にも適用可能である。例えば、本発明概念はフレーム内予測にも適用可能である。また、図3の段階210により表されるように、制約された符号化モードを動的に選択することに関連して示されたが、この段階は排除されることができ、ビデオ符号器は単純に、本発明原理に従った制約モードで動作させられることができる。実際、制約モードはビデオ符号器における設定可能な選択肢とされてもよい。また、その他の変形例も可能である。例えば、動き予測の目的で使用される参照フレーム数は、利用可能な時間単位に基づいて調整されることができる。同様に、限られた時間単位数がマクロブロックに割り当てられている場合、時間的にすぐ前の参照ピクチャーのみが用いられてもよい。さらに、例えば2つのブロック間の絶対差の和(SAD)及び/又は不一致(variance)などの、画像及びマクロブロックの既知の複雑さ指標が、時間単位及び符号化モードを割り当てるための要因として用いられてもよい。
以上の説明は単に本発明原理を例示するものであり、認識されるように、ここでは明示的に説明されていないが、本発明原理を具体化し且つ本発明の意図及び範囲内にある数多くの代替構成が当業者により考え出されるであろう。例えば、機能要素は、別個の機能要素であるように例示されているが、1つ以上の集積回路(IC)に具体化されてもよい。同様に、何れか又は全ての要素は、別個の要素として示されているが、例えば、図3、6及び/又は7に示された段階群の1つ以上に対応する付随のソフトウェアを実行する、格納プログラムにより制御される1つのプロセッサ、例えばデジタル信号プロセッサ、に実装されていてもよい。さらに、本発明原理は、例えば衛星、ワイヤレス・フィデリティー(Wi−Fi)、セルラーといった、その他の種類の通信システムにも適用可能である。実際に、本発明概念は静止型あるいは携帯型の受信器に適用可能である。故に、例示された実施形態には数多くの変更が為され得ること、及び添付の請求項によって定められる本発明の思想及び範囲を逸脱することなく他の構成が考え出され得ることは理解されるべきである。
本発明原理に従った装置を例示する図である。 本発明原理を具体化するH.264符号器を例示するブロック図である。 本発明原理に従ったビデオ符号器にて使用される方法を例示するフローチャートである。 本発明原理に従って符号化を制約すべきか否かを検出する技術を例示する図である。 本発明原理に従って符号化を制約すべきか否かを検出する技術を例示する図である。 本発明原理に従ったビデオ符号器にて使用される他の方法を例示するフローチャートである。 本発明原理に従ったビデオ符号器にて使用される他の方法を例示するフローチャートである。 本発明原理に従った符号化モードの部分集合を示す表である。

Claims (27)

  1. ビデオ符号器にて使用される方法であって:
    (a)データのマクロブロックを処理するために時間量を割り当てる割当段階;及び
    (b)割当て時間量の関数として、利用可能な符号化モードの部分集合を選択する選択段階;
    を有し、
    選択された部分集合に含まれる符号化モードの少なくとも1つが前記マクロブロックを処理するために使用される、方法。
  2. 前記マクロブロックは動き補償されたビデオフレームの一部である、請求項1に記載の方法。
  3. 前記マクロブロックはビデオフレームのイントラ・マクロブロックである、請求項1に記載の方法。
  4. 前記マクロブロックに関して何れの符号化モードが最大の符号化効率を達成するかを決定するために、前記選択された部分集合に含まれる符号化モードを検査する検査段階;及び
    前記マクロブロックを符号化するために、決定された符号化モードを使用する使用段階;
    を更に有する請求項1に記載の方法。
  5. ビデオフレームに含まれる2つ以上のマクロブロックに対して段階(a)及び(b)を繰り返す反復段階;
    を更に有する請求項1に記載の方法。
  6. ビデオ符号器における或る状態の発生を調べる検査段階;及び
    前記状態が発生した場合に、段階(a)及び(b)を実行する実行段階;
    を更に有し、
    前記状態は不十分なビデオ符号器性能を意味する、請求項1に記載の方法。
  7. 前記検査段階は、段階(a)及び(b)を実行する前提条件として、入力バッファ内のデータ量が所定の閾値を上回るかどうかを調べる、請求項6に記載の方法。
  8. 前記検査段階は、段階(a)及び(b)を実行する前提条件として、出力バッファ内のデータ量が所定の閾値を下回るかどうかを調べる、請求項6に記載の方法。
  9. 前記検査段階は、段階(a)及び(b)を実行する前提条件として、入力バッファ内のデータ量が所定の閾値を上回るかどうか、及び出力バッファ内のデータ量が所定の閾値を下回るかどうかを調べる、請求項6に記載の方法。
  10. 前記時間量は、2つのブロック間の絶対差の和、及び不一致という、画像及びマクロブロックの複雑さの要素の少なくとも一方により決定される、請求項1に記載の方法。
  11. 動き予測のために使用される参照フレームの数を、データの前記マクロブロックを処理するために利用可能な前記割当て時間量の関数として調整する調整段階;
    を更に有する請求項1に記載の方法。
  12. ビデオ符号化に使用される装置であって:
    符号化された出力データを提供するためにビデオデータの符号化に際して使用されるプロセッサ;
    を有し、
    前記プロセッサはビデオデータの少なくとも一部を、利用可能な符号化モードの少なくとも1つの部分集合を用いることに符号化を制約することによって符号化し、前記部分集合は、ビデオデータのマクロブロックを処理するために利用可能な時間量によって決定される、装置。
  13. 前記プロセッサは、データの少なくとも1つのマクロブロックを符号化するために、決定された部分集合を使用する、請求項12に記載の装置。
  14. 前記マクロブロックは動き補償されたビデオフレームの一部である、請求項13に記載の装置。
  15. 前記マクロブロックはビデオフレームのイントラ・マクロブロックである、請求項13に記載の装置。
  16. 前記プロセッサは、前記マクロブロックに関して何れの符号化モードが最大の符号化効率を達成するかを決定するために、選択された部分集合に含まれる符号化モードを検査し、且つ前記マクロブロックを符号化するために、決定された符号化モードを使用する、請求項13に記載の装置。
  17. 前記プロセッサは、ビデオフレームに含まれる2つ以上のマクロブロックに対して、利用可能な符号化モードの部分集合を選択する、請求項13に記載の装置。
  18. 前記プロセッサは、動き予測のために使用される参照フレームの数を、ビデオデータの前記マクロブロックを処理するために利用可能な前記時間量の関数として動的に調整する、請求項13に記載の装置。
  19. 前記プロセッサは先ず、ビデオ符号器における或る状態の発生を調べ、そして、前記状態が発生した場合に、前記プロセッサは、利用可能な符号化モードの前記少なくとも1つの部分集合を用いることに符号化を制約し、前記状態は不十分なビデオ符号器性能を意味する、請求項12に記載の装置。
  20. 前記プロセッサは、符号化を制約する前提条件として、入力バッファ内のデータ量が所定の閾値を上回るかどうかを調べる、請求項19に記載の装置。
  21. 前記プロセッサは、符号化を制約する前提条件として、出力バッファ内のデータ量が所定の閾値を下回るかどうかを調べる、請求項19に記載の装置。
  22. 前記プロセッサは、符号化を制約する前提条件として、入力バッファ内のデータ量が所定の閾値を上回るかどうか、及び出力バッファ内のデータ量が所定の閾値を下回るかどうかを調べる、請求項19に記載の装置。
  23. 前記時間量は、2つのブロック間の絶対差の和、及び不一致という、画像及びマクロブロックの複雑さの要素の少なくとも一方により決定される、請求項12に記載の装置。
  24. データを提供する入力バッファ;
    データを符号化し且つ符号化されたデータを提供するビデオ符号器;及び
    符号化されたデータを格納する出力バッファ;
    を有し、
    前記ビデオ符号器は、前記入力バッファのレベル及び前記出力バッファのレベルの内の少なくとも一方の関数として、利用可能な符号化モードの少なくとも1つの部分集合を用いることに符号化を制約することによって、実時間符号化性能を順応的に維持する、
    ビデオ符号器システム。
  25. 前記ビデオ符号器は、前記入力バッファ内のデータ量が所定の閾値を上回る場合に、実時間符号化性能を順応的に維持する、請求項24に記載のビデオ符号器システム。
  26. 前記ビデオ符号器は、前記出力バッファ内のデータ量が所定の閾値を下回る場合に、実時間符号化性能を順応的に維持する、請求項24に記載のビデオ符号器システム。
  27. 前記ビデオ符号器は、前記入力バッファ内のデータ量が所定の閾値を上回り且つ前記出力バッファ内のデータ量が所定の閾値を下回る場合に、実時間符号化性能を順応的に維持する、請求項24に記載のビデオ符号器システム。
JP2007553166A 2005-01-28 2006-01-24 実時間フレーム符号化方法及び装置 Expired - Fee Related JP5058823B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US64782405P 2005-01-28 2005-01-28
US60/647,824 2005-01-28
PCT/US2006/002415 WO2006083614A2 (en) 2005-01-28 2006-01-24 Method and apparatus for real-time frame encoding

Publications (2)

Publication Number Publication Date
JP2008529416A true JP2008529416A (ja) 2008-07-31
JP5058823B2 JP5058823B2 (ja) 2012-10-24

Family

ID=36777756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007553166A Expired - Fee Related JP5058823B2 (ja) 2005-01-28 2006-01-24 実時間フレーム符号化方法及び装置

Country Status (9)

Country Link
US (1) US20090003454A1 (ja)
EP (1) EP1849304B9 (ja)
JP (1) JP5058823B2 (ja)
KR (1) KR101244030B1 (ja)
CN (1) CN101151906A (ja)
CA (1) CA2595583A1 (ja)
DE (1) DE602006018868D1 (ja)
TW (1) TWI347132B (ja)
WO (1) WO2006083614A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9325998B2 (en) * 2003-09-30 2016-04-26 Sharp Laboratories Of America, Inc. Wireless video transmission system
US8356327B2 (en) * 2004-10-30 2013-01-15 Sharp Laboratories Of America, Inc. Wireless video transmission system
US9544602B2 (en) * 2005-12-30 2017-01-10 Sharp Laboratories Of America, Inc. Wireless video transmission system
US7924925B2 (en) * 2006-02-24 2011-04-12 Freescale Semiconductor, Inc. Flexible macroblock ordering with reduced data traffic and power consumption
GB0619570D0 (en) * 2006-10-04 2006-11-15 Univ Bristol Complexity scalable video transcoder and encoder
US20090323799A1 (en) * 2008-06-25 2009-12-31 Stmicroelectronics, Inc. System and method for rendering a high-performance virtual desktop using compression technology
US8326075B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video encoding using adaptive loop filter
US8885706B2 (en) 2011-09-16 2014-11-11 Google Inc. Apparatus and methodology for a video codec system with noise reduction capability
US20150201193A1 (en) * 2012-01-10 2015-07-16 Google Inc. Encoding and decoding techniques for remote screen sharing of media content using video source and display parameters
US9131073B1 (en) 2012-03-02 2015-09-08 Google Inc. Motion estimation aided noise reduction
US9344729B1 (en) 2012-07-11 2016-05-17 Google Inc. Selective prediction signal filtering
CN104813590B (zh) * 2012-11-06 2018-01-05 加利福尼亚大学董事会 用于基于多频qam方案的芯片到芯片连接的可扩展串行/解串行i/o
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
KR102036565B1 (ko) * 2016-10-27 2019-10-25 주식회사 에스원 계산-율-왜곡을 최적화하는 방법 및 장치, 그리고 이를 이용해 영상 프레임을 부호화하는 방법 및 장치
GB2559783A (en) 2017-02-17 2018-08-22 British Broadcasting Corp Image or video encoding and decoding
CN108810531B (zh) * 2017-05-03 2019-11-19 腾讯科技(深圳)有限公司 视频编码处理方法、装置及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004004356A2 (en) * 2002-06-28 2004-01-08 Qualcomm Incorporated Computationally constrained video encoding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US6690833B1 (en) * 1997-07-14 2004-02-10 Sarnoff Corporation Apparatus and method for macroblock based rate control in a coding system
US6876703B2 (en) 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
KR100525785B1 (ko) * 2001-06-15 2005-11-03 엘지전자 주식회사 이미지 화소 필터링 방법
WO2003009102A2 (en) * 2001-07-19 2003-01-30 Wind River Systems, Inc. Browser having dynamically self-adjusting rendering functionality
US20050226172A1 (en) * 2001-12-15 2005-10-13 Richardson John W Video conference call set up
US20030123540A1 (en) * 2001-12-27 2003-07-03 Koninklijke Philips Electronics N.V. Dynamic control in complexity-constrained data compression
US7817717B2 (en) * 2002-06-18 2010-10-19 Qualcomm Incorporated Motion estimation techniques for video encoding
WO2004030369A1 (en) * 2002-09-27 2004-04-08 Videosoft, Inc. Real-time video coding/decoding
US7313584B2 (en) * 2003-07-31 2007-12-25 International Business Machines Corporation Increased precision in the computation of a reciprocal square root
US20050276493A1 (en) * 2004-06-01 2005-12-15 Jun Xin Selecting macroblock coding modes for video encoding
CN100534193C (zh) * 2004-08-04 2009-08-26 松下电器产业株式会社 图像解码装置
US7558428B2 (en) * 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
US20060062311A1 (en) * 2004-09-20 2006-03-23 Sharp Laboratories Of America, Inc. Graceful degradation of loop filter for real-time video decoder
US8170102B2 (en) * 2005-12-19 2012-05-01 Seiko Epson Corporation Macroblock homogeneity analysis and inter mode prediction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004004356A2 (en) * 2002-06-28 2004-01-08 Qualcomm Incorporated Computationally constrained video encoding

Also Published As

Publication number Publication date
TW200706002A (en) 2007-02-01
WO2006083614A8 (en) 2007-02-15
DE602006018868D1 (de) 2011-01-27
WO2006083614A3 (en) 2007-03-22
TWI347132B (en) 2011-08-11
EP1849304B1 (en) 2010-12-15
EP1849304A2 (en) 2007-10-31
JP5058823B2 (ja) 2012-10-24
WO2006083614A2 (en) 2006-08-10
WO2006083614A9 (en) 2006-12-28
KR20070104636A (ko) 2007-10-26
CA2595583A1 (en) 2006-08-10
EP1849304B9 (en) 2011-03-30
CN101151906A (zh) 2008-03-26
KR101244030B1 (ko) 2013-03-14
US20090003454A1 (en) 2009-01-01

Similar Documents

Publication Publication Date Title
JP5058823B2 (ja) 実時間フレーム符号化方法及び装置
RU2377737C2 (ru) Способ и устройство для преобразования с повышением частоты кадров с помощью кодера (ea-fruc) для сжатия видеоизображения
US8340172B2 (en) Rate control techniques for video encoding using parametric equations
US10244255B2 (en) Rate-constrained fallback mode for display stream compression
US20070030894A1 (en) Method, device, and module for improved encoding mode control in video encoding
US10284849B2 (en) Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
JP6449329B2 (ja) ディスプレイストリーム圧縮(dsc)において量子化パラメータ(qp)を選択するためのシステムおよび方法
JP6464192B2 (ja) ディスプレイストリーム圧縮(dsc)のための平坦度検出のためのシステムおよび方法
JP2010525658A (ja) イントラ予測のための適応参照画像データ生成
AU2006223416A1 (en) Content adaptive multimedia processing
JP5054678B2 (ja) コーデック補助情報を用いた動画像画質評価システム及び方法
JP2017516392A (ja) ディスプレイストリーム圧縮(dsc)のためにブロック予測モードでコーディングするためのシステムおよび方法
JP2019514290A (ja) ディスプレイストリーム圧縮用の知覚的量子化パラメータ(qp)重み付けのための装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120621

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120717

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120801

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5058823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees