(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-19
(45)【発行日】2022-04-27
(54)【発明の名称】フレキシブルなツリー構造における連結符号化単位
(51)【国際特許分類】
H04N 19/96 20140101AFI20220420BHJP
H04N 19/70 20140101ALI20220420BHJP
【FI】
H04N19/96
H04N19/70
(21)【出願番号】P 2020550637
(86)(22)【出願日】2019-03-26
(86)【国際出願番号】 US2019023993
(87)【国際公開番号】W WO2019195026
(87)【国際公開日】2019-10-10
【審査請求日】2020-09-18
(32)【優先日】2018-04-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-12-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】坂東 大五郎
(56)【参考文献】
【文献】国際公開第2018/056703(WO,A1)
【文献】Xiang Li et al.,Multi-Type-Tree,Joint Video Exploration Team (JVET),2016年10月20日,[JVET-D0117r1] (version 3)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
映像シーケンスを符号化するためにツリー構造にて親符号化単位(CU)を分割する方法であって、
前記親CUを、第1のCU及び第2のCUを含む3つ以上のCUに分割し、且つ
前記第2のCUを前記第1のCUに連結することによって連結CUを生成する、
ことを有
し、
前記ツリー構造は三分木構造を含み、
前記3つ以上のCUは第3のCUを含み、
前記第3のCUは、前記第1のCUと前記第2のCUとの間に位置し、連結される前記第1のCU及び前記第2のCUは互いに隣接しない、
方法。
【請求項2】
CUレベル構文要素又はCUレベル符号化ツールのうちの少なくとも一方が、前記連結CUに適用される、請求項1に記載の方法。
【請求項3】
前記第1のCUは、前記第3のCUの左又は上に位置し、前記第2のCUは、前記第3のCUの右又は下に位置する、請求項1又は2に記載の方法。
【請求項4】
前記第3のCUの動き情報を予測するときに、前記第2のCUからの動き情報が使用される、請求項3に記載の方法。
【請求項5】
前記第2のCUは、前記連結CUのサイズが最大CUサイズよりも小さいように、且つ前記連結CUのサイズが利用可能な変換サイズに適合するように選択される、請求項1乃至4のいずれか一項に記載の方法。
【請求項6】
前記連結CUのサイズが利用可能な変換サイズに適合しない場合、当該方法は更に、前記連結CUを、各々が前記利用可能な変換サイズに適合する複数のサブブロックに分割することを有する、請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
前記ツリー構造は
更に、四分木-二分木構造
、マルチタイプツリー構造、及び非対称二分木構造のうちの少なくとも1つを
含む、請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、又はスライスヘッダのうちの少なくとも1つが、連結が許されることのインジケーションを含む、請求項1乃至
7のいずれか一項に記載の方法。
【請求項9】
前記第1のCU及び前記第2のCUは、前記親CUから分割された他のCUとのみ連結することができる、請求項1乃至
8のいずれか一項に記載の方法。
【請求項10】
映像シーケンスを符号化するためにツリー構造にて親符号化単位(CU)を分割する装置であって、
プログラムコードを格納するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み出し、前記プログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサと、
を有し、
前記プログラムコードは、
前記少なくとも1つのプロセッサに、前記親CUを、第1のCU及び第2のCUを含む3つ以上のCUへと分割させる、ように構成された分割コードと、
前記少なくとも1つのプロセッサに、前記第2のCUを前記第1のCUに連結することによって連結CUを生成させる、ように構成された生成コードと、
を含
み、
前記ツリー構造は三分木構造を含み、
前記3つ以上のCUは第3のCUを含み、
前記第3のCUは、前記第1のCUと前記第2のCUとの間に位置し、連結される前記第1のCU及び前記第2のCUは互いに隣接しない、
装置。
【請求項11】
前記連結CUのサイズが利用可能な変換サイズに適合しない場合、前記分割コードは、前記少なくとも1つのプロセッサに、前記連結CUを、各々が前記利用可能な変換サイズに適合する複数のサブブロックへと分割させる、ように構成される、請求項10に記載の装置。
【請求項12】
前記第1のCUは、前記第3のCUの左又は上に位置し、前記第2のCUは、前記第3のCUの右又は下に位置する、請求項10又は11に記載の装置。
【請求項13】
前記第3のCUの動き情報を予測するときに、前記第2のCUからの動き情報が使用される、請求項12に記載の装置。
【請求項14】
1つ以上のプロセッサに請求項1乃至9のいずれか一項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、米国特許商標庁に2018年4月2日に出願された米国特許出願第62/651,566号に対する優先権を主張するものであり、その開示をその全体にてここに援用する。
【0002】
本開示は、ハイブリッド映像符号化における進歩的なブロック分割(block partitioning)に関する。より具体的には、効率的なブロック分割のためにフレキシブルなツリー構造にて連結される符号化単位(CU)が開示される。
【背景技術】
【0003】
ITU-T VCEG(Q6/16)及びISO/IEC MPEG(JTC1/SC29/WG11)は、2013年(第1版)、2014年(第2版)、2015年(第3版)、そして2016年(第4版)に、H.265/HEVC(High Efficiency Video Coding)標準を発行した。それ以降、彼らは、HEVC規格(その拡張を含む)の圧縮能力を大幅に上回る圧縮能力を持つ将来の映像符号化技術の標準化の潜在的ニーズを研究している。これらグループは、彼らのこの分野の専門家によって提案された圧縮技術設計を評価するために、JVET(Joint Video Exploration Team)として知られる共同協力の取り組みにて、この探索活動に協働している。HEVCの能力を超える映像符号化技術を探索するためにJVETによって共同探索モデル(Joint Exploration Model;JEM)が開発され、JEMの現在の最新版はJEM-7.0である。JEMソフトウェアは、HEVC基準ソフトウェアHMに対する大幅の改善を示しており、HEVCを超える能力を持つ映像圧縮に関する共同の提案募集(Call for Proposal)が2017年10月に発行されている。新たな世代の映像符号化標準が開発中である。
【0004】
HEVCでは、符号化ツリー単位(coding tree unit;CTU)が、様々な局所的特性に適応するために、符号化ツリーと呼ばれるクワッド四分木構造を用いることによって複数の符号化単位(coding unit;CU)に分割される。画像領域を、画像間(時間的)予測を用いて符号化するのか、それとも画像内(空間的)予測を用いて符号化するのかの決定が、CUレベルで行われる。各CUは更に、予測単位(prediction unit;PU)分割タイプに従って、1つ、2つ、又は4つのPUに分割されることができる。1つのPU内では、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに伝えられる。PU分割タイプに基づく予測プロセスを適用することによって残余ブロックを得た後に、CUは、そのCU用の符号化ツリーのような別の四分木構造に従って複数の変換単位(transform unit;TU)へと分割されることができる。HEVC構造の重要な特徴の1つは、CU、PU、及びTUを含む複数の分割概念を持つことである。HEVCでは、CU又はTUは正方形の形状であることができるのみであり、一方、PUは、インター予測されるブロックで、正方形又は長方形にされ得る。後期のHEVCにおいて、一部の投稿が、長方形のPUをイントラ予測及び変換に可能にすることを提案した。これらの提案は、HEVCには採用されなかったが、JEMで使用されるように拡張された。
【0005】
画像境界において、HEVCは、サイズが画像境界に適合するまでブロックが四分木分割を維持することになるように、暗黙の四分木分割を強いている。
【0006】
以前の研究に触発されて、CU、PU及びTUの概念を一元化してCU分割形状に関するいっそうの柔軟性をサポートするために、四分木-二分木(Quad-tree-Binary-tree;QTBT)構造が開発された。QTBTブロック構造では、CUは正方形又は長方形のいずれかの形状を持つことができる。
図1に示すように、先ず、符号化ツリー単位(coding tree unit;CTU)が四分木構造によって分割される。四分木リーフノードが更に、二分木構造によって分割される。二分木分割には、対称水平分割及び対称垂直分割という2つの分割タイプが存在する。これらの二分木リーフノードが符号化単位(CU)と呼ばれ、そのセグメンテーションが、更なる分割なしで、予測及び変換の処理に使用される。これは、QTBT符号化ブロック構造ではCU、PU、及びTUが同じブロックサイズを持つことを意味する。JEMでは、CUは、時にして、異なる色成分の符号化ブロック(coding block;CB)で構成されることがあり、例えば、4:2:0クロマフォーマットのP及びBスライスの場合に1つのCUが1つのルマ(luma)CBと2つのクロマ(chroma)CBを含むことがあり、また時にして、単一成分のCBで構成されることがあり、例えば、Iスライスの場合に1つのCUが1つのルマCBのみ又は2つのクロマCBのみを含むことがある。
【0007】
以下のパラメータが、QTBT分割スキームのために定義されている:
- CTUサイズ:HEVCにおいてと同じ概念の、四分木のルートノードサイズ
- MaxQTDepth:最大許容四分木深さ
- MinQTSize:最小許容四分木リーフノードサイズ
- MaxBTSize:最大許容二分木ルートノードサイズ
- MaxBTDepth:最大許容二分木深さ
- MinBTSize:最小許容二分木リーフノードサイズ。
【0008】
QTBT分割構造の一例において、CTUサイズは、2つの対応する64×64ブロックのクロマサンプルを備えた128×128ルマサンプルとして設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、MinBTSize(幅及び高さの両方に関して)は4×4として設定され、そして、MaxBTDepthは4として設定される。先ず、CTUに四分木分割が適用されて、四分木リーフノードが生成される。四分木リーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを持ち得る。四分木リーフノードが128×128である場合、サイズがMaxBTSize(すなわち、64×64)を超えているので、それは、二分木によって更に分割されることにはならない。それ以外の場合、四分木リーフノードは、二分木によって更に分割され得る。従って、四分木リーフノードは、二分木にとってのルートノードでもあり、それは0として二分木深さを持つ。二分木深さがMaxBTDepth(すなわち、4)に達すると、更なる分割は検討されない。二分木ノードがMinBTSize(すなわち、4)に等しい幅を持つようになると、更なる水平分割は検討されない。同様に、二分木ノードがMinBTSizeに等しい高さをもつようになると、更なる垂直分割は検討されない。二分木のリーフノードは、更なる分割なしで、予測及び変換処理によって更に処理される。JEMでは、最大CTUサイズは256×256ルマサンプルである。
【0009】
図1(左側)は、QTBTを用いることによるブロック分割の一例を示し、
図1(右側)は、対応するツリー表現を示している。実線は四分木分割を示し、点線は二分木分割を示している。二分木のノード(すなわち、非リーフノード)の各分割において、どの分割タイプ(すなわち、水平又は垂直)が使用されるかを指し示すために、1つのフラグがシグナリングされ、0は水平分割を指し示し、1は垂直分割を指し示す。四分木分割では、分割タイプを指し示す必要はない。何故なら、四分木分割は常に、ブロックを水平方向及び垂直方向の両方で分割して、等しいサイズの4つのサブブロックを生成するからである。
【0010】
さらに、QTBTスキームは、ルマ及びクロマが別々のQTBT構造を持つことができることをサポートする。現在、P及びBスライスでは、1つのCTUのルマCTB及びクロミナンスCTBが同一のQTBT構造を共有している。しかし、Iスライスでは、ルマCTBはQTBT構造によってCUへと分割され、クロマCTBは別のQTBT構造によってクロマCUへと分割される。これが意味することは、IスライスにおけるCUは、ルマ成分の符号化ブロック又は2つのクロマ成分の符号化ブロックで構成され、P又はBスライスにおけるCUは、3つ全ての色成分の符号化ブロックで構成されるということである。
【0011】
HEVCでは、小ブロックについてのインター予測が、動き補償のメモリアクセスを削減するために制限され、その結果、4×8及び8×4のブロックで双方向予測がサポートされておらず、4×4ブロックでインター予測がサポートされていない。JEMのQTBTでは、これらの制約が取り除かれる。
【0012】
マルチタイプツリー(Multi-type-tree;MTT)構造は、QTBTよりもフレキシブルなツリー構造である。MTTでは、四分木(quad-tree;QT)及び二分木(binary-tree;BT)以外のツリータイプがサポートされる。
図2(d)及び
図2(e)にそれぞれ示されるような水平及び垂直のセンター-サイド三分木が導入される。
【0013】
図2(a)は、四分木分割の一例を示している。
図2(b)は、垂直二分木分割の一例を示している。
図2(c)は、水平二分木分割の一例を示している。
図2(d)は、垂直センター-サイド三分木分割の一例を示している。
図2(e)は、水平センター-サイド三分木分割の一例を示している。
【0014】
領域ツリー(四分木)及び予測ツリー(二分木又は三分木)という2つのレベルのツリーが存在する。CTUは先ず領域ツリー(region tree;RT)によって分割される。RTリーフが更に、予測ツリー(prediction tree;PT)で分割され得る。また、PTノードが更に、最大PT深さに達するまで、PTで分割され得る。PTに入った後には、もはや、RT(四分木)を使用することはできない。PTリーフが、基礎となる符号化単位である。
便宜上、それをなおもCUと称する。CUを更に分割することはできない。予測及び変換はどちらも、JEM-3又はQTBTと同じやり方でCUに適用される。
【0015】
三分木分割の利点は、四分木及び二分木が常にブロックセンターに沿って分割を行うのに対し、三分木分割が、四分木及び二分木分割の補完として、ブロックセンターに位置するオブジェクトを捕捉できることを含み得る。また、提案された三分木の分割の幅及び高さは、追加の変換が必要とされないよう、常に2のべき乗である。
【0016】
主に複雑さの低減により、2レベルツリーの設計が動機付けられる。理論的に、ツリーを横断することの複雑さはTDであり、ただし、Tは分割タイプの数を表し、Dはツリーの深さを表す。2レベルツリーの設計を用い、且つ第1レベルが四分木のみであることに制約する(特定レベルでのTの数を減らす)と、妥当な性能を維持したまま、複雑性が大いに低減される。
【0017】
QTBTにもまして符号化効率を更に高めるために、非対称二分木(asymmetric binary tree;ABT)が提案されている。
図3に示すように、サイズSを持つ符号化単位が、水平方向又は垂直方向のいずれかで、サイズS/4及びサイズ3×S/4を持つ2つのサブCUに分割される。実際には、追加される利用可能なCUサイズは12及び24である。更なる拡張版のツールでは、CUサイズ6及び48が可能にされ得る。
【0018】
この方法の1つの大きな問題は、ブロックの幅/高さが2のべき乗でないと不都合であることである。例えば、12及び24のようなサイズでの変換がサポートされる必要がある。幅/高さが2のべき乗でないブロックを分割するときには、特別な取扱いも必要とされ得る。
【0019】
SplitToSquare(スプリット・ツー・スクエア)ツリータイプを使用すると、ブロックが、最大の同じサイズの正方形のサブブロックに分割される。すなわち、入力ブロックが2M×2N(M≠N)のサイズを持つ長方形ブロックである場合、SplitToSquareの後に、我々は、サイズが2min(M,N)×2min(M,N)である2M+N-2×min(M,N)個のサブブロックを有することになる。入力ブロックが正方形ブロックである場合には、SplitToSquareは4つの正方形の同じサイズのサブブロックをもたらし、これは四分木分割と同じである。基本的に、SplitToSquareは、それがより多くのケースをカバーするので、四分木分割を置き換えるために使用され得る。
【発明の概要】
【0020】
一実施形態において、映像シーケンスを符号化するためにツリー構造にて親符号化単位(CU)を分割する方法が提供され、当該方法は、親CUを、第1のCU及び第2のCUを含む3つ以上のCUに分割することと、第2のCUを第1のCUに連結することによって連結CUを生成することと、を含む。
【0021】
一実施形態において、映像シーケンスを符号化するためにツリー構造にて親符号化単位(CU)を分割する装置が提供され、当該装置は、プログラムコードを格納するように構成された少なくとも1つのメモリと、該プログラムコードを読み出し、該プログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサと、を含み、該プログラムコードは、親CUを、第1のCU及び第2のCUを含む3つ以上のCUに分割するための分割コードと、第2のCUを第1のCUに連結することによって連結CUを生成するための生成コードと、を含む。
【0022】
一実施形態において、命令を格納した非一時的なコンピュータ読み取り可能媒体が提供され、該命令は、映像シーケンスを符号化するためにツリー構造にて親符号化単位(CU)を分割する装置の1つ以上のプロセッサによって実行されるときに、該1つ以上のプロセッサに、親CUを、第1のCU及び第2のCUを含む3つ以上のCUに分割させ、且つ第2のCUを第1のCUに連結することによって連結CUを生成させる。
【図面の簡単な説明】
【0023】
開示に係る事項の更なる特徴、性質、及び様々な利点が、以下の詳細な説明及び添付の図面から、よりいっそう明らかになる。
【
図2】
図2(a)-
図2(e)は、様々な分割構造の説明図である。
【
図4】本開示の一実施形態に従った通信システムの簡略ブロック図である。
【
図5】ストリーミング環境における映像エンコーダ及びデコーダの配置の図である。
【
図6】本開示の一実施形態に従った映像デコーダの機能ブロック図である。
【
図7】本開示の一実施形態に従った映像エンコーダの機能ブロック図である。
【
図8】本開示の一実施形態に従った、非隣接サブブロックの連結の説明図である。
【
図9】本開示の一実施形態に従った、様々なCUを分割及び連結することの一例の説明図である。
【
図10】本開示の一実施形態に従った、映像シーケンスを符号化するためにツリー構造にて親CUを分割するプロセスの一例のフローチャートである。
【
図11】一実施形態に従ったコンピュータシステムの図である。
【発明を実施するための形態】
【0024】
ABTは符号化効率の改善を示すが、TTと多くの重複を有する。例えば、
図3におけるHOR_UPの第1のパーティションは、
図2(e)における第1のパーティションと重複する。このパーティションは更に、より小さなサブブロックに分割され得るので、エンコーダのパーティションサーチにおける複雑さの重複が実際には非常に高い。
【0025】
MTT(ABT及びSplitToSquareを含む)構造はフレキシブルであるが、映像内の標準的でないオブジェクトを捕捉するのには依然として十分に効率的でない。
【0026】
図4は、本開示の一実施形態に従った通信システム(300)の簡略化したブロック図を例示している。通信システム(300)は、ネットワーク(450)を介して相互接続された少なくとも2つの端末(410-420)を含み得る。データの一方向伝送では、第1の端末(410)は、ネットワーク(450)を介した他方の端末(420)への伝送のために、ローカル位置で映像データを符号化し得る。第2の端末(420)は、他方の端末の符号化された映像データをネットワーク(450)から受信し、符号化されたデータを復号し、そして、復元された映像データを表示し得る。一方向データ伝送は、メディアサービス提供アプリケーション及びそれに類するものにおいて一般的であり得る。
【0027】
図4は、例えばテレビ会議中に発生し得る符号化された映像の双方向伝送をサポートするように設けられた第2対の端末(430、440)を例示している。データの双方向伝送では、各端末(430、440)が、ローカル位置でキャプチャされた映像データを、ネットワーク(450)を介した他方の端末への伝送のために符号化し得る。各端末(430、440)はまた、他方の端末によって送信された符号化された映像データを受信することができ、符号化データを復号し、そして、復元された映像データをローカルのディスプレイ装置に表示し得る。
【0028】
図4では端末(410-440)がサーバ、パーソナルコンピュータ、及びスマートフォンとして例示され得るが、本開示の原理はそのように限定されるものではない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のテレビ会議機器での適用を見出すものである。ネットワーク(450)は、例えば、有線通信ネットワーク及び/又は無線通信ネットワークを含め、端末(410-440)間で符号化された映像データを伝達するあらゆる数のネットワークを表す。通信ネットワーク(450)は、回線交換チャネル及び/又はパケット交換チャネルにてデータを交換し得る。代表的なネットワークは、遠距離通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットを含む。本説明の目的上、ネットワーク(450)のアーキテクチャ及びトポロジーは、以下にて説明しない限り、本開示の動作にとって重要ではないとし得る。
【0029】
図5は、開示に係る事項に関するアプリケーションの一例として、ストリーミング環境における映像エンコーダ及びデコーダの配置を例示している。開示に係る事項は、例えば、テレビ会議や、デジタルTVや、CD、DVD、メモリスティック及びこれらに類するものを含むデジタル媒体上での圧縮映像の格納などを含め、映像を使用可能な他の用途にも等しく適用可能であるとし得る。
【0030】
ストリーミングシステムは、キャプチャサブシステム(513)を含むことができ、これは、例えば未圧縮の映像サンプルストリーム(502)を作り出す例えばデジタルカメラといった映像ソース(501)を含むことができる。そのサンプルストリーム(502)は、符号化された映像ビットストリームと比較して高いデータボリュームであることを強調するために太線として描かれており、カメラ501に結合されたエンコーダ(503)によって処理され得る。エンコーダ(503)は、更に詳細に後述される開示に係る事項の態様を使用可能にする又は実装するための、ハードウェア、ソフトウェア、又はこれらの組み合わせを含むことができる。符号化された映像ビットストリーム(504)は、サンプルストリームと比較して低いデータボリュームであることを強調するために細線として描かれており、後の使用のためにストリーミングサーバ(505)に格納されることができる。1つ以上のストリーミングクライアント(506、508)が、符号化された映像ビットストリーム(504)のコピー(507、509)を取り出すためにストリーミングサーバ(505)にアクセスすることができる。クライアント(506)は、入ってくる符号化された映像ビットストリームのコピー(507)を復号し、出ていく映像サンプルストリーム(511)を作り出す映像デコーダ(510)を含むことができ、出ていく映像サンプルストリーム(511)が、ディスプレイ(512)又は他のレンダリング装置(図示せず)上でレンダリングされ得る。一部のストリーミングシステムにおいて、映像ビットストリーム(504、507、509)は、特定の映像符号化/圧縮標準に従って符号化されることができる。それらの標準の例は、ITU-T勧告H.265を含む。非公式にVVC(Versatile Video Coding)として知られる映像符号化標準が開発中である。開示に係る事項は、VVCの文脈で使用されてもよい。
【0031】
図6は、本発明の一実施形態に従った映像デコーダ(510)の機能ブロック図であるとし得る。
【0032】
受信器(610)が、デコーダ(510)によって復号される1つ以上の符号化映像シーケンスを受信することができ、同じ又は他の実施形態において、一度に1つの符号化映像シーケンスを受信することができ、各符号化映像シーケンスの復号は、他の符号化映像シーケンスとは独立である。符号化映像シーケンスは、符号化された映像データを格納するストレージ装置へのハードウェア/ソフトウェアリンクとし得るものであるチャネル(612)から受信され得る。受信器(610)は、符号化映像データを、例えば符号化された音声データ及び/又は補助データストリームといった他のデータと共に受信してもよく、それらのデータは、それらそれぞれの使用エンティティ(図示せず)に転送され得る。受信器(610)は、符号化映像シーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、受信器(610)とエントロピーデコーダ/パーサ(620)(以下、“パーサ”)との間にバッファメモリ(615)が結合され得る。受信器(610)が、十分な帯域幅及び可制御性の格納/転送装置から又は等同期ネットワークからデータを受信しているとき、バッファ(615)は、必要とされないことがあり、又は小さくされることができる。例えばインターネットなどのベストエフォート型パケットネットワーク上での使用では、バッファ(615)が必要とされ得るとともに、比較的大きくされ、そして有利には、適応可能なサイズのものにされ得る。
【0033】
映像デコーダ(510)は、エントロピー符号化された映像シーケンスからシンボル(621)を再構成するためのパーサ(620)を含み得る。それらシンボルのカテゴリは、デコーダ(510)の動作を管理するために使用される情報を含むとともに、可能性として、例えばディスプレイ(512)などのレンダリング装置を制御する情報を含み得る。ディスプレイ(512)などのレンダリング装置は、デコーダの一体部分ではないが、
図6に示したようにデコーダに結合されることができる。(1つ以上の)レンダリング装置用の制御情報は、SEI(Supplementary Enhancement Information)メッセージ又はVUI(Video Usability Information)パラメータセットフラグメント(図示せず)の形態とし得る。パーサ(620)は、受け取った符号化映像シーケンスを構文解析/エントロピー復号し得る。符号化映像シーケンスの符号化は、映像符号化技術又は標準によることができ、可変長符号化、ハフマン符号化、文脈依存性を持つ又は持たない算術符号化などを含め、当業者に周知の原理に従うことができる。パーサ(620)は、符号化映像シーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、映像デコーダにおけるピクセルのサブグループのうちの少なくとも1つに関する一組のサブグループパラメータを抽出することができる。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化単位(CU)、ブロック、変換単位(TU)、予測単位(PU)などを含むことができる。エントロピーデコーダ/パーサはまた、符号化映像シーケンス情報から、例えば変換係数、量子化パラメータ(quantizer parameter;QP)値、動きベクトルなどの情報を抽出し得る。
【0034】
パーサ(620)は、シンボル(621)を生み出すよう、バッファ(615)から受け取った映像シーケンスにエントロピー復号/構文解析処理を実行し得る。パーサ(620)は、符号化されたデータを受け取って、特定のシンボル(621)を選択的に復号し得る。さらに、パーサ(620)は、特定のシンボル(621)が、動き補償予測ユニット(653)、スケーラ/逆変換ユニット(651)、イントラ予測ユニット(652)、又はループフィルタ(656)に提供されるべきかを決定し得る。
【0035】
シンボル(621)の再構成には、符号化された映像ピクチャ又はその部分のタイプ及び他の要因(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロックなど)に応じて、複数の異なるユニットが関与し得る。どのユニットがどのように関与するかは、パーサ(620)によって符号化映像シーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(620)と以下の複数ユニットとの間でのこのようなサブグループ制御情報の流れは、明瞭さのために図示していない。
【0036】
既述の機能ブロックを超えて、デコーダ(510)は概念的に、後述のような多数の機能ユニットに細分化されることができる。商業上の制約の下で稼働する実用的な実装において、これらのユニットのうちの多くが互いに密接にインタラクトし、少なくとも部分的に互いに統合され得る。しかしながら、開示に係る事項を説明するという目的のためには、以下の機能ユニットへの概念的な細分化が適切である。
【0037】
第1のユニットは、スケーラ/逆変換ユニット(651)である。スケーラ/逆変換ユニット(651)は、パーサ(620)からの(1つ以上の)シンボル(621)として、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報とともに、量子化された変換係数を受け取る。これは、アグリゲータ(655)に入力されることが可能な、サンプル値を有するブロックを出力することができる。
【0038】
場合により、スケーラ/逆変換(651)の出力サンプルは、イントラ符号化されたブロック、すなわち、先行して再構成されたピクチャからの予測情報を使用していないが、現在ピクチャのうち先行して再構成された部分からの予測情報を使用することができるブロック、に関係し得る。このような予測情報は、イントラピクチャ予測ユニット(652)によって提供されることができる。場合により、イントラピクチャ予測ユニット(652)は、現在の(部分的に再構成された)ピクチャ(656)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ(655)は、場合により、サンプル毎に、イントラ予測ユニット(652)が生成した予測情報を、スケーラ/逆変換ユニット(651)によって提供される出力サンプル情報に付加する。
【0039】
他の場合には、スケーラ/逆変換ユニット(651)の出力サンプルは、インター符号化された、動き補償された可能性のあるブロックに関係し得る。このような場合、動き補償予測ユニット(653)が、基準ピクチャメモリ(657)にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルを、ブロックに関係するシンボル(621)に従って動き補償した後、これらのサンプルが、アグリゲータ(655)によって、スケーラ/逆変換ユニットの出力(この場合、残余サンプル又は残余信号と呼ぶ)に付加されて、出力サンプル情報を生成することができる。そこから動き補償ユニットが予測サンプルをフェッチする基準ピクチャメモリ内のアドレスは、例えばX、Y、及び基準ピクチャ成分を有し得るシンボル(621)の形態で動き補償ユニットに利用可能な動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されるときに基準ピクチャメモリからフェッチされたサンプル値の補間や、動きベクトル予測メカニズムなどを含むことができる。
【0040】
アグリゲータ(655)の出力サンプルは、ループフィルタユニット(656)にて様々なループフィルタリング技術に掛けられ得る。映像圧縮技術は、インループ(in-loop)フィルタ技術を含むことができ、これは、符号化映像ビットストリームに含められてパーサ(620)からのシンボル(621)としてループフィルタユニット(656)に利用可能にされるパラメータによって制御されるが、符号化ピクチャ又は符号化映像シーケンスのうちの(復号順で)先行部分の復号中に得られたメタ情報にも応答することができるとともに、先行して再構成されてループフィルタリングされたサンプル値にも応答することができる。
【0041】
ループフィルタユニット(656)の出力は、レンダリング装置(512)に出力されることが可能なサンプルストリームとすることができ、これはまた、将来のインターピクチャ予測での使用のために基準ピクチャメモリ(656)に格納され得る。
【0042】
ある特定の符号化ピクチャは、完全に再構成されると、将来の予測のための基準ピクチャとして使用されることができる。ある符号化ピクチャが完全に再構成され、その符号化ピクチャが基準ピクチャとして(例えば、パーサ(620)によって)特定されると、現在の基準ピクチャ(656)が基準ピクチャバッファ(657)の一部となり得るとともに、次の符号化ピクチャの再構成を開始する前に新しい現在ピクチャメモリが再割り当てされ得る。
【0043】
映像デコーダ(510)は、例えばITU-T勧告H.265などの標準にて文書化され得る所定の映像圧縮技術に従って復号処理を実行し得る。符号化映像シーケンスは、映像圧縮技術文書又は標準、特にその中のプロファイル文書の中で規定されるように映像圧縮技術又は標準の構文を忠実に守るという意味で、使用される映像圧縮技術又は標準によって規定される構文に従い得る。また、準拠のためにこれまた必要なことは、符号化映像シーケンスの複雑さが、映像圧縮技術又は標準のレベルによって定められる限度内であることである。場合により、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大基準ピクチャサイズなどを制約する。レベルによって設定される制限は、場合により、仮説的リファレンスデコーダ(Hypothetical Reference Decoder;HRD)仕様、及び符号化映像シーケンスにて信号伝達されるHRDバッファ管理用のメタデータを通して更に制約され得る。
【0044】
一実施形態において、受信器(610)は、符号化された映像と共に追加(冗長)データを受信し得る。追加データは、(1つ以上の)符号化映像シーケンスの一部として含められ得る。追加データは、データを適切に復号するため、及び/又は元の映像データをいっそう正確に再構成するために、映像デコーダ(510)によって使用され得る。追加データは、例えば、時間的、空間的、又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、順方向誤り訂正符号などの形態とし得る。
【0045】
図7は、本開示の一実施形態に従った映像エンコーダ(503)の機能ブロック図とし得る。
【0046】
エンコーダ(503)は、エンコーダ(503)によって符号化される(1つ以上の)映像画像をキャプチャし得る映像ソース(501)(エンコーダの一部ではない)から映像サンプルを受信し得る。
【0047】
映像ソース(501)は、エンコーダ(503)によって符号化されるソース映像シーケンスを、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、及び任意の好適なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のものとし得るデジタル映像サンプルストリームの形態で提供し得る。メディアサービス提供システムにおいて、映像ソース(501)は、事前に準備された映像を格納したストレージ装置とし得る。テレビ会議システムでは、映像ソース(503)は、ローカルな画像情報を映像シーケンスとしてキャプチャするカメラとし得る。映像データは、順に見たときに動きを伝える複数の個々のピクチャとして提供され得る。それらピクチャ自体は、ピクセルの空間アレイとして編成されることができ、各ピクセルが、使用されるサンプリング構造、色空間などに応じて、1つ以上のサンプルを有することができる。当業者は、ピクセルとサンプルとの関係を直ちに理解することができる。以下の説明は、サンプルに焦点を当てている。
【0048】
一実施形態によれば、エンコーダ(503)は、ソース映像シーケンスのピクチャを、リアルタイムで、又はアプリケーションによって要求される他の時間制約下で、符号化映像シーケンス(743)へと符号化及び圧縮し得る。適切な符号化速度を強制することは、コントローラ(750)の1つの機能である。コントローラは、後述するような他の機能ユニットを制御し、それらのユニットに機能的に結合される。その結合は、明瞭さのために図示されていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含み得る。当業者は、特定のシステム設計に合わせて最適化される映像エンコーダ(503)に関連し得るものとして、コントローラ(750)の他の機能を直ちに特定することができる。
【0049】
一部の映像エンコーダは、当業者が“符号化ループ”として直ちに認識するものにて動作する。過度に単純化した説明として、符号化ループは、エンコーダの符号化部分(730)(以下、“ソースコーダ”)(符号化される入力ピクチャ及び(1つ以上の)基準ピクチャに基づいてシンボルを作成することを担う)と、エンコーダ(503)に埋め込まれた(ローカル)デコーダ(733)とで構成されることができ、(ローカル)デコーダ(733)は、シンボルを再構成して、(リモート)デコーダも作成し得る(開示に係る事項において検討している映像圧縮技術においては、シンボルと符号化映像ビットストリームとの間の如何なる圧縮も可逆であるため)ものであるサンプルデータを生成する。その再構成されたサンプルストリームが、基準ピクチャメモリ(734)に入力される。シンボルストリームの復号は、デコーダ位置(ローカル又はリモート)に依存しないビット正確な結果をもたらすので、基準ピクチャバッファのコンテンツもローカルエンコーダとリモートエンコーダとの間でビット正確である。換言すれば、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに“見る”のとまったく同じサンプル値を基準ピクチャサンプルとして“見る”。この基準ピクチャ同期性の基本原理(及び、例えばチャネルエラーのために、同期性を維持することができない場合に結果として生じるドリフト)は、当業者によく知られている。
【0050】
“ローカル”デコーダ(733)の動作は、“リモート”デコーダ(510)のものと同じであるとすることができ、それは、
図6に関連して既に詳細に上述されている。しかし、
図6も簡単に参照するに、シンボルが利用可能であり、且つエントロピーコーダ(745)及びパーサ(620)によるシンボルの符号化映像シーケンスへの符号化/復号は可逆であるとし得るので、チャネル(612)、受信器(610)、バッファ(615)、及びパーサ(620)を含むデコーダ(510)のエントロピー復号部分は、ローカルデコーダ(733)に完全に実装されなくてよい。
【0051】
この時点で気付くことができることには、デコーダ内に存在する構文解析/エントロピー復号を除く如何なるデコーダ技術も必ず、対応するエンコーダ内で、実質的に同じ機能的形態で存在する必要がある。エンコーダ技術の説明は、徹底して説明したデコーダ技術の逆であるため、省略することができる。特定の分野においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0052】
その動作の一部として、ソースコーダ(730)は、入力フレームを、映像シーケンスからの、“基準フレーム”として指定された1つ以上の先に符号化されたフレームに対して予測的に符号化するものである動き補償予測符号化を実行し得る。斯くして、符号化エンジン(732)は、入力フレームのピクセルブロックと、入力フレームに対する(1つ以上の)予測基準として選択され得る(1つ以上の)基準フレームのピクセルブロックとの間の差分を符号化する。
【0053】
ローカル映像デコーダ(733)は、基準フレームとして指定され得るフレームの符号化映像データを、ソースコーダ(730)によって作成されたシンボルに基づいて復号し得る。符号化エンジン(732)の動作は、有利には、不可逆プロセスとし得る。符号化映像データが映像デコーダ(
図6には示されていない)で復号され得るとき、再構成された映像シーケンスは典型的に、幾分の誤差を伴うソース映像シーケンスのレプリカであり得る。ローカル映像デコーダ(733)は、基準フレーム上で映像デコーダによって実行され得る復号プロセスを複製し、再構成された基準フレームを基準ピクチャキャッシュ(734)に格納させるようにし得る。斯くして、エンコーダ(503)は、ファーエンドの映像デコーダによって得られることになる再構成基準フレームと共通のコンテンツを持つ再構成基準フレームのコピーをローカルに格納し得る。
【0054】
予測器(735)は、符号化エンジン(732)のために予測探索を実行し得る。すなわち、符号化すべき新たなフレームに関して、予測器(735)は、新たなピクチャ用の適切な予測基準としての役割を果たし得るサンプルデータ(候補基準ピクセルブロックとして)又は例えば基準ピクチャ動画ベクトルやブロック形状などの特定のメタデータについて、基準ピクチャメモリ(734)を検索し得る。予測器(735)は、適切な予測基準を見出すために、ピクセルブロック毎に動作し得る。場合により、予測器(735)によって得られた検索結果により決定されるように、入力ピクチャは、基準ピクチャメモリ(734)に格納された複数の基準ピクチャから引き出された予測基準を有し得る。
【0055】
コントローラ(750)は、例えば、映像データを符号化するのに使用されるパラメータ及びサブグループパラメータの設定を含め、映像コーダ(730)の符号化処理を管理し得る。
【0056】
前述の全ての機能ユニットの出力が、エントロピーコーダ(745)におけるエントロピー符号化に掛けられ得る。エントロピーコーダは、例えばハフマン符号化、可変長符号化、算術符号化などといった当業者に知られた技術に従ってシンボルを無損失圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化映像シーケンスへと変換する。
【0057】
送信器(740)が、エントロピーコーダ(745)によって生成された符号化映像シーケンスをバッファリングし、それを、通信チャネル(760)を介した伝送のために準備し得る。通信チャネル(760)は、符号化された映像データを格納するストレージ装置へのハードウェア/ソフトウェアリンクとし得る。送信器(740)は、映像コーダ(730)からの符号化映像データを、例えば符号化オーディオデータ及び/又は補助データストリーム(ソースは図示していない)といった、送信される他のデータとマージし得る。
【0058】
コントローラ(750)は、エンコーダ(503)の動作を管理し得る。符号化において、コントローラ(750)は、各符号化ピクチャに、それぞれのピクチャに適用され得る符号化技術に影響を及ぼし得るものである特定の符号化ピクチャタイプを割り当て得る。例えば、ピクチャはしばしば、以下のフレームタイプの1つとして割り当てられ得る。
【0059】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のフレームを使用することなく、符号化コード化及び復号され得るものとし得る。一部の映像コーデックは、例えば独立デコーダリフレッシュピクチャを含め、異なるタイプのイントラピクチャを許している。当業者は、Iピクチャのそれら異形、並びにそれらそれぞれの用途及び特徴を知っている。
【0060】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くて1つの動きベクトルと基準インデックスとを使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものとし得る。
【0061】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くて2つの動きベクトルと基準インデックスとを使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものとし得る。同様に、多重予測画像は、単一のブロックの再構成のために3つ以上の基準ピクチャと関連メタデータとを使用することができる。
【0062】
ソースピクチャは、一般に、空間的に複数のサンプルブロック(例えば、各々4×4、8×8、4×8、又は16×16サンプルのブロック)に細分化され、ブロック毎に符号化され得る。ブロックは、それらブロックのそれぞれのピクチャに適用される符号化割り当てによって決定される他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは非予測的に符号化されることができ、あるいは、それらは同じピクチャの既に符号化されたブロックを参照して予測的に符号化されることができる(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、非予測的に、あるいは、1つの先に符号化された基準ピクチャを参照して空間予測又は時間予測を介して、符号化されることができる。Bピクチャのブロックは、非予測的に、あるいは、1つ又は2つの先に符号化された基準ピクチャを参照して空間予測又は時間予測を介して、符号化されることができる。
【0063】
映像エンコーダ(503)は、例えばITU-T勧告H.265などの所定の映像符号化技術又は標準に従って符号化処理を実行し得る。その動作において、映像エンコーダ(503)は、入力映像シーケンスにおける時間的及び空間的な冗長性を活用する予測的な符号化処理を含め、様々な圧縮処理を実行し得る。符号化された映像データは、それ故に、使用されている映像符号化技術又は標準によって規定される構文に従い得る。
【0064】
一実施形態において、送信器(740)は、符号化された映像と共に追加データを送信し得る。映像コーダ(730)が、そのようなデータを、符号化映像シーケンスの一部として含め得る。追加データは、時間的/空間的/SNRエンハンスメントレイヤ、例えば冗長ピクチャ及びスライスなどの他の形態の冗長データ、SEI(Supplementary Enhancement Information)メッセージ、VUI(Visual Usability Information)パラメータセットフラグメントなどを有し得る。
【0065】
本開示の一部の実施形態は、任意のツリー構造において(例えばMTTにおいてなど)2つ以上の空間的に隣接し合うCUを連結することを可能にし、その連結CUが、正規のCUと見なされて正規のCUレベル構文要素及び符号化ツールを有する単一のCUとなるようにする。
【0066】
CU連結は、新たなCUの形状が長方形であり且つ/或いは新たなCUのサイズが利用可能な変換によってサポートされるように制約され得る。
【0067】
一実施形態において、連結CUが最大CUサイズよりも大きい場合、連結は許可されない。他の一実施形態において、連結CUが最大CUサイズより小さい場合であっても、連結CUの幅又は高さのいずれかについて適合する変換が存在しない場合、連結は許可されない。例えば、2つの隣接し合うCUは16×16と16×4である。連結CUは16×20となる。20ポイントの変換が利用可能でない場合、たとえ最大CUサイズが128×128であっても、この新たな連結CUは許可されない。
【0068】
一実施形態において、連結CUの高さ及び/又は幅が利用可能な変換サイズに適合しない場合、各サブブロックの高さ及び幅が利用可能な変換サイズに適合するように、CUが2つ以上のサブブロックに分割され得る。CUがどのようにサブブロックに分割されるのかは、信号伝達されてもよいし、あるいは予め定められていてもよい。
【0069】
一実施形態において、CU連結は、CUが現在CUと同じ親を共有するCUにのみ連結することができるように制約され得る。
【0070】
一実施形態において、CU連結の方向が、CUがその右側又はその下側のCUにのみ連結することができるように制約され得る。
【0071】
3つ以上のサブブロック(例えばTT)に分割されるブロックについて、本開示の実施形態は、互いに隣接しない2つ以上のパーティションを連結することを可能にし、連結されたパーティションの残余が、変換及び動き補償を含む更なる処理のための1つのブロックとしてまとめられ得る。
【0072】
一実施形態において、M×Nブロックが例えばTTなどの3つのサブブロックに分割される場合、
図8に示すように、陰影付きブロックを用いて図示した2つの小さい方のM/4×N(水平センター-サイドTT)又はM×N/4(垂直センター-サイドTT)パーティションが、1つのM/2×N(水平センター-サイドTT)ブロック又はM×N/2(垂直センター-サイドTT)ブロックを形成するようにまとめられる。この場合、これら3つのサブブロックの符号化/復号順序が、例えば、先ず連結された2つのサイドサブブロックを符号化/復号し、次いでセンターサブブロックを符号化/復号する、又は、先ずセンターサブブロックを符号化/復号し、次いで連結された2つのサイドサブブロックを符号化/復号する、などに変更され得る。
【0073】
一実施形態において、2つ以上の隣接しないサブブロックの連結が適用される場合、空間的に隣接する右及び下ブロックの動き情報が、それらが利用可能であるときに、動作補償に使用されてもよい。
【0074】
一実施形態において、水平センター-サイドTTの2つの小さい方のサブブロックM/4×Nが1つのM/2×Nサブブロックとしてまとめられ、且つTTのセンターM/2×Nサブブロックの前に符号化される場合、センターパーティションの動き情報を予測するときに、その右側の、連結に関与しているM/4×Nサブブロックからの動きが使用されてもよい。
【0075】
本開示の実施形態は、CU/ブロック連結の機能が有効にされているか又は無効であるかを、例えばシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、及び/又はスライスヘッダ内など、ビットストリーム内でシグナリングし得る。許可される/許可されない異なるCU/ブロック連結の組み合わせが、例えばSPS、PPS、及び/又はスライスヘッダ内など、ビットストリーム内でシグナリングされてもよい。
【0076】
一実施形態において、CU連結は、TTにもましてABTを模倣するように使用されてもよい。この実施形態において、ABT分割は、TT分割の上で提案されるCU連結を用いて模倣される。
【0077】
図9の左側に示すように、TT分割後に、3つのパーティションP0、P1、及びP2が存在すると仮定する。その上、このブロックでは、右側の図に示すようなABT分割の方が効率的であるとする。狙うのは、CU連結を用いて、ABT分割0’及びP1’を模倣することである。
【0078】
この実施形態では、TT分割のための通常の構文要素に加えて、TT分割による3つのCUのうち最初の2つのCUについてCUが次のCUに連結されているかを指し示すために新たなフラグcu_conat_flagがシグナリングされ得る。上の例において、cu_conat_flagはP0について真(true)であり、それ故に、左側の図のP0及びP1が右側の図のP0’として連結され、P2がP1’になる。従って、ABTパーティションが、CU連結を用いたTTによって模倣され得る。
【0079】
関連する構文テーブルは、以下の疑似コードに基づき得る。言及しておくべきことには、以下の疑似コードでは、関数coding_unit()が使用されているので、連結CUに対する更なる分割は許されない。これに代えて、連結CUが更に分割されてもよい。その場合、coding_unit()の代わりに、関数coding_tree_unitが使用される。
coding_tree_unit(x0,y0,w0,h0,cuDepth)
{
splitType = parse_tree_type();
if(splitType == NoSplit)
{
coding_unit(x0,y0,w0,h0,cuDepth);
}
else if(splitType == QuadTreeSplit)
{
coding_tree_unit(x0,y0,w0/2,h0/2,cuDepth+1);
coding_tree_unit(x0+w0/2,y0,w0/2,h0/2,cuDepth+1);
coding_tree_unit(x0,y0+h0/2,w0/2,h0/2,cuDepth+1);
coding_tree_unit(x0+w0/2,y0+y0/2,w0/2,h0/2,cuDepth+1);
}
else if(splitType == BinTreeSplitVer)
{
coding_tree_unit(x0,y0,w0/2,h0,cuDepth+1);
coding_tree_unit(x0+w0/2,y0,w0/2,h0,cuDepth+1);
}
else if(splitType == BinTreeSplitHor)
{
coding_tree_unit(x0,y0,w0,h0/2,cuDepth+1);
coding_tree_unit(x0,y0+h0/2,h0/2,cuDepth+1);
}
else if(splitType == TriTreeSplitVer)
{
cu_concat_flag0 = parse_cu_concat_flag();
if(cu_concat_flag0)
{
coding_unit(x0,y0,w0*3/4,h0,cuDepth);
coding_tree_unit(x0+w0*3/4,y0,w0/4,h0,cuDepth+1);
}
else
{
coding_tree_unit(x0,y0,w0/4,h0,cuDepth+1);
cu_concat_flag1 = parse_cu_concat_flag();
if(cu_concat_flag1)
{
coding_unit(x0+w0/4,y0,w0*3/4,h0,cuDepth);
}
else
{
coding_tree_unit(x0+w0/4,y0,w0/2,h0,cuDepth+1);
coding_tree_unit(x0+w0*3/4,y0,w0/4,h0,cuDepth+1);
}
}
}
else if(splitType == TriTreeSplitHor)
{
cu_concat_flag0 = parse_cu_concat_flag();
if(cu_concat_flag0)
{
coding_unit(x0,y0,w0,h0*3/4,cuDepth);
coding_tree_unit(x0,y0+h0*3/4,w0,h0/4,cuDepth+1);
}
else
{
coding_tree_unit(x0,y0,w0,h0/4,cuDepth+1);
cu_concat_flag1 = parse_cu_concat_flag();
if(cu_concat_flag1)
{
coding_unit(x0,y0+h0/4,w0,h0*3/4,cuDepth);
}
else
{
coding_tree_unit(x0,y0+h0/4,w0,h0/2,cuDepth+1);
coding_tree_unit(x0,y0+h0*3/4,w0,h0/4,cuDepth+1);
}
}
}
}
【0080】
図10は、中間候補を用いてマージ候補リストを生成するプロセス1000の一例のフローチャートである。一部の実装において、
図10の1つ以上のプロセスブロックは、デコーダ510によって実行され得る。一部の実装において、
図10の1つ以上のプロセスブロックは、例えばエンコーダ503など、デコーダ510とは別個又はそれを含む他の装置又は一群の装置によって実行されてもよい。
【0081】
一実施形態において、プロセス1000は、映像シーケンスを符号化するためにツリー構造にて親符号化単位(CU)を分割することを、該親CUを、第1のCU及び第2のCUを含む3つ以上のCUに分割し、且つ第2のCUを第1のCUに連結することによって連結CUを生成することにより行うことを含み得る。
【0082】
例えば、
図10に示すように、プロセス1000は、CUを、例えば3つ以上のCUといった複数のCUに分割することを含み得る(ブロック1010)。それら複数のCUは、第1のCU及び第2のCUを含み得る。
【0083】
図10に更に示すように、プロセス1000は、第1のCU及び第2のCUが同一の親CUを持つかどうかを判定することを含み得る(ブロック1020)。
【0084】
図10に更に示すように、プロセス1000は、第1のCU及び第2のCUが同一の親CUを持つ場合に、第1のCUと第2のCUとを連結することによって連結CUを生成することを含み得る(ブロック1030)。
【0085】
図10に更に示すように、プロセス1000は、第1のCU及び第2のCUが同一の親CUを持たない場合に、連結CUを生成しないことを含み得る(ブロック1040)。
【0086】
一実施形態において、CUレベル構文要素又はCUレベル符号化ツールのうちの少なくとも一方が、連結CUに適用される。
【0087】
一実施形態において、第2のCUは、第1のCUに空間的に隣接している。
【0088】
一実施形態において、第2のCUは、第1のCUの右側、又は第1のCUの下側のうちの少なくとも一方に位置する。
【0089】
一実施形態において、第2のCUは、連結CUのサイズが最大CUサイズよりも小さいように、且つ連結CUのサイズが利用可能な変換サイズに適合するように選択される。
【0090】
一実施形態において、連結CUのサイズが利用可能な変換サイズに適合しない場合、連結CUは、各々が利用可能な変換サイズに適合する複数のサブブロックに分割され得る。
【0091】
一実施形態において、上記ツリー構造は、四分木-二分木構造、三分木構造、マルチタイプツリー構造、及び非対称二分木構造のうちの少なくとも1つを含む。
【0092】
一実施形態において、上記ツリー構造は三分木構造を有し、上記3つ以上のCUは第3のCUを含むことができ、第3のCUは、第1のCUと第2のCUとの間に位置し得る。第1のCUは、第3のCUの左側に位置することができ、第2のCUは、第3のCUの右側に位置することができ、第1のCUの動き情報が、第2のCUの動き補償に使用され得る。
【0093】
一実施形態において、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、又はスライスヘッダのうちの少なくとも1つが、連結が許されることのインジケーションを含む。
【0094】
一実施形態において、第1のCU及び第2のCUは、同じ親CUから分割された他のCUとのみ連結することができる。
【0095】
図10はプロセス1000のブロック例を示しているが、一部の実装において、プロセス1000は、
図10に示したものよりも、追加のブロック、少ないブロック、異なるブロック、又は異なるように配置されたブロックを含み得る。加えて、あるいは代わりに、プロセス1000のブロックのうちの2つ以上が並行して実行されてもよい。
【0096】
また、提案される方法は、プロセッシング回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装され得る。一例において、1つ以上のプロセッサは、提案される方法のうちの1つ以上を実行するために、非一時的なコンピュータ読み取り可能媒体に格納されたプログラムを実行する。
【0097】
上述の技術は、コンピュータ読み取り可能命令を用いてコンピュータソフトウェアとして実装されることができ、また、1つ以上のコンピュータ読み取り可能媒体に物理的に格納されることができる。例えば、
図11は、開示に係る事項の特定の実施形態を実装するのに好適なコンピュータシステム1100を示している。
【0098】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は同様の機構に掛けられることで、直接的に又はインタープリット、マイクロコード実行及びこれらに類するものを介してコンピュータ中央演算処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、及びこれらに類するものによって実行されることが可能な命令を有するコードを作り出し得るような、任意の好適な機械コード又はコンピュータ言語を用いてコード化され得る。
【0099】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置、及びこれらに類するものを含め、様々なタイプのコンピュータ又はそのコンポーネント上で実行され得る。
【0100】
コンピュータシステム1100に関して
図11に示したコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能性の範囲についての何らかの限定を示唆する意図はない。また、コンポーネントの構成も、コンピュータシステム1100のこの例示的実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関する何らかの従属性又は要件も持つものとして解釈されるべきでない。
【0101】
コンピュータシステム1100は、特定のヒューマンインタフェース入力装置を含んでもよい。そのようなヒューマンインタフェース入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブを動かすことなど)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャなど)、嗅覚入力(図示せず)を介した、一人以上の人間ユーザによる入力に応答し得る。ヒューマンインタフェース装置はまた、例えばオーディオ(例えば、会話、音楽、周囲の音など)、画像(例えば、走査画像、静止画カメラから得られる写真画像など)、映像(例えば、2次元映像、立体視映像を含む3次元映像など)などの、人間による意識的な入力には必ずしも直接関係しない特定の媒体を捕捉するために使用されてもよい。
【0102】
入力ヒューマンインタフェース装置は、キーボード1101、マウス1102、トラックパッド1103、タッチスクリーン1110、データグローブ1104、ジョイスティック1105、マイクロフォン1106、スキャナ1107、カメラ1108(各々1つのみ図示している)のうちの1つ以上を含み得る。
【0103】
コンピュータシステム1100はまた、特定のヒューマンインタフェース出力装置を含み得る。そのようなヒューマンインタフェース出力装置は、例えば、触覚出力、音、光、及び臭い/味を通して、一人以上の人間ユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力装置は、触覚出力装置(例えば、タッチスクリーン1110、データグローブ1104、又はジョイスティック1105による触覚フィードバックであるが、入力装置として機能しない触覚フィードバック装置もあってもよい)、オーディオ出力装置(例えば、スピーカー1109、ヘッドフォン(図示せず)など)、視覚出力装置(例えば、陰極線管(CRT)スクリーン、液晶ディスプレイ(LCD)スクリーン、プラズマスクリーン、有機発光ダイオード(OLED)スクリーンを含むスクリーン1110(各々がタッチスクリーン入力機能を有する又は有さない。各々が触覚フィードバック機能を有する又は有さない。これらの一部は、二次元の視覚出力、又は例えば立体視出力などの手段を通じて四次元以上の出力を出力することができるとし得る。)、仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)など)、及びプリンタ(図示せず)を含み得る。
【0104】
コンピュータシステム1100はまた、例えば、CD/DVD若しくは類似の媒体1121を有するCD/DVD ROM/RW1120を含む光媒体、サムドライブ1122、取り外し可能なハードドライブ若しくは又はソリッドステートドライブ1123、例えばテープ及びフロッピーディスク(登録商標、図示せず)などのレガシー磁気媒体、例えばセキュリティドングルなどの特殊化されたROM/ASIC/PLDベースの装置(図示せず)、及びこれらに類するものなどの、人間アクセス可能なストレージ装置及びそれらの関連媒体を含み得る。
【0105】
当業者がこれまた理解するはずのことには、ここでの開示に係る事項に関連して使用される用語“コンピュータ読み取り可能媒体”は、伝送媒体、搬送波、又は他の一時的な信号を含まない。
【0106】
コンピュータシステム1100はまた、1つ以上の通信ネットワークへの(1つ以上の)インタフェースを含み得る。ネットワークは、例えば、無線、有線、光とし得る。ネットワークは更に、ローカル、広域、大都市、車両及び産業、リアルタイム、耐遅延などとし得る。ネットワークの例は、例えばイーサネット(登録商標)などのローカルエリアネットワーク、無線LAN、グローバルシステムズフォーモバイルコミュニケーションズ(GSM)、第3世代(3G)、第4世代(4G)、第5世代(5G)、ロングタームエボリューション(LTE)及びこれらに類するものを含むセルラネットワーク、ケーブルTV、衛星TV、及び地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBusを含む車両及び産業などを含む。特定のネットワークは一般に、特定の汎用データポート又はペリフェラルバス(1149)(例えば、コンピュータシステム1100のユニバーサルシリアルバス(USB)ポートなど)に取り付けられる外付けネットワークインタフェースアダプタを必要とし、他のものは一般に、後述のシステムバスへの取り付けによってコンピュータシステム1100のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインタフェース、又はスマートフォンコンピュータシステムへのセルラネットワークインタフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム1100は、他のエンティティと通信することができる。そのような通信は、単方向の受信のみ(例えば、放送TV)であってもよいし、単方向の送信のみ(例えば、特定のCANbus装置に対するCANbus)であってもよいし、あるいは、例えばローカル又は広域デジタルネットワークを用いた他のコンピュータシステムに対しての、双方向であってもよい。特定のプロトコル及びプロトコルスタックが、上述のようにネットワーク及びネットワークインタフェースの各々上で使用され得る。
【0107】
前述のヒューマンインタフェース装置、人間アクセス可能なストレージ装置、及びネットワークインタフェースは、コンピュータシステム1100のコア1140に取り付けられることができる。
【0108】
コア1140は、1つ以上の中央演算処理ユニット(CPU)1141、グラフィックス処理ユニット(GPU)1142、フィールドプログラマブルゲートアレイ(FPGA)1143の形態の特殊なプログラム可能なプロセッシングユニット、特定のタスク用のハードウェアアクセラレータ1144などを含み得る。これらのデバイスは、読み出し専用メモリ(ROM)1145、ランダムアクセスメモリ(RAM)1146、例えば内部のユーザアクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)、及びこれらに類するものなどの内部大容量ストレージ1147と共に、システムバス1148を介して接続され得る。一部のコンピュータシステムにおいて、システムバス1148は、追加のCPU、GPU、及びこれらに類するものによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能にされ得る。周辺装置は、コアのシステムバス1148に直接的に、又はペリフェラルバス1149を介して、のいずれで取り付けられてもよい。ペリフェラルバスのアーキテクチャは、ペリフェラルコンポーネントインターコネクト(PCI)、USB、及びこれらに類するものを含む。
【0109】
CPU1141、GPU1142、FPGA1143、及びアクセラレータ1144は、組み合わさって前述のコンピュータコードを構成することができる特定の命令を実行し得る。そのコンピュータコードは、ROM1145又はRAM1146に格納され得る。RAM1146には過渡的なデータも格納されることができ、永久的なデータは、例えば内部大容量ストレージ1147に格納されることができる。メモリデバイスのいずれかへの高速な記憶及び取り出しが、1つ以上のCPU1141、GPU1142、大容量ストレージ1147、ROM1145、RAM1146、及びこれらに類するものの近くに付随し得るキャッシュメモリの使用によって可能にされ得る。
【0110】
コンピュータ読み取り可能媒体はその上に、様々なコンピュータ実装処理を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的に合わせて特別に設計及び構築されたものであってもよいし、あるいは、それらは、コンピュータソフトウェア技術の当業者にとって周知且つ利用可能な種類のものであってもよい。
【0111】
一例として、限定ではなく、アーキテクチャ1100、特にコア1140、を有するコンピュータシステムは、1つ以上の有形のコンピュータ読み取り可能媒体に具現化されたソフトウェアを(1つ以上の)プロセッサ(CPU、GPU、FPGA、アクセラレータ、及びこれらに類するものを含む)が実行することの結果として機能を提供することができる。そのようなコンピュータ読み取り可能媒体は、例えばコア内部の大容量ストレージ1147又はROM1145などの、非一時的性質のものであるコア1140の特定のストレージ、及び上で紹介したようなユーザアクセス可能な大容量ストレージに関連する媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に格納され、コア1140によって実行されることができる。コンピュータ読み取り可能媒体は、具体的なニーズに従って、1つ以上のメモリデバイス又はチップを含み得る。ソフトウェアは、コア1140及び特にその中のプロセッサ(CPU、GPU、FPGA、及びこれらに類するものを含む)に、RAM1146に格納されるデータ構造を規定すること、及びそのようなデータ構造を、ソフトウェアによって規定されたプロセスに従って変更することを含めて、ここに記載された特定のプロセスを又は特定のプロセスの特定の部分を実行させることができる。加えて、又は代替として、コンピュータシステムは、ここに記載された特定のプロセスを又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はソフトウェアと共に動作することができる回路(例えば、アクセラレータ1144)にて配線された又はその他の方法で具体化されたロジックの結果として、機能を提供してもよい。ソフトウェアへの言及はロジックを含み、また、適当な場合にその逆もまた然りである。コンピュータ読み取り可能媒体への言及は、実行のためのソフトウェアを格納した回路(例えば、集積回路(IC)など)、実行のためのロジックを具体化した回路、又は適当な場合にこれら双方を含み得る。本開示は、ハードウェア及びソフトウェアの好適な組み合わせを含む。
【0112】
この開示は幾つかの例示的な実施形態を記述しているが、開示の範囲に入る変更、置換、及び様々な均等な代替が存在する。従って、理解されることには、当業者は、ここでは明示的に図示されたり説明されたりしていないものの、開示の原理を具体化し、それ故に、その精神及び範囲の中にあるような、数多くのシステム及び方法を考案することができるであろう。