JP2016116224A - ビデオデータ処理システム - Google Patents

ビデオデータ処理システム Download PDF

Info

Publication number
JP2016116224A
JP2016116224A JP2015241948A JP2015241948A JP2016116224A JP 2016116224 A JP2016116224 A JP 2016116224A JP 2015241948 A JP2015241948 A JP 2015241948A JP 2015241948 A JP2015241948 A JP 2015241948A JP 2016116224 A JP2016116224 A JP 2016116224A
Authority
JP
Japan
Prior art keywords
group
encoding
block
parameter value
data block
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
JP2015241948A
Other languages
English (en)
Other versions
JP6912158B2 (ja
Inventor
ライマー・デッフィンガー
Reimar Doffinger
トーマス・ニーバリ
Thomas Nyberg
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2016116224A publication Critical patent/JP2016116224A/ja
Application granted granted Critical
Publication of JP6912158B2 publication Critical patent/JP6912158B2/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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/196Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】ビデオ画像データを符号化する方法および装置を提供する。【解決手段】データブロックの系列の、データブロックの2つのグループの、並列符号化を促進する一方、データブロックの系列にわたる、従属符号化の使用も促進する。これは、データブロックの第1および第2のグループの対10を別個の符号化ユニットに割り当て、データブロックの各第2のグループの第1のブロック30を符号化するために使用されるべき符号化パラメータ値を決定することによって達成される。画像の正しい再構築のために、データブロックのグループの対のデータブロックの第1のグルーブに属するブロックは、第2のグループの第1のブロック30を復号するとき、決定された符号化パラメータ値をデコーダに使用させることになる、符号化パラメータ値で符号化されることが確実化される。【選択図】図2

Description

本発明は、ビデオデータの処理に関する。より詳細には、この発明は、ビデオ画像データを符号化する方法および装置に関する。
Moving Picture Experts Group(通常、一般的にMPEGフォーマットと呼ばれる)によって規定されたフォーマットなどの、所定のビデオ符号化フォーマットに従って、ビデオ画像データ(例えば、RGBまたはYUV値)を符号化することが従来技術で知られている。MPEGなどのビデオ符号化フォーマットは、画像品質の認識できる著しい損失なしに、ビデオ画像データのファイルサイズを、著しく減少することを可能にすることができる。
当技術分野で知られているように、一般的に、符号化されたビデオデータでは、各ビデオフレームは、フレームの複数の画素のブロック(例えば、MPEG符号化の場合、16×16画素ブロック)に分割され、各ブロックは、個別に符号化される。
MPEG、H.264などのビデオ符号化規格において、ビデオ画像データ内の画素の各ブロック(例えば、MPEG符号化の場合、16×16画素ブロック)は、例えば、現在のフレーム(例えば、現在のフレーム中の以前に符号化された画素のブロック)または以前のフレーム(例えば、以前のフレーム中の対応する符号化された画素ブロック)のいずれかからの参照ブロックといった、以前に符号化されたデータに対して通常符号化される。各データブロックは、したがって、以前に符号化されたデータを指し示すベクトル値(いわゆる「動きベクトル」)、および現在のデータブロックと以前に符号化されたデータとの間の差異を記述するデータ(「残余」)を通常含む。(このことは、それによって、(現在の)フレームの区域についてのビデオデータを、動きベクトルによって指し示される符号化されたビデオデータおよびその区域と現在のビデオフレームの区域との間の差異を記載する差異データから構築することを可能にする。)
データブロックは、次いで、例えば、残余を(例えば、近似的離散コサイン変換(DCT)を使用して)次いで量子化される係数の組に変換することによって符号化することができる。量子化ステップは、典型的には、整数値によって各係数値を除算すること、次いで限定された値の組の1つに結果を制限することを含む。
量子化の程度、したがって、データを符号化するとき達成される圧縮の量は、量子化パラメータ(QP)によって調整される。量子化パラメータは、典型的には、量子化ステップ期間に使用されるスケーリングマトリックスを表すために使用される指標である。量子化パラメータは、例えば、所望のビットレートおよび符号化されるデータの複雑さに基づいてエンコーダによって選択および設定することができる。
デコーダが符号化されたデータから元のビデオ画像データを(できるだけ正確に)再構築することを可能にするために、符号化プロセス期間に元のビデオ画像データを表す係数を量子化するために使用されるQP値が、デコーダに示されなければならない。多くのシステムにおいて、このことは、対象となっているデータブロックを符号化するために使用される、とりわけQP値を示す情報を、符号化済みデータブロック中に含めることにより行われる。
QP値は、絶対値として符号化することができる。しかし通常、所与のブロックについてのQP値は従属的に符号化される、すなわち、ブロックについてのQP値は、(典型的にはラスタスキャン順で)先行するブロックに対して、標準的には先行するブロックについて示されるQP値に対して、相対値として規定される。これは、符号化される差異が比較的小さい場合、データサイズ削減、すなわちQP値を記憶するために必要なメモリの削減を達成できるという点で有利である。
複数のサブタスクを含むデータ処理タスクを並列処理することも当技術分野で知られている。例えば、ユニット間に符号化されていない画素のブロックの別個のグループを割り当てることによって、いくつかの符号化ユニット間に典型的な符号化プロセスを分割することが知られている。グループが、複数の符号化ユニットによって並列に符号化することができる場合、符号化プロセスのこの並列化は、それを実行するために必要な時間を、互いに並列に動作する複数の符号化ユニットによって、非常に削減することができることを意味することができる。
しかし、データブロックについての量子化パラメータ(QP)値が(従来型のラスタスキャン順で)先行するデータブロックの値に対して符号化されるビデオ符号化フォーマットは、そのような並列化には容易に適合されない。というのは、符号化は、その固有の連続性によっており、ブロックの系列中の各ブロックは、以前のブロックに従属して各ブロック自体を符号化するために、符号化されるべき以前のブロック(特に、先行ブロックのQP値)を必要とするからである。
したがって、ビデオ画像データを符号化するため、従属QP符号化の上記のデータサイズ削減の利点およびデータ処理並列化の上記の利点を両方とも実現することができる、改善された技法を提供することが望ましい。
本発明の第1の態様によれば、ビデオ画像データの符号化されていないブロックの系列を、ビデオ符号化フォーマットで符号化済みデータブロックの系列に符号化するステップを含む、ビデオ画像データを符号化する方法が提供され、
符号化されていないデータブロックを符号化するとき、ビデオ符号化フォーマットが符号化パラメータを使用し、
方法は、符号化されていないデータブロックの系列の、符号化されていないデータブロックの第1および第2のグループの少なくとも1つの対について、第1および第2のグループが、ビデオ画像データのビットストリーム順で、連続したデータブロックを含み、第2のグループの第1のブロックが、ビットストリーム順で、第1のグループの最後のブロックに続き、
符号化されていないデータブロックの第1および第2のグループを符号化するステップであって、それぞれ、符号化済みデータブロックの第1のグループおよび第2のグループを生成するステップを含み、
符号化されていないデータブロックの、第1および第2のグループを符号化するステップが、
第1のグループ中のデータブロックの全てを符号化するステップが終了する前に、第2のグループ中の符号化されていないデータブロックを符号化するために使用されるべき符号化パラメータの値を決定するステップと、
決定された符号化パラメータ値を使用して、第2のグループ中の符号化されていないデータブロックを符号化するステップと、
第1のグループ中の符号化済みデータブロックについて、示された符号化パラメータ値を使用して、符号化パラメータ値を決定し、第2のグループ中のデータブロックを復号するために使用するとき、第2のグループ中の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させる符号化パラメータ値を、第1のグループ中の符号化済みデータブロックが示すことを確実化するステップと
を含む。
本発明の第2の態様によれば、ビデオ画像データを符号化するための装置が提供され、ビデオ画像データを符号化することが、ビデオ画像データの符号化されていないブロックの系列を、ビデオ符号化フォーマットで符号化済みデータブロックの系列に符号化することを含み、
符号化されていないデータブロックを符号化するとき、ビデオ符号化フォーマットが符号化パラメータを使用し、
符号化されていないデータブロックの系列の、符号化されていないデータブロックの第1および第2のグループの少なくとも1つの対について、第1および第2のグループが、ビデオ画像データのビットストリーム順で、連続したデータブロックを含み、第2のグループの第1のブロックが、ビットストリーム順で、第1のグループの最後のブロックに続くように構成される処理回路をビデオ画像データを符号化するための装置が備え、
符号化されていないデータブロックの第1および第2のグループを符号化して、それぞれ、符号化済みデータブロックの第1のグループおよび第2のグループを生成し、
符号化されていないデータブロックの、第1および第2のグループを符号化することが、
第1のグループ中の、データブロックの全ての符号化が終了する前に、第2のグループ中の符号化されていないデータブロックを符号化するために使用されるべき符号化パラメータの値を決定することと、
決定された符号化パラメータ値を使用して、第2のグループ中の符号化されていないデータブロックを符号化することと、
第1のグループ中の符号化済みデータブロックについて、示された符号化パラメータ値を使用して、符号化パラメータ値を決定し、第2のグループ中のデータブロックを復号するために使用するとき、第2のグループ中の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させる符号化パラメータ値を、第1のグループ中の符号化済みデータブロックが示すことを確実化することと
を含む。
本発明は、従属符号化およびデータ処理並列化を促進できる、ビデオ画像データを符号化する方法および装置に関する。
符号化されるビデオ画像データは、符号化されていないデータブロックの系列を含む。
使用されるビデオ符号化フォーマットは、(好ましくは、量子化パラメータ、QPなど)符号化パラメータが符号化されていないデータブロックを符号化するために使用され、符号化されていないデータブロック上で実行される符号化プロセスで使用される符号化パラメータの値を符号化済みデータブロックが(デコーダに)示すことができるものである。さらに、少なくとも1つのデータブロックに使用される符号化パラメータ値は、符号化済みデータブロックの系列中の、先行する符号化済みデータブロックについての符号化パラメータ値を参照して、デコーダによって決定される。
言い換えると、本発明は、符号化されていないデータブロックを符号化するとき符号化パラメータを使用するビデオ符号化フォーマットに関し、データブロックを符号化するとき使用される符号化パラメータの値は、符号化済みデータブロックの系列中の、先行する符号化済みデータブロックについての符号化パラメータ値を参照して、符号化済みデータブロック中に規定される、相対的符号化パラメータ値を含むことによってデコーダに示すことができる(示すことが好ましい)。
上で議論したように、そのようなデータブロックの従属符号化(すなわち、所与のブロックについての符号化パラメータ値が以前のブロックに対して決定される)は、符号化効率について有益であるが、従属関係の連続的な性質のために、今まで、符号化プロセスの並列化に対して著しく妨げであった。
しかし、符号化済みデータブロックは、正しいブロック系列順序中の先行するブロックの符号化パラメータ値に基づいて符号化済みデータブロックについての符号化パラメータ値をデコーダに正しく導出させることを可能にするように構成されなければならないが、符号化プロセス自体は、同じ系列順序中の符号化するデータブロックに制限される必要がないことを、出願人は認識した。
加えて、符号化プロセスの並列化は、従属符号化の連続的な性質を分割することによって達成できることを、出願人は認識した。
本発明では、符号化されるべき、符号化されていないデータブロックの系列からの、ブロックのグループの1対が、符号化されて、符号化済みデータブロックの第1および第2のグループを生成する。第1および第2のグループは、ビデオデータのビットストリーム順に、連続したデータブロックを含む。第2のグループは、ビットストリーム順に第1のグループに後続し(好ましくは、ビットストリーム順に第1のグループに直接後続し)、さらに、第2のグループ中のデータブロックについての符号化パラメータ値は、第1のグループ中のデータブロックについての符号化パラメータ値を参照してデコーダによって決定されるべきである。
ブロックの、第1のグループの符号化パラメータ値と第2のグループの符号化パラメータ値との間の従属関係は、符号化されていないデータブロックの第2のグループへの符号化プロセスを開始することができる前に、符号化されていないデータブロックの第1のグループが、符号化されなければならないことを、従来は意味した。しかし、本発明では、第2のグループ中のデータブロックを符号化するとき使用されるべき符号化パラメータの値は、第1のグループ中のデータブロックの全ての符号化が終了する前に決定される。
したがって、本発明は、第1のグループ中の最後のデータブロックについての符号化パラメータ値を参照することなく、例えば第2のグループ中の第1のデータブロックについての符号化パラメータ値を(例えば、符号化パラメータ値決定動作中で)決定する。
これは、次いで、符号化されていないブロックの第1のグループの符号化が終了する前に、符号化されていないデータブロックの第2のグループが符号化されることを可能にし、そのことにより、符号化されていないデータブロックの各々のグループを並列に符号化することを促進する。
したがって、符号化プロセスの並列化は、ブロックの第1のグループと第2のグループとの間の符号化従属関係が「壊れた」ときに達成することができる。
しかし、並列符号化を促進するために、ブロックの第1のグループと第2のグループとの間の符号化従属関係が壊れるにもかかわらず、MPEGなどのビデオ符号化フォーマットは、先行するブロックに対して規定されるべき従属的に符号化されるデータブロックについて、符号化パラメータ値を依然として必要とするということを、出願人は認識した。
これは、対応するデコーダが、(データブロックが符号化された順序ではなく)データブロックの元の系列順序中の先行するデータブロックの符号化パラメータ値に基づいて、所与の(従属的に符号化される)データブロックについての符号化パラメータ値を依然として導出することになるからである。例えば好ましくは、本発明の符号化プロセスが、決定された符号化パラメータ値を(絶対項で)使用してデータブロックの第2のグループ中で、第1のデータブロックを符号化し、一方、結果として得られる符号化済みデータブロックが、ブロックの第2のグループ中の第1のデータブロックについて使用されるべき符号化パラメータ値を決定するため、第1のグループ中の最後のデータブロックの符号化パラメータ値とともに使用されるべき相対的符号化パラメータ値を含むことになる。
結果として、本発明の重要な特徴は、データブロックの第1のグループと第2のグループとの間の「壊れた」符号化パラメータ値従属関係が、復号プロセスのために本質的に「修復される」ことである。言い換えると、例えば、第1のグループ中の最後のデータブロックへの第2のグループ中の第1のデータブロックの(特に、第1のグループ中の最後のデータブロックの符号化パラメータ値への第2のグループ中の第1のデータブロックの符号化パラメータ値の)従属関係は、デコーダが、符号化されたデータを正しく再構築できるように「復元」される。
しかし、第2のグループ中のデータブロックについての符号化パラメータ値が、第1のグループ中の最後のデータブロックの符号化が終了する前に決定されるので、システムは、例えば第1のグループ中の最後のデータブロックを符号化するとき、第2のグループ中のデータブロックを復号するとき、第2のグループ中の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに使用させることになる、符号化パラメータ値を含むために、そのデータブロックを必ずしも符号化しない。
これを克服するために、本発明は、ブロックの第1のグループ中の符号化済みデータブロックが、第2のグループ中のデータブロックを復号するとき、第2のグループ中の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに使用させることになる、符号化パラメータ値を示すことを確実化する。これを達成するための様々な技法が、下でより詳細に議論されることになる。
符号化されるべき、符号化されていないデータブロックの系列は、例えば、符号化されるべきビデオフレームのうちの一部または全部を表す、任意の好適な、所望のそのような系列であってよい。好ましい実施形態では、符号化されていないデータブロックの系列は、符号化されるべき全フレームを表すブロックの系列である。
ブロックは、符号化パラメータ値決定のために、符号化されているビデオ画像データのビットストリーム順で(すなわち、ブロックが、使用されるビデオコーディング規格(フォーマット)によって規定されるようなビットストリーム中に現れる順序で)、順序付けされる。(ビデオコーディング規格は、符号化パラメータの値が、ブロックの符号化パラメータ値を参照して、符号化されたビットストリーム中で先に導出される方法を規定する。)これは、符号化されたブロックがデコーダにより処理されることになる順序であってよい(したがって、1つの好ましい実施形態では、データブロックの系列中のデータブロックの順序は、ブロックがデコーダによって処理されることになる順序である)が、これは、例えばデコーダが異なる復号順序を使用する場合に本質的ではない。したがって、これは典型的には、1つの好ましい実施形態では、ラスタスキャン順であることになる。しかし、所望の場合、他の系列順を使用することができる。
第1のグループ中の最後のデータブロックの符号化が終了する前に符号化パラメータ値が決定される、データブロックの第2のグループ中のデータブロックなどは、好ましくは、第2のグループ中の第1のデータブロックである。
本発明で考慮されるデータブロックは、処理されているビデオ画像(フレーム)の、任意の好適な所望の部分を各々表すことができる。それらは、好ましくは、(例えば、使用されているビデオ符号化フォーマットに依存して)処理されているフレームの所与の領域(区域)にそれぞれ対応する。
したがって、各ブロックが好ましくは、フレーム内の複数の画素および/またはサンプリング点など、処理されているフレームの好適な(好ましくは異なる)領域(区域)を表す。したがって、各データブロックは、好ましくは、画素のブロックである(各画素のブロックが、特に、好適な画素の色の値(例えば、RGBAまたはYUVの色の値)を表すデータを含む)。好適なデータブロックサイズは、フレーム中で、例えば、8×8、16×16、または32×32画素となる。特に好ましい実施形態では、データブロックは、複数の、例えば、フレームの16×16サンプル(画素)を含む、いわゆるビデオ「マクロブロック」である。
符号化されている、符号化されていないデータブロックの系列は、符号化されていないデータブロックの2つのグループの単一の対に、単に分割することができ、符号化されていないデータブロックのグループのその対は、次いで本発明の様式で処理されることになる。あるいは、本発明の様式で処理されるべき符号化されていないデータブロックの2つのグループは、符号化されていないデータブロックの全体の系列中の、符号化されていないデータブロックの全部ではない一部からなることができる。
しかし、特に好ましい実施形態では、(例えば、符号化されるべきビデオフレームを表す)符号化されていないデータブロックの全体の系列は、符号化されていないデータブロックの、第1および第2のグループの複数の対に分割され、符号化されていないデータブロックのグループの各々のそのような対が、次いで(それぞれ)本発明の様式で処理される。
そのような実施形態では、本発明は、データブロックの複数の第2のグループの各々のグループについて、データブロックの系列(例えば、フレーム)が、データブロックの複数の第2のグループの各々のグループ中の、(好ましくは第1の)データブロックを符号化するために使用されるべき符号化パラメータ値に分割されたことを判定するステップを含むことになり、好ましくは含む。
同様に、本発明は、好ましくは、複数の第1のグループの各々の中の符号化済みデータブロックが、対象となっているブロックの第2のグループの中の(好ましくは第1の)データブロックを復号するときに、対応するブロックの第2のグループの中の(好ましくは第1の)符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに使用させることになる、符号化パラメータ値を示すことを確実化するステップをさらに含む。
これらの構成では、符号化されていないデータブロックの第1および第2のグループの各対は、符号化されていないデータブロックの別個の(すなわち、重複しない)グループを含むことができる(そのため、事実上、符号化されていないデータブロックの第1および第2のグループの各対は、符号化されていないデータブロックのグループの全ての他の対から独立することになる)。
しかし、特定の好ましい実施形態では、符号化されていないデータブロックの所与の系列について処理されている、符号化されていないデータブロックの第1および第2のグループの複数の対が存在する場合、符号化されていないデータブロックの第1および第2のグループのそれぞれの対が重複し、そのため、符号化されていないデータブロックの2つのグループの先行する対の符号化されていないブロックの第2のグループは、処理されるべき符号化されていないデータブロックの第1および第2のグループの次に続く対の符号化されていないデータブロックの第1のグループをやはり形成し(第1のグループとして働き)、符号化されるべき符号化されていないデータブロックの第1および第2のグループのその続きの対の符号化されていないデータブロックの第2のグループは、符号化されていないデータブロック系列からの、符号化されていないデータブロックの第1および第2のグループのさらに続きの対についての符号化されていないデータブロックの第1のグループとしてやはり機能し、以下同様である。
言い換えれば、好ましい実施形態では、符号化されていないデータブロックのグループは、符号化されていないデータブロックの第1および第2のグループの先行する対についての、符号化されていないデータブロックの「第2の」グループとして、および符号化されていないデータブロックの第1および第2のグループの後続する対についての、符号化されていないデータブロックの「第1の」グループとして、の両方で働くことができる(符号化されていないデータブロックのグループの少なくとも一部は、それを行うことになる)。
したがって、特定の好ましい実施形態では、符号化されていないデータブロックの系列は、符号化されていないデータブロックの3つ以上のグループに分割され、符号化されていないデータブロックの系列が分割された、符号化されていないデータブロックのグループは、次いで、符号化されていないデータブロックの後続のグループのそれぞれの対として処理され、符号化されていないデータブロックのグループの各々のそのような対は、本発明の様式で処理される。
これらの構成(およびそれ以外)では、符号化されていないデータブロックの各グループは、任意の好適な、かつ/または所望の数のデータブロックを含むことができる。符号化されていないデータブロックの各グループは、好ましくは、同じ数のデータブロックを含むが、所望であれば、グループは、異なる数のデータブロックを含むことができる。
特に好ましい実施形態では、符号化されていないデータブロックの全体の系列は、符号化されていないデータブロックの、複数の同じサイズのグループに分割され、符号化されていないデータブロックのそのグループは、次いで、好ましくは、本発明の様式で、符号化されていないデータブロックのグループのそれぞれの対として処理される。
特に好ましい実施形態では、符号化されていないデータブロックの各グループは、処理されているフレームからの、データブロック(例えば、マクロブロック)の個別の(および全体の)行を含む。したがって、本発明は、好ましくは、本発明の様式で、1行ずつ、符号化されるべきビデオデータのフレームを処理するように動作する。
しかし、所望の場合、例えば符号化されていないデータブロックの各グループが、フレームからの行の全部でなく一部を含む、他の構成が可能となる。例えば、処理されているフレームの各行は、所望の場合、行に沿って1つが他のものに続く、データブロックの2つのグループに分割することができる。
この点に関連し、(系列順で、)処理されている符号化されていないデータブロックの系列中の、符号化されていないデータブロックのグループの第1の対について、その第1の対の中のデータブロックの第1のグループは、符号化されていないデータブロックの系列中の、符号化されていないデータブロックの任意の先行するグループによって先行されないことになることを理解されよう。符号化されていないデータブロックの系列の、符号化されていないデータブロックの最も最初のグループ中の、第1の符号化済みデータブロックは、したがって、データブロックの系列中の、後続のデータブロックが従属的に符号化され得る、符号化パラメータ値を含むべきであり、好ましくは含む。さらに、この符号化パラメータ値は、好ましくは、符号化されていないデータブロックの最も最初のグループが符号化される前に決定され、グループ中の第1の符号化済みデータブロックは、その決定された符号化パラメータ値の表示を含むことになる。
相応して、処理されている符号化されていないデータブロック(例えば、フレーム)の系列中の、符号化されていないデータブロックのグループの最も最後の(最終)対について、その最終対中のデータブロックの第2のグループは、符号化されていないデータブロックの系列中の、符号化されていないデータブロックの後続するグループによって後続されることがない。したがって、符号化されていないデータブロックの系列の、符号化されていないデータブロックの第1および第2のグループの最終対中の、データブロックの第2のグループ中のブロックが、符号化されるとき、例えば、符号化済みデータブロックの後続のグループの第1のデータブロックについての、決定された符号化パラメータ値をデコーダに導出させることになる、好適な符号化パラメータ値を示すことを確実化する必要はない。
相応して、処理されるべき符号化されていないデータブロックのグループの、任意の「中間の」対について、すなわち、各対中の第1のグループが符号化されていないデータブロックの先行するグループによって直接先行され、各対中の第2のグループが、符号化されていないデータブロックの後続のグループによって直接後続される場合、例えば、符号化されていないデータブロックのグループの、所与のそのような対の第1のグループ中の第1のデータブロックが、そのために決定された符号化パラメータ値を有することになる。同様に、各々のそのような対中のデータブロックの第2のグループ中のブロックが、符号化されるとき、例えば、符号化済みデータブロックの、次に続くグループ中の第1のデータブロックについて、決定された符号化パラメータ値をデコーダに導出させることになる、好適な符号化パラメータ値を示すことをやはり確実化されることになる(必要がある)。
本発明の様式で取り扱われる符号化パラメータは、任意の好適、かつ/または所望の符号化パラメータであってよい。好ましい実施形態では、符号化パラメータは、ブロックについて使用される符号化プロセスの態様を示すパラメータである。例えば、いくつかの実施形態における符号化パラメータは、データを符号化するとき使用される、かつ/またはデータの符号化を制御するためのパラメータである。好ましい実施形態では、符号化パラメータは、データブロックを符号化するときに適用される圧縮に関し、好ましくは、使用されている圧縮のレベルを制御する(および、示す)。
特に好ましい実施形態では、(所定のビデオ符号化フォーマットがMPEGビデオ符号化フォーマット(例えば、H.264)である実施形態で特に)符号化パラメータは、量子化パラメータ(QP)である。
ブロックの所与のグループの第1のブロックについて使用されるべき符号化パラメータの値は、任意の好適な、または所望の様式で決定(選択)することができる。
いくつかの実施形態では、符号化パラメータ値は、対象となっているデータブロックの特性に基づいて決定される。例えば、符号化パラメータ値は、視覚的な品質のために、ブロックがどれだけ重要と考えられるのかに基づいて決定することができる。例えば、フレームの中央のデータブロックは、典型的には、画像品質にとってより重要であり、たいていの場合、より低い圧縮レートに関係する符号化パラメータ値を使用することになる。
いくつかの実施形態では、符号化パラメータ値は、データブロックの内容(例えば、生の画素データ)に基づいて決定することができる。好ましい実施形態では、符号化パラメータ値は、例えば、データブロックの内容の推定される複雑さ、および/または所望のビットレートに基づいて決定することができる。特に好ましい実施形態では、データブロックの推定される複雑さおよび所望のビットレートは、使用する符号化パラメータ値を決定するルックアップテーブル中で使用される。ここで、ルックアップテーブルは、例えば、レートひずみ最適化に関するものなどの、以前の実験または分析の結果に基づいて、所与の複雑さおよびビットレートについて、好適な符号化値に予め構成されておくことが理解されよう。
他の実施形態では、符号化されているデータブロックの「第2の」グループの、第1の、例えばブロックについての符号化パラメータ値は、データブロックの以前の系列の(例えば、好ましくは、以前のフレームを形成するデータブロックの系列の)特性に基づく。例えば、いくつかの場合で、データブロックの内容、したがってそのブロックについての所望の符号化パラメータ値は、表示されるべき連続フレーム間で著しくは変化しないことになり、そのため、使用する符号化パラメータ値は、したがって、例えば、以前に符号化されたフレーム中の対応するブロックについて使用された符号化パラメータ値に基づいて決定することができる。
一実施形態では、符号化パラメータ値は、データブロックの現在の系列中の先行するブロックの特性に基づいて決定される。例えば、符号化パラメータ値は、データブロックの現在の系列(例えば、現在のフレーム)中の先行するデータブロックについて選択された符号化パラメータ値に基づいて決定することができる。
いくつかの実施形態では、データブロックについての符号化パラメータ値は、対象となっているブロックが関係するデータブロックの系列について利用可能な、残っているビットの数の関数に基づいて決定される。例えば、符号化パラメータ値は、系列について残っているビットの数の逆数に対して一次関数であることができる。
符号化済みデータブロック中の符号化パラメータ値を示すために、(例えば、符号化済みデータブロックが示すことができる最大の相対的符号化パラメータ値に対して制限があることに起因して、)制限された容量しか存在しない場合があることを出願人は認識した。したがって、好ましい実施形態では、データブロックの所与のグループの、例えば第1のブロックについての符号化パラメータ値は、任意の連続するデータブロックについての符号化パラメータ値間の(例えば、最大の)差異を、単一の符号化されたブロック中に示すことができる(すなわち、そのため、符号化済みデータブロック中に含まれる必要がある場合がある、(例えば、最大の)相対的符号化パラメータ値が、単一の符号化されたブロック中に示すことができる)ように選択される。
上に記載されたように、少なくとも、使用されるべき符号化パラメータの値は、考慮されているデータブロックの各「第2の」グループ中の、例えば第1のデータブロックについて決定されることが本発明についての要件であるけれども、好ましい実施形態では、このことは、符号化されていないデータブロックの各「第1の」グループ中の、例えば第1のブロックについて、やはり行われる。言い換えれば、特に好ましい実施形態では、符号化されていないデータブロックのグループ中の、例えば第1の符号化されていないデータブロックを符号化するために使用されるべき、符号化パラメータの値は、データブロックの系列(例えば、フレーム)が分割された、符号化されていないデータブロックの(各グループについて)全てのグループについて決定される。
したがって、好ましい実施形態では、符号化されていないデータブロックの系列は、符号化されていないデータブロックの複数のグループに分割され、符号化パラメータ値は、符号化されていないデータブロックの各グループ中の、例えば第1のデータブロックについて決定される。このことは、符号化されていないデータブロックの第1および第2のグループの対が重複する場合、いずれにせよ発生する可能性がある(そのため、符号化されていないデータブロックの所与のグループは、符号化されていないデータブロックのグループのうちの1つの対について、符号化されていないデータブロックの第2のグループとして、および、符号化されていないデータブロックのグループのうちの別の対について、符号化されていないデータブロックの第1のグループとしての両方で働くことになる)。
各グループ中の、例えば第1の符号化されていないデータブロックは、次いで、好ましくは、決定された符号化パラメータ値を使用して符号化される。
相応して、好ましい実施形態では、符号化されているデータブロックの系列中のブロックの別のグループに先行するブロックの各グループについて、後続するグループ中の例えば第1のそのデータブロックを符号化するとき、ブロックの例えば直接続くグループ中の、例えば第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに使用させることになる、符号化パラメータ値を示す符号化済みデータブロックが存在することが確実化される。
考慮されている符号化されていないブロックのグループのうちの、各、例えば第1のブロックについて使用されるべき符号化パラメータ値は、任意の所望の、好適な順序およびタイミングで決定することができる。
1つの好ましい実施形態では、データブロックの各グループの、例えば第1のデータブロックについての符号化パラメータ値決定は、系列中のデータブロックのいずれかの符号化が始められる前に、前処理動作として(事前に)実施される。したがって、データブロックのグループへの符号化プロセスが実施される前に、考慮されているデータブロックのうちの各グループの、例えば第1のデータブロックについて、符号化パラメータ値が決定される。
別の実施形態では、符号化パラメータ値決定動作は、事前にデータブロックグループの全ての対について実施されるわけではなく、それらが符号化される状態になると、データブロックのうちの各グループについて実施される。この実施形態では、符号化パラメータ値決定動作は、「オンザフライ」で実施されることになり、符号化されることになっているグループの、例えば第1のブロックについての符号化パラメータ値だけが、常に決定される。符号化パラメータ値決定動作は、したがって、順に符号化されるべき、符号化されていないデータブロックのグループについて、実行されることになる。
符号化パラメータ値は、ビデオ符号化システムの符号化ユニットなどの、ビデオ符号化システムの、任意の好適な所望の構成要素または要素(例えば、プロセッサ)によって決定することができる。
システムが複数の符号化ユニットを含む場合、符号化パラメータ値決定動作は、符号化ユニットのうちの1つだけによって実施することができ、または、符号化パラメータ値決定動作は、複数の(例えば、全ての)符号化ユニットにわたって分散されて、例えば、複数の(例えば、全ての)符号化ユニットによって、並列に実施することができる。
データブロックのうちの所与のグループの、例えば第1のブロックについて使用されるべき符号化パラメータの値が決定された後で、グループ中の例えば第1のデータブロックは、決定された符号化パラメータ値を使用して符号化することができ、好ましくは符号化される。
グループ中の例えば第1のデータブロックは、任意の好適な所望の符号化タイプを使用して符号化することができる。1つの好ましい実施形態では、それは、相対的符号化パラメータ値を示すことができるブロックタイプとして符号化される(しかし、これは、下でさらに議論されることになるように、本質的ではない)。
したがって、好ましい実施形態では、データブロックのグループ中の、例えば第1のデータブロックを復号化するとき、使用されるべき符号化パラメータ値を導出するために、デコーダにより使用されるべき相対的符号化パラメータ値(ならびに、先行するグループ中の符号化済みデータブロックについての符号化パラメータ値)は、データブロックの(第2の)グループの、例えば第1のデータブロックの符号化バージョン中に含まれる。
これらの構成では、符号化済みデータブロック中に含まれる(示される)相対的符号化パラメータ値は、データブロックを復号化するとき使用されるべき符号化パラメータ値を導出するため、デコーダが使用することができる、任意の好適な所望の相対的符号化パラメータ値であってよい。
好ましい実施形態では、グループの、所与の例えば第1のブロックについての相対的符号化パラメータ値は、以前のグループの最後のブロックについての符号化パラメータ値の推定に基づく。好ましい実施形態では、この推定は、ブロックの先行するグループ中の、データブロックについて(好ましくは、第1のデータブロックについて)、使用されるために決定された符号化パラメータ値に基づく。
したがって、好ましい実施形態では、データブロックのグループの、所与の例えば第1のブロック中に含まれる相対的符号化パラメータ値は、そのブロックを符号化するために使用されるべき決定された符号化パラメータ値、および符号化されているブロックの系列中のブロックの、例えば直接先行するグループ中の、データブロックについて使用されるために決定された符号化パラメータ値の両方に基づく。
特に好ましいそのような実施形態では、下でさらに議論されるように、データブロックのグループの、所与の例えば第1のブロック中に含まれる、相対的符号化パラメータ値は、好ましくは、そのブロックについて使用されるべき決定された符号化パラメータ値、および符号化されているブロックの系列中のブロックの、例えば直接先行するグループの、第1のブロックについて使用されるために決定された符号化パラメータ値の両方に基づく。例えば、相対的符号化パラメータ値は、ブロックについて使用されるべき決定された符号化パラメータ値と、系列中のブロックの、例えば直接先行するグループの第1のブロックについて決定された符号化パラメータ値との間の差異を単純に表すことができる(好ましい実施形態では、これが、行われることである)。
符号化されているブロックのグループ中の後続のデータブロックは、ここで、通常の様式で、例えば、グループ中の第1のデータブロックに従属して、かつ/またはグループ中の第1のブロックについて決定された符号化パラメータ値を使用して符号化することができる。符号化プロセスは、好ましくは、符号化されていないデータブロックのグループを、ブロック単位で進み、順に各ブロックに符号化プロセスを実施する。
データブロックのグループの実際の符号化は、任意の所望の好適な様式で実施することができる。例えば、データブロックのグループは、単に、次から次へと符号化することができる。
しかし、上で議論したように、本発明は、特に、符号化動作の並列化を促進し、そのため、特に好ましい実施形態では、データブロックの系列が分割されたデータブロックのグループは、並列に符号化される。したがって、好ましい実施形態では、符号化されていないデータブロックの、第1および第2のグループの所与の対について、好ましくは、対の符号化されていないデータブロックの第1のグループおよび第2のグループが、少なくとも部分的に並列に(すなわち、異なる符号化ユニット上で同時に)符号化されることになる。これは、好ましくは、符号化されていないデータブロックの系列の、符号化されていないデータブロックの第1および第2のグループの、少なくとも1つの対についての場合である。
相応して、好ましい実施形態では、符号化プロセスは、符号化されていないデータブロックの第2のグループのデータブロックの符号化と並列に、符号化されていないデータブロックの第1のグループ中の、それぞれの符号化されていないデータブロック上で実施される。
符号化の並列化は、任意の好適な所望の様式で、達成および構成することができる。例えば、並列に動作する2つの符号化ユニットが存在する場合、データブロックの系列中のブロックの代替グループを、符号化ユニットのそれぞれのものに割り当てることができる。2つよりも多い符号化ユニットが存在する場合、データブロックのグループを、複数の符号化ユニット間で、適宜かつ必要に応じて、符号化するために分散することができる。
符号化動作自体は、全ビデオ処理システムの、任意の所望の好適な構成要素または要素によって、実行することができる。好ましくは、システムは、「生の」ビデオデータを所与の1つまたは複数のビデオ符号化フォーマットに符号化するようにそれぞれ動作可能な、この目的のための1つまたは複数の符号化ユニットを含む。上に議論されたように、システムは、符号化されていないデータブロックのグループを並列に符号化するように動作できる、複数の符号化ユニットを好ましくは備える。この点に関連し、例えば2つの符号化ユニットなどから、例えば、符号化されていないデータブロック(例えばフレーム)の所与の系列が分割される、グループの数と同じだけ多くの符号化ユニットまでの、任意の所望の数の符号化ユニットを設けることができる。
システムの符号化ユニットは、必要に応じて、例えば、単一のプロセッサで、または、マルチコアシステム中の別個の処理コアとして構成し、設けることができる。
上に議論されたように、符号化されているデータブロックのグループの所与の対の、データブロックの第2のグループ中の、例えば第1のデータブロックの、符号化バージョンは、好ましくは、第2のグループ中のそのデータブロックを復号するとき使用されるべき符号化パラメータ値を導出するためにデコーダにより使用されるべき、相対的符号化パラメータ値を含む。第2のグループ中の、例えば第1のデータブロックについての、その相対的符号化パラメータ値は、第2のグループ中の、例えば第1のデータブロックを符号化するとき使用されるべき、符号化パラメータ値を導出するため、対の第1のグループ中の、最後の符号化済みデータブロックについての符号化パラメータ値を参照して、デコーダにより使用されることになる。
しかし、符号化プロセスが並列化される場合、第2のグループ中の第1のデータブロックの符号化は、第1のグループ中の、最後のデータブロックの符号化が終了する前に完了する可能性があることを、出願人は認識した。
結果として、第2のグループ中の第1のデータブロックの、符号化バージョンに含まれる、相対的符号化パラメータ値は、ブロックの先行するグループの最後のブロックについての、知られている符号化パラメータ値に基づくことにならず、先行する第1のグループ中の、最後に符号化済みデータブロックについての符号化パラメータ値を参照して、第2のグループ中の第1の符号化済みデータブロックによって示される相対的符号化パラメータ値を使用するときに正しく決定されるべき、(第2のグループ中の第1のデータブロックを符号化するために使用された)決定された符号化パラメータ値を必ずしも許可しないことになる。
これに対処するため、本発明の動作は、例えば、第2のグループ中の、例えば第1のデータブロックを復号するとき使用されるべき符号化パラメータ値を導出するため、第2のグループ中の、例えば第1の符号化済みデータブロック中に含まれる相対的符号化パラメータ値を使用するとき、符号化されるべきデータブロックのグループの所与の対の、第1のグループ中の符号化済みデータブロックが、データブロックのグループの対の第2のグループ中の、例えば第1の符号化済みデータブロックについて、(正しい)決定された符号化パラメータ値を、デコーダに導出させることになる符号化パラメータ値を示すことを確実化する。
言い換えれば、本発明は、第2のグループ中の第1の符号化済みデータブロックをデコーダが処理(復号)し始める前にデコーダに示される最後の符号化パラメータ値は、第2のグループ中の第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させるための、好適な値となることを確実化する。
このことは、次いで、符号化されたビデオデータを再構築するときに選択されたビデオ符号化フォーマットに従ってビットストリーム順に従うことになるデコーダに、ブロックの第2のグループの第1のブロックを復号するとき、符号化パラメータに使用する正しい値を決定させることになる(そのため、デコーダは、符号化データを正しく復号することができる)。
この点に関連し、第1のグループ中の符号化済みデータブロック中に示される符号化パラメータ値は、例えば、第2のグループ中の、例えば第1のデータブロックの符号化バージョンに含まれる、相対的符号化パラメータ値で使用されるとき、第2のグループ中の、例えば第1の符号化済みデータブロックについて、(正しく)決定された符号化パラメータ値をデコーダに導出させることになる値であるべきであり、好ましくは、値である。したがって、第1のグループ中の、符号化済みデータブロック中に示される符号化パラメータ値は、示される符号化パラメータ値に基づいて、使用する符号化パラメータ値をデコーダがどのように決定するのかに依存するべきである。
例えば、デコーダが、第2のグループ中の例えば第1のデータブロック中に示される相対的符号化パラメータ値を、先行するブロックについて使用される符号化パラメータ値と組み合わせる(例えば、加える)ことにより、第2のグループ中の例えば第1のデータブロックについて使用する符号化パラメータ値を決定する場合、例えば、第2のグループ中の第1のデータブロック中に示される相対的符号化パラメータ値を減じた、第2のグループ中の第1のデータブロックについて、決定された符号化パラメータ値である符号化パラメータ値を第1のグループ中のブロックが示すことを確実化されるべきであり、好ましくは確実化される。
ブロックの第1のグループ中の符号化済みデータブロックが好適な符号化パラメータ値を示すことを確実化することは、任意の好適な所望の様式で行うことができる。
好ましい実施形態では、これは、好適な符号化パラメータ値を示すように、符号化済みデータブロックの第1のグループ中の符号化済みデータブロックを設定することにより行われる。これは、好ましくは、ブロックについての好適な符号化パラメータ値をもたらすことになる、相対的符号化パラメータ値を符号化済みブロック中に示すことにより行われる。
この場合、第1のグループ中のデータブロックは、好ましくは、そのように示される符号化パラメータ値を使用してやはり符号化される。ブロックの第2のグループ中の、例えば第1のブロックで使用するための符号化パラメータ値を示すことが必要でない場合、さもなければブロックについて使用されることになる符号化パラメータ値(すなわち、例えば、データブロックの内容および所望のビットレートに単純に基づいて、エンコーダがブロックについて使用した値)と異なる、かつ/または変更された符号化パラメータ値を使用するブロックを符号化することを含むことができ、好ましい実施形態では、含む。
(一方、実際には、その示される符号化パラメータ値を使用してデータブロックを符号化する必要なしに、符号化スキームが符号化済みブロックに符号化パラメータ値を示すことを可能にする場合、所望なら、ブロックは、異なる符号化パラメータ値を使用して符号化することができる。)
好適な符号化パラメータ値を示すように設定されるデータブロックは、データブロックの第1のグループ中の、任意の好適な所望のデータブロックであってよい。1つの好ましい実施形態では、データブロックの第1のグループ中の、最後のデータブロックは、好適な符号化パラメータ値を示すように設定される。この場合、本発明は、デコーダの観点から、対象となっているデータブロックのグループの対のうちの、第1のグループ中の最後のデータブロックと、第2のグループ中の第1のデータブロックとの間の正しい従属関係を確実化することになる。
他の実施形態では、第1のグループ中の、最後のデータブロックではない、第1のグループ中の、所与の、好ましくは選択されたまたは所望のデータブロックが、好適な符号化パラメータ値を示すように設定される。これは、グループ中の後続のデータブロックについての符号化パラメータ値が、(ブロックの内容がブロック間で著しく大きくは変わらないブロックの系列についてなど、)ブロック毎に変わらない、または変わらない可能性がある場合の構成で、特に有用である可能性がある。例えば、同じ符号化パラメータ値を、ブロックの全グループについて使用することができる。好ましいそのような構成では、対象となっているデータブロックのグループの対の、データブロックの第1のグループ中の第1のデータブロックが、好適な符号化パラメータ値を示すために設定される。
1つの実施形態では、所望の符号化パラメータ値を示すための、ブロックの第1のグループ中の、1つまたは複数のブロックの設定は、符号化プロセス自体の期間に実施される。しかし、これが、例えば、後処理動作としてといった、符号化処理と別個に行われることも等しく可能である。そのような構成では、データブロックの第1および第2のグループの少なくとも1つの対が最初に符号化されることになるが、結果として得られる符号化済みデータブロック(例えば、結果として得られるビットストリーム)は、次いで、第2のグループ中の、例えば第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させることになる、好適な符号化パラメータ値を示すために、第1のグループ中の、符号化済みデータブロックを設定するように処理されることになる。
確実化するステップが後処理動作として実施される場合、(以前のグループの最後のブロックの符号化パラメータ値は、処理後に知られることになるので)第2のグループ中の第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させるため、第2のグループ中の、例えば第1のデータブロックについての符号化パラメータ値を、好適な値にやはりまたは代わりに(好ましくは代わりに)設定することが、やはり可能であり、いくつかの場合に好ましい。1つの好ましい実施形態では、これが、行われることである。(しかし、いくつかの場合に、符号化済みデータブロック中に含まれる必要がある可能性がある相対的符号化パラメータ値を、単一の符号化されたブロック中に示すことが可能でない場合があるので、これは、常に可能であるわけではないことを、出願人は認識した。)
上の構成は、好適な符号化パラメータ値を示すように、第1のグループ中の、データブロックを常に設定するように、単に動作することができる(1つの好ましい実施形態では、これが、行われることである)。したがって、例えば、プロセスは、所望の符号化パラメータ値を示すために、「第1の」グループの最後のブロックを常に符号化することができる。
しかし、それは、ブロックの第1のグループ中のデータブロックが、任意の事象において、第1のグループ中のデータブロックによって示されるべき、所望の符号化パラメータ値を使用して符号化される(したがって示す)ことになる場合であり得ることを、出願人は認識した。そのような場合、第1のグループ中のデータブロックの符号化バージョンは、ブロックの第1のグループ中のデータブロックに、それを行うことをさらに「強制する」必要なしに、好適な符号化パラメータ値を既に示すことになる。
したがって、好ましい実施形態では、第1のグループ中のデータブロックが、好適な符号化パラメータ値を既に示しているのかどうかが最初に検査され、第1のグループ中のデータブロックが好適な符号化パラメータ値を既に示していない場合にのみ、好適な符号化パラメータ値を示すように設定された第1のグループ中のデータブロックである。
この実施形態では、「確実化する」プロセスは、したがって、第1のグループ中のデータブロックについての符号化パラメータ値が、(例えば、第2のグループ中の、第1のデータブロックについての相対的符号化パラメータ値を使用するとき)グループの対のうちの第2のグループ中の、例えば第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させるかどうかを決定することを(例えば、決定ステージにおいて)含むことになり、第1のグループ中のデータブロックについての符号化パラメータ値が、第2のグループ中の、例えば第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させない場合、好適な符号化パラメータ値を示すように、第1のグループ中のデータブロックを設定する(第1のグループ中のデータブロックについての符号化パラメータ値が、第2のグループ中の、例えば第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させる場合、好適な符号化パラメータ値を示すように、第1のグループ中の(さらなる)データブロックを設定しない)。
決定は、例えば、ブロックの第1のグループが符号化されているとき、使用されている符号化パラメータ値を追跡すること、および、これが、ブロックの第2のグループの、例えば第1のブロックで使用するための所望の値であるとき(またその場合)に決定することによって、任意の好適なまたは所望の方法で行うことができる。
したがって、好ましい実施形態では、確実化するプロセスは、第1のグループ中のデータブロックが、第2のグループ中の、例えば第1のデータブロックについて、決定された符号化パラメータ値をデコーダに導出させる符号化パラメータ値を示すことを確実化するように、第1のグループ中のデータブロックについての符号化パラメータ値を、条件付きで変更することを含む。第1のグループ中のデータブロックについての符号化パラメータ値を条件付きで変更することは、例えば、符号化プロセス自体の期間、または後処理動作として符号化プロセスと別個に、任意の好適な所望の方法で実装することができる。
上記から、本発明の好ましい実施形態では、少なくとも、符号化済みデータブロックの、第1および第2のグループの所与の対について、対の第2のグループ中の第1のデータブロックについて使用する符号化パラメータ値が決定されることが理解されよう。データブロックの第2のグループ中のその第1の符号化済みブロック、および(対の)符号化済みデータブロックの先行する第1のグループ中の、符号化済みブロック(例えば、第1の、または最後のブロック)のそれぞれは、各々の相対的符号化パラメータ値を示すことになり、2つの相対的符号化パラメータ値は、それらが一緒に、ブロックの第2のグループ中の第1のブロックについて、決定された(選択された)符号化パラメータ値を(ブロックの系列中の先行するブロックによって既に使用された、または示された、任意の先行する符号化パラメータ値とともに)デコーダに導出させるように、選択および設定される。
さらに、ブロックの第1のグループ中の符号化済みブロックにより示される好適な相対的符号化パラメータ値は、対応する符号化パラメータ値を使用して符号化されているそのグループ中のブロックの結果として、または、好適な相対的符号化パラメータ値を示すように(また好ましくは、所望の対応する符号化パラメータ値を使用するように)、ブロックの第1のグループの符号化済みブロックを「強制すること」のいずれかによって、存在することができる。
データブロックの第1および第2のグループの所与の対の、データブロックの第1のグループ中の所与の符号化済みデータブロックが、第2のグループ中の、例えば、第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダが正しく導出することを確実化するように、特定の符号化パラメータ値をデコーダに示すように設定される場合、データブロックの第1のグループ中の、データブロックを符号化するために使用されるべき符号化タイプ(ブロック、例えばマクロブロックのタイプ)は、所望の符号化パラメータ値(例えば、相対的符号化パラメータ値)が、符号化済みブロック中に示されることを可能にし、それは、単純に行うことができる。
しかし、いくつかの場合では、符号化パラメータ値を示すように、第1のグループ中の符号化済みデータブロックを設定することが所望される場合、ブロックについて(元々)意図された符号化タイプ(ブロックタイプ)は、好適な符号化パラメータ値を示すことをサポートしない可能性があることを、出願人は認識した。
例えば、いくつかの符号化ブロックタイプは、例えば、それらが「相対的符号化パラメータ値」フィールドを含まないので、デコーダに示されるべき符号化パラメータ値の中の変化を許容しないことを、出願人は認識した。
例えば、多くのビデオ符号化フォーマットは、対象となっているブロックが従属する、先行する参照ブロックに対して変化しなかったデータブロック(例えば、(0,0)の動きベクトルを有するブロックおよび0残余)が、非常に効率的な形で符号化されることを可能にしており、このことが、他の符号化パラメータ値をデコーダに示すことを許さない。典型的には、そのようなデータブロックは、「完全な」符号化タイプで使用されるものに対し、シンタックス要素の削減された組、またいくつかの場合では異なる組を使用する符号化タイプを使用して符号化され、ここで、シンタックス要素の異なる組は、デコーダに符号化パラメータ値を示すことをサポートできるシンタックス要素を含まない。例えば、H.264ビデオ符号化フォーマットでは、そのようなデータブロック(またはそのようなデータブロックの系列)は、「スキップ」シンタックス要素を使用して、「スキップ」ブロックタイプとして符号化され、ここで、典型的には、スキップ指示以外に情報は符号化されない。(他の符号化フォーマットは、等価なシンタックス要素を有する。)
いわゆる「スキップブロック」は、デコーダに符号化パラメータ値を示すことができない。代わりに、デコーダは、スキップ指示を読み取り、これに応じてデコーダは、スキップ指示が関係するブロックについてのデータとして、ブロックの系列中の以前のブロックからの、符号化されたデータを使用することになる。このことは、好適な符号化パラメータ値に設定することを必要とするデータブロックが、例えば「スキップ」ブロックである構成において、符号化の問題をもたらす可能性があることを、出願人は認識した。
好適な符号化パラメータ値に設定することを必要とするデータブロックが、例えばスキップブロックである場合、いくつかの場合では、系列中の先行するデータブロックが好適な符号化パラメータ値を示すように設定することによって、第2のグループ中の、例えば第1のデータブロックについて、決定された符号化パラメータ値をデコーダに導出させることになる、符号化パラメータ値を示す第1のグループ中のデータブロックを確実化することが、依然として可能となる。しかし、これは、(例えば、グループ中の各データブロックが「スキップ」ブロックである場合に)常に望ましいわけではない可能性があり、または常に可能なわけではない可能性さえある。
したがって、特に好ましい実施形態では、第2のグループの、例えば第1の符号化済みブロックについて、正しく決定された符号化パラメータ値をデコーダに導出させることになる符号化パラメータ値を示すように、第1のグループ中の符号化済みデータブロックを設定するプロセスは、必要に応じて、ブロックの第2のグループ中の、例えば第1のブロックで使用するため、符号化パラメータ値を示すことが必要でない場合、さもなければブロックについて使用されることになる符号化タイプとは異なる、かつ/または変更される符号化タイプを使用して、そのように設定されるべきである、第1のグループ中のブロックを符号化することを含むことができ、好ましくは含む。
相応して、第2のグループ中の、例えば第1のデータブロックについての符号化パラメータ値が、後処理で好適な符号化パラメータ値に設定される場合、特に好ましい実施形態では、設定するプロセスは、必要な場合、符号化パラメータ値を示すことが必要でない場合に、さもなければブロックについて使用されることになる符号化タイプとは異なる、かつ/または変更される符号化タイプを使用して、そのように設定されるべきである、第2のグループ中の、例えば第1のブロックを符号化することを含むことができ、好ましくは含む。
例えば、好ましくは、上記の実施形態は、符号化済みブロックが所望の符号化パラメータ値をデコーダに伝えることを可能にするために、さもなければ「スキップ」ブロックとして符号化されることになるブロックを、「ノン-スキップ」ブロックとして符号化することを含むことができ、好ましくは含む。
これらの構成では、符号化済みデータブロックについての符号化タイプが、さもなければブロックについて使用されることになる符号化タイプから変更され、好ましくは、使用される代替符号化タイプは、所望の符号化パラメータ値を示すことが可能であるのに十分(例えば、相対的符号化パラメータ値を含むことができる符号化ブロックタイプ)であるが、さもなければブロックを効率的に符号化し、好ましくはさもなければできるだけ効率的に符号化する(例えば、好ましくは、できるだけ「スキップ」符号化に近いが、依然として、所望の符号化パラメータ値をデコーダに示すことが可能である)符号化タイプである。したがって、例えば可能な場合、ブロックについての「完全な」符号化タイプを単に使用するよりも、符号化パラメータ値をデコーダに伝えることができる「完全な」符号化タイプでない符号化タイプが、好ましくは使用される。
好ましい実施形態では、使用される代替符号化タイプは、さもなければブロックについて使用されることになるものと異なるシンタックス要素の組を使用するものであり、ここで、シンタックス要素の異なる組は、好適な符号化パラメータ値を示すことをサポートできる、少なくとも1つのシンタックス要素を含む。
したがって、好ましい実施形態では、第1のグループ中のデータブロックが好適な符号化パラメータ値を示すことを確実化するプロセスは、(変化した)符号化パラメータ値を示す、符号化済みデータブロックを提供するために、「スキップ」ブロックを「ノン-スキップされた」ものであると強制することを含むことができ、含む。これは、例えば、例えば決定ステージにおいて、好適な符号化パラメータ値へ設定することを必要とする第1のグループ中のデータブロックが、実際にはスキップブロックであることが決定される場合に、行うことができる。
本発明の上記の実施形態は、主に、所与のグループについて、第1のデータブロックの符号化バージョンに、相対的符号化パラメータ値を含むことを参照して記載されたが、こうした状況である必要はない。
上に記載された技法および特徴は、データブロックの第2のグループ中の、第1の1つまたは複数のデータブロックが、データブロックの符号化バージョン中に相対的符号化パラメータ値を含むことをサポートしない符号化タイプを使用して、符号化される。これは、例えば、所与のグループの第1のデータブロックが、スキップブロックとして符号化することができる(符号化される)場合となる。
この場合、所与のグループ中の第1のデータブロックが、スキップブロックとして符号化されるように決定される場合、符号化パラメータ値は、依然としてそのブロックについて決定されるが、ブロックの符号化バージョンが、その決定された符号化パラメータ値に関する情報を含まないことになる。代わりに、符号化は、スキップ指示となることになる。
この場合、デコーダは、スキップ指示に応答して、スキップ指示が関係するブロックを復号するために使用されるべき符号化パラメータ値として、ブロックの系列中の以前のブロックについての符号化パラメータ値を使用することになる。したがって、第2のグループ中の、例えば第1のデータブロックを復号するとき、例えば直接先行するグループ(すなわち、第1のグループ)中の符号化済みデータブロックが、第2のグループ中の、例えば第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させることになる、符号化パラメータ値を示すことを確実化することが、依然として必要である。
この場合、デコーダが、第2のグループ中の、例えば第1の符号化済みデータブロック(スキップブロック)を処理し始める前に、デコーダに示される最後の符号化パラメータ値が、第2のグループ中の、例えば第1の符号化済みデータブロックについての、決定された符号化パラメータ値となることが、確実化されるべきである。例えば、第1のグループ中の符号化済みデータブロックは、第2のグループ中の、第1の符号化済みデータブロックについて、決定された符号化パラメータ値を示すように設定することができる(好ましい実施形態では、これが、行われることである)。
これは、必要な場合、ブロックの第2のグループ中の、例えば第1のブロックで使用するための符号化パラメータ値を示すことが必要でない場合、さもなければブロックについて使用されることになる符号化パラメータ値(すなわち、例えば、データブロックの内容および所望のビットレートに単純に基づいて、エンコーダが、ブロックについて使用した値)と異なる、かつ/または変更された符号化パラメータ値を使用する第1のグループ中のデータブロックを符号化することを含むことができ、好ましい実施形態では含む。デコーダに情報を伝えるために、ビデオデータブロックについて、決定された符号化タイプを変えるというアイデアは、それ自体、新規で発明性がある可能性があることを、出願人は信じる。
したがって、本発明の第3の態様によれば、符号化されていないデータブロックの系列を含むビデオ画像データを、ビデオ符号化フォーマットで、符号化済みデータブロックの系列に符号化する方法が提供され、方法は、
系列中の少なくとも1つのデータブロックについて、
デコーダに伝えられるべき情報を、生成後の対応する符号化済みデータブロック中に含めることを可能にするために、データブロックを符号化するのに使用されるべき、異なる符号化ブロックタイプを選択するステップ
を含む。
本発明の第4の態様によれば、符号化されていないデータブロックの系列を含むビデオ画像データを、ビデオ符号化フォーマットで、符号化済みデータブロックの系列に符号化する装置が提供され、装置は、
デコーダに伝えられるべき情報を、生成後の対応する符号化済みデータブロック中に含めるために、系列中のデータブロックを符号化するのに使用されるべき、異なる符号化ブロックタイプを選択する
ように構成される処理回路を備える。
当業者には理解されるように、本発明のこれらの態様および実施形態は、本明細書に記載される本発明の特徴のうちの、任意の1つもしくは複数または全てを適宜含むことができ、好ましくは含む。したがって、例えば、少なくとも1つのデータブロックについての符号化タイプは、好ましくは、「スキップ」ブロックとして符号化済みブロックから、「ノン-スキップ」ブロックとして符号化済みブロックに変えられ、かつ/または、デコーダに伝えられるべき情報は、好ましくは、符号化パラメータの値の変化、例えば、量子化パラメータの値の変化である。
ブロックについて異なる符号化タイプが選択された後で、ブロックは、デコーダに情報を伝えるように、選択された符号化タイプとして符号化されるべきであり、好ましくは符号化される。
本発明のこれらの態様および実施形態の好ましい実施形態では、データブロックの符号化は、対応する符号化済みデータブロックを生成するため符号化されていないデータブロックを符号化するとき使用する、符号化ブロックタイプを決定することと、
デコーダに伝えられるべき情報を、生成後の対応する符号化済みデータブロック中に含めるために、符号化されていないデータブロックについて、決定された符号化ブロックタイプと異なる符号化ブロックタイプを使用して、対応する符号化済みデータブロックを生成するために、符号化されていないデータブロックを符号化することと
を含む。
符号化されていないデータブロックについての符号化タイプの変更(決定された符号化ブロックタイプに対して異なる符号化ブロックタイプの使用)は、好ましくは、デコーダに、好ましくは特定の、好ましくは選択された情報を伝える必要があることを識別することに応答して、かつ/または、符号化されていないデータブロックについて最初に決定された符号化ブロックタイプが、デコーダに必要な情報を伝えることができないことを識別することに応答してである。
したがって、本発明のこれらの態様および実施形態は、データブロックについての最初の符号化ブロックタイプが、デコーダに所望の情報を伝えることが可能であるかどうかを決定することと、
データブロックについての最初の符号化ブロックタイプが、デコーダに、所望の情報を伝えることが可能でないことが判定される場合、
デコーダに所望の情報を伝えることができる、ブロックを符号化するための、異なる符号化ブロックタイプを選択および使用することと
を好ましくは含む。
符号化されていないデータブロックを符号化するとき使用する、ブロック符号化タイプを決定するように構成されるモジュールをエンコーダが有する場合、好ましい実施形態では、符号化タイプの(潜在的な)変更は、この「決定」ステージに同様に実装される。これは、余分のハードウェアおよびソフトウェアのコードを必要としない可能性がある。
好ましい実施形態では、異なる符号化ブロックタイプが、さもなければブロックについて使用されることになるものと異なるシンタックス要素の組を使用し、ここで、異なるシンタックス要素の組は、デコーダに所望の情報を示すことをサポートできる、少なくとも1つのシンタックス要素を含む。
本発明は、主に、符号化されていないデータブロックの所与の系列(例えば、符号化されるべきビデオフレームを表す)の処理を参照して上で記載されてきたが、当業者に理解されるように、本発明は、符号化されるべきビデオフレームの系列中の、連続するフレーム(各フレーム)へと符号化されるべき、例えばまた好ましくは符号化される、データブロックの連続する系列に適用することができ、好ましい実施形態では適用される。
本発明は、好適に構成されるマイクロプロセッサベースのシステムなど、任意の好適なシステムで実装することができる。一実施形態では、本発明は、コンピュータおよび/またはマイクロプロセッサベースのシステムで実装される。
システムは、例えば、1つまたは複数の符号化ユニット((上で議論されたような)1つまたは複数のビデオ符号化ユニット、(符号化またはそれ以外を実施するための)好適な1つまたは複数のプロセッサ、および(符号化されていないビデオデータおよび結果として生じる符号化済みデータブロックなど)必要とされるデータを記憶するためのメモリ)などといった、本発明の様式で動作を可能にするための、任意の好適な所望の構成要素または要素を含むことができる。
ビデオデータを符号化するとき使用される実際の符号化フォーマットは、例えば、MPEGおよびH.264などといった、(相対値を使用して符号化されたデータストリーム中で示される符号化パラメータを少なくとも使用する)任意の好適な所望のそのようなフォーマットであってよい。
特に好ましい実施形態では、本発明は、符号化プロセスの出力を、(ここで、符号化するデコーダにとって好適である)所定のビデオ符号化フォーマット中の単一の連続ビットストリームに構成するステップをさらに含む。これは、例えば、各々の符号化ユニットの出力を、ビットレベルまたはバイトレベルで、単一の連続ビットストリームに「スティッチする」、好適な「スティッチ」エンジンによって、実施することができる。
この動作は、符号化されていないデータブロックの、いくつかの第1のグループおよび第2のグループが符号化された後で、バルク動作として実施することができるが、一実施形態では、この動作は、データブロックの符号化されたグループが生成されると実施される。言い換えれば、例えばスティッチエンジンの動作は、好ましくは、符号化されていないデータブロックの2つのグループが符号化され、符号化ユニットにより出力されたらすぐに、これらの結果が、単一の連続ビットストリーム(など)に一緒にスティッチされるように、符号化ユニットの動作と統合される。
符号化済みデータブロック(符号化されたデータのビットストリーム)は、ここで、例えば、好適に記憶されることにより、かつ/または符号化するためデコーダに伝送されることにより、所望に応じてさらなる使用のために、取り扱うことができる。デコーダは、ここで続けて、符号化されたデータを復号するときに使用するため、好適な符号化パラメータ値を導出するために、符号化されたデータに含まれる相対的符号化パラメータ値を使用して、通常の様式で、符号化されたビデオデータを復号することができる。
本発明の様々な機能は、任意の所望の、好適な様式で実行することができる。例えば、本発明の機能は、所望に応じて、ハードウェアまたはソフトウェアで実装することができる。したがって、例えば、別段の指示がない限り、本発明の様々な機能要素および「手段」は、様々な機能などを実施することが可能である、好適な1つまたは複数のプロセッサ、1つまたは複数のコントローラ、機能ユニット、回路、処理ロジック、マイクロプロセッサ装置など、適切な専用ハードウェア要素、および/または、所望の様式で動作するようにプログラムすることができるプログラム可能ハードウェア要素を含むことができる。
ここで、当業者が理解するように、本発明の様々な機能などは、所与のプロセッサ上で繰り返され、かつ/または並列に実行され得ることにも留意されたい。同じように、様々な処理ステージは、所望であれば、処理回路などを共有することができる。
上に議論された特定の機能を実行するために必要な全てのハードウェアを条件として、ビデオプロセッサは、さもなければビデオプロセッサが含む、通常の機能ユニットの、任意の1つもしくは複数または全てを含むことができる。
本発明の記載された実施形態の全てが、本明細書に記載された特徴の、任意の1つまたは複数または全てを適宜含むことができ、一実施形態では含むことを、当業者は、やはり理解されよう。
本発明による方法は、例えばコンピュータプログラムといったソフトウェアを少なくとも部分的に使用して実装することができる。ここで、別の実施形態から見たときに、本発明は、データプロセッサ上にインストールされると、本明細書に記載される方法を実行するように特に適合されるコンピュータソフトウェア、プログラム要素がデータプロセッサ上で実行されると、本明細書に記載される方法を実施するためのコンピュータソフトウェアコードの部分を含む、コンピュータプログラム要素、およびプログラムがデータ処理システム上で実行すると、本明細書に記載される1つまたは複数の方法の全てのステップを実施するように適合されるコードを含むコンピュータプログラムを提供することを理解されよう。データプロセッサは、マイクロプロセッサシステム、プログラム可能なFPGA(フィールドプログラマブルゲートアレイ)などであってよい。
本発明は、グラフィックプロセッサ、レンダラ、またはデータプロセッサを備えるマイクロプロセッサシステムを動作させるために使用されるとき、前記データプロセッサ、前記プロセッサ、レンダラまたはシステムと連携して本発明の方法のステップを実行させる、そのようなソフトウェアを含むコンピュータソフトウェアキャリアにも展開する。そのようなコンピュータソフトウェアキャリアは、ROMチップ、CD ROM、RAM、フラッシュメモリ、もしくはディスクなどの物理的な記憶媒体であってよく、または、ワイヤ上の電気信号、光信号もしくは衛星などへの電波信号などの信号であってよい。
本発明の方法の全てのステップがコンピュータソフトウェアによって実行される必要はなく、したがって、別の広い実施形態から、本明細書に記載される方法のステップの少なくとも1つを実行するため、コンピュータソフトウェアキャリア上にインストールされる、コンピュータソフトウェアおよびそのようなソフトウェアを本発明が提供することを、さらに理解されよう。
本発明は、したがって、コンピュータシステムで使用するためのコンピュータプログラム製品として好適に具現化することができる。そのような実装は、例えば、ディスケット、CD ROM、ROM、RAM、フラッシュメモリ、またはハードディスクといった、コンピュータ可読媒体などの、有形の非一時的な媒体上に固定される一連のコンピュータ可読命令を含むことができる。それは限定するものではないが、光もしくはアナログ通信線を含む、有形媒体上に、または限定するものではないが、マイクロ波、赤外線、もしくは他の伝送技術を含む、無線技法を使用する無形で、モデムもしくは他のインターフェイスデバイスを介して、コンピュータシステムに伝送可能な一連のコンピュータ可読命令をやはり含むことができる。一連のコンピュータ可読命令は、本明細書に以前記載された機能性の全てまたは部分を具現化する。
そのようなコンピュータ可読命令を、多くのコンピュータアーキテクチャまたはオペレーティングシステムで使用するため、いくつかのプログラミング言語で書くことができるということを、当業者は理解されよう。さらに、そのような命令は、限定するものではないが、半導体、磁気、または光学的なものを含む、現在および将来の、任意のメモリ技術を使用して記憶すること、または限定するものではないが、光学的、赤外線、またはマイクロ波を含む、現在および将来の、任意の通信技術を使用して伝送することができる。そのようなコンピュータプログラム製品が、例えばパッケージソフトウェアといった、印刷文書もしくは電子文書を添付した可搬媒体として分配すること、例えばシステムROMもしくは固定ディスク上で、コンピュータシステムにプリロードすること、または、例えばインターネットもしくはワールドワイドウェブといったネットワークを介して、サーバもしくは電子掲示板から分配することが可能であることが意図される。
本発明のいくつかの好ましい実施形態は、ここで、例示のためだけに、添付図面を参照して記載されることになる。
多くの符号化済みブロックが相対的QP値を含む、MPEGフォーマットにおける、画素の符号化されたブロックの系列を概略的に図示する図である。 符号化することができる画像の、2つの行を概略的に図示する図である。 互いに並列に動作することになる別個の符号化ユニットに、画像の2つの行をどのように割り当てることができるのかを概略的に図示する図である。 ビデオ画像データのフレームが2つの符号化ユニット間でどのように割り当てることができるのかについて、および2つの符号化ユニットの並列動作を可能にするために従属関係が壊れなければならない画素の特定のブロックについて概略的に図示する図である。 本発明の一実施形態における、ビデオ符号化装置によって行われるステップを概略的に図示する図である。 本発明の一実施形態による、ビデオ符号化装置を概略的に図示する図である。
適用可能な場合、同様の参照番号が、同様の特徴について、図面にわたって使用される。
添付図面を参照して本明細書に記載される実施形態は、符号化されていない画素データブロックが、H.264などのMPEGビデオ符号化フォーマットのうちの1つに従って符号化され、使用される符号化パラメータが量子化パラメータ(QP)である、本発明の例示的な実装である。
図1は、画素の、符号化されたブロックの系列を概略的に図示する。系列中の画素の第1のブロックは、単独で符号化され、その符号化パラメータ値(例えば、この例では、量子化パラメータQP)は、データブロック中に示される(この例では、絶対項で符号化されるが、これは本質的ではない)。しかし、画素の以下のブロックは、画素の先行するブロックを参照して各々が符号化され、ここで、画素の各ブロックについてのQP値は、以前のブロックの値を参照して相対値として従属的に符号化される。ビデオ画像データの全フレーム(またはその部分)は、そのような系列として符号化することができ、ブロックの系列は、フレームを通して、なじみのあるラスタスキャンパターン(すなわち、デコーダがデータブロックを処理することになる順序)に従う。
図1に概略的に図示されるQP従属性の連続的な性質は、符号化タスクの並列化についての難点を呈示する。というのは、画素の、任意の所与の従属的に符号化されたブロックを符号化するために、原理的には、画素の先行するブロックの各々が既に符号化されていなければならないからである。
図2は、ビデオ画像データのフレームの2つの行10を概略的に図示する。当業者にはなじみがあるように、画素の所与のブロックの符号化は、通常は、動きベクトルおよび残余値などを符号化すること、ならびにブロックについて使用されるべきQP値を含むことになる。第2の行中の第1のブロック30が、第1の行中の最後のブロック20に対して従属的に符号化される場合(点線の矢印により示される)(これがもたらすことになる、最終的な符号化された画像のデータサイズが、結果として減少する)、既存の符号化システムでは、ブロック20は、ブロック30の前に符号化されなければならない。さらに、ブロック20自体が従属的に符号化されたブロックである場合、従属関係の連鎖は、第1の行中の画素の第1のブロック40へと、ずっと戻ってつながる。
このことは、2つの行が並列に符号化されることが望まれるときに、難点となる。これは、ここで、図3に関してさらに記載されることになる。
図3は、互いに並列に動作することになる、別個の符号化ユニット(第1および第2の符号化ユニット)に割り当てられた、画素の符号化されていないブロックの2つの行を図示する。当業界で理解されるように、符号化プロセス自体は、典型的には、ブロックの第1の行と第2の行との間に挿入されることになり、例えば、行1の最初の2つのブロックが最初に処理され、行2の第1のブロック、行1の第3のブロック、行2の第2のブロックなどなどと続く。(これを強調するために、図3中の各ブロックの番号付けは、ブロックが処理される順序を示す。)
(ここで、図3中に示される符号化順序は、単に例示のためであることを理解されよう。従属関係を処理する目的で、並列エンコーダは、上で議論された順序で符号化する連続的なエンコーダと同様にふるまうことになる(したがって、ブロックの符号化が開始される順序は、おおよそ示されるようになる)が、ブロックの処理は、もちろん並列となる。)
図3に見られるように、行2の第1のブロック(ブロック2)は、行1のブロック3、5、7、9、および11の前に符号化され、このことは、第2の符号化ユニットは、行2のブロック2を符号化するときに含む、正しいQP値を知らないことを意味する(というのは、ブロック2について使用する正しいQP値は、まだ確立されていない、行1の最後のブロックについて使用されるQP値に従属することになるからである)。
しかし、これらの従属関係は、ビデオデータブロックの、第1および第2の行の符号化の並列化を妨げる必要がないことを、出願人は理解した。
本実施形態では、並列化は、行1の最後のブロックが符号化される前に、行2の第1のデータブロックについて使用されるべきQP値を決定するために、符号化パラメータ値決定動作を実施すること、次いで、第2の行中の第1のデータブロックを復号するとき、第1の行中の符号化済みデータブロックが、第2の行中の第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに使用させることになる、符号化パラメータ値を示すことを確実化することによって達成される。必要な場合、これは、例えば符号化モードを例えばスキップモードから「通常」モードに変えることによって、行1中の符号化済みデータブロックのうちの1つを変更することを含む。
(符号化パラメータ値決定動作が、第1の行中の画素の、第1の符号化されていないブロックを符号化するとき使用するQP値を決定するため、第1の行中の、画素の第1の符号化されていないブロックに対して実施することも可能であることを、理解されよう。)
図3で企図される実施形態では、符号化パラメータ値決定動作は、前処理ステップとして実施され、ここで、ビデオ符号化装置は、一方の符号化ユニットが行1を取り扱い、他方の符号化ユニットが行2を取り扱う、2つの符号化ユニットによって実行される主な符号化プロセスを開始する前に、ブロック2(図2ではブロック30)について使用されるべきQP値を最初に決定する。行2を符号化する符号化ユニットは、次いで、相対的QP値を使用してブロック2に対して、ブロック4、6、8…を符号化することができ、一方、他の符号化ユニットは、行1を取り扱う。
第2の行中の第1のブロックについて決定されたQP値を使用して、第2の行中の第1のデータブロックを符号化する第2の符号化ユニットと同様に、それは、対象となっているブロックを符号化するために使用される符号化パラメータ(QP)値を決定するために、デコーダによって使用されることになる、符号化済みデータブロック中の、好適な相対的符号化パラメータ値も含むことにある。
この相対的符号化パラメータ(QP)値は、任意の所望の好適な値であってよい。というのは、第2のグループ中の第1のデータブロックを復号するとき、第1のグループ中の符号化済みデータブロックが、第2のグループ中の第1の符号化済みデータブロックについて決定された符号化パラメータ(QP)値をデコーダに導出させる、符号化パラメータ(QP)値を示すことを、プロセスが確実化することになるからである。したがって、第2のグループの第1の符号化済みデータブロック中に、どんな相対的符号化パラメータ値が含まれても、プロセスは、対象となっているブロックを復号するときデコーダが決定された符号化パラメータ(QP)値を使用することになることを確実化するように、符号化されたブロックの第1のグループ中のブロックを構成することになる(このことは、下でさらに議論されることになる)。
図2および図3は、符号化されていないビデオ画像データのグループの単一の対を示すが、本明細書に記載される原理は、例えば、次いで本発明の様式で処理されることになる、符号化されていないデータブロックの、第1および第2のグループの対であるものとして、フレームの行の各それぞれの対を扱うことによって、ビデオ画像データの全フレームにわたって適用することができる。
図4は、これを概略的に図示し、符号化されていないビデオ画像データのフレームの行を、例えば、2つの符号化ユニット間に割り当てられるべき、ビデオデータの、第1および第2のグループ(行)のそれぞれの対にどのように分割することができるのかを示す(符号化ユニットは、フレームの交互の行に割り当てられる)。
図4に見られるように、フレームは、画素ブロックの第1および第2の行の複数の対に分割される。第1の符号化ユニットが、複数の第1の行を符号化してよく、第2の符号化ユニットが、複数の第2の行に符号化プロセスを実施するように構成される。(符号化されるべき画素のブロックの細分化が、ビデオ画像データのフレーム中の画素のブロックの行に基づいて実施されるように示されるが、この様式で符号化プロセスを並列化する必要はないことを、理解されよう。例えば、画像フレーム中の画素のブロックは、符号化ユニットへの割当てについて、画素の符号化されていないブロックの、第1および第2のグループの対へと任意に細分化することができるが、好ましくは、ブロックは、論理的に、かつ/または使用される符号化フォーマットに従って細分化されることになる。)
図4は、行中のQP値の従属符号化を可能にするために、符号化パラメータ(QP)値決定動作が実行されることになる、各行中の画素の第1のブロックの組160も示す。図4に図示される例では、符号化パラメータ(QP)値決定動作が実行されることになる、画素の第1のブロックの組160は、フレームの各行中の画素の第1のブロックを含む。しかし、他の構成がもちろん可能である。いくつかの構成では、符号化パラメータ値決定動作は、複数の第2の行の各々の中の第1のデータブロックについてのみ実行されることになる。
図4は、この例では、後続の行中の画素の第1のブロックについて、決定されたQP(符号化パラメータ)値をデコーダに使用させることになる、QP値を示すことになる、行中の画素の最後のブロックの組150も示す。デコーダが、量子化パラメータの変化を実装する必要がある画素の後続するブロック(行)がないので、画素の最後のブロックの組150が、最後の行中の画素の最後のブロックを含まないことに留意されたい。
図4に概略的に図示されたものなどのビデオ画像データのフレームを取り扱うとき、2つの符号化ユニットは、組160中の画素のブロックの各々についての符号化パラメータ(例えば、QP)値が前もって決定される、前処理動作を実施するように構成することができる。あるいは、組160中の画素のブロックの各々についての符号化パラメータ(例えば、QP)値が、2つの符号化ユニットによって符号化されている行の各対に先行するステップとして、オンザフライで決定することができる。典型的には、2つの符号化ユニットは、この動作を共有するように構成されるが、代替実施形態では、それは、2つの符号化ユニットのうちの選択されたものによって実施することができる。
符号化されていないビデオ画像データのフレームの行が、任意の数の符号化ユニットによって取り扱うことができることを理解されよう。原理的には、任意のそのような並べ替えが可能であり、ビデオ画像データの各行について1つの符号化ユニットを提供することにより、ビデオ画像データのフレームの符号化の、まさに完全な並列化を達成することができる。図4に示される例では、フレームの行は、繰り返しの交互のパターンで、符号化ユニットに割り当てられる。しかし、ビデオ符号化装置は、例えば、符号化ユニットの可用性に依存して、各行を割り当てるように構成することも可能である。したがって、厳密な交互割当てに従う必要はない。
図5は、本発明の一実施形態による、ビデオ符号化装置によって実施されるステップの系列を概略的に図示する。
ステップ400において、符号化されるべきメモリ中のビデオ画像データバッファ中で、新しいフレームが利用可能である。この実施形態では、ビデオ符号化装置は、MPEG符号化を実施し、フレームの各行中の第1のブロックを符号化するとき使用されるべきQP値を符号化パラメータ値決定動作が決定する前処理動作を実行するように構成される。
ステップ405において、ビデオ符号化装置は、フレームの各行中の各第1のブロックについて、そのブロックのために使用されるべき絶対量子化パラメータQP値を決定する。
ステップ405におけるQP値決定動作は、そのプロセスにとっての、任意の所望の好適な方法を使用することができる。例えば、QP値決定動作は、符号化されているフレームから、ブロックの左手のカラムを読み込むこと、およびブロックの内容に基づいて、例えばブロックの決定された複雑さおよび所望の圧縮レート(または帯域)に基づいて、ブロックの各々で使用されるべきQP値を決定することを含むことができる。または、符号化パラメータ値決定動作は、以前に符号化されたフレーム中の対応するブロックの内容に基づいて、ブロックの各々で使用されるべきQP値を決定することを含むことができる。他の実施形態では、符号化パラメータ値決定動作は、現在のブロックおよび以前に符号化されたフレーム中の対応するブロックの両方に基づいて、QP値を決定することを含むことができる。
(必要な場合、フレームの始めに使用されるべき「ベースの」QP値(別個のヘッダ中で符号化される「スライスQP」値)も決定することができる。)
決定されたQP値は、次いで、それらのブロックの各々を符号化するときに後で使用するために、ステップ410において、メモリに記憶される。
ステップ415において、連続する行の対の中にあるブロックが読み込まれ、ステップ420において、これらが並列に符号化される。ステップ420における符号化は、メモリ中に記憶された対応するQP値を使用して各行の第1のブロックを符号化すること、次いで、以前のブロックに従属するQP値を使用して、各行中の残りのブロックを符号化することを含む。各行中の第2および後続のブロックの符号化バージョンは、先行するブロックのQP値に対して規定された相対QP値を(必要な場合に)含むことになる。ステップ425において、符号化済みデータブロックは、ビデオ符号化装置の内部メモリ中に記憶される。
ステップ430において、例えば決定ステージにおいて、(符号化されている行の対の第2の行の第1のブロックについて、決定されたQP値をデコーダが使用することを確実化するために、)さらなる量子化パラメータ値の変化が必要であるかどうかが決定される。これは、この実施形態では、第2の行中の第1のデータブロックを復号するとき使用されるべきQP値を導出するため、第2の行中の第1の(符号化された)データブロックについての(データブロックに示される)相対的QP値を使用するとき、行の対の第1の行中の、最後の(符号化された)データブロックについての(データブロックに示される)QP値が、行の対の第2の行中の、第1の符号化済みデータブロックについて、決定されたQP値をデコーダに導出させるかどうかを決定することによって行われる。
この実施形態では、これは、第1の行中の最後の(符号化された)データブロックについての(データブロックに示される)QP値と、第2の行中の第1の(符号化された)データブロックについての(データブロックに示される)相対的QP値を加算することによって行われる。もちろん、他の構成が可能である。
合計が、第2の行中の第1のデータブロックについて決定されたQP値と等しい場合、第2の行中の第1の符号化済みデータブロックについて決定されたQP値をデコーダが導出すること、および第2の行中の第1のデータブロックを復号するとき、第2の行中の第1のデータブロックについて決定されたQP値をデコーダが使用するために、QP値の変化が必要ではないことが明らかである。この場合、符号化装置は、単純にステップ435に進む。
ステップ435において、符号化を必要とする、フレーム中のさらなる行が存在するかどうか判定される。存在する場合、フローは、ステップ415に戻る。符号化するさらなる行が存在しない場合、フローはステップ440に進み、そこにおいて、符号化された行は、例えばデコーダまたは記憶要素への伝送のために、単一のビットストリームへと組み合わされる(スティッチされる)。(ここで、ステップ440は別個に記載されるが、好ましい実施形態では、それは、ビデオ符号化装置のパイプライン動作に統合されるプロセスとして実装され、符号化された行は、それらが利用可能になるとすぐに一緒にスティッチされることに留意されたい。)
ステップ430において、行の対の第1の行中の、最後の(符号化された)データブロックについての(データブロックに示された)QP値が、(例えば、第1の行中の最後の(符号化された)データブロックについての(データブロックに示された)QP値と、第2の行中の第1の(符号化された)データブロックについての(データブロックに含まれた)相対的QP値の合計が、第2の行中の第1のデータブロックについて決定されたQP値と等しくないので、)行の対の第2の行中の、第1の符号化済みデータブロックについて決定されたQP値をデコーダに導出させないことが判定される場合、フローは、ステップ445に進む。
ステップ445において、エンコーダは、第2の行中の第1のデータブロックを復号するとき使用されるべきQP値を導出するため、第2の行中の第1の符号化済みデータブロックに含まれる相対的QP値を使用するとき、第2の行中の第1の符号化済みデータブロックについて決定されたQP値をデコーダに導出させることになるQP値を示すように、対の第1の行中の符号化済みデータブロックに強制する。
この例では、これは、第1の行中の最後の符号化済みデータブロックについて使用され、データブロックに示される、相対的QP値を、第2の行中の第1の符号化済みデータブロック中に含まれる相対的QP値と加算したとき、第2の行中の第1の符号化済みデータブロックについて決定されたQP値を与えることになる、ブロックについてのQP値を示すことになる値へと変更することによって達成される。
このプロセスは、(第2の行中の第1のデータブロックを復号するとき使用されるべき、正しいQP値を導出するために使用されるべき相対的QP値を示す必要がない場合、)第1の行中の最後の符号化済みデータブロックについての符号化ブロックタイプを、さもなければそのデータブロックについて使用されることになる符号化ブロックタイプから、第1の行中の最後のデータブロックの、符号化バージョンで、相対的QP値の指示を促進する、異なる符号化ブロックタイプに変えることまたは変更することも含むことができる。
例えば、デコーダ中のQP変化を促進するため、符号化プロセスは、行2の第1のブロックを復号するとき、行2の第1のブロックについて決定されたQP値をデコーダに使用させることになるQP値を示すために、「スキップ」ブロックから「スキップされない」へと強制することができる。
プロセスは、次いでステップ435に進む。
この例では、ステップ430および435が、行の対が符号化され終わった後に実施されるが、これは本質的ではない。他の実施形態では、ステップ430および435は、符号化プロセス自体の中に統合されるプロセスとして(ステップ420において)実装される。同様に、ステップ430および435は、例えば後処理動作として、全フレームの符号化が終了した後に実施することができる。
図5は、符号化プロセスの始めに、すなわち、ブロックの任意の行が読み込まれて符号化される前に実施される符号化パラメータ値決定動作を示すが、これが本質的ではないことが理解されることにも留意されたい。代替実施形態において、符号化パラメータ値決定動作は、オンザフライで、すなわち、ステップ415において、2つの連続行の対中の第1のブロックが読み込まれる限り、実施することができる。加えて、この例では、ブロックの2つの連続行の対は、読み込まれ符号化されるが、そうである必要はない。他の実施形態では、エンコーダは、利用可能な符号化ユニットの数に依存して、任意の数の連続行を読み込み符号化することができる。
図6は、一実施形態によるビデオ符号化装置を概略的に図示する。ビデオ符号化装置200は、それが受け取る、画素の符号化されていないブロックの2つのグループに、並列MPEG符号化を実施するように構成される。ビデオ符号化装置200は、第1の符号化ユニットおよび第2の符号化ユニットを備える。第1の符号化ユニットは、バッファ202、離散コサイン変換ユニット204、バッファ206、およびエンコーダ208によって、概略的に表される。同様に、第2の符号化ユニットは、バッファ212、離散コサイン変換ユニット214、バッファ216、およびエンコーダ218によって、概略的に表される。各符号化ユニットは、図が見やすいように、単に概略レベルで図示され、当業者は、MPEG符号化ユニットの詳細な構成になじみがあることを理解されよう。ビデオ符号化装置200は、より詳細に下で議論されるように、ビデオ符号化装置が動作されるように構成される特定の様式に依存して、装置の動作を調整するシステム制御ユニット220、小さいRAMまたは1つもしくは複数のレジスタにより提供することができる内部メモリ222も備える。
ビデオ符号化装置200は、システムバス230を介してメモリ240に接続される。メモリ240は、ビデオ符号化装置200によって符号化する用意ができている、画素の符号化されていないブロックの系列が記憶されるビデオ画像データバッファ242を含む。ビデオ符号化装置200は、ビデオ画像データバッファ242から画素の符号化されていないブロックを取り出し、それらをバッファ202および212の中に一時的に記憶する。一実施形態では、ビデオ符号化装置200は、1行ずつビデオ画像データを符号化するように構成され、符号化されるべきビデオ画像データの交互の行が、それぞれバッファ202および212に記憶される。各符号化ユニットは、パイプラインとして構成される。したがって、符号化されるべき画素のブロックは、バッファ202からDCTユニット204へと渡され、次いで、DCTユニット204で実施されたDCT動作の結果が画素の各ブロックについてバッファ206に記憶され、その後、エンコーダ208によって符号化が実施される。画素の各符号化されたブロックは、この1ブロックずつ、第1の符号化ユニット(202、204、206、208)によって生成され、メモリ240中の第1のエンコーダバッファ244に書き込まれる。同様の、1ブロックずつの符号化プロセスが、第2の符号化ユニット(212、214、216、218)によって実行され、第2の符号化ユニットによって生成された画素の符号化されたブロックは、メモリ240中の第2の符号化バッファ246の中に書き込まれる。
第1のエンコーダバッファ244および第2のエンコーダバッファ246の中に記憶される2つの符号化ユニットの出力は、スティッチエンジン250によって、単一の連続ビットストリームへと連結される。スティッチエンジン250は、点線によって図示されるように、ビデオ符号化装置200の部分を形成することができる。最後の単一の連続ビットストリームは、次いで、メモリ240の中の、符号化されたビデオ画像データバッファ248に記憶される。
上の例は、所与のグループ(行)についての、第1のデータブロックの符号化バージョン中の、相対的符号化パラメータ値を含むことを参照して記載されたが、こうした状況である必要はない。
符号化されるべきデータブロックの所与のグループ(行)中の第1のデータブロックが、例えば、第1のデータブロックがスキップブロックとして符号化される場合といった、データブロックの符号化バージョン中の相対的符号化パラメータ値を含むことをサポートしない符号化タイプを使用して符号化されることが、同様に可能である。
しかし、上記のように、そのような場合に、例えば、直接先行するグループ中の符号化済みデータブロックが、(所与のグループ中の第1のデータブロックを復号するために使用する、符号化パラメータ値を決定するため、先行するグループ中の符号化済みデータブロックについて、示された符号化パラメータ値を使用するとき)所与のグループ中の第1の符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させることになる、符号化パラメータ値を示すことが、依然として確実化される。例えば、直接先行するグループ中の符号化済みデータブロックは、所与のグループ中の第1の符号化済みデータブロックについて、決定された符号化パラメータ値を示すように設定することができる。
上記から、本発明は、少なくともその好ましい実施形態では、画像に属する画素のブロックの、2つのグループの並列符号化を実施し、一方、画像にわたって、動的量子化器圧縮レートの使用を促進する方法を提供することが理解されよう。
これは、本発明の好ましい実施形態では、少なくとも、符号化ユニットを分離するために、画像の画素ブロックの第1および第2のグループの対を割り当てること、および各対の少なくとも第2のグループの第1のブロック上に符号化パラメータ値決定動作を実施して、画素ブロックの第2のグループの第1のブロックについて使用されるべき量子化パラメータ値を決定することにより達成される。画像の正しい再構築のために、対の画素ブロックの第1のグルーブに属するブロックは、第2のグループの第1のブロックを復号するとき、決定されたQP値をデコーダが使用することを確実化することになる、QP値で符号化されることが確実化される。
10 行
20 ブロック
30 ブロック
40 ブロック
150 組
160 組
202 バッファ
206 バッファ
208 エントロピーエンコーダ
212 バッファ
216 バッファ
218 エントロピーエンコーダ
220 システム制御
222 内部メモリ/レジスタ
230 システムバス
240 メモリ
242 画像データ
244 第1のエンコーダバッファ
246 第2のエンコーダバッファ
248 符号化された画像データ
250 スティッチエンジン
260 DC係数
262 DC係数

Claims (25)

  1. ビデオ画像データの符号化されていないブロックの系列を、ビデオ符号化フォーマットで、符号化済みデータブロックの系列に符号化するステップを含む、前記ビデオ画像データを符号化する方法であって、
    符号化されていないデータブロックを符号化するとき、前記ビデオ符号化フォーマットが符号化パラメータを使用し、
    前記方法が、符号化されていないデータブロックの前記系列の、符号化されていないデータブロックの第1および第2のグループの少なくとも1つの対について、前記第1および第2のグループが、前記ビデオ画像データのビットストリーム順で、連続したデータブロックを含み、前記第2のグループの第1のブロックが、前記ビットストリーム順で、前記第1のグループの最後のブロックに続き、
    符号化済みデータブロックの第1のグループおよび第2のグループをそれぞれ生成するように、符号化されていないデータブロックの前記第1および第2のグループを符号化するステップを含み、
    符号化されていないデータブロックの前記第1および第2のグループを符号化する前記ステップが、
    前記第1のグループ中の前記データブロックの全てを符号化する前記ステップが終了する前に、前記第2のグループ中の符号化されていないデータブロックを符号化するために使用されるべき前記符号化パラメータの値を決定するステップと、
    前記決定された符号化パラメータ値を使用して、前記第2のグループ中の前記符号化されていないデータブロックを符号化するステップと、
    前記第1のグループ中の符号化済みデータブロックについて、示された符号化パラメータ値を使用して、前記符号化パラメータ値を決定し、前記第2のグループ中の前記データブロックを復号するために使用するとき、前記第2のグループ中の前記符号化済みデータブロックについて、前記決定された符号化パラメータ値をデコーダに導出させる前記符号化パラメータ値を、前記第1のグループ中の前記符号化済みデータブロックが示すことを確実化するステップと
    を含む、方法。
  2. 符号化されていないデータブロックの前記系列が、符号化されていないデータブロックの、第1および第2のグループの複数の対に分割され、処理される、請求項1に記載の方法。
  3. 符号化パラメータ値が、符号化されていないデータブロックの各ブロック中の、第1のデータブロックについて決定される、請求項2に記載の方法。
  4. 符号化されていないデータブロックの、第1および第2のグループの所与の対について、前記対の符号化されていないデータブロックの前記第1のグループおよび前記第2のグループを、少なくとも部分的に並列に符号化するステップを含む、請求項1から3のいずれか一項に記載の方法。
  5. 前記第2のグループ中の第1の符号化済みデータブロックの中に、前記第2のグループ中の第1のデータブロックを復号するために使用する、前記符号化パラメータ値を決定するためにデコーダによって使用されるべき相対的符号化パラメータ値を含めるステップをさらに含み、
    前記第1のグループ中の符号化済みデータブロックについて、示された符号化パラメータ値を使用して、前記符号化パラメータ値を決定し、前記第2のグループ中の前記第1のデータブロックを復号するために使用するとき、前記第2のグループ中の前記第1の符号化済みデータブロックについて、前記決定された符号化パラメータ値をデコーダに導出させる前記符号化パラメータ値を、前記第1のグループ中の前記符号化済みデータブロックが示すことを確実化するステップが、
    前記第2のグループ中の前記第1の符号化済みデータブロックの中に含まれる前記相対的符号化パラメータ値を使用して、符号化パラメータ値を決定し、前記第2のグループ中の前記第1のデータブロックを復号するために使用するとき、前記第2のグループ中の前記第1の符号化済みデータブロックについて、前記決定された符号化パラメータ値をデコーダに導出させる前記符号化パラメータ値を、前記第1のグループ中の前記符号化済みデータブロックが示すことを確実化するステップ
    を含む、請求項1から4のいずれか一項に記載の方法。
  6. 前記第1のグループ中の符号化済みデータブロックについて、示された符号化パラメータ値を使用して、前記符号化パラメータ値を決定し、前記第2のグループ中の前記データブロックを復号するために使用するとき、前記第2のグループ中の前記符号化済みデータブロックについて、前記決定された符号化パラメータ値をデコーダに導出させる符号化パラメータ値を、前記第1のグループ中の符号化済みデータブロックが示すことを確実化するステップが、
    前記第2のグループ中の前記データブロックを復号するとき、前記第2のグループ中の前記符号化済みデータブロックについて前記決定された符号化パラメータ値をデコーダに導出させるのに好適な符号化パラメータ値を決定するステップと、
    前記決定された好適な符号化パラメータ値を示すように、前記第1のグループ中のデータブロックを設定するステップと
    を含む、請求項1から5のいずれか一項に記載の方法。
  7. 前記決定された好適な符号化パラメータ値を示すように、前記第1のグループ中のデータブロックを設定するステップが、
    前記第2のグループ中の前記データブロックを復号するために使用する前記符号化パラメータ値を決定するとき、エンコーダが前記第1のグループ中の前記データブロックについて選択したであろう前記符号化パラメータ値が、グループの前記対の前記第2のグループ中の前記符号化済みデータブロックについて、前記決定された符号化パラメータ値を前記デコーダに導出させることになるかどうかを決定するステップと、
    この決定に基づいて、前記第1のグループ中の前記データブロックについての前記符号化パラメータ値を、前記ブロックについての前記決定された好適な符号化パラメータ値に条件付きで変更するステップと
    を含む、請求項6に記載の方法。
  8. 前記決定された好適な符号化パラメータ値を示すように、前記第1のグループ中のデータブロックを設定するステップが、
    前記データブロックを符号化するために使用されるべき符号化ブロックタイプが、符号化パラメータの前記値を、前記データブロックの符号化バージョン中に示すことを可能にするかどうかを決定するステップと、
    これがその場合でない可能性があることが決定される場合、前記データブロックの前記符号化バージョン中に示されるべき前記符号化パラメータ値を可能にする異なる符号化ブロックタイプを使用して、前記データブロックを符号化するステップと
    を含む、請求項6または7に記載の方法。
  9. 符号化されていないデータブロックの系列を含むビデオ画像データを、ビデオ符号化フォーマットで、符号化済みデータブロックの系列に符号化する方法であって、
    前記系列中の少なくとも1つのデータブロックについて、
    デコーダに伝えられるべき情報を、生成後の対応する符号化済みデータブロック中に含めることを可能にするために、前記データブロックを符号化するのに使用されるべき、異なる符号化ブロックタイプを選択するステップ
    を含む方法。
  10. デコーダに伝えられるべき情報を、前記符号化済みデータブロック中に含めるために、データブロックを符号化するのに使用されるべき前記符号化ブロックタイプを、スキップブロックタイプであるものから、ノン-スキップブロックタイプであるものに変えるステップ
    を含む、請求項8または9に記載の方法。
  11. 符号化パラメータが量子化パラメータである、
    請求項1から10のいずれか一項に記載の方法。
  12. ビデオ画像データを符号化するための装置であって、ビデオ画像データを符号化することが、符号化されていない前記ビデオ画像データのブロックの系列を、ビデオ符号化フォーマットで符号化済みデータブロックの系列に符号化することを含み、
    符号化されていないデータブロックを符号化するとき、前記ビデオ符号化フォーマットが符号化パラメータを使用し、
    ビデオ画像データを符号化するための前記装置が、符号化されていないデータブロックの前記系列の、符号化されていないデータブロックの第1および第2のグループの少なくとも1つの対について、前記第1および第2のグループが、前記ビデオ画像データのビットストリーム順で、連続したデータブロックを含み、前記第2のグループの第1のブロックが、前記ビットストリーム順で、前記第1のグループの最後のブロックに続き、
    符号化されていないデータブロックの前記第1および第2のグループを符号化して、符号化済みデータブロックの第1のグループおよび第2のグループをそれぞれ生成し、
    符号化されていないデータブロックの前記第1および第2のグループの前記符号化が、
    前記第1のグループ中の前記データブロックの全ての符号化が終了する前に、前記第2のグループ中の符号化されていないデータブロックを符号化するために使用されるべき前記符号化パラメータの値を決定することと、
    前記決定された符号化パラメータ値を使用して、前記第2のグループ中の前記符号化されていないデータブロックを符号化することと、
    前記第1のグループ中の符号化済みデータブロックについて、示された符号化パラメータ値を使用して、前記符号化パラメータ値を決定し、前記第2のグループ中の前記データブロックを復号するために使用するとき、前記第2のグループ中の前記符号化済みデータブロックについて、前記決定された符号化パラメータ値をデコーダに導出させる前記符号化パラメータ値を、前記第1のグループ中の符号化済みデータブロックが示すことを確実化することと
    を含むように構成される処理回路を備える、装置。
  13. 符号化されていないデータブロックの前記系列を、符号化されていないデータブロックの、第1および第2のグループの複数の対として分割し、処理するように前記処理回路が構成される、請求項12に記載の装置。
  14. 符号化されていないデータブロックの前記第1および第2のグループの前記符号化が、
    符号化されていないデータブロックの各グループ中の第1のデータブロックについて、符号化パラメータ値を決定すること
    を含む、請求項13に記載の装置。
  15. 符号化されていないデータブロックの前記第1および第2のグループの前記符号化が、
    符号化されていないデータブロックの、第1および第2のグループの所与の対について、前記対の符号化されていないデータブロックの前記第1のグループおよび前記第2のグループを、少なくとも部分的に並列に符号化すること
    を含む、請求項12から14のいずれか一項に記載の装置。
  16. 符号化されていないデータブロックの前記第1および第2のグループの前記符号化が、前記第2のグループ中の第1の符号化済みデータブロックの中に、前記第2のグループ中の第1のデータブロックを復号するために使用する、前記符号化パラメータ値を決定するためにデコーダによって使用されるべき相対的符号化パラメータ値を含めることを含み、
    前記第1のグループ中の符号化済みデータブロックについて、示された符号化パラメータ値を使用して、前記符号化パラメータ値を決定し、前記第2のグループ中の前記第1のデータブロックを復号するために使用するとき、前記第2のグループ中の前記第1の符号化済みデータブロックについて、前記決定された符号化パラメータ値をデコーダに導出させる前記符号化パラメータ値を、前記第1のグループ中の前記符号化済みデータブロックが示すことを確実化することが、
    前記第2のグループ中の前記第1の符号化済みデータブロックの中に含まれる前記相対的符号化パラメータ値を使用して、符号化パラメータ値を決定し、前記第2のグループ中の前記第1のデータブロックを復号するために使用するとき、前記第2のグループ中の前記第1の符号化済みデータブロックについて、前記決定された符号化パラメータ値をデコーダに導出させる前記符号化パラメータ値を、前記第1のグループ中の前記符号化済みデータブロックが示すことを確実化すること
    を含む、請求項12から15のいずれか一項に記載の装置。
  17. 前記第1のグループ中の符号化済みデータブロックについて、示された符号化パラメータ値を使用して、前記符号化パラメータ値を決定し、前記第2のグループ中の前記データブロックを復号するために使用するとき、前記第2のグループ中の前記符号化済みデータブロックについて、前記決定された符号化パラメータ値をデコーダに導出させる前記符号化パラメータ値を、前記第1のグループ中の前記符号化済みデータブロックが示すことを確実化することが、
    前記第2のグループ中の前記データブロックを復号するとき、前記第2のグループ中の前記符号化済みデータブロックについて、決定された符号化パラメータ値をデコーダに導出させるのに好適な前記符号化パラメータ値を決定することと、
    前記決定された好適な符号化パラメータ値を示すように、前記第1のグループ中のデータブロックを設定することと
    を含む、請求項12から16のいずれか一項に記載の装置。
  18. 前記決定された好適な符号化パラメータ値を示すように、前記第1のグループ中のデータブロックを設定することが、
    前記第2のグループ中の前記データブロックを復号するために使用する前記符号化パラメータ値を決定するとき、エンコーダが前記第1のグループ中の前記データブロックについて選択したであろう前記符号化パラメータ値が、グループの前記対の前記第2のグループ中の前記符号化済みデータブロックについて、前記決定された符号化パラメータ値を前記デコーダに導出させることになるかどうかを決定することと、
    この決定に基づいて、前記第1のグループ中の前記データブロックについての前記符号化パラメータ値を、前記ブロックについての前記決定された好適な符号化パラメータ値に条件付きで変更することと
    を含む、請求項17に記載の装置。
  19. 前記決定された好適な符号化パラメータ値を示すように、前記第1のグループ中のデータブロックを設定することが、
    前記データブロックを符号化するために使用されるべき符号化ブロックタイプが、符号化パラメータの前記値を、前記データブロックの符号化バージョン中に示すことを可能にするかどうかを決定することと、
    これがその場合でない可能性があることが決定される場合、前記データブロックの前記符号化バージョン中に示されるべき前記符号化パラメータ値を可能にする異なる符号化ブロックタイプを使用する、前記データブロックを符号化することと
    を含む、請求項17または18に記載の装置。
  20. 符号化されていないデータブロックの系列を含むビデオ画像データを、ビデオ符号化フォーマットで符号化済みデータブロックの系列に符号化する装置であって、
    デコーダに伝えられるべき情報を、生成後の対応する符号化済みデータブロック中に含めるために、前記系列中のデータブロックを符号化するのに使用されるべき、異なる符号化ブロックタイプを選択することが可能な処理回路を備える、装置。
  21. 前記処理回路が、
    デコーダに伝えられるべき情報を、前記符号化済みデータブロック中に含めるために、データブロックを符号化するのに使用されるべき、前記符号化ブロックタイプを、スキップブロックタイプであるものから、ノン-スキップブロックタイプであるものに変えることが可能である、請求項19または20に記載の装置。
  22. 符号化パラメータが量子化パラメータである、
    請求項12から21のいずれか一項に記載の装置。
  23. プログラムがデータ処理システム上で実行するとき、請求項1から11のいずれか一項に記載の方法を実施するように適合されたソフトウェアコードを含むコンピュータプログラム。
  24. 添付図面を参照して、実質的にここに記載されたように、ビデオ画像データを符号化する方法。
  25. 添付図面を参照して、実質的にここに記載されたように、ビデオデータを符号化するための装置。
JP2015241948A 2014-12-12 2015-12-11 ビデオデータ処理システム Active JP6912158B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1422132.9A GB2533155B (en) 2014-12-12 2014-12-12 Video data processing system
GB1422132.9 2014-12-12

Publications (2)

Publication Number Publication Date
JP2016116224A true JP2016116224A (ja) 2016-06-23
JP6912158B2 JP6912158B2 (ja) 2021-07-28

Family

ID=56007678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015241948A Active JP6912158B2 (ja) 2014-12-12 2015-12-11 ビデオデータ処理システム

Country Status (5)

Country Link
US (1) US10791332B2 (ja)
JP (1) JP6912158B2 (ja)
KR (1) KR102543334B1 (ja)
CN (1) CN105704488B (ja)
GB (1) GB2533155B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018070742A1 (ko) * 2016-10-11 2018-04-19 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10638133B2 (en) 2018-01-31 2020-04-28 Qualcomm Incorporated Delta quantization parameter (QP) coding options for video
GB2570879B (en) * 2018-02-06 2022-08-17 Advanced Risc Mach Ltd Encoding data arrays

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009267440A (ja) * 2008-04-21 2009-11-12 Canon Inc 画像符号化装置及び画像符号化方法
WO2009150808A1 (ja) * 2008-06-10 2009-12-17 パナソニック株式会社 画像復号装置および画像符号化装置
JP2010035146A (ja) * 2008-07-02 2010-02-12 Canon Inc 符号化装置および符号化方法
US20120213448A1 (en) * 2011-02-18 2012-08-23 Arm Limited Parallel image encoding

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679341A (zh) 2002-09-06 2005-10-05 皇家飞利浦电子股份有限公司 用于提高效率和差错恢复能力的内容自适应多重描述运动补偿
CN102611892B (zh) 2006-03-16 2014-10-08 华为技术有限公司 在编码过程中实现自适应量化的方法及装置
WO2008077119A2 (en) * 2006-12-19 2008-06-26 Ortiva Wireless Intelligent video signal encoding utilizing regions of interest information
JP2011024066A (ja) * 2009-07-17 2011-02-03 Sony Corp 画像処理装置および方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009267440A (ja) * 2008-04-21 2009-11-12 Canon Inc 画像符号化装置及び画像符号化方法
WO2009150808A1 (ja) * 2008-06-10 2009-12-17 パナソニック株式会社 画像復号装置および画像符号化装置
JP2010035146A (ja) * 2008-07-02 2010-02-12 Canon Inc 符号化装置および符号化方法
US20120213448A1 (en) * 2011-02-18 2012-08-23 Arm Limited Parallel image encoding

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018070742A1 (ko) * 2016-10-11 2018-04-19 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US11575885B2 (en) 2016-10-11 2023-02-07 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus and recording medium for storing bitstream
US11936853B2 (en) 2016-10-11 2024-03-19 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus and recording medium for storing bitstream

Also Published As

Publication number Publication date
KR20160072038A (ko) 2016-06-22
KR102543334B1 (ko) 2023-06-14
US10791332B2 (en) 2020-09-29
GB2533155A (en) 2016-06-15
JP6912158B2 (ja) 2021-07-28
CN105704488A (zh) 2016-06-22
CN105704488B (zh) 2021-04-23
GB2533155B (en) 2021-09-15
US20160191937A1 (en) 2016-06-30

Similar Documents

Publication Publication Date Title
US10575007B2 (en) Efficient decoding and rendering of blocks in a graphics pipeline
US10313695B2 (en) Parallel decode of a progressive JPEG bitstream
US11197010B2 (en) Browser-based video decoder using multiple CPU threads
US9736488B2 (en) Decoding for high efficiency video transcoding
US9270988B2 (en) Method of determining binary codewords for transform coefficients
CN106233730B (zh) 生成经编码输出视频帧及数据阵列的方法和系统
US20100290704A1 (en) Systems and methods for block recomposition for compound image compression
KR102669366B1 (ko) 비디오 처리 시스템
JP2012508485A (ja) Gpu加速を伴うソフトウエアビデオトランスコーダ
US9641850B2 (en) Video compression device
JP6912158B2 (ja) ビデオデータ処理システム
US10609408B2 (en) Video data processing system using encoding information derived from a previous frame in a sequence of video frames
US10560708B2 (en) Selecting encoding options to use when encoding an array of data elements
Weißenberger et al. Accelerating jpeg decompression on gpus
JP2012005070A (ja) 画像データ復号装置
KR20200006908A (ko) 변환 모드용 엔트로피 부호화 그룹의 분류 방법 및 시스템
KR102467139B1 (ko) 데이터 처리 시스템
US9723312B2 (en) Method and system for random accessible image compression with adaptive quantization
TWI514851B (zh) 影像編碼/解碼系統與其方法
WO2015041652A1 (en) A progressive jpeg bitstream transcoder and decoder
CA2954386C (en) Universal video codec
US20240015329A1 (en) Method and apparatus for compression and decompression of video data without intraframe prediction
CN108063948B (zh) 配合多个处理器的影像处理装置及影像处理方法
WO2022187026A2 (en) Dependent quantization state transition method for video coding
CN117939148A (zh) 用于在比特流中传输的熵编码的数据的动态排队

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191118

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210422

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210708

R150 Certificate of patent or registration of utility model

Ref document number: 6912158

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150