KR102305302B1 - 무선 디스플레이를 위한 다이렉트 스트리밍 - Google Patents
무선 디스플레이를 위한 다이렉트 스트리밍 Download PDFInfo
- Publication number
- KR102305302B1 KR102305302B1 KR1020177002614A KR20177002614A KR102305302B1 KR 102305302 B1 KR102305302 B1 KR 102305302B1 KR 1020177002614 A KR1020177002614 A KR 1020177002614A KR 20177002614 A KR20177002614 A KR 20177002614A KR 102305302 B1 KR102305302 B1 KR 102305302B1
- Authority
- KR
- South Korea
- Prior art keywords
- video data
- frame
- display
- source device
- video
- Prior art date
Links
- 238000004891 communication Methods 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims description 82
- 239000000872 buffer Substances 0.000 claims description 57
- 238000009877 rendering Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 39
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920003208 poly(ethylene sulfide) Polymers 0.000 description 1
- 229920006393 polyether sulfone Polymers 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43637—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1423—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- H04L65/602—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Circuits Of Receivers In General (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
소스 디바이스는 비디오 데이터를 저장하기 위한 메모리 및 하나 이상의 프로세서들을 포함하고, 상기 하나 이상의 프로세서들은, 비디오 데이터의 프레임에 대해 인코딩된 비디오 데이터를 획득하고; 비디오 데이터의 프레임에 대해 미리정의된 프레임을, 소스 디바이스에 대한 디스플레이 인터페이스를 통해 그리고 디스플레이 디바이스에서의 디스플레이를 위해 출력하며; 그리고, 싱크 디바이스와 연관된 디스플레이 디바이스에서의 디스플레이를 위해 인코딩된 비디오 데이터를, 무선 통신 채널을 통해 싱크 디바이스에 전송하도록 구성된다.
Description
우선권 주장
이 출원은 2014년 7월 29일 출원된 미국 가출원 제 62/030,410 호의 이익을 주장하고, 그것의 전체 내용은 참조에 의해 본원에 통합된다.
기술분야
본 개시는 미디어 데이터의 전송 및 재생에 관한 것이고, 보다 상세하게는, 무선 디스플레이를 이용하여 미디어 콘텐츠를 직접 스트리밍하는 것에 관한 것이다.
(MiracastTM 로서도 알려진) Wi-Fi 디스플레이는 Wi-Fi 연합에 의해 개발되고 있는 무선 디스플레이들에 대한 표준이다. 이 표준은 Wi-Fi 다이렉트에 기초한다. Wi-Fi 디스플레이 (Wi-Fi Display; WFD) 표준은 Wi-Fi 디스플레이 싱크에서 Wi-Fi 디스플레이 소스로부터 소싱된 멀티미디어 콘텐츠를 발견, 페어링, 연결, 및 렌더링하기 위한 상호운용가능한 메커니즘을 제공한다. 현재의 WFD 표준에 관한 추가적인 정보는 Wi-Fi 디스플레이 기술적 명세 v1.0.0, 및 Wi-Fi 연합, "Wi-Fi 디스플레이 명세 드래프트 버전 1.31 (Wi-Fi Display Specification draft version 1.31)", Wi-Fi 연합 기술 위원회, 디스플레이 태스크 그룹에서 발견될 수도 있고, 이는 그 전체가 참조에 의해 본원에 통합된다.
무선 디스플레이 (wireless display; WD) 시스템들은 무선 디스플레이 소스 디바이스 (본 명세서에서 "무선 소스 디바이스" 또는 간단히 "소스 디바이스") 및 하나 이상의 무선 디스플레이 싱크 디바이스들 (본 명세서에서 "무선 싱크 디바이스들" 또는 간단히 "싱크 디바이스들") 을 포함한다. 소스 디바이스는 무선 로컬 영역 네트워크 내에서 미디어 콘텐츠를 송신할 수 있는 디바이스일 수도 있다. 싱크 디바이스는 미디어 콘텐츠를 수신 및 렌더링 (rendering) 할 수 있는 디바이스일 수도 있다. 소스 디바이스 및 싱크 디바이스들은 모바일 디바이스들 또는 유선 디바이스들 중 어느 일방의 것일 수도 있다. 모바일 디바이스들로서, 예를 들어, 소스 디바이스 및 싱크 디바이스들은, 소위 "스마트" 폰들 및 "스마트" 패드들 또는 태블릿들, 또는 다른 유형들의 무선 통신 디바이스들을 포함하는, 모바일 전화기들, 무선 통신 카드들을 갖는 휴대용 컴퓨터들, 개인 휴대 정보 단말기 (PDA) 들, 휴대용 미디어 플레이어들, 카메라 또는 캠코더와 같은 디지털 이미지 캡처링 디바이스들, 또는 무선 통신 능력들을 갖는 기타 플래시 메모리 디바이스들을 포함할 수도 있다. 유선 디바이스들로서, 예를 들어, 소스 디바이스 및 싱크 디바이스들은 텔레비전들, 데스크톱 컴퓨터들, 모니터들, 프로젝터들, 프린터들, 오디오 증폭기들, 셋톱 박스들, 게이밍 콘솔들, 라우터들, 차량 대시보드 디스플레이들, 및 디지털 비디오 디스크 (DVD) 플레이어들, 및 미디어 서버들을 포함할 수도 있다.
소스 디바이스는 오디오 비디오 (audio video; AV) 데이터와 같은 미디어 데이터를 특정 미디어 공유 세션에 참가하는 싱크 디바이스들 중 하나 이상에 전송할 수도 있다. 미디어 데이터는 소스 디바이스의 로컬 디스플레이 및 싱크 디바이스들의 디스플레이들의 각각 양자 모두에서 재생될 수도 있다. 보다 구체적으로, 참가 싱크 디바이스들의 각각은 그것의 스크린 및 오디오 장비 상에서의 프리젠테이션 (presentation) 을 위해 수신된 미디어 데이터를 렌더링한다. 일부 경우들에서, 싱크 디바이스의 사용자는 터치 입력들 및 원격 제어 입력들과 같은 사용자 입력들을 싱크 디바이스에 적용할 수도 있다.
일반적으로, 이 개시는 무선 디스플레이 소스 디바이스로부터 무선 디스플레이 싱크 디바이스로 미디어 데이터를 직접 스트리밍하기 위한 기술들에 관한 것이다. 일부 예들에서, 본 기술들은, 코딩된 입력 비디오 데이터를 무선 디스플레이 싱크 디바이스에 직접, 즉, 무선 디스플레이 소스 디바이스가 무선 디스플레이 소스 디바이스의 디스플레이 디바이스에의 출력을 위해 코딩된 입력 비디오 데이터를 디코딩함이 없이, 송신하는 것을 포함한다. 오히려, 무선 디스플레이 소스 디바이스는, 무선 디스플레이 싱크 디바이스에 코딩된 입력 비디오 데이터를 송신하는 동안 무선 디스플레이 소스 디바이스의 디스플레이 디바이스에 미리정의된 프레임 (predefined frame) 을 출력할 수도 있다. 결과로서, 미디어 애플리케이션들 및 플레이어들과 같은 무선 디스플레이 소스 디바이스의 다른 컴포넌트들은 디스플레이 디바이스에 미리정의된 프레임을 렌더링 및 디스플레이하기 위해 정상적으로 동작할 수도 있다. 또한, 코딩된 입력 비디오 데이터는 디스플레이 디바이스 상에서 디코딩되고 디스플레이되지 않고 (그리고 후속하여 인코딩되지 않고) 무선 디스플레이 싱크 디바이스에 송신되기 때문에, 무선 디스플레이 소스 디바이스는 다이렉트 스트리밍 (direct streaming) 을 위해 비디오 디코딩 및 인코딩 하드웨어를 이용하는 것을 회피할 수도 있고, 이는 무선 디스플레이 소스 디바이스들에 대해 전력 절약들을 제공할 수도 있다. 또한, 싱크 디바이스 상에서의 미러링 (mirroring) 을 위해 소스 측에 의해 데이터를 디코딩 및 그 다음 재-인코딩할 필요성을 회피함으로써 싱크 디바이스에서 비디오 품질이 향상될 수도 있다. 특히, 재-인코딩 (re-encoding) 프로세스를 회피하고 소스 디바이스로부터 싱크 디바이스로 원래의 인코딩되지 않은 데이터를 전송함으로써, 싱크 디바이스 상에서 비디오 품질이 향상될 수도 있다.
무선 디스플레이 싱크 디바이스에서의 프리젠테이션을 위해 입력 미디어 데이터의 오디오 데이터 및 비디오 데이터를 동기화하기 위해, 비디오 데이터의 주어진 코딩된 입력 프레임에 대해, 무선 디스플레이 소스 디바이스는 코딩된 입력 프레임에 대해 디스플레이 디바이스에 출력되는 미리정의된 프레임에 대한 렌더링 시간을 결정한다. 렌더링 시간은, 미리정의된 프레임을 수신하는 무선 디스플레이 소스 디바이스의 모듈들에 의해 오디오-비디오 동기화가 수행된 후에 미리정의된 프레임이 렌더링을 위해 소비될 때의 시간을 캡처함으로써 결정될 수도 있다. 실례로, 프리젠테이션의 시간은 미리정의된 프레임을 저장하는 버퍼가 소비 (consumption) 후에 리턴되는 시간으로서 결정될 수도 있다. 이 렌더링 시간은 코딩된 입력 프레임을 위한 프리젠테이션 시간을 나타내고, 무선 디스플레이 소스 디바이스는 이 프리젠테이션 시간을 무선 디스플레이 싱크 디바이스에 전송된 전송 스트림에서의 코딩된 입력 프레임과 연관시킨다. 전송 스트림을 통해 프리젠테이션 시간과 연계하여 코딩된 입력 프레임을 수신 시, 무선 디스플레이 싱크 디바이스는 코딩된 입력 프레임을 디코딩하고 프리젠테이션 시간에 따라 입력 프레임을 디스플레이한다. 무선 디스플레이 소스 디바이스는, 디코딩된 오디오 프레임들이 무선 디스플레이 소스 디바이스에 의해 프리젠팅 또는 출력되고 있음에 따라, 입력 미디어의 디코딩된 그리고 출력된 오디오 프레임들을, 코딩 및 전송을 위해, 캡처한다. (디코딩된) 오디오 데이터를 위한 각각의 프리젠테이션 시간들 및 대응하는 코딩된 입력 프레임에 대한 미리정의된 프레임은 이러한 방식으로 대응하는 오디오/비디오 데이터에 대해 동기화된다. 전송 스트림에서 미리정의된 프레임에 대한 프리젠테이션 시간을 획득 및 연관시킴으로써, 무선 디스플레이 소스 디바이스는 이러한 방식으로 무선 디스플레이 싱크 디바이스에서 오디오/비디오 동기화 (audio/video synchronization ("AV Sync")) 를 용이하게 할 수도 있다. 또한, 본 기술들은, 제한된 인코딩 및 디코딩 능력을 갖는 무선 디스플레이 소스 디바이스로 하여금, 보다 능력있는 무선 디스플레이 싱크 디바이스에 의한 프로세싱 및 출력을 위해 더 높은 해상도 및 품질의 비디오를 송신하는 것을 가능하게 할 수도 있다.
하나의 예로서, 무선 디스플레이 소스 디바이스로부터 무선 디스플레이 싱크 디바이스로 비디오 데이터를 송신하는 방법으로서, 이 방법은, 비디오 데이터의 프레임에 대해 인코딩된 비디오 데이터를 획득하는 단계; 및 비디오 데이터의 프레임에 대해 미리정의된 프레임을 출력하는 단계; 및 무선 디스플레이 싱크 디바이스와 연관된 디스플레이 디바이스에서의 디스플레이를 위해 인코딩된 비디오 데이터를 전송하는 단계를 포함한다.
하나의 예에서, 소스 디바이스는, 비디오 데이터의 프레임에 대해 인코딩된 비디오 데이터를 획득하는 수단; 비디오 데이터의 프레임에 대해 미리정의된 프레임을 출력하는 수단; 및 싱크 디바이스와 연관된 디스플레이 디바이스에서의 디스플레이를 위해, 인코딩된 비디오 데이터를, 무선 통신 채널을 통해 싱크 디바이스에 전송하는 수단을 포함한다.
하나의 예에서, 소스 디바이스는, 비디오 데이터를 저장하기 위한 메모리; 및 하나 이상의 프로세서들을 포함하고, 상기 하나 이상의 프로세서들은, 비디오 데이터의 프레임에 대해 인코딩된 비디오 데이터를 획득하고; 비디오 데이터의 프레임에 대해 미리정의된 프레임을, 소스 디바이스의 디스플레이 인터페이스를 통해 그리고 디스플레이 디바이스에서의 디스플레이를 위해 출력하며; 그리고, 싱크 디바이스와 연관된 디스플레이 디바이스에서의 디스플레이를 위해 인코딩된 비디오 데이터를, 무선 통신 채널을 통해 싱크 디바이스에 전송하도록 구성된다.
하나의 예에서, 컴퓨터 판독가능 저장 매체는, 실행될 때 하나 이상의 프로세서들을, 비디오 데이터의 프레임에 대해 인코딩된 비디오 데이터를 획득하고; 비디오 데이터의 프레임에 대해 미리정의된 프레임을 출력하며; 그리고, 무선 디스플레이 싱크 디바이스와 연관된 디스플레이 디바이스에서의 디스플레이를 위해, 인코딩된 비디오 데이터를 전송하도록 구성하는 명령들을 그 위에 저장하여 포함한다.
본 개시의 하나 이상의 예들의 상세들은 이하에서 첨부 도면들 및 상세한 설명에서 전개된다. 다른 특징들, 목적들, 및 이점들은 상세한 설명 및 도면들로부터, 그리고 청구항들로부터 명백해질 것이다.
도 1 은 이 개시물에서 설명된 기술들에 따라 무선 디스플레이 싱크 컴퓨팅 디바이스에 인코딩된 비디오 데이터를 직접 스트리밍하도록 구성된 무선 디스플레이 소스 컴퓨팅 디바이스의 일 예를 나타내는 블록도이다.
도 2 는 무선 디스플레이 시스템을 위한 데이터 통신 모델 또는 프로토콜 스택의 일 예를 나타내는 블록도이다.
도 3 은 이 개시물에서 설명된 기술들에 따른 무선 디스플레이 소스 디바이스의 일 예를 나타내는 블록도이다.
도 4 는 이 개시물에서 설명된 기술들에 따른 무선 디스플레이 소스 디바이스의 예시적인 동작 모드를 나타내는 플로우차트이다.
도 5 는 본 명세서에서 설명된 기술들에 따라 오디오/비디오 동기화를 위해 무선 디스플레이 소스에 의해 비디오 프레임 프리젠테이션 시간들을 결정하기 위한 예시적인 데이터 플로우를 나타내는 블록도이다.
도 6 은 이 개시물에서 설명된 기술들에 따라 무선 디스플레이 싱크 컴퓨팅 디바이스에 인코딩된 비디오 데이터를 직접 스트리밍하도록 구성된 무선 디스플레이 소스 디바이스의 예시적인 컴포넌트들을 나타내는 블록도이다.
동일한 참조 부호들은 도면들 및 텍스트 전체에 걸쳐 동일한 엘리먼트들을 나타낸다.
도 2 는 무선 디스플레이 시스템을 위한 데이터 통신 모델 또는 프로토콜 스택의 일 예를 나타내는 블록도이다.
도 3 은 이 개시물에서 설명된 기술들에 따른 무선 디스플레이 소스 디바이스의 일 예를 나타내는 블록도이다.
도 4 는 이 개시물에서 설명된 기술들에 따른 무선 디스플레이 소스 디바이스의 예시적인 동작 모드를 나타내는 플로우차트이다.
도 5 는 본 명세서에서 설명된 기술들에 따라 오디오/비디오 동기화를 위해 무선 디스플레이 소스에 의해 비디오 프레임 프리젠테이션 시간들을 결정하기 위한 예시적인 데이터 플로우를 나타내는 블록도이다.
도 6 은 이 개시물에서 설명된 기술들에 따라 무선 디스플레이 싱크 컴퓨팅 디바이스에 인코딩된 비디오 데이터를 직접 스트리밍하도록 구성된 무선 디스플레이 소스 디바이스의 예시적인 컴포넌트들을 나타내는 블록도이다.
동일한 참조 부호들은 도면들 및 텍스트 전체에 걸쳐 동일한 엘리먼트들을 나타낸다.
소스 디바이스 및 싱크 디바이스는 WirelessHD, WHDI (Wireless Home Digital Interface), WiGig, 무선 USB 및 WFD (Wi-Fi Display) (Miracast 로서도 알려짐) 표준과 같은 표준들과 호환되는 무선 디스플레이 (WD) 통신 기술들을 구현할 수도 있다. WFD 표준에 관한 추가적인 정보는 Wi-Fi 연합, "Wi-Fi 디스플레이 명세 드래프트 버전 1.31", Wi-Fi 연합 기술 위원회, 디스플레이 태스크 그룹에서 발견될 수도 있고, 이는 그 전체가 참조에 의해 본원에 통합된다 (이하, "Wi-Fi 디스플레이 명세"). Miracast 로서도 알려진 WFD 와 호환가능한 소스 디바이스는 싱크 디바이스에 의한 출력을 위해 싱크 디바이스에 소스 디바이스에 의해 출력된 오디오 및 비디오를 미러링할 수도 있다. 이러한 방식으로, 예를 들어, 스마트폰 사용자는, 더 높은 해상도 디스플레이 또는 그 외에 향상된 사용자 경험을 제공할 수도 있는, 텔레비전 또는 프로젝터와 같은 다른 디바이스에, 사용자의 스마트폰, 태블릿, 또는 다른 컴퓨팅 디바이스에 의해 출력된 비디오 및 오디오를 미러링할 수도 있다. Wi-Fi 디스플레이 명세에 따르면, WFD 소스 디바이스는 WFD 소스 디바이스 (예컨대, 디스플레이 및 스피커들) 의 사용자 인터페이스 디바이스들에 대해 출력된 비디오 및 오디오 데이터를 인코딩하여 인코딩된 비디오 및 오디오 데이터를 생성한다. WFD 소스 디바이스는 그 후에 그 인코딩된 비디오 및 오디오 데이터를 패킷화하고 WFD 싱크 디바이스에 의한 미러링된 출력을 위해 WFD 싱크 디바이스에 전송한다. WFD 소스 디바이스는 멀티미디어 데이터의 비디오 데이터의 디코딩 및 디스플레이 양방을 행하기 위해 종종 부족한 배터리 전력을 소비할 수도 있다.
이 개시의 기술들은 무선 디스플레이 소스 디바이스로부터 무선 디스플레이 싱크 디바이스로 비디오 데이터를 직접 스트리밍하는 것을 포함할 수도 있다. 일부 예들에서, 본 기술들은, 무선 디스플레이 싱크 디바이스에 (예컨대, 스토리지/메모리 디바이스로부터 판독된 또는 네트워크를 통해 수신된 영화일 수도 있는) 코딩된 입력 비디오 데이터를 직접, 즉, 무선 디스플레이 소스 디바이스가 무선 디스플레이 소스 디바이스의 디스플레이 디바이스에의 출력을 위해 코딩된 입력 비디오 데이터를 디코딩함이 없이, 송신하는 것을 포함한다. 오히려, 무선 디스플레이 소스 디바이스는, 무선 디스플레이 싱크 디바이스에 직접 코딩된 입력 비디오 데이터를 송신하는 동안 무선 디스플레이 소스 디바이스의 디스플레이 디바이스에 미리정의된 프레임을 출력할 수도 있다. 결과로서, 미디어 애플리케이션들 및 플레이어들과 같은 무선 디스플레이 소스 디바이스의 다른 컴포넌트들은 디스플레이 디바이스에 미리정의된 프레임을 렌더링 및 디스플레이하기 위해 정상적으로 동작할 수도 있다. 또한, 코딩된 입력 비디오 데이터는 디코딩됨이 없이 출력되기 때문에, 무선 디스플레이 소스 디바이스는 다이렉트 스트리밍을 위해 비디오 디코딩 하드웨어를 이용하는 것을 회피할 수도 있고, 이는 무선 디스플레이 소스 디바이스에 대해 전력 절약들을 제공할 수도 있다. 코딩된 데이터는 무선 디스플레이 소스 디바이스로부터 직접 스트리밍되기 때문에, 디스플레이 디바이스에 렌더링되는 프레임들을 캡처하는 것에 대한 추가적인 전력 절약이 달성될 수도 있고, 캡처된 프레임을 인코딩하는 것이 회피된다. 게다가, 싱크 디바이스 상에서의 미러링을 위해 소스 측에 의해 데이터를 디코딩 및 그 다음 재-인코딩할 필요성을 회피함으로써 싱크 디바이스에서 비디오 품질이 향상될 수도 있다. 특히, 재-인코딩 프로세스를 회피하고 소스 디바이스로부터 싱크 디바이스로 원래의 인코딩되지 않은 데이터를 전송함으로써, 싱크 디바이스 상에서 비디오 품질이 향상될 수도 있다.
무선 디스플레이 싱크 디바이스에서의 프리젠테이션을 위해 입력 미디어 데이터의 오디오 데이터 및 비디오 데이터를 동기화하기 위해, 비디오 데이터의 주어진 코딩된 입력 프레임에 대해, 무선 디스플레이 소스 디바이스는 코딩된 입력 프레임에 대해 디스플레이 디바이스에 출력되는 미리정의된 프레임에 대한 렌더링 시간을 결정한다. 렌더링 시간은, 미리정의된 프레임을 수신하는 무선 디스플레이 소스 디바이스의 모듈들에 의해 오디오-비디오 동기화가 수행된 후에 미리정의된 프레임이 렌더링을 위해 소비될 때의 시간을 캡처함으로써 결정될 수도 있다. 실례로, 프리젠테이션의 시간은 미리정의된 프레임을 저장하는 버퍼가 소비 후에 리턴되는 시간으로서 결정될 수도 있다. 이 렌더링 시간은 코딩된 입력 프레임을 위한 프리젠테이션 시간을 나타내고, 무선 디스플레이 소스 디바이스는 이 프리젠테이션 시간을 무선 디스플레이 싱크 디바이스에 전송된 전송 스트림에서의 코딩된 입력 프레임과 연관시킨다. 전송 스트림을 통해 프리젠테이션 시간과 연계하여 코딩된 입력 프레임을 수신 시, 무선 디스플레이 싱크 디바이스는 코딩된 입력 프레임을 디코딩하고 프리젠테이션 시간에 따라 입력 프레임을 디스플레이한다. 무선 디스플레이 소스 디바이스는, 디코딩된 오디오 프레임들이 무선 디스플레이 소스 디바이스에 의해 프리젠팅 또는 출력되고 있음에 따라, 입력 미디어의 디코딩된 그리고 출력된 오디오 프레임들을, 코딩 및 전송을 위해, 캡처한다. (디코딩된) 오디오 데이터를 위한 각각의 프리젠테이션 시간들 및 대응하는 코딩된 입력 프레임에 대한 미리정의된 프레임은 이러한 방식으로 대응하는 오디오/비디오 데이터에 대해 동기화된다. 전송 스트림에서 미리정의된 프레임에 대한 프리젠테이션 시간을 획득 및 연관시킴으로써, 무선 디스플레이 소스 디바이스는 이러한 방식으로 무선 디스플레이 싱크 디바이스에서 오디오/비디오 동기화를 용이하게 할 수도 있다.
도 1 은 이 개시물에서 설명된 기술들에 따라 무선 디스플레이 싱크 컴퓨팅 디바이스 (114) ("싱크 디바이스 (114)") 에 인코딩된 비디오 데이터를 직접 스트리밍하도록 구성된 무선 디스플레이 소스 컴퓨팅 디바이스 (110) ("소스 디바이스 (110)") 의 일 예를 나타내는 블록도이다. 소스 디바이스 (110) 는 오디오 및/또는 시각적 미디어와 같은 미디어를 출력하도록 구성된 적어도 하나의 네이티브 (native) 출력 인터페이스를 포함하는 임의의 디바이스를 포함할 수도 있다. 예를 들어, 도 1 에 나타낸 소스 디바이스 (110) 는, 디스플레이 스크린 (112) 을 포함하는 제 1 출력 인터페이스, 및 소스 디바이스에 고유한 (native) 하나 이상의 스피커들 (도 1 에 미도시) 을 포함하는 제 2 출력 인터페이스를 포함하는 스마트 폰 또는 태블릿 컴퓨터를 포함한다. 다른 예들에서, 소스 디바이스 (110) 는 랩톱 컴퓨터, 데스크톱 컴퓨터, 게이밍 컨트롤러, 또는 인코딩된 비디오 데이터를 싱크 디바이스 (114) 에 직접 스트리밍하도록 무선 디스플레이를 사용하도록 구성된 임의의 다른 디바이스를 포함할 수도 있다.
도 1 의 예에서 나타난 바와 같이, 소스 디바이스 (110) 의 스크린 (112) 은 네이티브 그래픽 출력 (native graphical output) (130) 을 출력하도록 구성될 수도 있다. 네이티브 그래픽 출력 (130) 은 예를 들어 하나 이상의 스틸 (still) 또는 비디오 이미지들을 포함할 수도 있다. 도 1 의 예에서 또한 나타낸 바와 같이, 소스 디바이스 (110) 의 스피커들은 네이티브 오디오 출력 (131) 을 제공하도록 구성된다. 네이티브 오디오 출력 (131) 은 하나 이상의 가청 사운드들을 포함할 수도 있다. 이러한 오디오 출력 (131) 은 그래픽 출력 (130) 과 연관 (예를 들어, 그래픽 출력과 함께 출력되도록 구성) 될 수도 있다. 예를 들어, 네이티브 그래픽 출력 (130) 이 비디오 또는 이미지 콘텐츠를 포함하는 경우, 오디오 출력 (131) 은 비디오 또는 이미지와 연관된 가청 사운드들을 포함할 수도 있다.
도 1 에 도시된 바와 같이, 소스 디바이스 (110) 는 적어도 하나의 싱크 디바이스(들) (114) (이하, "싱크 디바이스 (114)") 에 통신가능하게 (communicatively) 커플링된다. 싱크 디바이스 (114) 는 소스 디바이스 (110) 의 네이티브 미디어 출력을 미러링하기 위해, 싱크 디바이스 (114) 와 연관된 하나 이상의 출력 디바이스들 (120, 124) 을 동작시키도록 소스 디바이스 (110) 에 의해 사용될 수도 있다. 본원에서 기술된 바와 같은 "미러링" 이라는 용어는 소스 디바이스 (110) 의 네이티브 오디오, 비디오, 및/또는 이미지 미디어 출력과 같은 네이티브 미디어의 적어도 부분을 출력하도록 소스 디바이스 (110) 에 의해 적어도 하나의 싱크 디바이스 (114) 를 제어하는 것을 지칭할 수도 있다.
소스 디바이스 (110) 는 싱크 디바이스 (114) 와 연관된 하나 이상의 출력 디바이스들 (120, 124) 을 통해 소스 디바이스 (110) 의 미디어 출력을 미러링하도록 활성 미러링 세션으로 싱크 디바이스 (114) 를 제어할 수도 있다. 예를 들어, 도 1 에 도시된 바와 같이, 소스 디바이스 (110) 는, 소스 디바이스 (110) 의 네이티브 그래픽 출력 (130) 과 실질적으로 유사한 그래픽 출력을 포함할 수도 있는 미러링된 그래픽 출력 (132) 을 출력하도록 외부 디스플레이 디바이스 (120) 를 제어할 수도 있다. 미러링된 그래픽 출력 (132) 은 네이티브 그래픽 출력 (130) 과 동일한 하나 이상의 이미지들을 포함할 수도 있지만, 이러한 이미지들은 외부 디스플레이 디바이스 (120) 를 통한 프리젠테이션을 위해 프로세싱, 사이징, 포맷팅, 및/또는 그외에 변형될 수도 있다.
도 1 에서도 나타난 바와 같이, 소스 디바이스 (110) 는 도 1 에 나타난 오디오 출력 (131) 과 실질적으로 유사한 오디오 출력을 포함할 수도 있는 미러링된 오디오 출력 (136) 을 출력하도록 외부 오디오 디바이스 (124) 를 제어할 수도 있다. 미러링된 오디오 출력 (136) 은 네이티브 그래픽 출력 (130) 과 동일한 가청 사운드들을 포함할 수도 있지만, 외부 오디오 디바이스 (124) 를 통해 출력되도록 프로세싱, 포맷팅, 및/또는 그외에 변형될 수도 있다. 몇몇 예들에서, 소스 디바이스 (110) 는, 소스 디바이스 (110) 의 네이티브 그래픽 출력 (130) 및 네이티브 오디오 출력 (131) 을 포함하는 미디어를 출력하도록 싱크 디바이스 (114) 를 제어할 수도 있다.
도 1 에 도시된 바와 같이, 몇몇 예들에서, 싱크 디바이스 (114) 는, 이미지들을 뷰어 (viewer) 에게 프리젠팅하도록 구성된 스크린 (122) 을 포함하는, 텔리비전 디스플레이, 컴퓨터 모니터 등과 같은 외부 디스플레이 디바이스 (120), 및/또는 스피커들 또는 스테레오 시스템과 같은 외부 오디오 디바이스 (124) 중 하나 이상에 커플링되는 디바이스를 포함할 수도 있다. 예를 들어, 싱크 디바이스 (114) 는, 셋톱 박스 (예를 들어, GOOGLE TV, APPLE TV, ROKU), 게이밍 콘솔 (예를 들어, NINTENDO WII, SONY PLAYSTATION 3, MICROSOFT XBOX), 디지털 비디오 디스크 (DVD) 플레이어, 스마트 TV, TV 동글 디바이스 (예컨대, 구글 크롬캐스트), 블루-레이 플레이어, 또는 도 1 의 예에서 도시된 바와 같이 외부 오디오 디바이스 및/또는 외부 디스플레이 디바이스에 커플링된 다른 별개의 유닛을 포함할 수도 있다. 도 1 에 도시되지 않은 다른 예들에서, 싱크 디바이스 (114), 외부 디스플레이 디바이스 (120), 및/또는 외부 오디오 디바이스 (124) 중 하나 이상은 단일 디바이스로서 결합될 수도 있다. 예를 들어, 텔레비전 또는 컴퓨터 모니터와 같은 디스플레이 디바이스는 스크린 (122) 및 하나 이상의 스피커들 양자 모두를 포함할 수도 있다. 다른 예들에서, 동일 또는 다른 싱크 디바이스 (114) 가 그 하나 이상의 싱크 디바이스 (114) 와 별개인 하나 이상의 오디오 또는 비디오 출력 인터페이스를 제어할 수도 있다. 또 다른 예들에 따르면, 본원에서 기술된 바와 같이 싱크 디바이스 (114) 에 의해 수행되는 기능은 외부 디스플레이 디바이스 및/또는 외부 오디오 디바이스 중 하나 이상에 의해 수행될 수도 있다. 예를 들어, 텔레비전 디스플레이 및/또는 스테레오 수신기는, 소스 디바이스 (110) 의 네이티브 미디어가 텔레비전 디스플레이 또는 스테레오 수신기에 미러링될 수도 있도록, 소스 디바이스 (110) 와 텔레비전 및/또는 스테레오를 통신가능하게 커플링하도록 구성된 하드웨어 및/또는 소프트웨어를 포함할 수도 있다.
소스 디바이스 (110) 는 무선 통신 채널 (150) 을 통해 소스 디바이스 (110) 의 미디어 출력을 미러링하기 위해 싱크 디바이스 (114) 에 멀티미디어 데이터를 스트리밍한다. 통신 채널 (150) 은 비교적 짧은 범위의 통신 채널일 수도 있고, 정의된 2.4 GHz, 3.6 GHz, 5 GHz, 60 GHz, 또는 울트라와이드밴드 (UWB) 주파수 대역 구조를 구현하는 것과 같이, Wi-Fi, 블루투스 등과 같은 물리적 채널 구조를 구현할 수도 있다. 하지만, 통신 채널 (150) 은 이러한 점에 반드시 제한되지는 않고, 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들, 또는 무선 및 유선 매체들의 임의의 조합과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 다른 예들에서, 통신 채널 (150) 은 심지어, 유선 또는 무선 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같이, 패킷-기반 네트워크의 일부를 형성할 수도 있다. 추가적으로 또는 대안적으로, 통신 채널 (150) 은 피어-투-피어 (peer-to-peer) 링크를 형성하기 위해 소스 디바이스 (110) 및 싱크 디바이스 (114) 에 의해 사용될 수도 있다.
소스 디바이스 (110) 및 싱크 디바이스 (114) 는, 예를 들어, 실시간 스트리밍 프로토콜 (Real-Time Streaming Protocol; RTSP) 제어 메시지들을 이용하여 능력 협상에 따라 통신 세션을 확립할 수도 있다. 하나의 예에서, 소스 디바이스 (110) 및 싱크 디바이스 (114) 에 의해 통신 세션을 확립하기 위한 요청이 전송될 수도 있다. 일단 미디어 공유 세션이 확립되면, 소스 디바이스 (110) 는 미디어 데이터, 예컨대, 오디오 비디오 (AV) 데이터를 실시간 전송 프로토콜 (Real-time Transport protocol; RTP) 을 이용하여 싱크 디바이스 (114) 에 송신한다. 싱크 디바이스 (114) 는 수신된 미디어 데이터를 외부 디스플레이 디바이스 (120) 및 오디오 디바이스 (124) 에 렌더링 및 출력한다.
소스 디바이스 (110) 및 싱크 디바이스 (114) 는 그 다음, IEEE 802.11 패밀리 표준들로부터의 표준과 같은 통신 프로토콜을 이용하여 통신 채널 (150) 을 통해 통신할 수도 있다. 하나의 예에서, 통신 채널 (150) 은 네트워크 통신 채널일 수도 있다. 이 예에서, 통신 서비스 프로바이더 (provider) 는 중앙집중적으로 동작하고 네트워크 허브로서 기지국을 이용하여 네트워크를 관리할 수도 있다. 소스 디바이스 (110) 및 싱크 디바이스 (114) 는, 예를 들어, 소스 디바이스 (110) 및 싱크 디바이스 (114) 가 무선 액세스 포인트들 또는 소위 핫스팟들과 같은 중개자 (intermediary) 의 사용 없이 서로 직접 통신한다. 소스 디바이스 (110) 및 싱크 디바이스 (114) 는 또한 네트워크 혼잡을 회피 또는 감소시키기 위해 터널링된 다이렉트 링크 셋업 (tunneled direct link setup; TDLS) 을 확립할 수도 있다. Wi-Fi 다이렉트 및 TDLS 는 비교적 단거리 통신 세션들을 셋업하기 위한 것이다. 이 문맥에서의 비교적 단거리는, 비록 잡음이나 장애가 있는 환경에서 디바이스들 사이의 거리는 대략적으로 35 미터 미만, 또는 대략적으로 20 미터 미만과 같이 훨씬 더 짧을 수도 있지만, 예를 들어 대략적으로 70 미터 미만을 지칭할 수도 있다.
이 개시의 기술들은 종종 WFD 와 관련하여 설명될 수도 있지만, 이들 기술들의 양태들은 또한 다른 통신 프로토콜들과 호환가능할 수도 있음이 고려된다. 예시적으로 그리고 비제한적으로, 소스 디바이스 (110) 와 싱크 디바이스 (114) 사이의 무선 통신은 직교 주파수 분할 멀티플렉싱 (OFDM) 기법들을 이용할 수도 있다. 시간 분할 다중 액세스 (TDMA), 주파수 분할 다중 액세스 (FDMA), 코드 분할 다중 액세스 (CDMA), 또는 OFDM, FDMA, TDMA 및/또는 CDMA 의 임의의 조합을 비제한적으로 포함하는 아주 다양한 다른 무선 통신 기법들이 또한 사용될 수도 있다.
상기 설명된 바와 같이, 소스 디바이스 (110) 는 싱크 디바이스 (114) 를 통해 소스 디바이스 (110) 의 미디어 출력을 미러링하도록 구성될 수도 있다. 예를 들어, 소스 디바이스 (110) 는 사용자에게 미러링 모드를 활성화 또는 비활성화하기 위한 사용자-선택가능한 옵션 (option) 을 제공할 수도 있고, 여기서, 네이티브 오디오 미디어, 시각적 미디어, 또는 양자 모두는 싱크 디바이스 (114) 를 통해 출력된다. 표준 동작 모드에서, 소스 디바이스 (110) 는, 통신 매체 (예컨대, 인터넷) 를 통해서 또는 하드 드라이브 또는 디지털 비디오 디스크 (DVD) 와 같은 컴퓨터-판독가능 저장 매체로부터 복수의 인코딩된 미디어 데이터의 형태로 미디어를 수신하고, 복수의 인코딩된 미디어 데이터를 포함하는 미디어를 출력하기 위해 소스 디바이스 (110) 의 하나 이상의 네이티브 출력 인터페이스들을 제어할 수도 있다. 이러한 네이티브 출력 인터페이스들은 네이티브 그래픽 출력 (130) 을 출력하기 위한 스크린 (112) 및/또는 네이티브 오디오 (131) 를 출력하기 위한 스피커를 포함할 수도 있다. 이러한 미러링 모드에서, 소스 디바이스 (110) 는, 싱크 디바이스 (114) 로 하여금, 소스 디바이스 (110) 가 표준 동작 모드에서 하나 이상의 네이티브 출력 인터페이스들을 이용하여 출력했어야 할 네이티브 그래픽 출력 (130) 및/또는 네이티브 오디오 출력 (131) 과 실질적으로 동일한 미디어를 출력하게 하기 위해 싱크 디바이스 (114) 를 제어할 수도 있다.
이 개시물에서 설명된 기술들에 따르면, 네이티브 그래픽 출력 (130) 을 싱크 디바이스 (114) 에 미러링하도록 동작할 때, 소스 디바이스 (110) 는, 비디오 데이터를 디코딩함이 없이 그리고 기존의 비디오 재생 또는 스트리밍 애플리케이션들과 간섭함이 없이 통신 채널 (150) 을 통해 싱크 디바이스 (114) 에 수신된 미디어 데이터의 비디오 데이터를 전송하기 위해 네이티브 그래픽 출력 (130) 의 미러링을 일시 중단할 수도 있다. 일부 예들에서, 소스 디바이스 (110) 는 네이티브 그래픽 출력 (130) 으로서의 디스플레이를 위해 비디오 데이터를 출력하지 않는다.
일부 예들에서, 네이티브 그래픽 출력 (130) 을 획득하고 스크린 (112) 을 통해 출력하기 위해 인코딩된 비디오 데이터를 디코딩하기 보다는, 소스 디바이스 (110) 는, 인코딩된 비디오 데이터를 싱크 디바이스 (114) 에 동시에 전송하면서 스크린 (112) 에서의 디스플레이를 위해 네이티브 그래픽 출력 (130) 으로서 미리정의된 비디오 프레임을 출력할 수도 있다. 예를 들어, 사용자는 소스 디바이스 (110) 에 의해 실행된 애플리케이션이 멀티미디어 데이터를 플레이하도록 요청할 수도 있다. 애플리케이션은, 예를 들어, 소스 디바이스 (110) 의 컴퓨터-판독가능 저장 매체로부터 또는 서버로의 통신 채널을 통해, 압축 표준에 따라서 인코딩된, 멀티미디어 데이터를 획득할 수도 있다. 미러링 모드에서 동작할 때, 멀티미디어 데이터의 디코딩된 비디오 데이터의 프레임들 대신에, 소스 디바이스 (110) 는 네이티브 그래픽 출력 (130) 으로서의 디스플레이를 위해 스크린 (112) 에 미리정의된 비디오 프레임을 출력한다. 동시에, 소스 디바이스 (110) 는 싱크 디바이스 (114) 에 인코딩된 멀티미디어 데이터의 인코딩된 비디오 데이터를 전송한다.
일부 예들에서, 소스 디바이스 (110) 는 프리젠테이션 시간을 통신 채널 (150) 을 통해 전송된 비디오 데이터와 연관시킴으로써 싱크 디바이스 (114) 에서의 멀티미디어 데이터의 오디오 및 비디오 데이터의 동기화된 출력을 용이하게 한다. 소스 디바이스 (110) 는 네이티브 그래픽 출력 (130) 으로서 소스 디바이스 (110) 에 의해 출력된 미리정의된 비디오 프레임의 프리젠테이션에 기초하여 프리젠테이션 시간을 획득할 수도 있다. 달리 말하면, 미러링 모드에서 동작할 때, 소스 디바이스 (110) 는, 멀티미디어 데이터의 비디오 데이터의 비디오 프레임 대신에, 네이티브 그래픽 출력 (130) 으로서 스크린 (112) 에 미리정의된 프레임을 출력할 수도 있다. 소스 디바이스 (110) 는, 비디오 프레임에 대응하는 미리정의된 프레임 출력을 위해 프리젠테이션 시간에 기초하여 타임스탬프 (timestamp) 를 획득하고, 타임스탬프와 연계하여 비디오 프레임에 대한 인코딩된 비디오 데이터를 전송한다. 싱크 디바이스 (114) 는 그 다음, 비디오 프레임을 획득하기 위해 인코딩된 비디오 데이터를 디코딩하고, 타임스탬프에 의해 특정된 시간에서 미러링된 그래픽 출력 (132) 으로서 외부 디스플레이 디바이스 (120) 에 비디오 프레임을 출력할 수도 있다. 일부 예들에서, 소스 디바이스 (110) 는, 렌더링된 오디오 데이터를 인코딩하고 인코딩된 오디오 데이터를 대응하는 오디오 데이터의 프리젠테이션 시간들과 연관시킴으로써 멀티미디어 데이터의 오디오 데이터를 미러링한다. 상기 설명된 방식으로 전송 스트림에서 미리정의된 비디오 프레임을 위한 프리젠테이션 시간을 획득 및 연관시킴으로써, 소스 디바이스 (110) 는 싱크 디바이스 (114) 에서의 오디오 및 비디오의 동기화된 출력을 용이하게 한다.
미리정의된 프레임은 일부 예들에서 블랙 프레임을 프리젠팅하기 위해 스크린 (112) 의 전력 소모를 최소화하기 위한 블랙 프레임일 수도 있다. 일부 예들에서, 미리정의된 프레임은 로고, 사용자 경고 또는 다른 사용자 메시지일 수도 있다. 미리정의된 프레임은 인코딩된, 입력 비디오 데이터를 위한 비디오 프레임들의 것과 유사한 해상도를 가질 수도 있다.
일부 예들에서, 소스 디바이스 (110) 는 미러링 모드에서 동작하는 동안 비디오 데이터를 "디코딩" 하기 위한 미러링 디코더를 사용한다. 미러링 디코더는 소스 디바이스 (110) 의 디코딩 하드웨어에 대한 디코더 인터페이스를 위해 다른 비디오 디코더들과 동일한 인터페이스를 제시할 수도 있다. 미러링 디코더는 디코더 인터페이스에 대해 다른 비디오 디코더들의 것과 동일한 비디오 프레임 버퍼 플로우를 추가적으로 제공할 수도 있다. 하지만, 스크린 (112) 에의 출력을 위해 비디오 데이터를 디코딩하기 보다는, 이러한 예들에서의 미러링 디코더는 디코더 인터페이스를 위해 입력 버퍼들을 소비하고, 입력 버퍼들은 인코딩된 비디오 데이터를 저장하며, 소스 디바이스 (110) 는 인코딩된 비디오 데이터를 싱크 디바이스 (114) 에 전송한다. 또한, 디코더 인터페이스를 위해 출력 버퍼들을 통한 출력을 위해 인코딩된 비디오 데이터를 디코딩하기 보다는, 미러링 디코더는 디코더 인터페이스를 위한 출력 버퍼들에 미리정의된 프레임을 기입한다. 결과로서, 소스 디바이스 (110) 는 네이티브 그래픽 출력 (130) 으로서 스크린 (112) 에 미리정의된 프레임을 출력할 수도 있다. 출력 버퍼가 소비되는 시간은 출력 버퍼에 저장된 비디오 프레임을 위한 프리젠테이션 시간에 적어도 근접한다. 미러링 디코더는, 출력 버퍼가 소비되는 미러링 애플리케이션으로부터 신호 또는 다른 통지를 수신하고, 신호 수신 시에 타임스탬프를 생성하고, 그 타임스탬프를 그렇지 않으면 디코딩되고 출력 버퍼에 저장되었을 대응하는 인코딩된 비디오 데이터와 연관시킬 수도 있다. 소스 디바이스 (110) 는 그 다음, 싱크 디바이스 (114) 로 하여금, 인코딩된 비디오를 비디오 프레임으로 디코딩하고 연관된 프리젠테이션 시간에서 비디오 프레임을 프리젠팅하게 하기 위해 싱크 디바이스 (114) 에 대해 전송 스트림에서 타임스탬프 (프리젠테이션 시간) 와 연계하여 인코딩된 비디오 데이터를 전송할 수도 있다.
도 2 는 무선 디스플레이 (WD) 시스템을 위한 데이터 통신 모델 또는 프로토콜 스택의 일 예를 나타내는 블록도이다. 데이터 통신 모델 (200) 은 구현된 WD 시스템에서 소스 디바이스와 싱크 디바이스 사이에 데이터를 송신하기 위해 사용되는 데이터 및 제어 프로토콜들 사이의 상호작용들을 나타낸다. 일부 예들에서, 도 1 의 소스 디바이스 (110) 는 데이터 통신 모델 (200) 을 이용할 수도 있다. 데이터 통신 모델 (200) 은 물리 (PHY) 계층 (202), 미디어 액세스 제어 (MAC) 계층 (204), 인터넷 프로토콜 (IP) (206), 사용자 데이터그램 프로토콜 (UDP) (208), 실시간 전송 프로토콜 (RTP) (210), MPEG2 전송 스트림 (MPEG2-TS) (212), 콘텐츠 보호 (214), 패킷화된 엘리멘터리 스트림 (PES) 패킷화 (216), 미러 코덱 (218A) 을 포함하는 비디오 코덱 (218), 오디오 코덱 (220), 전송 제어 프로토콜 (TCP) (222), 실시간 스트리밍 프로토콜 (RTSP) (224), 사용자 입력 패킷화 (228), 휴먼 인터페이스 디바이스 명령들 (HIDC) (230), 및 일반적 사용자 입력들 (232) 을 포함한다. 사용자 입력 패킷화 (228), HIDC (230), 및 일반적 사용자 입력들 (232) 은 사용자 입력 백 채널 (UIBC) (201) 을 구성할 수도 있다.
물리 계층 (202) 및 MAC 계층 (204) 은 WD 시스템에서 통신을 위해 사용되는 물리적 시그널링, 어드레싱 및 채널 액세스 제어를 정의할 수도 있다. 물리 계층 (202) 및 MAC 계층 (204) 은 통신을 위해 사용되는 주파수 대역 구조, 예컨대, 2.4 GHz, 3.6 GHz, 5 GHz, 60 GHz 또는 울트라와이드밴드 (UWB) 주파수 대역 구조들에서 정의된 연방 통신 위원회 대역들을 정의할 수도 있다. 물리 계층 (202) 및 MAC 계층 (204) 은 또한 데이터 변조 기법들, 예컨대, 아날로그 및 디지털 진폭 변조, 주파수 변조, 위상 변조 기법들, 및 이들의 조합을 정의할 수도 있다. 물리 계층 (202) 및 MAC 계층 (204) 은 또한, 멀티플렉싱 기법들, 예컨대, 시간 분할 다중 액세스 (TDMA), 주파수 분할 다중 액세스 (FDMA), 코드 분할 다중 액세스 (CDMA), 또는 OFDM, FDMA, TDMA 및/또는 CDMA 의 임의의 조합을 정의할 수도 있다. 하나의 예에서, 물리 계층 (202) 및 매체 액세스 제어 계층 (204) 은 WFD 에 의해 제공되는 것과 같은, Wi-Fi (예컨대, IEEE 802.11-2007 및 802.11n-2009x) 표준에 의해 정의될 수도 있다. 다른 예들에서, 물리 계층 (202) 및 매체 액세스 제어 계층 (204) 은 무선 HD, 무선 홈 디지털 인터페이스 (WHDI), WiGig, 및 무선 USB 중 임의의 것에 의해 정의될 수도 있다.
인터넷 프로토콜 (IP) (206), 사용자 데이터그램 프로토콜 (UDP) (208), 실시간 전송 프로토콜 (RTP) (210), 전송 제어 프로토콜 (TCP) (222), 및 실시간 스트리밍 프로토콜 (RTSP) (224) 은 WD 시스템에서 사용되는 패킷 구조들 및 캡슐화들을 정의하고, 인터넷 엔지니어링 태스크 포스 (IETF) 에 의해 유지되는 표준들에 따라 정의될 수도 있다.
RTSP (224) 는 실례로 능력들을 협상하고 세션을 확립하고 세션 유지 및 관리를 위해 소스 디바이스 (110) 및 싱크 디바이스 (114) 에 의해 사용될 수도 있다. 소스 디바이스 (110) 및 싱크 디바이스 (114) 는 UIBC 상에서 피드백 채널 및 피드백 입력 카테고리를 지원하기 위해 소스 디바이스 (110) 및 싱크 디바이스 (114) 의 능력을 협상하기 위해 RTSP 메시지 트랜잭션 (transaction) 을 이용하여 피드백 채널을 확립할 수도 있다. 피드백 채널을 확립하기 위한 RTSP 협상의 이용은 미디어 공유 세션을 확립하기 위해 RTSP 협상 프로세스를 이용하는 것과 유사할 수도 있다.
하나 이상의 비디오 코덱(들) (218) 은 WD 통신 채널을 통한 전송을 위해 비디오 데이터를 압축하기 위해 WD 시스템에 의해 사용될 수도 있는 비디오 데이터 코딩 기법들을 정의할 수도 있다. 비디오 코덱(들) (218) 의 각각은 ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 또는 ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, ITU-T H.264 (ISO/IEC MPEG-4 AVC 로도 알려짐), VP8, VP9 및 HEVC (High-Efficiency Video Coding) 과 같은 임의의 수의 비디오 압축 표준들을 구현할 수도 있다. 일부 경우들에서 WD 시스템은 압축된 또는 압축되지 않은 비디오 데이터 중 어느 일방일 수도 있음에 유의하여야 한다. 비디오 코덱(들) (218) 은, 이 예에서, WD 싱크 디바이스에 인코딩된 비디오 데이터를 직접 스트리밍하기 위해 미러 코덱 (218A) 을 포함한다.
오디오 코덱 (220) 은 WD 시스템에 의해 사용될 수도 있는 오디오 데이터 코딩 기법들을 정의할 수도 있다. 오디오 데이터는 돌비 및 디지털 시어터 시스템에 의해 개발된 것들과 같은 멀티-채널 포맷들을 이용하여 코딩될 수도 있다. 오디오 데이터는 압축된 또는 압축되지 않은 포맷을 이용하여 코딩될 수도 있다. 압축된 오디오 포맷들의 예들은 MPEG-1, 2 오디오 계층들 II 및 III, AC-3, AAC, 및 Vorbis 를 포함한다. 압축되지 않은 오디오 포맷의 예는 펄스-코드 변조 (PCM) 오디오 포맷을 포함한다.
패킷화된 엘리멘터리 스트림 (PES) 패킷화 (216) 및 MPEG2 전송 스트림 (MPEG2-TS) (212) 은 코딩된 오디오 및 비디오 데이터가 어떻게 패킷화되고 송신되는지를 정의할 수도 있다. 패킷화된 엘리멘터리 스트림 (PES) 패킷화 (216) 및 MPEG2-TS (212) 는 MPEG-2 Part 1 에 따라 정의될 수도 있다. 다른 예들에서, 오디오 및 비디오 데이터는 다른 패킷화 및 전송 스트림 프로토콜들에 따라 패킷화 및 송신될 수도 있다. 콘텐츠 보호 (214) 는 오디오 또는 비디오 데이터의 허가되지 않은 복제에 대한 보호를 제공할 수도 있다. 하나의 예에서, 콘텐츠 보호 (214) 는 고 대역폭 디지털 콘텐츠 보호 2.0 명세에 따라 정의될 수도 있다.
UIBC (201) 는 사용자 입력이 어떻게 패킷화되는지를 정의할 수도 있는 사용자 입력 패킷화 (228) 를 포함한다. 휴먼 인터페이스 디바이스 명령들 (HIDC) (230), 일반적 사용자 입력들 (232) 은 사용자 입력들의 타입들이 어떻게 정보 엘리먼트들로 포맷팅되는지를 정의할 수도 있다. 예를 들어, 휴먼 인터페이스 디바이스 명령들 (HIDC) (230) 및 일반적 사용자 입력들 (232) 은, 사용자 입력 타입 (예컨대, 마우스, 키보드, 터치, 멀티-터치, 음성, 제스처, 판매자 특정 인터페이스 등) 및 명령들 (예컨대, 줌 (zoom), 팬 (pan) 등) 에 기초하여 입력들을 카테고리화하고, 사용자 입력들이 어떻게 정보 엘리먼트들로 포맷팅되어야 하는지를 결정할 수도 있다. HIDC 및 일반적 사용자 입력 중 어느 일방으로서의 카테고리화는 통상적으로, 후속 미디어 데이터가 어떻게 싱크 디바이스 (114) 에서 사용자에게 프리젠팅되는지 (예컨대, 줌 및 팬 동작들) 및 소스 디바이스 (110) 가 어떻게 싱크 디바이스 (114) 에 대한 미디어 데이터를 프로세싱 (예컨대, 인코딩 및/또는 송신) 하는지에 영향을 미친다.
미러 코덱 (218A) 은 소스 디바이스 (110) 의 디코딩 하드웨어에 대한 디코더 인터페이스를 위해 다른 비디오 코덱(들) (218) 과 동일한 인터페이스를 제시할 수도 있다. 미러 코덱 (218A) 은 디코더 인터페이스에 대해 다른 비디오 디코더들의 것과 동일한 비디오 프레임 버퍼 플로우를 추가로 제공할 수도 있다. 하지만, 데이터 통신 모델 (200) 의 상부에서 수신된 비디오 데이터를 디코딩하기 보다는, 미러 코덱 (218A) 은 디코더 인터페이스를 위한 입력 버퍼들을 소비하고, 입력 버퍼들은 인코딩된 비디오 데이터를 저장하며, PES 패킷화 (216) 에 대해 인코딩된 비디오 데이터를 프리젠팅한다. 또한, 미러 코덱 (218A) 은 디코더 인터페이스를 위한 출력 버퍼들에 미리정의된 프레임을 기입한다. 결과로서, 데이터 통신 모델 (200) 에 따라 동작하는 디바이스는 디스플레이를 위해 미리정의된 프레임을 출력할 수도 있다. 출력 버퍼가 소비되는 시간은 미러 코덱 (218A) 에 의해 출력 버퍼에 저장된 비디오 프레임을 위한 프리젠테이션 시간에 적어도 근접한다. 미러 코덱 (218A) 은, 출력 버퍼가 소비되는 (데이터 통신 모델 (200) 을 채용하는 미러링 애플리케이션으로부터) 신호 또는 다른 통지를 수신할 수도 있다. 미러 코덱 (218A) 은, 신호 수신 시에 타임스탬프를 생성하고, 그 타임스탬프를 그렇지 않으면 디코딩되고 출력 버퍼에 저장되었을 대응하는 인코딩된 비디오 데이터와 연관시킬 수도 있다. MPEG2-TS 계층 (212) 및 RTP (210) 는 이 타임스탬프를 수신하고 그 타임스탬프를 비디오 데이터를 위한 프리젠테이션 시간으로서 인코딩된 비디오 데이터와 연관시킬 수도 있다. 예를 들어, MPEG2-TS 계층 (212) 은, 미러링된 비디오 데이터를 위한 전송 스트림에서의 프리젠테이션 타임스탬프 (PTS) 를, 오디오 데이터 프리젠테이션에 대해 비디오 데이터 프리젠테이션을 동기화하도록 하는 타임스탬프로 설정할 수도 있다.
무선 디스플레이 소스 디바이스의 미러링 애플리케이션은 오디오 및 비디오 데이터를 미러링하기 위해 데이터 통신 모델 (200) 을 채용할 수도 있다. 비디오 코덱(들) (218) 의 미러 코덱 (218A) 은 미러링 애플리케이션으로 하여금 기존의 비디오 재생 또는 스트리밍 애플리케이션들에 대해 적은 영향을 미치거나 전혀 영향을 미치지 않으면서 무선 디스플레이 소스 디바이스에서의 전력 소모를 감소시키는 것을 가능하게 할 수도 있다. 미러 코덱 (218A) 은 종래의 무선 디스플레이 기법들에 따라 렌더링된 비디오 데이터를 인코딩하지 않기 때문에, 데이터 통신 모델 (200) 은 손실된 I-프레임들을 식별 및 재송신하기 위한 능력의 손실에 대해 보상하기 위해 인코딩된 비디오 데이터를 직접 스트리밍하기 위해 UDP (208) 보다는 접속-지향된, 보장된-전달 전송 프로토콜 (여기서, TCP (222)) 을 이용한다.
일부 예들에서, 그리고 본 명세서에서 설명된 기술들에 따라서, RTSP (224) 세션 협상 동안, 데이터 통신 모델 (200) 을 실행하는 소스 디바이스 (110) 는 RTSP (224) 를 이용하여 모든 지원되는 코덱들 및 대응하는 지원되는 프로파일들 및 레벨들을 광고할 수도 있다. 소스 디바이스 (110) 는 그 후에, 소스 디바이스 (110) 및 싱크 디바이스 (114) 양방에서 최선의 지원되는 해상도 및 프로파일로 최선의 공통 지원된 코덱을 이용하여 미러링을 시작할 수도 있다.
비디오 데이터의 재생 시, 소스 디바이스 (110) 는, 비디오 데이터의 포맷이 싱크 디바이스 (114) 에 의해 지원되는지 여부를, 세션 비디오 정보에 기초하여, 결정하는 미러 코덱 (218A) 을 로딩할 수도 있다. 포맷이 지원되는 경우에, 미러 코덱 (218A) 은, 하나보다 많은 비디오 디코딩 세션이 활성인지 여부, 그리고, 그렇다면, 본 명세서에서 설명된 미러링 기술들을 이용할지 여부를 결정할 수도 있다.
하지만, 포맷이 싱크 디바이스 (114) 에 의해 지원되고 오직 하나의 비디오 코딩 세션이 활성인 경우에, 소스 디바이스 (110) 는 비디오 데이터를 스트리밍하기 위해 사용될 새로운 비디오 포맷을 나타내는 메시지를 싱크 디바이스 (114) 에 전송할 수도 있다. 소스 디바이스 (110) 는 그 다음, 비디오 프레임들을 싱크 디바이스 (114) 에 전송한다. 싱크 디바이스 (114) 는, 플레이어가 소스 디바이스 (110) 에서의 오디오 믹서의 출력으로부터 캡처된 오디오와의 동기화를 달성하기 위해 미리정의된 프레임을 렌더링하고 있을 때의 시간들에서 획득된 타임스탬프들과 연계하여 비디오 프레임들을 전송할 수도 있다. 비디오 데이터 재생의 종료 시에, 소스 디바이스 (110) 는 싱크 디바이스 (114) 에게 미러링을 위해 사용될 비디오 포맷을 통지하고, 비디오 코딩 세션은 미러링을 계속할 수도 있다.
도 3 은 이 개시물에서 설명된 기술들에 따른 무선 디스플레이 소스 디바이스의 일 예를 나타내는 블록도이다. 도 3 에 도시된 바와 같이, 소스 디바이스 (310) 는 메모리 (341), 통신 모듈 (342), 그래픽 프로세싱 모듈 (343), 프로세서 (344), 디스플레이 인터페이스 (348) 및 오디오 인터페이스 (354) 를 포함한다. 프로세서 (344) 는 명령들을 실행하도록 구성된 디바이스 (310) 의 하나 이상의 컴포넌트들을 포함할 수도 있다. 예를 들어, 프로세서 (344) 는 하나 이상의 중앙 프로세싱 유닛 (CPU) 들, 애플리케이션 특정 집적 회로 (ASIC) 들, 필드 프로그래머블 게이트 어레이 (FPGA) 들, 이산 로직 컴포넌트들, 또는 디바이스 (310) 의 동작을 제어하는 명령들을 실행하도록 구성된 다른 컴포넌트를 포함할 수도 있다.
메모리 (341) 는, 하나 이상의 자기적 저장 컴포넌트들, 광학적 저장 컴포넌트들, 랜덤 액세스 메모리 (RAM) 저장 컴포넌트들, FLASH 메모리 저장 컴포넌트들, 또는 명령들 및/또는 데이터를 저장하도록 구성된 임의의 다른 컴포넌트와 같은, 데이터 및/또는 명령들을 저장하도록 구성된 디바이스 (310) 의 하나 이상의 컴포넌트들을 포함한다. 예를 들어, 메모리 (341) 는 디바이스 (310) 를 동작시키는 하나 이상의 소프트웨어 프로그램들을 저장할 수도 있다. 또한 또는 대신에, 메모리 (341) 는 디바이스 (310) 에 의해 출력될 수도 있는 미디어를 표현하는 데이터를 저장하도록 구성될 수도 있다. 예를 들어, 메모리 (341) 는 가청 사운드들, 스틸 이미지들, 비디오, 또는 디바이스 (310) 에 의해 출력될 수도 있는 다른 미디어의 하나 이상의 디지털 표현들을 저장할 수도 있다.
통신 모듈 (342) 은 디바이스 (310) 가 하나 이상의 다른 디바이스들과 통신하는 것을 가능하게 하도록 구성된 디바이스 (310) 의 하나 이상의 하드웨어 및/또는 소프트웨어를 포함할 수도 있다. 예를 들어, 통신 모듈 (342) 은, 무선 통신 (예를 들어, WI-FI, 블루투스, 및 셀룰러 네트워크 (예컨대, 3G, 4G 셀룰러 네트워크)) 또는 유선 통신 (예를 들어, 이더넷) 중 하나 이상을 가능하게 하는 하나 이상의 컴포넌트들을 포함할 수도 있다. 몇몇 예들에서, 통신 모듈 (342) 은 도 1 에 도시된 싱크 디바이스 (114) 와 같은 다른 디바이스가 디바이스 (310) 의 미디어 출력을 미러링하도록 다른 디바이스를 제어하기 위해 디바이스 (310) 에 의해 사용될 수도 있다. 예를 들어, 소스 디바이스 (310) 는, 소스 디바이스 (310) 가, 싱크 디바이스로 하여금 본원에서 설명된 기술들에 따라 데이터를 미러링하게 하는 데이터 및/또는 명령들을 통신할 수도 있도록, 통신 모듈 (342) 을 통해 싱크 디바이스에 커플링될 수도 있다.
그래픽 프로세싱 모듈 (343) 은, 그래픽 명령들 (예컨대, OpenGL 표준에 따른 하나 이상의 명령들과 같은 고차 레벨 그래픽 명령들) 을 프로세싱하고 디스플레이 인터페이스 (348) 를 통해 이미지들을 프리젠팅하기 위해 사용될 수도 있는 이미지 데이터를 생성하도록 구성된 디바이스 (310) 의 하나 이상의 하드웨어 및/또는 소프트웨어 컴포넌트들을 포함할 수도 있다. 예를 들어, 그래픽 프로세싱 모듈 (343) 은 그래픽 프로세싱 유닛 (GPU) 및/또는 그래픽을 프로세싱하도록 구성된 다른 컴포넌트들을 포함할 수도 있다. 일부 예들에서, 그래픽 모듈 (343) 은 프로세서 (344) 상에서 실행되는 하나 이상의 애플리케이션들로부터 수신된 그래픽 명령들에 기초하여 그래픽들을 프로세싱할 수도 있다. 다른 예들에서, 그래픽 모듈 (343) 은 메모리 (341) 및/또는 통신 모듈 (342) 로부터 수신된 그래픽 명령들에 기초하여 그래픽들을 프로세싱할 수도 있다.
도 3 에서 도시된 바와 같이, 디바이스 (310) 는 또한 디스플레이 프로세싱 모듈 (360) 및 오디오 프로세싱 모듈 (350) 을 포함할 수도 있다. 오디오 프로세싱 모듈 (350) 은 소스 디바이스 (310) 외부의 하나 이상의 스피커들을 제어하기 위해 수신된 이미지 데이터를 프로세싱할 수도 있다. 예를 들어, 오디오 프로세싱 모듈 (350) 은, 오디오 인터페이스 (354) 를 통해, 적어도 하나의 스피커를 제어할 수도 있다. 오디오 프로세싱 모듈 (350) 은 소스 디바이스 (310) 의 네이티브 오디오 미디어 출력을 미러링하기 위해 하나 이상의 외부 오디오 인터페이스들에 전송될 오디오 데이터를 프로세싱할 수도 있다. 예를 들어, 오디오 프로세싱 모듈 (350) 은 비트 레이트, 볼륨, 오디오 인코딩 기법, 또는 하나 이상의 스피커들을 통한 출력을 위한 오디오 데이터의 다른 특성을 수정함으로써 오디오 데이터를 프로세싱할 수도 있다.
디스플레이 프로세싱 모듈 (360) 은 메모리 (341), 통신 모듈 (342), 그래픽 프로세싱 모듈 (343), 및/또는 프로세서 (344) 상에서 실행되는 하나 이상의 소프트웨어 애플리케이션들과 같은 하나 이상의 소스들로부터, 디스플레이를 위해 하나 이상의 이미지들을 표현하는 하나 이상의 미디어 엘리먼트들을 표현하는 이미지 데이터를 수신하도록 구성될 수도 있다. 디스플레이 프로세싱 모듈 (360) 은 하나 이상의 디스플레이들을 통한 프리젠테이션을 위해 이러한 수신된 데이터를 프로세싱하도록 구성될 수도 있다. 예를 들어, 도 3 에서 도시된 바와 같이, 디스플레이 프로세싱 모듈 (360) 은, 도 1 에 도시된 소스 디바이스 (110) 의 네이티브 디스플레이인 스크린 (112) 과 같은 소스 디바이스 (310) 의 네이티브 디스플레이를 제어하기 위해 이미지 데이터를 프로세싱할 수도 있다.
디스플레이 프로세싱 모듈 (360) 은 하나 이상의 디스플레이들을 제어하기 위해 수신된 이미지 데이터를 다이렉팅 및/또는 프로세싱하기 위한 디스플레이 모듈 (362) 및 디스플레이 미러링 모듈 (364) 을 포함한다. 예를 들어, 디스플레이 모듈 (362) 은 소스 디바이스 (310) 의 비-미러링 모드를 위해 디스플레이 프로세싱 기능을 수행할 수도 있고, 여기서, 디스플레이 모듈 (362) 은 소스 디바이스 (310) 와 연관된 적어도 하나의 디스플레이 (예컨대, 도 1 에 도시된 소스 디바이스 (110) 에 통신가능하게 커플링된 스크린 (112)) 를 제어하기 위해, 디스플레이 인터페이스 (348) 를 통해, 비디오 데이터를 출력한다. 디스플레이 프로세싱 모듈 (360) 은 미디어 플레이어 (314) 로부터 수신된 인코딩된 비디오 프레임들을 디코딩하거나 직접 스트리밍하기 위해 하나 이상의 비디오 코덱들을 실행할 수도 있다. 예를 들어, 디스플레이 미러링 모듈 (364) 은 인코딩된 비디오 프레임들을 싱크 디바이스에 직접 스트리밍하고 디스플레이 인터페이스 (348) 를 통해 미리정의된 프레임 (366) 을 출력하기 위해 도 2 의 미러 코덱 (218A) 의 인스턴스 (instance) 를 실행할 수도 있는 한편, 디스플레이 모듈 (362) 은 디스플레이 인터페이스 (348) 를 통한 디스플레이를 위해 인코딩된 비디오 프레임들을 디코딩할 수도 있다. 미리정의된 프레임 (366) 은 메모리 (341) 에 의해 저장될 수도 있다.
디스플레이 미러링 모듈 (364) 은, 디스플레이 프로세싱 모듈 (360) 및/또는 오디오 프로세싱 모듈 (350) 에 의해 수신된 하나 이상의 미디어 엘리먼트들이 이 개시물의 하나 이상의 양태들과 일치하는 싱크 디바이스에 대해 미러링되는지 여부 및 어떻게 미러링되는지를 제어하도록 구성되는 하드웨어 및/또는 소프트웨어 컴포넌트들의 임의의 조합을 포함할 수도 있다. 예를 들어, 하나 이상의 소스들 (예컨대, 메모리 (341), 통신 모듈 (342), 그래픽 프로세싱 모듈 (343), 및/또는 프로세서 (344) 상에서 실행되는 하나 이상의 소프트웨어 애플리케이션들) 로부터 새로운 미디어 엘리먼트를 수신하는 것에 응답하여, 디스플레이 미러링 모듈 (364) 은 그 새로운 미디어 엘리먼트들을 직접 싱크 디바이스에 전송할 수도 있다. 디스플레이 미러링 모듈 (364) 은 디스플레이 인터페이스 (348) 를 통한 출력을 위해 미리정의된 프레임 (366) 을 저장한다. 미리정의된 프레임 (366) 은 디스플레이 인터페이스 (348) 를 통한 디스플레이를 위해 YCbCr (또는 "YUV") 프레임을 표현할 수도 있다. 미리정의된 프레임 (366) 은, 예컨대, 적응적 백라이트가 사용중에 있을 때, 전력을 절약하기 위해 블랙 프레임일 수도 있고, 또는, 디스플레이 인터페이스 (348) 를 통해 출력될 때 디스플레이 디바이스에 로고, 이미지, 또는 다른 메시지들을 디스플레이할 수도 있다.
디스플레이 미러링 모듈 (364) 은 디스플레이 인터페이스 (348) 를 통한 디스플레이를 위해 버퍼들 (324) 을 출력하기 위해 미리정의된 프레임 (366) 을 저장할 수도 있다. 출력 버퍼 (324) 가 소비될 때, 디스플레이 프로세싱 모듈 (360) 은 출력 버퍼 (324) 가 소비되는 신호 또는 다른 표시 (326) 를 수신할 수도 있다. 응답하여, 디스플레이 프로세싱 모듈 (360) 은 비디오 데이터의 프리젠테이션을 오디오 데이터와 동기화하기 위해 무선 디스플레이 싱크 디바이스로의 전송을 위한 대응하는 인코딩된 비디오 데이터와 프리젠테이션 시간 (328) 을 연관시킬 수도 있다. 프리젠테이션 시간 (328) 은 출력 버퍼 (324) 가 렌더링되고, 디스플레이 인터페이스 (348) 를 통해 출력되고, 및/또는, 그 외에 미디어 플레이어 (314) 에 의해 프리젠팅되는 시간에 대응할 수도 있다.
도 3 의 예에서, 디스플레이 프로세싱 모듈 (360), 오디오 프로세싱 모듈 (350), 및 디스플레이 미러링 모듈 (364) 은 이 개시의 기술들을 설명할 목적으로 별개의 기능적 하드웨어 및/또는 소프트웨어로서 도시된다. 다른 예들에서, 디스플레이 프로세싱 모듈 (360), 오디오 프로세싱 모듈 (350), 및/또는 디스플레이 미러링 모듈 (364) 과 관련하여 본원에서 설명된 기능은 단일의 하드웨어 및/또는 소프트웨어 컴포넌트에 의해 수행될 수도 있다. 다른 예들에서, 디스플레이 프로세싱 모듈 (360), 오디오 프로세싱 모듈 (350), 및/또는 디스플레이 미러링 모듈 (364) 중 어느 하나는 본원에서 설명된 디스플레이 프로세싱 모듈 (360), 오디오 프로세싱 모듈 (350), 및/또는 미러링 모듈 (364) 의 속성인 기능에 따라 결합하여 동작하는 다수의 하드웨어 및/또는 소프트웨어 컴포넌트들을 포함할 수도 있다. 또한, 본원에서 설명된 하나 이상의 디스플레이 프로세싱 모듈 (360), 오디오 프로세싱 모듈 (350), 및/또는 디스플레이 미러링 모듈 (364) 이 소프트웨어로 구현되는 경우에도, 본원에서 설명된 바와 같은 이러한 소프트웨어 모듈들은 그들이 하드웨어 프로세싱 컴포넌트 상에서의 실행에 의해 기능적으로 동작한다는 점에서 하드웨어를 포함할 수도 있다.
소스 디바이스 (310) 에 의해 실행되는 애플리케이션들, 즉, 하나 이상의 미디어 플레이어 애플리케이션(들) (312), 미디어 플레이어 (314), 및 무선 디스플레이 애플리케이션 (316) (예컨대, Miracast 애플리케이션) 은 소스 디바이스 (310) 의 동작 동안 디스플레이 프로세싱 모듈 (360), 오디오 프로세싱 모듈 (350), 및/또는 디스플레이 미러링 모듈 (364) 의 동작을 결정할 수도 있다. 애플리케이션들은, 예컨대, 싱크 디바이스와의 무선 디스플레이 세션을 구성 및 시작하기 위해, 무선 디스플레이 세션을 통해 비디오를 재생하기 위해, 무선 디스플레이 세션을 제어하기 위해 등등을 위해 사용자 입력에 응답할 수도 있다.
도 4 는 이 개시물에서 설명된 기술들에 따른 무선 디스플레이 소스 디바이스에 대한 예시적인 동작 모드를 나타내는 플로우차트이다. 소스 디바이스 (110) 는 멀티미디어 데이터의 비디오 프레임에 대한 인코딩된 비디오 데이터를 획득한다 (402). 인코딩된 비디오 데이터를 비디오 프레임으로서 디코딩 및 렌더링하기 보다는, 소스 디바이스 (110) 는 비디오 프레임을 위해 미리정의된 비디오 프레임을 출력한다 (404). 또한, 소스 디바이스 (110) 는 미리정의된 비디오가 소스 디바이스 (110) 와 연관된 디스플레이에 대해 디스플레이하는 프리젠테이션 시간을 획득한다 (406). 소스 디바이스는, 무선 디스플레이 싱크 디바이스로 하여금 프리젠테이션 시간에서 비디오 프레임을 프리젠팅하게 하기 위해 프리젠테이션 시간을 비디오 프레임을 위한 인코딩된 비디오 데이터와 연관시키고 무선 디스플레이 싱크 디바이스에 대해 인코딩된 비디오 데이터 및 프리젠테이션 시간을 직접 스트리밍한다 (408).
도 5 는 본 명세서에서 설명된 기술들에 따라 오디오/비디오 동기화를 위해 무선 디스플레이 소스에 의해 비디오 프레임 프리젠테이션 시간들을 결정하기 위한 예시적인 데이터 플로우를 나타내는 블록도이다. 이 예에서, 미디어 플레이어 (314) 는 버퍼들 (502A-502C) 을 이용하여 디스플레이 미러링 모듈 (364) 에 인코딩된 비디오 프레임들을 획득 및 제공한다. 도 3 과 관련하여 상기 설명된 바와 같이, 디스플레이 미러링 모듈 (364) 은, 비록 디스플레이 미러링 모듈 (364) 이 인코딩된 비디오 프레임들을 디코딩하지 않을 수도 있음에도 불구하고, 미디어 플레이어 (314) 에 디코딩 인터페이스를 제공하는 것으로서, 그리고 따라서 "디코딩 컴포넌트" 로서 부분적으로 동작한다. 오히려, 디스플레이 미러링 모듈 (364) 은 버퍼들 (502A-502C) 을 소비, 예컨대, 판독하고, 후속 사용을 위해 버퍼들 (502A'-502C') 로서 미디어 플레이어 (314) 에 리턴한다. 디스플레이 미러링 모듈 (364) 은 인코딩된 비디오 프레임들을 "디코딩" 하기 위해 미디어 플레이어 (314) 에 의한 사용을 위해 미러 코덱 (218A) 의 일 예를 등록할 수도 있다. 미러 코덱 (218A) 은 미디어 플레이어 (314) 에 의해 호출가능한 그리고 비디오 디코딩을 수행하는 비디오 코덱들 (즉, 싱크 디바이스에 인코딩된 비디오 프레임들을 직접 스트리밍하는 것 대신에 또는 그것에 추가하여 비디오 디코딩을 수행하는 "실제의" 비디오 코덱들) 의 인터페이스와 동일하거나 적어도 유사한 인터페이스를 가질 수도 있다.
버퍼들 (502A-502C) 에서 수신된 인코딩된 비디오 프레임들을 디코딩하는 대신에, 디스플레이 미러링 모듈은 인코딩된 비디오 프레임들을 무선 디스플레이 스택 (501) 으로 직접 통과시킬 수도 있다. 무선 디스플레이 스택 (501) 은, 코덱 계층들 (218, 220) 을 제외한, 도 2 의 데이터 통신 모델 (200) 의 예시적인 인스턴스를 나타낼 수도 있다. 무선 디스플레이 스택 (501) 은 Miracast 스택의 예시적인 인스턴스를 나타낼 수도 있다.
인코딩된 비디오 프레임들에 대한 디코딩된 비디오 프레임들 대신에, 디스플레이 미러링 모듈 (364) 은 버퍼들 (504A-504C) 을 이용하여 미디어 플레이어 (314) 에 미리정의된 프레임 (366) 의 카피들을 리턴한다. 즉, 버퍼들 (504A-504C) 의 각각은, 디스플레이 인터페이스를 통한 디스플레이 (도 5 에서 미도시) 에의 출력을 위해 미리정의된 프레임 (366) 의 카피를 렌더링하는 것을 포함할 수도 있는, 미디어 플레이어 (314) 에 의한 소비를 위해 미리정의된 프레임 (366) 의 카피를 포함한다. 프리젠테이션 시간들 (T1-T3) 은 따라서 미디어 플레이어 (314) 가 디스플레이 미러링 모듈 (364) 에 대해 비디오 통과 디코더에 의한 재사용을 위해 각각의 버퍼들 (504A-504C) 을 소비 및 릴리스하는 시간을 지칭할 수도 있다. 버퍼들 (502A-502C 및 504A-504C) 은 각각 하나 이상의 컴퓨터 판독가능 저장 매체들 (미도시) 에서의 저장 엘리먼트들의 셋트를 나타낼 수도 있다. 버퍼들 (504A-504C) 은 도 3 의 출력 버퍼들 (324) 의 예시적인 인스턴스를 나타낼 수도 있다. 디스플레이 미러링 모듈 (364) 은, 미디어 플레이어 (314) 에 미리정의된 프레임 (366) 을 전송하는 것과 함께, 미디어 플레이어 (314) 로 하여금 미리정의된 프레임을 마치 그것이 버퍼들 (502) 에서 수신된 대응하는 인코딩된 비디오 프레임에 대한 디코딩된 비디오 프레임인 것처럼 플레이하게 하기 위한 임의의 메타데이터 및 타이밍 정보를 포함할 수도 있다.
각각의 프리젠테이션 시간 (("PRESENTATION TIME") 에서, 미디어 플레이어 (314) 는 버퍼들 (504A-504C) 을 소비하고 버퍼들 (504A'-504C') 로서 리턴한다. 도시된 예에서, 미디어 플레이어 (314) 는 프리젠테이션 시간 T1 에서 버퍼 (504A) 를 소비하고, 프리젠테이션 시간 T2 에서 버퍼 (504B) 를 소비하며, 프리젠테이션 시간 T3 에서 버퍼 (504C) 를 소비한다. 디스플레이 미러링 모듈 (364) 은, 버퍼들 (504A-504C) 의 소비의 미디어 플레이어 (314) 로부터의 각각의 통지들을 수신하는 것에 응답하여, 버퍼들에 대한 프리젠테이션 시간을, 무선 디스플레이 소스 디바이스가 무선 디스플레이 스택 (501) 을 통해 전송하는 버퍼들 (502A-502C) 에서의 나가는 인코딩된 비디오 프레임들과 연관시킨다. 따라서, 도시된 예에서, 디스플레이 미러링 모듈 (364) 은 버퍼 (502A) 에 저장된 인코딩된 비디오 프레임을 프리젠테이션 시간 (T1) 과 연관시키고, 버퍼 (502B) 에 저장된 인코딩된 비디오 프레임을 프리젠테이션 시간 (T2) 과 연관시키며, 버퍼 (502A) 에 저장된 인코딩된 비디오 프레임을 프리젠테이션 시간 (T1) 과 연관시킨다.
예를 들어 Wi-Fi 디스플레이를 이용하여 무선 디스플레이 싱크 디바이스에 직접 스트리밍된 인코딩된 비디오 프레임과 프리젠테이션 시간을 연관시키기 위한 하나의 예시적인 기술들로서, 디스플레이 미러링 모듈 (364) 은 무선 디스플레이 스택 (501) 으로 하여금 프리젠테이션 시간을 네트워크 액세스 계층 (NAL) 유닛 또는 패킷과 연관시키게 할 수도 있다. 예를 들어, 무선 디스플레이 스택 (501) 은, 인코딩된 비디오 프레임을 전송하는 PES 의 패킷화된 엘리멘터리 스트림 (packetized elementary stream; PES) 헤더의 프리젠테이션 타임스탬프 (presentation timestamp; PTS) 를, 디스플레이 미러링 모듈 (364) 에 의해 결정된 바와 같이 인코딩된 비디오 프레임과 연관된 프리젠테이션 시간으로 설정할 수도 있다. PES 는, 전송 스트림 (TS) 또는 프로그램 스트림 (PS) 을 형성하도록, 유사한 방식으로 무선 디스플레이 스택 (501) 에 의해 생성된 다른 PES 들과 결합될 수도 있다. 이러한 방식으로, 무선 디스플레이 싱크 디바이스는 인코딩된 비디오 프레임에 대한 디코딩된 비디오를 제거하고 인코딩된 비디오 프레임과 연관된 프리젠테이션 시간에서 프리젠팅되도록 결정할 수도 있다.
도 6 은 이 개시물에서 설명된 기술들에 따라 무선 디스플레이 싱크 컴퓨팅 디바이스에 인코딩된 비디오 데이터를 직접 스트리밍하도록 구성된 무선 디스플레이 소스 디바이스의 예시적인 컴포넌트들을 나타내는 블록도이다. 이 예에서, 무선 디스플레이 소스 디바이스 (600) 는 미디어 플레이어 (314) 를 각각 이용하여 하나 이상의 미디어 플레이어 애플리케이션들 또는 "플레이어 애플리케이션들" (312A-312N) (총칭하여, "미디어 플레이어 애플리케이션들 (312)") 을 실행할 수도 있다. 미디어 플레이어 애플리케이션들 (312) 은 예를 들어 국지적으로 저장된 미디어를 액세스하는 애플리케이션들 또는 서버로부터 네트워크 인터페이스를 통해 인코딩된 비디오 데이터를 수신하는 애플리케이션들을 포함할 수도 있다. 미디어 플레이어 애플리케이션들 (312) 은 미디어 플레이어 (314) 를 이용하여 인코딩된 비디오 데이터를 재생한다.
미디어 플레이어 (314) 가 하나의 예인 다양한 플랫폼들은 비디오 재생을 수행하는 애플리케이션 프로그래밍 인터페이스 (API) 들을 노출했을 수도 있다. 하지만, 많은 이러한 플랫폼들은 비디오 디코더들에 액세스하기 위해 표준 코덱 인터페이스 (602) 를 이용하고, 재생은 통상적으로 결국 하드웨어 디코더를 이용할 것이다. 코덱 인터페이스 (602) 는 실례로 OpenMax 인터페이스를 나타낼 수도 있다. 오디오 디코더 (606) 는 코덱 인터페이스 (602) 에 대한 오디오 디코더로서 등록되고, 무선 디스플레이 소스 디바이스 (600) 의 오디오 인터페이스 (354) 를 통한 출력을 위해 인코딩된 오디오 데이터를 디코딩한다.
무선 디스플레이 소스 디바이스 (600) 는 또한, 무선 통신 채널을 통해 무선 디스플레이 싱크 디바이스 (도 6 에서 미도시) 에 무선 디스플레이 소스 디바이스 (600) 이 미디어 출력을 미러링하기 위해 무선 디스플레이 스택 (501) 을 실행하는 무선 디스플레이 애플리케이션 (316) 을 실행한다. 무선 디스플레이 세션에 대해, 무선 디스플레이 애플리케이션 (316) 은, 미디어 플레이어 (314) 로 하여금 인코딩된 오디오/시각적 (A/V) 데이터 (610) 에 포함된 인코딩된 비디오 프레임들을 비디오 통과 디코더 (604) 에 전송하게 하기 위해, 비디오 통과 디코더 (604) 를 코덱 인터페이스 (602) 에 등록할 수도 있다. 비디오 통과 디코더 (604) 는 미러 코덱 (218A) 의 일 예를 나타낼 수도 있다. 코덱 인터페이스 (602) 가 OpenMax 인터페이스를 나타내는 무선 디스플레이 소스 디바이스 (600) 의 실례들에서, 무선 디스플레이 애플리케이션 (316) 은 공통의 OpenMax 인터페이스를 제공하기 위해 OpenMax 디코더로서 비디오 통과 디코더를 등록할 수도 있다.
하지만, 인코딩된 비디오 프레임들을 디코딩하는 대신에, 비디오 통과 디코더 (604) 는 인코딩된 비디오 프레임들을 무선 디스플레이 싱크 디바이스에의 다이렉트 스트리밍을 위해 무선 디스플레이 스택 (501) 에 패스한다. 이러한 방식에서의 다이렉트 스트리밍은 비디오 프로세싱 전력 부담들을 감소시킬 수도 있고, 소스 디바이스 상에서의 전체 전력 소비를 감소시킨다. 클립 (clip) 을 스트리밍하는 것은 본원에서 설명된 기술들에 따라 상이한 플랫폼들에서 사용되는 고도로 단편화된 재생 프레임워크들 상에서 작업할 수 있다.
또한, 수신된 각각의 인코딩된 비디오 프레임에 대해, 비디오 통과 디코더 (604) 는 수신된 인코딩된 비디오 프레임에 대응하는 비디오 디코딩된 프레임의 속임수로서 미디어 플레이어 (314) 에 "더미 (dummy)" 또는 미리정의된 프레임 (366) 을 전송한다. 결과로서, 미디어 플레이어 (314) 는 정상적으로 그리고 일부 경우들에서 변경 없이 동작할 수도 있다.
무선 디스플레이 소스 디바이스 (600) 의 몇몇 경우들에서, 오디오/비디오 동기화 (AVSYNC) 를 유지하기 위해, 비디오 통과 디코더 (604) 는 정확한 오디오 및 비디오 타임스탬프를 용이하게 할 수도 있다. 실례로, 비디오 통과 디코더 (604) 가 인코딩된 비디오 프레임을 수신할 때, 비디오 통과 디코더 (604) 는 대응하는 미리정의된 그리고 비-인코딩된 프레임 (366) 을 버퍼를 통해 미디어 플레이어 (314) 에 전송한다. 비디오 통과 디코더 (604) 는 미디어 플레이어 (314) 가 재사용을 위해 버퍼를 리턴하는 시간에 대해 타임스탬프를 획득하고, 비디오 통과 디코더 (604) 는 이 타임스탬프를 인코딩된 비디오 프레임에 대한 실제 플레이 시간, 또는 프리젠테이션 시간으로서 연관시킨다. 이것은 무선 디스플레이 소스 디바이스 (600) 가 임의의 추가적인 AVSYNC 기법들을 수행할 필요성을 감소시킬 수도 있고 그리고 일부 경우들에서는 그러한 필요성을 제거할 수도 있다. 또한, 이러한 기술은 심리스 (seamless) 모색 및 다른 트릭 모드 동작들을 용이하게 할 수도 있다.
무선 디스플레이 애플리케이션 (316) 은 오디오 인터페이스 (354) 에 대한 오디오 출력으로부터, 무선 디스플레이 스트리밍 동작들에 따라, 오디오를 캡처하고, 그 캡처된 오디오를 무선 디스플레이 스택 (501) 을 이용하여 무선 디스플레이 싱크 디바이스로 스트리밍할 수도 있다. 상기 설명된 기술들은 플랫폼들에 대한 기존의 프레임워크를 방해함이 없이 다양한 플랫폼들에서의 많은 상이한 미디어 플레이어 구현형태들 내로 통합될 수도 있다. 본 기술들은 적어도 일부 경우들에서 미디어 플레이어 (314) 에 대한 수정 없이 수행될 수도 있기 때문에, 제 3 자 및 다른 미디어 플레이어 애플리케이션들 (312 은 본 기술들과 함께 수정 없이 사용될 수도 있다. 더욱이, 다이렉트 스트림을 이용하는 것은 비디오 하드웨어를 이용하는 것을 회피하고, 이는 종종 비싼 비디오 프로세서들에 대한 필요성을 감소시키고 전력을 절약할 수도 있다. 또한, 무선 디스플레이 스트림의 살아있는 성질이 상기 설명된 방식으로 사용된 AVSYNC 접근법에 의해 유지될 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독가능 매체 상의 하나 이상의 명령들 또는 코드로서 저장되거나 그것을 통해 전송될 수도 있다. 컴퓨터-판독가능 매체들은, 컴퓨터 데이터 저장 매체들, 또는, 한 장소에서 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 일부 예들에서, 컴퓨터-판독가능 매체들은 비-일시적 컴퓨터 판독가능 매체들을 포함할 수도 있다. 데이터 저장 매체는 이 개시에서 설명된 기술들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다.
제한이 아닌 예시로서, 이러한 컴퓨터 판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기적 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 반송 또는 저장하기 위해 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체와 같은 비-일시적 매체들을 포함할 수 있다. 또한, 임의의 연결이 적절하게 컴퓨터 판독가능 매체로 지칭된다. 본원에서 사용된 디스크 (disk) 및 디스크 (disc) 는 콤팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크, 및 블루-레이 디스크를 포함하고, 여기서, 디스크 (disk) 들은 통상적으로 데이터를 자기적으로 재생하는 한편, 디스크 (disc) 들은 데이터를 레이저들을 이용하여 광학적으로 재생한다. 상기한 것들의 조합들 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
코드는, 하나 이상의 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 동등한 집적된 또는 이산 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본원에서 사용된 "프로세서" 라는 용어는 본원에 설명된 기술들의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 또한, 몇몇 양태들에서, 본원에 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나 결합된 코덱 내에 통합될 수도 있다. 또한, 기술들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 충분히 구현될 수 있을 것이다.
이 개시의 기술들은, 무선 핸드셋, 집적 회로 (IC) 또는 IC 들의 셋트 (예를 들어, 칩 셋) 를 포함하는, 광범위하게 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들이 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 이 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 구현을 필요로 하지 않는다. 오히려, 전술한 바와 같이, 다양한 유닛들은, 적합한 소프트웨어 및/또는 펌웨어와 함께, 전술된 바와 같은 하나 이상의 프로세서들을 포함하는, 코덱 하드웨어 내에 결합되거나 통합적 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
본 발명의 다양한 실시형태들이 설명되었다. 이들 및 다른 실시형태들은 첨부된 청구항들의 범위 내이다.
Claims (30)
- 로컬 디스플레이를 포함하는 무선 디스플레이 소스 디바이스로부터 무선 디스플레이 싱크 디바이스로 비디오 데이터를 송신하는 방법으로서,
상기 무선 디스플레이 소스 디바이스로, 비디오 데이터의 프레임에 대해 인코딩된 비디오 데이터 및 인코딩된 오디오 데이터를 획득하는 단계; 및
상기 무선 디스플레이 소스 디바이스의 상기 로컬 디스플레이에서, 디코딩된 오디오 데이터; 및 상기 비디오 데이터의 프레임보다는 미리정의된 프레임을 출력하는 단계를 포함하고,
상기 방법은,
오디오-비디오 동기화가 상기 무선 디스플레이 소스 디바이스에 의해 수행된 후에 상기 비디오 데이터의 프레임에 대해 오디오 데이터와 동기화된 상기 로컬 디스플레이 상에서 렌더링하기 위해 상기 미리정의된 프레임이 소비될 때의 시간에 기초하여 프리젠테이션 시간을 결정하는 단계;
결정된 상기 프리젠테이션 시간으로부터 타임스탬프를 결정하는 단계; 및
상기 타임스탬프와 연계하여, 상기 무선 디스플레이 싱크 디바이스와 연관된 디스플레이 디바이스에서의 디스플레이를 위해 상기 인코딩된 비디오 데이터를 상기 무선 디스플레이 소스 디바이스로부터 상기 무선 디스플레이 싱크 디바이스로 전송하는 단계를 더 포함하는 것을 특징으로 하는, 비디오 데이터를 송신하는 방법. - 제 1 항에 있어서,
상기 미리정의된 프레임은 블랙 프레임 및 사용자 메시지로 이루어진 그룹으로부터 선택되는, 비디오 데이터를 송신하는 방법. - 제 1 항에 있어서,
상기 무선 디스플레이 소스 디바이스는 Wi-Fi 디스플레이 소스 디바이스를 포함하고, 상기 무선 디스플레이 싱크 디바이스는 Wi-Fi 디스플레이 싱크 디바이스를 포함하며, 그리고
상기 인코딩된 비디오 데이터를 전송하는 단계는, Wi-Fi 디스플레이 표준에 기초한 하나 이상의 통신 프로토콜들을 이용한 통신 세션을 통해 상기 인코딩된 비디오 데이터를 전송하는 단계를 포함하는, 비디오 데이터를 송신하는 방법. - 제 1 항에 있어서,
상기 인코딩된 비디오 데이터를 전송하는 단계는, Wi-Fi 다이렉트 및 터널링된 다이렉트 링크 셋업 (tunneled direct link setup; TDLS) 프로토콜들 중 하나에 따라 동작하는 통신 세션을 통해 상기 인코딩된 비디오 데이터를 전송하는 단계를 포함하는, 비디오 데이터를 송신하는 방법. - 제 1 항에 있어서,
상기 방법은,
사용자 입력의 표시를 수신하는 단계;
상기 사용자 입력의 표시를 수신하는 것에 응답하여, 상기 무선 디스플레이 싱크 디바이스와 미러링 세션을 확립하는 단계를 더 포함하고,
상기 비디오 데이터의 프레임에 대해 미리정의된 프레임을 출력하는 단계는, 상기 무선 디스플레이 소스 디바이스가 상기 무선 디스플레이 싱크 디바이스와 활성 미러링 세션을 갖는 경우에만 상기 비디오 데이터의 프레임에 대해 상기 미리정의된 프레임을 출력하는 단계를 포함하는, 비디오 데이터를 송신하는 방법. - 제 1 항에 있어서,
비디오 코덱에 의해, 상기 무선 디스플레이 소스 디바이스의 미디어 플레이어로부터 상기 인코딩된 비디오 데이터를 수신하는 단계; 및
상기 비디오 코덱에 의해, 상기 미리정의된 프레임을 상기 미디어 플레이어에 대한 출력 버퍼에 저장하는 단계를 더 포함하는, 비디오 데이터를 송신하는 방법. - 제 6 항에 있어서,
상기 비디오 코덱에 의해, 상기 출력 버퍼가 상기 미디어 플레이어에 의해 소비되었다는 표시를 수신하는 단계;
상기 비디오 코덱에 의해, 상기 표시를 수신하는 것에 응답하여, 상기 비디오 데이터의 프레임에 대한 상기 미리정의된 프레임을 위한 상기 프리젠테이션 시간을 나타내는 상기 타임스탬프를 저장하는 단계를 더 포함하는, 비디오 데이터를 송신하는 방법. - 제 6 항에 있어서,
상기 비디오 코덱은, 상기 미디어 플레이어에 의한 사용을 위해 등록되고, 상기 비디오 코덱에 인코딩된 비디오 프레임들을 제공하기 위해 상기 미디어 플레이어에 의해 사용가능한 인터페이스를 가지고,
상기 방법은, 상기 무선 디스플레이 싱크 디바이스와의 미러링 세션을 가능하게 하는 사용자 입력의 표시를 수신하는 것에 응답하여 상기 미디어 플레이어에 의한 사용을 위해 상기 비디오 코덱을 로딩하는 단계를 더 포함하며,
상기 미디어 플레이어로부터 상기 인코딩된 비디오 데이터를 수신하는 단계는, 상기 비디오 코덱에 의해, 입력 버퍼를 통해 상기 인코딩된 비디오 데이터를 수신하는 단계를 포함하고, 그리고
상기 미리정의된 프레임을 상기 미디어 플레이어에 대한 출력 버퍼에 저장하는 단계는, 상기 미디어 플레이어로 하여금, 상기 미리정의된 프레임이 상기 인코딩된 비디오 데이터의 디코딩된 비디오 프레임인 것처럼 상기 미리정의된 프레임을 디스플레이하게 하기 위해 필요한 메타데이터 및 타이밍 정보 중 어느 것과 연계하여 상기 미디어 플레이어에 대한 상기 출력 버퍼에 상기 미리정의된 프레임을 저장하는 단계를 포함하는, 비디오 데이터를 송신하는 방법. - 제 1 항에 있어서,
상기 방법은,
상기 비디오 데이터의 프레임에 대응하는 오디오 데이터를 위한 프리젠테이션 시간을 결정하는 단계; 및
상기 비디오 데이터의 프레임에 대응하는 상기 오디오 데이터를 위한 상기 프리젠테이션 시간과 연계하여 상기 비디오 데이터의 프레임에 대응하는 상기 오디오 데이터에 대한 인코딩된 오디오 데이터를 전송하는 단계를 더 포함하고,
상기 인코딩된 비디오 데이터를 전송하는 단계는, 상기 무선 디스플레이 싱크 디바이스에서 상기 비디오 데이터의 프레임 및 상기 비디오 데이터의 프레임에 대응하는 상기 오디오 데이터의 프리젠테이션을 동기화하기 위해 상기 비디오 데이터의 프레임에 대한 상기 미리정의된 프레임을 위한 상기 프리젠테이션 시간과 연계하여 상기 인코딩된 비디오 데이터를 전송하는 단계를 포함하는, 비디오 데이터를 송신하는 방법. - 소스 디바이스로서,
비디오 데이터의 프레임에 대해 인코딩된 비디오 데이터 및 인코딩된 오디오 데이터를 획득하는 수단; 및
디코딩된 오디오 데이터; 및 상기 비디오 데이터의 프레임보다는 미리정의된 프레임을 출력하는 수단을 포함하고,
상기 소스 디바이스는,
오디오-비디오 동기화가 무선 디스플레이 소스 디바이스에 의해 수행된 후에 상기 비디오 데이터의 프레임에 대해 오디오 데이터와 동기화된 로컬 디스플레이 상에서 렌더링하기 위해 상기 미리정의된 프레임이 소비될 때의 시간에 기초하여 프리젠테이션 시간을 결정하는 수단;
결정된 상기 프리젠테이션 시간으로부터 타임스탬프를 결정하는 수단; 및
상기 타임스탬프와 연계하여, 싱크 디바이스와 연관된 디스플레이 디바이스에서의 디스플레이를 위해 상기 인코딩된 비디오 데이터를 무선 통신 채널을 통해 상기 싱크 디바이스에 전송하는 수단을 더 포함하는 것을 특징으로 하는, 소스 디바이스. - 제 10 항에 있어서,
상기 미리정의된 프레임은 블랙 프레임 및 사용자 메시지로 이루어진 그룹으로부터 선택되는, 소스 디바이스. - 제 10 항에 있어서,
상기 소스 디바이스는 Wi-Fi 디스플레이 소스 디바이스를 포함하고, 상기 싱크 디바이스는 Wi-Fi 디스플레이 싱크 디바이스를 포함하며, 그리고
상기 인코딩된 비디오 데이터를 전송하는 수단은, Wi-Fi 디스플레이 표준에 기초한 하나 이상의 통신 프로토콜들을 이용한 통신 세션을 통해 상기 인코딩된 비디오 데이터를 상기 싱크 디바이스에 전송하는 수단을 포함하는, 소스 디바이스. - 제 10 항에 있어서,
상기 인코딩된 비디오 데이터를 전송하는 수단은, Wi-Fi 다이렉트 및 터널링된 다이렉트 링크 셋업 (tunneled direct link setup; TDLS) 프로토콜들 중 하나에 따라 동작하는 통신 세션을 통해 상기 인코딩된 비디오 데이터를 상기 싱크 디바이스에 전송하는 수단을 포함하는, 소스 디바이스. - 제 10 항에 있어서,
사용자 입력의 표시를 수신하는 수단; 및
상기 사용자 입력의 표시를 수신하는 것에 응답하여, 상기 싱크 디바이스와 미러링 세션을 확립하는 수단을 더 포함하고,
상기 비디오 데이터의 프레임에 대해 미리정의된 프레임을 출력하는 수단은, 상기 소스 디바이스가 상기 싱크 디바이스와 활성 미러링 세션을 갖는 경우에만 상기 비디오 데이터의 프레임에 대해 상기 미리정의된 프레임을 출력하는 수단을 포함하는, 소스 디바이스. - 제 10 항에 있어서,
상기 소스 디바이스의 비디오 코덱에 의해, 상기 소스 디바이스의 미디어 플레이어로부터 상기 인코딩된 비디오 데이터를 수신하는 수단; 및
상기 비디오 코덱에 의해, 상기 미리정의된 프레임을 상기 미디어 플레이어에 대한 출력 버퍼에 저장하는 수단을 더 포함하는, 소스 디바이스. - 제 15 항에 있어서,
상기 소스 디바이스의 상기 비디오 코덱에 의해, 상기 출력 버퍼가 상기 미디어 플레이어에 의해 소비되었다는 표시를 수신하는 수단; 및
상기 비디오 코덱에 의해, 상기 표시를 수신하는 것에 응답하여, 상기 비디오 데이터의 프레임에 대한 상기 프리젠테이션 시간을 나타내는 상기 타임스탬프를 저장하는 수단을 더 포함하는, 소스 디바이스. - 제 15 항에 있어서,
상기 비디오 코덱은, 상기 미디어 플레이어에 의한 사용을 위해 등록되고, 상기 비디오 코덱에 인코딩된 비디오 프레임들을 제공하기 위해 상기 미디어 플레이어에 의해 사용가능한 인터페이스를 가지고,
상기 소스 디바이스는, 무선 디스플레이 싱크 디바이스와의 미러링 세션을 가능하게 하는 사용자 입력의 표시를 수신하는 것에 응답하여 상기 미디어 플레이어에 의한 사용을 위해 상기 비디오 코덱을 로딩하는 수단을 더 포함하며,
상기 미디어 플레이어로부터 상기 인코딩된 비디오 데이터를 수신하는 수단은, 상기 비디오 코덱에 의해, 입력 버퍼를 통해 상기 인코딩된 비디오 데이터를 수신하는 수단을 포함하고, 그리고
상기 미리정의된 프레임을 상기 미디어 플레이어에 대한 출력 버퍼에 저장하는 수단은, 상기 미디어 플레이어로 하여금, 상기 미리정의된 프레임이 상기 인코딩된 비디오 데이터의 디코딩된 비디오 프레임인 것처럼 상기 미리정의된 프레임을 디스플레이하게 하기 위해 필요한 메타데이터 및 타이밍 정보 중 어느 것과 연계하여 상기 미디어 플레이어에 대한 상기 출력 버퍼에 상기 미리정의된 프레임을 저장하는 수단을 포함하는, 소스 디바이스. - 저장된 명령들을 포함하는 컴퓨터 판독가능 저장 매체로서,
상기 명령들은, 실행될 때, 무선 디스플레이 소스 디바이스의 하나 이상의 프로세서들을, 제 1 항 내지 제 9 항 중 어느 한 항에 기재된 방법을 수행하도록 구성하는, 컴퓨터 판독가능 저장 매체. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462030410P | 2014-07-29 | 2014-07-29 | |
US62/030,410 | 2014-07-29 | ||
US14/578,964 | 2014-12-22 | ||
US14/578,964 US9665336B2 (en) | 2014-07-29 | 2014-12-22 | Direct streaming for wireless display |
PCT/US2015/042499 WO2016018926A1 (en) | 2014-07-29 | 2015-07-28 | Direct streaming for wireless display |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170040217A KR20170040217A (ko) | 2017-04-12 |
KR102305302B1 true KR102305302B1 (ko) | 2021-09-24 |
Family
ID=55180088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177002614A KR102305302B1 (ko) | 2014-07-29 | 2015-07-28 | 무선 디스플레이를 위한 다이렉트 스트리밍 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9665336B2 (ko) |
EP (1) | EP3195606B1 (ko) |
JP (1) | JP6211733B2 (ko) |
KR (1) | KR102305302B1 (ko) |
CN (1) | CN106664458B (ko) |
CA (1) | CA2952297A1 (ko) |
ES (1) | ES2835579T3 (ko) |
WO (1) | WO2016018926A1 (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102374584B1 (ko) * | 2014-03-21 | 2022-03-16 | 삼성전자주식회사 | 영상을 디스플레이 하는 방법 및 디바이스 |
JP6566616B2 (ja) * | 2014-08-19 | 2019-08-28 | キヤノン株式会社 | 通信装置、その制御方法、およびプログラム |
JP6467822B2 (ja) * | 2014-08-29 | 2019-02-13 | セイコーエプソン株式会社 | 表示システム、送信装置、及び、表示システムの制御方法 |
US20160092152A1 (en) * | 2014-09-25 | 2016-03-31 | Oracle International Corporation | Extended screen experience |
US11044386B1 (en) * | 2014-12-18 | 2021-06-22 | The Directv Group, Inc. | Method and system for synchronizing playback of independent audio and video streams through a network |
CN107211365B (zh) * | 2015-01-26 | 2020-12-01 | 慧与发展有限责任合伙企业 | 调节蜂窝无线电的功率消耗状态 |
KR102281341B1 (ko) * | 2015-01-26 | 2021-07-23 | 엘지전자 주식회사 | 싱크 디바이스 및 그 제어 방법 |
US10299117B2 (en) * | 2015-02-25 | 2019-05-21 | Screenovate Technologies Ltd. | Method for authenticating a mobile device and establishing a direct mirroring connection between the authenticated mobile device and a target screen device |
US20160308917A1 (en) * | 2015-04-20 | 2016-10-20 | Intel Corporation | Sensor input transmission and associated processes |
WO2017098525A1 (en) * | 2015-12-09 | 2017-06-15 | Smartron India Private Limited | A system and method for controlling miracast content with hand gestures and audio commands |
KR102442527B1 (ko) | 2016-02-26 | 2022-09-13 | 엘지전자 주식회사 | 무선 디바이스 |
US10575048B2 (en) * | 2016-12-09 | 2020-02-25 | Centurylink Intellectual Property Llc | Media player with integrated wireless video link capability and method and system for implementing video tuning and wireless video communication |
US10306299B2 (en) * | 2017-05-24 | 2019-05-28 | Google Llc | Methods, systems, and media for transferring playback of media content |
CN108810448A (zh) * | 2018-03-19 | 2018-11-13 | 广州视源电子科技股份有限公司 | 外围装置和会议工具 |
US11330029B2 (en) * | 2018-03-27 | 2022-05-10 | Lenovo (Singapore) Pte. Ltd. | Sharing content with a detected device |
US10872470B2 (en) | 2018-04-05 | 2020-12-22 | Lenovo (Singapore) Pte. Ltd. | Presentation of content at headset display based on other display not being viewable |
US10922862B2 (en) * | 2018-04-05 | 2021-02-16 | Lenovo (Singapore) Pte. Ltd. | Presentation of content on headset display based on one or more condition(s) |
JP7118764B2 (ja) | 2018-06-20 | 2022-08-16 | キヤノン株式会社 | 通信装置、制御方法、およびプログラム |
JP7154833B2 (ja) * | 2018-06-20 | 2022-10-18 | キヤノン株式会社 | 通信装置、通信方法、およびプログラム |
CN108881844B (zh) * | 2018-07-06 | 2021-06-22 | 杭州涂鸦信息技术有限公司 | 一种局域网视频传输方法 |
CN111654720B (zh) * | 2020-07-17 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、设备及可读存储介质 |
KR20220048245A (ko) * | 2020-10-12 | 2022-04-19 | 엘지전자 주식회사 | 무선 디바이스 및 무선 시스템 |
CN115529489A (zh) * | 2021-06-24 | 2022-12-27 | 海信视像科技股份有限公司 | 显示设备、视频处理方法 |
WO2023219921A1 (en) * | 2022-05-10 | 2023-11-16 | Google Llc | External application streaming |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140112636A1 (en) | 2012-10-19 | 2014-04-24 | Arcsoft Hangzhou Co., Ltd. | Video Playback System and Related Method of Sharing Video from a Source Device on a Wireless Display |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030191623A1 (en) | 2002-02-25 | 2003-10-09 | Oak Technology, Inc. | Computer system capable of executing a remote operating system |
US8102836B2 (en) | 2007-05-23 | 2012-01-24 | Broadcom Corporation | Synchronization of a split audio, video, or other data stream with separate sinks |
KR20100124909A (ko) * | 2009-05-20 | 2010-11-30 | 삼성전자주식회사 | 이동통신 단말기에서 영상과 음성의 동기화를 위한 장치 및 방법 |
US20110283014A1 (en) | 2010-05-14 | 2011-11-17 | Rahul Malik | Distribution of Multimedia Content over a Network |
US10108386B2 (en) | 2011-02-04 | 2018-10-23 | Qualcomm Incorporated | Content provisioning for wireless back channel |
US9712573B2 (en) * | 2011-09-13 | 2017-07-18 | Qualcomm Incorporated | Synchronized wireless display devices |
JP6031745B2 (ja) * | 2011-10-17 | 2016-11-24 | ソニー株式会社 | 送信装置、送信方法および受信装置 |
US9398065B2 (en) | 2011-12-17 | 2016-07-19 | Intel Corporation | Audio/video streaming in a topology of devices with native WiGig sink |
US9525998B2 (en) | 2012-01-06 | 2016-12-20 | Qualcomm Incorporated | Wireless display with multiscreen service |
TWI464720B (zh) * | 2012-02-02 | 2014-12-11 | Novatek Microelectronics Corp | 液晶顯示驅動方法及顯示裝置 |
US20130201915A1 (en) * | 2012-02-07 | 2013-08-08 | Htc Corporation | Apparatuses and methods for out-of-band information feedback |
CN103248947A (zh) * | 2012-02-08 | 2013-08-14 | 海尔集团公司 | 一种视频多屏共享方法及实现该方法的系统 |
KR101917174B1 (ko) | 2012-02-24 | 2018-11-09 | 삼성전자주식회사 | 전자 장치 사이의 스트림 전송 방법 및 그 방법을 처리하는 전자 장치 |
US9167296B2 (en) * | 2012-02-28 | 2015-10-20 | Qualcomm Incorporated | Customized playback at sink device in wireless display system |
WO2015012813A1 (en) * | 2013-07-23 | 2015-01-29 | Intel Corporation | Improved techniques for streaming video quality analysis |
JP6232870B2 (ja) * | 2013-09-11 | 2017-11-22 | 株式会社リコー | 無線通信システム、無線通信方法、プログラム、及び記録媒体 |
US20150208079A1 (en) * | 2014-01-22 | 2015-07-23 | Nvidia Corporation | Adaptive frame type detection for real-time low-latency streaming servers |
US9521432B2 (en) * | 2014-04-22 | 2016-12-13 | Cable Television Laboratories, Inc. | Correction of over-the-air signals |
TWI616808B (zh) * | 2014-06-30 | 2018-03-01 | 緯創資通股份有限公司 | 分享顯示畫面的方法及裝置 |
-
2014
- 2014-12-22 US US14/578,964 patent/US9665336B2/en active Active
-
2015
- 2015-07-28 EP EP15748397.5A patent/EP3195606B1/en active Active
- 2015-07-28 ES ES15748397T patent/ES2835579T3/es active Active
- 2015-07-28 KR KR1020177002614A patent/KR102305302B1/ko active IP Right Grant
- 2015-07-28 WO PCT/US2015/042499 patent/WO2016018926A1/en active Application Filing
- 2015-07-28 CA CA2952297A patent/CA2952297A1/en not_active Abandoned
- 2015-07-28 JP JP2017503865A patent/JP6211733B2/ja active Active
- 2015-07-28 CN CN201580039784.1A patent/CN106664458B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140112636A1 (en) | 2012-10-19 | 2014-04-24 | Arcsoft Hangzhou Co., Ltd. | Video Playback System and Related Method of Sharing Video from a Source Device on a Wireless Display |
Also Published As
Publication number | Publication date |
---|---|
JP6211733B2 (ja) | 2017-10-11 |
KR20170040217A (ko) | 2017-04-12 |
WO2016018926A1 (en) | 2016-02-04 |
CA2952297A1 (en) | 2016-02-04 |
US9665336B2 (en) | 2017-05-30 |
EP3195606B1 (en) | 2020-09-02 |
CN106664458A (zh) | 2017-05-10 |
EP3195606A1 (en) | 2017-07-26 |
CN106664458B (zh) | 2019-12-20 |
BR112017000744A2 (pt) | 2017-11-14 |
ES2835579T3 (es) | 2021-06-22 |
US20160034245A1 (en) | 2016-02-04 |
JP2017528043A (ja) | 2017-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102305302B1 (ko) | 무선 디스플레이를 위한 다이렉트 스트리밍 | |
CN109327728B (zh) | 一种一对多同屏方法、装置和系统、同屏设备及存储介质 | |
JP6219310B2 (ja) | ワイヤレスディスプレイのためのユーザ入力バックチャネルを介した双方向トンネリング | |
US10009646B2 (en) | Image processing device, image reproduction device, and image reproduction system | |
KR101780300B1 (ko) | 무선 디스플레이 디바이스들에 대한 사용자 입력 제어를 위한 비연결형 전송 | |
US9525998B2 (en) | Wireless display with multiscreen service | |
JP6337114B2 (ja) | ワイヤレスディスプレイのためのソースデバイスにおけるリソース利用のための方法および装置 | |
KR102284721B1 (ko) | 무선 통신 시스템에서 어플리케이션 데이터를 디스플레이하기 위한 방법 및 장치 | |
JP2016021763A (ja) | ワイヤレスディスプレイデバイスのためのフィードバックチャネル | |
US10285035B2 (en) | Communication apparatus and control method therefor | |
US20150350288A1 (en) | Media agnostic display for wi-fi display | |
US20190028522A1 (en) | Transmission of subtitle data for wireless display | |
BR112017000744B1 (pt) | Transmissão contínua direta para visor sem fio |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |