WO2004003785A1 - 離散コサイン変換(dct)を実行するために用いるdctプロセッサ - Google Patents

離散コサイン変換(dct)を実行するために用いるdctプロセッサ Download PDF

Info

Publication number
WO2004003785A1
WO2004003785A1 PCT/JP2003/008222 JP0308222W WO2004003785A1 WO 2004003785 A1 WO2004003785 A1 WO 2004003785A1 JP 0308222 W JP0308222 W JP 0308222W WO 2004003785 A1 WO2004003785 A1 WO 2004003785A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage
output
dct
input
Prior art date
Application number
PCT/JP2003/008222
Other languages
English (en)
French (fr)
Inventor
Hisashi Goto
Original Assignee
Nokia Corporation
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 Nokia Corporation filed Critical Nokia Corporation
Priority to EP03761831A priority Critical patent/EP1538532A1/en
Priority to AU2003244151A priority patent/AU2003244151A1/en
Publication of WO2004003785A1 publication Critical patent/WO2004003785A1/ja
Priority to US11/023,954 priority patent/US20050240643A1/en

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

Definitions

  • DCT processor used to perform the discrete cosine transform (DCT)
  • the present invention relates to a DCT processor used to perform a discrete cosine transform (hereinafter "DCT").
  • DCT discrete cosine transform
  • Discrete cosine transform is used to convert data expressed as values along the time axis into data divided into frequency components.
  • the DCT algorithm that realizes the discrete cosine transform is used for wide-area applications such as image processing represented by MPEG and MP3 and sub-band filters for frequency.
  • a DCT processor that executes the DCT algorithm typically requires a large number of add-subtracters, multipliers, and a large number of crossbar switches.
  • the number of components required increases rapidly as the number of sampling points increases. The main reason is the complexity of palm tasting data.
  • the increase in the number of components increases the function block area of the DCT processor, increases the power consumption of peripheral logic wiring, increases the maximum wiring length of peripheral logic, and further increases the processing power of the processor. This lowers the speed and increases the output latency.
  • a typical DCT algorithm is a so-called LEE algorithm.
  • Performing a discrete cosine transform at 32 sampling points using a DCT processor that implements this LEE algorithm requires at least 273 additions, a subtractor and 80 multipliers, and a much larger number. Number of Qu A loss bar switch is required. In fact, all these huge resources
  • the present invention is intended to solve the above-described conventional problems, and is based on a predetermined DCT algorithm that has been conventionally developed, and is developed by focusing on the regularity of data flow in the DCT algorithm. Promotes resource assurance using the specially designed processing memory, thereby reducing the number of required components, reducing the function block area, reducing power consumption, and increasing the processing speed. Or to reduce the output latency.
  • the present invention is directed to a DCT processor used for performing a discrete cosine transform, a storage and processing device for performing palm staking on data, and a computing device for performing calculations according to a predetermined DCT algorithm
  • the data is looped a predetermined number of times between the storage / processing device and the computing device, and a result of the discrete cosine transform is obtained based on the data read from the computing device. It has a floor.
  • the present invention also provides a DCT processor used to execute a discrete cosine transform, comprising: a plurality of input units and a plurality of output units; and a plurality of data input through the plurality of input units. Output from the plurality of output units.
  • a plurality of input units and a plurality of output units connected to an output unit of the storage and processing device, wherein data input from the plurality of input units is specified.
  • a computing device that calculates in accordance with the DCT algorithm and outputs the data from the plurality of output units; and a plurality of inputs connected to the output unit of the computing device and a plurality of outputs connected to the input unit of the storage processing unit.
  • a storage device that stores a plurality of data output from an output unit of the computing device and outputs the data from the plurality of output units; provided between the storage device and the storage processing unit; A rearranging unit for rearranging the data from the storage device in a predetermined order; and a plurality of data output from an output unit of the storage device.
  • Storage device and parallel And a loop for performing a predetermined number of loops between them in these order, and obtaining a result of the discrete cosine transform based on the data read from the output unit of the storage device.
  • the present invention relates to a 32 point DCT processor for performing a discrete cosine transform on 32 data obtained by sampling at 32 sampling points;
  • a storage and processing device capable of inputting and outputting a total of 32 data, eight times at a time, a total of four times, and a total of thirty-two data at a time through the eight input parts.
  • the storage and processing device which outputs a total of 32 data sequentially written to a predetermined storage location in a predetermined order to the eight output units in a predetermined order; It has four input parts and four output parts respectively connected to four of the eight output parts of the storage and processing unit, and is inputted from the eight input parts.
  • Data is calculated four at a time according to the CGA-DCT algorithm and the four outputs And two output units respectively; and eight input units connected to a total of eight output units of the two calculation units and a total of eight input units of the storage and processing unit, respectively. It has eight connected output units, and writes a total of 32 data, eight times at a time, a total of 32 times, in a first-in first-out manner.
  • a storage device capable of reading the data wherein the storage device stores a total of 32 data in total of eight data output from each output unit of the computing device, a total of 32 data; And a rearrangement means provided between the storage device and the storage and processing device for rearranging data from the storage device in a predetermined order.
  • the above-described DCT processor further includes an input unit for inputting data from outside to inside the DCT processor, immediately before the storage processing unit, or between the storage-processing unit and the computing unit. Alternatively, it may be provided between the computing device and the storage device.
  • the storage processing unit does not change the association between the input data and the output data when writing the data to the predetermined storage location! / Operating in one of an operation mode and a second operation mode for changing the association between the input data and the output data, wherein the data from the input means is the first operation It may be processed in mode.
  • a total of 32 pieces of data processed by the storage and processing device operating in the first operation mode are sequentially processed by the calculation device and the storage device, and thereafter, the storage device After processing a total of 32 pieces of data read from the output unit of the storage unit by the rearranging unit, the storage / processing unit operating in the second operation mode, the calculation device, the storage device, And the rearranging means loops between them in this order, and obtains a result when the data is subjected to discrete cosine transform based on the data read from the output unit of the storage device at the time of the fourth loop. You may make it so.
  • the storage processor has a total of three two storage position location, the three two data, these 3 any two storage location They may be written and read one by one.
  • a write line and a read line are provided at each of the 32 storage locations, and the write line and the read line are wired perpendicularly to each other, and are shared when writing and reading data. It is not necessary.
  • the predetermined rearrangement may be performed by crossing a transmission line between the storage device and the storage / processing device.
  • a rearrangement device may be used to output a total of 32 data to the eight output units in a predetermined order.
  • the storage and processing device may be an 8 R / W memory circuit
  • the computing device may be a DCT circuit
  • the storage device may be a FIFO.
  • the rearrangement means may be provided in a storage / processing device.
  • the present invention is a storage and processing device used in a DCT processor used to execute a discrete cosine transform, wherein the data is looped a predetermined number of times with a calculation device that performs a calculation according to a predetermined DCT algorithm, It is characterized in that palmtation is performed on data so as to obtain a result of discrete cosine transform based on data read from a computing device.
  • the present invention is a storage and processing device used in a DCT processor used to execute a discrete cosine transform, wherein the storage processing device has a plurality of input units and a plurality of output units, Outputting a plurality of data input through a plurality of input units from the plurality of output units after performing palm tasting; the DCT processor further comprising: a plurality of data units connected to an output unit of the storage-processing device. And a plurality of output units. The data input from the plurality of input units is converted into a predetermined DCT.
  • a computing device that calculates according to an algorithm and outputs from the plurality of output units; a plurality of input units connected to the output unit of the computing device; and a plurality of output units connected to the input unit of the storage and processing device.
  • a storage device for storing a plurality of data output from an output unit of the computing device and outputting the data from the plurality of output units; provided between the storage device and the storage-processing device; Reordering means for reordering data from the device in a predetermined order; and a plurality of data output from an output unit of the storage device, the storage and processing device, the computing device,
  • the storage device and the rearranging unit loop a predetermined number of times between them in these order, and obtain a result of the discrete cosine transform based on the data read from the output unit of the storage device. It is characterized by There.
  • the present invention relates to a storage and processing device used in a 32 point DCT processor which performs a discrete cosine transform on 32 data obtained by sampling at 32 sampling points.
  • the storage and processing device has eight input units and eight output units, and can input and output 32 data in total 8 times at a time, a total of 32 times, A total of 32 data sequentially written to a predetermined storage location, eight times at a time through the eight input parts, a total of thirty-two data are output to the eight output parts in a predetermined order.
  • the DCT processor further comprises: four inputs and four outputs respectively connected to four of the eight outputs of the storage and processing device; CGA—DCT algorithm for data input from the above eight input units four at a time Accordingly, two computing devices that calculate and output from the four output units, respectively; eight input units respectively connected to a total of eight output units of the two computing devices, and the storage unit
  • the processor has eight output sections connected to a total of eight input sections, respectively, eight at a time for a total of four times, for a total of 32 data in a first-in first-out manner.
  • a storage device that can be written and read, wherein a total of 8 data output from each output unit of the computing device is output 4 times in total, and a total of 32 data is output.
  • the storage device which is provided between the storage device and the storage processing device, and rearranges the data from the storage device in a predetermined order; It is characterized by. BRIEF DESCRIPTION OF THE FIGURES
  • FIG. 1 is a block diagram of a DCT processor according to the present invention.
  • FIG. 2 is a diagram illustrating each function of a functional element of the DCT circuit.
  • FIG. 3 is a diagram showing a block diagram of the 8 R / W memory circuit.
  • FIG. 4 is a circuit diagram of the 8 RZW memory circuit.
  • Figure 5 is a diagram that visually shows the effect obtained by performing palmation.
  • FIG. 6 is a diagram showing a sequence flow of the discrete cosine conversion process.
  • FIG. 7 is a data flow graph showing a data flow of data generated by the discrete cosine transform process.
  • FIG. 1 shows a block diagram of the DCT processor 1 according to the first embodiment of the present invention.
  • This DCT processor 1 is capable of performing a discrete cosine transform on 32 sampling data obtained by sampling at 32 sampling points.
  • DCT processor The number of bits of sampling data is determined by the designer. 2003/008222 You can decide freely. For example, one word (16 bits) is used.
  • the DCT processor 1 includes two circuits (hereinafter, referred to as “DCT circuits”) 3 and 3 ′ that can perform calculations required for the discrete cosine transform in accordance with a predetermined DCT algorithm.
  • DCT circuits special-structured 8-read Z-write port SRAM memory circuit (hereinafter referred to as “8R / W memory circuit”) 5 developed by paying attention to the regularity of data flow in the algorithm used in the circuit.
  • DCT circuit 3 and the DCT circuit 3 ′ can be considered to be exactly the same.
  • the algorithm used in these DCT circuits 3, 3 is described here in particular in "Constant Geometry for DCT” published by Jakko Altola and David Akopian in 1999 and 2000. ⁇ Contemporary Geometry Algorithm for DCT (CGA-DCT) [4] ”(hereinafter referred to as“ CGA-DCT algorithm ”).
  • the 8 RZW memory circuit 5, the DCT circuits 3, 3 ', and the FIFO are connected to each other in a loop in this order. More specifically, the eight output sections 53 of the 8 R / W memory circuit 5 are connected to the input sections 31 of a total of eight DCT circuits 3, 3, and a total of eight DCT circuits 3, 3, 3.
  • the output section 33 of the FI FO 7 is connected to the eight input sections 71 of the FI FO 7, and the eight output sections 73 of the FI F 07 are connected to the eight input sections of the 8 R / W memory circuit 5, respectively. I have.
  • the data can be looped between them in a desired number of times in this order. In other words, the same processing can be repeatedly performed on the data a desired number of times.
  • the arrows in the figure indicate the direction in which data flows.
  • the data is Cross section (corresponds to “sorting means” in the claims) By 4 and 4 ′, or more specifically, by crossing the transmission line provided between them at two places, sorting of some data is performed ( (Replacement). By this arrangement, palm tasting becomes possible, which will be described later.
  • the DCT circuits 3 and 3 ' are each composed of six adder' subtracters 35a to f, two multipliers 36a and 36b, and two selectors (sel) 37a and 37b. , Two masks (msk) 38a, 38b, and one ROM39.
  • Four input units 31 and four output units 33 are provided for each of the DCT circuits 3 and 3 ′, so that each of the DCT circuits 3 and 3 ′ inputs four data at a time and Can be output.
  • the four data input from the input unit 31 of each of the DCT circuits 3, 3, are calculated according to the CGA-DCT algorithm, and then output as four data from the output unit 33. Become.
  • DCT circuits 3, 3 The configuration of DCT circuits 3, 3 is described in a paper by Jarmo Astola, David Akopian et al. It is the same as that described in April, but its composition is outlined below, but for details, see the above paper.
  • each of the DCT circuits 3, 3, and 3 shown in Fig. 1 realizes the functions of the functional elements of modes 0 to 2 shown in a) to c) of Fig. 2 with a single circuit. You can think of it as possible. Therefore, before explaining the DCT circuit of FIG. 1, first, each function of the functional element shown in FIG. 2 will be described.
  • the functional element in mode 0 consists of four adder'subtractors 35a-e and two multipliers 36a, 36b.
  • the functional element of mode 1 further includes one addition / subtraction unit 35 f in addition to these members, and the functional element of mode 2 further includes one addition / subtraction unit 35 f.
  • the number of additions and subtractors and multipliers provided in the mode 2 functional element is the same as that of the DCT circuits 3 and 3 'in Fig. 1, but the mode 2 functional element has As shown in the DCT circuits 3 and 3 'in FIG. 1, the selectors 37a and 37b, the masks 38a and 38b, and the ROM 39 are not provided. This is because these members are mainly used only for selecting the mode.
  • the AC obtained at the position A is multiplied by a coefficient d (n) corresponding to the value of n by the multiplier 36a, and then the output position is exchanged by the cross section 40d. Is multiplied by the coefficient d (n) by the multiplier 36b.
  • a + C, B + D, (A—C) X d (n), and (B— D) X d (n) is obtained.
  • the result of d (n) — (B + D) is A + C, B + D, (A-C) at each output A ',, ⁇ D' ,, X 2 d (n) — (A + C), (B—D) X 2 d (n)
  • One (B + D) is obtained.
  • the DCT circuits 3, 3 combine the functional elements of modes 1 to 3 described above with two selectors 37a, 37b, two masks 38a, 38b, and one ROM 39. By using this, it can be realized with one circuit.
  • the selectors 37a and 37b are respectively for selecting one of the two adder-subtracters 35b and 35d connected to them.
  • the mask 38a is used to send or not send a signal to the adder / subtractor 35e connected to it, and the mask 38b is used to send a signal to the subtractor 35f connected to it. belongs to.
  • the ROM 39 stores information necessary for controlling the selectors 37a and 37b and the masks 38a and 38b.
  • This information is of two tapes Le, i.e., are stored as coefficient table 4 1 a to the command table 4 1 b.
  • the coefficient table 4 la stores the calculation formula of the above equation 1). After obtaining the value of n to be used, each multiplier calculates a coefficient using this coefficient table 4 la.
  • the command table 41b stores a selector to be selected or a mask according to a mode to be selected.
  • the DCT circuits 3, 3, select which of the selectors 37a, 37b should be selected according to each mode based on the information of the command table 41b, or select one of the masks 38a, 38b. Know if you should choose
  • the command table 41b will be further described.
  • the processing units (not shown) of the DCT circuits 3 and 3 ′ operate based on the information in the command table 41 b, and select the selector 37 a using the adder / subtractor 35. b, 35 d to select the adder / subtractor 35 b, while the selector 37 b selects the adder / subtractor 35 b, 35 d to select the adder / subtractor 35 d And issues a command to those selectors 37a and 37b.
  • the part (not shown) is that the mask 38a is connected to the addition 'subtractor 35 e so as not to send the signal from the subtracter 35a, while the mask 38b is The adder / subtractor 35 f is instructed so as not to send the signal from the adder / subtractor 35 c to the adder / subtractor 35 f connected thereto.
  • the DCT circuits 3 and 3 when functioning as a mode 2 functional element, the DCT circuits 3 and 3 'operate in the same manner as in the mode 1 for the selector 37a, the selector 37b, and the mask 38a, and perform the operation for the mask 38b. , And instructs them to send the signal from the adder / subtractor 35c to the adder / subtractor 35f connected to it.
  • the DCT circuits 3 and 3 ′ are arranged such that the selector 37 a selects the addition / subtraction unit 35 d among the addition / subtraction units 35 b and 35 d.
  • the selector 37b issues a command to the adder / subtractor 35b to select the adder / subtractor 35b among the adder / subtractor 35d.
  • the DCT circuits 3 and 3 add the mask 38a to the adder / subtractor 35e connected to it.
  • the mask 38b is used to send the signal of the subtractor 35a.
  • the DCT circuits 3 and 3 ′ in FIG. 1 can realize all the functions of the functional elements in modes 1 to 3 in FIG.
  • the FI FO 7 is similar to a generally used FI FO, and is a storage device that can write and read data in a first-in first-out manner.
  • FI FO 7 here we use FI FO 7 with 8 x 4 debs.
  • the number of data that can be written and read at one time by this FIFO 7 is 8, and it is necessary to write 32 such 8 data 4 times in a row.
  • a total of 32 data can be read four times in a row.
  • a total of 32 data can be stored in the FIFO 7 at one time.
  • the purpose of providing the FIFO 7 is to temporarily store data, in other words, to delay the data to make the operation relatively slow, and to enable processing by the 8 R / W memory circuit 5. Therefore, if the operation of the 8R / W memory circuit 5 is sped up by the advance of technology, it is considered that the FIFO 7 is not always necessary.
  • the 8 RZW memory circuit 5 is a memory specially developed for the DCT processor 1 of the present invention. However, the 8 RZW memory circuit 5 does not simply function as a storage device, but has a main purpose of performing processing necessary for executing the discrete cosine transform, that is, performing permutation.
  • the structure of the R / W memory circuit is to reduce the number of components by sharing the various components (resources) conventionally used, in other words, to promote resource assurance. It can be said that.
  • the use of the 8 RZW memory circuit greatly reduces the number of components required for the processor, for example, the number of adders, subtractors, multipliers, and crossbar switches.
  • the data that can be input and output at one time by the 8 R / W memory circuit 5 is eight, similar to FIF07, and such eight data are consecutively output four times.
  • a total of 32 can be written (input), and a total of 32 can be output four times in a row. Further, a total of 32 data can be stored in (the memory of) the 8 R / W memory circuit 5 at a time.
  • FIG. 1 shows a block diagram of the 8 RZW memory circuit 5.
  • the 8 RZW memory circuit 5 of the present invention writes 32 memory blocks 0 to 31 (corresponding to “storage, position” in the claims) and these memory blocks 0 to 31 8 write lines 52 ah, for each of these memory blocks 0 to 31 to read data from 8 read lines 53 ah, each memory block 0 to 31 Eight transmission lines 54a-h for transmitting data and four crossbar switches 58a-d (corresponding to the "reordering device” in the claims) are provided.
  • the write lines 52a-h and the read lines 53a-h are connected to a write enable section and a read enable section, respectively.
  • FIG. 4 also shows an actual circuit diagram of the 8 R / W memory circuit 5 for reference.
  • the crossbar switches 58a-d are not shown in this figure.
  • WL 0-7 are on write lines 52a-h
  • RL 0-7 are on read lines 53a-h
  • (0)-(7) are on transmission lines 54a-h, respectively. Corresponding.
  • One data can be written to and read from each of the memory blocks 0 to 31.
  • Each of the memory blocks 0 to 31 is distinguished by a numeral of 0 to 31. These numbers can be said to indicate storage locations where data is stored.
  • block group 59a includes memory blocks 0, 16, 6, 22, 22, 8, 24, 14, 30.
  • the transmission lines 54 a to h are allocated to each block group 59 a to d by eight, and one to each memory block 0 to 31 in a certain direction (vertical direction in the drawing). ) Provided. Data output from the FIFO 70 and the like is transmitted through these transmission lines 54a to 54h.
  • the write lines 52 are provided so that two ff lines are assigned to each block group 59 and eight ff lines are assigned to each of the memory blocks 0 to 31. Each write line 52 intersects with four of the eight memory blocks in each block 59 in a direction orthogonal to the transmission lines 54a-h. These write lines 52 can be enabled two at a time by the operation of the write enable section 60. When a signal is present on the data transmission line 54 and the write line 52 is enabled, data is written to any of the memory blocks at the intersection of those lines. Each write line intersects four memory blocks, and since two write lines are enabled at a time, a total of eight data points can be written to any one memory block in one write. Will be written.
  • Eight read lines 53 a to h are provided for each block group 59 a to d in the same direction as the data transmission lines 54 a to h.
  • Each read line 53a-h intersects with eight memory blocks (two for one block group 59a-d), but does actually work during one read operation. Only one for each block gnore 59 a-d, and therefore only for a total of four memory blocks.
  • These read lines 53 a to h are enabled two at a time by the function of the read enable section 61, similarly to the write lines 52. It is the four memory blocks that each read line 53 actually acts during a single read operation, and two read lines are enabled at a time. As a result, a total of eight data items are read from one of the memory blocks in one read.
  • the line is not shared between writing and reading, and the writing line 52 and the reading line 53 are perpendicular to each other. Wired.
  • the crossbar switches 58 a to 58 d are used for appropriately rearranging the data read from each of the memory blocks 0 to 31 before outputting the data from the 8 RZW memory circuit 5.
  • eight data read by enabling the read line 53a and the read line 53e in other words, eight data read in the first phase [0], [15], [14], [1], [2], [13], [1 2, [3] are defined by the crossbar switches 58 a-d, [0], [1], [2], [3], Sorted in the order of [12], [13], [14], [15].
  • [n] (n is an integer from 0 to 31) is stored in a memory location n such as a memory block 0 to 31. Indicates the content (value) of the data that is
  • the first read of the owl, [0], [1], [2] ⁇ [3], [15], and [14] are enabled by enabling read line 53b and read line 53e, respectively.
  • [13], and [12] are read out and these —The data were sorted by crossbar switch 58 in the order [0], [1], [2], [3], [1 2], [13], [14], [15], Output from 8RZW memory circuit 5.
  • the second read by enabling read line 53a and read line 53f, [6], [7], [4], [5], [9], [8], [1 1], [10] are read out and these data are read by crossbar switch 58 [4], [5], [6], [7], [8], [9] , [10], and [11], and then output from the 8RZW memory circuit 5.
  • the third read by enabling read line 53d and read line g, [16], [17], [18], [19], respectively, [31], [30], [29], [28] are read, and these data are cross-switched 58 to [16], [17], [18],
  • the fourth read by enabling read line 53c and read line 53h, [22], [23],
  • [20], [21] and [25], [24], [27], [26] are read, and these data are cross-switched 58 to [20], [21], [22], After being rearranged in the order of [23], [24], [25], [26], [27], the data is output from the 8 R / W memory circuit 5.
  • the data can be output in a predetermined order. Furthermore, the order of the data output from the 8 R / W memory circuit 5 is determined based on the fact that the memory block 0 to 31 of the 8 RZW memory circuit 5 stores the data. You can control it.
  • Writing data to the memory blocks 0 to 31 of the RZW memory circuit 5 is performed externally from the DCT processor, for example, from a CPU (not shown), or in a loop inside the DCT processor. There are two cases in which this is performed via FIFO 7 or the like.
  • a means for inputting data from outside the DCT processor to the inside of the DCT processor for example, outside the DCT processor It is assumed that there is a signal line (not shown) for transmitting data from the RZW memory circuit 5 to the input unit 51.
  • These signal lines need only be electrically connected to the input section 51 of the 8 R / W memory circuit 5 between the cross sections 4, 4 (and FIFO 5) and the 8 RZW memory circuit 5.
  • a crossing point between the dashed-dotted line A and the signal line 24 may be indirectly connected to them via a selecting means such as a selector provided at the same.
  • a signal line for external data and a loop-shaped signal line 24 are both connected to the selecting means, so that only one of the signal lines is selected.
  • the operation of the RZW memory circuit differs between processing data from outside the DCT processor, that is, data from input means, and processing data from inside the DCT processor.
  • first operation mode corresponding to the “first operation mode” in the claims
  • second operation mode corresponds to the “second operation mode” of the above.
  • the DCT processor After writing the data from the FI FO) to the 8 R / W memory circuit, the data is output.
  • the selection means in the first operation mode, a signal line for external data is selected so that data from the CPU or the like is transmitted to the 8 R / W memory circuit.
  • the selection means in the second operation mode, the selection means is appropriately switched so that the signal line 24 is selected and the data from the FIFO is transmitted to the 8R / W memory circuit.
  • the data comes from the input means (not shown) and therefore does not go through the cross sections 4, 4 '(see Fig. 1) and also changes the data mapping Do not write to 8 RZW memory circuit.
  • the data is from the FIFO 5, and after the data is rearranged in the cross sections 4 and 4 ', the correspondence of the data is changed so that 8 R / W Write to memory.
  • palm output is performed on data output from the 8RZW memory circuit.
  • the data write position follows the numbers 0 to 31 assigned to the memory blocks 0 to 31. That is, data [0] corresponds to memory block 0, [1] corresponds to memory block 1, [2] corresponds to memory block 2, and so on.
  • the data read in the first phase is [0], [1], [2], [3], [12], [13] before writing. , [14], [15] correspond to data [0],
  • [1], [2], [3], [12], [13], [14], [15], and the data read in the second phase is [4], [5] before writing.
  • [6], [7], [8], [9], [10], [11] correspond to [4], [5], [6], [7], [8], [9], [10], [11], and the data read by the third fuse is [16], [ 17],
  • the order of data to be read is simply controlled.
  • the data is rearranged by the cross sections 4, 4 (see FIG. 1) provided between the FIFO and the 8RZW memory circuit, the data is It is written to the 8 RZW memory so that the association is changed.
  • the data write position does not always follow the numbers 0 to 31 assigned to each memory block. Therefore, in the second operation mode, the order of the data to be read is controlled after the association of the data is changed, that is, after the data is subjected to palm tasting.
  • Figure 5 provides a visual representation of the benefits of running a palm tent.
  • the numbers not surrounded by [] are the memory block numbers 0 to 31.
  • the original data [0] to [31] shown on the left side were converted to [0]
  • the first phase data [0], [1], [2], [3], [1 2], [1 3], [1 4], [1 5] before the palmation is First, [0], [2], [1], [3], [1 2], [1 4], [1 3], [1 5] are sorted in the order of the cross section 4, 4 '( (See Figure 3 at 56.)
  • the write lines 52a and 52d the memory blocks 0, 1, 16 and 17 and 6, 7, 22 and 23 are written, respectively.
  • the data of the second phase [4], [5], [6], [7], [8], [9], [10], [11] before the palm tasting are First, [4], [6], [5], [7], [8], [10], [9], and [11] are rearranged by the cross sections 4, 4 '(Fig. 3 Then, by enabling the write lines 52e, 52h, the memory blocks 2, 3, 18, 19, and 4, 5, 20, 21 are written to these memories, respectively. The blocks will be read out as [2], [3], [18], [19], [4], [5], [20], [21].
  • FIG. 6 shows a DCT processor 1 according to the present invention and its peripheral devices (not shown). ), And FIG. 7 shows a data flow graph representing a data flow of data generated by this processing.
  • the numbers of the steps (ST) shown at the top of FIG. 7 correspond to those of FIG.
  • the processing performed by the DCT processor 1 of the present invention is only Steps 3 to 10 among Steps 1 to 11 shown in FIG.
  • the remaining steps 1, 2, and 11 are to be performed by peripheral devices such as a CPU.
  • peripheral devices such as a CPU.
  • a peripheral device that performs the processing of steps 1, 2, and 11 in addition to the processing by the DCT processor 1 of the present invention is required.
  • these processes may be performed by the DCT processor 1 of the present invention by a design change.
  • step 1 data to be subjected to discrete cosine transform is sampled at 32 sampling points to obtain 32 sampled data [0] to [31].
  • step 2 these sampling data are rearranged in the order shown in FIG.
  • This rearrangement is a process necessary for appropriately performing the subsequent processes.
  • the data is rearranged in the order of [0], [1], [31], [30], and so on.
  • step 3 these data are operated in the first operation mode.
  • the writing here is performed by, for example, a CPU or the like, and is performed by FIF05 (see FIG. 1).
  • each data is written to a memory block corresponding to each of the numbers [0], [1], [31], [30],. That is, [0] is the memory block
  • step 4 these data are processed by two DCT circuits 3, 3 '(see FIG. 1) (ST4).
  • the eight output sections of the 8RZW memory circuit 5 are connected to the four input sections of the two DCT circuits 3 and 3 ', respectively, so that 8 [0], [1], [2], and [3] of the data read in the first phase by the RZW memory circuit 5 are DCT circuits 3, while [1 2] and [1 3] , [14], [15] are processed by the DCT circuit 3,.
  • [4], [5], [6], and [7] of the data read in the second phase are the DCT circuit 3, while [8], [9], [10], [11] is processed by the DCT circuit 3,.
  • [16], [17], [18], [19] of the data read in the third phase are the DCT circuit 3, while [28],
  • [29], [30], and [31] are processed by the DCT circuit 3 '.
  • [20], [21], [22], and [23] of the data read in the fourth phase are the DCT circuit 3, while [24], [25], and [26] ] And [27] are processed by the DCT circuit 3 '.
  • the data range processed by one DCT circuit 3, 3 is boxed.
  • four data are processed in each square.
  • ⁇ n> (n is an integer from 1 to 4) in each square means that those data are processed in phases 1 to 4, respectively.
  • two squares with ⁇ 2> mean that they are processed in the second phase, and the data processed at that time is [4] to [7] or [8] to [1] 1], which means that they are processed by DCT circuit 3 and DCT circuit 3, respectively.
  • the two squares with ⁇ 3> indicate that they are processed in the third phase, and the data processed at that time is [16] ⁇ ! : 1 9] or [27] to [31], respectively, 0 ⁇ 1: circuits 3 and 0. This means that the signal is processed by the circuit 3.
  • the mode (mode) n (n is an integer from 0 to 2) in each square represents the mode used by each DCT circuit 3, 3, and d (n) (n is 1 to Integers up to 31) represent the coefficients of the multiplication used in the multipliers 36a and 36b (see FIG. 1) of each DCT circuit 3, 3 '.
  • the DCT circuit 3 functions as a mode 0 functional element (see a in Fig. 2), and the multiplier 36a of the functional element in mode 0 uses a coefficient d (16).
  • the multiplier 36b uses a coefficient of d (24).
  • the DCT circuit 3 functions as a mode 0 functional element (see a in FIG. 2).
  • step 5 the eight data processed by each of the DCT circuits 3, 3, and 3 are sequentially written to FIFO7 (see FIG. 1), and after all 32 data have been written, again Read sequentially.
  • the data read at this time are [0], [1], [2], [3], [1 2], [1 3], [1 4], [15],
  • the second phase [4], [5], [6], [7],
  • step 6 the data is rearranged by the cross sections 4, 4, (see FIG. 1). Due to this rearrangement, the data from the FIFO becomes in the order shown in 56 in FIG. That is, the first phase data is [0], [2], [1], [3], [1 2], [14], [13], [15], and the second phase data is [4], [6], [5], [7], [8], [10], [9], [1 1], and the data of the third fuse are [16], [18], [ 1 7], [1 9], [28],
  • Phase 4 data includes [20], [22],
  • step 7 the data read from the FI F07 is returned to the RZW memory circuit 5 (FIG. 1) that operates in the second operation mode (the circuit operation is looped). ), And are written and read there.
  • palm tasting is performed, and the first phase data [0], [1], [2], [3], [12], [13], [14], [15] [0], [16],
  • step 8 the data subjected to palm tasting is processed again by the DCT circuits 3, 3,. This process is similar to that described in step 4.
  • step 9 the data from the DCT circuits 3, 3, 3 is processed again by the FIFO 7. This process is similar to that described in step 5.
  • step 10 the rearrangement is performed again by the cross sections 4, 4,... (See FIG. 1). This process is similar to that described in step 6.
  • Step 7 to Step 10 is repeated three more times (in terms of circuit operation, "loop").
  • the processing of steps 7 to 10 is repeated a total of four times ( ⁇ , as apparent from the following description and Fig. 6, the processing of step 10 in the fourth noraping is It is irrelevant and may be omitted).
  • step 11 at the end of the fourth loop, the data obtained after the processing of step 9, that is, the data from FIF07 (see Fig. 1), [0], [4],
  • the input means (not shown) for inputting data from the outside to the inside of the DCT processor is provided between the 8 R / W memory circuit 5 and the DCT circuits 3 and 3 '(one point, line B and At the intersection with the signal line 24).
  • the second embodiment unlike the first embodiment, data from outside the DCT processor is directly applied to the DCT circuits 3 and 3 ′ without passing through the 8RZW memory circuit 5. Will be. However, in this case as well, the data provided to the DCT circuits 3, 3 is the same as the data passed through the 8 R / W memory circuit 5, ie, the 8 RZW memory of the first operation mode. It must be the same as the data processed by the circuit. Therefore, in the second embodiment, it is assumed that data is processed in advance by a CPU or the like.
  • the second embodiment it is not necessary to process the 8 RZW memory circuit 5 in the first operation mode. In other words, in the second embodiment, it is only necessary to operate the 8R memory circuit 5 only in the above-described second operation mode.
  • the 8 RZW memory 5 can be operated in a single operation mode ( Only the operation in the second operation mode) is required, so that the control and configuration of the 8 RZW memory circuit can be simplified.
  • the control and configuration of the 8 R / W memory circuit 5 are slightly more complicated than in the second embodiment, the processing performed by the CPU or the like can be reduced. This is advantageous.
  • the input means is provided between the DCT circuits 3, 3, and FI F07 (at the intersection of the dashed line C and the signal line 24).
  • data from outside the DCT processor is: 8 This is directly applied to FIF # 7 without going through RZW memory circuit 5 or DCT circuits 3, 3 '.
  • the data provided to the FIFO 5 is the same as the data via the 8 RZW memory circuit 5 and the DCT circuits 3 and 3 ′, in other words, the 8 RZW in the first operation mode. It must be the same as the data processed by the memory circuit and the DC ⁇ circuits 3, 3. This processing can be performed by a CPU or the like.
  • the third embodiment it is not necessary to cause the 8RZW memory circuit 5 to process in the first operation mode, as in the second embodiment. Therefore, it has the same advantages and disadvantages as those described in the second embodiment.
  • the number of arithmetic units required to calculate one sampling point in the table means the arithmetic units shown in FIG. 6, that is, the number of additions, subtracters and multipliers. .
  • eight DCT circuits are provided in each of the DCT circuits 3 and 3 ', so that the total is sixteen.
  • the “number of intermediate output values generated in each cycle” is the number of values that can be generated by one calculation by the DCT circuit. Since the calculation is divided into four points, the number of points is eight.
  • the number of register files (data storage devices) means the number of devices for storing the calculation results, and in the present invention, they are FIF 07 and 8 R / W memory circuit 5. From two.
  • the “estimated core area of DCT” is the area required for DCT processor 1.
  • “Output latency” is the average time to obtain an output result.
  • the DCT processor 1 of the present invention suffices for about half the area required for a processor based on the Lippen algorithm. Also, output latency
  • the DCT processor of the present invention suffices about 1 Z4 that of Lippen's processor.
  • the DCT processor of the present invention exhibits excellent performance.
  • the cross portion is used to rearrange the data from the FIFO, but for example, a cross bar switch may be used.
  • the cross section may be provided in the output section of the FIFO or the input section of the 8 RZW memory circuit (inside the 8 RZW memory circuit). All that is required is that the rearrangement must be performed before writing to the memory block of the 8 RZW memory circuit so that the palming by the 8 R / W memory circuit is performed.
  • the resource sharing is promoted by the 8 RZW memory circuit, thereby reducing the complexity of signal partitioning (replacement), thereby reducing the required number of members and the function block.
  • the area can be reduced, the power consumption can be reduced, the processing speed can be increased, or the output latency can be reduced.

Abstract

従来開発された所定のDCTアルゴリズムをベースとして、特殊構造の処理メモリを用いることによってリソースシェアリングを促進させ、これにより、必要とされる部材数の減少、ファンクションブロックエリアの減少、消費電力の減少、更には、処理スピードの高速化、あるいは、出力レイテンシイの減少を図る。本装置は、離散コサイン変換を実行するために用いるDCTプロセッサであって、データにパームテーションを行う記憶・処理手段と、データを所定のDCTアルゴリズムに従って計算し出力する計算手段と、を備え、記憶・処理手段と計算手段との間でデータを所定回数ループさせ、計算手段の出力部から読み出されるデータに基づいて離散コサイン変換の結果を得る。

Description

明細書 離散コサイン変換 (DCT) を実行するために用いる DCTプロセッサ
技術分野
本発明は、 離散コサイン変換 (以下、 「DCT」 ) を実行するために用いる D CTプロセッサに関する。 背景技術
離散コサイン変換は、 時間軸に沿った値として表されたデータを、 周波数成分 に分割されたデ一タに変換するためのものである。 離散コサイン変換を実現する DCTアルゴリズムは、 MP EGや MP 3に代表される画像処理や周波数のサブ バンドフィルタ等幅広レ、用途で利用されている。
DCTアルゴリズムを実行する DCTプロセッサには、 一般に、 多数の加算 - 減算器や乗算器、 膨大な数のクロスバースィッチ等が必要となる。 必要とされる 部材の数は、 サンプリングポイントが増えるに従って急激に増加する。 その主な 原因は、 データにパームテーシヨン (置き換え) を行うことの複雑さにある。 明らかなように、 部材の増加は、 DCTプロセッサのファンクションブロック エリアを増大させるとともに、 周辺ロジックの配線による消費電力を増大させ、 また、 周辺ロジックの最大配線長を増大させ、 更には、 プロセッサの処理スピー ドを低下させ出力レイテンシィの増加を招く。
例えば、 従来の DCTアルゴリズムの代表的なものとして、 LEEのアルゴリ ズムと呼ばれるものがある。 この L EEのアルゴリズムを実行する DCTプロセ ッサを用いて、 32個のサンプリングポイントで離散コサイン変換を実行するに は、 少なくとも 273個の加算 .減算器と 80個の乗算器と、 更に膨大な数のク ロスバースイッチが必要となる。 実際上、 このような膨大な数のリソース全てを
L S Iに直接に配置することは非常に困難であり、 また、 そのような膨大な数の 部材によって引き起こされる出力レイテンシィは重大な問題となる。
今日知られている D C Tプロセッサの中で最も優れているのは、 この L E Eの アルゴリズムを利用して Lippen P. E. R等によって開発された 「マルチ 'フラクシ ョン ·プロセッシンク ·ュニット (Multi Fraction Processing Unit) 」 と % られている。 し力 しな力 Sら、 このプロセッサでさえ、 パームテーシヨンの複雑さ 故に多数の部材が必要とされ、 未だに上記の問題を解決したものとは言えない。 発明の開示
本発明は、 上述した従来の問題点を解決しょうとするものであり、 従来開発さ れた所定の D C Tアルゴリズムをべースとし、 且つ、 この D C Tアルゴリズムに おけるデータフローの規則性 着目して開発された特殊構造の処理メモリを用い てリソースシュアリングを促進させ、 これによつて、 必要とされる部材数の減少、 ファンクションプロックエリアの減少、 消費電力の減少、 更には、 処理スピード の高速化、 あるいは、 出力レイテンシィの減少を図るものである。
上記の目的を達成するために、 本努明は、 離散コサイン変換を実行するために 用いる D C Tプロセッサにおいて、 データにパームテーシヨンを行う記憶 ·処理 装置と、 所定の D C Tアルゴリズムに従って計算を行う計算装置と、 を備え、 前 記記憶 ·処理装置と前記計算装置との間でデータを所定回数ループさせ、 前記計 算装置から読み出されたデータに基づいて離散コサイン変換の結果を求めること を特 ί敷としている。
また、 本発明は、 離散コサイン変換を実行するために用いる D C Tプロセッサ において、 複数の入力部と複数の出力部とを有し、 前記複数の入力部を通じて入 力される複数のデータにパームテーシヨンを行った後に前記複数の出力部から出 力する、 前記記憶 ·処理装置と ;前記記憶 ·処理装置の出力部に接続された複数 の入力部と複数の出力部とを有し、 前記複数の入力部から入力されたデータを所 定の D C Tアルゴリズムに従つて計算し前記複数の出力部から出力する計算装置 と ; 前記計算装置の出力部に接続された複数の入力部と前記記憶'処理装置の入 力部に接続された複数の出力部とを有し、 前記計算装置の出力部から出力された 複数のデータを記憶し前記複数の出力部から出力する記憶装置と ;前記記憶装置 と前記記憶 ·処理装置との間に設けられ、 前記記憶装置からのデータを所定の順 番に並ぴ替える、 並び替え手段と;を備え、 前記記憶装置の出力部から出力され た複数のデータを、 前記記憶 ·処理装置、 前記計算装置、 前記記憶装置、 及び前 記並ぴ替え手段で、 これらの順にそれらの間を所定回数ループさせ、 前記記憶装 置の出力部から読み出されたデータに基づいて離散コサイン変換の結果を求める ことを特徴としている。
更に、 本発明は、 3 2個のサンプリングポイントでサンプリングすることによ つて得られた 3 2個のデータに対して離散コサイン変換を行う 3 2ポイント D C Tプロセッサにおいて; 8個の入力部と 8個の出力部とを有し、 一度に 8個ずつ 計 4回、 計 3 2個のデータを入力し且つ出力することができる、 記憶 ·処理装置 であって、 前記 8個の入力部を通じて一度に 8個ずつ計 4回、 順次に所定の記憶 位置に書き込まれた計 3 2個のデータを前記 8個の出力部に所定の順番で出力す る、 前記記憶 ·処理装置と ;各々が、 前記記憶 ·処理装置の 8個の出力部のうち の 4個の出力部にそれぞれ接続された 4個の入力部と 4個の出力部とを有し、 前 記 8個の入力部から入力されたデータを一度に 4個ずつ C G A— D C Tァルゴリ ズムに従って計算し、 前記 4個の出力部からそれぞれ出力する、 2個の計算装置 と ; 前記 2個の計算装置の計 8個の出力部にそれぞれ接続された 8個の入力部と 前記記憶 ·処理装置の計 8個の入力部にそれぞれ接続された 8個の出力部とを有 し、 一度に 8個ずつ計 4回、 計 3 2個のデータを先入れ先出し方式で書き込み且 つ読み出すことができる、 記憶装置であって、 前記計算装置の各出力部から出力 された計 8個のデータを計 4回、 計 3 2個のデータを記憶する、 前記記憶装置と ;前記記憶装置と前記記憶 ·処理装置との間に設けられ、 前記記憶装置からのデ ータを所定の順番に並び替える、 並ぴ替え手段と ;を備えることを特徴としてい る。
上記の D C Tプロセッサには、 更に、 前記 D C Tプロセッサの外部から内部に データを入力する入力手段が、 前記記憶'処理装置の直前に、 あるいは、 前記記 憶 -処理装置と前記計算装置の間に、 あるいは、 前記計算装置と前記記憶装置の 間に設けられていてもよい。
上記の D C Tプロセッサにおいて、 前記記憶'処理装置は、 前記データを前記 所定の記憶位置に書き込む際、 前記入力されるデータと前記出力されるデータと の対応付けを変更しな!/、第 1の動作モードと、 前記入力されるデータと前記出力 されるデータとの対応付けを変更する第 2の動作モードのいずれかで動作するも のであって、 前記入力手段からのデータは前記第 1の動作モードで処理されるも のであってもよい。
上記の D C Tプロセッサにおいて、 前記第 1の動作モードで動作する記憶 ·処 理装置で処理された計 3 2個のデータを、 前記計算装置、 前記記憶装置で順に処 理し、 その後、 前記記憶装置の出力部から読み出された計 3 2個のデータを、 前 記並び替え手段で処理した後に、 前記第 2の動作モードで動作する前記記憶 ·処 理装置、 前記計算装置、 前記記憶装置、 及び前記並び替え手段で、 これらの順に それらの間をループさせ、 4回目のループ時に前記記憶装置の出力部から読み出 されたデータに基づいて、 前記データを離散コサイン変換したときの結果を求め るようにしてもよい。
上記の D C Tプロセッサにおレ、て、 前記記憶 ·処理装置は、 計 3 2個の記憶位 置を有しており、 前記 3 2個のデータは、 これら 3 2個のいずれかの記憶位置に 1つずつ書き込み且つ読み出されるものであってもよい。
上記の DCTプロセッサにおいて、 前記 32個の記憶位置の各々に書き込みラ インと読み出しラインが設けられており、 これら書き込みラインと読み出しライ ンは互いに垂直に配線され、 データの'書き込み及び読み出し時に共用されなくと もよい。
上記の DCTプロセッサにおいて、 前記所定の並び替えは、 前記記憶装置と前 記記憶 ·処理装置との間の伝送線をクロスさせることによって行ってもよい。 上記の DCTプロセッサにおいて、 計 32個のデータを前記 8個の出力部に所 定の順番で出力するために並び替え装置を用いてもよい。
上記の DC Tプロセッサにおいて、 前記記憶 ·処理装置は 8 R/Wメモリ回路 であり、 前記計算装置は DC T回路であり、 前記記憶装置は F I FOであっても よい。
上記の DC Tプロセッサにおいて、 前記並び替え手段は記憶 ·処理装置に設け られていてもよい。
また、 本発明は、 離散コサイン変換を実行するために用いる DCTプロセッサ で使用する記憶 ·処理装置であって、 所定の DCTアルゴリズムに従って計算を 行う計算装置との間でデータを所定回数ループさせ、 前記計算装置から読み出さ れたデータに基づいて離散コサイン変換の結果を求めるようにデータにパームテ ーションを行うことを特徴としている。
更に、 本発明は、 離散コサイン変換を実行するために用いる DCTプロセッサ で使用する記憶 ·処理装置であって、 該記憶 '処理装置は、 複数の入力部と複数 の出力部とを有し、 前記複数の入力部を通じて入力される複数のデータにパーム テーシヨンを行った後に前記複数の出力部から出力するものであり ;前記 DCT プロセッサは、 更に、 前記記憶-処理装置の出力部に接続されこ複数の入力部と 複数の出力部とを有し、 前記複数の入力部から入力されたデータを所定の DCT アルゴリズムに従って計算し前記複数の出力部から出力する計算装置と;前記計 算装置の出力部に接続された複数の入力部と前記記憶 ·処理装置の入力部に接続 された複数の出力部とを有し、 前記計算装置の出力部から出力された複数のデー タを記憶し前記複数の出力部から出力する記憶装置と ;前記記憶装置と前記記憶 -処理装置との間に設けられ、 前記記憶装置からのデータを所定の順番に並ぴ替 える、 並ぴ替え手段と;を備え、 前記記憶装置の出力部から出力された複数のデ ータを、 前記記憶 ·処理装置、 前記計算装置、 前記記憶装置、 及ぴ前記並び替え 手段で、 これらの順にそれらの間を所定回数ループさせ、 前記記憶装置の出力部 から読み出されたデータに基づレ、て離散コサイン変換の結果を求めることを特徴 としている。
更に、 本発明は、 3 2個のサンプリングポィントでサンプリングすることによ つて得られた 3 2個のデータに対して離散コサイン変換を行う 3 2ポイント D C Tプロセッサで使用する記憶.処理装置であって、 該記憶■処理装置は、 8個の 入力部と 8個の出力部とを有し、 一度に 8個ずつ計 4回、 計 3 2個のデータを入 力し且つ出力することができ、 前記 8個の入力部を通じて一度に 8個ずつ計 4回、 順次に所定の記憶位置に書き込まれた計 3 2個のデータを前記 8個の出力部に所 定の順番で出力するものであり ;前記 D C Tプロセッサは、 更に、 各々力 前記 記憶 ·処理装置の 8個の出力部のうちの 4個の出力部にそれぞれ接続された 4個 の入力部と 4個の出力部とを有し、 前記 8個の入力部から入力されたデータを一 度に 4個ずつ C G A— D C Tァルゴリズムに従つて計算し、 前記 4個の出力部か らそれぞれ出力する、 2個の計算装置と ;前記 2個の計算装置の計 8個の出力部 にそれぞれ接続された 8個の入力部と前記記憶 ·処理装置の計 8個の入力部にそ れぞれ接続された 8個の出力部とを有し、 一度に 8個ずつ計 4回、.計 3 2個のデ ータを先入れ先出し方式で書き込み且つ読み出すことができる、 記憶装置であつ て、 前記計算装置の各出力部から出力された計 8個のデータを計 4回、 計 3 2個 のデータを記憶する、 前記記憶装置と ;前記記憶装置と前記記憶■処理装置との 間に設けられ、 前記記憶装置からのデータを所定の順番に並び替える、 並ぴ替え 手段と ;を備えることを特徴としている。 図面の簡単な説明
図 1は、 本発明による DCTプロセッサのプロック図である。
図 2は、 DCT回路の機能素子の各機能を説明する図である。
図 3は、 8 R/Wメモリ回路のプロック図を示す図である。
図 4は、 8 RZWメモリ回路の回路図である。
図 5は、 パームテーションを実行することによって得られる効果を視覚的に示 した図である。
図 6は、 離散コサイン変换処理のシーケンスフローを示す図である。
図 7は、 離散コサイン変換処理によって生じるデータのデータフローを表すデ 一タフローグラフである。 発明を実施するための最良の形態
A. 第 1の実施形態 '
1. DCTプロセッサの構成
1 - 1. 全体構成
図 1に、 本発明の第 1の実施形態による DCTプロセッサ 1のプロック図を示 す。
この DCTプロセッサ 1は、 特に、 3 2個のサンプリングポイントでサンプリ ングすることによって得られた 3 2個のサンプリングデータに対して離散コサイ ン変換を行うことができる、 3 2ポイント DCTプロセッサ (以下、 「DCTプ ロセッサ」 ) 1である。 尚、 サンプリングデータを何ビットにするかは設計者が 2003/008222 自由に決定できる。 例えば、 1ワード (16ビット) とする等の如くである。
DCTプロセッサ 1は、 所定の DC Tアルゴリズムに従って離散コサイン変換 に必要な計算を行うことができる並列に並んだ 2個の回路 (以下、 それぞれ「D CT回路」 ) 3、 3 ' と、 この DC T回路で使用されるアルゴリズムにおけるデ 一タフローの規則性に着目して開発された特殊構造の 8読み出し Z書き込みポ一 ト SRAMメモリ回路 (以下、 「8R/Wメモリ回路」 ) 5 (請求項中の 「記憶 '処理装置」 に対応) と、 8ワード X 4デプス (depth) F I FO (先入れ先出 し) バッファ (以下、 「F I FO」 ) (請求項中の 「記憶装置」 に対応) 7から 成る。
尚、 DCT回路 3と DCT回路 3 ' は、 全く同じものであると考えて良い。 こ れらの DCT回路 3、 3, で使用されているアルゴリズムは、 ここでは特に 1 9 99年と 2000年に Jakko Al tolaや David Akopian等によって発表された 「D CTのためのコンスタント ·ジオメ トリ ·ァノレゴリズム (Constant Geometry Al gorithm for DCT (CGA-DCT)) [4] 」 (以下、 「C G A— D C Tアルゴリズム 」 ) とする。
図 1から明らかなように、 これら 8 RZWメモリ回路 5、 DCT回路 3、 3 ' 、 及び F I FOは、 これらの順に互いにループ状に接続されている。 更に言えば、 8 R/Wメモリ回路 5の 8個の出力部 53は、 計 8個の DC T回路 3、 3, の入 力部 31に、 また、 計 8個の DCT回路 3、 3, の出力部 33は、 F I FO 7の 8個の入力部 71に、 更に、 F I F07の 8個の出力部 73は、 8 R/Wメモリ 回路 5の 8個の入力部に、 それぞれ接続されている。 この結果、 データをこれら の間でこれらの順に所望の回数だけループさせることができる、 換言すれば、 デ ータに同じ処理を所望の回数だけ繰り返し行うことができる。
尚、 図中の矢印はデータが流れる方向を示すものである。 図から明らかなよう に、 特に、 F I F07から 8RZWメモリ回路 5に伝達されるとき、 データは、 クロス部 (請求項中の 「並び替え手段」 に対応) 4、 4 ' によって、 更に言えば、 それらの間に設けた伝送線を 2ケ所でクロスさせることによって、 一部のデータ について並び替え (入れ換え) が行われることになつている。 この並ぴ えによ つて、 パームテーシヨンが可能になるのであるが、 これについては後述する。
1 - 2. DCT回路
<概要 > '
DCT回路 3、 3' は各々、 6個の加算 '減算器 3 5 a〜f と、 2個の乗算器 3 6 a, 3 6 b、 2個のセレクタ (s e l ) 3 7 a、 3 7 b、 2 固のマスク (m s k) 3 8 a, 3 8 b、 及び 1個の ROM3 9から成る。 入力部 3 1と出力部 3 3は各 DC T回路 3、 3 ' にそれぞれ 4個ずつ設けられており、 従って、 各 DC T回路 3、 3 ' によって、 データを一度に 4個ずつ入力し且つ出力することがで きる。 各 DCT回路 3、 3, の入力部 3 1から入力される 4個のデータは、 CG A— DCTアルゴリズムに従って計算され、 その後、 出力部 3 3力 ら 4個のデー タとして出力されることになる。
DCT回路 3、 3, の構成は、 Jarmo Astola、 David Akopian等による論文 「A rchitecture-oriented regular algorithms for discrete sine and cosince tr ansformsj IEEE Trans. Signal Processing Vol.47. ppll09~1124、 1 9 9 9年 4月に記載されているものと同じである。 以下にその構成を概説するが、 詳細に ついては上記論文を参照のこと。
<各機能素子の構成 >
図 1に示した各 DC T回路 3、 3, は、 図 2の a) 〜c) にそれぞれ示したモ ード (mo d e) 0〜 2の機能素子の各機能を 1個の回路で実現可能としたもの と考えて良い。 そこで、 図 1の DCT回路を説明する前に、 先ず、 図 2に示した 機能素子の各機能を説明する。 図 2から明らかなように、 モード 0の機能素子は、 4個の加算 '減算器 35 a 〜eと 2個の乗算 36 a、 36 b力、ら成る。 モード 1の機能素子は、 これらの 部材に加えて更に、 1個の加算■減算器 35 f を有し、 モード 2の機能素子は更 に、 1個の加算 .減算器 35 f をも有する。 これより明らかなように、 モード 2 の機能素子に設けられた加算 '減算器や乗算器の数は、 図 1の DCT回路 3、 3 ' のそれと同じであるが、 モード 2の機能素子には、 図 1の DC T回路 3、 3' のように、 セレクタ 37 a、 37 bや、 マスク 38 a、 38 b, ROM 39は設 けられていない。 これらの部材は、 主として、 モードを選択するためだけに使用 される部材だからである。
尚、 モード 0〜モード 2の各機能素子に設けられた加算 ·減算器のうち、 負の 記号 (一) が付されているもの 35 b、 35 d、 35 f は減算器として機能し、 何も記号が付されていないもの 35 a.、 35 c、 35 eは加算器として機能する。 また、 各機能素子の各乗算器の上部に記載された記号 d (n) あるいは 2 d (n ) (2X d (n) の意味である) は、 nの値によって定まる、 乗算で使用され る係数を示すものである。 具体的には、 以下の 3種類の式から成る式 (以下、 「 式 1」 ) によって計算される係数である。
① d (1) -7" (0. 5)
② d (2 i ) = ~ (0. 5 (1 + d ( i ) )
③ d (2 i + 1) = (0. 5 (1-d (i ) ) )
(伹し、 ここで i = 1/2、 2/2、 3/2, •••n/2 (nは整数) ) 上の式 1) において、 例えば n = 2であれば、 ②の式を用いて、 乗算で使用さ れる係数は d (2) = (0. 5 (1 +d (1) ) =f (0. 5 (0. 5) ) である。 尚、 nの値は予め決定されているものであるが、 これについては 後述する。
0 ぐ各機能素子の動作 >
図 2の a ) に示したモード 0の幾能素子の動作は以下の通りである。
機能素子の 4個の各入力部 31にそれぞれ、 データ A〜Dの値が入力されたと すると、 位置ァにおいては、 データ Aと、 クロス部 40 aとクロス部 40 bを介 して伝達されたデータ Cとが、 加算 ·減算器 35 aによって加算されるため A + Cが得られ、 一方、 位置ィにおいては、 クロス部 40 aを介して伝達されたデー タ Cと、 クロス部 40 bを介して伝達されたデータ Aとが、 加算 '減算器 35 b によって減算されるため A— Cが得られる。
同様に、 位置ゥにおいては、 クロス部 40 aを介して伝達されたデータ Bとク ロス部 40 cを介して伝達されたデータ Dと力 加算 .減算器 35 cによって加 算されるため B + Dが得られ、 一方、 位置ェにおいては、 クロス部 40 aとクロ ス部 40 cを介して伝達されたデータ Bと、 Dと力 加算 ·減算器 35 dによつ て減算されるため、 B— Dが得られる。
更に、 位置ィにおいて得られた A—Cは、 乗算器 36 aによって nの値に応じ た係数 d (n) が掛算された後に、 クロス部 40 dによって出力位置が入れ換え られ、 また、 位置ェにおいて得られた B—Dは、 乗算器 36 bによって係数 d ( n) が掛算される。
以上より、 モード 0の機能素子によれば、 4個の各出力 A ' 〜D, においてそ れぞれ、 A+C、 B+D、 (A— C) X d (n) 、 (B— D) X d (n) とい う結果が得られる。 同様に、 モード 1の機能素子によれば、 各出力 A''〜D "に おいて A+C:、 B + D、 (A—C) X d (n) 、 (B—D) X 2 d (n) — ( B + D) という結果が、 モード 2の機能素子によれば、 各出力 A',,〜D ',,にお いて A+C、 B+D、 (A—C) X 2 d (n) ― (A+C) 、 (B— D) X 2 d (n) 一 (B+D) という結果が得られる。 く DCT回路の構成〉
DCT回路 3、 3' は、 上に説明したモード 1〜3の機能素子を、 2個のセレ クタ 3 7 a、 37 b、 2個のマスク 38 a、 38 b、 及び 1個の R OM 39を利 用することによって、 1個の回路で実現可能としたものである。
ここで、 セレクタ 37 a、 37 bはそれぞれ、 それらに接続された 2つの加算 -減算器 35 b、 35 dのいずれかを選択するためのものである。 また、 マスク 38 aは、 それに接続された加算■減算器 35 eに、 マスク 38 bは、 それに接 続された加算 .減算器 35 f に、 信号を送ったり、 信号を送らなかったりするた めのものである。
ROM 39は、 セレクタ 37 a、 37 bやマスク 38 a、 38 bを制御するた めに必要な情報を記憶させるためのものである。 これらの情報は、 2つのテープ ル、 即ち、 係数テーブル41 aと指令テーブル41 bに記憶されている。 ここで、 係数テーブル 4 laは、 上記の式 1) の計算式を記憶するものである。 各乗算器 は、 使用すべき nの値を得た後に、 この係数テーブル 4 laを利用して係数を計 算する。 一方、 指令テーブル 41 bは、 選択すべきモードに応じて、 選択すべき セレクタ、 あるいは、 マスクを記憶するものである。 DCT回路 3、 3, は、 こ の指令テーブル 41 bの情報に基づいて、 各モードに応じて、 セレクタ 3 7 a、 37 bのいずれを選択すべきか、 あるいは、 マスク 38 a、 38 bのいずれを選 択すべきかを知る。
指令テーブル 41 bについて更に説明する。 例えば、 モード 1の機能素子とし て機能させる場合、 DCT回路 3、 3 ' の処理部 (図示されていない) は、 指令 テーブル 41 bの情報に基づいて、 セレクタ 37 aは、 加算 ·減算器 35 b、 3 5 dのうちの加算 ·減算器 35 bを選択するように、 一方、 セレクタ 37 bは、 加算 ·減算器 35 b、 35 dのうちの加算 ·減算器 35 dを選択するように、 そ れらのセレクタ 37 a、 3 7 bに指令を出す。 また、 DCT回路 3、 3, の処理 部 (図示されていない) は、 マスク 38 aは、 それに接続された加算 '減算器 3 5 eに対して加算 '減算器 35 aからの信号を送らないように、 一方、 マスク 3 8 bは、 それに接続された加算 ·減算器 35 f に対して加算 ·減算器 35 cから の信号を送らないように、 それらに指令を出す。
同様に、 モード 2の機能素子として機能させる場合、 DCT回路 3、 3' は、 セレクタ 37 a、 セレクタ 37 b、 及びマスク 38 aについては、 モード 1の場 合と同様にし、 マスク 38 bについては、 それに接続された加算 ·減算器 35 f に対して加算 ·減算器 35 cからの信号を送るように、 それらに指令を出す。 同様に、 モード 3の機能素子として機能させる場合、 DCT回路 3、 3 ' は、 セレクタ 37 aは、 加算 ·減算器 35 b、 35 dのうちの加算■減算器 35 dを 選択するように、 一方、 セレクタ 37 bは、 加算 ·減算器 35 b、 35 dのうち の加算 ·減算器 35 bを選択するように、 それらに指令を出す。 また、 DCT回 路 3、 3, は、 マスク 38 aは、 それに接続された加算 ·減算器 35 eに対して 加算 .減算器 35 aカゝらの信号を送るように、 一方、 マスク 38 bは、 それに接 続された加算 ·減算器 35 f に対して加算 ·減算器 35 cからの信号を送るよう に、 それらに指令を出す。
以上の働きにより、 図 1の DCT回路 3、 3 ' は、 図 2のモード 1〜3の機能 素子の各機能を全て実現することができる。
1-3. F I FOの構成
F I FO 7は、 一般に用いられている F I FOと同様のものであり、 先入れ先 出し方式でデータを書き込み且つ読み出すことができる記憶装置である。 これら の F I FOのうち、 ここでは特に、 8個 X 4デブスの F I FO 7を使用する。 つまり、 この F I FO 7によって一度に書き込み且つ読み出すことができるデー タは 8個であり、 そのような 8個のデータを 4回連続して計 32個書き込むこと ができ、 また、 4回連続して計 3 2個読み出すことができる。 明らかなように、 この F I F O 7に一度に記憶させることができるデータは計 3 2個である。
F I F O 7を設けた目的は、 データを一時的に記憶させるため、 換言すれば、 データを遅延させて比較的動作が遅、 8 R/Wメモリ回路 5による処理を可能と するためである。 したがって、 技術の進歩によって 8 R/Wメモリ回路 5の動作 が高速化されれば、 この F I F O 7は必ずしも必要ではないと考えられる。
1— 4 . 8 RZWメモリ回路の構成
く概要 >
8 RZWメモリ回路 5は、 本発明の D C Tプロセッサ 1のために特別に開発さ れたメモリである。 ただし、 8 RZWメモリ回路 5は、 単なる記憶装置として機 能するものではなく、 離散コサイン変換を実行するために必要な処理、 即ち、 パ —ムテーションを行うことを主たる目的とするものである。
8 R/Wメモリ回路の構成を簡単に言えば、 従来使用されていた様々な部材 ( リソース) を共有することによって、 その部材数を減少させたもの、 換言すれば、 リソースシュアリングを促進させたもの、 ということができる。 本発明では、 こ の 8 RZWメモリ回路を用いることによって、 プロセッサに必要とされる部材、 例え ί 、 加算 '減算器や乗算器、 クロスバースィッチの数を大幅に減少させてい る。
この 8 R/Wメモリ回路 5によつて一度に入力し且つ出力することができるデ ータま、 F I F 0 7と同様、 8個であり、 そのような 8個のデータを 4回連続し て計 3 2個書き込む (入力する) ことができ、 また、 4回連続して計 3 2個出力 することができる。 更に、 この 8 R/Wメモリ回路 5 (のメモリ) に一度に記憶 させることができるデータは計 3 2個である。 く詳細 >
図 3を参照して、 8 RZWメモリ回路 5の構成をより詳細に説明する。 この図 は、 8 RZWメモリ回路 5のプロック図を示したものである。
本発明の 8 RZWメモリ回路 5は、 3 2個のメモリプロック 0〜3 1 (請求項 中の 「記憶、位置」 に対応) と、 これらの各メモリブロック 0〜3 1にデータを書 き込むための 8本の書き込みライン 5 2 a〜h、 これらの各メモリブ口ック 0〜 3 1からデータを読み出すため 8本の読み出しライン 5 3 a〜h、 各メモリプロ ック 0〜 3 1にデータを伝送するための 8本の伝送ライン 5 4 a〜h、 更に 4個 のクロスバースィッチ 5 8 a〜d (請求項中の 「並ぴ替え装置」 に対応) を備え る。 書き込みライン 5 2 a〜hと読み出しライン 5 3 a〜hはそれぞれ、 書き込 みィネィブル部と読み出しィネィブル部に接続されている。
参考のため、 図 4に 8 R/Wメモリ回路 5の実際の回路図も示している。 但し、 この図にクロスバースィツチ 5 8 a〜 dは示されていない。 この図において、 W L 0〜7は書き込みライン 5 2 a〜hに、 R L 0〜 7は読み出しライン 5 3 a〜 hに、 (0 ) 〜 (7 ) は伝送ライン 5 4 a〜hに、 それぞれ対応する。
<メモリプロック >
各メモリプロック 0〜 3 1には、 1個のデータを書き込み且つ読み出すことが できる。 各メモリブロック 0〜 3 1は、 0〜; 3 1の数字で区別される。 これらの 数字は、 データが記憶される記憶位置を示すものということもできる。
これらのメモリプロック 0〜 3 1は、 4個のプロックグノレープ 5 9 a〜 dに分 割されている。 計 3 2個のメモリプロックが存在するから、 各プロックグループ 5 9 a〜dに 8個 (3 2 ÷ 4 = 8 ) のメモリプロックが含まれることになる。 例えば、 プロックグループ 5 9 aには、 メモリプロック 0、 1 6、 6、 2 2、 8、 2 4、 1 4、 3 0が含まれる。
5 <伝送ライン ·書き込みライン ·読み出しライン〉
伝送ライン 5 4 a〜hは、 各プロックグループ 5 9 a〜dに対して 8本ずつ、 各メモリブロック 0〜3 1に 1本ずつ割り当てられるようにして、 一定の方向で (図面縦方向で) 設けられている。 F I F O 7等から出力されたデ一タは、 これ らの伝送ライン 5 4 a〜hを通じて送られてくる。
書き込みライン 5 2は、 各ブロックグループ 5 9に対して 2本ずつ ff 8本、 各 メモリプロック 0〜3 1に 1本ずつ割り当てられるようにして設けられている。 各書き込みライン 5 2は、 伝送ライン 5 4 a〜hとの直交方向において、 各プロ ックグループ 5 9内の 8個のメモリブ口ックのうちの 4個のメモリプロ ックと交 差する。 これらの書き込みライン 5 2は、 書き込みイネイブル部 6 0の働きによ り、 一度に 2本ずっィネィプルされ得る。 データ伝送ライン 5 4に信^が存在し、 且つ、 書き込みライン 5 2がイネイブルさ たときに、 それらのラインの交差位 置に存在するいずれかのメモリプロックにデータが書き込まれる。 各書込みライ ンは 4個のメモリブロックと交差し、 また、 一度に 2本の書き込みラインがイネ ィブルされることから、 1回の書き込みで計 8個のデータがいずれかのメモリブ 口ックに書き込まれることになる。
読み出しライン 5 3 a〜 hは、 各プロックグループ 5 9 a〜 dに対して 8本ず つ、 データ伝送ライン 5 4 a〜hと同方向に設けられている。 各読み出しライン 5 3 a〜hは、 8個のメモリブロック (1個のブロックグループ 5 9 a〜dに対 して 2個) と交差するが、 1回の読み出し動作の際に、 実際に作用するのは各ブ ロックグノレープ 5 9 a〜dにおいて 1個のみ、 したがって、 計 4個のメモリプロ ックにおいてだけである。 これらの読み出しライン 5 3 a〜hは、 読み出しイネ イブル部 6 1の働きにより、 書き込みライン 5 2と同様に、 一度に 2本ずつイネ ィブルされる。 各読み出しライン 5 3が 1回の読み出し動作の際に実際に作用す るのは 4個のメモリブロックであり、 また、 一度に 2本の読出ラインがイネイブ ルされることから、 1回の読み出しで計 8個のデータがいずれかのメモリプロッ クから読み出されることになる。
以上の説明からも明らかなように、 本発明の 8 RZWメモリ回路 5では、 書き 込み時と読み出し時とでラインが共用されておらず、 また、 書き込みライン 52 と読み出しライン 53が互いに垂直方向に配線されている。 このような構成にす ることによって、 離散コサイン変換を行うために多数必要とされていたクロスバ ースィツチ 58 a〜dをたつた 4個とすることが可能となっている。
<クロスノ ースィツチ〉
クロスバースィツチ 58 a〜dは、 各メモリプロック 0〜31から読み出され たデータを 8 RZWメモリ回路 5から出力する前に適当に並び替えるために用い る。 例えば、 読み出しライン 53 aと読み出しライン 53 eをイネイブルするこ とによって読み出された 8個のデータ、 換言すれば、 第 1フェーズで読み出され た 8個のデータ [0] 、 [15] 、 [14] 、 [1] 、 [2] 、 [13] 、 [1 2、 [3] は、 クロスバースィッチ 58 a〜dによって、 [0] 、 [1] 、 [2 ] 、 [3] 、 [12] 、 [13] 、 [14] 、 [15] の順に並び替えられる。 尚、 上の記載おょぴ明細書及び図面の全体を通じて、 [n] (nは 0から 31ま での整数) は、 メモリプロック 0〜31のような記憶手段の nというメモリ位置 に入っているデータの内容 (値) を表す。
< 8 RZWメモリ回路のメモリプロックからの読み出し、 及び 8 R/Wメモリ 回路からの出力 >
8 R/Wメモリ回路のメモリプロックからの読み出し及び 8 RZWメモリ回路 からの出力は次の手順による。
第 1フェーズ、 つまり梟初の読み出しでは、 読み出しライン 53 bと読み出し ライン 53 eをイネィブルすることによってそれぞれ、 [0] 、 [1] 、 [2] ヽ [3] と、 [15] 、 [14] 、 [13] 、 [12] が読み出され、 これらのデ —タはクロスバースィッチ 58によって [0] 、 [1] 、 [2] 、 [3] 、 [1 2] 、 [13] 、 [14] 、 [1 5] の順に並ぴ替えられた後に、 8RZWメモ リ回路 5から出力される。
第 2フェーズ、 つまり 2回目の読み出しでは、 読み出しライン 53 aと読み出 しライン 53 f をイネィプルすることによってそれぞれ、 [6] 、 [7] 、 [4 ] 、 [5] と、 [9] 、 [8] 、 [1 1] 、 [10] が読み出され、 これらのデ ータはクロスバースィッチ 58によって [4] 、 [5] 、 [6] 、 [7] 、 [8 ] 、 [9] 、 [10] 、 [1 1] の順に並ぴ替えられた後に、 8RZWメモリ回 路 5から出力される。
第 3フェーズ、 つまり 3回目の読み出しでは、 読み出しライン 53 dと読み出 しライン gをイネィブルすることによつてそれぞれ、 [16] 、 [1 7] 、 [1 8] 、 [1 9] と、 [31] 、 [30] 、 [29] 、 [28] が読み出され、 こ れらのデータはクロスバースィッチ 58によって [16] 、 [1 7] , [18] 、
[1 9] 、 [28] 、 [29] 、 [30] 、 [31] の順に並ぴ替えられた後に、 8 RZWメモリ回路 5から出力される。
第 4フェーズ、 つまり 4回目の読み出しでは、 読み出しライン 53 cと読み出 しライン 53 hをイネィプルすることによつてそれぞれ、 [22] 、 [23] 、
[20] 、 [21] と、 [25] 、 [24] 、 [27] 、 [26] が読み出され、 これらのデータはクロスバースィッチ 58によって [20] 、 [21] 、 [22 ] 、 [23] 、 [24] 、 [25] 、 [26] 、 [27] の順に並び替えられた 後に、 8 R/Wメモリ回路 5から出力される。
以上より明らかなように、 8 RZWメモリ回路 5にデータを一旦記憶させるこ とにより、 それらのデータを所定の順番で出力させることができる。 更に言えば、 8 R/Wメモリ回路 5から出力されるデータの順番を、 8 RZWメモリ回路 5の いずれのメモリブロック 0〜31にデータを記憶させるかという事実に基づいて 制御できるということである。
く 8 RZWメモリ回路のメモリブ口ックへのデータの書き込み、 及ぴパームテ ーシヨン >
8 RZWメモリ回路 5のメモリプロック 0〜3 1へのデータの書き込みは、 D C Tプロセッサの外部の、 例えば C P U等 (図示されていない) から行われる場 合と、 D C Tプロセッサの内部でループ状に、 F I F O 7等を介して行われる場 合の 2通りがある。
前者の書き込みを行うために、 図 1に示した 8本の信号線 2 4に加えて、 更に、 D C Tプロセッサの外部から D C Tプロセッサの内部にデータを入力するための 手段、 例えば、 D C Tプロセッサの外部からのデータを 8 RZWメモリ回路 5の 入力部 5 1に伝送するための信号線 (図示されていない) が存在すると考えてよ レヽ。 これらの信号線は、 クロス部 4、 4, (及び F I F O 5 ) と 8 RZWメモリ 回路 5との間で、 8 R/Wメモリ回路 5の入力部 5 1に電気的に接続されていれ ば十分であり、 8 R/Wメモリ回路の入力部 5 1に直接的に接続されてもよいし、 あるいは、 信号線 2 4の途中、 例えば、 8 R/Wメモリ回路の入力部 5 1の直前 (一点鎖線 Aと信号線 2 4との交差位置) に設けたセレクタのような選択手段を 介してそれらに間接的に接続されていてもよい。 選択手段には、 外部データのた めの信号線とループ状の信号線 2 4の双方が接続され、 いずれかの一方の信号線 だけが選択されるようになっている。 選択手段を用いた場合には、 外部データの ための信号線と信号線 2 4の競合を効果的に防止することができる。
8 RZWメモリ回路の動作は、 D C Tプロセッサの外部からのデータ、 つまり 入力手段からのデータを処理する場合と、 D C Tプロセッサの内部からのデータ を処理する場合とで異なる。 便宜上、 本明細書では、 前者の場合の 8 RZWメモ リ回路の動作を 「第 1の動作モード」 (請求項中の 「第 1の動作モード」 に対応 ) 、 後者の場合の 8 RZWメモリ回路の動作を 「第 2の動作モード」 (請求項中 の 「第 2の動作モード」 に対応) と呼んで区別する。 ここで、 第 1の動作モード では、 DCTプロセッサ以外 (F I FO以外) からのデータを 8 RZWメモリ回 路に書き込んだ後にそれらのデータを出力し、 第 2の動作モードでは、 DCTプ 口セッサ (F I FO) からのデータを 8 R/Wメモリ回路に書き込んだ後にそれ らのデータを出力することになる。 尚、 上述した選択手段が使用されている場合 には、 第 1の動作モードでは、 外部データのための 号線を選択して CPU等か らのデータを 8 R/Wメモリ回路に伝送するように、 一方、 第 2の動作モードで は、 信号線 24を選択して F I FOからのデータを 8 R/Wメモリ回路に伝送す るように、 選択手段は適宜に切り換えられることになる。
第 1の動作モードの場合、 データは入力手段 (図示されていない) からのもの であり、 したがって、 クロス部 4、 4' (図 1参照) を介さずに、 また、 データ の対応付けを変更しないで 8 RZWメモリ回路に書き込まれる。 一方、 第 2の動 作モードの場合、 データは F I FO 5からのものであり、 クロス部 4、 4' で並 び替えが行われた後に、 データの対応付けを変更するようにして 8 R/Wメモリ に書き込まれる。 この結果、 第 2の動作モードの場合においては、 8RZWメモ リ回路から出力されるデータにパームテーシヨンが行われることになる。
更に説明すると、 第 1の動作モードの場合、 データの書き込み位置は、 各メモ リブロック 0〜3 1に付した 0〜31の番号に従う。 つまり、 データ [0] はメ モリブロック 0に、 [1] はメモリブロック 1に、 [2] はメモリプロック 2に …といった具合に対応させる。 この結果、 第 1の動作モードの場合、 第 1フエ一 ズで読み出されるデータは、 書き込みを行う前の [0] 、 [1] 、 [2] 、 [3 ] 、 [12] 、 [1 3] 、 [14] 、 [15] にそれぞれ対応するデータ [0] 、
[1] 、 [2] 、 [3] 、 [12] 、 [13] 、 [14] 、 [15] となり、 第 2フェーズで読み出されるデータは、 書き込みを行う前の [4] 、 [5] 、 [6 ] 、 [7] 、 [8] 、 [9] 、 [10] 、 [11] にそれぞれ対応する [4] 、 [5] 、 [6] 、 [7] 、 [8] 、 [9] 、 [10] 、 [11] となり、 また、 第 3フューズで読み出されるデータは、 書き込みを行う前の [16] 、 [17] 、
[18] 、 [19] 、 [28] 、 [29] 、 [30] 、 [31] にそれぞれ対応 するデータ [16] 、 [1 7] 、 [18] 、 [19] 、 [28] 、 [29] 、 [ 30] 、 [31] となり、 更に、 第 4フェーズで読み出されるデータは、 書き込 みを行う前の [20] 、 [21] 、 [22] 、 [23] 、 [24] 、 [25] 、
[26] 、 [27] にそれぞれ対応するデータ [20] 、 [21] 、 [22] 、
[23] 、 [24] 、 [25] 、 [26] 、 [27] となる。 従って、 この第 1 の動作モードでは、 単に読み出されるべきデータの順番が制御されるだけである。 —方、 第 2の動作モードの場合、 データは、 F I FOと 8 RZWメモリ回路の 間に設けたクロス部 4、 4, (図 1参照) によって並び替えが行われた後に、 デ 一タの対応付けを変更するようにして 8 RZWメモリへ書き込まれる。 この結果、 データの書き込み位置は、 必ずしも各メモリブロックに付した 0〜 31の数字に 従わない。 従って、 この第 2の動作モードでは、 データの対応付けが変更された 上で、 つまりデータにパームテーシヨンが行われた上で、 読み出されるべきデー タの順番が制御されることになる。
図 5に、 パームテ一ションを実行することによって得られる効果を視覚的に示 している。 この図において、 [] で囲まれていない数字は、 メモリブロックの番 号 0〜31である。 この図から明らかなように、 例えば、 左側に示した元のデー タ [0] 〜 [31] は、 パームテーションを行うことによつて右側に示した [0
1、 [2] 、 [4] 、 [6] 、 [8] 、 [10] …にそれぞれ対応付けされるこ とになる。 更に言えば、 パームテーシヨン前の [0] 、 [2] 、 [4] 、 [6] 、
[8] 、 [10] …はそれぞれ、 パームテーシヨン後は、 メモリブロック 0、 1、
2、 3···におけるデータ、 つまり [0] 、 [1] 、 [2] 、 [3] …となるとい うことである。 図 3を参照して更に詳細に説明する。 パームテーションを行う前の第 1フエ一 ズのデータ [0] 、 [1] 、 [2] 、 [3] 、 [1 2] 、 [1 3] 、 [1 4] 、 [1 5] は、 先ず、 クロス部 4、 4' によって [0] 、 [2] 、 [1] 、 [3] 、 [1 2] 、 [1 4] 、 [1 3] 、 [1 5] の順に並び替えられ (図 3の 56参照 ) 、 その後、 書き込みライン 5 2 a、 52 dをィネイプノレすることによって、 メ モリプロック 0、 1、 1 6、 1 7と、 6、 7、 22、 23にそれぞれ書き込まれ るため、 これらのメモリブロックから [0] 、 [1] 、 [1 6] 、 [1 7] 、 [ 6] 、 [7] 、 [22] 、 [2] として読み出されることになる。 つまり、 パー ムテーシヨンを行うことによって、 元の [0] 、 [1] 、 [2] 、 [3] 、 [1 2] 、 [1 3] 、 [1 4] 、 [1 5] はそれぞれ、 [0] 、 [1 6] 、 [1] 、 [1 7] 、 [6] 、 [22] 、 [7] 、 [23] にそれぞれ対応付けされたこと になる。
同様に、 パームテ一シヨンを行う前の第 2フェーズのデータ [4] 、 [5] 、 [6] 、 [7] 、 [8] 、 [9] 、 [1 0] 、 [1 1] は、 先ず、 クロス部 4、 4' によって [4] 、 [6] 、 [5] 、 [7] 、 [8] 、 [1 0] 、 [9] 、 [ 1 1] の順に並び替えられ (図 3の 56参照) 、 その後、 書き込みライン 52 e、 52 hをィネイプルすることによって、 メモリプロック 2、 3、 1 8、 1 9と、 4、 5、 20、 2 1にそれぞれ書き込まれるため、 これらのメモリプロックから [2] 、 [3] 、 [1 8] 、 [1 9] 、 [4] 、 [5] 、 [20] 、 [21] と して読み出されることになる。 つまり、 パームテーシヨンを行うことによって、 元の [4] 、 [5] 、 [6] 、 [7] 、 [8] 、 [9] 、 [1 0] 、 [1 1] は それぞれ、 [2] 、 [1 8] 、 [3] 、 [1 9] 、 [5] 、 [4] 、 [20] 、 [2 1] にそれぞれ対 -応付けされたことになる。
また、 パームテーシヨンを行う前の第 3フェーズの [1 6] 、 [1 7] 、 [1 8] 、 [1 9] 、 [28] 、 [29] 、 [3 0] 、 [ 3 1 ] は、 先ず、 クロス部 4、 4' によって [16] 、 [18] 、 [1 7] 、 [1 9] 、 [28] 、 [30 ] 、 [29] 、 [31] の順に並び替えられ (図 3の 56参照) 、 その後、 書き 込みライン 52 b、 52 cをィネィブルすることによって、 メモリブロック 8、 9、 24、 25と、 14、 15、 30、 31にそれぞれ書き込まれるため、 これ らのメモリブロックから [8] 、 [9] 、 [24] 、 [25] 、 [14] 、 [1 5] 、 [30] 、 [31] として読み出されることになる。 つまり、 ノ、。一ムテー シヨンを行うことによって、 元の [1 6] 、 [17] 、 [18] 、 [1 9] 、 [ 28] 、 [29] 、 [30] 、 [31] はそれぞれ、 [8] 、 [24] 、 [9] 、
[25] 、 [14] 、 [30] 、 [1 5] 、 [31] にそれぞれ対応付けされた ことになる。
更に、 パームテーションを行う前の第 4フェーズの [20] 、 [21] 、 [2 2] 、 [23] 、 [24] 、 [25] 、 [26] 、 [27] は、 先ず、 クロス部 4、 4, によって [20] 、 [22] 、 [21] 、 [23] 、 [24] 、 [26
1、 [25] 、 [27] の順に並び替えられ (図 3の 56参照) 、 その後、 書き 込みライン 52 g、 52 hをィネィブルすることによって、 メモリプロック 10、 1 1、 26、 27、 12、 13、 28、 29にそれぞれ書き込まれるため、 これ らのメモリブロックから [10] 、 [1 1] 、 [26] 、 [27] 、 [1 2] 、
[1 3] 、 [28] 、 [29] として読み出されることになる。 つまり、 パーム テーシヨンを行うことによって、 元の [20] 、 [21] 、 [22] 、 [23] 、
[24] 、 [25] 、 [26] 、 [27] はそれぞれ、 [10] 、 [26] 、 [ 1 1] 、 [27] 、 [12] 、 [28] 、 [13] 、 [29] にそれぞれ対応付 けされたことになる。
2. DCTプロセッサの動作
図 6に、 本発明による DCTプロセッサ 1とその周辺機器 (図示されていない ) によって行われる離散コサイン変換処理のシーケンスフローを、 また、 図7に、 この処理によって生じるデータのデータフローを表すデータフローグラフを、 そ れぞれ示す。 尚、 図 7の上部に示したステップ (ST) の番号は、 図 6のそれに 対応する。
尚、 本発明の DC Tプロセッサ 1によって行われる処理は、 図 6に示したステ ップ 1〜1 1のうち、 ステップ 3〜10のみである。 残りのステップ 1、 2、 1 1は、 例えば CPU等の周辺機器によって行われることになつている。 換言すれ ば、 最終的な離散コサイン変換の結果を得るには、 本発明の DCTプロセッサ 1 による処理に加えて更にステップ 1、 2、 1 1の処理を行う周辺機器が必要、 と いうことである。 伹し、 設計変更によって、 これらの処理を本発明の DC Tプロ セッサ 1が行うようにしてもよい。
ステップ 1で、 先ず、 離散コサイン変換を実行すべきデータを 32個のサンプ リングポイントでサンプリングし、 32個のサンプリングデータ [0] 〜 [3 1 ] を得る。
ステップ 2で、 これらのサンプリングデータを、 図 7に示す順番に並び替える。 この並び替えは、 その後の処理を適切に行うために必要とされる処理である。 こ の並び替えにより、 データは [0] 、 [1] 、 [31] 、 [30] …の順に並ぴ 替えられる。
次いで、 ステップ 3で、 これらのデータを第 1の動作モードで動作する 8 RZ
Wメモリ回路 5のメモリブロック 0〜 31に書き込み且つ読み出す。 尚、 ここで の書き込みは、 例えば CPU等から行われるものであって F I F05 (図 1参照
) から行われるものでないため、 クロス部 4、 4' による並ぴ替えはない。 また、 この場合、 各データは、 [0] 、 [1] 、 [31] 、 [30] …のそれぞれの数 字に対応するメモリブロックに書き込まれる。 つまり、 [0] はメモリブロック
0に、 [1] はメモリブロック 1に、 [31] はメモリブロック 31···といった 具合である。 これらの書き込みと読み出しにより、 8 R/Wメモリ回路 5から出 力されるデータは、 図 3を参照して説明したように、 対応付けを何ら変更される ことなく、 第 1フェーズにおいては、 [0] 、 [1] 、 [2] 、 [3] 、 [1 2 ] 、 [1 3] 、 [14] 、 [1 5] となり、 第 2フエ一ズにおいては、 [4] 、
[5] 、 [6] 、 [7] 、 [8] 、 [9] 、 [10] 、 [1 1] 、 第 3フェーズ においては、 [1 6] 、 [1 7] 、 [18] 、 [1 9] 、 [28] 、 [29] 、
[30] 、 [3 1] 、 第 4フエ一ズにおいては、 [20] 、 [21] 、 [22] 、
[23] 、 [24] 、 [25] 、 [26] 、 [27] となる。
次いで、 ステップ 4で、 これらのデータは 2個の DCT回路 3、 3 ' (図 1参 照) によって処理される (ST4) 。 図 1から明らかなように、 8RZWメモリ 回路 5の 8個の各出力部は、 2個の DCT回路 3、 3 ' の 4個の入力部にそれぞ れ対応して接続されているから、 8 RZWメモリ回路5によって、 第 1フェーズ で読み出されたデータのうちの [0] 、 [1] 、 [2] 、 [3] は DCT回路 3 で、 一方、 [1 2] 、 [1 3] 、 [14] 、 [15] は DCT回路 3, で処理さ れる。 同様に、 第 2フェーズで読み出されたデータのうちの [4] 、 [5] 、 [ 6] 、 [7] は DCT回路 3で、 一方、 [8] 、 [9] 、 [10] 、 [1 1] は DCT回路 3, で処理される。 また、 第 3フェーズで読み出されたデータのうち の [16] 、 [1 7] 、 [18] 、 [1 9] は DC T回路 3で、 一方、 [28] 、
[29] 、 [30] 、 [3 1] は DCT回路 3' で処理される。 更に、 第 4フヱ ーズで読み出されたデータのうちの [20] 、 [21] 、 [22] 、 [23] は DCT回路 3で、 一方、 [24] 、 [25] 、 [26] 、 [27] は DCT回路 3' で処理される。
尚、 図 7では、 各 DCT回路 3、 3 ' で処理されるデータを明らかにするため、
1個の DCT回路 3、 3, によって処理されるデータ範囲を四角で囲っている。 上の記載からも明らかなように、 各四角において 4個のデータが処理される。 ここで、 各四角内の < n > (nは 1〜4の整数) は、 それらのデータがフエ一 ズ 1〜 4でそれぞれ処理されることを意味する。 例えば、 く 1 >が付された四角 は 2つあるが、 これらは、 第 1フェーズで処理されることを意味し、 また、 それ らで各々処理されるデータは [0] 〜 [4] あるいは [1 2] 〜 [1 5] であり、 それぞれ、 DCT回路 3と DCT回路 3, によって処理されることを意味する。 同様に、 < 2 >が付された 2つの四角は、 第 2フェーズで処理されることを意味 し、 また、 そのとき処理されるデータは [4] 〜 [7] あるいは [8]〜 [1 1 ] であり、 それぞれ、 DCT回路 3と DCT回路 3, によって処理されることを 意味する。 また、 < 3 >が付された 2つの四角は、 第 3フェーズで処理されるこ とを意味し、 また、 そのとき処理されるデータは [16] 〜 !: 1 9] あるいは [ 27] 〜 [31] であり、 それぞれ、 0〇1:回路3と0。丁回路3, によって処 理されることを意味する。 同様に、 < 4〉が付された四角も 2つあるが、 これら は、 第 4フェーズで処理されることを意味し、 また、 そのとき処理されるデータ は [20] 〜 [23] あるいは [24] 〜 [27] であり、 それぞれ、 DCT回 路 3と DCT回路 3, によって処理されることを意味する。
更に、 各四角内の mo d e (モード) n (nは 0〜2の整数) は、 各 DCT回 路 3、 3, によって使用されるモードを表し、 また、 d (n) (nは 1から 31 までの整数) は、 各 DC T回路 3、 3 ' の乗算器 36 a、 36 b (図 1参照) で それぞれ使用される乗算の係数を表している。 例えば、 第 1フェーズにおいて、 DCT回路 3はモード 0の機能素子 (図 2の a) 参照) として機能し、 このモー ド 0における機能素子の乗算器 36 aは、 d (16) という係数を用い、 また、 乗算器 36 bは d (24) という係数を用い、 一方、 同じく第 1フェーズにおい て、 DCT回路 3, はモード 0の機能素子 (図 2の a) 参照) として機能し、 こ のモード 0における機能素子の乗算器 36 ¾d (1 9) という係数を用い、 ま た、 乗算器 36 bは d (27) という係数を用いる、 といった具合である。 その後、 ステップ 5で、 各 DCT回路 3、 3, で処理された 8個のデータは、 F I FO 7 (図 1参照) に順次に書き込まれ、 32個全てのデータが書き込まれ た後に、 再び、 順次に読み出される。 このとき読み出されるデータは、 第 1フエ ーズにおいては、 [0] 、 [1] 、 [2] 、 [3] 、 [1 2] 、 [1 3] 、 [1 4] 、 [15] 、 第 2フェーズにおいては、 [4] 、 [5] 、 [6] 、 [7] 、
[8] 、 [9] 、 [10] 、 [1 1] 、 第 3フェーズにおいては、 [16] 、 [ 1 7] 、 [18] 、 [1 9] 、 [28] 、 [29] 、 [30] 、 [31] 、 第 4 フェーズにおいては、 [20] 、 [21] 、 [22] 、 [23] 、 [24] 、 [ 25] 、 [26] 、 [27] に対応する。
次いで、 ステップ 6で、 クロス部 4、 4, (図 1参照) によってデータの並ぴ 替えが行われる。 この並び替えにより、 F I FOからのデータは、 図 3の 56で 示すような順番となる。 即ち、 第 1フェーズのデータは、 [0] 、 [2] 、 [1 ] 、 [3] 、 [1 2] 、 [14] 、 [13] 、 [1 5] 、 第 2フェーズのデータ は、 [4] 、 [6] 、 [5] 、 [7] 、 [8] 、 [10] 、 [9] 、 [1 1] 、 第 3フューズのデータは、 [1 6] 、 [18] 、 [1 7] 、 [1 9] 、 [28] 、
[30] 、 [29] 、 [3 1] 、 第 4フェーズのデータは、 [20] 、 [22] 、
[21] 、 [23] 、 [24] 、 [26] 、 [25] 、 [27] である。
次いで、 ステップ 7で、 F I F07から読み出されたデータは、 第 2の動作モ ードで動作する 8 RZWメモリ回路 5 (図 1) に戻され (回路動作としては、 ル ープされということになる) 、 そこに書き込まれ且つ読み出される。 この結果、 パームテーシヨンが行われ、 第 1フェーズのデータ [0] 、 [1] 、 [2] 、 [ 3] 、 [12] 、 [13] 、 [14] 、 [1 5] はそれぞれ、 [0] 、 [16] 、
[1] 、 [17] 、 [6] 、 [22] 、 [7] 、 [23] に対応付けされること となり、 また、 第 2フェーズのデータ [4] 、 [5] 、 [6] 、 [7] 、 [8] 、
[9] 、 [10] 、 [1 1] はそれぞれ、 [2] 、 [18] 、 [3] 、 [1 9] 、 [5] 、 [4] 、 [20] 、 [21] に対応付けされるることとなり、 また、 第 3フェーズのデータ [16] 、 [17] 、 [1 8] 、 [1 9] 、 [28] 、 [2 9] 、 [30] 、 [31] はそれぞれ、 [8] 、 [24] 、 [9] 、 [25] 、
[14] 、 [30] 、 [1 5] 、 [31] に対応付けされることとなり、 更に、 第 4フェーズのデータ [20] 、 [21] 、 [22] 、 [23] 、 [24] 、 [ 25] 、 [26] 、 [27] はそれぞれ、 [10] 、 [26] 、 [1 1] 、 [2 7] 、 [1 2] 、 [28] 、 [13] 、 [29] に対応付けされることとなる。 次いで、 ステップ 8で、 パームテーシヨンが行われたデ一タを、 再び、 DCT 回路 3、 3, で処理する。 この処理は、 ステップ 4で述べたのと同様である。 次いで、 ステップ 9で、 DCT回路 3、 3, からのデータを、 再び、 F I FO 7で処理する。 この処理は、 ステップ 5で述べたのと同様である。
次いで、 ステップ 10で、 再びクロス部 4、 4、 , (図 1参照) によって並ぴ 替えが行われる。 この処理は、 ステップ 6で述べたのと同様である。
その後、 ステップ 7〜ステップ 10の処理を更に 3回反復 (回路動作で言えば 「ループ」 ) する。 この結果、 ステップ 7〜10の処理を計 4回反復することに なる (伹し、 以下の記述や図 6から明らかなように、 4回目のノレープ時における ステップ 10の処理は、 最終結果とは無関係であるため省略してよい) 。
最後に、 ステップ 1 1で、 4回目のループ終了時に、 ステップ 9の処理後に得 られたデータ、 つまり F I F07 (図 1参照) からのデータを [0] 、 [4] 、
[8] 、 [1 2] …の順番に並び替えるとともに、 データ [0] については d ( 1) (つまり、 (0. 5) ) の係数により乗算を行う。 これらの処理は、 最終 結果を望ましい形で得るために必要とされる処理である。
B. 第 2の実施形態
再ぴ図 1を参照して、 本発明の第 2の実施形態について説明する。 この第 2の 実施形態は、 DCTプロセッサの外部から内部にデータを入力する入力手段 (図 示されていない) を、 8 R/Wメモリ回路 5と DCT回路 3、 3' との間 (一点 鎮,線 Bと信号線 24との交差位置) に設けるもの、 としたものである。
この結果、 この第 2の実施形態では、 第 1の実施形態と異なり、 DCTプロセ ッサの外部からのデータが、 8RZWメモリ回路 5を介さずに DCT回路 3、 3 ' ίこ直接付与されることになる。 しかしながら、 この場合にも、 DCT回路 3、 3, に付与されるデータは、 8 R/Wメモリ回路 5を介したデータと同じもの、 更 ίこ言えば、 第 1の動作モードの 8 RZWメモリ回路で処理されたデータと同じ ものとする必要がある。 このため、 この第 2の実施形態では、 データを予め CP U等で処理するものとする。
mらかなように、 第 2の実施形態では、 8 RZWメモリ回路 5を第 1の動作モ 一 で処理させる必要はない。 別の言い方をすれば、 第 2の実施形態では、 8R メモリ回路 5を上述した第 2の動作モードでのみ動作させるだけでよい。 し た力 Sつて、 第 2の実施形態によれば、 第 1の実施形態に比べて、 CPU等によつ て行われる処理が多少多くなるものの、 8 RZWメモリ 5を単一の動作モード ( 第 2の動作モード) でのみ動作させればよいため、 8 RZWメモリ回路の制御や 構成をより簡易なものとすることができる。 これに対し、 第 1の実施形態では、 第 2の実施形態に比べて、 8 R/Wメモリ回路 5の制御や構成が多少複雑になる ものの、 CPU等によって行われる処理を少なくすることができる点で有利であ る。
C. 第 3の実施形態
本発明の第 3の実施形態は、 入力手段を D C T回路 3、 3, と F I F07との 間 (一点鎖線 Cと信号線 24との交差位置) に設けるもの、 としたものである。 この結果、 この第 3の実施形態では、 DCTプロセッサの外部からのデータは、 8 RZWメモリ回路 5や DC T回路 3、 3 ' を介さずに F I F Ο 7に直接付与さ れることになる。 しかしながら、 この場合にも、 F I FO 5に付与されるデータ は、 8 RZWメモリ回路 5や DCT回路 3、 3 ' を介したデータと同じもの、 更 に言えば、 第 1の動作モードの 8 RZWメモリ回路と DC Τ回路 3、 3, で処理 されたデータと同じものとする必要がある。 この処理は CPU等によって行うこ とができる。
明らかなように、 第 3の実施形態でも、 第 2の実施形態と同様に、 8RZWメ モリ回路 5を第 1の動作モードで処理させる必要はない。 よって、 第 2の実施形 態で述べたものと同様の利点と欠点を有することになる。
D. DCTプロセッサの性能
下の表に、 本発明の D C Tプロセッサの性能と従来装置である Lippen等による D C Tプロセッサのそれとを比較した比較結果を示す。
Figure imgf000032_0001
ここで、 表中の 「1つのサンプリングポイントを計算するに必要な算術演算器 の数」 とは、 図 6に記載された算術演算器、 即ち、 加算 .減算器と乗算器の数を 意味する。 本発明では、 各 DCT回路 3、 3' に 8個ずつ設けられているから計 16個である。 また、 「1サイクル毎に発生する中間出力値の数」 とは、 DCT 回路による 1回の計算で発生し得る値の数であり、 本発明では 32個のサンプリ ングポイントを 4回に分けて計算するから、 8個ということになる。 更に、 「レ ジスタファイル (データの蓄積装置) の数」 とは、 計算結果を記憶させるための 装置の数を意味し、 本発明では F I F 0 7と 8 R/Wメモリ回路 5ということに なるから 2個である。 「D C Tの推定コア領域」 とは、 D C Tプロセッサ 1に必 要な面積である。 「出力レイテンシィ」 は、 出力結果を得るまでの平均時間であ る。
上の表より明らかなように、 例えば、 メモリブロック等の周辺ロジックに必要 な面積に関して、 本発明の D C Tプロセッサ 1は、 Lippenのアルゴリズムによる プロセッサで必要とされる面積の約半分ほどで足りる。 また、 出力レイテンシィ
(遅延) について言えば、 本発明の D C Tプロセッサは、 Lippenのプロセッサの それの約 1 Z 4程で足りる。 このように、 本発明の D C Tプロセッサは優れた性 能を発揮する。
最後に、 上の実施形態では、 F I F Oからのデータを並び替えるためにクロス 部を用いているが、 例えば、 クロスバースィッチを用いても良い。 また、 クロス 部を、 F I F Oの出力部や 8 RZWメモリ回路の入力部 (8 RZWメモリ回路の 内部) に設けても良い。 必要なことは、 8 R/Wメモリ回路によるパームテーシ ョンが行われるよう、 8 RZWメモリ回路のメモリプロックに書き込みを行う前 に並ぴ替えを行わなければならないことだけである。
本発明によれば、 8 RZWメモリ回路によってリソースシェアリングが促進さ れることから信号のパ一ムテーシヨン (置き換え) の複雑さが解消され、 これに よって、 必要とされる部材数の減少、 ファンクションブロックエリアの減少、 消 費電力の減少、 更に、 処理スピードの高速化、 あるいは、 出力レイテンシィの減 少を図ることができる。
3

Claims

請求の範囲
1 . 離散コサイン変換を実行するために用いる D C Tプロセッサにおいて、 データにパームテーションを行う記憶 ·処理装置と、
所定の D C Tアルゴリズムに従つて計算を行う計算装置と、 を備え、 前記記憶■処理装置と前記計算装置との間でデータを所定回数ループさせ、 前 記計算装置から読み出されたデータに基づいて離散コサイン変換の結果を求める ことを特^¾とする D C Tプロセッサ。
2 . 離散コサイン変換を実行するために用いる D C Tプロセッサにお!/、て、 複数の入力部と複数の出力部とを有し、 前記複数の入力部を通じて入力される 複数のデータにパームテーションを行った後に前記複数の出力部から出力する、 前記記憶 ·処理装置と、
前記記憶 ·処理装置の出力部に接続された複数の入力部と複数の出力部とを有 し、 前記複数の入力部から入力されたデータを所定の D C Tアルゴリズムに従つ て計算し前記複数の出力部から出力する計算装置と、
前記計算装置の出力部に接続された複数の入力部と前記記憶 ·処理装置の入力 部に接続された複数の出力部とを有し、 前記計算装置の出力部から出力された複 数のデータを記憶し前記複数の出力部から出力する記憶装置と、
前記記憶装置と前記記憶 ·処理装置との間に設けられ、 前記記憶装置からのデ ータを所定の順番に並び替える、 並び替え手段と、 を備え、
前記記憶装置の出力部から出力された複数のデータを、 前記記憶 ·処理装置、 前記計算装置、 前記記憶装置、 及ぴ前記並ぴ替え手段で、 これらの順にそれらの 間を所定回数ループさせ、 前記記憶装置の出力部から読み出されたデータに基づ いて離散コサイン変換の結果を求めることを特徴とする D C Tプロセッサ。
3 . 3 2個のサンプリングポイントでサンプリングすることによって得られた 3 2個のデータに対して離散コサイン変換を行う 3 2ポイント D C Tプロセッサに おいて、
8個の入力部と 8個の出力部とを有し、 一度に 8個ずつ計 4回、 計 3 2個のデ ータを入力し且つ出力することができる、 記憶 ·処理装置であって、 前記 8個の 入力部を通じて一度に 8個ずつ計 4回、 順次に所定の記憶位置に書き込まれた計 3 2個のデータを前記 8個の出力部に所定の順番で出力する、 前記記憶 ·処理装 置と、
各々が、 前記記憶 ·処理装置の 8個の出力部のうちの 4個の出力部にそれぞれ 接続された 4個の入力部と 4個の出力部とを有し、 前記 8個の入力部から入力さ れたデータを一度に 4個ずつ C G A— D C Tアルゴリズムに従つて計算し、 前記 4個の出力部からそれぞれ出力する、 2個の計算装置と、
前記 2個の計算装置の計 8個の出力部にそれぞれ接続された 8個の入力部と前 記記憶 ·処理装置の計 8個の入力部にそれぞれ接続された 8個の出力部とを有し、 一度に 8個ずつ計 4回、 計 3 2個のデータを先入れ先出し方式で書き込み且つ読 み出すことができる、 記憶装置であって、 前記計算装置の各出力部から出力され た計 8個のデータを計 4回、 計 3 2個のデータを記憶する、 前記記憶装置と、 前記記憶装置と前記記憶 ·処理装置との間に設けられ、 前記記憶装置からのデ ータを所定の順番に並ぴ替える、 並び替え手段と、
を備えることを特徴とする D C Tプロセッサ。
4 . 請求項 3記載の D C Tプロセッサにおいて、 更に、 前記 D C Tプロセッサの 外部から内部にデータを入力する入力手段が、 前記記憶 ·処理装置の直前に設け られている D C Tプロセッサ。
5. 請求項 4記載の DCTプロセッサにおいて、 前記記憶 '処理装置は、 前記デ ータを前記所定の記憶位置に書き込む際、 前記入力されるデータと前記出力され るデータとの対応付けを変更しない第 1の動作モードと、 前記入力されるデータ と前記出力されるデータとの対応付けを変更する第 2の動作モードのいずれかで 動作するものであって、 前記入力手段からのデータは前記第 1の動作モードで処 理される、 DCTプロセッサ。
6. 請求項 5記載の DCTプロセッサにおいて、 '前記第 1の動作モードで動作す る記憶'処理装置で処理された計 32個のデータを、 前記計算装置、 前記記憶装 置で順に処理し、 その後、 前記記憶装置の出力部から読み出された計 32個のデ ータを、 前記並び替え手段で処理した後に、 前記第 2の動作モードで動作する前 記記憶 ·処理装置、 前記計算装置、 前記記憶装置、 及ぴ前記並び替え手段で、 こ れらの順にそれらの間をループさせ、 4回目のループ時に前記記憶装置の出力部 から読み出されたデータに基づいて、 前記データを離散コサイン変換したときの 結果を求める DC Tプロセッサ。
7. 請求項 3記載の DCTプロセッサにおいて、 更に、 前記 DCTプロセッサの 外部から内部にデータを入力する入力手段が、 前記記憶 ·処理装置と前記計算装 置の間に設けられている DC Tプロセッサ。
8. 請求項 3記載の DCTプロセッサにおいて、 更に、 前記 DC Tプロセッサの 外部から内部にデータを入力する入力手段が、 前記計算装置と前記記憶装置の間 に設けられている D C Tプロセッサ。
9. 請求項 3に記載の DCTプロセッサにおいて、 前記記憶'処理装置は、 計 3 2個の記憶位置を有しており、 前記 32個のデータは、 これら 3 2個のいずれか の記憶位置に 1つずつ書き込み且つ読み出される D CTプロセッサ。
10. 請求項 9記載の DCTプロセッサにおいて、 前記 3 2個の記憶位置の各々 に書き込みラインと読み出しラインが設けられており、 これら書き込みラインと 読み出しラインは互いに垂直に配線され、 データの書き込み及び読み出し時に共 用されない DC Tプロセッサ。
1 1. 請求項 3乃至 10のいずれかに記載の DCTプロセッサにおいて、 前記所 定の並び替えは、 前記記憶装置と前記記憶 ·処理装置との間の伝送線をクロスさ せることによって行う DCTプロセッサ。
1 2. 請求項 3乃至 1 1のいずれかに記載の DCTプロセッサにおいて、 計 32 個のデータを前記 8個の出力部に所定の順番で出力するために並ぴ替え装置を用 いる DCTプロセッサ。
13. 請求項 3乃至 12のいずれかに記載の DC Tプロセッサにおいて、 前記記 憶 ·処理装置は 8 RZWメモリ回路であり、 前記計算装置は D C T回路であり、 前記記憶装置は F I F Oである DC Tプロセッサ。
14. 請求項 3乃至 13のいずれかに記載の DCTプロセッサにおいて、 前記並 ぴ替え手段は記憶 ·処理装置に設けられている DCTプロセッサ。
1 5. 離散コサイン変換を実行するために用いる DCTプロセッサで使用する記 憶 .処理装置であって、 所定の D C Tアルゴリズムに従って計算を行う計算装置 との間でデータを所定回数ループさせ、 前記計算装置から読み出されたデータに 基づいて離散コサイン変換の結果を求めるようにデータにパームテーシヨンを行 うことを特徴とする記憶 ·処理装置。
1 6 . 離散コサイン変換を実行するために用いる D C Tプロセッサで使用する記 憶 ·処理装置であって、 該記憶'処理装置は、 複数の入力部と複数の出力部とを 有し、 前記複数の入力部を通じて入力される複数のデータにパームテーシヨンを 行った後に前記複数の出力部から出力するものであり、
前記 D C Tプロセッサは、 更に、
前記記憶 ·処理装置の出力部に接続された複数の入力部と複数の出力部とを有 し、 前記複数の入力部から入力されたデータを所定の D C Tアルゴリズムに従つ て計算し前記複数の出力部から出力する計算装置と、
前記計算装置の出力部に接続された複数の入力部と前記記憶 ·処理装置の入力 部に接続された複数の出力部とを有し、 前記計算装置の出力部から出力された複 数のデータを記憶し前記複数の出力部から出力する記憶装置と、
前記記憶装置と前記記憶 ·処理装置との間に設けられ、 前記記憶装置からのデ ータを所定の順番に並び替える、 並び替え手段と、 を備え、
前記記憶装置の出力部から出力された複数のデータを、 前記記憶 ·処理装置、 前記計算装置、 前記記憶装置、 及び前記並ぴ替え手段で、 これらの順にそれらの 間を所定回数ループさせ、 前記記憶装置の出力部から読み出されたデータに基づ いて離散コサイン変換の結果を求めることを特徴とする記憶 ·処理装置。
1 7 . 3 2個のサンプリングポイントでサンプリングすることによって得られた
3 2個のデータに対して離散コサイン変換を行う 3 2ポイント D C Tプロセッサ で使用する記憶 '処理装置であって、 該記憶 '処理装置は、 8個の入力部と 8個 の出力部とを有し、 一度に 8個ずつ計 4回、 計 3 2個のデータを入力し且つ出力 することができ、 前記 8個の入力部を通じて一度に 8個ずつ計 4回、 順次に所定 の記憶位置に書き込まれた計 3 2個のデータを前記 8個の出力部に所定の順番で 出力するものであり、
前記 D C Tプロセッサは、 更に、
各々が、 前記記憶 ·処理装置の 8個の出力部のうちの 4個の出力部にそれぞれ 接続された 4個の入力部と 4個の出力部とを有し、 前記 8個の入力部から入力さ れたデータを一度に 4個ずつ C G A— D C Tァルゴリズムに従つて計算し、 前記 4個の出力部からそれぞれ出力する、 2個の計算装置と、
前記 2個の計算装置の計 8個の出力部にそれぞれ接続された 8個の入力部と前 記記憶 ·処理装置の計 8個の入力部にそれぞれ接続された 8個の出力部とを有し、 —度に 8個ずつ計 4回、 計 3 2個のデータを先入れ先出し方式で書き込み且つ読 み出すことができる、 記憶装置であって、 前記計算装置の各出力部から出力され た計 8個のデータを計 4回、 計 3 2個のデータを記憶する、 前記記憶装置と、 前記記憶装置と前記記憶 ·処理装置との間に設けられ、 前記記憶装置からのデ ータを所定の順番に並び替える、 並び替え手段と、
を備えることを特徴とする記憶 ·処理装置。
PCT/JP2003/008222 2002-06-28 2003-06-27 離散コサイン変換(dct)を実行するために用いるdctプロセッサ WO2004003785A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP03761831A EP1538532A1 (en) 2002-06-28 2003-06-27 Dct processor for executing discrete cosine transform (dct)
AU2003244151A AU2003244151A1 (en) 2002-06-28 2003-06-27 Dct processor for executing discrete cosine transform (dct)
US11/023,954 US20050240643A1 (en) 2002-06-28 2004-12-28 DCT processor used for implementing discrete cosine transform (DCT)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002189382A JP2005309474A (ja) 2002-06-28 2002-06-28 離散コサイン変換(dct)を実行するために用いるdctプロセッサ
JP2002-189382 2002-06-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/023,954 Continuation US20050240643A1 (en) 2002-06-28 2004-12-28 DCT processor used for implementing discrete cosine transform (DCT)

Publications (1)

Publication Number Publication Date
WO2004003785A1 true WO2004003785A1 (ja) 2004-01-08

Family

ID=29996843

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/008222 WO2004003785A1 (ja) 2002-06-28 2003-06-27 離散コサイン変換(dct)を実行するために用いるdctプロセッサ

Country Status (6)

Country Link
US (1) US20050240643A1 (ja)
EP (1) EP1538532A1 (ja)
JP (1) JP2005309474A (ja)
CN (1) CN1672148A (ja)
AU (1) AU2003244151A1 (ja)
WO (1) WO2004003785A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101599998B1 (ko) * 2013-01-08 2016-03-04 주식회사 엘지화학 배터리 팩에 포함된 다수의 배터리 셀에 대한 전압 데이터 관리 장치 및 방법

Citations (4)

* 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 高速フーリエ変換装置
JPH07239842A (ja) * 1994-02-18 1995-09-12 Hoabanteientsuu Guufuun Yuushienkonshii 離散的コサイン変換及び逆変換のための集積回路プロセッサ
JPH1049518A (ja) * 1996-08-06 1998-02-20 Sony Corp 演算装置および方法
JP2002117015A (ja) * 2000-10-06 2002-04-19 Takuro Sato 高速フーリエ変換回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4996661A (en) * 1988-10-05 1991-02-26 United Technologies Corporation Single chip complex floating point numeric processor
US5408425A (en) * 1993-05-25 1995-04-18 The Aerospace Corporation Split-radix discrete cosine transform
US5831881A (en) * 1994-12-02 1998-11-03 Sican Gmbh Method and circuit for forward/inverse discrete cosine transform (DCT/IDCT)
US5671169A (en) * 1995-06-23 1997-09-23 United Microelectronics Corporation Apparatus for two-dimensional inverse discrete cosine transform
US6421695B1 (en) * 1995-10-28 2002-07-16 Lg Electronics Inc. Apparatus for implementing inverse discrete cosine transform in digital image processing system
US5909572A (en) * 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US6272257B1 (en) * 1997-04-30 2001-08-07 Canon Kabushiki Kaisha Decoder of variable length codes
US6343304B1 (en) * 1999-03-09 2002-01-29 National Science Council Apparatus with selective fixed-coefficient filter for performing recursive discrete cosine transforms
US6996595B2 (en) * 2001-05-16 2006-02-07 Qualcomm Incorporated Apparatus and method for consolidating output data from a plurality of processors

Patent Citations (4)

* 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 高速フーリエ変換装置
JPH07239842A (ja) * 1994-02-18 1995-09-12 Hoabanteientsuu Guufuun Yuushienkonshii 離散的コサイン変換及び逆変換のための集積回路プロセッサ
JPH1049518A (ja) * 1996-08-06 1998-02-20 Sony Corp 演算装置および方法
JP2002117015A (ja) * 2000-10-06 2002-04-19 Takuro Sato 高速フーリエ変換回路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ASTOLA J. ET AL.: "Architecture-oriented regular algorithms for discrete sine and cosine transforms", IEEE TRANSACTIONS ON SIGNAL PROCESSING, vol. 47, no. 4, 1999, pages 1109 - 1124, XP000893635 *

Also Published As

Publication number Publication date
CN1672148A (zh) 2005-09-21
EP1538532A1 (en) 2005-06-08
US20050240643A1 (en) 2005-10-27
JP2005309474A (ja) 2005-11-04
AU2003244151A1 (en) 2004-01-19

Similar Documents

Publication Publication Date Title
JP4104538B2 (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP3546437B2 (ja) 適応形ビデオ信号演算処理装置
US6023742A (en) Reconfigurable computing architecture for providing pipelined data paths
US7120903B2 (en) Data processing apparatus and method for generating the data of an object program for a parallel operation apparatus
CN1666187A (zh) 可重配置的流型矢量处理器
CN102652315B (zh) 信息处理设备及其控制方法
JP3938238B2 (ja) 高速フーリエ変換処理装置
AU2002330511B2 (en) Semiconductor calculation device
JPH09294069A (ja) プログラマブルlsiおよびその演算方法
EP0497777A1 (en) METHODS FOR PRODUCING DIGITAL SIGNAL PROCESSORS USING A PROGRAM COMPILER.
KR100474357B1 (ko) 다단계 분할을 이용한 기억소자 할당방법
Dann et al. GraphScale: Scalable bandwidth-efficient graph processing on FPGAs
CN116167425B (zh) 一种神经网络加速方法、装置、设备及介质
KR20200013715A (ko) 사전 프로그래밍 된 함수를 갖는 고속 컴퓨터 가속기
WO2004003785A1 (ja) 離散コサイン変換(dct)を実行するために用いるdctプロセッサ
JP4002151B2 (ja) 情報処理装置
JP2007183712A (ja) データ駆動型情報処理装置
US5931892A (en) Enhanced adaptive filtering technique
JP7038608B2 (ja) 半導体装置
JP2000322235A (ja) 情報処理装置
Heron et al. Development of a run-time reconfiguration system with low reconfiguration overhead
JP2009037590A (ja) 信号処理
JP2005530246A (ja) 画像片とサーキュラーアドレッシング構成を使用する画像データ処理方法及び装置
Liu et al. Design of a high-throughput low-power IS95 Viterbi decoder
Dann et al. GraphScale: Scalable Processing on FPGAs for HBM and Large Graphs

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REEP Request for entry into the european phase

Ref document number: 2003761831

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2003761831

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11023954

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 20038180944

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2003761831

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP