JP4738408B2 - 行列演算装置 - Google Patents

行列演算装置 Download PDF

Info

Publication number
JP4738408B2
JP4738408B2 JP2007517757A JP2007517757A JP4738408B2 JP 4738408 B2 JP4738408 B2 JP 4738408B2 JP 2007517757 A JP2007517757 A JP 2007517757A JP 2007517757 A JP2007517757 A JP 2007517757A JP 4738408 B2 JP4738408 B2 JP 4738408B2
Authority
JP
Japan
Prior art keywords
multiplication
circuit
bit shift
weighting
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.)
Expired - Fee Related
Application number
JP2007517757A
Other languages
English (en)
Other versions
JPWO2006126377A1 (ja
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
Priority to JP2007517757A priority Critical patent/JP4738408B2/ja
Publication of JPWO2006126377A1 publication Critical patent/JPWO2006126377A1/ja
Application granted granted Critical
Publication of JP4738408B2 publication Critical patent/JP4738408B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Description

本発明は、行列演算装置に関し、特に映像信号処理等の画像変換に用いられる演算装置に関するものである。
近年、離散コサイン変換(DCT)/逆離散コサイン変換(IDCT)などを用いた、画像の周波数間引き技術が多数用いられてきている。こうした画像間引きを実現することで、画像変換などに必要な一次記憶装置(メモリ)などを削減することが可能となる。
図1は、従来の行列演算装置の構成を示すブロック図であり、図2は従来の行列演算装置の詳細構成を示す構成図である。
図1、図2において、101は外部からの入力であり、102は重み付け乗算回路であり、103は加算回路であり、104は四捨五入処理回路であり、105はnビットシフト除算回路である。
従来の行列演算装置の構成では、複数の入力101に対する重み付け乗算回路における重み付け係数群102aに関して、そのすべての係数に特定の乗数倍(2のn乗)を行い、十分に演算精度が確保できる値まで該係数を拡張した後に、これを整数化することで重み付け係数群102bを実現し、それぞれの入力101に対して該重み付け係数群102bにおける係数を用いて重み付け乗算回路102によって重み付け乗算を行い、重み付け乗算回路102の演算結果を加算回路103によって加算する。この加算回路103の出力に四捨五入処理回路104によって四捨五入処理を行った後、演算精度確保のために重み付け係数群102aに対して乗数倍した拡張分をビットシフト除算回路105によってビットシフト除算することで、もともとの重み付け係数群102aで演算される重み付け演算を実現している。この演算を行うために、例えば特許文献1による行列演算回路の簡略化や、特許文献2による累積加算回路の削減などを行うことで、演算装置の回路簡素化による回路規模の削減などを実現してきた。
特開平5−158966号公報 特開平10−91615号公報
従来の構成では、離散コサイン変換/逆離散コサイン変換などに代表される行列演算において、演算精度を十分に確保するために、もともとの変換行列係数を2のn乗倍して十分大きな係数まで拡張し行列演算を行ってきた。しかしながら従来の構成では、非常に高精度の演算を必要とする行列演算において、非常に大きな値を乗算することによって変換行列係数を実現するために、変換行列係数によって演算される演算結果も非常に大きくなり、回路実現する上で乗算回路等が大きくなり全体の回路規模が大きくなっていた。特に、高周波成分を間引くために実現されるダウンサンプリングおよびアップサンプリングなどのシステムで行列演算の係数同士に大きな差がある場合は、特定の乗算値が非常に大きくなり、全体の回路規模が大きくなってしまう。また、乗算回路が大きくなることによって回路実現するためのタイミング制約等を満たすために、一次保持回路(FF)等を持つことになり、さらなる回路増加の原因となっていた。
本発明は、上記のような従来の問題点を解決するためになされたもので、乗算回路の回路規模を削減しつつ、従来に比しより高精度な演算結果を実現できる行列演算装置を得ることを目的とする。
また、タイミング制約のための一次保持回路(FF)を削減することが可能な行列演算装置を得ることを目的とする。
前記課題を解決するために、本発明にかかる行列演算装置は、行列演算係数を非常に大きな係数まで拡張することなく演算することにより、演算量を削減して乗算回路等の回路規模を削減するとともに、乗算結果に補正係数を加算することにより、演算精度向上を実現するものである。
本発明の行列演算装置は、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路の乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、前記k2ビットシフト乗算回路の乗算結果に対し、補正係数群を用いて演算された補正処理値の加算処理を行う補正処理回路と、前記補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備えることを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置において、前記補正係数群が、前記入力に対して前記k1乗倍重み係数群によって重み付けを行い、前記k2ビットシフト乗算を行った結果と、前記入力に対して前記重み付け係数群を2のk乗倍した係数で重み付けを行った結果との差を補正する係数群であることを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置において、前記補正処理回路の演算結果の精度の許容範囲に基づき、最適な補正係数群を用いることを特徴とするものである。
本発明の行列演算装置は、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路の演算結果に対し、第1の補正係数群を用いて演算された第1の補正処理値の加算処理を行う第1の補正処理回路と、前記第1の補正処理回路の演算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、前記k2ビットシフト乗算回路の演算結果に対し、第2の補正係数群を用いて演算された第2の補正処理値の加算処理を行う第2の補正処理回路と、前記第2の補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備えることを特徴とするものである。
本発明の行列演算装置は、、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路の乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、前記k2ビットシフト乗算回路の乗算結果に対し、第1の補正係数群を用いて演算された第1の補正処理値の加算処理を行う第1の補正処理回路と、前記第1の補正処理回路の演算結果に対し、k3ビットシフトによってビットシフト乗算処理を行うk3ビットシフト乗算回路と、前記k3ビットシフト乗算回路の乗算結果に対し、第2の補正係数群を用いて演算された第2の補正処理値の加算処理を行う第2の補正処理回路と、前記第2の補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2+k3とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備えることを特徴とするものである。
本発明の行列演算装置は、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路の乗算結果に対し、sビットシフト(s=k2,k3,…,knとする)によってビットシフト乗算処理を行うn−1個のsビットシフト乗算回路と、前記sビットシフト乗算回路の乗算結果に対し、第tの補正係数群(t=1,2,…,n−1とし、s=knのときt=n−1とする)を用いて演算された第tの補正処理値の加算処理を行うn−1個の第tの補正処理回路と、前記第n−1の補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2+…+knとする)によってビットシフト除算処理を行うkビットシフト除算回路とを備えることを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置をn段備え、前記第1ないし第nの行列演算装置は、該各行列演算装置のすべてに同じ値として入力される入力行列値に対し、それぞれ重み付け係数群の第1ないし第nの列の係数値で、重み付けを行うものであり、各行列演算装置で、重み付けの乗倍とビットシフト乗算のビットシフト値とビットシフト除算のビットシフト値は、上記係数値に基づいた可変の値をとるものであり、前記各行列演算装置の各出力値よりなる行列出力値を出力することを特徴とするものである。
本発明の行列演算装置は、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路による乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、前記重み付け係数群を2のk3乗倍してから整数化したk3乗倍重み付け係数群によって、前記入力に対し重み付けを行うk3乗重み付け乗算回路と、前記k3乗重み付け乗算回路による乗算結果に対し、k4ビットシフトによってビットシフト乗算処理を行うk4ビットシフト乗算回路と、前記k2ビットシフト乗算回路の乗算結果と、前記k4ビットシフト乗算回路の乗算結果のそれぞれに対し、補正係数群を用いて演算された補正処理値の加算処理を行う補正処理回路と、前記補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2=k3+k4とする)によってビットシフト除算処理を行うビットシフト除算回路とを備えることを特徴とするものである。
本発明の行列演算装置は、前記記載の行列演算装置において、前記第tの補正処理回路(t=1,2,…,n−1とする)の演算結果の精度の許容範囲に基づき、最適な補正係数群を用いることを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置において、前記補正処理回路の演算結果の精度の許容範囲に基づき、最適な補正係数群を用いることを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置において、前記第1ないし第nの行列演算装置は、重み付け係数群の係数値に基づいて決められた数のビットシフト乗算回路と補正処理回路をそれぞれ備えることを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置において、整数化された重み付け係数群の乗算係数のうち、最小の乗算係数と他の乗算係数との差が所定の値より大きく補正処理する演算結果が大きい場合、ビットシフト乗算回路の演算結果に対し、補正処理値の加算処理を行わないでビットシフト除算処理を行うことを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置において、補正処理回路の補正処理値に四捨五入処理を行わずビットシフト除算処理を行うことを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置において、行列内で大きな幅をもつ行列係数によって表される重み付け係数群を用いて演算を行い、円演算されたデータを半導体演算装置により行うことを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置において、前記重み付け係数群が、高周波成分を間引くために実現されるダウンデコードシステムに用いられる重み付け係数群であることを特徴とするものである。
本発明の行列演算装置は、前記行列演算装置において、前記重み付け係数群が、行列内で大きな幅を持つ行列式で表されていることを特徴とするものである。
本発明によれば、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路の乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、前記k2ビットシフト乗算回路の乗算結果に対し、補正係数群を用いて演算された補正処理値の加算処理を行う補正処理回路と、前記補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備えるようにしたので、補正処理値を加算することで従来必要であったもともとの重み付け係数に対する大幅な係数持ち上げを必要とせず、乗算器においても簡易なシフト演算の実現を可能とし、演算回路全体として、大幅な回路削減と、従来の演算回路規模に対する演算精度に対して大幅な精度向上を実現することができる。また、演算回路規模を小さくすることで、タイミング等の改善を容易に実現することができ、一時保持回路用遅延素子などを削減してタイミング問題における演算回路規模の増大を防ぐことが可能となる。
本発明の行列演算装置によれば、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路の乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、前記k2ビットシフト乗算回路の乗算結果に対し、補正係数群を用いて演算された補正処理値の加算処理を行う補正処理回路と、前記補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備えるようにしたので、全体の回路規模を小さくすることができ、また演算精度を高くすることができる。また、従来では乗算回路が大きくなるために必要であった演算処理速度の改善のための一時保持回路を削減することができる。
本発明の行列演算装置によれば、前記行列演算装置において、前記補正係数群が、前記入力に対して前記k1乗倍重み係数群によって重み付けを行い、前記k2ビットシフト乗算を行った結果と、前記入力に対して前記重み付け係数群を2のk乗倍した係数で重み付けを行った結果との差を補正する係数群であるようにしたので、演算結果の精度が高くなるよう補正処理を行うことができる。
本発明の行列演算装置によれば、前記行列演算装置において前記補正処理回路の演算結果の精度の許容範囲に基づき、最適な補正係数群を用いるようにしたので、最終的に必要な演算精度に合った補正係数群を用いて補正処理を行うことができる。
本発明の行列演算装置によれば、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路の演算結果に対し、第1の補正係数群を用いて演算された第1の補正処理値の加算処理を行う第1の補正処理回路と、前記第1の補正処理回路の演算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、前記k2ビットシフト乗算回路の演算結果に対し、第2の補正係数群を用いて演算された第2の補正処理値の加算処理を行う第2の補正処理回路と、前記第2の補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備えるようにしたので、ビットシフト乗算処理を行う前に第1の補正処理回路により補正処理を行い、ビットシフト乗算処理後に第2の補正処理回路により再度補正処理を行うことで、補正処理する演算結果が小さくなり、第1、第2の補正処理回路の回路規模を小さくすることができ、装置全体の回路規模を小さくすることができる。
本発明の行列演算装置によれば、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路の乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、前記k2ビットシフト乗算回路の乗算結果に対し、第1の補正係数群を用いて演算された第1の補正処理値の加算処理を行う第1の補正処理回路と、前記第1の補正処理回路の演算結果に対し、k3ビットシフトによってビットシフト乗算処理を行うk3ビットシフト乗算回路と、前記k3ビットシフト乗算回路の乗算結果に対し、第2の補正係数群を用いて演算された第2の補正処理値の加算処理を行う第2の補正処理回路と、前記第2の補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2+k3とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備えるようにしたので、例えば重み付け係数群の係数値に差があるとき、もしくは係数値が小さいときでも、第1のビットシフト乗算回路の演算結果に対し第1の補正処理を行い、第2のビットシフト乗算回路の乗算結果に対し第2の補正処理を行うよう2回に分けてビットシフト乗算、及びその演算結果の補正処理を行うため、補正処理する演算結果が小さくなり、第1、第2の補正処理回路を小さくすることができ、装置全体の回路規模を小さくすることができる。
本発明の行列演算装置によれば、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路の乗算結果に対し、sビットシフト(s=k2,k3,…,knとする)によってビットシフト乗算処理を行うn−1個のsビットシフト乗算回路と、前記sビットシフト乗算回路の乗算結果に対し、第tの補正係数群(t=1,2,…,n−1とし、s=knのときt=n−1とする)を用いて演算された第tの補正処理値の加算処理を行うn−1個の第tの補正処理回路と、前記第n−1の補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2+…+knとする)によってビットシフト除算処理を行うkビットシフト除算回路とを備えるようにしたので、重み付け乗算処理における最大演算結果を考慮した場合の演算ビット幅を小さくすることができ、ビットシフト乗算回路、及び補正処理回路の規模を小さくすることができる。
本発明の行列演算装置によれば、前記行列演算装置をn段備え、前記第1ないし第nの行列演算装置は、該各行列演算装置のすべてに同じ値として入力される入力行列値に対し、それぞれ重み付け係数群の第1ないし第nの列の係数値で、重み付けを行うものであり、各行列演算装置で、重み付けの乗倍と、ビットシフト乗算のビットシフト値と、ビットシフト除算のビットシフト値は、上記係数値に基づいた可変の値をとるものであり、前記各行列演算装置の各出力値よりなる行列出力値を出力するようにしたので、重み付け係数群の係数値に応じて、複数の行列演算装置のうち特定の行列演算装置の乗算回路等の回路規模を大きくし、他の行列演算装置の乗算回路等の回路規模を小さくすることができ、これにより、全体の回路規模を小さくすることができる。
本発明の行列演算装置によれば、i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、前記k1乗重み付け乗算回路による乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、前記重み付け係数群を2のk3乗倍してから整数化したk3乗倍重み付け係数群によって、前記入力に対し重み付けを行うk3乗重み付け乗算回路と、前記k3乗重み付け乗算回路による乗算結果に対し、k4ビットシフトによってビットシフト乗算処理を行うk4ビットシフト乗算回路と、前記k2ビットシフト乗算回路の乗算結果と、前記k4ビットシフト乗算回路の乗算結果のそれぞれに対し、補正係数群を用いて演算された補正処理値の加算処理を行う補正処理回路と、前記補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2=k3+k4とする)によってビットシフト除算処理を行うビットシフト除算回路とを備えるようにしたので、例えば重み付け係数群の値が大きいときに、重み付け乗算の数を小さくしてビットシフトの数を大きくすることにより、全体の回路規模を小さくすることができる。
本発明の行列演算装置によれば、前記行列演算装置において、前記第tの補正処理回路(t=1,2,…,n−1とする)の演算結果の精度の許容範囲に基づき、最適な補正係数群を用いるようにしたので、最終的に必要な演算精度に合った補正係数群を用いて補正処理を行うことができる。
本発明の行列演算装置によれば、前記行列演算装置において、前記補正処理回路の演算結果の精度の許容範囲に基づき、最適な補正係数群を用いるようにしたので、最終的に必要な演算精度に合った補正処理群を用いて補正処理を行うことができる。
本発明の行列演算装置によれば、前記行列演算装置において、前記第1ないし第nの行列演算装置は、重み付け係数群の係数値に基づいて決められた数のビットシフト乗算回路と、補正処理回路をそれぞれ備えるようにしたので、重み付け係数群に対する演算結果の理想値と、補正係数およびビットシフト乗算による演算結果との差が、整数値もしくはそれに近い形の値でビットシフトのみで実現できる係数となるように、適切な数のビットシフト乗算回路および補正処理回路により補正係数の乗算およびビットシフト演算を行うことができる。
本発明の行列演算装置によれば、前記行列演算装置において、整数化された重み付け係数群の乗算係数のうち、最小の乗算係数と他の乗算係数との差が所定の値より大きく補正処理する演算結果が大きい場合、ビットシフト乗算回路の演算結果に対し、補正処理値の加算処理を行わないで、ビットシフト除算処理を行うようにしたので、補正処理値の加算処理を行った場合よりも全体の演算量を少なくすることができる。
本発明の行列演算装置によれば、前記行列演算装置において、補正処理回路の補正処理値に四捨五入処理を行わずビットシフト除算処理を行うようにしたので、前記重み付け係数群の対称性を保持するために四捨五入処理を行う場合よりも、全体の演算量を少なくすることができる。
本発明の行列演算装置によれば、前記行列演算装置において、行列内で大きな幅をもつ行列係数によって表される重み付け係数群を用いて演算を行い、演算されたデータを半導体演算装置により処理するようにしたので、従来の行列演算装置を用いた場合よりも行列演算装置の演算結果が大きくないため、前記演算結果を保持する半導体演算装置の一時保持メモリの容量を削減することができる。
本発明の行列演算装置によれば、前記行列演算装置において、前記重み付け係数群が、高周波成分を間引くために実現されるダウンデコードシステムに用いられる重み付け係数群であるようにしたので、ダウンサンプリングおよびアップサンプリングなどのシステムで行列演算の係数同士に大きな差があるために、重み付け乗算処理において特定の乗算値が非常に大きくなる場合でも、従来の行列演算装置よりも乗算回路等の回路規模を小さくすることができ、全体の回路規模を削減することができる。
本発明の行列演算装置は、前記行列演算装置において、前記重み付け係数群が、大きな幅を持つ行列式で表されているようにしたので、重み付け乗算回路における重み付け係数群の行列演算の係数同士に大きな差があり、重み付け乗算処理において特定の乗算値が非常に大きくなる場合でも、従来の行列演算装置よりも乗算回路等の回路規模を小さくすることができ、全体の回路規模を削減することができる。
(実施の形態1)
図3は、本発明の実施の形態1による行列演算装置の構成のブロック図であり、図4は、本発明の実施の形態1による行列演算装置の構成図である。
図3、4において、101は入力であり、202はk201乗重み付け乗算回路であり、203は加算回路であり、204は四捨五入処理回路であり、205はnビットシフト除算回路であり、206はk202ビットシフト乗算回路であり、207は補正処理回路である。また、202bは重み付け係数群202aを2のk201乗倍し、四捨五入により整数化したk201乗倍重み付け係数群である。
図3、4において、入力101を8入力とし、重み付け係数群202a、及びk201重み付け係数群202bを8行1列の行列とする。図3に記載の係数に対して、k201=6、k202=4とし、n=k201+k202=10とし、入力101=[180 219 121 63 198 105 195 109]、重み付け係数群102a=[0.366 0.316 0.476 0.687 0.41 0.524 0.639 0.29]とした場合、k201乗倍重み付け係数群202b=[int(23.42) int(20.25) int(30.48) int(44) int(26.25) int(33.52) int(40.91) int(18.57)]=[23 20 30 44 26 34 41 19]と算出(ここでint(x)はxの小数点第一位の値を四捨五入することによって整数化する関数としている)することによって、加算回路後の演算結果=180×23+219×20+121×30+63×44+198×26+105×34+195×41+109×19=33706と演算することができる。この演算結果を4ビットシフト乗算によって16倍することで、4ビットシフト乗算=539296となる。
ここで補正処理回路207における補正処理値を検討すると、重み付け係数群202aをそのまま2の10乗倍したときの重み付け係数群=[374.69 323.97 487.66 703.93 420.03 536.37 654.62 297.1]として理想値が演算できることと、k202ビットシフト乗算回路206においてk201重み付け係数群202b=[23 20 30 44 26 34 41 19]を4ビットシフト乗算を行うことにより実現している重み付け係数群=[368 320 480 704 416 544 656 304]と算出されることにより、差分係数=[6.69 3.97 7.66 −0.07 4.03 −7.63 −1.38 −6.9]と算出できる。この差分係数を補正係数として加算するが、補正差分係数として従来の方法による演算方法よりも高精度実現を行うためには、重み付け係数群202aをそのまま2の10乗倍したときの重み付け係数群=[374.69 323.97 487.66 703.93 420.03 536.37 654.62 297.1]と、その整数化を行った係数群=[375 324 488 704 420 536 655 297]との差分係数=[−0.31 −0.03 −0.34 −0.07 0.03 0.37 −0.38 0.1]よりも差が小さくなる補正係数を加算する必要がある。
そのため、補正処理回路207において、差分係数=[6.69 3.97 7.66 −0.07 4.03 −7.63 −1.38 −6.9]について補正係数=[4+2+1/2 4 8−1/4 0 4 −8 −1 −8+1]=[6.5 4 7.75 0 4 −8 −1 −7]としてビットシフト演算のみで実現できる補正係数を加算することで補正を行う。これによって補正処理回路207における補正処理値はそれぞれ、補正処理値=[{(180<<2)+(180<<1)+(180>>1)} (219<<2) {(121<<3)−(121>>2)} 0 (198<<2) −(105<<3) −195 {−(109<<3)+109}]によって算出される。ここで、y<<nは数値yを左にnビットシフトすることを意味し、y>>nは数値yを右にnビットシフトすることを意味する。この結果を加算することで、[720+360+90 876 968−30 0 792 −840 −195 −872+109]=[1170 876 938 0 792 −840 −195 −763]の加算が行われ、539296+1170+876+938+792−840−195−763=541274と算出することができる。従来の行列演算装置での乗算結果は、180×375+219×324+121×488+63×704+198×420+105×536+195×655+109×297=541394となり、整数化せずに乗算した場合の期待値は、期待値=180×374.69+219×323.97+121×487.66+63×703.93+198×420.03+105×536.37+195×654.62+109×297.1=541267.67となる。ここで、この期待値と、従来の行列演算装置による乗算結果および本発明の行列演算装置による乗算結果を比較すると、本発明が従来に比べて同等以上の演算精度を確保することができる。また、k201重み付け乗算回路202とk202ビットシフト乗算回路206を備えることにより、最初の乗算の乗算係数を小さくして乗算回路を小さくすることができるとともに、最大演算結果を考慮した場合の行列演算装置の各回路の演算ビット幅を小さくすることができるため大幅な回路削減を実現することができる。
なお、補正処理回路における補正係数は、補正処理回路の演算結果の精度の許容範囲に基づき、最適な補正係数群が選択されるようにする。
図14は、本発明の実施の形態1による行列演算装置を有する半導体演算装置の一例を示すブロック図である。
図14において、401は可変長復号器であり、402に逆量子化器であり、403は逆DCT変換部であり、404は動き補償部であり、405は行列演算回路であり、406は一時保持メモリであり、407は加算器である。
外部からの符号化された動画像データが可変長復号器401に入力され、可変長復号器401で復号し、逆量子化器402で逆量子化を行い、逆DCT変換部403で逆DCT変換を行うことで差分画素データが得られる。
加算器407は、差分画像データと一時保持メモリ406から読み出された画像データとを加算し、再生動画像データを生成する。復号する画像が動き補償ブロックであった場合、動き補償部404において、動き補償に必要なブロックを一時保持メモリ406から読み出して画像復元を行う。復元された画像は、行列演算回路405で行列演算を行いデータ変換され、変換されたデータが一時保持メモリ406に入力される。また、一時保持メモリ406のデータが行列演算回路405に入力され、行列演算回路405でデータ変換され、変換されたデータが動き補償部404に入力され、動き補償処理が行われる。
なお、図5、6に示すように、図3で示した行列演算装置の加算回路203とk202ビットシフト乗算回路206の間に第1の補正処理回路210を備え、k202ビットシフト乗算回路206の後に、第2の補正処理回路220を備えるようにしてもよい。補正処理回路において、理想値とビットシフト演算により得られる重み付け係数群との差分が大きいときは、k202ビットシフト乗算回路206によるビットシフト演算を行う前に、第1の補正処理回路210により一度補正し、その値をビットシフト乗算して再度第2の補正処理回路220で補正するようにしたことにより、第2の補正処理回路220において、理想値とビットシフト演算により得られる重み付け係数群との差分が小さくなり、補正処理回路の規模を小さくすることができる。
また、図7、8に示すように、図3で示した行列演算装置の加算回路203と四捨五入回路204の間に、k202ビットシフト乗算回路206、第1の補正処理回路210、k203ビットシフト乗算回路230、第2の補正処理回路220を備えるようにしてもよい。ビットシフト乗算回路を2個備えるようにしたことにより、最大演算結果を考慮した場合の補正処理回路の演算ビット幅を小さくすることができるため、補正処理回路の規模を小さくすることができる。
また、ビットシフト演算回路と補正処理回路をそれぞれ2個以上、例えば、前記重み付け係数群に実施される2のk乗倍を、2のk1乗倍、2のk2乗倍、2のkn乗倍とn(nは2以上の整数であり、n=k1+k2+…+knとする)段階の乗算倍に分割し、sビットシフト乗算回路(s=k2,k3,…,knとする)、及び第tの補正処理回路(t=1,2,…,n−1とする)をそれぞれn−1個備えるようにしてもよい。例えば、図9、10に示すように、加算回路203と四捨五入処理回路204の間に、k202ビットシフト乗算回路206、第1の補正処理回路210、k203ビットシフト乗算回路230、第2の補正処理回路220、knビットシフト乗算回路240、及び第n−1の補正処理回路250を備えるような構成をとることができる。これにより、最大演算結果を考慮した場合の行列演算装置の演算ビット幅を小さくすることができるため、ビットシフト乗算回路、及び補正処理回路の規模を小さくすることができる。
また、本実施の形態1では、入力が8入力とし、重み付け係数群を8行1列の行列とした場合について説明したが、例えば、図11に示すように、入力が4入力とし、重み付け係数群を4行4列の行列とした場合に、行列演算装置600は、例えば図3で示したような重み付け乗算回路、加算回路、ビットシフト乗算回路、補正処理回路、四捨五入処理回路、及びビットシフト除算回路を有する行列演算装置を4段備え、前記第1ないし第4の行列演算装置は、該各行列演算装置のすべてに同じ値として入力される入力行列値に対し、それぞれ重み付け係数群の第1ないし第4の列の係数値で、重み付けを行い、各行列演算装置で、重み付けの乗倍とビットシフト乗算のビットシフト値とビットシフト除算のビットシフト値は、上記係数値に基づいた可変の値をとるようにし、前記各行列演算装置の各出力値よりなる行列出力値を出力するようにしてもよい。ここで、行列演算装置600が備える4段の行列演算装置のうち、第1段目の行列演算素子において、重み付け係数群の1列目の係数値を2のk11倍乗してから整数化した重み付け係数群によって、1段目の行列演算素子の入力に対し重み付けを行い、重み付け乗算処理の乗算結果に対し、k12ビットシフトによってビットシフト乗算処理を行い、ビットシフト乗算処理の乗算結果に対し、補正係数群を用いて演算された補正処理値の加算処理を行い、補正処理値の加算処理の演算結果に対し、四捨五入処理を行い、四捨五入処理の演算結果に対し、k1ビットシフト(k1=k11+k12とする)によってビットシフト除算処理を行う。また、第2、3、4段目の各行列演算装置においても、それぞれ重み付け係数群の2、3、4列目の係数値を2のk21、k31、k41倍乗してから整数化した重み付け係数群によって、第2、3、4段目の行列演算装置の入力に対し重み付けを行い、重み付け乗算処理の乗算結果に対し、k22、k32、k42ビットシフトによってビットシフト乗算処理を行い、ビットシフト乗算処理の乗算結果に対し、補正係数群を用いて演算された補正処理値の加算処理を行い、補正処理値の加算処理の演算結果に対し、四捨五入処理を行い、四捨五入処理の演算結果に対し、k2、k3、k4ビットシフト(k2=k21+k22、k3=k31+k32、k4=k41+k42とする)によってビットシフト除算処理を行う。このような構成をとることにより、4段の行列演算装置のうち、特定の行列演算装置だけ回路規模を大きくし他の行列演算装置は回路規模を小さくすることができ、これにより、全体の回路規模を小さくすることができる。
なお、上記複数の行列演算装置は4段に限らず、n段備えるようにしてもよく、また、複数の行列演算装置において、それぞれ異なる数のビットシフト乗算回路、及び補正処理回路を備えるようにしてもよい。このとき、複数の行列演算装置において、重み付け係数群の値に基づいて決められた数のビットシフト乗算回路と補正処理回路を備えるようにすることにより、重み付け係数群に対する演算結果の理想値と、補正係数およびビットシフト乗算による演算結果との差が整数値もしくはそれに近い形の値(2倍、1倍、1/2倍などビットシフトのみで実現できる係数)となるように、重み付け係数群の値に基づき補正処理回路とビットシフト乗算回路の数を調整して補正係数の乗算およびビットシフト演算を行うことができる。
また、整数化された重み付け係数群の中で、最小乗算係数と他の乗算係数との差が所定の値より大きく補正処理する演算結果が大きい場合は、ビットシフト乗算回路の演算結果に対し、補正処理値の加算処理を行わないでビットシフト除算処理を行うようにするようにしてもよい。
また、前記重み付け係数群202aが対称性構造でない場合、補正処理回路の補正処理値に四捨五入処理を行わないようにしてもよい。
また、重み付け係数群として、例えば、高周波成分を間引くために実現されるダウンサンプリングおよびアップサンプリングなどのダウンデコードシステムに用いられる重み付け係数群を用いることができる。また、重み付け係数群は行列内で大きな幅を持つ行列式で表されている。
このように本実施の形態1によれば、8入力に対して、重み付け係数群202aによって重み付け演算を行う行列演算装置において、前記重み付け係数群202aを2のk201乗倍してから整数化したk201乗倍重み付け係数群202bによって、入力に対し重み付けを行うk201乗重み付け乗算回路202と、前記k201乗重み付け乗算回路202の乗算結果に対し、k202ビットシフトによってビットシフト乗算処理を行うk202ビットシフト乗算回路206と、前記k202ビットシフト乗算回路206の乗算結果に対し、補正係数群を用いて演算された補正処理値の加算処理を行う補正処理回路207と、前記補正処理回路207の演算結果に対し、四捨五入処理を行う四捨五入処理回路204と、前記四捨五入処理回路204の演算結果に対し、nビットシフト(n=k201+k202とする)によってビットシフト除算処理を行うnビットシフト除算回路205とで構成されるようにしたので、乗算回路等の回路規模を小さくすることができるため、全体の回路規模を小さくすることができ、また演算結果に対し補正処理を行うことにより演算精度を高くすることができるという効果がある。
(実施の形態2)
図12は、本発明の実施の形態2による行列演算装置の構成のブロック図であり、図13は、本発明の実施の形態2による行列演算装置の構成図である。
図12、13において、303はk303乗重み付け乗算回路であり、304はk304乗重み付け乗算回路であり、305,306は第1、第2の加算回路であり、307はk307ビットシフト乗算回路(ここでk303+k307=k304+k308が成り立つ)であり、308はk308ビットシフト乗算回路(ここでk303+k307=k304+k308が成り立つ)であり、309はk307ビットシフト乗算回路307の演算結果とk308ビットシフト乗算回路308の演算結果に補正処理値を加算する補正処理回路であり、310はnビットシフト除算回路(n=k303+k307=k304+k308とする)であり、311は四捨五入処理回路である。
また、302bは、重み付け係数群102aの上位側(C00〜C30)を2k303倍して整数化し、下位側(C40〜C70)を2k304倍して整数化した重み付け係数群であり、305aは第1の加算回路305の演算結果であり、306aは第2の加算回路306の演算結果であり、307aはk307ビットシフト乗算回路の演算結果であり、308aはk308ビットシフト乗算回路の演算結果であり、309aは補正処理回路309の演算結果であり、310aはnビットシフト除算回路310の演算結果である。
本発明の実施の形態2では、複数の入力が演算途中まで独立しており、それぞれの重み付け係数群に個々の係数を乗算することで、重み付け係数群を実現する場合の例を示している。なお、本実施の形態2では、重み付け係数群が8×1行列の場合について説明しているが、m×n行列の重み付け係数群を用いて重み付け乗算処理を行うようにしてもよい。
8入力に対して8個の重み付け係数群があり、それぞれの演算は入力0から3までの入力に対する演算結果と入力4から7までの入力に対する演算結果とに途中まで分離できるような場合において、入力101=[180 219 121 63 198 105 195 109]、重み付け係数群302a=[0.366 0.316 0.476 0.687 0.41 0.524 0.639 0.29]とした場合、入力0から3までをk303乗重み付け乗算回路303においてk303乗倍してk307ビットシフト乗算回路307においてk307ビットシフト乗算し、入力4から7までをk304乗重み付け乗算回路304においてk304乗倍し、k308ビットシフト乗算回路308においてk308ビットシフト乗算する。
ここで、k303=5、k304=6、k307=5、k308=4とした場合、k303乗重み付け乗算回路303において入力0から3までの入力に乗算される係数は2の5乗倍し、k304乗重み付け乗算回路304において入力4から7までの入力に乗算される係数は2の6乗倍した重み付け係数群302bは、[11.71 10.12 15.24 22 26.25 33.52 40.91 18.58]を整数化することで、重み付け係数群302b=[12 10 15 22 26 34 41 19]と算出できる。この重み付け係数群302bの係数を用いて入力0から3までの演算結果303を第1の加算回路305で加算した演算結果305a=180×12+219×10+121×15+63×22=7551となり、入力4から7までの演算結果304を第2の加算回路306で加算した演算結果306a=198×26+105×34+195×41+109×19=18784となる。
次に入力0から3までの演算結果305aを5ビットシフト乗算によって32倍にし、入力4から7までの演算結果306aを4ビットシフト乗算によって16倍する。k307ビットシフト乗算回路307の演算結果307a=7551×32=241632と算出され、k308ビットシフト乗算回路308の演算結果308a=18784×16=300544と算出できるので、ビットシフト乗算=241632+300544=542176となる。
次に補正処理を行うための補正処理値を算出する際、補正係数は、実数演算した場合の結果との差を演算誤差および回路規模を考慮することによって決定する。ここで、重み付け係数群202aをそのまま2の10乗倍したときの重み付け係数群=[374.69 323.97 487.66 703.93 420.03 536.37 654.62 297.1]として理想値が演算できることと、重み付け係数群302b=[12 10 15 22 26 34 41 19]に対し、入力0から3までを5ビットシフト演算し、入力4から8までを4ビットシフト演算を行うことにより実現している重み付け係数群=[384 320 480 704 416 544 656 304]と算出されることにより、差分係数である実数演算結果との差=[−9.31 3.97 7.66 −0.07 4.03 −7.63 −1.38 −6.9]と算出できる。実数演算結果との差=[−9.31 3.97 7.66 −0.07 4.03 −7.63 −1.38 −6.9]と計算することができることより、上記実施の形態1で説明した場合と同様の計算方法で、補正係数として[−9 4 8 0 4 −8 −1 −7]の補正を行う。この補正係数を用いて計算された補正値は、補正値=180×(−9)+219×4+121×8+63×0+198×4+105×(−8)+195×(−1)+109×(−7)=−782となる。この補正値をk307ビットシフト乗算回路307の演算結果307aおよびk308ビットシフト乗算回路308の演算結果308aに加算することで、補正処理回路309の演算結果309a=542176+(−782)=541394となる。
ここで、従来の行列演算装置での乗算結果は、180×375+219×324+121×488+63×704+198×420+105×536+195×655+109×297=541394であり、本発明の実施の形態2による行列演算装置は、従来と同じ精度の結果を得ることができる。また、補正値の精度を向上させることでさらに精度良い結果を得ることができる。
なお、補正処理回路における補正係数は、補正処理回路の演算結果の精度の許容範囲に基づき、最適な補正係数群が選択されるようにする。
また、整数化された重み付け係数群の中で、最小乗算係数と他の乗算係数との差が所定の値より大きく補正処理する演算結果が大きい場合は、ビットシフト乗算回路の演算結果に対し、補正処理値の加算処理を行わないでビットシフト除算処理を行うようにするようにしてもよい。
また、前記重み付け係数群302aが対称性構造でない場合、補正処理回路の補正処理値に四捨五入処理を行わないようにしてもよい。
このように本実施の形態2によれば、8入力に対して、重み付け係数群302aによって重み付け演算を行う行列演算装置において、前記重み付け係数群302aを2のk303乗倍してから整数化したk303乗倍重み付け係数群によって、前記入力に対し重み付けを行うk303乗重み付け乗算回路303と、前記k303乗重み付け乗算回路による乗算結果に対し、k307ビットシフトによってビットシフト乗算処理を行うk307ビットシフト乗算回路307と、前記重み付け係数群302aを2のk304乗倍してから整数化したk304乗倍重み付け係数群によって、前記入力に対し重み付けを行うk304乗重み付け乗算回路304と、前記k304乗重み付け乗算回路による乗算結果に対し、k308ビットシフトによってビットシフト乗算処理を行うk308ビットシフト乗算回路308と、前記k307ビットシフト乗算回路307の乗算結果と前記k308ビットシフト乗算回路308の乗算結果のそれぞれに対し、補正係数群を用いて演算された補正処理値の加算処理を行う補正処理回路309と、前記補正処理回路309の演算結果に対し、四捨五入処理を行う四捨五入処理回路311と、前記四捨五入処理回路311の演算結果に対し、nビットシフト(n=k303+k307=k304+k308とする)によってビットシフト除算処理を行うnビットシフト除算回路310とで構成されるようにしたので、重み付け乗算に最大演算結果を考慮した場合の演算ビット幅を小さくして、ビットシフトの数を大きくした方が回路規模を小さくすることができるという効果がある。
本発明の行列演算装置は、補正係数を加算することで従来必要であったもともとの重み付け係数に対する大幅な係数持ち上げを必要とせず、乗算器においても簡易なシフト演算の実現を可能とし、演算回路全体として、大幅な回路削減と、従来の演算回路規模に対する演算精度に対して大幅な精度向上を実現することができ、映像信号処理等の画像変換に用いられる演算装置等として有用である。
図1は、従来の行列演算装置の構成のブロック図である。 図2は、従来の行列演算装置の詳細構成を示す構成図である。 図3は、本発明の実施の形態1による行列演算装置の一例を示す構成のブロック図である。 図4は、本発明の実施の形態1による行列演算装置の一例の詳細構成を示す構成図である。 図5は、本発明の実施の形態1による行列演算装置の他の例を示す構成のブロック図である。 図6は、本発明の実施の形態1による行列演算装置の他の例の詳細構成を示す構成図である。 図7は、本発明の実施の形態1による行列演算装置の他の例を示す構成のブロック図である。 図8は、本発明の実施の形態1による行列演算装置の他の例の詳細構成を示す構成図である。 図9は、本発明の実施の形態1による行列演算装置の他の例を示す構成のブロック図である。 図10は、本発明の実施の形態1による行列演算装置の他の例の詳細構成を示す構成図である。 図11は、本発明の実施の形態1による行列演算装置の他の例の詳細構成を示す構成図である。 図12は、本発明の実施の形態2による行列演算装置の一例を示す構成のブロック図である。 図13は、本発明の実施の形態2による行列演算装置の一例の詳細構成を示す構成図である。 図14は、本発明の実施の形態1による行列演算装置を有する半導体演算装置の一例を示すブロック図である。
符号の説明
101 入力
102 重み付け乗算回路
102a 重み付け乗算回路102の重み付け係数群
102b ハードウェア化する際に102aの重み付け係数群を2n倍して整数化した重み付け係数群
103 加算回路
104 四捨五入処理回路
105 nビットシフト除算回路
202 k201乗重み付け乗算回路
202a 入力101に重み付けされる重み付け係数群
202b 202aを2k201倍し、整数化した重み付け係数群
203 加算回路
204 四捨五入処理回路
205 nビットシフト除算回路
206 k202ビットシフト乗算回路
207 補正処理回路
210 第1の補正処理回路
220 第2の補正処理回路
230 k203ビットシフト乗算回路
240 knビットシフト乗算回路
250 第n−1の補正処理回路
302b 102aの上位側(C00〜C30)を2k303倍して整数化し、下位側(C40〜C70)を2k304倍して整数化した重み付け係数群
303 k303乗重み付け乗算回路
304 k304乗重み付け乗算回路
305 第1の加算回路
305a 第1の加算回路305の演算結果
306 第2の加算回路
306a 第2の加算回路306の演算結果
307 k307ビットシフト乗算回路。ここでk303+k307=k304+k308が成り立つ
307a k307ビットシフト乗算回路307の演算結果
308 k308ビットシフト乗算回路。ここでk303+k307=k304+k308が成り立つ
308a k308ビットシフト乗算回路308の演算結果
309 k307ビットシフト乗算回路の演算結果とk308ビットシフト乗算回路の演算結果に補正処理値を加算する補正処理回路
309a 補正処理回路309の演算結果
310 nビットシフト除算回路。ここで、n=k303+k307=k304+k308が成り立つ
310a nビットシフト除算回路310の演算結果
311 四捨五入処理回路
401 可変長復号器
402 逆量子化器
403 逆DCT変換部
404 動き補償部
405 行列演算回路
406 一時保持メモリ
407 加算器
600 行列演算装置

Claims (11)

  1. i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、
    前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、
    前記k1乗重み付け乗算回路の乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、
    前記k2ビットシフト乗算回路の乗算結果に対し、補正係数群を用いて演算された補正処理値の加算処理を行う補正処理回路と、
    前記補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、
    前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備える、
    ことを特徴とする行列演算装置。
  2. 請求項1記載の行列演算装置において、
    前記補正係数群が、
    前記入力に対して前記k1乗倍重み係数群によって重み付けを行い、前記k2ビットシフト乗算を行った結果と、前記入力に対して前記重み付け係数群を2のk乗倍した係数で重み付けを行った結果との差を補正する係数群である、
    ことを特徴とする行列演算装置。
  3. i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、
    前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、
    前記k1乗重み付け乗算回路の演算結果に対し、第1の補正係数群を用いて演算された第1の補正処理値の加算処理を行う第1の補正処理回路と、
    前記第1の補正処理回路の演算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、
    前記k2ビットシフト乗算回路の演算結果に対し、第2の補正係数群を用いて演算された第2の補正処理値の加算処理を行う第2の補正処理回路と、
    前記第2の補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、
    前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備える、
    ことを特徴とする行列演算装置。
  4. i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、
    前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって入力に対し重み付けを行うk1乗重み付け乗算回路と、
    前記k1乗重み付け乗算回路の乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、
    前記k2ビットシフト乗算回路の乗算結果に対し、第1の補正係数群を用いて演算された第1の補正処理値の加算処理を行う第1の補正処理回路と、
    前記第1の補正処理回路の演算結果に対し、k3ビットシフトによってビットシフト乗算処理を行うk3ビットシフト乗算回路と、
    前記k3ビットシフト乗算回路の乗算結果に対し、第2の補正係数群を用いて演算された第2の補正処理値の加算処理を行う第2の補正処理回路と、
    前記第2の補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、
    前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2+k3とする)によってビットシフト除算処理を行うkビットシフト除算回路とを備える、
    ことを特徴とする行列演算装置。
  5. i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、
    前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、
    前記k1乗重み付け乗算回路の乗算結果に対し、sビットシフト(s=k2,k3,…,knとする)によってビットシフト乗算処理を行うn−1個のsビットシフト乗算回路と、
    前記sビットシフト乗算回路の乗算結果に対し、第tの補正係数群(t=1,2,…,n−1とし、s=knのときt=n−1とする)を用いて演算された第tの補正処理値の加算処理を行うn−1個の第tの補正処理回路と、
    前記第n−1の補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、
    前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2+…+knとする)によってビットシフト除算処理を行うkビットシフト除算回路とを備える、
    ことを特徴とする行列演算装置。
  6. 請求項1、3、4、5のいずれかに記載の行列演算装置をn段備え、
    前記第1ないし第nの行列演算装置は、該各行列演算装置のすべてに同じ値として入力される入力行列値に対し、それぞれ重み付け係数群の第1ないし第nの列の係数値で、重み付けを行うものであり、
    各行列演算装置で、重み付け係数群に実施される重み付けの2のk1乗倍とビットシフト乗算のビットシフト値とビットシフト除算のビットシフト値は、上記係数値に基づいた可変の値をとるものであり、
    前記各行列演算装置の各出力値よりなる行列出力値を出力する、
    ことを特徴とする行列演算装置。
  7. i個(iは1以上の整数)の入力に対して、m個(mは1以上の整数)以上の重み付け係数群によって重み付け演算を行う行列演算装置において、
    前記重み付け係数群を2のk1乗倍してから整数化したk1乗倍重み付け係数群によって、入力に対し重み付けを行うk1乗重み付け乗算回路と、
    前記k1乗重み付け乗算回路による乗算結果に対し、k2ビットシフトによってビットシフト乗算処理を行うk2ビットシフト乗算回路と、
    前記重み付け係数群を2のk3乗倍してから整数化したk3乗倍重み付け係数群によって、前記入力に対し重み付けを行うk3乗重み付け乗算回路と、
    前記k3乗重み付け乗算回路による乗算結果に対し、k4ビットシフトによってビットシフト乗算処理を行うk4ビットシフト乗算回路と、
    前記k2ビットシフト乗算回路の乗算結果と、前記k4ビットシフト乗算回路の乗算結果のそれぞれに対し、補正係数群を用いて演算された補正処理値の加算処理を行う補正処理回路と、
    前記補正処理回路の演算結果に対し、四捨五入処理を行う四捨五入処理回路と、
    前記四捨五入処理回路の演算結果に対し、kビットシフト(k=k1+k2=k3+k4とする)によってビットシフト除算処理を行うビットシフト除算回路とを備える、
    ことを特徴とする行列演算装置。
  8. 請求項6記載の行列演算装置において、
    前記第1ないし第nの行列演算装置は、重み付け係数群の係数値に基づいて決められた数の、k12ないしknビットシフトによりビットシフト乗算処理を行うビットシフト乗算回路と補正処理回路をそれぞれ備える、
    ことを特徴とする行列演算装置。
  9. 請求項1、3、4、5、7のいずれかに記載の行列演算装置において、
    整数化された重み付け係数群の乗算係数のうち、最小の乗算係数と他の乗算係数との差が所定の値より大きい場合、ビットシフト乗算回路の演算結果に対し、補正処理値の加算処理を行わないでビットシフト除算処理を行う、
    ことを特徴とする行列演算装置。
  10. 請求項1、3、4、5、7のいずれかに記載の行列演算装置において、
    補正処理回路の補正処理値に四捨五入処理を行わずビットシフト除算処理を行う、
    ことを特徴とする行列演算装置。
  11. 請求項1記載の行列演算装置において、
    前記重み付け係数群が、高周波成分を間引くために実現されるダウンデコードシステムに用いられる重み付け係数群である、
    ことを特徴とする行列演算装置。
JP2007517757A 2005-05-25 2006-05-01 行列演算装置 Expired - Fee Related JP4738408B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007517757A JP4738408B2 (ja) 2005-05-25 2006-05-01 行列演算装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005153139 2005-05-25
JP2005153139 2005-05-25
JP2007517757A JP4738408B2 (ja) 2005-05-25 2006-05-01 行列演算装置
PCT/JP2006/309111 WO2006126377A1 (ja) 2005-05-25 2006-05-01 行列演算装置

Publications (2)

Publication Number Publication Date
JPWO2006126377A1 JPWO2006126377A1 (ja) 2008-12-25
JP4738408B2 true JP4738408B2 (ja) 2011-08-03

Family

ID=37451805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007517757A Expired - Fee Related JP4738408B2 (ja) 2005-05-25 2006-05-01 行列演算装置

Country Status (4)

Country Link
US (1) US20090030964A1 (ja)
JP (1) JP4738408B2 (ja)
CN (1) CN101180622A (ja)
WO (1) WO2006126377A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160098431A1 (en) * 2014-10-06 2016-04-07 Seagate Technology Llc Performing mathematical operations on changed versions of data objects via a storage compute device
US11494625B2 (en) * 2018-10-03 2022-11-08 Maxim Integrated Products, Inc. Systems and methods for energy-efficient analog matrix multiplication for machine learning processes

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01205329A (ja) * 1988-02-12 1989-08-17 Nippon Hoso Kyokai <Nhk> 乗算器
JPH01320572A (ja) * 1988-06-22 1989-12-26 Fujitsu Ltd 直交逆変換装置
JPH0630428A (ja) * 1992-07-08 1994-02-04 Matsushita Electric Ind Co Ltd 演算装置
JPH0723381A (ja) * 1993-06-23 1995-01-24 Nec Corp 画像の復号化方法及びその復号化装置
JPH1088387A (ja) * 1996-09-18 1998-04-07 Yamaha Motor Co Ltd めっき装置
JP2001298741A (ja) * 2000-04-17 2001-10-26 Matsushita Electric Ind Co Ltd 画像圧縮方法、画像伸張方法、画像圧縮装置、画像伸張装置および画像圧縮伸張装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021987A (en) * 1989-08-31 1991-06-04 General Electric Company Chain-serial matrix multipliers
JP2945487B2 (ja) * 1990-12-26 1999-09-06 株式会社日立製作所 行列乗算器
US5311459A (en) * 1992-09-17 1994-05-10 Eastman Kodak Company Selectively configurable integrated circuit device for performing multiple digital signal processing functions
US7415061B2 (en) * 1999-08-31 2008-08-19 Broadcom Corporation Cancellation of burst noise in a communication system with application to S-CDMA
US7158558B2 (en) * 2001-04-26 2007-01-02 Interuniversitair Microelektronica Centrum (Imec) Wideband multiple access telecommunication method and apparatus
IL145245A0 (en) * 2001-09-03 2002-06-30 Jtc 2000 Dev Delaware Inc System and method including vector-matrix multiplication

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01205329A (ja) * 1988-02-12 1989-08-17 Nippon Hoso Kyokai <Nhk> 乗算器
JPH01320572A (ja) * 1988-06-22 1989-12-26 Fujitsu Ltd 直交逆変換装置
JPH0630428A (ja) * 1992-07-08 1994-02-04 Matsushita Electric Ind Co Ltd 演算装置
JPH0723381A (ja) * 1993-06-23 1995-01-24 Nec Corp 画像の復号化方法及びその復号化装置
JPH1088387A (ja) * 1996-09-18 1998-04-07 Yamaha Motor Co Ltd めっき装置
JP2001298741A (ja) * 2000-04-17 2001-10-26 Matsushita Electric Ind Co Ltd 画像圧縮方法、画像伸張方法、画像圧縮装置、画像伸張装置および画像圧縮伸張装置

Also Published As

Publication number Publication date
CN101180622A (zh) 2008-05-14
WO2006126377A1 (ja) 2006-11-30
JPWO2006126377A1 (ja) 2008-12-25
US20090030964A1 (en) 2009-01-29

Similar Documents

Publication Publication Date Title
US7127482B2 (en) Performance optimized approach for efficient downsampling operations
JP4560033B2 (ja) ビデオまたはイメージのデータを復号化するための方法
JPH03165192A (ja) 2元独立変換の演算のためのシステムおよび回路
JPH08235159A (ja) 逆コサイン変換装置
US8335811B2 (en) Method and system for high fidelity IDCT and DCT algorithms
US6317767B2 (en) Methods and systems for performing short integer chen IDCT algorithm with fused multiply/add
US7263544B2 (en) Performance optimized approach for efficient numerical computations
JP4738408B2 (ja) 行列演算装置
US8924452B2 (en) Fixed-coefficient variable prime length recursive discrete Fourier transform system
JPWO2006022089A1 (ja) 乗算装置
US9337869B2 (en) Encoding and syndrome computing co-design circuit for BCH code and method for deciding the same
JPH09325955A (ja) 二乗和の平方根演算回路
Hung et al. Compact inverse discrete cosine transform circuit for MPEG video decoding
JP3485075B2 (ja) 復号回路及びその復号方法
US20140006839A1 (en) Apparatus and method using first and second clocks
WO2016181978A1 (ja) 行列作用装置、行列作用方法、およびプログラム
US20050004962A1 (en) Scalable system for inverse discrete cosine transform and method thereof
US20110137969A1 (en) Apparatus and circuits for shared flow graph based discrete cosine transform
US11804849B2 (en) Infinite impulse response filters with dithering and methods of operation thereof
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法
US20230133360A1 (en) Compute-In-Memory-Based Floating-Point Processor
JP2009065515A (ja) デジタルフィルタ
JP2000132539A (ja) 演算装置
Premkumar et al. Combinatorial logic based forward converters in residue number systems
JP2010165179A (ja) 半導体装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110318

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110426

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees