JP2012505601A - 効率的な予測モード選択 - Google Patents

効率的な予測モード選択 Download PDF

Info

Publication number
JP2012505601A
JP2012505601A JP2011531117A JP2011531117A JP2012505601A JP 2012505601 A JP2012505601 A JP 2012505601A JP 2011531117 A JP2011531117 A JP 2011531117A JP 2011531117 A JP2011531117 A JP 2011531117A JP 2012505601 A JP2012505601 A JP 2012505601A
Authority
JP
Japan
Prior art keywords
video data
version
predicted
data unit
frame
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
JP2011531117A
Other languages
English (en)
Other versions
JP5175397B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2012505601A publication Critical patent/JP2012505601A/ja
Application granted granted Critical
Publication of JP5175397B2 publication Critical patent/JP5175397B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/19Methods 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 using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

概して、参照ビデオデータから予測ビデオデータを予測するための予測モードを効率的に選択するための技法が説明される。詳細には、装置は、それぞれ第1および第2の参照ビデオデータユニットをそれぞれ含む、少なくとも第1および第2の参照コード化ユニットを記憶するメモリを含み得る。装置は、第1および第2の参照ビデオデータユニットから予測ビデオデータユニットの第1のバージョンを予測するためにデフォルト重み付け予測を実行し、予測ビデオデータユニットの第1のバージョンのオフセット値を計算する、動き補償ユニットをさらに備え得る。動き補償ユニットは、次いで、予測ビデオデータユニットの第2のバージョンを予測するために、計算されたオフセット値に基づいて暗黙的重み付け予測または明示的重み付け予測のいずれかを実行し、第1のバージョンまたは第2のバージョンのいずれかとして予測ビデオデータユニットを符号化し得る。

Description

