KR20230039560A - 전자 디바이스들에 대한 렌더링 - Google Patents

전자 디바이스들에 대한 렌더링 Download PDF

Info

Publication number
KR20230039560A
KR20230039560A KR1020220113488A KR20220113488A KR20230039560A KR 20230039560 A KR20230039560 A KR 20230039560A KR 1020220113488 A KR1020220113488 A KR 1020220113488A KR 20220113488 A KR20220113488 A KR 20220113488A KR 20230039560 A KR20230039560 A KR 20230039560A
Authority
KR
South Korea
Prior art keywords
frame rate
animation
parameters
global
source
Prior art date
Application number
KR1020220113488A
Other languages
English (en)
Other versions
KR102666741B1 (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 KR20230039560A publication Critical patent/KR20230039560A/ko
Application granted granted Critical
Publication of KR102666741B1 publication Critical patent/KR102666741B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • 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/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/222Control of the character-code memory
    • G09G5/227Resolution modifying circuits, e.g. variable screen formats, resolution change between memory contents and display screen
    • 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
    • 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/37Details of the operation on graphic patterns
    • G09G5/377Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2408Monitoring of the upstream path of the transmission network, e.g. client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • 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/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0435Change or adaptation of the frame rate of the video stream
    • 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/10Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/20Details of the management of multiple sources of image data
    • 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/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
    • 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/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 기술의 양태들은 전자 디바이스들에 대한 프레임 레이트 중재를 제공하는 것에 관한 것이다. 프레임 레이트 중재는 하나 이상의 애니메이션 소스들로부터의 프레임 레이트 파라미터들에 기초하여 전역 프레임 레이트를 결정하는 것, 및 전역 프레임 레이트를 애니메이션 소스들에 제공하는 것을 포함할 수 있다. 다양한 애니메이션들 소스들에 대한 프레임 레이트 파라미터들은 상이한 바람직한, 최소, 및/또는 최대 프레임 레이트들을 가질 수 있고, 전역 프레임 레이트는 다수의 애니메이션 소스들로부터의 다수의 애니메이션들의 동시 디스플레이를 위해 결정될 수 있다. 하나 이상의 구현예들에서, 프레임 레이트 중재는 또한 입력 소스로부터의 프레임 레이트 파라미터들에 기초하여 수행될 수 있다.

Description

전자 디바이스들에 대한 렌더링{RENDERING FOR ELECTRONIC DEVICES}
본 출원은 발명의 명칭이 "Rendering for Electronic Devices"로 2021년 9월 13일자로 출원된 미국 가특허 출원 제63/243,693호에 대한 우선권의 이익을 주장하며, 이로써, 그 가특허 출원의 개시내용은 그 전체가 본 명세서에 포함된다.
본 설명은 일반적으로 전자 디바이스에 관한 것으로, 예를 들어 전자 디바이스들에 대한 렌더링을 포함한다.
전자 디바이스들은 종종 전자 디바이스의 디스플레이를 사용하여 디스플레이될 콘텐츠의 다수의 소스들을 포함한다.
본 기술의 특정 특징들은 첨부된 청구항들에 기재된다. 그러나, 설명의 목적을 위해, 본 기술의 여러 구현예들이 다음 도면들에 기재된다.
도 1은 하나 이상의 구현예들에 따른, 본 시스템을 구현할 수 있는 다양한 전자 디바이스들을 포함하는 예시적인 시스템 아키텍처를 예시한다.
도 2는 본 기술의 양태들을 구현할 수 있는 예시적인 컴퓨팅 디바이스의 개략도를 예시한다.
도 3은 하나 이상의 구현예들에 따른, 다수의 애니메이션(animation)들을 디스플레이하는 컴퓨팅 디바이스의 일 예를 예시한다.
도 4는 하나 이상의 구현예들에 따른, 네이티브 리프레시 레이트(native refresh rate)를 갖는 디스플레이에 대한 다수의 프레임 레이트들로 다수의 애니메이션들을 렌더링하는 양태들을 예시하는 타이밍도를 도시한다.
도 5는 하나 이상의 구현예들에 따른, 도 4의 네이티브 리프레시 레이트보다 높은 네이티브 리프레시 레이트를 갖는 디스플레이에 대한 프레임 레이트로 애니메이션을 렌더링하는 양태들을 예시하는 타이밍도를 도시한다.
도 6은 하나 이상의 구현예들에 따른, 도 5의 디스플레이에 대한 다른 프레임 레이트로 애니메이션을 렌더링하는 양태들을 예시하는 타이밍도를 예시한다.
도 7은 호환가능하지 않은(incompatible) 프레임 레이트들로 다수의 애니메이션들을 렌더링하는 양태들을 예시하는 타이밍도를 도시한다.
도 8은 본 기술의 양태들을 구현할 수 있는 다른 예시적인 컴퓨팅 디바이스의 개략도를 예시한다.
도 9는 본 기술의 양태들을 구현할 수 있는 컴퓨팅 디바이스에 포함될 수 있는 부가적인 특징부들의 개략도를 예시한다.
도 10은 즉각적인 프레임 레이트 전환의 양태들을 예시하는 타이밍도를 예시한다.
도 11a 및 도 11b는 프레임 레이트 전환들 이전 및 그 이후에 발생할 수 있는 위상 오프셋들의 양태들을 예시하는 타이밍도들을 도시한다.
도 12a 내지 도 12h는 하나 이상의 구현예들에 따른, 프레임 레이트 중재(arbitration)를 사용하여 다수의 애니메이션들을 디스플레이하기 위한 전자 디바이스의 동작을 예시하는 타이밍도들을 도시한다.
도 13은 본 기술의 양태들에 따른, 다수의 애니메이션들을 디스플레이하기 위해 전자 디바이스를 동작시키기 위한 예시적인 프로세스의 흐름도를 예시한다.
도 14는 본 기술의 양태들이 구현될 수 있는 예시적인 컴퓨팅 디바이스를 예시한다.
아래에 제시되는 상세한 설명은 본 기술의 다양한 구성들에 대한 설명으로 의도되며 본 기술이 실시될 수 있는 유일한 구성들을 나타내는 것으로 의도되지 않는다. 첨부된 도면들은 본 명세서에 포함되고, 상세한 설명의 일부를 구성한다. 상세한 설명은 본 기술의 완전한 이해를 제공하는 목적을 위한 특정 세부사항들을 포함한다. 그러나, 본 기술은 본 명세서에 기재된 특정 세부사항들로 제한되지 않으며, 하나 이상의 다른 구현예들을 사용하여 실시될 수 있다. 하나 이상의 구현예들에서, 본 기술의 개념들을 모호하게 하는 것을 피하기 위해, 구조들 및 컴포넌트들은 블록도 형태로 도시된다.
본 명세서에 설명된 본 기술의 구현예들은, 다수의 애니메이션 소스들이 상이한 바람직한 프레임 레이트들 및/또는 다른 프레임 레이트 제약들을 갖는 시나리오들을 포함하여, 다수의 애니메이션 소스들로부터의 다수의 애니메이션들의 동시 디스플레이를 제공한다. 하나 이상의 구현예들에서, 본 기술은 디바이스 디스플레이에 대한 가변 디스플레이 프레임 레이트들의 증가된 사용을 용이하게 하며, 이는 디스플레이에 의한 전력 소비를 감소시킬 수 있다. 하나 이상의 구현예들에서, 프레임 레이트 중재 시스템들 및 방법들이 제공되며, 여기서 하나 이상의 애니메이션 소스들은 프레임 레이트 파라미터들을 시스템 프로세스에 제공하고, 시스템 프로세스는 디스플레이 프레임들을 렌더링하기 위한 전역 프레임 레이트(global frame rate)를 결정하고, 시스템 프로세스는 전역 프레임 레이트를 하나 이상의 애니메이션 소스들에게 통지한다. 이어서, 애니메이션 소스들은 전역 프레임 레이트 또는 전역 프레임 레이트와 호환가능한 다른 프레임 레이트로 프레임들을 제공할 수 있다.
도 1은 하나 이상의 구현예들에 따른, 본 시스템을 구현할 수 있는 다양한 전자 디바이스들을 포함하는 예시적인 시스템 아키텍처(100)를 예시한다. 그러나, 도시된 컴포넌트들 모두가 모든 구현예들에서 사용될 수 있는 것은 아니며, 하나 이상의 구현예들은 도면에 도시된 것들 이외의 부가적인 또는 그들과 상이한 컴포넌트들을 포함할 수 있다. 컴포넌트들의 배열 및 유형의 변형들은 본 명세서에 기재된 바와 같은 청구범위의 사상 또는 범주로부터 벗어남이 없이 이루어질 수 있다. 부가적인 컴포넌트들, 상이한 컴포넌트들, 또는 더 적은 컴포넌트들이 제공될 수 있다.
시스템 아키텍처(100)는 전자 디바이스(104), 전자 디바이스(105), 전자 디바이스(110), 전자 디바이스(115), 및 서버(120)를 포함한다. 설명의 목적들을 위해, 시스템 아키텍처(100)는 도 1에서, 전자 디바이스(104), 전자 디바이스(105), 전자 디바이스(110), 전자 디바이스(115), 및 서버(120)를 포함하는 것으로 예시되지만; 시스템 아키텍처(100)는 임의의 수의 전자 디바이스들 및 임의의 수의 서버들을 포함할 수 있다.
전자 디바이스(104), 전자 디바이스(105), 및 전자 디바이스(110) 중 임의의 것 또는 전부는, 렌더링된 디스플레이 프레임들을 (예를 들어, 사용자(101)에게) 디스플레이할 수 있는 디스플레이 시스템을 포함하는, 스마트 폰, 태블릿 디바이스, 다른 휴대용 전자 디바이스, 및/또는 웨어러블 디바이스, 예컨대 스마트 워치 또는 다른 웨어러블 디바이스로 구현될 수 있다. 전자 디바이스(104), 전자 디바이스(105), 및 전자 디바이스(110) 중 임의의 것 또는 전부는 배터리 및/또는 임의의 다른 전력 공급부를 이용하여 전력을 공급받을 수 있다.
일부 예들에서, 전자 디바이스(104), 전자 디바이스(105), 및 전자 디바이스(110) 중 임의의 것 또는 전부는, 하나 이상의 애니메이션들 및/또는 정적 콘텐츠를 포함할 수 있는 렌더링된 디스플레이 프레임들을 디스플레이할 수 있다. 정적 콘텐츠는, 다수의 디스플레이 프레임들 및/또는 인간이 인지가능한 시간 기간들, 예컨대 1초 또는 몇 분의 1초 초과의 시간 기간들, 또는 더 긴 기간들, 예컨대 최대 1 분까지의 기간들 또는 1 분보다 긴 기간들에 걸쳐 디스플레이 상에서 변화되지 않는 콘텐츠를 포함할 수 있다. 애니메이션들은, 일련의 디스플레이 프레임들 및/또는 인간이 인지가능한 시간 기간들에 걸쳐 디스플레이 상에서 변화되는 콘텐츠, 예컨대 몇 초, 몇 분의 1초, 수 초 및/또는 더 긴 시간 기간들, 예컨대 몇 분, 몇 시간, 몇 일 동안 연속적으로, 가끔, 또는 주기적으로 변화되는 콘텐츠를 포함할 수 있다. 하나 이상의 구현예들에서, 디스플레이된 애니메이션들 및/또는 정적 콘텐츠는 사용자에 의해 인지되고 실시간 방식으로 상호작용될 수 있다. 부가적으로, 전자 디바이스(104), 전자 디바이스(105), 및 전자 디바이스(110)는 사운드, 및/또는 햅틱 또는 촉각적 피드백을 사용자에게 출력할 수 있다. 이하에서 더 상세히 논의되는 바와 같이, 렌더링된 디스플레이 프레임들은, 애니메이션들이 디스플레이된 프레임들에 포함되는 하나 이상의 애니메이션 소스들에 의해 제공되는 프레임 레이트 파라미터들에 기초하는 프레임 레이트 중재 프로세스를 사용하여, 결정된 전역 프레임 레이트로 디스플레이에 제공될 수 있다.
네트워크(106)는, 예를 들어 전자 디바이스(105), 전자 디바이스(110) 및/또는 전자 디바이스(115)를 서버(120) 및/또는 하나 이상의 다른 사용자들의 하나 이상의 전자 디바이스들과 통신가능하게 (직접적으로 또는 간접적으로) 커플링될 수 있다. 하나 이상의 구현예들에서, 네트워크(106)는 인터넷을 포함할 수 있거나 인터넷에 통신가능하게 커플링될 수 있는 디바이스들의 상호연결된 네트워크일 수 있다.
전자 디바이스(104), 전자 디바이스(105), 및/또는 전자 디바이스(110) 중 임의의 것 또는 전부는 스타일러스, 사용자의 손가락, 또는 다른 입력 디바이스로부터의 터치 이벤트들을 감지하도록 구성된 터치 센서 요소들을 포함하는 터치스크린 또는 다른 터치 감응형 표면을 포함할 수 있다. 전자 디바이스(104), 전자 디바이스(105), 및 전자 디바이스(110) 중 임의의 것 또는 전부는, 예를 들어, 터치스크린 또는 다른 터치 감응형 표면을 포함하는 스마트폰, 터치스크린 또는 다른 터치 감응형 표면을 포함하는 랩톱 컴퓨터와 같은 휴대용 컴퓨팅 디바이스, 터치스크린 또는 다른 터치 감응형 표면을 포함하는 주변기기 디바이스(예를 들어, 디지털 카메라, 헤드폰들), 터치스크린 또는 다른 터치 감응형 표면을 포함하는 태블릿 디바이스, 터치스크린 또는 다른 터치 감응형 표면을 포함하는 웨어러블 디바이스, 예컨대 워치, 밴드 등, 예를 들어 터치스크린 또는 다른 터치 감응형 표면을 포함하는 임의의 다른 적절한 디바이스, 또는 터치패드를 갖는 임의의 전자 디바이스일 수 있다. 하나 이상의 구현예들에서, 전자 디바이스(104), 전자 디바이스(105), 및/또는 전자 디바이스(110)는 터치스크린을 포함하지 않을 수 있지만, 터치스크린 유사 입력 제스처들을 지원할 수 있다. 도 1에서, 예로서, 전자 디바이스(110) 및 전자 디바이스(104)는 터치스크린을 갖는 모바일 스마트폰 디바이스로서 도시되고, 전자 디바이스(105)는 태블릿 디바이스로서 도시된다. 하나 이상의 구현예들에서, 전자 디바이스(104), 전자 디바이스(105), 전자 디바이스(110), 전자 디바이스(115) 및/또는 전자 디바이스(105)는 도 14에 관해 아래에서 논의되는 전자 시스템일 수 있고 그리고/또는 그의 전부 또는 일부를 포함할 수 있다. 하나 이상의 구현예들에서, 전자 디바이스(104), 전자 디바이스(105), 및/또는 전자 디바이스(110)는 인터넷 프로토콜(IP) 카메라, 태블릿과 같은 다른 디바이스, 또는 전자 스타일러스와 같은 주변기기 디바이스 등이거나 이들을 포함할 수 있다.
전자 디바이스(115)는, 예를 들어 데스크톱 컴퓨터, 휴대용 컴퓨팅 디바이스, 예컨대 랩톱 컴퓨터, 스마트폰, 주변기기 디바이스(예를 들어, 디지털 카메라, 헤드폰들), 태블릿 디바이스, 웨어러블 디바이스, 예컨대 워치, 밴드 등일 수 있다. 도 1에서, 예로서, 전자 디바이스(115)는 데스크톱 컴퓨터로서 도시된다. 전자 디바이스(115)는 도 14에 관해 아래에서 논의되는 전자 시스템일 수 있고 그리고/또는 그의 전부 또는 일부를 포함할 수 있고, 그리고/또는 본 명세서에 설명되는 바와 같이 프레임 중재 프로세스를 구현할 수 있다.
서버(120)는 클라우드 컴퓨팅 또는 데이터 센터 구현예에서와 같이, 컴퓨터들의 네트워크 또는 서버들의 그룹(130)의 전부 또는 일부를 형성할 수 있다. 예를 들어, 서버(120)는 데이터 및 소프트웨어를 저장하고, 확장 현실 환경들을 위한 그래픽들, 이미지들, 비디오, 오디오 및 멀티미디어 파일들과 같은 콘텐츠를 렌더링하고 생성하기 위한 특정 하드웨어(예를 들어, 프로세서들, 그래픽 프로세서들 및 다른 특수화된 또는 맞춤형 프로세서들)를 포함한다. 일 구현예에서, 서버(120)는 위에서 논의된 디바이스들 및/또는 서버(120)에 의해 생성된 전술된 확장 현실 콘텐츠 중 임의의 것을 저장하는 클라우드 저장 서버로서 기능할 수 있다.
도 2는 본 기술의 하나 이상의 구현예들에 따른, 전자 디바이스(105)에 의해 구현될 수 있는 예시적인 아키텍처를 예시한다. 설명의 목적들을 위해, 도 2의 아키텍처의 부분들은 도 1의 전자 디바이스(105)에 의해, 예컨대 전자 디바이스의 프로세서 및/또는 메모리에 의해 구현되는 것으로 설명되지만; 아키텍처의 적절한 부분들은 전자 디바이스(104), 전자 디바이스(110), 전자 디바이스(115), 및/또는 서버(120)를 포함하는 임의의 다른 전자 디바이스에 의해 구현될 수 있다. 그러나, 도시된 컴포넌트들 모두가 모든 구현예들에서 사용될 수 있는 것은 아니며, 하나 이상의 구현예들은 도면에 도시된 것들 이외의 부가적인 또는 그들과 상이한 컴포넌트들을 포함할 수 있다. 컴포넌트들의 배열 및 유형의 변형들은 본 명세서에 기재된 바와 같은 청구범위의 사상 또는 범주로부터 벗어남이 없이 이루어질 수 있다. 부가적인 컴포넌트들, 상이한 컴포넌트들, 또는 더 적은 컴포넌트들이 제공될 수 있다.
도 2의 아키텍처의 다양한 부분들은, 프로세서에 의해 실행될 때 프로세서로 하여금 본 명세서에 설명된 동작들을 수행하게 하는, 하나 이상의 프로세서들 및 명령어들을 포함하는 메모리 디바이스에 의한 것을 포함하여, 소프트웨어 또는 하드웨어로 구현될 수 있다.
도 2의 예에서, 애플리케이션(들)(202) 및/또는 시스템 프로세스(들)(204)와 같은 하나 이상의 콘텐츠 소스들은 각각 콘텐츠를 렌더링 서비스(223)에 제공할 수 있다. 도시된 바와 같이, 콘텐츠 소스들은 정적 콘텐츠 및/또는 애니메이션화된 콘텐츠를 렌더링 서비스에 제공할 수 있다. 도시된 바와 같이, 렌더링 서비스(223)는 디스플레이(225)에 의한 디스플레이를 위해 콘텐츠 소스들로부터의 콘텐츠의 일부 또는 전부를 포함하는 렌더링된 디스플레이 프레임들을 생성할 수 있다. 도시된 바와 같이, 디스플레이(225)는 (예를 들어, 각각의 렌더링된 디스플레이 프레임의 프레임 픽셀들을 디스플레이하기 위해 디스플레이 픽셀들의 어레이를 동작시킴으로써) 디스플레이된 프레임들을 출력할 수 있다.
애플리케이션(202)과 같은 하나 이상의 애플리케이션들, 및/또는 시스템 프로세스들(204)과 같은 하나 이상의 시스템 프로세스들은 각각 디스플레이에 의한 디스플레이를 위해 하나 이상의 애니메이션들을 포함하는 애니메이션화된 콘텐츠를 제공할 수 있다. 일부 사용 경우들에서, 다수의 애니메이션 소스들로부터의 다수의 애니메이션들(예를 들어, 애플리케이션으로부터의 다수의 애니메이션들, 다수의 애니메이션들로부터의 하나의 애니메이션, 시스템 프로세스로부터의 다수의 애니메이션들 및/또는 다수의 시스템 프로세스들로부터의 하나의 애니메이션)이 디스플레이(225)에 의한 동시 디스플레이를 위해 제공될 수 있다.
예를 들어, 도 3은 전자 디바이스(105)가 스마트폰 또는 태블릿 디바이스로서 구현되고, 전자 디바이스의 디스플레이(225)가 정적 콘텐츠 및 다수의 동시 애니메이션들을 포함하는 홈 스크린을 디스플레이하는 사용 경우를 예시한다. 이러한 예에서, 디스플레이(225)는, (예를 들어, 화살표(321)에 의해 표시된 바와 같이 스타일러스(308)와 같은 입력 소스로부터의) 사용자 입력이 화살표(323)에 의해 표시된 방향으로의 아이콘들(310)의 스크롤링 애니메이션(예를 들어, 디바이스의 하나의 홈 스크린으로부터 디바이스의 다음 홈 스크린으로의 스크롤링 액션)을 야기했을 때에, 배경(312), 다수의 아이콘들(310)(예컨대, 애플리케이션 아이콘들), 배터리 표시자(300), 프로세스 표시자(304), 버튼 누름 표시자, 예컨대 볼륨 버튼(309)의 누름으로부터 기인되는 볼륨 표시자(306), 및 신호 강도 표시자(302)를 동시에 디스플레이한다.
이러한 예에서, 배경(312)은 시스템 프로세스들(204)과 같은 시스템 프로세스로부터의 정적 콘텐츠이다. 이러한 예에서, 배터리 표시자(300), 신호 강도 표시자(302), 볼륨 표시자(306), 및 아이콘들(310)의 스크롤링 애니메이션은 시스템 프로세스들(204)로부터의 애니메이션들이다. 이러한 예에서, 프로세스 표시자(304)는 애플리케이션(202)으로부터의 애니메이션이다. 도 3의 스크롤링 애니메이션은 단지 예시적인 것이며, 예컨대 시스템 프로세스 또는 애플리케이션들의 사용자 인터페이스(UI)가 (예를 들어, 드롭다운 메뉴에서) 수직 또는 수평 스크롤링가능 목록을 디스플레이하고 사용자가 목록의 스크롤링을 야기하기 위한 스와이프 또는 다른 입력을 입력할 때, 다른 스크롤링 애니메이션들이 제공될 수 있다.
애니메이션 소스들(예를 들어, 시스템 프로세스들(204) 및 애플리케이션(202)) 각각은, 대응하는 애니메이션들이 그 소스에 의해 생성될 수 있는 제한들 및/또는 선호도들을 가질 수 있다. 예를 들어, 특정 애니메이션 소스는 특정 애니메이션에 대한 바람직한 프레임 레이트, 특정 애니메이션에 대한 최소 프레임 레이트, 및/또는 특정 애니메이션에 대한 최대 프레임 레이트를 가질 수 있다. 예를 들어, 특정 애니메이션에 대한 바람직한 프레임 레이트는 애니메이션이 디스플레이(225) 상에서 최적의 외관을 갖는 프레임 레이트일 수 있고, 특정 애니메이션에 대한 최소 프레임 레이트는 프레임 레이트(그 프레임 레이트 미만에서, 글리치(glitche)들 또는 블러(blur)와 같은 광학 아티팩트(artifact)들이 디스플레이 상에서 인지가능할 수 있음)일 수 있으며, 특정 애니메이션에 대한 최대 프레임 레이트는 (예를 들어, 프레임들을 생성하기 위해 수행되는 다른 프로세싱 동작들에 의해 사용되는 시간으로 인해) 애니메이션 소스가 특정 애니메이션에 대한 프레임들을 생성할 수 있는 최대 프레임 레이트일 수 있다. 스크롤링 애니메이션의 예에서, 스크롤링 입력의 속도에 의존하여, 사람의 눈이 낮은 리프레시 레이트와 높은 리프레시 레이트 사이를 구별할 수 있는 레이트보다 빠른 프레임 레이트가 사용될 수 있다. 스크롤링 애니메이션이 (예를 들어, 입력 스와이프 또는 제스처의 속도에 기초하여) 상이한 스크롤링 속도들로 발생할 수 있고 그리고/또는 물리적 스크롤을 모방하기 위해 시간에 걸쳐 느려질 수 있기 때문에, 스크롤링 애니메이션 소스는, 스크롤링 입력을 수신하고 스크롤링 입력을 모델(예를 들어, 인간 인지 모델)에 적용하여 프레임 레이트 파라미터들을 획득함으로써 스크롤 동안 주어진 시간에 바람직한, 최소, 및/또는 최대 프레임 레이트를 결정할 수 있다. 예를 들어, 스크롤링 애니메이션은 스크롤링 입력의 속도를 획득할 수 있고, 인간 인지 모델로부터 그 스크롤링 입력에 대응하는 프레임 레이트를 바람직한 프레임 레이트 또는 최소 프레임 레이트로서 추출할 수 있다. 예를 들어, 인간 인지 모델은 스크롤링 속도를 최소 프레임 레이트(그 프레임 레이트 미만에서, 프레임 전환들이 전형적인 인간에게 인지가능할 것임)에 맵핑할 수 있다.
게다가, 디스플레이(225) 자체는 네이티브 리프레시 레이트를 가질 수 있다. 예를 들어, 디스플레이(225)의 네이티브 리프레시 레이트는 디스플레이의 픽셀들이 (예를 들어, 수직 동기화(VSYNC) 신호에 응답하여) 주기적으로 리프레시되는 레이트일 수 있고, 디스플레이 제조자 또는 디바이스 제조자에 의해 결정될 수 있다. 다양한 구현예들에서, 디스플레이(225)의 네이티브 리프레시 레이트는 50 헤르츠(㎐), 60 ㎐, 120 ㎐, 240 ㎐일 수 있거나 또는 240 ㎐보다 높을 수 있다. 하나 이상의 구현예들에서, 도 3에 도시된 다수의 애니메이션들은 디스플레이의 네이티브 리프레시 레이트와 호환가능한(예를 들어, 네이티브 리프레시 레이트의 짝수 인수(even factor)인) 프레임 레이트로 생성될 수 있다.
그러나, 애니메이션들이 네이티브 리프레시 레이트의 짝수 인수에서만 생성되도록 요구하는 것은 애니메이션 품질 및/또는 다른 소스 선호도들 또는 설정들에 대해 바람직하지 않은 프레임 레이트로 애니메이션들이 생성되게 할 수 있고, 또한 디바이스 전력의 비효율적인 사용을 유발할 수 있다. 예를 들어, 디스플레이의 리프레시 레이트는 디스플레이의 전력 소비에 실질적으로 비례할 수 있으며; 리프레시 레이트가 높을수록, 디스플레이가 더 많은 전력을 소비할 것이다. 이와 같이, 디스플레이의 리프레시 레이트를 조정할 수 있는 것이 바람직할 수 있다. 그러나, 디스플레이를 위해 다수의 애니메이션 소스들이 다수의 애니메이션들을 제공할 때 디스플레이의 리프레시 레이트를 수정하는 것은, 바람직하지 않을 수 있는 가시적인 아티팩트들을 야기할 수 있는 프레임 레이트 비호환성들을 유발할 수 있다.
예를 들어, 디스플레이가 고정된 네이티브 리프레시 레이트를 갖는 구현예와 같은 하나 이상의 구현예들에서, 디스플레이는 X ㎐의 네이티브 리프레시 레이트를 가질 수 있으며, 프레임은 임의의 1/X 초의 하트비트(heartbeat)에서 제시될 수 있고, 적어도 1/X 초 동안 디스플레이 상에서 유지될 수 있다. 이러한 예에서, X의 인수들인 모든 Y에 대해, 애니메이션은 Y ㎐로 매끄럽게 실행될 수 있다. 예를 들어, 60의 인수들은 {1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60}이다. 따라서, 60 ㎐ 네이티브 리프레시 레이트 디스플레이 상에서, 하나 걸러 하나의 60 ㎐ 프레임을 스킵함으로써 30 ㎐의 프레임 레이트, 매 2개의 60 ㎐ 프레임들을 스킵함으로써 20 ㎐의 프레임 레이트 등에서 애니메이션이 실행될 수 있다. 이러한 예에서, 상이한 프레임 레이트들 Y(여기서, Y는 X의 인수임)를 갖는 애니메이션들은 글리치들을 야기하지 않으면서 공존할 수 있다.
예를 들어, 도 4는 1/60 ㎐ 하트비트를 갖는 60 ㎐ 네이티브 리프레시 레이트 디스플레이의 타이밍도를 예시하며, 여기서 제1 애니메이션은 20 ㎐ 프레임 레이트로 제공되고, 제2 애니메이션은 60 ㎐ 프레임 레이트로 호환가능하게 제공되고, 디스플레이 프레임들은 다양한 디스플레이 하트비트들에서 (예를 들어, 렌더링 서비스(223)에 의한) 디스플레이를 위해 호환가능하게 렌더링된다.
하나 이상의 구현예들에서, 가변 리프레시 레이트 디스플레이와 같은 디스플레이는 임의의 1/X 초 하트비트에서 프레임을 제시하기 위한 능력을 가질 수 있고, 적어도 2개의 하트비트들 동안 디스플레이 상에서, 제시된 프레임을 유지할 수 있다. 그러한 구현예에서, 디스플레이에 대한 유효 최대 프레임 레이트가 2개의 하트비트들(예를 들어, 2/X 초)의 간격에 대응하므로, 디스플레이는 본 명세서에서 X/2 ㎐ 네이티브 리프레시 레이트 디스플레이로 지칭될 수 있다(예를 들어, 그럼에도 불구하고, 하나 이상의 구현예들에서, 디스플레이의 현재 리프레시 레이트는 가변일 수 있거나 또는 네이티브 (최대) 리프레시 레이트로부터, 예컨대 X/3 ㎐, X/4 ㎐, X/5 ㎐, X/6 ㎐, 또는 X/8 ㎐의 리프레시 레이트로 변화가능할 수 있다).
예를 들어, 도 5는 1/240 ㎐(4.17 ms) 하트비트를 갖는 120 ㎐ 네이티브 리프레시 레이트 디스플레이(예를 들어, 가변 리프레시 레이트 디스플레이)의 타이밍도를 예시하며, 여기서 120 ㎐ 애니메이션이 제공되고 120 ㎐의 레이트에서의 디스플레이를 위해 렌더링된다. 도 5의 예에서, 디스플레이 프레임은 임의의 하트비트로 제시될 수 있고, 적어도 2개의 하트비트들 동안 디스플레이 상에서 유지될 수 있다. 다시 말해서, 이러한 예에서, 프레임은 임의의 4.17 ms 하트비트에서 제시될 수 있고, 8.33 ms 동안 디스플레이 상에서 유지될 수 있다. 따라서, 도 5의 예에서, 가장 높은 프레임 레이트는 120 ㎐이다. 하나 이상의 구현예들에서, 몇몇 하트비트들마다 한 번 프레임을 제시함으로써 더 낮은 프레임 레이트들이 달성될 수 있으며, 예를 들어 60 ㎐ 프레임들은 4개의 하트비트들(예를 들어, 이러한 예에서는 16.67 ms) 마다 제시될 수 있고, 40 ㎐ 프레임들은 6개의 하트비트들마다(예를 들어, 25 ms마다) 제시될 수 있는 등의 식이다. 이러한 예들에서, 프레임 레이트들은 하트비트들의 짝수를 갖는 120의 모든 인수들이고, 일부 예들에서 "짝수-콴타(even-quanta)" 프레임 레이트들로 지칭될 수 있다.
이러한 예의 120 ㎐ 네이티브 리프레시 레이트 디스플레이는 "홀수-콴타" 프레임 레이트들(예를 들어, 3개 또는 5개의 하트비트들마다 프레임을 각각 제시하는 80 ㎐ 프레임 레이트 또는 48 ㎐ 프레임 레이트)를 허용하지 않지는 않으며, 그러한 "홀수-콴타" 프레임 레이트들은 디스플레이 외관 및 전력 소비 둘 모두의 관점에서 유익할 수 있다. 예를 들어, 80 ㎐(예를 들어, 도 6 참조)는 60 ㎐ 프레임 레이트와 120 ㎐ 프레임 레이트 사이에서 전환할 때 중간 프레임 레이트로서의 역할을 할 수 있다(또는 그 반대의 경우도 가능하다). 프레임 레이트 전환들 동안 중간 프레임 레이트를 사용하는 것은 프레임 레이트 전환들 동안 디스플레이 상의 애니메이션들의 가시적인 외관에 도움이 될 수 있다. 다른 예로서, 감소된 전력 소비를 갖는 유사한 디스플레이 품질을 달성하기 위해, 60 ㎐ 프레임 레이트들 및 120 ㎐ 프레임 레이트들 대신에 48 ㎐ 프레임 레이트들 및 80 ㎐ 프레임 레이트들이 때때로 각각 사용될 수 있다. 예를 들어, 스크롤링 애니메이션의 온-스크린 품질에 영향을 주지 않으면서 전력 소비를 감소시키기 위해, 60 ㎐로 디스플레이되고 감속하는 스크롤링 애니메이션의 끝 부근에서 48 ㎐ 프레임 레이트가 사용될 수 있다. 따라서, 48 ㎐ 프레임 레이트들 및 80 ㎐ 프레임 레이트들은 시각적 품질 장점들뿐만 아니라, 더 높은 가시성 사용 경우들이 120 ㎐로 실행될 수 있게 하기 위한 전력 절약들을 위한 기회들을 제공할 수 있다.
그러나, "홀수-콴타" 프레임 레이트는 서로 호환가능하지 않을 뿐만 아니라 "짝수-콴타" 프레임 레이트들과 호환가능하지 않다. 프레임 레이트들의 비호환성은 애니메이션들이 동시에 디스플레이될 때 프레임 글리치들 및 불균일한 프레임 케이던스(cadence)들을 야기하며, 이는 사용자 경험을 저하시킬 수 있고, 위에서 설명된 이러한 "홀수-콴타" 프레임 레이트들의 이점들을 능가할 수 있다. 예를 들어, 도 7은 4.17 ms(즉, 1/240 ㎐) 하트비트를 갖는 120 ㎐ 네이티브 프레임 레이트 디스플레이 상에서의 동시 120 ㎐ 및 80 ㎐ 애니메이션들의 예시적인 타이밍도를 예시한다.
도 7의 예에서, 애니메이션이 평가를 요구할 때마다, 그 특정 시간에 프레임이 생성되어야 한다. 그러나, 시간(702)에서, 프레임이 시간(700) 전에 디스플레이에 의해 4.17 ms로 막 디스플레이되었기 때문에, 프레임은 80 ㎐ 애니메이션에 대해 렌더링될 수 없다. 따라서, 이러한 예에서, 프레임이 시간(704)에서 디스플레이될 때에만, 80 ㎐ 애니메이션이 디스플레이 상에서 시각적 업데이트를 야기하고, 이는 매끄러운 80 ㎐ 애니메이션 대신에 길고-짧고-길고-짧은 저더 케이던스(judder cadence)를 초래한다.
하나 이상의 구현예들에 따르면, 프레임 레이트 중재 동작들은 모든 애니메이션 소스들의 프레임 레이트 호환성을 제공하기 위해 수행될 수 있다. 프레임 레이트 중재는 상이한 프레임 레이트들 사이의 전환들에서 결정적 거동을 유지하는 것을 도울 수 있다. 본 명세서에 설명된 프레임 레이트 중재 동작들은 사용자 시각적 경험을 저하시킬 수 있는 시각적 글리치들을 발생시키지 않으면서, 디스플레이(225)와 같은 디스플레이(예를 들어, 1/240 ㎐ 하트비트를 갖는 120 ㎐ 네이티브 프레임 레이트 디스플레이) 상에서 이용가능한 "홀수-콴타" 프레임 레이트들을 생성하는 것을 용이하게 할 수 있다.
도 8은 본 기술의 하나 이상의 구현예들에 따른, 전자 디바이스(105)에 의해 구현될 수 있는, 프레임 레이트 중재기를 갖는 예시적인 아키텍처를 예시한다. 설명의 목적들을 위해, 도 8의 아키텍처는 도 1의 전자 디바이스(105)에 의해, 예컨대 전자 디바이스의 프로세서 및/또는 메모리에 의해 구현되는 것으로 설명되지만; 아키텍처는 전자 디바이스(104), 전자 디바이스(110), 전자 디바이스(115), 및/또는 서버(120)를 포함하는 임의의 다른 전자 디바이스에 의해 구현될 수 있다. 그러나, 도시된 컴포넌트들 모두가 모든 구현예들에서 사용될 수 있는 것은 아니며, 하나 이상의 구현예들은 도면에 도시된 것들 이외의 부가적인 또는 그들과 상이한 컴포넌트들을 포함할 수 있다. 컴포넌트들의 배열 및 유형의 변형들은 본 명세서에 기재된 바와 같은 청구범위의 사상 또는 범주로부터 벗어남이 없이 이루어질 수 있다. 부가적인 컴포넌트들, 상이한 컴포넌트들, 또는 더 적은 컴포넌트들이 제공될 수 있다.
도 8의 아키텍처의 다양한 부분들은, 프로세서에 의해 실행될 때 프로세서로 하여금 본 명세서에 설명된 동작들을 수행하게 하는, 하나 이상의 프로세서들 및 명령어들을 포함하는 메모리 디바이스에 의한 것을 포함하여, 소프트웨어 또는 하드웨어로 구현될 수 있다. 도 8의 예에서, 전자 디바이스(105)는 프레임 레이트 중재기(800)를 포함한다. 도 8의 예에서, 프레임 레이트 중재기(800)는 렌더링 서비스(223)와는 별개의 엔티티로서 예시된다. 그러나, 프레임 레이트 중재기(800)는 렌더링 서비스(223)의 요소로서 제공될 수 있다.
도 8에 도시된 바와 같이, 애플리케이션(202) 및 시스템 프로세스들(204)과 같은 애니메이션 소스들은 프레임 레이트 파라미터들을 프레임 레이트 중재기(800)에 제공할 수 있다. 프레임 레이트 중재기(800)는 애니메이션 소스들에 대한 프레임 레이트 파라미터들에 기초하여 전역 프레임 레이트를 결정하고, 전역 프레임 레이트를 애니메이션 소스들에게 통지할 수 있다. 하나 이상의 구현예들에서, 프레임 레이트 중재기(800)는 또한 전역 프레임 레이트를 렌더링 서비스(223)에게 통지할 수 있다. 하나 이상의 구현예들에서, 렌더링 서비스(223)는 디스플레이 프레임들을 렌더링하고, 렌더링된 디스플레이 프레임들을 전역 프레임 레이트로 디스플레이(225)에 제공할 수 있다. 하나 이상의 구현예들에서, 프레임 레이트 중재기(800)는 또한 전역 프레임 레이트를 디스플레이(225)에게 통지할 수 있다. 하나 이상의 구현예들에서, 디스플레이(225)는 프레임 레이트 중재기(800)로부터의 전역 프레임 레이트와 매칭하도록 디스플레이의 리프레시 레이트를 수정할 수 있다.
각각의 애니메이션에 대한 프레임 레이트 파라미터들은, 예들로서, 최소 프레임 레이트, 최대 프레임 레이트, 및/또는 바람직한 프레임 레이트를 포함할 수 있다. 최소 프레임 레이트 및 최대 프레임 레이트는 애니메이션 소스에 대한 프레임 레이트 범위를 정의할 수 있다. 애니메이션 소스들이 전역 프레임 레이트를 통지받은 이후, 애니메이션 소스들은 전역 프레임 레이트로 그리고/또는 전역 프레임 레이트의 인수(예를 들어, 짝수-콴타 인수)인 호환가능 프레임 레이트로 콘텐츠(예를 들어, 프레임들 및/또는 프레임들을 생성하기 위한 콘텐츠)를 렌더링 서비스(223)에 제공할 수 있다. 예를 들어, 120 ㎐의 전역 프레임 레이트의 경우, 하나 이상의 애니메이션 소스들은 120 ㎐의 전역 프레임 레이트로 프레임들을 제공하는 대신에 60 ㎐ 디스플레이 프레임들 또는 30 ㎐ 디스플레이 프레임들을 제공할 수 있다. 그러나, 80 ㎐가 제2 애니메이션 소스에 대한 바람직한 프레임 레이트인 경우에도, 전역 프레임 레이트가 120 ㎐일 때, 애니메이션 소스들은 80 ㎐ 프레임들과 같은 홀수-콴타 인수들을 제공하는 것이 허용되지 않을 수 있다.
하나 이상의 구현예들에서, 애니메이션 소스(예를 들어, 애플리케이션(202), 시스템 프로세스들(204), 및/또는 렌더링 서비스(223)의 하나 이상의 프로세스들)는 프레임 레이트 파라미터들(예를 들어, 프레임 레이트 범위를 포함함)을 프레임 레이트 중재기(800)에 등록, 업데이트, 및/또는 등록해제할 수 있다. 프레임 레이트 중재기(800)는 등록된 및/또는 수정된 프레임 레이트 파라미터들을 기록할 수 있고, 모든 활성 프레임 레이트 파라미터 등록들에 기초하여, 프레임 레이트 중재기(800)는, 렌더링 서비스(223)가 렌더링된 디스플레이 프레임들을 생성할 전역 프레임 레이트를 결정할 수 있다. 이어서, 애니메이션 소스들은 프레임 레이트 중재기(800)로부터 전역 프레임 레이트를 수신하고, 전역 프레임 레이트와 호환가능한 프레임 레이트에 적응할 수 있다.
애니메이션 소스는, 애니메이션화된 콘텐츠를 생성하기 위해 렌더링 서비스(223)로부터의 타이밍 정보에 의존하는 클라이언트 구동 소스(예를 들어, 애플리케이션(202) 및/또는 시스템 프로세스(204)), 또는 렌더링 서비스(223) 자체에 의해 소유되는 애니메이션 소스일 수 있다. 예를 들어, 클라이언트 구동 애니메이션 소스들은, 소스(예를 들어, 애플리케이션(202))가 렌더링 서비스(223)에 의해 표시된 각각의 시간 단계에서 그의 애니메이션의 상태를 평가하고 그 시간 단계에서 애니메이션에 대한 임의의 변화들을 제출하도록 요구할 수 있는 반면, 렌더링 서비스(223)에 의해 소유되는 애니메이션 소스는 렌더링 서비스에 의해 완전히 관리된다.
하나 이상의 구현예들에서, 애플리케이션 소스에 대한 프레임 레이트 파라미터들은 애니메이션 소스의 개발자에 의해 결정될 수 있고, 고정된 파라미터들일 수 있다. 하나 이상의 다른 구현예들에서, 프레임 레이트 중재 프로세스들이 또한 클라이언트 측 소스에서 수행되어, 그 소스에 대한 프레임 레이트 파라미터들을 결정할 수 있다. 예를 들어, 도 9는, 도 8의 프레임 레이트 중재기(800)가 애니메이션 소스(910)를 또한 포함하는 렌더링 서비스(223)의 프로세스로서 구현되고, 부가적인 프레임 레이트 중재기들(907)이 애플리케이션(202) 및 시스템 프로세스(921)(예를 들어, 시스템 프로세스들(204)의 시스템 프로세스)에 대해 제공되는 일 예를 예시한다.
이러한 예에서, 애플리케이션(202)의 프레임 레이트 중재기(907)는 애플리케이션(202)에 의해 생성된 하나 이상의 애니메이션들에 대한 타이밍 정보(908)에 기초하여 프레임 레이트 파라미터들(900)(예를 들어, 프레임 레이트 범위, 최소 프레임 레이트, 최대 프레임 레이트, 및/또는 바람직한 프레임 레이트)을 계산한다. 하나 이상의 구현예들에서, 애니메이션 소스에 대한 바람직한 프레임 레이트는 그 애니메이션에 대한 최소 프레임 레이트와 동일하거나, 최대 프레임 레이트와 동일하거나, 그리고/또는 최소 프레임 레이트와 최대 프레임 레이트 사이에 있는(예를 들어, 프레임 레이트 범위 내에 있는) 프레임 레이트일 수 있다. 도 9에 도시된 바와 같이, 이어서 애플리케이션(202)은 프레임 레이트 파라미터들(900)을 프레임 레이트 중재기(800)에 등록, 업데이트, 및/또는 등록해제할 수 있다.
도 9의 예에서, 시스템 프로세스(921)의 프레임 레이트 중재기(907)는 또한, 시스템 프로세스(921)에 의해 생성된 하나 이상의 애니메이션들에 대한 타이밍 정보(906)에 기초하여 프레임 레이트 파라미터들(902)(예를 들어, 프레임 레이트 범위, 최소 프레임 레이트, 최대 프레임 레이트, 및/또는 바람직한 프레임 레이트)을 계산한다. 도 9에 도시된 바와 같이, 이어서 시스템 프로세스(921)는 프레임 레이트 파라미터들(902)을 프레임 레이트 중재기(800)에 등록, 업데이트, 및/또는 등록해제할 수 있다.
도 9의 예에서, 렌더링 서비스(223)에 의해 소유되는 애니메이션 소스(910)는, 렌더링 서비스(223)가 콘텐츠를 어떻게 렌더링할지를 설명하는 계층 트리(layer tree)(911)를 제공한다. 이러한 예에서, 계층 트리(911)의 하나 이상의 계층들(912)에서의 활성 애니메이션들 "A"는 렌더링 서비스(223)가 렌더링을 준비할 때 계층 트리를 걸을 때마다 누적될 수 있고, 렌더링 서비스의 부가적인 프레임 레이트 중재기(907)는 다양한 활성 애니메이션들 "A"에 대한 프레임 레이트 선호도들 및/또는 애니메이션 특성들(예를 들어, 애니메이션화된 특징부의 이동 에지의 속도)에 기초하여 프레임 레이트 파라미터들(904)(예를 들어, 프레임 레이트 범위, 최소 프레임 레이트, 최대 프레임 레이트, 및/또는 바람직한 프레임 레이트)을 생성할 수 있다.
도 9에 표시된 바와 같이, 프레임 레이트 중재기(800)는 하나 이상의 애니메이션 소스들로부터의 프레임 레이트 파라미터들(예를 들어, 애플리케이션(202)으로부터의 프레임 레이트 파라미터들(900), 시스템 프로세스(921)로부터의 프레임 레이트 파라미터들(902), 및 렌더링 서비스(223)의 애니메이션 소스(910)로부터의 프레임 레이트 파라미터들(904)을 포함함)을 기록할 수 있다. 기록된 프레임 레이트 파라미터들은 프레임 레이트 중재기(800)에 의해(예를 들어, 렌더링 서비스(223)에 의해) 저장되고, 전역 프레임 레이트를 결정하는 데 사용될 수 있다. 애니메이션 소스들 중 임의의 것으로부터의 기록된 프레임 레이트 파라미터들 중 임의의 것에 대한 변화들을 수신할 시에, 프레임 레이트 중재기(800)는 (예를 들어, 도 12a 내지 도 12h와 관련하여) 이하에서 더 상세히 설명되는 바와 같이, 전역 프레임 레이트에 대한 업데이트를 계산할 수 있다.
하나 이상의 구현예들에서, 프레임 레이트 파라미터들(900), 프레임 레이트 파라미터들(902), 및 프레임 레이트 파라미터들(904)로부터 전역 프레임 레이트를 결정하기 위한 프로세스의 일부로서, 프레임 레이트 중재기(800)는 각각의 애니메이션 소스에 대한 기록된 프레임 레이트 파라미터들을 프레임 간격 파라미터들로 변환할 수 있다. 프레임 간격 파라미터들은 하드웨어 의존적일 수 있다. 예를 들어, 120 ㎐의 프레임 레이트는, 각각의 디스플레이 프레임이 2개의 하트비트들 동안 디스플레이 상에 유지되는 120 HZ 디스플레이를 위해 2의 프레임 간격으로 변환될 수 있다. 하나 이상의 구현예들에서, 프레임 간격 범위들(예를 들어, 최소 프레임 레이트에 대응하는 최대 프레임 간격과 최대 프레임 레이트에 대응하는 최소 프레임 간격 사이의 범위들)이 획득될 수 있다. 하나 이상의 구현예들에서, 프레임 레이트 중재기(800)는 (예를 들어, 애니메이션 소스들과 독립적인 다른 디바이스 및/또는 디스플레이 설정들 또는 요건들을 수용하기 위해 범위들을 확장시킴으로써) 프레임 간격 범위들을 증분시킬 수 있다.
하나 이상의 구현예들에서, 프레임 레이트 중재기(800)는 다양한 애니메이션 소스들에 대한 프레임 간격 범위들을 분류할 수 있다. 하나 이상의 구현예들에서, 프레임 레이트 중재기(800)는 교차 동작의 다음 교차가 빈 범위를 유발할 때까지 (예를 들어, 분류된) 프레임 간격 범위들의 교차를 수행할 수 있다. 하나 이상의 구현예들에서, 프레임 레이트 중재기(800)는 교차 연산으로부터 기인되는 프레임 간격 범위(예를 들어, 교차 연산이 빈 범위를 초래하기 전의 마지막 범위) 내로부터, 기록된 프레임 레이트 파라미터들 중 하나에 대응하는 바람직한 프레임 간격과 매칭되는 가장 작은 프레임 간격을 전역 프레임 간격으로 선택할 수 있다. 어떠한 애니메이션 소스들도 바람직한 프레임 레이트(및 대응하여 바람직한 간격)을 제공하지 않았고 그리고/또는 어떠한 바람직한 간격도 범위 내에 있지 않은 경우, 디바이스-바람직한 간격이 교차로부터 기인되는 범위 내에 또는 그 아래에 있다면, 프레임 레이트 중재기는 디바이스-바람직한 프레임 간격(예를 들어, 일부 구현예들에서, 60 ㎐ 프레임 레이트에 대응하는 4의 간격)을 전역 프레임 간격으로서 선택할 수 있다. 디바이스-바람직한 프레임 간격이 교차로부터 기인되는 프레임 간격 범위 내에 속하지 않고, 디바이스-바람직한 프레임 레이트가 범위에서 가장 높은 간격보다 크면, 프레임 레이트 중재기(800)는 프레임 간격 범위 내의 가장 큰 간격을 전역 프레임 간격으로서 선택할 수 있다. 하나 이상의 다른 구현예들에서, 프레임 레이트 중재기(800)는 프레임 간격 범위 내의 이러한 가장 큰 간격 및 5의 간격(일부 구현예들에서 48 ㎐ 프레임 레이트에 대응함) 중 더 작은 것을 전역 프레임 간격으로서 선택할 수 있다.
하나 이상의 구현예들에서, 전역 프레임 간격은 (예를 들어, 판독 전용 공유 메모리를 통해) 모든 애니메이션 소스들과 프레임 레이트 중재기(800)에 의해 공유(예를 들어, 그리고/또는 전역 프레임 레이트로 변환되고 공유)될 수 있다. 일단 전역 프레임 레이트가 분배되면, 클라이언트 구동 애니메이션 소스들은 애플리케이션들이 실행되도록 스케줄링되는 다가오는 VSYNC에서 그들의 프레임 레이트를 호환가능 프레임 레이트로 업데이트할 수 있다.
애니메이션 소스(들)에 의한 이러한 업데이트는 바람직한 프레임 레이트가 애니메이션 소스(들)에 의해 특정되었는지 여부에 의존하여 상이하게 수행될 수 있다. 예를 들어, 애니메이션 소스가 전역 프레임 레이트를 수신할 때, 바람직한 프레임 레이트가 그 애니메이션 소스에 대해 특정되면, 애니메이션 소스에 의해 선택된 호환가능 프레임 레이트는, 전역 프레임 레이트보다 작고, 애니메이션 소스에 대한 프레임 레이트 범위 내에(예를 들어, 최소 프레임 레이트와 최대 프레임 레이트 사이에) 있고, 바람직한 프레임 레이트에 가장 가까운 프레임 레이트일 수 있다. 애니메이션 소스가 바람직한 프레임 레이트를 갖지 않은 시나리오에서, 애니메이션 소스에 의해 선택된 호환가능 프레임 레이트는, 전역 프레임 레이트보다 작고, 애니메이션 소스에 대한 프레임 레이트 범위 내에(예를 들어, 최소 프레임 레이트와 최대 프레임 레이트 사이에) 있고, 전역 프레임 레이트에 가장 가까운 프레임 레이트일 수 있다. 하나 이상의 구현예들에서, 계층 트리(911)를 렌더링 서비스(223)에 제공하는 애니메이션 소스(910)와 같은 서버 측 애니메이션 소스들은, 계층 트리 이동이 각각의 렌더링 전에 완료될 때 동일한 방식으로 업데이트될 수 있다.
하나 이상의 구현예들에서, 프레임 레이트 중재는 임의의 시점에 프레임 레이트 중재기(800)에 의해 수행될 수 있다. 그러나, 애니메이션 소스들은 그들이 스케줄링된 VSYNC 시간에 웨이크 업(wake up)할 때에만 업데이트될 수 있다. 따라서, 전체 시스템은 시스템을, 예를 들어 레이스 조건(race condition)들에 노출시키지 않으면서 상이한 프레임 레이트로 즉시 전환할 수 없을 수 있다. 예를 들어, 모든 애니메이션 소스들이 60 ㎐에서 동작하고 있고, 16.67 ms에서 렌더링 서비스(223)에 커미트(commit)될 프레임에 대해 작업하기 시작한 사용 경우에서, 하나의 애니메이션 소스는 80 ㎐ 프레임 레이트로의 업데이트를 요청할 수 있다. 이러한 예시적인 사용 경우에서, 렌더링 서비스(223)가 80 ㎐ 프레임 레이트로 즉시 전환되었다면, 일부 애니메이션 소스들은 16.67 ms에서 프레임을 제공하는 것을 목표로 할 것이고, 일부 애니메이션은 12.5 ms의 프레임을 제공하는 것을 목표로 할 것이다. 그러나, 이러한 프레임들 모두가 동시에 디스플레이되어, 시각적 글리치들을 초래할 것이다. 도 10은 프레임 레이트 전환이 즉시 발생하는 다른 그러한 사용 경우를 예시한다. 도 10의 예에서, 2개의 애니메이션들(예를 들어, "애니메이션 1" 및 "애니메이션 2")은 80 ㎐로 렌더링되는 80 ㎐ 프레임들을 생성하고 있다. 이어서, 시간(1000)에서, 애니메이션 2는 80 ㎐로부터 60 ㎐로의 전역 프레임 레이트 변화를 초래하는 업데이트된 프레임 레이트 파라미터들을 제공한다. 도 10에 도시된 바와 같이, 전자 디바이스(예를 들어, 렌더링 서비스(223))가 (예를 들어, 이하에서 논의되는 프레임 레이트 전환 스케줄링 없이) 새로운 60 ㎐ 전역 프레임 레이트로 즉시 스위칭되는 사용 경우에서, 애니메이션 2에 대한 애니메이션 소스만이 변화를 인식하고, 상이한 하트비트를 목표로 하도록 변화에 대해 작용할 수 있을 것이다. 이러한 시나리오에서, 애니메이션 1은 그의 다음 프레임을 이미 완료했을 수 있거나, 또는 시간(1002)에서 제시되도록 이전에 스케줄링되었고, 새로운 타이밍에 대해 그의 작업을 재실행하기에 충분한 시간을 갖지 않을 것이거나, 또는 그의 작업을 실행하는 프로세스에 여전히 있을 수 있고, 새로운 목표 하트비트로 변화될 수 없을 수 있다. 도 10에 도시된 바와 같이, 이러한 시나리오에서, 애니메이션 1에 대한 다음 프레임은 의도된 것보다 나중에 하나의 하트비트에서 디스플레이 상에 제시될 것이며, 이는 도 7에 의해 예시된 호환가능하지 않은 프레임 레이트들과 관련하여 위에서 논의된 바와 유사한 바람직하지 않은 효과를 생성할 것이다.
도 11a 및 도 11b는, 이러한 사용 경우에서, 프레임 레이트 전환이 전환 이전 및 그 이후의 레이트들의 상대적 위상들로 인해 시각적 글리치를 초래할 수 있는 다른 사용 경우를 예시한다. 도 11a의 예에서, 80 ㎐로부터 60 ㎐로의 프레임 레이트 전환은 예상치 못한 프레임 길이를 갖는 시간(1100)에 발생한다. 도 11b의 예에서, 80 ㎐로부터 60 ㎐로의 프레임 레이트 전환은 60 ㎐ 프레임 길이를 갖는 시간(1102)에 발생한다. 도 11a 및 도 11b 둘 모두에서, 프레임 레이트가 변화될 것이라는 것을 애니메이션 소스가 전환에 앞서 통지받을 수 있고, 디스플레이를 위한 프레임에 업데이트된 타이밍을 제공할 수 있더라도, 전환 이전 및 그 이후의 프레임 레이트들의 위상 오프셋들은 블러 반경 또는 모션 블러 폭의 변화를 초래할 수 있으며, 이는 사람의 눈에 글리치인 것으로 보이는 것을 야기한다.
본 기술의 양태들에 따르면, 렌더링 서비스(223)는 또한 프레임 레이트 전환 스케줄링을 제공할 수 있으며, 여기서 프레임 레이트 전환은 다음 VSYNC 시간에 발생하도록 미리 스케줄링된다. 이러한 프레임 레이트 전환 스케줄링은, 렌더링 서비스(223)와 동일한 프레임 레이트(예를 들어, 전역 프레임 레이트)로 실행되고 있는 애니메이션 소스들이 현재 프레임에서의 이전에 수신된 타이밍 보장에 의존할 수 있다는 것을 보장하는 것을 도울 수 있다(예를 들어, 위에서 논의되고 도 10에 예시된 즉각적인 전환 문제를 해결함). 렌더링 서비스(223)의 프레임 레이트(예를 들어, 전역 프레임 레이트)보다 낮은 프레임 레이트들로 실행되는 애니메이션 소스들은 전환 동안 상이한 프레임 시간들을 수신할 수 있다. 프레임 레이트 전환 스케줄링은 또한, 이전 및 이후의 위상들이 전환에서 공통 VSYNC를 초래한다는 것을 보장하는 것을 돕는다(예를 들어, 도 11a 및 도 11b에 예시된 문제를 해결함).
하나 이상의 구현예들에 따르면, 프레임 레이트 전환 스케줄링은 다음 VSYNC 시간 이전에 하나 이상의 애니메이션 소스들로부터 프레임 레이트 파라미터들에 대한 변화들을 수신하는 것, 및 다음 VSYNC 시간에 후속하여 효력을 발생할 결과적인 업데이트된 전역 프레임을 결정 및 제공하는 것을 포함할 수 있다. 도 12a 내지 도 12h는 프레임 레이트 전환 스케줄링을 이용하는 프레임 레이트 중재의 구현예를 예시한다. 도 12a 내지 도 12h의 예에서, 그 도면에서 "현재" 발생하고 있는 현재 시간(1200)은 도 12a로부터 도 12h까지 우측 진행으로 이동하는 수직선으로 표시된다.
예를 들어, 도 12a는 2개의 애니메이션들("애니메이션 1" 및 "애니메이션 2")이 240 ㎐ 하트비트를 갖는 디스플레이 상에 디스플레이되는 80 ㎐ 프레임 레이트로 애니메이션들을 제공하는 타이밍도를 예시한다. 도 12b에서, 애니메이션 1 및 애니메이션 2 둘 모두는 예상된 80 ㎐ 프레임 레이트로 디스플레이되는 다음 80 ㎐ 프레임을 제공한다. 이러한 예에서, 전역 80 ㎐ 프레임 레이트는, 80 ㎐ 최소 프레임 레이트, 120 ㎐ 최대 프레임 레이트, 및 80 ㎐ 바람직한 프레임 레이트의 애니메이션 1에 대한 프레임 레이트 파라미터들, 및 60 ㎐ 최소 프레임 레이트, 80 ㎐ 최대 프레임 레이트, 및 바람직한 프레임 레이트 없음의 애니메이션 2에 대한 프레임 레이트 파라미터들에 기초하여 (예를 들어, 프레임 레이트 중재기(800)에 의해) 결정되었다. 이러한 예에서, 애니메이션 1의 80 ㎐ 바람직한 프레임 레이트가 애니메이션 2의 60 ㎐ 최소 프레임 레이트 및 80 ㎐ 최대 프레임 레이트에 의해 정의된 범위 내에 있기 때문에, 전역 프레임 레이트는 애니메이션 1에 대한 80 ㎐ 바람직한 프레임 레이트로 설정될 수 있고, 애니메이션 1 및 애니메이션 2 둘 모두는 전역 프레임 레이트로 프레임들을 생성할 수 있다.
도 12c에 도시된 바와 같이, 애니메이션 1은 도 12b의 렌더링된 프레임에 후속하여, 그의 프레임 레이트 파라미터들을 수정하여, 바람직한 프레임 레이트를 제거하고, 최소 프레임 레이트를 60 ㎐로 그리고 최대 프레임 레이트를 80 ㎐로 감소시킬 수 있다. 이러한 예에서, 애니메이션 1 및 애니메이션 2 둘 모두의 프레임 레이트 범위들 내에 있는 최소 프레임 레이트(예를 들어, 60 ㎐)가 새로운 전역 프레임 레이트로서 결정될 수 있다. 도시된 바와 같이, 프레임 레이트 전환 스케줄링을 제공하기 위해, 60 ㎐의 업데이트된 전역 프레임 레이트로의 프레임 레이트 전환은 다음 80 ㎐ VSYNC 시간에 발생하도록 스케줄링될 수 있다. 이러한 방식으로, 다음 80 ㎐ VSYNC 시간 동안 애니메이션 1 및 애니메이션 2에 의해 이미 생성되고 있는 80 ㎐ 프레임들은, 전환이 발생하기 전에 애니메이션 소스들에 의해 예상되는 바와 같이 디스플레이될 수 있다.
도 12d 및 도 12e에 예시된 바와 같이, 전환이 다음 80 ㎐ VSYNC 시간까지 발생하지 않기 때문에, 부가적인 프레임 레이트 파라미터 업데이트들 및 연관된 전역 프레임 레이트 업데이트들은 전환이 시행되기 전에 발생할 수 있다. 도 12d의 예에서, 애니메이션 1은 120 ㎐의 새로운 바람직한 프레임 레이트를 제공하고, 최소 프레임 레이트 및 최대 프레임 레이트를 각각 80 ㎐ 및 120 ㎐로 상승시키고, 120 ㎐의 새로운 업데이트된 전역 프레임 레이트(예를 들어, 가장 높은 바람직한 프레임 레이트)가 결정된다. 도시된 바와 같이, 현재 80 ㎐ 프레임 레이트로부터 120 ㎐의 새로운 업데이트된 전역 프레임 레이트로의 전환은 다음 VSYNC 시간에서 이전의 80 ㎐-60 ㎐ 전환 대신에 스케줄링된다. 도 12e의 예에서, 80 ㎐-120 ㎐ 전환이 스케줄링된 다음 VSYNC 시간 이전에 여전히, 애니메이션 2는 그의 프레임 레이트 파라미터들을 업데이트하여, 공통 80 ㎐ 프레임 레이트를 바람직한 프레임 레이트 및 최대 프레임 레이트로서 그리고 60 ㎐ 최소 프레임 레이트를 제공한다. 이러한 예에서, 바람직한 프레임 레이트들 중 더 높은 것은 새로운 전역 프레임 레이트(예를 들어, 이러한 예에서, 여전히 120 ㎐)로서 선택될 수 있고, 80 ㎐로부터 120 ㎐로의 스케줄링된 전환은 다음 VSYNC 시간 동안 유지될 수 있다.
도 12f에 도시된 바와 같이, 애니메이션 1 및 애니메이션 2 둘 모두는 다가오는 80 ㎐ 프레임들을 제공하고, 이들을 다음 80 ㎐ VSYNC 시간에 디스플레이되게 하며, 그 VSYNC 시간으로부터 앞으로 사용될 새로운 전역 프레임 레이트를 그 시간에 통지받을 수 있다.
하나 이상의 구현예들에서, 스케줄링된 프레임 레이트 전환에 대한 프레임 레이트 전환 타임스탬프는 (예를 들어, 판독 전용 공유 메모리를 통해) 업데이트된 전역 프레임 레이트와 함께 하나 이상의 애니메이션 소스들과 공유될 수 있다. 애니메이션이 프레임 레이트 전환 타임스탬프를 획득할 때, 애니메이션은 전환 타임스탬프에 기초하여 그리고 애니메이션 소스의 동작들에 의존하여, 기존의 전역 프레임 간격 또는 다가오는 업데이트된 전역 프레임 간격을 선택적으로 사용할 수 있다. 이러한 방식으로, 본 기술의 양태들은 프레임 레이트 전환 이전 및 그 이후 둘 모두에서 모든 애니메이션 소스들에 대해 타이밍 계산들이 잘 정의되게 허용한다.
예를 들어, 도 12g 및 도 12h에 도시된 바와 같이, 애니메이션 1은 120 ㎐의 새로운 전역 프레임 레이트로 프레임들을 생성하고, 프레임들을 120 ㎐의 전역 프레임 레이트로 디스플레이되게 할 수 있고, (예를 들어, 120 ㎐의 전역 프레임 레이트가 애니메이션 2의 프레임 레이트 범위 밖에 있기 때문에), 애니메이션 2는 하나 걸러 하나의 120 ㎐ VSYNC 시간마다의 디스플레이를 위해 60 ㎐의 호환가능 프레임 레이트로 프레임들을 생성할 수 있다. 도시된 바와 같이, 본 명세서에 설명된 프레임 레이트 중재 동작들은 다양한 시간들에서, 240 ㎐ 하트비트를 갖는 디스플레이가 네이티브 리프레시 레이트의 짝수-콴타 프레임 레이트들 및 네이티브 리프레시 레이트의 홀수-콴타 프레임 레이트들인 프레임 레이트들을 지원하게 허용할 수 있다.
이러한 방식으로, 렌더링 서비스(223) 및 프레임 레이트 중재기(800)는 디스플레이 시스템 내에서의 다수의 동시 애니메이션들을 위한 프레임 레이트들의 호환성을 제공하고 프레임 레이트 전환 경계들에서 발생할 수 있는 글리치들을 감소 및/또는 제거하는 프레임 레이트 중재 동작들을 제공할 수 있다.
도 12a 내지 도 12h의 예는 2개의 애니메이션들, 즉 애니메이션 1 및 애니메이션 2와 관련하여 설명된다. 또한, 다른 예들에서, 도 12a 내지 도 12h와 관련하여 설명된 바와 같이, 하나 이상의 부가적인 애니메이션들은 프레임 레이트 파라미터들을 제공하고, 업데이트된 전역 프레임 레이트들을 수신하여 그것으로 조정할 수 있다는 것이 인식된다. 또한, 하나 이상의 구현예들에서, 하나 이상의 입력 소스들은 또한 프레임 레이트 파라미터들을 프레임 레이트 중재기(800)에 제공할 수 있다는 것이 인식된다. 예를 들어, 입력 소스들, 예컨대 스타일러스, 터치 표면 또는 터치 스크린의 터치 감응형 전극들의 어레이, 마우스, 포인터, 키보드, 카메라 등은 프레임 레이트로 입력 이벤트들을 획득할 수 있다. 일부 사용 경우들에서, 입력 소스들에 의해 수신된 입력들은 디스플레이된 콘텐츠와 연관된 입력들일 수 있다. 따라서, 입력 이벤트들을 디스플레이된 콘텐츠와 동기화하고 그리고/또는 다른 방식으로 조정하는 것이 바람직할 수 있다. 하나 이상의 구현예들에서, 입력 소스는 바람직한, 최소, 및/또는 최대 프레임 레이트들과 같은 프레임 레이트 파라미터들을 프레임 레이트 중재기(800)에 제공할 수 있고, 프레임 레이트 중재기(800)는 애니메이션 소스들과 관련하여 본 명세서에 설명된 바와 같이, 프레임 레이트 중재 프로세스에서 입력 소스로부터 수신된 프레임 레이트 파라미터들을 포함할 수 있다. 전자 디바이스(105)의 프레임 레이트 중재기 및/또는 다른 프로세스는 프레임 레이트 중재 프로세스로부터 기인되는 전역 프레임 레이트를 입력 소스에 제공할 수 있다. 이어서, 하나 이상의 구현예들에서, 입력 소스는 입력 이벤트 프레임 레이트를 전역 프레임 레이트와 호환가능 프레임 레이트로 조정할 수 있다. 하나 이상의 구현예들에서, 예컨대, 입력 소스가 전역 프레임 레이트만큼 높은 프레임 레이트로 입력 이벤트들을 생성할 수 없을 때 또는 전역 프레임 레이트가, 입력 소스가 입력 이벤트들을 생성하는 프레임 레이트의 홀수-콴타 인수일 때, 입력 소스 또는 전자 디바이스(105)는 디스플레이 프레임들이 생성되고 그리고/또는 디스플레이되는 각각의 프레임에 대한 추정된 입력 이벤트들을 생성하기 위해 입력 이벤트들 사이를 보간할 수 있다. 예를 들어, 입력 소스는 추정된(보간된) 입력 이벤트들을 생성하고 추정된 입력 이벤트들을 전자 디바이스(105)에 제공할 수 있거나, 또는 전자 디바이스(105)는 입력 소스로부터의 수신된 입력 이벤트들의 보간을 수행하고 전자 디바이스(105)에서, 추정된 입력 이벤트들을 생성할 수 있다.
도 13은 본 기술의 양태들에 따른, 디스플레이 프레임 레이트 중재를 수행하기 위한 예시적인 프로세스의 흐름도를 예시한다. 설명의 목적들을 위해, 프로세스(1300)는 본 명세서에서 도 1 및 도 8의 전자 디바이스(105)를 참조하여 주로 설명된다. 그러나, 프로세스(1300)는 도 1 및 도 8의 전자 디바이스(105)로 제한되지 않으며, 프로세스(1300)의 하나 이상의 블록들(또는 동작들)은 하나 이상의 다른 적합한 디바이스들에 의해 수행될 수 있다. 프로세스(1300)의 블록들은 본 명세서에서 직렬로 또는 선형적으로 발생하는 것으로 설명된다. 그러나, 프로세스(1300)의 다수의 블록들은 병렬로 발생할 수 있다. 부가적으로, 프로세스(1300)의 블록들은 도시된 순서로 수행될 필요가 없고 그리고/또는 프로세스(1300)의 하나 이상의 블록들이 수행될 필요가 없고 그리고/또는 다른 동작들에 의해 대체될 수 있다.
도 13의 예에서, 블록(1302)에서, 프로세스(1300)는 제1 애니메이션 소스에 대한 적어도 제1 프레임 레이트 파라미터들을 (예를 들어, 전자 디바이스, 예컨대 전자 디바이스(104), 전자 디바이스(105), 전자 디바이스(110), 전자 디바이스(115), 또는 다른 전자 디바이스, 컴포넌트, 또는 시스템에 의해) 기록하는 것을 포함한다. 제1 프레임 레이트 파라미터들은 제1 애니메이션 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트 중 적어도 하나를 포함할 수 있다. 예를 들어, 제1 프레임 레이트 파라미터들은 본 명세서에 설명된 바와 같이, 프레임 레이트 중재기(800)와 같은 전자 디바이스의 프레임 레이트 중재기에 의해 기록될 수 있다.
하나 이상의 구현예들에서, 제1 애니메이션 소스는 스크롤링 애니메이션 소스를 포함하며, 스크롤링 애니메이션 소스는, 사용자 스크롤링 입력을 수신하고; 제1 프레임 레이트 파라미터들을 획득하기 위해 사용자 스크롤링 입력을 모델(예를 들어, 인간 인지 모델)에 적용함으로써 제1 프레임 레이트 파라미터들을 결정한다. 스크롤링 애니메이션 소스는, 예컨대 (예를 들어, 손가락 또는 스타일러스를 사용하여 터치 감응형 표면 또는 터치 감응형 디스플레이로의 터치 입력을 통한) 사용자로부터의 스와이프 또는 다른 스크롤링-표시자 입력에 응답하여, 디스플레이를 위해 스크롤링 콘텐츠를 애니메이션화하는 시스템 프로세스 또는 애플리케이션 프로세스일 수 있다.
하나 이상의 구현예들에서, 제1 애니메이션 소스는 일반적인(예를 들어, 비-스크롤링) 애니메이션 소스를 포함하며, 일반적인 애니메이션 소스는, 일반적인 애니메이션 소스가 프레임들을 생성할 수 있는 적어도 최대 레이트를 결정함으로써 제1 프레임 레이트 파라미터들을 결정한다. 예들로서, 일반적인 애니메이션 소스는 도 3의 예에서와 같이 배터리 표시자, 신호 강도 표시자, 프로세스 표시자, 또는 버튼 기능 표시자들일 수 있다.
블록(1304)에서, 프로세스(1300)는 기록된 프레임 레이트 파라미터들에 기초하여 전역 프레임 레이트를 결정하는 것을 포함하며, 기록된 프레임 레이트 파라미터들은 적어도 제1 프레임 레이트 파라미터들을 포함한다. 하나 이상의 구현예들에서, 기록된 프레임 레이트 파라미터들은 제1 프레임 레이트 파라미터들, 및 제1 애니메이션 소스와의 동시 디스플레이를 위한 제2 애니메이션 소스에 대한 제2 프레임 레이트 파라미터들을 포함한다. 하나 이상의 구현예들에서, 제1 프레임 레이트 파라미터들은 제1 애니메이션 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트를 포함할 수 있고, 제2 프레임 레이트 파라미터들은 제2 애니메이션 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트를 포함할 수 있다.
블록(1306)에서, 프로세스(1300)는 (예를 들어, 도 8과 관련하여 위에서 설명된 바와 같이) 결정된 전역 프레임 레이트를 적어도 제1 애니메이션 소스에게 통지하는 것을 포함한다. 하나 이상의 구현예들에서, (예를 들어, 도 12e와 관련하여 위에서 논의된 바와 같이) 전역 프레임 레이트를 결정하는 것은, 제1 애니메이션 소스에 대한 바람직한 프레임 레이트 및 제2 애니메이션 소스에 대한 바람직한 프레임 레이트 중 더 높은 레이트로 전역 프레임 레이트를 설정하는 것을 포함한다. 하나 이상의 구현예들에서, (예를 들어, 도 12c와 관련하여 위에서 논의된 바와 같이) 전역 프레임 레이트를 결정하는 것은, 제1 애니메이션 소스에 대한 최소 프레임 레이트 및 제2 애니메이션 소스에 대한 최소 프레임 레이트 중 더 높은 레이트로 전역 프레임 레이트를 설정하는 것을 포함한다.
하나 이상의 구현예들에서, 프로세스(1300)는 또한, (예를 들어, 도 12c와 관련하여 위에서 논의된 바와 같이) 전역 프레임 레이트를 결정한 이후, 제2 프레임 레이트 파라미터들로부터 바람직한 프레임 레이트를 제거하기 위해 제2 프레임 레이트 파라미터들에 대한 업데이트를 수신하는 것; 및 업데이트에 응답하여 전역 프레임 레이트를 수정하는 것을 포함할 수 있다. 하나 이상의 구현예들에서, 제2 애니메이션 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트는 공통 프레임 레이트이며, 전역 프레임 레이트를 결정하는 것은 전역 프레임 레이트를 공통 프레임 레이트로 설정하는 것을 포함한다.
하나 이상의 구현예들에서, 프로세스(1300)는 또한, 전역 프레임 레이트를 제2 애니메이션 소스에게 통지하는 것을 포함할 수 있다. 하나 이상의 구현예들에서, 프로세스(1300)는 또한, 전역 프레임 레이트로 디스플레이를 동작시키는 것을 포함할 수 있다. 하나 이상의 다른 구현예들에서, 디스플레이는 전역 프레임 레이트 이외의 프레임 레이트로 동작될 수 있다(예를 들어, 디스플레이는 하드웨어 및/또는 다른 디스플레이 설정들, 조건들, 및/또는 콘텐츠로 인해 전역 프레임 레이트를 오버라이드(override)할 수 있다). 하나 이상의 구현예들에서, 프로세스(1300)는 또한, (예를 들어, 도 12g 및 도 12h와 관련하여 위에서 논의된 바와 같이) 전역 프레임 레이트에서 제1 애니메이션 소스로부터 프레임들을 수신하는 것; 및 전역 프레임 레이트와 상이하고 전역 프레임 레이트의 인수인 프레임 레이트에서 제2 애니메이션 소스로부터 프레임들을 수신하는 것을 포함할 수 있다.
본 명세서에서 논의된 바와 같이, 프레임 레이트 중재 동작들은 또한 입력 소스에 대한(예를 들어, 터치 스크린 또는 다른 터치 감응형 표면의 터치 감응형 요소들에 대한, 스타일러스, 마우스, 키보드, 카메라, 또는 임의의 다른 입력 소스로부터의 입력 신호들에 대한) 프레임 레이트 파라미터들을 중재하는 것을 포함할 수 있다. 예를 들어, 프로세스(1300)는 또한, 제1 입력 소스에 대한 적어도 제2 프레임 레이트 파라미터들을 기록하는 것을 포함할 수 있다. 제2 프레임 레이트 파라미터들은 제1 입력 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트 중 적어도 하나를 포함한다. 하나 이상의 구현예들에서, 프로세스(1300)는 또한, 결정된 전역 프레임 레이트를 적어도 제1 입력 소스에게 통지하는 것을 포함할 수 있다.
하나 이상의 구현예들에서, 프로세스(1300)는 또한, 결정된 전역 프레임 레이트에 기초하여 제1 입력 소스에 대한 입력 이벤트들을 보간하는 것을 포함할 수 있다. 예를 들어, 입력 소스는 (일 예로서) 120 ㎐와 같은 입력 프레임 레이트에서 입력 프레임들(예를 들어, 터치 입력들)을 수신할 수 있다. 하나 이상의 구현예들에서, 입력 프레임 레이트는 애니메이션에 대한 현재 전역 프레임 레이트와 그리고/또는 디스플레이의 현재 리프레시 레이트와 정렬되지 않을 수 있다. 예를 들어, 가변 리프레시 레이트 및 120 ㎐의 최대 리프레시 레이트를 갖는 디스플레이의 경우, 그리고 120 ㎐의 입력 프레임 레이트에서 입력 이벤트들을 제공하는 입력 소스의 예에서, 전역 프레임 레이트가 80 ㎐와 같은 홀수-콴타 프레임 레이트로 설정되면, 전자 디바이스(105) 또는 입력 디바이스는 각각의 80 ㎐ 디스플레이 프레임에 대한 추정된(보간된) 터치 입력 이벤트들을 생성하기 위해 일부 120 ㎐ 터치 입력 이벤트들 사이를 보간할 수 있다. 다른 예로서, 240 ㎐의 리프레시 레이트로 동작하는 디스플레이의 경우 그리고 120 ㎐의 입력 프레임 레이트에서 입력 이벤트들을 제공하는 입력 소스의 예에서, 전자 디바이스는 디스플레이의 240 ㎐의 현재 리프레시 레이트와 매칭되는 240 ㎐ 프레임 레이트로, 보간된 입력 이벤트들을 생성하기 위해 120 ㎐ 터치 입력 이벤트들 사이를 보간할 수 있다.
하나 이상의 구현예들에서, (예를 들어, 도 9와 관련하여 위에서 설명된 바와 같이) 기록된 프레임 레이트 파라미터들은 제1 프레임 레이트 파라미터들 및 제2 프레임 레이트 파라미터들 및 제3 프레임 레이트 파라미터들을 포함할 수 있으며, 제2 프레임 레이트 파라미터들 및 제3 프레임 레이트 파라미터들은 각각 제2 애니메이션 소스의 단일 계층 트리 내의 개개의 애니메이션에 대응한다.
도 14는 하나 이상의 구현예들에 따른, 본 기술의 양태들이 구현될 수 있는 예시적인 컴퓨팅 디바이스를 예시한다. 컴퓨팅 디바이스(1400)는, 랩톱 컴퓨터, 스마트폰, 태블릿 디바이스, 웨어러블 디바이스, 예컨대 고글 또는 안경 등을 포함하지만 이에 제한되지 않는, 위에서 설명된 특징들 및 프로세스들을 생성하기 위한 임의의 컴퓨팅 디바이스 또는 서버일 수 있고 그리고/또는 이들의 일부일 수 있다. 컴퓨팅 디바이스(1400)는 다양한 유형들의 컴퓨터 판독가능 매체들 및 다양한 다른 유형들의 컴퓨터 판독가능 매체들을 위한 인터페이스들을 포함할 수 있다. 컴퓨팅 디바이스(1400)는 영구 저장 디바이스(1402), 시스템 메모리(1404)(및/또는 버퍼), 입력 디바이스 인터페이스(1406), 출력 디바이스 인터페이스(1408), 버스(1410), ROM(1412), 하나 이상의 프로세싱 유닛(들)(1414), 하나 이상의 네트워크 인터페이스(들)(1416), 및/또는 이들의 서브세트들 및 변형들을 포함한다.
버스(1410)는 컴퓨팅 디바이스(1400)의 다수의 내부 디바이스들을 통신가능하게 연결시키는 모든 시스템, 주변기기, 및 칩셋 버스들을 총괄하여 표현한다. 하나 이상의 구현예들에서, 버스(1410)는 하나 이상의 프로세싱 유닛(들)(1414)을 ROM(1412), 시스템 메모리(1404), 및 영구 저장 디바이스(1402)와 통신가능하게 연결시킨다. 이러한 다양한 메모리 유닛들로부터, 하나 이상의 프로세싱 유닛(들)(1414)은 본 개시내용의 프로세스들을 실행하기 위해 실행할 명령어들 및 프로세싱할 데이터를 검색한다. 하나 이상의 프로세싱 유닛(들)(1414)은 상이한 구현예들에서 단일 프로세서 또는 멀티-코어 프로세서일 수 있다.
ROM(1412)은 하나 이상의 프로세싱 유닛(들)(1414) 및 컴퓨팅 디바이스(1400)의 다른 모듈들에 의해 필요한 정적 데이터 및 명령어들을 저장한다. 반면에, 영구 저장 디바이스(1402)는 판독-및 기입 메모리 디바이스일 수 있다. 영구 저장 디바이스(1402)는 컴퓨팅 디바이스(1400)가 오프일 때도 명령어들 및 데이터를 저장하는 비휘발성 메모리 유닛일 수 있다. 하나 이상의 구현예들에서, 영구 저장 디바이스(1402)로서 (자기 또는 광 디스크 및 그의 대응하는 디스크 드라이브와 같은) 대용량 저장 디바이스가 사용될 수 있다.
하나 이상의 구현예들에서, 영구 저장 디바이스(1402)로서 (플로피 디스크, 플래시 드라이브, 및 그의 대응하는 디스크 드라이브와 같은) 제거가능한 저장 디바이스가 사용될 수 있다. 영구 저장 디바이스(1402)와 같이, 시스템 메모리(1404)는 판독- 및-기입 메모리 디바이스일 수 있다. 그러나, 영구 저장 디바이스(1402)와 달리, 시스템 메모리(1404)는 랜덤 액세스 메모리와 같은 휘발성 판독-및-기입 메모리일 수 있다. 시스템 메모리(1404)는 하나 이상의 프로세싱 유닛(들)(1414)이 런타임 시에 필요로 할 수 있는 명령어들 및 데이터 중 임의의 것을 저장할 수 있다. 하나 이상의 구현예들에서, 본 개시내용의 프로세스들은 시스템 메모리(1404), 영구 저장 디바이스(1402), 및/또는 ROM(1412)에 저장된다. 이러한 다양한 메모리 유닛들로부터, 하나 이상의 프로세싱 유닛(들)(1414)은 하나 이상의 구현예들의 프로세스들을 실행하기 위해 실행할 명령어들 및 프로세싱할 데이터를 검색한다.
버스(1410)는 또한 입력 및 출력 디바이스 인터페이스들(1406, 1408)에 연결된다. 입력 디바이스 인터페이스(1406)는 사용자가 컴퓨팅 디바이스(1400)로 정보를 통신하게 하고 그에 대한 커맨드들을 선택할 수 있게 한다. 입력 디바이스 인터페이스(1406)와 함께 사용될 수 있는 입력 디바이스들은, 예를 들어, 영숫자 키보드들 및 포인팅 디바이스들("커서 제어 디바이스들"로 또한 지칭됨)을 포함할 수 있다. 출력 디바이스 인터페이스(1408)는, 예를 들어 컴퓨팅 디바이스(1400)에 의해 생성된 이미지들의 디스플레이를 가능하게 할 수 있다. 출력 디바이스 인터페이스(1408)와 함께 사용될 수 있는 출력 디바이스들은, 예를 들어 프린터들 및 디스플레이 디바이스들, 예컨대 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 가요성 디스플레이, 평판 디스플레이, 솔리드 스테이트 디스플레이, 프로젝터, 또는 정보를 출력하기 위한 임의의 다른 디바이스를 포함할 수 있다.
하나 이상의 구현예들은 터치스크린과 같은, 입력 및 출력 디바이스들 둘 모두로서 기능하는 디바이스들을 포함할 수 있다. 이들 구현예들에서, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백과 같은 임의의 형태의 감각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성, 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다.
마지막으로, 도 14에 도시된 바와 같이, 버스(1410)는 또한 컴퓨팅 디바이스(1400)를 하나 이상의 네트워크 인터페이스(들)(1416)를 통해, 하나 이상의 네트워크들 및/또는 하나 이상의 네트워크 노드들에 커플링시킨다. 이러한 방식으로, 컴퓨팅 디바이스(1400)는 컴퓨터들의 네트워크(예컨대, LAN, 광역 네트워크("WAN"), 또는 인트라넷, 또는 네트워크들의 네트워크, 예컨대 인터넷의 일부일 수 있다. 컴퓨팅 디바이스(1400)의 임의의 또는 모든 컴포넌트들은 본 개시내용과 함께 사용될 수 있다.
본 개시내용의 범주 내의 구현예들은 하나 이상의 명령어들을 인코딩하는 유형의(tangible) 컴퓨터-판독가능 저장 매체(또는 하나 이상의 유형들의 다수의 유형의 컴퓨터-판독가능 저장 매체들)를 사용하여 부분적으로 또는 전체적으로 실현될 수 있다. 유형의 컴퓨터-판독가능 저장 매체는 또한 사실상 비-일시적일 수 있다.
컴퓨터-판독가능 저장 매체는 명령어들을 실행할 수 있는 임의의 프로세싱 전자기기 및/또는 프로세싱 회로부를 포함하는 범용 또는 특수 목적 컴퓨팅 디바이스에 의해 판독, 기입, 또는 달리 액세스될 수 있는 임의의 저장 매체일 수 있다. 예를 들어, 제한 없이, 컴퓨터 판독가능 매체는 RAM, DRAM, SRAM, T-RAM, Z-RAM, 및 TTRAM과 같은 임의의 휘발성 반도체 메모리를 포함할 수 있다. 컴퓨터-판독가능 매체는 또한 ROM, PROM, EPROM, EEPROM, NVRAM, 플래시, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, 레이스트랙(racetrack) 메모리, FJG, 및 밀리피드(Millipede) 메모리와 같은 임의의 비휘발성 반도체 메모리를 포함할 수 있다.
추가로, 컴퓨터 판독가능 저장 매체는 임의의 비-반도체 메모리, 예컨대 광 디스크 저장소, 자기 디스크 저장소, 자기 테이프, 다른 자기 저장 디바이스들, 또는 하나 이상의 명령어들을 저장할 수 있는 임의의 다른 매체를 포함할 수 있다. 하나 이상의 구현예들에서, 유형의 컴퓨터 판독가능 저장 매체는 컴퓨팅 디바이스에 직접 커플링될 수 있는 반면, 다른 구현예들에서, 유형의 컴퓨터 판독가능 저장 매체는 컴퓨팅 디바이스에, 예를 들어, 하나 이상의 유선 연결부들, 하나 이상의 무선 연결부들, 또는 이들의 임의의 조합을 통해, 간접적으로 커플링될 수 있다.
명령어들은 직접 실행가능할 수 있거나 또는 실행가능 명령어들을 개발하는 데 사용될 수 있다. 예를 들어, 명령어들은 실행가능 또는 비-실행가능 기계 코드로서, 또는 실행가능 또는 비-실행가능 기계 코드를 생성하도록 컴파일링될 수 있는 고레벨 언어에서의 명령어들로서 실현될 수 있다. 추가로, 명령어들은 또한 데이터로서 실현될 수 있거나 데이터를 포함할 수 있다. 컴퓨터 실행가능 명령어들은 또한 루틴들, 서브루틴들, 프로그램들, 데이터 구조들, 객체들, 모듈들, 애플리케이션들, 애플릿들, 함수들 등을 포함하는 임의의 포맷으로 조직화될 수 있다. 당업자에 의해 인식되는 바와 같이, 명령어들의 수, 구조, 시퀀스, 및 조직화를 포함하지만 이에 제한되지 않는 세부사항들은 기초가 되는 로직, 함수, 프로세싱, 및 출력을 변경하지 않으면서 현저하게 변경될 수 있다.
위의 논의는 소프트웨어를 실행시키는 마이크로프로세서 또는 멀티-코어 프로세서들을 주로 언급하지만, 하나 이상의 구현예들은 ASIC들 또는 FPGA들과 같은 하나 이상의 집적 회로들에 의해 수행된다. 하나 이상의 구현예들에서, 그러한 집적 회로들은 회로 자체 상에 저장된 명령어들을 실행시킨다.
당업자는 본 명세서에 설명된 다양한 예시적인 블록들, 모듈들, 요소들, 컴포넌트들, 방법들, 및 알고리즘들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 둘 모두의 조합들로서 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 호환성을 예시하기 위해, 다양한 예시적인 블록들, 모듈들, 요소들, 컴포넌트들, 방법들, 및 알고리즘들이 일반적으로 그들의 기능성에 관하여 위에서 설명되었다. 그러한 기능성이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 전체 시스템에 부과되는 특정 애플리케이션 및 설계 제약들에 의존한다. 당업자는 설명된 기능성을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있다. 다양한 컴포넌트들 및 블록들이 모두 본 기술의 범주로부터 벗어남이 없이 상이하게 배열될 수 있다(예를 들어, 상이한 순서로 배열되거나 상이한 방식으로 분할됨).
개시된 프로세스들에서 블록들의 임의의 특정한 순서 또는 계층이 예시적인 접근법들의 예시임이 이해된다. 설계 선호도들에 기초하여, 프로세스들에서 블록들의 특정한 순서 또는 계층이 재배열될 수 있거나, 또는 모든 예시된 블록들이 수행될 수 있는 것이 이해된다. 블록들 중 임의의 것들이 동시에 수행될 수 있다. 하나 이상의 구현예들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 게다가, 위에서 설명된 구현예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 구현예들에서 그러한 분리를 요구하는 것으로 이해되지 않아야 하며, 설명된 프로그램 컴포넌트들(예를 들어, 컴퓨터 프로그램 제품들) 및 시스템들은 일반적으로 단일 소프트웨어 제품 내에 함께 통합되거나 다수의 소프트웨어 제품 내에 패키징될 수 있다는 것이 이해되어야 한다.
본 명세서 및 본 출원의 임의의 청구항들에서 사용된 바와 같이, 용어들 "기지국", "수신기", "컴퓨터", "서버", "프로세서", 및 "메모리" 모두는 전자 또는 다른 기술적인 디바이스들을 지칭한다. 이러한 용어들은 사람들 또는 사람들의 그룹들을 배제한다. 본 명세서의 목적들을 위해, 용어들 "디스플레이" 또는 "디스플레이하는"은 전자 디바이스 상에서 디스플레이하는 것을 의미한다.
본 명세서에서 사용되는 바와 같이, 항목들 중 임의의 것을 구분하기 위해 용어 "및" 또는 "또는"을 갖는 일련의 항목들 뒤에 오는 어구 "중 적어도 하나"는 리스트의 각각의 멤버(즉, 각각의 항목)보다는 리스트를 전체적으로 수식한다. 어구 "중 적어도 하나"는 열거된 각각의 아이템 중 적어도 하나의 선택을 요구하지 않고, 오히려, 이 어구는 항목들 중 임의의 것 중 적어도 하나, 및/또는 항목들의 임의의 조합 중 적어도 하나, 및/또는 항목들 각각 중 적어도 하나를 포함하는 의미를 허용한다. 예시의 방식으로, 어구 "A, B 및 C 중 적어도 하나" 또는 어구 "A, B 또는 C 중 적어도 하나" 각각은 오직 A, 오직 B 또는 오직 C; A, B, 및 C의 임의의 조합; 및/또는 A, B, 및 C 각각 중 적어도 하나를 지칭한다.
서술 문구들 "~ 하도록 구성되는", "~ 하도록 동작가능한", 및 "~ 하도록 프로그래밍된"은 대상의 임의의 특정한 유형의 또는 비유형의 변형을 암시하지 않고, 오히려 상호교환가능하게 사용되도록 의도된다. 하나 이상의 구현예들에서, 동작 또는 컴포넌트를 모니터링 및 제어하도록 구성된 프로세서는 또한 동작을 모니터링 및 제어하도록 프로그래밍되는 프로세서, 또는 동작을 모니터링 및 제어하도록 동작가능한 프로세서를 의미할 수 있다. 마찬가지로, 코드를 실행하도록 구성된 프로세서는 코드를 실행하도록 프로그래밍되거나 코드를 실행하도록 동작가능한 프로세서로서 해석될 수 있다.
일 양태, 양태, 다른 양태, 일부 양태들, 하나 이상의 양태들, 일 구현예, 구현예, 다른 구현예, 일부 구현예들, 하나 이상의 구현예들, 일 실시예, 실시예, 다른 실시예, 일부 구현예들, 하나 이상의 구현예들, 일 구성, 구성, 다른 구성, 일부 구성들, 하나 이상의 구성들, 본 기술, 개시내용, 본 개시내용, 이들의 다른 변형들 등과 같은 어구들은 편의를 위한 것이며, 이러한 어구(들)와 관련된 개시내용이 본 기술에 필수적인 것이라거나 그러한 개시내용이 본 기술의 모든 구성들에 적용되는 것을 의미하지는 않는다. 그러한 어구(들)에 관련된 개시내용은 모든 구성들 또는 하나 이상의 구성들에 적용될 수 있다. 그러한 어구(들)에 관련된 개시내용은 하나 이상의 예들을 제공할 수 있다. 일 양태 또는 일부 양태들과 같은 어구는 하나 이상의 양태들을 지칭할 수 있고 그 반대도 마찬가지이며, 이는 다른 전술한 어구들에 유사하게 적용된다.
본 명세서에서 단어 "예시적인"은 "일 예, 예시, 또는 예증의 역할을 하는 것"을 의미하기 위해 사용된다. 본 명세서에서 "예시적인" 또는 "일 예"로서 설명된 임의의 실시예는 반드시 다른 구현예들에 비해 바람직하거나 유리한 것으로 해석되어야 하는 것은 아니다. 더욱이, 용어 "포함한다", "갖는다" 등이 상세한 설명 또는 청구항에 사용되는 범위까지, 그러한 용어는, 청구항에서 "포함하다"가 전이 어구로서 이용되는 경우 해석되는 바와 같이, 용어 "포함하다"와 유사한 방식으로 포괄적으로 의도된다.
본 기술 분야의 통상의 기술자에게 알려져 있거나 추후에 알려지게 될 본 개시내용 전반에 걸쳐 설명된 다양한 양태들의 요소들에 대한 모든 구조적 및 기능적 등가물들은 참조에 의해 본 명세서에 명시적으로 포함되며 청구항들에 의해 포괄되는 것으로 의도된다. 게다가, 본 명세서에 개시된 어떠한 것도 그러한 개시내용이 청구항들에 명시적으로 언급되었는지 여부에 관계없이 대중에게 전용되도록 의도되는 것은 아니다. 어떠한 청구항 구성요소도, 그 구성요소가 "수단"이라는 문구를 사용하여 명시적으로 인용되지 않는 한, 또는 방법 청구항의 경우 구성요소가 "단계"라는 문구를 사용하여 인용되지 않는 한, 35 U.S.C.§112(f)의 규정 하에서 해석되어서는 안된다.
이전의 설명은 당업자가 본 명세서에 설명된 다양한 양태들을 실시할 수 있게 하기 위해 제공된다. 이러한 양태들에 대한 다양한 변형들은 당업자들에게 용이하게 명백할 것이며, 본 명세서에 정의된 일반적인 원리들은 다른 양태들에 적용될 수 있다. 따라서, 청구항은 본 명세서에 도시된 양태들로 제한되는 것으로 의도되는 것이 아니라, 언어 청구항에 부합하는 전체 범주로 허용되어야 하며, 여기서 단수의 구성요소에 대한 언급은 구체적으로 그와 같이 언급되지 않는 한 "오직 하나만"을 의미하도록 의도되는 것이 아니고, 오히려 "하나 이상"을 의미하는 것으로 의도된다. 달리 구체적으로 언급되지 않는 한, "일부"라는 용어는 하나 이상을 지칭한다. 남성 대명사(예를 들어, 그의)는 여성 및 중성(예를 들어, 그녀의 및 그것의)을 포함하고, 그 반대의 경우도 마찬가지이다. 표제들 및 부제목들은, 존재한다면, 오직 편의를 위해서만 사용되며 본 개시내용을 제한하지 않는다.

Claims (20)

  1. 방법으로서,
    제1 애니메이션 소스(animation source)에 대한 적어도 제1 프레임 레이트 파라미터들을 기록하는 단계 - 상기 제1 프레임 레이트 파라미터들은 상기 제1 애니메이션 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트 중 적어도 하나를 포함함 -;
    기록된 프레임 레이트 파라미터들에 기초하여 전역 프레임 레이트(global frame rate)를 결정하는 단계 - 상기 기록된 프레임 레이트 파라미터들은 적어도 상기 제1 프레임 레이트 파라미터들을 포함함 -; 및
    상기 결정된 전역 프레임 레이트를 적어도 상기 제1 애니메이션 소스에게 통지하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 애니메이션 소스는 스크롤링 애니메이션 소스를 포함하며,
    상기 스크롤링 애니메이션 소스는,
    사용자 스크롤링 입력을 수신하고;
    상기 제1 프레임 레이트 파라미터들을 획득하기 위해 상기 사용자 스크롤링 입력을 모델에 적용함으로써
    상기 제1 프레임 레이트 파라미터들을 결정하는, 방법.
  3. 제1항에 있어서,
    상기 제1 애니메이션 소스는 일반적인 애니메이션 소스를 포함하며,
    상기 일반적인 애니메이션 소스는, 상기 일반적인 애니메이션 소스가 프레임들을 생성할 수 있는 적어도 최대 레이트를 결정함으로써 상기 제1 프레임 레이트 파라미터들을 결정하는, 방법.
  4. 제1항에 있어서,
    상기 기록된 프레임 레이트 파라미터들은 상기 제1 프레임 레이트 파라미터들, 및 상기 제1 애니메이션 소스와의 동시 디스플레이를 위한 제2 애니메이션 소스에 대한 제2 프레임 레이트 파라미터들을 포함하는, 방법.
  5. 제4항에 있어서,
    상기 제1 프레임 레이트 파라미터들은 상기 제1 애니메이션 소스에 대한 상기 최소 프레임 레이트, 상기 최대 프레임 레이트, 및 상기 바람직한 프레임 레이트를 포함하고, 상기 제2 프레임 레이트 파라미터들은 상기 제2 애니메이션 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 전역 프레임 레이트를 결정하는 단계는, 상기 제1 애니메이션 소스에 대한 상기 바람직한 프레임 레이트 및 상기 제2 애니메이션 소스에 대한 상기 바람직한 프레임 레이트 중 더 높은 레이트로 상기 전역 프레임 레이트를 설정하는 단계를 포함하는, 방법.
  7. 제5항에 있어서,
    상기 전역 프레임 레이트를 결정하는 단계는, 상기 제1 애니메이션 소스에 대한 상기 최소 프레임 레이트 및 상기 제2 애니메이션 소스에 대한 상기 최소 프레임 레이트 중 더 높은 레이트로 상기 전역 프레임 레이트를 설정하는 단계를 포함하는, 방법.
  8. 제5항에 있어서,
    상기 전역 프레임 레이트를 결정한 이후,
    상기 제2 프레임 레이트 파라미터들로부터 상기 바람직한 프레임 레이트를 제거하기 위해 상기 제2 프레임 레이트 파라미터들에 대한 업데이트를 수신하는 단계; 및
    상기 업데이트에 응답하여 상기 전역 프레임 레이트를 수정하는 단계를 더 포함하는, 방법.
  9. 제5항에 있어서,
    상기 제2 애니메이션 소스에 대한 상기 최대 프레임 레이트 및 상기 바람직한 프레임 레이트는 공통 프레임 레이트이며,
    상기 전역 프레임 레이트를 결정하는 단계는 상기 전역 프레임 레이트를 상기 공통 프레임 레이트로 설정하는 단계를 포함하는, 방법.
  10. 제4항에 있어서,
    상기 전역 프레임 레이트를 상기 제2 애니메이션 소스에게 통지하는 단계; 및
    상기 전역 프레임 레이트에 대응하는 리프레시 레이트(refresh rate)로 디스플레이를 동작시키는 단계를 더 포함하는, 방법.
  11. 제10항에 있어서,
    상기 전역 프레임 레이트에서 상기 제1 애니메이션 소스로부터 프레임들을 수신하는 단계; 및
    상기 전역 프레임 레이트와 상이하고 상기 전역 프레임 레이트의 인수(factor)인 프레임 레이트에서 상기 제2 애니메이션 소스로부터 프레임들을 수신하는 단계를 더 포함하는, 방법.
  12. 제1항에 있어서,
    제1 입력 소스에 대한 적어도 제2 프레임 레이트 파라미터들을 기록하는 단계를 더 포함하며,
    상기 제2 프레임 레이트 파라미터들은 상기 제1 입력 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트 중 적어도 하나를 포함하는, 방법.
  13. 제12항에 있어서,
    상기 결정된 전역 프레임 레이트를 적어도 상기 제1 입력 소스에게 통지하는 단계를 더 포함하는, 방법.
  14. 제13항에 있어서,
    상기 결정된 전역 프레임 레이트에 기초하여 상기 제1 입력 소스에 대한 입력 이벤트들을 보간하는 단계를 더 포함하는, 방법.
  15. 제1항에 있어서,
    상기 기록된 프레임 레이트 파라미터들은 상기 제1 프레임 레이트 파라미터들 및 제2 프레임 레이트 파라미터들 및 제3 프레임 레이트 파라미터들을 포함하며,
    상기 제2 프레임 레이트 파라미터들 및 상기 제3 프레임 레이트 파라미터들은 각각 제2 애니메이션 소스의 단일 계층 트리(layer tree) 내의 개개의 애니메이션에 대응하는, 방법.
  16. 전자 디바이스로서,
    메모리; 및
    하나 이상의 프로세서들을 포함하며,
    상기 하나 이상의 프로세서들은,
    제1 애니메이션 소스에 대한 적어도 제1 프레임 레이트 파라미터들을 기록하고 - 상기 제1 프레임 레이트 파라미터들은 상기 제1 애니메이션 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트 중 적어도 하나를 포함함 -;
    기록된 프레임 레이트 파라미터들에 기초하여 전역 프레임 레이트를 결정하고 - 상기 기록된 프레임 레이트 파라미터들은 적어도 상기 제1 프레임 레이트 파라미터들을 포함함 -;
    상기 결정된 전역 프레임 레이트를 적어도 상기 제1 애니메이션 소스에게 통지하도록
    구성되는, 전자 디바이스.
  17. 제16항에 있어서,
    상기 제1 애니메이션 소스는 스크롤링 애니메이션 소스를 포함하며,
    상기 스크롤링 애니메이션 소스는,
    사용자 스크롤링 입력을 수신하고;
    상기 제1 프레임 레이트 파라미터들을 획득하기 위해 상기 사용자 스크롤링 입력을 모델에 적용함으로써
    상기 제1 프레임 레이트 파라미터들을 결정하도록 구성되는, 전자 디바이스.
  18. 제16항에 있어서,
    상기 제1 애니메이션 소스는 일반적인 애니메이션 소스를 포함하며,
    상기 일반적인 애니메이션 소스는, 상기 일반적인 애니메이션 소스가 프레임들을 생성할 수 있는 적어도 최대 레이트를 결정함으로써 상기 제1 프레임 레이트 파라미터들을 결정하도록 구성되는, 전자 디바이스.
  19. 제16항에 있어서,
    상기 기록된 프레임 레이트 파라미터들은 상기 제1 프레임 레이트 파라미터들, 및 상기 제1 애니메이션 소스와의 동시 디스플레이를 위한 제2 애니메이션 소스에 대한 제2 프레임 레이트 파라미터들을 포함하는, 전자 디바이스.
  20. 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 동작들을 수행하게 하는 명령어들을 저장하는 비일시적 기계 판독가능 매체로서,
    상기 동작들은,
    제1 애니메이션 소스에 대한 적어도 제1 프레임 레이트 파라미터들을 기록하는 것 - 상기 제1 프레임 레이트 파라미터들은 상기 제1 애니메이션 소스에 대한 최소 프레임 레이트, 최대 프레임 레이트, 및 바람직한 프레임 레이트 중 적어도 하나를 포함함 -;
    기록된 프레임 레이트 파라미터들에 기초하여 전역 프레임 레이트를 결정하는 것 - 상기 기록된 프레임 레이트 파라미터들은 적어도 상기 제1 프레임 레이트 파라미터들을 포함함 -; 및
    상기 결정된 전역 프레임 레이트를 적어도 상기 제1 애니메이션 소스에게 통지하는 것을 포함하는, 비일시적 기계 판독가능 매체.
KR1020220113488A 2021-09-13 2022-09-07 전자 디바이스들에 대한 렌더링 KR102666741B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163243693P 2021-09-13 2021-09-13
US63/243,693 2021-09-13
US17/899,543 2022-08-30
US17/899,543 US20230083932A1 (en) 2021-09-13 2022-08-30 Rendering for electronic devices

Publications (2)

Publication Number Publication Date
KR20230039560A true KR20230039560A (ko) 2023-03-21
KR102666741B1 KR102666741B1 (ko) 2024-05-20

Family

ID=83318896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220113488A KR102666741B1 (ko) 2021-09-13 2022-09-07 전자 디바이스들에 대한 렌더링

Country Status (4)

Country Link
US (1) US20230083932A1 (ko)
EP (1) EP4148723A3 (ko)
KR (1) KR102666741B1 (ko)
CN (1) CN115810070A (ko)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8766984B2 (en) 2010-08-20 2014-07-01 Qualcomm Incorporated Graphics rendering methods for satisfying minimum frame rate requirements
US9134889B2 (en) 2011-12-14 2015-09-15 International Business Machines Corporation Variable refresh rates for portions of shared screens
KR20160019896A (ko) * 2013-06-13 2016-02-22 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 상이한 비디오 재생 시나리오에 대한 적응적 디스플레이 레이트의 전환 관리 기법
US20180261190A1 (en) * 2017-03-10 2018-09-13 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for Controlling Display Refresh Rate and Electronic Device
US10475405B2 (en) 2017-12-07 2019-11-12 Qualcomm Incorporated Dynamic control of display refresh rate based on user interface activity
US10510317B2 (en) 2016-06-03 2019-12-17 Apple Inc. Controlling display performance with target presentation times
US11068088B2 (en) 2012-04-03 2021-07-20 Apple Inc. Electronic devices with adaptive frame rate displays
KR20210101627A (ko) * 2020-02-10 2021-08-19 삼성전자주식회사 디스플레이를 포함하는 전자 장치와 이의 동작 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8593463B2 (en) * 2009-10-27 2013-11-26 Microsoft Corporation Controlling animation frame rate of applications
US9684976B2 (en) * 2013-03-13 2017-06-20 Qualcomm Incorporated Operating system-resident display module parameter selection system
RU2014117560A (ru) * 2014-04-30 2015-11-10 Общество С Ограниченной Ответственностью "Яндекс" Система и способ оптимизации качества карты
US10706604B2 (en) * 2016-06-03 2020-07-07 Apple Inc. Controlling display performance using display system hints
CN106936995B (zh) * 2017-03-10 2019-04-16 Oppo广东移动通信有限公司 一种移动终端帧率的控制方法、装置及移动终端

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8766984B2 (en) 2010-08-20 2014-07-01 Qualcomm Incorporated Graphics rendering methods for satisfying minimum frame rate requirements
US9134889B2 (en) 2011-12-14 2015-09-15 International Business Machines Corporation Variable refresh rates for portions of shared screens
US11068088B2 (en) 2012-04-03 2021-07-20 Apple Inc. Electronic devices with adaptive frame rate displays
KR20160019896A (ko) * 2013-06-13 2016-02-22 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 상이한 비디오 재생 시나리오에 대한 적응적 디스플레이 레이트의 전환 관리 기법
US10510317B2 (en) 2016-06-03 2019-12-17 Apple Inc. Controlling display performance with target presentation times
KR20200091962A (ko) * 2016-06-03 2020-07-31 애플 인크. 디스플레이 성능 제어
US20180261190A1 (en) * 2017-03-10 2018-09-13 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for Controlling Display Refresh Rate and Electronic Device
US10621953B2 (en) 2017-03-10 2020-04-14 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for controlling display refresh rate and electronic device
US10475405B2 (en) 2017-12-07 2019-11-12 Qualcomm Incorporated Dynamic control of display refresh rate based on user interface activity
KR20210101627A (ko) * 2020-02-10 2021-08-19 삼성전자주식회사 디스플레이를 포함하는 전자 장치와 이의 동작 방법

Also Published As

Publication number Publication date
KR102666741B1 (ko) 2024-05-20
US20230083932A1 (en) 2023-03-16
EP4148723A3 (en) 2023-06-21
EP4148723A2 (en) 2023-03-15
CN115810070A (zh) 2023-03-17

Similar Documents

Publication Publication Date Title
US11727650B2 (en) Systems, methods, and graphical user interfaces for displaying and manipulating virtual objects in augmented reality environments
JP6970265B2 (ja) アフォーダンスを背景に表示するためのデバイス、方法、及びグラフィカルユーザインターフェース
DK180640B1 (en) Devices and methods of measurement using augmented reality
DK180032B8 (en) User Interface for manipulating user interface objects
US20220342514A1 (en) Techniques for managing display usage
US10254955B2 (en) Progressively indicating new content in an application-selectable user interface
US20130063442A1 (en) Pre-rendering new content for an application-selectable user interface
US20140365956A1 (en) Device, method, and graphical user interface for navigating between user interfaces
US10163245B2 (en) Multi-mode animation system
US10353550B2 (en) Device, method, and graphical user interface for media playback in an accessibility mode
US11928483B2 (en) Devices, methods, and graphical user interfaces for seamless transition of user interface behaviors
KR20150053694A (ko) 애플리케이션 동작 방법 및 시스템
JP2024522984A (ja) 複数のディスプレイデバイスと相互作用するためのシステム及び方法
US20170205946A1 (en) Reducing control response latency with defined cross-control behavior
KR102666741B1 (ko) 전자 디바이스들에 대한 렌더링
US10198233B2 (en) Updating displays based on attention tracking data
AU2020100060B4 (en) Devices, methods, and graphical user interfaces for displaying an affordance on a background
EP3559795B1 (en) Devices, methods, and graphical user interfaces for displaying an affordance on a background
EP3019943A1 (en) Reducing control response latency with defined cross-control behavior

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant