KR100821922B1 - Local memory controller for mpeg decoder - Google Patents

Local memory controller for mpeg decoder Download PDF

Info

Publication number
KR100821922B1
KR100821922B1 KR1020060118067A KR20060118067A KR100821922B1 KR 100821922 B1 KR100821922 B1 KR 100821922B1 KR 1020060118067 A KR1020060118067 A KR 1020060118067A KR 20060118067 A KR20060118067 A KR 20060118067A KR 100821922 B1 KR100821922 B1 KR 100821922B1
Authority
KR
South Korea
Prior art keywords
macroblock
information
memory
current
local memory
Prior art date
Application number
KR1020060118067A
Other languages
Korean (ko)
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 KR1020060118067A priority Critical patent/KR100821922B1/en
Application granted granted Critical
Publication of KR100821922B1 publication Critical patent/KR100821922B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

An apparatus for managing a local memory for media decoding is provided to prevent performance deterioration of a memory bus and a process and to prevent excessive access to a system bus by minimizing control of the processor and a use rate of the memory bus by controlling a data flow of a hardwired-logic, and supply a memory path for the data flow. A frame information managing unit(310) manages reference frame and current frame information and performs data exchange with a motion compensation function(240). A macro block line information managing unit(320) manages information about a reference macro block line and a current macro block line, and performs data exchange with an intra prediction function(230). A FIFO(First-In First-Out) managing unit(330) performs data exchange with an IQ/IDCT(Inverse Quantization/Inverse Discrete Cosine Transform) function(220,225).

Description

미디어 디코딩용 국부 메모리 관리 장치{LOCAL MEMORY CONTROLLER FOR MPEG DECODER} Local memory management unit for media decoding {LOCAL MEMORY CONTROLLER FOR MPEG DECODER}

도 1은 종래의 멀티미디어 전용 가속기를 채택하는 프로세서의 예시적인 구성을 나타내는 도면.1 illustrates an exemplary configuration of a processor employing a conventional multimedia dedicated accelerator.

도 2는 도 1의 하드와이어드-로직 형태의 멀티미디어 가속기 블록의 예시적인 블록도.2 is an exemplary block diagram of the hardwired-logic type multimedia accelerator block of FIG.

도 3은 종래의 H.264/MPEG-4 디코더의 예시적인 블록도와 이에 대한 데이터 흐름을 예시적으로 나타내는 도면.3 is an exemplary block diagram of a conventional H.264 / MPEG-4 decoder and a data flow thereof.

도 4는 종래 기술에 따른 미디어 디코딩에 있어서 인트라 예측의 개념을 예시적으로 나타내는 도면.4 is a diagram illustrating the concept of intra prediction in media decoding according to the prior art.

도 5는 종래 기술에 따른 미디어 디코딩에 있어서 매크로블록에서의 데이터 접근을 예시적으로 나타내는 도면.5 is a diagram illustrating data access in a macroblock in the media decoding according to the prior art.

도 6은 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치를 적용한 하드와이어드-로직 형태의 멀티미디어 가속기 블록의 예시적인 블록도.6 is an exemplary block diagram of a hardwired-logic type multimedia accelerator block applying a local memory management apparatus for media decoding according to the present invention.

도 7은 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서 회전 방식의 매크로블록 메모리 제어 구성을 예시적으로 나타내는 도면.7 is a diagram illustrating a configuration of a macroblock memory control of a rotation type in a local memory management apparatus for media decoding according to the present invention.

도 8은 도 7의 회전 방식의 매크로블록 메모리 제어 구성에 따른 데이터 흐름 을 예시적으로 나타내는 도면.FIG. 8 is a diagram illustrating a data flow according to the macroblock memory control configuration of the rotation method of FIG. 7.

도 9는 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서 프레임 저장을 위한 메모리 구조의 예시적인 형태를 나타내는 도면.9 illustrates an exemplary form of a memory structure for frame storage in a local memory management apparatus for media decoding according to the present invention.

도 10은 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서 프레임 정보 관리부의 예시적인 구성을 나타내는 도면.Fig. 10 is a diagram showing an exemplary configuration of a frame information management unit in the local memory management apparatus for media decoding according to the present invention.

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

110: 프로세서 코어 120: 멀티미디어 가속기110: processor core 120: multimedia accelerator

130: 포스트 프로세서 140: 메모리 제어부130: post processor 140: memory control unit

210: VLD & Demux 220: IQ210: VLD & Demux 220: IQ

225: IDCT 230: Intra Prediction225: IDCT 230: Intra Prediction

240: MC 250: 국부 메모리240: MC 250: local memory

300: 미디어 디코딩용 국부 메모리 관리 장치 300: local memory management device for media decoding

310: 프레임 정보 관리부 320: 매크로블록 라인 정보 관리부310: frame information management unit 320: macroblock line information management unit

330: FIFO 관리부 410: DMA 호스트330: FIFO management unit 410: DMA host

420: 제1 다중화부 430: 제2 다중화부420: First multiplexer 430: Second multiplexer

440: 참조 MB 저장부 450: 현재 MB 저장부440: Reference MB storage unit 450: Current MB storage unit

460: 선택부 470: MB 갱신부460: selection unit 470: MB update unit

본 발명은 미디어 디코딩용 국부 메모리 관리 장치에 관한 것으로, 더욱 구체적으로는 종래의 하드와이어드-로직을 내장한 프로세서의 멀티미디어 디코딩과정에서 내장된 매크로 기능들의 구동 과정에 대한 프로세서의 제어로 인하여 발생하는 메모리 버스 및 프로세서의 성능 저하와 반복적인 데이터의 로딩/저장 과정에 따른 과도한 시스템 버스의 접근을 방지하기 위하여 메모리 버스의 사용율 및 프로세서의 제어를 최소화할 수 있도록 하드와이어드-로직의 데이터 흐름을 제어하고 데이터 흐름을 위한 메모리 경로를 제공하는 미디어 디코딩용 국부 메모리 관리 장치에 관한 것이다.The present invention relates to a local memory management apparatus for media decoding, and more particularly, to a memory generated by a processor controlling a driving process of macro functions embedded in a multimedia decoding process of a processor having a conventional hard-wired logic. To control the performance of hard-wired-logic data and minimize the control of the memory bus and control of the processor to prevent excessive system bus access due to bus and processor performance degradation and repetitive loading and storage of data. A local memory management apparatus for media decoding that provides a memory path for flow.

미디어, 예컨대 동영상의 압축과 복원을 위한 MPEG 규격은 시간에 따라 연속적으로 변화하는 동영상의 전송과 저장이 용이한 압축 기술이다. 이러한 MPEG은 MPEG-1/2/4 및 H.264 표준으로 구현되어 있다.The MPEG standard for compressing and decompressing media, such as moving images, is a compression technique that facilitates transmission and storage of moving images continuously changing over time. Such MPEG is implemented in the MPEG-1 / 2/4 and H.264 standards.

이러한 MPEG 규격으로 인코딩된 동영상의 디코딩은 MPEG 디코더를 통하여 수행된다.The decoding of the video encoded in the MPEG standard is performed through the MPEG decoder.

종래의 MPEG 디코더는 멀티미디어 전용 프로세서 또는 DSP로 구성되는 MPEG 디코더 형태와, 호스트 프로세서 구동 방식의 하드와이어드-로직(Hardwired-Logic) 멀티미디어 전용 가속기를 채택하는 형태와, 호스트 프로세서와 원칩화된 멀티미디어 전용 MPEG RISC 프로세서 형태 등으로 구성된다.The conventional MPEG decoder adopts a form of an MPEG decoder composed of a multimedia dedicated processor or DSP, adopts a hardwired-logic multimedia accelerator driven by a host processor, and an MPEG RISC dedicated to a host processor and a one-chip multimedia. Processor type and the like.

멀티미디어 전용 프로세서 형태는 고화질 또는 대화면이 필요한 셋탑박스, 고성능 MPEG 재생 장치 등에 주로 사용된다. 또한 이러한 멀티미디어 전용 프로세서 형태는 전력 사용량에 구애받지 않는 경우에 적합하다 Multimedia-only processor type is mainly used in high-definition or large screen set-top box, high-performance MPEG playback device. In addition, this type of multimedia processor is suitable for power consumption.

