KR100644556B1 - High speed inverse discrete cosine transform device - Google Patents

High speed inverse discrete cosine transform device Download PDF

Info

Publication number
KR100644556B1
KR100644556B1 KR1019990020967A KR19990020967A KR100644556B1 KR 100644556 B1 KR100644556 B1 KR 100644556B1 KR 1019990020967 A KR1019990020967 A KR 1019990020967A KR 19990020967 A KR19990020967 A KR 19990020967A KR 100644556 B1 KR100644556 B1 KR 100644556B1
Authority
KR
South Korea
Prior art keywords
discrete cosine
inverse discrete
cosine transform
memory
sample
Prior art date
Application number
KR1019990020967A
Other languages
Korean (ko)
Other versions
KR20010001616A (en
Inventor
함철희
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1019990020967A priority Critical patent/KR100644556B1/en
Publication of KR20010001616A publication Critical patent/KR20010001616A/en
Application granted granted Critical
Publication of KR100644556B1 publication Critical patent/KR100644556B1/en

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04FFINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
    • E04F13/00Coverings or linings, e.g. for walls or ceilings
    • E04F13/07Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor
    • E04F13/08Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements
    • E04F13/0862Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements composed of a number of elements which are identical or not, e.g. carried by a common web, support plate or grid
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04FFINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
    • E04F13/00Coverings or linings, e.g. for walls or ceilings
    • E04F13/07Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor
    • E04F13/08Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements
    • E04F13/0889Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements characterised by the joints between neighbouring elements, e.g. with joint fillings or with tongue and groove connections
    • E04F13/0894Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements characterised by the joints between neighbouring elements, e.g. with joint fillings or with tongue and groove connections with tongue and groove connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)

Abstract

HD급의 영상에 대한 역이산코사인변환을 수행할 수 있는 고속 역이산코사인변환 장치와, 상기와 같은 역이산코사인변환 장치내에서 수행되는 전치메모리 스케닝 방법이 개시된다. 본 역이산코사인변환 장치는 역양자화기로부터 출력되는 샘플을 입력하여 역이산코사인변환을 수행하는 하나의 1차원 역이산코사인변환부와, 상기 하나의 1차원 역이산코사인변환부로부터 출력된 결과 데이터를 저장하는 전치메모리, 및 상기 전치메모리로부터 결과 데이터를 읽어 1차원 역이산 코사인변환을 수행하는 다른 하나의 1차원 역이산코사인변환부를 포함하고, 수직방향과 수평 방향의 역이산코사인 변환을 순차적으로 수행하기 위한 샘플의 읽기와 결과 샘플의 쓰기를 소정의 시간 차이를 두어 동시에 수행하고, 읽기와 쓰기 과정을 두 개의 메모리 뱅크에 대하여 교대적으로 수행하는 것을 특징으로 한다. 본 역이산코사인 변환장치는 고속 처리를 요하는 HD급의 영상에 대한 역이산 코사인변환을 수행하는 것이 가능하며, 전치 메모리의 양이 적게 소요된다.Disclosed are a fast inverse discrete cosine transform apparatus capable of performing inverse discrete cosine transform on an HD image and a prememory scanning method performed in the inverse discrete cosine transform apparatus. The inverse discrete cosine transform apparatus includes one one-dimensional inverse discrete cosine transform unit for inputting a sample output from an inverse quantizer to perform inverse discrete cosine transform and result data output from the one one-dimensional inverse discrete cosine transform unit. And a first one-dimensional inverse discrete cosine transform unit for performing one-dimensional inverse discrete cosine transformation by reading the result data from the prememory and storing the result data from the prememory, and sequentially performing inverse discrete cosine transformation in the vertical and horizontal directions. Simultaneous reading of a sample to be performed and writing of a result sample are performed at predetermined time intervals, and reading and writing processes are alternately performed for two memory banks. The inverse discrete cosine transform apparatus can perform inverse discrete cosine transform on an HD-class image that requires high speed processing, and requires less amount of transpose memory.

Description

고속 역이산코사인변환 장치{High speed inverse discrete cosine transform device}High speed inverse discrete cosine transform device

도 1a는 MPEG 인코딩 과정에서 수행되는 이산코사인변환(DCT) 과정을 설명하기 위한 도면이다.1A is a diagram for describing a discrete cosine transform (DCT) process performed in an MPEG encoding process.

도 1b는 MPEG 디코딩 과정에서 수행되는 역이산코사인변환(IDCT) 과정을 설명하기 위한 도면이다.FIG. 1B is a diagram illustrating an inverse discrete cosine transform (IDCT) process performed in an MPEG decoding process.

도 2는 종래의 2 차원 역이산코사인변환 장치의 구조를 도시한 블록도이다.2 is a block diagram showing the structure of a conventional two-dimensional inverse discrete cosine transform apparatus.

도 3a는 16 비트 1 차원 역이산코사인변환부의 구조를 상세히 도시한 블록도이다.3A is a block diagram illustrating in detail the structure of a 16-bit one-dimensional inverse discrete cosine transform unit.

도 3b는 도 3a의 시프트 레지스터 뱅크의 구조를 상세히 도시한 블록도이다.FIG. 3B is a detailed block diagram illustrating the structure of the shift register bank of FIG. 3A.

도 3c는 도 3a의 역이산코사인변환(IDCT) 엘리먼트의 구조를 상세히 도시한 블록도이다.FIG. 3C is a detailed block diagram illustrating the structure of an inverse discrete cosine transform (IDCT) element of FIG. 3A.

도 4는 본 발명의 실시예에 따른 고속 역이산코사인변환 장치의 구조를 도시한 블록도이다.4 is a block diagram showing the structure of a fast inverse discrete cosine transform apparatus according to an embodiment of the present invention.

도 5a는 12 비트 역이산코사인변환을 수행하기 위한 시프트레지스터 뱅크의 구조를 도시한 도면이다.5A illustrates a structure of a shift register bank for performing 12-bit inverse discrete cosine transform.

도 5b는 16 비트 역이산코사인변환을 수행하기 위한 시프트레지스터 뱅크의 구조를 도시한 도면이다.5B illustrates a structure of a shift register bank for performing 16-bit inverse discrete cosine transform.

도 6a 및 도 6b는 각각 12 비트 1 차원 역이산코사인변환 수행부 및 16 비트 1 차원 역이산코사인변환 수행부의 구조를 상세히 도시한 블록도이다.6A and 6B are block diagrams illustrating in detail the structures of a 12-bit one-dimensional inverse discrete cosine transform performing unit and a 16-bit one-dimensional inverse discrete cosine transform performing unit, respectively.

도 7은 12 비트 1 차원 이산코사인변환된 샘플들이 전치 메모리에 입력되는 순서를 설명하기 위한 도면이다.FIG. 7 is a diagram for describing an order in which 12-bit one-dimensional discrete cosine transformed samples are input to a pre-memory.

도 8은 전치 메모리의 쓰기 및 읽기 주소를 나타낸 도면이다.8 is a diagram showing the write and read addresses of the transpose memory.

도 9a 및 도 9b는 본 발명에 의한 고속 역이산코사인변환 장치에서 수행되는 본 발명의 실시예에 따른 전치 메모리 스케닝 방법의 주요 단계들을 도시한 흐름도이다.9A and 9B are flowcharts showing main steps of a pre-memory memory scanning method according to an embodiment of the present invention performed in a fast inverse discrete cosine transform apparatus according to the present invention.

도 10a는 전치 메모리상에서 수직 방향으로 쓰기 및 읽기를 수행하는 순서를 설명하기 위한 도면이다.FIG. 10A is a diagram for describing a procedure of writing and reading in the vertical direction on the transpose memory. FIG.

도 10b는 전치 메모리상에서 수평 방향으로 쓰기 및 읽기를 수행하는 순서를 설명하기 위한 도면이다.FIG. 10B is a diagram for describing a procedure of writing and reading in the horizontal direction on the transpose memory.

도 11은 전치메모리상에서의 쓰기 및 읽기 주소와 처리 계수의 위치를 나타낸 도면이다.Fig. 11 shows the positions of write and read addresses and processing coefficients on the pre-memory.

본 발명은 역이산코사인변환(Inverse Discrete Cosine Transform:IDCT) 장치에 관한 것으로, 더 상세하게는 행렬 분리 파이프 라인형 구조를 이루는 고속 역이 산코사인변환 장치에 관한 것이다.The present invention relates to an Inverse Discrete Cosine Transform (IDCT) device, and more particularly, to an inverse Discrete Cosine Transform device.

또한, 본 발명은 상기와 같은 역이산코사인변환 장치내에서 수행되는 전치메모리 스케닝 방법에 관한 것이다.The present invention also relates to a pre-memory scanning method performed in the inverse discrete cosine transform apparatus.

MPEG 영상 디코더는 디지털 TV, DVD 플레이어, 및 인터넷등과 같은 디지털 영상의 저장 및 전송에 관한 거의 대부분의 기술분야에서 적용되고 있다. 이러한 MPEG 영상 디코더에서는 가변장 디코더(VLD: Variable Length Decoder), 역양자화(IQ: Inverse Quantization), 및 움직임 보상(MC: Motion Compensation)과 더불어 역이산코사인변환(Inverse Discrete Cosine Transform: 이하 IDCT 라 칭함)이 필수적이다. 고속 영상 처리를 위해서는 역이산코사인변환 속도가 가장 중요한 변수이다.MPEG video decoders are applied in almost all technical fields related to the storage and transmission of digital video such as digital TVs, DVD players, and the Internet. Such MPEG image decoders are referred to as Inverse Discrete Cosine Transform (IDCT), together with Variable Length Decoder (VLD), Inverse Quantization (IQ), and Motion Compensation (MC). ) Is essential. The inverse discrete cosine transform speed is the most important variable for high speed image processing.

도 1a에는 MPEG 인코딩 과정에서 수행되는 일반적인 이산코사인변환 과정을 설명하기 위한 도면을 도시하였다. 도 1a를 참조하면, 이산코사인변환 처리의 단위가 되는 각 블록(100)은 픽셀 도메인에서 8×8 픽셀로 이루어진다. 이러한 블록(100)에 대하여 수평방향으로 1차원 이산코사인변환을 수행함으로써 제1 행렬(102)을 구성한다. 다음으로, 이 제1 행렬(102)에 대하여 수직방향으로 1차원 이산코사인변환을 수행하여 제2 행렬(104)을 구성한다. 여기서, 블록(100)은 픽셀 도메인에 해당하고, 제1 및 제2 행렬(102,104)은 주파수 도메인에 해당한다.FIG. 1A illustrates a diagram for describing a general discrete cosine transform process performed in an MPEG encoding process. Referring to FIG. 1A, each block 100 serving as a unit of the discrete cosine transform process is composed of 8 × 8 pixels in the pixel domain. The first matrix 102 is constructed by performing one-dimensional discrete cosine transform on the block 100 in the horizontal direction. Next, one-dimensional discrete cosine transform is performed on the first matrix 102 in the vertical direction to form the second matrix 104. Here, the block 100 corresponds to the pixel domain, and the first and second matrices 102 and 104 correspond to the frequency domain.

MPEG 디코딩 과정에서는 도 1b에 도시한 바와 같은 역이산코사인변환 과정이 수행된다. 도 1b를 참조하면, 역이산코사인변환 과정은 이산코사인변환 과정의 역의 순서이다. 즉, 주파수 도메인의 제3 행렬(120)에 대하여 수직방향으로 1 차원 역이산코사인변환을 수행함으로써 제4 행렬(122)을 구성한다. 다음에는 제4 행렬에 대하여 1 차원 역이산코사인변환을 수행함으로써 블록(144)을 복원한다.In the MPEG decoding process, an inverse discrete cosine transform process as shown in FIG. 1B is performed. Referring to FIG. 1B, the inverse discrete cosine transform process is an inverse order of the discrete cosine transform process. That is, the fourth matrix 122 is constructed by performing one-dimensional inverse discrete cosine transform on the third matrix 120 in the frequency domain in the vertical direction. Next, block 144 is restored by performing one-dimensional inverse discrete cosine transform on the fourth matrix.

도 2에는 종래의 2 차원 역이산코사인변환 장치의 구조를 블록도로써 도시하였다. 도 2를 참조하면, 종래의 2 차원 역이산코사인변환 장치는 16 비트 1차원 역이산코사인변환부(22)와 전치메모리(24)를 구비한다. 16 비트 1차원 역이산코사인변환부(22)와 전치메모리(24)는 각각 두 개의 역이산코사인변환 처리블록과 두 개의 8×8 블록 크기의 전치메모리로 이루어진다. 2 shows a block diagram of a conventional two-dimensional inverse discrete cosine transform apparatus. Referring to FIG. 2, the conventional two-dimensional inverse discrete cosine transform unit includes a 16-bit one-dimensional inverse discrete cosine transform unit 22 and a pre-memory 24. The 16-bit one-dimensional inverse discrete cosine transform unit 22 and the prememory memory 24 each consist of two inverse discrete cosine transform processing blocks and two 8x8 block size pre-memory.

두 개의 역이산코사인변환 처리블록을 각각 제1 및 제2 역이산코사인변환 처리블록이라 하고, 두 개의 8×8 블록 크기의 전치메모리를 각각 제1 및 제2 전치메모리라고 가정하여 동작을 설명하면, 먼저, 제1 역이산코사인변환 처리블록이 예를들어 수직방향의 역이산코사인변환을 수행하여 그 결과를 제1 전치메모리에 쓴다. 다음으로, 제2 역이산코사인변환 처리블록은 제1 전치 메모리에 저장된 역이산코사인변환 결과를 읽어 수평방향의 역이산코사인변환을 수행하여 그 결과를 제2 전치메모리에 저장한다. 따라서, 하나의 블록에 대하여 수직 및 수평 역이산코사인변환을 모두 수행하는데는 8 클록이 소요된다.If two inverse discrete cosine transform processing blocks are called first and second inverse discrete cosine transform processing blocks, respectively, and two 8x8 block size pre-memory are assumed to be first and second pre-memory, respectively, First, the first inverse discrete cosine transform processing block performs vertical inverse discrete cosine transform, for example, and writes the result to the first pre-memory. Next, the second inverse discrete cosine transform processing block reads the inverse discrete cosine transform result stored in the first pre-memory memory, performs the inverse discrete cosine transform in the horizontal direction, and stores the result in the second pre-memory memory. Therefore, it takes 8 clocks to perform both vertical and horizontal inverse discrete cosine transform for one block.

도 3a에는 16 비트 1 차원 역이산코사인변환부(22)의 상세한 구조를 블록도로써 도시하였다. 도 3a를 참조하면, 16 비트 1 차원 역이산코사인변환부(22)는 시프트레지스터 뱅크(30: SREG BANK)와 역이산코사인변환 엘리먼트부(20)로 이루어진다.FIG. 3A shows a detailed structure of the 16-bit one-dimensional inverse discrete cosine transform unit 22 in a block diagram. Referring to FIG. 3A, the 16-bit one-dimensional inverse discrete cosine transform unit 22 includes a shift register bank 30 (SREG BANK) and an inverse discrete cosine transform element 20.

도 3b를 참조하여 도 3a의 시프트 레지스터 뱅크의 구조를 설명하면, 종래의 역이산코사인변환 장치의 역이산코사인변환 엘리먼트내의 시프트레지스터 뱅크는 16 비트의 시프트레지스터 뱅크들(Bank0_0, Bank0_1, Bank0_2, Bank0_3, Bank0_4, Bank0_5, Bank0_6, Bank0_7)로 이루어진 제1 뱅크와, 16 비트의 시프트레지스터 뱅크들(Bank1_0, Bank1_1, Bank1_2, Bank1_3, Bank1_4, Bank1_5, Bank1_6, Bank1_7)로 이루어진 제2 뱅크를 구비한다. 입력된 비트들은 도 3c에 도시한 바와 같은 구조를 이루고 있는 역이산코사인변환 엘리먼트에 의하여 역이산 코사인변환이 수행된다.Referring to FIG. 3B, the structure of the shift register bank of FIG. 3A will be described. The shift register bank in the inverse discrete cosine transform element of the conventional inverse discrete cosine transform apparatus includes 16 bit shift register banks Bank0_0, Bank0_1, Bank0_2, and Bank0_3. And a first bank consisting of Bank0_4, Bank0_5, Bank0_6, and Bank0_7, and a second bank consisting of 16-bit shift register banks Bank1_0, Bank1_1, Bank1_2, Bank1_3, Bank1_4, Bank1_5, Bank1_6, and Bank1_7. Inverse discrete cosine transform is performed on the input bits by an inverse discrete cosine transform element having a structure as shown in FIG. 3C.

하지만, 이와같은 종래의 역이산코사인 변환 장치는 상술한 바와 같이 하나의 블록에 대하여 수직 및 수평 역이산코사인변환을 모두 수행하는데는 8 클록이 소요되기 때문에, SD급의 영상을 처리하기 위해서는 적절하지만, SD급 영상의 4 배 이상의 처리속도를 필요로 하는 HD급 영상에 대한 역이산코사인변환에는 부족하다는 문제점이 있다.However, such a conventional inverse discrete cosine conversion device requires 8 clocks to perform both vertical and horizontal inverse discrete cosine transformation for one block as described above. However, there is a problem in that the inverse discrete cosine transform is not sufficient for an HD image that requires more than four times the processing speed of the SD image.

본 발명이 이루고자 하는 기술적 과제는 HD급의 영상에 대한 역이산코사인변환을 수행할 수 있는 고속 역이산코사인변환 장치를 제공하는 것이다.An object of the present invention is to provide a fast inverse discrete cosine transform apparatus capable of performing inverse discrete cosine transform on an HD image.

본 발명이 이루고자 하는 다른 기술적 과제는 상기와 같은 역이산코사인변환 장치내에서 수행되는 전치메모리 스케닝 방법을 제공하는 것이다.Another object of the present invention is to provide a pre-memory scanning method performed in the inverse discrete cosine transform apparatus as described above.

상기 과제를 이루기 위하여 본 발명의 일태양에 따른 고속 역이산코사인변환 장치는 역양자화기로부터 출력되는 샘플을 입력하여 역이산코사인변환을 수행하는 하나의 1차원 역이산코사인변환부; 상기 제1 1차원 역이산코사인변환부로부터 출력된 결과 데이터를 저장하는 전치메모리; 및 상기 전치메모리로부터 결과 데이터를 읽어 1차원 역이산 코사인변환을 수행하는 다른 하나의 1차원 역이산코사인변환부;를 포함하고, 수직방향과 수평 방향의 역이산코사인 변환을 순차적으로 수행하기 위한 샘플의 읽기와 결과 샘플의 쓰기를 소정의 시간 차이를 두어 동시에 수행하고, 읽기와 쓰기 과정을 두 개의 메모리 뱅크에 대하여 교대적으로 수행하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a fast inverse discrete cosine transform apparatus comprising: a one-dimensional inverse discrete cosine transform unit configured to perform inverse discrete cosine transform by inputting a sample output from an inverse quantizer; A pre-memory storing the result data output from the first one-dimensional inverse discrete cosine transform unit; And another one-dimensional inverse discrete cosine transform unit that reads the result data from the prememory memory and performs one-dimensional inverse discrete cosine transform. The sample includes: a sample for sequentially performing inverse discrete cosine transform in the vertical direction and the horizontal direction. The read and write of the resultant sample are simultaneously performed at predetermined time intervals, and the read and write processes are alternately performed for the two memory banks.

상기 과제를 이루기 위하여 본 발명의 타태양에 따른 고속 역이산코사인변환 장치는 역양자화기로부터 출력되는 제1 소정 수의 비트의 샘플을 입력하여 한 클록에 제2 소정 수의 비트씩 역이산코사인변환을 수행하는 제1 역이산코사인변환부; 상기 제1 역이산코사인변환부로부터 출력된 결과를 저장하는 제1 소정 크기의 블록의 전치메모리; 및 한 클록에 제3 소정 수의 비트씩 역이산코사인변환을 수행하는 제2 역이산코사인변환부;를 포함하고, 수직방향과 수평 방향의 역이산코사인 변환을 순차적으로 수행하기 위한 샘플의 읽기와 결과 샘플의 쓰기를 소정의 시간 차이를 두어 동시에 수행하고, 읽기와 쓰기 과정을 두 개의 메모리 뱅크에 대하여 교대적으로 수행하는 것을 특징으로 한다.According to another aspect of the present invention, a high speed inverse discrete cosine conversion apparatus according to another aspect of the present invention inputs a first predetermined number of bits output from an inverse quantizer to perform inverse discrete cosine transformation on a clock by a second predetermined number of bits. A first inverse discrete cosine transform unit for performing; A pre-memory of a block having a first predetermined size for storing a result output from the first inverse discrete cosine transform unit; And a second inverse discrete cosine transform unit configured to perform inverse discrete cosine transform by a third predetermined number of bits in one clock, wherein the second inverse discrete cosine transform includes: reading a sample for sequentially performing inverse discrete cosine transform in the vertical direction and the horizontal direction; The writing of the resultant samples is performed simultaneously with a predetermined time difference, and the reading and writing processes are alternately performed for the two memory banks.

여기서, 상기 제1 소정 수는 12이고, 제2 소정수는 3이며, 상기 제1 역이산코사인변환부는, 4, 5, 6,및 7 비트의 뱅크를 각각 6 개 구비함으로써 이루어지는 쉬프트 레지스터 뱅크; 및 4 클록에 8 개의 샘플이 1차원 역이산코사인변환되는 3 비트 블록 1차원 역이산코사인변환부;를 포함하는 것이 바람직하다.Wherein the first predetermined number is 12, the second predetermined number is 3, and the first inverse discrete cosine transform unit comprises: a shift register bank formed of six banks of four, five, six, and seven bits; And a three-bit block one-dimensional inverse discrete cosine transform unit in which eight samples are four-dimensionally one-dimensional inverse discrete cosine transformed at four clocks.

또한, 제1 소정 크기는 8인 것이 바람직하다.Also, it is preferable that the first predetermined size is eight.

또한, 상기 제3 소정 수는 4이고, 상기 제2 역이산코사인변환부는, 4, 5 ,6, 및 7 비트의 뱅크를 각각 8 개 구비함으로써 이루어지는 쉬프트 레지스터 뱅크; 및 4 클록에 8 개의 샘플이 1차원 역이산코사인변환되는 4 비트 블록 1차원 역이산코사인변환부;를 포함하는 것이 바람직하다.The third predetermined number is 4, and the second inverse discrete cosine transform unit comprises: a shift register bank formed by providing eight banks of four, five, six, and seven bits; And a 4-bit block one-dimensional inverse discrete cosine transform unit in which eight samples are four-dimensionally one-dimensional inverse discrete cosine transformed at four clocks.

또한, 상기 제1 역이산코사인변환 수행부 및 상기 제2 역이산코사인변환 수행부는, 8 개의 1차원 입력에 대하여 4 클록에 수행될 수 있도록 각각 4 비트 및 3 비트 그룹형으로 이루어진 것이 바람직하다.In addition, the first inverse discrete cosine transform performing unit and the second inverse discrete cosine transform performing unit may be configured in a group of 4 bits and 3 bits, respectively, so as to be performed at four clocks for eight one-dimensional inputs.

상기 다른 과제를 이루기 위하여 본 발명에 따른 전치메모리 스케닝 방법은 두 개의 메모리 뱅크를 구비하고 동영상 압축 디코더에서 역이산코사인 변환을 수행하는 역이산코사인변환 장치내에서 수행하는 전치메모리 스케닝 방법에 있어서, (wa) 수평 방향 또는 수직방향으로 읽기를 수행하도록 설정하는 단계; (wb) 두 메모리 뱅크로부터 교대적으로 읽기를 수행하는 단계; (wc) 읽기를 수행한 전치메모리의 블록이 마지막 행에 해당하는지를 체크하는 단계; (wd) 상기 (wc) 단계에서 마지막 행이면 그 행에서 마지막 열에 해당하는지를 체크하는 단계; (we) 상기 (wd) 단계에서 마지막 행이지만, 마지막 열이 아닌 경우에는 교대 순서를 변경하여 상기 단계들을 수행하는 단계; 및 (Wf) 쓰기 방향을 변경하여 상기 (wa)내지 (wf) 단계를 수행하는 단계;를 포함하는 쓰기 과정과, (ra) 수평 방향으로 읽기를 수행하도록 초기화하는 단계; (rb) 두 뱅크로부터 교대적으로 읽기를 수행하는 단계; (rc) 읽기를 수행한 전치메모리의 블록이 마지막 행에 해당하는지를 체크하는 단 계; (rd) 상기 (rc) 단계에서 마지막 행이면 그 행에서 마지막 열에 해당하는지를 체크하는 단계; (re) 상기 (rd) 단계에서 마지막 행이지만, 마지막 열이 아닌 경우에는 교대 순서를 변경하여 상기 단계들을 수행하는 단계; 및 (rf) 읽기 방향을 변경하여 상기 (ra)내지 (rf) 단계를 수행하는 단계;를 포함하는 읽기과정으로 이루어진 것을 특징으로 한다.In order to achieve the above object, the pre-memory scanning method according to the present invention comprises two memory banks and a pre-memory scanning method performed in an inverse discrete cosine transform apparatus for performing inverse discrete cosine transform in a video compression decoder. wa) setting to perform reading in the horizontal or vertical direction; (wb) alternately reading from the two memory banks; (wc) checking whether a block of the pre-memory in which the read is performed corresponds to the last row; (wd) if the last row in step (wc), checks whether the row corresponds to the last column; (we) if the last row in step (wd), but is not the last column, altering the order of performing the steps; And (Wf) changing the writing direction to perform the steps (wa) to (wf); and initializing to perform reading in the horizontal direction. (rb) alternately reading from two banks; (rc) checking whether the block of the pre-memory that performed the read corresponds to the last row; (rd) if the last row in step (rc), checking whether the row corresponds to the last column; (re) if the last row in step (rd) but is not the last column, changing the order of alternation to perform the steps; And (rf) changing the read direction to perform the steps (ra) to (rf).

또한, 상기 방법은 51번째 샘플에 대한 쓰기가 종료되었는지를 체크하여 읽기 과정으로 분기시키는 단계; 및 51번째 샘플에 대한 읽기가 종료되었는지를 체크하는 단계를 더 포함하는 것이 바람직하다.The method may further include: checking whether writing to the 51st sample has ended and branching to a reading process; And checking whether the reading of the 51st sample has ended.

이하 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 4에는 본 발명의 실시예에 따른 고속 역이산코사인변환 장치의 구조를 블록도로써 도시하였다. 도 4를 참조하면, 본 발명에 의한 고속 역이산코사인변환 장치는 12 비트 1차원 역이산코사인변환부(42), 전치메모리(44), 및 16 비트 1차원 IDCT부(46)를 구비한다. 여기서, 12 비트 역이산코사인변환을 수행하기 위한 시프트레지스터 뱅크의 구조는 도 5a에 도시한 바와 같으며, 16 비트 역이산코사인변환을 수행하기 위한 시프트레지스터 뱅크의 구조는 도 5b에 도시한 바와 같다.4 is a block diagram illustrating a structure of a fast inverse discrete cosine transform apparatus according to an exemplary embodiment of the present invention. 4, a fast inverse discrete cosine transform apparatus according to the present invention includes a 12-bit one-dimensional inverse discrete cosine transform unit 42, a pre-memory 44, and a 16-bit one-dimensional IDCT unit 46. As shown in FIG. Here, the structure of the shift register bank for performing 12-bit inverse discrete cosine transform is shown in FIG. 5A, and the structure of the shift register bank for performing 16-bit inverse discrete cosine transform is shown in FIG. 5B. .

도 5a를 참조하면 12 비트 1차원 역이산코사인변환부(42)를 위한 쉬프트 레지스터 뱅크는 7 비트 크기의 뱅크(BANK0_2, BANK0_1, BANK0_0, BANK1_2, BANK1_1, BANK1_0), 6 비트 크기의 뱅크(BANK2_2, BANK2_1, BANK2_0, BANK3_2, BANK3_1, BANK3_0), 5 비트 크기의 뱅크(BANK4_2, BANK4_1, BANK4_0, BANK5_2, BANK5_1, BANK5_0), 및 4 비트 크기의 뱅크(BANK6_2, BANK6_1, BANK6_0, BANK7_2, BANK7_1, BANK7_0)를 구비한다.Referring to FIG. 5A, the shift register bank for the 12-bit one-dimensional inverse discrete cosine transform unit 42 includes 7-bit banks BANK0_2, BANK0_1, BANK0_0, BANK1_2, BANK1_1 and BANK1_0, and 6-bit bank BANK2_2. BANK2_1, BANK2_0, BANK3_2, BANK3_1, BANK3_0), 5-bit banks (BANK4_2, BANK4_1, BANK4_0, BANK5_2, BANK5_1, BANK5_0), and 4-bit banks (BANK6_2, BANK6_1, BANK6_0, BANK7_2, BANK7_1) Equipped.

도 5b를 참조하면 16 비트 1차원 역이산코사인변환부(46)를 위한 쉬프트 레지스터 뱅크는 7 비트 크기의 뱅크(BANK0_3, BANK0_2, BANK0_1, BANK0_0, BANK1_3, BANK1_2, BANK1_1, BANK1_0), 6 비트 크기의 뱅크(BANK3_3, BANK2_2, BANK2_1, BANK2_0, BANK3_3, BANK3_2, BANK3_1, BANK3_0), 5 비트 크기의 뱅크(BANK4_3, BANK4_2, BANK4_1, BANK4_0, BANK5_3, BANK5_2, BANK5_1, BANK5_0), 및 4 비트 크기의 뱅크(BANK6_3, BANK6_2, BANK6_1, BANK6_0, BANK7_3, BANK7_2, BANK7_1, BANK7_0)를 구비한다.Referring to FIG. 5B, the shift register bank for the 16-bit one-dimensional inverse discrete cosine transform unit 46 is a 7-bit bank (BANK0_3, BANK0_2, BANK0_1, BANK0_0, BANK1_3, BANK1_2, BANK1_1, BANK1_0), and 6-bit size. Banks (BANK3_3, BANK2_2, BANK2_1, BANK2_0, BANK3_3, BANK3_2, BANK3_1, BANK3_0), 5-bit banks (BANK4_3, BANK4_2, BANK4_1, BANK4_0, BANK5_3, BANK5_2, BANK5_1, BANK5_3), and 4-bit banks , BANK6_2, BANK6_1, BANK6_0, BANK7_3, BANK7_2, BANK7_1, BANK7_0).

12 비트 1 차원 역이산코사인변환부(42)는 도 5a에 도시한 시프트레지스터 뱅크와 도 6a에 도시한 복수개의 역이산코사인변환 엘리먼트부를 구비한다. 12 비트 1 차원 역이산코사인변환부(42)는 4 클록에 8 개의 샘플을 1차원 역이산코사인변환하기 위하여 3 비트 블록 1차원 역이산코사인변환부를 구비하며, 이러한 3 비트 블록 1차원 역이산코사인변환부는 일예로 도 6a에 도시한 역이산코사인변환 엘리먼트부로 이루어질 수 있다.The 12-bit one-dimensional inverse discrete cosine transform unit 42 includes a shift register bank shown in FIG. 5A and a plurality of inverse discrete cosine transform element portions shown in FIG. 6A. The 12-bit one-dimensional inverse discrete cosine transform unit 42 includes a three-bit block one-dimensional inverse discrete cosine transform unit for one-dimensional inverse discrete cosine transforming eight samples at four clocks. For example, the transform unit may include an inverse discrete cosine transform element unit shown in FIG. 6A.

16 비트 1 차원 역이산코사인변환부(46)는 도 5b에 도시한 시프트레지스터 뱅크와 도 6b에 도시한 복수개의 역이산코사인변환 엘리먼트부를 구비한다. 16 비트 1 차원 역이산코사인변환부(46)는 4 클록에 8 개의 샘플을 1차원 역이산코사인변환하기 위하여 4 비트 블록 1차원 역이산코사인변환부를 구비하며, 이러한 4 비트 블록 1차원 역이산코사인변환부는 일예로 도 6b에 도시한 역이산코사인변환 엘 리먼트부로 이루어질 수 있다.The 16-bit one-dimensional inverse discrete cosine transform unit 46 includes a shift register bank shown in FIG. 5B and a plurality of inverse discrete cosine transform element parts shown in FIG. 6B. The 16-bit one-dimensional inverse discrete cosine transform unit 46 includes a four-bit block one-dimensional inverse discrete cosine transform unit for one-dimensional inverse discrete cosine transform of eight samples at four clocks. For example, the transform unit may include an inverse discrete cosine transform element shown in FIG. 6B.

이하 상기와 같은 장치의 동작을 설명한다. 도 7에는 12 비트 1 차원 이산코사인변환된 샘플들이 전치 메모리에 입력되는 순서를 나타내었다. 도 7을 참조하면, 각 샘플들은 16 비트로 이루어지며 64 개의 샘플들 중에서 두 샘플씩 순차적으로 전치 메모리에 입력된다.The operation of the apparatus as described above will be described below. FIG. 7 shows an order in which 12-bit one-dimensional discrete cosine transformed samples are input to the pre-memory. Referring to FIG. 7, each sample is composed of 16 bits and is sequentially input to the pre-memory by two samples out of 64 samples.

도 5a에 도시한 시프트 레지스터 뱅크에 두 개의 샘플이 입력되면 이 샘플들은 7 비트 크기의 뱅크(BANK0_2, BANK0_1, BANK0_0, BANK1_2, BANK1_1, BANK1_0)에 나누어 저장된다. 다음 두 개의 샘플은 6 비트 크기의 뱅크(BANK2_2, BANK2_1, BANK2_0, BANK3_2, BANK3_1, BANK3_0)에 저장하며, 5 비트 크기의 뱅크(BANK0_2, BANK0_1, BANK0_0, BANK1_2, BANK1_1, BANK1_0)에 저장된 샘플들은 한 비트씩 오른샘플이 두 개씩 입력되어 1차원 역이산코사인변환된다. 동일한 방법으로 나머지 뱅크들이 동작한다. 이로써, 12 비트 샘플이 두 개씩 입력되어 1 차원 역이산코사인변환된다.When two samples are input to the shift register bank shown in Fig. 5A, the samples are divided and stored in banks 7-bit size BANK0_2, BANK0_1, BANK0_0, BANK1_2, BANK1_1, and BANK1_0. The next two samples are stored in 6-bit banks (BANK2_2, BANK2_1, BANK2_0, BANK3_2, BANK3_1, BANK3_0). Two right-by-bit samples are input and one-dimensional inverse discrete cosine transform. The remaining banks operate in the same way. As a result, two 12-bit samples are input and one-dimensional inverse discrete cosine transform is performed.

도 5b에 도시한 시프트 레지스터 뱅크에는 7 비트 크기의 뱅크(BANK0_3, BANK0_2, BANK0_1, BANK0_0, BANK1_3, BANK1_2, BANK1_1, BANK1_0)에 나누어 저장된다. 다음 두 개의 샘플은 6 비트 크기의 뱅크(BANK2_3, BANK2_2, BANK2_1, BANK2_0, BANK3_3, BANK3_2, BANK3_1, BANK3_0)에 저장하며, 7 비트 크기의 뱅크(BANK0_3, BANK0_2, BANK0_1, BANK0_0, BANK1_3, BANK1_2, BANK1_1, BANK1_0)에 저장된 샘플들은 한 비트씩 오른쪽으로 시프트된다. 동일한 방법으로 나머지 뱅크들이 동작한다. 이로써, 16 비트 샘플이 두 개씩 입력되어 1 차원 역이산코사인 변환된다.The shift register bank shown in Fig. 5B is divided into seven-bit banks BANK0_3, BANK0_2, BANK0_1, BANK0_0, BANK1_3, BANK1_2, BANK1_1, and BANK1_0. The next two samples are stored in 6-bit banks (BANK2_3, BANK2_2, BANK2_1, BANK2_0, BANK3_3, BANK3_2, BANK3_1, BANK3_0), and the 7-bit banks (BANK0_3, BANK0_2, BANK0_1, BANK0_0, BANK1_3, BANK1_2, BANK1_1). , Samples stored in BANK1_0) are shifted right by one bit. The remaining banks operate in the same way. In this way, two 16-bit samples are input and one-dimensional inverse discrete cosine transform is performed.

도 6a 및 도 6b는 각각 12 비트 1 차원 역이산코사인변환 수행부 및 16 비트 1 차원 역이산코사인변환 수행부의 구조를 블록도로써 도시하였다. 도 6a 및 도 6b를 참조하면, 12 비트 1 차원 역이산코사인변환 수행부 및 16 비트 1 차원 역이산코사인변환 수행부는 8 개의 1차원 입력에 대하여 4 클록에 수행될 수 있도록 4 비트, 3 비트 그룹형으로 구현한다. 여기서 ADD는 덧셈기를 나타내고, ROME_0, ROME_1, ROME_2, 및 ROME_3과, ROMO_0, ROMO_1, ROMO_2, 및 ROMO_3은 각각 우수 번 째 와 기수 번 째의 ROM을 나타낸다.6A and 6B show, in block diagrams, structures of a 12-bit one-dimensional inverse discrete cosine transform performing unit and a 16-bit one-dimensional inverse discrete cosine transform performing unit, respectively. 6A and 6B, a 12-bit one-dimensional inverse discrete cosine transform performing unit and a 16-bit one-dimensional inverse discrete cosine transform performing unit perform four-bit and three-bit groups to be performed at four clocks on eight one-dimensional inputs. Implement as type Here, ADD represents an adder, and ROME_0, ROME_1, ROME_2, and ROME_3, and ROMO_0, ROMO_1, ROMO_2, and ROMO_3, respectively, represent an even-numbered and odd-numbered ROM.

도 7에는 12 비트 1 차원 이산코사인변환된 샘플들이 전치 메모리에 입력되는 순서를 나타낸 도면이다. 도 7를 참조하면, 12 비트 1 차원 이산코사인변환된 샘플들은 (0,1), (2,3), (4,5), (6,7)의 순서로 전치메모리에 입력된다.FIG. 7 is a diagram illustrating a sequence of inputting 12-bit one-dimensional discrete cosine transformed samples into the pre-memory. Referring to FIG. 7, 12-bit one-dimensional discrete cosine transformed samples are input to the pre-memory in the order of (0, 1), (2, 3), (4, 5), and (6, 7).

한편, 도 8에는 전치 메모리의 쓰기 및 읽기 주소를 나타내었다. 본 실시예에서는, 듀얼 포트 에스디램(dual port SDRAM)을 사용하여 도 8에 도시한 바와 같은 메모리의 한 조가 64 샘플 블록이 저장 또는 독취되는 하나의 전치메모리를 구성한다. 이하에서, 전치 메모리의 쓰기 및 읽기 주소는 도 8에 도시된 바와 같이 할당되는 것을 기준으로 동작을 설명한다.8 shows the write and read addresses of the transpose memory. In this embodiment, using a dual port SDRAM, one set of memories as shown in Fig. 8 constitutes one pre-memory in which 64 sample blocks are stored or read out. Hereinafter, operations of the write and read addresses of the pre-memory will be described based on allocation as shown in FIG. 8.

도 9a 및 도 9b는 본 발명에 의한 고속 역이산코사인변환 장치에서 수행되는 본 발명의 실시예에 따른 전치 메모리 스케닝 방법의 주요 단계들을 흐름도로써 나타내었다. 도 9a는 쓰기 과정을 나타내며, 도 9b는 읽기 과정을 나타낸다. 이러한 전치 메모리 스케닝 방법은 이하에서 수시로 참조된다.9A and 9B are flowcharts illustrating main steps of a pre-memory memory scanning method according to an embodiment of the present invention performed in a fast inverse discrete cosine transform apparatus according to the present invention. 9A illustrates the writing process, and FIG. 9B illustrates the reading process. This pre-memory scanning method is often referred to below.

먼저, 도 9a를 참조하면, 본 발명의 실시예에 따른 전치 메모리 스케닝 방법에서 쓰기 과정은 예를들어, 초기 모드로서 수직 방향으로 쓰기를 수행하도록 제어된다. 쓰기를 수행함에 있어, 예를들어, 두 뱅크에 교대적으로 쓰기를 수행한다(단계 902). 다음에는 쓰기를 수행한 전치메모리의 블록이 마지막 행에 해당하는지를 체크(단계 904)하여 마지막 행이면 그 행에서 마지막 열에 해당하는지를 체크한다(단계 906). 이때, 마지막 행이지만, 마지막 열이 아닌 경우에는 교대 순서를 변경(단계 908)하여 단계(902, 904)를 수행한다. 이와 같이 교대순서를 변경하는 것은 쓰기가 수행되는 동안 동시에 상기 뱅크별로 교대로 읽기를 수행하여야 하기 때문이다. 이제, 마지막 행이고, 마지막 열인 경우에는 쓰기 모드를 수평 방향으로 변경(단계 910)하여 상기 단계들을 반복하여 수행한다. 만일, 도 7에 나타낸 하나의 8×8 블록에 대한 쓰기가 완료되면 도 9a의 전치 메모리 스케닝 방법에서 쓰기 과정이 종료된다.First, referring to FIG. 9A, in the pre-memory scanning method according to the embodiment of the present invention, the writing process is controlled to perform writing in the vertical direction, for example, as an initial mode. In performing a write, for example, writing alternately to two banks (step 902). Next, it is checked whether the block of the pre-memory that has been written corresponds to the last row (step 904), and if it is the last row, it is checked whether it corresponds to the last column in the row (step 906). At this time, if it is the last row, but not the last column, the alternating order is changed (step 908) to perform steps 902 and 904. The change of the alternating order in this way is because the reads must be performed alternately for each bank at the same time while the writing is performed. In the case of the last row and the last column, the write mode is changed to the horizontal direction (step 910), and the above steps are repeatedly performed. If writing to one 8 × 8 block shown in FIG. 7 is completed, the writing process is terminated in the transpose memory scanning method of FIG. 9A.

본 발명에 의한 전치 메모리 스케닝 방법에 따르면 이러한 쓰기 과정과 동시에 읽기 과정이 수행된다. 도 9b에는 본 발명의 실시예에 의한 전치 메모리 스케닝 방법에서 읽기 과정의 주요단계들을 흐름도로써 나타내었다. 도 9b를 참조하면, 본 발명에 의한 전치 메모리 스케닝 방법에서 읽기 과정은 예를들어, 초기 모드로서 수평 방향으로 읽기를 수행하도록 설정된다(단계 922). 읽기를 수행함에 있어, 예를들어, 두 뱅크로부터 교대적으로 읽기를 수행한다(단계 924). 다음에는 읽기를 수행한 전치메모리의 블록이 마지막 행에 해당하는지를 체크(단계 926)하여 마지막 행이면 그 행에서 마지막 열에 해당하는지를 체크한다(단계 928). 이때, 마지막 행 이지만, 마지막 열이 아닌 경우에는 교대 순서를 변경(단계 930)하여 단계(924, 926)를 수행한다. 이와 같이 교대순서를 변경하는 것은 읽기가 수행되는 동안 동시에 뱅크별로 교대로 쓰기를 수행하여야 하기 때문이다. 이제, 마지막 행이고, 마지막 열인 경우에는 읽기 모드를 수평 방향으로 변경(단계 932)하여 상기 단계들을 반복하여 수행한다. 만일, 도 7에 나타낸 하나의 8×8 블록에 대한 읽기가 완료되면 도 9a의 전치 메모리 스케닝 방법에서 읽기 과정이 종료된다.According to the pre-memory scanning method according to the present invention, a read process is performed simultaneously with the write process. 9B is a flowchart illustrating main steps of a reading process in the transpose memory scanning method according to an embodiment of the present invention. 9B, in the pre-memory scanning method according to the present invention, the reading process is set to perform reading in the horizontal direction, for example, as an initial mode (step 922). In performing a read, for example, alternate readings are performed from two banks (step 924). Next, it is checked whether the block of the pre-memory where the read is performed corresponds to the last row (step 926), and if it is the last row, it is checked whether it corresponds to the last column in the row (step 928). At this time, if the last row, but not the last column, the alternating order is changed (step 930) to perform steps 924 and 926. This change in the alternating order is because the writes must be performed alternately bank by bank while reading is performed. Now, in the case of the last row and the last column, the read mode is changed to the horizontal direction (step 932) and the above steps are repeatedly performed. If the reading of one 8 × 8 block shown in FIG. 7 is completed, the reading process is terminated in the pre-memory scanning method of FIG. 9A.

본 발명에 따른 전치 메모리 스케닝 방법은 하나의 전치 메모리 뱅크를 사용하여 쓰기와 읽기를 수행한다. 따라서, 쓰기가 이루어진 상태에서 읽기를 수행하여야 한다. 이러한 이유로, 수직 또는 수평방향으로 51번째 샘플에 대한 쓰기를 수행하였는가는 체크하여 읽기과정을 시작하는 것이 바람직하다.The pre-memory scanning method according to the present invention performs writing and reading using one pre-memory bank. Therefore, read must be performed while writing is performed. For this reason, it is preferable to start the reading process by checking whether writing to the 51st sample has been performed in the vertical or horizontal direction.

도 10a와 도 10b에는 전치 메모리상에서 수직 방향으로 쓰기 및 읽기를 수행하는 순서와 수평 방향으로 쓰기 및 읽기를 수행하는 순서를 각각 나타내었다. 즉, 이러한 전치메모리 스케닝 읽기와 쓰기에 동일하게 적용된다. 10A and 10B illustrate the order of writing and reading in the vertical direction and the order of writing and reading in the horizontal direction on the transpose memory, respectively. That is, the same applies to the prememory scanning and writing.

도 10a를 참조하여, 전치 메모리상에서 수직 방향으로 쓰기를 수행하는 순서를 설명하면, 먼저, 도 7의 (00,01) 샘플을 각각 뱅크0(Bank 0)의 어드레스 (0)과 뱅크1(Bank 1)의 어드레스 (4)에 기록한다. 다음에는 도 7의 (02,03) 샘플을 각각 뱅크0(Bank 0)의 어드레스 (8)과 뱅크1(Bank 1)의 어드레스 (12)에 기록한다. 동일한 방법으로 도 7의 (4,5) 샘플에 대한 기록을 수행하고, 그 열에서 마지막 행에 해당하는 (6,7) 샘플을 기록한 다음에는, 교대 순서를 바꾸어 (8,9) 샘플을 뱅크1(Bank 1)의 어드레스 (0)과 뱅크0(Bank 0)의 어드레스 (4)에 기록한다. 동일 한 방법으로 (10,11),...(62,63) 샘플에 대한 수직 방향의 기록을 수행한 다음에는 수평방향의 기록을 수행한다.Referring to FIG. 10A, a procedure of performing writing in the vertical direction on the transpose memory will be described. First, the (00,01) sample of FIG. 7 is respectively addressed to the address 0 of the bank 0 and the bank 1 Bank. Record at address (4) of 1). Next, the samples (02,03) in FIG. 7 are written to the address 8 of the bank 0 and the address 12 of the bank 1, respectively. In the same way, record for the (4,5) sample in Fig. 7, and record the (6,7) sample corresponding to the last row in the column, then shift the order to bank the (8,9) sample. It is written to address (0) of 1 (Bank 1) and address (4) of bank 0 (Bank 0). In the same way, the recording in the vertical direction for the samples (10, 11), ... (62, 63) is performed, followed by the recording in the horizontal direction.

도 10b를 참조하여, 전치 메모리상에서 수평 방향으로 쓰기를 수행하는 순서를 설명하면, 먼저, (00,01) 샘플을 각각 뱅크0(Bank 0)의 어드레스 (0)과 뱅크1(Bank 1)의 어드레스 (0)에 기록한다. 다음에는 (02,03) 샘플을 각각 뱅크0(Bank 0)의 어드레스 (1)과 뱅크1(Bank 1)의 어드레스 (1)에 기록한다. 동일한 방법으로 (4,5) 샘플에 대한 기록을 수행하고, 그 행에서 마지막 열에 해당하는 (6,7) 샘플을 기록한 다음에는, 교대 순서를 바꾸어 (8,9) 샘플을 뱅크1(Bank 1)의 어드레스 (4)과 뱅크0(Bank 0)의 어드레스 (4)에 기록한다. 동일한 방법으로 (10,11),...(62,63) 샘플에 대한 수평 방향의 기록을 수행한 다음에는 다시 수직방향의 기록을 수행한다. 51번째 샘플에 대한 쓰기가 종료되면, 읽기 과정을 시작한다. 읽기과정의 순서는 상술한 순서와 동일하므로 설명을 생략한다.Referring to FIG. 10B, a procedure of performing writing in the horizontal direction on the transpose memory will be described. First, (00,01) samples are respectively written at the address (0) and the bank 1 (Bank 1) of the bank 0. Write to address (0). Next, (02,03) samples are recorded in address 1 of bank 0 and address 1 of bank 1, respectively. In the same way, record for the (4,5) sample, record the (6,7) sample that corresponds to the last column in the row, and then reverse the order to transfer the (8,9) sample to Bank 1 (Bank 1). ) Is written in address 4 of the bank and address 4 of the bank 0. In the same way, the horizontal writing of the samples (10, 11), ... (62, 63) is performed, and then the vertical writing is performed again. When writing to the 51st sample is finished, the reading process starts. Since the reading process is the same as the above-described order, the description is omitted.

상기와 같은 전치 메모리 스케닝 방법에 따라 전치 메모리상에 읽기와 쓰기가 수행되는 과정을 설명하기 위하여 도 11에는 전치메모리상에서의 쓰기 및 읽기 주소와 처리 계수의 위치를 나타내었다.In order to explain a process of reading and writing on the pre-memory according to the pre-memory scanning method as described above, FIG. 11 shows the positions of the write and read addresses and the processing coefficients on the pre-memory.

수직방향으로 쓰기를 수행하는 시작 과정을 (W_V1)으로 참조하였다. 이 과정에서는 도 7에서 (0,1) 샘플에 대하여 동시에 쓰기를 수행한다. 이때, 0과 1은 뱅크0(BANK 0)의 주소 0번과 뱅크 1(BANK 1)의 주소 4번에 각각 기록된다. 다음 클록에서는 (W_V2)을 수행하는 것으로 참조하였다. 이 과정에서는 (2,3) 샘플에 대하여 동시에 쓰기를 수행한다. 이때, 2와 3은 뱅크0(BANK 0)의 주소 8번과 뱅크 1(BANK 1)의 주소 12번에 각각 기록된다. 마지막 열에 해당하는 (6,7) 샘플에 대한 기록을 수행한 다음에는 읽기 교대 순서를 변경하여 (8,9) 샘플을 뱅크1(BANK 0)의 주소 0번과 뱅크 1(BANK 1)의 주소 4번에 각각 기록한다.The starting process of writing in the vertical direction is referred to as (W_V1). In this process, the (0,1) samples are simultaneously written in FIG. At this time, 0 and 1 are recorded at address 0 of bank 0 (BANK 0) and address 4 of bank 1 (BANK 1), respectively. The next clock is referred to as performing (W_V2). In this process, (2,3) samples are simultaneously written. At this time, 2 and 3 are recorded at address 8 of bank 0 (BANK 0) and address 12 of bank 1 (BANK 1), respectively. After performing the recording for the last column (6,7), change the order of the reading shift, and then change the (8,9) sample to address 0 of bank 1 (BANK 0) and address of bank 1 (BANK 1). Record each at number four.

이제, (50,51) 샘플에 대한 쓰기가 완료된 다음에는 수평방향의 읽기를 수행한다. 수평 방향으로 읽기를 수행하는 시작 과정을 (R_H1)으로 참조하였다. 이 과정에서는 (0,8) 샘플을 뱅크0(BANK 0)의 주소 0번과 뱅크 1(BANK 1)의 주소 0번으로부터 각각 읽어낸다. 다음 클록에서는 (R_H2)을 수행하는 것으로 참조하였다. 이 과정에서는 (16,24) 샘플에 대하여 동시에 읽기를 수행한다. 이때, 16과 24는 뱅크0(BANK 0)의 주소 1번과 뱅크 1(BANK 1)의 주소 1번으로부터 읽어낸다. 마지막 행에 해당하는 (48,56) 샘플에 대한 읽기를 수행한 다음에는 읽기 교대 순서를 변경하여 (1,9) 샘플을 뱅크1(BANK 0)의 주소 4번과 뱅크 1(BANK 1)의 주소 4번으로부터 읽어낸다.Now, after writing to the (50, 51) samples is completed, the horizontal read is performed. The starting process of reading in the horizontal direction is referred to as (R_H1). In this process, (0,8) samples are read from address 0 of bank 0 (BANK 0) and address 0 of bank 1 (BANK 1), respectively. The next clock is referred to as performing (R_H2). This process simultaneously reads (16,24) samples. At this time, 16 and 24 are read from address 1 of bank 0 (BANK 0) and address 1 of bank 1 (BANK 1). After reading the (48,56) samples corresponding to the last row, change the order of the read alterations so that the (1,9) samples are replaced by address 4 of bank 1 (BANK 0) and bank 1 (BANK 1). Read from address 4.

수직방향으로의 쓰기가 완료되면 수평방향으로의 쓰기를 수행한다. 수직 방향으로 쓰기를 수행하는 시작 과정을 (W_H1)으로 참조하였다. 이 과정에서는 (0,8) 샘플을 뱅크0(BANK 0)의 주소 0번과 뱅크 1(BANK 1)의 주소 0번에 각각 기록한다. 다음 클록에서는 (W_H2)을 수행하는 것으로 참조하였다. 이 과정에서는 (16,24) 샘플을 뱅크0(BANK 0)의 주소 1번과 뱅크 1(BANK 1)의 주소 1번에 각각 기록한다. 이로써, 8×8 메모리만으로 수직 스케닝 및 수평 스케닝을 교대로 수행함으로써 파이프 라인형 전환을 반복한다.When writing in the vertical direction is completed, write in the horizontal direction is performed. The starting process of writing in the vertical direction is referred to as (W_H1). In this process, (0,8) samples are written to address 0 of bank 0 (BANK 0) and address 0 of bank 1 (BANK 1), respectively. The next clock is referred to as performing (W_H2). In this process, (16,24) samples are written to address 1 of bank 0 (BANK 0) and address 1 of bank 1 (BANK 1), respectively. Thus, pipeline switching is repeated by alternately performing vertical and horizontal scanning with only 8x8 memory.

이로써, 본 발명에 따른 고속 역이산코사인 변환 장치는 하나의 블록에 대하 여 수직 및 수평 역이산코사인변환을 모두 수행하는데는 4 클록이 소요되기 때문에, SD급 영상의 4 배 이상의 처리속도를 필요로 하는 HD급 영상에 대한 역이산코사인변환에 적합하다.As a result, the fast inverse discrete cosine transform apparatus according to the present invention requires four clocks to perform both vertical and horizontal inverse discrete cosine transform in one block, and thus requires more than four times the processing speed of the SD image. It is suitable for inverse discrete cosine transform for HD-quality image.

상술한 바와 같이 본 발명에 따른 고속 역이산코사인변환 장치 및 그 방법은 하나의 블록을 4 클록으로 처리할 수 있기 때문에 고속 처리를 요하는 HD급의 영상에 대한 역이산 코사인변환을 수행하는 것이 가능하며, 전치 메모리의 양이 적게 소요된다.As described above, the fast inverse discrete cosine transform apparatus and method thereof according to the present invention can process one block with four clocks, and thus it is possible to perform inverse discrete cosine transform on an HD-class image requiring high speed processing. The amount of transpose memory is small.

Claims (8)

영상 압축 디코더내에서 역이산코사인 변환을 수행하는 역이산코사인변환 장치에 있어서,An inverse discrete cosine transform apparatus for performing inverse discrete cosine transform in an image compression decoder, 역양자화기로부터 출력되는 샘플을 입력하여 역이산코사인변환을 수행하는 하나의 1차원 역이산코사인변환부;A one-dimensional inverse discrete cosine transform unit for inputting a sample output from the inverse quantizer to perform inverse discrete cosine transform; 상기 하나의 1차원 역이산코사인변환부로부터 출력된 결과 데이터를 저장하는 전치메모리; 및A pre-memory memory for storing result data output from the one-dimensional inverse discrete cosine transform unit; And 상기 전치메모리로부터 결과 데이터를 읽어 1차원 역이산 코사인변환을 수행하는 다른 하나의 1차원 역이산코사인변환부;를 포함하고,And another one-dimensional inverse discrete cosine transform unit that reads the result data from the prememory memory and performs one-dimensional inverse discrete cosine transform. 수직방향과 수평 방향의 역이산코사인 변환을 순차적으로 수행하기 위한 샘플의 읽기와 결과 샘플의 쓰기 과정을 상기 전치메모리 내의 두 개의 메모리 뱅크에 대하여 교대적으로 수행하여, 샘플의 읽기를 시작한 뒤에 소정의 시간이 지나면 샘플의 읽기와 샘플의 쓰기가 상기 전치메모리에서 동시에 수행되는 것을 특징으로 하는 고속 역이산코사인변환 장치.Sample reading and writing of the resultant sample are sequentially performed on the two memory banks in the pre-memory to sequentially perform the inverse discrete cosine transform in the vertical direction and the horizontal direction. A fast inverse discrete cosine transform device, characterized in that, after a time has passed, a sample read and a sample write are simultaneously performed in the prememory. 영상 압축 디코더내에서 역이산코사인 변환을 수행하는 역이산코사인변환 장치에 있어서,An inverse discrete cosine transform apparatus for performing inverse discrete cosine transform in an image compression decoder, 역양자화기로부터 출력되는 제1 소정 수의 비트의 샘플을 입력하여 한 클록에 제2 소정 수의 비트씩 역이산코사인변환을 수행하는 제1 역이산코사인변환부;A first inverse discrete cosine transform unit configured to input a sample of a first predetermined number of bits output from the inverse quantizer to perform inverse discrete cosine transform by a second predetermined number of bits in one clock; 상기 제1 역이산코사인변환부로부터 출력된 결과를 저장하는 제1 소정 크기의 블록의 전치메모리; 및A pre-memory of a block having a first predetermined size for storing a result output from the first inverse discrete cosine transform unit; And 한 클록에 제3 소정 수의 비트씩 역이산코사인변환을 수행하는 제2 역이산코사인변환부;를 포함하고,And a second inverse discrete cosine transform unit performing a third discrete cosine transform on a clock by a third predetermined number of bits. 수직방향과 수평 방향의 역이산코사인 변환을 순차적으로 수행하기 위한 샘플의 읽기와 결과 샘플의 쓰기 과정을 상기 전치메모리 내의 두 개의 메모리 뱅크에 대하여 교대적으로 수행하여, 샘플의 읽기를 시작한 뒤에 소정의 시간이 지나면 샘플의 읽기와 샘플의 쓰기가 상기 전치메모리에서 동시에 수행되는 것을 특징으로 하는 고속 역이산코사인변환 장치.Sample reading and writing of the resultant sample are sequentially performed on the two memory banks in the pre-memory to sequentially perform the inverse discrete cosine transform in the vertical direction and the horizontal direction. A fast inverse discrete cosine transform device, characterized in that, after a time has passed, a sample read and a sample write are simultaneously performed in the prememory. 제2항에 있어서, The method of claim 2, 상기 제1 소정 수는 12이고, 제2 소정수는 3이며,The first predetermined number is 12, the second predetermined number is 3, 상기 제1 역이산코사인변환부는, 4, 5, 6,및 7 비트의 뱅크를 각각 6 개 구비함으로써 이루어지는 쉬프트 레지스터 뱅크; 및 4 클록에 8 개의 샘플이 1차원 역이산코사인변환되는 3 비트 블록 1차원 역이산코사인변환부;를 포함하는 것을 특징으로 하는 고속 역이산코사인변환 장치.The first inverse discrete cosine transform unit may include: a shift register bank including six banks of four, five, six, and seven bits; And a three-bit block one-dimensional inverse discrete cosine transform unit in which eight samples are four-dimensionally one-dimensional inverse discrete cosine transformed at four clocks. 제2항에 있어서,The method of claim 2, 상기 제1 소정 크기는 8인 것을 특징으로 하는 고속 역이산코사인변환 장치.And said first predetermined size is eight. 제2항에 있어서,The method of claim 2, 상기 제3 소정 수는 4이고,The third predetermined number is four, 상기 제2 역이산코사인변환부는, 4, 5 ,6, 및 7 비트의 뱅크를 각각 8 개 구비함으로써 이루어지는 쉬프트 레지스터 뱅크; 및 4 클록에 8 개의 샘플이 1차원 역이산코사인변환되는 4 비트 블록 1차원 역이산코사인변환부;를 포함하는 것을 특징으로 하는 고속 역이산코사인변환 장치.The second inverse discrete cosine transform unit comprises: a shift register bank comprising eight banks of four, five, six, and seven bits; And a 4-bit block one-dimensional inverse discrete cosine transform unit in which eight samples are four-dimensionally one-dimensional inverse discrete cosine transformed at four clocks. 제2항에 있어서,The method of claim 2, 상기 제1 역이산코사인변환 수행부 및 상기 제2 역이산코사인변환 수행부는 8 개의 1차원 입력에 대하여 4 클록에 수행될 수 있도록 각각 4 비트 및 3 비트 그룹형으로 이루어진 것을 특징으로 하는 고속 역이산코사인변환 장치.The first inverse discrete cosine transform performing unit and the second inverse discrete cosine transform performing unit are each configured in 4-bit and 3-bit group types so as to be performed at four clocks for eight one-dimensional inputs. Cosine converter. 두 개의 메모리 뱅크를 구비하고 영상 압축 디코더에서 역이산코사인 변환을 수행하는 역이산코사인변환 장치내에서 수행하는 전치메모리 스케닝 방법에 있어 서,In a pre-memory scanning method performed in an inverse discrete cosine transform apparatus having two memory banks and performing inverse discrete cosine transform in an image compression decoder, (wa) 수평 방향 또는 수직방향으로 읽기를 수행하도록 설정하는 단계;(wa) setting to perform reading in the horizontal direction or the vertical direction; (wb) 두 메모리 뱅크로부터 교대적으로 읽기를 수행하는 단계;(wb) alternately reading from the two memory banks; (wc) 읽기를 수행한 전치메모리의 블록이 마지막 행에 해당하는지를 체크하는 단계;(wc) checking whether a block of the pre-memory in which the read is performed corresponds to the last row; (wd) 상기 (wc) 단계에서 마지막 행이면 그 행에서 마지막 열에 해당하는지를 체크하는 단계;(wd) if the last row in step (wc), checks whether the row corresponds to the last column; (we) 상기 (wd) 단계에서 마지막 행이지만, 마지막 열이 아닌 경우에는 교대 순서를 변경하여 상기 단계들을 수행하는 단계; 및(we) if the last row in step (wd), but is not the last column, altering the order of performing the steps; And (Wf) 쓰기 방향을 변경하여 상기 (wa)내지 (wf) 단계를 수행하는 단계;를 포함하는 쓰기 과정과,(Wf) changing the writing direction to perform the steps (wa) to (wf); (ra) 수평 방향으로 읽기를 수행하도록 초기화하는 단계;(ra) initializing to perform reading in the horizontal direction; (rb) 두 뱅크로부터 교대적으로 읽기를 수행하는 단계;(rb) alternately reading from two banks; (rc) 읽기를 수행한 전치메모리의 블록이 마지막 행에 해당하는지를 체크하는 단계;(rc) checking whether the block of the pre-memory that performed the read corresponds to the last row; (rd) 상기 (rc) 단계에서 마지막 행이면 그 행에서 마지막 열에 해당하는지를 체크하는 단계;(rd) if the last row in step (rc), checking whether the row corresponds to the last column; (re) 상기 (rd) 단계에서 마지막 행이지만, 마지막 열이 아닌 경우에는 교대 순서를 변경하여 상기 단계들을 수행하는 단계; 및(re) if the last row in step (rd) but is not the last column, changing the order of alternation to perform the steps; And (rf) 읽기 방향을 변경하여 상기 (ra)내지 (rf) 단계를 수행하는 단계;를 포 함하는 읽기과정으로 이루어진 것을 특징으로 하는 전치메모리 스케닝 방법.and (rf) changing the read direction to perform the steps (ra) to (rf). 제7항에 있어서,The method of claim 7, wherein 51번째 샘플에 대한 쓰기가 종료되었는지를 체크하여 읽기 과정으로 분기시키는 단계를 더 포함하는 것을 특징으로 하는 전치메모리 스케닝 방법.Checking whether the writing of the 51st sample has ended and branching to a reading process.
KR1019990020967A 1999-06-07 1999-06-07 High speed inverse discrete cosine transform device KR100644556B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990020967A KR100644556B1 (en) 1999-06-07 1999-06-07 High speed inverse discrete cosine transform device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990020967A KR100644556B1 (en) 1999-06-07 1999-06-07 High speed inverse discrete cosine transform device

