(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-26
(54)【発明の名称】幾何学的クロスコンポーネントフィルタリング
(51)【国際特許分類】
H04N 19/117 20140101AFI20221219BHJP
H04N 19/14 20140101ALI20221219BHJP
H04N 19/176 20140101ALI20221219BHJP
【FI】
H04N19/117
H04N19/14
H04N19/176
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022523508
(86)(22)【出願日】2021-04-13
(85)【翻訳文提出日】2022-04-20
(86)【国際出願番号】 US2021027024
(87)【国際公開番号】W WO2021221901
(87)【国際公開日】2021-11-04
(32)【優先日】2020-04-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-10-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イシン・ドゥ
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159PP16
5C159TA68
5C159TB08
5C159TC01
5C159TD09
5C159UA02
5C159UA05
5C159UA11
5C159UA22
(57)【要約】
ビデオデータを符号化及び復号化するための方法、コンピュータプログラム及びコンピュータシステムを提供する。ビデオデータを受信し、受信したビデオデータのサンプルブロックの方向性を決定する。方向性は、例えばエッジ方向や勾配などの記述子に対応する。決定した方向性に基づいて幾何学的変換を適用する。適用された幾何学的変換に基づいてビデオデータを復号化する。
【特許請求の範囲】
【請求項1】
プロセッサが実行可能なビデオコーディング方法であって、
ビデオデータを受信するステップと、
受信したビデオデータのサンプルブロックの方向性を決定するステップであって、前記方向性が記述子に対応するステップと、
決定した方向性に基づいて、幾何学的変換を適用するステップと、
適用された幾何学的変換に基づいて、前記ビデオデータを復号化するステップと、
を含む方法。
【請求項2】
前記記述子は、エッジ方向及び勾配値のうち1つ又は複数に対応する請求項1に記載の方法。
【請求項3】
前記記述子がエッジ方向に対応する場合、前記エッジ方向及びエッジ位置に基づいて前記方向性を決定する請求項2に記載の方法。
【請求項4】
前記記述子が勾配値に対応する場合、前記ビデオデータのエッジに対応する方向に沿った勾配値に基づいて、前記方向性を決定する請求項2に記載の方法。
【請求項5】
受信したビデオデータのサンプルブロックに関連付けられた入力色成分に基づいて、前記方向性を決定する請求項1に記載の方法。
【請求項6】
受信したビデオデータのサンプルブロックに関連付けられた出力色成分に基づいて、前記方向性を決定する請求項1に記載の方法。
【請求項7】
前記方向性に基づいて、クロスコンポーネントフィルタのフィルタ係数又はフィルタサポート領域における再構成サンプルを変換する請求項1に記載の方法。
【請求項8】
エッジ方向によってブロックの方向性を認識する場合、認識されたエッジ方向に基づいて前記フィルタ係数又は前記フィルタサポート領域における再構成サンプルを回転する請求項7に記載の方法。
【請求項9】
ターゲット方向は、単一の方向のみを含む請求項8に記載の方法。
【請求項10】
現在ブロックのエッジ方向が水平であることに基づいて、回転を実行しなく、
現在ブロックのエッジ方向が垂直であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに90度回転し、
現在ブロックのエッジ方向が45度であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに135度回転し、
現在ブロックのエッジ方向が135度であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに45度回転し、
前記現在ブロックが、エッジが検出されていない滑らかな領域であることに基づいて、回転を実行しない請求項9に記載の方法。
【請求項11】
ターゲット方向は、複数の方向を含む請求項8に記載の方法。
【請求項12】
前記ターゲット方向が水平及び垂直である場合、
現在ブロックのエッジ方向が水平であることに基づいて、回転を実行しなく、
現在ブロックのエッジ方向が垂直であることに基づいて、回転を実行しなく、
現在ブロックのエッジ方向が45度であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに45度回転し、
現在ブロックのエッジ方向が135度であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに45度回転し、
前記現在ブロックが、エッジが検出されていない滑らかな領域であることに基づいて、回転を実行しない請求項11に記載の方法。
【請求項13】
前記クロスコンポーネントフィルタが現在ブロック内の全てのサンプルを走査することに基づいて回転を実行する請求項7に記載の方法。
【請求項14】
前記クロスコンポーネントフィルタが現在ブロック内のエッジ上に位置するサンプルのみを走査することに基づいて回転を実行する請求項7に記載の方法。
【請求項15】
勾配値によってブロックの方向性を認識する場合、前記勾配値に基づいて前記フィルタ係数又は前記フィルタサポート領域における再構成サンプルを変換する請求項7に記載の方法。
【請求項16】
前記クロスコンポーネントフィルタのフィルタ係数の変換がエッジ方向及び勾配の両方に依存するように、前記ブロックの方向性がエッジ方向及び勾配の両方によって測定される請求項15に記載の方法。
【請求項17】
前記エッジ方向は、前記フィルタ係数が回転されるかどうかを決定し、前記勾配は、前記フィルタ係数が反転されるかどうかを決定する請求項16に記載の方法。
【請求項18】
前記幾何学的変換は、前記クロスコンポーネントフィルタのトレーニングプロセスに適用される請求項7に記載の方法。
【請求項19】
ビデオコーデックのためのコンピュータシステムであって、
コンピュータプログラムコードを記憶するように配置される1つ又は複数のコンピュータ可読非一時的記憶媒体と、
前記コンピュータプログラムコードにアクセスして前記コンピュータプログラムコードの指示に従って動作するように配置される1つ又は複数のコンピュータプロセッサと、
を含み、
前記コンピュータプログラムコードは、
前記1つ又は複数のコンピュータプロセッサに、ビデオデータを受信させるように配置される受信コードと、
前記1つ又は複数のコンピュータプロセッサに、受信したビデオデータのサンプルブロックの方向性を決定させる決定コードであって、前記方向性が、記述子に対応する決定コードと、
前記1つ又は複数のコンピュータプロセッサに、決定した方向性に基づいて幾何学的変換を適用させるように配置される適用コードと、
前記1つ又は複数のコンピュータプロセッサに、適用された幾何学的変換に基づいて前記ビデオデータを復号化させるように配置される復号化コードと、を含むコンピュータシステム。
【請求項20】
ビデオコーデックのためのコンピュータプログラムを記憶している非一時的コンピュータ可読媒体であって、前記コンピュータプログラムは、1つ又は複数のコンピュータプロセッサに、
ビデオデータを受信するステップと、
受信したビデオデータのサンプルブロックの方向性を決定するステップであって、前記方向性が、記述子に対応するステップと、
決定した方向性に基づいて幾何学的変換を適用するステップと、
適用された幾何学的変換に基づいて前記ビデオデータを復号化するステップと、を実行させるように配置される非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年4月26日に米国特許商標庁に提出された仮特許出願第63/015,586号、及び2020年10月22日に提出された特許出願第17/077,564号に基づく優先権の利益を主張し、これらの2つの特許の全内容を援用により本明細書に取り込む。
【0002】
本開示は、一般的に、データ処理の分野に関し、より具体的には、ビデオ符号化及び復号化に関する。
【背景技術】
【0003】
AOMedia Video 1(AV1)は、インターネットを介したビデオ伝送用に設計されたオープンビデオコーディングフォーマットである。これは、2015年に設立された、半導体企業、ビデオオンデマンドプロバイダ、ビデオコンテンツプロデューサ、ソフトウェア開発企業、及びWebブラウザーベンダーを含むコンソーシアムであるAlliance for Open Media(AOMedia)によってVP9の後継として開発された。AV1プロジェクトの多くの部分は、コンソーシアムメンバーによる以前の研究から生まれた。個々の貢献者は、数年前に実験的なテクノロジープラットフォームを開始した。Xiph/MozillaのDaalaは、2010年にコードをリリースし、Googleの実験的なVP9進化プロジェクトVP10は、2014年9月12日に発表され、CiscoのThorは、2015年8月11日にリリースされた。VP9のコードベースに基づいて、AV1hには他のテクノロジーが組み込まれており、その一部は、これらの実験形式で開発された。AV1リファレンスコーデックの最初のバージョン0.1.0は、2016年4月7日にリリースされた。当該コンソーシアムは2018年3月28日にAV1ビットストリーム仕様のリリース、及びソフトウェアに基づくリファレンスエンコーダ及びデコーダを発表した。2018年6月25日に、当該仕様の検証済みバージョン1.0.0がリリースされた。2019年1月8日に、当該仕様のエラッタ1付き検証済みバージョン1.0.0がリリースされた。AV1ビットストリーム仕様には、リファレンスビデオコーデックが含まれる。
【発明の概要】
【課題を解決するための手段】
【0004】
実施形態は、ビデオデータをコーディングするための方法、システム及びコンピュータ可読媒体を提供する。一態様によれば、ビデオデータをコーディングするための方法を提供する。当該方法は、ビデオデータを受信するステップと、受信したビデオデータのサンプルブロックの方向性を決定するステップであって、方向性が、例えばエッジ方向や勾配などの記述子に対応するステップと、決定した方向性に基づいて幾何学的変換を適用するステップと、適用された幾何学的変換に基づいてビデオデータを復号化するステップと、を含むことができる。
【0005】
別の態様によれば、ビデオデータをコーディングするためのコンピュータシステムを提供する。コンピュータシステムは、1つ又は複数のプロセッサと、1つ又は複数のコンピュータ可読メモリと、1つ又は複数のコンピュータ可読有形記憶装置及びプログラム命令と、を含んでもよく、前記プログラム命令は、1つ又は複数の記憶装置のうち少なくとも1つに記憶され、1つ又は複数のプロセッサのうち少なくとも1つによって1つ又は複数のメモリのうち少なくとも1つを介して実行されることにより、コンピュータシステムは、方法を実行することができ、当該方法は、ビデオデータを受信するステップと、受信したビデオデータのサンプルブロックの方向性を決定するステップであって、方向性が、例えばエッジ方向や勾配などの記述子に対応するステップと、決定した方向性に基づいて幾何学的変換を適用するステップと、適用された幾何学的変換に基づいてビデオデータを復号化するステップと、を含むことができる。
【0006】
さらに別の態様によれば、ビデオデータをコーディングするためのコンピュータ可読媒体を提供する。コンピュータ可読媒体は、1つ又は複数のコンピュータ可読記憶装置、及び1つ又は複数の有形記憶装置のうち少なくとも1つに記憶されたプログラム命令を含み、プログラム命令は、プロセッサによって実行されることができる。プログラム命令は、方法を実行するためにプロセッサによって実行可能であり、それに応じて、当該方法は、ビデオデータを受信するステップと、受信したビデオデータのサンプルブロックの方向性を決定するステップであって、方向性が、例えばエッジ方向や勾配などの記述子に対応するステップと、決定した方向性に基づいて幾何学的変換を適用するステップと、適用された幾何学的変換に基づいてビデオデータを復号化するステップと、を含むことができる。
【図面の簡単な説明】
【0007】
これら及び他の目的、特徴及び利点は、添付の図面と併せて読む例示的な実施形態の以下の詳細な説明から明らかになる。図面の様々な特徴は、図示を明確にするために、詳細な説明に関連して当業者による理解を容易にするために、一定の比率で描かれていない。図面において、
【0008】
【
図1】少なくとも1つの実施形態によるネットワーク化されたコンピュータ環境を示す。
【
図2】少なくとも1つの実施形態によるビデオデータの例示的なエッジ方向の図である。
【
図3A】少なくとも1つの実施形態による例示的な幾何学的変換プロセスである。
【
図3B】少なくとも1つの実施形態による例示的な幾何学的変換プロセスである。
【
図4】少なくとも1つの実施形態による1つ又は複数の勾配方向に対応するサンプルの例示的なサブサンプリング位置の図である。
【
図5】少なくとも1つの実施形態による、ビデオデータの認識されたエッジに対応する幾何学的変換を適用することに基づいてビデオデータをコーディングするためのプログラムによって実行されるステップを示す動作フローチャートである。
【
図6】少なくとも1つの実施形態による、
図1に示されるコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図7】少なくとも1つの実施形態による、
図6の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【
図8】少なくとも1つの実施形態による、
図1に示されるコンピュータ及びサーバーの内部コンポーネント及び外部コンポーネントのブロック図である。
【発明を実施するための形態】
【0009】
保護請求された構成及び方法の詳細な実施形態は、本明細書に開示されている。しかしながら、開示された実施形態は、様々な形態で実施される、保護請求された構成及び方法の単なる例示であることが理解されるべきである。しかしながら、これらの構成及び方法は、多くの異なる形態で実施されることができ、本明細書に記載の例示的な実施形態に限定されると解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が徹底的かつ完全であり、その範囲を当業者に完全に伝えるように提供される。明細書では、提示された実施形態を不必要に曖昧にすることを回避するために、周知の特徴及び技術の詳細を省略してもよい。
【0010】
実施形態は、一般的に、データ処理の分野に関し、より具体的は、ビデオの符号化及び復号化に関する。また、以下に説明する例示的な実施形態は、以下のシステム、方法及びコンピュータプログラムを提供し、当該システム、方法及びコンピュータプログラムは、ビデオデータ内の検出されたエッジに幾何学的変換を適用することに基づいてビデオデータを符号化及び復号化する。そのため、いくつかの実施形態は、ビデオデータにおけるエッジ検出を改善することによってビデオデータの符号化及び復号化を改善することを可能にすることで、コンピューティングの分野を改善する能力を有する。
【0011】
上記のように、AOMedia Video 1(AV1)は、インターネットを介したビデオ伝送用に設計されたオープンビデオコーディングフォーマットである。AV1は、2015年に設立された、半導体企業、ビデオオンデマンドプロバイダ、ビデオコンテンツプロデューサ、ソフトウェア開発企業、及びWebブラウザーベンダーを含むコンソーシアムであるAlliance for Open Media(AOMedia)によってVP9の後継として開発された。AV1プロジェクトの多くの部分は、コンソーシアムメンバーによる以前の研究から生まれた。個々の貢献者は数年前に実験的なテクノロジープラットフォームを開始した。Xiph/MozillaのDaalaは、2010年にコードをリリースし、Googleの実験的なVP9進化プロジェクトVP10は、2014年9月12日に発表され、CiscoのThorは、2015年8月11日にリリースされた。VP9のコードベースに基づいて、AV1hには他のテクノロジーが組み込まれており、その一部は、これらの実験形式で開発された。AV1リファレンスコーデックの最初のバージョン0.1.0は、2016年4月7日にリリースされた。当該コンソーシアムは2018年3月28日にAV1ビットストリーム仕様のリリース、及びソフトウェアベースのリファレンス符号化器及び復号化器を発表した。2018年6月25日に、当該仕様の検証済みバージョン1.0.0がリリースされた。2019年1月8日に、当該仕様のエラッタ1付き検証済みバージョン1.0.0がリリースされた。AV1ビットストリーム仕様には、リファレンスビデオコーデックが含まれる。
【0012】
AV1では、クロスコンポーネントフィルタリング方法は、第1の色成分の再構成サンプルを入力(例えば、Y又はCb又はCr)として使用し、出力が、第1の色成分とは異なる色成分としての第2の色成分に適用されるフィルタリングプロセスとして定義される。しかしながら、クロスコンポーネントフィルタリング(CCF)でゃ、サンプルの方向性は考慮されていないため、CCFのパフォーマンスに影響を与える可能性がある。ALFでは、フィルタ係数の幾何学的変換は、異なる方向性を処理するのに適用される。CCFについて、フィルタ係数の幾何学的変換も適用でき、これは、コーディングの効率の向上に役立つ可能性がある。したがって、フィルタ係数をトレーニングしてフィルタリングを実行するときにサンプルの方向性を考慮し、サンプルの方向性を決定し、フィルタ係数又はフィルタサポート領域にあるサンプルに幾何学的変換を適用して、コーディングの効率を向上させることが有益な場合がある。
【0013】
各態様は、様々な実施形態による方法、装置(システム)及びコンピュータ可読媒体のフローチャート及び/又はブロック図を参照して本明細書で説明される。コンピュータ可読プログラム命令によって、フローチャート及び/又はブロック図の各ブロック及びフローチャート及び/又はブロック図のブロックの組み合わせを実現することができることが理解されるべきである。
【0014】
ここで
図1を参照すると、ネットワーク化されたコンピュータ環境の機能ブロック図は、ビデオコーディングシステム100(以下、「システム」)を示し、当該ビデオコーディングシステムは、ビデオデータの認識されたエッジに対応する幾何学的変換を適用することに基づいてビデオデータを符号化及び/又は復号化する。
図1は、1つの実現方式の図示にすぎず、異なる実施形態を実現可能な環境への任意の制限を意味するものではないことを理解されたい。示されている環境には、設計及び実現の要件に基づいて多くの変更を加えることができる。
【0015】
システム100は、コンピュータ102及びサーバーコンピュータ114を含むことができる。コンピュータ102は、通信ネットワーク110(以下、「ネットワーク」)を介してサーバーコンピュータ114と通信することができる。コンピュータ102は、プロセッサ104及びソフトウェアプログラム108を含むことができ、当該ソフトウェアプログラムは、データ記憶装置106に記憶され、ユーザーとのインタラクション及びサーバーコンピュータ114との通信を可能にする。
図8を参照して以下で説明するように、コンピュータ102は、それぞれ内部コンポーネント800A及び外部コンポーネント900Aを含み、サーバーコンピュータ114は、それぞれ内部コンポーネント800B及び外部コンポーネント900Bを含む。コンピュータ102は、例えばモバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又は、プログラムを実行し、ネットワーク及びデータベースにアクセスすることができる任意のタイプのコンピューティング装置であってもよい。
【0016】
図6及び
図7に関して説明するように、サーバーコンピュータ114は、例えば、サービスとしてのソフトウェア(Software as a Service、SaaS)、サービスとしてのプラットフォーム(Platform as a Service、PaaS)、又はサービスとしてのインフラストラクチャ(Infrastructure as a Service、IaaS)のクラウドコンピューティングサービスモデルで動作することもできる。サーバーコンピュータ114は、例えば、プライベートクラウド、コミュニティクラウド、パブリッククラウド又はハイブリッドクラウドのクラウドコンピューティング展開モデルに存在してもよい。
【0017】
ビデオデータの認識されたエッジに対応する幾何学的変換を適用することに基づいてビデオデータをコーディングするために使用できるサーバーコンピュータ114は、データベース112とインタラクションすることができるビデオコーディングプログラム116(以下、「プログラム」)を実行することができる。ビデオコーディングプログラムの方法は、
図5に関して詳細に説明される。一実施形態では、コンピュータ102は、ユーザーインターフェースを含む入力装置として動作することができ、プログラム116は、主にサーバーコンピュータ114で実行されることができる。代替の実施形態では、プログラム116は、主に1つ又は複数のコンピュータ102で実行されることができ、サーバーコンピュータ114は、プログラム116によって使用されるデータを処理及び記憶することができる。なお、プログラム116は、スタンドアロンプログラムであってもよく、又はより大きなビデオコーディングプログラムに統合されることができる。
【0018】
しかしながら、いくつかの実施例では、プログラム116の処理は、コンピュータ102及びサーバーコンピュータ114の間で任意の比率で共有することができる。別の実施形態では、プログラム116は、複数のコンピュータ、サーバーコンピュータ又はコンピュータ及びサーバーコンピュータのある組み合わせで実行することができ、例えば、複数のコンピュータ102は、ネットワーク110を介して単一のサーバーコンピュータ114と通信する。別の実施形態では、例えば、プログラム116は、複数のサーバーコンピュータ114で実行されることができ、前記複数のサーバーコンピュータは、ネットワーク110を介して複数のクライアントコンピュータと通信する。或いは、プログラムは、ネットワークサーバーで実行されることができ、当該ネットワークサーバーは、ネットワークを介してサーバー及び複数のクライアントコンピュータと通信することができる。
【0019】
ネットワーク110は、有線接続、無線接続、光ファイバ接続又はそれらのいくつかの組み合わせを含むことができる。通常、ネットワーク110は、コンピュータ102とサーバーコンピュータ114との間の通信をサポートする接続及びプロトコルの任意の組み合わせであってもよい。ネットワーク110は、様々なタイプのネットワーク、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話ネットワーク(PSTN)などの電気通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、長期的な進化(LTE)ネットワーク、第3世代(3G)ネットワーク、コード分割マルチアクセス(CDMA)ネットワークなど)、公衆陸上移動体ネットワーク(PLMN)、メトロポリタンエリアネットワーク(MAN)、専用ネットワーク、アドホックネットワーク、イントラネット、光ファイバに基づくネットワークなど、及び/又はこれら又は他のタイプのネットワークの組み合わせを含むことができる。
【0020】
図1に示す装置及びネットワークの数及び配置を例として示す。実際には、
図1に示される装置及び/又はネットワークに対して、追加の装置及び/又はネットワーク、より少ない装置及び/又はネットワーク、異なる装置及び/又はネットワーク、又は異なる配置の装置及び/又はネットワークがあり得る。また、
図1に示される2つ以上の装置は、単一の装置内に実現されることができ、又は、
図1に示される単一の装置は、複数の分散された装置として実現されることができる。追加的又は代替的に、システム100の1つのグループの装置(例えば、1つ又は複数の装置)は、システム100の別のグループの装置によって実行される1つ又は複数の機能を実行することができる。
【0021】
ここで
図2を参照すると、例示的なエッジ方向200の図が示されている。エッジは、ビデオ及びイメージデータの連続した位置にある、強度値が突然発生するサンプルセットを表してもよい。エッジは、エッジに沿った単位ベクトルを表すことができる方向を有してもよい。エッジは、エッジが位置するサンプル位置に対応する可能性がある位置を有してもよい。したがって、エッジ検出は、エッジ方向及びエッジ位置を決定するために使用できるプロセスに対応することができる。例えば、エッジに沿った勾配を決定してエッジ検出を実行することができる。勾配は、エッジ方向とは異なる可能性のある方向に沿ったサンプル値の増加又は低減に対応してもよい。負の勾配値は、特定の方向に沿って小さいサンプル強度に変化するサンプル強度に対応することができ、正の勾配値は、特定の方向に沿って大きいサンプル強度に変化するサンプル強度に対応することができる。エッジ方向200は、例えば水平エッジ202、垂直エッジ204、45度エッジ206及び135度エッジ208を含むことができる。サンプルブロックのサイズが十分に大きい場合、実質的に任意の角度のエッジが存在する可能性があることが理解されるべきである。
【0022】
1つ又は複数の実施形態によれば、M×Nブロックの方向性を決定することができ、M及びNは正の整数である。M及びNの値の例は、例えば2、4及び8を含むことができる。当該プロセスの入力は、M×Nサンプルブロックであってもよく、出力は、現在のブロックの方向性を記述することができる記述子であってもよい。一実施形態では、エッジ方向が、記述子として選択される。現在ブロックにエッジ検出プロセスを適用でき、当該プロセスの出力はエッジ方向及びエッジ位置である。一実施形態では、最小の誤差値を有するブロックの方向の検索に基づいてエッジ方向を決定する。方向検索は、非ブロック化フィルタの後でのみ再構成された画素に対して機能する。これらの画素は、復号器で利用可能であるため、方向は、シグナリングを必要としない。当該検索は、8×8のブロックで動作し、前記8×8のブロックは、非直線エッジを処理するのに十分小さいが、量子化された画像に適用されたときの方向を確実に推定するのに十分大きい。8×8領域で一定の方向を有すると、フィルタのベクトル化も容易になる。各ブロックについて、量子化されたブロックと最も近い完全な方向性ブロックの間の二乗差の和(SSD)を最小化することでブロックにおけるパータンに最もマッチングする方向を決定する。完全な方向性ブロックは、一方向の線に沿った全ての画素が同じ値を持つブロックである。一実施形態では、Cannyエッジ検出器を使用してエッジ検出を実行する。一実施形態では、Sobelエッジ検出器を使用してエッジ検出を実行する。
【0023】
一実施形態では、勾配値は記述子として選択される。まず、現在ブロックに、特定の方向に沿った勾配値を計算するプロセスを適用する。例示的な勾配方向は、水平、垂直及び対角線(45度、135度)を含むが、これらに限定されない。一実施形態では、上記で提案された方法では、CCFの入力色成分のM×Nブロックを使用して方向性を決定する。一例では、CCFの入力色成分がY成分である場合、M×Nブロックは、Y成分から取得される。一例では、CCFの入力色成分がCb成分である場合、M×Nブロックは、Cb成分から取得される。一例では、CCFの入力色成分がCr成分である場合、M×Nブロックは、Cr成分から取得される。
【0024】
一実施形態では、上記で提案された方法では、CCFの出力色成分のM×Nブロックを使用して方向性を決定する。一例では、CCFの入力色成分がY成分である場合、M×Nブロックは、Y成分から取得される。一例では、CCFの入力色成分がCb成分である場合、M×Nブロックは、Cb成分から取得される。一例では、CCFの入力色成分がCr成分である場合、M×Nブロックは、Cr成分から取得される。
【0025】
ここで
図3Aを参照すると、例示的な幾何学的変換プロセス300Aが示されている。また、幾何学的変換プロセスは、1つ又は複数の事前定義された回転302Aから302Dを含むことができる。1つ又は複数の実施形態によれば、幾何学的変換プロセス300Aは、CCFのフィルタリングプロセスに適用できる。当該プロセスへの入力は、
図2に関連する実施形態を参照して説明された上記の例におけるサンプルの方向性である。当該方向性に基づいて、CCFのフィルタ係数又はフィルタサポート領域における再構成サンプルを変換する。一実施形態では、エッジ方向によってブロックの方向性を認識するときに、認識されたエッジ方向に基づいてフィルタ係数又はフィルタサポート領域における再構成サンプルを回転する。一実施形態では、ターゲット方向は、単一の方向飲みを含む。一例では、ターゲット方向は、水平方向である。回転スキームが示されている。現在ブロックのエッジ方向が水平の場合、回転を実行しない。現在ブロックのエッジ方向が垂直の場合、フィルタ係数又はフィルタサポート領域におけるサンプルを時計回りに90度回転する。現在ブロックのエッジ方向が45度の場合、フィルタ係数又はフィルタサポート領域におけるサンプルを時計回りに135度回転する。現在ブロックのエッジ方向が135度の場合、フィルタ係数又はフィルタサポート領域におけるサンプルを時計回りに45度回転する。現在ブロックが滑らかな領域である場合、即ち、エッジが検出されていない場合、回転を実行しない。
【0026】
ここで
図3Bを参照すると、例示的な幾何学的変換プロセス300Bが示されている。また、幾何学的変換プロセスは、1つ又は複数の事前定義された回転304Aから304Bを含むことができる。幾何学的変換プロセス300Bは、同じ変換を複数の方向に適用することを含むことができる。一例では、ターゲット方向は、水平及び垂直である。回転スキームが示されている。現在ブロックのエッジ方向が水平の場合、回転を実行しない。現在ブロックのエッジ方向が垂直の場合、回転を実行しない。現在ブロックのエッジ方向が45度の場合、フィルタ係数又はフィルタサポート領域におけるサンプルを時計回りに45度回転する。現在ブロックのエッジ方向が135度の場合、フィルタ係数又はフィルタサポート領域におけるサンプルを時計回りに45度回転する。現在ブロックが滑らかな領域である場合、即ち、エッジが検出されていない場合、回転を実行しない。一実施形態では、CCFが現在ブロック内の全てのサンプルを走査するときに、サンプルがエッジに位置するかどうかに関係なく、回転を実行する。CCFがサンプルを走査することが指定される場合、1)サンプルがトレーニングされたこと、又は2)CCFのフィルタリングプロセスのいずれかを指す。一実施形態では、CCFが現在ブロック内のエッジに位置するサンプルを走査するときにのみ、回転を実行する。CCFがサンプルを走査することが指定される場合、サンプルがトレーニングされたこと又はCCFのフィルタリングを意味する。
【0027】
一実施形態では、勾配値がブロックの方向性を表す場合、勾配値に基づいてフィルタ係数又はフィルタサポート領域における再構成サンプルを変換する。
【0028】
一実施形態では、フィルタ係数及びクリッピング値(clipping value)の幾何学的変換を使用して変換を実行することができる。ブロックに基づくフィルタ適応を備えた自己適応ループフィルタ(ALF)を適用できる。輝度成分について、局所的な勾配の方向及びアクティビティに基づいて、4×4ブロックごとに25個のフィルタの1つを選択する。2つのダイアモンドフィルタ形状は、自己適応ループフィルタリングに使用できる。7×7のダイアモンド形状は、輝度成分に適用でき、5×5ダイアモンド形状は、クロマ成分に適用できる。
【0029】
輝度成分について、各4×4ブロックは、25クラス以外のクラスに分類することができる。分類インデックスCは、その方向性D及びアクティビティの量子化された値
【数1】
に基づいて次のように導出できる。
D及び
【数2】
を計算するために、まず、1-Dラプラシアンを使用して水平、垂直及び2つの対角線方向の勾配を使用する。
【数3】
ここで、インデックスi及びjは、4×4ブロック内の左上のサンプルの座標であり、R(i,j)は、座標(i,j)での再構成サンプルを指示する。
【0030】
ブロック分類の複雑さを軽減するために、サブサンプリングされた1-Dラプラシアン計算が適用される。
図4に関して以下で説明するように、同じサブサンプリングされた位置が、全ての方向の勾配計算に使用される。次に、水平方向及び垂直方向の勾配のDの最大値及び最小値は、次のように設置されることができる。
【数4】
2つの対角線方向の勾配の最大値及び最小値は、次のように設置されることができる。
【数5】
【0031】
方向性Dの値を導出するために、これらの値を互いに比較するとともに、2つの閾値t
1及びt
2と比較する。
【数6】
が真である場合、Dは、0に設置される。
【数7】
の場合、Dは、2に設置される。
【数8】
の場合、Dは、1に設置される。
【数9】
の場合、Dは、4に設置される。
【数10】
の場合、Dは、3に設置される。
【0032】
アクティビティ値Aは次のように計算できる。
【数11】
Aは、0から4までの範囲で量子化することも可能であり、0及び4を含み、量子化された値は、
【数12】
で表される。写真のクロマ成分については、分類方法を適用する必要がない場合がある。つまり、各クロマ成分に単一のALF係数のセットを適用できる。
【0033】
各4×4輝度ブロックをフィルタリングする前、当該ブロックに対して計算された勾配値に基づいて、フィルタ係数f(k,l)及び対応するフィルタクリッピング値c(k,l)に、例えば回転又は対角反転及び垂直反転などの幾何学的変換を適用する。これは、これらの変換をフィルタサポート領域におけるサンプルに適用することに相当する。この概念は、ALFが適用される異なるブロックの方向性をアライメントすることによって、これらの異なるブロックがより類似したものになる。
【0034】
対角反転、垂直反転及び回転を含む3つの幾何学的変換を導入することができる。
対角:fD(k,l)= f(l,k), cD(k,l)= c(l,k)
垂直反転:fV(k,l)= f(k,K-l-1), cV(k,l)= c(k,K-l-1)
回転:fR(k,l)= f(K-l-1,k), cR(k,l)= c(K-l-1,k)
ここで、Kは、フィルタのサイズであり、かつ0≦k、1≦K-1は、位置(0,0)が左上隅にあり、位置(K-1、K-1)が右下隅にあるような係数座標である。当該ブロックに対して計算された勾配値に基づいて、変換をフィルタ係数f(k,l)及びクリッピング値c(k,l)に適用する。勾配値gd2<gd1かつgh<gvの場合、変換を適用する必要がない場合がある。勾配値gd2<gd1かつgv<ghの場合、対角変換を適用することができる。勾配値gd1<gd2かつgh<gvの場合、垂直反転変換を適用することができる。勾配値gd1<gd2かつgv<ghの場合、回転変換を適用することができる。
【0035】
一実施形態では、ブロックの方向性は、エッジ方向及び勾配の両方によって測定され、その結果、CCFのフィルタ係数の変換は、エッジ方向及び勾配の両方に依存する。一実施形態では、エッジ方向は、フィルタ係数が回転されるかどうかを決定する。一実施形態では、勾配は、フィルタ係数が反転されるかどうかを決定する。
【0036】
一実施形態では、CCFのトレーニングプロセス中に幾何学的変換を適用する。当該プロセスへの入力は、
図2に関連する実施形態を参照して説明した上記の例におけるサンプルの方向性である。当該方向性基づいて、CCFのフィルタ係数又はフィルタサポート領域における再構成サンプルを変換する。
【0037】
ここで
図4を参照すると、1つ又は複数の勾配方向に対応するサンプルの例示的なサブサンプリング位置の
図400が示されている。サブサンプリング位置は、サンプル302Aの垂直勾配に対応する位置、サンプル302Bの水平勾配に対応する位置、サンプル302Cの第1の対角勾配に対応する位置及びサンプル302Dの第2の対角勾配に対応する位置を含むことができる。サブサンプリング位置V、H、D1及びD2は、それぞれ、垂直勾配、水平勾配、第1の対角勾配及び第2の対角勾配に対応する。
【0038】
ここで
図5を参照すると、ビデオデータをコーディングするための方法500のステップを示す動作フローチャートが示されている。いくつかの実現方式では、
図5の1つ又は複数のプロセスブロックは、コンピュータ102(
図1)及びサーバーコンピュータ114(
図1)によって実行されることができる。いくつかの実現方式では、
図5の1つ又は複数のプロセスブロックは、コンピュータ102及びサーバーコンピュータ114とは別の、又はコンピュータ102及びサーバーコンピュータ114を含む別の装置又は装置のグループによって実行されることができる。
【0039】
502では、方法500は、ビデオデータを受信するステップを含む。
【0040】
504では、方法500は、受信したビデオデータのサンプルブロックの方向性を決定するステップを含み、当該方向性は、記述子に対応する。
【0041】
506では、方法500は、決定した方向性に基づいて幾何学的変換を適用するステップを含む。
【0042】
508では、方法500は、適用された幾何学的変換に基づいてビデオデータを復号化するステップを含む。
【0043】
図5は、実現方式の例示を提供するに過ぎず、異なる実施形態を実現することができる方式に対する任意の制限も制限しないことを理解することができる。示されている環境には、設計と実装の要件に基づいて多くの変更を加えることができる。
【0044】
この開示にはクラウドコンピューティングに関する詳細な説明が含まれているが、本明細書に記載されている教示の実現方式は、クラウドコンピューティング環境に限定されないことを事前に理解されたい。むしろ、いくつかの実施形態は、現在知られている、又は後で開発される他のタイプのコンピューティング環境と組み合わせて実装することができる。
【0045】
クラウドコンピューティングは、配置可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバー、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービスなど)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス提供モデルであり、前記配置可能なコンピューティングリソースは、最小限の管理作業又はサービスプロバイダとのインタラクションで、迅速にプロビジョニングおよびリリースできる。当該クラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル及び少なくとも4つの展開モデルを含むことができる。
【0046】
特徴は、次の通りである。
オンデマンドセルフサービス:クラウド消費者は、サービスプロバイダとの人間のインタラクションを必要とせずに、サーバー時間やネットワークストレージなど、必要に応じて一方的かつ自動的にコンピューティング能力を提供できる。
幅広いネットワークアクセス:ネットワークを介して能力を取得でき、異種のシンクライアントプラットフォーム又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップコンピュータ及びPDA)の使用を容易にする標準メカニズムを介してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数のコンシューマーにサービスを提供するためにプールされる。このモデルでは、様々な物理リソースと仮想リソースが需要に基づいて動的に割り当てられ、再割り当てされる。消費者は通常、提供されたリソースの正確な場所を制御又は認識していないため、場所に依存しないという感覚があるが、より高いレベルの抽象化(国、州、データセンターなど)で場所を指定できる。
迅速な弾力性:迅速に拡張し、迅速に解放して迅速に収縮するように、迅速かつ弾力的に(場合によっては自動的に)機能を提供する。消費者にとって、提供できる機能は無制限に見えることが多く、いつでも任意の数量で購入できる。
メータリングサービス:クラウドシステムは、サービスのタイプ(ストレージ、処理、帯域幅、アクティブなユーザーアカウントなど)に適した抽象化のレベルでコンピューティング機能を利用することにより、リソースの使用を自動的に制御及び最適化する。リソースの使用状況を監視、制御、及び報告できるため、利用されているサービスのプロバイダと消費者の両方に透過性が提供される。
【0047】
サービスモデルは、次の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される能力は、クラウドインフラストラクチャで実行されているプロバイダのアプリケーションを使用することである。例えばwebブラウザ(例えば、webに基づく電子メール)などのシンククライアントインターフェースを介して、様々なクライアント装置からアプリケーションにアクセスできる。消費者は、ネットワーク、サーバー、オペレーティングシステム、記憶装置、又はさらに各アプリケーション機能を含む基盤となるクラウドインフラストラクチャを管理又は制御しなく、ただし、ユーザー専用アプリケーションの配置設置が限られている場合を除く。
サービスとしてのプラットフォーム(PaaS):消費者に提供される能力は、プロバイダがサポートするプログラミング言語及びツールを使用して作成された消費者が作成又は取得したアプリケーションをクラウドインフラストラクチャに展開することである。消費者は、ネットワーク、サーバー、オペレーティングシステム又は記憶装置を含む基盤となるクラウドインフラストラクチャを管理又は制御しなく、ただし、展開されたアプリケーション及び可能なアプリケーションのホスティング環境の配置を制御できる。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク及び消費者が任意のソフトウェアを部署及び実行できる他の基本的なコンピューティングリソースを提供することであり、前記任意のソフトウェアは、オペレーティングシステム及びアプリケーションを含むことができる。消費者は、基盤となるクラウドインフラストラクチャを管理又は制御しなく、ただし、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御でき、ネットワーク化されたコンポーネント(例えば、ホストファイアウォール)の選択に対する制御が制限される可能性がある。
【0048】
展開モデルは、次の通りである。
プライベートクラウド:クラウドインフラストラクチャは、組織に対してのみ実行される。組織又はサードパーティーによって管理でき、オンプレミス又はオフプレミスに存在できる。
コミュニティクラウド:クラウドインフラストラクチャは、複数の組織で共有されており、共通の懸念事項(例えば、タスク、セキュリティ要件、ポリシー及びコンプライアンスの考慮事項など)を持つ特定のコミュニティをサポートする。組織又はサードパーティーによって管理でき、オンプレミス又はオフプレミスに存在できる。
パブリッククラウド:クラウドインフラストラクチャは、一般の人々又は大規模な業界グループが使用でき、クラウドサービスを販売する組織が所有している。
ハイブリッドクラウド:クラウドインフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ又はパブリック)の組み合わせであり、これらのクラウドは、独自のエンティティのままであるが、データ及びアプリケーションの移植性を可能にする標準化されたテクノロジー又は独自の技術(例えば、クラウド間の負荷バランスのためのクラウドバースト)によって結合される。
【0049】
クラウドコンピューティング環境は、サービス指向であり、その重点は、ステートレス、低結合、モジュール性及びセマンティック相互動作性である。クラウドコンピューティングのコアは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0050】
図6を参照すると、例示的なクラウドコンピューティング環境600が示されている。図に示されるように、クラウドコンピューティング環境600は、1つ又は複数のクラウドコンピューティングノード10を含み、クラウド消費者によって使用されるロカールコンピューティング装置は、前記1つ又は複数のクラウドコンピューティングノードを介して通信することができ、前記ロカールコンピューティング装置は、例えば、携帯情報端末(Personal Digital Assistant、PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C及び/又は自動車コンピュータシステム54Nである。クラウドコンピューティングノード10は、互いに通信することができる。それらは、物理的又は仮想的に(図示せず)1つ又は複数のネットワークにグループ化でき、前記1つ又は複数のネットワークは例えば、上記のプライベートクラウド、コミュニティクラウド、パブリッククラウド又はハイブリッドクラウド、又はそれらの組み合わせである。これにより、クラウドコンピューティング環境600は、サービスとしてのインフラストラクチャ、サービスとしてのプラットフォーム及び/又はサービスとしてのソフトウェアを提供でき、クラウドの消費者は、サービスとしてのインフラストラクチャ、サービスとしてのプラットフォーム及び/又はサービスとしてのソフトウェアのためにロカールコンピューティング装置のリソースを維持する必要がない。
図6に示されるコーディング装置54Aから54Nのタイプは例示のみであり、クラウドコンピューティングノード10及びクラウドコンピューティング環境600は、任意のタイプのネットワーク及び/又はネットワークアドレス可能接続(例えば、webブラウザ)によって任意のタイプのコンピュータ化された装置と通信することができることは理解されるべきである。
【0051】
図7を参照すると、クラウドコンピューティング環境600(
図6)によって提供される機能的抽象化層700のセットが示される。
図7に示されるコンポーネント、層及び機能は、説明のみを目的としており、実施形態はこれに限定されないことを事前に理解されたい。示されているように、以下の層及び対応する機能が提供されている。
【0052】
ハードウェア及びソフトウェア層60は、ハードウェアコンポーネント及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、ホスト61、RISC(Reduced Instruction Set Computer、縮小命令セットコンピュータ)アーキテクチャに基づくサーバー62、サーバー63、ブレードサーバー64、記憶装置65、及びネットワーク及びネットワークコンポーネント66を含む。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバーソフトウェア67及びデータベースソフトウェア68を含む。
【0053】
仮想化層70は、抽象化層を含み、当該抽象化層から、例えば仮想サーバー71、仮想記憶装置72、仮想専用ネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、及び仮想クライアント75などの仮想エンティティを提供することができる。
【0054】
一例では、管理層80は、以下に説明する機能を提供することができる。リソースプロビジョニング81は、クラウドコーディング環境でタスクを実行するためのコーディングリソース及び他のリソースの動的な調達を提供する。計測及び価格設定82は、クラウドコンピューティング環境でリソースを利用するときのコスト追跡、及びこれらのリソースの消費に対する請求書又は領収書を提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含むことができる。セキュリティ性は、クラウドの消費者及びタスクに検証を提供し、データ及び他のリソースに保護を提供する。ユーザーポータル83は、消費者及びシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当て及び管理を提供する。サービスレベルアグリーメント(Service Level Agreement、SLA)の計画及び実現85は、SLAに基づいて将来の需要を予測するクラウドコンピューティングリソースに事前準備及び調達を提供する。
【0055】
作業負荷層90は、クラウドコンピューティング環境を利用することができる機能の例を提供する。当該層から提供できる作業負荷及び機能の例には、地図及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室配信93、データ分析処理94、トランザクション処理95、及びビデオコーディング96が含まれる。ビデオコーディング96は、ビデオデータの認識されたエッジに対応する幾何学的変換を適用することができる。
【0056】
図8は、例示的な実施形態による、
図1に示されるコンピュータ102、114の内部コンポーネント及び外部コンポーネントのブロック図である。
図8は、1つの実現方式の図示にすぎず、異なる実施形態を実現できる環境に関する任意の制限も意味しないことを理解されたい。示される環境には、設計及び実現の要件に基づいて多くの変更を加えることができる。
【0057】
コンピュータ102(
図1)及びサーバーコンピュータ114(
図1)は、
図8に示される内部コンポーネント800A、800B及び外部コンポーネント900A、900Bの対応するセットを含むことができる。内部コンポーネント800のセットのそれぞれは、1つ又は複数のバス826上の1つ又は複数のプロセッサ820、1つ又は複数のコンピュータ可読RAM 822及び1つ又は複数のコンピュータ可読ROM 824、1つ又は複数のオペレーティングシステム828、及び1つ又は複数のコンピュータ可読有形記憶装置830を含む。
【0058】
プロセッサ820は、ハードウェア、ファームウェア又はハードウェアとソフトウェアの組み合わせで実現される。プロセッサ820は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、専用集積回路(ASIC)又は他のタイプの処理コンポーネントである。いくつかの実現方式では、プロセッサ820は、機能の1つ又は複数を実行するようにプログラミングされるプロセッサを含む。バス826は、内部コンポーネント800A、800B間の通信を可能にするコンポーネントを含む。
【0059】
1つ又は複数のオペレーティングシステム828、ソフトウェアプログラム108(
図1)及びサーバーコンピュータ114(
図1)上のビデオコーディングプログラム116(
図1)は、対応するコンピュータ可読有形記憶装置830のうち1つ又は複数の上に記憶され、対応するプロセッサ820のうち1つ又は複数によって、対応するRAM 822(通常、キャッシュメモリを含む)のうち1つ又は複数を介して実行されることができる。
図8に示される実施形態では、コンピュータ可読有形記憶装置830のそれぞれは、内部ハードディスクによって駆動される磁気ディスク記憶装置である。その代わりに、コンピュータ可読有形記憶装置830のそれぞれは、例えばROM 824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、ソリッドステートディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カセット式磁気テープ、磁気テープ及び/又は、コンピュータプログラム及びデジタル情報を記憶できる他のタイプの非一時的コンピュータ可読有形記憶装置などの半導体記憶装置である。
【0060】
内部コンポーネント800A、800Bの各セットは、例えばCD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク又は半導体記憶装置の1つ又は複数のポータブルコンピュータ可読有形記憶装置936からの読み取り及びそれへの書き込みのためのR/Wドライブ又はインターフェース832を含むことができる。例えばソフトウェアプログラム108(
図1)及びビデオコーディングプログラム116(
図1)のソフトウェアプログラムは、対応するポータブルコンピュータ可読有形記憶装置936のうち1つ又は複数に記憶されることができ、対応するR/Wドライブ又はインターフェース832を介して読み取り、対応するハードディスクドライバ830にロードすることができる。
【0061】
内部コンポーネント800A、800Bの各セットは、例えばTCP/IPアダプタカード、無線Wi-Fiインターフェースカード、又は3G、4G又は5G無線インターフェースカード又は他の有線又は無線通信リンクなどのネットワークアダプタ又はインターフェース836を含む。ソフトウェアプログラム108(
図1)及びサーバーコンピュータ114(
図1)上のビデオコーディングプログラム116(
図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク又は他のワイドエリアネットワーク)及び対応するネットワークアダプタ又はインターフェース836を介して外部コンピュータからコンピュータ102(
図1)及びサーバーコンピュータ114にダウンロードされる。ソフトウェアプログラム108及びサーバーコンピュータ114上のビデオコーディングプログラム116は、ネットワークアダプタ又はインターフェース836から対応するハードディスクドライバ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルーター、ファイアウォール、交換機、ゲートウェイコンピュータ及び/又はエッジサーバーを含むことができる。
【0062】
外部コンポーネント900A、900Bのセットのそれぞれは、コンピュータディスプレイモニタ920、キーボード930及びコンピュータマウス934を含むことができる。外部コンポーネント900A、900Bは、タッチスクリーン、仮想キーボード、タッチパッド、ポインティング装置及び他のヒューマンインターフェース装置を含むことができる。内部コンポーネント800A、800Bのセットのそれぞれは、コンピュータディスプレイモニタ920、キーボード930及びコンピュータマウス934とインターフェースする装置ドライブ840を含む。装置ドライブ840、R/Wドライブ又はインターフェース832及びネットワーク適アダプタ又はインターフェース836は、(記憶装置830及び/又はROM 824に記憶されている)ハードウェア及びソフトウェアを含む。
【0063】
いくつかの実施形態は、任意の可能な技術的詳細統合レベルのシステム、方法及び/又はコンピュータ可読媒体に関する。コンピュータ可読媒体は、コンピュータ可読非一時的記憶媒体(又は媒体)を含むことができ、前記コンピュータ可読非一時的記憶媒体の上に、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有する。
【0064】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持及び記憶することができる有形装置である。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置又は前述の任意の適切な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、例えばパンチカード又は、命令が記録されたスロット内の隆起した構造の機械的符号化装置、及び前述の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、過度信号自体として解釈されるべきではなく、例えば無線電波又は他の自由に伝搬される電磁波、導波路を介して伝搬される電磁波又は他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)又はワイヤーを介して伝送される電気信号である。
【0065】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から対応するコンピューティング/処理装置に、又は、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して外部コンピュータ又は外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送光ファイバ、無線伝送、ルーター、ファイアウォール、交換機、ゲートウェイコンピュータ及び/又はエッジサーバーを含むことができる。各コンピューティング/処理装置におけるネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、対応するコンピューティング/処理装置内のコンピュータ可読記憶媒体に記憶するように転送する。
【0066】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブリ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設置データ、集積回路システムの配置データ、又は1つ又は複数のプログラム言語の任意の組み合わせで記述されたソースコード又はターゲットコードであってもよく、前記1つ又は複数のプログラム言語は、例えばSmalltalk、C++などのオブジェクト指向プログラミング言語、及び例えば「C」プログラム言語又はプログラミング言語に類似する手続き型プログラミング言語を含む。コンピュータ可読プログラム命令は、完全にユーザーのコンピュータ上で、部分的にユーザーのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザーのコンピュータ上で、部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ又はサーバー上で実行されることができる。後者の場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザーコンピュータに接続でき、又は、(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに接続できる。いくつかの実施形態では、例えばプログラマブル論理回路システム、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電子回路システムは、コンピュータ可読プログラム命令の状態情報を利用して、様々な態様や動作を実行するために電子回路システムをパーソナライズするようにコンピュータ可読プログラム命令を実行することができる。
【0067】
これらのコンピュータ可読プログラム命令を汎用コンピュータのプロセッサ、専用コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置のプロセッサに提供して、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置のプロセッサによって実行された命令が、フローチャート及び/又はブロック図のブロックで指定された機能/動作を実現するための手段を作成するようにメカニズムを生成する。これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶されてもよく、当該コンピュータ可読記憶媒体は、コンピュータ、プログラム可能なデータ処理装置又は他の装置に、命令が記憶されたコンピュータ可読記憶媒体が製品を含むように機能するように特定の方式で指示することができる、当該製品は、フローチャート及び/又はブロック図のブロックで指定された機能/動作の様々な態様を実現するための命令を含む。
【0068】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置、又は他の装置にロードされることができ、これにより、コンピュータ、他のプログラム可能な装置、又は他の装置で実行される一連の動作ステップは、コンピュータで実現される処理を生成し、コンピュータ、他のプログラム可能な装置又は他の装置で実行される命令は、フローチャート及び/又はブロック図のブロックで指定された機能/動作を実現するようにする。
【0069】
図中のフローチャート及びブロック図は、様々な実施形態によるシステム、方法及びコンピュータ可読媒体の可能な実現方式のアーキテクチャ、機能及び動作を示している。この態様では、フローチャート又はブロック図における各ブロックは、モジュール、セグメント又は命令の一部を表すことができ、前記モジュール、セグメント又は命令の一部は、特定の論理機能を実現するための1つ又は複数の実行可能命令を含む。方法、コンピュータシステム及びコンピュータ可読媒体は、図に示されているそれらのブロックに対して、追加のブロック、より少ないブロック、異なるブロック又は異なる配置のブロックを含むことができる。いくつかの代替の実現方式では、ブロックに示されている機能は、図に示される順序で生成することができる。例えば、連続して示されている2つのブロックは実際には、同時に又は者実質的に同時に実行される場合があり、又は、これらのブロックは、関連する機能に応じて、逆の順序で実行される場合もある。なお、特定の機能又は動作を実行するか又は専用ハードウェア及びコンピュータ命令の組み合わせを実現するハードウェアに基づく専用システムによって、ブロック図及び/又はフローチャート図の各ブロック及びブロック図及び/又はフローチャート図のブロックの組み合わせを実現することができる。
【0070】
本明細書に記載のシステム及び/又は方法は、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせで実装され得ることは明らかである。これらのシステム及び/又は方法を実装するために使用される実際の専用制御ハードウェア又はソフトウェアコードは、実施形態を制限しない。したがって、システム及び/又は方法の操作及び動作は、特定のソフトウェアコードを参照せずに本明細書で説明される。ソフトウェア及びハードウェアは、本明細書の説明に基づいてシステム及び/又は方法を実装するように設計できることが理解される。
【0071】
本明細書で使用されている要素、動作、又は指示は、そのように明示的に説明されていない限り、重要又は必須であると解釈されるべきではない。また、本明細書で使用されるようなアーティクル「一」及び「一つ」は、1つ又は複数のアイテムを含むことを意図しており、「1つ又は複数」と交換可能に使用することができる。さらに、本明細書で使用されるような「セット」という用語は、1つ又は複数のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテムと非関連アイテムの組み合わせなど)を含むことを意図しており、「1つ又は複数」と交換可能に使用することができる。本明細書で使用されるような「ある(has)」、「有する(have)」、「含む(having)」などの用語などは、自由形式の用語であることが意図されている。また、「に基づく」という文は、特に明記しない限り、「少なくとも部分的に基づく」ことを表すことを意図している。
【0072】
様々な態様及び実施形態の説明は、説明の目的で提示されており、網羅的であること、又は開示された実施形態に限定されることを意図するものではない。特徴の組み合わせは、特許請求の範囲に記載され、及び/又は明細書に開示されているが、これらの組み合わせは、可能な実施の開示を制限することを意図するものではない。実際に、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、及び/又は明細書に開示されていない方法で組み合わせることができる。以下にリストされている各従属クレームは、1つのクレームのみに直接依存している可能性があるが、可能な実装の開示には、一連のクレーム内の他の各クレームと組み合わせた各従属クレームが含まれる。多数の修正及び変形は、説明された実施形態の範囲から逸脱することなく、当業者には明らかである。本明細書で使用される用語は、実施形態の原理、実際の適用又は市場で見られる技術に対する技術的改善を最もよく説明するため、又は、当業者が本明細書に開示される実施形態を理解できるようにするために選択されたものである。
【符号の説明】
【0073】
100 ビデオコーディングシステム
102 コンピュータ
104 プロセッサ
106 データ記憶装置
108 ソフトウェアプログラム
110 通信ネットワーク
112 データベース
114 サーバーコンピュータ
116 プログラム
【手続補正書】
【提出日】2022-04-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサが実行可能なビデオコーディング方法であって、
ビデオデータを受信するステップと、
受信したビデオデータのサンプルブロックの方向性を決定するステップであって、前記方向性が記述子に対応するステップと、
決定した方向性に基づいて、幾何学的変換を適用するステップと、
適用された幾何学的変換に基づいて、前記ビデオデータを復号化するステップと、
を含む方法。
【請求項2】
前記記述子は、エッジ方向及び勾配値のうち
一方又は
両方に対応する請求項1に記載の方法。
【請求項3】
前記記述子がエッジ方向に対応する場合、前記エッジ方向及びエッジ位置に基づいて前記方向性を決定する請求項2に記載の方法。
【請求項4】
前記記述子が勾配値に対応する場合、前記ビデオデータのエッジに対応する方向に沿った勾配値に基づいて、前記方向性を決定する請求項2に記載の方法。
【請求項5】
受信したビデオデータのサンプルブロックに関連付けられた入力色成分に基づいて、前記方向性を決定する請求項1
~4の何れか1項に記載の方法。
【請求項6】
受信したビデオデータのサンプルブロックに関連付けられた出力色成分に基づいて、前記方向性を決定する請求項1
~5の何れか1項に記載の方法。
【請求項7】
前記方向性に基づいて、クロスコンポーネントフィルタのフィルタ係数又はフィルタサポート領域における再構成サンプルを変換する請求項1
~6の何れか1項に記載の方法。
【請求項8】
エッジ方向によってブロックの方向性を認識する場合、認識されたエッジ方向に基づいて前記フィルタ係数又は前記フィルタサポート領域における再構成サンプルを回転する請求項7に記載の方法。
【請求項9】
前記回転のターゲット方向は、単一の方向のみを含む請求項8に記載の方法。
【請求項10】
現在ブロックのエッジ方向が水平であることに基づいて、回転を実行しなく、
現在ブロックのエッジ方向が垂直であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに90度回転し、
現在ブロックのエッジ方向が45度であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに135度回転し、
現在ブロックのエッジ方向が135度であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに45度回転し、
前記現在ブロックが、エッジが検出されていない滑らかな領域であることに基づいて、回転を実行しない請求項9に記載の方法。
【請求項11】
前記回転のターゲット方向は、複数の方向を含む請求項8に記載の方法。
【請求項12】
前記ターゲット方向が水平及び垂直である場合、
現在ブロックのエッジ方向が水平であることに基づいて、回転を実行しなく、
現在ブロックのエッジ方向が垂直であることに基づいて、回転を実行しなく、
現在ブロックのエッジ方向が45度であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに45度回転し、
現在ブロックのエッジ方向が135度であることに基づいて、前記フィルタ係数又は前記フィルタサポート領域におけるサンプルを時計回りに45度回転し、
前記現在ブロックが、エッジが検出されていない滑らかな領域であることに基づいて、回転を実行しない請求項11に記載の方法。
【請求項13】
前記クロスコンポーネントフィルタが現在ブロック内の全てのサンプルを走査することに基づいて回転を実行する請求項7に記載の方法。
【請求項14】
前記クロスコンポーネントフィルタが現在ブロック内のエッジ上に位置するサンプルのみを走査することに基づいて回転を実行する請求項7に記載の方法。
【請求項15】
勾配値によってブロックの方向性を認識する場合、前記勾配値に基づいて前記フィルタ係数又は前記フィルタサポート領域における再構成サンプルを変換する請求項7に記載の方法。
【請求項16】
前記クロスコンポーネントフィルタのフィルタ係数の変換がエッジ方向及び勾配の両方に依存するように、前記ブロックの方向性がエッジ方向及び勾配の両方によって測定される請求項15に記載の方法。
【請求項17】
前記エッジ方向は、前記フィルタ係数が回転されるかどうかを決定し、前記勾配は、前記フィルタ係数が反転されるかどうかを決定する請求項16に記載の方法。
【請求項18】
前記幾何学的変換は、前記クロスコンポーネントフィルタのトレーニングプロセスに適用される請求項7に記載の方法。
【請求項19】
ビデオコーデックのためのコンピュータシステムであって、
コンピュータプログラムコードを記憶するように配置される1つ又は複数のコンピュータ可読非一時的記憶媒体と、
前記コンピュータプログラムコードにアクセスして前記コンピュータプログラムコードの指示に従って動作するように配置される1つ又は複数のコンピュータプロセッサと、
を含み、
前記コンピュータプログラムコードは、
前記1つ又は複数のコンピュータプロセッサに、ビデオデータを受信させるように配置される受信コードと、
前記1つ又は複数のコンピュータプロセッサに、受信したビデオデータのサンプルブロックの方向性を決定させる決定コードであって、前記方向性が、記述子に対応する決定コードと、
前記1つ又は複数のコンピュータプロセッサに、決定した方向性に基づいて幾何学的変換を適用させるように配置される適用コードと、
前記1つ又は複数のコンピュータプロセッサに、適用された幾何学的変換に基づいて前記ビデオデータを復号化させるように配置される復号化コードと、を含むコンピュータシステム。
【請求項20】
ビデオコーデックのためのコンピュータプログラムを記憶している非一時的コンピュータ可読媒体であって、前記コンピュータプログラムは、1つ又は複数のコンピュータプロセッサに、
ビデオデータを受信するステップと、
受信したビデオデータのサンプルブロックの方向性を決定するステップであって、前記方向性が、記述子に対応するステップと、
決定した方向性に基づいて幾何学的変換を適用するステップと、
適用された幾何学的変換に基づいて前記ビデオデータを復号化するステップと、を実行させるように配置される非一時的コンピュータ可読媒体。
【国際調査報告】