JP6357345B2 - ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法 - Google Patents
ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法 Download PDFInfo
- Publication number
- JP6357345B2 JP6357345B2 JP2014094764A JP2014094764A JP6357345B2 JP 6357345 B2 JP6357345 B2 JP 6357345B2 JP 2014094764 A JP2014094764 A JP 2014094764A JP 2014094764 A JP2014094764 A JP 2014094764A JP 6357345 B2 JP6357345 B2 JP 6357345B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- input values
- values
- matrix
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000006243 chemical reaction Methods 0.000 title claims description 53
- 238000000034 method Methods 0.000 title claims description 33
- 239000011159 matrix material Substances 0.000 claims description 97
- 229940050561 matrix product Drugs 0.000 claims description 31
- 230000009466 transformation Effects 0.000 claims description 31
- 230000001419 dependent effect Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 2
- 230000003252 repetitive effect Effects 0.000 claims 3
- 238000007792 addition Methods 0.000 description 32
- 238000000844 transformation Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 7
- 229920006395 saturated elastomer Polymers 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 239000011800 void material Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000001154 acute effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
c0 c1 c2 …cM−1
c1 c2 c3 …cM
c2 c3 c4 … cM+1
…
cM−1 cM cM+1 … c2M−2
の形を有する行列による前記M個の内部入力値の行列積に等価であるベース演算を実行するよう構成されたベース回路と、を備え、変換回路は、前記一連の演算を実行する間、N個の入力値から複数セットの前記M個の内部入力値を生成することと、複数セットの前記M個の内部出力値を生成するために各セットのM個の内部入力値を前記ベース回路に提供することと、前記複数セットのM個の内部出力値からN個の出力値を導出することと、を行うよう構成される。
c0c1 c2 …cM−1
c1c2 c3 …cM
c2c3 c4 … cM+1
…
cM−1cM cM+1 … c2M−2
の形を有する行列によるM個の内部入力値の行列積に等価であるベース演算を実行するよう構成される。
c0 c1 c2 …cM−1
c1 c2 c3 …cM
c2 c3 c4 … cM+1
…
cM−1 cM cM+1 … c2M−2
の形を有する行列による前記M個の内部入力値の行列積に等価であるベース演算を実行するためにベース回路を用いることと、を含み、変換回路による前記一連の演算の実行は、N個の入力値から複数セットの前記M個の内部入力値を生成することと、複数セットの前記M個の内部出力値を生成するためにベース回路に各セットのM個の内部入力値を提供することと、前記複数セットのM個の内部出力値からN個の出力値を導出することと、を含む。
c0 c1 c2 …cM−1
c1 c2 c3 …cM
c2 c3 c4 … cM+1
…
cM−1 cM cM+1 … c2M−2
の形を有する行列による前記M個の内部入力値の行列積に等価であるベース演算を実行するためのベース回路手段と、を備え、変換手段は、前記一連の演算を実行する間、N個の入力値から複数セットの前記M個の内部入力値を生成し、複数セットの前記M個の内部出力値を生成するために各セットのM個の内部入力値をベース回路手段に提供し、前記複数セットのM個の内部出力値からN個の出力値を導出する。
このセクションでは、N点の逆離散コサイン変換演算に対して要求される演算をいかにして計算するかについて説明する。なお点の個数は2の累乗である。まず予測が以下の式
のように定義される。
により与えられる行i、列jにおける要素を有する行列により定義され得る。実際には、係数ciはc(k)=cos(kπ/2N)の概算された整数または小数の推定値であるが、特定の値を有する係数には依存せず、単に行列が上記の形を有するのみである。以下の行列
は、小さいNに対するTNを示す。入力ベクトルxおよび出力ベクトルyは式y=TNxにより関連付けられる。
qN(k)=p2N(3k) これは1と2N−1との間の奇数である。 (式1)
tN(k)=s2N(3k) (式2)
のように、さらに定義される。2つの並べ替え、PNおよびQNは次の式
のように定義される。
により、
となるような新しい並べ替えられた変換
が与えられる。ハンケル行列がさらに、次の式
のように定義されるならば、第1の関係(R1)は、次の式
のようになり、第2の関係(R2)は、次の式
のようになる。関係(R1)は
を
およびLN/2に減少させ、引き続きN個の加算および減算が行われる。
を加算に減少させ、引き続き
による1つの乗算とL4の形の行列による(3n−3+…+1)個の乗算とが行われ、引き続き加算および減算が行われる。
このセクションは、いかにして前のセクションの理論をN=16の実際的なケースに適用するかについて説明する。
は、次の式
のように並べ替えられる。並べ替えられたベクトルは、次の式
のように、それぞれ4つの要素の4つのグループまたはベクトルに分割される。同様に、これらの係数は次の式
のように並べ替えおよびグループ化がなされる。出力ベクトルは次の4つの並べ替えられたグループ、すなわち
に分割される。関係R1を適用することにより、次の式
が与えられる。関係R1およびR2を適用することにより次の式
が与えられる。これは、並べ替えを1つの
および4つのL4の演算に減少させる。
次に、N点の逆離散コサイン変換TN(c0,…,cN−1)=NTN −1は、次の式
により与えられる行i、列jにおける要素を有する行列により定義され得る。
と定義し、入力並べ替えおよび出力並べ替えを交換し、関係(R1)を反転させると、関係(R3)が次の式
のように得られる。N=2n≧8に対して、関係(R3)および(R2)を反復することは、再帰的に
を加算および減算に減少させ、引き続き
による1つの乗算とL4の形の行列による(3n−3+…+1)個の乗算とが行われ、引き続き加算が行われる。この関係は同様に逆変換の例にも適用され得る。
以下のCコード例は、逆変換TNおよびフォワード変換FNを、それぞれ関数fact_idct_1d_i16()および関数fact_fdct_1d_i16()において実装する。
*
* p(2×k×n+r)=r 0<=r<nである場合
* 2×n−r n<=r<2×nである場合
*/
static unsigned int p_n(unsigned int k, unsigned int n)
{
k=k%(2×n);
if (k>=n)
{
k=2×n−k;
}
return k;
}
/* 符号s()を計算する
*
* s(4×k×n+r)=+1 0≦r<nまたは3×n<r<4×nである場合
* 0 r==nまたはr==3×nである場合
* −1 n<r<2×nである場合
*/
static int s_n(unsigned int k, unsigned int n)
{
int s=+1;
k=k%(4×n);
if (k==n || k==3×n)
{
s=0;
}
else if (k>=n && k<3×n)
{
s=−1;
}
return s;
}
/* 線形相関
*
* y[i]=x[0]×c[i]+…+x[n−1]×c[i+n−1]
*
* n×nの相関は再帰により4×4の演算に細分化される。
*/
static void L_n(
int32_t *y, //出力(n個の要素)
const int32_t *x, //入力(n個の要素)
const int32_t *c, //係数(2×n−1個の要素)
unsigned int n //サイズ
)
{
assert(n>=4);
if (n==4)
{
/* L4を9個の乗算で実装する
* 係数は事前計算され得る
*/
int32_t v0=(x[0]+x[1])×(c[1]−c[3]);
int32_t v1=(x[2]+x[3])×(c[5]−c[3]);
int32_t v2=(x[0]+x[1]+x[2]+x[3])×c[3];
int32_t w0=v0+v2;
int32_t w1=v1+v2;
v0=x[0]×((c[0]−c[2])−(c[1]−c[3]));
v1=x[2]×((c[4]−c[2])−(c[5]−c[3]));
v2=(x[0]+x[2])×(c[2]−c[3]);
y[0]=w0+v0+v2;
y[2]=w1+v1+v2;
v0=x[1]×((c[2]−c[4])−(c[1]−c[3]));
v1=x[3]×((c[6]−c[4])−(c[5]−c[3]));
v2=(x[1]+x[3])×(c[4]−c[3]);
y[1]=w0+v0+v2;
y[3]=w1+v1+v2;
}
else /* n>4 */
{
int32_t x2[MAX_ITRANS_SIZE/4];
int32_t c0[MAX_ITRANS_SIZE/2];
int32_t c1[MAX_ITRANS_SIZE/2];
int32_t y2[MAX_ITRANS_SIZE/4];
unsigned int i;
unsigned int n2=n>>1;
/* 再帰の前に加算減算 */
for (i=0; i<n2; i++)
{
x2[i]=x[i]+x[n2+i];
}
/* 係数は事前計算され得る */
for (i=0; i<n−1; i++)
{
c0[i]=c[i]−c[n2+i];
c1[i]=c[n+i]−c[n2+i];
}
/* 再帰 */
L_n(y2,x2,c+n2,n2); // x[i]+x[(n/2)+i]に対してL4
L_n(y,x,c0,n2); // x[i]に対してL4
L_n(y+n2,x+n2,c1,n2);// x[(n/2)+i]に対してL4
/* 再帰後に追加的な加算/減算 */
for (i=0; i<n2; i++)
{
y[i]=y[i]+y2[i];
y[n2+i]=y[n2+i]+y2[i];
}
}
}
/* 行列T〜_n(c)を並べ替えられた入力および出力を用いて計算する */
static void TT_n(
int32_t *y, // 出力
const int32_t *x, // 入力
const int32_t *c, // 係数
unsigned int n //サイズ
)
{
/* 因数分解されたバージョン */
assert(n>=4);
if (n==4)
{
/* 6つの乗算における4点IDCT */
int32_t v0,v1,v2;
assert(c[0]==c[1]);
v0=x[2]×c[2];
v1=x[3]×c[3];
v2=(x[0]+x[1])×c[0];
y[0]=v2+v0+v1;
y[2]=v2−v0−v1;
v0=x[2]×c[3];
v1=x[3]×c[2];
v2=(x[0]−x[1])×c[0];
y[1]=v2+v0−v1;
y[3]=v2−v0+v1;
}
else /* n>4 */
{
int32_t c1[MAX_ITRANS_SIZE]; //拡張された相関
unsigned int i;
unsigned int n2 = n>>1;
/* 係数は事前計算され得る */
for (i=0; i<n2; i++)
{
c1[i]=c[n2+i];
c1[n2+i]=−c1[i];
}
/* 再帰 */
TT_n(y,x,c,n2);
L_n(y+n2,x+n2,c1,n2);
/* 再帰後に追加的な加算/減算 */
for (i=0; i<n2; i++)
{
int32_t y0=y[i];
int32_t y1=y[i+n2];
y[i]=y0+y1;
y[i+n2]=y0−y1;
}
}
}
/* 行列F〜_n(c)を並べ替えられた入力および出力を用いて計算する */
static void FF_n(
int32_t *y, //出力
int32_t *x, //入力(バタフライにより変更)
const int32_t *c, //係数
unsigned int n //サイズ
)
{
/* 因数分解されたバージョン */
assert(n>=4);
if (n==4)
{
/* 6つの乗算における4点FDCT */
int32_t v0,v1,v2;
assert(c[0]==c[1]);
v0=(x[0]−x[2])×c[2];
v1=(x[1]−x[3])×c[3];
v2=(x[0]+x[1]+x[2]+x[3])×c[0];
y[0]=v2;
y[2]=v0+v1;
v0=(x[0]−x[2])×c[3];
v1=(x[1]−x[3])×c[2];
v2=(x[0]−x[1]+x[2]−x[3])×c[0];
y[1]=v2;
y[3]=v0−v1;
}
else /* n>4 */
{
int32_t c1[MAX_ITRANS_SIZE]; //拡張された相関
unsigned int i;
unsigned int n2 = n>>1;
/* 係数は事前計算され得る */
for (i=0; i<n2; i++)
{
c1[i]=c[n2+i];
c1[n2+i]=−c1[i];
}
/* 再帰の前に加算減算 */
for (i=0; i<n2; i++)
{
int32_t x0=x[i];
int32_t x1=x[i+n2];
x[i]=x0+x1;
x[i+n2]=x0−x1;
}
/* 再帰 */
FF_n(y,x,c,n2);
L_n(y+n2,x+n2,c1,n2);
}
}
/* 因数分解された1次元線形整数IDCT */
void fact_idct_1d_i16
(
int16_t *y, //出力
const int16_t *x, //入力
const int16_t *c, //係数
unsigned int n //サイズ
unsigned int shift, //右シフト
int32_t R //丸め
)
{
int32_t Y[MAX_ITRANS_SIZE];
int32_t X[MAX_ITRANS_SIZE];
int32_t C[MAX_ITRANS_SIZE];
unsigned int i;
unsigned int k;
unsigned int m;
unsigned int q;
unsigned int p;
int s;
/* 入力に符号付き並べ替えを適用する */
X[0]=x[0];
C[0]=c[0];
m=n/2;
for (k=1;k<n;k=k<<1,m=m>>1)
{
q=1;
for (i=0;i<k;i++)
{
p=m×p_n(q,2×k);
s=s_n(q,2×k);
X[k+i]=(s>0)?x[p]:−x[p];
C[k+i]=(s>0)?c[p]:−c[p];
q=(q×3)%(8×n);
}
}
/* 並べ替えられた変換T〜_nを計算する */
TT_n(Y,X,C,n); // XおよびYが変更されたことに注意
/* 出力に(符号なし)並べ替えを適用する */
q=1;
for (i=0;i<n;i++)
{
p=p_n(q, 2×n)>>1;
y[p]=(Y[i]+R)>>shift;
q=(q×3)%(8×n);
}
}
/* 因数分解された1次元線形整数FDCT */
void fact_fdct_1d_i16
(
int16_t *y, //出力
const int16_t *x, //入力
const int16_t *c, //係数
unsigned int n //サイズ
unsigned int shift,//右シフト
int32_t R //丸め
)
{
int32_t Y[MAX_ITRANS_SIZE];
int32_t X[MAX_ITRANS_SIZE];
int32_t C[MAX_ITRANS_SIZE];
unsigned int i;
unsigned int k;
unsigned int m;
unsigned int q;
unsigned int p;
int s;
/* 入力に(符号なし)並べ替えを適用する */
q=1;
for (i=0;i<n;i++)
{
p=p_n(q, 2×n)>>1;
X[i]=x[p];
q=(q×3)%(8×n);
}
/* 係数に符号付き並べ替えを適用する */
C[0]=c[0];
m=n/2;
for (k=1;k<n;k=k<<1,m=m>>1)
{
q=1;
for (i=0;i<k;i++)
{
p=m×p_n(q,2×k);
s=s_n(q,2×k);
C[k+i]=(s>0)?c[p]:−c[p];
q=(q×3)%(8×n);
}
}
/* 並べ替えられた変換F〜_nを計算する */
FF_n(Y,X,C,n);
/* 出力に符号付き並べ替えを適用する */
y[0]=(Y[0]+R)>>shift;
m=n/2;
for (k=1;k<n;k=k<<1,m=m>>1)
{
q=1;
for (i=0;i<k;i++)
{
p=m×p_n(q,2×k);
s=s_n(q,2×k);
int32_t yy=(s>0)?Y[k+i]:−Y[k+i];
y[p]=(yy+R)>>shift;
q=(q×3)%(8×n);
}
}
}
Claims (23)
- ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置であって、
N個の入力値を受け取り、前記N個の入力値の前記空間領域と前記周波数領域との間の前記変換を表すN個の出力値を生成するための一連の演算を実行するよう構成された変換回路と、
反復的な行列積を可能とする様式で因数分解された行列積と等価の演算を行うように、前記変換回路により生成されたM個(ただしMは4以上)の内部入力値を受け取り、当該M個の内部入力値と所定の形を有する行列との行列積と等価のベース演算を行い、M個の内部出力値を生成するように構成されたベース回路であって、前記所定の形を有する行列は、係数cの配列を含み且つ
c0 c1 c2 …cM−1
c1 c2 c3 …cM
c2 c3 c4 … cM+1
…
cM−1 cM cM+1 … c2M−2
の形を有する行列である、ベース回路と
を備え、
前記変換回路は、前記一連の演算を実行する間、前記N個の入力値から複数セットの前記M個の内部入力値を生成することと、複数セットの前記M個の内部出力値を生成するために各セットのM個の内部入力値を前記ベース回路に提供して前記ベース回路が前記M個の内部入力値の各セットごとに前記ベース演算を反復して実行するようにしたことと、前記ベース回路から戻された前記複数セットのM個の内部出力値からN個の出力値を導出することと、を行うよう構成される、
データ処理装置。 - 係数cの配列を含む前記行列はハンケル行列であり、
前記ベース回路は、前記係数c0からc2M−2に割り当てられた前記値に関わらず、前記ハンケル行列による前記M個の内部入力値の行列積に等価である前記ベース演算を実行するよう構成される、
請求項1に記載のデータ処理装置。 - 空間領域と周波数領域との間で実行される前記変換は離散コサイン変換である、請求項1に記載のデータ処理装置。
- 前記変換回路が、
K個のグループの入力値を生成するために、前記受け取られたN個の入力値を並べ替えるよう構成された並べ替え回路であって、K=N/Mであり、したがって各グループはM個のメンバーを有し、各メンバーは前記受け取られたN個の入力値のうちの1つである、並べ替え回路と、
各セットの前記M個の内部入力値を生成するために、選択されたグループからの対応するメンバーに対して加算演算および減算演算のうちの少なくとも1つを実行するよう構成された加算器回路と
を備える、請求項1〜請求項3のいずれか1項に記載のデータ処理装置。 - 前記変換回路が、
N個の中間出力値を生成するために、前記ベース回路により生成された前記複数セットの前記M個の内部出力値に対して加算演算および減算演算のうちの少なくとも1つを実行するよう構成された、追加的加算器回路
をさらに備える、請求項4に記載のデータ処理装置。 - 前記変換回路が、
シフトされた中間出力値を生成するために、前記N個の中間出力値に対してシフト演算を実行するよう構成されたシフト回路
をさらに備える、請求項5に記載のデータ処理装置。 - 前記シフト演算が飽和演算を含む、請求項6に記載のデータ処理装置。
- 前記変換回路が、
前記N個の出力値を生成するために、前記N個のシフトされた中間出力値を並べ替えるよう構成された、追加的並べ替え回路
をさらに備える、請求項6または請求項7に記載のデータ処理装置。 - 各セットのM個の内部入力値に対して、前記ベース演算の実行時に前記ベース回路により用いられる対応するセットの係数値を生成するよう構成された係数生成回路をさらに備える、請求項1〜請求項8のいずれか1項に記載のデータ処理装置。
- 前記空間領域から前記周波数領域へのフォワード変換および前記周波数領域から前記空間領域への逆変換のうちの1つを実行するよう構成された、請求項1〜請求項9のいずれか1項に記載のデータ処理装置。
- 各セットのM個の内部入力値に対して前記係数生成回路により生成された前記対応するセットの係数値が、データ処理装置がフォワード変換を実行するよう構成されているかまたは逆変換を実行するよう構成されているかに関わらず、同一である、請求項9に従属する場合の請求項10に記載のデータ処理装置。
- 前記変換回路が前記ベース回路に提供するための追加的セットのM個の内部入力値を生成するようさらに構成され、前記ベース回路が、離散コサイン変換行列による前記追加的セットのM個の内部入力値の行列積に等価である離散コサイン変換演算を実行することにより、前記追加的セットのM個の内部入力値に対して離散コサイン変換を実行するよう構成された、請求項3に従属する場合の請求項1〜請求項11のいずれか1項に記載のデータ処理装置。
- 前記ビデオデータのエンコードを実行する間はフォワード離散コサイン変換を実行するよう構成され、前記ベース回路が、前記複数セットのM個の内部入力値に対する前記ベース演算の実行の後にフォワード離散変換演算を前記離散コサイン変換演算として実行するよう構成された、請求項12に記載のデータ処理装置。
- 前記ビデオデータのデコードを実行する間は逆離散コサイン変換を実行するよう構成され、前記ベース回路が、前記複数セットのM個の内部入力値に対する前記ベース演算の実行の前に逆離散変換演算を前記離散コサイン変換演算として実行するよう構成された、請求項12に記載のデータ処理装置。
- NはMの倍数である、請求項1〜請求項14のいずれか1項に記載のデータ処理装置。
- Nは2の累乗である、請求項15に記載のデータ処理装置。
- M=4である、請求項1〜請求項16のいずれか1項に記載のデータ処理装置。
- 前記加算器回路が、各セットの前記M個の内部入力値を生成するために、前記加算演算および減算演算のうちの少なくとも1つを並列的に実行するためのM個のレーンの並列処理を提供するSIMD回路として構成される、請求項4に従属する場合の請求項1〜請求項17のいずれか1項に記載のデータ処理装置。
- 前記追加的加算器回路が、前記ベース回路により生成された各セットの前記M個の内部出力値に対して加算演算および減算演算のうちの前記少なくとも1つを並列的に実行するためのM個のレーンの並列処理を提供するSIMD回路として構成される、請求項5に従属する場合の請求項1〜請求項18のいずれか1項に記載のデータ処理装置。
- N個のデータ値のそれぞれの行およびそれぞれの列に対して前記空間領域と前記周波数領域との間の前記変換を別個に実行することにより、N×Nの配列のデータ値を含むビデオデータブロックに対する演算を実行するよう構成され、
前記行および前記列のそれぞれに対して前記ベース回路により実行される乗算の合計数が、
3n−1+3n−2+…+9+Z(ただしZは≦9であり、N=2nである)である、
請求項1〜請求項19のいずれか1項に記載のデータ処理装置。 - 現在選択されたビデオ規格に応じて各セットのM個の内部入力値に対して前記ベース回路に供給される前記対応するセットの前記係数を設定することを前記係数生成回路に対して行わせることにより、異なるビデオ規格をサポートするよう構成可能である、請求項9に従属する場合の請求項1〜請求項20のいずれか1項に記載のデータ処理装置。
- ビデオデータ処理時に空間領域と周波数領域との間の変換を実行する方法であって、
N個の入力値を受け取り、前記N個の入力値の前記空間領域と前記周波数領域との間の前記変換を表すN個の出力値を生成するための一連の演算を実行するために、変換回路を用いることと、
反復的な行列積を可能とする様式で因数分解された行列積と等価の演算を行うように、前記変換回路により生成されたM個(ただしMは4以上)の内部入力値を受け取り、当該M個の内部入力値と所定の形を有する行列との行列積と等価のベース演算を行い、M個の内部出力値を生成するようにベース回路を用いることと、を含み、前記所定の形を有する行列は、係数cの配列を含み且つ
c0 c1c2 …cM−1
c1 c2c3 …cM
c2 c3c4 … cM+1
…
cM−1 cMcM+1 … c2M−2
の形を有する行列であり、
前記変換回路による前記一連の演算が、
前記N個の入力値から複数セットの前記M個の内部入力値を生成することと、
複数セットの前記M個の内部出力値を生成するために、各セットのM個の内部入力値を前記ベース回路に提供して前記ベース回路が前記M個の内部入力値の各セットごとに前記ベース演算を反復して実行するようにしたことと、
前記ベース回路から戻された前記複数セットのM個の内部出力値から前記N個の出力値を導出することと
を含む、
方法。 - ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置であって、
N個の入力値を受け取り、前記N個の入力値の前記空間領域と前記周波数領域との間の前記変換を表すN個の出力値を生成するための一連の演算を実行するための変換手段と、
反復的な行列積を可能とする様式で因数分解された行列積と等価の演算を行うように、前記変換手段により生成されたM個(ただしMは4以上)の内部入力値を受け取り、当該M個の内部入力値と所定の形を有する行列との行列積と等価のベース演算を行い、M個の内部出力値を生成するように構成されたベース回路手段であって、前記所定の形を有する行列は、係数cの配列を含み且つ
c0 c1c2 …cM−1
c1 c2c3 …cM
c2 c3c4 … cM+1
…
cM−1 cMcM+1 … c2M−2
の形を有する行列である、ベース回路手段と
を備え、
前記変換手段が、前記一連の演算を実行する間、前記N個の入力値から複数セットの前記M個の内部入力値を生成し、複数セットの前記M個の内部出力値を生成するために各セットのM個の内部入力値を前記ベース回路手段に提供して前記ベース回路手段が前記M個の内部入力値の各セットごとに前記ベース演算を反復して実行するようにしたことと、前記ベース回路手段から戻された前記複数セットのM個の内部出力値から前記N個の出力値を導出する、
データ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1308186.4 | 2013-05-07 | ||
GB1308186.4A GB2514099B (en) | 2013-05-07 | 2013-05-07 | A data processing apparatus and method for performing a transform between spatial and frequency domains when processing video data |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014241585A JP2014241585A (ja) | 2014-12-25 |
JP6357345B2 true JP6357345B2 (ja) | 2018-07-11 |
Family
ID=48627390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014094764A Active JP6357345B2 (ja) | 2013-05-07 | 2014-05-01 | ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9378186B2 (ja) |
JP (1) | JP6357345B2 (ja) |
CN (1) | CN104144346B (ja) |
GB (1) | GB2514099B (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2514099B (en) * | 2013-05-07 | 2020-09-09 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing a transform between spatial and frequency domains when processing video data |
GB2539241B (en) * | 2015-06-11 | 2019-10-23 | Advanced Risc Mach Ltd | Video processing system |
CN111260020B (zh) * | 2018-11-30 | 2024-04-16 | 深圳市海思半导体有限公司 | 卷积神经网络计算的方法和装置 |
US11647227B2 (en) * | 2021-08-16 | 2023-05-09 | Nvidia Corporation | Efficient transforms and transposes for rate-distortion optimization and reconstruction in video encoders |
CN114531600B (zh) * | 2022-02-18 | 2023-10-03 | 阿里巴巴(中国)有限公司 | 变换单元、现场可编程门阵列、芯片、电子设备、片上系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6246370A (ja) * | 1985-08-23 | 1987-02-28 | Toshiba Corp | 線形変換装置 |
US5394349A (en) * | 1992-07-10 | 1995-02-28 | Xing Technology Corporation | Fast inverse discrete transform using subwords for decompression of information |
US5452466A (en) * | 1993-05-11 | 1995-09-19 | Teknekron Communications Systems, Inc. | Method and apparatus for preforming DCT and IDCT transforms on data signals with a preprocessor, a post-processor, and a controllable shuffle-exchange unit connected between the pre-processor and post-processor |
EP3073388A1 (en) * | 1998-03-18 | 2016-09-28 | Koninklijke Philips N.V. | Data processing device and method of computing the cosine transform of a matrix |
CN1198177C (zh) * | 2000-12-25 | 2005-04-20 | 蒋宏 | 对比空间频率实现成像光学系统自动对焦的方法 |
US7730116B2 (en) * | 2004-12-14 | 2010-06-01 | Stmicroelectronics, Inc. | Method and system for fast implementation of an approximation of a discrete cosine transform |
JP4405452B2 (ja) * | 2005-09-14 | 2010-01-27 | 三菱電機株式会社 | 逆変換回路 |
US8326068B1 (en) * | 2006-08-30 | 2012-12-04 | Maxim Integrated Products, Inc. | Method and apparatus for modeling quantization matrices for image/video encoding |
US20110060433A1 (en) * | 2008-02-01 | 2011-03-10 | Lehigh University | Bilinear algorithms and vlsi implementations of forward and inverse mdct with applications to mp3 audio |
US20110137969A1 (en) * | 2009-12-09 | 2011-06-09 | Mangesh Sadafale | Apparatus and circuits for shared flow graph based discrete cosine transform |
GB2514099B (en) * | 2013-05-07 | 2020-09-09 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing a transform between spatial and frequency domains when processing video data |
-
2013
- 2013-05-07 GB GB1308186.4A patent/GB2514099B/en active Active
-
2014
- 2014-03-26 US US14/225,473 patent/US9378186B2/en active Active
- 2014-05-01 JP JP2014094764A patent/JP6357345B2/ja active Active
- 2014-05-07 CN CN201410190960.9A patent/CN104144346B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US9378186B2 (en) | 2016-06-28 |
GB2514099B (en) | 2020-09-09 |
US20140337396A1 (en) | 2014-11-13 |
CN104144346A (zh) | 2014-11-12 |
GB201308186D0 (en) | 2013-06-12 |
GB2514099A (en) | 2014-11-19 |
JP2014241585A (ja) | 2014-12-25 |
CN104144346B (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7127482B2 (en) | Performance optimized approach for efficient downsampling operations | |
JP6357345B2 (ja) | ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法 | |
US20070094320A1 (en) | Parallel Adder-Based DCT / IDCT Design Using Cyclic Convolution | |
US9665540B2 (en) | Video decoder with a programmable inverse transform unit | |
JPH08235159A (ja) | 逆コサイン変換装置 | |
US6574648B1 (en) | Dct arithmetic device | |
US7020671B1 (en) | Implementation of an inverse discrete cosine transform using single instruction multiple data instructions | |
Kammoun et al. | Hardware acceleration of approximate transform module for the versatile video coding standard | |
US6907438B1 (en) | Two-dimensional inverse discrete cosine transform using SIMD instructions | |
WO1999010818A1 (en) | Variable block size 2-dimensional inverse discrete cosine transform engine | |
KR100241078B1 (ko) | 비디오 압축 및 해제를 위한 벡터 프로세서 명령어 | |
Coelho et al. | Computation of 2D 8× 8 DCT based on the Loeffler factorization using algebraic integer encoding | |
KR101395143B1 (ko) | 영상처리의 정수변환 방법 및 정수변환 장치 | |
US20030133507A1 (en) | Adaptive inverse transformation device | |
KR19980041724A (ko) | 역이산 여현변환방법 | |
CN101562744B (zh) | 二维反变换装置 | |
JP3971135B2 (ja) | Dct行列分解方法及びdct装置 | |
CN108184127A (zh) | 一种可配置的多尺寸dct变换硬件复用架构 | |
Vayalil et al. | An efficient ASIC design of variable-length discrete cosine transform for HEVC | |
KR20150100348A (ko) | 동영상 코덱의 역변환 방법 및 그 장치 | |
KR100575285B1 (ko) | 고속의 저전력 이산 코사인 변환 장치 및 방법 | |
KR0152802B1 (ko) | 영상 압축장치의 역이산 코사인 변환방법 및 장치 | |
JP3575991B2 (ja) | 直交変換回路 | |
JP3652717B2 (ja) | 離散コサイン高速演算器 | |
JP2007079972A (ja) | 逆変換回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170424 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180206 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180502 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180514 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180524 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180618 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6357345 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |