JP6462119B2 - コンピューティングデバイス - Google Patents

コンピューティングデバイス Download PDF

Info

Publication number
JP6462119B2
JP6462119B2 JP2017517045A JP2017517045A JP6462119B2 JP 6462119 B2 JP6462119 B2 JP 6462119B2 JP 2017517045 A JP2017517045 A JP 2017517045A JP 2017517045 A JP2017517045 A JP 2017517045A JP 6462119 B2 JP6462119 B2 JP 6462119B2
Authority
JP
Japan
Prior art keywords
block
hash
encoder
picture
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017517045A
Other languages
English (en)
Other versions
JP2017535148A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017535148A publication Critical patent/JP2017535148A/ja
Application granted granted Critical
Publication of JP6462119B2 publication Critical patent/JP6462119B2/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/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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction

Description

技術者は、圧縮(ソース符号化又はソースエンコーディングとも呼ばれる)を使用して、デジタル映像のビットレートを低減させる。圧縮は、情報をより低いビットレートの形態に変換することによって、映像情報を記憶及び伝送するコストを下げる。圧縮解除(復号とも呼ばれる)は、圧縮された形態から、元の情報のバージョンを再構成する。「コーデック」は、エンコーダ/デコーダシステムである。
この20年の間に、ITU−T H.261、H.262(MPEG−2又はISO/IEC 13818−2)、H.263、及びH.264(MPEG−4 AVC又はISO/IEC 14496−10)規格、MPEG−1(ISO/IEC 11172−2)、及びMPEG−4ビジュアル(ISO/IEC 14496−2)規格、並びにSMPTE 421M(VC−1)規格を含む、さまざまな映像コーデック規格が採用された。より最近には、H.265/HEVC規格(ITU−T H.265又はISO/IEC 23008−2)が承認された。現在、H.265/HEVC規格の(例えば、スケーラブルな映像符号化/復号、サンプルビット深度若しくは彩度サンプリングレートに関してより高い忠実度を有する映像の符号化/復号、スクリーンキャプチャ内容、又はマルチビュー符号化/復号に関する)拡張が開発中である。映像コーデック規格は通常、エンコーディング及びデコーディング(decoding:復号)において特定の特徴が使用されるときのビットストリーム中のパラメータを詳細に記述した、エンコードされた映像ビットストリームの構文に対するオプションを定義する。多くの場合、映像コーデック規格は、準拠した復号結果を達成するためにデコーダが実行すべき復号演算についての詳細も提供する。コーデック規格以外にも、さまざまな独自仕様のコーデックフォーマットが、エンコードされた映像ビットストリームの構文及び対応する復号演算に対する他のオプションを定義している。
一般に、映像圧縮技術は「イントラピクチャ」圧縮及び「インターピクチャ」圧縮を含む。イントラピクチャ圧縮技術は個々のピクチャを圧縮し、インターピクチャ圧縮技術は、先行する1つ若しくは複数のピクチャ及び/又は後続の1つ若しくは複数のピクチャ(しばしば参照ピクチャ又はアンカーピクチャと呼ばれる)を参照してピクチャを圧縮する。
インターピクチャ圧縮技術はしばしば動き推定及び動き補償を使用し、映像シーケンスの時間的冗長性を利用することによって、ビットレートを低減させる。動き推定は、ピクチャ間の動きを推定するプロセスである。一般的な1つの技法では、動き推定を使用するエンコーダが、カレントピクチャ内のサンプル値のカレントブロックを、別のピクチャ、すなわち参照ピクチャの探索エリア内の同じサイズの候補ブロックと照合することを試みる。参照ピクチャは一般に、他のピクチャの復号プロセスでの予測に使用することができるサンプル値を含むピクチャである。
カレントブロックに関して、参照ピクチャの探索エリア内において、エンコーダが、厳密な一致又は「十分に近い」一致を見つけたとき、エンコーダは、カレントブロックと候補ブロックとの間の位置変化を、動きベクトル(「MV」)などの動きデータとしてパラメータ化する。MVは、従来、左又は右の空間変位を示す水平MV成分と、上又は下の空間変位を示す垂直MV成分とを有する2次元値である。動き補償は一般に、動きデータを使用して(複数の)参照ピクチャからピクチャを再構成するプロセスである。
いくつかのエンコーディング技法では、カレントピクチャのブロックが、1つ又は複数の参照ピクチャのブロックと照合される。しかしながら、そのような照合技法は、多数のブロックを記憶又は照合する必要があるときに性能が低下するという欠点を有することがある。他のエンコーディング技法には、動きベクトル精度を(例えば、ピクチャごとに)変更できるものがあるが、動きベクトル精度をいつ変更するかについての判断は難しい作業となり得る。さらに他のエンコーディング技法では、シーン変化検出が実行される。しかしながら、そのような検出技術は、スクリーン内容を含むシーン変化を効率的に又は正確に検出することができないことがある。
概要を述べると、「発明を実施するための形態」は、エンコーディング中にさまざまなタスク及び演算を実行する際にハッシュベースブロックマッチングの結果を使用する、エンコーダ側判断における技術革新を提示する。例えば、それらの技術革新のうちのいくつかは、いくつかの(しかし全てではない)一様なブロックを含むハッシュテーブルを構築する方式に関する。他の技術革新は、ハッシュベースブロックマッチングに基づいて動きベクトル分解能を判定することに関する。例えば、ピクチャのブロックを複数のカテゴリに分類することができ、それぞれのカテゴリに割り当てられたブロックの数を、どの動きベクトル精度を使用するのかを判定する際に使用することができる。他の技術革新は、少なくとも部分的にハッシュベースブロックマッチング情報を使用したシーン変化検出に関する。例えば、シーン変化のさまざまな段階で(例えば、安定したシーン中に、シーン変化の直前に、シーン遷移中に、及び新たなシーンの開始時に)ピクチャを識別することができる。シーン変化情報を、長期参照ピクチャを選択する際に、及び/又はエンコーディング中にピクチャの品質を調整するときに使用することができる。
本発明の上記の目的、特徴及び利点、並びに他の目的、特徴及び利点は、添付図面を参照して説明された下記の「発明を実施するための形態」から、より明白になる。
いくつかの説明された実施例を実施することができる例示的なコンピューティングシステムの図である。 いくつかの説明された実施例を実施することができる例示的なネットワーク環境の図である。 いくつかの説明された実施例を実施することができる例示的なネットワーク環境の図である。 いくつかの説明された実施例を実施することができる例示的なエンコーダシステムの図である。 いくつかの説明された実施例を実施することができる例示的な映像エンコーダを例示する図である。 いくつかの説明された実施例を実施することができる例示的な映像エンコーダを例示する図である。 スクリーンキャプチャ用の入力を提供することができる内容を含むコンピュータデスクトップ環境を例示する図である。 自然映像内容と人工的に作成された映像内容とを含む複合映像を例示する図である。 ハッシュベースブロックマッチングにおける候補ブロックに関するハッシュ値を例示する表である。 ハッシュベースブロックマッチングのための候補ブロックを編成する例示的なデータ構造を例示する表である。 ハッシュベースブロックマッチングのための候補ブロックを編成する例示的なデータ構造を例示する表である。 ハッシュベースブロックマッチングのための候補ブロックを編成する例示的なデータ構造を例示する表である。 反復ハッシュベースブロックマッチングのための候補ブロックを編成する例示的なデータ構造を例示する表である。 反復ハッシュベースブロックマッチングのための候補ブロックを編成する例示的なデータ構造を例示する表である。 反復ハッシュベースブロックマッチングのための候補ブロックを編成する例示的なデータ構造を例示する表である。 候補ブロックのパターンを例示する図である。 候補ブロックのパターンを例示する図である。 候補ブロックのパターンを例示する図である。 ハッシュテーブル構築中に均質選択基準を使用して均質なブロックを選択する技法を例示する流れ図である。 整数サンプル空間変位を有するMV値を用いた動き補償を例示する図である。 分数サンプル空間変位を有するMV値を用いた動き補償を例示する図である。 ブロック分類の結果に応じてMV精度を選択する技法を例示する流れ図である。 MV精度を選択するときに使用されるブロック分類を実行する技法を例示する流れ図である。 映像エンコーディング中にシーン変化を検出する技法を例示する流れ図である。
「発明を実施するための形態」は、ハッシュベースマッチング技法を使用してさまざまなタイプの演算の性能を向上させる、エンコーダ側判断における技術革新を提示する。例えば、それらの技術革新のうちのいくつかは、いくつかの(しかし全てではない)一様なブロックを含む(例えば、選択基準を満たす均質なブロックだけを含む)ハッシュテーブルを構築する方式に関する。他の技術革新は、ハッシュベースブロックマッチングに基づいて動きベクトル分解能を判定することに関する。例えば、ピクチャのブロックを複数のカテゴリに分類することができ、それぞれのカテゴリに割り当てられたブロックの数を、どの動きベクトル精度を使用するのかを判定する際に使用することができる。他の技術革新は、少なくとも部分的にハッシュベースブロックマッチング情報を使用したシーン変化検出に関する。例えば、シーン変化のさまざまな段階で(例えば、安定したシーン中に、シーン変化の直前に、シーン遷移中に、及び新たなシーンの開始時に)ピクチャを識別することができる。シーン変化情報を、長期参照ピクチャを選択する際に、及び/又はエンコーディング中にピクチャの品質を調整するときに使用することができる。
これらの技術革新は特に、スクリーンキャプチャ内容などの人工的に作成された映像内容のエンコーディング中にパラメータを設定する計算的に効率的な方式を提供することができる。
本明細書で説明された演算は映像エンコーダによって実行されると所々に記載されているが、多くの場合、それらの演算は、別のタイプのメディア処理ツール(例えば、画像エンコーダ)によって実行されることができる。
本明細書で説明された技術革新のいくつかは、H.265/HEVC規格に固有の構文要素及び演算を参照して例示される。例えば、H.265/HEVC規格の草案JCTVC−P1005「高効率映像符号化(HEVC)範囲拡張テキスト仕様書:草案6」、JCTVC−P1005_v1、2014年2月が参照される。本明細書で説明された技術革新は、他の規格又は他のフォーマットに対しても実施されることができる。
本明細書で説明される技術革新の多くは、スクリーンキャプチャモジュールからのスクリーンキャプチャ内容などの特定の人工的に作成された映像内容をエンコードするときの判断プロセスを改善することができる。スクリーンキャプチャ内容は通常、繰り返された構造(例えば、グラフィック、テキストキャラクタ)を含む。スクリーンキャプチャ内容は普通、高い彩度サンプリング分解能を有するフォーマット(例えば、YUV4:4:4又はRGB4:4:4)でエンコードされるが、スクリーンキャプチャ内容を、より低い彩度サンプリング分解能を有するフォーマット(例えば、YUV4:2:0)でエンコードすることもできる。スクリーンキャプチャ内容をエンコード/デコード(decode:復号)する一般的なシナリオは、リモートデスクトップ会議、及び自然映像又は他の「混合内容」映像上のグラフィカルオーバーレイのエンコーディング/デコーディング(decoding:復号)を含む。これらの技術革新を自然映像内容に対して使用することもできるが、それらの技術革新が有効でないこともある。
より一般的には、本明細書で説明された実例に対するさまざまな代替例が可能である。例えば、説明された方法動作の順序を変更することによって、又はある種の方法動作の分割、繰り返し若しくは省略などによって、本明細書で説明された方法のうちのいくつかの方法を変更することができる。開示された技術のそれらのさまざまな態様は、組み合わせて、又は別々に使用されることができる。異なる実施例は、説明された技術革新のうちの1つ又は複数の技術革新を使用する。本明細書で説明された技術革新のいくつかは、「背景技術」の項に示された課題のうちの1つ又は複数の課題に対処する。通常、所与の技法/ツールがそのような課題の全てを解決することはない。
I.例示的なコンピューティングシステム
図1は、説明された技術革新のうちのいくつかの技術革新を実施することができる適当なコンピューティングシステム(100)の一般化された実例を例示する。コンピューティングシステム(100)は、説明された技術革新が多種多様な汎用又は専用コンピューティングシステムで実施されることができるので、使用又は機能の範囲に関するあらゆる限定を示唆することを意図されていない。
図1を参照すると、コンピューティングシステム(100)は、1つ又は複数の処理ユニット(110、115)及びメモリ(120、125)を含む。処理ユニット(110、115)は、コンピュータ実行可能命令を実行する。処理ユニットは、汎用中央処理ユニット(「CPU」)、特定用途向け集積回路(「ASIC」)内のプロセッサ、又はあらゆる他のタイプのプロセッサとすることができる。マルチプロセッシングシステムでは、処理パワーを増大させるために、複数の処理ユニットがコンピュータ実行可能命令を実行する。例えば、図1は、中央処理ユニット(110)及びグラフィックス処理ユニット又はコプロセッシングユニット(115)を示している。有形メモリ(120、125)は、処理ユニットによってアクセス可能な揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリなど)又はこれらの2つのメモリのある組み合わせとすることができる。メモリ(120、125)は、ハッシュベースブロックマッチングの結果に基づいてエンコーダが判断する(例えば、ハッシュテーブルを構築し、MV精度を選択し、シーン変化を検出し、シーン変化に基づいて判断する)1つ又は複数の技術革新を実施するソフトウェア(180)を、処理ユニットによって実行するのに適したコンピュータ実行可能命令の形態で記憶している。
コンピューティングシステムは追加の特徴を有することができる。例えば、コンピューティングシステム(100)は、記憶装置(140)、1つ又は複数の入力デバイス(150)、1つ又は複数の出力デバイス(160)、及び1つ又は複数の通信接続(170)を含む。バス、コントローラ又はネットワークなどの相互接続機構(図示せず)が、コンピューティングシステム(100)のこれらの構成要素を相互接続している。通常は、オペレーティングシステムソフトウェア(図示せず)が、コンピューティングシステム(100)内で実行中の他のソフトウェアに動作環境を提供し、コンピューティングシステム(100)の構成要素の活動を調整する。
有形記憶装置(140)は、取外し可能な記憶装置であっても、又は取外しが不可能な記憶装置であってもよい。有形記憶装置(140)は、情報を記憶する目的に使用されることができるとともに、コンピューティングシステム(100)内でアクセスされることできる、磁気ディスク、磁気テープ若しくは磁気カセット、CD−ROM、DVD、又はあらゆる他の媒体を含む。記憶装置(140)は、ハッシュベースブロックマッチングの結果に基づいてエンコーダが判断する1つ又は複数の技術革新を実施するソフトウェア(180)のための命令を記憶している。
入力デバイス(150)は、キーボード、マウス、ペン若しくはトラックボールなどのタッチ入力デバイス、音声入力デバイス、スキャニングデバイス、又はコンピューティングシステム(100)に入力を提供する他のデバイスとすることができる。映像向けには、入力デバイス(150)は、カメラ、ビデオカード、TVチューナカード、スクリーンキャプチャモジュール、又はアナログ形態若しくはデジタル形態の映像入力を受け取る同種のデバイス、或いはコンピューティングシステム(100)への映像入力を読み取るCD−ROM若しくはCD−RWとすることができる。出力デバイス(160)は、ディスプレイ、プリンタ、スピーカ、CDライタ、又はコンピューティングシステム(100)からの出力を提供する他のデバイスとすることができる。
通信接続(170)は、通信媒体を介した別のコンピューティングエンティティへの通信を可能にする。通信媒体は、コンピュータ実行可能命令、音声若しくは映像の入力若しくは出力、又は他のデータなどの情報を、変調されたデータ信号の形で伝達する。変調されたデータ信号は、信号に情報をエンコードするような態様で、その特性のうちの1つ又は複数の特性が設定又は変更された信号である。一例として、通信媒体は、これらに限定されないが、電気キャリア、光学キャリア、RFキャリア又は他のキャリアを使用することができる。
これらの技術革新を、コンピュータ読み取り可能な記憶媒体の一般的な文脈で記述することができる。コンピュータ読み取り可能な記憶媒体は、コンピューティング環境内でアクセスされることができる使用可能な有形媒体である。一例として、コンピューティングシステム(100)の場合は、コンピュータ読み取り可能な媒体は、メモリ(120、125)及び/又は記憶装置(140)を含む。コンピュータ読み取り可能な記憶媒体という用語は信号及び搬送波を含まない。加えて、コンピュータ読み取り可能な記憶媒体という用語は通信接続(例えば、170)を含まない。
これらの技術革新を、コンピューティングシステムにおいて実際の又は仮想のターゲットプロセッサ上で実行されている、プログラムモジュールに含まれているものなどの、コンピュータ実行可能命令の一般的な文脈で記述することができる。一般に、プログラムモジュールは、特定のタスクを実行し又は特定の抽象データ型を実施するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含む。プログラムモジュールの機能は、さまざまな実施例において所望されるように、プログラムモジュール間で組み合わされても又は分割されてもよい。プログラムモジュールのためのコンピュータ実行可能命令は、局所コンピューティングシステム内又は分散コンピューティングシステム内で実行されることができる。
本明細書では、用語「システム」と用語「デバイス」とが同義で使用される。そうではないことを文脈が明らかに示していない限り、どちらの用語も、コンピューティングシステム又はコンピューティングデバイスのタイプの限定を暗示しない。一般に、コンピューティングシステム又はコンピューティングデバイスは、局所型若しくは分散型とすることができ、専用ハードウェア及び/又は汎用ハードウェアと本明細書で説明された機能を実施するソフトウェアとのあらゆる組み合わせを含むことができる。
開示された方法のうちのいずれかの方法を実行するように構成された専用コンピューティングハードウェアを使用して、開示された方法を実施することもできる。例えば、開示された方法のうちのいずれかの方法を実施するように特に設計又は構成された集積回路(例えば、ASIC(例えば、ASICデジタル信号プロセッサ(「DSP」)、グラフィックス処理ユニット(「GPU」)、又はプログラマブルロジックデバイス(「PLD」)など、例えばフィールドプログラマブルゲートアレイ(「FPGA」)など)によって、開示された方法を実施することができる。
提示のため、「発明を実施するための形態」は、「判定する」及び「使用する」のような用語を使用して、コンピューティングシステムにおけるコンピュータ動作を記述する。これらの用語は、コンピュータによって実行される操作に対する高水準の抽象概念であり、人間によって実行される行為と混同されるべきではない。これらの用語に対応する実際のコンピュータ動作は、実施態様によって異なる。
II.例示的なネットワーク環境
図2a及び図2bは、映像エンコーダ(220)及び映像デコーダ(270)を含む例示的なネットワーク環境(201、202)を示す。エンコーダ(220)及びデコーダ(270)は、ネットワーク(250)を介して、適切な通信プロトコルを使用して接続されている。ネットワーク(250)は、インターネット又は別のコンピュータネットワークを含むことができる。
図2aに示されたネットワーク環境(201)では、それぞれのリアルタイム通信(「RTC」)ツール(210)が、両方向通信のために、エンコーダ(220)とデコーダ(270)の両方を含む。所与のエンコーダ(220)は、H.265/HEVC規格、SMPTE 421M規格、ISO−IEC 14496−10規格(H.264又はAVCとしても知られている)、他の規格、又は独自仕様のフォーマットの変形若しくは拡張に準拠した出力を生成することができ、対応するデコーダ(270)は、エンコードされたデータをエンコーダ(220)から受け取る。両方向通信は、テレビ会議、テレビ電話通話、又は他の2パーティ若しくは複数パーティ通信シナリオの一部分とすることができる。図2aのネットワーク環境(201)は2つのリアルタイム通信ツール(210)を含んでいるが、ネットワーク環境(201)は、その代わりに、複数パーティ通信に参加する3つ以上のリアルタイム通信ツール(210)を含むこともできる。
リアルタイム通信ツール(210)は、エンコーダ(220)によるエンコーディングを管理する。図3は、リアルタイム通信ツール(210)に含めることができる例示的なエンコーダシステム(300)を示す。或いは、リアルタイム通信ツール(210)は別のエンコーダシステムを使用する。リアルタイム通信ツール(210)は、デコーダ(270)によるデコーディング(decoding:復号)も管理する。
図2bに示されたネットワーク環境(202)では、エンコーディングツール(212)が、複数の再生ツール(214)に送達する映像をエンコードするエンコーダ(220)を含み、再生ツール(214)が、デコーダ(270)を含む。単方向通信は、映像サーベイランスシステム、Webカメラ監視システム、リモートデスクトップ会議プレゼンテーション、又は映像が、エンコードされ、そして1つの場所から別の1つ若しくは複数の場所に送信される他のシナリオ用に提供されることができる。図2bのネットワーク環境(202)は2つの再生ツール(214)を含んでいるが、ネットワーク環境(202)は、これよりも多いか、又はこれよりも少ない再生ツール(214)を含むことができる。一般に、再生ツール(214)は、エンコーディングツール(212)と通信して、再生ツール(214)が受け取る映像のストリームを判定する。再生ツール(214)は、ストリームを受け取り、受け取ったエンコードされたデータを、適切な期間の間、バッファリングし、復号及び再生を開始する。
図3は、エンコーディングツール(212)に含めることができる例示的なエンコーダシステム(300)を示す。或いは、エンコーディングツール(212)は別のエンコーダシステムを使用する。エンコーディングツール(212)はさらに、1つ又は複数の再生ツール(214)との接続を管理するサーバ側コントローラロジックを含むことができる。再生ツール(214)はさらに、エンコーディングツール(212)との接続を管理するクライアント側コントローラロジックを含むことができる。
III.例示的なエンコーダシステム
図3は、いくつかの説明された実施例を実施することができる例示的なエンコーダシステム(300)のブロック図である。エンコーダシステム(300)は、リアルタイム通信用の低待ち時間エンコーディングモード、トランスコーディングモード、ファイル若しくはストリームから再生用のメディアを生成するより高待ち時間のエンコーディングモードなどの複数のエンコーディングモードのうちの任意のエンコーディングモードで動作することができる汎用エンコーディングツールとすることができるか、又は、エンコーダシステム(300)は、1つのそのようなエンコーディングモードに対して適合された専用エンコーディングツールとすることができる。エンコーダシステム(300)を、特定のタイプの内容(例えば、スクリーンキャプチャ内容)をエンコーディングするように適合させることができる。エンコーダシステム(300)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部分として、又は独立型アプリケーションとして実施されることができる。全体として、エンコーダシステム(300)は、ソース映像フレーム(311)のシーケンスを映像源(310)から受け取り、エンコードされたデータを、チャネル(390)への出力として生成する。チャネルに出力されるエンコードされたデータは、本明細書で説明されたエンコーダ側判断を使用してエンコードされた内容を含むことができる。
映像源(310)は、カメラ、チューナカード、記憶媒体、スクリーンキャプチャモジュール、又は他のデジタル映像源とすることができる。映像源(310)は、映像フレームのシーケンスを、例えば毎秒30フレームのフレームレートで生成する。本明細書で使用されるとき、用語「フレーム」は一般に、符号化又は再構成されたソース画像データを指す。プログレッシブスキャン映像に関して、フレームは、プログレッシブスキャン映像フレームである。インターレース映像に関して、例示的な実施例では、エンコーディングの前に、インターレース映像フレームは、インターレース解除を実行されることができる。或いは、2つの相補的なインターレース映像フィールドは、単一の映像フレームとして一緒にエンコードされるか、又は、別々にエンコードされた2つのフィールドとしてエンコードされる。プログレッシブスキャン映像フレーム又はインターレーススキャン映像フレームを示す以外に、用語「フレーム」又は「ピクチャ」は、対をなしていない単一の映像フィールド、相補的な一対の映像フィールド、所与の時における映像オブジェクトを表す映像オブジェクト平面、又はより大きい画像内の関心領域を示し得る。映像オブジェクト平面又は領域は、1つのシーンの複数のオブジェクト又は領域を含む、より大きい画像の一部分であり得る。
到着したソースフレーム(311)は、複数のフレームバッファ記憶エリア(321、322、...、32n)を含むソースフレーム一時メモリ記憶エリア(320)に記憶される。ソースフレーム記憶エリア(320)内で、フレームバッファ(321、322など)は1つのソースフレームを保持する。ソースフレーム(311)のうちの1つ又は複数のソースフレームがフレームバッファ(321、322など)に記憶された後、フレームセレクタ(330)が、ソースフレーム記憶エリア(320)から個々のソースフレームを選択する。エンコーダ(340)に入力するためにフレームセレクタ(330)によってフレームが選択される順序は、映像源(310)によってフレームが生成された順序とは異なることがある。例えば、いくつかの後のフレームが最初にエンコードされることを可能にするため、したがって時間的後方予測を容易にするために、いくつかのフレームのエンコーディングの順序を遅らせることができる。エンコーダ(340)の前に、エンコーダシステム(300)は、選択されたフレーム(331)の前処理(例えば、フィルタリング)をエンコーディング前に実行するプリプロセッサ(図示せず)を含むことができる。前処理は、1次(例えば、輝度)成分及び2次(例えば、赤方向及び青方向への彩度差)成分への色空間変換、並びにエンコーディングのための再サンプリング処理(例えば、彩度成分の空間分解能を低減させるため)を含むことができる。エンコーディングの前に、映像は通常、YUVなどの色空間に変換されている。YUV色空間では、輝度(Y)成分のサンプル値が輝度値又は強度値を表し、彩度(U、V)成分のサンプル値が色差値を表す。色差値(並びにYUV色空間への変換演算、及びYUV色空間からRGBなどの別の色空間への変換演算)の正確な定義は実施態様に依存する。本明細書で使用されるとき、用語YUVは一般に、輝度(又はルミナンス)成分と1つ又は複数の彩度(又はクロミナンス)成分とを有する任意の色空間を示し、この任意の色空間は、Y’UV、YIQ、Y’IQ及びYDbDr、並びにYCbCr、YCoCgなどの変形形態を含む。彩度サンプル値は、(例えば、YUV4:2:0フォーマット用に)より低い彩度サンプリングレートにサブサンプリングされることができるか、又は、彩度サンプル値は、(例えば、YUV4:4:4フォーマット用に)輝度サンプル値と同じ分解能を有することができる。又は、映像は、別のフォーマット(例えば、RGB4:4:4フォーマット、GBR4:4:4フォーマット若しくはBGR4:4:4フォーマット)でエンコードされることもできる。
エンコーダ(340)は、選択されたフレーム(331)をエンコードして、符号化されたフレーム(341)を生成し、さらに、メモリ管理制御操作(「MMCO」)信号(342)又は参照ピクチャセット(「RPS」)情報を生成する。RPSは、カレントフレーム又は後続のフレームに対する動き補償において参照する目的に使用されることができるフレームのセットである。カレントフレームが、エンコードされた最初のフレームではない場合、エンコーダ(340)は、カレントフレームのエンコーディングプロセスを実行するときに、復号済みフレーム一時メモリ記憶エリア(360)に記憶されていた以前にエンコード/デコード(decode:復号)された1つ又は複数のフレーム(369)を使用することができる。そのような復号され記憶されたフレーム(369)が、カレントソースフレーム(331)の内容のインターフレーム予測のための参照フレームとして使用される。MMCO/RPS情報(342)は、どの再構成されたフレームを参照フレームとして使用することができるのか、したがってどの再構成されたフレームをフレーム記憶エリアに記憶すべきであるのかを、デコーダに示す。どの参照ピクチャをRPS内に保持するのかについての判断を下す例示的な方式は、下記で説明される。
エンコーダ(340)は一般に、タイルへのパーティション分割、イントラ推定及び予測、動き推定及び補償、周波数トランスフォーム、量子化並びにエントロピー符号化などのエンコーディングタスクを実行する複数のエンコーディングモジュールを含む。エンコーダ(340)によって実行される厳密な演算は、圧縮フォーマットによって変わり得る。出力されるエンコードされたデータのフォーマットは、H.265/HEVCフォーマット、ウィンドウズ(登録商標)メディアビデオフォーマット、VC−1フォーマット、MPEG−xフォーマット(例えば、MPEG−1、MPEG−2若しくはMPEG−4)、H.26xフォーマット(例えば、H.261、H.262、H.263、H.264)、又はその他のフォーマットの変形又は拡張とすることができる。
エンコーダ(340)は、フレームを、同じサイズ又は異なるサイズの複数のタイルにパーティション分割することができる。例えば、エンコーダ(340)は、タイル行及びタイル列に沿ってフレームを分割する。タイル行及びタイル列は、フレーム境界とともに、そのフレーム内のタイルの水平境界及び垂直境界を画定する。それぞれのタイルは長方形の領域である。タイルはしばしば、並列処理のためのオプションを提供する目的に使用される。フレームを、1つ又は複数のスライスとして編成することもでき、スライスは、フレーム全体又はフレームの領域とすることができる。スライスは、フレーム内の他のスライスから独立して復号されることができ、これにより誤り耐性を向上させる。スライス又はタイルの内容は、エンコーディング及びデコーディング(decoding:復号)のために、サンプル値のブロック又は他のセットにさらにパーティション分割される。
H.265/HEVC規格に基づく構文に関して、エンコーダは、フレーム(又はスライス若しくはタイル)の内容を符号化ツリー単位に分割する。符号化ツリー単位(「CTU」)は、輝度符号化ツリーブロック(「CTB」)として編成された輝度サンプル値と、2つの彩度CTBとして編成された対応する彩度サンプル値とを含む。CTU(及びそのCTB)のサイズは、エンコーダによって選択され、例えば64×64、32×32又は16×16サンプル値とすることができる。CTUは、1つ又は複数の符号化単位を含む。符号化単位(「CU」)は、輝度符号化ブロック(「CB」)及び2つの対応する彩度CBを有する。例えば、64×64輝度CTBと2つの64×64彩度CTBとを含むCTU(YUV4:4:4フォーマット)を、それぞれが32×32輝度CBと2つの32×32彩度CBとを含む4つのCUに分割することができ、場合によっては、それぞれのCUは、より小さいCUにさらに分割される。又は、別の例として、64×64輝度CTBと2つの32×32彩度CTBとを含むCTU(YUV4:2:0フォーマット)を、それぞれが32×32輝度CBと2つの16×16彩度CBとを含む4つのCUに分割することができ、場合によっては、それぞれのCUは、より小さいCUにさらに分割される。CUの許容される最小サイズ(例えば、8×8、16×16)をビットストリームでシグナリングすることができる。
CUは一般に、インター予測、イントラ予測などの予測モードを有する。CUは、(予測モード詳細、変位値などの)予測情報のシグナリング及び/又は予測処理を目的とした1つ又は複数の予測単位を含む。予測単位(「PU」)は、輝度予測ブロック(「PB」)と2つの彩度PBとを有する。イントラ予測されたCUに関して、CUが最小サイズ(例えば、8×8)を有しない限り、PUはCUと同じサイズを有する。その場合、CUは、より小さい(例えば、最小CUサイズが8×8である場合にはそれぞれ4×4の)4つのPUに分割されることができるか、又は、PUは、CUに対する構文要素によって示される最小CUサイズを有することができる。CUはさらに、残余符号化/復号を目的とした1つ又は複数のトランスフォーム単位を有し、トランスフォーム単位(「TU」)は、トランスフォームブロック(「TB」)と2つの彩度TBとを有する。イントラ予測されたCU内のPUは、(PUとサイズが等しい)単一のTU、又は複数のTUを含むことができる。エンコーダは、映像をどのようにCTU、CU、PU、TUなどにパーティション分割するのかを判断する。
H.265/HEVC実施態様では、スライスは、単一のスライスセグメント(独立したスライスセグメント)を含むことができるか、又は、複数のスライスセグメント(独立スライスセグメント及び1つ若しくは複数の従属スライスセグメント)に区分されることができる。スライスセグメントは、単一のネットワーク抽象化層(「NAL」)単位に含まれる、タイルスキャンにおいて連続して順序付けられた整数個のCTUである。独立スライスセグメントに関して、スライスセグメントヘッダは、独立スライスセグメントに適用される構文要素の値を含む。従属スライスセグメントに関して、トランケートされたスライスセグメントヘッダは、従属スライスセグメントに適用される構文要素のわずかな値を含み、従属スライスセグメントに対する残りの構文要素の値が、復号順序において先行する独立スライスセグメントに対する値から推測される。
本明細書で使用されるとき、用語「ブロック」は、文脈に応じて、マクロブロック、予測単位、残余データ単位、又はCB、PB若しくはTB、或いはいくつかの他のサンプル値のセットを示し得る。
図3に戻ると、エンコーダは、ソースフレーム(331)のイントラ符号化されたブロックを、フレーム(331)内の他の以前に再構成されたサンプル値からの予測に関して表す。イントラブロックコピー(「BC」)予測に関して、イントラピクチャ推定器又は動き推定器は、同じフレーム内の他の以前に再構成されたサンプル値に対するブロックの変位を推定する。イントラフレーム予測参照領域は、ブロックのBC予測値を生成するために使用される、フレーム内のサンプル値の領域である。イントラフレーム予測領域は、ブロックベクトル(「BV」)値を用いて示されることができ、BV値は、ビットストリームにおいて、動きベクトル(「MV」)値として表すことができる。ブロックに対するイントラ空間予測に関して、イントラピクチャ推定器は、近傍の再構成されたサンプル値のブロック内への外挿を推定する。(イントラBC予測のためのBV/MV値又はイントラ空間予測のための予測モード(方向)などの)予測情報は、エントロピー符号化されて、出力されることができる。イントラフレーム予測予測器(又はBV/MV値のための動き補償器)は、予測情報を適用してイントラ予測値を判定する。
エンコーダ(340)は、インターフレーム符号化された、ソースフレーム(331)の予測されるブロックを、1つ又は複数の参照フレーム(369)からの予測に関して表す。動き推定器は、1つ又は複数の参照フレーム(369)に対するブロックの動きを推定する。動き推定器は、MV精度(例えば、整数サンプルMV精度、1/2サンプルMV精度、又は1/4サンプルMV精度)を、例えば本明細書で説明された手法を使用して選択することができ、次いで、選択されたMV精度を、動き推定中に使用することができる。複数の参照フレームが使用されるとき、複数の参照フレームは、異なる時間方向又は同じ時間方向からの参照フレームとすることができる。動き補償された予測参照領域は、カレントフレームのサンプル値のブロックに関する動き補償された予測値を生成するために使用される、参照フレーム内のサンプル値の領域である。動き推定器は、エントロピー符号化されたMV情報などの動き情報を出力する。動き補償器は、参照フレーム(369)にMVを適用して、インターフレーム予測のための動き補償された予測値を判定する。
エンコーダは、(もしあれば)ブロックの予測値(イントラ予測値又はインター予測値)と対応する元の値との間の差を判定することができる。これらの予測残余値は、周波数トランスフォーム、量子化及びエントロピーエンコーディングを使用してさらにエンコードされる。例えば、エンコーダ(340)は、ピクチャ、タイル、スライス及び/又は映像の他の部分に対する量子化パラメータ(「QP」)に関する値を設定し、それに応じてトランスフォーム係数を量子化する。エンコーダ(340)のエントロピー符号化器は、量子化されたトランスフォーム係数値、及びある種の副次的情報(例えば、MV情報、選択されたMV精度、SAOフィルタリングパラメータ、RPS更新情報、QP値、モード判断、他のパラメータ選択)を圧縮する。典型的なエントロピー符号化技法は、指数−ゴロム符号化、ゴロム−ライス符号化、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、可変長ツー可変長(「V2V」)符号化、可変長ツー固定長(「V2F」)符号化、レンペル−ジブ(「LZ」)符号化、辞書符号化、確率区間区分エントロピー符号化(「PIPE」)、及び上記の符号化の組み合わせを含む。エントロピー符号化器は、異なる種類の情報に対して異なる符号化技法を使用することができ、複数の技法を(例えば、ゴロム−ライス符号化を適用し、続いて算術符号化を適用することにより)組み合わせて適用することができ、特定の符号化技法内の複数の符号テーブルの中から選ぶことができる。
復号されたフレームにおけるブロック境界行及び/又はブロック境界列を横切る不連続を平滑化するために、エンコーダ(340)内の動き補償ループには、適応非ブロック化フィルタが含まれている。その代わりに又はそれに加えて、(デリンギングフィルタリング、適応ループフィルタリング(「ALF」)又はSAOフィルタリングなどの)他のフィルタリングが、インループフィルタリング演算として適用されることもできる。
エンコーダ(340)によって生成されたエンコードされたデータは、ビットストリーム構文のさまざまな層のための構文要素を含む。例えばH.265/HEVC規格に基づく構文に関して、ピクチャパラメータセット(「PPS」)は、ピクチャに関連づけられることができる構文要素を含む構文構造である。PPSは、単一のピクチャに対して使用されることができるか、又は、PPSは、シーケンス内の複数のピクチャに対して再使用されることができる。PPSは通常、ピクチャに関するエンコードされたデータとは別にシグナリングされる(例えば、PPS用の1つのNAL単位と、ピクチャに関するエンコードされたデータ用の1つ又は複数の別のNAL単位)。ピクチャに関するエンコードされたデータ内の構文要素は、ピクチャに対してどのPPSを使用するのかを示す。同様に、H.265/HEVC規格に基づく構文に関して、シーケンスパラメータセット(「SPS」)は、ピクチャのシーケンスに関連づけられることができる構文要素を含む構文構造である。ビットストリームは、単一のSPS又は複数のSPSを含むことができる。SPSは通常、シーケンスに関する他のデータとは別にシグナリングされ、他のデータ内の構文要素は、どのSPSを使用するのかを示す。
符号化されたフレーム(341)及びMMCO/RPS情報(342)(又は、エンコーダ(340)ではフレームに対する依存性及び順序付け構造が既に分かっているので、MMCO/RPS情報(342)と等価の情報)は、復号プロセスエミュレータ(350)によって処理される。復号プロセスエミュレータ(350)は、デコーダのいくつかの機能、例えば参照フレームを再構成するための復号タスク、を実施する。MMCO/RPS情報(342)と矛盾しない形で、復号プロセスエミュレータ(350)は、エンコードされる後続のフレームのインターフレーム予測における参照フレームとして使用する目的で、所与の符号化されたフレーム(341)を再構成して記憶する必要があるかどうかを判定する。符号化されたフレーム(341)を記憶する必要がある場合、復号プロセスエミュレータ(350)は、符号化されたフレーム(341)を受け取るデコーダによって実行されるであろう復号プロセスをモデル化し、対応する復号されたフレーム(351)を生成する。その際、復号済みフレーム記憶エリア(360)に記憶されていた復号されたフレーム(369)をエンコーダ(340)が使用したときに、復号プロセスエミュレータ(350)も、記憶エリア(360)からの復号されたフレーム(369)を、復号プロセスの一部分として使用する。
復号済みフレーム一時メモリ記憶エリア(360)は、複数のフレームバッファ記憶エリア(361、362、...、36n)を含む。参照フレームとして使用するためにエンコーダ(340)がもはや必要としていないフレームを含むあらゆるフレームバッファ(361、362など)を識別するために、復号プロセスエミュレータ(350)は、MMCO/RPS情報(342)と矛盾しない形で記憶エリア(360)の内容を管理する。復号プロセスをモデル化した後、復号プロセスエミュレータ(350)は、新たに復号されたフレーム(351)を、このようにして識別されたフレームバッファ(361、362など)に記憶する。
符号化されたフレーム(341)及びMMCO/RPS情報(342)は、一時符号化済みデータエリア(370)にバッファリングされる。符号化済みデータエリア(370)に集められた符号化されたデータは、基本符号化済み映像ビットストリームの構文の一部分として、1つ又は複数のピクチャに関するエンコードされたデータを含む。符号化済みデータエリア(370)に集められた符号化されたデータはさらに、符号化された映像データに関するメディアメタデータを(例えば、1つ又は複数の付加拡張情報(「SEI」)メッセージ又は映像ユーザビリティ情報(「VUI」)メッセージ内の1つ又は複数のパラメータとして)含むことができる。
一時符号化済みデータエリア(370)からの集約データ(371)は、チャネルエンコーダ(380)によって処理される。チャネルエンコーダ(380)は、集約データをパケット化及び/又は多重化して、(例えば、ITU−T H.222.0|ISO/IEC 13818−1などのメディアプログラムストリーム若しくはトランスポートストリームフォーマット、又はIETF RFC 3550などのインターネットリアルタイムトランスポートプロトコルフォーマットに基づく)メディアストリームとして伝送又は記憶することができる。その場合、チャネルエンコーダ(380)は、メディア伝送ストリームの構文の一部分として構文要素を追加することができる。又は、チャネルエンコーダ(380)は、集約データを編成して、(例えば、ISO/IEC 14496−12などのメディアコンテナフォーマットに基づく)ファイルとして記憶することができる。その場合、チャネルエンコーダ(380)は、メディア記憶ファイルの構文の一部分として構文要素を追加することができる。又は、より一般的には、チャネルエンコーダ(380)は、1つ若しくは複数のメディアシステム多重化プロトコル又はトランスポートプロトコルを実施することができ、その場合、チャネルエンコーダ(380)は、プロトコルの構文の一部分として構文要素を追加することができる。チャネルエンコーダ(380)は、チャネル(390)に出力を提供する。チャネル(390)は、出力のための記憶チャネル、通信接続チャネル又は他のチャネルを表す。チャネルエンコーダ(380)又はチャネル(390)はさらに、他の要素(図示せず)、例えば前方誤り訂正(「FEC」)エンコーディング用及びアナログ信号変調用の他の要素(図示せず)を含むことができる。
IV.例示的な映像エンコーダ
図4a及び図4bは、いくつかの説明された実施例を実施することができる一般化された映像エンコーダ(400)のブロック図である。エンコーダ(400)は、カレントピクチャを含む映像ピクチャのシーケンスを入力映像信号(405)として受け取り、符号化された映像ビットストリーム(495)の形のエンコードされたデータを出力として生成する。
エンコーダ(400)はブロックベースであり、実施態様に応じたブロックフォーマットを使用する。ブロックは、さまざまな段階で、例えば予測段階、周波数トランスフォーム段階及び/又はエントロピーエンコーディング段階でさらに再区分されることができる。例えば、ピクチャは、64×64個のブロック、32×32個のブロック又は16×16個のブロックに区分されることができ、それらのブロックは、符号化及び復号のために、サンプル値のより小さいブロックに区分されることができる。H.265/HEVC規格用のエンコーディングの実施態様では、エンコーダは、ピクチャをCTU(CTB)、CU(CB)、PU(PB)及びTU(TB)にパーティション分割する。
エンコーダ(400)は、イントラピクチャ符号化及び/又はインターピクチャ符号化を使用してピクチャを圧縮する。エンコーダ(400)の構成要素の多くが、イントラピクチャ符号化とインターピクチャ符号化の両方に対して使用される。それらの構成要素によって実行される厳密な演算は、圧縮されている情報のタイプによって変わり得る。
任意選択で、タイリングモジュール(410)は、ピクチャを、同じサイズ又は異なるサイズの複数のタイルにパーティション分割する。例えば、タイリングモジュール(410)は、タイル行及びタイル列に沿ってピクチャを分割する。タイル行及びタイル列は、ピクチャ境界とともに、ピクチャ内のタイルの水平境界及び垂直境界を画定する。それぞれのタイルは長方形の領域である。H.265/HEVC実施態様では、エンコーダ(400)は、ピクチャを、1つ又は複数のスライスにパーティション分割する。それぞれのスライスは、1つ又は複数のスライスセグメントを含む。
総合エンコーディング制御(420)は、入力映像信号(405)についてのピクチャを受け取るとともに、エンコーダ(400)のさまざまなモジュールからフィードバック(図示せず)を受け取る。全体として、総合エンコーディング制御(420)は、制御信号(図示せず)を、他のモジュール(タイリングモジュール(410)、トランスフォーマ/スケーラ/量子化器(430)、スケーラ/逆トランスフォーマ(435)、イントラピクチャ推定器(440)、動き推定器(450)、フィルタリング制御(460)、及びイントラ/インタースイッチなど)に提供して、エンコーディング中に符号化パラメータを設定及び変更する。例えば、総合エンコーディング制御(420)は、エンコーディング中に、ハッシュテーブル作成についての判断、MV精度についての判断、及び、どの参照ピクチャをRPS内に保持するのかについての判断を管理することができる。総合エンコーディング制御(420)はさらに、エンコーディング中に中間結果を評価すること、例えばレート歪み解析を実行することができる。対応するデコーダが一貫した判断を下すことができるように、総合エンコーディング制御(420)は、エンコーディング中に実行された判断を示す総合制御データ(422)を生成する。総合制御データ(422)は、ヘッダフォーマッタ/エントロピー符号化器(490)に提供される。
カレントピクチャがインターピクチャ予測を使用して予測される場合には、動き推定器(450)は、入力映像信号(405)のカレントピクチャのサンプル値のブロックの、1つ又は複数の参照ピクチャに対する動きを推定する。復号済みピクチャバッファ(「DPB」)(470)は、1つ又は複数の再構成された、以前に符号化されたピクチャを、参照ピクチャとして使用するためにバッファリングする。複数の参照ピクチャが使用されるとき、複数の参照ピクチャは、異なる時間方向からの参照ピクチャとすることも、又は同じ時間方向からの参照ピクチャとすることもできる。
動き推定器(450)は、総合エンコーディング制御(420)及びブロックハッシュ辞書(451)ととともに機能して、MV精度(例えば、整数サンプルMV精度、1/2サンプルMV精度、又は1/4サンプルMV精度)を、本明細書で説明された手法を使用して選択することができ、次いで、選択されたMV精度を、動き推定中に使用することができる。動き推定中のハッシュベースブロックマッチングのため、動き推定器(450)は、ブロックハッシュ辞書(451)を使用して、カレントブロックに関するMV値を見つけることができる。ブロックハッシュ辞書(451)は、ハッシュベースブロックマッチングのための候補ブロックを編成するデータ構造である。ブロックハッシュ辞書(451)はハッシュテーブルの例である。図4bでは、ブロックハッシュ辞書(451)は、入力サンプル値に基づいて構築されている。或いは、ブロックハッシュ辞書は、再構成されたサンプル値に基づいて構築されることができ、新たな候補ブロックがハッシュベースブロックマッチングで使用するために使用可能になると、新たな候補ブロックに関する情報を記憶するためにエンコーディング中に更新されることができる。
動き推定器(450)は、副次的情報として、MVデータ、マージモードインデックス値及び参照ピクチャ選択データなどの動きデータ(452)、並びに選択されたMV精度を生成する。これらのデータは、ヘッダフォーマッタ/エントロピー符号化器(490)及び動き補償器(455)に提供される。
動き補償器(455)は、DPB(470)からの再構成された参照ピクチャにMVを適用する。動き補償器(455)は、カレントピクチャに関する動き補償された予測を生成する。
エンコーダ(400)内の別の経路では、イントラピクチャ推定器(440)が、入力映像信号(405)のカレントピクチャのサンプル値のブロックに対するイントラピクチャ予測をどのように実行するのかを判定する。カレントピクチャは、イントラピクチャ符号化を使用して、完全に又は部分的に符号化されることができる。カレントピクチャの再構成(438)の値をイントラ空間予測に対して使用して、イントラピクチャ推定器(440)は、カレントピクチャのカレントブロックのサンプル値を、カレントピクチャの、近傍の以前に再構成されたサンプル値から、どのように空間的に予測するのかを判定する。イントラピクチャ推定器(440)は、カレントブロックに対して使用する空間的予測の方向を判定することができる。
又は、BV/MV値を使用したイントラBC予測のため、イントラピクチャ推定器(440)若しくは動き推定器(450)は、参照ピクチャとしてのカレントピクチャ内の異なる候補参照領域に対する、カレントブロックのサンプル値の変位を推定する。ハッシュベースブロックマッチングのため、イントラピクチャ推定器(440)又は動き推定器(450)は、ブロックハッシュ辞書(図示せず)を使用して、カレントブロックに関するBV/MV値を見つけることができる。又は、イントラピクチャ辞書符号化モードのため、辞書若しくは他の場所に記憶された以前のサンプル値を使用して、ブロックの画素がエンコードされる。画素は、同一位置サンプル値のセット(例えば、RGBトリプレット若しくはYUVトリプレット)である。
イントラピクチャ推定器(440)は、副次的情報として、モード情報、(イントラ空間予測に関する)予測モード方向、(辞書モードに関する)オフセット及び長さなどのイントラ予測データ(442)を生成する。イントラ予測データ(442)は、ヘッダフォーマッタ/エントロピー符号化器(490)及びイントラピクチャ予測器(445)に提供される。
イントラ予測データ(442)に従って、イントラピクチャ予測器(445)は、カレントピクチャのカレントブロックのサンプル値を、カレントピクチャの、近傍の以前に再構成されたサンプル値から、空間的に予測する。又は、イントラBC予測に関して、イントラピクチャ予測器(445)若しくは動き補償器(455)は、カレントブロックに関するBV/MV値によって示される、イントラピクチャ予測参照領域の以前に再構成されたサンプル値を使用して、カレントブロックのサンプル値を予測する。又は、イントラピクチャ辞書モードに関して、イントラピクチャ予測器(445)は、オフセット及び長さを使用して画素を再構成する。
イントラ/インタースイッチは、所与のブロックに対する予測(458)を、動き補償された予測とするのか又はイントラピクチャ予測とするのかを選択する。
(もしあれば)予測(458)のブロックと入力映像信号(405)の元のカレントピクチャの対応する部分との間の差は、非スキップモードブロックに関する残余(418)の値を提供する。カレントピクチャの再構成中に、非スキップモードブロックについて、再構成された残余値が予測(458)と結合されて、映像信号(405)からの元の内容のおおよその又は厳密な再構成(438)を生成する。(損失性の圧縮では、映像信号(405)から一部の情報が失われる。)
トランスフォーマ/スケーラ/量子化器(430)では、周波数トランスフォーマが、空間ドメイン映像情報を、周波数ドメイン(すなわちスペクトル、トランスフォーム)データに変換する。ブロックベース映像符号化のために、周波数トランスフォーマは、離散的コサイントランスフォーム(「DCT」)、その整数近似値、又は他のタイプのフォワードブロックトランスフォーム(例えば、離散的サイントランスフォーム、又はその整数近似値)を、予測残余データ(又は予測(458)がヌルの場合にはサンプル値データ)のブロックに適用し、周波数トランスフォーム係数のブロックを生成する。トランスフォーマ/スケーラ/量子化器(430)は、可変ブロックサイズを用いたトランスフォームを適用することができる。場合によっては、エンコーダ(400)は、トランスフォームステップをスキップすることもできる。
スケーラ/量子化器は、トランスフォーム係数をスケーリング及び量子化する。例えば、量子化器は、ピクチャごと、タイルごと、スライスごと、若しくはブロックごとに異なるか、又は周波数などによって異なる量子化ステップサイズを有する不感帯スカラ量子化を、周波数ドメインデータに適用する。量子化されたトランスフォーム係数データ(432)は、ヘッダフォーマッタ/エントロピー符号化器(490)に提供される。
スケーラ/逆トランスフォーマ(435)では、スケーラ/逆量子化器が、量子化されたトランスフォーム係数に対して逆スケーリング及び逆量子化を実行する。トランスフォーム段階がスキップされなかったときには、逆周波数トランスフォーマが逆周波数トランスフォームを実行し、再構成された予測残余値又はサンプル値のブロックを生成する。非スキップモードブロックに対して、エンコーダ(400)は、再構成された残余値を予測(458)の値(例えば、動き補償された予測値、イントラピクチャ予測値)と結合して、再構成(438)を形成する。スキップモードブロック又は辞書モードブロックに対して、エンコーダ(400)は、予測(458)の値を再構成(438)として使用する。
空間イントラピクチャ予測のために、再構成(438)の値は、イントラピクチャ推定器(440)及びイントラピクチャ予測器(445)にフィードバックされることができる。イントラBC予測のために、再構成(438)の値は、同様にフィードバックされて、再構成されたサンプル値を提供することができる。さらに、再構成(438)の値は、後続のピクチャの動き補償された予測に対して使用されることもできる。
再構成(438)の値は、さらにフィルタリングされることができる。フィルタリング制御(460)は、映像信号(405)の所与のピクチャに関して、再構成(438)の値に対する非ブロック化フィルタリングをどのように実行するのかを判定する。フィルタリング制御(460)は、フィルタ制御データ(462)を生成する。フィルタ制御データ(462)は、ヘッダフォーマッタ/エントロピー符号化器(490)及びマージャ/フィルタ(465)に提供される。
マージャ/フィルタ(465)では、エンコーダ(400)が、異なるタイルからの内容を、ピクチャの再構成されたバージョンにマージする。エンコーダ(400)は、フィルタ制御データ(462)に従って、非ブロック化フィルタリングを選択的に実行する。その代わりに又はそれに加えて、(デリンギングフィルタリング又はALFなどの)他のフィルタリングを適用することもできる。エンコーダ(400)の設定に応じて、タイル境界をフィルタリングするのか、又は全くフィルタリングしないのかを選択することができ、エンコーダ(400)は、このようなフィルタリングが適用されたのか、又は適用されなかったのかを示す構文を、符号化されたビットストリーム中に提供することができる。
DPB(470)は、再構成されたカレントピクチャを、後続の動き補償された予測で使用するためにバッファリングする。特に、RPS内の参照ピクチャは、DPB(470)内にバッファリングされることができる。しかしながら、DPB(470)は、限られたメモリ空間を有する。再構成されたカレントピクチャが参照ピクチャとして使用するためにDPB(470)内に保持される場合には、別のピクチャがDPB(470)から除去されること(及びRPSから削除されること)がある。総合エンコーディング制御(420)は、どのピクチャをRPS内に保持し、DPB(470)内にバッファリングするのかを判断する。下記で説明するように、総合エンコーディング制御(420)は、ブロックハッシュ辞書(451)を使用して、どの参照ピクチャをRPS内に保持するのかについての判断を下すことができる。
ヘッダフォーマッタ/エントロピー符号化器(490)は、総合制御データ(422)、量子化されたトランスフォーム係数データ(432)、イントラ予測データ(442)、動きデータ(452)、及びフィルタ制御データ(462)をフォーマットし、且つ/又はエントロピー符号化する。動きデータ(452)に関して、ヘッダフォーマッタ/エントロピー符号化器(490)は、マージモードインデックス値を選択し、エントロピー符号化することができるか、又は、デフォルトのMV予測器が、使用されることができる。場合によっては、ヘッダフォーマッタ/エントロピー符号化器(490)はさらに、(MV予測器に対する)MV値に関するMV差分を判定し、次いで、MV差分を、例えばコンテキスト適応バイナリ算術符号化を使用してエントロピー符号化する。
ヘッダフォーマッタ/エントロピー符号化器(490)は、エンコードされたデータを、符号化された映像ビットストリーム(495)の中に提供する。符号化された映像ビットストリーム(495)のフォーマットは、H.265/HEVCフォーマット、ウィンドウズ(登録商標)メディアビデオフォーマット、VC−1フォーマット、MPEG−xフォーマット(例えば、MPEG−1、MPEG−2若しくはMPEG−4)、H.26xフォーマット(例えば、H.261、H.262、H.263、H.264)、又はその他のフォーマットの変形又は拡張とすることができる。
所望の実施態様及び圧縮のタイプに応じて、エンコーダ(400)のモジュールを追加し、省略し、複数のモジュールに分割し、他のモジュールと結合し、且つ/又は似たモジュールで置き換えることができる。代替実施例では、異なるモジュール及び/又は別の構成のモジュールを含むエンコーダが、説明された技法のうちの1つ又は複数の技法を実行する。エンコーダの特定の実施例は通常、エンコーダ(400)の変形形態又は補足されたバージョンを使用する。エンコーダ(400)内のモジュール間に示された関係は、エンコーダ内の情報の大まかな流れを示し、単純にするため他の関係は示されていない。
V.映像のタイプ
ハッシュテーブルを作成し、MV精度を選択し、シーン変化を判定する本明細書で説明された手法は、任意のタイプの映像をエンコードするときに適用されることができる。しかしながら、これらの手法は特に、スクリーンキャプチャ内容などの人工的に作成されたある種の映像内容をエンコードするときの性能を向上させることができる。
一般に、スクリーンキャプチャ内容は、コンピュータスクリーン又は他のディスプレイの出力を表す。図5は、スクリーンキャプチャ用の入力を提供することができる内容を含むコンピュータデスクトップ環境(510)を示す。例えば、スクリーンキャプチャ内容の映像は、コンピュータデスクトップ(511)全体の一連の画像を表し得る。又は、スクリーンキャプチャ内容の映像は、ゲーム内容を含むアプリケーションウィンドウ(513)、Webページ内容を含むブラウザウィンドウ(512)、若しくはワードプロセッサ内容を含むウィンドウ(514)など、コンピュータデスクトップ環境のウィンドウのうちの1つのウィンドウの一連の画像を表し得る。
コンピュータによって生成された人工的に作成された映像内容として、スクリーンキャプチャ内容は、ビデオカメラを使用してキャプチャされた自然映像内容に比べて相対的に少ない離散サンプル値を有する傾向がある。例えば、スクリーンキャプチャ内容の領域はしばしば、単一の一様な色を含み、自然映像内容における領域は、徐々に変化する色を含む可能性が高い。さらに、スクリーンキャプチャ内容は通常、たとえその内容が(例えば、スクローリングによって)空間的に変位することがあるとしても、フレーム間で厳密に繰り返されるはっきりと識別可能な構造(例えば、グラフィック、テキストキャラクタ)を含む。スクリーンキャプチャ内容は普通、高い彩度サンプリング分解能を有するフォーマット(例えば、YUV4:4:4又はRGB4:4:4)でエンコードされるが、スクリーンキャプチャ内容を、より低い彩度サンプリング分解能を有するフォーマット(例えば、YUV4:2:0、YUV4:2:2)でエンコードすることもできる。
図6は、自然映像内容(621)と人工的に作成された映像内容とを含む複合映像(620)を示す。人工的に作成された映像内容は、自然映像内容(621)の横のグラフィック(622)と、自然映像内容(621)の下に延びるティッカ(ticker)(623)とを含む。図5に示されたスクリーンキャプチャ内容と同様に、図6に示された人工的に作成された映像内容も、比較的少ない離散サンプル値を有する傾向を有する。図6に示された人工的に作成された映像内容も、フレーム間で厳密に繰り返されるか、又は(例えば、スクローリングによって)フレーム間で徐々にオフセットされる、はっきりと識別可能な構造(例えば、グラフィック、テキストキャラクタ)を有する傾向がある。
VI.ハッシュベースブロックマッチングの例
本明細書で説明されるさまざまな技術革新では、映像エンコーダは、エンコーディング中にパラメータについての判断を下すときに、ハッシュベースブロックマッチングの結果を使用する。この項は、ハッシュベースブロックマッチングの例を説明する。
A.ハッシュベースブロックマッチング
ハッシュベースブロックマッチングをエンコーダが使用するとき、エンコーダは、1つ又は複数の参照ピクチャの複数の候補ブロックのうちのそれぞれの候補ブロックについてハッシュ値を判定する。ハッシュテーブルは、それらの候補ブロックに関するハッシュ値を記憶する。エンコーダはさらに、同じハッシング手法によってカレントブロックに関するハッシュ値を判定し、次いで、一致するハッシュ値に関してハッシュテーブルを探索する。2つのブロックが全く同じである場合、それらの2つのブロックのハッシュ値は同じである。ハッシュ値を使用すると、エンコーダは、迅速且つ効率的に、カレントブロックと同じハッシュ値を有する候補ブロックを識別し、異なるハッシュ値を有する候補ブロックを除外することができる。ハッシュベースブロックマッチングの実施態様及び目標に応じて、エンコーダは次いで、カレントブロックと同じハッシュ値を有するそれらの候補ブロックをさらに評価することができる。(異なるブロックが同じハッシュ値を有することがあり得る。そのため、エンコーダは、同じハッシュ値を有する候補ブロックの中から、カレントブロックと一致する候補ブロックをさらに識別することができる。)
例示的ないくつかの実施態様では、候補ブロックに関するハッシュ値は、候補ブロックを含むピクチャ(参照ピクチャ)に関する入力サンプル値から判定される。ハッシュベースブロックマッチング中に、エンコーダは、カレントブロックに関するハッシュ値を、入力サンプル値を使用して判定する。エンコーダは、そのハッシュ値を、候補ブロックに関する入力サンプル値から判定されたハッシュ値と比較する(又は、ハッシュ値を、候補ブロックに関する入力サンプル値から判定されたハッシュ値に対して他の方法で使用する)。それでも、マッチングブロックから再構成されたサンプル値が、カレントブロックを表すために使用される。したがって、予測演算は、依然として、再構成されたサンプル値を使用する。
或いは、ハッシュベースブロックマッチングにおいて考慮される候補ブロックは、再構成されたサンプル値を含む。すなわち、候補ブロックは、ピクチャにおける以前にエンコードされ次いで再構成された内容の一部分である。候補ブロックに関するハッシュ値は、再構成されたサンプル値から判定される。ハッシュベースブロックマッチング中に、エンコーダは、カレントブロックに関するハッシュ値を、入力サンプル値を使用して判定する。エンコーダは、そのハッシュ値を、候補ブロックに関する再構成されたサンプル値から判定されたハッシュ値と比較する(又は、ハッシュ値を、候補ブロックに関する再構成されたサンプル値から判定されたハッシュ値に対して他の方法で使用する)。
図7は、ハッシュベースブロックマッチングにおける候補ブロックB(x,y)に関するハッシュ値(700)を例示する。x及びyはそれぞれ、所与の候補ブロックの左上位置に対する水平座標及び垂直座標を示す。候補ブロックは、ハッシュ関数h()を使用して判定されたハッシュ値を有する。参照ピクチャ内の候補ブロックB(x,y)について、エンコーダは、候補ブロックに関するハッシュ値h(B)を、参照ピクチャに関する入力サンプル値から判定する。エンコーダは、参照ピクチャ内の全ての候補ブロックに関するハッシュ値を判定することができる。又は、エンコーダは、いくつかの候補ブロックを除外することができる。
ハッシュ関数h()は一般に、hからhn−1で示されるn個の可能なハッシュ値を与える。所与のハッシュ値について、そのハッシュ値を有する候補ブロックがグループ分けされる。例えば、図7では、候補ブロックB(1266,263)、B(1357,365)、B(1429,401)、B(502、464)、...がハッシュ値hを有する。グループは、異なる数の候補ブロックを含み得る。例えば、図7では、ハッシュ値hのグループは単一の候補ブロックを含み、一方、ハッシュ値hのグループは4つより多い候補ブロックを含む。
このようにして、可能な候補ブロックは、n個のカテゴリに分配される。例えば、ハッシュ関数h()が12ビットのハッシュ値を生成する場合、候補ブロックは、212=4,096個のカテゴリに分割される。そのハッシュ値を有する全く同じ冗長なブロックを排除することによって、又はサンプル値のあるパターンを有する候補ブロックを除外することによって、ハッシュ値当たりの候補ブロック数をさらに低減させることができる。さらに、エンコーダは、異なるハッシュ関数を使用して繰り返し選り分け、候補ブロックの数を減らすことができる。
ハッシュベースブロックマッチングに対して使用されるハッシュ関数は、実施態様に依存する。ハッシュ関数は、8ビット、12ビット、16ビット、24ビット、32ビット、又は他のあるビット数のハッシュ値を生成することができる。ハッシュ値がより少数のビットを有する場合、そのデータ構造はより少数のカテゴリを含むが、それぞれのカテゴリは、より多くの候補ブロックを含む可能性がある。一方、より多くのビットを有するハッシュ値を使用することは、候補ブロックを編成するデータ構造のサイズを増大させる傾向を有する。ハッシュ値がより多くのビットを有する場合、そのデータ構造はより多くのカテゴリを含むが、それぞれのカテゴリは、より少数の候補ブロックを含む可能性がある。ハッシュ関数h()は、暗号ハッシュ関数、暗号ハッシュ関数の一部分、巡回冗長検査(「CRC」)関数、CRCの一部分、又は(例えば、平均算出演算及びXOR演算を使用して候補ブロック若しくはカレントブロックのシグナチャを判定する)別のハッシュ関数とすることができる。いくつかのタイプのハッシュ関数(例えば、CRC関数)は、類似のブロックを異なるハッシュ値にマッピングする。このことは、カレントブロックに厳密に対応する一致ブロックを捜すときに効率的であることがある。他のタイプのハッシュ関数(例えば、局所性鋭敏型ハッシュ関数)は、類似のブロックを同じハッシュ値にマッピングする。
ハッシュベースブロックマッチング中に、ハッシュ関数h()を用いて、エンコーダは、カレントブロックBcurrentに関するハッシュ値を判定する。図7では、ハッシュ値h(Bcurrent)はhである。カレントブロックのハッシュ値を使用して、エンコーダは、同じハッシュ値を有する候補ブロック(図7の線で囲った枠内に示されている)を識別し、残りの候補ブロックを除外することができる。ハッシュ関数が同様のブロックを異なるハッシュ値にマッピングするとき、識別された候補ブロック(カレントブロックと同じハッシュ値)は、カレントブロックと全く同じである可能性があるブロックを含む。ハッシュ関数が同様のブロックを同じハッシュ値にマッピングするとき、識別された候補ブロック(カレントブロックと同じハッシュ値)は、カレントブロックと全く同じである可能性があるブロック、又はカレントブロックに非常に近い可能性があるブロックを含む。いずれの方式でも、エンコーダは、これらの識別された候補ブロックの中から、カレントブロックに対する一致ブロックを(例えば、サンプルによるブロックマッチング演算を使用して、第2のハッシュ関数を使用して)さらに識別することができる。
全体として、ハッシュ値比較は、サンプルによるブロックマッチングよりもはるかに単純であるため、ハッシュベースブロックマッチングは、参照ピクチャ内の候補ブロックを評価するプロセスをはるかに効率的にすることができる。さらに、エンコーディング中のピクチャ内の異なるブロックに対するハッシュベースブロックマッチングにおいて、候補ブロックに関するハッシュ値は、再使用されることができる。この場合、候補ブロックに関するハッシュ値を計算するコストを、ピクチャ全体、同じ参照ピクチャを使用する他のピクチャ、及びハッシュ値を使用する他のエンコーダ側判断に対するハッシュベースブロックマッチング演算の全体で償却することができる。
B.ハッシュベースブロックマッチングのためのデータ構造
例示的ないくつかの実施態様では、エンコーダは、候補ブロックのハッシュ値に従って候補ブロックを編成するデータ構造を使用する。このデータ構造は、ハッシュベースブロックマッチングを計算的により効率的にするのに役立ち得る。このデータ構造は例えば、本明細書で説明されたブロックハッシュ辞書又はハッシュテーブルを実施する。
図8aは、ハッシュベースブロックマッチングのための候補ブロックを編成する例示的なデータ構造(800)を例示する。ハッシュ関数h()に関して、n個の可能なハッシュ値は、hからhn−1である。同じハッシュ値を有する候補ブロックは、同じ候補ブロックリストに分類される。所与の候補ブロックリストは、ゼロ又はそれより多いエントリを含むことができる。例えば、ハッシュ値hに関する候補ブロックリストはエントリを含まず、ハッシュ値hに関するリストは2つのエントリを有し、ハッシュ値hに関するリストは4つより多いエントリを有する。
エントリ(h,k)は、ハッシュ値hを有するk番目の候補ブロックに関する情報を含む。図8bに示されているように、候補ブロックリスト内のエントリは、ブロックのアドレスB(x,y)(例えば、ブロックの左上位置に対する水平座標及び垂直座標)を含むことができる。又は、図8cに示されているように、候補ブロックリスト内のエントリは、ブロックのアドレスB(x,y)と、反復ハッシュベースブロックマッチングに使用されることができる、第2のハッシュ関数によるハッシュ値とを含むことができる。
カレントブロックに対するハッシュベースブロックマッチング中に、エンコーダは、カレントブロックに関するハッシュ値h(Bcurrent)を判定する。エンコーダは、同じハッシュ値を有する候補ブロックリストを保持し、残りのn−1個のリストを除外する。保持された候補ブロックリスト内に候補ブロックがある場合には、一致するブロックを選択するため、エンコーダは、カレントブロックを候補ブロックと比較することができる。したがって、ハッシュ値h(Bcurrent)を使用した単純なルックアップ操作によって、エンコーダは、(平均で)(n−1)/n個の候補ブロックを排除することができ、保持されたリスト内の残りの(平均で)1/n個の候補ブロックに集中することができ、それによって、サンプルによるブロックマッチング演算の数をかなり低減させることができる。
異なる参照ピクチャに対して異なるデータ構造が使用されることができる。或いは、データ構造内の候補ブロックに関するエントリが、候補ブロックを含む参照ピクチャを示す情報を記憶し、その情報が、ハッシュベースブロックマッチングにおいて使用されることができる。
異なるサイズのブロックに対して異なるデータ構造が使用されることもできる。例えば、1つのデータ構造は、8×8個の候補ブロックに関するハッシュ値を含み、第2のデータ構造は、16×16個の候補ブロックに関するハッシュ値を含み、第3のデータ構造は、32×32個の候補ブロックに関するハッシュ値を含み、これ以降も同様である。ハッシュベースブロックマッチング中に使用されるデータ構造は、カレントブロックのサイズに依存する。或いは、異なるサイズのブロックに対して、単一の、統一されたデータ構造が使用されることもできる。ハッシュ関数は、nビットのハッシュ値を生成することができ、nビットのハッシュ値のm個のビットは、所与のブロックサイズの可能なブロックの中のmビットハッシュ関数に応じたハッシュ値を示し、nビットのハッシュ値の残りのn−m個のビットは、所与のブロックサイズを示す。例えば、14ビットのハッシュ値の最初の2ビットはブロックサイズを示すことができ、残りの12ビットは、12ビットハッシュ関数に応じたハッシュ値を示す。又は、ハッシュ関数は、ブロックのサイズに関わらずmビットハッシュ値を生成することができ、データ構造内の候補ブロックのエントリは、候補ブロックのブロックサイズを示す情報を記憶し、その情報は、ハッシュベースブロックマッチングで使用されることができる。
高解像度ピクチャに対しては、データ構造が、非常に多数の候補ブロックを表す情報を記憶することができる。データ構造に対して使用されるメモリの量を低減させるため、エンコーダは、冗長な値を排除することができる。例えば、エンコーダは、全く同じブロックをデータ構造に追加することをスキップすることができる。一般に、全く同じブロックを排除することによってデータ構造のサイズを低減させることは、符号化効率に害を与え得る。したがって、全く同じブロックを排除するかどうかを判断することによって、エンコーダは、データ構造のためのメモリサイズと符号化効率とをトレードオフすることができる。エンコーダは、ブロックの内容に応じて候補ブロックを除外することもできる。
C.反復ハッシュベースブロックマッチング
エンコーダが、n個の可能なハッシュ値を有する単一のハッシュ関数を使用するとき、エンコーダは、カレントブロックのハッシュ値に基づいて候補ブロックのn−1個のリストを除外することができるが、一致するハッシュ値を有するリストに関して候補ブロックが残っている場合、エンコーダは、残っている候補ブロックに対して、サンプルによるブロックマッチング演算を実行する必要が依然としてあることがある。候補ブロックを編成するデータ構造を更新するときにも、エンコーダは、サンプルによるブロックマッチング演算を実行して、全く同じブロックを識別する必要があることがある。おしなべて、これらのサンプルによるブロックマッチング演算は計算集約的となり得る。
したがって、いくつかの例示的な実施態様では、エンコーダは、反復ハッシュベースブロックマッチングを使用する。反復ハッシュベースブロックマッチングは、ブロックマッチングプロセスを加速させることができ、候補ブロックを編成するデータ構造を更新するプロセスも加速させることができる。
反復ハッシュベースブロックマッチングは、異なるハッシュ関数を用いて判定された複数のハッシュ値を使用する。ブロックB(カレントブロック又は候補ブロック)に対して、エンコーダは、ハッシュ値h(B)に加えて、別のハッシュ値h’(B)を、異なるハッシュ関数h’()を使用して判定する。エンコーダは、カレントブロックに関する第1のハッシュ値h(Bcurrent)を用いて、第1のハッシュ関数h()に関して同じハッシュ値を有する候補ブロックを識別する。識別されたこれらの候補ブロックのうちの一部をさらに除外するため、エンコーダは、異なるハッシュ関数を使用して判定される、カレントブロックに関する第2のハッシュ値h’(Bcurrent)を使用する。候補ブロックをさらに除外するため、エンコーダは、第2のハッシュ値h’(Bcurrent)を、(同じ第1のハッシュ値を有する)以前に識別された候補ブロックに関する第2のハッシュ値と比較する。ハッシュテーブルは、異なるハッシュ関数に従って、候補ブロックに関するハッシュ値を追跡する。
図8aの例では、h(Bcurrent)=hである場合、さらなる改善のため、エンコーダは、エントリ(3,0)、エントリ(3,1)、エントリ(3,2)、エントリ(3,3)、...を有する候補ブロックを選択する。図8cに示されているように、候補ブロックBに関して、エントリは、ブロックアドレスと、ハッシュ関数h’()による第2のハッシュ値h’(B)とを含む。エンコーダは、カレントブロックに関する第2のハッシュ値h’(Bcurrent)を、エントリ(3,0)、エントリ(3,1)、エントリ(3,2)、エントリ(3,3)、...を有するそれぞれの候補ブロックに関する第2のハッシュ値h’(B)と比較する。第2のハッシュ値比較の結果に基づいて、エンコーダは、候補ブロックをさらに除外することができ、h(Bcurrent)と一致する第1のハッシュ値及びh’(Bcurrent)と一致する第2のハッシュ値を有する候補ブロックがあれば、それらの候補ブロックを残すことができる。エンコーダは、あらゆる残った候補ブロックに対してサンプルによるブロックマッチングを実行して、一致するブロックを選択することができる。
図9a〜9cは、異なるデータ構造を使用する反復ハッシュベースブロックマッチングの別の例を示す。図9aのデータ構造(900)は、第1のハッシュ関数h()による第1のハッシュ値によって候補ブロックを編成する。第1のハッシュ関数h()はn1個の可能なハッシュ値を有する。データ構造(900)は、ハッシュ値h...hn1−1に対するリストを含む。この例では、エンコーダは、カレントブロックに関する第1のハッシュ値h(Bcurrent)=hを判定し、hに対するリストを構造(900)から選択する。
図9bに示されているように、hに対するリスト(910)は、残った候補ブロックを、第2のハッシュ関数h’()による第2のハッシュ値によってさらに編成する複数のリストを含む。第2のハッシュ関数h’()はn個の可能なハッシュ値を有する。リスト(910)は、ハッシュ値h’...h’n2−1に対するリストを含み、それらのリストはそれぞれ、図9cのエントリ(920)に関して示されているように、ブロックアドレス(例えば、それぞれの候補ブロックの左上位置に対する水平座標及び垂直座標)を有するエントリを含む。この例では、エンコーダは、カレントブロックに関する第2のハッシュ値h’(Bcurrent)=h’を判定し、h’に対するリストをリスト(910)から選択する。エンコーダは、h’に対するリスト中の候補ブロックに対して、サンプルによるブロックマッチングを実行して、一致するブロックを選択することができる。この例では、第2のハッシュ値に対するリストは、第1のハッシュ値に対する所与のリストに対して固有である。或いは、第2のハッシュ値に対する一組のリストがあり、エンコーダは、(1)第1のハッシュ値に対する一致するリスト内の任意の候補ブロックを識別し、さらに(2)第2のハッシュ値に対する一致するリスト内の任意の候補ブロックを識別する。
ハッシュベースブロックマッチングとは別に、第2のハッシュ関数h’()を使用して、候補ブロックを編成するデータ構造を更新するプロセスを単純にすることもできる。例えば、新たな候補ブロックが、データ構造内に既に表されている候補ブロックと全く同じであるかどうかをエンコーダがチェックするとき、エンコーダは、異なるハッシュ関数を用いた複数のハッシュ値を使用して、全く同じブロックではないブロックを除外することができる。エンコーダは、残った候補ブロックに対して、サンプルによるブロックマッチングを実行して、あらゆる全く同じブロックを識別することができる。
上記の例では、反復ハッシュベースブロックマッチング及び更新は、2つの異なるハッシュ関数を使用する。或いは、エンコーダは、3つ、4つ、又は更に多いハッシュ関数を使用して、ハッシュベースブロックマッチングをさらに加速させるか、又は全く同じブロックではないブロックを除外し、それによって、サンプルによるブロックマッチング演算の数を低減させる。さらに、複雑度の低いエンコーダのために、又はより高速の判断プロセスのために、エンコーダは、ハッシュ値が一致するときに、サンプルによるブロックマッチング演算をスキップすることができる。多数の可能なハッシュ値を有するハッシュ関数については、2つのブロックに関するハッシュ値が一致している場合、2つのブロックは全く同じである確率が高い。特に、下記で説明されるエンコーダ側判断の例示的ないくつかの実施態様では、エンコーダは、ハッシュベースブロックマッチングの結果として、ハッシュ値が一致しているかどうかを考慮するが、サンプルによるブロックマッチング演算を全く実行しない。
VII.ハッシュテーブルサイズの管理
この項は、ハッシュベースブロックマッチングで使用されるハッシュテーブルのサイズを管理するさまざまな手法を提示する。いくつかの解決策では、サンプル値のあるパターンを有する候補ブロックを除外する(省く)ことによって(例えば、均質なブロックを除外することによって)、ハッシュテーブルのサイズを低減させる。特定の実施態様では、(例えば、参照ピクチャ内の)複数の候補ブロックのうちのそれぞれの候補ブロックについて、エンコーダは、候補ブロックが複雑度基準を満たしているかどうかを評価する。候補ブロックが複雑度基準を満たしている場合、エンコーダは、候補ブロックのブロックハッシュ値を判定し、ブロックハッシュ値をハッシュテーブルに追加する。ブロックハッシュ値は、元のサンプル値又は再構成されたサンプル値を使用して計算されることができる。候補ブロックが複雑度基準を満たしていない場合、エンコーダは、候補ブロックのブロックハッシュ値を判定しない。例えば、所与の候補ブロックについて、(a)所与の候補ブロックの少なくとも1つの行が一様でないサンプル値を有しており、且つ/又は(b)所与の候補ブロックの少なくとも1つの列が一様でないサンプル値を有している場合に、複雑度基準は満たされ得る。この基準を用いて、エンコーダは、一様なブロック(均質なブロック)、一様なサンプル値の行を有するブロック(水平方向に均質なブロック)、及び一様なサンプル値の列を有するブロック(垂直方向に均質なブロック)を除外することができる。より一般的には、所与の候補ブロックが複雑度基準を満たしているかどうかを評価するときに、エンコーダは、候補ブロックに関する複雑度指標を計算し、複雑度指標をしきい値と比較することができる。
図10a〜10cは、ハッシュテーブル構築中に、候補ブロックに関するブロックハッシュ値がハッシュテーブルに追加される前に、エンコーダが除外することができる候補ブロックのパターンを示す。図10aは、一様なサンプル値を有するブロック(1000)を示す。図10bは、そのそれぞれの行は一様なサンプル値を有するが(水平方向に均質なブロック)、それらのサンプル値は行ごとに異なり得るブロック(1010)を示す。図10cは、そのそれぞれの列は一様なサンプル値を有するが(垂直方向に均質なブロック)、それらのサンプル値は列ごとに異なり得るブロック(1020)を示す。例えば、候補ブロックのこれらのパターンを識別するために、エンコーダは、候補ブロックのそれぞれの行又はそれぞれの列が一様なサンプル値を有するかどうかをチェックすることができる。
しかしながら、均質なブロック(例えば、全ての均質なブロック)を、ハッシュテーブル内の候補から排除することは、ある種の状況において、ハッシュベースマッチングの利益に負の影響を与え得る。例えば、いくつかのエンコーディングアルゴリズムは、厳密な一致が見つかったときに、(例えば、ハッシュの一致が見つかったら照合プロセスを終了することにより)より効率的に機能する。加えて、均質なブロックを候補から排除することは、厳密な一致の可能性を低減させ得る。したがって、少なくともいくつかの均質なブロックをハッシュテーブル内に保持することによって、エンコーディング効率の向上を実現することができる。
この項に提示されている手法では、いくつかの均質なブロックがハッシュテーブルに含められ(このことは例えば、ハッシュの一致及び/又は厳密な一致を見つける可能性を向上させることができ、その結果としてエンコーディング効率を向上させることができる)、同時に、他の均質なブロックが依然として排除されるような態様で、ハッシュテーブルサイズが管理される。例えば、いくつかの均質なブロックだけ(例えば、所与のピクチャ内の比較的小さい割合の均質なブロックだけ)を含めることは、エンコーディング効率を向上させるという利益を依然として提供することができ、同時に、ハッシュテーブルをより小さくするという利益も保持することができる。
いくつかの実施態様では、均質選択基準を満たしている均質なブロックだけがハッシュテーブルに含められる。均質選択基準は、所与の均質なブロックの座標がピクチャの特定の区分と整列しているかどうかをチェックすることを含むことができる。例えば、参照ピクチャは、水平方向及び垂直方向の特定の間隔を有するグリッド(例えば、16×16画素グリッド、16×8画素グリッドなど)に区分されることができる。均質なブロックがグリッドと整列している場合(例えば、ブロックの開始画素座標が水平方向及び/又は垂直方向に整列している場合)には、そのブロックは、基準と一致しているブロックとして選択されることができる。言い方を変えて説明する。座標(x,y)から始まる幅×高さ(W×H)寸法を有するブロックを考える。均質選択基準は、下記のように定義されることができる。
x%M==0&&y%N==0
上式で、M及びNは、予め定義された数(例えば、同じ数又は異なる数)である。この選択基準を記述する別の方式は、
x&(M−1)==0&&Y&(N−1)==0
である。上式で、M及びNはともに2の累乗である。いくつかの実施態様では、M及びNはともに16である。例えば、均質なブロックの座標が32,32である場合、値M=16及びN=16値を使用したときに、そのブロックは選択され(0,0及び32,0及び64,0及び0,32及び0,64などにおけるブロックも同様である)、一方、座標が35,32である均質なブロックは選択されないであろう。いくつかの実施態様では、Mは、ブロックの幅(W)に設定され、Nは、ブロックの高さ(H)に設定される。
図11は、ハッシュテーブル構築中に特定の均質なブロックを選択する技法(1100)を示す。図3又は図4a〜4bを参照して説明したものなどの画像エンコーダ又は映像エンコーダは、この技法(1100)を実行することができる。
エンコーダは、次の候補ブロックを取得し(1110)、候補ブロックが複雑度基準を満たしているかどうかを評価する(1120)。例えば、例示的ないくつかの実施態様では、(a)所与の候補ブロックの少なくとも1つの行が一様でないサンプル値を有しており、且つ/又は(b)所与の候補ブロックの少なくとも1つの列が一様でないサンプル値を有している場合に、複雑度基準は満たされており、(a)そのブロックが、一様なサンプル値の行を有しており(水平方向に均質なブロック)、且つ/又は(b)そのブロックが、一様なサンプル値の列を有している(垂直方向に均質なブロック)場合、複雑度基準は満たされていない。又は、より一般的には、エンコーダは、候補ブロックに関する複雑度指標を計算し、次いで、複雑度指標をしきい値と比較することができる。例えば、複雑度指標は、周波数トランスフォーム(例えば、DCT)後の、候補ブロックに関する非ゼロ水平位置及び/又は非ゼロ垂直位置における非ゼロAC係数のカウントであり、しきい値はゼロである。候補ブロックに関して、AC係数の最上位行の外側及びAC係数の左列の外側に任意の非ゼロAC係数がある場合、複雑度基準は満たされている。或いは、エンコーダは、別の複雑度指標を考慮する。複雑度基準は、候補ブロックの一部分(例えば、行、列、サブブロック)のハッシュ値を比較することによって、少なくとも部分的に評価されることができる。
候補ブロックが複雑度基準を満たしている場合、エンコーダは、候補ブロックに関するブロックハッシュ値を判定し(1130)、ブロックハッシュ値をハッシュテーブルに追加する(1140)。ブロックハッシュ値は、任意のハッシング手法を使用して判定されることができる。
候補ブロックが複雑度基準を満たしていない場合(例えば、候補ブロックが水平方向に均質であり、且つ/又は垂直方向に均質である場合)には、候補ブロックが均質選択基準を満たしているかどうかを判定する(1160)ために、候補ブロックがチェックされる。候補ブロックが均質選択基準を満たしている場合、エンコーダは、候補ブロックに関するブロックハッシュ値を判定し(1130)、ブロックハッシュ値をハッシュテーブルに追加する(1140)。ブロックハッシュ値は、任意のハッシング手法を使用して判定されることができる。そうでない場合(候補ブロックが均質選択基準を満たしていない場合)、候補ブロックのブロックハッシュ値はハッシュテーブルに追加されない。
いくつかの実施態様では、候補ブロックのx開始座標とy開始座標(例えば、左上の画素の座標)のうちの少なくとも一方の開始座標が所定の値で均等に割り切れるときに、候補ブロックは均質選択基準を満たしている。例えば、所定の値が16である場合、0、16、32、48などのx座標値は条件を満たすであろう。所定の値は、x座標及びy座標に対して異なることができる。いくつかの実施態様では、x座標に対する所定の値が候補ブロックの幅に設定され、y座標に対する所定の値が候補ブロックの高さに設定される。
エンコーダは、次の候補ブロックに進むかどうかを判定する(1150)。次の候補ブロックに進む場合、エンコーダは続けて、次の候補ブロックを取得し(1110)、次の候補ブロックが複雑度基準を満たしているかどうかを評価する(1120)。このように、エンコーダは、それぞれの候補ブロックが複雑度基準及び均質選択基準を満たしているかどうかに応じて、複数の候補ブロックに関する(例えば、参照ピクチャなどのピクチャの候補ブロックに関する)ブロックハッシュ値を選択的に判定することができる。
VIII.MV分解能の判定
この項は、エンコーディング中に、動きベクトル(「MV」)分解能を、(例えば、ハッシュ値を照合する)ハッシュベースブロックマッチングの結果に応じて適応的に判定するさまざまな手法を提示する。エンコーディング中にMV分解能に対する適切なMV精度値を選択することによって、これらの手法は、エンコーディング及びデコーディング(decoding:復号)のレート歪み性能及び/又は計算効率に関して有効な圧縮を容易にすることができる。MV精度は、ピクチャ、ブロック、スライスなどに対して判定されることができる。
A.異なるMV精度
人工的に作成された映像内容をエンコードするとき、MV値は普通、整数サンプル空間変位(整数MV精度)を表し、非常に少数のMV値が、分数サンプル空間変位(分数MV精度)を表す。このことは、MV精度を効率的に判定して(例えば、ピクチャ全体に対して一度に判定するか、又はピクチャの一部分に対して判定して)全体的な性能を向上させる機会を提供する。
図12aは、整数サンプル空間変位を有するMV(1220)を用いた動き補償を示す。MV(1220)は、カレントブロックに関する参照ピクチャ内の同一位置(1210)を基準とした左へ4サンプル、上へ1サンプルの空間変位を示す。例えば、カレントピクチャ内の位置(64,96)にある4×4カレントブロックに対して、MV(1220)は、4×4予測領域(1230)を示し、その位置は、参照ピクチャ内の(60,95)である。予測領域(1230)は、参照ピクチャ内の整数サンプル位置に、再構成されたサンプル値を含む。予測領域(1230)の値を判定するのに、エンコーダ又はデコーダが補間を実行する必要はない。
図12bは、分数サンプル空間変位を有するMV(1221)を用いた動き補償を示す。MV(1221)は、カレントブロックに関する参照ピクチャ内の同一位置(1210)を基準とした左へ3.75サンプル、上へ0.5サンプルの空間変位を示す。例えば、カレントピクチャ内の位置(64,96)にある4×4カレントブロックに対して、MV(1221)は、4×4予測領域(1231)を示し、その位置は、参照ピクチャ内の(60.25,95.5)である。予測領域(1231)は、参照ピクチャ内の分数サンプル位置に、補間されたサンプル値を含む。エンコーダ又はデコーダは、補間を実行して、予測領域(1231)のサンプル値を判定する。分数サンプル空間変位が許されているときには、カレントブロックと一致する可能性があるより多くの候補予測領域が存在し、したがって、少なくともあるタイプの映像内容(例えば、自然映像内容)について、動き補償された予測の質は普通向上する。
B.MV値の表現
MV値は通常、整数値を使用して表現され、その整数値の意味はMV精度に依存する。例えば、整数サンプルMV精度では、整数値1が1サンプルの空間変位を示し、整数値2が2サンプルの空間変位を示し、これ以降も同様である。例えば1/4サンプルMV精度では、整数値1が0.25サンプルの空間変位を示す。整数値2、3、4、及び5はそれぞれ、0.5、0.75、1.0、及び1.25サンプルの空間変位を示す。MV精度に関わらず、整数値は、空間変位の大きさを示すことができ、別個のフラグ値が、変位が負であるのか又は正であるのかを示すことができる。所与のMV値の水平MV成分及び垂直MV成分は、2つの整数値を使用して表されることができる。したがって、MV値を表す2つの整数値の意味は、MV精度に依存する。例えば、2サンプルの水平変位を有し、垂直変位を持たないMV値については、MV精度が1/4サンプルMV精度である場合、MV値は(8,0)として表される。しかしながら、MV精度が整数サンプルMV精度である場合、MV値は(2,0)として表される。
エンコードされた映像データのビットストリーム中のMV値は通常、(例えば、MV成分ベースで)エントロピー符号化される。MV値を、予測MV値に対して(例えば、MV成分ベースで)差分エンコードすることもできる。多くの場合に、MV値は予測MV値に等しく、そのため差分MV値はゼロとなり、非常に効率的にエンコードすることができる。指数−ゴロム符号化、コンテキスト適応バイナリ算術符号化又は他の形態のエントロピー符号化を使用して、差分MV値(又はMV予測が使用されない場合にはMV値)をエントロピー符号化することができる。MV値(又は差分MV値)とエンコードされたビットとの間の厳密な関係は、使用されるエントロピー符号化の形態に依存するが、一般に、小さい値ほどより共通であるため、小さい値ほどより効率的に(すなわちより少数のビットを使用して)エンコードされ、より大きい値ほどより共通でなくなるため、大きい値ほど、より低い効率で(すなわちより多くのビットを使用して)エンコードされる。
C.適応MV精度−導入
前の2項を要約すると、整数サンプルMV精度を有するMV値の使用は、MV値のシグナリングに関連したビットレートを低減させ、(参照ピクチャ内の分数サンプル位置におけるサンプル値の補間を回避することによって)エンコーディング及びデコーディング(decoding:復号)の計算の複雑度を低減させる傾向を有するが、少なくともいくつかのタイプの映像内容については、動き補償された予測の質を低減させることがある。一方、分数サンプルMV精度を有するMV値の使用は、MV値のシグナリングに関連したビットレートを増大させ、(参照ピクチャ内の分数サンプル位置におけるサンプル値の補間を含むことによって)エンコーディング及びデコーディング(decoding:復号)の計算の複雑度を増大させる傾向を有するが、少なくともいくつかのタイプの映像内容については、動き補償された予測の質を向上させることがある。一般に、計算の複雑度、MV値をシグナリングするビットレート、及び動き補償された予測の質は、MV精度が(例えば、整数サンプルから1/2サンプルへ、又は1/2サンプルから1/4サンプルへ)増大するにつれて、収穫逓減点まで増大する。
人工的に作成された映像内容をエンコードするときには、分数サンプルMV精度の(ビットレート及び計算の複雑度に関する)追加されるコストが正当化されないことがある。例えば、大部分のMV値が整数サンプル空間変位を表し、非常に少数のMV値が分数サンプル空間変位を表す場合、分数サンプルMV精度の追加されるコストは正当化されない。エンコーダは、動き推定中に、分数サンプル位置における探索(及びそれらの位置においてサンプル値を判定する補間演算)をスキップすることができる。このような内容については、整数サンプルMV精度を有するMV値を使用することによって、動き補償された予測の質に対する重大な不利益なしに、ビットレート及び計算の複雑度を低減させることができる。
他のタイプの映像内容(例えば、カメラによってキャプチャされた自然映像)に対しては、分数サンプルMV精度が依然として有効であることがあるため、MV精度間の切替えを行うようにエンコーダ及びデコーダを適合させることができる。例えば、エンコーダ及びデコーダは、人工的に作成された映像内容に対しては整数サンプルMV精度を使用することができるが、自然映像内容に対しては(1/4サンプルMV精度などの)分数サンプルMV精度を使用することができる。MV精度を選択するときにエンコーダが従うことができる手法が次の項で説明される。エンコーダは、ビットストリーム中の1つ又は複数の構文要素を使用して、選択されたMV精度をデコーダにシグナリングすることができる。
MV精度をシグナリングする1つの手法では、MV精度の適応選択が使用可能であるときに、エンコーダは、スライスごとにMV精度を選択する。シーケンスパラメータセット(「SPS」)、ピクチャパラメータセット(「PPS」)又は他の構文構造中のフラグ値が、MV精度の適応選択が使用可能であるのかどうかを示す。MV精度の適応選択が使用可能である場合には、所与のスライスのスライスヘッダ内の1つ又は複数の構文要素が、そのスライスのブロックに関する選択されたMV精度を示す。例えば、フラグ値0が1/4サンプルMV精度を示し、フラグ値1が整数サンプルMV精度を示す。
MV精度をシグナリングする別の手法では、エンコーダは、ピクチャごと又はスライスごとにMV精度を選択する。PPS中の構文要素は、3つのMV精度モードのうちの1つ、すなわち(0)PPSに関連づけられたピクチャのスライスのMV値に対する1/4サンプルMV精度モード、(1)PPSに関連づけられたピクチャのスライスのMV値に対する整数サンプルMV精度モード、又は(2)スライスヘッダごとにシグナリングされるフラグ値に依存するスライス適応MV精度モードを示し、ここで、スライスヘッダ内のフラグ値は、スライスのMV値に関して、1/4サンプルMV精度なのか又は整数サンプルMV精度なのかを示すことができる。
MV精度をシグナリングする別の手法では、MV精度の適応選択が使用可能であるときに、エンコーダは、CUごとにMV精度を選択する。所与のCUの構造中の1つ又は複数の構文要素は、CUのブロックに対する選択されたMV精度を示す。例えば、CUに関するCU構文構造中のフラグ値が、CUに関連づけられた全てのPUに関するMV値が、整数サンプルMV精度を有するのか、又は1/4サンプルMV精度を有するのかを示す。
これらのどの手法においても、エンコーダ及びデコーダは、水平MV成分と垂直MV成分に対して異なるMV精度を使用することができる。このことは、(例えば、スケーリングされていない次元では整数サンプルMV精度を使用し、スケーリングされた次元では分数サンプルMV精度を使用して)水平方向又は垂直方向にスケーリングされた人工的に作成された映像内容をエンコードするときに有効であり得る。いくつかの例示的な実施態様では、QP値の調整だけではレート制御を達成することができない場合、エンコーダは、映像のサイズを水平方向又は垂直方向に変更してビットレートを低減させ、次いで、サイズが変更された映像をエンコードすることができる。デコーダ側では、復号後に、映像が元の寸法に再びスケーリングされる。エンコーダは、デコーダに、水平MV成分に関するMV精度をシグナリングし、さらに、垂直MV成分に関するMV精度をシグナリングすることができる。
より一般的には、MV精度の適応選択が使用可能であるとき、エンコーダは、MV精度を選択し、選択されたMV精度を何らかの方式でシグナリングする。例えば、SPS、PPS又は他の構文構造中のフラグ値は、MV精度の適応選択が使用可能であるのかどうかを示す。適応MV精度が使用可能であるときには、シーケンス層構文構造、GOP層構文構造、ピクチャ層構文構造、スライス層構文構造、タイル層構文構造、ブロック層構文構造、又は他の構文構造中の1つ又は複数の構文要素が、MV値の水平及び垂直成分に対する選択されたMV精度を示すことができる。又は、シーケンス層構文構造、GOP層構文構造、ピクチャ層構文構造、スライスヘッダ層構文構造、スライスデータ層構文構造、タイル層構文構造、ブロック層構文構造、若しくは他の構文構造中の1つ若しくは複数の構文要素が、異なるMV成分に対するMV精度を示すこともできる。2つの使用可能なMV精度があるときには、フラグ値は、2つのMV精度の間の選択を示すことができる。より多くの使用可能なMV精度がある場合には、整数値は、それらのMV精度の間の選択を示すことができる。
選択されたMV精度を示す構文要素をシグナリング/解析するための変更とは別に、シグナリングされたMV値がどのように解釈されるのかを、選択されたMV精度に応じて変更するように、復号を変更することもできる。MV値が、どのようにエンコードされ、そして再構成されるのかの詳細は、MV精度によって異なり得る。例えば、MV精度が整数サンプル精度であるときには、予測MV値を最も近い整数に丸めることができ、差分MV値は、整数サンプルオフセットを示すことができる。又は、MV精度が1/4サンプル精度であるときには、予測MV値を最も近い1/4サンプルオフセットに丸めることができ、差分MV値は、1/4サンプルオフセットを示すことができる。又は、MV値は、他のある方式でシグナリングされることもできる。MV値が整数サンプルMV精度を有し、映像が4:2:2又は4:2:0の彩度サンプリングを使用するときには、彩度MV値は、スケーリングなどによって導出されることができ、このことは、彩度に対する1/2サンプル変位をもたらすことがある。又は、彩度MV値を整数値に丸めることもできる。
或いは、エンコーダが、MV値がどのように予測されるのか、又は、MV差がビットストリーム中でどのようにシグナリングされるのかを変更せず、デコーダも、MV値がどのように予測されるのか、又はMV差がどのように再構成されるのかを変更しないが、選択されたMV精度次第で、再構成されたMV値の解釈が変わる。選択されたMV精度が整数サンプル精度である場合には、(4分の1サンプル精度で演算する)動き補償プロセスで使用される前に、再構成されたMV値は4倍にスケーリングされる。選択されたMV精度が4分の1サンプル精度である場合には、動き補償プロセスで使用される前に、再構成されたMV値はスケーリングされない。
D.カテゴリを使用したMV分解能の判定
映像エンコーディング中にMV分解能を適応させることができるとき、エンコーダは、映像の単位に対するMV精度(例えば、その単位に関するMV値の一方又は両方の成分に対するMV精度)を選択する。エンコーダは、使用するMV精度を、ブロックを複数のカテゴリに分類した結果に応じて選択することができ、この分類は、(例えば、ハッシュ値を照合する)ハッシュベースブロックマッチングを、分類演算のうちの1つ又は複数の分類演算内に含むことができる。MV精度の選択は、一様なブロック(例えば、水平方向及び/又は垂直方向に均質なブロック)としてのブロックの分類など、他の因子にも依存し得る。これらの手法は、適切なMV精度を選択する計算的に効率的な方式を提供することができる。
1.MV精度を選択する例示的な技法
図13は、ブロック分類の結果に応じてMV精度を選択する一般化された技法(1300)を示す。技法(1300)は、図3若しくは図4a及び図4bを参照して説明したものなどのエンコーダによって、又は他のエンコーダによって実行されることができる。
エンコーダは、映像をエンコードしてエンコードされたデータを生成し、次いで、エンコードされたデータをビットストリームの形で出力する。エンコーディングの一部分として、エンコーダは、映像の単位を複数のブロックに分割する(例えば、映像のピクチャ、スライス又は他の単位を分割する)(1310)。次いで、それぞれのブロックについて、エンコーダは、ブロックを、複数のカテゴリのうちの1つのカテゴリに分類する(1320)。カテゴリは、均質分類基準を使用した均質カテゴリ、及び/又はハッシュベースマッチング分類基準を使用したハッシュ一致カテゴリを含むことができる。分類(例えば、前記複数のカテゴリのうちの1つ又は複数のカテゴリにあるブロックのカウント)に基づいて、エンコーダは、映像の単位に関するMV精度を判定する(1330)。例えば、エンコーダは、整数MV精度を使用するのか又は分数MV精度(例えば、1/4サンプルMV精度)を使用するのかを判定することができる。
図14は、MV精度を選択するときに使用されるブロック分類を実行する技法(1400)を示す。技法(1400)は、図3若しくは図4a及び図4bを参照して説明したものなどのエンコーダによって、又は他のエンコーダによって実行されることができる。技法(1400)を使用して、図13に関して上記で論じたブロック分類(1320)を実施することができる。
ブロックを分類するために、技法(1400)は最初に、ブロックを全ブロックカテゴリに割り当てる(1410)。ブロックを全ブロックカテゴリに割り当てることは、全ブロックカテゴリに関連づけられたブロックカウントを1増やすことによって実行されることができる。
技法(1400)は次に、ブロックが、参照ピクチャ内の同一位置ブロックと一致している(例えば、ブロックによって使用される1つ又は複数の参照ピクチャのうちの少なくとも1つの参照ピクチャ内のブロックと一致している)かどうかを判定し(1420)、ブロックが参照ピクチャ内の同一位置ブロックと一致している場合には、ブロックを、同一位置一致カテゴリに割り当てる(1430)。ブロックを同一位置一致カテゴリに割り当てることは、同一位置一致カテゴリに関連づけられたブロックカウントを1増やすことによって実行されることができる。
ブロックが参照ピクチャ内の同一位置ブロックと一致していない場合、技法(1400)は次いで、ブロックが均質なブロックであるかどうか(例えば、ブロックが水平方向に均質であるか且つ/又は垂直方向に均質である場合に満たされ得る均質分類基準を、ブロックが満たしているかどうか)をチェックし(1440)、ブロックが均質なブロックである場合には、ブロックを均質カテゴリに割り当てる(1450)。ブロックを均質カテゴリに割り当てることは、均質カテゴリに関連づけられたブロックカウントを1増やすことによって実行されることができる。
ブロックが均質なブロックでない場合、技法(1400)は次いで、ブロックが、ハッシュベースマッチング分類基準を満たしているかどうか(例えば、1つ又は複数の参照ピクチャの候補ブロックから生成されたハッシュテーブル内でブロックに関するハッシュ値が見つかるかどうか)をチェックし(1460)、ブロックがハッシュベースマッチング分類基準を満たしている場合には、ブロックを、ハッシュ一致カテゴリに割り当てる(1470)。ブロックを、ハッシュ一致カテゴリに割り当てることは、ハッシュ一致カテゴリに関連づけられたブロックカウントを1増やすことによって実行されることができる。
ブロックが分類された後、ブロックが残っている場合に、技法(1400)は続いて、(例えば、映像の単位の全てのブロックを分類するために)次のブロックを分類する(1480)。
技法(1400)は、ブロックがカテゴリに割り当てられたときに、それぞれのカテゴリに関連づけられたカウンタを増加させることによって、映像単位の複数のブロックを複数のカテゴリに分類するように、実行されることができる。
いくつかの実施態様では、カレントピクチャのブロックが分類される。カレントピクチャは、重なっていない幅(W)×高さ(H)のブロックに分割されることができる。一実施態様では、W=H=8である。エンコーダは、カレントピクチャ内の全てのブロックに対してハッシュベースブロックマッチングを実行することができる。探索範囲は、カレントピクチャに対する1つ(又は複数)の参照ピクチャとすることができる。一実施態様では、参照ピクチャリスト0内の最初の参照ピクチャを使用して、ハッシュマッチングを実行する。
いくつかの実施態様では、ブロックは、下記の4つのカテゴリを使用して分類される。第1のカテゴリは「T」(例えば、全ブロックカテゴリ)と呼ばれる。全てのブロックは、「T」カテゴリに割り当てられる。
第2のカテゴリは「C」(例えば、同一位置一致カテゴリ)と呼ばれる。参照ピクチャ内の同一位置ブロックと一致しているブロックは、「C」カテゴリに割り当てられる。2つ以上の参照ピクチャが使用される場合には、ブロックが参照ピクチャのうちの少なくとも1つの参照ピクチャ内の同一位置ブロックと一致している場合、ブロックは割り当てられる。
第3のカテゴリは「S」(例えば、均質カテゴリ又は「平滑」カテゴリ)と呼ばれる。「C」カテゴリに割り当てられていない均質な(例えば、水平方向及び/又は垂直方向に均質な)ブロックは、「S」カテゴリに割り当てられる。
第4のカテゴリは「M」(例えば、ハッシュ一致カテゴリ)と呼ばれる。「C」カテゴリにも又は「S」カテゴリにも割り当てられていないが、1つ又は複数の参照ピクチャの候補ブロックから生成されたハッシュテーブル内で見つかるハッシュ値を有するブロックは、「M」カテゴリに割り当てられる。
「T」、「C」、「S」及び「M」カテゴリを使用する実施態様では、下記式のCSM率(例えば、比率値)が算出されることができる。
CSM率=(C+S+M)/T
CSM率は、ピクチャ(又は映像の他の単位)内の「C」、「S」及び「M」ブロックの割合を示す。さらに、カレントピクチャに関するCSM率及び「Ncsm」個の以前の符号化されたピクチャのCSM率の平均値である平均CSM率が算出されることができる。さらに、M率が算出されることができ、M率=M/T(「M」ブロックの割合)である。平均M率は、カレントピクチャに関するM率及び「Nm」個の以前の符号化されたピクチャのM率の平均値である。
MV精度を判定する(例えば、整数MV精度を使用するのか、又は1/4ペル(pel)精度などの分数MV精度を使用するのかを判断する)ために、上述のカテゴリ並びに「T」、「C」、「S」及び「M」カテゴリから算出された値を使用して、下記のルールのうちの1つ又は複数のルールが(個別に又は組み合わせて)適用されることができる。
ルール1:CSM率がしきい値よりも大きい場合には整数MV精度を使用する。そうでない場合には1/4ペル精度を使用する。(カレントピクチャのマッチング率(matching rate)があまりに低い場合には分数精度MVを使用する。)
ルール2:平均CSM率がしきい値よりも大きい場合には整数MV精度を使用する。そうでない場合には1/4ペル精度を使用する。(スライディングウィンドウ内のピクチャのマッチング率があまりに低い場合には分数精度MVを使用する。)
ルール3:M率がしきい値よりも大きい場合には整数MV精度を使用する。そうでない場合には1/4ペル精度を使用する。(非同一位置非平滑ブロックのマッチング率がしきい値よりも高い場合には整数精度MVを使用する)。
ルール4:平均M率がしきい値よりも大きい場合には整数MV精度を使用する。そうでない場合には1/4ペル精度を使用する。(スライディングウィンドウ内のピクチャの非同一位置非平滑ブロックの平均マッチング率がしきい値よりも高い場合には整数精度MVを使用する)。
ルール5:C==Tである場合には整数MV精度を使用する。そうでない場合には1/4ペル精度を使用する。(カレントピクチャ内の全てのブロックが参照ピクチャ内の同一位置ブロックと一致している(2つのピクチャが全く同じである)場合には整数精度MVを使用する。いくつかの実施態様では、このことは、符号化効率に対して重大な影響を持たないかもしれないが、エンコーディング時間を節約するのに役立つこともある。これは、エンコーディングプロセスにおいて整数精度MVを使用することが、分数画素に対する動き推定など、分数画素に対するいくつかの演算をスキップすることができるためである。)
ルール6:M>(T−C−S)/比率1である場合には整数MV精度を使用する。そうでない場合には1/4ペル精度を使用する。(全ての非同一位置非平滑ブロックの中の一致したブロックの割合がしきい値よりも高い場合には整数精度MVを使用する。)
ルール7:CSM率>しきい値1且つM率>しきい値2である場合には整数MV精度を使用する。そうでない場合には1/4ペル精度を使用する。(CSMブロックの割合がしきい値よりも大きく(大部分のブロックが整数精度MVを使用するのに適していることを保証するために、いくつかの実施態様ではこのしきい値は1に近い)、且つ(例えば、非同一位置非平滑ブロックに対するいくつかの一致を見つけることができることを保証するために)Mブロックの割合がしきい値より大きい場合には、整数精度MVを使用する)。
ルール8:平均CSM率+平均M率>しきい値3である場合には整数MV精度を使用する。そうでない場合には1/4ペル精度を使用する。(ルール7に似た条件であるが、スライディングウィンドウ内のピクチャを考慮する。)
例示的な実施態様では、下記の設定が適用される。ブロックサイズは8×8である。ハッシュマッチングが実行されるのは、参照ピクチャリスト0内の最初の参照ピクチャに対してだけである。NcsmとNmはともに31に設定される(カレントピクチャを含めて合計32ピクチャ)。この例示的な実施態様では、動きベクトル精度が下記の順序で判断される(満たされた最初の「場合には(if)」条件がそのMV精度を設定し、「場合には」条件がいずれも満たされていない場合には、「そうでない場合には(otherwise)」条件が1/4ペル精度を設定する)。
CSM率<0.8の場合には1/4ペル精度を使用する。
T==Cの場合には整数精度を使用する。
平均CSM率<0.95の場合には1/4ペル精度を使用する。
M>(T−C−S)/3の場合には整数精度を使用する。
CSM率>0.99&&M率>0.01の場合には整数精度を使用する。
平均CSM率+平均M率>1.01の場合には整数精度を使用する。
そうでない場合には1/4ペル精度を使用する。
この項において説明された技法では、エンコーダは、1/4サンプルMV精度の使用と整数サンプルMV精度の使用との間で選択を実行することができる。より一般的には、エンコーダは、複数の使用可能なMV精度の間で選択を実行する。複数の使用可能なMV精度は、整数サンプルMV精度、1/2サンプルMV精度、1/4サンプルMV精度及び/又は他のMV精度を含むことができる。選択されたMV精度は、映像の単位に関するMV値の水平成分及び/又は垂直成分に対して適用されることができる。
この項において説明された技法では、ハッシュベースブロックマッチングは、単位の入力サンプル値から判定されたハッシュ値及び(候補ブロックのために)1つ又は複数の参照ピクチャに対する入力サンプル値から判定されたハッシュ値を使用する。或いは、ハッシュテーブル中に表された候補ブロックに対して、ハッシュベースブロックマッチングは、再構成されたサンプル値から判定されたハッシュ値を使用することができる。
この項において説明された技法では、映像の単位に対するMV精度を判定するときに、エンコーダは、次の項で説明されるように、一致していないブロックが、かなりの量の自然映像内容(カメラによってキャプチャされた映像)を含むかどうかなど、他の因子も考慮することができる。
2.代替形態及び変形形態
エンコーダが、ピクチャが変わってもタイルの同じパターンを使用するとき、エンコーダは、ピクチャが変わっても、タイルごとのMV精度を繰り返すことができる。同一位置タイルは、ピクチャが変わっても同じMV精度を使用することができる。同様に、同一位置スライスも、ピクチャが変わっても同じMV精度を使用することができる。例えば、映像がコンピュータデスクトップを表しており、デスクトップの一部分が、自然映像内容を表示しているウィンドウを有しているとする。テキスト又は他のレンダリングされた内容を示している他のエリアが整数サンプルMV精度を使用してエンコードされるかどうかに関わらず、デスクトップのその領域内においては、ピクチャが変わっても、分数サンプルMV精度を使用することができる。
エンコーダは、整数サンプルMV精度が適切であることの確実性の程度に少なくとも部分的に基づいて、整数サンプルMV精度に向かうバイアス(bias)の量又は整数サンプルMV精度から離れるバイアスの量を調整することができる。エンコーダは、エンコーディング及び/又はデコーディング(decoding:復号)の目標の計算の複雑度に少なくとも部分的に基づいて、整数サンプルMV精度に向かうバイアスの量又は整数サンプルMV精度から離れるバイアスの量を調整することもできる(計算の複雑度を低減させるためには整数サンプルMV精度の方が好ましい)。例えば、エンコーダは、比較演算で使用されるしきい値を、整数サンプルMV精度が選択される可能性がより高くなるか、又はより低くなるように調整することができる。
選択されたMV精度は、映像の単位内のブロックのMV値の水平MV成分用及び/又は垂直MV成分用とすることができ、水平MV成分と垂直MV成分は異なるMV精度を有することが許される。又は、選択されたMV精度は、映像の単位内のブロックのMV値の水平MV成分と垂直MV成分の両方の成分用とすることができ、水平MV成分と垂直MV成分は同じMV精度を有する。
MV精度の選択の前述の例のうちの大部分の例では、ビットストリーム中のエンコードされた映像は、映像の単位に対する選択されたMV精度を示す1つ又は複数の構文要素を含む。デコーダは、選択されたMV精度を示す構文要素を解析し、選択されたMV精度に従ってMV値を解釈する。或いは、ビットストリーム中のエンコードされた映像は、選択されたMV精度を示す構文要素を含まないことも可能である。例えば、ビットストリームが、分数サンプルMV精度を有するMV値のシグナリングをサポートしている場合であっても、エンコーダは、小数部がゼロのMV値だけを使用するように、映像の単位に対する動き推定を拘束することができ、動き補償では、整数サンプルオフセットを示すMV値だけが使用される。デコーダは、(MV値が整数サンプルオフセットを示す場合)分数サンプルMV精度でMV値を再構成して適用する。このことは、補間演算を回避することにより、復号の計算の複雑度を低減させることができる。
IX.ハッシュマッチングを使用したシーン変化の検出
この項は、ハッシュマッチングに基づいてシーン変化を検出するさまざまな手法を提示する。シーン変化は、映像エンコーディング中に検出されることができる。例えば、シーン変化ピクチャとして識別されたピクチャを使用して、符号化効率を向上させることができる(例えば、所与のピクチャがシーン変化ピクチャであるかどうかに少なくとも部分的に基づいて参照ピクチャを判定することができる)。
A.シーン変化ピクチャの検出
シーン変化は、カレントピクチャのいくつのブロックがハッシュテーブル内にハッシュ一致を有するのかを示す情報(一般に「一致率(match rate)」、「一致比率」又は「R」と呼ばれる)を、以前のピクチャに関して少なくとも部分的に使用して検出される。いくつかの実施態様では、一致率がR=(C+S+M)/Tとして算出される。或いは、一致率は、R=(C+M)/T又はR=M/Tとして算出されることもできる。カレントピクチャの一致率は「Rcurr」と表示される。加えて、(カレントピクチャの前の)以前のピクチャから平均一致率が算出されることもできる。例えば、全ての以前の符号化されたピクチャの平均を維持することができるか、又は(例えば、スライディングウィンドウを使用して)いくつかの以前のピクチャの平均を維持することができる。平均一致率は「Ravg」と表示される。
いくつかの実施態様では、RcurrがRavgよりも小さい(例えば、かなり小さい)場合、カレントピクチャは、シーン変化ピクチャとして識別されることができる。いくつかの実施態様では、Rcurr<a×Ravgである場合に、カレントピクチャは、シーン変化ピクチャとして検出される。特定の実施態様では、「a」の値(重み値)は0.5に設定される。
B.長期参照ピクチャ選択
映像符号化では、参照ピクチャからの動き補償を使用して時間的冗長性を除去する。したがって、参照ピクチャは、符号化効率にとって非常に重要となり得る。いくつかの実施態様では、短期参照ピクチャと長期参照ピクチャの両方が使用される。短期参照ピクチャは普通、カレント符号化ピクチャからあまり遠くに離れていないいくつかのピクチャである。長期参照ピクチャは、比較的長い時間にわたり、復号済みピクチャバッファ(「DPB」)に記憶されていることがある。長期参照ピクチャは、映像シーケンス中のより後の方で、複製されたシーンが生じることがあるか又は複製されたウィンドウが生じることがある、いくつかのスクリーン内容に対する符号化効率を向上させるのに役立つ。いくつかの実施態様では、シーン変化の前の(例えば、シーン変化の直前の)ピクチャが長期参照ピクチャとして保持され、シーン変化中のピクチャは保持されない。
長期参照ピクチャ選択のさまざまな実例を例示するために、ピクチャの下記の例示的なシーケンスが使用される。
f0(s0)、f1(s0)、f2(s0)、f3(s0)、f4(s0)、f5(s0)、f6(s0)、f7(s0−>1)、f8(s0−>1)、f9(s0−>1)、f10(s0−>1)、f11(s1)、f12(s1)
この例示的なシーケンスには、13個のピクチャ(「f0」から「f12」と表示される)及び2つのシーン(「s0」及び「s1」と表示される)がある。第1のシーンと第2のシーンとの間の遷移は「s0−>1」と表示される。例示的なシーケンスに示されているとおり、ピクチャf0からf6は第1のシーンs0に属し、ピクチャf7からf10は、第1のシーンs0から第2のシーンs1への遷移ピクチャであり、ピクチャf11及びf12は第2のシーンs1に属する。ピクチャの例示的なシーケンスがスクリーン内容を含む場合、f0、f1、f2、f3、f4、f5及びf6に関する一致率は比較的高いことが見込まれ、f7、f8、f9、f10及びf11に関する一致率は比較的低いことが見込まれ、f12に関する一致率は比較的高いことが見込まれる。
さまざまなエンコーディング状況の結果によれば、直前のシーンの最後のピクチャを保持することは、符号化効率を向上させるのに役立ち得る。したがって、上記の例示的なシーケンスでは、f6が、長期参照ピクチャとして保持されるであろう。いくつかの実施態様では、所与のピクチャを長期参照ピクチャとして保持するかどうかの判断が、カレントピクチャをエンコードするときになされる。例えば、fn−1を長期参照ピクチャとして保持するかどうかの判断は、fn(カレントピクチャ)をエンコードするときになされる。特定の実施態様では、下記の2つの条件が満たされている場合に、fn−1は長期参照ピクチャとして保持される。
1.マッチング率Rn(カレントピクチャfnに対してはRcurr)がしきい値よりも低い(fnがシーン変化ピクチャとして検出されることを示す)。
2.直前のX個の全てのピクチャ(Rn−1、Rn−2、...Rn−X)のマッチング率がしきい値よりも高い(安定したシーンを示し、f7、f8、f9などのシーン変化中のピクチャを除外することができる)。
上記の2つの条件を使用して、X個のピクチャからなる安定したシーンの直後に起こるシーン変化の始まりを検出することができる。上記の例示的なシーケンスを使用すると、カレントピクチャf7をエンコードするときに2つの条件が適用された場合に、f7の一致率がしきい値よりも低いことが分かる場合があり(f7がシーン変化ピクチャであることを示す)、一方、直前のX個のピクチャ(例えば、f6、f5、f4など)がしきい値よりも高いことが分かる場合がある。その結果、2つの条件が満たされている場合、f6が、長期参照ピクチャとして保持されることができる。
C.ピクチャ品質調整
上記の例示的なシーケンスにおいて、第2のシーンs1内に(ピクチャ間の変化が極めて小さい)多くのピクチャがある場合、s1内の最初の少数のピクチャをより良好な品質でエンコードすることが符号化効率を向上させるのに役立つことがある。いくつかの実施態様では、QPI及びラムダIを使用して、イントラピクチャをエンコードし、別のQP値及びラムダ値(例えば、普通はQPI及びラムダIよりも大きく、異なるPピクチャ及びBピクチャに対して異なっていてもよい)を使用して、Pピクチャ及びBピクチャをエンコードする。
いくつかの実施態様では、ハッシュベースのブロック一致によって、カレントピクチャが新たなシーンの開始(又は始まりに近い)ピクチャであることが検出された場合に、カレントピクチャが、より良好な品質でエンコードされる(例えば、QPI及びラムダIを使用してエンコードされる)。例えば、安定したシーンの始まりのピクチャ又は安定したシーンの始まりに近いピクチャをより高い品質でエンコードすることによって、同じ安定したシーン内の後続のピクチャのエンコーディング効率及び/又は品質を向上させることができる。
事前解析が許されている場合、カレントピクチャが新たな安定したシーンの始まりのピクチャであるかどうかを検出することは、簡単なタスクであり得る。例えば、カレントピクチャの後の次のX個のピクチャをチェックすることができる。カレントピクチャが比較的低い一致率を有し、次のX個のピクチャが比較的高い一致率を有する場合、エンコーダは、カレントピクチャを、比較的高い品質でエンコードすることができる。例えば、上記の例示的なシーケンスを使用すると、エンコーダは、f11の一致率が比較的低く、一方、f12、f13及びf14の一致率が比較的高いことを見出すことができる。この状況では、f11は、新たな安定したシーンの始まりのピクチャであると判定することができ、したがって、f11を、より良好な品質でエンコードすることができる。特定の実施態様では、下記の2つの条件が満たされている場合に、カレントピクチャfnは、より良好な品質で符号化される(例えば、QPI及びラムダIを用いてエンコードされる)。
1.マッチング率Rnがしきい値よりも低い(fnが新たなシーンの開始として検出されることを示す)。
2.全ての将来のX個のピクチャのマッチング率(Rn+1、Rn+2、...Rn+X)がしきい値よりも高い(安定したシーンを示す)。
事前解析が許されていない場合には、エンコーダは、新たな安定したシーンの始まりであると判断できないことがあり、エンコーダは、その代わりに、新たな安定したシーンが確認されることができるまで、少数のピクチャの到来を待たなければならない。例えば、エンコーダは、いくつかのピクチャXの到来を待って、新たな安定したシーンに到達したことを確認することができ、次いで、向上した品質でカレントピクチャをエンコードすることができる。例えば、上記の例示的なシーケンスを参照すると、f12、f13、f14及びf15(X=4の場合)が比較的高い一致率を有する場合(及び、例えばf11が比較的低い一致率を有する場合)には、f15を、向上した品質でエンコードすることができる。特定の実施態様では、下記の2つの条件が満たされている場合に、カレントピクチャfnがより良好な品質で符号化される(例えば、QPI及びラムダIを用いてエンコードされる)。
1.カレントピクチャ及び以前のX個のピクチャのマッチング率(Rn、Rn−1、Rn−2、...Rn−X)がしきい値よりも高い。
2.ピクチャn−X−1のマッチング率(Rn−X−1)がしきい値よりも低い。
D.例示的な実施態様
ハッシュベースブロックマッチングを使用してシーン変化を検出するさまざまな方法を提供することができる。加えて、シーン変化情報の結果を、エンコーディング中に、長期参照ピクチャ選択及びピクチャ品質設定などの他の目的に使用することもできる。
図15は、ハッシュベースブロックマッチングの結果を少なくとも部分的に使用して、映像エンコーディング中にシーン変化を検出する一般化された技法(1500)を示す。技法(1500)は、図3若しくは図4a及び図4bを参照して説明したものなどのエンコーダ、又は他のエンコーダによって実行されることができる。
エンコーダは、映像をエンコードして、エンコードされたデータを生成し、エンコーダは、エンコードされたデータを、ビットストリームの一部分として出力する。エンコーディング中に、エンコーダは、カレントピクチャに関する一致率を算出する(1510)。一致率は、(1つ又は複数の参照ピクチャに関して)カレントピクチャに対するハッシュベースブロックマッチングを少なくとも部分的に使用して算出される。いくつかの実施態様では、一致率は、カレントピクチャのブロックを複数のカテゴリに分類することによって算出される。いくつかの実施態様では、一致率は、R=(C+S+M)/Tとして、又はR=(C+M)/Tとして、又はR=M/Tとして算出される。
エンコーダは次いで、複数の以前のピクチャに関する平均一致率を算出する(1520)。平均一致率は、以前のピクチャのそれぞれに関する個々の一致率を算出し、個々の一致率を平均することによって算出されることができる。いくつかの実施態様では、一致率は、所与の以前のピクチャのブロックを複数のカテゴリに分類することによって算出される。いくつかの実施態様では、一致率は、R=(C+S+M)/Tとして、又はR=(C+M)/Tとして、又はR=M/Tとして算出される。
エンコーダは次いで、重み付き平均一致率を算出する(1530)。例えば、エンコーダは、平均一致率に、1.0よりも小さい重み値を乗じることができる。特定の実施態様では、重み値0.5が使用される。
エンコーダは次いで、カレントピクチャに関する一致率及び重み付き平均一致率に基づいて、カレントピクチャがシーン変化ピクチャであるのかどうかを判定する(1540)。例えば、カレントピクチャに関する一致率が重み付き平均一致率よりも小さい場合に、カレントピクチャは、シーン変化ピクチャであると判定されることができる。
カレントピクチャがシーン変化ピクチャであると検出されたときには、さまざまな判断をすることができる。例えば、カレントピクチャの直前のピクチャを、長期参照ピクチャとして選択することができる。加えて、1つのピクチャ(又は複数のピクチャ)がいつシーン変化に関わったのかについての情報を、エンコーディング中にピクチャ品質パラメータを判定するときに使用することができる。
開示された本発明の原理を適用することができる多くの可能な実施例があることを考えれば、例示された実施例は単に本発明の好ましい実例でしかなく、それらの実施例を、本発明の範囲を限定するものと解釈すべきではないことを認識すべきである。むしろ、本発明の範囲は添付の請求項によって定義される。したがって、本出願人は、これらの請求項の範囲及び趣旨に含まれる全てのものを、本出願人の発明として主張する。

Claims (7)

  1. 処理ユニットとメモリとを含むコンピューティングデバイスであって、
    複数の候補ブロックのうちのそれぞれの候補ブロックについて、前記候補ブロックが複雑度基準を満たしているかどうかを評価するステップと、
    前記候補ブロックが前記複雑度基準を満たしていない場合に、前記候補ブロックが均質選択基準を満たしているかどうかを評価するステップと、
    前記候補ブロックが前記均質選択基準を満たしている場合に、前記候補ブロックのブロックハッシュ値を判定し、前記ブロックハッシュ値をハッシュテーブルに追加するステップと
    前記候補ブロックが前記均質選択基準を満たしていない場合に、前記候補ブロックを前記ハッシュテーブルから省くステップと
    を含む動作を実行するように構成され、前記候補ブロックのサンプル値が水平方向又は垂直方向に均質でない場合に、前記複雑度基準は満たされていると判断され、
    前記候補ブロックの位置がグリッドに整列している場合に、前記均質選択基準は満たされていると判断される、コンピューティングデバイス。
  2. 前記動作が、
    前記候補ブロックが前記複雑度基準を満たしている場合に、
    前記候補ブロックのブロックハッシュ値を判定するステップと、
    前記ブロックハッシュ値を前記ハッシュテーブルに追加するステップと
    をさらに含む、請求項1に記載のコンピューティングデバイス。
  3. 前記均質選択基準が、前記候補ブロックの開始座標に基づく、請求項1に記載のコンピューティングデバイス。
  4. 前記候補ブロックのx開始座標とy開始座標のうちの少なくとも一方が所定の値で均等に割り切れるとき、前記候補ブロックは前記均質選択基準を満たしている、請求項1に記載のコンピューティングデバイス。
  5. 前記候補ブロックのx開始座標が第1の所定の値で均等に割り切れるとともに、前記候補ブロックのy開始座標が第2の所定の値で均等に割り切れるとき、前記候補ブロックは前記均質選択基準を満たしている、請求項1に記載のコンピューティングデバイス。
  6. 前記第1の所定の値が前記候補ブロックの幅であり、前記第2の所定の値が前記候補ブロックの高さである、請求項に記載のコンピューティングデバイス。
  7. 前記第1の所定の値が16であり、前記第2の所定の値が16である、請求項に記載のコンピューティングデバイス。
JP2017517045A 2014-09-30 2014-09-30 コンピューティングデバイス Active JP6462119B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/087869 WO2016049834A1 (en) 2014-09-30 2014-09-30 Hash-based encoder decisions for video coding

Publications (2)

Publication Number Publication Date
JP2017535148A JP2017535148A (ja) 2017-11-24
JP6462119B2 true JP6462119B2 (ja) 2019-01-30

Family

ID=55629261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017517045A Active JP6462119B2 (ja) 2014-09-30 2014-09-30 コンピューティングデバイス

Country Status (11)

Country Link
US (3) US11025923B2 (ja)
EP (3) EP3389276B1 (ja)
JP (1) JP6462119B2 (ja)
KR (2) KR102490706B1 (ja)
CN (3) CN115665423A (ja)
AU (1) AU2014408223B2 (ja)
BR (1) BR112017004490B1 (ja)
CA (2) CA3186389A1 (ja)
MX (1) MX2017004210A (ja)
RU (1) RU2679981C2 (ja)
WO (1) WO2016049834A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015058397A1 (en) 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
CN105556971B (zh) 2014-03-04 2019-07-30 微软技术许可有限责任公司 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
CN105393537B (zh) 2014-03-04 2019-08-27 微软技术许可有限责任公司 用于基于散列的块匹配的散列表构建和可用性检查
US10681372B2 (en) 2014-06-23 2020-06-09 Microsoft Technology Licensing, Llc Encoder decisions based on results of hash-based block matching
CN115665423A (zh) 2014-09-30 2023-01-31 微软技术许可有限责任公司 用于视频编码的基于散列的编码器判定
EP4020991A1 (en) * 2014-12-26 2022-06-29 Sony Group Corporation Image processing apparatus and image processing method
US10462479B2 (en) * 2015-07-10 2019-10-29 Nec Corporation Motion picture encoding device, motion picture encoding method, and storage medium storing motion picture encoding program
CN105426413B (zh) * 2015-10-31 2018-05-04 华为技术有限公司 一种编码方法及装置
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US10192295B2 (en) * 2016-11-09 2019-01-29 AI Analysis, Inc. Methods and systems for normalizing images
US11095877B2 (en) * 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US10694205B2 (en) * 2017-12-18 2020-06-23 Google Llc Entropy coding of motion vectors using categories of transform blocks
CN108495139A (zh) * 2018-04-18 2018-09-04 北方工业大学 屏幕内容编码的哈希块匹配
CN109168001B (zh) * 2018-09-27 2021-02-12 苏州科达科技股份有限公司 视频场景变化的检测方法、装置及视频采集设备
US11469881B2 (en) * 2018-12-26 2022-10-11 Korea Institute Of Science And Technology Apparatus and method for forgery prevention of digital information
WO2020159994A1 (en) * 2019-01-28 2020-08-06 Op Solutions, Llc Online and offline selection of extended long term reference picture retention
CN113396592B (zh) * 2019-02-02 2023-11-14 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区管理
JP7384910B2 (ja) * 2019-02-02 2023-11-21 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのためのバッファ管理
CN117395439A (zh) * 2019-03-01 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于方向的预测
KR20210125506A (ko) 2019-03-04 2021-10-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리
CN111567044A (zh) * 2019-03-13 2020-08-21 北京大学 一种视频处理方法、装置、编码设备及解码设备
KR20230170800A (ko) 2019-07-06 2023-12-19 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 가상 예측 버퍼
KR102635519B1 (ko) 2019-07-10 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 샘플 식별
CN114097221B (zh) 2019-07-11 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的比特流一致性约束
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
US11956441B2 (en) * 2021-12-23 2024-04-09 Ati Technologies Ulc Identifying long term reference frame using scene detection and perceptual hashing
US20230334702A1 (en) * 2022-04-15 2023-10-19 Meta Platforms Technologies, Llc Hardware Encoder for Color Data in a 2D Rendering Pipeline
US11882295B2 (en) 2022-04-15 2024-01-23 Meta Platforms Technologies, Llc Low-power high throughput hardware decoder with random block access

Family Cites Families (240)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2239538A (en) 1939-03-30 1941-04-22 Zeiss Carl Fa Photographic teleobjective
US2718173A (en) 1950-09-26 1955-09-20 Cycloptic Anstalt Fur Optik Un High intensity five component photographic objective
US3059528A (en) 1957-07-02 1962-10-23 Allan Ted Panoramic motion picture camera
US3142236A (en) 1961-03-08 1964-07-28 American Optical Corp Cameras and high speed optical system therefor
CH486707A (de) 1968-06-14 1970-02-28 Voigtlaender Ag Lichtstarkes objektiv aus mindestens vier in Luft stehenden Gliedern vom erweiterten Triplet-typus
US5016980A (en) 1985-11-12 1991-05-21 Waldron Robert D Systems for deviating and (optionally) converging radiation
US4918583A (en) 1988-04-25 1990-04-17 Nikon Corporation Illuminating optical device
US5565921A (en) 1993-03-16 1996-10-15 Olympus Optical Co., Ltd. Motion-adaptive image signal processing system
US5610841A (en) 1993-09-30 1997-03-11 Matsushita Electric Industrial Co., Ltd. Video server
US5850312A (en) 1993-10-22 1998-12-15 Olympus Optical Co., Ltd. Three-unit zoom lens
JP3580869B2 (ja) 1994-09-13 2004-10-27 オリンパス株式会社 立体視内視鏡
US5613004A (en) 1995-06-07 1997-03-18 The Dice Company Steganographic method and device
US5774271A (en) 1996-07-29 1998-06-30 Welch Allyn, Inc. Lamp assembly
JP3869895B2 (ja) 1996-12-27 2007-01-17 キヤノン株式会社 防振機能を有した光学系
US7206346B2 (en) 1997-06-25 2007-04-17 Nippon Telegraph And Telephone Corporation Motion vector predictive encoding method, motion vector decoding method, predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs
US6904110B2 (en) 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6879266B1 (en) 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
JPH1166301A (ja) 1997-08-15 1999-03-09 Nippon Telegr & Teleph Corp <Ntt> カラー画像分類方法及び装置及びこの方法を記録した記録媒体
US6895048B2 (en) 1998-03-20 2005-05-17 International Business Machines Corporation Adaptive encoding of a sequence of still frames or partially still frames within motion video
US6332092B1 (en) 1998-07-08 2001-12-18 Lifespex, Incorporated Optical probe having and methods for uniform light irradiation and/or light collection over a volume
US6487440B2 (en) 1998-07-08 2002-11-26 Lifespex, Inc. Optical probe having and methods for difuse and uniform light irradiation
US6400764B1 (en) 1999-04-06 2002-06-04 Koninklijke Philips Electronics N. V. Motion estimation method featuring orthogonal-sum concurrent multi matching
US7216232B1 (en) 1999-04-20 2007-05-08 Nec Corporation Method and device for inserting and authenticating a digital signature in digital data
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US6671407B1 (en) 1999-10-19 2003-12-30 Microsoft Corporation System and method for hashing digital images
JP2001228401A (ja) 2000-02-16 2001-08-24 Canon Inc 投影光学系、および該投影光学系による投影露光装置、デバイス製造方法
GB0006153D0 (en) 2000-03-14 2000-05-03 Inpharmatica Ltd Database
CA2304433A1 (en) 2000-04-05 2001-10-05 Cloakware Corporation General purpose access recovery scheme
GB2364459B (en) 2000-06-30 2004-03-31 Nokia Mobile Phones Ltd Video error resilience
US6915387B1 (en) 2000-07-20 2005-07-05 Silicon Graphics, Inc. System and method for handling updates to memory in a distributed shared memory system
US6938128B1 (en) 2000-07-20 2005-08-30 Silicon Graphics, Inc. System and method for reducing memory latency during read requests
US6920175B2 (en) 2001-01-03 2005-07-19 Nokia Corporation Video coding architecture and methods for using same
US6765963B2 (en) 2001-01-03 2004-07-20 Nokia Corporation Video decoder architecture and method for using same
GB2375673A (en) 2001-05-14 2002-11-20 Salgen Systems Ltd Image compression method using a table of hash values corresponding to motion vectors
WO2003009277A2 (en) 2001-07-20 2003-01-30 Gracenote, Inc. Automatic identification of sound recordings
DE10158658A1 (de) 2001-11-30 2003-06-12 Bosch Gmbh Robert Verfahren zur gerichteten Prädiktion eines Bildblockes
US6819322B2 (en) * 2002-01-04 2004-11-16 Hewlett-Packard Development Company, L.P. Method and apparatus for detecting potential lock-up conditions in a video graphics controller
SG162623A1 (en) 2002-01-18 2010-07-29 Toshiba Kk Video encoding method and apparatus and video decoding method and apparatus
US6894289B2 (en) 2002-02-22 2005-05-17 Xenogen Corporation Fluorescence illumination assembly for an imaging apparatus
US6922246B2 (en) 2002-02-22 2005-07-26 Xenogen Corporation Bottom fluorescence illumination assembly for an imaging apparatus
JP3983573B2 (ja) 2002-03-06 2007-09-26 富士重工業株式会社 ステレオ画像特性検査システム
US6983020B2 (en) * 2002-03-25 2006-01-03 Citrix Online Llc Method and apparatus for fast block motion detection
JP4151374B2 (ja) 2002-03-29 2008-09-17 セイコーエプソン株式会社 動画像符号化装置および動画像符号化方法
AU2003238771A1 (en) * 2002-05-29 2003-12-19 Simon Butler Predictive interpolation of a video signal
US7400774B2 (en) 2002-09-06 2008-07-15 The Regents Of The University Of California Encoding and decoding of digital data using cues derivable at a decoder
US7523111B2 (en) 2002-12-02 2009-04-21 Silverbrook Research Pty Ltd Labelling of secret information
US20040174570A1 (en) 2002-12-02 2004-09-09 Plunkett Richard Thomas Variable size dither matrix usage
US7792121B2 (en) 2003-01-03 2010-09-07 Microsoft Corporation Frame protocol and scheduling system
JP4499370B2 (ja) 2003-04-04 2010-07-07 オリンパス株式会社 結像光学系及びそれを用いた撮像装置
DE10316428A1 (de) 2003-04-08 2004-10-21 Carl Zeiss Smt Ag Katadioptrisches Reduktionsobjektiv
HUP0301368A3 (en) 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
US8264489B2 (en) 2003-07-11 2012-09-11 Intel Corporation Interface remoting
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US20050060643A1 (en) 2003-08-25 2005-03-17 Miavia, Inc. Document similarity detection and classification system
US7349583B2 (en) 2003-09-05 2008-03-25 The Regents Of The University Of California Global motion estimation image coding and processing
JP5567246B2 (ja) 2003-10-27 2014-08-06 ザ ジェネラル ホスピタル コーポレイション 周波数ドメイン干渉測定を利用して光学撮像を実行する方法および装置
US20050105621A1 (en) 2003-11-04 2005-05-19 Ju Chi-Cheng Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof
EP1542053B1 (fr) 2003-12-11 2007-11-14 Tokendo Dispositif de métrologie pour sonde vidéoendoscopique
US20040133548A1 (en) 2003-12-15 2004-07-08 Alex Fielding Electronic Files Digital Rights Management.
US7095568B2 (en) 2003-12-19 2006-08-22 Victor Company Of Japan, Limited Image display apparatus
KR100995398B1 (ko) 2004-01-20 2010-11-19 삼성전자주식회사 수직 및 수평 방향의 패턴을 고려한 전역 움직임 보상순차주사화 방법
CN100440170C (zh) 2004-05-26 2008-12-03 英特尔公司 网络应用内的自动高速缓存生成
US7672005B1 (en) 2004-06-30 2010-03-02 Teradici Corporation Methods and apparatus for scan block caching
US20060062303A1 (en) 2004-09-17 2006-03-23 Sony Corporation Hybrid global motion estimator for video encoding
US7526607B1 (en) 2004-09-23 2009-04-28 Juniper Networks, Inc. Network acceleration and long-distance pattern detection using improved caching and disk mapping
CA2584121C (en) 2004-10-15 2014-08-19 The Regents Of The University Of Colorado, A Body Corporate Revocable biometrics with robust distance metrics
JP2006265087A (ja) 2004-12-13 2006-10-05 Ohara Inc 光学素子用プリフォーム
KR100677548B1 (ko) 2004-12-31 2007-02-02 삼성전자주식회사 복호된 영상의 오류 재은닉 방법 및 그 장치
US20060153295A1 (en) 2005-01-12 2006-07-13 Nokia Corporation Method and system for inter-layer prediction mode coding in scalable video coding
US20060224594A1 (en) 2005-04-04 2006-10-05 Oracle International Corporation Methods and systems for identifying highly contended blocks in a database
CN100484233C (zh) 2005-06-03 2009-04-29 中国科学院研究生院 数字电视信号安全认证装置及带有该装置的电视设备
KR100716999B1 (ko) 2005-06-03 2007-05-10 삼성전자주식회사 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치
US8107527B1 (en) 2005-07-28 2012-01-31 Teradici Corporation Progressive block encoding using region analysis
US7822278B1 (en) 2005-09-20 2010-10-26 Teradici Corporation Methods and apparatus for encoding a digital video signal
US8787460B1 (en) 2005-07-28 2014-07-22 Teradici Corporation Method and apparatus for motion vector estimation for an image sequence
US20070025442A1 (en) 2005-07-28 2007-02-01 Sanyo Electric Co., Ltd. Coding method for coding moving images
KR101211665B1 (ko) 2005-08-12 2012-12-12 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
JP4815944B2 (ja) 2005-08-19 2011-11-16 富士ゼロックス株式会社 ホログラム記録方法及び装置
JP2007066191A (ja) * 2005-09-01 2007-03-15 Toshiba Corp 再生装置および再生方法
FR2891685B1 (fr) 2005-10-03 2008-04-18 Envivio France Entpr Uniperson Procede et dispositif d'estimation de mouvement a references multiples, procede et dispositif de codage, produits programme d'ordinateur et moyens de stockage correspondants.
EP1949270B1 (en) 2005-10-12 2011-04-06 Datacastle Corporation Method and system for data backup
US7702127B2 (en) 2005-10-21 2010-04-20 Microsoft Corporation Video fingerprinting using complexity-regularized video watermarking by statistics quantization
RU2298226C1 (ru) * 2005-10-28 2007-04-27 Самсунг Электроникс Ко., Лтд. Способ улучшения цифровых изображений
GB2431798A (en) 2005-10-31 2007-05-02 Sony Uk Ltd Motion vector selection based on integrity
US7986844B2 (en) 2005-11-22 2011-07-26 Intel Corporation Optimized video compression using hashing function
US20070199011A1 (en) * 2006-02-17 2007-08-23 Sony Corporation System and method for high quality AVC encoding
US20070217702A1 (en) 2006-03-14 2007-09-20 Sung Chih-Ta S Method and apparatus for decoding digital video stream
US7949186B2 (en) 2006-03-15 2011-05-24 Massachusetts Institute Of Technology Pyramid match kernel and related techniques
KR100763917B1 (ko) 2006-06-21 2007-10-05 삼성전자주식회사 고속으로 움직임을 추정하는 방법 및 장치
US7636824B1 (en) 2006-06-28 2009-12-22 Acronis Inc. System and method for efficient backup using hashes
DE102006045565B3 (de) 2006-08-04 2008-06-26 Leica Camera Ag Weitwinkel-Aufstecksucher an Messsucherkameras für fotografische Aufnahmen mit unterschiedlichen Brennweiten
US7747584B1 (en) 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
US8099415B2 (en) 2006-09-08 2012-01-17 Simply Hired, Inc. Method and apparatus for assessing similarity between online job listings
GB0618057D0 (en) 2006-09-14 2006-10-25 Perkinelmer Ltd Improvements in and relating to scanning confocal microscopy
US8443398B2 (en) * 2006-11-01 2013-05-14 Skyfire Labs, Inc. Architecture for delivery of video content responsive to remote interaction
KR101175593B1 (ko) * 2007-01-18 2012-08-22 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 화질 스케일러블 비디오 데이터 스트림
US8320683B2 (en) 2007-02-13 2012-11-27 Sharp Kabushiki Kaisha Image processing method, image processing apparatus, image reading apparatus, and image forming apparatus
US20080212687A1 (en) 2007-03-02 2008-09-04 Sony Corporation And Sony Electronics Inc. High accurate subspace extension of phase correlation for global motion estimation
US8494234B1 (en) 2007-03-07 2013-07-23 MotionDSP, Inc. Video hashing system and method
JP4755624B2 (ja) 2007-04-23 2011-08-24 ルネサスエレクトロニクス株式会社 動き補償装置
US8817878B2 (en) 2007-11-07 2014-08-26 Broadcom Corporation Method and system for motion estimation around a fixed reference vector using a pivot-pixel approach
KR101365444B1 (ko) 2007-11-19 2014-02-21 삼성전자주식회사 영상의 해상도의 조정을 통하여 동영상을 효율적으로부호화/복호화하는 방법 및 장치
EP2220869A1 (en) 2007-12-21 2010-08-25 Telefonaktiebolaget LM Ericsson (publ) Improved pixel prediction for video coding
US8213515B2 (en) 2008-01-11 2012-07-03 Texas Instruments Incorporated Interpolated skip mode decision in video compression
KR101446771B1 (ko) 2008-01-30 2014-10-06 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
US8681870B2 (en) * 2008-02-14 2014-03-25 Nec Corporation Motion vector detection device
JP2009230537A (ja) 2008-03-24 2009-10-08 Olympus Corp 画像処理装置、画像処理プログラム、画像処理方法、および、電子機器
WO2009143120A2 (en) 2008-05-19 2009-11-26 Citrix Systems, Inc. Systems and methods for enhanced image encoding
US8527482B2 (en) 2008-06-06 2013-09-03 Chrysalis Storage, Llc Method for reducing redundancy between two or more datasets
GB2460844B (en) * 2008-06-10 2012-06-06 Half Minute Media Ltd Automatic detection of repeating video sequences
CN102292774B (zh) 2008-06-30 2014-07-02 富士通半导体股份有限公司 存储器装置以及控制该存储器装置的存储器控制器
US8515123B2 (en) 2008-07-03 2013-08-20 Verimatrix, Inc. Efficient watermarking approaches of compressed media
US9235577B2 (en) 2008-09-04 2016-01-12 Vmware, Inc. File transfer using standard blocks and standard-block identifiers
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
WO2010038857A1 (ja) 2008-10-02 2010-04-08 ソニー株式会社 画像処理装置および方法
EP2351288B1 (en) 2008-10-23 2014-12-10 University Of Ulster An encryption method
US20100119170A1 (en) 2008-11-07 2010-05-13 Yahoo! Inc. Image compression by comparison to large database
US20100166073A1 (en) 2008-12-31 2010-07-01 Advanced Micro Devices, Inc. Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
US8599929B2 (en) 2009-01-09 2013-12-03 Sungkyunkwan University Foundation For Corporate Collaboration Distributed video decoder and distributed video decoding method
WO2010086548A1 (fr) 2009-01-28 2010-08-05 France Telecom Procede et dispositif de codage d'une image, procede et dispositif de decodage, et programmes d'ordinateur correspondants
US8345994B2 (en) 2009-02-02 2013-01-01 Calgary Scientific Inc. Image data transmission
KR101660558B1 (ko) 2009-02-03 2016-09-27 톰슨 라이센싱 비트 깊이 스케일리빌리티에서 스무드 참조 프레임에 의한 모션 보상을 하는 방법들 및 장치
US7868792B2 (en) 2009-02-05 2011-01-11 Polytechnic Institute Of New York University Generating a boundary hash-based hierarchical data structure associated with a plurality of known arbitrary-length bit strings and using the generated hierarchical data structure for detecting whether an arbitrary-length bit string input matches one of a plurality of known arbitrary-length bit springs
US8838824B2 (en) 2009-03-16 2014-09-16 Onmobile Global Limited Method and apparatus for delivery of adapted media
US9113169B2 (en) 2009-05-07 2015-08-18 Qualcomm Incorporated Video encoding with temporally constrained spatial dependency for localized decoding
US8724707B2 (en) 2009-05-07 2014-05-13 Qualcomm Incorporated Video decoding using temporally constrained spatial dependency
US8355585B2 (en) 2009-05-12 2013-01-15 Red Hat Israel, Ltd. Data compression of images using a shared dictionary
US8694547B2 (en) 2009-07-07 2014-04-08 Palo Alto Research Center Incorporated System and method for dynamic state-space abstractions in external-memory and parallel graph search
JP2011024066A (ja) 2009-07-17 2011-02-03 Sony Corp 画像処理装置および方法
KR101712097B1 (ko) 2009-08-19 2017-03-03 삼성전자 주식회사 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치
US8345750B2 (en) 2009-09-02 2013-01-01 Sony Computer Entertainment Inc. Scene change detection
US8411750B2 (en) 2009-10-30 2013-04-02 Qualcomm Incorporated Global motion parameter estimation using block-based motion vectors
US8633838B2 (en) 2010-01-15 2014-01-21 Neverfail Group Limited Method and apparatus for compression and network transport of data in support of continuous availability of applications
CA2787696A1 (en) 2010-01-22 2011-07-28 Adam Wax Multiple window processing schemes for spectroscopic optical coherence tomography (oct) and fourier domain low coherence interferometry
US9794556B2 (en) 2010-02-17 2017-10-17 Electronics And Telecommunications Research Institute Method and device for simplifying encoding and decoding of ultra-high definition images
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
EP2365456B1 (en) 2010-03-11 2016-07-20 CompuGroup Medical SE Data structure, method and system for predicting medical conditions
US8442942B2 (en) 2010-03-25 2013-05-14 Andrew C. Leppard Combining hash-based duplication with sub-block differencing to deduplicate data
US8619857B2 (en) 2010-04-09 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
EP2559239A2 (en) 2010-04-13 2013-02-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus for intra predicting a block, apparatus for reconstructing a block of a picture, apparatus for reconstructing a block of a picture by intra prediction
WO2011127961A1 (en) 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V. Adaptive image filtering method and apparatus
KR20110123651A (ko) 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
JP5668059B2 (ja) 2010-06-01 2015-02-12 Hoya株式会社 内視鏡用対物レンズ、及び内視鏡
US8417039B2 (en) 2010-06-03 2013-04-09 Microsoft Corporation Motion detection techniques for improved image remoting
CN101866366B (zh) * 2010-07-15 2012-01-18 哈尔滨工业大学 一种基于内容的图像格式中文文档检索方法
GB2483294B (en) 2010-09-03 2013-01-02 Canon Kk Method and device for motion estimation of video data coded according to a scalable coding structure
JP5500257B2 (ja) 2010-09-30 2014-05-21 日本電気株式会社 ストレージシステム
KR102034004B1 (ko) * 2010-10-08 2019-10-18 지이 비디오 컴프레션, 엘엘씨 블록 분할 및 블록 병합을 지원하는 픽처 코딩
KR102126374B1 (ko) 2010-11-04 2020-06-24 지이 비디오 컴프레션, 엘엘씨 블록 병합 및 스킵 모드를 지원하는 화상 코딩
WO2012072637A1 (en) 2010-12-01 2012-06-07 Ibbt Method and device for correlation channel estimation
US20120170653A1 (en) 2010-12-30 2012-07-05 General Instrument Corporation Block based sampling coding systems
KR20220070072A (ko) 2011-02-09 2022-05-27 엘지전자 주식회사 움직임 정보 저장 방법 및 이를 이용한 시간적 움직임 벡터 예측자 유도 방법
KR102287971B1 (ko) 2011-02-09 2021-08-09 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
KR20120095610A (ko) 2011-02-21 2012-08-29 삼성전자주식회사 다시점 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치
CN103416064A (zh) 2011-03-18 2013-11-27 索尼公司 图像处理设备、图像处理方法和程序
WO2012128068A1 (ja) 2011-03-18 2012-09-27 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
US8480743B2 (en) 2011-03-25 2013-07-09 Vicente Vanaclocha Vanaclocha Universal disc prosthesis
JP5914888B2 (ja) * 2011-04-28 2016-05-11 パナソニックIpマネジメント株式会社 高画質化に関わる記録媒体、再生装置、記録装置、符号化方法、復号化方法
US8582886B2 (en) 2011-05-19 2013-11-12 Microsoft Corporation Compression of text contents for display remoting
JP5942990B2 (ja) 2011-05-27 2016-06-29 ソニー株式会社 画像処理装置および方法
US9167020B2 (en) 2011-06-10 2015-10-20 Microsoft Technology Licensing, Llc Web-browser based desktop and application remoting solution
US8644620B1 (en) 2011-06-21 2014-02-04 Google Inc. Processing of matching regions in a stream of screen images
US11496760B2 (en) 2011-07-22 2022-11-08 Qualcomm Incorporated Slice header prediction for depth maps in three-dimensional video codecs
US9521418B2 (en) 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
JP5651560B2 (ja) 2011-09-07 2015-01-14 日本放送協会 動きベクトル予測装置、符号化装置、復号装置、及びこれらのプログラム
US10031636B2 (en) 2011-09-08 2018-07-24 Microsoft Technology Licensing, Llc Remoting desktop displays using move regions
US9351808B2 (en) 2011-09-27 2016-05-31 Sharon M. E. McCarthy Apparatus for removing dental appliance and dental system
GB2495301B (en) 2011-09-30 2018-01-17 Advanced Risc Mach Ltd Method of and apparatus for encoding data
US9357235B2 (en) 2011-10-13 2016-05-31 Qualcomm Incorporated Sample adaptive offset merged with adaptive loop filter in video coding
US9609217B2 (en) 2011-11-02 2017-03-28 Mediatek Inc. Image-based motion sensor and related multi-purpose camera system
US9332271B2 (en) 2011-11-03 2016-05-03 Cisco Technology, Inc. Utilizing a search scheme for screen content video coding
KR101616010B1 (ko) * 2011-11-04 2016-05-17 구글 테크놀로지 홀딩스 엘엘씨 비균일 움직임 벡터 그리드에 대한 움직임 벡터 스케일링
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US10003817B2 (en) * 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
EP2781091B1 (en) 2011-11-18 2020-04-08 GE Video Compression, LLC Multi-view coding with efficient residual handling
KR101874100B1 (ko) 2011-12-02 2018-07-04 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US9262986B2 (en) 2011-12-07 2016-02-16 Cisco Technology, Inc. Reference frame management for screen content video coding using hash or checksum functions
US9223534B1 (en) 2011-12-30 2015-12-29 hopTo Inc. Client side detection of motion vectors for cross-platform display
US20140003494A1 (en) 2012-01-05 2014-01-02 Yaniv Frishman Device, system and method of video encoding
US9235313B2 (en) 2012-01-11 2016-01-12 Google Inc. Efficient motion estimation for remote desktop sharing
US9380320B2 (en) 2012-02-10 2016-06-28 Broadcom Corporation Frequency domain sample adaptive offset (SAO)
US20130258052A1 (en) 2012-03-28 2013-10-03 Qualcomm Incorporated Inter-view residual prediction in 3d video coding
US20130268621A1 (en) 2012-04-08 2013-10-10 Broadcom Corporation Transmission of video utilizing static content information from video source
US9154749B2 (en) 2012-04-08 2015-10-06 Broadcom Corporation Power saving techniques for wireless delivery of video
US9286862B2 (en) 2012-04-09 2016-03-15 Oracle International Corporation System and method for detecting a scrolling event during a client display update
US9123084B2 (en) * 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
US20130271565A1 (en) 2012-04-16 2013-10-17 Qualcomm Incorporated View synthesis based on asymmetric texture and depth resolutions
US9549180B2 (en) 2012-04-20 2017-01-17 Qualcomm Incorporated Disparity vector generation for inter-view prediction for video coding
AU2012202352A1 (en) 2012-04-20 2013-11-07 Canon Kabushiki Kaisha Method, system and apparatus for determining a hash code representing a portion of an image
US9979959B2 (en) 2012-04-20 2018-05-22 Qualcomm Incorporated Video coding with enhanced support for stream adaptation and splicing
US9479776B2 (en) 2012-07-02 2016-10-25 Qualcomm Incorporated Signaling of long-term reference pictures for video coding
WO2014011595A1 (en) 2012-07-09 2014-01-16 Vid Scale, Inc. Codec architecture for multiple layer video coding
US9264713B2 (en) 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
US9277237B2 (en) 2012-07-30 2016-03-01 Vmware, Inc. User interface remoting through video encoding techniques
US9467692B2 (en) 2012-08-31 2016-10-11 Qualcomm Incorporated Intra prediction improvements for scalable video coding
US9565452B2 (en) 2012-09-28 2017-02-07 Qualcomm Incorporated Error resilient decoding unit association
CN103841426B (zh) 2012-10-08 2017-04-26 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
CN103916673B (zh) * 2013-01-06 2017-12-22 华为技术有限公司 基于双向预测的编码方法、解码方法和装置
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US9473779B2 (en) * 2013-03-05 2016-10-18 Qualcomm Incorporated Parallel processing for video coding
KR20140110221A (ko) * 2013-03-06 2014-09-17 삼성전자주식회사 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법
US9201642B2 (en) 2013-03-15 2015-12-01 International Business Machines Corporation Extending platform trust during program updates
US11317123B2 (en) 2013-04-25 2022-04-26 Vmware, Inc. Systems and methods for using pre-calculated block hashes for image block matching
CN104142939B (zh) 2013-05-07 2019-07-02 杭州智棱科技有限公司 一种基于运动特征信息匹配特征码的方法与设备
CN103281538B (zh) 2013-06-06 2016-01-13 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法
US9210434B2 (en) 2013-06-12 2015-12-08 Microsoft Technology Licensing, Llc Screen map and standards-based progressive codec for screen content coding
US20140369413A1 (en) * 2013-06-18 2014-12-18 Vmware, Inc. Systems and methods for compressing video data using image block matching
US10812694B2 (en) 2013-08-21 2020-10-20 Faro Technologies, Inc. Real-time inspection guidance of triangulation scanner
US20150063451A1 (en) 2013-09-05 2015-03-05 Microsoft Corporation Universal Screen Content Codec
JP6212345B2 (ja) 2013-10-02 2017-10-11 ルネサスエレクトロニクス株式会社 動画像符号化装置およびその動作方法
WO2015058397A1 (en) 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
KR20160075705A (ko) 2013-10-25 2016-06-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩에서의 해시 기반 블록 매칭
CN105393537B (zh) 2014-03-04 2019-08-27 微软技术许可有限责任公司 用于基于散列的块匹配的散列表构建和可用性检查
CN105556971B (zh) 2014-03-04 2019-07-30 微软技术许可有限责任公司 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
CN105359531B (zh) 2014-03-17 2019-08-06 微软技术许可有限责任公司 用于针对屏幕内容编码的编码器侧判定的方法和系统
US9715559B2 (en) 2014-03-17 2017-07-25 Qualcomm Incorporated Hash-based encoder search for intra block copy
US10091512B2 (en) 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
US10681372B2 (en) 2014-06-23 2020-06-09 Microsoft Technology Licensing, Llc Encoder decisions based on results of hash-based block matching
WO2016018422A1 (en) 2014-07-31 2016-02-04 Hewlett-Packard Development Company, L.P. Virtual changes to a real object
CN115665423A (zh) 2014-09-30 2023-01-31 微软技术许可有限责任公司 用于视频编码的基于散列的编码器判定
GB2531811B (en) 2014-11-03 2021-02-17 Sony Europe Bv A method, system and apparatus for providing improved audience participation
CN104574440A (zh) 2014-12-30 2015-04-29 安科智慧城市技术(中国)有限公司 一种视频运动目标跟踪方法及装置
US10681326B2 (en) 2016-05-19 2020-06-09 AVAGO TECHNOLOGlES INTERNATIONAL SALES PTE. LIMITED 360 degree video system with coordinate compression
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US20180196609A1 (en) 2017-01-12 2018-07-12 Qualcomm Incorporated Data Deduplication Using Multi-Chunk Predictive Encoding
WO2018164955A1 (en) 2017-03-06 2018-09-13 Rivetz Corp. Device enrollment protocol
US10992939B2 (en) 2017-10-23 2021-04-27 Google Llc Directional intra-prediction coding
US10848782B2 (en) 2018-09-21 2020-11-24 Tencent America LLC Method and apparatus for video coding
US11146800B2 (en) 2018-09-24 2021-10-12 Tencent America LLC Low latency local illumination compensation
US11509919B2 (en) 2018-10-17 2022-11-22 Tencent America Reference sample memory size restrictions for intra block copy
US10917493B2 (en) 2018-10-19 2021-02-09 Bby Solutions, Inc. Dynamic edge cache content management
US10701385B1 (en) 2019-01-13 2020-06-30 Tencent America LLC Method and apparatus for reference sample memory reuse for intra picture block compensation
US10771799B2 (en) 2019-01-15 2020-09-08 Tencent America LLC Method and apparatus for video coding
US10958904B2 (en) 2019-02-01 2021-03-23 Tencent America LLC Method and apparatus for video coding
US11252442B2 (en) 2019-04-08 2022-02-15 Tencent America LLC Method and apparatus for video coding
US11363279B2 (en) 2019-04-15 2022-06-14 Tencent America LLC Method and apparatus in video coding with flexible coding order
US11930159B2 (en) 2019-11-29 2024-03-12 Intel Corporation Method and system of video coding with intra block copying
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks

Also Published As

Publication number Publication date
KR102490706B1 (ko) 2023-01-19
US20230345013A1 (en) 2023-10-26
RU2017110461A3 (ja) 2018-10-04
RU2017110461A (ru) 2018-10-04
CN105981382A (zh) 2016-09-28
KR20220019297A (ko) 2022-02-16
EP3416386B1 (en) 2021-01-13
US11736701B2 (en) 2023-08-22
EP3202142A1 (en) 2017-08-09
CN110582001A (zh) 2019-12-17
EP3202142A4 (en) 2018-02-28
EP3416386A1 (en) 2018-12-19
KR102358276B1 (ko) 2022-02-04
EP3389276A1 (en) 2018-10-17
KR20170063895A (ko) 2017-06-08
WO2016049834A1 (en) 2016-04-07
CA3186389A1 (en) 2016-04-07
US20170302936A1 (en) 2017-10-19
JP2017535148A (ja) 2017-11-24
CN105981382B (zh) 2019-05-28
CN115665423A (zh) 2023-01-31
EP3389276B1 (en) 2021-01-13
CA2961089A1 (en) 2016-04-07
BR112017004490A2 (pt) 2017-12-05
EP3202142B1 (en) 2020-11-11
CN110582001B (zh) 2022-10-14
US20210218974A1 (en) 2021-07-15
CA2961089C (en) 2023-03-28
MX2017004210A (es) 2017-11-15
AU2014408223B2 (en) 2019-12-05
US11025923B2 (en) 2021-06-01
AU2014408223A1 (en) 2017-03-16
BR112017004490B1 (pt) 2023-03-14
RU2679981C2 (ru) 2019-02-14

Similar Documents

Publication Publication Date Title
JP6462119B2 (ja) コンピューティングデバイス
JP6931690B2 (ja) コンテンツをエンコードする方法及び計算装置
US10136140B2 (en) Encoder-side decisions for screen content encoding
KR102287779B1 (ko) 해시 기반의 블록 매칭의 결과에 기초한 인코더 결정
KR102185245B1 (ko) 해시 기반 블록 매칭을 위한 해시 테이블 구성 및 이용가능성 검사
EP3114841B1 (en) Encoder-side decisions for block flipping and skip mode in intra block copy prediction
KR20160075705A (ko) 비디오 및 이미지 코딩에서의 해시 기반 블록 매칭

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170901

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180920

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181226

R150 Certificate of patent or registration of utility model

Ref document number: 6462119

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