KR20090111134A - Graphic accelerator integrating 2D and 3D, Application process comprising the same graphic accelerator, and graphic accelerating method in same application - Google Patents
Graphic accelerator integrating 2D and 3D, Application process comprising the same graphic accelerator, and graphic accelerating method in same application Download PDFInfo
- Publication number
- KR20090111134A KR20090111134A KR1020080036745A KR20080036745A KR20090111134A KR 20090111134 A KR20090111134 A KR 20090111134A KR 1020080036745 A KR1020080036745 A KR 1020080036745A KR 20080036745 A KR20080036745 A KR 20080036745A KR 20090111134 A KR20090111134 A KR 20090111134A
- Authority
- KR
- South Korea
- Prior art keywords
- module
- graphics
- unit
- blending
- processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
Description
본 발명은 그래픽 가속기에 관한 것으로, 특히, 2D 및 3D 그래픽 처리를 통합적으로 수행할 수 있는 2D 및 3D 통합 그래픽 가속기에 관한 것이다.The present invention relates to a graphics accelerator, and more particularly, to a 2D and 3D integrated graphics accelerator capable of performing 2D and 3D graphics processing integrally.
일반적으로 3D 그래픽 처리과정은 멀티미디어 환경을 구축하기 위한 가장 핵심적인 부분이고, 보다 현실감 있는 3D 영상을 지원하기 위하여 OpneGL/ES와 같은 고성능의 전용 3D 그래픽 가속기를 필요로 한다.In general, 3D graphics processing is the most essential part of building a multimedia environment, and requires a high performance dedicated 3D graphics accelerator such as OpneGL / ES to support more realistic 3D images.
3D 그래픽 가속기는 크게 지오메트리 처리(geometry processing) 및 렌더링(rendering)으로 나뉜다. 지오메트리 처리는 주로 3D 좌표계의 물체를 시점에 따라 변환하고, 2차원 좌표계로 투영처리하는 과정을 말하고, 렌더링은 2차원 좌표계의 이미지에 색깔 값을 결정하여 프레임 버퍼에 저장하는 과정을 말한다. 이러한 지오메트리 처리부와 렌더링부는 성능을 높이기 위하여 내부의 각 모듈들이 파이프 라인화되어 있다.3D graphics accelerators are largely divided into geometry processing and rendering. Geometry processing mainly refers to a process of converting an object of a 3D coordinate system according to a viewpoint and projecting it into a 2D coordinate system, and rendering refers to a process of determining a color value in an image of a 2D coordinate system and storing it in a frame buffer. In order to increase performance, the geometry processing unit and the rendering unit are each pipelined.
한 개의 프레임에 대하여 입력되는 모든 3D 데이터에 대한 수행이 끝난 후에 프레임 버퍼에 저장된 색깔 값은 디스플레이로 보내지게 된다.After the execution of all 3D data input for one frame is finished, the color value stored in the frame buffer is sent to the display.
3D 그래픽 가속기는 입력되는 프리미티브(primitive)의 처리순서에 따라 객체순서(object order) 방식과 영상순서(image order) 방식으로 나뉜다. The 3D graphics accelerator is divided into an object order method and an image order method according to an input primitive processing order.
객체순서 방식은 입력되는 프리미티브의 순서대로 기하학 처리 과정과 렌더링 처리 과정을 거쳐서 디스플레이로 보내는 방식으로, 프리미티브 당 기하학 처리 과정과 렌더링 과정을 파이프 라인화 할 수 있기 때문에 고성능화에 유리하다. 그에 따라, 현재의 대부분의 고성능 3D 그래픽 가속기가 이 객체순서 방식을 채용하고 있다. Object ordering method is a method of sending primitives and rendering process in order of input primitives, which is advantageous for high performance because it can pipeline the geometric process and rendering process per primitive. Accordingly, most current
영상순서 방식은 입력되는 프리미티브를 순서대로 처리하는 것이 아니라 영상의 위치 순서에 따라 해당 위치에 속해 있는 프리미티브를 처리하는 방식으로, 고성능화보다는 저가화에 유리한 방식이다.The image ordering method is a method of processing primitives belonging to a corresponding position according to the position order of an image rather than sequentially processing input primitives, which is advantageous in terms of cost reduction rather than high performance.
여기서 프리미티브는 점, 선, 다면체(polygon)가 해당하며, 일반적인 대부분의 응용분야에서는 다면체가 프리미티브들 중에 대다수를 차지하고 있으며, 하드웨어 가속기는 이러한 다면체를 고속으로 처리하도록 구성되어 있다.Primitives include points, lines, and polygons, and in most common applications, polyhedrons make up the majority of primitives, and hardware accelerators are configured to process these polyhedrons at high speed.
한편, 2D 그래픽 처리에 주로 이용되고 있는 OpenVG와 같은 벡터 그래픽 가속기는 주어진 2차원이나 3차원 공간에 선이나 형상을 배치하고 일련의 명령어들이나 수학적 표현을 통해 디지털 이미지를 만든다.On the other hand, vector graphics accelerators such as OpenVG, which are mainly used for 2D graphics processing, arrange lines or shapes in a given two-dimensional or three-dimensional space and create digital images through a series of instructions or mathematical expressions.
현재 이러한 2D 벡터 그래픽 가속기는 이동통신 단말기 등에서 3D 그래픽 가속기와 별도로 내장되고, 또한 3D 그래픽 가속기에 사용되는 콘텐츠들과는 전혀 다 른 콘텐츠들을 사용하여 구동되고 있다. Currently, the 2D vector graphics accelerator is embedded separately from the 3D graphics accelerator in a mobile communication terminal and is driven using contents that are completely different from those used in the 3D graphics accelerator.
그러나 2D 벡터 그래픽 가속기 및 3D 그래픽 가속기의 파이프 라인을 살펴보면, 전처리 구간에 사용되는 모듈들, 픽셀 버퍼에 최종 스캔 라인된 내용을 컬러로 채우는 부분의 모듈 등의 동일 기능을 수행하는 모듈들이 공통적으로 포함되어 있음을 알 수 있다. 그에 따라, 종래의 각각의 그래픽 가속기를 포함한 이동통신 단말기 등에서는 그래픽 가속을 위한 프로세서(GPU)의 칩 설계 면적 넓고, 또한 각각의 제어부와 콘텐츠의 사용으로 인한 메모리, 캐쉬, 프레임 버퍼 등의 낭비가 심하다는 문제가 있었다.However, when looking at the pipelines of 2D vector graphics accelerators and 3D graphics accelerators, modules that perform the same functions, such as modules used in preprocessing sections and modules that fill the final scan line with color in the pixel buffer, are commonly included. It can be seen that. Accordingly, in the conventional mobile communication terminal including each graphic accelerator, the chip design area of the processor (GPU) for graphic acceleration is wide, and waste of memory, cache, frame buffer, etc. due to the use of each controller and content is eliminated. There was a serious problem.
본 발명이 해결하고자 하는 과제는 2D(Vector) 그래픽 가속기와 3D 그래픽 가속기가 동일하게 사용하는 지오메트리 처리 구간을 하나의 처리기로 합치고, 렌더링 처리부분에서도 동일한 파이프 라인을 찾아 합침으로써, 설계면적을 최소화하며, 또한, 최종 프레임 버퍼를 공유하여 메모리 낭비를 줄일 수 있고, 일원화된 명령어 처리기를 통해 두 콘텐츠를 통합하여 처리할 수 있는 2D 및 3D 통합 그래픽 가속기, 그 가속기를 포함한 어플리케이션 프로세서 및 그 어플리케이션 프로세서에서의 그래픽 가속방법을 제공하는 데에 있다.The problem to be solved by the present invention is to minimize the design area by combining the geometry processing section that the 2D (Vector) graphics accelerator and the 3D graphics accelerator use the same in one processor, and find and combine the same pipeline in the rendering process. In addition, 2D and 3D integrated graphics accelerators that can share the final frame buffer, reduce memory waste, and integrate and process both content through a unified instruction processor, the application processor including the accelerator and the application processor It is to provide a graphic acceleration method.
즉, 본 발명의 과제는 이원화된 그래픽 가속 처리기를 하나의 통합된 어플리케이션 프로세서에서 운용하는 것을 그 목적으로 하여, 각각의 그래픽 가속기에서 사용되는 연산기, 메모리 및 명령어 제어기를 하나로 합치고, 또한 최종 픽셀을 생성하는 렌더링 부분 중 동일한 연산을 처리하는 트라이앵글 셋업, 프로젝션 프로세싱, 및 리얼러제이션 등을 통합적으로 운영할 수 있는 구조를 제시하는 데에 있다.In other words, the object of the present invention is to combine the arithmetic, memory and instruction controllers used in each graphics accelerator into one, and to generate the final pixel, for the purpose of operating the binary graphics acceleration processor in one integrated application processor. The present invention aims to present a structure that can integrally operate triangle setup, projection processing, and realization that handle the same operation among rendering parts.
상기 과제를 달성하기 위하여, 본 발명은 삼차원 파이프 라인(Pipe-Line) 구조로 형성된 전처리부인 지오메트리(Geometry) 엔지; 및 삼차원 파이프 라인 구조로 형성되고 2D(Vector) 그래픽 가속을 위한 그라디언트(Gradient) 모듈 및 패스 제너레이션(Path Generation) 모듈을 구비한 후처리부인 렌더링(Rendering) 엔진;를 포함하는 통합 엔더링 엔진인 것을 특징으로 하는 2D 및 3D 통합 그래픽 가속기 를 제공한다.In order to achieve the above object, the present invention is a geometry (Geometry) engine which is a preprocessing unit formed in a three-dimensional pipe (Pipe-Line) structure; And a rendering engine which is a post-processing unit formed of a three-dimensional pipeline structure and having a gradient module and a path generation module for 2D (Vector) graphics acceleration. Features 2D and 3D integrated graphics accelerators.
본 발명에 있어서, 상기 지오메트리 엔진은 월드 트랜스폼(World Transform) 모듈, 라이트닝(Lightening) 모듈, 뷰 트랜스폼(View Transform) 모듈, 프로젝션 트랜스폼(Projection Transform) 모듈 및 클립핑(Clipping) 모듈을 포함하고, 상기 렌더링 엔진은 상기 그라디언트 모듈, 상기 패스 제너레이션 모듈, 트라이앵글 셋업(Triangle Setup) 모듈, 스판 프로세싱(Span Processing) 모듈 및 리얼라이제이션(Realization) 모듈을 포함하며, 상기 지오메트리 엔진의 상기 뷰 트랜스폼(View Transform) 모듈, 상기 프로젝션 트랜스폼 모듈 및 상기 클립핑 모듈과, 상기 렌더링 엔진의 상기 트라이앵글 셋업 모듈, 상기 스판 프로세싱 모듈 및 상기 리얼라이제이션 모듈이 상기 2D 그래픽 가속에 함께 이용될 수 있다.In the present invention, the geometry engine includes a World Transform module, a Lightening module, a View Transform module, a Projection Transform module, and a Clipping module. The rendering engine includes the gradient module, the pass generation module, a triangle setup module, a span processing module, and a realization module, wherein the view transformation of the geometry engine is performed. A transform module, the projection transform module and the clipping module, the triangle setup module of the rendering engine, the span processing module and the realization module may be used together for the 2D graphics acceleration.
상기 렌더링 엔진은, 상기 리얼라이제이션 모듈로서, 2D 및 3D 그래픽 처리에 공통으로 이용되는 맵핑(Mapping) 모듈, 블렌딩(Blending) 모듈, 및 래스터라이저(Rasterization) 모듈을 포함할 수 있다.The rendering engine may include a mapping module, a blending module, and a rasterization module commonly used for the 2D and 3D graphics processing as the realization module.
상기 맵핑 모듈은 텍스쳐 및 라이트 처리를 수행하는 텍스쳐(Texture) 맵핑부 및 라이트(Light) 맵핑부를 포함하고, 상기 그라디언트 모듈은 비트맵 방식 그래픽 처리를 하는 비트맵(Bitmap)부 및 직선 및 원형 그라디언트(색변화) 처리를 하는 직선및원형(Linear/Radial)부를 포함하며, 블렌딩 모듈은 텍스쳐, 이미지 및 알파(Alpha) 블렌딩 처리를 수행하는 텍스쳐 블렌딩부, 이미지 블렌딩부 및 알파 블렌딩부를 포함하며, 상기 래스터라이저 모듈은 알파값 및 젯-뎁스(Z-depth) 값을 테스트하는 알파 테스트부 및 뎁스 테스트부와 2D 벡터 이미지 보간을 위한 이미지 인터폴레이션(Image Interpolation)부를 포함할 수 있다.The mapping module may include a texture mapping unit and a light mapping unit that perform texture and light processing, and the gradient module may include a bitmap unit and a straight and circular gradient (eg, a bitmap type graphic processing). And a linear / radical portion for color change processing, and the blending module includes a texture blending portion, an image blending portion, and an alpha blending portion for performing texture, image, and alpha blending, and the raster The riser module may include an alpha tester and a depth tester for testing an alpha value and a Z-depth value, and an image interpolation part for 2D vector image interpolation.
본 발명에 있어서, 상기 3D 그래픽을 처리하는 경우, 상기 매핑 모듈의 텍스쳐 및 라이트 매핑부, 상기 브렌딩 모듈의 텍스쳐 블렌딩부, 상기 래스터라이저 모듈의 알파 테스트부 및 뎁스 테스트부, 상기 블렌딩 모듈의 이미지 블렌딩 및 알파 블렌딩부를 거치면서 생성된 픽셀 데이터를 픽셀 캐쉬에 저장한 후, 최종적으로 프레임 버퍼에 상기 픽셀 데이터를 저장하며, 상기 2D 그래픽을 처리하는 경우, 상기 라이트 맵핑부는 이용하지 않으며, 상기 뎁스 테스트부 대신 상기 이미지 인터폴레이션부를 이용하고, 상기 이미지 블렌딩부는 상기 이미지 인터폴레이션부 및 상기 그라디언트 모듈부에 연동하여 상기 이미지 블렌딩을 수행할 수 있다.In the present invention, when processing the 3D graphics, the texture and light mapping unit of the mapping module, the texture blending unit of the blending module, the alpha test unit and depth test unit of the rasterizer module, the image of the blending module After storing the pixel data generated through the blending and alpha blending unit in the pixel cache, and finally storing the pixel data in the frame buffer, and processing the 2D graphics, the light mapping unit is not used, the depth test The image interpolation unit may be used instead of the unit, and the image blending unit may perform the image blending in conjunction with the image interpolation unit and the gradient module unit.
한편, 상기 패스 제너제이션 모듈은 상기 3D 그래픽 가속기의 트라이앵글 모듈에 셋업에 대응하여 모듈별 솔리드(Solid), 이미지, 및 패턴에 대한 2D 패스 데이터를 생성할 수 있다. 또한, 상기 2D 및 3D 통합 그래픽 가속기 2D 및 3D 그래픽 가속을 위한 명령어들이 저장되는 레지스터 셋을 더 포함할 수 있다.Meanwhile, the pass generation module may generate 2D pass data for solids, images, and patterns for each module in response to the setup of the triangle module of the 3D graphics accelerator. In addition, the 2D and 3D integrated graphics accelerator may further include a register set for storing instructions for 2D and 3D graphics acceleration.
본 발명은 또한 상기 과제를 달성하기 위하여, 2D 및 3D 그래픽 가속을 위한 명령어 및 데이터를 처리하는 명령어 처리부; 상기 2D 및 3D 그래픽 가속을 위한 명령어들이 저장되는 레지스터 셋; 및 상기 명령어 처리부의 명령을 받아 상기 2D 및 3D 그래픽 가속을 통합적으로 처리하는 2D 및 3D 통합 그래픽 가속기;를 포함하는 통합 그래픽 가속 어플리케이션 프로세서를 제공한다.The present invention also comprises an instruction processing unit for processing instructions and data for 2D and 3D graphics acceleration to achieve the above object; A register set for storing instructions for accelerating the 2D and 3D graphics; And a 2D and 3D integrated graphics accelerator configured to receive the command of the command processor to integrally process the 2D and 3D graphics acceleration.
본 발명에 있어서, 상기 명령어 처리부는 AHB(Advanced High-performance Bus) 슬레이브(Slave)로부터 전달된 명령어들의 집합인 컴맨드 코어(Command Core), 상기 명령어들을 파싱(parsing)하는 컴맨드 파서(Command Parser)를 포함하고, 상기 레지스터 셋는 2D 또는 3D 그래픽 가속 여부에 대한 상태를 저장하는 S-레지스터를 포함할 수 있다.In the present invention, the command processing unit is a command core that is a set of instructions delivered from an advanced high-performance bus (AHB) slave, and a command parser that parses the commands. The register set may include an S-register that stores a state of whether 2D or 3D graphics is accelerated.
상기 2D 및 3D 통합 그래픽 가속기는 앞서 전술한 바와 같이 3D 그래픽 가속기를 기본으로 하여, 상기 2D 그래픽 가속에만 이용되는 2D 그래픽 처리용 모듈들을 더 포함할 수 있다. 이러한 상기 2D 및 3D 통합 그래픽 가속기는 상기 레지스터 셋 내의 S 레지스터에 저장된 상태 정보에 따라, 3D 또는 2D 그래픽 가속을 수행하고, 상기 2D 그래픽 가속의 경우, 상기 3D 그래픽 가속과 동일한 기능들은 상기 3D 그래픽 가속기 내의 모듈을 함께 이용하여 처리하고, 다른 기능들은 상기 2D 처리용 모듈을 이용하여 처리할 수 있다.The 2D and 3D integrated graphics accelerators may further include modules for 2D graphics processing used only for the 2D graphics acceleration, based on the 3D graphics accelerator as described above. The 2D and 3D integrated graphics accelerator performs 3D or 2D graphics acceleration according to the state information stored in the S register in the register set, and in the case of the 2D graphics acceleration, the same functions as the 3D graphics acceleration are the 3D graphics accelerator. Inner modules can be processed together, and other functions can be processed using the 2D processing module.
상기 2D 처리용 모듈들은 전술한 바와 같이 그라디언트(Gradient) 모듈 및 패스 제너레이션(Path Generation) 모듈을 포함할 수 있고, 만약 상기 2D 및 3D 통합 그래픽 가속기가 고라우드 세이딩(Gouraud Shading) 모듈을 포함하는 경우에는 상기 2D 그래픽 가속 중 그라디언트 수행은 상기 고라우드 세이딩 모듈을 이용하여 수행할 수도 있다.The 2D processing modules may include a gradient module and a path generation module as described above, and if the 2D and 3D integrated graphics accelerators include a Gouraud Shading module In this case, the gradient may be performed during the 2D graphic acceleration by using the go-loud shading module.
한편, 본 발명에 있어서, 상기 그래픽 가속 통합 어플리케이션 프로세서는 동종의 데이터는 동일 캐쉬(Cache) 저장하여 상기 2D 및 3D 그래픽 가속 처리에 이용할 수 있다.Meanwhile, in the present invention, the graphic acceleration integrated application processor may store the same data in the same cache and use the 2D and 3D graphics acceleration processes.
더 나아가 본 발명은 상기 과제를 달성하기 위하여, 하드웨어(H/W) 프로세서의 아이들(idle) 상태를 체크하는 단계; 2D 및 3D 통합 그래픽 가속기를 2D 또는 3D 그래픽 가속 모드로 초기화하는 단계; 2D 또는 3D 그래픽 가속을 수행하는 단계; 및 상기 2D 및 3D 통합 그래픽 가속기를 종료하는 단계;를 포함하는 통합 그래픽 가속방법을 제공한다.Furthermore, in order to achieve the above object, the present invention comprises the steps of checking the idle state of the hardware (H / W) processor; Initializing the 2D and 3D integrated graphics accelerator to a 2D or 3D graphics acceleration mode; Performing 2D or 3D graphics acceleration; And terminating the 2D and 3D integrated graphics accelerators.
본 발명에 있어서, 상기 초기화 단계 전에 상기 2D 및 3D 통합 그래픽 가속기에서 실행될 그래픽 종류를 판단하는 단계를 더 포함하고, 상기 가속 수행단계는, 상기 2D 또는 3D 그래픽 실행에 이용되는 캐쉬의 더티 체크 단계; 그래픽 처리의 전처리인 지오메트리 엔진을 실행하는 단계; 및 상기 그래픽 처리의 후처리인 렌더링 엔진을 실행하는 단계;를 포함할 수 있다. 또한, 상기 초기화 단계 이후 프레임 버퍼에 대한 클리어 오퍼레이션을 별개로 수행할 수 있다.The method may further include determining a type of graphic to be executed in the 2D and 3D integrated graphic accelerators before the initializing step, wherein the performing of the acceleration comprises: dirty checking a cache used to execute the 2D or 3D graphic; Executing a geometry engine that is a preprocess of graphics processing; And executing a rendering engine that is a post-process of the graphic processing. In addition, after the initialization step, the clear operation on the frame buffer may be separately performed.
상기 프로세서는 2D 및 3D 그래픽 가속을 위한 명령어 및 데이터를 처리하는 명령어 처리부, 상기 2D 및 3D 그래픽 가속을 위한 명령어들이 저장되는 레지스터 셋, 및 상기 명령어 처리부의 명령을 받아 상기 2D 및 3D 그래픽 가속을 통합적으로 처리하는 상기 2D 및 3D 통합 그래픽 가속기를 포함하며, 상기 가속수행 단계에서 가속 수행은 상기 명령어 처리부로부터 전달된 명령어에 따라 수행할 수 있다.The processor may receive an instruction processor for processing instructions and data for 2D and 3D graphics acceleration, a register set for storing instructions for 2D and 3D graphics acceleration, and an instruction processor for the 2D and 3D graphics acceleration. Including the 2D and 3D integrated graphics accelerator to process, the acceleration in the acceleration step may be performed according to the command transmitted from the command processor.
또한, 상기 2D 및 3D 통합 그래픽 가속기는 3D 그래픽 가속기를 기본으로 하여, 상기 2D 그래픽 가속에만 이용되는 2D 처리용 모듈들을 포함하고, 상기 2D 그래픽 가속의 경우, 상기 3D 그래픽 가속과 동일한 기능들은 상기 3D 그래픽 가속기 내의 모듈을 함께 이용하여 처리하고, 다른 기능들은 상기 2D 처리용 모듈을 이용하여 처리할 수 있다.In addition, the 2D and 3D integrated graphics accelerator, based on the 3D graphics accelerator, includes 2D processing modules used only for the 2D graphics acceleration, in the case of the 2D graphics acceleration, the same functions as the 3D graphics acceleration, the 3D The modules in the graphics accelerator can be processed together, and other functions can be processed using the 2D processing module.
본 발명에 따른 2D 및 3D 통합 그래픽 가속기, 그 가속기를 포함한 어플리케이션 프로세서 및 그 어플리케이션 프로세서에서의 그래픽 가속방법은 2D 및 3D 그래픽 처리가 동일하게 적용될 수 있는 전처리부와 후처리부가 통합적으로 설계됨으로써, 칩 설계 면적을 줄일 수 있고, 메모리 공유 활용도를 높일 수 있다.According to the present invention, a 2D and 3D integrated graphics accelerator, an application processor including the accelerator, and a graphics acceleration method in the application processor are designed by integrating a preprocessor and a post processor to which 2D and 3D graphics processing are applied in the same manner, thereby providing a chip. It can reduce the design area and increase the utilization of memory sharing.
또한, 그래픽 가속 처리를 일원화된 구조로 변경함으로써 어플리케이션 프로세서 내의 리소스(resource)의 낭비도 줄일 수 있다.In addition, by changing the graphics acceleration process to a unified structure, the waste of resources in the application processor can be reduced.
한편, 공통된 파이프 라인을 이용하여, 상이한 두 콘텐츠의 결과를 하나의 프레임 버퍼에 저장함으로써, 향후 2D 그래픽 벡터 콘텐츠와 3D 그래픽 콘텐츠가 혼합된 통합 콘텐츠에 대한 개발을 가능케 한다.On the other hand, by using a common pipeline, by storing the results of the two different content in one frame buffer, it is possible to develop the integrated content mixed with 2D graphic vector content and 3D graphic content in the future.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 이하의 설명에서 어떤 구성 요소가 다른 구성 요소에 연결된다고 기술될 때, 이는 다른 구성 요소와 바로 연결될 수도 있지만, 그 사이에 제3의 구성 요소가 개재될 수도 있다. 또한, 도면에서 각 구성 요소의 구조나 크기는 설명의 편의 및 명확성을 위하여 과장되었고, 설명과 관계없는 부분은 생략되었다. 도면상에서 동일 부호는 동일한 요소를 지칭한다. 한편, 사용되는 용어들은 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다.Hereinafter, with reference to the accompanying drawings will be described a preferred embodiment of the present invention; In the following description, when a component is described as being connected to another component, it may be directly connected to another component, but a third component may be interposed therebetween. In addition, in the drawings, the structure or size of each component is exaggerated for convenience and clarity of explanation, and parts irrelevant to the description are omitted. Like numbers refer to like elements in the figures. On the other hand, the terms used are used only for the purpose of illustrating the present invention and are not used to limit the scope of the invention described in the meaning or claims.
도 1은 3D 그래픽 가속기와 2D 그래픽 가속기의 동일 파이프 라인(Pipe Line) 구조를 설명하기 위한 블럭도로서, 3D 그래픽 가속기의 파이프 라인을 기본 으로 하여 2D 벡터 가속을 위해 동일하게 사용될 수 있는 부분을 표시(직사각형의 2점 쇄선 부분)하였다.FIG. 1 is a block diagram illustrating the same pipe line structure of a 3D graphics accelerator and a 2D graphics accelerator, and shows a part that can be equally used for 2D vector acceleration based on the pipeline of the 3D graphics accelerator. (Two-dot chain line part of a rectangle).
도 1을 참조하면, 3D 그래픽 가속기는 전처리부인 지오메트리 엔진(Geometry Engine, A)과 후처리부인 렌더링 엔진(Rendering Engine, B)을 포함한다. Referring to FIG. 1, the 3D graphics accelerator includes a geometry engine A which is a preprocessor and a rendering engine B which is a postprocessor.
지오메트리 엔진(A)은 월드 트랜스폼(World Transform) 모듈(10), 라이트닝(Lightening) 모듈(20), 뷰 트랜스폼(View Transform) 모듈(30), 프로젝션 트랜스폼(Projection Transform) 모듈(40) 및 클립핑(Clipping) 모듈(50)을 포함한다.The geometry engine A includes a World
월드 트랜스폼 모듈(10)은 모델의 정점들을 모델 공간(Model Space)에서 월드 공간(World Space)으로 리오리엔팅(reorienting)하고, 라이트닝 모듈(20)은 광원에서 나오는 빛이 꼭짓점에 미치는 영향을 벡터 연산하며, 뷰 트랜스폼 모듈(30)은 월드 공간을 카메라의 뷰(view)를 중심으로 한 뷰 공간(View Space)으로 변환한다. 프로젝션 트랜스폼 모듈(40)은 깊이에 대한 정보를 가지고 뷰 공간을 투영 공간(Projection Space)로 변환하며, 클립핑 모듈(50)은 스크린 상에 보이지 않게 될 부분의 정점들을 제거한다.The
렌더링 엔진(B)은 트라이앵글 셋업(Triangle Setup) 모듈(60), 스판 프로세싱(Span Processing) 모듈(70) 및 리얼라이제이션(Realization) 모듈(80)을 포함한다. 한편, 본 발명의 2D 및 3D 통합 그래픽 가속기에는 렌더링 엔진(B)으로 2D 그래픽만을 위한 그라디언트(Gradient) 모듈 및 패스 제너레이션(Path Generation) 모듈을 더 포함하나, 그에 대해서는 도 3에서 좀더 상세히 설명한다.The rendering engine B includes a
트라이앵글 셋업 모듈(60)은 각 물체의 기본 좌표값을 셋업한다. 즉, 메모리 부터 읽어온 삼차원 좌표 정보를 기준으로 면적과 델타값(delta, 기울기) 값을 구한다. 스판 프로세싱 모듈(70)은 트라이앵글 셋업을 거쳐 생성된 물체의 기울기와 길이를 계산하며, 리얼라이제이션 모듈(80)은 최종 물체의 색상 정보 및 각 물체의 평균값을 보간하여 출력한다. 한편, 이러한 기능을 렌더링(Rendering) 처리라고 하여 리얼라이제이션 모듈(80)을 렌더링 모듈이라고 부르기도 하고, 또한 그에 근거하여 후처리부 전체를 렌더링 엔진이라고 한다. 이러한 리얼라이제이션 모듈(80)을 통해 연산되어 출력된 결과, 즉 최종 물체에 대한 데이터는 최종 프레임 버퍼에 저장한다.
지오메트리 엔진(A) 중 뷰 트랜스폼, 프로젝션 트랜스폼 및 클립핑 모듈(30, 40, 50)은 2D 벡터 그래픽 가속기에서도 동일하게 적용되는 부분이다. 그에 따라, 3D 그래픽 가속기의 지오메트리 엔진(A) 내의 월드 트랜스폼 및 라이트닝 모듈(10, 20)을 제외한 다른 모듈들은 2D 벡터 그래픽 가속에 동일하게 이용할 수 있다.The view transform, projection transform, and clipping
다만 전처리 과정 중 지오메트리 계산에 사용되는 초월함수 및 매트릭스 연산은 기존의 삼차원 그래픽 처리와 동일함으로 자세한 설명은 생략한다. 한 예로 2D 벡터 가속기의 매트릭스 연산은 삼차원 그래픽 처리에서 사용하는 방식과 동일한 열-기반(Column based) 매트릭스 처리기를 사용한다. 즉 3x3 매트릭스 연산기로서, 1,2,3,5,6,7 항의 요소만 사용하며, 9, 10, 11항에는 0,0,1의 값을 이용한다. 이와 같이 2D 벡터 가속기의 매트릭스 연산은 소프트웨어에서 필요한 부분만 취하고 나머지 항은 기본 값으로 레지스터에 셋하는 과정으로 이뤄질 수 있다.However, the transcendental functions and matrix operations used in the geometry calculation during the preprocessing are the same as the conventional three-dimensional graphic processing, and thus detailed description thereof is omitted. As an example, the matrix operation of the 2D vector accelerator uses the same column-based matrix processor as that used in three-dimensional graphics processing. That is, as a 3x3 matrix operator, only the elements of 1,2,3,5,6,7 terms are used, and the values of 0,0,1 are used for the 9, 10, and 11 terms. As such, the matrix operation of the 2D vector accelerator can be accomplished by taking only the necessary parts of the software and setting the rest of the terms in registers as default values.
한편, 렌더링 엔진(B)의 각 모듈들도 역시 2D 벡터 그래픽 가속에 공통적으 로 사용될 수 있다. 렌더링 엔진(B)에 대한 설명은 도 3부분에서 좀더 자세히 설명한다.Meanwhile, each module of the rendering engine B may also be commonly used for 2D vector graphics acceleration. The rendering engine B will be described in more detail later with reference to FIG. 3.
따라서, 3D 그래픽 가속기를 기본으로 하여 그 3D 그래픽 가속기에 2D 벡터 그래픽 가속에만 사용되는 모듈들을 포함시킴으로써, 2D 및 3D 통합 그래픽 가속기를 구현할 수 있다. 통합 그래픽 가속기에 포함되는 2D 벡터 그래픽용 모듈들도 기존 모듈들과 파이프 라인 구조를 형성하여야 함은 물론이다.Thus, by incorporating modules used only for 2D vector graphics acceleration on the basis of the 3D graphics accelerator, 2D and 3D integrated graphics accelerators can be realized. The modules for 2D vector graphics included in the integrated graphics accelerator also need to form a pipeline structure with the existing modules.
한편, 이러한 2D 및 3D 통합 그래픽 가속기는 그래픽 공유 가속 처리를 위한 어플리케이션 프로세서 내로 수용되어 이동통신 단말기에 내장되며, 각각의 처리를 담당하는 소프트웨어 드라이버(Software Driver)에 의해 관리되도록 할 수 있다. 이러한 각 소프트웨어 드라이버는 그 특성에 해당되는 API인 OpenGL/ES와 OpenVG의 표준을 따라 EGL(Embedded Graphic Library)과 연동되어 통합된 프레임 버퍼를 이용하도록 할 수 있다. Meanwhile, the 2D and 3D integrated graphics accelerators may be accommodated in an application processor for graphic sharing acceleration processing, embedded in a mobile communication terminal, and managed by a software driver in charge of each process. Each of these software drivers can use the integrated frame buffer by interworking with the Embedded Graphic Library (EGL) according to the standards of OpenGL / ES and OpenVG, which are APIs corresponding to the characteristics.
결국, 본 발명에 따른 2D 및 3D 그래픽 통합 가속기는 서로 다른 특성을 가진 그래픽 가속을 동일 처리기로 공유하여 구동하게 함으로써, 설계 면적을 줄일 수 있고, 동시에 프레임 버퍼를 함께 이용하게 함으로써, 메모리 효율을 높일 수 있다.As a result, the 2D and 3D integrated graphics accelerator according to the present invention can share the graphics acceleration with different characteristics to the same processor to drive the design area, and simultaneously use the frame buffer to increase the memory efficiency Can be.
도 2a는 본 발명의 일 실시예에 따른 통합 그래픽 가속 어플리케이션 프로세서에 대한 블럭도이다.2A is a block diagram of an integrated graphics acceleration application processor according to an embodiment of the present invention.
도 2a를 참조하면, 본 실시예에 따른 통합 그래픽 가속 어플리케이션 프로세서는 2D 및 3D 통합 그래픽 가속기(100), 명령어 처리부(200), 및 레지스터 셋(300)을 포함한다.Referring to FIG. 2A, the integrated graphics acceleration application processor according to the present embodiment includes a 2D and 3D integrated
2D 및 3D 통합 그래픽 가속기(100)는 지오메트리 엔진(120)과 렌더링 엔진(140)을 포함한다. 지오메트리 엔진(120)은 도 1의 지오메트리 엔진(120)과 동일하다. 한편 렌더링 엔진(140)의 경우, 앞서 도 1의 렌더링 엔진에 2D 벡터 그래픽 가속을 위한 모듈들이 더 포함된다. 이러한 렌더링 엔진(140)에 대해서는 도 3부분에서 좀더 상세히 설명한다.The 2D and 3D integrated
명령어 처리부(200)는 AHB(Advanced High-performance Bus) 슬레이브(Slave)로부터 전달된 데이터 및 명령어들을 실행하는 컴맨드 코어(Command Core. 220), 및 상기 명령어들을 파싱(parsing)하는 컴맨드 파서(Command Parser, 240)를 포함한다. 이러한 명령어 처리부(200)는 통합 그래픽 가속기(100)를 제어하는 데이터 및 명령어들을 처리한다. 여기서, AHB 슬레이브는 암 코어(ARM Core)와 어플리케이션 프로세서 간에 연결된 고성능 신호처리를 위한 버스로서, 어플리케이션 프로세서를 제어하는 명령어와 데이터를 전달한다. 전달받은 데이터와 명령어들은 각각의 레지스터에 저장되거나 혹은 명령어 처리부(200)의 컴맨드 코어(22) 엔진으로 전달되고 컴맨드 파서(240)를 통해 파싱된다.The
한편, 레지스터 셋(300)으로는 2D 및 3D 그래픽 가속을 위한 명령어들이 저장된다. 한편, 이러한 레지스터 셋(300)은 2D 및 3D 통합 그래픽 가속기의 2D 또는 3D 그래픽 가속 여부에 대한 상태를 저장하는 S-레지스터(Status Register, 320)를 포함한다. 따라서, 2D 및 3D 통합 그래픽 가속기는 S-레지스터(320)에 저장된 그래픽 정보에 따라 그래픽 모드를 2D 또는 3D 그래픽 모드로 초기화하여 2D 벡터 그래 픽 가속 또는 3D 그래픽 가속을 수행하게 된다.The register set 300 stores instructions for accelerating 2D and 3D graphics. On the other hand, the register set 300 includes an S-register (Status Register) 320 that stores the status of whether 2D or 3D graphics acceleration of the 2D and 3D integrated graphics accelerator. Therefore, the 2D and 3D integrated graphics accelerators initialize the graphics mode to 2D or 3D graphics mode according to the graphics information stored in the S-
즉, 컴맨드 코어(220)가 S-레지스터(320)에 저장된 그래픽 상태에 대한 레지스터 값을 읽고, 그에 따라 레지스터 셋에 저장된 2D 벡터 그래픽 레지스터 값 또는 3D 그래픽 레지스터 값들은 참조하여 통합 그래픽 가속기(100)가 2D 벡터 그래픽 가속 또는 3D 그래픽 가속을 수행하도록 한다. 컴맨드 코어(220)는 어느 하나의 그래픽 처리를 위한 마지막 명령 수행까지 S-레지스터 값을 참조한다.That is, the
본 발명의 통합 그래픽 가속 어플리케이션 프로세서는 통합된 명령어 처리부(200), S-레지스터(320) 및 2D 및 3D 그래픽 통합 가속기(100)를 포함함으로써, 2D 벡터 그래픽 가속과 3D 그래픽 가속을 통합적으로 수행할 수 있다.The integrated graphics acceleration application processor of the present invention includes an integrated
도 2b는 본 발명의 다른 실시예에 따른 통합 그래픽 가속 어플리케이션 프로세서에 대한 블럭도이다.2B is a block diagram of an integrated graphics acceleration application processor according to another embodiment of the present invention.
도 2b를 참조하면, 본 실시예의 통합 그래픽 가속 어플리케이션 프로세서는 도 2a와 유사하나, 레지스터 셋(300)이 2D 및 3D 통합 그래픽 가속기(100a) 내부로 포함된 구조를 갖는다. 레지스터 셋(300)이 실행될 그래픽 상태 정보를 저장하는 S-레지스터(320)를 포함함은 물론이다.Referring to FIG. 2B, the integrated graphics acceleration application processor of the present embodiment is similar to FIG. 2A, but has a structure in which the register set 300 is included in the 2D and 3D integrated
본 실시예의 각 구성요소나 기능 등은 도 2a에서와 동일하므로 그에 대한 설명은 생략한다.Since each component or function of the present embodiment is the same as in FIG. 2A, a description thereof will be omitted.
도 3은 도 2a의 렌더링 엔진을 좀더 상세하게 보여주는 블럭도이다.3 is a block diagram illustrating the rendering engine of FIG. 2A in more detail.
도 3을 참조하면, 렌더링 엔진(140)은 맵핑(Mapping) 모듈(110), 그라디언트(Gradient) 모듈(160), 블렌딩(Blending) 모듈(130), 패스 제너레이션(Path Generation) 모듈(170), 및 래스터라이저(Rasterization) 모듈(150)을 포함한다. 물론, 렌더링 엔진(140)으로 트라이앵글 셋업 모듈, 및 스판 프로세싱 모듈이 더 포함되나 그에 대한 도시는 생략하였다.Referring to FIG. 3, the
맵핑 모듈(110)은 텍스쳐 맵핑 및 라이트 맵핑을 수행하는 텍스쳐(Texture) 맵핑부(112) 및 라이트(Light) 맵핑부(114)를 포함한다. 여기서, 2D 그래픽 가속 시에는 라이트 맵핑부(114)는 사용되지 않는다. 따라서, 전처리부를 통해서 거쳐 들어온 이미지는 3D 그래픽 가속의 경우, 텍스쳐 캐쉬(410) 및 라이트 캐쉬(420)로부터 해당 이미지 데이터를 읽어 텍스쳐 맵핑부(112) 및 라이트 맵핑부(114)를 통해 각각 맵핑 처리되며, 2D 벡터 그래픽 가속의 경우에는 텍스쳐 매핑만이 수행된다.The
한편, 그라디언트 모듈(160)은 비트맵 방식으로 색상을 처리하는 비트맵(Bitmap)부(162) 및 직선 및 원형 그라디언트 처리를 하는 직선및원형(Linear/Radial, 164))부를 포함한다. 여기서, 그라디언트 처리라 함은, 주어진 입력 색상(전처리기에서 처리한 레지스터 값)을 보고 각 구간별 동일한 색으로 옵셋(offset) 값을 주어 색의 경계를 만들면서 부드럽게 처리하는 것을 말한다. 이러한 그라디언트 처리는 2D 벡터 그래픽 처리를 함에 있어 색의 효과를 주기 위해 사용되기 때문에 그라디언트 모듈(160)은 2D 그래픽 가속에만 이용된다.On the other hand, the
한편, 3D 그래픽 가속기에 고라우드 세이딩(Gouraud Shading) 모듈을 포함하는 경우에는 고라우드 쉐이딩을 이용하여 그라디언트를 처리가능하므로, 그라디언트 모듈을 생략할 수도 있다.Meanwhile, when the 3D graphics accelerator includes a Gouraud Shading module, the gradient module may be processed by using the Gourad shading, and thus the gradient module may be omitted.
블렌딩 모듈(130)은 쉐이더(Shader, 500)를 통해 텍스쳐(Texture), 이미지 및 알파(Alpha) 블렌딩 처리를 수행하는 텍스쳐 블렌딩부(132), 이미지 블렌딩부(134) 및 알파 블렌딩부(136)를 포함한다. 이러한 블렌딩 모듈(130)은 2D 및 3D 그래픽 처리 중 각각의 물체에 대한 최종 이미지 컬러 색상을 섞어 프레임 버퍼에 저장하는 기능을 한다. 여기서, 알파 블렌딩은 두 개의 텍스쳐를 합칠 때 투영 효과를 주는 블렌딩 기법의 한 종류로, 물이나 유리와 같은 투명한 매질의 속성을 주기 위한 처리이다.The
한편, 3D 그래픽 처리에서 사용하는 텍스쳐 블렌딩과 2D 벡터 그래픽 처리에 사용하는 이미지 블렌딩의 기능은 각각 유사하나, 이를 별도로 처리하도록 하였다. 이는 2D 벡터 그래픽 처리기의 다양한 이미지 포맷을 수용할 수 있도록 하고, 또한, 상위 블록인 그라디언트 모듈(160)의 비트맵 이미지를 생성하는 구간이 3D 그래픽 처리와는 다르기 때문이며, 더 나아가, 이미지 블렌딩은 2D 벡터 그래픽 처리에서 패스를 생성하는 부분(패스 제너레이션)과 밀접하게 연관되어 속성이 부여되므로 이미지 블렌딩을 따로 두어 처리하는 것이 바람직하기 때문이다.Meanwhile, the functions of texture blending used in 3D graphics processing and image blending used in 2D vector graphics processing are similar, but they are separately processed. This is because the 2D vector graphics processor can accommodate various image formats, and also because the interval for generating a bitmap image of the
패스 제너레이션 모듈(170)은 2D 벡터 그래픽 처리에서 중점적인 역할을 담당하는데, 패스 데이터 캐쉬(440)에서 2D 그래픽 처리를 위한 x축, y축의 값을 읽어와 레지스터 셋에 저장된 각각의 값을 보고 각 모듈별 형태에 따라 2D 패스 데이터를 생성한다.The
즉, 패스 제너레이션 모듈(170)은 3D 그래픽 가속기의 트라이앵글 모듈의 셋업 처리에 대응하여 패스 데이터 캐쉬(440)의 데이터를 이용하여 모듈별 솔리 드(Solid), 이미지, 및 패턴(172, 174, 176)에 대한 2D 패스 데이터를 생성한다. 이러한 패스 데이터들이 앞서 이미지 블렌딩에 사용됨은 물론이다.That is, the
한편, 패스 제너레이션 모듈(170)에서 사용된 패스 데이터 캐쉬(440)는 3D 그래픽 가속에서 메모리로부터 삼차원 데이터를 읽어 오는 부분과 동일하게 설계되어 사용된다. 이는 2D 벡터 그래픽 가속기는 3D 그래픽 가속기와 달리 z축 좌표(깊이 좌표)값이 필요치 않으며, 그에 따라 동일한 캐쉬를 사용하는 경우, 데이터를 읽고 처리하는 속도가 삼차원보다 월등히 빠르다는 장점이 있기 때문이다. 또한, 패스 데이터 캐쉬(440)를 공통으로 이용하는 경우, 메모리 절감할 수 있고, 읽고/쓰기(Read/Write) 명령어를 줄임으로써, 가속 속도 면에서도 매우 큰 장점을 갖는다.On the other hand, the
상기 래스터라이저 모듈(150)은 알파값 및 젯-뎁스(z-depth) 값을 테스트하는 알파 테스트부(152) 및 뎁스 테스트부(154)와 2D 벡터 이미지 보간을 위한 이미지 인터폴레이션(Image Interpolation, 156)부를 포함한다.The
여기서, 알파 테스트부(152)는 2D 및 3D 그래픽의 알파 값을 통합적으로 테스트하여 처리하는데, 이러한 알파 테스트부(252) 또한 2D 벡터 그래픽에서는 z축 값을 필요치 않으므로, 기존 3D 그래픽에서의 알파 테스트에 비해 빠른 속도로 2D 알파 테스트를 수행할 수 있다. 결국, 별도의 블록을 설계치 아니하고 하나의 알파 테스트부(252)를 통해 2D 및 3D 그래픽의 통합 알파 테스트 처리가 가능하다.Here, the
블렌딩 엔진(140) 내의 모든 모듈들을 거친 파이프 라인의 흐름은 최종적으로 동일하게 사용되는 프레임 버퍼(600))에 최종 픽셀 데이터를 저장한 후, 이를 LCD 등의 화면으로 인터페이스를 통해 출력하는 과정을 거친다.The pipeline flow through all the modules in the
이와 같이 구성된 렌더링 엔진(140)의 기능을 순차적으로 살펴보면, Looking at the function of the
먼저, 3D 그래픽을 처리하는 경우, 매핑 모듈(110)의 텍스쳐 및 라이트 매핑부(112, 114)를 통해 텍스쳐 및 라이트 맵핑을 수행하고, 다음, 브렌딩 모듈(130)의 상기 텍스쳐 블렌딩부(132)에서 텍스쳐 블렌딩을 수행한다. 다음으로 래스터라이저 모듈(150)에서 알파 테스트 및 뎁스 테스트를 거쳐, 다시 블렌딩 모듈(130)의 이미지 블렌딩부(134)에서 이미지 블렌딩이, 그리고 알파 블렌딩부(136)에서 알파 블렌딩이 수행된다. 알파 블렌딩이 수행되어 생성된 픽셀 데이터를 픽셀 캐쉬(430)에 저장한 후, 최종적으로 프레임 버퍼(600)에 그 픽셀 데이터를 저장한다.First, in the case of
한편, 2D 그래픽을 처리하는 경우에도 과정은 3D 그래픽 처리와 유사하게 진행된다. 그러나 라이트 맵핑부(114)는 이용되지 않으며, 뎁스 테스트부(154) 대신 이미지 인터폴레이션부(156)가 이용된다. 또한, 이미지 블렌딩부(134)는 이미지 인터폴레이션부(156) 및 상기 그라디언트 모듈부(160)에 연동하여 상기 이미지 블렌딩을 수행한다.On the other hand, even in the case of
본 발명에 따른 통합 그래픽 가속 어플리케이션 프로세서는 단일화된 렌더링 엔진을 포함한다. 즉, 렌더링 엔진은 크게 3D 그래픽 가속기 모듈과, 2D 벡터 그래픽 가속을 위한 모듈을 함께 포함한다. 그에 따라, 종래 3D 그래픽 가속기 모듈과, 2D 벡터 그래픽 가속기가 각각의 블록으로 이루어져 발생했던, 설계 면적의 낭비, 메모리 낭비 등의 문제를 해결할 수 있고, 또한 공통된 파이프 라인을 이용하여, 상이한 두 콘텐츠의 결과를 하나의 프레임 버퍼에 저장함으로써, 향후 2D 그래픽 벡터 콘텐츠와 3D 그래픽 콘텐츠가 혼합된 통합 콘텐츠에 대한 개발을 가능케 한다.The integrated graphics acceleration application processor according to the present invention includes a unified rendering engine. That is, the rendering engine largely includes a 3D graphics accelerator module and a module for 2D vector graphics acceleration. Accordingly, the conventional 3D graphics accelerator module and the 2D vector graphics accelerator, which are made up of individual blocks, can solve problems such as waste of design area, memory waste, and the like. By storing the results in one frame buffer, it is possible to develop integrated content in which 2D graphic vector content and 3D graphic content are mixed in the future.
도 4는 본 발명의 또 다른 실시예에 따른 통합 그래픽 가속 어플리케이션 프로세서를 이용한 통합 그래픽 처리 과정을 보여주는 흐름도이다.4 is a flowchart illustrating an integrated graphics processing process using an integrated graphics acceleration application processor according to another embodiment of the present invention.
도 4를 참조하면, 먼저 하드웨어(H/W) 프로세서의 아이들(idle) 상태를 체크한다(S100). 여기서, 아이들 체크란 해당 하드웨어 프로세서가 동작 중인지 아니면 쉬고 있는 중인지를 판단하는 것을 말한다. 한편, 하드웨어 프로세서는 앞서 언급한 2D 및 3D 통합 그래픽 가속기, 통합 명령어 처리부, 및 레지스터 셋을 포함한 2D 및 3D 통합 그래픽 가속 어플리케이션을 의미한다. Referring to FIG. 4, first, an idle state of a hardware (H / W) processor is checked (S100). Here, the idle check refers to determining whether the corresponding hardware processor is operating or resting. On the other hand, a hardware processor refers to a 2D and 3D integrated graphics acceleration application including the aforementioned 2D and 3D integrated graphics accelerator, an integrated instruction processor, and a register set.
하드웨어 프로세서가 아이들 상태인 경우, 2D 및 3D 통합 그래픽 가속기에서 실행될 그래픽 종류를 판단한다(S110). 즉, 앞서 언급한 레지스터 셋에 포함된 S-레지스터를 체크하여 실행될 그래픽 처리가 2D(OpenVG) 그래픽 처리인지 아니면 3D(OpenGLES) 그래픽 처리인지를 판별한다.If the hardware processor is in the idle state, it determines the type of graphics to be executed in the 2D and 3D integrated graphics accelerator (S110). That is, the S-register included in the register set mentioned above is checked to determine whether the graphics processing to be executed is 2D (OpenVG) graphics processing or 3D (OpenGLES) graphics processing.
S-레지스터의 체크에 따라, 2D 및 3D 통합 그래픽 가속기를 2D 또는 3D 그래픽 가속 모드로 초기화한다(S120a, S120b). 즉, S-레지스터 값이 2D 그래픽 모드일 경우에는 2D 및 3D 통합 그래픽 가속기를 2D 그래픽 모드로 초기화하고, S-레지스터 값이 3D 그래픽 모드일 경우에는 2D 및 3D 통합 그래픽 가속기를 3D 그래픽 모드로 초기화한다.According to the check of the S-register, the 2D and 3D integrated graphics accelerators are initialized to the 2D or 3D graphics acceleration modes (S120a and S120b). In other words, if the S-register value is in 2D graphics mode, the 2D and 3D integrated graphics accelerator is initialized to 2D graphics mode. If the S-register value is in 3D graphics mode, the 2D and 3D integrated graphics accelerator is initialized to 3D graphics mode. do.
다음에는 2D 또는 3D 그래픽 실행에 이용되는 캐쉬의 더티 체크를 한다(S130). 여기서, 더티 체크라 함은 한번 구동된 명령어의 재처리 여부를 판단하 는 것을 말하며, 이러한 더티 체크를 가속기 실행 전에 하는 이유는 이미 한번 처리된 명령어 중 반복되는 명령어는 다시 가속기를 통해 처리할 필요없이, 캐쉬 데이터를 이용해서 빠른 속도로 바로 처리하도록 하기 위함이다.Next, a dirty check of the cache used to execute 2D or 3D graphics is performed (S130). Here, dirty check refers to determining whether to reprocess a command that has been driven once. The reason for performing such a dirty check before executing an accelerator is that the repeated command among the already processed commands does not need to be processed again through the accelerator. In order to process the data quickly using cache data.
더티 체크 이후, 실제적인 그래픽 처리가 수행되는데, 즉, 그래픽 처리의 전퍼리인 지오메트리 엔진이 실행되며(S140), 다음 그래픽 처리의 후처리인 렌더링 엔진이 실행된다(S150). 여기서, 지오메트리 엔진 처리는, 2D 그래픽의 경우, 필요한 그래픽 부분만을 잘라내는 시저(scissor) 처리를 의미하기도 한다. 즉, 2D 그래픽의 경우, 시저 처리를 위한 데이터를 읽고 상태를 판별한 후, 해당 부분을 절단한다.After the dirty check, the actual graphics processing is performed, that is, the geometry engine that is a preprocess of the graphics processing is executed (S140), and the rendering engine that is the postprocessing of the next graphics processing is executed (S150). Here, in the case of 2D graphics, the geometry engine processing may mean a scissor processing of cutting out only necessary graphic portions. That is, in the case of 2D graphics, the data for the procedure is read, the state is determined, and the corresponding part is cut.
렌더링 처리 단계에서는 앞서, 도 1 ~ 3을 통해 상세히 설명한 바와 같이, 2D 및 3D 통합 그래픽 가속기 내의 각각의 모듈 등을 통해 영상으로 표현할 물체에 대한 최종 픽셀 데이터를 생성하여, 프레임 버퍼에 저장한다. 여기서, 도면상 렌더링이라고 표현하였는데, 이는 앞서의 트라이앵글 셋업, 그라디언트, 패스 제너레이션 등의 모든 과정을 포함하는 개념이며, 또한 지오메트리 처리 과정까지도 포함하는 개념으로 사용되었다.In the rendering processing step, as described above with reference to FIGS. 1 to 3, final pixel data of an object to be represented as an image is generated and stored in a frame buffer through respective modules in the 2D and 3D integrated graphics accelerators. Here, it is referred to as rendering in the drawing, which is a concept that includes all the processes of triangle setup, gradient, path generation, and the like, and is used as a concept that includes a geometry process.
2D 또는 3D 그래픽 처리가 완료되면, 2D 및 3D 통합 그래픽 가속기를 종료한다(S160a, S160b). 이러한 2D 및 3D 통합 그래픽 가속기 종료 역시 S-레지스터의 그래픽 모드 상태를 참조하여 수행한다. 도시와 바와 같이 2D 및 3D 통합 그래픽 가속기가 종료되면, 다른 2D 또는 3D 그래픽 처리가 필요한지 체크하여(S170), 또 다른 그래픽 처리가 필요하면, 다시 프로세서 아이들 체크 단계(S100)로 돌아가고, 불필요한 경우는 그래픽 처리를 완전히 종료한다.When 2D or 3D graphics processing is completed, the 2D and 3D integrated graphics accelerators are terminated (S160a and S160b). This 2D and 3D integrated graphics accelerator termination is also performed by referring to the graphics mode state of the S-register. As shown in the figure, when the 2D and 3D integrated graphics accelerator is finished, it is checked whether another 2D or 3D graphics processing is required (S170), and if another graphics processing is required, the process returns to the processor idle check step (S100) again. Completely terminate graphics processing.
한편, 초기화 단계(S120a, S120b) 이후, 그래픽 처리와는 별개로 프레임 버퍼를 클리어하는 클리어 오퍼레이션을 수행한다(S180). 이러한 클리어 오퍼레이션은 그래픽 처리 중에 수행되며, 그래픽 처리가 끝나게 되면 클리어 오퍼레이션도 종료하게 된다.Meanwhile, after the initialization steps S120a and S120b, a clear operation of clearing the frame buffer is performed separately from the graphic processing (S180). This clear operation is performed during the graphic processing, and when the graphic processing is completed, the clear operation is also terminated.
한편, 앞서 각 단계들의 수행 들 중, 아이들 체크, 클리어 오퍼레이션, 통합 가속기 종료는 블럭 별 구동 종료 여부를 가속 엔진 레벨에서 레지스터 값을 참조하여 미 종료시 지속적인 수행을 한다. 즉 도시한 바와 같이 계속적인 루프 백(loop back) 기능을 수행한다.On the other hand, among the execution of each step, the idle check, clear operation, the end of the integrated accelerator is continuously performed when it is not finished by referring to the register value at the acceleration engine level whether or not the end of driving by block. That is, as shown in the figure, a continuous loop back function is performed.
본 발명의 그래픽 가속 통합 어플리케이션 프로세서 및 그래픽 가속방법은 이동 통신 단말기에 내장된 어플리케이션 프로세서에서 서비스되는 OpenGL/ES와 같은 3D 그래픽 가속기와 OpenVG와 같은 벡터(Vector) 방식의 2D 그래픽 가속기의 이원화된 구조를 일원화된 구조로 통일하여, 그래픽 가속을 통합적으로 처리하도록 한다. 즉, 3D 그래픽 가속기와 2D 그래픽 가속기의 동일한 부분의 내부 블록을 공유하여, 각각 3D 그래픽 처리와 2D 벡터 가속 처리를 연동하여 처리할 수 있도록 한다.The graphics acceleration integrated application processor and the graphics acceleration method of the present invention are based on a dual structure of a 3D graphics accelerator such as OpenGL / ES and a
또한, 본 발명의 그래픽 가속 통합 어플리케이션 프로세서는 이를 수용하여 구동되는 이동통신 단말기에 내장되어, 각각의 처리를 담당하는 소프트웨어 드라이버(Software Driver)에 의해 관리되며, 각 소프트웨어 드라이버는 그 특성에 해당되는 API인 OpenGL/ES와 OpenVG의 표준을 따라 EGL과 연동됨으로써, 통합된 프레임 버퍼를 이용에 따른 메모리 효율을 높일 수 있고 동시에 그래픽 처리기 공유를 통한 설계 면적을 줄일 수 있는 기술적 장점이 있다.In addition, the graphic acceleration integrated application processor of the present invention is embedded in a mobile communication terminal that is driven to accommodate it, is managed by a software driver (Software Driver) in charge of each process, each software driver API corresponding to its characteristics By interworking with EGL according to the standards of OpenGL / ES and OpenVG, it is possible to increase the memory efficiency by using the integrated frame buffer and reduce the design area by sharing the graphic processor.
지금까지, 본 발명을 도면에 표시된 실시예를 참고로 설명하였으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.So far, the present invention has been described with reference to the embodiments shown in the drawings, which are merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. . Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
도 1은 3D 그래픽 가속기와 2D 그래픽 가속기의 동일 파이프 라인(Pipe Line) 구조를 설명하기 위한 블럭도이다.1 is a block diagram illustrating the same pipe line structure of a 3D graphics accelerator and a 2D graphics accelerator.
도 2a는 본 발명의 일 실시예에 따른 통합 그래픽 가속 어플리케이션 프로세서에 대한 블럭도이다.2A is a block diagram of an integrated graphics acceleration application processor according to an embodiment of the present invention.
도 2b는 본 발명의 다른 실시예에 따른 통합 그래픽 가속 어플리케이션 프로세서에 대한 블럭도이다.2B is a block diagram of an integrated graphics acceleration application processor according to another embodiment of the present invention.
도 3은 도 2a의 렌더링 엔진을 좀더 상세하게 보여주는 블럭도이다.3 is a block diagram illustrating the rendering engine of FIG. 2A in more detail.
도 4는 본 발명의 또 다른 실시예에 따른 통합 그래픽 가속 어플리케이션 프로세서를 이용한 통합 그래픽 처리 과정을 보여주는 흐름도이다.4 is a flowchart illustrating an integrated graphics processing process using an integrated graphics acceleration application processor according to another embodiment of the present invention.
Claims (30)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080036745A KR100968370B1 (en) | 2008-04-21 | 2008-04-21 | Graphic accelerator integrating 2D and 3D, Application process comprising the same graphic accelerator, and graphic accelerating method in same application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080036745A KR100968370B1 (en) | 2008-04-21 | 2008-04-21 | Graphic accelerator integrating 2D and 3D, Application process comprising the same graphic accelerator, and graphic accelerating method in same application |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090111134A true KR20090111134A (en) | 2009-10-26 |
KR100968370B1 KR100968370B1 (en) | 2010-07-06 |
Family
ID=41538926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080036745A KR100968370B1 (en) | 2008-04-21 | 2008-04-21 | Graphic accelerator integrating 2D and 3D, Application process comprising the same graphic accelerator, and graphic accelerating method in same application |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100968370B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101106013B1 (en) * | 2010-02-18 | 2012-01-17 | 주식회사 에이디칩스 | edge list generation method in graphics accelerators and active edge list generation method |
WO2013162136A1 (en) * | 2012-04-27 | 2013-10-31 | 주식회사 컴퍼니원헌드레드 | Batch rendering method for 2d vector graphics path using gpu |
KR20140099308A (en) * | 2011-12-13 | 2014-08-11 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | Graphics render matching for displays |
CN108171644A (en) * | 2017-12-22 | 2018-06-15 | 天津麒麟信息技术有限公司 | A kind of X-Y scheme accelerated method based on GCN framework video cards |
CN112614210A (en) * | 2020-12-23 | 2021-04-06 | 万翼科技有限公司 | Engineering drawing display method, system and related device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394524A (en) * | 1992-08-07 | 1995-02-28 | International Business Machines Corporation | Method and apparatus for processing two graphics data streams in parallel |
JPH11353495A (en) | 1998-06-10 | 1999-12-24 | Nec Corp | Graphics device and graphic method |
US6882346B1 (en) | 2000-11-17 | 2005-04-19 | Hewlett-Packard Development Company, L.P. | System and method for efficiently rendering graphical data |
US6831635B2 (en) | 2001-03-01 | 2004-12-14 | Microsoft Corporation | Method and system for providing a unified API for both 2D and 3D graphics objects |
-
2008
- 2008-04-21 KR KR1020080036745A patent/KR100968370B1/en not_active IP Right Cessation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101106013B1 (en) * | 2010-02-18 | 2012-01-17 | 주식회사 에이디칩스 | edge list generation method in graphics accelerators and active edge list generation method |
KR20140099308A (en) * | 2011-12-13 | 2014-08-11 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | Graphics render matching for displays |
WO2013162136A1 (en) * | 2012-04-27 | 2013-10-31 | 주식회사 컴퍼니원헌드레드 | Batch rendering method for 2d vector graphics path using gpu |
CN108171644A (en) * | 2017-12-22 | 2018-06-15 | 天津麒麟信息技术有限公司 | A kind of X-Y scheme accelerated method based on GCN framework video cards |
CN112614210A (en) * | 2020-12-23 | 2021-04-06 | 万翼科技有限公司 | Engineering drawing display method, system and related device |
CN112614210B (en) * | 2020-12-23 | 2024-03-19 | 深圳市万翼数字技术有限公司 | Engineering drawing display method, system and related device |
Also Published As
Publication number | Publication date |
---|---|
KR100968370B1 (en) | 2010-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7468726B1 (en) | Culling in a vertex processing unit | |
US7292242B1 (en) | Clipping with addition of vertices to existing primitives | |
US5517603A (en) | Scanline rendering device for generating pixel values for displaying three-dimensional graphical images | |
US5345541A (en) | Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device | |
US5307449A (en) | Method and apparatus for simultaneously rendering multiple scanlines | |
US5706415A (en) | Method and apparatus for distributed interpolation of pixel shading parameter values | |
US7307628B1 (en) | Diamond culling of small primitives | |
US20080266287A1 (en) | Decompression of vertex data using a geometry shader | |
KR101004973B1 (en) | Graphics system with dynamic reposition of depth engine | |
US8373717B2 (en) | Utilization of symmetrical properties in rendering | |
EP3353746B1 (en) | Dynamically switching between late depth testing and conservative depth testing | |
KR20090079241A (en) | Graphics processing unit with shared arithmetic logic unit | |
CN112189215B (en) | Compiler assist techniques for implementing memory usage reduction in a graphics pipeline | |
KR100968370B1 (en) | Graphic accelerator integrating 2D and 3D, Application process comprising the same graphic accelerator, and graphic accelerating method in same application | |
US11763513B2 (en) | DGPU assist using DSP pre-processor system and method | |
WO2017155595A1 (en) | Visibility information modification | |
EP0889441A2 (en) | Lighting unit for a three-dimensional graphics accelerator | |
KR20180037838A (en) | Method and apparatus for processing texture | |
US6570565B1 (en) | 3D graphic accelerator and method for processing graphic acceleration using the same | |
US11972518B2 (en) | Hybrid binning | |
US11741653B2 (en) | Overlapping visibility and render passes for same frame | |
CN113256771A (en) | Graphics system and graphics processing method therefor | |
US8179394B1 (en) | Cull streams for fine-grained rendering predication | |
US11880924B2 (en) | Synchronization free cross pass binning through subpass interleaving | |
US11227430B2 (en) | Optimized pixel shader attribute management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated 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: 20130503 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140402 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |