KR20160106193A - 동기화된 무선 디스플레이 디바이스들 - Google Patents

동기화된 무선 디스플레이 디바이스들 Download PDF

Info

Publication number
KR20160106193A
KR20160106193A KR1020167023725A KR20167023725A KR20160106193A KR 20160106193 A KR20160106193 A KR 20160106193A KR 1020167023725 A KR1020167023725 A KR 1020167023725A KR 20167023725 A KR20167023725 A KR 20167023725A KR 20160106193 A KR20160106193 A KR 20160106193A
Authority
KR
South Korea
Prior art keywords
source device
sink
queue
communication session
source
Prior art date
Application number
KR1020167023725A
Other languages
English (en)
Inventor
소함 브이. 쉬쓰
사미르 살립 솔리만
비자야라크쉬미 알. 라빈드란
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20160106193A publication Critical patent/KR20160106193A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/189Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network
    • H04N21/43637Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6547Transmission by server directed to the client comprising parameters, e.g. for client setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • H04W56/001Synchronization between nodes
    • H04W56/0015Synchronization between nodes one node acting as a reference for the others
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]

Abstract

본 개시물은, 무선 디스플레이(WD; Wireless Display) 시스템에서 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 미디어 데이터의 재생(playback)을 동기화시키기 위한 기법들에 관한 것이다. WD 시스템들은 모바일 디바이스들로 하여금 소스 디바이스의 로컬 디스플레이를 원격의 싱크 디바이스들과 공유하는 것을 가능하게 한다. 본 개시물의 기법들은, 소스 디바이스와 참여중인 싱크 디바이스들에 대한 유니버셜 큐 크기를 선택하기 위한 소스 디바이스에서의 관리 절차를 포함한다. 소스 디바이스는 소스 디바이스 및 싱크 디바이스들의 지원되는 큐 크기들에 적어도 기초하여 유니버셜 큐 크기를 선택한다. 다음으로, 미디어 패킷들은 소스 디바이스 및 싱크 디바이스들에서 유니버셜 큐 크기를 갖는 큐들에 홀딩된다. 송신 딜레이에 대한 보상과 결합된 균일한 큐 크기는, 디바이스들 각각이 미디어 패킷들의 프로세싱을 동시에 시작하는 것을 가능하게 한다.

Description

동기화된 무선 디스플레이 디바이스들{SYNCHRONIZED WIRELESS DISPLAY DEVICES}
본 출원은, 2011년 9월 13일자로 출원된 U.S. 가출원 제61/534,193호, 2011년 9월 27일자로 출원된 U.S. 가출원 제61/539,726호, 및 2012년 2월 7일자로 출원된 U.S. 가출원 제61/595,932호를 우선권으로 주장하며, 상기 미국 가출원들의 전체 내용 각각은 인용에 의해 본원에 포함된다.
기술 분야
본 개시물은 미디어 데이터의 전송(transport) 및 재생(playback)에 관한 것이고, 더욱 구체적으로는, 모바일 디바이스에 의한 미디어 데이터의 전송 및 재생의 관리에 관한 것이다.
모바일 디바이스들은, 모바일 전화기들, 무선 통신 카드들을 갖춘 휴대용 컴퓨터들, PDA(personal digital assistant)들, 휴대용 미디어 플레이어들, 또는 소위 "스마트" 폰들 및 "스마트" 패드들 또는 태블릿들을 포함하는 무선 통신 성능들을 갖춘 다른 플래시 메모리 디바이스들, 또는 다른 유형들의 무선 통신 디바이스들의 형태를 취할 수 있다. 모바일 디바이스들은, 고전력 프로세서들의 부가, 미디어 콘텐츠를 프로세싱하기 위한 성능, 및 클라우드에서 네트워크들과 상호작용하기 위한 능력으로 점점 더 강력해지고 있다. 이러한 개선들은, 더 나은 사용자 경험을 제공하고 그리고 생산성을 개선시키는, 모바일 디바이스들을 위한 새로운 이용 모델들을 개발하는 것을 가능하게 한다.
모바일 디바이스 상에서의 프로세싱 전력 및 메모리 이용가능성에 있어서의 현저한 개선들을 통해 가능한 새로운 이용 모델의 일 예시는, 무선 디스플레이(Wireless Display) 또는 Wi-Fi 디스플레이(WFD)이다. WD(Wireless Display) 시스템들은 소스 디바이스 및 하나 또는 그 초과의 싱크 디바이스들을 포함한다. 소스 디바이스는 모바일 디바이스일 수 있고, 싱크 디바이스들 각각은 모바일 디바이스들 또는 유선 디바이스들일 수 있다. 소스 디바이스는 오디오 비디오(AV; audio video) 데이터를 하나 또는 그 초과의 참여중인 싱크 디바이스들에 전송한다. AV 데이터는, 소스 디바이스의 로컬 디스플레이에서 그리고 싱크 디바이스들의 디스플레이들 각각에서 모두 재생될 수 있다.
일반적으로, 본 개시물은 WD(Wireless Display) 시스템에서 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 미디어 데이터의 재생을 동기화하기 위한 기법들에 관한 것이다. WD 시스템들은 모바일 디바이스들로 하여금 소스 디바이스의 로컬 디스플레이를 원격의 싱크 디바이스들과 공유하는 것을 가능하게 한다. 예를 들어, 모바일 디바이스들을 갖는 몇몇 사람들이 함께 모여있는 경우, 하나의 모바일 디바이스 사용자가 공유할 콘텐츠를 가지고 있을 수 있고, 다른 사용자들 각각은 그 또는 그녀 자신의 WD-가능한 모바일 디바이스를 이용하여 그 콘텐츠를 수신하고 볼 수 있다. 이러한 시나리오에서, 콘텐츠 소유자의 모바일 디바이스는 소스 디바이스로서의 역할을 하고, 다른 모바일 디바이스들은 싱크 디바이스들로서의 역할을 한다. 그러나, 소스 디바이스 및 싱크 디바이스들 각각에서의 미디어 플레이어들은, 통상적으로 디스플레이를 위한 프로세싱 이전에 유입하는(incoming) 미디어 패킷들을 캐싱하기 위해 임의로 결정된 큐 크기들을 이용한다. 소스 디바이스 및 싱크 디바이스들 각각은 큐 크기들을 상이하게 설정할 수 있고, 이에 따라, 서로 다른 시간들에 미디어 패킷들의 프로세싱을 시작할 수 있다. 이러한 동기화되지 않은 프로세싱은, 종종 디바이스들에서 미디어 데이터의 동기화되지 않은 재생을 초래할 수 있다.
본 개시물의 기법들은 소스 디바이스 및 참여중인 싱크 디바이스들에 대한 유니버셜 큐 크기(universal queue size)를 선택하기 위한 소스 디바이스에서의 관리 절차를 포함한다. 소스 디바이스는, 소스 디바이스 및 싱크 디바이스들의 지원되는 큐 크기들에 적어도 기초하여 유니버셜 큐 크기를 선택한다. 다음으로, 미디어 패킷들이, 디스플레이를 위한 프로세싱 이전에 소스 디바이스 및 싱크 디바이스들에서의 유니버셜 큐 크기를 갖는 큐들에 홀딩된다. 참여중인 디바이스들 각각에서의 균일한 큐 크기는, 디바이스들 각각이 미디어 패킷들의 프로세싱을 동시에 시작할 수 있게 하며, 이는 개별 디바이스들에서의 미디어 데이터의 동기화된 재생을 야기한다.
일 예시에서, 본 개시물은, 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 통신 세션을 확립하는 단계, 통신 세션을 위해 소스 디바이스에 의해 선택된 유니버셜 큐 크기를 싱크 디바이스들 중 적어도 하나에 통지하는 단계, 싱크 디바이스들 각각에 데이터 패킷들을 전송하는 단계 ― 데이터 패킷들은, 싱크 디바이스들에서 유니버셜 큐 크기를 갖는 싱크 큐들 내에 홀딩됨 ―, 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐 내에 데이터 패킷들을 홀딩하는 단계; 및 소스 큐가 꽉 찬 것으로 검출하면, 소스 디바이스에서의 디스플레이를 위해 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하는 단계 ― 소스 디바이스에서의 프로세싱은, 싱크 디바이스들에서의 데이터 패킷들의 프로세싱과 동기화됨 ― 를 포함하는 방법에 관한 것이다.
다른 예시에서, 본 개시물은, 싱크 디바이스와의 통신 세션을 확립하도록 소스 디바이스에 요청하는 단계, 소스 디바이스로부터 유니버셜 큐 크기의 통지를 수신하는 단계 ― 유니버셜 큐 크기는, 적어도 소스 디바이스 및 싱크 디바이스의 지원되는 큐 크기들에 기초하여 선택됨 ―, 통신 세션의 일부로서 데이터 패킷들을 소스 디바이스로부터 수신하는 단계 ― 패킷들은 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐에 홀딩됨 ―, 싱크 디바이스에서 유니버셜 큐 크기를 갖는 싱크 큐에 데이터 패킷들을 홀딩하는 단계, 및 싱크 큐가 꽉 찬 것으로 검출하면, 싱크 디바이스에서의 디스플레이를 위해 싱크 큐 내의 패킷들의 프로세싱을 시작하는 단계 ― 싱크 디바이스에서의 패킷 프로세싱은, 소스 디바이스에서의 패킷 프로세싱과 동기화됨 ― 를 포함하는 방법에 관한 것이다.
추가적인 예시에서, 본 개시물은, 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 통신 세션을 확립하고, 소스 디바이스와 싱크 디바이스들의 지원되는 큐 크기들에 기초하여 유니버셜 큐 크기를 선택하도록 구성된 프로세서를 포함하는 소스 디바이스에 관한 것이다. 소스 디바이스는 또한, 통신 세션을 위해 선택된 유니버셜 큐 크기에 대한 통지를 싱크 디바이스들에 송신하기 위한 송신기를 포함하고, 여기서, 송신기는 통신 세션의 일부로서 싱크 디바이스들 각각에 데이터 패킷들을 전송하고, 데이터 패킷들은 싱크 디바이스들에서 유니버셜 큐 크기를 갖는 싱크 큐들에 홀딩된다. 소스 디바이스는, 패킷들을 홀딩하는 유니버셜 큐 크기를 갖는 소스 큐를 더 포함하며, 여기서, 소스 큐가 꽉 찬 것으로 검출하면, 프로세서가 소스 디바이스에서의 디스플레이를 위해 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하고, 소스 디바이스에서의 데이터 패킷 프로세싱은 싱크 디바이스들에서의 패킷 프로세싱과 동기화된다.
추가적인 예시에서, 본 개시물은, 싱크 디바이스들과의 통신 세션을 확립하도록 소스 디바이스에 요청하도록 구성된 프로세서를 포함하는 싱크 디바이스에 관한 것이다. 싱크 디바이스는, 소스 디바이스로부터 유니버셜 큐 크기의 통지를 수신하고 ― 유니버셜 큐 크기는, 적어도 소스 디바이스 및 싱크 디바이스의 지원되는 큐 크기들에 기초하여 선택됨 ―, 그리고 통신 세션의 일부로서 패킷들을 소스 디바이스로부터 수신하는 ― 패킷들은 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐에 홀딩됨 ― 수신기를 더 포함한다. 소스 디바이스는, 패킷들을 홀딩하는 유니버셜 큐 크기를 갖는 싱크 큐를 더 포함하며, 여기서, 싱크 큐가 꽉 찬 것으로 검출하면, 프로세서가 싱크 디바이스에서의 디스플레이를 위해 싱크 큐 내의 패킷들의 프로세싱을 시작하고, 싱크 디바이스에서의 패킷 프로세싱은 적어도 소스 디바이스에서의 패킷 프로세싱과 동기화된다.
추가적인 예시에서, 본 개시물은, 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 통신 세션을 확립하기 위한 수단, 통신 세션을 위해 소스 디바이스에 의해 선택된 유니버셜 큐 크기를 싱크 디바이스들 각각에 통지하기 위한 수단, 싱크 디바이스들 각각에 데이터 패킷들을 전송하기 위한 수단 ― 데이터 패킷들은 싱크 디바이스들에서 유니버셜 큐 크기를 갖는 싱크 큐들에 홀딩됨 ―, 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐 내에 데이터 패킷들을 홀딩하기 위한 수단, 및 소스 큐가 꽉 찬 것으로 검출하면, 소스 디바이스에서의 디스플레이를 위해 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하기 위한 수단 ― 소스 디바이스에서의 프로세싱은 싱크 디바이스들에서 데이터 패킷들의 프로세싱과 동기화됨 ― 을 포함하는 소스 디바이스에 관한 것이다.
추가적인 예시에서, 본 개시물은, 싱크 디바이스와의 통신 세션을 확립하도록 소스 디바이스에 요청하기 위한 수단, 소스 디바이스로부터 유니버셜 큐 크기에 대한 통지를 수신하기 위한 수단 ― 유니버셜 큐 크기는, 적어도 소스 디바이스 및 싱크 디바이스의 지원되는 큐 크기들에 기초하여 선택됨 ―, 통신 세션의 일부로서 소스 디바이스로부터 패킷들을 수신하기 위한 수단 ― 패킷들은 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐에 홀딩됨 ―, 싱크 디바이스에서 유니버셜 큐 크기를 갖는 싱크 큐에 패킷들을 홀딩하기 위한 수단, 및 싱크 큐가 꽉 찬 것으로 검출하면, 싱크 디바이스에서의 디스플레이를 위해 싱크 큐 내의 패킷들의 프로세싱을 시작하기 위한 수단 ― 싱크 디바이스에서의 패킷 프로세싱은, 소스 디바이스에서의 패킷 프로세싱과 동기화됨 ― 을 포함하는 싱크 디바이스에 관한 것이다.
다른 예시에서, 본 개시물은, 소스 디바이스에서 실행될 때, 프로세서로 하여금, 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 통신 세션을 확립하게 하고, 통신 세션을 위해 소스 디바이스에 의해 선택된 유니버셜 큐 크기를 싱크 디바이스들 각각에 통지하게 하고, 싱크 디바이스들 각각에 데이터 패킷들을 전송하게 하고 ― 데이터 패킷들은 싱크 디바이스들에서 유니버셜 큐 크기를 갖는 싱크 큐들 내에 홀딩됨 ―, 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐 내에 데이터 패킷들을 홀딩하게 하고, 그리고 소스 큐가 꽉 찬 것으로 검출하면, 소스 디바이스에서의 디스플레이를 위해 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하게 하는 ― 소스 디바이스에서의 프로세싱은, 싱크 디바이스들에서 데이터 패킷들의 프로세싱과 동기화됨 ― 명령들을 포함하는 컴퓨터-판독가능 매체에 관한 것이다.
다른 예시에서, 본 개시물은, 싱크 디바이스에서 실행될 때, 프로세서로 하여금, 싱크 디바이스와의 통신 세션을 확립하도록 소스 디바이스에 요청하게 하고, 소스 디바이스로부터 유니버셜 큐 크기의 통지를 수신하게 하고 ― 유니버셜 큐 크기는, 적어도 소스 디바이스 및 싱크 디바이스의 지원되는 큐 크기들에 기초하여 선택됨 ―, 통신 세션의 일부로서 패킷들을 소스 디바이스로부터 수신하게 하고 ― 패킷들은 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐에 홀딩됨 ―, 싱크 디바이스에서 유니버셜 큐 크기를 갖는 싱크 큐에 패킷들을 홀딩하게 하고; 그리고 싱크 큐가 꽉 찬 것으로 검출하면, 싱크 디바이스에서의 디스플레이를 위해 싱크 큐 내의 패킷들의 프로세싱을 시작하게 하는 ― 싱크 디바이스에서의 패킷 프로세싱은, 소스 디바이스에서의 패킷 프로세싱과 동기화됨 ― 명령들을 포함하는 컴퓨터-판독가능 매체에 관한 것이다.
다른 예시에서, 본 개시물은, 싱크 디바이스와 소스 디바이스 사이의 통신 세션을 확립하는 단계, 소스 디바이스로부터 유니버셜 큐 크기의 통지를 수신하는 단계 ― 유니버셜 큐 크기는 통신 세션에 대해 소스 디바이스에 의해 선택됨 ―, 소스 디바이스로부터 데이터 패킷들을 수신하는 단계 ― 데이터 패킷들은, 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐 내에 홀딩됨 ―, 싱크 디바이스에서 유니버셜 큐 크기를 갖는 싱크 큐 내에 데이터 패킷들을 홀딩하는 단계, 싱크 큐가 꽉 찬 것으로 검출하면, 싱크 디바이스에서의 디스플레이를 위해 싱크 큐 내의 데이터 패킷들의 프로세싱을 시작하는 단계 ― 싱크 디바이스에서의 프로세싱은, 소스 디바이스에서의 데이터 패킷들의 프로세싱과 동기화됨 ― 를 포함하는 방법에 관한 것이다.
본 개시물의 하나 또는 그 초과의 예시들의 세부사항들은 이하 첨부된 도면들 및 상세한 설명에서 제시된다. 다른 특징들, 목적들, 및 이점들은 상세한 설명 및 도면들로부터 그리고 청구항들로부터 명백할 것이다.
도 1은 소스 디바이스 및 싱크 디바이스들을 포함하는 WD 시스템을 예시하는 블록도이다.
도 2는 통신 세션에 참여하는 소스 디바이스 및 싱크 디바이스들을 포함하는 예시적인 WD 시스템을 예시하는 블록도이다.
도 3은, 본 개시물의 기법들에 따라서 스트리밍 모드에서 동기화된 통신 세션에 참여할 수 있는 소스 디바이스 및 싱크 디바이스들을 포함하는 다른 예시적인 WD 시스템을 예시하는 블록도이다.
도 4는 본 개시물의 기법들에 따라서 프레임 버퍼 모드에서 동기화된 통신 세션에 참여할 수 있는 소스 디바이스 및 싱크 디바이스들을 포함하는 다른 WD 시스템을 예시하는 블록도이다.
도 5는 소스 디바이스와 참여중인 싱크 디바이스들 사이의 통신 세션에 대한 유니버셜 큐 크기를 선택하는데 이용된 예시적인 정보 교환을 예시하는 로직도이다.
도 6은 본 개시물의 기법들에 따라서 소스 디바이스와 싱크 디바이스들 사이의 통신 세션을 동기화하는 예시의 동작을 예시하는 흐름도이다.
도 7은 본 개시물에 설명된 하나 또는 그 초과의 예시들에 따라서 소스 디바이스와 싱크 디바이스들 사이의 통신 세션을 동기화하는 예시의 방법을 예시하는 흐름도이다.
도 8은 본 개시물에 설명된 하나 또는 그 초과의 예시들에 따라서 소스 디바이스와 싱크 디바이스들 사이의 통신 세션을 동기화하는 예시의 방법을 예시하는 흐름도이다.
도 9는 본 개시물에 설명된 하나 또는 그 초과의 예시들에 따라서 소스 디바이스와 싱크 디바이스들 사이의 통신 세션을 동기화하는 예시의 방법을 예시하는 흐름도이다.
본 개시물은, 무선 디스플레이(WD; Wireless Display) 시스템에서 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 미디어 데이터의 재생을 동기화시키기 위한 기법들에 관한 것이다. WD 시스템들은, 모바일 디바이스들이 소스 디바이스의 로컬 디스플레이를 원격의 싱크 디바이스들과 공유하는 것을 가능하게 한다. 예를 들어, 모바일 디바이스들을 갖는 몇몇 사람들이 함께 모여있는 경우(예컨대, 비지니스 미팅 또는 가족/친구 모임), 하나의 모바일 디바이스 사용자는, 사용자가 방안에서 모두에게 보여주고 싶고 그리고/또는 콘텐츠가 디스플레이되는 동안 설명 및 추가적인 정보를 제공하고 싶은, 비디오 클립과 같은 콘텐츠를 가질 수 있다. WD 시스템에서, 모두는 콘텐츠를 수신하고 보기 위해 그 또는 그녀 자신의 WD-가능한 모바일 디바이스를 이용할 수 있다. 이러한 시나리오에서, 콘텐츠 소유자의 모바일 디바이스는 소스 디바이스들로서 역할을 하고, 다른 모바일 디바이스들은 싱크들로서 역할을 한다. 이러한 공동의 사용자 경험을 제공하기 위해, 모든 사용자들이 동일한 콘텐츠를 보고 들을 수 있고 임의의 구두 설명(verbal description)을 정확한 콘텐츠와 관련지을 수 있도록, 모든 디바이스들에서의 콘텐츠 재생이 동기화되는 것이 중요하다.
그러나, 소스 디바이스 및 싱크 디바이스들 각각에서의 미디어 플레이어들은 통상적으로, 디스플레이를 위한 프로세싱 이전에, 유입하는 미디어 패킷들을 임의적으로 결정된 큐 크기들을 이용하여 캐싱한다. 소스 디바이스 및 싱크 디바이스들 각각은 큐 크기들을 상이하게 설정할 수 있고, 이에 따라 서로 다른 시간들에서 미디어 패킷들의 프로세싱을 시작할 수 있다. 이러한 동기화되지 않은 프로세싱은 디바이스들에서 미디어 데이터의 동기화되지 않은 재생을 초래할 것이다.
본 개시물의 기법들은, 소스 디바이스 및 참여중인 싱크 디바이스들에 대한 유니버셜 큐 크기를 선택하기 위한 소스 디바이스에서의 관리 절차를 포함한다. 소스 디바이스는 소스 디바이스 및 싱크 디바이스들의 지원되는 큐 크기들에 적어도 기초하여 유니버셜 큐 크기를 선택한다. 다음으로, 미디어 패킷들이, 디스플레이를 위한 프로세싱 이전에 소스 디바이스 및 싱크 디바이스들 각각에서 유니버셜 큐 크기를 갖는 큐들에 홀딩된다. 참여중인 디바이스들 각각에서 균일한 큐 크기는, 디바이스들 각각이 동시에 미디어 패킷들의 프로세싱을 시작할 수 있게 하고, 이는 개별적인 디바이스들에서 미디어 데이터의 동기화된 재생을 야기한다.
도 1은 소스 디바이스(5) 및 싱크 디바이스들(7)을 포함하는 WD 시스템을 예시하는 블록도이다. 소스 디바이스는, 오디오 및/또는 비디오(AV) 데이터와 같은 미디어 데이터를 싱크 디바이스들 중 특정한 통신 세션에 참여하는 하나 또는 그 초과의 싱크 디바이스들에 전송한다. 미디어 데이터는 소스 디바이스의 로컬 디스플레이에서 그리고 싱크 디바이스들의 디스플레이들 각각에서 모두 재생될 수 있다. 더욱 구체적으로, 참여중인 싱크 디바이스들 각각은 자신의 스크린 및 오디오 장비 상에 수신된 미디어 데이터를 렌더링한다. 몇몇 경우들에서, 싱크 디바이스의 사용자는 사용자 입력들을 싱크 디바이스, 예컨대, 터치 입력들 및 원격의 제어 입력들에 적용할 수 있다. WD 시스템에서, 사용자 입력들은 싱크 디바이스로부터 소스 디바이스에 전송된다. 소스 디바이스는 싱크 디바이스로부터의 수신된 사용자 입력들을 프로세싱하고, 싱크 디바이스에 전송되는 후속의 미디어 데이터에 대해 사용자 입력들의 영향을 적용한다.
도 2는 통신 세션에 참여하는 소스 디바이스(10) 및 싱크 디바이스들(12A-12B)("싱크 디바이스들(12)")을 포함하는 WD 시스템을 예시하는 블록도이다. 다른 예시들에서, WD 시스템은 2개보다 많은 참여중인 싱크 디바이스들을 포함할 수 있다. WD 시스템은 또한, 소스 디바이스(10)와 싱크 디바이스들(12) 사이에 WD 통신 세션이 확립된 복수의 Wi-Fi(예컨대, IEEE 802.11x) 네트워크들을 지원하는 하나 또는 그 초과의 기지국들(미도시)을 포함할 수 있다. 통신 서비스 제공자는, 네트워크 허브로서 기지국을 이용하여 이러한 네트워크들 중 하나 또는 그 초과를 중심적으로 동작시키고 운영할 수 있다.
소스 디바이스(10) 및 싱크 디바이스들(12) 각각은 모바일 디바이스들, 예컨대, 모바일 전화기들, 무선 통신 카드들을 갖는 휴대용 컴퓨터들, PDA(personal digital assistant)들, 휴대용 미디어 플레이어들, 무선 통신 성능들을 갖춘 다른 플래시 메모리 디바이스들, 또는 임의의 유형의 무선 통신 디바이스의 형태를 취할 수 있다. 다른 예시들에서, 싱크 디바이스들(12) 중 하나 또는 그 초과는 무선 통신 성능들을 갖춘 유선 디바이스들, 예컨대, 텔레비젼들, 데스크톱 컴퓨터들, 모니터들, 프로젝터들 등의 형태를 취할 수 있다. 도 2의 예시된 예에서, 소스 디바이스(10)는 저장된 콘텐츠(16), 파서(18), 디코더(20), 렌더러(22), 로컬 디스플레이(24) 및 송신기(TX)(26)를 포함한다. 싱크 디바이스들(12)은 수신기들(30A-30B) ("수신기들(30)"), 디코더들(32A-32B)("디코더들(32)"), 렌더러들(34A-34B)("렌더러들(34)"), 및 디스플레이들(36A-36B)("디스플레이들(36)")을 포함한다.
소스 디바이스(10) 및 싱크 디바이스들(12)의 컴포넌트들은 각각 임의의 다양한 적합한 회로, 예컨대, 하나 또는 그 초과의 마이크로프로세서들, 디지털 신호 프로세서들(DSP들), ASIC들(application specific integrated circuits), FPGA들(field programmable gate arrays), 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합들로서 구현될 수 있다. 로컬 디스플레이(24) 및 디스플레이들(36)은 각각 임의의 다양한 디스플레이 디바이스들, 예컨대, LCD(liquid crystal display), 플라즈마 디스플레이, OLED(organic light emitting diode) 디스플레이, 또는 다른 유형의 디스플레이 디바이스를 포함할 수 있다.
소스 디바이스(10)가 저장된 콘텐츠(16)를 재생하고 있는 경우, 소스 디바이스(10)는 원격의 싱크 디바이스들(12) 중 하나 또는 그 초과로부터 통신 세션을 셋업하도록 하는 요청을 수신할 수 있다. 소스 디바이스(10)는 실시간 스트리밍 프로토콜(RTSP; Real-Time Streaming Protocol)을 이용하여 소스 디바이스(10)와 하나 또는 그 초과의 요청중인 싱크 디바이스들(12) 사이의 통신 세션을 확립할 수 있다. 확립되면, 통신 세션은, 도 1 및 도 2에 예시된 바와 같이, 소스 디바이스가 저장된 인코딩된 미디어 스트림들을 송신하는 스트리밍 모드에서 동작할 수 있고, 또는 도 4에 예시된 바와 같이, 소스 디바이스가 미디어 프레임들을 캡쳐하고, 인코딩하고, 송신하는 프레임 버퍼 모드에서 동작할 수 있다. 어느 경우든, 미디어 데이터는 실시간 전송 프로토콜(RTP; Real-time Transport protocol)을 이용하여 소스 디바이스로부터 참여중인 싱크 디바이스들로 송신될 수 있다.
도 2의 예시된 예시에서, 저장된 콘텐츠(16)는 소스 디바이스(10)의 메모리(미도시) 내에, 인코딩된 미디어 데이터, 즉, 오디오 및/또는 비디오 데이터를 포함할 수 있다. 파서(18)는, 저장된 콘텐츠(16)를 프로세싱하고, 상이한 미디어 스트림들, 즉, 오디오 및/또는 비디오 스트림들을 추출하는데 책임이 있을 수 있다. 디코더(20)는 파서(18)로부터 출력된 미디어 스트림들을 수신하고 스트림들 내에서 미디어 데이터를 디코딩한다. 디코더(20)는, 예를 들어, 비디오 디코더 및 오디오 디코더 둘 다를 포함할 수 있다. 다음으로, 렌더러들(22)은 소스 디바이스(10) 상에서 국부적으로 프리젠테이션하기 위해 디코딩된 미디어 데이터로부터의 콘텐츠, 예컨대, 이미지들 및/또는 사운드를 생산한다. 예를 들어, 렌더러(22)는 로컬 디스플레이(24) 상에서의 프리젠테이션을 위해, 디코딩된 비디오 데이터로부터 이미지들을 생산할 수 있고, 소스 디바이스(10)의 스피커들(미도시) 상에서의 프리젠테이션을 위해 디코딩된 오디오 데이터로부터 사운드를 생산할 수 있다.
파서(18)로부터 출력된 미디어 스트림들은 또한 통신 세션의 일부로서 송신기(TX)(26)를 통해 싱크 디바이스들(12) 중 하나 또는 둘 다에 탭 아웃(tapped out)되고 전송된다. 싱크 디바이스들(12)에서, 수신기들(30)은 소스 디바이스(10)로부터 미디어 스트림들을 수신하고, 디코더(32)는 그 스트림들 내의 미디어 데이터를 디코딩한다. 디코더들(32) 각각은, 예를 들어, 비디오 디코더 및 오디오 디코더 둘 다를 포함할 수 있다. 다음으로, 렌더러들(34)은 개별적인 싱크 디바이스들(12) 상에서의 프리젠테이션을 위해 디코딩된 미디어 데이터로부터 콘텐츠, 예를 들어, 이미지들 및/또는 사운드를 생산한다. 예를 들어, 렌더러들(34)은 디스플레이(36) 상에서의 프리젠테이션을 위해 디코딩된 비디오 데이터로부터 이미지들을 생산할 수 있고, 싱크 디바이스들(12)의 스피커들(미도시) 상에서의 프리젠테이션을 위해 디코딩된 오디오 데이터로부터 사운드를 생산할 수 있다.
동기화되지 않은 프로세싱의 경우, 소스 디바이스(10) 및 싱크 디바이스들(12) 각각은 디스플레이를 위한 프로세싱 이전에 유입하는 미디어 패킷들을 임의적으로 결정된 큐 크기들을 이용하여 캐싱할 수 있다. 소스 디바이스(10) 및 싱크 디바이스들(12) 각각은 미디어 데이터, 즉, 비디오 및/또는 오디오 데이터의 유형에 대해 상이한 큐 크기들을 설정하고, 이에 따라, 서로 다른 시간들에서 미디어 패킷들의 프로세싱을 시작할 수 있다. 이러한 동기화되지 않은 프로세싱은 디바이스들에서 미디어 데이터의 동기화되지 않은 재생을 초래할 수 있다. 예를 들어, 소스 디바이스(10) 및 싱크 디바이스들(12) 각각이 상이한 시간에서 비디오 데이터를 디코딩하고 렌더링하기 시작하면, 재생되는(reproduced) 이미지들은 모든 싱크 디바이스들(12) 및/또는 소스 디바이스(10) 사이에 동기화되지 않을 것이다.
도 3은, 본 개시물의 기법들에 따라서 스트리밍 모드에서 동기화된 통신 세션에 참여할 수 있는 소스 디바이스(40A) 및 싱크 디바이스들(42A-42B)("싱크 디바이스들(42)")을 포함하는 WD 시스템을 예시하는 블록도이다. 소스 디바이스(40A)는, 소스 디바이스(40A) 및 참여중인 싱크 디바이스들(42)이 미디어 데이터의 유형에 대해 동일한 유니버셜 큐 크기를 이용하도록, 통신 세션을 조정하는 세션 매니저(41)를 포함한다. 또한, 소스 디바이스(40A) 및 싱크 디바이스들(42) 각각은, 유니버셜 큐 크기를 갖는 개별적인 큐가 꽉 찬 것으로 검출하면 패킷 프로세싱을 트리거하는 큐 모니터를 포함한다. 이러한 방식으로, 소스 디바이스(40A) 및 싱크 디바이스들(42)은 개별적인 디바이스들에서 미디어 데이터의 동기화된 재생을 생산하도록 동기화하여 미디어 패킷들을 프로세싱한다.
도 3의 예시된 예시에서, 도 2로부터의 소스 디바이스(10)와 유사한 소스 디바이스(40A)는 저장된 콘텐츠(16), 파서(18), 디코더(20), 렌더러(22), 로컬 디스플레이(24) 및 송신기(TX)(26)를 포함한다. 설명된 기법들에 따르면, 소스 디바이스(40A)는 또한 세션 매니저(41), 큐 모니터(43), 및 유니버셜 큐 크기를 갖는 소스 큐(44)를 포함한다. 도 2로부터의 싱크 디바이스들(12)과 유사한 싱크 디바이스들(42)은, 수신기들(30), 디코더들(32), 렌더러들(34), 및 디스플레이들(36)을 포함한다. 싱크 디바이스들(42)은 세션 매니저들(45A-45B)("세션 매니저들(45)"), 큐 모니터들(47A-47B)("큐 모니터들(47)"), 및 유니버셜 큐 크기를 갖는 싱크 큐들(46A-46B)("큐들(46)")을 더 포함한다.
설명을 목적으로, 통신 세션은 WD 시스템에 대한 솔루션들을 이용하여 소스 디바이스(40A)에 의해 셋업되는 것으로 가정될 수 있다. 예를 들어, 소스 디바이스(40A) 및 싱크 디바이스들(42A-42B)은 통신 세션에 참여하는 디바이스들을 식별하기 위해 디바이스 발견을 수행한다.
통신 세션이 확립되면, 소스 디바이스(40A)에서의 세션 매니저(41)는 통신 세션 동안 참여중인 디바이스들 모두에서 사용하기 위한 유니버셜 큐 크기를 선택한다. 몇몇 예시들에서, 세션 매니저(41)는 싱크 디바이스들(42)에서 지원되는 큐 크기들을 결정하기 위해 싱크 디바이스들(42)에서 세션 매니저들(45) 각각에 질의할 수 있다. 그 경우에, 세션 매니저(41)는 소스 디바이스(40A) 및 싱크 디바이스들(42)에서 지원되는 큐 크기들에 기초하여 유니버셜 큐 크기를 선택할 수 있다. 다른 예시들에서, 소스 디바이스(40A)는 유니버셜 큐 크기를 임의적으로 선택할 수 있다. 다음으로, 소스 디바이스(40A)의 세션 매니저(41)는 그 자신의 미디어 프로세싱 파이프라인 및 싱크 디바이스들(42)의 세션 매니저들(45)에게 유니버셜 큐 크기를 통지한다. 유니버셜 큐 크기 값은 미리-결정된 방식, 예를 들어, 지속시간(time duration), 프레임들의 수, 등으로 제시될 수 있다. 유니버셜 큐 크기 선택 프로세스는 도 5에서 더욱 상세하게 설명된다. 다음으로, 소스 디바이스(40A)의 세션 매니저(41)가 싱크 디바이스들(42)과의 미디어 세션들을 개시할 수 있다.
상이한 성능들 및 프로세싱 딜레이들을 갖는 상이한 디바이스들 사이에서의 동기화를 보장하기 위한 유니버셜 큐 크기를 선택하는 것에 더해, 세션 매니저(41)는 또한 싱크 디바이스들(42) 각각에서 이용하기 위해 트리거 딜레이를 포함하는 딜레이 인터벌 값들을 계산할 수 있다. 트리거 딜레이는 소스 디바이스(40A)로부터 싱크 디바이스들(42) 각각으로의 미디어 패킷들의 상이한 송신 시간들을 고려하고, 싱크 큐가 꽉 찬 것으로 검출하는 것과 싱크 큐 내의 미디어 패킷들의 프로세싱을 시작하는 것 사이에 대기 시간을 부여한다. 이러한 방식으로, 참여중인 디바이스들은, 디바이스들 각각에서의 큐들이 꽉 찰 때까지, 미디어 패킷들의 프로세싱을 시작하지 않을 것이다. 예시의 방법으로, 싱크 디바이스들 각각은 그들의 개별적인 트리거 딜레이 인터벌에 대해 통지받을 수 있다. 예를 들어, 소스 디바이스(40A)에서의 송신 시간과 같은 딜레이 인터벌들, 소스 디바이스(40A)와 싱크 디바이스들(42) 각각 사이의 전파 딜레이, 및 싱크 디바이스들(42) 각각에서의 수신 딜레이를 확인하는 것이 중요할 수 있다. 이러한 파라미터들 각각은 이하 설명되는 바와 같이 측정되거나 다른 수단들 또는 방법들을 이용하여 도출될 수 있다. 소스 디바이스(40A)에서의 송신 시간 파라미터("TxTime")는 소스 디바이스(40A)에서 데이터 패킷들을 송신하기 위한 프로토콜 스택 프로세싱 시간을 나타낸다. 더욱 구체적으로, TxTime은, 응용 계층이 전송 계층에 페이로드를 제출하는 시간과 그 페이로드 내의 데이터가 물리 계층(예컨대, Wi-Fi 계층)에 의해 프로세싱되는 시간 사이의 시간을 나타낸다. 소스 디바이스(40A)의 응용은, 예를 들어, 로컬호스트(localhost) 어드레스를 이용하여 자신에게 페이로드를 전송함으로써 루프백 송신 시간을 측정할 수 있다. 대안적으로, 루프백 송신 시간은 프로토콜 스택에 질의될 수 있다. 어느 경우든:
TxTime = 루프백 송신 시간/2
이다.
전파 딜레이 파라미터는, 소스 디바이스(40A)와 통신하는 싱크 디바이스들(42) 각각까지의 소스 디바이스(40A)의 근접도에 의존한다. WD 시스템의 경우, 전파 딜레이는, 예를 들어, 경험할 인간 사용자에 대해서는, 몇 백 피트 당 몇 마이크로초로 통상적으로 매우 작다. 따라서, 전파 딜레이 파라미터는 본 개시물의 계산들에서 무시될 수 있다.
싱크 디바이스들(42) 각각에서의 수신 딜레이 파라미터("RxDelay")는 싱크 디바이스들(42) 각각에서 미디어 패킷들을 수신하기 위한 프로토콜 스택 프로세싱 시간을 나타낸다. 소스 디바이스(40A)는 후술하는 예시적인 방법을 이용하여 싱크 디바이스들(42) 각각에서의 RxDelay를 계산할 수 있다. 소스 디바이스(40A)에서의 응용은, 예를 들어, 싱크 디바이스(42A)에 페이로드를 송신한다. 싱크 디바이스(42A)에서의 동등한 응용은 소스 디바이스(40A)에 동일한 페이로드를 다시 송신한다. 이는, 소스 디바이스(40A)에서의 응용으로 하여금 왕복 딜레이를 측정하도록 허용한다. 대안적으로, 왕복 딜레이 시간은 수신 스택에 대한 프로세싱 시간을 나타내기 때문에, 이는 싱크 디바이스(42A)에 질의될 수 있다. 어떤 경우든:
TxDelay (일 방향 딜레이) = 왕복 딜레이/2, 및
RxDelay (싱크 디바이스에서) = TxDelay - TxTime.
본 개시물에서 유니버셜 큐 크기 및 트리거 딜레이들을 계산하는데 이용되는 추가적인 파라미터들은: 소스 디바이스(40A)에서 지원되는 최대 큐 크기를 나타내는 MaxSyncQSize; 특정한 통신 세션에 대해 싱크 디바이스들(42) 각각에서 지원되는 큐 크기를 나타내는 SupportedSinkQSize; 및 비디오 데이터에 대한 프레임 레이트에 의해 결정될 수 있는, 소스 디바이스(40A)에서의 패킷 생성 레이트를 나타내는 PktRate를 포함한다. TriggerDelay는, 싱크 디바이스들(42) 각각에서 유니버셜 큐 크기를 갖는 싱크 큐가 꽉 찬 이후, 그러나 싱크 큐에 홀딩된 패킷들의 프로세싱을 시작하도록 디코더를 트리거하기 전의 대기 시간을 나타낸다. SelectedOptimalQueueSize는 통신 세션에 참여할 모든 디바이스들에 대해 소스 디바이스(10)에 의해 선택된 유니버셜 큐 크기를 나타낸다.
소스 디바이스(40A)는, 확립되는 통신 세션의 유형에 따라 유니버셜 큐 크기를 계산하기 위해 상이한 방법들을 적용할 수 있다. 첫 번째 경우, 소스 디바이스(40A)는 오직 하나의 싱크 디바이스, 예컨대, 싱크 디바이스(42A)와의 통신 세션을 확립한다. 소스 디바이스(40A)는 통신 세션을 위해 소스 디바이스(40A) 및 싱크 디바이스(42A)에 의해 이용될 유니버셜 큐 크기를, 아래와 같이 되도록 선택한다.
MaxSyncQSize-(PktRate*TxDelay)-UniversalQueueSize >= 0, 및
UniversalQueueSize<=SupportedSinkQSize
두 번째 경우, 소스 디바이스(40A)는 다수의 싱크 디바이스들(1, 2,...,n), 예를 들어, 싱크 디바이스들(42) 둘 다와의 멀티캐스트 통신 세션을 확립한다. 소스 디바이스(40A)는 멀티캐스트 통신 세션을 위해 소스 디바이스(40A) 및 싱크 디바이스들(42)에 의해 이용될 유니버셜 큐 크기를, 아래와 같이 되도록 선택한다.
RxDelay allDevices =max(RxDelay 1 , RxDelay 2 , ... , RxDelay n ),
SupportedSinkQSize min =min( SupportedSinkQSize 1 , SupportedSinkQSize 2 ,... SupportedSinkQSizen) (여기서, SupportedSinkQSize i 는 싱크 디바이스 i에 의해 지원되는 큐 크기임)
MaxSyncQSize-(PktRate*RxDelay allDevices )-UniversalQueueSize >= 0,
UniversalQueueSize<= SupportedSinkQSize min
세 번째 경우, 소스 디바이스(40A)는 다수의 싱크 디바이스들(1, 2,..., n), 예를 들어, 싱크 디바이스들(42) 각각과의 다수의 유니캐스트 통신 세션들을 확립한다. 통신 세션을 셋업하는데 관심 있는 싱크 디바이스들(42) 각각으로부터 SupportedSinkQSize를 수신하면, 소스 디바이스(40A)는, 싱크 디바이스들(42) 중 가장 큰 SupportedSinkQSize를 갖는 싱크 디바이스(42)가 미디어 스트림의 첫 번째 수신측이 되고, 싱크 디바이스들(42) 중 두 번째로 큰 SupportedSinkQSize를 갖는 싱크 디바이스(42)가 미디어 스트림의 두 번째 수신측이 되는 식으로 송신 스케줄을 분류한다. 송신 스케줄을 결정한 후, 소스 디바이스(40A)는 싱크 디바이스들 각각(i=1, 2, ... n)에 대한 TriggerDelay i 를 계산한다. 싱크 디바이스들(42) 각각에 대한 트리거 딜레이들의 계산은 이하 더욱 상세하게 설명된다.
다음으로, 소스 디바이스(40A)는, 아래와 같이, 싱크 디바이스들(42)에서의 최소 지원되는 큐 크기를 결정한다:
SupportedSinkQSize min =min((SupportedSinkQSize 1 -(PktRate*TriggerDelay 1 )), (SupportedSinkQSize2-(PktRate*TriggerDelay2)),...(SupportedSinkQSizen-(PktRate*TriggerDelayn))).
이러한 경우, SupportedSinkQSize min 는 오직 (SupportedSinkQSizei-(PktRate*TriggerDelayi))>0인 싱크 디바이스들 i에만 기초하여 계산된다. (SupportedSinkQSize i -(PktRate*TriggerDelay i ))<0인 임의의 싱크 디바이스 i는, (SupportedSinkQSize x -(PktRate*TriggerDelay x ))>0인 임의의 싱크 디바이스 x와 동일한 통신 세션의 일부가 아닐 수 있다. 다음으로, 소스 디바이스(40A)는 아래와 같이 되도록 유니캐스트 통신 세션들을 위해 소스 디바이스(40A) 및 싱크 디바이스들(42)에 의해 이용될 유니버셜 큐 크기를 선택하며:
MaxSyncQSize-(PktRate * TriggerDelay source )-UniversalQueueSize>=0, 여기서 TriggerDelay source 는 미디어 스트림의 마지막 수신측인 싱크 디바이스에 대한 TxDelay와 동일하고, UniversalQueueSize<=SupportedSinkQSize min 이다.
이에 따라, 싱크 디바이스들 각각에 그들의 개별적인 트리거 딜레이 인터벌에 대해 통지하는 것이 가능할 수 있다.
도 3에 예시된 바와 같이, 세션 매니저(41)에 의해 선택된 유니버셜 큐 크기에 기초하여, 소스 디바이스(40A)의 미디어 프로세싱 파이프라인은 파서(18)와 디코더(20) 사이에, 유니버셜 큐 크기를 갖는 소스 큐(44)를 생성한다. 유사하게, 싱크 디바이스들(42)의 미디어 프로세싱 파이프라인들은 또한 수신기들(30)과 디코더들(32) 사이에 유티버셜 큐 크기를 갖는 싱크 큐들(46)을 생성한다. 몇몇 예시들에서, 추가적인 큐가, 소스 디바이스(40A)의 디코더(20)와 렌더러(22) 사이에 그리고 싱크 디바이스들(42)의 디코더들(32)과 렌더러들(34) 사이에 생성될 수 있다. 이러한 경우, 앞서 설명된 큐 크기 선택 프로세스들의 일부로서, 소스 디바이스(40A)의 세션 매니저(41)는 또한 디코더와 렌더러 사이의 추가적인 큐에 대한 유니버셜 큐 크기로서 선택할 수 있다.
유니버셜 큐 크기를 갖는 소스 큐(44)가 생성되면, 파서(18)는 저장된 콘텐츠(16)를 프로세싱하고 상이한 미디어 스트림들, 즉, 오디오 및/또는 비디오 스트림들을 추출한다. 유니버셜 큐 크기는 일반적으로 디스플레이될 비디오에 대한 시간량 또는 프레임들의 수에 기초할 수 있다. 예를 들어, 몇몇 디바이스들에서, 500 내지 2500밀리초의 비디오가 저장될 수 있다. 이러한 비디오를 저장하기 위한 수많은 상이한 유니버셜 큐 크기들, 예를 들어, 0.01Mb 내지 10,000Mb, 0.1Mb 내지 1,000Mb, 또는 1Mb 내지 100Mb가 가능하다. 추가적으로, 특정한 시스템에 대한 큐 크기는 그 시스템에 의해 이용되는 비디오의 특성들에 기초하여 변할 수 있다.
소스 디바이스(40A)의 큐 모니터(43)는 미디어 패킷들을 소스 큐(44)에 전송하도록 파서(18)와 조정한다. 다음으로, 소스 큐(44)는 소스 디바이스(40A)의 미디어 프로세싱 파이프라인에 의한 추가적인 프로세싱 이전에 파서(18)로부터 출력된 미디어 패킷들을 홀딩한다. 데이터 패킷들, 예컨대, 미디어 패킷들은, 또한 통신 세션의 일부로서 싱크 디바이스들(42) 각각에 전송된다. 싱크 디바이스들(42)에서, 큐 모니터들(47)은 유니버셜 큐 크기를 갖는 싱크 큐들(46)에 미디어 패킷들을 전송하도록 수신기들(30)과 조정한다. 싱크 큐들(46)은 싱크 디바이스들(42)의 미디어 프로세싱 파이프라인에 의한 임의의 추가적인 프로세싱 이전에 소스 디바이스(40A)로부터 수신된 미디어 패킷들을 홀딩한다.
소스 디바이스(40A) 및 싱크 디바이스들(42)은 확립된 통신 세션의 유형에 따라 상이한 방법들을 적용함으로써 동기화된 패킷 프로세싱을 달성할 수 있다.
첫 번째 경우, 통신 세션이 소스 디바이스(40A)와 오직 하나의 싱크 디바이스, 예컨대, 싱크 디바이스(42A) 사이에서 확립된다. 싱크 디바이스(42A)의 큐 모니터(47A)가 싱크 큐(46A)가 완전히 꽉 찬 것으로 검출하면, 큐 모니터(47A)는 싱크 디바이스(42A)에 대한 TriggerDelay 인터벌 이후에 싱크 큐(46A) 내의 미디어 패킷들의 프로세싱을 시작하도록 디코더(32A)를 트리거한다. 일반적으로, TriggerDelay 인터벌은, 싱크 큐(46A)가 꽉 찬 것으로 검출하지만 미디어 패킷들의 프로세싱을 시작하기 전의 그 사이의 대기시간을 나타낸다. 오직 싱크 디바이스(42A)와의 통신 세션이 확립되는 첫 번째 경우, 디코더(32A)가 싱크 큐(46A)가 꽉 차자 마자 미디어 패킷들의 프로세싱을 시작할 수 있기 때문에, TriggerDelay 인터벌 값은 0과 동일하다.
반면에, 소스 디바이스(40A)는, 미디어 패킷들의 프로세싱을 시작하기 위해 싱크 디바이스(42A)의 싱크 큐(46A)가 미디어 패킷들로 꽉 찰 때까지 대기한다. 소스 디바이스(40A)의 큐 모니터(43)가, 소스 큐(44)가 완전히 꽉 찬 것으로 검출하는 경우, 큐 모니터(43)는 TxDelay, 즉, 소스 디바이스(40A)로부터 싱크 디바이스(42A)로의 송신 시간 이후에 소스 큐(44) 내의 미디어 패킷들의 프로세싱을 시작하도록 디코더(20)를 트리거한다. 이러한 방식으로, 큐 모니터(43)는, 소스 디바이스(40A) 및 싱크 디바이스(42A)가 미디어 패킷들의 프로세싱을 동시에 시작하도록 보장한다.
두 번째 경우, 멀티캐스트 통신 세션이 소스 디바이스(40A)와 다수의 싱크 디바이스들(1, 2, ... n), 예를 들어, 싱크 디바이스들(42) 둘 다 사이에 확립된다. 첫 번째 경우에서 앞서 설명된 것과 같이 동기화된 패킷 프로세싱을 달성하는 동일한 방법이 두 번째 경우에 대해서도 이용될 수 있다. 멀티캐스트 통신 세션 동안, 싱크 디바이스들(42) 각각에 대한 TriggerDelay 인터벌 값이 0과 동일하도록, 싱크 디바이스들(42) 모두는 소스 디바이스(40A)로부터 미디어 패킷들을 동시에 수신할 것이다. 또한, 싱크 디바이스들(42)에 대한 TxDelay 인터벌 값들은 모두 동일하다. 이 경우, 싱크 큐들(46)은 동시에 미디어 패킷들로 꽉 찰 것이며, 디코더들(32) 각각은 개별적인 싱크 큐들(46)이 꽉 차자 마자 미디어 패킷들의 동기화된 프로세싱을 시작할 수 있다. 소스 디바이스(40A)는 싱크 디바이스들(42)과의 동기화된 프로세싱을 시작하기 전에 TxDelay 시간을 대기한다. TxDelay의 값에서 몇몇 인자들 중 하나는 한 방향 딜레이 또는 왕복 딜레이를 2로 나눈 것이다.
한 방향 딜레이 또는 왕복 딜레이를 2로 나눈 것은, 하드웨어 및 소프트웨어 계층들에 의해 도입된 거리 및 프로세싱 딜레이에 의존한다. 이에 따라, TxDelay는 하드웨어 및 소프트웨어 계층들에 의해 도입된 프로세싱 딜레이에 의해 크게 영향을 받는다. 상이한 디바이스들은 상이한 성능들을 갖는다. 수많은 상이한 딜레이들이 가능하다는 것이 이해될 것이다.
추가적으로, 소스 디바이스(40B)에서의 TxDelay 값들은 싱크 디바이스의 프로세싱 성능들에 의존할 수 있다. 이에 따라, 프로세싱 속도는 TxDelay를 계산하는데 있어서의 인자이다. 싱크 디바이스의 프로세싱 성능에 의존하여, 프로세싱 시간은, 예를 들어, 1 밀리초 내지 20 밀리초의 어느 시간만큼, 그리고 프로세싱 전력에 따라 일부 싱크 디바이스들에 대해서는 아마도 더 긴 시간만큼 TxDelay 값들에 영향을 줄 수 있다. 다른 시스템들은 1 밀리초 내지 100 밀리초의 디코딩 딜레이들을 가질 수 있다. 몇몇 시스템들에서, 통상적인 TxDelay는 300 마이크로초 내지 1500 마이크로초로 변할 수 있다.
세 번째 경우, 다수의 유니캐스트 통신 세션들이 소스 디바이스(40A)와 다수의 싱크 디바이스들(1, 2,...n), 예를 들어, 싱크 디바이스들(42) 둘 다 사이에서 확립된다. 소스 디바이스(40A)로부터 싱크 디바이스들(1, 2,...n) 각각으로의 한 방향 송신 딜레이는 각각 TxDelay 1 , TxDelay 2 ,... TxDelay n 이다. 유사하게, 싱크 디바이스들 각각에서의 수신 딜레이는 RxDelay 1 , RxDelay 2 ,... RxDelay n 이다. 소스 디바이스(40A)의 세션 매니저(41)는, 통신 세션들에 참여하는 싱크 디바이스들(42) 각각에 대한 TriggerDelay를 계산한다. 싱크 디바이스들(42) 중 각각의 디바이스가, 미디어 패킷들의 프로세싱을 시작하기 위해 나머지 싱크 디바이스들(42)의 싱크 큐들(46)이 미디어 패킷들로 꽉 찰 때까지 대기하도록, 싱크 디바이스들(42) 각각에 대한 TriggerDelay가 계산된다.
소스 디바이스(40A)는 이하의 순서: 싱크 디바이스 n, 싱크 디바이스 n-1, ...싱크 디바이스 2, 및 싱크 디바이스 1의 순서로 싱크 디바이스들에 미디어 패킷들의 페이로드를 전송할 수 있다. 그후, 소스 디바이스(40A)의 세션 매니저(41)는 TriggerDelay x = RxDelay 1 + RxDelay 2 +...+RxDelay x -1 과 같이 싱크 디바이스 x의 TriggerDelay 값을 계산한다. 예를 들어, 소스 디바이스(40A)는 0의 수신 딜레이를 갖고 싱크 디바이스(42A)에 미디어 패킷들을 먼저 전송한 후, 대략적으로 5 밀리초(ms)의 수신 딜레이를 갖고 싱크 디바이스(42B)에 미디어 패킷들을 두 번째로 전송할 수 있다. 다음으로, 세션 매니저(41)는, 싱크 디바이스(42A)에 대한 TriggerDelay 값을, 싱크 디바이스(42B)의 RxDelay , 즉, 5ms와 동일하게 계산할 수 있고, 싱크 디바이스(42B)에 대한 TriggerDelay 값을, 0과 동일하게 계산할 수 있다. 소스 디바이스(40A)의 세션 매니저(41)는, 통신 세션 셋업 이전 또는 동안 싱크 디바이스들(42) 각각에 관련 TriggerDelay를 통지한다.
소스 디바이스(40A)의 세션 매니저(41)는 또한 로컬 소스 TriggerDelay 값을 계산한다. 소스 디바이스(20A)의 TriggerDelay 값은, 미디어 스트림의 마지막 수신측인 싱크 디바이스에 대한 TxDelay와 동일하게 설정된다. 이러한 예시에서, 미디어 패킷들의 마지막 수신측은 싱크 디바이스 1이어서, TriggerDelay source = TxDelay 1이 된다. 이러한 방식으로, 소스 디바이스(40A)는, 미디어 패킷들의 프로세싱을 시작하기 위해 싱크 디바이스들(42)의 모든 싱크 큐들(46)이 미디어 패킷들로 꽉 찰 때까지 대기한다. 이러한 기법들에 따르면, TriggerDelay 값들은 소스 디바이스(40A) 및 싱크 디바이스들(42) 각각에서 테일러링(tailor)되고 왜곡(skew)된다. 이러한 방식으로, 소스 디바이스(40A) 및 모든 싱크 디바이스(42)는 미디어 데이터의 동기화된 재생을 제공하기 위해 미디어 패킷들의 프로세싱을 동시에 시작할 것이다. 이에 따라, 참여중인 디바이스들 모두는 임의의 주어진 시간 순간에 동일한 비디오 프레임을 디스플레이할 것이다.
앞서 설명된 세 번째 경우에서, 유니버셜 큐 크기 결정 동안, 세션 매니저(41)는, 싱크 디바이스들 각각에서 지원되는 큐 크기들에 기초하는 것에 그치지 않고, 모든 싱크 디바이스들(42)에 걸친 최소 지원되는 큐 크기, SupportedSinkQSize min 을 계산한다. 최소 지원되는 큐 크기는, 또한 싱크 디바이스들 각각에 대한 TriggerDelay 인터벌을 고려한다. 이러한 추가적인 파라미터는, 싱크 디바이스들 중 어느 것도 TriggerDelay 인터벌 동안 대기하면서 다음으로 유입하는 미디어 패킷을 놓치지 않을 것임을 보장한다.
예를 들어, 소스 디바이스(40A)는 설정된 패킷 레이트에 따라 싱크 디바이스(42)에 미디어 패킷들을 전송한다. 1초(또는 심지어 그 미만)마다 15개의 패킷들에서부터 2초 또는 그 초과마다 1,000개의 패킷들까지의 매우 다양한 패킷 레이트들이 이용될 수 있다. 이 패킷 레이트는 일반적으로 패킷 크기 및 데이터 레이트에 의존할 수 있다. 몇몇 시스템들에 대한 통상적인 패킷 레이트들은 초당 15-60개의 패킷들일 수 있다. 그러나, 싱크 큐들이 꽉 채워지면, 패킷 프로세싱이 싱크 큐들 내에 추가적인 미디어 패킷들에 대한 공간(space)를 만들기 시작할 때까지, 싱크 디바이스들(42)은 임의의 추가적인 미디어 패킷들을 수신할 수 없다. 몇몇 경우들에서, 송신 스케쥴의 초반에 또는 그 즈음에 있는 싱크 디바이스들은, 싱크 큐가 꽉 찬 것으로 검출하는 것과 패킷 프로세싱을 시작하는 것 사이의 긴 TriggerDelay 인터벌들 동안 대기해야할 수 있다. 이러한 싱크 디바이스들은, 싱크 큐들 내에 유입하는 패킷들을 홀딩할 어떠한 공간도 존재하지 않으면, 긴 딜레이 동안 유입하는 패킷들을 놓칠 위험에 있을 수 있다. 패킷 레이트는 통신 세션에 대한 비트 레이트에 기초할 수 있다. 몇몇 디바이스들에 대한 예시의 비트 레이트들은, 400Kbps의 절대 최소 비트 레이트, 4Mbps의 시작 비트 레이트 및 10Mbps의 절대 최대 비트 레이트일 수 있지만, 이에 한정되지 않는다. 비트 레이트들은, 이용될 수 있는 비디오 포맷에 영향을 줄 수 있고, 예를 들어, 표 1을 참조한다.
Figure pat00001
패킷 손실들을 회피하기 위해, 세션 매니저(41)는, 앞서 설명된 바와 같이, TriggerDelay 인터벌들을 고려하여 최소 지원되는 큐 크기를 계산한다. 이러한 최소 지원되는 큐 크기는, 세션 매니저(41)가 모든 싱크 디바이스들(42)에 걸쳐 지원되는 가장 작은 큐 크기보다 더 작게 되도록 유니버셜 큐 크기를 선택하도록 보장한다. 예시로서, 싱크 디바이스들 모두가 최소 5의 큐 크기를 지원하는 경우, 유니버설 큐 크기를 4와 동일하게 선택함으로써, 싱크 디바이스들 모두는 TriggerDelay 인터벌 동안 임의의 유입하는 미디어 패킷들을 홀딩하기 위한 공간을 자신의 큐들 내에 가질 것이다.
일 예시에서, 통신 세션 동안 떠나거나 싱크 디바이스(42)의 하나 또는 그 초과가 떨어져 나갈(drop out) 수 있다. 소스 디바이스(40A)는 싱크 디바이스들(42) 중 떠난 디바이스에 미디어 패킷들을 송신하는 것을 중지할 것이다. 소스 디바이스(40A) 및 나머지 싱크 디바이스들(42)에서의 패킷 프로세싱이 계속해서 동기화되고 계속해서 패킷 손실들을 회피하도록 보장하기 위해, 소스 디바이스(40A)는 떠난 싱크 디바이스에 미디어 패킷을 송신하는 대신, 소스 디바이스(40A)에서 TxTime, 즉, 송신 시간 동안 정지한다(pause). 정지 이후에, 소스 디바이스(40A)는 떠난 싱크 디바이스 뒤에 패킷들을 수신하도록 스케쥴링된 싱크 디바이스들로의 미디어 패킷들의 송신을 재개한다. 이러한 방식으로, 송신 스케줄을 재구성(reconfigure)하거나 또는 싱크 디바이스들(42) 각각에 대한 TriggerDelay 값들을 재계산할 필요 없이, 싱크 디바이스가 통신 세션을 떠난 후에, 미디어 데이터의 동기화된 재생을 계속할 수 있다.
다른 예시에서, 통신 세션 동안 싱크 디바이스들(42) 중 하나 또는 그 초과가 조인할 수 있다. 예를 들어, 싱크 디바이스 n+1이 통신 세션에 조인하는 경우, 소스 디바이스(40A)의 세션 매니저(41)는 수신측 리스트의 상부에 싱크 디바이스 n+1을 부가한다. 다음으로, 소스 디바이스(40A)는 임의의 다른 싱크 디바이스들(42)에 미디어 패킷들을 전송하기 전에 새로운 싱크 디바이스 n+1에 그 미디어 패킷을 전송한다. 또한, 세션 매니저(41)는, 새로운 싱크 디바이스 n+1을 포함하는 모든 디바이스들에서 미디어 데이터의 동기화된 재생을 보장하기 위해 새로운 싱크 디바이스 n+1에 대한 TriggerDelay 값을 계산한다:
TriggerDelay n+1 = RxDelay 1 +RxDelay 2 +...RxDelay n .
이에 따라, 트리거 딜레이는, 시스템 내에 얼마나 많은 싱크 디바이스들이 존재하는지에 그리고 이 싱크 디바이스들이 스케쥴링되는 순서에 의존한다. 통상적인 값들은, 예를 들어, <= 2.4에 오직 하나의 싱크 디바이스만 존재하는 경우의 0 밀리초에서, 세션 내에 참여할 8개의 싱크 디바이스들이 존재하는 경우의 12 밀리초까지의 범위일 수 있다.
수신측 리스트의 상부에 새로운 싱크 디바이스 n+1을 부가함으로써, 새로운 싱크 디바이스는, 모든 다른 싱크 디바이스들(42)의 싱크 큐들(46)이 꽉 찰 때까지 대기하는 것이 필요하기 때문에, 가장 긴 TriggerDelay 인터벌을 가질 것이다. TriggerDelay 인터벌들은, 새로운 싱크 디바이스 n+1 이후의 송신 스케줄링 순서가 동일하게 유지되기 때문에, 후속 싱크 디바이스들(42)에 대해 동일하게 유지된다. 이러한 방식으로, 기존의 싱크 디바이스들(42)에 대한 TriggerDelay 값들을 재계산할 필요가 없으면서, 새로운 싱크 디바이스가 통신 세션에 조인한 이후에, 미디어 데이터의 동기화된 재생이 계속될 수 있다. 새로운 싱크 디바이스 n+1이 통신 세션에 부가되면, 새로운 싱크 디바이스는 소스 디바이스(40A)로부터 미디어 패킷들을 수신하기 시작한다. 새로운 싱크 디바이스의 싱크 큐가 꽉 차면, 새로운 싱크 디바이스는, WD 시스템에서 모든 다른 디바이스들과 동기화하여 TriggerDelay 인터벌 이후에 미디어 패킷들의 프로세싱을 시작한다.
몇몇 경우들에서, 통신 세션의 미디어 콘텐츠 유형 또는 WD 시스템의 레이턴시 니즈(needs)에 기초하여, 소스 디바이스(40A)의 세션 매니저(41)는 TriggerDelay 값들 및/또는 유니버셜 큐 크기를 0 또는 매우 작은 수로 설정할 수 있다. 다른 경우들에서, 소스 디바이스(40A)가 싱크 디바이스들(42) 중 하나 또는 그 초과와의 액티브 통신 세션에 있지 않은 경우, 소스 디바이스(40A)는 소스 디바이스(40A)에서 로컬 응답 시간을 개선하기 위해 소스 큐(44)를 줄이고 그리고/또는 바이패스할 수 있다. 이러한 경우, 소스 디바이스(40A)에서의 미디어 패킷은 파서(18)에서 디코더(20)로 직접 이동할 수 있고, 싱크 디바이스들(42)에서 수신된 미디어 패킷들이 수신기들(30)에서 디코더들(32)로 직접 이동할 수 있다.
다른 예시에서, 유니캐스트 통신 세션은 소스 디바이스(40A)와 싱크 디바이스들(42) 각각 사이에 확립될 수 있다. 이러한 경우, 소스 디바이스(40A)의 세션 매니저(41)는 통신 세션에 참여하는 싱크 디바이스들(42) 각각에 대한 TriggerDelay를 계산한다. 예를 들어, 소스 디바이스(40A)의 세션 매니저(41)는 싱크 디바이스 x의 TriggerDelay 값을 TriggerDelay x = RxDelay 1 + RxDelay 2 +...+ RxDelay x -1 로서 계산하고, 여기서 RxDelay x 는 싱크 디바이스 x에서의 수신 딜레이이다. 데이터 패킷들의 프로세싱을 시작하기 위해 싱크 디바이스들 모두의 싱크 큐들이 데이터 패킷들로 꽉 찰 때까지 싱크 디바이스들 각각이 대기하도록, 싱크 디바이스들(42) 각각에 대한 TriggerDelay가 계산된다. 소스 디바이스(40A)의 세션 매니저(41)는 통신 세션 셋업 이전 또는 동안 싱크 디바이스들(42) 각각에 관련 TriggerDelay를 통지한다.
또한, 소스 디바이스(40A)의 세션 매니저(41)는 로컬 소스 TriggerDelay 값을 계산한다. 소스 디바이스(20A)의 TriggerDelay 값은 미디어 스트림의 마지막 수신측인, 싱크 디바이스에 대한 송신 딜레이와 동일하게 설정된다. 이러한 방식으로, 소스 디바이스(40A)는, 데이터 패킷들의 프로세싱을 시작하기 위해 싱크 디바이스들(42)의 싱크 큐들(46) 모두가 데이터 패킷들로 꽉 찰 때까지, 대기한다. 이러한 기법들에 따르면, TriggerDelay 값들은 싱크 디바이스들(42) 각각 및 소스 디바이스(40A)에서 테일러링되고 왜곡된다. 이러한 방식으로, 소스 디바이스(40A) 및 싱크 디바이스들(42) 모두는 미디어 데이터의 동기화된 재생을 제공하기 위해 미디어 패킷들의 프로세싱을 동시에 시작할 것이다.
싱크 디바이스(42A)의 큐 모니터(47A)가, 싱크 큐(46A)가 완전히 꽉 찬 것으로 검출하는 경우, 큐 모니터(47A)는 싱크 디바이스(42A)에 대한 계산된 TriggerDelay 인터벌 이후에 싱크 큐(46A) 내에서 미디어 패킷들의 프로세싱을 시작하도록 디코더(32A)를 트리거한다. 일반적으로, TriggerDelay 인터벌은, 싱크 큐(46A)가 꽉 찬 것으로 검출하지만 미디어 패킷들의 프로세싱을 시작하기 전 사이의 대기 시간을 나타낸다. 싱크 디바이스(42B)는 싱크 디바이스(42B)에 대한 계산된 TriggerDelay 인터벌에 기초하여 유사하게 동작한다. 소스 디바이스(40A)는, 데이터 패킷의 프로세싱을 시작하기 위해 싱크 디바이스(42A)의 싱크 큐(46A) 및 싱크 디바이스(42B)의 싱크 큐(46B) 모두가 데이터 패킷들로 꽉 찰 때까지 대기한다. 소스 디바이스(40A)의 큐 모니터(43)가, 소스 큐(44)가 완전히 꽉 찬 것으로 검출하는 경우, 큐 모니터(43)는 로컬 소스 TxDelay 이후에 소스 큐(44) 내의 데이터 패킷들의 프로세싱을 시작하도록 디코더(20)를 트리거한다. 이러한 방식으로, 큐 모니터(43)는, 소스 디바이스(40A) 및 싱크 디바이스(42)가 미디어 패킷들의 프로세싱을 동시에 시작하는 것으로 보장한다.
다른 예시들에서, 본 개시물의 기법들은, 통신 세션들의 상이한 유형들, 예컨대, 오직 하나의 싱크 디바이스와의 유니캐스트 통신 세션들 또는 멀티캐스트 통신 세션들에 적용될 수 있다. 이러한 경우들에서, 기법들은 앞서 설명된 바와 실질적으로 유사하지만, 변형된 딜레이 인터벌 계산들을 통해서 동작할 수 있다. 예를 들어, 멀티캐스트 경우에서, 모든 싱크 디바이스들은 소스 디바이스로부터 데이터 패킷들을 동시에 수신할 것이며, 이에 따라 상이한 싱크 디바이스들에 대해 어떠한 트리거 딜레이도 계산되지 않는다. 유사하게, 단일의 유니캐스트 경우에서, 소스 디바이스로부터 데이터 패킷들을 수신하는 오직 하나의 싱크 디바이스만 존재하여, 이에 따라 단일의 싱크 디바이스에 대해 어떠한 트리거 딜레이도 계산되지 않는다.
기법들은 또한 모든 디바이스들에서 동기화된 재생을 달성하기 위해 소스 디바이스(40A)와 싱크 디바이스들(42) 각각 사이의 시간 오프셋을 고려할 수 있다. 예를 들어, 소스 디바이스(40A)의 세션 매니저(41)는 소스 디바이스(40A)와 싱크 디바이스들(42) 각각 사이의 시간 오프셋뿐만 아니라 송신 딜레이를 측정하기 위해 RTCP(Real-time Transport Control Protocol)을 이용할 수 있다. 싱크 디바이스(42) 각각으로부터 수신된 RTCP 피드백에 기초하여, 소스 디바이스(40A)는 소스 디바이스(40A)에서의 로컬 렌더링을 위해 PTS(presentation time stamp)를 조절한다. 싱크 디바이스들(42) 각각은 또한 개별적인 싱크 디바이스에서의 로컬 렌더링을 위해 PTS를 조절하기 위해 다른 싱크 디바이스들(42)로부터 RTCP 피드백을 수신할 수 있다.
통신 세션들은 하나 또는 그 초과의 통신 채널들을 통한 통신을 포함할 수 있다. 이러한 통신 채널들은 상대적으로 단-거리(short-range) 통신 채널일 수 있고, 예컨대, 정의된 2.4GHz, 3.6GHz, 5GHz, 60GHz 또는 초광대역(UWB; Ultrawideband) 주파수 대역 구조들을 구현하는 것과 같은, Wi-Fi, Bluetooth 등과 유사한 물리적 채널 구조를 구현할 수 있다. 그러나, 통신 채널은 반드시 이러한 관점으로 제한되는 것은 아니며, 임의의 무선 또는 유선 통신 매체, 예컨대, 라디오 주파수(RF; radio frequency) 스펙트럼 또는 하나 또는 그 초과의 물리적 송신 회선들, 또는 무선 및 유선 미디어의 임의의 조합을 포함할 수 있다. 다른 예시들에서, 통신 채널은 심지어 패킷-기반 네트워크, 예컨대, 유선 또는 무선 로컬 영역 네트워크, 광역 네트워크, 또는 글로벌 네트워크, 예컨대 인터넷의 일부를 형성할 수 있다. 추가적으로, 통신 채널은 피어-투-피어 링크를 생성하기 위해 소스 디바이스(40A) 및 싱크 디바이스(42)에 의해 이용될 수 있다.
WFD 및 TDLS는 상대적으로 단거리 통신 세션들을 셋업하도록 의도된다. 이러한 맥락에서 상대적으로 단거리는, 예를 들어, 대략적으로 70미터 미만을 의미할 수 있지만, 잡음이 있는 또는 차단된 환경에서, 디바이스들 사이의 거리는 훨씬 더 짧은, 예컨대, 대략적으로 35 미터 미만 또는 대략적으로 20 미터 미만일 수 있다.
본 개시물의 기법들은 때로는 WFD와 관련하여 설명될 수 있지만, 이러한 기법들의 양상들이 또한 다른 통신 프로토콜들과 호환할 수 있다는 것이 고려된다. 제한이 아닌 예시에 의해, 소스 디바이스(40A)와 싱크 디바이스(42) 사이의 무선 통신은 OFDM(orthogonal frequency division multiplexing) 기법들을 활용할 수 있다. TDMA(time division multi access), FDMA(frequency division multi access), CDMA(code division multi access), 또는 OFDM, FDMA, TDMA and/or CDMA의 임의의 조합을 포함하지만, 이에 한정되지 않은, 광범위한 다른 무선 통신 기법들이 또한 이용될 수 있다.
도 4는 본 개시물의 기법들에 따라서 프레임 버퍼 모드의 동기화된 통신 세션에 참여할 수 있는 소스 디바이스(40B) 및 싱크 디바이스들(42)을 포함하는 WD 시스템을 예시하는 블록도이다. 소스 디바이스(40B)는, 개별적인 디바이스들에서 미디어 패킷들의 동기화된 재생을 제공하기 위해, 소스 디바이스(40B) 및 싱크 디바이스들(42)에서 이용하기 위한 유니버셜 큐 크기를 선택하는 것, 및 싱크 디바이스들(42) 각각의 트리거 딜레이 값들을 계산하는 것과 관련하여 도 3으로부터의 소스 디바이스(40A)와 실질적으로 유사하게 동작한다. 소스 디바이스(40B)는 도 3의 소스 디바이스(40A)에 예시된 것 이외의 대안적인 미디어 프로세싱 파이프라인을 예시한다. 도 4에 예시된 프레임 버퍼 모드에서, 소스 디바이스(40B)는 미디어 프레임들을 캡쳐하고, 인코딩하고, 소스 디바이스(40B)에 송신한다. 미디어 프로세싱 파이프라인의 이러한 스테이지에서, 소스 디바이스(40A)는 미디어 콘텐츠를 디코딩할 필요는 없다.
소스 디바이스(40A)와 유사하게, 도 4의 예시된 예시에서, 소스 디바이스(40B)는 세션 매니저(41), 큐 모니터(43), 유니버셜 큐 크기를 갖는 소스 큐(44), 저장된 콘텐츠(16), 로컬 디스플레이(24), 및 송신기(TX)(26)를 포함한다. 소스 디바이스(40B)는 디스플레이 프로세서(52), 프레임 버퍼(54), 디스플레이 드라이버 호스트(58), 디스플레이 드라이버 클라이언트(60), 비디오 프로세서(62), 스크린 캡쳐 모듈(63), 인코더(64), 및 전송 모듈(66)을 더 포함한다. 디스플레이 프로세서(52)는 원시-픽셀 포맷(예컨대, RGB, YUV, YCbCr)으로 출력을 생산하는 디스플레이 프로세서를 나타낸다. 원시-픽셀 데이터는 프레임 버퍼(54)에 먼저 홀딩된다. 디스플레이 드라이버 호스트(58), 예컨대, MDDI(Mobile Display Digital Interface) 호스트 드라이버는 디스플레이 드라이버 클라이언트(60)에 프레임 버퍼(54)로부터의 미디어 콘텐츠를 푸시(push)하는 드라이버를 나타낸다. 디스플레이 드라이버 클라이언트(60)는 로컬 디스플레이(24)에서 미디어 콘텐츠의 렌더링을 제어한다.
소스 디바이스(40B)의 세션 매니저(41)는 본 개시물에 설명된 기법들에 따라서 프레임 버퍼 모드로 싱크 디바이스들(42)과의 동기화된 통신 세션들을 확립할 수 있다. 프레임 버퍼 모드에서, 소스 디바이스(40B)는 도 3으로부터 소스 디바이스(40A)에 관련하여 앞서 설명된 것과 같은 유사한 접근방식을 이용한다. 예를 들어, 세션 매니저(41)는 싱크 디바이스들(42)의 지원되는 큐 크기들에 기초하여 유니버셜 큐 크기를 선택한다. 유니버셜 큐 크기가 선택되어 참여중인 디바이스들이 통지받으면, 소스 디바이스(40B)는 유니버셜 큐 크기를 갖는 소스 큐(44)를 생성하고, 싱크 디바이스들(42)은 유니버셜 큐 크기를 갖는 싱크 큐들(46)을 생성한다. 소스 디바이스(40B)의 세션 매니저(41)는 또한, 참여중인 싱크 디바이스들(42) 각각에 대해 TxDelay, RxDelay, 및 TriggerDelay를 계산한 후, 개별적인 싱크 디바이스들(42)에 딜레이 인터벌 값들을 통지한다. 프레임 버퍼 모드에서, 큐 모니터(43)는 디스플레이 프로세서(52), 디스플레이 드라이버 호스트(58), 및 전송 모듈(66)로부터 출력된 미디어 콘텐츠의 프로세싱을 조정한다.
앞서 언급된 바와 같이, 소스 디바이스(40B)는, 소스 디바이스(40B)가 이미 디코딩된 미디어 콘텐츠를 이용하여 이러한 미디어 콘텐츠를 로컬 디스플레이(24) 상에서 렌더링한 대안적인 미디어 프로세싱 파이프라인을 예시한다. 그러나, 싱크 디바이스(42)는 수신된 미디어 프레임들을 여전히 디코딩할 필요가 있다. TxDelay 값들을 계산할 때, 소스 디바이스(40B)는 싱크 디바이스들(42) 각각에서의 디코딩 시간을 고려할 수 있다.
유니버셜 큐 크기를 갖는 소스 큐(44)가 소스 디바이스(40B)에서 생성된 이후에, 디스플레이 프로세서(52)는, 로컬 디스플레이(24) 상에서 미디어 프레임들을 디스플레이하기 위해, 저장된 콘텐츠(16)로부터의 미디어 프레임들을 프레임 버퍼(54) 내부로 생성한다. 각각의 미디어 프레임은 또한, 스크린 캡쳐 모듈(63)에 의해 캡쳐되고, 인코더(64)에 의해 인코딩되며, 송신기(TX)(26)에 의해 참여중인 싱크 디바이스들(42) 각각에 송신된다. 큐 모니터(43)는, 인코딩 및 송신을 포함하는, 소스 디바이스(30B)의 미디어 프로세싱 파이프라인에 있는 각각의 미디어 프레임에 대해 계속 파악하고 있다. 주어진 미디어 프레임이 싱크 디바이스들(42)에 송신되었으면, 큐 모니터(43)는 프레임 버퍼(54)로부터 소스 큐(44)로 대응하는 미디어 프레임을 이동시킨다. 큐 모니터(43)가 소스 큐(44)가 꽉 찬 것으로 검출하는 경우, 큐 모니터(43)는 TxDelay를 대기하도록 디스플레이 드라이버 호스트(58)를 트리거한 후, 미디어 프레임의 렌더링을 시작한다. 이러한 방식으로, 소스 디바이스(40A)는, 싱크 디바이스들(42) 모두가 동일한 프레임을 수신하고 동일한 프레임의 프로세싱을 시작하기에 충분한 시간을 가질 때까지, 로컬 디스플레이(24) 상에서의 디스플레이를 위한 미디어 프레임의 프로세싱을 시작하기 위해 대기할 것이다.
도 3과 관련하여 앞서 설명된 바와 같이, 싱크 디바이스(42A)에서의 큐 모니터(47A)가, 예를 들어, 싱크 큐(46A)가 꽉 찬 것으로 검출하는 경우, 큐 모니터(47A)는 싱크 디바이스(42A)에 대한 TriggerDelay 인터벌 이후에 미디어 프레임의 프로세싱을 시작하도록 디코더(32A)를 트리거한다. 통신 세션이 오직 싱크 디바이스(42A)와 확립되는 경우 또는 통신 세션이 다수의 싱크 디바이스들과의 멀티캐스트 세션인 경우, 싱크 큐(46A)가 꽉 차자 마자 디코더(32A)가 미디어 프레임의 프로세싱을 시작할 수 있기 때문에, TriggerDelay 인터벌 값은 0과 동일하다. 다수의 싱크 디바이스들과의 다수의 통신 세션들이 확립되는 경우, 소스 디바이스(40B)의 세션 매니저(41)는 싱크 디바이스들 각각에 대해 TriggerDelay 인터벌을 계산한다. 이러한 방식으로, 싱크 디바이스들(42) 각각은, 싱크 디바이스들(42) 모두가 동일한 프레임을 수신하고 동일한 프레임의 프로세싱을 시작하기에 충분한 시간을 가질 때까지, 수신된 미디어의 프로세싱을 시작하기 위해 대기할 것이다.
도 5는 소스 디바이스(40A)와 참여중인 싱크 디바이스들(42) 사이의 통신 세션에 대해 유니버셜 큐 크기를 선택하는데 이용되는 예시적인 정보 교환을 예시하는 로직도이다. 설명의 목적을 위해, 통신 세션이 WD 시스템에 대한 해결책을 이용하여 소스 디바이스(40A)에 의해 셋업되는 것으로 가정될 수 있다. 예를 들어, 소스 디바이스(40A) 및 싱크 디바이스들(42A-42B)은 통신 세션에 참여하는 디바이스들을 식별하기 위해 디바이스 발견을 수행한다. 소스 디바이스(40A)의 세션 매니저(41)는, 소스 디바이스(40A)가 공유할 콘텐츠를 가지고 있다고 광고하고, 싱크 디바이스(42A)가 콘텐츠를 수신하는데 관심이 있는지 여부를 결정하기 위해, 싱크 디바이스(42A)의 세션 매니저(45A)와의 발견 통신(76A)을 개시할 수 있다. 소스 디바이스(40A)의 세션 매니저(41)는 또한, 소스 디바이스(40A)가 공유할 콘텐츠를 가지고 있다고 광고하고, 싱크 디바이스(42B)가 콘텐츠를 수신하는데 관심이 있는지 여부를 결정하기 위해, 싱크 디바이스(42B)의 세션 매니저(45B)와의 발견 통신(76B)을 개시할 수 있다.
소스 디바이스(40A)의 세션 매니저(41)가 싱크 디바이스(42A)와의 광고된 콘텐츠에 대한 통신 세션을 확립하도록 하는 요청을 수신하는 경우, 세션 매니저(41)는 미디어 데이터의 유형에 대해 지원되는 큐 크기에 대한 질의(78A)("Q 크기 질의")를 싱크 디바이스(42A)의 세션 매니저(45A)에 전송한다. 다음으로, 세션 매니저(45A)는 싱크 디바이스(42A)에 대해 지원되는 큐 크기를 포함하는 응답(80A)("Q 크기 응답")을 세션 매니저(41)에 전송한다. 유사하게, 소스 디바이스(40A)의 세션 매니저(41)가 싱크 디바이스(42B)와의 광고된 콘텐츠에 대한 통신 세션을 확립하도록 하는 요청을 수신하는 경우, 세션 매니저(41)는 미디어 데이터의 유형에 대해 지원되는 큐 크기에 대한 질의(78B)("Q 크기 질의")를 싱크 디바이스(42B)의 세션 매니저(45B)에 전송한다. 다음으로, 세션 매니저(45B)는 싱크 디바이스(42B)에 대해 지원되는 큐 크기를 포함하는 응답(80B)("Q 크기 응답")을 세션 매니저(41)에 전송한다.
질의된 싱크 디바이스들(42)로부터의 응답들을 수신할 때, 소스 디바이스(40A)에서의 세션 매니저(41)는 그후 통신 세션 동안 참여중인 디바이스들 모두에서의 이용을 위해 유니버셜 큐 크기를 선택한다. 다음으로, 소스 디바이스(40A)의 세션 매니저(41)는, 자신 소유의 미디어 프로세싱 파이프라인에 유니버셜 큐 크기에 대한 통지(82)("Q 크기 설정")를 전송하고, 싱크 디바이스(42A)의 세션 매니저(45A)에 유니버셜 큐 크기에 대한 통지(84A)("Q 크기 설정")를 전송하고, 그리고 싱크 디바이스(42B)의 세션 매니저(45B)에 유니버셜 큐 크기에 대한 통지(84B)("Q 크기 선택")를 전송한다. 유니버셜 큐 크기 값은, 미리-결정된 방식, 예를 들어, 시간 지속기간, 프레임들의 수, 등으로 제시될 수 있다. 즉, 유니버셜 큐 크기는, 예를 들어, 비디오의 특정 지속기간, 또는 특정 수의 비디오 프레임들을 저장하기 위한 능력에 기초할 수 있다. 이에 따라, 유니버셜 큐 크기는 비디오의 1초, 10초, 20초 또는 그 이상을 저장하는 것에 기초할 수 있다. 몇몇 디바이스들은 비디오의 더 긴 지속기간들을 저장할 수 있는 반면, 다른 디바이스들은 더 짧은 지속기간들을 저장할 수 있다. 추가적으로, 주어진 유니버셜 큐 크기에 대해 저장된 시간 지속기간이, 비디오에 이용되는, 초당 비트들의 수에 기초하여 변할 수 있다는 것이 이해될 것이다. 상이한 비디오 포맷들 및 비트 레이트들에 대한 예시들이 표 1에 제공된다. 이에 따라, 30fps에서 1080p 그리고 10Mbps의 공칭 비트 레이트를 가정하면, 비디오의 10초를 저장하기 위한 유니버셜 큐 크기는 100Mb일 것이다. 대안적으로, 유니버셜 큐 크기는 특정 수의 비디오 프레임들을 저장하는 것에 기초할 수 있다. 이에 따라, 특정한 비디오 포맷에 대한 프레임이 33,333.3 비트들을 요구하는 것으로 가정하여; 디바이스가 30개의 프레임들을 저장하도록 설계되면, 유니버셜 큐는 1Mb를 저장할 수 있다.
몇몇 예시들에서, 큐 크기는 비디오의 콘텐츠에 기초하여 정의될 수 있다. 예를 들어, 하이 모션 비디오는 더 많은 데이터를 요구하고, 이에 따라 더 큰 큐 크기가 선택될 수 있다. 필요로 되지 않는 한 과도한 레이턴시 또는 딜레이가 존재하지 않는 것으로 보장하도록 상이한 비디오가 상이한 큐 크기들을 정의할 수 있게, 큐 크기는 특정한 시퀀스와 관련된 콘텐츠 또는 비트 레이트에 기초할 수 있다.
몇몇 예시들에서, 세션 매니저(41)는 또한 싱크 디바이스들(42) 각각에 대해 계산된 트리거 딜레이 또는 다른 딜레이 인터벌 값들을 세션 매니저들(45) 각각에 통지할 수 있다. 이러한 딜레이 인터벌은 미디어 패킷들의 프로세싱을 딜레이시키는데 이용될 수 있다.
다음으로, 소스 디바이스(40A)의 세션 매니저(41)는 싱크 디바이스(42A)와의 통신 세션(86A) 및 싱크 디바이스(42B)와의 통신 세션(86B)을 개시할 수 있다. 통신 세션 동안, 소스 디바이스(40A) 및 싱크 디바이스들(42)은 미디어 패킷들의 동기화된 프로세싱을 보장하기 위해 유니버셜 큐 크기를 갖는 큐들 및 관련 딜레이 인터벌들을 이용할 것이다. 이러한 방식으로, 본 개시물의 기법들은 소스 디바이스(40A) 및 싱크 디바이스들(42) 각각에서 미디어 데이터의 동기화된 디스플레이를 제공한다.
도 6은, 본 개시물의 기법들에 따라서 소스 디바이스와 싱크 디바이스들 사이의 통신 세션을 동기화하는 예시의 동작을 예시하는 흐름도이다. 예시된 동작은 도 3으로부터의 소스 디바이스(40A) 및 싱크 디바이스들(42)에 대해 설명될 것이다. 예시된 동작은 또한 도 4로부터의 소스 디바이스(40B)에 이용될 수 있다.
소스 디바이스(40A)의 세션 매니저(41)는, 소스 디바이스가 통신 세션을 통해서 하나 또는 그 초과의 싱크 디바이스들(42)과 공유할 콘텐츠, 예를 들어, 오디오 및/또는 비디오 콘텐츠를 갖는 것으로 광고한다(90). 싱크 디바이스들(42)의 하나 또는 그 초과의 세션 매니저들(45)은 통신 세션에 참여하도록 요청함으로써 이러한 광고에 응답한다(91). 요청들을 수신할 때, 소스 디바이스(40A)의 세션 매니저(41)는 요청중인 싱크 디바이스들(42)과의 통신 세션을 확립한다(92). 그후, 세션 매니저(41)는 싱크 디바이스들(42) 각각에서 통신 세션을 위한 지원되는 큐 크기를 습득하도록 싱크 디바이스들(42)에 질의한다(93). 싱크 디바이스들(42)의 세션 매니저들(45) 각각은 통신 세션을 위한 자신의 지원되는 큐 크기로 응답한다(94).
싱크 디바이스들(42)을 위해 지원되는 큐 크기들을 수신할 때, 소스 디바이스(40A)의 세션 매니저(41)는 싱크 디바이스들의 지원되는 큐 크기들에 기초하여 통신 세션을 위한 유니버셜 큐 크기를 선택한다(95). 세션 매니저(41)는 도 3과 관련하여 앞서 설명된 바와 같이 유니버셜 큐 크기를 선택할 수 있다. 다음으로, 싱크 디바이스(42) 각각은 통신 세션에 이용될 유니버셜 큐 크기에 대한 통지를 소스 디바이스(40A)로부터 수신한다(96). 소스 디바이스(40A) 및 싱크 디바이스들(42) 각각은 유니버셜 큐 크기를 갖는 큐들을 생성한다.
다음에, 소스 디바이스(40A)는 통신 세션의 일부로서 싱크 디바이스들(42)에 패킷들을 전송한다(98). 소스 디바이스(40A)에서, 큐 모니터(43)는 유니버셜 큐 크기를 갖는 소스 큐(44)에 패킷들을 홀딩한다(102). 큐 모니터(43)는 소스 큐(44)를 모니터링한다. 큐 모니터(43)가, 소스 큐(44)가 꽉 찬 것으로 검출하면(104), 소스 디바이스(40A)가 싱크 디바이스들(42)과 동기화하여 패킷들의 프로세싱을 시작하기(108) 전에, 소스 디바이스(40A)는 딜레이 인터벌(106) 동안 대기한다(106). 큐 모니터(43)가 소스 큐(44)가 꽉 찬 것으로 검출하는 시점(104)과 소스 디바이스(40A)가 싱크 디바이스들(42)과 동기화하도록 패킷들의 프로세싱을 시작하는 시점(108) 사이의 딜레이 인터벌은, 도 3에 관해 앞서 설명된 바와 같이 계산될 수 있다. 예를 들어, 딜레이 인터벌은, 통신 세션이 하나의 소스 디바이스와의 유니캐스트 세션 또는 멀티캐스트 세션인 경우, 소스 디바이스(40A)와 싱크 디바이스들(42) 사이의 송신 딜레이 인터벌일 수 있다. 다른 예시로서, 딜레이 인터벌은, 통신 세션이 다수의 유니캐스트 세션들인 경우에 싱크 디바이스들(42) 모두가 패킷들을 수신할 때까지의 트리거 딜레이 인터벌일 수 있다.
소스 디바이스(40A)가 패킷들을 전송한(98) 후, 싱크 디바이스들(42) 각각은 소스 디바이스(40A)로부터 패킷들을 수신한다(100). 싱크 디바이스(42A)에서의 패킷들의 수신시에, 예를 들어, 큐 모니터(47A)는 유니버셜 큐 크기를 갖는 싱크 큐(46A)에 패킷들을 홀딩한다(110). 큐 모니터(47A)는 싱크 큐(46A)를 모니터링한다. 큐 모니터(47A)가 싱크 큐(46A)가 꽉 찬 것으로 검출하면(112), 싱크 디바이스(42)가 소스 디바이스(40A) 및 다른 참여중인 싱크 디바이스들(42)과 동기화하여 패킷들의 프로세싱을 시작하기(116) 전에, 싱크 디바이스(42)는 딜레이 인터벌 동안 선택적으로 대기할 수 있다(114). 유사한 프로세스가 통신 세션에 참여하는 싱크 디바이스들(42) 각각에서 수행된다. 큐 모니터(47A)가 싱크 큐(46A)가 꽉 찬 것으로 검출하는 시점(112)과 싱크 디바이스(42A)가 소스 디바이스(40A) 및 다른 싱크 디바이스들(42)과 동기화하여 패킷들의 프로세싱을 시작하는 시점(116) 사이의 선택적인 딜레이 인터벌은, 도 3에 관해 앞서 설명된 바와 같이 계산될 수 있다. 예를 들어, 딜레이 인터벌은, 통신 세션이 하나의 소스 디바이스와의 유니캐스트 세션 또는 멀티캐스트 세션인 경우, 0과 동일할 수 있다. 이러한 경우, 싱크 디바이스(42A)는 싱크 큐(46A)가 꽉 차자 마자 패킷들의 프로세싱을 시작할 수 있다. 다른 예시로서, 딜레이 인터벌은, 통신 세션이 다수의 유니캐스트 세션들일 때 다른 참여중인 싱크 디바이스들(42) 모두가 그 패킷들을 수신할 때까지의 트리거 딜레이 인터벌일 수 있다.
도 7은 본 개시물에서 설명된 하나 또는 그 초과의 예시들에 따라서 소스 디바이스와 싱크 디바이스들 사이의 통신 세션을 동기화하는 예시의 방법을 예시하는 흐름도이다. 도 7의 예시의 방법은 소스 디바이스의 관점으로부터이다. 통신 세션을 확립하는 것은, (1) 소스 디바이스와 하나의 싱크 디바이스 사이의 유니캐스트 통신 세션, (2) 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션, 및 (3) 소스 디바이스와 다수의 싱크 디바이스들 사이의 다수의 유니캐스트 통신 세션들 중 하나를 확립하는 것을 포함할 수 있다.
도 7의 예시의 방법에서, 소스 디바이스(40A)는 하나 또는 그 초과의 싱크 디바이스들(42)과의 통신 세션을 확립할 수 있다(700). 통신 세션은, 예를 들어, 소스 디바이스(10, 40A)와 하나 또는 그 초과의 싱크 디바이스들(42B) 사이의 미디어 공유 세션일 수 있다. 일 예시에서, 소스 디바이스(40A)와 하나 또는 그 초과의 싱크 디바이스들(42) 사이의 미디어 공유 세션과 같은 통신 세션을 확립하는 것은, 예를 들어, 통신 세션의 일부로서 싱크 디바이스들(42) 각각에 데이터 패킷들을 전송하는 것을 포함할 수 있다.
소스 디바이스(40A)는 통신 세션을 위해 선택될 수 있는 유니버셜 큐 크기를 싱크 디바이스들(42) 각각에 통지한다(702). 소스 디바이스(40A)는 소스 디바이스(40A) 및 싱크 디바이스들(42)의 지원되는 큐 크기들에 기초하여 유니버셜 큐 크기를 선택한다. 선택은 또한, 소스 디바이스(40A)의 패킷 레이트, 싱크 디바이스들 각각에서의 송신 딜레이 인터벌, 수신 딜레이 인터벌 또는 트리거 딜레이 인터벌 중 하나 또는 그 초과에 기초할 수 있다. 매우 다양한 패킷 레이트들이 초당 15개 패킷들(또는 훨씬 더 미만)에서 200개 패킷들 또는 그 이상으로 선택될 수 있다.
일 예시에서, 방법은, 싱크 큐가 꽉 찬 것으로 검출하는 것과 싱크 큐 내의 데이터 패킷들의 프로세싱을 시작하는 것 사이의 특정한 싱크 디바이스에 대한 대기 시간을 나타내는, 싱크 디바이스들 각각에 대한 트리거 딜레이 인터벌을 계산 또는 측정할 수 있다. 싱크 디바이스들 각각은 자신의 개별적인 트리거 딜레이 인터벌에 대해 통지받을 수 있다.
소스 디바이스(40A)의 유닛(26)은 싱크 디바이스들(42A, 42B) 각각에 데이터 패킷들을 전송한다. 예를 들어, 소스 디바이스(40A)는 통신 세션의 일부로서 데이터 패킷들을 싱크 디바이스들(42)에 전송할 수 있다(98). 다른 예시에서, 싱크 디바이스들(42)은 유니버셜 큐 크기를 갖는 싱크 큐들(46)에 데이터 패킷들을 홀딩한다(704). 다른 예시에서, 소스 디바이스(40A)의 큐 모니터(43)는 유니버셜 큐 크기를 갖는 소스 큐(44)에 데이터 패킷들을 홀딩할 수 있다(706).
소스 큐(44)가 꽉 찬 것으로 검출하면, 소스 디바이스(40A)는 소스 디바이스에서의 디스플레이를 위해 소스 큐 내의 데이터 패킷들의 프로세싱을 시작할 수 있다(708). 예를 들어, 소스 디바이스(40A)의 큐 모니터(43)는 소스 큐(44)를 모니터링할 수 있다. 큐 모니터(43)가 소스 큐(44)가 꽉 찬 것으로 검출하면, 소스 디바이스(40A)가 싱크 디바이스들(42)과 동기화하여 패킷들의 프로세싱을 시작하기 전에 소스 디바이스(40A)는 딜레이 인터벌 동안 대기한다. 추가적으로, 소스 디바이스에서의 프로세싱은 싱크 디바이스들에서의 데이터 패킷들의 프로세싱과 동기화될 수 있다.
몇몇 예시들에서, 소스 디바이스(40A)는, 또한, 지원되는 큐 크기들에 대해 싱크 디바이스들(42) 각각에 질의할 수 있다. 이에 따라, 소스 디바이스(40A)는 싱크 디바이스들(42)과의 유니버셜 큐 크기를 선택할 수 있다. 유니버셜 큐크기는 소스 디바이스(40A) 및 싱크 디바이스들(42)의 지원되는 큐 크기들에 기초할 수 있다. 소스 디바이스(40A)는 소스 디바이스(40A)에 대한 트리거 딜레이 인터벌을 더 측정할 수 있다. 트리거 딜레이 인터벌은 데이터 패킷들을 수신하기 위한 마지막 싱크 디바이스(42)에 대한 시간 인터벌을 나타낼 수 있다. 추가적으로, 소스 큐(44)가 꽉 찬 것으로 검출하면, 소스 디바이스(40A)는 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하기 전에 트리거 딜레이 인터벌 동안 대기할 수 있다.
도 8은 본 개시물에 설명된 하나 또는 그 초과의 예시들에 따라서 소스 디바이스와 싱크 디바이스들 사이의 통신 세션을 동기화하는 예시의 방법을 예시하는 흐름도이다. 도 8의 예시의 방법은 싱크 디바이스의 관점으로부터이다.
도 8의 예시의 방법에서, 소스 디바이스(40A)는 싱크 디바이스(42)와 소스 디바이스(40A) 사이의 통신 세션을 확립할 수 있다(800). 예를 들어, 소스 디바이스(40A)는 미디어 데이터, 예컨대, 오디오 및/또는 비디오(AV) 데이터를 특정한 통신 세션에 참여하는 싱크 디바이스들(42) 중 하나 또는 그 초과에 전송할 수 있다. 앞서 논의된 바와 같이, 미디어 데이터는 소스 디바이스의 로컬 디스플레이에서 그리고 싱크 디바이스들의 디스플레이들 각각에서 모두 재생될 수 있다. 더욱 구체적으로, 참여중인 싱크 디바이스들(42) 각각은 자신의 스크린 및 오디오 장비 상에서 수신된 미디어 데이터를 렌더링할 수 있다. 몇몇 경우들에서, 싱크 디바이스(42)의 사용자는 사용자 입력들, 예컨대, 터치 입력들 및 원격의 제어 입력들을 싱크 디바이스(42)에 적용할 수 있다. WD 시스템에서, 사용자 입력들은 싱크 디바이스(42)에서 소스 디바이스(40A)로 전송된다. 소스 디바이스(40A)는, 싱크 디바이스(42)로부터의 수신된 사용자 입력들을 프로세싱하고, 싱크 디바이스에 전송되는 후속 미디어 데이터에 사용자 입력들의 영향을 적용시킨다.
싱크 디바이스들(42)은 소스 디바이스(40A)로부터의 유니버셜 큐 크기의 통지를 수신할 수 있다. 소스 디바이스(40A)는 통신 세션에 대한 유니버셜 큐 크기를 선택할 수 있다(802). 예를 들어, 싱크 디바이스들(42) 각각은 통신 세션에 이용될 유니버셜 큐 크기에 대한 통지를 소스 디바이스(40A)로부터 수신한다(96). 소스 디바이스(40A) 및 싱크 디바이스들(42) 각각은 유니버셜 큐 크기를 갖는 큐들을 생성할 수 있다.
싱크 디바이스들(42)은 소스 디바이스(40A)로부터 데이터 패킷들을 수신할 수 있다. 데이터 패킷들은 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐 내에 홀딩될 수 있다. 추가적으로, 수신된 데이터 패킷들은 싱크 디바이스에서 유니버셜 큐 크기를 갖는 싱크 큐 내에 홀딩될 수 있다(804).
싱크 큐(46)가 꽉 찬 것으로 검출되면, 싱크 디바이스들(42)은 싱크 디바이스(42)에서의 디스플레이를 위해 싱크 큐(46) 내의 데이터 패킷들의 프로세싱을 시작할 수 있다. 싱크 디바이스(42)에서의 프로세싱은 소스 디바이스(40A)에서의 데이터 패킷들의 프로세싱과 동기화될 수 있다(808). 예를 들어, 큐 모니터(47A)가 싱크 큐(46A)가 꽉 찬 것으로 검출하면(112), 싱크 디바이스(42)가 소스 디바이스(40A) 및 다른 참여중인 싱크 디바이스들(42)과 동기화하여 패킷들의 프로세싱을 시작하기(116) 전에, 싱크 디바이스(42)는 딜레이 인터벌 동안 선택적으로 대기할 수 있다(114). 통신 세션에 참여하는 싱크 디바이스들(42) 각각에서 유사한 프로세스가 수행될 수 있다. 큐 모니터(47A)가 싱크 큐(46A)가 꽉 찬 것으로 검출하는 시점(112)과 싱크 디바이스(42A)가 소스 디바이스(40A) 및 다른 싱크 디바이스들(42)과 동기화하여 패킷들의 프로세싱을 시작하는 시점(116) 사이의 선택적인 딜레이 인터벌은, 도 3에 관해 앞서 설명된 바와 같이 계산될 수 있다.
예시의 방법은 또한, 싱크 디바이스의 지원되는 큐 크기들을 리포트하도록 소스 디바이스로부터의 질의에 응답할 수 있다. 추가적으로, 유니버셜 큐 크기는 소스 디바이스 및 싱크 디바이스의 지원되는 큐 크기들에 기초하여 소스 디바이스에 의해 선택될 수 있다.
일 예시에서, 싱크 디바이스에 대한 트리거 딜레이 인터벌의 통지가 소스 디바이스로부터 수신될 수 있다. 트리거 딜레이 인터벌은 미디어 패킷들을 수신하기 위해 통신 세션에 참여하는 다른 싱크 디바이스들 중 마지막 디바이스에 대한 시간 인터벌을 나타낼 수 있다. 예시의 방법에서, 싱크 큐가 꽉 찬 것으로 검출하면, 싱크 큐 내의 데이터 패킷들의 프로세싱을 시작하기 전에 트리거 딜레이 인터벌 동안 대기한다.
도 9는 본 개시물에 설명된 하나 또는 그 초과의 예시들에 따라서 소스 디바이스와 싱크 디바이스들 사이의 통신 세션을 동기화하는 예시의 방법을 예시하는 흐름도이다. 도 9의 예시의 방법은 싱크 디바이스의 관점으로부터이다.
도 9의 예시에서, 싱크 디바이스(42)는 싱크 디바이스(42)와 통신 세션을 확립하도록 소스 디바이스(40A)에 요청할 수 있다(900). 통신 세션은, (1) 소스 디바이스와 오직 싱크 디바이스 사이의 유니캐스트 통신 세션, (2) 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션, 및 (3) 소스 디바이스와 다수의 싱크 디바이스들 사이의 다수의 유니캐스트 통신 세션들 중 하나를 포함할 수 있다. 일 예시에서, 싱크 디바이스(42)에 대한 트리거 딜레이 인터벌은 0과 동일할 수 있다.
다른 예시에서, 통신 세션은 스트리밍 모드 및 프레임 버퍼 모드 중 하나에서 동작할 수 있다. 예를 들어, 앞서 논의된 바와 같이, 통신 세션은, 확립되면, 도 1 및 도 2에 예시된 바와 같이, 소스 디바이스가 저장된 인코딩된 미디어 스트림들을 송신하는 스트리밍 모드에서, 또는 도 4에 예시된 바와 같이, 소스 디바이스가 디스플레이 버퍼들을 캡쳐하고, 인코딩하고, 송신하는 프레임 버퍼 모드에서 동작할 수 있다.
싱크 디바이스(42)는 소스 디바이스(40A)로부터 유니버셜 큐 크기의 통지를 수신할 수 있다(902). 소스 디바이스(40A)는 적어도 소스 디바이스(40A)와 싱크 디바이스(들)(42)의 지원되는 큐 크기들에 기초하여 유니버셜 큐 크기를 선택할 수 있다. 추가적으로, 유니버셜 큐 크기는 통신 세션에 참여하는 모든 싱크 디바이스들(42)에 걸친 최소 지원되는 큐 크기와 동일하거나 그 미만이 되도록 선택될 수 있다. 일 예시에서, 싱크 디바이스(42)는 싱크 디바이스(42)의 지원되는 큐 크기를 보고하도록 소스 디바이스(40A)로부터의 질의에 응답할 수 있다.
싱크 디바이스(들)(42)는 통신 세션의 일부로서 데이터 패킷들을 소스 디바이스(40A)로부터 수신할 수 있다(904). 예를 들어, 소스 디바이스(40A)가 패킷들을 전송한 후, 싱크 디바이스들(42) 각각은 소스 디바이스(40A)로부터 패킷들을 수신한다. 추가적으로, 데이터 패킷들은 소스 디바이스에서 유니버셜 큐 크기를 갖는 소스 큐에 홀당될 수 있다.
싱크 디바이스(42)는 유니버셜 큐 크기를 갖는 싱크 큐 내에 데이터 패킷들을 홀딩할 수 있다(906). 예를 들어, 싱크 디바이스(42)는 소스 디바이스(40A)로부터 트리거 딜레이 인터벌의 통지를 수신할 수 있다. 이러한 트리거 딜레이는 싱크 디바이스(42)에 대한 것일 수 있다. 트리거 딜레이 인터벌은, 데이터 패킷들, 예를 들어, 미디어 패킷들을 수신하기 위해 통신 세션에 참여하는 다른 싱크 디바이스들 중 마지막 디바이스에 대한 시간 인터벌을 나타낼 수 있다.
싱크 큐(46)가 꽉 찬 것으로 검출하면, 싱크 디바이스(42)는 싱크 디바이스(42)에서의 디스플레이를 위해 싱크 큐(46) 내의 데이터 패킷들의 프로세싱을 시작할 수 있다. 싱크 디바이스(42)에서의 패킷 프로세싱은 소스 디바이스(40A)에서의 패킷 프로세싱과 동기화될 수 있다(908). 일 예시에서, 싱크 큐(46)가 꽉 찬 것으로 검출하면, 싱크 디바이스(42)는 싱크 큐(46) 내의 데이터 패킷들의 프로세싱을 시작하기 전에 트리거 딜레이 인터벌 동안 대기할 수 있다.
하나 또는 그 초과의 예시들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기능들은 컴퓨터-판독가능 매체 상에 하나 또는 그 초과의 명령들 또는 코드로서 저장되거나 또는 이들을 통해 송신될 수 있다. 컴퓨터-판독가능 매체는 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 가능하게 하는 임의의 매체를 포함하는 통신 매체또는 컴퓨터 데이터 저장 매체를 포함할 수 있다. 몇몇 예시들에서, 컴퓨터-판독가능 매체는 비-일시적 컴퓨터-판독가능 매체를 포함할 수 있다. 데이터 저장 매체는 본 개시물에 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 리트리브하기 위해 하나 또는 그 초과의 컴퓨터들 또는 하나 또는 그 초과의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다.
한정이 아닌 예시로서, 이러한 컴퓨터-판독가능 매체는, 비-일시적 매체, 예를 들어, RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 플래시 메모리 또는 컴퓨터에 의해 액세스될 수 있고 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 반송 또는 저장하는데 이용될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속수단(connection)이 컴퓨터-판독가능 매체로 적절하게 명명된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 트위스티트 페어, 디지털 가입자 라인(DSL), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 송신되면, 동축 케이블, 광섬유 케이블, 트위스티트 페어, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들이 매체의 정의 내에 포함된다. 본원에 이용되는 것과 같은, 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(CD; compact disc), 레이저 디스크(laser disc), 광학 디스크(optical disc), 디지털 다기능 디스크(DVD: digital versatile disc), 플로피 디스크(floppy disk) 및 블루-레이 디스크(blu-ray disc)를 포함하며, 여기서 디스크(disk)들은 통상적으로 자기적으로 데이터를 재생하는 반면에 디스크(disc)들은 레이저들을 통해 데이터를 광학적으로 재생한다. 전술한 것들의 조합들이 또한 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
코드는 하나 또는 그 초과의 프로세서들, 예컨대, 하나 또는 그 초과의 디지털 신호 프로세서들(DSP들), 범용 프로세서들, 주문형 집적 회로들(ASIC들), 필드 프로그래머블 게이트 어레이들(FPGA들) 또는 다른 동등한 집적 또는 이산 논리 회로에 의해 실행될 수 있다. 이에 따라, 본원에 이용된 바와 같은 용어 "프로세서"는 전술한 구조 또는 본원에 설명된 기법들의 구현을 위해 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수 있다. 또한, 몇몇 양상들에서, 본원에 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수 있거나, 또는 결합된 코덱 내에 통합될 수 있다. 또한, 기법들은 하나 또는 그 초과의 회로들 또는 로직 엘리먼트들에서 전체적으로 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로(IC) 또는 일 세트의 IC들(예를 들어, 칩 셋)을 포함하는 매우 다양한 디바이스들 또는 장치들에서 구현될 수 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양상들을 강조하기 위해 본 개시물에 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 오히려, 앞서 설명된 바와 같이, 다양한 유닛들은, 코덱 하드웨어 유닛에 결합될 수 있거나, 또는 적합한 소프트웨어 및/또는 펌웨어와 관련하여 앞서 설명된 바와 같은 하나 또는 그 초과의 프로세서들을 포함하는 상호동작가능한 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
다양한 실시예들이 설명되었다. 이러한 그리고 다른 실시예들은 후술하는 청구항들의 범위 내에 있다.

Claims (62)

  1. 방법으로서,
    소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 통신 세션을 확립하는 단계;
    상기 통신 세션을 위해 상기 소스 디바이스에 의해 선택된 유니버셜 큐 크기를 상기 싱크 디바이스들 중 적어도 하나에 통지하는 단계;
    상기 싱크 디바이스들 각각에 데이터 패킷들을 전송하는 단계 ― 상기 데이터 패킷들은 상기 유니버셜 큐 크기를 갖는 싱크 큐들 내의 상기 싱크 디바이스들에서 홀딩됨 ― ;
    상기 유니버셜 큐 크기를 갖는 소스 큐 내의 상기 소스 디바이스에서 상기 데이터 패킷들을 홀딩하는 단계; 및
    상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 소스 디바이스에서의 디스플레이를 위해 상기 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하는 단계 ― 상기 소스 디바이스에서의 프로세싱은, 상기 싱크 디바이스들에서 상기 데이터 패킷들의 프로세싱과 동기화됨 ― 를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 통신 세션은 상기 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 미디어 공유 세션을 포함하는,
    방법.
  3. 제 1 항에 있어서,
    지원된 큐 크기들에 대해 상기 싱크 디바이스들 각각에 질의하는 단계; 및
    상기 소스 디바이스를 이용하여, 상기 소스 디바이스 및 상기 싱크 디바이스들의 지원된 큐 크기들에 기초하여 상기 유니버셜 큐 크기를 선택하는 단계를 더 포함하는,
    방법.
  4. 제 1 항에 있어서,
    상기 소스 디바이스에 대한 송신 딜레이 인터벌을 측정하는 단계 ― 상기 송신 딜레이 인터벌은, 마지막 싱크 디바이스가 상기 데이터 패킷들을 수신하기 위한 시간 인터벌을 나타냄 ―; 및
    상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하기 전에 상기 송신 딜레이 인터벌 동안 대기하는 단계를 더 포함하는,
    방법.
  5. 제 1 항에 있어서,
    상기 싱크 큐가 꽉 찬 것으로 검출하는 것과 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하는 것 사이에, 특정한 싱크 디바이스에 대한 대기 시간을 나타내는 트리거 딜레이 인터벌을 상기 싱크 디바이스들 각각에 대해 계산하는 단계; 및
    상기 싱크 디바이스들 각각에, 그들의 개별적인 트리거 딜레이 인터벌을 통지하는 단계를 더 포함하는,
    방법.
  6. 제 1 항에 있어서,
    상기 통신 세션을 확립하는 단계는, 상기 소스 디바이스와 하나의 싱크 디바이스 사이의 유니캐스트 통신 세션, 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션, 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 다수의 유니캐스트 통신 세션들 중 하나를 확립하는 단계를 포함하는,
    방법.
  7. 제 1 항에 있어서,
    상기 싱크 디바이스들 각각에, 특정한 싱크 디바이스의 지원된 큐 크기에 대해 질의하는 단계를 더 포함하는,
    방법.
  8. 제 1 항에 있어서,
    상기 싱크 디바이스들 각각에, 선택된 상기 유니버셜 큐 크기를 통지하는 단계를 더 포함하는,
    방법.
  9. 제 1 항에 있어서,
    상기 유니버셜 큐 크기를 선택하는 단계는, 모든 상기 싱크 디바이스들에 걸쳐서 최소 지원된 큐 크기와 동일하거나 또는 그 미만이 되도록 상기 유니버셜 큐 크기를 선택하는 단계를 포함하는,
    방법.
  10. 제 9 항에 있어서,
    상기 싱크 디바이스들의 상기 지원된 큐 크기들 및 트리거 딜레이 인터벌들에 기초하여 모든 상기 싱크 디바이스들에 걸쳐서 상기 최소 지원된 큐 크기를 계산하는 단계를 더 포함하는,
    방법.
  11. 제 1 항에 있어서,
    상기 유니버셜 큐 크기를 선택하는 단계는, 상기 소스 디바이스 및 상기 싱크 디바이스들의 지원된 큐 크기들, 상기 소스 디바이스에서의 패킷 레이트, 및 상기 싱크 디바이스들 각각에서의 송신 딜레이 인터벌, 수신 딜레이 인터벌, 및 트리거 딜레이 인터벌 중 하나 또는 그 초과에 기초하여 상기 유니버셜 큐 크기를 선택하는 단계를 포함하는,
    방법.
  12. 제 1 항에 있어서,
    상기 통신 세션은, 상기 소스 디바이스와 하나의 싱크 디바이스 사이의 유니캐스트 통신 세션, 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션 중 하나를 포함하고,
    상기 소스 디바이스와 상기 싱크 디바이스들 중 하나 사이의 송신 딜레이 인터벌을 측정하는 단계; 및
    상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 소스 큐 내의 패킷들의 프로세싱을 시작하기 전에 상기 송신 딜레이 인터벌 동안 대기하는 단계를 더 포함하는,
    방법.
  13. 제 1 항에 있어서,
    상기 통신 세션은, 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 다수의 유니캐스트 통신 세션들을 포함하고,
    상기 소스 디바이스에 대한 송신 딜레이 인터벌을 측정하는 단계 ― 상기 송신 딜레이 인터벌은, 마지막 싱크 디바이스가 상기 데이터 패킷들을 수신하기 위한 시간 인터벌을 나타냄 ―; 및
    상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 소스 큐 내의 패킷들의 프로세싱을 시작하기 전에 상기 송신 딜레이 인터벌 동안 대기하는 단계를 더 포함하는,
    방법.
  14. 제 1 항에 있어서,
    다른 싱크 디바이스에 의해 지원되는 상기 선택된 유니버셜 큐 크기를 지원할 수 없는 싱크 디바이스를 배제하는 단계를 더 포함하는,
    방법.
  15. 제 14 항에 있어서,
    상기 통신 세션은 상기 소스 디바이스와 하나의 싱크 디바이스 사이의 유니캐스트 통신 세션, 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션 중 하나를 포함하고,
    상기 싱크 디바이스들 각각에 대한 상기 트리거 딜레이 인터벌은 0과 동일한,
    방법.
  16. 제 1 항에 있어서,
    상기 통신 세션은 스트리밍 모드 및 프레임 버퍼 모드 중 하나에서 동작하는,
    방법.
  17. 방법으로서,
    소스 디바이스에, 싱크 디바이스와의 통신 세션을 확립하도록 요청하는 단계;
    소스 디바이스로부터 유니버셜 큐 크기의 통지를 수신하는 단계 ― 상기 유니버셜 큐 크기는, 적어도 상기 소스 디바이스 및 상기 싱크 디바이스의 지원된 큐 크기들에 기초하여 선택됨 ―;
    상기 통신 세션의 일부로서 데이터 패킷들을 상기 소스 디바이스로부터 수신하는 단계 ― 상기 패킷들은 상기 소스 디바이스에서 상기 유니버셜 큐 크기를 갖는 소스 큐에 홀딩됨 ―;
    상기 싱크 디바이스에서 상기 유니버셜 큐 크기를 갖는 싱크 큐에 상기 데이터 패킷들을 홀딩하는 단계; 및
    상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 싱크 디바이스에서의 디스플레이를 위해 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하는 단계 ― 상기 싱크 디바이스에서의 패킷 프로세싱은, 상기 소스 디바이스에서의 패킷 프로세싱과 동기화됨 ― 를 포함하는,
    방법.
  18. 제 17 항에 있어서,
    상기 통신 세션은, 상기 소스 디바이스와 유일한 상기 싱크 디바이스 사이의 유니캐스트 통신 세션, 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션, 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 다수의 유니캐스트 통신 세션들 중 하나를 포함하는,
    방법.
  19. 제 17 항에 있어서,
    상기 싱크 디바이스의 상기 지원된 큐 크기를 리포트하라는 상기 소스 디바이스로부터의 질의에 응답하는 단계를 더 포함하는,
    방법.
  20. 제 17 항에 있어서,
    상기 유니버셜 큐 크기는, 상기 통신 세션에 참여하는 모든 싱크 디바이스들에 걸쳐서 최소 지원된 큐 크기와 동일하거나 또는 그 미만이 되도록 선택되는,
    방법.
  21. 제 17 항에 있어서,
    상기 소스 디바이스로부터 상기 싱크 디바이스에 대한 트리거 딜레이 인터벌의 통지를 수신하는 단계 ― 상기 트리거 딜레이 인터벌은, 상기 데이터 패킷들을 수신하기 위해 상기 통신 세션에 참여하는 다른 싱크 디바이스들 중 적어도 하나에 대한 시간 인터벌을 나타냄 ―; 및
    상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하기 전에 상기 트리거 딜레이 인터벌 동안 대기하는 단계를 더 포함하는,
    방법.
  22. 제 17 항에 있어서,
    상기 통신 세션이 상기 소스 디바이스와 하나의 싱크 디바이스 사이의 유니캐스트 통신 세션 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션 중 하나를 포함하는 경우, 상기 싱크 디바이스에 대한 트리거 딜레이 인터벌은 0과 동일한,
    방법.
  23. 제 17 항에 있어서,
    상기 통신 세션은 스트리밍 모드 및 프레임 버퍼 모드 중 하나에서 동작하는,
    방법.
  24. 제 17 항에 있어서,
    제 2 싱크 디바이스가 상기 소스 디바이스와의 이미 확립된 통신 세션에 조인하는 단계를 더 포함하는,
    방법.
  25. 제 17 항에 있어서,
    일 세트의 데이터 패킷들의 완료 이전에, 상기 싱크 디바이스가 상기 소스 디바이스와의 이미 확립된 통신 세션을 빠져나가는(exiting) 단계를 더 포함하는,
    방법.
  26. 소스 디바이스로서,
    상기 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 통신 세션을 확립하고, 상기 소스 디바이스와 상기 싱크 디바이스들의 지원된 큐 크기들에 기초하여 유니버셜 큐 크기를 선택하고, 그리고 송신기로 하여금 상기 통신 세션을 위해 선택된 유니버셜 큐 크기에 대한 통지를 싱크 디바이스들에 송신하게 하도록 구성된 프로세서 ― 상기 송신기는 상기 통신 세션의 일부로서 상기 싱크 디바이스들 각각에 데이터 패킷들을 전송하고, 상기 데이터 패킷들은 상기 싱크 디바이스들에서 상기 유니버셜 큐 크기를 갖는 싱크 큐들에 홀딩됨 ―; 및
    상기 패킷들을 홀딩하는, 상기 유니버셜 큐 크기를 갖는 소스 큐 ― 상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 프로세서는 상기 소스 디바이스에서의 디스플레이를 위해 상기 소스 큐 내의 상기 데이터 패킷들의 프로세싱을 시작하고, 상기 소스 디바이스에서의 상기 데이터 패킷 프로세싱은 상기 싱크 디바이스들에서의 패킷 프로세싱과 동기화됨 ― 를 포함하는,
    소스 디바이스.
  27. 제 26 항에 있어서,
    상기 통신 세션은, 상기 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 미디어 공유 세션을 포함하는,
    소스 디바이스.
  28. 제 26 항에 있어서,
    상기 프로세서는:
    지원된 큐 크기들에 대해 상기 싱크 디바이스들 각각에 질의하고; 그리고
    상기 소스 디바이스를 이용하여, 상기 소스 디바이스 및 상기 싱크 디바이스들의 지원된 큐 크기들에 기초하여 상기 유니버셜 큐 크기를 선택하도록 더 구성되는,
    소스 디바이스.
  29. 제 26 항에 있어서,
    상기 프로세서는:
    상기 소스 디바이스에 대한 송신 딜레이 인터벌을 측정하고 ― 상기 송신 딜레이 인터벌은, 마지막 싱크 디바이스가 상기 데이터 패킷들을 수신하기 위한 시간 인터벌을 나타냄 ―; 그리고
    상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 소스 큐 내의 상기 데이터 패킷들의 프로세싱을 시작하기 전에 상기 송신 딜레이 인터벌 동안 대기하도록 더 구성되는,
    소스 디바이스.
  30. 제 26 항에 있어서,
    상기 프로세서는:
    상기 싱크 큐가 꽉 찬 것으로 검출하는 것과 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하는 것 사이에, 특정한 싱크 디바이스에 대한 대기 시간을 나타내는 트리거 딜레이 인터벌을 상기 싱크 디바이스들 각각에 대해 계산하고; 그리고
    상기 싱크 디바이스들 각각에, 그들의 개별적인 트리거 딜레이 인터벌을 통지하도록 더 구성되는,
    소스 디바이스.
  31. 제 26 항에 있어서,
    상기 통신 세션을 확립하는 것은, 상기 소스 디바이스와 하나의 싱크 디바이스 사이의 유니캐스트 통신 세션, 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션, 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 다수의 유니캐스트 통신 세션들 중 하나를 확립하는 것을 포함하는,
    소스 디바이스.
  32. 제 26 항에 있어서,
    상기 프로세서는, 상기 싱크 디바이스들 각각에, 특정한 싱크 디바이스의 지원된 큐 크기에 대해 질의하도록 더 구성되는,
    소스 디바이스.
  33. 제 26 항에 있어서,
    상기 프로세서는, 상기 싱크 디바이스들 각각에, 선택된 상기 유니버셜 큐 크기를 통지하도록 더 구성되는,
    소스 디바이스.
  34. 제 26 항에 있어서,
    상기 유니버셜 큐 크기를 선택하는 것은, 모든 상기 싱크 디바이스들에 걸쳐서 최소 지원된 큐 크기와 동일하거나 또는 그 미만이 되도록 상기 유니버셜 큐 크기를 선택하는 것을 포함하는,
    소스 디바이스.
  35. 제 34 항에 있어서,
    상기 프로세서는, 상기 싱크 디바이스들의 상기 지원된 큐 크기들 및 트리거 딜레이 인터벌들에 기초하여, 모든 상기 싱크 디바이스들에 걸쳐서 최소 지원된 큐 크기를 계산하도록 더 구성되는,
    소스 디바이스.
  36. 제 26 항에 있어서,
    상기 유니버셜 큐 크기를 선택하는 것은, 상기 소스 디바이스 및 상기 싱크 디바이스들의 지원된 큐 크기들, 상기 소스 디바이스에서의 패킷 레이트, 및 상기 싱크 디바이스들 각각에서의 송신 딜레이 인터벌, 수신 딜레이 인터벌, 및 트리거 딜레이 인터벌 중 하나 또는 그 초과에 기초하여 상기 유니버셜 큐 크기를 선택하는 것을 포함하는,
    소스 디바이스.
  37. 제 26 항에 있어서,
    상기 프로세서는:
    상기 싱크 큐가 꽉 찬 것으로 검출하는 것과 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하는 것 사이에, 특정한 싱크 디바이스에 대한 대기 시간을 나타내는 트리거 딜레이 인터벌을 상기 싱크 디바이스들 각각에 대해 계산하고; 그리고
    상기 싱크 디바이스들 각각에, 그들의 개별적인 트리거 딜레이 인터벌을 통지하도록 더 구성되는,
    소스 디바이스.
  38. 제 37 항에 있어서,
    상기 통신 세션이 상기 소스 디바이스와 하나의 싱크 디바이스 사이의 유니캐스트 통신 세션 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션 중 하나를 포함하는 경우, 상기 싱크 디바이스들 각각에 대한 트리거 딜레이 인터벌은 0과 동일한,
    소스 디바이스.
  39. 제 26 항에 있어서,
    상기 통신 세션은 스트리밍 모드 및 프레임 버퍼 모드 중 하나에서 동작하는,
    소스 디바이스.
  40. 제 26 항에 있어서,
    상기 선택된 유니버셜 큐 크기를 지원할 수 없는 싱크 디바이스를 배제하도록 더 구성되는,
    소스 디바이스.
  41. 싱크 디바이스로서,
    소스 디바이스에, 상기 싱크 디바이스들과의 통신 세션을 확립하도록 요청하도록 구성된 프로세서;
    상기 소스 디바이스로부터 유니버셜 큐 크기의 통지를 수신하고, 그리고 상기 통신 세션의 일부로서 패킷들을 상기 소스 디바이스로부터 수신하는 수신기 ― 상기 유니버셜 큐 크기는 적어도 상기 소스 디바이스 및 상기 싱크 디바이스의 지원된 큐 크기들에 기초하여 선택되고, 상기 패킷들은 상기 소스 디바이스에서 상기 유니버셜 큐 크기를 갖는 소스 큐에 홀딩됨 ―; 및
    상기 패킷들을 홀딩하는, 상기 유니버셜 큐 크기를 갖는 싱크 큐 ― 상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 프로세서는 상기 싱크 디바이스에서의 디스플레이를 위해 상기 싱크 큐 내의 상기 패킷들의 프로세싱을 시작하고, 상기 싱크 디바이스에서의 패킷 프로세싱은 적어도 상기 소스 디바이스에서의 패킷 프로세싱과 동기화됨 ― 를 포함하는,
    싱크 디바이스.
  42. 제 41 항에 있어서,
    상기 통신 세션은 상기 소스 디바이스와 유일한 상기 싱크 디바이스 사이의 유니캐스트 통신 세션, 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션, 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 다수의 유니캐스트 통신 세션들 중 하나를 포함하는,
    싱크 디바이스.
  43. 제 41 항에 있어서,
    상기 프로세서는, 상기 싱크 디바이스의 지원된 큐 크기를 리포트하라는 상기 소스 디바이스로부터의 질의에 응답하도록 더 구성되는,
    싱크 디바이스.
  44. 제 41 항에 있어서,
    상기 유니버셜 큐 크기는 상기 통신 세션에 참여하는 모든 싱크 디바이스들에 걸쳐서 최소 지원된 큐 크기와 동일하거나 또는 그 미만이 되도록 선택되는,
    싱크 디바이스.
  45. 제 41 항에 있어서,
    상기 프로세서는:
    상기 소스 디바이스로부터 상기 싱크 디바이스에 대한 트리거 딜레이 인터벌의 통지를 수신하고 ― 상기 트리거 딜레이 인터벌은 상기 데이터 패킷들을 수신하기 위해 상기 통신 세션에 참여하는 다른 싱크 디바이스들 중 적어도 하나에 대한 시간 인터벌을 나타냄 ―; 그리고
    상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하기 전에 상기 트리거 딜레이 인터벌 동안 대기하도록 더 구성되는,
    싱크 디바이스.
  46. 제 41 항에 있어서,
    상기 통신 세션이 상기 소스 디바이스와 하나의 싱크 디바이스 사이의 유니캐스트 통신 세션 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션 중 하나를 포함하는 경우, 상기 싱크 디바이스에 대한 트리거 딜레이 인터벌은 0과 동일한,
    싱크 디바이스.
  47. 제 41 항에 있어서,
    상기 통신 세션은 스트리밍 모드 및 프레임 버퍼 모드 중 하나에서 동작하는,
    싱크 디바이스.
  48. 제 41 항에 있어서,
    상기 프로세서는, 상기 싱크 디바이스로 하여금 상기 소스 디바이스와의 이미 확립된 통신 세션에 조인하게 하고 프리젠테이션 조인을 떠나게 하도록 구성되고, 상기 싱크 디바이스로 하여금 일 세트의 데이터 패킷들의 완료 이전에 상기 소스 디바이스와의 이미 확립된 통신 세션을 빠져나가게 하도록 더 구성되는,
    싱크 디바이스.
  49. 소스 디바이스로서,
    상기 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 통신 세션을 확립하기 위한 수단;
    상기 통신 세션을 위해 상기 소스 디바이스에 의해 선택된 유니버셜 큐 크기를 상기 싱크 디바이스들 각각에 통지하기 위한 수단;
    상기 싱크 디바이스들 각각에 데이터 패킷들을 전송하기 위한 수단 ― 상기 데이터 패킷들은 상기 유니버셜 큐 크기를 갖는 싱크 큐들 내의 상기 싱크 디바이스들에서 홀딩됨 ― ;
    상기 유니버셜 큐 크기를 갖는 소스 큐 내의 상기 소스 디바이스에서 상기 데이터 패킷들을 홀딩하기 위한 수단; 및
    상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 소스 디바이스에서의 디스플레이를 위해 상기 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하기 위한 수단 ― 상기 소스 디바이스에서의 프로세싱은, 상기 싱크 디바이스들에서 상기 데이터 패킷들의 프로세싱과 동기화됨 ― 을 포함하는,
    소스 디바이스.
  50. 제 49 항에 있어서,
    상기 싱크 디바이스들 각각에, 지원된 큐 크기들에 대해 질의하고; 그리고
    상기 소스 디바이스를 이용하여, 상기 소스 디바이스 및 상기 싱크 디바이스들의 지원된 큐 크기들에 기초하여 상기 유니버셜 큐 크기를 선택하기 위한
    수단을 더 포함하는,
    소스 디바이스.
  51. 제 49 항에 있어서,
    상기 소스 디바이스에 대한 송신 딜레이 인터벌을 측정하고 ― 상기 송신 딜레이 인터벌은, 마지막 싱크 디바이스가 상기 데이터 패킷들을 수신하기 위한 시간 인터벌을 나타냄 ―; 그리고
    상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하기 전에 상기 송신 딜레이 인터벌 동안 대기하기 위한
    수단을 더 포함하는,
    소스 디바이스.
  52. 싱크 디바이스로서,
    소스 디바이스에, 상기 싱크 디바이스와의 통신 세션을 확립하도록 요청하기 위한 수단;
    상기 소스 디바이스로부터 유니버셜 큐 크기에 대한 통지를 수신하기 위한 수단 ― 상기 유니버셜 큐 크기는, 적어도 상기 소스 디바이스 및 상기 싱크 디바이스의 지원된 큐 크기들에 기초하여 선택됨 ―;
    상기 통신 세션의 일부로서 상기 소스 디바이스로부터 패킷들을 수신하기 위한 수단 ― 상기 패킷들은 상기 소스 디바이스에서 상기 유니버셜 큐 크기를 갖는 소스 큐에 홀딩됨 ―;
    상기 싱크 디바이스에서 상기 유니버셜 큐 크기를 갖는 싱크 큐에 상기 패킷들을 홀딩하기 위한 수단; 및
    상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 싱크 디바이스에서의 디스플레이를 위해 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하기 위한 수단 ― 상기 싱크 디바이스들에서의 패킷 프로세싱은, 상기 소스 디바이스에서의 패킷 프로세싱과 동기화됨 ― 을 포함하는,
    싱크 디바이스.
  53. 제 52 항에 있어서,
    상기 통신 세션은 상기 소스 디바이스와 유일한 상기 싱크 디바이스 사이의 유니캐스트 통신 세션, 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 멀티캐스트 통신 세션, 및 상기 소스 디바이스와 다수의 싱크 디바이스들 사이의 다수의 유니캐스트 통신 세션 중 하나를 포함하는,
    싱크 디바이스.
  54. 제 52 항에 있어서,
    상기 소스 디바이스로부터 상기 싱크 디바이스에 대한 트리거 딜레이 인터벌의 통지를 수신하기 위한 수단 ― 상기 트리거 딜레이 인터벌은 상기 데이터 패킷들을 수신하기 위해 상기 통신 세션에 참여하는 다른 싱크 디바이스들 중 적어도 하나에 대한 시간 인터벌을 나타냄 ―; 및
    상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하기 전에 상기 트리거 딜레이 인터벌 동안 대기하기 위한 수단을 더 포함하는,
    싱크 디바이스.
  55. 컴퓨터-판독가능 매체로서,
    소스 디바이스에서 실행될 때, 프로세서로 하여금:
    상기 소스 디바이스와 하나 또는 그 초과의 싱크 디바이스들 사이의 통신 세션을 확립하고;
    상기 통신 세션을 위해 상기 소스 디바이스에 의해 선택된 유니버셜 큐 크기를 상기 싱크 디바이스들 각각에 통지하고;
    상기 싱크 디바이스들 각각에 데이터 패킷들을 전송하고 ― 상기 데이터 패킷들은 상기 유니버셜 큐 크기를 갖는 싱크 큐들 내의 상기 싱크 디바이스들에서 홀딩됨 ―;
    상기 유니버셜 큐 크기를 갖는 소스 큐 내의 상기 소스 디바이스에서 상기 데이터 패킷들을 홀딩하고; 그리고
    상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 소스 디바이스에서의 디스플레이를 위해 상기 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하게 하는 ― 상기 소스 디바이스에서의 프로세싱은, 상기 싱크 디바이스들에서 상기 데이터 패킷들의 프로세싱과 동기화됨 ―
    명령들을 포함하는,
    컴퓨터-판독가능 매체.
  56. 제 55 항에 있어서,
    소스 디바이스에서 실행될 때, 프로세서로 하여금:
    상기 싱크 디바이스들 각각에, 지원된 큐 크기들에 대해 질의하고; 그리고
    상기 소스 디바이스 및 상기 싱크 디바이스들의 지원된 큐 크기들에 기초하여 상기 유니버셜 큐 크기를 선택하게 하는
    명령들을 더 포함하는,
    컴퓨터-판독가능 매체.
  57. 제 55 항에 있어서,
    소스 디바이스에서 실행될 때, 프로세서로 하여금:
    소스 디바이스에 대한 송신 딜레이 인터벌을 측정하고 ― 상기 송신 딜레이 인터벌은 마지막 싱크 디바이스가 상기 데이터 패킷들을 수신하기 위한 시간 인터벌을 나타냄 ―; 그리고
    상기 소스 큐가 꽉 찬 것으로 검출하면, 상기 소스 큐 내의 데이터 패킷들의 프로세싱을 시작하기 전에 상기 송신 딜레이 인터벌 동안 대기하게 하는
    명령들을 더 포함하는,
    컴퓨터-판독가능 매체.
  58. 컴퓨터-판독가능 매체로서,
    싱크 디바이스에서 실행될 때, 프로세서로 하여금:
    소스 디바이스에, 상기 싱크 디바이스와의 통신 세션을 확립하도록 요청하고;
    소스 디바이스로부터 유니버셜 큐 크기의 통지를 수신하고 ― 상기 유니버셜 큐 크기는, 적어도 상기 소스 디바이스 및 상기 싱크 디바이스의 지원된 큐 크기들에 기초하여 선택됨 ―;
    상기 통신 세션의 일부로서 패킷들을 상기 소스 디바이스로부터 수신하고 ― 상기 패킷들은 상기 소스 디바이스에서 상기 유니버셜 큐 크기를 갖는 소스 큐에 홀딩됨 ―;
    상기 싱크 디바이스에서 상기 유니버셜 큐 크기를 갖는 싱크 큐에 상기 패킷들을 홀딩하고; 그리고
    상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 싱크 디바이스에서의 디스플레이를 위해 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하게 하는 ― 상기 싱크 디바이스에서의 패킷 프로세싱은, 상기 소스 디바이스에서의 패킷 프로세싱과 동기화됨 ―
    명령들을 포함하는,
    컴퓨터-판독가능 매체.
  59. 제 58 항에 있어서,
    소스 디바이스에서 실행될 때, 프로세서로 하여금:
    상기 소스 디바이스로부터 상기 싱크 디바이스에 대한 트리거 딜레이 인터벌의 통지를 수신하고 ― 상기 트리거 딜레이 인터벌은 상기 데이터 패킷들을 수신하기 위해 상기 통신 세션에 참여하는 다른 싱크 디바이스들 중 적어도 하나에 대한 시간 인터벌을 나타냄 ―; 그리고
    상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 싱크 큐 내의 패킷들의 프로세싱을 시작하기 전에, 상기 트리거 딜레이 인터벌 동안 대기하게 하는
    명령들을 더 포함하는,
    컴퓨터-판독가능 매체.
  60. 방법으로서,
    싱크 디바이스와 소스 디바이스 사이의 통신 세션을 확립하는 단계;
    상기 소스 디바이스로부터 유니버셜 큐 크기의 통지를 수신하는 단계 ― 상기 유니버셜 큐 크기는 상기 통신 세션을 위해 상기 소스 디바이스에 의해 선택됨 ―;
    상기 소스 디바이스로부터 데이터 패킷들을 수신하는 단계 ― 상기 데이터 패킷들은 상기 유니버셜 큐 크기를 갖는 소스 큐 내의 상기 소스 디바이스에서 홀딩됨 ―;
    상기 유니버셜 큐 크기를 갖는 싱크 큐 내의 상기 싱크 디바이스에서 상기 데이터 패킷들을 홀딩하는 단계; 및
    상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 싱크 디바이스에서의 디스플레이를 위해 상기 싱크 큐 내의 데이터 패킷들의 프로세싱을 시작하는 단계 ― 상기 싱크 디바이스에서의 프로세싱은, 상기 소스 디바이스에서의 데이터 패킷들의 프로세싱과 동기화됨 ― 를 포함하는,
    방법.
  61. 제 60 항에 있어서,
    상기 싱크 디바이스의 지원된 큐 크기들을 리포트하라는 상기 소스 디바이스로부터의 질의에 응답하는 단계 ― 상기 유니버셜 큐 크기는, 상기 소스 디바이스 및 상기 싱크 디바이스의 지원된 큐 크기들에 기초하여 상기 소스 디바이스에 의해 선택됨 ― 를 더 포함하는,
    방법.
  62. 제 60 항에 있어서,
    상기 소스 디바이스로부터 상기 싱크 디바이스에 대한 트리거 딜레이 인터벌의 통지를 수신하는 단계 ― 상기 트리거 딜레이 인터벌은 상기 데이터 패킷들을 수신하기 위해 상기 통신 세션에 참여하는 다른 싱크 디바이스들 중 적어도 하나에 대한 시간 인터벌을 나타냄 ―; 및
    상기 싱크 큐가 꽉 찬 것으로 검출하면, 상기 싱크 큐 내의 데이터 패킷들의 프로세싱을 시작하기 전에 상기 트리거 딜레이 인터벌 동안 대기하는 단계를 더 포함하는,
    방법.
KR1020167023725A 2011-09-13 2012-09-10 동기화된 무선 디스플레이 디바이스들 KR20160106193A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161534193P 2011-09-13 2011-09-13
US61/534,193 2011-09-13
US201161539726P 2011-09-27 2011-09-27
US61/539,726 2011-09-27
US201261595932P 2012-02-07 2012-02-07
US61/595,932 2012-02-07
US13/559,313 2012-07-26
US13/559,313 US9712573B2 (en) 2011-09-13 2012-07-26 Synchronized wireless display devices
PCT/US2012/054499 WO2013039841A1 (en) 2011-09-13 2012-09-10 Synchronized wireless display devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147009892A Division KR20140069155A (ko) 2011-09-13 2012-09-10 동기화된 무선 디스플레이 디바이스들

Publications (1)

Publication Number Publication Date
KR20160106193A true KR20160106193A (ko) 2016-09-09

Family

ID=46888695

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147009892A KR20140069155A (ko) 2011-09-13 2012-09-10 동기화된 무선 디스플레이 디바이스들
KR1020167023725A KR20160106193A (ko) 2011-09-13 2012-09-10 동기화된 무선 디스플레이 디바이스들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020147009892A KR20140069155A (ko) 2011-09-13 2012-09-10 동기화된 무선 디스플레이 디바이스들

Country Status (10)

Country Link
US (2) US9712573B2 (ko)
EP (1) EP2756639B1 (ko)
JP (1) JP5989779B2 (ko)
KR (2) KR20140069155A (ko)
CN (1) CN103797810B (ko)
BR (1) BR112014005778A2 (ko)
ES (1) ES2702760T3 (ko)
HU (1) HUE041379T2 (ko)
TW (1) TWI475855B (ko)
WO (1) WO2013039841A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9198084B2 (en) 2006-05-26 2015-11-24 Qualcomm Incorporated Wireless architecture for a traditional wire-based protocol
US9398089B2 (en) 2008-12-11 2016-07-19 Qualcomm Incorporated Dynamic resource sharing among multiple wireless devices
US9264248B2 (en) 2009-07-02 2016-02-16 Qualcomm Incorporated System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment
US9582238B2 (en) 2009-12-14 2017-02-28 Qualcomm Incorporated Decomposed multi-stream (DMS) techniques for video display systems
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US20130013318A1 (en) 2011-01-21 2013-01-10 Qualcomm Incorporated User input back channel for wireless displays
US8964783B2 (en) 2011-01-21 2015-02-24 Qualcomm Incorporated User input back channel for wireless displays
US9787725B2 (en) 2011-01-21 2017-10-10 Qualcomm Incorporated User input back channel for wireless displays
US9065876B2 (en) 2011-01-21 2015-06-23 Qualcomm Incorporated User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
US9413803B2 (en) 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US10108386B2 (en) 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US9503771B2 (en) 2011-02-04 2016-11-22 Qualcomm Incorporated Low latency wireless display for graphics
US9712573B2 (en) 2011-09-13 2017-07-18 Qualcomm Incorporated Synchronized wireless display devices
US9525998B2 (en) * 2012-01-06 2016-12-20 Qualcomm Incorporated Wireless display with multiscreen service
US9787523B2 (en) * 2012-07-05 2017-10-10 Eric Lazarus Managing data in a data queue including synchronization of media on multiple devices
WO2014029076A1 (en) * 2012-08-21 2014-02-27 Intel Corporation Widi cloud mode
US9307508B2 (en) 2013-04-29 2016-04-05 Google Technology Holdings LLC Systems and methods for syncronizing multiple electronic devices
CN106936671B (zh) * 2013-06-18 2020-07-24 华为技术有限公司 多屏互动方法、装置及终端设备
US9736806B2 (en) * 2014-02-28 2017-08-15 Qualcomm Incorporated Apparatuses and methods for wireless synchronization of multiple multimedia devices using a common timing framework
TWI616808B (zh) * 2014-06-30 2018-03-01 緯創資通股份有限公司 分享顯示畫面的方法及裝置
US9665336B2 (en) * 2014-07-29 2017-05-30 Qualcomm Incorporated Direct streaming for wireless display
US10129839B2 (en) * 2014-12-05 2018-11-13 Qualcomm Incorporated Techniques for synchronizing timing of wireless streaming transmissions to multiple sink devices
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
AU2015386336B2 (en) 2015-03-17 2018-10-18 Sony Corporation Information processing device, information processing method, and program
CN107239253B (zh) * 2016-03-29 2020-05-12 扬智科技股份有限公司 同步播放速度的无线局域网播放器、系统及其方法
US20180007428A1 (en) * 2016-06-29 2018-01-04 Intel Corporation Wireless display implementation of applications
CN106454474B (zh) * 2016-10-08 2019-08-06 Oppo广东移动通信有限公司 多媒体同步播放方法、装置及系统
US11818187B2 (en) * 2019-08-31 2023-11-14 Sonos, Inc. Mixed-mode synchronous playback

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092142A (en) 1998-02-26 2000-07-18 Intel Corporation Method and apparatus to introduce programmable delays when replaying isochronous data packets
US7047308B2 (en) 2001-08-31 2006-05-16 Sharp Laboratories Of America, Inc. System and method for simultaneous media playout
JP2003235027A (ja) 2002-02-12 2003-08-22 Matsushita Electric Ind Co Ltd 配信映像の同時再生方法、映像配信システムおよび端末装置
EP1398931B1 (en) 2002-09-06 2006-05-03 Sony Deutschland GmbH Synchronous play-out of media data packets
US20070110074A1 (en) 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
JP2005354351A (ja) 2004-06-10 2005-12-22 Nippon Telegr & Teleph Corp <Ntt> 多地点コミュニケーションの通信端末装置および遅延同期制御方法
US8515471B2 (en) 2008-02-15 2013-08-20 Samsung Electronics Co., Ltd. System and method for wireless communication network using beamforming and having a multi-cast capacity
US8275232B2 (en) 2008-06-23 2012-09-25 Mediatek Inc. Apparatus and method of transmitting / receiving multimedia playback enhancement information, VBI data, or auxiliary data through digital transmission means specified for multimedia data transmission
US8223641B2 (en) * 2008-07-28 2012-07-17 Cellco Partnership Dynamic setting of optimal buffer sizes in IP networks
WO2010077564A1 (en) 2008-12-08 2010-07-08 Analog Devices Inc. Multimedia switching over wired or wireless connections in a distributed environment
KR101627779B1 (ko) 2009-04-14 2016-06-08 에이티아이 테크놀로지스 유엘씨 내포된 클럭 복원
US8406245B2 (en) 2009-07-09 2013-03-26 Qualcomm Incorporated System and method of transmitting content from a mobile device to a wireless display
US20110066746A1 (en) 2009-09-11 2011-03-17 Broadcom Corporation Synchronized data streaming
US9712573B2 (en) 2011-09-13 2017-07-18 Qualcomm Incorporated Synchronized wireless display devices

Also Published As

Publication number Publication date
JP2015502672A (ja) 2015-01-22
US20140362849A1 (en) 2014-12-11
BR112014005778A2 (pt) 2017-03-28
EP2756639B1 (en) 2018-10-24
TW201320684A (zh) 2013-05-16
CN103797810B (zh) 2018-05-25
JP5989779B2 (ja) 2016-09-07
TWI475855B (zh) 2015-03-01
CN103797810A (zh) 2014-05-14
US9680884B2 (en) 2017-06-13
US20130188632A1 (en) 2013-07-25
KR20140069155A (ko) 2014-06-09
EP2756639A1 (en) 2014-07-23
ES2702760T3 (es) 2019-03-05
US9712573B2 (en) 2017-07-18
HUE041379T2 (hu) 2019-05-28
WO2013039841A1 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
US9680884B2 (en) Synchronized wireless display devices
US10057662B2 (en) Flow controlled based synchronized playback of recorded media
US9648073B2 (en) Streaming control for real-time transport protocol
US11144171B2 (en) Reduced latency server-mediated audio-video communication
US9030523B2 (en) Flow-control based switched group video chat and real-time interactive broadcast
US20120233644A1 (en) Mobile device capable of substantially synchronized sharing of streaming media with other devices
US20140213227A1 (en) Mobile device capable of substantially synchronized sharing of streaming media, calls and other content with other devices
US10368258B2 (en) Interactions among mobile devices in a wireless network
CN103905880A (zh) 音视频数据的播放方法、智能电视和移动设备
CN103905877A (zh) 音视频数据的播放方法、智能电视和移动设备
CN105828151A (zh) 一种显示处理方法及装置
KR101484313B1 (ko) 미디어 데이터를 송수신하기 위한 PoC 시스템과 PoC단말 및 그에 의한 미디어 데이터 송수신 방법
KR20150103789A (ko) 끊김 없는 화면 전환을 위한 아이피 멀티캐스트 기반 콘텐츠 프리페치 기법
KR20140067220A (ko) 대화형 멀티 스트림의 송수신 방법 및 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid