KR101401216B1 - 외부 디스플레이에 대한 그래픽 컨텐츠 미러링 - Google Patents

외부 디스플레이에 대한 그래픽 컨텐츠 미러링 Download PDF

Info

Publication number
KR101401216B1
KR101401216B1 KR1020120003601A KR20120003601A KR101401216B1 KR 101401216 B1 KR101401216 B1 KR 101401216B1 KR 1020120003601 A KR1020120003601 A KR 1020120003601A KR 20120003601 A KR20120003601 A KR 20120003601A KR 101401216 B1 KR101401216 B1 KR 101401216B1
Authority
KR
South Korea
Prior art keywords
image data
external display
image
processing system
frame
Prior art date
Application number
KR1020120003601A
Other languages
English (en)
Other versions
KR20120081574A (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 KR20120081574A publication Critical patent/KR20120081574A/ko
Application granted granted Critical
Publication of KR101401216B1 publication Critical patent/KR101401216B1/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
    • 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
    • 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
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • 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/37Details of the operation on graphic patterns
    • G09G5/373Details of the operation on graphic patterns for modifying the size of the graphic pattern
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2200/00Indexing scheme relating to G06F1/04 - G06F1/32
    • G06F2200/16Indexing scheme relating to G06F1/16 - G06F1/18
    • G06F2200/161Indexing scheme relating to constructional details of the monitor
    • G06F2200/1614Image rotation following screen orientation, e.g. switching from landscape to portrait mode
    • 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
    • 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
    • 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/04Changes in size, position or resolution of an image
    • G09G2340/0464Positioning
    • G09G2340/0485Centering horizontally or vertically
    • 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/04Display device controller operating with a plurality of display units

Abstract

데이터 프로세싱 시스템은 그 데이터 프로세싱 시스템에서 동작하는 애플리케이션 프로그램에 의해 생성된 그래픽 컨텐츠를 합성하여, 이미지 데이터를 생성한다. 데이터 프로세싱 시스템은 이미지 데이터를 제1 프레임버퍼에 저장하고, 제1 프레임버퍼의 이미지 데이터로부터 생성된 이미지를 데이터 프로세싱 시스템의 내부 디스플레이 디바이스 상에 디스플레이한다. 데이터 프로세싱 시스템 내의 스케일러는 제1 프레임버퍼 내의 이미지 데이터에 대한 스케일링 연산들을 수행하고, 스케일링된 이미지 데이터를 제2 프레임버퍼에 저장하며, 제2 프레임버퍼 내의 스케일링된 이미지 데이터로부터 생성된 이미지를 데이터 프로세싱 시스템에 결합된 외부 디스플레이 디바이스에 디스플레이한다. 스케일러는 그래픽 컨텐츠의 합성에 대해 비동기적으로 스케일링 연산들을 수행한다. 데이터 프로세싱 시스템은, 애플리케이션 프로그램이 디스플레이를 위한 추가의 그래픽 컨텐츠를 외부 디스플레이 디바이스에 게시하지 않는 한, 외부 디스플레이 디바이스 상에 이미지를 자동적으로 미러링한다.

Description

외부 디스플레이에 대한 그래픽 컨텐츠 미러링{MIRRORING GRAPHICS CONTENT TO AN EXTERNAL DISPLAY}
관련 출원
본 출원은 2011년 1월 11일 출원된 미국 가출원 제61/431,776호의 우선권의 이익을 주장하고 있으며, 그 내용은 본원에 참조로서 병합된다.
기술 분야
본 발명은 디스플레이 구동 아키텍처 분야에 관한 것으로, 더욱 상세하게는, 외부 디스플레이 그래픽 컨텐츠를 미러링하는 것에 관한 것이다.
컴퓨터 시스템, 무선 셀룰러 전화기, 이동 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스 또는 기타 데이터 처리 시스템과 같은 전자 디바이스는 종종 내장형 내부 시각 디스플레이 디바이스를 포함한다. 내부 디스플레이 디바이스는 전자 디바이스에 의해 생성되거나 전자 디바이스 상에 저장되는 시각 컨텐츠를 디스플레이하는데 이용된다. 내부 디스플레이 디바이스는, 예를 들어, 내부 액정 디스플레이(LCD) 디바이스일 수 있다.
어떤 전자 디바이스는 외부 시각 디스플레이 디바이스에 접속하도록, 확장형 비디오 그래픽 어레이(XVGA) 커넥터 또는 관련 기술분야에서 공지된 다른 커넥터를 더 포함할 수 있다. 외부 디스플레이 디바이스는 예를 들어, 자립형 LCD 또는 음극선관(CRT) 디스플레이일 수 있다. 몇몇 경우에 있어서, 전자 디바이스는, 내부 디스플레이 디바이스와 외부 디스플레이 디바이스 모두가 동일한 시각 컨텐츠를 동시에 디스플레이하도록 설정될 수 있다. 이는 미러링된 모드로 지칭될 수 있다. 다른 방법으로는, 어떤 전자 디바이스는, 또한 2개의 디스플레이 디바이스가 확장형 데스크탑의 일부와 같이 상이한 이미지를 디스플레이하도록 설정될 수 있어서, 사용자가 2개의 디스플레이 사이에서 윈도우를 이동함으로써 한 데스크탑으로부터 다른 데스크탑으로 윈도우를 이동할 수 있도록 해준다.
본원에 설명된 일부 실시예에 따르면, 데이터 처리 시스템은 데이터 처리 시스템 상에서 실행되는 애플리케이션 프로그램에 의해 생성된 그래픽 컨텐츠를 합성하여 이미지 데이터를 생성할 수 있다. 데이터 처리 시스템은 제1 프레임버퍼에 이미지 데이터를 저장하고, 데이터 처리 시스템의 내부 디스플레이 디바이스 상에 제1 프레임버퍼 내의 이미지 데이터로부터 생성된 이미지를 디스플레이할 수 있다. 데이터 처리 시스템 내의 스케일러는 제1 프레임버퍼 내의 이미지 데이터에 대한 스케일링 연산을 수행하고, 스케일링된 이미지 데이터를 제2 프레임버퍼에 저장하고, 데이터 처리 시스템에 결합된 외부 디스플레이 디바이스 상에 제2 프레임버퍼 내의 스케일링된 이미지 데이터로부터 생성된 이미지를 디스플레이할 수 있다. 스케일링 연산은 이미지 데이터의 크기, 해상도, 방향 및 컬러 중 적어도 하나를 조정하는 것을 포함할 수 있다.
스케일러는 그래픽 컨텐츠의 합성과 관련하여 비동기식으로 스케일링 연산을 수행할 수 있다. 일 실시예에서, 스케일링된 이미지 데이터는 제1 이미지 프레임과 연관될 수 있다. 스케일러는, CPU 또는 GPU와 같은 다른 컴포넌트와 별개로 동작한다는 점에서 비동기식이다. 데이터 처리 시스템은, 제1 이미지 프레임과 연관된 이미지 데이터에 대한 스케일링 연산이 완료되기 전에, 후속 이미지 프레임과 연관된 이미지 데이터를 생성하도록 그래픽 컨텐츠의 합성을 시작할 수 있다.
일 실시예에서, 데이터 처리 시스템은, 이전 프레임과 연관된 스케일링된 이미지 데이터로부터 생성된 이미지가 외부 디스플레이 상에 디스플레이되는 것이 완료되었는지를 판정할 수 있다. 이전 프레임과 연관된 스케일링된 이미지 데이터로부터 생성된 이미지가 외부 디스플레이 상에 디스플레이하는 것이 완료되지 않은 경우에, 데이터 처리 시스템은 제1 프레임과 연관된 스케일링된 이미지 데이터를 드롭할 수 있다.
다른 실시예에서, 애플리케이션 프로그램이 외부 디스플레이 디바이스 상에 디스플레이를 위해 추가 그래픽 컨텐츠를 게시하고 있지 않는 경우에, 데이터 처리 시스템은 외부 디스플레이 디바이스에 이미지를 자동으로 미러링할 수 있다. 데이터 처리 시스템은, 애플리케이션 프로그램이 외부 디스플레이 디바이스 상에 디스플레이할 제2 이미지에 대한 제2 그래픽 컨텐츠를 게시하고 있는지를 판정하고, 애플리케이션 프로그램이 제2 그래픽 컨텐츠를 게시하고 있는 경우에, 데이터 처리 시스템은 자동 미러링을 디스에이블한다. 다른 실시예에서, 데이터 처리 시스템은 우선 애플리케이션 프로그램이 추가 그래픽 컨텐츠를 게시하고 있는지를 판정하고, 그에 따라 미러링을 인에이블 또는 디스에이블할 수 있다. 미러링은 상술한 바와 같은 비동기식 스케일링 연산을 포함할 수 있다.
본 발명은 첨부된 도면을 참조하여 일 예로서 설명되고, 이에 한정되는 것은 아니다.
도 1은 일 실시예에 따른, 외부 디스플레이에 그래픽 컨텐츠를 미러링하기 위한 디스플레이 구동 아키텍처를 도시한다.
도 2는 일 실시예에 따른, 그래픽 컨텐츠를 미러링하기 위한 데이터 처리 시스템 및 외부 디스플레이를 도시하는 블럭도이다.
도 3은 일 실시예에 따른, 그래픽 컨텐츠를 외부 디스플레이에 미러링하기 위한 디스플레이 구동 아키텍처의 더 일반적인 예를 도시하는 블럭도이다.
도 4는 일 실시예에 따른, 그래픽 컨텐츠를 외부 디스플레이에 미러링하기 위한 소프트웨어 스택을 도시하는 블럭도이다.
도 5a 및 도 5b는 일 실시예에 따른 클론 미러링 방법을 도시하는 흐름도이다.
도 6a 및 도 6b는 일 실시예에 따른 자동 클론 미러링 방법을 도시하는 흐름도이다.
도 7은 일 실시시예에 따른 클론 미러링 동작에 대한 타임라인을 도시하는 블럭도이다.
도 8a 및 도 8b는 일 실시예에 따른, 그래픽 컨텐츠를 외부 디스플레이에 미러링할 때의 스케일링 연산의 일례를 도시한다.
도 9는 일 실시예에 따른 예시적인 API 아키텍처를 도시하는 블럭도이다.
도 10은 일 실시예에 따른 하나 이상의 API를 이용하는 소프트웨어 스택의 일례를 도시한다.
본 발명의 실시예들에 대한 이하의 상세한 설명에서는, 유사한 참조번호들이 유사한 구성요소들을 나태내고 본 발명이 실시될 수 있는 특정 실시예들이 일례로서 도시되는 첨부 도면들을 참조한다. 이러한 실시예들은 본 기술분야에 통상의 지식을 가진 자가 본 발명을 실시할 수 있을 만큼 충분히 상세히 설명되며, 다른 실시예들이 이용될 수 있고 본 발명의 범주를 벗어나지 않고서 논리적, 기계적, 전기적, 기능적 및 다른 변경들이 이루어질 수 있음을 이해할 것이다. 따라서, 다음의 상세한 설명은 제한적인 의미로 받아들여지지 않아야 하며 본 발명의 범주는 첨부의 특허청구범위에 의해서만 정의된다.
도 1은 본 발명의 일 실시예에 따른, 그래픽 컨텐츠를 외부 디스플레이에 미러링하기 위한 디스플레이 구동 아키텍처를 도시하는 블럭도이다. 일 실시예에서, 아키텍처는 내부 디스플레이 디바이스(140), 및 외부 디스플레이 디바이스(150)와 같은 선택적인 외부 디스플레이 디바이스를 포함할 수 있다. 도 1에 도시된 데이터 처리 시스템(101)은 휴대용 범용 컴퓨터 시스템 또는 휴대용 특수 목적 컴퓨터 시스템, 또는 셀룰러 전화, 스마트 폰, PDA(personal digital assistants), 내장형 전자 디바이스 또는 소비자 전자 디바이스와 같은 다른 유형의 데이터 처리 시스템 내에 포함될 수 있다. 데이터 처리 시스템(101)은 하나 이상의 마이크로프로세서를 포함하는 CPU(central processing unit)와 같은 처리 디바이스(103)를 포함할 수 있다. CPU(103)는 본 기술분야에 알려진 바와 같이 하나 이상의 버스를 통해 GPU(graphics processing unit)(105)에 결합될 수 있다.
데이터 처리 시스템(101)은 또한, 압축되고 선택적으로는 임호화된 미디어 데이터를 디코드하기 위해 하드웨어 비디오 디코더, 소프트웨어 비디오 디코더, 또는 하드웨어와 소프트웨어 둘 다로 구현된 비디오 디코더 일 수 있는 비디오 디코더(107)를 포함할 수 있다. 비디오 디코더(107)는 카메라로부터 또는 예를 들어 영화와 같은 비디오 컨텐츠를 저장하는 저장 디바이스로부터 비디오를 디코드하는 데에 이용될 수 있다. 데이터 처리 시스템(101)은 디스플레이가능한 컨텐츠를 셍성하는 데에 사용된 데이터뿐만 아니라 디스플레이가능한 컨텐츠 자체도 저장할 수 있는 RAM, 플래시 등과 같은 하나 이상의 메모리 장치를 포함할 수 있다. 메모리(109A, 109B 및 109C)는 본 기술분야에 알려진 바와 같이, 단일 집적 회로 또는 단일 메모리 공간을 구현하는 다수의 집적 회로와 같은 별도의 메모리들 또는 동일한 메모리일 수 있다. CPU(103) 및 GPU(105)는 디스플레이될 이미지들 또는 다른 데이터를 생성하고 이들 이미지를 메모리 내의 버퍼에 저장할 수 있다. 도 1의 예에서 볼 수 있는 바와 같이, GPU(105)는 디스플레이될 이미지를 생성하고 이들 이미지를 메모리(109B) 및 메모리(109C) 내에 저장할 수 있는 한편, CPU(103)는 그것이 생성하는 디스플레이될 이미지들을 메모리(109B) 내에 저장할 수 있다. 다르게, CPU(103)는 메모리들(109B 및 109C) 둘 다에 기록할 수 있는 한편, GPU는 하나의 메모리에만 또는 메모리들 둘 다에 기록할 수 있다. 메모리(109A)는 압축된 또는 암호화된 영화와 같은 디코딩되는 비디오 데이터를 저장하는 데에 이용될 수 있다. 비디오 디코더(107)로부터의 출력은 메모리(111) 내에 임시로 저장될 수 있는 비디오 데이터를 제공한다. 메모리(109B), 메모리(109C) 및 비디오 데이터 메모리(111)는 합성기(115)에 접속될 수 있다.
합성기(115)는 메모리(109B 및 109C) 및 비디오 데이터 메모리(111)로부터 출력을 수신할 수 있다. 또한, 합성기(115)는 메타데이터(비도시)를 수신하여, 메타데이터를 이용하여 메모리(109B 및 109C) 내의 이미지들을 비디오 데이터 메모리(111)로부터의 디코딩된 비디오 컨텐츠와 함께 본 기술분야에 알려진 기술들을 이용하여 합성할 수 있다. 메타데이터는 합성된 이미지를 제공하기 위해 소스 사각형들의 위치, 및 비디오 데이터의 위치, 및 메모리들(109B 및 109C) 내의 이미지들의 위치를 지정할 수 있다. 예를 들어, 메타데이터에 의해 지정된 위치 및 크기를 갖는 윈도우 내에 영화가 디스플레이될 수 있고, 이 윈도우는 메모리들(109B 및 109C)에 의해 제공된 이미지들과 같은 사용자 인터페이스의 이미지들 또는 데스크탑과 같은 다른 이미지들 위해 디스플레이될 수 있다. 일 실시예에서, 합성기(115)로부터의 출력은 24-비트 RGB 출력일 수 있다.
합성기(115)의 출력은 프레임버퍼에 저장될 수 있다. 프레임버퍼는 데이터(즉, 그래픽 컨텐츠)의 완전한 프레임을 보유하는 하나 이상의 메모리 버퍼(예를 들면, 버퍼들(131-134))로부터 비디오 디스플레이를 드라이브하는 비디오 출력 디바이스(예를 들면, 내부 디스플레이 디바이스(140) 또는 외부 디스플레이 디바이스 (150))를 포함할 수 있다. 메모리 버퍼 내의 정보는 디스플레이 디바이스의 스크린 상의 모든 픽셀에 대한 컬러 값들을 포함할 수 있다. 추가의 알파 채널은 픽셀 투명도에 관한 정보를 유지하는 데 사용될 수 있다. 일 실시예에서 합성기(115)의 출력이 버퍼(131)에 (및 필요하다면 선택적으로 버퍼(132)에) 저장된다. 버퍼(131)의 컨텐츠는 내부 디스플레이 디바이스(140)를 구동하는 데 사용될 수 있다.
일 실시예에서, 처리 디바이스(101)가 또한 스케일러(120)를 포함할 수 있다. 스케일러(120)는 버퍼(131)에 저장된 데이터 상에서 스케일링 연산을 수행할 수 있다. 이는 외부 디스플레이 디바이스(150)와 같은 제2 디스플레이에 그래픽 컨텐츠가 클론되는(즉, 미러링되는) 동작의 모드를 허용할 수 있다. 외부 디스플레이 디바이스(150)는 내부 디스플레이 디바이스(140)와 상이한 속성들 및/또는 기능들을 가질 수 있고, 스케일링 연산들은 그래픽 컨텐츠가 외부 디스플레이 디바이스(150)에 올바르게 디스플레이되도록 허용한다. 스케일러(120)에 의해 수행되는 스케일링 연산들은 크기, 해상도, 방향, 컬러, 또는 이미지의 기타 특성들을 조정하는 것을 포함할 수 있다. 스케일러(120)는 CPU(103), GPU(105) 또는 몇몇 다른 소스로부터 수신된 입력 커멘드에 기초하여 스케일링 연산들을 수행할 수 있다. 스케일러(120)의 출력은 필요하면 버퍼(133)(및 선택적으로 버퍼(134))에 저장될 수 있다. 버퍼(133)의 컨텐츠는 외부 디스플레이 디바이스(150)를 드라이브하는 데 사용될 수 있다. 디스플레이 디바이스들(140 및 150)은 LCD(liquid crystal display), LED(Light Emitting Diode) 디스플레이, 유기 LED 디스플레이, CRT(cathode ray tube) 디스플레이 등과 같은 디스플레이 디바이스들의 각종 타입 중 임의의 하나일 수 있음이 이해될 것이다.
일 실시예에서, 내부 디스플레이 디바이스(140)와 외부 디스플레이 디바이스(150)가 상이한 프레임 레이트를 지원할 수 있다. 예를 들면, 내부 디스플레이 디바이스(140)가 초당 60 프레임(60 fps)을 지원하는 반면에 외부 디스플레이 디바이스(150)는 단 24 fps만을 지원할 수 있다. 본원에 개시된 기술을 통해, 데이터 처리 시스템(101)은 내부 디스플레이 디바이스(140)에 디스플레이된 각 프레임을 외부 디스플레이 디바이스(150)에 미러링하도록 시도할 수 있다. 그러나, 리프레시 레이트에서의 차이가 각 프레임이 완전히 미러링되는 것을 막을 수 있다. 스케일러(120)는 각 프레임이 내부 디스프레이 디바이스(140)에 렌더링될 때와 대응하는 프레임이 외부 디스플레이 디바이스(150)에 렌더링될 때를 결정하도록 구성될 수 있다. 데이터 처리 디바이스(101)가, 내부 디스플레이 디바이스(140)에 다음 프레임을 렌더링하려고 시도할 때에, 외부 디스플레이 디바이스(150)에 이전 프레임을 렌더링하는 것이 완료되지 않았다면, 스케일러(120)는 다음 프레임을 드롭하고, 이전 프레임의 렌더링을 완료하고, 이전 프레임이 완료되면 후속 프레임을 계속하여 렌더링하도록 구성될 수 있다. 이 프로세스는 내부 디스플레이 디바이스(140)와 외부 디스플레이 디바이스(150) 모두에 디스플레되는 그래픽 컨텐츠의 동기화를 돕는다.
도 2는 본 발명의 실시예에 따라, 그래픽 컨텐츠를 미러링하기 위한 데이터 처리 시스템 및 외부 디스플레이 디바이스를 도시하는 블록도이다. 일 구현예에서, 데이처 처리 시스템(201)은 도 2에 도시된 태블릿의 폼팩터를 갖는 범용 또는 특수 목적 컴퓨터일 수 있다. 디바이스의 한 표면 중 많은 부분은 통합형으로 실장되고 내부 디스플레이(203)와 맞추어 조정되는 멀티-터치 감지형 터치 스크린 입력 디바이스를 포함할 수 있는 내부 디스플레이(203)를 포함할 수 있다. 내부 디스플레이(203)는 도 1에 도시된 내부 디스플레이 디바이스(140)의 하나의 구현예일 수 있다. 데이터 처리 시스템(201)은 버튼(205)과 같이, 사용자로 하여금 디바이스와 상호작용하게 해주는 하나 이상의 버튼 또는 스위치를 포함할 수 있다. 데이터 처리 시스템(201)은 또한, 다른 무엇보다도, 외부 디스플레이 디바이스(221)와 같은, 외부 디스플레이 디바이스의 연결을 해주는 커넥터(207)를 포함할 수 있다. 데이터 처리 시스템(201)이 다른 커넥터, 예를 들면 충전기 또는 전원용 커넥터, USB(universal serial bus) 케이블용의 USB 커넥터와 같은, 동기화용 커넥터 등을 포함할 수 있다는 것이 이해될 것이다. 데이터 처리 시스템(201)은 또한 WiFi용 무선 트랜시버 또는 휴대폰이나 기타 통신용 무선 트랜시버와 같은 무선 트랜시버를 포함할 수 있다.
일 실시예에서, 데이터 처리 시스템(201)은 케이블(210)을 통해 외부 디스플레이 디바이스(221)에 연결될 수 있다. 다른 실시예에서, 데이터 처리 시스템(201) 및 외부 디스플레이 디바이스는 상술된 바와 같이, 무선 통신을 통하는 등의 몇몇 다른 방식으로 연결될 수 있다. 디바이스(221)의 한 표면 중 많은 부분은 외부 디스플레이(223)를 포함할 수 있다. 외부 디스플레이 디바이스(221)는 도 1에 도시된 외부 디스플레이 디바이스(150)의 일 구현예일 수 있고, 예를 들어, 컴퓨터 모니터, 텔레비전, 프로젝터, 또는 몇몇 다른 디스플레이 디바이스를 포함할 수 있다. 외부 디스플레이 디바이스(221)는 버튼들(225)과 같이, 사용자가 디바이스와 상호작용하게 해주는 하나 이상의 버튼 또는 스위치를 포함할 수 있다. 외부 디스플레이 디바이스(221)는 또한, 다른 무엇보다도, 데이터 처리 시스템(201)의 연결을 해주는 커넥터(227)를 포함할 수 있다. 외부 디스플레이 디바이스(221)는 데이터 처리 시스템(201)에 관련하여 상술한 것과는 다른 커넥터들을 포함할 수 있다고 인식될 것이다. 일 실시예에서, 본원에 기재된 기술에 따르면, 데이터 처리 시스템(201)에 의해 생성되고 내부 디스플레이(203) 상에 디스플레이되는 그래픽 컨텐츠는 외부 디스플레이 디바이스(221)에 클로닝(cloned) 또는 미러링(mirrored)되고 외부 디스플레이(223) 상에 디스플레이될 수 있다.
도 3은 실시예에 따른 외부 디스플레이로 그래픽 컨텐츠를 미러링하기 위한 디스플레이 구동형 아키텍처의 보다 일반적인 예를 도시하는 블록도이다. 아키텍처(300)는 도 1에 도시된 데이터 처리 시스템과 유사한 컴포넌트들을 포함할 수 있는데, 여기서는 합성기(compositor; 115) 및 스케일러(120)와 같은 특정 컴포넌트들이 도 2에 도시된 ASIC(311) 내에서 구현될 수 있다. ASIC는 관련 컴포넌트의 기능성을 제공하도록 구성된 애플리케이션 특정 집적 회로이다. 도 1의 메모리(109A, 109B 및 109C)는 도 2에 도시된 나머지 컴포넌트들에 버스(309)를 통해 연결되는 RAM(random access memory; 307)으로서 구현될 수 있다. 비-휘발성 저장소(313)는 웹 브라우저, 이메일 애플리케이션, 워드 프로세싱 애플리케이션, 문서 뷰잉(viewing) 애플리케이션, 및 본 기술 분야에서 공지된 기타 사용자 애플리케이션과 같은 사용자 애플리케이션 뿐 아니라 본원에 기술된 운영 체제 컴포넌트들과 같은 소프트웨어를 저장할 수 있다. 도 1의 CPU(103) 및 GPU(105)는 도 3에 도시된 처리 디바이스(303) 및 GPU(305)가 될 수 있다. 도 3에 도시된 내부 디스플레이(340)는 도 1에 도시된 내부 디스플레이(140)와 동일한 것일 수 있다. 대안적인 실시예에서, ASIC(311)는 처리 디바이스(303) 및 GPU(305)를 구현할 수 있고, 메모리(307) 및 비-휘발성 저장소(313)가 ASIC(311)에 버스(309)를 통해 연결되는 플래시 메모리로 교체될 수 있다고 인식될 것이다.
도 4는 본 발명의 실시예에 따른, 외부 디스플레이에 그래픽 컨텐츠를 미러링하기 위한 소프트웨어 스택(stack)을 도시하는 블록도이다. 소프트웨어 스택(401)은 도 1에 도시된 데이터 처리 시스템(101) 및 도 3에 도시된 데이터 처리 시스템(300) 상에 구현될 수 있다. 소프트웨어 스택(401)의 각종 소프트웨어 컴포넌트는 RAM(307) 또는 비휘발성 저장소(313) 등의 메모리 또는 소프트웨어 컴포넌트의 실행 중에는 이들 메모리들의 조합에 저장될 수 있다. 컴포넌트들이 실행되고 있지 않을 때는 이들 컴포넌트들은 하드 드라이브 또는 플래시 메모리 등과 같은 비휘발성 저장소에 저장될 수 있다.
소프트웨어 스택은 내부 디스플레이 드라이버(403) 및 외부 디스플레이 드라이버(405) 등의 다수의 디스플레이 드라이버를 포함할 수 있는데, 이들 각각은 프레임 버퍼 라이브러리(411) 또는 기타 컴포넌트 등의 다른 소프트웨어 컴포넌트와 통신하도록 구성될 수 있다. 내부 디스플레이 드라이버(403) 및 외부 디스플레이 드라이버(405)는 본원에 기술된 실시예들에 관련된 양태 이외에도 본 기술 분야에서 공지된 바와 같이 디스플레이(예를 들어, 각각, 내부 디스플레이 디바이스(140) 및 외부 디스플레이 디바이스(150))의 제어에 관련된 종래의 동작을 수행할 수 있다. 소프트웨어 스택(401)의 소프트웨어 컴포넌트들은 통상적인 호출 및 반환 프로세스를 채용할 수 있는데, 여기서 호출 애플리케이션이 다른 소프트웨어 프로세스를 호출하고 이 호출에 대한 응답인 값의 반환을 기다린다. 또한, 소프트웨어 컴포넌트는 이들 호출을 수행하는 데에, 본원에 기술된 API(application programming interface)를 채용할 수 있다.
소프트웨어 스택(401)의 프레임 버퍼 라이브러리(411)는 프레임 버퍼(131-134)와 같은 프레임 버퍼들을 관리하기 위한 소프트웨어 루틴을 구현하여 데이터 처리 시스템의 하나 이상의 디스플레이를 구동시킬 수 있다. 윈도우 서버 소프트웨어 컴포넌트(413)는 공지된 소프트웨어 프로세스들을 구현하여 애플리케이션에 대한 윈도우들을 관리할 수 있다. 또한, 윈도우 서버(413)는 API 호출을 생성하여 합성기(115) 및 스케일러(120)의 연산을 관리할 수 있다. 예를 들면, 윈도우 서버(413)는 합성기(115)에게 메모리(109B 및 109C)로부터 수신된 미디어 데이터를 버퍼(131)에 저장되는 단일 이미지 프레임으로 합성하라고 지시할 수 있다. 일 실시예에서, 프레임은 1/60초 동안 디스플레이되는 이미지를 나타낼 수 있다. 윈도우 서버(413)는 스케일러(120)에게 버퍼(131) 내의 데이터에 대한 스케일링 연산을 수행하여 외부 디스플레이 디바이스(150) 상의 디스플레이용으로 적합하게 만들도록 지시할 수도 있다.
애플리케이션 시작 관리자(417)는 사용자로 하여금, 구현에 따라, 복수의 애플리케이션 또는 한번에 하나의 애플리케이션만을 시작 관리(launch)하도록 해주는 소프트웨어 프로세스일 수 있다. 일 실시예에서, 애플리케이션 시작 관리자는 애플사가 제공한 아이폰용 애플리케이션 시작 관리자인 스프링보드(Springboard)라 알려진 소프트웨어 프로그램일 수 있다. 사용자 애플리케이션(407)은 웹 브라우저, 문서 뷰어, 사진 뷰어, 영화 플레이어, 워드 프로세싱 또는 텍스트 편집 애플리케이션, 이메일 애플리케이션, 또는 본 기술 분야에서 공지된 기타 애플리케이션과 같은 복수의 사용자 애플리케이션 중 어떤 것이든 될 수 있다. 사용자 애플리케이션(407)은 버튼, 윈도우, 본 기술 분야에서 공지된 기타 사용자 인터페이스 요소 및 컴포넌트와 같은 사용자 인터페이스 객체 또는 사용자 그래픽 컨텐츠를 생성하고 그리기(drawing) 위한 하나 이상의 소프트웨어 라이브러리 또는 소프트웨어 프레임워크를 이용할 수 있다.
도 5a는 본 발명의 실시예에 따른 클론 미러링 방법을 도시하는 흐름도이다. 방법(500)은 하드웨어(예를 들면, 회로, 전용 로직, 프로그램가능 로직, 마이크로코드 등), 소프트웨어(예를 들면, 하드웨어 시뮬레이션을 수행하기 위해 처리 디바이스 상에 실행되는 명령어), 또는 이들의 조합을 포함하는 처리 로직에 의해 수행될 수 있다. 처리 로직은 외부 디스플레이 디바이스에 그래픽 컨텐츠를 미러링(mirror)하도록 구성된다. 일 실시예에서, 방법(500)은 도 1에 도시된 데이터 처리 시스템(101) 또는 도 3에 도시된 데이터 처리 시스템(300)에 의해 수행될 수 있다.
도 5a를 참조하면, 블록(510)에서, 방법(500)은 애플리케이션으로부터 그래픽 컨텐츠를 수신한다. 애플리케이션은 예를 들어, 단일 이미지로서 디스플레이되도록 의도되는 그래픽 컨텐츠의 복수의 단편들을 인출할 수 있는 사용자 애플리케이션(407)을 포함할 수 있다. 그래픽 컨텐츠는 메모리(109B 또는 109C)와 같은 메모리에 임시로 저장될 수 있다. 블록(520)에서, 방법(500)은 그래픽 컨텐츠를 이미지(즉, 프레임)로 합성하고, 결과를 프레임 버퍼에 저장한다. GPU(105)의 방향에서, 합성기(115)는 메모리들(109B 및/또는 109C)로부터의 컨텐츠를 이미지 데이터로 합성하고, 결과를 버퍼(131)에 저장할 수 있다. 블록(530)에서, 방법(500)은 버퍼(131)로부터의 합성된 이미지 데이터를 내부 디스플레이 디바이스(140)와 같은 내부 디스플레이 상에 디스플레이한다.
블록(540)에서, 방법(500)은 합성된 이미지 데이터 상에 스케일링 연산들을 수행하여, 이미지가 외부 디스플레이 상에 적절하게 디스플레이되게 할 수 있다. 외부 디스플레이는 내부 디스플레이와는 상이한 특징들을 가질 수 있으며, 따라서, 스케일링 연산들은 사이즈, 해상도, 방향(orientation), 컬러 또는 다른 이미지 특징들을 조절하는 것을 포함할 수 있다. 일 실시예에서, 스케일링 연산들은 스케일러(120)에 의해 수행될 수 있다. 스케일러(120)에 의해 출력된 스케일링된 이미지 데이터는 버퍼(133)와 같은 다른 프레임 버퍼에 저장될 수 있다. 블록(550)에서, 방법(500)은 버퍼(133)로부터의 스케일링된 이미지 데이터를 외부 디스플레이 디바이스(150)와 같은 외부 디스플레이 상에 디스플레이한다.
도 5b는 본 발명의 일 실시예에 따른 클론(clone) 미러링 방법을 도시하는 흐름도이다. 방법(560)은 외부 디스플레이 디바이스에 그래픽 컨텐츠를 미러링하도록 구성된 처리 로직에 의해 수행될 수 있다. 일 실시예에서, 방법(560)은 도 1에 도시된 데이터 처리 시스템(101) 또는 도 3에 도시된 데이터 처리 시스템(300)에 의해 수행될 수 있다.
도 5b를 참조하면, 블록(565-580)에서, 도 5a의 블록들(510-540)에 대하여 전술된 바와 같이, 방법(560)은 애플리케이션으로부터 그래픽 컨텐츠를 수신하는 단계, 그래픽 컨텐츠를 합성하고 결과를 프레임 버퍼에 저장하는 단계, 합성된 이미지의 프레임을 내부 디스플레이 상에 디스플레이하는 단계, 및 합성된 이미지의 프레임 상에서 스케일링 연산들을 수행하는 단계를 수행한다. 블록(585)에서, 방법(500)은 그래픽 컨텐츠가 미러링되고 있는 외부 디스플레이 디바이스 상에 이전 프레임이 디스플레이되는 것이 완료되었는지를 결정한다. 예를 들어, 프레임 버퍼(133)와 같은 프레임 버퍼의 전체 컨텐츠가 외부 디스플레이 디바이스(150) 상에 디스플레이되었을 때, 윈도우 서버 소프트웨어 컴포넌트(413)는 외부 디스플레이 드라이버(405)로부터의 표시(indication)를 수신할 수 있다. 스케일러(120)의 연산들이 비동기식이기 때문에, 이미지의 후속 프레임 상의 처리가 이미 시작되었을 수 있다. 블록(585)에서, 방법(500)이 이전 프레임이 완전히 디스플레이되었다고 결정하면, 블록(590)에서, 방법(500)은 외부 디스플레이 상에 스케일링된 이미지 데이터의 현재 프레임을 디스플레이한다. 그러나, 방법(500)이 이전 프레임이 완전히 디스플레이되지는 않았다고 결정하면, 블록(595)에서는 현재 프레임을 디스플레이하기보다는 방법(500)이 스케일링된 이미지의 현재 프레임을 드롭하고, 블록(565)으로 되돌아가서 후속 프레임 상에서 처리되도록 한다. 이 상황에서 현재 프레임을 드롭하는 것은 이미지가 지연되는 것을 방지하는 것을 도울 수 있고, 내부 디스플레이 및 외부 디스플레이가 동기화를 유지하는 것을 보장할 수 있다.
도 6a는 본 발명의 일 실시예에 따른 자동 클론 미러링 방법을 도시하는 흐름도이다. 사용자 애플리케이션이 외부 디스플레이 디바이스 상에서의 디스플레이를 위한 그래픽 컨테츠를 아직 게시하지 않았다면, 외부 디스플레이 디바이스에 그래픽 컨텐츠를 자동으로 미러링하도록 구성된 처리 로직에 의해 방법(600)이 수행될 수 있다. 일 실시예에서, 방법(600)은 도 1에 도시된 데이터 처리 시스템(101) 또는 도 3에 도시된 데이터 처리 시스템(300)에 의해 수행될 수 있다.
도 6a를 참조하면, 블록(610)에서, 방법(600)은 데이터 처리 시스템에 접속된 외부 디스플레이 디바이스의 존재를 검출한다. 일 실시예에서, 케이블(예를 들어, 케이블(210))이 데이터 처리 시스템(201)의 커넥터(207)에 접속되면, 외부 디스플레이 드라이버(405)는 다른 소프트웨어 컴포넌트들에 신호를 전송할 수 있다. 블록(620)에서, 방법(600)은 사용자 애플리케이션에 의해 인출된 그래픽 컨텐츠를 외부 디스플레이 디바이스에 미러링한다. 도 5a에 관하여 전술된 바와 같이, 미러링은 방법(500)에 따라 수행될 수 있다. 일 실시예에서, 외부 디스플레이가 접속되었든지 간에, 데이터 처리 시스템은 항상 그래픽 컨텐츠를 미러링하도록 구성될 수 있다. 그러나, 다른 실시예들에서, 미러링은 외부 디스플레이의 검출 시에 가능할 수 있다.
블록(630)에서, 방법(600)은 데이터 처리 시스템 상에서 실행 중인 사용자 애플리케이션이 구체적으로는 외부 디스플레이 디바이스 상에서 디스플레이하도록 의도되는 별도의 이미지를 그리고 있는지를 결정한다. 어떤 애플리케이션은 별도의 컨텐츠를 내부 디스플레이 및 외부 디스플레이 상에 디스플레이할 수 있다. 예를 들어, 내부 디스플레이 디바이스 상에 컨트롤들(예를 들어, 재생, 일시중지, 정지, 빨리 감기, 되감기 등)을 디스플레이하면서, 미디어 플레이어 애플리케이션(예를 들어, 영화 플레이어)이 외부 디스플레이 디바이스 상에 실제 미디어 컨텐츠를 디스플레이할 수 있다. 애플리케이션은 이미지를 갖는 메타데이터로 또는 몇몇 다른 식별자를 통해 내부 또는 외부 디스플레이에 대한 특정 컨텐츠를 지정할 수 있다. 블록(630)에서, 방법(600)은 외부 디스플레이에 대해 특정하게 지정되는 그래픽 컨텐츠를 검색한다. 블록(630)에서 애플리케이션이 외부 디스플레이 디바이스에 대해 별도의 이미지를 제공하지 않았다고 방법(600)이 판정하는 경우에는, 블록(620)에서 방법(600)은 계속해서 외부 디스플레이에 대해 그래픽 컨텐츠를 미러링할 수 있다. 블록(630)에서 애플리케이션이 외부 디스플레이 디바이스에 대해 별도의 이미지를 제공하였다고 방법(600)이 판정하는 경우에는, 블록(640)에서 방법(600)은 외부 디스플레이 디바이스에 대한 미러링을 디스에이블하며, 외부 디스플레이 상에 별도의 이미지를 디스플레이한다.
도 6b는 본 발명의 일 실시예에 따른 자동 클론 미러링 방법을 도시하는 플로우차트이다. 일 실시예에 있어서, 방법(650)은 도 1에 도시된 데이터 처리 시스템(101) 또는 도 3에 도시된 데이터 처리 시스템(300)에 의해 수행될 수 있다.
도 6b를 참조하면, 블록(660)에서, 방법(650)은 도 6a에 도시된 바와 같이 데이터 처리 시스템에 접속된 외부 디스플레이 디바이스의 존재를 검출한다. 다른 실시예들에 있어서, 처리 시스템은 외부 디스플레이 디바이스의 존재를 검출하지 않고 이용되는 디폴트 설정(예를 들어, 미러링 인에이블 또는 디스에이블)으로 사전 구성될 수 있다. 블록(670)에서, 방법(650)은 외부 디스플레이 디바이스에 대한 미러링을 디스에이블한다. 일 실시예에 있어서, 이는 디폴트 설정일 수 있으며, 그에 따라 어떠한 변경도 요구되지 않는다. 블록(680)에서, 방법(650)은, 데이터 처리 시스템 상에서 실행되는 사용자 애플리케이션이 별도의 이미지, 상세하게는 외부 디스플레이 디바이스 상에 디스플레이되도록 의도된 별도의 이미지를 그리고 있는지 여부를 판정한다. 블록(680)에서 애플리케이션이 외부 디스플레이 디바이스에 대해 별도의 이미지를 제공하였다고 방법(650)이 판정하는 경우에는, 방법은 미러링을 디스에이블 상태로 유지하며, 외부 디스플레이 상에 별도의 이미지를 디스플레이한다. 블록(680)에서 애플리케이션이 외부 디스플레이 디바이스에 대해 별도의 이미지를 제공하지 않았다고 방법(650)이 판정하는 경우에는, 블록(690)에서 방법(650)은 미러링을 인에이블하며, 외부 디스플레이에 대해 그래픽 컨텐츠를 미러링한다. 다른 실시예들에 있어서, 데이터 처리 시스템은 먼저 애플리케이션이 외부 디스플레이 디바이스 상에 디스플레이하기 위한 별도의 이미지를 그리고 있는지 여부를 판정한 다음, 그에 따라 미러링을 인에이블할지 또는 디스에이블할지를 결정할 수 있다.
도 7은 일 실시예에 따른 클론 미러링 동작들에 대한 타임라인을 도시하는 블록도이다. 타임라인(700)은 외부 디스플레이에 대한 그래픽 컨텐츠의 미러링에 관련된 상이한 동작들이 발생하는 상대적인 타이밍을 도시한다. 이들 동작들은 도 1에 도시된 데이터 처리 시스템(101) 또는 도 3에 도시된 데이터 처리 시스템(300)과 같은 데이터 처리 시스템에 의해 수행될 수 있다. 이 예에 있어서, 타임라인(700)은 (CPU(103)와 같은) CPU, (GPU(105)와 같은) GPU 및 (스케일러(120)와 같은) 스케일러에 의해 수행되는 동작들의 서브세트를 도시하는 3가지 별도의 타임라인을 포함한다. 일 실시예에 있어서, 타임라인(700)은, 어떻게 CPU, GPU 및 스케일러가 서로에 대하여 동작들을 비동기적으로 스케줄링할 수 있는지를 도시한다. 비동기 스케줄링은, 모든 동작들이 이전의 프레임에 대하여 완료되기 전에 동작들이 하나의 프레임에 대하여 수행되게 할 수 있다. 이는 시스템 리소스들이 보다 효율적으로 이용되게 할 수 있다.
일 실시예에 있어서, CPU는 일련의 프레임 A, B 및 C에 대한 합성 명령들의 리스트를 생성하는 역할을 할 수 있다. 합성 명령들의 리스트를 생성하는 것은, 그래픽 데이터의 어느 부분들(및 메모리들(109B, 109C)에서의 그들의 위치)이 각각의 프레임으로 합성되어야 하는지를 특정하는 것을 포함할 수 있다. 프레임 A에 대한 합성 명령들의 리스트의 생성은 특정 시간량(예를 들어 시점 t0부터 시점 t1까지)이 걸릴 수 있다. CPU가 t0에서 프레임 A에 대한 합성 명령들의 리스트의 생성을 완료한 경우, GPU는 출력 버퍼 A(예를 들어, 프레임 버퍼(131))에 대한 컨텐츠를 생성하기 위해서 프레임 A에 대한 합성 명령들의 실행을 시작할 수 있다. 프레임 A에 대한 합성 명령들의 실행은 특정 시간량(예를 들어 시점 t1부터 시점 t3까지)이 걸릴 수 있다. CPU가 (예를 들어, 다른 애플리케이션들로부터) 처리할 다른 명령어들을 갖고 있지 않은 경우, CPU는 후속 프레임 B에 대한 합성 명령들의 리스트의 생성을 시작할 수 있다. 이는 예를 들어 전체 시스템에 의한 프레임 A의 처리가 완료되기 전에도 시점 t2에서 발생할 수 있다.
GPU가 시점 t3에서 프레임 A에 대한 합성 명령들의 실행을 완료한 경우, 스케일러는 출력 버퍼 A의 컨텐츠들에 대한 스케일링 명령들의 실행을 시작할 수 있다. 스케일링 명령들은 스케일러(120)에 대한 전술한 명령들 또는 다른 명령들을 포함할 수 있다. GPU가 수행할 다른 동작들을 갖고 있지 않은 경우, GPU는 시점 t4에서 프레임 B에 대한 합성 명령들의 실행을 시작하여 출력 버퍼 B에 대한 컨텐츠를 생성할 수 있다. GPU가 시점 t5에서 프레임 B에 대한 합성 명령들의 실행을 완료하는 경우, 스케일러는 출력 버퍼 B의 컨텐츠들에 대한 스케일링 명령들의 실행을 시작할 수 있다. 유사하게, GPU가 시점 t4에서 프레임 B에 대한 합성 명령들의 실행을 시작하는 경우, CPU는 또 다른 후속 프레임 C에 대한 합성 명령들의 리스트의 생성을 시작할 수 있다. 시점 t6에서, GPU는 프레임 C에 대한 합성 명령들의 실행을 시작하여 출력 버퍼 C를 생성할 수 있으며, 시점 t7에서, 스케일러는 출력 버퍼 C의 컨텐츠들에 대한 스케일링 명령들의 실행을 시작할 수 있다. CPU, GPU 및 스케일러에 의한 연산들의 실행은 데이터 처리 시스템에 의해 처리될 모든 후속 프레임들에 대해 유사한 비동기식 형태로 계속될 수 있다.
도 8a 및 도 8b는 일 실시예에 따른 외부 디스플레이에 그래픽 컨텐츠를 미러링하는 경우의 스케일링 연산의 일례를 도시한다. 도 8a 및 도 8b에 도시된 스케일링 연산은 이미지의 회전을 포함한다. 몇몇 실시예들에서, 데이터 처리 시스템(801)을 돌리거나 회전시키면 데이터 처리 시스템(801)은 이미지를 자동으로 회전시키도록 구성될 수 있으므로, 이미지는 사용자에게는 항상 동일한 방향으로 나타난다. 예를 들어, 도 8a 및 도 8b에서 데이터 처리 시스템(801)의 디스플레이 상에 도시된 집은 데이터 처리 시스템(801)을 어떻게 돌리는지에 관계없이 정확히 배향된다. 이 방향은 외부 디스플레이 상의 미러링된 이미지에 영향을 미칠 수 있다.
도 8a에서, 데이터 처리 시스템(801) 및 외부 디스플레이 디바이스(821)는 동일한 방식으로(즉, 더 긴 에지를 수평으로 하여) 배향된다. 그래픽 컨텐츠가 데이터 처리 시스템(801)에 의해 (예컨대, 방법(500)을 통해) 외부 디스플레이 디바이스(821)에 미러링될 경우, 여전히 정확히 디스플레이될 것이므로, 스케일러는 이미지를 회전시킬 필요가 없다. 그러나, 도 8b에서는, 데이터 처리 시스템(801)이 외부 디스플레이 디바이스(821)와 다른 각도로 배향되도록 회전된다. 그래픽 컨텐츠가 외부 디스플레이 디바이스(821)에 직접적으로 미러링되었다면, 이미지는 옆으로 회전될 것이다. 스케일러(예컨대, 스케일러(120))는 다른 시스템 컴포넌트로부터 또는 사용자 입력을 통해 데이터 처리 시스템(801)의 방향에 대한 정보를 수신할 수 있고, 그에 따라 스케일링 처리 동안 이미지를 회전시킬 수 있다. 이는 이미지가 외부 디스플레이 디바이스(221)에 디스플레이된 경우에 정확히 배향되게 한다. 이미지를 회전시키는 것은 내부 디스플레이와 외부 디스플레이 사이의 종횡비의 변화를 초래할 수 있다. 몇몇 실시예들에서, 도 8b에 도시된 바와 같이, 정확한 비를 유지하기 위해 디스플레이된 이미지에 블랙 바들이 추가될 수 있다.
도 8a 및 도 8b에 도시된 스케일링 연산은 디스플레이된 이미지의 종횡비 조정을 추가로 포함할 수 있다. 예를 들어, 도 8a에 도시된 일 실시예에서, 데이터 처리 시스템(801)의 내부 디스플레이는 4:3과 같은 제1 종횡비를 가질 수 있다. 외부 디스플레이 디바이스(821)는 예를 들어, 16:9와 같은 내부 디스플레이와는 다른 종횡비를 가질 수 있다. 스케일러(예컨대, 스케일러(120))는 외부 디스플레이 디바이스(821) 자체로부터 또는 사용자 입력을 통해 외부 디스플레이 디바이스(821)의 종횡비에 대한 정보를 수신할 수 있으며, 그에 따라 스케일링 처리 동안 이미지의 종횡비를 조정할 수 있다.
도 9는 본 발명의 몇몇 실시예들에 사용될 수 있는 예시적인 API 아키텍처를 도시하는 블록도이다. 도 9에 도시된 바와 같이, API 아키텍처(1100)는 API(1120)를 구현하는 API 구현 컴포넌트(1110)(예컨대, 운영 체제, 라이브러리, 장치 드라이버, API, 응용 프로그램 또는 그 밖의 모듈)를 포함한다. API(1120)는 API 호출 컴포넌트(1130)에 의해 사용될 수 있는 API 구현 컴포넌트의 하나 이상의 기능, 방법, 클래스, 개체, 프로토콜, 데이터 구조, 포맷 및/또는 그 밖의 특징들을 지정한다. API(1120)는 API 구현 컴포넌트의 기능이 API 호출 컴포넌트로부터 파라미터를 어떻게 수신하는지 및 그 기능이 API 호출 컴포넌트에 결과를 어떻게 반환하는지를 지정하는 적어도 하나의 호출 컨벤션를 지정할 수 있다. API 호출 컴포넌트(1130)(예컨대, 운영 체제, 라이브러리, 장치 드라이버, API, 응용 프로그램 또는 그 밖의 모듈)는 API(1120)에 의해 지정된 API 구현 컴포넌트(1110)의 특징들에 액세스하여 사용하기 위해 API(1120)를 통해 API를 호출한다. API 구현 컴포넌트(1110)는 API 호출에 응답하여 API(1120)를 통해 API 호출 컴포넌트(1130)에 값을 반환할 수 있다.
API 구현 컴포넌트(1110)가 API(1120)를 통해 지정되지 않으며 API 호출 컴포넌트(1130)에 이용가능하지 않은 추가의 기능, 방법, 클래스, 데이터 구조 및/또는 그 밖의 특징들을 포함할 수 있음을 이해할 것이다. API 호출 컴포넌트(1130)는 API 구현 컴포넌트(1110)와 동일한 시스템 상에 존재할 수 있으며, 또는 API(1120)를 사용하는 API 구현 컴포넌트(1110)와 떨어져서 위치되어 네트워크를 통해 액세스될 수 있음을 이해해야 한다. 도 9가 API(1120)와 상호작용하는 단일의 API 호출 컴포넌트(1130)를 도시하지만, API 호출 컴포넌트(1130)와는 다른 언어로 기입될 수 있는 다른 API 호출 컴포넌트들도 API(1120)를 사용할 수 있음을 이해해야 한다.
API 구현 컴포넌트(1110), API(1120) 및 API 호출 컴포넌트(1130)는, 머신에 의해 판독가능한 형태의 정보를 저장하기 위한 임의의 메카니즘(예컨대, 컴퓨터 또는 그 밖의 데이터 처리 시스템)을 포함하는 머신-판독가능 매체에 저장될 수 있다. 예를 들어, 머신-판독가능 매체는 자기 디스크, 광학 디스크, 랜덤 액세스 메모리, 리드 온리 메모리, 플래시 메모리 디바이스 등을 포함한다.
도 10("소프트웨어 스택")의 예시적인 실시예에서, 어플리케이션들이 Service API를 사용하는 서비스 A 또는 B 및 OS API를 사용하는 운영 체제(OS)를 호출할 수 있다. 서비스 A 및 B는 OS API를 사용하는 OS를 호출할 수 있다.
위의 명세서에서는, 본 발명을 특정한 예시적 실시예들을 참조하여 기술하였다. 이하의 특허청구범위에 설명되어 있는 본 발명의 광범위한 사상과 범주에서 벗어나지 않고, 다양한 변형이 이루어질 수 있다는 것은 명백할 것이다. 이에 따라서, 명세서 및 도면은 제한적인 의미로보다는 예시적인 의미로 간주해야 한다.
위의 설명은, 본 발명의 여러 실시예들의 양호한 이해를 제공하기 위해, 특정한 시스템, 컴포넌트, 방법 등의 예들과 같은 많은 특정한 세부세항을 설명하고 있다. 그러나, 당업자에게는, 본 발명의 적어도 일부 실시예들은 이러한 특정한 세부사항이 없이도 실시될 수 있다는 것이 자명할 것이다. 다른 예에서는, 본 발명을 불필요하게 모호하게 하는 것을 회피하기 위해, 잘 알려진 컴포넌트들 또는 방법들은 상세하게 기술되어 있지 않거나, 단순한 블록도 포맷으로 제시되어 있다. 따라서, 설명된 특정한 세부 사항들은 단지 예시이다. 특별한 구현들이 이러한 예시적인 세부사항들로부터 변경될 수도 있지만, 여전히 본 발명의 범주 내에 있다고 고려된다.
본 발명의 실시예들은, 전술한 다양한 연산들을 포함한다. 이러한 연산들은 하드웨어 컴포넌트, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 수행될 수 있다. 여기에서 사용하는 용어 "~에 연결되는"은, 직접적으로 또는 하나 이상의 개재 컴포넌트를 통해 간접적으로 연결되는 것을 의미할 수 있다. 여기에서 설명하는 다양한 버스들 상에 제공되는 임의의 신호들은, 다른 신호들과 시 다중화(time multiplexed)되어 하나 이상의 공통 버스 상에 제공될 수 있다. 부가적으로, 회로 컴포넌트들 또는 블럭들 간의 상호접속은 버스들 또는 싱글 신호선들로서 도시될 수 있다. 각각의 버스는 대안적으로는 하나 이상의 싱글 신호선들이고, 각각의 싱글 신호선은 대안적으로는 버스일 수 있다.
특정 실시예들은 머신 판독가능 매체에 저장된 명령어들을 포함할 수 있는 컴퓨터 프로그램 프로덕트로서 구현될 수 있다. 이 명령어들은 기술된 연산들을 수행하기 위해 범용 또는 특수 목적용 프로세서를 프로그램하는데 이용될 수 있다. 머신 판독 가능 매체는 머신(예를 들면, 컴퓨터)에 의해 판독가능한 형태(예컨대, 소프트웨어, 처리 애플리케이션)로 정보를 저장하거나 전송하기 위한 임의의 메커니즘을 포함한다. 머신 판독가능 매체는, 이에 제한되는 것은 아니지만, 자기 저장 매체(예를 들면, 플로피 디스켓), 광학 저장 매체(예를 들면, CD-ROM), 광자기 저장 매체, 판독 전용 메모리(ROM), 랜덤-액세스 메모리(RAM), 소거가능 프로그램가능 메모리(예컨대, EPROM 및 EEPROM), 플래시 메모리, 또는 전자 명령어를 저장하기에 적합한 또 다른 유형의 매체를 포함할 수 있다.
부가적으로, 일부 실시예들은, 머신 판독가능 매체가 저장되고/되거나 1개보다 많은 컴퓨터 시스템에 의해 실행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 또한, 컴퓨터 시스템들 사이에서 전달되는 정보는 컴퓨터 시스템들을 연결하는 통신 매체에 걸쳐 풀 또는 푸쉬될 수 있다.
여기에서 기술하는 디지털 처리 디바이스는 마이크로프로세서 또는 중앙 처리 유닛, 컨트롤러 등과 같은 하나 이상의 범용 처리 디바이스를 포함할 수 있다. 대안적으로는, 디지털 처리 디바이스는 DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array)등과 같은 하나 이상의 특수 목적 처리 디바이스를 포함할 수 있다. 다른 실시예에서는, 예를 들면, 디지털 처리 디바이스는 코어 유닛 및 다수의 마이크로엔진을 포함하는 다수의 프로세서들을 갖는 네트워크 프로세서일 수 있다. 또한, 디지털 처리 디바이스는 범용 처리 디바이스들과 특수 목적 처리 디바이스(들)의 임의의 조합을 포함할 수 있다.
여기에서의 방법들의 연산들이 특정한 순서로 도시되고 기술되었지만, 각 방법의 연산들의 순서는, 특정한 연산들이 역순으로 수행되거나 특정한 연산이 적어도 부분적으로 다른 연산들과 동시에 수행될 수 있도록 변경될 수 있다. 또 다른 실시예에서는, 별개의 연산들의 서브 연산들 또는 명령어들이 간헐적이고/이거나 교번하는 방식일 수 있다.
위의 설명에서는, 실시예들을 객체 지향 환경(object-oriented environment)의 객체의 관점에서 설명하였다. 본 발명은 객체 지향 환경에서의 실시예들로만 제한되는 것이 아니고, 대안적인 실시예들이 객체 지향 컨셉과 유사한 특징들을 갖는 다른 프로그래밍 환경들에서도 구현될 수 있다는 것을 이해해야 한다.
앞의 명세서에서는, 본 발명을 특정한 예시적 실시예들을 참조하여 설명하였다. 그러나, 첨부된 특허청구범위에 설명된 발명의 광범위한 범주로부터 벗어나지 않는 범위 내에서 다양한 변형 및 변경들이 이루어질 수 있다. 이에 따라서, 명세서 및 도면은 제한적인 의미로보다는 예시적인 의미로서 간주되어야 한다.

Claims (22)

  1. 내부 디스플레이를 포함하는 데이터 처리 시스템에 의해, 상기 내부 디스플레이 상에 이미지를 디스플레이하고 상기 데이터 처리 시스템에 선택적으로 결합된 외부 디스플레이 상에 상기 이미지를 미러링하기 위해서 그래픽 컨텐츠를 합성하여 이미지 데이터를 생성하는 단계 - 상기 그래픽 컨텐츠는 상기 데이터 처리 시스템 상에서 실행되는 애플리케이션으로부터 수신됨 -;
    상기 이미지 데이터를 제1 프레임버퍼에 저장하는 단계;
    상기 제1 프레임버퍼 내의 상기 이미지 데이터로부터 생성되는 이미지를 상기 내부 디스플레이 상에 디스플레이하는 단계;
    상기 데이터 처리 시스템 내의 스케일러에 의해, 상기 제1 프레임버퍼 내의 상기 이미지 데이터에 대한 스케일링 연산들을 수행하는 단계 - 상기 스케일링 연산은, 상기 데이터 처리 시스템이 상기 내부 디스플레이로 하여금 상기 외부 디스플레이와 다른 각도로 되게 하는 배향으로 회전되면 상기 이미지 데이터를 회전시키는 것을 포함하고, 상기 스케일러는 상기 그래픽 컨텐츠의 합성과 관련하여 상기 스케일링 연산들을 비동기적으로 수행함 - ;
    상기 스케일링된 이미지 데이터를 제2 프레임버퍼에 저장하는 단계; 및
    상기 외부 디스플레이 상에 디스플레이되는 상기 이미지가 상기 내부 디스플레이의 상기 배향을 미러링하도록 상기 제2 프레임버퍼 내의 스케일링된 이미지 데이터로부터 생성되는 이미지를 디스플레이하기 위한 데이터를 상기 외부 디스플레이에 송신하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 스케일링된 이미지 데이터는 제1 이미지 프레임과 연관된 데이터를 포함하는 방법.
  3. 제2항에 있어서,
    상기 제1 이미지 프레임과 연관된 상기 이미지 데이터에 대한 스케일링 연산들이 완료되기 전에, 그래픽 컨텐츠를 합성하여 후속 이미지 프레임과 연관된 이미지 데이터를 생성하는 단계를 더 포함하는 방법.
  4. 제2항에 있어서,
    이전 프레임과 연관된 스케일링된 이미지 데이터로부터 생성되는 이미지가 상기 외부 디스플레이 상에 디스플레이되는 것이 완료되었는지를 판정하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 이전 프레임과 연관된 스케일링된 이미지 데이터로부터 생성된 이미지가 상기 외부 디스플레이 상에 디스플레이되는 것이 완료되지 않은 경우, 상기 제1 프레임과 연관된 스케일링된 이미지 데이터를 드롭(dropping)하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 스케일링 연산들은 상기 이미지 데이터의 사이즈, 해상도, 방향(orientation) 및 컬러 중 적어도 하나를 조정하는 것을 포함하는 방법.
  7. 장치로서,
    상기 장치 상에서 실행되는 애플리케이션으로부터 수신된 그래픽 컨텐츠에 대한 합성 명령들의 리스트를 생성하도록 구성되는 처리 디바이스;
    상기 그래픽 컨텐츠에 기초하여 이미지 데이터를 생성하도록 상기 합성 명령들의 리스트를 실행하도록 구성되는, 상기 처리 디바이스에 결합된 그래픽 처리 유닛 - 상기 그래픽 처리 유닛은 또한 외부 디스플레이에 선택적으로 결합됨 - ;
    상기 이미지 데이터로부터 생성되는 이미지를 디스플레이하도록 구성되는, 상기 그래픽 처리 유닛에 결합된 내부 디스플레이;
    상기 이미지 데이터에 대한 스케일링 연산들을 수행하여 상기 외부 디스플레이 상에 디스플레이될 이미지에 대해 스케일링된 이미지 데이터를 생성하도록 구성되는, 상기 그래픽 처리 유닛에 결합된 스케일러 유닛 - 상기 스케일링 연산들은, 상기 장치가 상기 내부 디스플레이로 하여금 상기 외부 디스플레이와 다른 각도로 되게 하는 배향으로 회전되면 상기 이미지 데이터를 회전시키는 것을 포함하고, 상기 회전은 상기 외부 디스플레이 상에 디스플레이되는 상기 이미지가 상기 내부 디스플레이의 상기 배향을 미러링하게 하며, 상기 스케일러 유닛은 상기 처리 디바이스 및 상기 그래픽 처리 유닛의 연산들과 관련하여 상기 스케일링 연산들을 비동기적으로 수행함 -
    을 포함하는 장치.
  8. 제7항에 있어서,
    상기 스케일링된 이미지 데이터는 제1 이미지 프레임과 연관된 데이터를 포함하는 장치.
  9. 제8항에 있어서,
    상기 그래픽 처리 유닛은, 상기 스케일러 유닛이 상기 제1 이미지 프레임과 연관된 상기 이미지 데이터에 대한 스케일링 연산들을 완료하기 전에, 합성 명령들을 실행하여 후속 이미지 프레임과 연관된 이미지 데이터를 생성하도록 더 구성되는 장치.
  10. 제8항에 있어서,
    상기 처리 디바이스는, 이전 프레임과 연관된 스케일링된 이미지 데이터로부터 생성되는 이미지가 상기 외부 디스플레이 상에 디스플레이되는 것이 완료되었는지를 판정하도록 더 구성되는 장치.
  11. 제10항에 있어서,
    상기 처리 디바이스는, 상기 이전 프레임과 연관된 스케일링된 이미지 데이터로부터 생성된 이미지가 상기 외부 디스플레이 상에 디스플레이되는 것이 완료되지 않은 경우, 상기 제1 프레임과 연관된 스케일링된 이미지 데이터를 드롭하도록 더 구성되는 장치.
  12. 제7항에 있어서,
    상기 스케일링 연산들은 상기 이미지 데이터의 사이즈, 해상도, 방향 및 컬러 중 적어도 하나를 조정하는 것을 포함하는 장치.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 실행되는 경우, 데이터 처리 시스템으로 하여금 제1항 내지 제3항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 저장하는 비일시적인(non-transitory) 머신 판독가능 저장 매체.
  21. 제1항에 있어서,
    상기 스케일링 연산들은 상기 외부 디스플레이를 검출하는 것에 응답하여 자동으로 수행되는 방법.
  22. 제7항에 있어서,
    상기 스케일러 유닛은 상기 외부 디스플레이의 검출에 응답하여 상기 스케일링 연산들을 자동으로 수행하는 장치.
KR1020120003601A 2011-01-11 2012-01-11 외부 디스플레이에 대한 그래픽 컨텐츠 미러링 KR101401216B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161431776P 2011-01-11 2011-01-11
US61/431,776 2011-01-11
US13/154,268 2011-06-06
US13/154,268 US8963799B2 (en) 2011-01-11 2011-06-06 Mirroring graphics content to an external display

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020140044444A Division KR20140053934A (ko) 2011-01-11 2014-04-14 외부 디스플레이에 대한 그래픽 컨텐츠 미러링

Publications (2)

Publication Number Publication Date
KR20120081574A KR20120081574A (ko) 2012-07-19
KR101401216B1 true KR101401216B1 (ko) 2014-05-28

Family

ID=45495769

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020120003601A KR101401216B1 (ko) 2011-01-11 2012-01-11 외부 디스플레이에 대한 그래픽 컨텐츠 미러링
KR1020140044444A KR20140053934A (ko) 2011-01-11 2014-04-14 외부 디스플레이에 대한 그래픽 컨텐츠 미러링

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020140044444A KR20140053934A (ko) 2011-01-11 2014-04-14 외부 디스플레이에 대한 그래픽 컨텐츠 미러링

Country Status (7)

Country Link
US (3) US8963799B2 (ko)
EP (1) EP2474904A3 (ko)
JP (2) JP5492232B2 (ko)
KR (2) KR101401216B1 (ko)
CN (1) CN102681810B (ko)
TW (1) TWI480851B (ko)
WO (1) WO2012096967A1 (ko)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092190B2 (en) 2010-10-01 2015-07-28 Z124 Smartpad split screen
US20130076654A1 (en) 2011-09-27 2013-03-28 Imerj LLC Handset states and state diagrams: open, closed transitional and easel
KR20130040542A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 개인정보 보호 장치 및 방법
US8819296B2 (en) * 2011-11-17 2014-08-26 Nokia Corporation Apparatus, a method and a computer program
US9215405B2 (en) * 2011-12-09 2015-12-15 Hewlett-Packard Development Company, L.P. Modification of images based on orientation
WO2013103571A1 (en) * 2012-01-06 2013-07-11 Intel Corporation Reducing the number of read/write operations performed by a cpu to duplicate source data to enable parallel processing on the source data
US8983998B1 (en) 2012-04-25 2015-03-17 Google Inc. Prioritizing points of interest in unfamiliar regions
GB2502082B (en) 2012-05-15 2014-04-16 Displaylink Uk Ltd A display system
US8738826B2 (en) 2012-06-08 2014-05-27 Apple Inc. System and method for display mirroring
US20140073255A1 (en) * 2012-09-07 2014-03-13 Google Inc. System and method for interacting with content of an electronic device
US9390473B2 (en) * 2012-09-21 2016-07-12 Google Inc. Displaying applications on a fixed orientation display
JP6087557B2 (ja) * 2012-09-27 2017-03-01 Necプラットフォームズ株式会社 関連情報提供装置、関連情報提供システム、関連情報提供方法および関連情報提供プログラム
KR101415186B1 (ko) * 2012-10-17 2014-07-04 주식회사 넥서스칩스 그래픽 데이터 전송을 통한 단말기 간 그래픽 영상 공유 장치 및 방법
DE112012007031T5 (de) * 2012-10-19 2015-07-16 Mitsubishi Electric Corporation Informations-Verarbeitungsvorrichtung, Informationsendgerät, Informations-Verarbeitungssystem und Kalibrierungsverfahren
US20140176393A1 (en) * 2012-12-25 2014-06-26 Kabushiki Kaisha Toshiba Information processing apparatus, user assistance method and storage medium
US8971968B2 (en) * 2013-01-18 2015-03-03 Dell Products, Lp System and method for context aware usability management of human machine interfaces
US9250700B2 (en) 2013-02-28 2016-02-02 Apple Inc. System and method for virtual displays
JP2014178458A (ja) * 2013-03-14 2014-09-25 Fujifilm Corp 携帯型医療画像表示装置
CN104077089A (zh) * 2013-03-25 2014-10-01 鸿富锦精密工业(武汉)有限公司 显示系统及其显示方法
EP2816761A1 (en) * 2013-06-17 2014-12-24 Thomson Licensing Wifi display compatible network gateway
CN104252325A (zh) * 2013-06-26 2014-12-31 富泰华工业(深圳)有限公司 屏幕共享系统及方法
KR102064952B1 (ko) * 2013-07-12 2020-01-10 삼성전자주식회사 수신 데이터를 이용하여 어플리케이션을 운영하는 전자 장치
JP5792263B2 (ja) * 2013-11-13 2015-10-07 オリンパス株式会社 映像表示端末、映像送信端末、映像通信システム、映像表示方法、映像送信方法、およびプログラム
JP6360296B2 (ja) * 2013-12-10 2018-07-18 キヤノン株式会社 画像送信装置、画像提示システム、制御方法、及びプログラム
US9830871B2 (en) 2014-01-03 2017-11-28 Nvidia Corporation DC balancing techniques for a variable refresh rate display
KR102331537B1 (ko) * 2014-01-13 2021-11-26 한화테크윈 주식회사 디코딩 장치 및 방법
KR102194635B1 (ko) 2014-01-29 2020-12-23 삼성전자주식회사 디스플레이 컨트롤러 및 이를 포함하는 디스플레이 시스템
KR101510041B1 (ko) * 2014-02-18 2015-04-07 현대자동차주식회사 자동차용 헤드유닛의 스마트기기 미러링 제어 시스템 및 방법
US9384703B2 (en) 2014-02-26 2016-07-05 Nvidia Corporation Techniques for avoiding and remedying DC bias buildup on a flat panel variable refresh rate display
US9711099B2 (en) * 2014-02-26 2017-07-18 Nvidia Corporation Techniques for avoiding and remedying DC bias buildup on a flat panel variable refresh rate display
US20150295973A1 (en) * 2014-04-10 2015-10-15 Screenovate Technologies Ltd. Method for real-time multimedia interface management
US20150379679A1 (en) * 2014-06-25 2015-12-31 Changliang Wang Single Read Composer with Outputs
US10635296B2 (en) 2014-09-24 2020-04-28 Microsoft Technology Licensing, Llc Partitioned application presentation across devices
US9678640B2 (en) 2014-09-24 2017-06-13 Microsoft Technology Licensing, Llc View management architecture
US9769227B2 (en) 2014-09-24 2017-09-19 Microsoft Technology Licensing, Llc Presentation of computing environment on multiple devices
US9860306B2 (en) 2014-09-24 2018-01-02 Microsoft Technology Licensing, Llc Component-specific application presentation histories
US10448111B2 (en) 2014-09-24 2019-10-15 Microsoft Technology Licensing, Llc Content projection
US9818174B2 (en) * 2014-09-24 2017-11-14 Microsoft Technology Licensing, Llc Streamlined handling of monitor topology changes
US10025684B2 (en) 2014-09-24 2018-07-17 Microsoft Technology Licensing, Llc Lending target device resources to host device computing environment
US10152295B2 (en) * 2015-06-01 2018-12-11 Mediatek Inc. Methods for displaying image data in a computer system supporting multiple displays
US10623806B2 (en) 2015-09-09 2020-04-14 Lg Electronics Inc. Method and device for changing orientation of image by WFD sink
KR101718046B1 (ko) * 2015-09-30 2017-03-20 엘지전자 주식회사 동적 해상도 제어를 수행하는 이동 단말기 및 그 제어방법
JP2017092711A (ja) * 2015-11-10 2017-05-25 株式会社ケイティーエス 表示制御装置およびミラーリングシステムの管理装置
US9940898B2 (en) 2016-02-25 2018-04-10 Nvidia Corporation Variable refresh rate video capture and playback
KR102538955B1 (ko) * 2016-03-02 2023-06-01 삼성전자 주식회사 전자 장치와 전자 장치의 영상 디스플레이 및 전송 방법
US9996311B2 (en) * 2016-03-15 2018-06-12 Roku, Inc. Efficient communication interface for casting interactively controlled visual content
CN105808147A (zh) * 2016-05-10 2016-07-27 安徽大学 一种无线复制与扩展显示交互方法及系统
US10313594B2 (en) * 2017-01-05 2019-06-04 Qualcomm Incorporated Dynamically configuring memory bandwidth for image generation
US10163422B1 (en) * 2017-02-22 2018-12-25 Avatron LLC Accelerated secondary display system
CN109218731B (zh) * 2017-06-30 2021-06-01 腾讯科技(深圳)有限公司 移动设备的投屏方法、装置及系统
KR102456456B1 (ko) * 2017-10-17 2022-10-19 삼성전자주식회사 복수 개의 디스플레이를 가지는 전자 장치 및 제어 방법
US11150746B2 (en) * 2018-06-28 2021-10-19 Google Llc Wearable electronic devices having user interface mirroring based on device position
US10896559B2 (en) * 2018-07-11 2021-01-19 International Business Machines Corporation Electronic device containment system with contained device operation capability
KR102509071B1 (ko) * 2018-08-29 2023-03-10 삼성전자주식회사 전자 장치 및 이의 외부 장치를 제어하는 방법
JP7119958B2 (ja) * 2018-11-30 2022-08-17 株式会社リコー 電子黒板システム、電子黒板、方法、プログラム及び会議システム
US11200636B2 (en) * 2018-11-30 2021-12-14 Mediatek Inc. Method and apparatus for generating a series of frames with aid of synthesizer to offload graphics processing unit rendering in electronic device
KR102607214B1 (ko) 2019-03-25 2023-11-29 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
CN110109636B (zh) * 2019-04-28 2022-04-05 华为技术有限公司 投屏方法、电子设备以及系统
CN113096054A (zh) * 2020-01-09 2021-07-09 北京小米移动软件有限公司 图像帧合成方法、装置及存储介质
CN111634188B (zh) * 2020-05-29 2023-03-24 阿波罗智联(北京)科技有限公司 用于投屏的方法和装置
KR102258501B1 (ko) * 2021-03-10 2021-05-31 주봉정보시스템 주식회사 Fpga 기반의 다 채널 영상 조합 출력 장치
CN113254120B (zh) * 2021-04-02 2022-11-01 荣耀终端有限公司 数据处理方法和相关装置
CN114115720B (zh) * 2021-10-07 2024-04-09 中国航空工业集团公司洛阳电光设备研究所 一种基于fpga的高帧率低延迟图形生成装置
WO2023085452A1 (ko) * 2021-11-10 2023-05-19 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091135A (ja) * 1996-06-28 1998-04-10 Cirrus Logic Inc グラフィックスイメージの非同期表示のための方法および装置
JP2005208684A (ja) 2003-07-10 2005-08-04 Sankyo Kk 遊技機
KR20060006531A (ko) * 2004-07-16 2006-01-19 삼성전자주식회사 디스플레이장치 및 그 제어방법
JP2006337859A (ja) 2005-06-03 2006-12-14 Canon Inc 表示制御装置及び方法、並びにプログラム

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992003816A1 (en) 1990-08-16 1992-03-05 General Parametrics Corp. A display control device incorporating an auxiliary display
US5874928A (en) 1995-08-24 1999-02-23 Philips Electronics North America Corporation Method and apparatus for driving a plurality of displays simultaneously
JPH09146497A (ja) * 1995-11-20 1997-06-06 Hitachi Ltd Lcd表示制御装置
US5764201A (en) 1996-01-16 1998-06-09 Neomagic Corp. Multiplexed yuv-movie pixel path for driving dual displays
US6459425B1 (en) 1997-08-25 2002-10-01 Richard A. Holub System for automatic color calibration
US6304297B1 (en) 1998-07-21 2001-10-16 Ati Technologies, Inc. Method and apparatus for manipulating display of update rate
US6853355B1 (en) * 1999-04-07 2005-02-08 Ati International Srl Switchable video overlay apparatus and method
US20080062625A1 (en) 1999-10-18 2008-03-13 Jeffrey Batio Portable computer for dual, rotatable screens
US6888577B2 (en) * 2000-01-24 2005-05-03 Matsushita Electric Industrial Co., Ltd. Image compositing device, recording medium, and program
US6788309B1 (en) 2000-10-03 2004-09-07 Ati International Srl Method and apparatus for generating a video overlay
JP2004171131A (ja) * 2002-11-18 2004-06-17 Toshiba Corp 情報処理装置および表示装置切り替え方法
JP2004178127A (ja) * 2002-11-26 2004-06-24 Fuji Xerox Co Ltd 情報表示処理装置およびプログラム
US20050015731A1 (en) * 2003-07-15 2005-01-20 Microsoft Corporation Handling data across different portions or regions of a desktop
US20060010392A1 (en) * 2004-06-08 2006-01-12 Noel Vicki E Desktop sharing method and system
US20050128217A1 (en) 2003-12-12 2005-06-16 Boaz Cohen Device, system and method for video signal modification
US8381136B2 (en) * 2004-05-24 2013-02-19 Scenera Technologies, Llc Handheld electronic device supporting multiple display mechanisms
US7911536B2 (en) * 2004-09-23 2011-03-22 Intel Corporation Screen filled display of digital video content
US20100217884A2 (en) * 2005-09-28 2010-08-26 NuMedia Ventures Method and system of providing multimedia content
US8810480B2 (en) * 2006-08-04 2014-08-19 Apple Inc. Methods and apparatuses for controlling display devices
TWI365440B (en) * 2007-05-23 2012-06-01 Silicon Integrated Sys Corp Multi-display system and method for displaying video frames thereon
JP4363464B2 (ja) * 2007-06-22 2009-11-11 ソニー株式会社 映像信号処理装置および映像信号処理方法
TW200948042A (en) * 2008-05-09 2009-11-16 Acer Inc Digital television with frame-switch function and its method
JP5014259B2 (ja) * 2008-05-30 2012-08-29 パナソニック株式会社 表示制御装置および表示制御方法
CN101599156B (zh) * 2008-06-05 2016-06-01 阿里巴巴集团控股有限公司 一种广告展现方法、装置和系统
US20100216508A1 (en) * 2009-02-23 2010-08-26 Augusta Technology, Inc. Systems and Methods for Driving an External Display Device Using a Mobile Phone Device
JP2010204262A (ja) * 2009-03-02 2010-09-16 Panasonic Corp 表示処理装置
KR101592990B1 (ko) * 2009-05-20 2016-02-26 엘지전자 주식회사 적어도 2개의 디스플레이 영역을 구비한 휴대 단말기의 동작방법
US20100302141A1 (en) * 2009-05-28 2010-12-02 Subramonian Shankar Display and Interaction Environment for Mobile Devices
US20120030584A1 (en) * 2010-07-30 2012-02-02 Brian Bian Method and apparatus for dynamically switching between scalable graphical user interfaces for mobile devices
JP4818454B1 (ja) * 2010-08-27 2011-11-16 株式会社東芝 表示装置、及び表示方法
US20120050183A1 (en) * 2010-08-27 2012-03-01 Google Inc. Switching display modes based on connection state
US20120075204A1 (en) * 2010-09-27 2012-03-29 Google Inc. Using a Touch-Sensitive Display of a Mobile Device with a Host Computer
US9058224B2 (en) * 2011-06-03 2015-06-16 Apple Inc. Serialization of asynchronous command streams
US8907963B2 (en) * 2011-11-14 2014-12-09 2236008 Ontario Inc. Concurrent graphic content on multiple displays

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091135A (ja) * 1996-06-28 1998-04-10 Cirrus Logic Inc グラフィックスイメージの非同期表示のための方法および装置
JP2005208684A (ja) 2003-07-10 2005-08-04 Sankyo Kk 遊技機
KR20060006531A (ko) * 2004-07-16 2006-01-19 삼성전자주식회사 디스플레이장치 및 그 제어방법
JP2006337859A (ja) 2005-06-03 2006-12-14 Canon Inc 表示制御装置及び方法、並びにプログラム

Also Published As

Publication number Publication date
CN102681810A (zh) 2012-09-19
JP5492232B2 (ja) 2014-05-14
US20120176396A1 (en) 2012-07-12
US9411550B2 (en) 2016-08-09
EP2474904A2 (en) 2012-07-11
US9864560B2 (en) 2018-01-09
WO2012096967A1 (en) 2012-07-19
JP2014160469A (ja) 2014-09-04
EP2474904A3 (en) 2012-08-29
KR20140053934A (ko) 2014-05-08
US20170017452A1 (en) 2017-01-19
JP2012177902A (ja) 2012-09-13
TW201243822A (en) 2012-11-01
US20150130842A1 (en) 2015-05-14
CN102681810B (zh) 2015-09-23
TWI480851B (zh) 2015-04-11
KR20120081574A (ko) 2012-07-19
US8963799B2 (en) 2015-02-24

Similar Documents

Publication Publication Date Title
KR101401216B1 (ko) 외부 디스플레이에 대한 그래픽 컨텐츠 미러링
US10031712B2 (en) System and method for display mirroring
US9129396B2 (en) Display driving architectures
WO2021008424A1 (zh) 图像合成方法、装置、电子设备及存储介质
US7911409B1 (en) Independent views generated for multiple display devices by a software application
WO2017166210A1 (zh) 应用程序的处理方法及终端设备
WO2021008427A1 (zh) 图像合成方法、装置、电子设备及存储介质
WO2024041047A1 (zh) 一种屏幕刷新率切换方法及电子设备
US11249640B2 (en) Electronic apparatus and controlling method thereof
CN112804410A (zh) 多显示屏同步显示方法及装置、视频处理设备和存储介质
US20110298816A1 (en) Updating graphical display content
US9241144B2 (en) Panorama picture scrolling
US10719286B2 (en) Mechanism to present in an atomic manner a single buffer that covers multiple displays
WO2023136984A1 (en) Dpu driven adaptive sync for command mode panels
CN117135294A (zh) 影音串流传输系统以及传输端装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 6