JP7412848B2 - 基準位置からの単一値とのストリングマッチング - Google Patents

基準位置からの単一値とのストリングマッチング Download PDF

Info

Publication number
JP7412848B2
JP7412848B2 JP2022531576A JP2022531576A JP7412848B2 JP 7412848 B2 JP7412848 B2 JP 7412848B2 JP 2022531576 A JP2022531576 A JP 2022531576A JP 2022531576 A JP2022531576 A JP 2022531576A JP 7412848 B2 JP7412848 B2 JP 7412848B2
Authority
JP
Japan
Prior art keywords
computer
block
reference position
string
pixels
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
JP2022531576A
Other languages
English (en)
Other versions
JP2023504799A (ja
Inventor
シャオジョン・シュ
シャン・リュウ
Original Assignee
テンセント・アメリカ・エルエルシー
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 テンセント・アメリカ・エルエルシー filed Critical テンセント・アメリカ・エルエルシー
Publication of JP2023504799A publication Critical patent/JP2023504799A/ja
Application granted granted Critical
Publication of JP7412848B2 publication Critical patent/JP7412848B2/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

関連出願の相互参照
本出願は、2020年8月18日に出願された米国仮出願第63/067,260号及び2020年8月24日に出願された米国仮出願第63/069,275号に基づく優先権を主張する、2021年5月11日に出願された米国特許出願第17/317,173号に対する優先権の利益を主張する。上記出願の各々の全体は、参照により本明細書に組み込まれる。
本開示は、一般に、データ処理の分野に関し、より詳細には、ビデオエンコーディング及びデコーディングに関する。
異なる画像からのブロックベースの補償は、動き補償としても知られている。同様に、ブロック補償を、同じ画像内の以前に再構築された領域から実行できる。これは、イントラ画像ブロック補償、カレント画像参照(CPR)、又はイントラ・ブロック・コピー(IBC)と呼ばれる。
実施形態は、ビデオ符号化のための方法、システム、及びコンピュータ可読媒体に関する。一態様による、ビデオ符号化のための方法を提供する。本方法は、1つ又は複数の基準位置を含むビデオデータを受信するステップを含み得る。単一値ストリングモードに関するイントラ・ブロック・コピーに基づいて、受信したビデオデータに関連付けられた履歴リスト内で1つ又は複数の基準位置を更新する。ビデオデータは、更新した基準位置に基づいてデコードされる。
別の態様による、ビデオ符号化のためのコンピュータシステムを提供する。本コンピュータシステムは、1つ又は複数のプロセッサと、1つ又は複数のコンピュータ可読メモリと、1つ又は複数のコンピュータ可読有形記憶デバイスと、1つ又は複数のメモリのうちの少なくとも1つを介して1つ又は複数のプロセッサのうちの少なくとも1つによって実行するために1つ又は複数の記憶デバイスのうちの少なくとも1つに格納されたプログラム命令と、を含み得、それによってコンピュータシステムは方法を実行することができる。本方法は、1つ又は複数の基準位置を含むビデオデータを受信するステップを含み得る。単一値ストリングモードに関するイントラ・ブロック・コピーに基づいて、受信したビデオデータに関連付けられた履歴リスト内で1つ又は複数の基準位置を更新する。ビデオデータは、更新した基準位置に基づいてデコードされる。
更に別の態様による、ビデオ符号化のためのコンピュータ可読媒体を提供する。コンピュータ可読媒体は、1つ又は複数のコンピュータ可読記憶デバイスと、1つ又は複数の有形記憶デバイスのうちの少なくとも1つに格納されたプログラム命令と、を含み得、プログラム命令はプロセッサによって実行可能である。プログラム命令は、1つ又は複数の基準位置を含むビデオデータを受信するステップを含み得る方法を実行するプロセッサによって実行可能である。単一値ストリングモードに関するイントラ・ブロック・コピーに基づいて、受信したビデオデータに関連付けられた履歴リスト内で1つ又は複数の基準位置を更新する。ビデオデータは、更新した基準位置に基づいてデコードされる。
これら及び他の目的、特徴及び利点は、添付の図面に関連して読まれるべき例示的な実施形態の以下の詳細な説明から明らかになるであろう。例示は詳細な説明と併せて当業者の理解を容易にする際の明確さのためのものであるため、図面の様々な特徴は正確な縮尺ではない。
少なくとも1つの実施形態によるネットワーク化されたコンピュータ環境を示す図である。 少なくとも1つの実施形態による、画像内のイントラ・ブロック・コピーを示すブロック図である。 少なくとも1つの実施形態による、1つの符号化ツリーユニット(CTU)探索範囲を用いたイントラブロック補償のブロック図である。 少なくとも1つの実施形態による、HEVC/VVC空間マージ候補のブロック図である。 少なくとも1つの実施形態による、IBCモードの基準サンプルメモリ更新プロセスのブロック図である。 少なくとも1つの実施形態による、IBC及びストリングマッチングの基準サンプルメモリ更新プロセスのブロック図である。 少なくとも1つの実施形態による、更新基準位置に基づいてビデオデータをエンコード及びデコードするプログラムによって実行されるステップを示す動作フローチャートである。 少なくとも1つの実施形態による、図1に示すコンピュータ及びサーバの内部構成要素及び外部構成要素のブロック図である。 少なくとも1つの実施形態による、図1に示すコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。 少なくとも1つの実施形態による、図5の例示的なクラウドコンピューティング環境の機能層のブロック図である。
特許請求される構造及び方法の詳細な実施形態を本明細書に開示しているが、開示した実施形態は、様々な形態で具現化され得る特許請求された構造及び方法の単なる例示であることが理解され得る。これらの構造及び方法は、しかしながら、多くの異なる形態で具体化され得、本明細書に記載される例示的な実施形態に限定されると解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が詳細かつ完全であり、当業者にその範囲を十分に伝えるために提供されている。この説明では、提示された実施形態を不必要に不明瞭にすることを避けるために、周知の特徴及び技術の詳細は省略される場合がある。
実施形態は、一般に、データ処理の分野に関し、より詳細には、ビデオエンコーディング及びデコーディングに関する。以下に説明する例示的な実施形態は、とりわけ、更新基準位置に基づいてビデオデータをエンコード及びデコードするためのシステム、方法、及びコンピュータプログラムを提供する。したがって、いくつかの実施形態は、基準位置から導出された単一値とのストリングマッチングの使用に基づいた、改善されたビデオ符号化を可能にすることによって、計算分野を改善する能力を有する。
前述したように、異なる画像からのブロックベースの補償は、動き補償としても知られている。同様に、ブロック補償を、同じ画像内の以前に再構築された領域から実行できる。これは、イントラ画像ブロック補償、カレント画像参照(略してCPR)、又はイントラ・ブロック・コピー(略してIBC)と呼ばれる。
しかしながら、単一値ストリングモードに関する現在の設計では、履歴リストに格納された基準サンプル位置には範囲制限がない。一部の位置は、IBC基準領域の場合のように、左CTU範囲を超える場合がある。更に、基準サンプル位置が単一値ストリングモードで符号化された最近のストリングによって参照されても、基準サンプル位置は、自身の位置情報を更新しない。単一値ストリングモードに関する履歴バッファ内の基準サンプル位置が、基準サンプルメモリ更新のために、もはや利用可能でない場合、その位置は使用できない。したがって、基準サンプルの好適な有用性のために、履歴リスト内のより効率的な位置表現及び更新方法を使用することが有利であり得る。IBC及びストリングマッチングの基準範囲を同期させるために、特定の範囲制約が、単一値ストリングモードに関する履歴バッファ内の基準サンプル位置に課されるべきである。
様々な実施形態による方法、装置(システム)、及びコンピュータ可読媒体のフローチャート図及び/又はブロック図を参照して、態様を本明細書で説明する。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
以下に説明する例示的な実施形態は、ストリングマッチングに基づいてビデオデータをエンコード及びデコードするシステム、方法、及びコンピュータプログラムを提供する。ここで図1を参照すると、ストリングマッチングに基づいてビデオデータをエンコード及びデコードするためのビデオ符号化システム100(以下、「システム」)を示すネットワークコンピュータ環境の機能ブロック図である。図1は、一実装形態の例示のみを提供し、異なる実施形態が実施され得る環境に関する限定を意味しないことを理解されたい。図示した環境に対する多くの修正は、設計及び実装形態要件に基づいて行い得る。
システム100は、コンピュータ102及びサーバコンピュータ114を含むことができる。コンピュータ102は、通信ネットワーク110(以下「ネットワーク」)を介してサーバコンピュータ114と通信し得る。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に格納され、ユーザとインターフェースし、サーバコンピュータ114と通信することが可能であるソフトウェアプログラム108と、を含むことができる。図4を参照して以下に説明するように、コンピュータ102は、それぞれ内部構成要素800A及び外部構成要素900Aを含み得、サーバコンピュータ114は、それぞれ内部構成要素800B及び外部構成要素900Bを含み得る。コンピュータ102は、例えば、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又はプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意の種類のコンピュータデバイスであってもよい。
サーバコンピュータ114はまた、図5及び図6に関して以下に説明するように、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、又はサービスとしてのインフラストラクチャ(laaS)などのクラウド・コンピューティング・サービス・モデルで動作してもよい。サーバコンピュータ114はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウドなどのクラウドコンピューティング展開モデルに配置されてもよい。
ビデオ符号化に使用され得るサーバコンピュータ114は、データベース112と対話し得るビデオ符号化プログラム116(以下、「プログラム」)を実行することが可能である。ビデオ符号化プログラム方法は、図3に関して以下に詳細に説明する。一実施形態では、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして動作し得、プログラム116は、主にサーバコンピュータ114上で実行し得る。代替的な実施形態では、プログラム116は、主に1つ又は複数のコンピュータ102上で実行し得、サーバコンピュータ114は、プログラム116によって使用されるデータの処理及び格納に使用し得る。プログラム116は、スタンドアロンプログラムであってもよく、又は大きなビデオ符号化プログラムに統合されてもよいことに留意されたい。
しかしながら、プログラム116の処理は、場合によっては、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有されてもよいことに留意されたい。別の実施形態では、プログラム116は、複数のコンピュータ、サーバコンピュータ、又はコンピュータとサーバコンピュータとの何らかの組み合わせ、例えば、ネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102上で動作することができる。別の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で動作し得る。あるいは、プログラムは、ネットワークを介してサーバ及び複数のクライアントコンピュータと通信するネットワークサーバ上で動作し得る。
ネットワーク110は、有線接続、無線接続、光ファイバ接続、又はそれらの何らかの組み合わせを含み得る。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続及びプロトコルの任意の組み合わせとすることができる。ネットワーク110は、例えば、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、公衆交換電話網(PSTN)などの電気通信ネットワーク、無線ネットワーク、公衆交換網、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動網(PLMN)、メトロポリタン・エリア・ネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバベースのネットワークなど、及び/又はこれらの若しくは他のタイプのネットワークの組み合わせなどの様々なタイプのネットワークを含み得る。
図1に示すデバイス及びネットワークの数及び配置を、一例として提供する。実際には、追加のデバイス及び/又はネットワーク、少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、あるいは図1に示すものとは異なる配置のデバイス及び/又はネットワークが存在してもよい。更に、図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、又は図1に示す単一のデバイスは、複数の分散型デバイスとして実装されてもよい。それに加えて、又はその代わりに、システム100の一組のデバイス(例えば、1つ又は複数のデバイス)は、システム100の別の一組のデバイスによって実行されるものとして説明される1つ又は複数の機能を実行し得る。
ここで図2Aを参照すると、画像200A内のイントラ・ブロック・コピーを示すブロック図を示している。画像200Aは、カレントブロック202A、基準ブロック202B、及びブロックベクトルBVを含み得る。ブロックベクトルBVは、カレントブロック202Aと基準ブロック202Bとの間のオフセットを示し得る変位ベクトルであり得る。任意の値(x又はy方向のいずれかで正又は負)とし得る動き補償における動きベクトルとは異なり、ブロックベクトルBVは、指示された基準ブロック202Bが利用可能であり、既に再構成されていることが保証されるように、いくつかの制約を有する。また、並列処理の検討のため、タイル境界又は波面ラダー形状境界である一部の基準領域も除外される。
ブロックベクトルの符号化は、明示的又は暗黙的に行われる場合がある。明示的モード(又はインター符号化でAMVPモードと呼ばれる)では、ブロックベクトルとその予測子との間の差が、暗黙的モードでシグナリングされ、ブロックベクトルは、マージモードでの動きベクトルと同様の方法で、その予測子から純粋に復元される。ブロックベクトルの分解能は、いくつかの実装形態では整数位置に制限され、他のシステムでは小数位置を指し示し得る。
ブロックレベルでのイントラ・ブロック・コピーの使用を、IBCフラグと呼ばれる、ブロック・レベル・フラグを使用してシグナリングすることができる。一実施形態では、カレントブロック202Aがマージモードで符号化されないとき、このフラグがシグナリングされる。あるいは、基準インデックス手法によってシグナリングすることができる。これは、現在のデコードされた画像を基準画像として扱うことによって行われる。HEVC SCCでは、このような基準画像がリストの最後の位置に置かれる。この特別な基準画像はまた、DPBの他の時間基準画像と共に管理される。
イントラ・ブロック・コピーを、イントラ予測モード又はインター予測モードとは異なる第3のモードとして扱うなど、イントラ・ブロック・コピーにはいくつかのバリエーションがある。これにより、マージモード及びAMVPモードのブロックベクトル予測は、通常のインターモードから分離される。例えば、別個のマージ候補リストがイントラ・ブロック・コピー・モードのために定義され、ここで、リスト内のすべてのエントリは、すべてブロックベクトルである。同様に、イントラ・ブロック・コピーAMVPモードにおけるブロックベクトル予測リストは、ブロックベクトルのみからなる。両方のリストに適用される一般的な規則は、候補導出処理に関して、インターマージ候補リスト又はAMVP予測子リストと同じロジックに従い得る。例えば、HEVC又はVVCのインター・マージ・モードにおける5つの空間的近傍位置は、イントラ・ブロック・コピーのためにアクセスされ、それ自体のマージ候補リストを導出する。
ここで図2Bを参照すると、1つの符号化ツリーユニット(CTU)探索範囲を用いたイントラブロック補償のブロック図200Bを示している。探索は、段階204A~204Dを通じて進行し得る。現在、VVCでは、CPRモードの探索範囲はカレントCTU内に制限される。CPRモードのための基準サンプルを格納するための有効なメモリ要件は、サンプルの1つのCTUサイズである。既存の基準サンプルメモリが、カレント64×64領域Cに、再構築サンプルを格納することを考慮すると、更に3つの64×64サイズの基準サンプルSを使用し得る。したがって、CPRモードの有効な探索範囲は、基準ピクセルを記憶するための総メモリ要件が変更されないまま(1つのCTUサイズは、合計4つの64×64基準サンプルメモリ)、左CTUの一部に拡張され得る。
ここで図2Cを参照すると、HEVC/VVC空間マージ候補のブロック図200Cを示している。HEVC及びVVCの5つの空間マージ候補は、A0、A1、B0、B1、及びB2を含み得る。これらの位置から候補リストを形成する順序は、A0->B0->B1->A1->B2であり得る。
履歴ベースのMVP(HMVP)マージ候補は、空間MVP及びTMVPの後に、マージリストに追加される。この方法では、以前に符号化されたブロックの動き情報がテーブルに格納され、カレントCUのMVPとして使用される。複数のHMVP候補を伴うテーブルは、エンコード/デコードプロセス中に維持される。テーブルは、新規のCTU行に遭遇したときにリセットされる(空にされる)。サブブロックインター符号化されていないCUが存在するときはいつでも、関連する動き情報が、新規のHMVP候補としてテーブルの最後のエントリに追加される。
VTM3では、HMVPテーブルサイズSは6に設定され、これは、最大6つの履歴ベースのMVP(HMVP)候補が、テーブルに追加され得ることを示す。新規の動き候補をテーブルに挿入するとき、制約付き先入れ先出し(FIFO)規則が利用され、ここでは、テーブル内に同一のHMVPがあるか否かを見つけるために、冗長検査が最初に適用される。同一のHMVPが見つかった場合、同一のHMVPがテーブルから取り除かれ、その後すべてのHMVP候補が前方に移動される。
HMVP候補は、マージ候補リストの構築プロセスで使用できる。テーブルの最新のいくつかのHMVP候補が順にチェックされ、TMVP候補の後に候補リストに挿入される。冗長検査は、空間マージ候補又は時間マージ候補に関して、HMVP候補に適用される。
冗長検査動作の回数を低減するために、1つ又は複数の簡略化を取り入れる。マージリスト生成に使用するHMVP候補数を(N<=4)?M:(8-N)、ここで、Nはマージリスト内の既存の候補の数を示し、Mはテーブル内の利用可能なHMVP候補の数を示す。利用可能なマージ候補の総数が最大許容マージ候補から1を引いた数に達すると、HMVPからのマージ候補リスト構築処理は終了する。
イントラ・ブロック・コピーがインターモードとは別個のモードとして動作するとき、HBVPと呼ばれる別個の履歴バッファが、以前に符号化されたイントラ・ブロック・コピー・ブロック・ベクトルを記憶するために使用される。
インター予測とは別のモードとして、イントラ・ブロック・コピー・モードのための簡略化されたブロックベクトル導出プロセスを有することが望ましい。同様の履歴ベースのブロックベクトル予測子バッファを使用して、BV予測を実行することができる。以下では、そのようなHBVPのいくつかの特定の使用について、いくつかの情報を提供する。
HBVPバッファは、ブロックサイズ、ブロック位置など、その他いくつかのサイド情報を含む、以前にIBC符号化されたブロックのBV情報を記録するために確立される。
記録した情報に基づいて、カレントブロックごとに、以下の条件を満たすHBVP内のBVが、対応するカテゴリに分類される。
クラス0:符号化ブロックの領域(幅×高さ)が閾値(64ピクセル)以上、
クラス1:BVの頻度が2以上、
クラス2:符号化ブロック座標(左上隅)はカレントブロックの左にある、
クラス3:符号化ブロック座標(左上隅)はカレントブロックの上にある、
クラス4:符号化ブロック座標(左上隅)はカレントブロックの左上側にある、
クラス5:符号化ブロック座標(左上隅)はカレントブロックの右上側にある、
クラス6:符号化ブロック座標(左上隅)はカレントブロックの左下側にある。
各カテゴリについて、最後に符号化されたブロックのBVが、BV予測子候補として導出される。CBVPリストは、各カテゴリのBV予測子を0から6の順に付加して構築される。
符号化ブロックは、いくつかの連続ストリングに分割されてもよく、その各々は、走査順序に沿って次のストリングが続く。走査順序は、ラスタ走査又はトラバース走査とすることができる。各ストリングについて、ストリングオフセットベクトル(SV)及びストリングの長さが、シグナリングされる。SVは、基準ストリングが基準領域内のどこからのものであるかを示すために使用される。長さは、カレント/基準ストリングの長さを示すために使用される。ストリングマッチング又はストリングコピーモードの例は、ラスタ走査順序を使用して2つのストリングに分割される8×8 CUを含み得る。String0は、最初の29個のサンプルを含み得る一方で、String1は、最後の35個のサンプルを含み得る。String0及びString1の基準は、対応するストリングオフセットベクトル(SV0及びSV1)によって示される。既に再構築された領域を基準に使用し得る。カレントブロック内のサンプルが基準領域内で、そのマッチングを見つけることができない場合、エスケープサンプルがシグナリングされ、その値が直接符号化される。
1つの特定のストリングマッチングモードでは、1つの単一ストリング内のすべてのサンプルが同じ値を共有する。このモードは、単一値ストリングモードとも呼ばれる。このモードでは、ストリングベクトルを使用して、このストリングの値が基準領域内のどこからのものであるかを示す。単一ストリングモードを改善するために、このモードのストリングベクトルをシグナリングする代わりに、最近発生したデコードしたサンプル値のリストを使用して、履歴ベースのリストを形成する。この履歴リストには、最近発生したサンプル位置(カレント画像の左上隅を基準としたx座標及びy座標)が格納される。履歴リスト内の1つの特定のエントリを指し示すインデックスは、基準位置内の対応するサンプルが単一値ストリングモードに使用されることを意味する。このインデックスはビットストリームで送信される。
単一値ストリングモードの値が履歴ベースのリストから見つからない場合、値はビットストリームで直接シグナリングされる。この値を新規単一値と呼ぶ。符号化ブロックの場合、いくつかのストリングを単一値ストリングモードで符号化することができる。設定した新規単一値は、符号化ブロックレベルでシグナリングされる。サイズMを有する候補セットは、履歴ベースのリスト(サイズPを有し、PはMより大きくすることができる)と、カレント符号化ブロックのシグナリングされた新規単一値とを組み合わせることによって形成される。履歴ベースのリスト内の各エントリについて、このエントリがカレントブロックを予測するために使用されるか否かを知らせるために、再使用フラグがシグナリングされる。N(N<=固定サイズM)と仮定すると、そのようなエントリが、選択されて再利用され、履歴ベースの候補セットと呼ばれる。予測サンプル値を選択するために、インデックスがビットストリームで送信される。[0,N-1]の範囲内の値を有するインデックスが、履歴ベースの候補セット内の1つの特定のエントリを示す場合、単一値ストリングモードを予測するために選択される。そうではなく、インデックスがNより大きい場合、予測を行うために、ビットストリームから新規単一値をデコードする必要がある。インデックス範囲は、予測のための全体的な候補がM個のエントリを超えないように、[0,M-1]内にあるように制約される。基準位置内又はビットストリームからの対応するサンプルは、単一値ストリングモードに使用される。
この履歴リストの維持は、FIFO手順に従ってもよい。履歴リストが一杯であり、新規のエントリが入力されている場合、最も古いエントリがリストから削除され得る。リスト内のエントリにアクセスするとき、最新のエントリには、最小のインデックス値(又はその逆)が割り当てられ得る。
新規の符号化ブロックごとに、シグナリングされた新規単一値と共に、履歴ベースのリスト内のどのエントリがカレントブロックに使用されるかを示すために、再使用フラグのセットは、シグナリングされ得る。カレントブロックの符号化後、履歴ベースのリストは、カレントブロックに対して、確立された候補セット(上述したように、履歴ベースのリストとシグナリングされた新規単一値との組み合わせ)によって更新される。再利用としてマークされていない履歴ベースのリスト内のエントリは、カレントブロックの符号化後に破棄されてもよい。
ここで図2Dを参照すると、IBCモードの基準サンプルメモリ更新プロセスのブロック図200Dを示している。ブロックという用語は、予測ブロック、符号化ブロック、又は符号化ユニット、すなわちCUとして解釈され得る。1つ又は複数の実施形態によれば、単一値ストリングモードに関する履歴リスト内の基準位置更新を管理するためのIBCに関する同じ基準サンプルメモリ更新メカニズム。基準サンプル・メモリ・サイズがCTUサイズ(例えば128×128)と同じであると仮定する。各状態(カレントCTUの各64×64領域)では、対応する利用可能な基準領域は陰影が付けられ、「X」は付けられない。これらのサンプル値も、単一値ストリングモードにおける予測値として用いることができるものである。したがって、単一値ストリングモードに関する履歴リスト内の利用可能な値のみを適切に使用するために、以下は、利用可能なサンプル範囲を考慮して履歴リストを管理するためのいくつかの実施形態である。一実施形態では、履歴リスト内の基準位置が基準サンプルメモリ内でもはや利用可能でない場合、エンコーダは、単一値ストリングモードに関して、これらの位置内のサンプルを選択しない。この挙動は、ビットストリーム適合性要件に記載することによって実施される。別の実施形態では、各64×64コード領域の開始時に、基準サンプルメモリ内に、もはやない(すなわち、「X」でマークされた位置)履歴リスト内のサンプル/位置を除去する。メモリ内の除去された領域は、64×64サイズ、又はカレント・ブロック・サイズ(64×64より大きい場合)のいずれかであり得る。
1つ又は複数の実施形態によれば、相対座標は、履歴リスト内の基準位置の表現のためにCTUの左上隅にオフセットされる。IBC及びストリングマッチングのための基準サンプルは、1つのCTUの最大サイズを有する(CTUサイズがメモリサイズに等しい場合)基準サンプルメモリに格納されたものでなければならないためである。基準サンプル・メモリ・サイズがCTUサイズ(例えば128×128)と同じであると仮定する。カレントCTU内の符号化されたサンプルに加えて、左CTU内の再構成されたサンプルを参照に使用し得る。すべての利用可能な基準サンプルは、合計で1つのCTUサイズより大きくはならない。すなわち、左CTU内のサンプルは、符号化プロセスがカレントCTU内で進行するにつれて、カレントCTU内の符号化領域によって徐々に置き換えられる。特に、更新は、64×64符号化領域ベースで毎回行われる。左上隅の座標(Xc、Yc)を有するカレントブロックの場合、ctuサイズは、単一値ストリングモードに関する基準位置(Xr、Yr)であるctu_sizeである。(Xr、Yr)は、基準サンプルメモリの左上隅に対する基準サンプルメモリ内の基準位置の相対オフセットである。
カレントCTUの左上隅(Xctu、Yctu)を、(Xc-Xc%ctu_size、Yc-Yc%ctu_size)として導出することができる。カレントCTUの左上隅からカレントブロックへのオフセット(Xcオフセット、Ycオフセット)を、(Xc-Xctu、Yc-Yctu)として導出することができる。カレント符号化ブロック(Xc、Yc)について、位置(Xr+Xctu、Yr+Yctu)がまだ符号化されていない場合、画像座標内の基準位置を、(Xr+Xctu-ctu_size、Yr+Yctu)として導出することができる。そうではなく、カレント符号化ブロック(Xc、Yc)について、位置(Xr+Xctu、Yr+Yctu)が既に符号化されている場合、画像座標内の基準位置を、(Xr+Xctu、Yr+Yctu)として導出することができる。最小ブロックサイズがM×Nであると仮定すると、(Xr、Yr)を、それぞれXr方向についてMの倍数、及びYr方向についてNの倍数によって更に表すことができる。
ここで図2Eを参照すると、IBC及びストリングマッチングの基準サンプルメモリ更新プロセスのブロック図200Eを示している。1つ又は複数の実施形態によれば、IBC及びストリングマッチングのための基準サンプル・メモリ・サイズがCTUサイズよりも大きい場合、カレントCTU内の符号化されたサンプルに加えて、1つを超える左CTUをそのメモリ内に格納し、基準として使用することができる。例えば、IBC及びストリングマッチングの基準範囲を図2Eに示しており、垂直ストリップ線を有するブロックがカレントブロックであり、グレー領域内のサンプルを基準として使用することができる。単一値ストリングモードの基準位置(Xr、Yr)について、カレントCTU行からのサンプルのみが基準に利用可能であるため、Yrの導出は上記と同様である。Xr導出のために、その絶対x座標を使用し得る。新規ストリングが単一値ストリングモードで符号化されたとき、基準サンプルの位置情報は、履歴ベースのリストで更新され得る。
Nの長さを有するカレントストリングを想定すると、そのサンプルは、(X0、Y0)、(X1、Y1)、...、(XN-1、YN-1)に位置し、ここで、(X0、Y0)は、走査順におけるストリング内の最初のサンプルの位置である。履歴ベースのリスト内、又はその値を示す履歴ベースの候補セット内のエントリAは、位置(Xr、Yr)を有する。カレントストリングを符号化した後、同じエントリAが、更新プロセスによって履歴ベースのリスト内に残る。エントリAの位置情報は、この新規ストリングの情報に基づいて修正され得る。一実施形態では、(X0、Y0)が、(Xr、Yr)を置き換えるために使用される。別の実施形態では、(XN-1、YN-1)が、(Xr、Yr)を置き換えるために使用される。第3の実施形態では、ストリング内の任意のサンプル位置(Xi、Yi)を使用して(Xr、Yr)を置き換えることができる。
ここで図3を参照すると、ストリングマッチングに基づいてビデオデータをエンコード及びデコードするプログラムによって実行される方法300のステップを示す動作フローチャートを示している。
302において、方法300は、1つ又は複数の基準位置を含むビデオデータを受信するステップを含み得る。
304において、方法300は、単一値ストリングモードに関するイントラ・ブロック・コピーに基づいて、1つ又は複数の基準位置を、受信したビデオデータに関連付けられた履歴リスト内で更新するステップを含み得る。
306において、方法300は、更新した基準位置に基づいて、ビデオデータをデコードするステップを含み得る。
図3は、一実装形態の例示のみを提供し、異なる実施形態がどのように実施され得るかに関していかなる限定も意味しないことが理解されよう。図示した環境に対する多くの修正は、設計及び実装形態要件に基づいて行い得る。
図4は、例示的な実施形態による、図1に示すコンピュータの内部構成要素及び外部構成要素のブロック図400である。図4は、一実装形態の例示のみを提供し、異なる実施形態が実施され得る環境に関するいかなる限定も意味しないことを理解されたい。図示した環境に対する多くの修正は、設計及び実装形態要件に基づいて行い得る。
コンピュータ102(図1)及びサーバコンピュータ114(図1)は、図5に示す内部構成要素800A、800B及び外部構成要素900A、900Bのそれぞれのセットを含み得る。内部構成要素800のセットの各々は、1つ又は複数のプロセッサ820と、1つ又は複数のバス826上の1つ若しくは複数のコンピュータ可読RAM 822及び1つ若しくは複数のコンピュータ可読ROM 824と、1つ又は複数のオペレーティングシステム828と、1つ又は複数のコンピュータ可読有形記憶デバイス830と、を含む。
プロセッサ820は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ820は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、又は別の種類の処理構成要素である。いくつかの実装形態では、プロセッサ820は、機能を実行するようにプログラムすることができる1つ又は複数のプロセッサを含む。バス826は、内部構成要素800A、800B間の通信を可能にする構成要素を含む。
サーバコンピュータ114(図1)上の1つ又は複数のオペレーティングシステム828、ソフトウェアプログラム108(図1)、及びビデオ符号化プログラム116(図1)は、それぞれのRAM822(通常はキャッシュメモリを含む)のうちの1つ又は複数を介して、それぞれのプロセッサ820のうちの1つ又は複数によって実行されるために、それぞれのコンピュータ可読有形記憶デバイス830のうちの1つ又は複数に記憶される。図4に示す実施形態では、コンピュータ可読有形記憶デバイス830の各々は、内蔵ハードドライブの磁気ディスク記憶デバイスである。あるいは、コンピュータ可読有形記憶デバイス830の各々は、ROM824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、ソリッド・ステート・ディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、並びに/又はコンピュータプログラム及びデジタル情報を記憶し得る別の種類の非一時的コンピュータ可読有形記憶デバイスなどの半導体記憶デバイスである。
内部構成要素800A、800Bの各セットはまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、又は半導体記憶デバイスなどの1つ又は複数のポータブルコンピュータ可読有形記憶デバイス936から読み書きするためのR/Wドライブ又はインターフェース832を含む。ソフトウェアプログラム108(図1)及びビデオ符号化プログラム116(図1)などのソフトウェアプログラムは、それぞれのポータブルコンピュータ可読有形記憶デバイス936のうちの1つ又は複数に記憶され、それぞれのR/Wドライブ又はインターフェース832を介して読み取られ、それぞれのハードドライブ830にロードされ得る。
内部構成要素800A、800Bの各セットはまた、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、あるいは3G、4G、若しくは5G無線インターフェースカード又は他の有線若しくは無線通信リンクなどのネットワークアダプタ又はインターフェース836を含む。サーバコンピュータ114(図1)上のソフトウェアプログラム108(図1)及びビデオ符号化プログラム116(図1)は、ネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、又は他のワイド・エリア・ネットワーク)及びそれぞれのネットワークアダプタ又はインターフェース836を介して外部コンピュータから、コンピュータ102(図1)及びサーバコンピュータ114にダウンロードされ得る。ネットワークアダプタ又はインターフェース836から、サーバコンピュータ114上のソフトウェアプログラム108及びビデオ符号化プログラム116が、それぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含むことができる。
外部構成要素900A、900Bのセットの各々は、コンピュータ・ディスプレイ・モニタ920、キーボード930、及びコンピュータマウス934を含むことができる。外部構成要素900A、900Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、及び他のヒューマン・インターフェース・デバイスを含むことができる。内部構成要素800A、800Bのセットの各々はまた、コンピュータ・ディスプレイ・モニタ920、キーボード930、及びコンピュータマウス934にインターフェースするためのデバイスドライバ840を含む。デバイスドライバ840、R/Wドライブ又はインターフェース832及びネットワークアダプタ又はインターフェース836は、(記憶デバイス830及び/又はROM824に記憶された)ハードウェア及びソフトウェアを含む。
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙された教示の実装形態はクラウドコンピューティング環境に限定されないことを事前に理解されたい。むしろ、いくつかの実施形態は、現在知られている又は後に開発される任意の他の種類のコンピューティング環境と併せて実施することができる。
クラウドコンピューティングは、最小限の管理労力又はサービスのプロバイダとの対話で迅速にプロビジョニング及びリリースすることができる構成可能コンピュータリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
特徴は以下の通りである。
オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間及びネットワークストレージなどのコンピュータ機能を一方的にプロビジョニングすることができる。
広範なネットワークアクセス:機能は、ネットワークを介して利用可能であり、異種のシン又はシックなクライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を介してアクセスされる。
リソースプーリング:プロバイダのコンピュータリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、異なる物理リソース及び仮想リソースは、需要に応じて動的に割り当て及び再割り当てされる。消費者は、一般に、提供されたリソースの正確な位置に対する制御又は知識を持たないが、より高い抽象化レベル(例えば、国、州、又はデータセンター)で位置を指定することができるという点で、位置独立性の感覚がある。
迅速な弾性:機能を、場合によっては自動的に、迅速にスケールアウトするために迅速かつ弾性的に、プロビジョニングし、迅速にスケールインするために迅速に解放することができる。消費者にとって、プロビジョニングに利用可能な機能は、多くの場合無制限であるように見え、いつでも任意の量で購入することができる。
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブ・ユーザ・アカウント)に適したある抽象化レベルで計量能力を活用することによって、リソース使用を自動的に制御及び最適化する。リソース使用は、利用されるサービスのプロバイダ及び消費者の両方に透明性を提供するように監視、制御、及び報告され得る。
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアントデバイスからアクセス可能である。消費者は、限られたユーザ固有のアプリケーション構成設定を除いて、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は個々のアプリケーション機能さえも含む基盤となるクラウドインフラストラクチャを管理又は制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成された、消費者が作成又は取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む基盤となるクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション及び場合によってはアプリケーションホスティング環境構成を制御する。
サービスとしてのインフラストラクチャ(laaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、及び他の基本的なコンピュータリソースを提供することであり、消費者は、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアを展開及び実行することができる。消費者は、基盤となるクラウドインフラストラクチャを管理も制御もしないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、及び場合によっては選択ネットワーキング構成要素(例えば、ホストファイアウォール)の限定された制御を制御する。
展開モデルは以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、組織のためにのみ動作する。これは、組織又は第三者によって管理されてもよく、オンプレミス又はオフプレミスで存在してもよい。
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共有された関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。これは、組織又は第三者によって管理されてもよく、オンプレミス又はオフプレミスで存在してもよい。
パブリッククラウド:クラウドインフラストラクチャは、一般の人々又は大規模な業界グループに提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、独自のエンティティのままであるが、データ及びアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準化された又は独自の技術によって互いに結び付けられた2つ以上のクラウド(私的、共同体、又は公的)の構成である。
クラウドコンピューティング環境は、無国籍、低結合、モジュール性、及びセマンティック相互運用性に焦点を合わせたサービス指向である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
図5を参照すると、例示的なクラウドコンピューティング環境500が示されている。図示するように、クラウドコンピューティング環境500は、例えば、携帯情報端末(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は自動車コンピュータシステム54Nなどの、クラウド消費者によって使用されるローカル・コンピュータ・デバイスが通信することができる1つ又は複数のクラウド・コンピューティング・ノード10を備える。クラウド・コンピューティング・ノード10は、互いに通信することができる。それらは、上述のプライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド、又はそれらの組み合わせなどの1つ又は複数のネットワークにおいて、物理的又は仮想的にグループ化(図示せず)されてもよい。これにより、クラウドコンピューティング環境500は、クラウド消費者がローカル・コンピュータ・デバイス上のリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを提供することができる。図5に示すコンピュータデバイス54A~Nのタイプは例示のみを意図しており、クラウド・コンピューティング・ノード10及びクラウドコンピューティング環境500は、任意のタイプのネットワーク及び/又はネットワークアドレス指定可能な接続(例えば、ウェブブラウザを使用する)を介して任意のタイプのコンピュータ化されたデバイスと通信することができることが理解される。
図6を参照すると、クラウドコンピューティング環境500(図5)によって提供される一組の機能抽象化層600が示されている。図6に示す構成要素、層、及び機能は例示のみを意図しており、実施形態はそれに限定されないことを事前に理解されたい。図示するように、以下の層及び対応する機能が提供される。
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、並びにネットワーク及びネットワーク構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67及びデータベースソフトウェア68を含む。
仮想エンティティの例である、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、並びに仮想クライアント75が提供され得る抽象化層を、仮想化層70が提供する。
一例では、管理層80は、以下に説明する機能を提供することができる。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピュータリソース及び他のリソースの動的な調達を提供する。計測及び価格設定82は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、及びこれらのリソースの消費に対する請求又は請求書発行を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド消費者及びタスクのための識別検証、並びにデータ及び他のリソースのための保護を提供する。ユーザポータル83は、消費者及びシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるようにクラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス水準合意(SLA)の計画及び履行85は、その将来の要件がSLAに従って予想されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
ワークロード層90は、クラウドコンピューティング環境を利用し得る機能の例を提供する。この層から提供され得るワークロード及び機能の例は、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育配信93、データ解析処理94、取引処理95、並びにビデオ符号化96を含む。ビデオ符号化96は、ストリングマッチングに基づいて、ビデオデータをエンコード及びデコードし得る。
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、及び/又はコンピュータ可読媒体に関することができる。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一時的記憶媒体を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持及び格納することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又はこれらの任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、命令が記録されたパンチカード又は溝内の隆起構造などの機械的に符号化されたデバイス、及び上記の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を伝搬する電磁波、又はワイヤを介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、又はネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク及び/又は無線ネットワークを介して外部コンピュータ若しくは外部記憶デバイスを介してそれぞれのコンピュータ/処理デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいはSmalltalk、C++などのオブジェクト指向プログラミング言語、及び「C」プログラミング言語若しくは同様のプログラミング言語などの手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ若しくはサーバ上で実行し得る。後者のシナリオでは、リモートコンピュータは、ローカル・エリア・ネットワーク(LAN)又はワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、又は外部コンピュータに(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)接続されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、又はプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、態様又は動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行することができる。
これらのコンピュータ可読プログラム命令は、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作を実施するための手段を作成するように、機械を製造するために、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能なデータ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、及び/又は他のデバイスに特定の方法で機能するように指示することができるコンピュータ可読記憶媒体に格納されてもよく、その結果、格納された命令を有するコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作の態様を実施する命令を含む製品を含む。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、又は他のデバイス上で実行される命令がフローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作を実施するように、コンピュータ、他のプログラム可能な装置、又は他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成するために、コンピュータ、他のプログラム可能なデータ処理装置、又は他のデバイス上にロードされてもよい。
図のフローチャート及びブロック図は、様々な実施形態によるシステム、方法、及びコンピュータ可読媒体の可能な実装形態のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含むモジュール、セグメント、又は命令の一部を表すことができる。方法、コンピュータシステム、及びコンピュータ可読媒体は、図に示すものよりも、更なるブロック、より少ないブロック、異なるブロック、又は異なる配置のブロックを含んでもよい。いくつかの代替的な実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、同時に若しくは実質的に同時に実行されてもよく、又はブロックは、関連する機能に応じて、時には逆の順序で実行されてもよい。また、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図のブロックの組み合わせは、指定された機能又は動作を実行するか、専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実装され得ることにも留意されたい。
本明細書に記載のシステム及び/又は方法は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用の制御ハードウェア又はソフトウェアコードは、実装形態を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
本明細書で使用される要素、動作、又は命令は、そのように明示的に記載されていない限り、重要又は必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」及び「an」は、1つ又は複数の項目を含むことを意図しており、「1つ又は複数」と交換可能に使用され得る。更に、本明細書で使用される場合、「セット」という用語は、1つ又は複数の項目(例えば、関連項目、無関係な項目、関連項目と無関係な項目との組み合わせなど)を含むことを意図しており、「1つ又は複数」と互換的に使用され得る。1つの項目のみが意図される場合、「1つ」という用語又は同様の用語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることを意図している。更に、「に基づいて」という語句は、特に明記しない限り、「少なくとも部分的に、基づいて」を意味することを意図している。
様々な態様及び実施形態の説明は、例示の目的で提示されているが、網羅的であること、又は開示された実施形態に限定されることを意図するものではない。特徴の組み合わせが特許請求の範囲に記載され、及び/又は本明細書に開示されているが、これらの組み合わせは、可能な実装形態の開示を限定することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、及び/又は明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は1つの請求項のみに直接依存してもよいが、可能な実装形態の開示は、各従属請求項を請求項セット内の他のすべての請求項と組み合わせて含む。記載された実施形態の範囲から逸脱することなく、多くの修正及び変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途又は市場で見られる技術に対する技術的改善を最もよく説明するために、又は当業者が本明細書に開示する実施形態を理解することを可能にするために選択された。
10 クラウド・コンピューティング・ノード
54A 携帯電話
54B デスクトップコンピュータ
54C ラップトップコンピュータ
54N 自動車コンピュータシステム
60 ハードウェア及びソフトウェア層
61 メインフレーム
62 RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ
63 サーバ
64 ブレードサーバ
65 記憶デバイス
66 ネットワーク及びネットワーク構成要素
67 ネットワーク・アプリケーション・サーバ・ソフトウェア
68 データベースソフトウェア
70 仮想化層
71 仮想サーバ
72 仮想ストレージ
73 仮想プライベートネットワークを含む仮想ネットワーク
74 仮想アプリケーション及びオペレーティングシステム
75 仮想クライアント
80 管理層
81 リソースプロビジョニング
82 計測及び価格設定
83 ユーザポータル
84 サービスレベル管理
85 サービス水準合意(SLA)の計画及び履行
90 ワークロード層
91 マッピング及びナビゲーション
92 ソフトウェア開発及びライフサイクル管理
93 仮想教室教育配信
94 データ解析処理
95 取引処理
96 ビデオ符号化
100 ビデオ符号化システム
102 コンピュータ
104 プロセッサ
106 データ記憶デバイス
108 ソフトウェアプログラム
110 通信ネットワーク
112 データベース
114 サーバコンピュータ
116 ビデオ符号化プログラム
200A 画像
200B ブロック図
200C ブロック図
200D ブロック図
200E ブロック図
202A カレントブロック
202B 基準ブロック
500 クラウドコンピューティング環境
600 機能抽象化層
800A 内部構成要素
800B 内部構成要素
820 プロセッサ
822 コンピュータ可読RAM
824 コンピュータ可読ROM
826 バス
828 オペレーティングシステム
830 コンピュータ可読有形記憶デバイス、ハードドライブ
832 R/Wドライブ又はインターフェース
836 ネットワークアダプタ又はインターフェース
840 デバイスドライバ
900A 外部構成要素
900B 外部構成要素
920 コンピュータ・ディスプレイ・モニタ
930 キーボード
934 コンピュータマウス
936 ポータブルコンピュータ可読有形記憶デバイス

Claims (12)

1つ又は複数の基準位置を含むビデオデータを受信するステップと、
単一値ストリングモードに関するイントラ・ブロック・コピーに基づいて、前記受信したビデオデータに関連付けられた履歴リストの前記基準位置を更新するステップであって、単一値ストリングモードに関する前記履歴リスト内の前記基準位置の更新を管理するために、イントラ・ブロック・コピーに関する同じ基準サンプルメモリ更新メカニズムが使用されるステップと、
前記更新した基準位置に基づいて前記ビデオデータをデコードするステップと
を含む、プロセッサによって実行可能なビデオ符号化の方法。
前記履歴リスト内の前記基準位置がもはや基準サンプルメモリ内で利用可能でないことに基づいて、単一値ストリングモードに関する前記基準位置内のサンプルを選択しないように、エンコーダを制御するステップを更に含む、請求項1に記載の方法。
前記エンコーダが、ビットストリーム適合性要件を提供することに基づいて制御される、請求項2に記載の方法。
64ピクセル×64ピクセルの符号化領域の開始時に、もはや基準サンプルメモリ内にない前記履歴リストからの1つ又は複数の基準位置を除去するステップを更に含む、請求項1に記載の方法。
前記除去される基準位置が、64ピクセル×64ピクセル、又は64ピクセル×64ピクセルより大きいカレント・ブロック・サイズである、請求項4に記載の方法。
前記基準位置が、前記履歴リスト内の前記基準位置に関連付けられた符号化ツリーユニットの左上隅に対する相対座標オフセットの更新に基づいて更新される、請求項1に記載の方法。
前記基準位置に関連付けられたイントラ・ブロック・コピー及びストリングマッチングのためのサンプルが、前記符号化ツリーユニットのサイズに対応する最大サイズで基準サンプルメモリに記憶される、請求項6に記載の方法。
左CTU内の前記サンプルが、64ピクセル×64ピクセルの符号化領域ごとにカレント符号化ツリーユニット内の符号化領域によって置き換えられる、請求項7に記載の方法。
前記基準位置が、単一値ストリングモードで符号化されている新規ストリングに基づいて、前記履歴リスト内で更新される、請求項1に記載の方法。
前記新規ストリング内の任意のサンプル位置が、前記基準位置を更新するために使用される、請求項9に記載の方法。
コンピュータ・プログラム・コードを記憶するように構成された1つ又は複数のコンピュータ可読非一時的記憶媒体と、
前記コンピュータ・プログラム・コードにアクセスし、前記コンピュータ・プログラム・コードによって命令されて動作するように構成された1つ又は複数のコンピュータプロセッサであって、前記コンピュータ・プログラム・コードが、前記1つ又は複数のコンピュータプロセッサに、請求項1~10のいずれか一項に記載の方法を行わせるためのコンピュータ・プログラム・コードである、1つ又は複数のコンピュータプロセッサと
を備える、ビデオ符号化のためのコンピュータシステム。
1つ又は複数のコンピュータプロセッサに、請求項1~10のいずれか一項に記載の方法を行わせるためのコンピュータプログラム。
JP2022531576A 2020-08-18 2021-06-07 基準位置からの単一値とのストリングマッチング Active JP7412848B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202063067260P 2020-08-18 2020-08-18
US63/067,260 2020-08-18
US202063069275P 2020-08-24 2020-08-24
US63/069,275 2020-08-24
US17/317,173 2021-05-11
US17/317,173 US11601642B2 (en) 2020-08-18 2021-05-11 String matching with a single value from reference locations
PCT/US2021/036164 WO2022039820A1 (en) 2020-08-18 2021-06-07 String matching with a single value from reference locations

Publications (2)

Publication Number Publication Date
JP2023504799A JP2023504799A (ja) 2023-02-07
JP7412848B2 true JP7412848B2 (ja) 2024-01-15

Family

ID=80270047

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022531576A Active JP7412848B2 (ja) 2020-08-18 2021-06-07 基準位置からの単一値とのストリングマッチング

Country Status (6)

Country Link
US (3) US11601642B2 (ja)
EP (1) EP4032264A4 (ja)
JP (1) JP7412848B2 (ja)
KR (1) KR20220066976A (ja)
CN (1) CN114556917A (ja)
WO (1) WO2022039820A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11627328B2 (en) * 2020-10-16 2023-04-11 Tencent America LLC Method and apparatus for video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017528987A (ja) 2014-08-22 2017-09-28 ゼットティーイー コーポレーションZte Corporation 予測符号化、復号化方法、対応するエンコーダ、デコーダ及び電子機器
WO2020244658A1 (en) 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Sub-block based intra block copy

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105850131B (zh) 2013-11-14 2019-08-20 寰发股份有限公司 利用基于帧内图片区块复制预测的视频编码方法
US20150264348A1 (en) 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
US9930340B2 (en) * 2014-06-20 2018-03-27 Qualcomm Incorporated Systems and methods for selectively performing a bitstream conformance check
US10448011B2 (en) 2016-03-18 2019-10-15 Mediatek Inc. Method and apparatus of intra prediction in image and video processing
JP7098761B2 (ja) 2018-07-14 2022-07-11 エルジー エレクトロニクス インコーポレイティド 映像コーディングシステムにおけるイントラ予測関連情報を使用する映像デコード方法およびその装置
WO2020156549A1 (en) * 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer access methods for intra block copy in video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017528987A (ja) 2014-08-22 2017-09-28 ゼットティーイー コーポレーションZte Corporation 予測符号化、復号化方法、対応するエンコーダ、デコーダ及び電子機器
WO2020244658A1 (en) 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Sub-block based intra block copy

Also Published As

Publication number Publication date
EP4032264A4 (en) 2022-11-30
US20230336714A1 (en) 2023-10-19
CN114556917A (zh) 2022-05-27
WO2022039820A1 (en) 2022-02-24
US11601642B2 (en) 2023-03-07
US11729379B2 (en) 2023-08-15
KR20220066976A (ko) 2022-05-24
US20220060685A1 (en) 2022-02-24
JP2023504799A (ja) 2023-02-07
EP4032264A1 (en) 2022-07-27
US20230164308A1 (en) 2023-05-25

Similar Documents

Publication Publication Date Title
US20230156213A1 (en) Spatial displacement vector prediction for intra picture block and string copying
US11580671B2 (en) Hash-based attribute prediction for point cloud coding
US20200082026A1 (en) Graph data processing
US20230336714A1 (en) String matching with a single value from reference locations
US11722678B2 (en) Method and apparatus for transform skip coefficients coding
US11736720B2 (en) Motion vector refinement methods for video encoding
JP2022553695A (ja) ビデオコーディングのための領域適応ループフィルタ
CN115702565A (zh) 改进的交叉分量帧内预测模式
US11146818B1 (en) Methods of intra picture block prediction for multi-view video compression
US11418810B2 (en) Methods of inter picture motion prediction for multi-view video compression
US11363277B2 (en) Methods on affine inter prediction and deblocking
US11259055B2 (en) Extended maximum coding unit size

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220527

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230831

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231221

R150 Certificate of patent or registration of utility model

Ref document number: 7412848

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150