KR20080037978A - 전력 소모를 최소화하는 그래픽스 데이터 렌더링 방법 및장치 - Google Patents

전력 소모를 최소화하는 그래픽스 데이터 렌더링 방법 및장치 Download PDF

Info

Publication number
KR20080037978A
KR20080037978A KR1020060105337A KR20060105337A KR20080037978A KR 20080037978 A KR20080037978 A KR 20080037978A KR 1020060105337 A KR1020060105337 A KR 1020060105337A KR 20060105337 A KR20060105337 A KR 20060105337A KR 20080037978 A KR20080037978 A KR 20080037978A
Authority
KR
South Korea
Prior art keywords
rendering
data
voltage
setting
frequency
Prior art date
Application number
KR1020060105337A
Other languages
English (en)
Other versions
KR101217559B1 (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 KR1020060105337A priority Critical patent/KR101217559B1/ko
Priority to US11/889,329 priority patent/US8253722B2/en
Publication of KR20080037978A publication Critical patent/KR20080037978A/ko
Application granted granted Critical
Publication of KR101217559B1 publication Critical patent/KR101217559B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • 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)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

3차원 그래픽스 데이터 렌더링 방법 및 장치가 개시된다. 이 렌더링 방법은 그래픽 데이터에 포함된 객체들 중 상기 현재 프레임에서의 렌더링 결과와 이전 프레임에서의 렌더링 결과가 다른 렌더링 객체를 선택하고, 선택된 렌더링 객체를 고려하여 데이터를 렌더링하기 위한 동작 전압 및 동작 주파수를 설정하고, 설정된 동작 전압 및 동작 주파수에 따라 상기 이전 데이터의 렌더링 결과를 참조하여 상기 데이터를 렌더링함으로써 렌더링의 전력 소비를 최소화할 수 있다.

Description

