JPWO2009095959A1 - 直交変換装置および集積回路 - Google Patents

直交変換装置および集積回路 Download PDF

Info

Publication number
JPWO2009095959A1
JPWO2009095959A1 JP2009512767A JP2009512767A JPWO2009095959A1 JP WO2009095959 A1 JPWO2009095959 A1 JP WO2009095959A1 JP 2009512767 A JP2009512767 A JP 2009512767A JP 2009512767 A JP2009512767 A JP 2009512767A JP WO2009095959 A1 JPWO2009095959 A1 JP WO2009095959A1
Authority
JP
Japan
Prior art keywords
unit
butterfly
calculation
orthogonal transform
point
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.)
Pending
Application number
JP2009512767A
Other languages
English (en)
Inventor
秀樹 黒木
秀樹 黒木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2009095959A1 publication Critical patent/JPWO2009095959A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type

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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

静止画/動画符号化処理における基幹処理である直交変換に関し、1つの直交変換手段で変換基底の異なる複数の直交変換の処理を実現し、新規符号化規格処理への対応を実現する。一部の入力信号に2点の積和演算を行う2点基本演算部を有する第1バタフライ演算部(100)と、残りの入力信号に4点の積和演算を行う4点基本演算部を有する第2バタフライ演算部(101)と、後者の後段で2点の積和演算を行う2点基本演算部を有する第3バタフライ演算部(102)と、第1、3バタフライ演算部(100、102)等の後段に各々ある第1及び第2の遅延部(203、202)等と、第1、2の選択部(303、302)等で選択されたデータに2点の積和演算を行う2点基本演算部を有する第4バタフライ演算部(103)と、変換係数供給部(401)とを備え、前記4点基本演算部が行う積和演算が切り替えられる直交変換装置。

Description

