KR20150046171A - 스트리밍 미디어에 대한 상태 정보의 전달 - Google Patents

스트리밍 미디어에 대한 상태 정보의 전달 Download PDF

Info

Publication number
KR20150046171A
KR20150046171A KR20157006892A KR20157006892A KR20150046171A KR 20150046171 A KR20150046171 A KR 20150046171A KR 20157006892 A KR20157006892 A KR 20157006892A KR 20157006892 A KR20157006892 A KR 20157006892A KR 20150046171 A KR20150046171 A KR 20150046171A
Authority
KR
South Korea
Prior art keywords
media stream
client
status information
information
media
Prior art date
Application number
KR20157006892A
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 KR20150046171A publication Critical patent/KR20150046171A/ko

Links

Images

Classifications

    • 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/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

미디어 스트림을 송신하기 위한 시스템들, 방법들 및 디바이스들이 본 명세서에 기재된다. 일부 양태들에서, 디바이스는 미디어 스트림을 요청하는 클라이언트를 위한 미디어 스트림의 부분에 대한 상태 정보를 생성하도록 구성된 상태 관리자를 포함한다. 디바이스는, 미디어 스트림을 식별하는 정보를 클라이언트에게 송신하도록 구성된 송신기를 더 포함하며, 미디어 스트림을 식별하는 정보는 생성된 상태 정보를 포함한다. 디바이스는 또한 클라이언트로부터 상태 정보를 수신하도록 구성된 수신기를 포함한다. 디바이스는, 수신된 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하도록 구성된 컨텐츠 생성기를 포함한다.

Description

스트리밍 미디어에 대한 상태 정보의 전달{CONVEYING STATE INFORMATION FOR STREAMING MEDIA}
본 발명은 스트리밍 미디어에 관한 것으로, 보다 구체적으로, 스트리밍 미디어에 대한 상태 정보를 생성하고 송신하는 것에 관한 것이다.
네트워크 액세스가 가용성에 있어서 증가하고 있다. 증가된 가용성의 동반은 이러한 네트워크들 상에서 통신할 수 있는 디바이스의 유형들 및 수의 확장이다. 더 많은 디바이스들, 그리고 이에 따른 사용자들이, 네트워크에 대한 액세스를 획득함에 따라, 가용 컨텐츠가 또한 확장한다. 인기를 얻고 있는 하나의 컨텐츠 유형은 오디오 및 비디오 컨텐츠와 같은 멀티미디어 컨텐츠이다.
미디어 컨텐츠는 미디어 프리젠테이션에 대한 오디오 및 이미지들을 포함하는 단일 파일로서 제공될 수도 있다. 일부 구현들에서, 미디어 컨텐츠는 에러 허용의 효율적인 (예를 들어, 대역폭, 전력, 프로세싱) 방식으로 프리젠테이션의 효율적인 전달을 용이하게 하기 위해 작은 세그먼트들에서 스트리밍될 수도 있다.
스트리밍 디지털 미디어 프로토콜의 일 예는 DASH (dynamic adaptive streaming over HTTP) 이다. 일부 DASH 구현들에서, 미디어 프리젠테이션 디스크립션 (MPD) 이 제공된다. MPD 는 세그먼트들을 디스플레이하기 위한 순서 및 프리젠테이션에 포함되는 세그먼트들 (예를 들어, URL) 과 같은 미디어 프리젠테이션에 관한 정보를 포함할 수도 있다. 이러한 정보는 예컨대 HTTP 서버로부터 레퍼런스된 미디어를 다운로드하고 적절한 시퀀스로 미디어를 디스플레이하기 위해 클라이언트에 의해 사용될 수도 있다.
하지만, 위에 언급된 바와 같이, 네트워크 및 디바이스 구성들의 유형들은 계속 변화하고 있다. 서버 및 클라이언트가 적절하게 동기화되지 않는 경우, 미디어 프리젠테이션은 순서가 뒤바뀌거나 부분들을 미싱하여 디스플레이되거나 반복될 수도 있다. 이들의 각각은 일부 상황들에서 네트워크 및 디바이스들에 대해 부가적인 대역폭, 프로세싱 및 전력 요구들을 도입하는 것을 정정 및/또는 회피하기 위해 부가적인 시그널링 및 프로세싱을 필요로 할 수도 있다. 따라서, 스트리밍 미디어에 대한 상태 정보를 생성하고 송신하기 위한 시스템들 및 방법들을 제공할 필요가 있다.
발명의 시스템들, 방법들, 및 디바이스들은 각각 몇몇 양태들을 가지며, 그 단일의 하나가 그 바람직한 속성들을 전적으로 담당하지 않는다. 뒤따르는 청구항들에 의해 표현된 바와 같은 이러한 발명의 범위를 제한하지 않으면서, 일부의 특징들이 지금부터 간단하게 논의될 것이다. 이 논의를 고려한 후, 그리고 특히, "상세한 설명" 이라고 명명된 섹션을 읽은 후에, 누군가는 이 발명의 특징들이 스트리밍 미디어 세그먼트들에 대한 상태 정보를 생성하고 송신하는 것을 포함하는 장점들을 어떻게 제공하는지를 이해할 것이다.
하나의 혁신적인 양태에서는, 미디어 스트림을 송신하는 디바이스가 제공된다. 디바이스는, 미디어 스트림을 요청하는 클라이언트를 위한 미디어 스트림의 부분에 대한 상태 정보를 생성하도록 구성된 상태 관리자를 포함한다. 디바이스는, 미디어 스트림을 식별하는 정보를 클라이언트에게 송신하도록 구성된 송신기를 더 포함하며, 미디어 스트림을 식별하는 정보는 생성된 상태 정보를 포함한다. 디바이스는 또한 클라이언트로부터 상태 정보를 수신하도록 구성된 수신기를 포함한다. 디바이스는, 수신된 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하도록 구성된 컨텐츠 생성기를 포함한다.
또 다른 혁신적인 양태에서는, 미디어 스트림을 송신하는 방법이 제공된다. 방법은, 미디어 스트림을 요청하는 클라이언트를 위한 미디어 스트림의 부분에 대한 상태 정보를 생성하는 단계를 포함한다. 방법은, 미디어 스트림을 식별하는 정보를 클라이언트에게 송신하는 단계를 더 포함하고, 미디어 스트림을 식별하는 정보는 생성된 상태 정보를 포함한다. 방법은 또한 클라이언트로부터 상태 정보를 수신하는 단계를 포함한다. 방법은, 수신된 상태 정보 및 미디어 스트림의 부분을 식별하는 수신된 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하는 단계를 포함한다.
추가의 혁신적인 양태에서는, 미디어 스트림을 송신하는 디바이스가 제공된다. 디바이스는, 미디어 스트림을 요청하는 클라이언트를 위한 미디어 스트림의 부분에 대한 상태 정보를 생성하는 수단을 포함한다. 디바이스는 또한 미디어 스트림을 식별하는 정보를 클라이언트에게 송신하는 수단을 포함하고, 미디어 스트림을 식별하는 정보는 생성된 상태 정보를 포함한다. 디바이스는 클라이언트로부터 상태 정보를 수신하는 수단을 더 포함한다. 디바이스는 또한 수신된 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하는 수단을 포함한다.
미디어 스트림을 송신하는 다른 디바이스가 추가의 혁신적인 양태에서 기재된다. 디바이스는 프로세서를 포함한다. 프로세서는 미디어 스트림을 요청하는 클라이언트를 위한 미디어 스트림의 부분에 대한 상태 정보를 생성하도록 구성된다. 프로세서는 미디어 스트림을 식별하는 정보를 클라이언트에게 송신하도록 구성되며, 미디어 스트림을 식별하는 정보는 생성된 상태 정보를 포함한다. 프로세서는 클라이언트로부터 상태 정보를 수신하도록 구성된다. 프로세서는 수신된 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하도록 구성된다.
또 다른 혁신적인 양태에서는, 장치의 프로세서에 의해 실행가능한 명령들을 포함하는 컴퓨터 판독가능 저장 매체가 제공된다. 명령들은 장치로 하여금 미디어 스트림을 요청하는 클라이언트를 위한 미디어 스트림의 부분에 대한 상태 정보를 생성하게 한다. 명령들은 또한 장치로 하여금 미디어 스트림을 식별하는 정보를 클라이언트에게 송신하게 하며, 미디어 스트림을 식별하는 정보는 생성된 상태 정보를 포함한다. 명령들은 또한 장치로 하여금 클라이언트로부터 상태 정보를 수신하게 한다. 명령들은 또한 수신된 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하게 한다.
위의 혁신적인 양태들의 하나 이상에서, 상태 정보는 클라이언트에게 스트리밍된 미디어, 클라이언트에게 스트리밍될 미디어, 클라이언트의 사용자에 대한 인구통계학적 정보, 클라이언트의 기술적 능력들, 또는 클라이언트에 대한 허가 중 하나 이상을 표시할 수도 있다. 상태 정보는 미디어 스트림의 부분 및 그 미디어 스트림을 요청하는 클라이언트 중 하나 이상에 기초하여 생성될 수도 있다. 상태 정보는 의사 랜덤값 및 고유 의사 랜덤값 중 적어도 하나를 포함할 수도 있다. 일부 구현들에서, 상태 정보는, 예컨대 메모리에 저장될 수도 있다. 상태 정보는 미디어 스트림의 부분에 대한 질의 스트링에 포함될 수도 있다.
위의 혁신적인 양태들의 하나 이상에서, 출력 미디어 스트림을 생성하는 것은 미디어 스트림의 식별된 부분을 획득하는 것을 포함할 수도 있다. 생성은 수신된 상태 정보에 적어도 부분적으로 기초하여, 광고와 같은 적어도 하나의 부가 컨텐츠 엘리먼트를 식별하는 것을 포함할 수도 있다. 생성은 식별된 부분의 삽입 부분을 식별하는 것을 더 포함할 수도 있다. 생성은 또한 획득된 부분의 식별된 삽입 지점에서 식별된 부가 컨텐츠를 포함하는 출력 미디어 스트림을 생성하는 것을 포함할 수도 있다.
위의 혁신적인 양태들의 하나 이상에서, 미디어 스트림을 식별하는 정보의 송신은 DASH (dynamic adaptive streaming over HTTP) 미디어 프리젠테이션 디스크립션 파일의 송신을 포함할 수도 있다.
혁신적인 양태들의 하나 이상에서, 출력 미디어 스트림은 예컨대 송신기를 통해 클라이언트에게 송신된다.
위의 혁신적인 양태들의 하나 이상에서, 미디어 스트림의 부분에 대한 식별자가 클라이언트에게 송신될 수도 있다. 식별자는 액세스 요청의 부분으로서 클라이언트로부터 수신될 수도 있다. 출력 미디어 스트림은 수신된 식별자에 기초하여 생성될 수도 있다.
발명과 일치하는 이러한 그리고 다른 구현들은 다음의 도면들을 참조하여 이하에서 더욱 설명된다.
도 1 은 예시적인 비디오 인코딩 및 디코딩 시스템의 기능적 블록 다이어그램을 도시한다.
도 2 는 예시적인 DASH (dynamic adaptive streaming over HTTP) 시스템의 기능적 블록 다이어그램을 나타낸다.
도 3 은 상태 관리된 스트리밍 데이터의 일 예에 대한 메시지 플로우 다이어그램을 나타낸다.
도 4 는 미디어 스트림을 송신하는 방법의 프로세스 플로우 다이어그램을 나타낸다.
도 5 는 미디어 스트림을 송신하는 디바이스의 기능적 블록 다이어그램을 나타낸다.
도면들에서, 가능한 정도까지는, 동일하거나 유사한 기능들을 갖는 엘리먼트들이 동일한 명칭들을 가진다.
미디어 프리젠테이션의 부분들의 세그먼트들의 리프리젠테이션들은 URL들과 같은 세그먼트 식별자들을 포함할 수도 있다. URL 은 클라이언트 및/또는 서버에 관한 상태 정보를 포함하기 위해 사용될 수도 있다. 예를 들어, URL 은 상태 정보를 포함하는 하나 이상의 질의 스트링들로 증가될 수도 있다. 본 명세서에 기재된 프로세스들에 의해, 서버들은 후속하여 이러한 상태 표시자들을 다시 서버로 귀환시킬 수도 있는 상태를 클라이언트에게 효과적으로 전달할 수 있다. 서버는 결국, 상태를 사용하여, 예를 들어 세그먼트들에 대한 순서를 결정하고, 세그먼트들 내에 컨텐츠를 포함시키며 (예를 들어, 동적 컨텐츠 생성), 및/또는 세그먼트들 사이 및/또는 내에 컨텐츠 (예를 들어, 광고들) 를 삽입시키는 것에 의해, 미디어 프리젠테이션을 커스터마이즈할 수도 있다. 서버는 상태 정보를 사용하여, 예를 들어 상태에 기초한 과금 (accounting) 및 액세스 기능들을 제공하는 것에 의해 미디어 프리젠테이션을 제어할 수도 있다.
상태 정보가 세그먼트 식별자에 포함되기 때문에, 상태를 유지하는 상세들은 캡슐화된다. 쿠키들, 파일들, 및 다른 지속성 메커니즘들이 상태 정보의 표시를 달성하는데 필요하지 않을 수도 있다. 이것은 클라이언트 및 서버를 위해 프로세싱 속도를 개선할 뿐만 아니라 플랫폼들 및 디바이스들에 걸쳐 상태를 유지하기에 유연한 방식을 제공할 수도 있다.
스트리밍 미디어 프로토콜의 맥락에서 상태 정보를 생성하고 송신하기 위한 시스템들 및 방법들이 어떤 것인지 하기에서 더 상세하게 설명될 것이다. DASH 스트리밍 미디어 프로토콜 그리고 때때로 그 스트리밍될 미디어로서 레퍼런싱 비디오가 참조될 것이다. 하지만, 당업자는 기재된 양태들의 하나 이상의 양태들이 HTTP 라이브 스트리밍과 같은 다른 스트리밍 미디어 프로토콜들에 그리고 오디오, 이미지, 및/또는 텍스트 기반 미디어와 같은 다른 미디어 유형들을 위해 포함될 수도 있다는 것을 인식할 수도 있다.
다음의 설명에서는, 예들의 철저한 이해를 제공하기 위하여 특정 세부사항들이 주어진다. 그러나, 예들은 이 특정 세부사항들 없이 실시될 수도 있다는 것이 당업자에 의해 이해될 것이다. 예를 들어, 전기적 컴포넌트들/디바이스들은 불필요하게 상세하게 예들을 이해하기 어렵게 하지 않도록 하기 위하여 블록 다이어그램들로 나타낼 수도 있다. 다른 사례들에서는, 예들을 더욱 설명하기 위하여 그러한 컴포넌트들, 다른 구조들 및 프로세스들이 상세하게 나타날 수도 있다.
또한, 예들은 플로우차트, 플로우 다이어그램, 유한 상태 다이어그램, 구조 다이어그램, 또는 블록 다이그램으로서 도시되어 있는 프로세스로서 설명될 수도 있다는 것에 주목해야 한다. 플로우차트는 동작들을 순차적인 프로세스로서 설명할 수도 있지만, 동작들 중의 다수는 병렬로 또는 동시에 수행될 수 있고, 프로세스는 반복될 수 있다. 추가적으로, 동작들의 순서는 재배열될 수도 있다. 프로세스는 그 동작들이 완료될 때에 종결된다. 프로세스는 방법, 함수, 프로시저 (procedure), 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 소프트웨어 함수에 대응할 때, 그 종결은 호출 함수 또는 주요 함수로의 함수의 복귀에 대응한다.
당업자들은 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중의 임의의 것을 이용하여 표현될 수도 있다는 것을 이해할 것이다. 예를 들어, 위의 설명의 전반에 걸쳐 참조될 수도 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학 필드들 또는 입자들, 또는 그 임의의 조합에 의해 표현될 수도 있다.
첨부된 청구항들의 범위 내에서의 실시형태들의 다양한 양태들이 이하에 설명되어 있다. 본원에서 설명된 양태들은 폭넓게 다양한 형태들로 구체화될 수도 있으며 본원에서 설명된 임의의 특정 구조 및/또는 기능이 예시적인 것에 불과하다는 점이 명백해야 한다. 본 개시물에 기초하여, 당업자는 본원에서 설명된 양태가 임의의 다른 양태들에 독립적으로 구현될 수도 있으며 이 양태들 중의 2 이상이 다양한 방법들로 조합될 수도 있다는 것을 인식해야 한다. 예를 들어, 본원에서 기재된 임의의 수의 양태들을 이용하여 장치가 구현될 수도 있고 및/또는 방법이 실시될 수도 있다. 추가적으로, 본원에서 기재된 양태들의 하나 이상에 추가하여 또는 이 양태들의 하나 이상 이외에 다른 구조 및/또는 기능성을 이용하여, 그러한 장치가 구현될 수도 있고 및/또는 그러한 방법이 실시될 수도 있다.
도 1 은 예시적인 비디오 인코딩 및 디코딩 시스템의 기능적인 블록 다이어그램을 예시한다. 도 1 에 나타낸 바와 같이, 시스템 (10) 은 통신 채널 (15) 을 통해 인코딩된 비디오를 목적지 디바이스 (16) 로 송신하도록 구성될 수도 있는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 이동 디바이스들 또는 일반적으로 고정식 디바이스들을 포함하는 광범위한 디바이스들 중의 임의의 것을 포함할 수도 있다. 일부의 경우들에 있어서, 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 무선 핸드셋들, 소위 셀룰러 또는 위성 라디오 전화 (radiotelephone) 들, 개인용 디지털 보조기 (personal digital assistant; PDA) 들, 이동 미디어 플레이어들, 또는 무선일 수도 있거나 무선이 아닐 수도 있는 통신 채널 (15) 을 통해 비디오 정보를 통신할 수 있는 임의의 디바이스들과 같은 무선 통신 디바이스들을 포함한다. 하지만, 일 양태에서, 상태 정보의 생성 및/또는 송신과 관련되는 이 개시물의 기법들은 많은 상이한 시스템들 및 세팅들에서 이용될 수도 있다. 도 1 은 그러한 시스템의 일 예에 불과하다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (20), 비디오 인코더 (22), 변조기/복조기 (모뎀)(23) 및 송신기 (24) 를 포함할 수도 있다. 목적지 디바이스 (16) 는 수신기 (26), 모뎀 (27), 비디오 디코더 (28), 및 디스플레이 디바이스 (30) 를 포함할 수도 있다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (22) 는 레퍼런스 이미지의 프레임들의 시퀀스를 인코딩하도록 구성될 수도 있다. 비디오 인코더 (22) 는 3D 비디오 데이터를 생성하기 위하여 레퍼런스 시퀀스의 비디오 프레임들의 각각에 적용될 수 있는 파라미터들의 세트를 포함하는 3D 변환 정보와 같은 이미지들과 연관된 부가 정보를 인코딩하도록 구성될 수도 있다. 모뎀 (23) 및 송신기 (24) 는 무선 신호들을 변조하고 목적지 디바이스 (16) 로 송신할 수도 있다. 이러한 방식으로, 소스 디바이스 (12) 는 인코딩된 레퍼런스 시퀀스를 임의의 부가적인 연관된 정보와 함께 목적지 디바이스 (16) 로 통신한다.
수신기 (26) 및 모뎀 (27) 은 소스 디바이스 (12) 로부터 무선 신호들을 수신하고 수신된 무선 신호들을 복조한다. 따라서, 비디오 디코더 (28) 는 레퍼런스 이미지의 프레임들의 시퀀스를 수신할 수도 있다. 비디오 디코더 (28) 는 또한, 레퍼런스 시퀀스를 디코딩하는데 사용될 수 있는 부가 정보를 수신할 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (16) 는, 소스 디바이스 (12) 가 목적지 디바이스 (16) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들에 불과하다. 일부 경우들에 있어서, 디바이스들 (12, 16) 은, 디바이스들 (12, 16) 의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 이에 따라, 시스템 (10) 은 예를 들어, 비디오 스트리밍, 미디어 플레이백 (playback), 미디어 브로드캐스팅, 또는 영상 전화를 위하여, 비디오 디바이스들 (12, 16) 사이에서 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (20) 는 비디오 캡처 디바이스, 예컨대 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 또는 비디오 컨텐츠 제공자로부터의 비디오 피드 (video feed) 를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스 (20) 는 소스 비디오로서, 또는 라이브 비디오 (live video), 아카이빙된 비디오 (archived video), 및 컴퓨터-생성된 비디오의 조합으로서, 컴퓨터 그래픽스-기반 (computer graphics-based) 데이터를 생성할 수도 있다. 일부의 경우들에 있어서, 비디오 소스 (20) 가 비디오 카메라인 경우, 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 각각의 경우에 있어서, 캡처된, 프리-캡처된 (pre-captured), 또는 컴퓨터-생성된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 인코딩 프로세스의 부분으로서, 비디오 인코더 (22) 는 상태 정보를 생성 및/또는 송신하는 것과 같은, 본 명세서에 기재된 방법들 중 하나 이상을 구현하도록 구성될 수도 있다. 인코딩된 비디오 정보는 그 후 예를 들어, 코드 분할 다중 액세스 (CDMA) 또는 또 다른 통신 표준과 같은 통신 표준에 따라 모뎀 (23) 에 의해 변조될 수도 있고, 송신기 (24) 를 통해 목적지 디바이스 (16) 로 송신될 수도 있다. 모뎀 (23) 은 다양한 혼합기들, 필터들, 증폭기들 또는 신호 변조를 위해 설계된 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함하는, 데이터를 송신하기 위해 설계된 회로들을 포함할 수도 있다.
목적지 디바이스 (16) 의 수신기 (26) 는 채널 (15) 을 통해 정보를 수신하도록 구성될 수도 있다. 모뎀 (27) 은 정보를 복조하도록 구성될 수도 있다. 또, 비디오 인코딩 프로세스는 상태 정보의 생성 및/또는 송신과 같은 본 명세서에 기재된 기법들 중 하나 이상을 구현할 수도 있다. 채널 (15) 을 통해 통신된 정보는 본 개시물과 일치하는 비디오 디코더 (28) 에 의해 사용될 수도 있는, 비디오 인코더 (22) 에 의해 정의된 정보를 포함할 수도 있다. 디스플레이 디바이스 (30) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (cathode ray tube), 액정 디스플레이 (liquid crystal display; LCD), 플라즈마 디스플레이 (plasma display), 유기 발광 다이오드 (organic light emitting diode; OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (15) 은 라디오 주파수 (radio frequency; RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 및 유선 매체들의 임의의 조합을 포함할 수도 있다. 따라서, 모뎀 (23) 및 송신기 (24) 는 많은 가능한 무선 프로토콜들, 유선 프로토콜들 또는 유선 및 무선 프로토콜들을 지원할 수도 있다. 통신 채널 (15) 은 패킷-기반 네트워크 예컨대, 로컬 영역 네트워크 (LAN), 광역 네트워크 (WAN), 또는 글로벌 네트워크, 예컨대 하나 이상의 네트워크들의 상호접속을 포함하는 인터넷의 의 부분을 형성할 수도 있다. 통신 채널 (15) 은 일반적으로, 소스 디바이스 (12) 로부터 목적지 디바이스 (16) 로 비디오 데이터를 송신하기 위한, 임의의 적당한 통신 매체, 또는 상이한 통신 매체들의 집합을 나타낸다. 통신 채널 (15) 은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (16) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다. 본 개시물의 기법들은 하나의 디바이스로부터 또 다른 것으로의 인코딩된 데이터의 통신을 반드시 요구하지 않으며, 상반되는 디코딩 없이 인코딩 시나리오들에 적용할 수도 있다. 또한, 본 개시물의 양태들은 상반되는 인코딩 없이 디코딩 시나리오들에 적용할 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는, MPEG-4, 파트 10 및 진보된 비디오 코딩 (Advanced Video Coding; AVC) 으로서 대안적으로 설명된 ITU-T H.264 표준과 같은 비디오 압축 표준에 따라 동작할 수도 있다. 그러나, 이 개시물의 기법들은 임의의 특별한 코딩 표준 또는 그 확장들에 제한되지 않는다. 도 1 에 나타내지 않았지만, 일부의 양태들에서, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있고, 공통의 데이터 스트림 또는 별도의 데이터 스트림들에서 오디오 및 비디오 양자의 인코딩을 취급하기 위해 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, MUX-DEMUX 유닛들은 멀티플렉서 프로토콜 (예를 들어, ITU H.223), 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들을 준수할 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 각각, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP) 들, 주문형 집적 회로 (ASIC) 들, 필드 프로그램 가능 게이트 어레이 (FPGA) 들, 이산 로직 회로부, 마이크로프로세서 또는 다른 플랫폼 상에서 실행하는 소프트웨어, 하드웨어, 펌웨어 또는 그 임의의 조합들로서 구현될 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (28) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있고, 그 어느 하나는 조합된 인코더/디코더 (CODEC) 의 부분으로서 각각의 이동 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등에 통합될 수도 있다.
도 1 에 나타낸 시스템은 비디오 시스템을 참조하지만, 유사한 시스템이 이미지 데이터 및/또는 오디오 데이터와 같은 미디어의 다른 형태들을 인코딩, 송신 및 디코딩을 위해 구성될 수도 있다는 것을 알게 된다.
도 2 는 예시적인 DASH (dynamic adaptive streaming over HTTP) 시스템의 기능적 블록 다이어그램이다. 시스템은 도 1 을 참조하여 위에 기재된 비디오 인코딩 또는 디코딩 양태들의 하나 이상을 통합할 수도 있다. 도 2 는 DASH 컨텐츠 준비 서버 (202) 를 나타낸다. DASH 컨텐츠 준비 서버 (202) 는 미디어 컨텐츠를 생성한다. 미디어 컨텐츠를 생성하는 것은 미디어 컨텐츠를 캡쳐하는 것, 저장된 미디어 컨텐츠를 식별하는 것, 미디어 컨텐츠를 세그먼트화하는 것 등을 포함할 수도 있다. 미디어 컨텐츠를 세그먼트화하는 것은 미디어 컨텐츠를 복수의 세그먼트들로 분할하는 것을 포함할 수도 있다. 세그먼트화는 세그먼트들의 사이즈 (예를 들어, 메모리 사이즈), 세그먼트들의 지속 기간, 타겟 클라이언트 디바이스, 송신 디바이스 또는 유사 인자들에 기초할 수도 있다.
미디어 프리젠테이션 디스크립션 (204) 은 컨텐츠 준비의 부분으로서 생성될 수도 있다. 미디어 프리젠테이션 디스크립션 (204) 은 미디어 컨텐츠의 전부 또는 부분을 식별하는 정보를 포함한다. 일부 구현들에서, 미디어 프리젠테이션 디스크립션 (204) 은 XML 파일과 같은 파일이다. 이 파일은 DASH 클라이언트 (208) 에 송신될 수도 있다. DASH 클라이언트 (208) 는 미디어 컨텐츠를 획득하기 위해 미디어 프리젠테이션 디스크립션 (204) 에 포함된 정보를 사용할 수도 있다. 도 2 에 나타낸 바와 같이, DASH 클라이언트 (208) 는 미디어 프리젠테이션 디스크립션 (204) 에서 식별된 DASH 세그먼트들 (206) 을 획득할 수도 있다. DASH 세그먼트들은 DASH 컨텐츠 준비 서버 (202) 에 의해 준비된 DASH 컨텐츠의 부분들이다.
일부 구현들에서, 미디어 프리젠테이션 디스크립션 (204) 은 DASH 세그먼트에 대한 명시적 네트워크 어드레스를 포함할 수도 있다. 하지만, 일부 구현들에서, 미디어 프리젠테이션 디스크립션 (204) 은 미디어 스트림에 관한 일반적인 정보를 포함할 수도 있다. 그러한 구현들에서, DASH 클라이언트 (204) 는, 예를 들어 컨텐츠 레졸루션 (resolution) 서비스 (210) 와의 통신을 통해 미디어 스트림에 대한 네트워크 위치를 획득할 필요가 있을 수도 있다. 컨텐츠 레졸루션 서비스 (210) 는 미디어 프리젠테이션 디스크립션 (204) 에 포함된 정보를 식별하는 미디어 컨텐츠를 포함하는 DASH 클라이언트 (208) 로부터의 신호를 수신할 수도 있다. 컨텐츠 레졸루션 서비스 (210) 는 DASH 클라이언트가 미디어 컨텐츠를 획득하기 위해 사용할 수도 있는 정보를 포함하는 응답을 송신하도록 구성될 수도 있다. 예를 들어, 응답은 미디어 컨텐츠에 대한 정규화된 (fully qualified) URL 을 포함할 수도 있다. 다른 구현들에서, 응답은 미디어 컨텐츠의 위치를 식별할 수도 있는 멀티미디어 브로드캐스트 멀티캐스트 서비스들을 포함할 수도 있다. 다른 식별자들은 세션 개시 프로토콜 식별자를 포함할 수도 있다.
도 2 에 나타낸 바와 같이, 미디어 프리젠테이션 디스크립션 (204) 및 DASH 세그먼트들은 서버 (212) 에 의해 제공된다. 서버 (212) 는 HTTP 서버일수도 있고 DASH 클라이언트 (208) 및 DASH 컨텐츠 준비 (202) 와의 네트워크 통신을 위해 구현될 수도 있다. 일부 구현들에서, 컨텐츠 레졸루션 서비스 (210) 는 또한 서버 (212) 에 의해 호스트될 수도 있다.
DASH 세그먼트들 (206) 은 비디오, 이미지, 및/또는 오디오 파일들과 같은 정적 멀티미디어 엘리먼트들일 수도 있다. 일부 구현들에서, DASH 세그먼트들 (206) 은 동적으로 생성될 수도 있다. 예를 들어, 광고 DASH 세그먼트가 DASH 클라이언트 (208) 에 의해 요청되는 경우, 서버 (212) 는 비디오 광고에서의 그 명칭을 포함하는 것과 같은 또는 오디오 광고의 부분으로서 요청 DASH 클라이언트 (208) 에 타겟팅된 정보를 포함하는 광고를 생성할 수도 있다.
유사하게, 미디어 프리젠테이션 디스크립션 (204) 은 XML 파일과 같은 정적 파일일 수도 있다. 일부 구현들에서, 미디어 프리젠테이션 디스크립션 (204) 은 동적으로 생성될 수도 있다. 예를 들어, 서버 (212) 는 미디어 프리젠테이션 디스크립션 (204) 에 포함된 하나 이상의 세그먼트들에 대한 식별자들에 상태 정보를 포함시키도록 구성될 수도 있다. 따라서, DASH 클라이언트 (208) 가 그렇게 식별된 세그먼트에 대한 요청을 송신할 때, 서버 (212) 는 위에서 논의된 바와 같이, 부가 상태 정보를 해석하여, 특정 DASH 클라이언트 (208) 에 대한 동적 DASH 세그먼트 (206) 를 생성할 수도 있다.
세그먼트 식별자들이 URL들인 구현들에서, 상태 정보는 URL 에서의 질의 파라미터들로서 미디어 프리젠테이션 디스크립션 (204) 에 포함될 수도 있다. 일 예의 세그먼트 식별자들이 하기에 제공된다:
Figure pct00001
나타낸 예에서, 서버 (212) 는 "http://www.my-dash-server.sss" 에 의해 식별된다. URL "/segment-service/segment-identifier" 의 다음 부분은 세그먼트를 호스트하는 서버 (212) 의 엔드포인트를 표시한다. 본 예에서, 세그먼트 서비스는 제공된 세그먼트 식별자에 기초하여 세그먼트들을 동적으로 생성하는 어플리케이션에 대한 엔드포인트일 수도 있다. URL "?state=s29dj2va" 의 최종 부분은 세그먼트를 요청하는 클라이언트 및/또는 세그먼트를 식별하기 위해 서버 (212) 에 의해 사용될 수도 있는 질의 스트링이다. 예를 들어, 미디어 프리젠테이션 디스크립션 (204) 이 DASH 클라이언트 (208) 에 대해 생성될 때, 서버 (212) 는 이러한 DASH 클라이언트 (208) 에 대한 상태값을 저장할 수도 있다. 이러한 정보를 포함하는 세그먼트에 대한 요청이 서버 (212) 에 의해 수신될 때, 서버 (212) 는 특정 DASH 클라이언트 (208) 에 대한 요청 및 생성된 미디어 프리젠테이션 디스크립션 (204) 을 연관시킬 수도 있다.
일부 구현들에서, DASH 클라이언트 (208) 에 대한 상태 정보는 서버 (212) 에 의해 저장되지 않을 수도 있다. 그러한 구현들에서, 상태 정보는 모든 DASH 클라이언트들 (208) 에 대한 세그먼트들의 적절한 시퀀싱을 보장하기 위해 사용될 수도 있다.
위의 예는 상태 정보를 포함하는 단일 질의 파라미터를 포함하지만, 다중 파라미터들이 특정될 수도 있음을 알게 될 것이다 (예를 들어, "?state= s29dj2va&param1=20394").
기재된 바와 같이 상태 정보는 세그먼트들에 대한 타이밍 정보 (예를 들어, 디스플레이 순서, 다운로드 순서) 를 식별하는데 사용될 수 있고, DASH 클라이언트 (208), 제시된 이전 세그먼트들, 제시할 후속 세그먼트들 등의 식별에 사용될 수도 있다. 미디어 프리젠테이션 디스크립션 (204) 에 이러한 정보를 포함시키는 것에 의해, 서버 (212) 는, 서버 (212) 가 상태 파라미터들을 디코딩하는 메커니즘을 포함하는 제공된 상태 정보를 반드시 저장할 필요는 없다. 따라서, 이것은 서버 (212) 가 보다 효율적인 방식으로 더 많은 DASH 클라이언트들 (208) 을 서브하는 것을 허용한다.
도 3 은 상태 관리된 스트리밍 미디어의 일 예에 대한 메시지 플로우 다이어그램이다. 메시지 플로우 다이어그램은 비디오 시스템의 다양한 엔티티들 사이에서 교환되는 메시지들을 포함한다. 나타낸 엔티티들은 대표적이다. 일부 구현들에서, 부가적인 기능성 및/또는 허가, 암호화, 압축 등과 같은 프로세싱을 제공하기 위해 하나 이상의 매개물들이 사용될 수도 있다. 또한, 별도의 엔티티들로서 수개의 엘리먼트들이 나타나 있지만, 하나 이상이 단일 기능 유닛으로 결합될 수도 있다.
위에서 논의된 바와 같이, DASH 클라이언트 (208) 는 서버 (212) 와 통신한다. 도 3 에 나타낸 바와 같이, 서버 (212) 는 MPD 제공자 (302), 세그먼트 제공자 (304), 및 상태 관리자 (306) 를 포함한다. MPD 제공자 (302) 는 MPD들을 제공하도록 구성될 수도 있다. 논의된 바와 같이, 이들은 미리 정의된 파일들일 수도 있고 또는 요청시 동적으로 생성될 수도 있다. 유사하게, 세그먼트 제공자 (304) 는 미디어 세그먼트들을 제공하도록 구성될 수도 있다. 이들도 또한 미리 정의된 미디어 세그먼트들일 수도 있고 또는 요청시 동적으로 생성될 수도 있다. 상태 관리자 (306) 는 본 명세서에 기재된 바와 같이 세그먼트 식별자들로 포함된 상태 정보를 생성하고 디코딩하도록 구성될 수도 있다.
DASH 클라인트 (208) 는 MPD 에 대한 요청 (350) 을 생성하고 이를 MPD 제공자 (302) 에게 송신할 수도 있다. MPD 제공자 (302) 는 요청된 미디어 프리젠테이션에 대한 세그먼트들을 식별하기 위해 하나 이상의 신호들 (355) 를 송신할 수도 있다. MPD 제공자 (302) 는 또한 요청된 MPD 에서의 포함을 위한 상태 정보를 식별하기 위해 상태 관리자 (306) 에게 하나 이상의 신호들 (360) 을 생성할 수도 있다. 상태 정보는 MPD 전체에 대해 및/또는 MPD 에 포함된 각각의 세그먼트에 대해 획득될 수도 있다. MPD 에 포함된 모든 세그먼트들이 상태 정보를 포함하는 것은 아니라는 것을 또한 이해해야 한다. 일부 구현들에서, 세그먼트 제공자 (304) 는 각각의 식별된 세그먼트에 대한 상태 정보를 획득하도록 구성될 수도 있다.
요청 (350) 은 DASH 클라이언트 (208) 를 식별하는 정보를 포함할 수도 있다. 예를 들어, 요청 (350) 은 DASH 클라이언트 (208) 에 대한 사용자 식별자를 포함할 수도 있다. 요청 및/또는 식별된 세그먼트들에 제공된 정보에 기초하여, 상태 관리자 (306) 는 MPD 에서의 포함을 위한 하나 이상의 상태값들을 생성하게 된다. 예를 들어, 광고 세그먼트가 식별되는 경우, 상태 관리자 (306) 는 그 명칭과 같은 식별된 사용자에 대한 세그먼트에서의 포함을 위한 값을 생성하도록 구성될 수도 있다. 일부 구현들에서, 상태 관리자 (306) 는 랜덤 또는 의사 랜덤 상태 식별자를 생성할 수도 있다. 상태 식별자는 전역적으로 고유하거나, 클라이언트에 대해 고유하거나, 세그먼트에 대해 고유하거나, 또는 그렇지 않으면 클라이언트들 및/또는 미디어 프리젠테이션들의 다른 조합들과 연관된 다른 상태 식별자들과 구별가능할 수도 있다. 일부 구현들에서, 이러한 식별자는 후속 상태 결정들에 대한 요청 클라이언트에 관한 다른 정보와 함께 저장될 수도 있다.
일부 구현들에서, 상태 관리자 (306) 는 세그먼트들을 식별하고 이러한 정보를 상태 신호의 부분으로서 포함하도록 구성될 수도 있다. 예를 들어, 상태 관리자 (306) 는 식별된 세그먼트 및 클라이언트에 대한 상태에 기초하여 상태값을 생성하도록 구성될 수도 있다. 상태값은 예를 들어 정보 엘리먼트들을 단일 상태 식별자로 결합하는 해싱 함수 (hashing function) 에 의해 생성될 수도 있다.
MPD 제공자 (302) 는 MPD 를 포함하는 응답 (365) 을 송신한다. DASH 클라이언트 (208) 는 제시를 위한 세그먼트들을 식별하기 위해 MPD 를 파싱할 수도 있다. DASH 클라이언트 (208) 는 세그먼트에 대한 세그먼트 식별자를 사용하여 세그먼트 제공자 (304) 로부터 세그먼트를 요청 (370) 할 수도 있다. 위에서 논의된 바와 같이, 세그먼트 식별자는 세그먼트의 컨텐츠를 생성하는데 사용될 수도 있는 상태 정보를 포함할 수도 있다. 세그먼트 제공자 (304) 는, 예컨대 URL 로부터 파라미터들을 파싱하는 것에 의해, 요청 (370) 에 있어서 상태 정보를 식별할 수도 있다.
상태 정보가 세그먼트 식별을 포함하는 구현들에서, 요청 (370) 이 상태 관리자 (306) 에게 송신될 수도 있다. 상태 관리자 (306) 는 그 후 상태 및 세그먼트 값들을 결정하기 위해 상태 정보를 디코딩할 수도 있다. 예를 들어, 상태 관리자 (306) 는 (예를 들어, 신호들 (360) 을 통해) 이전에 획득된 상태 및 세그먼트 값들을 획득하기 위해 역 해시 함수를 통해 상태 정보를 프로세싱하도록 구성될 수도 있다.
도 3 에 나타낸 바와 같이, 세그먼트 제공자 (304) 는 상태 관리자 (306) 에게 요청 (375) 을 송신하는 것에 의해 상태 정보를 결정한다. 일부 구현들에서, 세그먼트 제공자 (304) 는 상태 관리자 (306) 를 컨설팅하지 않으면서 상태 정보를 결정하도록 구성될 수도 있다. 예를 들어, 상태 정보가 DASH 클라이언트 (208) 의 사용자의 명칭을 포함하는 경우, 이것은 직접 판독되고 요청된 세그먼트에 삽입될 수도 있다.
상태 정보가 디스플레이에 대한 순서를 식별하는 구현들에서, 세그먼트 제공자 (304) 는, 예컨대 상태 관리자 (306) 를 통해, 요청된 세그먼트가 프리젠테이션에서의 다음 세그먼트인지를 검증할 수도 있다. 다른 제어 양태들 (예를 들어, 컨텐츠 유형 제한들, 컨텐츠 양 제한들, 컨텐츠 품질 제한들, 대역폭 활용 등) 은 본 명세서에 기재된 바와 같이 상태 정보를 사용하여 구현될 수도 있다.
세그먼트 제공자 (304) 는 그 후 요청된 세그먼트 (380) 를 포함하는 응답 (380) 을 DASH 클라이언트 (208) 에게 송신할 수도 있다. DASH 클라이언트 (208) 는 그 후 수신된 세그먼트를 디스플레이할 수도 있다.
도 4 는 미디어 스트림을 송신하는 방법의 프로세스 플로우 다이어그램을 나타낸다. 방법은 본 명세서에 기재된 디바이스들의 하나 이상에서 구현될 수도 있다. 노드 (402) 에서, 미디어 스트림의 부분에 대한 상태 정보는 클라이언트를 위해 생성된다. 노드 (404) 에서, 미디어 스트림을 식별하는 정보가 클라이언트에게 송신된다. 미디어 스트림을 식별하는 정보는 생성된 상태 정보를 포함한다. 노드 (406) 에서, 상태 정보가 클라이언트로부터 수신된다. 노드 (408) 에서, 출력 미디어 스트림은 수신된 상태에 적어도 부분적으로 기초하여 생성된다.
일 예로서, 상태 정보는 클라이언트에게 스트리밍된 미디어를 표시할 수도 있다. 상태 정보는 캐릭터들의 랜덤 또는 의사 랜덤 시퀀스로서 송신될 수도 있다. 캐릭터들의 시퀀스는 상태 관리자에 의해 데이터베이스에 저장될 수도 있다. 상태 정보는 상태 정보와 연관된 클라이언트에게 이전에 스트리밍된 미디어를 검색하는데 사용될 수도 있다.
일부 구현들에서, 미디어 세그먼트들의 적절한 시퀀스가 보존되는 것을 보장하는 것이 바람직할 수도 있다. 클라이언트에 의해 요청된 미디어의 식별된 부분과 이전에 스트리밍된 미디어를 비교함으로써, 제공된 세그먼트 (304) 는 이전에 스트리밍된 세그먼트들의 맥락에서 식별된 부분을 검증할 수 있다. 그러한 구현에서, 클라이언트는 어느 세그먼트들이 스트리밍되었는지를 식별하는 상태 정보를 유지하거나 송신할 필요가 없다. 이러한 정보는 다른 서버 측 상에서 상태 관리자에 의해 유지될 수도 있다. 이것은 적절하게 시퀀스된 미디어 프리젠테이션을 획득하기 위해 클라이언트에 의해 소비되는 리소스들 (예를 들어, 전력, 대역폭, 프로세싱 시간, 방송시간) 을 감소시킨다. 이것은 또한 적절하게 시퀀싱된 미디어 프리젠테이션을 제공하기 위해 서버에 의해 소비되는 리소스들을 감소시킬 수도 있다.
일부 구현들에서, 상태 정보는 식별된 미디어 스트림과 함께 디스플레이 될 컨텐츠를 생성하는데 사용될 수도 있다. 예를 들어, 요청된 미디어 스트림과 함께 이전에 스트리밍된 컨텐츠는 식별된 미디어 스트림 전, 동안, 후 또는 동시에 나타날 광고를 식별하는데 사용될 수도 있다. 부가 컨텐츠에 대한 삽입 지점은, 예컨대 포함될 컨텐츠, 클라이언트의 특성 (예를 들어, 기술적 능력들, 가입자 정보 등) 에 기초하여 동적으로 식별될 수도 있다. 삽입 지점은 컨텐츠를 포함하기 위해 시간 지점을 식별할 수도 있다. 삽입 지점은 식별된 미디어 스트림을 통해 컨텐츠가 디스플레이될 컨텐츠에 대한 디스플레이 위치를 식별할 수도 있다. 일부 구현들에서, 클라이언트에 제공되는 미디어 스트림과 관련되는 광고들을 선택하는 것이 바람직할 수도 있다. 그러한 타겟팅은 특별한 메시지들의 관련성을 강화시키고 특별한 괌심들을 갖는 것으로서 이전에 시청한 미디어에 기초하여 식별된 것들에 도달하는 것을 도울 수 있다. 예를 들어, 클라이언트가 프로 풋볼 컨텐츠를 스트리밍했다면, 관련된 풋볼 컨텐츠 또는 광고가 제공될 수도 있다.
다른 예로서, 상태 정보는 클라이언트에게 스트리밍될 미디어를 표시할 수도 있다. 상태 정보는 상태 정보와 연관된 클라이언트에게 스트리밍될 미디어를 검색하는데 사용될 수도 있다. 일부 구현들에서, 미디어 세그먼트들의 적절한 시퀀스가 보존되는 것을 보장하는 것이 바람직할 수도 있다. 클라이언트에 의해 요청된 미디어의 식별된 부분과 스트리밍될 미디어를 비교함으로써, 제공된 세그먼트 (304) 는 스트리밍될 이전에 식별된 세그먼트들의 맥락에서 식별된 부분을 검증할 수 있다. 그러한 구현에서, 클라이언트는 어느 세그먼트들이 스트리밍되었는지를 식별하는 상태 정보를 유지하거나 송신할 필요가 없다. 이러한 정보는 서버 측 상에서 상태 관리자에 의해 유지될 수도 있다. 이것은 적절하게 시퀀싱된 미디어 프리젠테이션을 획득하기 위해 클라이언트에 의해 소비되는 리소스들 (예를 들어, 전력, 대역폭, 프로세싱 시간, 방송시간) 을 감소시킨다. 이것은 또한 적절하게 시퀀싱된 미디어 프리젠테이션을 제공하기 위해 서버에 의해 소비되는 리소스들을 감소시킬 수도 있다.
일부 구현들에서, 상태 정보는 식별된 미디어 스트림과 함께 디스플레이 될 컨텐츠를 생성하는데 사용될 수도 있다. 예를 들어, 요청된 미디어 스트림과 함께 스트리밍될 컨텐츠는 식별된 미디어 스트림 전, 동안, 후 또는 동시에 나타날 광고를 식별하는데 사용될 수도 있다. 일부 구현들에서, 클라이언트에 제공되는 미디어 스트림들과 관련되는 광고들을 선택하는 것이 바람직할 수도 있다. 그러한 타겟팅은 특별한 메시지들의 관련성을 강화시키고 특별한 관심들을 갖는 것으로서 이전에 시청한 미디어에 기초하여 식별된 것들에 도달하는 것을 도울 수 있다. 예를 들어, 클라이언트가 프로 풋볼 컨텐츠를 스트리밍했다면, 관련 풋볼 컨텐츠 또는 광고가 제공될 수도 있다. 스트리밍될 컨텐츠를 식별하는 것은 또한 향후 시청될 특별한 세그먼트를 표시하는 "티저들" 을 생성하는데 사용될 수도 있다. 그러한 티져들은 시청자들을 사로잡고 시청 시간의 양을 증가시키는 것을 돕는다.
추가 예에서, 상태 정보는 클라이언트의 사용자에 대한 인구통계학적 정보를 식별할 수도 있다. 일 구현에서, 클라이언트는 시스템에 로그인하도록 구성될 수도 있다. 로그인된 사용자는 일반적으로 나이, 인종, 성별, 위치, 소득, 직업 등과 같은 그들 자신에 관한 정보를 제공한다. 한번 로그인이 되면, 상태 정보는 로그인된 클라이언트의 사용자에 관련된 인구통계학적 정보의 검색을 통해 또는 직접 인구통계학적 속성들의 하나 이상을 전달할 수도 있다. 인구통계학적 정보는 위에 기재된 바와 같이 컨텐츠를 타겟팅하는데 사용될 수도 있다. 인구통계학적 정보는 컨텐츠를 제안하는데 사용될 수도 있다.
또 다른 예로서, 상태 정보는 클라이언트의 기술적 능력들을 식별할 수도 있다. 클라이언트는 소정의 디스플레이 사이즈로 소정의 대역폭을 사용하여 소정의 네트워크 경로를 통해 소정의 레이트로 비디오를 디스플레이하도록 구성될 수도 있다. 클라이언트는 프로세서 속도 또는 메모리와 같은 특정 하드웨어 구성을 가질 수도 있다. 이러한 인자들의 각각은 클라이언트에게 미디어를 스트리밍하는 방법을 결정하는데 사용될 수도 있다. 예를 들어, 클라이언트가 제한된 대역폭 및 디스플레이 사이즈를 갖는 경우, 작은 사이즈의 낮은 품질 미디어 스트림이 클라이언트에게 송신될 수도 있다. 기술적 능력들은 또한 상술한 바와 같이 클라이언트에게 제공되는 컨텐츠를 타겟팅하는데 사용될 수도 있다.
추가 예로서, 상태 정보는 클라이언트에 대한 허가를 식별할 수도 있다. 허가는 클라이언트 디바이스가 시스템 및/또는 이에 의해 제공된 컨텐츠에 액세스하기 위해 허가되는 것을 표시할 수도 있다. 허가는 클라이언트 디바이스가 액세스하기 위해 허가되는 컨텐츠를 표시할 수도 있다. 예를 들어, 허가는 TV-Y, TV-G, TV-Y7, TV-14, TV-MAA 등 또는 다른 컨텐츠 레이팅 시스템과 같은 TV 부모 지침 레이팅에 대한 G, PG, PG-13, R 등과 같은 MPAA 레이팅에 따라 컨텐츠의 유형들을 표시할 수도 있다. 허가는 클라이언트 디바이스가 액세스하기 위해 허가되는 컨텐츠의 양을 표시할 수도 있다 (예를 들어, 대역폭, 시간, 세그먼트들의 수 등). 허가 상태 정보는 제 1 액세스 상의 시스템에 의해 클라이언트에게 할당될 수도 있다. 예를 들어, 클라이언트는 익명으로 시스템에 접속할 수도 있다. 익명의 사용자로서, 클라이언트는 컨텐츠의 제한된 양을 수신하도록 허가될 수도 있다. 클라이언트가 시스템에 로그인되는 경우, 클라이언트는 예를 들어, 가입에 기초하여 서비스의 상이한 레벨들에 대해 허가될 수도 있다. 허가 상태 정보는 상태 정보에 포함된 허가 토큰 (token) 으로서 나타날 수도 있다.
도 5 는 미디어 스트림을 송신하는 디바이스의 기능적 블록 다이어그램을 나타낸다. 디바이스 (500) 는 미디어 스트림을 송신하는 디바이스에 포함될 수도 있는 피쳐들의 일부만을 나타낸다. 디바이스 (500) 는 디스트립터 생성 회로 (505), 송신기 (510), 수신기 (515), 및 컨텐츠 생성기 (520) 를 포함한다.
디스크립터 생성 회로 (505) 는 클라이언트 요청 미디어 스트림을 위한 미디어 스트림의 부분에 대한 상태 정보를 생성하도록 구성된다. 일부 구현들에서, 디스트립터 생성 회로 (505) 는 프로세서, 메모리, 의사 난수 생성기, 상태 관리자, 및 미디어 프리젠테이션 디스크립션 제공자의 하나 이상을 포함할 수도 있다. 일부 구현들에서, 상태 정보를 생성하는 수단은 디스크립터 생성 회로 (505) 를 포함한다.
송신기 (510) 는 미디어 스트림을 식별하는 정보를 클라이언트에게 송신하도록 구성되며, 미디어 스트림을 식별하는 정보는 생성된 상태 정보를 포함한다. 송신기 (510) 는 안테나, 프로세서, 신호 생성기, 네트워크 인터페이스, 증폭기, 및 메모리 중 하나 이상을 포함할 수도 있다. 일부 구현들에서, 미디어 스트림을 식별하는 정보를 송신하는 수단은 송신기 (510) 를 포함한다.
수신기 (515) 는 클라이언트로부터 상태 정보를 수신하도록 구성된다. 수신기 (515) 는 안테나, 프로세서, 신호 프로세서, 네트워크 인터페이스, 및 메모리 중 하나 이상을 포함할 수도 있다. 일부 구현들에서 상태 정보를 수신하는 수단은 수신기 (515) 를 포함한다.
컨텐츠 생성기 (520) 는 수신된 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하도록 구성된다. 컨텐츠 생성기 (520) 는 프로세서, 인코더, 센서 (예를 들어, 카메라), 및 세그먼트 제공자 중 하나 이상을 포함할 수도 있다. 일부 구현들에서, 출력 미디어 스트림을 생성하는 수단은 컨텐츠 생성기 (520) 를 포함한다.
본원에서 사용된 바와 같이, 용어들 "결정하다" 또는 "결정하는 것" 은 폭넓게 다양한 액션 (action) 들을 망라한다. 예를 들어, "결정하는 것" 은 계산, 컴퓨팅, 프로세싱, 유도, 조사, 룩업 (look up) (예를 들어, 테이블, 데이터베이스 또는 또 다른 데이터 구조에서의 룩업), 확인 등을 포함할 수 있다. 또한, "결정하는 것" 은 수신하는 것 (예를 들어, 정보를 수신하는 것), 액세스하는 것 (예를 들어, 메모리에서의 데이터에 액세스하는 것), 등을 포함할 수 있다. 또한, "결정하는 것" 은 해결, 선택, 선정, 구축 등을 포함할 수 있다.
본 명세서에서 사용된 바와 같이, 용어들 "제공하다" 또는 "제공하는 것" 은 폭넓게 다양한 액션들을 망라한다. 예를 들어, "제공하는 것" 은 추후의 취출을 위한 로케이션에 값을 저장하는 것, 값을 바로 수신자에게 송신하는 것, 값에 대한 참조를 송신하거나 저장하는 것, 등을 포함할 수도 있다. "제공하는 것" 은 또한, 인코딩, 디코딩, 암호화, 복호화, 유효성 검증, 확인 등을 포함할 수도 있다.
본 명세서에서 사용된 바와 같이, 항목들의 리스트 중의 "적어도 하나" 를 지칭하는 어구는 단일 부재들을 포함하는 그러한 항목들의 임의의 조합을 지칭한다. 일 예로서, "a, b, 또는 c 중의 적어도 하나" 는 a, b, c, a-b, a-c, b-c, 및 a-b-c 를 커버하도록 의도된다.
상술한 방법들의 다양한 동작들은 다양한 하드웨어 및/또는 소프트웨어 컴포넌트(들), 회로들, 및/또는 모듈(들) 과 같이, 동작들을 수행할 수 있는 임의의 적당한 수단에 의해 수행될 수도 있다. 일반적으로, 도면들에서 예시된 임의의 동작들은 동작들을 수행할 수 있는 대응하는 기능적 수단에 의해 수행될 수도 있다.
본 개시물과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래밍가능한 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능한 로직 디바이스 (PLD), 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에서 설명된 기능들을 수행하도록 설계된 그 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 상업적으로 입수가능한 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성의 조합으로서 구현될 수도 있다.
하나 이상의 양태들에서는, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터-판독가능 매체 상에 저장되거나, 컴퓨터-판독가능 매체를 통해 송신될 수도 있다. 컴퓨터-판독가능 매체들은, 하나의 장소로부터 또 다른 장소까지의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 매체들 및 통신 매체들의 둘 모두를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 제한이 아닌 예로서, 이러한 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 전달 또는 저장하기 위해 이용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터-판독가능한 매체라고 적절하게 칭해진다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어 (twisted pair), 디지털 가입자 회선 (digital subscriber line; DSL), 또는 무선 기술들 예컨대, 적외선, 라디오 (radio), 및 마이크로파 (microwave) 를 이용하여, 웹사이트, 서버, 또는 다른 원격 소스로부터 소프트웨어가 송신될 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 무선 기술들 예컨대, 적외선, 라디오, 및 마이크로파는 매체의 정의 내에 포함된다. 본 명세서에서 사용된 바와 같이, 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (blu-ray disc) 를 포함하고, 디스크(disk)들은 통상 데이터를 자기적으로 재생하는 반면, 디스크(disc)들은 데이터를 레이저들로 광학적으로 재생한다. 따라서, 일부의 양태들에서, 컴퓨터 판독가능 매체는 비-일시적인 컴퓨터 판독가능 매체 (예를 들어, 유형의 (tangible) 매체들) 를 포함할 수도 있다. 부가적으로, 일부의 양태들에서, 컴퓨터 판독가능 매체는 일시적인 컴퓨터 판독가능 매체 (예를 들어, 신호) 를 포함할 수도 있다. 상기의 조합들은 컴퓨터-판독가능 매체들의 범위 내에 또한 포함되어야 한다.
본 명세서에 개시된 방법들은 기재된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법 단계들 및/또는 액션들은 청구항들의 범위로부터 벗어나지 않으면서 상호 교환될 수도 있다. 다시 말해서, 단계들 또는 액션들의 특정 순서가 특정되지 않으면, 특정 단계들 및/또는 액션들의 순서 및/또는 이용은 청구항들의 범위로부터 벗어나지 않으면서 수정될 수도 있다.
설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터-판독가능 매체 상에 하나 이상의 명령들로서 저장될 수도 있다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 제한이 아닌 예로서, 이러한 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 전달 또는 저장하기 위해 이용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 본 명세서에서 사용된 바와 같이, 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 Blu-ray® 디스크 (disc) 를 포함하고, 디스크(disk)들은 통상 데이터를 자기적으로 재생하는 반면, 디스크(disc)들은 데이터를 레이저들로 광학적으로 재생한다.
따라서, 소정의 양태들은 본 명세서에서 제시된 동작들을 수행하기 위한 컴퓨터 프로그램 제품을 포함할 수도 있다. 예를 들어, 이러한 컴퓨터 프로그램 제품은 명령들을 저장한 (및/또는 인코딩한) 컴퓨터 판독가능 매체를 포함할 수도 있고, 명령들은 본 명세서에 기재된 동작들을 수행하기 위해 하나 이상의 프로세서들에 의해 실행가능할 수도 있다. 어떤 양태들에 대하여, 컴퓨터 프로그램 제품은 패키징 재료를 포함할 수도 있다.
소프트웨어 또는 명령들은 또한, 송신 매체를 통해 송신될 수도 있다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어 (twisted pair), 디지털 가입자 회선 (DSL), 또는 무선 기술들 예컨대, 적외선, 라디오, 및 마이크로파를 사용하여, 웹사이트, 서버, 또는 다른 원격 소스로부터 소프트웨어가 송신되는 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 무선 기술들 예컨대, 적외선, 라디오, 및 마이크로파는 송신 매체의 정의 내에 포함된다.
추가로, 본 명세서에 기재된 방법들 및 기법들을 수행하기 위한 모듈들 및/또는 다른 적절한 수단은 적용가능한 바와 같은 인코딩 디바이스 및/또는 디코딩 디바이스에 의해 다운로딩 및/또는 이와 다르게 획득될 수 있다는 것을 인식해야 한다. 예를 들어, 그러한 디바이스는 본 명세서에 기재된 방법들을 수행하기 위한 수단의 전달을 용이하게 하기 위하여 서버에 결합될 수 있다. 대안적으로, 본 명세서에 기재된 다양한 방법들은 저장 수단 (예를 들어, RAM, ROM, 물리적 저장 매체 예컨대, 컴팩트 디스크 (CD) 또는 플로피 디스크, 등) 을 통해 제공될 수 있어서, 비디오 프로세싱 디바이스는 저장 수단을 디바이스에 커플링 또는 제공 시에 다양한 방법들을 획득할 수 있다. 게다가, 본 명세서에 기재된 방법들 및 기법들을 디바이스에 제공하기 위한 임의의 다른 적당한 기법이 활용될 수 있다.
청구항들은 위에 예시된 정확한 구성 및 컴폰넌트들에 제한되지 않는다는 것을 이해해야 한다. 다양한 수정들, 변경들 및 변형들은 청구항들의 범위로부터 벗어나지 않으면서, 상술한 방법들 및 장치의 배열, 동작 및 상세들에서 행해질 수도 있다.
상기한 것은 본 개시물의 양태들에 대한 것이지만, 개시물의 다른 그리고 추가의 양태들이 그 기본적인 범위로부터 벗어나지 않으면서 고안될 수도 있고, 그 범위는 이어지는 청구항들에 의해 결정된다.

Claims (25)

  1. 미디어 스트림을 송신하는 디바이스로서,
    상기 미디어 스트림을 요청하는 클라이언트를 위한 상기 미디어 스트림의 부분에 대한 상태 정보를 생성하도록 구성된 상태 관리자;
    상기 미디어 스트림을 식별하는 정보를 상기 클라이언트에게 송신하도록 구성된 송신기로서, 상기 미디어 스트림을 식별하는 정보는 생성된 상기 상태 정보를 포함하는, 상기 송신기;
    상기 클라이언트로부터 상기 상태 정보를 수신하도록 구성된 수신기; 및
    수신된 상기 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하도록 구성된 컨텐츠 생성기를 포함하는, 미디어 스트림을 송신하는 디바이스.
  2. 제 1 항에 있어서,
    상기 상태 정보는 상기 클라이언트에게 스트리밍된 미디어, 상기 클라이언트에게 스트리밍될 미디어, 상기 클라이언트의 사용자에 대한 인구통계학적 정보, 상기 클라이언트의 기술적 능력들, 또는 상기 클라이언트에 대한 허가 중 하나 이상을 표시하는, 미디어 스트림을 송신하는 디바이스.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 미디어 스트림의 부분을 식별하는 정보를 송신하는 것은 DASH (dynamic adaptive streaming over HTTP) 미디어 프리젠테이션 디스크립션 파일을 송신하는 것을 포함하는, 미디어 스트림을 송신하는 디바이스.
  4. 제 1 내지 제 3 항 중 어느 한 항에 있어서,
    상기 상태 관리자는 상기 미디어 스트림의 부분 및 상기 미디어 스트림을 요청하는 클라이언트 중 하나 이상에 기초하여 상태 정보를 생성하도록 구성되는, 미디어 스트림을 송신하는 디바이스.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 상태 정보를 생성하는 것은 의사 랜덤값 및 고유 의사 랜덤값 중 적어도 하나를 생성하는 것을 포함하는, 미디어 스트림을 송신하는 디바이스.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    메모리를 더 포함하고,
    상기 상태 관리자는 상기 정태 정보의 적어도 부분을 상기 메모리에 저장하도록 구성되는, 미디어 스트림을 송신하는 디바이스.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 출력 미디어 스트림을 생성하는 것은,
    상기 미디어 스트림의 식별된 부분을 획득하는 것;
    상기 수신된 상태 정보에 적어도 부분적으로 기초하여 적어도 하나의 부가 컨텐츠 엘리먼트를 식별하는 것;
    상기 식별된 부분의 삽입 지점을 식별하는 것; 및
    상기 획득된 부분의 식별된 상기 삽입 지점에서 식별된 부가 컨텐츠를 포함하는 상기 출력 미디어 스트림을 생성하는 것을 포함하는, 미디어 스트림을 송신하는 디바이스.
  8. 제 7 항에 있어서,
    상기 부가 컨텐츠 엘리먼트는 광고를 포함하는, 미디어 스트림을 송신하는 디바이스.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 상태 정보를 송신하는 것은 상기 미디어 스트림의 부분에 대한 질의 스트링에 상기 상태 정보를 포함시키는 것을 포함하는, 미디어 스트림을 송신하는 디바이스.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 송신기는 또한 생성된 상기 출력 미디어 스트림을 상기 클라언트에게 송신하도록 구성되는, 미디어 스트림을 송신하는 디바이스.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 미디어 스트림을 식별하는 정보는 상기 미디어 스트림의 부분에 대한 식별자를 포함하고,
    상기 수신기는 또한 상기 식별자를 수신하도록 구성되며,
    상기 컨텐츠 생성기는 또한 상기 식별자에 기초하여 상기 출력 미디어 스트림을 생성하도록 구성되는, 미디어 스트림을 송신하는 디바이스.
  12. 미디어 스트림을 송신하는 방법으로서,
    상기 미디어 스트림을 요청하는 클라이언트를 위한 상기 미디어 스트림의 부분에 대한 상태 정보를 생성하는 단계;
    상기 미디어 스트림을 식별하는 정보를 상기 클라이언트에게 송신하는 단계로서, 상기 미디어 스트림을 식별하는 정보는 생성된 상기 상태 정보를 포함하는, 상기 송신하는 단계;
    상기 클라이언트로부터 상기 상태 정보를 수신하는 단계; 및
    수신된 상기 상태 정보 및 상기 미디어 스트림의 부분을 식별하는 수신된 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하는 단계를 포함하는, 미디어 스트림을 송신하는 방법.
  13. 제 12 항에 있어서,
    상기 상태 정보는 상기 클라이언트에게 스트리밍된 미디어, 상기 클라이언트에게 스트리밍될 미디어, 상기 클라이언트의 사용자에 대한 인구통계학적 정보, 상기 클라이언트의 기술적 능력들, 또는 상기 클라이언트에 대한 허가 중 하나 이상을 표시하는, 미디어 스트림을 송신하는 방법.
  14. 제 12 항 또는 제 13 항에 있어서,
    상기 미디어 스트림의 부분을 식별하는 정보를 송신하는 단계는, DASH (dynamic adaptive streaming over HTTP) 미디어 프리젠테이션 디스크립션 파일을 송신하는 단계를 포함하는, 미디어 스트림을 송신하는 방법.
  15. 제 12 내지 제 14 항 중 어느 한 항에 있어서,
    상기 상태 정보를 생성하는 단계는, 상기 미디어 스트림의 부분 및 상기 미디어 스트림을 요청하는 클라이언트 중 하나 이상에 기초하는, 미디어 스트림을 송신하는 방법.
  16. 제 12 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 상태 정보를 생성하는 단계는, 의사 랜덤값 및 고유 의사 랜덤값 중 적어도 하나를 생성하는 단계를 포함하는, 미디어 스트림을 송신하는 방법.
  17. 제 12 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 상태 정보의 적어도 부분을 저장하는 단계를 더 포함하는, 미디어 스트림을 송신하는 방법.
  18. 제 12 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 출력 미디어 스트림을 생성하는 단계는,
    상기 미디어 스트림의 식별된 부분을 획득하는 단계;
    상기 수신된 상태 정보에 적어도 부분적으로 기초하여 적어도 하나의 부가 컨텐츠 엘리먼트를 식별하는 단계;
    상기 식별된 부분의 삽입 지점을 식별하는 단계; 및
    상기 획득된 부분의 식별된 상기 삽입 지점에서 식별된 부가 컨텐츠를 포함하는 상기 출력 미디어 스트림을 생성하는 단계를 포함하는, 미디어 스트림을 송신하는 방법.
  19. 제 18 항에 있어서,
    상기 부가 컨텐츠 엘리먼트는 광고를 포함하는, 미디어 스트림을 송신하는 방법.
  20. 제 12 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 상태 정보를 송신하는 단계는 상기 미디어 스트림의 부분에 대한 질의 스트링에 상기 상태 정보를 포함시키는 단계를 포함하는, 미디어 스트림을 송신하는 방법.
  21. 제 12 항 내지 제 20 항 중 어느 한 항에 있어서,
    생성된 상기 출력 미디어 스트림을 상기 클라언트에게 송신하는 단계를 더 포함하는, 미디어 스트림을 송신하는 방법.
  22. 제 12 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 미디어 스트림을 식별하는 정보는 상기 미디어 스트림의 부분에 대한 식별자를 포함하고,
    상기 방법은, 상기 식별자를 수신하는 단계를 더 포함하며,
    상기 출력 미디어 스트림을 생성하는 단계는 또한 상기 미디어 스트림의 부분을 식별하는 상기 수신된 정보에 기초하는, 미디어 스트림을 송신하는 방법.
  23. 미디어 스트림을 송신하는 디바이스로서,
    프로세서를 포함하고,
    상기 프로세서는,
    상기 미디어 스트림을 요청하는 클라이언트를 위한 상기 미디어 스트림의 부분에 대한 상태 정보를 생성하고;
    상기 미디어 스트림을 식별하는 정보를 상기 클라이언트에게 송신하는 것으로서, 상기 미디어 스트림을 식별하는 정보는 생성된 상기 상태 정보를 포함하는, 상기 송신하고;
    상기 클라이언트로부터 상기 상태 정보를 수신하고; 그리고
    수신된 상기 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하도록
    구성되는, 미디어 스트림을 송신하는 디바이스.
  24. 미디어 스트림을 송신하는 디바이스로서,
    상기 미디어 스트림을 요청하는 클라이언트를 위한 상기 미디어 스트림의 부분에 대한 상태 정보를 생성하는 수단;
    상기 미디어 스트림을 식별하는 정보를 상기 클라이언트에게 송신하는 수단으로서, 상기 미디어 스트림을 식별하는 정보는 생성된 상기 상태 정보를 포함하는, 상기 송신하는 수단;
    상기 클라이언트로부터 상기 상태 정보를 수신하는 수단; 및
    수신된 상기 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하는 수단을 포함하는, 미디어 스트림을 송신하는 디바이스.
  25. 장치의 프로세서에 의해 실행가능한 명령들을 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은 상기 장치로 하여금:
    상기 미디어 스트림을 요청하는 클라이언트를 위한 상기 미디어 스트림의 부분에 대한 상태 정보를 생성하게 하고;
    상기 미디어 스트림을 식별하는 정보를 상기 클라이언트에게 송신하게 하는 것으로서, 상기 미디어 스트림을 식별하는 정보는 생성된 상기 상태 정보를 포함하는, 상기 송신하게 하고;
    상기 클라이언트로부터 상기 상태 정보를 수신하게 하고; 그리고
    수신된 상기 상태 정보에 적어도 부분적으로 기초하여 출력 미디어 스트림을 생성하게 하는, 컴퓨터 판독가능 저장 매체.
KR20157006892A 2012-08-20 2013-08-05 스트리밍 미디어에 대한 상태 정보의 전달 KR20150046171A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261691136P 2012-08-20 2012-08-20
US61/691,136 2012-08-20
US13/718,930 2012-12-18
US13/718,930 US20140052824A1 (en) 2012-08-20 2012-12-18 Conveying state information for streaming media
PCT/US2013/053643 WO2014031320A1 (en) 2012-08-20 2013-08-05 Conveying state information for streaming media

Publications (1)

Publication Number Publication Date
KR20150046171A true KR20150046171A (ko) 2015-04-29

Family

ID=50100865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20157006892A KR20150046171A (ko) 2012-08-20 2013-08-05 스트리밍 미디어에 대한 상태 정보의 전달

Country Status (7)

Country Link
US (1) US20140052824A1 (ko)
EP (1) EP2885905A1 (ko)
JP (1) JP2015531217A (ko)
KR (1) KR20150046171A (ko)
CN (1) CN104584505B (ko)
TW (1) TW201419838A (ko)
WO (1) WO2014031320A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101889220B1 (ko) * 2017-04-07 2018-08-16 한국과학기술원 비디오 세그먼트를 이용하여 비디오 소비 정보를 수집하기 위한 방법 및 시스템

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2904764B1 (en) * 2013-01-16 2016-09-21 Huawei Technologies Co., Ltd. Url parameter insertion and addition in adaptive streaming
KR20150065289A (ko) * 2013-12-05 2015-06-15 삼성전자주식회사 데이터 재사용 방법 및 전자장치
EP2958294A1 (en) * 2014-06-16 2015-12-23 Thomson Licensing Method for operating a network equipment arranged along a transmission path between a client terminal and at least one server, and corresponding network equipment.
US10200856B2 (en) 2014-10-02 2019-02-05 Sprint Communications Company L.P. Content-delivery footprint and capabilities data transfer from wireless communication devices
US10015235B2 (en) 2014-10-23 2018-07-03 Sprint Communications Company L.P. Distribution of media content to wireless communication devices
US9609489B2 (en) 2014-10-24 2017-03-28 Sprint Communications Company L.P. Distribution of media content identifiers to wireless communication devices
US9967734B1 (en) 2014-11-24 2018-05-08 Sprint Communications Company, L.P. Content delivery network request handling in wireless communication systems
JPWO2016199513A1 (ja) 2015-06-09 2018-03-29 ソニー株式会社 受信装置、送信装置、およびデータ処理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169303A1 (en) * 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
CN102308547B (zh) * 2008-12-31 2014-11-19 苹果公司 通过非流化协议流化多媒体数据的方法
CN101511010A (zh) * 2009-03-27 2009-08-19 北京中星微电子有限公司 一种媒体流发送方法及装置
US10097946B2 (en) * 2011-12-22 2018-10-09 Taiwan Semiconductor Manufacturing Co., Ltd. Systems and methods for cooperative applications in communication systems
KR101750049B1 (ko) * 2009-11-13 2017-06-22 삼성전자주식회사 적응적인 스트리밍 방법 및 장치
US8825877B2 (en) * 2009-12-11 2014-09-02 Verizon Patent And Licensing Inc. Session persistence
DK2526671T3 (en) * 2010-01-18 2017-02-27 ERICSSON TELEFON AB L M (publ) METHODS AND DEVICES FOR HTTP MEDIA FLOW DISTRIBUTION
US8677428B2 (en) * 2010-08-20 2014-03-18 Disney Enterprises, Inc. System and method for rule based dynamic server side streaming manifest files
CN102571687B (zh) * 2010-12-10 2014-09-17 联芯科技有限公司 实时媒体流间同步状态信息构建方法、装置及sccas
KR101739272B1 (ko) * 2011-01-18 2017-05-24 삼성전자주식회사 멀티미디어 스트리밍 시스템에서 컨텐트의 저장 및 재생을 위한 장치 및 방법
KR20120092432A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 디지털 방송 시스템에서 컨텐츠 송수신 장치 및 방법
US9159055B2 (en) * 2011-09-07 2015-10-13 Elwha Llc Computational systems and methods for identifying a communications partner
US8850054B2 (en) * 2012-01-17 2014-09-30 International Business Machines Corporation Hypertext transfer protocol live streaming
KR20130127211A (ko) * 2012-05-14 2013-11-22 한국전자통신연구원 다중 네트워크 환경 적응형 미디어 스트리밍 전송방법 및 그 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101889220B1 (ko) * 2017-04-07 2018-08-16 한국과학기술원 비디오 세그먼트를 이용하여 비디오 소비 정보를 수집하기 위한 방법 및 시스템

Also Published As

Publication number Publication date
CN104584505B (zh) 2019-08-23
WO2014031320A1 (en) 2014-02-27
JP2015531217A (ja) 2015-10-29
EP2885905A1 (en) 2015-06-24
US20140052824A1 (en) 2014-02-20
CN104584505A (zh) 2015-04-29
TW201419838A (zh) 2014-05-16

Similar Documents

Publication Publication Date Title
KR102122495B1 (ko) 레프리젠테이션을 사용하는 스트리밍 콘텐츠 제공 장치 및 방법
KR101956121B1 (ko) 스트리밍 컨텐츠 제공 장치 및 방법
US9813404B2 (en) Content URL authentication for dash
KR20150046171A (ko) 스트리밍 미디어에 대한 상태 정보의 전달
US20160337424A1 (en) Transferring media data using a websocket subprotocol
US20130042100A1 (en) Method and apparatus for forced playback in http streaming
JP2017517167A (ja) メディアデータをストリーミングするためのターゲット広告挿入
CN107634930B (zh) 一种媒体数据的获取方法和装置
CN111656791B (zh) 流式传输服务中的信令和报告交互性使用
US9191429B2 (en) Dynamic resolution of content references for streaming media
KR20160138044A (ko) 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입
KR20150083429A (ko) Dash를 사용하는 비디오 재생을 위한 비트 깊이 표현 방법
KR20120120915A (ko) 스트리밍 콘텐츠 제공 장치 및 방법
US20220239601A1 (en) Background data traffic distribution of media data
US20210306703A1 (en) Determination of availability of chunks of data for network streaming media data
KR20190060852A (ko) 동적 이벤트 시그널링

Legal Events

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