IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許71271518ビット変換コアを用いる主変換のための方法および装置
<>
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図1A
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図1B
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図1C
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図1D
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図2
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図3
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図4
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図5
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図6
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図7
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図8
  • 特許-8ビット変換コアを用いる主変換のための方法および装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-19
(45)【発行日】2022-08-29
(54)【発明の名称】8ビット変換コアを用いる主変換のための方法および装置
(51)【国際特許分類】
   H04N 19/625 20140101AFI20220822BHJP
   H04N 19/46 20140101ALI20220822BHJP
【FI】
H04N19/625
H04N19/46
【請求項の数】 8
(21)【出願番号】P 2020557987
(86)(22)【出願日】2019-11-27
(65)【公表番号】
(43)【公表日】2021-08-12
(86)【国際出願番号】 US2019063526
(87)【国際公開番号】W WO2020117584
(87)【国際公開日】2020-06-11
【審査請求日】2020-10-19
(31)【優先権主張番号】62/704,036
(32)【優先日】2018-12-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/391,935
(32)【優先日】2019-04-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】鉢呂 健
(56)【参考文献】
【文献】国際公開第2017/195555(WO,A1)
【文献】ZHAO, Xin et al.,CE6: On 8-bit primary transform core (Test 6.1.3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, 3-12 Oct. 2018, [JVET-L0285-r1],JVET-L0285 (version 2),ITU-T,2018年10月01日,<URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0285-v2.zip>: JVET-L0285r1.docx: pp. 1-17
【文献】BROSS, Benjamin et al.,Versatile Video Coding (Draft 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, 3-12 Oct. 2018, [JVET-L1001-v4],JVET-L1001 (version 4),ITU-T,2018年12月03日,<URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1001-v4.zip>: pp. 38-40, 63-65, 135-143
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
少なくとも一つのプロセッサによって実行される、デコードの方法であって、当該方法は
コードのためのビデオ・シーケンスに関する情報を受領し;
該ビデオ・シーケンスのデコードのために、第一のサイズ型の第一の変換コア行列を使うか第二のサイズ型の第二の変換コア行列を使うかを決定し;
前記決定に基づいて、決定された第一の変換コア行列または第二の変換コア行列を使って前記ビデオ・シーケンスがデコードされるようにする情報を送信することを含
前記第一の変換コア行列は、次の行列:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
を使って構築される16点DST-7であり、ここで、
{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={8,17,25,33,40,48,55,62,68,73,77,81,85,87,88,88}であり、
前記第二の変換コア行列は、次の行列:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
を使って構築される16点DCT-8であり、ここで、
{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={88,88,87,85,81,77,73,68,62,55,48,40,33,25,17,8}である、
方法。
【請求項2】
前記第一の変換コア行列が前記第二の変換コア行列と同じ数字をもち、それらの数字は逆順である、請求項に記載の方法。
【請求項3】
ビデオ・シーケンスのデコードのための装置であって、当該装置は:
コンピュータ・プログラム・コードを記憶するよう構成された少なくとも一つのメモリと;
前記少なくとも一つのメモリにアクセスして、前記コンピュータ・プログラム・コードに従って動作するよう構成された少なくとも一つのプロセッサとを含み、前記コンピュータ・プログラム・コードは:
前記少なくとも一つのプロセッサに、請求項1または2に記載の方法を実行させるためのものである、
装置。
【請求項4】
命令を記憶している非一時的なコンピュータ可読記憶媒体であって、前記命令は、少なくとも一つのプロセッサに:
請求項1または2に記載の方法を実行させるためのものである、
非一時的なコンピュータ可読記憶媒体。
【請求項5】
少なくとも一つのプロセッサによって実行される、エンコードの方法であって、当該方法は:
エンコードのためのビデオ・シーケンスに関する情報を受領し;
該ビデオ・シーケンスのエンコードのために、第一のサイズ型の第一の変換コア行列を使うか第二のサイズ型の第二の変換コア行列を使うかを決定し;
前記決定に基づいて、決定された第一の変換コア行列または第二の変換コア行列を使って前記ビデオ・シーケンスがエンコードされるようにする情報を送信することを含み、
前記第一の変換コア行列は、次の行列:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
を使って構築される16点DST-7であり、ここで、
{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={8,17,25,33,40,48,55,62,68,73,77,81,85,87,88,88}であり、
前記第二の変換コア行列は、次の行列:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
を使って構築される16点DCT-8であり、ここで、
{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={88,88,87,85,81,77,73,68,62,55,48,40,33,25,17,8}である、
方法。
【請求項6】
前記第一の変換コア行列が前記第二の変換コア行列と同じ数字をもち、それらの数字は逆順である、請求項に記載の方法。
【請求項7】
ビデオ・シーケンスのエンコードのための装置であって、当該装置は:
コンピュータ・プログラム・コードを記憶するよう構成された少なくとも一つのメモリと;
前記少なくとも一つのメモリにアクセスして、前記コンピュータ・プログラム・コードに従って動作するよう構成された少なくとも一つのプロセッサとを含み、前記コンピュータ・プログラム・コードは:
前記少なくとも一つのプロセッサに、請求項またはに記載の方法を実行させるためのものである、
装置。
【請求項8】
命令を記憶している非一時的なコンピュータ可読記憶媒体であって、前記命令は、少なくとも一つのプロセッサに:
請求項またはに記載の方法を実行させるためのものである、
非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は2018年12月6日に出願された米国仮特許出願第62/704036号および2019年4月23日に出願された米国出願第16/391935号の優先権を主張するものである。これらの出願の内容はここに参照によってその全体において組み込まれる。
【0002】
1.分野
実施形態と整合する方法および装置は、ビデオ符号化に、より詳細には8ビット変換コアを用いた主変換(primary transform)のための方法および装置に関する。より小さなDCT-2の変換コア行列は、より大きなDCT-2の一部である。
【背景技術】
【0003】
2.関連技術の説明
HEVCでは、主変換は4点、8点、16点および32点のDCT-2であってもよく、変換コア行列は8ビット整数を使って表現される、すなわち8ビット変換コアである。
【発明の概要】
【課題を解決するための手段】
【0004】
諸実施形態によれば、デコードまたはエンコードの方法が、少なくとも一つのプロセッサによって実行され、エンコードまたはデコードのためのビデオ・シーケンスに関する情報を受領し;該ビデオ・シーケンスのエンコードまたはデコードのために、第一のサイズ型の第一の変換コア行列を使うか第二のサイズ型の第二の変換コア行列を使うかを決定し;該決定に基づいて、決定された第一の変換コア行列または第二の変換コア行列を使って前記ビデオ・シーケンスがエンコードまたはデコードされるようにする情報を送信することを含む。
【0005】
諸実施形態によれば、ビデオ・シーケンスのデコードまたはエンコードのための装置が、コンピュータ・プログラム・コードを記憶するよう構成された少なくとも一つのメモリと、前記少なくとも一つのメモリにアクセスして、前記コンピュータ・プログラム・コードに従って動作するよう構成された少なくとも一つのプロセッサとを含む。前記コンピュータ・プログラム・コードは、前記少なくとも一つのプロセッサに、エンコードまたはデコードのためのビデオ・シーケンスに関する情報を受領させるよう構成された受領コードを含む。前記コンピュータ・プログラム・コードはさらに、前記少なくとも一つのプロセッサに、前記ビデオ・シーケンスのエンコードまたはデコードのために、第一のサイズ型の第一の変換コア行列を使うか第二のサイズ型の第二の変換コア行列を使うかを決定させるよう構成された決定コードを含む。前記コンピュータ・プログラム・コードはさらに、前記少なくとも一つのプロセッサに、前記決定に基づいて、決定された第一の変換コア行列または第二の変換コア行列を使って前記ビデオ・シーケンスがエンコードまたはデコードされるようにする情報を送信させるよう構成された送信コードを含む。
【0006】
諸実施形態によれば、非一時的なコンピュータ可読記憶媒体が、少なくとも一つのプロセッサに、エンコードまたはデコードのためのビデオ・シーケンスに関する情報を受領させる命令を記憶している。前記命令はさらに、前記少なくとも一つのプロセッサに、前記ビデオ・シーケンスのエンコードまたはデコードのために、第一のサイズ型の第一の変換コア行列を使うか第二のサイズ型の第二の変換コア行列を使うかを決定させる。前記命令はさらに、前記少なくとも一つのプロセッサに、前記決定に基づいて、決定された第一の変換コア行列または第二の変換コア行列を使って前記ビデオ・シーケンスがエンコードまたはデコードされるようにする情報を送信させる。
【図面の簡単な説明】
【0007】
図1A】例示的な変換コア行列を示す図である。
図1B】例示的な変換コア行列を示す図である。
図1C】例示的な変換コア行列を示す図である。
図1D】例示的な変換コア行列を示す図である。
【0008】
図2】ある実施形態による通信システムの簡略化されたブロック図である。
【0009】
図3】ある実施形態による、ストリーム環境におけるビデオ・エンコーダおよびビデオ・デコーダの配置の図である。
【0010】
図4】ある実施形態によるビデオ・デコーダの機能的なブロック図である。
【0011】
図5】ある実施形態によるビデオ・エンコーダの機能的なブロック図である。
【0012】
図6】ある実施形態によるビデオ・シーケンスのエンコードまたはデコード方法を示すフローチャートである。
【0013】
図7】ある実施形態による例示的な変換コア行列を示す図である。
【0014】
図8】ある実施形態によるビデオ・シーケンスのデコードまたはエンコードのための装置の簡略化されたブロック図である。
【0015】
図9】諸実施形態を実装するのに好適なコンピュータ・システムの図である。
【発明を実施するための形態】
【0016】
HEVCでは、主変換は4点、8点、16点および32点のDCT-2であり、変換コア行列は8ビット整数を使って表現される、すなわち8ビット変換コアである。図1Aないし1Dに示されるように、より小さなDCT-2の変換コア行列は、より大きなDCT-2の一部である。図1Aは、4×4変換を示す。図1Bは8×8変換を示す。図1Cは、16×16変換を示す。図1Dは32×32変換を示す。
【0017】
図1Aないし1Dに示されるように、DCT-2コアは対称/反対称特性を示す。よって、演算(乗算、加減、シフト)数を減らすためにいわゆる「部分バタフライ(partial butterfly)」実装がサポートされ、部分バタフライを使って、行列乗算の同一の結果が得られる。
【0018】
VVCでは、HEVCと同じ4点、8点、16点および32点DCT-2変換のほかに、追加的な2点および64点DCT-2も含まれてもよい。
【0019】
VVCにおいて定義されている64点DCT-2コアは、下記のような64×64行列として示される:
{
{aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa}
{bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,-ck,-cj,-ci,-ch,-cg,-cf,-ce,-cd,-cc,-cb,-ca,-bz,-by,-bx,-bw,-bv,-bu,-bt,-bs,-br,-bq,-bp,-bo,-bn,-bm,-bl,-bk,-bj,-bi,-bh,-bg,-bf}
{ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,-be,-bd,-bc,-bb,-ba,-az,-ay,-ax,-aw,-av,-au,-at,-as,-ar,-aq,-ap,-ap,-aq,-ar,-as,-at,-au,-av,-aw,-ax,-ay,-az,-ba,-bb,-bc,-bd,-be,be,bd,bc,bb,ba,az,ay,ax,aw,av,au,at,as,ar,aq,ap}
{bg,bj,bm,bp,bs,bv,by,cb,ce,ch,ck,-ci,-cf,-cc,-bz,-bw,-bt,-bq,-bn,-bk,-bh,-bf,-bi,-bl,-bo,-br,-bu,-bx,-ca,-cd,-cg,-cj,cj,cg,cd,ca,bx,bu,br,bo,bl,bi,bf,bh,bk,bn,bq,bt,bw,bz,cc,cf,ci,-ck,-ch,-ce,-cb,-by,-bv,-bs,-bp,-bm,-bj,-bg}
{ah,ai,aj,ak,al,am,an,ao,-ao,-an,-am,-al,-ak,-aj,-ai,-ah,-ah,-ai,-aj,-ak,-al,-am,-an,-ao,ao,an,am,al,ak,aj,ai,ah,ah,ai,aj,ak,al,am,an,ao,-ao,-an,-am,-al,-ak,-aj,-ai,-ah,-ah,-ai,-aj,-ak,-al,-am,-an,-ao,ao,an,am,al,ak,aj,ai,ah}
{bh,bm,br,bw,cb,cg,-ck,-cf,-ca,-bv,-bq,-bl,-bg,-bi,-bn,-bs,-bx,-cc,-ch,cj,ce,bz,bu,bp,bk,bf,bj,bo,bt,by,cd,ci,-ci,-cd,-by,-bt,-bo,-bj,-bf,-bk,-bp,-bu,-bz,-ce,-cj,ch,cc,bx,bs,bn,bi,bg,bl,bq,bv,ca,cf,ck,-cg,-cb,-bw,-br,-bm,-bh}
{aq,at,aw,az,bc,-be,-bb,-ay,-av,-as,-ap,-ar,-au,-ax,-ba,-bd,bd,ba,ax,au,ar,ap,as,av,ay,bb,be,-bc,-az,-aw,-at,-aq,-aq,-at,-aw,-az,-bc,be,bb,ay,av,as,ap,ar,au,ax,ba,bd,-bd,-ba,-ax,-au,-ar,-ap,-as,-av,-ay,-bb,-be,bc,az,aw,at,aq}
{bi,bp,bw,cd,ck,-ce,-bx,-bq,-bj,-bh,-bo,-bv,-cc,-cj,cf,by,br,bk,bg,bn,bu,cb,ci,-cg,-bz,-bs,-bl,-bf,-bm,-bt,-ca,-ch,ch,ca,bt,bm,bf,bl,bs,bz,cg,-ci,-cb,-bu,-bn,-bg,-bk,-br,-by,-cf,cj,cc,bv,bo,bh,bj,bq,bx,ce,-ck,-cd,-bw,-bp,-bi}
{ad,ae,af,ag,-ag,-af,-ae,-ad,-ad,-ae,-af,-ag,ag,af,ae,ad,ad,ae,af,ag,-ag,-af,-ae,-ad,-ad,-ae,-af,-ag,ag,af,ae,ad,ad,ae,af,ag,-ag,-af,-ae,-ad,-ad,-ae,-af,-ag,ag,af,ae,ad,ad,ae,af,ag,-ag,-af,-ae,-ad,-ad,-ae,-af,-ag,ag,af,ae,ad}
{bj,bs,cb,ck,-cc,-bt,-bk,-bi,-br,-ca,-cj,cd,bu,bl,bh,bq,bz,ci,-ce,-bv,-bm,-bg,-bp,-by,-ch,cf,bw,bn,bf,bo,bx,cg,-cg,-bx,-bo,-bf,-bn,-bw,-cf,ch,by,bp,bg,bm,bv,ce,-ci,-bz,-bq,-bh,-bl,-bu,-cd,cj,ca,br,bi,bk,bt,cc,-ck,-cb,-bs,-bj}
{ar,aw,bb,-bd,-ay,-at,-ap,-au,-az,-be,ba,av,aq,as,ax,bc,-bc,-ax,-as,-aq,-av,-ba,be,az,au,ap,at,ay,bd,-bb,-aw,-ar,-ar,-aw,-bb,bd,ay,at,ap,au,az,be,-ba,-av,-aq,-as,-ax,-bc,bc,ax,as,aq,av,ba,-be,-az,-au,-ap,-at,-ay,-bd,bb,aw,ar}
{bk,bv,cg,-ce,-bt,-bi,-bm,-bx,-ci,cc,br,bg,bo,bz,ck,-ca,-bp,-bf,-bq,-cb,cj,by,bn,bh,bs,cd,-ch,-bw,-bl,-bj,-bu,-cf,cf,bu,bj,bl,bw,ch,-cd,-bs,-bh,-bn,-by,-cj,cb,bq,bf,bp,ca,-ck,-bz,-bo,-bg,-br,-cc,ci,bx,bm,bi,bt,ce,-cg,-bv,-bk}
{ai,al,ao,-am,-aj,-ah,-ak,-an,an,ak,ah,aj,am,-ao,-al,-ai,-ai,-al,-ao,am,aj,ah,ak,an,-an,-ak,-ah,-aj,-am,ao,al,ai,ai,al,ao,-am,-aj,-ah,-ak,-an,an,ak,ah,aj,am,-ao,-al,-ai,-ai,-al,-ao,am,aj,ah,ak,an,-an,-ak,-ah,-aj,-am,ao,al,ai}
{bl,by,-ck,-bx,-bk,-bm,-bz,cj,bw,bj,bn,ca,-ci,-bv,-bi,-bo,-cb,ch,bu,bh,bp,cc,-cg,-bt,-bg,-bq,-cd,cf,bs,bf,br,ce,-ce,-br,-bf,-bs,-cf,cd,bq,bg,bt,cg,-cc,-bp,-bh,-bu,-ch,cb,bo,bi,bv,ci,-ca,-bn,-bj,-bw,-cj,bz,bm,bk,bx,ck,-by,-bl}
{as,az,-bd,-aw,-ap,-av,-bc,ba,at,ar,ay,-be,-ax,-aq,-au,-bb,bb,au,aq,ax,be,-ay,-ar,-at,-ba,bc,av,ap,aw,bd,-az,-as,-as,-az,bd,aw,ap,av,bc,-ba,-at,-ar,-ay,be,ax,aq,au,bb,-bb,-au,-aq,-ax,-be,ay,ar,at,ba,-bc,-av,-ap,-aw,-bd,az,as}
{bm,cb,-cf,-bq,-bi,-bx,cj,bu,bf,bt,ci,-by,-bj,-bp,-ce,cc,bn,bl,ca,-cg,-br,-bh,-bw,ck,bv,bg,bs,ch,-bz,-bk,-bo,-cd,cd,bo,bk,bz,-ch,-bs,-bg,-bv,-ck,bw,bh,br,cg,-ca,-bl,-bn,-cc,ce,bp,bj,by,-ci,-bt,-bf,-bu,-cj,bx,bi,bq,cf,-cb,-bm}
{ab,ac,-ac,-ab,-ab,-ac,ac,ab,ab,ac,-ac,-ab,-ab,-ac,ac,ab,ab,ac,-ac,-ab,-ab,-ac,ac,ab,ab,ac,-ac,-ab,-ab,-ac,ac,ab,ab,ac,-ac,-ab,-ab,-ac,ac,ab,ab,ac,-ac,-ab,-ab,-ac,ac,ab,ab,ac,-ac,-ab,-ab,-ac,ac,ab,ab,ac,-ac,-ab,-ab,-ac,ac,ab}
{bn,ce,-ca,-bj,-br,-ci,bw,bf,bv,-cj,-bs,-bi,-bz,cf,bo,bm,cd,-cb,-bk,-bq,-ch,bx,bg,bu,-ck,-bt,-bh,-by,cg,bp,bl,cc,-cc,-bl,-bp,-cg,by,bh,bt,ck,-bu,-bg,-bx,ch,bq,bk,cb,-cd,-bm,-bo,-cf,bz,bi,bs,cj,-bv,-bf,-bw,ci,br,bj,ca,-ce,-bn}
{at,bc,-ay,-ap,-ax,bd,au,as,bb,-az,-aq,-aw,be,av,ar,ba,-ba,-ar,-av,-be,aw,aq,az,-bb,-as,-au,-bd,ax,ap,ay,-bc,-at,-at,-bc,ay,ap,ax,-bd,-au,-as,-bb,az,aq,aw,-be,-av,-ar,-ba,ba,ar,av,be,-aw,-aq,-az,bb,as,au,bd,-ax,-ap,-ay,bc,at}
{bo,ch,-bv,-bh,-ca,cc,bj,bt,-cj,-bq,-bm,-cf,bx,bf,by,-ce,-bl,-br,-ck,bs,bk,cd,-bz,-bg,-bw,cg,bn,bp,ci,-bu,-bi,-cb,cb,bi,bu,-ci,-bp,-bn,-cg,bw,bg,bz,-cd,-bk,-bs,ck,br,bl,ce,-by,-bf,-bx,cf,bm,bq,cj,-bt,-bj,-cc,ca,bh,bv,-ch,-bo}
{aj,ao,-ak,-ai,-an,al,ah,am,-am,-ah,-al,an,ai,ak,-ao,-aj,-aj,-ao,ak,ai,an,-al,-ah,-am,am,ah,al,-an,-ai,-ak,ao,aj,aj,ao,-ak,-ai,-an,al,ah,am,-am,-ah,-al,an,ai,ak,-ao,-aj,-aj,-ao,ak,ai,an,-al,-ah,-am,am,ah,al,-an,-ai,-ak,ao,aj}
{bp,ck,-bq,-bo,-cj,br,bn,ci,-bs,-bm,-ch,bt,bl,cg,-bu,-bk,-cf,bv,bj,ce,-bw,-bi,-cd,bx,bh,cc,-by,-bg,-cb,bz,bf,ca,-ca,-bf,-bz,cb,bg,by,-cc,-bh,-bx,cd,bi,bw,-ce,-bj,-bv,cf,bk,bu,-cg,-bl,-bt,ch,bm,bs,-ci,-bn,-br,cj,bo,bq,-ck,-bp}
{au,-be,-at,-av,bd,as,aw,-bc,-ar,-ax,bb,aq,ay,-ba,-ap,-az,az,ap,ba,-ay,-aq,-bb,ax,ar,bc,-aw,-as,-bd,av,at,be,-au,-au,be,at,av,-bd,-as,-aw,bc,ar,ax,-bb,-aq,-ay,ba,ap,az,-az,-ap,-ba,ay,aq,bb,-ax,-ar,-bc,aw,as,bd,-av,-at,-be,au}
{bq,-ci,-bl,-bv,cd,bg,ca,-by,-bi,-cf,bt,bn,ck,-bo,-bs,cg,bj,bx,-cb,-bf,-cc,bw,bk,ch,-br,-bp,cj,bm,bu,-ce,-bh,-bz,bz,bh,ce,-bu,-bm,-cj,bp,br,-ch,-bk,-bw,cc,bf,cb,-bx,-bj,-cg,bs,bo,-ck,-bn,-bt,cf,bi,by,-ca,-bg,-cd,bv,bl,ci,-bq}
{ae,-ag,-ad,-af,af,ad,ag,-ae,-ae,ag,ad,af,-af,-ad,-ag,ae,ae,-ag,-ad,-af,af,ad,ag,-ae,-ae,ag,ad,af,-af,-ad,-ag,ae,ae,-ag,-ad,-af,af,ad,ag,-ae,-ae,ag,ad,af,-af,-ad,-ag,ae,ae,-ag,-ad,-af,af,ad,ag,-ae,-ae,ag,ad,af,-af,-ad,-ag,ae}
{br,-cf,-bg,-cc,bu,bo,-ci,-bj,-bz,bx,bl,ck,-bm,-bw,ca,bi,ch,-bp,-bt,cd,bf,ce,-bs,-bq,cg,bh,cb,-bv,-bn,cj,bk,by,-by,-bk,-cj,bn,bv,-cb,-bh,-cg,bq,bs,-ce,-bf,-cd,bt,bp,-ch,-bi,-ca,bw,bm,-ck,-bl,-bx,bz,bj,ci,-bo,-bu,cc,bg,cf,-br}
{av,-bb,-ap,-bc,au,aw,-ba,-aq,-bd,at,ax,-az,-ar,-be,as,ay,-ay,-as,be,ar,az,-ax,-at,bd,aq,ba,-aw,-au,bc,ap,bb,-av,-av,bb,ap,bc,-au,-aw,ba,aq,bd,-at,-ax,az,ar,be,-as,-ay,ay,as,-be,-ar,-az,ax,at,-bd,-aq,-ba,aw,au,-bc,-ap,-bb,av}
{bs,-cc,-bi,-cj,bl,bz,-bv,-bp,cf,bf,cg,-bo,-bw,by,bm,-ci,-bh,-cd,br,bt,-cb,-bj,-ck,bk,ca,-bu,-bq,ce,bg,ch,-bn,-bx,bx,bn,-ch,-bg,-ce,bq,bu,-ca,-bk,ck,bj,cb,-bt,-br,cd,bh,ci,-bm,-by,bw,bo,-cg,-bf,-cf,bp,bv,-bz,-bl,cj,bi,cc,-bs}
{ak,-am,-ai,ao,ah,an,-aj,-al,al,aj,-an,-ah,-ao,ai,am,-ak,-ak,am,ai,-ao,-ah,-an,aj,al,-al,-aj,an,ah,ao,-ai,-am,ak,ak,-am,-ai,ao,ah,an,-aj,-al,al,aj,-an,-ah,-ao,ai,am,-ak,-ak,am,ai,-ao,-ah,-an,aj,al,-al,-aj,an,ah,ao,-ai,-am,ak}
{bt,-bz,-bn,cf,bh,ck,-bi,-ce,bo,by,-bu,-bs,ca,bm,-cg,-bg,-cj,bj,cd,-bp,-bx,bv,br,-cb,-bl,ch,bf,ci,-bk,-cc,bq,bw,-bw,-bq,cc,bk,-ci,-bf,-ch,bl,cb,-br,-bv,bx,bp,-cd,-bj,cj,bg,cg,-bm,-ca,bs,bu,-by,-bo,ce,bi,-ck,-bh,-cf,bn,bz,-bt}
{aw,-ay,-au,ba,as,-bc,-aq,be,ap,bd,-ar,-bb,at,az,-av,-ax,ax,av,-az,-at,bb,ar,-bd,-ap,-be,aq,bc,-as,-ba,au,ay,-aw,-aw,ay,au,-ba,-as,bc,aq,-be,-ap,-bd,ar,bb,-at,-az,av,ax,-ax,-av,az,at,-bb,-ar,bd,ap,be,-aq,-bc,as,ba,-au,-ay,aw}
{bu,-bw,-bs,by,bq,-ca,-bo,cc,bm,-ce,-bk,cg,bi,-ci,-bg,ck,bf,cj,-bh,-ch,bj,cf,-bl,-cd,bn,cb,-bp,-bz,br,bx,-bt,-bv,bv,bt,-bx,-br,bz,bp,-cb,-bn,cd,bl,-cf,-bj,ch,bh,-cj,-bf,-ck,bg,ci,-bi,-cg,bk,ce,-bm,-cc,bo,ca,-bq,-by,bs,bw,-bu}
{aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa,aa,-aa,-aa,aa}
{bv,-bt,-bx,br,bz,-bp,-cb,bn,cd,-bl,-cf,bj,ch,-bh,-cj,bf,-ck,-bg,ci,bi,-cg,-bk,ce,bm,-cc,-bo,ca,bq,-by,-bs,bw,bu,-bu,-bw,bs,by,-bq,-ca,bo,cc,-bm,-ce,bk,cg,-bi,-ci,bg,ck,-bf,cj,bh,-ch,-bj,cf,bl,-cd,-bn,cb,bp,-bz,-br,bx,bt,-bv}
{ax,-av,-az,at,bb,-ar,-bd,ap,-be,-aq,bc,as,-ba,-au,ay,aw,-aw,-ay,au,ba,-as,-bc,aq,be,-ap,bd,ar,-bb,-at,az,av,-ax,-ax,av,az,-at,-bb,ar,bd,-ap,be,aq,-bc,-as,ba,au,-ay,-aw,aw,ay,-au,-ba,as,bc,-aq,-be,ap,-bd,-ar,bb,at,-az,-av,ax}
{bw,-bq,-cc,bk,ci,-bf,ch,bl,-cb,-br,bv,bx,-bp,-cd,bj,cj,-bg,cg,bm,-ca,-bs,bu,by,-bo,-ce,bi,ck,-bh,cf,bn,-bz,-bt,bt,bz,-bn,-cf,bh,-ck,-bi,ce,bo,-by,-bu,bs,ca,-bm,-cg,bg,-cj,-bj,cd,bp,-bx,-bv,br,cb,-bl,-ch,bf,-ci,-bk,cc,bq,-bw}
{al,-aj,-an,ah,-ao,-ai,am,ak,-ak,-am,ai,ao,-ah,an,aj,-al,-al,aj,an,-ah,ao,ai,-am,-ak,ak,am,-ai,-ao,ah,-an,-aj,al,al,-aj,-an,ah,-ao,-ai,am,ak,-ak,-am,ai,ao,-ah,an,aj,-al,-al,aj,an,-ah,ao,ai,-am,-ak,ak,am,-ai,-ao,ah,-an,-aj,al}
{bx,-bn,-ch,bg,-ce,-bq,bu,ca,-bk,-ck,bj,-cb,-bt,br,cd,-bh,ci,bm,-by,-bw,bo,cg,-bf,cf,bp,-bv,-bz,bl,cj,-bi,cc,bs,-bs,-cc,bi,-cj,-bl,bz,bv,-bp,-cf,bf,-cg,-bo,bw,by,-bm,-ci,bh,-cd,-br,bt,cb,-bj,ck,bk,-ca,-bu,bq,ce,-bg,ch,bn,-bx}
{ay,-as,-be,ar,-az,-ax,at,bd,-aq,ba,aw,-au,-bc,ap,-bb,-av,av,bb,-ap,bc,au,-aw,-ba,aq,-bd,-at,ax,az,-ar,be,as,-ay,-ay,as,be,-ar,az,ax,-at,-bd,aq,-ba,-aw,au,bc,-ap,bb,av,-av,-bb,ap,-bc,-au,aw,ba,-aq,bd,at,-ax,-az,ar,-be,-as,ay}
{by,-bk,cj,bn,-bv,-cb,bh,-cg,-bq,bs,ce,-bf,cd,bt,-bp,-ch,bi,-ca,-bw,bm,ck,-bl,bx,bz,-bj,ci,bo,-bu,-cc,bg,-cf,-br,br,cf,-bg,cc,bu,-bo,-ci,bj,-bz,-bx,bl,-ck,-bm,bw,ca,-bi,ch,bp,-bt,-cd,bf,-ce,-bs,bq,cg,-bh,cb,bv,-bn,-cj,bk,-by}
{af,-ad,ag,ae,-ae,-ag,ad,-af,-af,ad,-ag,-ae,ae,ag,-ad,af,af,-ad,ag,ae,-ae,-ag,ad,-af,-af,ad,-ag,-ae,ae,ag,-ad,af,af,-ad,ag,ae,-ae,-ag,ad,-af,-af,ad,-ag,-ae,ae,ag,-ad,af,af,-ad,ag,ae,-ae,-ag,ad,-af,-af,ad,-ag,-ae,ae,ag,-ad,af}
{bz,-bh,ce,bu,-bm,cj,bp,-br,-ch,bk,-bw,-cc,bf,-cb,-bx,bj,-cg,-bs,bo,ck,-bn,bt,cf,-bi,by,ca,-bg,cd,bv,-bl,ci,bq,-bq,-ci,bl,-bv,-cd,bg,-ca,-by,bi,-cf,-bt,bn,-ck,-bo,bs,cg,-bj,bx,cb,-bf,cc,bw,-bk,ch,br,-bp,-cj,bm,-bu,-ce,bh,-bz}
{az,-ap,ba,ay,-aq,bb,ax,-ar,bc,aw,-as,bd,av,-at,be,au,-au,-be,at,-av,-bd,as,-aw,-bc,ar,-ax,-bb,aq,-ay,-ba,ap,-az,-az,ap,-ba,-ay,aq,-bb,-ax,ar,-bc,-aw,as,-bd,-av,at,-be,-au,au,be,-at,av,bd,-as,aw,bc,-ar,ax,bb,-aq,ay,ba,-ap,az}
{ca,-bf,bz,cb,-bg,by,cc,-bh,bx,cd,-bi,bw,ce,-bj,bv,cf,-bk,bu,cg,-bl,bt,ch,-bm,bs,ci,-bn,br,cj,-bo,bq,ck,-bp,bp,-ck,-bq,bo,-cj,-br,bn,-ci,-bs,bm,-ch,-bt,bl,-cg,-bu,bk,-cf,-bv,bj,-ce,-bw,bi,-cd,-bx,bh,-cc,-by,bg,-cb,-bz,bf,-ca}
{am,-ah,al,an,-ai,ak,ao,-aj,aj,-ao,-ak,ai,-an,-al,ah,-am,-am,ah,-al,-an,ai,-ak,-ao,aj,-aj,ao,ak,-ai,an,al,-ah,am,am,-ah,al,an,-ai,ak,ao,-aj,aj,-ao,-ak,ai,-an,-al,ah,-am,-am,ah,-al,-an,ai,-ak,-ao,aj,-aj,ao,ak,-ai,an,al,-ah,am}
{cb,-bi,bu,ci,-bp,bn,-cg,-bw,bg,-bz,-cd,bk,-bs,-ck,br,-bl,ce,by,-bf,bx,cf,-bm,bq,-cj,-bt,bj,-cc,-ca,bh,-bv,-ch,bo,-bo,ch,bv,-bh,ca,cc,-bj,bt,cj,-bq,bm,-cf,-bx,bf,-by,-ce,bl,-br,ck,bs,-bk,cd,bz,-bg,bw,cg,-bn,bp,-ci,-bu,bi,-cb}
{ba,-ar,av,-be,-aw,aq,-az,-bb,as,-au,bd,ax,-ap,ay,bc,-at,at,-bc,-ay,ap,-ax,-bd,au,-as,bb,az,-aq,aw,be,-av,ar,-ba,-ba,ar,-av,be,aw,-aq,az,bb,-as,au,-bd,-ax,ap,-ay,-bc,at,-at,bc,ay,-ap,ax,bd,-au,as,-bb,-az,aq,-aw,-be,av,-ar,ba}
{cc,-bl,bp,-cg,-by,bh,-bt,ck,bu,-bg,bx,ch,-bq,bk,-cb,-cd,bm,-bo,cf,bz,-bi,bs,-cj,-bv,bf,-bw,-ci,br,-bj,ca,ce,-bn,bn,-ce,-ca,bj,-br,ci,bw,-bf,bv,cj,-bs,bi,-bz,-cf,bo,-bm,cd,cb,-bk,bq,-ch,-bx,bg,-bu,-ck,bt,-bh,by,cg,-bp,bl,-cc}
{ac,-ab,ab,-ac,-ac,ab,-ab,ac,ac,-ab,ab,-ac,-ac,ab,-ab,ac,ac,-ab,ab,-ac,-ac,ab,-ab,ac,ac,-ab,ab,-ac,-ac,ab,-ab,ac,ac,-ab,ab,-ac,-ac,ab,-ab,ac,ac,-ab,ab,-ac,-ac,ab,-ab,ac,ac,-ab,ab,-ac,-ac,ab,-ab,ac,ac,-ab,ab,-ac,-ac,ab,-ab,ac}
{cd,-bo,bk,-bz,-ch,bs,-bg,bv,-ck,-bw,bh,-br,cg,ca,-bl,bn,-cc,-ce,bp,-bj,by,ci,-bt,bf,-bu,cj,bx,-bi,bq,-cf,-cb,bm,-bm,cb,cf,-bq,bi,-bx,-cj,bu,-bf,bt,-ci,-by,bj,-bp,ce,cc,-bn,bl,-ca,-cg,br,-bh,bw,ck,-bv,bg,-bs,ch,bz,-bk,bo,-cd}
{bb,-au,aq,-ax,be,ay,-ar,at,-ba,-bc,av,-ap,aw,-bd,-az,as,-as,az,bd,-aw,ap,-av,bc,ba,-at,ar,-ay,-be,ax,-aq,au,-bb,-bb,au,-aq,ax,-be,-ay,ar,-at,ba,bc,-av,ap,-aw,bd,az,-as,as,-az,-bd,aw,-ap,av,-bc,-ba,at,-ar,ay,be,-ax,aq,-au,bb}
{ce,-br,bf,-bs,cf,cd,-bq,bg,-bt,cg,cc,-bp,bh,-bu,ch,cb,-bo,bi,-bv,ci,ca,-bn,bj,-bw,cj,bz,-bm,bk,-bx,ck,by,-bl,bl,-by,-ck,bx,-bk,bm,-bz,-cj,bw,-bj,bn,-ca,-ci,bv,-bi,bo,-cb,-ch,bu,-bh,bp,-cc,-cg,bt,-bg,bq,-cd,-cf,bs,-bf,br,-ce}
{an,-ak,ah,-aj,am,ao,-al,ai,-ai,al,-ao,-am,aj,-ah,ak,-an,-an,ak,-ah,aj,-am,-ao,al,-ai,ai,-al,ao,am,-aj,ah,-ak,an,an,-ak,ah,-aj,am,ao,-al,ai,-ai,al,-ao,-am,aj,-ah,ak,-an,-an,ak,-ah,aj,-am,-ao,al,-ai,ai,-al,ao,am,-aj,ah,-ak,an}
{cf,-bu,bj,-bl,bw,-ch,-cd,bs,-bh,bn,-by,cj,cb,-bq,bf,-bp,ca,ck,-bz,bo,-bg,br,-cc,-ci,bx,-bm,bi,-bt,ce,cg,-bv,bk,-bk,bv,-cg,-ce,bt,-bi,bm,-bx,ci,cc,-br,bg,-bo,bz,-ck,-ca,bp,-bf,bq,-cb,-cj,by,-bn,bh,-bs,cd,ch,-bw,bl,-bj,bu,-cf}
{bc,-ax,as,-aq,av,-ba,-be,az,-au,ap,-at,ay,-bd,-bb,aw,-ar,ar,-aw,bb,bd,-ay,at,-ap,au,-az,be,ba,-av,aq,-as,ax,-bc,-bc,ax,-as,aq,-av,ba,be,-az,au,-ap,at,-ay,bd,bb,-aw,ar,-ar,aw,-bb,-bd,ay,-at,ap,-au,az,-be,-ba,av,-aq,as,-ax,bc}
{cg,-bx,bo,-bf,bn,-bw,cf,ch,-by,bp,-bg,bm,-bv,ce,ci,-bz,bq,-bh,bl,-bu,cd,cj,-ca,br,-bi,bk,-bt,cc,ck,-cb,bs,-bj,bj,-bs,cb,-ck,-cc,bt,-bk,bi,-br,ca,-cj,-cd,bu,-bl,bh,-bq,bz,-ci,-ce,bv,-bm,bg,-bp,by,-ch,-cf,bw,-bn,bf,-bo,bx,-cg}
{ag,-af,ae,-ad,ad,-ae,af,-ag,-ag,af,-ae,ad,-ad,ae,-af,ag,ag,-af,ae,-ad,ad,-ae,af,-ag,-ag,af,-ae,ad,-ad,ae,-af,ag,ag,-af,ae,-ad,ad,-ae,af,-ag,-ag,af,-ae,ad,-ad,ae,-af,ag,ag,-af,ae,-ad,ad,-ae,af,-ag,-ag,af,-ae,ad,-ad,ae,-af,ag}
{ch,-ca,bt,-bm,bf,-bl,bs,-bz,cg,ci,-cb,bu,-bn,bg,-bk,br,-by,cf,cj,-cc,bv,-bo,bh,-bj,bq,-bx,ce,ck,-cd,bw,-bp,bi,-bi,bp,-bw,cd,-ck,-ce,bx,-bq,bj,-bh,bo,-bv,cc,-cj,-cf,by,-br,bk,-bg,bn,-bu,cb,-ci,-cg,bz,-bs,bl,-bf,bm,-bt,ca,-ch}
{bd,-ba,ax,-au,ar,-ap,as,-av,ay,-bb,be,bc,-az,aw,-at,aq,-aq,at,-aw,az,-bc,-be,bb,-ay,av,-as,ap,-ar,au,-ax,ba,-bd,-bd,ba,-ax,au,-ar,ap,-as,av,-ay,bb,-be,-bc,az,-aw,at,-aq,aq,-at,aw,-az,bc,be,-bb,ay,-av,as,-ap,ar,-au,ax,-ba,bd}
{ci,-cd,by,-bt,bo,-bj,bf,-bk,bp,-bu,bz,-ce,cj,ch,-cc,bx,-bs,bn,-bi,bg,-bl,bq,-bv,ca,-cf,ck,cg,-cb,bw,-br,bm,-bh,bh,-bm,br,-bw,cb,-cg,-ck,cf,-ca,bv,-bq,bl,-bg,bi,-bn,bs,-bx,cc,-ch,-cj,ce,-bz,bu,-bp,bk,-bf,bj,-bo,bt,-by,cd,-ci}
{ao,-an,am,-al,ak,-aj,ai,-ah,ah,-ai,aj,-ak,al,-am,an,-ao,-ao,an,-am,al,-ak,aj,-ai,ah,-ah,ai,-aj,ak,-al,am,-an,ao,ao,-an,am,-al,ak,-aj,ai,-ah,ah,-ai,aj,-ak,al,-am,an,-ao,-ao,an,-am,al,-ak,aj,-ai,ah,-ah,ai,-aj,ak,-al,am,-an,ao}
{cj,-cg,cd,-ca,bx,-bu,br,-bo,bl,-bi,bf,-bh,bk,-bn,bq,-bt,bw,-bz,cc,-cf,ci,ck,-ch,ce,-cb,by,-bv,bs,-bp,bm,-bj,bg,-bg,bj,-bm,bp,-bs,bv,-by,cb,-ce,ch,-ck,-ci,cf,-cc,bz,-bw,bt,-bq,bn,-bk,bh,-bf,bi,-bl,bo,-br,bu,-bx,ca,-cd,cg,-cj}
{be,-bd,bc,-bb,ba,-az,ay,-ax,aw,-av,au,-at,as,-ar,aq,-ap,ap,-aq,ar,-as,at,-au,av,-aw,ax,-ay,az,-ba,bb,-bc,bd,-be,-be,bd,-bc,bb,-ba,az,-ay,ax,-aw,av,-au,at,-as,ar,-aq,ap,-ap,aq,-ar,as,-at,au,-av,aw,-ax,ay,-az,ba,-bb,bc,-bd,be}
{ck,-cj,ci,-ch,cg,-cf,ce,-cd,cc,-cb,ca,-bz,by,-bx,bw,-bv,bu,-bt,bs,-br,bq,-bp,bo,-bn,bm,-bl,bk,-bj,bi,-bh,bg,-bf,bf,-bg,bh,-bi,bj,-bk,bl,-bm,bn,-bo,bp,-bq,br,-bs,bt,-bu,bv,-bw,bx,-by,bz,-ca,cb,-cc,cd,-ce,cf,-cg,ch,-ci,cj,-ck}
}
ここで、
{aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck}=
{64,83,36,89,75,50,18,90,87,80,70,57,43,25,9,90,90,88,85,82,78,73,67,61,54,46,38,31,22,13,4,91,90,90,90,88,87,86,84,83,81,79,77,73,71,69,65,62,59,56,52,48,44,41,37,33,28,24,20,15,11,7,2}
である。
【0020】
HEVCで使われてきたDCT-2および4×4 DST-7に加えて、VVCでは、適応マルチ変換(Adaptive Multiple Transform、AMT;向上マルチ変換(Enhanced Multiple Transform、EMT)またはマルチ変換選択(Multiple Transform Selection、MTS)としても知られる)方式が、インター符号化されたブロックおよびイントラ符号化されたブロックの両方についての残差符号化のために使用されてきた。それは、HEVCにおける現行の変換以外のDCT/DSTファミリーからの複数の選択された変換を使用する。新たに導入される変換行列はDST-7、DCT-8である。表1は、選択されるDST/DCTの基底関数を示す。
【表1】
【0021】
VVCにおけるすべての主変換行列は8ビット表現で使用される。AMTは、幅および高さがいずれも32以下のCUに対して適用され、AMTが適用されるか否かはmts_flagと呼ばれるフラグによって制御される。mts_flagが0に等しいときは、残差を符号化するためにDCT-2のみが適用される。mts_flagが1に等しいときは、インデックスmts_idxが二つのビンを使ってさらに信号伝達されて、表2に従って、使用されるべき水平および垂直変換を同定する。ここで、値1はDST-7を使うことを意味し、値2はDCT-8を使うことを意味する。
【表2】
【0022】
DST-7の基底ベクトルで構成される行列である変換コアは、次のように表現できる:
4点DST-7:
{ a, b, c, d}
{ c, c, 0,-c}
{ d,-a,-c, b}
{ b,-d, c,-a}
ここで、{a,b,c,d}={29,55,74,84}
8点DST-7:
{ a, b, c, d, e, f, g, h,}
{ c, f, h, e, b,-a,-d,-g,}
{ e, g, b,-c,-h,-d, a, f,}
{ g, c,-d,-f, a, h, b,-e,}
{ h,-a,-g, b, f,-c,-e, d,}
{ f,-e,-a, g,-d,-b, h,-c,}
{ d,-h, e,-a,-c, g,-f, b,}
{ b,-d, f,-h, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h}={17,32,46,60,71,78,85,86}
16点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={9,17,25,33,41,49,56,62,66,72,77,81,83,87,89,90}
32点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F,}
{ c, f, i, l, o, r, u, x, A, D, F, C, z, w, t, q, n, k, h, e, b,-a,-d,-g,-j,-m,-p,-s,-v,-y,-B,-E,}
{ e, j, o, t, y, D, D, y, t, o, j, e, 0,-e,-j,-o,-t,-y,-D,-D,-y,-t,-o,-j,-e, 0, e, j, o, t, y, D,}
{ g, n, u, B, D, w, p, i, b,-e,-l,-s,-z,-F,-y,-r,-k,-d, c, j, q, x, E, A, t, m, f,-a,-h,-o,-v,-C,}
{ i, r, A, C, t, k, b,-g,-p,-y,-E,-v,-m,-d, e, n, w, F, x, o, f,-c,-l,-u,-D,-z,-q,-h, a, j, s, B,}
{ k, v, F, u, j,-a,-l,-w,-E,-t,-i, b, m, x, D, s, h,-c,-n,-y,-C,-r,-g, d, o, z, B, q, f,-e,-p,-A,}
{ m, z, z, m, 0,-m,-z,-z,-m, 0, m, z, z, m, 0,-m,-z,-z,-m, 0, m, z, z, m, 0,-m,-z,-z,-m, 0, m, z,}
{ o, D, t, e,-j,-y,-y,-j, e, t, D, o, 0,-o,-D,-t,-e, j, y, y, j,-e,-t,-D,-o, 0, o, D, t, e,-j,-y,}
{ q, E, n,-c,-t,-B,-k, f, w, y, h,-i,-z,-v,-e, l, C, s, b,-o,-F,-p, a, r, D, m,-d,-u,-A,-j, g, x,}
{ s, A, h,-k,-D,-p, c, v, x, e,-n,-F,-m, f, y, u, b,-q,-C,-j, i, B, r,-a,-t,-z,-g, l, E, o,-d,-w,}
{ u, w, b,-s,-y,-d, q, A, f,-o,-C,-h, m, E, j,-k,-F,-l, i, D, n,-g,-B,-p, e, z, r,-c,-x,-t, a, v,}
{ w, s,-d,-A,-o, h, E, k,-l,-D,-g, p, z, c,-t,-v, a, x, r,-e,-B,-n, i, F, j,-m,-C,-f, q, y, b,-u,}
{ y, o,-j,-D,-e, t, t,-e,-D,-j, o, y, 0,-y,-o, j, D, e,-t,-t, e, D, j,-o,-y, 0, y, o,-j,-D,-e, t,}
{ A, k,-p,-v, e, F, f,-u,-q, j, B, a,-z,-l, o, w,-d,-E,-g, t, r,-i,-C,-b, y, m,-n,-x, c, D, h,-s,}
{ C, g,-v,-n, o, u,-h,-B, a, D, f,-w,-m, p, t,-i,-A, b, E, e,-x,-l, q, s,-j,-z, c, F, d,-y,-k, r,}
{ E, c,-B,-f, y, i,-v,-l, s, o,-p,-r, m, u,-j,-x, g, A,-d,-D, a, F, b,-C,-e, z, h,-w,-k, t, n,-q,}
{ F,-a,-E, b, D,-c,-C, d, B,-e,-A, f, z,-g,-y, h, x,-i,-w, j, v,-k,-u, l, t,-m,-s, n, r,-o,-q, p,}
{ D,-e,-y, j, t,-o,-o, t, j,-y,-e, D, 0,-D, e, y,-j,-t, o, o,-t,-j, y, e,-D, 0, D,-e,-y, j, t,-o,}
{ B,-i,-s, r, j,-A,-a, C,-h,-t, q, k,-z,-b, D,-g,-u, p, l,-y,-c, E,-f,-v, o, m,-x,-d, F,-e,-w, n,}
{ z,-m,-m, z, 0,-z, m, m,-z, 0, z,-m,-m, z, 0,-z, m, m,-z, 0, z,-m,-m, z, 0,-z, m, m,-z, 0, z,-m,}
{ x,-q,-g, E,-j,-n, A,-c,-u, t, d,-B, m, k,-D, f, r,-w,-a, y,-p,-h, F,-i,-o, z,-b,-v, s, e,-C, l,}
{ v,-u,-a, w,-t,-b, x,-s,-c, y,-r,-d, z,-q,-e, A,-p,-f, B,-o,-g, C,-n,-h, D,-m,-i, E,-l,-j, F,-k,}
{ t,-y, e, o,-D, j, j,-D, o, e,-y, t, 0,-t, y,-e,-o, D,-j,-j, D,-o,-e, y,-t, 0, t,-y, e, o,-D, j,}
{ r,-C, k, g,-y, v,-d,-n, F,-o,-c, u,-z, h, j,-B, s,-a,-q, D,-l,-f, x,-w, e, m,-E, p, b,-t, A,-i,}
{ p,-F, q,-a,-o, E,-r, b, n,-D, s,-c,-m, C,-t, d, l,-B, u,-e,-k, A,-v, f, j,-z, w,-g,-i, y,-x, h,}
{ n,-B, w,-i,-e, s,-F, r,-d,-j, x,-A, m, a,-o, C,-v, h, f,-t, E,-q, c, k,-y, z,-l,-b, p,-D, u,-g,}
{ l,-x, C,-q, e, g,-s, E,-v, j, b,-n, z,-A, o,-c,-i, u,-F, t,-h,-d, p,-B, y,-m, a, k,-w, D,-r, f,}
{ j,-t, D,-y, o,-e,-e, o,-y, D,-t, j, 0,-j, t,-D, y,-o, e, e,-o, y,-D, t,-j, 0, j,-t, D,-y, o,-e,}
{ h,-p, x,-F, y,-q, i,-a,-g, o,-w, E,-z, r,-j, b, f,-n, v,-D, A,-s, k,-c,-e, m,-u, C,-B, t,-l, d,}
{ f,-l, r,-x, D,-C, w,-q, k,-e,-a, g,-m, s,-y, E,-B, v,-p, j,-d,-b, h,-n, t,-z, F,-A, u,-o, i,-c,}
{ d,-h, l,-p, t,-x, B,-F, C,-y, u,-q, m,-i, e,-a,-c, g,-k, o,-s, w,-A, E,-D, z,-v, r,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, r,-t, v,-x, z,-B, D,-F, E,-C, A,-y, w,-u, s,-q, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F}={4,9,13,17,21,26,30,34,38,42,45,50,53,56,60,63,66,68,72,74,77,78,80,82,84,85,86,88,88,89,90,90}
4点DCT-8:
{ a, b, c, d,}
{ b, 0,-b,-b,}
{ c,-b,-d, a,}
{ d,-b, a,-c,}
ここで、{a,b,c,d}={84,74,55,29}
8点DCT-8:
{ a, b, c, d, e, f, g, h,}
{ b, e, h,-g,-d,-a,-c,-f,}
{ c, h,-e,-a,-f, g, b, d,}
{ d,-g,-a,-h, c, e,-f,-b,}
{ e,-d,-f, c, g,-b,-h, a,}
{ f,-a, g, e,-b, h, d,-c,}
{ g,-c, b,-f,-h, d,-a, e,}
{ h,-f, d,-b, a,-c, e,-g,}
ここで、{a,b,c,d,e,f,g,h}={86,85,78,71,60,46,32,17}
16点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={90,89,87,83,81,77,72,66,62,56,49,41,33,25,17,9}
32点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F,}
{ b, e, h, k, n, q, t, w, z, C, F,-E,-B,-y,-v,-s,-p,-m,-j,-g,-d,-a,-c,-f,-i,-l,-o,-r,-u,-x,-A,-D,}
{ c, h, m, r, w, B, 0,-B,-w,-r,-m,-h,-c,-c,-h,-m,-r,-w,-B, 0, B, w, r, m, h, c, c, h, m, r, w, B,}
{ d, k, r, y, F,-A,-t,-m,-f,-b,-i,-p,-w,-D, C, v, o, h, a, g, n, u, B,-E,-x,-q,-j,-c,-e,-l,-s,-z,}
{ e, n, w, F,-y,-p,-g,-c,-l,-u,-D, A, r, i, a, j, s, B,-C,-t,-k,-b,-h,-q,-z, E, v, m, d, f, o, x,}
{ f, q, B,-A,-p,-e,-g,-r,-C, z, o, d, h, s, D,-y,-n,-c,-i,-t,-E, x, m, b, j, u, F,-w,-l,-a,-k,-v,}
{ g, t, 0,-t,-g,-g,-t, 0, t, g, g, t, 0,-t,-g,-g,-t, 0, t, g, g, t, 0,-t,-g,-g,-t, 0, t, g, g, t,}
{ h, w,-B,-m,-c,-r, 0, r, c, m, B,-w,-h,-h,-w, B, m, c, r, 0,-r,-c,-m,-B, w, h, h, w,-B,-m,-c,-r,}
{ i, z,-w,-f,-l,-C, t, c, o, F,-q,-a,-r, E, n, d, u,-B,-k,-g,-x, y, h, j, A,-v,-e,-m,-D, s, b, p,}
{ j, C,-r,-b,-u, z, g, m, F,-o,-e,-x, w, d, p,-E,-l,-h,-A, t, a, s,-B,-i,-k,-D, q, c, v,-y,-f,-n,}
{ k, F,-m,-i,-D, o, g, B,-q,-e,-z, s, c, x,-u,-a,-v, w, b, t,-y,-d,-r, A, f, p,-C,-h,-n, E, j, l,}
{ l,-E,-h,-p, A, d, t,-w,-a,-x, s, e, B,-o,-i,-F, k, m,-D,-g,-q, z, c, u,-v,-b,-y, r, f, C,-n,-j,}
{ m,-B,-c,-w, r, h, 0,-h,-r, w, c, B,-m,-m, B, c, w,-r,-h, 0, h, r,-w,-c,-B, m, m,-B,-c,-w, r, h,}
{ n,-y,-c,-D, i, s,-t,-h, E, d, x,-o,-m, z, b, C,-j,-r, u, g,-F,-e,-w, p, l,-A,-a,-B, k, q,-v,-f,}
{ o,-v,-h, C, a, D,-g,-w, n, p,-u,-i, B, b, E,-f,-x, m, q,-t,-j, A, c, F,-e,-y, l, r,-s,-k, z, d,}
{ p,-s,-m, v, j,-y,-g, B, d,-E,-a,-F, c, C,-f,-z, i, w,-l,-t, o, q,-r,-n, u, k,-x,-h, A, e,-D,-b,}
{ q,-p,-r, o, s,-n,-t, m, u,-l,-v, k, w,-j,-x, i, y,-h,-z, g, A,-f,-B, e, C,-d,-D, c, E,-b,-F, a,}
{ r,-m,-w, h, B,-c, 0, c,-B,-h, w, m,-r,-r, m, w,-h,-B, c, 0,-c, B, h,-w,-m, r, r,-m,-w, h, B,-c,}
{ s,-j,-B, a,-C,-i, t, r,-k,-A, b,-D,-h, u, q,-l,-z, c,-E,-g, v, p,-m,-y, d,-F,-f, w, o,-n,-x, e,}
{ t,-g, 0, g,-t,-t, g, 0,-g, t, t,-g, 0, g,-t,-t, g, 0,-g, t, t,-g, 0, g,-t,-t, g, 0,-g, t, t,-g,}
{ u,-d, B, n,-k,-E, g,-r,-x, a,-y,-q, h,-F,-j, o, A,-c, v, t,-e, C, m,-l,-D, f,-s,-w, b,-z,-p, i,}
{ v,-a, w, u,-b, x, t,-c, y, s,-d, z, r,-e, A, q,-f, B, p,-g, C, o,-h, D, n,-i, E, m,-j, F, l,-k,}
{ w,-c, r, B,-h, m, 0,-m, h,-B,-r, c,-w,-w, c,-r,-B, h,-m, 0, m,-h, B, r,-c, w, w,-c, r, B,-h, m,}
{ x,-f, m,-E,-q, b,-t,-B, j,-i, A, u,-c, p, F,-n, e,-w,-y, g,-l, D, r,-a, s, C,-k, h,-z,-v, d,-o,}
{ y,-i, h,-x,-z, j,-g, w, A,-k, f,-v,-B, l,-e, u, C,-m, d,-t,-D, n,-c, s, E,-o, b,-r,-F, p,-a, q,}
{ z,-l, c,-q, E, u,-g, h,-v,-D, p,-b, m,-A,-y, k,-d, r,-F,-t, f,-i, w, C,-o, a,-n, B, x,-j, e,-s,}
{ A,-o, c,-j, v, F,-t, h,-e, q,-C,-y, m,-a, l,-x,-D, r,-f, g,-s, E, w,-k, b,-n, z, B,-p, d,-i, u,}
{ B,-r, h,-c, m,-w, 0, w,-m, c,-h, r,-B,-B, r,-h, c,-m, w, 0,-w, m,-c, h,-r, B, B,-r, h,-c, m,-w,}
{ C,-u, m,-e, d,-l, t,-B,-D, v,-n, f,-c, k,-s, A, E,-w, o,-g, b,-j, r,-z,-F, x,-p, h,-a, i,-q, y,}
{ D,-x, r,-l, f,-a, g,-m, s,-y, E, C,-w, q,-k, e,-b, h,-n, t,-z, F, B,-v, p,-j, d,-c, i,-o, u,-A,}
{ E,-A, w,-s, o,-k, g,-c, b,-f, j,-n, r,-v, z,-D,-F, B,-x, t,-p, l,-h, d,-a, e,-i, m,-q, u,-y, C,}
{ F,-D, B,-z, x,-v, t,-r, p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o, q,-s, u,-w, y,-A, C,-E,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F}={90,90,89,88,88,86,85,84,82,80,78,77,74,72,68,66,63,60,56,53,50,45,42,38,34,30,26,21,17,13,9,4}
【0023】
図2は、ある実施形態による通信システム(200)の簡略化されたブロック図である。通信システム(200)は、ネットワーク(250)を介して相互接続された少なくとも二つの端末(210~220)を含んでいてもよい。データの一方向伝送のためには、第一の端末(210)は、ネットワーク(250)を介した他方の端末(220)への伝送のために、ローカル位置においてビデオ・データを符号化してもよい。第二の端末(220)は、ネットワーク(250)から他方の端末の符号化されたビデオ/データを受信し、符号化されたデータを復号し、復元されたビデオ/データを表示してもよい。一方向のデータ伝送は、メディア供給アプリケーションなどにおいて一般的でありうる。
【0024】
図2は、たとえばビデオ会議の際に生起しうる、符号化されたビデオの双方向伝送をサポートするために提供される第二の対の端末(230、240)を示している。データの双方向伝送のためには、各端末(230、240)が、ローカル位置において捕捉されたビデオ・データを、ネットワーク(250)を介した他方の端末への送信のために符号化してもよい。各端末(230、240)は、他方の端末によって送信された符号化されたビデオ・データを受信し、符号化されたデータを復号し、復元されたビデオ・データをローカルな表示装置において表示してもよい。
【0025】
図2では、端末(210~240)は、サーバー、パーソナル・コンピュータおよびスマートフォンとして示されているが、実施形態の原理はそのように限定されるものではない。実施形態は、ラップトップ・コンピュータ、タブレット・コンピュータ、メディアプレーヤーおよび/または専用のビデオ会議設備での応用を見出す。ネットワーク(250)は、端末(210~240)の間で符号化されたビデオ・データを伝達する、たとえば有線および/または無線通信ネットワークを含む任意の数のネットワークを表わす。通信ネットワーク(250)は、回線交換および/またはパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークは、遠隔通信ネットワーク、ローカルエリアネットワーク、広域ネットワークおよび/またはインターネットを含む。今の議論の目的のためには、ネットワーク(250)のアーキテクチャーおよびトポロジーは、本稿の下記で説明される点のほかは、実施形態の動作にとって重要でないことがある。
【0026】
図3は、ある実施形態による、ストリーミング環境におけるビデオ・エンコーダおよびビデオ・デコーダの配置の図である。開示される主題は、たとえばビデオ会議、デジタルテレビ、CD、DVD、メモリースティックなどを含むデジタル媒体での圧縮されたビデオの記憶を含む他のビデオ対応アプリケーションにも等しく適用可能でありうる。
【0027】
ストリーミング・システムは、たとえば圧縮されていないビデオ・サンプル・ストリーム(302)を生成するデジタル・カメラなどのビデオ源(301)を含むことができる捕捉サブシステム(313)を含んでいてもよい。エンコードされたビデオ・ビットストリームに比べると高いデータ・ボリュームを強調するために太線で描かれているサンプル・ストリーム(302)は、カメラ(301)に結合されたエンコーダ(303)によって処理されることができる。エンコーダ(303)は、下記でより詳細に記載される開示される主題の諸側面を可能にするまたは実装するために、ハードウェア、ソフトウェアまたはそれらの組み合わせを含むことができる。前記サンプル・ストリームに比べ、より低いデータ・ボリュームを強調するために細い線で描かれているエンコードされたビデオ・ビットストリーム(304)は、将来の使用のためにストリーミング・サーバー(305)に記憶されることができる。一つまたは複数のストリーミング・クライアント(306、308)がストリーミング・サーバー(305)にアクセスして、エンコードされたビデオ・ビットストリーム(304)のコピー(307、309)を取得することができる。クライアント(306)はビデオ・デコーダ(310)を含むことができ、該ビデオ・デコーダが、エンコードされたビデオ・ビットストリーム(307)のはいってくるコピーを復号して、ディスプレイ(312)または他のレンダリング装置(図示せず)上でレンダリングされることができる、出て行くビデオ・サンプル・ストリーム(311)を生成する。いくつかのストリーミング・システムでは、ビデオ・ビットストリーム(304、307、309)は、ある種のビデオ符号化/圧縮規格に従ってエンコードされることができる。それらの規格の例は、ITU-T勧告H.265を含む。開発中のものとしては、非公式にVVCとして知られるビデオ符号化規格がある。開示される主題は、VVCのコンテキストで使用されてもよい。
【0028】
図4は、ある実施形態によるビデオ・デコーダ(310)の機能的なブロック図である。
【0029】
受信器(410)が、デコーダ(310)によってデコードされるべき、一つまたは複数の符号化されたビデオ・シーケンスを受領してもよい;同じ実施形態またはある実施形態において、一時には一つの符号化されたビデオ・シーケンスで、各符号化されたビデオ・シーケンスのデコードは、他の符号化されたビデオ・シーケンスとは独立である。符号化されたビデオ・シーケンスは、チャネル(412)から受領されてもよい。該チャネルは、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクでありうる。受信器(410)は、エンコードされたビデオ・データを他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリームと一緒に受領してもよい。該他のデータは、それぞれの使用エンティティ(図示せず)に転送されてもよい。受信器(410)は、符号化されたビデオ・シーケンスを該他のデータから分離してもよい。ネットワーク・ジッタに打ち勝つため、バッファ・メモリ(415)が受信器(410)とエントロピー復号器/パーサー(420)(下記では「パーサー」)との中間に結合されてもよい。受信器(410)が十分な帯域幅および制御可能性の記憶/転送装置から、またはアイソクロナス・ネットワークからデータを受領しているときは、バッファ(415)は必要とされないことがある、または小さくてもよい。インターネットのようなベストエフォートのパケット・ネットワークでの使用のためには、バッファ(415)が必要とされることがあり、比較的大きくてもよく、有利には適応的なサイズであることができる。
【0030】
ビデオ・デコーダ(310)は、エントロピー符号化されたビデオ・シーケンスからシンボル(421)を再構成するためのパーサー(420)を含んでいてもよい。それらのシンボルのカテゴリーは、デコーダ(310)の動作を管理するために使用される情報と、潜在的には、ディスプレイ(312)のようなレンダリング装置を制御するための情報とを含む。該ディスプレイは、図4に示されたような、デコーダの一体的な部分ではなく、デコーダに結合されることができる。レンダリング装置(単数または複数)のための制御情報は、補足向上情報(Supplementary Enhancement Information、SEI)メッセージまたはビデオ・ユーザビリティー情報(Video Usability Information、VUI)パラメータ・セット・フラグメント(図示せず)の形であってもよい。パーサー(420)は、受領された符号化されたビデオ・シーケンスをパース/エントロピー復号してもよい。符号化されたビデオ・シーケンスの符号化は、ビデオ符号化技術または規格に従っていてもよく、可変長符号化、ハフマン符号化、コンテキスト感受性ありまたはなしでの算術符号化などを含む当業者によく知られた原理に従ってもよい。パーサー(420)は、符号化されたビデオ・シーケンスから、ビデオ・デコーダにおけるピクセルの諸サブグループのうちの少なくとも一つについて、サブグループ・パラメータの集合を、グループに対応する少なくとも一つのパラメータに基づいて、抽出してもよい。サブグループは、ピクチャー・グループ(Group of Pictures、GOP)、ピクチャー、タイル、スライス、マクロブロック、符号化単位(Coding Unit、CU)、ブロック、変換単位(Transform Unit、TU)、予測単位(Prediction Unit、PU)などを含みうる。エントロピー・デコーダ/パーサーは、符号化されたビデオ・シーケンス、変換係数、量子化器パラメータ(quantizer parameter、QP)値、動きベクトルなどのような情報をも抽出してもよい。
【0031】
パーサー(420)は、バッファ(415)から受領されたビデオ・シーケンスに対してエントロピー復号/パース動作を実行して、シンボル(421)を生成してもよい。パーサー(420)は、エンコードされたデータを受領し、特定の諸シンボル(421)を選択的にデコードしてもよい。さらに、パーサー(420)は、該特定の諸シンボル(421)が動き補償予測ユニット(453)、スケーラー/逆変換ユニット(451)、イントラ予測ユニット(452)またはループ・フィルタ・ユニット(454)のどれに提供されるかを決定してもよい。
【0032】
シンボル(421)の再構成は、符号化されたビデオ・ピクチャーまたはその一部の型(たとえばインター・ピクチャーとイントラ・ピクチャー、インター・ブロックとイントラ・ブロック)および他の要因に依存して、複数の異なるユニットに関わることができる。どのユニットにどのように関わるかは、パーサー(420)によって、符号化されたビデオ・シーケンスからパースされたサブグループ制御情報によって制御できる。パーサー(420)と後述するそれら複数のユニットとの間のそのようなサブグループ制御情報のフローは、明確のため図示されていない。
【0033】
すでに述べた機能ブロックのほか、デコーダ(310)は、概念上、下記にようにいくつかの機能ユニットに細分されることができる。商業的な制約条件のもとで動作する実際的な実装では、これらのユニットの多くは互いに密接に対話し、少なくとも部分的には、互いに統合されることができる。しかしながら、開示される主題を記述する目的のためには、下記の機能ユニットへの概念的な細分が適切である。
【0034】
第一のユニットは、スケーラー/逆変換ユニット(451)である。スケーラー/逆変換ユニット(451)は、量子化された変換係数と、どの変換を使うか、ブロック・サイズ、量子化因子、量子化スケーリング行列などを含む制御情報とを、パーサー(420)からのシンボル(421)として受領し、集約器(aggregator)(455)に入力できるサンプル値を含むブロックを出力することができる。
【0035】
いくつかの場合には、スケーラー/逆変換ユニット(451)の出力サンプルは、イントラ符号化されたブロックに関わることができる。すなわち、以前に再構成されたピクチャーからの予測情報を使わないが、現在のピクチャーの以前に再構成された部分からの予測情報は使うことができるブロックである。そのような予測情報は、イントラ・ピクチャー予測ユニット(452)によって提供されることができる。いくつかの場合には、イントラ・ピクチャー予測ユニット(452)は、再構成対象のブロックと同じサイズおよび形状のブロックを、現在の(部分的に再構成された)ピクチャー(456)から取ってこられる、周囲の、すでに再構成された情報を使って生成する。集約器(455)は、いくつかの場合には、イントラ予測ユニット(452)が生成した予測情報を、スケーラー/逆変換ユニット(451)によって与えられる出力サンプル情報に加算する。
【0036】
他の場合には、スケーラー/逆変換ユニット(451)の出力サンプルは、インター符号化された、可能性としては動き補償されたブロックに関わることができる。そのような場合、動き補償予測ユニット(453)は、予測のために使われるサンプルを取ってくるために参照ピクチャー・メモリ(457)にアクセスすることができる。取ってきたサンプルが、当該ブロックに関するシンボル(421)に従って動き補償した後、これらのサンプルは、集約器(455)によって、スケーラー/逆変換ユニットの出力(この場合、残差サンプルまたは残差信号と呼ばれる)に加えられて、出力サンプル情報を生成することができる。動き補償ユニットが予測サンプルを取ってくる参照ピクチャー・メモリ内のアドレスは、動きベクトルによって制御できる。動きベクトルは、たとえばX、Yおよび参照ピクチャー成分を有することのできるシンボル(421)の形で、動き補償ユニットにとって利用可能である。動き補償は、サブサンプルの厳密な動きベクトルが使用されるときの参照ピクチャー・メモリから取ってこられるサンプル値の補間、動きベクトル予測機構などをも含むことができる。
【0037】
集約器(455)の出力サンプルは、ループ・フィルタ・ユニット(454)においてさまざまなループ・フィルタリング技法を受けることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができ、ループ内フィルタ技術は、符号化されたビデオ・ビットストリームに含まれ、パーサー(420)からのシンボル(421)としてループ・フィルタ・ユニット(454)にとって利用可能にされるパラメータによって制御されるが、符号化されたピクチャーまたは符号化されたビデオ・シーケンスの、(デコード順で)以前の部分のデコードの間に得られるメタ情報に応じたものである、または以前に再構成され、ループ・フィルタリングされたサンプル値に応じたものであることもできる。
【0038】
ループ・フィルタ・ユニット(454)の出力は、レンダリング装置(312)に対して出力されるとともに、将来のインター・ピクチャー予測において使うために参照ピクチャー・メモリ(456)に記憶されることができるサンプル・ストリームであってもよい。
【0039】
ある種の符号化されたピクチャーは、ひとたび完全に再構成されたら、将来の予測のための参照ピクチャーとして使用されることができる。ひとたび符号化されたピクチャーが完全に再構成され、該符号化されたピクチャーが(たとえばパーサー(420)によって)参照ピクチャーとして識別されたら、現在の参照ピクチャー(456)は参照ピクチャー・バッファ(457)の一部になることができ、後続の符号化されたピクチャーの再構成を開始する前に、フレッシュな現在ピクチャー・メモリが再割り当てされることができる。
【0040】
ビデオ・デコーダ(310)は、ITU-T Rec.H.265のような規格において文書化されていてもよい所定のビデオ圧縮技術に従ってデコード動作を実行してもよい。符号化されたビデオ・シーケンスは、使用されるビデオ圧縮技術もしくは規格によって指定されたシンタックスに準拠してもよい。これは、ビデオ圧縮技術の文書または規格において、特にその中のプロファイル文書において規定されているビデオ圧縮技術または規格のシンタックスに従う、という意味においてである。準拠のためにはまた、符号化されたビデオ・シーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される限界以内であることも必要であることがある。場合によっては、レベルが最大ピクチャー・サイズ、最大フレーム・レート、最大再構成サンプル・レート(たとえばメガサンプル毎秒で測る)、最大参照ピクチャー・サイズなどを制約する。レベルによって設定される限界は、場合によっては、仮定参照デコーダ(Hypothetical Reference Decoder、HRD)仕様と、符号化されたビデオ・シーケンスにおいて信号伝達されるHRDバッファ管理のためのメタデータとを通じて、さらに制約されることができる。
【0041】
ある実施形態では、受信器(410)は、エンコードされたビデオと一緒に、追加的な(冗長な)データを受信してもよい。追加的なデータは、符号化されたビデオ・シーケンス(単数または複数)の一部として含まれてもよい。追加的なデータは、前記データを適正にデコードするためおよび/またはもとのビデオ・データをより正確に再構成するためにビデオ・デコーダ(310)によって使用されうる。追加的なデータは、たとえば時間的、空間的または信号対雑音比(SNR)向上層、冗長スライス、冗長ピクチャー、前方誤り訂正などの形であることができる。
【0042】
図5は、ある実施形態によるビデオ・エンコーダ(303)の機能的なブロック図である。
【0043】
エンコーダ(303)は、エンコーダ(303)によって符号化されるビデオ画像を捕捉しうるビデオ源(301)(これはエンコーダの一部ではない)からビデオ・サンプルを受領してもよい。
【0044】
ビデオ源(301)は、エンコーダ(303)によって符号化される源ビデオ・シーケンスを、任意の好適なビット深さ(たとえば8ビット、10ビット、12ビット…)、任意の色空間(たとえばBT.601 Y CrCB、RGB、…)および任意の好適なサンプリング構造(たとえばYCrCb4:2:0、YCrCb4:4:4)でありうるデジタル・ビデオ・サンプル・ストリームの形で、提供してもよい。メディア供給システムでは、ビデオ源(301)は、以前に用意されたビデオを記憶している記憶装置であってもよい。ビデオ会議システムでは、ビデオ源(301)は、ローカルな画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見たときに動きを与える、複数の個別のピクチャーとして提供されてもよい。ピクチャー自身はピクセルの空間アレイとして編成されてもよい。ここで、各ピクセルは、使用されているサンプリング構造、色空間などに依存して一つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解できる。下記の記述はサンプルに焦点を当てる。
【0045】
ある実施形態によれば、エンコーダ(303)は、源ビデオ・シーケンスのピクチャーをリアルタイムで、またはアプリケーションによって要求される他の任意の時間制約条件のもとで、符号化および圧縮して、符号化されたビデオ・シーケンス(543)にしてもよい。適切な符号化速度を実施することは、コントローラ(550)の一つの機能である。コントローラは、後述する他の機能ユニットを制御し、機能的にそれらのユニットに結合されている。明確のため、結合は図示していない。コントローラによって設定されるパラメータは、レート制御に関係したパラメータ(ピクチャー・スキップ、量子化器、レート‐歪み最適化技法のラムダ値…)、ピクチャー・サイズ、ピクチャー・グループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。当業者は、ある種のシステム設計のために最適化されたビデオ・エンコーダ(303)に関わりうるコントローラ(550)の他の機能を容易に識別できる。
【0046】
そのようなビデオ・エンコーダは、当業者が「符号化ループ」として容易に認識するものにおいて動作する。大幅に単純化した記述として、符号化ループは、エンコーダ(530)のエンコード部分(以下、「源符号化器」)(符号化されるべき入力ピクチャーおよび参照ピクチャー(単数または複数)に基づいてシンボルを生成することを受け持つ)と、(リモートの)デコーダも生成するであろうサンプル・データを生成するためにシンボルを再構成する(シンボルと符号化されたビデオ・ビットストリームとの間のいかなる圧縮も、開示される手段において考えられているビデオ圧縮技術においては無損失なので)、エンコーダ(303)に埋め込まれた(ローカルな)デコーダ(533)とからなることができる。その再構成されたサンプル・ストリームが参照ピクチャー・メモリ(534)に入力される。シンボル・ストリームの該デコードは、デコーダ位置(ローカルかリモートか)に関わりなくビット正確な結果につながるので、参照ピクチャー・バッファの内容も、ローカル・エンコーダとリモート・エンコーダとの間でビットまで正確である。換言すれば、エンコーダの予測部分は、デコーダがデコードの際に予測を使って「見る」はずであるのと正確に同じサンプル値を、参照ピクチャー・サンプルとして「見る」。参照ピクチャー同期性のこの基本原理(そして同期性がたとえばチャネル・エラーのために維持できない場合に生じるドリフト)は、当業者にはよく知られている。
【0047】
「ローカル」デコーダ(533)の動作は、図4との関連ですでに詳述した「リモート」デコーダ(310)の動作と同じでありうる。ただし、暫時図4も参照するに、シンボルが利用可能であり、エントロピー符号化器(545)およびパーサー(420)によるシンボルの符号化ビデオ・シーケンスへのエンコード/デコードは無損失でありうるので、チャネル(412)、受信器(410)、バッファ(415)およびパーサー(420)を含むデコーダ(310)のエントロピー復号部分は、ローカル・デコーダ(533)においては完全には実装されなくてもよい。
【0048】
この時点でいえることは、デコーダに存在するパース/エントロピー復号以外のデコーダ技術は、対応するエンコーダにおいて、実質的に同一の機能形態で必ず存在する必要があるということである。エンコーダ技術の記述は、包括的に記載されたデコーダ技術の逆なので、短縮することができる。ある種の領域においてのみ、より詳細な記述が必要とされ、下記に与えられる。
【0049】
その動作の一部として、源符号化器(530)は、動き補償される予測符号化を実行してもよい。これは、「参照フレーム」として指定された、ビデオ・シーケンスからの一つまたは複数の以前に符号化されたフレームを参照して、予測的に入力フレームを符号化する。このようにして、符号化エンジン(532)は、入力フレームのピクセル・ブロックと、入力フレームへの予測基準(単数または複数)として選択されうる参照フレーム(単数または複数)のピクセル・ブロックとの間の差を符号化する。
【0050】
ローカル・ビデオ・デコーダ(533)は、源符号化器(530)によって生成されたシンボルに基づいて、参照フレームとして指定されうるフレームの符号化されたビデオ・データを復号してもよい。符号化エンジン(532)の動作は、有利には損失のあるプロセスであってもよい。符号化されたビデオ・データがビデオ・デコーダ(図4には示さず)においてデコードされうるとき、再構成されたビデオ・シーケンスは典型的には、若干の誤差はあるが、源ビデオ・シーケンスの複製でありうる。ローカル・ビデオ・デコーダ(533)は、参照フレームに基づいてビデオ・デコーダによって実行されうるデコード・プロセスを複製し、再構成された参照フレームを参照ピクチャー・キャッシュ(534)に記憶させてもよい。このようにして、エンコーダ(303)は、遠方端のビデオ・デコーダによって得られるであろう再構成された参照フレームと(伝送誤りがなければ)共通の内容をもつ再構成された参照フレームのコピーをローカルに記憶しうる。
【0051】
予測器(535)は、符号化エンジン(532)のための予測探索を実行してもよい。すなわち、符号化されるべき新たなフレームについて、予測器(535)は参照ピクチャー・メモリ(534)を探索して、(候補参照ピクセル・ブロックとしての)サンプル・データまたは参照ピクチャー動きベクトル、ブロック形状などといったある種のメタデータであって、新たなピクチャーのための適切な予測基準のはたらきをしうるものを検索してもよい。予測器(535)は、適切な予測基準をみつけるために、サンプル・ブロック‐ピクセル・ブロックごとに(on a sample block-by-pixel block basis)動作してもよい。いくつかの場合には、予測器(535)によって得られる検索結果によって決定されるように、入力ピクチャーは、参照ピクチャー・メモリ(534)に記憶される複数の参照ピクチャーから引き出された予測基準を有していてもよい。
【0052】
コントローラ(550)は、たとえばビデオ・データをエンコードするために使用されるパラメータおよびサブグループ・パラメータの設定を含め、ビデオ符号化器(530)の符号化動作を管理してもよい。
【0053】
すべての前述した機能ユニットの出力は、エントロピー符号化器(545)におけるエントロピー符号化にかけられてもよい。エントロピー符号化器は、たとえばハフマン符号化、可変長符号化、算術符号化などのような当業者に既知の技術に従ってシンボルを無損失圧縮することによって、さまざまな機能ユニットによって生成されるシンボルを符号化されたビデオ・シーケンスに変換する。
【0054】
送信器(540)は、エントロピー符号化器(545)によって生成された符号化されたビデオ・シーケンスを、通信チャネル(560)を介した送信のために準備するために、バッファリングしてもよい。通信チャネルは、エンコードされたビデオ・データを記憶しうる記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。送信器(540)は、ビデオ符号化器(530)からの符号化されたビデオ・データを、送信されるべき他のデータ、たとえばオーディオ・データおよび/または補助データ・ストリーム(源は図示せず)とマージしてもよい。
【0055】
コントローラ(550)は、エンコーダ(303)の動作を管理してもよい。符号化の間、コントローラ(550)は、それぞれの符号化されたピクチャーに、ある符号化ピクチャー型(coded picture type)を割り当ててもよい。これは、それぞれのピクチャーに適用されうる符号化技法に影響しうる。たとえば、ピクチャーは、次のフレーム型のうちの一つとして割り当てられてもよい:
【0056】
イントラ・ピクチャー(Iピクチャー)は、予測の源としてシーケンス内のいかなる他のフレームも使わずに符号化およびデコードされうるものでありうる。いくつかのビデオ・コーデックは、たとえば独立デコーダ・リフレッシュ・ピクチャー(Independent Decoder Refresh Pictures)を含む、異なる型のイントラ・ピクチャーを許容する。当業者は、Iピクチャーのそうした変形およびそれぞれの用途および特徴を認識している。
【0057】
予測ピクチャー(Pピクチャー)は各ブロックのサンプル値を予測するために高々一つの動きベクトルおよび参照インデックスを使うイントラ予測またはインター予測を使って符号化およびデコードされうるものでありうる。
【0058】
双方向予測ピクチャー(Bピクチャー)は、各ブロックのサンプル値を予測するために高々二つの動きベクトルおよび参照インデックスを使うイントラ予測またはインター予測を使って符号化およびデコードされうるものでありうる。同様に、多予測ピクチャー(multiple-predictive pictures)は、単一のブロックの再構成のために三つ以上の参照ピクチャーおよび関連するメタデータを使用することができる。
【0059】
源ピクチャーは、一般には、空間的に複数のサンプル・ブロック(たとえばそれぞれ4×4、8×8、4×8または16×16サンプルのブロック)に細分され、ブロックごとに符号化されてもよい。ブロックは、ブロックのそれぞれのピクチャーに適用される符号化割り当てによって決定される他の(すでに符号化されている)ブロックを参照して予測的に符号化されてもよい。たとえば、Iピクチャーのブロックは、非予測的に符号化されてもよい、あるいは同じピクチャーのすでに符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測またはイントラ予測)。Pピクチャーのピクセル・ブロックは、非予測的に、空間的予測を介して、または、一つの以前に符号化された参照ピクチャーを参照する時間的予測を介して符号化されてもよい。Bピクチャーのブロックは、非予測的に、空間的予測を介して、または、一つまたは二つの以前に符号化された参照ピクチャーを参照する時間的予測を介して符号化されてもよい。
【0060】
ビデオ符号化器(303)は、所定のビデオ符号化技術または標準、たとえばITU-T Rec.H.265に従って符号化動作を実行してもよい。その動作において、ビデオ符号化器(303)は、入力ビデオ・シーケンスにおける時間的および空間的冗長性を活用する予測符号化動作を含む、さまざまな圧縮動作を実行してもよい。よって、符号化されたビデオ・データは、使用されるビデオ符号化技術または標準によって指定されるシンタックスに準拠しうる。
【0061】
ある実施形態では、送信器(540)は、エンコードされたビデオと一緒に追加的なデータを送信してもよい。ビデオ符号化器(530)は、符号化されたビデオ・シーケンスの一部としてそのようなデータを含めてもよい。追加的なデータは、時間的/空間的/SNR向上層、他の形の冗長データ、たとえば冗長なピクチャーおよびスライス、補足向上情報(Supplementary Enhancement Information、SEI)メッセージ、ビジュアル・ユーザビリティー情報(Visual Usability Information、VUI)パラメータ・セット・フラグメントなどを含んでいてもよい。
【0062】
VVCにおけるDST-7およびDCT-8の8ビット主変換コアは、よりよい符号化効率および正確さのためにさらにチューニングされてもよい。
【0063】
たとえば、ある実施形態によれば、一組の8ビットのDST-7およびDCT-8の変換コアが提案される。下記の提案される方法は、別個に、または任意の順序で組み合わされて、使用されうる。
【0064】
ある実施形態によれば、変換コア行列は、次のようなものであってもよい:
32点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F,}
{ c, f, i, l, o, r, u, x, A, D, F, C, z, w, t, q, n, k, h, e, b,-a,-d,-g,-j,-m,-p,-s,-v,-y,-B,-E,}
{ e, j, o, t, y, D, D, y, t, o, j, e, 0,-e,-j,-o,-t,-y,-D,-D,-y,-t,-o,-j,-e, 0, e, j, o, t, y, D,}
{ g, n, u, B, D, w, p, i, b,-e,-l,-s,-z,-F,-y,-r,-k,-d, c, j, q, x, E, A, t, m, f,-a,-h,-o,-v,-C,}
{ i, r, A, C, t, k, b,-g,-p,-y,-E,-v,-m,-d, e, n, w, F, x, o, f,-c,-l,-u,-D,-z,-q,-h, a, j, s, B,}
{ k, v, F, u, j,-a,-l,-w,-E,-t,-i, b, m, x, D, s, h,-c,-n,-y,-C,-r,-g, d, o, z, B, q, f,-e,-p,-A,}
{ m, z, z, m, 0,-m,-z,-z,-m, 0, m, z, z, m, 0,-m,-z,-z,-m, 0, m, z, z, m, 0,-m,-z,-z,-m, 0, m, z,}
{ o, D, t, e,-j,-y,-y,-j, e, t, D, o, 0,-o,-D,-t,-e, j, y, y, j,-e,-t,-D,-o, 0, o, D, t, e,-j,-y,}
{ q, E, n,-c,-t,-B,-k, f, w, y, h,-i,-z,-v,-e, l, C, s, b,-o,-F,-p, a, r, D, m,-d,-u,-A,-j, g, x,}
{ s, A, h,-k,-D,-p, c, v, x, e,-n,-F,-m, f, y, u, b,-q,-C,-j, i, B, r,-a,-t,-z,-g, l, E, o,-d,-w,}
{ u, w, b,-s,-y,-d, q, A, f,-o,-C,-h, m, E, j,-k,-F,-l, i, D, n,-g,-B,-p, e, z, r,-c,-x,-t, a, v,}
{ w, s,-d,-A,-o, h, E, k,-l,-D,-g, p, z, c,-t,-v, a, x, r,-e,-B,-n, i, F, j,-m,-C,-f, q, y, b,-u,}
{ y, o,-j,-D,-e, t, t,-e,-D,-j, o, y, 0,-y,-o, j, D, e,-t,-t, e, D, j,-o,-y, 0, y, o,-j,-D,-e, t,}
{ A, k,-p,-v, e, F, f,-u,-q, j, B, a,-z,-l, o, w,-d,-E,-g, t, r,-i,-C,-b, y, m,-n,-x, c, D, h,-s,}
{ C, g,-v,-n, o, u,-h,-B, a, D, f,-w,-m, p, t,-i,-A, b, E, e,-x,-l, q, s,-j,-z, c, F, d,-y,-k, r,}
{ E, c,-B,-f, y, i,-v,-l, s, o,-p,-r, m, u,-j,-x, g, A,-d,-D, a, F, b,-C,-e, z, h,-w,-k, t, n,-q,}
{ F,-a,-E, b, D,-c,-C, d, B,-e,-A, f, z,-g,-y, h, x,-i,-w, j, v,-k,-u, l, t,-m,-s, n, r,-o,-q, p,}
{ D,-e,-y, j, t,-o,-o, t, j,-y,-e, D, 0,-D, e, y,-j,-t, o, o,-t,-j, y, e,-D, 0, D,-e,-y, j, t,-o,}
{ B,-i,-s, r, j,-A,-a, C,-h,-t, q, k,-z,-b, D,-g,-u, p, l,-y,-c, E,-f,-v, o, m,-x,-d, F,-e,-w, n,}
{ z,-m,-m, z, 0,-z, m, m,-z, 0, z,-m,-m, z, 0,-z, m, m,-z, 0, z,-m,-m, z, 0,-z, m, m,-z, 0, z,-m,}
{ x,-q,-g, E,-j,-n, A,-c,-u, t, d,-B, m, k,-D, f, r,-w,-a, y,-p,-h, F,-i,-o, z,-b,-v, s, e,-C, l,}
{ v,-u,-a, w,-t,-b, x,-s,-c, y,-r,-d, z,-q,-e, A,-p,-f, B,-o,-g, C,-n,-h, D,-m,-i, E,-l,-j, F,-k,}
{ t,-y, e, o,-D, j, j,-D, o, e,-y, t, 0,-t, y,-e,-o, D,-j,-j, D,-o,-e, y,-t, 0, t,-y, e, o,-D, j,}
{ r,-C, k, g,-y, v,-d,-n, F,-o,-c, u,-z, h, j,-B, s,-a,-q, D,-l,-f, x,-w, e, m,-E, p, b,-t, A,-i,}
{ p,-F, q,-a,-o, E,-r, b, n,-D, s,-c,-m, C,-t, d, l,-B, u,-e,-k, A,-v, f, j,-z, w,-g,-i, y,-x, h,}
{ n,-B, w,-i,-e, s,-F, r,-d,-j, x,-A, m, a,-o, C,-v, h, f,-t, E,-q, c, k,-y, z,-l,-b, p,-D, u,-g,}
{ l,-x, C,-q, e, g,-s, E,-v, j, b,-n, z,-A, o,-c,-i, u,-F, t,-h,-d, p,-B, y,-m, a, k,-w, D,-r, f,}
{ j,-t, D,-y, o,-e,-e, o,-y, D,-t, j, 0,-j, t,-D, y,-o, e, e,-o, y,-D, t,-j, 0, j,-t, D,-y, o,-e,}
{ h,-p, x,-F, y,-q, i,-a,-g, o,-w, E,-z, r,-j, b, f,-n, v,-D, A,-s, k,-c,-e, m,-u, C,-B, t,-l, d,}
{ f,-l, r,-x, D,-C, w,-q, k,-e,-a, g,-m, s,-y, E,-B, v,-p, j,-d,-b, h,-n, t,-z, F,-A, u,-o, i,-c,}
{ d,-h, l,-p, t,-x, B,-F, C,-y, u,-q, m,-i, e,-a,-c, g,-k, o,-s, w,-A, E,-D, z,-v, r,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, r,-t, v,-x, z,-B, D,-F, E,-C, A,-y, w,-u, s,-q, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F}={4,9,13,17,21,26,30,34,38,42,46,50,53,56,60,63,66,68,72,74,77,78,80,82,84,85,86,87,88,89,90,90}

32点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F,}
{ b, e, h, k, n, q, t, w, z, C, F,-E,-B,-y,-v,-s,-p,-m,-j,-g,-d,-a,-c,-f,-i,-l,-o,-r,-u,-x,-A,-D,}
{ c, h, m, r, w, B, 0,-B,-w,-r,-m,-h,-c,-c,-h,-m,-r,-w,-B, 0, B, w, r, m, h, c, c, h, m, r, w, B,}
{ d, k, r, y, F,-A,-t,-m,-f,-b,-i,-p,-w,-D, C, v, o, h, a, g, n, u, B,-E,-x,-q,-j,-c,-e,-l,-s,-z,}
{ e, n, w, F,-y,-p,-g,-c,-l,-u,-D, A, r, i, a, j, s, B,-C,-t,-k,-b,-h,-q,-z, E, v, m, d, f, o, x,}
{ f, q, B,-A,-p,-e,-g,-r,-C, z, o, d, h, s, D,-y,-n,-c,-i,-t,-E, x, m, b, j, u, F,-w,-l,-a,-k,-v,}
{ g, t, 0,-t,-g,-g,-t, 0, t, g, g, t, 0,-t,-g,-g,-t, 0, t, g, g, t, 0,-t,-g,-g,-t, 0, t, g, g, t,}
{ h, w,-B,-m,-c,-r, 0, r, c, m, B,-w,-h,-h,-w, B, m, c, r, 0,-r,-c,-m,-B, w, h, h, w,-B,-m,-c,-r,}
{ i, z,-w,-f,-l,-C, t, c, o, F,-q,-a,-r, E, n, d, u,-B,-k,-g,-x, y, h, j, A,-v,-e,-m,-D, s, b, p,}
{ j, C,-r,-b,-u, z, g, m, F,-o,-e,-x, w, d, p,-E,-l,-h,-A, t, a, s,-B,-i,-k,-D, q, c, v,-y,-f,-n,}
{ k, F,-m,-i,-D, o, g, B,-q,-e,-z, s, c, x,-u,-a,-v, w, b, t,-y,-d,-r, A, f, p,-C,-h,-n, E, j, l,}
{ l,-E,-h,-p, A, d, t,-w,-a,-x, s, e, B,-o,-i,-F, k, m,-D,-g,-q, z, c, u,-v,-b,-y, r, f, C,-n,-j,}
{ m,-B,-c,-w, r, h, 0,-h,-r, w, c, B,-m,-m, B, c, w,-r,-h, 0, h, r,-w,-c,-B, m, m,-B,-c,-w, r, h,}
{ n,-y,-c,-D, i, s,-t,-h, E, d, x,-o,-m, z, b, C,-j,-r, u, g,-F,-e,-w, p, l,-A,-a,-B, k, q,-v,-f,}
{ o,-v,-h, C, a, D,-g,-w, n, p,-u,-i, B, b, E,-f,-x, m, q,-t,-j, A, c, F,-e,-y, l, r,-s,-k, z, d,}
{ p,-s,-m, v, j,-y,-g, B, d,-E,-a,-F, c, C,-f,-z, i, w,-l,-t, o, q,-r,-n, u, k,-x,-h, A, e,-D,-b,}
{ q,-p,-r, o, s,-n,-t, m, u,-l,-v, k, w,-j,-x, i, y,-h,-z, g, A,-f,-B, e, C,-d,-D, c, E,-b,-F, a,}
{ r,-m,-w, h, B,-c, 0, c,-B,-h, w, m,-r,-r, m, w,-h,-B, c, 0,-c, B, h,-w,-m, r, r,-m,-w, h, B,-c,}
{ s,-j,-B, a,-C,-i, t, r,-k,-A, b,-D,-h, u, q,-l,-z, c,-E,-g, v, p,-m,-y, d,-F,-f, w, o,-n,-x, e,}
{ t,-g, 0, g,-t,-t, g, 0,-g, t, t,-g, 0, g,-t,-t, g, 0,-g, t, t,-g, 0, g,-t,-t, g, 0,-g, t, t,-g,}
{ u,-d, B, n,-k,-E, g,-r,-x, a,-y,-q, h,-F,-j, o, A,-c, v, t,-e, C, m,-l,-D, f,-s,-w, b,-z,-p, i,}
{ v,-a, w, u,-b, x, t,-c, y, s,-d, z, r,-e, A, q,-f, B, p,-g, C, o,-h, D, n,-i, E, m,-j, F, l,-k,}
{ w,-c, r, B,-h, m, 0,-m, h,-B,-r, c,-w,-w, c,-r,-B, h,-m, 0, m,-h, B, r,-c, w, w,-c, r, B,-h, m,}
{ x,-f, m,-E,-q, b,-t,-B, j,-i, A, u,-c, p, F,-n, e,-w,-y, g,-l, D, r,-a, s, C,-k, h,-z,-v, d,-o,}
{ y,-i, h,-x,-z, j,-g, w, A,-k, f,-v,-B, l,-e, u, C,-m, d,-t,-D, n,-c, s, E,-o, b,-r,-F, p,-a, q,}
{ z,-l, c,-q, E, u,-g, h,-v,-D, p,-b, m,-A,-y, k,-d, r,-F,-t, f,-i, w, C,-o, a,-n, B, x,-j, e,-s,}
{ A,-o, c,-j, v, F,-t, h,-e, q,-C,-y, m,-a, l,-x,-D, r,-f, g,-s, E, w,-k, b,-n, z, B,-p, d,-i, u,}
{ B,-r, h,-c, m,-w, 0, w,-m, c,-h, r,-B,-B, r,-h, c,-m, w, 0,-w, m,-c, h,-r, B, B,-r, h,-c, m,-w,}
{ C,-u, m,-e, d,-l, t,-B,-D, v,-n, f,-c, k,-s, A, E,-w, o,-g, b,-j, r,-z,-F, x,-p, h,-a, i,-q, y,}
{ D,-x, r,-l, f,-a, g,-m, s,-y, E, C,-w, q,-k, e,-b, h,-n, t,-z, F, B,-v, p,-j, d,-c, i,-o, u,-A,}
{ E,-A, w,-s, o,-k, g,-c, b,-f, j,-n, r,-v, z,-D,-F, B,-x, t,-p, l,-h, d,-a, e,-i, m,-q, u,-y, C,}
{ F,-D, B,-z, x,-v, t,-r, p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o, q,-s, u,-w, y,-A, C,-E,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F}={90,90,89,88,87,86,85,84,82,80,78,77,74,72,68,66,63,60,56,53,50,46,42,38,34,30,26,21,17,13,9,4}
【0065】
もう一つの実施形態によれば、変換コア行列は次のようなものであってもよい:
16点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={9,17,25,33,41,48,55,61,68,72,77,81,85,86,88,89}

16点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={89,88,86,85,81,77,72,68,61,55,48,41,33,25,17,9}
【0066】
もう一つの実施形態によれば、変換コア行列は次のようなものであってもよい:
16点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={8,17,25,33,40,48,55,62,68,73,77,81,85,87,88,88}

16点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={88, 88, 87, 85, 81, 77, 73, 68, 62, 55, 48, 40, 33, 25, 17, 8}
【0067】
もう一つの実施形態によれば、変換コア行列は次のようなものであってもよい:
16点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={8,16,25,33,41,48,55,62,68,73,77,81,84,87,88,89}

16点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={89, 88, 87, 84, 81, 77, 73, 68, 62, 55, 48, 41, 33, 25, 16, 8}
【0068】
もう一つの実施形態によれば、変換コア行列は次のようなものであってもよい:
16点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={8,16,25,33,40,48,55,62,68,73,77,81,84,87,88,88}

16点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={88,88,87,84,81,77,73,68,62,55,48,40,33,25,16,8}
【0069】
もう一つの実施形態によれば、変換コア行列は次のようなものであってもよい:
16点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={7,18,25,34,40,48,54,61,68,74,77,81,86,86,88,88}

16点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={88,88,86,86,81,77,74,68,61,54,48,40,34,25,18,7}
【0070】
もう一つの実施形態によれば、変換コア行列は次のようなものであってもよい:
16点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={7,17,25,33,40,48,55,62,68,74,77,81,85,87,88,88}

16点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={88,88,87,85,81,77,74,68,62,55,48,40,33,25,17,7}
【0071】
もう一つの実施形態によれば、変換コア行列は次のようなものであってもよい:
16点DST-7:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ c, f, i, l, o, o, l, i, f, c, 0,-c,-f,-i,-l,-o,}
{ e, j, o, m, h, c,-b,-g,-l,-p,-k,-f,-a, d, i, n,}
{ g, n, l, e,-b,-i,-p,-j,-c, d, k, o, h, a,-f,-m,}
{ i, o, f,-c,-l,-l,-c, f, o, i, 0,-i,-o,-f, c, l,}
{ k, k, 0,-k,-k, 0, k, k, 0,-k,-k, 0, k, k, 0,-k,}
{ m, g,-f,-n,-a, l, h,-e,-o,-b, k, i,-d,-p,-c, j,}
{ o, c,-l,-f, i, i,-f,-l, c, o, 0,-o,-c, l, f,-i,}
{ p,-a,-o, b, n,-c,-m, d, l,-e,-k, f, j,-g,-i, h,}
{ n,-e,-i, j, d,-o, a, m,-f,-h, k, c,-p, b, l,-g,}
{ l,-i,-c, o,-f,-f, o,-c,-i, l, 0,-l, i, c,-o, f,}
{ j,-m, c, g,-p, f, d,-n, i, a,-k, l,-b,-h, o,-e,}
{ h,-p, i,-a,-g, o,-j, b, f,-n, k,-c,-e, m,-l, d,}
{ f,-l, o,-i, c, c,-i, o,-l, f, 0,-f, l,-o, i,-c,}
{ d,-h, l,-p, m,-i, e,-a,-c, g,-k, o,-n, j,-f, b,}
{ b,-d, f,-h, j,-l, n,-p, o,-m, k,-i, g,-e, c,-a,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={7,16,25,33,40,48,55,62,68,74,77,81,84,87,88,88}

16点DCT-8:
{ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,}
{ b, e, h, k, n, 0,-n,-k,-h,-e,-b,-b,-e,-h,-k,-n,}
{ c, h, m,-p,-k,-f,-a,-e,-j,-o, n, i, d, b, g, l,}
{ d, k,-p,-i,-b,-f,-m, n, g, a, h, o,-l,-e,-c,-j,}
{ e, n,-k,-b,-h, 0, h, b, k,-n,-e,-e,-n, k, b, h,}
{ f, 0,-f,-f, 0, f, f, 0,-f,-f, 0, f, f, 0,-f,-f,}
{ g,-n,-a,-m, h, f,-o,-b,-l, i, e,-p,-c,-k, j, d,}
{ h,-k,-e, n, b, 0,-b,-n, e, k,-h,-h, k, e,-n,-b,}
{ i,-h,-j, g, k,-f,-l, e, m,-d,-n, c, o,-b,-p, a,}
{ j,-e,-o, a,-n,-f, i, k,-d,-p, b,-m,-g, h, l,-c,}
{ k,-b, n, h,-e, 0, e,-h,-n, b,-k,-k, b,-n,-h, e,}
{ l,-b, i, o,-e, f,-p,-h, c,-m,-k, a,-j,-n, d,-g,}
{ m,-e, d,-l,-n, f,-c, k, o,-g, b,-j,-p, h,-a, i,}
{ n,-h, b,-e, k, 0,-k, e,-b, h,-n,-n, h,-b, e,-k,}
{ o,-k, g,-c, b,-f, j,-n,-p, l,-h, d,-a, e,-i, m,}
{ p,-n, l,-j, h,-f, d,-b, a,-c, e,-g, i,-k, m,-o,}
ここで、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={88,88,87,84,81,77,74,68,62,55,48,40,33,25,16,7}
【0072】
図6は、ある実施形態による、ビデオ・シーケンスのデコードまたはエンコードの方法(600)を示すフローチャートである。いくつかの実装では、図6の一つまたは複数のプロセス・ブロックは、デコーダ(310)によって実行されてもよい。いくつかの実装では、図6の一つまたは複数のプロセス・ブロックは、デコーダ(310)とは別個のまたはデコーダ(310)を含む別の装置または装置のグループ、たとえばエンコーダ(303)によって実行されてもよい。
【0073】
図6を参照するに、第一のブロック(610)において、方法(600)は、エンコードまたはデコードのためのビデオ・シーケンスに関する情報を受領することを含む。
【0074】
第二のブロック(620)では、方法(600)は、ビデオ・シーケンスのエンコードまたはデコードのために、第一のサイズ型の第一の変換コア行列を使うか第二のサイズ型の第二の変換コア行列を使うかを決定することを含む。
【0075】
第三のブロック(630)では、方法(600)は、前記決定に基づいて、決定された第一の変換コア行列または第二の変換コア行列を使ってビデオ・シーケンスをエンコードまたはデコードさせる情報を送信することを含む。
【0076】
図6は方法(600)の例示的な諸ブロックを示しているが、いくつかの実装では、方法(600)は、図6に描かれているものに比べて、追加的なブロック、より少数のブロック、異なるブロックまたは異なる配列をされたブロックを含んでいてもよい。追加的または代替的に、方法(600)のブロックの二つ以上が並列に実行されてもよい。
【0077】
さらに、提案される方法は、処理回路(たとえば一つまたは複数のプロセッサまたは一つまたは複数の集積回路)によって実装されてもよい。一例では、前記一つまたは複数のプロセッサは、非一時的なコンピュータ可読媒体に記憶されているプログラムを実行して、提案される方法の一つまたは複数を実行する。
【0078】
図7は、ある実施形態による、例示的な変換コア行列を示す。たとえば、変換コア行列701は、16点離散サイン変換(DST)-7の変換コア行列を示し、変換コア行列702は、離散コサイン変換(DCT)-8の変換コア行列を示す。
【0079】
図8は、ある実施形態に基づく、ビデオ・シーケンスのデコードまたはエンコードのための装置(800)の簡略化されたブロック図である。
【0080】
図8を参照するに、装置(800)は、受信コード(810)、決定コード(820)および送信コード(830)を含む。
【0081】
決定コード(810)は、前記少なくとも一つのプロセッサに、エンコードまたはデコードのためのビデオ・シーケンスに関する情報を受領させるよう構成される。
【0082】
決定コード(820)は、前記少なくとも一つのプロセッサに、ビデオ・シーケンスのエンコードまたはデコードのために、第一のサイズ型の第一の変換コア行列を使うか第二のサイズ型の第二の変換コア行列を使うかを決定させるよう構成される。
【0083】
送信コード(830)は、前記少なくとも一つのプロセッサに、前記決定に基づいて、決定された第一の変換コア行列または第二の変換コア行列を使ってビデオ・シーケンスをエンコードまたはデコードさせる情報を送信させるよう構成される。
【0084】
上記の技法は、コンピュータ可読命令を使うコンピュータ・ソフトウェアとして実装され、一つまたは複数のコンピュータ可読媒体に物理的に記憶されることができる。
【0085】
図9は、諸実施形態を実装するのに好適なコンピュータ・システム(900)の図である。
【0086】
コンピュータ・ソフトウェアは、任意の好適な機械コードまたはコンピュータ言語を使ってコーディングされることができ、アセンブリ、コンパイル、リンクまたは同様の機構にかけられてコンピュータの中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって直接実行される、または解釈、マイクロコード実行などを通じて実行されることができる命令を含むコードを生成しうる。
【0087】
命令は、たとえばパーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム装置、モノのインターネット装置などを含む、さまざまな型のコンピュータまたはそのコンポーネント上で実行されることができる。
【0088】
コンピュータ・システム(900)について図9に示されるコンポーネントは、例示的な性質であり、実施形態を実装するコンピュータ・ソフトウェアの使用または機能の範囲についていかなる限定をも示唆することは意図されていない。コンポーネントの構成も、コンピュータ・システム(900)の例示的実施形態に示されるコンポーネントのいかなる一つまたは組み合わせに関係するいかなる依存性も要件も、もつと解釈されるべきではない。
【0089】
コンピュータ・システム(900)は、ある種のヒューマン・インターフェース入力装置を含んでいてもよい。そのようなヒューマン・インターフェース入力装置は、たとえば触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚的入力(ジェスチャーなど)、嗅覚的入力(図示せず)を通じた、一または複数の人間のユーザーによる入力に応答してもよい。ヒューマン・インターフェース装置は、オーディオ(発話、音楽、周囲音など)、画像(スキャンされた画像、スチール画像カメラから得られる写真画像など)、ビデオ(二次元ビデオ、両眼視ビデオを含む三次元ビデオ)といった、必ずしも人間による意識的な入力に直接関係しないある種のメディアを捕捉するためにも使用されることができる。
【0090】
入力ヒューマン・インターフェース装置は:キーボード(901)、マウス(902)、トラックパッド(903)、タッチスクリーン(910)、データグローブ(904)、ジョイスティック(905)、マイクロフォン(906)、スキャナ(907)、カメラ(908)(それぞれ一つだけが描かれている)の一つまたは複数を含んでいてもよい。
【0091】
コンピュータ・システム(900)は、ある種のヒューマン・インターフェース出力装置をも含んでいてもよい。そのようなヒューマン・インターフェース出力装置は、たとえば触覚出力、音、光および/または臭い/味を通じて一または複数の人間のユーザーの感覚を刺激してもよい。そのようなヒューマン・インターフェース出力装置は、触覚出力装置(たとえばタッチスクリーン(910)、データグローブ(904)またはジョイスティック(905)による触覚フィードバックだが、入力装置のはたらきはしない触覚フィードバック装置も存在してもよい)、オーディオ出力装置(たとえばスピーカー(909)、ヘッドフォン(図示せず))、視覚的出力装置(たとえば陰極線管(CRT)画面、液晶ディスプレイ(LCD)画面、プラズマ画面、有機発光ダイオード(OLED)画面を含む画面(910);それぞれタッチスクリーン入力機能があってもなくてもよく、それぞれ触覚フィードバック機能があってもなくてもよく、いくつかは二次元視覚的出力または三次元より高い出力を両眼視出力のような手段を通じて出力できてもよい;仮想現実眼鏡(図示せず)、ホログラフィック・ディスプレイおよびスモークタンク(図示せず))およびプリンタ(図示せず)を含んでいてもよい。
【0092】
コンピュータ・システム(900)は、人間がアクセスできる記憶デバイスおよび関連する媒体、たとえばCD/DVDなどの媒体(921)と一緒のCD/DVD ROM/RW(920)を含む光学式媒体、サムドライブ(922)、リムーバブルハードドライブまたは固体ドライブ(923)、レガシーの磁気媒体、たとえばテープおよびフロッピーディスク(図示せず)、特化したROM/ASIC/PLDベースのデバイス、たとえばセキュリティー・ドングル(図示せず)などをも含むことができる。
【0093】
当業者は、本願で開示される主題との関連で使われる「コンピュータ可読媒体」という用語が、伝送媒体、搬送波または他の一時的な信号を含まないことをも理解するべきである。
【0094】
コンピュータ・システム(900)は、一つまたは複数の通信ネットワークへのインターフェース(単数または複数)をも含むことができる。ネットワークはたとえば、無線、有線、光学式であることができる。ネットワークはさらに、ローカル、広域、都市圏、車両用および工業用、リアルタイム、遅延耐性がある、などであることができる。ネットワークの例は、イーサネット、無線LANといったローカルエリアネットワーク、グローバル移動通信システム(GSM)、第三世代(3G)第四世代(4G)、第五世代(5G)、ロングタームエボリューション(LTE)などを含むセルラー・ネットワーク、ケーブルテレビ、衛星テレビおよび地上波放送テレビを含むTV有線もしくは無線の広域デジタル・ネットワーク、CANBusを含む車両用および工業用などを含む。ある種のネットワークは、一般に、ある種の汎用データ・ポートまたは周辺バス((949))(たとえば、コンピュータ・システム(900)のユニバーサルシリアルバス(USB)ポート)に取り付けられた外部ネットワーク・インターフェース・アダプターを要求する;他のネットワークは、一般に、後述するシステム・バスへの取り付けにより、コンピュータ・システム(900)のコアに統合される(たとえば、イーサネット・インターフェースがPCコンピュータ・システムに、またはセルラー・ネットワーク・インターフェースがスマートフォン・コンピュータ・システムに)。これらのネットワークの任意のものを使って、コンピュータ・システム(900)は他のエンティティと通信することができる。そのような通信は、一方向性、受信専用(たとえば放送TV)、一方向性送信専用(たとえばある種のCANbus装置へのCANbus)、または双方向性、たとえばローカルまたは広域デジタル・ネットワークを使った他のコンピュータ・システムへの通信であることができる。ある種のプロトコルおよびプロトコル・スタックは、上記のようなネットワークおよびネットワーク・インターフェースのそれぞれで使用されることができる。
【0095】
上述したヒューマン・インターフェース装置、人間がアクセスできる記憶デバイスおよびネットワーク・インターフェースは、コンピュータ・システム(900)のコア(940)に取り付けられることができる。
【0096】
コア(940)は、一つまたは複数の中央処理ユニット(CPU)(941)、グラフィック処理ユニット(GPU)(942)、フィールドプログラマブルゲートエリア(FPGA)(943)の形の特化したプログラム可能な処理ユニット、ある種のタスクのためのハードウェアアクセラレーター(944)などを含むことができる。これらの装置は、読み出し専用メモリ(ROM)(945)、ランダムアクセスメモリ(RAM)(946)、内蔵大容量記憶、たとえば内部の、ユーザーがアクセスできないハードドライブ、固体ドライブ(SSD)など(947)とともに、システム(948)を通じて接続されてもよい。いくつかのコンピュータ・システムでは、システム・バス(948)は、追加的なCPU、GPUなどによる拡張を可能にするための一つまたは複数の物理的なプラグの形でアクセス可能であることができる。周辺装置は、コアのシステム・バス(948)に直接、または周辺バス(949)を通じて取り付けられることができる。周辺バスのためのアーキテクチャーは、周辺コンポーネント相互接続(PCI)、USBなどを含む。
【0097】
CPU(941)、GPU(942)、FPGA(943)およびアクセラレーター(944)は、組み合わさって、上述したコンピュータ・コードを構成することができるある種の命令を実行することができる。そのコンピュータ・コードは、ROM(945)またはRAM(946)に記憶されることができる。一時的なデータもRAM(946)に記憶されることができ、一方、恒久的なデータはたとえば内蔵大容量記憶(947)に記憶されることができる。メモリ・デバイスの任意のものへの高速の記憶および取り出しは、一つまたは複数のCPU(941)、GPU(942)、大容量記憶(947)、ROM(945)、RAM(946)などと密接に関連することができるキャッシュ・メモリの使用を通じて可能にされることができる。
【0098】
コンピュータ可読媒体は、さまざまなコンピュータ実装される動作を実行するためのコンピュータ・コードを有することができる。媒体およびコンピュータ・コードは、実施形態の目的のために特別に設計され、構築されたものであることができ、あるいはコンピュータ・ソフトウェア分野の当業者によく知られており、利用可能な種類のものであることができる。
【0099】
限定ではなく例として、アーキテクチャー(900)および特にコア(940)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレーターなどを含む)が一つまたは複数の有体なコンピュータ可読媒体において具現されたソフトウェアを実行することの結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介したようなユーザーがアクセスできる大容量記憶に関連する媒体や、コア内部の大容量記憶(947)またはROM(945)のような非一時的な性質の、コア(940)のある種の記憶であることができる。さまざまな実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(940)によって実行されることができる。コンピュータ可読媒体は、具体的な必要性に応じて、一つまたは複数のメモリ・デバイスまたはチップを含むことができる。ソフトウェアは、コア(940)および特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、本稿に記載される具体的なプロセスまたは具体的なプロセスの具体的な部分を実行させることができる。それは、ソフトウェアによって定義されたプロセスに従って、RAM(946)に記憶されたデータ構造を定義し、かかるデータ構造を修正することを含む。追加または代替として、コンピュータ・システムは、論理的な固定結線の結果としての、または他の仕方で回路(たとえばアクセラレーター(944))において具現された、機能を提供することができる。これは、ソフトウェアの代わりにまたはソフトウェアと一緒に動作して、本稿に記載される具体的なプロセスまたは具体的なプロセスの具体的な部分を実行することができる。適宜、ソフトウェアへの言及は論理を含むことができ、逆も成り立つ。コンピュータ可読媒体への言及は、適宜、実行のためのソフトウェアを記憶している回路(たとえば集積回路(IC))、実行のための論理を具現する回路または両方を含むことができる。実施形態は、ハードウェアとソフトウェアの任意の好適な組み合わせを含む。
【0100】
本開示はいくつかの例示的な実施形態を記述してきたが、本開示の範囲内のはいる変更、入れ換えおよびさまざまな代替的な等化物がある。このように、当業者は、本願で明示的に図示または記述されていなくても、本開示の原理を具現し、よってその精神および範囲内である数多くのシステムおよび方法を考案できるであろう。
図1A
図1B
図1C
図1D
図2
図3
図4
図5
図6
図7
図8
図9