JP5774995B2 - Gopマージおよびビット割付けを用いたマルチスレッド・ビデオ符号化 - Google Patents

Gopマージおよびビット割付けを用いたマルチスレッド・ビデオ符号化 Download PDF

Info

Publication number
JP5774995B2
JP5774995B2 JP2011536319A JP2011536319A JP5774995B2 JP 5774995 B2 JP5774995 B2 JP 5774995B2 JP 2011536319 A JP2011536319 A JP 2011536319A JP 2011536319 A JP2011536319 A JP 2011536319A JP 5774995 B2 JP5774995 B2 JP 5774995B2
Authority
JP
Japan
Prior art keywords
gop
bit
frame
allocation
bits
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.)
Active
Application number
JP2011536319A
Other languages
English (en)
Other versions
JP2012509013A (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 JP2012509013A publication Critical patent/JP2012509013A/ja
Application granted granted Critical
Publication of JP5774995B2 publication Critical patent/JP5774995B2/ja
Active 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/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
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/142Detection of scene cut or scene change
    • 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/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/177Methods 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 group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

(関連出願の相互参照)
本願は、2008年11月13日出願の米国仮出願第61/199180号の利益を主張するものである。
本発明は、ビデオ符号化に関し、より詳細には、GOPマージおよびビット割付けを用いて、複数のスレッドを有するグループ・オブ・ピクチャ(GOP)並列単一パス・ビデオ・エンコーダにおける仮想参照デコーダ(HRD:Hypothetical Reference Decoder)コンフォーマンスをサポートすることに関する。
ネットワークを介して符号化ビットストリームを遠隔のクライアント・デコーダに伝送し、それをデコーダがうまく復号して滑らかにビデオを再生する必要がある実際のビデオ・ストリーミング・システムでは、HRDコンフォーマンスは、符号化ビデオ・ビットストリームをうまく配信するための必要条件である。デコーダが有する復号バッファは、大きさが限られているが、ネットワークから配信されるビデオ・ビットストリームを絶えず受信する。一方で、復号モジュールは、バッファリングした各符号化単位(例えばフレーム)のビットストリームをバッファから取り出し、復号し、再構築したビデオ信号を再生する。実際のビデオ・ストリーミング・システムでは、デコーダのバッファは、現在のネットワークでは避けることができないチャネル伝送速度のジッタリングを吸収し、復号したビデオを途切れずに滑らかに再生するために必要である。
従って、HRDコンフォーマンスは、符号化ビデオ・ビットストリームに対するデコーダ・バッファ制約を満足させることと、基本的には同じ問題である。
エンコーダにおいて1組のHRDパラメータのセットを想定し、各フレーム(あるいはH.264では一般にスライス)を符号化するときにこの想定したHRDパラメータに適合するようにすることにより、その結果得られる符号化ビットストリームは、やはり同じHRDパラメータのセットに適合しているデコーダであれば何れのデコーダでもうまく復号することができる。これにより、ビデオ・コーデック関連産業の異なる製造業者のエンコーダおよびデコーダをより容易に協働させることができるようになる。現在では、HRDコンフォーマンスの重要性は、広く認識されるようになっており、最新のH.264/AVCビデオ符号化標準のAnnex Cで標準化されている。
一般に、当該のHRDまたはデコーダ・バッファのパラメータとしては、周知のリーキー・バケット・モデルを規定する、バッファ・サイズ、初期バッファ・レベル、およびチャネル・レートなどがある。HRDコンフォーマンスは、符号化ビットストリーム・データをバッファに入れるとき、および各符号化単位の復号のためにビットストリームを取り出すときに、バッファ・オーバフローまたはバッファ・アンダフローが起きないことを意味する。従って、HRDコンフォーマンスをサポートするために、ビデオ・エンコーダは、(i)各単位(例えばフレームまたはフィールド)を符号化した後で現在のバッファ・レベルを正確に把握しておくこと、(ii)それに基づいて、次の単位の符号化ビットの上限および/または下限を導出すること、および(iii)当該単位の符号化ビットがそれらの限界を超えないことを確実にすることが必要である。実際には、ビデオ・エンコーダのレート制御方式によってバッファ制約問題に対処する。
複数のスレッドを有するGOP並列(パラレル)単一パス・ビデオ・エンコーダでHRDコンフォーマンスをサポートすることにより、難問が生じる。実時間ビデオ符号化システムで一般に良く用いられるこのアーキテクチャでは、複数のGOPを複数の符号化スレッドによってそれぞれ同時に符号化することができ、各GOPは1回だけ符号化すればよい。GOP並列単一パス符号化は、簡単に符号化プロセスの速度を大幅に上げるが、HRDコンフォーマンスをサポートすることが、従来のGOP逐次(シーケンシャル)単一スレッド符号化の場合より、かなり困難な作業になるという副作用がある。GOP逐次ビデオ符号化では、GOPを符号化するときに、それ以前の全てのフレームが既に符号化されているので、その符号化ビットを使用して、現在のバッファ・レベルを正確に把握し、HRDコンフォーマンス符号化のための正しい限界を導出することができる。しかし、GOP並列符号化の場合には、あるスレッドが現在のGOPを符号化しようとしているときに、それ以前のGOPの一部が、依然として他のいくつかのスレッドによる符号化の最中である可能性がある。これを図1に示す。図1では、斜線領域が、GOP中の符号化された部分を表している。これらのGOPでは、現在のGOPを符号化するときに、正確な符号化ビットが不明であり、HRDコンフォーマンス符号化が不可能になっている。
一般に、マルチパス・システムでは、各GOPが、実際の符号化の前に割り付けられた全てのバジェット・ビットを正確に消費するようにしなければならない。そのようにして、部分的に符号化されたGOPについて、それらに割り付けられたビットがそれらの最終的な符号化ビットであると仮定し、それらを使用してバッファ状態を把握することができる。しかし、単一パス実時間ビデオ符号化の場合には、任意のGOPについて事前に割り付けられたビットを正確に達成することは、レート制御の極めて困難な作業である。なお、マルチパス符号化が可能であれば、正確なGOPビットの達成は、はるかに容易に、且つはるかに直接的になることに留意されたい。その場合には、GOPの事前に割り付けられたビットが符号化GOPで正確に達成されない可能性があるが、全てのGOPが1回だけ符号化されると仮定して、HRDコンフォーマンス検査を行うことができる。HRD違反(すなわちバッファ・オーバフローまたはバッファ・アンダフロー)が見られる場合には、エンコーダは、新たに割り付けられたビットを用いて問題のGOPを再符号化して、違反を防止することができる。この第2のパスの符号化後に、エンコーダは、HRD検査を再度行うことができ、また、HRD違反が生じなくなるまで、同様の動作を行うことができる。ただし、HRDコンフォーマンスをサポートするための唯一の方法がGOP割付けビットを正確に達成することである単一パス・ビデオ符号化では、このHRD調節は不可能である。
このデコーダ・バッファ制約またはHRDコンフォーマンス問題は、長い間、ビデオ・ストリーミング分野のビデオ・エンコーダの実用的なレート制御方式を開発する上での重要な問題と考えられてきた。しかし、現在までに行われている研究の大部分は、バッファ制約を満足することが一般に実際的な難題にならない、GOP逐次単一スレッド符号化の場合に集中している。
シーンの終端部を検出し、複数のフレームを仕切り、複数のグループ・オブ・ピクチャ(GOP)をマージする、ビデオを符号化する方法である。この方法では、複数の入力フレーム中のシーンの終端部を検出する。これらの入力フレームは、複数のGOPに仕切られる。シーンGOPの終端部におけるフレーム数が低フレームしきい値未満である場合には、これらのフレームを、以前のGOPとマージする。これらのGOPをバッファリングし、GOPの複数のスレッドを、バッファから並列に単一パスで符号化する。ビット・バジェットは、各GOPに対して割り付けてもよいし、各GOPごとにバイトに丸めてもよいし、各フレームに対して割り付けてもよいし、各フレーム内の各マクロブロックに対して割り付けてもよい。さらに、各符号化GOP中のビット数は、当該GOPに割り付けられたビット・バジェットと等しくすることができる。ビット・バジェットの2つのビット部分を、GOPの符号化前に、それぞれ該GOPの中間フレームのビット割付けおよび該GOPの最後のフレームのビット割付けのために予約して、ビット不足状況を防止することができ、また、これら2つの部分は、それぞれ等量のバイトに丸めることができる。GOPの中間フレームのビット割付けでは、ビット不足状況が検出された場合には、該中間フレームのために予約されたGOPビット・バジェットを使用して、ビット不足を防止することができる。ここで、フレームのビット割付けのビット不足状況は、フレーム・ビット・バジェットに対する予測残差符号化のための推定ビットの比率がしきい値未満であるときとして定義する。この方法は、フレームの予測残差符号化のためのビットが、該フレームの総ビット・バジェットから、ユニット・ヘッダ、ピクチャ・ヘッダ、マクロブロック・ヘッダおよび動きベクトル符号化ビットなど、残差符号化に使用されない推定オーバヘッド・ビットを引いたものとして推定されることも含むことができる。さらに、GOPの最後のフレームについて、全ての残りの予約GOPバジェット・ビットを、そのビット割付けに使用することができる。この方法は、さらに、GOPの最後のフレーム、またはしきい値未満のGOPサイズを有するGOPの第1のIフレームについて、ビット・バジェットのビットの一部分を、該フレームの符号化前に予約して、該フレームのビット・オーバシュートを防止するようにすることもできる。
複数のスレッドを並列に符号化する単一パス・ビデオ・エンコーダなどを提供する。このエンコーダは、複数の入力フレーム中でシーンの終端部を検出する検出モジュールと、該入力フレームを複数のグループ・オブ・ピクチャ(GOP)に仕切り、低フレームしきい値を設定し、該シーン終端部においてフレーム数が低フレームしきい値未満であるGOPをその前のGOPとマージするようになされたGOP割当てモジュールと、GOPを記憶するバッファとを備える。このエンコーダは、ビット・バジェットを各GOPに対して割り付ける割付けモジュールと、ビット・バジェットを各GOPごとにバイトに丸める丸めモジュールとをさらに備えることができる。ビット・バジェットは、各フレームに対して割り付けてもよいし、各フレーム内の各マクロブロックに対して割り付けてもよい。各符号化GOP中のビット数は、該GOPに割り付けられたビット・バジェットと等しくすることができる。
さらに、複数の入力フレームを複数のグループ・オブ・ピクチャ(GOP)に仕切るステップと、低フレームしきい値を設定するステップと、フレーム数が低フレームしきい値未満である最後のGOPをその前のGOPとマージするステップと、GOPをバッファリングするステップとを含む、符号化するビデオを準備する方法を提供する。
以下、例示を目的として添付の図面を参照しながら本発明について説明する。
図1は、本発明による実時間ビデオ・エンコーダにおける複数の符号化スレッドによる複数のGOPの並列符号化を示す図である。 本発明によるGOP並列マルチスレッド単一パス実時間ビデオ符号化のためのHRDコンフォーマンス対応レート制御解決策の全体的な枠組みを示すブロック図である。 本発明によるGOP並列マルチスレッド単一パス実時間ビデオ符号化のためのHRDコンフォーマンス対応レート制御解決策の全体的な枠組みを示すブロック図である。 本発明によるビット・オーバシュート補償MBレベル・レート制御を示すブロック図である。 GOP中の最後のフレームの符号化後のフィラー・ユニット付加を示すブロック図である。
本開示中の少なくとも1つの実施態様は、まさにこのGOPレベルの正確なビットを達成する問題に対処するものであり、この目的を達成するための包括的レート制御方法を提案するものである。提案する方式は、主として、シーン終端部短GOPマージ、ビット・バジェット丸め、GOPおよびフレーム・レベルのビット予約、ビット・オーバシュート補償MBレベル・レート制御、フィラー・ユニット付加、ならびに効率的なマルチスレッド符号化情報のバッファリングおよび通信を含む。複数のスレッドを有する実用的な単一パス実時間ビデオ・エンコーダによる広範な試験により、提案する方式が、失敗が常にほとんど見られないHRDコンフォーマンスを常に保証することが分かる。
当該のGOP並列マルチスレッド・ビデオ符号化の場合には、マルチパスGOP符号化が可能であれば、HRDコンフォーマンスをサポートすることにより、直接的且つ容易に実行できる解決策ももたらされる。すなわち、違反が発見されると必ず、符号化ビットストリーム全体が特定のHRDコンフォーマンス検査に合格するまで、関連するGOPをHRD調整によって再符号化する。従って、この場合には、正確なGOPビットを達成することは有用な技術ではあるが、正確なGOPビットを達成することが不可欠というわけではない。
しかし、本開示の少なくとも1つの実施態様では、発明者等は、実時間ビデオ符号化のための重要且つ効果的なアーキテクチャであるGOP並列および単一パス・ビデオ符号化を扱う。この場合には、正確なGOPビットの達成が、実際には極めて難問であるHRDコンフォーマンスをサポートするために不可欠である。これは、ビデオ信号が極めて非定常の信号であるからである。しかし、レート制御では、過去の符号化ビデオ・ユニットから推定したモデルに基づいてビット割付けまたはビット達成を行う。従って、過去に符号化されたビデオ・ユニットと現在の符号化ビデオ・ユニットの特徴の不整合または差違により、レート制御が不正確になり、ビット・オーバシュートおよびビット・アンダシュートが生じることが避けられない。効果的にHRDコンフォーマンスをサポートするためには、ビデオ信号の非定常性に対して十分にレート制御をロバストにすることにより、各GOP符号化で事前に割り付けられるビットを常に正確に達成する技術を開発しなければならない。
少なくとも1つの実施例は、各GOPに事前に割り付けられたビットを正確に達成し、それにより上述のように複数のスレッドを有するGOP並列単一パス実時間ビデオ符号化の場合に効果的にHRDコンフォーマンスをサポートする効果的な包括的レート制御方法を提供する。提案する方法は、主として、後により詳細に説明する以下の技術からなる。
(i)シーン終端部短GOPマージ。シーン終端部で短すぎるGOPを、その前のGOPとマージして、短すぎるGOPのレート制御が極めて不正確になる可能性を回避する。
(ii)ビット・バジェット丸め。GOPの事前に割り付けられたビット・バジェット、および当該GOPの最後の符号化フレームの事前に割り付けられたビット・バジェットの両方を、ビット・イグザクト(bit−exact)なビット達成のためにバイトに丸める。
(iii)ビット予約。GOPレベルおよびフレーム・レベルのビット予約により、フレーム・レベルのビット割付けおよびMBレベルのビット割付けにおいてビット不足の状況になることを防止する。
(iv)ビット・オーバシュート補償。MBレベル・レート制御において、ビット・オーバシュート効果を保証して、フレームを符号化する際のビット・オーバシュートを防止する。
(v)フィラー・ユニット付加。最終的に残りのビットを全て使い切るために、GOP中の最後の符号化フレームの後に適当な量のフィラー・ユニット・バイトを付加する。
(vi)マルチスレッド符号化情報のバッファリングおよび通信。符号化情報をバッファリングして、全ての符号化スレッドの間で共有する。バッファ・サイズ削減のための効果的な符号化GOPマージ、および2つのセマフォを備えるスレッド間待機機構などを含む。提案する方法の詳細を、図2に示す。まず、ステップ20で、入力フレームを複数のGOPに仕切り、次いで、これらのGOPをFIFO(先入れ先出し)待ち行列にバッファリングする。ステップ22で、第1の利用可能な符号化スレッドが、待ち行列の先頭から、最初の利用可能なGOPを符号化のために取り出す。なお、GOPを仕切る際には、シーン終端部短GOPマージが好ましいことに留意されたい。これは、短いGOPは総ビット・バジェットが限られているために、(iii)で述べたようにフレーム・レベルのビット割付けにおいてビット不足を防止するためにGOPレベルで予約されたビットもまた限られているからである。従って、大きなGOPの場合より、ビット・オーバシュートを防止することが困難である。従って、シーンの終端部のGOPが短すぎる(例えば5フレーム未満)場合には、当該GOPをその前のGOPとマージしてより大きなGOPを形成し、レート制御のための正確なGOPビット達成の負担を軽くする。
次に、ステップ24で、現在のGOPを符号化しているスレッドは、現在のGOPが当該スレッドによって符号化される最後のGOPの直後に続くGOPであるかどうかを確認する。直後に続くGOPである場合には、当該スレッドは、その最後に符号化されるGOPによって生じるバッファ状態を追跡し続けることができる。そうでない場合には、現在のGOPと最後に符号化されるGOPとの間に、その他のスレッドによってこれから符号化される、または既に符号化されている1つまたは複数のGOPが存在する。この場合には、現在のスレッドは、HRD_info_bufferにバッファリングされている全てのスレッドの符号化情報に基づいて現在のバッファ状態を更新する必要があり、これについては後で詳細に説明する。具体的には、中間のGOPに対して、割り付けられたビットまたは実際の符号化ビットをそれらの最終的な符号化ビットであると仮定して現在のバッファ・レベルを導出する。まだビットが割り付けられていないGOPがある場合には、現在のスレッドは、ステップ25でそれらのGOPのビット割付けが終了するのを待機する。GOPがスレッドに割り付けられてから当該GOPのビット割付けが終了するまでの時間は常に無視できるので、この待機によって符号化に深刻な遅延が生じることはない。スレッド間待機に関するもう1つの重要な問題は、待機デッドロックを回避することである。実際には、デッドロックを防止するためには、2つの別個の待機セマフォを有する必要があることが分かっている。図1を考慮して、スレッド2、3および4がそれぞれGOP_(i+1)、GOP_(i+3)およびGOP_(i+4)を符号化しようとしていると仮定すると、スレッド1は、まだGOP_iのビット割付けを完了していない。従って、スレッド2、3および4は、スレッド1のGOP_iのビット割付けを待機しなければならない。実際には、一般に良く用いられるスレッド間通信機構をセマフォと呼ぶ。従って、スレッド1は、GOP_iのビット割付けを終了すると、これら3つの待機スレッドに対して3つのセマフォを送る。予期された待機終了セマフォを受信した後で、スレッドは、その待機状態を終了する。しかし、本件の場合には、スレッド3または4が、スレッド2よりも早く待機終了セマフォを受信した場合には、それらのスレッドは、それぞれの処理を継続し、GOP_(i+1)の割付けビットに対する新たな待機状態に直ちに入る。従って、仮に待機セマフォが1つしか存在しないと、この新たな待機状態がそのまま、GOP_iのビット割付けの終了による待機終了セマフォをもう1つ取ることになる。この場合、スレッド2は、スレッド1からの予期された待機終了セマフォを受信することができないので、待機デッドロックになる。従って、2つの別個のセマフォが必要である。そうすれば、スレッド2に対する新たな待機状態が、スレッド1からの待機終了セマフォを取ることはないので、待機デッドロックは起きない。
図2に示すように、スレッドは、次いで、現在のGOPの符号化に進む。まず、ステップ26で、現在のGOPのビット・バジェットを、GOPレベル・レート制御によって計算する。本明細書では、正確なGOP割付けビットを達成するという目的のために、現在の全てのビデオ符号化標準(例えばH.264/AVC)と同様に、割り付けられたビット・バジェットをバイトに丸めなければならず、各符号化単位(例えばスライス)を符号化して、整数バイトのビットストリームにする。従って、GOPビット・バジェット丸めは、正確なビットを達成するために必要である。同様に、各フレームのビット・バジェットも、図2に示すようにバイトに丸める。
次いで、現在のスレッドは、現在のGOPの割り付けられたビットをHRD_info_bufferに記録する。上述のように現在のGOPのビット割付け結果を待機しているスレッドが他にもいくつか存在する場合には、現在のスレッドは、それに応じた数の待機終了セマフォを送信して、それらのスレッドに結果を通知し、それらの待機を終了させる(ステップ28)。
次いで、ステップ30に進み、GOPレベルのビット予約を行う。基本的には、GOPを符号化する前に、一定数のビットを最初に予約して、残りのフレームのビット割付けで起こり得るビット不足の状況が生じることを防止する。レート制御の不正確性のために、あるフレームを符号化するためのビットが十分でない場合には、当該フレームについてビット・オーバシュートが起こる可能性が非常に高く、これにより、GOPの最終的な正確なビットが達成できない可能性がある。従って、ビット予約は必要である。この実施態様では、GOPレベルのビット予約および予約ビットの消費は、以下のように行われる。なお、本明細書では、GOP内の中間フレームのビット不足状況を防止するためのビット予約と、最後のフレームを符号化するためのビット予約はそれぞれ別個に行われることに留意されたい。これは、ビット・オーバシュートを防止することが、最終的な正確なGOPビットの達成のために極めて重要であり、従って、間違いなくその他の中間フレームよりも重要性がはるかに高いからである。
GOPレベルのビット予約は、ステップ30で、以下の数式に基づいて行われる。
reserved_bits_to_prevent_FBA_short_of_bits=Round_to_bytes[0.5*min(min(current_GOP_length、5)*target_bit_rate/frame_rate、curr_GOP_target_bits)*0.1]
reserved_bits_for_the_last_frame=reserved_bits_to_prevent_FBA_short_of_bits
curr_GOP_target_bits=curr_GOP_target_bits−reserved_bits_for_the_last_frame−reserved_bits_to_prevent_FBA_short_of_bits
FBA(フレーム・レベル・ビット割付け)におけるGOPレベル予約ビットの消費は、ステップ32で管理され、以下の数式および論理に基づいている。
現在のフレームがGOP中の最後のフレームでない場合、および当該フレームのビット割付けを行っているときにshort_of_bitsが発生した場合には、現在のフレーム・ビット割付けで、現在残っているreserved_bits_to_prevent_FBA_short_of_bitsの半分を使用する。依然としてshort_of_bitsである場合には、short_of_bitsが起きなくなるまで、または残りの予約ビットがなくなるまで、引き続き残りの予約ビットの半分を消費する。
現在のフレームがGOP中の最後のフレームである場合には、全ての残りの予約ビット、すなわちreserved_bits_for_the_last_frameに、reserved_bits_to_prevent_FBA_short_of_bitsが残っていればこれも合わせて、そのフレーム目標ビット・バジェットに付加する。
実際には、FBA中のshort_of_bitsを適切に規定して、フレーム符号化で制御されない状態でのビット・オーバシュートが生じるのを防止するのに役立てなければならない。本発明のこの実施態様では、あるフレームのビット割付けについて、全ての残りのビットおよび全ての残りのフレームを考慮して、予測残差符号化の推定残りビットが残りの全てのビットの有意な部分に相当しない、例えば15%未満であるときに、short_of_bitsであると見なす。予測残差符号化の推定残りビットは、残りの全てのビットから、NALまたはVCLユニット・ヘッダ、ピクチャ・ヘッダ、MB(マクロブロック)ヘッダなどの推定した全てのヘッダ・ビット、および動きベクトルなどを除いたものである。short_of_bitsの場合に備えて、残差符号化のための事前に割り付けられるビットは、実際には許容できる符号化品質を維持するのに十分ではないが、最小限のビット数を残差符号化に使用するので、符号化フレームのビット・オーバシュートは防止される。
GOPレベルのビット予約の他に、実際に、本発明によるフレーム・レベルのビット予約技術をステップ50〜60に示す。この技術は以下の通りである。GOP中の最後のフレームについては、curr_frm_target_bits=curr_frm_target_bits*0.8である。それ以外、短いGOP、すなわちGOP_length<5であるGOP中の第1のIフレームについては、curr_frm_target_bits=curr_frm_target_bits*0.9である。
フレームに割り付けるビットは十分であるが、フレーム符号化中のレート制御の不正確性により、依然として、最終的な符号化フレームのビットが当初の目標を超えることがある。そのために、発明者等は、効果的にフレーム・ビットのオーバシュートを防止するための別の技術、すなわち図3に詳細に示すビット・オーバシュート補償MBレベル・レート制御を提案する。この図では、ステップ50で、関連する変数を初期化し、チェック・ポイント(ステップ52)で、MBレベル・レート制御中にどの程度の頻度でビット・オーバシュート補償が行われるかを規定する。ステップ54、56を参照すると、一実施例では、フレーム中で追加のいくつかのビット(curr_frm_target_bits*10%)が符号化されると必ず、新たなチェック・ポイントに到達したと見なされる。ビット・オーバシュート比率は、この新たに符号化されたcurr_frm_target_bitsの10%の符号化結果に基づいて推定され、残りの目標ビットに適用されて、推定ビット・オーバシュート効果を保証する。図3に示すように、フレームがGOP中の最後のフレームでない場合には、最後のフレームの符号化の場合ほどビット・オーバシュートの防止が切実でないので、用いるビット・オーバシュート比率を緩める。
図3を参照すると、最後に、GOP中の全てのフレームを符号化した後で、エンコーダのスレッドは、全ての事前に割り付けられたGOPビットがこの時点で使用されているかどうかを確認する。有意な量の割り付けられたビットが依然として残っている場合には、ステップ73、74で、全ての残りのビットを消費することになるGOP中の最後のフレームの符号化ビットストリームの後にフィラー・ユニットを付加して、GOPの符号化ビット全体がその事前に割り付けられたビットと正確に同じになるようにすることにより、HRDコンフォーマンスをうまくサポートする。フィラー・ユニットは、H.264/AVCに規定されるダミー・ユニットであり、例えば全てのビットが1または0であるダミー・コンテンツのみを含む。提案するフィラー・ユニット付加方式を、図4に示す。この図では、H.264に規定されたフィラー・ユニットについて、そのヘッダ・バイト数は6である。なお、本明細書では、curr_frm_target_bytesは、フレーム・レベル・ビット予約前の、元の現在のフレームの目標バイトを表すことに留意されたい。図4に示すように、ステップ70で、curr_frm_target_bytes自体がHRDの上限および/または下限と衝突する場合には、現在のGOPで正確なビットが達成されても、HRDコンフォーマンスは失敗する(ステップ76)。最後のフレームでビット・オーバシュートがある、すなわちcurr_frm_target_bytes<curr_frm_coded_bytesである、あるいはステップ72に示すように、残っている未使用の割り付けられたバイトが最低フィラー・ユニット・バイトすなわちフィラー・ユニット・ヘッダ・バイト未満である場合にも、HRDコンフォーマンスは失敗する。
GOPを符号化した後で、符号化GOPのビットをHRD_info_bufferに適切に記録する。なお、割り付けられたGOPビットを記録するときとは異なり、GOPの符号化は時間がかかるので、スレッドがGOP符号化ビットを待機することは、実時間ビデオ符号化の場合には非現実的である。
さらに、GOP符号化情報をバッファリングして複数の符号化スレッド間で共有する効率的な機構を提案し、導入する。符号化情報バッファを、HRD_info_bufferと表す。簡潔にするために、HRD_info_bufferの初期化は、図2には示していない。提案するHRD_info_bufferは、以下の2つの部分からなる。(i)シーケンスの第1のGOPから連結して一体にすることができる全ての符号化GOPのHRD情報をバッファリングするための単一のCodedSeqHrdInfoバッファ。(ii)CodedSeqHrdInfoバッファ中の最後のGOPと連結することができない全てのこれから符号化される、または既に符号化されているGOPについての符号化情報をバッファリングするための(2*total_number_of_threads)CodedGOPHrdInfoバッファ。図1に示すように、CodedGOPHrdInfoバッファは、既に符号化されたGOP、すなわちGOP_(i+2)またはこれから符号化されるGOP、すなわちGOP_i、GOP_(i+1)、GOP_(i+3)、GOP_(i+4)のそれぞれの、割り付けられたGOPビットおよび符号化GOPビットを記憶するためのものであり、CodedSeqHrdInfoバッファは、シーケンスの先頭から始まる全ての過去の符号化GOPと連続的に連結することができる最後の符号化GOPまでのバッファ状態情報、すなわち図1の「符号化シーケンス」の情報を記録するものである。
実際には、CodedGOPHrdInfoバッファを効率的に管理する効果的な技術は、隣接する符号化GOPのマージである。すなわち、CodedGOPHrdInfoバッファ中に互いに隣接する2つの符号化GOPがある場合に、この2つのGOPの符号化情報をマージする。このマージは、図2では「GOP符号化ビットを用いてHRD_info_bufferを更新する」のモジュールに含まれ、提案するCodedGOPHrdInfoバッファのバッファ・サイズを大幅に減少させる。例えば、本発明のこの実施態様では、支障なくバッファ・サイズを(2*total_number_of_threads)に設定することができる。そうでない場合には、バッファ・サイズは、(2*total_number_of_threads*max_GOP_length)となる。ここで、max_GOP_lengthは、実際には非常に大きくすることもできる(例えば150超)。
最後に、実際のGOP並列単一パス実時間ビデオ・エンコーダを用いた広範な試験を、提案したHRDコンフォーマンス・サポート方法について行ったことを強調しておくことが重要である。その結果から、提案した方法を用いると、HRD失敗が一貫してほとんど見られず、従って、HRDコンフォーマンスが効果的にサポートされていることが分かる。
具体的な特性および特徴を有する1つまたは複数の実施態様について述べた。しかし、記載した実施態様の特性および特徴は、その他の実施態様に合わせて改変することもできる。本明細書に記載した実施態様は、特定の状況について述べていることもあるが、これらの記述は、いかなる意味においても、本発明の特性および概念をそのような実施態様または状況に限定するものとして解釈すべきではない。
本明細書に記載の実施態様は、例えば、方法またはプロセス、装置、あるいはソフトウェア・プログラムとして実施することができる。単一の実施の形態の状況でしか述べていない場合でも(例えば方法としてしか述べていない場合でも)、記載した実施態様または特性は、その他の形態(例えば装置またはプログラム)で実施することもできる。装置は、例えば、適当なハードウェア、ソフトウェア、およびファームウェアで実施することができる。方法は、例えば、コンピュータなどの処理装置のような装置内で実施することができる。さらに、方法は、処理装置などの装置が命令を実行することによって実施することができ、これらの命令は、例えばCDなどのコンピュータ可読媒体またはその他のコンピュータ可読記憶装置、あるいは集積回路に記憶することができる。さらに、コンピュータ可読媒体は、実施により生成されたデータ値を記憶することもできる。
実施により、例えば記憶または伝送することができる情報を搬送するようにフォーマットされた信号を生成することもできることは、当業者には明らかであろう。この情報としては、例えば、方法を実行するための命令や、上述の実施態様の1つによって生成されたデータなどが挙げられる。
さらに、多くの実施態様は、エンコーダ、エンコーダのプリプロセッサ、デコーダ、およびデコーダのポストプロセッサの1つまたは複数で実施することができる。記載または企図した実施態様は、様々な異なる適用分野および製品で使用することができる。こうした適用分野または製品の例としては、セット・トップ・ボックス、携帯電話、携帯情報端末(PDA)、テレビジョン、個人記録装置(例えばPVR、記録ソフトウェアを実行しているコンピュータ、VHS記録装置など)、カムコーダ、インターネットなどの通信リンクを介したデータ・ストリーミング、およびビデオ・オン・デマンドなどが挙げられる。
さらに、本開示によりその他の実施態様が企図される。例えば、開示した実施態様の様々な特性を結合、削除、修正、または補足することにより、追加の実施態様を生みだすこともできる。
以下のリストは、様々な実施態様の簡単なリストである。このリストは、全てを網羅したものではなく、多くの可能な実施態様のうちのごく一部を簡単に記載したものに過ぎない。
1.提案した包括的レート制御方法を採用して正確なGOPビット達成によってHRDコンフォーマンスをサポートするGOP並列マルチスレッド単一パス・ビデオ・エンコーダ。
2.以下の提案する技術のうちの任意の1つまたは複数を含むことにより正確なGOPビットが達成される実施態様1。(i)短いGOPの発生を低減するシーン終端部短GOPマージ、(ii)GOPレベルおよびフレーム・レベルのビット・バジェットのバイトへの丸め、(iii)フレーム・レベルのビット割付けにおけるshort_of_bitsを防止するためのGOPレベルのビット予約、(iv)フレーム・レベルのビット予約、(v)MBレベル・レート制御におけるビット・オーバシュート補償、(vi)GOPの符号化の終わりのフィラー・ユニット付加、ならびに(vii)隣接するGOPのマージによりバッファ・サイズを減少させ、2つの別個のスレッド間待機セマフォを用いて待機デッドロックを防止する、マルチスレッド符号化情報のバッファリングおよび通信機構。
3.GOPレベルのビット予約において、フレーム・レベルのビット割付けにおいてshort_of_bits状況を防止するためのGOPの中間フレームに対するビット予約と、ビット・オーバシュートを防止するためのGOPの最後のフレームに対するビット予約とが別々に行われる、実施態様2。
4.フレーム・レベルのビット割付けにおけるshort_of_bitsが、フレームの予測残差符号化に十分なビットを有していないものとして定義される、実施態様3。
5.MBレベル・レート制御におけるビット・オーバシュート補償が、図3に規定するように、定期的なビット・オーバシュート検査、適応型ビット・オーバシュート比率推定、および残り目標ビット調節を含む、実施態様2。
6.本開示に記載する実施態様の何れかによって生成される信号。
7.本開示に記載の1つまたは複数の実施態様による、HRD情報などのビデオ符号化情報の生成、アセンブル、記憶、送信、受信、および/または処理。
8.記載の実施態様の1つに従って、またはそれと通信して動作することができる装置(例えばエンコーダ、デコーダ、プリプロセッサ、ポストプロセッサなど)。
9.本開示に記載する実施態様の1つまたは複数に従って、1つまたは複数のHRDコンフォーマンス・エンジンあるいはHRDコンフォーマンスを実行するための命令セットを記憶する装置(例えばコンピュータ可読媒体など)。
10.本開示に記載する実施態様の1つまたは複数に従って、HRDに関連する情報あるいはHRD出力または動作に関連する情報を含むようにフォーマットされた信号。
11.信号がディジタル情報を表す、実施態様10。
12.信号が電磁波である、実施態様10。
13.信号がベースバンド信号である、実施態様10。
14.情報が、残差データ、動きベクトル・データ、および参照指標データの1つまたは複数を含む、実施態様10。
これらの実施態様は、符号化後に、各GOPが事前に割り付けられたビット・バジェットを過不足なく正確に使用することを保証する包括的な方法であり、単一パス実時間ビデオ符号化システムにおいて効果的にHRDコンフォーマンスをサポートする方法を与えるので有利である。
前述の内容は、本発明の実施の可能性の一部を例示したものである。本発明の範囲および趣旨内で、その他の多くの実施例が可能である。従って、上記の記述は、制限的なものとではなく例示的なものとして見なすべきものであり、本発明の範囲は、添付の特許請求の範囲およびその全ての均等物によって与えられるものとする。
[付記1]
複数の入力フレーム中でシーンの終端を検出するステップと、
前記入力フレームを複数のグループ・オブ・ピクチャ(GOP)に仕切るステップと、
低フレームしきい値を設定するステップと、
前記シーン終端においてフレーム数が前記低フレームしきい値未満であるGOPをその前のGOPとマージするステップと、
前記GOPをバッファリングするステップと、
GOPの複数のスレッドを前記バッファから並列に単一パスで符号化するステップと、
を含む、ビデオを符号化する方法。
[付記2]
各GOPに対してビット・バジェットが割り付けられる、付記1に記載の方法。
[付記3]
前記ビット・バジェットが、各GOPごとにバイトに丸められる、付記2に記載の方法。
[付記4]
各フレームに対してビット・バジェットが割り付けられる、付記1に記載の方法。
[付記5]
各フレーム内の各マクロブロックに対してビット・バジェットが割り付けられる、付記1に記載の方法。
[付記6]
各符号化GOP中のビット数が、当該GOPに割り付けられたビット・バジェットと等しい、付記2に記載の方法。
[付記7]
前記ビット・バジェットの2つのビット部分が、前記GOPの符号化の前に、それぞれ前記GOPの中間フレームのビット割付けおよび前記GOPの最後のフレームのビット割付けのために予約されて、ビット不足状況を防止する、付記2に記載の方法。
[付記8]
前記2つの部分が、それぞれ等量のバイトに丸められる、付記7に記載の方法。
[付記9]
前記GOPの中間フレームのビット割付けで、ビット不足状況が検出された場合には、該中間フレームのために予約されたGOPビット・バジェットを使用して、ビット不足を防止する、付記2に記載の方法。
[付記10]
フレームのビット割付けのビット不足状況が、フレーム・ビット・バジェットに対する予測残差符号化のための推定ビットの比率がしきい値未満であるときとして定義される、付記9に記載の方法。
[付記11]
フレームの予測残差符号化のためのビットが、該フレームの総ビット・バジェットから、ユニット・ヘッダ、ピクチャ・ヘッダ、マクロブロック・ヘッダおよび動きベクトル符号化ビットなど、残差符号化に使用されない推定オーバヘッド・ビットを引いたものとして推定される、付記10に記載の方法。
[付記12]
前記GOPの最後のフレームについて、全ての残りの予約GOPバジェット・ビットが、そのビット割付けに使用される、付記2に記載の方法。
[付記13]
GOPの最後のフレームまたはしきい値未満のGOPサイズを有するGOPの第1のIフレームについて、ビット・バジェットのビットの一部分が、該フレームの符号化前に予約されて、該フレームのビット・オーバシュートを防止する、付記4に記載の方法。
[付記14]
複数の入力フレーム中でシーンの終端を検出する検出モジュールと、
前記入力フレームを複数のグループ・オブ・ピクチャ(GOP)に仕切り、低フレームしきい値を設定し、前記シーン終端においてフレーム数が前記低フレームしきい値未満であるGOPをその前のGOPとマージするようになされたGOP割当てモジュールと、
前記GOPを記憶するバッファと、
を備える、複数のスレッドを並列に符号化する単一パス・ビデオ・エンコーダ。
[付記15]
ビット・バジェットを各GOPに対して割り付ける割付けモジュールをさらに備える、付記14に記載のエンコーダ。
[付記16]
前記ビット・バジェットを各GOPごとにバイトに丸める丸めモジュールをさらに備える、付記15に記載のエンコーダ。
[付記17]
各フレームに対してビット・バジェットが割り付けられる、付記15に記載のエンコーダ。
[付記18]
各フレーム内の各マクロブロックに対してビット・バジェットが割り付けられる、付記15に記載のエンコーダ。
[付記19]
各符号化GOP中のビット数が、当該GOPに割り付けられたビット・バジェットと等しい、付記16に記載のエンコーダ。
[付記20]
複数の入力フレームを複数のグループ・オブ・ピクチャ(GOP)に仕切るステップと、
低フレームしきい値を設定するステップと、
フレーム数が前記低フレームしきい値未満である最後のGOPをその前のGOPとマージするステップと、
前記GOPをバッファリングするステップと、
を含む、符号化するビデオを準備する方法。
[付記21]
各GOPに対してビット・バジェットが割り付けられる、付記20に記載の方法。
[付記22]
前記ビット・バジェットが各GOPごとにバイトに丸められる、付記21に記載の方法。
[付記23]
各フレームに対してビット・バジェットが割り付けられる、付記20に記載の方法。
[付記24]
各フレーム内の各マクロブロックに対してビット・バジェットが割り付けられる、付記20に記載の方法。

Claims (17)

  1. コンピュータによって実行されるビデオを符号化する方法であって、
    複数の入力フレーム中でシーンの終端を検出するステップと、
    前記入力フレームを複数のグループ・オブ・ピクチャ(GOP)に仕切るステップと、
    低フレームしきい値を設定するステップと、
    前記シーンの終端において前記低フレームしきい値未満のフレーム数を有するGOPをその前のGOPとマージするステップと、
    前記GOPをバッファにバッファリングするステップと、
    前記GOPに割り当てられた複数のスレッドによって並列に単一パスで前記バッファから選出された前記GOPを符号化するステップと、
    を含み、
    各GOPに対してビット・バジェットが割り付けられ、前記GOPの符号化の前に、前記ビット・バジェットからの2つのビット部分が、前記GOPの中間フレームのビット割付けおよび最後のフレームのビット割付けのため予約され、
    前記GOPにおける中間フレームのビット割付けで、ビット不足状況が検出された場合には、該中間フレームのために予約された前記2つのビット部分のうちの1つをそのビット割付けに使用し、前記GOPの最後のフレームのビット割付けで、ビット不足状況が検出された場合には、前記GOPの最後のフレームのビット割付けのために予約された前記2つのビット部分のうちの1つと前記GOPの中間フレームのビット割付けのために予約された前記2つのビット部分のうちの1つの残りの全てとをそのビット割付けに使用する、前記ビデオを符号化する方法。
  2. 前記ビット・バジェットが、GOPごとにバイトに丸められる、請求項1に記載の方法。
  3. フレームごとにビット・バジェットが割り付けられる、請求項1に記載の方法。
  4. 各フレーム内の各マクロブロックに対してビット・バジェットが割り付けられる、請求項1に記載の方法。
  5. 各符号化GOP中のビット数が、当該GOPに割り付けられたビット・バジェットと等しい、請求項1に記載の方法。
  6. 前記2つのビット部分が、それぞれ等量のバイトに丸められる、請求項1に記載の方法。
  7. フレームのビット割付けの前記ビット不足状況が、フレーム・ビット・バジェットに対する予測残差符号化のためのビットの比率がしきい値未満であるときに定義され、前記予測残差符号化のためのビットが、該フレームの総ビット・バジェットから、ユニット・ヘッダ、ピクチャ・ヘッダ、マクロブロック・ヘッダおよび動きベクトル符号化ビットを含む、残差符号化に使用されないオーバヘッド・ビットを引くようにして推定される、請求項1に記載の方法。
  8. GOPの最後のフレームまたは前記低フレームしきい値未満のGOPサイズを有するGOPの第1のIフレームについて、ビット・バジェットのビット部分が、該フレームの符号化前に予約される、請求項4に記載の方法。
  9. グループ・オブ・ピクチャ(GOP)に割り当てられた複数のスレッドによって並列に単一パスでバッファから選出された前記GOPを符号化する単一パス・ビデオ・エンコーダであって、
    複数の入力フレーム中でシーンの終端を検出する検出モジュールと、
    前記入力フレームを前記GOPに仕切り、低フレームしきい値を設定し、前記シーンの終端において前記低フレームしきい値未満のフレーム数を有するGOPをその前のGOPとマージするよう適合されたGOP割当てモジュールと、
    前記GOPを記憶するバッファと、
    ビット・バジェットを各GOPに対して割り付ける割付けモジュールと、
    を備え、
    前記GOPの符号化の前に、前記ビット・バジェットからの2つのビット部分が、前記GOPの中間フレームのビット割付けおよび前記GOPの最後のフレームのビット割付けのため予約され、前記GOPにおける中間フレームのビット割付けで、ビット不足状況が検出された場合には、該中間フレームのために予約された前記2つのビット部分のうちの1つをそのビット割付けに使用し、前記GOPの最後のフレームのビット割付けで、ビット不足状況が検出された場合には、前記GOPの最後のフレームのビット割付けのために予約された前記2つのビット部分のうちの1つと前記GOPの中間フレームのビット割付けのために予約された前記2つのビット部分のうちの1つの残りの全てとをそのビット割付けに使用する、前記単一パス・ビデオ・エンコーダ。
  10. 前記ビット・バジェットをGOPごとにバイトに丸める丸めモジュールをさらに備える、請求項9に記載のエンコーダ。
  11. フレームごとにビット・バジェットが割り付けられる、請求項9に記載のエンコーダ。
  12. 各フレーム内の各マクロブロックに対してビット・バジェットが割り付けられる、請求項9に記載のエンコーダ。
  13. 各符号化GOP中のビット数が、当該GOPに割り付けられたビット・バジェットと等しい、請求項10に記載のエンコーダ。
  14. コンピュータによって実行される符号化するビデオを準備する方法であって、
    複数の入力フレームを複数のグループ・オブ・ピクチャ(GOP)に仕切るステップと、
    低フレームしきい値を設定するステップと、
    フレーム数が前記低フレームしきい値未満である最後のGOPをその前のGOPとマージするステップと、
    前記GOPをバッファリングするステップと、
    を含み、
    各GOPに対してビット・バジェットが割り付けられ、前記GOPの符号化の前に、前記ビット・バジェットからの2つのビット部分が、前記GOPの中間フレームのビット割付けおよび前記GOPの最後のフレームのビット割付けのため予約され、
    前記GOPにおける中間フレームのビット割付けで、ビット不足状況が検出された場合には、該中間フレームのために予約された前記2つのビット部分のうちの1つをそのビット割付けに使用し、前記GOPの最後のフレームのビット割付けで、ビット不足状況が検出された場合には、前記GOPの最後のフレームのビット割付けのために予約された前記2つのビット部分のうちの1つと前記GOPの中間フレームのビット割付けのために予約された前記2つのビット部分のうちの1つの残りの全てとをそのビット割付けに使用する、前記符号化するビデオを準備する方法。
  15. 前記ビット・バジェットがGOPごとにバイトに丸められる、請求項14に記載の方法。
  16. フレームごとにビット・バジェットが割り付けられる、請求項14に記載の方法。
  17. 各フレーム内の各マクロブロックに対してビット・バジェットが割り付けられる、請求項14に記載の方法。
JP2011536319A 2008-11-13 2009-11-12 Gopマージおよびビット割付けを用いたマルチスレッド・ビデオ符号化 Active JP5774995B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US19918008P 2008-11-13 2008-11-13
US61/199,180 2008-11-13
PCT/US2009/006062 WO2010056315A1 (en) 2008-11-13 2009-11-12 Multiple thread video encoding using gop merging and bit allocation

Publications (2)

Publication Number Publication Date
JP2012509013A JP2012509013A (ja) 2012-04-12
JP5774995B2 true JP5774995B2 (ja) 2015-09-09

Family

ID=42170209

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011536319A Active JP5774995B2 (ja) 2008-11-13 2009-11-12 Gopマージおよびビット割付けを用いたマルチスレッド・ビデオ符号化
JP2011536325A Active JP5763540B2 (ja) 2008-11-13 2009-11-12 Hrd情報共有およびビット割付け待機を用いたマルチスレッド・ビデオ符号化

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011536325A Active JP5763540B2 (ja) 2008-11-13 2009-11-12 Hrd情報共有およびビット割付け待機を用いたマルチスレッド・ビデオ符号化

Country Status (5)

Country Link
US (2) US9143788B2 (ja)
EP (2) EP2345243B1 (ja)
JP (2) JP5774995B2 (ja)
CN (2) CN102217308B (ja)
WO (3) WO2010056315A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8792550B2 (en) * 2011-08-04 2014-07-29 Qualcomm Incorporated Color/gray patch prevention for video coding
US20130041975A1 (en) * 2011-08-10 2013-02-14 Nathalie Pham Distributed media access
US20130077690A1 (en) * 2011-09-23 2013-03-28 Qualcomm Incorporated Firmware-Based Multi-Threaded Video Decoding
CN103124345A (zh) * 2011-11-18 2013-05-29 江南大学 并行编码方法
EP2608537A1 (en) * 2011-12-21 2013-06-26 Thomson Licensing Parallel and distributed processing of video data
US9432664B2 (en) * 2012-09-28 2016-08-30 Qualcomm Incorporated Signaling layer identifiers for operation points in video coding
JP6492661B2 (ja) * 2012-10-09 2019-04-03 ソニー株式会社 画像処理装置および方法
US9148672B2 (en) * 2013-05-08 2015-09-29 Mediatek Inc. Method and apparatus for residue transform
US20140362098A1 (en) * 2013-06-10 2014-12-11 Sharp Laboratories Of America, Inc. Display stream compression
WO2014205690A1 (zh) * 2013-06-26 2014-12-31 北京大学深圳研究生院 视频压缩编码方法及编码器
US10523957B2 (en) * 2014-10-08 2019-12-31 Vid Scale, Inc. Optimization using multi-threaded parallel processing framework
SG11201706160UA (en) 2015-02-27 2017-09-28 Sonic Ip Inc Systems and methods for frame duplication and frame extension in live video encoding and streaming
US10602153B2 (en) * 2015-09-11 2020-03-24 Facebook, Inc. Ultra-high video compression
CN105306949B (zh) * 2015-12-04 2020-05-26 中星技术股份有限公司 视频编码方法和装置
CN105721874B (zh) * 2016-02-05 2019-05-17 南京云岩信息科技有限公司 一种并行高效视频编码的帧内闪烁减弱法
CN109429070A (zh) * 2017-08-23 2019-03-05 杭州海康威视***技术有限公司 一种移动终端视频编码方法、装置及移动终端
CN109218722B (zh) * 2018-11-22 2020-10-02 北京金山云网络技术有限公司 一种视频编码方法、装置及设备
CN110677664B (zh) * 2019-09-24 2021-07-13 杭州当虹科技股份有限公司 一种面向4k/8k超高清视频编码的低抖动码率控制方法
CN112019856A (zh) * 2020-08-27 2020-12-01 上海七牛信息技术有限公司 一种用于智能手机的视频倒转方法及***

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842033A (en) * 1992-06-30 1998-11-24 Discovision Associates Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system
US5623424A (en) * 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
JP2795223B2 (ja) * 1995-07-18 1998-09-10 日本電気株式会社 画像信号の符号化方法
DE19630295A1 (de) 1996-07-26 1998-01-29 Thomson Brandt Gmbh Verfahren zur Codierung und Decodierung von digitalisierten Bildern eines Trickfilms sowie Vorrichtung zur Codierung und Decodierung von digitalisierten Bildern eines Trickfilms
US5982436A (en) * 1997-03-28 1999-11-09 Philips Electronics North America Corp. Method for seamless splicing in a video encoder
JP4462643B2 (ja) 1997-04-25 2010-05-12 ソニー株式会社 画像符号化方法及び画像符号化装置
JPH10304372A (ja) 1997-04-30 1998-11-13 Sony Corp 画像符号化方法および装置、画像伝送方法
JPH1127662A (ja) 1997-07-03 1999-01-29 Matsushita Electric Ind Co Ltd 画像符号化装置
JP3305999B2 (ja) * 1997-12-26 2002-07-24 日本ビクター株式会社 画像圧縮ストリーム編集装置及びその方法
EP0935395A2 (en) 1998-02-06 1999-08-11 Sony Corporation Video encoding methods and apparatus
US6278735B1 (en) * 1998-03-19 2001-08-21 International Business Machines Corporation Real-time single pass variable bit rate control strategy and encoder
DE69815159T2 (de) * 1998-03-20 2004-04-08 Stmicroelectronics Asia Pacific Pte Ltd. Kodierung von bewegten bildern mit globaler konstanter bitrate
US6963608B1 (en) * 1998-10-02 2005-11-08 General Instrument Corporation Method and apparatus for providing rate control in a video encoder
EP1092321A1 (en) 1999-04-30 2001-04-18 Koninklijke Philips Electronics N.V. Video encoding method with selection of b-frame encoding mode
US6771825B1 (en) 2000-03-06 2004-08-03 Sarnoff Corporation Coding video dissolves using predictive encoders
KR20010087552A (ko) 2000-03-07 2001-09-21 구자홍 엠펙(mpeg)압축 비디오 환경에서 매크로 블록의시공간상의 분포를 이용한 디졸브/페이드 검출 방법
JP2002010259A (ja) 2000-06-21 2002-01-11 Mitsubishi Electric Corp 画像符号化装置及び画像符号化方法及び画像符号化プログラムを記録した記録媒体
US7155067B2 (en) 2000-07-11 2006-12-26 Eg Technology, Inc. Adaptive edge detection and enhancement for image processing
US20020057739A1 (en) 2000-10-19 2002-05-16 Takumi Hasebe Method and apparatus for encoding video
US7023924B1 (en) 2000-12-28 2006-04-04 Emc Corporation Method of pausing an MPEG coded video stream
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
JP2003153268A (ja) 2001-11-19 2003-05-23 Matsushita Electric Ind Co Ltd 映像符号化方法及び装置並びに記録媒体
US7035333B2 (en) 2001-12-05 2006-04-25 Matsushita Electric Industrial Co., Ltd. Method of reverse play for predictively coded compressed video
US6788227B2 (en) * 2002-03-28 2004-09-07 International Business Machines Corporation Apparatus for integrated cascade encoding
US7483488B1 (en) * 2002-05-30 2009-01-27 Intervideo, Inc. Systems and methods for improving bit rate control of video encoding by correcting for the effects of scene changes and bit stuffing in a video buffer verifier (VBV) buffer model
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
JP2004054069A (ja) 2002-07-23 2004-02-19 Advanced Display Inc 表示装置及び表示装置の断線修復方法
KR100794797B1 (ko) * 2002-10-14 2008-01-21 삼성전자주식회사 디지털 a/v 데이터의 기록/재생 장치 및 그 제어방법
US8054880B2 (en) 2004-12-10 2011-11-08 Tut Systems, Inc. Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
US7788669B2 (en) * 2003-05-02 2010-08-31 Microsoft Corporation System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory
WO2004111789A2 (en) 2003-06-10 2004-12-23 Rensselaer Polytechnic Institute A method for processing i-blocks used with motion compensated temporal filtering
US8107535B2 (en) 2003-06-10 2012-01-31 Rensselaer Polytechnic Institute (Rpi) Method and apparatus for scalable motion vector coding
US7593580B2 (en) 2003-07-14 2009-09-22 Texas Instruments Incorporated Video encoding using parallel processors
US7400683B2 (en) 2003-11-18 2008-07-15 Lsi Corporation Device with virtual tilized image memory
US8315307B2 (en) * 2004-04-07 2012-11-20 Qualcomm Incorporated Method and apparatus for frame prediction in hybrid video compression to enable temporal scalability
JP4359184B2 (ja) 2004-05-11 2009-11-04 日本放送協会 予測情報・量子化値制御圧縮符号化装置、予測情報・量子化値制御圧縮符号化プログラム
US7881546B2 (en) * 2004-09-08 2011-02-01 Inlet Technologies, Inc. Slab-based processing engine for motion video
US7474701B2 (en) * 2004-09-23 2009-01-06 International Business Machines Corporation Single pass variable bit rate control strategy and encoder for processing a video frame of a sequence of video frames
EP1808025B1 (en) 2004-11-04 2016-03-09 Thomson Licensing Method and apparatus for fast mode decision of b-frames in a video encoder
US20060114995A1 (en) 2004-12-01 2006-06-01 Joshua Robey Method and system for high speed video encoding using parallel encoders
JP2006186420A (ja) * 2004-12-24 2006-07-13 Canon Inc 撮像装置及び撮像装置の制御方法
US7653129B2 (en) * 2004-12-28 2010-01-26 General Instrument Corporation Method and apparatus for providing intra coding frame bit budget
KR100945985B1 (ko) 2004-12-28 2010-03-09 닛본 덴끼 가부시끼가이샤 동화상 부호화 방법 및 이것을 이용한 장치와, 컴퓨터프로그램
US20060159352A1 (en) 2005-01-18 2006-07-20 Faisal Ishtiaq Method and apparatus for encoding a video sequence
WO2006078594A1 (en) 2005-01-19 2006-07-27 Thomson Licensing Method and apparatus for real time parallel encoding
CN100505874C (zh) * 2005-02-01 2009-06-24 华为技术有限公司 一种视频编码速率控制的方法
JP4285431B2 (ja) 2005-03-31 2009-06-24 Kddi株式会社 ビデオ情報編集装置、方法及びプログラム
US7974341B2 (en) * 2005-05-03 2011-07-05 Qualcomm, Incorporated Rate control for multi-layer video design
US20060256854A1 (en) 2005-05-16 2006-11-16 Hong Jiang Parallel execution of media encoding using multi-threaded single instruction multiple data processing
JP2006324848A (ja) 2005-05-18 2006-11-30 Nec Electronics Corp 情報処理装置及び情報処理方法
US7295642B2 (en) * 2005-06-30 2007-11-13 Teradyne, Inc. Jitter compensation and generation in testing communication devices
WO2007005750A2 (en) * 2005-07-01 2007-01-11 Sonic Solutions Method, apparatus and system for use in multimedia signal encoding
JP4528694B2 (ja) * 2005-08-12 2010-08-18 株式会社東芝 動画像符号化装置
CN100574427C (zh) * 2005-08-26 2009-12-23 华中科技大学 视频编码比特率的控制方法
JP4246723B2 (ja) 2005-08-29 2009-04-02 日本電信電話株式会社 フレーム内予測符号化制御方法、フレーム内予測符号化制御装置、フレーム内予測符号化制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4236654B2 (ja) 2005-09-13 2009-03-11 株式会社東芝 動画像符号化装置及びその方法
US8239766B2 (en) 2005-09-27 2012-08-07 Qualcomm Incorporated Multimedia coding techniques for transitional effects
US9602840B2 (en) 2006-02-06 2017-03-21 Thomson Licensing Method and apparatus for adaptive group of pictures (GOP) structure selection
JP4449915B2 (ja) 2006-02-08 2010-04-14 ソニー株式会社 符号化装置、符号化方法およびプログラム、並びに、記録媒体
JP4286259B2 (ja) 2006-02-15 2009-06-24 三菱電機株式会社 映像再生装置及び逆方向再生方法
JP4178480B2 (ja) 2006-06-14 2008-11-12 ソニー株式会社 画像処理装置、画像処理方法、撮像装置および撮像方法
US8036270B2 (en) 2006-07-27 2011-10-11 Sharp Laboratories Of America, Inc. Intra-frame flicker reduction in video coding
JP4923866B2 (ja) 2006-08-30 2012-04-25 ソニー株式会社 液晶表示装置および映像表示装置
JP4358215B2 (ja) 2006-09-27 2009-11-04 株式会社東芝 動画像符号化装置及びその方法
NO326065B1 (no) 2007-01-11 2008-09-08 Tandberg Telecom As Atte pixlers heltallstransform
KR100846802B1 (ko) 2007-02-14 2008-07-16 삼성전자주식회사 동영상 프레임의 디코딩 방법 및 인코딩 방법
US8396118B2 (en) * 2007-03-19 2013-03-12 Sony Corporation System and method to control compressed video picture quality for a given average bit rate
CN103124354B (zh) 2007-09-28 2016-01-20 杜比实验室特许公司 处理视频信息
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
CN101287112B (zh) * 2008-06-03 2010-12-22 方春 一种自适应码率控制方法

Also Published As

Publication number Publication date
CN102217308A (zh) 2011-10-12
WO2010056315A1 (en) 2010-05-20
CN102217308B (zh) 2014-10-22
EP2345243A4 (en) 2012-10-17
US20110206138A1 (en) 2011-08-25
EP2345243A1 (en) 2011-07-20
US9143788B2 (en) 2015-09-22
WO2010056333A1 (en) 2010-05-20
EP2345244A4 (en) 2012-10-17
JP5763540B2 (ja) 2015-08-12
EP2345244A1 (en) 2011-07-20
US9210431B2 (en) 2015-12-08
CN102217309A (zh) 2011-10-12
EP2345244B1 (en) 2014-08-06
EP2345243B1 (en) 2014-08-06
JP2012509014A (ja) 2012-04-12
JP2012509013A (ja) 2012-04-12
US20110222604A1 (en) 2011-09-15
CN102217309B (zh) 2014-04-09
WO2010056327A1 (en) 2010-05-20

Similar Documents

Publication Publication Date Title
JP5774995B2 (ja) Gopマージおよびビット割付けを用いたマルチスレッド・ビデオ符号化
JP5738950B2 (ja) ビデオ処理における電力及び計算負荷管理技法
US9357210B2 (en) Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US9313488B2 (en) Hypothetical reference decoder
KR101329860B1 (ko) 효과적인 레이트 제어 및 비디오 인코딩 품질의 향상을 위한 ρ-도메인 프레임 레벨 비트 할당 방법
US8135061B1 (en) Variable bit rate encoding
TW201018231A (en) Power and computational load management techniques in video processing
US9319682B2 (en) Moving image encoding apparatus, control method therefor, and non-transitory computer readable storage medium
US20100086280A1 (en) Method for smoothly playing a video stream in reverse
US7586426B2 (en) Image coding apparatus and method thereof
CN102860010A (zh) 视频编码控制方法及装置
US20100272170A1 (en) Image encoding apparatus, image encoding method and medium on which image encoding program is recorded
CN110300305B (zh) 视频编码装置与方法
JP2010074677A (ja) 映像処理装置、映像圧縮符号化装置、映像復号再生装置及び映像再生方法
JP4373283B2 (ja) 映像音声復号方法、映像音声復号装置、映像音声復号プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2010166197A (ja) セグメント符号化方法,セグメント符号化装置,セグメント符号化プログラムおよびその記録媒体,並びに,並列エンコードシステム,部分的再エンコードシステム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120904

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120907

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140404

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150507

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: 20150602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150702

R150 Certificate of patent or registration of utility model

Ref document number: 5774995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250