本出願は、その内容全体が参照により本明細書に組み込まれる、2008年10月6日に出願された米国仮出願第61/103,100号の利益を主張する。
本開示は、デジタルビデオに関し、より詳細には、デジタルビデオデータをコーディングするための技法に関する。
デジタルビデオデータを符号化および復号するために、いくつかのビデオ符号化および復号技法が開発されてきた。たとえば、Moving Picture Experts Group(MPEG)は、MPEG−1、MPEG−2、およびMPEG−4を含むいくつかの技法を開発した。他の例には、International Telecommunication Union(ITU)−T H.263規格、ならびにITU−T H.264規格およびその相当物、ISO/IEC MPEG−4,Part10、すなわち、Advanced Video Coding(AVC)がある。これらのビデオ規格は、データ量を低減するために圧縮された形でデータを符号化することによって、ビデオデータの効率的な送信および記憶をサポートする。
ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減するために空間予測および/または時間予測を行い得る。イントラコーディングは、同じビデオフレーム内のビデオブロックの空間冗長性を低減するために空間予測を使用する。インターコーディングは、連続するビデオフレーム中のビデオブロック間の時間冗長性を低減するために時間予測を使用する。インターコーディングの場合、ビデオエンコーダは、1つまたは複数の参照フレーム中の対応する予測ビデオブロックに対するビデオブロックの変位を示す動きベクトルを発生するために、動き推定を実行する。
ソースデバイスは、デジタルビデオデータを符号化するために、上記のビデオ符号化技法のうちの1つを採用することができる。ソースデバイスは、符号化ビデオデータをアーカイブし、および/または符号化ビデオデータを送信チャネルによって宛先デバイスに送信する。送信チャネルは、有線および/またはワイヤレス通信媒体を利用することができる。宛先デバイスは、符号化ビデオデータを受信し、再生のために元のデジタルビデオデータを復元するために、その受信したビデオデータを復号する。多くのデバイスは、組み合わせられていわゆるコーデックになり得る、エンコーダとデコーダの両方を含む。
概して、本開示は、少なくとも2つの参照コード化ユニットから、予測コード化ユニットと呼ばれ得るビデオデータの第3のコード化ユニットを予測するための予測モードを効率的に選択するための技法について説明する。参照コード化ユニットは、前にコーディングされ、予測コード化ユニットを予測するための基準を与える、コード化ユニットを指す。特に、これらの参照コード化ユニットは、時間的に予測コード化ユニットの前または後のいずれかに存することができる。一般に、ビデオエンコーダは、予測モードを選択するために必要とされる予測コーディングパスの数を低減することによってコーディング効率を改善するための技法を実装する。それらの技法は、適切な予測モードを選択するために必要な、一般に計算動作と呼ばれ得るコーディングパスの数を低減することができるので、それらの技法は、効率的な電力消費を促進することもできる。言い換えれば、ビデオエンコーダは、複数の予測モードのそれぞれ及びすべてを実施する必要なしに、それら複数の予測モードから一つの予測モードをインテリジェントに事前選択し、次いで、複数の予測モードのうちの最も適切な予測モードを選択するために、各予測の結果に対して比較分析を実行し得る。
より詳細には、ビデオエンコーダは、Bフレームと呼ばれる、特定のタイプの予測コード化ユニットのビデオデータユニットを予測するための動き補償双方向予測モードを効率的に選択するために、本開示の技法を実装することができる。一例として、ITU−T H.264規格およびその相当物ISO/IEC MPEG−4,Part10、すなわち、Advanced Video Coding(AVC)規格内で、Bフレームのビデオデータユニットを予測するための3つの動き補償双方向予測モードが定義されている。これらの双方向予測モードの各々は、ビデオデータ中で時間的にBフレームの前または後のいずれかに生じるIフレームまたはPフレームのいずれかなど、別々のまたは異なる参照コード化ユニット内に含まれる、少なくとも2つの参照ビデオデータユニットからBフレームのビデオデータユニットを予測する。
第1のモードは、たとえば、参照ビデオユニットのピクセル値を平均化し、それによってBフレームの予測ビデオデータユニットを予測するために、参照ブロックの各々にデフォルトまたは既知の重みを適用する、デフォルト重み付け予測モードと呼ばれる。第2のモードは、重みが、ビデオエンコーダによって明示的に定義され、予測ビデオデータユニットの予測を調整するために使用される、明示的重み付け予測モードと呼ばれる。第3のモードは、予測コード化ユニットを予測するために、重みがそれぞれ参照コード化ユニットまたは参照コード化ユニットの参照ビデオデータユニットの分析によってビデオエンコーダによって暗黙的に判断される、暗黙的重み付け予測モードと呼ばれる。
ビデオエンコーダは、本開示の技法によれば、第3のコード化ユニットの3つのバージョンを発生するためにこれらの予測モードの3つすべてを実行するのではなく、2つのバージョンのみを発生するためにこれらの3つの予測モードのうちの2つのみを効率的に実行し得る。したがって、ビデオエンコーダは、2つのバージョンのいずれがビデオデータの対応する部分をより適切に表すかを判断するために、3つではなく2つのバージョンを分析するだけでよい。この点で、ビデオエンコーダは、計算動作、たとえば、予測コーディングパスの数を低減するとともに、効率的な電力消費を促進することもできる。
一態様では、ビデオデータを符号化する方法は、それぞれの第1および第2の参照ビデオデータユニットをそれぞれ備える、ビデオデータの第1および第2の参照コード化ユニットを受信することと、それぞれ時間的に予測コード化ユニットの前または後のいずれかに生じる、第1および第2の参照ビデオデータユニットから、ビデオデータの予測コード化ユニットの予測ビデオデータユニットの第1のバージョンを予測するために、デフォルト重み付け予測を実行することと、予測ビデオデータユニットの第1のバージョンのオフセット値を計算することと、を備える。本方法は、計算されたオフセット値に基づいて、暗黙的重み付け予測モードまたは明示的重み付け予測モードのいずれかを選択することと、第1および第2の参照ビデオデータユニットから予測ビデオデータユニットの第2のバージョンを予測するために、選択されたモードを実行することと、第1のバージョンまたは第2のバージョンのいずれかとして予測ビデオデータユニットを符号化することと、をさらに備える。
別の態様では、ビデオデータを符号化する装置は、第1および第2の参照コード化ユニットを記憶するメモリを含むビデオエンコーダであって、第1の参照コード化ユニットが第1の参照ビデオデータユニットを含み、第2の参照コード化ユニットが第2の参照ビデオデータユニットを含む、ビデオエンコーダと、動き補償ユニットと、を備える。動き補償ユニットは、それぞれ時間的に予測コード化ユニットの前または後のいずれかに生じる、第1および第2の参照ビデオデータユニットから、ビデオデータの予測コード化ユニットの予測ビデオデータユニットの第1のバージョンを予測するために、デフォルト重み付け予測を実行し、予測ビデオデータユニットの第1のバージョンのオフセット値を計算し、計算されたオフセット値に基づいて暗黙的重み付け予測モードまたは明示的重み付け予測モードのいずれかを選択し、第1および第2の参照ビデオデータユニットから予測ビデオデータユニットの第2のバージョンを予測するために、選択されたモードを実行し、第1のバージョンまたは第2のバージョンのいずれかとして予測ビデオデータユニットを符号化する。
別の態様では、ビデオデータを符号化するデバイスは、ビデオデータを符号化するための手段を備える。ビデオデータを符号化するための手段は、ビデオデータの第1および第2の参照コード化ユニットを記憶するための手段であって、第1の参照コード化ユニットが第1の参照ビデオデータユニットを含み、第2の参照コード化ユニットが第2の参照ビデオデータユニットを含む、記憶するための手段と、それぞれ時間的に予測コード化ユニットの前または後のいずれかに生じる、第1および第2の参照ビデオデータユニットから、ビデオデータの予測コード化ユニットの予測ビデオデータユニットの第1のバージョンを予測するために、デフォルト重み付け予測を実行するための手段と、を含む。ビデオデータを符号化するための手段は、予測ビデオデータユニットの第1のバージョンのオフセット値を計算するための手段と、第1および第2の参照ビデオデータユニットから予測ビデオデータユニットの第2のバージョンを予測するために、計算されたオフセット値に基づいて暗黙的重み付け予測または明示的重み付け予測の両方ではなくいずれかを実行するための手段と、第1のバージョンまたは第2のバージョンのいずれかとして予測ビデオデータユニットを符号化するための手段と、を含む。
別の態様では、コンピュータ可読媒体は、プログラマブルプロセッサに、それぞれの第1および第2の参照ビデオデータユニットをそれぞれ備える、ビデオデータの第1および第2の参照コード化ユニットを受信することと、それぞれ時間的に予測コード化ユニットの前または後のいずれかに生じる、第1および第2の参照ビデオデータユニットから、ビデオデータの予測コード化ユニットの予測ビデオデータユニットの第1のバージョンを予測するために、デフォルト重み付け予測を実行することと、予測ビデオデータユニットの第1のバージョンのオフセット値を計算することと、計算されたオフセット値に基づいて暗黙的重み付け予測モードまたは明示的重み付け予測モードのいずれかを選択することと、第1および第2の参照ビデオデータユニットから予測ビデオデータユニットの第2のバージョンを予測するために、選択されたモードを実行することと、第1のバージョンまたは第2のバージョンのいずれかとして予測ビデオデータユニットを符号化することと、を行わせるための命令を備える。
本発明の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。本発明の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
図1は、本開示の技法を実装することができる1つの例示的なビデオ符号化および復号システムを示すブロック図である。 図2は、本開示に一致するオフセット技法を実行し得るビデオエンコーダの例を示すブロック図である。 図3は、図2に示されている動き補償ユニットの一例をより詳細に示すブロック図である。 図4は、本開示で説明される技法を実行する際のビデオエンコーダの例示的な動作を示すフローチャートである。 図5は、本開示で説明される技法を実行する際のビデオエンコーダの例示的な動作をより詳細に示すフローチャートである。 図6は、コード化ユニットの例示的な時間的順序付きシーケンスを示す図である。
概して、本開示では、少なくとも2つの参照コード化ユニットから、予測コード化ユニットと呼ばれ得るビデオデータの第3のコード化ユニットを予測するための予測モードを効率的に選択するための技法について説明する。参照コード化ユニットは、前にコーディングされ、第3のコード化ユニットを予測するための基準を与える、コード化ユニットを指す。特に、これらの参照コード化ユニットは、時間的に第3のコード化ユニットの前または後のいずれかに存することができる。一般に、ビデオエンコーダは、予測モードを選択するために必要とされる予測コーディングパスの数を低減することによってコーディング効率を改善するための技法を実装する。それらの技法は、最適またはより適切な予測モードを選択するために必要な、一般に計算動作と呼ばれ得るコーディングパスの数を低減することができるので、それらの技法は、効率的な電力消費を促進することもできる。言い換えれば、ビデオエンコーダは、複数の予測モードのそれぞれ及びすべてを実施する必要なしに、それら複数の予測モードから一つの予測モードをインテリジェントに事前選択し、次いで、最も適切な予測モードを選択するために、各予測の結果に対して比較分析を実行し得る。
より詳細には、ビデオエンコーダは、Bフレームと呼ばれる、特定のタイプの予測コード化ユニットのビデオデータユニットを予測するための動き補償双方向予測モードを効率的に選択するために、本開示の技法を実装することができる。一例として、ITU−T H.264規格およびその相当物ISO/IEC MPEG−4,Part10、すなわち、Advanced Video Coding(AVC)規格内で、Bフレームのビデオデータユニットを予測するための3つの動き補償双方向予測モードが定義されている。これらの双方向予測モードの各々は、それぞれ時間的にBフレームの前または後のいずれかに生じるIフレームまたはPフレームのいずれかなど、別々のまたは異なる参照コード化ユニット内に含まれる、少なくとも2つの参照ビデオデータユニットから、Bフレームのビデオデータユニットを予測する。
第1のモードは、たとえば、参照ビデオユニットのピクセル値を平均化し、それによってBフレームの予測ビデオデータユニットを予測するために、参照ブロックの各々にデフォルトまたは既知の重みを適用する、デフォルト重み付け予測モードと呼ばれる。第2のモードは、重みが、ビデオエンコーダによって明示的に定義される、明示的重み付け予測モードと呼ばれる。第3のモードは予測コード化ユニットを予測するために、重みがそれぞれ参照コード化ユニットまたは参照コード化ユニットの参照ビデオデータユニットの分析によってビデオエンコーダによって暗黙的に判断される、暗黙的重み付け予測モードと呼ばれる。明示的重み付け予測モードに関しては、ビデオエンコーダが重みを明示的に符号化するので、名称が「明示的」重み付け予測である。暗黙的重み付け予測モードに関しては、ビデオエンコーダは重みを明示的に符号化せず、むしろ、デコーダが、重みを判断するためにビデオエンコーダによって使用されるのと同じ重み判断アルゴリズムを利用する。言い換えれば、ビデオエンコーダは、重みを明示的に符号化しそれによってデコーダが同じ重みを判断するための追加の動作を実行する必要をなくすのではなく、重みを暗黙的に符号化し、これらの追加の動作を実行することをデコーダに要求する。
ビデオエンコーダは、本開示の技法によれば、第3のコード化ユニットの3つのバージョンを発生するためにこれらの予測モードの3つすべてを実行するのではなく、2つのバージョンのみを発生するためにこれらの3つの予測モードのうちの2つのみを効率的に実行し得る。したがって、ビデオエンコーダは、2つのバージョンのいずれがビデオデータの対応する部分をより適切に表すかを判断するために、3つではなく2つのバージョンを分析するだけでよい。この点で、ビデオエンコーダは、計算動作、たとえば、予測コーディングパスの数を低減するとともに、効率的な電力消費を促進することもできる。
図1は、本開示の技法を実装することができる1つの例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、通信チャネル15を介して符号化ビデオを宛先デバイス16に送信するソースデバイス12を含む。ソースデバイス12および宛先デバイス16は、広範囲のデバイスのいずれかを備えることができる。場合によっては、ソースデバイス12および宛先デバイス16は、いわゆるセルラー電話または衛星無線電話のワイヤレスハンドセットなどのワイヤレス通信デバイス、または通信チャネル15を介してビデオ情報を伝達することができ、その場合、通信チャネル15がワイヤレスである任意のワイヤレスデバイスを備える。ただし、コード化ユニットを予測する予測アルゴリズムまたはモードの効率的な選択に関係する本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるわけではない。
図1の例では、ソースデバイス12は、ビデオソース20と、ビデオエンコーダ22と、変調器/復調器(モデム)23と、送信機24と、を含むことができる。宛先デバイス16は、受信機26と、モデム27と、ビデオデコーダ28と、表示デバイス30と、を含むことができる。本開示によれば、ソースデバイス12のビデオエンコーダ22は、ビデオ符号化プロセスの一部として本開示の効率的な選択技法のうちの1つまたは複数を適用するように構成され得る。
図1の図示のシステム10は例示にすぎない。本開示の効率的な選択技法は、動き補償予測をサポートする任意の符号化デバイスによって実行され得る。ソースデバイス12および宛先デバイス16は、ソースデバイス12が宛先デバイス16に送信するためのコード化ビデオデータを発生するような、コーディングデバイスの例にすぎない。デバイス12、16の各々がビデオ符号化コンポーネントおよび復号コンポーネントを含むので、デバイス12、16は、実質的に対称的に動作することができる。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス12とビデオデバイス16との間の一方向または双方向のビデオ送信をサポートすることができる。
ソースデバイス12のビデオソース20は、ビデオカメラ、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオコンテンツプロバイダからのビデオフィードなど、ビデオキャプチャデバイスを含むことができる。さらなる代替として、ビデオソース20は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータ発生ビデオとの組合せを発生することができる。場合によっては、ビデオソース20がビデオカメラである場合、ソースデバイス12および宛先デバイス16は、いわゆるカメラ付き携帯電話またはビデオ電話を形成することができる。各場合において、キャプチャされたビデオ、あらかじめキャプチャされたビデオ、またはコンピュータ発生ビデオは、ビデオエンコーダ22によって符号化され得る。次いで、符号化ビデオ情報は、たとえば、符号分割多元接続(CDMA)または別の通信規格などの通信規格に従ってモデム23によって変調され、送信機24を介して宛先デバイス16に送信され得る。モデム23は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他のコンポーネントを含むことができる。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含むことができる。
宛先デバイス16の受信機26は、チャネル15を介して情報を受信し、モデム27は情報を復調する。この場合も、ビデオ符号化プロセスは、動き補償中にコード化ユニットを効率的に予測するために、本明細書で説明される技法のうちの1つまたは複数を実装することができる。チャネル15を介して伝達される情報は、ビデオデコーダ28によっても使用される、ビデオエンコーダ22によって定義される情報を含むことができる。表示デバイス30は、復号ビデオデータをユーザに対して表示するものであり、陰極線管、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプの表示デバイスなど、様々な表示デバイスのいずれかを備えることができる。
図1の例では、通信チャネル15は、無線周波数(RF)スペクトルまたは1つまたは複数の物理的伝送線路など、ワイヤレスまたは有線の任意の通信媒体、あるいはワイヤレスおよび有線の媒体の任意の組合せを備えることができる。通信チャネル15は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、または1つまたは複数のネットワークの相互接続を備えるインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成することができる。通信チャネル15は、一般にビデオデータをソースデバイス12から宛先デバイス16に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル15は、ソースデバイス12から宛先デバイス16への通信を可能にするのに有用なルータ、スイッチ、基地局、または任意の他の機器を含むことができる。
ビデオエンコーダ22およびビデオデコーダ28は、代替的にMPEG−4,Part10,Advanced Video Coding(AVC)として説明されるITU−T H.264規格など、ビデオ圧縮規格に従って動作することができる。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。図1には示されていないが、いくつかの態様では、ビデオエンコーダ22およびビデオデコーダ28は、それぞれオーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含むことができる。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)とともにITU−T Video Coding Experts Group(VCEG)によって公式化された。いくつかの態様では、本開示で説明される技法は、一般にH.264規格に準拠するデバイスに適用され得る。本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ばれることがあるH.264規格は、ITU−T研究グループによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されている。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張の取り組みを続けている。
最近では、Key Technologies Area(KTA)フォーラムなど、ITU−Tの様々なフォーラムにおいて、H.264/MPEG−4AVC規格を進化させる取り組みが始まっている。KTAフォーラムは、一部で、H.264/AVC規格によって発揮されるよりも高い符号化効率を発揮するコーディング技術を追求している。本開示で説明される技法は、H.264/AVC規格において実現されるよりも効率的な予測モード選択を実現することができる。最近、KTAフォーラムは、その全体が参照により本明細書に組み込まれる、(2008年10月8日〜10日の間にカリフォルニア州サンディエゴで行われた第36回会合において発表された)Rahul PanchalおよびMarta Karczewiczによる「Experimental Results on Simplified JMKTA 2.0 Software」と題された、様々な態様においてこれらの技法を詳述する文献を提出番号VCEG−AJ25として受け取った。
ビデオエンコーダ22およびビデオデコーダ28はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せ、として実装され得る。ビデオエンコーダ22およびビデオデコーダ28の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれかは複合エンコーダ/デコーダ(CODEC)の一部としてそれぞれのモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合され得る。
ビデオシーケンスは一般に、一連のビデオフレームを含む。ビデオエンコーダ22は、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロック上で動作する。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは、一連のスライスを含む。各スライスは、サブブロック中に配置され得る一連のマクロブロックを含むことができる。一例として、ITU−T H.264規格は、輝度成分については16×16、8×8、または4×4、およびクロマ成分については8×8など、様々なブロックサイズのイントラ予測をサポートし、ならびに輝度成分については16×16、16×8、8×16、8×8、8×4、4×8および4×4、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。ビデオブロックは、ピクセルデータのブロック、あるいは、たとえば離散コサイン変換または概念的に同様の変換プロセスなどの変換プロセスの後の変換係数のブロックを備えることができる。
小さいビデオブロックほどより良い解像度を与えることができ、高い詳細レベルを含むビデオフレームの位置決めに使用され得る。一般に、マクロブロックおよび様々なサブブロックは、ビデオブロックであると考えられ得る。さらに、スライスは、マクロブロックおよび/またはサブブロックなど一連のビデオブロックであると考えられ得る。各スライスは、ビデオフレームの単独で復号可能なユニットとすることができる。代替的に、フレーム自体を復号可能なユニットとすることができるか、またはフレームの他の部分を復号可能なユニットとして定義することができる。「コード化ユニット」という用語は、フレーム全体、フレームのスライス、ピクチャグループ(GOP)、または使用されるコーディング技法に従って定義される別の単独で復号可能なユニットなど、ビデオフレームの単独で復号可能な任意のユニットを指す。
(補間と、コード化ユニットを予測するために予測アルゴリズムまたはモードを効率的に選択するための本開示の技法とを含む)インターベース予測コーディングの後、および(H.264/AVCにおいて使用される4×4または8×8整数変換あるいは離散コサイン変換またはDCTなどの)任意の変換の後、量子化が実行され得る。量子化は、一般に、係数を表すために使用されるデータ量をできるだけ低減するように係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。たとえば、16ビット値は、量子化中に15ビット値まで切り捨てられ得る。量子化の後、たとえば、コンテンツ適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、または別のエントロピーコーディング方法に従って、エントロピーコーディングが実行され得る。
本開示の技法によれば、ビデオエンコーダ22は、ビデオデータの少なくとも2つの異なる参照コード化ユニットを選択し得る。これらの2つのコード化ユニットは、第1のフレームと、第1のフレームとは異なる第2のフレームと、を備えることができる。代替的に、ビデオエンコーダ22は、第1の参照フレームの第1の参照ビデオデータユニット、たとえば、マクロブロックまたは他のサイズのビデオデータユニットと、第2の参照フレームの第2の参照ビデオデータユニットと、を選択し得る。例示のために、本開示の技法は、以下でビデオブロックおよびフレームに関して説明される。ただし、本技法は一般に、コード化ユニット全体、またはコード化ユニットのビデオデータユニットなど、その部分に適用することができる。
いくつかの態様では、ビデオエンコーダ22は、リスト0と総称されることがある参照フレームの第1のセットと、リスト1と総称されることがある参照フレームの第2のセットと、を記憶することができ、ここで、それらのセットの各々は、他のセットの参照フレームとは異なる参照フレームを含む。ビデオエンコーダ22は、リスト0から1つまたは複数の参照フレームを選択することができ、リスト1から1つまたは複数の参照フレームを選択し得る。この点で、ビデオエンコーダ22は、ビデオデータの少なくとも2つの異なる参照フレームを受信し得る。
参照フレームを選択した後、ビデオエンコーダ22は、各々が少なくとも2つの異なる参照フレームのうちの異なる1つから選択された少なくとも2つの参照ビデオブロックからビデオデータの予測フレームの予測ビデオブロックの第1のバージョンを予測するために、デフォルト重み付け予測を実行し得る。特に、2つの参照フレームは、予測フレームから時間的に離れている。同様に、少なくとも2つの参照ビデオブロックは、予測ビデオブロックから時間的に離れている。言い換えれば、参照フレームの第1のセットの参照フレーム(およびこれらの参照フレームから選択された参照ビデオブロック)は、時間的に連続的に生じるか、あるいは時間的に予測フレームの前または後のいずれかに生じるか、あるいは前および後の両方に生じる、参照フレームを備えることができる。同様に、参照フレームの第2のセットの参照フレーム(およびこれらの参照フレームから選択された参照ビデオブロック)は、時間的に連続的に生じるか、あるいは時間的に予測フレームの前または後のいずれかに生じるか、あるいは前および後の両方に生じる、フレームを備えることができる。
ビデオエンコーダ22は、したがって、リスト0から時間的に予測フレームの前または後に生じる第1の参照フレームを選択し、リスト1から時間的に予測フレームの前または後に生じる第2の参照フレームを選択し得る。これらの2つの選択されたユニットから予測される予測フレームは、しばしば、予測フレームが両方の時間的方向、たとえば、予測フレームの前および後に生じる両方の参照ユニットから予測されるという点で、双方向フレームまたは双方向ピクチャ(略してBフレームまたはBピクチャ)と呼ばれる。このために「Bフレーム」と呼ばれるが、Bフレームはまた、様々な態様では、Bフレームより前に生じる2つの参照フレームから予測され得るか、または代替的に、Bフレームの後に生じる2つの参照フレームから予測され得る。
一般に、Bフレームは、このようにしてブロックごとに予測され、ビデオエンコーダ22は、第1の参照フレームから第1の参照ビデオブロックを選択することができ、第2の参照フレームから第2のビデオブロックを選択し得る。これらのブロックを選択するために、ビデオエンコーダ22は、第1および第2のブロックを、予測ビデオブロックに最も良く一致するブロック、または予測ビデオブロックと同様のピクセル値を示すブロックとして識別することができる。ビデオエンコーダ22は、次いで、それぞれ、第1および第2の参照フレームの第1および第2の参照ビデオブロックから予測の予測ビデオブロックの第1のバージョンを予測するために、デフォルト重み付け予測を実行し得る。
デフォルト重み付け予測を実行するために、ビデオエンコーダ22は、第1の重み付きビデオブロックを判断するために第1の参照ビデオブロックに第1の重みを乗算し、第2の重み付きビデオブロックを判断するために第2の参照ビデオブロックに第2の重みを乗算し得る。ビデオエンコーダ22は、次に、総重み付きビデオブロックを発生するために、第1の重み付きビデオブロックに第2の重み付きビデオブロックを加算し得る。ビデオエンコーダ22は、デフォルト重み付け予測アルゴリズムに従って、この例では、たとえば、第1および第2の参照ビデオブロックの2つである、予測ビデオブロックの第1のバージョンを予測するために選択された参照ビデオブロックの数で総重み付きビデオブロックを除算することによって、予測ビデオブロックの第1のバージョンを予測することができる。一般に、第1の重みと第2の重みは互いに等しく、たとえば、第1の重みは0.5すなわち50%に等しく、第2の重みは0.5すなわち50%に等しい。3つ以上の重みの場合、重みは互いにほぼ等しいにすぎないことがあり、たとえば、第1の重みは33.33%に等しく、第2の重みは33.33%に等しく、第3の重みは33.34%に等しい。重みは通例変動しないので、この形態の重み付け予測は、直線、デフォルト、または均等重み付け予測と呼ばれることがある。
デフォルト重み付け予測アルゴリズムを使用して予測ビデオブロックの第1のバージョンを計算、判断あるいは予測した後、ビデオエンコーダ22は、予測ビデオブロックのオフセット値を計算し得る。このオフセット値は、DCオフセットまたは他のオフセット値を備え得る。上記のオフセットにおいて、「DC」は、電気的な意味で所与の直流電流からのオフセットを指すが、以降、電気的なコンテキスト以外の広範囲のコンテキストによる使用に適応されている。
ビデオ符号化のコンテキストにおいて、DCオフセットは、ビデオエンコーダ22が最初に参照ビデオブロックのうちの1つのピクセル値の輝度成分を平均化することによって計算され得る。ビデオエンコーダ22は、次に、予測ビデオブロックのピクセル値の輝度成分を平均化し得る。これらの計算値の各々はDC値を備え得る。ビデオエンコーダ22は、次いで、DC値を互いから減算することによってDCオフセットを計算し得る。この点で、DC値は、それぞれ、参照ビデオブロックと予測ビデオブロックとのうちの1つの平均輝度を備え得る。この平均は、電気的なコンテキストにおけるDC電圧と同様である。したがって、これらの2つの平均DC値の差は、電気的なコンテキストにおけるDCオフセットが標準または平均DC値からのオフセットを表すように、標準DC値からのオフセットを備え得るので、名称が「DCオフセット」である。
いずれの場合も、ビデオエンコーダ22は、次いで、予測フレームの予測ビデオブロックの第2のバージョンを予測するために、暗黙的重み付け予測または明示的重み付け予測を実行し得る。暗黙的重み付け予測または明示的重み付け予測のいずれを実行すべきかを判断するために、ビデオエンコーダ22は、計算されたDCオフセットをしきい値と比較し、この比較に基づいて暗黙的重み付け予測または明示的重み付け予測のいずれかを実行し得る。たとえば、ビデオエンコーダ22は、計算されたDCオフセットを、一般に0であるしきい値と比較し得る。ビデオエンコーダ22は、代替的に、計算されたDCオフセットの絶対値を最初に判断し、DCオフセットのこの絶対値を、この場合も一般に0に設定され得るしきい値と比較し得る。比較に基づいて、ビデオエンコーダ22は、次いで、予測フレームの予測ビデオブロックの第2のバージョンを予測するために、暗黙的重み付け予測または明示的重み付け予測のいずれかを実行し得る。
「暗黙的」重み付け予測または「明示的」重み付け予測は、予測フレームを予測する際に使用される2つ以上の重みが、たとえば、コード化ユニット内で符号化されるかまたは符号化されない予測の形態を指す。暗黙的重み付け予測の場合、重みは符号化されず、したがって予測ビデオブロックにおいて暗黙的であり得る。ビデオデコーダ26は、次いで、予測ビデオブロックが暗黙的重み付け予測を使用して予測されたと判断すると、第1および第2の参照ビデオブロックの分析、またはいくつかの例では、第1および第2の参照フレームの分析によって重みを導出し得る。明示的重み付け予測では、ビデオエンコーダ22は、予測ビデオブロック内で、またはいくつかの例では予測フレーム内で予測ビデオブロックを予測する際に使用される重みを明示的にコーディングし得る。明示的重み付け予測は、重みを選択する際にビデオエンコーダ22により多くの許容範囲を与えることができ、その結果、ビデオエンコーダ22が、ビデオデータの特定のコンテキストまたは形態に適合させるために、予測フレーム、たとえば、Bフレームの予測を調整することを可能にし得る。
重みに基づいて暗黙的重み付け予測または明示的重み付け予測のいずれかを実行する例として、ビデオエンコーダ22は、計算されたDCオフセット値の絶対値がしきい値を超えるとき、予測ビデオブロックの第2のバージョンを予測するために明示的重み付け予測を実行し得る。しかしながら、計算されたDCオフセット値の絶対値がしきい値を超えないとき、すなわち、しきい値以下であるとき、ビデオエンコーダ22は、予測ビデオブロックの第2のバージョンを予測するために暗黙的重み付け予測を実行し得る。このようにして、ビデオエンコーダ22は、予測ビデオブロックの第2のバージョンを予測するために、計算されたオフセット値に基づいて暗黙的重み付け予測または明示的重み付け予測の両方ではなくいずれかを実行し得る。
予測ビデオブロックの第2のバージョンを予測した後、ビデオエンコーダ22は、予測ビデオブロックを第1のバージョンまたは第2のバージョンのいずれかとして符号化する。ビデオエンコーダ22は、いくつかの例では、第1のバージョンと第2のバージョンとのうちのいずれがビデオデータの対応する部分をより適切に符号化するかを選択するために、予測ビデオブロックの第1および第2のバージョンの、レートひずみ(R−D)コスト分析などのコスト分析を実行し得る。この場合も、ビデオエンコーダ22は、デフォルト重み付け予測を実行することによってビデオブロックの第1のバージョンを符号化し、明示的重み付け予測または暗黙的重み付け予測の両方ではなく、いずれかを実行することによって予測ビデオブロックの第2のバージョンを符号化する。
ビデオエンコーダ22は、最低コストに関連する第1のバージョンと第2のバージョンとのうちの1つを選択し得る。いずれの場合も、ビデオエンコーダ22は、コード化ビットストリーム内で予測ビデオブロックを第1のバージョンまたは第2のバージョンとして符号化する。ソースデバイス12の送信機24は、コード化ビットストリームを宛先デバイス16の受信機26に送信し得る。宛先デバイス16では、ビデオデコーダ28は、コード化ビットストリームを受信し、ビデオシーケンスを再構成するためにコード化ビットストリームを復号する。
このようにして、ビデオエンコーダ22は、予測アルゴリズムの各々を実行することによって、予測ビデオブロックのバージョンを実際に発生することなしに、複数の予測アルゴリズムまたはモード間でより効率的に選択するために、本開示で説明される技法を実装することができる。上記で説明されたように、ビデオエンコーダ22は、最初にデフォルト重み付け予測を実行し、次に、暗黙的重み付け予測または明示的重み付け予測の両方ではなくいずれかを実行し得る。したがって、予測のすべての3つの形態またはタイプを実行するのではなく、ビデオエンコーダ22は、3つのうちの2つのみ、すなわち、デフォルト重み付け予測と、明示的重み付け予測または暗黙的重み付け予測の両方ではなくいずれかとを実行する。この点で、ビデオエンコーダ22は、3つ以上の予測モードのあらゆるモードを実行する必要なしに、3つ以上の予測モード間でより効率的に選択し得る。
ビデオエンコーダ22は、この場合も上記で説明されたように、Bフレームの予測ビデオブロックの第1のバージョンの計算されたオフセットに基づいて、Bフレームの予測ビデオブロックの第2のバージョンを予測するために、暗黙的重み付け予測または明示的重み付け予測のいずれかを実行することの間で選択し得る本開示ではオフセットに関して説明されるが、ビデオエンコーダ22によって通常アクセス可能または決定可能な任意の特性が、暗黙的重み付け予測または明示的重み付け予測を実行することの間での選択のための基準としてビデオエンコーダ22によって使用され得る。
図2は、本開示に一致するオフセット技法を実行し得るビデオエンコーダ50の例を示すブロック図である。ビデオエンコーダ50は、デバイス20のビデオエンコーダ22、または異なるデバイスのビデオエンコーダに対応することができる。説明を簡単にするために、イントラコーディングコンポーネントは図2に示されていないが、ビデオエンコーダ50は、ビデオフレーム内でブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測を利用する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測を利用する。イントラモード(Iモード)は、空間ベースの圧縮モードを指すことができ、予測(Pモード)または双方向(Bモード)などのインターモードは、時間ベースの圧縮モードを指すことができる。本開示の技法は、インターコーディング中に適用し、したがって、説明を簡単で容易にするために、空間予測ユニットなどのイントラコーディングユニットは図2に示されていない。
図2に示されるように、ビデオエンコーダ50は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ50は、動き推定ユニット32と、動き補償ユニット35と、参照フレームストア34と、加算器48と、変換ユニット38と、量子化ユニット40と、エントロピーコーディングユニット46と、を含む。ビデオブロック再構成のために、ビデオエンコーダ50はまた、逆量子化ユニット42と、逆変換ユニット44と、加算器51と、を含む。ビデオエンコーダ50はまた、再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するためのデブロッキングフィルタ(図示されず)を含むことができる。所望される場合、デブロッキングフィルタは一般に、加算器51の出力をフィルタ処理するであろう。
符号化プロセス中に、ビデオエンコーダ50は、コーディングされるべきビデオブロックを受信し、動き推定ユニット32および動き補償ユニット35は、インター予測コーディングを実行する。動き推定ユニット32と動き補償ユニット35は、高度に統合され得るが、概念のために別々に示されている。動き推定は、一般に、ビデオブロックの動きを推定する動きベクトルを発生するプロセスと考えられる。動きベクトルは、たとえば、現在のフレーム(または他のコード化ユニット)内でコーディングされている現在のブロックに対する、予測フレーム(または他のコード化ユニット)内の予測ブロックの変位を示すことができる。動き補償は、一般に、動き推定によって判断された動きベクトルに基づいて予測ブロックをフェッチまたは発生するプロセスと考えられる。この場合も、動き推定ユニット32と動き補償ユニット35とは、機能的に統合され得る。例示のために、本開示で説明される技法は、動き補償ユニット35によって実行されるものとして説明される。
動き推定ユニット32は、コーディングされるべきビデオブロックを1つまたは複数の予測コード化ユニット(たとえば、時間に関してまたは時間的に以前のおよび/または将来のフレーム)のビデオブロックと比較することによって、そのビデオブロックの適切な動きベクトルを選択する。動き推定ユニット32は、一例として、いくつかの方法でBフレームの動きベクトルを選択し得る。1つの方法では、動き推定ユニット32は、(リスト0と呼ばれる)フレームの第1のセットから以前のまたは将来のフレームを選択し、リスト0からのこの以前のまたは将来のフレームのみを使用して動きベクトルを判断することができる。代替的に、動き推定ユニット32は、(リスト1と呼ばれる)フレームの第2のセットから以前のまたは将来のフレームを選択し、リスト1からのこの以前のまたは将来のフレームのみを使用して動きベクトルを判断することができる。さらに別の方法では、動き推定ユニット32は、リスト0から第1のフレームを選択し、リスト1から第2のフレームを選択し、リスト0の第1のフレームおよびリスト1の第2のフレームから1つまたは複数の動きベクトルを選択し得る。予測のこの形態は、上述のように、双予測動き推定と呼ばれることがある。本開示の技法は、動き補償双予測モードを効率的に選択するように実装され得る。
H.264/AVC規格に従って、Bフレーム、あるいは、Bフレームのビデオブロック、マクロブロック、または任意の他の個別および/または連続する部分など、その部分を予測するために、3つの動き補償双予測アルゴリズムまたはモードが使用され得る。一般にデフォルト重み付け予測と呼ばれる第1の動き補償双予測アルゴリズムまたはモードは、リスト0の第1のフレームおよびリスト1の第2のフレームの各識別されたビデオブロックにほぼ等しい重みを適用することに関与し得る。第1および第2のフレームの重み付きブロックは、次いで、合計され、Bフレームを予測するために使用されるフレームの総数、たとえば、この例では、2で除算される。しばしば、この除算は、第1および第2のフレームの重み付きブロックの加算に1を加算し、次いで、結果を1ビットだけ右にシフトすることによって達成される。
一般に明示的重み付け予測と呼ばれる、第2の動き補償双予測アルゴリズムまたはモードは、第1および第2のフレームの各識別されたビデオブロックの重みを判断し、次いで、デフォルト重み付け予測アルゴリズムに関して上記で説明されたものと同様の、重み付きブロックを発生するための重みの乗算と加算とを実行することに関与し得る。しかしながら、明示的重み付け予測に関して、第3のコード化ユニットまたはBフレームを予測するために使用されるフレームの総数での適切な除算を保証するために、第1および第2の重み付きブロックの和を1または何らかの他の数だけ右にシフトするより前に追加の1つまたは複数の丸め値またはオフセットが加算され得る。
一般に暗黙的重み付け予測と呼ばれる、第3の動き補償双予測アルゴリズムまたはモードは、たとえば、第1および第2の重みを判断するために第1および第2のブロックの各々を分析することができる設定されたアルゴリズムに従って、各識別されたブロックの重みを判断することに関与し得る。判断された後、このアルゴリズムは、第1および第2の重み付きブロックを発生するために、第1および第2のブロックに、それぞれ判断された第1および第2の重みを適用あるいは乗算し得る。重み付きブロックを判断した後、アルゴリズムは、次に、Bフレームを予測するために使用されるフレームの総数での除算を保証する値だけ和をシフトするより前に、丸め値またはオフセットとともに重み付きブロックを合計し得る。
動き補償ユニット35は、Bフレームの双予測ブロックを表す予測データを発生するために、これらの動き補償双予測アルゴリズムの各々を実施することができる。たとえば、動き補償ユニット32は、以下の式(1)に従ってデフォルト重み付け予測を実施することができる:
pred(i,j) = (pred0(i,j) + pred1(i,j)+1) >> 1 (1)
pred(i,j)は、予測フレーム、たとえば、Bフレームのi行j列のビデオブロックを表す予測データを指す。pred0(i,j)は、第1の参照フレームのi行j列のビデオブロックを表すデータを指し、ここで、第1の参照フレームはリスト0から選択される。pred1(i,j)は、第2の参照フレームのi行j列のビデオブロックを表すデータを指し、ここで、第1の参照フレームはリスト1から選択される。重みが等しいかまたはほぼ等しいので、式(1)において1を加算し、1ビットだけ右にシフトする(>>)ことは、pred0(i,j)+pred1(i,j)の和を2、たとえば、Bフレームの予測ビデオブロックを予測するために使用されるフレームまたはビデオブロックの総数で効果的に除算する。
動き補償ユニット35は、以下の式(2)に従って第2の動き補償双予測アルゴリズムまたは明示的重み付け予測を実施することができる:
pred(i,j)=(pred0(i,j)*w0+pred1(i,j)*w1+2r)>>(r+1)+ ((o1+o2+1)>>1) (2)
この場合も、pred(i,j)、pred0(i,j)およびpred1(i,j)の各々は、式(1)に関して上記で説明された同じ参照ビデオブロックを指す。重みが判断され、ほぼ等しくないことがあるので、式(2)は、それぞれpred0(i,j)およびpred1(i,j)に乗法的に適用される重みw0とw1とを含む。「r」変数は、重みw0およびw1が整数を生じることを保証するように選択された整数を表し得る。変数o1およびo2は、それぞれ丸めオフセットを表し、式(2)は、丸めオフセットと1を加算し、続いて、1だけ右にシフトすることによって、丸めオフセットo1とo2の平均を与える。ブロックの重み付き和はまた、Bフレームの予測ビデオブロックを予測するために使用される参照ビデオブロックの総数での適切な除算を保証するために、丸めオフセットの平均の加算より前にシフトされ得る。
動き補償ユニット35は、以下の式(3)に従って第3の動き補償双予測アルゴリズムまたは暗黙的重み付け予測を実施することができる:
pred(i,j) = (pred0(i,j)*w0+pred1(i,j)*w1+32)>>6 (3)
この場合も、pred(i,j)、pred0(i,j)およびpred1(i,j)の各々は、式(1)および式(2)に関して上記で説明された同じ参照ビデオブロックを指す。重みが判断され、ほぼ等しくないことがあるので、式(3)は、それぞれpred0(i,j)およびpred1(i,j)に乗法的に適用される重みw0とw1とを含む。値「32」は、重みw0およびw1が整数であることを保証するために使用される静的丸めオフセットを備え得、丸めオフセット32を仮定すれば、6だけ右にシフトすること(>>)は、総重み付きブロックの和をBフレームの予測ビデオブロックを予測するために使用されるフレームの総数で効果的に除算する除算を表し得る。
本開示の技法によれば、動き推定ユニット32は、Bフレームの動きベクトルを判断するための少なくとも2つのフレームを選択することができる。詳細には、上記で説明されたように、参照フレームストア34は、リスト0と呼ばれるビデオデータの参照フレームの第1のセットと、リスト1と呼ばれるビデオデータの参照フレームの第2のセットとを記憶するメモリを備えることができる。リスト1およびリスト0の参照フレームは、それぞれIフレームまたはPフレームを備えることができる。動き推定ユニット32は、参照フレームストア34にアクセスし、リスト0から1つまたは複数の参照フレームを選択し、リスト1から1つまたは複数の参照フレームを選択し得る。このようにして、動き推定ユニット32は、一態様では、ビデオデータの少なくとも2つのコード化ユニット、たとえば、フレームを選択し得る。
動き推定ユニット32は、次いで、予測Bフレームの第1のブロックの動きベクトルを判断し得る。動き推定ユニット32は、Bフレームの予測ブロックに対応する少なくとも2つの参照フレームのうちの第1のフレーム中の第1の対応するブロックと、Bフレームの予測ブロックに対応する少なくとも2つの参照フレームのうちの第2のフレーム中の第2の対応するブロックと、を識別することができる。一般に、第1のフレームおよび第2のフレームは、それぞれ第3のBフレームから時間的に離れている。しばしば、第1の参照フレームは、Bフレームに先立つまたはBフレームの前のビデオシーケンス中に存し、第2の参照フレームは、Bフレーム後のビデオシーケンス中に存する。しかしながら、いくつかの例では、第1および第2の参照フレームの両方は、Bフレームの前または後の様々な時間に存し得るかまたは生じ得る。いずれの場合も、動き推定ユニット32は、次いで、第1の参照フレームからの第1の参照ブロックと第2の参照フレームからの第2の参照ブロックとに基づいて動きベクトルを計算し得、参照ブロックの両方は、予測Bフレームの第3の予測ブロックに対して判断される。
動き推定ユニット32が、コーディングされるべきビデオブロックの動きベクトルを選択した後、動き補償ユニット35は、これらの動きベクトルに関連する予測ビデオブロックを発生する。動き補償ユニット35は、上記の式(1)で表されるように、デフォルト重み付け予測アルゴリズムに従ってBフレームの予測ビデオブロックの第1のバージョンを発生することができる。そうするために、動き補償ユニット35は、参照フレームストア34から式(1)によって指定された様々な参照ブロックを検索し、Bフレームの予測ビデオブロックを表す予測データを発生するために式(1)を実施し得る。次に、動き補償ユニット35は、Bフレームの予測ビデオブロックの第1のバージョンの上記のDCオフセット値または別のオフセット値を計算し得る。
一例では、動き補償ユニット35は、予測ビデオブロックを予測するために使用される第1および第2の参照フレームの参照ビデオブロックの各整数およびサブ整数ピクセルロケーションにそれぞれ関連するメトリックの第1のセット(たとえば、平均値)を計算し得る。動き補償ユニット35はまた、予測ビデオブロックの各整数およびサブ整数ピクセルロケーションにそれぞれ関連するメトリックの第2のセット(たとえば、平均値、あるいは輝度値および/またはクロミナンス値の和の差)を計算し得る。動き補償ユニット35は、次いで、メトリックの第1および第2のセットに基づいてオフセット値を計算する。動き補償ユニット35は、たとえば、第1のDCオフセットを、第1の参照ビデオブロックと予測ビデオブロックとについて計算された平均値の差として計算し得る。動き補償ユニット35は、次に、第2のDCオフセットを、第2の参照ビデオブロックと予測ビデオブロックとについて計算された平均値の差として計算し得る。動き補償ユニット35は、次いで、平均DCオフセットを発生するために、これらの第1および第2のDCオフセットの平均を計算し得る。オフセット値は、この場合も、ビデオ符号化中に遭遇されるシーンチェンジまたはフラッシュを示すために極めて有用であり得る、対応するビデオブロックのピクセル値の上方または下方へのバイアスを反映し得る絶対値または符号付き値を備え得る。
言い換えれば、メトリックの第1のセットは、所与のコード化ユニットのビデオブロックの各整数およびサブ整数ピクセルロケーションにおけるピクセル値の平均に対応する平均値のセットを備え得る。メトリックの第2のセットは、そのコード化ユニット中でコーディングされている現在のブロックを予測するために使用される予測ブロックの各整数およびサブ整数ピクセルロケーションにおけるピクセル値の平均に対応する平均値のセットを備え得る。複数のオフセット値は、平均値の第1のセットと平均値の第2のセットとの差を備え得る。各マクロブロックロケーションは、単一のピクセル、たとえば、それぞれのマクロブロックの左上隅のそれぞれのピクセルによって定義され得る。しかしながら、各マクロブロックは、平均値の第1のセット中の特定の平均値に寄与する16個のピクセル値を定義し得る。もちろん、これらのオフセット値は、他のサイズのビデオブロックについて同様に計算され得る。
一般に、所与の位置のオフセットは、そのピクセル位置またはサブピクセル位置に対応する動きベクトル精度を有する現在のフレーム(または他のコード化ユニット)中のすべてのピクセルの平均と、そのピクセル位置またはサブピクセル位置に対応する予測データの補間値の平均と、の差として計算され得る。したがって、それぞれのオフセットは、データのそれぞれの整数、補間または外挿位置の予測データに対するコード化ユニットのピクセルの平均差と見なされ得る。
動き補償ユニット35は、輝度ブロック、クロマブロックまたは両方に関するオフセット値を計算し得る。様々なオフセットは、各タイプのビデオブロック(たとえば、輝度ブロックおよびクロマブロック)に関連する各整数およびサブ整数ピクセルロケーションについて定義され得る。さらに、様々なオフセットは、各特定のサイズにおける各ブロック、各ブロックのパーティションまたはサブパーティションに割り当てられ得る。
オフセット値を計算した後、動き補償ユニット35は、個々のオフセット値の各々または平均オフセット値をしきい値と比較し得る。しきい値は、ビデオエンコーダ50のユーザによってプログラム的に設定され得るか、またはビデオエンコーダ50のハードウェア設計者によって静的に設定され得る。いくつかの例では、動き補償ユニット35は、第1、第2および第3のコード化ユニットのうちの1つまたは複数の様々なブロックのいくつかの分析に基づいて、自動的に、たとえば、ユーザの監督または入力を必要とすることなしに、しきい値を設定することができる。この点で、動き補償ユニット35は、比較を実行するときに、しきい値を自動的に適応させるかまたは調整することができる。しかしながら、一般に、設計者またはユーザは、しきい値をプログラム的に0に設定する。この比較に基づいて、動き推定ユニット35は、Bフレームの第3のブロックの第2のバージョンを予測するために、たとえば、それぞれ式(2)または式(3)のいずれかに従って明示的重み付け予測または暗黙的重み付け予測のいずれかを実行し得る。
たとえば、動き補償ユニット35は、計算されたオフセット値、またはいくつかの例では、計算されたオフセット値の絶対値がしきい値を超えるとき、予測ブロックの第2のバージョンを予測するために、式(2)に従って明示的重み付け予測を実行し得る。動き補償ユニット35は、Bフレームの第3のブロックまたは予測ブロックを予測するために、重みw0およびw1のためにデフォルト重み、たとえば、デフォルト重み付け予測中に使用される重みを使用することができる。その上、明示的重み付け予測を実行するとき、動き補償ユニット35は、いくつかの態様では、計算されたオフセットを使用することができる。[
計算されたオフセット値、または、いくつかの例では、計算されたオフセット値の絶対値がしきい値を超えないとき、すなわち、しきい値以下であるとき、動き補償ユニット35は、Bフレームの予測ビデオブロックの第2のバージョンを予測するために、式(3)に従って暗黙的重み付け予測を実行し得る。デフォルト重み付け予測に関して上記で説明されたように、動き補償ユニット35は、参照フレームストア34から式(2)または式(3)のいずれかによって指定された様々な参照ブロックを検索し得る。代替的に、動き補償ユニット35は、最初に、たとえば、上記の式(1)で表されるデフォルト重み付け予測アルゴリズムに従って、予測ビデオブロックの第1のバージョンを計算するためにこれらのブロックを検索した後、様々な参照ビデオブロックをローカルにキャッシュあるいは維持または記憶し得る。
Bフレームの予測ビデオブロックの第2のバージョンが明示的重み付け予測に従って予測されるか暗黙的重み付け予測に従って予測されるかにかかわらず、動き補償ユニット35は、デフォルト重み付け予測を実行することによって予測された予測ビデオブロックの第1のバージョンと、明示的重み付け予測または暗黙的重み付け予測のいずれかを実行することによって予測された予測ビデオブロックの第2のバージョンと、を互いに比較して、ビデオの対応する部分をより適切に表すバージョンを選択する。動き補償ユニット35は、この比較を実行するために、第1および第2のバージョンに対してレートひずみ(R−D)分析を実行し得る。上記で説明されたように、R−D分析は、バージョンの各々のコストを計算し、第1のバージョンと第2のバージョンとのうち、より低いコストが計算されたバージョンを選択することに関与し得る。このR−D分析は、一般に、レートとひずみのバランスをとる、すなわち詳しく述べると、予測ビデオブロックの第1および第2のバージョンを符号化する際に使用されるデータ量と、何らかの定量化された品質レベル、たとえば、ひずみのレベルまたは量と、のバランスをとる。
一例として、動き補償ユニット35は、ラグランジュ(Langrangian)コスト関数を与える以下の式(4)に従って、第1および第2のバージョンの各々について計算されるコストにR−D分析の基礎をおくことができる:
Fc = d + (λo * R) (4)
cは、コスト関数を表す変数を備える。文字「d」は、第1および第2のバージョンをそれぞれビデオの対応する部分と比較することによって計算される第1のひずみ値または第2のひずみ値のいずれかを表す変数を備える。動き補償ユニット35は、一般に、ピーク信号対雑音比(PSNR)を最大にするために、第1および第2のひずみを平均2乗誤差として計算または測定する。ラムダまたは「λo」は、特定の品質レベルのビットコストと品質との間の関係を表す値であるラグランジュ乗数を表す変数を備える。文字「R」は、ビデオが符号化されるビットレートを表す変数を備える。
動き補償ユニット35は、したがって、予測ビデオブロックのそれぞれの第1および第2のバージョンについて第1および第2のひずみ値を計算し、ラグランジュ乗数とビットレートの両方の値を定義するデータを記憶し得る。第1および第2のバージョンの各々について、動き補償ユニット35は、式(4)に従ってコストを判断し、これらの第1のコストと第2のコストとを互いに比較し得る。動き補償ユニット35は、次いで、第1のコストと第2のコストの比較に基づいて第1のバージョンと第2のバージョンとのうちの1つを選択する。いくつかの態様では、動き補償ユニット35は、第1のバージョンと第2のバージョンとのうち、より低いコストが判断されたバージョンを選択する。
動き補償ユニット35が明示的重み付け予測アルゴリズムによって予測された第2のバージョンを選択した場合、動き補償ユニット35は、オフセット予測ビデオブロックを発生するために元の予測ビデオブロックにDCオフセット値を適用し、オフセット予測ビデオブロックに基づいてコード化ユニットのビデオブロックを符号化し得る。予測ブロックのピクセルロケーション(整数ロケーション、または複数の可能なサブ整数ピクセルロケーションのうちの1つ)に従うロケーションベース様式でオフセットを予測ブロックのピクセル値に加算することによって、予測ブロックは、コーディングされているブロックとより類似することがあり得、符号化効率を改善することができる。その上、オフセット値が様々なピクセルロケーションに対して別様に定義されるので、これらのオフセット値は、様々なタイプの補間に関連するデータのコーディングの間でセグメンテーションを達成する能力を与えることができる。しかしながら、動き補償ユニット35が暗黙的重み付け予測によって予測された第1のバージョンまたは第2のバージョンのいずれかを選択した場合、動き補償ユニット35は、計算されたオフセット値を加算することなしにブロックを符号化し得る。このようにして、動き補償ユニット35は、Bフレームの第3のビデオブロックまたは予測ビデオブロックを表す予測データを発生することができる。
ビデオエンコーダ50は、次いで、コーディングされている元のビデオブロックから予測データを減算することによって残差ビデオブロックを形成する。加算器48は、この減算演算を実行する1つまたは複数のコンポーネントを表す。変換ユニット38は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換ブロック係数を備えるビデオブロックを生成する。変換ユニット38は、たとえば、概念的にDCTと同様である、H.264規格によって定義される変換などの他の変換を実行することができる。また、ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換が使用され得る。いずれの場合も、変換ユニット38は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル領域から周波数領域に変換することができる。
量子化ユニット40は、ビットレートをさらに低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。たとえば、16ビット値は、量子化中に15ビット値まで切り捨てられ得る。さらに、量子化ユニット40はまた、第2のバージョンが明示的重み付け予測によって予測される場合、様々なオフセットのそれぞれの整数および少数部分に所望のビット数を割り振るために様々なオフセットを量子化することができる。特に、量子化ユニットは、オフセット値の各々に対して、第1のビット数を所与のオフセット値の整数部分に割り当て、第2のビット数を所与のオフセット値の小数部分に割り当てることができ、第1および第2のビット数は、整数部分の絶対値に基づいて判断される。エントロピーコーディングユニット46は、第2のビット数とは別様に第1のビット数を符号化することができる。
量子化の後、エントロピーコーディングユニット46は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピーコーディングユニット46は、コンテンツ適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、または別のエントロピーコーディング方法を実行することができる。エントロピーコーディングユニット46によるエントロピーコーディングの後、符号化ビデオは、別のデバイスに送信されるか、あるいは後で送信または検索するためにアーカイブされ得る。コード化ビットストリームは、エントロピーコード化残差ブロックと、そのようなブロックの動きベクトルと、コード化ユニット内で様々な整数およびサブ整数ピクセルロケーションにおける複数の異なるオフセットを識別するオフセット値を含む他のシンタックスと、を含むことができる。
逆量子化ユニット42および逆変換ユニット44は、たとえば、上記で説明された方法で参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。加算器51は、再構成された残差ブロックを、動き補償ユニット35によって生成された動き補償予測ブロックに加算して、参照フレームストア34に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインター符号化するための参照ブロックとして動き推定ユニット32および動き補償ユニット35によって使用され得る。
このようにして、ビデオエンコーダ50は、3つの動き補償双予測アルゴリズムの間で効率的に選択するための本開示の技法を実装することができる。動き補償ユニット35は、3つの動き補償双予測アルゴリズムのすべてを実行し、次いで、3つの得られたバージョンのうちビデオデータをより適切に表すバージョンを選択するのではなく、3つの動き補償双予測アルゴリズムのうちの2つのみを実行するので、選択は効率的である。したがって、本技法は、アルゴリズムのうちの少なくとも1つの実行をなくすことによって、より効率的な選択を可能にするだけでなく、第1および第2のバージョンのみがR−D分析の対象であるので、追加のR−D分析のコスト関数計算をなくす。この点で、本技法は、3つの動き補償双予測アルゴリズムの間でより効率的に選択するためにビデオエンコーダ50によって実装され得る。
図3は、図2の動き補償ユニット35の一例をより詳細に示すブロック図である。図3の例に示されるように、動き補償ユニット35は、コード化ユニットまたは参照フレームの上述の第1および第2のセットをリスト0 52Aおよびリスト1 52Bとして記憶する参照フレームストア34に結合する。動き補償ユニット35は、最初に、参照フレームストア34から少なくとも2つの参照フレームを検索し得る。一般に、動き補償ユニット35は、リスト0 52Aから少なくとも1つのフレームを検索し、リスト1 52Aから少なくとも1つのフレームを検索する。リスト0 52Aおよびリスト1 52Bのこれらのフレームは、本開示では、それぞれ第1の参照フレームおよび第2の参照フレームと呼ばれることがある。しばしば、動き補償ユニット35は、動き推定ユニット32によって示される第1および第2の参照フレームを検索する。
図3にさらに示されるように、動き補償ユニット35は、デフォルト予測モジュール54と、オフセット計算モジュール56と、コンパレータ58と、明示的予測モジュール60と、暗黙的予測モジュール62と、レートひずみ(R−D)分析モジュール64(「R−D分析モジュール64」)と、を含む。デフォルト予測モジュール54は、式(1)に関して上記で説明されたデフォルト重み付け予測アルゴリズムを実施するハードウェアおよび/またはソフトウェアモジュールを表し得る。オフセット計算モジュール56は、上記で説明された方法でDCオフセット値などのオフセット値を計算するハードウェアおよび/またはソフトウェアモジュールを表し得る。
コンパレータ58は、オフセット値を、しきい値66として図3に示されるしきい値と比較するハードウェアおよび/またはソフトウェアモジュールを表し得る。明示的予測モジュール60は、式(2)に関して上記で説明された明示的重み付け予測アルゴリズムを実施するハードウェアおよび/またはソフトウェアモジュールを表し得る。暗黙的予測モジュール62は、式(3)に関して上記で説明された暗黙的重み付け予測アルゴリズムを実施するハードウェアおよび/またはソフトウェアモジュールを表し得る。R−D分析モジュール64は、上記で説明されたR−D分析を実施するハードウェアおよび/またはソフトウェアモジュールを表し得る。R−D分析モジュール64は、式(4)によって表されるコスト関数などのコスト関数68を実装し、コスト70Aおよび70B(「コスト70」)を計算するためにコスト関数68を採用することができる。R−D分析は、これらのコスト70に分析の基礎をおくことができる。
様々なモジュール54〜64を備えるものとして図3に示されているが、これらのモジュール54〜64は例示のために与えられている。モジュール54〜64のうちの1つまたは複数は、動き補償ユニット35内で一体型モジュールとして実装され得る。代替的に、動き補償ユニット35は、一般に、プロセッサ上で実行するソフトウェアまたはコンピュータプログラムを備えることができる。この場合、様々なモジュールは、したがって、より大きいソフトウェアプログラムのソフトウェアモジュールまたはコンポーネントを表し得る。ソフトウェアプログラムは、プロセッサによって実行可能であり、プロセッサに本開示で説明される技法を実行させる、複数の命令を備えることができる。
いずれの場合も、第1および第2の参照フレームを検索あるいは受信した後、動き補償ユニット35は、上式(1)に従って、Bフレーム(またはより一般的には、予測フレーム)の予測ビデオブロックの第1のバージョンを表す予測データを発生するためにデフォルト予測モジュール54を呼び出すか、あるいはデフォルト予測モジュール54に予測データを発生させ得る。デフォルト予測モジュール54は、この第1のバージョンをオフセット計算モジュール56に出力し得、オフセット計算モジュール56は、上記で説明された方法でオフセット値を計算し得る。すなわち、オフセット計算モジュール56は、第1のバージョンと、元のビデオデータまたは第1および第2の参照フレーム内の対応するブロックとの間の比較に基づいてオフセット値を計算し得る。いくつかの例では、オフセット計算モジュール56は、オフセット値の絶対値を判断し、これらのオフセット値をこの絶対値形式で出力し得る。オフセット計算モジュール56は、これらのオフセット値をコンパレータ58にフォワーディングし得、コンパレータ58はオフセット値をしきい値66と比較し得る。しきい値66は、プログラム的に、自動的に、または静的に設定され得る。一般に、しきい値66は値0に設定される。
比較に基づいて、コンパレータ58は、明示的予測モジュール60と暗黙的予測モジュール62の両方に活動化コードを発行し得る。活動化コードは、明示的予測モジュール60と暗黙的予測モジュール62の両方ではなく一方または他方を活動化し得る。上記の例で説明されたように、オフセット値のうちの1つまたは複数がしきい値66を超えるとき、コンパレータ58は、暗黙的予測モジュール62ではなく明示的予測モジュール60を活動化する活動化コードを発生し、送信し得る。オフセット値のうちの1つまたは複数がしきい値66を超えないとき、コンパレータ58は、明示的予測モジュール60ではなく暗黙的予測モジュール62を活動化する活動化コードを発生し、送信し得る。
活動化コードに基づいて、明示的予測モジュール60または暗黙的予測モジュール62のいずれかは予測フレームの予測ビデオブロックの第2のバージョンを発生する。明示的予測モジュール60または暗黙的予測モジュール62のうちの活動化された1つは、この第2のバージョンをR−D分析モジュール64に送信し得る。活動化コードに関して説明されたが、明示的予測モジュール60または暗黙的予測モジュール62の活動化は、多くの方法で起こり得る。いくつかの実施形態では、明示的予測モジュール60および暗黙的予測モジュール62は、予測ビデオブロックの様々なバージョンを発生することができる。これらの実施形態では、マルチプレクサまたは他の選択論理が、活動化コードに基づいて、これらの様々なバージョンから第2のバージョンを選択し、選択されたバージョンまたは第2のバージョンをR−D分析モジュール64に送信することができる。
第2のバージョンがどのように得られるかまたは判断されるかにかかわらず、R−D分析モジュール64はまた、ある時点で同じ予測ビデオブロックの第1のバージョンを受信し得る。R−D分析モジュール64は、第1および第2のバージョンについて上記で説明された方法で第1および第2のひずみ値72A、72B(「ひずみ72A」および「ひずみ72B」)を判断し得る。R−D分析モジュール64はまた、ラムダ値74(「ラムダ74」)およびビットレート値76(「レート76」)を記憶あるいは維持し得る。R−D分析モジュール64は、ひずみ値72A、72B(「ひずみ値72」)のうちの適切な1つと、ラムダ値74と、ビットレート値76と、をコスト関数68への入力として供給し得、コスト関数68は、第1のバージョンに関連するコスト値70Aを出力する。R−D分析モジュール64は、ひずみ値72のうちの適切な1つと、ラムダ値74と、ビットレート値76とをコスト関数68への入力として供給し得、コスト関数68は、第2のバージョンに関連するコスト値70Bを出力する。
R−D分析モジュール76は、次いで、コスト70のいずれが他方よりも低いかを判断するために、コスト70を互いに比較し得る。R−D分析モジュール76は、次いで、コスト70のうちのより低い1つが計算された予測ビデオブロックの第1のバージョンまたは第2のバージョンのいずれかを出力し得る。R−D分析モジュール76は、第1のバージョンと第2のバージョンとのうちの、このより低いコストの1つを、予測ビデオブロックを表す予測データとして出力し得る。いくつかの例では、R−D分析モジュール64は、上記で説明されたように、明示的予測モジュール60によって予測された第2のバージョンと、オフセット計算モジュール56によって計算されたオフセット値と、を予測データとして出力する。
第3のコード化ユニットの3つのバージョンではなく2つのバージョンに対してR−D分析を実行するだけでよいことの結果として、動き推定ユニット35は、予測ビデオブロックをより効率的に符号化することができる。この効率は、計算効率を指し得、また、より効率的な電力消費につながり得る。
予測ビデオブロックに関して上記で説明されたが、本技法は、フレームの任意の他の部分、たとえばスライス、ならびにフレーム全体に適用することができる。式(1)〜式(3)に関して上記で注目されたように、proj、proj0およびproj1変数はそれぞれの参照フレームの特定のブロックを指す。本技法は、フレームからそのフレームのすべてのブロック代表として選択された特定のブロックに適用され得、選択されたバージョンに応じて、動き補償ユニット35は、予測フレーム全体を符号化するために、選択された参照ブロックに関して判断された予測アルゴリズムと同じ予測アルゴリズムを適用することができる。代替的に、予測フレームの各個のブロックは、所与の予測フレーム中の各予測ブロックのための予測モードを効率的に選択するための、本開示で説明される技法を受けることができる。他の態様では、本技法は、スライスレベルにおいて上記で説明された2つの方法のいずれかで適用され得る。したがって、上記で説明された予測アルゴリズムのうちの特定の1つを予測ビデオブロックに対して実行することへの本開示における言及は、限定するものと見なされるべきではない。そうではなく、予測ビデオブロックへの言及は、一般に、上記の例のいずれか、ならびに本開示で明示的に説明されていないが、本開示から容易に理解または推定される例を包含することができる。
図4は、本開示で説明される技法を実行する際のビデオエンコーダの例示的な動作を示すフローチャートである。図2の特定のビデオエンコーダ50、より詳細には、ビデオエンコーダ50の特定のコンポーネント、たとえば、図3の動き補償ユニット35に関して説明されたが、本技法は、図1に関して上述されたデバイスのいずれかによってハードウェアおよび/またはソフトウェアで実装され得る。
最初に、動き補償ユニット35、より詳細には、デフォルト予測モジュール54は、たとえば、上式(1)に従って、それぞれの第1および第2の参照フレームの第1および第2参照ビデオブロックからBフレームの予測ビデオブロックの第1のバージョンを発生するためにデフォルト重み付け予測実行する(78)。上記で説明されたように、動き補償ユニット35は、参照フレームストア34から第1および第2の参照フレームの全体、または第1および第2の参照ビデオブロックのみのいずれかを検索し得る。デフォルト予測モジュール54は、次いで、第1のバージョンをオフセット計算モジュール56に渡し得、オフセット計算モジュール56は、1つまたは複数のオフセット値、たとえば、平均DCオフセット値を絶対値形式で計算し得る(80)。オフセット計算モジュール56は、次いで、これらの1つまたは複数のDCオフセット値をコンパレータ58にフォワーディングし得る。
コンパレータ58は、これらの1つまたは複数のDCオフセット値をしきい値66と比較し得る(82)。比較に基づいて、コンパレータ58は、明示的予測モジュール60または暗黙的予測モジュール62の両方ではなく、いずれかを活動化するために活動化信号を発行し得る。図4に示す例示的な動作では、コンパレータ58は、DCオフセット値がしきい値66を超えると判断したとき、活動化信号によって明示的予測モジュール60を活動化し得る(「YES」82)。しかしながら、DCオフセットがしきい値66を超えないと判断したとき、コンパレータ58は、活動化信号によって暗黙的予測モジュール62を活動化し得る(「NO」82)。
DCオフセット値がしきい値66を超え、コンパレータ58が明示的予測モジュール60を活動化するための活動化信号を発行した場合には、明示的予測モジュール60は、上記で説明されたように、第1および第2の参照ビデオブロックから予測ビデオブロックの第2のバージョンを発生するために、たとえば、上式(2)に従って明示的重み付け予測を実行する(84)。DCオフセット値がしきい値66を超えず、コンパレータ58が暗黙的予測モジュール62を活動化するための活動化信号を発行した場合には、暗黙的予測モジュール62は、上記で説明されたように、第1および第2の参照ビデオブロックから予測ビデオブロックの第2のバージョンを発生するために、たとえば、上式(3)に従って暗黙的重み付け予測を実行する(86)。明示的予測モジュール60または暗黙的予測モジュール62のいずれが第2のバージョンを発生するかにかかわらず、それぞれ活動化されたモジュール60、62のうちの一方は、第2のバージョンをR−D分析モジュール64に渡す。
R−D分析モジュール64はまた、上記で説明されたように、予測ビデオブロックの第1のバージョンも受信し、第1のバージョンと第2のバージョンとのうちのより適切な1つを選択する(88)。すなわち、R−D分析モジュール64は、それぞれ第1のバージョンおよび第2のバージョンの各々のコスト70Aおよび70Bを発生するために、たとえば、上式(4)に従って、上述のR−D分析を実行し、コスト70A、70Bのうちの最も低い1つに関連する、第1のバージョンと第2のバージョンとのうちの1つを選択し得る。この選択されたバージョンは、所与のビットレートについて、予測ビデオデータが対応する元のビデオデータを「より適切に」表す。動き補償ユニット35は、次いで、この選択されたバージョンを出力し得、ビデオエンコーダ22は、それを予測Bフレームの予測ビデオブロックとして符号化することに進み得る。
一態様では、動き補償ユニット35は、計算されたDCオフセット値の絶対値がしきい値を超えるとき、デフォルト重み付け予測によって発生された予測ビデオブロックの第1のバージョンと、デフォルト重みを使用して明示的重み付け予測によって発生された同じ予測ビデオブロックの第2のバージョンとの間で選択するために、上式(4)に従ってR−D分析を実行することができる。動き補償ユニット35は、言い換えれば、デフォルト重みを明示的に符号化するかデフォルト重みを明示的に符号化しないかの間で選択することができる。上記で示唆されるように、明示的重み付け予測を実行するとき、動き推定ユニット35はまた、計算されたDCオフセット値を符号化し得るので、この選択が生じる。
しかしながら、計算されたDCオフセットの絶対値がしきい値を超えないとき、動き補償ユニット35は、デフォルト重み付け予測によって発生された予測ビデオブロックの第1のバージョンと、暗黙的に判断された重みを使用して暗黙的重み付け予測によって発生された同じ予測ビデオブロックの第2のバージョンと、の間で選択するために、上式(4)に従ってR−D分析を実行することができる。この点で、動き補償ユニット35は、符号化するためにDCオフセットは必要ないと判断し、したがって、第1のバージョンと第2のバージョンとの間で選択することができる。この計算されたDCオフセットをしきい値と比較することの結果として、動き補償ユニット35は、言い換えれば、第2のバージョンを発生し、第1のバージョンまたは第2のバージョンのいずれかとして予測ビデオブロックを符号化するために、暗黙的重み付け予測と明示的重み付け予測のいずれかを実行することの間で選択し、暗黙的重み付け予測および明示的重み付け予測のうちの選択されない1つを実行することなしに、暗黙的重み付け予測および明示的重み付け予測のうちの選択された1つを実行することができる。
図5は、本開示で説明される技法を実行する際のビデオエンコーダの例示的な動作をより詳細に示すフローチャートである。同じく、図2の特定のビデオエンコーダ50、より詳細には、ビデオエンコーダ50の特定のコンポーネント、たとえば、図3の動き補償ユニット35に関して説明されたが、本技法は、図1に関して上述されたデバイスのいずれかによってハードウェアおよび/またはソフトウェアで実装され得る。
最初に、動き補償ユニット35は、上記で説明されたように、参照フレームストア34から2つの参照ビデオデータユニット、たとえば、参照ビデオブロックを受信する(100)。代替的に、動き補償ユニット35は、2つの参照ビデオデータユニットのうちの1つをそれぞれ含む2つの参照コード化ユニット、たとえば、参照フレームを受信し得る。デフォルト予測モジュール54は、たとえば、式(1)に関して上記で説明された方法で参照ビデオブロックを使用してデフォルト重み付け予測を実行して、2つの、たとえば、第1のおよび第2の参照ビデオブロックから予測ビデオデータユニット、たとえば、予測ビデオブロックの第1のバージョンを発生し得る(102、104)。第1のバージョンを発生した後、デフォルト予測モジュール54は、第1のバージョンをオフセット計算モジュール56に出力し得る。
オフセット計算モジュール56は、この場合も上記で説明された方法で、予測ビデオブロックの第1のバージョンについて上述のDCオフセット値などのオフセット値を計算し得る(106)。オフセット計算モジュール56は、次いで、オフセット値をコンパレータ58に出力し得、コンパレータ58はオフセット値をしきい値66と比較することに進む(108)。1つまたは複数、平均値、場合によってはすべて、あるいは計算されたオフセット値から導出された他のメトリックがしきい値66を超える場合(「YES」110)、コンパレータ58は、暗黙的予測モジュール62ではなく明示的予測モジュール60を活動化する活動化コードを発生し、出力し得る。1つまたは複数、平均値、平均、場合によってはすべて、あるいは計算されたオフセット値から導出されたメトリックがしきい値66を超えない場合(「NO」110)、コンパレータ58は、明示的予測モジュール60ではなく暗黙的予測モジュール62を活動化する活動化コードを発生し、出力し得る。
明示的予測モジュール60が活動化された場合、明示的重み付け予測モジュール60は、2つの参照ビデオブロックを使用して、たとえば、式(2)に関して上記で説明された方法で明示的予測を実行して、2つの参照ビデオブロックから予測ビデオデータユニット、たとえば、予測ビデオブロックの第2のバージョンを予測または発生する(112、116)。しかしながら、暗黙的予測モジュール62が活動化された場合、暗黙的重み付け予測モジュール52は、参照ビデオブロックを使用して、たとえば、式(3)に関して上記で説明された方法で暗黙的予測を実行して、参照ビデオブロックから予測ビデオブロックの第2のバージョンを予測または発生する(114、116)。いずれのモジュールが予測ビデオブロックの第2のバージョンを発生するかにかかわらず、明示的重み付け予測モジュール60または暗黙的重み付け予測モジュール62のいずれかは、第2のバージョンをR−D分析モジュール64に出力する。
R−D分析モジュール64はまた、予測ビデオブロックの第1のバージョンも受信し得、第1および第2のコスト72を判断するために、たとえば、式(4)に関して上記で説明された方法でR−D分析を実行し得る(118)。R−D分析モジュール64は、次いで、コスト72のうちのより低い1つを選択し得る(120)。R−D分析モジュール64は、コスト72のうちのより低い1つを選択する際に、第1のバージョンまたは第2のバージョンのいずれでも、コスト72のうちのより低い1つに関連するほうを選択し、コスト72のうちのより低い1つに関連するこのバージョンを第3のコード化ユニットとして符号化する(122)。
図6は、コード化ユニット124A〜124Eの例示的な時間的順序付きシーケンスを示す図である。すなわち、コード化ユニット124Aは、時間的にコード化ユニット124Bの前に生じ、コード化ユニット124Bは時間的にコード化ユニット124Cの前に生じ、コード化ユニット124Cは、時間的にコード化ユニット124Dの前に生じ、コード化ユニット124Dは、時間的にコード化ユニット124Eの前に生じる。コード化ユニット124A〜124E(「コード化ユニット124」)は時間的に次のコード化ユニットの前に生じるが、コード化ユニット124のうちの1つまたは複数はコード化ユニット124のうちの別のコード化ユニットの前に符号化され得る。たとえば、コード化ユニット124Aおよび124Eは、それぞれ、コード化ユニット124のうちのあらゆる他のコード化ユニットから独立して(Iフレームの「I」)コード化されるIフレームを表し、コード化ユニット124Bおよび124Dは、それぞれ、コード化ユニット124のうちの少なくとも1つの他のコード化ユニットから予測(Pフレームの「P」)符号化されるPフレームを表す。したがって、Iフレーム124EはPフレーム124Dの後に生じるが、Iフレーム124Eの符号化は、符号化されていることも、まだ符号化されていないこともある別のフレームに依存することがないので、Iフレーム124Eは時間的にPフレーム124Dの前にコード化されることができる。
いずれの場合も、コード化ユニット124Cは、上記で説明された3つの動き補償双方向(Bフレームの「B」)予測アルゴリズムのうちの1つに従って符号化されるBフレームを表し得る。図3に示されるように、Bフレーム124Cのビデオデータユニット126は、時間的に前のフレームの部分またはビデオデータユニット、たとえば、Pフレーム124Bのビデオデータユニット128と、時間的に後または将来のフレームの部分またはビデオデータユニット、たとえば、Pフレーム124Dのビデオデータユニット130と、の両方から予測され得る。時間的に前の第1のフレーム124Bと時間的に後の第2のフレーム124Dとから双方向予測されるものとして説明されたが、ビデオデータユニット104は、2つの後続のコード化ユニット124または2つの前のコード化ユニット124から双方向予測され得る。ビデオデータユニット126、128および130は、それぞれ、マクロブロックまたは任意のサイズの他のビデオブロックなど、対応するビデオブロックを表し得る。対応するビデオブロックは、各ブロックが、一例として、その平均値が設定または適応許容差内であるピクセルデータを定義するという点で、互いに同様である1対のビデオブロックを備え得る。その上、2つの直接隣接するフレーム124Bおよび124Dから双方向予測されるものとして示されているが、ビデオデータユニット126は、コード化ユニット124Aやコード化ユニット124Eなど、Bフレーム124Cに隣接していないフレームから双方向予測され得る。この点で、本技法は、本開示で与えられる例に限定されるべきではない。
動き推定ユニット32は、ビデオデータユニット126に対応するこれらの部分すなわちビデオデータユニット128および130の位置を特定し、例示のために、動きベクトル132Aおよび132B(「動きベクトル132」)を判断し得る。動き補償ユニット35は、参照フレームストア34にアクセスし、Pフレーム124Bおよび124D(「Pフレーム124」)を検索することによって、または動き推定ユニット32から直接、これらのビデオデータユニット128および130を受信し得る。特に、Pフレーム124のうちの一方は、リスト0 52Aと呼ばれるフレームのセットからのフレームを備え得、Pフレーム124のうちの他方はリスト1 52Bと呼ばれるフレームのセットからのフレームを備え得る。
動き補償ユニット35は、次いで、部分128および130を使用して、可能な3つの動き補償双方向予測アルゴリズムのうちの2つのみを実行することによって発生されるビデオデータユニット126の2つのバージョンのうちの1つを効率的に選択するための、本開示で説明される技法を実施し得る。この例では、本技法は、コード化ユニットすなわちBフレーム124Cの、マクロブロックまたは他のサイズのビデオブロックなど、部分すなわちビデオデータユニットを予測するために適用される。ビデオデータユニット126などの部分に適用されるか、コード化ユニット124Cなどのコード化ユニット全体に適用されるかにかかわらず、本技法は、3つのバージョンではなく2つのバージョンの間で効率的に選択することができる。
本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。モジュール、ユニット、またはコンポーネントとして説明される特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。場合によっては、様々な特徴は、集積回路チップまたはチップセットなどの集積回路デバイスとして実装され得る。ソフトウェアで実装される場合、これらの技法は、実行されると、上記で説明された方法のうちの1つまたは複数をプロセッサに実行させる命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現され得る。
コンピュータ可読媒体は、パッケージング材料を含むことがある、コンピュータプログラム製品の一部をなすことができる。コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などのコンピュータデータ記憶媒体を備えることができる。本技法は、追加または代替として、命令またはデータ構造の形態でコードを搬送または伝達し、コンピュータによってアクセス、読取り、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
コードまたは命令は、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明される技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明される機能は専用のソフトウェアモジュールまたはハードウェアモジュールの内部に与えられ得る。本開示はまた、本開示で説明された技法の1つまたは複数を実装する回路を含む様々な集積回路デバイスのいずれかを企図する。そのような回路は、単一の集積回路チップ、またはいわゆるチップセット中の複数の相互運用可能な集積回路チップで提供され得る。そのような集積回路デバイスは様々な適用例において使用され得、適用例のいくつかは携帯電話ハンドセットなどのワイヤレス通信デバイスでの使用を含み得る。
本発明の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。

Claims (39)

  1. それぞれの第1および第2の参照ビデオデータユニットをそれぞれ備える、ビデオデータの第1および第2の参照コード化ユニットを受信すること、
    それぞれ時間的に前記予測コード化ユニットの前または後のいずれかに生じる、前記第1および第2の参照ビデオデータユニットから、前記ビデオデータの予測コード化ユニットの予測ビデオデータユニットの第1のバージョンを予測するために、デフォルト重み付け予測を実行すること、
    前記予測ビデオデータユニットの前記第1のバージョンのオフセット値を計算すること、
    前記計算されたオフセット値に基づいて暗黙的重み付け予測モードまたは明示的重み付け予測モードのいずれかを選択すること、
    前記第1および第2の参照ビデオデータユニットから前記予測ビデオデータユニットの第2のバージョンを予測するために前記選択されたモードを実行すること、
    前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化すること、
    を備える、ビデオデータを符号化する方法。
  2. 前記オフセット値の絶対値を計算すること、および、
    前記オフセット値の前記絶対値をしきい値と比較すること、
    をさらに備え、
    暗黙的重み付け予測モードまたは明示的重み付け予測モードのいずれかを選択することは、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために、前記比較に基づいて前記暗黙的重み付け予測モードまたは前記明示的重み付け予測モードのいずれかを選択することを備える、請求項1に記載の方法。
  3. いずれかの前記選択されたモードを実行することは、
    前記オフセット値の前記絶対値が前記しきい値を超えるとき、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために明示的重み付け予測を実行すること、および、
    前記オフセット値の前記絶対値が前記しきい値を超えないとき、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために暗黙的重み付け予測を実行すること、
    を備える、請求項2に記載の方法。
  4. 前記予測ビデオデータユニットの前記第1のバージョンと前記第2のバージョンのどちらが前記ビデオデータをより適切に符号化するかを判断することをさらに備え、
    前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化することは、前記判断に基づいて前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化することを備える、請求項1に記載の方法。
  5. 前記予測ビデオデータユニットの前記第1のバージョンと前記第2のバージョンのどちらが前記ビデオデータをより適切に符号化するかを判断することは、
    それぞれ前記第1および第2のバージョンによって導入されるひずみの量を示す、第1および第2のひずみ値を判断するために、前記予測ビデオデータユニットの前記第1および第2のバージョンの各々を、前記ビデオデータの対応する部分と比較すること、
    前記それぞれの第1および第2のひずみ値に基づいて前記予測ビデオデータユニットの前記第1および第2のバージョンの第1と第2のコストとを計算すること、
    前記第1のコストと第2のコストのどちらがより低いかを判断するために前記第1のコストと第2のコストとを比較すること、および、
    前記比較に基づいて前記第1のバージョンまたは前記第2のバージョンのいずれかを選択すること、
    を備える、請求項4に記載の方法。
  6. 前記第1と前記第2のコストとを計算することは、以下のコスト関数:
    Fc = d + (λo * R)
    に従って、前記第1および第2のコストの各々を計算することを備え、ここで、Fcは、前記コスト関数を表す変数を備え、dは、前記第1のひずみ値または前記第2のひずみ値のいずれかを表す変数を備え、λoは、ラグランジアンを表す変数を備え、Rは、前記ビデオデータが符号化されるビットレートを表す変数を備える、請求項5に記載の方法。
  7. 前記第1の参照コード化ユニットは、時間的に前記予測コード化ユニットの前に生じ、
    前記第2の参照コード化ユニットは、時間的に前記予測コード化ユニットの後に生じ、
    前記予測コード化ユニットは、双方向予測フレーム(Bフレーム)を備え、かつ、
    前記第1および第2のコード化ユニットは、独立コード化フレーム(Iフレーム)、予測フレーム(Pフレーム)、または別のBフレームのうちの1つをそれぞれ備える、請求項1に記載の方法。
  8. 前記第1および第2の参照コード化ユニットを受信することは、第1の参照ビデオブロックを含む第1の参照フレームと、第2の参照ビデオブロックを含む第2の参照フレームと、を受信することを備え、
    前記デフォルト重み付け予測を実行することは、前記第1および第2の参照ビデオブロックから予測フレームの予測ビデオブロックの第1のバージョンを予測するために前記デフォルト重み付け予測を実行することを備え、前記第1および第2の参照フレームは、時間的に前記予測ビデオフレームの前または後のいずれかに生じ、
    前記オフセット値を計算することは、前記予測フレームの前記予測ビデオブロックの前記第1のバージョンの前記オフセット値を計算することを備え、
    前記計算されたオフセット値に基づいて前記暗黙的重み付け予測モードまたは前記明示的重み付け予測モードのいずれかを選択することは、前記計算されたオフセット値に基づいて前記暗黙的重み付け予測モードまたは前記明示的重み付け予測モードのいずれかを選択することを備え、
    前記選択されたモードを実行することは、前記第1および第2の参照ビデオブロックから前記予測フレームの前記予測ビデオブロックの第2のバージョンを予測するために前記選択されたモードを実行することを備え、かつ、
    前記予測ビデオデータユニットを符号化することは、前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測フレームの前記予測ビデオブロックを符号化することを備える、請求項1に記載の方法。
  9. 前記予測ビデオデータユニットを符号化することは、前記予測ビデオデータユニットの前記第2のバージョンが前記明示的重み付け予測を使用して予測された前記第2のバージョンを備えるとき、前記予測ビデオデータユニットを前記予測ビデオデータユニットの前記第2のバージョンとして符号化することと、前記第2のバージョンに加えて前記オフセット値を符号化することと、を備える、請求項1に記載の方法。
  10. 前記方法は、ビデオエンコーダまたはビデオエンコーダ/デコーダ(CODEC)によって実行される、請求項1に記載の方法。
  11. 第1および第2の参照コード化ユニットを記憶するメモリであって、前記第1の参照コード化ユニットが第1の参照ビデオデータユニットを含み、前記第2の参照コード化ユニットが第2の参照ビデオデータユニットを含む、メモリ、および、
    それぞれ時間的に前記予測コード化ユニットの前または後のいずれかに生じる、前記第1および第2の参照ビデオデータユニットから、前記ビデオデータの予測コード化ユニットの予測ビデオデータユニットの第1のバージョンを予測するために、デフォルト重み付け予測を実行し、前記予測ビデオデータユニットの前記第1のバージョンのオフセット値を計算し、前記計算されたオフセット値に基づいて暗黙的重み付け予測モードまたは明示的重み付け予測モードのいずれかを選択し、前記第1および第2の参照ビデオデータユニットから前記予測ビデオデータユニットの第2のバージョンを予測するために、前記選択されたモードを実行し、かつ、前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化する、動き補償ユニット、
    を含むビデオエンコーダを備える、ビデオデータを符号化する装置。
  12. 前記動き補償ユニットは、
    前記オフセット値の絶対値を計算するオフセット計算モジュール、および、
    前記オフセット値の前記絶対値をしきい値と比較するコンパレータ、
    を備え、
    前記動き補償ユニットは、前記比較に基づいて前記暗黙的重み付け予測モードまたは前記明示的重み付け予測モードのいずれかを選択する、請求項11に記載の装置。
  13. 前記動き補償ユニットは、
    前記オフセット値の前記絶対値が前記しきい値を超えるとき、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために明示的重み付け予測を実行する明示的予測モジュール、および、
    前記オフセット値の前記絶対値が前記しきい値を超えないとき、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために暗黙的重み付け予測を実行する暗黙的予測モジュール、
    を備える、請求項12に記載の装置。
  14. 前記動き補償ユニットは、前記予測ビデオデータユニットの前記第1のバージョンと前記第2のバージョンのどちらが前記ビデオデータをより適切に符号化するかを判断する分析モジュールを含み、
    前記動き補償ユニットは、前記判断に基づいて前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化する、請求項11に記載の装置。
  15. 前記分析モジュールは、それぞれ前記第1および第2のバージョンによって導入されるひずみの量を示す、第1および第2のひずみ値を判断するために、前記予測ビデオデータユニットの前記第1および第2のバージョンの各々を、前記ビデオデータの対応する部分と比較し、前記それぞれの第1および第2のひずみ値に基づいて前記予測ビデオデータユニットの前記第1および第2のバージョンの第1と第2のコストとを計算し、前記第1のコストと第2のコストのどちらがより低いかを判断するために前記第1のコストと第2のコストとを比較し、かつ、前記比較に基づいて前記第1のバージョンまたは前記第2のバージョンのいずれかを選択する、レートひずみ(R−D)分析モジュールを備える、請求項14に記載の装置。
  16. 前記R−D分析モジュールは、以下のコスト関数:
    Fc = d + (λo * R)
    に従って、前記第1および第2のコストの各々を計算し、ここで、Fcは、前記コスト関数を表す変数を備え、dは、前記第1のひずみ値または前記第2のひずみ値のいずれかを表す変数を備え、λoは、ラグランジアンを表す変数を備え、Rは、前記ビデオデータが符号化されるビットレートを表す変数を備える、請求項15に記載の装置。
  17. 第1の参照コード化ユニットは、時間的に前記予測コード化ユニットの前に生じ、
    第2の参照コード化ユニットは、時間的に前記予測コード化ユニットの後に生じ、
    前記予測コード化ユニットは、双方向予測フレーム(Bフレーム)を備え、かつ、
    前記第1および第2のコード化ユニットは、独立コード化フレーム(Iフレーム)、予測フレーム(Pフレーム)、または別のBフレームのうちの1つをそれぞれ備える、請求項11に記載の装置。
  18. 前記第1および第2のコード化ユニットは、それぞれ第1および第2の参照フレームを備え、
    前記第1および第2の参照ビデオデータユニットは、それぞれ前記第1の参照フレームからの第1の参照ビデオブロックと前記第2の参照フレームからの第2の参照ビデオブロックと、を備え、
    前記動き補償ユニットは、
    前記第1および第2の参照ビデオブロックから予測フレームの予測ビデオブロックの第1のバージョンを予測するために前記デフォルト重み付け予測を実行するデフォルト予測モジュールであって、前記第1および第2の参照フレームが時間的に前記予測ビデオフレームの前または後のいずれかに生じる、デフォルト予測モジュール、
    前記予測フレームの前記予測ビデオブロックの前記第1のバージョンの前記オフセット値を計算するオフセット計算モジュール、
    前記暗黙的重み付け予測を実施する暗黙的予測モジュール、および、
    前記明示的重み付け予測を実施する明示的予測モジュール、
    を含み、前記計算されたオフセット値に基づいて、前記暗黙的予測モジュールまたは前記明示的予測モジュールのいずれかが、前記第1および第2の参照ビデオブロックから前記予測フレームの前記予測ビデオブロックの第2のバージョンを予測するために、前記暗黙的重み付け予測または前記明示的重み付け予測のいずれかを実行し、かつ、
    前記動き補償ユニットは、前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測フレームの前記予測ビデオブロックを符号化する、請求項11に記載の装置。
  19. 前記動き補償ユニットは、前記予測ビデオデータユニットの前記第2のバージョンが前記明示的重み付け予測を使用して予測された前記第2のバージョンを備えるとき、前記予測ビデオデータユニットを前記予測ビデオデータユニットの前記第2のバージョンとして符号化し、前記第2のバージョンに加えて前記オフセット値を符号化する、請求項11に記載の装置。
  20. 装置は、ビデオエンコーダハードウェアまたはビデオエンコーダ/デコーダ(CODEC)ハードウェアを備える、請求項11に記載の装置。
  21. ビデオデータの第1および第2の参照コード化ユニットを記憶するための手段であって、前記第1の参照コード化ユニットが第1の参照ビデオデータユニットを含み、前記第2の参照コード化ユニットが第2の参照ビデオデータユニットを含む、記憶するための手段、
    それぞれ時間的に前記予測コード化ユニットの前または後のいずれかに生じる、前記第1および第2の参照ビデオデータユニットから、前記ビデオデータの予測コード化ユニットの予測ビデオデータユニットの第1のバージョンを予測するために、デフォルト重み付け予測を実行するための手段、
    前記予測ビデオデータユニットの前記第1のバージョンのオフセット値を計算するための手段、
    前記第1および第2の参照ビデオデータユニットから前記予測ビデオデータユニットの第2のバージョンを予測するために、前記計算されたオフセット値に基づいて暗黙的重み付け予測または明示的重み付け予測の両方ではなくいずれかを実行するための手段、および、
    前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化するための手段、
    を含む、ビデオデータを符号化するための手段
    を備える、ビデオデータを符号化するデバイス。
  22. 計算するための前記手段は、
    前記オフセット値の絶対値を計算するための手段、および、
    前記オフセット値の前記絶対値をしきい値と比較するための手段、
    をさらに備え、
    前記暗黙的重み付け予測または前記明示的重み付け予測のいずれかを実行するための前記手段は、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために、前記比較に基づいて前記暗黙的重み付け予測または前記明示的重み付け予測のいずれかを実行する、請求項21に記載のデバイス。
  23. 前記暗黙的重み付け予測または前記明示的重み付け予測のいずれかを実行するための前記手段は、
    前記オフセット値の前記絶対値が前記しきい値を超えるとき、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために明示的重み付け予測を実行するための手段、および、
    前記オフセット値の前記絶対値が前記しきい値を超えないとき、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために前記暗黙的重み付け予測を実行するための手段、
    を備える、請求項22に記載のデバイス。
  24. 前記予測ビデオデータユニットの前記第1のバージョンと前記第2のバージョンのどちらが前記ビデオデータをより適切に符号化するかを判断するための手段をさらに備え、
    前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化するための前記手段は、前記判断に基づいて前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化する、請求項21に記載のデバイス。
  25. 前記予測ビデオデータユニットの前記第1のバージョンと前記第2のバージョンのどちらが前記ビデオデータをより適切に符号化するかを判断するための前記手段は、
    それぞれ前記第1および第2のバージョンによって導入されるひずみの量を示す、第1および第2のひずみ値を判断するために、前記予測ビデオデータユニットの前記第1および第2のバージョンの各々を、前記ビデオデータの対応する部分と比較するための手段、
    前記それぞれの第1および第2のひずみ値に基づいて前記予測ビデオデータユニットの前記第1および第2のバージョンの第1と第2のコストとを計算するための手段、
    前記第1のコストと第2のコストのどちらがより低いかを判断するために前記第1のコストと第2のコストとを比較するための手段、および、
    前記比較に基づいて前記第1のバージョンまたは前記第2のバージョンのいずれかを選択するための手段、
    を備える、請求項24に記載のデバイス。
  26. 前記第1と前記第2のコストとを計算するための前記手段は、以下のコスト関数:
    Fc = d + (λo * R)
    に従って、前記第1および第2のコストの各々を計算し、ここで、Fcは、前記コスト関数を表す変数を備え、dは、前記第1のひずみ値または前記第2のひずみ値のいずれかを表す変数を備え、λoは、ラグランジアンを表す変数を備え、Rは、前記ビデオデータが符号化されるビットレートを表す変数を備える、請求項25に記載のデバイス。
  27. 前記第1の参照コード化ユニットは、時間的に前記予測コード化ユニットの前に生じ、
    前記第2の参照コード化ユニットは、時間的に前記予測コード化ユニットの後に生じ、
    前記予測コード化ユニットは、双方向予測フレーム(Bフレーム)を備え、かつ、
    前記第1および第2のコード化ユニットは、独立コード化フレーム(Iフレーム)、予測フレーム(Pフレーム)、または別のBフレームのうちの1つをそれぞれ備える、請求項21に記載のデバイス。
  28. 前記第1および第2の異なる参照コード化ユニットを記憶するための前記手段は、第1の参照ビデオブロックを含む第1の参照フレームと、第2の参照ビデオブロックを含む第2の参照フレームと、を記憶し、
    前記デフォルト重み付け予測を実行するための前記手段は、前記第1および第2の参照ビデオブロックから予測フレームの予測ビデオブロックの第1のバージョンを予測するために前記デフォルト重み付け予測を実行し、前記第1および第2の参照フレームが時間的に前記予測ビデオフレームの前または後のいずれかに生じ、
    前記オフセット値を計算するための前記手段は、前記予測フレームの前記予測ビデオブロックの前記第1のバージョンの前記オフセット値を計算し、
    前記計算されたオフセット値に基づいて前記暗黙的重み付け予測または前記明示的重み付け予測のいずれかを実行するための前記手段は、前記第1および第2の参照ビデオブロックから前記予測フレームの前記予測ビデオブロックの第2のバージョンを予測するために、前記計算されたオフセット値に基づいて、前記暗黙的重み付け予測または前記明示的重み付け予測のいずれかを実行し、かつ、
    前記予測ビデオデータユニットを符号化するための前記手段は、前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測フレームの前記予測ビデオブロックを符号化する、請求項21に記載のデバイス。
  29. 前記予測ビデオデータユニットを符号化するための前記手段は、前記予測ビデオデータユニットの前記第2のバージョンが前記明示的重み付け予測を使用して予測された前記第2のバージョンを備えるとき、前記予測ビデオデータユニットを前記予測ビデオデータユニットの前記第2のバージョンとして符号化し、前記第2のバージョンに加えて前記オフセット値を符号化する、請求項21に記載のデバイス。
  30. 前記デバイスは、ビデオエンコーダハードウェアまたはビデオエンコーダ/デコーダ(CODEC)ハードウェアによって実行される、請求項1に記載のデバイス。
  31. それぞれの第1および第2の参照ビデオデータユニットをそれぞれ備える、ビデオデータの第1および第2の参照コード化ユニットを受信すること、
    それぞれ時間的に前記予測コード化ユニットの前または後のいずれかに生じる、前記第1および第2の参照ビデオデータユニットから、前記ビデオデータの予測コード化ユニットの予測ビデオデータユニットの第1のバージョンを予測するために、デフォルト重み付け予測を実行すること、
    前記予測ビデオデータユニットの前記第1のバージョンのオフセット値を計算すること、
    前記計算されたオフセット値に基づいて暗黙的重み付け予測モードまたは明示的重み付け予測モードのいずれかを選択すること、
    前記第1および第2の参照ビデオデータユニットから前記予測ビデオデータユニットの第2のバージョンを予測するために前記選択されたモードを実行すること、および、
    前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化すること、
    をプログラマブルプロセッサに行わせるための命令を備えるコンピュータ可読媒体。
  32. 前記命令は、前記プログラマブルプロセッサに、
    前記オフセット値の絶対値を計算すること、
    前記オフセット値の前記絶対値をしきい値と比較すること、および、
    前記比較に基づいて前記暗黙的重み付け予測モードまたは前記明示的重み付け予測モードのいずれかを選択すること、
    をさらに行わせる、請求項31に記載のコンピュータ可読媒体。
  33. 前記命令は、前記プログラマブルプロセッサに、
    前記オフセット値の前記絶対値が前記しきい値を超えるとき、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために前記明示的重み付け予測を実行すること、および、
    前記オフセット値の前記絶対値が前記しきい値を超えないとき、前記参照ビデオデータユニットから前記予測ビデオデータユニットの前記第2のバージョンを予測するために前記暗黙的重み付け予測を実行すること、
    を行わせる、請求項32に記載のコンピュータ可読媒体。
  34. 前記命令は、前記プログラマブルプロセッサに、前記予測ビデオデータユニットの前記第1のバージョンと前記第2のバージョンのどちらが前記ビデオデータをより適切に符号化するかを判断させ、
    前記命令は、前記プログラマブルプロセッサに、前記判断に基づいて前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測ビデオデータユニットを符号化させる、請求項31に記載のコンピュータ可読媒体。
  35. 前記命令は、前記プログラマブルプロセッサに、
    それぞれ前記第1および第2のバージョンによって導入されるひずみの量を示す、第1および第2のひずみ値を判断するために、前記予測ビデオデータユニットの前記第1および第2のバージョンの各々を、前記ビデオデータの対応する部分と比較すること、
    前記それぞれの第1および第2のひずみ値に基づいて前記予測ビデオデータユニットの前記第1および第2のバージョンの第1と第2のコストとを計算すること、
    前記第1のコストと第2のコストのどちらがより低いかを判断するために前記第1のコストと第2のコストとを比較すること、および、
    前記比較に基づいて前記第1のバージョンまたは前記第2のバージョンのいずれかを選択すること、
    を行わせる、請求項34に記載のコンピュータ可読媒体。
  36. 前記命令は、前記プログラマブルプロセッサに、以下のコスト関数:
    Fc = d + (λo * R)
    に従って、前記第1および第2のコストの各々を計算させ、ここで、Fcは、前記コスト関数を表す変数を備え、dは、前記第1のひずみ値または前記第2のひずみ値のいずれかを表す変数を備え、λoは、ラグランジアンを表す変数を備え、Rは、前記ビデオデータが符号化されるビットレートを表す変数を備える、請求項35に記載のコンピュータ可読媒体。
  37. 前記第1の参照コード化ユニットは、時間的に前記予測コード化ユニットの前に生じ、
    前記第2の参照コード化ユニットは、時間的に前記予測コード化ユニットの後に生じ、
    前記予測コード化ユニットは、双方向予測フレーム(Bフレーム)を備え、かつ、
    前記第1および第2のコード化ユニットは、独立コード化フレーム(Iフレーム)、予測フレーム(Pフレーム)、または別のBフレームのうちの1つをそれぞれ備える、請求項1に記載のコンピュータ可読媒体。
  38. 前記命令は、前記プログラマブルプロセッサに、
    第1の参照ビデオブロックを含む第1の参照フレームと、第2の参照ビデオブロックを含む第2の参照フレームと、を受信すること、
    前記第1および第2の参照ビデオブロックから予測フレームの予測ビデオブロックの第1のバージョンを予測するために前記デフォルト重み付け予測を実行することであって、前記第1および第2の参照フレームが時間的に前記予測ビデオフレームの前または後のいずれかに生じる、実行すること、
    前記予測フレームの前記予測ビデオブロックの前記第1のバージョンの前記オフセット値を計算すること、
    前記計算されたオフセット値に基づいて前記暗黙的重み付け予測モードまたは前記明示的重み付け予測モードのいずれかを選択すること、
    前記第1および第2の参照ビデオブロックから前記予測フレームの前記予測ビデオブロックの第2のバージョンを予測するために前記選択されたモードを実行すること、および、
    前記第1のバージョンまたは前記第2のバージョンのいずれかとして前記予測フレームの前記予測ビデオブロックを符号化すること、
    を行わせる、請求項1に記載のコンピュータ可読媒体。
  39. 前記命令は、前記プログラマブルプロセッサに、前記予測ビデオデータユニットの前記第2のバージョンが前記明示的重み付け予測を使用して予測された前記第2のバージョンを備えるとき、前記予測ビデオデータユニットを前記予測ビデオデータユニットの前記第2のバージョンとして符号化させ、前記第2のバージョンに加えて前記オフセット値を符号化させる、請求項31に記載のコンピュータ可読媒体。
JP2011531117A 2008-10-06 2009-10-06 効率的な予測モード選択 Expired - Fee Related JP5175397B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10310008P 2008-10-06 2008-10-06
US61/103,100 2008-10-06
US12/424,472 2009-04-15
US12/424,472 US8831087B2 (en) 2008-10-06 2009-04-15 Efficient prediction mode selection
PCT/US2009/059698 WO2010042518A1 (en) 2008-10-06 2009-10-06 Efficient prediction mode selection

Publications (2)

Publication Number Publication Date
JP2012505601A true JP2012505601A (ja) 2012-03-01
JP5175397B2 JP5175397B2 (ja) 2013-04-03

Family

ID=42075794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011531117A Expired - Fee Related JP5175397B2 (ja) 2008-10-06 2009-10-06 効率的な予測モード選択

Country Status (9)

Country Link
US (1) US8831087B2 (ja)
EP (1) EP2345255B1 (ja)
JP (1) JP5175397B2 (ja)
KR (1) KR101221247B1 (ja)
CN (1) CN102172027B (ja)
ES (1) ES2663691T3 (ja)
HU (1) HUE036438T2 (ja)
TW (1) TWI399098B (ja)
WO (1) WO2010042518A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020520174A (ja) * 2017-05-10 2020-07-02 華為技術有限公司Huawei Technologies Co.,Ltd. ビデオ圧縮における双方向予測

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA05013727A (es) * 2003-06-25 2006-07-06 Thomson Licensing Metodo y aparato para el calculo de prediccion ponderada con el uso de diferencial de cuadro desplazado.
US8385404B2 (en) 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
US9161057B2 (en) 2009-07-09 2015-10-13 Qualcomm Incorporated Non-zero rounding and prediction mode selection techniques in video encoding
US8995526B2 (en) * 2009-07-09 2015-03-31 Qualcomm Incorporated Different weights for uni-directional prediction and bi-directional prediction in video coding
US8711930B2 (en) * 2009-07-09 2014-04-29 Qualcomm Incorporated Non-zero rounding and prediction mode selection techniques in video encoding
KR101064883B1 (ko) * 2009-10-06 2011-09-16 한국과학기술원 왜곡 측정 방법
CN102714731A (zh) * 2009-12-22 2012-10-03 索尼公司 图像处理设备和方法及程序
US9521424B1 (en) * 2010-10-29 2016-12-13 Qualcomm Technologies, Inc. Method, apparatus, and manufacture for local weighted prediction coefficients estimation for video encoding
US8428375B2 (en) * 2010-11-17 2013-04-23 Via Technologies, Inc. System and method for data compression and decompression in a graphics processing system
US10045046B2 (en) 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
US20120163460A1 (en) * 2010-12-23 2012-06-28 Qualcomm Incorporated Sub-pixel interpolation for video coding
JP2014506063A (ja) * 2011-01-07 2014-03-06 サムスン エレクトロニクス カンパニー リミテッド 双方向予測及び単一方向予測が可能なビデオ予測方法及びその装置、ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
EP2661892B1 (en) 2011-01-07 2022-05-18 Nokia Technologies Oy Motion prediction in video coding
US8548057B2 (en) * 2011-01-25 2013-10-01 Microsoft Corporation Video coding redundancy reduction
KR20120095611A (ko) * 2011-02-21 2012-08-29 삼성전자주식회사 다시점 비디오 부호화/복호화 방법 및 장치
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
US8638854B1 (en) * 2011-04-07 2014-01-28 Google Inc. Apparatus and method for creating an alternate reference frame for video compression using maximal differences
JP5768491B2 (ja) * 2011-05-17 2015-08-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
MX2014000159A (es) 2011-07-02 2014-02-19 Samsung Electronics Co Ltd Metodo y aparato para la codificacion de video, y metodo y aparato para la decodificacion de video acompañada por inter prediccion utilizando imagen co-localizada.
JP5766815B2 (ja) 2011-11-08 2015-08-19 株式会社東芝 画像符号化方法、および画像符号化装置
US9237358B2 (en) 2011-11-08 2016-01-12 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US20130182772A1 (en) * 2012-01-13 2013-07-18 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
JP6012014B2 (ja) * 2012-03-30 2016-10-25 サン パテント トラスト 画像符号化方法および画像復号方法
US9609341B1 (en) 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
WO2013162980A2 (en) 2012-04-23 2013-10-31 Google Inc. Managing multi-reference picture buffers for video data coding
US9014266B1 (en) 2012-06-05 2015-04-21 Google Inc. Decimated sliding windows for multi-reference prediction in video coding
US9749645B2 (en) 2012-06-22 2017-08-29 Microsoft Technology Licensing, Llc Coded-block-flag coding and derivation
US9756331B1 (en) 2013-06-17 2017-09-05 Google Inc. Advance coded reference prediction
KR20170058838A (ko) 2015-11-19 2017-05-29 한국전자통신연구원 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
CN107920254B (zh) * 2016-10-11 2019-08-30 北京金山云网络技术有限公司 一种针对b帧的运动估计方法、装置及视频编码器
US11394989B2 (en) 2018-12-10 2022-07-19 Tencent America LLC Method and apparatus for video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008005145A (ja) * 2006-06-21 2008-01-10 Sony Corp 画像処理システムおよび方法、復号装置および方法、符号化装置および方法、並びにプログラム
JP2009525687A (ja) * 2006-02-02 2009-07-09 トムソン ライセンシング 動き補償予測のための適応重み選択を行う方法および装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003063502A1 (en) * 2002-01-18 2003-07-31 Kabushiki Kaisha Toshiba Moving picture coding method and apparatus and decoding method and apparatus
BRPI0719860B1 (pt) 2006-10-18 2021-09-08 Interdigital Vc Holdings, Inc. Aparelhos, métodos e meio de armazenamento não transitório para compensação de iluminação e cor local sem sinalização explícita

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009525687A (ja) * 2006-02-02 2009-07-09 トムソン ライセンシング 動き補償予測のための適応重み選択を行う方法および装置
JP2008005145A (ja) * 2006-06-21 2008-01-10 Sony Corp 画像処理システムおよび方法、復号装置および方法、符号化装置および方法、並びにプログラム

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
CSNJ200810010024; 猪飼知宏(外1名): '「双予測の符号化効率向上に関する検討」' 画像符号化シンポジウム 第22回シンポジウム資料 , 20071031, 第47〜48頁, 電子情報通信学会画像工学研究専門委員会 *
CSNJ200910017070; 早瀬和也(外4名): '「空間スケーラブル符号化におけるレイヤ間相関を利用した重み付き予測方式」' FIT2007 第6回情報科学技術フォーラム 情報科学技術レターズ 第6巻, 20070822, 第253〜256頁, 社団法人情報処理学会(外1名) *
JPN6012062652; 猪飼知宏(外1名): '「双予測の符号化効率向上に関する検討」' 画像符号化シンポジウム 第22回シンポジウム資料 , 20071031, 第47〜48頁, 電子情報通信学会画像工学研究専門委員会 *
JPN6012062654; 早瀬和也(外4名): '「空間スケーラブル符号化におけるレイヤ間相関を利用した重み付き予測方式」' FIT2007 第6回情報科学技術フォーラム 情報科学技術レターズ 第6巻, 20070822, 第253〜256頁, 社団法人情報処理学会(外1名) *
JPN6012062655; Boyce, J.M.: '"WEIGHTED PREDICTION IN THE H.264/MPEG AVC VIDEO CODING STANDARD"' Proc. of the 2004 Int. Symp. on Circuits and Systems, 2004 (ISCAS '04) Vol.3, 200405, p.789-792 *
JPN6012062657; Alexis Michael Tourapis, et.al.: '"Proposed Amended H.264/MPEG-4 AVC Reference Software Manual"' Document: JVT-N008 [online], 20050124, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCE *
JPN6012062658; "wftp3.itu.int - /av-arch/jvt-site/2005_01_HongKong/" , 20121127, [online] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020520174A (ja) * 2017-05-10 2020-07-02 華為技術有限公司Huawei Technologies Co.,Ltd. ビデオ圧縮における双方向予測

Also Published As

Publication number Publication date
HUE036438T2 (hu) 2018-07-30
TW201031220A (en) 2010-08-16
WO2010042518A1 (en) 2010-04-15
CN102172027B (zh) 2014-03-12
KR20110063864A (ko) 2011-06-14
EP2345255A1 (en) 2011-07-20
CN102172027A (zh) 2011-08-31
US20100086027A1 (en) 2010-04-08
US8831087B2 (en) 2014-09-09
EP2345255B1 (en) 2018-01-24
JP5175397B2 (ja) 2013-04-03
TWI399098B (zh) 2013-06-11
ES2663691T3 (es) 2018-04-16
KR101221247B1 (ko) 2013-01-11

Similar Documents

Publication Publication Date Title
JP5175397B2 (ja) 効率的な予測モード選択
KR101377883B1 (ko) 비디오 인코딩에서 넌-제로 라운딩 및 예측 모드 선택 기법들
JP5497169B2 (ja) ビデオコーディングにおける単方向予測および双方向予測のための異なる重み付け
US8995527B2 (en) Block type signalling in video coding
JP5784689B2 (ja) ビデオ符号化における非ゼロ丸めおよび予測モード選択技法
US8665964B2 (en) Video coding based on first order prediction and pre-defined second order prediction mode
EP2704442A1 (en) Template matching for video coding
US20150103909A1 (en) Multi-threaded video encoder

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121004

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130104

R150 Certificate of patent or registration of utility model

Ref document number: 5175397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees