JP4405452B2 - 逆変換回路 - Google Patents

逆変換回路 Download PDF

Info

Publication number
JP4405452B2
JP4405452B2 JP2005267350A JP2005267350A JP4405452B2 JP 4405452 B2 JP4405452 B2 JP 4405452B2 JP 2005267350 A JP2005267350 A JP 2005267350A JP 2005267350 A JP2005267350 A JP 2005267350A JP 4405452 B2 JP4405452 B2 JP 4405452B2
Authority
JP
Japan
Prior art keywords
product
unit
processing
sum operation
data
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
Application number
JP2005267350A
Other languages
English (en)
Other versions
JP2007079972A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2005267350A priority Critical patent/JP4405452B2/ja
Publication of JP2007079972A publication Critical patent/JP2007079972A/ja
Application granted granted Critical
Publication of JP4405452B2 publication Critical patent/JP4405452B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

この発明は、例えば、離散コサイン変換(DCT)などの直交変換を用いた画像符号化方式の復号装置において、直交変換符号化された画像データを直交逆変換して復元する逆変換回路に関するものである。
例えば、下記の非特許文献1に開示されている従来の一次元逆変換回路は、動画像符号化の国際標準であるMPEG−2で採用されている逆DCTアルゴリズムを実装している。
下記の式(1)は、非特許文献1に開示されている逆DCTアルゴリズムを示している。
Figure 0004405452
式(1)において、d0〜d7は、入力データであり、Ca,Cbは変換行列である。
従来の一次元逆変換回路では、式(1)の演算結果f0〜f3に対して、例えば、四捨五入のような、全ての行要素に対して均一の丸め方法が採用されている。
S.Uramoto et al.,"A 100−MHz 2−D Discrete Cosigne Transform Core Processor,"IEEE Journal of Solid−State Circuits, vol. 27, No.4, April 1992.
従来の逆変換回路は以上のように構成されているので、逆変換結果に対して丸め処理を実施する場合、その逆変換結果の全ての行要素に対して均一の丸め方法が採用されている。このため、一つの逆変換回路で複数の逆変換アルゴリズムを実行することができないなどの課題があった。
この発明は上記のような課題を解決するためになされたもので、多様な仕様の逆変換アルゴリズムを実行することができる逆変換回路を得ることを目的とする。
この発明に係る逆変換回路は、入力データである列データを順次入力して、各列データに対する1ビット符号拡張付の右シフト処理を実施するとともに、その右シフト処理を実施する前の列データと、その右シフト処理を実施した後の列データとを加算する加算処理を実施し、その右シフト処理を実施する前の列データ、その右シフト処理を実施した後の列データ、または、その加算処理後の列データのいずれかを選択して出力する入力前処理手段と、予め第1及び第2の変換行列を格納し、第1及び第2の変換行列の各行データを出力するテーブル手段と、上記入力前処理手段から出力された列データと上記テーブル手段から出力された第1の変換行列の行データとの積和演算を実施する第1の積和演算手段と、上記入力前処理手段から出力された列データと上記テーブル手段から出力された第2の変換行列の行データとの積和演算を実施する第2の積和演算手段と、上記第1の積和演算手段の演算結果と上記第2の積和演算手段の演算結果との加算処理又は減算処理を実施する後処理手段と、上記後処理手段における加算結果又は減算結果の行要素毎に、別々の丸め処理を実施する丸め処理手段と、上記丸め処理手段による丸め処理後の加算結果又は減算結果を所定のクリッピング範囲内に収めるクリップ処理を実施するクリッピング手段とを備えたものである。
以上のように、この発明によれば、多様な仕様の逆変換アルゴリズムを実行することができる効果がある。
実施の形態1.
図1はこの発明の実施の形態1による一次元の逆変換回路を示す構成図であり、図において、入力前処理部1は入力データである列データd0〜d3を順次入力して、その列データd0〜d3を列単位に格納し、その列データd0〜d3を積和演算部3〜6に出力する。なお、入力前処理部1は入力前処理手段を構成している。
係数テーブル2は予め変換行列Cを格納し、その変換行列Cの行データc0〜c3を積和演算部3〜6に出力する(変換行列Cの行データc0〜c3はベクトルであり、下記の式(2)を参照)。なお、係数テーブル2はテーブル手段を構成している。
積和演算部3は入力前処理部1から出力された列データd0〜d3と係数テーブル2から出力された行データc0との積和演算を実施する。
積和演算部4は入力前処理部1から出力された列データd0〜d3と係数テーブル2から出力された行データc1との積和演算を実施する。
積和演算部5は入力前処理部1から出力された列データd0〜d3と係数テーブル2から出力された行データc2との積和演算を実施する。
積和演算部6は入力前処理部1から出力された列データd0〜d3と係数テーブル2から出力された行データc3との積和演算を実施する。
なお、積和演算部3〜6は積和演算手段を構成している。
可変丸め部7は積和演算部3〜6が積和演算を実施すると、その演算結果の行要素毎に、別々の丸め処理を実施する。なお、可変丸め部7は丸め処理手段を構成している。
クリッピング処理部8は可変丸め部7による丸め処理後の演算結果f0〜f3を所定のクリッピング範囲内に収めるクリップ処理を実施する。なお、クリッピング処理部8はクリッピング手段を構成している。
出力処理部9はクリッピング処理部8によるクリップ処理後の演算結果f0〜f3を格納し、その演算結果f0〜f3を外部出力する。
次に動作について説明する。
この実施の形態1による一次元逆変換回路にて実現可能な、4点逆変換アルゴリズムの一例を下記の式(2)に示す。
Figure 0004405452
式(2)において、 0 〜d は、一次元逆変換回路の入力データである列データ、eは行要素毎に別々の丸め処理を実現するための定数項である。
式(2)の例では、第1行目はマイナス方向に丸め処理を実施し、その他の行はプラス方向に丸め処理を実施する。
なお、記号“>>”は、符号拡張付の右シフト処理を表している。
入力前処理部1は、入力データである列データd0〜d3を順次入力すると、その列データd0〜d3を列単位に格納する。
そして、入力前処理部1は、列データd0〜d3をそれぞれ積和演算部3〜6に出力する。
係数テーブル2は、予め変換行列Cを格納し、その変換行列Cの第1行である行データc0={2,2,2,1}を積和演算部3に出力し、その変換行列Cの第2行である行データc1={2,1,−2,−2}を積和演算部4に出力する。
また、その変換行列Cの第3行である行データc2={2,−1,−2,2}を積和演算部5に出力し、その変換行列Cの第4行である行データc3={2,−2,2,−1}を積和演算部6に出力する。
積和演算部3は、入力前処理部1から列データd0〜d3を受け、係数テーブル2から行データc0を受けると、下記の式(3)に示すように、その列データd0〜d3と行データc0との積和演算を実施し、その演算結果S0を可変丸め部7に出力する。
Figure 0004405452
積和演算部4は、入力前処理部1から列データd0〜d3を受け、係数テーブル2から行データc1を受けると、積和演算部3と同様に、その列データd0〜d3と行データc1との積和演算を実施し、その演算結果S1を可変丸め部7に出力する。
また、積和演算部5は、入力前処理部1から列データd0〜d3を受け、係数テーブル2から行データc2を受けると、積和演算部3と同様に、その列データd0〜d3と行データc2との積和演算を実施し、その演算結果S2を可変丸め部7に出力する。
積和演算部6は、入力前処理部1から列データd0〜d3を受け、係数テーブル2から行データc3を受けると、積和演算部3と同様に、その列データd0〜d3と行データc3との積和演算を実施し、その演算結果S3を可変丸め部7に出力する。
可変丸め部7は、積和演算部3〜6から積和演算の演算結果S0,S1,S2,S3を受けると、積和演算部3の演算結果S0に対する1ビットの右シフト処理(丸め処理)を実施し、丸め処理後の演算結果f0をクリッピング処理部8に出力する。
一方、積和演算部4〜6の演算結果S1,S2,S3については、各演算結果S1,S2,S3に“1”をそれぞれ加算してから、1ビットの右シフト処理(丸め処理)を実施し、丸め処理後の演算結果f1〜f3をクリッピング処理部8に出力する。
クリッピング処理部8は、可変丸め部7から丸め処理後の演算結果f0〜f3を受けると、その演算結果f0〜f3が符号付き16ビット整数の範囲(クリッピング範囲)を外れる場合には、その演算結果f0〜f3をクリッピング範囲内に収めるため、その演算結果f0〜f3がクリッピング範囲の最大値より大きければ、その演算結果f0〜f3をクリッピング範囲の最大値に置換するクリップ処理を実施する。また、可変丸め部7による丸め処理後の演算結果f0〜f3がクリッピング範囲の最小値より小さければ、その演算結果f0〜f3をクリッピング範囲の最小値に置換するクリップ処理を実施する。
出力処理部9は、クリッピング処理部8によるクリップ処理後の演算結果f0〜f3を格納し、クリップ処理後の演算結果をf0〜f3の順番で外部出力する。
これにより、式(2)に示す4点逆変換アルゴリズムが実行されることになる。
以上で明らかなように、この実施の形態1によれば、入力前処理部1から出力された列データd0〜d3と係数テーブル2から出力された行データc0〜c3との積和演算を実施する積和演算部3〜6を設け、可変丸め部7が積和演算部3〜6における演算結果の行要素毎に、別々の丸め処理を実施するように構成したので、定数項eを適宜設定することで、多様な仕様の逆変換アルゴリズムを実行することができる効果を奏する。
実施の形態2.
図2はこの発明の実施の形態2による一次元の逆変換回路を示す構成図であり、図において、入力前処理部31は入力データである列データd0〜d7を順次入力して、その列データd0〜d7を列単位に格納し、その列データd0,d2,d4,d6を積和演算部14〜17に出力するとともに、その列データd1,d3,d5,d7を積和演算部18〜21に出力する。なお、入力前処理部11は入力前処理手段を構成している。
係数テーブル12は予め第1の変換行列Caを格納し、第1の変換行列Caの行データca0〜ca3を積和演算部14〜17に出力する処理を実施する(変換行列Caの行データca0〜ca3はベクトルであり、下記の式(4)を参照)。
係数テーブル13は予め第2の変換行列Cbを格納し、第2の変換行列Cbの行データcb0〜cb3を積和演算部18〜21に出力する処理を実施する(変換行列Cbの行データcb0〜cb3はベクトルであり、下記の式(4)を参照)。
なお、係数テーブル12,13はテーブル手段を構成している。
積和演算部14は入力前処理部11から出力された列データd0,d2,d4,d6と係数テーブル12から出力された第1の変換行列Caの行データca0との積和演算を実施する。
積和演算部15は入力前処理部11から出力された列データd0,d2,d4,d6と係数テーブル12から出力された第1の変換行列Caの行データca1との積和演算を実施する。
積和演算部16は入力前処理部11から出力された列データd0,d2,d4,d6と係数テーブル12から出力された第1の変換行列Caの行データca2との積和演算を実施する。
積和演算部17は入力前処理部11から出力された列データd0,d2,d4,d6と係数テーブル12から出力された第1の変換行列Caの行データca3との積和演算を実施する。
なお、積和演算部14〜17は第1の積和演算手段を構成している。
積和演算部18は入力前処理部11から出力された列データd1,d3,d5,d7と係数テーブル13から出力された第2の変換行列Cbの行データcb0との積和演算を実施する。
積和演算部19は入力前処理部11から出力された列データd1,d3,d5,d7と係数テーブル13から出力された第2の変換行列Cbの行データcb1との積和演算を実施する。
積和演算部20は入力前処理部11から出力された列データd1,d3,d5,d7と係数テーブル13から出力された第2の変換行列Cbの行データcb2との積和演算を実施する。
積和演算部21は入力前処理部11から出力された列データd1,d3,d5,d7と係数テーブル13から出力された第2の変換行列Cbの行データcb3との積和演算を実施する。
なお、積和演算部18〜21は第2の積和演算手段を構成している。
後処理部22は積和演算部14〜17の演算結果と積和演算部18〜21との加算処理又は減算処理を実施する。なお、後処理部22は後処理手段を構成している。
可変丸め部23は後処理部22が加算処理又は減算処理を実施すると、その加算結果又は減算結果の行要素毎に、別々の丸め処理を実施する。なお、可変丸め部23は丸め処理手段を構成している。
クリッピング処理部24は可変丸め部23による丸め処理後の演算結果f0〜f7を所定のクリッピング範囲内に収めるクリップ処理を実施する。なお、クリッピング処理部24はクリッピング手段を構成している。
出力処理部25はクリッピング処理部24によるクリップ処理後の演算結果f0〜f7を格納し、その演算結果f0〜f7を外部出力する。
次に動作について説明する。
この実施の形態2による一次元逆変換回路にて実現可能な、8点逆変換アルゴリズムの一例を下記の式(4)に示す。
Figure 0004405452
入力前処理部11は、入力データである列データd0〜d7を順次入力すると、その列データd0〜d7を列単位に格納する。
そして、入力前処理部11は、列データd0,d2,d4,d6を積和演算部14〜17に出力し、列データd1,d3,d5,d7を積和演算部18〜21に出力する。
係数テーブル12は、予め第1の変換行列Caを格納し、第1の変換行列Caの第1行である行データca0を積和演算部14に出力し、第1の変換行列Caの第2行である行データca1を積和演算部15に出力する。
また、第1の変換行列Caの第3行である行データca2を積和演算部16に出力し、第1の変換行列Caの第4行である行データca3を積和演算部17に出力する。
係数テーブル13は、予め第2の変換行列Cbを格納し、第2の変換行列Cbの第1行である行データcb0を積和演算部18に出力し、第2の変換行列Cbの第2行である行データcb1を積和演算部19に出力する。
また、第2の変換行列Cbの第3行である行データcb2を積和演算部20に出力し、第2の変換行列Cbの第4行である行データcb3を積和演算部21に出力する。
積和演算部14〜17は、入力前処理部11から列データd0,d2,d4,d6を受け、係数テーブル12から第1の変換行列Caの行データcai(i=0,2,4,6)を受けると、その列データd0,d2,d4,d6と行データcaiとの積和演算を実施し、その演算結果Saiを後処理部22に出力する。
ai=cai・{d0,d2,d4,d6T (5)
ただし、i=0,1,2,3
積和演算部18〜21は、入力前処理部11から列データd1,d3,d5,d7を受け、係数テーブル13から第2の変換行列Cbの行データcbi(i=1,3,5,7)を受けると、その列データd1,d3,d5,d7と行データcbiとの積和演算を実施し、その演算結果Sbiを後処理部22に出力する。
bi=cbi・{d1,d3,d5,d7T (6)
ただし、i=0,1,2,3
後処理部22は、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとを入力すると、下記に示すように、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの加算処理を実施するとともに、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの減算処理を実施する。
ai+Sbi (7)
ai−Sbi (8)
ただし、i=0,1,2,3
可変丸め部23は後処理部22から加算結果Sai+Sbiと減算結果Sai−Sbiを受けると、下記の式(9)に示すように、その加算結果Sai+Sbiと減算結果Sai−Sbiに、行要素毎に異なる定数項e0〜e3,e7〜e4をそれぞれ加算してから、vビットの右シフト処理(丸め処理)を実施し、丸め処理後の演算結果f0〜f3,f7〜f4をクリッピング処理部24に出力する。
Figure 0004405452
クリッピング処理部24は、可変丸め部23から丸め処理後の演算結果f0〜f3,f7〜f4を受けると、その演算結果f0〜f3,f7〜f4が符号付き16ビット整数の範囲(クリッピング範囲)を外れる場合には、その演算結果f0〜f3,f7〜f4をクリッピング範囲内に収めるため、その演算結果f0〜f3,f7〜f4がクリッピング範囲の最大値より大きければ、その演算結果f0〜f3,f7〜f4をクリッピング範囲の最大値に置換するクリップ処理を実施する。また、可変丸め部23による丸め処理後の演算結果f0〜f3,f7〜f4がクリッピング範囲の最小値より小さければ、その演算結果f0〜f3,f7〜f4をクリッピング範囲の最小値に置換するクリップ処理を実施する。
出力処理部25は、クリッピング処理部8によるクリップ処理後の演算結果f0〜f3,f7〜f4を格納し、クリップ処理後の演算結果をf0〜f7の順番に並び替えて外部に出力する。
これにより、式(4)に示す8点逆変換アルゴリズムが実行されることになる。
以上で明らかなように、この実施の形態2によれば、入力前処理部11から出力された列データd0,d2,d4,d6と係数テーブル12から出力された第1の変換行列Caの行データcaiとの積和演算を実施する積和演算部14〜17と、入力前処理部11から出力された列データd1,d3,d5,d7と係数テーブル13から出力された第2の変換行列Cbの行データcbiとの積和演算を実施する積和演算部18〜21と、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの加算処理又は減算処理を実施する後処理部22とを設け、可変丸め部23が後処理部22における加算結果又は減算結果の行要素毎に、別々の丸め処理を実施するように構成したので、定数項eを適宜設定することで、多様な仕様の逆変換アルゴリズムを実行することができる効果を奏する。
なお、この実施の形態2では、後処理部22が、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの加算処理を実施するとともに、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの減算処理を実施するものについて示したが、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの加算処理、または、減算処理のいずれか一方を実施するようにしてもよい。
なお、この実施の形態2では、8点の一次元逆変換を実施するものについて示したが、例えば、下記の式(20)に示すように、上記実施の形態1で示したような4点の一次元逆変換を2並列で同時に処理するようにしてもよい。
この場合は、係数テーブル12と係数テーブル13に同じ変換行列Ca(=Cb)を格納し、入力前処理部31では、入力データd0〜d7のうち、d0〜d3を積和演算部14〜17に出力し、d4〜d7を積和演算部18〜21に出力する。後処理部22では、積和演算部14〜21の演算結果をそのまま可変丸め部23へ出力し、可変丸め部23では、{e0,e1,e2,e3}={e4,e5,e6,e7}として丸め処理を実施することで、4点の一次元逆変換を2並列で実現することができる。
Figure 0004405452
実施の形態3.
図3はこの発明の実施の形態3による一次元の逆変換回路を示す構成図であり、図において、図2と同一符号は同一または相当部分を示すので説明を省略する。
入力前処理部31は入力データである列データd0〜d7を順次入力して、その列データd0〜d7を列単位に格納する一方、所定の列データdに対する1ビット符号拡張付の右シフト処理(d>>1)を実施するとともに、その右シフト処理を実施する前の列データdと、その右シフト処理を実施した後の列データd’とを加算する加算処理を実施し、その右シフト処理を実施する前の列データd、その右シフト処理を実施した後の列データd’、または、その加算処理後の列データd+d’のいずれかを選択して積和演算部14〜21に出力する。なお、入力前処理部31は入力前処理手段を構成している。
次に動作について説明する。
この実施の形態3による一次元逆変換回路にて実現可能な、8点逆変換アルゴリズムの一例を下記の式(10)に示す。
Figure 0004405452
入力前処理部31は、入力データである列データd0〜d7を順次入力すると、その列データd0〜d7を列単位に格納する。
そして、入力前処理部31は、所定の列データdに対する1ビット符号拡張付の右シフト処理(d>>1)を実施するとともに、その右シフト処理を実施する前の列データdと、その右シフト処理を実施した後の列データd’とを加算する加算処理を実施し、その右シフト処理を実施する前の列データd、その右シフト処理を実施した後の列データd’、または、その加算処理後の列データd+d’のいずれかを選択して積和演算部14〜21に出力する。
ここでは、説明の便宜上、入力前処理部31がda0={d0,d2,d4,(d6>>1)}を積和演算部14に出力し、da1={d0,(d2>>1),d4,d6}を積和演算部15に出力し、da2={d0,(d2>>1),d4,d6}を積和演算部16に出力し、da3={d0,d2,d4,(d6>>1)}を積和演算部17に出力するものとする。
また、入力前処理部31がdb0={d1,d3,d5,(d7+(d7>>1))}を積和演算部18に出力し、db1={d1,(d3+(d3>>1)),d5,d7}を積和演算部19に出力し、db2={d1,(d3+(d3>>1)),d5,d7}を積和演算部20に出力し、db3={d1,d3,d5,(d7+(d7>>1))}を積和演算部21に出力するものとする。
係数テーブル12は、予め第1の変換行列Caを格納し、第1の変換行列Caの第1行である行データca0を積和演算部14に出力し、第1の変換行列Caの第2行である行データca1を積和演算部15に出力する。
また、第1の変換行列Caの第3行である行データca2を積和演算部16に出力し、第1の変換行列Caの第4行である行データca3を積和演算部17に出力する。
係数テーブル13は、予め第2の変換行列Cbを格納し、第2の変換行列Cbの第1行である行データcb0を積和演算部18に出力し、第2の変換行列Cbの第2行である行データcb1を積和演算部19に出力する。
また、第2の変換行列Cbの第3行である行データcb2を積和演算部20に出力し、第2の変換行列Cbの第4行である行データcb3を積和演算部21に出力する。
積和演算部14〜17は、入力前処理部31から列データdai(i=0,1,2,3)を受け、係数テーブル12から第1の変換行列Caの行データcai(i=0,1,2,3)を受けると、その列データdaiと行データcaiとの積和演算を実施し、その演算結果Saiを後処理部22に出力する。
ai=cai・dai T (11)
ただし、i=0,1,2,3
積和演算部18〜21は、入力前処理部31から列データdbi(i=0,1,2,3)を受け、係数テーブル13から第2の変換行列Cbの行データcbi(i=0,1,2,3)を受けると、その列データdbiと行データcbiとの積和演算を実施し、その演算結果Sbiを後処理部22に出力する。
bi=cbi・dbi T (12)
ただし、i=0,1,2,3
後処理部22は、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとを入力すると、下記に示すように、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの加算処理を実施するとともに、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの減算処理を実施する。
ai+Sbi (13)
ai−Sbi (14)
ただし、i=0,1,2,3
可変丸め部23は後処理部22から加算結果Sai+Sbiと減算結果Sai−Sbiを受けると、下記の式(15)に示すように、その加算結果Sai+Sbiと減算結果Sai−Sbiに、行要素毎に異なる定数項e0〜e3,e7〜e4をそれぞれ加算してから、vビットの右シフト処理(丸め処理)を実施し、丸め処理後の演算結果f0〜f3,f7〜f4をクリッピング処理部24に出力する。
Figure 0004405452
クリッピング処理部24は、可変丸め部23から丸め処理後の演算結果f0〜f3,f7〜f4を受けると、上記実施の形態2と同様に、その演算結果f0〜f3,f7〜f4が符号付き16ビット整数の範囲(クリッピング範囲)を外れる場合には、その演算結果f0〜f3,f7〜f4をクリッピング範囲内に収めるため、その演算結果f0〜f3,f7〜f4がクリッピング範囲の最大値より大きければ、その演算結果f0〜f3,f7〜f4をクリッピング範囲の最大値に置換するクリップ処理を実施する。また、可変丸め部23による丸め処理後の演算結果f0〜f3,f7〜f4がクリッピング範囲の最小値より小さければ、その演算結果f0〜f3,f7〜f4をクリッピング範囲の最小値に置換するクリップ処理を実施する。
出力処理部25は、上記実施の形態2と同様に、クリッピング処理部24によるクリップ処理後の演算結果f0〜f3,f7〜f4を格納し、クリップ処理後の演算結果をf0〜f7の順番に並び替えて外部に出力する。
これにより、式(10)に示す8点逆変換アルゴリズムが実行されることになる。
以上で明らかなように、この実施の形態3によれば、入力前処理部31が入力データである列データd0〜d7を順次入力して、その列データd0〜d7を列単位に格納すると、所定の列データdに対する1ビット符号拡張付の右シフト処理(d>>1)を実施するとともに、その右シフト処理を実施する前の列データdと、その右シフト処理を実施した後の列データd’とを加算する加算処理を実施し、その右シフト処理を実施する前の列データd、その右シフト処理を実施した後の列データd’、または、その加算処理後の列データd+d’のいずれかを選択して積和演算部14〜21に出力するように構成したので、上記実施の形態2よりも更に、多様な仕様の逆変換アルゴリズムを実行することができる効果を奏する。
実施の形態4.
図4はこの発明の実施の形態4による一次元の逆変換回路を示す構成図であり、図において、図3と同一符号は同一または相当部分を示すので説明を省略する。
制御部32は例えば逆変換演算の種別を示す動作種別情報を受信すると、その動作種別情報に応じて入力前処理部31が選択する列データの種類、積和演算部14〜21が使用する変換行列の種別、後処理部22における演算の種類及び有無、可変丸め部23における丸め方法、クリッピング処理部24におけるクリッピング範囲及び出力処理部25における演算結果の出力順序などを制御する。なお、制御部32は制御手段を構成している。
次に動作について説明する。
制御部32は、例えば、式(2)の逆変換演算の実施を示唆する動作種別情報、または、式(10)の逆変換演算の実施を示唆する動作種別情報を受信する。
制御部32は、外部から動作種別情報を受信すると、その動作種別情報に応じて入力前処理部31が選択する列データの種類、積和演算部14〜21が使用する変換行列の種別、後処理部22における演算の種類及び有無、可変丸め部23における丸め方法、クリッピング処理部24におけるクリッピング範囲及び出力処理部25における演算結果の出力順序などを制御する。
入力前処理部31は、入力データである列データd0〜d7を順次入力すると、その列データd0〜d7を列単位に格納する。
入力前処理部31は、制御部32から式(2)の逆変換演算の実施を示唆された場合、図1の入力前処理部1と同様に、列データd0〜d3をそれぞれ積和演算部14〜17に出力する。
入力前処理部31は、制御部32から式(10)の逆変換演算の実施を示唆された場合、図3の入力前処理部31と同様に、所定の列データdに対する1ビット符号拡張付の右シフト処理(d>>1)を実施するとともに、その右シフト処理を実施する前の列データdと、その右シフト処理を実施した後の列データd’とを加算する加算処理を実施し、その右シフト処理を実施する前の列データd、その右シフト処理を実施した後の列データd’、または、その加算処理後の列データd+d’のいずれかを選択して積和演算部14〜21に出力する。
ここでは、説明の便宜上、入力前処理部31がda0={d0,d2,d4,(d6>>1)}を積和演算部14に出力し、da1={d0,(d2>>1),d4,d6}を積和演算部15に出力し、da2={d0,(d2>>1),d4,d6}を積和演算部16に出力し、da3={d0,d2,d4,(d6>>1)}を積和演算部17に出力するものとする。
また、入力前処理部31がdb0={d1,d3,d5,(d7+(d7>>1))}を積和演算部18に出力し、db1={d1,(d3+(d3>>1)),d5,d7}を積和演算部19に出力し、db2={d1,(d3+(d3>>1)),d5,d7}を積和演算部20に出力し、db3={d1,d3,d5,(d7+(d7>>1))}を積和演算部21に出力するものとする。
係数テーブル12は、制御部32から式(2)の逆変換演算の実施を示唆された場合、第1の変換行列Caの第1行である行データca0を積和演算部14に出力し、第1の変換行列Caの第2行である行データca1を積和演算部15に出力する。
また、第1の変換行列Caの第3行である行データca2を積和演算部16に出力し、第1の変換行列Caの第4行である行データca3を積和演算部17に出力する。
係数テーブル13は、制御部32から式(2)の逆変換演算の実施を示唆された場合、第2の変換行列Cbの行データcb0〜cb3を積和演算部18〜21に出力しない。
ここでは、説明の便宜上、係数テーブル12が格納している第1の変換行列Caが、図1の係数テーブル2が格納している変換行列Cと同じであるものとする。
係数テーブル12は、制御部32から式(10)の逆変換演算の実施を示唆された場合にも、第1の変換行列Caの第1行である行データca0を積和演算部14に出力し、第1の変換行列Caの第2行である行データca1を積和演算部15に出力する。
また、第1の変換行列Caの第3行である行データca2を積和演算部16に出力し、第1の変換行列Caの第4行である行データca3を積和演算部17に出力する。
係数テーブル13は、制御部32から式(10)の逆変換演算の実施を示唆された場合、第2の変換行列Cbの第1行である行データcb0を積和演算部18に出力し、第2の変換行列Cbの第2行である行データcb1を積和演算部19に出力する。
また、第2の変換行列Cbの第3行である行データcb2を積和演算部20に出力し、第2の変換行列Cbの第4行である行データcb3を積和演算部21に出力する。
積和演算部14〜17は、入力前処理部31から列データdai(i=0,1,2,3)を受け、係数テーブル12から第1の変換行列Caの行データcai(i=0,1,2,3)を受けると、上記の式(11)に示すように、その列データdaiと行データcaiとの積和演算を実施し、その演算結果Saiを後処理部22に出力する。
積和演算部18〜21は、入力前処理部31から列データdbi(i=0,1,2,3)を受け、係数テーブル13から第2の変換行列Cbの行データcbi(i=0,1,2,3)を受けると、上記の式(12)に示すように、その列データdbiと行データcbiとの積和演算を実施し、その演算結果Sbiを後処理部22に出力する。なお、積和演算部18〜21は、式(2)の逆変換演算を実施する場合、列データdbiと行データcbiを受けず、式(10)の逆変換演算を実施する場合に限り、列データdbiと行データcbiを受ける。
後処理部22は、制御部32から式(2)の逆変換演算の実施を示唆された場合、積和演算部14〜17から積和演算の演算結果Saiを受けると、その演算結果Saiをそのまま可変丸め部23に出力する。
後処理部22は、制御部32から式(10)の逆変換演算の実施を示唆された場合、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとを入力すると、上記の式(13)及び式(14)に示すように、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの加算処理を実施するとともに、積和演算部14〜17の演算結果Saiと積和演算部18〜21の演算結果Sbiとの減算処理を実施する。
可変丸め部23は、制御部32から式(2)の逆変換演算の実施を示唆され、かつ、制御部32から定数項e={0,1,1,1}を受けると、図1の可変丸め部7と同様に、積和演算部14の演算結果Sa0に対する1ビットの右シフト処理(丸め処理)を実施し、丸め処理後の演算結果f0をクリッピング処理部24に出力する。
一方、積和演算部15〜18の演算結果Sa1,Sa2,Sa3については、各演算結果Sa1,Sa2,Sa3に“1”をそれぞれ加算してから、1ビットの右シフト処理(丸め処理)を実施し、丸め処理後の演算結果f1〜f3をクリッピング処理部24に出力する。
可変丸め部23は、制御部32から式(10)の逆変換演算の実施を示唆され、かつ、制御部32から定数項e0〜f7とシフト値vを受けると、図3の可変丸め部23と同様に、上記の式(15)に示すように、後処理部22から出力された加算結果Sai+Sbiと減算結果Sai−Sbiに、行要素毎に異なる定数項e0〜e3,e7〜e4をそれぞれ加算してから、vビットの右シフト処理(丸め処理)を実施し、丸め処理後の演算結果f0〜f3,f7〜f4をクリッピング処理部24に出力する。
なお、可変丸め部23は、制御部32から従来の一般的な四捨五入の丸め方法の実施の示唆を受けた場合には、その丸め方法を実施する。
クリッピング処理部24は、制御部32から式(2)の逆変換演算の実施に対応する符号付き16ビット整数の範囲(クリッピング範囲)を受けた場合、図1のクリッピング処理部8と同様に、可変丸め部23から出力された丸め処理後の演算結果f0〜f3を当該クリッピング範囲内に収めるため、その演算結果f0〜f3がクリッピング範囲の最大値より大きければ、その演算結果f0〜f3をクリッピング範囲の最大値に置換するクリップ処理を実施する。また、可変丸め部23から出力された丸め処理後の演算結果f0〜f3がクリッピング範囲の最小値より小さければ、その演算結果f0〜f3をクリッピング範囲の最小値に置換するクリップ処理を実施する。
クリッピング処理部24は、制御部32から式(10)の逆変換演算の実施に対応する符号付き16ビット整数の範囲(クリッピング範囲)を受けた場合、図3のクリッピング処理部24と同様に、可変丸め部23から出力された丸め処理後の演算結果f0〜f3,f7〜f4を当該クリッピング範囲内に収めるため、その演算結果f0〜f3,f7〜f4がクリッピング範囲の最大値より大きければ、その演算結果f0〜f3,f7〜f4をクリッピング範囲の最大値に置換するクリップ処理を実施する。また、可変丸め部23から出力された丸め処理後の演算結果f0〜f3,f7〜f4がクリッピング範囲の最小値より小さければ、その演算結果f0〜f3,f7〜f4をクリッピング範囲の最小値に置換するクリップ処理を実施する。
出力処理部25は、制御部32から式(2)の逆変換演算の実施を示唆された場合、図1の出力処理部9と同様に、クリッピング処理部24によるクリップ処理後の演算結果f0〜f3を格納し、クリップ処理後の演算結果をf0〜f3の順番で外部出力する。
これにより、式(2)に示す4点逆変換アルゴリズムが実行されることになる。
出力処理部25は、制御部32から式(10)の逆変換演算の実施を示唆された場合、図3の出力処理部25と同様に、クリッピング処理部24によるクリップ処理後の演算結果f0〜f3,f7〜f4を格納し、クリップ処理後の演算結果をf0〜f7の順番に並び替えて外部に出力する。
これにより、式(10)に示す8点逆変換アルゴリズムが実行されることになる。
以上で明らかなように、この実施の形態4によれば、入力前処理部31が選択する列データの種類、積和演算部14〜21が使用する変換行列の種別、後処理部22における演算の種類及び有無、可変丸め部23における丸め方法、クリッピング処理部24におけるクリッピング範囲及び出力処理部25における演算結果の出力順序などを制御するように構成したので、一つの一次元逆変換回路で、複数種別の一次元の逆変換演算を実現することができる効果を奏する。
なお、この実施の形態4では、式(2)の逆変換演算を実施する場合、積和演算部18〜21が列データdbiと行データcbiを受けず、式(10)の逆変換演算を実施する場合に限り、列データdbiと行データcbiを受けるものについて示したが、上記実施の形態2で示したように、式(2)の逆変換演算を実施する場合でも、積和演算部18〜21が列データdbiと行データcbiを受けて動作することにより、積和演算部14〜17と積和演算部18〜21が並列して式(2)の逆変換演算を実施するようにしてもよい。
実施の形態5.
上記実施の形態1〜4では、一次元の逆変換を実施する逆変換回路について示したが、例えば、非特許文献1に記載されているように、上記実施の形態1〜4における一次元逆変換回路を2つ用意し、2つの一次元逆変換回路と、行列転置を行うためのメモリーとを結合することにより、二次元の逆変換回路を構成するようにしてもよい。
なお、二次元の逆変換回路においては、一方の一次元逆変換回路が受信する動作種別情報と、他方の一次元逆変換回路が受信する動作種別情報とは異なっていてもよい。
また、上記実施の形態1〜4では、クリッピング範囲の例として16ビット整数の範囲を示したが、クリッピング範囲の最大値と最小値は任意の値を設定できるものとする。
実施の形態6.
上記実施の形態1〜4における一次元逆変換回路の積和演算部3等は、単純に乗算器と累算器を用いて構成することが可能であるが、別の構成方法として、非特許文献1に示されている“distributed arithmeticアルゴリズム”に従った構成方法も可能である。
この場合、予め部分和を係数テーブル2等に格納しておき、入力前処理部1等から出力される列データをビット分解して積和演算部3等に供給し、積和演算部3等では、ビット分解された列データに対応する部分和を係数テーブル2等から取得し、ビット位置に対応するシフトを部分和に施して累算することにより、積和演算結果を取得する。
以下、図1の一次元逆変換回路の積和演算部3〜6が“distributed arithmeticアルゴリズム”を実行する場合の演算方法と動作を説明する。
入力前処理部1は、入力データである列データd0〜d3を順次入力すると、上記実施の形態1と同様に、その列データd0〜d3を列単位に格納するが、その列データdk(k=0,1,2,3)のビット幅をNビット、その列データdkを2の補数で表現すると、下記の式(16)のようになる。
Figure 0004405452
入力前処理部1は、4つの列データdkを1ビットずつまとめた4ビットの値bnをLSB(n=N−1)から順番にMSB(n=0)まで出力する。
n={b0n,b1n,b2n,b3n
一方、係数テーブル2には、下記の式(17)に示すように、予め、係数{c0,c1,c2,c3}についての部分和P(i0,i1,i2,i3,n)が格納されている。
Figure 0004405452
積和演算部3〜6は、入力前処理部1から4ビットの値bnを受けると、係数テーブル2から4ビットの値bnに対応する部分和P(b0n,b1n,b2n,b3n,n)を取得する。
積和演算部3〜6は、部分和P(b0n,b1n,b2n,b3n,n)を取得すると、ビット位置nに対応するシフトを実施し、下記の式(18)に示すように、全ビット位置(N−1〜)について累算して演算結果sを取得する。
Figure 0004405452
なお、積和演算部3〜6の演算結果sは、入力データである列データ{d0,d1,d2,d3}と、係数テーブル2から出力される行データ{c0,c1,c2,c3}との積和演算の演算結果s’に等しいことは明らかである。
Figure 0004405452
この発明の実施の形態1による一次元の逆変換回路を示す構成図である。 この発明の実施の形態2による一次元の逆変換回路を示す構成図である。 この発明の実施の形態3による一次元の逆変換回路を示す構成図である。 この発明の実施の形態4による一次元の逆変換回路を示す構成図である。
符号の説明
1 入力前処理部(入力前処理手段)、2 係数テーブル(テーブル手段)、3〜6 積和演算部(積和演算手段)、7 可変丸め部(丸め処理手段)、8 クリッピング処理部(クリッピング手段)、9 出力処理部、11 入力前処理部(入力前処理手段)、12,13 係数テーブル(テーブル手段)、 14〜17 積和演算部(第1の積和演算手段)、18〜21 積和演算部(第2の積和演算手段)、22 後処理部(後処理手段)、23 可変丸め部(丸め処理手段)、24 クリッピング処理部(クリッピング手段)、25 出力処理部、31 入力前処理部(入力前処理手段)、32 制御部(制御手段)。

Claims (2)

  1. 入力データである列データを順次入力して、各列データに対する1ビット符号拡張付の右シフト処理を実施するとともに、その右シフト処理を実施する前の列データと、その右シフト処理を実施した後の列データとを加算する加算処理を実施し、その右シフト処理を実施する前の列データ、その右シフト処理を実施した後の列データ、または、その加算処理後の列データのいずれかを選択して出力する入力前処理手段と、予め第1及び第2の変換行列を格納し、第1及び第2の変換行列の各行データを出力するテーブル手段と、上記入力前処理手段から出力された列データと上記テーブル手段から出力された第1の変換行列の行データとの積和演算を実施する第1の積和演算手段と、上記入力前処理手段から出力された列データと上記テーブル手段から出力された第2の変換行列の行データとの積和演算を実施する第2の積和演算手段と、上記第1の積和演算手段の演算結果と上記第2の積和演算手段の演算結果との加算処理又は減算処理を実施する後処理手段と、上記後処理手段における加算結果又は減算結果の行要素毎に、別々の丸め処理を実施する丸め処理手段と、上記丸め処理手段による丸め処理後の加算結果又は減算結果を所定のクリッピング範囲内に収めるクリップ処理を実施するクリッピング手段とを備えた逆変換回路。
  2. 入力前処理手段が選択する列データの種類、第1及び第2の積和演算手段が使用する変換行列の種類、後処理手段における演算の種類及び有無、丸め処理手段における丸め方法、及びクリッピング手段におけるクリッピング範囲を制御する制御手段を設けたことを特徴とする請求項1記載の逆変換回路。
JP2005267350A 2005-09-14 2005-09-14 逆変換回路 Active JP4405452B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005267350A JP4405452B2 (ja) 2005-09-14 2005-09-14 逆変換回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005267350A JP4405452B2 (ja) 2005-09-14 2005-09-14 逆変換回路

Publications (2)

Publication Number Publication Date
JP2007079972A JP2007079972A (ja) 2007-03-29
JP4405452B2 true JP4405452B2 (ja) 2010-01-27

Family

ID=37940210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005267350A Active JP4405452B2 (ja) 2005-09-14 2005-09-14 逆変換回路

Country Status (1)

Country Link
JP (1) JP4405452B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9807395B2 (en) * 2011-01-18 2017-10-31 Dolby International Ab Video decoder with reduced dynamic range transform with inverse transform shifting memory
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

Also Published As

Publication number Publication date
JP2007079972A (ja) 2007-03-29

Similar Documents

Publication Publication Date Title
JPH0526229B2 (ja)
CN110109646B (zh) 数据处理方法、装置和乘加器及存储介质
JP6357345B2 (ja) ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法
WO2000036842A1 (en) Dct arithmetic device
JP4405452B2 (ja) 逆変換回路
JP4378245B2 (ja) データ変換装置及び方法
JP3129392B2 (ja) 2次元idct回路
US11604852B2 (en) Signal processing apparatus, method, program, and recording medium
US12019700B2 (en) Signal processing apparatus, method, program, and recording medium
JP4933405B2 (ja) データ変換装置及びその制御方法
JP5589628B2 (ja) 内積演算装置および内積演算方法
CN110990776A (zh) 编码分布式计算方法、装置、计算机设备及存储介质
JPH05153402A (ja) 離散コサイン変換器
JP3977003B2 (ja) 離散コサイン変換・逆離散コサイン変換手法及びその装置
JP6687700B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP3575991B2 (ja) 直交変換回路
JP3895031B2 (ja) 行列ベクトル乗算器
JP3697716B2 (ja) 行列データ乗算装置
JPH0540776A (ja) 二次元dctマトリクス演算回路
JPH06274524A (ja) 直交変換回路および逆変換回路
JP3565494B2 (ja) 拡大体演算装置およびそのプログラム記録媒体
WO2003071687A1 (en) Data processing device
CN116820391A (zh) 一种乘法器的运算方法、运算装置、电子设备和存储介质
WO2016181981A1 (ja) 行列三角化装置、行列三角化方法、およびプログラム
JPH05153403A (ja) 離散コサイン変換器

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071004

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080625

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080703

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090715

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: 20091027

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091104

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4405452

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131113

Year of fee payment: 4

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

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