KR100228554B1 - Memory controlling method in video encoder - Google Patents

Memory controlling method in video encoder Download PDF

Info

Publication number
KR100228554B1
KR100228554B1 KR1019970000471A KR19970000471A KR100228554B1 KR 100228554 B1 KR100228554 B1 KR 100228554B1 KR 1019970000471 A KR1019970000471 A KR 1019970000471A KR 19970000471 A KR19970000471 A KR 19970000471A KR 100228554 B1 KR100228554 B1 KR 100228554B1
Authority
KR
South Korea
Prior art keywords
clocks
memory
data
module
dram
Prior art date
Application number
KR1019970000471A
Other languages
Korean (ko)
Other versions
KR19980065457A (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 KR1019970000471A priority Critical patent/KR100228554B1/en
Publication of KR19980065457A publication Critical patent/KR19980065457A/en
Application granted granted Critical
Publication of KR100228554B1 publication Critical patent/KR100228554B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 MPEG-2 TV급 비디오 인코더 내의 각 모듈에서 프레임 메모리 모듈을 통해 메모리를 억세스할 시, 각각의 억세스 시간을 제어하여 프레임 메모리 사용의 효율성을 향상시킨 비디오 인코더에서의 메모리 제어 방법에 관한 것으로, FMM에서 제어하는 디램의 억세스 시간을 분할하여 최적의 상태에서 각각의 모듈들이 다램을 억세스할 수 있도록 하므로써, 억세스 속도를 향상시키는 잇점과 아울러, 서브모듈에 사용되는 버퍼의 용량을 줄이는 잇점이 있다.The present invention relates to a memory control method in a video encoder that improves the efficiency of using the frame memory by controlling the respective access time when accessing the memory through the frame memory module in each module in the MPEG-2 TV-class video encoder In addition, by dividing the access time of the DRAM controlled by the FMM so that each module can access the DRAM in an optimal state, there is an advantage of improving the access speed and reducing the capacity of the buffer used in the submodule. .

Description

비디오 인코더에서의 메모리 제어 방법Memory Control Method in Video Encoder

본 발명은 비디오 인코더에서의 메모리 제어 방법에 관한 것으로, 엄펙-2(이하 MPEG-2라 칭한다) TV급 비디오 인코더 내의 각 모듈에서 프레임 메모리 모듈을 통해 메모리를 억세스할 시, 각각의 억세스 시간을 제어하여 프레임 메모리 사용의 효율성을 향상시킨 비디오 인코더에서의 메모리 제어 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory control method in a video encoder. Each module in umpec-2 (hereinafter referred to as MPEG-2) TV class video encoder controls each access time when a memory is accessed through a frame memory module. The present invention relates to a memory control method in a video encoder that improves the efficiency of using frame memory.

일반적으로 현재 사용되고 있는 MPEG-2 기반의 TV급 비디오 인코더는 입력 영상 데이터, 부호화 영상 데이터 및 부호화 비트열 데이터를 다수개의 프레임 메모리에 단순히 순차적으로 매핑시켜 저장하고 있다.In general, currently used MPEG-2 based TV-grade video encoder stores input image data, encoded image data, and encoded bit string data by sequentially sequentially mapping the plurality of frame memories.

이에 따라 다수개의 메모리를 사용하게 되고, 따라서 하드웨어가 차지하는 면적이 커지면서 각 메모리(특히 디램을 사용함) 사용에 있어 낭비 요소가 생길 수 있다.As a result, a large number of memories are used, and as the area occupied by hardware increases, a waste of each memory (particularly using a DRAM) may be generated.

또한, 데이터의 비효율적인 저장방식에 따라 저장된 데이터를 억세스하거나, 새로운 데이터를 라이트시킬 때 걸리는 시간이 길어져 디램 메모리의 접근 데이터 폭이 늘어나는 문제가 있다.In addition, there is a problem in that the access data width of the DRAM memory is increased because the time required for accessing stored data or writing new data is lengthened according to an inefficient storage method of data.

본 발명에서는 상기에 기술한 바와 같은 종래 문제점을 감안하여, 프레임 메모리 모듈 내의 각 서브 모듈들이 디램을 억세스할 시, 이 억세스 타이밍을 제어하여 가장 최적의 상태로 디램에 데이터를 저장함과 동시에, 상기 각 서브 모듈들이 사용하는 버퍼용량 및 디램 메모리 사용을 줄일 수 있도록 하는 것을 목적으로 한다.In the present invention, in consideration of the conventional problems as described above, when each sub-module in the frame memory module accesses the DRAM, the access timing is controlled to store data in the DRAM in the most optimal state, The purpose is to reduce the buffer capacity and DRAM memory used by submodules.

제1도는 본 발명이 적용되는 비디오 인코더의 개략적인 블록도.1 is a schematic block diagram of a video encoder to which the present invention is applied.

제2도는 비디오 인코더 내의 프레임 메모리 모듈의 개략적인 블록도.2 is a schematic block diagram of a frame memory module in a video encoder.

제3도는 본 발명에 따른 각 서브모듈 별 메모리 억세스 타임을 나타내는 타이밍도.3 is a timing diagram illustrating memory access time for each submodule according to the present invention.

제4도는 본 발명에 적용되는 디램의 패스트 페이지 모드 타이밍을 나타내는 타이밍도.4 is a timing diagram showing a fast page mode timing of a DRAM according to the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

1 : 영상 입력 모듈 2 : 프레임 메모리 모듈1: Video input module 2: Frame memory module

3 : 코더 모듈 4 : 가변길이 부호화 모듈3: coder module 4: variable length coding module

5 : 움직임 추정 모듈 6 : 메모리 모듈5: motion estimation module 6: memory module

21 : 영상 입력 서브모듈 22 : 코더 서브모듈21: video input submodule 22: coder submodule

23 : 움직임 추정 서브모듈 24 : 가변길이 부호화 서브모듈23: motion estimation submodule 24: variable length encoding submodule

25 : 디램 제어 시퀀서 215,233 : 먹스25: DRAM Control Sequencer 215,233: MUX

211~214, 221, 231, 232, 241, 242 : 버퍼211 ~ 214, 221, 231, 232, 241, 242: buffer

상기와 같은 목적을 달성하기 위해 본 발명에서 제시하는 메모리 제어 방법은 프레임 메모리 모듈(FMM)을 통해 메모리 억세스를 제어하는 비디오 인코더에서의 메모리 제어 방법에 있어서, 상기 프레임 메모리 모듈 내의 각 서브 모듈들이 공유하는 단일 어드레스 구조를 갖는 디램 메모리의 억세스 타임(클럭수)을 각 서브 모듈별로 분할하여 각각 할당하고; 상기 할당된 시간을 데이터의 입/출력 상태 및 변화 상태에 따라 각 서브 모듈이 메모리를 독점적으로 억세스할 수 있도록 타이밍 스케쥴을 작성하고; 상기 작성된 타이밍 스케쥴을 내장한 FMM의 제어에 따라 상기 할당된 시간에만 메모리를 억세스할 수 있도록 하는 것을 특징으로 한다.In order to achieve the above object, the present invention provides a memory control method in a video encoder for controlling memory access through a frame memory module (FMM), wherein each submodule in the frame memory module is shared. Dividing an access time (clock count) of a DRAM memory having a single address structure for each submodule and assigning each of them; Create a timing schedule for each sub-module to access memory exclusively according to the input / output state and change state of the data in the allocated time; The memory may be accessed only during the allotted time under the control of the FMM incorporating the created timing schedule.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

보편적으로 MPEG-2 기반의 TV급 비디오 인코더를 디지틀 회로로 설계하려면 입력된 영상과 중간 부호화된 영상, 그리고 부호화 비트열 데이터를 임시 저장하기 위한 프레임 메모리 모듈(Frame Memory Module:이하 FMM이라 칭한다)이 필요한데, 이를 포함하고 있는 보편적인 비디오 인코더의 개략적인 블록을 살펴보면 제1도에 도시된 바와 같이, 카메라(도면에는 도시하지 않음) 등으로부터 입력되는 필드 단위의 칼라 데이터를 프레임 단위의 데이터로 변형시켜 출력하는 영상 입력 모듈(IP)(1)과; 인코더 내의 각 모듈들이 발생시키는 데이터를 외부 메모리에 저장 및 리딩할시 이의 동작을 제어하는 FMM(2)과; 중간 부호화 데이터를 출력하는 코더 모듈(3)과; 부호화 비트열을 발생시키는 가변길이 부호화 모듈(VLC)(4)과; 움직임 추정과 움직임 보상을 행하는 움직임 추정 모듈(ME/MC)(5)과; 상기 FMM(2)에서 입/출력되는 데이터를 저장하는 메모리 모듈(6)을 포함한다.In general, in order to design an MPEG-2 based TV-grade video encoder as a digital circuit, a frame memory module (hereinafter referred to as FMM) for temporarily storing input video, intermediate coded video, and coded bit string data is referred to. As shown in FIG. 1, a schematic block of a universal video encoder including the same may be modified by converting color data of a field unit input from a camera (not shown) into frame data. An image input module (IP) 1 for outputting; A FMM (2) for controlling its operation when storing and reading data generated by each module in the encoder in an external memory; A coder module 3 for outputting intermediate encoded data; A variable length coding module (VLC) 4 for generating a coded bit stream; A motion estimation module (ME / MC) 5 for performing motion estimation and motion compensation; It includes a memory module (6) for storing data input and output from the FMM (2).

이때, 상기 메모리 모듈(6)은 상기 FMM(2)을 이용하면서부터 단일 어드레스의 메모리 구조를 갖는다. 즉, 각 모듈(2, 3, 4, 5)들에 대응하는 다수개의 메모리를 사용하는 것이 아니라 공유되는 하나의 메모리(이하 디램이라 칭한다)를 사용하며, 이의 억세스 제어를 상기 FMM(2)을 통해 수행한다.At this time, the memory module 6 has a single address memory structure using the FMM 2. That is, instead of using a plurality of memories corresponding to each of the modules 2, 3, 4, and 5, one shared memory (hereinafter referred to as DRAM) is used, and access control thereof is performed using the FMM 2. Through.

상기와 같이 구성되는 비디오 인코더의 개략적인 동작을 설명하면, 상기 영상 입력 모듈(1)을 통해 프레임 단위의 칼라(R.G.B) 데이터가 입력되면, 코더 모듈(3)에서는 이에 대한 중간 부호화 데이터를 출력하고, 이 데이터는 FMM(2)에 의해 디램(6)에 저장된다.Referring to the schematic operation of the video encoder configured as described above, when color (RGB) data in units of frames is input through the image input module 1, the coder module 3 outputs the intermediate coded data. This data is stored in the DRAM 6 by the FMM 2.

상기 디램(6)에 저장된 데이터는 움직임 추정 모듈(5)에 입력되어 과거 프레임 데이터와 현재 데이터를 통해 움직임 추정과 보상이 된 상태의 데이터를 코더 모듈(3)로 출력한다.The data stored in the DRAM 6 is input to the motion estimation module 5 to output the data of the motion estimation and compensation state through the past frame data and the current data to the coder module 3.

코더 모듈(3)에서는 상기 움직임 추정 모듈(5)에서 출력된 데이터를 이용하여 중간 부호화 데이터를 출력하고, 이 데이터는 가변길이 부호화 모듈(4)에 입력되어 가변길이 부호화된 부호화 비트열로써 출력된다.The coder module 3 outputs the intermediate coded data using the data output from the motion estimation module 5, and the data is input to the variable length coding module 4 and output as a variable length coded bit stream. .

이어 상기 부호화 비트열은 다시 FMM(2)으로 입력된 후, 8비트 씩 비디오 인코더 외부(도면에는 도시하지 않음)로 출력된다.Subsequently, the coded bit string is again input to the FMM 2 and then output to the outside of the video encoder (not shown in the figure) by 8 bits.

제2도는 본 발명이 적용되는 상기 FMM의 세부 블록도로, 상기 영상 입력 모듈(1)과 디램(6)간의 데이터 입/출력시 보조 메모리 역할을 하는 영상입력 서브모듈(21)과; 상기 코더 모듈(3)과 디램(6)간의 데이터 입/출력시 보조 메모리 역할을 하는 코더 서브모듈(22)과; 상기 움직임 추정 모듈(5)와 디램(6)간의 데이터 입/출력시 보조 메모리 역할을 하는 움직임 추정 서브모듈(23)과; 상기 가변길이 부호화 모듈(4)과 디램(6) 간의 데이터 입/출력시 보조 메모리 역할을 하는 가변길이 부호화 서브모듈(24); 및 상기 각 서브모듈(21~24)과 디램(6)의 데이터 입/출력시 데이터의 제어 및 디램(6)의 어드레스를 발생시키는 디램 제어 시퀀서(25)를 포함한다.2 is a detailed block diagram of the FMM to which the present invention is applied and includes: an image input submodule 21 serving as an auxiliary memory when data is input / output between the image input module 1 and the DRAM 6; A coder submodule 22 serving as an auxiliary memory when inputting / outputting data between the coder module 3 and the DRAM 6; A motion estimation submodule 23 serving as an auxiliary memory when inputting / outputting data between the motion estimation module 5 and the DRAM 6; A variable length encoding submodule 24 serving as an auxiliary memory when inputting / outputting data between the variable length encoding module 4 and the DRAM 6; And a DRAM control sequencer 25 for controlling data and generating an address of the DRAM 6 when data input / output of each of the sub-modules 21 to 24 and the DRAM 6 is performed.

이때, 상기 입력 영상 서브모듈(21)은 입력 영상 모듈(1)에서 출력되는 휘도신호와 색도신호를 각각 저장하는 버퍼(211, 212)들과; 디램(6)에서 출력된 매크로 블록 휘도신호와, 매크로 블록 색도신호를 각각 저장하는 버퍼(213, 214); 및 상기 버퍼(213, 214)의 출력을 선택적으로 출력하는 먹스(215)를 포함한다.In this case, the input image submodule 21 includes buffers 211 and 212 for storing luminance signals and chromaticity signals respectively output from the input image module 1; Buffers 213 and 214 for storing the macro block luminance signal and the macro block chromaticity signal output from the DRAM 6, respectively; And a mux 215 for selectively outputting the outputs of the buffers 213 and 214.

상기 코더 서브모듈(22)은 코더 모듈(3)에서 출력된 부호화된 데이터를 저장하는 버퍼(221)를 포함한다.The coder submodule 22 includes a buffer 221 for storing coded data output from the coder module 3.

상기 움직임 추정 서브모듈(23)은 디램(6)에서 출력된 과거 프레임 데이터를 휘도신호와 색도 신호로 각각 구분하여 저장하는 버퍼(231, 232)들과; 상기 각 버퍼(231, 232)들의 출력을 선택적으로 출력하는 먹스(233)를 포함한다.The motion estimation submodule 23 includes buffers 231 and 232 for dividing and storing past frame data output from the DRAM 6 into luminance and chroma signals, respectively; A mux 233 for selectively outputting the output of each of the buffers (231, 232).

상기 가변길이 부호화 서브모듈(24)은 가변길이 부호화 모듈(4)에서 출력되는 부호화 비트열 데이터(vstream)를 저장하는 버퍼(241)와; 디램(6)에서 출력된 부호화 비트열 데이터(cstream)를 저장하는 버퍼(242)를 포함한다.The variable length encoding submodule 24 includes a buffer 241 for storing encoded bit string data (vstream) output from the variable length encoding module 4; A buffer 242 for storing encoded bit string data (cstream) output from the DRAM 6 is included.

상기와 같이 구성된 FMM(2)의 동작을 살펴보면, 상기 각 서브모듈(21~24)은 자신과 연결된 외부의 각 모듈(1, 3~5)들로부터 출력되는 데이터를 저장하였다가 각 서브모듈(21~24) 중 디램(6) 억세스 시간이 할당된 서브모듈에서 발생한 데이터를 디램(6)에 라이트하거나, 혹은 읽어낸다.Looking at the operation of the FMM (2) configured as described above, each of the sub-modules 21 to 24 stores the data output from each of the external modules (1, 3 to 5) connected to the sub-module ( The data generated by the submodule to which the DRAM 6 access time is allocated among the 21 to 24 is written to or read from the DRAM 6.

이와 같이 FMM(2) 내에 각 모듈들에 대한 버퍼 역할의 서브모듈들을 구성하는 이유는 상기 디램(6)에 저장되거나 디램(6)으로부터 읽어내어지는 데이터가 여러 종류에 해당되며, 또한 상기 각 모듈들에서 발생되거나 요구되는 데이터가 동시에 일어날 수도 있기 때문이다.The reason for configuring the sub-modules serving as buffers for the respective modules in the FMM 2 is various types of data stored in the DRAM 6 or read from the DRAM 6. This is because the data generated or required in these fields may occur simultaneously.

따라서 이들 동시에 발생되는 데이터를 디램(6)에서는 한 번에 처리할 수 없기 때문에 버퍼들에 일시 저장하였다가 디램(6)에 저장하는 것이다.Therefore, since these simultaneous data cannot be processed at one time by the DRAM 6, the data are temporarily stored in the buffers and then stored in the DRAM 6.

이처럼 FMM(2)의 각 외부 모듈에서 각종 데이터의 발생 및 요구가 임의로 발생하는 것을 FMM(2)이 외부 디램(6)의 접속을 제어하여 적절히 처리해주기 위해서는 위에서 언급한 바와 같이, FMM(2) 내부의 버퍼를 설계할 시 디램(6)보다 접근 속도가 빠른 램(S-램 등)을 사용하여 설계한다.As described above, in order for the FMM 2 to control the connection of the external DRAM 6 and to appropriately process that the generation and request of various data are randomly generated in each external module of the FMM 2, the FMM 2 When designing the internal buffer, design using RAM (S-RAM, etc.) that has faster access speed than DRAM (6).

이상과 같은 구성을 통해 동작하는 비디오 인코더 및 이를 통한 디램의 데이터 저장방식의 주 관점은 상기 버퍼로 사용되는 S-램의 용량을 최대한 줄이는 점과 이와 관련된 디램의 억세스 타이밍 스케쥴을 고려하여, 외부 모듈에서 데이터에 대해 다양하게 서비스를 요구하는 것을 실시간에 처리해 주는 것이다.The main aspect of the video encoder operating through the above configuration and the data storage method of the DRAM through the above configuration is to reduce the capacity of the S-RAM used as the buffer as much as possible, and in consideration of the access timing schedule of the related DRAM, the external module Is to handle various service requests for data in real time.

따라서, 본 발명에서는 상기와 같은 당면 문제를 해결하기 위해, 디램을 억세스하는 각 모듈들의 억세스 타임을 제어하여 공유 형태의 디램(6)을 최대한 효율적으로 사용하도록 하는 디램 제어방법을 제공한다.Accordingly, the present invention provides a DRAM control method for controlling the access time of each module accessing the DRAM to use the shared DRAM 6 as efficiently as possible.

본 발명의 제어방법을 설명하면 하기와 같다.The control method of the present invention will be described below.

보편적으로 TV급 비디오 인코더는 영상의 시작을 알리는 클럭(pick)이 발생하고, 이 클럭 발생에 따라 매크로 시작블럭 클럭(이하 MBCK라 칭한다)이 발생되면 이 클럭에 의해 발생되는 매크로블럭 어드레스는 -3이다. 여기서 -3은 실제 첫째 매크로 블록이 처리되는 시점에서 세 번째 점을 의미한다.Generally, a TV-class video encoder generates a pick signal to indicate the start of an image. When the macro start block clock (hereinafter referred to as MBCK) is generated according to the clock generation, the macroblock address generated by this clock is -3. to be. Where -3 means the third point at which the first macroblock is actually processed.

이때 상기 FMM의 하드웨어는 상기 MBCK 클럭에 의한 매크로블럭 어드레스가 -2일 때 동작하는데, 매크로블럭 어드레스가 -2가 되면 FMM(2) 내부에 구성된 움직임 추정 서브모듈(23)은 외부의 움직임 추정 모듈(5)와 함께 동작을 시작한다.At this time, the hardware of the FMM operates when the macroblock address by the MBCK clock is -2. When the macroblock address becomes -2, the motion estimation submodule 23 configured inside the FMM 2 is an external motion estimation module. Start operation with (5).

또한 상기 움직임 추정 서브모듈(23)은 매크로블럭 어드레스가 2가 되는 시점에서 움직임 벡터를 외부의 움직임 추정 모듈(5)로부터 입력받은 후, 이 움직임 벡터를 해석하고 전달된 움직임 벡터가 가리키는 값만큼 메모리(본 발명에서는 디램임)의 어드레스를 이동시켜 움직임 보상에 필요한 색신호(CbCr)를 외부의 움직임 추정 모듈(5)로 출력한다.In addition, the motion estimation submodule 23 receives a motion vector from an external motion estimation module 5 at the time when the macroblock address becomes 2, and then interprets the motion vector and stores as much as the value indicated by the transmitted motion vector. The color signal CbCr necessary for motion compensation is outputted to the external motion estimation module 5 by shifting the address (which is a DRAM in the present invention).

이어 MBCK 클럭에 의해 매크로블럭 어드레스가 3이 되면 코더 모듈(2)은 부호화된 휘도신호와 색신호를 FMM(2)으로 출력한다.When the macroblock address is 3 by the MBCK clock, the coder module 2 outputs the encoded luminance signal and the color signal to the FMM 2.

이에 따라 FMM(2) 내부에 구성된 코더 서브모델(22)은 출력된 데이터를 디램(6) 사용이 승낙된 시간에 디램에 저장한다.Accordingly, the coder submodel 22 configured in the FMM 2 stores the output data in the DRAM at the time when the use of the DRAM 6 is approved.

또한, MBCK 클럭에 의해 매크로블럭 어드레스가 4가 되면 가변길이 부호화 모듈(4)은 가변길이 부호화를 수행하여 가변율의 데이터를 상기 FMM(2)으로 출력하며, 이 데이터는 FMM 내의 가변길이 부호화 서브 모듈(24)에 저장된 다음 디램(6) 사용이 승낙된 시간에 데이터를 저장한다.In addition, when the macroblock address becomes 4 by the MBCK clock, the variable length encoding module 4 performs variable length encoding to output data having a variable rate to the FMM 2, and the data is a variable length encoding sub in the FMM. The data is stored in the module 24 at the time the next DRAM 6 usage is accepted.

이와 같이 각각의 서브 모듈들이 디램(6)의 억세스 시간을 할당받아 데이터를 처리하는 시점을 제3도를 참조하여 설명하면 하기와 같다.As described above, referring to FIG. 3, a time point at which each submodule allocates an access time of the DRAM 6 and processes data is described as follows.

상기 FMM(2) 내부에 구성된 디램 제어 시퀀서(25)는 시스템 클럭(SCK : 13.5MHz 사용)을 2배 체배시킨 클럭(SCK2 : 27MHz)에 동기되어 각 서브모듈들이 디램(6)을 억세스하는 시간을 제어하는데, 이때 상기 클럭(SCK2)은 660개의 클럭수를 가지며, 이 클럭수를 나누어 각 모듈에게 디램(6) 사용을 승낙한다.The DRAM control sequencer 25 configured inside the FMM 2 is a time when each submodule accesses the DRAM 6 in synchronization with a clock (SCK2: 27 MHz) multiplied by a double of a system clock (using SCK: 13.5 MHz). At this time, the clock (SCK2) has a number of 660 clocks, and divides the number of clocks to allow each module to use the DRAM (6).

제3도는 각 서버모듈들이 디램(6)을 억세스하는 시간을 보여주는 타이밍도로, 제3도의(a)는 움직임 추정 서브모듈(24)이 디램을 억세스할 타이밍을 나타내고, 제3도의(b)는 가변길이 부호화 서브모듈(24)이 디램을 억세스할 타이밍을 나타내고, 제3도의(c)는 영상 입력 서버모듈(21)이 디램을 억세스할 타이밍을 나타내고, 제3도의(d)는 코더 서브모듈(22)이 디램을 억세스할 타이밍을 나타내고, 제3도의(e)는 디램(6)에서 수행되는 리프레쉬 모드가 동작되는 타이밍을 나타낸다.FIG. 3 is a timing diagram showing the time when each server module accesses the DRAM 6. FIG. 3 (a) shows the timing at which the motion estimation submodule 24 will access the DRAM, and FIG. FIG. 3 (c) shows the timing at which the image input server module 21 will access the DRAM, and FIG. 3 (d) shows the coder submodule. Denoted at 22 is the timing of accessing the DRAM, and FIG. 3E shows the timing at which the refresh mode performed at the DRAM 6 is operated.

상기와 같은 클럭에 따라 각 서브모듈들은 매크로 블록 클럭이 시작을 알리면 660개의 클럭(SCK2) 동안 정해진 시간(클럭이 하이 값이 되는 부분)에 디램(6)을 사용하며, 이상과 같이 디램(6) 억세스 시간을 다음 표 1에 정리하였다.According to the clock as described above, each submodule uses the DRAM 6 at a predetermined time (a part where the clock becomes a high value) for 660 clocks SCK2 when the macro block clock notifies the start. ) Access times are summarized in Table 1 below.

이때 표 1에서 시작과 끝 사이에 쓰인 숫자는 0~659 사이의 'SCK2' 클럭 순번을 의미하며, 시작-끝은 끝에서 시작까지의 클럭수를 의미하고, 이 클럭수는 후술할 서브모듈들이 메모리(디램)를 사용하는 시간들이다.In this case, the number written between start and end in Table 1 means the 'SCK2' clock sequence between 0 and 659, and the start-end means the number of clocks from the end to the start. These are the times of using memory (DRAM).

Figure kpo00002
Figure kpo00002

Figure kpo00003
Figure kpo00003

상기와 같은 표를 요약하여 설명하면, 움직임 추정 서브모듈(23)에서 필요로 하는 클럭수는 6개의 Y 매크로 블록에 대해 204개의 클럭((1ra(랜덤 억세스) + 31fp(패스트페이지) = 34clks) × 6)이 필요하고, 부호화된 색신호(CbCr)을 출력하기 위해서는 50개의 클럭((5ra + 10fp) × 2)이 필요하다.Summarizing the above table, the number of clocks required by the motion estimation submodule 23 is 204 clocks for 6 Y macroblocks ((1ra (random access) + 31fps (fast page) = 34clks)). 6) is required, and 50 clocks ((5ra + 10fp) x 2) are required to output the encoded color signal CbCr.

그리고 영상 입력 서브모듈(21)에서 필요로 하는 클럭수는 입력되는 데이터를 저장하기 위해 92개의 클럭(4ra + 78fp + 2SCK2)이 필요하고, 데이터를 출력하기 위해 필요한 클럭수는 Y 데이터인 경우 40클럭(4ra + 28fp), 부호화된 색 신호인 경우 60클럭(8ra + 36fp)이 필요하다.The number of clocks required by the image input submodule 21 requires 92 clocks (4ra + 78fps + 2SCK2) to store input data, and the number of clocks required for outputting data is Y data. In the case of a clock (4ra + 28fp) and an encoded color signal, 60 clocks (8ra + 36fp) are required.

그리고 코더 서브모듈(22)에서 필요로 하는 클럭수는 Y를 저장하기 위해 34개의 클럭(1ra + 31fp)이 필요하며, 부호화된 색 신호는 20개의 클럭(2ra + 14fp)이 필요하다.The number of clocks required by the coder submodule 22 requires 34 clocks (1ra + 31fps) to store Y, and 20 clocks (2ra + 14fps) for the encoded color signal.

그리고 가변길이 부호화 서브모듈(24)에서 필요로 하는 클럭수는 항등률의 데이터를 출력하기 위해 10개의 클럭이 필요하고, 입력으로 가변율의 데이터를 받기 위해서는 최대 146개의 클럭(2ra + 140fp)이 필요하다.The number of clocks required by the variable length encoding submodule 24 requires 10 clocks to output the data of the constant rate, and up to 146 clocks (2ra + 140fps) are required to receive the data of the variable rate as an input. need.

