KR101520067B1 - 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치 - Google Patents

윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치 Download PDF

Info

Publication number
KR101520067B1
KR101520067B1 KR1020080096953A KR20080096953A KR101520067B1 KR 101520067 B1 KR101520067 B1 KR 101520067B1 KR 1020080096953 A KR1020080096953 A KR 1020080096953A KR 20080096953 A KR20080096953 A KR 20080096953A KR 101520067 B1 KR101520067 B1 KR 101520067B1
Authority
KR
South Korea
Prior art keywords
graphics processing
openvg
window system
egl
processing unit
Prior art date
Application number
KR1020080096953A
Other languages
English (en)
Other versions
KR20100037721A (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 KR1020080096953A priority Critical patent/KR101520067B1/ko
Priority to US12/497,595 priority patent/US8203567B2/en
Publication of KR20100037721A publication Critical patent/KR20100037721A/ko
Application granted granted Critical
Publication of KR101520067B1 publication Critical patent/KR101520067B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치가 개시된다. 본 발명의 일실시예에 따른 그래픽 처리 장치(GPU)에서의 그래픽 처리 방법은 윈도우 시스템의 그래픽 처리 연산을 벡터 기반의 응용 프로그램 인터페이스(API) 포맷, 예를 들어 OpenVG/EGL 형식으로 변환하여 그래픽 처리 연산을 수행하도록 한다. 이에 의해 윈도우 시스템의 확장성과 유연성을 높일 수 있다.
Figure R1020080096953
OpenVG, EGL, 그래픽 처리 장치, 윈도우 시스템

Description

윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치 {Graphic processing method and apparatus implementing window system}
본 발명의 일 양상에 따른 기술분야는 그래픽 처리에 관한 것으로, 보다 상세하게는 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치에 관한 것이다.
리눅스(Linux)나 심비안(Symbian) 등과 같은 오픈 소스 기반의 운영체제를 탑재한 모바일 장치(mobile device)가 증가하고 있다. 그리고 휴대용 멀티미디어 통신 단말이나 휴대폰 등의 모바일 장치(mobile device)를 통해 웹 브라우징(web browsing)이나 다양한 응용 프로그램 등을 사용할 수 있도록 지원하는 추세이다. 이에 따라 이러한 모바일 장치의 그래픽 유저 인터페이스(Graphic User Interface, GUI)가 점점 중요해져 가고, 이를 지원하기 위해 모바일 장치에서의 고성능 그래픽 처리가 점점 더 필요한 실정이다.
고성능 그래픽 처리를 위해 모바일 장치는 중앙 처리 장치(Central Processing Unit, CPU)외에 별도의 그래픽 처리 장치(Graphic Processing Unit, GPU)를 구비하여 그래픽 처리와 관련된 작업을 일괄적으로 그래픽 처리 장치(GPU)에서 수행하기도 한다. 한편, 모바일 장치에서 응용 프로그램에서의 그래픽 유저 인터페이스(GUI)는 대부분 윈도우 시스템(window system)을 기반으로 하고 있다. 즉, 응용 프로그램의 그래픽 유저 인터페이스(GUI) 화면은 일정영역에서 디스플레이되는데, 이 일정영역을 윈도우(window)라고 한다.
종래에는 이러한 윈도우의 관리나 그래픽 처리를 하나의 중앙 처리 장치(CPU)에서 처리하는 경우가 많았다. 이 경우 그래픽 처리와 관련된 복잡한 연산까지도 중앙 처리 장치에서 수행해야 하기 때문에 중앙 처리 장치(CPU)의 부하가 많이 걸려 그래픽 처리 성능이 좋지 못하다.
또한, 별도의 그래픽 처리 장치(GPU)를 구비하여 이 그래픽 처리 장치(GPU)에서 윈도우 관리나 그래픽 처리를 수행하도록 하는 경우도 있으나, 응용 프로그램마다 다른 응용 프로그램 인터페이스(Application Program Interface, API)를 사용하기 때문에 윈도우 시스템의 기능을 확장하거나 수정하는데 어려움이 있다.
따라서, 본 발명의 일 양상에 따라, 표준화된 API를 사용하여 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치를 제공하고자 한다.
본 발명의 일 양상에 따른 그래픽 처리 장치(GPU)에서의 그래픽 처리 방법은, 윈도우 시스템의 그래픽 처리 연산을 상기 그래픽 처리 장치(GPU)에서 사용되는 벡터 기반의 응용 프로그램 인터페이스(API) 포맷으로 변환하는 단계; 및 상기 변환된 그래픽 처리 연산을 상기 그래픽 처리 장치(GPU)에서 수행하는 단계를 포함한다.
상기 그래픽 처리 장치에서 사용되는 벡터 기반의 API는 OpenVG/EGL 표준에 따른 포맷일 수 있다.
상기 변환하는 단계는, 상기 윈도우 시스템의 좌표계를 OpenVG 좌표계로 변환하는 단계; 상기 윈도우 시스템의 그래픽 처리 연산을 위한 컨텍스트를 OpenVG의 오브젝트들로 표현하는 단계; 및 상기 OpenVG로 표현된 그래픽 처리 연산을 수행하여 그 결과를 저장하는 단계를 포함할 수 있다.
또한, 본 발명의 다른 양상에 따른 그래픽 처리 장치(GPU)는, 윈도우 시스템의 그래픽 처리 연산을 상기 그래픽 처리 장치(GPU)에서 사용되는 벡터 기반의 응용 프로그램 인터페이스(API) 포맷으로 변환하고, 상기 변환된 그래픽 처리 연산을 수행하는 디바이스 종속 처리부를 포함한다.
본 발명의 일 양상에 따르면, 표준화된 API를 사용함으로써 윈도우 시스템의 확장성과 유연성을 높일 수 있다. 그리고, 벡터 기반의 API를 사용함으로써 향후 널리 사용될 것으로 예상되는 스케일러블 사용자 인터페이스(Scalable User Interface)를 보다 효과적으로 지원할 수 있다.
또한 모바일 장치에서 하나의 고성능 중앙 처리 장치(CPU)를 사용하여 그래픽 처리까지 수행하는 것보다, 별도의 그래픽 처리 장치(GPU)를 통해 본 발명의 일 양상에 따른 윈도우 시스템을 구현함으로써 여러가지 자연스러운 그래픽 효과를 얻을 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 윈도우 시스템 구현을 위한 구성 모듈을 도시한 도면이다.
응용 프로그램(110)은 프로토콜(120)을 통해 윈도우 시스템(130)과 데이터를 주고 받으며, 경우에 따라 하드웨어(150)와도 데이터를 주고 받아 그래픽 처리를 수행한다.
응용 프로그램(110)은 윈도우 매니저(window manager)(112), OpenVG 응용 프로그램(OpenVG Application)(114), X/GTX+ 응용 프로그램(X/GTX+ Application)(116) 등과 같이 윈도우를 기반으로 하는 여러가지 프로그램들이 포함 될 수 있다. 윈도우 매니저(112)는 윈도우를 관리하는 프로그램으로 그래픽 사용자 인터페이스(GUI)를 제공한다. 윈도우상에서의 메뉴판 구성, 스크롤바, 아이콘, 마우스 버튼의 작동 등이 어떤 윈도우 매니저를 사용하는가에 따라 결정된다.
프로토콜 처리(112)는 응용 프로그램(110)에 대응되는 프로토콜 처리를 수행한다. 그리고, 윈도우 시스템(130)은 디바이스에 독립적인 데이터 처리를 수행하는 디바이스 독립처리부(Device Independent X, DIX)(132)와 디바이스와 관련된 데이터 처리를 수행하는 디바이스 종속처리부(DDX 2D, Device Dependent X 2-Dimensional)(142), 렌더 확장부(Render Extension)(144), OpenVG 확장부(OpenVG Extension)(146), EGL 확장부(EGL extension)(148)를 포함한다. 한편 하드웨어(150)는 CPU(152)와 EGL/OpenVG 드라이버(154)와 그래픽스 하드웨어(156)를 포함한다.
디바이스 종속 처리부(142)는 윈도우 시스템의 좌표계를 OpenVG 좌표계로 변환하고, 상기 윈도우 시스템의 그래픽 처리 연산을 위한 컨텍스트를 OpenVG의 오브젝트들로 표현하여, 그에 따라 그래픽 처리 연산을 수행하여 그 결과를 저장한다. 보다 상세하게는, 윈도우 시스템의 그래픽 처리 연산을 위한 컨텍스트의 내용을 OpenVG의 state, paint 및 path 오브젝트로 표현한다. 디바이스 종속 처리부(142)에서의 보다 상세한 과정은 도 2 이하를 참조하여 후술한다.
한편, OpenVG 확장부(OpenVG Extension)(146), EGL 확장부(EGL extension)(148)는 클라이언트 애플리케이션이 OpenVG와 EGL의 API를 사용하여 그래픽 유저 인터페이스(GUI) 애플리케이션을 구현하는 통로를 제공한다.
OpenVG 표준은 플래쉬(Flash), SVG(Scable Vector Graphics)와 같은 벡터 그래픽 라이브러리를 위한 저수준 하드웨어 가속 인터페이스를 제공하는 로열티 무료, 크로스 플랫폼 API이다. OpenVG는 크로노스 그룹에 의해 제정된 표준이며, 2005년 7월에 버전 1.0 이 최초로 공개되었다. OpenVG 참조 구현은 EGL(Embedded Graphics Library) 블록과 OpenVG 블록으로 구성되어 있다. EGL은 OpenGL/ES 또는 OpenVG 와 같은 렌더링 API와 기반이 되는 네이티브 플랫폼 윈도우 시스템 사이의 인터페이스이다. 즉, EGL은 클라이언트 API들이 그리는 렌더링 평면(surface)을 생성하기 위한 메커니즘을 제공한다.
도 2는 윈도우 시스템에서 관리하는 윈도우 구조와, 이 윈도우 구조가 EGL 리소스로 매핑되고 화면상에 디스플레이되는 관계를 설명하기 위한 참조도이다.
전술한 바와 같이 그래픽 작업을 통해 그림이 그려질 때, 그림이 그려지는 작업영역을 Window라고 한다. 한편, 그림이 직접 보여지는 Window 외의 작업영역에도 그림이 그려질 수 있는데 이 영역을 Pixmap이라고 한다. Window와 Pixmap은 자료형(Variable type)의 일종으로 두 가지를 합쳐 자료형 Drawable이라고 한다. 본 발명의 일예에서는 그래픽 처리 장치에서 윈도우의 처리를 수행하기 위해 윈도우 시스템의 중요 자료형인 Window와 Pixmap을 EGL 자료형으로 변환한다.
도 2를 참조하면, 루트 윈도우(Root window)(210)는 Composite window(215, 225)와 Normal window(220, 230)를 포함한다. 여기서 Composite window(215, 225)는 화면상에 직접적으로 디스플레이되지 않는 윈도우로 Pixmap 자료형에 해당된다. 그리고 Normal window(220, 230)는 화면상에 직접 디스플레이되는 윈도우로 Window 자료형에 해당된다.
Normal window(220, 230)와 같은 Window는 EGL 확장부(148)를 통해 온-스크린 평면(on-screen surface)(260)을 할당하고 각 Window(220, 230)의 평면들은 온-스크린 평면의 일정 영역의 위치를 가리키도록(pointing) 한다. 이렇게 하여 각 Window(220, 230)에 그려진 내용은 온-스크린 평면에 곧바로 반영되어 화면에 디스플레이된다.
Composite window(215, 225)와 같은 Pixmap은 OpenVG의 자료형 중의 하나인 VGImage를 할당하고 이로부터 EGL pBuffer 평면(surface)을 할당하여 그 내용이 오프-스크린 버퍼(off-screen buffer)(250, 255)에 저장되도록 한다. 이후 오프-스크린 버퍼(250, 255)에 저장된 내용은 온-스크린 평면(260)상으로 옮겨져 화면상에 디스플레이될 수 있다.
도 3은 본 발명의 일실시예에 따른 코어 렌더링을 수행하는 과정의 플로우차트이다.
코어 렌더링은 디바이스 종속 처리부(DDX 2D)(142)에서 수행되며, 코어 렌더링을 수행하기 위해 윈도우 시스템에서의 기본적인 2D 그래픽 연산은 OpenVG로 구현된다. 먼저 그래픽 연산을 위한 데이터가 OpenVG로 변환이 가능한지의 여부를 체크한다(S310). OpenVG로 변환이 가능하지 않으면 대체 시스템을 가동하여(SW fallback), 그래픽 처리를 그래픽 처리 장치(GPU)에서 수행하지 않고 중앙 처리 장치(CPU)에서 수행한다(S360).
S360 단계를 보다 구체적으로는 설명하면, 먼저 그래픽 처리 장치(GPU)의 EGL 평면(surface)의 내용을 중앙 처리 장치(CPU)의 메모리로 복사한다. 중앙 처리 장치(CPU)의 메모리에 저장된 그래픽 데이터를 fb function이 처리할 수 있는 형태로 변환하고, 클라이언트에서 요청한 drawing 함수에 해당하는 fb function을 호출하여 처리 결과를 중앙 처리 장치(CPU)의 메모리에 저장한다. 저장된 처리 결과는 그래픽 처리 장치(GPU)의 EGL 평면(surface)으로 다시 전달된다.
한편 OpenVG로 변환이 가능하면, 좌표 변환을 수행한다(S320). 다시 말하면, 윈도우 시스템 좌표계에서 정의된 2D 프리미티브(primitive)를 OpenVG 좌표계로 변환한다. 예를 들어 왼쪽 아래(left bottom)가 원점인 OpenVG 좌표계는 윈도우 시스템의 좌표계와 차이가 있을 수 있으므로 좌표계를 먼저 변환하는 것이다. 그리고, 그래픽스 컨텍스트(graphics context)의 내용을 OpenVG의 state와 paint object로 표현한다(S330). 즉, 형태를 표현하기 위한 state와 형태를 외부적으로 나타내기 위한 paint 오브젝트가 사용된다. state는 일예로 배경색(background color), 전면색(foreground color), 라인 색/두께 등의 상태를 포함할 수 있다.
이렇게 state와 paint를 설정하였으면, path 오브젝트를 사용하여 경로 fitting을 수행한다(S340). 즉, 2D 프리미티브의 형태를 path object를 사용하여 fitting하여 각각의 그래픽스 컨텍스트에 대응되는 결과를 얻을 수 있도록 한다. 예를 들어 사각형을 그리는 2D 프리미티브에 대응되는 동일한 결과를 얻을 수 있는 state와 paint 오브젝트를 가지고 사각형에 대응되는 경로를 만든다.
이렇게 그래픽 데이터가 준비되면, 실제 그림을 그리는 명령을 수행한다(S350). 일예로, vgDrawPath 또는 vgDrawingImage를 호출하여 렌더링을 수행하 고, 그 렌더링 결과를 평면(surface)에 저장한다.
이하에서는 도 1의 렌더 확장부(144), OpenVG/EGL 확장부(146, 148)에 관해 보다 상세하게 설명한다.
렌더 확장부(144)에서 수행되는 렌더 확장에는 Picture라는 자료형이 사용된다. Picture는 Window나 Pixmap과 같은 drawable과 연결되어 있고, drawable은 EGL 평면(surface)을 이미 할당하고 있으므로, picture를 위한 별도의 EGL 평면(surface)을 할당할 필요가 없다.
보다 상세하게는 Trapezoid 또는 Triangle이 picture의 인자(parameter)로 지정되었을 경우에는 경로를 설정하여 그 형태를 fitting한다. 그리고, 인자로 사용되는 picture의 성질에 따라 picture를 OpenVG 자료형으로 변환한다. 렌더 확장의 일예로 블렌딩(blending)을 들 수 있는데, source와 mask가 모두 solid인 경우에는 컬러 페인트(color paint)를 사용하고, source와 mask 중 하나만 solid인 경우에는 color 변환을 사용한 패턴 페인트(pattern paint)를 사용한다. 그리고 source와 mask가 모두 drawable인 경우에는 vgMask와 pattern paint를 사용한다.
한편 PictureTransform은 PAINT_TO_USER 행렬(matrix)을 설정하여 구현할 수 있다. PAINT_TO_USER 행렬은 다음 수학식 1과 같이 표현될 수 있다.
Figure 112008069250903-pat00001
이때, sx, sy, dx, dy는 composite 이 지정한 값이며, hi는 source 또는 mask 이미지의 높이, h는 destination surface의 높이이다.
이러한 과정을 거친 후 vgDrawPath를 호출하여 렌더링 결과를 평면(surface)에 저장한다.
다음으로, OpenVG/EGL 확장부(146, 148)에 대해 보다 상세하게 설명한다. OpenVG/EGL 확장부(146, 148)을 통해 클라이언트 애플리케이션이 OpenVG와 EGL의 API를 사용하여 그래픽 유저 인터페이스(GUI) 애플리케이션을 구현할 수 있도록 한다.
먼저 클라이언트 애플리케이션이 요청한 OpenVG와 EGL API는 프로토콜 처리부(X protocol)(122)을 통해 서버로 전달된다. 클라이언트에서 요청한 OpenVG/EGL API가 글로벌 스테이트(global state)나 컨텍스트의 변경을 일으키면, 실제 함수를 호출하지 않고 state와 컨텍스트를 서버측 모듈에 저장한다. 그리고 클라이언트에서 drawing 관련 API가 호출되면 서버측에 저장된 state와 컨텍스트를 설정한 후 drawing 관련 API를 실행한다.
클라이언트가 요청하고 서버가 생성한 이들 리소스(resource)에는 카운터(reference counter)를 관리하여 리소스를 사용하는 모듈이 없어질 때 서버측 메모리에서 삭제한다. 사용중이 리소스의 삭제가 요청되면 카운터를 감소시켜 사용이 완료된 후 서버측 메모리에서 삭제한다.
한편, 본 발명의 일실시예에서는 그래픽 처리 장치(GPU)의 메모리 가상화를 구현할 수 있다. 즉, 윈도우 시스템의 그래픽스 리소스를 모두 그래픽 처리 장치(GPU)에 적재할 수 없는 경우, 중앙 처리 장치(CPU)의 메모리를 마치 그래픽 처리 장치(GPU)의 메모리인 것처럼 사용하기 위해 메모리 스와핑(swapping)을 할 수 있다.
예를 들어, 그래픽 처리 장치(GPU)에서 중앙 처리 장치(CPU)로 그래픽스 리소스를 이동시킬 때에는 가장 최근까지 사용되지 않은 VGImage를 선택하여 중앙 처리 장치(CPU)의 메모리로 이동시킨다. 그리고, 선택된 VGImage의 메모리를 해제하고, drawable의 평면(surface)를 이동된 중앙 처리 장치(CPU)의 메모리로 연결한다.
반대로 중앙 처리 장치(CPU)의 메모리로 이동한 그래픽스 리소스를 접근하는 경우에는, 그래픽 처리 장치(GPU)에 VGImage를 할당하고 drawable의 평면(surface)와 연결한다. 그리고 중앙 처리 장치(CPU)의 메모리에 저장된 평면(surface)의 내용을 상기 할당된 VGImage로 복사한다. 그리고 나서 중앙 처리 장치(CPU)의 메모리의 평면(surface)을 해제한다.
이제까지 본 발명의 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석 되어야 할 것이다.
도 1은 본 발명의 일실시예에 따른 윈도우 시스템 구현을 위한 구성 모듈을 도시한 도면,
도 2는 윈도우 시스템에서 관리하는 윈도우 구조와, 이 윈도우 구조가 EGL 리소스로 매핑되고 화면상에 디스플레이되는 관계를 설명하기 위한 참조도,
도 3은 본 발명의 일실시예에 따른 코어 렌더링을 수행하는 과정의 플로우차트이다.
<도면의 주요부분에 대한 설명>
110 : 응용 프로그램 120 : 프로토콜
130 : 윈도우 시스템 132 : 디바이스 독립 처리부
142 : 디바이스 종속 처리부 144 : 렌더 확장부
146 : OpenVG 확장부 148 : EGL 확장부

Claims (15)

  1. 그래픽 처리 장치(GPU)에서의 그래픽 처리 방법에 있어서,
    윈도우 시스템의 그래픽 처리 연산을 상기 그래픽 처리 장치(GPU)에서 사용되는 벡터 기반의 응용 프로그램 인터페이스(API) 포맷으로 변환하는 단계; 및
    상기 변환된 그래픽 처리 연산을 상기 그래픽 처리 장치(GPU)에서 수행하는 단계를 포함하되,
    상기 그래픽 처리 장치에서 사용되는 벡터 기반의 API는 OpenVG/EGL 표준에 따른 포맷이고,
    상기 윈도우 시스템의 그래픽 처리 연산 수행을 위한 리소스들은 EGL의 평면(surface)으로 관리되며, 상기 EGL을 확장하여 구현된 평면을 사용하는 그래픽 처리 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 변환하는 단계는
    상기 윈도우 시스템의 좌표계를 OpenVG 좌표계로 변환하는 단계;
    상기 윈도우 시스템의 그래픽 처리 연산을 위한 컨텍스트를 OpenVG의 오브젝트들로 표현하는 단계; 및
    상기 OpenVG로 표현된 그래픽 처리 연산을 수행하여 그 결과를 저장하는 단계를 포함하는 그래픽 처리 방법.
  4. 제3항에 있어서, 상기 OpenVG의 오브젝트로 표현하는 단계는
    상기 윈도우 시스템의 그래픽 처리 연산을 위한 컨텍스트의 내용을 OpenVG의 state, paint 및 path 오브젝트로 표현하는 것인 그래픽 처리 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 OpenVG/EGL 표준에 따른 OpenVG와 EGL API는 윈도우 시스템의 고유 API와 병행하여 사용되는 그래픽 처리 방법.
  7. 그래픽 처리 장치(GPU)에 있어서,
    윈도우 시스템의 그래픽 처리 연산을 상기 그래픽 처리 장치(GPU)에서 사용되는 벡터 기반의 응용 프로그램 인터페이스(API) 포맷으로 변환하고, 상기 변환된 그래픽 처리 연산을 수행하는 디바이스 종속 처리부를 포함하되,
    상기 그래픽 처리 장치에서 사용되는 벡터 기반의 API는 OpenVG/EGL 표준에 따른 포맷이고,
    상기 윈도우 시스템의 그래픽 처리 연산 수행을 위한 리소스들은 EGL의 평면(surface)으로 관리되며, 상기 EGL을 확장하여 구현된 평면을 사용하는 그래픽 처리 장치.
  8. 삭제
  9. 제7항에 있어서, 상기 디바이스 종속 처리부는
    상기 윈도우 시스템의 좌표계를 OpenVG 좌표계로 변환하고, 상기 윈도우 시스템의 그래픽 처리 연산을 위한 컨텍스트를 OpenVG의 오브젝트들로 표현하여, 그에 따라 그래픽 처리 연산을 수행하여 그 결과를 저장하는 그래픽 처리 장치.
  10. 제9항에 있어서, 상기 디바이스 종속 처리부는
    상기 윈도우 시스템의 그래픽 처리 연산을 위한 컨텍스트의 내용을 OpenVG의 state, paint 및 path 오브젝트로 표현하는 것인 그래픽 처리 장치.
  11. 제7항에 있어서,
    클라이언트 애플리케이션이 OpenVG와 EGL의 API를 사용하여 그래픽 유저 인터페이스(GUI) 애플리케이션을 구현하는 통로를 제공하는 OpenVG/EGL 확장부을 더 포함하는 그래픽 처리 장치.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020080096953A 2008-10-02 2008-10-02 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치 KR101520067B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080096953A KR101520067B1 (ko) 2008-10-02 2008-10-02 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치
US12/497,595 US8203567B2 (en) 2008-10-02 2009-07-03 Graphics processing method and apparatus implementing window system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080096953A KR101520067B1 (ko) 2008-10-02 2008-10-02 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020080127964A Division KR101520445B1 (ko) 2008-12-16 2008-12-16 그래픽 데이터 처리 방법
KR1020080129346A Division KR101566508B1 (ko) 2008-12-18 2008-12-18 메모리 가상화를 구현한 그래픽 처리 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20100037721A KR20100037721A (ko) 2010-04-12
KR101520067B1 true KR101520067B1 (ko) 2015-05-13

Family

ID=42075460

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080096953A KR101520067B1 (ko) 2008-10-02 2008-10-02 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치

Country Status (2)

Country Link
US (1) US8203567B2 (ko)
KR (1) KR101520067B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8669990B2 (en) * 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
US9396001B2 (en) * 2010-11-08 2016-07-19 Sony Corporation Window management for an embedded system
US8905252B2 (en) * 2013-03-13 2014-12-09 Camelbak Products, Llc Drink containers with closure retention mechanisms
CN103336816B (zh) * 2013-06-28 2017-02-08 广州市动景计算机科技有限公司 安卓***上基于GPU实现的Canvas元素渲染方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100803947B1 (ko) * 2006-12-01 2008-02-15 주식회사 코아로직 오픈 벡터그래픽 응용 프로그램 인터페이스 변환 장치와방법, 모바일 단말기, 및 그 방법이 기록된 기록매체
US20080201695A1 (en) * 2007-02-16 2008-08-21 Qing Zhou Computer graphics rendering

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0972273B1 (en) 1997-04-04 2004-03-24 Intergraph Hardware Technologies Company Apparatus and method for applying effects to graphical images
DE10242087A1 (de) 2002-09-11 2004-03-25 Daimlerchrysler Ag Bildverarbeitung auf für Vektorrechnung und Farbmischung optimierter Hardware
US7126606B2 (en) 2003-03-27 2006-10-24 Microsoft Corporation Visual and scene graph interfaces
US7817163B2 (en) 2003-10-23 2010-10-19 Microsoft Corporation Dynamic window anatomy
KR100590686B1 (ko) 2004-07-15 2006-06-19 에스케이 텔레콤주식회사 이동통신 단말기에서 3d 관련 데이터를 표시하기 위한그래픽 가속기 제어 방법
JP4244028B2 (ja) * 2004-09-22 2009-03-25 株式会社ソニー・コンピュータエンタテインメント グラフィックプロセッサ、制御用プロセッサおよび情報処理装置
KR100775093B1 (ko) 2005-04-14 2007-11-08 (주) 버추얼다임 모바일 기기에서 그래픽 메모리를 이용한 쓰리디 가속방법
US20090184977A1 (en) * 2008-01-18 2009-07-23 Qualcomm Incorporated Multi-format support for surface creation in a graphics processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100803947B1 (ko) * 2006-12-01 2008-02-15 주식회사 코아로직 오픈 벡터그래픽 응용 프로그램 인터페이스 변환 장치와방법, 모바일 단말기, 및 그 방법이 기록된 기록매체
US20080201695A1 (en) * 2007-02-16 2008-08-21 Qing Zhou Computer graphics rendering

Also Published As

Publication number Publication date
US20100085367A1 (en) 2010-04-08
US8203567B2 (en) 2012-06-19
KR20100037721A (ko) 2010-04-12

Similar Documents

Publication Publication Date Title
KR102307163B1 (ko) 크로스 플랫폼 렌더링 엔진
JP5166552B2 (ja) グラフィックス処理システムにおけるオフスクリーンサーフェスのためのマルチバッファサポート
US9715750B2 (en) System and method for layering using tile-based renderers
CN107292807B (zh) 一种图形合成方法、窗口设置方法及***
US20150193904A1 (en) Graphics acceleration for applications executing on mobile devices with multi-operating system environment
JP6271768B2 (ja) 共有されるデータチャネルを用いるシェーダパイプライン
JP2013546043A (ja) 即時リモートレンダリング
JP2013542515A (ja) 異環境間リダイレクション
CN111737019B (zh) 一种显存资源的调度方法、装置及计算机存储介质
US10319068B2 (en) Texture not backed by real mapping
US11094036B2 (en) Task execution on a graphics processor using indirect argument buffers
CN114741081B (zh) 一种基于异构缓存访问的跨运行环境显示输出共享方法
KR101520067B1 (ko) 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치
US9324299B2 (en) Atlasing and virtual surfaces
CN114820272A (zh) 数据交互的方法、装置、存储介质及电子设备
KR101566508B1 (ko) 메모리 가상화를 구현한 그래픽 처리 방법 및 그 장치
KR101520445B1 (ko) 그래픽 데이터 처리 방법
KR20120003122A (ko) 프리 로딩 기반 영상 처리 장치 및 방법, 비동기 로딩 기반 영상 처리 장치 및 방법
US9189253B2 (en) Reentrant window manager
CN113419806A (zh) 图像处理方法、装置、计算机设备和存储介质
CN112068908B (zh) 图形处理方法及相关装置和设备
US10692169B2 (en) Graphics driver virtual channels for out-of-order command scheduling for a graphics processor
CN118283331A (zh) 播放处理方法、装置和计算机可读存储介质
CN118037923A (zh) 图像渲染方法、装置、存储介质及电子设备
CN111813404A (zh) 基于混合图形显示的应用方法、介质及客户端

Legal Events

Date Code Title Description
A107 Divisional application of patent
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180423

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190422

Year of fee payment: 5