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

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

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

<>
  • 特許-高速DST-7 図1
  • 特許-高速DST-7 図2
  • 特許-高速DST-7 図3
  • 特許-高速DST-7 図4
  • 特許-高速DST-7 図5
  • 特許-高速DST-7 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-12
(45)【発行日】2023-06-20
(54)【発明の名称】高速DST-7
(51)【国際特許分類】
   H04N 19/60 20140101AFI20230613BHJP
   H04N 19/42 20140101ALI20230613BHJP
【FI】
H04N19/60
H04N19/42
【請求項の数】 9
【外国語出願】
(21)【出願番号】P 2022018641
(22)【出願日】2022-02-09
(62)【分割の表示】P 2020545577の分割
【原出願日】2019-04-11
(65)【公開番号】P2022051898
(43)【公開日】2022-04-01
【審査請求日】2022-02-16
(31)【優先権主張番号】62/668,065
(32)【優先日】2018-05-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/218,076
(32)【優先日】2018-12-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2016/123091(WO,A1)
【文献】Xin Zhao, et al.,CE6: Fast DST-7/DCT-8 with dual implementation support (Test 6.1.4),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0286r1,12th Meeting: Macao, CN,2018年10月,pp.1-11
【文献】Zhaobin Zhang, et al.,CE6-related: Fast DST-7/DCT-8 with dual implementation support,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0291-v1,11th Meeting: Ljubljana, SI,2018年07月,pp.1-10
【文献】Amir Said, et al.,Complexity Reduction for Adaptive Multiple Transforms (AMTs) using Adjustment Stages,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-J0066-v3,10th Meeting: San Diego, US,2018年04月,pp.1-15
【文献】Moonmo Koo, et al.,Description of SDR video coding technology proposal by LG Electronics,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-J0017-v1,10th Meeting: San Diego, CA,2018年04月,pp.6-13
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを復号するための方法であって、
第1のタプルの変換コア要素の第1のサブセットの第1の和が、前記第1のタプルの残りの変換コア要素の第2のサブセットの第2の和に等しくなるように、nポイントのDST-VII変換コアに関連する変換コア要素のタプルのセットを生成するステップと、
前記nポイントのDST-VII変換コアに関連する前記生成された変換コア要素のタプルのセットを使用して前記ビデオシーケンスに対して変換を実行するステップと
を含み、
前記タプルのセットは、{a,l,A,n,y}、{b,k,B,o,x}、{c,j,C,p,w}、{d,i,D,q,v}、{e,h,E,r,u}及び{f,g,F,s,t}として表され、前記nポイントのDST-VII変換コアは、前記タプルのセットに含まれる前記変換コア要素並びに要素m及び要素zを含む32ポイントのDST-VII変換コアであり、前記32ポイントのDST-VII変換コアの変換ベクトルは、{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}として表される、方法。
【請求項2】
a+l+A=n+y、b+k+B=o+x、c+j+C=p+w、d+i+D=q+v、e+h+E=r+u且つf+g+F=s+tである、請求項1に記載の方法。
【請求項3】
離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを復号するためのデバイスであって、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取って前記プログラムコードによる命令に従って動作するように構成された少なくとも1つのプロセッサと
を含み、前記プログラムコードは、前記少なくとも1つのプロセッサに対して、請求項1又は2に記載の方法を実行させる、デバイス。
【請求項4】
デバイスの1つ以上のプロセッサにより実行されたとき、前記1つ以上のプロセッサに対して、請求項1又は2に記載の方法を実行させるコンピュータプログラム。
【請求項5】
離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを符号化するための方法であって、
第1のタプルの変換コア要素のサブセットの和が、前記第1のタプルの残りの変換コア要素のサブセットの和に等しくなるように、nポイントのDST-VII変換コアに関連する変換コア要素のタプルのセットを生成するステップと、
前記nポイントのDST-VII変換コアに関連する前記生成された変換コア要素のタプルのセットを使用して前記ビデオシーケンスに対して変換を実行するステップと
を含み、
前記タプルのセットは、{a,l,A,n,y}、{b,k,B,o,x}、{c,j,C,p,w}、{d,i,D,q,v}、{e,h,E,r,u}及び{f,g,F,s,t}として表され、前記nポイントのDST-VII変換コアは、前記タプルのセットに含まれる前記変換コア要素並びに要素m及び要素zを含む32ポイントのDST-VII変換コアであり、前記32ポイントのDST-VII変換コアの変換ベクトルは、{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}として表される、方法。
【請求項6】
離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを復号するための方法であって、
a+l+A=n+y、b+k+B=o+x、c+j+C=p+w、d+i+D=q+v、e+h+E=r+u且つf+g+F=s+tとなるように、nポイントのDST-VII変換コアに関連する変換コア要素のタプルのセット{a,l,A,n,y}、{b,k,B,o,x}、{c,j,C,p,w}、{d,i,D,q,v}、{e,h,E,r,u}及び{f,g,F,s,t}を生成するステップと、
前記nポイントのDST-VII変換コアに関連する前記生成された変換コア要素のタプルのセットを使用して前記ビデオシーケンスに対して変換を実行するステップと
を含み、
前記nポイントのDST-VII変換コアは、前記タプルのセットに含まれる前記変換コア要素並びに要素m及び要素zを含む32ポイントのDST-VII変換コアであり、前記32ポイントのDST-VII変換コアの変換ベクトルは、{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}として表される、方法。
【請求項7】
離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを復号するためのデバイスであって、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取って前記プログラムコードによる命令に従って動作するように構成された少なくとも1つのプロセッサと
を含み、前記プログラムコードは、前記少なくとも1つのプロセッサに対して、請求項に記載の方法を実行させる、デバイス。
【請求項8】
デバイスの1つ以上のプロセッサにより実行されたとき、前記1つ以上のプロセッサに対して、請求項に記載の方法を実行させるコンピュータプログラム。
【請求項9】
離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを符号化するための方法であって、
a+l+A=n+y、b+k+B=o+x、c+j+C=p+w、d+i+D=q+v、e+h+E=r+u且つf+g+F=s+tとなるように、nポイントのDST-VII変換コアに関連する変換コア要素のタプルのセット{a,l,A,n,y}、{b,k,B,o,x}、{c,j,C,p,w}、{d,i,D,q,v}、{e,h,E,r,u}及び{f,g,F,s,t}を生成するステップと、
前記nポイントのDST-VII変換コアに関連する前記生成された変換コア要素のタプルのセットを使用して前記ビデオシーケンスに対して変換を実行するステップと
を含み、
前記nポイントのDST-VII変換コアは、前記タプルのセットに含まれる前記変換コア要素並びに要素m及び要素zを含む32ポイントのDST-VII変換コアであり、前記32ポイントのDST-VII変換コアの変換ベクトルは、{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}として表される、方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本出願は、米国特許商標庁において2018年5月7日に出願された米国特許出願第62/668,065号に対する35 U.S.C. §119に基づく優先権を主張し、その開示の全内容を参照により援用する。
【0002】
[技術分野]
本開示は、例えば、VVC(Versatile Video Coding)のようなHEVC(High Efficiency Video Coding)を超える次世代ビデオ符号化技術に関する。より具体的には、本開示は、離散正弦変換タイプVII(DSTタイプ7)を実装するための高速化方法を対象とする。
【背景技術】
【0003】
ITU-T VCEG(Q6/16)及びISO/IEC MPEG(JTC 1/SC 29/WG 11)は、2013年にH.265/HEVC(High Efficiency Video Coding)規格(バージョン1)を公表し、2014年(バージョン2)、2015年(バージョン3)及び2016年(バージョン4)に更新版を提供している。ITUは、HEVC規格(その拡張機能を含む)をかなり上回る圧縮能力を有する将来のビデオ符号化技術の標準化の潜在的なニーズを研究している。
【0004】
2017年10月に、ITUは、Joint Call for Proposals on Video Compression with Capability beyond HEVC (CfP)を発行した。2018年2月15日までに、標準ダイナミックレンジ(SDR, standard dynamic range)に対する合計で22個のCfPの回答、高ダイナミックレンジ(HDR, high dynamic range)に対する12個のCfPの回答、及び360個のビデオカテゴリに対する12個のCfPの回答がそれぞれ提出された。
【0005】
2018年4月に、全ての受け付けられたCfPの回答が122 MPEG / 10th JVET (Joint Video Exploration Team ― Joint Video Expert Team)の会合において評価された。慎重な評価によって、JVETは、HEVCを越える次世代ビデオ符号化の標準化、すなわち、いわゆるVVC(Versatile Video Coding)を正式に開始した。この現在のバージョンはVTM(VVC Test Model)、すなわちVTM 1である。
【0006】
高速化方法が広く研究されているDCT-2と比較すると、DST-7の実装はDCT-2よりも依然として非常に効率が悪い。例えば、VTM 1は行列乗算を含む。
【0007】
JVET-J0066では、DCT-2、DCT-3、DST-2及びDST-3を含むDCT-2ファミリーにおける変換に調整段階を適用することによりJEM7における異なるタイプのDCT及びDSTを近似する方法が提案されており、調整段階は比較的少ない演算数を必要とする疎行列を使用した行列乗算を示す。
【0008】
JVET-J001では、2n+1ポイントの離散フーリエ変換(DFT, Discrete Fourier Transform)を使用したnポイントのDST‐7を実装するための方法が提案されている。
【発明の概要】
【0009】
本開示の一態様によれば、離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを復号するための方法は、nポイントのDST-VII変換コアに関連する変換コア要素のタプルのセットを生成するステップであって、第1のタプルの変換コア要素の第1のサブセットの第1の和は、第1のタプルの残りの変換コア要素の第2のサブセットの第2の和に等しい、ステップと、変換コア要素のタプルのセットを生成することに基づいてnポイントのDST-VII変換コアを生成するステップと、nポイントのDST-VII変換コアを使用してブロックに対して変換を実行するステップとを含む。
【0010】
本開示の一態様によれば、離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを復号するためのデバイスは、プログラムコードを記憶するように構成された少なくとも1つのメモリと、プログラムコードを読み取ってプログラムコードによる命令に従って動作するように構成された少なくとも1つのプロセッサとを含み、プログラムコードは、少なくとも1つのプロセッサに対して、nポイントのDST-VII変換コアに関連する変換コア要素のタプルのセットを生成させるように構成された生成コードであって、第1のタプルの変換コア要素の第1のサブセットの第1の和は、第1のタプルの残りの変換コア要素の第2のサブセットの第2の和に等しく、生成コードは、少なくとも1つのプロセッサに対して、変換コア要素のタプルのセットを生成することに基づいてnポイントのDST-VII変換コアを生成させるように更に構成される、生成コードと、少なくとも1つのプロセッサに対して、nポイントのDST-VII変換コアを使用してブロックに対して変換を実行させるように構成された実行コードとを含む。
【0011】
本開示の一態様によれば、命令を記憶した非一時的なコンピュータ読み取り可能媒体において、命令は、デバイスの1つ以上のプロセッサにより実行されたとき、1つ以上のプロセッサに対して、nポイントのDST-VII変換コアに関連する変換コア要素のタプルのセットを生成するステップであって、第1のタプルの変換コア要素の第1のサブセットの第1の和は、第1のタプルの残りの変換コア要素の第2のサブセットの第2の和に等しい、ステップと、変換コア要素のタプルのセットを生成することに基づいてnポイントのDST-VII変換コアを生成するステップと、nポイントのDST-VII変換コアを使用してブロックに対して変換を実行するステップとを実行させる。
【図面の簡単な説明】
【0012】
開示の対象物の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
図1】離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを復号するための方法の例示的なプロセスのフローチャートである。
図2】本開示の一実施形態による通信システムの簡略ブロック図である。
図3】ストリーミング環境におけるビデオエンコーダ及びデコーダの配置の図である。
図4】本開示の一実施形態によるビデオデコーダの機能ブロック図である。
図5】本開示の一実施形態によるビデオエンコーダの機能ブロック図である。
図6】一実施形態によるコンピュータシステムの図である。
【発明を実施するための形態】
【0013】
[解決すべき課題]
DST-7の効率的な高速化実装の欠如は、実用的なビデオコーデック実装についてのDST-7の適用を制限する。
【0014】
異なる実装シナリオでは、より規則的な処理を含むので、行列乗算ベースの実装が好ましいが、場合によっては、演算数をかなり減少させる高速化方法が好ましい。したがって、HEVCにおけるDCT-2設計のように、行列乗算ベースの実装と比較して実質的に同一の結果を出力する高速化方法を特定することが非常に望ましく、これは行列乗算と部分的バタフライ(partial butterfly)実装との双方をサポートする。
【0015】
DST-7のための既存の高速化方法、例えば、JVET-J0066及びJVET-J0017は、16ビット中間演算、整数演算を含む、ビデオコーデックにおける変換設計の全ての望ましい特徴をサポートできず、及び/又は、高速化方法の実装と行列乗算ベースの実装との間の同一の結果を提供できない。
【0016】
[詳細な説明]
本開示は、DST-7の変換ベースにおける個々の特徴/パターンの利用に基づいて、行列乗算ベースの実装と比較して、実質的に同様の結果を可能にする。このように、本明細書におけるいくつかの実装は、エンコーダ及び/又はデコーダの計算リソースを節約し、効率を向上させる。
【0017】
以下のように、順方向変換で使用される16ポイントのDST-7整数変換コアは、{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}={8,17,25,33,41,48,55,62,67,73,77,81,84,87,88,89}として表すことができる。
【0018】
上記のように、DST-7変換コアの要素値は、a+j=l、b+i=m、c+h=n、d+g=o、e+f=pの特性を含む。
【0019】
一実施形態によれば、16ポイントの変換についての入力ベクトルは、x={x0,x1,x2,...,x15}であり、出力変換係数ベクトルは、y={y0,y1,y2,...,y15}である。
【0020】
変換コア要素間の上記の関係に基づいて、3つの乗算演算を必要とするa・x0+j・x9+l・x11を実装する代わりに、一実施形態は、2つの乗算演算を必要とするa・(x0+x11)+j・(x9+x11)を実装する。
【0021】
このように、y0を計算するために、16個の乗算演算を必要とするy0=a・x0+b・x1+c・x2+d・x3+e・x4+f・x5+g・x6+h・x7+i・x8+j・x9+k・x10+l・x11+m・x12+n・x13+o・x14+p・x15のベクトル毎の演算を実行する代わりに、一実施形態は、11個の乗算演算を必要とするy0=a・(x0+x11)+b・(x1+x12)+c・(x2+x13)+d・(x3+x14)+e・(x4+x15)+f・(x5+x15)+g・(x6+x14)+h・(x7+x13)+i・(x8+x12)+j・(x9+x11)+k・x10の演算を実行し、実質的に同様の結果を導出する。
【0022】
さらに、y2、y3、y6、y8、y9、y11、y12、y14、y15を計算する場合、同様の実装が実現でき、(x0+x11)、(x1+x12)、(x2+x13)、(x3+x14)、(x4+x15)、(x5+x15)、(x6+x14)、(x7+x13)、(x8+x12)、(x9+x11)及びk・10の中間結果がそれぞれ再利用できる。
【0023】
一実施形態によれば、第2の基底ベクトルから始まるそれぞれの第3の変換基底ベクトルは、いくつかの複製パターンを含む。例えば、第2の基底ベクトルは以下のように表すことができる。
【0024】
【数1】
さらに、第2の基底ベクトルは、上記のように3つのセグメント(例えば、segment 0、segment 1及びsegment 2)に分割できる。3つのセグメントは、符号の変化によって複製されたもの、言い換えると、互いに「反転(flipped)」したものである。このように、y1を計算する場合、16個の乗算演算を必要とするy1=c・x0+f・x1+i・x2+l・x3+o・x4+o・x5+l・x6+i・x7+f・x8+c・x9-(c・x11+f・x12+i・x13+l・x14+o・x15)の演算を実行する代わりに、一実施形態は、実質的に同様の結果を導出しつつ、5個の乗算演算を必要とするy0=c・(x0+x9-x11)+f・(x1+x8-x12)+i・(x2+x7-x13)+l・(x3+x6-x14)+o・(x4+x5-x15)の演算を実行してもよい。
【0025】
さらに、y1、y4、y7、y10及びy13を計算する場合の計算も同様に実行でき、(x0+x9-x11)、(x1+x8-x12)、(x2+x7-x13)、(x3+x6-x14)及び(x4+x5-x15)の中間結果が再利用できる。
【0026】
逆変換について、変換コア行列は順方向変換に使用される変換コア行列の転置であり、上記の2つの特徴は逆変換にも適用可能である。さらに、第10の基底ベクトルは、{k,0,-k,k,0,-k,k,0,-k,k,0,-k,k,0,-k,k}であり、単一の一意の絶対値(すなわち、k)のみを含む点に留意すべきである。したがって、11個の乗算演算を必要とするy10=k・x0-k・x2+k・x3-k・x5+k・x6-k・x8+k・x9-k・x11+k・x12-k・x14+k・x15のベクトル毎の乗算を使用してy10を計算する代わりに、一実施形態は、実質的に同様の結果を導出しつつ、単一の乗算演算を必要とするy10=k・(x0-x2+x3-x5+x6-x8+x9-x11+x12-x14+x15)の演算を実行してもよい。
【0027】
64ポイントの順方向及び逆方向DST-7について、上記の2つの特徴も利用可能であり、したがって、上記の同様の高速化方法も適用可能である。
【0028】
32ポイントの順方向及び逆方向DST-7について、第2の特徴が利用可能であり、すなわち、基底ベクトルの部分に複製又は反転セグメントが存在する。したがって、第2の特徴に基づいて上述した同様の高速化方法も適用可能である。また、第1の特徴は、以下に説明するように異なる定式化によって、32ポイントの順方向及び逆方向DST-7変換コアで利用可能である。
【0029】
32ポイントの変換コアの要素は、{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}の32個の異なる数を含む(符号の変化を考慮しない)。
【0030】
要素の固定ポイントの割り当ての例は、{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,49,53,56,60,63,66,69,71,74,76,78,81,82,84,85,87,88,89,89,90,90}である。
【0031】
32ポイントの浮動小数点DST-7変換コアの要素値は、#0:a+l+A=n+y; #1:b+k+B=o+x; #2:c+j+C=p+w; #3:d+i+D=q+v; #4:e+h+E=r+u;及び#5:f+g+F=s+tの特性を有する点に留意すべきである。
【0032】
上記の6個の式のそれぞれに含まれる要素は、五項(quintuple)を構成し、例えば、{a,l,A,n,y}は五項#0であり、{b,k,B,o,x}は他の五項#1である。
【0033】
一実施形態によれば、32ポイントの変換についての入力ベクトルはx={x0,x1,x2,...,x31}であり、出力変換係数ベクトルはy={y0,y1,y2,...,y31}である。
【0034】
変換コア要素の間の上記の関係に基づいて、5個の乗算演算を必要とするa・x0+l・x11+n・x13+y・x24+A・x26を実装する代わりに、一実施形態は、実質的に同様の結果を導出しつつ、a・x0+l・x11+n・x13+y・x24+(n+y-a-l)・x26の演算を実行する。また、これは、4個の乗算演算を必要とするa・(x0-x26)+l・(x11-x26)+n・(x13+x26)+y・(x24+x26)として実装できる。
【0035】
同様に、上記の縮小形式の乗算演算は、他の5つの五項にも適用可能であり、例えば、五項#0、(x0-x26)、(x11-x26)、(x13+x26)、(x24+x26)についての中間結果は、予め計算され、変換係数のそれぞれを計算するために再利用できる。
【0036】
しかし、要素{a,b,c,...,F}の整数値の割り当ては、丸め誤差により、上記の式に正確には従わない可能性がある点に留意すべきである。例えば、64・√32を使用してスケーリングして最も近い整数に丸めることにより割り当てられた{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,49,53,56,60,63,66,69,71,74,76,78,81,82,84,85,87,88,89,89,90,90}の場合である。
【0037】
五項#1について、b+k+B=9+46+88=143であるが、o+x=60+82=142である。
【0038】
したがって、行列乗算と高速化方法との間で実質的に同様の結果を実現するために、一実施形態は、本明細書において定義される式と実質的に同様に実行するために、各五項の要素を調整する。例えば、五項#1は{b,k,o,x,B}={9,46,60,82,87}になるように調整される。或いは、五項#1は{b,k,o,x,B}={9,46,60,83,88}になるように調整される。或いは、五項#1は{b,k,o,x,B}={9,46,61,82,88}になるように調整される。或いは、五項#1は{b,k,o,x,B}={9,45,60,82,88}になるように調整される。或いは、五項#1は{b,k,o,x,B}={8,46,60,82,88}になるように調整される。
【0039】
256個の乗算演算及び256個の加算/減算演算を必要とする行列乗算ベースの実装、又は152個の乗算演算及び170個の加算/減算演算を必要とするJVET-J0066の実装と比較して、本明細書におけるいくつかの実装は、実質的に同様の結果を提供しつつ、126個の乗算演算126及び170個の加算/減算演算を可能にする。このように、本明細書におけるいくつかの実装は、向上した効率を可能にし、エンコーダ及び/又はデコーダの計算リソースを節約する。
【0040】
図1は、離散正弦変換(DST)タイプVII変換コアを使用してビデオシーケンスを復号するための方法の例示的なプロセス100のフローチャートである。いくつかの実装では、図1の1つ以上の処理ブロックは、デコーダにより実行されてもよい。いくつかの実装では、図1の1つ以上の処理ブロックは、エンコーダのように、デコーダから分離した他のデバイス若しくはデバイスのグループ、又はデコーダを含む他のデバイス若しくはデバイスのグループにより実行されてもよい。
【0041】
図1に示すように、プロセス100は、nポイントのDST-VII変換コアに関連する変換コア要素のタプルのセットを生成することを含んでもよく、第1のタプルの変換コア要素の第1のサブセットの第1の和は、第1のタプルの残りの変換コア要素の第2のサブセットの第2の和に等しい(ブロック110)。
【0042】
図1に更に示すように、プロセス100は、変換コア要素のタプルのセットを生成することに基づいてnポイントのDST-VII変換コアを生成することを含んでもよい(ブロック120)。
【0043】
図1に更に示すように、プロセス100は、nポイントのDST-VII変換コアを使用してブロックに対して変換を実行することを含んでもよい。
【0044】
一実施形態によれば、1つの変換コアに存在する別個の絶対要素値は、いくつかの所定の定数と共に、複数のタプルに分割でき、各タプルについて、絶対要素値の一部の和は、同じタプル内の残りの絶対要素値の和と同一である。
【0045】
例えば、実施形態では、タプルは3つの要素を含む三項であり、2つの要素の絶対値の和は、残りの1つの要素の絶対値と同一である。或いは、タプルは4つの要素を含む四項であり、2つの要素の絶対値の和は、残りの2つの要素の絶対値の和と同一である。或いは、タプルは4つの要素を含む四項であり、3つの要素の絶対値の和は、残りの1つの要素の絶対値の和と同一である。或いは、タプルは5つの要素を含む五項であり、3つの要素の絶対値の和は、残りの2つの要素の絶対値の和と同一である。
【0046】
一実施形態によれば、1つの変換コアに存在する既存の個別の絶対要素値に加えて、2のべき乗(例えば、1、2、4、8、16、32、64等)である所定の定数も、タプル内の要素として考慮できる。
【0047】
一実施形態によれば、16ポイント及び64ポイントのDST-7変換コアに存在する別個の絶対要素値は、3つの要素をそれぞれ含む複数の三項に分割される。さらに、また、或いは、32ポイントのDST-7変換コアに存在する別個の絶対要素値は、5つの要素をそれぞれ含む複数の五項に分割される。
【0048】
一実施形態によれば、整数変換コアについて、変換コアの整数要素は、上記の特徴を正確に満たすように更に調整されてもよく、すなわち、1つのタプル内の要素の一部の絶対値の和は、変換コアの良好な直交性を維持しつつ、同じタプル内の残りの要素の絶対値の和と同一である。例えば、32ポイントの整数DST-7コアについて、第2のタプル{b,k,o,x,B}は{9,46,60,82,87}に調整される。或いは、32ポイントの整数DST-7コアについて、第2のタプル{b,k,o,x,B}は{9,46,60,83,88}に調整される。或いは、32ポイントの整数DST-7コアについて、第2のタプル{b,k,o,x,B}は{9,46,61,82,88}に調整される。或いは、32ポイントの整数DST-7コアについて、第2のタプル{b,k,o,x,B}は{9,45,60,82,88}に調整される。或いは、32ポイント整数のDST-7コアについて、第2のタプル{b,k,o,x,B}は{8,46,60,82,88}に調整される。或いは、32ポイント整数のDST-7コアについて、第6のタプル{f,g,s,t,B}は{26,30,71,74,89}に調整される。或いは、32ポイント整数のDST-7コアについて、第6のタプル{b,k,o,x,B}は{26,30,71,75,90}に調整される。或いは、32ポイント整数のDST-7コアについて、第6のタプル{b,k,o,x,B}は{26,30,72,74,90}に調整される。或いは、32ポイント整数のDST-7コアについて、第6のタプル{b,k,o,x,B}は{26,29,71,74,90}に調整される。或いは、32ポイント整数のDST-7コアについて、第6のタプル{b,k,o,x,B}は{25,30,71,74,90}に調整される。
【0049】
一実施形態によれば、変換コアの要素は、所定の定数でスケーリングして最も近い整数に丸めることにより導出された要素値に対して+1又は-1のみで更に調整されてもよい。
【0050】
一実施形態によれば、変換コアの要素は、所定の定数でスケーリングして最も近い整数に丸めることにより導出された要素値に対して+1、-1、+2及び-2のみで更に調整されてもよい。
【0051】
一実施形態によれば、調整された変換コアの直交性は、行列A・AT-s・Iの絶対値の和により測定される。ここで、sは整数変換コアを導出するための予め定義されたスケーリング係数であり、Iは単位行列である。
【0052】
図1は、プロセス100の例示的なブロックを示しているが、いくつかの実装では、プロセス100は、図1に示すものよりも多くのブロック、少ないブロック、異なるブロック又は異なるように配置されたブロックを含んでもよい。さらに、また、或いは、プロセス100のブロックのうちの2つ以上は、並列に実行されてもよい。
【0053】
図2は、本開示の一実施形態による通信システム(200)の簡略ブロック図を示す。通信システム(200)は、ネットワーク(250)を介して相互接続された少なくとも2つの端末(210~220)を含んでもよい。データの一方向伝送のために、第1の端末(210)は、ネットワーク(250)を介して他の端末(220)に伝送するために、ローカル位置のビデオデータを符号化してもよい。第2の端末(220)は、ネットワーク(250)から他の端末の符号化ビデオデータを受信し、符号化データを復号し、復元されたビデオデータを表示してもよい。一方向性データ伝送は、メディア提供アプリケーション等において一般的なものでもよい。
【0054】
図2は、例えば、テレビ会議中に発生し得る符号化ビデオの双方向伝送をサポートするために設けられた第2の端末の対(230、240)を示す。データの双方向伝送のために、各端末(230、240)は、ネットワーク(250)を介して他の端末に伝送するために、ローカル位置でキャプチャされたビデオデータを符号化してもよい。また、各端末(230、240)は、他の端末により送信された符号化ビデオデータを受信してもよく、符号化データを復号してもよく、復元されたビデオデータをローカルディスプレイデバイスに表示してもよい。
【0055】
図2において、端末(210~240)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されることがあるが、本開示の原理は、それに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤ及び/又は専用のテレビ会議機器での用途がある。ネットワーク(250)は、例えば、有線及び/又は無線通信ネットワークを含む、端末(210~240)の間で符号化ビデオデータを伝達するいずれかの数のネットワークを表す。通信ネットワーク(250)は、回線交換チャネル及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。本説明の目的では、ネットワーク(250)のアーキテクチャ及びトポロジは、以下に説明しない限り、本開示の動作には重要でなくてもよい。
【0056】
図3は、開示の対象物のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示の対象物は、例えば、テレビ会議、デジタルTV、デジタルメディア(CD、DVD、メモリスティック等を含む)上の圧縮ビデオの記憶等を含む、他のビデオ可能なアプリケーションにも同様に適用可能である。
【0057】
ストリーミングシステムはキャプチャサブシステム(313)を含んでもよく、当該キャプチャサブシステム(313)は、例えば、非圧縮ビデオサンプルストリーム(302)を生成するビデオソース(301)(例えば、デジタルカメラ)を含んでもよい。このサンプルストリーム(302)は、符号化ビデオビットストリームと比較したときに高いデータ量を強調するために太線で示されており、カメラ(301)に結合されたエンコーダ(303)により処理されてもよい。エンコーダ(303)は、以下により詳細に説明するように、開示の対象物の態様を可能にするため或いは実装するためのハードウェア、ソフトウェア又はこれらの組み合わせを含んでもよい。符号化ビデオビットストリーム(304)は、サンプルストリームと比較したときに低いデータ量を強調するために細線で示されており、将来の使用のためにストリーミングサーバ(305)に記憶されてもよい。1つ以上のストリーミングクライアント(306、308)は、ストリーミングサーバ(305)にアクセスして、符号化ビデオビットストリーム(304)のコピー(307、309)を取得してもよい。クライアント(306)は、符号化ビデオビットストリーム(307)の入力コピーを復号し、ディスプレイ(312)又は他のレンダリングデバイス(図示せず)上でレンダリングできる出力ビデオサンプルストリーム(311)を生成するビデオデコーダ(310)を含んでもよい。いくつかのストリーミングシステムでは、ビデオビットストリーム(304、307、309)は、特定のビデオ符号化/圧縮標準に従って符号化されてもよい。これらの標準の例は、ITU-T勧告H.265を含む。開発中のビデオ符号化標準は、VVC(Versatile Video Coding)として非公式に知られている。開示の対象物は、VVCの背景において使用されてもよい。
【0058】
図4は、本発明の一実施形態によるビデオデコーダ(310)の機能ブロック図でもよい。
【0059】
受信機(410)は、デコーダ(310)により復号されるべき1つ以上の符号化ビデオシーケンスを受信してもよく、同一又は他の実施形態では、一度に1つの符号化ビデオシーケンスを受信してもよく、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスとは独立している。符号化ビデオシーケンスは、チャネル(412)から受信されてもよく、チャネル(412)は、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。受信機(410)は、符号化ビデオデータを他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム)と共に受信してもよく、これらのデータは、それぞれの使用エンティティ(図示せず)に転送されてもよい。受信機(410)は、符号化ビデオシーケンスを他のデータから分離してもよい。ネットワークジッタを防止するために、バッファメモリ(415)は、受信機(410)とエントロピーデコーダ/パーサ(420)(以下では「パーサ」という)との間に結合されてもよい。受信機(410)が、十分な帯域幅及び制御可能性を有する記憶/転送デバイスから、或いは、アイソクロナスネットワークからデータを受信している場合、バッファ(415)は必要なくてもよく或いは小さくすることができる。インターネットのようなベストエフォート型パケットネットワークでの使用については、バッファ(415)が必要とされてもよく、比較的大きくすることができ、有利には適応的なサイズとすることができる。
【0060】
ビデオデコーダ(310)は、エントロピー符号化ビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含んでもよい。これらのシンボルのカテゴリは、デコーダ(310)の動作を管理するために使用される情報と、ディスプレイ(312)のようなレンダリングデバイスを制御するための潜在的な情報とを含む。当該レンダリングデバイスは、図4に示されているように、デコーダの不可欠な部分ではないが、デコーダに結合されてもよい。レンダリングデバイスの制御情報は、補足エンハンスメント情報(SEIメッセージ, Supplementary Enhancement Information)又はビデオユーザビリティ情報(VUI, Video Usability Information)パラメータセットフラグメント(図示せず)の形式でもよい。パーサ(420)は、受信した符号化ビデオシーケンスを解析/エントロピー復号してもよい。符号化ビデオシーケンスの符号化は、ビデオ符号化技術又は標準に従ってもよく、可変長符号化、ハフマン符号化、コンテキスト感度を伴う或いは伴わない算術符号化等を含む、当業者に周知の原理に従ってもよい。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化ビデオシーケンスから、ビデオデコーダ内の画素のサブグループのうち少なくとも1つについてのサブグループパラメータのセットを抽出してもよい。サブグループは、グループオブピクチャ(GOP, Group of Pictures)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU, Coding Unit)、ブロック、変換ユニット(TU, Transform Unit)、予測ユニット(PU, Prediction Unit)等を含んでもよい。エントロピーデコーダ/パーサはまた、符号化ビデオシーケンスから、変換係数、量子化パラメータ(QP, quantizer parameter)値、動きベクトル等のような情報を抽出してもよい。
【0061】
パーサ(420)は、シンボル(421)を生成するために、バッファ(415)から受信したビデオシーケンスに対してエントロピー復号/解析動作を実行してもよい。パーサ(420)は、符号化データを受信し、特定のシンボル(421)を選択的に復号してもよい。さらに、パーサ(420)は、特定のシンボル(421)が動き補償予測ユニット(453)、スケーラ/逆変換ユニット(451)、イントラ予測ユニット(452)又はループフィルタ(456)に提供されるべきか否かを決定してもよい。
【0062】
シンボル(421)の再構成は、符号化ビデオピクチャ又はその部分のタイプ(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック)及び他の要因に依存して、複数の異なるユニットが関与してもよい。どのユニットがどのように関与するかは、パーサ(420)により符号化ビデオシーケンスから解析されたサブグループ制御情報により制御されてもよい。パーサ(420)と以下の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0063】
上記の機能ブロックの他に、デコーダ(310)は、概念的に、以下に説明するような複数の機能ユニットに細分されてもよい。商用的な制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに一体化されてもよい。しかし、開示の対象物を説明する目的で、以下の機能ユニットに概念的に細分することが適切である。
【0064】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、パーサ(420)からシンボル(621)として、制御情報(どの変換を使用するべきか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む)と共に、量子化された変換係数を受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力できるサンプル値を含むブロックを出力してもよい。
【0065】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ符号化ブロックに関連してもよく、すなわち、前に再構成されたピクチャからの予測情報を使用していないが、カレントピクチャの前に再構成された部分からの予測情報を使用できるブロックに関連してもよい。このような予測情報は、イントラピクチャ予測ユニット(452)により提供されてもよい。場合によっては、イントラピクチャ予測ユニット(452)は、カレントピクチャ(部分的に再構成されたピクチャ)(456)から取り出された周囲の既に再構成された情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。場合によっては、アグリゲータ(455)は、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)により提供された出力サンプル情報に追加する。
【0066】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インター符号化されて潜在的に動き補償されたブロックに関連してもよい。このような場合、動き補償予測ユニット(453)は、参照ピクチャメモリ(457)にアクセスして、予測に使用されるサンプルを取り出してもよい。ブロックに関連するシンボル(421)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によりスケーラ/逆変換ユニット(451)の出力(この場合には、残差サンプル又は残差信号と呼ばれる)に追加されてもよい。動き補償予測ユニット(453)に利用可能な、動き補償予測ユニットが予測サンプルを取り出す参照ピクチャメモリ(457)内のアドレスは、例えば、X、Y及び参照ピクチャ成分を有することができるシンボル(421)の形式で、動きベクトルにより制御されてもよい。また、動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリから取り出されるサンプル値の補間、動きベクトル予測メカニズム等を含んでもよい。
【0067】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)内の様々なループフィルタリング技術を受けてもよい。ビデオ圧縮技術はループ内フィルタ技術を含んでもよく、当該ループ内フィルタ技術は、符号化ビデオシーケンス(符号化ビデオビットストリームとも呼ばれる)に含まれるパラメータにより制御され、パーサ(420)からシンボル(421)としてループフィルタユニット(456)に利用可能にされるが、符号化ピクチャ又は符号化ビデオシーケンスの(復号順に)前の部分の復号の間に取得されたメタ情報に応答すると共に、前に再構成されてループフィルタリングされたサンプル値にも応答してもよい。
【0068】
ループフィルタユニット(456)の出力はサンプルストリームでもよく、当該サンプルストリームは、レンダリングデバイス(312)に出力されると共に、将来のインターピクチャ予測に使用するために参照ピクチャメモリ(457)に記憶されてもよい。
【0069】
特定の符号化ピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用されてもよい。符号化ピクチャが完全に再構成され、符号化ピクチャが(例えば、パーサ(420)により)参照ピクチャとして識別されると、カレント参照ピクチャ(656)は参照ピクチャバッファ(457)の一部となってもよく、新たなカレントピクチャメモリが、後続の符号化ピクチャの再構成を開始する前に再割り当てされてもよい。
【0070】
ビデオデコーダ(310)は、ITU-T Rec. H.265のような標準に文書化され得る所定のビデオ圧縮技術に従って復号動作を実行してもよい。符号化ビデオシーケンスがビデオ圧縮技術文書又は標準に指定されており、特にそのプロファイルの文書に指定されているように、ビデオ圧縮技術又は標準のシンタックスに従うという意味で、符号化ビデオシーケンスは、使用されているビデオ圧縮技術又は標準により指定されたシンタックスに適合してもよい。また、コンプライアンスのために必要なことは、符号化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルにより定義される範囲内にあることである。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒当たりのメガサンプル単位で測定される)、最大参照ピクチャサイズ等を制限する。場合によっては、レベルによって設定される制限は、仮想参照デコーダ(HRD, Hypothetical Reference Decoder)仕様及び符号化ビデオシーケンスで伝達されるHRDバッファ管理についてのメタデータを通じて更に制限されてもよい。
【0071】
一実施形態では、受信機(410)は、符号化ビデオと共に更なる(冗長な)データを受信してもよい。更なるデータは、符号化ビデオシーケンスの一部として含まれてもよい。更なるデータは、データを適切に復号するために、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(310)により使用されてもよい。更なるデータは、例えば、時間、空間又は信号雑音比(SNR, signal noise ratio)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形式でもよい。
【0072】
図5は、本発明の一実施形態によるビデオエンコーダ(303)の機能ブロック図でもよい。
【0073】
ビデオエンコーダ(303)は、ビデオソース(301)(エンコーダの一部ではない)からビデオサンプルを受信してもよく、当該ビデオソース(301)は、エンコーダ(303)により符号化されるべきビデオ画像をキャプチャしてもよい。
【0074】
ビデオソース(301)は、デジタルビデオサンプルストリームの形式でエンコーダ(303)により符号化されるべきソースビデオシーケンスを提供してもよく、当該デジタルビデオサンプルストリームは、いずれかの適切なビット深度(例えば、8ビット、10ビット、12ビット等)、いずれかの色空間(例えば、BT.601 Y CrCB、RGB等)及びいずれかの適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)でもよい。メディア提供システムにおいて、ビデオソース(301)は、事前に準備されたビデオを記憶する記憶デバイスでもよい。テレビ会議システムでは、ビデオソース(303)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラでもよい。ビデオデータは、順に見たときに動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間配列として構成されてもよく、各画素は、使用中のサンプリング構造、色空間等に依存して、1つ以上のサンプルを含んでもよい。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0075】
一実施形態によれば、エンコーダ(303)は、リアルタイムで或いはアプリケーションによって要求されるいずれかの他の時間制約下で、ソースビデオシーケンスのピクチャを、符号化ビデオシーケンス(543)に符号化及び圧縮してもよい。適切な符号化速度を実現することは、コントローラ(550)の1つの機能である。コントローラは、以下に説明するように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確にするために図示されていない。コントローラにより設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技術のラムダ値等)、ピクチャサイズ、グループオブピクチャ(GOP)のレイアウト、最大動きベクトル探索範囲等を含んでもよい。当業者は、特定のシステム設計のために最適化されたビデオエンコーダ(303)に関連するコントローラ(550)の他の機能を容易に認識できる。
【0076】
いくつかのビデオエンコーダは、当業者が「符号化ループ」として認識するもので動作する。非常に簡略化した説明として、符号化ループは、エンコーダ(530)(ここでは「ソースコーダ」という)(例えば、符号化されるべき入力ピクチャ及び参照ピクチャに基づいてシンボルを生成することを担う)と、エンコーダ(303)に埋め込まれた(ローカル)デコーダ(533)とを含んでもよい。デコーダ(533)は、(リモート)デコーダが生成するのと同様に(シンボルと符号化ビデオビットストリームとの間のいずれかの圧縮が、開示の対象物において検討されるビデオ圧縮技術において可逆であるように)、サンプルデータを生成するようにシンボルを再構成する。この再構成されたサンプルストリームは、参照ピクチャメモリ(534)に入力される。シンボルストリームの復号は、デコーダの位置(ローカル又はリモート)と独立したビット単位の正確な結果をもたらすので、参照ピクチャバッファの内容も、ローカルエンコーダとリモートエンコーダとの間でビット単位で正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期(例えば、チャネルエラーの理由で同期が維持できない場合の結果として生じるドリフトを含む)のこの基本原理は、当業者に周知である。
【0077】
「ローカル」デコーダ(533)の動作は、「リモート」デコーダ(310)と同じでもよく、これは、図4に関連して上記において既に詳細に説明した。しかし、図5を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)及びパーサ(420)による符号化ビデオシーケンスへのシンボルの符号化/復号が可逆になり得るので、チャネル(412)、受信機(410)、バッファ(415)及びパーサ(420)を含むデコーダ(310)のエントロピー復号部分は、ローカルデコーダ(533)に完全には実装されなくてもよい。
【0078】
この時点で行うことができる考察は、デコーダ内に存在する解析/エントロピー復号を除く如何なるデコーダ技術も、必然的に対応するエンコーダ内に実質的に同一の機能形式で存在する必要があることである。エンコーダ技術の説明は、包括的に記載されるデコーダ技術の逆であるので、省略できる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0079】
その動作の一部として、ソースコーダ(530)は、動き補償予測符号化を実行してもよく、当該動き補償予測符号化は、「参照フレーム」として指定されたビデオシーケンスからの1つ以上の前に符号化されたフレームを参照して入力ピフレーム予測的に符号化する。このように、符号化エンジン(532)は、入力フレームの画素ブロックと、入力フレームに対する予測参照として選択され得る参照フレームの画素ブロックとの間の差を符号化する。
【0080】
ローカルビデオデコーダ(533)は、ソースコーダ(530)により生成されたシンボルに基づいて、参照フレームとして指定され得るフレームの符号化ビデオデータを復号してもよい。符号化エンジン(532)の動作は、有利には、不可逆処理でもよい。符号化ビデオデータがビデオデコーダ(図5に図示せず)で復号され得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカになり得る。ローカルビデオデコーダ(533)は、参照フレームに対してビデオデコーダにより実行され得る復号処理を複製し、再構成された参照フレームを参照ピクチャキャッシュ(534)に記憶させてもよい。このように、エンコーダ(303)は、遠端のビデオデコーダにより取得される(送信エラーのない)再構成された参照ピクチャとして、共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶してもよい。
【0081】
予測器(535)は、符号化エンジン(532)のための予測探索を実行してもよい。すなわち、符号化されるべき新たなフレームについて、予測器(535)は、(候補参照画素ブロックとしての)サンプルデータ又は特定のメタデータ(参照ピクチャ動きベクトル、ブロック形状等)を求めて参照ピクチャメモリ(534)を検索してもよい。これらは、新たなピクチャについての適切な予測参照として機能してもよい。予測器(535)は、適切な予測参照を検出するために、サンプルブロック毎画素ブロック毎(sample block-by-pixel block)に動作してもよい。場合によっては、予測器(535)により取得された検索結果によって決定された入力ピクチャは、参照ピクチャメモリ(534)に記憶された複数の参照ピクチャから引き出された予測参照を有してもよい。
【0082】
コントローラ(550)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ビデオコーダ(530)の符号化動作を管理してもよい。
【0083】
全ての上記の機能ユニットの出力は、エントロピーコーダ(545)におけるエントロピー符号化を受けてもよい。エントロピーコーダは、例えば、ハフマン符号化、可変長符号化、算術符号化等のような当業者に知られた技術に従って、シンボルを可逆圧縮することにより、様々な機能ユニットにより生成されたシンボルを符号化ビデオシーケンスに変換する。
【0084】
送信機(540)は、エントロピーコーダ(545)により生成された符号化ビデオシーケンスをバッファして、通信チャネル(560)を介した送信の準備をしてもよく、当該通信チャネル(560)は、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。送信機(540)は、ビデオコーダ(303)からの符号化ビデオデータを、送信されるべき他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム(図示せず))とマージしてもよい。
【0085】
コントローラ(550)は、エンコーダ(303)の動作を管理してもよい。符号化中に、コントローラ(550)は、各符号化ピクチャに、特定の符号化ピクチャタイプを割り当ててもよい。当該符号化ピクチャタイプは、各ピクチャに適用され得る符号化技術に影響を与えてもよい。例えば、ピクチャは、しばしば、以下のフレームタイプのうち1つとして割り当てられてもよい。
【0086】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、符号化及び復号され得るものでもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形例と、それぞれの用途及び特徴を認識する。
【0087】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。
【0088】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。同様に、複数予測ピクチャは、単一のブロックの再構成のために、2つより多くの参照ピクチャ及び関連するメタデータを使用してもよい。
【0089】
一般的に、ソースピクチャは、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8又は16×16のサンプルのブロック)に細分され、ブロック毎に符号化されてもよい。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てにより決定される通り、他の(既に符号化された)ブロックを参照して予測的に符号化されてもよい。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測又はイントラ予測)。Pピクチャの画素ブロックは、1つ前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つ前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して予測的に符号化されてもよい。
【0090】
ビデオコーダ(303)は、ITU-T Rec. H.265のような所定のビデオ符号化技術又は標準に従って符号化動作を実行してもよい。その動作において、ビデオエンコーダ(303)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測符号化動作を含む様々な圧縮動作を実行してもよい。したがって、符号化ビデオデータは、使用されているビデオ符号化技術又は標準により指定されたシンタックスに適合してもよい。
【0091】
一実施形態では、送信機(540)は、符号化ビデオと共に更なるデータを送信してもよい。ビデオコーダ(530)は、符号化ビデオシーケンスの一部としてこのようなデータを含んでもよい。更なるデータは、時間/空間/SNRエンハンスメント層、冗長ピクチャ及びスライス、補足エンハンスメント情報(SEI, Supplementary Enhancement Information)メッセージ、ビジュアルユーザビリティ情報(VUI, Visual Usability Information)パラメータセットフラグメント等のような他の形式の冗長データを含んでもよい。
【0092】
さらに、提案の方法は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)により実装されてもよい。一例では、1つ以上のプロセッサは、提案の方法のうち1つ以上を実行するために、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。
【0093】
上記の技術は、コンピュータ読み取り可能命令を使用してコンピュータソフトウェアとして実装されてもよく、1つ以上のコンピュータ読み取り可能媒体に物理的に記憶されてもよい。例えば、図6は、開示対象物の特定の実施形態を実施するのに適したコンピュータシステム1200を示す。
【0094】
コンピュータソフトウェアは、いずれかの適切な機械コード又はコンピュータ言語を使用して符号化されてもよく、当該機械コード又はコンピュータ言語は、命令を含むコードを生成するために、アセンブリ、コンパイル、リンク又は類似のメカニズムを受けてもよく、当該命令は、コンピュータ中央処理装置(CPU, central processing unit)、グラフィックス処理ユニット(GPU, Graphics Processing Unit)等により、直接的に或いはインタープリタ、マイクロコード実行等を通じて実行されてもよい。
【0095】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットのデバイス等を含む様々なタイプのコンピュータ又はその構成要素上で実行されてもよい。
【0096】
コンピュータシステム1200について図6に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関する如何なる限定も示唆することを意図するものではない。また、構成要素の構成も、コンピュータシステム1200の例示的な実施形態に示される構成要素のいずれか1つ又は組み合わせに関する如何なる依存性又は要件も有するものとして解釈されるべきではない。
【0097】
コンピュータシステム1200は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(音声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通じて、1人以上の人間のユーザによる入力に応答してもよい。また、ヒューマンインタフェースデバイスは、オーディオ(会話、音楽、周辺音等)、画像(スキャンされた画像、静止画カメラから取得された写真画像等)、ビデオ(2次元ビデオ、立体ピクチャを含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用されてもよい。
【0098】
入力ヒューマンインタフェースデバイスは、キーボード601、マウス602、トラックパッド603、タッチ画面610、データグローブ1204、ジョイスティック605、マイクロフォン606、スキャナ607、カメラ608のうち1つ以上を含んでもよい。
【0099】
また、コンピュータシステム1200は、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光及び嗅覚/味覚を通じて、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面610、データグローブ1204又はジョイスティック605による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスが存在してもよい)と、オーディオ出力デバイス(スピーカ609、ヘッドフォン(図示せず)等)と、視覚出力デバイス(それぞれがタッチ画面入力機能を有しても有さなくてもよく、それぞれが触覚フィードバック機能を有しても有さなくてもよく、いくつかが2次元視覚出力又は立体出力のような手段を通じた3次元以上の出力を出力可能でもよい陰極線管(CRT)画面、液晶ディスプレイ(LCD)画面、プラズマ画面、有機発光ダイオード(OLED)画面を含む画面610、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))と、プリンタ(図示せず)とを含んでもよい。
【0100】
また、コンピュータシステム1200は、CD/DVD又は同様の媒体621を有するCD/DVD ROM/RW620を含む光媒体のような人間がアクセス可能な記憶デバイス及び関連する媒体、サムドライブ622、取り外し可能ハードドライブ又はソリッドステートドライブ623、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊なROM/ASIC/PLDに基づくデバイス等を含んでもよい。
【0101】
また、当業者は、ここに開示の対象物に関連して使用される用語「コンピュータ読み取り可能媒体」が伝送媒体、搬送波又は他の非一時的な信号を含まないことを理解すべきである。
【0102】
また、コンピュータシステム1200は、1つ以上の通信ネットワークへのインタフェースを含んでもよい。ネットワークは、例えば、無線、有線、光でもよい。ネットワークは、ローカル、広域、メトロポリタン、車両及び産業、リアルタイム、遅延耐性等でもよい。ネットワークの例は、イーサネット、無線LAN、セルラネットワーク(GSM(global systems for mobile communications)、第3世代(3G)、第4世代(4G)、第5世代(5G)、ロングタームエボリューション(LTE)等を含む)、TV有線又は無線広域デジタルネットワーク(ケーブルTV、衛星TV及び地上放送TVを含む)、車両及び産業(CANBusを含む)等を含む。特定のネットワークは、一般的に、特定の汎用データポート又は周辺バス649に取り付けられる外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム1200のユニバーサルシリアルバス(USB)ポート等)を必要とし、他のネットワークインタフェースアダプタは、一般的に、以下に説明するシステムバス(例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラネットワーク)に取り付けられることにより、コンピュータシステム1200のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム1200は、他のエンティティと通信することができる。このような通信は、一方向の受信のみ(例えば、放送TV)、一方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)でもよく、或いは、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向でもよい。特定のプロトコル及びプロトコルスタックは、上記のようなネットワーク及びネットワークインタフェースのそれぞれにおいて使用されてもよい。
【0103】
上記のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス及びネットワークインタフェースは、コンピュータシステム1200のコア640に取り付けられてもよい。
【0104】
コア640は、1つ以上の中央処理装置(CPU)641、グラフィックス処理ユニット(GPU)642、フィールドプログラマブルゲートアレイ(FPGA)643の形式の特殊なプログラム可能処理ユニット、特定のタスク用のハードウェアアクセラレータ644等を含んでもよい。これらのデバイスは、読み取り専用メモリ(ROM)645、ランダムアクセスメモリ(RAM)646、内部大容量記憶装置(内部のユーザアクセス不可能なハードドライブ、ソリッドステートドライブ(SSD)等)647と共に、システムバス1248を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス1248は、更なるCPU、GPU等による拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能となってもよい。周辺デバイスは、コアのシステムバス1248に直接取り付けられてもよく、或いは、周辺バス649を通じて取り付けられてもよい。周辺バスのアーキテクチャは、ペリフェラルコンポーネントインターコネクト(PCI)、USB等を含む。
【0105】
CPU641、GPU642、FPGA643及びアクセラレータ644は特定の命令を実行してもよく、当該特定の命令は、組み合わせによって上記のコンピュータコードを構成してもよい。当該コンピュータコードは、ROM645又はRAM646に記憶されてもよい。また、一時的なデータは、RAM646に記憶されてもよいが、永続的なデータは、例えば、内部大容量記憶装置647に記憶されてもよい。1つ以上のCPU641、GPU642、大容量記憶装置647、ROM645、RAM646等と密接に関連してもよいキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索が可能になってもよい。
【0106】
コンピュータ読み取り可能媒体は、様々なコンピュータに実装された動作を実行するためのコンピュータコードを有してもよい。媒体及びコンピュータコードは、本開示の目的のために特に設計及び構築されたものでよく、或いは、コンピュータソフトウェア分野における当業者に周知で入手可能なようなものでもよい。
【0107】
限定ではなく一例として、アーキテクチャ1200、具体的には、コア640を有するコンピュータシステムは、1つ以上の有形のコンピュータ読み取り可能媒体に具現されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供できる。このようなコンピュータ読み取り可能媒体は、コア内部の大容量記憶装置647又はROM645のような非一時的な性質のコア640の特定の記憶装置と同様に、上記のようなユーザがアクセス可能な大容量記憶装置に関連する媒体でもよい。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶されてコア640により実行されてもよい。コンピュータ読み取り可能媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含んでもよい。ソフトウェアは、コア640、具体的には、その中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM646に記憶されたデータ構造を定義し、ソフトウェアによって定義された処理に従ってこのようなデータ構造を修正することを含む、本明細書における特定の処理又は特定の処理の特定の部分を実行させてもよい。さらに、また、或いは、コンピュータシステムは、回路(例えば、アクセラレータ644)内に配線されたロジック又は他の方法で具現されたロジックの結果として、機能を提供してもよく、当該回路は、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行するために、ソフトウェアの代わりに或いはソフトウェアと共に動作してもよい。ソフトウェアへの言及は、ロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能媒体への言及は、必要に応じて、実行するためのソフトウェアを記憶する回路(集積回路(IC)等)、実行するためのロジックを具現する回路又はこれらの双方を含んでもよい。本開示は、ハードウェア及びソフトウェアのいずれかの適切な組み合わせを含む。
【0108】
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換及び様々な代替の等価物が存在する。したがって、当業者は、本明細書に明示的に図示又は記載されていないが、本開示の原理を具現し、したがって、本開示の真意及び範囲内にある多数のシステム及び方法を考案することができることが認識される。
図1
図2
図3
図4
図5
図6