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

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

Info

Publication number
KR101399472B1
KR101399472B1 KR1020120088229A KR20120088229A KR101399472B1 KR 101399472 B1 KR101399472 B1 KR 101399472B1 KR 1020120088229 A KR1020120088229 A KR 1020120088229A KR 20120088229 A KR20120088229 A KR 20120088229A KR 101399472 B1 KR101399472 B1 KR 101399472B1
Authority
KR
South Korea
Prior art keywords
rendering
processing
image
frame
command
Prior art date
Application number
KR1020120088229A
Other languages
English (en)
Other versions
KR20140022969A (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 KR1020120088229A priority Critical patent/KR101399472B1/ko
Priority to US13/613,302 priority patent/US8952970B2/en
Priority to JP2012207021A priority patent/JP5466744B2/ja
Priority to CN201310347920.6A priority patent/CN103593168B/zh
Publication of KR20140022969A publication Critical patent/KR20140022969A/ko
Application granted granted Critical
Publication of KR101399472B1 publication Critical patent/KR101399472B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/61Scene description

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)

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)가 프레임에 대한 렌더링 이미지를 생성하는 단계와 상기 생성된 렌더링 이미지를 메모리부에 저장하는 단계를 포함하고 상기 렌더링 처리 명령을 생성하는 단계를 수행하기 위한 작업은 적어도 하나의 작업으로 분할되고, 상기 렌더링 이미지를 생성하는 단계를 수행하기 위한 작업은 적어도 하나의 작업으로 분할되며, 상기 분할된 작업은 복수의 쓰레드에 의해 동시에 처리될 수 있다.
또한, 상기 프레임 별로 상기 분할된 작업은 순차적으로 처리될 수 있다.
또한, 상기 이미지는 비트맵 형식으로 생성될 수 있다.
또한, 상기 렌더링 처리 명령을 생성하는 단계는, SG(Scene Grpah) 옵티마이저가 렌더링 처리 요청이 입력되는 프리렌더링 큐를 스캔하여 프레임 상의 동일 좌표에서 동일 이미지 생성에 대한 복수의 처리요청이 연속적으로 입력된 경우에, 상기 복수의 처리요청 중 하나의 처리요청만이 처리되도록 제어하는 단계를 포함할 수 있다.
또한, 상기 방법을 실행하기 위한 프로그램은 컴퓨터에서 판독 가능한 기록매체에 기록될 수 있다.
본 발명의 다른 양상에 따른 다중 프로세싱을 이용한 렌더링 처리 장치는, 어플리케이션 실행 윈도우(window)를 프레임 단위로 구분하고 적어도 하나의 프레임의 이미지를 렌더링 처리하기 위한 렌더링 처리 명령을 생성하는 프리렌더링 관리부(Pre-Rendering Manager)와 상기 렌더링 처리 명령에 따라 프레임에 대한 렌더링 이미지를 생성하는 렌더링 관리부(Rendering Manager) 및 상기 생성된 렌더링 이미지를 저장하기 위한 메모리부를 포함하고, 상기 프리렌더링 관리부에서 상기 렌더링 처리 명령을 생성하는 작업과 상기 렌더링 관리부에서 상기 렌더링 이미지를 생성하는 작업은 각각 적어도 하나의 작업으로 분할되고, 상기 분할된 작업은 복수의 쓰레드에 의해 동시에 처리될 수 있다.
또한, 상기 프레임 별로 상기 분할된 작업은 순차적으로 처리될 수 있다.
또한, 상기 이미지는 비트맵 형식으로 생성될 수 있다.
또한, 상기 프리렌더링 관리부는 이미지처리 이벤트 명령을 수신하는 프리렌더링 큐와 상기 프리렌더링 큐를 스캔하여 프레임 상의 동일 좌표에서 동일 이미지 생성에 대한 복수의 렌더링 처리요청이 연속적으로 입력된 경우에, 상기 복수의 렌더링 처리요청 중 하나의 처리요청만이 처리되도록 제어하는 SG 옵티마이저를 포함할 수 있다.
본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법에 의하면, 다중 프로세싱을 활용하여 프레임 단위의 이미지를 계산처리부분과 드로잉처리부분을 분리하여 복수의 쓰레드에서 동시에 처리함으로써 디바이스에서의 이미지 처리 성능을 극대화할 수 있다.
본 발명의 효과는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 종래의 렌더링 방식을 설명하기 위한 예시도이다.
도 2는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법을 적용하기 위한 윈도우의 일 예이다.
도 4는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법의 쓰레드 처리 방법을 설명하기 위한 제1 예시도이다.
도 5는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법의 쓰레드 처리 방법을 설명하기 위한 제2 예시도이다.
도 6은 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 프리렌더링 관리부의 상세 구성도이다.
도 7은 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 렌더링 관리부의 상세 구성도이다.
본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 뒤에 설명이 되는 실시 예들을 참조하면 명확해질 것이다. 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐를 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 뒤에 설명되는 용어들은 본 발명에서의 구조, 역할 및 기능 등을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.
그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 오로지 특허청구범위에 기재된 청구항의 범주에 의하여 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "..유닛", "..부" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
한편, 본 발명의 실시 예에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있으며, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
또한, 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하에서는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법을 첨부된 도면을 참고하여 설명하기로 한다.
본 발명에서 렌더링은 어플리케이션을 실행하여 화면에 표시된 윈도우(window) 상에서 이벤트가 발생하는 경우에, 이벤트에 대응하는 새로운 이미지를 생성하여 윈도우를 새롭게 구성하는 것과 같은 이미지처리에 해당한다.
본 발명에서 쓰레드는 어떤 프로그램, 특히 임의의 프로세스 내에서 실행되는 흐름의 단위를 말한다.
도 2는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 구성도이다.
상기 도 2에 도시된 바와 같이, 상기 다중 프로세싱을 이용한 렌더링 처리 장치(100)는 렌더링 엔진(rendering engine)(110) 및 메모리부(140)를 포함한다.
상기 메모리부(140)는 오퍼레이팅 시스템(operating system), 응용 프로그램(application) 및 데이터 파일을 저장할 수 있다.
렌더링 엔진(100)은 프리렌더링 관리부(pre-rendering manager)(120)와 렌더링 관리부(rendering manager)(130)를 포함한다.
프리렌더링 관리부(120)는 렌더링 전에 렌더링에 필요한 정보들을 저장하고 관리하여 최종 렌더링 명령을 생성하는 기능을 수행한다.
구체적으로 설명하면, 프리렌더링 관리부(Pre-Rendering Manager)(120)는 어플리케이션 실행 윈도우(window)를 프레임 단위로 구분하고 적어도 하나의 프레임의 이미지를 렌더링 처리하기 위한 렌더링 처리 명령을 생성한다.
도 3은 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법을 적용하기 위한 윈도우의 일 예이다.
상기 도 3에 도시된 바와 같이, 어플리케이션을 실행하면 어플리케이션 실행을 위한 윈도우(W)가 디스플레이되는데, 윈도우는 서로 구분되는 복수의 프레임(F1~F3)으로 구별될 수 있다.
이때, 윈도우 단위로 렌더링 처리를 수행하게 되면 이벤트가 특정 프레임에서 발생한 경우, 나머지 프레임은 기존과 동일한 이미지가 유지됨에도 불구하고 윈도우 전체에 대해서 렌더링 처리를 해야 하기 때문에, 렌더링 처리 속도가 저하될 수 있다.
따라서, 본 발명에서는 윈도우를 프레임 단위로 구분하고, 프레임 단위로 이미지처리를 수행함으로써, 이미지 처리 속도를 향상시킬 수 있다.
한편, 렌더링 관리부(130)는 렌더링을 수행하는 모듈로서 프리렌더링 관리부(120)에서 생성된 렌더링 처리 명령을 순차적으로 처리하여 원하는 버퍼(buffer)에 드로잉(drawing)을 수행하여 이미지를 생성한다.
이때, 상기 렌더링 관리부(130)에 의해 생성되는 이미지는 비트맵 형식으로 생성될 수 있다.
상기 프리렌더링 관리부(120)에서 상기 렌더링 처리 명령을 생성하는 작업과 상기 렌더링 관리부(130)에서 상기 렌더링 이미지를 생성하는 작업은 서로 분리되어 처리되며, 상기 렌더링 처리 명령을 생성하는 작업과 상기 렌더링 이미지를 생성하는 작업은 복수의 쓰레드에서 처리될 수 있다.
상기 렌더링 처리 명령 생성 작업은 렌더링 처리 명령의 영역의 계산과 렌더링 처리 대상 등을 확인하여 렌더링 처리 명령을 생성하는 작업 등으로 계산처리 부분이 포함되며, 상기 렌더링 이미지를 생성하는 작업은 렌더링 처리 명령에 따라 렌더링 이미지를 생성하는 작업에 해당한다.
도 4는 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법의 쓰레드 처리 방법을 설명하기 위한 제1 예시도이다.
상기 도 4는 복수의 쓰레드를 이용하여 작업을 처리하는 경우로써, 세 개의 프레임에 대한 이미지를 처리하는 경우를 설명하는 예시도이다.
상기 도 4에서는, 렌더링 관리부(130)는 이미지 1, 이미지 2 및 이미지 3에 대하여 렌더링 명령 생성 작업과 렌더링 이미지 생성 작업을 각각 계산 1, 계산 2, 계산 3 및 드로잉 1, 드로잉 2 및 드로잉 3으로 구분하고 2개의 쓰레드를 사용하여 처리한다.
하나의 쓰레드를 사용하여 위의 작업을 처리하는 경우에는 총 6개의 작업이 순차적으로 처리된다.
하지만, 두 개의 쓰레드를 사용하는 경우에는 제1처리(계산 1), 제2 처리(계산 2와 드로잉 1), 제3 처리(계산 3과 드로잉 2), 제4처리(드로잉 3)가 순차적으로 수행되며, 특정 시점(예를 들어, 제2 처리, 제3 처리 및 제4처리)에서는 렌더링 명령 생성 작업과 렌더링 이미지 생성 작업이 두 개의 쓰레드에서 동시에 처리되기 때문에 작업 처리 속도가 향상된다.
한편, 이미지 처리 속도를 더욱 향상시키기 위하여 상기 프리렌더링 관리부(120)에서 상기 렌더링 처리 명령을 생성하는 작업은 복수의 작업으로 분할되고, 분할된 복수의 작업은 복수의 쓰레드에 의해 처리될 수 있다.
도 5는 본 발명의 본 발명의 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 방법의 쓰레드 처리 방법을 설명하기 위한 제2 예시도이다.
상기 도 5에 도시된 바와 같이, 렌더링 관리부(130)는 이미지 1, 이미지 2, 이미지 3에 대한 렌더링 명령처리 부분을 두 개로 분할하여 각각 계산 1-1, 계산 1-2, 계산 2-1, 계산 2-2, 계산 3-1 및 계산 3-2로 구분하고, 렌더링 이미지 생성 부분을 드로잉 1, 드로잉 2 및 드로잉 3으로 구분하였다.
이때, 작업(쓰레드 1), 작업(쓰레드 2) 및 작업(쓰레드 3)를 사용하여 상기 작업을 처리하면, 제1 처리(계산 1-1), 제2 처리(계산 1-2 및 계산 2-1), 제3 처리(계산 3-1, 계산 2-2, 드로잉 1), 제4 처리(계산 3-2, 드로잉 2) 및 제5 처리(드로잉 3)가 순차적으로 수행된다.
특정 처리 시점에서는 복수의 쓰레드에 의해 분할 된 복수의 렌더링 처리 명령 부분과 렌더링 이미지 생성 부분이 동시에 처리되기 때문에 렌더링 처리 속도를 더욱 향상시킬 수 있다.
그리고 나서, 상기 생성된 렌더링 이미지는 메모리부(140)에 저장된다.
이하, 렌더링 엔진(110)을 구성하는 프리렌더링 관리부(120)와 렌더링 관리부(130)의 구성 및 기능을 보다 상세하게 설명하기로 한다.
도 6은 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 프리렌더링 관리부의 상세 구성도이다.
상기 도 6에 도시된 바와 같이, 프리렌더링 관리부(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)을 통해 요청을 수행하고, 응답을 받아 처리한다.
도 7은 본 발명의 일 실시예에 따른 다중 프로세싱을 이용한 렌더링 처리 장치의 렌더링 관리부의 상세 구성도이다.
상기 도 7에 도시된 바와 같이, 상기 렌더링 관리부(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 (11)

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

Priority Applications (4)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
KR20140022969A KR20140022969A (ko) 2014-02-25
KR101399472B1 true KR101399472B1 (ko) 2014-06-27

Family

ID=50065867

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US8952970B2 (ko)
JP (1) JP5466744B2 (ko)
KR (1) KR101399472B1 (ko)
CN (1) CN103593168B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102292923B1 (ko) 2014-12-15 2021-08-24 삼성전자주식회사 3d 렌더링 방법 및 장치
WO2019071600A1 (zh) * 2017-10-13 2019-04-18 华为技术有限公司 一种图像处理方法及装置
CN111163345B (zh) * 2018-11-07 2021-11-26 杭州海康威视系统技术有限公司 一种图像渲染方法及装置
CN111402349B (zh) * 2019-01-03 2023-09-08 百度在线网络技术(北京)有限公司 渲染方法、渲染装置和渲染引擎
CN111696186B (zh) * 2019-02-27 2023-09-26 杭州海康威视系统技术有限公司 界面渲染方法及装置
CN111145323B (zh) * 2019-12-27 2023-09-22 珠海金山数字网络科技有限公司 一种图像渲染方法及装置
CN111210381B (zh) * 2019-12-31 2023-07-25 广州市百果园信息技术有限公司 数据处理方法、装置、终端设备和计算机可读介质
US12045572B2 (en) 2020-03-10 2024-07-23 MeetKai, Inc. System and method for handling out of scope or out of domain user inquiries
WO2021183681A1 (en) 2020-03-10 2021-09-16 MeetKai, Inc. Parallel hypothetical reasoning to power a multi-lingual, multi-turn, multi-domain virtual assistant
US11995561B2 (en) * 2020-03-17 2024-05-28 MeetKai, Inc. Universal client API for AI services

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
US5606707A (en) * 1994-09-30 1997-02-25 Martin Marietta Corporation Real-time image processor
JPH08138060A (ja) 1994-11-04 1996-05-31 Hitachi Ltd 並列プロセッサを用いる表示処理装置
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
CN101458634B (zh) * 2008-01-22 2011-03-16 中兴通讯股份有限公司 负载均衡调度方法和装置
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
JP2014038576A (ja) 2014-02-27
US20140043345A1 (en) 2014-02-13
US8952970B2 (en) 2015-02-10
KR20140022969A (ko) 2014-02-25
CN103593168B (zh) 2016-10-05
JP5466744B2 (ja) 2014-04-09
CN103593168A (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
KR101399472B1 (ko) 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법
US8810576B2 (en) Manipulation and management of links and nodes in large graphs
JP6001221B1 (ja) グラフィックス処理のための任意の制御ポイントでのフォールトトレラントプリエンプションメカニズム
JP4166376B2 (ja) ディジタル・ビデオ信号処理装置及び方法
US20150091895A1 (en) Method and apparatus for accelerating ray tracing
US20120105446A1 (en) Building controllable clairvoyance device in virtual world
CN109298806B (zh) 一种基于对象识别的远程快速界面交互方法及装置
JP2015125509A (ja) 画像処理装置、画像処理方法およびプログラム
EP4198962A1 (en) Systems and methods for interactively presenting a visible portion of a rendering surface on a user device
US20180173486A1 (en) Systems, methods, and devices for animation on tiled displays
US20140059114A1 (en) Application service providing system and method and server apparatus and client apparatus for application service
US20170277408A1 (en) Optimizing Window Resize Actions for Remoted Applications
US9965134B2 (en) Method and apparatus for providing a user interface for a file system
CN110192225B (zh) 无序像素着色器导出
US10289656B2 (en) Efficiently relocating objects within a digital document to an equidistant position relative to reference objects
KR20130097886A (ko) 렌더링 장치 및 그 방법
KR101399473B1 (ko) 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법
EP3770861A1 (en) Distributed multi-context interactive rendering
US8279239B1 (en) Graphical user interface for performing deformations
CN109388457B (zh) 一种多场景的远程快速界面交互方法及装置
JP2013080466A (ja) 文書画像の処理方法及び装置
US20090210816A1 (en) Switchable panel layout extension
JP2015160085A (ja) 医用画像表示装置
KR102434428B1 (ko) 합성 영상 생성 방법, 합성 영상 생성 장치 및 상기 방법을 실행시키기 위하여 기록매체에 저장된 컴퓨터 프로그램
US10186071B2 (en) Rendering system and method for generating ray

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