마지막으로 디램(6)의 리프레쉬 동작을 위해서는 4클럭이 필요하다.Finally, four clocks are required for the refresh operation of the DRAM 6.

제4도는 본 발명에서 언급되는 디램의 패스트 페이지 모드에 관한 타이밍도로, 이 패스트 페이지 모드는 동일한 로우 어드레스 상에서 컬럼 어드레스만 연속적으로 변하므로써, 로우 어드레스와 컬럼 어드레스가 차례로 바뀌면서 디램을 억세스할 때보다 억세스 속도가 빠른 방식이다.4 is a timing diagram related to the fast page mode of a DRAM referred to in the present invention, in which the fast page mode changes only the column address on the same row address in succession, thereby accessing the DRAM while the row address and the column address are sequentially changed. It's a fast way.

제4도의(a)는 클럭(SCK2)을 나타내고, 제4도의(b)는 패스트 페이지 모드를 동작시키는 인에이블 신호이고, 제4도의(c)는 라스 신호(RAS)를, 제4도의(d)는 카스 신호(CAS)를 나타낸다.(A) of FIG. 4 shows the clock SCK2, (b) of FIG. 4 is an enable signal for operating the fast page mode, and (c) of FIG. 4 shows the ras signal RAS and FIG. d) represents a cas signal CAS.

타이밍도에서 보는 바와 같이 라스신호(제4도의(c))가 한번 인에이블된 상태를 유지하고 있을 때, 카스신호(제4도의(d))는 여러번 바뀌는 것을 알 수 있다.As shown in the timing diagram, it can be seen that the cas signal (d) of FIG. 4 changes several times when the las signal (c) of FIG. 4 remains enabled.

따라서, 본 발명에서는 최적의 버퍼 용량을 유지하면서, 동시에 발생되는 디램 억세스 요구를 최대한 고속으로 제공하기 위해, 디램(6)에 데이터를 저장하는 방식을 상기 패스트 페이지 모드와 같은 방식을 이용하여 어드레스를 제어해 저장하고, 역시 이를 읽어낼 때에도 패스트 페이지 모드로 읽어내도록 한다.Therefore, in the present invention, in order to provide the DRAM access request generated at the same time as fast as possible while maintaining the optimal buffer capacity, the method of storing data in the DRAM 6 is performed using the same method as the fast page mode. Control it to save, and read it in fast page mode when you read it.

참고로 본 발명에서 제시하는 상기 타임 분할은 본 발명이 적용되는 메모리에서 가장 최적으로 사용되는 분할 수치인 바, 이 클럭 분할 수치는 하드웨어의 변경에 따라 얼마든지 변경가능함은 물론이다.For reference, the time division described in the present invention is a division value most optimally used in a memory to which the present invention is applied, and this clock division value can be changed as much as hardware changes.