Publications (2)

Publication Number Publication Date
KR20010001616A KR20010001616A (en) 2001-01-05
KR100644556B1 true KR100644556B1 (en) 2006-11-13

Family

ID=19590506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990020967A KR100644556B1 (en) 1999-06-07 1999-06-07 High speed inverse discrete cosine transform device

Country Status (1)

Country Link
KR (1) KR100644556B1 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5424733A (en) * 1993-02-17 1995-06-13 Zenith Electronics Corp. Parallel path variable length decoding for video signals
JPH0883347A (en) * 1994-09-13 1996-03-26 Toshiba Corp Picture processor
KR970003805A (en) * 1995-06-26 1997-01-29 김주용 Semiconductor device manufacturing method
KR970003805B1 (en) * 1994-02-24 1997-03-21 대우전자 주식회사 Improved apparatus for transforming ore dimension discrete and inverse discrete cosine
KR0145448B1 (en) * 1994-12-14 1998-07-15 배순훈 Apparatus for controlling an inverse discrete cosine transform in an image encoder
KR19990032111A (en) * 1997-10-16 1999-05-06 전주범 DC coefficient delay memory device of HDI digital video cassette
KR19990060489A (en) * 1997-12-31 1999-07-26 구자홍 HDIVE Video Decoder
KR19990068991A (en) * 1998-02-03 1999-09-06 구자홍 Video decoding system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5424733A (en) * 1993-02-17 1995-06-13 Zenith Electronics Corp. Parallel path variable length decoding for video signals
KR970003805B1 (en) * 1994-02-24 1997-03-21 대우전자 주식회사 Improved apparatus for transforming ore dimension discrete and inverse discrete cosine
JPH0883347A (en) * 1994-09-13 1996-03-26 Toshiba Corp Picture processor
KR0145448B1 (en) * 1994-12-14 1998-07-15 배순훈 Apparatus for controlling an inverse discrete cosine transform in an image encoder
KR970003805A (en) * 1995-06-26 1997-01-29 김주용 Semiconductor device manufacturing method
KR19990032111A (en) * 1997-10-16 1999-05-06 전주범 DC coefficient delay memory device of HDI digital video cassette
KR19990060489A (en) * 1997-12-31 1999-07-26 구자홍 HDIVE Video Decoder
KR19990068991A (en) * 1998-02-03 1999-09-06 구자홍 Video decoding system

Also Published As

Publication number Publication date
KR20010001616A (en) 2001-01-05

Similar Documents

Publication Publication Date Title
US5920352A (en) Image memory storage system and method for a block oriented image processing system
US5910824A (en) Frame memory for a motion picture decoder
EP1016970A2 (en) A memory architecture for parallel data access along any given dimension of an n-dimensional rectangular data array
US8436865B2 (en) Memory controller and memory system using the same
US6115323A (en) Semiconductor memory device for storing data with efficient page access of data lying in a diagonal line of a two-dimensional data construction
US20060165299A1 (en) Semiconductor memory apparatus
KR19980081641A (en) Moving picture decoding method and moving picture decoding device
KR100644556B1 (en) High speed inverse discrete cosine transform device
JP3120010B2 (en) Image decoding method and image decoding device
US20040061704A1 (en) Memory access method for video decoding
CN101001369A (en) Method and apparatus for decoding video that alternately store lines of picture in pixel units and method of storing reference picture
KR20050043607A (en) Signal processing method and signal processing device
WO2000044179A1 (en) Method of memory utilization in a predictive video decoder
JPH0865686A (en) Image decoding device
US20040155883A1 (en) Memory access method for video decoding
JPH07298264A (en) Image data processing method, storage device used for the method and processing unit of image data
JP6490896B2 (en) Image processing device
KR100846791B1 (en) Method and apparatus for saving video data
JP3532137B2 (en) Data generation circuit
US6873334B2 (en) Method of buffer management and task scheduling for two-dimensional data transforming
JP3624457B2 (en) Image signal encoding apparatus and image signal decoding apparatus
JP2005218055A (en) Apparatus, method and program for processing image
KR100237486B1 (en) Apparatus for rearranging data output from a frame memory
US9025658B2 (en) Transform scheme for video coding
KR100235488B1 (en) Apparatus for rearranging data output from a frame memory according to scanning pattern of a frame memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121030

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131030

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141030

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151029

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee