JP2014506443A - 平滑化演算を適応的に実行すること - Google Patents

平滑化演算を適応的に実行すること Download PDF

Info

Publication number
JP2014506443A
JP2014506443A JP2013549412A JP2013549412A JP2014506443A JP 2014506443 A JP2014506443 A JP 2014506443A JP 2013549412 A JP2013549412 A JP 2013549412A JP 2013549412 A JP2013549412 A JP 2013549412A JP 2014506443 A JP2014506443 A JP 2014506443A
Authority
JP
Japan
Prior art keywords
unit
samples
smoothing
transition zone
sample
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
JP2013549412A
Other languages
English (en)
Other versions
JP5752809B2 (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 JP2014506443A publication Critical patent/JP2014506443A/ja
Application granted granted Critical
Publication of JP5752809B2 publication Critical patent/JP5752809B2/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

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)

Abstract

ビデオコード化プロセス中に、CUの予測ブロックが生成される。CUは2つ以上の予測単位を有する。コンピュータ機器が、予測単位のうちの1つ以上のサイズに基づいて、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。遷移ゾーンは、異なる予測単位に関連する予測ブロックのサンプル間の境界に位置する。コンピュータ機器が、平滑化演算を実行すべきであるという決定を行った場合、遷移ゾーン中の予測ブロックのサンプルを平滑化するために平滑化演算が実行される。

Description

関連出願の相互参照
本出願は、各々の内容全体が参照により本明細書に組み込まれる、2011年1月10日に出願された米国仮出願第61/431,408号、2011年3月8日に出願された米国仮出願第61/450,532号、2011年3月8日に出願された米国仮出願第61/450,538号、及び2011年9月21日に出願された米国仮出願第61/537,450号の利益を主張する。
本開示は、ビデオコード化に関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信及び受信するために、MPEG−2、MPEG−4、ITU−T H.263又はITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実施する。
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び/又は時間的予測を実行する。ブロックベースのビデオコード化の場合、ビデオフレーム又はスライスはブロックに区分され得る。各ブロックは更に区分され得る。イントラコード化(I)フレーム又はスライス中のブロックは、隣接ブロックに対する空間的予測を使用して符号化される。インターコード化(P又はB)フレーム又はスライス中のブロックは、同じフレーム又はスライス中の隣接ブロックに対する空間的予測、又は他の参照フレームに対する時間的予測を使用し得る。
概して、本開示で説明する技法は、予測ブロックの遷移ゾーン中の画素値などのサンプルに対して平滑化演算を実行すべきかどうかを決定することによってコード化単位(CU:coding unit)のコード化効率を高め得る。予測ブロックは、動き補償演算の結果として生成されるサンプルのブロックであり得る。コンピュータ機器は、予測ブロックを生成するために、動き補償演算中にCUの予測単位の動き情報を使用し得る。遷移ゾーン内のサンプルに対して平滑化演算を実行することにより、それらのサンプルと隣接サンプルとの間の差異が低減され得る。
幾つかの状況では、遷移ゾーン中のサンプルに対して平滑化演算を実行することにより、隣接サンプル間のルミナンス及びクロミナンスの鋭い不連続性が低減され得、従って、CUに関連するデータのコード化効率が高められ得る。しかしながら、他の状況では、遷移ゾーン中のサンプルに対して平滑化演算を実行することにより、CUの元のサンプルブロックと予測ブロックとの間の差異が増加し得、従って、CUに関連するデータのコード化効率が下がり得る。本開示の技法によれば、コンピュータ機器は、予測単位のうちの1つ以上のサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。
一例では、本開示は、ビデオデータをコード化するための方法について説明する。本方法は、ビデオデータのフレームのCUのための予測ブロックを生成することを備える。予測ブロックは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界における遷移ゾーンを含む。本方法はまた、コンピュータ機器が、第1のPUのサイズに基づいて、第1の平滑化演算を実行すべきかどうかの決定を行うことを備える。更に、本方法は、コンピュータ機器が、第1の平滑化演算を実行すべきであるという決定を行った後に、遷移ゾーン内にある予測ブロックのサンプルを平滑化するために第1の平滑化演算を実行することを備える。
別の例では、本開示は、ビデオデータをコード化するコンピュータ機器について説明する。コンピュータ機器は、ビデオデータのフレームのCUのための予測ブロックを生成するように構成されたプロセッサを備える。予測ブロックは、CUの第1の予測単位(PU:prediction unit)に関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界における遷移ゾーンを含む。プロセッサはまた、第1のPUのサイズに基づいて、第1の平滑化演算を実行すべきかどうかの決定を行うように構成される。更に、プロセッサは、コンピュータ機器が、平滑化演算を実行すべきであるという決定を行った後に、プロセッサが、遷移ゾーン中の予測ブロックのサンプルを平滑化するために第1の平滑化演算を実行するように構成される。
別の例では、本開示は、ビデオデータをコード化するコンピュータ機器について説明する。コンピュータ機器は、ビデオデータのフレームのCUのための予測ブロックを生成するための手段を備える。予測ブロックは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界における遷移ゾーンを含む。コンピュータ機器はまた、第1のPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行うための手段を備える。更に、コンピュータ機器は、コンピュータ機器が、平滑化演算を実行すべきであるという決定を行った後に、遷移ゾーン内にある予測ブロックのサンプルを平滑化するために平滑化演算を実行するための手段を備える。
別の例では、本開示は、ビデオデータをコード化するためのコンピュータプログラム製品について説明する。コンピュータプログラム製品は、ビデオデータのフレームのCUのための予測ブロックを生成することを1つ以上のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備える。予測ブロックは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界における遷移ゾーンを含む。命令はまた、第1のPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行うことを1つ以上のプロセッサに行わせる。更に、コンピュータ機器が、平滑化演算を実行すべきであるという決定を行った後に、命令は、遷移ゾーン中の予測ブロックのサンプルを平滑化するために平滑化演算を実行することを1つ以上のプロセッサに行わせる。
本発明の1つ以上の実施形態の詳細を添付の図面及び以下の説明に記載する。本発明の他の特徴、目的、及び利点は、これらの説明及び図面、並びに特許請求の範囲から明らかになろう。
例示的なマルチメディアコード化システムを示すブロック図。 ビデオ中の例示的な一連のフレームを示す概念図。 符号化ユニットの例示的な構成を示すブロック図。 ツリーブロックに区分された例示的なフレームを示す概念図。 ツリーブロックのさらなる例示的な区分を示す概念図。 インター予測ユニットの例示的な構成を示すブロック図。 復号ユニットの例示的な構成を示すブロック図。 インター予測ユニットによって実行される例示的なフレーム間コード化演算を示すフローチャート。 例示的な矩形区分モードを示す概念図。 例示的な幾何学的区分モードを示す概念図。 CUの遷移ゾーンを示す概念図。 予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための例示的な演算を示すフローチャート。 予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。 予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。 予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。 予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。 予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。 予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算を示すフローチャート。 例示的な遷移サンプル識別演算を示すフローチャート。 平滑化ユニットの別の例示的な演算を示すフローチャート。 別の例示的な遷移サンプル識別演算を示すフローチャート。
添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。添付の図面において、省略符号は、その省略符号によって分離された要素と同様の1つ以上の要素の存在を示す。同様の要素のための参照番号に対するアルファベットの添え字は、それらの要素の特定の数の存在を示すものではない。本開示では、序数ワード(例えば、「第1の」、「第2の」、「第3の」など)で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。そうではなく、そのような序数ワードは、単に、同じ又は同様の種類の異なる要素を指すために使用され得る。
ビデオデータのフレームは、サンプルの1つ以上のブロック(即ち、サンプルブロック)に関連する。サンプルは、画素のルーマ又はクロマ成分など、画素の成分を定義する値であり得る。サンプルブロックは、そのようなサンプルの2次元アレイを指し得る。フレームのサンプルブロックの各々は、フレーム中の画素の異なる成分を指定し得る。エンコーダは、最初に、フレームを「スライス」に区分し得る。スライスは、概して、フレームの単独で復号可能な部分を指すために使用される用語である。
エンコーダは、次に、これらのスライスを「ツリーブロック」に区分し得る。ツリーブロックは最大コード化単位(LCU:largest coding unit)と呼ばれることもある。エンコーダは、ツリーブロックを漸進的により小さいサンプルブロックの階層に区分し得、このサンプルブロックの階層は、図示されると階層ツリー構造として表され得、従って「ツリーブロック」という名前を有する。そのような階層ツリー構造のリーフノードは、これらのリーフノードが、コード化されるべきサンプルブロック又は単位を定義するという点で、コード化単位(CU)に対応し得る。このようにして、CUの各々は、フレームの異なるサンプルブロックに関連する。ツリーブロックをこのように区分することにより、エンコーダは、異なるサイズの動きを取り込むことが可能になり得る。
CUの各々は、1つ以上の予測単位(PU)を有し得る。CUのサンプルブロックは、CUのPUに関連する予測領域に区分される。コーダは、各予測領域の動き情報を生成するために、サンプルブロックの予測領域に関して動き推定演算を実行し得る。予測領域の各々についての動き情報はPUとして記憶される。エンコーダ又はデコーダは、PUについて決定された動き情報を使用して、CUの予測ブロックを生成する。本開示では、「コーダ」という用語は、エンコーダ又はデコーダのいずれかを指し得、「コード化」という用語は、符号化又は復号のいずれかを指し得る。
幾つかの事例では、コーダは、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行する。遷移ゾーンは、概して、異なるPUに関連する予測ブロックのサンプル間の境界において生じる。コーダは、この平滑化演算を実行して、CUの残差データの後続のコード化、及び/又はデコーダによって再構成されたときのビデオデータ(そのようなビデオデータは「再構成ビデオデータ」と呼ばれることがある)の得られるビデオ品質を改善し得る。
幾つかの事例では、遷移ゾーン中のサンプルを平滑化することにより、再構成ビデオデータの圧縮性能及び/又は視覚品質が改善されるが、他の事例では、平滑化演算の実行により、圧縮性能を劣化させる人工的な効果が導入される。従って、平滑化演算を実行すると、平滑化演算による追加の残差データの導入により圧縮ビデオデータのサイズがより大きくなり得る。その上、これらの導入された人工的な効果は、閲覧者によって閲覧されたとき、主観的ビデオ品質に影響を及ぼす再構成ビデオデータの主観的知覚を劣化させ得る。幾つかの他の事例では、この平滑化演算を実行することにより、特定のフレームにとって重要であると見なされ得るビデオコンテンツ中のデータが除去され得、それにより、視覚的品質が更に低減され、フレームの再構成のためにこのフレームに依拠する他のフレームの再構成が影響を受け得る。この平滑化演算の実行を介したデータの紛失は、更に、非可逆的であり得、これは、デコーダが紛失したデータを復元することができないことがあることを意味する。
本開示は、視覚品質及び圧縮性能を潜在的に改善する方法で平滑化演算を適応的に実行するための技法を提供する。従来のエンコーダで一般的であるように、あらゆる予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行するのではなく、本技法は、視覚品質又は圧縮性能に関して測定されたとき、それが最も有益であろうとコーダが決定する場合に、コーダが平滑化演算を適応的に実行することを可能にする。例えば、コーダは、CUの1つ以上のPUのサイズに基づいて平滑化演算を適応的に実行し得る。
大きく遷移ゾーンでは、より多くのサンプルが操作され得る。しかしながら、あまりに多くのサンプルを処理すると、余分のひずみを導入し得る。小さい遷移ゾーンでは、平滑化演算のパフォーマンスが制限され得る。本開示で説明する幾つかの技法によれば、コーダは隣接領域サイズを適応的に選択する。コーダは、選択された隣接領域サイズの領域を使用して、予測ブロックのサンプルが遷移ゾーン内にあるかどうかを決定する。このようにして、コーダは、平滑化演算のパフォーマンスを最大にするために遷移ゾーンのサイズを選択し得る。
図1は、例示的なマルチメディアコード化システム100を示すブロック図である。マルチメディアコード化システム100は、ビデオデータをキャプチャし、キャプチャされたビデオデータを符号化し、符号化されたビデオデータを送信し、符号化されたビデオデータを復号し、次いで、復号されたビデオデータを再生する。
マルチメディアコード化システム100は、発信源102と、符号化ユニット104と、復号ユニット106と、プレゼンテーションユニット108とを備える。発信源102はビデオデータを生成する。符号化ユニット104はそのビデオデータを符号化する。復号ユニット106は、符号化されたビデオデータを復号する。プレゼンテーションユニット108は、復号されたビデオデータを提示する。
1つ以上のコンピュータ機器は、発信源102と、符号化ユニット104と、復号ユニット106と、プレゼンテーションユニット108とを実施する。本開示では、コンピュータ機器という用語は、情報を処理する物理機器を包含する。コンピュータ機器の例示的なタイプには、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、スマートフォン、タブレットコンピュータ、車載コンピュータ、テレビジョンセットトップボックス、ビデオ会議システム、ビデオ生成機器、ビデオカメラ、ビデオゲーム機、又は情報を処理する他のタイプの機器がある。
幾つかの例では、単一のコンピュータ機器は、発信源102と、符号化ユニット104と、復号ユニット106と、プレゼンテーションユニット108とのうちの2つ以上を実施し得る。例えば、単一のコンピュータ機器は、発信源102と符号化ユニット104とを実施し得る。この例では、別のコンピュータ機器が、復号ユニット106とプレゼンテーションユニット108とを実施し得る。他の例では、異なるコンピュータ機器が、発信源102と、符号化ユニット104と、復号ユニット106と、プレゼンテーションユニット108とを実施する。
図1の例では、コンピュータ機器103が符号化ユニット104を実施し、コンピュータ機器107が復号ユニット106を実施する。幾つかの例では、コンピュータ機器103は、符号化ユニット104の他に機能を提供し得る。更に、幾つかの例では、コンピュータ機器107は、復号ユニット106の他に機能を提供し得る。
上記で手短に説明したように、発信源102は、一連のフレームを表すビデオデータを生成する。フレームは、一般に「ピクチャ」とも呼ばれる。ビデオデータ中の一連のフレームが迅速に連続して(例えば、24又は25フレーム毎秒で)ユーザに提示されるとき、ユーザは、フレーム中の被写体が動いていると知覚し得る。
図2は、ビデオデータ中の例示的な一連のフレーム200A〜200Pを示す概念図である。本開示では、フレーム200A〜200Pをフレーム200と総称する。ビデオデータは、自転車レースのシーンを表している。行202及び204のフレームは、人が自転車のペダルを踏んでいるシーンを示す。行206のフレームは、机の後ろに座っている2人の解説者を示す。行208のフレームは、上空からの自転車レーサーのシーンを示す。シーン内の各フレームは、先行するフレームと僅かに異なり得る。フレーム200を迅速に連続して提示することによって、ユーザはこれらのシーンの動きを知覚し得る。
続いて、ここで図1の例の参照をする。様々な例において、発信源102は、ビデオデータを様々な方法で生成する。例えば、発信源102は、ビデオカメラを備え得る。この例では、ビデオカメラは、視認できる環境から画像を撮影する。別の例では、発信源102は、医療、産業、又は科学用撮影のための1つ以上のセンサーを備え得る。そのようなセンサーは、X線検出器、磁気共鳴画像センサー、粒子検出器などを含み得る。更に別の例では、発信源102はアニメーションシステムを備え得る。この例では、1人以上のユーザが、このアニメーションシステムを使用して、彼らの想像からビデオデータのコンテンツを描画、作成、プログラム、又は他の方法でデザインし得る。
符号化ユニット104は、発信源102によって生成されたビデオデータを受け取る。符号化ユニット104は、より少ないデータでビデオデータ中の一連のフレームが表されるようにビデオデータを符号化する。幾つかの事例では、ビデオデータが、DVD又はCD−ROMなど、所与のタイプのコンピュータ可読媒体に記憶され得ることを保証するために、このようにビデオデータを符号化することが必要であり得る。更に、幾つかの事例では、ビデオデータが、インターネットなどの通信ネットワークを介して効率的に送信され得ることを保証するために、このようにビデオデータを符号化することが必要であり得る。
符号化ユニット104は、ビデオフレームのシーケンス又は連続としてしばしば表される、ビデオデータを符号化し得る。ビデオデータを符号化するために、符号化ユニット104は、これらのフレームを(一般に「スライス」と呼ばれる)単独で復号可能な部分に分割し得、符号化ユニット104は、今度は、これらの部分をツリーブロックに分割し得る。これらのツリーブロックは、ある形式の再帰的階層4重ツリー分割(recursive hierarchical quadtree splitting)を受け得る。符号化ユニット104は、この分割を実行して、階層ツリー状のデータ構造を生成し得、そのルートノードは「ツリーブロック」と呼ばれる。この階層ツリー状のデータ構造のリーフノードは「コード化ノード」と呼ばれることがある。「コード化単位」又は「CU」は、コード化ノード、及び動き情報並びに変換情報を含む他のタイプの情報を含む。各コード化ノードは、ツリーブロック内のサンプルブロックを識別する。本開示では、CUに関連するコード化ノードによって識別されるサンプルブロックは、CUのサンプルブロックと呼ばれることがある。
符号化ユニット104は、CUのサンプルブロックを予測領域に区分するために矩形及び/又は幾何学的区分モードを使用し得る。符号化ユニット104が、CUのサンプルブロックを区分するために幾何学的区分モードを使用したとき、区分領域間の境界がサンプルブロックのエッジと直角に交わらないことがある。符号化ユニット104は、予測領域ごとに、動きベクトルなどの動き情報を生成するために、各予測領域に対してある形式の動き推定を実行し得る。CUの「予測単位」又は「PU」は、CUの予測領域を示す情報、予測領域の動き情報、及び/又は予測領域に関する他の情報を含んでいることがある。符号化ユニット104は、動き情報を使用して予測ブロックを生成し得る。
本開示の技法によれば、符号化ユニット104は、CUの第1のPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界において生じる。符号化ユニット104が平滑化演算を実行すべきであるという決定を行った後に、符号化ユニット104は、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行し得る。
更に、本開示の技法によれば、符号化ユニット104は、隣接領域サイズを選択することによって予測ブロックのサンプルが遷移ゾーン中にあるかどうかを決定し得る。隣接領域サイズを選択した後に、符号化ユニット104は、予測ブロックの遷移ゾーン中のサンプルを識別し得る。隣接領域が、CUの第1のPUに関連するサンプルを含んでおり、またCUの第2のPUに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、CUの第1のPUに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。
符号化ユニット104は、次いで、CUの元のサンプルブロックを予測ブロックと比較することによって残差データを求める。この残差データを求めた後に、符号化ユニット104は、残差データに変換を適用し得る。従って、符号化ユニット104は、予測ブロックから導出された残差データに変換を適用する前に、予測ブロックの遷移ゾーン中のサンプルに平滑化演算を適用する。この残差データを変換するために、符号化ユニット104は、残差データを1つ以上の変換領域に区分し得る。符号化ユニット104は、次いで、残差データの変換領域に1つ以上の変換を適用して、「変換係数ブロック」と呼ばれることもある、変換された残差データを生成する。この変換係数ブロックは、一般に、残差データを変換係数のブロックとして表現する。変換された残差データは、次いで、対応するCUの変換単位(TU)に記憶される。従って、CUは、コード化ノード又はサンプルブロック、TU及びCU、ならびに、変換された残差データを復号するために必要であり得る他のシンタックス要素を備える。
復号ユニット106は、符号化されたビデオデータを受け取る。様々な例において、復号ユニット106は、符号化されたビデオデータを様々な方法で受け取り得る。例えば、復号ユニット106は、DVDなど、ビデオデータを記憶したコンピュータ可読媒体を受け取り得る。別の例では、復号ユニット106は、インターネット、ローカル領域ネットワーク(LAN)、別のコンピュータ機器に接続されたケーブル、又はワイヤレスネットワーキングリンクなどの通信媒体から、符号化されたビデオデータを受け取り得る。
符号化されたビデオデータを受け取った後に、復号ユニット106は、その符号化されたビデオデータを復号する。復号ユニット106が、符号化されたビデオデータを復号するとき、復号ユニット106は、ビデオデータ中のフレームのCUのための予測ブロックを生成し得る。復号ユニット106は、次いで、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定し得る。予測ブロックの遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界にあり得る。復号ユニット106が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った後に、復号ユニット106は、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行する。
更に、本開示の技法によれば、復号ユニット106は、隣接領域サイズを選択することによって予測ブロックのサンプルが遷移ゾーン中にあるかどうかを決定し得る。隣接領域サイズを選択した後に、復号ユニット106は、予測ブロックの遷移ゾーン中のサンプルを識別し得る。隣接領域が、CUの第1のPUに関連するサンプルを含んでおり、またCUの第2のPUに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、CUの第1のPUに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。
プレゼンテーションユニット108は、復号ユニット106から、復号されたビデオデータを受け取る。様々な例において、プレゼンテーションユニット108は、復号されたビデオデータを様々な方法で受け取る。例えば、単一のコンピュータ機器が、復号ユニット106とプレゼンテーションシステム108とを設ける場合、プレゼンテーションユニット108は、ケーブル又はバスなど、1つ以上の内部通信媒体を介して、復号されたビデオデータを受け取り得る。別の例では、プレゼンテーションユニット108は、ネットワーク接続、DVD、CD−ROM、固体メモリ機器など、1つ以上のコンピュータ可読媒体から、復号されたビデオデータを受け取り得る。復号されたビデオデータを受け取った後に、プレゼンテーションユニット108は、1人以上のユーザに、復号されたビデオデータ中のフレームを提示する。
図3は、符号化ユニット104の例示的な構成を示すブロック図である。図3の例では、符号化ユニット104は、モード選択ユニット302と、インター予測ユニット304と、イントラ予測ユニット308と、残差生成ユニット310と、変換モジュール312と、量子化ユニット314と、エントロピーコード化ユニット316と、逆量子化ユニット318と、逆変換ユニット320と、再構成ユニット322と、参照フレーム記憶部324とを設ける。符号化ユニット104の幾つかの例は、より多いか、より少ないか、又は異なるユニットを備え得ることを読者は理解されよう。
様々な例において、符号化ユニット104は、モード選択ユニット302と、インター予測ユニット304と、イントラ予測ユニット308と、残差生成ユニット310と、変換モジュール312と、量子化ユニット314と、エントロピーコード化ユニット316と、逆量子化ユニット318と、逆変換ユニット320と、再構成ユニット322と、参照フレーム記憶部324とを、様々な方法で実施する。例えば、符号化ユニット104を実施する1つ以上のコンピュータ機器は、この1つ以上のコンピュータ機器のプロセッサが、1つ以上のコンピュータ可読媒体に記憶された幾つかのコンピュータ可読命令を実行するとき、これらのユニットのうちの1つ以上を実施し得る。この例では、これらのユニット又はモジュールは、コンピュータソフトウェアの個別のモジュール部分として、実施されても実施されなくてもよい。別の例では、符号化ユニット104を実施する1つ以上のコンピュータ機器は、これらのユニットのうちの1つ以上の機能を実施する1つ以上の特定用途向け集積回路(ASIC)を備え得る。幾つかの例では、これらのユニットの機能は、別個のコンピュータ機器によって提供され得る。
符号化ユニット104は、ビデオデータのフレームを表すデータを受け取る。符号化ユニット104が、フレームを表すデータを受け取ると、符号化ユニット104はそのフレームを符号化する。説明を簡単にするために、本開示では、符号化されているフレームをソースフレームと呼ぶ。ソースフレームを表すデータは、サンプルの1つ以上のブロックを備える。
ソースフレームを符号化するために、モード選択ユニット302は、フレームのサンプルブロックを複数のツリーブロックの間で区分する。幾つかの事例では、ツリーブロックは、ルーマサンプルのN×Nブロックと、クロマサンプルの2つの対応するブロックとであり得る。幾つかの例では、ブロックは、サンプル又は変換係数の2次元アレイである。他の事例では、ツリーブロックは、ルーマサンプル又はクロマサンプルアレイのブロックであり得る。
モード選択ユニット302は、ツリーブロックの各々についてクワッドツリーを生成し得る。ツリーブロックのクワッドツリーは、ノードの階層を備える。初期に、所与のツリーブロックのクワッドツリーはルートノードのみを備える。ルートノードは、所与のツリーブロックに対応する。モード選択ユニット302は、所与のツリーブロックを複数のより小さいサンプルブロックに区分し得る。モード選択ユニット302が、所与のツリーブロックを複数のより小さいサンプルブロックに区分するとき、モード選択ユニット302は、所与のツリーブロックのクワッドツリーに子ノードを追加する。子ノードの各々は、これらのより小さいサンプルブロックのうちの異なる1つに対応する。幾つかの例では、モード選択ユニット302は、より小さいサンプルブロックのうちの1つ以上を、更により小さいサンプルブロックに再分割し得る。モード選択ユニット302が、より小さいサンプルブロックを更により小さいサンプルブロックに区分するとき、モード選択ユニット302は、所与のツリーブロックのクワッドツリーに孫ノードを追加し得る。孫ノードの各々は、これらの更により小さいサンプルブロックのうちの1つに対応する。孫ノードは、子ノードの子である。モード選択ユニット302は、事前構成された限界まで、適宜に所与のツリーブロックを所与のツリーブロックのクワッドツリーに区分し、ノードを生成し続け得る。本明細書では、子ノードを有しないクワッドツリー中のノード(即ち、リーフノード)をコード化ノードと呼ぶ。
コード化ノードの各々は、異なるCUに対応する。CUのコード化ノードは、予測ツリーと変換ツリーとのルートノードである。予測ツリーは、CUのPUの情報を記憶する。例えば、予測ツリーは、PUの予測領域のサイズ及び位置を指定し得る。CUのPUはまた、追加の関連する予測データを備え得る。変換ツリーは、CUのTUに関する情報を記憶する。例えば、変換ツリーは、TUの変換領域のサイズ及び位置を指定し得る。CUのTUはまた、追加の関連する変換データを備え得る。
図4は、ツリーブロック400A〜400P(総称して「ツリーブロック400」)に区分される例示的なフレーム200Aを示す概念図である。ツリーブロック400の各々は、方形であり、同じサイズを有する。例えば、ツリーブロック400のサンプルブロックは、幅32サンプル×高さ32サンプル(即ち、32×32)であり得る。別の例では、ツリーブロック400のサンプルブロックは、64サンプル幅×64サンプル高さ(即ち、64×64)であり得る。
図5は、ツリーブロック400のさらなる例示的な区分を示す概念図である。図5の例では、モード選択ユニット302は、ツリーブロック400Jのサンプルブロックを4つのより小さいサンプルブロック500A〜500Dに区分している。更に、図5の例では、モード選択ユニット302は、サンプルブロック400Dを4つのサンプルブロック502A〜504Dに区分している。モード選択ユニット302は、更に、サンプルブロック502Aを4つのさらなるサンプルブロック504A〜504Dに再分割している。
続いて、ここで図3の例の参照をする。モード選択ユニット302がツリーブロックのクワッドツリーを生成した後に、インター予測ユニット304は、ツリーブロックのCUごとにフレーム間コード化演算を実行する。インター予測ユニット304が、CUのためのフレーム間コード化演算を実行するとき、インター予測ユニット304は、CUのサンプルブロックを予測領域に区分するために矩形及び/又は幾何学的区分モードを使用する。CUのPUはこれらの予測領域を指定する。
インター予測ユニット304が、所与の区分モードを使用してサンプルブロックを2つ以上の予測領域に区分した後に、インター予測ユニット304は、これらの予測領域に関連するPUについての動き情報を生成する動き推定演算を実行し得る。動き推定演算中に、インター予測ユニット304は、PUの参照サンプルについて参照フレームを探索する。PUの参照サンプルは、PUの予測領域中のサンプルに対応する参照フレームの部分である。インター予測ユニット304は、PUの参照サンプルを示すために、PUについての動き情報を生成する。
インター予測ユニット304は、CUのPUの参照サンプルを使用してCUの予測ブロックを生成する。CUの予測ブロックは予測サンプルのブロックである。CUの予測ブロックは、CUのサンプルブロックとはいくぶん異なり得る。例えば、予測ブロック中のサンプルは、CUのサンプルブロックの対応するサンプルとは色又は輝度が僅かに異なり得る。
本開示の技法によれば、インター予測ユニット304は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかの決定を行い得る。インター予測ユニット304が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った場合、インター予測ユニット304は、遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行する。更に、インター予測ユニット304は、予測ブロックの遷移ゾーン中のサンプルを適応的に識別し得る。例えば、インター予測ユニット304は隣接領域サイズを選択し得る。隣接領域サイズを選択した後に、インター予測ユニット304は、遷移ゾーン中のサンプルを識別し得る。この例では、隣接領域が、CUの第1のPUに関連するサンプルを含んでおり、またCUの第2のPUに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、CUの第1のPUに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。
イントラ予測ユニット308は、CUの予測ブロックを生成するために、ソースフレームの他のCUのサンプルブロック中のサンプルを使用し得る。様々な例において、イントラ予測ユニット308は、予測ブロックを様々な方法で生成する。例えば、イントラ予測ユニット308は、隣接CU中のサンプルが予測ブロックを横切って水平方向に又は予測ブロックを通って垂直下方向に延びるようにCUの予測ブロックを生成し得る。イントラ予測ユニット308はまた、CUのサンプルブロックに最も良く対応するイントラ予測モードを選択し得る。
インター予測ユニット306とイントラ予測ユニット308とがCUの予測ブロックを生成した後に、モード選択ユニット302は、CUの予測ブロックのうちの1つを選択し得る。モード選択ユニット302が、イントラ予測ユニット308によって生成された予測ブロックを選択する場合、モード選択ユニット302は、選択された予測ブロックを生成するときにイントラ予測ユニット308が使用したイントラ予測モードを示すために、CUのコード化ノードにシンタックス要素を追加し得る。モード選択ユニット302が、インター予測ユニット304によって生成された予測ブロックを選択する場合、モード選択ユニット302は、CUを符号化するためにインター予測が使用されたことを示すCUについてコード化ノードにシンタックス要素を追加し得る。更に、モード選択ユニット302は、CUの予測ツリーにシンタックス要素を追加し得る。例えば、モード選択ユニット302は、CUのPUのサイズ及び位置、PUの動きベクトル、ならびにフレーム間コード化演算中に生成された他のデータを示すシンタックス要素を予測ツリーに追加し得る。更に、モード選択ユニット302は、CUの変換ツリーにシンタックス要素を追加し得る。例えば、モード選択ユニット302は、CUのTUのサイズ及び位置を示すシンタックス要素を変換ツリーに追加し得る。
幾つかの例では、シンタックス要素は、ビットストリーム中に表されたデータの要素である。ビットストリームは、1つ以上のコード化ビデオシーケンスを形成する、コード化ピクチャ及び関連するデータの表現を形成するビットのシーケンスであり得る。コード化ビデオシーケンスはアクセス単位のシーケンスであり得る。アクセス単位は、復号順序が連続しており、ちょうど1つの1次コード化ピクチャを含んでいる、ネットワークアブストラクションレイヤ(NAL:Network Abstraction Layer)単位のセットであり得る。NAL単位は、後続すべきデータのタイプの指示を含んでいるシンタックス構造と、エミュレーション防止ビットを用いて必要に応じて点在させられた未加工バイトシーケンスペイロードの形式でそのデータを含んでいるバイトとであり得る。1次コード化ピクチャは、ビットストリームのために復号プロセスによって使用されるべきピクチャのコード化表現であり得る。
モード選択ユニット302がCUの予測ブロックを選択した後に、残差生成ユニット310は、CUの元のサンプルブロックと、CUの選択された予測ブロックとを使用して、CUの残差データを生成し得る。幾つかの例では、CUの残差データは、残差データの2次元アレイ(即ち、残差ブロック)として構成され得る。CUの残差データは、CUの元のサンプルブロックと、CUの予測ブロックとの間の差異を表し得る。様々な例において、残差生成ユニット310は、残差データを様々な方法で生成し得る。例えば、残差生成ユニット310は、CUのサンプルブロック中のサンプルからCUの予測ブロック中のサンプルを減算することによってCUの残差データを生成し得る。
上記で手短に説明したように、各CUは1つ以上のTUを有する。変換単位は、変換ツリー及び関連する変換データを備え得る。変換ツリーは、変換領域のサイズ及び位置を指定し得る。例えば、変換ツリーは、変換領域の左上コーナーの位置を示し得る。この例では、変換領域のサイズは、変換ツリー中の対応するノードの深さから導出され得る。
残差生成ユニット310がCUの残差データを生成すると、変換モジュール312は、CUのTUごとに変換演算を実行し得る。変換モジュール312がCUのTUのための変換演算を実行するとき、変換モジュール312は、残差データの適用可能なサンプルを空間領域から周波数領域に変換する。変換モジュール312は、サンプルを周波数領域に変換係数ブロックとして記憶し得る。残差データの適用可能なサンプルは、TUによって指定された変換領域中に残差データのサンプルを含み得る。変換係数ブロックは変換係数の2次元アレイである。幾つかの例では、変換係数は、復号プロセスの逆変換部分において特定の1次元又は2次元周波数インデックスに関連付けられた、周波数領域中にあると見なされるスカラー量であり得る。
変換モジュール312が残差データのサンプルに対して変換演算を実行するとき、変換モジュール312は、それらのサンプルに数学的変換を適用する。例えば、変換モジュール312は、サンプルを空間領域から周波数領域に変換するために、サンプルに対して離散コサイン変換(DCT)を実行し得る。
変換モジュール312は、得られた変換係数ブロックを量子化ユニット314に与え得る。量子化ユニット314は、変換係数ブロックに対して量子化演算を実行し得る。量子化ユニット314が量子化演算を実行するとき、量子化ユニット314は、変換係数ブロック中の変換係数の各々を量子化し、それによって量子化変換係数ブロックを生成し得る。量子化変換係数ブロックは量子化変換係数の2次元アレイである。様々な例において、量子化ユニット314は様々な量子化演算を実行する。例えば、量子化ユニット314は、変換係数を量子化パラメータで除算し、次いで、得られた商をクリッピングすることによって変換係数を量子化する、量子化演算を実行し得る。
量子化ユニット314がCUの変換係数ブロックに対して量子化演算を実行した後、エントロピーコード化ユニット316は、CUの量子化変換係数ブロックと、CUのコード化ノードと、CUの予測ツリーと、CUの変換ツリーとに対してエントロピーコード化演算を実行する。エントロピーコード化ユニット316は、このエントロピーコード化演算を実行した結果として、CUのエントロピーコード化データを生成する。幾つかの事例では、エントロピーコード化ユニット316がエントロピーコード化演算を実行するとき、量子化ユニット314は、CUのデータを表すために必要とされるビット数を低減し得る。様々な事例において、エントロピーコード化ユニット316は、CUのデータに対して様々なエントロピーコード化演算を実行し得る。例えば、エントロピーコード化ユニット316は、CUのデータに対してコンテキスト適応型可変長コード化(CAVLC)演算又はコンテキスト適応型バイナリ算術コード化(CABAC)演算を実行し得る。
符号化ユニット104は、CUのエントロピー符号化データを含むビットストリームを生成する。様々な例において、符号化ユニット104は、CUのエントロピー符号化データを含む様々なタイプのビットストリームを生成し得る。例えば、符号化ユニット104はNAL単位ストリームを出力し得る。この例では、NAL単位ストリームは、NAL単位と呼ばれるシンタックス構造のシーケンスを備える。NAL単位は復号順に順序付けられる。NAL単位のうちの1つ以上は、CUのエントロピー符号化データを含み得る。別の例では、符号化ユニット104はバイトストリームを出力し得る。符号化ユニット104は、NAL単位を復号順に順序付けし、各NAL単位の前に開始コードプレフィックスと0個以上の0値バイトとを付けてバイトのストリームを形成するによって、NAL単位ストリームからバイトストリームを構築する。
逆量子化ユニット318は、量子化変換係数ブロックに対して逆量子化演算を実行する。この逆量子化演算は、少なくとも部分的に、量子化ユニット314によって実行された量子化演算の効果を逆転させ、それによって変換係数ブロックを生成する。
逆変換ユニット320は、逆量子化ユニット318によって生成された変換係数ブロックに対して逆変換演算を実行する。逆変換ユニット320が逆変換演算を実行するとき、逆変換ユニット320は、変換モジュール312によって実行された変換演算の効果を逆転させ、それによって、再構成された残差データを生成する。
再構成ユニット322は、再構成されたサンプルブロックを生成する再構成演算を実行する。再構成ユニット322は、再構成された残差データと、インター予測ユニット304又はイントラ予測ユニット308によって生成された予測ブロックとに基づいて、再構成されたサンプルブロックを生成する。様々な例において、再構成ユニット322は様々な再構成演算を実行する。例えば、再構成ユニット322は、再構成された残差データ中のサンプルに予測ブロック中の対応するサンプルを加算することによって再構成演算を実行する。
参照フレーム記憶部324は、再構成されたサンプルブロックを記憶する。符号化ユニット104がソースフレームの各CUについてデータを符号化した後に、符号化ユニット104は、ソースフレーム中の各CUについて再構成されたサンプルブロックを生成している。従って、参照フレーム記憶部324は、ソースフレームのサンプルブロックの完全な再構成を記憶する。モード選択ユニット302は、ソースフレームのサンプルブロックの再構成を参照フレームとしてインター予測ユニット304に与え得る。
図6は、インター予測ユニット304の例示的な構成を示すブロック図である。図6の例では、インター予測ユニット304は、動き推定ユニット602と、動き補償ユニット604と、TU生成ユニット606とを備える。動き補償ユニット604は平滑化ユニット608を備える。インター予測ユニット304の他の例示的な構成は、より多いか、より少ないか、又は異なる構成要素を含み得ることを読者は理解されよう。
動き推定ユニット602は、CUのPUごとに動き推定演算を実行し得る。動き補償ユニット604は、CUの予測ブロックを生成する動き補償演算を実行し得る。TU生成ユニット606は、CUのTUを生成する変換単位選択演算を実行し得る。本開示の技法によれば、平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行し得る。更に、平滑化ユニット608は、予測ブロックのどのサンプルが遷移ゾーン中にあるかを決定し得る。図12〜図21について平滑化ユニット608によって実行される演算として説明するが、図12〜図21において説明する演算は、復号ユニット106の動き補償ユニットによって実行され得る。
動き推定ユニット602がCUの動き推定演算を実行するとき、動き推定ユニット602は、1つ以上の予測ツリーを生成し得る。予測ツリーの各々は、CUの異なるPUに関連し得る。予測ツリーの各々は、予測領域の位置及びサイズを指定し得る。説明を簡単にするために、本開示では、PUの予測ツリーによって指定された予測領域の位置又はサイズをPUの位置又はサイズと呼ぶことがある。
動き推定ユニット602は、参照サンプルについて1つ以上の参照フレームを探索し得る。PUの参照サンプルは、PUの予測領域内に入るCUのサンプルブロックの部分に視覚的に対応する参照フレームの領域であり得る。動き推定ユニット602が、PUのうちの1つについてそのような参照サンプルを見つけた場合、動き推定ユニット602は動きベクトルを生成し得る。この動きベクトルは、PUの参照サンプルの空間位置とPUの空間位置との間の差異を記述するデータのセットである。例えば、動きベクトルは、PUの参照サンプルが、PUに対して5サンプル分だけより高く、3サンプル分だけ右側にあることを示し得る。更に、幾つかの状況では、動き推定ユニット602は、PUの参照サンプルを識別することができないことがある。そのような状況では、動き推定ユニット602は、PUのためにスキップモード又はダイレクトモードを選択し得る。
幾つかの例では、PUの参照サンプルについて探索を実行するのではなく、動き推定ユニット602は、PUの動きベクトルを予測し得る。この動きベクトル予測を実行する際に、動き推定ユニット602は、ソースフレーム中の空間的に隣接するCUについて決定される動きベクトル、又は参照フレーム中のコロケートCUについて決定される動きベクトルのうちの1つを選択し得る。動き推定ユニット602は、各区分の動きベクトルを決定することに関連する複雑さを低減するために、参照サンプルについて探索するのではなく動きベクトル予測を実行し得る。
動き補償ユニット604は、CUの予測ブロックを生成するためにPUのインターコード化モードを使用する。動き推定ユニット602がPUのためにスキップモードを選択した場合、動き補償ユニット604は、そのPUに関連する予測ブロック中のサンプルが参照フレーム中のコロケートサンプルに一致するようにCUの予測ブロックを生成し得る。動き推定ユニット602がPUのためにダイレクトモードを選択した場合、動き補償ユニット604は、そのPUに関連する予測ブロック中のサンプルがCUのサンプルブロック中のコロケートサンプルに一致するように予測ブロックを生成し得る。動き推定ユニット602がPUのために動きベクトルを生成した場合、動き補償ユニット604は、そのPUに関連する予測ブロック中のサンプルが、動きベクトルによって示される参照フレームの部分中のサンプルに対応するように、予測ブロックを生成し得る。動き推定ユニット602がPUのために複数の動きベクトルを生成した場合、動き補償ユニット604は、そのPUに関連する予測ブロック中のサンプルが、そのPUの動きベクトルによって示される複数の参照フレームの部分中のサンプルに対応するように、予測ブロックを生成し得る。
図7は、復号ユニット106の例示的な構成を示すブロック図である。図7の例に示すように、復号ユニット106は、エントロピー復号ユニット700と、動き補償ユニット702と、イントラ予測ユニット704と、逆量子化ユニット708と、逆変換モジュール710と、再構成ユニット712と、参照フレーム記憶部714とを実施する。様々な例において、復号ユニット106は、これらの構成要素を様々な方法で実施する。例えば、復号ユニット106を与える1つ以上のコンピュータ機器は、このコンピュータ機器のプロセッサが幾つかのコンピュータ可読命令を実行するとき、これらのユニットを実施し得る。この例では、これらのユニット又はモジュールは、コンピュータソフトウェアの個別のモジュール部分として、実施されても実施されなくてもよい。別の例では、復号ユニット106を実施する1つ以上のコンピュータ機器は、これらのユニットのうちの1つ以上の機能を提供するASICを備え得る。
復号ユニット106は、ビデオデータを表す符号化ビットストリームを受け取る。符号化ビットストリームは、ビデオデータ中のフレームを表すデータを備え得る。例えば、符号化ビットストリームは、フレーム200(図2)の各々を表すデータを備え得る。復号ユニット106が、フレームを表すデータを受け取ると、復号ユニット106は、フレームを再構成するためにそのデータを復号する。説明を簡単にするために、本開示では、このフレームをソースフレームと呼ぶことがある。
復号ユニット106がソースフレームについてデータを復号するとき、復号ユニット106は、ソースフレームの各CUについて符号化データを受け取る。例えば、復号ユニット106は、CUの量子化変換係数ブロックの符号化バージョンと、CUのコード化ノードの符号化バージョンと、CUの予測ツリーの符号化バージョンと、CUの変換ツリーの符号化バージョンとを受け取り得る。復号ユニット106は、次いで、ソースフレームの各CUのデータを復号する。復号ユニット106が所与のCUのデータを復号するとき、エントロピー復号ユニット700は、所与のCUの符号化データを受け取る。エントロピー復号ユニット700は、所与のCUの符号化データに対してエントロピー復号演算を実行する。エントロピー復号演算は、エントロピーコード化ユニット316(図3)によって実行されたエントロピーコード化演算の効果を逆転させる。
エントロピー復号ユニット700は、CUの量子化変換係数ブロックを逆量子化ユニット708に与える。エントロピー復号ユニット700は、CUのコード化ノード、予測ツリー、及び変換ツリーなど、CUのコード化データを、動き補償ユニット702及び/又はイントラ予測ユニット704に与え得る。
動き補償ユニット702がCUのコード化データを受け取ると、動き補償ユニット702は、そのコード化データを使用して、CUの予測ブロックを生成する動き補償演算を実行する。動き補償演算中に、動き補償ユニット702は、参照フレーム記憶部714から1つ以上の参照フレームを取り出し得る。動き補償ユニット702は、次いで、CUのPUのための参照サンプルを識別し得る。PUの動きベクトルが、PUの参照サンプルとして参照フレーム内の領域を識別する。CUのPUのための参照サンプルを識別した後に、動き補償ユニット702は、CUの予測ブロックを生成する。予測ブロックにおいて、CUのPUは、PUの参照サンプルを含んでいることがある。
本開示の技法によれば、動き補償ユニット702は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行する演算を実行し得る。例えば、動き補償ユニット702は、図12〜図18及び図20に示す例示的な演算のうちの1つを実行し得る。更に、幾つかの事例では、動き補償ユニット702は、どのサンプルが遷移ゾーン内にあるかを決定し得る。幾つかの例では、動き補償ユニット702は、図20及び図21に示す例示的な演算を実行することによって、どのサンプルが遷移ゾーン内にあるかを決定し得る。
イントラ予測ユニット704がCUのコード化データを受け取ると、イントラ予測ユニット704は、ソースフレーム中の前に復号されたサンプルブロックの再構成されたサンプルブロックを使用して、CUの予測ブロックを生成する。イントラ予測ユニット704は、指示されたイントラ予測モードに従って予測ブロック中のサンプルを修正し得る。
逆量子化ユニット708は、各CUについて1つ以上の量子化変換係数ブロックを受け取る。逆量子化ユニット708がCUの量子化変換係数ブロックを受け取ると、逆量子化ユニット708は、少なくとも部分的に、量子化ユニット314(図3)によって実行された量子化演算の効果を逆転させ、それによってCUの非量子化変換係数ブロックを生成する、逆量子化演算を実行する。
逆変換モジュール710は、変換係数ブロックに対して逆変換演算を実行する。この逆変換演算は、変換モジュール312(図3)によって実行された変換演算の効果を逆転させ、それによって、再構成された残差データを生成し得る。逆変換モジュール710は、再構成された残差データを再構成ユニット712に与える。
再構成ユニット712は、動き補償ユニット702及びイントラ予測ユニット704から予測ブロックを受け取る。再構成ユニット712はまた、逆変換モジュール710から、対応する再構成された残差データを受け取る。再構成ユニット712は、CUの再構成された残差データとCUの予測ブロックとを使用して、CUのための再構成されたサンプルブロックを生成する、再構成演算を実行する。様々な例において、再構成ユニット712は様々な再構成演算を実行し得る。例えば、再構成ユニット712は、CUの再構成された残差データ中のサンプルにCUの予測ブロック中の対応するサンプルを加算することによって、CUの再構成されたサンプルブロックを生成し得る。
CUのための再構成されたサンプルブロックを生成した後に、再構成ユニット712は、再構成されたサンプルブロックを出力する。再構成ユニット712はまた、再構成されたサンプルブロックを参照フレーム記憶部714に与える。参照フレーム記憶部714は、再構成されたサンプルブロックを記憶する。動き補償ユニット702及び/又はイントラ予測ユニット704は、その後、再構成されたサンプルブロックを使用して追加の予測ブロックを生成し得る。
図8は、インター予測ユニット304によって実行される例示的なフレーム間コード化演算800を示すフローチャートである。符号化ユニット104がフレーム間コード化演算800を開始した後、動き推定ユニット602は、CUのPUに対して動き推定演算を実行する(802)。幾つかの事例では、動き推定ユニット602は、PUの参照サンプルについて参照フレームの探索領域内を探索することによってPUの動き推定演算を実行し得る。PUの参照サンプルは、PUの予測ツリーによって指定された予測領域に対応する参照フレームの一部分であり得る。動き推定ユニット602がPUの参照サンプルを見つけた場合、動き推定ユニット602は、PUとPUの参照サンプルとの間の位置の差異を示す動きベクトルを生成し得る。他の事例では、動き推定ユニット602は、PUの動きベクトルを予測し得る。
この一般的な枠組内で、動き推定ユニット602の様々な例は、動き推定演算を様々な方法で実行し得る。例えば、PUに対応する参照フレームの部分を探索するとき、動き推定ユニット602の異なる例は異なる探索領域を使用し得る。幾つかのそのような例では、符号化ユニット104は、動き推定ユニット602によって使用される探索領域のサイズを制御する探索領域パラメータを有する。探索領域パラメータの値は、人間のユーザによって、又はコンピュータプログラムによって設定され得る。
CUのPUに対して動き推定演算を実行した後に、動き補償ユニット604は、動き補償演算を実行してCUの予測ブロックを生成する(804)。更に、演算800の実行中に、平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行する演算を実行する(806)。この平滑化演算は、予測ブロックの遷移ゾーン中のサンプルを平滑化し得る。遷移ゾーンは、CUの異なるPUに関連する予測ブロックのサンプル間の境界において生じ得る。例えば、遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、第2のPUに関連する予測ブロックのサンプルとの間の境界において生じ得る。予測ブロックのサンプルが、PUの予測ツリーによって指定された予測領域内にあるとき、そのサンプルはPUに関連し得る。
幾つかの例では、遷移領域中のサンプルを平滑化することにより、そのサンプルと、そのサンプルに隣接するサンプルとの間の差異が低減され得る。本開示における他の場所で説明したように、平滑化ユニット608は、平滑化演算を実行することによって、CUの復号されたサンプルブロックのコード化効率及び/又は視覚的外観を改善し得る。様々な例において、平滑化ユニット608は様々な平滑化演算を実行する。本開示における他の場所で詳細に説明する図12〜図18及び図20に、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するために平滑化ユニット608によって実行される例示的な演算を示す。
更に、TU生成ユニット606は、CUのためのTUのサイズを選択する変換選択演算を実行する(808)。上記で説明したように、変換モジュール312はCUの残差データを受け取り得る。変換モジュール312は、次いで、CUの各TUに対して変換演算を実行し得る。変換モジュール312がTUに対して変換演算を実行するとき、変換モジュール312は、TUに対応する残差データのサンプルに変換を適用し、それによってTUの変換係数ブロックを生成し得る。残差データのサンプルが、TUの変換ツリーによって指定された変換領域内にあるとき、そのサンプルはTUに対応し得る。符号化ユニット104中の逆変換ユニット320及び復号ユニット106中の逆変換モジュール710はまた、変換係数ブロックをサンプルブロックに変換するとき、選択された変換サイズを有する変換を使用する。
更に、インター予測ユニット304はインター予測シンタックス要素を生成する(810)。インター予測シンタックス要素は、CUと予測ブロックとに関する情報を提供し得る。例えば、インター予測シンタックス要素は、CUが2つ以上のPUを有するかどうかを示すシンタックス要素を含み得る。この例では、CUが2つ以上のPUを有する場合、インター予測シンタックス要素はまた、PUの予測領域のサイズ、形状、及び/又は位置を示し得る。別の例では、インター予測シンタックス要素は、CUのPUのためのインター予測モードを指定し得る。更に、インター予測シンタックス要素は、CUのPUのうちの1つ以上の動きベクトルに基づくデータを含み得る。別の例では、インター予測シンタックス要素は、CUのTUのサイズ及び/又は位置を示し得る。幾つかの例では、インター予測シンタックス要素のセットは、H.264 MPEG Part10規格によって指定されたインター予測シンタックス要素の一部又は全部を含む。
モード選択ユニット302が、ステップ804において生成された予測ブロックを選択した場合、インター予測ユニット304は、予測ブロックを残差生成ユニット310及び再構成ユニット322に出力し得る。更に、モード選択ユニット302が、ステップ804において生成された予測ブロックを選択した場合、モード選択ユニット302は、CUのコード化ノード、予測ツリー及び/又は変換ツリーにインター予測シンタックス要素を含め得る。
図9は、例示的な矩形区分モードを示す概念図である。上記で手短に説明したように、動き推定ユニット602は、CUのための1つ以上のPUを生成し得る。PUの各々は、予測領域のサイズ及び位置を指定する予測ツリーを有し得る。予測領域の各々は、CUのサンプルブロックの異なる区分に対応し得る。説明を簡単にするために、本開示では、PUの予測ツリーによって指定された予測領域が、CUのサンプルブロックの区分に対応するとき、PUはCUのサンプルブロックの区分に対応すると説明することがある。
様々な例において、動き推定ユニット602は、CUのPUを生成するために様々な区分モードを使用し得る。そのような区分モードは矩形区分モードを含み得る。矩形区分モードでは、PUは、CUのサンプルブロックの矩形区分に対応する。幾つかの例では、動き推定ユニット602は、H.264 MPEG Part10規格において定義されている一部又は全部の矩形区分モードを使用することが可能である。
図9の例は、矩形区分モード900A〜H(総称して「矩形区分モード900」)を示している。矩形区分モード900Aでは、動き推定ユニット602は、CUのための単一のPUを生成する。このPUの予測領域は、CUのサンプルブロックと同じサイズである。矩形区分モード900Bでは、動き推定ユニット602は、CUのための4つのPUを生成する。矩形区分モード900Bを使用して生成されたPUは、CUのサンプルブロックの4つの等しいサイズの区分に対応する。
矩形区分モード900C〜900Hでは、動き推定ユニット602は、CUのための2つのPUを生成する。矩形区分モード900Cを使用して生成されたPUは、CUのサンプルブロックの等しいサイズの水平方向に分割された区分に対応する。矩形区分モード900Dを使用して生成されたPUは、CUのサンプルブロックの等しいサイズの垂直方向に分割された区分に対応する。
矩形区分モード900Eを使用して生成されたPUは、サンプルブロックの水平方向に分割された区分に対応し、下のほうの区分が上のほうの区分よりも大きい。幾つかの例では、動き推定ユニット602は、サンプルブロックの水平中央線より上方でサンプルブロック中の任意のサンプルにおいて水平方向にサンプルブロックを区分し得る。矩形区分モード900Fを使用して生成されたPUは、サンプルブロックの水平方向に分割された区分に対応し、下のほうの区分が上のほうの区分よりも小さい。幾つかの例では、動き推定ユニット602は、サンプルブロックの水平中央線より下方でサンプルブロック中の任意のサンプルにおいて水平方向にサンプルブロックを区分し得る。
矩形区分モード900Gを使用して生成されたPUは、サンプルブロックの垂直方向に分割された区分に対応し、左区分が右区分よりも小さい。幾つかの例では、動き推定ユニット602は、サンプルブロックの垂直中央線の左側でサンプルブロック中の任意のサンプルにおいて垂直方向にサンプルブロックを区分し得る。矩形区分モード900Hを使用して生成されたPUは、サンプルブロックの垂直方向に分割された区分に対応し、左区分が右区分よりも大きい。幾つかの例では、動き推定ユニット602は、サンプルブロックの垂直中央線の右側でサンプルブロック中の任意のサンプルにおいて垂直方向にサンプルブロックを区分し得る。
図10は、例示的な幾何学的区分モードを示す概念図である。幾つかの例では、動き推定ユニット602は、CUのための2つのPUを生成するために幾何学的区分モードを使用する。動き推定ユニット602が、CUのためのPUを生成するために幾何学的区分モードを使用するとき、PUはCUのサンプルブロックの区分に対応し、サンプルブロックの境界は必ずしもサンプルブロックのエッジに直角に交わるとは限らない。
図10の例では、動き推定ユニット602は、幾何学的区分モードを使用して、サンプルブロック1000を第1の区分1002と第2の区分1004とに区分している。区分線1006が第1の区分1002と第2の区分1004とを分離する。説明を簡単にするために、図10は、サンプルブロック1000の垂直中央線1008と水平中央線1010とを示している。2つのパラメータが、サンプルブロック1000を区分するために使用される幾何学的区分モードを定義する。本開示では、これらの2つのパラメータをθ及びρと呼ぶ。θパラメータは、線1014がサンプルブロック1000の中心点から展開する角度1012を示す。ρパラメータは、線1014の長さ1016を示す。従って、θ及びρパラメータは、サンプルブロック1000内の点1018を示す極座標として働く。区分線1006は、区分線1006が線1014に直角に交わるように定義される。図10の例では、区分線1006がサンプルブロック1000のエッジに交わる角度1020は直角でない。このようにして、θ及びρパラメータは区分線1006の位置を定義する。θ及びρパラメータの様々な値を使用することによって、動き推定ユニット602は、サンプルブロック1000を区分する様々な線を定義し得る。
区分線1006及び線1014は、必ずしもサンプルブロック1000中に視覚的に存在するとは限らず、図10では、サンプルブロック1000がどのように幾何学的に区分されるかを示すために図示されている。
図11は、CUの予測ブロック1202の遷移ゾーン1200を示す概念図である。図11の例では、予測ブロック1202は、CUの第1のPUに関連するサンプル1204と、CUの第2のPUに関連するサンプル1206とを含む。区分線1208がサンプル1204をサンプル1206から分離している。遷移ゾーン1200は、サンプル1204とサンプル1206との間の境界において生じる予測ブロック1202の部分である。図11の例では、遷移ゾーン1200中のサンプルはブロックとして示されている。
以下で詳細に説明する図12〜図18及び図20に、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための例示的な演算を示す。これらの例示的な演算の各々において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。幾つかの状況では、CUのコード化効率は、遷移ゾーン中のサンプルを平滑化することによって高められ得る。他の状況では、CUのコード化効率は、遷移ゾーン中のサンプルを平滑化することによって減少させられ得る。従って、遷移ゾーン中のサンプルに対して平滑化演算を適応的に実行することによって、符号化ユニット104は、CUのコード化効率を高め得る。
図12は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための例示的な演算1250を示すフローチャートである。平滑化ユニット608は、図13〜図18及び図20に示す例示的な演算の代替として演算1250を実行し得る。
上記で説明したように、残差生成ユニット310は、残差データを生成するために、CUのサンプルから予測ブロックのサンプルを減算し得る。インター予測ユニット304は、CUのための1つ以上のTUを生成し得る。TUの各々は変換領域を指定する。CUの残差データはTUの間で区分される。説明を簡単にするために、本開示では、TUの変換領域内のCUの残差データの部分がTU内にあるものとして説明することがある。各TUについて、変換モジュール312は、TUの変換係数ブロックを生成するために、TU中のCUの残差データの部分に変換を適用する。
TUの変換領域がPUの予測領域と重複するとき、CUのTUは、CUの2つ以上のPUにわたり得る。CUのTUがCUの2つ以上のPUにわたるとき、PU間の区分線の両側にあるサンプル間に色又は輝度の鋭い不連続性がある可能性が高い。幾つかの例では、変換モジュール312が、鋭い不連続性をもつサンプルを有しないTUに変換を適用するときよりも、変換モジュール312が、鋭い不連続性をもつサンプルを有するTUに変換を適用するときに、変換モジュール312は、より多くの有効(即ち、非0)係数を有する変換係数ブロックを生成する。
遷移ゾーン中のサンプルに平滑化フィルタを適用することにより、異なるPUに関連する予測ブロックの部分間の区分線の両側にあるサンプル間の色又は輝度の不連続性が低減され得る。平滑化フィルタを適用することによって不連続性が低減され得るので、変換モジュール312はより少ない有効係数を有する変換係数ブロックを生成し得る。
しかしながら、TUが完全に1つのPU内で生じる場合、TU中のサンプルに平滑化フィルタを適用することにより、CUの予測ブロックとCUの元のサンプルブロックとの間の差異が増加し得、その結果、残差データがより複雑になり得る。変換モジュール312は、より複雑な残差データのためにより多くの有効係数を有する変換係数ブロックを生成し得る。
平滑化ユニット608が演算1250を開始した後、平滑化ユニット608は、CUのTUがCUの複数のPUにわたるかどうかを決定する(1252)。CUのTUがCUの複数のPUにわたると平滑化ユニット608が決定した場合、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行う。従って、CUのTUがCUの複数のPUにわたると平滑化ユニット608が決定した場合(1252の「YES」)、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルを識別し(1254)、遷移ゾーン中のサンプルに対して平滑化演算を実行する(1256)。そうではなく、TUが複数のPUにわたらないと平滑化ユニット608が決定した場合(1252の「NO」)、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行しない(1258)。
様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別する。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図20に示す例示的な遷移サンプル識別演算、又は図21に示す例示的な遷移サンプル識別演算を使用し得る。
様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルに対して重複ブロック動き補償(OBMC:Overlapped-Block Motion Compensation)平滑化演算を実行し得る。OBMC平滑化演算では、平滑化ユニット608は、遷移ゾーン中のサンプルの各々について2つの予測を生成する。平滑化ユニット608は、PUのうちの1つの動きベクトルによって示される参照フレームのサンプルを識別することによって、所与のサンプルのための第1の予測を生成する。平滑化ユニット608は、PUのうちの他方の1つの動きベクトルによって示される参照フレームのサンプルを識別することによって、所与のサンプルのための第2の予測を生成する。PUのうちの1つが動きベクトルを有しない場合、平滑化ユニット608は、所与のサンプルと同じ空間的位置において参照フレームのサンプルを識別することによって予測を生成し得る。
更に、OBMC平滑化演算では、平滑化ユニット608は、遷移ゾーン中の各サンプル毎に複数の予測を融合(blend)する。様々な例において、平滑化ユニット608は、所与のサンプルの予測を様々な方法で融合する。例えば、平滑化ユニット608は、予測の重み付き平均を計算することによって所与のサンプルの予測を融合し得る。様々な例において、平滑化ユニット608は予測に異なる重みを与え得る。例えば、平滑化ユニット608は、所与のサンプルを含んでいるPUの動きベクトルに基づいて予測に3/4の重みを与え得、他方のPUの動きベクトルに基づいて予測に1/4の重みを与え得る。
他の例では、平滑化ユニット608は、フィルタベースの平滑化演算を実行し得る。平滑化ユニット608がフィルタベースの平滑化演算を実行するとき、平滑化ユニット608は、遷移ゾーン中のサンプルに1つ以上のフィルタを適用し得る。そのようなフィルタベースの平滑化演算では、平滑化ユニット608は、遷移ゾーン中の識別されたサンプルに様々な平滑化フィルタを適用し得る。この例では、平滑化ユニット608は、遷移ゾーン中の各サンプルに以下の3×3平滑化フィルタを適用し得る。
Figure 2014506443
この例では、平滑化ユニット608が所与のサンプルに平滑化フィルタを適用するとき、所与のサンプルの新しい値の1/15が所与のサンプルの上方左側のサンプルに基づき、新しい値の2/15が所与のサンプルの上方のサンプルに基づき、新しい値の1/15が所与のサンプルの上方右側のサンプルに基づき、新しい値の2/15が所与のサンプルの左側のサンプルに基づき、新しい値の3/15が所与のサンプルの現在値に基づき、新しい値の2/15が所与のサンプルの右側のサンプルに基づき、新しい値の1/15が所与のサンプルの下方左側のサンプルに基づき、新しい値の2/15が所与のサンプルの下方のサンプルに基づき、新しい値の1/15が所与のサンプルの下方右側のサンプルに基づく。平滑化ユニット608は、遷移ゾーン中のサンプルに他の平滑化フィルタを適用し得る。例えば、平滑化ユニット608は、異なる重みをもつ平滑化フィルタを適用し得る。別の例では、平滑化ユニット608は、他のサイズ、例えば、5×5、7×7などの平滑化フィルタを適用し得る。
幾つかの例では、演算1250は、ビデオデータをコード化するための方法の一部である。本方法は、ビデオデータのフレームのCUのための予測ブロックを生成することを備える。本方法はまた、CUのTUがCUの複数のPUにわたるかどうかに基づいて、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかをコンピュータ機器が決定することを備える。遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界にある。本方法はまた、コンピュータ機器が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った後、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行することを備える。
幾つかの例では、平滑化ユニット608は、TUが複数のPUにわたるかどうかに基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、TUが複数のPUにわたるかどうかに基づいて、及びCUのPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。
図13は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1300を示すフローチャートである。平滑化ユニット608は、図12、図14〜図18、及び図20に示す例示的な演算を実行することの代替として演算1300を実行し得る。
平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定するために演算1300を実行し得る。演算1300では、平滑化ユニット608は、CUのPUのサイズに基づいて、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかの決定を行う。幾つかの事例では、CUのPUは比較的小さくなり得る。そのような事例では、PU間の遷移ゾーン中のサンプルを平滑化しても、画像品質が改善されないか又はコード化効率があまり高まらないことがある。
平滑化ユニット608が演算1300を開始した後、平滑化ユニット608は、PUのうちの1つのサイズが所与のしきい値を下回るかどうかを決定する(1302)。幾つかの例では、PUのサイズは、PUの予測ツリーによって指定された予測領域のサイズである。様々な例において、平滑化ユニット608は、PUのサイズが様々なしきい値を下回るかどうかを決定し得る。例えば、PUがサイズM×Nを有する場合、平滑化ユニット608は、M又はNのいずれかかが4よりも小さいかどうかを決定し得る。幾つかの例では、所与のしきい値が符号化ユニット104及び復号ユニット106中に事前構成される。他の例では、符号化ユニット104及び復号ユニット106は、所与のしきい値をプログラム的に決定する。
様々な例において、平滑化ユニット608は、PUのうちの1つのサイズが所与のしきい値を下回るかどうかを様々な方法で決定し得る。例えば、符号化ユニット104はルックアップテーブルを記憶し得る。ルックアップテーブルは、異なるPUサイズに対応するエントリを含んでいる。エントリの各々は、対応するPUサイズが所与のしきい値を上回る又は下回るかどうかを示す。
PUのサイズが所与のしきい値を下回らない場合(1302の「NO」)、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行う。例えば、PUがサイズM×Nを有する場合、平滑化ユニット608は、M又はNのいずれかが4以上であるとき、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行い得る。従って、PUのサイズが所与のしきい値を下回らない場合(1302の「NO」)、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し(1304)、次いで、遷移ゾーン中のサンプルに対して平滑化演算を実行する(1306)。そうではなく、PUのうちの1つのサイズが所与のしきい値を下回る場合(1302の「YES」)、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきでないという決定を行う(1308)。様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図19及び図21に示す例示的な演算を使用し得る。更に、様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、図12に関して上記で説明したように、1つ以上のOBMCベース又はフィルタベースの平滑化演算を実行し得る。
他の例では、平滑化ユニット608は、平滑化ユニット608が、PUのサイズがしきい値を下回るかどうかを決定することの代わりに、変換のサイズがしきい値を下回るかどうかを決定する演算1300のバージョンを実行し得る。変換モジュール312は、予測ブロックに基づいて残差データを空間領域から周波数領域に変換するときに変換を使用し得る。従って、平滑化ユニット608は、変換のサイズに基づいて、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定し得る。
幾つかの例では、演算1300は、ビデオデータをコード化するための方法の一部である。本方法は、ビデオデータのフレームのCUのための予測ブロックを生成することを備える。本方法はまた、コンピュータ機器が、CUのPUのサイズに基づいて、又は変換のサイズに基づいて、予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定することを備える。遷移ゾーンは、CUの第1のPUに関連する予測ブロックのサンプルと、CUの第2のPUに関連する予測ブロックのサンプルとの間の境界にある。本方法はまた、コンピュータ機器が遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行った後、予測ブロックの遷移ゾーン中のサンプルを平滑化するために平滑化演算を実行することを備える。
幾つかの例では、平滑化ユニット608は、PU又は変換のサイズに基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、PU又は変換のサイズに基づいて、及びCUのPUの動きベクトルに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。
図14は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1400を示すフローチャートである。平滑化ユニット608は、図12、図13、図15〜図18、及び図20に示す例示的な演算を実行することの代替として演算1400を実行し得る。
動き推定ユニット602がCUのPUに対して動き推定演算を実行するとき、動き推定ユニット602は、PUの各々について動きベクトルを生成し得る。例えば、CUが第1のPUと第2のPUとを有する場合、動き推定ユニット602は、第1の動きベクトルと第2の動きベクトルとを生成し得る。第1の動きベクトルは、第1のPUと第1の参照サンプルとの間の空間的位置の差異を示す。第1の参照サンプルは、参照フレーム内の第1のPUに対応する領域である。第2の動きベクトルは、第2の区分単位と第2の参照サンプルとの間の空間的位置の差異を示す。第2の参照サンプルは、参照フレーム内の第2のPUに対応する領域である。
平滑化ユニット608が演算1400を開始した後、平滑化ユニット608は、CUのPUのための動きベクトルを受け取る(1402)。平滑化ユニット608は、次いで、PUの動きベクトルに関数を適用する(1404)。この関数は結果値を生成する。様々な例において、平滑化ユニット608は動きベクトルに様々な関数を適用し得る。例えば、平滑化ユニット608は、他の動きベクトルから動きベクトルのうちの1つを減算した絶対値を計算する関数を適用し得る。別の例では、平滑化ユニット608は、隣接PUについて決定される動きベクトルと予測動きベクトルとの偏角に基づいて関数を適用し得る。この例では、予測動きベクトルは、隣接予測単位について決定される動きベクトルと、参照フレーム中にコロケートされた予測単位について決定される動きベクトルとのうちの1つ以上から予測され得る。
動きベクトルに関数を適用した後に、平滑化ユニット608は、結果値がしきい値を超えたかどうかを決定する(1406)。様々な例において、平滑化ユニット608は、結果値が様々なしきい値を超えたかどうかを決定し得る。例えば、結果が動きベクトル間の差異の絶対値である場合、平滑化ユニット608は、結果値がしきい値よりも大きいかどうかを決定し得る。この例では、しきい値は1つの整数画素であり得る。幾つかの例では、しきい値は、符号化ユニット104と復号ユニット106の両方において設定される所定のパラメータである。他の例では、符号化ユニット104は、しきい値を指定するシンタックス要素を生成し、そのシンタックス要素を復号ユニット106に与え得る。例えば、符号化ユニット104は、CUに関連するシーケンスパラメータセット中のシンタックス要素としてしきい値を復号ユニット106に与え得る。
関数の結果値が所与のしきい値を超えた場合(1406の「YES」)、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行う。従って、関数の結果値が所与のしきい値を超えた場合(1406の「YES」)、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し(1408)、遷移ゾーン中のサンプルに対して平滑化演算を実行する(1410)。そうではなく、関数の結果値が所与のしきい値を超えない場合(1406の「NO」)、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行しない(1412)。このようにして、平滑化ユニット608は、第1の動きベクトルと第2の動きベクトルとに少なくとも部分的に基づいて、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図19及び図21に示す例示的な演算を使用し得る。更に、様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、図12に関して上記で説明したように、1つ以上のOBMCベース又はフィルタベースの平滑化演算を実行し得る。
幾つかの例では、平滑化ユニット608は、動きベクトルに基づいて、及び他の要素に基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、動きベクトルに基づいて、及びCUのPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、動きベクトル間の差異が所与のしきい値よりも大きく、CU中のPUのサイズがしきい値を超えたとき、平滑化演算を実行すべきであるという決定を行い得る。
図15は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1500を示すフローチャートである。インター予測ユニット304は、図12〜14、図16〜図18、及び図20に示す例示的な演算を実行することの代替として平滑化決定演算1500を実行し得る。図15の例では、平滑化ユニット608は、所与のCUのPUのインター予測方向性に基づいて、所与のCUの残差データの遷移ゾーン中のサンプルに対して平滑化演算を実行すべきかどうかを決定する。PUのインター予測方向性により、PUに関連するCUの予測ブロックの部分が、1つ又は2つの参照フレームからの参照サンプルに基づくかどうかが決定され得る。
符号化ユニット104は、フレームを、イントラフレーム(即ち、「Iフレーム」)、予測フレーム(即ち、「Pフレーム」)、又は双方向予測フレーム化(即ち、「Bフレーム」)として符号化し得る。同様に、符号化ユニット104は、フレームのスライスを、イントラスライス(即ち、「Iスライス」)、予測スライス(即ち、「Pスライス」)、又は双方向スライス(即ち、「Bスライス」)として符号化し得る。符号化ユニット104がフレーム又はスライスをIフレーム又はIスライスとして符号化する場合、フレーム又はスライス内のPUはイントラ予測PUのみであり得る。符号化ユニット104がフレーム又はスライスをPフレーム又はPスライスとして符号化する場合、フレーム又はスライス内のPUは、イントラ予測PU又は単予測PUであり得る。符号化ユニット104がフレーム又はスライスをBフレーム又はBスライスとして符号化する場合、フレーム又はスライス内のPUは、イントラ予測PU、単予測PU、又は双予測PUであり得る。動き補償ユニット604及び/又は動き補償ユニット702は、他のフレーム又はスライスと無関係にイントラ予測PUに関連する予測ブロックの部分を生成し得る。動き補償ユニット604及び/又は動き補償ユニット702は、ビデオデータ中の単一の参照フレームに基づいて単予測PUに関連する予測ブロックの部分を生成し得る。幾つかの事例では、単予測PUのみを有するCUは、単予測(uni-predicted)CU又は単予測(uni-prediction)CUと呼ばれることがある。動き補償ユニット604及び/又は動き補償ユニット702は、2つの参照フレームに基づいて双予測PUに関連する予測ブロックの部分を生成し得る。幾つかの事例では、1つ以上の双予測PUを含むCUは、双予測(bi-predicted)CU又は双予測(bi-prediction)CUと呼ばれることがある。
例えば、所与のPUが単予測PUであるとき、符号化ユニット104は、所与のPUの参照サンプルについて単一の参照フレームを探索する。この単一の参照フレームは、時間的に所与のPUのフレームの前又は後に生じ得る。言い換えれば、単一の参照フレームは、LIST_0又はLIST_1中にあり得る。符号化ユニット104は、次いで、所与のPUの参照サンプルを使用して、所与のPUに関連するCUの予測ブロックの部分を生成し得る。
所与のPUが双予測PU(bi-predicted PU)であるとき、符号化ユニット104は、所与のPUのための2つの参照サンプルを取得するために2つの参照フレームを探索し得る。参照フレームのうちの1つは、時間的に所与のPUのフレームの前に生じ得、参照フレームのうちの1つは、時間的に所与のPUのフレームの後に生じ得る。CUの予測ブロックを生成するために、符号化ユニット104は、所与のPUに対してブレンディング演算を実行し得る。符号化ユニット104が所与のPUに対してブレンディング演算を実行するとき、符号化ユニット104は、所与のPUの2つの参照サンプルに基づいて所与のPUに関連する予測ブロックの部分を生成し得る。例えば、符号化ユニット104は、所与のPUの2つの参照サンプル中のサンプルの重み付き平均に基づいて所与のPUに関連する予測ブロックの部分を生成し得る。
双予測PUを含まないCUの予測ブロック中のサンプルに対してOBMC平滑化演算を実行するよりも、双予測PUを含むCU(即ち、双予測CU)の予測ブロック中のサンプルに対してOBMC平滑化演算を実行するほうが、メモリから比較的より多くのデータが取り出される必要があり得る。従って、CUが双予測PUを含むときに平滑化演算を実行するのを控えることにより、メモリから取り出されるデータの量が減少し、符号化プロセス又は復号プロセスが加速され得る。
図15の例に示すように、平滑化ユニット608は、CUが双予測PUを有するかどうかを決定する(1502)。CUが双予測PUを有しない場合(1502の「NO」)、平滑化ユニット608は、CUの予測ブロックの遷移ゾーンのサンプルに対して平滑化演算を実行すべきであるという決定を行う。従って、CUが双予測PUを有しない場合(1502の「NO」)、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し(1504)、遷移ゾーン中のサンプルに対して平滑化演算を実行する(1506)。他の例では、平滑化ユニット608は、CUが双予測PUを有するとき、遷移ゾーン中のサンプルに対して平滑化演算を実行すべきであるという決定を行い得る。別の例では、CUは2つのPUを有し得、それらのPUのうちの1つは双予測PUである。OBMC平滑化演算を実行するために、平滑化ユニット608は、(前に説明したように、メモリから取り出されるデータの量を増加させ得る)双予測PUの2つの参照サンプルを使用して遷移領域中のサンプルのサブセットを導出する必要があり得る。従って、この例では、平滑化ユニット608は、双予測PUに関連する遷移領域のサンプルのサブセットに対してOBMC平滑化演算を実行すべきでないという決定を行い得る。平滑化ユニット608はまた、他のPUが双予測PUであるかどうかに基づいて、他のPUに関連する遷移領域の他のサンプルに対してOBMC平滑化演算を実行すべきであるという決定を行い得る。
様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図19及び図21に示す例示的な演算を使用し得る。更に、様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、図12に関して上記で説明したように、1つ以上のOBMCベース又はフィルタベースの平滑化演算を実行し得る。
そうではなく、CUが双予測PUを有する場合(1502の「YES」)、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルに対して平滑化演算を実行しない(1508)。従って、CUが双予測PUを有する場合、平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルに平滑化演算を適用しない。このようにして、平滑化ユニット608は、CUのPUのインター予測方向性、及び、従ってCUのインター予測方向性に基づいて、平滑化演算を実行すべきかどうかの決定を行う。
幾つかの例では、平滑化ユニット608は、CUのPUのインター予測方向性に基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、PUのインター予測方向性に基づいて、及びCUのPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、CUが双予測PUを有しなく、CU中のPUのサイズがしきい値を超えたとき、平滑化演算を実行すべきであるという決定を行い得る。
図16は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1600を示すフローチャートである。平滑化ユニット608は、図12〜図15、図17、図18、及び図20の例に示す演算を実行することの代替として演算1600を実行し得る。
インター予測ユニット304が演算1600を実行すると、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルを識別する(1602)。様々な例において、平滑化ユニット608は、遷移ゾーン中のサンプルを様々な方法で識別し得る。例えば、平滑化ユニット608は、遷移ゾーン中のサンプルを識別するために、図19及び図21に示す例示的な演算を使用し得る。
遷移ゾーン中のサンプルを識別した後に、平滑化ユニット608は、CUの異なるPUに関連する遷移ゾーン中のサンプル間の差異の量を決定する(1604)。例えば、平滑化ユニット608は、CUの第1のPUに関連する遷移ゾーン中のサンプルと、CUの第2のPUに関連する遷移ゾーン中のサンプルとの間の差異の量を決定し得る。
平滑化ユニット608は、次いで、区分線の両側にあるサンプル間の差異の量が所与のしきい値を超えるかどうかを決定する(1606)。異なる例では、平滑化ユニット608は、差異の量が様々なしきい値を超えるかどうかを決定する。例えば、平滑化ユニット608は、区分線の両側にある対応するサンプル間の差異の量が2よりも大きいかどうかを決定し得る。幾つかの例では、人間のユーザが所与のしきい値を構成し得る。他の例では、符号化ユニット104及び復号ユニット106は、プログラム的に所与のしきい値を決定する。
区分線の両側にあるサンプル間の差異が所与のしきい値を超えた場合(1606の「YES」)、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行し得る(1608)。例えば、平滑化ユニット608は、区分線の両側にある対応するサンプル間の差異が2以下である場合、遷移ゾーン中のサンプルに対して平滑化演算を実行し得る。様々な例において、平滑化ユニット608はサンプルに対して様々な平滑化演算を実行し得る。例えば、平滑化ユニット608は、図12に関して上記で説明したように、遷移ゾーン中のサンプルに対してOBMCベース又はフィルタベースの平滑化演算を実行し得る。そうではなく、区分線の両側にあるサンプル間の差異が所与のしきい値を超えない場合(1606の「NO」)、平滑化ユニット608は、遷移ゾーン中のサンプルに対して平滑化演算を実行しない(1610)。このようにして、平滑化ユニット608は、CUの1つのPUに関連する遷移ゾーン中のサンプルと、CUの別のPUに関連する遷移ゾーン中のサンプルとの間の差異の量に少なくとも部分的に基づいて、平滑化演算を実行すべきかどうかを決定し得る。
幾つかの例では、平滑化ユニット608は、異なるPUに関連する遷移ゾーン中のサンプル間の差異の量に基づいて、及び他のファクタに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。例えば、平滑化ユニット608は、異なるPUに関連する遷移ゾーン中のサンプル間の差異の量に基づいて、及びCUのPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行い得る。
図17は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1700を示すフローチャートである。平滑化ユニット608は、図12〜16、図18、及び図20に示す例示的な演算を実行することの代替として演算1700を実行し得る。インター予測ユニット304が演算1700を実行するとき、インター予測ユニット304は、遷移ゾーン中のサンプルに対して平滑化演算を選択的に実行し得る。言い換えれば、インター予測ユニット304は、必ずしも遷移ゾーン中のすべてのサンプルを平滑化するとは限らない。
インター予測ユニット304が演算1700を実行すると、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルを識別するための遷移サンプル識別演算を実行する(1702)。様々な例において、平滑化ユニット608は様々な遷移サンプル識別演算を実行し得る。例えば、平滑化ユニット608は、図19に示す例示的な遷移サンプル識別演算、又は図21に示す例示的な遷移サンプル識別演算を実行し得る。
遷移ゾーン中のサンプルを識別した後に、平滑化ユニット608は、遷移ゾーン中に残りのサンプルがあるかどうかを決定する(1704)。遷移ゾーン中に1つ以上の残りのサンプルがある場合(1704の「YES」)、平滑化ユニット608は、遷移ゾーン中の残りのサンプルのうちの1つを選択する(1706)。平滑化ユニット608がそのサンプルを選択した後に、平滑化ユニット608は、そのサンプルを残りのサンプルであると見なさないことがある。
平滑化ユニット608は、次いで、選択されたサンプルが特定の基準を満たすかどうかを決定する(1708)。選択されたサンプルがその基準を満たす場合(1708の「YES」)、平滑化ユニット608は、選択されたサンプルに対して平滑化演算を実行する(1710)。例えば、平滑化ユニット608は、選択されたサンプルに対してOBMCベース又はフィルタベースの平滑化演算を実行し得る。選択されたサンプルが基準を満たさない場合(1708の「NO」)、平滑化ユニット608は、選択されたサンプルに対して平滑化演算を実行しない(1712)。いずれの場合も、平滑化ユニット608は、遷移ゾーン中に残りのサンプルがあるかどうかを再び決定する(1704)。遷移ゾーン中に残りのサンプルがある場合、平滑化ユニット608は、残りのサンプルに関してステップ1706、1708、1710、及び1712を繰り返し得る。
様々な例において、平滑化ユニット608は、選択されたサンプルが様々な基準を満たすかどうかを決定し得る。例えば、平滑化ユニット608は、選択されたサンプルがCUの所与のPU中にある場合、選択されたサンプルが基準を満たすと決定し得る。この例では、平滑化ユニット608は、選択されたサンプルがCUの別のPU中にある場合、選択されたサンプルが基準を満たさないと決定し得る。このようにして、平滑化ユニット608は、他のPU中のサンプルにではなく、所与のPU中のサンプルに対して平滑化演算を実行し得る。例えば、平滑化ユニット608が平滑化演算を実行するとき、平滑化ユニット608は、CUの第1のPUに関連する遷移ゾーン中のサンプルは修正するが、CUの第2のPUに関連する遷移ゾーン中のサンプルは修正しない。
別の例では、平滑化ユニット608はシーケンスパラメータセット(SPS:sequence parameter set)を受け取り得る。この例では、平滑化ユニット608は、SPSがサンプルを指定した場合、サンプルは基準を満たすと決定し得る。この例では、平滑化ユニット608は、SPSがサンプルを指定しない場合、サンプルは基準を満たさないと決定し得る。
図18は、予測ブロックの遷移ゾーン中のサンプルを適応的に平滑化するための別の例示的な演算1800を示すフローチャートである。インター予測ユニット304は、図12〜17及び図20に示す例示的な演算を実行することの代替として演算1800を実行し得る。図18の例では、平滑化ユニット608は、複数の利用可能な平滑化演算の中から平滑化演算を適応的に選定する。幾つかの例では、複数の利用可能な平滑化演算の中から平滑化演算を適応的に選定することにより、コード化効率及び/又は画像品質がより高くなり得る。
平滑化ユニット608が演算1800を開始した後、平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルに対して第1の平滑化演算を実行すべきかどうかを決定する(1802)。平滑化ユニット608が、遷移ゾーン中のサンプルに対して第1の平滑化演算を実行すべきであるという決定を行った場合、(1802の「YES」)、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し(1804)、次いで、遷移ゾーン中のサンプルに対して第1の平滑化演算を実行する(1806)。様々な例において、平滑化ユニット608は、第1の平滑化演算を実行すべきであるという決定を様々な方法で行い得る。例えば、平滑化ユニット608は、第1の平滑化演算を実行すべきかどうかの決定を行うために、図12〜図17に示す例示的な演算を使用し得る。この例では、平滑化ユニット608は、CUのサイズが32×32又は16×16である場合、遷移ゾーン中のサンプルに第1の平滑化演算を適用すべきであるという決定を行い得る。
そうではなく、平滑化ユニット608が、第1の平滑化演算を実行すべきでないという決定を行った場合(1802の「NO」)、平滑化ユニット608は、遷移ゾーン中のサンプルに対して第2の平滑化演算を実行すべきかどうかを決定する(1808)。平滑化ユニット608が、遷移ゾーン中のサンプルに対して第2の平滑化演算を実行すべきであるという決定を行った場合、(1808の「YES」)、平滑化ユニット608は、遷移ゾーン中のサンプルを識別し(1810)、遷移ゾーン中のサンプルに対して第2の平滑化演算を実行する(1812)。様々な例において、平滑化ユニット608は、第2の平滑化演算を実行すべきであるという決定を様々な方法で行い得る。例えば、平滑化ユニット608は、第2の平滑化演算を実行すべきであるという決定を行うために、図12〜図17に示す例示的な演算を使用し得る。この例では、平滑化ユニット608は、CUのサイズが8×8である場合であって、CUのインター予測方向が双予測CUである場合、遷移ゾーン中のサンプルに第2の平滑化演算を適用すべきであるという決定を行い得る。従って、平滑化ユニット608が演算1800を実行するとき、平滑化ユニット608は、上記で説明した演算の組合せに基づいて平滑化演算を実行すべきかどうかを決定し得る。
第1の平滑化演算を実行した後に、第2の平滑化演算を実行した後に、又は第2の平滑化演算を実行すべきでないとう決定を行った後に、平滑化ユニット608は、遷移ゾーン中のサンプルに対して、もしあったら、どの平滑化演算が実行されたかを示すシンタックス要素を出力する(1814)。符号化ユニット104中の動き補償ユニット604は、CUを参照フレームの一部として再構成するときにこのシンタックス要素を使用し得る。更に、復号ユニット106中の動き補償ユニット702は、CUの予測ブロックを再構成するときにこのシンタックス要素を使用し得る。
第1の平滑化演算及び第2の平滑化演算は、同じタイプ又は異なるタイプの平滑化演算であり得る。例えば、第1の平滑化カーネルが第1の平滑化演算を構成し、第2の平滑化カーネルが第2の平滑化演算を構成し得る。この例では、カーネルは、平滑化フィルタによって実行される平滑化のタイプ及び範囲を定義する。この例では、平滑化ユニット608は、変換のサイズと、CUのPUのサイズと、隣接PUについて決定される動きベクトル及び予測動きベクトルの偏角とに基づいて、第1の平滑化演算を実行すべきかどうかの決定を行い得る。この例では、動きベクトルは、隣接予測単位について決定される動きベクトルと、参照フレーム中において同位置の予測単位に対して決定される動きベクトルとのうちの1つ以上から予測され得る。
別の例では、第1の平滑化演算はOBMCベースの平滑化演算であり得、第2の平滑化演算はフィルタベースの平滑化演算であり得る。第1の平滑化演算及び第2の平滑化演算は異なるタイプの平滑化演算であり得るので、第1の平滑化演算及び第2の平滑化演算は、互いに異なる予測ブロックのバージョンを生成し得る。
図19は、例示的な遷移サンプル識別演算2100を示すフローチャートである。平滑化ユニット608は、予測ブロックの遷移ゾーン中のサンプルを識別するための遷移サンプル識別演算2100を実行し得る。平滑化ユニット608が遷移サンプル識別演算2100を開始した後、平滑化ユニット608は隣接領域のサイズを選択する(2102)。言い換えれば、平滑化ユニット608は隣接領域サイズを選択する。様々な例において、平滑化ユニット608は様々な隣接領域サイズを選択し得る。例えば、平滑化ユニット608は、隣接領域サイズとして、3×3、5×5、7×7、又は別のサイズを選択し得る。
様々な例において、平滑化ユニット608は隣接領域サイズを様々な方法で選択する。例えば、符号化ユニット104及び復号ユニット106は、サイズを示す所定の隣接領域サイズシンタックス要素を記憶し得る。この例では、符号化ユニット104及び復号ユニット106は、隣接領域サイズシンタックス要素を読み取り、その隣接領域サイズシンタックス要素を使用して隣接領域サイズを選択する。
別の例では、符号化ユニット104は、サイズを示す隣接領域サイズパラメータを記憶する。幾つかの例では、符号化ユニット104及び/又は復号ユニット106は、人間のユーザから隣接領域サイズパラメータを受け取る。他の例では、隣接領域サイズパラメータはプログラム的に設定される。符号化ユニット104は、隣接領域サイズパラメータを使用して隣接領域サイズを選択する。更に、符号化ユニット104は、隣接領域サイズを復号ユニット106にシグナリングする。例えば、符号化ユニット104は、隣接領域サイズを示すピクチャパラメータセット(PPS:picture parameter set)又はスライスパラメータセット(SPS:slice parameter set)中にシンタックス要素を出力し得る。
別の例では、符号化ユニット104は、平滑化ユニット608が遷移サンプル識別演算2100を実行するより前に、マルチメディアコンテンツのフレーム、現在フレーム、別のCU、CUのグループ、サブCUのグループ、現在フレームのスライス、現在フレームの2つ以上の部分、又はマルチメディアコンテンツの別の一部を含むピクチャのグループのための隣接領域サイズを選択し得る。この例では、符号化ユニット104は、幾つかの基準に基づいて隣接領域サイズを選択し、選択されたネイバーサイズをデコーダに明示的にシグナリングし得る。平滑化ユニット608は、CUに関連するマルチメディアコンテンツの一部のために以前に選択された隣接領域サイズに基づいて隣接領域サイズを選択する。
更に別の例では、平滑化ユニット608は、CUの特性に基づいて隣接領域サイズを選択し得る。様々な例において、平滑化ユニット608は、CUの様々な特性に基づいて隣接領域サイズを選択し得る。例えば、平滑化ユニット608は、CUのサイズに基づいて隣接領域サイズを選択し得る。別の例では、平滑化ユニット608は、CU中のPUの動きベクトルに基づいて隣接領域サイズを選択し得る。この例では、平滑化ユニット608は、動きベクトルの偏角に基づいて隣接領域サイズを選択し得る。更に別の例では、平滑化ユニット608は、CUのPUの予測モード(即ち、スキップモード、ダイレクトモード、フレーム間モード、又はフレーム内モード)に基づいて隣接領域サイズを選択し得る。更に別の例では、平滑化ユニット608は、予測ブロック中のサンプルの差異に基づいて隣接領域サイズを選択し得る。
更に別の例では、平滑化ユニット608は、ビデオデータ中の他のCUを符号化した結果に基づいて隣接領域サイズを選択し得る。例えば、平滑化ユニット608は、より大きい隣接領域サイズを使用して他のCUについて生成される予測ブロックが、より小さい隣接領域サイズを使用して生成される予測ブロックよりも少ないひずみを生じると決定し得、又はその逆も同様である。他の例では、隣接領域サイズは、前の1つの符号化CUの区分モード、前の複数の符号化CUの区分モード、前の符号化CUの動きベクトルに基づいて決定され得る。この決定に基づいて、平滑化ユニット608は、最も低いひずみレベルとともに予測ブロックを生成する傾向がある隣接領域サイズを選択し得る。
隣接領域サイズを選択した後に、平滑化ユニット608は遷移ゾーン中のサンプルを識別する。以下で説明するように、隣接領域が、CUの所与のPUに関連するサンプルを含んでおり、またCUの別のPUに関連する予測ブロックのサンプルを含んでいるとき、遷移ゾーンは、CUの所与のPUに関連するサンプルを含む。隣接領域は、選択された隣接領域サイズを有する。遷移ゾーン中のサンプルを識別するために、平滑化ユニット608は、予測ブロック中に残りのサンプルがあるかどうかを決定する(2104)。予測ブロック中に1つ以上の残りのサンプルがある場合(2104の「YES」)、平滑化ユニット608は残りのサンプルのうちの1つを選択する(2106)。平滑化ユニット608がそのサンプルを選択した後に、平滑化ユニット608は、そのサンプルを予測ブロックの残りのサンプルであると見なさない。平滑化ユニット608は、次いで、選択されたサンプルに関連するPUを識別する(2108)。
次に、平滑化ユニット608は、隣接領域中のサンプルを識別する(2110)。隣接領域は、選択された隣接領域サイズを有し、選択されたサンプルを含んでいる予測ブロックのゾーンである(2110)。幾つかの例では、隣接領域は、選択されたサンプルを中心とする。例えば、隣接領域が3×3方形である場合、選択されたサンプルは、3×3方形の中央サンプルであり得る。別の例では、隣接領域は、選択されたサンプルを中心としない。例えば、隣接領域が3×3方形である場合、選択されたサンプルは、3×3方形の上端、下端、左端、又は右端にあり得る。従って、隣接領域が、選択されたサンプルを中心としない場合、遷移ゾーンは、他のPUよりも1つのPU中に更に展開し得る。
幾つかの例では、インター予測ユニット304は、平滑化ユニット608を使用して遷移サンプル識別演算2100を複数回実行し得る。例えば、平滑化ユニット608は、1回は、選択されたサンプルを中心とする隣接領域とともに、1回は、選択されたゾーンを中心としない隣接領域とともに、遷移サンプル識別演算2100を実行し得る。インター予測ユニット304は、隣接領域が選択されたサンプルを中心とするとき、又は隣接領域が選択されたサンプルを中心としないとき、予測ブロックがより少ないひずみを有するかどうかを評価し得る。インター予測ユニット304は、より少ないひずみを有する予測ブロックを選択し得る。
隣接領域中のサンプルを識別した後に、平滑化ユニット608は、隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるPU中にあるかどうかを決定する(2112)。隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるPU中にある場合(2112の「YES」)、平滑化ユニット608は、選択されたサンプルが遷移ゾーン中にあると識別する(2114)。そうではなく、隣接領域中のサンプルのいずれも、選択されたサンプルとは異なるPU中にない場合(2112の「NO」)、平滑化ユニット608は、選択されたサンプルが遷移ゾーン中にないと識別する(2116)。いずれの場合も、平滑化ユニット608は、予測ブロック中に残りのサンプルがあるかどうかを再び決定する(2104)。
予測ブロック中に残りのサンプルがある場合、平滑化ユニット608は、予測ブロック中の残りのサンプルに関してステップ2106、2108、2110、2112、2114、及び2116を繰り返し得る。予測ブロック中に残りのサンプルがない場合(2104の「NO」)、平滑化ユニット608は遷移サンプル識別演算2100を終了する。
図20は、平滑化ユニット608の別の例示的な演算2200を示すフローチャートである。平滑化ユニット608が演算2200を開始した後、平滑化ユニット608は、CUの予測ブロックの第1の遷移ゾーン中のサンプルを識別する(2202)。様々な例において、平滑化ユニット608は、第1の遷移ゾーン中のサンプルを様々な方法で識別する。例えば、平滑化ユニット608は、予測ブロック中のサンプルをテストし得る。平滑化ユニット608が所与のサンプルをテストするとき、平滑化ユニット608は、隣接領域中のサンプルが、所与のサンプルとは異なる、CUのPUに関連するかどうかを決定し得る。この例では、隣接領域は様々なサイズを有し得る。例えば、隣接領域は3×3方形であり得る。
平滑化ユニット608は、次いで、予測ブロックの第2の遷移ゾーン中のサンプルを識別する(2204)。様々な例において、平滑化ユニット608は、第2の遷移ゾーン中のサンプルを様々な方法で識別する。例えば、平滑化ユニット608は、予測ブロック中のサンプルをテストし得る。この例では、平滑化ユニット608が所与のサンプルをテストするとき、平滑化ユニット608は、隣接領域中のサンプルが、所与のサンプルとは異なる、CUのPUに関連するかどうかを決定する。この例では、平滑化ユニット608は、第2の遷移ゾーン中の予測ブロックのサンプルを識別し得、CUの第1のPUに関連するサンプルを含んでいる隣接領域が、CUの第2のPUに関連するサンプルを含んでいる場合、CUの第1のPUに関連するサンプルは第2の遷移ゾーン中にある。この例では、第2のPUに関連するサンプルを含んでいる隣接領域が、第1のPUに関連するサンプルを含んでいる場合、第2のPUに関連するサンプルは第2の遷移ゾーン中にある。この例では、隣接領域は、所与のサンプルを含む予測ブロックのゾーンである。隣接領域のサイズは、第1の遷移ゾーン中のサンプルを識別するために使用される隣接領域のサイズとは異なり得る。例えば、第1の遷移ゾーン中のサンプルを識別するために使用される隣接領域のサイズは3×3であり得、第2の遷移ゾーン中のサンプルを識別するために使用される隣接領域のサイズは5×5であり得る。
平滑化ユニット608は、次いで、第1の遷移ゾーン中のサンプルに対して第1の平滑化演算を実行する(2206)。平滑化ユニット608は、第2の遷移ゾーン中のサンプルに対して第2の平滑化演算を実行する(2208)。第2の平滑化演算は第1の平滑化演算とは異なり得る。例えば、第1の平滑化演算と第2の平滑化演算は、両方ともOBMCベースの平滑化演算であり得る。但し、この例では、OBMCベースの平滑化演算は、予測サンプルを別様に融合し得る。例えば、OBMCベースの平滑化演算は、異なるPUからの予測に対して異なる重みを使用し得る。例えば、この例では、サンプルが、CUの第1のPUに関連し、また第1の遷移ゾーン中にある場合、平滑化ユニット608は、第1のPUからの予測に対して重み3/4を使用し、CUの第2のPUからの予測に対して1/4の重みを使用し得る。この例では、サンプルが、第1のPUに関連し、また第2の遷移ゾーン中にある場合、平滑化ユニット608は、第1のPUからの予測に対して7/8の重みを使用し、第2のPUからの予測に対して1/8の重みを使用し得る。別の例では、平滑化演算のうちの1つはOBMCベースの平滑化演算であり得、平滑化演算のうちの1つはフィルタベースの平滑化演算であり得る。更に別の例では、第1の平滑化演算と第2の平滑化演算は、両方ともフィルタベースの平滑化演算であり得る。但し、この例では、第1の平滑化演算と第2の平滑化演算とにおいて使用されるフィルタは異なり得る。
このようにして、平滑化ユニット608は、予測ブロックの異なる部分を異なる方法で平滑化し得る。これにより、コード化効率が高まり、及び/又はひずみの量が低くなり得る。
図21は、別の例示的な遷移サンプル識別演算2300を示すフローチャートである。平滑化ユニット608は、CUの予測ブロックの遷移ゾーン中のサンプルを識別するための遷移サンプル識別演算2300を実行し得る。平滑化ユニット608が遷移サンプル識別演算2300を開始した後、平滑化ユニット608は、予測ブロック中に残りのサンプルがあるかどうかを決定する(2302)。予測ブロック中に1つ以上の残りのサンプルがある場合(2304の「YES」)、平滑化ユニット608は残りのサンプルのうちの1つを選択する(2304)。平滑化ユニット608がそのサンプルを選択した後に、平滑化ユニット608は、そのサンプルを予測ブロックの残りのサンプルであると見なさない。平滑化ユニット608は、次いで、選択されたサンプルに関連するCUのPUを識別する(2306)。
次に、平滑化ユニット608は、選択されたサンプルに関連するPUに関連する隣接領域サイズを選択する(2308)。異なるPUは異なる隣接領域サイズに関連し得る。例えば、CUは、第1のPUと、第2のPUとを有し得る。この例では、第1のPUは3×3サンプルの隣接領域サイズに関連し得、第2の領域PUは5×5サンプルの隣接領域サイズに関連し得る。この例では、選択されたサンプルが第1のPUに関連する場合、平滑化ユニット608は、3×3サンプルの隣接領域サイズを選択する。この例では、選択されたサンプルが第2のPUに関連する場合、平滑化ユニット608は、5×5サンプルの隣接領域サイズを選択する。
様々な例において、PUは、隣接領域サイズに様々な方法で関連し得る。例えば、符号化ユニット104及び復号ユニット106は、PUに関連する隣接領域サイズを別々に示すデータを記憶し及び/又は受け取り得る。別の例では、符号化ユニット104及び復号ユニット106は、第1のPUに関連する隣接領域サイズを示すデータを記憶し及び/又は受け取り得る。この例では、符号化ユニット104及び復号ユニット106は、第1のPUに関連する隣接領域サイズから、第2のPUに関連する隣接領域サイズを導出し得る。
平滑化ユニット608は、次いで、隣接領域中のサンプルを識別する(2310)。隣接領域は、選択された隣接領域サイズを有し、選択されたサンプルを含んでいる予測ブロックのゾーンである。上記で説明した例示的な遷移サンプル識別演算2100と同様に、隣接領域は、選択されたサンプルを中心とすることも、又は選択されたサンプルを中心としないこともある。
隣接領域中のサンプルを識別した後に、平滑化ユニット608は、隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるPUに関連するかどうかを決定する(2312)。隣接領域中のサンプルのいずれかが、選択されたサンプルとは異なるPUに関連する場合(2312の「YES」)、平滑化ユニット608は、選択されたサンプルが遷移ゾーン中にあると識別する(2314)。そうではなく、隣接領域中のサンプルのいずれも、選択されたサンプルとは異なるPUに関連しない場合(2312の「NO」)、平滑化ユニット608は、選択されたサンプルが遷移ゾーン中にないと識別する(2316)。いずれの場合も、平滑化ユニット608は、予測ブロック中に残りのサンプルがあるかどうかを再び決定する(2302)。
予測ブロック中に残りのサンプルがある場合、平滑化ユニット608は、予測ブロック中の残りのサンプルに関してステップ2304、2306、2308、2310、2312、2314、及び2316を繰り返し得る。予測ブロック中に残りのサンプルがない場合(2302の「NO」)、平滑化ユニット608は遷移サンプル識別演算2300を終了する。
幾つかの事例では、遷移サンプル識別演算2300は、ビデオデータのフレーム中のCUのための予測ブロックを生成することであって、CUが第1のPUと第2のPUとを有する、生成することを備える方法を実施する。本方法はまた、予測ブロック中の第1のサンプルを選択することと、第1のサンプルが第1のPUに関連すると決定することとを備える。本方法はまた、第1のPUが第1の隣接領域サイズに関連すると決定することによって第1の隣接領域サイズをコンピュータ機器が選択することを備える。本方法はまた、第1の隣接領域サイズを有する隣接領域が、第1のサンプルを含んでおり、また第2のPUに関連するサンプルを含んでいるとき、第1のサンプルが第1の遷移ゾーン内にあると識別することを備える。本方法はまた、予測ブロック中の第2のサンプルを選択することと、第2のサンプルが第2のPUに関連すると決定することと、第2のPUが第2の隣接領域サイズに関連する決定することとを備える。第2の隣接領域サイズは第1の隣接領域サイズとは異なる。本方法はまた、第2の隣接領域サイズを有する隣接領域が、第2のサンプルを含んでおり、また第1のPUに関連するサンプルを含んでいるとき、第2のサンプルが第1の遷移ゾーン内にあると識別することを備える。本方法はまた、第1の遷移ゾーン中のサンプルに対して第1の平滑化演算を実行することを備える。
1つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、若しくはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータあるいは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
1つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、若しくはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、又は(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータあるいは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置、若しくは他の磁気記憶装置機器、フラッシュメモリ、又は命令若しくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
命令は、1つ以上のデジタル信号プロセッサ(DSP)などの1つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実施に好適な他の構造のいずれかを指し得る。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つ以上の回路又は論理要素中に十分に実施され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ以上のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
様々な例について説明した。これら及び他の例は、以下の特許請求の範囲によって定義された本発明の範囲内に入る。
様々な例について説明した。これら及び他の例は、以下の特許請求の範囲によって定義された本発明の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータをコード化するための方法であって、前記ビデオデータのフレームのコード化単位(CU)のためのものであり、前記コード化単位の第1の予測単位(PU)に関連する前記予測ブロックのサンプルと、前記CUの第2のPUに関連する前記予測ブロックのサンプルとの間の境界における遷移ゾーンを含む予測ブロックを生成することと、前記コンピュータ機器が、前記第1のPUのサイズに基づいて、第1の平滑化演算を実行すべきかどうかの決定を行うことと、前記コンピュータ機器が、前記第1の平滑化演算を実行すべきであるという前記決定を行った後に、前記遷移ゾーン内にある前記予測ブロックのサンプルを平滑化するために前記第1の平滑化演算を実行することとを備える、方法。
[2] 前記コンピュータ機器が、前記予測ブロックが生成された後に前記第1の平滑化演算を実行すべきかどうかの前記決定を行う、[1]に記載の方法。
[3] 前記コンピュータ機器が、前記遷移ゾーン中にサンプルに対して第2の平滑化演算を実行すべきかどうかを決定することと、前記遷移ゾーンに対して前記第1の平滑化演算を実行する代わりに前記第2の平滑化演算を実行することを更に備え、前記第1の平滑化演算と前記第2の平滑化演算とが、互いに異なる前記予測ブロックのバージョンを生成する、[1]に記載の方法。
[4] 第1のカーネルが前記第1の平滑化演算を構成し、第2のカーネルが前記第2の平滑化演算を構成する、[3]に記載の方法。
[5] 前記第1の平滑化演算を実行することが、前記第1のPUに関連する前記遷移ゾーン中のサンプルを修正することと、前記第2のPUに関連する前記遷移ゾーン中のサンプルを修正しないこととを備える、[1]に記載の方法。
[6] 前記第1の平滑化演算を実行することが、前記遷移ゾーン中の前記サンプルのサブセットを修正することと、前記サブセット外の前記遷移ゾーンのサンプルを修正しないこととを備える、[1]に記載の方法。
[7] 前記第1のPU又は前記第2のPUのサイズと、隣接PUについて決定される動きベクトル及び予測動きベクトルの偏角の一つ以上に基づいて前記サンプルの前記サブセットを決定することを更に含み、前記予測動きベクトルが、前記隣接予測ユニットについて決定される前記動きベクトル、及び前記参照フレーム中における同位置の予測単位に対して決定される動きベクトルのうちの1つ以上から予測される、[6]に記載の方法。
[8] 前記予測ブロックを生成することが、前記予測ブロックを生成するために、前記第1のPUの動き情報と、前記第2のPUの動き情報とを使用することを備える、[1]に記載の方法。
[9] 前記第1の平滑化演算を実行することが、前記予測ブロックから導出された残差データに変換を適用するより前に、前記遷移ゾーン中の前記予測ブロックの前記サンプルを平滑化するために前記第1の平滑化演算を実行することを備える、[1]に記載の方法。
[10] 前記第1の平滑化演算を実行すべきかどうかの前記決定を行うことが、前記第1のPUの前記サイズと前記CUのPUのインター予測方向性とに基づいて、前記第1の平滑化演算を実行すべきかどうかの前記決定を行うことを備える、[1]に記載の方法。
[11] 前記ビデオデータをコード化することが、前記ビデオデータを符号化することを備え、前記方法が、前記CUの残差データを生成するために前記CUの元のサンプルブロックと前記予測ブロックとを使用することを更に備える、[1]に記載の方法。
[12] 前記ビデオデータをコード化することが、前記ビデオデータを復号することを備え、前記方法が、前記CUのための再構成されたサンプルブロックを生成するために、前記CUの再構成された残差データと前記予測ブロックとを使用することを更に備える、
[1]に記載の方法。
[13] ビデオデータをコード化するコンピュータ機器であって、前記コンピュータ機器は、前記ビデオデータのフレームのコード化単位(CU)のためのものであり、前記CUの第1の予測ユニット(PU)に関連する前記予測ブロックのサンプルと、前記CUの第2のPUに関連する前記予測ブロックのサンプルとの間の境界における遷移ゾーンを含む予測ブロックを生成することと、前記第1のPUのサイズに基づいて、第1の平滑化演算を実行すべきかどうかの決定を行うことと、前記コンピュータ機器が、前記平滑化演算を実行すべきであるという前記決定を行った後に、前記遷移ゾーン中の前記予測ブロックのサンプルを平滑化するために前記第1の平滑化演算を実行することとを行うように構成されたプロセッサを備える、コンピュータ機器。
[14] 前記プロセッサが、前記予測ブロックが生成された後に前記遷移ゾーン中の前記サンプルに対して前記第1の平滑化演算を実行すべきかどうかの前記決定を行うように構成された、[13]に記載のコンピュータ機器。
[15] 前記プロセッサは、前記ビデオデータのシンタックス要素を生成することを行うように構成され、前記シンタックス要素がしきい値を指定する、[13]に記載のコンピュータ機器。
[16] 前記プロセッサは、前記遷移ゾーン中にサンプルに対して第2の平滑化演算を実行すべきかどうかを決定することと、前記遷移ゾーンに対して前記第1の平滑化演算を実行する代わりに前記第2の平滑化演算を実行することを行うように構成され、前記第1の平滑化演算と前記第2の平滑化演算とが、互いに異なる前記予測ブロックのバージョンを生成する、[13]に記載のコンピュータ機器。
[17] 第1のカーネルが前記第1の平滑化演算を構成し、第2のカーネルが前記第2の平滑化演算を構成する、[16]に記載のコンピュータ機器。
[18] 前記プロセッサが、前記第1のPU内にある前記遷移ゾーン中のサンプルを修正することと、前記第2のPU内にある前記遷移ゾーン中のサンプルを修正しないこととを行うように構成された、[13]に記載のコンピュータ機器。
[19] 前記プロセッサが、前記遷移ゾーン中の前記サンプルの前記サブセットを修正することと、前記サブセット外の前記遷移ゾーンのサンプルを修正しないこととを行うように構成された、[13]に記載のコンピュータ機器。
[20] 前記プロセッサは、前記第1のPU又は前記第2のPUのサイズと、隣接PUについて決定される動きベクトル及び予測動きベクトルの偏角との一つ以上に基づいて前記サンプルの前記サブセットを決定するように構成され、前記予測動きベクトルが、前 記隣接予測ユニットについて決定される前記動きベクトル、及び前記参照フレーム中において同位置にある予測単位に対して決定される動きベクトルのうちの1つ以上から予測される、[19]に記載のコンピュータ機器。
[21] 前記コンピュータ機器が、前記予測ブロックを生成するために、前記第1のPUの動き情報と、前記第2のPUの動き情報とを使用する、[13]に記載のコンピュータ機器。
[22] 前記コンピュータ機器が、前記予測ブロックから導出された残差データに変換を適用するより前に、前記遷移ゾーン中の前記予測ブロックの前記サンプルを平滑化するために前記第1の平滑化演算を実行する、[13]に記載のコンピュータ機器。
[23] 前記コンピュータ機器が、前記第1のPUの前記サイズと前記CUのPUのインター予測方向性とに基づいて、前記第1の平滑化演算を実行すべきかどうかの前記決定を行う、[13]に記載のコンピュータ機器。
[24] 前記コンピュータ機器が前記ビデオデータを符号化し、前記プロセッサが、前記CUの残差データを生成するために前記CUの元のサンプルブロックと前記予測ブロックとを使用するように更に構成された、[13]に記載のコンピュータ機器。
[25] 前記コンピュータ機器が前記ビデオデータを復号し、前記プロセッサが、前記CUのための再構成されたサンプルブロックを生成するために、前記CUの再構成された残差データと前記予測ブロックとを使用するように更に構成された、[13]に記載のコンピュータ機器。
[26] ビデオデータをコード化するコンピュータ機器であって、前記コンピュータ機器は、前記ビデオデータのフレームのコード化単位(CU)のためのものであり、前記CUの第1の予測ユニット(PU)に関連する前記予測ブロックのサンプルと、前記CUの第2のPUに関連する前記予測ブロックのサンプルとの間の境界における遷移ゾーンを含む予測ブロックを生成するための手段と、前記第1のPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行うための手段と、前記コンピュータ機器が、前記平滑化演算を実行すべきであるという前記決定を行った後に、前記遷移ゾーン内にある前記予測ブロックのサンプルを平滑化するために前記平滑化演算を実行するための手段とを備える、コンピュータ機器。
[27] ビデオデータをコード化するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、前記ビデオデータのフレームのコード化単位(CU)のためのものであり、前記CUの第1の予測ユニット(PU)に関連する前記予測ブロックのサンプルと、前記CUの第2のPUに関連する前記予測ブロックのサンプルとの間の境界における遷移ゾーンを含む予測ブロックを生成することと、前記第1のPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行うことと、前記コンピュータ機器が、前記平滑化演算を実行すべきであるという前記決定を行った後に、前記遷移ゾーン中の前記予測ブロックのサンプルを平滑化するために前記平滑化演算を実行することと
を1つ以上のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備える、コンピュータプログラム製品。

Claims (27)

  1. ビデオデータをコード化するための方法であって、
    前記ビデオデータのフレームのコード化単位(CU)のためのものであり、前記コード化単位の第1の予測単位(PU)に関連する前記予測ブロックのサンプルと、前記CUの第2のPUに関連する前記予測ブロックのサンプルとの間の境界における遷移ゾーンを含む予測ブロックを生成することと、
    前記コンピュータ機器が、前記第1のPUのサイズに基づいて、第1の平滑化演算を実行すべきかどうかの決定を行うことと、
    前記コンピュータ機器が、前記第1の平滑化演算を実行すべきであるという前記決定を行った後に、前記遷移ゾーン内にある前記予測ブロックのサンプルを平滑化するために前記第1の平滑化演算を実行することと
    を備える、方法。
  2. 前記コンピュータ機器が、前記予測ブロックが生成された後に前記第1の平滑化演算を実行すべきかどうかの前記決定を行う、請求項1に記載の方法。
  3. 前記コンピュータ機器が、前記遷移ゾーン中にサンプルに対して第2の平滑化演算を実行すべきかどうかを決定することと、
    前記遷移ゾーンに対して前記第1の平滑化演算を実行する代わりに前記第2の平滑化演算を実行することを更に備え、前記第1の平滑化演算と前記第2の平滑化演算とが、互いに異なる前記予測ブロックのバージョンを生成する、請求項1に記載の方法。
  4. 第1のカーネルが前記第1の平滑化演算を構成し、第2のカーネルが前記第2の平滑化演算を構成する、請求項3に記載の方法。
  5. 前記第1の平滑化演算を実行することが、前記第1のPUに関連する前記遷移ゾーン中のサンプルを修正することと、前記第2のPUに関連する前記遷移ゾーン中のサンプルを修正しないこととを備える、請求項1に記載の方法。
  6. 前記第1の平滑化演算を実行することが、前記遷移ゾーン中の前記サンプルのサブセットを修正することと、前記サブセット外の前記遷移ゾーンのサンプルを修正しないこととを備える、請求項1に記載の方法。
  7. 前記第1のPU又は前記第2のPUのサイズと、
    隣接PUについて決定される動きベクトル及び予測動きベクトルの偏角の一つ以上に基づいて前記サンプルの前記サブセットを決定することを更に含み、前記予測動きベクトルが、
    前記隣接予測ユニットについて決定される前記動きベクトル、及び
    前記参照フレーム中における同位置の予測単位に対して決定される動きベクトル
    のうちの1つ以上から予測される、請求項6に記載の方法。
  8. 前記予測ブロックを生成することが、前記予測ブロックを生成するために、前記第1のPUの動き情報と、前記第2のPUの動き情報とを使用することを備える、請求項1に記載の方法。
  9. 前記第1の平滑化演算を実行することが、前記予測ブロックから導出された残差データに変換を適用するより前に、前記遷移ゾーン中の前記予測ブロックの前記サンプルを平滑化するために前記第1の平滑化演算を実行することを備える、請求項1に記載の方法。
  10. 前記第1の平滑化演算を実行すべきかどうかの前記決定を行うことが、前記第1のPUの前記サイズと前記CUのPUのインター予測方向性とに基づいて、前記第1の平滑化演算を実行すべきかどうかの前記決定を行うことを備える、請求項1に記載の方法。
  11. 前記ビデオデータをコード化することが、前記ビデオデータを符号化することを備え、
    前記方法が、前記CUの残差データを生成するために前記CUの元のサンプルブロックと前記予測ブロックとを使用することを更に備える、
    請求項1に記載の方法。
  12. 前記ビデオデータをコード化することが、前記ビデオデータを復号することを備え、
    前記方法が、前記CUのための再構成されたサンプルブロックを生成するために、前記CUの再構成された残差データと前記予測ブロックとを使用することを更に備える、
    請求項1に記載の方法。
  13. ビデオデータをコード化するコンピュータ機器であって、前記コンピュータ機器は、
    前記ビデオデータのフレームのコード化単位(CU)のためのものであり、前記CUの第1の予測ユニット(PU)に関連する前記予測ブロックのサンプルと、前記CUの第2のPUに関連する前記予測ブロックのサンプルとの間の境界における遷移ゾーンを含む予測ブロックを生成することと、
    前記第1のPUのサイズに基づいて、第1の平滑化演算を実行すべきかどうかの決定を行うことと、
    前記コンピュータ機器が、前記平滑化演算を実行すべきであるという前記決定を行った後に、前記遷移ゾーン中の前記予測ブロックのサンプルを平滑化するために前記第1の平滑化演算を実行することと
    を行うように構成されたプロセッサを備える、コンピュータ機器。
  14. 前記プロセッサが、前記予測ブロックが生成された後に前記遷移ゾーン中の前記サンプルに対して前記第1の平滑化演算を実行すべきかどうかの前記決定を行うように構成された、請求項13に記載のコンピュータ機器。
  15. 前記プロセッサは、前記ビデオデータのシンタックス要素を生成することを行うように構成され、前記シンタックス要素がしきい値を指定する、請求項13に記載のコンピュータ機器。
  16. 前記プロセッサは、
    前記遷移ゾーン中にサンプルに対して第2の平滑化演算を実行すべきかどうかを決定することと、
    前記遷移ゾーンに対して前記第1の平滑化演算を実行する代わりに前記第2の平滑化演算を実行することを行うように構成され、前記第1の平滑化演算と前記第2の平滑化演算とが、互いに異なる前記予測ブロックのバージョンを生成する、請求項13に記載のコンピュータ機器。
  17. 第1のカーネルが前記第1の平滑化演算を構成し、第2のカーネルが前記第2の平滑化演算を構成する、請求項16に記載のコンピュータ機器。
  18. 前記プロセッサが、前記第1のPU内にある前記遷移ゾーン中のサンプルを修正することと、前記第2のPU内にある前記遷移ゾーン中のサンプルを修正しないこととを行うように構成された、請求項13に記載のコンピュータ機器。
  19. 前記プロセッサが、前記遷移ゾーン中の前記サンプルの前記サブセットを修正することと、前記サブセット外の前記遷移ゾーンのサンプルを修正しないこととを行うように構成された、請求項13に記載のコンピュータ機器。
  20. 前記プロセッサは、
    前記第1のPU又は前記第2のPUのサイズと、
    隣接PUについて決定される動きベクトル及び予測動きベクトルの偏角との一つ以上に基づいて前記サンプルの前記サブセットを決定するように構成され、前記予測動きベクトルが、
    前記隣接予測ユニットについて決定される前記動きベクトル、及び
    前記参照フレーム中において同位置にある予測単位に対して決定される動きベクトル
    のうちの1つ以上から予測される、請求項19に記載のコンピュータ機器。
  21. 前記コンピュータ機器が、前記予測ブロックを生成するために、前記第1のPUの動き情報と、前記第2のPUの動き情報とを使用する、請求項13に記載のコンピュータ機器。
  22. 前記コンピュータ機器が、前記予測ブロックから導出された残差データに変換を適用するより前に、前記遷移ゾーン中の前記予測ブロックの前記サンプルを平滑化するために前記第1の平滑化演算を実行する、請求項13に記載のコンピュータ機器。
  23. 前記コンピュータ機器が、前記第1のPUの前記サイズと前記CUのPUのインター予測方向性とに基づいて、前記第1の平滑化演算を実行すべきかどうかの前記決定を行う、請求項13に記載のコンピュータ機器。
  24. 前記コンピュータ機器が前記ビデオデータを符号化し、
    前記プロセッサが、前記CUの残差データを生成するために前記CUの元のサンプルブロックと前記予測ブロックとを使用するように更に構成された、
    請求項13に記載のコンピュータ機器。
  25. 前記コンピュータ機器が前記ビデオデータを復号し、
    前記プロセッサが、前記CUのための再構成されたサンプルブロックを生成するために、前記CUの再構成された残差データと前記予測ブロックとを使用するように更に構成された、
    請求項13に記載のコンピュータ機器。
  26. ビデオデータをコード化するコンピュータ機器であって、前記コンピュータ機器は、
    前記ビデオデータのフレームのコード化単位(CU)のためのものであり、前記CUの第1の予測ユニット(PU)に関連する前記予測ブロックのサンプルと、前記CUの第2のPUに関連する前記予測ブロックのサンプルとの間の境界における遷移ゾーンを含む予測ブロックを生成するための手段と、
    前記第1のPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行うための手段と、
    前記コンピュータ機器が、前記平滑化演算を実行すべきであるという前記決定を行った後に、前記遷移ゾーン内にある前記予測ブロックのサンプルを平滑化するために前記平滑化演算を実行するための手段と
    を備える、コンピュータ機器。
  27. ビデオデータをコード化するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、
    前記ビデオデータのフレームのコード化単位(CU)のためのものであり、前記CUの第1の予測ユニット(PU)に関連する前記予測ブロックのサンプルと、前記CUの第2のPUに関連する前記予測ブロックのサンプルとの間の境界における遷移ゾーンを含む予測ブロックを生成することと、
    前記第1のPUのサイズに基づいて、平滑化演算を実行すべきかどうかの決定を行うことと、
    前記コンピュータ機器が、前記平滑化演算を実行すべきであるという前記決定を行った後に、前記遷移ゾーン中の前記予測ブロックのサンプルを平滑化するために前記平滑化演算を実行することと
    を1つ以上のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備える、コンピュータプログラム製品。
JP2013549412A 2011-01-10 2011-12-07 平滑化演算を適応的に実行すること Active JP5752809B2 (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201161431408P 2011-01-10 2011-01-10
US61/431,408 2011-01-10
US201161450532P 2011-03-08 2011-03-08
US201161450538P 2011-03-08 2011-03-08
US61/450,532 2011-03-08
US61/450,538 2011-03-08
US201161537450P 2011-09-21 2011-09-21
US61/537,450 2011-09-21
US13/311,812 US9071851B2 (en) 2011-01-10 2011-12-06 Adaptively performing smoothing operations
US13/311,812 2011-12-06
PCT/US2011/063793 WO2012096729A1 (en) 2011-01-10 2011-12-07 Adaptively performing smoothing operations

Publications (2)

Publication Number Publication Date
JP2014506443A true JP2014506443A (ja) 2014-03-13
JP5752809B2 JP5752809B2 (ja) 2015-07-22

Family

ID=46455221

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013549412A Active JP5752809B2 (ja) 2011-01-10 2011-12-07 平滑化演算を適応的に実行すること
JP2013549413A Expired - Fee Related JP5823538B2 (ja) 2011-01-10 2011-12-07 遷移ゾーン中のサンプルの識別

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013549413A Expired - Fee Related JP5823538B2 (ja) 2011-01-10 2011-12-07 遷移ゾーン中のサンプルの識別

Country Status (7)

Country Link
US (3) US9807424B2 (ja)
EP (2) EP2664138A1 (ja)
JP (2) JP5752809B2 (ja)
KR (2) KR101540167B1 (ja)
CN (2) CN103299624B (ja)
ES (1) ES2891175T3 (ja)
WO (2) WO2012096729A1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2452499A1 (en) * 2009-07-06 2012-05-16 Thomson Licensing Methods and apparatus for spatially varying residue coding
US9807424B2 (en) 2011-01-10 2017-10-31 Qualcomm Incorporated Adaptive selection of region size for identification of samples in a transition zone for overlapped block motion compensation
US8724854B2 (en) * 2011-04-08 2014-05-13 Adobe Systems Incorporated Methods and apparatus for robust video stabilization
US9143795B2 (en) 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
US9369723B2 (en) 2011-07-14 2016-06-14 Comcast Cable Communications, Llc Preserving image quality in temporally compressed video streams
US20130083840A1 (en) * 2011-09-30 2013-04-04 Broadcom Corporation Advance encode processing based on raw video data
US9883203B2 (en) * 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
US9544612B2 (en) 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
US9813730B2 (en) * 2013-12-06 2017-11-07 Mediatek Inc. Method and apparatus for fine-grained motion boundary processing
US10230980B2 (en) * 2015-01-26 2019-03-12 Qualcomm Incorporated Overlapped motion compensation for video coding
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US10250904B2 (en) * 2015-05-05 2019-04-02 Avago Technologies International Sales Pte. Limited Apparatus and method for overlapped motion compensation for video coding
EP3340621B1 (en) * 2015-08-20 2023-01-25 Nippon Hoso Kyokai Image decoding device, and programs therefor
US10212444B2 (en) 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
US11223852B2 (en) 2016-03-21 2022-01-11 Qualcomm Incorporated Coding video data using a two-level multi-type-tree framework
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
KR20180021942A (ko) 2016-08-22 2018-03-06 광운대학교 산학협력단 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치
US10863186B2 (en) * 2016-08-26 2020-12-08 Sharp Kabushiki Kaisha Image decoding apparatus and image coding apparatus
US10609423B2 (en) 2016-09-07 2020-03-31 Qualcomm Incorporated Tree-type coding for video coding
KR20190029748A (ko) * 2016-09-22 2019-03-20 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
US10448010B2 (en) 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
US10951912B2 (en) 2016-10-05 2021-03-16 Qualcomm Incorporated Systems and methods for adaptive selection of weights for video coding
US10848788B2 (en) 2017-01-06 2020-11-24 Qualcomm Incorporated Multi-type-tree framework for video coding
US10645408B2 (en) * 2017-09-17 2020-05-05 Google Llc Dual deblocking filter thresholds
US11877001B2 (en) 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
CN111213379B (zh) * 2017-10-16 2023-11-21 数字洞察力有限公司 用于将图像编码/解码的方法、装置和存储比特流的记录介质
US11425418B2 (en) * 2017-11-01 2022-08-23 Vid Scale, Inc. Overlapped block motion compensation
WO2019136657A1 (en) 2018-01-11 2019-07-18 Qualcomm Incorporated Video coding using local illumination compensation
KR102275654B1 (ko) 2018-01-15 2021-07-09 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
KR20200112945A (ko) 2018-01-29 2020-10-05 인터디지털 브이씨 홀딩스 인코포레이티드 재구성된 픽처의 정제를 갖는 인코딩 및 디코딩
US10715810B2 (en) 2018-02-20 2020-07-14 Qualcomm Incorporated Simplified local illumination compensation
CN111886861B (zh) * 2018-02-22 2023-12-22 Lg电子株式会社 根据图像编码系统中的块划分结构的图像解码方法和设备
US11563970B2 (en) 2018-02-26 2023-01-24 Interdigital Vc Holdings, Inc. Method and apparatus for generalized OBMC
CN111989927B (zh) * 2018-04-16 2023-05-09 联发科技股份有限公司 视频编解码系统中具有重叠块运动补偿的视频处理的方法及装置
WO2020017423A1 (en) * 2018-07-17 2020-01-23 Panasonic Intellectual Property Corporation Of America Motion vector prediction for video coding
WO2020088689A1 (en) * 2018-11-02 2020-05-07 Beijing Bytedance Network Technology Co., Ltd. Usage of hmvp candidates in geometry partition prediction mode
WO2020094078A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Position dependent storage of motion information
CN117979023A (zh) 2018-11-06 2024-05-03 北京字节跳动网络技术有限公司 具有几何分割的帧间预测的边信息信令
WO2020103936A1 (en) * 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Pruning method for inter prediction with geometry partition
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
WO2020140862A1 (en) 2018-12-30 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Conditional application of inter prediction with geometric partitioning in video processing
US20200213595A1 (en) * 2018-12-31 2020-07-02 Comcast Cable Communications, Llc Methods, Systems, And Apparatuses For Adaptive Processing Of Non-Rectangular Regions Within Coding Units
US11122297B2 (en) * 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
CN114097228B (zh) 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
CN113906760A (zh) * 2019-06-05 2022-01-07 北京字节跳动网络技术有限公司 用于帧间预测的运动信息推导
CN114175636B (zh) 2019-07-14 2024-01-12 北京字节跳动网络技术有限公司 自适应参数集中的自适应环路滤波的指示
WO2021057996A1 (en) * 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
EP4131958A4 (en) * 2020-04-03 2023-04-26 Guangdong Oppo Mobile Telecommunications Corp., Ltd. INTERFRAME PREDICTION METHOD, ENCODER, DECODER AND STORAGE MEDIUM

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003749A1 (en) * 2001-06-29 2003-01-09 Ntt Docomo, Inc. Image encoder, image decoder, image encoding method, and image decoding method
JP2010507286A (ja) * 2006-10-13 2010-03-04 クゥアルコム・インコーポレイテッド 動き補償予測のための適応フィルタリングを備えたビデオ符号化
WO2010151334A1 (en) * 2009-06-26 2010-12-29 Thomson Licensing Methods and apparatus for video encoding and decoding using adaptive geometric partitioning
WO2011129100A1 (ja) * 2010-04-13 2011-10-20 パナソニック株式会社 画像符号化方法および画像復号化方法
JP2012070277A (ja) * 2010-09-24 2012-04-05 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2013520877A (ja) * 2010-02-18 2013-06-06 クゥアルコム・インコーポレイテッド 幾何学的動き分割の結果生じた重なり合った領域のスムージング

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2853553B2 (ja) 1994-02-22 1999-02-03 日本電気株式会社 動画像符号化方式
US5649032A (en) 1994-11-14 1997-07-15 David Sarnoff Research Center, Inc. System for automatically aligning images to form a mosaic image
US5818969A (en) 1995-05-12 1998-10-06 Intel Corporation Intelligent start for motion estimation search
GB2317525B (en) * 1996-09-20 2000-11-08 Nokia Mobile Phones Ltd A video coding system
FI106071B (fi) 1997-03-13 2000-11-15 Nokia Mobile Phones Ltd Mukautuva suodatin
US6868114B2 (en) 2001-01-18 2005-03-15 The Titan Corporation Interference suppression in a spread spectrum communications system using non-linear frequency domain excision
US6728415B2 (en) * 2001-03-30 2004-04-27 Hewlett-Packard Development Company, L.P. Method and apparatus for image processing using adaptive convolution filters
US6983078B2 (en) 2001-05-01 2006-01-03 Hewlett-Packard Development Company, L.P. System and method for improving image quality in processed images
US7110455B2 (en) * 2001-08-14 2006-09-19 General Instrument Corporation Noise reduction pre-processor for digital video using previously generated motion vectors and adaptive spatial filtering
WO2003021936A2 (en) 2001-09-05 2003-03-13 Emblaze Semi Conductor Ltd Method for reducing blocking artifacts
US8107535B2 (en) 2003-06-10 2012-01-31 Rensselaer Polytechnic Institute (Rpi) Method and apparatus for scalable motion vector coding
US7539248B2 (en) 2004-04-29 2009-05-26 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
CN103826133B (zh) 2004-05-04 2017-11-24 高通股份有限公司 运动补偿帧速率上调方法和设备
CN1981536A (zh) 2004-05-04 2007-06-13 高通股份有限公司 运动补偿帧速率上调方法和设备
US20080309817A1 (en) 2004-05-07 2008-12-18 Micronas Usa, Inc. Combined scaling, filtering, and scan conversion
CN100524346C (zh) * 2004-06-14 2009-08-05 普瑞科德公司 过滤数字图像的方法和系统、数字图像处理器
KR100621584B1 (ko) 2004-07-15 2006-09-13 삼성전자주식회사 스무딩 필터를 이용하는 비디오 디코딩 방법 또는 비디오디코더
EP1797723A1 (en) * 2004-10-05 2007-06-20 Vectormax Corporation A video compression system
KR100679035B1 (ko) 2005-01-04 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
JP4191729B2 (ja) 2005-01-04 2008-12-03 三星電子株式会社 イントラblモードを考慮したデブロックフィルタリング方法、及び該方法を用いる多階層ビデオエンコーダ/デコーダ
KR101455578B1 (ko) 2005-09-26 2014-10-29 미쓰비시덴키 가부시키가이샤 동화상 부호화 장치 및 동화상 복호 장치
US9258519B2 (en) 2005-09-27 2016-02-09 Qualcomm Incorporated Encoder assisted frame rate up conversion using various motion models
GB0600141D0 (en) 2006-01-05 2006-02-15 British Broadcasting Corp Scalable coding of video signals
US7974478B2 (en) * 2006-08-24 2011-07-05 Dell Products L.P. Methods and apparatus for reducing storage size
PL2052548T3 (pl) 2006-12-12 2012-08-31 Fraunhofer Ges Forschung Koder, dekoder oraz sposoby kodowania i dekodowania segmentów danych reprezentujących strumień danych w dziedzinie czasu
US8804829B2 (en) * 2006-12-20 2014-08-12 Microsoft Corporation Offline motion description for video generation
JP2010524396A (ja) 2007-04-12 2010-07-15 トムソン ライセンシング ビデオエンコーダにおける高速な幾何学的なモードの判定方法及び装置
US8488668B2 (en) * 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
US8169216B2 (en) 2007-07-20 2012-05-01 Medical College Of Georgia Research Institute, Inc. System and method for synthesizing crossing ADC distributions via reassembly of multiple k-spaces
JP5524063B2 (ja) 2007-09-28 2014-06-18 ドルビー ラボラトリーズ ライセンシング コーポレイション ビデオ情報処理
JP5526032B2 (ja) * 2007-10-16 2014-06-18 トムソン ライセンシング ジオメトリック分割されたスーパブロックをビデオ符号化およびビデオ復号する方法および装置
WO2009070508A1 (en) 2007-11-30 2009-06-04 Dolby Laboratories Licensing Corp. Temporally smoothing a motion estimate
CN102113326A (zh) 2008-08-04 2011-06-29 杜比实验室特许公司 重叠块差异估计和补偿体系结构
KR101543298B1 (ko) * 2008-10-13 2015-08-10 에스케이 텔레콤주식회사 동영상 부호화/복호화 장치 및 그를 위한 가변 단위의 적응적 중첩 블록 움직임 보상 장치 및 방법
US20100329362A1 (en) 2009-06-30 2010-12-30 Samsung Electronics Co., Ltd. Video encoding and decoding apparatus and method using adaptive in-loop filter
US20120147961A1 (en) 2010-12-09 2012-06-14 Qualcomm Incorporated Use of motion vectors in evaluating geometric partitioning modes
US9807424B2 (en) 2011-01-10 2017-10-31 Qualcomm Incorporated Adaptive selection of region size for identification of samples in a transition zone for overlapped block motion compensation
US8340458B2 (en) * 2011-05-06 2012-12-25 Siemens Medical Solutions Usa, Inc. Systems and methods for processing image pixels in a nuclear medicine imaging system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003749A1 (en) * 2001-06-29 2003-01-09 Ntt Docomo, Inc. Image encoder, image decoder, image encoding method, and image decoding method
JP2010507286A (ja) * 2006-10-13 2010-03-04 クゥアルコム・インコーポレイテッド 動き補償予測のための適応フィルタリングを備えたビデオ符号化
WO2010151334A1 (en) * 2009-06-26 2010-12-29 Thomson Licensing Methods and apparatus for video encoding and decoding using adaptive geometric partitioning
JP2013520877A (ja) * 2010-02-18 2013-06-06 クゥアルコム・インコーポレイテッド 幾何学的動き分割の結果生じた重なり合った領域のスムージング
WO2011129100A1 (ja) * 2010-04-13 2011-10-20 パナソニック株式会社 画像符号化方法および画像復号化方法
JP2012070277A (ja) * 2010-09-24 2012-04-05 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
CSNC201310042519; Chen,P., et al: 'Overlapped block motion compensation in TMuC[online]' JCTVC-C251 , 201010, <URL:http://phenix.it-sudparis.eu/jct/doc_end_use *
JPN6014033587; Chen,P., et al: 'Overlapped block motion compensation in TMuC[online]' JCTVC-C251 , 201010, <URL:http://phenix.it-sudparis.eu/jct/doc_end_use *
JPN6015015344; Oscar Divorra Escoda et al.: 'Geometry-Adaptive Block Partitioning for Video Coding' IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP 2007) Vol.1, 200704, pp.I-657 - I-660, IEEE *
JPN6015015346; Marta Karczewicz et al.: 'Video coding technology proposal by Qualcomm Inc.' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-A121, 201004, pp.1-7, 1st Meeting: Dresden, DE *
JPN6015015347; Peisong Chen et al.: 'Overlapped block motion compensation in TMuC' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-C251_r1, 201010, pp.1-3, 3rd Meeting: Guangzhou, CN *
JPN6015015348; Liwei Guo et al.: 'CE2: Overlapped Block Motion Compensation' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-G749r2, 201111, pp.1-8, 7th Meeting: Geneva *
JPN6015015350; Liwei Guo et al.: 'CE2: Overlapped Block Motion Compensation for Geometry Partition Block' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-D368_r4, 201101, pp.1-5, 4th Meeting: Daegu, KR *
JPN6015015353; Liwei Guo et al.: 'CE2: Overlapped Block Motion Compensation for 2NxN and Nx2N Motion Partitions' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-F299, 201107, pp.1-7, 6th Meeting: Torino *

Also Published As

Publication number Publication date
CN103299624B (zh) 2016-05-25
WO2012096729A1 (en) 2012-07-19
US20120177120A1 (en) 2012-07-12
KR20130119472A (ko) 2013-10-31
CN103299625B (zh) 2017-09-22
KR20130105912A (ko) 2013-09-26
CN103299624A (zh) 2013-09-11
US20120177114A1 (en) 2012-07-12
KR101540168B1 (ko) 2015-07-28
US10257543B2 (en) 2019-04-09
JP5752809B2 (ja) 2015-07-22
US20180103273A1 (en) 2018-04-12
EP2664137B1 (en) 2021-09-08
JP5823538B2 (ja) 2015-11-25
US9071851B2 (en) 2015-06-30
CN103299625A (zh) 2013-09-11
US9807424B2 (en) 2017-10-31
ES2891175T3 (es) 2022-01-26
KR101540167B1 (ko) 2015-08-06
EP2664137A1 (en) 2013-11-20
EP2664138A1 (en) 2013-11-20
JP2014506444A (ja) 2014-03-13
WO2012096730A1 (en) 2012-07-19

Similar Documents

Publication Publication Date Title
JP5752809B2 (ja) 平滑化演算を適応的に実行すること
JP7055745B2 (ja) ビデオコーディングのためのフィルタのための幾何学的変換
JP7341901B2 (ja) ビデオコーディングにおける改善されたイントラ予測
EP3857881A1 (en) Adaptive multiple transform coding
US20120147961A1 (en) Use of motion vectors in evaluating geometric partitioning modes
JP7209829B2 (ja) 単一レベルの変換分割および適応サブブロック変換を行うための方法、装置、およびプログラム
JP6333942B2 (ja) ビデオ情報のスケーラブルコード化のための装置及び方法
KR20210044889A (ko) 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치
US9584808B2 (en) Device and method for scalable coding of video information
JP7343668B2 (ja) Vvcにおける色変換のための方法及び機器
JP7423647B2 (ja) 異なるクロマフォーマットを使用した三角予測ユニットモードでのビデオコーディング
CN116193131B (zh) 一种用于视频编码的方法、电子装置及存储介质
US20120082225A1 (en) Selective indication of transform sizes
KR20230097129A (ko) 교차-컴포넌트 변환 계수 레벨 재구성에서의 오프셋 도출
JP7378485B2 (ja) Qt/bt/ttサイズの改善されたヘッダシンタックス
JP2023522354A (ja) デカップリング変換パーティション分割
CN115552896A (zh) 对矩形切片的大小信息选择性编码的图像编码/解码方法和设备及发送比特流的方法
WO2020214899A1 (en) Supplemental enhancement information message for embedded image
JP2023549182A (ja) 参照フレームの適応的な並べ替えのための方法および装置
JP2023549771A (ja) 適応カーネルオプションを用いた二次変換の方法および装置
CN117693934A (zh) 基于合并色度块的亮度色度预测

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150520

R150 Certificate of patent or registration of utility model

Ref document number: 5752809

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

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