本発明は動画像符号化などの画像符号化に関するものである。特に、画像符号/復号化処理における基幹処理である直交変換を行う直交変換装置、集積回路に関するものである。
従来、画像符号/復号化処理における基幹処理である直交変換を行う直交変換装置がある。
現行の動画圧縮/伸張は、動画符号化規格としてMPEG1,MPEG2,MPEG4,H.264/AVC,VC−1等のMPEG(Moving picture expert group)が存在し、画像の大きさや利用媒体などの違いによって、それぞれに対応できるように規格で定められている。例えば、MPEG1、MPEG2であればDVD等の比較的画像サイズの大きな媒体に対して使用され、MPEG4やH.264/AVCの一方式では携帯電話や1seg等の比較的画像サイズの小さい媒体に対して使用され、H.264/AVC,VC−1ではHDTV等の画像サイズが非常に大きい媒体に対して使用される。
動画符号化を行う場合は、動画像をマクロブロック(MB)と呼ばれる処理単位に分割し処理を行う。MBは輝度成分と色差成分とで構成されており、輝度成分はY0、Y1、Y2、Y3の4個で成り、また色差成分はCb,Crの2個で成っている。各Y、C成分は8×8のブロックの64個の画素成分で構成されている。
MPEG1,MPEG2,MPEG4,H.264/AVC,VC−1に共通する処理として直交変換処理がある。直交変換処理はY0,Y1,Y2,Y3,Cb,Cr成分毎に行われる処理であり、空間成分である動画像信号を周波数成分に変換する技術である。直交変換処理を行うことによって、自然画像などは周波数成分に変換した際にデータの偏りが発生し、可変長符号化等でのデータ圧縮に有効に作用する。また、この直交変換の技術は動画像の符号化以外にも音声圧縮や信号処理に用いられる基幹処理である。
直交変換処理は、上記で示した符号化規格ごとに異なる。まず、MPEG1,MPEG2,MPEG4ではDCT(離散コサイン変換)を用いる。また、H.264/AVCやVC−1といった新規の符号化規格では、アダマール変換や整数精度直交変換を用いる。なお、DCTは、最も一般的な直交変換の一つであり、変換基底が小数精度を含むため変換前と変換後に誤差を生じる非可逆変換であるのに対して、H.264/AVCやVC−1で行う直交変換は、変換基底が整数であるため変換前後での誤差が生じない特徴を有している。
図1〜8は従来技術を示す図である。
図1、2は、直交変換の変換行列を示す図である。図1の変換行列は、H.264/AVCにおける整数精度直交変換の変換行列である。また、図2の変換行列は、VC−1における整数精度直交変換の変換行列である。なお、後者の図2の変換行列は、H.264/AVC規格の規格書に記載されている式を元に行列表現したものである。
図3、図4は、4×4の変換行列を示す図である。
H.264/AVCやVC−1においては、8×8単位での直交変換に加えて、復号後の画像の誤差を低減するために、4×4単位での直交変換も行う。図3の変換行列は、H.264/AVCにおける誤差を低減するための4×4単位での直交変換行列である。他方、図4の変換行列は、VC−1の4×4単位での直交変換行列である。
直交変換処理は、このように行列式で表現されるが、単純な行列演算を行って実現する場合、膨大な演算量が必要となり処理時間や回路規模増大の要因となりうることは既知の問題である。そのため、一般的には行列式の性質を利用して行列の展開を行い、演算回数を減らす高速アルゴリズムで処理する。高速アルゴリズムには、ChenやWangといった方式が知られている。
図5は、前記した、直交変換の高速アルゴリズムを処理単位で分割した従来の構成である(特許文献1参照)。図5において、並べ換え器3で入力信号の並べ替えを行う。並べ替えされた入力信号は、バタフライ器5、7、9にて加減算または乗算の処理を行い、直交変換を実現する。
図6は、図5に示したバタフライ器の中身を示す図である。
図6に記載されているバタフライ器の中身は、図6から明らかなように、全ていくつかの2点入力の襷がけ演算器で構成されている。
図7は、2点入力の襷がけ演算器(2点基本演算器)20を示す図である。
図7における左側の図は、2点基本演算器20を示す記号である。上述の図6は、この記号により2点入力の襷がけ演算器を示している。また、後の説明により参照される各図も、この記号により2点基本演算器を図示している。
他方、図7の右側の図は、2点基本演算器20が行う2点の積和演算の処理内容を示している。
2点基本演算器20は、当該2点基本演算器20への第1入力(左上の黒丸での入力)と第2入力(左下の黒丸での入力)の積和演算をして、第1出力(右上の黒丸)を出力する。2点基本演算器20は、より具体的には、(第1入力)×a11+(第2入力)×a12の積和演算を行い、演算結果を第1出力として出力する。ここで、上記の式におけるa11、a12は、2点基本演算器20が、図7に示された変換係数メモリ21その他の積和演算の係数を供給する係数供給部より取得する係数である。同様に、2点基本演算器20は、(第1入力)×a11+(第2入力)×a12の積和演算を行い、その積和演算の結果を第2出力として出力する。図7の左の記号において、各出力の黒丸へと接続された複数の矢印は、かかる積和演算をそれぞれ示している。
MPEG2といった既存の符号化規格では上記のような高速直交変換アルゴリズムを用いてDCT処理を実現している。また、H.264/AVCでは、規格書に記載された手順にて処理を実現するのが一般的で、VC−1に関しては、その高速アルゴリズムが一般的には知られていないため、行列演算を直接実施することで処理を実現するのが一般的である。
ここで、図6に記載されているバタフライ器の中身は、全ていくつかの2点入力の襷がけ演算器で構成されている。このため、従来の構成により実現できる直交変換は、DCTやアダマールといった全て2点入力の襷がけ演算に展開できるものに限定される。
一方、H.264/AVCでは3点入力の演算器が必要になる。
図8は、H.264/AVC直交変換において必要な3点入力の演算器を示す図である。
そこで、H.264/AVCでは、この、図8に示すような構成に展開される3点入力の襷がけ演算を行う演算器を用いた直交変換装置が用いられる。なお、VC−1に関しては、2点入力の襷がけ演算で構成することが可能である。ただし、従来構成の接続と異なる。
特開平4−229724号公報
しかしながら、複数の符号化規格を何れも処理するプログラムや回路を実現したい場合がある。かかる場合、それぞれの符号化規格で別々のプログラムや回路を個別に持つ必要がある。例えば、昨今の半導体集積回路では複雑かつ様々な動画符号化処理を実現することが要求されている。また、低消費電力化も必須である。このような背景の中で、符号化規格毎に回路を持つことは、半導体集積回路全体の面積を増加させることになり複数の動画符号化処理の実現を妨げることとなる。また、回路規模の増加は電力消費も増加し、低消費電力化の実現をも妨げることとなる。また、演算手段の観点からも個別に演算方法を分けることは、処理の共通化ができず非効率であるとともに、プログラムの管理においても間違いを発生する要因となる。
本発明は上記の問題を解決するものであり、複数の直交変換処理を1つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成で実現することにより、プログラムの共通化や半導体集積回路全体の面積削減を実現する直交変換装置を提供することを目的としている。
つまり、より具体的には、本発明の目的は、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、H.264/AVCやVC−1といった新規の符号化規格の直交変換を処理するとともに、MPEG2といった既存のDCTの処理も変換係数の変更だけで実現できる共通の高速直交変換アルゴリズムを行う直交変換装置を提供することである。
この目的を達成するために、本発明の直交変換装置は、複数点の入力信号に対して直交変換を行う直交変換装置であって、前記複数点の入力信号のうちの一部の入力信号に対して、2点の積和演算を行う2点基本演算部を有する第1のバタフライ演算手段と、前記複数点の入力信号のうちの残りの入力信号に対して、4点の積和演算を行う4点基本演算部を有する第2のバタフライ演算手段と、前記第2のバタフライ演算手段での演算結果に対して、2点の積和演算を行う2点基本演算部を有する第3のバタフライ演算手段と、前記第1のバタフライ演算手段での演算結果を保持する第1の遅延手段と、前記第1のバタフライ演算手段での演算結果及び前記第1の遅延手段に保持された演算結果からデータを選択する第1の選択手段と、前記第3のバタフライ演算手段での演算結果を保持する第2の遅延手段と、前記第3のバタフライ演算手段での演算結果及び前記第2の遅延手段に保持された演算結果からデータを選択する第2の選択手段と、前記第1の選択手段で選択されたデータ及び前記第2の選択手段で選択されたデータに対して、2点の積和演算を行う2点基本演算部を有する第4のバタフライ演算手段と、前記第1〜4のバタフライ演算手段での積和演算に用いられる変換係数を前記第1〜4のバタフライ演算手段に供給する変換係数供給手段とを備え、前記第2のバタフライ演算手段は、当該第2のバタフライ演算手段の前記4点基本演算部が行う積和演算を、前記第1〜4のバタフライ演算手段が複数種類の直交変換を行うための、所定の3点演算および2点演算の間で切り替えることを特徴とする。
これにより、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、第2のバタフライ演算手段が有する4点基本演算部が行う積和演算が所定の3点演算および2点演算の間で切り替えられることで、H.264/AVCやVC−1といった新規の符号化規格の直交変換を処理するとともに、MPEG2といった既存のDCTの処理も変換係数の変更だけで実現でき、複数の処理に共通の高速直交変換アルゴリズムを行う直交変換装置を提供することができる。
そして、こうして複数の直交変換処理を1つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成で実現することができることで、プログラムの共通化や半導体集積回路全体の面積削減、低消費電力化、複数の動画符号化処理の実現の容易化、プログラムの管理における間違い発生の抑止を実現することができる。
前記構成によって、共通の直交変換手段を用いて、複数の直交変換、特に基底の性質が異なる直交変換の処理を実現できる。その効果は、特にプログラムの共通化や半導体集積回路全体の面積削減を実現することを可能とする。
図1は、H.264/AVCにおける整数精度直交変換の変換行列を示す図である。 図2は、VC−1における整数精度直交変換の変換行列を示す図である。 図3は、H.264/AVCにおける4×4の変換行列を示す図である。 図4は、VC−1における4×4の変換行列を示す図である。 図5は、従来の構成を示す図である。 図6は、従来の構成が有するバタフライ器の中身を示す図である。 図7は、2点入力の襷がけ演算器(2点基本演算器)を示す図である。 図8は、H.264/AVC直交変換において必要な3点入力の演算器を示す図である。 図9は、直交変換装置50を示す図である。 図10は、直交変換装置50が有する4つのバタフライ演算部の詳細を示す図である。 図11は、4段パイプライン演算回路を示す図である。 図12は、第2バタフライ演算部のA型およびB型を示す図である。 図13は、H.264/AVC用の直交変換演算構成を示す図である。 図14は、直交変換装置がVC−1の直交変換を行う場合に第2バタフライ演算部が行う2回の演算を説明する図である。 図15は、直交変換装置がVC−1の直交変換を行う場合に第2バタフライ演算部が行う2回の演算の式を示した図である。 図16は、直交変換装置を示す図である。 図17は、直交変換装置がVC−1の直交変換をする際の演算の流れを示す図である。 図18は、4×4直交変換を行う実施の形態を示す図である。 図19は、集積回路を示す図である。
符号の説明
11 従来の構成
20 2点基本演算器
50 直交変換装置
50a 直交変換装置
50c 集積回路
51 4段パイプライン演算回路
100 第1バタフライ演算部
101 第2バタフライ演算部
101A 第2バタフライ演算部のA型
101B 第2バタフライ演算部のB型
102 第3バタフライ演算部
103 第4バタフライ演算部
104 第5バタフライ演算部
201 第3遅延部
202 第2遅延部
203 第1遅延部
301 第3選択部
302 第2選択部
303 第1選択部
304 第4選択部
401 変換係数供給部
500 H.264/AVC用の直交変換演算構成
501 3点入力の襷がけ演算が行われる演算回路
601 直交変換回路
602 制御部
以下、本発明の直交変換装置、集積回路の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図9は、直交変換装置50を示す図である。
直交変換装置50は、複数点の入力信号に対して直交変換を行う。直交変換装置50は、構成が簡単でありながらも、DCTの直交変換、H.264/AVCの直交変換およびVC−1の直交変換の3種類の直交変換のうちの何れの直交変換も行う。なお、直交変換装置50は、基本となるアルゴリズムにChenの方式を採用した演算を行うものである。
具体的には、直交変換装置50は、第1バタフライ演算部100と、第2バタフライ演算部101と、第3バタフライ演算部102と、第4バタフライ演算部103と、第5バタフライ演算部104と、第3遅延部201と、第2遅延部202と、第1遅延部203と、第3選択部301と、第2選択部302と、第1選択部303と、第4選択部304と、変換係数供給部401とを備える。
図10は、図9に示される第1バタフライ演算部100〜第4バタフライ演算部103の詳細を示す図である。図10(a)〜(d)は、それぞれ、第1バタフライ演算部100、第2バタフライ演算部101、第3バタフライ演算部102、第4バタフライ演算部103の詳細を示す。
なお、直交変換装置50は、例えば、直交変換を行って動画を表示するテレビ等の画像表示装置であってもよいし、動画を記録するために直交変換を行うDVDレコーダその他の動画記録装置であってもよいし、撮像した動画を記録するために直交変換を行うムービーカメラなどの動画撮像装置であってもよいし、動画符号化装置であってもよい。
第1バタフライ演算部100は(図10(a)、図9)、直交変換装置50への複数点の入力信号のうちの一部の入力信号に対して、2点の積和演算を行う2点基本演算部を有する。なお、ここで、2点基本演算部とは、図7で説明した2点基本演算器20である。第1バタフライ演算部100は、具体的には、図10(a)に示されるよう構成された4個の2点基本演算部を備える。第1バタフライ演算部100は、直交変換装置50への複数点の入力信号のうちの、偶数番の入力信号に対して、これら4個の2点基本演算部によって演算を行う。
第3遅延部201は(図9)、直交変換装置50への複数点の入力信号のうちの残りの入力信号を保持する。ここで、残りの入力信号とは、直交変換装置50への入力信号のうちで、上述した偶数番の入力信号つまり第1バタフライ演算部100により演算される入力信号を除いた、残りの入力信号、すなわち、奇数番の入力信号である。第3選択部301は(図9)、直交変換装置50への複数点の入力信号のうちの残りの入力信号及び第1遅延部203に保持された入力信号からデータを選択する。ここで、残りの入力信号とは、上述の場合と同じであり、奇数番の入力信号である。第3選択部301は、直交変換装置50が、上記の3種類の直交変換のうちで、DCTの直交変換をする場合、および、H.264/AVCの直交変換をする場合には、直交変換装置50へのこの奇数番の入力信号を選択する一方で、直交変換装置50がVC−1の直交変換をする場合には、直交変換装置50への奇数番の入力信号を選択するときと、第1遅延部203に保持された入力信号を選択するときとを切り替える。
第2バタフライ演算部101は(図10(b)、図9)、直交変換装置50への複数点の入力信号のうちの残りの入力信号に対して、4点の積和演算を行う4点基本演算部を有する。第2バタフライ演算部101は、第3選択部301(図9)で選択されたデータに対して積和演算を行う。第2バタフライ演算部101は、第3選択部301が、直交変換装置50への複数点の入力信号のうちの残りの入力信号を選択すると、残りの入力信号に対する演算を行い、第1遅延部203に保持された入力信号を選択すると、第1遅延部203に保持された入力信号に対する演算を行う。
ここで、4点基本演算部は、図7が示す2点基本演算部(2点基本演算器)が2点入力である基本演算部であるのに対して、4点入力にされた基本演算部である。4点基本演算部は、第1〜第4の入力(図10(b)の第2バタフライ演算部101に示された左側の4つの黒丸での入力)に基づいて、それら4つの入力を積和演算した演算結果を、第1〜第4の出力(右側の4つの黒丸での出力)としてそれぞれ出力する。換言すれば、4点基本演算部は、4点の入力信号と4つの変換係数を演算した結果を加算する構成を4個備え、それら4個の結果をそれぞれ4つの出力とする。
第3バタフライ演算部102は(図10(c)、図9)、第2バタフライ演算部101での演算結果に対して、2点の積和演算を行う2点基本演算部を有する。第3バタフライ演算部102は、図10(c)に示されるよう構成された3個の2点基本演算部を有する。
第1遅延部203は(図9)、第1バタフライ演算部100での演算結果を保持する。
第2遅延部202は(図9)、第3バタフライ演算部102での演算結果を保持する。
第1選択部303は(図9)、第1バタフライ演算部100での演算結果及び第1遅延部203に保持された演算結果からデータを選択する。第1選択部303は、直交変換装置50が3種類の直交変換のうちでDCTの直交変換をする場合およびH.264/AVCの直交変換をする場合には、第1バタフライ演算部100での演算結果を選択する一方で、VC−1の直交変換をする場合には、第1遅延部203に保持された演算結果を選択する。
第2選択部302は(図9)、第3バタフライ演算部102での演算結果及び第2遅延部202に保持された演算結果からデータを選択する。第2選択部302は、3種類の直交変換のうちで、直交変換装置50がDCTの直交変換をする場合およびH.264/AVCの直交変換をする場合には、第3バタフライ演算部102での演算結果を選択し、VC−1の直交変換をする場合には、第3バタフライ演算部102での演算結果の一部を第1の部分に有すると共に第2遅延部202に保持された演算結果を第2の部分に有するそれら第1および第2の2つの部分を集めてなるデータを選択する。この点の詳細については後の説明により示される(図14、図15参照)。
第4バタフライ演算部103は(図10(d)、図9)、第1選択部303で選択されたデータ及び第2選択部302で選択されたデータに対して、2点の積和演算を行う2点基本演算部を有する。第3バタフライ演算部102は、図10(c)に示されるよう構成された4個の2点基本演算部を有する。
変換係数供給部401(図9)は、第1バタフライ演算部100〜第4バタフライ演算部103での積和演算に用いられる変換係数をそれら第1バタフライ演算部100〜第4バタフライ演算部103に供給する。変換係数供給部401は、第1バタフライ演算部100〜第4バタフライ演算部103で繰り返される積和演算の毎処理単位で、それら第1バタフライ演算部100〜第4バタフライ演算部103に供給する変換係数を変更する。変換係数供給部401は、直交変換装置50がDCTの直交変換をする場合には、第1バタフライ演算部100〜第4バタフライ演算部103が直交変換をするための変換係数を供給し、H.264/AVCの直交変換をする場合には、H.264/AVCの直交変換をするための変換係数を供給し、VC−1の直交変換をする場合には、VC−1の直交変換をするための変換係数を供給する。つまり、変換係数供給部401は、直交変換装置50が行う直交変換の種類に応じて、それぞれ、行われる種類の直交変換のための変換係数を提供する。
なお、第1遅延部203、第2遅延部202、第3遅延部201の少なくとも一部は、たとえば、バッファや、メモリ、レジスタによって構成されていてもよい。
ここに、第1選択部303は、換言すれば、第1バタフライ演算部100での演算結果及び第1遅延部203に保持された演算結果からいずれかを選択するものといえる。同様に、第2選択部302は、第3バタフライ演算部102での演算結果及び第2遅延部202に保持された演算結果からいずれかを選択するものといえる。また、第3選択部301は、当該直交変換装置50への複数点の入力信号のうちの残りの入力信号及び第1遅延部203に保持された入力信号からいずれかを選択するものといえる。
第1バタフライ演算部100〜第4バタフライ演算部103の4つの演算部の全体は、4段パイプライン演算回路51(図11)を構成する。
図11は、4段パイプライン演算回路51を示す図である。
4段パイプライン演算回路51は、第1バタフライ演算部100と、第2バタフライ演算部101と、第3バタフライ演算部102と、第4バタフライ演算部103との全体よりなる。なお、図9は、4段パイプライン演算回路51の図示を省略している。4段パイプライン演算回路51は、Chenの高速アルゴリズムによるDCTの直交変換の4段パイプライン演算回路と、第2バタフライ演算部101の部分が異なり、他の部分、つまり第1バタフライ演算部100と、第3バタフライ演算部102と、第4バタフライ演算部103との各部分は、それぞれ、Chenの4段パイプライン演算回路におけるそれらの部分に対応する各部分とそれぞれ同じである。したがって、4段パイプライン演算回路51は、Chenの高速アルゴリズムによる4段パイプライン演算回路を第1バタフライ演算部100と、第2バタフライ演算部101と、第3バタフライ演算部102と、第4バタフライ演算部103との4つの部分に対応する箇所で分割して、第2バタフライ演算部101に対応する箇所は、第2バタフライ演算部101に置き換えたものである。
以下の説明は、Chenの4段パイプライン演算回路との関係により、第1バタフライ演算部100〜第4バタフライ演算部103の更に詳細を示す。第1バタフライ演算部100は、Chenの4段パイプライン演算回路の第1〜3段目のうちで、偶数番目の入力信号を処理する箇所の回路と同じ回路である。第2バタフライ演算部101は、Chenの4段パイプライン演算回路の第1段目のうちで、奇数番目の入力信号を処理する部分と同じ回路である。第3バタフライ演算部102は、Chenの4段パイプライン演算回路の第2〜3段目の部分のうちで、奇数番目の入力信号を処理する部分と同じである。第4バタフライ演算部103は、Chenの4段パイプライン演算回路の第4段目の部分と同じである。
以上のように、直交変換装置50は、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換装置を、積和演算処理を行う2点基本演算部と4点基本演算部で構成した100〜103で示す4つのバタフライ演算部に分割して構成され、前記バタフライ演算部101、103の入力に、入力信号を遅延させる遅延部203、202、201と、前記遅延部からの出力と前記入力信号ないしバタフライ演算部の演算結果とを選択し、バタフライ演算部101ないしは103への入力を選択する選択部301、302、303と、前記各バタフライ演算部に直交変換の変換係数を供給する変換係数供給部401とを備える。
次の説明は、このような構成を備える直交変換装置50の動作を述べる。まず、直交変換装置50がDCTの直交変換を行う動作について説明する。
図12は、第2バタフライ演算部101が変形してなる、第2バタフライ演算部のA型101Aおよび第2バタフライ演算部のB型101Bを示す図である。図12(a)は、図10(b)および図11に示された第2バタフライ演算部101の構成を再掲する図である。図12(b)は、第2バタフライ演算部101が変形した第2バタフライ演算部のA型101A(図12(b)右側)を示す図である。図12(c)は、第2バタフライ演算部101が変形した第2バタフライ演算部のB型101B(図12(c)右側)を示す図である。
第2バタフライ演算部101は、直交変換装置50がDCTの直交変換を行う時には、図12(b)に示された第2バタフライ演算部のA型101Aに変形する。
第2バタフライ演算部のA型101Aは、2個の2点基本演算部を組み合わせた演算回路であり、つまり、それら2個の2点基本演算部のうちで一方の基本演算部はこの第2バタフライ演算部101への第2入力および第3入力を当該一方の2点基本演算部の第1入力および第2入力にするのと共に、当該第2バタフライ演算部101の第2出力および第3出力を当該2点基本演算部の第1出力および第2出力とするものである。また、もう一方の2点基本演算部は、当該第2バタフライ演算部101への第1入力、第4入力、第1出力および第4出力をそれぞれ、当該もう一方の2点基本演算部の第1入力、第2入力、第1出力および第2出力とするものである。
ここで、この、第2バタフライ演算部のA型101Aは、Chenの4段パイプライン演算回路における当該第2バタフライ演算部101に対応した部分と同じ構成を有するものである。
このため、変換係数供給部401によりDCTの変換係数が供給されるとともに、この第2バタフライ演算部101が図12(b)を参照して上記に説明された第2バタフライ演算部のA型101Aの形に変形することによって、第1バタフライ演算部100〜第4バタフライ演算部103つまり4段パイプライン演算回路51がChenの高速アルゴリズムに基づく直交変換のための積和演算を行い、MPEG1,MPEG2,MPEG4で使用されているDCTの直交変換を実現することができる。
なお、第2バタフライ演算部101は、第2バタフライ演算部のA型101Aに変形する方法として、例えば、変換係数供給部401が供給する変換係数0に基づいて変形する方法を行うものとしてもよいし、演算結果を出力するのではなく0を選択して出力することで変形する方法を行うものであってもよいし、他の方法により変形を行うものであってもよい。
ここで、第2バタフライ演算部101は、変換係数0を受けて変形をする場合には、全ての変換係数のうちで、図12(b)左側の第2バタフライ演算部101に含まれる破線が示す乗算の変換係数に、値0を変換係数供給部401から受けることで、変形を行う(図7参照)。
次に、H.264/AVCの動作について説明する。
第2バタフライ演算部101は、直交変換装置50がDCTの直交変換を行う時には、図12(c)に示された第2バタフライ演算部のB型101Bに変形する。
第2バタフライ演算部のB型101Bは、前述の図8により示される、H.264/AVCの直交変換に必要となる、3点入力の襷がけ演算が行われる演算回路501と同じ回路である。
図13は、H.264/AVCの直交変換を行う4段パイプライン演算回路である、H.264/AVC用の直交変換演算構成500を示す図である。
H.264/AVC用の直交変換演算構成500は、図13の左下の図示する箇所、すなわち、第2バタフライ演算部101の位置に対応する箇所に、先述の図8に示される3点入力の襷がけ演算が行われる演算回路501を有する。
本実施形態の4段パイプライン演算回路51は、第2バタフライ演算部101が、この図13の演算回路501と同じものである第2バタフライ演算部のB型101Bに変形することにより、図5に示されたH.264/AVC直交変換演算構成と等価になる。
このため、変換係数供給部401よりH.264/AVCの変換係数を供給するとともに、第2バタフライ演算部101が図12(c)に示す第2バタフライ演算部のB型101Bの形に変形することによって、H.264/AVCで使用されている直交変換(整数精度直交変換)を実現できる。
なお、第2バタフライ演算部101は、図12(c)の第2バタフライ演算部のB型101Bに変形する方法として、変換係数供給部401が当該第2バタフライ演算部101に供給する変換係数0に基づいて変形する方法を行ってもよいし、演算結果を出力するのではなく0を選択して出力することにより変形する方法を行ってもよいし、他の方法によって変形を行うものであってもよい。
次に、VC−1の直交変換の動作を説明する。
第2バタフライ演算部101は、直交変換装置50がVC−1の直交変換を行う場合には、第1回目および第2回目の2回の演算を行う。
図14は、直交変換装置50がVC−1の直交変換を行う場合に第2バタフライ演算部101が行う2回の演算を説明する図である。
図15は、直交変換装置50がVC−1の直交変換を行う場合に第2バタフライ演算部101が行う2回の演算の式を示す図である。
図14の最左端の上段に示されるx1、x3、x5、x7は、直交変換装置50への入力信号の奇数番のものである。他方、図14の最左端の下段に示されたx1_d、x5_d、x3_d、x7_dは、第3遅延部201(図9)に保持された入力信号である。そして、図15におけるd1、d3、d5、d7は、それぞれ、図14において、x1、x3、x5、x7により図示した入力信号と同じ信号を指す。
図14の上段は、第2バタフライ演算部101が行う1回目の演算を示し、下段は、第2バタフライ演算部101が行う2回目の演算を示している。なお、図14の上下段における第2バタフライ演算部101は、直交変換装置50がVC−1の直交変換を行うため、第2バタフライ演算部のA型101Aに変形している。
第2バタフライ演算部101が行う1回目の演算は次の通りである。
第3選択部301は、第2バタフライ演算部101が1回目の演算を行う時に、第1遅延部203に保持された入力信号ではなく、直交変換装置50への入力信号の方を、第2バタフライ演算部101が演算をするデータとして選択する。つまり、第3選択部301は、第一回目の演算の時に、図14の左端上段に示されたx1、x5、x3、x7を選択する。第2バタフライ演算部101は、1回目の演算の時に、図15の最左に示された、4×d1−16×d7と、15×d5−9×d3と、9×d5+15×d3と、16×d1+4×d7との積和演算をそれぞれ行う。変換係数供給部401は、かかる演算を行う第2バタフライ演算部101が変換係数を1回目の演算の際に第2バタフライ演算部101に供給する。
第3バタフライ演算部102は、この1回目の演算の時に、上述した第2バタフライ演算部101の演算の演算結果に対して演算を行い、具体的には、図15中央のy1=(4×d1−16×d7)+(15×d5−9×d3)と、y2=(9×d5+15×d3)+(16×d1+4×d7)の演算を行う。なお、第3バタフライ演算部102は、このとき、図14上段の第2バタフライ演算部101に示される0が表すように、第1出力および第4出力に上述の演算結果y1およびy2を出力すると共に、第2出力および第3出力は0とする。変換係数供給部401は、かかる演算を行わせる変換係数を、1回目の演算の時に第3バタフライ演算部102に供給する。
第3遅延部201は、かかる第2バタフライ演算部101および第3バタフライ演算部102による1回目の演算の間、上述したd1、d3、d5、d7、換言するならばx1、x3、x5、x7(図14左端の上段)を保持する。
他方、第2バタフライ演算部101が行う2回目の演算は次の通りである。
第3選択部301は、上述した演算の間第3遅延部201に保持されたd1、d3、d5、d7を、第2バタフライ演算部101および第3バタフライ演算部102が2回目の演算を行う時に選択する。なお、図14下段の左端に示されるx1_d、x3_d、x5_d、x7_dは、このとき選択されるd1、d3、d5、d7をそれぞれ示す。
第2バタフライ演算部101は、2回目の演算の時、図15の最下段に示されるように、9×d1+15×d7、4×d5−16×d3、−16×d5−4×d3、15×d1−9×d7の演算を行う。変換係数供給部401は、かかる演算を行う第2バタフライ演算部101にさせる変換係数を第2バタフライ演算部101に2回目の演算の時に供給する。
第3バタフライ演算部102は、この第2バタフライ演算部101の演算結果に基づいて、y3=(9×d1+15×d7)+(4×d5−16×d3)、y4=(−16×d5−4×d3)+(15×d1−9×d7)の演算を、2回目の演算として、行う。
なお、変換係数供給部401は、第2バタフライ演算部101に対して、1回目の演算で第2バタフライ演算部101に供給する演算係数とは異なる演算係数を供給する。同様に、変換係数供給部401は、第3バタフライ演算部102に対しても、1回目の演算と2回目の演算との間で、互いに異なる変換係数を供給する。
第1遅延部203(図9)は、第2バタフライ演算部101および第3バタフライ演算部102が1回目の演算を行う時に、その演算と並行して第1バタフライ演算部100が行った演算の演算結果を保持する。
第2遅延部202は、1回目の演算での第2バタフライ演算部101および第3バタフライ演算部102がした演算の演算結果、つまり1回目の演算での第3バタフライ演算部102の出力たる演算結果を保持する。第2遅延部202は、第2バタフライ演算部101および第3バタフライ演算部102が2回目の演算を終えるまで、この保持を行う。
第1選択部303は、第2バタフライ演算部101が2回目の演算を行う時に、直交変換装置50はVC−1の直交変換をするので、第1遅延部203に保持された演算結果を選択する。
第2選択部302は、2回目の演算で第3バタフライ演算部102が出力する、図15および図14下段に示されたy3、y4と、1回目の演算の時から第2遅延部202が保持する図15および図14上段に示されたy1、y2とを、第4バタフライ演算部103が演算に用いるデータとして選択する。つまり、第2選択部302は、y1、y2を有する第1の部分と、y3、y4を有する第2の部分とを集めてなるデータ、つまりy1、y2、y3、y4からなるデータを、第4バタフライ演算部103が用いるデータに選択する。
第4バタフライ演算部103は、第2選択部302がこうして選択したデータを用いることで、第2バタフライ演算部101および第3バタフライ演算部102による演算結果のデータのうち、y1、y2、y3、y4の4つのデータを演算に用いる。
これにより、変換係数供給部401よりVC−1の変換係数を供給するとともに、第2バタフライ演算部101を図12に示すような第2バタフライ演算部のA型101Aの形に変形し、更に、図14に示すように第3遅延部201を用いて、入力信号を2回入力するとともに変換係数供給部401より1回目と2回目の変換係数を変更して供給し、演算させることによって、VC−1で使用されている直交変換(整数精度直交変換)を実現できる。
なお、第2バタフライ演算部101は、第2バタフライ演算部のA型101Aに変形する方法として、変換係数供給部401が供給する変換係数0に基づいて変形する方法を行うものとしてもよいし、演算結果を出力するのではなく0を選択して出力することで変形する方法を行うものとしてもよいし、他の方法により変形をするものであってもよい。
なお、このように、直交変換装置50は、第2バタフライ演算部101と第3遅延部201とを用いて、奇数側の入力信号を当該第2バタフライ演算部101に2度入力し、その都度、変換係数を逐次切り替える構成によって、下段側(奇数側)の演算をバタフライ処理ではなく、直接行列演算を行う。
また、第2バタフライ演算部101は、第2バタフライ演算部101の4点基本演算部が行う積和演算を、4段パイプライン演算回路51が複数種類の直交変換を行うための、所定の3点演算(図12(b)での演算)および2点演算(図12(a)での演算)の間で切り替える。
(実施の形態2)
続けて、以下の説明は、実施の形態2について述べる。
図16は、実施の形態2に係る直交変換装置50aを示す図である。
直交変換装置50aは、実施の形態1の構成に加えて、更に、第5バタフライ演算部104と、第4選択部304とを備える。
第5バタフライ演算部104は、前記複数点の入力信号のうちの残りの入力信号に対して、4点の積和演算を行う4点基本演算部を有する。第5バタフライ演算部104は、実施形態1で説明される第2バタフライ演算部101と並列に配置され、第2バタフライ演算部101が有する構成と同じ構成を有する(図10(b)参照)。
第4選択部304は、第2バタフライ演算部101及び第5バタフライ演算部104での演算結果からデータを選択し、変換係数供給部401は、第5バタフライ演算部104での積和演算に用いられる変換係数を第5バタフライ演算部104に供給し、第3バタフライ演算部102は、第4選択部304で選択されたデータに対して積和演算を行う。
第2バタフライ演算部101は、先述した実施の形態1において第2バタフライ演算部101がした1回目の演算を行う。
第5バタフライ演算部104は、他方の、実施の形態1において第2バタフライ演算部101がした2回目の演算を行う。
図17は、直交変換装置50aがVC−1の直交変換をする際の演算の流れを示す図である。図17中段に示された第2バタフライ演算部101および第3バタフライ演算部102は、それらが行う実施の形態1における1回目の演算、つまり、y1およびy2が演算結果たる演算(図14、図15を参照)を示す。図17下段の第5バタフライ演算部104および第3バタフライ演算部102は、それらが行う実施の形態1における2回目の演算、つまり、y3およびy4が演算結果たる演算(図14、図15を参照)を示す。
第4バタフライ演算部103は、これら、図17中段および下段の両者の演算結果、つまりy1、y2と、y3、y4に基づいて演算を行う。
かかる直交変換装置50aによれば、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換装置を、積和演算処理を行う2点基本演算部と4点基本演算部で構成した101、104、102、103、100で示す5つのバタフライ演算部と、第4バタフライ演算部103の入力に設けられた、入力信号を遅延させる第2遅延部202および第1遅延部203と、遅延部からの出力とバタフライ演算部からの出力とからデータを選択し、バタフライ演算部102ないしは103への入力を選択する選択部302、303、304と、各バタフライ演算部に変換係数を供給する変換係数供給部401とで構成する。このとき前記第5バタフライ演算部104は前記第2バタフライ演算部101と同じものである。そして、実施の形態1で入力信号を2回遅延させて入力する代わりに、入力信号を同時に同じものである第2バタフライ演算部101および第5バタフライ演算部104との2つのバタフライ演算部に供給し、変換係数供給部401からも同時に別々の変換係数をそれぞれに供給し、演算することによって、VC−1の直交変換を実現する。これにより、2回目の演算での第5バタフライ演算部104の処理が、1回目の演算での第2バタフライ演算部での処理と同時並列に行われて、第1回および第2回の両者の演算の演算結果を共に用いた第4バタフライ演算部103の演算結果を早く出力できるようになり、VC−1の直交変換を高速にできる。
(実施の形態3)
次に、以下の説明は、4×4の変換行列の直交変換(先述の図3、図4参照)が行われる場合の実施の形態3を述べる。
図18は、4×4直交変換を行う実施の形態3を示す図である。図18(a)は、図4に示された、VC−1における誤差を低減するための4×4の直交変換の変換行列を再掲するものである。図18(b)は、図18(a)の変換行列の第2行と第3行を入れ替えた行列を左辺に、左辺の式を変形した式を右辺に示す行列の式を示すものである。図18(c)は、第1バタフライ演算部100が図18(b)の行列の演算を行う際の変換係数を示す図である。
第1バタフライ演算部100は、4点の高速直交変換を行う。第1バタフライ演算部100は、直交変換装置50がVC−1の直交変換をする場合に、変換係数供給部401から供給される図18(c)の変換係数の演算、つまり図18(b)により示される行列の演算をして、VC−1の誤差を低減させる4点の高速直交変換の演算を行う。
なお、第1バタフライ演算部100は、上述した、図4に示されたVC−1の4×4の変換行列に基づいた、VC−1の誤差を低減させるための4点の高速直交変換を行うのと同様に、図3に示されたH.264/AVCの4×4の変換行列に基づいた、H.264/AVCの誤差を低減させるための4点の高速直交変換の演算も行う。
この実施の形態3であれば、第1バタフライ演算部100は、図3もしくは図4により示された4×4の直交変換を実現することが可能であり、第1バタフライ演算部100に4つの入力信号を供給するとともに、変換係数供給部401から4×4の変換係数を第1バタフライ演算部100に入力することによって、H.264/AVCおよびVC−1の4×4の直交変換を実現することができ、直交変換装置50だけでH.264/AVCおよびVC−1の4×4の直交変換まで実現できる。
以上説明した実施の形態1〜3の直交変換装置50、50aであれば、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、第2バタフライ演算部101が有する4点基本演算部が行う演算が切り替えられることで、H.264/AVCやVC−1といった新規の符号化規格の直交変換を処理するとともに、MPEG2といった既存のDCTの直交変換の処理も変換係数の変更だけで実現でき、複数の処理に共通の高速直交変換アルゴリズムを行う直交変換装置を提供することができる。
そして、これにより、複数の直交変換を1つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成(4段パイプライン演算回路51)で実現することができて、プログラムの共通化や半導体集積回路全体の面積削減、低消費電力化、複数の動画符号化処理の実現の容易化、プログラムの管理における間違い発生の抑止を実現することができる。
なお、実施の形態1の直交変換装置50(図9)は、何らかの処理を施した入力信号に対して、バタフライ演算手段構成をもととして、直交変換処理を行う高速アルゴリズム直交変換手段を、積和演算処理を行う2点基本演算部と4点基本演算部で構成した4つのバタフライ演算部100〜103に分割し、前記バタフライ演算部101、103の入力には、入力信号を遅延させる遅延部201〜203と、前記遅延部201〜203からの出力と前記入力信号とを選択し、前記バタフライ演算部への入力を選択する選択部301〜303とを有し、前記バタフライ演算部に直交変換係数を供給する変換係数供給部401を備える。
他方、実施の形態2の直交変換装置50a(図16)は、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換手段を、積和演算処理を行う2点基本演算部と4点基本演算部で構成した4つのバタフライ演算部100〜103に分割し、前記第4バタフライ演算部103の入力には、入力信号を遅延させる遅延部202、203と、前記遅延部202、203からの出力と前記入力信号とを選択し、前記第4バタフライ演算部103への入力を選択する選択部302、303とを有し、前記第2バタフライ演算部101の箇所を並列に第2バタフライ演算部101と第5バタフライ演算部104の2つとして配置し、前記第2バタフライ演算部101と第5バタフライ演算部104を選択する第4選択部304と、前記各バタフライ演算部に直交変換の変換係数を供給する変換係数供給部401とを備える。
前記構成によって、前記変換係数供給部401よりDCTの変換係数および、前記4点基本演算部を2点基本演算部と等価なものにするために変換係数0を供給することによってMPEG1、MPEG2、MPEG4を処理するための直交変換手段を実現し、また、前記変換係数供給部よりH.264/AVCの変換係数および、前記4点基本演算部を3点演算部と等価なものにするために変換係数0を供給することによりH.264/AVCを処理するための直交変換手段を実現する(図3参照)。更に、前記変換係数供給部401よりVC−1の変換係数および、前記4点基本演算部を2点演算部と等価なものにするために変換係数0を供給することに加えて、前記遅延部により入力データを2回入力することとその都度変換係数を入れ替えることによって、奇数側の演算を直接行列演算することでVC−1の直交変換を処理するための直交変換手段を実現する(図14参照)。
これにより、直交変換装置50、50aによれば、共通の直交変換手段を用いて、複数の直交変換、特に基底の性質が異なる直交変換の処理を実現できる。
なお、本発明は、かかる実施の形態に限定されるものではない。
たとえば、本発明は1チップの半導体集積回路として、次のように実施してもよい。
図19は、集積回路50cを示す図である。
集積回路50cは、複数点の入力信号に対して直交変換を行う集積回路である。
なお、集積回路50cは、請求の範囲に記載される「集積回路」の一例であり、かつ、同じく請求の範囲に記載される「直交変換装置」の一例でもある。
集積回路50cは、直交変換回路601と制御部602とを備える。
直交変換回路601は、実施の形態1における直交変換装置50の各部分(図9)を備え、すなわち、第1バタフライ演算部100と、第2バタフライ演算部101と、第3バタフライ演算部102と、第4バタフライ演算部103と、第5バタフライ演算部104と、第3遅延部201と、第2遅延部202と、第1遅延部203と、第3選択部301と、第2選択部302と、第1選択部303と、第4選択部304と、変換係数供給部401と、を備える。なお、図19では、集積回路50cのこれらの構成の図示は省略されている。
なお、実施の形態4においては、これらの各部は、集積回路50c上に実現された配線によって実現されるが、各部は、ソフトウェアにより実現された機能部にしてもよいし、ハードウェアによって実現された機能部にしてもよいし、他の方法により実現されたものにしてもよい。
制御部602は、集積回路50cの入力と出力とを入れ換えることで、集積回路50cが有する直交変換回路601に、正直交変換及び逆直交変換を選択的に行わせるものである。
また、上記の各実施の形態において、第1バタフライ演算部100〜第4バタフライ演算部103は(第1バタフライ演算部100〜第5バタフライ演算部104は)、それぞれ、積和演算に用いられる変換係数が2のべき乗であった場合に、ビットシフタとして動作するものであってもよい。こうすれば、多様な変換係数の乗算がされるにも関わらず、各バタフライ演算部の構成を簡潔にし、また、演算の速度を高速にできる。
また、上記の各実施の形態において、第1バタフライ演算部100〜第4バタフライ演算部103は(第1バタフライ演算部100〜第5バタフライ演算部104は)、それぞれ、積和演算の対象となる入力信号又は変換係数が0であった場合に、当該入力信号及び変換係数を乗算することに代えて、出力結果として選択した0を出力するものであってもよい。こうすれば、無駄な乗算がされず、消費電力を減らしたり、装置の構成を簡単にしたり、演算を高速化したりできる。
また、上記の各実施の形態において、第1バタフライ演算部100〜第4バタフライ演算部103は(第1バタフライ演算部100〜第5バタフライ演算部104は)、積和演算の対象となる入力信号又は変換係数が0であった場合に、当該入力信号及び変換係数を乗算すること、及び、前記乗算に代えて出力結果として選択した0を出力することを選択的に行うものであってもよい。
また、上記の各実施の形態において、第2バタフライ演算部101は、4点の入力信号のうちの2点の入力信号に対して、変換係数を0とする乗算を行うこと、又は、乗算に代えて演算結果として0を選択することにより、2点基本演算部として機能するものであってもよい。第2バタフライ演算部101は、例えばかかる構成をとることにより、図12(b)に示された第2バタフライ演算部のA型101Aに変形する。
本発明にかかる直交変換装置及び集積回路は、MPEG1,MPEG2,MPEG4,H.264/AVC、VC−1の動画像符号化規格の直交変換処理を1つの高速アルゴリズム直交変換手段で可能とするため動画像符号化などの画像符号化の分野において有用である。
本発明は動画像符号化などの画像符号化に関するものである。特に、画像符号/復号化処理における基幹処理である直交変換を行う直交変換装置、集積回路に関するものである。
従来、画像符号/復号化処理における基幹処理である直交変換を行う直交変換装置がある。
現行の動画圧縮/伸張は、動画符号化規格としてMPEG1,MPEG2,MPEG4,H.264/AVC,VC−1等のMPEG(Moving picture expert group)が存在し、画像の大きさや利用媒体などの違いによって、それぞれに対応できるように規格で定められている。例えば、MPEG1、MPEG2であればDVD等の比較的画像サイズの大きな媒体に対して使用され、MPEG4やH.264/AVCの一方式では携帯電話や1seg等の比較的画像サイズの小さい媒体に対して使用され、H.264/AVC,VC−1ではHDTV等の画像サイズが非常に大きい媒体に対して使用される。
動画符号化を行う場合は、動画像をマクロブロック(MB)と呼ばれる処理単位に分割し処理を行う。MBは輝度成分と色差成分とで構成されており、輝度成分はY0、Y1、Y2、Y3の4個で成り、また色差成分はCb,Crの2個で成っている。各Y、C成分は8×8のブロックの64個の画素成分で構成されている。
MPEG1,MPEG2,MPEG4,H.264/AVC,VC−1に共通する処理として直交変換処理がある。直交変換処理はY0,Y1,Y2,Y3,Cb,Cr成分毎に行われる処理であり、空間成分である動画像信号を周波数成分に変換する技術である。直交変換処理を行うことによって、自然画像などは周波数成分に変換した際にデータの偏りが発生し、可変長符号化等でのデータ圧縮に有効に作用する。また、この直交変換の技術は動画像の符号化以外にも音声圧縮や信号処理に用いられる基幹処理である。
直交変換処理は、上記で示した符号化規格ごとに異なる。まず、MPEG1,MPEG2,MPEG4ではDCT(離散コサイン変換)を用いる。また、H.264/AVCやVC−1といった新規の符号化規格では、アダマール変換や整数精度直交変換を用いる。なお、DCTは、最も一般的な直交変換の一つであり、変換基底が小数精度を含むため変換前と変換後に誤差を生じる非可逆変換であるのに対して、H.264/AVCやVC−1で行う直交変換は、変換基底が整数であるため変換前後での誤差が生じない特徴を有している。
図1〜8は従来技術を示す図である。
図1、2は、直交変換の変換行列を示す図である。図1の変換行列は、H.264/AVCにおける整数精度直交変換の変換行列である。また、図2の変換行列は、VC−1における整数精度直交変換の変換行列である。なお、後者の図2の変換行列は、H.264/AVC規格の規格書に記載されている式を元に行列表現したものである。
図3、図4は、4×4の変換行列を示す図である。
H.264/AVCやVC−1においては、8×8単位での直交変換に加えて、復号後の画像の誤差を低減するために、4×4単位での直交変換も行う。図3の変換行列は、H.264/AVCにおける誤差を低減するための4×4単位での直交変換行列である。他方、図4の変換行列は、VC−1の4×4単位での直交変換行列である。
直交変換処理は、このように行列式で表現されるが、単純な行列演算を行って実現する場合、膨大な演算量が必要となり処理時間や回路規模増大の要因となりうることは既知の問題である。そのため、一般的には行列式の性質を利用して行列の展開を行い、演算回数を減らす高速アルゴリズムで処理する。高速アルゴリズムには、ChenやWangといった方式が知られている。
図5は、前記した、直交変換の高速アルゴリズムを処理単位で分割した従来の構成である(特許文献1参照)。図5において、並べ換え器3で入力信号の並べ替えを行う。並べ替えされた入力信号は、バタフライ器5、7、9にて加減算または乗算の処理を行い、直交変換を実現する。
図6は、図5に示したバタフライ器の中身を示す図である。
図6に記載されているバタフライ器の中身は、図6から明らかなように、全ていくつかの2点入力の襷がけ演算器で構成されている。
図7は、2点入力の襷がけ演算器(2点基本演算器)20を示す図である。
図7における左側の図は、2点基本演算器20を示す記号である。上述の図6は、この記号により2点入力の襷がけ演算器を示している。また、後の説明により参照される各図も、この記号により2点基本演算器を図示している。
他方、図7の右側の図は、2点基本演算器20が行う2点の積和演算の処理内容を示している。
2点基本演算器20は、当該2点基本演算器20への第1入力(左上の黒丸での入力)と第2入力(左下の黒丸での入力)の積和演算をして、第1出力(右上の黒丸)を出力する。2点基本演算器20は、より具体的には、(第1入力)×a11+(第2入力)×a12の積和演算を行い、演算結果を第1出力として出力する。ここで、上記の式におけるa11、a12は、2点基本演算器20が、図7に示された変換係数メモリ21その他の積和演算の係数を供給する係数供給部より取得する係数である。同様に、2点基本演算器20は、(第1入力)×a11+(第2入力)×a12の積和演算を行い、その積和演算の結果を第2出力として出力する。図7の左の記号において、各出力の黒丸へと接続された複数の矢印は、かかる積和演算をそれぞれ示している。
MPEG2といった既存の符号化規格では上記のような高速直交変換アルゴリズムを用いてDCT処理を実現している。また、H.264/AVCでは、規格書に記載された手順にて処理を実現するのが一般的で、VC−1に関しては、その高速アルゴリズムが一般的には知られていないため、行列演算を直接実施することで処理を実現するのが一般的である。
ここで、図6に記載されているバタフライ器の中身は、全ていくつかの2点入力の襷がけ演算器で構成されている。このため、従来の構成により実現できる直交変換は、DCTやアダマールといった全て2点入力の襷がけ演算に展開できるものに限定される。
一方、H.264/AVCでは3点入力の演算器が必要になる。
図8は、H.264/AVC直交変換において必要な3点入力の演算器を示す図である。
そこで、H.264/AVCでは、この、図8に示すような構成に展開される3点入力の襷がけ演算を行う演算器を用いた直交変換装置が用いられる。なお、VC−1に関しては、2点入力の襷がけ演算で構成することが可能である。ただし、従来構成の接続と異なる。
特開平4−229724号公報
しかしながら、複数の符号化規格を何れも処理するプログラムや回路を実現したい場合がある。かかる場合、それぞれの符号化規格で別々のプログラムや回路を個別に持つ必要がある。例えば、昨今の半導体集積回路では複雑かつ様々な動画符号化処理を実現することが要求されている。また、低消費電力化も必須である。このような背景の中で、符号化規格毎に回路を持つことは、半導体集積回路全体の面積を増加させることになり複数の動画符号化処理の実現を妨げることとなる。また、回路規模の増加は電力消費も増加し、低消費電力化の実現をも妨げることとなる。また、演算手段の観点からも個別に演算方法を分けることは、処理の共通化ができず非効率であるとともに、プログラムの管理においても間違いを発生する要因となる。
本発明は上記の問題を解決するものであり、複数の直交変換処理を1つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成で実現することにより、プログラムの共通化や半導体集積回路全体の面積削減を実現する直交変換装置を提供することを目的としている。
つまり、より具体的には、本発明の目的は、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、H.264/AVCやVC−1といった新規の符号化規格の直交変換を処理するとともに、MPEG2といった既存のDCTの処理も変換係数の変更だけで実現できる共通の高速直交変換アルゴリズムを行う直交変換装置を提供することである。
この目的を達成するために、本発明の直交変換装置は、複数点の入力信号に対して直交変換を行う直交変換装置であって、前記複数点の入力信号のうちの一部の入力信号に対して、2点の積和演算を行う2点基本演算部を有する第1のバタフライ演算手段と、前記複数点の入力信号のうちの残りの入力信号に対して、4点の積和演算を行う4点基本演算部を有する第2のバタフライ演算手段と、前記第2のバタフライ演算手段での演算結果に対して、2点の積和演算を行う2点基本演算部を有する第3のバタフライ演算手段と、前記第1のバタフライ演算手段での演算結果を保持する第1の遅延手段と、前記第1のバタフライ演算手段での演算結果及び前記第1の遅延手段に保持された演算結果からデータを選択する第1の選択手段と、前記第3のバタフライ演算手段での演算結果を保持する第2の遅延手段と、前記第3のバタフライ演算手段での演算結果及び前記第2の遅延手段に保持された演算結果からデータを選択する第2の選択手段と、前記第1の選択手段で選択されたデータ及び前記第2の選択手段で選択されたデータに対して、2点の積和演算を行う2点基本演算部を有する第4のバタフライ演算手段と、前記第1〜4のバタフライ演算手段での積和演算に用いられる変換係数を前記第1〜4のバタフライ演算手段に供給する変換係数供給手段とを備え、前記第2のバタフライ演算手段は、当該第2のバタフライ演算手段の前記4点基本演算部が行う積和演算を、前記第1〜4のバタフライ演算手段が複数種類の直交変換を行うための、所定の3点演算および2点演算の間で切り替えることを特徴とする。
これにより、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、第2のバタフライ演算手段が有する4点基本演算部が行う積和演算が所定の3点演算および2点演算の間で切り替えられることで、H.264/AVCやVC−1といった新規の符号化規格の直交変換を処理するとともに、MPEG2といった既存のDCTの処理も変換係数の変更だけで実現でき、複数の処理に共通の高速直交変換アルゴリズムを行う直交変換装置を提供することができる。
そして、こうして複数の直交変換処理を1つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成で実現することができることで、プログラムの共通化や半導体集積回路全体の面積削減、低消費電力化、複数の動画符号化処理の実現の容易化、プログラムの管理における間違い発生の抑止を実現することができる。
前記構成によって、共通の直交変換手段を用いて、複数の直交変換、特に基底の性質が異なる直交変換の処理を実現できる。その効果は、特にプログラムの共通化や半導体集積回路全体の面積削減を実現することを可能とする。
以下、本発明の直交変換装置、集積回路の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図9は、直交変換装置50を示す図である。
直交変換装置50は、複数点の入力信号に対して直交変換を行う。直交変換装置50は、構成が簡単でありながらも、DCTの直交変換、H.264/AVCの直交変換およびVC−1の直交変換の3種類の直交変換のうちの何れの直交変換も行う。なお、直交変換装置50は、基本となるアルゴリズムにChenの方式を採用した演算を行うものである。
具体的には、直交変換装置50は、第1バタフライ演算部100と、第2バタフライ演算部101と、第3バタフライ演算部102と、第4バタフライ演算部103と、第5バタフライ演算部104と、第3遅延部201と、第2遅延部202と、第1遅延部203と、第3選択部301と、第2選択部302と、第1選択部303と、第4選択部304と、変換係数供給部401とを備える。
図10は、図9に示される第1バタフライ演算部100〜第4バタフライ演算部103の詳細を示す図である。図10(a)〜(d)は、それぞれ、第1バタフライ演算部100、第2バタフライ演算部101、第3バタフライ演算部102、第4バタフライ演算部103の詳細を示す。
なお、直交変換装置50は、例えば、直交変換を行って動画を表示するテレビ等の画像表示装置であってもよいし、動画を記録するために直交変換を行うDVDレコーダその他の動画記録装置であってもよいし、撮像した動画を記録するために直交変換を行うムービーカメラなどの動画撮像装置であってもよいし、動画符号化装置であってもよい。
第1バタフライ演算部100は(図10(a)、図9)、直交変換装置50への複数点の入力信号のうちの一部の入力信号に対して、2点の積和演算を行う2点基本演算部を有する。なお、ここで、2点基本演算部とは、図7で説明した2点基本演算器20である。第1バタフライ演算部100は、具体的には、図10(a)に示されるように構成された4個の2点基本演算部を備える。第1バタフライ演算部100は、直交変換装置50への複数点の入力信号のうちの、偶数番の入力信号に対して、これら4個の2点基本演算部によって演算を行う。
第3遅延部201は(図9)、直交変換装置50への複数点の入力信号のうちの残りの入力信号を保持する。ここで、残りの入力信号とは、直交変換装置50への入力信号のうちで、上述した偶数番の入力信号つまり第1バタフライ演算部100により演算される入力信号を除いた、残りの入力信号、すなわち、奇数番の入力信号である。第3選択部301は(図9)、直交変換装置50への複数点の入力信号のうちの残りの入力信号及び第1遅延部203に保持された入力信号からデータを選択する。ここで、残りの入力信号とは、上述の場合と同じであり、奇数番の入力信号である。第3選択部301は、直交変換装置50が、上記の3種類の直交変換のうちで、DCTの直交変換をする場合、および、H.264/AVCの直交変換をする場合には、直交変換装置50へのこの奇数番の入力信号を選択する一方で、直交変換装置50がVC−1の直交変換をする場合には、直交変換装置50への奇数番の入力信号を選択するときと、第1遅延部203に保持された入力信号を選択するときとを切り替える。
第2バタフライ演算部101は(図10(b)、図9)、直交変換装置50への複数点の入力信号のうちの残りの入力信号に対して、4点の積和演算を行う4点基本演算部を有する。第2バタフライ演算部101は、第3選択部301(図9)で選択されたデータに対して積和演算を行う。第2バタフライ演算部101は、第3選択部301が、直交変換装置50への複数点の入力信号のうちの残りの入力信号を選択すると、残りの入力信号に対する演算を行い、第1遅延部203に保持された入力信号を選択すると、第1遅延部203に保持された入力信号に対する演算を行う。
ここで、4点基本演算部は、図7が示す2点基本演算部(2点基本演算器)が2点入力である基本演算部であるのに対して、4点入力にされた基本演算部である。4点基本演算部は、第1〜第4の入力(図10(b)の第2バタフライ演算部101に示された左側の4つの黒丸での入力)に基づいて、それら4つの入力を積和演算した演算結果を、第1〜第4の出力(右側の4つの黒丸での出力)としてそれぞれ出力する。換言すれば、4点基本演算部は、4点の入力信号と4つの変換係数を演算した結果を加算する構成を4個備え、それら4個の結果をそれぞれ4つの出力とする。
第3バタフライ演算部102は(図10(c)、図9)、第2バタフライ演算部101での演算結果に対して、2点の積和演算を行う2点基本演算部を有する。第3バタフライ演算部102は、図10(c)に示されるように構成された3個の2点基本演算部を有する。
第1遅延部203は(図9)、第1バタフライ演算部100での演算結果を保持する。
第2遅延部202は(図9)、第3バタフライ演算部102での演算結果を保持する。
第1選択部303は(図9)、第1バタフライ演算部100での演算結果及び第1遅延部203に保持された演算結果からデータを選択する。第1選択部303は、直交変換装置50が3種類の直交変換のうちでDCTの直交変換をする場合およびH.264/AVCの直交変換をする場合には、第1バタフライ演算部100での演算結果を選択する一方で、VC−1の直交変換をする場合には、第1遅延部203に保持された演算結果を選択する。
第2選択部302は(図9)、第3バタフライ演算部102での演算結果及び第2遅延部202に保持された演算結果からデータを選択する。第2選択部302は、3種類の直交変換のうちで、直交変換装置50がDCTの直交変換をする場合およびH.264/AVCの直交変換をする場合には、第3バタフライ演算部102での演算結果を選択し、VC−1の直交変換をする場合には、第3バタフライ演算部102での演算結果の一部を第1の部分に有すると共に第2遅延部202に保持された演算結果を第2の部分に有するそれら第1および第2の2つの部分を集めてなるデータを選択する。この点の詳細については後の説明により示される(図14、図15参照)。
第4バタフライ演算部103は(図10(d)、図9)、第1選択部303で選択されたデータ及び第2選択部302で選択されたデータに対して、2点の積和演算を行う2点基本演算部を有する。第3バタフライ演算部102は、図10(c)に示されるように構成された4個の2点基本演算部を有する。
変換係数供給部401(図9)は、第1バタフライ演算部100〜第4バタフライ演算部103での積和演算に用いられる変換係数をそれら第1バタフライ演算部100〜第4バタフライ演算部103に供給する。変換係数供給部401は、第1バタフライ演算部100〜第4バタフライ演算部103で繰り返される積和演算の毎処理単位で、それら第1バタフライ演算部100〜第4バタフライ演算部103に供給する変換係数を変更する。変換係数供給部401は、直交変換装置50がDCTの直交変換をする場合には、第1バタフライ演算部100〜第4バタフライ演算部103が直交変換をするための変換係数を供給し、H.264/AVCの直交変換をする場合には、H.264/AVCの直交変換をするための変換係数を供給し、VC−1の直交変換をする場合には、VC−1の直交変換をするための変換係数を供給する。つまり、変換係数供給部401は、直交変換装置50が行う直交変換の種類に応じて、それぞれ、行われる種類の直交変換のための変換係数を提供する。
なお、第1遅延部203、第2遅延部202、第3遅延部201の少なくとも一部は、たとえば、バッファや、メモリ、レジスタによって構成されていてもよい。
ここに、第1選択部303は、換言すれば、第1バタフライ演算部100での演算結果及び第1遅延部203に保持された演算結果からいずれかを選択するものといえる。同様に、第2選択部302は、第3バタフライ演算部102での演算結果及び第2遅延部202に保持された演算結果からいずれかを選択するものといえる。また、第3選択部301は、当該直交変換装置50への複数点の入力信号のうちの残りの入力信号及び第1遅延部203に保持された入力信号からいずれかを選択するものといえる。
第1バタフライ演算部100〜第4バタフライ演算部103の4つの演算部の全体は、4段パイプライン演算回路51(図11)を構成する。
図11は、4段パイプライン演算回路51を示す図である。
4段パイプライン演算回路51は、第1バタフライ演算部100と、第2バタフライ演算部101と、第3バタフライ演算部102と、第4バタフライ演算部103との全体よりなる。なお、図9は、4段パイプライン演算回路51の図示を省略している。4段パイプライン演算回路51は、Chenの高速アルゴリズムによるDCTの直交変換の4段パイプライン演算回路と、第2バタフライ演算部101の部分が異なり、他の部分、つまり第1バタフライ演算部100と、第3バタフライ演算部102と、第4バタフライ演算部103との各部分は、それぞれ、Chenの4段パイプライン演算回路におけるそれらの部分に対応する各部分とそれぞれ同じである。したがって、4段パイプライン演算回路51は、Chenの高速アルゴリズムによる4段パイプライン演算回路を第1バタフライ演算部100と、第2バタフライ演算部101と、第3バタフライ演算部102と、第4バタフライ演算部103との4つの部分に対応する箇所で分割して、第2バタフライ演算部101に対応する箇所は、第2バタフライ演算部101に置き換えたものである。
以下の説明は、Chenの4段パイプライン演算回路との関係により、第1バタフライ演算部100〜第4バタフライ演算部103の更に詳細を示す。第1バタフライ演算部100は、Chenの4段パイプライン演算回路の第1〜3段目のうちで、偶数番目の入力信号を処理する箇所の回路と同じ回路である。第2バタフライ演算部101は、Chenの4段パイプライン演算回路の第1段目のうちで、奇数番目の入力信号を処理する部分と同じ回路である。第3バタフライ演算部102は、Chenの4段パイプライン演算回路の第2〜3段目の部分のうちで、奇数番目の入力信号を処理する部分と同じである。第4バタフライ演算部103は、Chenの4段パイプライン演算回路の第4段目の部分と同じである。
以上のように、直交変換装置50は、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換装置を、積和演算処理を行う2点基本演算部と4点基本演算部で構成した100〜103で示す4つのバタフライ演算部に分割して構成され、前記バタフライ演算部101、103の入力に、入力信号を遅延させる遅延部203、202、201と、前記遅延部からの出力と前記入力信号ないしバタフライ演算部の演算結果とを選択し、バタフライ演算部101ないしは103への入力を選択する選択部301、302、303と、前記各バタフライ演算部に直交変換の変換係数を供給する変換係数供給部401とを備える。
次の説明は、このような構成を備える直交変換装置50の動作を述べる。まず、直交変換装置50がDCTの直交変換を行う動作について説明する。
図12は、第2バタフライ演算部101が変形してなる、第2バタフライ演算部のA型101Aおよび第2バタフライ演算部のB型101Bを示す図である。図12(a)は、図10(b)および図11に示された第2バタフライ演算部101の構成を再掲する図である。図12(b)は、第2バタフライ演算部101が変形した第2バタフライ演算部のA型101A(図12(b)右側)を示す図である。図12(c)は、第2バタフライ演算部101が変形した第2バタフライ演算部のB型101B(図12(c)右側)を示す図である。
第2バタフライ演算部101は、直交変換装置50がDCTの直交変換を行う時には、図12(b)に示された第2バタフライ演算部のA型101Aに変形する。
第2バタフライ演算部のA型101Aは、2個の2点基本演算部を組み合わせた演算回路であり、つまり、それら2個の2点基本演算部のうちで一方の基本演算部はこの第2バタフライ演算部101への第2入力および第3入力を当該一方の2点基本演算部の第1入力および第2入力にするのと共に、当該第2バタフライ演算部101の第2出力および第3出力を当該2点基本演算部の第1出力および第2出力とするものである。また、もう一方の2点基本演算部は、当該第2バタフライ演算部101への第1入力、第4入力、第1出力および第4出力をそれぞれ、当該もう一方の2点基本演算部の第1入力、第2入力、第1出力および第2出力とするものである。
ここで、この、第2バタフライ演算部のA型101Aは、Chenの4段パイプライン演算回路における当該第2バタフライ演算部101に対応した部分と同じ構成を有するものである。
このため、変換係数供給部401によりDCTの変換係数が供給されるとともに、この第2バタフライ演算部101が図12(b)を参照して上記に説明された第2バタフライ演算部のA型101Aの形に変形することによって、第1バタフライ演算部100〜第4バタフライ演算部103つまり4段パイプライン演算回路51がChenの高速アルゴリズムに基づく直交変換のための積和演算を行い、MPEG1,MPEG2,MPEG4で使用されているDCTの直交変換を実現することができる。
なお、第2バタフライ演算部101は、第2バタフライ演算部のA型101Aに変形する方法として、例えば、変換係数供給部401が供給する変換係数0に基づいて変形する方法を行うものとしてもよいし、演算結果を出力するのではなく0を選択して出力することで変形する方法を行うものであってもよいし、他の方法により変形を行うものであってもよい。
ここで、第2バタフライ演算部101は、変換係数0を受けて変形をする場合には、全ての変換係数のうちで、図12(b)左側の第2バタフライ演算部101に含まれる破線が示す乗算の変換係数に、値0を変換係数供給部401から受けることで、変形を行う(図7参照)。
次に、H.264/AVCの動作について説明する。
第2バタフライ演算部101は、直交変換装置50がDCTの直交変換を行う時には、図12(c)に示された第2バタフライ演算部のB型101Bに変形する。
第2バタフライ演算部のB型101Bは、前述の図8により示される、H.264/AVCの直交変換に必要となる、3点入力の襷がけ演算が行われる演算回路501と同じ回路である。
図13は、H.264/AVCの直交変換を行う4段パイプライン演算回路である、H.264/AVC用の直交変換演算構成500を示す図である。
H.264/AVC用の直交変換演算構成500は、図13の左下の図示する箇所、すなわち、第2バタフライ演算部101の位置に対応する箇所に、先述の図8に示される3点入力の襷がけ演算が行われる演算回路501を有する。
本実施形態の4段パイプライン演算回路51は、第2バタフライ演算部101が、この図13の演算回路501と同じものである第2バタフライ演算部のB型101Bに変形することにより、図5に示されたH.264/AVC直交変換演算構成と等価になる。
このため、変換係数供給部401よりH.264/AVCの変換係数を供給するとともに、第2バタフライ演算部101が図12(c)に示す第2バタフライ演算部のB型101Bの形に変形することによって、H.264/AVCで使用されている直交変換(整数精度直交変換)を実現できる。
なお、第2バタフライ演算部101は、図12(c)の第2バタフライ演算部のB型101Bに変形する方法として、変換係数供給部401が当該第2バタフライ演算部101に供給する変換係数0に基づいて変形する方法を行ってもよいし、演算結果を出力するのではなく0を選択して出力することにより変形する方法を行ってもよいし、他の方法によって変形を行うものであってもよい。
次に、VC−1の直交変換の動作を説明する。
第2バタフライ演算部101は、直交変換装置50がVC−1の直交変換を行う場合には、第1回目および第2回目の2回の演算を行う。
図14は、直交変換装置50がVC−1の直交変換を行う場合に第2バタフライ演算部101が行う2回の演算を説明する図である。
図15は、直交変換装置50がVC−1の直交変換を行う場合に第2バタフライ演算部101が行う2回の演算の式を示す図である。
図14の最左端の上段に示されるx1、x3、x5、x7は、直交変換装置50への入力信号の奇数番のものである。他方、図14の最左端の下段に示されたx1_d、x5_d、x3_d、x7_dは、第3遅延部201(図9)に保持された入力信号である。そして、図15におけるd1、d3、d5、d7は、それぞれ、図14において、x1、x3、x5、x7により図示した入力信号と同じ信号を指す。
図14の上段は、第2バタフライ演算部101が行う1回目の演算を示し、下段は、第2バタフライ演算部101が行う2回目の演算を示している。なお、図14の上下段における第2バタフライ演算部101は、直交変換装置50がVC−1の直交変換を行うため、第2バタフライ演算部のA型101Aに変形している。
第2バタフライ演算部101が行う1回目の演算は次の通りである。
第3選択部301は、第2バタフライ演算部101が1回目の演算を行う時に、第1遅延部203に保持された入力信号ではなく、直交変換装置50への入力信号の方を、第2バタフライ演算部101が演算をするデータとして選択する。つまり、第3選択部301は、第一回目の演算の時に、図14の左端上段に示されたx1、x5、x3、x7を選択する。第2バタフライ演算部101は、1回目の演算の時に、図15の最左に示された、4×d1−16×d7と、15×d5−9×d3と、9×d5+15×d3と、16×d1+4×d7との積和演算をそれぞれ行う。変換係数供給部401は、かかる演算を行う第2バタフライ演算部101が変換係数を1回目の演算の際に第2バタフライ演算部101に供給する。
第3バタフライ演算部102は、この1回目の演算の時に、上述した第2バタフライ演算部101の演算の演算結果に対して演算を行い、具体的には、図15中央のy1=(4×d1−16×d7)+(15×d5−9×d3)と、y2=(9×d5+15×d3)+(16×d1+4×d7)の演算を行う。なお、第3バタフライ演算部102は、このとき、図14上段の第2バタフライ演算部101に示される0が表すように、第1出力および第4出力に上述の演算結果y1およびy2を出力すると共に、第2出力および第3出力は0とする。変換係数供給部401は、かかる演算を行わせる変換係数を、1回目の演算の時に第3バタフライ演算部102に供給する。
第3遅延部201は、かかる第2バタフライ演算部101および第3バタフライ演算部102による1回目の演算の間、上述したd1、d3、d5、d7、換言するならばx1、x3、x5、x7(図14左端の上段)を保持する。
他方、第2バタフライ演算部101が行う2回目の演算は次の通りである。
第3選択部301は、上述した演算の間第3遅延部201に保持されたd1、d3、d5、d7を、第2バタフライ演算部101および第3バタフライ演算部102が2回目の演算を行う時に選択する。なお、図14下段の左端に示されるx1_d、x3_d、x5_d、x7_dは、このとき選択されるd1、d3、d5、d7をそれぞれ示す。
第2バタフライ演算部101は、2回目の演算の時、図15の最下段に示されるように、9×d1+15×d7、4×d5−16×d3、−16×d5−4×d3、15×d1−9×d7の演算を行う。変換係数供給部401は、かかる演算を行う第2バタフライ演算部101にさせる変換係数を第2バタフライ演算部101に2回目の演算の時に供給する。
第3バタフライ演算部102は、この第2バタフライ演算部101の演算結果に基づいて、y3=(9×d1+15×d7)+(4×d5−16×d3)、y4=(−16×d5−4×d3)+(15×d1−9×d7)の演算を、2回目の演算として、行う。
なお、変換係数供給部401は、第2バタフライ演算部101に対して、1回目の演算で第2バタフライ演算部101に供給する演算係数とは異なる演算係数を供給する。同様に、変換係数供給部401は、第3バタフライ演算部102に対しても、1回目の演算と2回目の演算との間で、互いに異なる変換係数を供給する。
第1遅延部203(図9)は、第2バタフライ演算部101および第3バタフライ演算部102が1回目の演算を行う時に、その演算と並行して第1バタフライ演算部100が行った演算の演算結果を保持する。
第2遅延部202は、1回目の演算での第2バタフライ演算部101および第3バタフライ演算部102がした演算の演算結果、つまり1回目の演算での第3バタフライ演算部102の出力たる演算結果を保持する。第2遅延部202は、第2バタフライ演算部101および第3バタフライ演算部102が2回目の演算を終えるまで、この保持を行う。
第1選択部303は、第2バタフライ演算部101が2回目の演算を行う時に、直交変換装置50はVC−1の直交変換をするので、第1遅延部203に保持された演算結果を選択する。
第2選択部302は、2回目の演算で第3バタフライ演算部102が出力する、図15および図14下段に示されたy3、y4と、1回目の演算の時から第2遅延部202が保持する図15および図14上段に示されたy1、y2とを、第4バタフライ演算部103が演算に用いるデータとして選択する。つまり、第2選択部302は、y1、y2を有する第1の部分と、y3、y4を有する第2の部分とを集めてなるデータ、つまりy1、y2、y3、y4からなるデータを、第4バタフライ演算部103が用いるデータに選択する。
第4バタフライ演算部103は、第2選択部302がこうして選択したデータを用いることで、第2バタフライ演算部101および第3バタフライ演算部102による演算結果のデータのうち、y1、y2、y3、y4の4つのデータを演算に用いる。
これにより、変換係数供給部401よりVC−1の変換係数を供給するとともに、第2バタフライ演算部101を図12に示すような第2バタフライ演算部のA型101Aの形に変形し、更に、図14に示すように第3遅延部201を用いて、入力信号を2回入力するとともに変換係数供給部401より1回目と2回目の変換係数を変更して供給し、演算させることによって、VC−1で使用されている直交変換(整数精度直交変換)を実現できる。
なお、第2バタフライ演算部101は、第2バタフライ演算部のA型101Aに変形する方法として、変換係数供給部401が供給する変換係数0に基づいて変形する方法を行うものとしてもよいし、演算結果を出力するのではなく0を選択して出力することで変形する方法を行うものとしてもよいし、他の方法により変形をするものであってもよい。
なお、このように、直交変換装置50は、第2バタフライ演算部101と第3遅延部201とを用いて、奇数側の入力信号を当該第2バタフライ演算部101に2度入力し、その都度、変換係数を逐次切り替える構成によって、下段側(奇数側)の演算をバタフライ処理ではなく、直接行列演算を行う。
また、第2バタフライ演算部101は、第2バタフライ演算部101の4点基本演算部が行う積和演算を、4段パイプライン演算回路51が複数種類の直交変換を行うための、所定の3点演算(図12(b)での演算)および2点演算(図12(a)での演算)の間で切り替える。
(実施の形態2)
続けて、以下の説明は、実施の形態2について述べる。
図16は、実施の形態2に係る直交変換装置50aを示す図である。
直交変換装置50aは、実施の形態1の構成に加えて、更に、第5バタフライ演算部104と、第4選択部304とを備える。
第5バタフライ演算部104は、前記複数点の入力信号のうちの残りの入力信号に対して、4点の積和演算を行う4点基本演算部を有する。第5バタフライ演算部104は、実施形態1で説明される第2バタフライ演算部101と並列に配置され、第2バタフライ演算部101が有する構成と同じ構成を有する(図10(b)参照)。
第4選択部304は、第2バタフライ演算部101及び第5バタフライ演算部104での演算結果からデータを選択し、変換係数供給部401は、第5バタフライ演算部104での積和演算に用いられる変換係数を第5バタフライ演算部104に供給し、第3バタフライ演算部102は、第4選択部304で選択されたデータに対して積和演算を行う。
第2バタフライ演算部101は、先述した実施の形態1において第2バタフライ演算部101がした1回目の演算を行う。
第5バタフライ演算部104は、他方の、実施の形態1において第2バタフライ演算部101がした2回目の演算を行う。
図17は、直交変換装置50aがVC−1の直交変換をする際の演算の流れを示す図である。図17中段に示された第2バタフライ演算部101および第3バタフライ演算部102は、それらが行う実施の形態1における1回目の演算、つまり、y1およびy2が演算結果たる演算(図14、図15を参照)を示す。図17下段の第5バタフライ演算部104および第3バタフライ演算部102は、それらが行う実施の形態1における2回目の演算、つまり、y3およびy4が演算結果たる演算(図14、図15を参照)を示す。
第4バタフライ演算部103は、これら、図17中段および下段の両者の演算結果、つまりy1、y2と、y3、y4に基づいて演算を行う。
かかる直交変換装置50aによれば、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換装置を、積和演算処理を行う2点基本演算部と4点基本演算部で構成した101、104、102、103、100で示す5つのバタフライ演算部と、第4バタフライ演算部103の入力に設けられた、入力信号を遅延させる第2遅延部202および第1遅延部203と、遅延部からの出力とバタフライ演算部からの出力とからデータを選択し、バタフライ演算部102ないしは103への入力を選択する選択部302、303、304と、各バタフライ演算部に変換係数を供給する変換係数供給部401とで構成する。このとき前記第5バタフライ演算部104は前記第2バタフライ演算部101と同じものである。そして、実施の形態1で入力信号を2回遅延させて入力する代わりに、入力信号を同時に同じものである第2バタフライ演算部101および第5バタフライ演算部104との2つのバタフライ演算部に供給し、変換係数供給部401からも同時に別々の変換係数をそれぞれに供給し、演算することによって、VC−1の直交変換を実現する。これにより、2回目の演算での第5バタフライ演算部104の処理が、1回目の演算での第2バタフライ演算部での処理と同時並列に行われて、第1回および第2回の両者の演算の演算結果を共に用いた第4バタフライ演算部103の演算結果を早く出力できるようになり、VC−1の直交変換を高速にできる。
(実施の形態3)
次に、以下の説明は、4×4の変換行列の直交変換(先述の図3、図4参照)が行われる場合の実施の形態3を述べる。
図18は、4×4直交変換を行う実施の形態3を示す図である。図18(a)は、図4に示された、VC−1における誤差を低減するための4×4の直交変換の変換行列を再掲するものである。図18(b)は、図18(a)の変換行列の第2行と第3行を入れ替えた行列を左辺に、左辺の式を変形した式を右辺に示す行列の式を示すものである。図18(c)は、第1バタフライ演算部100が図18(b)の行列の演算を行う際の変換係数を示す図である。
第1バタフライ演算部100は、4点の高速直交変換を行う。第1バタフライ演算部100は、直交変換装置50がVC−1の直交変換をする場合に、変換係数供給部401から供給される図18(c)の変換係数の演算、つまり図18(b)により示される行列の演算をして、VC−1の誤差を低減させる4点の高速直交変換の演算を行う。
なお、第1バタフライ演算部100は、上述した、図4に示されたVC−1の4×4の変換行列に基づいた、VC−1の誤差を低減させるための4点の高速直交変換を行うのと同様に、図3に示されたH.264/AVCの4×4の変換行列に基づいた、H.264/AVCの誤差を低減させるための4点の高速直交変換の演算も行う。
この実施の形態3であれば、第1バタフライ演算部100は、図3もしくは図4により示された4×4の直交変換を実現することが可能であり、第1バタフライ演算部100に4つの入力信号を供給するとともに、変換係数供給部401から4×4の変換係数を第1バタフライ演算部100に入力することによって、H.264/AVCおよびVC−1の4×4の直交変換を実現することができ、直交変換装置50だけでH.264/AVCおよびVC−1の4×4の直交変換まで実現できる。
以上説明した実施の形態1〜3の直交変換装置50、50aであれば、従来構成のように基本的な演算手段、演算器の接続関係を変更することなく、第2バタフライ演算部101が有する4点基本演算部が行う演算が切り替えられることで、H.264/AVCやVC−1といった新規の符号化規格の直交変換を処理するとともに、MPEG2といった既存のDCTの直交変換の処理も変換係数の変更だけで実現でき、複数の処理に共通の高速直交変換アルゴリズムを行う直交変換装置を提供することができる。
そして、これにより、複数の直交変換を1つの共通の高速直交変換アルゴリズム演算手段もしくは回路構成(4段パイプライン演算回路51)で実現することができて、プログラムの共通化や半導体集積回路全体の面積削減、低消費電力化、複数の動画符号化処理の実現の容易化、プログラムの管理における間違い発生の抑止を実現することができる。
なお、実施の形態1の直交変換装置50(図9)は、何らかの処理を施した入力信号に対して、バタフライ演算手段構成をもととして、直交変換処理を行う高速アルゴリズム直交変換手段を、積和演算処理を行う2点基本演算部と4点基本演算部で構成した4つのバタフライ演算部100〜103に分割し、前記バタフライ演算部101、103の入力には、入力信号を遅延させる遅延部201〜203と、前記遅延部201〜203からの出力と前記入力信号とを選択し、前記バタフライ演算部への入力を選択する選択部301〜303とを有し、前記バタフライ演算部に直交変換係数を供給する変換係数供給部401を備える。
他方、実施の形態2の直交変換装置50a(図16)は、何らかの処理を施した入力信号に対して直交変換処理を行う高速アルゴリズム直交変換手段を、積和演算処理を行う2点基本演算部と4点基本演算部で構成した4つのバタフライ演算部100〜103に分割し、前記第4バタフライ演算部103の入力には、入力信号を遅延させる遅延部202、203と、前記遅延部202、203からの出力と前記入力信号とを選択し、前記第4バタフライ演算部103への入力を選択する選択部302、303とを有し、前記第2バタフライ演算部101の箇所を並列に第2バタフライ演算部101と第5バタフライ演算部104の2つとして配置し、前記第2バタフライ演算部101と第5バタフライ演算部104を選択する第4選択部304と、前記各バタフライ演算部に直交変換の変換係数を供給する変換係数供給部401とを備える。
前記構成によって、前記変換係数供給部401よりDCTの変換係数および、前記4点基本演算部を2点基本演算部と等価なものにするために変換係数0を供給することによってMPEG1、MPEG2、MPEG4を処理するための直交変換手段を実現し、また、前記変換係数供給部よりH.264/AVCの変換係数および、前記4点基本演算部を3点演算部と等価なものにするために変換係数0を供給することによりH.264/AVCを処理するための直交変換手段を実現する(図3参照)。更に、前記変換係数供給部401よりVC−1の変換係数および、前記4点基本演算部を2点演算部と等価なものにするために変換係数0を供給することに加えて、前記遅延部により入力データを2回入力することとその都度変換係数を入れ替えることによって、奇数側の演算を直接行列演算することでVC−1の直交変換を処理するための直交変換手段を実現する(図14参照)。
これにより、直交変換装置50、50aによれば、共通の直交変換手段を用いて、複数の直交変換、特に基底の性質が異なる直交変換の処理を実現できる。
なお、本発明は、かかる実施の形態に限定されるものではない。
たとえば、本発明は1チップの半導体集積回路として、次のように実施してもよい。
図19は、集積回路50cを示す図である。
集積回路50cは、複数点の入力信号に対して直交変換を行う集積回路である。
なお、集積回路50cは、請求の範囲に記載される「集積回路」の一例であり、かつ、同じく請求の範囲に記載される「直交変換装置」の一例でもある。
集積回路50cは、直交変換回路601と制御部602とを備える。
直交変換回路601は、実施の形態1における直交変換装置50の各部分(図9)を備え、すなわち、第1バタフライ演算部100と、第2バタフライ演算部101と、第3バタフライ演算部102と、第4バタフライ演算部103と、第5バタフライ演算部104と、第3遅延部201と、第2遅延部202と、第1遅延部203と、第3選択部301と、第2選択部302と、第1選択部303と、第4選択部304と、変換係数供給部401と、を備える。なお、図19では、集積回路50cのこれらの構成の図示は省略されている。
なお、実施の形態4においては、これらの各部は、集積回路50c上に実現された配線によって実現されるが、各部は、ソフトウェアにより実現された機能部にしてもよいし、ハードウェアによって実現された機能部にしてもよいし、他の方法により実現されたものにしてもよい。
制御部602は、集積回路50cの入力と出力とを入れ換えることで、集積回路50cが有する直交変換回路601に、正直交変換及び逆直交変換を選択的に行わせるものである。
また、上記の各実施の形態において、第1バタフライ演算部100〜第4バタフライ演算部103は(第1バタフライ演算部100〜第5バタフライ演算部104は)、それぞれ、積和演算に用いられる変換係数が2のべき乗であった場合に、ビットシフタとして動作するものであってもよい。こうすれば、多様な変換係数の乗算がされるにも関わらず、各バタフライ演算部の構成を簡潔にし、また、演算の速度を高速にできる。
また、上記の各実施の形態において、第1バタフライ演算部100〜第4バタフライ演算部103は(第1バタフライ演算部100〜第5バタフライ演算部104は)、それぞれ、積和演算の対象となる入力信号又は変換係数が0であった場合に、当該入力信号及び変換係数を乗算することに代えて、出力結果として選択した0を出力するものであってもよい。こうすれば、無駄な乗算がされず、消費電力を減らしたり、装置の構成を簡単にしたり、演算を高速化したりできる。
また、上記の各実施の形態において、第1バタフライ演算部100〜第4バタフライ演算部103は(第1バタフライ演算部100〜第5バタフライ演算部104は)、積和演算の対象となる入力信号又は変換係数が0であった場合に、当該入力信号及び変換係数を乗算すること、及び、前記乗算に代えて出力結果として選択した0を出力することを選択的に行うものであってもよい。
また、上記の各実施の形態において、第2バタフライ演算部101は、4点の入力信号のうちの2点の入力信号に対して、変換係数を0とする乗算を行うこと、又は、乗算に代えて演算結果として0を選択することにより、2点基本演算部として機能するものであってもよい。第2バタフライ演算部101は、例えばかかる構成をとることにより、図12(b)に示された第2バタフライ演算部のA型101Aに変形する。
本発明にかかる直交変換装置及び集積回路は、MPEG1,MPEG2,MPEG4,H.264/AVC、VC−1の動画像符号化規格の直交変換処理を1つの高速アルゴリズム直交変換手段で可能とするため動画像符号化などの画像符号化の分野において有用である。
図1は、H.264/AVCにおける整数精度直交変換の変換行列を示す図である。 図2は、VC−1における整数精度直交変換の変換行列を示す図である。 図3は、H.264/AVCにおける4×4の変換行列を示す図である。 図4は、VC−1における4×4の変換行列を示す図である。 図5は、従来の構成を示す図である。 図6は、従来の構成が有するバタフライ器の中身を示す図である。 図7は、2点入力の襷がけ演算器(2点基本演算器)を示す図である。 図8は、H.264/AVC直交変換において必要な3点入力の演算器を示す図である。 図9は、直交変換装置50を示す図である。 図10は、直交変換装置50が有する4つのバタフライ演算部の詳細を示す図である。 図11は、4段パイプライン演算回路を示す図である。 図12は、第2バタフライ演算部のA型およびB型を示す図である。 図13は、H.264/AVC用の直交変換演算構成を示す図である。 図14は、直交変換装置がVC−1の直交変換を行う場合に第2バタフライ演算部が行う2回の演算を説明する図である。 図15は、直交変換装置がVC−1の直交変換を行う場合に第2バタフライ演算部が行う2回の演算の式を示した図である。 図16は、直交変換装置を示す図である。 図17は、直交変換装置がVC−1の直交変換をする際の演算の流れを示す図である。 図18は、4×4直交変換を行う実施の形態を示す図である。 図19は、集積回路を示す図である。
11 従来の構成
20 2点基本演算器
50 直交変換装置
50a 直交変換装置
50c 集積回路
51 4段パイプライン演算回路
100 第1バタフライ演算部
101 第2バタフライ演算部
101A 第2バタフライ演算部のA型
101B 第2バタフライ演算部のB型
102 第3バタフライ演算部
103 第4バタフライ演算部
104 第5バタフライ演算部
201 第3遅延部
202 第2遅延部
203 第1遅延部
301 第3選択部
302 第2選択部
303 第1選択部
304 第4選択部
401 変換係数供給部
500 H.264/AVC用の直交変換演算構成
501 3点入力の襷がけ演算が行われる演算回路
601 直交変換回路
602 制御部

