KR20140035310A - 미디어 배포 아키텍처 - Google Patents

미디어 배포 아키텍처 Download PDF

Info

Publication number
KR20140035310A
KR20140035310A KR1020137013055A KR20137013055A KR20140035310A KR 20140035310 A KR20140035310 A KR 20140035310A KR 1020137013055 A KR1020137013055 A KR 1020137013055A KR 20137013055 A KR20137013055 A KR 20137013055A KR 20140035310 A KR20140035310 A KR 20140035310A
Authority
KR
South Korea
Prior art keywords
media
network
node
signal
nodes
Prior art date
Application number
KR1020137013055A
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 KR20140035310A publication Critical patent/KR20140035310A/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/282Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
    • 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/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/80Responding to QoS
    • 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
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43076Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4516Management of client data or end-user data involving client characteristics, e.g. Set-Top-Box type, software version or amount of memory available
    • 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/47End-user applications
    • H04N21/485End-user interface for client configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/284Home automation networks characterised by the type of medium used
    • H04L2012/2841Wireless

Abstract

정확한 타이밍 동기화를 유지하면서 다수의 구역으로의 미디어의 동시 전송을 가능하게 해주는 유선 및 무선 미디어 전송 기술이 제공된다. 사용자는 스피커들의 네트워크를 가질 수 있고, 어느 스피커가 능동적으로 재생하고 있고 그의 재생이 동기화되어 있는지를 독립적으로 선택할 수 있다. 미디어 소스는 휴대폰, 태블릿, 스테레오, 셋톱 박스, PC, 또는 기타 장치일 수 있다. 미디어 자체가 오디오 또는 비디오일 수 있다. 네트워크로의 미디어의 전송 방법은 보조 케이블을 통하는 것과 같은 유선, 또는 블루투스 또는 WiFi에서와 같은 무선일 수 있다. 스피커/종단점 자체는 자기 형성 네트워크(self-forming network)에서 통제된다. 오디오가 소스로부터 네트워크 내로 주입되고, 종단점 네트워크 자체가 오디오/비디오 배포, 타이밍 및 렌더링을 제어한다.

Description

미디어 배포 아키텍처{MEDIA DISTRIBUTION ARCHITECTURE}
우선권
본 출원은 2010년 10월 22일자로 출원된, 발명의 명칭이 "미디어 배포 아키텍처(Media Distribution Architecture)"인 Lau 등의 미국 가특허 출원 제61/405,835호(참조 문헌으로서 본 명세서에 포함됨)를 기초로 우선권을 주장한다.
사람들은 그의 셀룰러폰[예컨대, 아이폰(iPhone), 드로이드(Droid) 등] 및 기타 전자 장치를 사용하여, 음악 또는 비디오 등의 콘텐츠를 재생한다. 본 명세서에서, 미디어를 제공하는 장치는 "미디어 소스 장치"라고 한다. 기타 미디어 소스 장치로는 태블릿 컴퓨터, 랩톱 컴퓨터, 개인용 컴퓨터 등이 있다. 사용자는 로컬적으로 저장되어 있거나 인터넷 등의 다른 소스로부터 검색되는 미디어를 재생할 수 있게 해주는 MP3 플레이어, 웹 브라우저, 미디어 플레이어 등과 같은 응용 프로그램을 가질 수 있다.
종종, 미디어 소스 장치는 미디어를 적절히 렌더링하지 않는다. 예를 들어, 셀룰러폰 상의 디스플레이는 너무 작을 수 있거나, 스피커가 충분한 품질 또는 음량을 갖지 않을 수 있다. 더욱이, 2명 이상의 사람이 미디어 소스 장치의 출력을 쉽게 보거나 들을 수 없을지도 모른다. 게다가, 미디어 소스 장치를 휴대하고 있지 않은 경우, 사용자는 자신의 집 전체의 다양한 위치에서 미디어를 즐길 수 없다.
사용자가 자신의 집 또는 다른 환경 등 어디에서나 미디어 콘텐츠를 보거나 들을 수 있다면 유익할 것이다. 사용자가 선택적으로 미디어가 어디에서 렌더링되는지를 정확히 선택할 수 있다면 유익할 것이다. 또한, 미디어를 재생하기 위해 미디어 소스 장치에서 어느 응용 프로그램이 실행되고 있든 간에 이 해결 방안이 그 응용 프로그램에 대해 동작한다면 유익할 것이다.
정확한 타이밍 동기화를 유지하면서 다수의 구역으로의 미디어의 동시 전송을 가능하게 해주는 유선 및 무선 미디어 전송 기술이 제공된다. 사용자는 스피커들의 네트워크를 가질 수 있고, 어느 스피커가 능동적으로 재생하고 있고 그의 재생이 동기화되어 있는지를 독립적으로 선택할 수 있다. 미디어 소스는 휴대폰, 태블릿, 스테레오, 셋톱 박스, PC, 또는 기타 장치일 수 있다. 미디어 자체가 오디오 또는 비디오일 수 있다. 네트워크로의 미디어의 전송 방법은 보조 케이블을 통하는 것과 같은 유선, 또는 블루투스 또는 WiFi에서와 같은 무선일 수 있다. 스피커/종단점 자체는 자기 형성 네트워크(self-forming network)에서 통제된다. 오디오가 소스로부터 네트워크 내로 주입되고, 종단점 네트워크 자체가 오디오/비디오 배포, 타이밍 및 렌더링을 제어한다.
도 1은 실시예가 실시될 수 있는 예시적인 환경을 나타낸 도면.
도 2는 가상 미디어 네트워크를 형성하고 운영하는 프로세스의 일 실시예를 나타낸 플로우차트.
도 3a 내지 도 3g는 사용자가 실시예를 사용하여 설정할 수 있는 상이한 가상 미디어 네트워크의 예를 나타낸 도면.
도 4는 네트워크 발견 프로세스의 일 실시예의 플로우차트.
도 5a는 미디어 소스 장치를 게이트웨이 미디어 노드와 페어링(pairing)하는 프로세스의 일 실시예의 플로우차트.
도 5b는 미디어 소스 장치를 게이트웨이 미디어 노드와 페어링할 때 사용되는 메시지의 일 실시예를 나타낸 도면.
도 6a는 추가의 미디어 노드를 가상 미디어 네트워크에 부가하는 프로세스의 일 실시예를 나타낸 플로우차트.
도 6b는 새로운 노드를 가상 미디어 네트워크에 링크시킬 때 사용되는 메시지의 일 실시예를 나타낸 도면.
도 7a는 미디어 노드의 일 실시예의 블록도.
도 7b는 미디어 소스 장치의 일 실시예의 블록도.
도 7c는 오디오 신호 및 명령 둘 다가 동일한 네트워크 프로토콜을 사용하여 송신되는 미디어 소스 장치의 일 실시예를 나타낸 도면.
도 7d는 미디어 소스 응용 프로그램이 가상 네트워크 미디어 응용 프로그램에 내장되어 있는 미디어 소스 장치의 일 실시예의 블록도.
도 8은 미디어 신호 및 명령을 미디어 소스 장치로부터 미디어 노드로 송신하는 것의 일 실시예의 플로우차트.
도 9는 미디어 신호 및 명령을 미디어 소스 장치로부터 미디어 노드로 송신하는 것의 일 실시예의 플로우차트.
도 10은 미디어 신호 및 명령을 미디어 소스 장치로부터 미디어 노드로 송신하는 것의 일 실시예의 플로우차트.
도 11a는 게이트웨이가 미디어 신호를 브로드캐스트하는 것의 일 실시예의 플로우차트.
도 11b는 미디어 소스 노드가, 미디어 신호의 기본 형식(native format)을 사용하여, 미디어 신호를 게이트웨이로 송신하는 것의 일 실시예의 플로우차트.
도 11c는 미디어 소스 장치가 기본 형식을 조작하는 일 실시예의 플로우차트.
도 12는 본 명세서에 기재된 기술을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 시스템의 블록도.
본 명세서에 기재된 기술은 미디어 콘텐츠를 배포하는 아키텍처를 제공한다. 정확한 타이밍 동기화를 유지하면서 다수의 구역으로의 미디어의 동시 전송을 가능하게 해주는 유선 및 무선 미디어 전송 기술이 제공된다. 사용자는 스피커들의 네트워크를 가질 수 있고, 어느 스피커가 능동적으로 재생하고 있고 그의 재생이 동기화되어 있는지를 독립적으로 선택할 수 있다. 이 스피커 네트워크는 본 명세서에서 가상 미디어 네트워크라고 한다. 유의할 점은, 미디어 신호 자체가 오디오 또는 비디오일 수 있다는 것이다. 따라서, 가상 미디어 네트워크는 디스플레이 장치를 포함할 수 있다.
미디어 소스 장치는 휴대폰, 태블릿, 스테레오, 셋톱 박스, PC, 또는 기타 장치일 수 있다. 네트워크로의 미디어의 전송 방법은 보조 케이블을 통하는 것과 같은 유선, 또는 블루투스 또는 WiFi에서와 같은 무선일 수 있다. 스피커 자체는 자기 형성 네트워크(self-forming network)에서 통제될 수 있다. 오디오가 미디어 소스 장치로부터 네트워크 내로 주입될 수 있고, 종단점 네트워크 자체가 오디오/비디오 배포, 타이밍 및 렌더링을 제어한다. 일 실시예에서, 네트워크에 주입되는 오디오는 오디오-비디오 신호의 오디오 부분이다. 비디오 신호는 미디어 소스 장치(예컨대, 태블릿 컴퓨터) 상에서 재생될 수 있다. 유의할 점은, 오디오 신호가 비디오 신호와 동기된 채로 있을 수 있다는 것이다.
일 실시예에서, 사용자는 미디어의 소스로서 역할할 임의의 미디어 응용 프로그램을 선택할 수 있다. 예를 들어, 사용자는 MP3 응용 프로그램, 인터넷 라디오 응용 프로그램 등을 선택할 수 있다. 사용자는 이어서, 미디어가 선택된 출력 장치로 송신되게 하기 위해, 그의 거실에 있는 스피커 등의 출력 장치를 간단히 선택할 수 있다. 오디오가, 운영 체제에 의해, 선택된 출력 장치로 송신될 수 있다. 사용자는 다른 스피커를 가상 미디어 네트워크에 부가하기 위해서는 물론, 스피커의 볼륨을 제어하는 등을 위해 제2 응용 프로그램을 호출할 수 있다. 일 실시예에서, 제2 응용 프로그램은 오디오를 결코 건드리지 않는다. 네트워크 내의 장치는 오디오/비디오 배포, 타이밍 및 렌더링을 처리할 수 있다. 따라서, 미디어 소스 장치는 이 처리의 부담을 지고 있지 않다. 더욱이, 유의할 점은 이 해결 방안이 사용자가 좋아하는 미디어 응용 프로그램이라면 어느 것이든 미디어의 소스로서 선택할 수 있게 해준다는 것이다. 미디어 소스 응용 프로그램에 대해 어떤 수정도 필요로 하지 않는다.
본 설명 전체에 걸쳐 이하의 정의가 사용될 것이다:
브로드캐스터(Broadcaster) - 가상 미디어 네트워크를 위한 형식으로 되어 있는 미디어 스트림을 전송할 수 있는 임의의 장치. 또한 장치 내의 브로드캐스팅 메커니즘을 말하는 것일 수 있다.
렌더러(Renderer) - 가상 미디어 네트워크를 위한 형식으로 되어 있는 미디어 스트림을 렌더링할 수 있는 임의의 장치. 또한 장치 내의 렌더링 메커니즘을 말하는 것일 수 있다.
미디어 노드(Media Node) - 렌더러 또는 브로드캐스터를 포함하는 임의의 장치. 일 실시예의 노드는 네트워크 시간 동기화 및 미디어 라우팅 정보를 포함한 네트워크의 상태를 유지하는 일을 맡고 있다.
미디어 소스 장치(Media source device) - 원본 미디어를 싱크(sink)로 전송하는 임의의 장치.
싱크(Sink) - 소스로부터 발신되는 미디어를 수신하는 임의의 장치. 또한 미디어 신호를 수신하는 장치 내의 메커니즘을 말하는 것일 수 있다.
게이트웨이 지원 미디어 노드(Gateway Capable Media Node) - 싱크 및 브로드캐스터를 겸비한 임의의 장치. 게이트웨이는 싱크로부터 미디어를 받아 가상 미디어 네트워크를 통해 렌더러로 다시 브로드캐스트한다.
가상 미디어 네트워크(Virtual Media Network) - 적어도 하나의 게이트웨이를 가지는 하나 이상의 노드의 그룹. 가상 미디어 네트워크는 사용자에 의해 설정될 수 있고, 네트워크 내의 모든 렌더링 장치 사이에 동기화되어 있는 미디어 신호를 렌더링한다. 유의할 점은, 가상 미디어 네트워크의 일 실시예에서, 하나의 미디어 노드만이 활성 게이트웨이로서 역할한다는 것이다.
도 1은 실시예가 실시될 수 있는 예시적인 환경을 나타낸 것이다. 이 예에서, 총 5개의 네트워크 미디어 노드(104)가 있다. 현재, 2개의 가상 미디어 네트워크가 있다. 미디어 소스 장치(102a)는 하나의 가상 미디어 네트워크에 대한 미디어 신호의 소스로서 역할하는 반면, 미디어 소스 장치(102b)는 다른 가상 미디어 네트워크에 대한 미디어 소스로서 역할한다. 미디어 신호는 오디오 또는 비디오일 수 있다. 일 실시예에서, 미디어 신호는 오디오-비디오 신호의 오디오 부분이다. 비디오 신호는 미디어 소스 장치(102)(예컨대, 태블릿 컴퓨터, 휴대폰 등) 상에서 재생될 수 있다. 유의할 점은, 오디오 신호가 비디오 신호와 동기된 채로 있을 수 있다는 것이다. 또한 유의할 점은, 비디오 신호가 가상 미디어 네트워크 내의 장치들 중 하나의 장치로 또는 미디어 소스 노드(102) 이외의 어떤 장치로 송신될 수 있다는 것이다. 미디어 소스 장치(102)는 셀룰러폰, 태블릿 컴퓨터, 스테레오 시스템, 셋톱 박스, 개인용 컴퓨터(PC), 또는 기타 장치일 수 있다. 일 실시예에서, 각각의 가상 미디어 네트워크는 하나의 게이트웨이 장치를 가진다. 앞서 살펴본 바와 같이, 게이트웨이 장치는 미디어 신호를 수신하는 싱크 및 브로드캐스터를 가진다. 게이트웨이 장치는 오디오 및/또는 비디오를 렌더링하는 렌더러를 갖거나 갖지 않을 수 있다. 현재, 거실에 있는 장치는 게이트웨이로서 역할하지만, 브로드캐스터를 가지는 다른 장치는 게이트웨이로서 기능할 수 있다.
일 실시예에서, 이 시스템은 정확한 타이밍 동기화를 유지하면서 미디어의 다수의 구역으로의 동시 전송을 가능하게 해준다. 한 예로서, 사용자는 스피커들의 네트워크를 가질 수 있고, 어느 스피커가 능동적으로 재생하고 있고 그의 재생이 동기화되어 있는지를 독립적으로 선택할 수 있다. 네트워크로의 미디어의 전송 방법은 보조 케이블을 통하는 것과 같은 유선, 또는 블루투스, WiFi 또는 다른 네트워크 통신 프로토콜에서와 같은 무선일 수 있다. 한 예로서, 거실 게이트웨이는 미디어 신호를 스테레오 수신기에 그의 보조 입력 라인(auxiliary in line)들 중 하나에 의해 제공하는 보조 출력 라인(auxiliary out line)을 가질 수 있다. 한편, 거실 게이트웨이는 무선 전송을 통해 미디어 신호를 사무실 렌더러 및 주방 렌더러에 제공할 수 있다. 이와 같이, 유의할 점은, 거실 게이트웨이가 그 자신의 렌더러를 갖거나 갖지 않을 수 있다는 것이다.
일 실시예에서, 미디어 노드들(104) 자체는 자기 형성 네트워크에서 통제될 수 있다. 유의할 점은, 미디어 노드들(104) 자체가 오디오/비디오 배포, 타이밍 및 렌더링을 제어할 수 있다는 것이다. 따라서, 많은 처리 부하가 미디어 소스 장치(102)로부터 제거된다. 따라서, 제한된 처리 능력을 가지는 셀룰러폰 등의 장치에 부담을 주지 않는다. 도 1의 예는 가정 환경에 관한 것이지만, 실시예가 그것으로 제한되지 않는다.
도 2는 가상 미디어 네트워크를 형성하고 운영하는 프로세스(200)의 일 실시예를 나타낸 플로우차트이다. 프로세스(200)를 기술할 때 도 1을 참조할 것이다. 단계(202)에서, 장치가 발견되고 장치 상태가 교환된다. 단계(202)는 미디어 노드들(104)의 전원이 켜질 때 일어날 수 있다. 미디어 노드들(104)의 전원이 상이한 때에 켜질 수 있기 때문에, 이 단계가 진행 중일 수 있다. 일 실시예에서, 미디어 노드들(104)은 미디어 노드들(104)이 서로의 존재 및 그들의 능력을 알아내는 "자기 발견(self-discovery)" 프로토콜을 수행한다. 유의할 점은, 장치 상태가 장치가 가상 미디어 네트워크에서 현재 활성인지 여부, 장치가 현재 게이트웨이로서 기능하는지 등을 포함할 수 있다는 것이다. 단계(202)에 대한 추가의 상세는 도 4와 관련하여 논의된다.
단계(204)에서, 미디어 소스 장치(102)는 게이트웨이 미디어 노드(104)와 페어링된다. 앞서 살펴본 바와 같이, 일 실시예에서, 각각의 가상 미디어 네트워크는 하나의 게이트웨이 미디어 노드(104)를 가진다. 사용자는 게이트웨이로서 역할하게 될 하나의 미디어 노드(104)를 특정하여 선택할 수 있거나, 게이트웨이가 사용자 개입 없이 자동으로 결정될 수 있다. 예를 들어, 스마트폰(102a)의 사용자는 거실 미디어 노드를 주 청취 장치로서 선택할 수 있으며, 그 결과 그것이 게이트웨이가 된다. 일 실시예에서, 게이트웨이 미디어 노드가 그의 상태에 기초하여 미디어 소스 노드(102)에 대한 현재의 활성 출력 장치로서 선택된다. 일 실시예에서, 게이트웨이 미디어 노드는 게이트웨이로서 기능하면서 미디어 소스 노드(102)에 대한 활성 출력 장치로서 역할한다. 일 실시예에서, 게이트웨이 미디어 노드는 장치 또는 상태 정보를 미디어 소스 장치(102)에 보고한다. 추가의 상세는 도 5a 및 도 5b와 관련하여 논의되어 있다.
단계(206)에서, 가상 미디어 네트워크가 형성된다. 단계(206)는 사용자가 미디어 노드(104)를 선택한 것에 응답하여 수행될 수 있다. 예를 들어, 사용자는 사용자가 미디어 노드(104)를 선택할 수 있게 해주는 미디어 소스 장치(102)(예컨대, 스마트폰) 상의 소프트웨어 프로그램에 액세스한다. 유의할 점은, 미디어 노드(104)가 이미 상이한 가상 미디어 네트워크의 일부인 경우, 이 미디어 노드(104)가 이용가능하지 않은 것으로 표시될지도 모른다는 것이다. 다른 대안으로서, 사용자는 이 미디어 노드(104)를 해제시키라고 요청하도록 허용되어 있을 수 있다. 일 실시예에서, 단계(206)의 결과, 게이트웨이 미디어 노드(104)에 미디어 신호를 가상 미디어 네트워크 내의 다른 미디어 노드들(104)에 전달하라고 지시한다. 추가의 상세는 도 6a 및 도 6b와 관련하여 논의되어 있다.
단계(208)에서, 미디어가 미디어 소스 장치(102)로부터 게이트웨이 미디어 노드(104)로 전송된다. 이 단계(208)는 사용자가 미디어가 미디어 소스와 연관된 출력 장치 상에 제시되도록 선택한 것에 응답하여 개시될 수 있을 것이다. 예를 들어, 사용자는 미디어를 재생하는 스마트폰(102a) 상에서 실행 중인 임의의 응용 프로그램을 가지고 있을 수 있다. 사용자는 간단히 게이트웨이 미디어 노드(104)를 출력 장치로서 선택하고, 미디어가 게이트웨이 미디어 노드(104)로 전송된다. 유의할 점은, 이 미디어 전송이 운영 체제(O/S) 레벨에서 일어날 수 있다는 것이다. 이 전송이 암시하는 바는 임의의 미디어 응용 프로그램이 사용자에 의해 가상 미디어 네트워크에 대한 미디어 소스로서 선택될 수 있다는 것이다.
단계(210)에서, 게이트웨이 미디어 노드(104)는 미디어 신호를 가상 미디어 네트워크 내의 다른 미디어 노드들(104)로 브로드캐스트한다. 예를 들어, 거실 게이트웨이는 스마트폰(102a)으로부터 수신한 미디어 신호를 사무실 렌더러 및 주방 렌더러로 브로드캐스트한다. 유의할 점은, 각각의 미디어 노드(104)가 그 자신의 사용자 제어가능 레벨(예컨대, 볼륨)에서 미디어를 재생할 수 있다는 것이다. 따라서, 미디어 소스 장치(102)로부터 게이트웨이 미디어 노드(104)로 어떤 명령이 송신될 수 있다. 그렇지만, 게이트웨이는 처리의 대부분은 아니지만 처리의 많은 부분을 수행할 수 있다. 따라서, 미디어 소스 장치(102)는 과중한 처리 부하로 꼼짝 못하게 되지는 않는다.
도 3a 내지 도 3g는 사용자가 설정할 수 있는 상이한 가상 미디어 네트워크의 다양한 예를 나타낸 것이다. 도 3a 내지 도 3g에서, 미디어 신호를 수신하는 싱크(302) 및 미디어 신호를 다른 미디어 노드(104)에 제공하는 브로드캐스터(304)를 가지고 있기 때문에 게이트웨이로서 역할할 수 있는 2개의 미디어 노드(104)가 있다. 유의할 점은, 소정의(given) 가상 미디어 네트워크에서 임의의 한 시점에 단지 하나의 장치만이 게이트웨이로서 기능한다는 것이다. 예시를 위해, 미디어 노드들(104)과 별개인 액세스 포인트(310)가 있다. 유의할 점은, 미디어 노드들(104) 중 하나가 액세스 포인트로서 기능할 수 있다는 것이다.
미디어 노드들(104) 중 일부는 브로드캐스터(304)를 포함하고 있다. 이러한 노드는 본 명세서에서 브로드캐스팅 노드라고 할 수 있다. 브로드캐스터(304)는 하드웨어 및/또는 소프트웨어의 임의의 조합에 의해 구현될 수 있다. 일 실시예에서, 브로드캐스터(304)는 다른 미디어 노드들(104)에 의해 이해되는 방송 시간 브로드캐스트 형식(airtime broadcast format)으로 미디어를 전송한다. 유의할 점은, 이 형식이 미디어 소스(102)로부터 미디어 신호를 송신하는 데 사용되는 형식과 상이할 수 있다는 것이다. 로컬 재생이 원격 렌더러 상에서의 재생과 동기화될 수 있도록, 브로드캐스터(304) 및 렌더러(306)가 동일한 미디어 노드(104)에 공존할 수 있다. 소스 주입(source injection)이 소스-싱크 링크를 통해 행해질 수 있다. 소스-싱크간 전송과 달리, 동기 재생과 함께 포인트-투-멀티포인트(point-to-multipoint) 미디어 전송을 위해 방송 시간 브로드캐스트(airtime broadcast)가 사용될 수 있다.
살펴본 바와 같이, 게이트웨이 지원 미디어 노드(104)는 싱크(302)와 브로드캐스터(304)의 결합을 가진다. 일 실시예에서, 게이트웨이는 미디어 소스 장치(102)로부터 미디어를 수신하고 가상 미디어 네트워크와 호환되는 형식으로 미디어를 다시 브로드캐스트한다. 게이트웨이는 또한 렌더러(306)를 포함하고 있을 수 있다. 일 실시예에서, 게이트웨이 미디어 노드(104)는 종단점으로 간주된다. 도 3b, 도 3c, 도 3e 및 도 3f는 동작 중인 게이트웨이 렌더러를 나타낸 것이다.
다수의 게이트웨이 지원 미디어 노드(104)가 네트워크 상에 존재할 수 있다. 일 실시예에서, 미디어 소스 장치(102)가 사용할 최상의 게이트웨이를 결정하기 위한 선출(election) 방법이 존재한다. 예를 들어, 렌더러(306)를 갖는 하나의 미디어 노드(104)만이 미디어 소스 장치(102)에 대해 활성인 경우에, 그 렌더링 노드가 또한 최상의 게이트웨이일 수 있으며, 그로써 다른 소스를 위해 네트워크 대역폭을 절감한다. 한편, 미디어 소스 장치(102)에 대해 다수의 렌더러가 활성인 경우, 최상의 게이트웨이는 가장 강한/가장 양호한 네트워크 연결을 갖는 것일 수 있다. 최상의 후보를 식별하기 위해 선출 방식이 행해질 수 있고, 필요한 경우, 상이한 게이트웨이로의 스트림 핸드오프(stream handoff)가 일어날 수 있으며, 이 경우에 원래의 게이트웨이는 소스의 싱크가 된다. 이것은 스트림 구성(stream construction) 동안 또는 스트림 중간에(mid-stream) 일어날 수 있다. 활성 게이트웨이가 디스에이블되는 경우에, 네트워크는 자체 치유(self-heal)할 수 있고 방송 시간 브로드캐스트 스트림(airtime broadcast stream)을 재설정하기 위해 새로운 게이트웨이를 선출할 수 있다.
미디어 노드들(104) 중 일부는 렌더러(306)를 포함하고 있다. 이러한 미디어 노드(104)는 본 명세서에서 렌더링 노드라고 할 수 있다. 렌더러(306)는 하드웨어 및/또는 소프트웨어의 임의의 조합에 의해 구현될 수 있다. 미디어 신호에 대한 오디오의 예를 사용하는 경우, 렌더러(306)는 내부 전원 스피커를 통해, 또는 다른 증폭기/스피커 장치로의 아날로그 또는 디지털 출력을 통해 미디어 스트림을 디코딩하고 재생할 수 있다. 비디오의 경우, 렌더러(306)는 내부 전원 디스플레이를 통해, 또는 다른 디스플레이 또는 디스플레이를 갖거나 구동하는 장치로의 아날로그 또는 디지털 출력을 통해 미디어 스트림을 디코딩하고 재생할 수 있다. 일 실시예에서, 렌더러(306)를 갖는 미디어 노드(104)는 가상 벽시계(virtual wall clock)의 생성, 유지 관리 및 배포를 지원한다. 렌더러(306)는 방송 시간 스트림 형식에서 지정된 타임스탬프에서 스트림을 정확하게 렌더링하기 위해 벽시계를 사용할 수 있다. 도 3c 및 도 3f는 다른 미디어 노드들(104)과 함께 동작 중인 렌더러(306)를 나타낸 것이다.
도 3a 내지 도 3g의 상이한 가상 미디어 네트워크에 대한 간략한 논의가 이제부터 제공될 것이다. 도 3a에서, 미디어 소스 장치(102)와 게이트웨이 미디어 노드(104A) 내의 싱크(302) 간에 연결이 있다. 미디어 신호는 게이트웨이 미디어 노드(104A) 내의 렌더러(306)에 의해 재생된다. 연결을 설정하기 위해, 사용자는 게이트웨이 미디어 노드(104A)를 미디어 소스 장치(102)에 대한 출력 장치로서 선택했을 수 있다. 예를 들어, 미디어 소스 장치(102)는 사용자가 오디오를 어느 스피커로 송신할지를 선택할 수 있게 해주는 셀룰러폰일 수 있다. 셀룰러폰에 의해 재생되고 있는 임의의 오디오가 선택된 스피커로 송신될 수 있다. 이와 같이, 어떤 응용 프로그램(예컨대, 인터넷 라디오, MP3 등)이 오디오를 제공하고 있는지에 관계없이, 오디오는 게이트웨이 미디어 노드(104A)로 라우팅될 것이다. 유의할 점은, 이것이 행해지게 하기 위해 오디오를 제공하는 응용 프로그램에 어떤 변경도 행해질 필요가 없다는 것이다. 미디어 소스 장치(102)와 게이트웨이 미디어 노드(104A) 사이의 연결이 무선 또는 유선일 수 있다. 일 실시예에서, 이는 무선 블루투스 연결이다. 그렇지만, 블루투스 이외의 무선 프로토콜이 사용될 수 있다.
도 3b에서, 미디어 소스 장치(102)와 게이트웨이 미디어 노드(104A) 내의 싱크(302) 간의 연결에 부가하여, 미디어 노드(104A) 내의 브로드캐스터(304)는 미디어 신호를 미디어 노드(104B) 내의 렌더러(306)로 송신하는 데 사용된다. 이 예에서, 액세스 포인트(310)는 중재자로서 역할한다. 그렇지만, 액세스 포인트(310)가 꼭 필요한 것은 아니다. 일 실시예에서, 미디어 노드(104A)는 액세스 포인트로서 역할한다.
도 3b의 예에서, 미디어 소스(102)와 미디어 노드(104B) 간의 연결은 도 3a에서의 연결과 유사한 방식으로 설정되었을 수 있다. 사용자는 또한 가상 미디어 네트워크의 일부로서 미디어 노드(104B)를 설정하였다. 미디어 소스 장치(102)는 사용자가 어느 미디어 노드(102)를 가상 네트워크에 부가할지를 선택할 수 있게 해주는 소프트웨어 응용 프로그램을 가질 수 있다. 이 응용 프로그램은 미디어 신호를 가상 미디어 네트워크의 활성 부분인 다른 미디어 노드들(104)로 전달하라고 지시하는 명령을 미디어 노드(104A)로 송신할 수 있다. 미디어 노드(104A)는 미디어 신호의 형식을 변경(reformatting)하는 것, 라우팅하는 것, 미디어 노드들 간의 재생을 동기화하는 것 등의 상세를 처리할 수 있다. 따라서, 미디어 소스(102)는 과중한 처리의 부담을 지고 있지 않다.
일 실시예에서, 브로드캐스터(304)는 미디어 신호를 브로드캐스터(304)로 송신하는 데 사용된 것과 상이한 네트워크 프로토콜을 사용하여 미디어 신호를 전송한다. 예를 들어, 미디어 소스(102)는 블루투스 프로토콜을 사용하여 미디어 신호를 송신할지도 모른다. 브로드캐스터(304)는 이 신호의 형식을 변경하고 이를 WiFi 프로토콜을 사용하여 송신할지도 모른다.
도 3c의 예에서, 렌더러(306)를 포함하는 미디어 노드(104C)가 가상 미디어 네트워크에 부가되어 있다. 사용자는, 미디어 노드(104B)를 부가하는 것과 유사한 방식으로, 이 미디어 노드(104C)를 부가할 수 있다. 미디어 노드(104C)를 가상 미디어 네트워크에 부가하라는 하나 이상의 명령이 미디어 소스(102)로부터 게이트웨이 미디어 노드(104A)로 송신될 수 있다. 다시 말하지만, 미디어 노드(104C)는 미디어 노드(104C)를 부가하는 것 및 재생을 동기화하는 것의 상세를 처리할 수 있다. 도 3b에서와 같이, 별도의 액세스 포인트(310)가 꼭 필요한 것은 아니다.
도 3d의 예에서, 미디어 소스(102)와 미디어 노드(104A) 간의 연결은 액세스 포인트(310)를 통해 이루어진다. 일 실시예에서, 액세스 포인트(310)는 WiFi 액세스 포인트이다. 그렇지만, 액세스 포인트(310)는 상이한 프로토콜을 사용할 수 있을 것이다. 일 실시예에서, 액세스 포인트(310)는 미디어 노드(104A)와 별개인 물리적 장치이다. 일 실시예에서, 액세스 포인트(310)는 미디어 노드(104A) 내에 있다.
도 3e의 예는 도 3d와 유사하며, 미디어 노드(104B)의 렌더러에의 부가의 링크를 갖는다. 부가의 링크는 도 3b 및 도 3c와 관련하여 논의된 바와 같이 설정될 수 있다. 일 실시예에서, 미디어 신호의 모든 전송에 대해 동일한 통신 프로토콜이 사용될 수 있다. 예를 들어, 모든 전송에 대해 WiFi 프로토콜이 사용될 수 있다. 그렇지만, 유의할 점은, WiFi 이외의 프로토콜이 사용될 수 있다는 것이다.
도 3f의 예는 도 3e와 유사하며, 미디어 노드(104C)의 렌더러(306)에의 부가의 링크를 갖는다.
도 3g의 예에서, 액세스 포인트(310)는 중앙 브로드캐스트 지점(central broadcast point)으로서 사용된다. 즉, 미디어 신호는 미디어 소스(102)로부터 액세스 포인트(310)로 송신되고, 액세스 포인트(310)는 미디어 신호를 미디어 노드(104A 내지 104C)로 브로드캐스트한다. 일 실시예에서, 액세스 포인트(310)로의 전송 및 액세스 포인트(310)로부터의 브로드캐스트 둘 다에 대해 WiFi 프로토콜이 사용된다. 그렇지만, 유의할 점은, WiFi 이외의 프로토콜이 사용될 수 있다는 것이다.
앞서 살펴본 바와 같이, 미디어 소스 장치(102)는 미디어를 가상 미디어 네트워크에 주입한다. 예로는 PC 또는 스마트폰이 있다. 미디어 주입 방법은 아날로그 또는 디지털 전송을 지원하는 케이블, 블루투스 및 WiFi를 포함한다. 일 실시예에서, 미디어 소스(102)는 (도 3g에서와 같이) 가상 미디어 네트워크와 호환되는 형식으로 미디어 데이터를 전송하는 브로드캐스터일 수 있다. 그렇지만, 종종 기술적 한계는 미디어 소스 장치(102)의 브로드캐스트 능력을 제한할 수 있다. 예를 들어, 많은 전화의 보안 모델은 오디오 드라이버가 제3자에 의해 수정되는 것을 방지한다. 또한, 미디어 소스 장치(102) 자체가 이용가능한 처리 또는 네트워크 대역폭을 갖지 않을지도 모른다. 게다가, 미디어 소스의 초기 링크에 대한 QoS 레벨은, 적어도 하나의 종단점이 가능한 최고의 충실도로 렌더링할 수 있도록, 다른 종단점보다 더 높은 QoS를 필요로 할지도 모른다.
유의할 점은, 미디어 소스 장치(102)로부터 싱크(302)로의 전송을 위해 많은 형식 및 연결이 사용될 수 있다는 것이다. 미디어 소스(102)는, 어떤 비제한적인 예로서, 유선, BT A2DP, 또는 WiFi를 통한 특정의 프로토콜을 통해 싱크(302)로 전송할 수 있다. WiFi 프로토콜은 품질과 지연 시간 간의 절충을 제공하도록 또는 정확도를 보장하도록 설계되어 있을 수 있다. 예를 들어, 프로토콜은 오류를 검출하고 데이터의 재전송을 요청할 수 있다. 종종, 이것이 브로드캐스트의 목적은 아닐 수 있지만, 브로드캐스트 이전에 미디어가 확실하게 도착하는 것이 중요하다. 본 명세서에 개시된 실시예는 기존의 장치와 호환성을 유지한다. 유의할 점은, 대부분의 스마트폰이 BT 및 유선 연결을 지원한다는 것이다.
일 실시예에서, 네트워크는 표준의 WiFi 인프라에 기초하고 있다. 각각의 미디어 노드는 DHCP를 통해 IP 주소를 획득하는 액세스 포인트(310)에 연결될 수 있다. 종종, 노드는 무선 액세스 키를 입력할 수 있게 해주는 UI(디스플레이, 키보드 입력 등)를 갖지 않을 것이다. 이러한 경우에, 연결을 달성하기 위해 WPS-PBC가 사용될 수 있다. 다른 방법은 애드혹 모드를 포함할 수 있고, 그에 의해 사용자는 GUI 지원 장치(GUI enabled device)로부터 직접 종단점에 연결하고, 노드에 의해 서비스되는 웹페이지, 또는 노드와 직접 통신하는 응용 프로그램 페이지를 통해 네트워크 파라미터를 입력한다. 다른 방법은 전화 또는 기타 장치 상에서 실행 중인 응용 프로그램이 블루투스를 통해 미디어 노드와 통신하는 것이다. 응용 프로그램은 어느 액세스 포인트에 연결할지 및 대응하는 네트워크 액세스 코드를 사용자에게 요구할 수 있다. 일 실시예에서, 미디어 노드(104)는 이 설정 단계 동안 사용자에 의해 이름을 제공받는다.
액세스 포인트(310) 등의 인프라가 없는 경우, 노드가 가상 액세스 포인트로 될 수 있다. 다른 노드들은 액세스 포인트(310)를 발견하고 연결되어 사설 네트워크(private network)를 형성할 수 있다. 보안 연결을 이루기 위해 WPS-PBC 및 애드혹 방법이 사용될 수 있다.
도 4는 네트워크 발견 프로세스(400)의 일 실시예의 플로우차트이다. 프로세스(400)는 도 2의 단계(202)의 일 실시예이다. 프로세스(400)는 하나의 임의적인 미디어 노드(104)의 관점으로부터의 네트워크 발견 프로세스를 나타낸다. 각각의 미디어 노드(104)는 유사한 프로세스를 수행할 수 있다. 미디어 노드(104)가 설정되고 IP 주소를 획득한 후에, 프로세스(400)가 수행될 수 있다.
단계(402)에서, 네트워크 미디어 노드(104)는 그의 장치 상태 및 상태 정보를 브로드캐스트한다. 단계(402)는 주기적으로 수행될 수 있다. 장치 상태 및/또는 상태 정보는 장치의 유형, 장치가 어떤 능력을 가지고 있는지, 및 이용가능한 처리 대역폭의 양을 포함할 수 있다. 장치 상태 및/또는 상태 정보는 또한 미디어 노드(104)가 현재 게이트웨이로서 역할하고 있는지, 미디어 노드(104)가 현재 가상 미디어 네트워크의 일부인지, 그의 볼륨 레벨 등을 포함할 수 있다.
단계(404)에서, 새로운 미디어 노드가 발견된다. 일 실시예에서, 미디어 노드(104)는 다른 미디어 노드들(104)로부터 장치 상태를 수신한다. 일 실시예에서, 단계(404)는 단계(402)와 유사하지만, 장치 상태를 제공하는 것이 아니라, 장치 상태를 수신하는 것을 나타낸다. 통상적으로, 미디어 노드(104)는 그의 상태를 제공하기도 하고 다른 미디어 노드들(104)로부터 상태를 수신하기도 한다.
단계(406)에서, 새로 발견된 미디어 노드가 목록에 부가된다. 이 목록은 다양한 장치 상태 및 상태 정보를 포함할 수 있다. 장치 설명(device description)은 새로 발견된 장치에 할당된 이름(예컨대, 주방, 거실 등), 그의 IP 주소 및 그의 MAC 주소를 포함할 수 있을 것이다. 장치 설명은 또한 새로 발견된 노드가 브로드캐스터(304)인지 및 싱크(302)를 가지는지를 나타낼 수 있다. 따라서, 이 정보는 새로 발견된 노드(104)가 게이트웨이로서 기능할 수 있는 물리적 능력을 가지고 있는지를 나타낼 수 있다. 장치 설명은 또한 그 자신의 스피커를 가지고 있는지 또는 미디어 신호를 스테레오 수신기로 송신하는 보조 라인 출력을 가지고 있는지 등과 같은 것을 나타낼 수 있다. 특정의 미디어 노드(104)에 대한 상태 정보는 (미디어 소스에 의해 제공되었을 수 있는) 그 노드(104)가 일부를 이루고 있는 가상 네트워크 이름, 그 노드(104)가 현재 가상 네트워크 내의 다른 장치들에의 통신 링크를 가지는지, 볼륨 레벨(이들로 제한되지 않음)을 포함할 수 있다. 미디어 노드(104)는 미디어 노드들(104) 모두에 대한 정보를 저장할 수 있고, 따라서 미디어 노드(104)는 필요한 정보가 무엇이든 간에 그 정보를 미디어 소스(102)에 제공할 수 있다. 또한, 미디어 노드(104)는 이 상태 정보를 사용하여 가상 미디어 네트워크를 제어할 수 있다. 유의할 점은, 각각의 미디어 노드(104)가 게이트웨이 미디어 노드(104)로서 인계받을 수 있도록 상태 정보를 저장할 수 있다는 것이다.
때때로, 미디어 노드가 사라질 수 있다. 이것이 일어나는 경우(단계 408), 단계(410)에서 비대칭 검증(asymmetric verification)이 수행된다. 비대칭 검증은 일시적인 네트워크 장애(network outage)로 인한 잘못된 상태 천이가 일어나지 않도록 보호할 수 있다. 비대칭 검증의 결과가 있을 때까지, 미디어 노드가 목록으로부터 제거될 수 있다.
단계(412)는 미디어 노드(104)가 그의 장치 상태를 다시 브로드캐스트하기 전에 소정의 기간 동안 일시 정지될 수 있다는 것을 나타낸다.
도 5는 미디어 소스 장치(102)를 게이트웨이 미디어 노드(104)와 페어링하는 프로세스(500)의 일 실시예의 플로우차트이다. 프로세스(500)는 도 2의 단계(204)의 일 실시예이다. 이와 같이, 미디어 노드(104)가 자기 발견을 거친 후에 프로세스(500)가 수행될 수 있다. 일 실시예에서, 프로세스(500)는 미디어 소스 장치(102) 상에서 실행 중인 소프트웨어에 의해 구현된다. 이 소프트웨어는 O/S에서의 드라이버 또는 O/S와 별개인 응용 프로그램일 수 있다. 그렇지만, 소프트웨어가 이들 예로 제한되지 않는다. 드라이버, 응용 프로그램 등이 시작될 때, 프로세스(500)가 개시될 수 있다. 다른 대안으로서, 미디어 노드들(104) 중 하나를 출력 장치로서 선택한 것에 응답하여 프로세스(500)가 시작될 수 있다.
단계(502)에서, 미디어 소스 장치(102)는 상태 정보에 대한 요청을 미디어 노드(104)로 송신한다. 유의할 점은, 이 미디어 노드(104)가 가상 미디어 네트워크에 대한 게이트웨이가 되는 것을 목표로 하고 있는 것일 수 있다는 것이다.
단계(504)에서, 미디어 소스 장치(102)는 미디어 노드(104)로부터 상태 정보를 수신한다. 이 때, 가상 미디어 네트워크는 임의의 수의 활성 미디어 노드(104)를 포함할 수 있을 것이다. 그렇지만, 논의의 목적상, 게이트웨이가 활성인 유일한 미디어 노드(104)인 예에 대해 논의할 것이다.
단계(506)에서, 미디어 소스 장치(102)는 미디어 노드(104)와 페어링된다. 페어링은 미디어 노드(104)를 미디어 소스 장치(102)에 의해 서비스되는 가상 미디어 네트워크에 대한 게이트웨이로서 설정하는 것을 말한다. 어느 미디어 노드(104)가 게이트웨이로서 역할할 수 있는지를 결정하기 위해 다수의 기법이 사용될 수 있다. 추가의 상세는 도 5b와 관련하여 논의되어 있다.
도 5b는 인증 및 페어링 프로토콜 동안 전달되는 메시지의 일 실시예를 나타낸 도면이다. 인증 및 페어링 프로토콜은 미디어 소스 장치(102) 및 미디어 노드(104)를 수반한다. 이 미디어 노드(104)는 게이트웨이로서 설정되어 있기 때문에 게이트웨이라고 한다. 앞서 살펴본 바와 같이, 게이트웨이는 게이트웨이로서 기능할 수 있는 임의의 미디어 노드(104)일 수 있다.
페어링 프로토콜은 미디어 소스(102)가 요청 신청(request challenge)을 잠재적 게이트웨이 미디어 노드(104)로 송신하는 것으로 시작한다. 네트워크의 품질이 노드들로부터 입수가능한 정보에 의존하고 있기 때문에, 일 실시예에서, 비승인 노드(un-sanctioned node)가 가상 미디어 네트워크에 가입하는 것을 방지하기 위해 보안 메커니즘이 존재한다. 일 실시예에서, 미디어 노드(104)는 가상 미디어 네트워크에 가입할 때 신청-응답 질의(challenge-response query)를 전달해야만 한다. 장치는, 신청-응답을 완료하는 데 적당한 보안 키를 가지고 있지 않은 경우, 가상 미디어 네트워크에 가입하도록 허용되지 않을 것이다. 보안 메커니즘은 위조 장치의 접속을 방지하고 가상 미디어 네트워크의 무결성을 유지하는 데 도움을 준다.
게이트웨이 미디어 노드(104)가 올바르게 응답하는 경우, 미디어 소스(102)는 페어링 요청 메시지를 게이트웨이 미디어 노드(104)로 송신한다. 게이트웨이 미디어 노드(104)는 게이트웨이로서 역할할 수 있는지를 판정한다. 그러한 경우, 게이트웨이 미디어 노드(104)는 게이트웨이로서 역할할 것임을 알려주기 위해 허가 응답(grant response)을 송신한다. 게이트웨이 미디어 노드(104)는, 게이트웨이로서 역할할 수 없는 경우, 그의 응답에서 이것을 알려준다.
페어링이 허가된 것으로 가정하여, 미디어 소스 장치(102)는 암호화된 블록 암호를 송신한다. 미디어 스트림은 선택적으로 전송 이전에 암호화되어, 스트림이 네트워크로부터 스니핑되는 것을 방지할 수 있다 미디어 소스 장치(102)는 이제 암호화된 오디오를 게이트웨이 미디어 노드(104)로 송신할 수 있다.
다시 도 2를 참조하면, 게이트웨이 미디어 노드(104)가 미디어 소스 장치(102)와 페어링된 후에, 다른 미디어 노드들(104)이 가상 미디어 네트워크에 부가될 수 있다. 도 6a는 추가의 미디어 노드(104)를 가상 미디어 네트워크에 부가하는 프로세스(600)의 일 실시예를 나타낸 플로우차트이다. 프로세스(600)의 다양한 단계들이 다양한 장치들에 의해 수행될 수 있으며, 이에 대해서는 논의 동안 언급될 것이다.
단계(602)에서, 미디어 소스 장치(102)는 가상 미디어 네트워크에 부가하기 위해 이용가능한 미디어 노드(104)의 목록을 제시한다. 이 목록은 프로세스(500)에서 수신된 상태 정보에 기초하고 있을 수 있다. 단계(602)는, 한 예로서, 미디어 소스 장치(102) 상의 가상 네트워크 미디어 응용 프로그램(도 7b 내지 도 7d, 740)에 의해 수행될 수 있다.
단계(604)에서, 미디어 노드(104)의 선택이 수신된다. 이것은 가상 네트워크 미디어 응용 프로그램(740)에 의해 수신될 수 있다. 한 예로서, 사용자는 침실 스피커를 선택한다.
단계(606)에서, 미디어 소스 장치(102)는 새로운 미디어 노드(104)를 가상 미디어 네트워크에 부가하기 위해 링크 요청을 게이트웨이 미디어 노드(104)로 송신한다. 일 실시예에서, 가상 네트워크 미디어 응용 프로그램(740)은 링크 요청을 송신한다.
단계(608)에서, 게이트웨이 미디어 노드(104)는 새로운 노드(104)와 링크된다. 단계(610)에서, 게이트웨이 미디어 노드(104)는 새로운 노드가 링크되었다는 응답을 미디어 소스(102)로 다시 송신한다. 사용자는 부가의 미디어 노드(104)의 선택에 의해 임의의 수의 미디어 노드를 가상 미디어 네트워크에 부가할 수 있다.
도 6b는 새로운 미디어 노드(104)를 가상 네트워크에 부가할 때 전달되는 메시지의 일 실시예의 도면이다. 이 방식은 미디어 소스 장치(102), 게이트웨이 미디어 노드(104) 및 새로운 미디어 노드(104)를 수반한다.
이 프로토콜은 미디어 소스(102)가 링크 부가 요청(add link request)을 게이트웨이 미디어 노드(104)로 송신하는 것으로 시작한다. 일 실시예에서, 이 요청은 게이트웨이 미디어 노드(104)에 저장되어 있는 임의의 상태 정보를 사용하여 잠재적인 새로운 미디어 노드(104)를 식별할 수 있다 새로운 노드는 스피커 이름, MAC 주소, IP 주소 등에 의해 식별될 수 있다.
일 실시예에서, 네트워크에 가입할 때 게이트웨이 노드가 신청-응답 질의를 어떻게 전달해야만 하는지와 유사하게, 새로운 미디어 노드(104)도 역시 그렇게 할 필요가 있을 수 있다. 이와 같이, 게이트웨이 노드(104)는 요청 신청을 잠재적인 새로운 미디어 노드(104)로 송신한다. 새로운 미디어 노드(104)가 올바르게 응답하는 경우, 게이트웨이 미디어 노드(104)는 링크 요청 메시지를 새로운 미디어 노드(104)로 송신한다. 새로운 미디어 노드(104)는 가상 미디어 네트워크에 참여할 수 있는지를 판정할 수 있다. 예를 들어, 일 실시예에서, 새로운 미디어 노드가 이미 다른 가상 미디어 네트워크에 있는 경우, 새로운 미디어 노드는 네트워크에 가입하라는 초대를 거부할 수 있다. 새로운 미디어 노드는, 가입하기로 결정하는 경우, 링크 허가 응답을 송신한다.
링크가 허가된 것으로 가정하여, 게이트웨이 미디어 노드(104)는 링크가 허가되었다는 것을 미디어 소스 장치(102)에 통보한다. 또한, 게이트웨이 미디어 노드(104)는 암호화된 블록 암호를 새로운 미디어 노드(104)로 송신할 수 있다. 이것은 게이트웨이가 미디어 소스 장치(102)로부터 송신받은 동일한 암호이거나 그렇지 않을 수 있다. 유의할 점은, 게이트웨이 미디어 노드(104)가 미디어 소스 장치(102)에 의해 사용되는 것과 상이한 암호화를 사용할지도 모른다는 것이다. 게이트웨이 미디어 노드(104)는 이제 암호화된 오디오를 새로운 미디어 노드(104)로 송신할 수 있다.
도 7a는 미디어 노드(104)의 일 실시예의 블록도이다. 미디어 노드(104)는 무선 네트워크 인터페이스(702A) 및 무선 네트워크 인터페이스(702B)를 가진다. 일 실시예에서, 안테나가 각각의 무선 네트워크 인터페이스(702)에 연결되어 있다. 무선 네트워크 인터페이스 A는 WiFi 호환일 수 있고, 무선 네트워크 인터페이스 B는 블루투스 호환일 수 있다. 그렇지만, 이들이 임의의 다른 프로토콜과 호환일 수 있을 것이다. 일 실시예에서, 하나 이상의 유선 네트워크 인터페이스(702C)가 있다.
렌더링 모듈(306)은 스피커 또는 기타 출력 장치 상에 제시하기 위해 미디어 신호를 처리하는 일을 맡고 있다. 선택적으로, 미디어 노드(104)는 비디오 디스플레이(712)를 갖거나 그에 연결되어 있다. 이 경우에, 렌더링 모듈은 디스플레이 상에 제시하기 위해 미디어 신호를 처리하는 일을 맡고 있다. 렌더링 모듈은 임의의 네트워크 인터페이스로부터 미디어 신호를 수신할 수 있다.
브로드캐스팅 모듈(304)은 미디어 신호를 적절한 미디어 신호(104)로 전달할 수 있다. 미디어 신호를 홈 스테레오 시스템 등의 장치에 제공하기 위해 보조 출력이 사용될 수 있다. 일 실시예에서, 브로드캐스터(304)는 미디어 신호를 보조 출력에 전달하는 것을 처리한다.
명령 모듈은 미디어 신호를 제어하는 명령을 처리할 수 있다. 이들 명령은 볼륨, 재생, 일시정지 등을 포함할 수 있을 것이다. 동기화 모듈은 네트워크 내의 다양한 미디어 노드 상에서의 재생 동안 미디어 신호의 정확한 동기화를 책임지고 있다.
미디어 노드(104)는 각종의 메커니즘을 통해 제어될 수 있다. 제어기는 스마트폰 응용 프로그램, 태블릿 응용 프로그램, TV 또는 셋톱 박스 상의 UI, 노드 상의 디스플레이를 갖는 또는 디스플레이를 갖지 않는 버튼, 또는 PC 응용 프로그램을 포함할 수 있다. 일 실시예에서, 이들 장치는 렌더러(306)가 특정의 스트림을 렌더링하는지, 렌더러(306)의 볼륨 출력, 및 마스터 볼륨을 제어할 수 있다.
일 실시예에서, 모든 미디어 노드(104)는 명령 프로토콜을 지원한다. 명령 프로토콜은 오디오 재생을 켜고/끄는 방법, 오디오 재생을 동기화된 구역으로 통합하는 방법, 재생, 빨리감기, 되감기 및 탐색 등의 제어를 전송하는 방법, 노드로 메타데이터를 전송하는 방법, 네트워크 상태를 네트워크에 가입한 장치들로 통지하는 방법, 장치가 네트워크를 떠날 때 상태를 갱신하는 방법, 원격 사용자 인터페이스를 통해 제어하는 방법, 및 방송 시간 네트워크(airtime network)를 유지하는 기타 메시지 및 방법을 포함할 수 있다.
유의할 점은, 미디어 노드(104)의 요소들이 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 조합으로 구현될 수 있다는 것이다. 미디어 노드(104)는 하나 이상의 프로세서, 및 하나 이상의 프로세서 상에서 실행될 때, 미디어 노드(104)의 다양한 요소의 기능을 구현하는 명령어를 갖는 컴퓨터 판독가능 저장 매체를 가질 수 있다. 프로세서 및 컴퓨터 저장 장치를 가지는 예시적인 장치에 대해서는 나중에 논의한다.
도 7b는 미디어 소스 장치(102)의 일 실시예의 블록도이다. 미디어 소스 장치(102)는 2개의 무선 네트워크 인터페이스를 포함한다. 무선 네트워크 인터페이스(722A)는 WiFi 호환일 수 있고, 무선 네트워크 인터페이스(722B)는 블루투스 호환일 수 있다. 그렇지만, 이들이 임의의 다른 프로토콜과 호환일 수 있을 것이다. 이 예에서, 미디어 신호(예컨대, 오디오 스트림 또는 비디오 스트림)는 네트워크 인터페이스(722B)를 사용하여 송신될 수 있다. 네트워크 인터페이스(722A)는 가상 미디어 네트워크를 제어하는 명령어를 송신하는 데 사용될 수 있을 것이다.
사용자는 가상 미디어 네트워크를 제어하기 위해 가상 네트워크 미디어 응용 프로그램(740)에 액세스할 수 있다. 한 예로서, 가상 네트워크 미디어 응용 프로그램(740)은 사용자가 미디어 노드(104)를 선택하고 그의 볼륨, 재생 등을 제어할 수 있게 해주는 사용자 인터페이스를 제시할 수 있다. 일 실시예에서, 네트워크에 대한 마스터 볼륨 및 각각의 미디어 노드(104)에 대한 개별 볼륨이 있다.
미디어 소스 응용 프로그램(742)은 미디어 소스 장치(102) 상에서 오디오를 재생할 수 있는 임의의 응용 프로그램일 수 있을 것이다. 예를 들어, 미디어 소스 응용 프로그램(742)은 MP3 플레이어, 인터넷 오디오, 웹 브라우저 등일 수 있을 것이다. 일 실시예에서, 어떤 출력 장치가 사용자에 의해 선택되든 그 출력 장치 상에서 미디어가 재생될 것이다. 이 출력 장치 선택은 O/S(750)의 제어 하에 있을 수 있다. 예를 들어, O/S(750)는 사용자가 출력 장치를 선택할 수 있게 해주는 팝업 창을 제공할 수 있다. 미디어 노드들(104) 중 하나 이상이 선택 가능한 것으로서 나타날 수 있다. 미디어 노드들(104) 중 하나를 간단히 선택함으로써, 오디오 응용 프로그램과 연관되어 있는 미디어 신호가 네트워크 인터페이스(722B)를 통해 미디어 소스 장치(102)로부터 선택된 미디어 노드(104)로 송신된다. 일 실시예에서, 미디어 라이브러리(752)는 미디어를 디코딩하는 데 사용된다. 미디어 라이브러리는 디코딩된 미디어를 네트워크 미디어 드라이버(754)로 송신하고, 네트워크 미디어 드라이버(754)는 미디어 신호를 선택된 출력 장치로 송신한다. 미디어 노드(104)가 출력 장치로서 선택되어 있는 경우, 미디어 신호는 네트워크 인터페이스(722B)를 거쳐 송신된다. 일 실시예에서, 네트워크 미디어 드라이버(754)는 블루투스 드라이버이다. 그렇지만, 네트워크 미디어 드라이버(754)는 임의의 프로토콜과 호환될 수 있다.
유의할 점은, 상기 실시예에서, 가상 미디어 응용 프로그램(740)이 미디어 신호를 결코 건드리지 않는다는 것이다. 이것은, 미디어 소스 장치(102)에 대한 적절한 출력 장치를 간단히 선택함으로써, 미디어 신호를 미디어 노드(104)로 송신할 때 임의의 미디어 소스 응용 프로그램(742)이 사용될 수 있다는 이점을 가진다. 이와 같이, 가상 네트워크 미디어 응용 프로그램의 일 실시예는 임의의 미디어 소스 응용 프로그램(742)와 호환된다. 더욱이, 미디어 소스 응용 프로그램(742)에 대해 어떤 변경도 필요하지 않다.
앞서 논의한 바와 같이, 게이트웨이 미디어 노드(104)의 일 실시예는, 미디어 신호가 가상 미디어 네트워크와 호환되도록, 미디어 신호의 임의의 필요한 형식 변경 및 처리를 수행할 수 있다. 이와 같이, 게이트웨이 미디어 노드(104)는 처리의 많은 부분을 미디어 소스 장치(102)로부터 덜어준다.
도 8은 미디어 신호 및 명령을 미디어 소스 장치(102)로부터 미디어 노드(104)로 송신하는 것의 일 실시예의 플로우차트이다. 도 8은 도 7b의 요소들과 관련하여 논의될 것이다. 그렇지만, 도 7b는 도 8의 프로세스로 제한되지 않는다. 또한, 도 8의 프로세스가 도 7b의 장치로 제한되지 않는다. 단계(802)에서, 사용자는 O/S에 의해 제공되는 사용자 인터페이스로부터 스피커를 선택한다. 한 예로서, 미디어 소스 장치(102)는 영역 내의 블루투스 장치를 찾아낼 수 있다. 유의할 점은, 각각의 스피커가 그 자신의 이름을 저장하고 있을 수 있다는 것이다. 이 이름은 사용자가 스피커를 처음 사용하기 시작했을 때 스피커에 제공되었을 수 있다. 스피커는 이 이름을 O/S에 제공할 수 있다. O/S는 이들 블루투스 장치 중 하나를 미디어 신호를 재생하는 출력 장치로서 선택할 수 있는 기능을 제공할 수 있다. 그렇지만, 유의할 점은, 블루투스 이외의 프로토콜이 사용될 수 있다는 것이다.
단계(804)에서, 네트워크 인터페이스(722B)를 사용하여 미디어 소스 장치(102)와 선택된 스피커 사이에 네트워크 링크가 설정된다. 유의할 점은, 이 링크가 O/S 레벨에서 설정될 수 있다는 것이다.
단계(806)에서, 사용자는 미디어 소스 응용 프로그램(742)을 사용하여 오디오를 재생하기 시작한다. 단계(808)에서, 미디어 라이브러리(752)는 오디오를 디코딩하고 이를 네트워크 미디어 드라이버(754)로 송신한다. 단계(810)에서, 네트워크 미디어 드라이버(754)는 네트워크 인터페이스(722B)를 거쳐 오디오를 선택된 스피커로 스트리밍한다. 일 실시예에서, 오디오는 오디오-비디오 신호의 오디오 부분이다. 비디오 신호는 미디어 소스 장치(102)(예컨대, 태블릿 컴퓨터) 상에서 재생될 수 있다. 유의할 점은, 오디오 신호가 비디오 신호와 동기된 채로 있을 수 있다는 것이다.
단계(812)에서, 사용자는 가상 네트워크 미디어 응용 프로그램(740)을 선택한다. 단계(814)에서, 네트워크 인터페이스(722A)를 사용하여 미디어 소스 장치(102)와 스피커 사이에 링크가 설정된다. 가상 네트워크 미디어 응용 프로그램(740)은 이 링크를 개시할 수 있다. 일 실시예에서, 링크될 스피커가 가상 네트워크에 있을 수 있도록 해주기 위해 도 5b의 인증 프로토콜이 수행된다.
단계(814)에서 적당한 스피커를 식별하기 위해, 일 실시예에서, 가상 네트워크 미디어 응용 프로그램(740)은, 사용자가 현재 어느 스피커로 오디오를 스트리밍하고 있는지를 판정하기 위해, API를 사용하여 O/S에 질의한다. 일 실시예에서, 가상 네트워크 미디어 응용 프로그램(740)은 사용자가 현재 오디오를 스트리밍해 보내고 있는 스피커의 이름을 사용자에게 요청한다. 스피커가 그의 이름을 저장하고 있기 때문에, 가상 네트워크 미디어 응용 프로그램(740)은 미디어 노드로부터 상태 정보를 수신할 때[예컨대, 도 5a의 단계(504)] 그 이름을 알 수 있다.
단계(814)에서, 사용자는 가상 네트워크 미디어 응용 프로그램(740)에 의해 제공되는 UI에 명령을 입력한다. 이들 명령은 새로운 스피커를 부가하는 것, 볼륨을 제어하는 것, "재생", "일시정지", "되감기" 등과 같은 명령을 송신하는 것일 수 있다. 유의할 점은, 명령이 박스를 체크하는 것, 슬라이더를 이동시키는 것, 리모콘을 사용하는 것 등과 같은 많은 방식으로 입력될 수 있다는 것이다. 단계(816)에서, 네트워크 인터페이스(722A)를 사용하여 명령이 스피커로 송신된다.
유의할 점은, 도 8이 오디오와 관련하여 기술되어 있지만, 비디오 등의 다른 미디어가 사용될 수 있다는 것이다. 또한 유의할 점은, 도 8의 단계들이 상이한 순서로 수행될 수 있다는 것이다. 예를 들어, 단계(812)에서, 사용자는 먼저 가상 네트워크 미디어 응용 프로그램(740)을 나타나게 하여 스피커를 선택할 수 있다. 그 후에, 단계(806)에서, 사용자는 미디어 소스 응용 프로그램을 사용하여 오디오를 재생하기 시작할 수 있다. 이어서, 단계(802)에서, 사용자는 오디오를 스트리밍해 보낼 스피커를 선택할 수 있다. 다른 가능한 시퀀스가 존재한다.
도 7c는 오디오 신호 및 명령 둘 다가 동일한 네트워크 인터페이스(722)를 사용하여 송신되는 미디어 소스 장치(102)의 일 실시예이다. 이 실시예에서, 가상 네트워크 미디어 드라이버(784)가 O/S(750)에 설치되어 있다. 사용자는, 미디어 신호를 미디어 노드(104)로 송신하는 데 도움을 주기 위해, 이 드라이버(784)를 설치할 수 있다. 사용자가 미디어 신호를 미디어 노드(104)로 송신하고자 할 때, 사용자는 O/S(750)에 의해 제시된 인터페이스에서 미디어 노드를 간단히 선택한다. 이것은 가상 네트워크 미디어 드라이버(784)를 선택한다. 예를 들어, 미디어 신호가 미디어 라이브러리(752)로부터 가상 네트워크 미디어 드라이버(784)에 제공된다. 이전의 예에서와 같이, 미디어 소스 응용 프로그램(742)은 미디어를 재생하는 데 사용되는 임의의 응용 프로그램일 수 있다.
가상 네트워크 미디어 응용 프로그램(740)은 도 7b에 기술된 것과 유사할 수 있다. 예를 들어, 가상 네트워크 미디어 응용 프로그램(740)은 사용자가 가상 네트워크에 부가할 미디어 노드를 선택하고 네트워크를 제어하는 인터페이스를 제공할 수 있다. 그렇지만, 일 실시예에서, 가상 네트워크 미디어 응용 프로그램(740)은 선택적인데, 그 이유는 그의 기능이 가상 네트워크 미디어 드라이버(784)에 포함되어 있을 수 있기 때문이다.
이 실시예에서, 네트워크 인터페이스(720)를 사용하여 명령을 송신하기 위해 명령 채널이 사용된다. 네트워크 인터페이스(720)를 사용하여 미디어 신호를 송신하기 위해 데이터 채널이 사용될 수 있다. 일 실시예에서, 네트워크 인터페이스(720)는 WiFi와 호환된다. 그렇지만, 네트워크 인터페이스(720)가 다른 프로토콜과 호환될 수 있을 것이다. 더욱이, 명령 및 데이터가 동일한 네트워크 프로토콜를 사용하여 송신될 필요는 없다.
유의할 점은, O/S에 드라이버를 가짐으로써, 임의의 미디어 소스 응용 프로그램(742)으로부터의 미디어 신호가 미디어 노드(104)로 송신될 수 있다는 것이다. 사용자가 해야 할 일은 단지 미디어 노드들(104) 중 하나를 선택하는 것이다. 그에 응답하여, 가상 네트워크 미디어 드라이버(784)가 사용된다. 따라서, 미디어 소스 장치(102) 상에서 실행되는 임의의 미디어 소스 응용 프로그램(742)에서 가상 미디어 네트워크가 사용될 수 있다.
도 9는 미디어 신호 및 명령을 미디어 소스 장치(102)로부터 미디어 노드(104)로 송신하는 것의 일 실시예의 플로우차트이다. 도 9는 도 7c의 요소들과 관련하여 논의될 것이다. 그렇지만, 도 7c는 도 9의 프로세스로 제한되지 않는다. 또한, 도 9의 프로세스가 도 7c의 장치로 제한되지 않는다. 단계(902)에서, 사용자는 O/S(750)에 의해 제공되는 사용자 인터페이스로부터 스피커를 선택한다. 예를 들어, O/S(750)는 이용가능한 출력 장치들의 목록을 제공할 수 있다. 이것은 사용자가 트레이에서 스피커 아이콘을 선택하는 것에 의해 제공될 수 있을 것이지만, 많은 다른 가능한 방법이 존재한다.
단계(904)에서, 네트워크 인터페이스(722)를 사용하여 미디어 소스 장치(102)와 선택된 스피커 사이에 네트워크 링크가 설정된다. 일 실시예에서, 가상 네트워크 미디어 드라이버(784)는 이 링크를 개시한다. 일 실시예에서, 링크될 장치가 가상 미디어 네트워크에 있을 수 있도록 해주기 위해 도 5b의 인증 프로토콜이 수행된다.
단계(906)에서, 사용자는 미디어 소스 응용 프로그램(742)을 사용하여 오디오를 재생하기 시작한다. 단계(908)에서, 미디어 라이브러리(752)는 오디오를 디코딩하고 이를 가상 네트워크 미디어 드라이버(784)로 송신한다. 단계(910)에서, 가상 네트워크 미디어 드라이버(754)는 네트워크 인터페이스(722)를 거쳐 오디오를 선택된 스피커로 스트리밍한다. 일 실시예에서, 오디오가 WiFi를 사용하여 송신되지만, 다른 프로토콜이 사용될 수 있다. 일 실시예에서, 오디오는 오디오-비디오 신호의 오디오 부분이다. 비디오 신호는 미디어 소스 장치(102)(예컨대, 태블릿 컴퓨터) 상에서 재생될 수 있다. 유의할 점은, 오디오 신호가 비디오 신호와 동기된 채로 있을 수 있다는 것이다.
선택적인 단계(912)에서, 사용자는 가상 네트워크 미디어 응용 프로그램(740)을 선택한다. 단계(914)에서, 사용자는 가상 네트워크 미디어 응용 프로그램(740) 또는 가상 네트워크 미디어 드라이버(784)에 의해 제공되는 UI에 명령을 입력한다. 이들 명령은 새로운 스피커를 부가하는 것, 볼륨을 제어하는 것, "재생", "일시정지", "되감기" 등과 같은 명령을 송신하는 것일 수 있다. 단계(916)에서, 네트워크 인터페이스(722)를 사용하여 명령이 스피커로 송신된다. 일 실시예에서, 이것은 가상 네트워크 드라이버(784)에 의해 설정된 동일한 통신 링크이다. 그렇지만, 다른 통신 링크가 설정될 수 있을 것이다. 오디오 신호 및 명령이 개별적인 채널을 통해 송신되도록 통신 링크와 연관되어 있는 2개의 채널이 있을 수 있다. 유의할 점은, 도 10의 단계들이 상이한 순서로 수행될 수 있다는 것이다.
도 7d는 미디어 소스 응용 프로그램(742)이 가상 네트워크 미디어 응용 프로그램(740)에 내장되어 있는 미디어 소스 장치(102)의 일 실시예의 블록도를 나타낸 것이다. 미디어 소스 응용 프로그램(742)에 의해 재생되는 임의의 미디어가 미디어 노드(104)로 송신될 수 있다. 일 실시예에서, 네트워크 인터페이스(722)는 WiFi와 호환된다. 그렇지만, 네트워크 인터페이스(722)는 임의의 네트워크 프로토콜과 호환될 수 있다. 일 실시예에서, 명령이 하나의 채널을 통해 송신되고, 미디어 신호가 제2 채널을 통해 송신된다.
도 10은 미디어 신호 및 명령을 미디어 소스 장치(102)로부터 미디어 노드(104)로 송신하는 것의 일 실시예의 플로우차트이다. 도 10은 도 7d의 요소들과 관련하여 논의될 것이다. 그렇지만, 도 7d는 도 10의 프로세스로 제한되지 않는다. 또한, 도 10의 프로세스가 도 7d의 장치로 제한되지 않는다. 단계(1002)에서, 사용자는 가상 네트워크 미디어 응용 프로그램(740)을 선택한다. 단계(1004)에서, 사용자는 가상 미디어 응용 프로그램(740)에 의해 제공되는 사용자 인터페이스로부터 스피커를 선택한다. 단계(1006)에서, 네트워크 인터페이스(722A)를 사용하여 미디어 소스 장치(102)와 선택된 스피커 사이에 네트워크 링크가 설정된다. 일 실시예에서, 가상 네트워크 미디어 응용 프로그램(740)은 이 링크를 개시한다. 일 실시예에서, 링크될 장치가 가상 미디어 네트워크에 있을 수 있도록 해주기 위해 도 5b의 인증 프로토콜이 수행된다.
단계(1008)에서, 사용자는 가상 네트워크 미디어 응용 프로그램(740) 내에 내장되어 있는 미디어 소스 응용 프로그램(742)을 선택한다. 단계(1010)에서, 사용자는 미디어 소스 응용 프로그램(742)을 사용하여 오디오를 재생하기 시작한다. 단계(1012)에서, 오디오는 네트워크 인터페이스(722A)를 통해 선택된 스피커로 스트리밍된다. 일 실시예에서, 오디오는 오디오-비디오 신호의 오디오 부분이다. 비디오 신호는 미디어 소스 장치(102)(예컨대, 태블릿 컴퓨터) 상에서 재생될 수 있다. 유의할 점은, 오디오 신호가 비디오 신호와 동기된 채로 있을 수 있다는 것이다.
단계(1014)에서, 사용자는 가상 네트워크 미디어 응용 프로그램(740)에 의해 제공되는 UI에 명령을 입력한다. 이들 명령은 새로운 스피커를 부가하는 것, 볼륨을 제어하는 것, "재생", "일시정지", "되감기" 등과 같은 명령을 송신하는 것일 수 있다. 단계(1016)에서, 네트워크 인터페이스(722A)를 사용하여 명령이 스피커로 송신된다. 일 실시예에서, 이것은 단계(1006)에서 설정된 동일한 통신 링크이다. 그렇지만, 다른 통신 링크가 설정될 수 있을 것이다. 오디오 신호 및 명령이 개별적인 채널을 통해 송신되도록 통신 링크와 연관되어 있는 2개의 채널이 있을 수 있다. 유의할 점은, 도 10의 단계들이 상이한 순서로 수행될 수 있다는 것이다.
도 11a는 게이트웨이 미디어 노드(104)가 오디오를 다른 미디어 노드들(104)로 전달하는 것의 일 실시예의 플로우차트이다. 도 11a는 도 2의 단계(210)의 일 실시예이다. 단계(1102)에서, 게이트웨이 미디어 노드(104) 및 다른 미디어 노드들은 타이밍 파라미터를 설정한다. 일 실시예에서, 게이트웨이 미디어 노드(104)는 신호를 다른 미디어 노드(104)로 송신하고, 이 다른 미디어 노드(104)는 답신으로서 그에 응답한다. 게이트웨이 미디어 노드(104)는, 노드들(104)에서의 회로에 의한 처리에서의 지연들을 고려하여, 스피커들 사이에 얼마의 타이밍 지연이 있는지를 판정할 수 있다. 이 프로세스가 여러번 반복될 수 있고, 따라서 평균 지연이 계산될 수 있다.
일 실시예에서, 모든 미디어 노드(104)가 가상 벽시계에 동기화되어 있다. 의도된 렌더링 시간으로 미디어 스트림에 타임스탬핑(timestamp)하기 위해 가상 벽시계가 브로드캐스터(304)에 의해 사용될 수 있다. 소정의 시각에 미디어 샘플을 정확히 렌더링하기 위해 가상 벽시계가 렌더러(306)에 의해 사용될 수 있다. 가상 벽시계는 모든 미디어 노드(104)가 렌더링 시간에 대한 공통된 이해를 갖도록 해준다. 일 실시예에서, 각각의 렌더링 장치(306)는 미디어 스트림에 지정된 시각에 샘플을 렌더링한다. 샘플링 주파수, 워드 크기(word size), 채널의 수, 인코딩 형식 등을 비롯한 스트림의 렌더링에 대한 다른 정보가 또한 스트림 형식에 포함되어 있을 수 있다.
단계(1104)에서, 게이트웨이 미디어 노드(104)는 오디오 신호를 미디어 소스 장치(102)로부터 수신한다. 단계(1106)에서, 게이트웨이 미디어 노드(104)는 오디오를 디코딩한다. 게이트웨이는 디코딩 이전에 오디오 신호를 디멀티플렉싱할 수 있다.
단계(1108)에서, 게이트웨이 미디어 노드(104)는 다른 미디어 노드들(104)로 브로드캐스트하기 위해 오디오를 재인코딩한다. 유의할 점은, 게이트웨이가 사용되는 미디어 소스 장치와 상이한 인코딩을 사용할 수 있다는 것이다. 예를 들어, 오디오 신호는 블루투스와 호환되는 형식으로 미디어 소스 장치에서 인코딩되었을 수 있다. 오디오 신호는 WiFi와 호환되는 형식으로 재인코딩될 수 있다.
단계(1109)에서, 게이트웨이 미디어 노드(104)는 오디오 신호를 캡슐화한다. 일 실시예에서, 게이트웨이 미디어 노드(104)는 오디오 신호를 압축한다. 한 예로서, 고품질 네트워크에서는, 최소한의 처리 오버헤드로 대역폭을 절반으로 삭감하기 위해 FLAC(Free Audio Lossless Codec) 등의 경량 무손실 압축(light lossless compression) 기법이 사용될 수 있다. 저품질 네트워크에서는, 사운드 품질 및 처리 오버헤드를 희생하면서 네트워크 대역폭을 최소화하기 위해 OGG 또는 AAC(Advance Audio Coding) 등의 상위 압축 표준이 사용될 수 있다. 압축 알고리즘 자체 이외에, 신호가 보다 낮은 샘플링 레이트로 재샘플링되거나, 모노 스트림으로 다운믹싱되거나, 보다 낮은 샘플 해상도(sample resolution)로 다운샘플링될 수 있다. 미디어 스트림을 압축된 형태로 인코딩 또는 트랜스코딩하는 것은 처리 오버헤드를 대가로 보다 적은 네트워크 대역폭을 사용함으로써 방송 시간 신뢰성(airtime reliability)을 향상시킬 수 있다. 지원되는 코덱은 다양한 비트 레이트, 샘플링 주파수, 채널, 및 샘플 크기의 무손실 및 손실 압축 기법을 포함할 수 있다.
일 실시예에서, 모든 미디어 노드(104)는 지원되는 인코딩 형식을 인식하고 있다. 일 실시예에서, 모든 브로드캐스터(304)는 지원되는 형식으로 인코딩할 수 있다. 일 실시예에서, 모든 렌더러(306)는 지원되는 형식을 디코딩할 수 있다. 각각의 스트림에 대해 사용되는 인코딩 형식은 네트워크 품질로부터의 피드백, 이용가능한 처리 자원, 지원되는 렌더링 구역(rendering zone)의 수, 지원되는 활성 스트림의 수, 및 최대 허용 지연 시간에 의해 미디어 노드들(104)에서 결정될 수 있다.
선택적인 단계(1110)에서, 리던던트 패킷(redundant packet)이 부가된다. 오디오 신호가 압축되어 있는 경우, 부가의 패킷이 부가될 수 있다. 일 실시예에서, 한 그룹의 패킷이 한 그룹의 리던던트 패킷과 인터리빙되어 있다. 예를 들어, 2:1 압축비의 경우, 2초 분량의 원본 오디오 신호가 1초 분량으로 압축될 수 있다. 한 예로서, 1초 분량의 (압축된 데이터) 패킷이 1초 분량의 리던던트 패킷과 인터리빙될 수 있다. 그룹 내의 패킷의 수는 1 이상일 수 있다.
일 실시예에서, 브로드캐스팅은 2가지 옵션을 가진다. 옵션 A에서, 게이트웨이 미디어 노드(104)는 오디오 신호를 다른 미디어 노드들(104)로 브로드캐스트한다(단계 1111). 옵션 B에서, 게이트웨이 미디어 노드(104)는 오디오 신호를 무선 액세스 포인트(310)로 송신한다(단계 1112). 단계(1114)에서, 무선 액세스 포인트(310)는 오디오 신호를 다른 미디어 노드들로 브로드캐스트한다.
방송 매체는 네트워크 대역폭의 최대 소비자일 수 있다. 통상적인 미압축된 오디오 스트림은 1.5 mpbs를 초과할 수 있다. 전송은 액세스 포인트(310)로의 상향 스트림당 1.5 mbps와 렌더러(306)로의 하향 스트림당 부가의 1.5 mbps, 총 3 mbps를 소비할 수 있다. 포인트-투-포인트 사이멀캐스팅(simulcasting)의 경우, 통상적인 대역폭은 "3 mbps x 사이멀캐스팅된 스트림의 수"일 수 있다. 이것은 네트워크를 포화시킬 가능성이 있다.
실시예는 다수의 전송 프로토콜을 지원한다. 일 실시예에서, UDP over IP가 사용된다. 유의할 점은, 일 실시예에서, 수신측 미디어 노드가 패킷의 수신을 확인 응답할 필요가 없다는 것이다. 예를 들어, UDP over IP는 패킷의 수신을 필요로 하지 않을 수 있다. 일 실시예에서, 수신측 미디어 노드는 게이트웨이에 수신되지 않은 데이터 패킷을 재송신하라고 요청한다. 유의할 점은, UDP over IP를 사용하는 실시예에서 이것이 일어날 수 있다는 것이다. 앞서 언급한 바와 같이, 일 실시예에서, 리던던트 데이터 패킷이 송신된다.
네트워크 통계가 미디어 노드(104)에 의해 유지될 수 있다. 일 실시예에서, 선출된 브로드캐스터(304) 또는 게이트웨이는 서비스 품질, 지연 시간, 프로세서 이용률, 및 네트워크 이용률의 균형을 이루기 위해 최상의 전송 방법을 결정하는 일을 맡고 있다. 예를 들어, 높은 이용가능한 대역폭 및 개개의 노드(104)에의 강력한 연결에 의해, 네트워크가 양호한 품질을 가지는 경우, 보장형 전송 프로토콜(guaranteed transmission protocol)이 사용될 수 있다. 네트워크가 포화되거나 저품질을 가지는 경우, 멀티캐스팅 기법이 바람직할 수 있다. 부가의 방법은 대역폭을 절감하는 데 그리고 전송 오류를 검출, 정정 또는 은폐하는 데 도움을 줄 수 있다. 일반적으로, 스트림 구성 시에 결정된 가장 적합한 프로토콜에서 멀티캐스팅, 사이멀캐스팅 및 포인트-투-포인트 프로토콜이 지원되고, 네트워크 품질, 이용가능한 처리 능력, 및 스트림의 수가 결정 프로세스에서의 기여 인자들이다.
단계(1116)에서, 가상 미디어 네트워크 내의 모든 미디어 노드(104)는 동기하여 오디오 신호를 재생한다. 일 실시예에서, 렌더러(306)는 스트림을 디멀티플렉싱 및 디코딩하고, 캡슐화에서 지정된 시각에 렌더링한다. 유의할 점은, 게이트웨이 장치 자체가, 다시 디멀티플렉싱할 필요가 없도록, 미디어 신호의 이미 디멀티플렉싱된 버전을 저장할 수 있다는 것이다. 일 실시예에서, 게이트웨이 노드(104)는 스트림을 렌더링 스레드(rendering thread)의 형태로 그 자신에게 송신한다.
일 실시예에서, 오디오는 오디오-비디오 신호의 오디오 부분이다. 비디오 신호는 미디어 소스 장치(102)(예컨대, 태블릿 컴퓨터) 상에서 재생될 수 있다. 유의할 점은, 오디오 신호가 비디오 신호와 동기된 채로 있을 수 있다는 것이다.
미디어 클록이 벽시계를 참조하여 미디어 스트림을 통해 복구될 수 있고, 미디어 프레임 또는 샘플 그룹에 동기화될 수 있다. 미디어 클록은 하드웨어 프레임 클록, 워드 클록 및 비트 클록의 형성을 주도한다. 미디어 스트림을 통한 동기화는 논리적 관점에서 볼 때 미디어 노드(104)에서 정확한 클록이 발생될 수 있도록 보장해준다. 수정 등의 하드웨어에서의 약간의 변동은 클록 드리프트(clock drift) 및 클록 타이밍에서의 기타 변동을 야기할 수 있다. 미디어 클록 및 벽시계의 상시 측정 및 비교는 시스템이 드리프트를 검출할 수 있게 해준다. 일 실시예에서, 소프트웨어-전용 미디어 클록 복구 메커니즘은 장치들에 걸쳐 미디어 클록을 재동기시키기 위해 미디어 샘플을 미디어 렌더링 버퍼에 부가하거나 그로부터 제거하는 것을 수반한다. 일 실시예에서, 명백한 클릭 또는 건너뜀의 효과를 야기하지 않는 방식으로 렌더링 버퍼 조작이 행해진다. VCXO(voltage controlled oscillator, 전압 제어 발진기)를 사용하는 하드웨어 메커니즘이 드리프트 측정에 기초하여 프로세서로부터 제어될 수 있고, 하드웨어 발진기를 보다 엄격한 동기화로 푸시(push) 또는 풀(pull)할 수 있다.
스트림 형식에 따라, 오류가 발생할 수 있다. 오류의 원인은 패킷의 상실, 순서를 벗어난 패킷, 또는 타임스탬핑된 재생 시각 이후에 도착하는 패킷을 포함한다. 렌더러(306)는, 브로드캐스터(304)와 함께, 오류를 은폐 및/또는 방지하는 상이한 방법을 제공할 수 있다.
멀티캐스트 세션에서, 패킷이 도착하지 않을 때 도착된 패킷들의 순서 번호를 비교함으로써 오류가 검출될 수 있다. 멀티캐스트 전송 동안 패킷이 상실되는 경우, 렌더러(306)는 부정 확인 응답을 브로드캐스터(304)로 송신하여 소정의 패킷의 재전송을 요구할 수 있다. 재전송(허용 지연 시간)을 위해 이용가능한 시간이 충분하지 않거나 네트워크 대역폭이 재전송을 허용하지 않는 경우, 렌더러(306)는 영향을 받는 렌더링 시간 동안 오디오 출력을 무음화하는 것 또는 필터링 등의 신호 처리 기법을 통해 오디오 신호를 재형성하는 것에 의해 오류를 은폐할 수 있다.
패킷이 무순서로 도착하는 경우, 렌더러(306)는 도착된 패킷들을 오디오 장치로 출력하기 전에 재정렬할 수 있다. 이것은 소정의 네트워크 지연 시간에 의존적일 수 있다.
특정의 브로드캐스터-렌더러 링크가 좋지 않은 경우, 이 링크는 네트워크 내의 모든 링크의 품질에 영향을 줄 가능성이 있다. 네트워크 성능의 상시 재전송 및 재측정은 대역폭을 소모하고, 불필요한 지연 시간 및 프로세서 부담을 부가할 수 있다. 좋지 않은 네트워크 환경에서, TCP/IP 등의 보장형 전달 링크(guaranteed delivery link)는 보다 큰 대역폭 이용률을 대가로 프로세서 이용률을 완화시키는 데 사용될 수 있다. 이들 링크는 본질적으로 방송 시간 렌더링 서브시스템에서 오류 사례가 일어나는 것을 방지한다. 유의할 점은, TCP-IP가 꼭 필요하지는 않다는 것이다. 다른 대안으로서, 네트워크 대역폭이 충분한 경우, 이 방법이 표준 브로드캐스트 방법으로서 사용될 수 있다.
일부 실시예에서, 보다 높은 QoS를 전달하기 위해 미디어 노드들(104) 간에 보다 긴 허용 렌더링 지연 시간이 협상될 수 있다. 이 지연 시간이 스트림 중간에 또는 스트림 구성의 시작에서 변경될 수 있다. 지연 시간은 정정 또는 은폐 메커니즘이 효력을 발휘하는 데 더 많은 시간을 허용함으로써 QoS를 향상시킨다. 게임 또는 비디오와의 오디오 동기화에서와 같은 어떤 경우에, 보다 높은 오류율이 일어나더라도 보다 낮은 지연 시간만이 허용된다.
네트워크 미디어 드라이버(754), 가상 네트워크 미디어 드라이버(784), 가상 네트워크 미디어 응용 프로그램(740) 또는 기타 O/S 드라이버 또는 응용 프로그램은 많은 형식으로 미디어 신호(예컨대, 오디오)를 전송할 수 있다. 일 실시예에서, 미디어 신호가 원시 PCM(raw PCM)을 사용하여 미디어 소스 노드(102)로부터 전송된다. 일 실시예에서, 미디어 신호가 FLAC 등의 일반 형식(generic format)으로 트랜스코딩된다. 일 실시예에서, 네트워크 미디어 드라이버(754), 가상 네트워크 미디어 드라이버(784), 가상 네트워크 미디어 응용 프로그램(740) 또는 기타 O/S 드라이버 또는 응용 프로그램은 지능적으로 기본 소스 형식(native source format)을 사용하는 것을 선택한다. 예를 들어, 소스 파일이 MP3인 경우, 미디어 소스 노드(102) 상의 코드는 MP3를 게이트웨이 미디어 노드(104)로 스트림으로서 송신하는 것을 선택할 수 있고, 게이트웨이 미디어 노드(104)는 (게이트웨이가 신호 타이밍을 조작한 후에) MP3를 렌더링 미디어 노드로 재브로드캐스트할 수 있다.
도 11b는 미디어 소스 노드가, 미디어 신호의 기본 형식을 사용하여, 미디어 신호를 게이트웨이로 송신하는 것의 일 실시예의 플로우차트이다. 단계(1302)에서, 미디어 소스 노드(102)는 미디어 신호의 그 기본 형식을 판정한다. 단계(1304)에서, 미디어 소스 노드(102)는 가상 미디어 네트워크 내의 미디어 노드(104)가 기본 형식을 지원할 수 있는지를 판정하기 위해 그 미디어 노드(104)를 검사한다. 게이트웨이는 가상 미디어 네트워크 내의 모든 미디어 노드에 대한 정보를 가지고 있을 수 있다. 미디어 노드가 기본 형식을 지원하는 경우(단계 1306), 단계(1308)에서, 미디어 소스 노드(102)는 미디어 신호를 기본 형식을 사용하여 게이트웨이 미디어 노드(104)로 송신한다. 단계(1310)에서, 게이트웨이 미디어 노드(104)는 타이밍 정보를 부가하고 미디어 신호를 기본 형식을 사용하여 다른 미디어 노드들로 송신한다. 미디어 노드가 기본 형식을 지원하지 않는 경우(단계 1306), 미디어 소스 노드(102)는 미디어 신호를 미디어 노드(104)에 의해 이해되는 어떤 형식을 사용하여 게이트웨이 미디어 노드로 송신한다. 예를 들어, 미디어 신호는 PCM 또는 FLAC를 사용하여 송신될 수 있다.
일 실시예에서, 네트워크 미디어 드라이버(754), 가상 네트워크 미디어 드라이버(784), 가상 네트워크 미디어 응용 프로그램(740) 또는 기타 O/S 드라이버 또는 응용 프로그램은 기본 형식을 조작하고 이를 렌더링 미디어 노드(104)로 직접 송신할 수 있다. 이것은 그렇지 않았으면 게이트웨이 미디어 노드(104) 또는 미디어 소스 장치(102)에서 행해질 트랜스코딩을 절감하고, 일반적으로 보다 적은 대역폭을 사용할 것이다. 도 11c는 미디어 소스 장치(102)가 타이밍 정보로 기본 형식을 조작하는 일 실시예의 플로우차트이다. 단계(1322)에서, 미디어 소스 장치(102)는 미디어 노드(104)(예컨대, 렌더러 및/또는 게이트웨이)를 검사하여, 기본 인코딩 형식이 그 장치 상에서 디코딩될 수 있는지를 판정한다.
단계(1326)에서, 미디어 소스 노드(102)는 기본 형식을 사용하여 송신할지 또는 미디어 노드(104)에 의해 지원되는 다른 형식을 사용하여 송신할지를 결정한다. 미디어 소스 장치(102)가 기본 형식을 지원하는 경우, 타이밍 정보가 미디어 소스 장치에 의해 부가되고(단계 1328, 미디어 소스 장치(102)는 미디어 신호를 기본 형식을 지원하는 미디어 노드(104)로 송신한다(단계 1330). OS 아키텍처에서, 응용 프로그램이 스트림 또는 파일 데이터를 펌핑해 보낼 미디어 디코딩 기능(예컨대, DirectShow, 또는 OpenCore, 또는 gStreamer)이 있을 수 있다. 선택적으로 트랜스코딩하거나 건너뛰어(bypass) 드라이버를 통해 전송하기 위해 이 기능이 이 레벨에서 수정될 수 있다. 이 형식이 미디어 노드(104)에 의해 지원되지 않는 경우, 원시 PCM 또는 FLAC와 같은 지원되는 형식으로의 트랜스코딩이 행해질 수 있을 것이다. 이것은 단계(1322 및 1334)에 나타내어져 있다.
일 실시예에서, 가상 미디어 네트워크에서 재생되는 오디오 신호는 비디오 신호와 동기되어 있다. 한 예로서, 미디어 소스 장치(102)는 오디오-비주얼 신호의 비디오 부분을 디스플레이에 제공한다. 그 신호의 오디오 부분은 게이트웨이 미디어 노드(104)로 송신되고, 게이트웨이 미디어 노드(104)는 이를 가상 미디어 네트워크 내의 다른 미디어 노드들(104)로 브로드캐스트한다.
디스플레이는 임의의 장치일 수 있다. 디스플레이는 미디어 소스 장치(102)의 일부일 수 있다. 다른 대안으로서, 비디오 신호는 무선으로 또는 유선으로 디스플레이 또는 디스플레이를 갖는 장치로 송신될 수 있다. 디스플레이는 가상 미디어 네트워크 내의 노드와 연관되어 있거나 연관되어 있지 않을 수 있다. 예로서, 디스플레이는 태블릿 컴퓨터, 텔레비전, 셀룰러폰 등일 수 있다.
일 실시예에서, 오디오와 비디오를 동기화시키는 것은 비디오에 대한 렌더링 시간 및 오디오에 대한 렌더링 시간을 가지는 것을 포함한다. 비디오 렌더링 시간은 비디오가 디스플레이 상에 렌더링되는 때를 제어하는 데 사용된다. 미디어 소스 장치(102)는 오디오 렌더링 시간을 게이트웨이 미디어 노드로 송신할 수 있다. 따라서, 오디오는 비디오와 동기화된 채로 있을 수 있다. 오디오 렌더링 시간은 다수의 미디어 노드(102)가 오디오를 비디오와 동기하여 재생할 수 있게 해주기 위해 사용될 수 있다.
도 12는 앞서 기술한 장치들 중 임의의 장치를 구현하는 데 사용될 수 있는 컴퓨터 시스템의 상위 레벨 블록도를 나타낸 것이다. 도 12의 컴퓨터 시스템은 하나 이상의 프로세서(550) 및 메인 메모리(552)를 포함하고 있다. 메인 메모리(552)는 프로세서 유닛(550)에 의해 실행하기 위한 명령어 및 데이터를 부분적으로 저장하고 있다. 본 발명의 시스템이 전체적으로 또는 부분적으로 소프트웨어로 구현되는 경우, 메인 메모리(552)는 동작 중일 때 실행가능 코드를 저장할 수 있다. 도 12의 시스템은 대용량 저장 장치(554), 주변 장치(들)(556), 사용자 입력 장치(들)(560), 출력 장치(558), 휴대용 저장 매체 드라이브(들)(562), 그래픽 서브시스템(564) 및 출력 디스플레이(566)를 추가로 포함하고 있다. 간단함을 위해, 도 12에 도시된 구성요소는 단일 버스(568)를 통해 연결되어 있는 것으로 도시되어 있다. 그렇지만, 구성요소들이 하나 이상의 데이터 전송 수단을 통해 연결될 수 있다. 예를 들어, 프로세서 유닛(550)과 메인 메모리(552)는 로컬 마이크로프로세서 버스를 통해 연결될 수 있고, 대용량 저장 장치(554), 주변 장치(들)(556), 휴대용 저장 매체 드라이브(들)(562), 및 그래픽 서브시스템(564)는 하나 이상의 입/출력(I/O) 버스를 통해 연결될 수 있다. 자기 디스크 드라이브 또는 광 디스크 드라이브로 구현될 수 있는 대용량 저장 장치(554)는 프로세서 유닛(550)에 의해 사용되는 데이터 및 명령어를 저장하는 비휘발성 저장 장치이다. 일 실시예에서, 대용량 저장 장치(554)는 메인 메모리(552)에 로드하기 위해 본 발명을 구현하는 시스템 소프트웨어를 저장한다.
데이터 및 코드를 도 12의 컴퓨터 시스템에 입력하고 그로부터 출력하기 위해, 휴대용 저장 매체 드라이브(562)가 플로피 디스크 등의 휴대용 비휘발성 저장 매체와 함께 동작한다. 일 실시예에서, 본 발명을 구현하는 시스템 소프트웨어는 이러한 휴대용 매체 상에 저장되고, 휴대용 저장 매체 드라이브(562)를 통해 컴퓨터 시스템에 입력된다. 주변 장치(들)(556)는 부가의 기능을 컴퓨터 시스템에 부가하기 위해 입/출력(I/O) 인터페이스 등의 임의의 유형의 컴퓨터 지원 장치를 포함할 수 있다. 예를 들어, 주변 장치(들)(556)는 컴퓨터 시스템을 네트워크에 연결시키는 네트워크 인터페이스, 모뎀, 라우터 등을 포함할 수 있다.
사용자 입력 장치(들)(560)는 사용자 인터페이스의 일부분을 제공한다. 사용자 입력 장치(들)(560)는 영숫자 및 기타 정보를 입력하는 영숫자 키보드, 또는 마우스, 트랙볼, 스타일러스, 또는 커서 방향 키 등의 포인팅 장치를 포함할 수 있다. 텍스트 및 그래픽 정보를 디스플레이하기 위해, 도 12의 컴퓨터 시스템은 그래픽 서브시스템(564) 및 출력 디스플레이(566)를 포함하고 있다. 출력 디스플레이(566)는 음극선관(CRT) 디스플레이, 액정 디스플레이(LCD) 또는 기타 적합한 디스플레이 장치를 포함할 수 있다. 그래픽 서브시스템(564)은 텍스트 및 그래픽 정보를 수신하고, 그 정보를 처리하여 디스플레이(566)로 출력한다. 그에 부가하여, 도 12의 시스템은 출력 장치(558)를 포함하고 있다. 적당한 출력 장치의 예로는 스피커, 프린터, 네트워크 인터페이스, 모니터 등이 있다.
도 12의 컴퓨터 시스템에 포함된 구성요소들은 본 발명에서 사용하기에 적합한 컴퓨터 시스템에서 통상적으로 발견되는 것들이고, 본 기술 분야에 공지되어 있는 광범위한 부류의 이러한 컴퓨터 구성요소들을 나타내기 위한 것이다. 이와 같이, 도 12의 컴퓨터 시스템은 셀룰러폰, 스마트폰, PDA, 태블릿 컴퓨터, 개인용 컴퓨터, 모바일 컴퓨팅 장치, 워크스테이션, 서버, 미니컴퓨터, 메인프레임 컴퓨터, 또는 임의의 다른 컴퓨팅 장치일 수 있다. 컴퓨터는 또한 상이한 버스 구성, 네트워크로 연결된 플랫폼, 멀티-프로세서 플랫폼 등을 포함할 수 있다. 유닉스(Unix), 리눅스(Linux), 윈도즈(Windows), 매킨토시 OS(Macintosh OS), 팜 OS(Palm OS) 및 다른 적당한 운영 체제를 비롯한 다양한 운영 체제가 사용될 수 있다.
이상에서 기술한 기술은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어 둘 다의 조합을 사용하여 구현될 수 있다. 소프트웨어는 하드 디스크 드라이브, CD-ROM, DVD, 광 디스크, 플로피 디스크, 테이프 드라이브, RAM, ROM, 플래시 메모리, 또는 기타 적당한 저장 장치를 비롯한 하나 이상의 프로세서 판독가능 저장 장치 상에 저장된다. 소프트웨어는 하나 이상의 프로세서를 본 명세서에 기술된 임의의 프로세스를 수행하도록 프로그램하는 데 사용된다. 대안의 실시예에서, 소프트웨어의 일부 또는 전부가 커스텀 집적 회로(custom integrated circuit), 게이트 어레이(gate array), FPGA, PLD, 및 전용 컴퓨터를 비롯한 전용 하드웨어로 대체될 수 있다.
일 실시예는 다음과 같은 것들을 포함하는 미디어를 배포하는 방법을 포함한다. 미디어 소스 장치는 가상 미디어 네트워크를 형성하는 데 잠재적으로 이용가능한 미디어 노드들을 기술하는 상태 정보를 수신한다. 가상 미디어 네트워크를 형성하게 될 하나 이상의 미디어 노드 중의 하나 이상의 선택이 수신된다. 운영 체제 인터페이스에서 출력 장치로서 선택되는 가상 미디어 네트워크 내의 미디어 노드들 중 제1 미디어 노드는 제1 미디어 노드가 미디어 소스 장치로부터 수신하는 미디어 신호를 가상 미디어 네트워크 내의 다른 미디어 노드들로 전달하라고 지시받는다.
일 실시예는 네트워크 장치를 포함하며, 이 네트워크 장치는 제1 네트워크 프로토콜을 사용하여 미디어 소스 장치로부터 미디어 신호를 수신하는 제1 네트워크 인터페이스, 제2 네트워크 프로토콜을 사용하여 미디어 소스 장치로부터 미디어 신호를 수신하는 제2 네트워크 인터페이스, 및 제1 네트워크 인터페이스 및 제2 네트워크 인터페이스 둘 다로부터 수신된 미디어 신호를 제2 네트워크 프로토콜을 사용하여 다른 장치로 전송하는 브로드캐스터(broadcaster)를 포함한다.
일 실시예는 프로세서 판독가능 코드가 구현되어 있는 하나 이상의 프로세서 판독가능 저장 장치를 포함하고, 상기 프로세서 판독가능 코드는 다음과 같은 단계들을 포함하는 방법을 수행하도록 하나 이상의 프로세서를 프로그램한다. 미디어 소스 장치는 가상 미디어 네트워크를 형성하는 데 잠재적으로 이용가능한 미디어 노드들을 기술하는 상태 정보를 수신한다. 미디어 노드들 중 제1 미디어 노드가 게이트웨이 미디어 노드로서 설정된다. 게이트웨이 미디어 노드는 게이트웨이 미디어 노드와 함께 가상 미디어 네트워크를 형성하게 될 미디어 노드들 중 하나 이상의 미디어 노드에 링크하라고 요청받는다. 제1 미디어 노드는 게이트웨이 미디어 노드로서 기능하면서 운영 체제 인터페이스에서 출력 장치로서 역할한다.
일 실시예는 다음과 같은 것들을 포함하는 방법을 포함한다. 제1 미디어 신호가 제1 네트워크 프로토콜을 사용하여 미디어 소스 장치로부터 제1 네트워크 미디어 노드에 수신된다. 제1 미디어 신호에 대한 명령 신호가 제2 네트워크 프로토콜을 사용하여 미디어 소스 장치로부터 제1 네트워크 미디어 노드에 수신된다. 명령 신호는 제1 미디어 신호 및 제1 미디어 신호를 렌더링하는 명령을 수신할 다른 네트워크 미디어 노드를 지정한다. 제1 미디어 신호가 제2 네트워크 프로토콜을 사용하여 다른 네트워크 미디어 노드로 브로드캐스트된다. 명령이 제2 네트워크 프로토콜을 사용하여 다른 네트워크 미디어 노드들로 송신된다.
일 실시예는 다음과 같은 것들을 포함하는 방법을 포함한다. 미디어가 미디어 소스 장치로부터 네트워크 내로 주입된다. 네트워크는 복수의 미디어 노드를 포함한다. 미디어 노드들 중 제1 미디어 노드가 미디어 소스 장치에 대한 활성 출력 장치로서의 그의 상태에 기초하여 네트워크에 대한 게이트웨이로서 역할하도록 선택된다. 미디어를 제1 미디어 노드로부터 미디어를 능동적으로 렌더링하는 미디어 노드들로 재브로드캐스트하는 것 및 미디어 노드들에서 미디어를 렌더링하는 것의 정확한 타이밍 동기화를 유지하는 것을 비롯한 미디어 배포가 제1 미디어 노드에서 제어된다.
이상의 상세한 설명은 예시 및 설명을 위해 제공되었다. 이는 전수적이거나 실시예를 개시된 정확한 형태로 제한하기 위한 것이 아니다. 이상의 개시 내용을 바탕으로 많은 수정 및 변형이 가능하다. 원리 및 실제 응용을 가장 잘 설명하기 위해 기술된 실시예가 선택되어 있으며, 그로써 당업자가 생각되는 특정의 용도에 적합하도록 다양한 실시예 및 다양한 수정예를 가장 잘 이용할 수 있게 해준다. 그 범위는 본 명세서에 첨부된 특허청구범위에 의해 한정되는 것으로 보아야 한다.

Claims (33)

  1. 미디어를 배포하는 방법에 있어서,
    미디어 소스 장치에서, 가상 미디어 네트워크를 형성하는 데 잠재적으로 이용가능한 미디어 노드들을 기술(describe)하는 상태 정보를 수신하는 단계(204);
    가상 미디어 네트워크를 형성하게 될 하나 이상의 미디어 노드 중의 하나 이상의 선택을 수신하는 단계(604); 및
    운영 체제 인터페이스에서 출력 장치로서 선택되는 상기 가상 미디어 네트워크 내의 상기 미디어 노드들 중 제1 미디어 노드에, 상기 제1 미디어 노드가 상기 미디어 소스 장치로부터 수신하는 미디어 신호를 상기 가상 미디어 네트워크 내의 다른 미디어 노드로 전달하라고 지시하는 단계(206)를 포함하는, 미디어 배포 방법.
  2. 제1항에 있어서,
    운영 체제 레벨에서 상기 미디어 신호의 멀티룸 스트리밍(multi-room streaming)을 가능하게 해주기 위해 상기 하나 이상의 미디어 노드로의 연결을 생성하는 단계를 추가로 포함하는, 미디어 배포 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 미디어 노드에 지시하는 단계는,
    상기 가상 미디어 네트워크에서 상기 미디어 신호를 제어하고 배포하는 하나 이상의 명령을 상기 미디어 소스 장치 상의 제1 네트워크 인터페이스를 사용하여 상기 제1 미디어 노드로 송신하는 단계를 포함하는 것인, 미디어 배포 방법.
  4. 제3항에 있어서,
    상기 제1 네트워크 인터페이스가 상기 미디어 신호를 상기 제1 미디어 노드로 송신하는 데 사용되는 제2 네트워크와 상이하고, 상기 제1 네트워크 인터페이스는 제1 통신 프로토콜을 사용하고, 상기 제2 인터페이스는 제2 통신 프로토콜을 사용하는 것인, 미디어 배포 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 어느 장치가 상기 출력 장치로서 선택되었는지에 관해 상기 운영 체제에 질의하는 단계; 및
    제1 미디어 장치가 상기 출력 장치로서 선택되었다는 것을 상기 운영 체제가 나타낸 것에 응답하여, 상기 제1 미디어 노드를 상기 가상 미디어 네트워크에 대한 게이트웨이로서 설정하는 단계를 추가로 포함하는, 미디어 배포 방법.
  6. 제1항에 있어서,
    상기 운영 체제 내의 장치 드라이버에서 상기 미디어 신호를 수신하는 단계; 및
    상기 미디어 신호를 상기 제1 미디어 노드로 전송하는 단계를 추가로 포함하고,
    상기 지시하는 단계는 상기 장치 드라이버에 의해 수행되는 것인, 미디어 배포 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 미디어 신호는 상기 미디어 소스 장치 상에 제시되고 있는 비디오 신호와 연관되어 있는 오디오 신호이고,
    상기 방법은, 상기 가상 미디어 네트워크 내의 상기 미디어 노드에, 상기 오디오 신호를 상기 비디오 신호와 동기하여 재생하라고 지시하는 단계를 추가로 포함하는 것인, 미디어 배포 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    제1 네트워크 프로토콜을 사용하여 상기 제1 미디어 노드에서 상기 미디어 신호- 상기 미디어 신호는 제1 미디어 신호임 -를 수신하는 단계;
    상기 제1 미디어 노드에서, 상기 제1 미디어 신호에 대한 명령 신호- 상기 명령 신호는 상기 제1 미디어 신호 및 상기 제1 미디어 신호를 렌더링하는 명령들을 수신할 다른 미디어 노드들을 지정함 -를 제2 네트워크 프로토콜을 사용하여 상기 미디어 소스 장치로부터 수신하는 단계;
    상기 제2 네트워크 프로토콜을 사용하여 상기 제1 미디어 신호를 상기 다른 네트워크 미디어 노드들로 브로드캐스트(broadcast)하는 단계; 및
    상기 제2 네트워크 프로토콜을 사용하여 상기 제1 미디어 신호를 렌더링하는 명령들을 상기 제1 미디어 노드로부터 상기 다른 미디어 노드들로 송신하는 단계를 추가로 포함하는, 미디어 배포 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 제1 미디어 노드에서, 상기 다른 미디어 노드들로부터 장치 상태를 수신하는 단계;
    상기 수신된 장치 상태에 기초하여 상태 정보를 상기 제1 미디어 노드에서 유지하는 단계; 및
    상기 상태 정보를 상기 미디어 소스 장치로 송신하는 단계를 추가로 포함하고,
    상기 제1 미디어 노드는 상기 제1 미디어 노드 및 상기 다른 미디어 노드들을 포함하는 가상 미디어 네트워크에 대한 게이트웨이로서 역할하는 것인, 미디어 배포 방법.
  10. 미디어 소스 장치에 있어서,
    가상 미디어 네트워크를 형성하는 데 잠재적으로 이용가능한 미디어 노드들을 기술하는 상태 정보를 수신하고, 상기 미디어 노드들 중 제1 미디어 노드를 게이트웨이 미디어 노드로서 설정하며, 상기 게이트웨이 미디어 노드에 상기 게이트웨이 미디어 노드와 함께 가상 미디어 네트워크를 형성하게 될 상기 미디어 노드들 중 하나 이상의 미디어 노드에 링크(link)하라고 요청하도록 구성되는 프로세서를 포함하고,
    상기 제1 미디어 노드는, 상기 게이트웨이 미디어 노드로서 기능하면서 상기 미디어 소스 장치의 운영 체제 인터페이스에서 출력 장치로서 역할하는 것인, 미디어 소스 장치.
  11. 제10항에 있어서,
    상기 프로세서는 또한 제1 네트워크 통신 프로토콜을 사용하여 상기 가상 미디어 네트워크를 제어하는 하나 이상의 명령을 상기 제1 미디어 노드로 송신하도록 구성되어 있고, 상기 제1 네트워크 통신 프로토콜은 상기 가상 미디어 네트워크에서 렌더링될 미디어 신호를 상기 제1 미디어 노드로 송신하는 데 사용되는 제2 네트워크 통신 프로토콜과 상이한 것인, 미디어 소스 장치.
  12. 제10항 또는 제11항에 있어서,
    상기 프로세서는 또한 어느 장치가 상기 출력 장치로서 선택되었는지에 관해 상기 운영 체제에 질의하도록 구성되어 있고, 상기 제1 미디어 장치가 상기 출력 장치로서 선택되었다는 것을 상기 운영 체제가 나타낸 것에 응답하여, 상기 제1 미디어 노드를 게이트웨이로서 설정하는 동작이 수행되는 것인, 미디어 소스 장치.
  13. 제11항 또는 제12항에 있어서,
    제1 통신 프로토콜을 사용하는 제1 네트워크 인터페이스; 및
    제2 통신 프로토콜을 사용하는 제2 네트워크 인터페이스를 추가로 포함하고,
    상기 프로세서는 상기 제1 네트워크 인터페이스를 사용하여 상기 미디어 신호를 상기 제1 미디어 노드로 송신하고, 상기 프로세서는 상기 제2 네트워크 인터페이스를 사용하여 상기 명령들을 송신하는 것인, 미디어 소스 장치.
  14. 제10항 내지 제13항 중 어느 한 항에 있어서,
    상기 프로세서는, 오디오-비디오 신호의 비디오 신호 부분을 재생하고 상기 가상 미디어 네트워크 내의 상기 미디어 노드들에, 상기 미디어 신호를 상기 비디오 신호와 동기하여 재생하라고 지시하며, 상기 미디어 신호는 상기 오디오-비디오 신호의 오디오 부분인, 미디어 소스 장치.
  15. 제10항 내지 제14항 중 어느 한 항에 있어서,
    상기 프로세서는, 운영 체제 레벨에서 상기 미디어 신호의 멀티룸 스트리밍을 가능하게 해주기 위해, 상기 게이트웨이 미디어 노드에 상기 하나 이상의 미디어 노드들로의 연결을 생성하라고 지시하는 것인, 미디어 소스 장치.
  16. 제1 네트워크 프로토콜을 사용하여 미디어 소스 장치로부터 미디어 신호를 수신하는 제1 네트워크 인터페이스;
    제2 네트워크 프로토콜을 사용하여 미디어 소스 장치로부터 미디어 신호를 수신하는 제2 네트워크 인터페이스; 및
    상기 제1 네트워크 인터페이스 및 상기 제2 네트워크 인터페이스 둘 다로부터 수신된 미디어 신호들을 상기 제2 네트워크 프로토콜을 사용하여 다른 장치로 전송하는 브로드캐스터(broadcaster)를 포함하는, 네트워크 장치.
  17. 제16항에 있어서,
    상기 제1 네트워크 프로토콜이 블루투스인, 네트워크 장치.
  18. 제17항에 있어서,
    상기 제2 네트워크 프로토콜이 WiFi인, 네트워크 장치.
  19. 제16항에 있어서,
    상기 제1 네트워크 인터페이스를 통해 수신되는 제1 오디오 스트림을 디멀티플렉싱(de-multiplex)하고, 상기 제1 오디오 스트림을 트랜스코딩(transcode)하며, 상기 트랜스코딩된 제1 오디오 스트림을 제2 오디오 스트림으로 리멀티플렉싱(re-multiplexe)하는 논리부(logic)를 추가로 포함하고, 상기 브로드캐스터는 상기 제2 네트워크 인터페이스를 사용하여 상기 제2 오디오 스트림을 전송하는 것인 네트워크 장치.
  20. 제16항에 있어서,
    패킷들을 가지는 출력 미디어 신호를 생성하기 위해 상기 미디어 소스 장치로부터 수신된 상기 미디어 신호를 트랜스코딩 및 압축하는 논리부를 추가로 포함하고, 상기 브로드캐스터는 한 그룹의 상기 패킷들을 리던던트(redundant) 그룹의 상기 패킷들과 인터리빙(interleave)하는 것인, 네트워크 장치.
  21. 제16항에 있어서,
    상기 제1 및 제2 네트워크 인터페이스에 결합되어 있고, 상기 제1 및 제2 네트워크를 통해 수신된 미디어 신호들을 렌더링하는, 렌더링 장치를 추가로 포함하는, 네트워크 장치.
  22. 제16항에 있어서,
    네트워크 미디어 노드들로부터 장치 상태를 수신하고, 수신된 장치 상태에 기초하여 상태 정보를 유지하며, 상기 상태 정보를 가상 미디어 네트워크에 대한 미디어 소스로서 역할하는 장치로 송신하는 논리부를 추가로 포함하고, 상기 네트워크 장치는 상기 가상 미디어 네트워크에 대한 게이트웨이로서 역할하는 것인, 네트워크 장치.
  23. 제22항에 있어서,
    상기 네트워크 미디어 노드들 각각에 대한 상기 장치 상태는, 상기 네트워크 미디어 노드가 가상 미디어 네트워크에 대한 오디오 소스로서 역할하는 장치와 페어링(pairing)되어 있는지 여부의 표시를 포함하는 것인, 네트워크 장치.
  24. 제22항에 있어서,
    상기 네트워크 미디어 노드들 각각에 대한 상기 장치 상태는, 상기 네트워크 미디어 노드가 가상 미디어 네트워크에 대한 게이트웨이 장치로서 역할하는지 여부의 표시를 포함하는 것인, 네트워크 장치.
  25. 제22항에 있어서, 소정의(given) 네트워크 미디어 노드에 대한 상기 장치 상태는, 상기 소정의 네트워크 미디어 노드가 상기 가상 미디어 네트워크에서의 활성 노드인지 여부의 표시, 및 그러한 경우, 상기 소정의 네트워크 미디어 노드가 활성 노드인 상기 가상 미디어 네트워크의 식별자를 포함하는 것인, 네트워크 장치.
  26. 제1 미디어 노드에서, 제1 네트워크 프로토콜을 사용하여 미디어 소스 장치로부터 제1 미디어 신호를 수신하는 단계;
    상기 제1 미디어 노드에서, 상기 제1 미디어 신호에 대한 명령 신호- 상기 명령 신호는 상기 제1 미디어 신호 및 상기 제1 미디어 신호를 렌더링하는 명령들을 수신할 다른 미디어 노드들을 지정함 -를 제2 네트워크 프로토콜을 사용하여 상기 미디어 소스 장치로부터 수신하는 단계;
    상기 제2 네트워크 프로토콜을 사용하여 상기 제1 미디어 신호를 상기 다른 네트워크 미디어 노드들로 브로드캐스트하는 단계; 및
    상기 제2 네트워크 프로토콜을 사용하여 상기 제1 미디어 신호를 렌더링하는 명령들을 상기 제1 미디어 노드로부터 상기 다른 미디어 노드들로 송신하는 단계를 포함하는, 방법.
  27. 제26항에 있어서,
    상기 제1 미디어 노드에서 수신되는 상기 제1 미디어 신호를 디멀티플렉싱하는 단계;
    상기 제1 미디어 신호를 트랜스코딩하는 단계; 및
    상기 트랜스코딩된 제1 미디어 신호를 리멀티플렉싱하는 단계를 추가로 포함하고,
    상기 제1 미디어 신호를 브로드캐스트하는 단계는 상기 트랜스코딩되고 리멀티플렉싱된 제1 미디어 신호를 전송하는 단계를 포함하는 것인, 방법.
  28. 제26항에 있어서,
    상기 미디어 소스 장치로부터 수신된 상기 미디어 신호를 트랜스코딩하는 단계; 및
    패킷들을 가지는 출력 미디어 신호를 생성하기 위해 상기 트랜스코딩된 미디어 신호를 압축하는 단계를 추가로 포함하고,
    상기 제1 미디어 신호를 브로드캐스트하는 단계는 한 그룹의 상기 패킷들을 리던던트 그룹의 상기 패킷들과 인터리빙(interleave)하는 단계를 포함하는 것인, 방법.
  29. 제26항에 있어서,
    상기 다른 미디어 노드들 중 하나가 상기 제1 미디어 노드에 상기 제1 미디어 신호 내의 패킷을 재송신하라고 요청하는 단계를 추가로 포함하고,
    상기 제1 미디어 신호를 브로드캐스트하는 단계는 패킷의 수신의 확인 응답을 필요로 하지 않는 프로토콜을 사용하는 단계를 포함하는 것인, 방법.
  30. 제26항에 있어서,
    상기 제1 미디어 노드에서, 상기 다른 미디어 노드들로부터 장치 상태를 수신하는 단계;
    상기 수신된 장치 상태에 기초하여 상태 정보를 상기 제1 미디어 노드에서 유지하는 단계; 및
    상기 상태 정보를 상기 미디어 소스 장치로 송신하는 단계를 추가로 포함하고,
    상기 제1 미디어 노드는 상기 제1 미디어 노드 및 상기 다른 미디어 노드들을 포함하는 가상 미디어 네트워크에 대한 게이트웨이로서 역할하는 것인, 방법.
  31. 미디어 소스 장치로부터 복수의 미디어 노드를 포함하는 네트워크 내에 미디어를 주입하는 단계;
    상기 미디어 노드들 중 제1 미디어 노드를 상기 미디어 소스 장치에 대한 활성 출력 장치로서의 그의 상태에 기초하여 상기 네트워크에 대한 게이트웨이로서 역할하도록 선택하는 단계;
    상기 제1 미디어 노드에서 미디어 배포를 제어하는 단계를 포함하고,
    상기 제어하는 단계는,
    상기 미디어를 상기 제1 미디어 노드로부터 상기 미디어를 능동적으로 렌더링하고 있는 미디어 노드들로 재브로드캐스팅(re-broadcast)하는 단계; 및
    상기 미디어 노드들에서 상기 미디어를 렌더링하는 것의 정확한 타이밍 동기화를 유지하는 단계를 포함하는 것인, 방법.
  32. 제31항에 있어서,
    상기 미디어를 주입하는 단계는, 휴대폰, 태블릿, 스테레오, 셋톱 박스 또는 개인용 컴퓨터 중 하나에 의해 수행되는 것인, 방법.
  33. 제31항에 있어서,
    상기 복수의 종단점 렌더링 장치는 스테레오, 스피커, 텔레비전, 컴퓨터, 및 모니터를 포함하는 것인, 방법.
KR1020137013055A 2010-10-22 2011-10-21 미디어 배포 아키텍처 KR20140035310A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US40583510P 2010-10-22 2010-10-22
US61/405,835 2010-10-22
PCT/US2011/057349 WO2012054872A2 (en) 2010-10-22 2011-10-21 Media distribution architecture

Publications (1)

Publication Number Publication Date
KR20140035310A true KR20140035310A (ko) 2014-03-21

Family

ID=44908125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137013055A KR20140035310A (ko) 2010-10-22 2011-10-21 미디어 배포 아키텍처

Country Status (5)

Country Link
US (1) US20120099594A1 (ko)
EP (1) EP2630805A2 (ko)
KR (1) KR20140035310A (ko)
CN (1) CN103299649A (ko)
WO (1) WO2012054872A2 (ko)

Cited By (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200034839A (ko) * 2016-02-22 2020-03-31 소노스 인코포레이티드 미디어 재생 시스템의 음성 제어
US10811015B2 (en) 2018-09-25 2020-10-20 Sonos, Inc. Voice detection optimization based on selected voice assistant service
US10847143B2 (en) 2016-02-22 2020-11-24 Sonos, Inc. Voice control of a media playback system
US10847178B2 (en) 2018-05-18 2020-11-24 Sonos, Inc. Linear filtering for noise-suppressed speech detection
US10873819B2 (en) 2016-09-30 2020-12-22 Sonos, Inc. Orientation-based playback device microphone selection
US10880650B2 (en) 2017-12-10 2020-12-29 Sonos, Inc. Network microphone devices with automatic do not disturb actuation capabilities
US10878811B2 (en) 2018-09-14 2020-12-29 Sonos, Inc. Networked devices, systems, and methods for intelligently deactivating wake-word engines
US10891932B2 (en) 2017-09-28 2021-01-12 Sonos, Inc. Multi-channel acoustic echo cancellation
US10959029B2 (en) 2018-05-25 2021-03-23 Sonos, Inc. Determining and adapting to changes in microphone performance of playback devices
US10970035B2 (en) 2016-02-22 2021-04-06 Sonos, Inc. Audio response playback
US11024331B2 (en) 2018-09-21 2021-06-01 Sonos, Inc. Voice detection optimization using sound metadata
US11076035B2 (en) 2018-08-28 2021-07-27 Sonos, Inc. Do not disturb feature for audio notifications
US11080005B2 (en) 2017-09-08 2021-08-03 Sonos, Inc. Dynamic computation of system response volume
US11100923B2 (en) 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US11132989B2 (en) 2018-12-13 2021-09-28 Sonos, Inc. Networked microphone devices, systems, and methods of localized arbitration
US11133018B2 (en) 2016-06-09 2021-09-28 Sonos, Inc. Dynamic player selection for audio signal processing
US11159880B2 (en) 2018-12-20 2021-10-26 Sonos, Inc. Optimization of network microphone devices using noise classification
US11175880B2 (en) 2018-05-10 2021-11-16 Sonos, Inc. Systems and methods for voice-assisted media content selection
US11175888B2 (en) 2017-09-29 2021-11-16 Sonos, Inc. Media playback system with concurrent voice assistance
US11183181B2 (en) 2017-03-27 2021-11-23 Sonos, Inc. Systems and methods of multiple voice services
US11184969B2 (en) 2016-07-15 2021-11-23 Sonos, Inc. Contextualization of voice inputs
US11183183B2 (en) 2018-12-07 2021-11-23 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
US11189286B2 (en) 2019-10-22 2021-11-30 Sonos, Inc. VAS toggle based on device orientation
US11197096B2 (en) 2018-06-28 2021-12-07 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
US11200889B2 (en) 2018-11-15 2021-12-14 Sonos, Inc. Dilated convolutions and gating for efficient keyword spotting
US11200900B2 (en) 2019-12-20 2021-12-14 Sonos, Inc. Offline voice control
US11200894B2 (en) 2019-06-12 2021-12-14 Sonos, Inc. Network microphone device with command keyword eventing
US11302326B2 (en) 2017-09-28 2022-04-12 Sonos, Inc. Tone interference cancellation
US11308962B2 (en) 2020-05-20 2022-04-19 Sonos, Inc. Input detection windowing
US11308961B2 (en) 2016-10-19 2022-04-19 Sonos, Inc. Arbitration-based voice recognition
US11308958B2 (en) 2020-02-07 2022-04-19 Sonos, Inc. Localized wakeword verification
US11315556B2 (en) 2019-02-08 2022-04-26 Sonos, Inc. Devices, systems, and methods for distributed voice processing by transmitting sound data associated with a wake word to an appropriate device for identification
US11343614B2 (en) 2018-01-31 2022-05-24 Sonos, Inc. Device designation of playback and network microphone device arrangements
US11354092B2 (en) 2019-07-31 2022-06-07 Sonos, Inc. Noise classification for event detection
US11361756B2 (en) 2019-06-12 2022-06-14 Sonos, Inc. Conditional wake word eventing based on environment
US11380322B2 (en) 2017-08-07 2022-07-05 Sonos, Inc. Wake-word detection suppression
US11405430B2 (en) 2016-02-22 2022-08-02 Sonos, Inc. Networked microphone device control
US11432030B2 (en) 2018-09-14 2022-08-30 Sonos, Inc. Networked devices, systems, and methods for associating playback devices based on sound codes
US11482978B2 (en) 2018-08-28 2022-10-25 Sonos, Inc. Audio notifications
US11482224B2 (en) 2020-05-20 2022-10-25 Sonos, Inc. Command keywords with input detection windowing
US11501795B2 (en) 2018-09-29 2022-11-15 Sonos, Inc. Linear filtering for noise-suppressed speech detection via multiple network microphone devices
US11501773B2 (en) 2019-06-12 2022-11-15 Sonos, Inc. Network microphone device with command keyword conditioning
US11531520B2 (en) 2016-08-05 2022-12-20 Sonos, Inc. Playback device supporting concurrent voice assistants
US11551700B2 (en) 2021-01-25 2023-01-10 Sonos, Inc. Systems and methods for power-efficient keyword detection
US11551669B2 (en) 2019-07-31 2023-01-10 Sonos, Inc. Locally distributed keyword detection
US11556306B2 (en) 2016-02-22 2023-01-17 Sonos, Inc. Voice controlled media playback system
US11556307B2 (en) 2020-01-31 2023-01-17 Sonos, Inc. Local voice data processing
US11562740B2 (en) 2020-01-07 2023-01-24 Sonos, Inc. Voice verification for media playback
US11641559B2 (en) 2016-09-27 2023-05-02 Sonos, Inc. Audio playback settings for voice interaction
US11646023B2 (en) 2019-02-08 2023-05-09 Sonos, Inc. Devices, systems, and methods for distributed voice processing
US11646045B2 (en) 2017-09-27 2023-05-09 Sonos, Inc. Robust short-time fourier transform acoustic echo cancellation during audio playback
US11664023B2 (en) 2016-07-15 2023-05-30 Sonos, Inc. Voice detection by multiple devices
US11676590B2 (en) 2017-12-11 2023-06-13 Sonos, Inc. Home graph
US11698771B2 (en) 2020-08-25 2023-07-11 Sonos, Inc. Vocal guidance engines for playback devices
US11710487B2 (en) 2019-07-31 2023-07-25 Sonos, Inc. Locally distributed keyword detection
US11726742B2 (en) 2016-02-22 2023-08-15 Sonos, Inc. Handling of loss of pairing between networked devices
US11727919B2 (en) 2020-05-20 2023-08-15 Sonos, Inc. Memory allocation for keyword spotting engines
US11798553B2 (en) 2019-05-03 2023-10-24 Sonos, Inc. Voice assistant persistence across multiple network microphone devices
US11899519B2 (en) 2018-10-23 2024-02-13 Sonos, Inc. Multiple stage network microphone device with reduced power consumption and processing load

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9686123B2 (en) * 2015-10-19 2017-06-20 Blackfire Research Corporation System for media distribution and rendering on spatially extended wireless networks
US20170019198A1 (en) * 2006-01-28 2017-01-19 Blackfire Research Corporation System for synchronous playback of media using a hybrid bluetooth™ and wi-fi network
US9237324B2 (en) 2010-10-22 2016-01-12 Phorus, Inc. Playback synchronization
US8769110B2 (en) * 2011-05-27 2014-07-01 Sony Corporation Transferring RUI from one device to another
US9270718B2 (en) * 2011-11-25 2016-02-23 Harry E Emerson, III Internet streaming and the presentation of dynamic content
US8781828B2 (en) * 2012-04-26 2014-07-15 Lg Electronics Inc. Electronic device and method of controlling the same
KR101945813B1 (ko) * 2012-06-08 2019-02-08 엘지전자 주식회사 영상표시장치, 이동 단말기, 및 그 동작방법
US9398344B2 (en) * 2012-06-08 2016-07-19 Lg Electronics Inc. Image display apparatus, mobile terminal and method for operating the same
US9715365B2 (en) * 2012-06-27 2017-07-25 Sonos, Inc. Systems and methods for mobile music zones
US9277237B2 (en) 2012-07-30 2016-03-01 Vmware, Inc. User interface remoting through video encoding techniques
US9213556B2 (en) 2012-07-30 2015-12-15 Vmware, Inc. Application directed user interface remoting using video encoding techniques
KR102132309B1 (ko) * 2012-09-14 2020-07-09 디티에스, 인코포레이티드 재생 동기화
AU2013276983B2 (en) * 2012-12-26 2017-05-18 Samsung Electronics Co., Ltd. Terminal device and method for controlling thereof
US20140320592A1 (en) * 2013-04-30 2014-10-30 Microsoft Corporation Virtual Video Camera
US9456082B2 (en) * 2013-12-12 2016-09-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Determining probable topics of conversation between users of two communication devices
US9892118B2 (en) * 2014-03-18 2018-02-13 Sonos, Inc. Dynamic display of filter criteria
HK1195445A2 (en) * 2014-05-08 2014-11-07 黃偉明 Endpoint mixing system and reproduction method of endpoint mixed sounds
US9913033B2 (en) * 2014-05-30 2018-03-06 Apple Inc. Synchronization of independent output streams
US9613506B2 (en) 2014-05-30 2017-04-04 Apple Inc. Synchronization of independent output streams
US10186138B2 (en) 2014-09-02 2019-01-22 Apple Inc. Providing priming cues to a user of an electronic device
US10778739B2 (en) * 2014-09-19 2020-09-15 Sonos, Inc. Limited-access media
US9338391B1 (en) 2014-11-06 2016-05-10 Echostar Technologies L.L.C. Apparatus, systems and methods for synchronization of multiple headsets
US10129839B2 (en) * 2014-12-05 2018-11-13 Qualcomm Incorporated Techniques for synchronizing timing of wireless streaming transmissions to multiple sink devices
US9521496B2 (en) * 2015-02-12 2016-12-13 Harman International Industries, Inc. Media content playback system and method
US11209972B2 (en) 2015-09-02 2021-12-28 D&M Holdings, Inc. Combined tablet screen drag-and-drop interface
US11113022B2 (en) * 2015-05-12 2021-09-07 D&M Holdings, Inc. Method, system and interface for controlling a subwoofer in a networked audio system
CN105072564B (zh) * 2015-07-30 2019-04-02 Oppo广东移动通信有限公司 一种基于蓝牙连接的音频播放方法及装置
CN105072537A (zh) * 2015-07-30 2015-11-18 广东欧珀移动通信有限公司 一种基于蓝牙连接的音频播放方法及装置
CN105187900B (zh) * 2015-07-30 2018-09-04 广东欧珀移动通信有限公司 一种播放系统的无线连接控制方法及播放设备
CN104994466B (zh) * 2015-08-11 2018-05-01 广东欧珀移动通信有限公司 多播放设备的蓝牙连接控制方法、装置及音乐播放系统
JP6631087B2 (ja) * 2015-08-19 2020-01-15 ヤマハ株式会社 制御端末、オーディオシステムおよびオーディオ機器制御プログラム
CN105139877B (zh) * 2015-08-20 2017-09-01 广东欧珀移动通信有限公司 多媒体播放设备的连接方法、主设备、控制终端及系统
CN105072482B (zh) * 2015-08-25 2018-01-26 广东欧珀移动通信有限公司 一种多媒体播放设备的播放控制方法及装置
CN105161124B (zh) * 2015-09-02 2017-11-17 广东欧珀移动通信有限公司 一种多播放设备的音频播放方法及装置
US9654891B2 (en) 2015-09-15 2017-05-16 D&M Holdings, Inc. System and method for determining proximity of a controller to a media rendering device
JP6547715B2 (ja) * 2015-09-30 2019-07-24 ヤマハ株式会社 制御端末装置、オーディオシステム、およびオーディオシステム制御方法
JP6547560B2 (ja) * 2015-09-30 2019-07-24 ヤマハ株式会社 制御端末装置および機器制御プログラム
CN105282647B (zh) * 2015-11-04 2019-04-16 Oppo广东移动通信有限公司 一种mpp音箱控制方法及接入控制器
CN105578352B (zh) * 2016-02-25 2018-09-14 广东欧珀移动通信有限公司 一种音箱重启的控制方法、装置及移动终端、音箱和系统
US10666774B2 (en) * 2016-03-16 2020-05-26 International Business Machines Corporation Message processing
CN105682010B (zh) * 2016-03-22 2019-02-19 Oppo广东移动通信有限公司 音频播放系统中的蓝牙连接控制方法、装置及播放设备
US9846564B1 (en) * 2016-06-21 2017-12-19 Google Inc. Mesh network of nearby mobile devices as a combined speaker system for audio
US10938894B2 (en) * 2016-10-14 2021-03-02 Ribbon Communications Operating Company, Inc. Independent scaling of control and bearer nodes for distributed telecommunication systems
CN106454249A (zh) * 2016-10-25 2017-02-22 武汉烽火众智数字技术有限责任公司 一种模拟多路高清实时音视频传输的装置及其方法
US10979785B2 (en) * 2017-01-20 2021-04-13 Hanwha Techwin Co., Ltd. Media playback apparatus and method for synchronously reproducing video and audio on a web browser
CN107135043B (zh) * 2017-05-05 2019-09-27 中广热点云科技有限公司 公共紧急广播系统
US11076177B2 (en) 2017-09-05 2021-07-27 Sonos, Inc. Grouped zones in a system with multiple media playback protocols
US10956116B2 (en) * 2018-05-15 2021-03-23 Sonos, Inc. Media playback system with virtual line-in groups
CN108551626A (zh) * 2018-05-28 2018-09-18 嘉兴魅力电子科技有限公司 低延时音频转发器
CN110166899A (zh) * 2019-06-06 2019-08-23 惠州市璧玉音响有限公司 一种高保真5.1声道无线音响系统
CN112218197B (zh) * 2019-07-12 2023-03-21 达发科技股份有限公司 音频补偿方法及对应使用此方法的无线音频输出装置
DE102019217398A1 (de) 2019-11-11 2021-05-12 Sivantos Pte. Ltd. Verfahren zum Betrieb eines Hörgeräts sowie Hörgerät
US11503440B2 (en) 2020-04-16 2022-11-15 Avaya Management L.P. Methods and systems for providing enterprise services to wearable and mobile devices
US11743427B2 (en) 2020-04-16 2023-08-29 Avaya Management L.P. Methods and systems for enabling user mobility in an enterprise serviced by multiple distributed communication controllers
CN112312061B (zh) * 2020-10-15 2023-05-12 浙江华创视讯科技有限公司 一种视频会议方法、装置、电子设备及存储介质
US11658839B2 (en) * 2021-03-09 2023-05-23 Eaton Intelligent Power Limited Network system for smart devices
US11910289B2 (en) * 2021-04-12 2024-02-20 Harman International Industries, Incorporated Systems and methods for wireless audio
CN113411722A (zh) * 2021-06-04 2021-09-17 深圳市右转智能科技有限责任公司 一种智能背景音乐系统
CN116033364A (zh) * 2021-10-27 2023-04-28 中兴通讯股份有限公司 蓝牙音频播放方法、装置及计算机可读存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU715628B2 (en) * 1994-07-22 2000-02-03 Broadcom Corporation Hierarchical communication system providing intelligent data, program and processing migration
US5928330A (en) * 1996-09-06 1999-07-27 Motorola, Inc. System, device, and method for streaming a multimedia file
US6611537B1 (en) * 1997-05-30 2003-08-26 Centillium Communications, Inc. Synchronous network for digital media streams
WO2005109905A2 (en) * 2004-04-30 2005-11-17 Vulcan Inc. Time-based graphical user interface for television program information
US20050243857A1 (en) * 2004-04-30 2005-11-03 Padcom, Inc. Simultaneously routing data over multiple wireless networks
EP1808993A3 (en) * 2005-12-08 2007-08-01 Electronics and Telecommunications Research Institute Transmission apparatus having a plurality of network interfaces and transmission method using the same
US7653055B2 (en) * 2006-03-31 2010-01-26 Alcatel-Lucent Usa Inc. Method and apparatus for improved multicast streaming in wireless networks
US8239559B2 (en) * 2006-07-15 2012-08-07 Blackfire Research Corp. Provisioning and streaming media to wireless speakers from fixed and mobile media sources and clients
US8656415B2 (en) * 2007-10-02 2014-02-18 Conexant Systems, Inc. Method and system for removal of clicks and noise in a redirected audio stream
US20090180429A1 (en) * 2008-01-10 2009-07-16 Qwest Communications International Inc. Broadband Unlicensed Spread Spectrum

Cited By (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726742B2 (en) 2016-02-22 2023-08-15 Sonos, Inc. Handling of loss of pairing between networked devices
US10847143B2 (en) 2016-02-22 2020-11-24 Sonos, Inc. Voice control of a media playback system
US10970035B2 (en) 2016-02-22 2021-04-06 Sonos, Inc. Audio response playback
US10971139B2 (en) 2016-02-22 2021-04-06 Sonos, Inc. Voice control of a media playback system
US11863593B2 (en) 2016-02-22 2024-01-02 Sonos, Inc. Networked microphone device control
US11405430B2 (en) 2016-02-22 2022-08-02 Sonos, Inc. Networked microphone device control
KR20200034839A (ko) * 2016-02-22 2020-03-31 소노스 인코포레이티드 미디어 재생 시스템의 음성 제어
US11556306B2 (en) 2016-02-22 2023-01-17 Sonos, Inc. Voice controlled media playback system
US11513763B2 (en) 2016-02-22 2022-11-29 Sonos, Inc. Audio response playback
US11212612B2 (en) 2016-02-22 2021-12-28 Sonos, Inc. Voice control of a media playback system
US11832068B2 (en) 2016-02-22 2023-11-28 Sonos, Inc. Music service selection
US11006214B2 (en) 2016-02-22 2021-05-11 Sonos, Inc. Default playback device designation
US11514898B2 (en) 2016-02-22 2022-11-29 Sonos, Inc. Voice control of a media playback system
US11736860B2 (en) 2016-02-22 2023-08-22 Sonos, Inc. Voice control of a media playback system
US11184704B2 (en) 2016-02-22 2021-11-23 Sonos, Inc. Music service selection
US11750969B2 (en) 2016-02-22 2023-09-05 Sonos, Inc. Default playback device designation
US11545169B2 (en) 2016-06-09 2023-01-03 Sonos, Inc. Dynamic player selection for audio signal processing
US11133018B2 (en) 2016-06-09 2021-09-28 Sonos, Inc. Dynamic player selection for audio signal processing
US11184969B2 (en) 2016-07-15 2021-11-23 Sonos, Inc. Contextualization of voice inputs
US11664023B2 (en) 2016-07-15 2023-05-30 Sonos, Inc. Voice detection by multiple devices
US11531520B2 (en) 2016-08-05 2022-12-20 Sonos, Inc. Playback device supporting concurrent voice assistants
US11641559B2 (en) 2016-09-27 2023-05-02 Sonos, Inc. Audio playback settings for voice interaction
US11516610B2 (en) 2016-09-30 2022-11-29 Sonos, Inc. Orientation-based playback device microphone selection
US10873819B2 (en) 2016-09-30 2020-12-22 Sonos, Inc. Orientation-based playback device microphone selection
US11308961B2 (en) 2016-10-19 2022-04-19 Sonos, Inc. Arbitration-based voice recognition
US11727933B2 (en) 2016-10-19 2023-08-15 Sonos, Inc. Arbitration-based voice recognition
US11183181B2 (en) 2017-03-27 2021-11-23 Sonos, Inc. Systems and methods of multiple voice services
US11380322B2 (en) 2017-08-07 2022-07-05 Sonos, Inc. Wake-word detection suppression
US11900937B2 (en) 2017-08-07 2024-02-13 Sonos, Inc. Wake-word detection suppression
US11500611B2 (en) 2017-09-08 2022-11-15 Sonos, Inc. Dynamic computation of system response volume
US11080005B2 (en) 2017-09-08 2021-08-03 Sonos, Inc. Dynamic computation of system response volume
US11646045B2 (en) 2017-09-27 2023-05-09 Sonos, Inc. Robust short-time fourier transform acoustic echo cancellation during audio playback
US11302326B2 (en) 2017-09-28 2022-04-12 Sonos, Inc. Tone interference cancellation
US11769505B2 (en) 2017-09-28 2023-09-26 Sonos, Inc. Echo of tone interferance cancellation using two acoustic echo cancellers
US11538451B2 (en) 2017-09-28 2022-12-27 Sonos, Inc. Multi-channel acoustic echo cancellation
US10891932B2 (en) 2017-09-28 2021-01-12 Sonos, Inc. Multi-channel acoustic echo cancellation
US11893308B2 (en) 2017-09-29 2024-02-06 Sonos, Inc. Media playback system with concurrent voice assistance
US11288039B2 (en) 2017-09-29 2022-03-29 Sonos, Inc. Media playback system with concurrent voice assistance
US11175888B2 (en) 2017-09-29 2021-11-16 Sonos, Inc. Media playback system with concurrent voice assistance
US11451908B2 (en) 2017-12-10 2022-09-20 Sonos, Inc. Network microphone devices with automatic do not disturb actuation capabilities
US10880650B2 (en) 2017-12-10 2020-12-29 Sonos, Inc. Network microphone devices with automatic do not disturb actuation capabilities
US11676590B2 (en) 2017-12-11 2023-06-13 Sonos, Inc. Home graph
US11689858B2 (en) 2018-01-31 2023-06-27 Sonos, Inc. Device designation of playback and network microphone device arrangements
US11343614B2 (en) 2018-01-31 2022-05-24 Sonos, Inc. Device designation of playback and network microphone device arrangements
US11175880B2 (en) 2018-05-10 2021-11-16 Sonos, Inc. Systems and methods for voice-assisted media content selection
US11797263B2 (en) 2018-05-10 2023-10-24 Sonos, Inc. Systems and methods for voice-assisted media content selection
US11715489B2 (en) 2018-05-18 2023-08-01 Sonos, Inc. Linear filtering for noise-suppressed speech detection
US10847178B2 (en) 2018-05-18 2020-11-24 Sonos, Inc. Linear filtering for noise-suppressed speech detection
US11792590B2 (en) 2018-05-25 2023-10-17 Sonos, Inc. Determining and adapting to changes in microphone performance of playback devices
US10959029B2 (en) 2018-05-25 2021-03-23 Sonos, Inc. Determining and adapting to changes in microphone performance of playback devices
US11197096B2 (en) 2018-06-28 2021-12-07 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
US11696074B2 (en) 2018-06-28 2023-07-04 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
US11076035B2 (en) 2018-08-28 2021-07-27 Sonos, Inc. Do not disturb feature for audio notifications
US11563842B2 (en) 2018-08-28 2023-01-24 Sonos, Inc. Do not disturb feature for audio notifications
US11482978B2 (en) 2018-08-28 2022-10-25 Sonos, Inc. Audio notifications
US11432030B2 (en) 2018-09-14 2022-08-30 Sonos, Inc. Networked devices, systems, and methods for associating playback devices based on sound codes
US11778259B2 (en) 2018-09-14 2023-10-03 Sonos, Inc. Networked devices, systems and methods for associating playback devices based on sound codes
US11551690B2 (en) 2018-09-14 2023-01-10 Sonos, Inc. Networked devices, systems, and methods for intelligently deactivating wake-word engines
US10878811B2 (en) 2018-09-14 2020-12-29 Sonos, Inc. Networked devices, systems, and methods for intelligently deactivating wake-word engines
US11790937B2 (en) 2018-09-21 2023-10-17 Sonos, Inc. Voice detection optimization using sound metadata
US11024331B2 (en) 2018-09-21 2021-06-01 Sonos, Inc. Voice detection optimization using sound metadata
US10811015B2 (en) 2018-09-25 2020-10-20 Sonos, Inc. Voice detection optimization based on selected voice assistant service
US11727936B2 (en) 2018-09-25 2023-08-15 Sonos, Inc. Voice detection optimization based on selected voice assistant service
US11031014B2 (en) 2018-09-25 2021-06-08 Sonos, Inc. Voice detection optimization based on selected voice assistant service
US11100923B2 (en) 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US11790911B2 (en) 2018-09-28 2023-10-17 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US11501795B2 (en) 2018-09-29 2022-11-15 Sonos, Inc. Linear filtering for noise-suppressed speech detection via multiple network microphone devices
US11899519B2 (en) 2018-10-23 2024-02-13 Sonos, Inc. Multiple stage network microphone device with reduced power consumption and processing load
US11741948B2 (en) 2018-11-15 2023-08-29 Sonos Vox France Sas Dilated convolutions and gating for efficient keyword spotting
US11200889B2 (en) 2018-11-15 2021-12-14 Sonos, Inc. Dilated convolutions and gating for efficient keyword spotting
US11183183B2 (en) 2018-12-07 2021-11-23 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
US11557294B2 (en) 2018-12-07 2023-01-17 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
US11132989B2 (en) 2018-12-13 2021-09-28 Sonos, Inc. Networked microphone devices, systems, and methods of localized arbitration
US11538460B2 (en) 2018-12-13 2022-12-27 Sonos, Inc. Networked microphone devices, systems, and methods of localized arbitration
US11540047B2 (en) 2018-12-20 2022-12-27 Sonos, Inc. Optimization of network microphone devices using noise classification
US11159880B2 (en) 2018-12-20 2021-10-26 Sonos, Inc. Optimization of network microphone devices using noise classification
US11315556B2 (en) 2019-02-08 2022-04-26 Sonos, Inc. Devices, systems, and methods for distributed voice processing by transmitting sound data associated with a wake word to an appropriate device for identification
US11646023B2 (en) 2019-02-08 2023-05-09 Sonos, Inc. Devices, systems, and methods for distributed voice processing
US11798553B2 (en) 2019-05-03 2023-10-24 Sonos, Inc. Voice assistant persistence across multiple network microphone devices
US11361756B2 (en) 2019-06-12 2022-06-14 Sonos, Inc. Conditional wake word eventing based on environment
US11501773B2 (en) 2019-06-12 2022-11-15 Sonos, Inc. Network microphone device with command keyword conditioning
US11200894B2 (en) 2019-06-12 2021-12-14 Sonos, Inc. Network microphone device with command keyword eventing
US11854547B2 (en) 2019-06-12 2023-12-26 Sonos, Inc. Network microphone device with command keyword eventing
US11551669B2 (en) 2019-07-31 2023-01-10 Sonos, Inc. Locally distributed keyword detection
US11714600B2 (en) 2019-07-31 2023-08-01 Sonos, Inc. Noise classification for event detection
US11354092B2 (en) 2019-07-31 2022-06-07 Sonos, Inc. Noise classification for event detection
US11710487B2 (en) 2019-07-31 2023-07-25 Sonos, Inc. Locally distributed keyword detection
US11189286B2 (en) 2019-10-22 2021-11-30 Sonos, Inc. VAS toggle based on device orientation
US11862161B2 (en) 2019-10-22 2024-01-02 Sonos, Inc. VAS toggle based on device orientation
US11869503B2 (en) 2019-12-20 2024-01-09 Sonos, Inc. Offline voice control
US11200900B2 (en) 2019-12-20 2021-12-14 Sonos, Inc. Offline voice control
US11562740B2 (en) 2020-01-07 2023-01-24 Sonos, Inc. Voice verification for media playback
US11556307B2 (en) 2020-01-31 2023-01-17 Sonos, Inc. Local voice data processing
US11308958B2 (en) 2020-02-07 2022-04-19 Sonos, Inc. Localized wakeword verification
US11961519B2 (en) 2020-02-07 2024-04-16 Sonos, Inc. Localized wakeword verification
US11308962B2 (en) 2020-05-20 2022-04-19 Sonos, Inc. Input detection windowing
US11482224B2 (en) 2020-05-20 2022-10-25 Sonos, Inc. Command keywords with input detection windowing
US11727919B2 (en) 2020-05-20 2023-08-15 Sonos, Inc. Memory allocation for keyword spotting engines
US11694689B2 (en) 2020-05-20 2023-07-04 Sonos, Inc. Input detection windowing
US11698771B2 (en) 2020-08-25 2023-07-11 Sonos, Inc. Vocal guidance engines for playback devices
US11551700B2 (en) 2021-01-25 2023-01-10 Sonos, Inc. Systems and methods for power-efficient keyword detection

Also Published As

Publication number Publication date
US20120099594A1 (en) 2012-04-26
CN103299649A (zh) 2013-09-11
WO2012054872A3 (en) 2012-06-14
EP2630805A2 (en) 2013-08-28
WO2012054872A2 (en) 2012-04-26

Similar Documents

Publication Publication Date Title
KR20140035310A (ko) 미디어 배포 아키텍처
US10264070B2 (en) System and method for synchronizing media presentation at multiple recipients
US10405026B2 (en) Methods, devices and systems for audiovisual synchronization with multiple output devices
US9237324B2 (en) Playback synchronization
US9479584B2 (en) Synchronous media rendering of demuxed media components across multiple devices
US9699500B2 (en) Session management and control procedures for supporting multiple groups of sink devices in a peer-to-peer wireless display system
JP7391500B2 (ja) 再生同期
JP4702397B2 (ja) コンテンツサーバ、情報処理装置、ネットワーク機器、コンテンツ配信方法、情報処理方法およびコンテンツ配信システム
JP2020521410A (ja) リアルタイムオーディオおよびデータを提供するためのシステムおよび方法
US10972536B2 (en) System and method for synchronizing media presentation at multiple recipients
JP5428734B2 (ja) ネットワーク機器、情報処理装置、ストリーム切替方法、情報処理方法、プログラムおよびコンテンツ配信システム
KR102147145B1 (ko) 하이브리드 망에서의 비디오 서비스 수신 장치 및 방법
KR20160074310A (ko) 하이브리드망에서의 스트리밍 방법 및 그 장치
KR20160111834A (ko) 스마트 기기를 이용한 무선 오디오 송/수신 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application