KR102617850B1 - 가변 레이트 리프레시 디스플레이를 위한 프레임 재생 - Google Patents

가변 레이트 리프레시 디스플레이를 위한 프레임 재생 Download PDF

Info

Publication number
KR102617850B1
KR102617850B1 KR1020217040649A KR20217040649A KR102617850B1 KR 102617850 B1 KR102617850 B1 KR 102617850B1 KR 1020217040649 A KR1020217040649 A KR 1020217040649A KR 20217040649 A KR20217040649 A KR 20217040649A KR 102617850 B1 KR102617850 B1 KR 102617850B1
Authority
KR
South Korea
Prior art keywords
display
frame
gpu
refresh
display device
Prior art date
Application number
KR1020217040649A
Other languages
English (en)
Other versions
KR20220017930A (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 KR20220017930A publication Critical patent/KR20220017930A/ko
Application granted granted Critical
Publication of KR102617850B1 publication Critical patent/KR102617850B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2092Details of a display terminals using a flat panel, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G3/2096Details of the interface to the display terminal specific for a flat panel
    • 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/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • 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/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • 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/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players
    • 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/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/08Details of timing specific for flat panels, other than clock recovery
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0247Flicker reduction other than flicker reduction circuits used for single beam cathode-ray tubes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • G09G2320/103Detection of image changes, e.g. determination of an index representative of the image change
    • 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
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel

Abstract

그래픽 처리 장치(GPU)는 디스플레이의 리프레시 레이트가 GPU의 프레임 생성 레이트를 초과한다는 것에 응답하여 콘텐츠를 캡처하고 캡처된 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈에 지시한다. GPU는 동일한 프레임을 여러 번 재전송하는 대신, 이전에 전송된 프레임을 재생하도록 디스플레이 제어 모듈에 지시한다. 디스플레이 제어 모듈이 캡처된 콘텐츠를 재생하는 리프레시 사이클 동안, GPU는 재생 중인 프레임을 검색하고 재전송하기 위해 메모리에 액세스하는 것을 생략하고, 대신 무효 데이터와 GPU 타이밍 정보만 보내 디스플레이 제어 모듈이 GPU와 동기화된 상태를 유지하도록 한다.

Description

가변 레이트 리프레시 디스플레이를 위한 프레임 재생
전형적인 처리 시스템은 디스플레이용 이미지를 생성하기 위해 그래픽 처리 장치(GPU)를 사용한다. 특히, 중앙 처리 장치(CPU) 또는 기타 처리 장치로부터 수신된 정보를 기반으로, GPU는 일련의 프레임을 생성하고 컴퓨터 모니터와 같은 디스플레이에서 일련의 프레임을 렌더링한다. 두 가지 다른 타이밍 요소가 일련의 프레임이 디스플레이될 수 있는 레이트를 제어한다: GPU가 프레임을 생성하는 레이트와 디스플레이의 리프레시 레이트이다. 일부 처리 시스템은 디스플레이 리프레시(refresh)를 GPU의 프레임 생성과 동기화하여 사용자 경험을 개선한다. 예를 들어, 디스플레이의 블랭킹 간격을 조정함으로써, 처리 시스템은 새로운 프레임이 GPU에서 디스플레이할 준비가 된 시간에 또는 그 무렵에 디스플레이가 리프레싱되는 것을 보장할 수 있다. 그러나, 많은 시나리오에서 디스플레이 리프레시 레이트는 GPU가 프레임을 생성하는 레이트를 때로는 두 배 이상 초과한다. 프레임 생성 레이트와 디스플레이의 리프레시 레이트가 일치하지 않으면 처리 시스템 리소스의 불필요한 소모가 발생할 수 있으며, 일부 경우에, 깜박임 및 사용자 경험에 부정적인 영향을 미치는 기타 시각적 아티팩트(artifacts)가 발생할 수 있다.
본 개시는 첨부된 도면을 참조함으로써 당업자에게 더 잘 이해될 수 있고 그 수많은 특징 및 이점이 명백해질 수 있다. 다른 도면에서 동일한 참조 부호를 사용하는 것은 유사하거나 동일한 항목을 나타낸다.
도 1은 일부 실시예들에 따라 그래픽 처리 장치가 프레임을 생성하는 레이트와 디스플레이 리프레시 레이트 사이의 불일치에 기초하여 디스플레이 디바이스가 프레임을 캡처하고 재생하도록 디스플레이 제어 모듈에 지시하도록 구성된 처리 시스템의 블록도이다.
도 2는 일부 실시예들에 따라 콘텐츠를 캡처하고 재생하도록 디스플레이 제어 모듈에 지시하는 도 1의 처리 시스템의 일 예를 나타내는 도면이다.
도 3은 일부 실시예들에 따라 라이브 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈에 지시하는 도 1의 처리 시스템의 그래픽 처리 장치의 일 예를 나타내는 블록도이다.
도 4는 일부 실시예들에 따라 콘텐츠를 캡처하고 라이브 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈에 지시하는 도 1의 처리 시스템의 그래픽 처리 장치의 일 예를 나타내는 도면이다.
도 5는 일부 실시예들에 따라 캡처된 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈에 지시하는 도 1의 처리 시스템의 그래픽 처리 장치의 일 예를 나타내는 도면이다.
도 6은 일부 실시예들에 따른 디스플레이 리프레시 레이트가 프레임 생성 레이트를 초과하는 것에 응답하여 콘텐츠를 캡처하고 캡처된 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈에 지시하는 그래픽 처리 장치의 방법의 흐름도이다.
도 1 내지 도 6은 캡처된 콘텐츠가 디스플레이에서 재생되는 동안 GPU가 메모리에 액세스하는 것을 줄이면서, 디스플레이의 리프레시 레이트가 그래픽 처리 장치(GPU)의 프레임 생성 레이트를 초과하는 것에 응답하여 콘텐츠를 캡처하고 캡처된 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈에 지시하기 위한 기술들을 예시한다. 디스플레이 리프레시 레이트는 종종 GPU가 프레임을 생성하는 레이트를 2배 이상 초과한다. GPU는 동일한 프레임을 여러 번 재전송하는 대신, 이전에 전송된 프레임을 재생하도록 디스플레이 제어 모듈에 지시한다. GPU는 예를 들어, 고정 레이트 비디오 스트림의 프레임 레이트 또는 가변 프레임 레이트 게임 애플리케이션에 대해 생성되는 프레임의 복잡성을 기반으로 프레임 생성 레이트를 감지한다. 프레임이 재생되어야 한다는 결정에 응답하여(예를 들어, 디스플레이 리프레시 레이트가 프레임 생성 레이트를 적어도 임계량만큼 초과한다는 것을 검출함으로써), GPU는 제2(또는 그 이상) 시간 동안 디스플레이하기 위해 프레임을 재전송하는 대신 캡처된 콘텐츠를 캡처한 다음 재생하도록 디스플레이 제어 모듈에 지시한다. 디스플레이 제어 모듈이 캡처된 콘텐츠를 재생하는 리프레시 사이클 동안, GPU는 재생 중인 프레임을 검색(및 재전송)하기 위해 메모리에 액세스하는 것을 생략하고, 대신 더미 콘텐츠(예를 들어, 무효(invalid) 데이터) 및 GPU 타이밍 정보만 전송하여 디스플레이 제어 모듈이 GPU와 동기화된 상태를 유지하도록 한다. 따라서, GPU는 캡처된 콘텐츠가 디스플레이에서 재생되는 동안 메모리에 대한 액세스 횟수를 줄여 메모리 대역폭과 전력을 절약한다.
도 1은 일부 실시예들에 따라 디스플레이 리프레시 레이트가 그래픽 처리 장치가 프레임을 생성하는 레이트를 초과할 때 디스플레이 디바이스(170)가 프레임을 캡처하고 재생하도록 디스플레이 제어 모듈(160)에 지시하는 처리 시스템(100)을 예시한다. 처리 시스템(100)은 전자 장치에 대해 지정된 작업들을 수행하기 위해 인스트럭션 세트들(예를 들어, 컴퓨터 프로그램들)을 실행한다. 이러한 작업들의 예들은 전자 장치의 동작의 측면들을 제어하고, 지정된 사용자 경험을 제공하기 위해 사용자에게 정보를 디스플레이하고, 기타 전자 장치들과 통신하는 것 등을 포함한다. 따라서, 다른 실시예들에서, 처리 시스템(100)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 서버, 게임 콘솔, 태블릿, 스마트폰 등과 같은 전자 장치들의 다수의 유형들 중 하나에 채택된다.
인스트럭션 세트들의 실행을 지원하기 위해, 처리 시스템(100)은 복수의 프로세서 코어들(도 1에 도시되지 않음)을 포함한다. 일부 실시예들에서, 각각의 프로세서 코어는 인스트럭션들을 페치하고(fetch), 인스트럭션들을 대응하는 동작들로 디코딩하고, 동작들을 하나 이상의 실행 유닛들로 디스패치하고(dispatch), 동작들을 실행하고, 동작들을 폐기시키기 위한 하나 이상의 인스트럭션 파이프라인들을 포함한다. 인스트럭션들을 실행하는 과정에서, 프로세서 코어들은 정보의 시각적 디스플레이와 관련된 그래픽 동작 및 기타 동작을 생성한다. 이러한 동작들에 기초하여, 프로세서 코어들은 도 1에 예시된 그래픽 처리 장치(GPU)(110)에 명령들 및 데이터를 제공한다.
GPU(110)는 복수의 프로세서 코어들로부터 그래픽들 및 기타 디스플레이 동작들과 관련된 명령들 및 데이터를 수신한다. 수신된 명령들에 기초하여, GPU(110)는 디스플레이를 위한 프레임(예를 들어, 프레임(140))을 생성하기 위한 동작들을 실행한다. 동작들의 예들로는 벡터(vector) 동작, 드로잉(drawing) 동작 등을 포함한다. GPU(110)가 이러한 동작들에 기초하여 프레임들을 생성할 수 있는 레이트를 GPU(110)의 프레임 생성 레이트 또는 간단히 프레임 레이트라고 한다. 프레임 생성 레이트는 프레임 레이트(105)로 도 1에 도시되어 있다. 프레임 레이트(105)는 프레임 세트를 생성하기 위해 GPU에 의해 실행되는 동작들의 복잡성에 부분적으로 기초하여, 시간이 지남에 따라 변한다는 것이 이해될 것이다. 예를 들어, 상대적으로 많은 수의 동작들을 필요로 하는 프레임 세트들(예를 들어, 상대적으로 많은 수의 움직이는 객체들을 그린 결과)은 더 낮은 프레임 레이트를 유발할 가능성이 있는 반면, 상대적으로 적은 수의 동작들을 필요로 하는 프레임 세트들은 더 높은 프레임 레이트를 허용할 가능성이 있다. 또한, 일부 애플리케이션들의 경우, 프레임 레이트(105)가 고정되며, 다른 애플리케이션들의 경우 프레임 레이트(105)가 가변적이다. 사용자가 하나의 애플리케이션에서 다른 애플리케이션으로 전환함에 따라, 프레임 레이트(105)는 고정에서 가변으로 또는 그 반대로 전환할 수 있다.
그래픽 처리 장치(110)는 메모리(130)에 연결된다. GPU(110)는 인스트럭션들을 실행하고, 실행된 인스트럭션들의 결과들과 같은 정보를 메모리(130)에 저장한다. 예를 들어, 메모리(130)는 GPU(110)로부터 수신한 기 생성된 복수의 이미지들(미도시)를 저장한다. 일부 실시예들에서, 메모리(130)는 동적 랜덤 액세스 메모리(DRAM)로 구현되며, 일부 실시예들에서, 메모리(130)는 정적 랜덤 액세스 메모리(SRAM), 비휘발성 RAM 등을 포함하는 다른 유형의 메모리를 사용하여 구현된다. 처리 시스템(100)의 일부 실시예들은 디스플레이(170), 뿐만 아니라 키보드, 마우스, 프린터, 외부 디스크 등과 같은 처리 시스템(100)의 기타 요소들과 연관된 입력 또는 출력 동작들을 핸들링하기 위한 입력/출력(I/O) 엔진(미도시)을 포함한다.
프레임들을 디스플레이하기 위해, 처리 시스템(100)은 디스플레이 제어 모듈(160) 및 디스플레이(170)를 포함한다. 디스플레이(170)는 GPU(110)에서 생성된 프레임들에 기초하여 이미지들을 시각적으로 디스플레이하는 디스플레이 디바이스이다. 따라서, 다른 실시예들에서, 디스플레이(170)는 액정 디스플레이(LCD) 장치, 유기 발광 다이오드(OLED) 장치 등이다. 당업자라면 알 수 있는 바와 같이, 디스플레이(170)는 GPU(110)에 의해 생성된 가장 최근의 프레임을 주기적으로 렌더링(또는 "드로우(draw)")하여 프레임을 디스플레이한다. 일부 실시예들에서, 디스플레이(170)는 고정된 리프레시 레이트(155)를 갖는다. 각각의 프레임 렌더링은 디스플레이(170)가 이미지 데이터를 렌더링하지 않는 동안, 블랭킹 간격으로 지칭되는 시간의 일부와 연관된다. 일부 실시예들에서, 디스플레이(170)는 프로그래밍 가능한 길이의 블랭킹 간격을 갖는다. 따라서, 본 명세서에 추가로 설명되는 바와 같이, 일부 실시예들에서, 디스플레이(170)는 블랭킹 간격에 대해 상이한 길이를 프로그래밍함으로써 조정 가능한 가변 리프레시 레이트(155)를 갖는다.
디스플레이 제어 모듈(160)은 디스플레이(170)에서 프레임들의 렌더링을 제어하고, 하나 이상의 집적 회로(IC) 칩 상의 하드 코딩된 로직으로, 프로그램 가능한 로직으로, 구성 가능한 로직(예를 들어, 퓨즈 구성 가능한 로직)으로, 인스트럭션들의 프로그램을 실행하는 하나 이상의 프로세서들, 또는 이들의 조합으로 구현된다. 일부 실시예들에서, 디스플레이 제어 모듈(160)은 GPU(110)에 의해 생성된 프레임들의 버퍼링, 상이한 블랭킹 간격 길이를 프로그래밍함으로써 디스플레이(170)의 리프레시 레이트(155)의 조정 등을 포함하는 동작들을 수행한다. 디스플레이 제어 모듈(160)이 예시의 용이함을 위해 GPU(110)와 별개의 모듈로 도시되어 있지만, 일부 실시예들에서 디스플레이 제어 모듈(160)은 GPU(110)에 통합된다는 것이 이해될 것이다. 다른 실시예들에서, 디스플레이 제어 모듈(160)의 하나 이상의 동작들은 디스플레이(170)에서 수행된다.
메모리 대역폭을 보존하고 GPU(110)에 의한 메모리(130)에 대한 액세스를 줄이기 위해, GPU(110)는 재생 로직(120)을 포함하며, 이 재생 로직은 디스플레이(170)의 리프레시 레이트(155)를 GPU(110)의 프레임 레이트(105)와 비교하고, 디스플레이 제어 모듈(160)이 디스플레이(170)에 라이브 콘텐츠(즉, 현재 프레임)를 디스플레이하고, 버퍼(165)에서 라이브 콘텐츠를 캡처하고, 상대적 레이트에 따라 캡처된 콘텐츠를 디스플레이(재생)하고, 디스플레이 제어 모듈(160)에 인스트럭션들을 전송할지 여부를 결정한다. 재생 로직(120)은 하나 이상의 집적 회로(IC) 칩 상의 하드 코딩된 로직으로, 프로그램 가능한 로직으로, 구성 가능한 로직(예를 들어, 퓨즈 구성 가능한 로직)으로, 인스트럭션들의 프로그램을 실행하는 하나 이상의 프로세서들, 또는 이들의 조합으로 구현된다.
예시하기 위해, 동작 시, 재생 로직(120)은 재생 모드가 디스플레이(170)에서 지원(supported)되는지 여부를 검출한다. 재생 모드가 디스플레이(170)에서 지원되는 것을 검출하는 것에 응답하여, 재생 로직(120)은 재생 모드를 인에이블하도록 디스플레이 제어 모듈(160)에 신호를 보낸다. 리프레시 모드가 인에이블되면, 재생 로직(120)은 현재 프레임(140)에 대해 디스플레이(170)의 리프레시 레이트(155)가 GPU(110)의 프레임 레이트(105)를 임계량보다 더 많이 초과하는지 여부를 결정한다. 일부 실시예들에서, 임계량은 프레임 레이트(105)의 2배이다. 따라서, 프레임 레이트(105)가 디스플레이 리프레시 레이트(155)의 절반 이하이면, 임계량이 충족된다. 다른 실시예들에서, 임계량은 프레임 레이트(105)보다 약간 높지만, 반드시 두 배는 아니다. 예를 들어, 리프레시 레이트(155)가 프레임 레이트(105)보다 약간 더 높은 고정 리프레시 레이트 디스플레이의 경우, 일부 양의 프레임들이 반복될 것이며, 이 경우 GPU(110)는 프레임(140)을 재생하도록 디스플레이 제어 모듈(160)에 신호를 보낸다.
디스플레이(170)의 리프레시 레이트(155)가 GPU(110)의 프레임 레이트(105)를 임계량보다 더 많이 초과하지 않는 경우, 재생 로직(120)은 디스플레이 제어 모듈(160)이 디스플레이(170)에서 현재 프레임(140)을 디스플레이할 것이라고(즉, 디스플레이(170)는 라이브 콘텐츠를 디스플레이할 것이라고) 결정한다. 재생 로직(120)은 프레임(140) 및 디스플레이 제어 모듈(160)이 디스플레이(170)에 현재 프레임(140)을 디스플레이할 것임을 표시하는 재생 정보(150)를 전송한다. 이 예에서 재생 로직(120)은 디스플레이 제어 모듈(160)이 현재 프레임(140)을 캡처하거나 이전에 캡처된 프레임을 다시 디스플레이하지 않고 디스플레이에 현재 프레임(140)을 디스플레이할 것이라고 결정했기 때문에, 재생 정보(150)는 디스플레이 제어 모듈(160)이 현재 디스플레이 리프레시 사이클 동안 디스플레이(170)에서 현재 프레임(140)을 디스플레이할 것이라는 것만 표시한다. 다음 디스플레이 리프레시 사이클에서, GPU(110)는 디스플레이 제어 모듈(160)에 다음 프레임 및 재생 정보를 전송할 것이다.
디스플레이(170)의 리프레시 레이트(155)가 프레임 레이트(105)를 임계량보다 더 많이 초과하는 경우(예를 들어, 리프레시 레이트(155)가 프레임 레이트(105)의 적어도 2배임), 재생 로직(120)은 디스플레이 제어 모듈(160)이 디스플레이(170)에서의 후속 재생을 위해 현재 프레임(140)을 캡처할 것이라고 결정한다. 따라서, 재생 로직(120)은 현재 프레임(140) 및 디스플레이 제어 모듈(160)이 디스플레이(170)에 현재 프레임(140)을 디스플레이하고 버퍼(165)에서 현재 프레임(140)을 캡처할 것이라는 것을 표시하는 재생 정보(150)를 전송한다. 이에 응답하여, 디스플레이 제어 모듈(160)은 현재 프레임(140)을 디스플레이(170)에 디스플레이하고 현재 프레임(140)을 버퍼(165)에 복사한다. 디스플레이(170)의 후속 리프레시 사이클 동안, GPU(110)는 메모리(130)로부터 현재 프레임(140)에 액세스하는 것을 생략하고 대신에 더미(dummy) 콘텐츠(미도시)를 재생 정보(150)와 함께 디스플레이 제어 모듈(160)에 전송하며, 이 재생 정보는 디스플레이 제어 모듈(160)이 GPU(110)의 프레임 레이트 타이밍을 사용하고 디스플레이(170)에 이전에 캡처된 현재 프레임(140)을 재생할 것임을 표시한다. 재생 로직(120)은 더미 콘텐츠 및 디스플레이 제어 모듈(160)이 이전에 캡처된 현재 프레임(140)을 리프레시 레이트(155)가 프레임 레이트(105)를 초과하는 횟수만큼, 또는 새로운 프레임이 GPU(110)에 의해 생성될 때까지 재생할 것임을 표시하는 재생 정보(150)의 전송을 반복한다.
따라서, 예를 들어, 프레임 레이트(105)가 초당 24 프레임(fps)이고 디스플레이(170)의 리프레시 레이트가 48 Hz인 경우, GPU(110)에 의해 생성되는 각 프레임에 대해 디스플레이(170)의 2개의 리프레시 사이클이 있다. 두 가지 레이트가 모두 고정되면, 제1 디스플레이 리프레시 사이클 동안, 재생 로직(120)은 현재 프레임 N(140) 및 디스플레이 제어 모듈(160)이 디스플레이(170)에 현재 프레임 N(140)을 표시하고 버퍼(165)에서 현재 프레임 N(140)을 캡처할 것이라는 것을 표시하는 재생 정보(150)를 전송한다. 제2 디스플레이 리프레시 사이클 동안, 재생 로직(120)은 더미 콘텐츠 및 디스플레이 제어 모듈(160)이 이전에 캡처된 프레임 N(140)을 재생할 것임을 표시하는 재생 정보(150)를 전송한다. 디스플레이 제어 모듈(160)은 더미 콘텐츠를 폐기하고 디스플레이(170)에서의 디스플레이를 위해 버퍼(165)로부터 이전에 캡처된 프레임 N(140)에 액세스한다. 제3 디스플레이 리프레시 사이클 동안, GPU(110)는 현재 프레임 N+1(140)을 생성하고, 재생 로직(120)은 현재 프레임 N+1(140) 및 디스플레이 제어 모듈(160)이 디스플레이(170)에서 현재 프레임 N+1(140)을 디스플레이하고 버퍼(165)에서 현재 프레임 N+1(140)을 캡처할 것이라는 것을 표시하는 재생 정보(150)를 전송한다. 제4 디스플레이 리프레시 사이클 동안, 재생 로직(120)은 더미 콘텐츠 및 디스플레이 제어 모듈(160)이 이전에 캡처된 프레임 N+1(140)을 재생할 것임을 표시하는 재생 정보(150)를 전송한다. 디스플레이 제어 모듈(160)은 더미 콘텐츠를 폐기하고 디스플레이(170)에서의 디스플레이를 위해 버퍼(165)로부터 이전에 캡처된 프레임 N+1(140)에 액세스한다. 따라서, 제2 및 제4 디스플레이 리프레시 사이클 동안, GPU(110)는 N 및 N+1프레임들이 디스플레이(170)에서 재생되는 동안 메모리(130)로부터 N 및 N+1프레임에 액세스하고 이들을 디스플레이 제어 모듈(160)로 재전송하는 것을 생략한다.
PowerPoint® 프레젠테이션 동안과 같은 일부 실시예들에서, 단일 프레임은 연장된 시간에 걸쳐 변경되지 않고 디스플레이된다. 재생 로직(120)은 프레임의 콘텐츠가 변경되지 않는 것을 검출하며, 디스플레이 제어 모듈(160)에 신호를 보내 정적 프레임을 캡처하고 계속해서 재생한다. 이 시나리오에서, 재생 로직(120)은 캡처된 프레임을 재생하도록 디스플레이 제어 모듈(160)에 신호를 보낼지 여부를 프레임 단위로 동적으로 결정한다. 재생 로직(120)은 GPU 프레임 레이트(105)와 독립적으로 캡처된 프레임을 재생하도록 디스플레이 제어 모듈(160)에 신호를 보낼지 여부를 결정하고, 대신에 프레임 콘텐츠가 변경될 때까지 캡처된 콘텐츠를 계속 재생하도록 결정한다. 재생 로직(120)이 정적 프레임 콘텐츠를 감지하고 디스플레이 제어 모듈(160)에 신호를 보내 프레임을 캡처하지만, 후속 프레임에서 콘텐츠가 변경되었다고 결정하면, 재생 로직(120)은 현재 프레임(140) 및 디스플레이 제어 모듈(160)이 디스플레이(170)에서 현재 프레임(140)을 디스플레이할 것임을 표시하는 재생 정보(150)를 전송하는 것으로 되돌아간다(revert). 따라서, 재생 로직(120)은 라이브 콘텐츠를 재생하도록 동적으로 결정하고, 캡처된 프레임은 이 경우에 사용되지 않는다.
일부 실시예들에서, 디스플레이(170)의 리프레시 레이트(155)는 GPU(110)의 프레임 레이트(105)의 두 배 이상이다. 이러한 경우에, 재생 로직(120)은 디스플레이(170)의 2개 이상의 리프레시 사이클 동안 캡처된 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈(160)에 지시하기로 결정한다. 디스플레이가 가변 리프레시 레이트를 갖는 다른 실시예들에서, 디스플레이(170)의 리프레시 레이트(155)가 GPU(110)의 프레임 레이트(105)와 동기화될 수 있더라도, 재생 로직(120)은 플리커(flicker)를 줄이기 위해 디스플레이 리프레시 레이트가 더 높은 레이트로 설정되면 사용자 경험이 향상될 것이라고 결정할 수 있다. 이러한 경우에, 재생 로직(120)은 라이브 콘텐츠를 캡처한 다음 디스플레이(170)의 적어도 2개의 더 높은 레이트의 리프레시 사이클 동안 캡처된 라이브 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈(160)에 지시한다. 본 명세서에서 사용되는 "라이브 콘텐츠"라는 용어는 디스플레이 제어 모듈(160)이 재디스플레이를 위해 저장하지 않은 GPU에 의해 생성된 프레임들을 의미한다.
일부 실시예들에서, 디스플레이(170)는 리프레시 주파수의 범위를 갖는 가변 리프레시 레이트를 갖는다. 예를 들어, 일부 실시예들에서, 디스플레이(170)는 40 Hz 내지 120 Hz의 범위 내에서 동적으로 변경될 수 있는 리프레시 레이트를 갖는다. GPU(110)에서 실행되는 게임 애플리케이션이 초당 30프레임의 프레임 레이트를 갖는다면, 재생 로직(120)은 사용자 경험을 최적화할 디스플레이(170)에 대한 디스플레이 리프레시 레이트 및 프레임 재생 횟수를 결정한다. 예를 들어, 재생 로직(120)이 제1 옵션으로서 디스플레이를 90 Hz로 리프레시하도록 결정하면, 재생 로직(120)은 디스플레이 제어 모듈(160)에 신호를 보내 제1 리프레시 사이클 동안 프레임을 캡처하고 프레임을 두 번 재생한다. 대안적으로, 제2 옵션으로서, 재생 로직(120)은 60 Hz로 디스플레이를 리프레시하고, 프레임을 한 번 재생하도록 결정할 수 있거나, 또는 제 3옵션으로서, 재생 로직(120)은 120 Hz로 디스플레이를 리프레시하고, 프레임을 세 번 재생하도록 결정할 수 있다. 디스플레이 리프레시 레이트와 프레임 재생 횟수를 결정하면 특히 게임 애플리케이션과 같은 가변 프레임 레이트 콘텐츠의 경우, 끊김이나 찢어짐과 같은 부작용이 일어나는지 여부에 영향을 줄 수 있다. 이 예에서, 제2 옵션(60 Hz, 1회 재생)은 전력을 절약하기 위해 리프레시 레이트가 낮다. 그러나, 제1 옵션(90 Hz, 2회 재생)은 디스플레이(170)의 40 Hz 내지 120 Hz의 리프레시 레이트 범위 중간에 있으며, 렌더링 복잡성의 프레임 간 변동으로 인해 프레임 레이트 변경이 있는 경우 끊김 또는 찢어짐이 발생할 기회가 줄어든다. 따라서, 제1 옵션은 가변 레이트 콘텐츠에 대한 개선된 사용자 경험을 제공할 수 있다.
도 2는 일부 실시예들에 따라 콘텐츠를 캡처하고 재생하도록 디스플레이 제어 모듈(160)에 지시하는 도 1의 처리 시스템(100)의 GPU(110)의 재생 로직(120)의 일 예를 나타내는 도면이다. 제1 리프레시 사이클 1(202) 동안, 재생 로직(120)은 디스플레이(170)의 리프레시 레이트(155)가 GPU(110)의 프레임 레이트(105)를 임계량보다 더 많이 초과하지 않는다는 것을 검출하고, 따라서 디스플레이(170)가 라이브 콘텐츠를 디스플레이할 것이라고 결정한다. 따라서, 재생 로직(120)은 활성(현재) 프레임 N(210) 및 라이브 콘텐츠 표시자(215)를 디스플레이 제어 모듈(160)에 전송하여, 디스플레이 제어 모듈(160)이 디스플레이(170)에 활성 프레임 N(210)을 디스플레이할 것임을 표시한다.
제2 리프레시 사이클 2(204) 동안, 재생 로직(120)은 디스플레이(170)의 리프레시 레이트(155)가 GPU(110)의 프레임 레이트(105)를 임계량보다 더 많이 초과한다고 검출하고 (예를 들어, 재생 로직(120)은 디스플레이(170)의 리프레시 레이트(155)가 GPU(110)의 프레임 레이트(105)의 두 배 이상임을 검출하고), 따라서 디스플레이 제어 모듈(160)이 라이브 콘텐츠를 캡처하고 버퍼(165)에 라이브 콘텐츠를 저장하는 동안 디스플레이(170)가 라이브 콘텐츠를 디스플레이할 것임을 결정한다. 따라서, 재생 로직(120)은 활성 프레임 N+1(220) 및 캡처 콘텐츠 표시자(225)를 디스플레이 제어 모듈(160)에 전송한다. 캡처 콘텐츠 표시자(225)를 수신하는 것에 응답하여, 디스플레이 제어 모듈(160)은 버퍼(165)에 활성 프레임 N+1(220)을 복사하고 디스플레이(170)에 활성 프레임 N+1(220)을 디스플레이한다.
제3 리프레시 사이클 3(206) 동안, 재생 로직(120)은 디스플레이(170)의 리프레시 레이트(155)가 여전히 GPU(110)의 프레임 레이트(105)를 임계값보다 더 많이 초과함을 확인한다. 재생 로직(120)이 이미 활성 프레임 N+1(220)을 디스플레이 제어 모듈(160)에 전송했고 디스플레이 제어 모듈(160)에 활성 프레임 N+1(220)을 캡처하도록 지시했기 때문에, GPU(110)는 디스플레이 제어 모듈(160)에 활성 프레임 N+1(220)을 재전송하거나 메모리(130)로부터 활성 프레임 N+1(220)에 재액세스할 필요가 없다. 대신에, 재생 로직(120)은 더미 콘텐츠(230) 및 재생 콘텐츠 표시자(235)를 디스플레이 제어 모듈(160)에 전송한다. 더미 콘텐츠(230) 및 재생 콘텐츠 표시자(235)를 수신하는 것에 응답하여, 디스플레이 제어 모듈(160)은 더미 콘텐츠(230)를 폐기하고, 버퍼(165)로부터 활성 프레임 N+1(220)에 액세스하고, 디스플레이에(170) 활성 프레임 N+1(220)을 디스플레이한다.
제4 리프레시 사이클 4(208) 동안, 재생 로직(120)은 디스플레이(170)의 리프레시 레이트(155)가 GPU(110)의 프레임 레이트(105)를 임계값보다 더 많이 초과하지 않는다는 것을 검출한다. 따라서, 재생 로직(120)은 디스플레이(170)가 라이브 콘텐츠를 디스플레이할 것이라고 결정한다. 따라서, 재생 로직(120)은 활성(현재) 프레임 N+2(240) 및 라이브 콘텐츠 표시자(215)를 디스플레이 제어 모듈(160)에 전송하여, 디스플레이 제어 모듈(160)이 디스플레이(170)에 활성 프레임 N+2(240)를 디스플레이할 것임을 표시한다.
도 3은 일부 실시예들에 따라 라이브 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈(160)에 지시하는 도 1의 처리 시스템(100)의 그래픽 처리 장치(110)의 일 예를 나타내는 블록도이다. 예시된 예에서, GPU(110)의 재생 로직(미도시)은 디스플레이(170)의 리프레시 레이트가 GPU(110)의 프레임 레이트를 임계값보다 더 많이 초과하지 않는다고 결정했다. 따라서, GPU(110)는 활성 프레임 N(310) 및 라이브 콘텐츠 표시자(312) 형태의 재생 정보를 디스플레이 제어 모듈(160)에 전송하여, 디스플레이 제어 모듈(160)이 버퍼(165)에 활성 프레임 N(310)을 저장하지 않고 디스플레이(170)에 활성 프레임 N(310)을 디스플레이할 것이라는 신호를 보낸다. 활성 프레임 N(310) 및 라이브 콘텐츠 표시자(312)를 수신하는 것에 응답하여, 디스플레이 제어 모듈(160)은 버퍼(165)에서 활성 프레임 N(310)을 캡처하지 않고 디스플레이(170)에 활성 프레임 N(310)을 디스플레이한다.
도 4는 일부 실시예들에 따라 콘텐츠를 캡처하고 라이브 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈(160)에 지시하는 도 1의 처리 시스템(100)의 그래픽 처리 장치(110)의 일 예를 나타내는 도면이다. 예시된 예에서, GPU(110)의 재생 로직(미도시)은 디스플레이(170)의 리프레시 레이트가 GPU(110)의 프레임 레이트를 임계량보다 더 많이 초과한다고 결정했다. 따라서, GPU(110)는 활성 프레임 N+1(410) 및 캡처 라이브 콘텐츠 표시자(412)를 디스플레이 제어 모듈(160)에 전송하여, 디스플레이 제어 모듈(160)이 디스플레이(170)에 활성 프레임 N+1(410)을 디스플레이하고 또한 버퍼(165)에서 활성 프레임 N+1(410)을 복사할 것이라는 신호를 보낸다. 활성 프레임 N+1(410) 및 캡처 라이브 콘텐츠 표시자(412)를 수신하는 것에 응답하여, 디스플레이 제어 모듈(160)은 디스플레이(170)에 활성 프레임 N+1(410)을 디스플레이하고 활성 프레임 N+1을 버퍼(165)에 복사한다.
도 5는 일부 실시예들에 따라 캡처된 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈(160)에 지시하는 도 1의 처리 시스템(100)의 그래픽 처리 장치(110)의 일 예를 나타내는 도면이다. 예시된 예에서, GPU(110)의 재생 로직(미도시)은 디스플레이(170)의 리프레시 레이트가 GPU(110)의 프레임 레이트를 임계량보다 더 많이 초과한다고 이전에 결정했으며, 도 4에 도시된 바와 같이 이전에 전송된 활성 프레임 N+1(410)을 캡처하도록 디스플레이 제어 모듈(160)에 미리 지시했다. 현재 디스플레이 리프레시 사이클 동안, GPU(110)는 더미 콘텐츠(510) 및 재생 콘텐츠 표시자(512)를 디스플레이 제어 모듈(160)에 전송하여, 버퍼(165)로부터 활성 프레임 N+1(410)에 액세스하고 디스플레이(170)에 활성 프레임 N+1(410)을 디스플레이하도록 디스플레이 제어 모듈(160)에 지시한다. 더미 콘텐츠(510) 및 재생 콘텐츠 표시자(512)를 수신하는 것에 응답하여, 디스플레이 제어 모듈(160)은 더미 콘텐츠(510)를 폐기하고, 버퍼로부터 활성 프레임 N+1(410)에 액세스하고, GPU(110)의 타이밍과 동기화를 유지하면서 디스플레이(170)에 활성 프레임 N+1(410)을 디스플레이한다.
도 6은 일부 실시예들에 따라 디스플레이 리프레시 레이트가 프레임 생성 레이트를 초과하는 것에 응답하여 콘텐츠를 캡처하고 캡처된 콘텐츠를 디스플레이하도록 디스플레이 제어 모듈에 지시하는 그래픽 처리 장치의 방법(600)의 흐름도이다. 방법(600)은 도 1에 도시된 처리 시스템(100)의 일부 실시예들에서 구현된다.
블록(602)에서, GPU(110)의 재생 로직(120)은 GPU(110)가 프레임들을 생성하는 레이트(105)를 디스플레이(170)의 리프레시 레이트(155)와 비교한다. 블록(604)에서, 재생 로직(120)은 디스플레이 리프레시 레이트(155)가 프레임 레이트(105)를 임계량보다 더 많이 초과하는지 여부를 결정한다. 블록(604)에서, 재생 로직(120)이 리프레시 레이트(155)가 프레임 레이트(105)를 임계량보다 더 많이 초과하지 않는다고 결정하면, 방법 흐름은 블록(606)으로 이어진다. 블록(606)에서, 재생 로직(120)은 활성 프레임 N(140) 및 라이브 콘텐츠 표시자(215)를 디스플레이 제어 모듈(160)에 전송한다. 활성 프레임 N(140) 및 라이브 콘텐츠 표시자(215)를 수신하는 것에 응답하여, 디스플레이 제어 모듈(160)은 디스플레이(170)에 활성 프레임 N(140)을 디스플레이한다. 그런 다음, 방법 흐름은 블록(602)으로 다시 이어진다.
블록(604)에서, 재생 로직(120)이 리프레시 레이트(155)가 프레임 레이트(105)를 임계량보다 더 많이 초과한다고 결정하면, 방법 흐름은 블록(608)으로 이어진다. 블록(608)에서, 재생 로직(120)은 활성 프레임 N(140) 및 캡처 콘텐츠 표시자(225)를 디스플레이 제어 모듈(160)에 전송한다. 활성 프레임 N(140) 및 캡처 콘텐츠 표시자(225)를 수신하는 것에 응답하여, 디스플레이 제어 모듈(160)은 디스플레이(170)에 활성 프레임 N(140)을 디스플레이하고 버퍼(165)에서 활성 프레임 N(140)을 복사한다. 블록(610)에서, 재생 로직(120)은 메모리(130)로부터 활성 프레임 N(140)에 액세스하는 것을 생략하고, 대신에 더미 콘텐츠(230) 및 재생 콘텐츠 표시자(235)를 디스플레이 제어 모듈(160)에 전송한다. 더미 콘텐츠(230) 및 재생 콘텐츠 표시자(230)를 수신하는 것에 응답하여, 디스플레이 제어 모듈(160)은 더미 콘텐츠(230)를 폐기하고, 버퍼(165)로부터 활성 프레임 N(140)에 액세스하고, 디스플레이(170)에 활성 프레임 N(140)을 디스플레이한다.
본 명세서에 설명된 바와 같이, 일부 실시예들에서, 방법은, 그래픽 처리 장치(GPU)에서, 디스플레이 디바이스의 제1 리프레시 사이클 동안 제1 프레임 및 제1 프레임과 연관된 정보를 디스플레이 디바이스에 전송하는 단계로서, 상기 정보는 디스플레이 디바이스가 제1 프레임을 디스플레이하는 동안의 디스플레이 리프레시 사이클의 수를 표시하는, 상기 전송하는 단계; 및 GPU에서, 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과하는 것을 표시하는 정보에 응답하여 제1 프레임을 전송한 후 디스플레이 디바이스의 제2 리프레시 사이클 동안 메모리로부터 제1 프레임에 액세스하고 제1 프레임을 디스플레이 디바이스로 전송하는 것을 생략하는 단계를 포함한다. 일 양태에서, 방법은, 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 정보에 응답하여 제1 프레임을 캡처하도록 디스플레이에 신호를 보내는 단계를 포함한다. 다른 양태에서, 방법은, 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 정보에 응답하여 디스플레이 디바이스와 연관된 버퍼에 제1프레임을 저장하도록 디스플레이에 신호를 보내는 단계를 포함한다.
일 양태에서, 방법은, 정보에 의해 표시된 디스플레이 리프레시 사이클의 수 동안(for) 디스플레이 디바이스에서 제1 프레임을 디스플레이하도록 디스플레이에 신호를 보내는 단계를 포함한다. 다른 양태에서, 방법은, GPU에서, 디스플레이 디바이스가 제1 프레임을 디스플레이하고 있는 제1 리프레시 사이클 이후 각각의 리프레시 사이클에 대한 무효 데이터 및 GPU 타이밍 정보를 전송하는 단계를 포함한다. 또 다른 양태에서, 방법은, 무효 데이터를 폐기하도록 디스플레이 디바이스에 신호를 보내는 단계를 포함한다. 또 다른 양태에서, 방법은, GPU에서, 디스플레이 디바이스의 리프레시 레이트를 결정하는 단계를 포함하며, 여기서 디스플레이 디바이스는 GPU가 제1 프레임을 생성하는 레이트에 기초하는 가변 리프레시 레이트를 갖는다.
일부 실시예들에서, 방법은, 디스플레이 디바이스에서, 디스플레이 디바이스의 제1 리프레시 사이클 동안 그래픽 처리 장치(GPU)로부터 제1 프레임 및 제1프레임과 연관된 정보를 수신하는 단계로서, 상기 정보는 디스플레이 디바이스가 제1 프레임을 디스플레이하는 동안의 디스플레이 리프레시 사이클의 수를 표시하는, 상기 수신하는 단계; 및 상기 정보에 의해 표시된 디스플레이 리프레시 사이클의 수 동안(for) 상기 제1 프레임을 디스플레이하는 단계를 포함한다. 일 양태에서, 방법은, 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 정보에 응답하여 제1 프레임을 캡처하는 단계를 포함한다. 다른 양태에서, 방법은, 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 정보에 응답하여 디스플레이 디바이스와 연관된 버퍼에 제1 프레임을 저장하는 단계를 포함한다.
일 양태에서, 방법은, 디스플레이 장치에서, 디스플레이 디바이스가 제1 프레임을 디스플레이하고 있는 제1 리프레시 사이클 이후 각각의 디스플레이 리프레시 사이클에 대한 무효 데이터 및 GPU 타이밍 정보를 수신하는 단계를 포함한다. 다른 양태에서, 방법은, 무효 데이터를 폐기하는 단계를 포함한다. 또 다른 양태에서, 방법은, GPU에서, 디스플레이 디바이스의 리프레시 레이트를 결정하는 단계를 포함하며, 여기서 디스플레이 디바이스는 GPU가 제1 프레임을 생성하는 레이트에 기초하는 가변 리프레시 레이트를 갖는다.
일부 실시예들에서, 시스템은, 메모리; 및 그래픽 처리 장치(GPU)로서, 디스플레이 디바이스로의 전송을 위해 복수의 프레임들을 렌더링하고; 디스플레이 디바이스의 제1 리프레시 사이클 동안 복수의 프레임들 중 제1 프레임 및 제1 프레임과 연관된 정보를 디스플레이 디바이스에 전송하되, 상기 정보는 디스플레이 디바이스가 제1 프레임을 디스플레이하는 동안의 디스플레이 리프레시 사이클의 수를 표시하고; 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 정보에 응답하여 제1 프레임을 전송한 후 디스플레이 디바이스의 제2 리프레시 사이클 동안 메모리로부터 제1 프레임에 액세스하고 제1프레임을 디스플레이 디바이스에 전송하는 것을 생략하도록 구성된, 상기 그래픽 처리 장치를 포함한다. 일 양태에서, GPU는, 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 정보에 응답하여 제1 프레임을 캡처하도록 디스플레이에 신호를 보내도록 추가로 구성된다. 다른 양태에서, GPU는, 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 정보에 응답하여 디스플레이 디바이스와 연관된 버퍼에 제1 프레임을 저장하도록 디스플레이에 신호를 보내도록 추가로 구성된다.
일 양태에서, GPU는, 정보에 의해 표시된 디스플레이 리프레시 사이클의 수 동안(for) 디스플레이 디바이스에서 제1 프레임을 디스플레이하도록 디스플레이에 신호를 보내도록 추가로 구성된다. 다른 양태에서, GPU는, 디스플레이 디바이스가 제1 프레임을 디스플레이하고 있는 제1 리프레시 사이클 이후 각각의 디스플레이 리프레시 사이클에 대한 무효 데이터 및 GPU 타이밍 정보를 전송하도록 추가로 구성된다. 또 다른 양태에서, GPU는, 무효 데이터를 폐기하도록 디스플레이 디바이스에 신호를 보내도록 추가로 구성된다. 또 다른 양태에서, GPU는, 디스플레이 디바이스의 리프레시 레이트를 결정하도록 추가로 구성되며, 상기 디스플레이 장치는 GPU가 제1 프레임을 생성하는 레이트에 기초하는 가변 리프레시 레이트를 갖는다.
컴퓨터 판독 가능 저장 매체는 컴퓨터 시스템에 인스트럭션들 및/또는 데이터를 제공하기 위해 사용하는 동안 컴퓨터 시스템에 의해 액세스 가능한, 임의의 비일시적 저장 매체 또는 비일시적 저장 매체의 조합을 포함할 수 있다. 이러한 저장 매체는, 이에 제한되는 것은 아니나, 광학 매체(예를 들어, 콤팩트 디스크(CD), 디지털 다목적 디스크(DVD), 블루레이 디스크), 자기 매체(예를 들어, 플로피 디스크, 자기 테이프 또는 자기 하드 드라이브), 휘발성 메모리(예를 들어, 랜덤 액세스 메모리(RAM) 또는 캐시), 비휘발성 메모리(예를 들어, 읽기 전용 메모리(ROM) 또는 플래시 메모리), 또는 미세전자기계 시스템(MEMS) 기반 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 컴퓨팅 시스템(예를 들어, 시스템 RAM 또는 ROM)에 내장되거나, 컴퓨팅 시스템(예를 들어, 자기 하드 드라이브)에 고정적으로 부착되거나, 컴퓨팅 시스템(예를 들어, 광학 디스크 또는 범용 직렬 버스(USB) 기반 플래시 메모리)에 착탈 가능하게 부착되거나, 또는 유선 또는 무선 네트워크(예를 들어, 네트워크 액세스 가능 스토리지(NAS))를 통해 컴퓨터 시스템에 결합될 수 있다.
일부 실시예들에서, 위에서 설명된 기술들의 특정 양태들은 소프트웨어를 실행하는 처리 시스템의 하나 이상의 프로세서들에 의해 구현될 수 있다. 소프트웨어는 비일시적 컴퓨터 판독 가능 저장 매체에 저장되거나 유형적으로 구현되는 하나 이상의 실행 가능한 인스트럭션 세트들을 포함한다. 소프트웨어는 하나 이상의 프로세서들에 의해 실행 시, 위에서 설명된 기술들 중 하나 이상의 양태들을 수행하도록 하나 이상의 프로세서들을 조작하는 인스트럭션들 및 특정 데이터를 포함할 수 있다. 비일시적 컴퓨터 판독 가능 저장 매체는 예를 들어, 자기 또는 광 디스크 저장 장치, 플래시 메모리와 같은 솔리드 스테이트 저장 장치, 캐시, 랜덤 액세스 메모리(RAM) 또는 기타 비휘발성 메모리 장치 또는 장치들 등을 포함할 수 있다. 비일시적 컴퓨터 판독 가능 저장 매체에 저장된 실행 가능한 인스트럭션들은 소스 코드, 어셈블리 언어 코드, 객체 코드, 또는 하나 이상의 프로세서들에 의해 해석되거나 아니면 실행 가능한 기타 인스트럭션 형식일 수 있다.
일반적인 설명에서 상술한 모든 활동들 또는 요소들이 필요한 것은 아니며, 특정 활동 또는 장치의 일부가 필요하지 않을 수 있으며, 설명된 것들 외에 하나 이상의 추가 활동들이 수행될 수 있거나, 또는 요소들이 포함될 수 있음에 유의한다. 또한, 활동들이 나열되는 순서가 반드시 수행되는 순서는 아니다. 또한, 구체적인 실시예를 참조하여 개념을 설명하였다. 그러나, 본 기술분야의 통상의 기술자는 하기 청구범위에 기재된 바와 같은 본 개시내용의 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음을 인식한다. 따라서, 본 명세서 및 도면은 제한적인 의미가 아니라 예시적인 것으로 간주되어야 하며, 이러한 모든 변형은 본 개시의 범위 내에 포함되도록 의도된다.
이점들, 다른 장점들, 및 문제에 대한 솔루션들은 특정 실시예와 관련하여 위에서 설명되었다. 그러나, 이점들, 장점들, 문제에 대한 솔루션들 및 어떤 이점, 장점 또는 솔루션이 발생하거나 더 두드러지게 만들 수 있는 모든 특징(들)은 일부 또는 모든 청구항의 중요, 요구되는 또는 필수 특징으로 해석되어서는 안 된다. 더욱이, 위에 개시된 특정 실시예는 단지 예시적인 것이며, 개시된 주제는 본 명세서의 교시의 이점을 갖는 당업자에게 명백하게 상이하지만 동등한 방식으로 수정 및 실시될 수 있다. 아래의 청구범위에 기술된 것 외에는, 본원에 도시된 구성 또는 디자인의 세부사항에 제한을 두지 않는다. 따라서, 위에 개시된 특정 실시예들은 변경되거나 수정될 수 있으며, 이러한 모든 변형들은 개시된 주제의 범위 내에서 고려된다는 것이 명백하다. 따라서, 본원에서 추구하는 보호는 아래의 청구범위에 명시된 바와 같다.

Claims (20)

  1. 방법에 있어서,
    그래픽 처리 장치(GPU)[110]에서, 디스플레이 디바이스[160]의 제1 리프레시 사이클[204] 동안 제1 프레임[140] 및 상기 제1 프레임과 관련된 정보[150]를 상기 디스플레이 디바이스로 전송하는 단계, 상기 정보는 상기 디스플레이 디바이스가 상기 제1 프레임을 디스플레이하는 동안의 디스플레이 리프레시 사이클들의 개수를 표시하며; 및
    상기 GPU에서, 상기 디스플레이 리프레시 사이클들의 개수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 상기 정보에 응답하여 상기 제1 프레임을 전송한 후 상기 디스플레이 디바이스의 제2 리프레시 사이클[206] 동안 메모리[130]로부터 상기 제1 프레임에 액세스하고 상기 제1 프레임을 상기 디스플레이 디바이스에 전송하는 것을 생략하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 상기 정보에 응답하여 상기 제1 프레임을 캡처하도록 상기 디스플레이에 신호를 보내는 단계[225]를 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 상기 정보에 응답하여 상기 디스플레이 디바이스와 연관된 버퍼[165]에 상기 제1 프레임을 저장하도록 상기 디스플레이에 신호를 보내는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서,
    상기 정보에 의해 표시된 상기 디스플레이 리프레시 사이클의 수 동안(for) 상기 디스플레이 디바이스에서 상기 제1 프레임을 디스플레이하도록 상기 디스플레이에 신호를 보내는 단계를 더 포함하는, 방법.
  5. 제4항에 있어서,
    상기 GPU에서, 상기 디스플레이 디바이스가 상기 제1 프레임을 디스플레이하고 있는 상기 제1 리프레시 사이클 이후 각각의 리프레시 사이클에 대한 무효 데이터[230] 및 GPU 타이밍 정보를 전송하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서,
    상기 무효 데이터를 폐기하도록 상기 디스플레이 디바이스에 신호를 보내는 단계를 더 포함하는, 방법.
  7. 제1항에 있어서,
    상기 GPU에서, 상기 디스플레이 디바이스의 리프레시 레이트를 결정하는 단계를 더 포함하며, 상기 디스플레이 디바이스는 상기 GPU가 상기 제1 프레임을 생성하는 레이트에 기초하는 가변 리프레시 레이트를 갖는, 방법.
  8. 방법에 있어서,
    디스플레이 디바이스[160]에서, 상기 디스플레이 디바이스의 제1 리프레시 사이클 동안 그래픽 처리 장치(GPU)[110]로부터 제1 프레임[140] 및 상기 제1 프레임과 관련된 정보[150]를 수신하는 단계, 상기 정보는 상기 디스플레이 디바이스가 상기 제1 프레임을 디스플레이하는 동안의 디스플레이 리프레시 사이클들의 개수를 표시하며; 및
    상기 정보에 의해 표시된 상기 개수의 디스플레이 리프레시 사이클들 동안(for) 상기 제1 프레임을 디스플레이하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 상기 정보에 응답하여 상기 제1 프레임을 캡처하는 단계를 더 포함하는, 방법.
  10. 제8항에 있어서,
    상기 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 상기 정보에 응답하여 상기 디스플레이 디바이스와 연관된 버퍼[165]에 상기 제1 프레임을 저장하는 단계를 더 포함하는, 방법.
  11. 제8항에 있어서,
    상기 디스플레이 디바이스에서, 상기 디스플레이 디바이스가 상기 제1 프레임을 디스플레이하고 있는 상기 제1 리프레시 사이클 이후 각각의 디스플레이 리프레시 사이클에 대한 무효 데이터[230] 및 GPU 타이밍 정보를 수신하는 단계를 더 포함하는, 방법.
  12. 제11항에 있어서,
    상기 무효 데이터를 폐기하는 단계를 더 포함하는, 방법.
  13. 제8항에 있어서,
    상기 GPU에서, 상기 디스플레이 디바이스의 리프레시 레이트를 결정하는 단계를 더 포함하며,
    상기 디스플레이 디바이스는 상기 GPU가 상기 제1 프레임을 생성하는 레이트에 기초하는 가변 리프레시 레이트를 갖는, 방법.
  14. 시스템에 있어서,
    메모리[130]; 및
    그래픽 처리 장치(GPU)[110]를 포함하고, 상기 그래픽 처리 장치는,
    디스플레이 디바이스[160]로의 전송을 위해 복수의 프레임들을 렌더링하고;
    상기 디스플레이 디바이스의 제1 리프레시 사이클[204] 동안 상기 복수의 프레임들 중 제1 프레임[140] 및 상기 제1 프레임과 관련된 정보[150]를 상기 디스플레이 디바이스에 전송하되, 상기 정보는 상기 디스플레이 디바이스가 상기 제1 프레임을 디스플레이하는 동안의 디스플레이 리프레시 사이클들의 개수를 표시하고;
    상기 디스플레이 리프레시 사이클들의 개수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 상기 정보에 응답하여 상기 제1 프레임을 전송한 후 상기 디스플레이 디바이스의 제2 리프레시 사이클[206] 동안 상기 메모리로부터 상기 제1 프레임에 액세스하고 상기 제1 프레임을 상기 디스플레이 디바이스에 전송하는 것을 생략하도록 구성된, 시스템.
  15. 제14항에 있어서, 상기 GPU는 또한,
    상기 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 상기 정보에 응답하여 상기 제1 프레임을 캡처하도록 상기 디스플레이에 신호를 보내도록 구성되는, 시스템.
  16. 제14항에 있어서, 상기 GPU는 또한,
    상기 디스플레이 리프레시 사이클의 수가 하나의 디스플레이 리프레시 사이클을 초과한다는 것을 표시하는 상기 정보에 응답하여 상기 디스플레이 디바이스와 연관된 버퍼[165]에 상기 제1 프레임을 저장하도록 상기 디스플레이에 신호를 보내도록 구성되는, 시스템.
  17. 제14항에 있어서, 상기 GPU는 또한,
    상기 정보에 의해 표시된 상기 디스플레이 리프레시 사이클의 수 동안(for) 상기 디스플레이 디바이스에서 상기 제1 프레임을 디스플레이하도록 상기 디스플레이에 신호를 보내도록 구성되는, 시스템.
  18. 제17항에 있어서, 상기 GPU는 또한,
    상기 디스플레이 디바이스가 상기 제1 프레임을 디스플레이하고 있는 상기 제1 리프레시 사이클 이후 각각의 디스플레이 리프레시 사이클에 대한 무효 데이터[230] 및 GPU 타이밍 정보를 전송하도록 구성되는, 시스템.
  19. 제18항에 있어서, 상기 GPU는 또한,
    상기 무효 데이터를 폐기하도록 상기 디스플레이 디바이스에 신호를 보내도록 구성되는, 시스템.
  20. 제14항에 있어서, 상기 GPU는 또한,
    상기 디스플레이 디바이스의 리프레시 레이트를 결정하도록 구성되며, 상기 디스플레이 디바이스는 상기 GPU가 상기 제1 프레임을 생성하는 레이트에 기초하는 가변 리프레시 레이트를 갖는, 시스템.
KR1020217040649A 2019-06-10 2020-06-08 가변 레이트 리프레시 디스플레이를 위한 프레임 재생 KR102617850B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/436,876 US11295660B2 (en) 2019-06-10 2019-06-10 Frame replay for variable rate refresh display
US16/436,876 2019-06-10
PCT/IB2020/055384 WO2020250117A1 (en) 2019-06-10 2020-06-08 Frame replay for variable rate refresh display

Publications (2)

Publication Number Publication Date
KR20220017930A KR20220017930A (ko) 2022-02-14
KR102617850B1 true KR102617850B1 (ko) 2023-12-27

Family

ID=73650731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217040649A KR102617850B1 (ko) 2019-06-10 2020-06-08 가변 레이트 리프레시 디스플레이를 위한 프레임 재생

Country Status (6)

Country Link
US (2) US11295660B2 (ko)
EP (1) EP3980987A4 (ko)
JP (1) JP7433344B2 (ko)
KR (1) KR102617850B1 (ko)
CN (1) CN113950716A (ko)
WO (1) WO2020250117A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023043458A1 (en) * 2021-09-17 2023-03-23 Hewlett-Packard Development Company, L.P. Artifacts corrections in images

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050151859A1 (en) 2004-01-14 2005-07-14 Casio Computer Co., Ltd. Moving image recording apparatus with a stream recording function of a moving image
US20150339994A1 (en) 2014-05-22 2015-11-26 Nvidia Corporation Refresh rate dependent adaptive dithering for a variable refresh rate display
US20170249920A1 (en) 2016-02-25 2017-08-31 Nvidia Corporation Variable refresh rate video capture and playback

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6147695A (en) * 1996-03-22 2000-11-14 Silicon Graphics, Inc. System and method for combining multiple video streams
EP1160759A3 (en) * 2000-05-31 2008-11-26 Panasonic Corporation Image output device and image output control method
CN101373590B (zh) * 2004-05-19 2014-01-22 索尼电脑娱乐公司 图像帧处理方法及向各种显示器显示活动图像的设备
JP2007164071A (ja) 2005-12-16 2007-06-28 Toshiba Corp 情報処理装置および動作速度制御方法
JP4303743B2 (ja) * 2006-10-04 2009-07-29 シャープ株式会社 画像表示装置及び方法、画像処理装置及び方法
US20080100636A1 (en) * 2006-10-31 2008-05-01 Jiin Lai Systems and Methods for Low-Power Computer Operation
US8274501B2 (en) * 2008-11-18 2012-09-25 Intel Corporation Techniques to control self refresh display functionality
US9179122B2 (en) * 2008-12-04 2015-11-03 Nec Corporation Image transmission system, image transmission apparatus and image transmission method
US8625973B2 (en) * 2009-10-30 2014-01-07 Verint Systems, Inc. Method and apparatus for operating a video system
US20120147020A1 (en) * 2010-12-13 2012-06-14 Ati Technologies Ulc Method and apparatus for providing indication of a static frame
US9196216B2 (en) * 2011-12-07 2015-11-24 Parade Technologies, Ltd. Frame buffer management and self-refresh control in a self-refresh display system
US9030481B2 (en) 2012-06-28 2015-05-12 Intel Corporation Method and apparatus for reducing power usage during video presentation on a display
US9251552B2 (en) 2012-06-28 2016-02-02 Intel Corporation Method and apparatus for managing image data for presentation on a display
WO2014036652A1 (en) * 2012-09-05 2014-03-13 Ati Technologies Ulc Method and device for selective display refresh
US9524008B1 (en) 2012-09-11 2016-12-20 Pixelworks, Inc. Variable frame rate timing controller for display devices
US9332216B2 (en) * 2014-03-12 2016-05-03 Sony Computer Entertainment America, LLC Video frame rate compensation through adjustment of vertical blanking
US9786255B2 (en) * 2014-05-30 2017-10-10 Nvidia Corporation Dynamic frame repetition in a variable refresh rate system
US10096080B2 (en) * 2014-06-27 2018-10-09 Intel Corporation Power optimization with dynamic frame rate support
US9652816B1 (en) * 2014-09-29 2017-05-16 Apple Inc. Reduced frame refresh rate
KR102305765B1 (ko) * 2015-03-27 2021-09-28 삼성전자주식회사 전자 장치 및 전자 장치에서의 디스플레이 제어 방법
KR102350954B1 (ko) * 2017-08-22 2022-01-14 삼성전자주식회사 메시지를 전송하는 전자 장치 및 그 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050151859A1 (en) 2004-01-14 2005-07-14 Casio Computer Co., Ltd. Moving image recording apparatus with a stream recording function of a moving image
US20150339994A1 (en) 2014-05-22 2015-11-26 Nvidia Corporation Refresh rate dependent adaptive dithering for a variable refresh rate display
US20170249920A1 (en) 2016-02-25 2017-08-31 Nvidia Corporation Variable refresh rate video capture and playback

Also Published As

Publication number Publication date
KR20220017930A (ko) 2022-02-14
JP7433344B2 (ja) 2024-02-19
WO2020250117A1 (en) 2020-12-17
US20200388208A1 (en) 2020-12-10
EP3980987A1 (en) 2022-04-13
US11862066B2 (en) 2024-01-02
US11295660B2 (en) 2022-04-05
CN113950716A (zh) 2022-01-18
EP3980987A4 (en) 2023-06-14
JP2022536283A (ja) 2022-08-15
US20220223098A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
KR101155251B1 (ko) 셀프 리프레시 디스플레이 기능을 제어하기 위한 기술들
JP2015008022A (ja) ターゲットデバイスに命令を送信する技術
KR20080039532A (ko) 비디오 프레임 버퍼 플립 큐를 이용한 버퍼들 간의스위칭을 위한 장치 및 방법
US10957020B2 (en) Systems and methods for frame time smoothing based on modified animation advancement and use of post render queues
US9875517B2 (en) Data processing method, data processing apparatus, and storage medium
US11763414B2 (en) Glitchless GPU switching at a multiplexer
KR102617850B1 (ko) 가변 레이트 리프레시 디스플레이를 위한 프레임 재생
WO2016019753A1 (zh) 一种显示设备的刷新控制方法及装置
KR20220143667A (ko) 지연된 그래픽 프로세싱 유닛 렌더 시간을 보상하기 위한 감소된 디스플레이 프로세싱 유닛 전달 시간
KR20230119169A (ko) 다중 디스플레이 시스템에서 비동기식 메모리 클록변경 수행
CN115151886A (zh) 基于帧更新延迟dsi时钟改变以提供更平滑的用户界面体验
TWI626560B (zh) 互動式顯示系統與方法
US11948534B2 (en) Display cycle control system
TW201531105A (zh) 電子裝置及播放視訊的省電方法
JP2013210826A (ja) 情報処理装置、描画処理システム、描画処理方法およびプログラム

Legal Events

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