본문 바로가기
카테고리 없음

무선 디스플레이들을 위한 사용자 입력 백 채널(USER INPUT BACK CHANNEL FOR WIRELESS DISPLAYS)

by 갈때까지가는거야.. 2018. 4. 17.

(19) 대한민국특허청(KR)
(12) 등록특허공보(B1)
(45) 공고일자 2015년07월03일
(11) 등록번호 10-1533753
(24) 등록일자 2015년06월29일
(51) 국제특허분류(Int. Cl.)
H04L 29/06 (2006.01) G06F 3/041 (2006.01)
(21) 출원번호 10-2013-7021935
(22) 출원일자(국제) 2012년01월20일
심사청구일자 2013년08월20일
(85) 번역문제출일자 2013년08월20일
(65) 공개번호 10-2013-0115371
(43) 공개일자 2013년10월21일
(86) 국제출원번호 PCT/US2012/022080
(87) 국제공개번호 WO 2012/100197
국제공개일자 2012년07월26일
(30) 우선권주장
13/344,424 2012년01월05일 미국(US)
(뒷면에 계속)
(56) 선행기술조사문헌
US20090141180 A1
US07696980 B1
US20060236250 A1
(73) 특허권자
퀄컴 인코포레이티드
미국 92121-1714 캘리포니아주 샌 디에고 모어하
우스 드라이브 5775
(72) 발명자
라빈드란, 비자야라크쉬미 알.
미국 92121 캘리포니아주 샌 디에고 모어하우스
드라이브 5775
후앙, 시아오롱
미국 92121 캘리포니아주 샌 디에고 모어하우스
드라이브 5775
(뒷면에 계속)
(74) 대리인
특허법인 남앤드남
전체 청구항 수 : 총 24 항 심사관 : 문형섭
(54) 발명의 명칭 무선 디스플레이들을 위한 사용자 입력 백 채널
(57) 요 약
통신 세션의 일부로서, 무선 소스 디바이스는 오디오 및 비디오 데이터를 무선 싱크 디바이스에 송신할 수 있고,
무선 싱크 디바이스는 무선 싱크 디바이스에서 수신된 사용자 입력 데이터를 무선 소스 디바이스에 다시 송신할
수 있다. 이 방식으로, 무선 싱크 디바이스의 사용자는 무선 소스 디바이스를 제어할 수 있고, 무선 소스 디바
이스로부터 무선 싱크 디바이스로 송신되고 있는 컨텐츠를 제어할 수 있다. 무선 싱크 디바이스에서 수신되는
입력 데이터는 무선 싱크 디바이스 또는 무선 소스 디바이스에 의해 스케일링 또는 정규화되는 연관된 좌표 정보
를 가질 수 있다.
대 표 도
등록특허 10-1533753
- 1 -
(72) 발명자
왕, 시아오동
미국 92121 캘리포니아주 샌 디에고 모어하우스 드
라이브 5775
샤우카트, 파와드
미국 92121 캘리포니아주 샌 디에고 모어하우스 드
라이브 5775
(30) 우선권주장
61/435,194 2011년01월21일 미국(US)
61/447,592 2011년02월28일 미국(US)
61/448,312 2011년03월02일 미국(US)
61/450,101 2011년03월07일 미국(US)
61/467,535 2011년03월25일 미국(US)
61/467,543 2011년03월25일 미국(US)
61/514,863 2011년08월03일 미국(US)
61/544,440 2011년10월07일 미국(US)
등록특허 10-1533753
- 2 -
명 세 서
청구범위
청구항 1
무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 데이터를 송신하는 방법으로서,
상기 방법은,
상기 무선 소스 디바이스의 해상도(resolution)의 표시를 상기 무선 소스 디바이스로부터 수신하는 단계;
상기 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 단계 ―상기 사용자 입력 데이터는 연관된 좌표
(coordinate) 데이터를 가짐―;
정규화된 좌표 데이터를 생성하기 위해, 상기 무선 소스 디바이스의 상기 해상도 및 상기 무선 싱크 디바이스의
해상도를 기초로 상기 연관된 좌표 데이터를 정규화하는 단계;
상기 정규화된 좌표 데이터를 포함하는 데이터 패킷을 생성하는 단계; 및
상기 데이터 패킷을 상기 무선 싱크 디바이스로부터 상기 무선 소스 디바이스에 송신하는 단계를 포함하는,
무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 데이터를 송신하는 방법.
청구항 2
제 1 항에 있어서,
상기 연관된 좌표 데이터가, 상기 무선 소스 디바이스로부터 수신되고 있는 컨텐츠에 대한 디스플레이 윈도우
내에 있는지 여부를 결정하는 단계를 더 포함하는, 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 데
이터를 송신하는 방법.
청구항 3
제 1 항에 있어서,
상기 무선 소스 디바이스로부터 수신되고 있는 컨텐츠에 대한 디스플레이 윈도우의 해상도를 결정하는 단계를
더 포함하는, 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 데이터를 송신하는 방법.
청구항 4
제 3 항에 있어서,
상기 좌표 데이터를 정규화하는 단계는, 상기 디스플레이 윈도우의 상기 해상도와 상기 소스의 디스플레이의 해
상도의 비에 기초하여, 상기 연관된 좌표 데이터를 스케일링하는 단계를 포함하는, 무선 싱크 디바이스로부터
무선 소스 디바이스에 사용자 데이터를 송신하는 방법.
청구항 5
제 1 항에 있어서,
상기 연관된 좌표 데이터는 마우스 클릭 이벤트의 위치에 대응하는, 무선 싱크 디바이스로부터 무선 소스 디바
이스에 사용자 데이터를 송신하는 방법.
청구항 6
제 1 항에 있어서,
상기 연관된 좌표 데이터는 터치 이벤트의 위치에 대응하는, 무선 싱크 디바이스로부터 무선 소스 디바이스에
사용자 데이터를 송신하는 방법.
청구항 7
등록특허 10-1533753
- 3 -
무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스로서,
상기 무선 싱크 디바이스는,
명령들을 저장하는 메모리;
상기 명령들을 실행하도록 구성되는 하나 또는 그 초과의 프로세서들 ―상기 하나 또는 그 초과의 프로세서들은
상기 명령들의 실행 시에,
상기 무선 소스 디바이스의 해상도의 표시를 상기 무선 소스 디바이스로부터 수신하는 것;
상기 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 것 ―상기 사용자 입력 데이터는 연관된
좌표 데이터를 가짐―;
정규화된 좌표 데이터를 생성하기 위해, 상기 무선 소스 디바이스의 상기 해상도 및 상기 무선 싱크 디
바이스의 해상도를 기초로 상기 연관된 좌표 데이터를 정규화하는 것; 및
상기 정규화된 좌표 데이터를 포함하는 데이터 패킷을 생성하는 것을 초래함 ―; 및
상기 데이터 패킷을 상기 무선 소스 디바이스에 송신하기 위한 전송 유닛을 포함하는,
무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스.
청구항 8
제 7 항에 있어서,
상기 하나 또는 그 초과의 프로세서들은 상기 명령들의 실행 시에,
상기 연관된 좌표 데이터가, 상기 무선 소스 디바이스로부터 수신되고 있는 컨텐츠에 대한 디스플레이 윈도우
내에 있는지 여부를 결정하는 것을 더 초래하는, 무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱
크 디바이스.
청구항 9
제 7 항에 있어서,
상기 하나 또는 그 초과의 프로세서들은 상기 명령들의 실행 시에,
상기 무선 소스 디바이스로부터 수신되고 있는 컨텐츠에 대한 디스플레이 윈도우의 해상도를 결정하는 것을 더
초래하는, 무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스.
청구항 10
제 9 항에 있어서,
상기 좌표 데이터를 정규화하는 것은, 상기 디스플레이 윈도우의 상기 해상도와 상기 소스의 디스플레이의 해상
도의 비에 기초하여, 상기 연관된 좌표 데이터를 스케일링하는 것을 포함하는, 무선 소스 디바이스에 사용자 데
이터를 송신하기 위한 무선 싱크 디바이스.
청구항 11
제 7 항에 있어서,
상기 연관된 좌표 데이터는 마우스 클릭 이벤트의 위치에 대응하는, 무선 소스 디바이스에 사용자 데이터를 송
신하기 위한 무선 싱크 디바이스.
청구항 12
제 7 항에 있어서,
상기 연관된 좌표 데이터는 터치 이벤트의 위치에 대응하는, 무선 소스 디바이스에 사용자 데이터를 송신하기
위한 무선 싱크 디바이스.
등록특허 10-1533753
- 4 -
청구항 13
명령들을 저장하는 컴퓨터 판독가능 저장 매체로서,
상기 명령들은, 하나 또는 그 초과의 프로세서들에 의한 실행시에, 상기 하나 또는 그 초과의 프로세서들로 하
여금,
무선 소스 디바이스의 해상도의 표시를 상기 무선 소스 디바이스로부터 수신하고;
무선 싱크 디바이스에서 사용자 입력 데이터를 획득하고 ―상기 사용자 입력 데이터는 연관된 좌표 데이터를 가
짐―;
정규화된 좌표 데이터를 생성하기 위해, 상기 무선 소스 디바이스의 상기 해상도 및 상기 무선 싱크 디바이스의
해상도를 기초로 상기 연관된 좌표 데이터를 정규화하고;
상기 정규화된 좌표 데이터를 포함하는 데이터 패킷을 생성하고; 그리고
상기 데이터 패킷을 상기 무선 소스 디바이스에 송신하게 하는,
컴퓨터 판독가능 저장 매체.
청구항 14
무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스로서,
상기 무선 싱크 디바이스는,
상기 무선 소스 디바이스의 해상도의 표시를 상기 무선 소스 디바이스로부터 수신하기 위한 수단;
상기 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하기 위한 수단 ―상기 사용자 입력 데이터는 연관된
좌표 데이터를 가짐―;
정규화된 좌표 데이터를 생성하기 위해, 상기 무선 소스 디바이스의 상기 해상도 및 상기 무선 싱크 디바이스의
해상도를 기초로 상기 연관된 좌표 데이터를 정규화하기 위한 수단;
상기 정규화된 좌표 데이터를 포함하는 데이터 패킷을 생성하기 위한 수단; 및
상기 데이터 패킷을 상기 무선 소스 디바이스에 송신하기 위한 수단을 포함하는,
무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스.
청구항 15
제 14 항에 있어서,
상기 연관된 좌표 데이터가, 상기 무선 소스 디바이스로부터 수신되고 있는 컨텐츠에 대한 디스플레이 윈도우
내에 있는지 여부를 결정하기 위한 수단을 더 포함하는,
무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스.
청구항 16
제 14 항에 있어서,
상기 무선 소스 디바이스로부터 수신되고 있는 컨텐츠에 대한 디스플레이 윈도우의 해상도를 결정하기 위한 수
단을 더 포함하는,
무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스.
청구항 17
제 16 항에 있어서,
상기 좌표 데이터를 정규화하기 위한 수단은, 상기 디스플레이 윈도우의 상기 해상도와 상기 소스의 디스플레이
의 해상도의 비에 기초하여, 상기 연관된 좌표 데이터를 스케일링하기 위한 수단을 포함하는,
등록특허 10-1533753
- 5 -
무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스.
청구항 18
제 14 항에 있어서,
상기 연관된 좌표 데이터는 마우스 클릭 이벤트의 위치에 대응하는,
무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스.
청구항 19
제 14 항에 있어서,
상기 연관된 좌표 데이터는 터치 이벤트의 위치에 대응하는,
무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스.
청구항 20
제 13 항에 있어서,
상기 하나 또는 그 초과의 프로세서들에 의해 실행될 때, 상기 하나 또는 그 초과의 프로세서들로 하여금,
상기 연관된 좌표 데이터가, 상기 무선 소스 디바이스로부터 수신되고 있는 컨텐츠에 대한 디스플레이 윈도우
내에 있는지 여부를 결정하도록 하는 명령들을 더 저장하는,
컴퓨터 판독가능 저장 매체.
청구항 21
제 13 항에 있어서,
상기 하나 또는 그 초과의 프로세서들에 의해 실행될 때, 상기 하나 또는 그 초과의 프로세서들로 하여금,
상기 무선 소스 디바이스로부터 수신되고 있는 컨텐츠에 대한 디스플레이 윈도우의 해상도를 결정하도록 하는
명령들을 더 저장하는,
컴퓨터 판독가능 저장 매체.
청구항 22
제 21 항에 있어서,
상기 좌표 데이터를 정규화하기 위해, 상기 하나 또는 그 초과의 프로세서들이, 상기 디스플레이 윈도우의 상기
해상도와 상기 소스의 디스플레이의 해상도의 비에 기초하여, 상기 연관된 좌표 데이터를 스케일링하는,
컴퓨터 판독가능 저장 매체.
청구항 23
제 13 항에 있어서,
상기 연관된 좌표 데이터는 마우스 클릭 이벤트의 위치에 대응하는,
컴퓨터 판독가능 저장 매체.
청구항 24
제 13 항에 있어서,
상기 연관된 좌표 데이터는 터치 이벤트의 위치에 대응하는,
컴퓨터 판독가능 저장 매체.
청구항 25
등록특허 10-1533753
- 6 -
삭제
청구항 26
삭제
발명의 설명
기 술 분 야
본 출원은,[0001]
2011년 1월 21일자로 출원된 미국 가출원 제 61/435,194호;[0002]
2011년 2월 28일자로 출원된 미국 가출원 제 61/447,592호;[0003]
2011년 3월 2일자로 출원된 미국 가출원 제 61/448,312호;[0004]
2011년 3월 7일자로 출원된 미국 가출원 제 61/450,101호;[0005]
2011년 3월 25일자로 출원된 미국 가출원 제 61/467,535호;[0006]
2011년 3월 25일자로 출원된 미국 가출원 제 61/467,543호;[0007]
2011년 8월 3일자로 출원된 미국 가출원 제 61/514,863호;[0008]
2011년 10월 7일자로 출원된 미국 가출원 제 61/544,440호;[0009]
를 우선권으로 주장하며, 상기 가출원 전체 컨텐츠들 각각은 그 전체가 인용에 의해 본원에 포함된다.[0010]
본 개시는 무선 소스 디바이스와 무선 싱크 디바이스 사이에서 데이터를 송신하기 위한 기술들에 관한 것이다.[0011]
배 경 기 술
무선 디스플레이(WD) 또는 Wi-Fi 디스플레이(WFD) 시스템들은 무선 소스 디바이스 및 하나 또는 그 초과의 무선[0012]
싱크 디바이스들을 포함한다. 소스 디바이스 및 각각의 싱크 디바이스들은 모바일 디바이스들 또는 무선 통신
능력들을 갖는 유선 디바이스들일 수 있다. 소스 디바이스 및 싱크 디바이스들 중 하나 또는 그 초과는, 예를
들어, 소위 "스마트" 폰들 및 "스마트" 패드들 또는 태블릿들, e-리더들 또는 임의의 타입의 무선 디스플레이,
비디오 게이밍 디바이스들 또는 다른 타입들의 무선 통신 디바이스들을 포함하여, 모바일 전화들, 무선 통신 카
드들을 갖는 휴대용 컴퓨터들, 개인 휴대 정보 단말들(PDA들), 휴대용 미디어 플레이어들 또는 무선 통신 능력
들을 갖는 다른 이러한 디바이스들을 포함할 수 있다. 소스 디바이스 및 싱크 디바이스들 중 하나 또는 그 초
과는 또한, 통신 능력들을 포함하는, 텔레비젼들, 데스크탑 컴퓨터들, 모니터들, 프로젝터들 등과 같은 유선 디
바이스들을 포함할 수 있다.
소스 디바이스는, 특정한 미디어 공유 세션에 참가하는 싱크 디바이스들 중 하나 또는 그 초과에, 오디오 비디[0013]
오(AV) 데이터와 같은 미디어 데이터를 전송한다. 미디어 데이터는 소스 디바이스의 로컬 디스플레이 및 싱크
디바이스들의 각각의 디스플레이들 모두에서 재생될 수 있다. 더 구체적으로, 참가하는 싱크 디바이스들 각각
은 수신된 미디어 데이터를 자신의 스크린 및 오디오 장비 상에 렌더링한다.
발명의 내용
본 개시는 일반적으로, 무선 싱크 디바이스가 무선 싱크 디바이스와 통신할 수 있는 시스템을 설명한다. 통신[0014]
세션의 일부로서, 무선 소스 디바이스는 오디오 및 비디오 데이터를 무선 싱크 디바이스에 송신할 수 있고, 무
선 싱크 디바이스는 무선 싱크 디바이스에서 수신된 사용자 입력들을 무선 소스 디바이스에 다시 송신할 수 있
다. 이러한 방식으로, 무선 싱크 디바이스의 사용자는 무선 소스 디바이스를 제어할 수 있고, 무선 소스 디바
이스로부터 무선 싱크 디바이스에 송신되고 있는 컨텐츠를 제어할 수 있다.
일례에서, 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 데이터를 송신하는 방법은, 무선 싱크 디바[0015]
이스에서 사용자 입력 데이터를 획득하는 단계 ―사용자 입력 데이터는 연관된 좌표 데이터를 가짐―; 정규화된
좌표 데이터를 생성하기 위해 연관된 좌표 데이터를 정규화하는 단계; 정규화된 좌표 데이터를 포함하는 데이터
패킷을 생성하는 단계; 데이터 패킷을 무선 소스 디바이스에 송신하는 단계를 포함한다.
등록특허 10-1533753
- 7 -
다른 예에서, 무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스는, 명령들을 저장하는[0016]
메모리; 명령들을 실행하도록 구성되는 하나 또는 그 초과의 프로세서들을 포함하고, 명령들의 실행시에 하나
또는 그 초과의 프로세서들은, 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 것 ―사용자 입력 데이
터는 연관된 좌표 데이터를 가짐―, 정규화된 좌표 데이터를 생성하기 위해 연관된 좌표 데이터를 정규화하는
것, 정규화된 좌표 데이터를 포함하는 데이터 패킷을 생성하는 것을 초래하고, 상기 무선 싱크 디바이스는, 데
이터 패킷을 무선 소스 디바이스에 송신하기 위한 전송 유닛을 포함한다.
다른 예에서, 컴퓨터 판독가능 저장 매체는, 하나 또는 그 초과의 프로세서들에 의한 실행시에, 하나 또는 그[0017]
초과의 프로세서들로 하여금, 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 데이터를 송신하는 방법
을 수행하게 하는 명령들을 저장한다. 방법은, 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 단계
―사용자 입력 데이터는 연관된 좌표 데이터를 가짐―; 정규화된 좌표 데이터를 생성하기 위해 연관된 좌표 데
이터를 정규화하는 단계; 정규화된 좌표 데이터를 포함하는 데이터 패킷을 생성하는 단계; 데이터 패킷을 무선
소스 디바이스에 송신하는 단계를 포함한다.
다른 예에서, 무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스는, 무선 싱크 디바이스[0018]
에서 사용자 입력 데이터를 획득하기 위한 수단 ―사용자 입력 데이터는 연관된 좌표 데이터를 가짐―; 정규화
된 좌표 데이터를 생성하기 위해 연관된 좌표 데이터를 정규화하기 위한 수단; 정규화된 좌표 데이터를 포함하
는 데이터 패킷을 생성하기 위한 수단; 데이터 패킷을 무선 소스 디바이스에 송신하기 위한 수단을 포함한다.
다른 예에서, 무선 싱크 디바이스로부터의 사용자 데이터를 무선 소스 디바이스에서 수신하는 방법은, 무선 소[0019]
스 디바이스에서 데이터 패킷을 수신하는 단계 ―데이터 패킷은 연관된 좌표 데이터를 갖는 사용자 입력 데이터
를 포함함―; 정규화된 좌표 데이터를 생성하기 위해 연관된 좌표 데이터를 정규화하는 단계; 정규화된 좌표 데
이터에 기초하여 데이터 패킷을 프로세싱하는 단계를 포함한다.
다른 예에서, 무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스는, 무선 소스 디바이스[0020]
에서 데이터 패킷을 수신하기 위한 전송 유닛 ―데이터 패킷은 연관된 좌표 데이터를 갖는 사용자 입력 데이터
를 포함함―; 명령들을 저장하는 메모리; 명령들을 실행하도록 구성되는 하나 또는 그 초과의 프로세서들을 포
함하고, 명령들의 실행시에, 하나 또는 그 초과의 프로세서들은, 정규화된 좌표 데이터를 생성하기 위해 연관된
좌표 데이터를 정규화하는 것 및 정규화된 좌표 데이터에 기초하여 데이터 패킷을 프로세싱하는 것을 초래한다.
다른 예에서, 컴퓨터 판독가능 저장 매체는, 하나 또는 그 초과의 프로세서들에 의한 실행시에, 하나 또는 그[0021]
초과의 프로세서들로 하여금, 무선 싱크 디바이스로부터의 사용자 데이터를 무선 소스 디바이스에서 수신하는
방법을 수행하게 하는 명령들을 저장한다. 방법은, 무선 소스 디바이스에서 데이터 패킷을 수신하는 단계 ―데
이터 패킷은 연관된 좌표 데이터를 갖는 사용자 입력 데이터를 포함함―; 정규화된 좌표 데이터를 생성하기 위
해 연관된 좌표 데이터를 정규화하는 단계; 정규화된 좌표 데이터에 기초하여 데이터 패킷을 프로세싱하는 단계
를 포함한다.
다른 예에서, 무선 소스 디바이스에 사용자 데이터를 송신하기 위한 무선 싱크 디바이스는, 무선 소스 디바이스[0022]
에서 데이터 패킷을 수신하기 위한 수단 ―데이터 패킷은 연관된 좌표 데이터를 갖는 사용자 입력 데이터를 포
함함―; 정규화된 좌표 데이터를 생성하기 위해 연관된 좌표 데이터를 정규화하기 위한 수단; 정규화된 좌표 데
이터에 기초하여 데이터 패킷을 프로세싱하기 위한 수단을 포함한다.
도면의 간단한 설명
도 1a는 본 개시의 기술들을 구현할 수 있는 소스/싱크 시스템의 예를 도시하는 블록도이다.[0023]
도 1b는 2개의 싱크 디바이스들을 갖는 소스/싱크 시스템의 예를 도시하는 블록도이다.
도 2는 본 개시의 기술들을 구현할 수 있는 소스 디바이스의 예를 도시한다.
도 3은 본 개시의 기술들을 구현할 수 있는 싱크 디바이스의 예를 도시한다.
도 4는 본 개시의 기술들을 구현할 수 있는 송신기 시스템 및 수신기 시스템의 블록도를 도시한다.
도 5a 및 도 5b는 본 개시의 기술들에 따라 능력 협상들을 수행하기 위한 예시적인 메시지 전송 시퀀스들을 도
시한다.
도 6은 싱크 디바이스에서 획득된 사용자 입력 데이터를 소스 디바이스에 전달하기 위해 이용될 수 있는 예시적
등록특허 10-1533753
- 8 -
인 데이터 패킷을 도시한다.
도 7a 및 도 7b는 소스 디바이스와 싱크 디바이스 사이의 능력 협상을 위해 이용될 수 있는, 본 개시의 기술들
을 예시하는 흐름도들이다.
도 8a 및 도 8b는 사용자 입력 데이터를 갖는 데이터 패킷들을 송신 및 수신하기 위해 이용될 수 있는, 본 개시
의 기술들을 예시하는 흐름도들이다.
도 9a 및 도 9b는 사용자 입력 데이터를 갖는 데이터 패킷들을 송신 및 수신하기 위해 이용될 수 있는, 본 개시
의 기술들을 예시하는 흐름도들이다.
도 10a 및 도 10b는 타임스탬프 정보 및 사용자 입력 데이터를 갖는 데이터 패킷들을 송신 및 수신하기 위해 이
용될 수 있는, 본 개시의 기술들을 예시하는 흐름도들이다.
도 11a 및 도 11b는 타임스탬프 정보 및 사용자 입력 데이터를 갖는 데이터 패킷들을 송신 및 수신하기 위해 이
용될 수 있는, 본 개시의 기술들을 예시하는 흐름도들이다.
도 12a 및 도 12b는 음성 커맨드들을 포함하는 데이터 패킷들을 송신 및 수신하기 위해 이용될 수 있는, 본 개
시의 기술들을 예시하는 흐름도들이다.
도 13a 및 도 13b는 멀티-터치 사용자 입력 커맨드들을 갖는 데이터 패킷들을 송신 및 수신하기 위해 이용될 수
있는, 본 개시의 기술들을 예시하는 흐름도들이다.
도 14a 및 도 14b는 제 3의(third party) 디바이스로부터 포워딩된 사용자 입력 데이터를 갖는 데이터 패킷들을
송신 및 수신하기 위해 이용될 수 있는, 본 개시의 기술들을 예시하는 흐름도들이다.
도 15a 및 도 15b는 데이터 패킷들을 송신 및 수신하기 위해 이용될 수 있는, 본 개시의 기술들을 예시하는 흐
름도들이다.
발명을 실시하기 위한 구체적인 내용
본 개시는 일반적으로, 무선 싱크 디바이스가 무선 싱크 디바이스와 통신할 수 있는 시스템을 설명한다. 통신[0024]
세션의 일부로서, 무선 소스 디바이스는 오디오 및 비디오 데이터를 무선 싱크 디바이스에 송신할 수 있고, 무
선 싱크 디바이스는 무선 싱크 디바이스에서 수신된 사용자 입력들을 무선 소스 디바이스에 다시 송신할 수 있
다. 이러한 방식으로, 무선 싱크 디바이스의 사용자는 무선 소스 디바이스를 제어할 수 있고, 무선 소스 디바
이스로부터 무선 싱크 디바이스에 송신되고 있는 컨텐츠를 제어할 수 있다.
도 1a는 본 개시의 기술들 중 하나 또는 그 초과를 구현할 수 있는 예시적인 소스/싱크 시스템(100)을 도시하는[0025]
블록도이다. 도 1a에 도시된 바와 같이, 시스템(100)은, 통신 채널(150)을 통해 싱크 디바이스(160)와 통신하
는 소스 디바이스(120)를 포함한다. 소스 디바이스(120)는, 오디오/비디오(A/V) 데이터(121)를 저장하는 메모
리, 디스플레이(122), 스피커(123), 오디오/비디오 인코더(124)(또한 인코더(124)로 지칭됨), 오디오/비디오 제
어 모듈(125), 및 송신기/수신기(TX/RX) 유닛(126)을 포함할 수 있다. 싱크 디바이스(160)는 디스플레이(162),
스피커(163), 오디오/비디오 디코더(164)(또한 디코더(164)로 지칭됨), 송신기/수신기 유닛(166), 사용자 입력
(UI) 디바이스(167) 및 사용자 입력 프로세싱 모듈(UIPM)(168)을 포함할 수 있다. 도시된 컴포넌트들은 소스/
싱크 시스템(100)에 대한 단지 하나의 예시적인 구성을 구성한다. 다른 구성들은 도시된 컴포넌트들보다 더 적
은 컴포넌트들을 포함할 수 있거나 또는 도시된 컴포넌트들 이외의 추가적인 컴포넌트들을 포함할 수 있다.
도 1a의 예에서, 소스 디바이스(120)는 오디오/비디오 데이터(121)의 비디오 부분을 디스플레이(122) 상에 디스[0026]
플레이할 수 있고, 오디오/비디오 데이터(121)의 오디오 부분을 스피커(123) 상에 출력할 수 있다. 오디오/비
디오 데이터(121)는 소스 디바이스(120) 상에 로컬로 저장될 수 있거나, 파일 서버, 하드 드라이브, 외부 메모
리, 블루-레이 디스크, DVD, 또는 다른 물리적 저장 매체와 같은 외부 저장 매체로부터 액세스될 수 있거나, 또
는 인터넷과 같은 네트워크 접속을 통해 소스 디바이스(120)에 스트리밍될 수 있다. 몇몇 예들에서, 오디오/비
디오 데이터(121)는 소스 디바이스(120)의 카메라 및 마이크로폰을 통해 실시간으로 캡쳐될 수 있다. 오디오/
비디오 데이터(121)는 영화들, 텔레비젼 쇼들, 또는 음악과 같은 멀티미디어 컨텐츠를 포함할 수 있지만, 또한
소스 디바이스(120)에 의해 생성되는 실시간 컨텐츠를 포함할 수 있다. 예를 들어, 이러한 실시간 컨텐츠는 예
를 들어, 비디오 텔레포니 세션의 일부로서 캡쳐되는 비디오 데이터 또는 소스 디바이스(120) 상에서 실행되는
애플리케이션들에 의해 생성될 수 있다. 더 상세히 설명될 바와 같이, 몇몇 예들에서 이러한 실시간 컨텐츠는,
사용자가 선택하도록 이용가능한 사용자 입력 옵션들의 비디오 프레임을 포함할 수 있다. 몇몇 예들에서, 오디
등록특허 10-1533753
- 9 -
오/비디오 데이터(121)는, 비디오의 프레임 상에 오버레이된 사용자 입력 옵션들을 갖는 TV 프로그램 또는 영화
의 비디오 프레임과 같은, 상이한 타입들의 컨텐츠의 조합인 비디오 프레임들을 포함할 수 있다.
오디오/비디오 데이터(121)를 디스플레이(122) 및 스피커(123)를 통해 로컬로 렌더링하는 것에 부가하여, 소스[0027]
디바이스(120)의 오디오/비디오 인코더(124)는 오디오/비디오 데이터(121)를 인코딩할 수 있고, 송신기/수신기
유닛(126)은 인코딩된 데이터를 통신 채널(150)을 통해 싱크 디바이스(160)에 송신할 수 있다. 싱크 디바이스
(160)의 송신기/수신기 유닛(166)은 인코딩된 데이터를 수신하고, 오디오/비디오 디코더(164)는 인코딩된 데이
터를 디코딩하고 디코딩된 데이터를 디스플레이(162) 및 스피커(163)를 통해 출력한다. 이러한 방식으로, 디스
플레이(122) 및 스피커(123)에 의해 렌더링되고 있는 오디오 및 비디오 데이터는 디스플레이(162) 및 스피커
(163)에 의해 동시에 렌더링될 수 있다. 오디오 데이터 및 비디오 데이터는 프레임들로 배열될 수 있고, 오디
오 프레임들은 렌더링될 때 비디오 프레임들과 시간-동기화될 수 있다.
오디오/비디오 인코더(124) 및 오디오/비디오 디코더(164)는, ITU-T H.264 표준(대안적으로 MPEG-4, Part 10,[0028]
어드밴스드 비디오 코딩(AVC)으로 지칭됨) 또는 새로 등장한 고효율 비디오 코딩(HEVC) 표준(때때로 H.265 표준
으로 지칭됨)과 같은 임의의 수의 오디오 및 비디오 압축 표준들을 구현할 수 있다. 많은 다른 타입들의 사유
(proprietary) 또는 표준화된 압축 기술들이 또한 이용될 수 있다. 일반적으로 말해서, 오디오/비디오 디코더
(164)는 오디오/비디오 인코더(124)의 역(reciprocal) 코딩 동작들을 수행하도록 구성된다. 도 1a에는 도시되
지 않았지만, 몇몇 양상들에서, A/V 인코더(124) 및 A/V 디코더(164)는 각각 오디오 인코더 및 디코더와 통합될
수 있고, 적절한 MUX-DEMUX 유닛들 또는 다른 하드웨어 및 소프트웨어를 포함하여, 공통의 데이터 스트림 또는
별개의 데이터 스트림들에서 오디오 및 비디오 모두의 인코딩을 핸들링할 수 있다.
아래에서 더 상세히 설명될 바와 같이, A/V 인코더(124)는 또한 앞서 설명된 바와 같은 비디오 압축 표준을 구[0029]
현하는 것에 부가하여, 다른 인코딩 기능들을 수행할 수 있다. 예를 들어, A/V 인코더(124)는, A/V 데이터
(121)가 싱크 디바이스(160)에 송신되기 전에, 다양한 타입들의 메타데이터를 A/V 데이터(121)에 추가할 수 있
다. 몇몇 예들에서, A/V 데이터(121)는 인코딩된 형태로 소스 디바이스(120)에서 저장 또는 수신될 수 있고,
따라서 A/V 인코더(124)에 의한 추가적인 압축을 요구하지 않을 수 있다.
도 1a는 오디오 페이로드 데이터 및 비디오 페이로드 데이터를 별도로 반송하는 통신 채널(150)을 도시하지만,[0030]
몇몇 예들에서, 비디오 페이로드 데이터 및 오디오 페이로드 데이터는 공통의 데이터 스트림의 일부일 수 있음
을 이해해야 한다. 적용가능한 경우, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터
그램 프로토콜(UDP)과 같은 다른 프로토콜들을 따를 수 있다. 오디오/비디오 인코더(124) 및 오디오/비디오 디
코더(164) 각각은 하나 또는 그 초과의 마이크로프로세서들, 디지털 신호 프로세서들(DSP들), 주문형 집적 회로
들(ASIC들), 필드 프로그래머블 게이트 어레이들(FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들
의 임의의 조합들로서 구현될 수 있다. 오디오/비디오 인코더(124) 및 오디오/비디오 디코더(164) 각각은, 하
나 또는 그 초과의 인코더들 또는 디코더들에 포함될 수 있고, 이들 중 하나는 결합된 인코더/디코더(CODEC)의
일부로서 통합될 수 있다. 따라서, 소스 디바이스(120) 및 싱크 디바이스(160) 각각은 본 개시의 기술들 중 하
나 또는 그 초과를 실행하도록 구성되는 특수화된 머신들을 포함할 수 있다.
디스플레이(122) 및 디스플레이(162)는, 음극선관(CRT), 액정 디스플레이(LCD), 플라즈마 디스플레이, 발광 다[0031]
이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은
다양한 비디오 출력 디바이스들 중 임의의 비디오 출력 디바이스를 포함할 수 있다. 이러한 예 또는 다른 예들
에서, 디스플레이들(122 및 162)은 각각 발광형 디스플레이들 또는 투과형 디스플레이들일 수 있다. 디스플레
이(122) 및 디스플레이(162)는 또한 터치 디스플레이들일 수 있어서, 이들은 동시에 입력 디바이스들 및 출력
디바이스들 모두이다. 이러한 터치 디스플레이들은, 사용자가 각각의 디바이스에 사용자 입력을 제공하도록 허
용하는, 용량성, 저항성 또는 다른 타입의 터치 패널일 수 있다.
스피커(123)는, 헤드폰들, 단일 스피커 시스템, 멀티-스피커 시스템 또는 서라운드 음향 시스템과 같은 다양한[0032]
오디오 출력 디바이스들 중 임의의 오디오 출력 디바이스를 포함할 수 있다. 추가적으로, 디스플레이(122) 및
스피커(123)는 소스 디바이스(120)의 일부로서 도시되고, 디스플레이(162) 및 스피커(163)는 싱크 디바이스
(160)의 일부로서 도시되지만, 소스 디바이스(120) 및 싱크 디바이스(160)는 실제로는 디바이스들의 일 시스템
일 수 있다. 일례로서, 디스플레이(162)는 텔레비젼일 수 있고, 스피커(163)는 서라운드 음향 시스템일 수 있
고, 디코더(164)는 디스플레이(162) 및 스피커(163)에 유선 또는 무선으로 접속되는 외부 박스의 일부일 수 있
다. 다른 예들에서, 싱크 디바이스(160)는 태블릿 컴퓨터 또는 스마트폰과 같은 단일 디바이스일 수 있다. 또
다른 경우들에서, 소스 디바이스(120) 및 싱크 디바이스(160)는 유사한 디바이스들인데, 예를 들어, 둘 모두는
등록특허 10-1533753
- 10 -
스마트폰들, 태블릿 컴퓨터들 등이다. 이 경우, 일 디바이스는 소스로서 동작할 수 있고, 나머지 디바이스는
싱크로서 동작할 수 있다. 이러한 역할들은 후속 통신 세션들에서는 심지어 반전될 수 있다. 또 다른 경우들
에서, 소스 디바이스는 모바일 디바이스, 이를테면, 스마트폰, 랩탑 또는 태블릿 컴퓨터를 포함할 수 있고, 싱
크 디바이스는 (예를 들어, AC 전력 코드를 갖는) 더 정적인 디바이스를 포함할 수 있고, 이 경우, 소스 디바이
스는 싱크 디바이스를 통해 많은 청중에게 프리젠테이션을 위해 오디오 및 비디오 데이터를 전달할 수 있다.
송신기/수신기 유닛(126) 및 송신기/수신기 유닛(166) 각각은 데이터를 송신 및 수신하기 위해 설계된 하나 또[0033]
는 그 초과의 안테나들 및 다른 컴포넌트들 뿐만 아니라, 신호 변조를 위해 설계된 다양한 믹서들, 필터들, 증
폭기들 및 다른 컴포넌트들을 포함할 수 있다. 통신 채널(150)은 일반적으로, 비디오 데이터를 소스 디바이스
(120)로부터 싱크 디바이스(160)에 송신하기 위한, 임의의 적절한 통신 매체, 또는 상이한 통신 매체들의 집합
을 표현한다. 통신 채널(150)은 통상적으로 Wi-Fi, 블루투스 등과 같은 비교적 단거리 통신 채널이다.
그러나, 통신 채널(150)은 반드시 이러한 양상(respect)에 제한되지는 않고, 라디오 주파수(RF) 스펙트럼 또는
하나 또는 그 초과의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체 또는 무선 및 유선 매체들의
임의의 조합을 포함할 수 있다. 다른 예들에서, 통신 채널(150)은 심지어, 유선 또는 무선 로컬 영역
네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 일부를 형성할 수
있다. 추가적으로, 통신 채널(150)은 피어-투-피어 링크를 생성하기 위해 소스 디바이스(120) 및 싱크 디바이
스(160)에 의해 이용될 수 있다. 소스 디바이스(120) 및 싱크 디바이스(160)는 IEEE 802.11 표준군으로부터의
표준과 같은 통신 프로토콜을 이용하여 통신 채널(150)을 통해 통신할 수 있다. 소스 디바이스(120) 및 싱크
디바이스(160)가 예를 들어, 무선 액세스 포인트들 또는 소위 핫스팟과 같은 매개체를 이용하지 않고 서로 직접
통신하도록, 소스 디바이스(120) 및 싱크 디바이스(160)는 예를 들어, Wi-Fi Direct 표준에 따라 통신할 수 있
다. 소스 디바이스(120) 및 싱크 디바이스(160)는 또한 네트워크 혼잡을 회피 또는 감소시키기 위해 터널링된
직접 링크 셋업(TLDS)을 설정할 수 있다. 본 개시의 기술들은 때로는 Wi-Fi에 대해 설명될 수 있지만, 이러한
기술들의 양상들은 또한 다른 통신 프로토콜들과 호환가능할 수 있음이 고려된다. 제한이 아닌 예시로서, 소스
디바이스(120)와 싱크 디바이스 사이의 무선 통신은 직교 주파수 분할 멀티플렉싱(OFDM) 기술들을 활용할 수 있
다. 시분할 다중 액세스(TDMA), 주파수 분할 다중 액세스(FDMA), 코드 분할 다중 액세스(CDMA), 또는 OFDM,
FDMA, TDMA 및/또는 CDMA의 임의의 조합을 포함하는(그러나 이에 한정되는 것은 아님) 매우 다양한 다른 무선
통신 기술들이 또한 이용될 수 있다. WiFi Direct 및 TDLS는 비교적 단거리 통신 세션들을 셋업하도록 의도된
다. 잡음이 있거나 방해되는 환경에서 디바이스들 사이의 거리는 35 미터 미만과 같이 더욱 짧아질 수 있지만,
이 문맥에서 비교적 단거리는 예를 들어, 70 미터 미만을 지칭할 수 있다.
소스 디바이스(120)로부터 수신된 데이터를 디코딩 및 렌더링하는 것에 부가하여, 싱크 디바이스(160)는 또한[0034]
사용자 입력 디바이스(167)로부터 사용자 입력들을 수신할 수 있다. 사용자 입력 디바이스(167)는 예를 들어,
키보드, 마우스, 트랙볼 또는 트랙 패드, 터치 스크린, 음성 커맨드 인식 모듈 또는 임의의 다른 이러한 사용자
입력 디바이스일 수 있다. UIPM(168)은 사용자 입력 디바이스(167)에 의해 수신된 사용자 입력 커맨드들을, 소
스 디바이스(120)가 해석할 수 있는 데이터 패킷 구조로 포맷한다. 이러한 데이터 패킷들은 송신기/수신기
(166)에 의해 통신 채널(150)을 통해 소스 디바이스(120)로 송신된다. 송신기/수신기 유닛(126)은 데이터 패킷
들을 수신하고, A/V 제어 모듈(125)은 데이터 패킷들을 파싱하여, 사용자 입력 디바이스(167)에 의해 수신된 사
용자 입력 커맨드를 해석한다. 데이터 패킷에서 수신된 커맨드에 기초하여, A/V 제어 모듈(125)은 인코딩 및
송신되고 있는 컨텐츠를 변경할 수 있다. 이러한 방식으로, 싱크 디바이스(160)의 사용자는 소스 디바이스
(120)에 의해 송신되고 있는 오디오 페이로드 데이터 및 비디오 페이로드 데이터를 원격으로 그리고 소스 디바
이스(120)와 직접 상호작용하지 않고 제어할 수 있다. 싱크 디바이스(160)의 사용자가 소스 디바이스(120)에
송신할 수 있는 커맨드들의 타입들의 예들은, 오디오 및 비디오 데이터의 되감기, 빨리감기, 일시정지 및 재생
을 위한 커맨드들 뿐만 아니라 주밍(zooming), 회전, 스크롤링(scrolling) 등을 위한 커맨드들을 포함한다. 사
용자들은 또한, 예를 들어 옵션들의 메뉴로부터 선택할 수 있고, 이 선택을 소스 디바이스(120)에 다시 송신할
수 있다.
추가적으로, 싱크 디바이스(160)의 사용자들은 소스 디바이스(120) 상에 애플리케이션들을 론칭하고 제어할 수[0035]
있다. 예를 들어, 싱크 디바이스(160)의 사용자는 소스 디바이스(120) 상에 저장된 사진 편집 애플리케이션을
론칭할 수 있고, 이 애플리케이션을 이용하여, 소스 디바이스(120) 상에 로컬로 저장된 사진을 편집할 수 있다.
싱크 디바이스(160)는, 사진이 실제로는 소스 디바이스(120) 상에서 편집되고 있지만, 사진이 싱크 디바이스
(160) 상에서 로컬로 편집되고 있는 것처럼 보이고 느껴지는 사용자 경험을 사용자에게 제공할 수 있다. 이러
한 구성을 이용하면, 디바이스 사용자는 몇몇 디바이스들에 이용하기 위한 하나의 디바이스의 능력들을 레버리
지(leverage)할 수 있다. 예를 들어, 소스 디바이스(120)는 대량의 메모리 및 고급 프로세싱 능력들을 갖는 스
등록특허 10-1533753
- 11 -
마트폰일 수 있다. 소스 디바이스(120)의 사용자는, 스마트폰들이 통상적으로 이용되는 모든 세팅들 및 상황들
에서 스마트폰을 이용할 수 있다. 그러나, 영화를 시청할 때, 사용자는 더 큰 디스플레이 스크린을 갖는 디바
이스 상에서 영화를 시청하기를 원할 수 있고, 이 경우, 싱크 디바이스(160)는 태블릿 컴퓨터 또는 심지어 더
큰 디스플레이 디바이스 또는 텔레비젼일 수 있다. 이메일을 전송하거나 이메일에 답신하기를 원하는 경우, 사
용자는 키보드를 갖는 디바이스를 이용하기를 원할 수 있고, 이 경우 싱크 디바이스(160)는 랩탑일 수 있다.
두 예들 모두에서, 사용자가 싱크 디바이스와 상호작용하고 있을지라도 프로세싱의 대부분은 여전히 소스 디바
이스(120)(이 예에서는 스마트폰)에 의해 수행될 수 있다. 이러한 특정한 동작 상황에서, 프로세싱의 대부분이
소스 디바이스(120)에 의해 수행되고 있는 것에 기인하여, 싱크 디바이스(160)가 소스 디바이스(120)에 의해 수
행되고 있는 프로세싱을 수행하도록 요청받는 경우보다, 싱크 디바이스(160)는 더 적은 자원들을 갖는 더 저렴
한 디바이스일 수 있다. 몇몇 예들에서 소스 디바이스 및 싱크 디바이스 둘 모두가 사용자 입력(예를 들어, 터
치 스크린 커맨드들)을 수신할 수 있고, 본 개시의 기술들은 임의의 주어진 세션에서 디바이스들의 능력들을 협
상하고 그리고 또는 식별함으로써 양방향 상호작용을 용이하게 할 수 있다.
몇몇 구성에서, A/V 제어 모듈(125)은 소스 디바이스(125)의 운영 시스템에 의해 실행되고 있는 운영 시스템 프[0036]
로세스일 수 있다. 그러나, 다른 구성들에서, A/V 제어 모듈(125)은 소스 디바이스(120) 상에서 실행되는 애플
리케이션의 소프트웨어 프로세스일 수 있다. 이러한 구성에서는, 소스 디바이스(120) 상에서 실행되는 운영 시
스템과는 반대로, 싱크 디바이스(160)의 사용자가 소스 디바이스(120) 상에서 실행되는 애플리케이션과 직접 상
호작용하도록, 사용자 입력 커맨드는 소프트웨어 프로세스에 의해 해석될 수 있다. 운영 시스템과는 반대로 애
플리케이션과 직접 상호작용함으로써, 싱크 디바이스(160)의 사용자는, 소스 디바이스(120)의 운영 시스템에 고
유하지 않은(not native) 커맨드들의 라이브러리에 대한 액세스를 가질 수 있다. 추가적으로, 애플리케이션과
직접 상호작용하는 것은, 상이한 플랫폼들 상에서 실행되는 디바이스들에 의해 커맨드들이 더 쉽게 송신 및 프
로세싱되게 할 수 있다.
소스 디바이스(120)는 무선 싱크 디바이스(160)에서 인가되는 사용자 입력들에 응답할 수 있다. 이러한 상호작[0037]
용 애플리케이션 세팅에서, 무선 싱크 디바이스(160)에서 인가된 사용자 입력들은 통신 채널(150)을 통해 무선
디스플레이 소스에 다시 전송될 수 있다. 일례에서, 싱크 디바이스(160)가 싱크 디바이스(160)에 인가된 사용
자 입력들을 소스 디바이스(120)에 송신할 수 있게 하기 위해, 사용자 인터페이스 백 채널(UIBC; user
interface back channel)로도 또한 지칭되는 역방향 채널 아키텍쳐가 구현될 수 있다. 역방향 채널 아키텍쳐는
사용자 입력들을 전송하기 위한 상위 계층 메시지들, 및 싱크 디바이스(160) 및 소스 디바이스(120)에서 사용자
인터페이스 능력들을 협상하기 위한 하위 계층 프레임들을 포함할 수 있다. UIBC는 싱크 디바이스(160)와 소스
디바이스(120) 사이에서 인터넷 프로토콜(IP) 전송 계층 상에 상주할 수 있다. 이 방식으로, UIBC는 오픈 시스
템 상호접속(OSI) 통신 모델에서 전송 계층 위에 있을 수 있다. 일례에서, OSI 통신은 7개의 계층들(1 - 물리,
2 - 데이터 링크, 3 - 네트워크, 4 - 전송, 5 - 세션, 6 - 프리젠테이션, 및 7 - 애플리케이션)을 포함한다.
이 예에서, 전송 계층 위에 있는 것을 계층들 5, 6 및 7로 지칭한다. 사용자 입력 데이터를 포함한 데이터 패
킷들의 순서대로의 전송 및 신뢰할 수 있는 송신을 증진시키기 위해, UIBC는 송신 제어 프로토콜/인터넷 프로토
콜(TCP/IP) 또는 사용자 데이터그램 프로토콜(UDP)과 같은 다른 패킷-기반 통신 프로토콜들의 최상부에서 실행
되도록 구성될 수 있다. UDP 및 TCP는 OSI 계층 아키텍쳐에서 병렬로 동작할 수 있다. TCP/IP는 싱크 디바이
스(160) 및 소스 디바이스(120)가 패킷 손실 이벤트에서 재송신 기술들을 구현하게 할 수 있다.
몇몇 경우들에서, 소스 디바이스(120) 및 싱크 디바이스(160)에 위치된 사용자 입력 인터페이스들 사이에 미스[0038]
매칭이 존재할 수 있다. 이러한 미스매칭에 의해 생성된 잠재적 문제들을 해결하고 이러한 환경들 하에서 양호
한 사용자 경험을 증진시키기 위해, 통신 세션을 설정하기 전에 또는 통신 세션 전반에 걸친 다양한 시간들에서
사용자 입력 인터페이스 능력 협상이 소스 디바이스(120)와 싱크 디바이스(160) 사이에서 발생할 수 있다. 이
러한 협상 프로세스의 일부로서, 소스 디바이스(120) 및 싱크 디바이스(160)는 협상된 스크린 해상도에 동의할
수 있다. 싱크 디바이스(160)가 사용자 입력과 연관된 좌표 데이터를 송신하는 경우, 싱크 디바이스(160)는 협
상된 스크린 해상도에 매칭시키기 위해 디스플레이(162)로부터 획득된 좌표 데이터를 스케일링할 수 있다. 일
례에서, 싱크 디바이스(160)가 1280x720의 해상도를 갖고, 소스 디바이스(120)가 1600x900의 해상도를 가지면,
디바이스들은, 예를 들어, 이들의 협상된 해상도로서 1280x720을 이용할 수 있다. 협상된 해상도는 싱크 디바
이스(160)의 해상도에 기초하여 선택될 수 있지만, 소스 디바이스(120)의 해상도 또는 몇몇 다른 해상도가 또한
이용될 수 있다. 1280x720의 싱크 디바이스가 이용되는 예에서, 싱크 디바이스(160)는 좌표들을 소스 디바이스
(120)에 송신하기 전에, 획득된 x-좌표들을 1600/1280의 팩터로 스케일링할 수 있고, 유사하게, 싱크 디바이스
(160)는 좌표들을 소스 디바이스(120)에 송신하기 전에, 획득된 y-좌표들을 900/720으로 스케일링할 수 있다.
다른 구성들에서, 소스 디바이스(120)는 획득된 좌표들을 협상된 해상도로 스케일링할 수 있다. 싱크 디바이스
등록특허 10-1533753
- 12 -
(160)가 소스 디바이스(120)보다 더 높은 해상도의 디스플레이를 이용하는지 또는 그 반대인지에 기초하여, 스
케일링은 좌표 범위를 증가 또는 감소시킬 수 있다.
추가적으로, 몇몇 예들에서, 싱크 디바이스(160)에서의 해상도는 통신 세션 동안 변할 수 있어서, 잠재적으로[0039]
디스플레이(122)와 디스플레이(162) 사이에 미스매칭을 생성할 수 있다. 사용자 경험을 개선하고 적절한 기능
을 보장하기 위해, 소스/싱크 시스템(100)은 스크린 정규화를 위한 기술들을 구현함으로써 사용자 상호작용 미
스매칭을 감소 또는 방지하기 위한 기술들을 구현할 수 있다. 소스 디바이스(120)의 디스플레이(122) 및 싱크
디바이스(160)의 디스플레이(162)는 상이한 해상도들 및/또는 상이한 종횡비(aspects ratio)들을 가질 수 있다.
추가적으로, 몇몇 세팅들에서, 소스 디바이스(120)로부터 수신된 비디오 데이터가 싱크 디바이스(160)의 디스플
레이(162) 전부 미만을 커버하는 윈도우에 렌더링되도록, 싱크 디바이스(160)의 사용자는 소스 디바이스(120)로
부터 수신된 비디오 데이터에 대한 디스플레이 윈도우를 리사이징(resize)하는 능력을 가질 수 있다. 다른 예
시적인 세팅에서, 싱크 디바이스(160)의 사용자는 가로 모드(landscape mode) 또는 세로 모드(portrait mode)
에서 컨텐츠를 시청하는 옵션을 가질 수 있고, 이들 각각은 고유한 좌표들 및 상이한 종횡비들을 갖는다. 이러
한 상황들에서, 마우스 클릭 또는 터치 이벤트가 발생하는 좌표와 같은, 싱크 디바이스(160)에서 수신된 사용자
입력과 연관된 좌표들은, 좌표들에 대한 변경없이는 소스 디바이스(120)에 의해 프로세싱되지 못할 수 있다.
따라서, 본 개시의 기술들은 싱크 디바이스(160)에서 수신된 사용자 입력의 좌표들을 소스 디바이스(120)와 연
관된 좌표들에 맵핑하는 것을 포함할 수 있다. 이러한 맵핑은 또한 본 명세서에서는 정규화로 지칭되고, 아래
에서 더 상세히 설명될 바와 같이, 이러한 맵핑은 싱크-기반 또는 소스-기반일 수 있다.
싱크 디바이스(160)에 의해 수신된 사용자 입력들은, 예를 들어, 드라이버 레벨에서 UI 모듈(167)에 의해 수신[0040]
될 수 있고, 싱크 디바이스(160)의 운영 시스템에 전달될 수 있다. 싱크 디바이스(160) 상의 운영 시스템은,
디스플레이 표면 상에서 사용자 입력이 발생하는 위치와 연관된 좌표들 (xSINK, ySINK)을 수신할 수 있다. 이 예
에서, (xSINK, ySINK)은, 마우스 클릭 또는 터치 이벤트가 발생하는 디스플레이(162)의 좌표들일 수 있다. 디스플
레이(162) 상에서 렌더링되는 디스플레이 윈도우는, 디스플레이 윈도우의 사이즈를 나타내는 x-좌표 길이(LDW)
및 y-좌표 폭(WDW)을 가질 수 있다. 디스플레이 윈도우는 또한, 디스플레이 윈도우의 위치를 나타내는 좌측 상
부 코너 좌표 (aDW, bDW)를 가질 수 있다. LDW, WDW 및 좌측 상부 좌표 (aDW, bDW)에 기초하여, 디스플레이 윈도우
에 의해 커버되는 디스플레이(162)의 부분이 결정될 수 있다. 예를 들어, 디스플레이 윈도우의 우측 상부 코너
는 좌표 (aDW LDW, bDW)에 위치될 수 있고, 디스플레이 윈도우의 좌측 하부 코너는 좌표 (aDW, bDW WDW)에 위치
될 수 있고, 디스플레이 윈도우의 우측 하부 코너는 좌표 (aDW LDW, bDW WDW)에 위치될 수 있다. 싱크 디바이
스(160)는, 디스플레이 윈도우 내의 좌표에서 입력이 수신되면, 입력을 UIBC 입력으로서 프로세싱할 수 있다.
즉, 연관된 좌표들 (xSINK, ySINK)을 갖는 입력은, 하기 조건들
aDW ≤ xSINK ≤ aDW LDW (1)[0041]
bDW ≤ ySINK ≤ bDW WDW (2)[0042]
이 충족되면, UIBC 입력으로서 프로세싱될 수 있다.[0043]
사용자 입력이 UIBC 입력인 것으로 결정한 후, 입력과 연관된 좌표들은 소스 디바이스(120)에 송신되기 전에[0044]
UIPM(168)에 의해 정규화될 수 있다. 디스플레이 윈도우 외부에 있는 것으로 결정된 입력들은 싱크 디바이스
(160)에 의해 넌-UIBC 입력들로서 로컬로 프로세싱될 수 있다.
앞서 언급된 바와 같이, 입력 좌표들의 정규화는 소스-기반이거나 싱크-기반일 수 있다. 싱크-기반 정규화를[0045]
구현하는 경우, 소스 디바이스(120)는, 비디오 데이터와 함께 또는 비디오 데이터와는 독립적으로, 디스플레이
(122)에 대해 지원되는 디스플레이 해상도 (LSRC, WSRC)를 싱크 디바이스(160)에 전송할 수 있다. 지원되는 디스
플레이 해상도는, 예를 들어, 능력 협상 세션의 일부로서 송신될 수 있거나, 통신 세션 동안 다른 시간에 송신
될 수 있다. 싱크 디바이스(160)는, 디스플레이(162)에 대한 디스플레이 해상도 (LSINK, WSINK), 소스 디바이스
(120)로부터 수신된 컨텐츠를 디스플레이하는 윈도우에 대한 디스플레이 윈도우 해상도 (LDW, WDW) 및 디스플레이
윈도우에 대한 좌측 상부 코너 좌표 (aDW, bDW)를 결정할 수 있다. 앞서 설명된 바와 같이, 사용자 입력에 대응
하는 좌표 (xSINK, ySINK)가 디스플레이 윈도우 내인 것으로 결정되는 경우, 싱크 디바이스(160)의 운영 시스템은
변환 함수들을 이용하여 좌표 (xSINK, ySINK)를 소스 좌표들 (xSRC, ySRC)에 맵핑할 수 있다. (xSINK, ySINK)를 (xSRC,
등록특허 10-1533753
- 13 -
ySRC)로 변환하기 위한 예시적인 변환 함수들은 다음과 같을 수 있다.
xSRC = (xSINK - aDW) * (LSRC/LDW) (3)[0046]
ySRC = (ySINK - bDW) * (WSRC/WDW) (4)[0047]
따라서, 수신된 사용자 입력에 대응하는 좌표를 송신하는 경우, 싱크 디바이스(160)는 (xSINK, ySINK)에서 수신된[0048]
사용자 입력에 대해 좌표 (xSRC, ySRC)를 송신할 수 있다. 아래에서 더 상세히 설명될 바와 같이, 좌표 (xSRC,
ySRC)는, 예를 들어, 싱크 디바이스(160)에서 수신된 사용자 입력을 UIBC를 통해 소스 디바이스(120)에 송신하기
위해 이용되는 데이터 패킷의 일부로서 송신될 수 있다. 본 개시의 다른 부분들 전반에 걸쳐, 입력 좌표들이
데이터 패킷에 포함되는 것으로 설명되는 경우, 이 좌표들은, 소스/싱크 시스템(100)이 싱크-기반 정규화를 구
현하는 예들에서 앞서 설명된 바와 같이 소스 좌표들로 변환될 수 있다.
소스/싱크 시스템(100)이 소스-기반 정규화를 구현할 때, 로컬 입력들과는 반대로 UIBC 입력들인 것으로 (즉,[0049]
디스플레이 윈도우 외부에 있는 것과는 반대로 디스플레이 윈도우 내에 있는 것으로) 결정되는 사용자 입력들의
경우, 앞선 계산들은 싱크 디바이스(160) 대신에 소스 디바이스(120)에서 수행될 수 있다. 이러한 계산들을 용
이하게 하기 위해, 싱크 디바이스(160)는 (xSINK, ySINK)에 대한 좌표들 뿐만 아니라 LDW, WDW에 대한 값들 및 디스
플레이 윈도우에 대한 위치 정보(예를 들어, aDW, bDW)를 소스 디바이스(120)에 송신할 수 있다. 이러한 송신된
값들을 이용하면, 소스 디바이스(120)는 상기 수식 3 및 4에 따라 (xSRC, ySRC)에 대한 값들을 결정할 수 있다.
싱크-기반 정규화의 다른 구현들에서, 싱크 디바이스(160)는, 디스플레이(162) 상에서 사용자 입력 이벤트가 발[0050]
생하는 위치와는 반대로, 디스플레이 윈도우 내에서 사용자 입력 이벤트가 발생하는 위치를 나타내는 사용자 입
력에 대한 좌표들 (xDW, yDW)을 송신할 수 있다. 이러한 구현에서, 좌표들 (xDW, yDW)은 (LDW, WDW)에 대한 값들과
함께 소스 디바이스(120)에 송신될 수 있다. 이러한 수신된 값들에 기초하여, 소스 디바이스(120)는 다음의 변
환 함수들에 따라 (xSRC, ySRC)를 결정할 수 있다.
xSRC = xDW * (LSRC/LDW) (5)[0051]
ySRC = yDW * (WSRC/WDW) (6)[0052]
싱크 디바이스(160)는 다음의 함수들에 기초하여 xDW 및 yDW를 결정할 수 있다.[0053]
xDW = xSINK - aDW (7)[0054]
yDW = ySINK - bDW (8)[0055]
본 개시가 사용자 입력과 연관된 좌표들을, 예를 들어, 데이터 패킷에서 송신하는 것을 설명하는 경우, 이러한[0056]
좌표들의 송신은 앞서 설명된 바와 같이 싱크-기반 또는 소스-기반 정규화를 포함할 수 있고 그리고/또는 싱크-
기반 또는 소스-기반 정규화를 수행하기 위해 필요한 임의의 추가적인 정보를 포함할 수 있다.
UIBC는 크로스-플랫폼 사용자 입력 데이터를 포함하는 다양한 타입들의 사용자 입력 데이터를 전송하도록 설계[0057]
될 수 있다. 예를 들어, 소스 디바이스(120)는 iOS® 운영 시스템을 실행할 수 있는 한편, 싱크 디바이스(16
0)는 Android® 또는 Windows®와 같은 다른 운영 시스템을 실행한다. 플랫폼과는 무관하게, UIPM(168)은 수신
된 사용자 입력을 A/V 제어 모듈(125)에 이해될 수 있는 형태로 캡슐화할 수 있다. 소스 및 싱크 디바이스들이
상이한 플랫폼들 상에서 동작하는지와 무관하게 많은 상이한 타입들의 소스 및 싱크 디바이스들이 프로토콜을
활용하도록 허용하기 위해, 다수의 상이한 타입들의 사용자 입력 포맷들은 UIBC에 의해 지원될 수 있다. 일반
적(generic) 입력 포맷들이 정의될 수 있고, 플랫폼 특정 입력 포맷들이 모두 지원될 수 있어서, 사용자 입력이
UIBC에 의해 소스 디바이스(120)와 싱크 디바이스(160) 사이에서 통신될 수 있는 방식으로 유동성을 제공한다.
도 1a의 예에서, 소스 디바이스(120)는 스마트폰, 태블릿 컴퓨터, 랩탑 컴퓨터, 데스크탑 컴퓨터, Wi-Fi 가능[0058]
텔레비젼, 또는 오디오 및 비디오 데이터를 송신할 수 있는 임의의 다른 디바이스를 포함할 수 있다. 싱크 디
바이스(160)는 유사하게, 스마트폰, 태블릿 컴퓨터, 랩탑 컴퓨터, 데스크탑 컴퓨터, Wi-Fi 가능 텔레비젼, 또는
오디오 및 비디오 데이터를 수신할 수 있고 사용자 입력 데이터를 수신할 수 있는 임의의 다른 디바이스를 포함
할 수 있다. 몇몇 예들에서, 싱크 디바이스(160)는, 별개지만 모두가 상호협력적 디바이스들의 부분들인, 디스
등록특허 10-1533753
- 14 -
플레이(162), 스피커(163), UI 디바이스(167) 및 A/V 인코더(164)와 같은 디바이스들의 시스템을 포함할 수 있
다. 유사하게, 소스 디바이스(120)는 단일 디바이스보다는 디바이스들의 시스템일 수 있다.
본 개시에서, 소스 디바이스라는 용어는 일반적으로, 오디오/비디오 데이터를 송신하고 있는 디바이스를 지칭하[0059]
도록 사용되고, 싱크 디바이스라는 용어는 일반적으로, 소스 디바이스로부터 오디오/비디오 데이터를 수신하고
있는 디바이스를 지칭하도록 사용된다. 많은 경우들에서, 소스 디바이스(120) 및 싱크 디바이스(160)는 유사하
거나 동일한 디바이스들일 수 있고, 하나의 디바이스는 소스로서 동작하고 나머지 디바이스는 싱크로서 동작한
다. 아울러, 이러한 역할들은 다른 통신 세션들에서는 반전될 수 있다. 따라서, 하나의 통신 세션에서의 싱크
디바이스는 후속 통신 세션에서 소스 디바이스가 될 수 있고, 그 반대일 수 있다.
도 1b는, 본 개시의 기술들을 구현할 수 있는 예시적인 소스/싱크 시스템(101)을 도시하는 블록도이다. 소스/[0060]
싱크 시스템(101)은 소스 디바이스(120) 및 싱크 디바이스(160)를 포함하고, 이들 각각은 도 1a에 대해 앞서 설
명된 방식으로 기능하고 동작할 수 있다. 소스/싱크 시스템(101)은 싱크 디바이스(180)를 더 포함한다. 앞서
설명된 싱크 디바이스(160)와 유사한 방식으로, 싱크 디바이스(180)는 소스 디바이스(120)로부터 오디오 및 비
디오 데이터를 수신할 수 있고, 설정된 UIBC를 통해 사용자 커맨드들을 소스 디바이스(120)에 송신할 수 있다.
몇몇 구성들에서, 싱크 디바이스(160) 및 싱크 디바이스(180)는 서로 독립적으로 동작할 수 있고, 소스 디바이
스(120)에서 출력된 오디오 및 비디오 데이터는 싱크 디바이스(160) 및 싱크 디바이스(180)에 동시에 출력될 수
있다. 대안적인 구성에서, 싱크 디바이스(160)는 1차 싱크 디바이스일 수 있고, 싱크 디바이스(180)는 2차 싱
크 디바이스일 수 있다. 이러한 예시적 구성에서, 싱크 디바이스(160) 및 싱크 디바이스(180)는 커플링될 수
있고, 싱크 디바이스(160)는 비디오 데이터를 디스플레이할 수 있는 반면, 싱크 디바이스(180)는 대응하는 오디
오 데이터를 출력한다. 추가적으로, 몇몇 구성들에서, 싱크 디바이스(160)는, 싱크 디바이스(180)가 송신된 오
디오 데이터만을 출력하는 동안에만 송신된 비디오 데이터를 출력할 수 있다.
도 2는 소스 디바이스(220)의 일례를 도시하는 블록도이다. 소스 디바이스(220)는 도 1a의 소스 디바이스(12[0061]
0)와 유사한 디바이스일 수 있고, 소스 디바이스(120)와 동일한 방식으로 동작할 수 있다. 소스 디바이스(22
0)는 로컬 디스플레이(222), 로컬 스피커(223), 프로세서들(231), 메모리(232), 전송 유닛(233) 및 무선 모뎀
(234)을 포함한다. 도 2에 도시된 바와 같이, 소스 디바이스(220)는, 전송, 저장 및 디스플레이를 위해 A/V 데
이터를 인코딩 및/또는 디코딩하는 하나 또는 그 초과의 프로세서들(즉, 프로세서(231))을 포함할 수 있다.
A/V 데이터는 예를 들어, 메모리(232)에 저장될 수 있다. 메모리(232)는 전체 A/V 파일을 저장할 수 있거나,
또는, 예를 들어, 다른 디바이스 또는 소스로부터 스트리밍되는 A/V 파일의 일부를 단순히 저장하는 더 작은 버
퍼를 포함할 수 있다. 전송 유닛(233)은 네트워크 전송을 위해 인코딩된 A/V 데이터를 프로세싱할 수 있다.
예를 들어, 인코딩된 A/V 데이터는 프로세서(231)에 의해 프로세싱될 수 있고, 네트워크를 통한 통신을 위해 전
송 유닛(233)에 의해 네트워크 액세스 계층(NAL) 유닛들로 캡슐화될 수 있다. NAL 유닛들은 무선 모뎀(234)에
의해 네트워크 접속을 통해 무선 싱크 디바이스에 전송될 수 있다. 무선 모뎀(234)은 예를 들어, IEEE 802.11
표준군 중 하나를 구현하도록 구성된 Wi-Fi 모뎀일 수 있다.
소스 디바이스(220)는 또한 A/V 데이터를 로컬로 프로세싱 및 디스플레이할 수 있다. 구체적으로, 디스플레이[0062]
프로세서(235)는 로컬 디스플레이(222) 상에 디스플레이될 비디오 데이터를 프로세싱할 수 있고, 오디오 프로세
서(236)는 스피커(223) 상에서의 출력을 위해 오디오 데이터를 프로세싱할 수 있다.
도 1a의 소스 디바이스(120)를 참조하여 앞서 설명된 바와 같이, 소스 디바이스(220)는 또한 싱크 디바이스로부[0063]
터 사용자 입력 커맨드들을 수신할 수 있다. 이 방식으로, 소스 디바이스(220)의 무선 모뎀(234)은 NAL 유닛들
과 같은 캡슐화된 데이터 패킷들을 수신하고, 캡슐화된 데이터 유닛들을 캡슐화 해제를 위해 전송 유닛(233)에
전송한다. 예를 들어, 전송 유닛(233)은 NAL 유닛들로부터 데이터 패킷들을 추출할 수 있고, 프로세서(231)는
데이터 패킷들을 파싱하여 사용자 입력 커맨드들을 추출할 수 있다. 사용자 입력 커맨드들에 기초하여, 프로세
서(231)는, 소스 디바이스(220)에 의해 싱크 디바이스에 송신되고 있는 인코딩된 A/V 데이터를 조정할 수 있다.
이 방식으로, 도 1a의 A/V 제어 모듈(125)을 참조하여 앞서 설명된 기능은 프로세서(231)에 의해 완전히 또는
부분적으로 구현될 수 있다.
도 2의 프로세서(231)는 일반적으로, 하나 또는 그 초과의 디지털 신호 프로세서들(DSP들), 범용 마이크로프로[0064]
세서들, 주문형 집적 회로들(ASIC들), 필드 프로그래머블 로직 어레이들(FPGA들), 다른 동등한 집적 또는 이산
로직 회로, 또는 이들의 몇몇 조합을 포함하는(그러나 이에 한정되는 것은 아님) 광범위한 프로세서들 중 임의
의 프로세서를 표현한다. 도 2의 메모리(232)는, 동기식 동적 랜덤 액세스 메모리(SDRAM)와 같은 랜덤 액세스
메모리(RAM), 판독 전용 메모리(ROM), 비휘발성 랜덤 액세스 메모리(NVRAM), 전기적으로 소거가능한 프로그래머
등록특허 10-1533753
- 15 -
블 판독 전용 메모리(EEPROM), FLASH 메모리 등을 포함하는(그러나 이에 한정되는 것은 아님) 광범위한 휘발성
또는 비휘발성 메모리 중 임의의 메모리를 포함할 수 있다. 메모리(232)는 오디오/비디오 데이터 뿐만 아니라
다른 종류들의 데이터를 저장하기 위한 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 메모리(232)는, 본 개시
에서 설명된 다양한 기술들을 수행하는 것의 일부로서 프로세서(231)에 의해 실행되는 명령들 및 프로그램 코드
를 추가로 저장할 수 있다.
도 3은 싱크 디바이스(360)의 일례를 도시한다. 싱크 디바이스(360)는 도 1a의 싱크 디바이스(160)와 유사한[0065]
디바이스일 수 있고, 싱크 디바이스(160)와 동일한 방식으로 동작할 수 있다. 싱크 디바이스(360)는, 하나 또
는 그 초과의 프로세서들(즉, 프로세서(331)), 메모리(332), 전송 유닛(333), 무선 모뎀(334), 디스플레이 프로
세서(335), 로컬 디스플레이(362), 오디오 프로세서(336), 스피커(363) 및 사용자 입력 인터페이스(376)를 포함
한다. 싱크 디바이스(360)는, 소스 디바이스로부터 전송된 캡슐화된 데이터 유닛들을 무선 모뎀(334)에서 수신
한다. 무선 모뎀(334)은, 예를 들어, IEEE 802.11 표준군으로부터의 하나 또는 그 초과의 표준들을 구현하도록
구성된 Wi-Fi 모뎀일 수 있다. 전송 유닛(333)은 캡슐화된 데이터 유닛들을 캡슐화 해제할 수 있다. 예를 들
어, 전송 유닛(333)은 캡슐화된 데이터 유닛들로부터 인코딩된 비디오 데이터를 추출할 수 있고, 인코딩된 A/V
데이터를, 출력을 위해 디코딩 및 렌더링되도록 프로세서(331)에 전송할 수 있다. 디스플레이 프로세서(335)는
로컬 디스플레이(362) 상에서 디스플레이될 디코딩된 비디오 데이터를 프로세싱할 수 있고, 오디오 프로세서
(336)는 스피커(363) 상에서의 출력을 위해 디코딩된 오디오 데이터를 프로세싱할 수 있다.
오디오 및 비디오 데이터를 렌더링하는 것에 부가하여, 무선 싱크 디바이스(360)는 또한 사용자 입력 인터페이[0066]
스(376)를 통해 사용자 입력 데이터를 수신할 수 있다. 사용자 입력 인터페이스(376)는, 터치 디스플레이 인터
페이스, 키보드, 마우스, 음성 커맨드 모듈, (예를 들어, 카메라-기반 입력 캡쳐 능력들을 갖는) 제스쳐 캡쳐
디바이스 또는 임의의 다른 다수의 사용자 입력 디바이스들에 포함되는(그러나 이에 한정되는 것은 아님) 다수
의 사용자 입력 디바이스들 중 임의의 디바이스를 표현할 수 있다. 사용자 입력 인터페이스(376)를 통해 수신
된 사용자 입력은 프로세서(331)에 의해 프로세싱될 수 있다. 이 프로세싱은, 본 개시에서 설명된 기술들에 따
라, 수신된 사용자 입력 커맨드를 포함하는 데이터 패킷들을 생성하는 것을 포함할 수 있다. 일단 생성되면,
전송 유닛(333)은 UIBC를 통한 무선 소스 디바이스로의 네트워크 전송을 위해 데이터 패킷들을 프로세싱할 수
있다.
도 3의 프로세서(331)는, 하나 또는 그 초과의 디지털 신호 프로세서들(DSP들), 범용 마이크로프로세서들, 주문[0067]
형 집적 회로들(ASIC들), 필드 프로그래머블 로직 어레이들(FPGA들), 다른 동등한 집적 또는 이산 로직 회로,
또는 이들의 몇몇 조합과 같은 광범위한 프로세서들 중 하나 또는 그 초과를 포함할 수 있다. 도 3의 메모리
(332)는, 동기식 동적 랜덤 액세스 메모리(SDRAM)와 같은 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 비
휘발성 랜덤 액세스 메모리(NVRAM), 전기적으로 소거가능한 프로그래머블 판독 전용 메모리(EEPROM), FLASH 메
모리 등을 포함하는(그러나 이에 한정되는 것은 아님) 광범위한 휘발성 또는 비휘발성 메모리 중 임의의 메모리
를 포함할 수 있다. 메모리(232)는 오디오/비디오 데이터 뿐만 아니라 다른 종류들의 데이터를 저장하기 위한
컴퓨터 판독가능 저장 매체를 포함할 수 있다. 메모리(332)는, 본 개시에서 설명된 다양한 기술들을 수행하는
것의 일부로서 프로세서(331)에 의해 실행되는 명령들 및 프로그램 코드를 추가로 저장할 수 있다.
도 4는 예시적인 송신기 시스템(410) 및 수신기 시스템(450)의 블록도를 도시하고, 이들은 통신 채널(150)을 통[0068]
한 통신을 위해 도 1a의 송신기/수신기(126) 및 송신기/수신기(166)에 의해 이용될 수 있다. 송신기 시스템
(410)에서, 다수의 데이터 스트림들에 대한 트래픽 데이터는 데이터 소스(412)로부터 송신(TX) 데이터 프로세서
(414)에 제공된다. 각각의 데이터 스트림은 각각의 송신 안테나를 통해 송신될 수 있다. TX 데이터 프로세서
(414)는, 각각의 데이터 스트림에 대해 선택된 특정한 코딩 방식에 기초하여, 각각의 데이터 스트림에 대한 트
래픽 데이터를 포맷, 코딩 및 인터리빙한다.
각각의 데이터 스트림에 대한 코딩된 데이터는 직교 주파수 분할 멀티플렉싱(OFDM) 기술들을 이용하여 파일럿[0069]
데이터와 멀티플렉싱될 수 있다. 시분할 다중 액세스(TDMA), 주파수 분할 다중 액세스(FDMA), 코드 분할 다중
액세스(CDMA) 또는 OFDM, FDMA, TDMA 및/또는 CDMA의 임의의 조합을 포함하는(그러나 이에 한정되는 것은 아님)
광범위한 다른 무선 통신 기술들이 또한 이용될 수 있다.
도 4와 일치하여, 파일럿 데이터는 통상적으로 기지의(known) 방식으로 프로세싱되는 기지의 데이터 패턴이고,[0070]
채널 응답을 추정하기 위해 수신기 시스템에서 이용될 수 있다. 그 다음, 변조 심볼들을 제공하도록 각각의 데
이터 스트림에 대해 선택된 특정한 변조 방식(예를 들어, 이진 위상 시프트 키잉(BPSK), 직교 위상 시프트 키잉
(QPSK), M-PSK, 또는 M-QAM(직교 진폭 변조), 여기서 M은 2의 거듭제곱일 수 있음)에 기초하여, 각각의 데이터
등록특허 10-1533753
- 16 -
스트림에 대해 멀티플렉싱된 파일럿 및 코딩된 데이터가 변조(예를 들어, 심볼 맵핑)된다. 각각의 데이터 스트
림에 대한 데이터 레이트, 코딩 및 변조는, 메모리(432)와 커플링될 수 있는 프로세서(430)에 의해 수행되는 명
령들에 의해 결정될 수 있다.
그 다음, 데이터 스트림들에 대한 변조 심볼들이 TX MIMO 프로세서(420)에 제공되며, TX MIMO 프로세서(420)는[0071]
(예를 들어, OFDM을 위해) 변조 심볼들을 추가로 프로세싱할 수 있다. 그 다음, TX MIMO 프로세서(420)는 NT개
의 변조 심볼 스트림들을 NT개의 송신기들(TMTR)(422a 내지 422t)에 제공할 수 있다. 특정 양상들에서, TX
MIMO 프로세서(420)는 데이터 스트림들의 심볼들, 및 그 심볼들이 송신되고 있는 안테나에 빔형성 가중치들을
적용한다.
각각의 송신기(422)는 각각의 심볼 스트림을 수신 및 프로세싱하여 하나 또는 그 초과의 아날로그 신호들을 제[0072]
공하고, 아날로그 신호들을 추가로 컨디셔닝(예를 들어, 증폭, 필터링, 및 상향변환)하여 MIMO 채널을 통한 송
신에 적합한 변조된 신호를 제공할 수 있다. 그 다음, 송신기들(422a 내지 422t)로부터 NT개의 변조된 신호들
은 NT개의 안테나들(424a 내지 424t)로부터 각각 송신된다.
수신기 시스템(450)에서, 송신된 변조 신호들은 NR개의 안테나들(452a 내지 452r)에 의해 수신되고, 각각의 안[0073]
테나(452)로부터 수신된 신호는 각각의 수신기(RCVR)(454a 내지 454r)로 제공된다. 수신기(454)는 각각의 수신
신호를 컨디셔닝(예를 들어, 필터링, 증폭 및 하향변환)하고, 컨디셔닝된 신호를 디지털화하여 샘플들을 제공하
고, 상기 샘플들을 추가로 프로세싱하여 대응하는 "수신된" 심볼 스트림을 제공한다.
그 다음, 수신(RX) 데이터 프로세서(460)는 특정 수신기 프로세싱 기술에 기초하여 NR개의 수신기들(454)로부터[0074]
NR개의 수신된 심볼 스트림들을 수신 및 프로세싱하여 NT개의 "검출된" 심볼 스트림들을 제공한다. 그 다음, RX
데이터 프로세서(460)는 각각의 검출된 심볼 스트림을 복조, 디인터리빙(deinterleaving) 및 디코딩하여 데이터
스트림에 대한 트래픽 데이터를 복원한다. RX 데이터 프로세서(460)에 의한 프로세싱은 송신기 시스템(410)에
서 TX MIMO 프로세서(420) 및 TX 데이터 프로세서(414)에 의해 수행되는 프로세싱과 상보적이다.
메모리(472)와 커플링될 수 있는 프로세서(470)는 어떤 프리코딩 행렬을 이용할지를 주기적으로 결정한다. 역[0075]
방향 링크 메시지는 통신 링크 및/또는 수신된 데이터 스트림에 대한 다양한 타입들의 정보를 포함할 수 있다.
그 다음, 역방향 링크 메시지는, 데이터 소스(436)로부터의 다수의 데이터 스트림들에 대한 트래픽 데이터를 또
한 수신하는 TX 데이터 프로세서(438)에 의해 프로세싱되고, 변조기(480)에 의해 변조되고, 송신기들(454a 내지
454r)에 의해 컨디셔닝되어, 다시 송신기 시스템(410)으로 송신된다.
송신기 시스템(410)에서, 수신기 시스템(450)에 의해 송신된 역방향 링크 메시지를 추출하기 위해, 수신기 시스[0076]
템(450)으로부터의 변조 신호들이 안테나들(424)에 의해 수신되고, 수신기들(422)에 의해 컨디셔닝되고, 복조기
(440)에 의해 복조되고, 그리고 RX 데이터 프로세서(442)에 의해 프로세싱된다. 그 다음, 프로세서(430)는 빔
형성 가중치들을 결정하기 위하여 어떤 프리코딩 행렬을 이용할 지를 결정하고, 그 다음, 추출된 메시지를 프로
세싱한다.
도 5a는 능력 협상 세션의 일부로서 소스 디바이스(520)와 싱크 디바이스(560) 사이의 예시적인 메시지 전송 시[0077]
퀀스를 도시하는 블록도이다. 능력 협상은 소스 디바이스(520)와 싱크 디바이스(560) 사이의 더 큰 통신 세션
설정 프로세스의 일부로서 발생할 수 있다. 이 세션은, 예를 들어, 기본적인 접속 표준으로서 Wi-Fi Direct 또
는 TDLS와 설정될 수 있다. Wi-Fi Direct 또는 TDLS 세션을 설정한 후, 싱크 디바이스(560)는 소스 디바이스
(520)와 TCP 접속을 개시할 수 있다. TCP 접속을 설정하는 것의 일부로서, 실시간 스트리밍 프로토콜(RTSP)을
실행하는 제어 포트가 설정되어, 소스 디바이스(520)와 싱크 디바이스(560) 사이의 통신 세션을 관리할 수
있다.
소스 디바이스(520)는 일반적으로 도 1a의 소스 디바이스(120)에 대해 앞서 설명된 것과 동일한 방식으로 동작[0078]
할 수 있고, 싱크 디바이스(560)는 일반적으로 도 1a의 싱크 디바이스(160)에 대해 앞서 설명된 것과 동일한 방
식으로 동작할 수 있다. 소스 디바이스(520) 및 싱크 디바이스(560)가 접속을 설정한 후, 소스 디바이스(520)
및 싱크 디바이스(560)는 능력 협상 교환의 일부로서 이들의 후속 통신 세션에 대해 이용될 파라미터들의 세트
를 결정할 수 있다.
소스 디바이스(520) 및 싱크 디바이스(560)는 메시지들의 시퀀스를 통해 능력들을 협상할 수 있다.[0079]
메시지들은, 예를 들어, 실시간 스트리밍 프로토콜(RTSP) 메시지들일 수 있다. 협상들의 임의의 스테이지에서,
등록특허 10-1533753
- 17 -
RTSP 요청 메시지의 수신자는, RTSP OK와는 상이한 RTSP 상태 코드를 포함하는 RTSP 응답으로 응답할 수 있고,
이 경우, 메시지 교환은 파라미터들의 상이한 세트로 재시도될 수 있거나, 능력 협상 세션은 종료될 수 있다.
소스 디바이스(520)는, 싱크 디바이스(560)가 지원하는 RTSP 방법들의 세트를 결정하기 위해, 제 1 메시지(RTSP[0080]
OPTIONS 요청 메시지)를 싱크 디바이스(560)에 전송할 수 있다. 소스 디바이스(520)로부터 제 1 메시지의 수신
시에, 싱크 디바이스(560)는, 싱크(560)에 의해 지원되는 RTSP 방법들을 리스팅하는 제 2 메시지(RTSP OPTIONS
응답 메시지)로 응답할 수 있다. 제 2 메시지는 또한 RTSP OK 상태 코드를 포함할 수 있다.
제 2 메시지를 소스 디바이스(520)에 전송한 후, 싱크 디바이스(560)는, 소스 디바이스(520)가 지원하는 RTSP[0081]
방법들의 세트를 결정하기 위해, 제 3 메시지(RTSP OPTIONS 요청 메시지)를 전송할 수 있다. 싱크 디바이스
(560)로부터 제 3 메시지의 수신 시에, 소스 디바이스(520)는, 소스 디바이스(520)에 의해 지원되는 RTSP 방법
들을 리스팅하는 제 4 메시지(RTSP OPTIONS 응답 메시지)로 응답할 수 있다. 제 4 메시지는 또한 RTSP OK 상태
코드를 포함할 수 있다.
제 4 메시지를 전송한 후, 소스 디바이스(520)는 소스 디바이스(520)와 관련된 능력들의 리스트를 특정하기 위[0082]
해, 제 5 메시지(RTSP GET_PARAMETER 요청 메시지)를 전송할 수 있다. 싱크 디바이스(560)는 제 6 메시지
(RTSP GET_PARAMETER 응답 메시지)로 응답할 수 있다. 제 6 메시지는 RTSP 상태 코드를 포함할 수 있다.
RTSP 상태 코드가 OK이면, 제 6 메시지는 또한, 싱크 디바이스(560)에 의해 지원되는 제 5 메시지에서 특정된
파라미터에 대한 응답 파라미터들을 포함할 수 있다. 싱크 디바이스(560)는, 싱크 디바이스(560)가 지원하지
않는 제 5 메시지의 파라미터들을 무시할 수 있다.
제 6 메시지에 기초하여, 소스(520)는 통신 세션에 대해 이용될 파라미터들의 최적의 세트를 결정할 수 있고,[0083]
제 7 메시지(RTSP SET_PARAMETER 요청 메시지)를 싱크 디바이스(560)에 전송할 수 있다. 제 7 메시지는 소스
디바이스(520)와 싱크 디바이스(560) 사이의 통신 세션 동안 이용될 파라미터 세트를 포함할 수 있다. 제 7 메
시지는, 통신 세션을 셋업하기 위해 RTSP 셋업 요청에서 이용될 유니버셜 자원 식별자(URI)를 나타내는 wfd-
presentation-url을 포함할 수 있다. wfd-presentation-url은, 세션 설정 교환 동안 나중의 메시지들에 대해
싱크 디바이스(560)가 이용할 수 있는 URI를 특정한다. 이 파라미터에서 특정된 wfd-url0 및 wfd-url1 값들은
제 7 메시지의 wfd-client-rtp-ports의 rtp-port0 및 rtp-port1의 값들에 대응할 수 있다. 이 예에서 RTP는
일반적으로, UDP의 최상위에서 실행될 수 있는 실시간 프로토콜을 지칭한다.
제 7 메시지의 수신 시에, 싱크 디바이스(560)는, 제 7 메시지에서 특정된 바와 같이 파라미터들을 설정하는 것[0084]
이 성공적이었는지 여부를 나타내는 RTSP 상태 코드를 갖는 제 8 메시지로 응답할 수 있다. 앞서 언급된 바와
같이, 소스 디바이스와 싱크 디바이스의 역할들은 상이한 세션들에서 반전될 수 있거나 변할 수 있다. 몇몇 경
우들에서, 통신 세션을 셋업하는 메시지들의 순서는, 소스로서 동작하는 디바이스를 정의하고 싱크로서 동작하
는 디바이스를 정의할 수 있다.
도 5b는 능력 협상 세션의 일부로서 소스 디바이스(560)와 싱크 디바이스(520) 사이의 다른 예시적인 메시지 전[0085]
송 시퀀스를 도시하는 블록도이다. 도 5b의 메시지 전송 시퀀스는 도 5a에 대해 앞서 설명된 전송 시퀀스에 대
한 보다 상세한 뷰(view)를 제공하도록 의도된다. 도 5b에서, 메시지 "1b. GET_PARAMETER RESPONSE"는, 지원
되는 입력 카테고리들(예를 들어, 일반적 및 HIDC)의 리스트 및 지원되는 입력 타입들의 복수의 리스트들을 식
별하는 메시지의 일례를 나타낸다. 지원되는 입력 카테고리들의 리스트의 지원되는 입력 카테고리들 각각은 지
원되는 타입들의 연관된 리스트(예를 들어, generic_cap_list 및 hidc_cap_list)를 갖는다. 도 5b에서, 메시
지 "2a. SET_PARAMETER REQUEST"는, 지원되는 입력 카테고리들(예를 들어, 일반적 및 HIDC)의 제 2 리스트 및
지원되는 타입들의 복수의 제 2 리스트들을 식별하는 제 2 메시지의 일례이다. 지원되는 입력 카테고리들의 제
2 리스트의 지원되는 입력 카테고리들 각각은 지원되는 타입들의 연관된 제 2 리스트(예를 들어,
generic_cap_list 및 hidc_cap_list)를 갖는다. 메시지 "1b. GET_PARAMETER RESPONSE"는 싱크 디바이스(560)
에 의해 지원되는 입력 카테고리들 및 입력 타입들을 식별한다. 메시지 "2a. SET_PARAMETER REQUEST"는 소스
디바이스(520)에 의해 지원되는 입력 카테고리들 및 입력 타입들을 식별하지만, 소스 디바이스(520)에 의해 지
원되는 모든 입력 카테고리들 및 입력 타입들의 포괄적인 리스트가 아닐 수 있다. 대신에, 메시지 "2a.
SET_PARAMETER REQUEST"는, 싱크 디바이스(560)에 의해 지원되고 있는 것과 같은 메시지 "1b. GET_PARAMETER
RESPONSE"에서 식별되는 이러한 입력 카테고리들 및 입력 타입들만을 식별할 수 있다. 이러한 방식으로, 메시
지 "2a. SET_PARAMETER REQUEST"에서 식별되는 입력 카테고리들 및 입력 타입들은 메시지 "1b. GET_PARAMETER
RESPONSE"에서 식별된 입력 카테고리들 및 입력 타입들의 서브세트를 구성할 수 있다.
도 6은, 싱크 디바이스에 의해 생성되어 소스 디바이스에 송신될 수 있는 데이터 패킷의 일례를 도시하는 개념[0086]
등록특허 10-1533753
- 18 -
도이다. 데이터 패킷(600)의 양상들은 도 1a를 참조하여 설명될 것이지만, 논의되는 기술들은 추가적인 타입들
의 소스/싱크 시스템들에 적용가능할 수 있다. 데이터 패킷(600)은 데이터 패킷 헤더(610) 및 그에 후속하는
페이로드 데이터(650)를 포함할 수 있다. 페이로드 데이터(650)는 추가적으로 하나 또는 그 초과의 페이로드
헤더들(예를 들어, 페이로드 헤더(630))을 포함할 수 있다. 데이터 패킷(600)은, 예를 들어, 소스 디바이스
(120)에 의해 송신되고 있는 오디오/비디오 데이터를 싱크 디바이스(160)의 사용자가 제어할 수 있도록, 도 1a
의 싱크 디바이스(160)로부터 소스 디바이스(120)에 송신될 수 있다. 이러한 예에서, 페이로드 데이터(650)는
싱크 디바이스(160)에서 수신되는 사용자 입력 데이터를 포함할 수 있다. 페이로드 데이터(650)는, 예를 들어,
하나 또는 그 초과의 사용자 커맨드들을 식별할 수 있다. 싱크 디바이스(160)는 하나 또는 그 초과의 사용자
커맨드들을 수신할 수 있고, 수신된 커맨드들에 기초하여, 데이터 패킷 헤더(610) 및 페이로드 데이터(650)를
생성할 수 있다. 데이터 패킷(600)의 데이터 패킷 헤더(610)의 컨텐츠에 기초하여, 소스 디바이스(120)는 페이
로드 데이터(650)를 파싱하여 싱크 디바이스(160)에서 수신되는 사용자 입력 데이터를 식별할 수 있다. 페이로
드 데이터(650)에 포함된 사용자 입력 데이터에 기초하여, 소스 디바이스(120)는, 소스 디바이스(120)로부터 싱
크 디바이스(160)에 송신되고 있는 오디오 및 비디오 데이터를 몇몇 방식으로 변경시킬 수 있다.
본 명세서에서 사용되는 바와 같이, 용어들 "파싱하다" 및 "파싱"은 일반적으로 비트스트림으로부터 데이터를[0087]
추출하기 위해 비트스트림을 분석하는 프로세스를 지칭한다. 일단 추출되면, 데이터는 예를 들어, 소스 디바이
스(120)에 의해 프로세싱될 수 있다. 예를 들어, 데이터를 추출하는 것은, 비트스트림 내의 정보가 어떻게 포
맷되어 있는지를 식별하는 것을 포함할 수 있다. 아래에서 더 상세히 설명될 바와 같이, 데이터 패킷 헤더
(610)는, 소스 디바이스(120) 및 싱크 디바이스(160) 둘 모두에 알려진 표준화된 포맷을 정의할 수 있다. 그러
나, 페이로드 데이터(650)는 많은 가능한 방식들 중 하나의 방식으로 포맷될 수 있다. 데이터 패킷 헤더(610)
를 파싱함으로써, 소스 디바이스(120)는 페이로드 데이터(650)가 어떻게 포맷되어 있는지를 결정할 수 있고, 따
라서, 소스 디바이스(120)는 페이로드 데이터(650)를 파싱하여, 페이로드 데이터(650)로부터 하나 또는 그 초과
의 사용자 입력 커맨드들을 추출할 수 있다. 이것은, 소스-싱크 통신에서 지원될 수 있는 상이한 타입들의 페
이로드 데이터의 관점에서 유연성을 제공할 수 있다. 아래에서 더 상세히 설명될 바와 같이, 페이로드 데이터
(650)는 또한 페이로드 헤더(630)와 같은 하나 또는 그 초과의 페이로드 헤더들을 포함할 수 있다. 이러한 예
들에서, 소스 디바이스(120)는 데이터 패킷 헤더(610)를 파싱하여 페이로드 헤더(630)에 대한 포맷을 결정할 수
있고, 그 다음, 페이로드 헤더(630)를 파싱하여 페이로드 데이터(650)의 나머지에 대한 포맷을 결정할 수 있다.
데이터그램(620)은 데이터 패킷 헤더(610)가 어떻게 포맷될 수 있는지에 대한 개념적 도시이다. 행(615)의 번[0088]
호들 0-15는 데이터 패킷 헤더(610) 내의 비트 위치들을 식별하도록 의도되고, 데이터 패킷 헤더(610) 내에 포
함된 정보를 실제로 표현하도록 의도되지는 않는다. 데이터 패킷 헤더(610)는, 버전 필드(621), 타임스탬프 플
래그(622), 예비된 필드(623), 입력 카테고리 필드(624), 길이 필드(625) 및 선택적인 타임스탬프 필드(626)를
포함한다.
도 6의 예에서, 버전 필드(621)는, 싱크 디바이스(160)에 의해 구현되고 있는 특정한 통신 프로토콜의 버전을[0089]
나타낼 수 있는 3-비트 필드이다. 버전 필드(621)의 값은, 데이터 패킷 헤더(610)의 나머지를 어떻게 파싱할지
뿐만 아니라 페이로드 데이터(650)를 어떻게 파싱할지를 소스 디바이스(120)에 통지할 수 있다. 도 6의
예에서, 버전 필드(621)는, 8개의 상이한 버전들에 대한 고유한 식별자를 가능하게 할 3-비트 필드이다. 다른
예들에서, 버전 필드(621)에 대해 더 많거나 더 적은 비트들이 전용될 수 있다.
도 6의 예에서, 타임스탬프 플래그(T)(622)는, 타임스탬프 필드(626)가 데이터 패킷 헤더(610)에 존재하는지 아[0090]
닌지를 나타내는 1-비트 필드이다. 타임스탬프 필드(626)는, 소스 디바이스(120)에 의해 생성되어 싱크 디바이
스(160)에 송신된 멀티미디어 데이터에 기초한 타임스탬프를 포함하는 16-비트 필드이다. 타임스탬프는, 예를
들어, 프레임들이 싱크 디바이스(160)에 송신되기 전에 소스 디바이스(120)에 의해 비디오의 프레임들에 할당되
는 순차적인 값일 수 있다. 타임스탬프 플래그(622)는, 예를 들어, 타임스탬프 필드(626)가 존재하는 것을 나
타내기 위해 "1"을 포함할 수 있고, 타임스탬프 필드(626)가 존재하지 않는 것을 나타내기 위해 "0"을 포함할
수 있다. 데이터 패킷 헤더(610)의 파싱 및 타임스탬프 필드(626)가 존재한다는 결정 시에, 소스 디바이스
(120)는 타임스탬프 필드(626)에 포함된 타임스탬프를 프로세싱할 수 있다. 데이터 패킷 헤더(610)의 파싱 및
타임스탬프 필드(626)가 존재하지 않는다는 결정 시에, 소스 디바이스(120)는, 어떠한 타임스탬프 필드도 데이
터 패킷 헤더(610)에 존재하지 않기 때문에, 길이 필드(625)를 파싱한 후 페이로드 데이터(650)의 파싱을 시작
할 수 있다.
존재하면, 타임스탬프 필드(626)는, 페이로드 데이터(650)의 사용자 입력 데이터가 획득되었을 때 무선 싱크 디[0091]
바이스(160)에서 디스플레이되고 있는 비디오 데이터의 프레임을 식별하기 위해 타임스탬프를 포함할 수 있다.
등록특허 10-1533753
- 19 -
타임스탬프는, 예를 들어, 소스 디바이스(120)가 비디오의 프레임을 싱크 디바이스(160)에 송신하기 전에, 소스
디바이스(120)에 의해 비디오의 프레임에 추가되었을 수 있다. 따라서, 소스 디바이스(120)는 비디오의 프레임
을 생성할 수 있고, 예를 들어, 타임스탬프와 같은 메타데이터로서 프레임의 비디오 데이터에 임베딩할 수
있다. 소스 디바이스(120)는 타임스탬프를 갖는 비디오 프레임을 싱크 디바이스(160)에 송신할 수 있고, 싱크
디바이스(160)는 비디오의 프레임을 디스플레이할 수 있다. 비디오의 프레임이 싱크 디바이스(160)에 의해 디
스플레이되고 있는 동안, 싱크 디바이스(160)는 사용자로부터 사용자 커맨드를 수신할 수 있다. 싱크 디바이스
(160)가 소스 디바이스(120)에 사용자 커맨드를 전송하기 위해 데이터 패킷을 생성하는 경우, 싱크 디바이스
(160)는, 사용자 커맨드가 수신되었을 때 싱크 디바이스(160)에 의해 디스플레이되고 있는 프레임의 타임스탬프
를 타임스탬프 필드(626)에 포함시킬 수 있다.
헤더에 존재하는 타임스탬프 필드(626)를 갖는 데이터 패킷(600)의 수신 시에, 무선 소스 디바이스(120)는, 페[0092]
이로드 데이터(650)의 사용자 입력 데이터가 획득되었던 시간에 싱크 디바이스(160)에서 디스플레이되고 있는
비디오의 프레임을 식별할 수 있고, 타임스탬프에 의해 식별된 프레임의 컨텐츠에 기초하여 사용자 입력 데이터
를 프로세싱할 수 있다. 예를 들어, 사용자 입력 데이터가 터치 디스플레에 인가된 터치 커맨드 또는 마우스
포인터의 클릭이면, 소스 디바이스(120)는, 사용자가 터치 커맨드를 디스플레이에 인가하거나 마우스를 클릭한
시간에 디스플레이되고 있는 프레임의 컨텐츠를 결정할 수 있다. 몇몇 예들에서, 페이로드 데이터를 적절히 프
로세싱하기 위해 프레임의 컨텐츠가 요구될 수 있다. 예를 들어, 사용자 터치 또는 마우스 클릭에 기초한 사용
자 입력은, 터치 또는 클릭의 시간에 디스플레이 상에 나타나고 있는 것에 의존할 수 있다. 터치 또는 클릭은,
예를 들어, 아이콘 또는 메뉴 옵션에 대응할 수 있다. 디스플레이의 컨텐츠가 변하고 있는 예들에서, 타임스탬
프 필드(626)에 존재하는 타임스탬프는, 터치 또는 클릭을 정확한 아이콘 또는 메뉴 옵션에 매칭하기 위해, 소
스 디바이스(120)에 의해 이용될 수 있다.
소스 디바이스(120)는 추가적으로 또는 대안적으로, 타임스탬프 필드(626)의 타임스탬프를 비디오의 현재 렌더[0093]
링되는 프레임에 적용되고 있는 타임스탬프와 비교할 수 있다. 타임스탬프 필드(626)의 타임스탬프를 현재 타
임스탬프와 비교함으로써, 소스 디바이스(120)는 라운드 트립(round trip) 시간을 결정할 수 있다. 라운드 트
립 시간은 일반적으로, 프레임이 소스 디바이스(120)에 의해 송신된 시점으로부터, 그 프레임에 기초한 사용자
입력이 싱크 디바이스(160)로부터 소스 디바이스(120)에서 다시 수신되는 시점까지 경과되는 시간량에
대응한다. 라운드 트립 시간은 시스템 레이턴시의 표시를 소스 디바이스(120)에 제공할 수 있고, 라운드 트립
시간이 임계값보다 더 크면, 소스 디바이스(120)는, 입력 커맨드가 오래된(outdated) 디스플레이 프레임에 인가
되었다는 가정하에, 페이로드 데이터(650)에 포함된 사용자 입력 데이터를 무시할 수 있다. 라운드 트립 시간
이 임계값 미만인 경우, 소스 디바이스(120)는 사용자 입력 데이터를 프로세싱할 수 있고, 사용자 입력 데이터
에 응답하여 송신되고 있는 오디오/비디오 컨텐츠를 조정할 수 있다. 임계값들은 프로그램가능할 수 있고, 허
용가능한 라운드 트립 시간들에 대한 상이한 임계값들을 정의하기 위해 상이한 타입들의 디바이스들(또는 상이
한 소스-싱크 조합들)이 구성될 수 있다.
도 6의 예에서, 예비 필드(623)는, 데이터 패킷 헤더(610) 및 페이로드 데이터(650)의 파싱 시에 소스(120)에[0094]
의해 이용되는 정보를 포함하지 않는 8-비트 필드이다. 그러나, (버전 필드(621)에서 식별되는 바와 같은) 특
정한 프로토콜의 장래의 버전들은 예비 필드(623)를 이용할 수 있고, 이 경우 소스 디바이스(120)는 데이터 패
킷 헤더(610)를 파싱하기 위해 그리고/또는 페이로드 데이터(650)를 파싱하기 위해 예비 필드(623)의 정보를 이
용할 수 있다. 버전 필드(621)와 함께 예비 필드(623)는 잠재적으로, 이미 이용중인 포맷 및 특징들을 근본적
으로 변경함이 없이 데이터 패킷 포맷에 특징들을 추가 및 확장하기 위한 능력들을 제공한다.
도 6의 예에서, 입력 카테고리 필드(624)는 페이로드 데이터(650)에 포함된 사용자 입력 데이터에 대한 입력 카[0095]
테고리를 식별하기 위한 4-비트 필드이다. 싱크 디바이스(160)는 입력 카테고리를 결정하기 위해 사용자 입력
데이터를 카테고리화할 수 있다. 사용자 입력 데이터를 카테고리화하는 것은, 예를 들어, 커맨드를 송신한 디
바이스에 기초할 수 있거나 또는 커맨드 자체의 특성들에 기초할 수 있다. 입력 카테고리 필드(624)의 값은 가
능하게는 데이터 패킷 헤더(610)의 다른 정보와 결합되어, 페이로드 데이터(650)가 어떻게 포맷되어 있는지를
소스 디바이스(120)에 식별시킬 수 있다. 이 포맷팅에 기초하여, 소스 디바이스(120)는, 싱크 디바이스(160)에
서 수신된 사용자 입력을 결정하기 위해 페이로드 데이터(650)를 파싱할 수 있다.
도 6의 예에서 입력 카테고리(624)는 4 비트이기 때문에, 가능하게는 16개의 상이한 입력 카테고리들이 식별될[0096]
수 있다. 하나의 이러한 입력 카테고리는, 소스 디바이스(120) 및 싱크 디바이스(160) 둘 모두에 의해 실행되
고 있는 프로토콜에서 정의된 일반적 정보 엘리먼트들을 이용하여 페이로드 데이터(650)의 사용자 입력 데이터
가 포맷된 것을 나타내기 위한 일반적 입력 포맷일 수 있다. 아래에서 더 상세히 설명될 바와 같이, 일반적 입
등록특허 10-1533753
- 20 -
력 포맷은, 싱크 디바이스(160)의 사용자가 애플리케이션 레벨에서 소스 디바이스(120)와 상호작용하도록 허용
하는 일반적 정보 엘리먼트들을 활용할 수 있다.
다른 이러한 입력 카테고리는, 입력 데이터를 수신하기 위해 이용되는 입력 디바이스의 타입의 기초하여 페이로[0097]
드 데이터(650)의 사용자 입력 데이터가 포맷된 것을 나타내기 위한 휴먼 인터페이스 디바이스 커맨드(HIDC) 포
맷일 수 있다. 디바이스들의 타입들의 예들은, 키보드, 마우스, 터치 입력 디바이스, 조이스틱, 카메라, (카메
라-기반 입력 디바이스와 같은) 제스쳐 캡쳐 디바이스 및 리모트 콘트롤을 포함한다. 입력 카테고리 필드(62
4)에서 식별될 수 있는 다른 타입들의 입력 카테고리들은, 페이로드 데이터(650)의 사용자 데이터가 싱크 디바
이스(160)에서 발신하지 않았음을 나타내는 포워딩 입력 포맷, 또는 운영 시스템 특정 포맷, 및 페이로드 데이
터(650)가 음성 커맨드를 포함함을 나타내는 음성 커맨드 포맷을 포함한다.
길이 필드(625)는, 데이터 패킷(600)의 길이를 나타내는 16 비트 필드를 포함할 수 있다. 길이는, 예를 들어,[0098]
8 비트 단위들로 표시될 수 있다. 데이터 패킷(600)이 소스 디바이스(120)에 의해 16 비트 워드들로 파싱되기
때문에, 데이터 패킷(600)은 16 비트의 정수까지 패딩될 수 있다. 길이 필드(625)에 포함된 길이에 기초하여,
소스 디바이스(120)는 페이로드 데이터(650)의 종료(즉, 데이터 패킷(600)의 종료), 및 새로운 후속하는 데이터
패킷의 시작을 식별할 수 있다.
도 6의 예에서 제공되는 필드들의 다양한 사이즈들은 단지 예시적인 것으로 의도되고, 필드들은 도 6에 도시된[0099]
것과는 다른 수의 비트들을 이용하여 구현될 수 있는 것으로 의도된다. 추가적으로, 데이터 패킷 헤더(610)는
앞서 논의된 필드들 전부보다 적은 수의 필드를 포함할 수 있거나, 앞서 논의되지 않은 추가적인 필드들을 이용
할 수 있는 것으로 또한 고려된다. 실제로, 본 개시의 기술들은, 패킷들의 다양한 데이터 필드들에 이용되는
실제 포맷의 관점에서 유동적일 수 있다.
페이로드 데이터(650)의 포맷팅을 결정하기 위해 데이터 패킷 헤더(610)를 파싱한 후, 소스 디바이스(120)는 페[0100]
이로드 데이터(650)에 포함된 사용자 입력 커맨드를 결정하기 위해 페이로드 데이터(650)를 파싱할 수 있다.
페이로드 데이터(650)는, 페이로드 데이터(650)의 컨텐츠들을 나타내는 자기 자신의 페이로드 헤더(페이로드 헤
더(630))를 가질 수 있다. 이러한 방식으로, 소스 디바이스(120)는 데이터 패킷 헤더(610)의 파싱에 기초하여
페이로드 헤더(630)를 파싱할 수 있고, 그 다음, 페이로드 헤더(630)의 파싱에 기초하여 나머지 페이로드 데이
터(650)를 파싱할 수 있다.
예를 들어, 데이터 패킷 헤더(610)의 입력 카테고리 필드(624)가 페이로드 데이터(650)에 일반적 입력이 존재함[0101]
을 나타내면, 페이로드 데이터(650)는 일반적 입력 포맷을 가질 수 있다. 따라서, 소스 디바이스(120)는 일반
적 입력 포맷에 따라 페이로드 데이터(650)를 파싱할 수 있다. 일반적 입력 포맷의 일부로서, 페이로드 데이터
(650)는 일련의 하나 또는 그 초과의 입력 이벤트들을 포함할 수 있고, 각각의 입력 이벤트는 자기 자신의 입력
이벤트 헤더를 갖는다. 아래의 표 1은 입력 헤더에 포함될 수 있는 필드들을 식별한다.
표 1
필드[0102] 사이즈(옥테트) 값
일반적 IE ID 1 표 2 참조
길이 2 옥테트들에서 다음 필드들의 길이
설명 가변적 사용자 입력들의 세부사항들. 표들 참조
일반적 입력 이벤트(IE) 식별(ID) 필드는, 입력 타입을 식별하기 위한 일반적 입력 이벤트 식별을 식별한다.[0103]
일반적 IE ID 필드는, 예를 들어 길이에서 1 옥테트일 수 있고, 아래의 표 2로부터 선택되는 식별을 포함할 수
있다. 이 예에서와 같이, 일반적 IE ID 필드가 8 비트이면, (0-255로 식별되는) 256개의 상이한 타입들의 입력
들이 식별가능할 수 있지만, 256개의 식별들 전부가 연관된 입력 타입을 반드시 요구하는 것은 아니다. 256개
중 일부는, 싱크 디바이스(160) 및 소스 디바이스(120)에 의해 어떠한 프로토콜이 구현되고 있든지 간에 그 프
로토콜의 장래의 버전들에 의한 장래의 이용을 위해 예비될 수 있다. 표 2에서, 예를 들어, 일반적인 IE ID들
(9-255)은 연관된 입력 타입들을 갖지 않지만, 장래에 입력 타입들을 할당받을 수 있다.
입력 이벤트 헤더의 길이 필드는 설명 필드의 길이를 식별하는 한편, 설명 필드는 사용자 입력을 설명하는 정보[0104]
엘리먼트들을 포함한다. 설명 필드의 포맷팅은 일반적 IE ID 필드의 입력 식별들의 타입에 의존할 수 있다.
따라서, 소스 디바이스(120)는 일반적 IE ID 필드에서 식별된 입력 타입에 기초하여 설명 필드의 컨텐츠들을 파
싱할 수 있다. 입력 이벤트 헤더의 길이 필드에 기초하여, 소스 디바이스(120)는 페이로드 데이터(650)의 하나
등록특허 10-1533753
- 21 -
의 입력 이벤트의 종료 및 새로운 입력 이벤트의 시작을 결정할 수 있다. 아래에서 더 상세히 설명될 바와 같
이, 하나의 사용자 커맨드는 하나 또는 그 초과의 입력 이벤트들로서 페이로드 데이터(650)에서 설명될 수
있다.
표 2는, 입력 타입을 식별하기 위해 이용될 수 있는 대응하는 일반적인 IE ID를 각각 갖는 입력 타입들의 일례[0105]
를 제공한다.
표 2
일반적 IE ID[0106] 입력 타입
0 좌측 마우스 다운/터치 다운
1 좌측 마우스 업/터치 업
2 마우스 이동/터치 이동
3 키 다운
4 키 업
5 줌
6 수직 스크롤
7 수평 스크롤
8 회전
9-255 예비됨
각각의 입력 타입과 연관된 설명 필드들은 상이한 포맷을 가질 수 있다. 좌측 마우스 다운/터치 다운 이벤트,[0107]
좌측 마우스 업/터치 업 이벤트 및 마우스 이동/터치 이동 이벤트의 설명 필드들은, 예를 들어, 아래의 표 3에
서 식별되는 정보 엘리먼트들을 포함할 수 있지만, 다른 예들에서는 다른 포맷들이 또한 이용될 수 있다.
표 3
필드[0108] 사이즈(옥테트) 주
포인터들의 수(N) 1 멀티-터치 모션 이벤트의 포인터들의 수. 1로 설정되는 경
우, 이것은 단일 터치 모션 이벤트를 나타냄
i=1의 경우: N {
포인터 ID 1 이 포인터의 식별 번호. 값은 [0,1...]에 있음
X-좌표 2 싱크 디바이스와 소스 디바이스 사이에서 비디오 스트림의
협상된 해상도에 대해 정규화된 이벤트에 대한 X-좌표
Y-좌표 2 싱크 디바이스와 소스 디바이스 사이에서 비디오 스트림의
협상된 해상도에 대해 정규화된 이벤트에 대한 Y-좌표
포인터들의 수는 입력 이벤트와 연관된 터치들 또는 마우스 클릭들의 수를 식별할 수 있다. 각각의 포인터는[0109]
고유의 포인터 ID를 가질 수 있다. 예를 들어, 멀티-터치 이벤트가 세 손가락 터치를 포함하면, 입력
이벤트는, 고유의 포인터 ID를 각각 갖는 3개의 포인터들을 가질 수 있다. 각각의 포인터(즉, 각각의 손가락
터치)는 그 터치가 발생한 위치에 대응하는 대응 x-좌표 및 y-좌표를 가질 수 있다.
단일한 사용자 커맨드는 일련의 입력 이벤트들로서 설명될 수 있다. 예를 들어, 세 손가락 스와이프(swipe)가[0110]
애플리케이션을 종료시키라는 커맨드이면, 세 손가락 스와이프는, 3개의 포인터들을 갖는 터치 다운 이벤트, 3
개의 포인터들을 갖는 터치 이동 이벤트 및 3개의 포인터들을 갖는 터치 업 이벤트로서 페이로드 데이터(650)에
설명될 수 있다. 터치 다운 이벤트의 3개의 포인터들은 터치 이동 이벤트 및 터치 업 이벤트의 3개의 포인터들
과 동일한 포인터 ID들을 가질 수 있다. 소스 디바이스(120)는 이들 3개의 입력 이벤트들의 조합을 세 손가락
스와이프로서 해석할 수 있다.
키 다운 이벤트 또는 키 업 이벤트의 설명 필드들은, 예를 들어, 아래의 표 4에서 식별되는 정보 엘리먼트들을[0111]
포함할 수 있다.
표 4
필드[0112] 사이즈(옥테트) 주
예비됨 1 예비됨
등록특허 10-1533753
- 22 -
키 코드 1(ASCII) 2 제 1 키 다운 또는 업 이벤트의 키 코드. 기본/확장 ASCII
코드는 하위 1 바이트를 이용한다. 상위 1 바이트는 장래
의 ASCII 호환가능 키 코드를 위해 예비된다.
키 코드 2(ASCII) 2 제 2 키 다운 또는 업 이벤트의 키 코드. 기본/확장 ASCII
코드는 하위 1 바이트를 이용한다. 상위 1 바이트는 장래
의 ASCII 호환가능 키 코드를 위해 예비된다.
줌 이벤트의 설명 필드는, 예를 들어, 아래의 표 5에서 식별되는 정보 엘리먼트들을 포함할 수 있다.[0113]
표 5
필드[0114] 사이즈(옥테트) 주
X 2 싱크 디바이스와 소스 디바이스 사이에서 비디오 스트림의
협상된 해상도에 대해 정규화된 줌 동작에 대한 기준 X-좌표
Y 2 싱크 디바이스와 소스 디바이스 사이에서 비디오 스트림의
협상된 해상도에 대해 정규화된 줌 동작에 대한 기준 Y-좌표
주밍할 정수 횟수 1 주밍할 횟수의 미부호 정수 부분
주밍할 분수 횟수 1 주밍할 횟수의 분수 부분
수평 스크롤 이벤트 또는 수직 스크롤 이벤트의 설명 필드는, 예를 들어, 아래의 표 6에서 식별되는 정보 엘리[0115]
먼트들을 포함할 수 있다.
표 6
필드[0116] 사이즈(옥테트) 주
스크롤할 양 2 싱크 디바이스와 소스 디바이스 사이에서 비디오 스트림의
협상된 해상도에 대해 정규화된 스크롤할 픽셀들의 수. 음
수는 우측 스크롤을 나타낼 수 있고, 양수는 좌측 스크롤을
나타낼 수 있다.
상기 예들은, 페이로드 데이터가 일반적 입력 카테고리에 대해 포맷팅될 수 있는 몇몇 예시적인 방법들을 나타[0117]
낸다. 데이터 패킷 헤더(610)의 입력 카테고리 필드(624)가 상이한 입력 카테고리, 이를테면 포워딩된 사용자
입력을 나타내면, 페이로드 데이터(650)는 상이한 입력 포맷을 가질 수 있다. 포워딩된 사용자 입력으로, 싱크
디바이스(160)는 제 3의 디바이스로부터 사용자 입력 데이터를 수신할 수 있고, 사용자 입력 데이터를 해석하지
않고 그 입력을 소스 디바이스(120)에 포워딩할 수 있다. 따라서, 소스 디바이스(120)는 포워딩된 사용자 입력
포맷에 따라 페이로드 데이터(650)를 파싱할 수 있다. 예를 들어, 페이로드 데이터(650)의 페이로드 헤더(63
0)는, 사용자 입력이 획득된 제 3의 디바이스를 식별하기 위한 필드를 포함할 수 있다. 이 필드는, 예를 들어,
제 3의 디바이스의 인터넷 프로토콜(IP) 어드레스, MAC 어드레스, 도메인 명칭 또는 몇몇 다른 이러한 식별자를
포함할 수 있다. 소스 디바이스(120)는 제 3의 디바이스의 식별자에 기초하여 페이로드 데이터의 나머지를 파
싱할 수 있다.
싱크 디바이스(160)는 일련의 메시지들을 통해 제 3의 디바이스와 능력들을 협상할 수 있다. 그 다음, 싱크 디[0118]
바이스(160)는, 능력 협상 프로세스의 일부로서 소스 디바이스(120)와 통신 세션을 설정하는 것의 일부로서 제
3의 디바이스의 고유의 식별자를 소스 디바이스(120)에 송신할 수 있다. 대안적으로, 싱크 디바이스(160)는 제
3의 디바이스를 설명하는 정보를 소스 디바이스(120)에 송신할 수 있고, 이 정보에 기초하여 소스 디바이스
(120)는 제 3의 디바이스에 대한 고유의 식별자를 결정할 수 있다. 제 3의 디바이스를 설명하는 정보는, 예를
들어, 제 3의 디바이스를 식별하기 위한 정보 및/또는 제 3의 디바이스의 능력들을 식별하기 위한 정보를 포함
할 수 있다. 고유의 식별자들이 소스 디바이스(120)에 의해 결정되든지 또는 싱크 디바이스(160)에 의해 결정
되든지와 무관하게, 싱크 디바이스(160)가 제 3의 디바이스로부터 획득된 사용자 입력을 갖는 데이터 패킷들을
송신하는 경우, 싱크 디바이스(160)는 데이터 패킷의 고유의 식별자를, 예를 들어, 페이로드 헤더에 포함시킬
수 있어서, 소스 디바이스(120)는 사용자 입력의 기원(origin)을 식별할 수 있다.
데이터 패킷 헤더(610)의 입력 카테고리 필드(624)가 음성 커맨드와 같은 또 다른 입력 카테고리를 나타내면,[0119]
페이로드 데이터(650)는 또 다른 입력 포맷을 가질 수 있다. 음성 커맨드에 있어서, 페이로드 데이터(650)는
코딩된 오디오를 포함할 수 있다. 음성 커맨드의 오디오의 인코딩 및 디코딩을 위한 코덱은 일련의 메시지들을
등록특허 10-1533753
- 23 -
통해 소스 디바이스(120)와 싱크 디바이스(160) 사이에서 협상될 수 있다. 음성 커맨드를 송신하기 위해, 타임
스탬프 필드(626)는 스피치-샘플링 시간 값을 포함할 수 있다. 이러한 예에서, 타임스탬프 플래그(622)는 타임
스탬프가 존재함을 나타내도록 설정될 수 있지만, 앞서 설명된 바와 같은 타임스탬프 대신에, 타임스탬프 필드
(626)는 페이로드 데이터(650)의 인코딩된 오디오에 대한 스피치-샘플링 시간 값을 포함할 수 있다.
몇몇 예들에서, 음성 커맨드는 앞서 설명된 바와 같은 일반적 커맨드로서 송신될 수 있고, 이 경우, 입력 카테[0120]
고리 필드(624)는 일반적 커맨드 포맷을 식별하도록 설정될 수 있고, 예비된 일반적 IE ID들 중 하나가 음성 커
맨드들에 할당될 수 있다. 음성 커맨드가 일반적 커맨드로서 송신되면, 스피치 샘플링 레이트는 데이터 패킷
헤더(610)의 타임스탬프 필드(626)에 존재할 수 있거나, 페이로드 데이터(650)에 존재할 수 있다.
캡쳐된 음성 커맨드 데이터에 있어서, 음성 데이터는 다수의 방법들로 캡슐화될 수 있다. 예를 들어, 음성 커[0121]
맨드 데이터는, 코덱 및 타임스탬프를 식별하기 위해 페이로드 타입을 제공할 수 있는 RTP를 이용하여 캡슐화될
수 있고, 타임스탬프는 샘플링 레이트를 식별하는데 이용된다. RTP 데이터는, 선택적인 타임스탬프를 이용하든
이용하지 않든, 앞서 설명된 일반적 사용자 입력 포맷을 이용하여 캡슐화될 수 있다. 싱크 디바이스(160)는,
TPC/IP를 이용하여 소스 디바이스(120)에 음성 커맨드 데이터를 반송하는 일반적 입력 데이터를 송신할 수
있다.
이전에 논의된 바와 같이, 데이터 패킷(600)과 같은 데이터 패킷의 일부로서, 예를 들어, 페이로드 데이터(65[0122]
0)에 좌표들이 포함되는 경우, 좌표들은, 협상된 해상도에 기초하여 스케일링된 좌표들, 디스플레이 윈도우 좌
표들, 정규화된 좌표들 또는 싱크 디스플레이와 연관된 좌표들에 대응할 수 있다. 몇몇 예들에서, 데이터 패킷
에서 수신된 좌표들을 정규화하기 위해 소스 디바이스에 의한 이용을 위해, 추가적인 정보가 데이터 패킷에 포
함될 수 있거나 별도로 송신될 수 있다.
특정한 데이터 패킷에 대한 입력 카테고리와 무관하게, 데이터 패킷 헤더는 애플리케이션 계층 패킷 헤더일 수[0123]
있고, 데이터 패킷은 TCP/IP를 통해 송신될 수 있다. TCP/IP는 싱크 디바이스(160) 및 소스 디바이스(120)가
패킷 손실의 이벤트에서 재송신 기술들을 수행하게 할 수 있다. 데이터 패킷은, 소스 디바이스(120)의 오디오
데이터 또는 비디오 데이터를 제어하기 위해 또는 소스 디바이스(120) 상에서 실행되는 애플리케이션을 제어하
는 것과 같은 다른 목적들로, 싱크 디바이스(160)로부터 소스 디바이스(120)에 전송될 수 있다.
도 7a는 싱크 디바이스와 소스 디바이스 사이에서 능력들을 협상하는 예시적인 방법의 흐름도이다. 도시된 예[0124]
시적인 방법은 싱크 디바이스(160(도 1a) 또는 360(도 3))에 의해 수행될 수 있다. 몇몇 예들에서, 컴퓨터 판
독가능 저장 매체(예를 들어, 메모리(332))는, 실행되는 경우 하나 또는 그 초과의 프로세서들(예를 들어, 프로
세서(331))로 하여금, 본 명세서에서 설명되는 흐름도들 중 하나 또는 그 초과에서의 예시된 단계들 중 하나 또
는 그 초과를 수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 7a의 방법은 싱크 디바이스(160)가 소스 디바이스(120)로부터 제 1 메시지를 수신하는 단계를 포함한다[0125]
(701). 메시지는, 예를 들어, 파라미터 획득(get parameter) 요청을 포함할 수 있다. 제 1 메시지에
응답하여, 싱크 디바이스(160)는 소스 디바이스(120)에 제 2 메시지를 전송할 수 있다(703). 제 2 메시지는,
예를 들어, 지원되는 입력 카테고리들의 제 1 리스트 및 지원되는 타입들의 복수의 제 1 리스트들을 식별하는
파라미터 획득 응답을 포함할 수 있고, 여기서, 지원되는 입력 카테고리들의 제 1 리스트의 지원되는 입력 카테
고리들 각각은 지원되는 타입들의 연관된 제 1 리스트를 갖는다. 지원되는 입력 카테고리들은, 예를 들어, 도
6의 입력 카테고리 필드(624)에 이용되는 것과 동일한 카테고리들에 대응할 수 있다. 상기 표 2는 특정한 입력
카테고리(이 예에서는 일반적 입력들)에 대한 지원되는 타입들의 일례를 표현한다. 싱크 디바이스(160)는 소스
디바이스(120)로부터 제 3 메시지를 수신할 수 있다(705). 제 3 메시지는, 예를 들어, 세트 파라미터(set
parameter) 요청을 포함할 수 있고, 세트 파라미터 요청은, 통신을 위한 포트, 지원되는 입력 카테고리들의 제
2 리스트, 및 지원되는 타입들의 복수의 제 2 리스트들을 식별하고, 지원되는 입력 카테고리들의 제 2 리스트의
지원되는 입력 카테고리들 각각은 지원되는 타입들의 연관된 제 2 리스트를 갖고, 제 2 리스트들의 지원되는 타
입들 각각은 제 1 리스트들의 타입들의 서브세트를 포함한다. 싱크 디바이스(160)는 소스 디바이스(120)에 제
4 메시지를 송신할 수 있다(707). 제 4 메시지는, 예를 들어, 제 2 리스트들의 타입들이 인에이블되었음을 확
인하는 세트 파라미터 응답을 포함할 수 있다. 싱크 디바이스(160)는 소스 디바이스(120)로부터 제 5 메시지를
수신할 수 있다(709). 제 5 메시지는, 예를 들어, 소스 디바이스(120)와 싱크 디바이스(160) 사이에서 통신 채
널이 인에이블되었음을 나타내는 제 2 세트 파라미터 요청을 포함할 수 있다. 통신 채널은, 예를 들어, 사용자
입력 백 채널(UIBC)을 포함할 수 있다. 싱크 디바이스(160)는 소스 디바이스(120)에 제 6 메시지를 송신할 수
있다(711). 제 6 메시지는, 예를 들어, 싱크 디바이스(160)에 의한 제 2 세트 파라미터 요청의 수신을 확인하
등록특허 10-1533753
- 24 -
는 제 2 세트 파라미터 응답을 포함할 수 있다.
도 7b는 싱크 디바이스와 소스 디바이스 사이에서 능력들을 협상하는 예시적인 방법의 흐름도이다. 도시된 예[0126]
시적인 방법은 소스 디바이스(120(도 1a) 또는 220(도 2))에 의해 수행될 수 있다. 몇몇 예들에서, 컴퓨터 판
독가능 저장 매체(예를 들어, 메모리(232))는, 실행되는 경우 하나 또는 그 초과의 프로세서들(예를 들어, 프로
세서(231))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과를 수행하게 하는 명령들, 모듈들 또는
알고리즘들을 저장할 수 있다.
도 7b의 방법은 소스 디바이스(120)가 싱크 디바이스(160)에 제 1 메시지를 송신하는 단계를 포함한다(702).[0127]
제 1 메시지는, 예를 들어, 파라미터 획득 요청을 포함할 수 있다. 소스 디바이스(120)는 싱크 디바이스(160)
로부터 제 2 메시지를 수신할 수 있다(704). 제 2 메시지는, 예를 들어, 지원되는 입력 카테고리들의 제 1 리
스트 및 지원되는 타입들의 복수의 제 1 리스트들을 식별하는 파라미터 획득 응답을 포함할 수 있고, 여기서,
지원되는 입력 카테고리들의 제 1 리스트의 지원되는 입력 카테고리들 각각은 지원되는 타입들의 연관된 제 1
리스트를 갖는다. 소스 디바이스(120)는 싱크 디바이스(160)에 제 3 메시지를 송신할 수 있다(706). 제 3 메
시지는, 예를 들어, 통신을 위한 포트, 지원되는 입력 카테고리들의 제 2 리스트, 및 지원되는 타입들의 복수의
제 2 리스트들을 식별하는 세트 파라미터 요청을 포함할 수 있고, 지원되는 입력 카테고리들의 제 2 리스트의
지원되는 입력 카테고리들 각각은 지원되는 타입들의 연관된 제 2 리스트를 갖고, 제 2 리스트들의 지원되는 타
입들 각각은 제 1 리스트들의 타입들의 서브세트를 포함한다. 소스 디바이스(120)는 싱크 디바이스(160)로부터
제 4 메시지를 수신할 수 있다(708). 제 4 메시지는, 예를 들어, 제 2 리스트들의 타입들이 인에이블되었음을
확인하는 세트 파라미터 응답을 포함할 수 있다. 소스 디바이스(120)는 싱크 디바이스(160)에 제 5 메시지를
송신할 수 있다(710). 제 5 메시지는, 예를 들어, 소스 디바이스(120)와 싱크 디바이스(160) 사이에서 통신 채
널이 인에이블되었음을 나타내는 제 2 세트 파라미터 요청을 포함할 수 있다. 통신 채널은, 예를 들어, 사용자
입력 백 채널(UIBC)을 포함할 수 있다. 소스 디바이스(120)는 싱크 디바이스(160)로부터 제 6 메시지를 수신할
수 있다(712). 제 6 메시지는, 예를 들어, 싱크 디바이스(160)에 의한 제 2 세트 파라미터 요청의 수신을 확인
하는 제 2 세트 파라미터 응답을 포함할 수 있다.
도 8a는 본 개시에 따라 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 입력 데이터를 송신하는 예시[0128]
적인 방법의 흐름도이다. 도시된 예시적인 방법은 싱크 디바이스(160(도 1a) 또는 360(도 3))에 의해 수행될
수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(332))는, 실행되는 경우 하나 또는 그
초과의 프로세서들(예를 들어, 프로세서(331))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과를
수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 8a의 방법은 무선 싱크 디바이스(160)와 같은 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 단계[0129]
를 포함한다(801). 사용자 입력 데이터는, 예를 들어, 무선 싱크 디바이스(360)와 관련하여 도시된 사용자 입
력 인터페이스(376)와 같은, 무선 싱크 디바이스(160)의 사용자 입력 컴포넌트를 통해 획득될 수 있다. 추가적
으로, 싱크 디바이스(160)는 사용자 입력 데이터를, 예를 들어, 일반적인 것, 포워딩된 것 또는 운영 시스템 특
정인 것으로 카테고리화할 수 있다. 그 다음, 싱크 디바이스(160)는 사용자 입력 데이터에 기초하여 데이터 패
킷 헤더를 생성할 수 있다(803). 데이터 패킷 헤더는 애플리케이션 계층 패킷 헤더일 수 있다. 데이터 패킷
헤더는, 다른 필드들 중, 사용자 입력 데이터에 대응하는 입력 카테고리를 식별하기 위한 필드를 포함할 수 있
다. 입력 카테고리는, 예를 들어, 일반적 입력 포맷 또는 휴먼 인터페이스 디바이스 커맨드를 포함할 수 있다.
싱크 디바이스(160)는 데이터 패킷을 추가로 생성할 수 있고(805), 여기서 데이터 패킷은 생성된 데이터 패킷
헤더 및 페이로드 데이터를 포함한다. 일례에서, 페이로드 데이터는 수신된 사용자 입력 데이터를 포함할 수
있고, 하나 또는 그 초과의 사용자 커맨드들을 식별할 수 있다. 그 다음, 싱크 디바이스(160)는 생성된 데이터
패킷을 무선 소스 디바이스(예를 들어, 소스 디바이스(도 1a의 120 또는 도 2의 220))에 송신할 수 있다(807).
싱크 디바이스(160)는, 예를 들어, 도 3에 도시된 바와 같은 전송 유닛(333) 및 무선 모뎀(334)을 포함하는, 데
이터 패킷들의 전송을 허용하는 컴포넌트들을 포함할 수 있다. 싱크 디바이스(160)는 TCP/IP를 통해 데이터 패
킷을 전송할 수 있다.
도 8b는 본 개시에 따라 무선 소스 디바이스에서 무선 싱크 디바이스로부터의 사용자 입력 데이터를 수신하는[0130]
예시적인 방법의 흐름도이다. 도시된 예시적인 방법은 소스 디바이스(120(도 1a) 또는 220(도 2))에 의해 수행
될 수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(232))는, 실행되는 경우 하나 또는
그 초과의 프로세서들(예를 들어, 프로세서(231))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과
를 수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
등록특허 10-1533753
- 25 -
도 8b의 방법은 데이터 패킷을 수신하는 단계를 포함하고(802), 여기서 데이터 패킷은, 다른 것들 중, 데이터[0131]
패킷 헤더 및 페이로드 데이터를 포함할 수 있다. 페이로드 데이터는, 예를 들어, 사용자 입력 데이터를 포함
할 수 있다. 소스 디바이스(120)는, 예를 들어, 도 2를 참조하여 도시된 바와 같은 전송 유닛(233) 및 무선 모
뎀(234)을 포함하는, 데이터 패킷들의 전송을 허용하는 통신 컴포넌트들을 포함할 수 있다. 그 다음, 소스 디
바이스(120)는 페이로드 데이터에 포함된 사용자 입력 데이터와 연관된 입력 카테고리를 결정하기 위해, 데이터
패킷에 포함된 데이터 패킷 헤더를 파싱할수 있다(804). 소스 디바이스(120)는 결정된 입력 카테고리에 기초하
여 페이로드 데이터를 프로세싱할 수 있다(806). 도 8a 및 도 8b를 참조하여 설명된 데이터 패킷들은 일반적으
로 도 6을 참조하여 설명된 데이터 패킷들의 형태를 취할 수 있고, 소스 디바이스에서 오디오/비디오 데이터 및
애플리케이션들을 제어하는데 이용될 수 있다.
도 9a는 본 개시에 따라 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 입력 데이터를 송신하는 예시[0132]
적인 방법의 흐름도이다. 도시된 예시적인 방법은 싱크 디바이스(160(도 1a) 또는 360(도 3))에 의해 수행될
수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(332))는, 실행되는 경우 하나 또는 그
초과의 프로세서들(예를 들어, 프로세서(331))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과를
수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 9a의 방법은 무선 싱크 디바이스(160)와 같은 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 단계[0133]
를 포함한다(901). 사용자 입력 데이터는, 예를 들어, 도 3을 참조하여 도시된 사용자 입력 인터페이스(376)와
같은, 무선 싱크 디바이스(160)의 사용자 입력 컴포넌트를 통해 획득될 수 있다. 그 다음, 싱크 디바이스(16
0)는 페이로드 데이터를 생성할 수 있고(903), 여기서 페이로드 데이터는 사용자 입력 데이터를 설명할 수
있다. 일례에서, 페이로드 데이터는 수신된 사용자 입력 데이터를 포함할 수 있고, 하나 또는 그 초과의 사용
자 커맨드들을 식별할 수 있다. 싱크 디바이스(160)는 데이터 패킷을 추가로 생성할 수 있고(905), 여기서 데
이터 패킷은 데이터 패킷 헤더 및 생성된 페이로드 데이터를 포함한다. 그 다음, 싱크 디바이스(160)는 생성된
데이터 패킷을 무선 소스 디바이스(예를 들어, 소스 디바이스(도 1a의 120 또는 도 2의 220))에 송신할 수 있다
(907). 싱크 디바이스(160)는, 예를 들어, 전송 유닛(333) 및 무선 모뎀(334)과 같은, 데이터 패킷들의 전송을
허용하는 컴포넌트들을 포함할 수 있다. 데이터 패킷은 TCP/IP를 통해 무선 소스 디바이스에 송신될 수 있다.
도 9b는 본 개시에 따라 무선 소스 디바이스에서 무선 싱크 디바이스로부터의 사용자 입력 데이터를 수신하는[0134]
예시적인 방법의 흐름도이다. 도시된 예시적인 방법은 소스 디바이스(120(도 1a) 또는 220(도 2))에 의해 수행
될 수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(232))는, 실행되는 경우 하나 또는
그 초과의 프로세서들(예를 들어, 프로세서(231))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과
를 수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 9b의 방법은 싱크 디바이스(360)로부터 데이터 패킷을 수신하는 단계를 포함하고(902), 여기서 데이터 패킷[0135]
은 다른 것들 중, 데이터 패킷 헤더 및 페이로드 데이터를 포함할 수 있다. 일례에서, 페이로드 데이터는, 예
를 들어, 입력 타입 값과 같은 사용자 입력의 세부사항들을 설명하는 데이터를 포함할 수 있다. 소스 디바이스
(120)는, 예를 들어, 도 2를 참조하여 도시된 바와 같은 전송 유닛(233) 및 무선 모뎀(234)을 포함하는, 데이터
패킷들의 전송을 허용하는 통신 컴포넌트들을 포함할 수 있다. 그 다음, 소스 디바이스(120)는 페이로드 데이
터의 입력 타입 필드 내의 입력 타입 값을 결정하기 위해, 데이터 패킷을 파싱할 수 있다(904). 소스 디바이스
(120)는 결정된 입력 타입 값에 기초하여 사용자 입력의 세부사항들을 설명하는 데이터를 프로세싱할 수 있다
(906). 도 9a 및 도 9b를 참조하여 설명된 데이터 패킷들은 일반적으로 도 6을 참조하여 설명된 데이터 패킷들
의 형태를 취할 수 있다.
도 10a는 본 개시에 따라 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 입력 데이터를 송신하는 예시[0136]
적인 방법의 흐름도이다. 도시된 예시적인 방법은 싱크 디바이스(160(도 1a) 또는 360(도 3))에 의해 수행될
수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(332))는, 실행되는 경우 하나 또는 그
초과의 프로세서들(예를 들어, 프로세서(331))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과를
수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 10a의 방법은 무선 싱크 디바이스(160)와 같은 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 단계[0137]
를 포함한다(1001). 사용자 입력 데이터는, 예를 들어, 도 3을 참조하여 도시된 사용자 입력 인터페이스(376)
와 같은 무선 싱크 디바이스(160)의 사용자 입력 컴포넌트를 통해 획득될 수 있다. 그 다음, 싱크 디바이스
(160)는 사용자 입력에 기초하여 데이터 패킷 헤더를 생성할 수 있다(1003). 데이터 패킷 헤더는, 다른 필드들
중, 데이터 패킷 헤더에 타임스탬프 필드가 존재하는지 여부를 나타내기 위한 타임스탬프 플래그(예를 들어, 1
등록특허 10-1533753
- 26 -
비트 필드)를 포함할 수 있다. 타임스탬프 플래그는, 예를 들어, 타임스탬프 필드가 존재함을 나타내기 위해
"1"을 포함할 수 있고, 타임스탬프 필드가 존재하지 않음을 나타내기 위해 "0"을 포함할 수 있다. 타임스탬프
필드는, 예를 들어, 소스 디바이스(120)에 의해 생성되고 송신 전에 비디오 데이터에 추가되는 타임스탬프를 포
함하는 16 비트 필드일 수 있다. 싱크 디바이스(160)는 데이터 패킷을 추가로 생성할 수 있고(1005), 여기서
데이터 패킷은 생성된 데이터 패킷 헤더 및 페이로드 데이터를 포함한다. 일례에서, 페이로드 데이터는 수신된
사용자 입력 데이터를 포함할 수 있고, 하나 또는 그 초과의 사용자 커맨드들을 식별할 수 있다. 그 다음, 싱
크 디바이스(160)는 생성된 데이터 패킷을 무선 소스 디바이스(예를 들어, 소스 디바이스(도 1a의 120 또는 도
2의 220))에 송신할 수 있다(1007). 싱크 디바이스(160)는, 예를 들어, 도 3을 참조하여 도시된 바와 같은 전
송 유닛(333) 및 무선 모뎀(334)을 포함하는, 데이터 패킷들의 전송을 허용하는 컴포넌트들을 포함할 수 있다.
데이터 패킷은 TCP/IP를 통해 무선 소스 디바이스에 송신될 수 있다.
도 10b는 본 개시에 따라 무선 소스 디바이스에서 무선 싱크 디바이스로부터의 사용자 입력 데이터를 수신하는[0138]
예시적인 방법의 흐름도이다. 도시된 예시적인 방법은 소스 디바이스(120(도 1a) 또는 220(도 2))에 의해 수행
될 수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(232))는, 실행되는 경우 하나 또는
그 초과의 프로세서들(예를 들어, 프로세서(231))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과
를 수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 10b의 방법은 무선 싱크 디바이스(160)로부터 데이터 패킷을 수신하는 단계를 포함하고(1002), 여기서 데이[0139]
터 패킷은, 다른 것들 중, 데이터 패킷 헤더 및 페이로드 데이터를 포함할 수 있다. 페이로드 데이터는, 예를
들어, 사용자 입력 데이터를 포함할 수 있다. 소스 디바이스(120)는, 예를 들어, 도 2를 참조하여 도시된 바와
같은 전송 유닛(233) 및 무선 모뎀(234)을 포함하는, 데이터 패킷들의 전송을 허용하는 통신 컴포넌트들을 포함
할 수 있다. 그 다음, 소스 디바이스(120)는 데이터 패킷에 포함된 데이터 패킷 헤더를 파싱할 수 있다(1004).
소스 디바이스(120)는, 데이터 패킷 헤더에 타임스탬프 필드가 존재하는지 여부를 결정할 수 있다(1006). 일례
에서, 소스 디바이스(120)는 데이터 패킷 헤더에 포함된 타임스탬프 플래그 값에 기초하여 결정을 행할 수
있다. 데이터 패킷 헤더가 타임스탬프 필드를 포함하면, 소스 디바이스(120)는 타임스탬프 필드에 있는 타임스
탬프에 기초하여 페이로드 데이터를 프로세싱할 수 있다(1008). 도 10a 및 도 10b를 참조하여 설명된 데이터
패킷들은 일반적으로 도 6을 참조하여 설명된 데이터 패킷들의 형태를 취할 수 있고, 소스 디바이스에서 오디오
/비디오 데이터를 제어하는데 이용될 수 있다.
도 11a는 본 개시에 따라 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 입력 데이터를 송신하는 예시[0140]
적인 방법의 흐름도이다. 도시된 예시적인 방법은 싱크 디바이스(160(도 1a) 또는 360(도 3))에 의해 수행될
수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(332))는, 실행되는 경우 하나 또는 그
초과의 프로세서들(예를 들어, 프로세서(331))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과를
수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 11a의 방법은 무선 싱크 디바이스(160)와 같은 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 단계[0141]
를 포함한다(1101). 사용자 입력 데이터는, 예를 들어, 도 3을 참조하여 도시된 사용자 입력 인터페이스(376)
와 같은, 무선 싱크 디바이스(160)의 사용자 입력 컴포넌트를 통해 획득될 수 있다. 그 다음, 싱크 디바이스
(160)는 사용자 입력에 기초하여 데이터 패킷 헤더를 생성할 수 있다(1103). 데이터 패킷 헤더는, 다른 필드들
중 타임스탬프 필드를 포함할 수 있다. 타임스탬프 필드는, 예를 들어, 무선 소스 디바이스(120)에 의해 생성
되고 무선 싱크 디바이스(160)에 송신된 멀티미디어 데이터에 기초한 타임스탬프를 포함하는 16 비트 필드를 포
함할 수 있다. 타임스탬프는 무선 싱크 디바이스에 송신되기 전에 무선 소스 디바이스(120)에 의해 비디오 데
이터의 프레임에 추가될 수 있다. 타임스탬프 필드는, 예를 들어, 사용자 입력 데이터가 캡쳐된 시간에 무선
싱크 디바이스(160)에서 디스플레이되고 있는 비디오 데이터의 프레임과 연관된 타임스탬프를 식별할 수 있다.
싱크 디바이스(160)는 데이터 패킷을 추가로 생성할 수 있고(1105), 여기서 데이터 패킷은 생성된 데이터 패킷
헤더 및 페이로드 데이터를 포함한다. 일례에서, 페이로드 데이터는 수신된 사용자 입력 데이터를 포함할 수
있고, 하나 또는 그 초과의 사용자 커맨드들을 식별할 수 있다. 그 다음, 싱크 디바이스(160)는 생성된 데이터
패킷을 무선 소스 디바이스(예를 들어, 소스 디바이스(도 1a의 120 또는 도 2의 220))에 송신할 수 있다(1107).
싱크 디바이스(160)는, 예를 들어, 도 3을 참조하여 도시된 바와 같은 전송 유닛(333) 및 무선 모뎀(334)을 포
함하는, 데이터 패킷들의 전송을 허용하는 컴포넌트들을 포함할 수 있다. 데이터 패킷은 TCP/IP를 통해 무선
소스 디바이스에 송신될 수 있다.
도 11b는 본 개시에 따라 무선 소스 디바이스에서 무선 싱크 디바이스로부터의 사용자 입력 데이터를 수신하는[0142]
예시적인 방법의 흐름도이다. 도시된 예시적인 방법은 소스 디바이스(120(도 1a) 또는 220(도 2))에 의해 수행
등록특허 10-1533753
- 27 -
될 수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(232))는, 실행되는 경우 하나 또는
그 초과의 프로세서들(예를 들어, 프로세서(231))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과
를 수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 11b의 방법은 무선 싱크 디바이스(160)와 같은 무선 싱크 디바이스로부터 데이터 패킷을 수신하는 단계를 포[0143]
함하고(1102), 여기서 데이터 패킷은, 다른 것들 중, 데이터 패킷 헤더 및 페이로드 데이터를 포함할 수 있다.
페이로드 데이터는, 예를 들어, 사용자 입력 데이터를 포함할 수 있다. 소스 디바이스(120)는, 예를 들어, 도
2를 참조하여 도시된 바와 같은 전송 유닛(233) 및 무선 모뎀(234)을 포함하는, 데이터 패킷들의 전송을 허용하
는 통신 컴포넌트들을 포함할 수 있다. 그 다음, 소스 디바이스(120)는 데이터 패킷 헤더의 타임스탬프 필드를
식별할 수 있다(1104). 소스 디바이스(120)는 타임스탬프 필드에 있는 타임스탬프에 기초하여 페이로드 데이터
를 프로세싱할 수 있다(1106). 타임스탬프에 기초한 페이로드 데이터의 프로세싱의 일부로서, 소스 디바이스
(120)는, 사용자 입력 데이터가 획득된 시간에 무선 싱크 디바이스에 디스플레이되고 있는 비디오 데이터의 프
레임을 식별하고, 그 프레임의 컨텐츠에 기초하여 페이로드 데이터를 해석할 수 있다. 타임스탬프에 기초한 페
이로드 데이터의 프로세싱의 일부로서, 소스 디바이스(120)는, 타임스탬프를, 소스 디바이스(120)에 의해 송신
되고 있는 비디오의 현재의 프레임에 대한 현재의 타임스탬프와 비교할 수 있고, 타임스탬프와 현재의 타임스탬
프 사이의 시간 차가 임계값 미만인 것에 응답하여, 페이로드 데이터에서 설명된 사용자 입력 커맨드를 수행할
수 있거나, 또는 타임스탬프와 현재의 타임스탬프 사이의 시간 차가 임계값보다 큰 것에 응답하여, 페이로드 데
이터에서 설명된 사용자 입력 커맨드를 수행하지 않을 수 있다. 도 11a 및 도 11b를 참조하여 설명된 데이터
패킷들은 일반적으로 도 6을 참조하여 설명된 데이터 패킷들의 형태를 취할 수 있고, 소스 디바이스에서 오디오
/비디오 데이터를 제어하는데 이용될 수 있다.
도 12a는 본 개시에 따라 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 입력 데이터를 송신하는 예시[0144]
적인 방법의 흐름도이다. 도시된 예시적인 방법은 싱크 디바이스(160(도 1a) 또는 360(도 3))에 의해 수행될
수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(332))는, 실행되는 경우 하나 또는 그
초과의 프로세서들(예를 들어, 프로세서(331))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과를
수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 12a의 방법은 무선 싱크 디바이스(160)와 같은 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 단계[0145]
를 포함한다(1201). 일례에서, 사용자 입력 데이터는 음성 커맨드 데이터일 수 있고, 음성 커맨드 데이터는,
예를 들어, 도 3의 사용자 입력 인터페이스(376)에 포함된 음성 커맨드 인식 모듈과 같은, 무선 싱크 디바이스
(160)의 사용자 입력 컴포넌트를 통해 획득될 수 있다. 싱크 디바이스(160)는 사용자 입력에 기초하여 데이터
패킷 헤더를 생성할 수 있다(1203). 싱크 디바이스(160)는 또한 페이로드 데이터를 생성할 수 있고(1205), 여
기서 페이로드 데이터는 음성 커맨드 데이터를 포함할 수 있다. 일례에서, 페이로드 데이터는 또한 수신된 사
용자 입력 데이터를 포함할 수 있고, 하나 또는 그 초과의 사용자 커맨드들을 식별할 수 있다. 싱크 디바이스
(160)는 데이터 패킷을 추가로 생성할 수 있고(1207), 여기서 데이터 패킷은 생성된 데이터 패킷 헤더 및 페이
로드 데이터를 포함한다. 그 다음, 싱크 디바이스(160)는 생성된 데이터 패킷(1209)을 무선 소스 디바이스(예
를 들어, 소스 디바이스(도 1a의 120 또는 도 2의 220))에 송신할 수 있다(1209). 싱크 디바이스(160)는, 예를
들어, 도 3을 참조하여 도시된 바와 같은 전송 유닛(333) 및 무선 모뎀(334)을 포함하는, 데이터 패킷들의 전송
을 허용하는 컴포넌트들을 포함할 수 있다. 데이터 패킷은 TCP/IP를 통해 무선 소스 디바이스에 송신될 수 있
다.
도 12b는 본 개시에 따라 무선 소스 디바이스에서 무선 싱크 디바이스로부터의 사용자 입력 데이터를 수신하는[0146]
예시적인 방법의 흐름도이다. 도시된 예시적인 방법은 소스 디바이스(120(도 1a) 또는 220(도 2))에 의해 수행
될 수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(232))는, 실행되는 경우 하나 또는
그 초과의 프로세서들(예를 들어, 프로세서(231))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과
를 수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 12b의 방법은 데이터 패킷을 수신하는 단계를 포함하고(1202), 여기서 데이터 패킷은 다른 것들 중, 데이터[0147]
패킷 헤더 및 페이로드 데이터를 포함할 수 있다. 페이로드 데이터는, 예를 들어, 음성 커맨드 데이터와 같은
사용자 입력 데이터를 포함할 수 있다. 소스 디바이스(120)는, 예를 들어, 도 2를 참조하여 도시된 바와 같은
전송 유닛(233) 및 무선 모뎀(234)을 포함하는, 데이터 패킷들의 전송을 허용하는 통신 컴포넌트들을 포함할 수
있다. 그 다음, 소스 디바이스(120)는, 페이로드 데이터가 음성 커맨드 데이터를 포함하는지 여부를 결정하기
위해, 데이터 패킷에 포함된 페이로드 데이터를 파싱할 수 있다(1204). 도 12a 및 도 12b를 참조하여 설명된
데이터 패킷들은 일반적으로 도 6을 참조하여 설명된 데이터 패킷들의 형태를 취할 수 있고, 소스 디바이스에서
등록특허 10-1533753
- 28 -
오디오/비디오 데이터를 제어하는데 이용될 수 있다.
도 13a는 본 개시에 따라 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 입력 데이터를 송신하는 예시[0148]
적인 방법의 흐름도이다. 도시된 예시적인 방법은 싱크 디바이스(160(도 1a) 또는 360(도 3))에 의해 수행될
수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(332))는, 실행되는 경우 하나 또는 그
초과의 프로세서들(예를 들어, 프로세서(331))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과를
수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 13a의 방법은 무선 싱크 디바이스(160)와 같은 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 단계[0149]
를 포함한다(1301). 일례에서, 사용자 입력 데이터는, 예를 들어, 도 3의 UI(167) 또는 사용자 입력 인터페이
스(376)와 같은, 무선 싱크 디바이스(160)의 사용자 입력 컴포넌트를 통해 획득될 수 있는 멀티-터치 제스쳐일
수 있다. 일례에서, 멀티-터치 제스쳐는 제 1 터치 입력 및 제 2 터치 입력을 포함할 수 있다. 싱크 디바이스
(160)는 사용자 입력에 기초하여 데이터 패킷 헤더를 생성할 수 있다(1303). 싱크 디바이스(160)는 또한 페이
로드 데이터를 생성할 수 있고(1305), 여기서 페이로드 데이터는, 제 1 터치 입력 이벤트에 대한 사용자 입력
데이터를 제 1 포인터 식별과 연관시킬 수 있고, 제 2 터치 입력 이벤트에 대한 사용자 입력 데이터를 제 2 포
인터 식별과 연관시킬 수 있다. 싱크 디바이스(160)는 데이터 패킷을 추가로 생성할 수 있고(1307), 여기서 데
이터 패킷은 생성된 데이터 패킷 헤더 및 페이로드 데이터를 포함한다. 그 다음, 싱크 디바이스(160)는 생성된
데이터 패킷을 무선 소스 디바이스(예를 들어, 소스 디바이스(도 1a의 120 또는 도 2의 220))에 송신할 수 있다
(1309). 싱크 디바이스(160)는, 예를 들어, 도 3을 참조하여 도시된 바와 같은 전송 유닛(333) 및 무선 모뎀
(334)을 포함하는, 데이터 패킷들의 전송을 허용하는 컴포넌트들을 포함할 수 있다. 데이터 패킷은 TCP/IP를
통해 무선 소스 디바이스에 송신될 수 있다.
도 13b는 본 개시에 따라 무선 소스 디바이스에서 무선 싱크 디바이스로부터의 사용자 입력 데이터를 수신하는[0150]
예시적인 방법의 흐름도이다. 도시된 예시적인 방법은 소스 디바이스(120(도 1a) 또는 220(도 2))에 의해 수행
될 수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(232))는, 실행되는 경우 하나 또는
그 초과의 프로세서들(예를 들어, 프로세서(231))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과
를 수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 13b의 방법은 데이터 패킷을 수신하는 단계를 포함하고(1302), 여기서 데이터 패킷은 다른 것들 중, 데이터[0151]
패킷 헤더 및 페이로드 데이터를 포함할 수 있다. 페이로드 데이터는, 예를 들어, 멀티-터치 제스쳐와 같은 사
용자 입력 데이터를 포함할 수 있다. 소스 디바이스(120)는, 예를 들어, 도 2에 도시된 바와 같은 전송 유닛
(233) 및 무선 모뎀(234)을 포함하는, 데이터 패킷들의 전송을 허용하는 통신 컴포넌트들을 포함할 수 있다.
그 다음, 소스 디바이스(120)는 페이로드 데이터에 포함된 사용자 입력 데이터를 식별하기 위해, 데이터 패킷에
포함된 페이로드 데이터를 파싱할 수 있다(1304). 일례에서, 식별된 데이터는, 제 1 포인터 식별을 갖는 제 1
터치 입력 이벤트에 대한 사용자 입력 데이터 및 제 2 포인터 식별을 갖는 제 2 터치 입력 이벤트에 대한 사용
자 입력 데이터를 포함할 수 있다. 그 다음, 소스 디바이스(120)는 제 1 터치 입력 이벤트에 대한 사용자 입력
데이터 및 제 2 터치 입력 이벤트에 대한 사용자 입력 데이터를 멀티-터치 제스쳐로서 해석할 수 있다(1306).
도 13a 및 도 13b를 참조하여 설명된 데이터 패킷들은 일반적으로 도 6을 참조하여 설명된 데이터 패킷들의 형
태를 취할 수 있고, 소스 디바이스에서 오디오/비디오 데이터를 제어하는데 이용될 수 있다.
도 14a는 본 개시에 따라 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 입력 데이터를 송신하는 예시[0152]
적인 방법의 흐름도이다. 도시된 예시적인 방법은 싱크 디바이스(160(도 1a) 또는 360(도 3))에 의해 수행될
수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(332))는, 실행되는 경우 하나 또는 그
초과의 프로세서들(예를 들어, 프로세서(331))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과를
수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 14a의 방법은 외부 디바이스로부터의 사용자 입력 데이터를 무선 싱크 디바이스(360)에서 획득하는 단계를[0153]
포함한다(1401). 일례에서, 외부 디바이스는 싱크 디바이스에 접속된 제 3의 디바이스일 수 있다. 싱크 디바
이스(160)는 사용자 입력에 기초하여 데이터 패킷 헤더를 생성할 수 있다(1403). 일례에서, 데이터 패킷 헤더
는 사용자 입력 데이터를 포워딩된 사용자 입력 데이터로서 식별할 수 있다. 싱크 디바이스(160)는 또한 페이
로드 데이터를 생성할 수 있고(1405), 여기서 페이로드 데이터는 사용자 입력 데이터를 포함할 수 있다. 싱크
디바이스(160)는 데이터 패킷을 추가로 생성할 수 있고(1407), 여기서 데이터 패킷은 생성된 데이터 패킷 헤더
및 페이로드 데이터를 포함할 수 있다. 그 다음, 싱크 디바이스(160)는 생성된 데이터 패킷을 무선 소스 디바
이스(예를 들어, 소스 디바이스(도 1a의 120 또는 도 2의 220))에 송신할 수 있다(1409). 싱크 디바이스(160)
등록특허 10-1533753
- 29 -
는, 예를 들어, 도 3을 참조하여 도시된 바와 같은 전송 유닛(333) 및 무선 모뎀(334)을 포함하는, 데이터 패킷
들의 전송을 허용하는 컴포넌트들을 포함할 수 있다. 데이터 패킷은 TCP/IP를 통해 무선 소스 디바이스에 송신
될 수 있다.
도 14b는 본 개시에 따라 무선 소스 디바이스에서 무선 싱크 디바이스로부터의 사용자 입력 데이터를 수신하는[0154]
예시적인 방법의 흐름도이다. 도시된 예시적인 방법은 소스 디바이스(120(도 1a) 또는 220(도 2))에 의해 수행
될 수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(232))는, 실행되는 경우 하나 또는
그 초과의 프로세서들(예를 들어, 프로세서(231))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과
를 수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 14b의 방법은 데이터 패킷을 수신하는 단계를 포함하고(1402), 여기서 데이터 패킷은 다른 것들 중, 데이터[0155]
패킷 헤더 및 페이로드 데이터를 포함할 수 있다. 페이로드 데이터는, 예를 들어, 사용자 입력 데이터가 제 3
의 디바이스로부터 포워딩된 것을 나타내는 포워딩된 사용자 입력 커맨드와 같은 사용자 입력 데이터를 포함할
수 있다. 소스 디바이스(120)는, 예를 들어, 도 2를 참조하여 도시된 바와 같은 전송 유닛(233) 및 무선 모뎀
(234)을 포함하는, 데이터 패킷들의 전송을 허용하는 통신 컴포넌트들을 포함할 수 있다. 그 다음, 소스 디바
이스(120)는 데이터 패킷 헤더를 파싱할 수 있고, 페이로드 데이터가 포워딩된 사용자 입력 커맨드를 포함한다
고 결정할 수 있다(1404). 그 다음, 소스 디바이스(120)는, 포워딩된 사용자 입력 커맨드에 대응하는 제 3의
디바이스와 연관된 식별을 식별하기 위해, 데이터 패킷에 포함된 페이로드 데이터를 파싱할 수 있다(1406). 그
다음, 소스 디바이스(120)는 제 3의 디바이스의 식별된 식별에 기초하여 페이로드 데이터를 프로세싱할 수 있다
(1408). 도 14a 및 도 14b를 참조하여 설명된 데이터 패킷들은 일반적으로 도 6을 참조하여 설명된 데이터 패
킷들의 형태를 취할 수 있고, 소스 디바이스에서 오디오/비디오 데이터를 제어하는데 이용될 수 있다.
도 15a는 본 개시에 따라 무선 싱크 디바이스로부터 무선 소스 디바이스에 사용자 입력 데이터를 송신하는 예시[0156]
적인 방법의 흐름도이다. 도시된 예시적인 방법은 싱크 디바이스(160(도 1a) 또는 360(도 3))에 의해 수행될
수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(332))는, 실행되는 경우 하나 또는 그
초과의 프로세서들(예를 들어, 프로세서(331))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과를
수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 15a의 방법은 무선 싱크 디바이스에서 사용자 입력 데이터를 획득하는 단계를 포함한다(1501). 사용자 입력[0157]
데이터는 연관된 좌표 데이터를 가질 수 있다. 연관된 좌표 데이터는, 예를 들어, 마우스 클릭 이벤트의 위치
또는 터치 이벤트의 위치에 대응할 수 있다. 그 다음, 싱크 디바이스(160)는 정규화된 좌표 데이터를 생성하기
위해 연관된 좌표 데이터를 정규화할 수 있다(1503). 그 다음, 싱크 디바이스(160)는 정규화된 좌표 데이터를
포함하는 데이터 패킷을 생성할 수 있다(1505). 좌표 데이터를 정규화하는 것은, 소스 디바이스(120)의 디스플
레이(22)와 같은 소스의 디스플레이의 해상도 및 디스플레이 윈도우의 해상도의 비에 기초하여 연관된 좌표 데
이터를 스케일링하는 것을 포함할 수 있다. 디스플레이 윈도우의 해상도는 싱크 디바이스(160)에 의해 결정될
수 있고, 소스 디바이스의 디스플레이의 해상도는 소스 디바이스(120)로부터 수신될 수 있다. 그 다음, 싱크
디바이스(160)는 정규화된 좌표들을 갖는 데이터 패킷을 무선 소스 디바이스(120)에 송신할 수 있다(1507). 도
15a의 방법의 일부로서, 싱크 디바이스(160)는 또한, 연관된 좌표 데이터가, 무선 소스 디바이스로부터 수신되
고 있는 컨텐츠에 대한 디스플레이 윈도우 내에 있는지 여부를 결정할 수 있고, 예를 들어, 연관된 좌표 데이터
가 디스플레이 윈도우 외부에 있으면 사용자 입력을 로컬로 프로세싱할 수 있거나, 또는 그렇지 않고 입력이 디
스플레이 윈도우 내에 있으면, 설명된 바와 같이, 좌표들을 정규화할 수 있다.
도 15b는 본 개시에 따라 무선 소스 디바이스에서 무선 싱크 디바이스로부터의 사용자 입력 데이터를 수신하는[0158]
예시적인 방법의 흐름도이다. 도시된 예시적인 방법은 소스 디바이스(120(도 1a) 또는 220(도 2))에 의해 수행
될 수 있다. 몇몇 예들에서, 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(232))는, 실행되는 경우 하나 또는
그 초과의 프로세서들(예를 들어, 프로세서(231))로 하여금, 흐름도에서의 예시된 단계들 중 하나 또는 그 초과
를 수행하게 하는 명령들, 모듈들 또는 알고리즘들을 저장할 수 있다.
도 15b의 방법은 무선 소스 디바이스에서 데이터 패킷을 수신하는 단계를 포함하고, 여기서 데이터 패킷은 연관[0159]
된 좌표 데이터를 갖는 사용자 입력 데이터를 포함한다(1502). 연관된 좌표 데이터는, 예를 들어, 싱크 디바이
스에서 마우스 클릭 이벤트의 위치 또는 터치 이벤트의 위치에 대응할 수 있다. 그 다음, 소스 디바이스(120)
는 정규화된 좌표 데이터를 생성하기 위해 연관된 좌표 데이터를 정규화할 수 있다(1504). 소스 디바이스(12
0)는, 소스의 디스플레이의 해상도 및 디스플레이 윈도우의 해상도의 비에 기초하여 연관된 좌표 데이터를 스케
일링함으로써 좌표 데이터를 정규화할 수 있다. 소스 디바이스(120)는 소스 디바이스의 디스플레이의 해상도를
등록특허 10-1533753
- 30 -
결정할 수 있고, 무선 싱크 디바이스로부터 디스플레이 윈도우의 해상도를 수신할 수 있다. 그 다음, 소스 디
바이스는 정규화된 좌표 데이터에 기초하여 데이터 패킷을 프로세싱할 수 있다(1506). 도 15a 및 도 15b를 참
조하여 설명된 데이터 패킷들은 일반적으로 도 6을 참조하여 설명된 데이터 패킷들의 형태를 취할 수 있고, 소
스 디바이스에서 오디오/비디오 데이터를 제어하는데 이용될 수 있다.
설명의 단순함을 위해, 본 개시의 양상들은 도 7 내지 도 15를 참조하여 개별적으로 설명되었다. 그러나, 이러[0160]
한 다양한 양상들은 조합될 수 있고, 단지 개별적이 아니라 서로 결합되어 이용될 수 있음이 고려된다. 일반적
으로, 본 명세서에서 설명된 기능 및/또는 모듈들은 무선 소스 디바이스 및 무선 싱크 디바이스 중 하나 또는
둘 모두에서 구현될 수 있다. 이러한 방식으로, 현재의 예에서 설명되는 사용자 인터페이스 능력들은 무선 소
스 디바이스와 무선 싱크 디바이스 사이에서 상호교환가능하게 이용될 수 있다.
본 개시의 기술들은, 무선 핸드셋을 포함하는 광범위한 디바이스들 또는 장치들, 및 집적 회로(IC) 또는 IC들의[0161]
세트(즉, 칩 셋)에서 구현될 수 있다. 임의의 컴포넌트들, 모듈들 또는 유닛들은 기능적 양상들을 강조하기 위
해 제공된 것으로 설명되었고, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하는 것은 아니다.
따라서, 본 명세서에서 설명되는 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될[0162]
수 있다. 하드웨어로 구현되면, 모듈들, 유닛들 또는 컴포넌트들로 설명된 임의의 특징들은 집적 로직 디바이
스에서 함께 구현되거나, 이산적이지만 상호협력가능한 로직 디바이스들로서 개별적으로 구현될 수 있다. 소프
트웨어로 구현되면, 기술들은, 프로세서에서 실행되는 경우 앞서 설명된 방법들 중 하나 또는 그 초과를 수행하
는 명령들을 포함하는 컴퓨터 판독가능 매체에 의해 적어도 부분적으로 실현될 수 있다. 컴퓨터 판독가능 매체
는 유형의 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있고, 패키징 재료들을 포함할 수 있는 컴퓨터 프
로그램 물건의 일부를 형성할 수 있다. 컴퓨터 판독가능 저장 매체는 동기식 동적 랜덤 액세스 메모리(SDRAM)
과 같은 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 비휘발성 랜덤 액세스 메모리(NVRAM), 전기적으로
소거가능한 프로그래머블 판독 전용 메모리(EEPROM), FLASH 메모리, 자기 또는 광학 데이터 저장 매체 등을 포
함할 수 있다. 기술들은 추가적으로 또는 대안적으로, 명령들 또는 데이터 구조들의 형태로 코드를 반송 또는
통신하고 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분
적으로 실현될 수 있다.
코드는, 하나 또는 그 초과의 디지털 신호 프로세서들(DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들[0163]
(ASIC들), 필드 프로그래머블 로직 어레이들(FPGA들), 또는 다른 균등한 집적 또는 이산 로직 회로와 같은 하나
또는 그 초과의 프로세서들에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 바와 같은 용어 "프로세
서"는, 전술한 구조 또는 본 명세서에서 설명되는 기술들의 구현에 적합한 임의의 다른 구조 중 임의의 구조를
지칭할 수 있다. 또한, 몇몇 양상들에서, 본 명세서에서 설명된 기능은, 전용 소프트웨어 모듈들, 또는 인코딩
및 디코딩을 위해 구성되거나 결합된 비디오 코덱으로 통합된 하드웨어 모듈들 내에서 제공될 수 있다. 또한,
기술들은 하나 또는 그 초과의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시의 다양한 양상들이 설명되었다. 이러한 양상들 및 다른 양상들은 하기 청구항들의 범위 내에 있다.[0164]
등록특허 10-1533753
- 31 -
도면
도면1a
등록특허 10-1533753
- 32 -
도면1b
등록특허 10-1533753
- 33 -
도면2
등록특허 10-1533753
- 34 -
도면3
등록특허 10-1533753
- 35 -
도면4
등록특허 10-1533753
- 36 -
도면5a
등록특허 10-1533753
- 37 -
도면5b
등록특허 10-1533753
- 38 -
도면6
도면7a
등록특허 10-1533753
- 39 -
도면7b
도면8a
도면8b
등록특허 10-1533753
- 40 -
도면9a
도면9b
도면10a
등록특허 10-1533753
- 41 -
도면10b
도면11a
도면11b
등록특허 10-1533753
- 42 -
도면12a
도면12b
도면13a
등록특허 10-1533753
- 43 -
도면13b
도면14a
도면14b
등록특허 10-1533753
- 44 -
도면15a
도면15b
등록특허 10-1533753
- 45 -