KR101476418B1 - 화상 처리 장치 및 화상 처리 프로그램 - Google Patents

화상 처리 장치 및 화상 처리 프로그램 Download PDF

Info

Publication number
KR101476418B1
KR101476418B1 KR20140109488A KR20140109488A KR101476418B1 KR 101476418 B1 KR101476418 B1 KR 101476418B1 KR 20140109488 A KR20140109488 A KR 20140109488A KR 20140109488 A KR20140109488 A KR 20140109488A KR 101476418 B1 KR101476418 B1 KR 101476418B1
Authority
KR
South Korea
Prior art keywords
rendering
layer
image
frame
layers
Prior art date
Application number
KR20140109488A
Other languages
English (en)
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 가부시키가이샤 디에누에
Application granted granted Critical
Publication of KR101476418B1 publication Critical patent/KR101476418B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • 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
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)

Abstract

본 발명은 레이어를 중첩한 화상을 효과적으로 렌더링하는 기술을 제공하는 것을 그 목적으로 하며, 화상 표시 대상으로 되는 오브젝트를 복수의 레이어 중 어느 하나에 할당하고, 복수의 레이어를 중첩하여 1 프레임의 화상의 렌더링 처리를 수행할 때에, 레이어마다 오브젝트의 렌더링 명령 리스트를 포함하는 오브젝트 데이터베이스를 참조하여, 리스트에 포함되는 렌더링 명령 수에 따라, 1 프레임의 화상 렌더링에서의 레이어 각각에 대한 오브젝트의 렌더링 처리 수를 동적으로 변경하는 것을 그 해결 수단으로 한다.

Description

화상 처리 장치 및 화상 처리 프로그램 {IMAGE PROCESSING DEVICE AND IMAGE PROCESSING PROGRAM}
본 발명은 복수의 레이어를 겹쳐서 화상을 표시하는 화상 처리 장치 및 화상 처리 프로그램에 관한 것이다.
컴퓨터, 스마트폰, 태블릿 등에 설치된 디스플레이 상에 화상을 표시할 때에, 복수의 레이어를 중첩하여 하나의 화상을 구성하여 표시하는 방법이 알려져 있다. 즉, 각 레이어는 투명 필름과 같은 화상 영역이고, 각 레이어에 있어 불투명한 오브젝트의 화상 영역 이외의 투명한 화상 영역에는 중첩된 아래 레이어가 비쳐 보이도록 화상이 합성된다. 또한, 각 레이어는 다른 레이어에 대해 상대 위치를 바꾸어 중첩하는 것이 가능하고, 각 레이어를 슬라이드와 같이 움직이게 하는 것에 의해 각 레이어에 렌더링(묘화)된 오브젝트의 화상을 희망하는 위치에 배치하는 것이 가능하다. 또한, 레이어의 불투명도를 변경하여 렌더링된 오브젝트의 화상을 부분적으로 투명하게 하는 것도 가능하다.
예컨대, 전자 게임에서는 배경 화상이 렌더링된 레이어, 게임에 등장하는 캐릭터의 화상이 렌더링된 캐릭터 레이어, 아군이나 적의 캐릭터 상태 등을 나타내는 화상이 렌더링된 HUD 레이어 등을 중첩하여 하나의 화상을 구성하여 디스플레이 상에 표시한다.
이러한 화상의 렌더링을 수행할 때에, CPU의 부담을 경감하기 위해, 조작 입력의 타이밍의 지표로 되는 제1 영역을 그 외의 제2 영역보다도 높은 프레임 레이트로 렌더링하는 기술이 개시되어 있다 (특허문헌 1).
일본특허 제4948217호 공보
그러나, 높은 프레임 레이트로 렌더링을 수행하는 영역이 고정되어 있으면 적용되는 경우가 한정적이다.
또한, 레이어마다 오브젝트를 렌더링하기 위한 API를 호출하여 처리를 수행하는 경우, 컴퓨터의 성능 등에 의해 단위 시간당 처리 가능한 API 콜 수가 한정되어 있으면, 각 레이어에 대해서 균등하게 API를 콜하면 프레임이 매끄럽게(smoothly) 표시되지 않게 될 우려가 있다.
그러므로, 다양한 상황에 적용 가능하고, 한정된 API 콜 수로의 처리로 매끄러운 영상 표시를 수행하는 것이 가능하도록 하는 기술이 요망되고 있다.
본 발명의 일 양태는, 화상표시의 대상으로 되는 오브젝트가 복수의 레이어 중 어디에도 할당되고, 복수의 레이어를 중첩하여 1 프레임의 화상 렌더링 처리를 수행하는 화상 처리 장치로서, 레이어마다 오브젝트의 렌더링 명령 리스트를 포함하는 오브젝트 데이터베이스를 참조하여, 상기 리스트에 포함되는 렌더링 명령 수에 따라, 1 프레임의 화상 렌더링에서의 레이어 각각에 대한 오브젝트의 렌더링 처리 수를 동적으로 변경하는 것을 특징으로 하는 화상 처리 장치이다.
또한, 본 발명의 다른 양태는, 화상 표시의 대상으로 되는 오브젝트가 복수의 레이어 중 어디에도 할당되고, 복수의 레이어를 중첩하여 1 프레임의 화상 렌더링 처리를 수행하기 위한 화상 처리 프로그램으로서, 레이어마다 오브젝트의 렌더링 명령 리스트를 포함하는 오브젝트 데이터베이스를 저장하는 저장부를 구비한 컴퓨터를, 상기 오브젝트 데이터베이스를 참조하여, 상기 리스트에 포함되는 렌더링 명령 수에 따라, 1 프레임의 화상 렌더링에서의 레이어 각각에 대한 오브젝트의 렌더링 처리 수를 동적으로 변경하는 수단으로서 기능시키는 것을 특징으로 하는 화상 처리 프로그램이다.
여기에서, 레이어에 우선도가 설정되어 있고, 상기 우선도가 낮은 레이어보다 상기 우선도가 높은 레이어에 대해 오브젝트의 렌더링 처리를 우선적으로 수행하는 것이 적합하다.
또한, 1 프레임의 화상 렌더링에 대해서 실행 가능한 렌더링 명령 수를 복수의 레이어에 대해 배분하고, 배분된 렌더링 명령 수에 따라 복수의 레이어에 할당된 오브젝트의 렌더링 처리를 수행하는 것이 적합하다.
또한, 렌더링 처리 대상으로 되는 레이어에 대해 오브젝트 데이터베이스의 리스트에 등록되어 있는 렌더링 명령의 수를, 1 프레임의 렌더링 처리에 대해서 남겨져 있는 실행 가능한 렌더링 명령의 수로 나누어 수치 A를 산출하고, 1 프레임의 렌더링 처리에 대해서 실행 가능한 렌더링 명령의 수를 수치 A로 나누어 수치 B를 산출하고, 상기 렌더링 처리 대상으로 되는 레이어에 대해 렌더링 명령을 수치 B만큼 실행하는 것이 적합하다.
또한, 상기 오브젝트 데이터베이스의 리스트에 이미 등록되어 있는 렌더링 명령의 대상인 오브젝트에 대해 추가의 렌더링 명령이 나온 경우, 상기 이미 등록되어 있는 렌더링 명령과 상기 추가의 렌더링 명령을 합친 렌더링 명령으로 갱신하는 것이 적합하다.
또한, 1 프레임의 화상 렌더링에 대해서 실행 가능한 렌더링 명령 수를 실측하고, 그 실측치에 따라 1 프레임의 화상 렌더링에 대해서 실행 가능한 렌더링 명령 수를 복수의 레이어에 대해 배분하는 것이 적합하다.
본 발명에 의하면, 복수의 오브젝트를 레이어에 할당하고, 복수의 레이어를 중첩하여 표시하는 화상 처리에 대해서 매끄러운 화상 표시를 실현하는 것이 가능하다.
도 1은 본 발명의 실시 형태에 있어 화상 처리 장치의 구성을 도시한 도면이다.
도 2는 본 발명의 실시 형태에 있어 화상의 구성을 도시한 도면이다.
도 3은 본 발명의 실시 형태에 있어 오브젝트 데이터베이스의 등록 예를 도시한 도면이다.
도 4는 본 발명의 실시 형태에 있어 화상 처리의 흐름도이다.
도 5는 본 발명의 실시 형태에 있어 오브젝트 데이터베이스의 등록 예를 도시한 도면이다.
본 발명의 실시 형태에 있어 화상 처리 장치(100)는, 도 1에 도시되는 바와 같이 처리부(10), 저장부(12), 입력부(14) 및 출력부(16)를 포함하여 구성된다. 즉, 화상 처리 장치(100)는, 컴퓨터의 기본 구성을 구비하고 있어, 일반적인 PC, 스마트폰, 태블릿, 휴대 전화기 등으로 하는 것이 가능하다. 또한, 화상 처리 장치(100)는, 그 기능의 일부가 인터넷 등의 통신 수단(104)으로 접속된 외부 서버(102)에 의해 실현되어도 좋다.
처리부(10)는 CPU 등의 연산 처리를 수행하는 수단을 포함한다. 처리부(10)는, 저장부(12)에 저장되어 있는 화상 처리 프로그램을 실행하는 것으로, 본 실시 형태에서의 화상 처리를 실현한다. 저장부(12)는, 반도체 메모리, 하드 디스크 등의 기억 장치 수단을 포함한다. 저장부(12)는, 처리부(10)와 액세스 가능하도록 접속되고, 화상 처리 프로그램, 화상 처리에 제공되는 각 오브젝트의 화상 데이터, 오브젝트의 렌더링 명령 리스트를 포함하는 오브젝트 데이터베이스 등을 저장한다. 입력부(14)는, 화상 처리 장치(100)에 정보를 입력하는 수단을 포함한다. 입력부(14)는, 예컨대, 유저로부터의 입력을 받는 터치 패널이나 키보드를 구비한다. 또한, 입력부(14)는, 화상 처리 장치(100)의 외부로부터 정보를 받아들이는 네트워크 인터페이스 등을 포함하고, 화상 처리 프로그램, 화상 처리에 제공되는 각 오브젝트의 화상 데이터를 수신한다. 출력부(16)는, 화상 처리 장치(100)에서 처리된 정보를 출력하는 수단을 포함한다. 출력부(16)는, 예컨대, 유저에 대해 화상을 제시하는 디스플레이를 구비한다. 또한, 화상 처리 장치(100)의 외부로 정보를 송신하는 네트워크 인터페이스 등을 포함하고, 외부 서버(102) 등으로 정보를 송신한다.
본 실시 형태에서는 화상 처리 장치(100)에 의한, 3개의 레이어에 할당된 복수의 오브젝트의 렌더링 처리에 대해 설명한다. 다만, 레이어의 수나 오브젝트의 수는 이것에 한정되는 것은 아니다.
도 2는 화상 처리 장치(100)에서의 화상(22)의 구성예를 도시한 도면이다. 화상 처리 장치(100)에서 출력부(16)에 표시되는 화상(22)은, 복수의 레이어(20) (본 실시 형태에서는 3개의 레이어 A(20a), 레이어 B(20b), 레이어 C(20c))를 중첩하여 합성한 합성 화상이다.
각 레이어(20)에는, 단수 또는 복수의 오브젝트가 할당된다. 오브젝트는, 표시 대상으로 되는 화상의 속성을 나타내는 개념이다. 전자 게임을 예로 들면, 오브젝트는 예컨대 배경, 캐릭터, HUD 등의 속성치를 갖는다. 더욱이, HUD의 속성이 붙은 오브젝트는, 히트 포인트(체력) 표시부, 매직 포인트 표시부 등의 HUD로서 하나의 레이어 A(20a)에 할당된다. 또한, 캐릭터의 속성치가 붙은 오브젝트는, 아군 캐릭터, 적 캐릭터 등 게임에 등장하는 캐릭터로서 하나의 레이어 B(20b)에 할당된다. 또한, 배경의 속성치가 붙은 오브젝트는 산, 나무, 길, 집 등의 배경으로서 하나의 레이어 C(20c)에 할당된다.
각 레이어(20)는, 각각 하나의 화상이며, 레이어(20)마다 할당된 오브젝트의 화상 데이터가 묘사된다.
예컨대, 도 2의 예에서는, 레이어 A(20a)에는 오브젝트 A1 내지 A6이 할당되고, 오브젝트 A1 내지 A6의 화상이 레이어 A(20a)에 렌더링되어 있다. 또한, 레이어 B(20b)에는 오브젝트 B1 내지 B3이 할당되고, 오브젝트 B1 내지 B3의 화상이 레이어 B(20b)에 렌더링되어 있다. 또한, 레이어 C(20c)에는 오브젝트 C1 내지 C4가 할당되고, 오브젝트 C1 내지 C4의 화상이 레이어 C(20c)에 렌더링되어 있다.
또한, 도 2의 예에서는, 설명을 이해하기 쉽게 하기 위해, 각 레이어(20)에 할당되는 오브젝트의 수를 적게 하고 있으나, 실제로는 각 레이어(20)에는 보다 많은 오브젝트가 할당된다.
각 레이어(20)에는, 레이어(20)를 중첩할 때의 우선도가 설정된다. 복수의 레이어(20)를 중첩하여 합성 화상을 구성할 때에, 우선도가 높은 레이어(20)를 낮은 레이어(20)보다 위에 중첩한다. 즉, 중첩한 복수의 레이어(20)에 렌더링된 오브젝트의 화상끼리 겹쳐진 경우, 보다 우선도가 높은 레이어(20)의 화상을 우선하여 합성 화상이 구성된다. 또한, 각 레이어(20)에서 오브젝트의 화상 데이터가 묘사되고 있지 않은 영역은 투명 영역으로 된다. 이것에 의해, 중첩한 복수의 레이어(20)에 렌더링된 화상끼리 겹치지 않은 경우, 아래 레이어(20)에 렌더링되어 있는 화상이 위 레이어(20)를 투과하여 보여지도록 합성 화상이 구성된다.
도 2의 예에서는, 레이어 A(20a), 레이어 B(20b), 레이어 C(20c)의 순으로 우선도가 높게 설정되어 있다. 이들 3개의 레이어 A(20a), 레이어 B(20b), 레이어 C(20c)를 중첩하면 합성 화상(22)이 된다. 즉, 레이어 A(20a)에 렌더링된 화상 영역에 레이어 B(20b), C(20c)에 렌더링된 화상이 겹쳐진 때에는, 레이어 A(20a)에 렌더링된 화상이 우선적으로 표시되도록 합성된다. 또한, 레이어 B(20b)에 렌더링된 화상 영역에 레이어 C(20c)에 렌더링된 화상이 겹쳐진 때에는, 레이어 B(20b)에 렌더링된 화상이 우선적으로 표시되도록 합성된다.
도 3은, 저장부(12)에 저장되는 오브젝트 데이터베이스의 등록예를 도시한 도면이다. 오브젝트 데이터베이스는, 화상을 구성하는 복수의 레이어 각각에 대해 등록된다. 레이어마다, 표시대상으로 되는 오브젝트가 할당되어 등록된다. 예컨대, 도 2의 예에서는, 레이어 A(20a)에는, 오브젝트 A1 내지 A5가 할당되어 등록되어 있다. 또한, 레이어 B(20b)에는, 오브젝트 B1 내지 B3가 할당되어 등록되고, 레이어 C(20c)에는, 오브젝트 C1 내지 C4가 할당되어 등록되어 있다.
처리부(10)는, 전자 게임 등의 프로그램에 포함되는 화상 처리 프로그램을 실행하고, 게임의 진행 등에 따라 각 레이어에 할당된 오브젝트의 렌더링 처리를 수행한다. 이 때, 레이어마다 각 오브젝트를 렌더링하기 위한 렌더링 처리를 지시하기 위한 렌더링 명령, 예컨대 렌더링 처리를 수행하는 API를 콜 하는 렌더링 명령, 이 오브젝트 데이터베이스의 리스트에 등록된다.
도 3의 예에서는, 레이어 A(20a)에 대해, 레이어 A에 할당되어 있는 오브젝트 A1에 포함되는 수치를 갱신하는 처리를 수행하는 렌더링 명령이 나와 있고, 그 렌더링 명령이 리스트에 등록되어 있다. 또한, 레이어 B(20b)에 대해, 레이어 B에 할당되어 있는 오브젝트 B1을 오른쪽으로 2도트 및 위쪽으로 3도트만큼 이동시키는 처리를 수행하는 렌더링 명령 1이 등록되어 있다. 레이어 B에 대해서는, 렌더링 명령 2 내지 10도 마찬가지로 등록되어 있다. 더욱이, 레이어 C(20c)에 대해, 레이어 C에 할당되어 있는 오브젝트 C1을 오른쪽으로 3도트 및 위쪽으로 3도트만큼 이동시키는 처리를 수행하는 렌더링 명령 1이 등록되어 있다. 레이어 C에 대해서는, 렌더링 명령 2 내지 100도 마찬가지로 등록되어 있다.
여기에서, 1초당 600개의 렌더링 처리(API 콜)가 가능한 컴퓨터에 의해 1초당 60 프레임의 렌더링을 수행하는 경우에 대한 처리를 설명한다. 이 경우, 1 프레임당 10개의 렌더링 명령에 대해 처리를 수행하는 것이 가능하다.
하지만, 도 3의 예에서는, 오브젝트 데이터베이스에는 레이어 A(20a)에 대해 1개의 렌더링 명령, 레이어 B(20b)에 대해 10개의 렌더링 명령, 레이어 C(20c)에 대해 100개의 렌더링 명령이 등록되어 있고, 그 합계는 111개이다. 이처럼, 총 렌더링 명령수가 1 프레임당 처리 가능한 렌더링 명령수 (여기에서는 10)를 초과하는 경우, 1 프레임 내에 전체 렌더링 명령을 처리하는 것은 할 수 없다.
본 실시형태에서는, 레이어의 우선도에 따라 각 레이어에서의 렌더링 처리량을 다르게 하여, 매끄러운 영상이 표시되도록 렌더링 처리를 수행한다. 구체적으로는, 도 4에 도시한 흐름도에 따라 처리를 수행한다.
단계 S10에서는, 가장 우선도가 높은 레이어에 대해 등록되어 있는 렌더링 명령의 처리를 수행한다. 도 3의 오브젝트 데이터베이스의 리스트의 예에서는, 가장 우선도가 높은 레이어 A(20a)에는 1개의 렌더링 명령이 등록되어 있으므로, 처리부(10)는 이 렌더링 명령의 렌더링 처리를 실행한다. 이것에 의해, 오브젝트 데이터베이스의 레이어 A와 관련하여 등록되어 있는 남은 렌더링 명령수는 0이 된다.
단계 S12에서는, 가장 우선도가 높은 레이어보다도 우선도가 낮은 레이어에 대해 등록되어 있는 렌더링 명령의 처리를 수행한다. 먼저, 가장 우선도가 높은 레이어 다음으로 우선도가 높은 레이어, 즉 2번째로 우선도가 높은 레이어에 대해 처리하는 렌더링 명령수를 결정한다.
먼저, 처리대상으로 되는 레이어에 대해 오브젝트 데이터베이스에 등록되어 있는 렌더링 명령수를 현재 처리중인 프레임에 대해 남아 있는 렌더링 명령 수로 나눈 수치 A를 산출한다. 도 3의 오브젝트 데이터베이스의 경우, 2번째로 우선도가 높은 레이어 B(20b)에 대해 10개의 렌더링 명령이 등록되어 있고, 현재 처리중인 프레임에 대해서는 9개의 렌더링 명령이 남아 있다. 따라서, A=10/9=2 (소수점 이하는 올림)가 된다. 그리고, 산출된 수치 A로 1 프레임당 처리 가능한 렌더링 명령수 (여기에서는 10)를 나눈 수치 B를 해당 레이어 B에서 처리하는 렌더링 명령수로 한다. 따라서, B=10/2=5가 레이어 B에 대해 처리하는 렌더링 명령수가 된다. 여기에서, 처리부(10)는 레이어 B에 대해 오브젝트 데이터베이스의 리스트에 등록되어 있는 렌더링 명령 중 보다 우선순위가 높은 5개의 렌더링 명령을 실행한다. 렌더링 명령의 우선순위는, 예컨대, 오브젝트 데이터베이스의 리스트에 보다 오래전부터 등록되어 있는 렌더링 명령을 보다 우선순위가 높은 렌더링 명령으로 하여 결정하면 좋다. 이것에 의해, 오브젝트 데이터베이스의 레이어 B와 관련하여 등록되어 있는 남은 렌더링 명령수는 5가 된다.
남은 처리가능한 렌더링 명령수는 4가 되므로, 그 전부를 가장 우선도가 낮은 레이어 C의 처리에 할당한다. 처리부(10)는, 레이어 C에 대해 오브젝트 데이터베이스의 리스트에 등록되어 있는 렌더링 명령 중 보다 우선도가 높은 4개의 렌더링 명령을 실행한다. 이것에 의해, 오브젝트 데이터베이스의 레이어 C와 관련하여 등록되어 있는 남은 렌더링 명령수는 96이 된다.
또한, 레이어 C보다도 낮은 우선순위의 레이어가 존재하는 경우에는, 레이어 C에 대해서도 레이어 B와 마찬가지의 처리를 수행한다. 즉, 레이어 A 및 레이어 B의 렌더링 처리에 의해, 현재 처리중인 프레임에 대해 처리 가능한 남은 렌더링 명령수는 4가 되므로, 수치 A = 100/4 = 25 및 수치 B = 10/25 = 1 (소수점 이하는 올림)이 된다. 따라서, 처리부(10)는, 레이어 C에 대해 오브젝트 데이터베이스의 리스트에 등록되어 있는 렌더링 명령 중 보다 우선순위가 높은 1개의 렌더링 명령을 실행한다. 이러한 처리를 가장 우선도가 낮은 레이어까지 반복한다.
여기까지의 처리에 의해, 1초간 60회 갱신되는 프레임 중 1번째의 프레임의 갱신이 완료된다. 그리고, 레이어 A에 대한 남은 렌더링 명령수는 0, 레이어 B에 대한 남은 렌더링 명령수는 5, 레이어 C에 대한 남은 렌더링 명령수는 96이 된다.
다음으로, 2번째 이후의 프레임의 렌더링 명령에 들어간다. 또한, 하나의 프레임의 렌더링 처리 도중이나 복수의 프레임의 렌더링 처리 사이에 렌더링 처리 이외의 처리를 수행해도 좋다. 여기에서는, 2번째 이후의 프레임의 렌더링 처리에 들어가기 전에, 레이어 A에 대해 새로 하나의 렌더링 명령이 더해져서, 레이어 A에 대한 남은 렌더링 명령 수는 1, 레이어 B에 대한 남은 렌더링 명령 수는 5, 레이어 C에 대한 남은 렌더링 명령 수는 96이 된 경우에 대해 설명한다.
단계 S14에서는, 전의 프레임까지의 화상의 렌더링 처리에 있어서 각 레이어에 대해 수행한 렌더링 명령의 평균치(이동평균)를 이용하여 각 레이어에 대한 렌더링 처리를 수행한다. 2번째 프레임의 렌더링에서는, 1번째 프레임의 렌더링 처리에서의 각 레이어에 대한 렌더링 처리 수가 그대로 적용된다. 즉, 레이어 A에 대해서는 하나의 렌더링 명령이 실행되고, 레이어 B에 대해서는 5개의 렌더링 명령이 실행되고, 레이어 C에 대해서는 4개의 렌더링 명령이 실행된다. 여기까지의 처리에 의해, 1초간에 60회 갱신되는 프레임 중 2번째 프레임의 갱신이 완료된다. 그리고, 레이어 A에 대한 남은 렌더링 명령 수는 0, 레이어 B에 대한 남은 렌더링 명령 수는 0, 레이어 C에 대한 남은 렌더링 명령 수는 92가 된다.
다음으로, 단계 S14의 처리로 되돌아가서, 3번째 및 그 이후의 프레임의 렌더링 처리로 들어간다. 여기에서, 3번째 및 그 이후의 프레임의 렌더링 처리로 들어가기 전에, 레이어 A에 대해 새로 1개의 렌더링 명령이 더해져서, 레이어 A에 대한 남은 렌더링 명령 수는 1, 레이어 B에 대한 남은 렌더링 명령 수는 0, 레이어 C에 대한 남은 렌더링 명령 수는 92가 된 경우에 관해 설명한다.
3번째 프레임의 렌더링에서는, 1번째 및 2번째 프레임의 렌더링 처리에서의 각 레이어에 대한 렌더링 처리수의 평균치가 적용된다. 즉, 레이어 A에 대해서는 1개의 렌더링 명령이 실행된다. 레이어 B에 대해서는 5개의 렌더링 명령이 적용된다. 하지만, 오브젝트 데이터베이스에는 레이어 B에 대한 렌더링 명령이 남아있지 않으므로, 이러한 경우에는 우선도가 다음인 레이어로 보내진다. 따라서, 레이어 C에 대해서는 9개의 렌더링 명령이 실행된다. 여기까지의 처리에 의해, 1초간에 60회 갱신되는 프레임 중 3번째 프레임의 갱신이 완료된다. 그리고, 레이어 A에 대한 남은 렌더링 명령 수는 0, 레이어 B에 대한 남은 렌더링 명령 수는 0, 레이어 C에 대한 남은 렌더링 명령 수는 83이 된다.
또한, 예컨대, 레이어 B에 대해 렌더링 명령이 3개 추가되어 있는 경우에는, 레이어 B의 3개의 렌더링 명령을 실행한 후, 남은 2개의 렌더링 명령을 더하여 레이어 C에 대해서는 6개의 렌더링 명령을 실행한다.
4번째 및 그 이후의 프레임의 렌더링에 있어서도 마찬가지로 그때까지의 프레임의 렌더링 처리에서의 각 프레임에 대한 렌더링 처리수의 평균치를 적용하여 처리를 수행한다. 이 때, 각 레이어에 대해 렌더링 명령이 추가된 경우에는, 우선도가 높은 레이어에 대해 과거의 렌더링 처리수의 평균치만큼 렌더링 명령을 실행하고, 실행할 수 있는 렌더링 명령 수가 남은 경우에는 우선도가 다음인 레이어에 할당하는 처리를 수행한다.
본 실시형태에 의하면, 복수의 오브젝트를 레이어에 할당하고, 복수의 레이어를 중첩하여 표시하는 화상처리에 있어서, 각 레이어의 렌더링의 우선도에 따라 각 레이어의 처리량에 차이(경사)를 갖고 오브젝트의 렌더링 처리를 수행한다. 한편으로, 각 레이어마다, 리스트에 렌더링 명령이 있는 전체의(또는 가능한 한 많은) 레이어에 대해, 렌더링 명령이 실행된다. 이것에 의해, 단위 시간당 처리 가능한 API 콜 수가 한정되어 있는 경우에 있어서도 매끄러운 영상을 표시하는 것이 가능하다.
이것은, 유저에게 보이고 싶은 오브젝트가 보다 많이 포함되는 레이어의 우선도가 높게 설정되어 있다고 하는 경향을 이용하여, 유저에 의해 표시되는 영상이 매끄럽게 표시되도록 보이는 것이다. 1 프레임의 렌더링 처리에 있어서 우선도가 높은 레이어에 포함되는 오브젝트의 렌더링 수를 보다 우선도가 낮은 레이어에 포함되는 오브젝트의 렌더링 수보다 많게 하는 것에 의해 유저에게는 화상이 매끄럽게 보이는 것이다.
즉, 우선도가 높은 레이어에는 유저로부터의 주목도가 높은 오브젝트가 할당되어 있고, 이러한 오브젝트의 렌더링을 우선적으로 실행하는 것에 의해, 유저에게는 화상이 매끄럽게 표시되고 있다는 인상을 주는 것이 가능하다. 한편으로는, 1 프레임의 렌더링 처리에 있어서, 우선도가 높은 레이어뿐만 아닌, 우선도가 낮은 레이어에 할당된 오브젝트도 렌더링 처리된다. 따라서, 유저에게는 프레임 전체가 항상 조금씩 움직이고 있는 것과 같은 인상을 주는 것이 가능하기 때문에, 렌더링 처리의 늦음이 눈에 띄기 어렵다. 이 때, 우선도가 낮은 레이어의 오브젝트는 1회의 프레임 렌더링 처리에서는 모두 갱신되지는 않지만, 우선도가 낮은 레이어는 배경 화상 등 유저에게 있어 주목도가 낮은 오브젝트를 포함하고 있으므로 전체가 한번에 갱신되지 않아도 영상이 매끄럽게 표시되고 있는 것처럼 보인다.
이것에 의해, 처리능력이 불충분한 컴퓨터(휴대단말 등)에 있어서도, 오브젝트 렌더링 처리의 늦음이 눈에 띄지 않고, 전체로서 자연스러운 움직임을 하는 영상으로서 표시하는 것이 가능하다.
<변형예 1>
각 레이어에 대한 오브젝트의 렌더링 명령은, 오브젝트 데이터베이스에 리스트로서 관리되고 있다. 새롭게 렌더링 명령이 추가된 경우, 원칙으로서 리스트의 맨 뒤에 그 렌더링 명령이 추가된다.
본 변형예에서는, 오브젝트 데이터베이스의 리스트에 이미 등록되어 있는 렌더링 명령의 대상인 오브젝트에 대해 추가적으로 렌더링 명령이 나온 경우에는, 그 오브젝트에 대한 렌더링 명령의 내용을 합친다.
예컨대, 도 5에 도시되는 바와 같이, 레이어 B에 할당된 오브젝트 B1에 대해 이미 오른쪽으로 3도트 및 위쪽으로 3도트만큼 이동시키는 렌더링 명령이 등록되어 있는 때에, 그 렌더링 명령이 실행되기 전에 다시 오브젝트 B1에 추가의 렌더링 명령으로서 오른쪽으로 2도트 및 아래쪽으로 1도트만큼 이동시키는 렌더링 명령이 추가된 경우, 이미 등록되어 있는 렌더링 명령의 내용을 오른쪽으로 5도트 및 위쪽으로 2도트만큼 이동시키는 처리로 갱신한다.
이러한 렌더링 처리를 갱신하는 처리를 수행하는 것에 의해, 오브젝트 데이터베이스의 리스트에 등록되는 렌더링 명령 수를 줄이는 것이 가능하고, 렌더링 처리의 지연을 더욱 억제하는 것이 가능하다.
<변형예 2>
상기 실시 형태에서는 1초당 처리 가능한 렌더링 처리 수 (API 콜 수)나 1초당 렌더링 가능한 프레임 수에 대해서는 미리 설정하는 것으로 하였다. 하지만, 컴퓨터의 처리 부담의 변동 등에 의해 1초당 처리 가능한 렌더링 처리 수(API 콜 수)나 1초당 렌더링 가능한 프레임 수를 실측하여, 그 실측치에 맞춰 처리를 수행해도 좋다.
예컨대, 상기 실시형태에서는, 1초당 렌더링 가능한 프레임 수는 10으로 했으나, 실측치에서는 8인 경우, 앞 프레임까지의 화상의 렌더링 처리에서 각 레이어에 대해 수행한 렌더링 명령의 평균치(이동평균)로 1초당 렌더링 가능한 프레임 수의 기준치 및 변동치의 비(8/10)를 곱한 값을 각 레이어의 렌더링 명령의 실행 수로서 적용하면 좋다. 레이어 B에 대해 수행한 렌더링 명령의 평균치(이동평균)가 5인 경우, 5X8/10=4가 되므로 레이어 B에 대해서는 4개의 렌더링 명령을 실행하면 좋다.
또한, 1초당 처리 가능한 렌더링 처리 수(API 콜수)가 변동한 경우, 그것에 기초하여 1초당 렌더링 가능한 프레임 수도 변동하므로, 변동한 1초당 렌더링 가능한 프레임 수에 따라 마찬가지의 처리를 수행하면 좋다.
이처럼, 1초당 렌더링 가능한 프레임 수의 변동에 따라 각 레이어에 대한 렌더링 명령의 실행수를 보정하여 처리를 수행하는 것에 의해, 렌더링 처리 능력의 변동에 따른 영상의 표시를 수행하는 것이 가능하다. 특히, 1초당 렌더링 가능한 프레임 수의 기준치 및 변동치의 비(8/10)에 의해 보정을 수행하는 것에 의해, 레이어의 우선도에 따라 각 레이어의 오브젝트의 렌더링 처리를 적절히 수행하는 것이 가능하다.
또한, 1초당 처리 가능한 렌더링 처리 수(API 콜 수)나 1초당 렌더링 가능한 프레임 수는 소정 시간마다 측정해도 좋고, 소정 수의 프레임의 렌더링 처리가 종료할 때마다 측정해도 좋다. 또한, 1초당 처리 가능한 렌더링 처리 수(API 콜 수)나 1초당 렌더링 가능한 프레임 수의 초기치를 설정하기 위해, 게임의 시작시점에서 계측을 수행해도 좋다.
10 : 처리부 12 : 저장부
14 : 입력부 16 : 출력부
20 : 레이어 22 : 화상
100 : 화상 처리 장치 102 : 외부 서버
104 : 통신 수단

Claims (7)

  1. 화상표시의 대상으로 되는 오브젝트가 복수의 레이어 중 어디에도 할당되고, 복수의 레이어를 중첩하여 1 프레임의 화상 렌더링 처리를 수행하는 화상 처리 장치에 있어서,
    레이어마다 오브젝트의 렌더링 명령 리스트를 포함하는 오브젝트 데이터베이스를 참조하여, 상기 리스트에 포함되는 렌더링 명령 수에 따라, 1 프레임의 화상 렌더링에서의 레이어 각각에 대한 오브젝트의 렌더링 처리 수를 동적으로 변경하는 것을 특징으로 하는 화상 처리 장치.
  2. 청구항 1에 있어서,
    레이어에 우선도가 설정되어 있고, 상기 우선도가 낮은 레이어보다 상기 우선도가 높은 레이어에 대해 오브젝트의 렌더링 처리를 우선적으로 수행하는 것을 특징으로 하는, 화상 처리 장치.
  3. 청구항 1 또는 청구항 2에 있어서,
    1 프레임의 화상 렌더링에 대해서 실행 가능한 렌더링 명령 수를 복수의 레이어에 대해 배분하고, 배분된 렌더링 명령 수에 따라 복수의 레이어에 할당된 오브젝트의 렌더링 처리를 수행하는 것을 특징으로 하는, 화상 처리 장치.
  4. 청구항 1에 있어서,
    렌더링 처리 대상으로 되는 레이어에 대해 오브젝트 데이터베이스의 리스트에 등록되어 있는 렌더링 명령의 수를, 1 프레임의 렌더링 처리에 대해서 남겨져 있는 실행 가능한 렌더링 명령의 수로 나누어 수치 A를 산출하고, 1 프레임의 렌더링 처리에 대해서 실행 가능한 렌더링 명령의 수를 수치 A로 나누어 수치 B를 산출하고, 상기 렌더링 처리 대상으로 되는 레이어에 대해 렌더링 명령을 수치 B만큼 실행하는 것을 특징으로 하는, 화상 처리 장치.
  5. 청구항 1에 있어서,
    상기 오브젝트 데이터베이스의 리스트에 이미 등록되어 있는 렌더링 명령의 대상인 오브젝트에 대해 추가의 렌더링 명령이 나온 경우, 상기 이미 등록되어 있는 렌더링 명령과 상기 추가의 렌더링 명령을 합친 렌더링 명령으로 갱신하는 것을 특징으로 하는, 화상 처리 장치.
  6. 청구항 1에 있어서,
    1 프레임의 화상 렌더링에 대해서 실행 가능한 렌더링 명령 수를 실측하고, 그 실측치에 따라 1 프레임의 화상 렌더링에 대해서 실행 가능한 렌더링 명령 수를 복수의 레이어에 대해 배분하는 것을 특징으로 하는, 화상 처리 장치.
  7. 화상 표시의 대상으로 되는 오브젝트를 복수의 레이어 중 임의의 레이어에 할당하고, 복수의 레이어를 중첩하여 1 프레임의 화상 렌더링 처리를 수행하기 위한 화상 처리 프로그램에 있어서,
    레이어마다 오브젝트의 렌더링 명령 리스트를 포함하는 오브젝트 데이터베이스를 저장하는 저장부를 구비한 컴퓨터를,
    상기 오브젝트 데이터베이스를 참조하여, 상기 리스트에 포함되는 렌더링 명령 수에 따라, 1 프레임의 화상 렌더링에서의 레이어 각각에 대한 오브젝트의 렌더링 처리 수를 동적으로 변경하는 수단으로서 기능시키기 위하여, 상기 컴퓨터의 저장부에 저장된 화상 처리 프로그램.
KR20140109488A 2013-08-28 2014-08-22 화상 처리 장치 및 화상 처리 프로그램 KR101476418B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013176924A JP5466786B1 (ja) 2013-08-28 2013-08-28 画像処理装置及び画像処理プログラム
JPJP-P-2013-176924 2013-08-28

Publications (1)

Publication Number Publication Date
KR101476418B1 true KR101476418B1 (ko) 2014-12-24

Family

ID=50619484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140109488A KR101476418B1 (ko) 2013-08-28 2014-08-22 화상 처리 장치 및 화상 처리 프로그램

Country Status (5)

Country Link
US (1) US9177531B2 (ko)
EP (1) EP2843626B1 (ko)
JP (1) JP5466786B1 (ko)
KR (1) KR101476418B1 (ko)
CN (1) CN104424620B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8723886B2 (en) * 2010-09-08 2014-05-13 Navteq B.V. Generating a multi-layered geographic image and the use thereof
EP4198911A1 (en) * 2015-08-18 2023-06-21 Magic Leap, Inc. Virtual and augmented reality systems and methods
FR3045179B1 (fr) 2015-12-15 2018-01-26 Areva Np Dispositif electronique et procede de gestion de l'affichage de donnees pour le pilotage d'une centrale nucleaire, systeme de pilotage et produit programme d'ordinateur associes
CN105719240B (zh) * 2016-01-21 2019-01-08 腾讯科技(深圳)有限公司 图片处理的方法和装置
CN114902286A (zh) * 2019-12-31 2022-08-12 高通股份有限公司 用于促进运动帧的感兴趣区域跟踪的方法和装置
CN112667135A (zh) * 2021-01-26 2021-04-16 马瑞利汽车电子(广州)有限公司 一种汽车仪表主题切换方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186834A (ja) * 2010-03-09 2011-09-22 Copcom Co Ltd ゲームプログラム、記録媒体、及びコンピュータ装置
JP4817549B2 (ja) * 2000-07-28 2011-11-16 キヤノン株式会社 ページ記述のレンダリング方法及びシステム
JP4902847B2 (ja) * 2006-03-29 2012-03-21 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及びゲーム装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963947B2 (en) * 2001-05-08 2005-11-08 Tao Logic Systems Llc Driver supporting bridge method and apparatus
US7073181B2 (en) * 2001-11-13 2006-07-04 International Business Machines Corporation System and method for sharing secure sockets layer sessions across multiple processes
EP1684234A1 (en) * 2005-01-20 2006-07-26 Culture.com Technology (Macau) Ltd Graphics rendering system and method
US8239869B2 (en) * 2006-06-19 2012-08-07 Condusiv Technologies Corporation Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
JP4425890B2 (ja) * 2006-08-07 2010-03-03 株式会社コナミデジタルエンタテインメント シミュレーション装置、シミュレーション方法、ならびに、プログラム
US8711783B2 (en) * 2006-12-01 2014-04-29 Samsung Electronics Co., Ltd. Method and apparatus for coordinating hopping of resources in wireless communication systems
JP4948217B2 (ja) 2007-02-22 2012-06-06 株式会社ソニー・コンピュータエンタテインメント ゲーム装置、ゲーム制御方法、及びゲーム制御プログラム
US8808087B2 (en) * 2007-02-22 2014-08-19 Sony Corporation Game device, game control method, and game control program
JPWO2009034634A1 (ja) * 2007-09-13 2010-12-16 三菱電機株式会社 地図描画装置
JP2009075888A (ja) * 2007-09-20 2009-04-09 Canon Inc 描画処理装置及びその方法、プログラム、記録媒体
US8610725B2 (en) * 2007-10-10 2013-12-17 Apple Inc. Framework for dynamic configuration of hardware resources
CN101299328B (zh) * 2008-06-19 2010-06-02 华为技术有限公司 一种图像显示方法和装置
JP5136645B2 (ja) * 2008-08-12 2013-02-06 富士通株式会社 電子ペーパ端末装置、画像表示制御プログラム、および画像表示制御方法
US8698823B2 (en) * 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
JP5641825B2 (ja) * 2010-08-26 2014-12-17 キヤノン株式会社 装置およびその制御方法、並びにプログラム
US9483313B2 (en) * 2010-10-19 2016-11-01 Microsoft Technology Licensing, Llc Availability management for reference data services
JP5086487B1 (ja) * 2012-03-29 2012-11-28 株式会社 ディー・エヌ・エー ゲームプログラム、ゲームシステム、及び、情報処理装置
US9319968B2 (en) * 2012-09-19 2016-04-19 Blackberry Limited System and method for controlling network scan parameters for a network connection
US9104480B2 (en) * 2012-11-15 2015-08-11 International Business Machines Corporation Monitoring and managing memory thresholds for application request threads
US9325699B2 (en) * 2013-03-15 2016-04-26 Vonage America Inc. Method for apparatus for routing application programming interface (API) calls

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4817549B2 (ja) * 2000-07-28 2011-11-16 キヤノン株式会社 ページ記述のレンダリング方法及びシステム
JP4902847B2 (ja) * 2006-03-29 2012-03-21 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及びゲーム装置
JP2011186834A (ja) * 2010-03-09 2011-09-22 Copcom Co Ltd ゲームプログラム、記録媒体、及びコンピュータ装置

Also Published As

Publication number Publication date
EP2843626B1 (en) 2016-12-14
US9177531B2 (en) 2015-11-03
US20150062169A1 (en) 2015-03-05
CN104424620B (zh) 2017-05-03
EP2843626A2 (en) 2015-03-04
JP5466786B1 (ja) 2014-04-09
CN104424620A (zh) 2015-03-18
EP2843626A3 (en) 2015-04-15
JP2015046017A (ja) 2015-03-12

Similar Documents

Publication Publication Date Title
KR101476418B1 (ko) 화상 처리 장치 및 화상 처리 프로그램
US9041742B2 (en) Displaying an image based on layers of a layer tree
US10347023B2 (en) Data drawing method and apparatus, terminal, and storage medium
US9600149B2 (en) Display processing system, display processing method, and information storage medium
US9235911B2 (en) Rendering an image on a display screen
US20130088505A1 (en) Caching coverage values for rendering text using anti-aliasing techniques
US8648861B2 (en) Two-dimensional vector fills using topological recipes
JP2022515798A (ja) 照明レンダリング方法、装置、電子装置及びコンピュータプログラム
JP6173226B2 (ja) 画像処理装置及び画像処理プログラム
CN110232665B (zh) 最大池化方法、装置、计算机设备及存储介质
CN109598672A (zh) 一种地图道路渲染方法及装置
US10628397B2 (en) Navigation of data set preparation
KR101911947B1 (ko) 정보 가독성 향상과 배경 이미지 조화를 위한 화면 디자인 방법 및 그 시스템
JP6162553B2 (ja) 画像処理装置及び画像処理プログラム
CN117270855B (zh) 一种基于vue实现表格高度自适应的方法
JP6250214B1 (ja) 画像処理装置及び画像処理プログラム
JP2023045414A (ja) 画像データ生成装置、画像データ生成方法及び画像データ生成プログラム
JP5941207B1 (ja) ユーザ・インタフェース・プログラムおよびコンピュータ実装方法
Foucault Infinite Photo Collage
CN116823972A (zh) 一种信息处理方法
WO2023107526A9 (en) Sweep algorithm for output of graphical objects
CN115344252A (zh) 可视化大屏的生成方法、装置及存储介质
US20160117852A1 (en) Enabling Consumers to Customize a Piece of Artwork
US20170206186A1 (en) Media table for a digital document
JP2016071851A (ja) 画像描画装置及び画像描画プログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171208

Year of fee payment: 4