또한 예컨대 네트워크를 통하여 계속적인 소프트웨어의 업그레이드를 수행하는 경우 다양한 최신 코덱(Codec) 기능 제공이 가능하나, 이동이 필요한 휴대용 장치에 적용하는 것이 어렵다는 단점이 있다.In addition, for example, when continuously upgrading the software through a network, various latest codec functions can be provided, but it is difficult to apply to a portable device that needs to be moved.

또한 호스트 프로세서와 원칩화된 멀티미디어 전용 MPEG RISC 프로세서 형태의 경우 예컨대 DiVX 재생 장치 등에서 많이 사용되고 있다. 이 경우 내장된 MPEG 가속기 기능을 처리하는 전용 프로세서는 스트림 파싱(Parsing)과 MPEG 가속기의 관리만을 담당한다. In addition, in the case of a host processor and a one-chip multimedia-only MPEG RISC processor, for example, it is widely used in a DiVX playback device. In this case, a dedicated processor that handles the built-in MPEG accelerator functions is only responsible for parsing streams and managing the MPEG accelerator.

그러나 호스트 프로세서와 원칩화된 멀티미디어 전용 MPEG RISC 프로세서 형태의 경우에는 메인 프로세서와는 별도로 메모리 장치가 필요하며 2개의 프로세서의 사용에 따른 전력 소모의 단점이 있다.However, in the case of the host processor and the one-chip-only MPEG RISC processor type, a memory device is required separately from the main processor, and there is a disadvantage of power consumption due to the use of two processors.

따라서 특히 이동 환경에서의 사용을 가정한 MPEG 디코더는 호스트 프로세서 구동 방식의 하드와이어드-로직 멀티미디어 전용 가속기를 채택하는 형태로 구성되는 것이 바람직하다.Therefore, the MPEG decoder, which is assumed to be used especially in a mobile environment, is preferably configured to adopt a hardwired-logic multimedia dedicated accelerator driven by a host processor.

도 1은 종래의 멀티미디어 전용 가속기를 채택하는 프로세서의 예시적인 구성을 나타내는 도면이다.1 is a diagram showing an exemplary configuration of a processor employing a conventional multimedia dedicated accelerator.

도시되듯이 종래의 멀티미디어 전용 가속기를 채택하는 프로세서는 프로세서 코어(110)와, 멀티미디어 가속기(120)와, 포스트 프로세서(Post Processor, 130)와, 메모리 제어부(140)를 포함하며, 직접 메모리 접속[Direct Memory Access, DMA] 기능을 사용하여 시스템 버스를 통하여 데이터의 전송을 수행한다.As shown, a processor employing a conventional multimedia dedicated accelerator includes a processor core 110, a multimedia accelerator 120, a post processor 130, a memory controller 140, and a direct memory connection [ Direct Memory Access, DMA] function is used to transfer data through the system bus.

즉 전용 멀티미디어 가속기를 사용하는 MPEG 디코더 형태로서 기존 프로세서 코어(110)의 메모리 구조에 MPEG 가속 기능을 위한 역양자화/역이산코사인 변환[Inverse Quantization/Inverse Discrete Cosine Transform, IQ/IDCT]과, 가변 길이 코딩 디코더[Variable Length Coding Decoder, VLD]와, 움직임 보상[Motion Compensation, MC]과, 인트라 예측[Intra Prediction]과, 디블록 필터[Deblock Filter, DF] 등의 기능 블록을 구비하는 멀티미디어 가속기(120)와, 포스트 프로세서(130)를 하드와이어드 로직 형태로 추가하고, 멀티미디어 가속기(120)의 각 기능 블록에 필요한 국부(Local) 메모리와 시스템 버스 사이에서 직접 메모리 접속[Direct Memory Access, DMA] 기능을 사용하여 데이터의 전송을 수행하는 형태이다.In other words, in the form of an MPEG decoder using a dedicated multimedia accelerator, an Inverse Quantization / Inverse Discrete Cosine Transform (IQ / IDCT) and a variable length are used for an MPEG acceleration function in a memory structure of an existing processor core 110. Multimedia accelerator 120 having functional blocks such as a coding decoder [Variable Length Coding Decoder (VLD)], a motion compensation [MC], an intra prediction, and a deblock filter (DF). And the post processor 130 in the form of hardwired logic, and provide a direct memory access (Direct Memory Access, DMA) function between the local memory and the system bus for each functional block of the multimedia accelerator 120. It is a form to perform the transfer of data using.

메모리 제어부(140)는 SRAM, ROM, SDRAM 등의 메인 메모리를 제어한다.The memory controller 140 controls main memories such as SRAM, ROM, and SDRAM.

이 경우 일부 하드와이어드-로직 형태의 멀티미디어 가속기 블록을 내장한 MPEG 디코더의 경우 메인 메모리 버스와 분리된 국부 메모리 버스를 사용하여 시스템 버스의 점유율을 낮추는 구성도 존재하나, 내부의 국부 메모리 사이의 연결을 위한 국부 메모리 버스와 프로세서 코어의 계속적인 모니터링이 필요하게 되고, 따라서 국부 메모리의 크기 제한과 이에 따른 주기적인 메모리 접근 때문에, 분리된 MPEG 디코더를 사용하는 경우와 비교하여, 메인 프로세서의 메모리 대역의 사용률을 저하시키는 단점이 있다.In this case, an MPEG decoder in which some hardwired-logic multimedia accelerator blocks are embedded may use a local memory bus separate from the main memory bus to reduce the occupancy of the system bus. This requires continuous monitoring of the local memory bus and the processor cores, so that due to local memory size limitations and consequently periodic memory accesses, the utilization of the memory bandwidth of the main processor as compared to the case of using a separate MPEG decoder There is a disadvantage of lowering.

즉 하드와이어드-로직을 구비하는 프로세서, 예컨대 모바일 멀티미디어 프로세서들은 내부에 국부 메모리를 포함한다. 그러나 이러한 국부 메모리들은 각기 다른 기능 블록들의 고정적인 작업에 사용하도록 설계되어 있으며, 따라서 통합적인 메모리 제어를 수행하지 못한다.That is, processors with hard-wired logic, such as mobile multimedia processors, contain local memory therein. However, these local memories are designed to be used for the fixed task of different functional blocks, and thus do not perform integrated memory control.

따라서 인트라 예측, 움직임 보상, IDCT 기능 블록을 통해 출력된 결과를 프로세서 코어에서 인터럽트 방식이나 DMA 호스트 기능을 이용하여 SDRAM 등의 메모리에 저장한 후 다른 기능 블록에 사용할 때마다 재전송을 수행한다.Therefore, the results output through the intra prediction, motion compensation, and IDCT function blocks are stored in the memory such as SDRAM using the interrupt method or the DMA host function in the processor core, and then retransmitted whenever used in other function blocks.

예컨대 프로세서에 의한 데이터 전달 또는 복사가 발생하는 과정은 스트림 데이터의 입력, 예측 및 보상 데이터 또는 매크로블록 데이터의 입력, 국부 메모리의 제어, 메모리 제어부의 제어 과정 등에서 메모리 버스와 프로세서 코어의 점유가 발생한다.For example, in the process of data transfer or copying by the processor, the memory bus and the processor core are occupied by input of stream data, input of prediction and compensation data or macroblock data, control of local memory, and control of the memory controller. .

또한 움직임 보상 블록은 이전 프레임과 현재 프레임 메모리에 연속적인 판독/기록 동작이 발생하여 메모리 접근을 증가시킨다.Motion compensation blocks also increase memory access by successive read / write operations to the previous frame and current frame memory.

이 경우 전체 프레임을 SRAM 형태의 내부 메모리에 저장하면 SDRAM 메모리로의 접근이 감소하지만 메모리의 크기가 커지며 전력 소모 역시 증가한다.In this case, storing the entire frame in SRAM-type internal memory reduces access to the SDRAM memory, but increases the memory size and power consumption.

현실적인 방안으로 프레임의 일부를 저장할 수 있는 국부 메모리를 사용하여 일정 부분 이러한 단점을 보상할 수 있지만, 화면 상의 영상 움직임이 빠른 경우에는 많은 메모리 영역을 SDRAM으로부터 다시 읽어야 한다는 문제점이 있다.In a realistic way, this problem can be compensated for by using a local memory that can store a part of a frame. However, when the image movement on the screen is fast, many memory areas need to be read back from the SDRAM.

이러한 문제점에 대해서 좀 더 상세히 설명하면 다음과 같다.This problem is described in more detail as follows.

도 2는 도 1의 하드와이어드-로직 형태의 멀티미디어 가속기 블록의 예시적인 블록도이다.FIG. 2 is an exemplary block diagram of the hardwired-logic type multimedia accelerator block of FIG. 1.

도시되듯이 입력되는 스트림 데이터(Stream Data)는 가변 길이 코딩 디코더 및 역다중화(VLD & Demux) 기능 블록(210)에서 파싱된다.As shown, incoming stream data is parsed in a variable length coding decoder and demultiplexing (VLD & Demux) functional block 210.

이 경우 매크로블록 데이터(MB Data)는 IQ/IDCT 기능 블록(220, 225)으로 전 달되고 예측 및 보상 데이터(Prediction & Compensation Data)는 인트라 예측(Intra Prediction) 블록(230)과 움직임 보상(MC) 기능 블록(240)에서 각각 사용된다.In this case, the macroblock data (MB Data) is transmitted to the IQ / IDCT function blocks 220 and 225, and the prediction and compensation data are the intra prediction blocks 230 and the motion compensation (MC). ) Are each used in function block 240.

IQ/IDCT 기능 블록(220, 225)의 연산 결과는 제1 국부 메모리(250a)에 저장되고, 일정 연산량마다 메모리 제어부(140)를 통하여 SDRAM 등의 메인 메모리에 저장된다.The operation results of the IQ / IDCT functional blocks 220 and 225 are stored in the first local memory 250a, and are stored in the main memory such as the SDRAM through the memory control unit 140 for each predetermined amount of calculation.

인트라 예측 기능 블록(230)의 경우 이전 프레임(Previous Frame)의 매크로블록 데이터와 현재 프레임(Current Frame)의 매크로블록 데이터와의 연산 결과를 제2 국부 메모리(250b)에 저장한 후 연산 결과를 메모리 제어부(140)를 통하여 SDRAM 등의 메인 메모리에 저장된다.In the intra prediction function block 230, the operation result of the macroblock data of the previous frame and the macroblock data of the current frame is stored in the second local memory 250b, and the operation result is stored in the memory. It is stored in the main memory such as SDRAM through the control unit 140.

움직임 보상 기능 블록(240)도 비슷한 과정을 거쳐서 현재 프레임을 생성하고 이를 제3 국부 메모리(250c)에 저장하며 이후 메모리 제어부(140)를 통하여 SDRAM 등의 메인 메모리에 저장된다.The motion compensation function block 240 generates a current frame through a similar process, stores the current frame in the third local memory 250c, and then stores the current frame in the main memory such as the SDRAM through the memory controller 140.

도 3은 종래의 H.264/MPEG-4 등의 미디어 디코더의 예시적인 블록도와 이에 대한 데이터 흐름을 예시적으로 나타내는 도면이다.3 is a diagram illustrating an exemplary block diagram of a conventional media decoder such as H.264 / MPEG-4 and a data flow thereof.

우선 압축된 비트스트림(Bit Stream)이 엔트로피 디코딩(Entropy decode)되어 각 매크로블록의 계수, 움직임 벡터, 헤더가 추출된다.First, the compressed bit stream is entropy decoded to extract coefficients, motion vectors, and headers of each macroblock.

이후 런-레벨(Run-level) 코딩과 재배치 과정(Reorder)이 수행되어 양자화되고, 변환된 매크로 블록(X)이 생성된다.Thereafter, run-level coding and reordering are performed to quantize and generate a transformed macroblock X.

