PL163731B1 - Sposób i urzadzenie do arytmetycznego obliczania dwuwymiarowych transformat PL PL PL PL - Google Patents

Sposób i urzadzenie do arytmetycznego obliczania dwuwymiarowych transformat PL PL PL PL

Info

Publication number
PL163731B1
PL163731B1 PL90285432A PL28543290A PL163731B1 PL 163731 B1 PL163731 B1 PL 163731B1 PL 90285432 A PL90285432 A PL 90285432A PL 28543290 A PL28543290 A PL 28543290A PL 163731 B1 PL163731 B1 PL 163731B1
Authority
PL
Poland
Prior art keywords
data
multiplier
matrix
coefficients
transform
Prior art date
Application number
PL90285432A
Other languages
English (en)
Inventor
Michele Taliercio
Mario Lavorgna
Rinaldo Poluzzi
Gianguido Rizzotto
Original Assignee
Sgs Thomson Microelectronics
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 Sgs Thomson Microelectronics filed Critical Sgs Thomson Microelectronics
Publication of PL163731B1 publication Critical patent/PL163731B1/pl

Links

Classifications

    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

1. Sposób arytmetycznego obliczania dwuwymiarowych transformat, znamienny tym, ze dostarcza sie i zapamietuje sie wspól- czynniki transformat i dane do zapamietania macierzy wspólczynników transformat i ma- cierzy danych poddawanych transformacji, przenosi sie zapamietane wspóczynniki transformat i przenosi sie zapamietane dane w nastepstwie czasowym do pierwszego eta- pu znozenia poczatkowego wspólczynników transformat i danych, zapamietuje sie wynik mnozenia poczatkowego, w drugim etapie mnozenia, nastepnie mnozy sie ten wynik pierwszego etapu mnozenia przez macierz transponowanych wspólczynników transfor- mat i zapamietuje sie wynik tego nastepnego mnozenia. F ig . 1 RZECZPOSPOLITA POLSKA PL PL PL PL

Description

Przedmiotem wynalazku jest sposób arytmetycznego obliczania dwuwymiarowych transformat i urządzenie do arytmetycznego obliczania dwuwymiarowych transformat.
W wielu dziedzinach technologii istnieje potrzeba dokonywania kodowania dla transmisji i rejestracji sygnałów cyfrowych za pomocą dwuwymiarowych transformat
Ta technika kodowania zapewnia dekorelację pierwotnego sygnału i dokonanie zagęszczenia jego energii. Taka operacja powoduje zmniejszenie redundancji sygnału, umożliwiając zmniejszenie do minimum ilości informacji potrzebnej do kodowania.
Dla każdego rodzaju sygnału (głos, sygnał wizyjny, dane) optymalną transformatą ze względu na zdolność dekorelacji jest transformata Karhunena-Loewe’a; jednak niekorzystnie złożoność obliczeniowa algorytmu i w wyniku tego długość czasu wymaganego do obliczeń czynią trudnym użycie jej w zakresie zastosowań przemysłowych, gdzie jest wymagane, aby
163 731 operacja transformaty sygnału była przeprowadzana w czasie bieżącym (kodowanie obrazów w ruchu).
W praktyce są stosowane różne rodzaje podoptymalnych transformat jednostkowych: dyskretna transformata Fouriera, dyskretna transformata sinusowa, dyskretna transformata cosinusowa, transformata Hadamarda, transformata pochyła.
Wybór określonego rodzaju transformaty jednostkowej jest określony przez własności statystyczne kodowanego sygnału.
Znane urządzenia są przeznaczone do wykorzystywania tylko jednego określonego rodzaju transformaty jednostkowej.
Sposób według wynalazku polega na tym, że dostarcza się i zapamiętuje się współczynniki transformat i dane do zapamiętania macierzy współczynników transformat i macierzy danych poddawanych transformacji. Przenosi się zapamiętane współczynniki transformat i przenosi się zapamiętane dane w następstwie czasowym do pierwszego etapu mnożenia początkowego współczynników transformat i danych. Zapamiętuje się wynik mnożenia początkowego, w drugim etapie mnożenia następnie mnoży się ten wynik pierwszego etapu mnożenia przez macierz transponowanych współczynników transformat i zapamiętuje się ten wynik tego następnego mnożenia.
Macierz transponowanych współczynników transformat dostarcza się do drugiego etapu mnożenia z ustalonym opóźnieniem po przeniesieniu współczynników transformat i danych do pierwszego etapu mnożenia.
Urządzenie według wynalazku zawiera wejściowe rejestry współczynników transformat i danych, dołączone do dwóch wejść pamięci o dostępie swobodnym do pamiętania macierzy współczynników transformat i macierzy danych poddawanych transformacji. Do jednego wyjścia pamięci jest dołączone poprzez element przesyłowy wejście pierwszego układu mnożącego do mnożenia początkowego macierzy współczynników transformat i danych. Do drugiego wyjścia pamięci i do drugiego wejścia pierwszego układu mnożącego jest dołączony układ mnożący do przesyłania danych w określonym następstwie czasowym. Z pierwszym układem mnożącym jest połączony pierwszy akumulator do pamiętania wyniku mnożenia początkowego. Do pierwszego akumulatora jest dołączony drugi układ mnożący do następnego mnożenia wyniku mnożenia początkowego przez macierz transponowanych współczynników transformat, dostarczaną przez pamięć i do drugiego układu mnożącego jest dołączony drugi akumulator do pamiętania wyniku tego następnego mnożenia.
Do wejściowego rejestru danych jest dołączony rejestr multipleksera, którego wyjście jest dołączone do pierwszego układu mnożącego.
Pomiędzy trzecie wyjście pamięci i drugi układ mnożący jest włączony układ opóźniający przesyłanie macierzy transponowanych współczynników transformat.
Urządzenie zawiera trzeci rejestr sterowany przez mikroprocesor i dołączony do pamięci o dostępie swobodnym.
Zaletą wynalazku jest to, że w ten sposób zapewnia dobry kompromis pomiędzy zajmowanym obszarem i szybkością obliczania.
Dzięki wprowadzeniu układu mnożącego jest możliwe uzyskanie znacznych szybkości obliczania, natomiast użycie pamięci o dostępie swobodnym umożliwia bardzo dużą elastyczność operacyjną, pozwalając w razie potrzeby na wybór rodzaju transformaty najwłaściwszej dla określonego rozwiązywanego problemu. Arytmetyczne obliczenie transformaty staje się więc proste do zaprogramowania poprzez zmianę współczynników transformat zapamiętanych w pamięci o dostępie swobodnym.
Zaletą wynalazku jest zaprojektowanie sposobu i urządzenia do arytmetycznego obliczania dowolnej dwuwymiarowej transformaty jednostkowej, która umożliwia operacje w czasie bieżącym z dużą szybkością obliczania i która ma szczególnie prostą budowę.
Przedmiot wynalazku jest przedstawiony w przykładzie wykonania na rysunku, na którym fig. 1 przedstawia budowę urządzenia do arytmetycznego obliczania dwuwymiarowych transformat, a fig. 2 - sekwencję operacji logicznych urządzenia przeprowadzającego sposób arytmetycznego obliczania dwuwymiarowych transformat.
1(33 731
Na fig. 1 urządzenie do arytmetycznego obliczania dwuwymiarowych transformat według wynalazku zawiera zasadniczo dwa układy mnożące 31, 32 połączone szeregowo, mające kolejno 8 x 8 i 12x8 bitów, z których oba pracują z modułami i znakami. Na wyjściu układu mnożącego 31 jest dołączony pierwszy akumulator 33, który ma za zadanie akumulację pierwszego iloczynu macierzowego (macierz danych przez macierz współczynników). Wewnątrz akumulator 33 zawiera nie pokazany na rysunku układ sumująco- odejmujący (sterowany bitem znaku i działający w module wchodzącym do układu mnożącego 31) dla akumulacji sum cząstkowych potrzebnych do pierwszej operacji macierzowej, drugi układ sumująco-odejmujący do ponownej konwersji do modułu i znaku, sześć rejestrów do ponownej konwersji przepływu danych i dwa multipleksery potrzebne do przestawienia akumulatora.
Dwubramkowa pamięć 34 o dostępie swobodnym z możliwością częściowego zapisu treści każdego słowa jest w stanie pamiętać macierz współczynników i macierz danych; jej wymiary (18 bitów na 64 słowa) umożliwiają to, że zarówno dane jak i współczynniki są osiągalne za pomocą tylko jednego adresu. Programowanie pamięci 34 o dostępie swobodnym jest dokonywane przez zmianę zawartości części pamięci 34 o dostępie swobodnym zawierającej współczynniki transformaty. Zawartość części pamięci 34 o dostępie swobodnym zawierającej dane jest zmieniana za każdym razem, gdy dochodzi nowa macierz poddawana transformacji.
Linie wejściowe pamięci 34 o dostępie swobodnym dochodzą do trzech rejestrów 35, 36 i 37, spośród których rejestry 35 i 36 wprowadzają współczynniki i dane macierzowe, transformują je z notacji uzupełnienia dwójkowego do notacji modułu i znaku. Te dane wejściowe i współczynniki są dostarczane do rejestrów 35, 36 wzdłuż szyn wejściowych 40,41. Trzeci rejestr 37 jest sterowany przez właściwy mikroprocesor, z którym łączy się on za pomocą połączeń 42, 43 i zawiera programowany układ logiczny (PLA) do wytwarzania sygnałów sterujących operacjami logicznymi urządzenia, układ logiczny o dostępie swobodnym podtrzymujący PIA i licznik 9-bitowy do wytwarzania adresów pamięci 34 o dostępie swobodnym.
Od pamięci 34 o dostępie swobodnym odchodzi zespół trzech połączeń, z których dwa są stosowane do dostarczania współczynników transponowanej macierzy do układu mnożącego 32 przez rejestr przesuwający 38 i do dostarczania przetwarzanych danych do rejestru 39 multipleksera dwa do jednego, za pomocą którego jest możliwe skierowanie do pierwszego układu mnożącego 31 danych przychodzących kolejno z rejestru 36 (przez pierwsze 64 cykle zegarowe) lub z pamięci 34 o dostępie swobodnym (kolejne cykle zegarowe). Trzecie połączenie utworzone przez element przesyłowy 45 umożliwia pamięci 34 o dostępie swobodnym dostarczanie współczynników transformat do układu mnożącego 31.
Akumulator 30 umożliwia akumulację drugiego iloczynu macierzowego (pierwszy iloczyn macierzowy przez transponowany współczynnik macierzowy), dając na wyjściu uzupełnienie dwójkowe. Wewnątrz niego występuje tylko jeden układ dodająco-odejmujący (nie pokazany na rysunku), sterowany przez bit znaku i pracujący na module przychodzącym z wyjścia akumulatora 33, multiplekser do przestawiania, dziewięć rejestrów do synchronizacji przepływu danych.
Linia wyjściowa 44 wychodzi z akumulatora.
W związku ze zjawiskiem opisanego rodzaju urządzenie podczas jego pracy przyjmuje kolejno trzy stany: oczekiwanie, wprowadzanie, obliczanie, a przejście pomiędzy nimi jest regulowane przez zespół rozkazów, za pomocą których urządzenie dokonuje operacji transformaty.
Schemat działania programu związanego z tą grupą rozkazów jest przedstawiony na fig. 2.
Trzy rejestry funkcjonalne 21, 22, 23 odpowiadają etapom oczekiwania, wprowadzania współczynników i obliczaniu transformaty, a rejestry pollingowe 24, 25, 26, 27 odpowiadają kolejno etapom wprowadzania, obliczania, końca operacji wprowadzania współczynników i końca operacji obliczania.
Dwa rejestry 28, 29 służą do sygnalizowania, że jest przeprowadzany kolejno etap wprowadzania współczynników przez rejestr 22 lub etap obliczania przez rejestr 23. Właściwy operacyjny znak sygnalizujący jest uzyskiwany podczas takich etapów.
Na wyjściu rejestrów 24, 25, 26, 27 występuje pozytywna odpowiedź Y lub negatywna odpowiedź N.
163 731
Wyszczególniając, od etapu oczekiwania (rejestr funkcjonalny 21), w którym jest wymuszana wartość logiczna 0 operacyjnego znaku sygnalizującego, przechodzimy do etapu rozkazu wprowadzania (rejestr 24), od którego w przypadku pozytywnej odpowidzi Y przechodzimy do etapu wprowadzania współczynników (rejestr funkcjonalny 22), uprzednio sygnalizując początek tego etapu przez nadanie wartości logicznej 1 operacyjnemu znakowi sygnalizującemu w rejestrze 29. Rejestr wejściowy 35 - z fig. 1 - wprowadza następnie współczynnik transformaty do pamięci 34 o dostępie swobodnym.
W przypadku negatywnej odpowiedzi na wyjściu wprowadzającego rejestru pollingowego 24 przechodzimy do obliczającego rejestru pollingowego 25.
W przypadku negatywnej odpowiedzi powracamy od tego rejestru do etapu oczekiwania (rejestr funkcjonalny 21), z drugiej strony w przypadku pozytywnej odpowiedzi przechodzimy do rejestru funkcjonalnego 23 odpowiadającego etapowi obliczania, uprzednio sygnalizując początek tego etapu przez nadanie wartości logicznej 1 operacyjnemu znakowi sygnalizującemu w rejestrze 28. Jest więc rozpoczęta operacja obliczania transformaty przy użyciu pierwszych 64 cykli zegarowych, dane są wprowadzane przez rejestr wejściowy 36 z fig. 1 i następnie dane macierzowe są wprowadzane w międzyczasie przez ten sam rejestr 36 do pamięci 34 o dostępie swobodnym. Obliczanie jest dokonywane przez dwa układy mnożące 31 i 32 z fig. 1, wraz z ich odpowiednimi akumulatorami 33 i 30, najpierw jest dokonywane mnożenie macierzy danych przez macierz współczynników i następnie mnożenie odpowiedniego iloczynu przez transponowaną macierz współczynników.
Na końcu operacji rejestrów pollingowych 26,27 powracamy z pozytywną odpowiedzią, to jest do zakończenia odpowiedniej operacji i do etapu oczekiwania (rejestr funkcjonalny 21), podczas gdy w przypadku negatywnej odpowiedzi kontynuujemy bieżącą operację, powracając przez rejestry 29 i 28 do wprowadzającego i obliczającego rejestru funkcjonalnego 22 i 23.
Obliczanie dwuwymiarowej transformaty jest programowane przez zmianę jedynie tej części pamięci 34 o dostępie swobodnym, która zawiera macierz współczynników transformaty.
163 731
Elg.2
EigJ
Departament Wydawnictw UP RP. Nakład 90 egz. Cena 10 000 zł

Claims (6)

  1. Zastrzeżenia patentowe
    1. Sposób arytmetycznego obliczania dwuwymiarowych transformat, znamienny tym, że dostarcza się i zapamiętuje się współczynniki transformat i dane do zapamiętania macierzy współczynników transformat i macierzy danych poddawanych transformacji, przenosi się zapamiętane wspóczynniki transformat i przenosi się zapamiętane dane w następstwie czasowym do pierwszego etapu znożenia początkowego współczynników transformat i danych, zapamiętuje się wynik mnożenia początkowego, w drugim etapie mnożenia, następnie mnoży się ten wynik pierwszego etapu mnożenia przez macierz transponowanych współczynników transformat i zapamiętuje się wynik tego następnego mnożenia.
  2. 2. Sposób według zastrz. 1, znamienny tym, że macierz transponowanych współczynników transformat dostarcza się do drugiego etapu mnożenia z ustalonym opóźnieniem po przeniesieniu współczynników transformat i danych do pierwszego etapu mnożenia.
  3. 3. Urządzenie do arytmetycznego obliczania dwuwymiarowych transformat, znamienne tym, że zawiera wejściowe rejestry (35,36) współczynników transformat i danych, dołączone do dwóch wejść pamięci o (34) o dostępie swobodnym do pamiętania macierzy współczynników transformat i macierzy danych poddawanych transformacji, do jednego wyjścia pamięci (34) jest dołączone poprzez element przesyłowy (45) wejście pierwszego układu mnożącego (31) do mnożenia początkowego macierzy współczynników transformat i danych, do drugiego wyjścia pamięci (34) i do drugiego wejścia pierwszego układu mnożącego (31) jest dołączony układ mnożący (39) do przesyłania danych w określonym następstwie czasowym, z pierwszym układem mnożącym (31) jest połączony pierwszy akumulator (33) do pamiętania wyniku mnożenia początkowego, do pierwszego akumulatora (33) jest dołączony drugi układ mnożący (32) do następnego mnożenia wyniku mnożenia początkowego przez macierz transponowanych współczynników transformat, dostarczaną przez pamięć (34) i do drugiego układu mnożącego (32) jest dołączony drugi akumulator (30) do pamiętania wyniku tego następnego mnożenia.
  4. 4. Urządzenie według zastrz. 3, znamienne tym, że do wejściowego rejestru (36) danych jest dołączony rejestr (39) multipleksera, którego wyjście jest dołączone do pierwszego układu mnożącego (31).
  5. 5. Urządzenie według zastrz. 3, znamienne tym, że pomiędzy trzecie wyjście pamięci (34) i drugi układ mnożący (32) jest włączony układ opóźniający (38) przesyłanie macierzy transponowanych współczynników transformat
  6. 6. Urządzenie według zastrz. 3, znamienne tym, że zawiera trzeci rejestr (37) sterowany przez mikroprocesor i dołączony do pamięci (34) o dostępie swobodnym.
PL90285432A 1989-06-02 1990-06-01 Sposób i urzadzenie do arytmetycznego obliczania dwuwymiarowych transformat PL PL PL PL PL163731B1 (pl)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT8920744A IT1235263B (it) 1989-06-02 1989-06-02 Metodo e dispositivo per il calcolo aritmetico di trasformate bidimensionali.

Publications (1)

Publication Number Publication Date
PL163731B1 true PL163731B1 (pl) 1994-04-29

Family

ID=11171421

Family Applications (1)

Application Number Title Priority Date Filing Date
PL90285432A PL163731B1 (pl) 1989-06-02 1990-06-01 Sposób i urzadzenie do arytmetycznego obliczania dwuwymiarowych transformat PL PL PL PL

Country Status (8)

Country Link
US (1) US5140542A (pl)
EP (1) EP0400748B1 (pl)
JP (1) JPH0387974A (pl)
KR (1) KR910001532A (pl)
BR (1) BR9002615A (pl)
DE (1) DE69031293T2 (pl)
IT (1) IT1235263B (pl)
PL (1) PL163731B1 (pl)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345408A (en) * 1993-04-19 1994-09-06 Gi Corporation Inverse discrete cosine transform processor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4554629A (en) * 1983-02-22 1985-11-19 Smith Jr Winthrop W Programmable transform processor
FR2582424B1 (fr) * 1985-05-22 1989-06-30 Guichard Jacques Circuit de calcul rapide de la transformee en cosinus, directe ou inverse, d'un signal discret
FR2599872B1 (fr) * 1986-06-06 1988-07-29 Thomson Csf Dispositifs de calcul de transformees cosinus mono-dimensionnelles, et dispositif de codage et dispositif de decodage d'images comportant de tels dispositifs de calcul
US4829465A (en) * 1986-06-19 1989-05-09 American Telephone And Telegraph Company, At&T Bell Laboratories High speed cosine transform
JPS63154205A (ja) * 1986-12-17 1988-06-27 Kawasaki Steel Corp オ−ステナイト系ステンレス継目無鋼管のマンドレルミル圧延方法
NL8700843A (nl) * 1987-04-10 1988-11-01 Philips Nv Televisie-overdrachtsysteem met transformcoding.
DE3773192D1 (de) * 1987-05-02 1991-10-24 Ant Nachrichtentech Verfahren zur zweidimensionalen spektraltransformation.
ES2011327A6 (es) * 1988-03-30 1990-01-01 Alcatel Standard Electrica Metodo y aparato para la obtencion en tiempo real de la transformada discreta de coseno bidimensional.
JP2532588B2 (ja) * 1988-06-22 1996-09-11 富士通株式会社 直交逆変換装置

Also Published As

Publication number Publication date
EP0400748A2 (en) 1990-12-05
JPH0387974A (ja) 1991-04-12
KR910001532A (ko) 1991-01-31
IT1235263B (it) 1992-06-26
EP0400748A3 (en) 1991-10-23
IT8920744A0 (it) 1989-06-02
BR9002615A (pt) 1991-08-20
US5140542A (en) 1992-08-18
DE69031293T2 (de) 1998-01-15
EP0400748B1 (en) 1997-08-20
DE69031293D1 (de) 1997-09-25

Similar Documents

Publication Publication Date Title
CA1290854C (en) Two-dimensional discrete cosine transform processor
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
US5555429A (en) Multiport RAM based multiprocessor
US5081573A (en) Parallel processing system
US4251875A (en) Sequential Galois multiplication in GF(2n) with GF(2m) Galois multiplication gates
US5202847A (en) Digital signal processing
US4996661A (en) Single chip complex floating point numeric processor
JPH01232463A (ja) データプロセッサシステムとそれを備えるビデオプロセッサシステム
US5331585A (en) Orthogonal transformation processor for compressing information
JPH01201764A (ja) 神経回路網およびその回路網に用いる回路
EP0083967A2 (en) Monolithic fast Fourier transform circuit
US4675836A (en) Discrete cosine transform calculation processor
AU2008202591A1 (en) High speed and efficient matrix multiplication hardware module
IE56105B1 (en) Inverse discrete cosine transform calculation processor
JPH02224057A (ja) デジタルデータ処理装置
US5583803A (en) Two-dimensional orthogonal transform processor
US3617720A (en) Fast fourier transform using hierarchical store
US5226002A (en) Matrix multiplier circuit
US5867414A (en) Compact pipelined matrix multiplier utilizing encoding and shifting circuit configurations
US5742741A (en) Reconfigurable neural network
JPS6382546A (ja) ディスクリート変換を計算するための装置
US6003058A (en) Apparatus and methods for performing arithimetic operations on vectors and/or matrices
PL163731B1 (pl) Sposób i urzadzenie do arytmetycznego obliczania dwuwymiarowych transformat PL PL PL PL
KR0139699B1 (ko) 이산 코사인 변환장치
JPS6238975A (ja) 自己相関装置