이상에서 상세히 설명한 바와 같이 본 발명은 FMM에서 제어하는 디램의 억세스 시간을 분할하여 최적의 상태에서 각각의 모듈들이 디램을 억세스할 수 있도록 하므로써, 억세스 속도를 향상시키는 잇점과 아울러, 서브모듈에 사용되는 버퍼의 용량을 줄이는 잇점이 있다.As described in detail above, the present invention divides the access time of the DRAM controlled by the FMM so that each module can access the DRAM in an optimal state, thereby improving the access speed, and used in the submodule. The advantage is to reduce the capacity of the buffer.

아울러 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이며, 당업자라면 본 발명의 사상과 범위안에서 다양한 수정, 변경, 부가등이 가능할 것이며, 이러한 수정 변경 등은 이하의 특허 청구의 범위에 속하는 것으로 보아야 할 것이다.In addition, a preferred embodiment of the present invention is disclosed for the purpose of illustration, those skilled in the art will be able to make various modifications, changes, additions, etc. within the spirit and scope of the present invention, such modifications and modifications belong to the following claims You will have to look.

Claims (7)

프레임 메모리 모듈(FMM)을 통해 메모리 억세스를 제어하는 비디오 인코더에서의 메모리 제어 방법에 있어서, 상기 프레임 메모리 모듈 내의 각 서브 모듈들이 공유하는 단일 메모리의 억세스 타임(클럭수)를 각 서브 모듈별로 분할하여 각각 할당하고; 상기 할당된 시간을 데이터의 입/출력 상태 및 변화 상태에 따라 각 서브 모듈이 메모리를 독점적으로 억세스할 수 있도록 타이밍 스케쥴을 작성하고; 상기 작성된 타이밍 스케쥴을 내장한 FMM의 제어에 따라 상기 할당된 시간에만 메모리를 억세스할 수 있도록 하는 것을 특징으로 하는 비디오 인코더에서의 메모리 제어 방법.A memory control method of a video encoder for controlling memory access through a frame memory module (FMM), wherein the access time (number of clocks) of a single memory shared by each submodule in the frame memory module is divided for each submodule. Assign each; Create a timing schedule for each sub-module to access memory exclusively according to the input / output state and change state of the data in the allocated time; And allowing the memory to be accessed only at the allotted time under the control of the FMM incorporating the created timing schedule. 제1항에 있어서, 상기 각 서브모듈들은 할당 시간에 억세스된 메모리에서 데이터를 리드 또는 라이트시, 패스트 페이지 모드 방식으로 데이터를 리드/라이트 하는 것을 특징으로 하는 비디오 인코더에서의 메모리 제어 방법.The method of claim 1, wherein each of the submodules reads or writes data in a fast page mode when reading or writing data in a memory accessed at an allotted time. 제1항에 있어서, 상기 프레임 메모리 모듈 내의 서브 모듈 중 영상 입력 서브모듈에 할당하는 클럭수는 입력되는 데이터를 상기 메모리에 저장하도록 92 클럭을 할당하고; 처리될 블럭의 휘도 데이타 출력을 위해서 40 클럭을 할당하고; 처리될 블록의 색 데이터 출력을 위해서 60 클럭을 할당하여; 전체 192 클럭을 할당하는 것을 특징으로 하는 비디오 인코더에서의 메모리 제어 방법.2. The apparatus of claim 1, wherein the number of clocks allocated to an image input submodule among the submodules in the frame memory module is configured to allocate 92 clocks to store input data in the memory; Allocate 40 clocks for outputting luminance data of blocks to be processed; Allocating 60 clocks for outputting the color data of the block to be processed; A method for controlling memory in a video encoder, characterized by allocating a total of 192 clocks. 제1항에 있어서, 상기 프레임 메모리 모듈 내의 서브 모듈 중 코더 서브모듈에 할당하는 클럭수는 입력되는 휘도 신호를 상기 메모리에 저장하도록 34 클럭을 할당하고; 부호화된 색 신호를 메모리에 저장하도록 20 클럭을 할당하여; 전체 54 클럭을 할당하는 것을 특징으로 하는 비디오 인코더에서의 메모리 제어 방법.2. The method of claim 1, wherein the number of clocks allocated to coder submodules among the submodules in the frame memory module is configured to allocate 34 clocks to store an input luminance signal in the memory; Allocating 20 clocks to store the encoded color signal in a memory; A method of controlling memory in a video encoder characterized by allocating 54 clocks in total. 제1항에 있어서, 상기 프레임 메모리 모듈 내의 서브 모듈 중 움직임 추정 서브모듈에 할당하는 클럭수는 6개의 휘도 신호 매크로 블록에 대해 204 클럭을 할당하고; 부호화된 색 신호의 출력을 위해서 50 클럭을 할당하여; 전체 254 클럭을 할당하는 것을 특징으로 하는 비디오 인코더에서의 메모리 제어 방법.The number of clocks allocated to the motion estimation submodules among the submodules in the frame memory module is configured to allocate 204 clocks for six luminance signal macroblocks; Allocating 50 clocks for output of the encoded color signal; A method of controlling memory in a video encoder characterized by allocating a total of 254 clocks. 제1항에 있어서, 상기 프레임 메모리 모듈 내의 서브 모듈 중 가변길이 부호화 서브모듈에 할당하는 클럭수는 항등률의 데이터 출력을 위해서 10 클럭을 할당하고; 데이터를 입력받기 위해 146 클럭을 할당하여; 전체 156 클럭을 할당하는 것을 특징으로 하는 비디오 인코더에서의 메모리 제어 방법.2. The method of claim 1, wherein the number of clocks allocated to the variable-length encoding submodules among the submodules in the frame memory module allocates 10 clocks for outputting data of equality; Allocating 146 clocks to receive data; A method of controlling memory in a video encoder characterized by allocating a total of 156 clocks. 제1항에 있어서, 상기 타이밍 스케쥴은 하기 표의 타이밍 스케쥴과 같음을 특징으로 하는 비디오 인코더에서의 메모리 제어 방법.The method of claim 1, wherein the timing schedule is the same as the timing schedule of the following table. [표 1a]TABLE 1a
Figure kpo00004
Figure kpo00004
[표 1b]TABLE 1b
Figure kpo00005
Figure kpo00005
KR1019970000471A 1997-01-10 1997-01-10 Memory controlling method in video encoder KR100228554B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970000471A KR100228554B1 (en) 1997-01-10 1997-01-10 Memory controlling method in video encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970000471A KR100228554B1 (en) 1997-01-10 1997-01-10 Memory controlling method in video encoder

Publications (2)

Publication Number Publication Date
KR19980065457A KR19980065457A (en) 1998-10-15
KR100228554B1 true KR100228554B1 (en) 1999-11-01

Family

ID=19494390

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970000471A KR100228554B1 (en) 1997-01-10 1997-01-10 Memory controlling method in video encoder

Country Status (1)

Country Link
KR (1) KR100228554B1 (en)

Also Published As

Publication number Publication date
KR19980065457A (en) 1998-10-15

Similar Documents

Publication Publication Date Title
US5920352A (en) Image memory storage system and method for a block oriented image processing system
US5828423A (en) Motion vector detection circuit provided with the picture data memory
KR100401087B1 (en) Decoder for decoding different types of code signals
US5850483A (en) Image decompressing apparatus with efficient image data transfer
JPH08123953A (en) Picture processor
CN102055973A (en) Memory address mapping method and memory address mapping circuit thereof
US5754234A (en) Moving picture decoding system
Li et al. Architecture and bus-arbitration schemes for MPEG-2 video decoder
KR100282389B1 (en) How H.Dive controls memory of video decoder
KR100472564B1 (en) Image processor
KR100228554B1 (en) Memory controlling method in video encoder
US7199733B2 (en) Variable length decoding apparatus and method for the image format of a digital video camera
KR100248085B1 (en) Sdram having memory map structure
KR100237869B1 (en) Frame memory module of video encoder
JP2002152756A (en) Moving picture coder
JPH11167518A (en) Using method for memory of moving picture decoding device
JP3702508B2 (en) Memory device for digital image signals.
KR100288141B1 (en) Memory connection device of MPEG video encoder
KR100281567B1 (en) Scheduling Method of Video Encoder
JP2008262707A (en) Memory device and method
JP2005182499A (en) Parallel arithmetic unit
KR100223050B1 (en) Variable length encoder of header information for mpeg-2 image compression
KR970006315Y1 (en) Image memory input-output system
JPH11317962A (en) Data storage method and data transfer circuit
KR100212156B1 (en) Video ram for image processing system

Legal Events

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

Payment date: 20120807

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20130805

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee