KR20050040712A - 2-dimensional graphic decoder including graphic display accelerating function based on commands, graphic display accelerating method therefor and reproduction apparatus - Google Patents

2-dimensional graphic decoder including graphic display accelerating function based on commands, graphic display accelerating method therefor and reproduction apparatus Download PDF

Info

Publication number
KR20050040712A
KR20050040712A KR1020040082818A KR20040082818A KR20050040712A KR 20050040712 A KR20050040712 A KR 20050040712A KR 1020040082818 A KR1020040082818 A KR 1020040082818A KR 20040082818 A KR20040082818 A KR 20040082818A KR 20050040712 A KR20050040712 A KR 20050040712A
Authority
KR
South Korea
Prior art keywords
graphic
data
command
acceleration
output
Prior art date
Application number
KR1020040082818A
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 JP2004312958A priority Critical patent/JP2005135415A/en
Priority to EP04256609A priority patent/EP1528512A3/en
Priority to US10/974,972 priority patent/US20050116946A1/en
Priority to TW093132716A priority patent/TW200521885A/en
Priority to CN200410087092.8A priority patent/CN1612163A/en
Publication of KR20050040712A publication Critical patent/KR20050040712A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Abstract

명령어 기반 그래픽 출력 가속 기능이 포함된 2차원 그래픽 디코더, 그 그래픽 출력 가속 방법 및 영상 재생 장치가 개시된다.Disclosed are a two-dimensional graphic decoder including a command-based graphic output acceleration function, a graphic output acceleration method thereof, and an image reproducing apparatus.

본 발명에 따른 그래픽 출력을 가속하는 방법은, 그래픽 데이터를 해석하여 단순화된 적어도 하나의 가속 명령어 데이터로 변환하여 저장하는 단계; 및 저장된 적어도 하나의 가속 명령어 데이터를 실행하여 그래픽 이미지를 출력하는 단계를 포함하며, 각 단계는 독립적으로 수행되는 것을 특징으로 한다. 특히, 상기 가속 명령어 데이터는, 그래픽 데이터를 해석하여 폴리곤을 생성하고 생성된 폴리곤을 스캔 컨버전한 결과 얻어진 적어도 하나의, 그래픽 이미지를 화면에 빠르게 그려주기 위한 수평선 그리기 명령어 또는 수직선 그리기 명령어를 포함하는 것이 바람직하다.According to an aspect of the present invention, there is provided a method of accelerating graphic output, the method comprising: interpreting graphic data, converting the graphic data into at least one accelerated command data, and storing the same; And outputting a graphic image by executing the stored at least one acceleration command data, wherein each step is performed independently. In particular, the acceleration command data may include a horizontal drawing command or a vertical drawing command for quickly drawing a graphic image on the screen, the graphic image obtained by interpreting graphic data to generate a polygon and scan-convert the generated polygon. desirable.

이에 따라, 수평선 그리기를 이용한 그래픽 출력가속 명령어를 이용하여 2차원 그래픽 이미지의 출력 처리 기능을 향상시킬 수 있다. Accordingly, the output processing function of the 2D graphic image can be improved by using the graphic output acceleration command using the horizontal drawing.

Description

명령어 기반 그래픽 출력 가속 기능이 포함된 2차원 그래픽 디코더, 그 그래픽 출력 가속 방법 및 영상 재생 장치{2-dimensional graphic decoder including graphic display accelerating function based on commands, graphic display accelerating method therefor and reproduction apparatus} 2-dimensional graphic decoder including graphic display accelerating function based on commands, graphic display accelerating method therefor and reproduction apparatus}

본 발명은 영상의 재생에 관한 것으로, 보다 상세하게는 명령어 기반 그래픽 출력 가속 기능이 포함된 2차원 그래픽 디코더, 그 그래픽 출력 가속 방법 및 영상 재생 장치에 관한 것이다. The present invention relates to the reproduction of an image, and more particularly, to a two-dimensional graphics decoder including a command-based graphics output acceleration function, a graphics output acceleration method thereof, and an image reproducing apparatus.

영상 재생 장치는 화면에 표시되는 모든 영상을 픽셀(pixel)로 표시함으로써 마이크로 프로세서(Central Processing Unit, 이하 CPU라 함)에 심한 연산 부담을 주는 문제점이 있다. 따라서, 영상 재생 장치는 CPU의 연산 부담을 줄이기 위해 그래픽 출력 가속 기능을 제공하는 것이 일반적이다. 그래픽 출력 가속 기능(Graphic display accelerating function)이란, 그래픽 출력 처리 명령어를 별도로 지원하거나, 그래픽 출력 어댑터 내부에 그래픽 출력 처리 함수를 하드웨어 회로로 만들어 넣는 방식 등을 이용하여 CPU의 연산 부담을 덜어줌으로써, 그래픽 출력 처리 기능을 향상시키는 것을 의미한다.The image reproducing apparatus has a problem in that a severe computational burden is applied to a microprocessor (Central Processing Unit) by displaying all images displayed on the screen in pixels. Therefore, it is common for an image reproducing apparatus to provide a graphic output acceleration function in order to reduce the computational load on the CPU. Graphic display accelerating function is to reduce the computational load of the CPU by separately supporting graphic output processing instructions or by making the graphic output processing function into a hardware circuit inside the graphic output adapter. This means improving the output processing.

종래의 대표적인 2차원 또는 3차원 그래픽 출력 가속 기술은, CPU의 성능을 개선하여 복잡한 도형과 이미지를 처리하는 방법을 사용한다. 인텔사에서 제공하는 MMX(Multimedia extension) 기술이나 AMD사의 3D Now 기술이 그 예이다. MMX 기술은 행렬의 덧셈이나 곱셈 연산을 빠르게 수행하기 위하여, 한 개의 명령어로 여러 개의 레지스터를 더하거나 곱하는 기능을 CPU 명령어 세트에 추가하여 CPU의 처리 속도를 향상시키는 방식을 이용한다. 이러한 명령어를 SIMD(Single Instruction Multiple Data)라고 하며, 도 1a에 도시된 바와 같이 복수의 SIMD 명령어들이 CPU 명령어 세트에 포함된다. Conventional two-dimensional or three-dimensional graphics output acceleration technology uses a method of processing complex figures and images by improving the performance of the CPU. Examples include Intel's MMX (Multimedia Extension) technology or AMD's 3D Now technology. The MMX technology uses a method of increasing the processing speed of a CPU by adding a function to add or multiply multiple registers with one instruction to the CPU instruction set to perform a matrix addition or multiplication operation quickly. Such an instruction is called a single instruction multiple data (SIMD), and a plurality of SIMD instructions are included in the CPU instruction set as shown in FIG. 1A.

그래픽 출력 가속 기능을 제공하는 다른 방법은, 주로 사용되는 그래픽 처리 기능을 그래픽 출력 가속을 위한 하드웨어 회로가 담당하도록 하여, CPU의 연산 부담을 덜어주는 것이다. 종래의 2차원 그래픽 출력 가속기 칩(2-dimensional graphic display accelerator chip)이 내장된 게임기는 2차원 그래픽 출력 가속을 위한 하드웨어 회로를 내장하고 있다. 2차원 그래픽 출력 가속기 칩은 출력 함수 형태로 그래픽 출력 기능이 내장되어 그래픽 출력 처리를 담당하므로, 그래픽 모드에서의 CPU의 작업 속도를 비약적으로 높일 수 있다. 도 1b는 2차원 그래픽 출력 가속기 칩이 포함된 영상 재생 장치의 구조를 도시한다. Another way of providing graphics output acceleration is to relieve the computational burden on the CPU by allowing the hardware circuitry for graphics output acceleration to assume the graphics processing functions that are commonly used. A game machine incorporating a conventional 2-dimensional graphic display accelerator chip includes a hardware circuit for accelerating 2-dimensional graphic output. The two-dimensional graphics output accelerator chip has a graphics output function in the form of an output function to handle graphics output, which can dramatically increase the CPU's speed in graphics mode. 1B illustrates a structure of an image reproducing apparatus including a 2D graphic output accelerator chip.

그러나, 2차원 그래픽 출력 가속기 칩은 그래픽 카드의 제조 업체마다 지원하는 가속 출력 함수, 예를 들면 선 그리기, 폴리곤, 사각형 그리기, 블록 복사 등의 형태와 구현 기술이 다르다. 또한, 그래픽 출력 가속기 칩에 내장되지 않은 그래픽 출력 작업, 예를 들어 곡선이 포함된 도형을 그리기 등을 수행하는 경우에는 제 기능을 발휘하기 어렵다. 더구나, 2차원 그래픽 가속기 칩이 지원하는 해상도와 다르거나, 고해상도에서 트루 컬러를 표현하고자 하는 경우에는 그래픽 처리 속도를 높이기 어려운 문제점이 있다.However, two-dimensional graphics output accelerator chips differ in form and implementation technology, such as line drawing, polygons, rectangle drawing, and block copy, which are supported by the graphics card manufacturers. In addition, it is difficult to perform a function when performing a graphic output operation that is not embedded in the graphic output accelerator chip, for example, drawing a figure including a curve. In addition, when the resolution is different from the resolution supported by the 2D graphics accelerator chip or when the true color is to be expressed at a high resolution, it is difficult to increase the graphics processing speed.

그래픽 가속 기능을 제공하는 또 다른 방법은, 도 1c에 도시된 바와 같이, 3차원 벡터 연산을 처리하는 3차원 그래픽 가속기 칩(3-dimensional graphic display accelerator chip)을 사용하여 CPU의 3차원 입체(Geometry) 연산 처리와 출력을 위한 렌더링 처리의 부담을 줄이는 방법이다. 벡터 그래픽(Vector Graphic)은 화면을 구성하는 최소 단위로서 원, 직사각형, 삼각형, 선 등의 다각형을 사용하며, 이를 수식의 형태로 표현한 그래픽을 말하며, 풀리곤 그래픽(polygon graphic)이라고도 한다. 벡터 그래픽은 곡선이나 톤과 같은 섬세한 느낌을 표현하기 위하여 렌더링, 쉐이딩, 텍스춰링 등의 여러 가지 특수효과를 사용하며, 이로 인한 CPU의 연산 부담을 줄이기 위해 3차원 그래픽 가속기를 이용하게 된다. Another method of providing graphics acceleration is a three-dimensional geometry of the CPU using a three-dimensional graphic display accelerator chip that processes three-dimensional vector operations, as shown in FIG. 1C. This is a way to reduce the overhead of processing and rendering for output. Vector graphics are the smallest units constituting the screen and use polygons such as circles, rectangles, triangles, lines, etc., and are graphics expressed in the form of equations, and are also referred to as polygon graphics. Vector graphics use various special effects such as rendering, shading, and texturing to express delicate feelings such as curves and tones, and use 3D graphics accelerators to reduce the computational burden on the CPU.

그러나, 3차원 그래픽 출력 가속 환경에서 2차원 벡터 그래픽(Vector Graphic)을 이용하는 경우, 도형을 구성하는 원이나 곡선이 포함된 도형을 표현할 때 복잡한 3차원 벡터를 이용한 버텍스(Vertex) 처리가 필요하다. 따라서, 3차원 연산과 버텍스를 채워주는 텍스쳐 이미지의 이미지 맵핑 연산을 위하여 고성능의 그래픽 프로세서가 요구된다.However, when using a 2D vector graphic in a 3D graphic output acceleration environment, a vertex processing using a complex 3D vector is required when representing a shape including a circle or a curve constituting the figure. Therefore, a high performance graphics processor is required for the 3D operation and the image mapping operation of the texture image filling the vertices.

한편, 종래의 가전 기기(Consumer Electronics: 이하 CE라 약칭함)도 인터넷 기술과 접목되면서 인터넷 웹 페이지에서 표현되는 2차원 벡터 애니메이션과 같은 강력한 그래픽 출력 기능을 필요로 하게 되었다. 그러나 종래의 가전기기, 예를 들어 DVD 재생장치와 같은 영상 재생 장치에는 800MIPS 펜티엄급의 고성능 CPU가 아닌 150MIPS 수준의 CPU가 구비되어 그래픽 출력 처리 성능에 제한이 따른다. 즉, 텍스트나 단순한 이미지가 포함된 제한된 범위의 그래픽 표현만이 가능할 뿐, 인터넷 웹 페이지와 같이 2차원 벡터 그래픽 애니메이션 기능을 구현하기 어렵다는 문제점이 있었다.On the other hand, conventional consumer electronics (hereinafter, abbreviated as CE) has come to be combined with Internet technology, and requires a powerful graphic output function such as two-dimensional vector animation represented on an Internet web page. However, a conventional home appliance, for example, a video reproducing apparatus such as a DVD reproducing apparatus is provided with a CPU level of 150 MIPS rather than an 800 MIPS Pentium-class high performance CPU, thereby limiting graphic output processing performance. That is, only a limited range of graphic representations including text or simple images are possible, and there is a problem in that it is difficult to implement a 2D vector graphic animation function like an internet web page.

또한, 종래의 2차원 그래픽 출력 가속 기술을 이용한다 하더라도 복잡한 2차원 벡터 연산 및 다양한 곡선 처리 기능을 그래픽 출력 가속기 칩의 내부에 포함시켜야 하므로 하드웨어 회로 설계가 복잡하다. 또한, 하드웨어 회로에 모든 2차원 곡선의 처리 기능을 포함시키기는 불가능하다. 왜냐하면, 하드웨어 회로의 크기 제한, 하드웨어 회로와 주변 부품 가격의 상승, 동작 발열 및 발열에 따른 팬의 소음 발생 등 여러 가지 문제점이 발생하기 때문이다.In addition, even if the conventional two-dimensional graphics output acceleration technology is used, hardware circuit design is complicated because complex two-dimensional vector computation and various curve processing functions must be included in the graphics output accelerator chip. In addition, it is not possible to include all two-dimensional curve processing functions in the hardware circuit. This is because there are various problems such as the size limitation of the hardware circuit, the increase in the price of the hardware circuit and peripheral components, the operation noise, and the noise generated by the fan due to the heat generation.

따라서, 본 발명의 기술적 과제는 전술한 문제점을 해결하기 위하여 명령어 기반 그래픽 출력 가속 기능이 포함된 2차원 그래픽 디코더를 제공하는 것이다. Accordingly, an object of the present invention is to provide a two-dimensional graphics decoder including a command-based graphics output acceleration function to solve the above problems.

또한, 본 발명의 다른 기술적 과제는 그래픽 출력 가속 기능을 구현하는 방법을 제공하는 것이다. In addition, another technical problem of the present invention is to provide a method for implementing a graphics output acceleration function.

나아가, 본 발명의 또 다른 기술적 과제는 명령어 기반 그래픽 출력 가속 기능이 포함된 2차원 그래픽 디코더를 구비하는 영상 재생 장치를 제공하는 것이다.Furthermore, another technical problem of the present invention is to provide an image reproducing apparatus having a two-dimensional graphics decoder including a command-based graphics output acceleration function.

전술한 기술적 과제는 본 발명에 따라, 그래픽 출력을 가속하는 방법에 있어서, 그래픽 데이터를 해석하여 단순화된 적어도 하나의 가속 명령어 데이터로 변환하여 저장하는 단계; 및 저장된 적어도 하나의 가속 명령어 데이터를 실행하여 그래픽 이미지를 출력하는 단계를 포함하며, 각 단계는 독립적으로 수행되는 것을 특징으로 하는 방법에 의해 달성된다.In accordance with an aspect of the present invention, there is provided a method of accelerating graphic output, the method comprising: interpreting graphic data and converting the graphic data into at least one accelerated command data; And outputting a graphic image by executing the stored at least one acceleration instruction data, wherein each step is achieved by a method which is performed independently.

상기 가속 명령어 데이터는, 그래픽 데이터를 해석하여 폴리곤을 생성하고 생성된 폴리곤을 스캔 컨버전한 결과 얻어진 적어도 하나의, 그래픽 이미지를 화면에 빠르게 그려주기 위한 수평선 그리기 명령어 또는 수직선 그리기 명령어를 포함하는 것이 바람직하다.The acceleration command data may include a horizontal drawing command or a vertical drawing command for quickly drawing at least one graphic image on a screen obtained by analyzing graphic data to generate a polygon and scanning and converting the generated polygon. .

상기 변환하여 저장하는 단계는, 다양한 그래픽 데이터를 해석하기 위해 별도의 소프트웨어를 통해 수행되는 것이 바람직하며,The converting and storing may be performed through separate software for interpreting various graphic data.

상기 변환하여 저장하는 단계는, 변환된 적어도 하나의 가속 명령어를 소정의 메모리 영역에 저장하는 것이 바람직하다. In the converting and storing, the converted at least one acceleration command may be stored in a predetermined memory area.

또한, 상기 그래픽 이미지를 출력하는 단계는, 그래픽 이미지의 출력 속도를 높이기 위해 별도의 하드웨어 회로를 통해 수행되는 것이 바람직하다.The outputting of the graphic image may be performed through a separate hardware circuit to increase the output speed of the graphic image.

상기 가속 명령어 데이터는, 픽셀을 그리는 명령어, 한가지 색상으로 수평선을 그리는 명령어, 비트맵 이미지 패턴이 적용된 수평선을 그리는 명령어, 선형 그라디언트 이미지 패턴이 적용된 수평선을 그리는 명령어, 래디얼 그라디언트 이미지 패턴이 적용된 수평선을 그리는 명령어, 이전에 실행했던 수평선 그리기 명령어의 수직 좌표 또는 수평 좌표를 증감하여 이전 명령어를 소정의 수평선의 좌표까지 반복하는 명령어, 수평선을 그리는 명령어에 적용되는 채우기 데이터로서 비트맵 이미지나 그라디언트 패턴의 크기나 위치를 조정해 주는 어파인 변환(AffineTranslate) 명령어, 수평선에 그려지는 픽셀들의 색을 변환하기 위한 색 변환(ColorTranslate) 명령어, 다른 주소의 가속 명령어 데이터 위치로 분기하여 해당 주소의 가속 명령어를 실행하는 분기 명령어, 그래픽 이미지와 블랜딩되어 출력되는 동영상의 출력 위치 및 레이어를 지정하는 명령어, 그래픽 이미지와 블랜딩되어 출력되는 동영상 영역을 제외한 배경 영역의 색상 및 비디오 신호가 없는 상태일 때의 동영상 영역의 색상을 지정하는 명령어 들 중 적어도 하나를 포함하는 것이 바람직하다.The acceleration instruction data includes a pixel drawing instruction, a horizontal line drawing instruction in one color, a horizontal line applying bitmap image pattern, a horizontal line applying linear gradient image pattern, and a horizontal line applying radial gradient image pattern. Command, a command that repeats the previous command to a predetermined horizontal coordinate by increasing or decreasing the vertical or horizontal coordinates of the previous horizontal drawing command, and the fill data applied to the horizontal drawing command, or the size of a bitmap image or gradient pattern, AffineTranslate command to adjust the position, ColorTranslate command to convert the color of pixels drawn on the horizontal line, and branch to the acceleration instruction data location of another address to execute the acceleration instruction of the corresponding address.For example, the command to specify the output location and layer of the video output blended with the graphic image, the color of the background area except the video area blended with the graphic image, and the color of the video area when there is no video signal It is preferable to include at least one of the instructions.

한편, 본 발명의 다른 분야에 따르면 전술한 기술적 과제는, 외부 채널을 통해 판독된 그래픽 데이터를 디코딩 하여 단순화된 적어도 하나의 가속 명령어 데이터로 변환하여 소정의 메모리 영역에 저장하는 가속 명령어 변환부; 및 저장된 적어도 하나의 가속 명령어 데이터를 실행하여 그래픽 이미지를 출력하는 가속 명령어 처리부를 포함하며, 가속 명령어 변환부 및 가속 명령어 처리부는 소정의 메모리 영역을 이용하여 각각 독립적으로 동작하는 것을 특징으로 하는 그래픽 디코더에 의해 달성된다.On the other hand, according to another field of the present invention, the above technical problem, an acceleration command conversion unit for decoding the graphic data read through the external channel to convert to at least one acceleration command data simplified and stored in a predetermined memory area; And an acceleration command processor configured to execute at least one stored acceleration command data to output a graphic image, wherein the acceleration command converter and the acceleration command processor operate independently of each other using a predetermined memory area. Is achieved by.

상기 가속 명령어 변환부는, 그래픽 데이터를 해석하여 폴리곤을 생성하고, 그래픽 데이터를 생성된 폴리곤의 스캔 컨버전 결과 얻어진 적어도 하나의 가속 명령어 데이터로 변환하여, 소정의 메모리 영역에 저장하며, 가속 명령어 데이터는, 그래픽 이미지를 화면에 빠르게 그려주기 위한 수평선 그리기 명령어 또는 수직선 그리기 명령어를 포함하는 것이 바람직하다.The acceleration command conversion unit may generate a polygon by analyzing graphic data, convert the graphic data into at least one acceleration command data obtained as a result of scan conversion of the generated polygon, and store the result in a predetermined memory area. It is preferable to include a horizontal drawing command or a vertical drawing command to quickly draw a graphic image on the screen.

또한, 상기 가속 명령어 변환부는, 다양한 그래픽 데이터를 해석하기 위해 별도의 소프트웨어로 구현되는 것이 바람직하다.In addition, the acceleration command conversion unit is preferably implemented in a separate software for interpreting a variety of graphic data.

상기 가속 명령어 처리부는, 그래픽 이미지의 출력 속도를 높이기 위해 별도의 하드웨어 회로로 구현되는 것이 바람직하다.The acceleration command processor is preferably implemented as a separate hardware circuit to increase the output speed of the graphic image.

상기 외부 채널은, 재생 장치로부터 분리가 용이한 분리형 저장 매체, 재생 장치에 내장된 저장 매체, 또는 네트워크 매체를 포함하는 것이 바람직하다.The external channel preferably includes a removable storage medium that can be easily separated from the playback device, a storage medium built into the playback device, or a network medium.

한편, 본 발명의 다른 분야에 따르면 전술한 기술적 과제는, 전술한 그래픽 디코더를 포함하는 것을 특징으로 하는 재생 장치에 의해 달성된다.On the other hand, according to another field of the present invention, the above-described technical problem is achieved by a reproduction device comprising the above-described graphic decoder.

또한, 상기 재생 장치는 그래픽 디코더를 통해 출력된 그래픽 이미지와, 외부 채널로부터 읽어들인 AV 데이터를 디코딩하여 출력한 동영상을 오버레이하여 하나의 영상을 출력하는 것이 바람직하다.In addition, the reproduction apparatus preferably outputs a single image by overlaying the graphic image output through the graphic decoder and the video output by decoding the AV data read from the external channel.

한편, 본 발명의 다른 분야에 따르면 전술한 기술적 과제는, 전술한 그래픽 출력을 가속하는 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 기록 매체에 의해 달성된다.On the other hand, according to another field of the present invention, the above-described technical problem is achieved by a recording medium which records a program for performing on the computer the method for accelerating the aforementioned graphic output.

이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the present invention.

본 발명에 따른 명령어 기반 그래픽 출력 가속 기능이 포함된 2차원 그래픽 디코더는, 외부 채널로부터 입력된 그래픽 데이터를 해석하여 그래픽 출력 가속 명령어로 변환하고 이를 저장하는 그래픽 데이터 프리젠테이션 엔진과, 저장된 명령어를 통해 그래픽을 화면에 출력하는 2차원 그래픽 출력 가속 명령어 처리기를 포함한다. 특히, 2차원 그래픽 출력 가속 명령어 처리기는 그래픽 출력 처리 성능을 향상시키기 위하여 하드웨어 회로로 구현하는 것이 바람직하다. 또한, 그래픽 출력 가속 명령어는 수평선 그리기 명령어로 구현되는 것이 바람직하다. 이에 따라, 명령어 기반 그래픽 출력 가속 기능을 구현할 수 있으며, 그래픽 출력 처리 성능이 향상된다. 나아가, 외부 채널에서 수평선 그리기 명령어들을 바로 입력받아 그래픽 데이터 프리젠테이션 엔진에 의한 변환을 없이 2차원 그래픽 출력 가속 명령어 처리기에 입력하여 실행하는 방법을 제공할 수도 있다.The two-dimensional graphic decoder including a command-based graphic output acceleration function according to the present invention is a graphic data presentation engine for interpreting graphic data input from an external channel, converting the graphic data into an acceleration command, and storing the same. It includes a two-dimensional graphics output acceleration command processor for outputting graphics to the screen. In particular, the two-dimensional graphics output acceleration command processor is preferably implemented in hardware circuitry to improve the graphics output processing performance. Also, the graphic output acceleration instruction is preferably implemented as a horizontal drawing instruction. Accordingly, the command-based graphic output acceleration function can be implemented, and the graphic output processing performance is improved. Furthermore, a method of directly receiving horizontal drawing commands from an external channel and inputting the horizontal drawing commands to a 2D graphic output acceleration command processor without conversion by the graphic data presentation engine may be provided.

도 2는 본 발명의 바람직한 실시예에 따른 명령어 기반 그래픽 출력 가속 기능이 포함된 2차원 그래픽 디코더가 구비된 영상 재생 장치의 블록도이다.2 is a block diagram of an image reproducing apparatus having a two-dimensional graphics decoder including a command-based graphics output acceleration function according to a preferred embodiment of the present invention.

도 2를 참조하면, 본 발명에 따른 영상 재생 장치(1)는, 독출부(210, 212), 입력제어부(213), 메모리(220, 222 및 224), AV 디코더(240), 2차원 그래픽 디코더(200), 프레임 버퍼 메모리(260) 및 DA 컨버터(270)를 포함한다. Referring to FIG. 2, the image reproducing apparatus 1 according to the present invention includes a reader 210 and 212, an input controller 213, memories 220, 222 and 224, an AV decoder 240, and two-dimensional graphics. The decoder 200 includes a frame buffer memory 260 and a DA converter 270.

독출부(210, 212)는 외부 채널로부터 AV 데이터 또는 그래픽 데이터를 독출한다. 외부 채널은 AV 데이터(Audio-Visual Data)나 그래픽 데이터와 같은 영상 데이터를 판독 할 매체를 가리키며, 광디스크와 같은 기록 매체 또는 인터넷 등과 같은 네트워크 매체를 포함한다. AV 데이터는 MPEG(Moving Picture Experts Group) 등의 표준에 따라 압축 부호화된 동영상 데이터를 말한다. 그래픽 데이터는 HTML과 같은 마크업 문서, JPEG(Joint Photographic Experts Group) 파일이나 PNG(Portable Network Graphics) 파일과 같은 이미지 파일, 매크로미디어사의 플래시(Flash) 파일, 자바, 폰트 데이터 등과 같이 그래픽 데이터를 생성할 수 있는 모든 어플리케이션 리소스를 통칭한다. 입력제어부(214)는 AV 데이터 또는 그래픽 데이터를 별도로 구비된 각 메모리로 로드해준다. AV 데이터와 그래픽 데이터가 하나의 파일로 다중화(multiplexing)되어 있다면, 이를 역다중화(demultiplexing)하는 기능이 포함될 수 있다.The readers 210 and 212 read AV data or graphic data from external channels. The external channel refers to a medium for reading image data such as AV data (Audio-Visual Data) or graphic data, and includes a recording medium such as an optical disc or a network medium such as the Internet. The AV data refers to video data compressed and encoded according to a standard such as a moving picture expert group (MPEG). Graphic data generates graphic data such as markup documents such as HTML, image files such as Joint Photographic Experts Group (JPEG) files or Portable Network Graphics (PNG) files, Flash files from Macromedia, Java, font data, etc. Collectively, all possible application resources. The input controller 214 loads the AV data or the graphic data into each memory provided separately. If the AV data and the graphic data are multiplexed into one file, a function of demultiplexing them may be included.

메모리(220, 222 및 224)는, 제1 메모리(220), 제2 메모리(222) 및 제3 메모리(224)를 포함한다. 제1 메모리(220)는 버퍼 메모리로서 독출부(210,212)와 입력제어부(214)에 의해 외부 채널로부터 판독된 AV 데이터를 저장한다. 제2 메모리(222)는 외부 채널로부터 판독된 그래픽 데이터를 저장한다. 제3 메모리(224)는 후술할 2차원 그래픽 디코더(200)가 사용하는 메모리로서, 그래픽 데이터를 변환한 그래픽 출력 가속 명령어 및 채우기 데이터가 저장된다. 제1 메모리(220), 제2 메모리(222) 및 제3 메모리(224)는 설계자의 의도에 따라, 각각 별도의 메모리로 구현되거나, 또는 통합된 하나의 메모리 내에 주소를 나누어 사용하도록 구현될 수 있다.The memories 220, 222, and 224 include a first memory 220, a second memory 222, and a third memory 224. The first memory 220 stores the AV data read from the external channel by the readout units 210 and 212 and the input control unit 214 as a buffer memory. The second memory 222 stores graphic data read from an external channel. The third memory 224 is a memory used by the two-dimensional graphics decoder 200 which will be described later. The third memory 224 stores graphic output acceleration instructions and fill data obtained by converting graphic data. The first memory 220, the second memory 222, and the third memory 224 may be embodied as separate memories or may be implemented by dividing addresses within a single integrated memory according to a designer's intention. have.

AV 디코더(240)는, 제1 메모리(220)에 저장된 AV 데이터를 디코딩하여 동영상을 출력한다. The AV decoder 240 decodes the AV data stored in the first memory 220 and outputs a moving image.

2차원 그래픽 디코더(200)는, 그래픽 데이터 프리젠테이션 엔진(250) 및 2차원 그래픽 출력 가속 명령어 처리기(252)를 포함한다. 그래픽 데이터 프리젠테이션 엔진(250)은 독출된 그래픽 데이터를 해석하여 그래픽 출력 가속 명령어와 채우기 데이터로 변환하여 제3 메모리(224)에 저장한다. 그래픽 프리젠테이션 엔진은 다양한 형태의 그래픽 데이터를 유연하게 해석할 수 있도록 CPU에서 실행되는 소프트웨어로 구현되는 것이 바람직하다. 이하에서는 "프리젠테이션 엔진(250)"이라고 약칭한다. 2차원 그래픽 출력 가속 명령어 처리부(252)는 제3 메모리(224)에 저장된 그래픽 출력 가속 명령어 및 채우기 데이터를 실행하여 2차원 그래픽을 출력한다. 2차원 그래픽 출력가속 명령어 처리부(252)는 단순화된 그래픽 출력가속 명령어와 채우기 데이터를 빠르게 수행하기 위하여 하드웨어 회로로 구현되는 것이 바람직하다. 이하에서는 "출력가속 명령어 처리기(252)"라고 약칭한다.The two-dimensional graphics decoder 200 includes a graphic data presentation engine 250 and a two-dimensional graphics output acceleration instruction processor 252. The graphic data presentation engine 250 interprets the read graphic data, converts the graphic data into graphic output acceleration instructions and fill data, and stores the converted graphic data in the third memory 224. The graphic presentation engine is preferably implemented in software running on a CPU to flexibly interpret various types of graphic data. Hereinafter referred to as "presentation engine 250". The 2D graphic output acceleration command processor 252 outputs the 2D graphic by executing the graphic output acceleration command and the fill data stored in the third memory 224. The 2D graphic acceleration command processing unit 252 is preferably implemented as a hardware circuit in order to quickly perform the simplified graphic output acceleration command and the fill data. Hereinafter, the output acceleration command processor 252 will be abbreviated.

프레임 버퍼(260)는, AV 디코더(240)로부터 출력되는 동영상과 2차원 그래픽 디코더(200)로부터 출력되는 2차원 그래픽 이미지를 저장한다. 동영상과 2차원 그래픽 이미지는 블랜딩되며, 블랜딩된 디지털 신호는 DA 컨버터(270)를 통해 아날로그 신호로 변환되어 화면에 디스플레이 된다. 이에 따라, DVD 나 DTV와 같은 영상 재생 장치는 동영상과 함께 관련된 2차원 그래픽 이미지를 하나의 화면에 함께 디스플레이하는 인터랙티브 컨텐츠(interactive contents)를 제공할 수 있다. The frame buffer 260 stores a video output from the AV decoder 240 and a 2D graphic image output from the 2D graphic decoder 200. The video and the 2D graphic image are blended, and the blended digital signal is converted into an analog signal through the DA converter 270 and displayed on the screen. Accordingly, an image reproducing apparatus such as a DVD or a DTV may provide interactive contents displaying two-dimensional graphic images associated with a moving image together on one screen.

만약, 종래의 2차원 그래픽 출력 가속기를 사용하는 경우라면, 전술한 그래픽 데이터, 예를 들면 마크업 문서에 포함된 텍스트나 테이블 정보를 해석하여 선이나 사각형, 원 등 2차원 그래픽 출력 가속기가 처리할 수 있는 출력 함수로 변환시켜야 한다. 또한 JPEG 파일 또는 PNG 파일을 해석하여 비트맵을 출력하는 함수를 포함해야 한다. 기타 플래시 파일이나 자바의 곡선, 직선, 또는 폴리곤과 같은 다각형 및 곡선 처리 기능도 포함해야 한다. 이에 따라 종래의 2차원 그래픽 출력 가속기의 하드웨어 구조는 복잡하게 된다.If a conventional two-dimensional graphics output accelerator is used, the two-dimensional graphics output accelerator such as a line, a rectangle, or a circle may be processed by analyzing the graphic data described above, for example, text or table information included in a markup document. Must be converted to an output function. You must also include a function that parses a JPEG or PNG file and outputs a bitmap. You should also include polygon and curve handling features such as other Flash files or Java curves, straight lines, or polygons. Accordingly, the hardware structure of the conventional two-dimensional graphics output accelerator is complicated.

그러나, 본 발명에 따른 2차원 그래픽 디코더(200)는 후술하는 수평선 그리기 명령어를 그래픽 출력 가속 명령어로 사용하여 보다 단순하게 그래픽 출력 가속 기능을 구현할 수 있다. 이하에서는, 본 발명에 따른 2차원 그래픽 디코더(200)를 보다 상세히 살펴본다.However, the 2D graphic decoder 200 according to the present invention may implement a graphic output acceleration function more simply by using a horizontal drawing command described later as a graphic output acceleration command. Hereinafter, the two-dimensional graphics decoder 200 according to the present invention will be described in more detail.

도 3은 본 발명의 바람직한 실시예에 따라 명령어 기반 그래픽 출력 가속 기능을 이용한 영상 재생 과정을 설명한 도면이다.3 is a diagram illustrating an image reproducing process using a command-based graphic output acceleration function according to a preferred embodiment of the present invention.

도 3을 참조하면, 2차원 그래픽 디코더(200)는 외부 채널로부터 독출한 그래픽 데이터(322)를 해석하고, 그래픽 출력 가속 명령어 및 채우기 데이터(324)로 변환하여 제3 메모리에 저장한다. 또한, 저장된 그래픽 출력 가속 명령어와 채우기 데이터를 판독하여 2차원 그래픽 이미지를 출력한다. 이하에서는, 제3 메모리에 저장되는 그래픽 출력 가속 명령어와 채우기 데이터(324)를 통칭하여 "그래픽 출력 가속 명령어 데이터"라고 한다. 화면(280)에는 AV 디코더(240)를 통해 디코딩된 동영상과 2차원 그래픽 디코더(200)를 통해 해석된 2차원 그래픽 이미지가 함께 표시된다.Referring to FIG. 3, the 2D graphic decoder 200 interprets the graphic data 322 read from an external channel, converts the graphic data 322 to the graphic output acceleration command and the fill data 324, and stores the graphic data 322 in the third memory. Also, the stored graphic output acceleration command and the fill data are read to output a two-dimensional graphic image. Hereinafter, the graphic output acceleration command and the fill data 324 stored in the third memory are collectively referred to as "graphic output acceleration command data". The screen 280 displays a video decoded by the AV decoder 240 and a 2D graphic image interpreted by the 2D graphic decoder 200 together.

보다 구체적으로, 프리젠테이션 엔진(250)은 그래픽 데이터(322)를 해석하여 그래픽 출력 가속 명령어 데이터(324)를 생성하여 제3 메모리에 저장하고, 그려야 할 화면에 대한 그래픽 출력 가속 명령어 데이터가 완성되면 해당 화면을 표시하기 위해 페이지 셋업(PAGE SETUP) 신호를 출력가속 명령어 처리부(252)에 보낸다. 페이지 셋업 신호를 받은 출력가속 명령어 처리부(252)는 제3 메모리로부터 저장된 그래픽 출력가속 명령어 데이터(324)를 읽어들이고, 이를 해석하여 실행한다. 그래픽 출력가속 명령어 데이터를 실행하여 만들어진 그래픽 이미지는 동영상과 블랜딩되어 프레임 버퍼에 저장된다. 저장된 2차원 그래픽 이미지와 동영상은 하나의 화면에 오버레이되어 디스플레이 된다.More specifically, the presentation engine 250 interprets the graphic data 322 to generate and store the graphic output acceleration command data 324 in the third memory, and when the graphic output acceleration command data for the screen to be drawn is completed, The PAGE SETUP signal is sent to the output acceleration command processor 252 to display the screen. The output acceleration command processor 252 receiving the page setup signal reads the graphic output acceleration command data 324 stored from the third memory, interprets the execution, and executes the graphic output acceleration command data 324. The graphic image created by executing graphic output acceleration command data is blended with the video and stored in the frame buffer. Stored 2D graphic images and video are displayed on one screen overlayed.

도 4는 도 2에 도시된 2차원 그래픽 출력 가속 명령어 처리부의 구조를 상세히 설명하기 위한 도면이다.4 is a view for explaining in detail the structure of the two-dimensional graphics output acceleration command processor shown in FIG.

도 4를 참조하면, 출력가속 명령어 처리부(252)는 페이지 출력을 위한 래치부(410), 그래픽 명령어 디코더(420)및 렌더링 회로(430)를 포함한다.Referring to FIG. 4, the output acceleration instruction processor 252 includes a latch unit 410 for outputting a page, a graphic instruction decoder 420, and a rendering circuit 430.

래치부(410)는, 페이지 출력 상태를 읽어 활성화(active)된 페이지를 선택한다. 그래픽 명령어 디코더(420)는, 제3 메모리로부터 전술한 프리젠테이션 엔진(250)이 저장한 그래픽 출력가속 명령어 데이터를 읽어들여 해석하고, 선택된 그래픽 출력가속 명령어를 렌더링 회로(430)에서 실행한다. 렌더링 회로(430)에서 출력된 그래픽 이미지는 프레임 버퍼(260)에 동영상과 함께 블랜딩되어 저장되며, 프레임 버퍼에 저장된 2차원 그래픽 이미지와 동영상은 하나의 화면에 오버레이되어 디스플레이 된다.The latch unit 410 reads the page output state and selects an active page. The graphic instruction decoder 420 reads and interprets the graphic output acceleration instruction data stored by the presentation engine 250 from the third memory and executes the selected graphic output acceleration instruction in the rendering circuit 430. The graphic image output from the rendering circuit 430 is blended and stored together with the moving image in the frame buffer 260, and the 2D graphic image and the moving image stored in the frame buffer are overlaid and displayed on one screen.

보다 구체적으로, 도 2, 도 3 및 도 5를 참조하면, 프리젠테이션 엔진(250)은 페이지 셋업을 위하여, 그래픽 데이터를 해석하여 생성한 그래픽 출력가속 명령어 데이터(324)를 제3 메모리(224)에 저장한다. 그래픽 데이터를 그래픽 출력가속 명령어 데이터로 변환하는 상세한 과정은 후술한다. 또한, 프리젠테이션 엔진(250)은 출력가속 명령어 처리부(252)를 통해 프레임 버퍼 메모리로 출력하고자 하는 2차원 그래픽 페이지의 출력 상태를 알기 위해, 페이지 상태 레지스터(PAGE_STATUS_1 또는 PAGE_STATUS_2)를 읽는다. 만약, 읽은 페이지의 상태가 비지(busy)이면, 해당 페이지는 출력가속 명령어 처리부(252)에 의해 화면에 출력 중인 상태이므로, 페이지 상태가 아이들(idle)인 다른 페이지를 선택한다. 또한, 그래픽 명령어를 지시하는 레지스터(PAGE_IP_PTR_1 또는 PAGE_IP_PTR_2)의 값으로, 제3 메모리 내에서의 선택된 페이지의 그래픽 출력가속 명령어 데이터의 시작 주소를 설정한다. 다음, 출력가속 명령어 처리기(252)가 해당 페이지를 화면에 출력하도록 하기 위하여, 선택된 페이지를 페이지 디스플레이 레지스터(PAGE_DISPLAY) 값으로 설정한다. 이러한 일련의 과정을 "페이지 셋업 과정"이라고 한다.More specifically, referring to FIGS. 2, 3, and 5, the presentation engine 250 stores the graphic output acceleration command data 324 generated by interpreting the graphic data for the page set-up, in the third memory 224. Store in A detailed process of converting the graphic data into the graphic output acceleration command data will be described later. In addition, the presentation engine 250 reads the page status register PAGE_STATUS_1 or PAGE_STATUS_2 to know the output state of the two-dimensional graphics page to be output to the frame buffer memory through the output acceleration instruction processor 252. If the read page state is busy, the page is being output on the screen by the output acceleration command processor 252, and thus, another page having the page state idle is selected. Also, the start address of the graphic output acceleration instruction data of the selected page in the third memory is set as a value of a register (PAGE_IP_PTR_1 or PAGE_IP_PTR_2) indicating the graphic instruction. Next, the output acceleration command processor 252 sets the selected page to a page display register (PAGE_DISPLAY) value in order to output the corresponding page to the screen. This series of steps is called the "page setup process".

한편, 출력가속 명령어 처리부(252)에 포함된 래치부(410)는, 상술한 바와 같이 프리젠테이션 엔진(250)에 의해 설정된 레지스터 값을 읽어 출력할 페이지를 선택하고, 선택된 페이지에 해당하는 그래픽 출력가속 명령어 데이터를 제3 메모리로부터 읽어온다. 출력가속 명령어 처리부(252)에 포함된 그래픽 명령어 디코더(420)는, 읽어 들인 그래픽 출력가속 명령어 데이터를 해석하고, 이 중 선택된 그래픽 출력가속 명령어를 렌더링 회로(430)를 통해 실행한다. 렌더링 회로(430)에서 출력된 그래픽 이미지는 프레임 버퍼 메모리(260)에서 동영상과 블랜딩되어 저장되며, 저장된 그래픽 이미지와 동영상은 오버레이되어 화면에 디스플레이 된다. On the other hand, the latch unit 410 included in the output acceleration instruction processing unit 252, as described above, selects a page to read and output the register value set by the presentation engine 250, and outputs a graphic corresponding to the selected page. Read the acceleration instruction data from the third memory. The graphic command decoder 420 included in the output acceleration command processor 252 interprets the read graphic output acceleration command data and executes the selected graphic output acceleration command through the rendering circuit 430. The graphic image output from the rendering circuit 430 is blended with the moving image in the frame buffer memory 260 and stored, and the stored graphic image and the moving image are overlaid and displayed on the screen.

도 5는 2차원 그래픽 디코더의 페이지 셋업 과정을 설명한 도면이다.5 is a diagram illustrating a page setup process of a 2D graphics decoder.

도 4에서 상술한 설명을 기초로 페이지 셋업 과정을 정리하면 다음과 같다. 즉, 프리젠테이션 엔진(250)은, (1) 페이지 상태 레지스터(PAGE_STATUS_1)를 읽고, (2) 아이들(idle) 상태인 페이지의 그래픽 명령어를 지시하는 레지스터(PAGE_IP_PTR_1)를 설정한다. (3) 선택된 페이지를 출력 페이지로서 알려주는 페이지 디스플레이 레지스터(PAGE_DISPLAY)를 설정한다. 페이지 셋업 과정을 통해, 프리젠테이션 엔진(250)은 2차원 그래픽을 그릴 준비를 모두 완료하게 된다. 그 후에는 출력가속 명령어 처리부(252)가 제3 메모리에 저장된 그래픽 출력가속 명령어 데이터를 해석하여 2차원 그래픽을 그린다.A page setup process based on the above description in FIG. 4 is summarized as follows. That is, the presentation engine 250 reads (1) the page status register (PAGE_STATUS_1) and (2) sets the register (PAGE_IP_PTR_1) indicating the graphic instruction of the page in the idle state. (3) Set a page display register (PAGE_DISPLAY) that informs the selected page as an output page. Through the page setup process, the presentation engine 250 is ready to draw two-dimensional graphics. Thereafter, the output acceleration command processor 252 analyzes the graphic output acceleration command data stored in the third memory and draws a two-dimensional graphic.

도 6은 페이지 셋업 과정을 통해 그래픽 출력을 가속화하는 과정을 나타내는 도면이다.6 is a diagram illustrating a process of accelerating graphic output through a page setup process.

도 6을 참조하면, 프리젠테이션 엔진(250) 및 출력가속 명령어 처리부(252)는 2개의 페이지 제어 레지스터를 번갈아 이용하여 프레임 버퍼로 그래픽 데이터를 출력할 수 있다. 즉, 프리젠테이션 엔진(250)은 아이들 상태의 페이지에 대하여 그래픽 출력가속 명령어 데이터를 제3 메모리(260)의 페이지 #1(662) 및 페이지 #2(664)에 번갈아서 미리 저장하여 준비해 두고, 출력가속 명령어 처리부(652)는 페이지 #1(662) 및 페이지 #2(664)에 준비된 그래픽 출력가속 명령어 데이터를 번갈아서 실행하여 그래픽 처리 성능을 향상시킬 수 있다. 또한, 페이지 플립핑(page flipping) 방식의 그래픽 애니메이션을 동작시킬 수 있으며, 이러한 플립핑 페이지는 2개 이상의 복수의 페이지(트리플 플립핑 페이지) 방식으로도 확장될 수 있다.Referring to FIG. 6, the presentation engine 250 and the output acceleration command processor 252 may alternately output the graphic data to the frame buffer using two page control registers. That is, the presentation engine 250 alternately stores and prepares the graphic output acceleration command data in the page # 1 662 and the page # 2 664 of the third memory 260 in advance for the page in the idle state, and outputs the output. The acceleration command processor 652 may alternately execute the graphic output acceleration command data prepared in the page # 1 662 and the page # 2 664 to improve graphic processing performance. In addition, it is possible to operate a page flipping graphics animation, such a flipping page can be extended to two or more pages (triple flipping page) method.

특히, 고려해야 할 사항이 많아 복잡한 논리구조를 가지는 프리젠테이션 엔진(250)의 경우, 다수의 곡선 또는 폴리곤의 출력 등을 지원하기 위하여 소프트웨어를 통해 구현하는 것이 바람직하다. 유연성 있는 그래픽 출력가속 명령어의 조합을 생성하여 저장하기 위해서이다. 한편, 처리 시간이 많이 소요되는 출력가속 명령어 처리부(252)는 하드웨어로 회로로 구현하는 것이 바람직하다. 이와 같이 제3 메모리를 이용하여, 출력될 그래픽의 출력가속 명령어 데이터를 미리 준비하여 저장하는 단계(후술하는 폴리곤 생성과 스캔 컨버전 과정)와, 제3 메모리로부터 저장된 그래픽 출력가속 명령어 데이터를 읽어 2차원 그래픽을 렌더링 하는 단계(후술하는 픽셀 렌더링 과정)를 분리하여 독립적으로 구성함으로써, 복수개의 프레임을 가지는 그래픽 애니메이션의 출력시 발생하는 병목 현상을 줄일 수 있다.In particular, in the case of the presentation engine 250 having a lot of considerations and having a complicated logic structure, it is preferable to implement the software through software to support the output of a plurality of curves or polygons. To create and store a combination of flexible graphical output acceleration instructions. On the other hand, the output acceleration command processor 252, which takes a long time for processing, is preferably implemented as a circuit in hardware. By using the third memory as described above, preparing and storing the output acceleration command data of the graphic to be output (polygon generation and scan conversion process described later), and reading the graphic output acceleration command data stored from the third memory in two dimensions. By separating and rendering the graphics (the pixel rendering process described later) independently, it is possible to reduce the bottleneck that occurs when outputting a graphic animation having a plurality of frames.

또한, 본 발명은 페이지 단위로 그래픽 출력가속 명령어를 실행시키는 경우를 기준으로 설명하였다. 그러나, 이는 단지 일 실시예에 불과할 뿐이며, 2차원 그래픽 디코더(200)의 설계 방식에 따라, 폴리곤이 생성된 후 바로 그래픽 출력가속 명령어로 변환하여 실행시키는 경우와 같이, 객체 단위로 그래픽 출력가속 명령어를 실행시키는 등의 다양한 방법으로 변형하여 구현될 수 있다.In addition, the present invention has been described with reference to the case of executing the graphic output acceleration command in units of pages. However, this is only one embodiment, and according to the design method of the 2D graphic decoder 200, the graphic output acceleration instruction in units of objects, such as when the polygon is generated and converted to the graphic output acceleration instruction immediately after execution, is executed. It can be implemented by modifying in various ways, such as by executing.

이하에서는 전술한 2차원 그래픽 디코더(200)에 의해 실행되는 그래픽 출력 가속 명령어에 대해 상세히 살펴본다. 도 7은 본 발명에 따른 2차원 그래픽 디코더에서 사용되는 그래픽 출력 가속 명령어의 구조의 일 예를 나타내는 도면이다.Hereinafter, a detailed description will be given of a graphic output acceleration command executed by the above-described two-dimensional graphics decoder 200. 7 is a diagram illustrating an example of a structure of a graphic output acceleration command used in a 2D graphic decoder according to the present invention.

도 7을 참조하면, 본 발명의 일 실시예에 따른 그래픽 출력가속 명령어는 64비트의 명령어 구조를 갖는다. 이러한 명령어는 다양한 폴리곤 데이터를 출력하기 위한 명령어들로 구성되는 것이 바람직하다. Referring to FIG. 7, the graphic output acceleration instruction according to an embodiment of the present invention has a 64-bit instruction structure. Such an instruction is preferably composed of instructions for outputting various polygon data.

구체적으로는, 그래픽 출력가속 명령어는 명령어 식별자(CMD)를 포함하며, 파라미터로서 폴리곤의 수직 위치(Y), 수평 시작 위치(STX), 수평 종료 위치(EDX), 그래픽의 그리기 및 채우기 데이터 정보(FPTR) 등을 포함하는 것이 바람직하다. 실행하고자 하는 명령어의 종류에 따라 전술한 파라미터들은 변형되어 사용될 수 있다. 그래픽 출력 가속 명령어의 구체적인 예는 도 10에서 상술한다.Specifically, the graphic acceleration command includes a command identifier (CMD), and as a parameter, the vertical position (Y) of the polygon, the horizontal start position (STX), the horizontal end position (EDX), the drawing and filling data information of the graphic ( FPTR) and the like. The above-described parameters may be modified and used according to the type of command to be executed. A specific example of the graphic output acceleration instruction is described in detail with reference to FIG. 10.

도 8은 폴리곤 데이터로 표현되는 2차원 벡터 그래픽의 일 예를 표시한 도면이다.8 is a diagram illustrating an example of two-dimensional vector graphics represented by polygon data.

도 8을 참조하면, 다양한 폴리곤 데이터가 표시되어 있다. (a)는 삼각형을, (b)는 원을 표시한다. 종래의 그래픽 가속기에 의하면, 삼각형은, (x, y)좌표를 이용한 이동 명령(moveto), 선긋기 명령(lineto), 수평선 긋기 명령(hlineto), 수직선 긋기 명령(vlineto)등을 이용하여 표현할 수 있다. 또한, 원은 (x, y)좌표를 이용한 이동 명령(moveto)과 중간 경유점을 표시한 둥근 선 긋기 명령(curveto) 등을 이용하여 표시할 수 있다. 즉, 종래에는 그래픽 데이터를 여러 가지 기본 도형으로 분류하고 기본 도형 그리기 함수 기능, 예를 들면 이동명령, 선긋기 명령, 수평선 긋기 명령 등을 그래픽 출력 가속기 회로에 추가하여 2차원 그래픽을 빠르게 그리는 그래픽 출력가속 처리방식을 사용하였다. Referring to FIG. 8, various polygon data are displayed. (a) denotes a triangle and (b) denotes a circle. According to the conventional graphic accelerator, a triangle can be expressed using a moveto, a lineto, a horizontal line command, a vertical line draw command, or the like using a (x, y) coordinate. . In addition, the circle may be displayed using a moveto using a (x, y) coordinate and a curve drawing command indicating an intermediate waypoint. That is, in the related art, graphic output acceleration which classifies graphic data into various basic figures and adds basic figure drawing function functions, such as a move command, a line drawing command, and a horizontal line drawing command, to a graphic output accelerator circuit to rapidly draw a two-dimensional graphic. Treatment method was used.

반면, 본 발명에서는 더욱 다양한 도형 그리기 처리를 하기 위하여, 도 9와 같이 프리젠테이션 엔진(250)에서 폴리곤 데이터를 스캔 컨버전(scan conversion)한 후 만들어지는 수평선 그리기 명령에 기초하여 그래픽 출력가속 명령어를 생성하는 방식을 사용한다. On the other hand, in the present invention, in order to perform more various drawing process, as shown in FIG. 9, the graphic output acceleration command is generated based on the horizontal drawing command generated after scanning conversion of polygon data in the presentation engine 250 as shown in FIG. Use the way.

도 9는 도 8에 도시된 2차원 벡터 그래픽을 스캔 컨버전한 결과를 보여주는 도면이다. 도 9에 도시된 바와 같이 삼각형 폴리곤을 스캔 컨버전하여 구해진 복수개의 수평선의 수직 위치(Y), 수평 시작 위치(STX), 수평 종료 위치(EDX), 수평선 채우기 데이터 정보(FPTR) 등이 결정되면, 해당 폴리곤을 그릴 수 있다. 채우기 데이터의 특성에 따라, 속이 채워진 폴리곤을 그릴 수도 있다. 이는 도 8에서 살펴본 종래의 기본 도형 그리기 함수를 이용한 가속 방식보다 상대적으로 훨씬 간단하게 구성된 명령어만 가지고도 복잡한 도형을 빠르게 그릴 수 있다는 장점을 제공한다.FIG. 9 is a diagram illustrating a result of scanning conversion of the 2D vector graphic illustrated in FIG. 8. When the vertical position Y, the horizontal start position STX, the horizontal end position EDX, the horizontal fill data information FPTR, etc. of the plurality of horizontal lines obtained by scan-converting the triangular polygon as shown in FIG. 9 are determined, You can draw the polygon. Depending on the nature of the fill data, you can draw filled polygons. This provides an advantage that a complicated figure can be drawn quickly even with a relatively much simpler instruction than the acceleration method using the conventional basic figure drawing function shown in FIG. 8.

도 10은 본 발명에 따른 그래픽 출력가속 명령어의 일 예를 표시한 도면이다.10 is a diagram illustrating an example of a graphic output acceleration command according to the present invention.

도 10을 참조하면, 본 발명에 따른 그래픽 출력가속 명령어들(즉, 수평선 그리기 명령어들)(324)에는 다음과 같은 것이 포함될 수 있다. 1개의 색상으로 이루어진 픽셀 그리기 명령(Plot), 1개의 색상으로 이루어진 솔리드 선 그리기 명령(SolildL), 타일드 비트맵 선 그리기 명령(TiledL), 클립 비트맵 선 그리기 명령(ClippedL), 선형 그라디언트 선 그리기 명령(LinearGL), 래디얼 그라디언트 선 그리기 명령(RadialGL) 등이 그것이다. Referring to FIG. 10, graphic output acceleration commands (ie, horizontal drawing commands) 324 according to the present invention may include the following. One color pixel drawing command (Plot), one color solid line drawing command (SolildL), tiled bitmap line drawing command (TiledL), clip bitmap line drawing command (ClippedL), linear gradient line drawing The command (LinearGL), the radial gradient line drawing command (RadialGL), and so on.

또한, 수평선을 그리는 명령어의 보조 명령어로 바로 이전에 실행했던 수평선 그리기 명령어의 수평 좌표를, 시작점(STX)과 끝점(EDX)을 증감하여 Y의 수평 좌표가 될 때까지 반복하는 명령어(Repeat), 수평선을 그리는 명령어에 적용되는 비트맵 이미지나 그라디언트 패턴에 어파인 변환 값(M0,M1,M2,M3)나 위치(TX,TY)를 설정해주는 어파인 변환(AffineTranslate) 명령어와, 그려진 수평선의 색 변환(C0,C1,C2,C3,C4,C5,C6,C7)을 위한 컬러 변환(ColorTranslate) 명령어가 그것이다.In addition, the command that repeats the horizontal coordinates of the horizontal drawing command that was executed immediately before as the auxiliary command of the horizontal drawing command, increases and decreases the starting point (STX) and the ending point (EDX) until the horizontal coordinate of Y (Repeat), An AffineTranslate command that sets the affine translation values (M0, M1, M2, M3) or position (TX, TY) in the bitmap image or gradient pattern that is applied to the horizon drawing command, and the color of the drawn horizon. This is the ColorTranslate command for the transformations (C0, C1, C2, C3, C4, C5, C6, C7).

나아가, 명령어의 해석과 실행을 제어하는 명령으로서, 지정된 주소의 위치로 분기하여 수평선 그리기 명령어를 실행하는 분기 명령어(Link)와 명령 실행을 중단하는 종료 명령어(End) 그리고 일정 기간 동안 명령의 실행을 지연하는 실행 지연 명령어(Nop)가 그것이다.Furthermore, as a command to control the interpretation and execution of the command, a branch instruction (Link) for branching to a designated address location and executing a horizontal drawing instruction, an end instruction (End) for interrupting execution of the instruction, and execution of the instruction for a certain period of time. That is the delayed execution delay instruction (Nop).

또한, 2차원 AV 영상과 합성되기 위해 사용되는 비디오 출력 제어 명령어인 AV 데이터의 출력 영상의 위치, 크기 및 레이어를 지정하는 명령어(VideoPlace)와, 비디오 화면 영역을 제외한 배경의 색상 및 비디오 신호가 없는 상태일 때의 비디오 화면 영역의 색상을 지정하는 명령어(SetColor)가 그것이다.In addition, a command (VideoPlace) for designating the position, size, and layer of an output image of AV data, which is a video output control command used to be synthesized with a two-dimensional AV image, and has no background color and video signal except for a video screen area. That's the command (SetColor) that specifies the color of the video screen area when it's in a state.

전술한 그래픽 가속 명령어와 그 파라미터와의 관계에 대한 일 실시예가 도 10에 도시되어 있다. 즉, Y는 풀리곤 수직 위치를, STX는 수평 시작 위치를, EDX는 수평 종료 위치를 나타내며, FPTR은 그래픽의 그리기 및 채우기 데이터 지시 정보를 나타낸다. 특히, FPTR는 비트맵 데이터, 그라디언트 패턴, 색상 지시 정보 및 여러 가지 보조 데이터를 갖는 데이터 구조의 주소를 지시하도록 한다. 따라서, 복잡한 명령어의 실행을 단순화시킬 수 있다. 보조 데이터에는 비트맵의 크기, 비트맵 데이터의 색상 컬러 테이블, 어파인 변환 값, 컬러 변환 값 등이 포함된다.An embodiment of the relationship between the aforementioned graphic acceleration instruction and its parameters is shown in FIG. 10. That is, Y represents the unfolded vertical position, STX represents the horizontal start position, EDX represents the horizontal end position, and FPTR represents the drawing and filling data indication information of the graphic. In particular, the FPTR is used to indicate the address of a data structure having bitmap data, gradient patterns, color indication information, and various auxiliary data. Thus, the execution of complex instructions can be simplified. The auxiliary data includes the size of the bitmap, the color color table of the bitmap data, the affine conversion value, the color conversion value, and the like.

물론, 도 10에 도시된 수평선 그리기로 구성된 그래픽 출력가속 명령어(324)는 다양한 형태로 변형하여 구현될 수 있다. 예를 들면, 도 9와 같이 수평 방향으로 스캔 컨버전하여 수평선 그리기로 구성된 명령어를 사용하는 대신, 수직 방향으로 스캔 컨버전하여 수직선 그리기로 구성된 명령어를 사용하도록 구현할 수도 있다.Of course, the graphic output acceleration command 324 composed of a horizontal line drawing shown in FIG. 10 may be implemented in various forms. For example, instead of using a scan conversion in a horizontal direction to use a horizontal line drawing command as shown in FIG. 9, a scan conversion in a vertical direction may be used to use a command configured to draw a vertical line.

보다 구체적으로, 도 11a는 그래픽 출력 가속 명령어와 채우기 데이터(324)의 일 예를 보여주는 도면이고, 도 11b는 도 11a에 도시된 그래픽 출력 가속 명령어와 채우기 데이터를 실행하였을 때 표시되는 그래픽 이미지를 나타내는 도면이다. More specifically, FIG. 11A illustrates an example of the graphic output acceleration command and the fill data 324, and FIG. 11B illustrates the graphic image displayed when the graphic output acceleration command and the fill data shown in FIG. 11A are executed. Drawing.

도 11a를 참조하면, 어떤 폴리곤을 표현하기 위하여, 먼저 도 10에서 상술한 솔리드 선 그리기(SolidL) 명령이 수행된다. 수직 위치 0에서부터 시작하여, 수평 시작위치 0부터 수평 종료위치 100까지 101 픽셀에 해당하는 솔리드 선을 그린다. 이때, 솔리드 선 그리기 명령의 FPTR 파라미터가 지시하는 2000H 주소의 채우기 데이터를 적용한다. 즉, 투명도(opacity 또는 transparency) 100%의 빨강 색으로 101개의 픽셀을 채우게 된다. 다음으로 반복 명령어(Repeat)에 의해 수직 위치가 100이 될 때까지 같은 동작, 즉 솔리드 선 그리기 명령을 반복 수행한다. 세 번째로 다시 솔리드 선 그리기 명령에 따라, 수직 위치 0에 대하여 수평 시작위치 50과 수평 종료위치 50까지 1픽셀에 해당하는 선을 그리게 된다. 이 때, FPTR 파라미터가 지시하는 2004H 주소의 채우기 데이터가 적용되며, 투명도 100%의 파랑 색으로 1개의 픽셀을 채운다. 네 번째로 반복 명령에 의해 솔리드 선 그리기 명령을 수직위치 50이 될 때까지 반복한다. 다섯 번째 명령에 의해 수직위치 50부터 100이 될 때까지 솔리드 선 그리기 명령을 반복하고 종료한다. 도 11a에 도시된 명령어 세트를 모두 실행한 결과가 도 11b에 도시되어 있다.Referring to FIG. 11A, in order to represent a polygon, first, a solid line drawing (SolidL) command described above with reference to FIG. 10 is performed. Draw a solid line corresponding to 101 pixels starting at vertical position 0, from horizontal start position 0 to horizontal end position 100. At this time, the fill data of the 2000H address indicated by the FPTR parameter of the solid line drawing command is applied. That is, it fills 101 pixels with a red color of 100% transparency or transparency. Next, the command repeats the same operation, that is, drawing a solid line, until the vertical position reaches 100. Third, according to the command for drawing a solid line again, a line corresponding to 1 pixel is drawn from the horizontal start position 50 and the horizontal end position 50 with respect to the vertical position 0. At this time, the fill data of the 2004H address indicated by the FPTR parameter is applied, and one pixel is filled with a blue color having 100% transparency. Fourth, the Repeat command repeats the Draw Solid Lines command until it reaches the vertical position of 50. The fifth command repeats the Draw Solid Line command until it reaches a vertical position of 50 to 100. The result of executing all of the instruction set shown in FIG. 11A is shown in FIG. 11B.

도 12a 내지 도 12e는 본 발명에 따른 그래픽 출력 가속 명령어인 수평선 그리기 명령어를 구현한 코드의 일 예이다.12A to 12E are examples of code implementing a horizontal drawing instruction, which is a graphic output acceleration instruction, according to the present invention.

도 12a의 SolildL() 함수는 1개의 색상으로 이루어진 솔리드 선 그리기 명령어의 설명 코드이다. 도 12b의 TiledL()함수는 타일드 비트맵 선 그리기 명령어의 설명 코드이며, 도 12c의 ClippedL() 함수는 클립 비트맵 선 그리기 명령어의 설명 코드이다. 또한, 도 12d의 LinearGL() 함수는 선형 그라디언트 선 그리기 명령어의 설명 코드이며, 도 12e의 RadialGL() 함수는 래디얼 그라디언트 선 그리기 명령어의 설명 코드이다.The SolildL () function of FIG. 12A is an explanatory code of a solid line drawing command composed of one color. The TiledL () function of FIG. 12B is a description code of a tiled bitmap line drawing command, and the ClippedL () function of FIG. 12C is a description code of a clip bitmap line drawing command. In addition, the LinearGL () function of FIG. 12D is an explanatory code of a linear gradient line drawing command, and the RadialGL () function of FIG. 12E is an explanatory code of a radial gradient line drawing command.

도 13a 내지 도 13c는 본 발명에 따른 채우기 데이터의 일 예를 보여주는 도면이다. 도 13a는 솔리드 채우기의 예이며, 도 13b는 점차 색이 변화하는 그라디언트 채우기의 일 예이며, 도 13c는 화면을 동일한 이미지로 반복하여 채우는 비트맵 채우기와 클립 채우기의 일 예이다.13A to 13C illustrate an example of fill data according to the present invention. FIG. 13A is an example of a solid fill, and FIG. 13B is an example of a gradient fill whose color changes gradually, and FIG. 13C is an example of a bitmap fill and a clip fill that repeatedly fill a screen with the same image.

도 14는 본 발명의 응용 예로서, 본 발명에 따른 2차원 그래픽과 AV 데이터가 디코딩된 동영상을 블랜딩하여 한 화면에 표시한 예를 나타낸다. FIG. 14 illustrates an application example of two-dimensional graphics and AV data decoded according to an exemplary embodiment of the present invention, blended and displayed on one screen.

도 14를 참조하면, MPEG으로 압축 부호화된 AV 데이터가 디코딩되어 출력된 동영상(1401)과 그래픽 가속 명령어를 기반으로 한 2차원 그래픽 디코더(200)에 의해 출력된 그래픽 이미지(1402)가 블랜딩되어 한 화면에 표시되어 있다. 이와 같이, 본 발명에 따른 DVD 나 DTV와 같은 영상 재생 장치는 동영상과 함께 관련된 2차원 그래픽 이미지를 함께 디스플레이하는 인터랙티브 컨텐츠를 제공할 수 있다. 특히, 고속 애니메이션을 포함하는 2차원 그래픽이 제공될 수 있다. 또한, 제3 메모리에 저장되는 그래픽 출력가속 명령어를 이용하여, 프리젠테이션 엔진(250)과 출력가속 명령어 처리부(252)의 기능이 각각 분리되어 독립적으로 동작하게 된다. 이에 따라, 그래픽 출력시 렌더링 과정에 필요한 CPU의 부담을 줄일 수 있으며, 그래픽 출력 성능이 향상된다.Referring to FIG. 14, a moving picture 1401 in which AV data compressed and encoded by MPEG is decoded and output, and a graphic image 1402 output by the 2D graphic decoder 200 based on a graphic acceleration command are blended. It is displayed on the screen. As such, an image reproducing apparatus such as a DVD or a DTV according to the present invention may provide interactive contents displaying two-dimensional graphic images associated with a moving image together. In particular, two-dimensional graphics can be provided that include high speed animation. In addition, the functions of the presentation engine 250 and the output acceleration command processor 252 may be separated from each other by using the graphic output acceleration command stored in the third memory. Accordingly, the burden on the CPU required for the rendering process during graphic output can be reduced, and the graphic output performance is improved.

본 발명에 따른 AV 데이터나 그래픽 데이터와 같은 영상 데이터를 저장하는 외부 채널로는, 하드디스크 드라이브와 같이 영상 재생 장치에 내장된 저장 매체와, 광디스크 또는 메모리 카드와 같이 착탈이 용이한 분리형(removable) 저장 매체가 포함된다. 광디스크의 경우 CD-ROM, DVD, Bluray-Disc 등이 포함될 수 있으며, 이후 개발되는 광디스크가 포함될 수 있다. 또한, 인터넷과 같이 네트워크를 통해 컨텐츠를 제공하는 네트워크 매체가 포함된다. As an external channel for storing video data such as AV data or graphic data according to the present invention, a removable storage medium such as an optical disk or a memory card and a storage medium built in a video reproducing apparatus such as a hard disk drive are easily removable. Storage media are included. In the case of an optical disc, a CD-ROM, a DVD, a Bluray-Disc, etc. may be included, and an optical disc developed afterwards may be included. Also included is a network medium that provides content over a network, such as the Internet.

또한, 본 발명의 영상 재생 장치는 하나의 집적회로로 구현될 수도 있으며, 각 기능 블록들이 여러 개의 시스템에 나뉘어 구현되고 네트웍으로 연결된 분산 시스템으로 구현될 수도 있다. In addition, the image reproducing apparatus of the present invention may be implemented as a single integrated circuit, or each functional block may be implemented by being divided into a plurality of systems and a distributed system connected by a network.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.The invention can also be embodied as computer readable code on a computer readable recording medium. Computer-readable recording media include all kinds of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical disk, and the like, and may also include those implemented in the form of carrier waves (eg, transmission over the Internet). do. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.The above description is only one embodiment of the present invention, and those skilled in the art may implement the present invention in a modified form without departing from the essential characteristics of the present invention. Therefore, the scope of the present invention should not be limited to the above-described examples, but should be construed to include various embodiments within the scope equivalent to those described in the claims.

전술한 바와 같이 본 발명에 따르면, 명령어 기반의 2차원 그래픽 디코더 또는 이를 포함하는 영상 재생 장치는 수평선 그리기를 이용한 그래픽 출력가속 명령어를 이용하여 2차원 그래픽 이미지의 출력을 가속화함으로써, 향상된 출력 프레임 레이트로 2차원 그래픽 이미지를 제공할 수 있으며, 디코딩된 동영상과 함께 블랜딩하여 인터랙티브 컨텐츠를 제공할 수 있다. 특히, 종래의 기본 도형 그리기 함수 기능을 이용한 그래픽 가속기에 비하여, 상대적으로 구조가 간단한 수평선 그리기로 구성된 그래픽 출력가속 명령어를 기반으로 2차원 그래픽 데이터를 디코딩함으로써, 2차원 그래픽 출력 가속기의 하드웨어 회로 구현 방법이 단순화되고 설계 비용이 적어지며, 하드웨어 회로의 크기를 줄일 수 있어 가격 대 성능비가 좋아지는 장점을 제공한다.As described above, according to the present invention, a command-based two-dimensional graphic decoder or an image reproducing apparatus including the same accelerates the output of a two-dimensional graphic image by using a graphic output acceleration command using a horizontal line drawing, thereby improving the output frame rate. Two-dimensional graphic images may be provided, and interactive content may be provided by blending the decoded video together. In particular, a hardware circuit implementation method of a 2D graphics output accelerator by decoding 2D graphics data based on a graphic output acceleration command composed of a horizontal line drawing having a relatively simple structure, compared to a graphic accelerator using a conventional basic drawing function. This simplification, lower design cost, and reduced hardware circuit size offer a price / performance ratio.

나아가, 저속의 CPU를 가진 영상 재생 장치에서도 컴퓨터에서 지원되는 것과 같은 빠른 출력과 다양한 곡선 표현이 포함되어 있는 2차원 그래픽 애니메이션을 제공할 수 있다.Furthermore, even a video reproducing apparatus with a low speed CPU can provide a two-dimensional graphic animation including fast output and various curve representations as supported by a computer.

도 1a 내지 1c는 종래의 그래픽 출력 가속 기술을 설명하는 참고 도면,1A to 1C are reference drawings illustrating a conventional graphic output acceleration technique;

도 2는 본 발명의 바람직한 실시예에 따른 명령어 기반 그래픽 출력 가속 기능이 포함된 2차원 그래픽 디코더가 구비된 영상 재생 장치의 블록도, 2 is a block diagram of an image reproducing apparatus having a two-dimensional graphics decoder including a command-based graphics output acceleration function according to a preferred embodiment of the present invention;

도 3은 본 발명의 바람직한 실시예에 따라 명령어 기반 그래픽 출력 가속 기능을 이용한 영상 재생 과정을 설명한 도면,3 is a view illustrating an image playback process using a command-based graphic output acceleration function according to a preferred embodiment of the present invention;

도 4는 도 2에 도시된 2차원 그래픽 출력 가속 명령어 처리기의 구조를 상세히 설명하기 위한 도면, 4 is a view for explaining in detail the structure of the two-dimensional graphics output acceleration command processor shown in FIG.

도 5는 2차원 그래픽 디코더의 페이지 셋업 과정을 설명한 도면, 5 is a diagram illustrating a page setup process of a 2D graphics decoder;

도 6은 페이지 셋업 과정을 통해 그래픽 출력을 가속화하는 과정을 나타내는 도면, 6 is a diagram illustrating a process of accelerating graphic output through a page setup process;

도 7은 본 발명에 따른 2차원 그래픽 디코더에서 사용되는 그래픽 출력 가속 명령어의 구조의 일 예를 나타내는 도면, 7 is a diagram illustrating an example of a structure of a graphics output acceleration instruction used in a two-dimensional graphics decoder according to the present invention;

도 8은 폴리곤 데이터로 표현되는 2차원 벡터 그래픽의 일 예를 표시한 도면, 8 is a view showing an example of two-dimensional vector graphics represented by polygon data;

도 9는 도 8에 도시된 2차원 벡터 그래픽을 스캔 컨버전한 결과를 보여주는 도면, FIG. 9 is a diagram illustrating a result of scanning conversion of the 2D vector graphic illustrated in FIG. 8;

도 10은 본 발명에 따른 그래픽 출력 가속 명령어의 일 예를 표시한 도면.10 is a diagram showing an example of a graphic output acceleration instruction according to the present invention;

도 11a는 그래픽 출력 가속 명령어와 채우기 데이터의 일 예를 보여주는 도면,11A is a diagram illustrating an example of a graphic output acceleration command and fill data;

도 11b는 도 11a에 도시된 그래픽 출력 가속 명령어와 채우기 데이터를 실행하였을 때 표시되는 그래픽 이미지를 나타내는 도면,FIG. 11B is a diagram illustrating a graphic image displayed when the graphic output acceleration command and fill data shown in FIG. 11A are executed; FIG.

도 12a 내지 도 12e는 본 발명에 따른 그래픽 출력 가속 명령어인 수평선 그리기 명령어를 구현한 코드의 일 예,12A to 12E are examples of codes implementing a horizontal drawing instruction, which is a graphic output acceleration instruction according to the present invention;

도 13a 내지 도 13c는 본 발명에 따른 채우기 데이터의 일 예를 보여주는 도면,13A to 13C illustrate an example of fill data according to the present invention;

도 14는 본 발명의 응용 예로서, 본 발명에 따른 2차원 그래픽과 AV 데이터가 디코딩된 동영상을 블랜딩하여 한 화면에 표시한 예를 나타낸다.FIG. 14 illustrates an application example of two-dimensional graphics and AV data decoded according to an exemplary embodiment of the present invention, blended and displayed on one screen.

Claims (24)

그래픽 출력을 가속하는 방법에 있어서, In the method of accelerating the graphics output, 그래픽 데이터를 해석하여 단순화된 적어도 하나의 가속 명령어 데이터로 변환하여 저장하는 단계; 및Interpreting the graphic data and converting the graphic data into at least one accelerated instruction data to be stored; And 저장된 적어도 하나의 가속 명령어 데이터를 실행하여 그래픽 이미지를 출력하는 단계를 포함하며,Outputting a graphic image by executing stored at least one acceleration command data; 상기 각 단계는 독립적으로 수행되는 것을 특징으로 하는 방법.Wherein each step is performed independently. 제1항에 있어서, The method of claim 1, 상기 가속 명령어 데이터는, 상기 그래픽 데이터를 해석하여 폴리곤을 생성하고 생성된 폴리곤을 스캔 컨버전한 결과 얻어진 적어도 하나의, 상기 그래픽 이미지를 화면에 빠르게 그려주기 위한 수평선 그리기 명령어 또는 수직선 그리기 명령어를 포함하는 것을 특징으로 하는 방법.The acceleration command data may include a horizontal drawing command or a vertical drawing command for rapidly drawing the graphic image on the screen, the at least one obtained by analyzing the graphic data to generate a polygon and scan-convert the generated polygon. How to feature. 제1항에 있어서, The method of claim 1, 상기 변환하여 저장하는 단계는, 다양한 상기 그래픽 데이터를 해석하기 위해 별도의 소프트웨어를 통해 수행되는 것을 특징으로 하는 방법.The converting and storing may be performed through separate software for interpreting the various graphic data. 제1항에 있어서, The method of claim 1, 상기 변환하여 저장하는 단계는, 변환된 적어도 하나의 상기 가속 명령어를 소정의 메모리 영역에 저장하는 것을 특징으로 하는 방법.The converting and storing may include storing the converted at least one acceleration command in a predetermined memory area. 제1항에 있어서, The method of claim 1, 상기 그래픽 이미지를 출력하는 단계는, 상기 그래픽 이미지의 출력 속도를 높이기 위해 별도의 하드웨어 회로를 통해 수행되는 것을 특징으로 하는 방법.Outputting the graphic image is performed through a separate hardware circuit to increase the output speed of the graphic image. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 픽셀을 그리는 명령어를 포함하는 것을 특징으로 하는 방법. And the acceleration instruction data includes instructions for drawing a pixel. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 한가지 색상으로 수평선을 그리는 명령어를 포함하는 것을 특징으로 하는 방법. The acceleration command data includes a command for drawing a horizontal line in one color. 제9항에 있어서, The method of claim 9, 상기 가속 명령어 데이터는, 비트맵 이미지 패턴이 적용된 수평선을 그리는 명령어를 포함하는 것을 특징으로 하는 방법. The acceleration instruction data may include instructions for drawing a horizontal line to which a bitmap image pattern is applied. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 선형 그라디언트 이미지 패턴이 적용된 수평선을 그리는 명령어를 포함하는 것을 특징으로 하는 방법. The acceleration instruction data includes instructions for drawing a horizontal line to which a linear gradient image pattern is applied. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 래디얼 그라디언트 이미지 패턴이 적용된 수평선을 그리는 명령어를 포함하는 것을 특징으로 하는 방법. The acceleration command data includes a command for drawing a horizontal line to which a radial gradient image pattern is applied. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 이전에 실행했던 수평선 그리기 명령어의 수직 좌표 또는 수평 좌표를 증감하여 이전 명령어를 소정의 수평선의 좌표까지 반복하는 명령어를 포함하는 것을 특징으로 하는 방법.The acceleration instruction data may include instructions for increasing or decreasing a vertical coordinate or a horizontal coordinate of a horizontal drawing instruction that was previously executed, and repeating the previous instruction to a coordinate of a predetermined horizontal line. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 수평선을 그리는 명령어에 적용되는 채우기 데이터로서, 비트맵 이미지나 그라디언트 패턴의 크기나 위치를 조정해 주는 어파인 변환(AffineTranslate) 명령어를 포함하는 것을 특징으로 하는 방법.The acceleration command data is fill data applied to a command for drawing a horizontal line, and includes an AffineTranslate command for adjusting the size or position of a bitmap image or a gradient pattern. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 수평선에 그려지는 픽셀들의 색을 변환하기 위한 색 변환(ColorTranslate) 명령어를 포함하는 것을 특징으로 하는 방법.The acceleration instruction data includes a color translate instruction for converting colors of pixels drawn on a horizontal line. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 다른 주소의 상기 가속 명령어 데이터 위치로 분기하여 해당 주소의 상기 가속 명령어를 실행하는 분기 명령어를 포함하는 것을 특징으로 하는 방법.And the acceleration instruction data includes a branch instruction for branching to the acceleration instruction data position at another address to execute the acceleration instruction at the corresponding address. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 상기 그래픽 이미지와 블랜딩되어 출력되는 동영상의 출력 위치 및 레이어를 지정하는 명령어를 포함하는 것을 특징으로 하는 방법. The acceleration command data may include a command for designating an output position and a layer of a moving image which is blended with the graphic image and output. 제2항에 있어서, The method of claim 2, 상기 가속 명령어 데이터는, 상기 그래픽 이미지와 블랜딩되어 출력되는 동영상 영역을 제외한 배경 영역의 색상 및 비디오 신호가 없는 상태일 때의 동영상 영역의 색상을 지정하는 명령어를 포함하는 것을 특징으로 하는 방법.The acceleration command data may include a command for designating a color of a background area excluding a moving picture area blended with the graphic image and a color of a moving picture area when there is no video signal. 외부 채널을 통해 판독된 그래픽 데이터를 디코딩하여 단순화된 적어도 하나의 가속 명령어 데이터로 변환하여 소정의 메모리 영역에 저장하는 가속 명령어 변환부; 및An acceleration command conversion unit to decode the graphic data read through the external channel, convert the graphic data into at least one accelerated command data, and store the converted graphic data in a predetermined memory area; And 저장된 적어도 하나의 가속 명령어 데이터를 실행하여 그래픽 이미지를 출력하는 가속 명령어 처리부를 포함하며,An acceleration command processor for outputting a graphic image by executing at least one stored acceleration command data, 상기 가속 명령어 변환부 및 상기 가속 명령어 처리부는 상기 소정의 메모리 영역을 이용하여 각각 독립적으로 동작하는 것을 특징으로 하는 그래픽 디코더.And the acceleration command conversion unit and the acceleration command processing unit operate independently of each other using the predetermined memory area. 제17항에 있어서, The method of claim 17, 상기 가속 명령어 변환부는, 상기 그래픽 데이터를 해석하여 폴리곤을 생성하고, 상기 그래픽 데이터를 생성된 폴리곤의 스캔 컨버전 결과 얻어진 적어도 하나의 가속 명령어 데이터로 변환하여, 상기 소정의 메모리 영역에 저장하며,The acceleration command conversion unit may generate a polygon by interpreting the graphic data, convert the graphic data into at least one acceleration command data obtained as a result of scan conversion of the generated polygon, and store the result in the predetermined memory area. 상기 가속 명령어 데이터는, 상기 그래픽 이미지를 화면에 빠르게 그려주기 위한 수평선 그리기 명령어 또는 수직선 그리기 명령어를 포함하는 것을 특징으로 하는 그래픽 디코더.The acceleration command data may include a horizontal line drawing command or a vertical line drawing command for quickly drawing the graphic image on the screen. 제17항에 있어서, The method of claim 17, 상기 가속 명령어 변환부는, 다양한 상기 그래픽 데이터를 해석하기 위해 별도의 소프트웨어로 구현되는 것을 특징으로 하는 그래픽 디코더.The acceleration command conversion unit is a graphics decoder, characterized in that implemented in separate software to interpret the various graphic data. 제17항에 있어서, The method of claim 17, 상기 가속 명령어 처리부는, 상기 그래픽 이미지의 출력 속도를 높이기 위해 별도의 하드웨어 회로로 구현되는 것을 특징으로 하는 그래픽 디코더.The acceleration command processor is a graphics decoder, characterized in that implemented in a separate hardware circuit to increase the output speed of the graphic image. 제17항에 있어서, The method of claim 17, 상기 외부 채널은, 재생 장치로부터 분리가 용이한 분리형 저장 매체, 재생 장치에 내장된 저장 매체, 또는 네트워크 매체를 포함하는 것을 특징으로 하는 그래픽 디코더.And the external channel comprises a removable storage medium that can be easily separated from a playback device, a storage medium built into the playback device, or a network medium. 제17항에 있어서,The method of claim 17, 상기 그래픽 디코더를 포함하는 것을 특징으로 하는 재생 장치. And the graphic decoder. 제22항에 있어서, The method of claim 22, 상기 그래픽 디코더를 통해 출력된 그래픽 이미지와, 상기 외부 채널로부터 읽어들인 AV 데이터를 디코딩하여 출력한 동영상을 오버레이하여 하나의 영상을 출력하는 것을 특징으로 하는 재생 장치.And outputting a single image by overlaying a graphic image output through the graphic decoder and a video output by decoding and outputting AV data read from the external channel. 제1항에 있어서, The method of claim 1, 상기 그래픽 출력을 가속하는 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 기록 매체.A recording medium having recorded thereon a program for performing on the computer a method of accelerating the graphic output.
KR1020040082818A 2003-10-28 2004-10-15 2-dimensional graphic decoder including graphic display accelerating function based on commands, graphic display accelerating method therefor and reproduction apparatus KR20050040712A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004312958A JP2005135415A (en) 2003-10-28 2004-10-27 Graphic decoder including command based graphic output accelerating function, graphic output accelerating method therefor, and image reproducing apparatus
EP04256609A EP1528512A3 (en) 2003-10-28 2004-10-27 Graphic decoder, image reproduction apparatus and method for graphic display acceleration based on commands
US10/974,972 US20050116946A1 (en) 2003-10-28 2004-10-28 Graphic decoder including graphic display accelerating function based on commands, graphic display accelerating method therefor and image reproduction apparatus
TW093132716A TW200521885A (en) 2003-10-28 2004-10-28 Graphic decoder including graphic display accelerating function based on commands, graphic display accelerating method therefor and image reproduction apparatus
CN200410087092.8A CN1612163A (en) 2003-10-28 2004-10-28 Graphic decoder, image reproduction apparatus and method for graphic display acceleration based on commands

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020030075580 2003-10-28
KR20030075580 2003-10-28

Publications (1)

Publication Number Publication Date
KR20050040712A true KR20050040712A (en) 2005-05-03

Family

ID=37242463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040082818A KR20050040712A (en) 2003-10-28 2004-10-15 2-dimensional graphic decoder including graphic display accelerating function based on commands, graphic display accelerating method therefor and reproduction apparatus

Country Status (2)

Country Link
KR (1) KR20050040712A (en)
TW (1) TW200521885A (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9578345B2 (en) 2005-03-31 2017-02-21 Euclid Discoveries, Llc Model-based video encoding and decoding
US8902971B2 (en) 2004-07-30 2014-12-02 Euclid Discoveries, Llc Video compression repository and model reuse
US9743078B2 (en) 2004-07-30 2017-08-22 Euclid Discoveries, Llc Standards-compliant model-based video encoding and decoding
US9532069B2 (en) 2004-07-30 2016-12-27 Euclid Discoveries, Llc Video compression repository and model reuse
CN101939991A (en) 2007-01-23 2011-01-05 欧几里得发现有限责任公司 Computer method and apparatus for processing image data
EP2106663A2 (en) 2007-01-23 2009-10-07 Euclid Discoveries, LLC Object archival systems and methods
EP2106664A2 (en) 2007-01-23 2009-10-07 Euclid Discoveries, LLC Systems and methods for providing personal video services
CA2739482C (en) 2008-10-07 2017-03-14 Euclid Discoveries, Llc Feature-based video compression
CA2942336A1 (en) 2014-03-10 2015-09-17 Euclid Discoveries, Llc Continuous block tracking for temporal prediction in video encoding
US10091507B2 (en) 2014-03-10 2018-10-02 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
US10097851B2 (en) 2014-03-10 2018-10-09 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding

Also Published As

Publication number Publication date
TW200521885A (en) 2005-07-01

Similar Documents

Publication Publication Date Title
US7417645B2 (en) Markup language and object model for vector graphics
CN111193876B (en) Method and device for adding special effect in video
US20100060652A1 (en) Graphics rendering system
CN101421761A (en) Visual and scene graph interfaces
CN111161392B (en) Video generation method and device and computer system
CN108959392B (en) Method, device and equipment for displaying rich text on 3D model
EP1528512A2 (en) Graphic decoder, image reproduction apparatus and method for graphic display acceleration based on commands
KR20050040712A (en) 2-dimensional graphic decoder including graphic display accelerating function based on commands, graphic display accelerating method therefor and reproduction apparatus
KR102292789B1 (en) Display apparatus and control method thereof
CN112711729A (en) Rendering method and device based on page animation, electronic equipment and storage medium
KR20150106846A (en) Improvements in and relating to rendering of graphics on a display device
JP3462566B2 (en) Image generation device
US9047680B2 (en) Information processing apparatus, information processing method, and data structure of content files
CN112700519A (en) Animation display method and device, electronic equipment and computer readable storage medium
JP7460641B2 (en) Apparatus and method for generating a light intensity image - Patents.com
CN115391692A (en) Video processing method and device
JP4143613B2 (en) Drawing method and drawing apparatus
KR20170101575A (en) Method and apparatus for converting virtual reality contents
JP6891811B2 (en) Information processing equipment, information processing methods, and programs
JP3735325B2 (en) Image generator
JP3238567B2 (en) Image generation method and apparatus
WO2021245875A1 (en) Image compositing device and image compositing method
JP2006523337A (en) Method for managing the depiction of graphics animation for display, and receiver and system for implementing the method
JP5752323B2 (en) Display device and computer
JP2006031160A (en) Graphic object processing method

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination