【文献】
Benjamin Bross et al.,High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Last Call),Joint Collaborative Team on Video Coding (JCT-VC) 12th Meeting: Geneva,2013年 3月19日,JCTVC-L1003_v34
(58)【調査した分野】(Int.Cl.,DB名)
前記効率尺度が満たされているときに、前記メディアエンコーダは、回転対称ブロックの前記対を、前記複数のブロックのうちの少なくともいくつかから生成される回転対称ブロックの複数の対を含むデータセットに追加するように適合される請求項1に記載の装置。
前記効率尺度が満たされないときに、前記メディアエンコーダは、前記細分されたブロックを繰り返し細分して複数の追加の細分されたブロックにし、前記複数の追加の細分されたブロックの各々について繰り返し細分する処理を繰り返す請求項1または2に記載の装置。
前記メディアエンコーダは、複数の異なる回転対称マスクを含む回転対称マスクライブラリから前記回転対称マスクを選択するように適合される請求項1から4のいずれか一項に記載の装置。
前記メディアエンコーダは、回転対称ブロックのそれぞれの前記対を生成するために使用されるそれぞれの前記回転対称マスクに従って選択された空間的予測因子を使用して前記複数の変換係数の各々を符号化するようにさらに適合される請求項1から5のいずれか一項に記載の装置。
前記メディアエンコーダは、特定のそれぞれの運動ベクトルを使用して各回転対称ブロックを独立して符号化するようにさらに適合され、各それぞれの運動ベクトルは、前記回転対称ブロックの各それぞれの部分に従って選択される請求項1から6のいずれか一項に記載の装置。
前記メディアエンコーダは、回転対称ブロックのそれぞれの前記対を生成するために使用されるそれぞれの前記回転対称マスクに従って選択されたエントロピーコンテキストモデルを使用して前記複数の変換係数の各々を符号化するようにさらに適合される請求項1から7のいずれか一項に記載の装置。
前記メディアエンコーダは、少なくとも1つの効率基準に基づき前記回転対称マスクライブラリから前記回転対称マスクを選択するようにさらに適合される請求項1から8のいずれか一項に記載の装置。
前記メディアエンコーダは、前記細分されたブロックの別のサイズについて各々定義されている複数の回転対称マスクライブラリから前記回転対称マスクライブラリを選択するようにさらに適合される請求項1から9のいずれか一項に記載の装置。
前記メディアエンコーダは、複数のゼロ係数をスキップしながら前記複数の変換係数をスキャンすることによって前記複数の変換係数を符号化するようにさらに適合される請求項12に記載の装置。
前記メディアエンコーダは、最後の変換係数の座標を前記符号化の一部としてデータセット内に記憶することによって前記複数の変換係数を符号化するようにさらに適合される請求項12から14のいずれか一項に記載の装置。
前記メディアエンコーダは、前記複数の変換係数が構成されたその行列上で実行された前記係数スキャンの順序に従って前記複数の変換係数の非ゼロ値をシフトして、前記最後の変換係数の位置のサイズを縮小するようにさらに適合される請求項15に記載の装置。
【発明を実施するための形態】
【0058】
本発明のいくつかの実施形態の一態様は、フレームまたはその一部のブロックを符号化するために変換係数のセットを生成するための方法および/またはシステムに関するものであり、符号化は特定の選択された回転対称マスクに基づきブロックを分割することによって得られる2つの相補的部分上で実行される。フレームのブロックは、効率尺度に基づき評価され、それにより、本明細書で説明されているシステムおよび/または方法に基づきブロックをいつ分割し符号化するか、ならびにたとえば、他の画像および/またはビデオ圧縮方法に基づき、標準に基づきブロックの処理をいつ継続するかを決定する。これらの方法および/またはシステムは、画質を著しく落とすことなく、ブロックの圧縮率を改善することによって、ブロックを記憶し、および/または送信するために必要なサイズ(たとえば、ビット数)を低減する。画質低減は、本明細書で説明されている方法なしで標準的な方法を使用して画質低減に対する事前定義された許容可能な限度内にあり、および/またはそれに類似しており、たとえば、画質を定義するための客観的尺度としてピーク信号対雑音比(PSNR)が使用され得る。効率尺度は、標準ベースの方法に勝る性能の改善のために分割が期待されるときにブロックを分割し(マスクを使用して)、符号化するために評価され得る。効率尺度が満たされていないときに、ブロックは、全体が処理され得るか(たとえば、標準に基づき)、またはサブブロックに分割されるものとしてよく、これらのサブブロックはそれぞれの効率尺度に基づき再評価される。効率尺度は、そうすることがシステム性能を改善すると期待されるときにマスクを使用してブロックを分割することによって改善されたシステム性能(たとえば、効率、メモリリソース、および/または処理リソースに関して)実現する。
【0059】
本明細書で説明されているように、フレームまたは画像という用語は、フレームの一部または画像の一部を指す。変換係数は、フレーム(および/または画像)全体について、および/またはフレーム(および/または画像)の一部について計算されるものとしてよく、たとえば、変換係数は、シーケンス、スライス、最小符号化単位(MCU、たとえば、JPEGもしくは他の標準によって定義されているような)、ブロック(たとえば、HVECもしくは他の標準によって定義されているような)、および/またはタイル(たとえば、フレームの一部分、たとえば、圧縮HEVCもしくは他の標準によって定義されているような)について計算される。処理されるフレームまたはその一部は、選択されたモードを表す送信ビットストリーム内の信号に基づき得る。
【0060】
適宜、各ブロック(または標準ベースのブロック分割からのサブブロック)は、効率尺度に基づき独立して評価される。フレーム(またはその一部)において、いくつかのブロックは、本明細書で説明されているシステムおよび/または方法に基づき符号化され、他のブロックは、標準ベースの圧縮方法および/または他の方法に基づき符号化され得る。本明細書において説明されているシステムおよび/または方法に基づくブロックの符号化は、他の標準ベースの画像および/またはビデオ圧縮方法と統合され、これにより、標準に勝る性能改善をさらにもたらす(たとえば、圧縮性能および/またはリソース利用)。
【0061】
これらの方法および/またはシステムは、ブロックに対する好適な回転対称マスクを選択し、マスクに基づきブロックを2つの相補的部分に分割し、それらの部分の各々から一対の回転対称ブロックを生成し、回転対称ブロックのうちの一方または両方に対する変換係数を計算することにより、ブロックを符号化するためのエンコーダを備える。エンコーダは、効率尺度に基づきブロックを評価し得る。
【0062】
これらの方法および/またはシステムは、変換係数を復号し、ブロックを再構成するためのデコーダを備える。変換係数は、回転対称ブロックの対を再構成するように復号される。この対の各メンバーは、2つの相補的部分のうちのそれぞれ一方に変換されて戻される(たとえば、逆変換計算に基づき)。これら2つの相補的部分は接続され戻されて一緒にされブロックを形成するが、これは回転対称マスクによってガイドされる。
【0063】
明確にするために、エンコーダの詳細がここで説明される。各説明されている符号化機能および/または構造について、対応する復号機能および/または構造が暗示されている。簡潔にし、明確にするために、符号化機能および/または構造要素に対応する復号機能および/または構造要素は説明から省略されている。
【0064】
適宜、マスクは、ブロックを、ブロック全体の圧縮と比較して、またはブロックに対する標準的な分割方法の圧縮と比較してより圧縮率の高い2つの相補的部分に分割するように選択される(たとえば、4つの正方形、たとえば、高効率ビデオ符号化(HEVC)および/またはH.265標準で定義されているように)。
【0065】
適宜、マスクは、ブロックの画像内の1つまたは複数の視覚的特徴に基づきブロックを分割するように選択される。ブロックは、視覚的特徴、たとえば、ブロックを横切って示されている傾いた線またはエッジによって分離された異なるタイプのコンテンツを含み得る。マスクは、ブロックがその視覚的特徴と異なる配置で分割されるときに形成されるのと比べて各々互いにより均一である(すなわち、各々コンテンツのタイプのうちの1つを一般的に示す)2つの相補的部分を生成するように実質的に視覚的特徴に沿ってブロックを、たとえば、HEVC標準によって指定されているように4つの等しいブロックに分割するものとしてよい。
【0066】
適宜、異なるブロックに対して異なるマスクが選択される。マスクは、たとえば、ブロック内のコンテンツに基づき、ブロックに対して独立して選択され得る。各ブロックの圧縮は、カスタマイズされたマスク選択によって改善される。
【0067】
各それぞれのブロックに適用される各それぞれのマスクは、それぞれのブロックについて計算された変換係数のセットに関連付けられる。たとえば、各ブロックに使用されるマスクは、計算された変換係数とともに送信され、および/またはどのマスク(たとえば、可能なマスクのライブラリからの)が変換係数に関連付けられていることを指示する信号が送信される。
【0068】
マスクは、回転対称であるという特性を有する。適宜、マスクは、ブロックの形状、および分割がブロックの中心に関してブロックの180度回転の下で不変であるように2つの相補的部分へのブロックの分割を定義する。マスクは、バイナリマスク(本明細書で説明されているような)であってよい。回転対称は、好適な直交変換方法、たとえば、2D離散コサイン変換(DCT)を使用して直交変換係数の計算を2次元で行うことを可能にする。直交変換係数は、非直交変換係数に比べてより効率的に圧縮される。
【0069】
2つの相補的部分の各1つは、ブロックのそれぞれの部分内の元の画像コンテンツの2次元トポロジーを保持し、同じ画像の再構成を可能にする。
【0070】
適宜、回転対称ブロックの対の各メンバーは、独立した空間的および/または時間的予測因子を使用して符号化される。各メンバーの独立予測因子ベースの符号化は、全体として事前分割されたブロックの予測因子ベースの符号化に勝る性能改善を生み出し得る。
【0071】
適宜、回転対称ブロックの対の各メンバーについて計算された変換係数は、係数スキャン方法に基づき符号化され、この方法は、(i)離散直交変換のいくつかのセットによって得られる回転対称特性と、(ii)ブロックの2つの相補的部分のうちの各1つに適用される回転対称概念とに基づき生成されるゼロ係数をスキップする。係数スキャン方法は、適用されるマスクに基づき選択され得る。対の各メンバーの残っているスキップされていない非ゼロ係数は、独立コンテキストモデルに基づきエントロピー符号化され得る。ゼロ係数をスキップすることで、ゼロデータを取り除くことによって、符号化性能が改善される。
【0072】
本発明の少なくとも1つの実施形態を詳しく説明する前に、本発明が、その応用例において、以下の説明で述べられ、および/または図面および/または例に示されている構造の詳細および構成要素および/または方法の配置構成に必ずしも制限されないことは理解されるであろう。本発明は、他の実施形態を利用することができるか、またはさまざまな仕方で実施されるか、または実行され得る。
【0073】
本発明は、システム、方法、および/またはコンピュータプログラム製品であってよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令が収められているコンピュータ可読ストレージ媒体(またはメディア)を備え得る。
【0074】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読ストレージ媒体は、たとえば、限定はしないが、電子ストレージデバイス、磁気ストレージデバイス、光学式ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、または前記デバイスの任意の適当な組合せであり得る。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブルコンピュータ用ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラム可能リードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブル・コンパクト・ディスク・リードオンリー・メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピィディスク、および前記の任意の好適な組合せを含む。本明細書で使用されているような、コンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(たとえば、光ファイバーケーブルを通過する光パルス)、または電線を通して伝送される電気信号など、本質的に一時的信号であると解釈されるべきでない。
【0075】
本明細書で説明されているコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、たとえば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはワイヤレスネットワークを介して外部コンピュータもしくは外部ストレージデバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含み得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0076】
本発明のオペレーションを実行するためのコンピュータ可読プログラム命令は、Smalltalk、C++、または同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの伝統的な手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはソースコードもしくはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行してもよいし、部分的にユーザのコンピュータ上で実行してもよいし、独立型ソフトウェアパッケージとして実行してもよいし、一部はユーザのコンピュータ上で、一部はリモートコンピュータ上で実行するか、または完全にリモートコンピュータもしくはサーバ上で実行してもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続されるか、または接続は、外部コンピュータに対して(たとえば、インターネットサービスプロバイダを用いてインターネットを介して)行われてもよい。いくつかの実施形態において、たとえば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む、電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによってコンピュータ可読プログラム命令を実行し得る。
【0077】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図解および/またはブロック図を参照しつつ本明細書において説明されている。フローチャートおよび/またはブロック図の各ブロック、ならびにフローチャートおよび/またはブロック図中のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることは理解されるであろう。
【0078】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されて機械を生成して、その命令が、そのコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されて、フローチャートおよび/またはブロック図の1つまたは複数のブロックに指定される機能/作用を実施するための手段を生成するようにすることができる。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブルデータ処理装置、および/または他のデバイスに特定の方式で機能することを指令することができるコンピュータ可読ストレージ媒体にも記憶されるものとしてよく、それにより、命令が記憶されているコンピュータ可読ストレージ媒体は、フローチャートおよび/またはブロック図の1つまたは複数のブロックにおいて指定されている機能/活動の態様を実装する命令を含む製造品を含む。
【0079】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックに指定されている機能/活動を実装するように、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップが実行されコンピュータ実装プロセスを生成することを引き起こすように、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスにもロードされ得る。
【0080】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータプログラム製品の考えられる実装のアーキテクチャ、機能、およびオペレーションを示している。この点に関して、フローチャートまたはブロック図中の各ブロックは、モジュール、セグメント、または命令の一部を表するものとしてよく、これは指定された論理機能を実装するための1つまたは複数の実行可能命令を含む。いくつかの代替的実装において、ブロック中に記載されている機能は、図示されている順序と違う順序で実行され得る。たとえば、連続して示されている2つのブロックは、実際には、実質的に同時に実行され得るか、またはそれらのブロックは、関連する機能に応じて、逆順に実行され得ることもある。ブロック図および/またはフローチャート図解の各ブロック、ならびにブロック図および/またはフローチャート図解中のブロックの組合せは、指定された機能もしくは活動を実行するか、または専用ハードウェアとコンピュータ命令との組合せを実行する専用ハードウェアベースのコンピュータシステムによって実装され得ることにも留意されたい。
【0081】
次に、本発明のいくつかの実施形態による、フレーム内のブロックを符号化するための変換係数のセットを生成するための方法のフローチャートである
図1への参照がなされている。本発明のいくつかの実施形態による、フレーム内のブロックを符号化するための変換係数のセットを生成するように適合されているメディアエンコーダ202のブロック図である
図2への参照もなされる。
図2のメディアエンコーダは、
図1の方法の1つまたは複数のブロックを実行するように構成される。
図2のメディアエンコーダによって実行される
図1の方法は、たとえば、
図12A〜
図12Iを参照しつつ説明されているように、画質を著しく下げることなく、ビデオおよび/または静止画フォーマットのデジタル画像の圧縮性能を改善する。エンコーダ202は、係数デコーダとして、説明されている符号化機能に加えて、または説明されている符号化機能の代わりに働き得ることに留意されたい。復号機能は、説明されている符号化機能に基づくが、明確にし、簡潔にするために省略されている。
【0082】
明確にし、簡潔にするために、メディアエンコーダ202は、変換係数(本明細書において説明されているような)の計算のための要素および/または方法を参照しつつ説明されていることに留意されたい。メディアエンコーダ202は、他の符号化コンポーネント、たとえば、
図10の画像エンコーダ/デコーダ1004および/あるいはモジュール218および220を含み、かつ/またはそれらと通信するものとしてよい。
【0083】
メディアエンコーダ202は、プロセッサ204によって実行されるプログラム命令を記憶する1つまたは複数のメモリ206(または他のタイプのコンピュータ可読ストレージ媒体)と通信する1つまたは複数のプロセッサ204を備える。メモリ206は、本明細書で説明されているように、処理中に使用するためにデータを記憶することができる。メディアエンコーダ202は、画像データ圧縮のための既存のハードウェアと統合されているチップ、画像データ圧縮を改善するための既存のデバイスに差し込む別のボックス、またはこれらの組合せとして既存の画像データ圧縮ソフトウェアプログラム内に実装されているソフトウェアモジュールとして実装され得る。プロセッサ204は、並列処理技術に基づく方法のステップを実行することができ、単一のプロセッサが使用されるものとしてよく、および/またはプロセッサは、リモートに配置され得る。並列処理は、ブロックを分割する最良のマスクを選択するために回転対称マスクの事前定義済みのセットにおけるさまざまな候補マスクに対して使用され得る。メモリ206のうちの1つまたは複数がリモートに配置され得る。
【0084】
メディアエンコーダ202は、画像および/またはビデオの圧縮のために効率を改善し、および/またはリソース要求条件(たとえば、メモリおよび/またはプロセッサ)を低減することによってシステム性能を改善する。
【0085】
102において、フレームおよび/またはブロックが受信される。メディアエンコーダ202は、フレーム210および/またはフレームのブロックを受信するように適合されている入力データインターフェース208に結合される。フレーム210は、静止デジタル画像として、または複数のフレームを含むビデオの一部として受信され得る。フレーム210が、ビデオから受信されるときに、画像間圧縮技術は、本明細書で説明されているように適用され得る。
【0086】
メディアエンコーダ202は、フレーム内のパーティションに区切られたブロックを指定するように適合される。適宜、ブロックデジグネータモジュール212Aは、メディアエンコーダ202が本明細書で説明されているように指定を実行するためのプログラム命令を含む。
【0087】
フレームは、複数のブロックに分割され、および/またはパーティションに区切られ得る。フレームは、パーティションに区切られて複数のブロックにされるものとしてよく、各ブロックは、たとえば、合同静止画専門家グループ(JPEG)などの標準によって定義されているのと同じサイズを有する。代替的に、フレームは、たとえば、ビデオおよび/または静止画像標準、たとえば、HEVC、および動画専門家グループ(MPEG)に基づき、異なるサイズを有し得るサブブロックに分割され得る。
【0088】
ブロックは、標準サイズ、たとえば、64×64ピクセル、32×32ピクセル、16×16ピクセル、8×8ピクセル、4×4ピクセル、または他のサイズを有し得る。
【0089】
ブロックは、正方形(L×Lピクセル)または矩形(M×Nピクセル)であってよい。
【0090】
ブロックは、輝度および/または彩度データを表し得る。
【0091】
適宜、103で、フレームの各ブロックはサブブロックに細分される。フレームは、たとえば、JPEG、MPEG、またはHVECなどの標準に基づき事前にパーティションに区切られてブロックにされてよい。パーティションに区切られたブロック(またはサブブロック)の各々は、追加のサブブロックにさらに繰り返し分割され得る。ブロック細分は、いくつかの標準に基づいており、これは、いくつかの標準に基づきメディアエンコーダをシステムと統合し、システムの性能をさらに改善することを実現する。
【0092】
ブロック分割は、本明細書で説明されているように、ブロック分割を実行し、および/またはブロック分割について決定するように構成されているブロックディバイダモジュール212Gによって実行され得る。
【0093】
細分の決定は、ブロック105を参照しつつ説明されているように、効率尺度を満たすことに基づく。効率尺度では、選択されたマスク、ブロックの分割、および回転対称ブロックの対の符号化に基づきブロックを符号化する効率を細分されたブロックを符号化する効率と比較する。効率尺度は、改善された圧縮性能についてシステムを方向付けるものである。効率尺度は、マスクによるブロックの分割がブロックを繰り返し細分する場合よりも効率的なのはいつなのかを決定するのに役立つ。マスクをブロック全体に適用することは、ときには、ブロックをサブブロックに(たとえば、四分木構造に基づき)細分するよりもよい(たとえば、結果として改善された圧縮性能が得られる)。ブロックを細分するときに、構造をシグナリングするのに、結果として変換係数が少なくなり得る(たとえば、圧縮が改善される)ブロック全体(2つの部分を含む)に適合されているマスクと比較してより多くのビットが消費され得る。
【0094】
繰り返しの各々において、各細分されたブロックは、ブロック104に基づき処理される。
【0095】
代替的に、またはそれに加えて、各ブロック全体(または細分されたブロック)を符号化するか、またはマスクをブロック(または細分されたブロック)に適用する決定が下される。
【0096】
ブロック全体を符号化するか、ブロックが細分されるか、またはマスクを適用し、回転対称ブロックの対を符号化するかどうかの決定は、効率尺度に基づき得る。効率尺度は、各場合について計算されるか、または推定されるものとしてよく、決定は最高の効率をもたらす符号化方法に基づき行われる。
【0097】
次に、本発明のいくつかの実施形態による、たとえば、JPEG標準によって定義されているような、固定サイズのブロックを有する画像の例である、
図13への参照がなされている。各ブロックは、選択されたマスクを適用し、回転対称ブロックの生成された対を符号化することに基づき符号化され得る。代替的に、各ブロックは、たとえばJPEG標準によって定義されているブロック符号化方法をベースとした全体が符号化され得る。ブロック1302は、標準ベースの方法を使用して符号化された16×16ブロックの一例である。ブロック1304は、分割線1306を有するマスクの適用、および回転対称ブロックの生成された対の符号化に基づき符号化された16×16ブロックの一例である。
【0098】
次に再び
図1を参照すると、104において、回転対称マスクが選択される。マスクセレクタモジュール212Bは、メディアエンコーダ202が本明細書で説明されているようにマスク選択を実行するためのプログラム命令を含む。
【0099】
適宜、回転対称マスクは、マスクのブロックの中心に関して次数2(ときには本明細書においてC2と称され、回転対称が360/2=180度について成り立つことを示す)の回転対称を有する。
【0100】
次に、本発明のいくつかの実施形態による、回転対称マスクのいくつかの例の概略図、たとえば、直角台形302、直角三角形304、矩形306、および正方形308を示す
図3への参照がなされる。
【0101】
次に再び
図1を参照すると、メディアエンコーダは、ブロックとしてのサイズおよび形状を有する多次元空間内の複数の異なる回転対称を定義する複数の回転対称マスクから指定されたブロックに対する回転対称マスクを選択するように適合されている。
【0102】
次に、本発明のいくつかの実施形態による、フレーム406内のブロック404に対する特定の回転対称マスク402の選択を図示する概略図である
図4への参照がなされている。フレーム406は、家の画像を含む。ブロック404は、家の屋根の一部、および空の別の部分を含む。マスク402は、特定の圧縮プリファレンス尺度(たとえば、速度歪み)および/または空を家から最もよく隔てる視覚的特徴境界および/またはエッジに基づき複数の利用可能なマスク410のセットから選択される。非選択マスクの視覚的検査で明らかになるように、他のマスクのうちのどれかを適用した結果、マスク402を使用した場合と比較して、空のより多くの部分が屋根部分の中に含まれ、屋根のより多くの部分が空部分に含まれることになる。マスク402によるブロック404の分割は、標準的なパーティション408による、または別のマスクによるブロック全体404の圧縮と比較して画像データ圧縮を改善する。
【0103】
次に
図2に戻って参照すると、メディアエンコーダ202は、複数の異なる回転対称マスクを含む回転対称マスクライブラリから回転対称マスクを選択するように適合される。回転対称マスクは、回転対称マスクライブラリ212Fに記憶され、適宜メモリ206に記憶され、プロセッサ204と通信する別のコンピュータ可読ストレージ媒体に記憶されている複数のマスクから選択され得る。
【0104】
ライブラリ212Fは、回転対称マスクの複数の異なるライブラリを記憶し得る。各ライブラリは、ブロックのサイズおよび/または形状に基づき得る。たとえば、サイズ16×16ピクセルのブロックのマスクに対する1つのライブラリ、およびサイズ8×8ピクセルに対する別のライブラリ。
【0105】
適宜、異なる回転対称マスクは、ブロックとしてのサイズおよび形状を有する正方形のマスク(すなわち、L×Lピクセル)である。代替的に、異なる回転対称マスクは、ブロックとしてのサイズおよび形状を有する矩形のマスク(すなわち、M×Nピクセル)である。
【0106】
回転対称マスクは、矩形または正方形の対向するエッジを結ぶ線を定義し、対応する矩形または正方形のブロックを2つの2D鏡像相補的部分に分割するように適合されている。異なる線は、2次元鏡像条件に基づき定義され得る。線は、直線状または他の形態、たとえば、階段状または他の任意の形状であってよい。線は、0から359度までの任意の角度またはその一部で傾斜しているものとしてよい。2D鏡像特性は、ブロックの効率的な圧縮を実現する。
【0107】
次に、本発明のいくつかの実施形態による、回転対称マスクを定義するためのピクセル2D鏡像を示す概略図である
図5Aから
図5Cへの参照がなされる
【0108】
図5Aは、一般的な2D鏡像概念を示している。サイズ8ピクセル×8ピクセルのブロック502は、例示を目的として図示されている。領域Aおよび領域Bは、ブロック502の真ん中を通って水平に位置決めされた仮想線504によって分離される。領域Aおよび領域Bにおいて同じ数を有するピクセルは、互いの2D鏡像である。ピクセル2D鏡像は、M×Nの矩形に対して一般化されるものとしてよく、ピクセル(m,n)が領域A内にあるときに、ピクセル(M-1-m,N-1-n)は領域B内にある。
【0109】
2D鏡像概念は、異なるサイズの他の正方形または矩形のブロックに適用され得ることは理解されるであろう。2D鏡像概念は、異なる傾斜で、たとえば、垂直に引かれた他の仮想線について示されるものとしてよく、領域AおよびBは、ブロック502の真ん中を通って垂直に位置決めされた仮想線によって定義され、分離されることは理解されるであろう。
【0110】
ブロック502の対向するエッジを結び、ブロック502の中心点を交差する複数の異なる線は、
図5Bおよび
図5Cに示されているように、回転対称マスクライブラリを形成するように適合される。各個別の線は、個別のマスクを定める。各線は、ブロック502を2つの相補的部分領域Aと領域Bとに分割する。
【0111】
適宜、異なる回転対称マスクは、それぞれの行列によって定義される(たとえば、各ピクセル位置は、行列内の位置によって表される)。各行列は、領域AおよびBの異なる仕切りを定義し、たとえば、2次元空間の対向するエッジを結ぶ線を定義し、2次元空間を2つの相補的部分に分割する。
【0112】
他の次元の空間、たとえば、3次元、4次元、またはそれ以上の次元の空間が使用されてもよいことに留意されたい。回転対称マスクは、それぞれの多次元空間、たとえば、平面を分割して3次元空間を分割するように定義される。
【0113】
線がサンプルの位置を通るときに、フルサンプルが領域Aに割り当てられ、領域Bから取り除かれ得るので、サブサンプリングの必要はないことに留意されたい。計算リソース(たとえば、プロセッサおよび/またはメモリ)は、たとえば、各それぞれの領域について計算の完全なセットを実行する代わりに、領域Aへの追加および領域Bからの除去によって削減され得る。次に、本発明のいくつかの実施形態による、回転対称マスクライブラリのいくつかの例を示す
図6A〜
図6Cへの参照がなされる。
図6Aは、サイズ32×32ピクセルのブロックを分割するためのマスクのライブラリの一例である。
図6Bは、サイズ16×16ピクセルのブロックを分割するためのマスクのライブラリの一例である。
図6Cは、サイズ8×8ピクセルのブロックを分割するためのマスクのライブラリの一例である。
【0114】
図6A〜
図6Cの回転対称マスクライブラリは、傾斜した線に基づいており、この線はブロックを2つの台形領域に分割し、これらの領域はマスクの暗領域602(たとえば、青色)とマスクの明領域(604)(たとえば、赤色)によって表される。ライブラリ内の各マークは、線のわずかに異なる傾斜を有する。それとともに、すべてのマスクは、ブロック内で傾斜した線のすべての異なる順列を定義する。傾斜した切断された線に基づき、サイズL×Lの正方形を区切るために2×(L-1)の異なる仕方がある。
【0115】
図6Bにおいて、マスク606Aおよび606Bは、それらを通る平行線を有し、これはマスク606Aおよび606Bを32個のマスクのセットから除去することを表し、前の段落における式に基づき30個のマスクのセットを形成する。2つのマスクは、鏡像対称により既存のマスクのダブルであり、したがって、生成されたセットから除去され得る。同様に、
図6Cにおいて、2つのダブルマスクは、平行線とともに示され、これは冗長マスクをそのセットから除去することを表す。
【0116】
適宜、異なる回転対称マスクの各々(1つまたは複数のライブラリとして記憶され得る)は、階層配置構成にマップされる。階層配置構成は、最良のマスクを識別するための処理時間および/またはリソースを減らすことができる。
【0117】
各ライブラリは、独立してマップされるものとしてよく、各それぞれのライブラリのマスクは、階層配置構成にマップされ得る。代替的に、1つまたは複数のライブラリは、同じ階層配置構成に基づき一緒にマップされる。各ライブラリ内のマスクは、同じ共通階層配置構成に基づきマップされる。
【0118】
マスクのセットは、分離したバラバラのセクションに分割される。階層配置構成は、2次元空間のエッジに関する線の角度に従うものとしてよく、たとえば、階層配置構成は、
図6A〜
図6Cの線を、たとえば、0〜60度、61〜120度、および121〜180度のグループにマップするものとしてよい。階層配置構成は、線が対称的および/または非対称的であるときに、181〜240度、241〜300度、および301〜360度をマップするために継続し得る。階層配置構成は、層化されてもよく、たとえば、0〜60度のグループは、0〜15、16〜30、31〜45、および46〜60度のグループにさらに細分される。
【0119】
次に本発明のいくつかの実施形態による、階層配置構成をグラフで示す概略図である
図7への参照がなされる。
【0120】
分割された円702は、マスクライブラリ706に対する階層配置構成の一例をグラフで示している。ライブラリ706は、
図6Bを参照しつつ説明されているように、サイズ16×16のブロックに対する傾斜した線のマスクを含む。円702は、領域704A〜704Hに分割され、各々45度の線の傾斜を表す。階層配置構成は、傾斜した線マスクの対称性により簡素化され、セクタ704Aを704Eと一緒にグループ化し(セクタ708Cとして示されている)、セクタ704Bを704Fと一緒にグループ化し(セクタ708Bとして示されている)、セクタ704Cを704Gと一緒にグループ化し(セクタ708Aとして示されている)、セクタ704Dを704Hと一緒にグループ化する(セクタ708Dとして示されている)。各セクタ708A〜708Dは、それぞれの角度範囲内に線傾斜角度が収まる8または7個のマスクを含む。
【0121】
適宜、メディアエンコーダは、階層配置構成に従って定義されている順序で異なる回転対称マスクのうちの少なくともいくつかの繰り返しマスク選択で回転対称マスクを選択するように適合されている。たとえば、
図7を参照すると、式22.5+45kによって定義されている中心角度を有する4つの代表的パーティション708A〜708Dの間で探索が実行され、ただし、k=0、1、2、3、であり、スパンは45度である。セクションは、好適な関数、たとえば、最小速度歪み尺度によって計算される最低コストに基づき選択され得る。選択されたセクション内のマスクは、同様の仕方で選択され得る。階層配置構成が、追加のレベルを含むときに、マスクが識別されるまで繰り返し方式で追加のレベルが探索され得る。
【0122】
次に、本発明のいくつかの実施形態による、回転対称マスクの生成および/または表現を示す概略図である
図8への参照がなされる。適宜、マスクのライブラリが、マスクを含むブロック内の異なる順列に基づき生成される。
【0123】
例示的な目的に関して、サイズL×Lのブロックに対するマスク生成が説明されるが、これはM×Nの場合に拡張され得る。マスクは、左上隅から始まって、ブロックの中心の方へ進むようにして生成され得る。移動の組合せは、2D鏡像化され、それにより、ブロックの中心から右下までの残りのマスクパターンを取得し得る。
【0124】
マスクは、移動毎に2進表現によって表され得る。各移動は、水平(すなわち、左から右)または垂直(すなわち、上から下)のいずれかであり、1(たとえば、1ステップ右へ)または0(たとえば、1ステップ下)で表される。バイナリマスク表現は、そのまま送信されるか、またはさらに圧縮され得る。2進表現は、たとえば、エンコーダからデコーダへの、マスクの効率的な(すなわち、プロセッサおよび/またはメモリリソース利用に関して)伝送を実現する。
【0125】
セット内の各順列は、合計2×Lの移動によって定義され得る。
【0126】
マスク802は、2進パターン804によって表される。マスク806は、2進パターン808によって表される。
【0127】
次に、本発明のいくつかの実施形態による、ブロックを分割するために回転対称マスクおよび/またはマスクライブラリを選択するためのコンピュータを用いた方法のリスト(たとえば、フローチャート)である
図9への参照がなされる。マスクおよび/またはマスクライブラリは、選択されるのではなく、および/または選択されることに加えて、ブロックに基づき(たとえば、予め、および/または動的に)生成され得る。メディアエンコーダ202は、方法の1つまたは複数のブロックを実行するように適合される。方法の1つまたは複数のブロックは、マスク選択のために実行され得る。ブロックは、任意の順序で、および/または同時に実行され得る。
【0128】
本明細書で説明されている選択の1つまたは複数の方法(順次および/または並列に、適宜組み合わせて実行される)は、マスクのライブラリ内の特定のマスクの選択に対する基準として使用され得る。代替的に、またはそれに加えて、選択の方法は、複数のマスクライブラリから特定のマスクライブラリを、および/またはライブラリからマスクのサブセットを最初に選択するために使用され得る。この特定のマスクは、選択されたライブラリおよび/または選択されたサブセットから選択され得る。ステップ毎のおよび/または階層的な選択は、各ステップにおける選択に対してセットのサイズを縮小することによって探索範囲を絞り込み、選択のためのリソースおよび/または計算を節減することができる。
【0129】
候補マスクのより大きいセットからではなくライブラリ(またはマスクサブセット)からマスクを選択することで、デコーダに選択されたマスクをシグナリングし、および/または計算複雑度および/またはメモリリソースおよび/またはプロセッサリソースを低減するために使用される符号化されるビットの数を減らす。
【0130】
適宜、902において、ライブラリおよび/またはマスクは、ブロックのサイズおよび/または形状に基づき選択される。マスクは、本明細書で説明されているように選択されたライブラリ内から選択され得る。
【0131】
代替的に、またはそれに加えて、903において、メディアエンコーダは、細分されたブロックの別のサイズについて各々定義されている複数の回転対称マスクおよび/またはマスクライブラリから回転対称マスクおよび/またはマスクライブラリを選択するようにさらに適合される。各繰り返しにおいて(矢印105Cを参照しつつ説明されているように)、ブロック(またはサブブロック)は、他のサブブロックにさらに分割されるときに、マスクおよび/またはマスクライブラリは、分割されたサブブロックの新しいサイズに基づき選択され得る。たとえば、第1のマスクライブラリは、32×32ピクセルのブロックサイズに対応するマスクのサイズに基づき選択され得る。ブロックが、4個のサブブロックに細分されるときに、16×16の新しいサブブロックサイズに基づき別のマスクライブラリが選択される。1つまたは複数のサブブロックが、さらにもう一度分割されるときに、8×8の新しいサブブロックサイズに基づきさらに別のマスクライブラリが選択される。
【0132】
代替的に、またはそれに加えて、904において、メディアエンコーダは、必ずしも限定しないが、ブロック、スライス、タイル、フレーム、およびシーケンスのリストに含まれるうちの1つまたは複数に対する圧縮プリファレンスに基づき複数の回転対称マスクおよび/またはマスクライブラリから回転対称マスクおよび/またはマスクライブラリを選択するように適合される。
【0133】
圧縮プリファレンスは、特定のマスクが適用されるときにブロックの圧縮性能を定義する1つまたは複数のパラメータを含む。圧縮プリファレンスは、マスク毎におよび/またはマスクライブラリ毎に定義され得る。
【0134】
圧縮プリファレンスは、たとえば、マスクおよび/またはライブラリに対するすでに収集されている統計データに基づき、推定され得る。代替的に、圧縮プリファレンスは、たとえば、候補マスクのうちの1つまたは複数をブロックに適用することによって計算され得る。
【0135】
圧縮プリファレンスは、圧縮パラメータがいくつかのトレードオフ、たとえば、画質の低下と引き換えにサイズを縮小することを伴うときにマスク選択を助けることができる。
【0136】
圧縮プリファレンスは、次のうちの1つまたは複数から、個別に、または組み合わせて選択される。
【0137】
*圧縮複雑度プリファレンス:マスクに基づき圧縮を実行するための処理リソース、たとえば、計算回数、プロセッサリソース、および/またはメモリリソースに関係する尺度。この尺度は、方法を実行する特定のコンピュータに依存し得る。
【0138】
*圧縮品質プリファレンス(たとえば、画像歪み):マスクに基づく圧縮は、不可逆オペレーションであり、その結果、ブロックの画質は低下する。画質低下は、人間の目で見て視覚的に認識できる場合もできない場合もある。圧縮品質プリファレンスは、マスクに基づく圧縮による情報の喪失に関係する尺度、たとえば、ピーク信号対雑音比(PSNR)、および/または構造的類似性(SSIM)に基づき決定され得る。
【0139】
*圧縮サイズプリファレンス:選択されたマスクに基づく圧縮後のブロックのサイズ(たとえば、ビット数)。
【0140】
適宜、メディアエンコーダは、ブロック圧縮複雑度、ブロック圧縮サイズ、およびブロック圧縮品質に対するプリファレンスからなる群のメンバーに従って回転対称マスクライブラリを自動的に生成するように適合される。生成されたマスクライブラリは、知られている圧縮プリファレンス基準を有し、これはライブラリを容易に、および/または素早く選択することを可能にする。生成されたライブラリ内のマスクの数は、可能なすべての順列を生成する場合よりも小さいものとしてよいが、それは圧縮基準を満たすマスクのみが含まれるからである。
【0141】
各マスクは、圧縮プリファレンスに関連付けられる、たとえば、記憶される、マッチングされる、および/または圧縮プリファレンス値でタグ付けされるものとしてよい。各マスクは、圧縮複雑度プリファレンス、圧縮品質プリファレンス、および/または圧縮サイズプリファレンスを計算するための1つまたは複数の尺度に関連付けられ得る。
【0142】
適宜、異なる回転対称マスクの各1つは、それぞれのマスクのサイズおよび形状を有する例示的なブロック上でそれぞれのマスクを適用する計算複雑度を示す推定複雑度尺度に関連付けられる。推定複雑度尺度がより低いマスクは、必要とするリソース(たとえば、プロセッサおよび/またはメモリ)がより少ないと推定される。推定される結果に基づくマスク選択は、システム効率を改善し、および/またはより少ないリソースを利用する。
【0143】
適宜、異なる回転対称マスクの各1つは、それぞれのマスクのサイズおよび形状を有する例示的なブロック上でそれぞれのマスクを適用することから生じる計算歪みレベルを示す推定歪み尺度に関連付けられる。推定歪み尺度は、たとえば、画像のより高い圧縮も引き起こす視覚的に区別できない圧縮歪みレベルを有するマスクを選択するために、不可逆圧縮トレードオフに基づきマスクを選択する際に役立つ。推定歪み尺度がより低いマスクは、ターゲットの圧縮歪みレベルを達成しながら必要とするリソース(たとえば、プロセッサおよび/またはメモリ)がより少ないと推定される。
【0144】
適宜、メディアエンコーダは、ブロックに対する圧縮プリファレンスに基づき回転対称マスクを選択するように適合される。適宜、圧縮プリファレンスは、圧縮複雑度プリファレンス、圧縮品質プリファレンス、および圧縮サイズプリファレンスのうちの1つまたは複数から選択される。
【0145】
代替的に、またはそれに加えて、906において、マスク選択は、受信されたフレームを含む前処理されたビデオデータに基づく。ビデオデータの前処理は、メディアエンコーダ、メディアエンコーダに接続されている別のコンピュータ、またはメディアエンコーダから独立している別のコンピュータ(たとえば、リモートに配置されている)によって実行され得る。前処理されたデータは、フレームとは無関係に、および/またはフレームとともにメディアエンコーダに送信され得る(たとえば、フレームにタグ付けされる)。
【0146】
前処理は、ビデオのフレームのコンテンツの1つまたは複数の識別された特徴、たとえば、ピクセルパターンの統計的分布、エッジ、ピクセル強度、およびピクセル色に基づくものとしてよい。ビデオデータは、前処理の結果に基づき事前分類され得る。分類は、マスクおよび/またはマスクライブラリの選択を可能にするように識別された特徴に基づき得る。事前分類されたビデオデータは、システム性能を改善するが、それは、マスクが、より効率的に、および/または分類に基づきより少ないリソースを使用して選択され得るからである。
【0147】
適宜、メディアエンコーダは、ビデオデータの分類に基づき、複数の候補回転対称マスクおよび/またはマスクライブラリから回転対称マスクおよび/またはマスクライブラリを選択するように適合される。たとえば、前処理は、ビデオが多数の直線を有するフレーム、たとえば、家、自動車、または他の人工的構造物の画像を含んでいることを識別し得る。ビデオデータは、直線を含んでいるとして分類され得る。直線(すなわち、異なる角度)のマスクライブラリが選択され得る。別の例では、前処理は、ビデオが多数の曲線を有するフレーム、たとえば、木、枝、および地形の画像を含んでいることを識別し得る。ビデオデータは、曲線を含んでいるとして分類され得る。曲線のマスクライブラリ(すなわち、曲線の離散化に基づく階段状の線が選択され得る)。
【0148】
コンテンツの前処理は、本明細書で説明されているように、予測に基づき符号化するための情報を提供し得る。
【0149】
適宜、メディアエンコーダは、前処理されたビデオデータに基づき回転対称マスクおよび/またはマスクライブラリを自動的に生成するように適合される。異なる回転対称マスクは、1つまたは複数の圧縮パラメータ、すなわち、圧縮複雑度プリファレンス、圧縮サイズプリファレンス、および/または圧縮品質プリファレンスの前処理の結果による異なる回転対称マスクのマスクリポジトリから選択され得る。圧縮パラメータは、ビデオデータから事前計算され得る。
【0150】
ビデオデータの前処理は、エンコーダの性能を改善し得る。リソースを大量に消費する計算は、圧縮のときではなく、事前に実行され得る。マスク選択のための基準として使用されるデータは、圧縮プロセスにおいてマスク選択計算を実行する代わりに、ブロック圧縮プロセスにおいてより高速なマスク選択を可能にするように、すぐに使えるようになっているものとしてよい。
【0151】
代替的に、またはそれに加えて、908において、メディアエンコーダは、変換プロセスの結果、および/または2つの相補的部分のうちの少なくとも一方に適用される変換プロセスの結果の推定に基づき回転対称マスクを選択するように適合される。結果および/または推定される結果に基づくマスク選択は、システム効率を改善し、および/またはより少ないリソースを利用する。
【0152】
変換プロセスの結果は、変換プロセスの後の相補的部分のうちの一方または両方のサイズ(たとえば、特定の閾値よりも高い変換係数の絶対値の数および/または総和)を含み得る。結果として変換プロセスの後のその部分の最小サイズをもたらすマスクが選択され得る。サイズは、両方の部分のサイズの総和などの、一方または両方の部分について計算され得る。
【0153】
変換プロセスの結果の推定は、変換プロセスへの入力である残差データの絶対差総和(SAD)を含み得る。
【0154】
変換プロセスの結果の推定は、残差データの水平および/または垂直方向に沿った一階、二階、および/または高階微分の絶対値の総和を含み得る。
【0155】
推定は、同じマスクを使用してすでに符号化されている部分からの値に基づき得る。
【0156】
変換プロセスの結果は、知られている変換プロセス、たとえば、圧縮標準によって定義されている変換プロセスによって推定され得る。
【0157】
代替的に、またはそれに加えて、910において、メディアエンコーダは、回転対称ブロックの対の少なくとも1つのメンバーに対する変換係数に適用される量子化プロセスおよび/またはエントロピー符号化プロセスの結果および/または結果の推定に基づき回転対称マスクを選択するように適合される。
【0158】
結果として量子化および/またはエントロピー符号化プロセスの後に部分の最小サイズをもたらすマスク、たとえば、量子化の後の非ゼロ係数の数、および/または生成されたビットにおけるサイズが、それぞれ、選択され得る。サイズは、両方の部分のサイズの総和などの、一方または両方の部分について計算され得る。
【0159】
推定は、同じマスクを使用してすでに量子化および/またはエントロピー符号化されている部分からの値に基づき得る。
【0160】
代替的に、またはそれに加えて、912において、メディアエンコーダは、ブロック内のピクセル値のパターンに従って回転対称マスクを選択するように適合される。ピクセル値のパターンは、ブロックから、たとえば、境界および/またはエッジを特定するための方法などの画像セグメント分割方法によって、たとえば、強度閾値化、エッジ検出、または他の好適な方法に基づき、抽出され得る。ピクセル値のパターンは、ブロック内の識別された線の方向、および/または線(もしくは曲線)のパターンを含み得る。抽出されたピクセルパターンは、特定の対称マスクに、たとえば、ブロックの識別された線と同じ方向および/またはパターンを有するマッチングマスクなどの、抽出されたピクセルパターンに最もよく類似しているパターンを持つマスクを識別する最低費用関数に基づき、マッチングされ得る。ピクセル値のパターンに基づく選択は、各それぞれの部分内のピクセルが互いに類似する、たとえば、類似する強度および/または色を有する2つの相補的部分を生み出す。
【0161】
たとえば、
図4を再び参照すると、ブロック404内の屋根と空との間のエッジは、エッジ検出方法に基づき抽出される。検出されたエッジは、費用関数に基づきマスク402にマップされる。マスク402内のパターンは、マスクライブラリからの、抽出されたエッジに最もよく類似しているパターンである。
【0162】
代替的に、またはそれに加えて、914において、回転対称マスクは、特定の回転マスクが処理されているブロックのサイズおよび/または形状を有する例示的なブロックに適用されるときに送信されるビットの数を示す推定速度尺度に基づき選択される。ビットの数は少なければ少ないほど、特定のマスクによる圧縮がより効率的になる。異なる回転対称マスクの各1つは、マスクがサイズおよび形状を有する例示的なブロックに適用されるときに送信されるビットの数を示す推定速度尺度に関連付けられる。
【0163】
速度尺度は、各マスクとともに記憶されるものとしてよく、推定速度尺度値に基づきマスクの素早い選択を可能にする。速度尺度は、実行時に再計算される代わりに、マスク毎に予め計算されてよく、それによって、選択に必要な計算を減らす。速度尺度は、ブロックの前のサンプルの平均(または他の尺度)に基づく事前定義されたブロックであってよい、例示的なブロックに基づき計算されるものとしてよい。例示的なブロックは、処理されるブロックの類似性に基づき、たとえば、費用関数に基づき、ブロックのライブラリから選択され得る。
【0164】
代替的に、またはそれに加えて、916において、メディアエンコーダは、統計的分類子に基づき回転対称マスクを選択するように適合される。統計的分類子は、異なる回転対称マスクのうちの少なくともいくつかを適用した結果をログにとるトレーニングセットの分析によって生成される。結果(加重されてよい)は、たとえば、圧縮性能測定基準(たとえば、サイズ、複雑度、品質)、プロセッサリソース利用度、メモリ利用度を含み得る。統計的分類子は、複数の異なる所望の結果を含む結果の予測に基づきマスクの選択を改善し得る。
【0165】
トレーニングセットは、システムによって処理された実際のフレームの履歴に基づき取得され得る。代替的に、トレーニングセットは、処理されることになっているフレームのタイプの予測に基づき取得されるものとしてよく、たとえば、自然のチャネルは、自然のビデオで分類子をトレーニングするものとしてよい。
【0166】
分類の結果は、分類子をさらにトレーニングし更新するための入力として使用され得る。
【0167】
統計的分類子は、教師あり学習方法および/または教師なし学習方法に基づきトレーニングされ得る。
【0168】
分類子は、ブロック内のピクセルを2つのグループのうちの一方に分類するために、ブロックそれ自体に適用され得る。2つのグループは、回転対称マスクの回転対称制約に基づき分割され得る。マスクは、ブロック内の2つのグループの配置構成をマッチングするように選択される。2つの相補的部分の各部分は、それぞれのグループからのマスクインクルードピクセルを使用してブロックの分割から生じる。
【0169】
代替的に、またはそれに加えて、918において、メディアエンコーダは、ブロックの空間的および/または時間的隣接ブロックから抽出されたコンテンツに基づき回転対称マスクを選択するように適合される。近傍は、画像内および/または画像間ブロックであってよい。空間的ブロックは、ブロックに関して1つまたは複数もしくはすべての方向のブロックの近傍であってよい。時間的隣接ブロックは、前のフレーム(たとえば、時間的に前)および/またはその後のフレーム(たとえば、時間的に後)内の隣接ブロックからのものとしてよい。ブロックは、直接近傍であり得るか、またはブロック(またはフレーム)を2個以上離して配置されてもよい。予測因子として使用される類似のピクセルパターンを含む隣接ブロックは、システム性能を改善し、および/またはより少ないリソースを必要とする。
【0170】
適宜、近傍は、すでに処理されているブロックを含む。以前に処理されたブロックは、現在処理されているブロックに対するマスクの選択のための予測因子として使用され得る。適宜、回転対称マスクの選択は、ブロックの空間的および/または時間的隣接ブロックに関連付けられている情報に基づき実行される。適宜、空間的および/または時間的隣接ブロックに関連付けられている情報は、予測に関係する。たとえば、情報は、処理されている現在のブロックと近傍のうちの1つまたは複数との間の差を小さくするためのデータを含むものとしてよく、冗長情報は除外される。マスクは、差分データに基づき選択され得る。
【0171】
適宜、抽出されるコンテンツは、空間的および/または時間的隣接ブロック内のピクセル値のパターンに従う。隣接ブロックのピクセルパターンは、現在のブロック内のマスクの選択のための予測因子として働き得る。たとえば、ピクセルパターンは、屋根と空との間の境界および/またはエッジを含む(
図4を参照しつつ説明されているように)。屋根と空との間のエッジは、引き続きいくつかの隣接ブロックを横切る。予測因子に基づく符号化は、システム効率を改善し、および/またはより少ないリソースを利用する。
【0172】
代替的に、またはそれに加えて、920において、メディアエンコーダは、少なくとも1つの効率基準に基づき回転対称マスクライブラリから回転対称マスクを選択するようにさらに適合される。回転対称は、他のマスクの上にマスクを選択することによって達成される、処理されているブロックに対するシステム性能の改善に基づき選択される。効率基準の詳細は、ブロック105を参照しつつ説明されている。
【0173】
次に
図1を再び参照すると、105において、効率尺度は、選択された対称マスクが適用されブロック(またはサブブロック)を変換するときにブロック(またはサブブロック)に対して評価される。代替的に、またはそれに加えて、特定のマスクは、効率尺度の1つまたは複数の基準に基づきマスクのライブラリから選択される。
【0174】
効率尺度は、実際の結果、および/または結果の推定を得るための計算を含み得る。計算および/または推定は、マスクを適用する場合、またはマスクを適用しない場合の効果を評価するために実行され得る。マスクが適用されない場合、計算および/または推定は、ブロック(もしくはサブブロック)をそのまま符号化するか、またはブロック(もしくはサブブロック)を追加のブロックに分割する効果を評価するために実行され得る。効率尺度は、各ブロックについて独立して、または分割されたブロックのすべてのサブブロックの性能の組合せについて計算され得る。
【0175】
効率尺度は、標準または非標準尺度に基づき、圧縮ブロックの符号化ビットの数を含み得る。実際の結果は、変換、量子化、およびエントロピー符号化の関数を実行する1つまたは複数のコンポーネントを含む、符号化チャネル全体(またはその一部)をアクティブ化することによって計算され得る。符号化チャネルは、適用されるマスクとともに、および/または適用されるマスクなしでサブブロックについて符号化されたビットを計算し、相対的性能を比較することができる。符号化チャネルは、異なるマスクとともにサブブロックについて符号化されたビットを計算し、各マスクの性能を比較することができる。符号化チャネルのアクティブ化は、正確な効率尺度値をもたらすが、符号化チャネルリソースを占有するトレードオフがある。
【0176】
効率尺度は、たとえば、
図9のブロック904を参照しつつ、本明細書で説明されているような圧縮パラメータを含み得る。
【0177】
適宜、矢印105Bで、効率尺度が満たされるときに、ブロックの処理は、ブロック106を参照しつつ説明されているように続く。効率尺度が満たされることは、マスクを適用せずにブロック全体を符号化することに比べて、ブロックがマスクによって分割されるときに改善された圧縮性能(本明細書で説明されているような)を有することが予想され、回転対称ブロックの対の各メンバーは符号化されることを示している。
【0178】
代替的に、矢印105Cで、効率尺度が満たされないときに、メディアエンコーダは、ブロックをブロック全体として符号化し、および/または細分されたブロックを複数の追加の細分されたブロックに、たとえば、122を参照しつつ説明されているように、繰り返し細分することによって標準的な(たとえば、HEVC)方法に従うものとしてよい。適宜、メディアエンコーダは、ブロック103に基づき、複数の追加の細分されたブロックの各々について繰り返し細分を繰り返す。
【0179】
繰り返しブロック細分は、木構造、たとえば、MPEGおよび/またはHVEC標準によって定義されているように四分木構造に基づくものとしてよい。木構造は、いくつかの標準によって使用され、これは、いくつかの標準に基づきメディアエンコーダをシステムに統合することで、システムの性能を改善することを可能にする。
【0180】
適宜、メディアエンコーダは、ブロックの各々の細分をマップする木構造を使用して繰り返し細分プロセスをサポートするように適合される。木構造は、たとえば、以下で説明されている
図14および
図15に関して示されているように、回転対称ブロックの対のメンバーを各々表す2つの葉を加えることによって回転対称ブロックの対で更新され得る。
【0181】
適宜、ブロックの符号化のためにマスクが適用され得る木のレベル(すなわち、サブブロックサイズ)が選択され、および/または制御される。適宜、メディアエンコーダは、木構造内の細分されたブロックの深さが事前定義済み閾値よりも大きいときに細分されたブロックを分割するように適合される。細分繰り返しは、好適なマスクがそれぞれのブロックについて識別されるまで、または最小サイズのサブブロックサイズ閾値に到達するまで、たとえば、4×4または8×8ピクセルまで、続けられる。最小サイズ閾値は、画像および/またはビデオ圧縮標準によって定義され得る。
【0182】
適宜、メディアエンコーダは、たとえば、
図14および
図15を参照しつつ示されているように、複数のブロックをさまざまな数の細分されたブロックに細分し、異なるサイズの異なる細分されたブロックを形成するようにさらに適合される。
【0183】
次に、本発明のいくつかの実施形態による、木構造に基づくブロックの繰り返し細分を示す概略図である
図14への参照がなされる。ブロック1402は、フレーム、またはフレームのブロックパーティションである。ブロック1402は、4つのサブブロックに細分されている。いくつかのサブブロックは、4つの追加のサブブロックにさらに細分されている。異なるサイズの異なる細分されたブロックが形成される。いくつかのサブブロックは、選択されたマスクの適用によって処理される。直線状の傾斜した点線パターンは、マスク分割線を示している。他のサブブロックは全体を符号化され、これは点線がないことで示されている。
【0184】
木1404は、ブロック1402の繰り返し細分を表す。木1404の4つの枝のグループは、4つのサブブロックへのブロックの細分を表す。4つの追加のサブブロックへのサブブロックの繰り返し分割は、4つの枝の別のグループによってそれぞれ示されている。葉は、サブブロック分割の最終段階を表している。一対の回転対称ブロックとして処理される2つの相補的部分にマスクよってさらに分割されるサブブロックは、2つの点線の葉として示されている。
【0185】
次に、本発明のいくつかの実施形態による、木構造に基づくブロックの繰り返し細分を示す別の概略図である
図15への参照がなされる。ブロック1502は、階段状の切断線を含むマスクライブラリからのマスクの適用を除き、
図14の説明されているブロック1402に類似している。階段状マスクで分割されたサブブロックは、鏡像部分によって表され、そのうちの1つは黒色になっている。木1504は、
図15の説明されている木1504に類似している。階段状マスクによって分割されたサブブロックは、2つの点線の葉として表される。
【0186】
次に
図1を再び参照すると、106において、ブロックは、回転対称マスクに基づき2つの相補的部分に分割されている。適宜、ブロックスプリッタモジュール212Cは、メディアエンコーダ202が本明細書で説明されているようにブロック分割を実行するためのプログラム命令を含む。
【0187】
108において、2つの相補的部分のうちの1つを各々有する一対の回転対称ブロックが生成される。適宜、対生成器モジュール212Dは、メディアエンコーダ202が本明細書で説明されているように対生成を実行するためのプログラム命令を含む。
【0188】
メディアエンコーダは、2つの相補的部分のうちの一方およびブロックのサイズおよび/または形状を有するブロックを形成するために追加される別の部分に基づき回転対称ブロックの対の各メンバーを生成するように適合される。
【0189】
適宜、追加される部分は、回転対称ブロックが構成される際にもとになる部分の2D鏡像である。
【0190】
適宜、追加される部分は、回転対称ブロックが構成される際にもとになる部分の2D鏡像であるが、負の符号が追加されている。この場合、回転対称ブロックは、2つの反対称部分を含む。
【0191】
適宜、追加される部分は、事前定義されたシーケンス、たとえばすべてゼロのパッディングを含む。
【0192】
適宜、追加される部分は、回転対称ブロックが構成される際にもとになる部分の180度回転に基づき生成される。
【0193】
適宜、追加される部分の次元は、相補的部分の次元、たとえば、2次元に基づく。
【0194】
回転対称ブロックの生成される対の各メンバーは、選択されたマスクに基づき主対角線または他の切断線パターンの周りで2D鏡像になっている値を有する行列によって表される。
【0195】
適宜、メディアエンコーダは、回転対称ブロックの対をフレームのブロックのうちの少なくともいくつかから生成される回転対称ブロックの複数の対を含むデータセットに追加するように適合される。データセットは、回転対称ブロックと、全体として処理されるより大きいブロックまたはサブブロックの繰り返し分割によって生成されるサブブロックの両方を含み得る。代替的に、データセットは回転対称ブロックのみを含むものとしてよく、サブブロックは全体として処理され別のデータセットに別々に記憶される。データセットは、本明細書で説明されているように、対データセットリポジトリ212Hとして記憶され、対および/または標準ブロックを記憶するように適合され得る。
【0196】
適宜、109において、回転対称ブロックの対の一方または両方は、たとえば、予測モジュール212Gによって、空間的予測および/または時間的予測について処理される。時間的予測は、画像間符号化のために実行され得る。適宜、ビデオ符号化では、再構成された画像に基づき予測が実行される。再構成画像は、量子化された係数が逆量子化を受け、次いで逆変換を受け、次いでデブロックフィルタリングを受けることによって作成され得る。ブロック109は、ブロック116の後に(すなわち、量子化された係数に基づき)、および/またはブロック118の後、および/または符号化プロセスにおける他の位置で部分的にまたは全体として実行され得ることに留意されたい。
【0197】
適宜、回転対称ブロックの対の各メンバーは、異なる空間的予測因子に関連付けられる。代替的に、回転対称ブロックの対の両方のメンバーは、同じ空間的予測因子に関連付けられる。
【0198】
適宜、空間的予測は、画像内符号化のために実行される。回転対称ブロックの対の各々または両方のメンバーは、画像内予測に基づき符号化され得る。
【0199】
適宜、メディアエンコーダは、回転対称ブロックのそれぞれの対を生成するために使用されるそれぞれの回転対称マスクに従って選択された空間的予測因子を使用して変換係数(たとえば、ブロック110を参照しつつ説明されているような)の各々を符号化するように適合される。適宜、最もあり得そうな予測因子の1つまたはセットは、選択されたマスクに基づき選択され、たとえば、H.265標準によって定義されているような指令モードは、マスクに基づき選択される。代替的に、またはそれに加えて、メディアエンコーダは、特定のそれぞれの空間的予測因子を使用して各回転対称ブロック(ブロックの対の)を独立して符号化するようにさらに適合される。各それぞれの空間的予測因子は、各それぞれの相補的部分に従って選択される。予測信号を形成するために使用される空間的隣接ブロックからの境界サンプルは、マスク切断線配向に基づき、および/または各それぞれの相補的部分に基づき取得され得る。マスクは、ブロックのコンテンツを2つの相補的部分に分割するようにすでに選択されているので、各部分のコンテンツに対する予測因子は、各それぞれの相補的部分の近くに置かれることが予想される。予測因子の選択は、選択されたマスクによってガイドされ、および/またはそれぞれの相補的部分に基づいたときにより正確であり、および/またはより少ないリソース(またはより短い時間)で実行され得る。各回転対称ブロックは、予測因子が使用されるときにより効率的に符号化される。回転対称ブロックの対を符号化することは、回転対称ブロックの対に分割することなく単一ブロックを符号化するのよりも効率的である。
【0200】
代替的に、またはそれに加えて、空間的予測は、画像間で実行される。回転対称ブロックの対の各々または両方のメンバーは、画像間予測に基づき符号化され得る。異なる運動ベクトルは、回転対称ブロックの対の各それぞれのメンバーについて計算され得るか、または同じ運動ベクトルが、この対に対して使用され得る。メディアエンコーダは、特定のそれぞれの運動ベクトルを使用して各回転対称ブロックを独立して符号化するように適合される。各それぞれの運動ベクトルは、各それぞれの相補的部分に従って選択され得る。
【0201】
次に、本発明のいくつかの実施形態による、空間的および/または時間的予測を示す概略図である
図22A〜
図22Bへの参照がなされる。
【0202】
図22Aは、各回転対称ブロックおよび/または2つの相補的部分のうちの各1つに対する独立した空間的イントラ予測因子を示す。主ブロック2202は、4つのサブブロック2204に細分されている。対角線切断線2206を有するマスクは、上側部分2208Aおよび下側部分2208Bに分割する特定のサブブロック2204Aについて選択されている。回転対称ブロック(明確にするために図示されていない)の対の各メンバーは、それぞれの相補的部分から計算される。この例では、垂直イントラ予測因子2210は、上側部分2208Aについて選択され、水平イントラ予測因子2212は、下側部分2208Bについて選択される。
【0203】
図22Bは、各回転対称ブロックおよび/または2つの相補的部分のうちの各1つに対する独立した時間的インター予測因子を示す。ブロック2204A(
図22Aを参照しつつ説明されているような)は、処理されている現在のフレーム2220において示されている。フレーム2222は、運動ベクトルなどの、予測因子を生成するための基準フレームである。フレーム2222の部分2228Aは、ブロック2204Aの上側部分2208Aに対する予測ブロックとして選択される。運動ベクトルは、MVx=MVy=0として表される。フレーム2222の部分2228Bは、ブロック2204Aの下側部分2208Bに対する予測ブロックとして選択される。運動ベクトルは、MVx=-5およびMVy=1として表される。
【0204】
各部分とそれぞれの予測との間の差(すなわち、それぞれの残差)は、その後符号化され得る、それぞれの回転対称ブロックを生成するために2つの相補的部分のうちの1つとして使用され得る。残差は、時間的予測因子、空間的予測因子、フレーム内予測因子、およびフレーム間予測因子のうちの1つまたは複数について計算され得る。時間的予測は、フレーム間データに基づき、空間的予測は、フレーム内データに基づくことに留意されたい。
【0205】
次に、
図1を再び参照すると、110において、回転対称ブロックの対の一方または両方のメンバーに対する1つまたは複数の変換係数が計算される。適宜、変換係数は、回転対称ブロックの各1つについて計算される。適宜、係数計算モジュール212Eは、メディアエンコーダ202が本明細書で説明されているように変換係数計算を実行するためのプログラム命令を含む。
【0206】
変換係数の計算は、1つまたは複数の標準ベースの計算方法に基づき、1つまたは複数の符号化技術に基づき、および/または専用の方法に基づき実行され得る。符号化技術の一例は、2次元(2D)離散コサイン変換(DCT)を含み、これは、たとえば、各次元に沿って適用される2つの分離可能な高速DCTに基づき計算されるものとしてよく、たとえば、回転対称ブロックが、行列として表されるときに、2D-DCTは、行に沿って次いで列に沿って、または列に沿って次いで行に沿って計算され得る。変換方法の他の例は、2D離散サイン変換(DST)、ならびに2D鏡像条件を維持する他の直交および/または直交変換方式を含み、たとえば、以下のとおりである。
T
p,q(M-m-1,N-n-1)=(-1)
(p+q)T
p,q(m,n)、
ただし、{T
p,q(m,n)}は、2D変換ベースであり、(m,n)はピクセル位置であり、m=0,1,...,M-1、n=0,1,...,N-1であり、pおよびqは、空間周波数であり、p=0,1,...,M-1であり、q=0,1,...,N-1であり、p+qは、対称の場合および反対称の場合についてそれぞれ偶数または奇数である。
【0207】
標準ベースの符号化技術の一例は、整数変換および/または逆変換に対するHEVCおよび/またはH.265標準である。
【0208】
適宜、係数の直交変換セットは、2D鏡像部分が負の符号とともに追加されるときに2つの相補的部分のうちの各1つについて計算される(すなわち、反対称)。変換係数の計算のための対称変換関数および反対称変換関数に対するセットは、異なり得る。変換係数を計算するときに、それぞれの対称または反対称変換関数が使用される。
【0209】
次に、本発明のいくつかの実施形態による、上側分割部分(
図16A)および下側分割部分(
図16B)から生成される8×8の回転対称ブロックに対する2D DCT直交行列を示す図である
図16Aおよび
図16Bへの参照がなされる。ブロックは、対角線上の切断線を有するマスクを適用することによって分割されている。
【0210】
直交性は、セットからの2つの行列の各々の間の内積がゼロであり、各行列とそれ自身との間で計算されたときに値1を有するという特性を表す。i行j列のDCT係数は、i行j列の8×8行列と8×8入力ブロックとmとの内積によって計算され、ただしi=0,1,..,7およびj=0,1,...,7である。たとえば、上三角ブロックのDCT係数は、左上行列(i=0、j=0)を使用して計算され、これは実際には入力された8×8ブロックの右上三角上での総和である。各図において、明(緑色)領域は、回転対称ブロックの非関連領域に関係することに留意されたい。
【0211】
適宜、メディアエンコーダは、回転対称マスクのそれぞれの部分に適合された1つまたは複数の空間的予測因子を使用して変換係数を符号化するように適合される。変換は、予測ブロックから生成された回転対称ブロックについて、予測ベクトルについて、予測誤差について、および/または予測残差について計算され得る。予測残差は、処理されている回転対称ブロック内の部分と対応する予測ブロックとの間の差に基づき時間的および/または空間的ブロック(すなわち、画像間および/または画像内ブロック)について計算され得る。
【0212】
適宜、メディアエンコーダは、回転対称マスクのそれぞれの部分に適合された1つまたは複数の時間的予測因子を使用して変換係数を符号化するように適合される。代替的に、またはそれに加えて、メディアエンコーダは、それぞれの対応する部分に関係する空間的予測因子を使用して回転対称ブロックの各々の変換係数を符号化するようにさらに適合される。代替的に、またはそれに加えて、メディアエンコーダは、それぞれの対応する部分に関係する運動ベクトルを使用して回転対称ブロックの対の各々の変換係数を符号化するようにさらに適合される。運動ベクトルは、時間的予測を計算するために使用され得る。適宜、ビデオ符号化では、再構成された画像に基づき予測が実行される。再構成画像は、量子化された係数が逆量子化を受け、次いで逆変換を受け、次いでデブロックフィルタリングを受けることによって作成され得る。
【0213】
変換係数は、すべての変換係数に対する1つの方法、異なる変換係数(または変換係数のセット)に対する異なる方法、および/または方法の組合せに基づき計算され得ることに留意されたい。
【0214】
適宜、メディアエンコーダは、回転対称マスクに適合されたエントロピーコンテキストモデルを使用して変換係数を符号化するように適合される。エントロピーコンテキストモデルは、たとえば、ハフマン符号化および/または算術符号化に基づき、可逆データ圧縮により変換係数を符号化するために、選択されたマスクの知識に基づき定義され得る。マスクのエントロピー特性は、予めエンコーダに知られているので、より単純な符号が計算され得る。
【0215】
エントロピーコンテキストモデルは、専用設計モデル、および/または標準ベースのモデル、たとえば、H.265のCABAC/HEVC, H.264/MPEG-4または他の標準などのコンテキスト適応2値算術符号化(CABAC)方式であってよい。
【0216】
112において、計算された変換係数は、さらなる処理、ストレージへの保存、および/または伝送のために用意される。適宜、メディアエンコーダ202に結合されている出力入力インターフェース214は、本明細書で説明されているように、計算された変換係数216を供給するように適合される。
【0217】
適宜、114において、ブロック102〜112は、フレーム内の他のブロックについて繰り返される。ブロック102〜112は、他のフレームについて繰り返され得る。特定のフレームのブロックが並列で処理され得ることに留意されたい。
【0218】
適宜、116において、変換係数は量子化される。量子化は、量子化モジュール218によって実行されるものとしてよく、これは、本明細書で説明されているように、画像および/またはビデオ圧縮標準に基づき得る。
【0219】
適宜、118において、量子化された係数は、フレームまたはフレームの一部分の符号化を作成するようにエントロピー符号化される。適宜、量子化なしで、量子化された変換係数および/または変換係数上で係数スキャンが実行される。エントロピー符号化は、係数スキャンを含むものとしてよい。
【0220】
適宜、メディアエンコーダは、異なる仕方で符号化するように適合されている1つまたは複数の異なるエントロピー符号化モデルを使用して量子化された係数を符号化するようにさらに適合される。エントロピー符号化モデルは、量子化された変換係数に関連付けられているそれぞれの回転対称マスクに基づき選択される。
【0221】
メディアエンコーダは、回転対称ブロックのそれぞれの対を生成するために使用されるそれぞれの回転対称マスクに従って選択されたエントロピーコンテキストモデルを使用して変換係数の各々を符号化するように適合され得る。メディアエンコーダは、回転対称ブロックの対の一方または両方のメンバーに適合されているエントロピーコンテキストモデルを使用して1つまたは複数の変換係数を符号化するように適合され得る。エントロピーコンテキストモデルを使用する符号化は、システム効率および/または性能を改善する。本明細書で説明されているような係数スキャンパターンは、適用される回転対称マスクに基づき、および/または回転対称ブロックに基づき選択され得る。
【0222】
エントロピー符号化は、本明細書で説明されているように、係数スキャンおよび/またはエントロピー符号化を実行して符号化されたフレーム(またはその一部分)のビットストリーム222を生成するように構成されているエントロピー符号化モジュール220によって実行され得る。符号化モジュール220は、エンコーダ202の要素として含まれるものとしてよく、これはメモリ206上に、またはエンコーダ202と通信する外部メモリ上に常駐する。
【0223】
適宜、変換係数は、行列として構成される。係数スキャンは、量子化された変換係数の行列形式上で実行され、係数を線形配列に並べ替えるものとしてよい。係数スキャンは、量子化された変換係数のエントロピー符号化のプロセスの一部として実行され、量子化された変換係数上で可逆圧縮を実行し得る。
【0224】
係数スキャンは、回転対称ブロックの対の各メンバーの2D-DCT符号化が係数の半分に対してゼロを生成するという特性を利用する。係数の総数は、M×N/2(MxNブロックに対して)である。ゼロ値は、対向する対角線上に配置され、M×Nブロック(またはL×L)について、i+jは奇数であり、i=0,1,2,...,M-1、j=0,1,...,N-1である。
【0225】
係数スキャンは、変換係数計算モジュール212Eまたは別のモジュールによって実行されるものとしてよく、これは本明細書で説明されているように係数スキャンを実行するようにさらに構成され得る。
【0226】
適宜、メディアエンコーダは、0係数をスキップしながら変換係数をスキャンすることによって量子化された係数を符号化するようにさらに適合される。ゼロをスキップすることで、非ゼロ係数の圧縮を可能にすることによってシステム性能が改善される。
【0227】
適宜、メディアエンコーダは、1つまたは複数の相補的スキャンパターン、たとえば、垂直、水平、および/または修正ジグザグで変換係数をスキャンすることによって係数を符号化するようにさらに適合される。代替的に、またはそれに加えて、スキャンパターンは、回転対称マスクに対してスキャンパターンのうちの1つをマッチングすることによって複数の候補スキャンパターンから選択される。たとえば、階段状および/または湾曲した切断線(または直線よりも複雑なパターンからなる他の分割パターン)に基づくマスクは、特定のマスクパターンに対応する位置でゼロ値を生成し得る。スキャンパターンは、選択されたマスクに基づく複合パターンであってよい。スキャンパターンは、システム性能を改善するように選択される。マスクが異なると、結果として、ゼロ係数のパターンは異なるが、これらはスキャンパターンが施されるマスクに基づくときに効率的にスキャンされる。
【0228】
相補的スキャンパターンの各1つは、異なる頻度で実行されてよい。スキャンは、低い頻度および/または高い頻度で、または他の分類に基づき実行され得る。係数は、頻度でソートされ、おおよそ半分に、低頻度係数と高頻度係数とに分割され得る。
【0229】
相補的スキャンパターンのうちの各1つは、行列の一方の隅から行列の他方の隅まで実行され得る。代替的に、スキャンパターンは、分割され、異なるスキャンパターンで、たとえば、1つのパターンを一方の隅から始め、第2のパターンを別の隅で終わらせる形で実行され得る。
【0230】
スキャンパターンは、行列の複数の部分領域内で繰り返され得る。行列の部分領域は、画像および/またはビデオ圧縮標準に基づき定義されてよく、たとえば、H.265に基づき、すべてのブロックサイズに対して4×4の部分領域において係数スキャンが実行される。繰り返されるパターンは、いくつかの画像および/またはビデオ圧縮標準と互換性をもたらす。
【0231】
ブロックの対の各それぞれの回転対称ブロックは、たとえば、本明細書で説明されているように、予測因子の残差信号を符号化するための独立コンテキストモデルに関連付けられ得る。対の各回転対称ブロックは、L×Lの係数の代わりに最大1/2 L×Lまでの非ゼロ係数を含み、これは選択された係数スキャンパターンに基づき独立して符号化され得る。
【0232】
選択された回転対称マスクを表すデコーダへの信号は、独立エントロピーコンテキストモデルに基づきエントロピー符号化され得る。
【0233】
各回転対称ブロックの予測について選択された予測因子のタイプを表す信号は、独立エントロピーコンテキストモデルに基づきエントロピー符号化されてよい。タイプの例は、フレーム内予測および/またはフレーム間予測を含む。フレーム内予測については、両方の回転対称ブロックに対する同じ予測因子、または回転対称ブロックの対の各メンバーに対する独立予測因子である。フレーム内予測については、回転対称ブロックの対の各メンバーに対する独立運動ベクトルである。
【0234】
各回転対称ブロックについて選択された係数スキャンのタイプを表す信号は、独立エントロピーコンテキストモデルに基づきエントロピー符号化され得る。タイプは、係数スキャンが選択されたマスクに依存するか、または選択されたマスクから独立しているときを含み得る。タイプは、本明細書で説明されている係数スキャン方法、または標準的な定義済み係数スキャン方法(たとえば、垂直、水平、または修正ジグザグ)のうちの1つを含み得る。
【0235】
メディアエンコーダは、回転対称ブロックのそれぞれの対を生成するために使用されるそれぞれの回転対称マスクに従って選択されたエントロピーコンテキストモデルを使用して予測因子の残差信号の変換係数の各々を符号化するように適合され得る。メディアエンコーダは、回転対称ブロックの対の一方または両方のメンバーに適合されているエントロピーコンテキストモデルを使用して残差信号の1つまたは複数の変換係数を符号化するように適合され得る。
【0236】
120において、係数スキャンに基づき生成されたビットストリームが供給される。ビットストリームは、画像および/またはビデオ圧縮標準、たとえば、HEVCの制約条件に従うものとしてよい。ビットストリームは、記憶され、伝送され(たとえば、リモートサーバおよび/またはリモートクライアントに)、および/またはさらに処理され得る。
【0237】
図1および
図2を再び参照すると、方法および/またはシステムは、画像圧縮標準、たとえば、JPEGによって定義されているような、パーティションに区切られて均一なL×Lブロックサイズにされている画像を符号化するように適用され得る。各L×Lブロックについて、
図1に基づき以下が実行される。
【0238】
104において、ブロック分割するためのマスクは、マスクの所定のセットのうちから選択される。
【0239】
105において、効率尺度は、選択されたマスクに基づきブロックについて評価される。ブロックが、標準に基づき全体としてL×Lブロックの符号化と比較して回転対称ブロックの対を生成するようにマスクを適用することによってより効率的に(効率尺度によって測定されたとおりに)符号化されるときに、エンコーダは、方法の他の部分を続ける。そうでなければ、エンコーダは、標準によって定義されているようにL×Lを単一の矩形として符号化する。
【0240】
116において、回転対称ブロックの対の各々に対して2D変換、スケーリング、および/または量子化に対する標準ベースの方法が適用される。
【0241】
118において、1/2 L×Lの係数のスキャン方法は、固定されているか(たとえば、V、H、および/または修正ジグザグ)、または選択されたマスクに従うものとしてよい。
【0242】
各回転対称ブロックは、別個の関連付けられているイントラ予測因子を有し得る。
【0243】
別個のエントロピーモデルは、1/2 L×Lの非ゼロ係数および/または回転マスクタイプに使用され得る。
【0244】
次に、本発明のいくつかの実施形態による、量子化された係数およびゼロ値係数を含む行列の例、および量子化された係数の符号化のためにいくつかの係数スキャンパターンの例を示す図である
図17A〜
図17Dへの参照がなされる。
図17A〜
図7Cは、8×8回転対称ブロックに基づく量子化された係数行列を示している。
図17Dは、16×16回転対称ブロックに基づく量子化された係数行列を示している。
図17A〜
図17Dに例示されている行列は、H.265標準によって定義されている4×4構造体に適合する特定のパターンでスキャンされる。
【0245】
図17Aは、行列1702および頻度の異なる帯域で実行される相補的スキャンパターンを示している。矢印セット1704Aおよび関係するスキャンされた行列位置1704Bは、低い帯域の頻度のスキャンを示している。矢印セット1706Aおよび関係するスキャンされた行列位置1706Bは、高い帯域の頻度のスキャンを示している。各それぞれの矢印セットは、16個の非ゼロDCT係数をスキャンするものである。
【0246】
図17Bは、行列1710および行列の異なる分割について実行される相補的スキャンパターンを示している。矢印セット1712Aおよび関係するスキャンされた行列位置1712Bは、並んでいる4×4部分領域の上の対のスキャンを示している。矢印セット1714Aおよび関係するスキャンされた行列位置1714Bは、並んでいる4×4部分領域の下の対のスキャンを示している。
【0247】
図17Cは、行列1720および4×4ジグザグパターンに基づく交互配置のジグザグスキャンパターンを示している。1722Aから始まる矢印セットおよび関連するスキャンされた行列位置1722Bは、交互配置のジグザグスキャンパターンのうちの1つを示している。1724Aで終わる矢印セットおよび関連するスキャンされた行列位置1724Bは、他の交互配置のジグザグスキャンパターンを示している。
【0248】
図17Dは、16×16行列と、行列をスキャンするための交互配置の4×4ジグザグスキャンパターンとを示している。行列の各4×4部分領域内のスキャンされた位置は、行列の下に表示される。
【0249】
適宜、最後の非ゼロ変換係数(たとえば、DCT係数および/または量子化された係数)は、符号化される。符号化されたブロック内の最後の非ゼロ係数の位置は、符号化されたケースを復号するために、デコーダに送信され得る。M×Nブロック内の最後の可能な非ゼロ係数は、行列のM,N位置に配置される。最後の非ゼロ係数の位置を表すビットの数は、行列内の最後の非ゼロ係数の位置の最大値に関係する。本明細書で説明されているように、変換(たとえば、DCT)係数の1/2がゼロにされる。
【0250】
適宜、非ゼロ変換係数は、M×Nの総サイズを占有することからサイズ1/2 M×Nのより小さい領域までパッキングされる。係数パッキングは、送信されるビットの数を減らす。ビットの数を減らすことで、システムの効率が改善する。
【0251】
各行列内の最後の非ゼロ係数の位置は、行列上で実行される係数スキャンの順序に従って、たとえば、行列の左上隅の方へシフトされるものとしてよい。非ゼロ値のシフトは、最後の変換係数の位置のサイズを縮小することによってシステム性能を改善する。
【0252】
同様の仕方で、垂直、水平、および/または他のスキャン順序に対するパッキングは、非ゼロ変換係数をパッキングして最後の非ゼロ変換係数の位置をデコーダに指示するために使用され得る。
【0253】
適宜、量子化された係数の符号化は、符号化の一部としてデータセット内に最後の変換係数の座標を記憶することによって実行される。
【0254】
次に、本発明のいくつかの実施形態による、非ゼロ係数のパッキングを示す行列の図である、
図18A〜
図18Cへの参照がなされる。
【0255】
図18Aは、非ゼロ係数のパッキングの前の、係数の半分がゼロ値を有する行列1802、および係数スキャン順序(行列内の線パターン1804および座標1806の隣接するセットによって示されている)を示している。ブロック内の最後の係数の位置は、スキャン順序に従って左上隅の方へシフトされる。最後の係数の位置は、圧縮され、システム性能を改善する。
【0256】
図18Bは、係数スキャン順序に基づき行列1802の係数のパッキングの後の行列1810を示している。パッキングされた配置構成は、線パターン1804のパッキングされた配置構成である、線パターン1812によって表される。座標1814の更新されたセットは、座標1806のパッキングされた配置構成を表す。
【0257】
図18Cは、
図18Aの行列1802の係数のパッキングを理解しやすくするための別の表現である。
図18Cは、
図18Aの行列1802内のパッキング前の係数上にオーバーレイされた
図18Bのパッキング後の線パターン1812を示している。
【0258】
次に、本発明のいくつかの実施形態による、係数エンコーダ/デコーダ1002を組み込んでいる画像データ圧縮および復元のための例示的なシステム1000のブロック図である
図10への参照がなされる。エンコーダ/デコーダ1002は、
図2を参照しつつ説明されているようなメディアエンコーダ202、エンコーダ202の変更形態(たとえば、プロセッサ204なし、別のエンコーダ/デコーダのプロセッサを使用する)、および/または
図1の方法の別の実装を含み得る。システム1000内にエンコーダ1002を組み込むことは、画像および/またはビデオの符号化効率を改善し、これはたとえば、圧縮性能を改善すること、プロセッサリソース要求条件、送信機/受信機要求条件、および/またはメモリ要求条件を低減することによってシステム1000の全体的性能を改善する。エンコーダ1002をシステム1000内に統合することで、画質を高め、画像解像度を高め、および/または同じリソースを使用して処理される画像の数を増やすことができる。
【0259】
係数エンコーダ/デコーダ1002は、デジタル画像および/またはビデオに関連付けられているデバイスおよび/またはシステム内に、たとえば、デジタルカメラ内に、テレビ(たとえば、ハイビジョンテレビ)内に、デジタルカムコーダー内に、テレビ放送ユニット内に、スマートフォン(または他のモバイルデバイス)内に、ウェブブラウザ内に、画像および/またはビデオを視聴し、および/または編集するためのコンピュータソフトウェア内に、ネットワークデバイス内に(ネットワーク性能を改善するために)、リアルタイム変換アプリケーション(たとえば、ビデオチャット、ビデオ会議、およびテレプレゼンスシステム)内に実装され得る。エンコーダ/デコーダ1002の実装は、リソース要求条件(たとえば、メモリ)を引き下げる、たとえば、より多くの画像および/またはビデオをメモリ上に保存できるようにする、より高い画質および/または解像度の画像および/またはビデオを保存できるようにする、各画像および/またはビデオのサイズを縮小し、それによりネットワーク接続で画像および/またはビデオの伝送を高速化できるようにすることによってデバイスおよび/またはシステムの性能を改善し得る。
【0260】
エンコーダ/デコーダ1002は、圧縮および/または復元によって画像および/またはビデオを符号化し、および/または復号するように構成されている画像エンコーダ/デコーダ1004と統合される。エンコーダ/デコーダ1004は、標準(たとえば、HVEC、MPEG-4、JPEG)に基づき、および/または1つもしくは複数の専用プロトコルに基づき得る。係数エンコーダ/デコーダ1002は、画像エンコーダ/デコーダ1004と、たとえば、エンコーダ/デコーダ1004のハードウェア内に組み込まれるチップまたは他のハードウェア要素として、エンコーダ/デコーダ1004内に差し込まれるチップまたは他のハードウェア要素として、外部ソフトウェアモジュールとして、エンコーダ/デコーダ1004のコード内に組み込まれたソフトウェアモジュールとして、および/またはこれらの組合せとして統合され得る。
【0261】
画像エンコーダ/デコーダ1004は、符号化および/または復号コンポーネント、たとえば、量子化(たとえば、量子化モジュール218による)、係数スキャン(たとえば、係数スキャンモジュールによる)、エントロピー符号化(たとえば、エントロピー符号化モジュール220による)、画像内および/または画像間予測(たとえば、予測モジュールによる)のうちの1つまたは複数を含み得る。
【0262】
システム1000は、たとえば、画像生成器1008から、送信機/受信機1010から(たとえば、ネットワークインターフェース、テレビジョンケーブル、ワイヤレストランシーバ)、および/または画像を記憶しているメモリ1012から、1つまたは複数の画像を受信するように構成されている、画像エンコーダ/デコーダ1004に結合されているデータインターフェース1006を備える。
【0263】
受信された画像は、画像エンコーダ/デコーダ1004によって処理され、変換係数は
図1および/または
図2を参照しつつ説明されているような1つまたは複数の画像フレームの1つまたは複数のブロックについて生成される。選択されたマスクによって分割されるように選択されているブロック(またはサブブロック)は、本明細書で説明されているように、係数エンコーダ/デコーダ1002によって処理される。全体として処理されるように選択されている(すなわち、マスクに基づき分割されない)ブロック(またはサブブロック)は、H.265などの画像および/またはビデオ圧縮標準に基づき画像エンコーダ/デコーダ1004によって処理される。
【0264】
画像エンコーダ/デコーダ1004は、ブロック(またはサブブロック)全体が標準によって定義されているように処理されるときに、またはブロックがたとえば、H.265標準または他の標準に基づき、回転対称ブロックの対(本明細書で説明されているような)に分割されるときに、整数変換、スケーリング、量子化、および/または逆量子化を実行するものとしてよい。
【0265】
圧縮された画像は、メモリ1012に記憶され、および/または送信機/受信機1010を使用して伝送され得る。
【0266】
復号されるときに、画像は、メモリ1012上の記憶ストレージから取り出され、および/または送信機/受信機1010から受信され得る。復号は、画像エンコーダ/デコーダ1004によって行われ、本明細書で説明されているように係数エンコーダ/デコーダ1002によって変換係数の復号が行われる。復号された画像は、ディスプレイ1014上に表示され、送信機受信機1010によって伝送され、および/またはメモリ1012上に記憶され得る。
【0267】
次に、本発明のいくつかの実施形態による、係数エンコーダ1002と統合された、H.265標準に基づく、
図10の画像エンコーダ1004によるビデオ符号化を示すブロック図である
図19Aへの参照がなされる。ボールドでないブロックおよび/または英字は、エンコーダ1004によって実行されるH.265標準に基づく符号化を示している。ボールドのブロックおよび/またはボールド体の英字は、エンコーダ1002によって実行される構造体および/または関数を示している。画像エンコーダ/デコーダ1004(イタリック体で示されている関数)によって実行されるHEVC標準を参照すると、係数エンコーダ/デコーダ1002は、次のように性能を改善するために統合され得る。
【0268】
*一般的なコーダ制御:各ブロックまたはサブブロックについて、エンコーダ1002は、選択されたマスクを使用してブロックを分割することによってブロックがいつ符号化されるか、およびHEVC標準によって定義されている方法によってブロックが全体としていつ符号化されるかを決定する。一般的な制御データは、ブロックを分割し、対称ブロックの対を生成するために使用される選択されたマスクのシグナリングを行うヘッダを含む。
【0269】
*変換、スケーリング、および量子化:HEVC方法は、エンコーダ1002によって生成された回転対称ブロックの対のうちの各1つに適用される。係数は、本明細書で説明されているように、1/2 L×L量子化変換係数についてゼロ値をスキップすることによってスキャンされる。
【0270】
*スケーリング&逆変換:HEVC方法は、エンコーダ1002によって生成された回転対称ブロックの対のうちの各1つに適用される。
【0271】
*画像内推定:HEVC方法は、回転対称ブロックの対のうちの各1つに適用される。
【0272】
*画像内予測:HEVC方法は、回転対称ブロックの対のうちの各1つに適用される。別のイントラ予測因子が、回転対称ブロックの対の各々について生成される。
【0273】
*運動補償:HEVC方法は、回転対称ブロックの対のうちの各1つに適用される。
【0274】
*運動推定:HEVC方法は、回転対称ブロックの対のうちの各1つに適用される。別の運動ベクトルが、回転対称ブロックの対の各々について生成される。
【0275】
*ヘッダフォーマッティング&コンテキスト適応2値算術符号化(CABAC):エントロピーモデル(本明細書で説明されているような)は、回転対称ブロックの対の各々について1/2 L×L係数、選択されたマスク、および/またはイントラ予測因子をシグナリングするために適用される。
【0276】
次に、本発明のいくつかの実施形態による、係数デコーダ1002と統合された、H.265標準に基づく、
図10の画像デコーダ1004によるビデオ復号を示すブロック図である
図19Bへの参照がなされる。復号機能は、
図10を参照しつつ説明されている符号化機能に基づいており、本明細書で説明されているとおりである。ボールドでないブロックおよび/または英字は、デコーダ1004によって実行されるH.265標準に基づく復号を示している。ボールドのブロックおよび/またはボールド体の英字は、デコーダ1002によって実行される構造体および/または関数を示している。C2は、回転対称ブロックの対を表している。
【0277】
次に、本発明のいくつかの実施形態による、係数エンコーダ1002と統合された、H.265標準に基づく(たとえば、
図19Aの符号化間部分の除去の後)、
図10の画像エンコーダ1004による単一の画像符号化を示すブロック図である
図20への参照がなされる。画像間ブロックに関係する構造体、関数、および/またはデータフローは、単一の画像符号化のために取り除かれている。ボールドでないブロックおよび/または英字は、エンコーダ1004によって実行されるH.265標準に基づく符号化を示している。ボールドのブロックおよび/またはボールド体の英字は、エンコーダ1002によって実行される構造体および/または関数を示している。
【0278】
次に、本発明のいくつかの実施形態による、係数デコーダ1002と統合された、H.265標準に基づく(たとえば、
図19Bの符号化間部分の除去の後)、
図10の画像デコーダ1004による単一の画像復号を示すブロック図である
図21への参照がなされる。画像間ブロックに関係する構造体、関数、および/またはデータフローは、単一の画像復号のために取り除かれている。ボールドでないブロックおよび/または英字は、デコーダ1004によって実行されるH.265標準に基づく復号を示している。ボールドのブロックおよび/またはボールド体の英字は、デコーダ1002によって実行される構造体および/または関数を示している。
【0279】
適宜、122において、ブロック102〜120のうちの1つまたは複数は、フレーム内の他のブロックおよび/またはサブブロックについて繰り返される。ブロック102〜120のうちの1つまたは複数は、他のフレームについて繰り返され得る。特定のフレームのブロックが並列で処理され得ることに留意されたい。
【0280】
次に、本発明のいくつかの実施形態による、変換係数のセットからフレーム内にブロックを再構成するための方法のフローチャートである
図11への参照がなされている。
図11の方法は、
図1の方法に基づき、その方法に対して相補的である。
図1の方法は、ブロックを変換することを示しており、これは
図11の方法に基づく逆変換である。
図11の方法は、メディアデコーダの逆変換部分として働くように構成されているメディアエンコーダの
図2の変換部分によって実行され得る。逆変換は、それぞれ変換モジュールによって、および/または逆変換処理コンポーネントのうちの1つまたは複数を実行するように構成されている他のモジュールによって実行され得る。
【0281】
1100において、符号化されたフレームまたはその一部を表す1つまたは複数の変換(たとえば、符号化されたおよび/または量子化された)係数が受信される。変換係数は、ビットストリームとして受信され得る。関連付けられている選択された回転対称マスクを表す信号は、ビットストリーム内などで受信され得る。回転対称マスクは、フレームの復号されたブロックとしてのサイズおよび/または形状を有する多次元空間内の回転対称を定義する。
【0282】
関連付けられている選択された回転対称マスクを表す信号は、受信されるか、または故意に受信されなかったときに知られているとみなされ得る(たとえば、マスクは予測因子の指示から推論される)。回転対称マスクは、フレームの復号されたブロックとしてのサイズおよび/または形状を有する多次元空間内の回転対称を定義する。
【0283】
1102において、回転対称ブロックの対の各メンバーを表す変換係数は、ビットストリームから復号される。
【0284】
変換係数は、回転対称ブロックの対の1つまたは複数のメンバーを表す。いくつかの場合において、係数のない1つまたは複数の回転対称ブロックが受信され、および/または受信されない場合があり(たとえば、係数のないブロックはスキップされ得る)、たとえば、回転対称ブロックを表す変換係数を表さない信号が受信され得ることに留意されたい。代替的に、またはそれに加えて、いくつかの場合において、ブロック全体についてただ1つの係数が受信されることに留意されたい(たとえば、DC係数)。
【0285】
1104において、回転対称ブロックの対は、復号された変換係数の逆変換に基づき計算される。回転対称ブロックの対の各メンバーは、2つの相補的部分のうちの一方を含む。
【0286】
1106において、2つの相補的部分の各部分は、回転対称ブロックの対の各それぞれのメンバーから抽出される。
【0287】
1108において、2つの相補的部分からブロックが再構成される。再構成は、回転対称マスクに基づきガイドされ得る。代替的に、ブロックは、マスクなしでそれらの部分から再構成され、正方形または矩形のブロックを形成することに基づきガイドされ、たとえば、パズルピースのように2つの部分を繋ぎ合わせる。
【0288】
適宜、ブロックは、フレーム内で指定される。
【0289】
適宜、ブロック1100〜1108は、フレームの複数のブロック(および/またはサブブロック)を復号し、再構成するために繰り返される(並列に、および/または順次的に)。
【0290】
1111において、複数の復号されたブロックは組み合わされてフレームまたはその一部にする。
【0291】
1112において、さらなる処理、記憶のために復号されたフレームが用意され、および/または伝送される。フレームは、画面に、たとえば、ビデオの一部として表示され得る。
【0292】
次に、本明細書で説明されている方法および/またはシステムを実行した実験的結果の画像およびグラフを含む図である
図12A〜
図12Iへの参照がなされる。このグラフは、圧縮標準に基づく方法を使用する画像データ圧縮に関して、本明細書において説明されているシステムおよび/または方法を使用する性能の改善を示している。これらの実験は、フレーム内符号化方法を使用する個別のフレームに基づく。
【0293】
これらの実験は、次のように実行される。
【0294】
各YUVビデオシーケンスからの1つのフレームが取得される。さまざまなフレームサイズが使用され、これは、共通中間フォーマット(CIF)、1/4-CIF(QCIF)、および高解像度(HD)を含む、異なる標準によって定義されている。各フレームは、8×8、16×16、および32×32ピクセルのサイズを含む、均一にパーティションに区切られ固定されたN×Nサイズのブロックにされる。
【0295】
マスク選択および適用に対して、2×(N-1)の異なる線配向を含む回転対称マスクライブラリが生成される。
【0296】
整数変換、スケーリング、および量子化方式は、H.265標準に基づき適用される。
【0297】
係数スキャンは、変換係数のN×N行列を変換係数の4×4の部分行列に細分することによって実行される。係数スキャンは、ゼロ係数をスキップしながら各4×4行列においてジグザグスキャンを使用して実行される。
【0298】
変換係数は、H.264 CAVLC標準に基づき符号化され、これは予測モード、マスクタイプ、およびMBtype(本明細書では選択された符号化されたブロックとして定義される(すなわち、標準N×Nブロックまたは本明細書で説明されているように2つの相補的部分に分割されたブロック))に対する信号も定義した。
【0299】
N×Nブロックに対するブロックイントラ予測は、4つのモード、すなわち、垂直(V)、水平(H)、DC(すなわち、フラット)(D)、および平面(P)に基づく。回転対称ブロックの対の符号化メンバーは、別個の、および/または共通のイントラ予測因子に基づく。共通イントラ予測因子は、4つのイントラモード、すなわち、V、H、D、およびPを含む。別個のイントラ予測因子は、4つのイントラモードの組合せの順列、VV、VH、...、およびPPに基づく16個のイントラモードを含む。
【0300】
標準N×N符号化方法に基づき特定のブロックを符号化するかどうか、または回転対称マスクを適用し回転対称ブロック(本明細書で説明されているような)の対を符号化するかどうかを決定することは、SSE+lambda*Bitsとして定義されている速度歪み(RD)費用関数に基づいており、ここで、SSEは、再構成されたブロックと入力ブロックとの間の平方誤差の総和を表し、lambdaは、量子化パラメータ(Qp)に依存する項を表し、Bitsは、シグナリングビットを含むブロック内の符号化されたビットの数を表す。符号化決定は、また、非ゼロ係数のパーセンテージに基づくようにもされた(PerNZ Coeffによってグラフにおいて表される)。
【0302】
同じPSNRに対する最大15%までのビットレートの削減が示されている。35個のQCIFシーケンスフレームについて、サイズ16×16のブロックに分割されると、35〜45dBのPSNR範囲に対してビットレートの約7%の平均的削減が得られた。サイズ16×16のブロックに分割される、10個のより大きいサイズのシーケンスフレームについて、約7.5%の平均削減が達成された。
【0303】
図12Aは、本明細書で説明されている実験の一部として本明細書で説明されているシステムおよび/または方法により処理される画像(たとえば、フレーム)の一例である。画像は、akiyo.cifという名前のCIFシーケンスの10番目のフレームに対応する。CIFフレームは、サイズ352×288ピクセルを有する。フレームは、正方形N×Nブロックに基づき均一にパーティション区切られてブロックにされ、ただしN=16ピクセルである(例示的ブロックは、1202で表されている)。フレームは、Qp=30を使用して符号化される。2(N-1)=30の異なる線配向を含む回転対称マスクライブラリは、ブロックを分割するためのマスクの選択の基準をもたらす。選択されたマスクを線配向と関連付けているブロックが図に示されており、たとえば、マスク1204を有するブロックである。多くの場合において、マスク線は、ブロック内のエッジに従う。マスクが選択されなかったブロックは、単一のN×Nブロックとして符号化され、マスクなしの画像、たとえば、ブロック1202内に示された。
【0305】
図12Bは、同じ客観的画質レベル(PSNRで表されている)で、標準N×N変換ブロックを使用して
図12Aの符号化画像上で、符号化するための2つの相補的部分にブロックを分割するようにマスクが選択されたときの
図12Aのフレーム全体に対するビットレートに関する改善を示すグラフである。グラフは、ビットレート改善のパーセントをPSNRの関数として示している。本明細書で説明されているシステムおよび/または方法を使用する
図12Aの画像について10%を超えるビットレートの改善が達成されたことに留意されたい。
【0306】
図12Cは、同じ客観的画質レベル(PSNRで表されている)で、標準N×N変換ブロックを使用して
図12Aの符号化画像上で、符号化するための2つの相補的部分にブロックを分割するようにマスクが選択されたときの
図12Aのフレーム全体に対する非ゼロ毎の(PerNZ)係数に関する改善を示すグラフである。量子化の後の非ゼロである変換係数の数は、変換係数を符号化するための符号化されたビットの数を推定するために使用される。非ゼロ係数尺度は、シグナリングビットのオーバーヘッドを含まない(たとえば、予測モード、マスク選択モード、およびMBタイプ)ことに留意されたい。グラフは、本明細書で説明されているシステムおよび/または方法を使用して約15%の非ゼロ変換係数のパーセンテージに関する改善を示している。
【0307】
図12Dは、C2処理方式およびN×N処理方式に対する、ビットレートの関数としてY-PSNRを示すグラフである。C2処理方式は、変換ブロックに対する2つの相補的部分のマスク選択および生成のいずれかに基づき本明細書で説明されている方法および/またはシステムであるか、または標準方法を使用してN×Nブロックを符号化する。マスクベースの符号化またはN×Nブロックベースの符号化の選択は、各マスクベースのパーティションおよび各N×Nブロックに関連付けられている特定の尺度に基づく。N×N処理方式は、単一のN×Nブロックとして各ブロックを符号化する標準方法に基づく。グラフは、C2方法が、同じビットレートに対して改善された画質を表す、同じPSNR値に対する、N×N方法よりも低いビットレートを達成したことを示している。
【0308】
図12Eは、C2方法およびN×N方法に基づく、フレーム全体に対する非ゼロ変換係数のパーセントの関数としてY-PSNRを示すグラフである。グラフは、非ゼロ変換係数の同じパーセンテージに対する改善された画質を表す、同じPSNRに対する非ゼロ変換係数のより低いパーセンテージに関する、C2方法(すなわち、本明細書で説明されているシステムおよび/または方法)に基づく改善された圧縮性能を示している。
【0309】
図12Fは、N×Nの標準的な場合に対するイントラ予測モードの適用の頻度を示すヒストグラムである。x軸では、1は予測なしを表し、2は垂直予測を表し、3は水平予測を表し、4はDC予測を表し、5は平面予測を表す。
【0310】
図12Gは、16個の別々の予測因子モードに対する、本明細書において説明されている方法および/またはシステムのC2方式に対するイントラ予測モードの適用の頻度を示すヒストグラムであり、1は予測なしを表し、2はVV予測を表し、3はVH予測を表し、4はVD予測を表し、5はVP予測を表し、6はHV予測を表し、...、17はPP予測を表す。
【0311】
図12Hは、30個の回転対称マスクのライブラリの各マスクの適用の頻度を示すヒストグラムである。
【0312】
図12Iは、Qpの関数としての3つの変数の比を示すグラフである。
【0313】
線1214は、C2方法が画像のブロックに対する標準のN×N方法の上で選択されたブロックのパーセンテージを示す。たとえば、Qp=30において、フレーム内のブロックの約35%が、C2方法に基づき(マスク選択および2つの相補的部分の符号化に基づき)符号化されているが、残り(約65%)は、単一の16×16ブロックとして符号化された。
【0314】
線1212は、C2方法に基づき符号化されたフレームのビットのパーセンテージを示す。たとえば、Qp=30において、フレーム内のビットの約45%は、C2方法に基づき符号化された。
【0315】
線1210は、C2方法を使用して符号化されたフレームの非ゼロ毎の変換係数のパーセンテージを示す。たとえば、Qp=30において、フレーム内の非ゼロ毎の変換係数の45%超は、C2方法を使用して符号化された。
【0316】
本発明のさまざまな実施形態の説明は、例示を目的として提示されているが、網羅的であること、または開示されている実施形態に制限されることを意図されていない。多くの修正形態および変更形態は、説明されている実施形態の範囲および精神から逸脱することなく当業者には明らかであろう。本明細書で使用されている用語は、実施形態の原理、市場に見られる技術に勝る実用用途または技術的改善を最もよく説明するか、または他の当業者が本明細書で開示されている実施形態を理解できるように選択された。
【0317】
本出願から成熟する特許の存続期間中に、多くの関連する画像エンコーダおよび/または画像デコーダが開発されることが予想され、エンコーダという用語の範囲は、そのようなすべての新しい技術を先験的に含むことが意図されている。
【0318】
本明細書で使用されているように、「約」という語は、±10%を指す。
【0319】
「備える」、「備えている」、「含む」、「含んでいる」、「有している」、およびそれらの活用形は、「限定はしないが含む」ことを意味する。この言い回しは、「〜からなる」および「本質的に〜からなる」という言い回しを包含する。
【0320】
「本質的に〜からなる」という語句は、組成または方法が、追加の材料および/またはステップを含むが、追加の材料および/またはステップが請求されている組成または方法の基本的な、および新規性のある特性を実質的に変えない場合に限ることを意味する。
【0321】
本明細書の英語原文で使用されているように、英文中の単数形の「a」、「an」、および「the」は、文脈上明らかに他の意味に解すべき場合を除き、複数の指示対象を含む。たとえば、「化合物」または「少なくとも1つの化合物」という言い回しは、その混合物を含めて、複数の化合物を含み得る。
【0322】
「例示的な」という単語は、本明細書では、「一例、事例、または例示として使用する」ことを意味するために使用される。「例示的な」として記述される実施形態は、必ずしも、他の実施形態よりも好ましい、または有利であると解釈される、および/または他の実施形態から特徴の組み込みを除外する、ことをしない。
【0323】
「適宜」という言い回しは、本明細書では、「いくつかの実施形態において提供され、他の実施形態では提供されない」ことを意味するために使用される。本発明の特定の実施形態は、このような特徴が食い違うことがない限り複数の「オプションの」特徴を含み得る。
【0324】
本出願全体を通して、本発明のさまざまな実施形態が、範囲形式で提示され得る。範囲形式の説明は、単に簡潔にするための便宜上のものであり、本発明の範囲に対する柔軟性のない制限として解釈されるべきでないことは理解されるであろう。したがって、範囲の説明は、特に開示されているすべての可能な部分範囲さらにはその範囲内の個別の数値を有するものとして考えられるべきである。たとえば、1から6までのなどの範囲の説明は、1から3まで、1から4まで、1から5まで、2から4まで、2から6まで、3から6までなどの特に開示されている部分範囲、さらには、その範囲内の個別の数、たとえば、1、2、3、4、5、および6を有すると考えられるべきである。これは、範囲の広さに関係なく適用される。
【0325】
数値範囲が、本明細書で指示されている場合には、必ず、指示された範囲内に引用される数(分数または整数)を含めることが意図されている。第1の指示する数と第2の指示する数と「の間の範囲にある/範囲」および第1の指示する数「から」第2の指示する数「までの範囲にある/範囲」という言い回しは、本明細書では交換可能に使用され、第1および第2の指示された数と、それらの間のすべて分数および整数とを含むことが意図されている。
【0326】
わかりやすくするために、別々の実施形態の背景状況において説明されている、本発明のいくつかの特徴も、単一の実施形態において組み合わせて実装され得ることは理解されるであろう。逆に、簡潔にするため、単一の実施形態の背景状況において説明されている、本発明のさまざまな特徴も、別々に、または適当な部分組合せで、または本発明の他の説明されている実施形態において適切なように提供され得る。さまざまな実施形態の背景において説明されているいくつかの特徴は、実施形態がこれらの要素がないと動作不能にならない限り、これらの実施形態の本質的な特徴と考えられるべきでない。
【0327】
本発明は、その特定の実施形態と併せて説明されているけれども、多くの代替的形態、修正形態、および変更形態が、当業者には明らかであることは明白である。したがって、本発明は、付属の請求項の精神と広い範囲内に収まるすべてのそのような代替的形態、修正形態、および変更形態を包含することが意図されている。
【0328】
本明細書で言及されているすべての刊行物、特許、および特許出願は、それぞれの個別の刊行物、特許、または特許出願が、参照により本明細書に組み込まれることが特に、また個別に指示されている場合と同じ範囲にわたって、その全体が参照により本明細書に組み込まれる。それに加えて、本出願における文献の引用または識別は、そのような文献が本発明への従来技術として利用可能であることを認めるものとして解釈されないものとする。節の見出しが使用される限り、これらは、必要な制限と解釈されるべきでない。