KR20140133807A - 드로잉 방법, 장치, 및 단말 - Google Patents

드로잉 방법, 장치, 및 단말 Download PDF

Info

Publication number
KR20140133807A
KR20140133807A KR1020147012010A KR20147012010A KR20140133807A KR 20140133807 A KR20140133807 A KR 20140133807A KR 1020147012010 A KR1020147012010 A KR 1020147012010A KR 20147012010 A KR20147012010 A KR 20147012010A KR 20140133807 A KR20140133807 A KR 20140133807A
Authority
KR
South Korea
Prior art keywords
gpu
cpu
time
command
drawing command
Prior art date
Application number
KR1020147012010A
Other languages
English (en)
Other versions
KR101623415B1 (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20140133807A publication Critical patent/KR20140133807A/ko
Application granted granted Critical
Publication of KR101623415B1 publication Critical patent/KR101623415B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

본 발명의 실시예는 컴퓨터 기술에 관한 것이다. 본 발명의 실시예는 드로잉 방법, 장치, 및 단말을 제공하며, 여기서
현재 프레임의 드로잉 커맨드 집합이 수신되고; 현재 프레임의 드로잉 커맨드 집합에 따라 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, CPU 드로잉 시간이 GPU 드로잉 시간보다 길면, GPU를 사용하여 현재 프레임을 드로잉한다. 이 방법에서, CPU/GPU 방식에 대응하는 드로잉 시간에 따라 어느 드로잉 방식을 채택할지가 동적으로 판정되므로, 각각의 프레임의 드로잉 시간을 상당히 단축할 수 있으며, 이에 의해 시스템의 디스플레이 속도를 올리고 디스플레이 성능을 향상시킨다.

Description

드로잉 방법, 장치, 및 단말{DRAWING METHOD, APPARATUS, AND TERMINAL}
본 발명은 컴퓨터 기술에 관한 것이며, 특히 방법, 장치, 및 단말에 관한 것이다.
2차원(Two Dimensions: 2D) 그래픽 라이브러리는 컴퓨터 운영체제에서 코어 라이브러리로서 사용되고, 2D 그래픽 라이브러리가 제공하는 개별의 드로잉 인터페이스의 성능은 사용자 인터페이스(User Interface: UI) 상에서의 동작에 응답하는 시스템의 적시성에 직접적으로 영향을 준다. 현재, 2D 드로잉에는 2가지 방식: 중앙처리장치(Central Processing Unit: CPU) 및 그래픽 처리 장치(Graphic Processing Unit: GPU)가 있다. 성능과 관련해서, CPU 방식은 단순한 작은 장면 드로잉에 적합하고, GPU 방식은 큰 장면 드로딩에 적합하다. 2D 드로잉 내의 장면은 드로잉 프로세스에 참여하는 연산 복잡도(예를 들어, 기하학적 변환) 및 영역 크기를 참조한다. 작은 장면의 드로잉을 위한 GPU 드로잉 방식을 채택하는 것 또는 큰 장면의 드로잉을 위한 CPU 드로잉 방식을 채택하는 것은 성능을 크게 감소시키며, 이는 시스템 UI 성능에 직접적으로 영향을 준다. 드로잉된 프레임이 속하는 응용 프로그램에 의해 다른 실행 방식이 결정되며, 개발자는 GPU 방식이 드로잉에 채택될지를 그 응용 프로그램에 설정할 수 있다. GPU 드로잉 방식이 설정되면, 시스템은 GPU 방식을 채택하여 응용 프로그램의 콘텐츠의 각각의 프레임을 드로잉하고; 그렇지 않으면, CPU 방식이 드로잉에 채택된다.
그렇지만, 응용 프로그램에 구성되어 있는 방식이 채택되는 경우에는, GPU 드로잉 또는 CPU 드로잉 중 어느 것이 개발 중인 응용 프로그램에 더 적합한지를 개발자는 여전히 알지 못한다. 그러므로 일부의 복잡한 콘텐츠의 프레임은 결국 CPU 방식으로 드로잉되거나 또는 일부의 간단한 프레임은 GPU 방식으로 드로잉되는 것이 불가피하며, 이로 인해 2D 드로잉의 성능이 저하된다.
본 발명의 실시예는 컴퓨터 시스템의 디스플레이 성능을 어느 정도 향상시키는 드로잉 방법, 장치, 단말을 제공한다.
제1 관점에 따르면, 본 발명의 실시예는 드로잉 방법을 제공하며, 상기 방법은, 현재 프레임의 드로잉 커맨드 집합을 수신하는 단계 - 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함함 - ; 상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 중앙처리장치(Central Processing Unit: CPU) 드로잉 시간 및 그래픽처리장치(Graphic Processing Unit: GPU) 드로잉 시간을 판정하는 단계; 및 상기 CPU 드로잉 시간이 상기 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, 상기 GPU 드로잉 시간이 상기 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉하는 단계를 포함한다.
제1 관점을 참조하여, 제1 실행 방식에서, 상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하는 단계는, 상기 현재 프레임의 드로잉 커맨드 집합 내의 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단하는 단계; 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 사전설정된 성능 테이블에 질의하여 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하는 단계; 및 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 상기 현재 프레임의 CPU 드로잉 시간을 획득하고, 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 상기 현재 프레임의 GPU 드로잉 시간을 획득하는 단계를 포함한다.
제1 관점의 제1 실행 방식을 참조하여, 제2 실행 방식에서, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 상기 사전설정된 성능 테이블에서 찾아지지 않으면, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산하고; 그리고 상기 계산된 CPU 드로잉 시간 및 GPU 드로잉 시간, 및 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터를 상기 사전설정된 성능 테이블에 저장한다.
제1 관점의 제2 실행 방식을 참조하여, 제3 실행 방식에서, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산하는 단계는, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 CPU 및 GPU를 각각 사용하여 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 단계; 및 상기 CPU 및 상기 GPU를 각각 사용하여 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 이미지 대상을 드로잉하는 프로세스에서, 상기 이미지 대상을 드로잉하는 데 CPU 및 GPU가 각각 사용한 시간을 기록하는 단계를 포함하며, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 CPU가 사용한 상기 기록된 시간은 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 CPU 드로잉 시간이며, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 GPU가 사용한 상기 기록된 시간은 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 GPU 드로잉 시간이다.
제1 관점, 제1 관점의 제1 실행 방식, 제1 관점의 제2 실행 방식 또는 제1 관점의 제3 실행 방식을 참조하여, 제4 실행 방식에서, CPU를 사용하여 현재 프레임을 드로잉하면, 상기 현재 프레임의 CPU 드로잉 결과를 비트맵(bitmap)으로 저장하고, GPU를 사용하여 현재 프레임을 드로잉하면, 상기 현재 프레임의 GPU 드로잉 결과를 텍스처(texture)로 저장하는 단계; 및 상기 비트맵 또는 상기 텍스처로 저장된 드로잉 결과를 스크린상에 디스플레이하는 단계를 더 포함한다.
제2 관점에 따르면, 본 발명의 실시예는 드로잉 장치를 제공하며, 상기 장치는, 현재 프레임의 드로잉 커맨드 집합을 수신하도록 구성되어 있는 수신 모듈 - 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함함 - ; 상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하도록 구성되어 있는 판정 모듈; 및 상기 판정 모듈에 의해 판정되는 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간 중에서 상기 CPU 드로잉 시간이 상기 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, 상기 GPU 드로잉 시간이 상기 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉하도록 구성되어 있는 드로잉 결정 모듈을 포함한다.
제2 관점을 참조하여, 제1 실행 방식에서, 상기 판정 모듈은 구체적으로, 상기 현재 프레임의 드로잉 커맨드 집합 내의 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단하고; 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 사전설정된 성능 테이블에 질의하여 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하며; 그리고 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 상기 현재 프레임의 CPU 드로잉 시간을 획득하고, 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 상기 현재 프레임의 GPU 드로잉 시간을 획득하도록 구성되어 있다.
제2 관점의 제1 실행 방식을 참조하여, 제2 실행 방식에서, 상기 장치는, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 상기 사전설정된 성능 테이블에서 찾아지지 않으면, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산하도록 구성되어 있는 계산 모듈; 및 상기 계산 모듈에 의해 계산된 CPU 드로잉 시간 및 GPU 드로잉 시간, 및 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터를 상기 사전설정된 성능 테이블에 저장하도록 구성되어 있는 갱신 모듈을 더 포함한다.
제2 관점의 제2 실행 방식을 참조하여, 제3 실행 방식에서, 상기 계산 모듈은 구체적으로, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 상기 판정 모듈에 의해 상기 사전설정된 성능 테이블에서 찾아지지 않으면, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 CPU 및 GPU를 각각 사용하여 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하며; 그리고 상기 CPU 및 상기 GPU를 각각 사용하여 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 이미지 대상을 드로잉하는 프로세스에서, 상기 이미지 대상을 드로잉하는 데 CPU 및 GPU가 각각 사용한 시간을 기록하도록 구성되어 있으며, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 CPU가 사용한 상기 기록된 시간은 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 CPU 드로잉 시간이며, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 GPU가 사용한 상기 기록된 시간은 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 GPU 드로잉 시간이다.
제2 관점, 제2 관점의 제1 실행 방식, 제2 관점의 제2 실행 방식 또는 제2 관점의 제3 실행 방식을 참조하여, 제4 실행 방식에서, 상기 장치는, CPU를 사용하여 현재 프레임을 드로잉하면, 상기 현재 프레임의 CPU 드로잉 결과를 비트맵으로 저장하고, GPU를 사용하여 현재 프레임을 드로잉하면, 상기 현재 프레임의 GPU 드로잉 결과를 텍스처로 저장하도록 구성되어 있는 저장; 및 상기 비트맵 또는 상기 텍스처로 저장된 드로잉 결과를 스크린상에 디스플레이하도록 구성되어 있는 디스플레이 모듈을 더 포함한다.
제3 관점에 따르면, 본 발명의 실시예는 단말 기기를 제공하며, 상기 단말 기기는, 중앙처리장치(CPU), 그래픽처리장치(GPU), 및 기기 스크린을 포함하고, 상기 중앙처리장치(CPU) 및 상기 그래픽처리장치(GPU)는 상기 기기 스크린에 연결되어 있으며, 상기 CPU는 현재 프레임의 드로잉 커맨드 집합을 수신하고, 여기서 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; 그리고 상기 CPU 드로잉 시간이 상기 GPU 드로잉 시간보다 짧으면, 상기 현재 프레임을 드로잉하고, 상기 GPU 드로잉 시간이 상기 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉하도록 구성되어 있으며, 상기 GPU는 상기 현재 프레임을 드로잉하도록 구성되어 있으며; 그리고 상기 기기 스크린은 상기 CPU 또는 상기 GPU를 사용하여 드로잉된 상기 현재 프레임의 드로잉 결과를 디스플레이하도록 구성되어 있다.
제3 관점을 참조하여, 제1 실행 방식에서, 상기 CPU는 구체적으로, 상기 현재 프레임의 드로잉 커맨드 집합 내의 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단하고; 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 사전설정된 성능 테이블에 질의하여 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하며; 그리고 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 상기 현재 프레임의 CPU 드로잉 시간을 획득하고, 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 상기 현재 프레임의 GPU 드로잉 시간을 획득하도록 구성되어 있다.
제3 관점의 제1 실행 방식을 참조하여, 제2 실행 방식에서, 상기 CPU는, 상기 드로잉 커맨드 집합 내의 드로잉 커맨드 중 하나 및 드로잉 커맨드에 있어서, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 상기 사전설정된 성능 테이블에서 찾아지지 않으면, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산하며; 그리고 상기 계산된 CPU 드로잉 시간 및 GPU 드로잉 시간, 및 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터를 상기 사전설정된 성능 테이블에 저장하도록 추가로 구성되어 있다.
본 발명의 실시예에서 제공하는 드로잉 방법, 장치, 및 단말에서, 현재 프레임의 드로잉 커맨드 집합이 수신되고, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 현재 프레임의 드로잉 커맨드 집합에 따라 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉한다는 것을 알 수 있다. 이 방법에서, CPU/GPU 방식에 대응하는 드로잉 시간에 따라 드로잉 시간이 더 짧은 드로잉 방식을 동적으로 판정할 수 있으므로, 각각의 프레임의 드로잉 시간을 상당히 단축할 수 있고, 이에 의해 시스템의 디스플레이 속도를 올리고 디스플레이 성능을 향상시킨다.
본 발명의 실시예 또는 종래기술에서의 기술적 솔루션을 더 명확하게 설명하기 위해, 이하에서는 실시예 또는 종래기술을 설명하는 데 필요한 첨부된 도면에 대해 간략하게 설명한다. 당연히, 이하의 상세한 설명에서의 첨부된 도면은 본 발명의 일부의 실시예에 지나지 않으며, 그럼에도 당업자라면 창조적 노력 없이 첨부된 도면으로부터 다른 도면을 도출해낼 수 있을 것이다.
도 1은 기존 단말의 논리적 구조에 대한 개략도이다.
도 2a는 본 발명의 실시예에 따른 드로잉 방법에 대한 개략적인 흐름도이다.
도 2b는 본 발명의 실시예에 따른 다른 드로잉 방법에 대한 개략적인 흐름도이다.
도 3a는 본 발명의 실시예에 따른 또 다른 드로잉 방법에 대한 개략적인 흐름도이다.
도 3b는 본 발명의 실시예에 따른 또 다른 드로잉 방법에 대한 개략적인 흐름도이다.
도 4a는 본 발명의 실시예에 따른 드로잉 장치에 대한 개략적인 구조도이다.
도 4b는 본 발명의 실시예에 따른 다른 드로잉 장치에 대한 개략적인 구조도이다.
도 4c는 본 발명의 실시예에 따른 또 다른 드로잉 장치에 대한 개략적인 구조도이다.
도 5는 본 발명의 실시예에 따른 단말 장치에 대한 개략적인 구조도이다.
도 6은 본 발명의 실시예에 따른 다른 단말 장치에 대한 개략적인 구조도이다.
이하에서는 본 발명의 실시예에 첨부된 도면을 참조하여 본 발명의 실시예의 기술적 솔루션에 대해 명확하고 완전하게 설명한다. 당연히, 설명된 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다.
도 2a를 참조하면, 도 2a는 본 발명의 실시예에서 제공하는 드로잉 방법에 대한 개략적인 흐름도이다. 본 발명의 실시예에서 제공하는 드로잉 방법은 단일의 물리적 호스트에 상주할 수 있거나 복수의 물리적 호스트 간에 분배된 컴퓨터 시스템에 적용될 수 있다. 구체적으로, 컴퓨터 시스템은 컴퓨터, 포터블 컴퓨터, 휴대형 장치(예를 들어, 휴대폰, PAD 등), 및 서버와 같은 하나 이상의 단말에 상주할 수 있다.
본 발명의 실시예에서 제공하는 드로잉 방법이 적용되는 단말의 논리적 구조에 대해 도 1을 예로 들어 설명한다. 단말은 구체적으로 스마트폰일 수 있다. 도면에 도시된 바와 같이, 하드웨어 계층을 CPU 및 GPU를 포함하고, 당연히 메모리, 입출력 장치, 네트워크 인터페이스 등을 더 포함할 수 있으며, 운영체제는 Android이고 일부의 응용 프로그램은 하드웨어에서 실행된다. 운영체제의 핵심부로서, 2D 그래픽 라이브러리 엔진은 CPU 드로잉을 실행하는 Skia 및 GPU 드로잉을 수행하는 openGL(Open Graphics Library)을 포함한다. 또한, 단말은 디스플레이 구동 계층의 디스플레이 드라이버; 디스플레이 합성 계층의 SurfaceFlinger; 뷰, 위젯, 및 캔버스를 포함하는, 디스플레이 프레임워크; 및 메인 인터페이스 Home, 전화번호부 Contacts, 브라우저 Browser 등을 더 포함하며, 이런 것들은 Android 운영체제에서 공통으로 사용된다. 이러한 단말에서는, 본 발명의 실시예에서 제공하는 드로잉 방법을 채택함으로써, 현재 프레임의 드로잉 커맨드 집합에 따라 CPU 드로잉 및 GPU 드로잉을 동적으로 선택할 수 있으므로 시스템의 드로잉 성능 향상시킬 수 있다.
도 2a에 도시된 바와 같이, 본 발명의 실시예에서 제공하는 드로잉 방법은 이하를 포함한다:
S101. 현재 프레임의 드로잉 커맨드 집합을 수신하며, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함한다.
드로잉 커맨드는 직선 기울기(linear gradient) 및 픽처 변화도(picture gradient)를 포함할 수 있으며, 대응하는 파라미터는 영역 크기, 좌표, 기울기 변화도 등을 포함할 수 있으며; 드로잉 커맨드는 사각형, 원, 직선, 또는 곡선을 드로잉하는 것을 더 포함할 수 있고, 대응하는 파라미터는 드로잉의 시작 좌표 및 종료 좌표, 선 유형, 선 두께, 선 색 등을 포함할 수 있다. 당업자라면 전술한 것은 단지 설명을 위한 것이며, 본 발명의 실시예에서 설명하는 커맨드는 어떠한 종류의 컴퓨터 시스템에서도 사용될 수 있는 어떠한 종류의 드로잉 커맨드도 포함할 수 있으며, 대응하는 파라미터 역시 실제의 파라미터 조건에 따라 융통성 있게 결정될 수 있으며, 본 발명의 실시예는 이에 제한되지 않는다는 것을 이해할 수 있을 것이다.
S102. 상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정한다.
CPU 드로잉 시간은 CPU가 현재 프레임의 전체 드로잉 커맨드 집합을 실행하는 데 필요한 시간이고, GPU 드로잉 시간은 GPU가 현재 프레임의 전체 드로잉 커맨드 집합을 실행하는 데 필요한 시간이다.
S103. CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉한다.
구체적으로, CPU 드로잉 시간이 GPU 드로잉 시간보다 짧다는 것은 다음과 같이 실현될 수 있다: CPU 드로잉 시간과 GPU 드로잉 시간 간의 차이가 특정한 임계값 k1보다 크다. 예를 들어, CPU 드로잉 시간이 TCPU이고 GPU 드로잉 시간이 TGPU이면, TGPU-TCPU=t1, t1>k1, 단 t1>0.
S104. GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉한다.
구체적으로, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧다는 것은 다음과 같이 실현될 수 있다: CPU 드로잉 시간과 GPU 드로잉 시간 간의 차이가 특정한 임계값 k2보다 크다. 예를 들어, CPU 드로잉 시간이 TCPU이고 GPU 드로잉 시간이 TGPU이면, TGPU-TCPU=t2, t2>k2, 단 t2>0.
k1 및 k2가 특정한 값 또는 수치 값 범위에 각각 설정될 수 있다는 것은 아무런 가치가 없다. k1 및 k2는 서로 동일하게 설정될 수도 있고 다르게 설정될 수도 있다.
현재 프레임의 CPU 드로잉 시간이 현재 프레임의 GPU 드로잉 시간과 같으면; 또는 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간 간의 차이의 절댓값이 특정한 임계값 k3을 초과하지 않으면, 예를 들어, k3=2가 설정될 수 있으면; 대안으로, 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간 간의 차이가 특정한 임계값 k3 내에 있지 않으면, 예를 들어, k3=[-2, 2] 또는 [-3, 4]가 설정될 수 있으면, CPU를 사용하여 현재 프레임을 드로잉함으로써 획득된 성능은 GPU를 사용하여 현재 프레임을 드로잉함으로써 획득된 성능과 유사하며, 현재 시스템의 실제의 조건에 따라 어느 드로잉 방식을 채택할지를 선택할 수 있다.
도 1을 예로 사용하면, 본 발명의 실시예에서 제공하는 드로잉 방식을 2D 그래픽 라이브러리 엔진 계층에 적용할 수 있다. 이 계층에서, CPU 드로잉 시간 및 GPU 드로잉 시간의 상태에 따라 Skia에서 제공하는 응용 프로그램 인터페이스(Application Program Interface: API)를 호출하여 CPU 드로잉을 실행할지 openGL에서 제공하는 API 인터페이스를 호출하여 GPU 드로잉을 수행할지를 동적으로 판정한다.
또한, 도 2b에 도시된 바와 같이, 본 발명의 실시예는 이하를 더 포함한다:
S105. CPU를 사용하여 현재 프레임을 드로잉하면, 현재 프레임의 CPU 드로잉 결과를 비트맵(Bitmap)으로 저장한다.
S106. GPU를 사용하여 현재 프레임을 드로잉하면, 현재 프레임의 GPU 드로잉 결과를 텍스처(Texture)로 저장한다.
Bitmap 및 Texture는 운영체제에서 제공하는 2가지의 상이한 렌더링 채널이다. Bitmap은 메모리에 대응하고, 행당(per-row) 및 픽셀당(per-pixel)을 기반으로 액세스된다. GPU 드로잉 방식이 채택되면, 모든 드로잉 커맨드가 실행된 후에 드로잉 콘텐츠가 Texture로 저장된다. Texture는 또한 메모리에도 대응하며 타일(Tile)에 의해 액세스된다.
S107. Bitmap 또는 Texture로 저장된 드로잉 결과를 스크린상에 디스플레이한다.
도 1을 예로 사용하면, 디스플레이 합성 계층은 복수의 작업을 지원하고, 복수의 응용 프로그램의 UI 윈도를 한 번에 디스플레이할 수 있다. 또한, 하나의 응용 프로그램에 대해 복수의 윈도를 생성할 수 있다. 모든 윈도가 드로잉된 후, 현재 디스플레이될 수 있는 모든 윈도를 포함하는 집합이 최종의 디스플레이 결과로서 시스템에 의해 디스플레이된다. 합성이 완료된 후에는, 디스플레이 구동 계층의 디스플레이 드라이버를 호출하여 그 결과를 프레임 버퍼(FrameBuffer)에 복사하며; 디스플레이 드라이버, 예를 들어, 단말의 액정 디스플레이(Liquid Crystal Display: LCD) 드라이버는 프레임 버퍼의 콘텐츠를 스크린상에 디스플레이한다.
본 발명의 실시예에서 제공하는 드로잉 방법에서는, 현재 프레임의 드로잉 커맨드 집합이 수신되고, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 현재 프레임의 드로잉 커맨드 집합에 따라 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉한다는 것을 알 수 있다. 이 방법에서, CPU/GPU 방식에 대응하는 드로잉 시간에 따라 드로잉 시간이 더 짧은 드로잉 방식을 동적으로 판정할 수 있으므로, 각각의 프레임의 드로잉 시간을 상당히 단축할 수 있고, 이에 의해 시스템의 디스플레이 속도를 올리고 디스플레이 성능을 향상시킨다는 것을 알 수 있다. UI 상호작용 프로세스 동안, 사용자 경험은 현저하게 향상될 수 있다.
또한, Bitmap 및 Texture 저장 방식을 선택함으로써, 상이한 드로잉 방식에 따라 디스플레이하는 데 상이한 렌더링 채널을 선택할 수 있다. 이것은 시스템의 디스플레이 성능을 더 효과적으로 향상시킨다.
도 3a를 참조하면, 도 3a는 본 발명의 실시예에 따른 또 다른 드로잉 방법에 대한 개략적인 흐름도이다. 방법은 단일의 물리적 호스트에 상주할 수 있거나 복수의 물리적 호스트 간에 분배된 컴퓨터 시스템에 적용될 수 있다. 구체적으로, 방법은 도 1에 도시된 단말에 적용될 수 있다. 방법은 이하를 포함한다:
S101. 현재 프레임의 드로잉 커맨드 집합을 수신하며, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함한다.
S1021. 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단한다.
S1022. 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라 사전설정된 성능 테이블에 질의하여 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득한다.
본 발명의 실시예에서, CPU 드로잉 시간 또는 GPU 드로잉 시간은 동일한 드로잉 커맨드에 대한 상이한 파라미터에 따라 변할 수 있다.
S1023. 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 현재 프레임의 CPU 드로잉 시간을 획득하고, 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 현재 프레임의 GPU 드로잉 시간을 획득한다.
당연히, 본 발명의 실시예는 전술한 실시예의 S103 및 S104를 더 포함하며, 전술한 실시예의 단계 S105, S106, 및 S107을 더 포함할 수 있다. 이에 대해서는 여기서 상세히 설명하지 않는다.
본 발명의 실시예에서 제공하는 드로잉 방법에서는, 현재 프레임의 드로잉 커맨드 집합이 수신되고, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 현재 프레임의 드로잉 커맨드 집합에 따라 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉한다는 것을 알 수 있다. 이 방법에서, CPU/GPU 방식에 대응하는 드로잉 시간에 따라 드로잉 시간이 더 짧은 드로잉 방식을 동적으로 판정할 수 있으므로, 각각의 프레임의 드로잉 시간을 상당히 단축할 수 있고, 이에 의해 시스템의 디스플레이 속도를 올리고 디스플레이 성능을 향상시킨다는 것을 알 수 있다. UI 상호작용 프로세스 동안, 사용자 경험은 현저하게 향상될 수 있다. UI 상호작용 프로세스 동안, 사용자 경험은 현저하게 향상될 수 있다.
이하에서는 특정한 실시예를 사용하여 본 발명에서 제공하는 드로잉 방법에서 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하는 특정한 실행에 대해 설명한다.
도 3b에 도시된 바와 같이, 방법은 이하를 포함한다:
S201. 현재 프레임의 드로잉 커맨드 집합을 수신하며, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함한다.
S202. 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단한다.
S203. 사전설정된 성능 테이블에 CPU 드로잉 시간 및 GPU 드로잉 시간을 질의한다.
사전설정된 성능 테이블은 다음과 같이 표시될 수 있다:
(성능 테이블)
2D 연산 영역 크기 GPU 렌더링(ms) CPU 렌더링(ms)

선형 변환

10*10 27 100
100*100 27 101
600*400 28 121
800*400 29 161

픽처 변화도
100*100 108 80
200*200 127 106
600*400 175 195
표 1에 열거된 바와 같이, 선형 변환 및 픽처 변화도는 2개의 드로잉 커맨드이고, 드로잉 파라미터, 즉 영역 크기에 각각 대응한다. 드로잉 커맨드의 (ms 단위로 계산된) CPU 렌더링 시간 및 GPU 렌더링 시간은 드로잉 커맨드 및 영역 크기에 따라 판정될 수 있다. 예를 들어, 표 1에서 영역 크기가 100*100이고 드로잉 연산이 픽처 변화도이면, 필요한 CPU 렌더링 시간 및 GPU 렌더링 시간은 각각 108 및 80ms이다.
표 1은 단지 도해를 위한 것이며, 표 1에서의 드로잉 커맨드 역시 단지 도해를 위한 것이다. 본 발명의 일부의 다른 실시예에서, 성능 테이블은 드로잉 커맨드에 대한 2 이상의 파라미터를 포함할 수 있다. 동일한 드로잉 커맨드의 상이한 드로잉 파라미터는 통상적으로 성능 테이블에 각각의 기록을 가진다.
드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 사전설정된 성능 테이블에서 찾아지지 않으면, 단계 204로 진행하고; 그렇지 않으면, 단계 205로 진행한다.
S204. 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득한다.
S205. 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산한다.
구체적으로, 드로잉 커맨드 집합 내의 드로잉 커맨드 중 하나 및 드로잉 커맨드의 파라미터에 있어서, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 사전설정된 성능 테이블에서 찾아지지 않으면, 계산 프로세스가 활성화되고; 드로잉 커맨드 및 드로잉 커맨드의 파라미터가 상기 계산 프로세스를 통과하며; 그런 다음, 상기 계산 프로세스를 사용하여 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 동시에 계산한다.
선택적으로, 계산 방법은 이하와 같다: 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라 CPU 및 GPU를 각각 사용함으로써 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하고, CPU 및 GPU를 각각 사용함으로써 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 프로세스에서, CPU 및 GPU가 이미지 대상을 드로잉하는 데 각각 사용한 시간을 기록하며, 여기서, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 CPU가 사용한 상기 기록된 시간은 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간이며, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 GPU가 사용한 기록된 시간은 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 GPU 드로잉 시간이다.
성능 테이블의 갱신을 제때 실행하기 위해, 상기 방법은 이하를 더 포함한다:
S206. 이 계산 프로세스 동안 획득된 CPU 드로잉 시간 및 GPU 드로잉 시간을 사전설정된 성능 테이블에 부가하고, 이에 따라 동일한 파라미터를 가지는 동일한 드로잉 커맨드가 다음 시간에 출현하면, 사전설정된 성능 테이블에 질의함으로써 CPU 드로잉 시간 및 GPU 드로잉 시간을 직접적으로 획득할 수 있다.
테이블 질의 또는 계산의 방식으로 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득한 후, 드로잉 커맨드 집합을 횡단이 완료하였는지를 판정한다. 완료하였으면, 단계 S207로 진행하고; 아직 완료하지 않았으면, 단계 S202로 복귀하여 다음 드로잉 커맨드를 횡단한다.
S207. 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 현재 프레임의 CPU 드로잉 시간을 획득하고; 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 현재 프레임의 GPU 드로잉 시간을 획득한다.
현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득한 후, 본 발명의 전술한 실시예의 방법에 따라 CPU 드로잉 시간 및 GPU 드로잉 시간을 선택할 수 있다. 또한, 드로잉 결과가 저장되고 디스플레이된다. 상세한 단계에 대해서는 전술한 실시예를 참조하면 되므로, 이에 대해서는 여기서 다시 설명하지 않는다.
본 발명의 실시예에서 제공하는 드로잉 방법에서는, 현재 프레임의 드로잉 커맨드 집합이 수신되고, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 현재 프레임의 드로잉 커맨드 집합에 따라 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉한다는 것을 알 수 있다. 이 방법에서, CPU/GPU 방식에 대응하는 드로잉 시간에 따라 드로잉 시간이 더 짧은 드로잉 방식을 동적으로 판정할 수 있으므로, 각각의 프레임의 드로잉 시간을 상당히 단축할 수 있고, 이에 의해 시스템의 디스플레이 속도를 올리고 디스플레이 성능을 향상시킨다는 것을 알 수 있다. UI 상호작용 프로세스 동안, 사용자 경험은 현저하게 향상될 수 있다.
도 4a를 참조하면, 도 4a는 본 발명의 실시예에서 제공하는 드로잉 장치(10)에 대한 개략적인 구조도이다. 본 발명의 실시예에서 제공하는 드로잉 장치(10)는 도 1에 도시된 단말 시스템의 2D 그래픽 라이브러리 엔진 계층에 대응한다. 도 4a에 도시된 바와 같이, 장치는:
현재 프레임의 드로잉 커맨드 집합을 수신하도록 구성되어 있는 수신 모듈(11), 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하며;
여기서, 드로잉 커맨드는 직선 기울기 및 픽처 변화도를 포함할 수 있으며, 대응하는 파라미터는 영역 크기, 좌표, 기울기 변화도 등을 포함할 수 있으며; 드로잉 커맨드는 사각형, 원, 직선, 또는 곡선을 드로잉하는 것을 더 포함할 수 있고, 대응하는 파라미터는 드로잉의 시작 좌표 및 종료 좌표, 선 유형, 선 두께, 선 색 등을 포함할 수 있다. 당업자라면 전술한 것은 단지 설명을 위한 것이며, 본 발명의 실시예에서 설명하는 커맨드는 어떠한 종류의 컴퓨터 시스템에서도 사용될 수 있는 어떠한 종류의 드로잉 커맨드도 포함할 수 있으며, 대응하는 파라미터 역시 실제의 파라미터 조건에 따라 융통성 있게 결정될 수 있으며, 본 발명의 실시예는 이에 제한되지 않는다는 것을 이해할 수 있을 것이며;
상기 수신 모듈(11)에 의해 수신된 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하도록 구성되어 있는 판정 모듈(12); 및
CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉하도록 구성되어 있는 드로잉 결정 모듈(13)
을 포함하며,
여기서 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉은 상기 판정 모듈에 의해 판정된다.
더 4b를 참조하면, 드로잉 시간을 비교한 결과에 따라, 드로잉 결정 모듈(13)은 현재의 프레임을 드로잉하는 데 CPU 또는 GPU를 호출할지를 선택한다. 호출 방식은 도 1에 도시된 그래픽 라이브러리 Skia 및 openGL에서 제공하는 API를 사용함으로써 실행될 수 있다. 도 4b에서의 CPU 및 GPU는 본 발명의 실시예에서 제공하는 드로잉 장치가 위치하는 단말 장치의 하드웨어 계층에서 제공하는 2개의 프로세서이다.
또한, 도 4c에 도시된 바와 같이, 드로잉 장치(10)는:
CPU를 사용하여 현재 프레임을 드로잉하면, 현재 프레임의 CPU 드로잉 결과를 Bitmap으로 저장하고, GPU를 사용하여 현재 프레임을 드로잉하면, 현재 프레임의 GPU 드로잉 결과를 Texture로 저장하도록 구성되어 있는 저장 모듈(14); 및
Bitmap 또는 Texture로 저장된 드로잉 결과를 스크린상에 디스플레이하도록 구성되어 있는 디스플레이 모듈(15)
을 포함한다.
도 1을 예로 사용하면, 디스플레이 모듈(15)은 디스플레이 합성 계층의 Surfaceflinger를 호출하여 이미지를 합성할 수 있다. 합성이 완료된 후에는, 디스플레이 드라이버를 호출하여 그 합성 결과를 프레임 버퍼 FrameBuffer에 복사하며, 그런 다음 디스플레이 드라이버는 프레임 버퍼의 콘텐츠를 스크린상에 디스플레이한다.
본 발명의 실시예에서 제공하는 드로잉 방법에서는, 현재 프레임의 드로잉 커맨드 집합이 수신되고, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 현재 프레임의 드로잉 커맨드 집합에 따라 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉한다는 것을 알 수 있다. 이 방법에서, CPU/GPU 방식에 대응하는 드로잉 시간에 따라 드로잉 시간이 더 짧은 드로잉 방식을 동적으로 판정할 수 있으므로, 각각의 프레임의 드로잉 시간을 상당히 단축할 수 있고, 이에 의해 시스템의 디스플레이 속도를 올리고 디스플레이 성능을 향상시킨다는 것을 알 수 있다. UI 상호작용 프로세스 동안, 사용자 경험은 현저하게 향상될 수 있다. UI 상호작용 프로세스 동안, 사용자 경험은 현저하게 향상될 수 있다.
또한, Bitmap 및 Texture 저장 방식을 선택함으로써, 상이한 드로잉 방식에 따라 디스플레이하는 데 상이한 렌더링 채널을 선택할 수 있다. 이것은 시스템의 디스플레이 성능을 더 효과적으로 향상시킨다.
본 명세서의 실시예는 진행되는 방식으로 설명되어 있으며, 상이한 실시예 간의 동일하거나 유사한 부분에 있어서는, 각각의 실시예가 다른 실시예와의 차이점에 초점을 맞추도록 서로 참조하면 된다는 것에 유의해야 한다. 특히, 장치 실시예는 상대적으로 간단하게 설명되는데, 이는 방법 실시예와 실질적으로 유사하며, 방법 실시예의 부분과 유사한 부분에 대해서는, 방법 실시예를 참조하면 되기 때문이다. 예를 들어, 판정 모듈(12)에 대한 특정한 실행 방법에 대해서는, 전술한 실시예에서 설명된 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하는 방법을 참조하면 된다. 획득 방법에서 사용된 성능 테이블, 예를 들어, 표 1 역시 본 발명의 장치의 일부이며, 전원에 장애가 생긴 경우에 데이터가 손실되지 않게 하는 자기디스크에 저장될 수 있으며, 이에 따라 단말의 전원이 여러 번 꺼지거나 켜진 후에도 내력 드로잉 데이터가 여전히 존재한다.
도 5를 참조하면, 도 5는 본 발명의 실시예에 따른 단말 장치(20)에 대한 개략적인 구조도이다. 도 5에 도시된 바와 같이, 단말(20)은 CPU(21), GPU(22) 및 기기 스크린(23)을 포함하며, CPU(21)와 GPU(22)는 기기 스크린(23)에 연결되어 있으며, 여기서:
CPU(21)는 현재 프레임의 드로잉 커맨드 집합을 수신하고, 여기서 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; 그리고 CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, 현재 프레임을 드로잉하고, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU(22)를 사용하여 현재 프레임을 드로잉하도록 구성되어 있다.
구체적으로, CPU(21)는 현재 프레임의 드로잉 커맨드 집합 내의 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단하고; 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라 사전설정된 성능 테이블에 질의하여 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하며; 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 현재 프레임의 CPU 드로잉 시간을 획득하고; 그리고 레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 현재 프레임의 GPU 드로잉 시간을 획득하도록 구성되어 있다.
CPU(21)는, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 사전설정된 성능 테이블에서 찾아지지 않으면, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산하며; 그리고 계산된 CPU 드로잉 시간 및 GPU 드로잉 시간, 및 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 사전설정된 성능 테이블에 저장하도록 추가로 구성되어 있다.
계산 방법은 이하와 같을 수 있다: 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라 CPU 및 GPU를 각각 사용함으로써 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하고; CPU 및 GPU를 각각 사용함으로써 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 프로세스에서, CPU 및 GPU가 이미지 대상을 드로잉하는 데 각각 사용한 시간을 기록하며, 여기서, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 CPU가 사용한 상기 기록된 시간은 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간이며, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 GPU가 사용한 기록된 시간은 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 GPU 드로잉 시간이다.
또한, CPU(21)는 CPU를 사용하여 현재 프레임을 드로잉하면, 현재 프레임의 CPU 드로잉 결과를 비트맵으로 저장하고, GPU를 사용하여 현재 프레임을 드로잉하면, 현재 프레임의 GPU 드로잉 결과를 텍스처로 저장하도록 구성되어 있다.
GPU는 현재 프레임을 드로잉하도록 구성되어 있으며; 기기 스크린(23)은 CPU(21) 또는 GPU(22)를 사용함으로써 드로잉된 현재 프레임의 드로잉 결과를 디스플레이하도록 구성되어 있다. 구체적으로, 기기 스크린(23)은 비트맵 또는 텍스처로 저장된 드로잉 결과를 디스플레이하도록 구성되어 있다.
본 발명의 본 실시예에서 제공하는 단말 기기에서는, 현재 프레임의 드로잉 커맨드 집합이 수신되고, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 현재 프레임의 드로잉 커맨드 집합에 따라 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉한다는 것을 알 수 있다. 이 방법에서, CPU/GPU 방식에 대응하는 드로잉 시간에 따라 드로잉 시간이 더 짧은 드로잉 방식을 동적으로 판정할 수 있으므로, 각각의 프레임의 드로잉 시간을 상당히 단축할 수 있고, 이에 의해 시스템의 디스플레이 속도를 올리고 디스플레이 성능을 향상시킨다는 것을 알 수 있다. UI 상호작용 프로세스 동안, 사용자 경험은 현저하게 향상될 수 있다. UI 상호작용 프로세스 동안, 사용자 경험은 현저하게 향상될 수 있다.
또한, Bitmap 및 Texture 저장 방식을 선택함으로써, 상이한 드로잉 방식에 따라 디스플레이하는 데 상이한 렌더링 채널을 선택할 수 있다. 이것은 시스템의 디스플레이 성능을 더 효과적으로 향상시킨다.
도 6을 참조하면, 도 6은 본 발명의 실시예에 따른 다른 단말 장치(30)에 대한 개략적인 구조도이다. 도 6에 도시된 바와 같이, 단말 장치(30)는 CPU(31), GPU(32), 메모리(33), 디스플레이 스크린(34), 및 버스(35)를 포함한다. CPU(31), GPU(32), 메모리(33) 및 디스플레이 스크린(34)은 버스(35)를 통해 사용하여 연결되어 있다.
메모리(33)는 컴퓨터의 플로피 디스크, USB 플래시 드라이브, 착탈 가능형 하드디스크, 리드-온리 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기디스크, 또는 광디스크 중 하나 이상으로서 실현될 수 있다.
메모리(33)는 이하의 구성요소를 실행 가능한 모듈, 또는 데이터 구조, 또는 이것들의 서브세트, 또는 이것들의 확장 세트에 저장할 수 있다:
응용 프로그램(331), 다양한 응용 프로그램을 포함하는데, 예를 들어, 도 1에 도된 Home, Contacts, Browser 등을 포함하며, 이것들은 다양한 애플리케이션 서비스를 실행하는 데 사용된다.
운영체제(332), 다양한 시스템 프로그램을 포함하는데, 예를 들어, 도 1에 도시된 디스플레이 프레임워크, 2D 그래픽 라이브러리 엔진, 디스플레이 합성 계층 등을 포함하며, 이것들은 다양한 기본 서비스를 실행하고 하드웨어 기반의 작업을 프로세스하는 데 사용된다.
본 발명의 실시예에서, CPU는 메모리(33)에 저장되어 있는 프로그램을 호출하여 이하의 연산을 수행한다(프로그램은 운영체제(332)에 저장되어 있을 수도 있다):
현재 프레임의 드로잉 커맨드 집합을 수신하고, 여기서 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; 그리고 상기 CPU 드로잉 시간이 상기 GPU 드로잉 시간보다 짧으면, 상기 현재 프레임을 드로잉하고, 상기 GPU 드로잉 시간이 상기 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉한다. 현재 프레임의 드로잉 커맨드 집합은 운영체제(332) 자체로부터 나올 수도 있고 응용 프로그램(331)으로부터 나올 수도 있다.
구체적으로 CPU(31)는 현재 프레임의 드로잉 커맨드 집합 내의 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단하고; 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라 사전설정된 성능 테이블에 질의하여 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하며; 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 현재 프레임의 CPU 드로잉 시간을 획득하고, 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 현재 프레임의 GPU 드로잉 시간을 획득한다. 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 사전설정된 성능 테이블에서 찾아지지 않으면, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산한다. 구체적으로, 계산 프로세스가 활성화되고; 드로잉 커맨드 및 드로잉 커맨드의 파라미터가 상기 계산 프로세스를 통과하며; 상기 계산 프로세스를 사용하여 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 동시에 계산한다. 그런 다음, 계산된 CPU 드로잉 시간 및 GPU 드로잉 시간, 및 드로잉 커맨드 및 드로잉 커맨드의 파라미터가 사전설정된 성능 테이블에 저장된다.
계산 방법은 이하와 같을 수 있다: 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라 CPU 및 GPU를 각각 사용함으로써 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하고; CPU 및 GPU를 각각 사용함으로써 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 프로세스에서, CPU 및 GPU가 이미지 대상을 드로잉하는 데 각각 사용한 시간을 기록하며, 여기서, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 CPU가 사용한 상기 기록된 시간은 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간이며, 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 GPU가 사용한 기록된 시간은 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 대응하는 GPU 드로잉 시간이다.
사전설정된 성능 테이블은 메모리(33)에 저장될 수 있다. 바람직하게, 사전설정된 성능 테이블은 전원에 장애가 생긴 경우에 데이터가 손실되지 않게 하는 자기디스크에 저장될 수 있다. 일부의 실행 방식에서, 메모리(33)는 RAM 및 자기디스크를 포함하며, 사전설정된 성능 테이블은 자기디스크에 저장될 수 있다.
또한, CPU(31)는, CPU를 사용하여 현재 프레임을 드로잉하면, 현재 프레임의 CPU 드로잉 결과를 비트맵으로 저장하고, GPU를 사용하여 현재 프레임을 드로잉하면, 현재 프레임의 GPU 드로잉 결과를 텍스처로 저장하며, 비트맵 또는 텍스처로 저장된 드로잉 결과를 스크린상에 디스플레이하도록 추가로 구성되어 있다.
GPU(32)는 그래픽을 드로잉하도록 구성되어 있고; CPU(31)는 그래픽을 드로잉하도록 추가로 구성되어 있다.
디스플레이 스크린(34)은 CPU(31) 또는 GPU(32)를 사용하여 그래픽을 출력하도록 구성되어 있다. 디스플레이 스크린(34)은 터치스크린일 수도 있다.
또한, 본 발명의 실시예에서 제공하는 단말 장치는 입력 장치(36)를 더 포함할 수 있으며, 사용자는 이 입력 장치(36)를 사용하여 프레임 드로잉 커맨드를 입력할 수 있다. 일부의 다른 실시예에서, 프레임 드로잉 커맨드는 운영체제에서 나올 수도 있고 응용 프로그램에서 나올 수도 있다. 입력 장치(35)는 터치스크린, 마우스, 키보드 등으로서 실현될 수 있다.
본 발명의 실시예에서 제공하는 단말 장치(20) 또는 단말 장치(30)가 휴대폰 단말로서 실현되면, 휴대폰 단말은 통신 인터페이스, 음성 입출력 장치(예를 들어, 마이크로폰/스피커), 센서 등을 더 포함할 수 있다. 휴대폰 단말 내의 응용 프로그램은 글로벌 포지셔닝 시스템(Global Positioning System: GPS), 비디오, 음악, 게임, 브라우저 등을 더 포함할 수 있다.
또한, 도 6에 도시된 바와 같이, 버스(35)를 사용하여 개별적인 모듈을 연결하며, 이 버스는 산업표준아키텍처(Industry Standard Architecture: ISA) 버스, 주변기기상호접속(Peripheral Component Interconnect: PCI) 버스, 확장 산업표준아키텍처(Extended Industry Standard Architecture: EISA) 버스 등이 될 수 있다. 버스는 하나 이상의 물리적 라인일 수 있다. 복수의 물리적 라인이 있는 경우, 버스는 어드레스 버스, 데이터 버스, 제어 버스 등으로 분할될 수 있다. 본 발명의 일부의 다른 실현 방식에서, 본 발명의 실시예에서 제공하는 개별적인 모듈은 버스를 사용함이 없이 연결될 수도 있으며, 신호 전송 관계에 따라 모듈 간 통신 접속을 직접적으로 구축할 수도 있다.
메모리(33)에 저장된 프로그램의 모듈의 분할에 대해서는, 전술한 실시예에서의 모듈 분할 방식을 참조할 수 있거나, 다른 모듈 분할 방식을 사용할 수도 있다.
본 발명의 실시예에서 제공하는 드로잉 방법, 장치, 및 단말에서는, 현재 프레임의 드로잉 커맨드 집합이 수신되고, 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 현재 프레임의 드로잉 커맨드 집합에 따라 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; CPU 드로잉 시간이 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, GPU 드로잉 시간이 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉한다는 것을 알 수 있다. 이 방법에서, CPU/GPU 방식에 대응하는 드로잉 시간에 따라 드로잉 시간이 더 짧은 드로잉 방식을 동적으로 판정할 수 있으므로, 각각의 프레임의 드로잉 시간을 상당히 단축할 수 있고, 이에 의해 시스템의 디스플레이 속도를 올리고 디스플레이 성능을 향상시킨다.
또한, Bitmap 및 Texture 저장 방식을 선택함으로써, 상이한 드로잉 방식에 따라 디스플레이하는 데 상이한 렌더링 채널을 선택할 수 있다. 이것은 시스템의 디스플레이 성능을 더 효과적으로 향상시킨다.
설명된 장치 실시예는 단순히 예시에 불과하다. 별도의 부분으로서 설명된 유닛들은 물리적으로 분리될 수도 있고 분리되지 않을 수도 있으며, 유닛으로 디스플레이된 부분들은 물리적 유닛일 수도 있고 아닐 수도 있으며, 한 위치에 위치할 수도 있고, 복수의 네트워크 유닛에 분배될 수도 있다. 모듈 중 일부 또는 전부는 실시예의 솔루션의 목적을 달성하기 위한 실제의 필요에 따라 선택될 수 있다. 또한, 본 발명의 장치 실시예에서 제공하는 도해된 첨부된 도면에서, 모듈 간의 접속 관계는 모듈 간에 접속 관계가 존재하는 것을 나타내며, 이것은 구체적으로 하나 이상의 통신 버스 또는 신호 라인으로서 실현될 수 있다. 이것은 당업자라면 창조적 노력 없이도 이해하고 실현할 수 있을 것이다.
전술한 실시예에 대한 설명을 바탕으로, 당업자라면 본 발명의 실시예에서 설명된 드로잉 장치는 소프트웨어와 필요한 범용의 하드웨어에 의해 실현될 수 있고, 당연히, 전용의 집적회로, 전용의 CPU, 전용의 메모리, 전용의 구성요소 등을 포함하는 전용의 하드웨어에 의해서도 실현될 수 있다는 것을 명확하게 이해할 수 있을 것이다. 일반적으로, 컴퓨터 프로그램에 의해 수행될 수 있는 어떠한 기능이라도 대응하는 하드웨어를 사용하여 용이하게 실현될 수 있다. 또한, 동일한 기능을 달성하는 데 사용되는 특정한 하드웨어는 다양한 형태일 수 있는데, 예를 들어, 아날로그 회로, 디지털 회로 등의 형태일 수 있다.
전술한 설명은 단지 본 발명의 특정한 실시예에 불과하며 본 발명의 보호 범위를 제한하려는 것이 아니다. 당업자가 본 발명에 개시된 기술적 범위 내에서 용이하게 수행한 모든 변형 또는 대체는 본 발명의 보호 범위 내에 있게 된다. 그러므로 본 발명의 보호 범위는 특허청구범위의 보호 범위에 해당된다.

Claims (13)

  1. 드로잉 방법에 있어서,
    현재 프레임의 드로잉 커맨드 집합을 수신하는 단계 - 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함함 - ;
    상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 중앙처리장치(Central Processing Unit: CPU) 드로잉 시간 및 그래픽처리장치(Graphic Processing Unit: GPU) 드로잉 시간을 판정하는 단계; 및
    상기 CPU 드로잉 시간이 상기 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, 상기 GPU 드로잉 시간이 상기 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉하는 단계
    를 포함하는 드로잉 방법.
  2. 제1항에 있어서,
    상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하는 단계는,
    상기 현재 프레임의 드로잉 커맨드 집합 내의 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단하는 단계;
    상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 사전설정된 성능 테이블에 질의하여 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하는 단계; 및
    상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 상기 현재 프레임의 CPU 드로잉 시간을 획득하고, 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 상기 현재 프레임의 GPU 드로잉 시간을 획득하는 단계
    를 포함하는, 드로잉 방법.
  3. 제2항에 있어서,
    상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 상기 사전설정된 성능 테이블에서 찾아지지 않으면, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산하는 단계; 및
    상기 계산된 CPU 드로잉 시간 및 GPU 드로잉 시간, 및 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터를 상기 사전설정된 성능 테이블에 저장하는 단계
    를 더 포함하는 드로잉 방법.
  4. 제3항에 있어서,
    상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산하는 단계는,
    상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 CPU 및 GPU를 각각 사용하여 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 단계; 및
    상기 CPU 및 상기 GPU를 각각 사용하여 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 이미지 대상을 드로잉하는 프로세스에서, 상기 이미지 대상을 드로잉하는 데 CPU 및 GPU가 각각 사용한 시간을 기록하는 단계
    를 포함하며,
    상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 CPU가 사용한 상기 기록된 시간은 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 CPU 드로잉 시간이며, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 GPU가 사용한 상기 기록된 시간은 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 GPU 드로잉 시간인, 드로잉 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    CPU를 사용하여 현재 프레임을 드로잉하면, 상기 현재 프레임의 CPU 드로잉 결과를 비트맵(bitmap)으로 저장하고, GPU를 사용하여 현재 프레임을 드로잉하면, 상기 현재 프레임의 GPU 드로잉 결과를 텍스처(texture)로 저장하는 단계; 및
    상기 비트맵 또는 상기 텍스처로 저장된 드로잉 결과를 스크린상에 디스플레이하는 단계
    를 더 포함하는 드로잉 방법.
  6. 드로잉 장치에 있어서,
    현재 프레임의 드로잉 커맨드 집합을 수신하도록 구성되어 있는 수신 모듈 - 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함함 - ;
    상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하도록 구성되어 있는 판정 모듈; 및
    상기 판정 모듈에 의해 판정되는 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간 중에서 상기 CPU 드로잉 시간이 상기 GPU 드로잉 시간보다 짧으면, CPU를 사용하여 현재 프레임을 드로잉하고, 상기 GPU 드로잉 시간이 상기 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉하도록 구성되어 있는 드로잉 결정 모듈
    를 포함하는 드로잉 장치.
  7. 제6항에 있어서,
    상기 판정 모듈은 구체적으로,
    상기 현재 프레임의 드로잉 커맨드 집합 내의 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단하고;
    상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 사전설정된 성능 테이블에 질의하여 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하며; 그리고
    상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 상기 현재 프레임의 CPU 드로잉 시간을 획득하고, 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 상기 현재 프레임의 GPU 드로잉 시간을 획득하도록 구성되어 있는, 드로잉 장치.
  8. 제7항에 있어서,
    상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 상기 사전설정된 성능 테이블에서 찾아지지 않으면, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산하도록 구성되어 있는 계산 모듈; 및
    상기 계산 모듈에 의해 계산된 CPU 드로잉 시간 및 GPU 드로잉 시간, 및 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터를 상기 사전설정된 성능 테이블에 저장하도록 구성되어 있는 갱신 모듈
    을 더 포함하는 드로잉 장치.
  9. 제8항에 있어서,
    상기 계산 모듈은 구체적으로,
    상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 상기 판정 모듈에 의해 상기 사전설정된 성능 테이블에서 찾아지지 않으면, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 CPU 및 GPU를 각각 사용하여 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하며; 그리고 상기 CPU 및 상기 GPU를 각각 사용하여 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 이미지 대상을 드로잉하는 프로세스에서, 상기 이미지 대상을 드로잉하는 데 CPU 및 GPU가 각각 사용한 시간을 기록하도록 구성되어 있으며,
    상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 CPU가 사용한 상기 기록된 시간은 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 CPU 드로잉 시간이며, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 이미지 대상을 드로잉하는 데 GPU가 사용한 상기 기록된 시간은 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 상기 GPU 드로잉 시간인, 드로잉 장치.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    CPU를 사용하여 현재 프레임을 드로잉하면, 상기 현재 프레임의 CPU 드로잉 결과를 비트맵으로 저장하고, GPU를 사용하여 현재 프레임을 드로잉하면, 상기 현재 프레임의 GPU 드로잉 결과를 텍스처로 저장하도록 구성되어 있는 저장 모듈; 및
    상기 비트맵 또는 상기 텍스처로 저장된 드로잉 결과를 스크린상에 디스플레이하도록 구성되어 있는 디스플레이 모듈
    을 더 포함하는 드로잉 장치.
  11. 단말 기기에 있어서,
    중앙처리장치(CPU), 그래픽처리장치(GPU), 및 기기 스크린을 포함하고, 상기 중앙처리장치(CPU) 및 상기 그래픽처리장치(GPU)는 상기 기기 스크린에 연결되어 있으며,
    상기 CPU는 현재 프레임의 드로잉 커맨드 집합을 수신하고, 여기서 상기 드로잉 커맨드 집합은 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 포함하고; 상기 현재 프레임의 드로잉 커맨드 집합 내의 하나 이상의 드로잉 커맨드 및 드로잉 커맨드의 파라미터에 따라, 상기 현재 프레임의 CPU 드로잉 시간 및 GPU 드로잉 시간을 판정하며; 그리고 상기 CPU 드로잉 시간이 상기 GPU 드로잉 시간보다 짧으면, 상기 현재 프레임을 드로잉하고, 상기 GPU 드로잉 시간이 상기 CPU 드로잉 시간보다 짧으면, GPU를 사용하여 현재 프레임을 드로잉하도록 구성되어 있으며,
    상기 GPU는 상기 현재 프레임을 드로잉하도록 구성되어 있으며; 그리고
    상기 기기 스크린은 상기 CPU 또는 상기 GPU를 사용하여 드로잉된 상기 현재 프레임의 드로잉 결과를 디스플레이하도록 구성되어 있는, 단말 기기.
  12. 제11항에 있어서,
    상기 CPU는 구체적으로, 상기 현재 프레임의 드로잉 커맨드 집합 내의 각각의 드로잉 커맨드 및 드로잉 커맨드의 파라미터를 횡단하고; 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 사전설정된 성능 테이블에 질의하여 상기 각각의 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 획득하며; 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 CPU 드로잉 시간을 합산하여 상기 현재 프레임의 CPU 드로잉 시간을 획득하고; 그리고 상기 현재 프레임의 드로잉 커맨드 집합 내의 모든 드로잉 커맨드의 GPU 드로잉 시간을 합산하여 상기 현재 프레임의 GPU 드로잉 시간을 획득하도록 구성되어 있는, 단말 기기.
  13. 제12항에 있어서,
    상기 CPU는, 상기 드로잉 커맨드 집합 내의 드로잉 커맨드 중 하나 및 드로잉 커맨드의 파라미터에 있어서, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간이 상기 사전설정된 성능 테이블에서 찾아지지 않으면, 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 따라 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터에 대응하는 CPU 드로잉 시간 및 GPU 드로잉 시간을 계산하며; 그리고 상기 계산된 CPU 드로잉 시간 및 GPU 드로잉 시간, 및 상기 드로잉 커맨드 및 상기 드로잉 커맨드의 파라미터를 상기 사전설정된 성능 테이블에 저장하도록 추가로 구성되어 있는, 단말 기기.
KR1020147012010A 2013-03-07 2013-09-25 드로잉 방법, 장치, 및 단말 KR101623415B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310072936.0 2013-03-07
CN201310072936.0A CN103164839B (zh) 2013-03-07 2013-03-07 一种绘图方法、装置及终端
PCT/CN2013/084148 WO2014134912A1 (zh) 2013-03-07 2013-09-25 一种绘图方法、装置及终端

Publications (2)

Publication Number Publication Date
KR20140133807A true KR20140133807A (ko) 2014-11-20
KR101623415B1 KR101623415B1 (ko) 2016-05-23

Family

ID=48587898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147012010A KR101623415B1 (ko) 2013-03-07 2013-09-25 드로잉 방법, 장치, 및 단말

Country Status (7)

Country Link
US (1) US9430810B2 (ko)
EP (1) EP2793185B1 (ko)
JP (1) JP5963940B2 (ko)
KR (1) KR101623415B1 (ko)
CN (1) CN103164839B (ko)
TW (1) TWI604409B (ko)
WO (1) WO2014134912A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018143502A1 (ko) * 2017-02-06 2018-08-09 (주)볼트마이크로 데이터 포맷 변환 방법

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164839B (zh) 2013-03-07 2019-06-21 华为技术有限公司 一种绘图方法、装置及终端
GB2518846A (en) * 2013-10-01 2015-04-08 Ibm Diagnosing graphics display problems
CN104331858B (zh) * 2014-11-24 2018-02-16 厦门美图之家科技有限公司 一种同时利用cpu和gpu进行图像处理的加速方法
US20160188279A1 (en) * 2014-12-27 2016-06-30 Intel Corporation Mode-switch protocol and mechanism for hybrid wireless display system with screencasting and native graphics throwing
CN105808342B (zh) * 2014-12-30 2019-12-13 中国电信股份有限公司 用于分配客户请求的方法、判断装置和系统
CN104809684B (zh) 2015-04-02 2018-03-27 华为技术有限公司 图形处理方法、装置及系统
CN105049609B (zh) * 2015-06-29 2019-05-03 惠州Tcl移动通信有限公司 一种优化游戏画面的方法及系统
CN105279253B (zh) * 2015-10-13 2018-12-14 上海联彤网络通讯技术有限公司 提升网页画布渲染速度的系统及方法
CN107153528A (zh) 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 混合模型列表项重用的方法及设备
JP6658136B2 (ja) * 2016-03-14 2020-03-04 コニカミノルタ株式会社 描画処理装置、画像処理装置、描画処理方法及び描画処理プログラム
CN107203463B (zh) * 2016-03-16 2021-10-08 斑马智行网络(香港)有限公司 界面测试的方法、界面绘制方法及装置
CN106502667B (zh) * 2016-10-18 2019-09-03 广州视睿电子科技有限公司 一种渲染方法及装置
CN108269223B (zh) * 2017-01-04 2021-08-31 腾讯科技(深圳)有限公司 一种网页图形绘制方法及终端
CN108337465B (zh) * 2017-02-09 2021-05-14 腾讯科技(深圳)有限公司 视频处理方法和装置
CN108920412B (zh) * 2018-06-20 2020-12-29 中国科学院计算技术研究所 针对异构计算机体系结构的算法自动调优方法
US11474824B1 (en) 2020-05-08 2022-10-18 Corel Corporation Performance benchmarking-based selection of processor for generating graphic primitives
CN112346935A (zh) * 2020-11-12 2021-02-09 腾讯科技(北京)有限公司 渲染耗时的获取、显示方法、性能监控方法、装置及设备
KR20220129337A (ko) 2021-03-16 2022-09-23 주식회사 심률 아이드로우 서비스장치 및 그 장치의 구동방법
CN115297359A (zh) * 2022-07-29 2022-11-04 北京字跳网络技术有限公司 多媒体数据传输方法、装置、电子设备及存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3639108B2 (ja) * 1998-03-31 2005-04-20 株式会社ソニー・コンピュータエンタテインメント 描画装置および描画方法、並びに提供媒体
JP4071422B2 (ja) * 2000-06-28 2008-04-02 株式会社東芝 モーションブラー画像描画方法及び描画装置
CN1204494C (zh) * 2003-04-03 2005-06-01 浙江大学 计算机集群并行绘制系统中基于时空变换的负载平衡设计方法
US7978205B1 (en) 2004-05-03 2011-07-12 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US7558428B2 (en) * 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
WO2006034034A2 (en) * 2004-09-16 2006-03-30 Nvidia Corporation Load balancing
CN1298049C (zh) 2005-03-08 2007-01-31 北京中星微电子有限公司 一种图形引擎芯片及其应用方法
JP2007105917A (ja) * 2005-10-11 2007-04-26 Canon Inc プリンタ装置
US8108844B2 (en) * 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US20100020088A1 (en) 2007-02-28 2010-01-28 Panasonic Corporation Graphics rendering device and graphics rendering method
US8286196B2 (en) 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
KR101467558B1 (ko) * 2007-07-26 2014-12-01 엘지전자 주식회사 그래픽데이터 처리 장치 및 방법
US7843462B2 (en) * 2007-09-07 2010-11-30 Seiko Epson Corporation System and method for displaying a digital video sequence modified to compensate for perceived blur
US8922565B2 (en) * 2007-11-30 2014-12-30 Qualcomm Incorporated System and method for using a secondary processor in a graphics system
US8130232B2 (en) * 2008-06-17 2012-03-06 Nuvoton Technology Corporation Drawing control method, drawing control apparatus, and drawing control system for embedded system
GB2462860B (en) * 2008-08-22 2012-05-16 Advanced Risc Mach Ltd Apparatus and method for communicating between a central processing unit and a graphics processing unit
CN101706741B (zh) * 2009-12-11 2012-10-24 中国人民解放军国防科学技术大学 一种基于负载平衡的cpu和gpu两级动态任务划分方法
US8669990B2 (en) * 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
JP2012003619A (ja) * 2010-06-18 2012-01-05 Sony Corp 情報処理装置、情報処理装置の制御方法、およびプログラム
US8681162B2 (en) 2010-10-15 2014-03-25 Via Technologies, Inc. Systems and methods for video processing
US20120159090A1 (en) * 2010-12-16 2012-06-21 Microsoft Corporation Scalable multimedia computer system architecture with qos guarantees
WO2012141677A1 (en) * 2011-04-11 2012-10-18 Hewlett-Packard Development Company, L.P. Performing a task in a system having different types of hardware resources
KR101845328B1 (ko) * 2011-08-22 2018-04-04 삼성전자 주식회사 단말 및 그 단말에서 어플리케이션 수행 방법
CN102521050A (zh) * 2011-12-02 2012-06-27 曙光信息产业(北京)有限公司 一种面向cpu和gpu的混合调度方法
CN102810133B (zh) * 2012-05-15 2015-08-12 北京像素软件科技股份有限公司 网络游戏中的射线查询方法和场景服务器
CN102945560B (zh) * 2012-08-21 2015-05-06 浙江大学 一种并行的可编程运动特效绘制方法
CN103164839B (zh) * 2013-03-07 2019-06-21 华为技术有限公司 一种绘图方法、装置及终端

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018143502A1 (ko) * 2017-02-06 2018-08-09 (주)볼트마이크로 데이터 포맷 변환 방법

Also Published As

Publication number Publication date
WO2014134912A1 (zh) 2014-09-12
EP2793185A4 (en) 2015-03-04
EP2793185A1 (en) 2014-10-22
KR101623415B1 (ko) 2016-05-23
TW201435798A (zh) 2014-09-16
JP5963940B2 (ja) 2016-08-03
US9430810B2 (en) 2016-08-30
EP2793185B1 (en) 2018-04-11
US20140327686A1 (en) 2014-11-06
CN103164839A (zh) 2013-06-19
CN103164839B (zh) 2019-06-21
JP2015520881A (ja) 2015-07-23
TWI604409B (zh) 2017-11-01

Similar Documents

Publication Publication Date Title
KR101623415B1 (ko) 드로잉 방법, 장치, 및 단말
CN109194960B (zh) 一种图像帧渲染方法、装置及电子设备
US20220139353A1 (en) Display method, electronic device, and non-transitory computer-readable storage medium
CN110377264B (zh) 图层合成方法、装置、电子设备及存储介质
JP6505967B2 (ja) ユーザ機器及びその動作方法
US20220139352A1 (en) Method and Device for Image Composition, Electronic Device and Storage Medium
KR101650999B1 (ko) 그래픽 프로세싱 유닛들에서의 렌더링 모드 선택
US20220139017A1 (en) Layer composition method, electronic device, and storage medium
CN105992056A (zh) 一种视频解码的方法和装置
KR101993949B1 (ko) 필터 탭들을 폐기하는 텍스처 어드레스 모드
CN105453024B (zh) 用于显示的方法及其电子装置
CN108389151B (zh) 一种过度绘制的评估方法和系统
WO2021008427A1 (zh) 图像合成方法、装置、电子设备及存储介质
US20170127012A1 (en) Updating regions for display based on video decoding mode
WO2015161809A1 (en) Picture splitting method and apparatus, and picture loading method and apparatus
WO2021128929A1 (zh) 一种全景应用中图像渲染的方法及终端设备
KR102213727B1 (ko) 다수의 프리미티브들을 사용하는 그래픽 처리
EP2911045A1 (en) Method and device for controlling switching of virtual navigation bar
CN111061414A (zh) 皮肤更换方法、装置、电子设备及可读存储介质
US10002589B2 (en) Retaining user selected screen area on user equipment
CN110647377A (zh) 人机交互界面的图片处理系统、设备及介质
CN110659024A (zh) 图形资源转换方法、装置、电子设备及存储介质
KR20230093543A (ko) 적응적 인트라 리프레시 메커니즘에 기반한 디코딩 및 인코딩
CN107621903B (zh) 一种双触摸屏设备及其响应控制方法
US20240104811A1 (en) Image editing method and device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20190503

Year of fee payment: 4