전력 소모를 최소화하는 그래픽스 데이터 렌더링 방법 및 장치{Method and Apparatus of rendering 3D graphics data to minimize power consumption}
도 1a은 본 발명의 제 1 실시예에 따른 렌더링 장치의 구성을 도시한 블록도이다.
도 1b는 본 발명의 제 2 실시예에 따른 렌더링 장치의 구성을 도시한 블록도이다.
도 1c는 본 발명의 제 3 실시예에 따른 렌더링 장치의 구성을 도시한 블록도이다.
도 2a는 시점이 변경된 경우 객체들의 출력이미지를 도시한 것이다.
도 2b는 시점이 고정된 경우 객체들의 출력 이미지를 도시한 것이다.
도 3은 동적 전력 스케일링 기법을 설명하기 위한 참고도이다.
도 4는 도 1에 도시된 저장부(170)에 렌더링 영역과 이에 대응되는 렌더링 전압 및 주파수의 설정값이 저장된 것을 도시한 참고도이다.
도 5는 본 발명의 일 실시예에 따른 렌더링 방법의 플로우차트이다.
도 6은 도 5에 도시된 제 570 및 580단계의 보다 자세한 플로우차트이다.
본 발명은 3차원 그래픽스 데이터를 렌더링하는 방법 및 장치에 관한 것으로서, 특히 그래픽스 데이터를 렌더링하는데 소비되는 전력을 최소화하기 위한 렌더링 방법 및 장치에 관한 것이다.
일반적으로 3차원 그래픽스 데이터는 프레임(frame) 단위로 입력되는데, 입력된 그래픽스 데이터를 렌더링하는 과정은 다음과 같다.
우선, 현재 프레임에 해당되는 그래픽스 데이터가 입력되면 렌더링 엔진은 화면을 구성하는 각 픽셀의 깊이 값을 저장하는 Z 버퍼(Z buffer)와 각 픽셀의 색상 값을 저장하는 백 버퍼(Back buffer)를 초기화한다. 이 때, Z 버퍼의 깊이 값은 이 버퍼가 표현할 수 있는 최대의 깊이 값으로 갱신되고, 백 버퍼의 색상 값은 최종적으로 처리된 이미지의 배경(background)에 해당하는 색상 값으로 갱신된다.
그 후에, 렌더링 엔진은 입력된 그래픽스 데이터에 포함된 모든 객체에 변환(transformation), 라이팅(lighting) 및 래스터화(Rasterization) 과정을 수행한다. 변환 과정이란 3차원 객체를 2차원으로 변환하는 과정이고, 라이팅 과정이란 변환된 객체에 광원(light source)에 따른 시각적 효과를 표현하는 과정이며, 래스터화 과정은 변환된 객체를 구성하는 픽셀들 각각의 정확한 색상을 지정하는 과정이다.
래스터화 과정에서 렌더링 엔진은 객체를 구성하는 각 픽셀의 깊이 값 및 색상 값을 계산하고, 픽셀별로 계산된 깊이 값과 깊이 버퍼의 깊이 값을 비교하여 계산된 깊이 값이 깊이 버퍼의 깊이 값보다 시점에서 더 가까운 경우 해당 픽셀의 깊 이 값으로 깊이 버퍼를 갱신하고, 해당 픽셀의 색상 값으로 색상 버퍼를 갱신한다. 이는 실제로 보이는 객체들만 화면에 출력하기 위하여 각 픽셀의 가시성(visibility)을 테스트하는 것이다.
렌더링 엔진은 입력된 데이터에 포함된 모든 객체에 대하여 래스터화 과정이 끝나면 최종적으로 백 버퍼에 저장된 각 픽셀의 색상 값을 프런트 버퍼(Front buffer)로 전달하여 렌더링된 이미지를 화면에 출력한다. 그 후에 렌더링 엔진은 다음 프레임의 그래픽스 데이터가 입력되면 다시 Z 버퍼 및 백 버퍼를 초기화하고, 입력된 그래픽스 데이터에 포함된 객체들에 대하여 상기 변환, 라이팅 및 래스터화 과정을 반복하여 수행한다.
이러한 일련의 처리 과정을 그래픽스 파이프라인이라 하는데, 그래픽스 파이프라인에서의 처리는 어느 한 곳이라도 늦은 부분이 있으면 전체 파이프라인의 속도가 저하되는 특징을 가진다. 따라서 일반적으로 렌더링 엔진마다 마감 시간(dead line)을 가지고, 각 마감 시간 내에서 전원 공급 장치로부터 전력을 공급받아 프레임별 데이터를 렌더링하여, 렌더링 결과를 화면으로 출력한다.
최근 들어, 3휴대 전화와 같은 모바일 기기에서 3차원 그래픽스 데이터 렌더링을 지원하는 경우가 증가하고 있다. 이러한 모바일 기기는 배터리(battery)의 용량 한계에 따라, 데스크 탑 컴퓨터 등과는 달리 저전력에서 동작하는 것이 필수적으로 요구되므로 전력 소모를 최소화할 것이 요구된다.
따라서 본 발명이 이루고자 하는 기술적 과제는 그래픽스 데이터의 렌더링 연산량을 감소시키고, 감소된 연산량을 고려하여 설정된 렌더링 전압 및 주파수에 따라 그래픽스 데이터를 렌더링함으로써 렌더링 전력 소모를 최소화할 수 있는 렌더링 방법을 제공하는 것이다.
또한, 본 발명이 이루고자 하는 다른 기술적 과제는 그래픽스 데이터의 렌더링 연산량을 감소시키고, 감소된 연산량을 고려하여 설정된 렌더링 전압 및 주파수에 따라 그래픽스 데이터를 렌더링함으로써 렌더링 전력 소모를 최소화할 수 있는 렌더링 장치를 제공하는 것이다.
또한, 본 발명이 이루고자 하는 또 다른 기술적 과제는 그래픽스 데이터의 렌더링 연산량을 감소시키고, 감소된 연산량을 고려하여 설정된 렌더링 전압 및 주파수에 따라 그래픽스 데이터를 렌더링함으로써 렌더링 전력 소모를 최소화할 수 있는 렌더링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 것이다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 렌더링 방법은 (a) 그래픽 데이터에 포함된 객체들 중 상기 현재 프레임에서의 렌더링 결과와 이전 프레임에서의 렌더링 결과가 다른 렌더링 객체를 선택하는 단계; (b) 상기 선택된 렌더링 객체를 고려하여 상기 데이터를 렌더링하기 위한 동작 전압 및 동작 주파수를 설정하는 단계; 및 (c) 상기 설정된 동작 전압 및 동작 주파수에 따라 상기 이전 프레임에서의 렌더링 결과를 참조하여 상기 데이터를 렌더링하는 단계를 포함한다.
또한, 상기 (b)단계는 상기 데이터에 포함된 객체들 전부가 상기 렌더링 객 체로 선택된 경우 상기 동작 전압 및 동작 주파수를 설정 범위 중 최대값으로 설정할 수 있다.
또한, 상기 (b)단계는 (b1) 화면에서 상기 선택된 렌더링 객체가 차지하는 영역을 참조하여 상기 화면상의 렌더링 영역을 선정하는 단계; 및 (b2) 상기 선정된 렌더링 영역에 따라 상기 동작 전압 및 동작 주파수를 설정할 수 있다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 따른 렌더링 장치는 입력된 데이터에 포함된 객체들 중 렌더링 결과가 이전 데이터의 렌더링 결과와 다른 렌더링 객체를 선택하는 렌더링 객체 선택부; 상기 선택된 렌더링 객체를 고려하여 상기 데이터를 렌더링하기 위한 동작 전압 및 동작 주파수를 설정하는 전압 및 주파수 설정부; 및 상기 설정된 동작 전압 및 동작 주파수에 따라 상기 이전 데이터의 렌더링 결과를 참조하여 상기 데이터를 렌더링하는 렌더링부를 포함한다.
또한, 상기 전압 및 주파수 설정부는 상기 입력된 데이터에 포함된 객체들 전부가 상기 렌더링 객체로 선택된 경우 상기 동작 전압 및 동작 주파수를 설정 범위의 최대 설정값으로 설정할 수 있다.
또한, 상기 전압 및 주파수 설정부는 화면에서 상기 선택된 렌더링 객체가 차지하는 영역을 참조하여 상기 화면상의 렌더링 영역을 선정하는 렌더링 영역 선정부; 및 상기 선정된 렌더링 영역의 특성을 고려하여 상기 동작 전압 및 동작 주파수의 설정값을 계산하고, 상기 계산된 설정값에 따라 상기 동작 전압 및 동작 주파수를 설정하는 설정부를 포함할 수 있다.
상기 또 다른 기술적 과제를 해결하기 위하여 본 발명에 따른 렌더링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 렌더링 방법 및 장치를 상세하게 설명하겠다.
본 출원인에 의하여 출원된 특허(출원 번호:10-2006-0012226)에는 그래픽스 데이터에 포함된 객체의 움직임 여부를 고려하여 렌더링 과정 연산량을 감소시킨 렌더링 방법 및 장치가 개시되어있다. 이 렌더링 방법 및 장치에 의하면 렌더링 과정의 연산량을 감소시킴으로써 렌더링 속도(FPS; frame per second)를 향상시키고 렌더링 과정의 소비 전력(consumption power)을 감소시킬 수 있다. 그러나 렌더링 엔진이 렌더링 과정의 감소된 연산량을 고려하지 않고 항상 최대 성능으로 동작할 경우 렌더링 속도가 필요이상으로 증가될 수 있다. 렌더링 속도는 일정 기준속도까지는 속도가 증가할수록 렌더링 화질이 향상되지만 일정 기준속도를 넘어설 경우는 더 이상 화질에 영향을 미치지 못한다. 따라서 필요 이상으로 렌더링 속도가 증가되는 것은 불필요한 전력 소비를 발생시키므로 렌더링 속도가 필요 이상으로 증가되지 않도록 렌더링을 수행하는 하드웨어의 전압 및 주파수를 제어할 필요가 있다.
따라서 본 발명에 따른 렌더링 방법 및 장치는 렌더링 과정의 연산량을 감소시키고, 감소된 연산량을 고려하여 렌더링을 수행하는 렌더링 엔진의 동작 전압 및 동작 주파수를 적절히 제어함으로써 렌더링 과정의 전력 소비를 최소화하고자 한다.
이하, 도 1을 참조하여 본 발명의 일 실시예에 따른 렌더링 방법을 살펴보겠다. 도 1은 본 발명의 일 실시예에 따른 렌더링 장치의 구성을 도시한 블록도로서, 크게 렌더링 엔진(100), 전압 및 주파수 설정부(150) 및 렌더링 속도 측정부(190)를 포함한다.
렌더링 엔진(100)은 렌더링 객체 선택부(110), 렌더링부(120), 프레임 버퍼(130), 프런트 버퍼(135) 및 버퍼 복원부(140)를 포함하고, 전압 및 주파수 설정부(150)는 설정부(160), 저장부(170) 및 수정부(180)를 포함한다.
우선, 본 발명의 일 실시예에 따라 렌더링 과정의 연산량을 최소화하는 렌더링 엔진(100)에 관하여 설명하겠다.
렌더링 엔진(100)은 프레임별로 그래픽스 데이터를 입력받고, 입력받은 그래픽스 데이터를 기초로 렌더링을 수행하여 프레임 버퍼(130)에 포함된 Z 버퍼(132) 및 백 버퍼(134)를 갱신한다. 그리고 렌더링 엔진(100)은 입력된 데이터에 포함된 모든 객체에 대하여 렌더링이 끝나면 최종적으로 프레임 버퍼(130) 중 백 버퍼(134)에 저장된 각 픽셀의 색상 값을 프런트 버퍼(135)로 전달하여 입력된 그래픽스 데이터를 렌더링한 결과를 화면에 출력한다.
렌더링 객체 선택부(110)는 입력된 그래픽스 데이터의 시점을 분석하고, 그래픽스 데이터에 포함된 객체들을 동적(dynamic) 객체와 정적(static) 객체로 구분하여 각각의 목록을 작성한다. 그래픽스 데이터의 시점(viewpoint)이란 그래픽스 데이터에 포함된 객체들을 바라보는 카메라 시점 또는 관측자 시점을 말한다.
본 발명에서 동적 개체란 1) 움직이는 객체(위치, 방향, 크기 등이 변경되는 것), 2) 속성 정보가 변경되는 객체(색상 정보, 재질 정보 등이 변경되는 것) 3) 객체에 영향을 주는 광원 정보가 변경되는 객체(광원의 색, 밝기, 위치, 방향 등이 변경되는 것) 등을 포함하는데, 궁극적으로는 객체의 출력 이미지가 이전 프레임에서 출력된 이미지와 다른 객체(즉, 렌더링 결과가 이전 프레임에서의 렌더링 결과와 다른 객체)를 의미한다.
또한, 본 발명에서 정적 객체란 입력된 그래픽스 데이터에 포함된 전체 객체에서 동적 객체를 제외한 나머지 객체로서 1) 움직이지 않는 객체, 2) 속성 정보가 변경되지 않는 객체, 3) 객체에 영향을 주는 광원 정보가 변경되지 않는 객체 등을 포함하는데, 궁극적으로는 객체의 출력 이미지가 이전 프레임에서 출력된 이미지와 동일한 객체(즉, 렌더링 결과가 이전 프레임에서의 렌더링 결과와 동일한 객체)를 의미한다.
렌더링 객체 선택부(110)는 분석된 데이터에 기초하여 입력된 데이터에 포함된 객체들 중 렌더링할 렌더링 객체를 선택한다. 구체적인 방법은 다음과 같다.
데이터의 시점 및 정적 객체 목록 중 적어도 어느 하나가 변경된 경우에 렌더링 객체 선택부(110)는 입력된 데이터에 포함된 객체 전부를 렌더링 객체로 선택한다. 도 2a는 각 프레임에서의 데이터의 시점이 변경된 경우 각 프레임의 출력 이미지를 도시한 것이다. 도 2a에 도시된 바와 같이 데이터의 시점이 변경된 경우(즉, 이전 프레임에서의 데이터 시점과 다르거나 입력된 데이터가 첫 프레임에 해당되는 데이터인 경우)는 입력된 데이터에 포함된 모든 객체(정적 객체와 동적 객체)의 출력이미지가 변경되기 때문에 모든 객체를 다시 렌더링할 필요가 있다.
또한, 데이터의 시점이 변경되지 않은 경우라도 정정 객체 목록이 변경된 경우(즉, 이전 프레임의 정적 객체 목록에 포함된 객체들 외에 다른 객체가 추가되거나 이전 프레임의 정적 객체 목록에 포함된 객체들 중 일부가 삭제된 경우)는 더 이상 이전 프레임의 정적 객체 렌더링 결과와 현재 프레임의 정적 객체 렌더링 결과가 동일하지 않을 것이므로 모든 객체를 다시 렌더링한다.
그러나 데이터의 시점 및 정적 객체 목록이 변경되지 않은 경우는 현재 프레임에서 정적 객체로 구분된 객체들을 렌더링한 결과에 따른 출력 이미지와 이전 프레임에서의 정적 객체로 구분된 객체들을 렌더링한 결과에 따른 출력 이미지가 동일한 경우에 해당된다. 따라서 이 경우에 렌더링 객체 선택부(110)는 입력된 데이터에 포함된 동적 객체만을 렌더링 객체로 선택하여 다시 렌더링한다. 도 2b는 각 프레임에서 데이터의 시점 및 정적 객체 목록이 변경되지 않은 경우에 각 프레임의 출력 이미지를 도시한 것이다. 도 2b에 도시된 바와 같이, 시점이 일정하므로 각 프레임에서의 정적 객체의 출력이미지가 변경되지 않고, 동적 객체의 출력이미지만 변경되는 것을 알 수 있다. 따라서 이 경우는 현재 프레임의 정적 객체를 다시 렌더링하지 않고, 이전 프레임의 정적 객체 렌더링 결과를 현재 프레임의 정적 객체 렌더링 결과로 이용한다. 이렇게 함으로써 본 발명은 렌더링 과정의 연산량을 감소시킬 수 있다. 이전 프레임의 정적 객체 렌더링 결과를 현재 프레임의 정적 객체 렌더링 결과로 이용하기 위한 구체적인 방법은 후술하기로 하겠다.
렌더링 객체 선택부(110)에서 렌더링 객체의 선택이 끝나면, 렌더링 객체 선택부(110)는 생성된 정적 객체 목록 및 동적 객체 목록과 함께 선택된 렌더링 객체 를 렌더링부(120)로 전달하고, 렌더링부(120)는 전달받은 렌더링 객체를 프레임 버퍼(130)에 렌더링한다.
우선, 입력된 데이터에 포함된 객체 전부가 렌더링 객체로 선택된 경우를 고려해보자. 이 경우 렌더링부(120)는 렌더링 객체 선택부(110)에서 제공받은 정적 객체와 동적 객체를 모두 렌더링한다.
렌더링부(120)는 객체들을 렌더링하기 전에 먼저 프레임 버퍼(130)를 초기화한다. 이 때, Z 버퍼(132)는 이 버퍼가 표현할 수 있는 최대의 깊이 값으로 갱신되고, 백 버퍼(134)는 최종적으로 처리된 이미지의 배경(background)에 해당하는 색상 값으로 갱신된다.
프레임(130) 버퍼를 초기화한 후에, 렌더링부(120)는 전체 객체들 중 먼저 정적 객체를 프레임 버퍼(130)에 렌더링한다. 정적 객체의 렌더링이 끝나면 Z 버퍼(132)에는 정적 객체의 렌더링 결과에 따른 각 픽셀의 깊이 값이 저장될 것이고, 백 버퍼(134)에는 정적 객체의 렌더링 결과에 따른 각 픽셀의 색상 값이 저장될 것이다.
정적 객체 모두에 대한 렌더링이 끝나면, 후술할 버퍼 복원부(140)는 프레임 버퍼(130)에 최종적으로 저장된 정적 객체의 렌더링 결과를 소정 버퍼(145)에 저장한다. 정적 객체를 렌더링한 결과를 소정 버퍼에 저장하는 이유는 다음 프레임의 정적 객체 렌더링 결과가 현재 프레임의 정적 객체 렌더링 결과와 동일한 경우에 현재 프레임에서 정적 객체를 렌더링한 결과를 다음 프레임에서 사용하기 위함이다. 이 소정 버퍼(145)는 프레임 버퍼(130)의 Z 버퍼(132)와 백 버퍼(134)에 저장 된 깊이 값과 색상 값을 모두 저장해야 하므로 Z 버퍼(132) 및 백 버퍼(134)에 대응되는 크기를 가져야 할 것이다.
정적 객체의 렌더링 결과가 소정 버퍼(145)에 저장되고 나면, 렌더링부(120)는 동적 객체를 프레임 버퍼(130)에 렌더링한다. 프레임 버퍼(130)에는 이미 정적 객체의 렌더링 결과가 저장되어 있으므로 이 프레임 버퍼(130)에 동적 객체를 렌더링하고 나면 최종적으로는 데이터에 포함된 모든 객체를 렌더링한 결과가 프레임 버퍼(130)에 저장되어있을 것이다. 동적 객체에 대한 렌더링이 끝나면, 렌더링부(120)는 백 버퍼(134)에 최종적으로 저장된 각 픽셀의 색상 값을 프런트 버퍼(135)로 전달하여 입력된 데이터의 렌더링된 결과를 화면에 출력한다.
앞에서 언급한 바와 같이, 버퍼 복원부(140)는 렌더링부(120)에서 정적 객체를 렌더링하고 난 후에 프레임 버퍼(130)에 저장된 정적 객체의 렌더링 결과를 소정 버퍼(145)에 저장한다. 그 후에, 버퍼 복원부(140)는 렌더링부(120)가 입력된 데이터의 렌더링 결과를 화면에 출력한 후에 소정 버퍼(145)에 저장해놓은 정적 객체의 렌더링 결과를 프레임 버퍼(130)에 복원한다. 버퍼 복원부(140)가 프레임 버퍼(130)에 정적 객체의 렌더링 결과를 복원하는 이유는 다음 프레임에서 데이터의 시점 및 정적 객체 목록이 변경되지 않아 현재 프레임의 정적 객체 렌더링 결과와 다음 프레임의 정적 객체 렌더링 결과가 같다면, 다음 프레임에서 정적 객체를 렌더링하지 않고 프레임 버퍼(130)에 저장된 현재 프레임의 정적 객체 렌더링 결과를 다음 프레임의 정적 객체 렌더링 결과로 이용하기 위함이다. 즉, 다음 프레임의 정적 객체 렌더링 결과에 해당되는 렌더링 결과가 이미 프레임 버퍼(130)에 저장되 어 있으므로 다음 프레임에서는 정적 객체를 렌더링할 필요 없이 동적 객체만 프레임 버퍼(130)에 렌더링함으로써 정적 객체와 동적 객체 모두를 렌더링한 결과를 얻을 수 있기 때문이다.
이하, 입력된 데이터에 포함된 동적 객체만 렌더링 객체로 선택된 경우를 고려해보자.
이 경우에 렌더링부(120)는 프레임 버퍼(130)를 초기화하지 않고 곧바로 동적 객체를 프레임 버퍼(130)에 렌더링 한다. 왜냐하면 이 경우는 프레임 버퍼(130)에 저장된 이전 프레임의 정적 객체 렌더링 결과를 현재 프레임의 정적 객체 렌더링 결과로 이용할 것이기 때문이다.
그리고 렌더링부(120)는 데이터에 포함된 모든 동적 객체를 렌더링한 후에, 백 버퍼(134)에 최종적으로 저장된 각 픽셀의 색상 값을 프런트 버퍼(135)로 전달하여 입력된 데이터의 렌더링 결과를 화면에 출력한다.
이 경우, 버퍼 복원부(140)는 정적 객체를 렌더링하지 않으므로 정적 객체를 렌더링한 결과롤 소정 버퍼(145)에 저장하지 않는다. 그러나 이 경우에도 버퍼 복원부(140)는 동적 객체의 렌더링이 끝나고, 렌더링 결과가 화면에 출력된 후에 소정 버퍼(145)에 저장된 렌더링 결과를 프레임 버퍼(130)에 복원한다. 이 때 소정 버퍼(145)에 저장된 렌더링 결과란 이전 프레임의 정적 객체 렌더링 결과이지만 이 경우는 현재 프레임의 정적 객체 렌더링 결과가 이전 프레임의 정적 객체 렌더링 결과와 동일하므로 소정 버퍼(145)에 저장된 렌더링 결과를 프레임 버퍼(130)에 복원하는 것은 현재 프레임의 정적 객체 렌더링 결과를 프레임 버퍼(130)에 복원하는 것과 마찬가지 결과가 될 것이다.
살펴본 바와 같이, 본 발명에서는 데이터의 시점 및 정적 객체 목록을 고려하여 데이터에 포함된 객체들 중 렌더링이 필요한 객체만 선택적으로 렌더링하므로 반복적으로 수행될 수 있는 불필요한 연산들을 제거할 수 있고, 이로 인해 렌더링 과정의 연산량을 최소화한다. 즉, 이전 프레임의 출력 이미지와 동일한 출력 이미지를 갖는 객체는 다시 렌더링하지 않고 전에 렌더링하여 얻은 렌더링 결과를 다시 이용함으로써 렌더링 과정의 불필요한 연산을 최소화한다.
그러나 렌더링 과정의 연산량을 최소화하였더라도 렌더링을 수행하는 렌더링 엔진의 최대 성능으로 동작할 경우 렌더링 속도가 필요 이상으로 증가함으로써 불필요한 전력 소비를 발생시킬 수 있다. 따라서 본 발명은 본 출원인이 제안한 렌더링 연산량을 최소화하는 렌더링 방법 및 장치에 동적 전압 스케일링(DVS; Dynamic Volotage Scaling) 기법을 적용함으로 실제로 렌더링 엔진에서 렌더링을 수행하는데 소비되는 전력을 최소화할 수 있는 렌더링 방법 및 장치를 제공하고자 한다.
동적 전압 스케일링 기법이란 저전력 하드웨어 설계에서 전력 소비를 낮추기 위해 사용되는 기법으로서, 소정 작업이 기준 속도이상으로 처리되어 유휴 시간(idle time)이 발생되는 경우 공급 전압 및 동작 주파수를 낮춤으로서 전체 에너지 소모를 감소시키는 기법이다. 이는 공급 전압 혹은 임계 전압이 낮을수록 반도체 회로의 동적 전력 소모가 작아진다는 사실에 기인한다. 공급 전압을 감소시키면 소정 작업을 처리하는데 지연 시간(propagation delay)이 증가하므로 동작 주파수를 함께 낮추어야 하드웨어가 안정적으로 동작할 수 있게 된다. 따라서 공급 전압 감소를 고려하여 동작 주파수도 함께 감소시키는 것이다.
도 3a 내지 도 3b는 동적 전압 스케일링 기법을 설명하기 위한 참고도이다.
일련의 처리과정이 파이프라인에서 동작하는 경우, 어느 한 곳의 처리가 늦어지면 전체 파이프라인의 속도가 저하된다. 따라서 일반적으로 각 처리마다 처리가 되어야 하는 임계 시간인 마감 시간(deadline)을 가지고, 각 마감 시간 내에 처리가 이루어지도록 하고 있다.
도 3a는 마감 시간이 25ms인 소정 작업을 수행하는데 5 ㅧ
Figure 112006078521036-PAT00001
사이클이 걸리는 경우, 50Mhz의 동작 주파수로 5V의 전압을 장치에 공급한 경우의 이 작업은 10ms안에 작업이 완료되고, 나머지 15ms 동안은 장치가 동작하지 않는 유휴 시간(idle time)을 가지게 되며, 이 때 소정 작업을 수행하는데 12.5J의 전력이 소모된다. 그러나, 도 3b에 도시된 바와 같이 DVS를 이용하여 마감 시간에 맞추어 작업을 완료할 수 있도록 20Mhz의 주파수를 가지는 2V의 전압을 장치에 공급하게 되면 작업을 마치는데 25ms의 시간이 걸리게 되면 소모된 전력은 2J로 크게 감소된다.
이처럼 동작 전압과 주파수를 작업의 마감 시간을 고려하여 조절하므로 작업 수행에 소모되는 전력을 감소시킬 수 있다. 따라서, 이러한 동적 전압 스케일링 기법을 그래픽스 데이터를 렌더링하는 렌더링 엔진에 적용할 수 있다. 이 경우 렌더링 작업의 마감 시간은 한 프레임을 처리하는데 주어진 최대 시간이 될 것이다. 한 프레임을 처리하는데 걸리는 시간은 렌더링 속도(FPS; frame per seceond, 일초당 처리해야 하는 프레임수)를 이용하여 계산할 수 있다. 일정 수준 이상의 화질을 얻기 위해서는 렌더링 속도가 소정 기준속도이하로 내려가지 않아야 한다. 따라서 소정 기준속도를 이용하면 한 프레임을 렌더링하는데 주어지는 마감 시간을 알 수 있다. 즉, 렌더링 엔진(100)이 한 프레임을 주어진 마감 시간에 맞추어 렌더링하도록 동작 전압 및 동작 주파수를 조절한다면 렌더링 과정의 전력 소모를 최소화할 수 있을 것이다.
이제, 본 발명의 일 실시예에 따른 전압 및 주파수 설정부(150)가 렌더링 엔진(110)의 동작 전압 및 동작 주파수를 조절하여 렌더링 과정의 전력 소비를 최소화하는 방법을 설명하겠다.
전압 및 주파수 설정부(150)는 렌더링 객체 선택부(110)로부터 선택된 렌더링 객체에 관한 정보를 제공받으며, 이를 기초로 렌더링 과정의 연산량을 예측하여 렌더링 엔진의 전력 소비를 최소화할 수 있는 전압 및 주파수를 설정하고, 이를 렌더링 엔진(100)의 렌더링부(120)로 제공함으로써 렌더링 엔진(100)의 전압 및 주파수를 동적으로 제어한다.
전압 및 주파수 설정부(150)는 렌더링 객체 선택부(110)로부터 렌더링 객체에 관한 정보를 제공받고, 제공받은 렌더링 객체에 관한 정보를 참조하여 렌더링 객체가 화면에서 차지하는 영역 또는 렌더링 객체에 해당되는 데이터의 크기 등을 고려하여 렌더링 전압 및 주파수를 설정한다.
만약, 정적 객체와 동적 객체가 모두 렌더링 객체로 선택되었다면, 렌더링 객체의 영역은 화면 전체가 될 것이고, 렌더링 객체에 해당되는 데이터 크기도 입력된 데이터 전체의 크기가 될 것이다. 따라서 전압 및 주파수 설정부(150)는 입력된 데이터에 포함된 객체 전체가 렌더링 객체로 선택된 경우라면 전체 객체에 대한 렌더링 영역을 검출하거나 전체 객체에 해당되는 데이터 크기를 계산하는 등의 추가적인 과정 없이 바로 설정 가능한 최대 설정값으로 렌더링 전압 및 주파수를 설정하도록 함으로써 전압 및 주파수 설정 과정을 간소화할 수 있다.
이하, 본 발명의 실시예에 따른 전압 및 주파수 설정부(150)의 동작을 살펴보겠다.
우선, 본 발명의 제1 실시예에 따른 전압 및 주파수 설정부(150)의 동작을 살펴보겠다. 본 발명의 제1 실시예에 따르면 전압 및 주파수 설정부(150)는 렌더링 영역 선정부(155) 및 설정부(160)를 포함한다.
렌더링 영역 선정부(155)는 렌더링 객체 선택부(110)에서 선택된 렌더링 객체에 관한 정보를 제공받고, 제공받은 정보를 이용하여 선택된 렌더링 객체에 해당되는 렌더링 영역을 선정한다.
설정부(160)는 렌더링 영역 선정부(155)에서 선정된 렌더링 영역을 참조하여 렌더링 엔진(100)의 동작 전압 및 동작 주파수의 설정값을 설정한다. 설정부(160)는 렌더링 영역의 면적, 위치 및 렌더링 영역에 대응되는 선택된 렌더링 객체 등을 참조하여 동작 전압 및 동작 주파수의 설정값을 계산하고, 계산된 설정값에 따라 렌더링 엔진(100)의 동작 전압 및 동작 주파수를 설정할 수 있을 것이다.
예를 들어, 렌더링 영역의 면적에 따라 렌더링 엔진(100)의 동작 전압 및 동 작 주파수를 설정하는 경우, 설정부(160)는 선정된 렌더링 영역의 면적을 측정하고, 측정된 면적의 크기에 따라 렌더링 전압 및 주파수의 설정값을 계산한다.
그러나, 다른 실시예에서는 렌더링 영역의 면적 외에도 렌더링 영역의 위치나, 해당되는 렌더링 객체 등을 함께 고려하여 렌더링 엔진(100)의 동작 전압 및 동작 주파수의 설정값을 계산하고, 계산된 설정값에 따라 렌더링 엔진(100)의 동작 전압 및 주파수를 설정할 수도 있을 것이다.
또한, 렌더링 엔진(100)은 동작 전압 및 동작 주파수가 특정 조건을 만족할 경우에만 안정적으로 동작하는 경우는 렌더링 엔진(100)의 동작 스펙(Specification)을 만족하는 설정값들을 미리 선정해 놓고, 선정된 다수의 설정값들 중에서 선정된 렌더링 엔진의 면적을 고려하여 가장 적절한 값(즉, 전력 소비를 최소화할 수 있는 값)을 선택하여, 렌더링 엔진(100)의 동작 전압 및 동작 주파수로 설정되도록 할 수도 있을 것이다.
이제, 본 발명의 제 2 실시예에 따른 전압 및 주파수 설정부(150)의 동작을 살펴보자. 본 발명의 제2 실시예에 따르면 전압 및 주파수 설정부(150)는 저장부(170)를 더 포함할 수 있다.
저장부(170)는 렌더링 영역 선정부(155)에서 선정된 렌더링 영역의 특성과 이에 대응되는 설정부(160)에서 계산된 렌더링 전압 및 주파수의 설정값을 함께 짝을 지어 저장한다. 도 4는 저장부(170)에 렌더링 영역의 특성 및 이에 대응되는 렌더링 전압 및 주파수가 저장된 모습을 도시한 것이다. 도 4에 도시된 표에 따르면 렌더링 영역의 특성 정보로 렌더링 영역의 위치, 면적 및 해당되는 렌더링 객체 등 이 저장된다. 그러나 이는 일 실시예에 따른 것으로 이들 중 적어도 어느 하나만 저장할 수 도 있고, 렌더링 영역에 관한 다른 특성 정보들이 추가될 수 도 있다.
제2 실시예에 따르면, 설정부(160)는 선정된 렌더링 영역의 특성에 대응되는 동작 전압 및 동작 주파수의 설정값을 먼저 저장부(170)에서 검색하고, 검색 결과 선정된 렌더링 영역의 특성에 대응되는 설정값이 저장부(170)에서 검색되는 경우에 검색된 설정값으로 렌더링 엔진(100)의 동작 전압 및 동작 주파수를 설정한다. 그러나, 검색 결과 대응되는 설정값이 검색되지 않는 경우에는 제1 실시예에서와 같이 선정된 렌더링 영역을 참조하여 직접 동작 전압 및 동작 주파수의 설정값을 계산하고, 계산된 설정값으로 렌더링 엔진(100)의 동작 전압 및 동작 주파수를 설정한다.
제2 실시예에 따르면 저장부(170)를 더 포함하므로 동작 전압 및 동작 주파수를 보다 효율적으로 설정할 수 있다.
이제, 본 발명의 제 3 실시예에 따른 전압 및 주파수 설정부(150)의 동작을 살펴보겠다. 본 발명의 제3 실시예에 따르면 전압 및 주파수 설정부(150)는 수정부(180)를 더 포함하고, 렌더링 장치는 렌더링 속도 측정부(190)를 더 포함한다.
렌더링 속도 측정부(190)는 입력된 그래픽스 데이터의 렌더링 속도를 측정한다. 렌더링 속도 측정부(190)는 프런트 버퍼(135)가 갱신되는 시간 간격 또는 화면에 한 프레임의 이미지가 출력되는 시간을 측정하고, 측정된 시간의 역수를 취함으로써 그래픽스 데이터의 렌더링 속도(FPS; frame per second, 초당 렌더링 되는 프레임율)를 계산할 수 있다.
수정부(180)는 렌더링 속도 측정부(190)에서 계산된 입력된 그래픽스 데이터의 실제 렌더링 속도와 렌더링 엔진(100)이 최소 소비 전력으로 그래픽스 데이터를 렌더링하기 위한 최적의 기준 속도를 비교하고 비교한 결과에 따라 저장부(170)에 저장된 렌더링 전압 및 주파수의 크기를 수정한다.
예를 들어, 실제로 측정된 렌더링 속도와 최적화된 기준속도를 비교한 결과, 측정된 렌더링 속도가 기준속도보다 빠른 경우는 렌더링 속도가 불필요하게 증가된 경우이므로 렌더링 엔진(100)으로 공급되는 공급 전압 및 렌더링 엔진의 동작 주파수를 낮출 필요가 있다. 따라서 다음번에는 동일한 상황에서 동작 전압 및 동작 주파수가 더 작은 값으로 설정될 수 있도록 저장부(170)에 저장된 동작 전압 및 동작 주파수의 크기를 더 작은 값으로 수정한다.
따라서, 설정부(160)에서 설정한 렌더링 엔진(100)의 동작 전압 및 동작 주파수가 렌더링 엔진(100)의 전력 소모를 최소화하는 동작 전압 및 동작 주파수의 설정값으로 설정되지 못하였더라도 수정부(180)가 이러한 수정 작업을 반복할수록 다음번에 설정부(160)에서 설정되는 동작 전압 및 동작 주파수의 설정값은 렌더링 엔진(100)의 전력 소모를 최소화할 수 있는 설정값에 근접하게 될 것이며, 렌더링 엔진(100)의 전력 소모도 최소화할 수 있을 것이다.
이하, 도 5를 참조하여 본 발명의 일 실시예에 따른 렌더링 방법을 설명하겠다. 도 5는 본 발명의 일 실시예에 따른 렌더링 방법의 플로우차트이다.
제 500단계에서 렌더링 장치는 입력된 그래픽스 데이터의 시점을 분석하고, 데이터에 포함된 객체들을 동적 객체와 정적 객체로 구분하여 각각의 목록을 작성 한다.
여기서, 데이터의 시점이란 데이터에 포함된 객체들을 바라보는 카메라 시점 또는 관측자 시점을 의미한다. 그리고 본 발명에서 동적 개체란 1) 움직이는 객체(위치, 방향, 크기 등이 변경되는 것), 2) 속성 정보가 변경되는 객체(색상 정보, 재질 정보 등이 변경되는 것) 3) 객체에 영향을 주는 광원 정보가 변경되는 객체(광원의 색, 밝기, 위치, 방향 등이 변경되는 것) 등을 포함하는데, 궁극적으로는 객체의 출력 이미지가 이전 프레임에서 출력된 이미지와 다른 객체(즉, 렌더링 결과가 이전 프레임의 렌더링 결과와 다른 객체)를 의미한다. 또한, 본 발명에서 정적 객체란 입력된 그래픽스 데이터에 포함된 전체 객체에서 동적 객체를 제외한 나머지 객체로서 1) 움직이지 않는 객체, 2) 속성 정보가 변경되지 않는 객체, 3) 객체에 영향을 주는 광원 정보가 변경되지 않는 객체 등을 포함하는데, 궁극적으로는 객체의 출력 이미지가 이전 프레임에서 출력된 이미지와 동일한 객체(즉, 렌더링 결과가 이전 프레임의 렌더링 결과와 동일한 객체)를 의미한다.
제 510단계에서 렌더링 장치는 데이터의 시점 및 정적 객체 목록의 변경 여부에 따라 데이터에 포함된 객체들 중에서 렌더링할 렌더링 객체를 선택한다.
데이터의 시점 및 정적 객체 목록 중 어느 하나가 변경되었다면 입력된 데이터에 포함된 객체 전부를 렌더링 객체로 선택하고, 데이터의 시점 및 정적 객체 목록이 모두 변경되지 않았다면 입력된 데이터에 포함된 동적 객체만 렌더링 객체로 선택한다. 데이터의 시점이 변경되거나 정적 객체 목록이 변경된 경우는 이전 데이터에 포함된 정적 객체의 렌더링 결과를 현재 데이터에 포함된 정적 객체의 렌더링 결과로 사용할 수 없으므로 데이터에 포함된 모든 객체들을 다시 렌더링할 필요가 있기 때문이다.
제 520단계에서 렌더링 장치는 선택된 렌더링 객체에 대한 렌더링 영역을 선정한다.
제 530단계에서 렌더링 장치는 렌더링 영역과 이에 대응되는 렌더링 전압 및 주파수의 설정값을 저장하고 있는 메모리에서 선정된 렌더링 영역에 대응되는 설정값을 검색한다. 제 530단계에서 검색한 결과 선정된 렌더링 영역에 대응되는 설정값이 검색되면 제 540단계로 진행하고, 검색되지 않으면 제 550단계로 진행한다.
제 540단계에서 렌더링 장치는 검색된 설정값에 따라 렌더링 전압 및 주파수를 설정한다.
제 550단계에서 렌더링 장치는 선정된 렌더링 영역을 참조하여 렌더링 전압 및 주파수의 설정값을 계산하고, 선정된 렌더링 영역과 이에 대응되는 계산된 렌더링 전압 및 주파수의 설정값을 상기 메모리에 저장한다.
제 560단계에서 렌더링 장치는 계산된 설정값으로 렌더링 전압 및 주파수를 설정한다.
제 570단계에서 렌더링 장치는 제 540단계 또는 제 560단계에서 설정된 렌더링 전압 및 주파수에 따라 선택된 렌더링 객체를 프레임 버퍼에 렌더링하고, 렌더링 결과를 화면에 출력한다.
제 580단계에서 렌더링 장치는 데이터에 포함된 정적 객체의 렌더링 결과를 프레임 버퍼에 복원한다.
제 590단계에서 렌더링 장치는 데이터의 렌더링 속도를 측정하고, 측정된 렌더링 속도와 소정 기준속도를 비교한 결과에 따라 메모리에 저장된 선정된 렌더링 영역에 대응되는 렌더링 전압 및 주파수의 설정값을 수정한다.
도 5에 도시된 실시예에서는 제 510단계에서 데이터에 포함된 객체 전부가 렌더링 객체로 선택된 경우에도 제 520 내지 제 570단계를 통해 렌더링 전압 및 주파수가 설정되도록 하였다. 그러나, 본 발명의 다른 실시예에 따르면, 제 510단계에서 데이터에 포함된 객체 전부가 렌더링 객체로 선택된 경우에는 곧바로 렌더링 전압 및 주파수를 설정 가능한 최대값으로 설정할 수도 있을 것이다.
도 6은 도 5에 도시된 제 570 및 580단계의 보다 자세한 플로우차트이다.
제 600단계에서 렌더링 장치는 렌더링 객체가 데이터에 포함된 객체 전부인지 판단한다. 제 600단계에서 데이터에 포함된 객체 전부가 렌더링 객체로 판단된 경우는 제 610단계로 진행한다.
제 610단계에서 렌더링 장치는 프레임 버퍼를 초기화한다.
제 620단계에서 렌더링 장치는 데이터에 포함된 정적 객체를 초기화된 프레임 버퍼에 렌더링 한다.
제 630단계에서 렌더링 장치는 프레임 버퍼에 저장된 정적 객체의 렌더링 결과를 소정 버퍼(145)에도 저장한다.
제 640단계에서 렌더링 장치는 데이터에 포함된 동적 객체를 프레임 버퍼에 렌더링한다.
제 650단계에서 렌더링 장치는 프레임 버퍼에 저장된 렌더링 결과를 프런트 버퍼로 전달하여 화면에 출력한다.
제 660단계에서 렌더링 장치는 소정 버퍼(145)에 저장된 렌더링 결과를 프레임 버퍼에 복원한다.
제 600단계에서 데이터에 포함된 동적 객체만 렌더링 객체로 판단된 경우는 제 670 단계로 진행한다.
제 670단계에서 렌더링 장치는 데이터에 포함된 동적 객체를 프레임 버퍼에 렌더링하고, 제 650단계로 진행한다.
종래의 렌더링 과정에 의하면 매 프레임마다 Z 버퍼와 백 버퍼를 초기화해야하므로 메모리로 구현되는 버퍼들에 접속하여 각 픽셀의 깊이 값 또는 색상 값을 초기값으로 변경하는데 많은 전력이 소모되었으며, 또한, 매 프레임마다 화면에 출력되는 모든 객체들을 렌더링해야하므로 역시 렌더링 과정에서 소모되는 전력량이 많았었다.
그러나 3차원 그래픽 유저 인터페이스(GUI; graphic user interface)에서와 같이 카메라의 시점(viewpoint) 또는 관측자 시점이 일정하게 유지되거나 자주 변경되지 않는 경우에는 이전 프레임이 출력 이미지와 동일한 출력 이미지를 갖는 객체들이 많이 존재한다. 따라서 이러한 경우에 종래의 렌더링 과정에 따라 이전 프레임이 출력 이미지와 동일한 출력 이미지를 갖는 객체들을 다시 렌더링하는 것은 동일한 과정을 반복하는 것으로서 렌더링 속도를 저하시키고 렌더링 전력 소비를 증가시키므로 비효율적이다.
그러나, 살펴본 바와 같이 본 발명에 따른 렌더링 방법 및 장치는 입력된 데이터의 시점과 객체들의 움직임 여부에 따라 데이터에 포함된 객체들 중 렌더링 결과가 변경된 객체만을 렌더링 객체로 선택하고, 선택된 렌더링 객체만 렌더링함으로써 렌더링 과정의 연산량을 감소시킨다. 그에 더하여, 선택된 렌더링 객체를 참조하여 렌더링 전압 및 주파수를 설정하고, 설정된 렌더링 전압 침 주파수에 따라 선택도니 렌더링 객체를 렌더링함으로써 데이터를 렌더링 하는데 소비되는 전력을 최소화할 수 있다.
또한, 선택된 렌더링 객체에 따라 선정된 렌더링 영역과 이를 고려하여 계산된 렌더링 전압 및 주파수의 설정값을 저장하고, 실제 렌더링된 결과를 분석하여 렌더링 속도가 소정 기준속도에 근접하도록 저장된 설정값을 수정함으로써 렌더링 장치가 렌더링에 소비되는 전력을 최소화할 수 있는 전압 및 주파수에 따라 동작하도록 적응적으로 전압 및 주파수를 조절할 수 있다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치, 프로브 저장장치 등이 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균 등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
살펴본 바와 같이, 본 발명에 따른 렌더링 방법 및 장치는 입력된 데이터의 시점 및 정적 객체 목록에 따라 렌더링 객체를 선택하여 렌더링함으로써 렌더링 과정의 연산량을 최소화하고, 선택된 렌더링 객체를 고려하여 설정된 전압 및 주파수에 따라 선택된 렌더링 객체를 렌더링함으로써 렌더링 과정의 전력 소비를 최소화할 수 있다. 특히 모바일 기기와 같이 저전력을 사용하여 3차원 그래픽스 데이터를 렌더링하는데 적용되면 매우 효과적일 것이다.

Claims (19)

  1. (a) 그래픽 데이터에 포함된 객체들 중 상기 현재 프레임에서의 렌더링 결과와 이전 프레임에서의 렌더링 결과가 다른 렌더링 객체를 선택하는 단계;
    (b) 상기 선택된 렌더링 객체를 고려하여 상기 데이터를 렌더링하기 위한 동작 전압 및 동작 주파수를 설정하는 단계; 및
    (c) 상기 설정된 동작 전압 및 동작 주파수에 따라 상기 이전 프레임에서의 렌더링 결과를 참조하여 상기 데이터를 렌더링하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  2. 제1항에 있어서, 상기 (b)단계는
    상기 데이터에 포함된 객체들 전부가 상기 렌더링 객체로 선택된 경우 상기 동작 전압 및 동작 주파수를 설정 범위 중 최대값으로 설정하는 것을 특징으로 하는 렌더링 방법.
  3. 제1항에 있어서, 상기 (b)단계는
    (b1) 화면에서 상기 선택된 렌더링 객체가 차지하는 영역을 참조하여 상기 화면상의 렌더링 영역을 선정하는 단계; 및
    (b2) 상기 선정된 렌더링 영역에 따라 상기 동작 전압 및 동작 주파수를 설정하는 것을 특징으로 하는 렌더링 방법.
  4. 제3항에 있어서, 상기 (b1)단계는
    상기 화면에서 상기 선택된 렌더링 객체가 차지하는 영역을 포함하는 최소한의 면적을 갖는 다각형 또는 원형을 상기 렌더링 영역으로 선정하는 것을 특징으로 하는 렌더링 방법.
  5. 제3항에 있어서, 상기 (b2)단계는
    (b21) 상기 선정된 렌더링 영역의 특성을 고려하여 상기 동작 전압 및 동작 주파수의 설정값을 계산하는 단계; 및
    (b22) 상기 계산된 설정값에 따라 상기 동작 전압 및 동작 주파수를 설정하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  6. 제5항에 있어서, 상기 (b2)단계는
    (b23)상기 선정된 렌더링 영역의 특성과 이에 대응되는 상기 계산된 설정값을 소정 메모리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 렌더링 방법.
  7. 제6항에 있어서, 상기 (b2)단계는
    (b`21)상기 소정 메모리에서 상기 선정된 렌더링 영역의 특성에 대응되는 설정값을 검색하는 단계; 및
    (b'22) 상기 대응되는 설정값이 상기 소정 메모리에서 검색되는 경우 상기 검색된 설정값에 따라 상기 동작 전압 및 동작 주파수를 설정하는 단계를 더 포함하는 것을 특징으로 하는 렌더링 방법.
  8. 제7항에 있어서, 상기 렌더링 방법은
    (d) 상기 데이터의 렌더링 속도를 측정하고, 상기 측정된 렌더링 속도와 소정 기준속도를 비교한 결과에 따라 상기 소정 메모리에 저장된 상기 선정된 렌더링 영역의 특성에 대응되는 설정값을 수정하는 단계를 더 포함하는 것을 특징으로 하는 렌더링 방법.
  9. 제8항에 있어서, 상기 (d)단계는
    상기 렌더링 속도가 상기 소정 기준속도보다 빠른 경우 상기 설정값을 감소시키고, 상기 렌더링 속도가 상기 소정 기준속도보다 느린 경우 상기 설정값을 증가시키는 것을 특징으로 하는 렌더링 방법.
  10. 제9항에 있어서, 상기 (b)단계는
    상기 선택된 렌더링 객체에 관한 데이터 크기를 고려하여 상기 동작 전압 및 동작 주파수를 설정하는 것을 특징으로 하는 렌더링 방법.
  11. 제1항에 있어서, 상기 (a)단계는
    상기 입력된 데이터의 시점(viewpoint)이 상기 이전 데이터의 시점과 다른 경우 상기 입력된 데이터에 포함된 객체들 전부를 상기 렌더링 객체로 선택하는 것을 특징으로 하는 렌더링 방법.
  12. 제1항에 있어서, 상기 (a)단계는
    상기 입력된 데이터에 포함된 정적 객체-시간에 따라 객체 정보가 변경되지 않는 객체-의 목록이 상기 이전 데이터에 포함된 정적 객체의 목록과 다른 경우 상기 입력된 데이터에 포함된 객체들 전부를 상기 렌더링 객체로 선택하는 것을 특징으로 하는 렌더링 방법.
  13. 제1항에 있어서, 상기 (a)단계는
    상기 입력된 데이터의 시점(viewpoint)이 상기 이전 데이터의 시점과 같고, 상기 입력된 데이터에 포함된 정적 객체의 목록이 상기 이전 데이터에 포함된 정적 객체의 목록과 같은 경우에 상기 입력된 데이터에 포함된 동적 객체-시간에 따라 객체 정보가 변경되는 객체-를 상기 렌더링 객체로 선택하는 것을 특징으로 하는 렌더링 방법.
  14. 입력된 데이터에 포함된 객체들 중 렌더링 결과가 이전 데이터의 렌더링 결과와 다른 렌더링 객체를 선택하는 렌더링 객체 선택부;
    상기 선택된 렌더링 객체를 고려하여 상기 데이터를 렌더링하기 위한 동작 전압 및 동작 주파수를 설정하는 전압 및 주파수 설정부; 및
    상기 설정된 동작 전압 및 동작 주파수에 따라 상기 이전 데이터의 렌더링 결과를 참조하여 상기 데이터를 렌더링하는 렌더링부를 포함하는 것을 특징으로 하는 렌더링 장치.
  15. 제14항에 있어서, 상기 전압 및 주파수 설정부는
    상기 입력된 데이터에 포함된 객체들 전부가 상기 렌더링 객체로 선택된 경우 상기 동작 전압 및 동작 주파수를 설정 가능한 최대 설정값으로 설정하는 것을 특징으로 하는 렌더링 장치.
  16. 제14항에 있어서, 상기 전압 및 주파수 설정부는
    화면에서 상기 선택된 렌더링 객체가 차지하는 영역을 참조하여 상기 화면상의 렌더링 영역을 선정하는 렌더링 영역 선정부; 및
    상기 선정된 렌더링 영역의 특성을 고려하여 상기 동작 전압 및 동작 주파수의 설정값을 계산하고, 상기 계산된 설정값에 따라 상기 동작 전압 및 동작 주파수를 설정하는 설정부를 포함하는 것을 특징으로 하는 렌더링 방법.
  17. 제14항에 있어서, 상기 전압 및 주파수 설정부는
    상기 선정된 렌더링 영역의 특성과 이에 대응되는 상기 계산된 설정값을 저장하는 저장부를 더 포함하고,
    상기 설정부는 상기 저장부에서 상기 선정된 렌더링 영역에 대응되는 설정값 을 검색하고, 상기 저장부에서 상기 설정값이 검색되면 상기 검색된 설정값에 따라 상기 동작 전압 및 동작 주파수를 설정하는 것을 특징으로 하는 렌더링 방법.
  18. 제17항에 있어서, 상기 렌더링 장치는
    상기 데이터의 렌더링 속도를 측정하는 렌더링 속도 측정부를 더 포함하고,
    상기 전압 및 주파수 설정부는
    상기 측정된 렌더링 속도와 소정 기준속도를 비교한 결과에 따라 상기 저장부에 저장된 상기 선정된 렌더링 영역의 특성에 대응되는 설정값을 수정하는 수정부를 더 포함하는 것을 특징으로 하는 렌더링 장치.
  19. 제1항 내지 제13항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020060105337A 2006-10-27 2006-10-27 전력 소모를 최소화하는 그래픽스 데이터 렌더링 방법 및장치 KR101217559B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060105337A KR101217559B1 (ko) 2006-10-27 2006-10-27 전력 소모를 최소화하는 그래픽스 데이터 렌더링 방법 및장치
US11/889,329 US8253722B2 (en) 2006-10-27 2007-08-10 Method, medium, and system rendering 3D graphics data to minimize power consumption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060105337A KR101217559B1 (ko) 2006-10-27 2006-10-27 전력 소모를 최소화하는 그래픽스 데이터 렌더링 방법 및장치

Publications (2)

Publication Number Publication Date
KR20080037978A true KR20080037978A (ko) 2008-05-02
KR101217559B1 KR101217559B1 (ko) 2013-01-02

Family

ID=39329554

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060105337A KR101217559B1 (ko) 2006-10-27 2006-10-27 전력 소모를 최소화하는 그래픽스 데이터 렌더링 방법 및장치

Country Status (2)

Country Link
US (1) US8253722B2 (ko)
KR (1) KR101217559B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949859B1 (ko) * 2008-08-05 2010-03-25 재단법인서울대학교산학협력재단 시간적 연속성을 적용한 원근 투영 볼륨 렌더링의 가속화방법
KR101471303B1 (ko) * 2013-10-02 2014-12-10 포항공과대학교 산학협력단 그래픽 처리 장치를 위한 전력 관리 장치 및 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8384718B2 (en) * 2008-01-10 2013-02-26 Sony Corporation System and method for navigating a 3D graphical user interface
US8610707B2 (en) * 2010-09-03 2013-12-17 Himax Technologies Ltd. Three-dimensional imaging system and method
US9110674B1 (en) * 2011-06-23 2015-08-18 Marvell International Ltd. Systems and methods for dynamic power management and performance adjustment of media playing
US9384711B2 (en) 2012-02-15 2016-07-05 Microsoft Technology Licensing, Llc Speculative render ahead and caching in multiple passes
US9286122B2 (en) 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9235925B2 (en) 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
TWI566205B (zh) * 2012-11-02 2017-01-11 輝達公司 圖形驅動程式在顯像圖框中近似動態模糊的方法
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
KR102329475B1 (ko) 2014-08-27 2021-11-19 삼성전자주식회사 렌더링 퀄리티 제어 장치 및 방법
KR20160047317A (ko) * 2014-10-22 2016-05-02 삼성전자주식회사 하이브리드 렌더링 장치 및 방법
SG10202105794YA (en) * 2021-06-01 2021-10-28 Garena Online Private Ltd Method for rendering an environment in an electronic game

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002050645A1 (fr) 2000-12-20 2002-06-27 Hitachi, Ltd. Circuit electronique a faible consommation d'energie et procede de reduction de la consommation d'energie
GB2406184B (en) * 2003-09-17 2006-03-15 Advanced Risc Mach Ltd Data processing system
KR100682456B1 (ko) 2006-02-08 2007-02-15 삼성전자주식회사 렌더링 영역을 최소화하는 3d 그래픽스 데이터의 렌더링방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949859B1 (ko) * 2008-08-05 2010-03-25 재단법인서울대학교산학협력재단 시간적 연속성을 적용한 원근 투영 볼륨 렌더링의 가속화방법
KR101471303B1 (ko) * 2013-10-02 2014-12-10 포항공과대학교 산학협력단 그래픽 처리 장치를 위한 전력 관리 장치 및 방법

Also Published As

Publication number Publication date
US20080100613A1 (en) 2008-05-01
KR101217559B1 (ko) 2013-01-02
US8253722B2 (en) 2012-08-28

Similar Documents

Publication Publication Date Title
KR101217559B1 (ko) 전력 소모를 최소화하는 그래픽스 데이터 렌더링 방법 및장치
KR101650999B1 (ko) 그래픽 프로세싱 유닛들에서의 렌더링 모드 선택
JP4589348B2 (ja) レンダリング領域を最小化する3dグラフィックスデータのレンダリング方法およびシステム
KR102327144B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법
KR101009521B1 (ko) 타일링되고 프리패치되고 캐싱된 깊이 버퍼
US8112640B2 (en) Method of controlling voltage of power supplied to 3D graphics data processor and the 3D graphics data processor using the method
US11069106B1 (en) Dynamic mesh generation to minimize fillrate utilization
JP6062438B2 (ja) タイル単位レンダラーを用いてレイヤリングするシステムおよび方法
KR102499397B1 (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
US9519946B2 (en) Partial tile rendering
US20190341007A1 (en) Electronic display partial image frame update systems and methods
JP2011090664A (ja) タイルベースのレンダリング装置および方法
KR20170058113A (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
US10147159B2 (en) Ink render using high priority queues
CN115315727A (zh) 图形处理单元渲染模式选择系统
US20150242988A1 (en) Methods of eliminating redundant rendering of frames
JP2010175638A (ja) 表示装置及び表示装置の表示方法
JP4827659B2 (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
US11798218B2 (en) Methods and apparatus for pixel packing
EP4162699A1 (en) Video data processing based on sampling rate
KR101345380B1 (ko) 3차원 그래픽스 데이터를 처리하는 장치에 공급하는전원의 전압을 제어하는 방법 및 이를 이용하는 3차원그래픽스 데이터 처리 장치
WO2023197284A1 (en) Saliency-based adaptive color enhancement
US8411036B2 (en) Hardware accelerated caret rendering
KR101488637B1 (ko) 전자 기기의 전력 관리 방법 및 전자 기기
WO2024137098A1 (en) Cutoff prediction for histogram data and backlight control

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151116

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161118

Year of fee payment: 5