KR101399473B1 - 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법 - Google Patents

다중 프로세싱을 이용한 렌더링 처리 장치 및 방법 Download PDF

Info

Publication number
KR101399473B1
KR101399473B1 KR20120088236A KR20120088236A KR101399473B1 KR 101399473 B1 KR101399473 B1 KR 101399473B1 KR 20120088236 A KR20120088236 A KR 20120088236A KR 20120088236 A KR20120088236 A KR 20120088236A KR 101399473 B1 KR101399473 B1 KR 101399473B1
Authority
KR
South Korea
Prior art keywords
rendering
processing
frame
image
command
Prior art date
Application number
KR20120088236A
Other languages
English (en)
Other versions
KR20140022143A (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 KR20120088236A priority Critical patent/KR101399473B1/ko
Priority to US13/613,339 priority patent/US8952971B2/en
Priority to JP2012207022A priority patent/JP5972733B2/ja
Priority to CN201310347791.0A priority patent/CN103593383A/zh
Publication of KR20140022143A publication Critical patent/KR20140022143A/ko
Application granted granted Critical
Publication of KR101399473B1 publication Critical patent/KR101399473B1/ko

Links

Images

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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Abstract

본 발명은 다중 프로세싱을 이용한 렌더링 처리 방법에 관한 것이다. 상기 방법은 프리렌더링 관리부(Pre-Rendering Manager)가 어플리케이션 실행 윈도우(window)를 프레임 단위로 구분하고 프레임 별로 렌더링 처리하기 위한 렌더링 처리 명령을 생성하는 단계, 상기 렌더링 처리 명령에 따라 렌더링 관리부(Rendering Manager)가 프레임 단위 렌더링 이미지를 생성하는 단계, 상기 생성된 렌더링 이미지를 메모리부에 저장하는 단계를 포함하고, 상기 렌더링 처리 명령을 생성하는 단계와 상기 렌더링 이미지를 생성하는 단계는 복수의 쓰레드에 의해 처리된다. 상기 방법에 의하면, 렌더링 처리 속도를 향상시킬 수 있다.

Description

다중 프로세싱을 이용한 렌더링 처리 장치 및 방법{METHOD AND APPARATUS FOR RENDERING PROCESSING BY USING MULTIPLE PROCESSINGS}
본 발명은 렌더링 처리 장치 및 방법에 관한 것으로, 프레임 단위의 이미지의 처리에 있어서 복수의 쓰레드를 동시에 처리하여 렌더링 처리 성능을 극대화할 수 있는 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법에 관한 것이다.
기존의 렌더링(rendering)방식은 중앙처리프로세서(CPU)가 단일 코어(Core)를 기준으로 쓰레드를 사용하지 않고, 단일 프로세스에서 더블 버퍼링(double buffering) 활용하여 이미지를 처리하거나, 성능의 이슈가 있을 경우에 쓰레드를 1개 정도 만들고 화면 전체의 생성하는 방식이었다.
도 1은 종래의 렌더링 방식을 설명하기 위한 예시도이다. 상기 도 1에 도시된 바와 같이, 종래의 렌더링 방식에서는 공유 메모리 상에서 하나의 쓰레드(단일 작업)만을 처리하기 때문에, 렌더링 처리 속도가 느리게 된다.
종래의 렌더링 방식은 복수의 프레임에 포함된 이미지를 처리하는데 많은 시간이 소요되기 때문에, 최근 노트북, PC, 태플릿 PC 또는 스마트폰과 같은 디바이스에 장착되는 CPU가 멀티코어(multi core), 예를 들어 4 코어 이상으로 발전하고 있는 상황에서, 이미지를 빠르게 처리할 수 있는 기술이 요구되고 있다.
본 발명은 프레임 단위의 이미지를 처리함에 있어서 복수의 쓰레드를 동시에 처리하여 이미지 처리 성능을 향상시킬 수 있는 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법을 제공하는 것을 목적으로 한다.
본 발명의 목적은 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 일 양상에 따른 다중 프로세싱을 이용한 렌더링 처리 방법은 프리렌더링 관리부(Pre-Rendering Manager)가 어플리케이션 실행 윈도우(window)를 프레임 단위로 구분하고 프레임 별로 렌더링 처리하기 위한 렌더링 처리 명령을 생성하는 단계, 상기 렌더링 처리 명령에 따라 렌더링 관리부(Rendering Manager)가 프레임 단위 렌더링 이미지를 생성하는 단계, 및 상기 생성된 렌더링 이미지를 메모리부에 저장하는 단계를 포함하고, 상기 렌더링 처리 명령을 생성하는 단계와 상기 렌더링 이미지를 생성하는 단계는 복수의 쓰레드에 의해 처리된다.
상기 렌더링 처리 명령을 생성하는 단계에서, 상기 프리렌더링 관리부는 상기 프레임 별 렌더링 처리 순서에 따라 상기 렌더링 처리 명령을 생성할 수 있다.
상기 렌더링 이미지를 생성하는 단계에서, 상기 렌더링 관리부(Rendering Manager)는 상기 렌더링 처리 명령을 순차적으로 처리할 수 있다.
상기 렌더링 이미지는 비트맵 형식으로 생성될 수 있다.
상기 렌더링 처리 명령을 생성하는 단계는 SG(Scene Grpah) 옵티마이저가 렌더링 처리 명령이 입력되는 프리렌더링 큐를 스캔하여 프레임 상의 동일 좌표에서 동일 이미지 생성에 대한 복수의 처리요청이 연속적으로 입력된 경우에, 상기 SG(Scene Grpah) 옵티마이저가 상기 복수의 처리요청 중 하나의 처리요청만이 처리되도록 제어하는 단계를 포함할 수 있다.
상기 방법은 실행하기 위한 프로그램은 컴퓨터에서 판독 가능한 기록 매체에 저장될 수 있다.
상기 과제를 해결하기 위한 본 발명의 다른 양상에 따른 다중 프로세싱을 이용한 렌더링 처리 장치는 어플리케이션 실행 윈도우(window)를 프레임 단위로 구분하고 프레임 별로 렌더링 처리하기 위한 렌더링 처리 명령을 생성하는 프리렌더링 관리부(Pre-Rendering Manager), 상기 렌더링 처리 명령에 따라 프레임 단위의 렌더링 이미지를 생성하기 위한 렌더링 관리부(Rendering Manager), 및 상기 생성된 렌더링 이미지를 저장하기 위한 메모리부를 포함하고, 상기 프리렌더링 관리부의 렌더링 처리 명령 생성과 상기 렌더링 관리부의 렌더링 이미지 생성은 복수의 쓰레드에 의해 처리된다.
상기 프리렌더링 관리부는 상기 프레임 별 렌더링 처리 순서에 따라 상기 렌더링 처리 명령을 생성할 수 있다.
상기 렌더링 관리부(Rendering Manager)는 상기 렌더링 처리 명령을 순차적으로 처리할 수 있다.
상기 렌더링 이미지는 비트맵 형식으로 생성될 수 있다.
상기 프리렌더링 관리부는 이미지처리 이벤트 명령을 수신하는 프리렌더링 큐와, 상기 프리렌더링 큐를 스캔하여 프레임 상의 동일 좌표에서 동일 이미지 생성에 대한 복수의 처리요청이 연속적으로 입력된 경우에, 상기 복수의 처리요청 중 하나의 처리요청만이 처리되도록 제어하는 SG 옵티마이저를 포함할 수 있다.
본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법에 의하면, 다중 프로세싱을 활용하여 프레임 단위로 복수의 쓰레드를 이용하여 렌더링 처리함으로써 디바이스에서의 이미지 처리 성능을 극대화할 수 있다.
본 발명의 효과는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 종래의 렌더링 방식을 설명하기 위한 예시도이다.
도 2는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법을 적용하기 위한 윈도우의 일 예이다.
도 4는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법의 쓰레드 처리 방법을 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 프리렌더링 관리부의 상세 구성도이다.
도 6은 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 렌더링 관리부의 상세 구성도이다.
본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 뒤에 설명이 되는 실시 예들을 참조하면 명확해질 것이다. 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐를 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 뒤에 설명되는 용어들은 본 발명에서의 구조, 역할 및 기능 등을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.
그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 오로지 특허청구범위에 기재된 청구항의 범주에 의하여 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부" 또는 "..유닛" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
한편, 본 발명의 실시 예에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있으며, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
또한, 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하에서는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법을 첨부된 도면을 참고하여 설명하기로 한다.
본 발명에서 렌더링은 어플리케이션을 실행하여 화면에 표시된 윈도우(window) 상에서 이벤트가 발생하는 경우에, 이벤트에 대응하는 새로운 이미지를 생성하여 윈도우를 새롭게 구성하는 것과 같은 이미지처리에 해당한다.
본 발명에서 쓰레드(thread)는 어떤 프로그램, 특히 임의의 프로세스 내에서 실행되는 흐름의 단위를 말한다.
도 2는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 구성도이다. 상기 도 2에 도시된 바와 같이, 상기 다중 프로세싱을 이용한 렌더링 처리 장치(100)는 렌더링 엔진(rendering engine)(110) 및 메모리부(140), 를 포함한다.
상기 메모리부(140)는 오퍼레이팅 시스템(operating system), 응용 프로그램(application) 및 데이터 파일을 저장할 수 있다. 렌더링 엔진(100)은 프리렌더링 관리부(pre-rendering manager)(120)와 렌더링 관리부(rendering manager)(130)를 포함한다.
프리렌더링 관리부(120)는 렌더링 전에 렌더링에 필요한 정보들을 저장하고 관리하여 최종 렌더링 명령을 생성하는 기능을 수행한다.
구체적으로 설명하면, 상기 프리렌더링 관리부(120)는 어플리케이션을 실행하면 화면 상에 표시되는 윈도우(window)를 프레임 단위로 구분하고, 프레임 단위로 렌더링 처리하기 위한 렌더링 처리 명령을 생성한다.
도 3은 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법을 적용하기 위한 윈도우의 일 예이다. 상기 도 3에 도시된 바와 같이, 어플리케이션을 실행하면 어플리케이션 실행을 위한 윈도우(W)가 디스플레이되는데, 윈도우는 서로 구분되는 복수의 프레임(F1~F3)을 포함할 수 있다.
이때, 윈도우 단위로 렌더링 처리를 수행하게 되면 이벤트가 특정 프레임에서 발생한 경우, 나머지 프레임은 기존과 동일한 이미지가 유지됨에도 불구하고 윈도우 전체에 대해서 렌더링 처리를 해야 하기 때문에, 렌더링 처리 속도가 저하될 수 있다.
따라서, 본 발명에서는 윈도우를 프레임 단위로 구분하고, 프레임 단위로 이미지처리를 수행함으로써, 이미지 처리 속도를 향상시킬 수 있다.
상기 프리렌더링 관리부(120)는 상기 프레임 별 렌더링 처리 순서에 따라 상기 렌더링 처리 명령을 생성한다. 프리렌더링 관리부(120)에는 프레임 단위로 렌더링 처리를 위한 처리 요청이 순차적으로 입력되는데, 프리렌더링 관리부(120)는 입력된 처리요청 순서에 따라 렌더링 처리 명령을 생성하고, 생성된 렌더링 처리 명령을 렌더링 관리부(130)로 전송한다.
한편, 렌더링 관리부(130)는 렌더링을 수행하는 모듈로서 프리렌더링 관리부(120)에서 생성된 렌더링 처리 명령을 순차적으로 처리하여 원하는 버퍼(buffer)에 드로잉(drawing)을 수행하여 이미지를 생성한다.
이때, 상기 렌더링 관리부(130)에 의해 생성되는 이미지는 비트맵 형식으로 생성될 수 있다.
렌더링 처리 속도를 향상시키기 위하여 본 발명에서는 상기의 프리렌더링 관리부(120)가 렌더링 처리 명령을 생성하기 위한 작업과 상기 렌더링 관리부(130)가 렌더링 이미지 생성을 처리하기 위하여 복수의 쓰레드가 사용될 수 있다.
단일 쓰레드가 사용되는 경우에는 특정 시점에서는 하나의 쓰레드만이 사용되기 때문에 특정 시점에서 렌더링 처리 명령 생성 작업 또는 렌더링 이미지 생성 작업 중 하나만 처리되지만, 복수의 쓰레드를 사용하는 경우에는 복수의 렌더링 처리 명령 작업과 렌더링 이미지 생성 작업이 동시에 처리될 수 있기 때문에 렌더링 처리 속도를 극대화시킬 수 있다.
도 3은 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법의 쓰레드 처리 방법을 설명하기 위한 예시도이다. 상기 도 3에 도시된 바와 같이, 예를 들어, 특정 시점에서는 4개의 쓰레드에 의해 복수의 렌더링 처리 명령 생성 작업과 렌더링 이미지 생성 작업이 처리될 수 있기 때문에, 렌더링 처리 속도를 더욱 향상시킬 수 있다 .
그리고 나서, 상기 생성된 렌더링 이미지는 메모리부(140)에 저장된다.
이하, 렌더링 엔진(110)을 구성하는 프리렌더링 관리부(120)와 렌더링 관리부(130)의 구성 및 기능을 보다 상세하게 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 프리렌더링 관리부의 상세 구성도이다.
상기 도 4에 도시된 바와 같이, 프리렌더링 관리부(120)는 프리렌더링 큐(pre-rendering queue)(121), 로케이션 어드저스터(location adjuster)(122), 복수의 씬 그래프(scene graph, SG)(123), SG 메니퓰레이터(SG manipulator), SG 옵티마이저(SG optimizer) 및 SG 커맨더(SG commander)(126)를 포함한다.
상기 프리랜더링 큐(121)는 렌더링 처리 요청을 입력 받고 이에 대응하는 렌더링 처리 명령을 생성하는 기능을 수행한다. 상기 프리렌더링 큐(121)에 입력되는 렌더링 요청은 크게 세 가지로 구분할 수 있다. 첫 번째로는 엘리먼트 인터페이스(element interface)를 통해 명령이 입력될 수 있다. 두 번째로는 디스플레이 상의 화면에서 특정 좌표에 대한 요청이 들어오면, 렌더링 엔진(110)에 포함된 히트테스트 매니저(hittest manager)(미도시)로부터 해당 좌표에 대한 엘리먼트에 대한 명령이 입력될 수 있다. 또한, 세 번째로는 드로잉 인터페이스(drawing interface)와 페인터(painter)를 포함하는 캔버스 모듈로부터 명령이 입력될 수 있다. 상기 명령은 렌더링 처리의 대상에 대한 정보를 포함할 수 있다.
상기 로케이션 어드저스터(122)는 위치 관련 정보를 처리하기 위한 모듈로서, 렌더링을 위한 좌표계 보정 처리 및 변환(transformation)을 고려한 업데이트 렉(Update Rect)처리를 수행한다.
상기 로케이션 어드저스트(122)는 화면 상에 윈도우가 중첩되어 뒤에 위치한 윈도우의 프레임 중에서 가려진 부분에 대해서는 렌더링 처리가 수행되지 않도록 렌더링 처리 영역에서 제외시킬 수 있다. 상기 씬 그래프(123)은 렌더링을 위해 유지해야 하는 정보를 저장 및 관리하며, 상기 씬 그래프(123)는 깊이 우선 비순환 그래프(depth first acyclic graph)에 해당한다. 또한, 씬 그래프(123)는 드로잉 순서와 포함관계를 나타내며, 업데이트된 영역을 기준으로 렌더링을 해야 할 대상을 결정하며, 결정된 노드(node)로부터 렌더링 처리 명령을 생성한다.
상기 SG 메니퓰레이터(124)는 씬 그래프(123)의 노드의 추가, 삭제, 삽입 또는 이동의 작업을 처리하며, 씬 그래프(123)의 내용을 변경하는 기능을 수행한다.
상기 SG 옵티마이저(125)는 씬 그래프(123)의 내용을 토대로 최적화를 수행한다.
특히, 상기 SG 옵티마이저(125)는 프리렌더링 큐(121)를 스캔하여 프레임 상의 동일 좌표에서 동일 이미지 생성에 대한 렌더링 처리 요청이 연속적으로 입력된 경우에, 상기 복수의 처리 요청 중 하나의 처리 요청만이 처리되도록 제어할 수 있다.
상기 SG 커맨더(126)는 로케이션 어드저스터(122)에서 생성된 업데이트 영역을 기준으로 렌더링 처리 명령을 생성한다.
상기 히트테스트 매니저는 히트테스트 관련 정보를 처리하며, 요청한 좌표를 기준으로 어떤 엘리먼트가 히트 되었는지를 구한다. 또한, 씬 그래프(123)를 사용하기 위하여 프리렌더링 큐(121)을 통해 요청을 수행하고, 응답을 받아 처리한다.
도 5는 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 렌더링 관리부의 상세 구성도이다. 상기 도 5에 도시된 바와 같이, 상기 렌더링 관리부(130)는 렌더링 처리 명령을 수행하기 위한 렌더링 큐(131)와 드로잉을 수행하기 위한 페인터(132)와 렌더링 API(Application Programming Interface) 라이브러리인 VGLib(133)을 포함한다.
상기 페인터(132)는 VGLib(133)을 사용하기 위한 인터페이스를 가지며, 드로잉 버퍼(drawing buffer)에 그림을 그리기 위한 모듈에 해당한다. 상기 캔버스 모듈을 통해 드로잉하는 경우에는 페인터(132)를 이용하여 직접 이미지를 그릴 수 있다.
한편, 상기에서 설명한 다중 프로세싱을 이용한 렌더링 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서는 첨부된 도면들을 참조하면서 본 발명의 실시 예를 설명하였지만, 본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 안되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100: 렌더링 처리 장치 110: 렌더링 엔진
120: 프리렌더링 관리부 130: 렌더링 관리부
140: 메모리부 W: 윈도우
F1~F3: 프레임

Claims (15)

  1. 프리렌더링 관리부(Pre-Rendering Manager)가 어플리케이션 실행 윈도우(window)를 프레임 단위로 구분하고 프레임 별로 렌더링 처리하기 위한 렌더링 처리 명령을 생성하는 단계;
    상기 렌더링 처리 명령에 따라 렌더링 관리부(Rendering Manager)가 프레임 단위 렌더링 이미지를 생성하는 단계; 및
    상기 생성된 렌더링 이미지를 메모리부에 저장하는 단계를 포함하고,
    상기 렌더링 처리 명령을 생성하는 단계와 상기 렌더링 이미지를 생성하는 단계는 복수의 쓰레드에 의해 동시에 처리되는
    다중 프로세싱을 이용한 렌더링 처리 방법.
  2. 제1항에 있어서,
    상기 렌더링 처리 명령을 생성하는 단계에서, 상기 프리렌더링 관리부는 상기 프레임 별 렌더링 처리 순서에 따라 상기 렌더링 처리 명령을 생성하는
    다중 프로세싱을 이용한 렌더링 처리 방법.
  3. 제2항에 있어서,
    상기 렌더링 이미지를 생성하는 단계에서, 상기 렌더링 관리부(Rendering Manager)는 상기 렌더링 처리 명령을 순차적으로 처리하는
    다중 프로세싱을 이용한 렌더링 처리 방법.
  4. 제1항에 있어서,
    상기 렌더링 이미지는 비트맵 형식으로 생성되는
    다중 프로세싱을 이용한 렌더링 처리 방법.
  5. 제1항에 있어서,
    상기 렌더링 처리 명령을 생성하는 단계는
    SG(Scene Graph) 옵티마이저가 렌더링 처리 명령이 입력되는 프리렌더링 큐를 스캔하여 프레임 상의 동일 좌표에서 동일 이미지 생성에 대한 복수의 처리요청이 연속적으로 입력된 경우에, 상기 SG(Scene Graph) 옵티마이저가 상기 복수의 처리요청 중 하나의 처리요청만이 처리되도록 제어하는 단계를 포함하는,
    다중 프로세싱을 이용한 렌더링 처리 방법.
  6. 제1항 내지 제5항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는
    컴퓨터에서 판독 가능한 기록 매체.
  7. 어플리케이션 실행 윈도우(window)를 프레임 단위로 구분하고 프레임 별로 렌더링 처리하기 위한 렌더링 처리 명령을 생성하는 프리렌더링 관리부(Pre-Rendering Manager);
    상기 렌더링 처리 명령에 따라 프레임 단위의 렌더링 이미지를 생성하기 위한 렌더링 관리부(Rendering Manager); 및
    상기 생성된 렌더링 이미지를 저장하기 위한 메모리부를 포함하고,
    상기 프리렌더링 관리부의 렌더링 처리 명령 생성과 상기 렌더링 관리부의 렌더링 이미지 생성은 복수의 쓰레드에 의해 동시에 처리되는,
    다중 프로세싱을 이용한 렌더링 처리 장치.
  8. 제7항에 있어서,
    상기 프리렌더링 관리부는 상기 프레임 별 렌더링 처리 순서에 따라 상기 렌더링 처리 명령을 생성하는
    다중 프로세싱을 이용한 렌더링 처리 장치.
  9. 제8항에 있어서,
    상기 렌더링 관리부(Rendering Manager)는 상기 렌더링 처리 명령을 순차적으로 처리하는
    다중 프로세싱을 이용한 렌더링 처리 장치.
  10. 제7항에 있어서,
    상기 렌더링 이미지는 비트맵 형식으로 생성되는
    다중 프로세싱을 이용한 렌더링 처리 장치.
  11. 제7항에 있어서,
    상기 프리렌더링 관리부는 이미지처리 이벤트 명령을 입력받는 프리렌더링 큐와;
    상기 프리렌더링 큐를 스캔하여 프레임 상의 동일 좌표에서 동일 이미지 생성에 대한 복수의 처리요청이 연속적으로 입력된 경우에, 상기 복수의 처리요청 중 하나의 처리요청만이 처리되도록 제어하는 SG(Scene Graph) 옵티마이저를 포함하는,
    다중 프로세싱을 이용한 렌더링 처리 장치.
  12. 제1항에 있어서,
    화면 상에 어플리케이션 실행 윈도우가 겹쳐 있는 경우, 뒤에 위치한 어플리케이션 실행 윈도우 상에서 앞의 어플리케이션 실행 윈도우에 의해 가려진 프레임에 대해서는 렌더링 처리가 수행되지 않는,
    다중 프로세싱을 이용한 렌더링 처리 방법.
  13. 제1항에 있어서,
    상기 렌더링 처리 명령을 생성하는 단계는,
    SG(Scene Graph) 메니퓰레이터가 렌더링을 해야할 대상에 대한 노드의 추가, 삭제, 삽입 또는 이동의 작업을 처리하는 단계를 포함하는,
    다중 프로세싱을 이용한 렌더링 처리 방법.
  14. 제7항에 있어서,
    상기 프리렌더링 관리부는 화면 상에 어플리케이션 실행 윈도우가 겹쳐 있는 경우, 뒤에 위치한 어플리케이션 실행 윈도우 상에서 앞의 어플리케이션 실행 윈도우에 의해 가려진 프레임에 대해서는 렌더링 처리 명령을 생성하지 않는,
    다중 프로세싱을 이용한 렌더링 처리 장치.
  15. 제7항에 있어서,
    상기 프리렌더링 관리부는 렌더링을 해야할 대상에 대한 노드의 추가, 삭제, 삽입 또는 이동의 작업을 처리하는 SG(Scene Graph) 메니퓰레이터를 포함하는,
    다중 프로세싱을 이용한 렌더링 처리 장치.
KR20120088236A 2012-08-13 2012-08-13 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법 KR101399473B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR20120088236A KR101399473B1 (ko) 2012-08-13 2012-08-13 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법
US13/613,339 US8952971B2 (en) 2012-08-13 2012-09-13 Rendering processing apparatus and method using multiprocessing
JP2012207022A JP5972733B2 (ja) 2012-08-13 2012-09-20 多重プロセシングを用いたレンダリング処理装置及び方法
CN201310347791.0A CN103593383A (zh) 2012-08-13 2013-08-09 利用多重处理的渲染处理装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20120088236A KR101399473B1 (ko) 2012-08-13 2012-08-13 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140022143A KR20140022143A (ko) 2014-02-24
KR101399473B1 true KR101399473B1 (ko) 2014-05-28

Family

ID=50065868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20120088236A KR101399473B1 (ko) 2012-08-13 2012-08-13 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법

Country Status (4)

Country Link
US (1) US8952971B2 (ko)
JP (1) JP5972733B2 (ko)
KR (1) KR101399473B1 (ko)
CN (1) CN103593383A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10382518B2 (en) 2016-03-22 2019-08-13 Google Llc Low latency applications using multiple servers
CN109213607B (zh) * 2017-06-30 2021-07-23 武汉斗鱼网络科技有限公司 一种多线程渲染的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003510704A (ja) * 1999-09-24 2003-03-18 サン・マイクロシステムズ・インコーポレイテッド シーン・ベース・プログラムの高速処理の方法およびシステム
KR20110000532A (ko) * 2009-06-26 2011-01-03 인텔 코오퍼레이션 그래픽 분석 기법들

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08138060A (ja) 1994-11-04 1996-05-31 Hitachi Ltd 並列プロセッサを用いる表示処理装置
JP4100945B2 (ja) 2002-03-27 2008-06-11 富士通株式会社 図形描画装置
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
JP4718993B2 (ja) 2005-12-26 2011-07-06 株式会社東芝 描画装置及び描画方法
US7940261B2 (en) * 2007-01-10 2011-05-10 Qualcomm Incorporated Automatic load balancing of a 3D graphics pipeline
JP5338298B2 (ja) * 2008-12-19 2013-11-13 カシオ計算機株式会社 ページ閲覧装置およびプログラム
JP5672311B2 (ja) 2010-12-22 2015-02-18 富士通株式会社 同期処理方法
US8566694B2 (en) * 2011-04-04 2013-10-22 Xerox Corporation Multi-dimensional documents for parallel content display on a single screen for multiple viewers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003510704A (ja) * 1999-09-24 2003-03-18 サン・マイクロシステムズ・インコーポレイテッド シーン・ベース・プログラムの高速処理の方法およびシステム
KR20110000532A (ko) * 2009-06-26 2011-01-03 인텔 코오퍼레이션 그래픽 분석 기법들

Also Published As

Publication number Publication date
CN103593383A (zh) 2014-02-19
JP2014038577A (ja) 2014-02-27
US20140043346A1 (en) 2014-02-13
KR20140022143A (ko) 2014-02-24
JP5972733B2 (ja) 2016-08-17
US8952971B2 (en) 2015-02-10

Similar Documents

Publication Publication Date Title
KR101399472B1 (ko) 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법
JP6001221B1 (ja) グラフィックス処理のための任意の制御ポイントでのフォールトトレラントプリエンプションメカニズム
US8810576B2 (en) Manipulation and management of links and nodes in large graphs
JP4166376B2 (ja) ディジタル・ビデオ信号処理装置及び方法
US20120105446A1 (en) Building controllable clairvoyance device in virtual world
US20200142571A1 (en) Optimizing Window Resize Actions for Remoted Applications
US20160291846A1 (en) Generating carousel user interface with graphics processing unit
CN109298806B (zh) 一种基于对象识别的远程快速界面交互方法及装置
US8970613B2 (en) Render tree caching
EP4198962A1 (en) Systems and methods for interactively presenting a visible portion of a rendering surface on a user device
KR101953133B1 (ko) 렌더링 장치 및 그 방법
US9965134B2 (en) Method and apparatus for providing a user interface for a file system
KR101399473B1 (ko) 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법
CN114237532A (zh) 基于Linux嵌入式系统的多窗口实现方法、装置及介质
US10373286B2 (en) Method and apparatus for performing tile-based rendering
JP2010175638A (ja) 表示装置及び表示装置の表示方法
US9633408B2 (en) Coalescing graphics operations
JP6254018B2 (ja) 医用画像表示装置
US20090210816A1 (en) Switchable panel layout extension
EP3770861A1 (en) Distributed multi-context interactive rendering
KR101652483B1 (ko) 개체에 대한 꾸미기 효과 처리가 가능한 전자 문서 편집 장치 및 방법
US9159160B1 (en) Texture sharing between application modules
US20150243057A1 (en) Methods of rendering graphics by stroking paths
EP2535873A2 (en) Techniques for synchronizing hardware accelerated graphics rendering and surface composition
KR20140116600A (ko) 그래픽 렌더링에서의 프래그먼트 제어 방법 및 장치

Legal Events

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

Payment date: 20170512

Year of fee payment: 6