US8396916B2 - Fast DCT algorithm for DSP with VLIW architecture - Google Patents

Fast DCT algorithm for DSP with VLIW architecture Download PDF

Info

Publication number
US8396916B2
US8396916B2 US12/787,102 US78710210A US8396916B2 US 8396916 B2 US8396916 B2 US 8396916B2 US 78710210 A US78710210 A US 78710210A US 8396916 B2 US8396916 B2 US 8396916B2
Authority
US
United States
Prior art keywords
dct
processor
data set
discrete cosine
cosine transform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US12/787,102
Other versions
US20100235421A1 (en
Inventor
Shizhong Liu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Priority to US12/787,102 priority Critical patent/US8396916B2/en
Assigned to QUALCOMM INCORPORATED reassignment QUALCOMM INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LIU, SHIZHONG
Publication of US20100235421A1 publication Critical patent/US20100235421A1/en
Application granted granted Critical
Publication of US8396916B2 publication Critical patent/US8396916B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

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
    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Definitions

  • the present disclosure generally relates to discrete cosine transforms using digital signal processors. More particularly, the disclosure relates to a system and method of single stage discrete cosine transforms for VLIW-based digital signal processors.
  • DSPs digital signal processors
  • VLIW very long instruction word
  • a VLIW-based DSP can perform multiple operations within a single clock cycle.
  • a VLIW-based DSP can perform multiply-accumulate (MAC), Arithmetic Logic Unit (ALU), and memory load/store operations in a single cycle.
  • MAC multiply-accumulate
  • ALU Arithmetic Logic Unit
  • memory load/store operations in a single cycle.
  • the computing power of such DSPs makes it possible to implement a DSP-based multimedia system, which offers great flexibility and cost effectiveness.
  • a discrete cosine transform is a mathematical operation that can be performed on a signal to convert the signal from the time domain to the frequency domain for further processing.
  • the DCT has become a core technology in both still image and video compression standards, including Joint Photographic Experts Group (JPEG) lossy compression, Moving Picture Experts Group (MPEG) standards 1, 2 and 4, and the like.
  • JPEG Joint Photographic Experts Group
  • MPEG Moving Picture Experts Group
  • portable personal computing devices including wireless computing devices, such as portable wireless telephones, personal digital assistants (PDAs), and paging devices that are small, lightweight, and easily carried by users.
  • wireless computing devices such as portable wireless telephones, personal digital assistants (PDAs), and paging devices that are small, lightweight, and easily carried by users.
  • portable personal computing devices include a digital still camera, a digital video camera, a digital recorder, an audio file player, or any combination thereof.
  • a portable personal computing device can include a web interface that can be used to access the Internet. Consequently, many of the portable personal computing devices include DSPs.
  • a single stage computation method to perform a discrete cosine transform operation is provided.
  • the discrete cosine transform operation is performed by executing a plurality of very large instruction words (VLIW) using a digital signal processor.
  • the plurality of very large instruction words includes a first number of multiplications and a second number of additions, where the first number of multiplications is greater than the second number of additions.
  • the discrete cosine transform operation is performed on an eight point data set. In another particular embodiment, the discrete cosine transform operation is performed on an eight by eight point matrix data set. In another particular embodiment, the plurality of VLIW instructions are without data dependencies such that the discrete cosine transform can be performed in a single stage of execution. In yet another embodiment, the discrete cosine transform operation includes applying a one-dimensional eight-point DCT transform operation to each column of an input matrix data set to produce an intermediate matrix, and applying the one-dimensional eight-point DCT transform to each row of the intermediate matrix to produce a transformed matrix data set. In another particular embodiment, the first number of multiplications includes 30 multiplication operations and the second number of additions includes up to 12 additions.
  • a method to perform a discrete cosine transform operation is provided.
  • An input data set is received.
  • the input data set is processed by executing a plurality of very large instruction words to perform a single-stage discrete cosine transform operation on the input data set to produce a transformed data set.
  • processing the input data set includes calculating a plurality of scalars related to the input data set, multiplying the plurality of scalars with a kernel matrix to produce a plurality of products, and summing the plurality of products to produce the transformed data set.
  • the plurality of very large instruction words includes a first number of multiplications and a second number of additions and wherein the first number is greater than the second number.
  • the input data set is an eight point data set. In another particular embodiment, the input data set is an eight by eight matrix data set.
  • a communications device in still another embodiment, includes a memory and a digital signal processor.
  • the memory is adapted to store a set of very large instruction words to execute a single stage discrete cosine transform operation.
  • the digital signal processor is adapted to execute the set of very large instruction words to produce a transformed data set from an input data set.
  • the digital signal processor is adapted to perform two multiply-accumulate operations, an arithmetic logic unit operation, and a memory load/store operation in a single clock cycle.
  • the digital signal processor is adapted to process images compressed according to a Joint Photographic Experts Group (JPEG) format.
  • the digital signal processor is adapted to process video compressed according to a moving picture experts group (MPEG) format.
  • the digital signal processor performs an 8 ⁇ 8 transform in less than 300 clock cycles.
  • the communications device is a mobile telephone.
  • the communications device comprises a voice over Internet protocol (VoIP) phone.
  • VoIP voice over Internet protocol
  • a digital signal processor includes an instruction set of very large instruction words and a processor.
  • the instruction set of very large instruction words (VLIW) is adapted to execute a discrete cosine transform (DCT) operation having more multiply operations than addition operations.
  • the processor is adapted to execute the instruction set to perform the DCT operation on an input data set to produce a transform data set.
  • the processor executes the instruction set in a single stage.
  • the DCT operation includes a first number of multiply operations and a second number of addition operations, where the first number of multiply operations is twice as large as the second number of additional operations.
  • the input data set comprises an 8 ⁇ 8 matrix data set.
  • a communications system includes means for storing a set of instruction, the set of instructions comprising a plurality of very large instruction words (VLIWs) defining a discrete cosine transform (DCT) operation, means for receiving an input data set, and means for performing the discrete cosine transform operation by executing the plurality of very large instruction words (VLIW) on the input data set, where the plurality of very large instruction words includes a first number of multiplications and a second number of additions and wherein the first number is greater than the second number.
  • VLIWs very large instruction words
  • DCT discrete cosine transform
  • a single stage computation method to perform a discrete cosine transform operation is provided.
  • a plurality of very large instruction words (VLIW) is broken into a plurality of basic instructions to execute a discrete cosine transform (DCT) operation.
  • At least two of the plurality of basic instructions are executed concurrently to perform a discrete cosine transform (DCT) operation on the input data set in a single stage.
  • a transform data set is generated that is related to performance of the DCT operation on the input data set.
  • the plurality of very large instruction words includes a first number of multiplications and a second number of additions, where the first number of multiplications is at least twice as large as the second number of additions.
  • An advantage of one or more embodiments disclosed herein can include performing a discrete cosine transform (DCT) operation in a single stage.
  • DCT discrete cosine transform
  • Another advantage of one or more embodiments disclosed herein can include performing a discrete cosine transform (DCT) operation in a processor in fewer than half of the clock cycles of a conventional four-stage DCT operation.
  • DCT discrete cosine transform
  • Yet another advantage of one or more embodiments disclosed herein can include performing a discrete cosine transform (DCT) operation without data dependence between stages of the transform operation.
  • DCT discrete cosine transform
  • FIG. 1 is block diagram illustrating a very long instruction word (VLIW) digital signal processor (DSP) adapted to perform a single stage discrete cosine transform (DCT) operation on a signal;
  • VLIW very long instruction word
  • DSP digital signal processor
  • FIG. 2 is a general diagram illustrating a method of performing a discrete cosine transform (DCT) operation using a VLIW processor, such as that shown in FIG. 1 ;
  • DCT discrete cosine transform
  • FIG. 3 is a flow diagram illustrating a method of performing a DCT operation using a VLIW processor.
  • FIG. 4 is a block diagram of a communications device incorporating a VLIW digital signal processor (DSP);
  • DSP VLIW digital signal processor
  • FIG. 5 is a flow diagram illustrating a method of performing a 1-Dimensional 8 ⁇ 8 DCT operation using a VLIW DSP, such as that shown in FIG. 4 ;
  • FIG. 6 is a general diagram of a portable communication device incorporating a digital signal processor
  • FIG. 7 is a general diagram of an exemplary wireless telephone incorporating a digital signal processor
  • FIG. 8 is a general diagram of an exemplary wireless Internet Protocol telephone incorporating a digital signal processor
  • FIG. 9 is a general diagram of an exemplary portable digital assistant incorporating a digital signal processor.
  • FIG. 1 is block diagram illustrating a very long instruction word (VLIW) digital signal processor (DSP) 100 adapted to perform a single stage discrete cosine transform (DCT) operation.
  • the VLIW DSP 100 includes an instruction cache 102 , an instruction register 104 , execution units 106 , 108 , 110 , 112 , a data cache 114 , and a register file 116 .
  • the instruction cache 102 is connected to the instruction register 104 to load instructions from the cache 102 to the instruction register 104 .
  • the instruction register 104 is connected to the execution units 106 , 108 , 110 , and 112 via a bus 120 .
  • the execution units 106 , 108 , 110 , and 112 are connected to the data cache 114 and to the register file 116 via a bus 122 .
  • the VLIW DSP 100 also includes a memory 124 that includes a set of program instructions 126 for a single stage DCT operation. While the memory 124 is shown as part of the processor 100 , it should be understood that the memory 124 may be implemented as a system memory separate from the VLIW DSP 100 and coupled to the VLIW DSP 100 via a system bus.
  • the VLIW DSP 100 is adapted to receive very large instruction words, which are words containing multiple instructions.
  • the VLIW DSP 100 may include a pre-processor (not shown) that breaks down the received VLIWs into basic operations that can be performed by the execution units 106 , 108 , 110 and 112 in parallel.
  • the set of instructions 126 implement a fast DCT algorithm for digital signal processing.
  • the fast DCT algorithm utilizes the functionality of the VLIW DSP 100 to reduce the number of clock cycles by adapting the DCT algorithm to the architecture of the VLIW DSP 100 .
  • conventional implementations of the DCT algorithm utilize multiple stages to calculate a DCT vector from a given input vector with data dependency between the stages
  • the set of instructions 126 provides a fast DCT algorithm that allows the DCT vector to be calculated in a single stage. This single stage DCT operation eliminates the data dependency between the multiple stages of conventional systems.
  • the single stage DCT operation reduces the number of clock cycles needed by the VLIW DSP 100 to perform the DCT operation.
  • an image is divided into 8 ⁇ 8 data blocks.
  • Each 8 ⁇ 8 data block is processed using a 2-dimensional 8 ⁇ 8 DCT transform operation.
  • the 2-dimensional 8 ⁇ 8 DCT transform operation can be separated into two 1-dimensional 8 point DCT transform operations.
  • the 1-dimensional DCT transform operation can be performed using a vector multiplication process.
  • the input vector (x) is multiplied by a DCT transform kernel matrix (C) to produce a DCT transform vector (s).
  • C DCT transform kernel matrix
  • the observed symmetries provide a path for simplification of the DCT operation.
  • the 1-dimensional 8-point kernel matrix (C) can be simplified to make use of the observed symmetries.
  • certain calculations may be reused within the matrix to reduce the overall number of calculations.
  • the kernel matrix (C) may be rewritten as follows:
  • Equation 3 above includes a multiply-accumulate operation and a arithmetic logic unit operation, which a very long instruction word (VLIW) processor can process within a single clock cycle.
  • VLIW very long instruction word
  • the first element (s 0 ) of the resultant transform vector (s) is calculated.
  • a first set of scalars (t 0 , t 1 , t 2 , and t 3 ) has been calculated for use in calculating the odd elements (s 1 , s 3 , s 5 , s 7 ) of the resultant transform vector (s) as follows.
  • the odd elements (s 1 , s 3 , s 5 and s 7 ) of the resultant transform vector (s) are calculated, together with another set of scalars (t 4 , t 5 , t 6 , t 7 , t 8 , t 9 , t 10 , and t 11 ).
  • the scalars (t 4 , t 5 , t 6 , and t 7 ) are based on elements of the input vector (x), while scalars (t 8 , t 9 , t 10 , and t 11 ) are based on the other scalars (t 4 through t 7 ).
  • the remaining even elements (s 2 , s 4 , and s 6 ) of the resultant DCT vector (s) can be calculated.
  • the above set of equations can be implemented with 30 multiplication operations and up to 12 addition operations.
  • a representative VLIW DSP can perform the above-equations in 297 clock cycles, which is less than half of the number of clock cycles required for a traditional DCT operation.
  • the above-equations are not data dependent, which fits the VLIW DSP architecture well.
  • FIG. 2 is a block diagram 200 illustrating a method of performing a discrete cosine transform (DCT) operation using a VLIW processor, such as that shown in FIG. 1 .
  • a 2-dimensional 8 ⁇ 8 DCT transform operation can be implemented by executing two 1-dimensional 8 ⁇ 8 DCT transform operations.
  • the input, indicated by block 202 is processed at block 204 by applying a 1-dimensional 8-point DCT operation to each column (as indicated by arrows 210 ) of the input matrix 202 to produce an intermediate matrix 206 .
  • the intermediate matrix 206 is processed by applying a 1-dimensional 8-point DCT operation to each row (as indicated by arrows 212 ) of the intermediate matrix 206 to produce a resultant 2-dimensional 8 ⁇ 8 DCT matrix 208 .
  • FIG. 3 is a flow diagram illustrating a method of performing a DCT operation using a VLIW digital signal processor (DSP).
  • a 1-dimensional 8-point discrete cosine transform (DCT) is applied to each column of a 2-dimensional 8 ⁇ 8 matrix to produce an intermediate 8 ⁇ 8 matrix (block 300 ).
  • a 1-dimensional 8-point DCT is applied to each row of the intermediate 8 ⁇ 8 matrix to produce the 2-dimensional 8 ⁇ 8 DCT matrix (block 302 ).
  • FIG. 4 is a block diagram of a communications device 400 incorporating a VLIW digital signal processor (DSP).
  • the communications device 400 includes an integrated circuit 402 coupled to a display 404 .
  • the integrated circuit 402 includes a modem 406 , an advanced RISC machines processor 408 , a very long instruction word (VLIW) digital signal processor (DSP) 410 , one or more processors 412 , a system memory 414 , and a display processor 416 .
  • the modem 406 , the advanced RISC machines processor 408 , the VLIW DSP 410 , the processors 412 , the system memory 414 , and the display processor 416 are coupled to one another via a bus 418 .
  • the bus 418 may be coupled to one or more input interfaces, including a keypad, a universal serial bus interface, a microphone, a speaker, and various other components, which are omitted for simplicity.
  • the memory 414 stores single stage DCT instructions 126 for execution by the VLIW digital signal processor (DSP) 410 to perform the 2-dimensional 8 ⁇ 8 DCT operation, such as that described in FIGS. 2 and 3 above.
  • DSP VLIW digital signal processor
  • the advanced RISC machines processor 408 may be used for controlling various processes, including execution of games, coordination of graphics decoding using other processors 412 , and the like.
  • the modem 406 is a modulator/demodulator for communicating with external devices, via a communications interface (not shown) that either is connected to the bus 418 or is coupled to the modem 406 .
  • the communications device 400 may be wired or wireless, depending on the particular implementation.
  • a video or an image is provided to the VLIW digital signal processor 410 , which processes the video or the image using the processor-readable single stage DCT instructions provided from the system memory 414 .
  • the resultant decoded video or image is then provided by the VLIW digital signal processor 410 to the display processor 416 via the bus 418 , which provides the decoded video or image to the display 404 , which may be a liquid crystal display (LCD) for example.
  • the VLIW DSP 410 is a QDSP-4 platform chip, such as that produced by Qualcomm, Incorporated of San Diego, Calif.
  • the single stage DCT instructions 126 may be executed to perform the algorithm described in Equations 1-17 above.
  • the algorithm may readily be used with other DSPs with a VLIW architecture.
  • the algorithm can readily be scaled according to the resources in the selected DSP. For example, if a particular DSP is capable of performing four Multiply-accumulate operations (MACs) and two arithmetic logic unit operations (ALUs) per clock cycle, the single stage DCT instructions 126 may be adapted to use this DSP architecture by merging MAC and ALU operations. While the above-equations describe an 8-point DCT operation, the algorithm and the associated equations may be scaled to other DCT transform operations, including a 16-point DCT transform.
  • MACs Multiply-accumulate operations
  • ALUs arithmetic logic unit operations
  • the equations may be extended for use with the inverse DCT (IDCT) operation.
  • the processor may be adapted to perform a discrete cosine transform (DCT) operation by executing a plurality of very large instruction words (VLIW) using a digital signal processor.
  • the plurality of VLIWs can include a first number of multiplications and a second number of additions, wherein the first number is greater than the second number.
  • FIG. 5 is a flow diagram illustrating a method of performing a 1-Dimensional 8 ⁇ 8 DCT operation using a VLIW DSP.
  • the vector (x) is multiplied by a first even row (c 0,j ) of a DCT 8 ⁇ 8 kernel matrix (C) to form eight products (block 502 ).
  • the eight products are then added together to produce the first element (s 0 ) of the 8-point DCT vector (s) (block 504 ).
  • a first set of scalars (t) are calculated from selected elements of the vector (x) (as shown in equations 3-6 above) (block 506 ). It should be understood that the multiply-accumulate and add operations of blocks 502 , 504 and 506 may occur concurrently. Alternatively, block 506 may occur before blocks 502 and 504 .
  • the odd rows of the DCT 8 ⁇ 8 matrix (C) are multiplied with selected scalars of the first set of scalars (t) to produce a set of products related to each odd row of the matrix (C) (block 508 ).
  • the set of products for each row are added together to produce the odd elements (s 1 , s 3 , s 5 , and s 7 ) of the 8-point DCT vector (s) (block 510 ).
  • the second set of scalars (t 2 ) are calculated from selected elements of the first set of scalars (t) (as shown in equations 7-14 above) (block 512 ). It should be understood that the multiply-accumulate and add operations of blocks 508 , 510 , and 512 may occur concurrently or in a different order.
  • the remaining even rows (c 2 , c 4 , and c 6 ) of the DCT 8 ⁇ 8 kernel matrix (C) are multiplied with selected scalars of the second set of scalars (t2) to produce a set of products related to each of the remaining even rows (c 2 , c 4 , and c 6 ) (block 514 ).
  • the set of products are added together for each of the remaining even rows (c 2 , c 4 , and c 6 ) to produce the even elements (s 2 , s 4 , and s 6 ) of the 8-point DCT vector (s) (block 516 ).
  • the above-described discrete cosine transform (DCT) operation can be adapted to operate in a single stage DSP.
  • the algorithm has 30 multiply operation sand only 12 additions.
  • the 8-point DCT operation can reduce the number of clock cycles required for an 8 ⁇ 8 DCT transform on a VLIW DSP to only 297 cycles, from 599 cycles required for conventional DCT decoding operations, such as that described by C. Loeffler et al., “Practical Fast 1-D DCT algorithm with 11 multiplications,” IEEE Transactions on Acoustics, Speech and Signal Processing, (1989) ICASSP-89, Vol. 2, pp. 988-991.
  • the single stage DCT operation described in equations 4-17 above provides more than 50% improvement in terms of the number of clock cycles required to perform a DCT operation, improving JPEG encoding/decoding latency and DCT-based video encoding/decoding performance.
  • FIG. 6 illustrates an exemplary, non-limiting embodiment of a portable communication device that is generally designated 600 .
  • the portable communication device includes an on-chip system 622 that includes a digital signal processor 610 .
  • the digital signal processor 610 is a VLIW digital signal processor, such as that shown in FIG. 1 and described herein.
  • FIG. 6 also shows a display controller 626 that is coupled to the digital signal processor 610 and a display 628 .
  • an input device 630 is coupled to the digital signal processor 610 .
  • a memory 632 is coupled to the digital signal processor 610 .
  • a coder/decoder (CODEC) 634 can be coupled to the digital signal processor 610 .
  • a speaker 636 and a microphone 638 can be coupled to the CODEC 630 .
  • CODEC coder/decoder
  • FIG. 6 also indicates that a wireless controller 640 can be coupled to the digital signal processor 610 and a wireless antenna 642 .
  • a power supply 644 is coupled to the on-chip system 622 .
  • the display 628 , the input device 630 , the speaker 636 , the microphone 638 , the wireless antenna 642 , and the power supply 644 are external to the on-chip system 622 . However, each is coupled to a component of the on-chip system 622 .
  • the digital signal processor 610 may process instructions associated with programs necessary to perform the functionality and operations needed by the various components of the portable communication device 600 . For example, when a wireless communication session is established via the wireless antenna a user can speak into the microphone 638 . Electronic signals representing the user's voice can be sent to the CODEC 634 to be encoded. The digital signal processor 610 can perform data processing for the CODEC 634 to encode the electronic signals from the microphone. Further, incoming signals received via the wireless antenna 642 can be sent to the CODEC 634 by the wireless controller 640 to be decoded and sent to the speaker 636 . The digital signal processor 610 can also perform the data processing for the CODEC 634 when decoding the signal received via the wireless antenna 642 .
  • the digital signal processor 610 can process inputs that are received from the input device 630 .
  • a user may be using the input device 630 and the display 628 to surf the Internet via a web browser that is embedded within the memory 632 of the portable communication device 600 .
  • Many of the instructions associated with a program may be executed concurrently during one or more clock cycles.
  • the DSP 610 may be utilized to perform a single stage discrete cosine transform operation.
  • the wireless telephone 700 includes an on-chip system 722 that includes a digital baseband processor 710 and an analog baseband processor 726 that are coupled together.
  • the digital baseband processor 710 is a VLIW digital signal processor, such as that shown in FIG. 1 and described herein.
  • a display controller 728 and a touchscreen controller 730 are coupled to the digital baseband processor 710 .
  • a touchscreen display 732 external to the on-chip system 722 is coupled to the display controller 728 and the touchscreen controller 730 .
  • FIG. 7 further indicates that a video encoder 734 , e.g., a phase alternating line (PAL) encoder, a sequential 07 a memoire (SECAM) encoder, or a national television system(s) committee (NTSC) encoder, is coupled to the digital baseband processor 710 .
  • a video amplifier 736 is coupled to the video encoder 734 and the touchscreen display 732 .
  • a video port 738 is coupled to the video amplifier 736 .
  • a universal serial bus (USB) controller 740 is coupled to the digital baseband processor 710 .
  • a USB port 742 is coupled to the USB controller 740 .
  • USB universal serial bus
  • a memory 744 and a subscriber identity module (SIM) card 746 can also be coupled to the digital baseband processor 710 .
  • SIM subscriber identity module
  • a digital camera 748 can be coupled to the digital baseband processor 710 .
  • the digital camera 748 is a charge-coupled device (CCD) camera or a complementary metal-oxide semiconductor (CMOS) camera.
  • a stereo audio CODEC 780 can be coupled to the analog baseband processor 726 .
  • an audio amplifier 782 can coupled to the to the stereo audio CODEC 780 .
  • a first stereo speaker 784 and a second stereo speaker 786 are coupled to the audio amplifier 782 .
  • FIG. 7 shows that a microphone amplifier 788 can be also coupled to the stereo audio CODEC 780 .
  • a microphone 760 can be coupled to the microphone amplifier 788 .
  • a frequency modulation (FM) radio tuner 762 can be coupled to the stereo audio CODEC 780 .
  • an FM antenna 764 is coupled to the FM radio tuner 762 .
  • stereo headphones 766 can be coupled to the stereo audio CODEC 780 .
  • FM frequency modulation
  • FIG. 7 further indicates that a radio frequency (RF) transceiver 768 can be coupled to the analog baseband processor 726 .
  • An RF switch 770 can be coupled to the RF transceiver 768 and an RF antenna 772 .
  • a keypad 774 can be coupled to the analog baseband processor 726 .
  • a mono headset with a microphone 776 can be coupled to the analog baseband processor 726 .
  • a vibrator device 778 can be coupled to the analog baseband processor 726 .
  • FIG. 7 also shows that a power supply 780 can be coupled to the on-chip system 722 .
  • the power supply 780 is a direct current (DC) power supply that provides power to the various components of the wireless telephone 700 that require power. Further, in a particular embodiment, the power supply is a rechargeable DC battery or a DC power supply that is derived from an alternating current (AC) to DC transformer that is connected to an AC power source.
  • DC direct current
  • AC alternating current
  • the touchscreen display 732 , the video port 738 , the USB port 742 , the camera 748 , the first stereo speaker 784 , the second stereo speaker 786 , the microphone 760 , the FM antenna 764 , the stereo headphones 766 , the RF switch 770 , the RF antenna 772 , the keypad 774 , the mono headset 776 , the vibrator 778 , and the power supply 780 are external to the on-chip system 722 .
  • the digital baseband processor (DSP) 710 may be utilized to perform a single stage discrete cosine transform operation on a signal.
  • the wireless IP telephone 800 includes an on-chip system 802 that includes a digital signal processor (DSP) 804 .
  • the digital signal processor 804 is a VLIW digital signal processor, such as that shown in FIG. 1 and described herein.
  • a display controller 806 is coupled to the DSP 804 and a display 808 is coupled to the display controller 806 .
  • the display 808 is a liquid crystal display (LCD).
  • FIG. 8 further shows that a keypad 810 can be coupled to the DSP 804 .
  • a flash memory 812 can be coupled to the DSP 804 .
  • a synchronous dynamic random access memory (SDRAM) 814 , a static random access memory (SRAM) 816 , and an electrically erasable programmable read only memory (EEPROM) 818 can also be coupled to the DSP 804 .
  • FIG. 8 also shows that a light emitting diode (LED) 820 can be coupled to the DSP 804 .
  • a voice CODEC 822 can be coupled to the DSP 804 .
  • An amplifier 824 can be coupled to the voice CODEC 822 and a mono speaker 826 can be coupled to the amplifier 824 .
  • FIG. 8 further indicates that a mono headset 828 can also be coupled to the voice CODEC 822 .
  • the mono headset 828 includes a microphone.
  • FIG. 8 also illustrates that a wireless local area network (WLAN) baseband processor 830 can be coupled to the DSP 804 .
  • An RF transceiver 832 can be coupled to the WLAN baseband processor 830 and an RF antenna 834 can be coupled to the RF transceiver 832 .
  • a Bluetooth controller 836 can also be coupled to the DSP 804 and a Bluetooth antenna 838 can be coupled to the controller 836 .
  • FIG. 8 also shows that a USB port 840 can also be coupled to the DSP 804 .
  • a power supply 842 is coupled to the on-chip system 802 and provides power to the various components of the wireless IP telephone 800 via the on-chip system 802 .
  • the display 808 , the keypad 810 , the LED 820 , the mono speaker 826 , the mono headset 828 , the RF antenna 834 , the Bluetooth antenna 838 , the USB port 840 , and the power supply 842 are external to the on-chip system 802 .
  • each of these components is coupled to one or more components of the on-chip system.
  • the DSP 804 may be utilized to perform a single stage discrete cosine transform operation on a signal.
  • FIG. 9 illustrates an exemplary, non-limiting embodiment of a portable digital assistant (PDA) that is generally designated 900 .
  • the PDA 900 includes an on-chip system 902 that includes a digital signal processor (DSP) 904 .
  • the digital signal processor 904 is a VLIW digital signal processor, such as that shown in FIG. 1 and described herein.
  • a touchscreen controller 906 and a display controller 908 are coupled to the DSP 904 .
  • a touchscreen display is coupled to the touchscreen controller 906 and to the display controller 908 .
  • FIG. 9 also indicates that a keypad 912 can be coupled to the DSP 904 .
  • a flash memory 914 can be coupled to the DSP 904 .
  • a read only memory (ROM) 916 can be coupled to the DSP 904 .
  • ROM read only memory
  • DRAM dynamic random access memory
  • EEPROM electrically erasable programmable read only memory
  • FIG. 9 also shows that an infrared data association (IrDA) port 922 can be coupled to the DSP 904 .
  • IrDA infrared data association
  • a digital camera 924 can be coupled to the DSP 904 .
  • a stereo audio CODEC 926 can be coupled to the DSP 904 .
  • a first stereo amplifier 928 can be coupled to the stereo audio CODEC 926 and a first stereo speaker 930 can be coupled to the first stereo amplifier 928 .
  • a microphone amplifier 932 can be coupled to the stereo audio CODEC 926 and a microphone 934 can be coupled to the microphone amplifier 932 .
  • FIG. 9 further shows that a second stereo amplifier 936 can be coupled to the stereo audio CODEC 926 and a second stereo speaker 938 can be coupled to the second stereo amplifier 936 .
  • stereo headphones 940 can also be coupled to the stereo audio CODEC 926 .
  • FIG. 9 also illustrates that an 802.11 controller 942 can be coupled to the DSP 904 and an 802.11 antenna 944 can be coupled to the 802.11 controller 942 .
  • a Bluetooth controller 946 can be coupled to the DSP 904 and a Bluetooth antenna 948 can be coupled to the Bluetooth controller 946 .
  • a USB controller 980 can be coupled to the DSP 904 and a USB port 982 can be coupled to the USB controller 980 .
  • a smart card 984 e.g., a multimedia card (MMC) or a secure digital card (SD) can be coupled to the DSP 904 .
  • a power supply 986 can be coupled to the on-chip system 902 and can provide power to the various components of the PDA 900 via the on-chip system 902 .
  • the display 910 , the keypad 912 , the IrDA port 922 , the digital camera 924 , the first stereo speaker 930 , the microphone 934 , the second stereo speaker 938 , the stereo headphones 940 , the 802.11 antenna 944 , the Bluetooth antenna 948 , the USB port 982 , and the power supply 980 are external to the on-chip system 902 .
  • each of these components is coupled to one or more components on the on-chip system.
  • the DSP 904 may be utilized to perform a single stage discrete cosine transform operation on a signal.
  • a software module may reside in RAM memory, flash memory, ROM memory, PROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium.
  • the storage medium may be integral to the processor.
  • the processor and the storage medium may reside in an ASIC.
  • the ASIC may reside in a computing device or a user terminal.
  • the processor and the storage medium may reside as discrete components in a computing device or user terminal.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

A single stage computation method to perform a discrete cosine transform operation is provided. The discrete cosine transform operation is performed by executing a plurality of very large instruction words (VLIW) using a digital signal processor. The plurality of very large instruction words includes a first number of multiplications and a second number of additions, where the first number of multiplications is greater than the second number of additions.

Description

This application is a continuation of U.S. patent application Ser. No. 11/377,134, filed on Mar. 15, 2006, which issued as U.S. Pat. No. 7,725,516 on May 25, 2010 and which claims the benefit of U.S. Provisional Application No. 60/724,131, filed Oct. 5, 2005. Each of the above-referenced applications is incorporated by reference in its entirety.
BACKGROUND
I. Field
The present disclosure generally relates to discrete cosine transforms using digital signal processors. More particularly, the disclosure relates to a system and method of single stage discrete cosine transforms for VLIW-based digital signal processors.
II. Description of Related Art
Conventionally, digital signal processors (DSPs) often utilize very long instruction word (VLIW) architectures. A VLIW-based DSP can perform multiple operations within a single clock cycle. For example, a VLIW-based DSP can perform multiply-accumulate (MAC), Arithmetic Logic Unit (ALU), and memory load/store operations in a single cycle. The computing power of such DSPs makes it possible to implement a DSP-based multimedia system, which offers great flexibility and cost effectiveness.
A discrete cosine transform (DCT) is a mathematical operation that can be performed on a signal to convert the signal from the time domain to the frequency domain for further processing. The DCT has become a core technology in both still image and video compression standards, including Joint Photographic Experts Group (JPEG) lossy compression, Moving Picture Experts Group (MPEG) standards 1, 2 and 4, and the like.
Advances in technology have resulted in smaller and more powerful personal computing devices, many of which provide image and/or video capabilities. For example, there currently exist a variety of portable personal computing devices, including wireless computing devices, such as portable wireless telephones, personal digital assistants (PDAs), and paging devices that are small, lightweight, and easily carried by users. Many of such portable personal computing devices include a digital still camera, a digital video camera, a digital recorder, an audio file player, or any combination thereof. Additionally, a portable personal computing device can include a web interface that can be used to access the Internet. Consequently, many of the portable personal computing devices include DSPs.
To improve system performance and to save DSP cycles for use in other processes, various fast algorithms have been proposed to compute the DCT more efficiently by exploiting symmetric properties of the DCT. Conventionally, such fast algorithms have focused on reducing the number of multiplications under the assumption that multiplication takes longer than addition in the core processor. However, the assumption is no longer true for modern DSP architectures with single cycle multiplication instructions. Furthermore, existing DCT algorithms often include multiple stages that inhibit exploitation of the DSPs capabilities due to data dependency between stages.
Accordingly, it would be advantageous to provide an improved DCT algorithm for in a VLIW-based DSP.
SUMMARY
In a particular embodiment, a single stage computation method to perform a discrete cosine transform operation is provided. The discrete cosine transform operation is performed by executing a plurality of very large instruction words (VLIW) using a digital signal processor. The plurality of very large instruction words includes a first number of multiplications and a second number of additions, where the first number of multiplications is greater than the second number of additions.
In one particular embodiment, the discrete cosine transform operation is performed on an eight point data set. In another particular embodiment, the discrete cosine transform operation is performed on an eight by eight point matrix data set. In another particular embodiment, the plurality of VLIW instructions are without data dependencies such that the discrete cosine transform can be performed in a single stage of execution. In yet another embodiment, the discrete cosine transform operation includes applying a one-dimensional eight-point DCT transform operation to each column of an input matrix data set to produce an intermediate matrix, and applying the one-dimensional eight-point DCT transform to each row of the intermediate matrix to produce a transformed matrix data set. In another particular embodiment, the first number of multiplications includes 30 multiplication operations and the second number of additions includes up to 12 additions.
In another particular embodiment, a method to perform a discrete cosine transform operation is provided. An input data set is received. The input data set is processed by executing a plurality of very large instruction words to perform a single-stage discrete cosine transform operation on the input data set to produce a transformed data set. In another particular embodiment, processing the input data set includes calculating a plurality of scalars related to the input data set, multiplying the plurality of scalars with a kernel matrix to produce a plurality of products, and summing the plurality of products to produce the transformed data set.
In yet another particular embodiment, the plurality of very large instruction words includes a first number of multiplications and a second number of additions and wherein the first number is greater than the second number. In another particular embodiment, the input data set is an eight point data set. In another particular embodiment, the input data set is an eight by eight matrix data set.
In still another embodiment, a communications device includes a memory and a digital signal processor. The memory is adapted to store a set of very large instruction words to execute a single stage discrete cosine transform operation. The digital signal processor is adapted to execute the set of very large instruction words to produce a transformed data set from an input data set.
In a particular embodiment, the digital signal processor is adapted to perform two multiply-accumulate operations, an arithmetic logic unit operation, and a memory load/store operation in a single clock cycle. In another particular embodiment, the digital signal processor is adapted to process images compressed according to a Joint Photographic Experts Group (JPEG) format. In another particular embodiment, the digital signal processor is adapted to process video compressed according to a moving picture experts group (MPEG) format. In another particular embodiment, the digital signal processor performs an 8×8 transform in less than 300 clock cycles.
In a particular embodiment, the communications device is a mobile telephone. In another particular embodiment, the communications device comprises a voice over Internet protocol (VoIP) phone.
In a particular embodiment, a digital signal processor includes an instruction set of very large instruction words and a processor. The instruction set of very large instruction words (VLIW) is adapted to execute a discrete cosine transform (DCT) operation having more multiply operations than addition operations. The processor is adapted to execute the instruction set to perform the DCT operation on an input data set to produce a transform data set.
In another particular embodiment, the processor executes the instruction set in a single stage. In another particular embodiment, the DCT operation includes a first number of multiply operations and a second number of addition operations, where the first number of multiply operations is twice as large as the second number of additional operations. In still another embodiment, the input data set comprises an 8×8 matrix data set.
In a particular embodiment, a communications system includes means for storing a set of instruction, the set of instructions comprising a plurality of very large instruction words (VLIWs) defining a discrete cosine transform (DCT) operation, means for receiving an input data set, and means for performing the discrete cosine transform operation by executing the plurality of very large instruction words (VLIW) on the input data set, where the plurality of very large instruction words includes a first number of multiplications and a second number of additions and wherein the first number is greater than the second number.
In another particular embodiment, a single stage computation method to perform a discrete cosine transform operation is provided. A plurality of very large instruction words (VLIW) is broken into a plurality of basic instructions to execute a discrete cosine transform (DCT) operation. At least two of the plurality of basic instructions are executed concurrently to perform a discrete cosine transform (DCT) operation on the input data set in a single stage. A transform data set is generated that is related to performance of the DCT operation on the input data set.
Further, in a particular embodiment, the plurality of very large instruction words includes a first number of multiplications and a second number of additions, where the first number of multiplications is at least twice as large as the second number of additions.
An advantage of one or more embodiments disclosed herein can include performing a discrete cosine transform (DCT) operation in a single stage.
Another advantage of one or more embodiments disclosed herein can include performing a discrete cosine transform (DCT) operation in a processor in fewer than half of the clock cycles of a conventional four-stage DCT operation.
Yet another advantage of one or more embodiments disclosed herein can include performing a discrete cosine transform (DCT) operation without data dependence between stages of the transform operation.
Other aspects, advantages, and features of the present disclosure will become apparent after review of the entire application, including the following sections: Brief Description of the Drawings, Detailed Description, and the Claims.
BRIEF DESCRIPTION OF THE DRAWINGS
The aspects and the attendant advantages of the embodiments described herein will become more readily apparent by reference to the following detailed description when taken in conjunction with the accompanying drawings wherein:
FIG. 1 is block diagram illustrating a very long instruction word (VLIW) digital signal processor (DSP) adapted to perform a single stage discrete cosine transform (DCT) operation on a signal;
FIG. 2 is a general diagram illustrating a method of performing a discrete cosine transform (DCT) operation using a VLIW processor, such as that shown in FIG. 1;
FIG. 3 is a flow diagram illustrating a method of performing a DCT operation using a VLIW processor.
FIG. 4 is a block diagram of a communications device incorporating a VLIW digital signal processor (DSP);
FIG. 5 is a flow diagram illustrating a method of performing a 1-Dimensional 8×8 DCT operation using a VLIW DSP, such as that shown in FIG. 4;
FIG. 6 is a general diagram of a portable communication device incorporating a digital signal processor;
FIG. 7 is a general diagram of an exemplary wireless telephone incorporating a digital signal processor;
FIG. 8 is a general diagram of an exemplary wireless Internet Protocol telephone incorporating a digital signal processor; and
FIG. 9 is a general diagram of an exemplary portable digital assistant incorporating a digital signal processor.
DETAILED DESCRIPTION
FIG. 1 is block diagram illustrating a very long instruction word (VLIW) digital signal processor (DSP) 100 adapted to perform a single stage discrete cosine transform (DCT) operation. The VLIW DSP 100 includes an instruction cache 102, an instruction register 104, execution units 106, 108, 110, 112, a data cache 114, and a register file 116. The instruction cache 102 is connected to the instruction register 104 to load instructions from the cache 102 to the instruction register 104. The instruction register 104 is connected to the execution units 106, 108, 110, and 112 via a bus 120. The execution units 106, 108, 110, and 112 are connected to the data cache 114 and to the register file 116 via a bus 122.
The VLIW DSP 100 also includes a memory 124 that includes a set of program instructions 126 for a single stage DCT operation. While the memory 124 is shown as part of the processor 100, it should be understood that the memory 124 may be implemented as a system memory separate from the VLIW DSP 100 and coupled to the VLIW DSP 100 via a system bus.
The VLIW DSP 100 is adapted to receive very large instruction words, which are words containing multiple instructions. The VLIW DSP 100 may include a pre-processor (not shown) that breaks down the received VLIWs into basic operations that can be performed by the execution units 106, 108, 110 and 112 in parallel.
In general, the set of instructions 126 implement a fast DCT algorithm for digital signal processing. Instead of reducing the number of multiplications, the fast DCT algorithm utilizes the functionality of the VLIW DSP 100 to reduce the number of clock cycles by adapting the DCT algorithm to the architecture of the VLIW DSP 100. While conventional implementations of the DCT algorithm utilize multiple stages to calculate a DCT vector from a given input vector with data dependency between the stages, the set of instructions 126 provides a fast DCT algorithm that allows the DCT vector to be calculated in a single stage. This single stage DCT operation eliminates the data dependency between the multiple stages of conventional systems. Moreover, the single stage DCT operation reduces the number of clock cycles needed by the VLIW DSP 100 to perform the DCT operation.
In general, in many image compression and video compression systems, an image is divided into 8×8 data blocks. Each 8×8 data block is processed using a 2-dimensional 8×8 DCT transform operation. The 2-dimensional 8×8 DCT transform operation can be separated into two 1-dimensional 8 point DCT transform operations.
Generally, the 1-dimensional DCT transform operation can be performed using a vector multiplication process. The input vector (x) is multiplied by a DCT transform kernel matrix (C) to produce a DCT transform vector (s). Given an 8-point vector x=[x0 x1 x2 x3 x4 x5 x6 x7]T, a DCT transform vector s=[s0 s1 s2 s3 s4 s5 s6 s7]T can be calculated using the equation (s=Cx), where the kernel matrix (C) is defined as follows:
C i , j = { 1 8 cos ( 2 j + 1 ) i π 16 i = 0 , j = 0 , 1 , , 7 2 8 cos ( 2 j + 1 ) i π 16 i = 1 , 2 , , 7 , j = 0 , 1 , , 7 } ( Equation 1 )
The variable i represents a row index {i=0, 1, . . . , 7} of the kernel matrix (C), and the variable j represents a column index {j=0, 1, . . . , 7} of the kernel matrix (C). By evaluating the kernel matrix (C) for the values of i and j, the Equation 1 results in several observable symmetries:
1. For the subset of the matrix Ci,j {i=0 and j=0, 1, . . . , 7},
C i , j = 1 8 ;
2. For the subset of the matrix Ci,j {i=2,6 and j=0, 1, . . . , 7}, Ci,j=Ci,(7−j), and when j=0, 1, 2, or 3, Ci,j=−Ci,(3−j);
3. For the subset of the matrix Ci,j {i=4 and j=0, 1, . . . , 7}, Ci,j=Ci,(7−j), and when j=0, 1, 2, or 3, Ci,j=Ci,(3−j); and
4. For the subset of the matrix Ci,j {i=1, 3, 5, 7 and j=0, 1, . . . , 7}, Ci,j=−Ci,(7−j).
The observed symmetries provide a path for simplification of the DCT operation. For example, the 1-dimensional 8-point kernel matrix (C) can be simplified to make use of the observed symmetries. In particular, certain calculations may be reused within the matrix to reduce the overall number of calculations.
The kernel matrix (C) may be rewritten as follows:
C = [ c 00 c 00 c 00 c 00 c 00 c 00 c 00 c 00 c 10 c 11 c 12 c 13 - c 13 - c 12 - c 11 - c 10 c 20 c 21 - c 21 - c 20 - c 20 - c 21 c 21 c 20 c 30 c 31 c 32 c 33 - c 33 - c 32 - c 31 - c 30 c 40 c 41 c 41 c 40 c 40 c 41 c 41 c 40 c 50 c 51 c 52 c 53 - c 53 - c 52 - c 51 - c 50 c 60 c 61 - c 61 - c 60 - c 60 - c 61 c 61 c 60 c 70 c 71 c 72 c 73 - c 73 - c 72 - c 71 - c 70 ] ( Equation 2 )
Using the kernel matrix (C) and the observations above, the DCT algorithm can be designed as a series of matrix operations. Given x=[x0 x1 x2 x3 x4 x5 x6 x7]T, a DCT transform vector s=[s0 s1 s2 s3 s4 s5 s6 s7]T can be calculated by multiplying the vector x with the kernel matrix (C) as follows:
s 0 =c 00 ×x 0 +c 00 ×x 1 , t 0 =x 0 −x 7  (Equation 3)
s 0 +=c 00 ×x 2 +c 00 ×x 3 , t 1 =x 1 −x 6  (Equation 4)
s 0 +=c 00 ×x 4 +c 00 ×x 5 , t 2 =x 2 −x 5  (Equation 5)
s 0 +=c 00 ×x 6 +c 00 ×x 7 , t 3 =x 3 −x 4  (Equation 6)
It should be appreciated that, for example, Equation 3 above includes a multiply-accumulate operation and a arithmetic logic unit operation, which a very long instruction word (VLIW) processor can process within a single clock cycle. With this set of calculations, the first element (s0) of the resultant transform vector (s) is calculated. Additionally, a first set of scalars (t0, t1, t2, and t3) has been calculated for use in calculating the odd elements (s1, s3, s5, s7) of the resultant transform vector (s) as follows.
s 1 =c 10 ×t 0 +c 11 ×t 1 , t 4 −x 0 +x 7  (Equation 7)
s 1 +=c 12 ×t 2 +c 13 ×t 3 , t 5 =x 1 +x 6  (Equation 8)
s 3 =c 30 ×t 0 +c 31 ×t 1 , t 6 =x 2 +x 5  (Equation 9)
s 3 +=c 32 ×t 2 +c 33 ×t 3 , t 7 =x 3 +x 4  (Equation 10)
s 5 =c 50 ×t 0 +c 51 ×t 1 , t 8 =t 4 −t 7  (Equation 11)
s 5 +=c 52 ×t 2 +c 53 ×t 3 , t 9 =t 5 −t 6  (Equation 12)
s 7 =c 70 ×t 0 +c 71 ×t 1 , t 10 =t 4 +t 7  (Equation 13)
s 7 +=c 72 ×t 2 +c 73 ×t 3 , t 11 =t 5 +t 6  (Equation 14)
With this set of calculations, the odd elements (s1, s3, s5 and s7) of the resultant transform vector (s) are calculated, together with another set of scalars (t4, t5, t6, t7, t8, t9, t10, and t11). The scalars (t4, t5, t6, and t7) are based on elements of the input vector (x), while scalars (t8, t9, t10, and t11) are based on the other scalars (t4 through t7). This latter set of scalars (t8 through t11) can be utilized to calculate the remaining even elements (s2, s4, and s6) of the resultant transform vector (s) as follows.
s 2 =c 20 ×t 8 +c 21 ×t 9  (Equation 15)
s 4 =c 40 ×t 10 +c 41 ×t 11  (Equation 16)
s 6 =c 60 ×t 8 +c 62 ×t 9  (Equation 17)
With this set of calculations, the remaining even elements (s2, s4, and s6) of the resultant DCT vector (s) can be calculated.
As can be seen, the above set of equations can be implemented with 30 multiplication operations and up to 12 addition operations. Thus, a representative VLIW DSP can perform the above-equations in 297 clock cycles, which is less than half of the number of clock cycles required for a traditional DCT operation. Moreover, the above-equations are not data dependent, which fits the VLIW DSP architecture well.
FIG. 2 is a block diagram 200 illustrating a method of performing a discrete cosine transform (DCT) operation using a VLIW processor, such as that shown in FIG. 1. In general, a 2-dimensional 8×8 DCT transform operation can be implemented by executing two 1-dimensional 8×8 DCT transform operations. The input, indicated by block 202, is processed at block 204 by applying a 1-dimensional 8-point DCT operation to each column (as indicated by arrows 210) of the input matrix 202 to produce an intermediate matrix 206. The intermediate matrix 206 is processed by applying a 1-dimensional 8-point DCT operation to each row (as indicated by arrows 212) of the intermediate matrix 206 to produce a resultant 2-dimensional 8×8 DCT matrix 208.
FIG. 3 is a flow diagram illustrating a method of performing a DCT operation using a VLIW digital signal processor (DSP). A 1-dimensional 8-point discrete cosine transform (DCT) is applied to each column of a 2-dimensional 8×8 matrix to produce an intermediate 8×8 matrix (block 300). A 1-dimensional 8-point DCT is applied to each row of the intermediate 8×8 matrix to produce the 2-dimensional 8×8 DCT matrix (block 302).
FIG. 4 is a block diagram of a communications device 400 incorporating a VLIW digital signal processor (DSP). The communications device 400 includes an integrated circuit 402 coupled to a display 404. The integrated circuit 402 includes a modem 406, an advanced RISC machines processor 408, a very long instruction word (VLIW) digital signal processor (DSP) 410, one or more processors 412, a system memory 414, and a display processor 416. The modem 406, the advanced RISC machines processor 408, the VLIW DSP 410, the processors 412, the system memory 414, and the display processor 416 are coupled to one another via a bus 418. In general, the bus 418 may be coupled to one or more input interfaces, including a keypad, a universal serial bus interface, a microphone, a speaker, and various other components, which are omitted for simplicity. In this instance, the memory 414 stores single stage DCT instructions 126 for execution by the VLIW digital signal processor (DSP) 410 to perform the 2-dimensional 8×8 DCT operation, such as that described in FIGS. 2 and 3 above.
The advanced RISC machines processor 408 may be used for controlling various processes, including execution of games, coordination of graphics decoding using other processors 412, and the like. The modem 406 is a modulator/demodulator for communicating with external devices, via a communications interface (not shown) that either is connected to the bus 418 or is coupled to the modem 406. The communications device 400 may be wired or wireless, depending on the particular implementation.
In general, a video or an image is provided to the VLIW digital signal processor 410, which processes the video or the image using the processor-readable single stage DCT instructions provided from the system memory 414. The resultant decoded video or image is then provided by the VLIW digital signal processor 410 to the display processor 416 via the bus 418, which provides the decoded video or image to the display 404, which may be a liquid crystal display (LCD) for example. In one embodiment, the VLIW DSP 410 is a QDSP-4 platform chip, such as that produced by Qualcomm, Incorporated of San Diego, Calif.
The single stage DCT instructions 126 may be executed to perform the algorithm described in Equations 1-17 above. The algorithm may readily be used with other DSPs with a VLIW architecture. Moreover, the algorithm can readily be scaled according to the resources in the selected DSP. For example, if a particular DSP is capable of performing four Multiply-accumulate operations (MACs) and two arithmetic logic unit operations (ALUs) per clock cycle, the single stage DCT instructions 126 may be adapted to use this DSP architecture by merging MAC and ALU operations. While the above-equations describe an 8-point DCT operation, the algorithm and the associated equations may be scaled to other DCT transform operations, including a 16-point DCT transform. Moreover, the equations may be extended for use with the inverse DCT (IDCT) operation. In general, the processor may be adapted to perform a discrete cosine transform (DCT) operation by executing a plurality of very large instruction words (VLIW) using a digital signal processor. The plurality of VLIWs can include a first number of multiplications and a second number of additions, wherein the first number is greater than the second number.
FIG. 5 is a flow diagram illustrating a method of performing a 1-Dimensional 8×8 DCT operation using a VLIW DSP. An 8-point vector (x) is received, where x=[x0 x1 x2 x3 x4 x5 x6 x7]T (block 500). The vector (x) is multiplied by a first even row (c0,j) of a DCT 8×8 kernel matrix (C) to form eight products (block 502). The eight products are then added together to produce the first element (s0) of the 8-point DCT vector (s) (block 504). A first set of scalars (t) are calculated from selected elements of the vector (x) (as shown in equations 3-6 above) (block 506). It should be understood that the multiply-accumulate and add operations of blocks 502, 504 and 506 may occur concurrently. Alternatively, block 506 may occur before blocks 502 and 504.
The odd rows of the DCT 8×8 matrix (C) are multiplied with selected scalars of the first set of scalars (t) to produce a set of products related to each odd row of the matrix (C) (block 508). The set of products for each row are added together to produce the odd elements (s1, s3, s5, and s7) of the 8-point DCT vector (s) (block 510). The second set of scalars (t2) are calculated from selected elements of the first set of scalars (t) (as shown in equations 7-14 above) (block 512). It should be understood that the multiply-accumulate and add operations of blocks 508, 510, and 512 may occur concurrently or in a different order.
The remaining even rows (c2, c4, and c6) of the DCT 8×8 kernel matrix (C) are multiplied with selected scalars of the second set of scalars (t2) to produce a set of products related to each of the remaining even rows (c2, c4, and c6) (block 514). The set of products are added together for each of the remaining even rows (c2, c4, and c6) to produce the even elements (s2, s4, and s6) of the 8-point DCT vector (s) (block 516).
In general, the above-described discrete cosine transform (DCT) operation can be adapted to operate in a single stage DSP. Instead of simplifying the algorithm to include more add operations than multiply operations, the algorithm has 30 multiply operation sand only 12 additions. Moreover, the 8-point DCT operation can reduce the number of clock cycles required for an 8×8 DCT transform on a VLIW DSP to only 297 cycles, from 599 cycles required for conventional DCT decoding operations, such as that described by C. Loeffler et al., “Practical Fast 1-D DCT algorithm with 11 multiplications,” IEEE Transactions on Acoustics, Speech and Signal Processing, (1989) ICASSP-89, Vol. 2, pp. 988-991. The single stage DCT operation described in equations 4-17 above provides more than 50% improvement in terms of the number of clock cycles required to perform a DCT operation, improving JPEG encoding/decoding latency and DCT-based video encoding/decoding performance.
FIG. 6 illustrates an exemplary, non-limiting embodiment of a portable communication device that is generally designated 600. As illustrated in FIG. 6, the portable communication device includes an on-chip system 622 that includes a digital signal processor 610. In a particular embodiment, the digital signal processor 610 is a VLIW digital signal processor, such as that shown in FIG. 1 and described herein. FIG. 6 also shows a display controller 626 that is coupled to the digital signal processor 610 and a display 628. Moreover, an input device 630 is coupled to the digital signal processor 610. As shown, a memory 632 is coupled to the digital signal processor 610. Additionally, a coder/decoder (CODEC) 634 can be coupled to the digital signal processor 610. A speaker 636 and a microphone 638 can be coupled to the CODEC 630.
FIG. 6 also indicates that a wireless controller 640 can be coupled to the digital signal processor 610 and a wireless antenna 642. In a particular embodiment, a power supply 644 is coupled to the on-chip system 622. Moreover, in a particular embodiment, as illustrated in FIG. 6, the display 628, the input device 630, the speaker 636, the microphone 638, the wireless antenna 642, and the power supply 644 are external to the on-chip system 622. However, each is coupled to a component of the on-chip system 622.
In a particular embodiment, the digital signal processor 610 may process instructions associated with programs necessary to perform the functionality and operations needed by the various components of the portable communication device 600. For example, when a wireless communication session is established via the wireless antenna a user can speak into the microphone 638. Electronic signals representing the user's voice can be sent to the CODEC 634 to be encoded. The digital signal processor 610 can perform data processing for the CODEC 634 to encode the electronic signals from the microphone. Further, incoming signals received via the wireless antenna 642 can be sent to the CODEC 634 by the wireless controller 640 to be decoded and sent to the speaker 636. The digital signal processor 610 can also perform the data processing for the CODEC 634 when decoding the signal received via the wireless antenna 642.
Further, before, during, or after the wireless communication session, the digital signal processor 610 can process inputs that are received from the input device 630. For example, during the wireless communication session, a user may be using the input device 630 and the display 628 to surf the Internet via a web browser that is embedded within the memory 632 of the portable communication device 600. Many of the instructions associated with a program may be executed concurrently during one or more clock cycles. The DSP 610 may be utilized to perform a single stage discrete cosine transform operation.
Referring to FIG. 7, an exemplary, non-limiting embodiment of a wireless telephone is shown and is generally designated 700. As shown, the wireless telephone 700 includes an on-chip system 722 that includes a digital baseband processor 710 and an analog baseband processor 726 that are coupled together. In a particular embodiment, the digital baseband processor 710 is a VLIW digital signal processor, such as that shown in FIG. 1 and described herein. As illustrated in FIG. 7, a display controller 728 and a touchscreen controller 730 are coupled to the digital baseband processor 710. In turn, a touchscreen display 732 external to the on-chip system 722 is coupled to the display controller 728 and the touchscreen controller 730.
FIG. 7 further indicates that a video encoder 734, e.g., a phase alternating line (PAL) encoder, a sequential couleur a memoire (SECAM) encoder, or a national television system(s) committee (NTSC) encoder, is coupled to the digital baseband processor 710. Further, a video amplifier 736 is coupled to the video encoder 734 and the touchscreen display 732. Also, a video port 738 is coupled to the video amplifier 736. As depicted in FIG. 7, a universal serial bus (USB) controller 740 is coupled to the digital baseband processor 710. Also, a USB port 742 is coupled to the USB controller 740. A memory 744 and a subscriber identity module (SIM) card 746 can also be coupled to the digital baseband processor 710. Further, as shown in FIG. 7, a digital camera 748 can be coupled to the digital baseband processor 710. In an exemplary embodiment, the digital camera 748 is a charge-coupled device (CCD) camera or a complementary metal-oxide semiconductor (CMOS) camera.
As further illustrated in FIG. 7, a stereo audio CODEC 780 can be coupled to the analog baseband processor 726. Moreover, an audio amplifier 782 can coupled to the to the stereo audio CODEC 780. In an exemplary embodiment, a first stereo speaker 784 and a second stereo speaker 786 are coupled to the audio amplifier 782. FIG. 7 shows that a microphone amplifier 788 can be also coupled to the stereo audio CODEC 780. Additionally, a microphone 760 can be coupled to the microphone amplifier 788. In a particular embodiment, a frequency modulation (FM) radio tuner 762 can be coupled to the stereo audio CODEC 780. Also, an FM antenna 764 is coupled to the FM radio tuner 762. Further, stereo headphones 766 can be coupled to the stereo audio CODEC 780.
FIG. 7 further indicates that a radio frequency (RF) transceiver 768 can be coupled to the analog baseband processor 726. An RF switch 770 can be coupled to the RF transceiver 768 and an RF antenna 772. As shown in FIG. 7, a keypad 774 can be coupled to the analog baseband processor 726. Also, a mono headset with a microphone 776 can be coupled to the analog baseband processor 726. Further, a vibrator device 778 can be coupled to the analog baseband processor 726. FIG. 7 also shows that a power supply 780 can be coupled to the on-chip system 722. In a particular embodiment, the power supply 780 is a direct current (DC) power supply that provides power to the various components of the wireless telephone 700 that require power. Further, in a particular embodiment, the power supply is a rechargeable DC battery or a DC power supply that is derived from an alternating current (AC) to DC transformer that is connected to an AC power source.
In a particular embodiment, as depicted in FIG. 7, the touchscreen display 732, the video port 738, the USB port 742, the camera 748, the first stereo speaker 784, the second stereo speaker 786, the microphone 760, the FM antenna 764, the stereo headphones 766, the RF switch 770, the RF antenna 772, the keypad 774, the mono headset 776, the vibrator 778, and the power supply 780 are external to the on-chip system 722. The digital baseband processor (DSP) 710 may be utilized to perform a single stage discrete cosine transform operation on a signal.
Referring to FIG. 8, an exemplary, non-limiting embodiment of a wireless Internet protocol (IP) telephone is shown and is generally designated 800. As shown, the wireless IP telephone 800 includes an on-chip system 802 that includes a digital signal processor (DSP) 804. In a particular embodiment, the digital signal processor 804 is a VLIW digital signal processor, such as that shown in FIG. 1 and described herein. As illustrated in FIG. 8, a display controller 806 is coupled to the DSP 804 and a display 808 is coupled to the display controller 806. In an exemplary embodiment, the display 808 is a liquid crystal display (LCD). FIG. 8 further shows that a keypad 810 can be coupled to the DSP 804.
As further depicted in FIG. 8, a flash memory 812 can be coupled to the DSP 804. A synchronous dynamic random access memory (SDRAM) 814, a static random access memory (SRAM) 816, and an electrically erasable programmable read only memory (EEPROM) 818 can also be coupled to the DSP 804. FIG. 8 also shows that a light emitting diode (LED) 820 can be coupled to the DSP 804. Additionally, in a particular embodiment, a voice CODEC 822 can be coupled to the DSP 804. An amplifier 824 can be coupled to the voice CODEC 822 and a mono speaker 826 can be coupled to the amplifier 824. FIG. 8 further indicates that a mono headset 828 can also be coupled to the voice CODEC 822. In a particular embodiment, the mono headset 828 includes a microphone.
FIG. 8 also illustrates that a wireless local area network (WLAN) baseband processor 830 can be coupled to the DSP 804. An RF transceiver 832 can be coupled to the WLAN baseband processor 830 and an RF antenna 834 can be coupled to the RF transceiver 832. In a particular embodiment, a Bluetooth controller 836 can also be coupled to the DSP 804 and a Bluetooth antenna 838 can be coupled to the controller 836. FIG. 8 also shows that a USB port 840 can also be coupled to the DSP 804. Moreover, a power supply 842 is coupled to the on-chip system 802 and provides power to the various components of the wireless IP telephone 800 via the on-chip system 802.
In a particular embodiment, as indicated in FIG. 8, the display 808, the keypad 810, the LED 820, the mono speaker 826, the mono headset 828, the RF antenna 834, the Bluetooth antenna 838, the USB port 840, and the power supply 842 are external to the on-chip system 802. However, each of these components is coupled to one or more components of the on-chip system. The DSP 804 may be utilized to perform a single stage discrete cosine transform operation on a signal.
FIG. 9 illustrates an exemplary, non-limiting embodiment of a portable digital assistant (PDA) that is generally designated 900. As shown, the PDA 900 includes an on-chip system 902 that includes a digital signal processor (DSP) 904. In a particular embodiment, the digital signal processor 904 is a VLIW digital signal processor, such as that shown in FIG. 1 and described herein. As depicted in FIG. 9, a touchscreen controller 906 and a display controller 908 are coupled to the DSP 904. Further, a touchscreen display is coupled to the touchscreen controller 906 and to the display controller 908. FIG. 9 also indicates that a keypad 912 can be coupled to the DSP 904.
As further depicted in FIG. 9, a flash memory 914 can be coupled to the DSP 904. Also, a read only memory (ROM) 916, a dynamic random access memory (DRAM) 918, and an electrically erasable programmable read only memory (EEPROM) 920 can be coupled to the DSP 904. FIG. 9 also shows that an infrared data association (IrDA) port 922 can be coupled to the DSP 904. Additionally, in a particular embodiment, a digital camera 924 can be coupled to the DSP 904.
As shown in FIG. 9, in a particular embodiment, a stereo audio CODEC 926 can be coupled to the DSP 904. A first stereo amplifier 928 can be coupled to the stereo audio CODEC 926 and a first stereo speaker 930 can be coupled to the first stereo amplifier 928. Additionally, a microphone amplifier 932 can be coupled to the stereo audio CODEC 926 and a microphone 934 can be coupled to the microphone amplifier 932. FIG. 9 further shows that a second stereo amplifier 936 can be coupled to the stereo audio CODEC 926 and a second stereo speaker 938 can be coupled to the second stereo amplifier 936. In a particular embodiment, stereo headphones 940 can also be coupled to the stereo audio CODEC 926.
FIG. 9 also illustrates that an 802.11 controller 942 can be coupled to the DSP 904 and an 802.11 antenna 944 can be coupled to the 802.11 controller 942. Moreover, a Bluetooth controller 946 can be coupled to the DSP 904 and a Bluetooth antenna 948 can be coupled to the Bluetooth controller 946. As depicted in FIG. 9, a USB controller 980 can be coupled to the DSP 904 and a USB port 982 can be coupled to the USB controller 980. Additionally, a smart card 984, e.g., a multimedia card (MMC) or a secure digital card (SD) can be coupled to the DSP 904. Further, as shown in FIG. 9, a power supply 986 can be coupled to the on-chip system 902 and can provide power to the various components of the PDA 900 via the on-chip system 902.
In a particular embodiment, as indicated in FIG. 9, the display 910, the keypad 912, the IrDA port 922, the digital camera 924, the first stereo speaker 930, the microphone 934, the second stereo speaker 938, the stereo headphones 940, the 802.11 antenna 944, the Bluetooth antenna 948, the USB port 982, and the power supply 980 are external to the on-chip system 902. However, each of these components is coupled to one or more components on the on-chip system. The DSP 904 may be utilized to perform a single stage discrete cosine transform operation on a signal.
Those of skill would further appreciate that the various illustrative logical blocks, configurations, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, configurations, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, PROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a computing device or a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a computing device or user terminal.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features as defined by the following claims.

Claims (16)

1. An apparatus for performing a discrete cosine transform operation, comprising:
a non-transitory computer-readable storage medium having stored thereon a plurality of very large instruction word (VLIW) instructions, which when executed by a processor, cause the processor to perform acts comprising:
performing a discrete cosine transform operation on an input data set indicative of audio, image, or video data to produce a transformed data set,
wherein the plurality of very large instruction words includes a first number of multiplications multiply accumulate operations and a second number of additions and
wherein the first number of multiply accumulate operations is greater than the second number of additions.
2. The apparatus of claim 1, wherein the discrete cosine transform operation is performed on an eight point data set.
3. The apparatus of claim 1, wherein the discrete cosine transform operation is performed on an eight by eight point matrix data set.
4. The apparatus of claim 1, wherein the plurality of VLIW instructions are without data dependencies such that the discrete cosine transform can be performed in a single stage of execution.
5. The apparatus of claim 1, wherein the instructions further cause the processor to perform acts comprising:
applying a one-dimensional eight-point DCT transform operation to each column of an input matrix data set to produce an intermediate matrix; and
applying the one-dimensional eight-point DCT transform to each row of the intermediate matrix to produce a transformed matrix data set.
6. The apparatus of claim 1, wherein the first number of multiply-accumulate operations multiplications comprises 30 multiplication multiply-accumulate operations and wherein the second number of additions comprises 12 additions.
7. An apparatus for processing signals, the apparatus comprising:
a non-transitory computer readable memory having stored thereon a set of very large instruction words to execute one or more single stage one-dimensional (1D) discrete cosine transform operations when the instruction words are executed by a digital signal processor adapted to execute the set of very large instruction words to produce a transformed data set from an input data set indicative of audio, image, or video data.
8. The apparatus of claim 7, wherein the digital signal processor is adapted to perform two multiply-accumulate operations, an arithmetic logic unit operation, and a memory load/store operation in a single clock cycle.
9. The apparatus of claim 7, wherein the digital signal processor is adapted to process images compressed according to a Joint Photographic Experts Group (JPEG) format.
10. The apparatus of claim 7, wherein the digital signal processor is adapted to process video compressed according to a moving picture experts group (MPEG) format.
11. The apparatus of claim 7, wherein the digital signal processor performs an 8×8 transform in less than 300 clock cycles.
12. The apparatus of claim 7, wherein the communications device comprises a mobile telephone.
13. The apparatus of claim 7, wherein the communications device comprises a voice over Internet protocol (VoIP) phone.
14. The apparatus of claim 7, wherein the set of very large instruction words includes a first number of multiplications multiply-accumulate operations and a second number of additions and wherein the first number of multiplications multiply-accumulate operations is at least twice as large as the second number of additions.
15. A non-transitory computer-readable storage medium having stored thereon instructions that when executed by a processor cause the processor to perform a one-dimensional (1D) discrete cosine transform (DCT) operation in a single stage computation, the instructions causing the processor to:
break a plurality of very large instruction words (VLIW) into a plurality of basic instructions to execute the 1D DCT discrete cosine transform (DCT) operation;
execute, with the processor, at least two of the plurality of basic instructions concurrently to perform the 1D DCT discrete cosine transform (DCT) operation on an input data set indicative of audio, image, or video data in a single stage; and
generate, with the processor, a transform data set related to performance of the 1D DCT operation on the input data set.
16. The computer readable medium of claim 15, wherein the plurality of very large instruction words includes a first number of multiplications multiply-accumulate operations and a second number of additions and wherein the first number of multiplications multiply-accumulate operations is at least twice as large as the second number of additions.
US12/787,102 2005-10-05 2010-05-25 Fast DCT algorithm for DSP with VLIW architecture Active 2027-03-15 US8396916B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/787,102 US8396916B2 (en) 2005-10-05 2010-05-25 Fast DCT algorithm for DSP with VLIW architecture

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US72413105P 2005-10-05 2005-10-05
US11/377,134 US7725516B2 (en) 2005-10-05 2006-03-15 Fast DCT algorithm for DSP with VLIW architecture
US12/787,102 US8396916B2 (en) 2005-10-05 2010-05-25 Fast DCT algorithm for DSP with VLIW architecture

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/377,134 Continuation US7725516B2 (en) 2005-10-05 2006-03-15 Fast DCT algorithm for DSP with VLIW architecture

Publications (2)

Publication Number Publication Date
US20100235421A1 US20100235421A1 (en) 2010-09-16
US8396916B2 true US8396916B2 (en) 2013-03-12

Family

ID=37903117

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/377,134 Expired - Fee Related US7725516B2 (en) 2005-10-05 2006-03-15 Fast DCT algorithm for DSP with VLIW architecture
US12/787,102 Active 2027-03-15 US8396916B2 (en) 2005-10-05 2010-05-25 Fast DCT algorithm for DSP with VLIW architecture

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/377,134 Expired - Fee Related US7725516B2 (en) 2005-10-05 2006-03-15 Fast DCT algorithm for DSP with VLIW architecture

Country Status (7)

Country Link
US (2) US7725516B2 (en)
EP (1) EP1952269A2 (en)
JP (1) JP4801163B2 (en)
KR (1) KR101041760B1 (en)
CN (1) CN101351792B (en)
TW (1) TW200801980A (en)
WO (1) WO2007044598A2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725516B2 (en) * 2005-10-05 2010-05-25 Qualcomm Incorporated Fast DCT algorithm for DSP with VLIW architecture
US8340058B2 (en) * 2007-10-29 2012-12-25 Nvidia Corporation Headphone with enhanced voice communication
US20090198976A1 (en) * 2008-02-06 2009-08-06 Austel Vernon R Method and structure for high-performance matrix multiplication in the presence of several architectural obstacles
US8825015B2 (en) * 2008-09-18 2014-09-02 Nvidia Corporation Accessing web pages on communication paths with low bandwidth
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US9118898B2 (en) * 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
TWI415474B (en) * 2010-07-19 2013-11-11 Mstar Semiconductor Inc Viedo codec and method thereof
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US9389854B2 (en) 2013-03-15 2016-07-12 Qualcomm Incorporated Add-compare-select instruction
US9870341B2 (en) * 2016-03-18 2018-01-16 Qualcomm Incorporated Memory reduction method for fixed point matrix multiply

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04182776A (en) 1990-11-16 1992-06-30 Nec Corp Discrete cosine transformer
JPH05197547A (en) 1991-10-31 1993-08-06 Toshiba Corp Vliw type arithmetic processor
JPH0883264A (en) 1994-09-12 1996-03-26 Nippon Telegr & Teleph Corp <Ntt> One-dimensional systolic array type arithmetic device and dct/idct arithmetic unit using same
US5826054A (en) 1996-05-15 1998-10-20 Philips Electronics North America Corporation Compressed Instruction format for use in a VLIW processor
US5943502A (en) 1994-12-09 1999-08-24 Neomagic Israel Ltd. Apparatus and method for fast 1D DCT
WO1999048025A2 (en) 1998-03-18 1999-09-23 Koninklijke Philips Electronics N.V. Data processing device and method of computing the cosine transform of a matrix
WO2000034887A1 (en) 1998-12-04 2000-06-15 Bops Incorporated System for dynamic vliw sub-instruction selection for execution time parallelism in an indirect vliw processor
WO2000067146A1 (en) 1999-04-29 2000-11-09 Pelton Walter E Computation of discrete fourier transform
TW419912B (en) 1998-08-11 2001-01-21 Ind Tech Res Inst Fast fourier transform based CDMA RAKE receiver structure and method
WO2001035267A1 (en) 1999-11-12 2001-05-17 Bops, Incorporated Methods and apparatus for efficient cosine transform implementations
JP2002527808A (en) 1998-10-09 2002-08-27 ボプス インコーポレイテッド Efficient implementation of complex multiplication and fast Fourier transform (FFT) in man array architecture
US6754687B1 (en) 1999-11-12 2004-06-22 Pts Corporation Methods and apparatus for efficient cosine transform implementations
US6804771B1 (en) 2000-07-25 2004-10-12 University Of Washington Processor with register file accessible by row column to achieve data array transposition
US20040267857A1 (en) 2003-06-30 2004-12-30 Abel James C. SIMD integer multiply high with round and shift
TWI231667B (en) 2001-04-06 2005-04-21 Interdigital Tech Corp Iterative fast fourier transform error correction
WO2005055611A1 (en) 2003-11-26 2005-06-16 Stmicroelectronics Limited A video decoding device
WO2005071503A1 (en) 2004-01-23 2005-08-04 Abb Oy Control device optimizing computing input sample of data with discrete fourier transform algorithm
US20050182916A1 (en) 2004-02-12 2005-08-18 Takahiro Kageyama Processor and compiler
US20070078921A1 (en) * 2005-10-05 2007-04-05 Shizhong Liu Fast DCT algorithm for DSP with VLIW architecture

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8601183A (en) * 1986-05-12 1987-12-01 Philips Nv DISCRETE COSINUS TRANSFORMATION DEVICE.
CN1142162A (en) * 1995-01-28 1997-02-05 大宇电子株式会社 Two-dimension back-discrete cosine inverting circuit
AU9030298A (en) * 1997-08-25 1999-03-16 Qualcomm Incorporated Variable block size 2-dimensional inverse discrete cosine transform engine

Patent Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04182776A (en) 1990-11-16 1992-06-30 Nec Corp Discrete cosine transformer
JPH05197547A (en) 1991-10-31 1993-08-06 Toshiba Corp Vliw type arithmetic processor
JPH0883264A (en) 1994-09-12 1996-03-26 Nippon Telegr & Teleph Corp <Ntt> One-dimensional systolic array type arithmetic device and dct/idct arithmetic unit using same
US5943502A (en) 1994-12-09 1999-08-24 Neomagic Israel Ltd. Apparatus and method for fast 1D DCT
US5826054A (en) 1996-05-15 1998-10-20 Philips Electronics North America Corporation Compressed Instruction format for use in a VLIW processor
JP2002510418A (en) 1998-03-18 2002-04-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data processing device and method for calculating cosine transform of matrix
WO1999048025A2 (en) 1998-03-18 1999-09-23 Koninklijke Philips Electronics N.V. Data processing device and method of computing the cosine transform of a matrix
US6397235B1 (en) 1998-03-18 2002-05-28 Koninklijke Philips Electronics N.V. Data processing device and method of computing the costine transform of a matrix
TW419912B (en) 1998-08-11 2001-01-21 Ind Tech Res Inst Fast fourier transform based CDMA RAKE receiver structure and method
JP2002527808A (en) 1998-10-09 2002-08-27 ボプス インコーポレイテッド Efficient implementation of complex multiplication and fast Fourier transform (FFT) in man array architecture
WO2000034887A1 (en) 1998-12-04 2000-06-15 Bops Incorporated System for dynamic vliw sub-instruction selection for execution time parallelism in an indirect vliw processor
JP2002536738A (en) 1998-12-04 2002-10-29 ボプス インコーポレイテッド Dynamic VLIW sub-instruction selection system for execution time parallel processing in an indirect VLIW processor
WO2000067146A1 (en) 1999-04-29 2000-11-09 Pelton Walter E Computation of discrete fourier transform
WO2001035267A1 (en) 1999-11-12 2001-05-17 Bops, Incorporated Methods and apparatus for efficient cosine transform implementations
US6754687B1 (en) 1999-11-12 2004-06-22 Pts Corporation Methods and apparatus for efficient cosine transform implementations
US6804771B1 (en) 2000-07-25 2004-10-12 University Of Washington Processor with register file accessible by row column to achieve data array transposition
TWI231667B (en) 2001-04-06 2005-04-21 Interdigital Tech Corp Iterative fast fourier transform error correction
US20040267857A1 (en) 2003-06-30 2004-12-30 Abel James C. SIMD integer multiply high with round and shift
WO2005055611A1 (en) 2003-11-26 2005-06-16 Stmicroelectronics Limited A video decoding device
WO2005071503A1 (en) 2004-01-23 2005-08-04 Abb Oy Control device optimizing computing input sample of data with discrete fourier transform algorithm
US20050182916A1 (en) 2004-02-12 2005-08-18 Takahiro Kageyama Processor and compiler
JP2005227942A (en) 2004-02-12 2005-08-25 Matsushita Electric Ind Co Ltd Processor and compiler
US20070078921A1 (en) * 2005-10-05 2007-04-05 Shizhong Liu Fast DCT algorithm for DSP with VLIW architecture
US20100235421A1 (en) * 2005-10-05 2010-09-16 Qualcomm Incorporated Fast dct algorithm for dsp with vliw architecture

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
Bagni D., et al., "Efficient IDCT implementations on VLIW processors," Proceedings of the 2002 European Signal Processing conference (EUSIPCO2002), Sep. 3-6, 2002, Toulouse, France.
C. Loeffler, A. Ligtenberg, and GS Moschytz, "Practical Fast 1-D DCT algorithms with 11 multiplications," Proc. IEEE International Conference on Acoustic, Speech, and Signal Proc. (ICASSP), vol. 2, pp. 988-991, May 1989.
International Search Report and Written Opinion PCT/US06/039279-International Search Authority, European Patent Office-Jun. 25, 2008.
L. Ji et al., "New DCT computation algorithm for VLIW architecture", IEEE International Conference on Signal Processing (ICSP 2002), vol. 1, pp. 41-44, 2002.
Ouyang, Wanli; Practical Fast Asymmetric DCT Algorithm and its SIMD and VLIW Oriented Architecture, Sep. 1-3, 2005, Faro, Portugal. pp. 28-31.
Sohm OP., et al., "Fast 2D-DCT implementation for VLIW processors," Proceedings of 1999 IEEE Workshop on Multimedia Signal Processing, Sep. 13-15, 1999, Copenhagen , Denmark, 1999, pp. 655-660.
Taiwanese Search Report-095137251-TIPO-May 5, 2010.
Translation of Office Action in Japan application 2008-534745 corresponding to U.S. Appl. No. 12/787,102, citing JP2002510418, JP2002536738, JP2005227942, WO2005055611, JP8083264, JP4182776, JP2002527808 and JP5197547 dated Mar. 15, 2011.
Wanli Ouyang, et al., "Practical fast asymmetric DCT algorithm and its SIMD and VILIW oriented architecture," Proceedings of 2005 IEEE International Workshop on Intelligent Signal Processing (WISP 2005), Sep. 1-3, 2005, Faro, Portugal, pp. 28-31.

Also Published As

Publication number Publication date
TW200801980A (en) 2008-01-01
CN101351792A (en) 2009-01-21
JP4801163B2 (en) 2011-10-26
WO2007044598A3 (en) 2008-08-14
KR20080063386A (en) 2008-07-03
US7725516B2 (en) 2010-05-25
US20070078921A1 (en) 2007-04-05
EP1952269A2 (en) 2008-08-06
KR101041760B1 (en) 2011-06-17
CN101351792B (en) 2010-12-22
JP2009516238A (en) 2009-04-16
WO2007044598A2 (en) 2007-04-19
US20100235421A1 (en) 2010-09-16

Similar Documents

Publication Publication Date Title
US8396916B2 (en) Fast DCT algorithm for DSP with VLIW architecture
CN101203830B (en) For the register file of digital signal processor operated in staggered multi-thread environment
JP6073385B2 (en) Data processing system and method using scalar / vector instructions
RU2409837C2 (en) System and method of counting initial zero bits and counting initial unit bits in digital signal processor
US7127482B2 (en) Performance optimized approach for efficient downsampling operations
US8745627B2 (en) System and method of controlling power in a multi-threaded processor
JP2009516238A5 (en)
MX2007012584A (en) Unified non-partitioned register files for a digital signal processor operating in an interleaved multi-threaded environment.
US6930689B1 (en) Hardware extensions for image and video processing
EP1943588B1 (en) Arithmethic logic and shifting device for use in a processor
US20040117418A1 (en) Forward discrete cosine transform engine
Illgner DSPs for image and video processing
KR100955555B1 (en) System and method of performing two&#39;s complement operations in a digital signal processor
KR20070118705A (en) System and method of using a predicate value to access a register file
Safizadeh et al. Efficient host-independent coprocessor architecture for speech coding algorithms
CN100562115C (en) Filtering method and device in a kind of MPEG4 file decoding process
Park et al. Architecture of an efficient area and flexible multi-codec processor
Tseng et al. PARALLEL VARIABLE LENGTH DECODING WITH INVERSE DISCRETE COSINE TRANSFORM ON VLIW DSP

Legal Events

Date Code Title Description
AS Assignment

Owner name: QUALCOMM INCORPORATED, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LIU, SHIZHONG;REEL/FRAME:024438/0330

Effective date: 20060315

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8