(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024149767
(43)【公開日】2024-10-18
(54)【発明の名称】明示的信号伝達および暗黙的信号伝達を用いた、使用不可参照フレームの適応ブロック更新
(51)【国際特許分類】
H04N 19/503 20140101AFI20241010BHJP
H04N 19/46 20140101ALI20241010BHJP
【FI】
H04N19/503
H04N19/46
【審査請求】有
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2024135005
(22)【出願日】2024-08-13
(62)【分割の表示】P 2023036381の分割
【原出願日】2019-11-27
(31)【優先権主張番号】62/772,066
(32)【優先日】2018-11-27
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/771,941
(32)【優先日】2018-11-27
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521136080
【氏名又は名称】オーピー ソリューションズ, エルエルシー
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】ハリ カルバ
(72)【発明者】
【氏名】ファート ボリヴォイェ
(72)【発明者】
【氏名】ヴェリボール アジッチ
(57)【要約】
【課題】使用不可参照ピクチャに対する適応ブロック更新を提供すること
【解決手段】デコーダが、カレントブロックを受信することと、カレントブロックがカレントブロックに基づいて使用不可参照フレームを更新するためのブロックであると決定することと、カレントブロックを用いて使用不可参照フレームを更新することとを行うように構成されている、回路構成を含む。関連する装置、システム、技法および物品も、説明される。ある側面において、デコーダは、カレント符号化ブロックを含むビットストリームを受信することと、デコードされたカレントブロックを決定することと、使用不可参照ブロック更新モードがカレント符号化ブロックに対するビットストリームにおいて有効にされることを決定することと、デコードされたカレントブロックを用いて使用不可参照フレームを更新することとを行うように構成されている回路構成を含む。
【選択図】なし
【特許請求の範囲】
【請求項1】
明細書に記載された発明。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2018年11月27日に出願された“ADAPTIVE BLOCK UPDATE OF LONG TERM REFERENCE FRAMES USING EXPLICIT SIGNALING”と題する米国仮特許出願第62/772,066号の優先権の利益を主張し、米国仮特許出願第62/772,066号は、その全体が参照により本明細書に援用される。本出願は、さらに、2018年11月27日に出願された“ADAPTIVE BLOCK UPDATE OF LONG TERM REFERENCE FRAMES USING IMPLICIT SIGNALING”と題する米国仮特許出願第62/771,941号の優先権の利益を主張し、米国仮特許出願第62/771,941号は、その全体が参照により本明細書に援用される。
【0002】
(発明の分野)
本発明は、概して、動画圧縮の分野に関連する。特に、本発明は、使用不可参照ピクチャに対する適応ブロック更新に向けられる。
【背景技術】
【0003】
(背景)
動画コーデックは、デジタル動画を圧縮または解凍する電子回路またはソフトウェアを含み得る。それは、非圧縮動画を圧縮形式に変換し得、またはその逆を行い得る。動画圧縮の文脈では、動画を圧縮する(かつ/またはそのいくつかの機能を実施する)デバイスは、通常、エンコーダと呼ばれ得、動画を解凍する(かつ/またはそのいくつかの機能を実施する)デバイスは、デコーダと呼ばれ得る。
【0004】
圧縮されたデータの形式は、標準的な動画圧縮規格に準拠し得る。圧縮された動画が、元の動画に存在している何らかの情報を欠く点において、圧縮は、ロッシーであり得る。このことの帰結は、解凍された動画が、元の動画を正確に再構築するには情報が足りないので、元の非圧縮動画より低い品質を有し得ることを含み得る。
【0005】
動画品質と、(例えばビットレートにより決定される)動画を表現することに用いられるデータ量と、エンコーディングアルゴリズムおよびデコーディングアルゴリズムの複雑性と、データ損失および誤差への感度と、編集の容易さと、ランダムアクセスと、エンドツーエンド遅延(例えばレイテンシ)と、これらに類するものとには、複雑な関係があり得る。
【0006】
動き補償は、カメラの動きおよび/または動画内の物の動きを把握することによって以前のフレームおよび/または未来のフレームといった参照フレームが与えられた動画フレームまたはその一部を予測するためのアプローチを含み得る。それは、動画圧縮のための動画データのエンコーディングおよびデコーディングにおいて採用され得、例えば、Motion Picture Experts Group(MPEG)-2(advanced video coding(AVC)およびH.264とも称される)標準規格において採用され得る。動き補償は、参照ピクチャのカレントピクチャへの変換という観点からピクチャを説明し得る。参照ピクチャは、カレントピクチャと比べたときに時間について以前であり得、カレントピクチャと比べたときに未来からであり得、または、長期参照(LTR)フレームを含み得る。以前に送信され、かつ/または記憶された画像から画像が正確に合成され得るとき、圧縮効率は、改善され得る。
【0007】
H.264およびH.265といった現行の標準規格は、新たにデコードされたフレーム(参照フレームとして、保存され、使用可能となる)を信号伝達することによるフレーム(長期参照フレーム等)の更新を可能としている。このような更新は、エンコーダにより信号伝達され、フレーム全体が、更新される。しかし、フレーム全体を更新することは、コストがかかり得、とりわけ、静的背景のごく一部のみが変化した場合にコストがかかり得る。部分フレーム更新は、可能であるが、しかし、フレーム更新を果たすための複雑であり計算コストがかかる手順を往々にして内包し得る。
【発明の概要】
【課題を解決するための手段】
【0008】
(開示の概要)
ある側面において、デコーダは、カレント符号化ブロックを含むビットストリームを受信することと、デコードされたカレントブロックを決定することと、使用不可参照ブロック更新モードがカレント符号化ブロックに対するビットストリームにおいて有効にされることを決定することと、デコードされたカレントブロックを用いて使用不可参照フレームを更新することとを行うように構成されている回路構成を含む。
【0009】
別の側面において、方法は、カレント符号化ブロックを含むビットストリームをデコーダが受信することを含む。方法は、含む。方法は、デコードされたカレントブロックを決定することを含む。方法は、使用不可参照ブロック更新モードがカレント符号化ブロックに対するビットストリームにおいて有効にされることを決定することを含む。方法は、デコードされたカレントブロックを用いて使用不可参照フレームを更新することを含む。
【0010】
別の側面において、デコーダは、カレントブロックを受信することと、カレントブロックに基づいて使用不可参照フレームを更新するためにカレントブロックをマークすることと、カレントブロックを用いて使用不可参照フレームを更新することとを行うように構成されている回路構成を含む。
【0011】
別の側面において、方法は、デコーダがカレントブロックを受信することを含む。方法は、カレントブロックに基づいて使用不可参照フレームを更新するためにカレントブロックをマークすることを含む。方法は、カレントブロックを用いて使用不可参照フレームを更新することを含む。
【0012】
本明細書に記載される主題の1つまたは複数のバリエーションの詳細は、付属の図面および下の説明において規定される。本明細書に記載される主題の他の特徴および利点は、説明および図面から、ならびに特許請求の範囲から自明である。
本発明は、例えば以下を提供する。
(項目1)
デコーダであって、該デコーダは、
カレント符号化ブロックを含むビットストリームを受信することと、
デコードされたカレントブロックを決定することと、
使用不可参照ブロック更新モードが該カレント符号化ブロックに対する該ビットストリームにおいて有効にされることを決定することと、
該デコードされたカレントブロックを用いて使用不可参照フレームを更新することと
を行うように構成されている回路構成を備える、デコーダ。
(項目2)
前記使用不可参照ブロック更新モードが前記ビットストリームのヘッダに含まれる、項目1に記載のデコーダ。
(項目3)
前記使用不可参照ブロック更新モードが、前記ビットストリームに含有されるピクチャパラメータセット(PPS)またはシーケンスパラメータセット(SPS)に含まれる、項目2に記載のデコーダ。
(項目4)
前記ビットストリームが第二のカレント符号化ブロックを含み、前記デコーダが、該第二のカレント符号化ブロックのモードがイントラ予測を含むことを決定し、前記使用不可参照フレームを更新することをスキップするようにさらに構成されており、前記カレント符号化ブロックおよび該第二のカレント符号化ブロックが異なるフレーム内にある、項目1に記載のデコーダ。
(項目5)
前記カレントブロックが符号化ツリーユニット、符号化ユニットまたは予測ユニットを含む、項目1に記載のデコーダ。
(項目6)
前記使用不可参照フレームを更新することが、該使用不可参照フレームのルマ値を前記デコードされたカレントブロックの同位置にあるルマ値に置換えることを含む、項目1に記載のデコーダ。
(項目7)
前記ビットストリームを受信し該ビットストリームを量子化された係数へとデコードするように構成されているエントロピーデコーダプロセッサと、
逆離散コサインを実施することを含め該量子化された係数を処理するように構成されている逆量子化および逆変換プロセッサと、
デブロッキングフィルタと、
フレームバッファと、
イントラ予測プロセッサと
をさらに備える、項目1に記載のデコーダ。
(項目8)
第二の符号化ブロックを受信することと、
インター予測モードが前記第二の符号化ブロックに対して有効にされることを決定することと、
該インター予測モードに従って、前記更新された使用不可参照フレームを参照フレームとして用いて第二のデコードされたブロックを決定することと
を行うようにさらに構成されている、項目1に記載のデコーダ。
(項目9)
前記デコードされたカレントブロックがクアッドツリープラスバイナリディシジョンツリーの一部を形成する、項目1に記載のデコーダ。
(項目10)
前記デコードされたカレントブロックが前記クアッドツリープラスバイナリディシジョンツリーの非リーフノードである、項目1に記載のデコーダ。
(項目11)
カレント符号化ブロックを含むビットストリームをデコーダが受信することと、
デコードされたカレントブロックを決定することと、
使用不可参照ブロック更新モードが該カレント符号化ブロックに対する該ビットストリームにおいて有効にされることを決定することと、
該デコードされたカレントブロックを用いて使用不可参照フレームを更新することと
を備える方法。
(項目12)
前記使用不可参照ブロック更新モードが前記ビットストリームのヘッダに含まれる、項目11に記載の方法。
(項目13)
前記使用不可参照ブロック更新モードが、前記ビットストリームに含有されるピクチャパラメータセット(PPS)またはシーケンスパラメータセット(SPS)に含まれる、項目12に記載の方法。
(項目14)
前記ビットストリームが第二のカレント符号化ブロックを含み、前記方法が、
該第二のカレント符号化ブロックのモードがイントラ予測を含むことを決定することと、
前記使用不可参照フレームを更新することをスキップすることであって、前記カレント符号化ブロックおよび該第二のカレント符号化ブロックが異なるフレーム内にある、ことと
をさらに備える、項目11に記載の方法。
(項目15)
前記カレントブロックが符号化ツリーユニット、符号化ユニットまたは予測ユニットを含む、項目11に記載の方法。
(項目16)
前記使用不可参照フレームを更新することが、該使用不可参照フレームのルマ値を前記デコードされたカレントブロックの同位置にあるルマ値に置換えることを含む、項目11に記載の方法。
(項目17)
前記デコーダは、
前記ビットストリームを受信し該ビットストリームを量子化された係数へとデコードするように構成されているエントロピーデコーダプロセッサと、
逆離散コサインを実施することを含め該量子化された係数を処理するように構成されている逆量子化および逆変換プロセッサと、
デブロッキングフィルタと、
フレームバッファと、
イントラ予測プロセッサと
をさらに備える、項目11に記載の方法。
(項目18)
第二の符号化ブロックを受信することと、
インター予測モードが該第二の符号化ブロックに対して有効にされることを決定することと、
該インター予測モードに従って、前記更新された使用不可参照フレームを参照フレームとして用いて第二のデコードされたブロックを決定することと
をさらに備える、項目11に記載の方法。
(項目19)
前記デコードされたカレントブロックがクアッドツリープラスバイナリディシジョンツリーの一部を形成する、項目11に記載の方法。
(項目20)
前記デコードされたカレントブロックが前記クアッドツリープラスバイナリディシジョンツリーの非リーフノードである、項目11に記載の方法。
(項目21)
デコーダであって、該デコーダは、
カレントブロックを受信することと、
該カレントブロックに基づいて使用不可参照フレームを更新するために該カレントブロックをマークすることと、
該カレントブロックを用いて該使用不可参照フレームを更新することと
を行うように構成されている回路構成を備える、デコーダ。
(項目22)
使用不可参照ブロック更新モードが前記カレントブロックに対するビットストリーム内で明示的に信号伝達されない、項目23に記載のデコーダ。
(項目23)
使用不可参照ブロック更新モードが前記カレントブロックに対するビットストリーム内で明示的に信号伝達されないことを決定するようにさらに構成されている、項目23に記載のデコーダ。
(項目24)
使用不可参照フレーム更新モードが偽であるか、または存在しないことをビットストリームのヘッダ内のフィールドが指し示すことを決定するようにさらに構成されている、項目23に記載のデコーダ。
(項目25)
前記カレントブロックがインター予測のための参照として前記使用不可参照フレームを用い、照明補償を適用することを決定するようにさらに構成されており、前記マークすることは、該決定に応じているかまたは該決定に基づいている、項目23に記載のデコーダ。
(項目26)
前記カレントブロック近隣にある2つまたはそれより多いブロックがインター予測のために使用不可参照動きベクトルを用いることを決定するようにさらに構成されており、前記マークすることは、該決定に応じているかまたは該決定に基づいている、項目23に記載のデコーダ。
(項目27)
前記カレントブロックのフレームがデコードされた後にブロック更新候補を決定するようにさらに構成されている、項目23に記載のデコーダ。
(項目28)
前記カレントブロックがイントラ符号化されることと、
複数の近隣ブロックがインター予測のための参照として前記使用不可参照フレームを用いることと、
該複数の近隣ブロックがゼロ動きベクトルを含むことと
を決定するようにさらに構成されており、前記マークすることは、該決定に応じているかまたは該決定に基づいている、
項目29に記載のデコーダ。
(項目29)
前記カレントブロックがイントラ符号化されることと、
複数の近隣ブロックがインター予測のための参照として前記使用不可参照フレームを用いることと、
該複数の近隣ブロックがそれぞれの動きベクトルを含み、それぞれの動きベクトルが同じであるかまたはあらかじめ決定された量より低い程度だけ異なることと
を決定するようにさらに構成されており、
前記マークすることは、該決定に応じているかまたは該決定に基づいている、
項目29に記載のデコーダ。
(項目30)
前記カレントブロックの少なくとも3つの側にある近隣ブロックがインター予測のための参照として前記使用不可参照フレームを用いること
を決定するようにさらに構成されており、前記マークすることは、該決定に応じているかまたは該決定に基づいており、
該カレントブロックは、符号化ユニットであり、該符号化ユニットの全ブロックが、更新するためにマークされる、
項目23に記載のデコーダ。
(項目31)
前記カレントブロックの少なくとも3つの側にある近隣ブロックがインター予測のための参照として前記使用不可参照フレームを用いること
を決定するようにさらに構成されており、
前記マークすることは、該決定に応じているかまたは該決定に基づいており、
該カレントブロックは、符号化ツリーユニットであり、該符号化ツリーユニットの、インター予測のための参照として該使用不可参照フレームを用いない全ブロックが、更新するためにマークされる、
項目23に記載のデコーダ。
(項目32)
前記ビットストリームを受信し該ビットストリームを量子化された係数へとデコードするように構成されているエントロピーデコーダプロセッサと、
逆離散コサインを実施することを含め該量子化された係数を処理するように構成されている逆量子化および逆変換プロセッサと、
デブロッキングフィルタと、
フレームバッファと、
イントラ予測プロセッサと
をさらに備える、項目23に記載のデコーダ。
(項目33)
デコーダがカレントブロックを受信することと、
該カレントブロックに基づいて使用不可参照フレームを更新するために該カレントブロックをマークすることと、
該カレントブロックを用いて該使用不可参照フレームを更新することと
を備える方法。
(項目34)
使用不可参照ブロック更新モードが前記カレントブロックに対するビットストリーム内で明示的に信号伝達されない、項目35に記載の方法。
(項目35)
使用不可参照ブロック更新モードが前記カレントブロックに対するビットストリーム内で明示的に信号伝達されないことを決定することをさらに備える、項目35に記載の方法。
(項目36)
使用不可参照フレーム更新モードが偽であるか、または存在しないことをビットストリームのヘッダ内のフィールドが指し示すことを決定することをさらに備える、項目35に記載の方法。
(項目37)
前記カレントブロックがインター予測のための参照として前記使用不可参照フレームを用い照明補償を適用することを決定することをさらに備え、前記マークすることは、該決定に応じているかまたは該決定に基づいている、項目35に記載の方法。
(項目38)
前記カレントブロックの近隣にある2つまたはそれより多いブロックがインター予測のために使用不可参照動きベクトルを用いることを決定することをさらに備え、前記マークすることは、該決定に応じているかまたは該決定に基づいている、項目35に記載の方法。
(項目39)
前記カレントブロックのフレームがデコードされた後にブロック更新候補を決定することをさらに備える、項目35に記載の方法。
(項目40)
前記カレントブロックがイントラ符号化されることと、
複数の近隣ブロックがインター予測のための参照として前記使用不可参照フレームを用いることと、
該複数の近隣ブロックがゼロ動きベクトルを含むことと
を決定することをさらに備え、
前記マークすることは、該決定に応じているかまたは該決定に基づいている、
項目20に記載の方法。
(項目41)
前記カレントブロックがイントラ符号化されることと、
複数の近隣ブロックがインター予測のための参照として前記使用不可参照フレームを用いることと、
該複数の近隣ブロックがそれぞれの動きベクトルを含み、それぞれの動きベクトルが同じであるかまたはあらかじめ決定された量より低い程度だけ異なることと
を決定することをさらに備え、
前記マークすることは、該決定に応じているかまたは該決定に基づいている、
項目20に記載の方法。
(項目42)
前記カレントブロックの少なくとも3つの側にある近隣ブロックがインター予測のための参照として前記使用不可参照フレームを用いることを決定することをさらに備え、
前記マークすることは、該決定に応じているかまたは該決定に基づいており、
該カレントブロックは、符号化ユニットであり、該符号化ユニットの全ブロックが、更新するためにマークされる、
項目35に記載の方法。
(項目43)
前記カレントブロックの少なくとも3つの側にある近隣ブロックがインター予測のための参照として前記使用不可参照フレームを用いることを決定することをさらに備え、
前記マークすることは該決定に応じて、または該決定に基づいており、
該カレントブロックは符号化ツリーユニットであり、該符号化ツリーユニットの、インター予測のための参照として該使用不可参照フレームを用いない全ブロックが、更新のためにマークされる、
項目35に記載の方法。
(項目44)
前記デコーダが、
前記ビットストリームを受信し該ビットストリームを量子化された係数へとデコードするように構成されているエントロピーデコーダプロセッサと、
逆離散コサインを実施することを含め該量子化された係数を処理するように構成されている逆量子化および逆変換プロセッサと、
デブロッキングフィルタと、
フレームバッファと、
イントラ予測プロセッサと
をさらに備える、項目35に記載の方法。
【図面の簡単な説明】
【0013】
(図面の説明)
本発明を図説する目的のために、図面は、本発明の1つまたは複数の実施形態の側面を示す。しかしながら、本発明が、図面において示された精密な配置および機器に限定されないことは、理解されるべきである。
【0014】
【
図1】
図1は、URフレーム更新の例となるプロセスを図示したプロセスフロー図であり、ここで、URフレームが、デコードされたカレントブロックに基づいてデコーダにより部分更新される。
【0015】
【
図2】
図2は、暗黙的信号伝達を用いたURフレームブロック更新の例となるプロセスを図示したプロセスフロー図であり、ここで、URフレームが、デコードされたカレントブロックに基づいてデコーダにより部分更新される。
【0016】
【
図3】
図3は、カレントブロックXと、動き補償のためにURフレームを用いる関連付けられた動きベクトルを有する3つの近隣ブロックとを含む例となるフレームを図示したブロック図である。
【0017】
【
図4】
図4は、参照のためにURフレームを用いないブロックと、参照のためにURフレームを用いるブロックとを含む別の例となるフレームを図示したブロック図である。
【0018】
【
図5】
図5は、URフレームブロック更新を用いてビットストリームをデコードすることが可能な例となるデコーダを図示したシステムブロック図である。
【0019】
【
図6】
図6は、本主題のいくつかの側面に従った、URフレームブロック更新を用いて動画をエンコードする例となるプロセスを図示したプロセスフロー図である。
【0020】
【
図7】
図7は、圧縮効率を向上させつつエンコーディング複雑性を減らし得る本主題のいくつかの側面に従った、URフレームブロック更新を用いて動画をエンコードする例となるプロセスを図示したプロセスフロー図である。
【0021】
【
図8】
図8は、デコーダ側のURフレームブロック更新のための信号伝達が可能な例となるビデオエンコーダを図示したシステムブロック図である。
【0022】
【
図9】
図9は、本明細書ならびにその任意の一部分もしくは複数の部分で開示される方法論のうちの任意の1つまたは複数を実装するために用いられ得るコンピューティングシステムのブロック図である。
【0023】
図面は、必ずしも縮尺通りでなく、かつ、二点鎖線、図表示および部分図により図示され得る。ある特定の例では、実施形態の理解に必須でない詳細、または他の詳細を認識困難にする詳細が省略され得る。様々な図面における同類の参照記号は、同類の要素を指し示す。
【発明を実施するための形態】
【0024】
(詳細な説明)
本主題のいくつかの実装形態は、デコーダ側にある使用不可参照(UR)フレームに対して部分更新を実施するためのアプローチを含む。使用不可参照(UR)フレームは、1つまたは複数のピクチャのグループ(GOP)内で予測フレームおよび/または予測ピクチャを生み出すことに用いられるフレームおよび/またはピクチャであるが、それ自身は動画ピクチャに表示されないフレームおよび/またはピクチャである。動画ビットストリーム内の、URフレームとしてマークされたフレームは、ビットストリーム信号伝達により明示的に取り除かれるまで参照として使用可能であり得る。URフレームは、長い期間にわたって静的背景を有するシーン(例えば、ビデオカンファレンスまたは駐車場の監視ビデオの背景)において予測および圧縮効率を改善し得る。しかしながら、時間と共に、シーンの背景は徐々に変化する(例えば、空いている場所に駐めたときの車は、背景シーンの一部となる)。部分URフレーム更新は、使用不可参照ブロック更新モード(与えられたカレントブロックに対して有効にされているとき、デコードされたカレントブロックがURフレーム内部の空間的に同位置にあるピクセルを更新することに用いられることを指し示し得る)を利用することによりビットストリーム内で明示的に信号伝達され得る。このような部分URフレーム更新は、URフレーム全体の更新を必要とすることなく予測を改善し得、改善された予測は、残余誤差を減らし得、ゆえに圧縮性能を改善し得る。そのうえ、URブロック更新を明示的に信号伝達することにより、UR更新は、不適当かつ複雑な手順を利用することなく平易に達成され得る。
【0025】
代わりに、または加えて、部分URフレーム更新は、ビットストリーム内の明示的信号伝達がいくつかの代替アプローチに比べて必要とされないように、またはその必要が減らされるように暗黙的に信号伝達され得る。暗黙的信号アプローチは、デコードされたカレントブロックがURフレーム内部の空間的に同位置にあるピクセルを更新することに用いられることを指し示し得る。このような部分URフレーム更新は、URフレーム全体の更新を必要とすることなく予測を改善し得、改善された予測は、残余誤差を減らし得、ゆえに圧縮性能を改善し得る。そのうえ、URブロック更新を暗黙的に信号伝達することにより、ヘッダオーバーヘッドが減らされ得、それにより、ビットレートが減らされ得、圧縮が改善され得る。さらに、いくつかの実装形態では、UR更新は、不適当かつ複雑な手順を利用することなく平易に達成され得る。
【0026】
いくつかの実装形態では、動画ブロックの暗黙的信号伝達は、URフレーム内のどのブロックが更新されるか(例えば、URフレームのどの部分が更新されるべきか)を暗黙的に決定するためにカレントブロックコンテキストおよび近隣ブロックコンテキストが用いられる場合を識別する。ここで
図1を参照すると、明示的信号伝達を用いたURフレームブロック更新の例となるプロセス100を図示したプロセスフロー図が提供されており、ここで、URフレームが、デコードされたカレントブロックに基づいてデコーダにより部分更新される。このようなURブロック更新は、URフレーム全体の更新を必要とすることなく予測を改善し得、改善された予測は、残余誤差を減らし得、ゆえに圧縮性能を改善し得る。
【0027】
依然として
図1を参照すると、ステップ105では、カレント符号化ブロックを含むビットストリームが、デコーダにより受信される。ビットストリームは、例えば、ビットの流れ内に見つかるデータを含み得、ビットの流れは、データ圧縮を用いたときのデコーダへの入力である。ビットストリームは、動画をデコードするために必須となる情報を含み得る。受信することは、ビットストリームからのブロックおよび関連付けられた信号伝達情報を抽出することおよび/またはこれをパースすることを含み得る。いくつかの実装形態では、カレント符号化ブロックは、符号化ツリーユニット(CTU)、符号化ユニット(CU)または予測ユニット(PU)を含み得る。
【0028】
継続して
図1を参照すると、ステップ110では、デコードされたカレントブロックが、決定され得る。例えば、受信されたカレント符号化ブロックが、例えばインター予測を用いてデコードされ得る。インター予測を介したデコーディングは、予測を計算するための参照として以前のフレーム、未来のフレームまたはURフレームを用いることを含み得、予測は、ビットストリームに含有される残差と組合され得る。
【0029】
引続き
図1を参照すると、ステップ115では、使用不可参照ブロック更新モードが、カレント符号化ブロックに対するビットストリームにおいて有効にされるかどうかが、決定され得る。URブロック更新モードは、ビットストリームのヘッダおよび/またはそれに含まれるフィールドに含まれ得る。例えば、ビットストリームのヘッダ内にあるURブロック更新モードフィールドが有効にされることが、決定され得る。更新されたURフレームブロックの信号伝達は、ピクチャパラメータセット(PPS)および/またはシーケンスパラメータセット(SPS)といったヘッダを用いて選択的に有効にされ得る。UR_BLOCK_UPDATE等のフィールドは、真の値または偽の値(例えば0または1)を受け入れ得、ただしこれらに限定されない。
【0030】
依然として
図1を参照すると、URブロック更新モードが有効にされる場合には(例えば、ヘッダ内のUR_BLOCK_UPDATEフィールドが設定される場合には)、120では、デコーダが、デコードされたカレントブロックを用いて使用不可参照フレームを更新し得る。このように更新することは、URブロック更新を実施することを含み得、URブロック更新では、URフレーム内のピクセル(URフレームブロック更新モードが有効にされているカレントブロックと空間的に同位置に位置している)が、デコードされたカレントブロックを用いて更新される(例えば、修正される)。いくつかの実装形態では、ブロック更新機構は、明示的または暗黙的であり得る。例えば、URフレームの一部(例えば、URフレームのブロック)は、デコードされたカレントブロックのピクセル値を用いてURフレーム内の同位置にあるピクセル(例えばルマ値)を更新することにより更新され得、言換えれば、URフレームを更新することは、URフレームのルマ値を、デコードされたカレントブロックの空間的に同位置にあるルマ値に置換えることを含み得る。いくつかの実装形態では、URフレームは、別の機構(URフレームの一部を、デコードされたカレントブロックピクセル値と、同位置にあるURフレームピクセル値の初期値との平均を用いて更新すること等)に従って更新され得る。当業者は、本開示全体を参照すると、採用され得る様々な他の機構に気付くであろう。いくつかの実装形態では、更新することは、複数のデコードされたブロックを用いてURフレームの複数のブロックを更新することを含み得、その更新は、デコードされたカレントブロックを用いてURフレームを更新するための上述の任意の方法を用いて実施され得る。更新することは、規定のクロマ値および/またはルマ値のブロックおよび/またはフレームの生成、ならびに、上述の任意のプロセスおよび/またはプロセスステップを用いた1つまたは複数のデコードされたブロックからのその置換および/または更新を含み得、ただしこれらに限定されず、更新することは、URフレームを生成すること(規定値のURフレームを生み出すことにより成し遂げられ得る)および上述の規定値を更新することを含み得る。
【0031】
引続き
図1を参照すると、後続のカレントブロックに対して、更新されたURフレームが、インター予測のための参照フレームとして利用され得る。例えば、第二の符号化ブロックが、受信され得る。インター予測モードが第二の符号化ブロックに対して有効にされるかどうかが、決定され得る。第二のデコードされたブロックは、インター予測モードに従って、更新されたURフレームを参照フレームとして用いて決定され得る。例えば、インター予測を介したデコーディングは、予測を計算するための参照として更新されたURフレームを用いることを含み得、予測は、ビットストリームに含有される残差と組合され得る。
【0032】
依然として
図1を参照すると、URブロック更新は、デコーディングプロセスの間中、各カレントブロックに対して使用可能であり得る。いくつかの実装形態では、URブロック更新は、イントラ符号化フレームに対して暗黙的にスキップされ得る。例えば、ビットストリームは、第一のカレント符号化ブロックと異なるフレーム内部にある第二のカレント符号化ブロックを含み得、第二のカレント符号化ブロックのモードは、イントラ予測を含み得る。URブロック更新は、第二のカレント符号化ブロックがイントラ予測ブロックであると決定することに応じてスキップされ得る。スキップすることは、例えば、URフレームを更新しないことを含み得、またはUR_BLOCK_UPDATE等のフィールドがヘッダ内で設定されるかどうかを決定することを含み得る。
【0033】
さらに
図1を参照すると、いくつかの実装形態では、ヘッダ内のUR_BLOCK_UPDATEフィールドが設定される場合には、デコーダが、明示的ブロック更新を信号伝達するビットストリーム内のビットを予期し得る。このアプローチでは、動画の符号化ブロックが、URフレーム内で更新されることとなるブロックとして動画ビットストリームのブロックヘッダ内で信号伝達され得る。その場合、URフレーム内の同位置にあるブロックが、伝達されたブロックにより置換えられ得、この更新されたURフレームは、例えば、URフレームが後に更新されるまで未来の動き推定の目的のために用いられ得る。
【0034】
図2は、暗黙的信号伝達を用いたURフレームブロック更新のプロセス200の例となる実施形態を図示したプロセスフロー図であり、暗黙的信号伝達では、URフレームが、デコードされたカレントブロックに基づいてデコーダにより部分更新される。暗黙的信号伝達は、ビットストリーム内(ビットストリームのヘッダ内等)のURブロック更新モードを明示的に信号伝達することに比べて、URフレームのどのブロックが更新されるべきかを決定するためにカレントブロックコンテキストおよび近隣ブロックコンテキストが用いられる場合を含み得る。暗黙的信号伝達を伴うこのようなURブロック更新は、予測を改善し得、信号伝達オーバーヘッドを減らし得、それにより、ビットレートが改善され得、圧縮が改善され得る。同様に、URフレーム全体の更新を必要としないURブロック更新を実施することにより、いくつかの実装形態は、残余誤差を減らし得、ゆえに圧縮性能を改善し得る。
【0035】
依然として
図2を参照すると、ステップ205では、カレントブロックが、デコーダにより受信される。カレントブロックは、デコーダが受信するビットストリームに含有され得る。ビットストリームは、例えば、ビットの流れ(データ圧縮を用いたときのデコーダへの入力)内に見つかるデータを含み得る。ビットストリームは、動画をデコードするために必須となる情報を含み得る。受信することは、ビットストリームからのブロックおよび関連付けられた信号伝達情報を抽出することおよび/またはパースすることを含み得る。いくつかの実装形態では、カレントブロックは、符号化ツリーユニット(CTU)、符号化ユニット(CU)および/または予測ユニット(PU)を含み得る。
【0036】
引続き
図2を参照すると、いくつかの実装形態では、依然として
図2を参照すると、使用不可参照ブロック更新モードは、カレントブロックに対するビットストリーム内で明示的に信号伝達されないことがある。同様に、いくつかの実装形態では、デコーダが、使用不可参照ブロック更新モードがカレントブロックに対するビットストリーム内で明示的に信号伝達されるか否かを、ビットストリームを用いて決定し得る。いくつかの実装形態では、デコーダが、使用不可参照ブロック更新モードが無効にされているか、または存在しないことをビットストリームのヘッダ内にあるフィールドが指し示すことを決定し得る。
【0037】
引続き
図2を参照すると、ステップ220では、カレントブロックが、URフレームをカレントブロックに基づいて更新するためにマークされ得、カレントブロックは、カレントブロックがURフレームブロック更新用に暗黙的に信号伝達されると決定されることに基づいて、またはこれに応じてマークされ得る。マークすることは、カレントブロックがURフレームを更新するために用いられることとなることを指し示す値に変数値を設定することを含み得、ただしこれに限定されず、例として、カレントブロックがURフレームを更新するために用いられることとなるかどうかを指し示すように構成されている、カレントブロックに関連付けられたブール変数は、マークすることを指し示すために「真」または「1」に設定され得る。
【0038】
依然として
図2を参照すると、例えば、カレントブロックがインター予測のための参照としてURフレームを用い、照明補償を適用することを含むときに、カレントブロックは、更新するためにマークされ得、マークすることは、この決定に応じて、かつ/またはこの決定に基づいて実施され得る。照明補償は、動画符号化における予測を改善するために用いられ得る。照明補償は、照明が原因となってブロックピクセルが変化する(例えば、通り過ぎる雲は、照明を減らす)場合における予測を改善し得る。参照としてURフレームを用い、照明補償を適用するブロックは、更新ブロックとして決定され得、従って、URフレームを更新するためにマークされ得る。
【0039】
引続き
図2を参照すると、別の例として、カレントブロックは、ブロック近隣がUR動きベクトル参照を利用するときに、かつこのことに基づいて、URフレームを更新するためにマークされ得る。代表的な(例えば、典型的な)動画では、シーン背景の一部が、時間と共に更新される。このような変化が起こったとき、変化した区域は、似たブロックが見つからないときのイントラブロックとして符号化され得る。このような場合、新たに変化した領域を除く全ブロックが参照のためにURフレームを用いることが、見込まれる。UR動きベクトル参照を伴う複数の近隣ブロックを有するブロックは、暗黙的URフレーム更新のためにマークされ得る。従って、カレントブロックがUR更新ブロックである見込みは、URフレームを用いる、カレントブロック近隣にあるブロックが増加するにつれて、より高くなり、見込みは、計算され得、閾値数と比べられ得、ここで、閾値数を超えているという見込みは、カレントブロックがUR更新ブロックであることを指し示し得る。カレントブロックがイントラ符号化される場合には、UR参照を伴うより少数の近隣ブロックが、URブロック更新を信号伝達し得、例として、より低い閾値数が、上のような閾値比較において採用され得る。カレントブロックがインター符号化される場合には、UR参照を伴うより多数の近隣ブロックが、例えばより高い閾値数を用いることにより、URブロック更新を暗黙的に信号伝達し得る。従って、別の非限定的な例として、カレントブロックは、カレントブロックに近隣する2つまたはそれより多いブロックがインター予測のためにUR動きベクトルを用いると決定することに応じて、またはこのことに基づいて、URフレームを更新するためにマークされ得る。
【0040】
依然として
図2を参照すると、いくつかの実装形態では、ブロック更新候補は、ブロック近隣全体が考慮され得るように、フレーム全体がデコードされた後に決定され得る。例えば、二方またはそれより多い側をUR参照を伴うブロックに囲まれた、非UR参照を伴うブロックが、UR更新の候補であり得る。別の例として、カレントブロックがイントラ符号化され、複数の近隣ブロックが参照としてURフレームを用い、(0,0)の動きベクトル(例えばゼロ動きベクトル)を有する場合には、カレントブロックは、UR更新のためにマークされ得る。さらに別の例として、カレントブロックがイントラ符号化され、複数の近隣ブロックが参照としてURフレームを用い、同じまたは似た動きベクトルを有する(例えば、動きベクトルが、あらかじめ決定された、またはあらかじめ定義された量より低い程度だけ異なることがある)場合には、カレントブロックは、UR更新のためにマークされ得る。さらなる例として、カレントブロックがインター予測のための参照としてURフレームを用いる近隣ブロックをカレントブロックの少なくとも3つの側に有する場合には、カレントブロックは、UR更新のためにマークされ得る。
【0041】
引続き
図2を参照すると、いくつかの実装形態では、UR更新は、符号化ユニット(CU)レベルでも決定され得る。少なくとも3つの側にある近隣CUが全てUR参照を用いる場合には、カレントCUの全ブロックが、UR更新のためにマークされ得る。いくつかの実装形態では、UR更新は、符号化ツリーユニット(CTU)レベルで決定され得る。少なくとも3つの側にある近隣CTUが全てUR更新を用いる場合には、カレントCTUの、UR参照を用いない全ブロックが、更新のためにマークされ得る。
図3は、カレントブロックXと、動き推定のためにURフレームを用いる関連付けられた動きベクトルMV1、MV2、MV3を有する3つの近隣ブロックとを含むフレーム300の例となる実施形態を図示したブロック図である。図示された本例において、カレントブロックXは、URフレームを更新するためにマークされ得る。
【0042】
図4は、参照のためにURフレームを用いない、Xとラベルされたブロックと、参照のためにURフレームを用いるブロックLとを含むフレーム400の別の例となる実施形態を図示したブロック図であり、Xとしてマークされたブロックは、URフレームを更新するためにマークされ得る。
【0043】
再び
図2を参照すると、ステージ215では、URフレームは、カレントブロックを用いて更新され得る。更新することは、URブロック更新を実施することを含み得、URブロック更新では、空間的にカレントブロックと同位置にあるURフレーム内のピクセルが、カレントブロックを用いて更新される(例えば、修正される)。いくつかの実装形態では、ブロック更新機構は、明示的または暗黙的であり得る。例えば、カレントブロックのピクセル値を用いてURフレーム内の同位置にあるピクセル(例えばルマ値)を更新する(例えば、置換える)ことにより、URフレームの一部(例えば、URフレームのブロック)が、更新され得る。いくつかの実装形態では、URフレームは、別の機構(同位置にあるURフレームピクセル値の初期値とカレントブロックピクセル値との平均を用いてURフレームの一部を更新すること等)に従って更新され得る。当業者は、本開示全体を参照すると、採用され得る様々な他の機構に気付くであろう。いくつかの実装形態では、更新することは、複数のデコードされたブロックを用いてURフレームの複数のブロックを更新することを含み得、その更新は、デコードされたカレントブロックを用いてURフレームを更新するための上述の任意の方法を用いて実施され得る。更新することは、規定のクロマ値および/またはルマ値のブロックおよび/またはフレームの生成、ならびに、上述の任意のプロセスおよび/またはプロセスステップを用いた1つまたは複数のデコードされたブロックからのその置換および/または更新を含み得、ただしこれらに限定されず、更新することは、URフレームを生成すること(規定値のURフレームを生み出すことにより成し遂げられ得る)および上述の規定値を更新することを含み得る。
【0044】
後続のカレントブロックに対して、更新されたURフレームが、インター予測のための参照フレームとして利用され得る。例えば、第二の符号化ブロックが、受信され得る。インター予測モードが第二の符号化ブロックに対して有効にされるかどうかが、決定され得る。第二のデコードされたブロックは、インター予測モードに従って、更新されたURフレームを参照フレームとして用いて決定され得る。例えば、インター予測を介してデコードすることは、予測を計算するために更新されたURフレームを参照として用いることを含み得、予測は、ビットストリームに含有される残差と組合され得る。
【0045】
図5は、URフレームブロック更新を用いてビットストリーム504をデコードすることが可能な例となるデコーダ500を図示したシステムブロック図である。URフレームブロック更新は、明示的に信号伝達されるURフレームブロック更新を含み得、例としては、
図1を参照して上述したような更新であり、ただしこれに限定されない。URフレームブロック更新は、暗黙的に信号伝達されるURフレームブロック更新(例えば、カレントブロックおよび/または近隣ブロックのコンテキストから決定されるURフレームブロック更新)を含み得、例としては、
図2~
図4を参照して上述したような更新であり、ただしこれに限定されない。デコーダ500は、エントロピーデコーダプロセッサ508と、逆量子化および逆変換プロセッサ512と、デブロッキングフィルタ516と、フレームバッファ520と、動き補償プロセッサ524と、イントラ予測プロセッサ528とを含む。いくつかの実装形態では、ビットストリーム504は、URフレームブロック更新モードを信号伝達するパラメータ(例えば、ビットストリームのヘッダ内のフィールド)を含み得る。代わりに、または加えて、ビットストリーム504は、カレントブロックに対するURフレームブロック更新モードを明示的に信号伝達しないことがあり、ビットストリームが他のパラメータを含有し得る。動き補償プログラム524は、URフレームを用いてピクセル情報を再構築し得、URフレームブロック更新モードに従ってURフレームを更新し得る。例えば、URフレームブロック更新モードがカレントブロックに対して明示的に信号伝達されるとき、URフレーム内の同位置にあるピクセル(例えばルマ値)は、カレントブロックのピクセル値に置換えられ得る。ブロック更新が暗黙的に信号伝達されるところでは、動き補償プロセッサ524は、(例えば、URフレーム更新が暗黙的に信号伝達されるかどうかに基づいて、)URフレームを更新するためにカレントブロックをマークし得、従って、URフレームを更新し得る。例えば、URフレームブロック更新がカレントブロックに対して暗黙的に信号伝達されるとき、URフレーム内の同位置にあるピクセル(例えばルマ値)は、カレントブロックのピクセル値に置換えられ得る。
【0046】
動作中、ビットストリーム504は、デコーダ500により受信され得、エントロピーデコーダプロセッサ508へと入力され得、エントロピーデコーダプロセッサ508は、ビットストリームを量子化された係数へとエントロピーデコードし得る。量子化された係数は、逆量子化および逆変換プロセッサ512へと提供され得、逆量子化および逆変換プロセッサ512は、残差信号を生み出すために逆量子化および逆変換を実施し得、残差信号は、処理モードに従って動き補償プロセッサ524またはイントラ予測プロセッサ528の出力へと加えられ得る。動き補償プロセッサ524およびイントラ予測プロセッサ528の出力は、以前にデコードされたブロックまたはURフレームに基づくブロック予測を含み得る。予測と残差との合計は、デブロッキングフィルタ516により処理され得、フレームバッファ520内に記憶され得る。与えられたブロック(例えばCUまたはPU)に対して、URフレームブロック更新モードが有効にされることをビットストリーム504が明示的に、かつ/または暗黙的に信号伝達するとき、動き補償プロセッサ524は、カレントブロックのピクセル値を用いてURフレーム内の同位置にあるピクセル(例えばルマ値)を更新するために、フレームバッファ520に含まれ得るURフレームを更新し得る。
【0047】
いくつかの実装形態では、デコーダ500は、URフレームブロック更新プロセッサ532を含み得、URフレームブロック更新プロセッサ532は、カレントブロックに基づいてURフレーム更新を生成し得、インター予測プロセスのためのURフレームピクセル値を提供し得、これは、本開示に記載される任意のプロセスステップに従って実装され得る。URフレームブロック更新プロセッサ532は、動き補償に直接影響し得る。さらに、URフレームブロック更新プロセッサ532は、カレントブロックがイントラ予測ブロックであるとき等にイントラ予測プロセッサ528から情報を受信し得る。
【0048】
図6は、圧縮効率を向上させつつエンコーディング複雑性を減らし得る本主題のいくつかの側面に従った、明示的信号伝達を伴うURフレームブロック更新を用いて動画をエンコードするプロセス600の例となる実施形態を図示したプロセスフロー図である。ステップ605では、動画フレームが、初期のブロック区分化(例えば、ピクチャフレームをCTUおよびCUへと分割することを含み得るツリー構造化マクロブロック分割スキームを用いた初期のブロック区分化)を受け得る。ステップ610では、ブロックが、URフレームの一部を更新するために選択され得る。ブロックは、例えば、時間的に近位の1つまたは複数の同位置にあるブロック(例えば、カレントフレームのあらかじめ決定されたフレーム数の範囲内である等の時間的に近接するブロック)と比べて、ブロック内部の周波数成分および/または動きの度合に基づいて選択され得る。周波数成分の度合の決定は、離散コサイン変換行列といった変換行列を用いた決定を含み得、ただし変換行列は離散コサイン変換行列に限定されない。ブロックに対する周波数成分の度合を決定することは、一般化離散コサイン変換行列を用いた決定を含み得る。例えば、上述のようなブロックがピクセルの4×4ブロックであるところでは、一般化離散コサイン変換行列は、
【数1】
の形をとる一般化離散コサイン変換II行列を含み得、ここでaは1/2であり、bは
【数2】
であり、cは
【数3】
である。
【0049】
いくつかの実装形態では、効率的なハードウェア実装およびソフトウェア実装に用いられ得る、変換行列の整数近似が、利用され得る。例えば、上述のようなブロックがピクセルの4×4ブロックであるところでは、一般化離散コサイン変換行列は、
【数4】
の形をとる一般化離散コサイン変換II行列を含み得る。
【0050】
ブロックBiに対して、ブロックの周波数成分は、FBi=T×Bi×T’を用いて算出され得、ここで、T’は、コサイン伝達行列Tの転置であり、Biは、上述のように4×4ブロックを表現している4×4行列といった、ブロック内のピクセルに対応する数値の行列として表現されているブロックであり、演算×は、行列積を表す。選択は、デコーダでURフレームの一部を更新するためにブロックが用いられることとなることをメトリックルールに従って識別することを含み得る。メトリックルールは、テクスチャおよび/または動きの度合(周波数成分または上述の類するもののいずれの度合をも含み、ただしこれらに限定されない)と、あらかじめ決定され、かつ/または記憶された閾値との比較を含み得る。上で定義されたようなFBiが何らかの値を超える非限定的な例として、例えば、とても高い周波数は認識可能でないことがあるので、更新が発動され得る。選択は、代わりに、または加えて、
図7を参照して下記説明される任意のプロセスおよび/またはプロセスステップを用いて実施され得る。ステップ615では、ブロックがエンコードされ得、ビットストリームに含められ得る。
【0051】
ステップ620では、明示的URフレームブロック更新パラメータが、決定され得、URフレームブロック更新モードがカレントブロックに対して有効にされることを信号伝達するためにビットストリームに含められ得る。例えば、PPSまたはSPS内のフィールドが、設定され得る(例えば、有効にされ得る)。例えば、UR_BLOCK_UPDATEフィールド等のフィールドが、URフレームブロック更新モードが有効にされていることをカレントブロックに対して指し示すように設定され得る。
【0052】
図7は、圧縮効率を向上させつつエンコーディング複雑性を減らし得る本主題のいくつかの側面に従った、暗黙的信号伝達を伴うURフレームブロック更新を用いて動画をエンコードするプロセス700の例となる実施形態を図示したプロセスフロー図である。ステップ705では、動画フレームが、初期のブロック区分化(例えば、ピクチャフレームをCTUおよびCUへと分割することを含み得るツリー構造化マクロブロック分割スキームを用いた初期の区分化)を受け得る。
【0053】
依然として
図7を参照すると、ステップ710では、ブロックが、URフレームの一部を更新するために選択され得、ブロックは、例えば暗黙的URフレーム更新条件に基づいて選択され得る。選択は、デコーダでURフレームの一部を更新するためにブロックが用いられることとなる条件に従って識別することを含み得る。これらの条件は、例えば、カレントブロックがインター予測のための参照としてURフレームを用い、照明補償を適用することを含むときを含む。別の例として、カレントブロックがインター符号化され、カレントブロック近隣にある2つまたはそれより多いブロックがインター予測のためにUR動きベクトルを用いる場合には、条件は、ブロックがUR動きベクトル参照を伴う複数の近隣ブロックを有するとき等にどのブロック近隣がUR動きベクトル参照を利用するかに関連し得る。別の例として、非UR参照を伴うブロックが二方またはそれより多い側にUR参照を伴うブロックに囲まれている場合には、このことは、URフレームの一部を更新するためにブロックが用いられることとなることを指し示し得る。別の例として、カレントブロックがイントラ符号化され、複数の近隣ブロックが参照としてURフレームを用い、(0,0)の動きベクトル(例えばゼロ動きベクトル)を有する場合には、カレントブロックは、URフレームの一部を更新するために用いられることとなるブロックとして識別され得る。さらに別の例として、カレントブロックがイントラ符号化され、複数の近隣ブロックが参照としてURフレームを用い、同じまたは似た動きベクトルを有する(例えば、動きベクトルが、あらかじめ決定された、またはあらかじめ定義された量より低い程度だけ異なることがある)場合には、カレントブロックは、URフレームを更新する際に用いられることとなるブロックとして識別され得る。
【0054】
さらに
図7を参照すると、別の例として、いくつかの実装形態では、ブロックは、符号化ユニット(CU)を含み得、決定のための条件は、少なくとも3つの側にある近隣CUが全てUR参照を用いる場合にはカレントCUの全ブロックが選択され得ることを指定する条件を含み得る。別の例として、いくつかの実装形態では、ブロックは、符号化ツリーユニット(CTU)レベルを含み得、条件は、少なくとも3つの側にある近隣CTUが全てUR参照を用いる場合にはカレントCTUの、UR参照を用いない全てのブロックがURフレームを更新するために用いられるブロックとして選択されることを含み得る。
【0055】
730では、選択されたブロックが、エンコードされ得、ビットストリームに含められ得る。エンコーディングは、例えば、インター予測モードおよびイントラ予測モードを利用することを含み得る。いくつかの実装形態では、明示的URフレームブロック更新パラメータは、カレントブロックに対するビットストリームに含まれないことがある。
【0056】
図8は、デコーダ側のURブロック更新のための明示的信号伝達および/または暗黙的信号伝達が可能なビデオエンコーダ800の例となる実施形態を図示したシステムブロック図である。例となるビデオエンコーダ800は、入力動画804を受信し、入力動画804は、ツリー構造化マクロブロック分割スキーム(例えばクアッドツリープラスバイナリツリー)といった処理スキームに従って初期に区分化され得るか、または初期に分かれ得る。ツリー構造化マクロブロック分割スキームの例は、ピクチャフレームを符号化ツリーユニット(CTU)と呼ばれる大きなブロック要素へと分割することを含み得る。いくつかの実装形態では、各CTUは、符号化ユニット(CU)と呼ばれる複数のサブブロックへと一回または複数回さらに分割され得、この部分化の結果は、予測ユニット(PU)と呼ばれ得るサブブロックのグループを含み得る。変換ユニット(TU)も、利用され得る。本開示において用いられる「変換ユニット」は、周波数変換が適用される基本ユニットであり、周波数変換操作に適した、CUのサブブロックを含み得、ただしこれに限定されない。非限定的な例として、TUは、ルマサンプルの変換ブロックと、変換ブロックサンプルの変換のために用いられる、ピクチャおよびシンタックス構造のクロマサンプルの2つの対応する変換ブロックとを含み得、ここで、「変換ブロック」は、デコーディングプロセスにおける変換から結果として生じるサンプルの長方形M×Nブロックとして定義される。
【0057】
依然として
図8を参照すると、例となるビデオエンコーダ800は、イントラ予測プロセッサ815と、デコーダでの明示的かつ/または暗黙的URフレームブロック更新をサポートすることが可能な動き推定/補償プロセッサ812(インター予測プロセッサとも称される)と、変換/量子化プロセッサ816と、逆量子化/逆変換プロセッサ820と、インループフィルタ824と、復号化ピクチャバッファ828と、エントロピー符号化プロセッサ832とを含む。いくつかの実装形態では、動き推定/補償プロセッサ812は、例えば
図6および/または
図7に関して上述した条件のうちの1つまたは複数に従って、URフレームがデコーダで更新されるべきであることをカレントブロックに対して決定し得、動き推定/補償プロセッサ812は、URフレームブロック更新モードが有効にされていることを明示的に信号伝達するためのパラメータを設定し得る。URフレームブロック更新モードを信号伝達するビットストリームパラメータは、出力ビットストリーム836における算入のためにエントロピー符号化プロセッサ832へと入力され得る。代わりに、または加えて、動き推定/補償プロセッサ812は、カレントブロックを用いてエンコーダURフレームを更新し得、明示的URフレームブロック更新信号伝達は、ビットストリームに何ら含まれないことがある。ビットストリームパラメータは、出力ビットストリーム836における算入のためにエントロピー符号化プロセッサ832へと入力され得る。エンコーダ側のURフレームの一部は、インター予測のための参照としてURフレームを利用し得る追加のブロックをエンコードするための動き推定/補償プロセッサ812による使用のために更新され得る。
【0058】
引続き
図8を参照すると、動作中、入力動画804のフレームの各ブロックに対して、イントラピクチャ予測を介してブロックを処理するか動き推定/補償を用いてブロックを処理するかが、決定され得る。ブロックは、イントラ予測プロセッサ808または動き推定/補償プロセッサ812へと提供され得る。ブロックがイントラ予測を介して処理されることとなる場合には、イントラ予測プロセッサ808が、予測子を出力するための処理を実施し得る。ブロックが動き推定/補償を介して処理されることとなる場合には、動き推定/補償プロセッサ812が、(該当する場合には、)インター予測のための参照としてエンコーダ側のURフレームを用いることを含む処理を実施し得る。
【0059】
依然として
図8を参照すると、残差が、入力動画から予測子を差引くことにより形成され得る。残差は、変換/量子化プロセッサ816により受信され得、変換/量子化プロセッサ816は、係数を生じさせるための変換処理(例えば離散コサイン変換(DCT))を実施し得、係数は、量子化され得る。量子化された係数および任意の関連付けられた信号伝達情報は、エントロピーエンコーディングと出力ビットストリーム836における算入とのためにエントロピー符号化プロセッサ832へと提供され得る。エントロピーエンコーディングプロセッサ832は、URフレームブロック更新モードに関連した信号伝達情報のエンコーディングをサポートし得る。加えて、量子化された係数は、逆量子化/逆変換プロセッサ820へと提供され得、逆量子化/逆変換プロセッサ820は、ピクセルを再現し得、ピクセルは、予測子と組合され得、インループフィルタ824により処理され得、インループフィルタ824の出力は、デコーダでURフレームブロック更新をサポートすることが可能な動き推定/補償プロセッサ812による使用のために復号化ピクチャバッファ828内に記憶され得る。
【0060】
いくつかのバリエーションが上で詳細に説明されているが、他の変更または追加が、可能である。例えば、いくつかの実装形態では、カレントブロックは、任意の非対称ブロック(8×4、16×8およびこれらに類するもの)だけでなく任意の対称ブロック(8×8、16×16、32×32、64×64、128×128およびこれらに類するもの)をも含み得る。
【0061】
いくつかの実装形態では、クアッドツリープラスバイナリディシジョンツリー(QTBT)が、実装され得る。QTBTでは、符号化ツリーユニットレベルで、QTBTの分割パラメータが、いずれのオーバーヘッドも送信することなくローカルな特性に適応するために動的に導出され得る。その後、符号化ユニットレベルで、ジョイント分類器ディシジョンツリー構造が、不要な反復を排除し得、誤った予測のリスクを制御し得る。いくつかの実装形態では、URフレームブロック更新モードは、QTBTのリーフノード毎で使用可能な追加のオプションとして使用可能であり得る。デコードされたカレントブロックは、上述のように、QTBTに含まれ得、例として、デコードされたカレントブロックは、QTBTの非リーフノードであり得、ただしこれに限定されない。
【0062】
いくつかの実装形態では、追加のシンタックス要素が、ビットストリームの異なる階層レベルで信号伝達され得る。URフレームブロック更新(明示的URフレームブロック更新および/または暗黙的URフレームブロック更新を含み得、ただしこれらに限定されない)は、シーケンスパラメータセット(SPS)内で符号化された有効フラグを含むことによりシーケンス全体に対して有効にされ得る。さらに、符号化ツリーユニット(CTU)フラグは、任意の符号化ユニット(CU)がURフレームブロック更新モードを用いるかどうかを指し示すためにCTUレベルで符号化され得る。CUフラグは、カレント符号化ユニットがURフレームブロック更新モードを利用するかどうかを指し示すために符号化され得る。符号化ツリーユニット(CTU)フラグは、任意の符号化ユニット(CU)が明示的URフレームブロック更新信号伝達を用いるかどうかを指し示すためにCTUレベルで符号化され得る。CTUフラグは、任意の符号化ユニット(CU)が暗黙的URフレームブロック更新信号伝達を用いるかどうかを指し示すためにCTUレベルで符号化され得る。URフレームへの更新に関して上で開示された実施形態が説明されているが、上で開示された実施形態は、代わりに、または加えて、長期参照フレームを含む(ただしこれに限定されない)他のフレーム、ピクチャへと適用され得る。
【0063】
本明細書に記載される主題は、多くの技術的利点を提供する。例えば、本主題のいくつかの実装形態は、URフレームを用いてブロックをデコードすることを提供し得、これは、URフレーム全体を更新する必要なくURフレームの一部を更新することを含み得る。このようなアプローチは、圧縮効率を向上させつつ複雑性を減らし得る。そのうえ、URブロック更新が暗黙的に信号伝達される場合に、ヘッダオーバーヘッドが減らされ得、それにより、ビットレートが減らされ得、圧縮が改善され得る。
【0064】
本明細書に記載される側面および実施形態のうちの1つまたは複数は、コンピュータ技術における当業者にとって自明であるように、本明細書の教示に従ってプログラムされた1つまたは複数の機械(例えば、電子ドキュメントのためのユーザコンピューティングデバイスとして利用される1つまたは複数のコンピューティングデバイス、ドキュメントサーバ等の1つまたは複数のサーバデバイス、等)において実現および/または実装され得るので、デジタル電子回路構成、集積回路構成、特別に設計された特定用途向け集積回路(ASICs)、フィールドプログラマブルゲートアレイ(FPGAs)コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せを用いて便利よく実装され得る。これらの様々な側面または特徴は、データおよび命令を記憶システムと少なくとも1つの入力デバイスと少なくとも1つの出力デバイスとから受信し、かつこれらに送信するように結合された少なくとも1つのプログラマブルプロセッサ(専用または汎用であり得る)を含むプログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムおよび/またはソフトウェアにおける実装を含み得る。ソフトウェア技術における当業者にとって自明であるように、適切なソフトウェアコード化が、本開示の教示に基づいて熟練したプログラマにより容易に用意され得る。上で議論した、ソフトウェアおよび/またはソフトウェアモジュールを採用した側面および実施形態は、ソフトウェアおよび/またはソフトウェアモジュールの機械実行可能な命令の実装をアシストするための適切なハードウェアをも含み得る。
【0065】
このようなソフトウェアは、機械読取り可能な記憶媒体を採用したコンピュータプログラム製品であり得る。機械読取り可能な記憶媒体は、機械(例えばコンピューティングデバイス)による一連の実行命令を記憶可能および/またはエンコード可能であり、本明細書に記載の方法論および/または実施形態のうちのいずれか1つを機械に実施させる任意の媒体であり得る。機械読取り可能な記憶媒体の例は、磁気ディスク、光ディスク(例えばCD、CD-R、DVD、DVD-R等)、光磁気ディスク、読取り専用メモリ「ROM」デバイス、ランダムアクセスメモリ「RAM」デバイス、磁気カード、光カード、ソリッドステートメモリデバイス、EPROM、EEPROM、プログラマブルロジックデバイス(PLDs)および/またはそれらの組合せを含み、しかしこれらに限定されない。機械読取り可能な媒体は、本明細書で用いられる場合、物理的に切り離された媒体の集まり(例えばコンパクトディスクまたはコンピュータメモリと組合せた1つもしくは複数のハードディスクドライブの集まり等)だけでなく単一の媒体をも含むように意図されている。本明細書で用いられる場合、機械読取り可能な記憶媒体は、信号送信の一時的な方式を含まない。
【0066】
このようなソフトウェアは、キャリア波といった、データキャリア上でデータ信号として搬送される情報(例えばデータ)をも含み得る。例えば、機械実行可能な情報は、具現化されたデータ搬送信号としてデータキャリアに含められ得、データキャリアでは、信号が、機械(例えばコンピューティングデバイス)による一連の実行命令またはその一部、ならびに本明細書に記載の方法論および/または実施形態のうちのいずれか1つを機械に実施させる任意の関連した情報(例えばデータ構造およびデータ)をエンコードする。
【0067】
コンピューティングデバイスの例は、電子書籍リーディングデバイスと、コンピュータワークステーションと、ターミナルコンピュータと、サーバコンピュータと、携帯用デバイス(例えばタブレットコンピュータ、スマートフォン等)と、ウェブアプライアンスと、ネットワークルータと、ネットワークスイッチと、ネットワークブリッジと、自身がとる行動を指定する一連の命令を実行可能な任意の機械と、それらの任意の組合せとを含み得、しかしこれらに限定されない。一例では、コンピューティングデバイスは、キオスクを含み得、かつ/またはキオスクに含まれ得る。
【0068】
図9は、コンピュータシステム900の例となる形態におけるコンピューティングデバイスの一実施形態の図表示を示しており、コンピュータシステム900内部では、本開示の側面および/または方法論のうちのいずれか1つまたは複数を制御システムに実施させる一組の命令が、実行され得る。本開示の側面および/または方法論のうちのいずれか1つまたは複数をデバイスの1つまたは複数に実施させる特別に構成されている一組の命令を実装するために複数のコンピューティングデバイスが利用され得ることも、考えられる。
コンピュータシステム900は、バス912を介して互いに、かつ他のコンポーネントと通信するプロセッサ904およびメモリ908を含む。バス912は、多様なバスアーキテクチャのうちのいずれかを用いた様々な種類のバス構造(メモリバス、メモリコントローラ、ペリフェラルバス、ローカルバスおよびそれらの任意の組合せを含み、しかしこれらに限定されない)のいずれかを含み得る。
【0069】
メモリ908は、様々なコンポーネント(例えば機械読取り可能な媒体)を含み得、ここで、様々なコンポーネントは、ランダムアクセスメモリコンポーネント、読取り専用コンポーネントおよびそれらの任意の組合せを含み、しかしこれらに限定されない。一例では、基本入出力システム916(BIOS)は、メモリ908に格納され得、ここで、基本入出力システム916(BIOS)は、起動中等に、コンピュータシステム900内部にある要素間で情報を転送することを助ける基本ルーチンを含む。メモリ908は、本開示の側面および/または方法論のうちのいずれか1つまたは複数を具現化した命令(例えばソフトウェア)920をも含み得る(例えば、1つまたは複数の機械読取り可能な媒体に格納され得る)。別の例では、メモリ908は、任意の数のプログラムモジュール(オペレーティングシステム、1つまたは複数のアプリケーションプログラム、他のプログラムモジュール、プログラムデータおよびそれらの任意の組合せを含み、しかしこれらに限定されない)をさらに含み得る。
【0070】
コンピュータシステム900は、記憶デバイス924をも含み得る。記憶デバイス(例えば記憶デバイス924)の例は、ハードディスクドライブと、磁気ディスクドライブと、光学媒体と組合せた光ディスクドライブと、ソリッドステートメモリデバイスと、それらの任意の組合せとを含み、しかしこれらに限定されない。記憶デバイス924は、適切なインターフェース(示されていない)によりバス912へと接続され得る。例となるインターフェースは、SCSIと、アドバンスドテクノロジーアタッチメント(ATA)と、シリアルATAと、ユニバーサルシリアルバス(USB)と、IEEE1394(FIREWIRE(登録商標))と、それらの任意の組合せとを含み、しかしこれらに限定されない。一例では、記憶デバイス924(またはその1つもしくは複数のコンポーネント)は、(例えば外部ポートコネクタ(示されていない)を介して)コンピュータシステム900に取外し可能に取付けられ得る。とりわけ、記憶デバイス924および関連付けられた機械読取り可能な媒体928は、機械読取り可能な命令、データ構造、プログラムモジュールおよび/またはコンピュータシステム900に対する他のデータの不揮発性および/または揮発性記憶装置を提供し得る。一例では、ソフトウェア920は、完全に、または部分的に機械読取り可能な媒体928内部に常駐し得る。別の例では、ソフトウェア920は、完全に、または部分的にプロセッサ904内部に常駐し得る。
【0071】
コンピュータシステム900は、入力デバイス932をも含み得る。一例では、コンピュータシステム900のユーザは、入力デバイス932を介してコンピュータシステム900にコマンドおよび/または他の情報を入れることがある。入力デバイス932の例は、英数字入力デバイス(例えばキーボード)と、ポインティングデバイスと、ジョイスティックと、ゲームパッドと、オーディオ入力デバイス(例えばマイクロフォン、音声応答システム等)と、カーソル制御デバイス(例えばマウス)と、タッチパッドと、光スキャナと、動画キャプチャデバイス(例えばスチールカメラ、ビデオカメラ)と、タッチスクリーンと、それらの任意の組合せとを含み、しかしこれらに限定されない。入力デバイス932は、多様なインターフェース(示されていない)のいずれかを介してバス912に取付けられ得、ここで、多様なインターフェースは、シリアルインターフェースと、パラレルインターフェースと、ゲームポートと、USBインターフェースと、FIREWIRE(登録商標)インターフェースと、バス912へのダイレクトインターフェースと、それらの任意の組合せとを含み、しかしこれらに限定されない。入力デバイス932は、(下でさらに議論される)ディスプレイ936の一部であり得るかまたはディスプレイ936から切り離され得るタッチスクリーンインターフェースを含み得る。入力デバイス932は、上述のようなグラフィカルインターフェースにおける1つまたは複数のグラフィカル表示を選択するためのユーザ選択デバイスとして利用され得る。
【0072】
ユーザは、記憶デバイス924(例えば取外し可能なディスクドライブ、フラッシュドライブ等)および/またはネットワークインターフェースデバイス940を介してコンピュータシステム900へとコマンドおよび/または他の情報を入力することもある。ネットワークインターフェースデバイス(ネットワークインターフェースデバイス940等)は、多様なネットワークの1つまたは複数(ネットワーク944等)および当該ネットワークへと接続された1つまたは複数のリモートデバイス948へとコンピュータシステム900を接続するために利用され得る。ネットワークインターフェースデバイスの例は、ネットワークインターフェースカード(例えばモバイルネットワークインターフェースカード、LANカード)と、モデムと、それらの任意の組合せとを含み、しかしこれらに限定されない。ネットワークの例は、ワイドエリアネットワーク(例えばインターネット、エンタープライズネットワーク)と、ローカルエリアネットワーク(例えばオフィス、ビル、キャンパスまたは他の比較的小さな地理的空間に関連付けられたネットワーク)と、電話ネットワークと、電話/音声プロバイダに関連付けられたデータネットワーク(例えばモバイル通信プロバイダデータおよび/または音声ネットワーク)と、2つのコンピューティングデバイス間のダイレクト接続と、それらの任意の組合せとを含み、しかしこれらに限定されない。ネットワーク(ネットワーク944等)は、通信の有線モードおよび/または無線モードを採用し得る。一般に、任意のネットワークトポロジーが、用いられ得る。情報(例えばデータ、ソフトウェア920等)は、ネットワークインターフェースデバイス940を介してコンピュータシステム900へと伝えられ得、かつ/またはコンピュータシステム900から伝えられ得る。
【0073】
コンピュータシステム900は、ディプレイデバイス(ディスプレイデバイス936等)へと表示可能な画像を伝えるためのビデオディスプレイアダプタ952をさらに含み得る。ディスプレイデバイスの例は、液晶ディスプレイ(LCD)と、カソードレイチューブ(CRT)と、プラズマディスプレイと、発光ダイオード(LED)と、それらの任意の組合せとを含み、しかしこれらに限定されない。ディスプレイアダプタ952およびディスプレイデバイス936は、本開示の側面のグラフィカル表現を提供するためにプロセッサ904と組合せて利用され得る。ディスプレイデバイスに加えて、コンピュータシステム900は、1つまたは複数の他のペリフェラル出力デバイス(オーディオスピーカー、プリンタおよびそれらの任意の組合せを含み、しかしこれらに限定されない)を含み得る。このようなペリフェラル出力デバイスは、ペリフェラルインターフェース956を介してバス912へと接続され得る。ペリフェラルインターフェースの例は、シリアルポートと、USB接続と、FIREWIRE(登録商標)接続と、パラレル接続と、それらの任意の組合せとを含み、しかしこれらに限定されない。
【0074】
上述の内容は、本発明の実例となる実施形態の詳細な説明である。様々な変更および追加が、本発明の精神および範囲から離れることなく、行われ得る。上述の様々な実施形態の各々の特徴は、関連付けられた新しい実施形態における非常に多数の特徴組合せを提供するために必要に応じて、他に述べられた実施形態の特徴と組合され得る。さらに、上述の内容が複数の別個の実施形態を説明する一方で、本明細書に記載されている内容は、本発明の原理の適用の単なる実例にすぎない。加えて、本明細書中の方法は特定の順序で実施されるように図示および/または説明され得るが、順序付けは、本明細書で開示されるような実施形態を達成する当業者内で非常に不統一である。従って、本説明は、例としてのみ受取られるように含意されており、本発明の範囲を別様に制限しないように含意されている。
【0075】
上の説明および特許請求の範囲における説明では、「のうちの少なくとも1つ」または「のうちの1つまたは複数」等のフレーズは、要素または特徴の並列リストに続いて現れ得る。「および/または」という用語も、2つまたはそれより多い要素または特徴のリストにおいて現れ得る。このようなフレーズが用いられる文脈と暗黙的に、または明示的に相反しない限り、このようなフレーズは、リストされた要素もしくは特徴のいずれかを単独に意味するか、または他の列挙された要素もしくは特徴のいずれかと組合された、列挙された要素もしくは特徴のいずれかを意味することを意図されている。例えば、「AおよびBのうちの少なくとも1つ」、「AおよびBのうちの1つまたは複数」および「Aおよび/またはB」というフレーズは、各々「A単体、B単体、または、AおよびB共に」を意味することを意図されている。同様の解釈が、3つまたはそれより多い項目を含むリストに対しても意図されている。例えば、「A、BおよびCのうちの少なくとも1つ」、「A、BおよびCのうちの1つまたは複数」および「A、Bおよび/またはC」というフレーズは、各々「A単体、B単体、C単体、AおよびB共に、AおよびC共に、BおよびC共に、または、AおよびBおよびC共に」を意味することを意図されている。加えて、上の、および特許請求の範囲における「基づいて」という用語の使用は、列挙されていない要素または特徴も許容されるように、「少なくとも部分的に基づいて」を意味することを意図されている。
【0076】
本明細書に記載される主題は、望まれる構成に依存して、システム、装置、方法および/または物品において具現化され得る。上述の説明において規定された実施形態は、本明細書に記載された主題と整合的な全ての実施形態を表現してはいない。それどころか、上述の説明において規定された実施形態は、記載された主題に関連した側面と整合的な単なるいくつかの例にすぎない。いくつかのバリエーションが上で詳細に説明されているが、他の変更または追加が可能である。特に、さらなる特徴および/またはバリエーションが、本明細書において規定された特徴および/またはバリエーションに加えて提供され得る。例えば、上で説明された実施形態は、開示された特徴の様々な組合せおよび部分組合せ、ならびに/または、上で開示されたいくつかのさらなる特徴の組合せおよび部分組合せに向けられ得る。加えて、付属の図に描写されており、かつ/または本明細書に記載のロジックフローは、望ましい結果を達成するために示された特定の順序または連続した順序を必ずしも要求しない。他の実装形態は、以下の特許請求の範囲内であり得る。