Claims (12)

  1. 複数点の入力信号に対して直交変換を行う直交変換装置であって、
    前記複数点の入力信号のうちの一部の入力信号に対して、2点の積和演算を行う2点基本演算部を有する第1のバタフライ演算手段と、
    前記複数点の入力信号のうちの残りの入力信号に対して、4点の積和演算を行う4点基本演算部を有する第2のバタフライ演算手段と、
    前記第2のバタフライ演算手段での演算結果に対して、2点の積和演算を行う2点基本演算部を有する第3のバタフライ演算手段と、
    前記第1のバタフライ演算手段での演算結果を保持する第1の遅延手段と、
    前記第1のバタフライ演算手段での演算結果及び前記第1の遅延手段に保持された演算結果からデータを選択する第1の選択手段と、
    前記第3のバタフライ演算手段での演算結果を保持する第2の遅延手段と、
    前記第3のバタフライ演算手段での演算結果及び前記第2の遅延手段に保持された演算結果からデータを選択する第2の選択手段と、
    前記第1の選択手段で選択されたデータ及び前記第2の選択手段で選択されたデータに対して、2点の積和演算を行う2点基本演算部を有する第4のバタフライ演算手段と、
    前記第1〜4のバタフライ演算手段での積和演算に用いられる変換係数を前記第1〜4のバタフライ演算手段に供給する変換係数供給手段とを備え、
    前記第2のバタフライ演算手段は、当該第2のバタフライ演算手段の前記4点基本演算部が行う積和演算を、前記第1〜4のバタフライ演算手段が複数種類の直交変換を行うための、所定の3点演算および2点演算の間で切り替える
    ことを特徴とする直交変換装置。
  2. 前記直交変換装置はさらに、
    前記複数点の入力信号のうちの残りの入力信号を保持する第3の遅延手段と、
    前記複数点の入力信号のうちの残りの入力信号及び前記第3の遅延手段に保持された入力信号からデータを選択する第3の選択手段とを備え、
    前記第2のバタフライ演算手段は、前記第3の選択手段で選択されたデータに対して前記積和演算を行う
    ことを特徴とする請求項1記載の直交変換装置。
  3. 前記直交変換装置はさらに、
    前記複数点の入力信号のうちの残りの入力信号に対して、4点の積和演算を行う4点基本演算部を有する第5のバタフライ演算手段と、
    前記第2及び第5のバタフライ演算手段での演算結果からデータを選択する第4の選択手段とを備え、
    前記第3のバタフライ演算手段は、前記第4の選択手段で選択されたデータに対して前記積和演算を行い、
    前記変換係数供給手段は、前記第5のバタフライ演算手段での積和演算に用いられる変換係数を前記第5のバタフライ演算手段に供給する
    ことを特徴とする請求項1記載の直交変換装置。
  4. 前記第1〜4のバタフライ演算手段は、Chenの高速アルゴリズムに基づく直交変換のための積和演算を行う
    ことを特徴とする請求項1記載の直交変換装置。
  5. 前記変換係数供給手段は、前記第1〜4のバタフライ演算手段で繰り返される積和演算の毎処理単位で、前記第1〜4のバタフライ演算手段に供給する変換係数を変更する
    ことを特徴とする請求項1記載の直交変換装置。
  6. 前記第1〜4のバタフライ演算手段は、積和演算の対象となる入力信号又は変換係数が0であった場合に、当該入力信号及び変換係数を乗算することに代えて、出力結果として選択した0を出力する
    ことを特徴とする請求項1記載の直交変換装置。
  7. 前記第1〜4のバタフライ演算手段は、積和演算の対象となる入力信号又は変換係数が0であった場合に、当該入力信号及び変換係数を乗算すること、及び、前記乗算に代えて出力結果として選択した0を出力することを選択的に行う
    ことを特徴とする請求項1記載の直交変換装置。
  8. 前記第2のバタフライ演算手段は、4点の入力信号のうちの2点の入力信号に対して、変換係数を0とする乗算を行うこと、又は、乗算に代えて演算結果として0を選択することにより、2点基本演算部として機能する
    ことを特徴とする請求項1記載の直交変換装置。
  9. 前記第1のバタフライ演算手段は、4点の高速直交変換を行う
    ことを特徴とする請求項1記載の直交変換装置。
  10. 前記第1〜4のバタフライ演算手段は、積和演算に用いられる変換係数が2のべき乗であった場合に、ビットシフタとして動作する
    ことを特徴とする請求項1記載の直交変換装置。
  11. 前記直交変換装置はさらに、当該直交変換装置の入力と出力とを入れ換えることで、当該直交変換装置に正直交変換及び逆直交変換を選択的に行わせる制御手段を備える
    ことを特徴とする請求項1記載の直交変換装置。
  12. 複数点の入力信号に対して直交変換を行う集積回路であって、
    請求項1記載の手段として機能する回路を備える
    ことを特徴とする集積回路。
JP2009512767A 2008-01-28 2008-07-23 直交変換装置および集積回路 Pending JPWO2009095959A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008016769 2008-01-28
JP2008016769 2008-01-28
PCT/JP2008/001959 WO2009095959A1 (ja) 2008-01-28 2008-07-23 直交変換装置および集積回路

Publications (1)

Publication Number Publication Date
JPWO2009095959A1 true JPWO2009095959A1 (ja) 2011-05-26

Family

ID=40912331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009512767A Pending JPWO2009095959A1 (ja) 2008-01-28 2008-07-23 直交変換装置および集積回路

Country Status (6)

Country Link
US (1) US20100106760A1 (ja)
EP (1) EP2120153A1 (ja)
JP (1) JPWO2009095959A1 (ja)
KR (1) KR20100108189A (ja)
CN (1) CN101669115A (ja)
WO (1) WO2009095959A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5588381B2 (ja) * 2011-03-11 2014-09-10 日本放送協会 直交変換処理装置、方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332932A (ja) * 1993-05-19 1994-12-02 Fujitsu Ltd 高速フーリエ変換装置
JPH10307811A (ja) * 1997-05-02 1998-11-17 Sony Corp 演算装置および演算方法
JP2000067032A (ja) * 1998-08-21 2000-03-03 Nec Corp 高速改良離散コサイン変換装置および方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3047505B2 (ja) 1990-10-19 2000-05-29 松下電器産業株式会社 直交変換装置
US6125212A (en) * 1998-04-29 2000-09-26 Hewlett-Packard Company Explicit DST-based filter operating in the DCT domain
JP2002252770A (ja) * 2001-02-22 2002-09-06 Matsushita Graphic Communication Systems Inc 画像情報の分類方法,画像符号化方法および画像符号化装置
US7188132B2 (en) * 2001-12-25 2007-03-06 Canon Kabushiki Kaisha Hadamard transformation method and apparatus
AU2004214795B9 (en) * 2003-02-21 2009-06-04 Panasonic Intellectual Property Corporation Of America Picture coding method and picture decoding method
JP4688822B2 (ja) * 2005-06-15 2011-05-25 パナソニック株式会社 外部デバイスアクセス装置およびシステムlsi

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332932A (ja) * 1993-05-19 1994-12-02 Fujitsu Ltd 高速フーリエ変換装置
JPH10307811A (ja) * 1997-05-02 1998-11-17 Sony Corp 演算装置および演算方法
JP2000067032A (ja) * 1998-08-21 2000-03-03 Nec Corp 高速改良離散コサイン変換装置および方法

Also Published As

Publication number Publication date
US20100106760A1 (en) 2010-04-29
WO2009095959A1 (ja) 2009-08-06
KR20100108189A (ko) 2010-10-06
EP2120153A1 (en) 2009-11-18
CN101669115A (zh) 2010-03-10

Similar Documents

Publication Publication Date Title
US9665540B2 (en) Video decoder with a programmable inverse transform unit
US5825680A (en) Method and apparatus for performing fast division
US8270743B2 (en) Discrete cosine processing circuit and image processing device utilizing the same
JPH08235159A (ja) 逆コサイン変換装置
JP4704333B2 (ja) 画像符号化装置および画像復号化装置、ならびにそれらで用いられる集積回路
JP6357345B2 (ja) ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法
US6907438B1 (en) Two-dimensional inverse discrete cosine transform using SIMD instructions
JP2002304624A (ja) フィルタ処理装置及び撮像装置
US8514947B2 (en) Semiconductor device and signal processing method
KR100818034B1 (ko) 데이터 전송 방법, 회로 장치 및 데이터 전송 장치
JP2004120439A (ja) 画像処理装置及び画像処理方法
WO2009095959A1 (ja) 直交変換装置および集積回路
JP2009015637A (ja) 演算ユニット及び画像フィルタリング装置
KR20020052199A (ko) 데이터 전송 방법 및 그 회로 장치
JP5738639B2 (ja) データ処理装置およびデータ処理方法
JP4266512B2 (ja) データ処理装置
JP4740992B2 (ja) オーバーラップフィルタリングとコア変換を行うための方法及び装置
KR20130137951A (ko) 초고해상도 영상 코덱을 위한 역변환 방법
Chatterjee et al. A low cost, constant throughput and reusable 8# x00D7; 8 DCT architecture for HEVC
KR101383515B1 (ko) 영상의 역변환 장치
US20050114419A1 (en) Discrete cosine transformation apparatus, inverse discrete cosine transformation apparatus, and orthogonal transformation apparatus
KR100433709B1 (ko) 행렬 변화를 통한 분산산술처리 방식의 이산여현변환 방법
KR100790846B1 (ko) 영상처리의 정수 변환 방법 및 그의 프로세서
JP5546329B2 (ja) データ変換装置
JP4290608B2 (ja) 画像処理回路,及び画像処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120522