이후 변환된 매크로 블록(X)은 역양자화(Q-1)되고 역변환(T-1)되어서 디코딩된 오차 매크로블록(D'n)이 생성된다.The transformed macroblock X is then inversely quantized (Q −1 ) and inversely transformed (T −1 ) to produce a decoded error macroblock D ′ n .

이후 디코더가 가지고 있는 이전 프레임(F'n-1) 내에서 16x16 영역의 위치를 찾기 위해 디코딩된 움직임 벡터가 사용된다. 이 영역은 움직임 보상된 예측 영역(P)이 된다.The decoded motion vector is then used to locate the 16x16 region within the previous frame F ' n-1 that the decoder has. This region becomes a motion compensated prediction region P.

이후 움직임 보상된 예측 영역(P)에 디코딩된 오차 매크로블록(D'n)이 더해져서 복원된 매크로블록(uF'n)이 생성된다.Then, the decoded error macroblock D ' n is added to the motion compensated prediction region P to generate a reconstructed macroblock uF' n .

복원된 매크로블록(uF'n)은 필터(Filter)를 거쳐서 디코딩되는 프레임(F'n)을 생성하기 위해 저장된다. The reconstructed macroblock uF ' n is stored to generate a frame F'n which is decoded via a filter.

또한 복원된 매크로블록(uF'n)은 인트라 예측(Intra Prediction)에서 사용될 수 있다.Also, the reconstructed macroblock uF ' n may be used in intra prediction.

예컨대 이러한 매크로블록의 계수, 움직임 벡터, 헤더 추출, 변환된 매크로 블록(X) 생성, 디코딩된 오차 매크로블록(D'n)의 생성 등에 있어서 입력된 비트스트림을 순차적으로 가공하는 것에 의해서 다음 과정의 블록에서 사용할 데이터가 출력되나, 움직임 벡터를 사용하는 움직임 보상 과정과, AC 및 DC 계수를 사용하는 과정, 디블록 필터링 과정에서는 메모리에 저장된 참조 프레임(Reference Frame) 즉 프레임 F'n-1(reference)과 현재 프레임과 변환 파라미터를 필요로 하게 되며, 이 경우 메인 프로세서가 개입하여 데이터의 전송, 레지스터의 설정에 관여한다.For example, by sequentially processing the input bitstream in the coefficient of the macroblock, the motion vector, the header extraction, the generation of the transformed macroblock (X), and the generation of the decoded error macroblock (D' n ). The data to be used in the block is output, but in the motion compensation process using the motion vector, the AC and DC coefficients, and the deblocking filtering process, the reference frame stored in memory, that is, the frame F ' n-1 (reference) ) And the current frame and conversion parameters. In this case, the main processor intervenes to transfer data and set registers.

따라서 프로세서 코어의 성능 및 시스템 버스의 효율성을 감소시킨다.This reduces the performance of the processor cores and the efficiency of the system bus.

예컨대 디코딩 과정에 있어서, I-픽쳐(I-Picture)는 현재 입력되는 DCT 변환된 인트라 예측과 IQ/IDCT를 통하여 현재 프레임을 생성하며, 인트라 예측 과정에서 주변에 위치한 매크로블록에 대한 접근이 발생한다.For example, in the decoding process, the I-picture generates the current frame through the DCT-converted intra prediction and IQ / IDCT that are currently input, and access to the macroblocks located in the intra prediction process occurs. .

P-픽쳐(P-Picture)는 현재 프레임을 디코딩 하는 경우 이전 프레임과의 연계성이 많으므로, 이전 프레임을 가장 많이 참고하게 되며, 이때 SDRAM 등의 메인 메모리에 대해서 과도한 메모리 접근이 발생한다. Since the P-picture has much linkage with the previous frame when decoding the current frame, the P-picture refers to the previous frame most, and excessive memory access occurs to the main memory such as the SDRAM.

멀티미디어 가속기능을 내장한 대부분의 프로세서들이 국부 메모리를 사용하고 있으나, 인트라 예측과 움직임 보상 과정에서 이전 프레임 영상에 대한 매크로블록 단위의 데이터 전송이 발생하여 시스템 버스의 성능을 저하시키게 된다.Most processors with built-in multimedia acceleration use local memory. However, intra-block and macro-block data transfer for previous frame images occurs during intra prediction and motion compensation, which degrades the performance of the system bus.

인트라 예측과 관련하여 좀 더 상세히 설명하면 다음과 같다.A more detailed description of the intra prediction is as follows.

도 4는 종래 기술에 따른 미디어 디코딩에 있어서 인트라 예측의 개념을 예시적으로 나타내는 도면이다.4 is a diagram exemplarily illustrating a concept of intra prediction in media decoding according to the prior art.

인트라 예측은 현재의 매크로블록 또는 서브블록(Subblock)의 DC/AC계수 값을 결정하는 데 있어서 동일한 프레임에서 이전에 구성이 완료된 매크로블록을 이용하는 것이다.Intra prediction is to use a previously configured macroblock in the same frame in determining the DC / AC coefficient value of the current macroblock or subblock.

도 4에 도시되듯이 매크로블록(X)은 매크로블록(A, B, C)로부터 예측되며, 이 경우 각 매크로블록 라인(MB Line n, MB Line n+1)의 계수값을 도 1 또는 도 2에 도시한 메모리 제어부(140)를 통하여 랜덤하게 읽어 와야 하며 따라서 메모리 버스의 접근이 발생한다.As shown in FIG. 4, the macroblock X is predicted from the macroblocks A, B, and C. In this case, the coefficient values of each of the macroblock lines MB Line n and MB Line n + 1 are shown in FIG. 1 or FIG. It should be read randomly through the memory control unit 140 shown in Fig. 2, and thus access of the memory bus occurs.

도 5는 종래 기술에 따른 미디어 디코딩에 있어서 매크로블록에서의 데이터 접근을 예시적으로 나타내는 도면이다.5 is a diagram illustrating data access in a macroblock in the media decoding according to the prior art.

도시되듯이 매크로블록(X)을 재구성하기 위해서는 도 1 또는 도 2에 도시한 메모리 제어부(140)를 통하여 SDRAM 등의 메모리에 대한 3번의 판독 동작, 즉 매크로블록(A)과 매크로블록(B)과, 매크로블록(C)에 대한 판독 동작이 발생한다.As shown, in order to reconstruct the macro block X, three read operations to the memory such as the SDRAM through the memory control unit 140 shown in FIG. 1 or 2, that is, the macro block A and the macro block B are performed. And a read operation to the macroblock C occurs.

또한 매크로블록(B)과 매크로블록(C)의 판독을 버스트 모드(Burst Mode)로 구성하여 데이터 버스의 사용 효율을 개선할 수 있으나 매크로블록(A)로의 접근은 추가적인 메모리 제어부(140)를 통한 SDRAM 등의 메인 메모리에 대한 접근이 필요하다.In addition, the macroblock (B) and the reading of the macroblock (C) can be configured in the burst mode (Burst Mode) to improve the efficiency of using the data bus, but access to the macroblock (A) through the additional memory control unit 140 Access to main memory such as SDRAM is required.

본 발명의 목적은 종래의 하드와이어드-로직을 내장한 프로세서의 멀티미디어 디코딩과정에서 내장된 매크로 기능들의 구동 과정에 대한 프로세서의 제어로 인하여 발생하는 메모리 버스 및 프로세서의 성능 저하와 반복적인 데이터의 로딩/저장 과정에 따른 과도한 시스템 버스의 접근을 방지하기 위하여 메모리 버스의 사용율 및 프로세서의 제어를 최소화할 수 있도록 하드와이어드-로직의 데이터 흐름을 제어하고 데이터 흐름을 위한 메모리 경로를 제공하는 미디어 디코딩용 국부 메모리 관리 장치를 제공하는데 있다.Summary of the Invention An object of the present invention is to reduce the performance of a memory bus and a processor and to repeatedly load data, which is caused by the processor's control of a driving process of embedded macro functions in a multimedia decoding process of a processor having a hardwired logic. Local memory for media decoding that controls hardwired-logic data flow and provides a memory path for data flow to minimize memory bus utilization and processor control to prevent excessive system bus access due to storage It is to provide a management device.

상기 기술적 과제를 달성하기 위하여, 본 발명은 움직임 보상 기능과 인트라 예측 기능과 역양자화 및 역이산코사인 변환 기능을 구비하며 메모리 제어부를 통하여 데이터 흐름을 제어하는 미디어 디코더에서의 국부 메모리 관리 장치로서, 참조 프레임과 현재 프레임 정보를 관리하여 상기 움직임 보상 기능과 데이터 교환을 수행 하는 프레임 정보 관리부와, 참조 매크로블록 라인과 현재 매크로블록 라인의 정보를 관리하여 상기 인트라 예측 기능과의 데이터 교환을 수행하는 매크로블록 라인 정보 관리부와, 상기 역양자화 및 역이산코사인 변환 기능과의 데이터 교환을 수행하는 FIFO 관리부를 포함하는 미디어 디코딩용 국부 메모리 관리 장치를 제공한다.In order to achieve the above technical problem, the present invention provides a local memory management apparatus in a media decoder having a motion compensation function, an intra prediction function, an inverse quantization and an inverse discrete cosine transform function, and controlling a data flow through a memory controller. A frame information management unit that manages frames and current frame information to exchange data with the motion compensation function, and a macroblock that manages data of a reference macroblock line and a current macroblock line to perform data exchange with the intra prediction function. And a line information management unit and a FIFO management unit for performing data exchange with the dequantization and inverse discrete cosine transform functions.

본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 미디어 디코딩용 국부 메모리 관리 장치는 상기 메모리 제어부와의 통합적인 데이터 교환을 제어할 수 있다.In the local memory management apparatus for media decoding according to the present invention, the local memory management apparatus for media decoding may control the integrated data exchange with the memory controller.

또한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 프레임 정보 관리부는, 매크로블록 인덱스 테이블 형태의 정보를 포함하는 현재 프레임 정보 저장 공간과, 상기 매크로블록 인덱스 테이블 형태의 정보를 포함하는 다수의 참조 프레임 정보 저장 공간을 포함할 수 있다.In addition, in the local memory management apparatus for media decoding according to the present invention, the frame information management unit includes a current frame information storage space including information in the form of a macroblock index table and a plurality of information including the information in the form of the macroblock index table. It may include the reference frame information storage space of the.

또한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 다수의 참조 프레임 정보 저장 공간은 참조 회수에 따라서 상기 매크로블록 인덱스 테이블의 개수가 상기 다수의 참조 프레임 정보 저장 공간 각각에 대해서 서로 다른 것일 수 있다.In the apparatus for managing local memory for media decoding according to the present invention, the plurality of reference frame information storage spaces may be different from each other in the number of macroblock index tables according to the number of references. Can be.

또한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 매크로블록 인덱스 테이블 형태는, 전체 화면상의 X 오프셋, Y 오프셋, 프레임 오프셋, 유효 표시, 정렬 순서 정보를 포함할 수 있다.In the apparatus for managing local memory for media decoding according to the present invention, the macroblock index table form may include X offset, Y offset, frame offset, valid display, and sort order information on the entire screen.

또한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 현재 프레임 정보 저장 공간 또는 상기 참조 프레임 정보 저장 공간은, 프레임 번호, X 오프셋, Y 오프셋, 윈도우 크기 정보를 포함할 수 있다.In the apparatus for managing local memory for media decoding according to the present invention, the current frame information storage space or the reference frame information storage space may include frame number, X offset, Y offset, and window size information.

또한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 매크로블록 라인 정보 관리부는, 상기 인트라 예측 기능의 연산 결과를 기초로 매크로블록 정보를 갱신하는 매크로블록 갱신부와, 상기 현재 매크로블록에 대한 정보와 상기 참조 매크로블록에 대한 정보를 회전 방식으로 저장하는 매크로블록 저장부와, 상기 메모리 제어부로부터의 출력 또는 상기 매크로블록 갱신부의 출력을 다중화하여 상기 매크로블록 저장부로 출력하는 다중화부와, 상기 매크로블록 저장부의 상기 현재 매크로블록에 대한 정보 또는 상기 참조 매크로블록에 대한 정보 중에서 선택하여 상기 인트라 예측 기능에 전송하는 선택부를 포함할 수 있다.In the local memory management apparatus for media decoding according to the present invention, the macroblock line information management unit includes: a macroblock update unit for updating macroblock information based on a calculation result of the intra prediction function; A macroblock storage unit for storing information about the reference macroblock and information about the reference macroblock in a rotational manner, a multiplexer which multiplexes an output from the memory controller or an output of the macroblock updater to the macroblock storage unit, and The macroblock storage unit may include a selection unit for selecting from the information on the current macroblock or the information on the reference macroblock to transmit to the intra prediction function.

또한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 매크로블록 저장부는, 상기 현재 매크로블록에 대한 정보를 저장하는 현재 매크로블록 저장부와, 상기 참조 매크로블록에 대한 정보를 저장하는 참조 매크로블록 저장부를 포함할 수 있다.In the apparatus for managing local memory for media decoding according to the present invention, the macroblock storage unit includes: a current macroblock storage unit storing information on the current macroblock; and a reference macro storing information on the reference macroblock. It may include a block storage unit.

또한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 다중화부는, 상기 메모리 제어부로부터의 출력 또는 상기 매크로블록 갱신부의 출력을 다중화하여 상기 참조 매크로블록 저장부로 출력하는 제1 다중화부와, 상기 메모리 제어부로부터의 출력 또는 상기 매크로블록 갱신부의 출력을 다중화하여 상기 현재 매크로블록 저장부로 출력하는 제2 다중화부를 포함할 수 있다.In the local memory management apparatus for media decoding according to the present invention, the multiplexer may include: a first multiplexer which multiplexes an output from the memory controller or an output of the macroblock updater to the reference macroblock storage; And a second multiplexer for multiplexing an output from a memory controller or an output of the macroblock updater to the current macroblock storage.

또한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 선택부는 상기 현재 매크로블록 저장부 또는 상기 참조 매크로블록 저장부의 출력 중 에서 선택하여 상기 인트라 예측 기능으로 출력할 수 있다.In the apparatus for managing local memory for media decoding according to the present invention, the selector may select from an output of the current macroblock storage unit or the reference macroblock storage unit to output the intra prediction function.

또한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서, 상기 매크로블록 라인 정보 관리부는, 상기 메모리 제어부와 상기 다중화부 사이의 메모리 접근을 중개하는 DMA 호스트를 더 포함할 수 있다.In the apparatus for managing local memory for media decoding according to the present invention, the macroblock line information management unit may further include a DMA host for mediating memory access between the memory control unit and the multiplexer.

이하, 본 발명의 미디어 디코딩용 국부 메모리 관리 장치의 실시예를 첨부한 도면을 참조로 보다 구체적으로 설명한다. Hereinafter, an embodiment of a local memory management apparatus for media decoding according to the present invention will be described in more detail with reference to the accompanying drawings.

도 6은 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치를 적용한 하드와이어드-로직 형태의 멀티미디어 가속기 블록의 예시적인 블록도이다.6 is an exemplary block diagram of a hardwired-logic type multimedia accelerator block to which a local memory management apparatus for media decoding according to the present invention is applied.

도시되듯이 종래의 하드와이어드-로직 형태의 멀티미디어 가속기 블록에 있어서, 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치(300)가 포함된다.As shown, in the conventional hardwired-logic type of multimedia accelerator block, a local memory management apparatus 300 for media decoding according to the present invention is included.

본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치(300)는 종래의 국부 메모리들이 각기 다른 기능 블록들의 고정적인 작업에 사용하도록 설계되어 있어서 통합적인 메모리 제어를 수행하지 못하던 단점을 개선한 것이다.The local memory management apparatus 300 for media decoding according to the present invention is designed to use conventional local memories for fixed tasks of different functional blocks, thereby improving the disadvantage of failing to perform integrated memory control.

도시되듯이 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치(300)는 프레임 정보 관리부(310)와, 매크로블록 라인 정보 관리부(320)와, FIFO 관리부(330)를 포함한다.As illustrated, the local memory management apparatus 300 for media decoding according to the present invention includes a frame information management unit 310, a macroblock line information management unit 320, and a FIFO management unit 330.

프레임 정보 관리부(310)는 도시되듯이 참조 프레임과 현재 프레임 정보를 관리하여 움직임 보상 기능(MC, 240)과의 데이터 교환을 수행한다.As illustrated, the frame information manager 310 manages a reference frame and current frame information to exchange data with the motion compensation function MC 240.

매크로블록 라인 정보 관리부(320)는 도시되듯이 참조 매크로블록 라인과 현재 매크로블록 라인의 정보를 관리하여 인트라 예측 기능(Intra Prediction, 230)과 의 데이터 교환을 수행한다.As illustrated, the macroblock line information manager 320 manages information of the reference macroblock line and the current macroblock line to perform data exchange with the intra prediction function 230.

FIFO 관리부(330)는 매크로블록 정보를 관리하여 역양자화 및 역이산코사인 변환 기능(IQ/IDCT, 220, 225)과의 데이터 교환을 수행한다.The FIFO management unit 330 manages macroblock information to perform data exchange with inverse quantization and inverse discrete cosine transform functions (IQ / IDCT, 220, 225).

이러한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치(300)는 이전 프레임 등의 참조 프레임과 현재 프레임, 이전 매크로블록 라인 등의 참조 매크로블록 라인과 현재 매크로블록 라인 등에 대한 정보를 포함하고 있어서 통합적인 국부 메모리 제어가 가능하다.The local memory management apparatus 300 for media decoding according to the present invention includes information about a reference frame such as a previous frame, a reference macroblock line such as a current frame, a previous macroblock line, and a current macroblock line. Local memory control is possible.

또한 이러한 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치(300)는 메모리 제어부(140)와의 통합적인 데이터 교환을 제어할 수 있다.In addition, the local memory management apparatus 300 for media decoding according to the present invention may control the integrated data exchange with the memory controller 140.

즉 종래의 각 국부 메모리 장치에 의해서 개별적으로 수행되던 메모리 제어부(140) 접근을 통합적으로 수행함으로써 메모리 제어부(140)와의 접근을 최소화할 수 있다. That is, access to the memory controller 140 may be minimized by integrally performing access to the memory controller 140 separately performed by each of the conventional local memory devices.

이하 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치의 구체적인 구성에 대해서 설명한다.Hereinafter, a detailed configuration of a local memory management apparatus for media decoding according to the present invention will be described.

도 7은 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서 회전 방식의 매크로블록 메모리 제어 구성을 예시적으로 나타내는 도면이다.FIG. 7 is a diagram illustrating a configuration of a macroblock memory control of a rotation type in a local memory management apparatus for media decoding according to the present invention.

도 5를 참조로 하는 종래 기술에 따른 미디어 디코딩의 인트라 예측을 위한 매크로블록으로의 데이터 접근에 있어서, 매크로블록(X)을 재구성하기 위해서 도 1 또는 도 2에 도시한 메모리 제어부(140)를 통하여 SDRAM 등의 메모리에 대한 3번의 판독 동작이 발생한다. 또는 버스트 모드(Burst Mode)로 구성하여 데이터 버스의 사 용 효율을 개선할 수 있으나 매크로블록(A)로의 접근은 추가적인 메모리 제어부(140)를 통한 SDRAM 등의 메인 메모리에 대한 접근이 필요하다는 단점에 대해서 설명하였다.In the data access to the macroblock for intra prediction of the media decoding according to the prior art with reference to FIG. 5, the memory control unit 140 shown in FIG. 1 or 2 is used to reconstruct the macroblock X. Three read operations to a memory such as an SDRAM occur. Alternatively, the burst mode may be used to improve the efficiency of the data bus, but access to the macroblock A requires access to main memory such as SDRAM through the additional memory controller 140. It was described.

이러한 인트라 예측 과정에서의 메모리 제어부(140)를 통한 SDRAM 등의 메인 메모리에 대한 접근을 감소시키기 위하여, 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에서는 매크로블록 라인 정보 관리부(320)를 회전 방식의 매크로블록 메모리 제어 구성 형태로 구현할 수 있다.In order to reduce access to main memory such as SDRAM through the memory control unit 140 in the intra prediction process, the macroblock line information management unit 320 is rotated in the local memory management apparatus for media decoding according to the present invention. It can be implemented in the form of a macroblock memory control configuration.

회전 방식의 매크로블록 메모리 제어 구성은 도시되듯이 특히 메모리 제어부(140)와 인트라 예측 기능(230) 사이의 데이터 교환과 관련하여 구비될 수 있다.As shown, the macroblock memory control configuration of the rotation scheme may be provided in particular in connection with data exchange between the memory control unit 140 and the intra prediction function 230.

도시되듯이 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서 회전 방식의 매크로블록 메모리 제어 구성은 DMA 호스트(410)와, 제1 다중화부(420)와, 제2 다중화부(430)와, 참조 매크로블록 저장부(440)와, 현재 매크로블록 저장부(450)와, 선택부(460)와, 매크로블록 갱신부(470)를 포함한다.As shown, in the local memory management apparatus for media decoding according to the present invention, a rotational macroblock memory control configuration includes a DMA host 410, a first multiplexer 420, a second multiplexer 430, A reference macroblock storage unit 440, a current macroblock storage unit 450, a selection unit 460, and a macroblock updater 470 are included.

DMA 호스트(410)는 메모리 제어부(140)와 제1 다중화부(420) 및 제2 다중화부(430) 사이의 메모리 접근을 중개한다.The DMA host 410 mediates memory access between the memory controller 140, the first multiplexer 420, and the second multiplexer 430.

제1 다중화부(420)와, 제2 다중화부(430)는 매크로블록 갱신부(470)의 제어에 의해서 인트라 예측에 따른 데이터를 선택적으로 참조 매크로블록 저장부(440)와, 현재 매크로블록 저장부(450)에 각각 저장한다.The first multiplexer 420 and the second multiplexer 430 selectively store the data according to intra prediction under the control of the macroblock updater 470, and store the current macroblock. Stored in each section 450.

참조 매크로블록 저장부(440)와, 현재 매크로블록 저장부(450)는 회전 방식으로 각각 참조 매크로블록과 현재 매크로블록에 대한 정보를 저장한다.The reference macroblock storage unit 440 and the current macroblock storage unit 450 store information on the reference macroblock and the current macroblock, respectively, in a rotating manner.

선택부(460)는 인트라 예측에서 참조 매크로블록과 현재 매크로블록의 연산 자료를 참조 매크로블록 저장부(440)와 현재 매크로블록 저장부(450)로부터 선택하여 인트라 예측 기능(230)에 전송한다.The selector 460 selects the operation data of the reference macroblock and the current macroblock from the intra-prediction macroblock storage unit 440 and the current macroblock storage unit 450 to transmit to the intra prediction function 230.

매크로블록 갱신부(470)는 인트라 예측 기능(230)으로부터 참조 매크로블록 저장부(440)와, 현재 매크로블록 저장부(450)에 데이터를 저장하기 위하여 제1 다중화부(420)와, 제2 다중화부(430)의 동작을 제어한다.The macroblock updating unit 470 may include a reference macroblock storage unit 440 from the intra prediction function 230, a first multiplexer 420, and a second unit to store data in the current macroblock storage unit 450. The operation of the multiplexer 430 is controlled.

즉 매크로블록 갱신부(470)는 인트라 예측 기능(230)의 연산 결과를 기초로 참조 매크로블록과 현재 매크로블록에 대한 정보를 갱신하도록 제어한다.That is, the macroblock updater 470 controls to update information on the reference macroblock and the current macroblock based on the operation result of the intra prediction function 230.

이와 같이 참조 매크로블록 저장부(440)와 현재 매크로블록 저장부(450)의 두 개의 매크로블록을 저장하기 위한 국부 메모리를 구성하고, 각 매크로블록에 대해서 라인별로 참조를 수행하면, 이전 매크로블록 라인에 대한 메모리 접근 빈도가 감소할 수 있다. 또한 현재 매크로블록 라인에 대한 기록에 필요한 SDRAM 등의 메인 메모리로의 접근 역시 감소할 수 있다.As described above, if a local memory for storing two macroblocks of the reference macroblock storage unit 440 and the current macroblock storage unit 450 is stored, and reference is performed for each macroblock line by line, the previous macroblock line The frequency of memory accesses to may decrease. In addition, access to main memory, such as SDRAM, required for writing current macroblock lines can also be reduced.

즉 도 5의 매크로블록에서의 데이터 접근 방식에 비해서 도 7의 회전 방식의 매크로블록 메모리 제어 구성은 매크로블록(X)의 생성에 필요한 매크로블록(B, C)에 대한 정보는 참조 매크로블록 저장부(440)에 저장되어 있으며, 매크로블록(A)은 이전의 인트라 예측을 통하여 현재 매크로블록 저장부(450)에 저장되어 있다.That is, compared to the data access method of the macroblock of FIG. 5, the macroblock memory control configuration of the rotation method of FIG. 7 provides reference macroblock storage for information on macroblocks B and C necessary for generating the macroblock X. FIG. The macroblock A is stored in the current macroblock storage unit 450 through previous intra prediction.

도 8은 도 7의 회전 방식의 매크로블록 메모리 제어 구성에 따른 데이터 흐름을 예시적으로 나타내는 도면이다.FIG. 8 is a diagram illustrating a data flow according to the macroblock memory control configuration of the rotation method of FIG. 7.

도시되듯이 본 발명에 따른 회전 방식의 매크로블록 메모리 제어 구성에서 각 단계에서의 처리 과정에 대해서 도시된다.As shown, the processing at each step in the rotating macroblock memory control arrangement according to the invention is shown.

n+1 번째 매크로블록 라인에서의 연산을 수행하는 경우 n번째의 현재 매크로블록 정보의 데이터를 그대로 전달받아 n+1번째의 참조 매크로블록 정보로서 사용하며, n+1 번째 매크로블록 라인에서의 현재 매크로블록 정보는 n번째의 참조 매크로블록 정보 부분에 할당한다. 이와 같이 동일한 메모리 영역이 단계별로 현재 매크로블록 정보 또는 참조 매크로블록 정보를 저장하게 되며, 이러한 방식을 본원 발명에서는 "회전 방식의 매크로블록 메모리 제어 구성"이라 지칭한다.When performing an operation on the n + 1th macroblock line, the data of the nth current macroblock information is received as it is and used as the n + 1th reference macroblock information, and the current on the n + 1th macroblock line. The macroblock information is allocated to the nth reference macroblock information portion. As such, the same memory area stores current macroblock information or reference macroblock information step by step, and this method is referred to as a " rotational macroblock memory control configuration " in the present invention.

한편 인터 예측의 경우에서는 다음과 같다.In the case of inter prediction, it is as follows.

인터예측 과정에서는 SDRAM 등의 메인 메모리로의 접근을 감소시키기 위하여 매크로블록 라인의 일부로 메모리 블록을 구성하고, 인덱스를 사용하여, X 오프셋, Y 오프셋, 프레임 오프셋을 통하여 프레임 메모리를 제어할 수 있다.In the inter prediction process, a memory block may be configured as part of a macroblock line to reduce access to main memory such as SDRAM, and the frame memory may be controlled through an X offset, a Y offset, and a frame offset using an index.

즉 움직임 보상 과정에 필요한 참조 프레임의 화면을 읽어 들이기 위한 메모리 접근을 이러한 방식을 통하여 감소시킬 수 있다. 또한 이러한 정보를 저장하는 인덱스 레지스터의 치환을 통하여 프레임간의 데이터 변환에 필요한 복사 동작의 감소가 가능하다.In other words, the memory access for reading the reference frame picture required for the motion compensation process can be reduced in this manner. In addition, by replacing the index register for storing such information, it is possible to reduce the copy operation required for data conversion between frames.

도 9는 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서 프레임 저장을 위한 메모리 구조의 예시적인 형태를 나타내는 도면이다.9 is a diagram illustrating an exemplary form of a memory structure for storing frames in the local memory management apparatus for media decoding according to the present invention.

도 9에 도시되듯이, 프레임 저장을 위한 메모리 구조는, 현재 프레임의 저장과 참조 프레임의 저장을 위한 구조를 포함한다.As shown in FIG. 9, a memory structure for storing a frame includes a structure for storing a current frame and a storing of a reference frame.

각 매크로블록은 예컨대 16x16 픽셀로 구성되며, 또한 하나의 매크로블록 인 덱스는 128x16 픽셀의 화면을 저장할 수 있다.Each macroblock is composed of, for example, 16x16 pixels, and one macroblock index can store a screen of 128x16 pixels.

예컨대 매크로블록 인덱스(MB Index 0)에 대해서는 도시되듯이 8개의 매크로블록에 대해서 저장이 수행된다.For example, as shown for the macroblock index MB Index 0, storage is performed for eight macroblocks.

또한 각 매크로블록 인덱스의 구조는 도시되듯이, 전체 화면상의 X,Y 오프셋(X Offset, Y Offset) 및 프레임 오프셋(Frame Offset)의 번호, 유효(Valid) 표시를 위한 필드(In Use), 매크로블록 라인의 각 매크로블록 사이의 정렬 순서를 나타내는 필드(Arrange Order)를 포함하고 있다.In addition, the structure of each macroblock index, as shown, the number of X, Y offset (X Offset, Y Offset) and the frame offset (Frame Offset) on the whole screen, the field (In Use), the macro for valid display It includes a field (Arrange Order) indicating the sort order between each macroblock of a block line.

도 10은 본 발명에 따른 미디어 디코딩용 국부 메모리 관리 장치에 있어서 프레임 정보 관리부의 예시적인 구성을 나타내는 도면이다.10 is a diagram showing an exemplary configuration of a frame information management unit in the local memory management apparatus for media decoding according to the present invention.

도시되듯이 움직임 보상을 위해서 사용하는 기준 프레임에 대해서 필요한 부분만 로딩하여 사용이 가능하며, 필요한 부분만 개별적으로 갱신이 가능하도록 구성된다.As shown, only necessary parts can be loaded and used for a reference frame used for motion compensation, and only necessary parts can be updated individually.

즉 미디어 디코딩용 국부 메모리 관리 장치의 프레임 정보 관리부는 현재 프레임을 위한 저장 공간과 2개의 참조 프레임을 위한 저장 공간 등, 3개의 프레임 저장 공간으로 구성될 수 있다.That is, the frame information management unit of the local memory management apparatus for media decoding may include three frame storage spaces, such as a storage space for a current frame and a storage space for two reference frames.

이 경우 각 프레임 저장 공간은 프레임 번호(Frame Number), X, Y 오프셋(X Offset, Y Offset)과 윈도우 크기 정보와, 다수의 매크로블록 인덱스 테이블을 포함한다.In this case, each frame storage space includes a frame number, an X offset offset, a Y offset offset, window size information, and a plurality of macroblock index tables.

현재 프레임의 저장을 위한 공간과 가장 많은 참조가 발생하는 이전 프레임[참조 프레임(1)]에 대한 저장 공간은 도시되듯이 다수의 매크로블록 인덱스 테이 블(MB Index Table)로 구성되며, 1 프레임 이전의 참조 프레임[참조 프레임(2)]에 대한 저장 공간은 참조 회수가 상대적으로 작으므로 예컨대 도시되듯이 2개의 매크로블록 인덱스 테이블로 구성된다.The space for storing the current frame and the storage space for the previous frame (the reference frame (1)) where the most references occur are composed of a number of macroblock index tables (MB Index Table) as shown, and before one frame. The storage space for the reference frame (reference frame 2) of is composed of two macroblock index tables as shown, for example, because the number of references is relatively small.

비록 본 발명의 구성이 구체적으로 설명되었지만 이는 단지 본 발명을 예시적으로 설명한 것에 불과한 것으로, 본 발명이 속하는 기술분야에서 통상의 지식을 가지는 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 변형이 가능할 것이다. 따라서 본 명세서에 개시된 실시예들은 본 발명을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 사상과 범위가 한정되는 것은 아니다. 본 발명의 범위는 아래의 청구범위에 의해 해석되어야 하면, 그와 동등한 범위 내에 있는 모든 기술은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다. Although the configuration of the present invention has been described in detail, these are merely illustrative of the present invention, and various modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. This will be possible. Therefore, the embodiments disclosed herein are not intended to limit the present invention but to describe the present invention, and the spirit and scope of the present invention are not limited by these embodiments. If the scope of the present invention is to be interpreted by the claims below, it should be interpreted that all techniques falling within the scope of the present invention are included in the scope of the invention.

이상 설명한 바와 같이, 본 발명에 따르면 종래의 하드와이어드-로직을 내장한 프로세서의 멀티미디어 디코딩과정에서 내장된 매크로 기능들의 구동 과정에 대한 프로세서의 제어로 인하여 발생하는 메모리 버스 및 프로세서의 성능 저하와 반복적인 데이터의 로딩/저장 과정에 따른 과도한 시스템 버스의 접근을 방지하기 위하여 메모리 버스의 사용율 및 프로세서의 제어를 최소화할 수 있도록 하드와이어드-로직의 데이터 흐름을 제어하고 데이터 흐름을 위한 메모리 경로를 제공하여 특히 모바일 멀티미디어 프로세서의 성능을 향상시킬 수 있다.As described above, according to the present invention, performance degradation and repetitive performance of the memory bus and the processor that occur due to the processor's control of the driving process of the built-in macro functions in the multimedia decoding process of the processor incorporating the hardwired logic are conventional. In order to prevent excessive system bus access due to data loading / storing process, hardwired-logic data flow is controlled and memory path for data flow is minimized to minimize memory bus utilization and processor control. Improve the performance of your mobile multimedia processor.

Claims (11)

움직임 보상 기능과 인트라 예측 기능과 역양자화 및 역이산코사인 변환 기능을 구비하며 메모리 제어부를 통하여 데이터 흐름을 제어하는 미디어 디코더에서의 국부 메모리 관리 장치로서,A local memory management apparatus in a media decoder having a motion compensation function, an intra prediction function, an inverse quantization and an inverse discrete cosine transform function, and controlling a data flow through a memory controller, 참조 프레임과 현재 프레임 정보를 관리하여 상기 움직임 보상 기능과 데이터 교환을 수행하는 프레임 정보 관리부와,A frame information manager which manages a reference frame and current frame information to exchange data with the motion compensation function; 참조 매크로블록 라인과 현재 매크로블록 라인의 정보를 관리하여 상기 인트라 예측 기능과의 데이터 교환을 수행하는 매크로블록 라인 정보 관리부와,A macroblock line information management unit for managing data of a reference macroblock line and a current macroblock line and performing data exchange with the intra prediction function; 상기 역양자화 및 역이산코사인 변환 기능과의 데이터 교환을 수행하는 FIFO 관리부FIFO management unit performing data exchange with the inverse quantization and inverse discrete cosine transform function 를 포함하는 미디어 디코딩용 국부 메모리 관리 장치.Local memory management apparatus for media decoding comprising a. 삭제delete 제1항에 있어서, 상기 프레임 정보 관리부는,The method of claim 1, wherein the frame information management unit, 매크로블록 인덱스 테이블 형태의 정보를 포함하는 현재 프레임 정보 저장 공간과,A current frame information storage space including macroblock index table type information; 상기 매크로블록 인덱스 테이블 형태의 정보를 포함하는 다수의 참조 프레임 정보 저장 공간을 포함하는 것인 미디어 디코딩용 국부 메모리 관리 장치.And a plurality of reference frame information storage spaces containing information in the form of the macroblock index table. 제3항에 있어서,The method of claim 3, 상기 다수의 참조 프레임 정보 저장 공간은 참조 회수에 따라서 상기 매크로블록 인덱스 테이블의 개수가 상기 다수의 참조 프레임 정보 저장 공간 각각에 대해서 서로 다른 것인 미디어 디코딩용 국부 메모리 관리 장치.And wherein the plurality of reference frame information storage spaces are different in number for each of the plurality of reference frame information storage spaces according to the number of references. 제3항에 있어서,The method of claim 3, 상기 매크로블록 인덱스 테이블 형태는,The macroblock index table form is 전체 화면상의 X 오프셋, Y 오프셋, 프레임 오프셋, 유효(Valid) 표시, 정렬 순서 정보를 포함하는 것인 미디어 디코딩용 국부 메모리 관리 장치.And a X offset, Y offset, frame offset, valid indication, and sort order information on the entire screen. 제3항에 있어서,The method of claim 3, 상기 현재 프레임 정보 저장 공간 또는 상기 참조 프레임 정보 저장 공간은, 프레임 번호, X 오프셋, Y 오프셋, 윈도우 크기 정보를 포함하는 것인 미디어 디코딩용 국부 메모리 관리 장치.And the current frame information storage space or the reference frame information storage space includes frame number, X offset, Y offset, and window size information. 제1항에 있어서, 상기 매크로블록 라인 정보 관리부는,The method of claim 1, wherein the macroblock line information management unit, 상기 인트라 예측 기능의 연산 결과를 기초로 매크로블록 정보를 갱신하는 매크로블록 갱신부와,A macroblock updater for updating macroblock information based on a result of the operation of the intra prediction function; 상기 현재 매크로블록에 대한 정보와 상기 참조 매크로블록에 대한 정보를 저장하는 매크로블록 저장부와,A macroblock storage unit which stores information on the current macroblock and information on the reference macroblock; 상기 메모리 제어부로부터의 출력 또는 상기 매크로블록 갱신부의 출력을 다중화하여 상기 매크로블록 저장부로 출력하는 다중화부와,A multiplexer for multiplexing an output from the memory controller or an output of the macroblock updater to the macroblock storage; 상기 매크로블록 저장부의 상기 현재 매크로블록에 대한 정보 또는 상기 참조 매크로블록에 대한 정보 중에서 선택하여 상기 인트라 예측 기능에 전송하는 선택부A selector which selects from the information on the current macroblock or the information on the reference macroblock and transmits the information to the intra prediction function 를 포함하는 것인 미디어 디코딩용 국부 메모리 관리 장치.Local memory management apparatus for media decoding comprising a. 제7항에 있어서,The method of claim 7, wherein 상기 매크로블록 저장부는, The macroblock storage unit, 상기 현재 매크로블록에 대한 정보를 저장하는 현재 매크로블록 저장부와,A current macroblock storage unit for storing information on the current macroblock; 상기 참조 매크로블록에 대한 정보를 저장하는 참조 매크로블록 저장부Reference macroblock storage unit for storing information about the reference macroblock 를 포함하는 것인 미디어 디코딩용 국부 메모리 관리 장치.Local memory management apparatus for media decoding comprising a. 제8항에 있어서, 상기 다중화부는, The method of claim 8, wherein the multiplexing unit, 상기 매크로블록 갱신부의 제어에 따라, Under the control of the macroblock updater, 상기 메모리 제어부로부터의 출력 또는 상기 매크로블록 갱신부의 출력을 다중화하여 상기 참조 매크로블록 저장부로 출력하는 제1 다중화부와,A first multiplexer which multiplexes an output from the memory controller or an output of the macroblock updater, and outputs the multiplexer to the reference macroblock storage; 상기 메모리 제어부로부터의 출력 또는 상기 매크로블록 갱신부의 출력을 다중화하여 상기 현재 매크로블록 저장부로 출력하는 제2 다중화부A second multiplexer which multiplexes an output from the memory controller or an output of the macroblock updater to the current macroblock storage; 를 포함하는 것인 미디어 디코딩용 국부 메모리 관리 장치.Local memory management apparatus for media decoding comprising a. 제8항에 있어서, 상기 선택부는 상기 현재 매크로블록 저장부 또는 상기 참조 매크로블록 저장부의 출력 중에서 선택하여 상기 인트라 예측 기능으로 출력하는 것인 미디어 디코딩용 국부 메모리 관리 장치.The apparatus of claim 8, wherein the selector selects an output from the current macroblock storage unit or the reference macroblock storage unit to output to the intra prediction function. 10. 제7항에 있어서, 상기 매크로블록 라인 정보 관리부는,The method of claim 7, wherein the macroblock line information management unit, 상기 메모리 제어부와 상기 다중화부 사이의 메모리 접근을 중개하는 DMA 호스트DMA host for mediating memory access between the memory controller and the multiplexer 를 더 포함하는 것인 미디어 디코딩용 국부 메모리 관리 장치.Local memory management apparatus for media decoding further comprising.
KR1020060118067A 2006-11-28 2006-11-28 Local memory controller for mpeg decoder KR100821922B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060118067A KR100821922B1 (en) 2006-11-28 2006-11-28 Local memory controller for mpeg decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060118067A KR100821922B1 (en) 2006-11-28 2006-11-28 Local memory controller for mpeg decoder

Publications (1)

Publication Number Publication Date
KR100821922B1 true KR100821922B1 (en) 2008-04-15

Family

ID=39534737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060118067A KR100821922B1 (en) 2006-11-28 2006-11-28 Local memory controller for mpeg decoder

Country Status (1)

Country Link
KR (1) KR100821922B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003018607A (en) 2001-07-03 2003-01-17 Matsushita Electric Ind Co Ltd Image decoding method, image decoding device and recording medium
KR20050068770A (en) * 2003-12-30 2005-07-05 삼성전자주식회사 Data processing system and data processing method
KR20050074011A (en) * 2004-01-13 2005-07-18 (주)씨앤에스 테크놀로지 Vedeo decoder system having reduced memory bandwidth

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003018607A (en) 2001-07-03 2003-01-17 Matsushita Electric Ind Co Ltd Image decoding method, image decoding device and recording medium
KR20050068770A (en) * 2003-12-30 2005-07-05 삼성전자주식회사 Data processing system and data processing method
KR20050074011A (en) * 2004-01-13 2005-07-18 (주)씨앤에스 테크놀로지 Vedeo decoder system having reduced memory bandwidth

Similar Documents

Publication Publication Date Title
KR101227667B1 (en) Piecewise processing of overlap smoothing and in-loop deblocking
US9224187B2 (en) Wavefront order to scan order synchronization
KR100695141B1 (en) Memory access apparatus and method, data write/read apparatus and method for use in image processing system
Kang et al. MPEG4 AVC/H. 264 decoder with scalable bus architecture and dual memory controller
US9131240B2 (en) Video decoding method and apparatus which uses double buffering
US8395634B2 (en) Method and apparatus for processing information
US9253496B2 (en) Intelligent decoded picture buffering
KR20070111467A (en) Scratch pad for storing intermediate loop filter data
US9509992B2 (en) Video image compression/decompression device
KR100772379B1 (en) External memory device, method for storing image date thereof, apparatus for processing image using the same
US7843993B2 (en) Moving picture encoding apparatus having increased encoding speed and method thereof
Demura et al. A single-chip MPEG2 video decoder LSI
US9204158B2 (en) Hardware multi-standard video decoder device
US9363523B2 (en) Method and apparatus for multi-core video decoder
JP2006279574A (en) Decoder and decoding method
JP4891335B2 (en) Hardware multi-standard video decoder device
US20110249959A1 (en) Video storing method and device based on variable bit allocation and related video encoding and decoding apparatuses
US20050168470A1 (en) Variable-length coding data transfer interface
KR20090020460A (en) Method and apparatus for video decoding
JP2002112268A (en) Compressed image data decoding apparatus
KR100821922B1 (en) Local memory controller for mpeg decoder
JP2003230148A (en) Image data coding unit
KR100891116B1 (en) Apparatus and method for bandwidth aware motion compensation
KR100556341B1 (en) Vedeo decoder system having reduced memory bandwidth
US6614437B1 (en) Apparatus and method for efficient memory utilization in an electronic system

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: 20120116

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee