KR20140057659A - 다중 소스들로부터의 멀티미디어 데이터의 스트리밍 - Google Patents

다중 소스들로부터의 멀티미디어 데이터의 스트리밍 Download PDF

Info

Publication number
KR20140057659A
KR20140057659A KR1020147009181A KR20147009181A KR20140057659A KR 20140057659 A KR20140057659 A KR 20140057659A KR 1020147009181 A KR1020147009181 A KR 1020147009181A KR 20147009181 A KR20147009181 A KR 20147009181A KR 20140057659 A KR20140057659 A KR 20140057659A
Authority
KR
South Korea
Prior art keywords
data
multimedia data
representations
sources
multimedia
Prior art date
Application number
KR1020147009181A
Other languages
English (en)
Other versions
KR101594351B1 (ko
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 KR20140057659A publication Critical patent/KR20140057659A/ko
Application granted granted Critical
Publication of KR101594351B1 publication Critical patent/KR101594351B1/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/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/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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
    • 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/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • 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/756Media network packet handling adapting media to device capabilities
    • 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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network

Landscapes

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

Abstract

일 예에서, 디바이스는 복수의 인터페이스들 ― 인터페이스들 각각은 복수의 소스들 중 각각의 소스에 통신가능하게 커플링됨 ―; 멀티미디어 콘텐츠에 대한 매니페스트 파일을 사용하여, 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하도록 구성된 스트림 관리 유닛 ― 매니페스트 파일은 멀티미디어 콘텐츠의 복수의 표현들을 나타내는 정보를 포함하고, 복수의 표현들은 선택된 표현을 포함하고, 표현들에 대한 멀티미디어 데이터는 복수의 소스들로부터 이용가능하며, 스트림 관리 유닛은 선택된 표현에 대한 멀티미디어 데이터를 리트리브하기 위한 소스들 중 하나를 선택하도록 구성됨 ―; 및 선택된 소스에 통신가능하게 커플링된 인터페이스들 중 하나를 통해 선택된 소스로부터 선택된 표현에 대한 멀티미디어 데이터를 리트리브하도록 구성된 소스 컴포넌트를 포함한다.

Description

다중 소스들로부터의 멀티미디어 데이터의 스트리밍{STREAMING OF MULTIMEDIA DATA FROM MULTIPLE SOURCES}
[0001] 본 출원은 그 전체가 참조로 여기에 통합되는 2011년 9월 7일 출원된 미국 가특허 출원 제61/531,879호의 이익을 주장한다.
[0002] 본 개시물은 인코딩된 멀티미디어 데이터의 전송에 관한 것이다.
[0003] 디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 방송 시스템들, 무선 방송 시스템들, 휴대 보조 단말기들(PDAs), 랩탑 또는 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 기록 디바이스들, 디지털 미디어 플레이어들, 비디오 게임 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화들, 원격 화상회의 디바이스들 등을 포함하는 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 디지털 비디오 정보를 더욱 효율적으로 송수신하기 위해 MPEG-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4, Part 10, 어드밴스드 비디오 코딩(AVC)에 의해 정의된 표준들, 및 이러한 표준들의 확장자들에 기재된 바와 같은 비디오 압축 기법들을 구현한다.
[0004] 비디오 압축 기법들은 비디오 시퀀스들 고유의 리던던시를 감소시키거나 제거하기 위해 공간 예측 및/또는 시간 예측을 수행한다. 블록 기반 비디오 코딩을 위해, 비디오 프레임 또는 슬라이스가 매크로블록들로 파티셔닝될 수도 있다. 각 매크로블록은 더 파티셔닝될 수 있다. 인트라-코딩(I) 프레임 또는 슬라이스에서의 매크로블록들은 이웃하는 매크로블록들에 관하여 공간 예측을 사용하여 인코딩된다. 인터-코딩(P 또는 B) 프레임 또는 슬라이스에서의 매크로블록들은 동일한 프레임 또는 슬라이스에서의 이웃하는 매크로블록들에 대해서는 공간 예측 또는 다른 레퍼런스 프레임들에 대해서는 시간 예측을 사용할 수도 있다.
[0005] 비디오 데이터가 인코딩된 이후에, 비디오 데이터는 송신 또는 저장을 위해 패킷화될 수도 있다. 비디오 데이터는 국제 표준화 기구(ISO) 기반 미디어 파일 포맷 및 ITU-T H.264/AVC와 같은 그 확장자들과 같은 임의의 다양한 표준들에 따르는 비디오 파일로 어셈블링될 수도 있다. 이러한 패킷화된 비디오 데이터는 네트워크 스트리밍을 사용하여 컴퓨터 네트워크를 통한 송신과 같은 다양한 방식들로 전송되거나 저장될 수도 있거나 DVD 또는 Blu-Ray 디스크와 같은 로컬 데이터 저장 매체에 저장될 수도 있다.
[0006] 일반적으로, 본 개시물은 미디어 데이터의 스트리밍을 향상시키는 기법들을 설명한다. 본 개시물은 하이퍼텍스트 전송 프로토콜(HTTP)을 사용하여 네트워크 스트리밍을 제공하는 소스들 이외의 소스들에 미디어 데이터의 스트리밍을 확장시키는 기법들을 제공한다. 예를 들어, 미디어 데이터는 HTTP를 통한 동적 적응형 스트리밍(DASH)에 따르지만, 공중 브로드캐스트 소스들 및 로컬 저장 매체를 통한 브로드캐스트 네트워크 송신 소스들과 같은 HTTP 소스들 이외 또는 그에 대한 대안의 소스들로부터 전송될 수도 있다. 미디어 데이터 및 연관된 데이터 구조들은 일반적으로 DASH의 사양들에 따르지만, 미디어 데이터는 HTTP를 구현하는 네트워크 서버들 이외의 소스들로부터 실제로 리트리브(retrieve)될 수도 있다.
[0007] 일례에서, 비디오 데이터를 리트리브하는 방법은, 멀티미디어 콘텐츠에 대한 매니페스트 파일(manifest file)을 사용하여, 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하는 단계 ― 매니페스트 파일은 멀티미디어 콘텐츠의 복수의 표현들을 나태는 정보를 포함하고, 복수의 표현들은 표현들 중 선택된 표현을 포함하며, 표현들에 대한 멀티미디어 데이터는 복수의 소스들로부터 이용가능함 ―; 선택된 표현에 대한 멀티미디어 데이터를 리트리브하기 위한 소스들 중 하나를 선택하는 단계; 및 선택된 소스로부터 선택된 표현에 대한 멀티미디어 데이터의 적어도 일부를 리트리브하는 단계를 포함한다.
[0008] 다른 예에서, 디바이스는 복수의 인터페이스들 ― 인터페이스들 각각은 복수의 소스들 중 각각의 소스에 통신가능하게 커플링됨 ―; 멀티미디어 콘텐츠에 대한 매니페스트 파일을 사용하여, 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하도록 구성된 스트림 관리 유닛 ― 매니페스트 파일은 멀티미디어 콘텐츠의 복수의 표현들을 나타내는 정보를 포함하고, 복수의 표현들은 표현들 중 선택된 표현을 포함하고, 표현들에 대한 멀티미디어 데이터는 복수의 소스들로부터 이용가능하며, 스트림 관리 유닛은 선택된 표현에 대한 멀티미디어 데이터를 리트리브하기 위한 소스들 중 하나를 선택하도록 구성됨 ―; 및 선택된 소스에 통신가능하게 커플링된 인터페이스들 중 하나를 통해 선택된 소스로부터 선택된 표현에 대한 멀티미디어 데이터를 리트리브하도록 구성된 소스 컴포넌트를 포함한다.
[0009] 다른 예에서, 멀티미디어 데이터를 리트리브하는 디바이스는, 멀티미디어 콘텐츠에 대한 매니페스트 파일을 사용하여, 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하기 위한 수단 ― 매니페스트 파일은 멀티미디어 콘텐츠의 복수의 표현들을 나타내는 정보를 포함하고, 복수의 표현들은 표현들 중 선택된 표현을 포함하며, 표현들에 대한 멀티미디어 데이터는 복수의 소스들로부터 이용가능함 ―; 선택된 표현에 대한 멀티미디어 데이터를 리트리브하기 위한 소스들 중 하나를 선택하기 위한 수단; 및 선택된 소스로부터 선택된 표현에 대한 멀티미디어 데이터의 적어도 일부를 리트리브하기 위한 수단을 포함한다.
[0010] 다른 예에서, 컴퓨터 프로그램 물건은 컴퓨터 판독가능 저장 매체를 포함하고, 이 컴퓨터 판독가능 저장 매체에는 실행될 때 프로세서로 하여금 멀티미디어 콘텐츠에 대한 매니페스트 파일을 사용하여, 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하게 하는 명령들 ― 매니페스트 파일은 멀티미디어 콘텐츠의 복수의 표현들을 나타내는 정보를 포함하고, 복수의 표현들은 표현들 중 선택된 표현을 포함하며, 표현들에 대한 멀티미디어 데이터는 복수의 소스들로부터 이용가능함 ―; 선택된 표현에 대한 멀티미디어 데이터를 리트리브하기 위한 소스들 중 하나를 선택하게 하는 명령들; 및 선택된 소스로부터 선택된 표현에 대한 멀티미디어 데이터의 적어도 일부를 리트리브하게 하는 명령들이 저장되어 있다.
[0011] 하나 또는 그 초과의 예들의 상세사항들이 첨부한 도면들 및 아래의 설명에 설명된다. 다른 특징들, 목적들, 및 이점들은 설명, 도면들, 및 청구항들로부터 명백할 것이다.
[0012] 도 1은 다양한 소스들로부터의 미디어 데이터를 스트리밍하는 기법들을 구현하는 예시적인 시스템을 예시하는 블록도이다.
[0013] 도 2는 다양한 소스들로부터의 미디어 데이터를 스트리밍하는 기법들을 구현하는 다른 예시적인 시스템을 예시하는 블록도이다.
[0014] 도 3은 멀티-소스 리트리벌 유닛(multi-source retrieval unit)에 대한 컴포넌트들의 예시적인 세트를 예시하는 블록도이다.
[0015] 도 4는 예시적인 멀티미디어 콘텐츠의 엘리먼트들을 예시하는 개념도이다.
[0016] 도 5는 멀티미디어 콘텐츠의 표현의 세그먼트에 대응할 수도 있는 예시적인 비디오 파일의 엘리먼트들을 예시하는 블록도이다.
[0017] 도 6은 다양한 상이한 소스들 중 하나 또는 그 초과의 것으로부터 멀티미디어 데이터를 리트리브하는 예시적인 방법을 예시하는 플로우차트이다.
[0018] 도 7은 다양한 소스들 중 하나 또는 그 초과의 것으로부터의 멀티미디어 콘텐츠의 데이터를 리트리브하는 예시적인 방법을 더욱 상세히 예시하는 플로우차트이다.
[0019] 도 8은 스트리밍 관리자가 각각의 소스들에 통신가능하게 커플링되는 다양한 인터페이스들로부터 소스 통지들을 수신하는 개념적 타이밍도를 예시하는 플로우차트이다.
[0020] 도 9는 본 개시물의 기법들에 따라 하나 또는 그 초과의 다양한 소스들로부터의 스트림을 초기화하기 위해 적용될 수도 있는 HTTP를 통한 동적 적응형 스트리밍(DASH)에 따라 스트림을 초기화하는 예시적인 방법을 예시하는 플로우차트이다.
[0021] 도 10은 멀티미디어 콘텐츠의 표현들의 데이터 유닛들(예를 들어, 세그먼트들)에 대한 정보를 리트리브하는 예시적인 방법을 예시하는 플로우차트이다.
[0022] 도 11은 예를 들어, 레이트 재선택을 수행하기 위해 가용 네트워크 대역폭에서의 변화에 적응하는 예시적인 방법을 예시하는 플로우차트이다.
[0023] 일반적으로, 본 개시물은 오디오 및 비디오 데이터와 같은 멀티미디어 데이터를 전송하는 기법들을 설명한다. 본 개시물의 기법들은 HTTP를 통한 동적 적응형 스트리밍(DASH)과 함께 사용될 수도 있다. 본 개시물은 네트워크 스트리밍과 함께 수행될 수도 있는 다양한 기법들을 설명한다. 더욱 상세히 후술하는 바와 같이, 네트워크 스트리밍을 수행하는 다양한 디바이스들은 본 개시물의 기법들을 구현하도록 구성될 수도 있다.
[0024] 멀티미디어 데이터를 스트리밍하는 DASH 및 유사한 기법들에 따르면, (텍스트 오버레이들 또는 다른 데이터를 또한 포함할 수도 있는) 영화 또는 다른 오디오/비디오 콘텐츠와 같은) 멀티미디어 콘텐츠는 다양한 방식들로 그리고 다양한 특징들로 가지고 인코딩될 수도 있다. 콘텐츠 준비 디바이스는 동일한 멀티미디어 콘텐츠의 다중의 표현들을 형성할 수도 있다. 각 표현은 다양한 코딩 및 렌더링 능력들을 갖는 다양한 상이한 클라이언트 디바이스들에 의해 사용가능한 데이터를 제공하기 위해 코딩 및 렌더링 특징들과 같은 특정한 특징들의 세트에 대응할 수도 있다. 더욱이, 다양한 비트레이트들을 갖는 표현들이 대역폭 적응을 허용할 수도 있다. 즉, 클라이언트 디바이스는 현재 이용가능한 대역폭의 양을 결정할 수도 있고 클라이언트 디바이스의 코딩 및 렌더링 능력들에 따라, 가용 대역폭의 양에 기초하여 표현을 선택할 수도 있다.
[0025] 일부 예들에서, 콘텐츠 준비 디바이스는 표현들의 세트가 공통 특징들의 세트를 갖는다는 것을 나타낼 수도 있다. 그 후, 콘텐츠 준비 디바이스는 세트에서의 표현들이 대역폭 적응을 위해 사용될 수 있다는 점에서 세트에서의 표현들이 표현 그룹을 형성한다는 것을 나타낼 수도 있다. 즉, 세트에서의 표현들은 비트레이트가 상이할 수도 있지만, 그렇지 않으면, 동일한 특징들을 실질적으로 공유할 수도 있다. 이러한 방식으로, 클라이언트 디바이스는 멀티미디어 콘텐츠의 표현 그룹들에 대한 공통 특징들의 다양한 세트들을 결정할 수도 있고, 클라이언트 디바이스의 코딩 및 렌더링 능력들에 기초하여 표현 그룹을 선택할 수도 있다. 그 후, 클라이언트 디바이스는 대역폭 가용성에 기초하여 선택된 표현 그룹에서의 표현들 사이에서 적응적으로 스위칭할 수도 있다.
[0026] 본 개시물의 기법들에 따르면, 콘텐츠 준비 디바이스는 멀티미디어 콘텐츠에 대한 데이터를 HTTP 서버 디바이스들 이외의 디바이스들에 제공할 수도 있다. 예를 들어, 콘텐츠 준비 디바이스는 멀티미디어 콘텐츠에 대한 데이터를 브로드캐스트 네트워크 서버 디바이스, DVD들, Blu-Ray 디스크들, 및 플래시 드라이브들과 같은 물리적 컴퓨터 판독가능 저장 매체를 생성하는 디바이스 또는 시스템, 또는 다른 디바이스들에 제공할 수도 있다. 궁극적으로, 콘텐츠 전달 네트워크의 라우터 또는 클라이언트 디바이스와 같은 수신 디바이스는 본 개시물의 기법들을 사용하여 임의의 소스들로부터 데이터를 리트리브할 수도 있다.
[0027] 수신 디바이스는 가용 소스들 중 하나 또는 그 초과의 것으로부터 데이터를 리트리브할 수도 있다. 예를 들어, 수신 디바이스는 소스들 중 어느 것이 특정한 표현을 제공하기 위해 이용가능한지를 결정할 수도 있고, 표현을 가장 효율적으로 제공할 수 있는 소스를 선택할 수도 있다. 이러한 방식으로, 상이한 타입의 다중의 소스들이 리던던시를 서로에 제공할 수도 있어서, 소스들 중 하나가 이용불가능하면, 수신 디바이스는 상이한 소스로부터 멀티미디어 콘텐츠에 여전히 액세스할 수도 있다.
[0028] 대안으로는, 수신 디바이스는 예를 들어, 다른 소스에 의해 리트리브된 데이터로 하나의 소스로부터 리트리브된 데이터를 증강시키기 위해 2개 또는 그 초과의 소스들로부터의 데이터를 실질적으로 동시에 또는 순차적으로 리트리브할 수도 있다. 예를 들어, DVD는 본편 영화(featured presentation)의 상영 이전에, 광고들 또는 예고편들(previews)이 제공된다는 것을 특정할 수도 있다. 광고들 또는 예고편들에 대한 데이터를 DVD 자체에 저장하기 보다는, DVD는 HTTP 서버 디바이스 또는 브로드캐스트 서버 디바이스와 같은 외부 소스로부터 광고들 또는 예고편들에 대한 데이터를 리트리브하는 정보를 포함할 수도 있다. 이러한 방식으로, 광고들 또는 예고편들은 DVD가 언제 재생되는지에 관계없이 비교적 최신으로 유지될 수도 있다. 유사한 기법들이 브로드캐스트 네트워크 송신의 광고들을 추가하거나 변경하기 위해 사용될 수도 있다. 예를 들어, 주요 멀티미디어 콘텐츠가 브로드캐스트 네트워크 송신을 사용하여 전송될 수도 있지만, 광고들은 HTTP 서버 디바이스로부터 리트리브될 수도 있다. 클라이언트 디바이스는, 예를 들어, 사용자가 외부 디바이스와 인구통계적 정보 및/또는 인터넷 브라우징 행위의 공유를 허용하는 승인을 설정할 때 사용자에 대한 인구통계적 정보 및/또는 사용자의 인터넷 브라우징 행위에 기초하여, 클라이언트 디바이스의 사용자에게 타겟팅된 광고들을 리트리브하도록 명령될 수도 있다.
[0029] 다른 예로서, DVD는 특정한 등급을 갖는 표현을 포함할 수도 있다. 등급은 특정한 관객에 대한 콘텐츠 적합성을 설명할 수도 있다. 예를 들어, 미국에서는, 미국 영화 협회가 G, PG, PG-13, R, 및 NC-17을 포함하는 등급들을 정의한다. 다른 예로서, 영국에서는, 영구 영화 분류국(BBFC)이 U, PG, 12A, 12, 15, 18, 및 R18을 포함하는 등급들을 정의한다. 다른 예로서, 중화민국(타이완)에서는, 영화의 카테고리들은 일반 관객 카테고리, 보호 카테고리, 부모 지도 카테고리, 및 제한 카테고리를 포함한다. 일부 경우들에서, DVD의 등급은 현재의 관객에 대해 부적합하거나 바람직하지 않은 것으로 결정될 수도 있다. 그러나, DVD의 콘텐츠는 변경된 콘텐츠가 현재의 관객에 대해 수용가능하도록 DVD의 콘텐츠를 변경하기 위해, 예를 들어, HTTP 스트리밍 또는 브로드캐스트 네트워크 송신을 사용하여 리트리브된 데이터를 사용하여 증강될 수도 있다. 유사한 기법들이 브로드캐스트 네트워크 송신의 멀티미디어 콘텐츠의 등급을 변경하기 위해 사용될 수도 있다.
[0030] 또 다른 예로서, DVD는 2-차원 비디오 콘텐츠를 갖는 표현을 포함할 수도 있다. 사용자는 3-차원 비디오 재생을 원할 수도 있다. 중고 DVD(second DVD)를 구매하기 보다는, 사용자는 2차원 비디오를 시청하는 소망을 표시할 수도 있다. 본 개시물의 기법들을 사용하여, DVD에 포함된 비디오 데이터의 뷰와 스테레오 뷰 쌍(stereo view pair)을 형성할 수 있는 세컨드 뷰(second view)는 3차원 비디오 재생을 생성하기 위해 DVD의 데이터와 실질적으로 동시에 리트리브되고 재생될 수도 있다. 유사한 기법들이 멀티미디어 콘텐츠의 표현의 브로드캐스트 네트워크 송신에 대한 3차원 비디오를 제공하기 위해 사용될 수도 있다. 예를 들어, 스테레오 뷰 쌍을 형성하는 세컨드 뷰는 HTTP 스트리밍을 사용하여 리트리브될 수도 있거나 세컨드 브로드캐스트를 형성할 수도 있다.
[0031] 또 다른 예로서, 데이터의 로컬하게 저장된 버전이 특정한 품질 레벨을 가질 수도 있다. 예를 들어, 데이터의 로컬하게 저장된 버전은 스케일러블 비디오 코딩(SVC) 데이터의 베이스 계층에 대응할 수도 있다. 데이터를 저장하는 클라이언트 디바이스는 상대적으로 제한된 스토리지 용량을 갖는 모바일 디바이스를 포함할 수도 있다. 따라서, 멀티미디어 콘텐츠의 전체 고품질 표현을 저장하기 보다는, 클라이언트 디바이스는 베이스 계층의 카피를 단순히 저장할 수도 있다. 네트워크 접속이 이용가능하면, 클라이언트 디바이스는 베이스 계층에 대응하는 하나 또는 그 초과의 강화 계층들을 요청한다. 그러나, 네트워크 접속이 이용가능하지 않으면, 클라이언트 디바이스는 베이스 계층에 대응하는 데이터를 단순히 디스플레이할 수도 있다.
[0032] 추가 예로서, 브로드캐스트 서버 디바이스는 표현에서 특정한 주파수를 갖는 랜덤 액세스 포인트들(RAPs)을 갖는 멀티미디어 콘텐츠의 표현에 대한 데이터를 브로드캐스팅할 수도 있다. 그러나, 브로드캐스팅된 표현의 데이트를 즉시 리트리브하기 보다는, 클라이언트 디바이스는 HTTP 요청들을 사용하여 서버 디바이스로부터 멀티미디어 콘텐츠의 상이한 표현의 데이터의 리트리브를 초기에 시작할 수도 있다. 상이한 표현으로부터의 충분한 양의 데이터를 버퍼링한 이후에, 클라이언트 디바이스는 브로드캐스트 서버 디바이스에 의해 브로드캐스팅된 표현으로 스위칭할 수도 있다.
[0033] 더욱이, 본 개시물의 기법들은 멀티미디어 콘텐츠의 다른 엘리먼트들을 증강시키기 위해 또한 사용될 수도 있다. 예를 들어, 클라이언트 디바이스는 예를 들어, 브로드캐스트 네트워크 송신 또는 DVD로부터의 비디오 데이터를 리트리브하고, 디코딩하며, 디스플레이하도록 구성될 수도 있다. 클라이언트 디바이스는 예를 들어, 브로드캐스트 네트워크 송신이 클라이언트 디바이스의 사용자에 의해 소망되는 언어로 오디오 데이터를 포함하지 않을 때 상이한 소스로부터 오디오 데이터를 리트리브할 수도 있다. 다른 예로서, 클라이언트 디바이스는 예를 들어, 클로즈드 캡션 텍스트(closed caption text)가 브로드캐스트 네트워크 송신의 표현 데이터에 제공되지 않거나, 클로즈드 캡션 텍스트의 원하는 언어가 브로드캐스트 네트워크 송신에서 이용가능하지 않을 때 상이한 소스로부터 클로즈드 캡션닝을 사용하여 구문 오버레이들을 리트리브하도록 구성될 수도 있다.
[0034] 미디어 콘텐츠의 표현들의 세그먼트들과 같은 비디오 파일들은 ISO 베이스 미디어 파일 포맷, 스케일러블 비디오 코딩(SVC) 파일 포맷, 어드밴스드 비디오 코딩(AVC) 파일 포맷, 3세대 파트너쉽 프로젝트(3GPP) 파일 포맷, 및/또는 멀티뷰 비디오 코딩(MVC) 파일 포맷, 또는 다른 유사한 비디오 파일 포맷들 중 어느 하나에 따라 캡슐화된 비디오 데이터에 따를 수도 있다.
[0035] ISO 베이스 미디어 파일 포맷은 미디어의 상호교환, 관리, 편집, 및 프리젠테이션을 용이하게 하는 플렉시블하고 확장가능한 포맷에서 프리젠테이션에 대한 타이밍된 미디어 정보를 포함하도록 설계된다. ISO 베이스 미디어 파일 포맷(ISO/IEC 14496-12:2004)이 시간 기반 미디어 파일들에 대한 일반 구조를 정의하는 MPEG-4 파트-12에서 특정된다. ISO 베이스 미디어 파일 포맷은 H.264/MPEG-4 AVC 비디오 압축을 지원하기 위해 정의된 AVC 파일 포맷(ISO/IEC 14496-15), 3GPP 파일 포맷, SVC 파일 포맷, 및 MVC 파일 포맷과 같은 패밀리에서 다른 파일 포맷들에 대한 기초로서 사용된다. 3GPP 파일 포맷 및 MVC 파일 포맷은 AVC 파일 포맷의 확장자들이다. ISO 베이스 미디어 파일 포맷은 오디오-시간 프리젠테이션들과 같은 미디어 데이터의 타이밍된 시퀀스들에 대한 타이밍, 구조, 및 미디어 정보를 포함한다. 파일 구조는 객체-지향형일 수도 있다. 파일은 기본 객체들로 매우 간단히 분해될 수 있고 객체의 구조는 그들의 타입으로부터 암시된다.
[0036] ISO 베이스 미디어 파일 포맷(및 그것의 확장자들)에 따르는 파일들은 "박스들"로 불리는 일련의 객체들로서 형성될 수도 있다. ISO 베이스 미디어 파일 포맷에서의 데이터가 박스들에 포함될 수도 있어서, 파일내에 다른 데이터가 포함될 필요가 없으며, 파일내의 박스들 외부에 데이터가 있을 필요가 없다. 이것은 특정한 파일 포맷에 의해 요구되는 임의의 초기 서명을 포함한다. "박스"는 고유 타입 식별자 및 길이에 의해 정의된 객체-지향 빌딩 블록일 수도 있다. 통상적으로, 프리젠테이션은 하나의 파일에 포함되고, 미디어 프리젠테이션이 자체 포함된다. 2개의 영화 컨테이너(영화 박스)가 미디어의 메타데이터를 포함할 수도 있고, 비디오 및 오디오 프레임들이 미디어 데이터 컨테이너에 포함될 수도 있고 다른 파일들내에 있을 수 있다.
[0037] 표현(모션 시퀀스)이 때때로, 세그먼트들로서 칭하는 여러 파일들에 포함될 수도 있다. 타이밍 및 프레이밍(위치 및 사이즈) 정보가 일반적으로 ISO 베이스 미디어 파일내에 있고, 부속 파일들이 임의의 포맷을 본질적으로 사용할 수도 있다. 이러한 프리젠테이션은 프리젠테이션을 포함하는 시스템에 대해 '로컬'일 수도 있거나, 네트워크 또는 다른 스트림 전달 메커니즘을 통해 제공될 수도 있다.
[0038] 옵션의 메타데이터 트랙이, 그 값이 그룹의 다른 멤버들과 상이할 수도 있는 그 트랙이 갖는 "관심 특징들"(예를 들어, 비트 레이트, 스크린 사이즈, 또는 언어)와 각 트랙을 태깅하기 위해 사용될 수 있다. 트랙내의 일부 샘플들은 특수한 특징들을 가질 수도 있거나 개별적으로 식별될 수도 있다. 특징들의 일례가 동기화 포인트(종종 비디오 I-프레임)이다. 이들 포인트들은 각 트랙에서 특수한 테이블에 의해 식별될 수도 있다. 더욱 일반적으로, 트랙 샘플들 사이의 의존성들의 본질이 메타데이터를 사용하여 또한 문서화될 수 있다. 메타데이터는 비디오 트랙과 같이 파일 포맷 샘플들의 시퀀스로서 구성될 수 있다. 이러한 트랙을 메타데이터 트랙이라 칭할 수도 있다. 각 메타데이터 샘플은 메타데이터 스테이트먼트(statement)로서 구성될 수도 있다. 대응하는 파일 포맷 샘플 또는 그것의 구성 샘플들에 관하여 질문될 수도 있는 다양한 질문들에 대응하는 다양한 종류의 스테이트먼트들이 존재한다.
[0039] 미디어가 스트리밍 프로토콜을 통해 전달될 때, 미디어는 파일에서 표현되는 방식으로부터 변환될 필요가 있을 수도 있다. 이것의 일례가, 미디어가 실시간 전송 프로토콜(RTP)을 통해 송신될 때이다. 파일에서, 예를 들어, 비디오의 각 프레임은 파일 포맷 샘플로서 연속적으로 저장된다. RTP에서, 사용된 코덱에 특정된 패킷화 규칙들이 이들 프레임들을 RTP 패킷들에 배치하기 위해 준수되어야 한다. 스트리밍 서버는 실행시에 이러한 패킷화를 계산하도록 구성될 수도 있다. 그러나, 스트리밍 서버들의 보조에 대한 지원이 있다.
[0040] 본 개시물의 기법들은 예를 들어, HTTP를 통한 동적 적응형 스트리밍(DASH)에 따라 HTTP 스트리밍과 같은 네트워크 스트리밍 프로토콜들에 적용가능할 수도 있다. HTTP 스트리밍에서, 빈번하게 사용된 동작들을 GET 및 부분 GET를 포함한다. GET 동작은 소정의 URL(uniform resource locator) 또는 다른 식별자, 예를 들어, URI와 연관된 전체 파일을 리트리브한다. 부분 GET 동작은 입력 파라미터로서 바이트 범위를 수신하고, 수신된 바이트 범위에 대응하는 파일의 연속하는 다수의 바이트들을 리트리브한다. 따라서, 영화 프래그먼트들은, 부분 GET 동작이 하나 또는 그 초과의 개별 영화 프래그먼트들을 얻을 수 있기 때문에 HTTP 스트리밍에 대해 제공될 수도 있다. 영화 프래그먼트에서, 상이한 트랙들의 여러 트랙 프래그먼트들이 존재할 수 있다는 것에 유의한다. HTTP 스트리밍에서, 미디어 표현은 클라이언트에 액세스가능한 데이터의 구조화된 집합일 수도 있다. 클라이언트는 스트리밍 서비스를 사용자에게 제공하기 위해 미디어 데이터 정보를 요청하고 다운로딩할 수도 있다.
[0041] HTTP 스트리밍을 사용하는 스트리밍 3GPP 데이터의 예에서, 멀티미디어 콘텐츠의 비디오 및/또는 오디오 데이터에 대한 다중의 표현들이 존재할 수도 있다. 이러한 표현들의 매니페스트가 미디어 프리젠테이션 디스크립션(MPD) 데이터 구조에서 정의될 수도 있다. 미디어 표현은 HTTP 스트리밍 클라이언트 디바이스에 액세스가능한 데이터의 구조화된 집합에 대응할 수도 있다. HTTP 스트리밍 클라이언트 디바이스는 스트리밍 서비스를 클라이언트 디바이스의 사용자에게 제공하기 위해 미디어 데이터 정보를 요청하고 다운로딩할 수도 있다. 미디어 표현은 MPD의 업데이트들을 포함할 수도 있는 MPD 데이터 구조에서 설명될 수도 있다.
[0042] 멀티미디어 콘텐츠가 하나 또는 그 초과의 기간들의 시퀀스를 포함할 수도 있다. 기간들은 MPD에서 기간 엘리먼트에 의해 정의될 수도 있다. 각 기간은 MPD에서 속성 시작을 가질 수도 있다. MPD는 각 기간에 대한 시작 속성 및 availableStartTime 속성을 포함할 수도 있다. 라이브 서비스들에 대해, 기간의 시작 속성과 MPD 속성 availableStartTime의 합이 UTC 포맷, 특히, 대응하는 기간에서 각 표현의 제 1 미디어 세그먼트에서 기간의 가용성 시간을 특정할 수도 있다. 온-디맨드 서비스들에 대해, 제 1 기간의 시작 속성은 0일 수도 있다. 임의의 다른 기간에 대해, 시작 속성은 시작 기간의 시작 시간에 대한 대응하는 기간의 시작 시간 사이의 시간 오프셋을 특정할 수도 있다. 각 기간은 다음 기간의 시작까지, 또는 최종 기간의 경우에는 미디어 프리젠테이션의 종료까지 연장할 수도 있다. 기간 시작 시간들은 정확할 수도 있다. 이들은 모든 이전의 기간들의 미디어의 플레이를 발생시키는 실제 타이밍을 반영할 수도 있다.
[0043] 각 기간이 동일한 미디어 콘텐츠에 대한 하나 또는 그 초과의 표현들을 포함할 수도 있다. 표현은 오디오 또는 비디오 데이터의 다수의 대안의 인코딩된 버전들 중 하나일 수도 있다. 표현들은 인코딩 타입들과 같은 다양한 특징들, 예를 들어, 비트레이트, 분해능, 및/또는 비디오 데이터 및 비트레이트에 대한 코덱, 언어, 및/또는 오디오 데이터에 대한 코덱에 의해 상이할 수도 있다. 용어 표현은 멀티미디어 콘텐츠의 특정한 기간에 대응하고 특정한 방식으로 인코딩된 인코딩 오디오 또는 비디오 데이터의 섹션을 칭하기 위해 사용될 수도 있다.
[0044] 특정한 기간의 표현들이 MPD에서 그룹 속성에 의해 표시될 수도 있는 그룹에 할당될 수도 있다. 동일한 그룹에서의 표현들은 서로에 대해 대안으로 일반적으로 고려된다. 예를 들어, 특정한 기간에 대한 비디오 데이터의 각 표현이 동일한 그룹에 할당될 수도 있어서, 대응하는 기간 동안 멀티미디어 콘텐츠의 비디오 데이터를 디스플레이하기 위해 디코딩하는 임의의 표현들이 선택될 수도 있다. 일 기간내의 미디어 콘텐츠는 만약 존재하면, 그룹 0으로부터의 하나의 표현, 또는 일부 예들에서는 각 넌-제로 그룹으로부터 많아야 하나의 표현의 조합에 의해 표현될 수도 있다. 기간의 각 표현에 대한 타이밍 데이터는 기간의 시작 시간에 대해 표현될 수도 있다.
[0045] 표현은 하나 또는 그 초과의 세그먼트들을 포함할 수도 있다. 각 표현은 초기화 세그먼트를 포함할 수도 있거나, 표현의 각 세그먼트는 셀프-초기화될 수도 있다. 존재할 때, 초기화 세그먼트는 표현에 액세스하는 초기화 정보를 포함할 수도 있다. 일반적으로, 초기화 세그먼트는 미디어 데이터를 포함하지 않는다. 세그먼트는 URL(uniform resource locator)와 같은 식별자에 의해 고유하게 참조될 수도 있다. MPD는 각 세그먼트에 대한 식별자들을 제공할 수도 있다. 일부 예들에서, MPD는 URL 또는 URI에 의해 액세스가능한 파일내의 세그먼트에 대한 데이터에 대응할 수도 있는 범위 속성의 형태의 바이트 범위들을 또한 제공할 수도 있다.
[0046] 각 표현은 하나 또는 그 초과의 미디어 컴포넌트들을 또한 포함할 수도 있고, 여기서, 각 미디어 컴포넌트는 (예를 들어, 클로즈드 캡셔닝에 대한) 오디오, 비디오, 및/또는 타이밍된 텍스트와 같은 하나의 개별 미디어 타입의 인코딩된 버전에 대응할 수도 있다. 미디어 컴포넌트들은 하나의 표현내의 연속 미디어 세그먼트들의 경계들에 걸쳐 시간 연속적일 수도 있다.
[0047] 도 1은 다양한 소스들로부터의 미디어 데이터를 스트리밍하는 기법들을 구현하는 예시적인 시스템(10)을 예시하는 블록도이다. 이러한 예에서, 시스템(10)은 콘텐츠 준비 디바이스(20), 서버 디바이스(60), 브로드캐스트 서버 디바이스(62), 물리적 매체 생성 설비(64), 네트워크(14), 및 클라이언트 디바이스(40A)를 포함한다. 클라이언트 디바이스(40A) 및 서버 디바이스(60)는 인터넷을 포함할 수도 있는 네트워크(14)에 의해 통신가능하게 커플링된다. 일부 예들에서, 콘텐츠 준비 디바이스(20), 서버 디바이스(60), 브로드캐스트 서버 디바이스(62), 및 물리적 매체 생성 설비(64)는 또한 네트워크(14) 또는 다른 네트워크에 의해 커플링될 수도 있거나, 직접적으로 통신가능하게 커플링될 수도 있다. 일부 예들에서, 콘텐츠 준비 디바이스(20), 서버 디바이스(60), 브로드캐스트 서버 디바이스(62), 및 물리적 매체 생성 설비(64) 중 일부 또는 모두는 동일한 디바이스 또는 설비를 포함할 수도 있다. 더욱이, 콘텐츠 준비 디바이스(20)는 모든 예들에서 서버 디바이스(60), 브로드캐스트 서버 디바이스(62), 및/또는 물리적 매체 생성 설비(64)에 반드시 통신가능하게 커플링되지 않지만, 서버 디바이스(60), 브로드캐스트 서버 디바이스(62), 및/또는 물리적 매체 생성 설비(64) 중 일부 또는 모두에 의해 판독되는 매체를 분리하기 위해 멀티미디어 콘텐츠를 저장할 수도 있다.
[0048] 도 1의 예에서, 콘텐츠 준비 디바이스(20)는 오디오 소스(22) 및 비디오 소스(24)를 포함한다. 오디오 소스(22)는 예를 들어, 오디오 인코더(26)에 의해 인코딩될 캡처된 오디오 데이터를 나타내는 전기 신호들을 생성하는 마이크로폰을 포함할 수도 있다. 대안으로, 오디오 소스(22)는 이전에 기록된 오디오 데이터를 저장하는 저장 매체, 컴퓨터화된 합성기와 같은 오디오 데이터 생성기, 또는 오디오 데이터의 임의의 다른 소스를 포함할 수도 있다. 비디오 소스(24)는 비디오 인코더(28)에 의해 인코딩될 비디오 데이터를 생성하는 비디오 카메라, 이전에 기록된 비디오 데이터로 인코딩된 저장 매체, 컴퓨터 그래픽 소스와 같은 비디오 데이터 생성 유닛, 또는 비디오 데이터의 임의의 다른 소스를 포함할 수도 있다.
[0049] 미가공 오디오 및 비디오 데이터는 아날로그 또는 디지털 데이터를 포함할 수도 있다. 아날로그 데이터는 오디오 인코더(26) 및/또는 비디오 인코더(28)에 의해 인코딩되기 이전에 디지털화될 수도 있다. 오디오 소스(22)는 대화 참여자가 대화하는 동안 대화 참여자로부터 오디오 데이터를 획득할 수도 있고, 비디오 소스(24)는 대화 참여자의 비디오 데이터를 동시에 획득할 수도 있다. 다른 예들에서, 오디오 소스(22)는 저장된 오디오 데이터를 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수도 있고, 비디오 소스(24)는 저장된 비디오 데이터를 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수도 있다. 이러한 방식으로, 본 개시물에 설명된 기법들은 라이브, 스트리밍, 실시간 오디오 및 비디오 데이터에 적용될 수도 있거나 보존되고 사전 기록된 오디오 및 비디오 데이터에 적용될 수도 있다.
[0050] 비디오 프레임들에 대응하는 오디오 프레임들은 일반적으로, 비디오 프레임들내에 포함되는 비디오 소스(24)에 의해 캡처된 비디오 데이터와 동시에 오디오 소스(220에 의해 캡처된 오디오 데이터를 포함하는 오디오 프레임들이다. 예를 들어, 대화 참여자가 대화함으로써 오디오 데이터를 일반적으로 생성하는 동안, 오디오 소스(22)는 오디오 데이터를 캡처하고, 비디오 소스(24)는 대화 참여자의 비디오 데이터를 동시에, 즉, 오디오 소스(22)가 오디오 데이터를 캡처하는 동안 캡처한다. 따라서, 오디오 프레임은 하나 또는 그 초과의 특정한 비디오 프레임들에 일시적으로 대응할 수도 있다. 따라서, 비디오 프레임에 대응하는 오디오 프레임은 오디오 데이터 및 비디오 데이터가 동시에 캡처되고, 오디오 프레임 및 비디오 프레임이 동시에 캡처된 오디오 데이터 및 비디오 데이터를 각각 포함하는 상황에 일반적으로 대응한다.
[0051] 일부 예들에서, 오디오 인코더(26)는 인코딩된 오디오 프레임에 대한 오디오 데이터가 기록된 시간을 나타내는 각 인코딩된 오디오 프레임에서의 타임스탬프를 인코딩할 수도 있고, 유사하게는, 비디오 인코더(28)는 인코딩된 비디오 프레임에 대한 비디오 데이터가 기록된 시간을 나타내는 각 인코딩된 비디오 프레임에서의 타임스탬프를 인코딩할 수도 있다. 이러한 예들에서, 비디오 프레임에 대응하는 오디오 프레임은 타임스탬프를 포함하는 오디오 프레임 및 동일한 타임스탬프를 포함하는 비디오 프레임을 포함할 수도 있다. 콘텐츠 준비 디바이스(20)는 오디오 인코더(26) 및/또는 비디오 인코더(28)가 타임스탬프들을 생성할 수도 있거나, 오디오 소스(22) 및 비디오 소스(24)가 오디오 및 비디오 각각을 타임스탬프와 연관시키기 위해 사용할 수도 있는 내부 클록을 포함할 수도 있다.
[0052] 일부 예들에서, 오디오 소스(22)는 오디오 데이터가 기록되는 시간에 대응하여 데이터를 오디오 인코더(26)에 전송할 수도 있고, 비디오 소스(24)는 비디오 데이터가 기록되는 시간에 대응하여 데이터를 비디오 인코더(28)에 전송할 수도 있다. 일부 예들에서, 오디오 인코더(26)는 오디오 데이터가 기록되는 절대 시간을 반드시 나타내지는 않지만 인코딩된 오디오 데이터의 상대 시간 순서를 나타내기 위해 인코딩된 오디오 데이터에서의 시퀀스 식별자를 인코딩할 수도 있고, 유사하게는, 비디오 인코더(28)는 인코딩된 비디오 데이터의 상대 시간 순서를 나타내기 위해 시퀀스 식별자들을 또한 사용할 수도 있다. 유사하게는, 일부 예들에서, 시퀀스 식별자들은 타임스탬프와 매핑될 수도 있거나, 그렇지 않으면 상관될 수도 있다.
[0053] 오디오 인코더(26)는 인코딩된 오디오 데이터의 스트림을 일반적으로 생성하고, 비디오 인코더(28)는 인코딩된 비디오 데이터의 스트림을 생성한다. (오디오 또는 비디오이든) 데이터의 각 개별 스트림을 기본 스트림(elementary stream)이라 칭할 수도 있다. 기본 스트림은 표현의 단일의 디지털적으로 코딩된(가능하면 압축된) 컴포넌트이다. 예를 들어, 표현의 코딩된 비디오 또는 오디오 부분이 기본 스트림일 수 있다. 기본 스트림은 비디오 파일내에서 캡슐화되기 이전에 패킷화된 기본 스트림(PES)으로 변환될 수도 있다. 동일한 표현내에서, 스트림 ID가 하나의 기본 스트림에 속하는 PES-패킷들을 다른 것으로부터 구별하기 위해 사용될 수도 있다. 기본 스트림의 데이터의 기본 단위가 패킷화된 기본 스트림(PES) 패킷이다. 따라서, 코딩된 데이터는 일반적으로 기본 비디오 스트림들에 대응한다. 유사하게, 오디오 데이터는 하나 또는 그 초과의 각각의 기본 스트림들에 대응한다.
[0054] 도 1의 예에서, 콘텐츠 준비 디바이스(20)의 캡슐화 유닛(30)이 코딩된 비디오 데이터를 포함하는 기본 스트림들을 비디오 인코더(28)로부터 수신하고 코딩된 오디오 데이터를 포함하는 기본 스트림들을 오디오 인코더(26)로부터 수신한다. 일부 예들에서, 비디오 인코더(28) 및 오디오 인코더(26)는 인코딩된 데이터로부터 PES 패킷들을 형성하기 위한 패킷화기들(packetizers)을 각각 포함할 수도 있다. 다른 예들에서, 비디오 인코더(28) 및 오디오 인코더(26)는 인코딩된 데이터로부터 PES 패킷들을 형성하기 위한 각각의 패킷화기들과 각각 인터페이싱할 수도 있다. 또 다른 예들에서, 캡슐화 유닛(30)은 인코딩된 오디오 및 비디오 데이터로부터 PES 패킷들을 포함하기 위한 패킷화기들을 포함할 수도 있다.
[0055] 비디오 인코더(28)는 다양한 비트레이트들에서 그리고 픽셀 분해능들, 프레임 레이트들, 다양한 코딩 방식들에 대한 적합성(conformance), 다양한 코딩 방식들에 대한 다양한 프로파일들 및/또는 프로파일들의 레벨들에 대한 적합성, (예를 들어, 2차원 또는 3차원 재생을 위한) 하나 또는 다중의 뷰들을 갖는 표현들과 같은 다양한 특징들, 또는 다른 이러한 특징들을 갖는 멀티미디어 콘텐츠의 상이한 표현들을 생성하기 위해 다양한 방식들로 멀티미디어 콘텐츠의 비디오 데이터를 인코딩할 수도 있다. 본 개시물에 사용되는 바와 같이, 표현은 오디오 데이터 및 비디오 데이터, 예를 들어, 하나 또는 그 초과의 오디오 기본 스트림 및 하나 또는 그 초과의 비디오 기본 스트림들의 조합을 포함할 수도 있다. 각 PES 패킷은 PES 패킷이 속하는 기본 스트림을 식별하는 stream_id를 포함할 수도 있다. 캡슐화 유닛(30)은 기본 스트림들을 다양한 표현들의 비디오 파일들로 어셈블링하는데 책임이 있다.
[0056] 캡슐화 유닛(30)은 오디오 인코더(26) 및 비디오 인코더(28)로부터 표현의 기본 스트림들에 대한 PES 패킷들을 수신하고, PES 패킷들로부터 대응하는 네트워크 추상 계층(network abstraction layer; NAL) 유닛들을 형성한다. H.264/AVC (어드밴스드 비디오 코딩)의 예에서, 코딩된 비디오 세그먼트들은 비디오 화상 전화, 스토리지 브로드캐스트, 또는 스트리밍과 같은 애플리케이션들을 어드레싱하는 "네트워크-친화형(network-friendly)" 비디오 표현을 제공하는 NAL 유닛들로 구성된다. NAL 유닛들은 비디코 코딩 계층(VCL) NAL 유닛들 및 넌-VCL NAL 유닛들로서 카테고리화될 수 있다. VCL 유닛들은 코어 압축 엔진을 포함할 수도 있고 블록, 매크로블록, 및/또는 슬라이스 레벨 데이터를 포함할 수도 있다. 다른 NAL 유닛들은 넌-VCL NAL 유닛들일 수도 있다. 일부 예들에서, 프라이머리 코딩된 픽처로서 일반적으로 제공된 일 시간 인스턴스에서 코딩된 픽처가 하나 또는 그 초과의 유닛들을 포함할 수도 있는 액세스 유닛에 포함될 수도 있다.
[0057] 넌-VCL NAL 유닛들은 다른 것들 중에서 파라미터 세트 NAL 및 SEI NAL 유닛들을 포함할 수도 있다. 파라미터 세트들은 (시퀀스 파라미터 세트(SPS)에서) 시퀀스-레벨 헤더 정보 및 (픽처 파라미터 세트(PPS)에서) 드물게 변하는 픽처-레벨 헤더 정보를 포함할 수도 있다. 파라미터 세트들(예를 들어, PPS 및 SPS)로, 드물게 변하는 정보는 각 시퀀스 또는 픽처에 대해 반복될 필요가 없고, 따라서, 코딩 효율이 향상될 수도 있다. 또한, 파라미터 세트들의 사용은 중요 헤더 정보의 대역외 송신을 가능하게 할 수도 있어서, 에러 내성(error resilience)을 위한 리던던트 송신에 대한 필요성을 회피한다. 대역외 송신의 예들에서, 파라미터 세트 NAL 유닛들은 SEI NAL 유닛들과 같은 NAL 유닛과는 상이한 채널상에서 송신될 수도 있다.
[0058] SEI(Supplemental Enhancement Information)는 VCL NAL 유닛들로부터 코딩된 픽처 샘플들을 디코딩하는데 필요하지 않은 정보를 포함할 수도 있지만, 디코딩, 디스플레이, 에러 내성, 및 다른 목적들에 관한 프로세스들을 보조할 수도 있다. SEI 메시지들은 넌-VCL NAL 유닛들에 포함될 수도 있다. SEI 메시지들은 일부 표준 사양들의 표준 부분이어서, 표준 컴플라이언트 디코더 구현에 대해 항상 의무적이지는 않다. SEI 메시지들은 시퀀스 레벨 SEI 메시지들 또는 픽처 레벨 SEI 메시지들일 수도 있다. 일부 시퀀스 레벨 정보는 SVC의 예에서 스케일러빌리티(scalability) 정보 SEI 메시지들 및 MVC에서 뷰 스케일러빌리티 정보 SEI 메시지들과 같은 SEI 메시지들에 포함될 수도 있다. 이들 예시적인 SEI 메시지들은 예를 들어, 동작 포인트들 및 동작 포인트들의 특징들의 추출시에 정보를 전달할 수도 있다. 또한, 캡슐화 유닛(30)은 표현들의 특징들을 기술하는 미디어 프리젠테이션 디스크립터(\MPD)와 같은 매니페스트 파일을 형성할 수도 있다. 캡슐화 유닛(30)은 확장가능 마크업 언어(XML)에 따라 MPD를 포맷팅할 수도 있다.
[0059] 캡슐화 유닛(30)은 매니페스트 파일(예를 들어, MPD)에 따라, 멀티미디어 콘텐츠의 하나 또는 그 초과의 표현들에 대한 데이터를 출력 인터페이스들(32)에 제공할 수도 있다. 출력 인터페이스들(32)은 유니버셜 시리얼 버스(USB) 인터페이스, CD 또는 DVD 라이터 또는 버너, 자기 또는 플래시 저장 매체에 대한 인터페이스, 또는 미디어 데이터를 저장하거나 송신하는 다른 인터페이스들과 같은, 저장 매체에 기록을 위한 네트워크 인터페이스 또는 인터페이스를 포함할 수도 있다. 캡슐화 유닛(30)은 네트워크 송신 또는 저장 매체를 통해 서버 디바이스(60), 브로드캐스트 서버 디바이스(62), 및/또는 물리적 매체 생성 설비(64)에 데이터를 전송할 수도 있는 출력 인터페이스(32)에 멀티미디어 콘텐츠의 표현들 각각의 데이터를 제공할 수도 있다.
[0060] MPD는 예를 들어, 추가 또는 대안의 멀티미디어 데이터에 대한 MPD 업데이트, MPD 확장, 또는 외부 기간의 외부 위치, 예를 들어, 서버 디바이스(60)에 의해 호스팅된 네트워크 위치를 지칭할 수도 있다. 예를 들어, 물리적 매체 생성 설비(64)에 의해 생성된 물리적 매체에 저장되고, 브로드캐스트 서버 디바이스(62)에 의해 송신되거나, 다른 소스에 의해 제공된 멀티미디어 데이터는 프라이머리 멀티미디어 데이터에 대응할 수도 있다. 외부 기간은 프라이머리 멀티미디어 데이터를 강화하고, 변경하고, 대체하거나 그렇지 않으면 증강시키기 위해 사용될 수도 있는 대안의 소스의 데이터에 대응할 수도 있다. 더욱 상세히 후술하는 바와 같이, 외부 주기는 광고 멀티미디어 데이터 또는 다른 추가의 멀티미디어 데이터, 예를 들어, 저장된 멀티미디어 데이터의 등급을 적응시키거나 다른 대안의 콘텐츠(예를 들어, 대안의 인코딩 또는 디렉터스 컷(director’s cut))를 제공하는 대체 멀티미디어 데이터를 포함할 수도 있다.
[0061] 외부 기간은 확장(extensions) 또는 강화(enhancements)를 프라이머리 멀티미디어 데이터에 추가로 또는 대안으로 제공할 수도 있다. 예를 들어, 스케일러블 비디오 코딩(SVC)의 맥락에서, 프라이머리 멀티미디어 데이터는 SVC의 베이스 계층에 대응할 수도 있고, 외부 기간은 베이스 계층에 대응하는 강화 계층에 대한 데이터를 포함할 수도 있다. 다른 예로서, 멀티뷰 비디오 코딩(MVC)의 맥락에서, 프라이머리 멀티미디어 데이터는 하나 또는 그 초과의 뷰들을 포함할 수도 있고, 외부 기간은 하나 또는 그 초과의 추가의 뷰들에 대한 데이터를 포함할 수도 있다. 대안으로는, 프라이머리 멀티미디어 데이터는 적어도 하나의 뷰에 대한 데이터를 포함할 수도 있고, 외부 기간은 프라이머리 멀티미디어 데이터의 뷰에 대응하는 깊이 맵에 대한 데이터를 포함할 수도 있다.
[0062] 이러한 방식에서, 콘텐츠 준비 디바이스(20)는 DASH에 따르는 멀티미디어 콘텐츠를 준비할 수도 있고, 데이터를 전송하거나 그렇지 않으면 출력할 수도 있는 다른 소스들 중에서, 서버 디바이스(60), 브로드캐스트 서버 디바이스(62), 및 물리적 매체 생성 설비(64)에 멀티미디어 콘텐츠의 표현들에 대한 데이터를 제공할 수도 있다. 그에 따라, 더욱 상세히 후술하는 바와 같이, HTTP 서버들(예를 들어, 서버 디바이스(60)) 이외의 소스들에 의해 출력된 데이터는 DASH를 따를 수도 있다. DASH의 기법들이 HTTP를 구현하는 디바이스들에 의해 일반적으로 수행되지만, 본 개시물은 클라이언트 디바이스(40A)와 같은 클라이언트 디바이스가 DASH에 따르는 멀티미디어 데이터를 리트리브할 수도 있는 HTTP 서버들 이외의 소스들을 제공하는 기법들을 제공한다.
[0063] 도 1의 예에서, 서버 디바이스(60)는 클라이언트 디바이스(40A)와 같은 클라이언트 디바이스로부터 HTTP Get 및 부분 Get 요청들을 수신하고, 요청된 데이터를 요청 클라이언트 디바이스에게 제공하는 HTTP/1.1을 구현할 수도 있다. 이러한 방식으로, 서버 디바이스(60)는 유니캐스트 서비스를 클라이언트 디바이스(40A)와 같은 하나 또는 그 초과의 클라이언트 디바이스들에게 제공할 수도 있다. 서버 디바이스(60)로부터 데이터를 리트리브하기 위해, 클라이언트 디바이스(40A)는 HTTP Get 또는 부분 Get 요청을 서버 디바이스(60)에게 이슈할 수도 있다. 인터페이스들(54)은 서버 디바이스(60)와 통신하는 HTTP 스택을 구현하는 네트워크 인터페이스 카드(NIC)를 포함할 수도 있다. 인터페이스들(54)의 NIC들은 유선 NIC들, 하나 또는 그 초과의 IEEE 802.11 프로토콜들과 같은 무선 프로토콜들을 구현하는 무선 NIC들, 및/또는 셀룰러 패킷 무선 인터페이스를 포함할 수도 있다.
[0064] 브로드캐스트 서버 디바이스(62)는 미디어 데이터를 브로드캐스팅하기 위해 클라이언트 디바이스(40A)와 같은 하나 또는 그 초과의 클라이언트 디바이스들에 패킷들을 전송할 수도 있다. 예를 들어, 브로드캐스트 서버 디바이스(62)는 브로드캐스트 또는 멀티캐스트를 사용하여 클라이언트 디바이스(40A)와 같은 하나 또는 그 초과의 클라이언트 디바이스들에 멀티미디어 데이터를 전달하는 eMBMS(Evolved Multimedia Broadcast Multicast Service)를 구현할 수도 있다. 이러한 방식으로, 클라이언트 디바이스(40A)는 eMBMS를 사용하여 DASH에 따르는 멀티미디어 데이터를 수신할 수도 있다. 대안으로는, 브로드캐스트 서버 디바이스(62)는 미디어 데이터를 클라이언트 디바이스(40A)와 같은 하나 또는 그 초과의 클라이언트 디바이스들에게 전송하기 위해 인터넷 프로토콜(IP) 멀티캐스트를 구현할 수도 있다. 이러한 방식으로, 브로드캐스트 서버 디바이스(62)는 DASH에 따르는 멀티미디어 데이터가 리트리브될 수도 있는 HTTP 서버 이외의 소스의 예를 표현한다. 브로드캐스트 서버 디바이스(62)로부터 멀티캐스트 데이터를 리트리브하기 위해, 클라이언트 디바이스(40A)는 예를 들어, 인터넷 그룹 관리 프로토콜(IGMP)에 따라, 멀티캐스트와 연관된 멀티미디어 그룹 어드레스를 결정하고, IP 멀티캐스트 그룹 어드레스를 조인할 수도 있다. 인터페이스들(54)은 eMBMS를 구현하는 네트워크 인터페이스 카드(NIC), 및/또는 브로드캐스트 서버 디바이스(62)와 연관된 IP 멀티캐스트 그룹을 조인하기 위해 IP 스택을 구현하는 NIC를 포함할 수도 있다.
[0065] 물리적 매체 생성 설비(64)는 멀티미디어 데이터를 저장하기 위한 DVD들, Blu-ray 디스크들, 플래시 드라이브들, 또는 다른 물리적 매체와 같은 물리적 매체를 생성할 수도 있다. 저장 매체는 발송되어 클라이언트 디바이스(40A)의 물리적 위치에 궁극적으로 도달할 수도 있다. 상기 논의한 바와 같이, 물리적 매체 생성 설비(64)가 물리적 매체에 저장한 멀티미디어 데이터는 DASH에 따라 포맷팅될 수도 있다. 예를 들어, 물리적 매체는 미디어 프리젠테이션 디스크립션(MPD) 또는 다른 매니페스트 파일을 포함할 수도 있다. 이러한 방식으로, 물리적 매체 생성 설비(64)에 의해 생성된 물리적 매체는 DASH에 따르는 멀티미디어 데이터가 리트리브될 수도 있는 HTTP 서버 이외의 소스의 예를 표현한다. 클라이언트 디바이스(40A)의 사용자는 예를 들어, 디스크를 대응하는 광학 판독기에 삽입하거나 플래시 드라이브를 유니버셜 시리얼 버스(USB) 포트에 접속함으로써 물리적 매체를 클라이언트 디바이스(40A)에 커플링할 수도 있고, 이들 중 하나 또는 양자는 클라이언트 디바이스(40A)의 인터페이스들(54)내에 포함될 수도 있다.
[0066] 도 1의 예에서, 클라이언트 디바이스(40A)는 멀티-소스 리트리벌 유닛(50A) 및 인터페이스들(54)을 포함한다. 상기 논의한 바와 같이, 인터페이스들(54)은 서비스 디바이스(60), 브로드캐스트 서버 디바이스(62), 물리적 매체 생성 설비(64)에 의해 생성된 물리적 저장 매체, 또는 다른 소스들 중 어느 하나 또는 모두로부터 멀티미디어 데이터를 리트리브하도록 구성될 수도 있다. 예를 들어, 인터페이스들(54)은 무선 텔레비전 브로드캐스트 신호들을 수신하는 튜너 카드를 추가로 또는 대안으로 포함할 수도 있다.
[0067] 멀티-소스 리트리벌 유닛(50A)은 멀티미디어 데이터를 리트리브할 뿐만 아니라 멀티미디어 콘텐츠의 하나 또는 그 초과의 표현들을 선택하기 위한 하나 또는 그 초과의 소스들을 결정하도록 일반적으로 구성될 수도 있다. 예를 들어, 멀티-소스 리트리벌 유닛(50A)은 비디오 디코더(48)의 디코딩 능력들을 결정하고 비디오 출력(44)의 능력들을 렌더링하기 위해 클라이언트 디바이스(40A)의 구성 데이터(미도시)를 리트리브할 수도 있다. 구성 데이터는 클라이언트 디바이스(40A)의 사용자에 의해 선택된 언어 선호도, 클라이언트 디바이스(40A)의 사용자에 의해 설정된 깊이 선호도들에 대응하는 하나 또는 그 초과의 카메라 원근들(perspectives), 및/또는 클라이언트 디바이스(40A)의 사용자에 의해 선택된 등급 선호도 중 어느 하나 또는 모두를 또한 포함할 수도 있다. 멀티-소스 리트리벌 유닛(50A)은 클라이언트 디바이스(40A)의 하나 또는 그 초과의 프로세서들 또는 프로세싱 유닛들(미도시)에 의해 실행된 소프트웨어 명령들에 대응할 수도 있다. 일부 예들에서, 멀티-소스 리트리벌 유닛(50A)에 관하여 설명한 기능 모두 또는 부분들은 하드웨어로, 또는 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합으로 구현될 수도 있고, 여기서, 필수 하드웨어가 소프트웨어 또는 펌웨어에 대한 명령들을 실행하기 위해 제공될 수도 있다.
[0068] 멀티-소스 리트리벌 유닛(50A)은 클라이언트 디바이스(40A)의 디코딩 및 렌더링 능력들을 멀티미디어 콘텐츠에 대한 (미디어 프리젠테이션 디스크립션(MPD) 파일과 같은) 매니페스트 파일의 정보에 의해 표시된 멀티미디어 콘텐츠의 표현들의 특징들에 비교할 수도 있다. 멀티-소스 리트리벌 유닛(50A)은 멀티미디어 콘텐츠의 표현들의 특징들을 결정하기 위해 매니페스트 파일을 초기에 리트리브할 수도 있다. 예를 들어, 멀티-소스 리트리벌 유닛(50A)은 하나 또는 그 초과의 적응 세트들의 특징들을 설명할 수도 있는 매니페스트 파일을 요청할 수도 있다. 매니페스트 파일은 멀티미디어 콘텐츠에 대한 데이터가 이용가능한 소스들을 추가로 설명할 수도 있다. 추가로, 개별 데이터 구조가 멀티미디어 콘텐츠에 대한 데이터가 입수가능한 소스들의 표시들을 제공할 수도 있다.
[0069] 멀티-소스 리트리벌 유닛(50A)은 클라이언트 디바이스(40A)의 코딩 및 렌더링 능력들에 의해 충족될 수 있는 특징들을 갖는 멀티미디어 콘텐츠의 표현들의 서브세트(예를 들어, 적응 세트)를 선택할 수도 있다. 그 후, 멀티-소스 리트리벌 유닛(50A)은 적응 세트에서 표현들에 대한 비트레이트들을 결정하고, HTTP 스트리밍을 사용하여 데이터를 리트리브하기 위해 현재 이용가능한 네트워크 대역폭의 양을 결정하며, 네트워크 대역폭에 의해 충족될 수 있는 비트레이트를 갖는 표현들 중 하나로부터 세그먼트들을 리트리브할 수도 있다. 대안으로는, 멀티-소스 리트리벌 유닛(50A)은 브로드캐스트 서버 디바이스(62) 또는 로컬 스토리지, 예를 들어, 물리적 매체 생성 설비(64)에 의해 생성된 플래시 드라이브, DVD, 또는 Blu-ray 디스크로부터 멀티미디어 콘텐츠에 대한 데이터를 리트리브할지 결정할 수도 있다.
[0070] 멀티-소스 리트리벌 유닛(50A)은 서버 디바이스(60) 및 브로드캐스트 서버 디바이스(62)와 같은 특정 소스들과의 통신이 이용가능한지를 결정하기 위해 인터페이스들(54)과 통신할 수도 있다. 유사하게는, 멀티-소스 리트리벌 유닛(50A)은 특정한 표현들이 입수가능한 소스들을 결정하도록 구성될 수도 있다. 본 개시물의 기법들에 따르면, 멀티-소스 리트리벌 유닛(50A)은 하나 또는 그 초과의 소스들로부터의 멀티미디어 콘텐츠의 하나 또는 그 초과의 표현들로부터 데이터를 리트리브하도록 구성될 수도 있고, 여기서, 소스들은 상이한 방식들로, 예를 들어, 서로 상이한 기법들 또는 상이한 프로토콜들을 사용하여 데이터를 클라이언트 디바이스(40A)에 제공할 수도 있다.
[0071] 멀티-소스 리트리벌 유닛(50A)은 네트워크 대역폭의 가용성의 변동에 응답하여 네트워크(14)를 통해 데이터의 리트리브를 적응시키기 위해 이들 기법들을 더 사용할 수도 있다. 일반적으로, 더 높은 비트레이트 표현들이 더 높은 품질의 비디오 재생을 야기할 수도 있지만, 더 낮은 비트레이트 표현들은 이용가능한 네트워크 대역폭이 감소할 때 충분한 품질의 비디오 재생을 제공할 수도 있다. 이에 따라, 이용가능한 네트워크 대역폭이 상대적으로 높은 경우에, 멀티-소스 리트리벌 유닛(50A)은 상대적으로 높은 비트레이트 표현들로부터 데이터를 리트리브할 수도 있는 반면에, 이용가능한 네트워크 대역폭이 낮은 경우에는, 멀티-소스 리트리벌 유닛(50A)은 상대적으로 낮은 비트레이트 표현들로부터 데이터를 리트리브할 수도 있다. 더욱이, 본 개시물의 기법들에 따르면, 멀티-소스 리트리벌 유닛(50A)은 네트워크(14)의 대역폭 가용성에 기초하여 서버 디바이스(60)와 브로드캐스트 서버 디바이스(62) 사이와 같이, 다양한 소스들로부터의 멀티미디어 콘텐츠에 대한 데이터를 리트리브하는 것 사이에서 적응적으로 스위칭할 수도 있다. 이러한 방식으로, 클라이언트 디바이스(40A)는 네트워크(14)의 네트워크 대역폭 가용성의 변화에 또한 적응하면서 네트워크(14)를 통해 멀티미디어 데이터를 스트리밍할 수도 있다.
[0072] 일부 예들에서, 멀티-소스 리트리벌 유닛(50A)은 멀티미디어 콘텐츠에 대한 MPD 파일과 같은, 매니페스트 파일의 부분이 업데이트되어야 한다는 것을 결정할 수도 있다. 멀티-소스 리트리벌 유닛(50A)은 매니페스트 파일이 업데이트되어야 한다는 것을 세그먼트가 나타내는지를 결정하기 위해, 헤더 부분 또는 세그먼트의 다른 초기 부분과 같은 각 세그먼트의 특정한 부분을 분석하도록 구성될 수도 있다. 매니페스트 파일이 업데이트되어야 할 때, 멀티-소스 리트리벌 유닛(50A)은 원격 위치, 예를 들어, 서버(60)로부터의 매니페스트 파일을 업데이트하기 위해 세그먼트의 데이터를 사용하거나 데이터를 리트리브함으로써, 매니페스트 파일의 로컬하게 저장된 카피를 업데이트할 수도 있다. 매니페스트 파일을 업데이트한 이후에, 멀티-소스 리트리벌 유닛(50A)은 업데이트된 매니페스트 파일의 데이터에 기초하여 표현들의 데이터에 대한 장래의 요청들을 제안할 수도 있다.
[0073] 일례로서, 콘텐츠 준비 디바이스(20)는 사전 녹화되기 보다는, 라이브로 또는 거의 라이브로 통상적으로 브로드캐스팅되는 라이브 스포츠 이벤트, 정치 이벤트, 또는 다른 뉴스 가치가 있는 이벤트와 같은 라이브 미디어 데이터를 인코딩할 수도 있다. 이러한 경우들에서, 특정한 시간까지의 미디어 데이터에 대응하는 세그먼트들은 초기 매니페스트 파일에 포함된 URL들과 같은 할당된 식별자들일 수도 있다. 그러나, 일정 기간이 경과된 이후에, 특정한 시간에 후속하는 세그먼트들은 URL들과 같은 인코딩되고 할당된 식별자들일 수도 있다. 콘텐츠 준비 디바이스(20)의 캡슐화 유닛(30)은 특정한 시간에 후속하는 세그먼트들에 대한 URL들을 업데이트된 매니페스트 파일에 제공할 수도 있다. 그에 따라, 특정한 시간에 후속하는 세그먼트들을 어떻게 리트리브하는지를 결정하기 위해, 클라이언트 디바이스(40)는 특정한 시간에 후속하는 세그먼트들을 리트리브하도록 요청들을 구성하기 위해, 업데이트된 매니페스트 파일을 나타내는 정보를 수신할 수도 있다. 유사하게는, 콘텐츠 준비 디바이스(20)는 멀티미디어 콘텐츠에 대한 데이터가 다른 소스들, 예를 들어, 브로드캐스트 소스 디바이스(62)로부터 입수가능하다는 것을 나타내는 데이터를 제공할 수도 있다.
[0074] 인터페이스들(54)은 선택된 표현의 세그먼트들의 데이터를 선택하여 멀티-소스 리트리벌 유닛(50A)에 제공할 수도 있다. 멀티-소스 리트리벌 유닛(50A)은 인코딩된 데이터가 예를 들어, 스트림의 PES 패킷 헤더들에 의해 표시된 바와 같이 오디오 또는 비디오 스트림의 일부인지에 의존하여, 비디오 파일의 엘리먼트들을 구성 PES 스트림들로 역캡슐화(decapsulate)하고, 인코딩된 데이터를 리트리브하기 위해 PES 스트림들을 역패킷화(depacketize)하며, 인코딩된 데이터를 오디오 디코더(46) 또는 비디오 디코더(48)에 전송하기 위해 역캡슐화(decapsulation)를 포함할 수도 있다. 오디오 디코더(46)는 인코딩된 오디오 데이터를 디코딩하고 디코딩된 오디오 데이터를 오디오 출력(42)에 전송하고, 비디오 디코더(48)는 인코딩된 비디오 데이터를 디코딩하고 스트림의 복수의 뷰들을 포함할 수도 있는 디코딩된 비디오 데이터를 비디오 출력(44)에 전송한다. 비디오 디코더(48), 오디오 디코더(46), 오디오 출력(42), 및 비디오 출력(4)은 멀티미디어 프레임워크로서 일괄적으로 지칭될 수도 있고, 오디오 및 비디오 데이터의 멀티미디어 디코딩 및 렌더링을 구현하는데 일반적으로 책임이 있을 수도 있다.
[0075] 비디오 인코더(28), 비디오 디코더(48), 오디오 인코더(26), 오디오 디코더(46), 캡슐화 유닛(30), 및 멀티-소스 리트리벌 유닛(50A)은 하나 또는 그 초과의 마이크로프로세서들, 디지털 신호 프로세서들(DSPs), 응용 주문형 집적 회로들(ASICs), 필드 프로그램가능한 게이트 어레이들(FPGAs), 개별 로직 회로, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합과 같은 적용가능한 것으로서, 임의의 다양한 적합한 프로세싱 회로로서 각각 구현될 수도 있다. 비디오 인코더(28) 및 비디오 디코더(48) 각각은 결합된 비디오 인코더/디코더(CODEC)의 일부로서 통합될 수도 있는 하나 또는 그 초과의 인코더들 또는 디코더들에 포함될 수도 있다. 유사하게는, 오디오 인코더(26) 및 오디오 디코더(46) 각각은 결합된 CODEC의 일부로서 통합될 수도 있는 하나 또는 그 초과의 인코더들 또는 디코더들에 포함될 수도 있다. 비디오 인코더(28), 비디오 디코더(48), 오디오 인코더(26), 오디오 디코더(46), 캡슐화 유닛(30), 및/또는 멀티-소스 리트리벌 유닛(50)을 포함하는 장치가 집적 회로, 마이크로프로세서, 및/또는 셀룰러 전화와 같은 무선 통신 디바이스를 포함할 수도 있다.
[0076] 도 2는 다양한 소스들로부터의 미디어 데이터를 스트리밍하는 기법들을 구현하는 다른 예시적인 시스템(12)을 예시하는 블록도이다. 이러한 예에서, 시스템(12)은 도 1의 동일한 넘버링된 엘리먼트들에 실질적으로 따르는 콘텐츠 준비 디바이스(20), 서버 디바이스(60), 브로드캐스트 서버 디바이스(62), 및 물리적 매체 생성 설비(64)를 포함한다. 시스템(12)은 클라이언트 디바이스(40B) 및 리트리벌 디바이스(70)를 또한 포함한다.
[0077] 클라이언트 디바이스(40B)는, 클라이언트 디바이스(40B)가 인터페이스(58) 및 디멀티플렉싱 유닛(56)을 포함한다는 것을 제외하고, 도 1의 클라이언트 디바이스(40A)에 실질적으로 따른다. 멀티-소스 리트리벌 유닛을 포함하기 보다는, 클라이언트 디바이스(40B)는 하나 또는 그 초과의 다양한 소스들로부터 멀티미디어 데이터를 리트리브하도록 구성되는 리트리벌 디바이스(70)와 상호작용한다. 도 2의 예에서, 리트리벌 디바이스(70)는 도 1의 멀티-소스 리트리벌 유닛(50A)에 실질적으로 따르는 멀티-소스 리트리벌 유닛(50B)을 포함한다. 리트리벌 디바이스(70)는 도 1의 인터페이스들(54)에 실질적으로 따른 인터페이스들(72)을 또한 포함한다.
[0078] 이러한 예에서, 리트리벌 디바이스(70)는 도 1의 클라이언트 디바이스(50A)에 관하여 설명한 바와 유사한 방식으로 멀티미디어 데이터를 리트리브한다. 그러나, 리트리벌 디바이스(70)는 도 2의 예에서, 디멀티플렉싱 이전에, 리트리브되고 인코딩된 멀티미디어 데이터를 클라이언트 디바이스(40B)에 제공한다. 리트리벌 디바이스(70)는 예를 들어, 콘텐츠 전달 네트워크의 라우팅 디바이스를 포함할 수도 있다. 클라이언트 디바이스(40B)의 인터페이스(58)는 리트리벌 디바이스(70)로부터 인코딩된 멀티미디어 데이터를 수신할 수도 있고, 그 데이터를 역캡슐화 유닛(56)에 패스한다. 대안으로는, 멀티-소스 리트리벌 유닛(50B)은 데이터를 디멀티플렉싱할 수도 있고 인코딩된 멀티미디어 데이터(예를 들어, 오디오 및 비디오 데이터)의 개별 스트림들을 인터페이스(58)를 통해 클라이언트 디바이스(40B)에 패스할 수도 있고, 이 경우에서, 인터페이스(58)는 데이터를 오디오 디코더(46) 및 비디오 디코더(48)에 직접 제공할 수도 있다.
[0079] 도 3은 멀티-소스 리트리벌 유닛(50)에 대한 컴포넌트들의 예시적인 세트를 예시하는 블록도이다. 도 3의 멀티-소스 리트리벌 유닛(50)은 멀티-소스 리트리벌 유닛(50A)(도 1) 또는 멀티-소스 리트리벌 유닛(50B)(도 2)에 대응할 수도 있거나, 다른 상이한 리트리벌 디바이스에 포함될 수도 있다. 이러한 예에서, 멀티-소스 리트리벌 유닛(50)은 스트림 관리 유닛(80) 및 소스 컴포넌트(90)를 포함한다. 스트림 관리 유닛(80)은 리트리벌 제어 유닛(82) 및 소스 인터페이스들(84)을 포함하고, 소스 컴포넌트(90)는 비디오 파일 스토리지 핸들링 유닛(92), MPD 파싱 유닛(94), 미디어 파일 디멀티플렉싱(DEMUX) 유닛(96), 및 소스 인터페이스들(98)을 포함한다.
[0080] 도 3의 예에서, 소스 인터페이스들(84) 및 소스 인터페이스들(98)은 HTTP 수신기 및 스택(74), 브로드캐스트 수신기 및 스택(76), 및 로컬 스토리지(78)를 포함하는 인터페이스들(73)과 통신한다. 인터페이스들(73)은 인터페이스들(54)(도 1) 또는 인터페이스들(72)(도 2)에 일반적으로 대응할 수도 있다. 생략부호로 표시된 바와 같이, 인터페이스들(73)은 서비스 디바이스(60), 브로드캐스트 서버 디바이스(62), 및 물리적 매체 생성 설비(64)에 의해 생성된 물리적 매체에 부가하여 또는 그에 대한 대안으로 다른 소스들로부터 멀티미디어 데이터를 리트리브하는 추가의 인터페이스들을 포함할 수도 있다.
[0081] 인터페이스들(73) 각각은 특정한 통신 프로토콜들을 사용하여 통신하거나 특정한 물리적 매체와 상호작용하는 하드웨어 및/또는 소프트웨어를 포함할 수도 있다. 예를 들어, HTTP 수신기 및 스택(74)은 HTTP를 구현할 수도 있고 TCP/IP 뿐만 아니라 네트워크의 다른 계층들에 대한 다른 통신 프로토콜들을 포함할 수도 있는 HTTP 스택을 사용하여 데이터를 수신할 수도 있다. HTTP 수신기 및 스택(74)은 예를 들어, 서버 디바이스(60)로부터 세그먼트들에 대한 HTTP Get 또는 부분 Get 요청들(또는 세그먼트들의 부분들)을 더 생성할 수도 있다. 브로드캐스트 수신기 및 스택(76)은 브로드캐스트 또는 멀티캐스트 네트워크 송신으로부터 데이터를 수신하기 위해 eMBMS 또는 IP 멀티캐스트와 같은 브로드캐스트 또는 멀티캐스트 프로토콜을 구현할 수도 있다. 브로드캐스트 수신기 및 스택(76)은 송신의 데이터를 리트리브하기 위해 브로드캐스트 또는 멀티캐스트 네트워크 송신에 가입하도록 구성될 수도 있다. 로컬 스토리지(78)는 예를 들어, 클라이언트 디바이스(40A)(도 1) 또는 클라이언트 디바이스(70)(도 2)의 예를 들어, 메모리, 고체 상태 또는 플래시 드라이브, DVD, Blu-ray 디스크, 또는 다른 물리적 매체상에 로컬하게 저장된 데이터에 대한 인터페이스에 대응할 수도 있다.
[0082] 소스 컴포넌트(90)는 인터페이스들(73) 중 하나 또는 그 초과의 것으로부터 데이터를 차례로 수신할 수도 있는 소스 인터페이스들(98)을 통해 하나 또는 그 초과의 소스들로부터 멀티미디어 콘텐츠의 데이터를 수신할 수도 있다. 초기에, 소스 컴포넌트(90)는 MPD 파일과 같은 매니페스트 파일을 수신할 수도 있다. MPD 파싱 유닛(94)은 공통 특징들을 갖는 표현들의 그룹들 및 표현들의 특징들을 포함하는 적응 세트들 뿐만 아니라 멀티미디어 콘텐츠의 이용가능한 표현들을 결정하기 위해 MPD 파일을 파싱할 수도 있다. 때때로, 소스 컴포넌트(90)는 현재 멀티미디어 콘텐츠에 대한 업데이트된 MPD를 수신할 수도 있고, 이 경우에, MPD 파싱 유닛(94)은 업데이트된 MPD를 파싱할 수도 있고 업데이트된 정보를 스트림 관리 유닛(80)에 제공할 수도 있다. 일부 예들에서, 소스 컴포넌트(90)는 표현들 중 적어도 하나를 선택할 수도 있고, 다른 예들에서는, 소스 컴포넌트(90)는 표현 정보를 스트림 관리 유닛(80)에 제공할 수도 있다. 이러한 예들에서, 스트림 관리 유닛(80)은 표현들 중 적어도 하나를 선택할 수도 있다. 어느 경우에서는, 소스 컴포넌트(90)는 멀티미디어 콘텐츠에 대한 데이터를 리트리브하는 다운로딩 정보를 전송하기 위해 스트림 관리 유닛(80)에 요청을 전송할 수도 있다.
[0083] 스트림 관리 유닛(80)은 선택된 표현의 데이터를 리트리브하기 위한 소스들(73) 중 하나를 선택하도록 구성될 수도 있다. 인터페이스들(73) 각각은 소스 통지들을 스트림 관리 유닛(80)에 제공할 수도 있어서, 스트림 관리 유닛(80)은 데이터를 리트리브하기 위한 특정한 소스를 선택한다. 예를 들어, HTTP 수신기 및 스택(74)은 이용가능한 네트워크 대역폭의 추정량을 HTTP 송신을 위해 스트림 관리 유닛(80)에 제공할 수도 있다. 브로드캐스트 수신기 및 스택(76)은 선택된 표현에 대응하는 브로드캐스트 송신에 대한 URL이 이용가능한지 그리고 브로드캐스트가 커버리지내에 있는지의 표시들을 제공할 수도 있다. 로컬 스토리지(78)는 URL이 선택된 표현에 대응하는 로컬하게 저장된 데이터에 대해 이용가능한지의 표시를 제공할 수도 있다. 소스 인터페이스들(84)은 소스들에 통신가능하게 커플링된 다양한 인터페이스들로부터 소스 통지들을 수신하는 스트림 관리 유닛(80)의 하나 또는 그 초과의 인터페이스들을 표현한다. 또한, 스트림 관리 유닛(80)은 예를 들어, 네트워크 데이터를 수신하는 무선 신호의 강도를 결정하기 위해 클라이언트 디바이스(40A)와 같은 무선 디바이스의 하나 또는 그 초과의 무선들로부터 무선 신호 강도 정보(RSSI)를 수신할 수도 있다.
[0084] 스트림 관리 유닛(80)의 리트리벌 제어 유닛(82)은 멀티미디어 콘텐츠에 대한 데이터를 리트리브하기 위한 소스들 중 하나 또는 그 초과의 것을 선택하기 위해 소스 인터페이스들(84)을 통해 수신된 소스 통지들을 분석한다. 일부 예들에서, 리트리벌 제어 유닛(82)은 멀티미디어 콘텐츠의 표현을 또한 선택한다. 리트리벌 제어 유닛(82)은 표현들의 세그먼트들에 URL들 및 MPD 파일로부터 추출된 표현 특징들과 같은 정보를 소스 컴포넌트(90)로부터 수신할 수도 있다. 정보는 버퍼 점유도(occupancy) 및/또는 가용 공간 뿐만 아니라 멀티미디어 콘텐츠의 현재 재생 시간의 표시들을 더 포함할 수도 있다. 이러한 정보를 사용하여, 인터페이스들(73)로부터 수신된 소스 통지들과 함께, 리트리벌 제어 유닛(82)은 멀티미디어 콘텐츠에 대한 데이터, 예를 들어, 현재 선택된 표현의 데이터를 리트리브하기 위한 소스를 선택할 수도 있다. 리트리벌 제어 유닛(82)은 동일한 멀티미디어 콘텐츠에 대해 시간을 통해 표현들에 대한 데이터를 리트리브하기 위한 소스들 및/또는 표현들 사이에서 적응적으로 스위칭할 수도 있다.
[0085] 리트리벌 제어 유닛(82)은 선택된 소스(및 일부 경우들에서는, 선택된 표현)의 표시들을 소스 컴포넌트(90)에 제공할 수도 있다. 또한, 리트리벌 제어 유닛(82)은 선택된 소스로부터 선택된 표현의 데이터를 리트리브하기 위한 정보를 포함하는 다운로딩 커맨드를 공식화(formulate)할 수도 있다. 예를 들어, 다운로딩 커맨드는 소스 타입 및 소스-특정 정보의 표시를 포함할 수도 있다. 예를 들어, HTTP/1.1에 대해, 다운로딩 커맨드는 Get 또는 부분 Get 커맨드에 포함될 선택된 표현의 세그먼트의 URL의 전체 경로를 특정할 수도 있다. 다른 예로서, 브로드캐스트 또는 멀티캐스트 네트워크 송신에 대해, 다운로딩 커맨드는 선택된 표현의 세그먼트를 수신하기 위해 브로드캐스트 또는 멀티캐스트 그룹의 네트워크 어드레스를 특정할 수도 있다. 이러한 방식으로, 스트림 관리 유닛(80)은 소스 컴포넌트(90) 및 인터페이스들(73)(소스 수신기들이라 또한 칭함)로부터 수신된 정보에 기초하여, 수신하기 위한 표현의 적합한 세그먼트 뿐만 아니라 데이터를 리트리브하기 위한 적합한 소스를 결정할 수도 있다.
[0086] 소스 컴포넌트(90)는 스트림 관리 유닛(80)으로부터 수신된 다운로딩 커맨드 정보에 기초하여, 선택된 소스로부터 선택된 표현의 데이터를 리트리브하기 위해 적합한 커맨드를 공식화할 수도 있다. 예를 들어, 소스 컴포넌트(90)는 HTTP Get 또는 부분 Get 요청, 브로드캐스트 또는 멀티캐스트 그룹을 조인하기 위한 요청, 또는 로컬 저장 매체의 데이터를 리트리브하기 위한 요청을 생성할 수도 있다. 소스 컴포넌트(90)는 커맨드를 소스 인터페이스(98)를 통해 인터페이스들(73) 중 적합한 인터페이스에 더 이슈할 수도 있다. 즉, 소스 컴포넌트(90)는 스트림 관리 유닛(80)에 의해 선택된 소스에 통신가능하게 커플링된 인터페이스들(73) 중 하나에 커맨드를 전송할 수도 있다.
[0087] 커맨드에 응답하여, 커맨드를 이슈한 인터페이스들(73) 중 하나가 선택된 소스로부터 선택된 표현의 요청된 멀티미디어 데이터를 수신할 수도 있다. 인터페이스들(73)은 리트리브된 데이터를 소스 컴포넌트(90)에 포워딩하도록 구성될 수도 있다. 도 3의 예에서, 소스 컴포넌트(90)는 수신된 데이터를 예를 들어, 각각의 오디오 및 비디오 스트림들로 디멀티플렉싱할 수도 있는 미디어 파일 디멀티플렉서 유닛(96)을 포함할 수도 있다. 미디어 파일 스토리지 핸들링 유닛(92)은 멀티-소스 리트리벌 유닛(50)을 포함하는 디바이스의 메모리(미도시)에서 수신된 데이터를 버퍼링할 수도 있다. 미디어 파일 스토리지 핸들링 유닛(92)은 디멀티플렉싱된 데이터를 예를 들어, 오디오 디코더(46) 및 비디오 디코더(48)(도 1)에 또한 제공할 수도 있다. 대안으로는, 미디어 파일 스토리지 핸들링 유닛(92)은 리트리브된 미디어 데이터를 데이터를 디멀티플렉싱하지 않고 클라이언트 디바이스(40B)에 제공할 수도 있다.
[0088] 이러한 방식으로, 클라이언트 디바이스(40A)(도 1) 및 리트리벌 디바이스(70)(도 2)는 하나 또는 그 초과의 다양한 소스들로부터의 DASH에 따르는 멀티미디어 데이터를 리트리브하도록 구성된 디바이스들의 예들을 표현한다. 이들 예들에서, 디바이스들은 복수의 인터페이스들을 각각 포함하고, 여기서, 인터페이스들 각각은 복수의 소스들 각각에 통신가능하게 커플링된다. 예를 들어, 클라이언트 디바이스(40A)는 소스 디바이스(60), 브로드캐스트 소스 디바이스(62), 및 물리적 매체 생성 설비(64)에 의해 생성된 저장 매체에 통신가능하게 커플링된 인터페이스들(54)을 포함한다. 상기 설명한 바와 같이, 인터페이스들은 무선 브로드캐스트 소스와 같은 다른 소스들에 또한 통신가능하게 커플링될 수도 있다.
[0089] 그에 따라, 인터페이스들은 상이한 통신 프로토콜들에 따라 동작하도록 구성될 수도 있다. 예를 들어, 인터페이스들 중 하나가 송신 제어 프로토콜/인터넷 프로토콜(TCP/IP)에 따라 동작하도록 구성된 네트워크 인터페이스를 포함할 수도 있다. 동일한 네트워크 인터페이스(예를 들어, 네트워크 인터페이스의 상이한 엘리먼트), 또는 상이한 인터페이스가 IP 멀티캐스트 또는 eMBMS, 또는 다른 브로드캐스트 또는 멀티캐스트 네트워크 프로토콜들에 따라 데이터를 수신하도록 구성될 수도 있다. 다른 인터페이스가 물리적 매체로부터 데이터를 수신하도록 구성될 수도 있다. 이러한 인터페이스는 유니버셜 시리얼 버스(USB) 인터페이스, DVD 판독기, Blu-ray 플레이어, 또는 물리적 매체로부터 데이터를 리트리브하는 다른 이러한 인터페이스들을 포함할 수도 있다.
[0090] 클라이언트 디바이스(40A)(도 1) 및 리트리벌 디바이스(70)(도 2)는 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 멀티미디어 콘텐츠에 대한 매니페스트 파일을 사용하여 선택하도록 구성된 소스 컴포넌트(예를 들어, 도 3의 소스 컴포넌트(90))를 포함하는 디바이스들의 예들을 또한 표현한다. 매니페스트 파일은 멀티미디어 콘텐츠의 복수의 표현들을 나타내는 정보를 포함할 수도 있고, 복수의 표현들은 표현들 중 선택된 하나를 포함할 수도 있다. 물론, 상기 설명한 바와 같이, 스트림 관리 유닛이 소스 컴포넌트 보다는 표현을 선택하도록 또한 구성될 수도 있다는 것을 이해해야 한다. 더욱이, 소스 컴포넌트 및 스트림 관리 유닛은 일부 예들에서 기능적으로 통합될 수도 있다. 표현들에 대한 멀티미디어 데이터는 서비스 디바이스(60), 브로드캐스트 서버 디바이스(62), 및 물리적 매체 생성 설비(64)에 의해 생성된 물리적 저장 매체와 같은 복수의 소스로부터 이용가능하다.
[0091] 클라이언트 디바이스(40A)(도 1) 및 리트리벌 디바이스(70)(도 2)는 선택된 표현에 대한 멀티미디어 데이터를 리트리브하기 위한 소스들 중 하나를 선택하도록 구성된 스트림 관리 유닛을 포함하는 디바이스들의 예들을 또한 표현한다. 상기 논의한 바와 같이, 스트림 관리 유닛(80)은 인터페이스들(73)로부터 수신된 소스 통지들, 모바일 디바이스의 무선 라디오로부터의 RSSI 정보, 표현 특징들, 표현들의 세그먼트들에 대한 세그먼트 정보, 및 멀티미디어 콘텐츠의 선택된 표현에 대한 데이터를 리트리브하기 위한 소스를 선택하기 위한 다른 이러한 정보를 분석할 수도 있다.
[0092] 궁극적으로는, 소스 컴포넌트는 선택된 소스에 통신가능하게 커플링된 인터페이스들 중 하나를 통해 선택된 소스로부터 선택된 표현들에 대한 멀티미디어 데이터를 리트리브하도록 구성될 수도 있다. 예를 들어, 스트림 관리 유닛(80)이 멀티미디어 데이터의 소스로서 서버 디바이스(60)를 선택하면, 소스 컴포넌트(90)는 HTTP 수신기 및 스택(74)을 통해 멀티미디어 데이터를 리트리브할 수도 있다. 다른 예로서, 스트림 관리 유닛(80)이 멀티미디어 데이터의 소스로서 브로드캐스트 서버 디바이스(62)를 선택하면, 소스 컴포넌트(90)는 브로드캐스트 수신기 및 스택(76)을 통해 멀티미디어 데이터를 리트리브할 수도 있다. 또 다른 예로서, 스트림 관리 유닛(80)이 멀티미디어 데이터의 소스로서 로컬 저장 매체를 선택하면, 소스 컴포넌트(90)는 로컬 스토리지(78)를 통해 멀티미디어 데이터를 리트리브할 수도 있다.
[0093] 이러한 방식으로, 클라이언트 디바이스(40A) 및 리트리벌 디바이스(70)는 다양한 상이한 소스들로부터 동일한 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 본 개시물의 기법들을 구현할 수도 있는 디바이스들의 예들을 표현하고, 여기서, 멀티미디어 콘텐츠는 DASH를 따를 수도 있다. 상이한 소스들로부터 멀티미디어 콘텐츠에 대한 데이터를 리트리브하는 능력은 다양한 시나리오들에서 바람직하다. 일례로서, 동일한 콘텐츠에 대한 다중의 소스들은 리던던시를 제공할 수도 있어서, 클라이언트 디바이스는 다른 소스가 이용가능하지 않을 때 특정한 소스가 이용가능하지를 결정할 수 있다.
[0094] 다른 예로서, 특정한 표현들이 특정한 소스들에 의해서만 저장될 수도 있다. 예를 들어, 상대적으로 높은 품질의 표현이 브로드캐스트를 통해 이용가능한 반면에, 상대적으로 낮은 품질의 표현은 유니캐스트를 통해 이용가능하다. 클라이언트 디바이스는 유니캐스트를 통해 상대적으로 낮은 품질의 표현의 데이터를 초기에 리트리브할 수도 있고, 그 후, 브로드캐스트 표현의 랜덤 액세스 포인트(RAP)에 도달하기 위해 유니캐스트 표현의 충분한 데이터량을 버퍼링한 이후에 브로드캐스트 또는 멀티캐스트 송신으로 스위칭할 수도 있다.
[0095] 일부 경우들에서, 클라이언트 디바이스는 다른 소스로부터 데이터를 리트리브함으로써 하나의 소스로부터 수신된 데이터를 강화시킬 수도 있다. 예를 들어, 클라이언트 디바이스는 제 1 소스로부터 멀티미디어 데이터를 리트리브할 수도 있고, 제 2 상이한 소스로부터 공통 시간 재생 주기 동안 추가의 멀티미디어 데이터를 리트리브할 수도 있다. 클라이언트 디바이스는 특정한 소스로부터 수신된 데이터를 대체하거나 보충하기 위해 대안의 또는 추가의 데이터를 리트리브할 수도 있다. 일례로서, DVD들은 DVD들이 제작될 당시의 개봉 영화들에 대한 예고편들을 통상적으로 포함한다. 본 개시물의 기법들에 따르면, 클라이언트 디바이스는 예고편들이 비교적 최신이도록, DVD 자체로부터 보다는 서버 디바이스로부터의 예고편들에 대한 멀티미디어 데이터를 리트리브할 수도 있다. 유사하게는, DVD 또는 다른 로컬하게 액세스되는 데이터 저장 매체의 콘텐츠가 대안의 엔딩, 디렉터스 컷, 특별한 특징들, 삭제 장면들, 또는 DVD의 비디오 데이터에 대한 다른 추가들 또는 변경들을 제공하기 위해 이들 기법들을 사용하여 증강될 수도 있다.
[0096] 다른 예로서, DVD 또는 다른 저장 매체가 특정한 품질의 데이터, 예를 들어, 스케일러블 비디오 코딩(SVC) 데이터의 베이스 계층을 저장할 수도 있다. 클라이언트 디바이스는 네트워크 소스와 같은 추가의 소스가 베이스 계층을 강화시키기 위해 하나 또는 그 초과의 강화 계층들을 리트리브하도록 이용가능한지를 결정할 수도 있다. 네트워크 접속이 이용가능하지 않은 경우에, 클라이언트 디바이스는 베이스 계층을 여전히 디코딩하고 렌더링할 수도 있다. 그러나, 네트워크 접속이 이용가능하면, 클라이언트 디바이스는 하나 또는 그 초과의 강화 계층들에 대한 데이터를 리트리브할 수도 있다.
[0097] 또 다른 예로서, DVD 또는 다른 저장 매체가 예를 들어, 2차원(2D) 비디오 재생을 지원하기 위해 비디오 데이터의 싱글 뷰(single view)를 포함할 수도 있다. 3차원(3D) 비디오 재생을 지원하기 위해 개별 DVD를 구매하기 보다는, 본 개시물에 따르면, 클라이언트 디바이스는 예를 들어, 네트워크 소스로부터 대안의 뷰를 리트리브할 수도 있고, 3차원 비디오 재생을 제공하기 위해 스테레오 뷰 쌍으로서 2개의 뷰들을 디스플레이할 수도 있다. 물론, 클라이언트 디바이스는 멀티뷰 비디오 코딩(MVC)에 따라 멀티뷰 비디오 재생을 위해 추가의 뷰들을 또한 리트리브할 수도 있다.
[0098] 또 다른 예로서, DVD는 특정한 등급(예를 들어, G, PG, PG-13, R)의 영화를 포함할 수도 있고, 여기서, 등급은 특정한 관객에 대한 콘텐츠 적합성을 나타낸다. 본 개시물의 기법들은 시청 규제(parental controls)를 구현하기 위해 사용될 수도 있다. 예를 들어, DVD상의 영화가 현재의 관객에 대해 적합하지 않으면, 부모 또는 다른 보호자가 부적합한 장면들을 대체하기 위해 대안의 오디오 및/또는 비디오 데이터를 리트리브하도록 클라이언트 디바이스를 구성할 수도 있다. 대안으로는, DVD는 비교적 유순한(benign) 비디오 콘텐츠를 저장할 수도 있고, 클라이언트 디바이스는 그렇지 않으면 특정한 관객에 대해 적합하지 않을 수도 있는 네트워크 소스로부터 보충 오디오 및/또는 비디오 데이터를 리트리브하도록 구성될 수도 있다.
[0099] 도 4는 예시적인 멀티미디어 콘텐츠(100)의 엘리먼트들을 예시하는 개념도이다. 도 4의 예에서, 멀티미디어 콘텐츠(100)는 멀티미디어 프리젠테이션 디스크립션(MPD)(102) 및 복수의 표현들(110 내지 120). 표현(110)은 옵션의 헤더 데이터(112) 및 세그먼트들(114A 내지 114N(세그먼트들(114))을 포함하고, 표현(120)은 옵션의 헤더 데이터(122) 및 세그먼트들(124A 내지 124N(세그먼트들(124))을 포함한다. 문자 N은 편의상 표현들(110, 120) 각각에서 최종 영화 프래그먼트(fragment)를 지정하기 위해 사용된다. 일부 예들에서, 표현들(110, 120) 사이에는 상이한 수의 영화 프래그먼트들이 존재할 수도 있다.
[0100] NPD(102)는 표현들(110 내지 120)과 분리된 데이터 구조를 포함할 수도 있다. MPD(102)는 도 1의 매니페스트 파일(66)에 대응할 수도 있다. 일반적으로, MPD(102)는 코딩 및 렌더링 특징들, 표현 그룹들, MPD(102)가 대응하는 프로파일, 텍스트 타입 정보, 카메라 각도 정보, 등급 정보, 트릭 모드 정보(예를 들어, 시간적 서브-시퀀스들을 포함하는 표현들을 나타내는 정보), 및/또는 (예를 들어, 재생 동안 미디어 콘텐츠로의 타겟팅된 광고 삽입을 위한) 원격 기간들을 리트리브하는 정보와 같은 표현(110 내지 120)의 특징들을 일반적으로 설명하는 데이터를 포함할 수도 있다. 원격 기간들을 외부 기간들이라 또한 칭할 수도 있다.
[0101] 헤더 데이터(112)는 존재할 때, 세그먼트들(114)의 특징들, 예를 들어, 랜덤 액세스 포인트들의 시간적 위치들을 설명할 수도 있고, 세그먼트들(114) 중 하나는 랜덤 액세스 포인트들, 세그먼트들(114)내의 랜덤 액세스 포인트들에 대한 바이트 오프셋들, 세그먼트들(114)의 URL들(uniform resource locators), 또는 세그먼트들(114)의 다른 양태들을 설명할 수도 있다. 헤더 데이터(122)는 존재할 때, 세그먼트들(124)에 대해 유사한 특징들을 설명할 수도 있다. 추가로 또는 대안으로, 이러한 특징들은 MPD(102)내에 완전하게 포함될 수도 있다.
[0102] 세그먼트들(114)은 각각이 비디오 데이터의 프레임들을 포함할 수도 있는 하나 또는 그 초과의 코딩된 비디오 샘플들을 포함한다. 세그먼트들(114)의 코딩된 비디오 샘플들 각각은 유사한 특징들, 예를 들어, 높이, 폭, 및 대역폭 요건들을 가질 수도 있다. 이러한 특징들은 이러한 데이터가 도 4의 예에 예시되어 있지 않지만 MPD(102)의 데이터에 의해 설명될 수도 있다. MPD(102)는 3GPP 사양에 의해 설명된 바와 같은 특징들을 포함할 수도 있고, 본 개시물에 설명된 시그널링된 정보 중 어느 하나 또는 모두가 추가된다.
[0103] 세그먼트들(114, 124) 각각은 URI(unique uniform resource identifier), 예를 들어, URL(uniform resource locator)과 연관될 수도 있다. 따라서, 세그먼트들(114, 124) 각각은 DASH와 같은 스트리밍 네트워크 프로토콜을 사용하여 독립적으로 리트리브가능할 수도 있다. 이러한 방식으로, 클라이언트 디바이스(40)와 같은 목적지(destination) 디바이스는 세그먼트들(114 또는 124)을 리트리브하기 위해 HTTP Get 요청을 사용할 수도 있다. 일부 예들에서, 클라이언트 디바이스(40)는 세그먼트들(114 또는 124)의 특정한 바이트 범위들을 리트리브하기 위해 HTTP 부분 Get 요청들을 사용할 수도 있다. 예를 들어, 로컬 저장 매체로부터의 브로드캐스트의 일부 데이터가 분실되거나 손상되면, 클라이언트 디바이스(40)는 브로드캐스트 또는 로컬 저장 매체로부터 가능한 한 많은 손상되지 않은 데이터를 리트리브할 수도 있고, 일부 예들에서는 HTTP 부분 Get 요청을 사용하여 손상된 데이터에 대한 대체 데이터를 리트리브할 수도 있다.
[0104] 일부 예들에서, MPD(102)는 (원격 기간들이라 또한 칭하는) 외부 기간들의 데이터를 지칭할 수도 있다. 기간은 멀티미디어 콘텐츠의 특정한 시간 섹션에 일반적으로 대응한다. 각 기간이 표현들(110 내지 120)과 같은 하나 또는 그 초과의 표현들을 포함할 수도 있다. 그러나, 외부 기간이 멀티미디어 콘텐츠(100)의 기간들내에 또는 그 사이에 삽입될 수도 있다. 외부 기간은 멀티미디어 콘텐츠의 멀티미디어 데이터 이외의 멀티미디어 데이터를 포함할 수도 있다. 예를 들어, 외부 기간들은 광고 데이터를 포함할 수도 있다.
[0105] 기간들은 그들의 지속기간에 의해 정의될 수도 있고, 즉, 기간의 시작 시간은 이전 기간의 지속기간에 의존할 수도 있다. 클라이언트 디바이스는 외부 기간을 MPD 구조에 매핑할 수도 있다. 라이브 서비스들을 위해, MPD들의 연접이 적합한 업데이트 절차들로, 서버 디바이스(60)와 같은 서버상에서 MPD의 동적 생성에 의해 달성될 수도 있다. 다른 웹 기술들이 또한 사용될 수도 있다. 외부적으로 정의된 기간들에 대한 URL들은 클라이언트 디바이스(40)의 사용자에게 타겟팅된 광고들을 포함하는 새로운 기간을 생성하기 위해 실시간으로 프로세싱될 수도 있다. 클라이언트 디바이스(40)는 광고 타겟팅을 위해 사용될 수도 있는 추가의 정보, 예를 들어, 사용자 식별자, 사용자 선호도들, 사용자 인구통계적 정보, 또는 다른 정보를 요청에 공급할 수도 있다.
[0106] 아래의 표 1은 멀티미디어 콘텐츠의 하나 또는 그 초과의 기간들을 설명하고 외부 기간들의 존재를 나타내기 위해 MPD(102)에 제공될 수도 있는 정보의 예시적인 세트를 예시한다.
기간 E 1...N M 기간의 정보를 제공
기간속성들 리스트 N 기간 속성들이 이미 존재
기간지속기간 A O 기간 지속기간을 제공, 다음 기간의 시작 속성에 대한 대안으로서 사용될 수도 있음
표현그룹리스트URI A O 표현들의 리스트를 포함하는 문서를 포인팅하는 URI
표현그룹들 E 0...N 이러한 엘리먼트는 표현 그룹의 디스크립션을 포함
기간리스트URI A M 하나 또는 여러 기간 엘리먼트들을 포함하는 문서를 포인팅하는 URI
MPD 기간 정보
[0107] 이러한 방식으로, MPD(102)의 기간 엘리먼트는 예를 들어, periodListURI를 사용하여 외부(또는 원격) 기간들을 지칭할 수도 있다. 온-디맨드 콘텐츠에 대해, 기간 지속기간들의 표시들은 외부 기간들을 지원하기 위한 시작 시간들 보다는, 클라이언트 디바이스(40)와 같은 클라이언트 디바이스들에 대해 더욱 유용할 수도 있다. MPD는 기간들의 시퀀스들을 포함할 수도 있고, 여기서, 기간들은 내부 또는 외부일 수 있다. 원격 기간들을 사용하는 것은, 사용자 특정 정보와 함께, 타겟팅된 사용자 광고를 허용할 수도 있다. 서버 디바이스(60) 및/또는 콘텐츠 준비 디바이스(20)는 각 사용자 또는 각 클라이언트 디바이스에 대해 개별 MPD들을 동적으로 생성하도록 구성될 수도 있다. 클라이언트 디바이스(40) 또는 다른 디바이스는 예를 들어, 동적으로 생성된 MPD를 사용하여, 타겟팅된 광고 및 라이브 서비스의 재생을 연접시킬 수도 있다.
[0108] 이러한 방식으로, 본 개시물의 기법들은 서비스 제공자가 3GPP AHS를 통해 온-디맨드 콘텐츠를 제공하는 상황들을 지원할 수도 있다. 콘텐츠는 여러 장면들을 포함할 수도 있고, 각 장면 사이에, 광고가 추가될 수도 있다. 광고는 각 사용자에 대해 상이할 수도 있다. 즉, 타겟팅된 광고는 추가될 수도 있다. 또한, 각 광고는 상이한 지속기간으로 이루어질 수도 있다. 유사하게는, 서비스 제공자는 특정한 라이브 서비스(예를 들어, 무료 서비스)를 제공할 수도 있다. 라이브 서비스에 액세스할 때, 서비스 제공자는 사용자에게 타겟팅되거나 타겟팅되지 않을 수도 있는 광고를 추가할 수도 있다. 광고의 지속기간은 액세스 시간, 액세스 위치, 사용자 등에 따라 상이할 수도 있다.
[0109] 추가로 또는 대안으로, 외부 기간은 멀티미디어 데이터에 대한 공통 시간 재생 기간에 대응하는 추가 또는 대체 데이터를 포함할 수도 있다. 상기 논의한 바와 같이, 이러한 추가 또는 대체 데이터는 멀티미디어 데이터를 변형시키기 위해, 예를 들어, 멀티미디어 데이터의 등급, 스토리라인, 또는 다른 특징을 변경시키는 멀티미디어 데이터의 실제 콘텐츠를 변경시키기 위해 사용될 수도 있다. 더욱이, 외부 기간은 SVC에 대한 강화 계층 데이터, MVC에 대한 하나 또는 그 초과의 뷰들, 또는 하나 또는 그 초과의 기존의 뷰들에 적용될 때 추가의 뷰들이 생성될 수 있는 깊이 맵들과 같은 보충 데이터를 포함할 수도 있다.
[0110] 도 5는 도 4의 세그먼트들(114, 124) 중 하나와 같은 표현의 세그먼트에 대응할 수도 있는 예시적인 비디오 파일(150)의 엘리먼트들을 예시하는 블록도이다. 세그먼트들(114, 124) 각각은 도 5의 예에 예시된 데이터의 배열에 실질적으로 따르는 데이터를 포함할 수도 있다. 유사하게는, 아래 논의하는 도 6 및 도 7의 세그먼트들이 비디오 파일(150)의 구조에 또한 실질적으로 따를 수도 있다. 상술한 바와 같이, ISO 기반 미디어 파일 포맷 및 그것의 확장자에 따르는 비디오 파일들은 "박스들(boxes)"로 칭하는 일련의 객체들에 데이터를 저장한다. 도 5의 예에서, 비디오 파일(150)은 파일 타입(FTYP) 타입(152), 영화(MOOV) 박스(54), 영화 프래그먼트(MOOF) 박스들(162), 및 영화 프래그먼트 랜덤 액세스(MFRA) 박스(164)를 포함한다.
[0111] 파일 타입(FTYP) 박스(152)는 비디오 파일(150)에 대한 파일 타입을 일반적으로 설명한다. 파일 타입 박스(152)는 비디오 파일(150)에 대한 최상의 사용을 설명하는 사양을 식별하는 데이터를 포함할 수도 있다. 파일 타입 박스(152)는 MOOV 박스(154), 영화 프래그먼트 박스들(162), 및 MFRA 박스(164) 이전에 배치될 수도 있다.
[0112] 일부 예들에서, 비디오 파일(150)과 같은 세그먼트는 FTYP 박스(152) 이전에 MPD 업데이트 박스(미도시)를 포함할 수도 있다. MPD 업데이트 박스는 비디오 파일(150)을 포함하는 표현에 대응하는 MPD가 MPD를 업데이팅하는 정보에 따라 업데이팅되어야 한다는 것을 나타내는 정보를 포함할 수도 있다. 예를 들어, MPD 업데이트 박스는 MPD를 업데이팅하기 위해 사용될 자원에 대한 URI 또는 URL을 제공할 수도 있다. 다른 예로서, MPD 업데이트 박스는 MPD를 업데이팅하는 데이터를 포함할 수도 있다. 일부 예들에서, MPD 업데이트 박스는 비디오 파일(150)의 세그먼트 타입(STYP) 박스(미도시)에 바로 후속할 수도 있다.
[0113] 도 5의 예에서, MOOV 박스(154)는 영화 헤더(MVHD) 박스(156), 트랙(TRAK) 박스(158), 및 하나 또는 그 초과의 영화 연장(MVEX) 박스들(160)을 포함한다. 일반적으로, MVHD 박스(156)는 비디오 파일(150)의 일반적으로 특징들을 설명할 수도 있다. 예를 들어, MVHD 박스(158)는 비디오 파일(150)이 원래 작성된 시간, 비디오 파일(150)이 최종 변경된 시간, 비디오 파일(150)에 대한 타임스케일(timescale), 비디오 파일(150)에 대한 재생의 지속기간을 설명하는 데이터, 또는 비디오 파일(150)을 일반적으로 설명하는 다른 데이터를 포함할 수도 있다.
[0114] TRAK 박스(158)는 비디오 파일(150)의 트랙에 대한 데이터를 포함할 수도 있다. TRAK 박스(158)는 TRAK 박스(158)에 대응하는 트랙의 특징들을 설명하는 트랙 헤더(TKHD) 박스를 포함할 수도 있다. 일부 예들에서, TRAK 박스(158)는 코딩된 비디오 픽처들을 포함할 수도 있고, 다른 예들에서는, 트랙의 코딩된 비디오 픽처들은 TRAK 박스(158)의 데이터에 의해 참조될 수도 있는 영화 프래그먼트들(162)에 포함될 수도 있다.
[0115] 일부 예들에서, 비디오 파일(150)은 하나 보다 많은 트랙을 포함할 수도 있다. 그에 따라, MOOV 박스(154)는 비디오 파일(150)에서 트랙들의 수와 동일한 다수의 TRAK 박스들을 포함할 수도 있다. TRAK 박스(158)는 비디오 파일(150)의 대응하는 트랙의 특징들을 설명할 수도 있다. 예를 들어, TRAK 박스(158)는 대응하는 트랙에 대한 시간 및/또는 공간 정보를 설명할 수도 있다. MOOV 박스(154)의 TRAK 박스(158)와 유사한 TRAK 박스는 캡슐화 유닛(30)(도 1)이 비디오 파일(150)과 같은 비디오 파일에서 파라미터 세트 트랙을 포함할 때 파라미터 세트 트랙의 특징들을 설명할 수도 있다. 캡슐화 유닛(30)은 파라미터 세트 트랙을 설명하는 TRAK 박스내의 파라미터 세트 트랙에서 시퀀스 레벨 SEI 메시지들의 존재를 시그널링할 수도 있다.
[0116] MVEX 박스들(160)은 예를 들어, 비디오 파일(150)이 만약 있다면 MOOV 박스(154)내에 포함되는 비디오 데이터에 부가하여 영화 프래그먼트들(162)을 포함한다는 것을 시그널링하기 위해 대응하는 영화 프래그먼트들(162)의 특징들을 설명할 수도 있다. 스트리밍 비디오 데이터의 맥락에서, 코딩된 비디오 픽처들은 MOOV 박스(154) 보다는 영화 프래그먼트들(162)에 포함될 수도 있다. 그에 따라, 모든 코딩된 샘플들이 MOOV 박스(154) 보다는 영화 프래그먼트들(162)에 포함될 수도 있다.
[0117] MOOV 박스(154)는 비디오 파일(150)에서 영화 프래그먼트들(162)의 수와 동일한 다수의 MVEX 박스들(160)을 포함할 수도 있다. MVEX 박스들(160) 각각은 영화 프래그먼트들(162) 중 대응하는 하나의 특징들을 설명할 수도 있다. 예를 들어, 각 MVEX 박스는 영화 프래그먼트들(162) 중 대응하는 하나에 대한 시간 지속기간을 설명하는 영화 연장 헤더 박스(MEHD) 박스를 포함할 수도 있다.
[0118] 상기 언급한 바와 같이, 캡슐화 유닛(30)은 실제 코딩된 비디오 데이터를 포함하지 않는 비디오 샘플에서 시퀀스 데이터 세트를 저장할 수도 있다. 비디오 샘플은 특정한 시간 인스턴스에서 코딩된 픽처의 표현인 액세스 유닛에 일반적으로 대응할 수도 있다. AVC의 맥락에서, 코딩된 픽처는 액세스 유닛의 모든 픽처들을 구성하기 위해 정보를 포함하는 하나 또는 그 초과의 VCL NAL 유닛들, 및 SEI 메시지들과 같은 다른 연관된 넌-VCL NAL 유닛들을 포함한다. 그에 따라, 캡슐화 유닛(30)은 영화 프래그먼트들(162) 중 하나에서, 시퀀스 레벨 SEI 메시지들을 포함할 수도 있는 시퀀스 데이터 세트를 포함할 수도 있다. 캡슐화 유닛(30)은 영화 프래그먼트들(162) 중 하나에 대응하는 MVEX 박스들(160) 중 하나내에서 영화 프래그먼트들(162) 중 하나에 존재하는 것으로서 시퀀스 데이터 세트 및/또는 시퀀스 레벨 SEI 메시지들의 존재를 더 시그널링할 수도 있다.
[0119] 영화 프래그먼트들(162)은 하나 또는 그 초과의 코딩된 비디오 픽처들을 포함할 수도 있다. 일부 예들에서, 영화 프래그먼트들(162)은 하나 또는 그 초과의 픽처들의 그룹들(GOPs)을 포함할 수도 있고, GOPs 각각은 다수의 코딩된 비디오 픽처들, 예를 들어, 프레임들 또는 픽처들을 포함할 수도 있다. 또한, 상술한 바와 같이, 영화 프래그먼트들(162)은 일부 예들에서 시퀀스 데이터 세트들을 포함할 수도 있다. 영화 프래그먼트들(162) 각각은 영화 프래그먼트 헤더 박스(MFHD)(도 5에 미도시)를 포함할 수도 있다. MFHD 박스는 영화 프래그먼트에 대한 시퀀스 번호와 같은 대응하는 영화 프래그먼트의 특징들을 설명할 수도 있다. 영화 프래그먼트들(162)은 비디오 파일(150)에서 시퀀스 번호의 순서에 포함될 수도 있다.
[0120] MFRA 박스(164)는 비디오 파일(150)의 영화 프래그먼트들(162)내의 랜덤 액세스 포인트들을 설명할 수도 있다. 이것은 비디오 파일(150)내에서 특정한 시간 위치들을 찾는 것을 수행하는 것과 같은, 트릭 모드들을 수행하는 것을 보조할 수도 있다. MFRA 박스(164)는 일반적으로 옵션이고, 일부 예들에서 비디오 파일들에 포함될 필요가 없다. 유사하게, 클라이언트 디바이스(40)와 같은 클라이언트 디바이스는 비디오 파일(150)의 비디오 데이터를 정확하게 디코딩하고 디스플레이하기 위해 MFRA 박스(164)를 반드시 참조할 필요는 없다. MFRA 박스(164)는 비디오 파일(150)의 트랙들의 수와 동일하거나, 일부 예들에서는, 비디오 파일(150)의 미디어 트랙들(예를 들어, 넌-힌트(non-hint) 트랙들)의 수와 동일한 다수의 트랙 프래그먼트 랜덤 액세스(TFRA) 박스들(미도시)을 포함할 수도 있다.
[0121] 세그먼트들(114, 124)은 비디오 파일(150)과 유사하게 각각 포맷팅될 수도 있다. 더욱이, 세그먼트들(114, 124) 각각은 각각의 URL과 연관될 수도 있다. 세그먼트들(114, 124)이 상이한 소스들에서 저장될 수도 있기 때문에, URL의 경로부는 대응하는 세그먼트가 이용가능한 소스를 특정할 수도 있다. 예를 들어, 로컬 저장 매체 저장된 데이터에 대해, URL 부분은URL에 대한 데이터가 네트워크 어드레스 보다는, 로컬 스토리지상에 파일로서 저장된다는 것을 나타내기 위해 file://로 시작할 수도 있다.
[0122] 도 6은 다양한 상이한 소스들 중 하나 또는 그 초과의 것으로부터 멀티미디어 데이터를 리트리브하는 예시적인 방법을 예시하는 플로우차트이다. 도 1의 예의 디바이스에 관하여 설명하였지만, 다른 디바이스들이 도 6의 방법의 단계들을 수행하도록 구성될 수도 있다는 것을 이해해야 한다. 예를 들어, 도 2의 리트리벌 디바이스(70)는 도 6에서 리트리벌 디바이스에 기인하는 단계들을 수행하도록 구성될 수도 있다. 도 6의 단계들은 멀티미디어 콘텐츠의 각 세그먼트 또는 기간에 대해 반복적으로 수행될 수도 있다. 특정한 단계들이 생략될 수도 있고 추가의 단계들의 추가될 수도 있다. 더욱이, 특정한 단계들은 병렬로 수행될 수도 있다.
[0123] 도 6의 예에서, 처음에, 소스 디바이스는 MPD 파일을 클라이언트 디바이스(40A)와 같은 리트리벌 디바이스에 전송한다(180). MPD 파일은 특정한 멀티미디어 콘텐츠에 일반적으로 대응한다. 그 후, (리트리벌 디바이스의 예를 표현하는) 클라이언트 디바이스(40A)가 MPD 파일을 수신한다(182) 소스 컴포넌트(90)가 표현들, 표현들, 표현들의 특징들, 표현들의 세그먼트들에 대한 URL들, 및 다른 이러한 정보를 나타내는 정보를 MPD 파일로부터 추출하기 위해 MPD 파일을 수신하여 파싱할 수도 있다. 소스 컴포넌트(90)는 이러한 정보를 스트림 관리 유닛(80)에 제공할 수도 있다.
[0124] 스트림 관리 유닛(80)은 소스 컴포넌트(90)로부터 수신된 정보를 사용하여 멀티미디어 콘텐츠의 이용가능한 표현들을 결정할 수도 있다(184). 스트림 관리 유닛(80)은 멀티미디어 콘텐츠의 데이터가 리트리브될 수도 있는 이용가능한 소스들을 또한 결정할 수도 있다(186).
[0125] 스트림 관리 유닛(80)은 클라이언트 디바이스(40A)의 디코딩 및 렌더링 능력들을 더 결정할 수도 있다(188). 예를 들어, 스트림 관리 유닛(80)은 비디오 디코더(48)가 따르는 프로파일 및/또는 레벨, 비디오 출력(44)의 스크린 사이즈, 비디오 출력(44)의 리프레시 레이트, 비디오 출력(44)에 의해 실질적으로 동시에 디스플레이될 수 있는 뷰들의 수, 또는 다른 이러한 능력들을 결정할 수도 있다.
[0126] 또한, 스트림 관리 유닛(80)은 다양한 소스들의 접속성 및 데이터를 결정할 수도 있다(190). 예를 들어, 스트림 관리 유닛(80)은 무선 라디오에 대한 RSSI 정보, (서버 디바이스(60)의 가용성에 관한) HTTP 트래픽에 대한 예측된 가용 대역폭, 멀티미디어 콘텐츠에 대한 브로드캐스트 또는 멀티캐스트가 수신될 수 있는지 그리고 브로드캐스트 또는 멀티캐스트에 대한 URL이 (브로드캐스트 서버 디바이스(62)의 가용성에 관하여) 이용가능한지, 그리고/또는 URL이 (물리적 매체 생성 설비(64)에 의해 생성된 로컬 저장 매체의 가용성에 관하여) 멀티미디어 콘텐츠의 데이터를 저장하는 로컬 물리적 매체에 대해 이용가능한지와 같은 소스 통지들을 수신하여 분석할 수도 있다.
[0127] 상기 논의한 정보를 사용하여, 스트림 관리 유닛(80)은 멀티미디어 콘텐츠의 표현을 선택(192)할 뿐만 아니라 선택된 표현의 데이터(예를 들어, 세그먼트들)를 리트리브하기 위한 소스를 선택할 수도 있다(194). 그 후, 스트림 관리 유닛(80)은 선택된 표현 및 소스의 표시를 소스 컴포넌트(90)에 제공할 수도 있다. 차례로, 소스 컴포넌트(90)는 선택된 소스로부터 표현의 데이터를 요청할 수도 있다(196).
[0128] 예를 들어, 서버 디바이스(60)가 선택될 때, 소스 컴포넌트(90)는 표현의 세그먼트와 연관된 URL을 특정하는 HTTP Get 또는 부분 Get을 사용하여 서버 디바이스(60)로부터 데이터를 요청할 수도 있다. 다른 예로서, 브로드캐스트 서버 디바이스(62)가 선택될 때, 소스 컴포넌트(90)는 브로드캐스트 서버 디바이스(62)로부터 선택된 세그먼트의 데이터를 수신하기 위해 브로드캐스트 또는 멀티캐스트를 조인하기 위한 요청을 생성할 수도 있다. 또 다른 예로서, 로컬 스토리지가 선택될 때, 소스 컴포넌트(90)는 로컬 스토리지로부터 데이터를 리트리브하기 위한 요청을 생성할 수도 있다. 이것은 로컬 저장 매체에 의해 저장된 세그먼트와 연관된 URL을 특정할 수도 있다.
[0129] 그 후, 대응하는 소스 디바이스는 요청된 데이터를 리트리벌 디바이스, 예를 들어, 클라이언트 디바이스(40A)에 전송할 수도 있다(198). 요청된 데이터를 수신한 이후에, 클라이언트 디바이스(40A)는 대응하는 오디오 및 비디오 스트림들을 형성하기 위해 수신된 데이터를 디멀티플렉싱할 수도 있다. 그 후, 클라이언트 디바이스(40A)는 예를 들어, 디멀티플렉싱된 오디오 및 비디오 스트림들을 디코딩 및 제공(예를 들어, 렌더링)함으로써 수신된 데이터를 디코딩하고 제공할 수도 있다(200). 다른 예에서, 예를 들어, 리트리벌 디바이스(70)(도 2)가 도 6의 방법의 기법들을 구현할 때, 리트리벌 디바이스(70)는 리트리브된 데이터를 클라이언트 디바이스(40B)에 제공할 수도 있고, 클라이언트 디바이스(40B)는 리트리브된 미디어 데이터를 디코딩하고 렌더링할 수도 있다.
[0130] 이러한 방식으로, 도 6의 방법은 멀티미디어 콘텐츠에 대한 매니페스트 파일을 사용하여, 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하는 단계를 포함하는 방법의 예를 나타낸다. 매니페스트 파일은 멀티미디어 콘텐츠의 복수의 표현들을 나타내는 정보를 포함할 수도 있고, 복수의 표현들은 표현들 중 선택된 하나를 포함할 수도 있으며, 표현들에 대한 멀티미디어 데이터는 복수의 소스들로부터 이용가능할 수도 있다. 방법은 선택된 표현에 대한 멀티미디어 데이터를 리트리브하기 위한 소스들 중 하나를 선택하는 단계를 더 포함할 수도 있다. 더욱이, 방법은 선택된 소스로부터 선택된 표현에 대한 멀티미디어 데이터의 적어도 일부를 리트리브하는 단계를 포함할 수도 있다.
[0131] 도 7은 다양한 소스들 중 하나 또는 그 초과의 것으로부터의 멀티미디어 콘텐츠의 데이터를 리트리브하는 예시적인 방법을 더욱 상세히 예시하는 플로우차트이다. 도 7의 방법은 예시와 설명을 위해 도 3의 컴포넌트들에 관하여 설명된다. 도 3의 멀티-소스 리트리벌 유닛(50)과 유사한 컴포넌트들을 포함하는 디바이스들이 도 7의 방법과 유사한 방법을 수행하도록 구성될 수도 있다는 것을 이해해야 한다. 다시, 도 7의 방법의 단계들은 상이한 순서로 또는 병렬로 수행될 수도 있고, 추가의 단계들이 수행될 수도 있거나 특정한 단계들이 생략될 수도 있다.
[0132] 이러한 예에서, 소스 컴포넌트(90)는 예를 들어, 수신된 MPD 파일을 사용하여, 멀티미디어 콘텐츠에 대한 표현 정보를 결정할 수도 있다(210). 상기 논의한 바와 같이, 표현 정보는 디코딩 및 렌더링 특징들, 세그먼트들에 대한 URL들, 또는 멀티미디어 콘텐츠에 대한 다른 이러한 정보를 포함할 수도 있다. 소스 컴포넌트(90)는 표현 정보를 스트림 관리 유닛(80)에 전송할 수도 있고(212), 스트림 관리 유닛(80)은 표현 정보를 수신할 수도 있다(214). 또한, 일부 예들에서, 스트림 관리 유닛(80)은 표현 정보를 사용하여 표현들 중 하나를 선택할 수도 있다.
[0133] 소스 컴포넌트(90)는 스트림 관리 유닛(80)으로부터 다운로딩 커맨드를 또한 요청할 수도 있다(216). 그 후, 스트림 관리 유닛(80)은 소스 컴포넌트(90)로부터 다운로딩 커맨드에 대한 요청을 수신할 수도 있다(218). 응답하여, 스트림 관리 유닛(80)은 선택된 표현의 데이터를 리트리브하기 위한 소스를 결정할 수도 있다(220). 그 후, 스트림 관리 유닛(80)은 선택된 표현의 선택된 소스 및 데이터(예를 들어, 세그먼트)에 대한 다운로딩 커맨드를 구성할 수도 있다(222). 그에 따라, 다운로딩 정보는 예를 들어, 선택된 소스에 의해 구현된 프로토콜에 따라 포맷팅될 수도 있다. 그 후, 스트림 관리 유닛(80)은 다운로딩 커맨드를 소스 컴포넌트(90)에 전송할 수도 있다(224).
[0134] 소스 컴포넌트(90)는 표시된 소스, 즉, 스트림 관리 유닛(80)에 의해 선택된 소스로부터 멀티미디어 데이터를 요청하기 위해 다운로딩 커맨드를 사용할 수도 있다(226). 요청의 수신(228)에 응답하여, 소스 디바이스는 요청된 멀티미디어 데이터를 전송할 수도 있다(230). 소스 컴포넌트(90)는 요청된 멀티미디어 데이터를 수신하고 버퍼링할 수도 있다(232). 그 후, 소스 컴포넌트(90)는 버퍼링된 데이터를 디멀티플렉싱할 수도 있거나, 데이터를 디멀티플렉싱되도록 다른 디바이스에 전송할 수도 있다.
[0135] 도 8은 스트리밍 관리자(스트림 관리 유닛(80))가 각각의 소스들에 통신가능하게 커플링되는 다양한 인터페이스들로부터 소스 통지들을 수신하는 개념적 타이밍도를 예시하는 플로우차트이다. 이러한 예에서, 스트림 관리 유닛(80)은 3G(3세대 파트너쉽 프로젝트) 무선 라디오, 무선 네트워크(예를 들어, IEEE 802.11x, 종종 "WiFi"로 칭함) 라디오, 및 롱 텀 에볼루션(LTE) 라디오와 같은 플랫폼의 다양한 라디오들에 대한 수신 신호 강도 정보를 나타내는 플랫폼(예를 들어, 모바일 디바이스의 운영 시스템)으로부터 정보를 수신한다.
[0136] 스트림 관리 유닛(80)은 또한, HTTP 수신기 및 스택(74)(도 3)과 같은 HTTP 수신기로부터 예측 대역폭 정보를 수신할 수도 있다. 또한, 스트림 관리 유닛(80)은 브로드캐스트 네트워크가 커버리지(예를 들어, 모바일 디바이스가 통신가능하게 커플링되는 무선 액세스 네트워크(RAN))내에 있는지의 표시 뿐만 아니라 브로드캐스트 네트워크가 RAN의 커버리지내에 있을 때 브로드캐스트를 위한 URL을 수신할 수도 있다. 더욱이 스트림 관리 유닛(80)은 표현의 데이터에 대한 URL이 로컬 스토리지(78)(도 3)와 같은 로컬 스토리지에 의해 저장된 데이터에 대해 이용가능한지의 표시들을 수신할 수도 있다.
[0137] 도 9는 본 개시물의 기법들에 따라 하나 또는 그 초과의 다양한 소스들로부터의 스트림을 초기화하기 위해 적용될 수도 있는 DASH에 따라 스트림을 초기화하는 예시적인 방법을 예시하는 플로우차트이다. 초기에, 소스 컴포넌트(90)는 스트림 인스턴스를 작성할 수도 있다(250). 스트림 관리 유닛(80)은 작성된 스트림 인스턴스로 응답할 수도 있다(252). 스트림 관리 유닛(80)은 또한, 작성된 스트림 인스턴스에 대한 스트림 관리 쓰레드를 작성하여 초기화할 수도 있다(254). 스트림 관리 유닛(80)은 소스 컴포넌트(90)로부터 스트림 소스 능력들을 요청할 수도 있다(256). 소스 컴포넌트(90)는 결정된 스트림 소스 능력들로 응답할 수도 있다(258).
[0138] 그 후, 소스 컴포넌트(90)는 플레이 요청을 스트림 관리 유닛(80)에 이슈할 수도 있고(260), 이는 스트림 관리 유닛(80)이 확인응답할 수도 있다(262). 멀티미디어 콘텐츠의 플레이를 시작하기 위해, 스트림 관리 유닛(80)은 멀티미디어 콘텐츠의 표현 그룹들(예를 들어, 적응 세트들)에 대한 그룹 정보를 요청할 수도 있다(264). 소스 컴포넌트(90)는 이용가능한 적응 세트들 및 적응 세트들에 대응하는 표현들에 대한 공통 특징들을 결정할 수도 있고, 이러한 정보를 스트림 관리 유닛(80)에 제공할 수도 있다(266).
[0139] 적응 세트들 각각에 대해, 스트림 관리 유닛(80)은 적응 세트에서 표현들의 특징들을 설명하는 정보를 요청할 수도 있다(268A 내지 268N). 소스 컴포넌트(90)는 적응 세트들에서의 표현들의 특징들을 설명하는 요청된 정보로 응답할 수도 있다(270A 내지 270N). 그 후, 스트림 관리 유닛(80)은 결정된 가용 대역폭을 주기적으로, 예를 들어, X 밀리초 마다 요청하기 위해 사용될 수도 있는 타이머를 시작할 수도 있다(276). 그에 따라, 타이머가 경과할 때, 스트림 관리 유닛(80)은 관측된 대역폭을 요청할 수도 있고(278), 소스 컴포넌트(90)는 결정된 대역폭의 양으로 응답할 수도 있다(280). 대안으로는, 인터페이스들(73) 중 하나가 결정된 대역폭의 양으로 응답할 수도 있다. 유사하게는, 추가로 또는 대안으로, 스트림 관리 유닛(80)은 브로드캐스트 서버 디바이스(62) 및 물리적 매체 생성 설비(64)에 의해 생성된 물리적 저장 매체와 같은 다른 소스들과의 통신 세션들의 특징들을 또한 요청할 수도 있다. 스트림 관리 유닛(80)은 소스 컴포넌트(90)로부터 점유된 버퍼 공간의 양을 요청할 수도 있고, 이에 응답하여, 소스 컴포넌트(90)는 예를 들어, 미디어 파일 스토리지 핸들링 유닛(92)에 의해 결정된 바와 같은 현재 점유된 버퍼 공간의 양의 표시를 제공할 수도 있다.
[0140] 도 10은 멀티미디어 콘텐츠의 표현들의 데이터 유닛들(예를 들어, 세그먼트들)에 대한 정보를 리트리브하는 예시적인 방법을 예시하는 플로우차트이다. 본 개시물의 기법들에 따르면, 멀티미디어 콘텐츠의 세그먼트들은 예를 들어, 상이한 통신 프로토콜들에 따라 하나 또는 그 초과의 다양한 소스들로부터 리트리브될 수도 있다. 도 10의 예에서, 스트림 관리 유닛(80)은 비트레이트 및 표현을 먼저 선택할 수도 있다(290). 스트림 관리 유닛(80)은 도 9의 단계들(278 및 280)에서 결정된 바와 같은 가용 네트워크 대역폭의 양에 기초하여 비트레이트를 결정할 수도 있다. 그 후, 스트림 관리 유닛(80)은 비트레이트 뿐만 아니라 클라이언트 디바이스의 디코딩 및 렌더링 능력들과 같은 다른 팩터들에 기초하여 표현을 선택할 수도 있다. 더욱이, 도 10의 방법에서의 단계들은 각 적응 세트(예를 들어, 표현들의 각 그룹)에 대해 반복적으로 반복될 수도 있다.
[0141] 표현을 선택한 이후에, 스트림 관리 유닛(80)은 데이터 유닛 정보, 예를 들어, 세그먼트 정보를 요청할 수도 있다(292). 소스 컴포넌트(90)는 요청을 확인응답할 수도 있고(294), MPD 파일로부터의 요청된 세그먼트 정보 또는 세그먼트 인덱스 박스(SIDX)와 같은 멀티미디어 콘텐츠에 대한 다른 데이터 구조를 결정할 수도 있다. 그 후, 소스 컴포넌트(90)는 가용 데이터 유닛들(예를 들어, 세그먼트들)의 표시를 포함하는 결정된 정보를 스트림 관리 유닛(80)에 전송할 수도 있다(296). 그 후, 스트림 관리 유닛(80)은 가용 데이터 유닛들에 관한 정보를 확인응답할 수도 있다(298).
[0142] 소스 컴포넌트(90)로부터 수신된 정보의 분석을 통해, 스트림 관리 유닛(80)은 랜덤 액세스 포인트(RAP)를 포함하는 데이터 유닛(예를 들어, 세그먼트)을 결정할 수도 있다(300). 상술한 바와 같이, RAP는 I-프레임 또는 동일한 프레임에 대응하는 I-슬라이스들의 세트에 대응할 수도 있다. 그 후, 스트림 관리 유닛(80)은 RAP를 포함하는 데이터 유닛(예를 들어, 세그먼트)을 리트리브하기 위한 커맨드를 소스 컴포넌트(90)에 이슈할 수도 있다. 그 후, 소스 컴포넌트(90)는 RAP를 포함하는 데이터 유닛을 리트리브할 수도 있고 수신을 확인할 수도 있다(304).
[0143] 스트림 관리 유닛(80)은 최대수의 다운로딩 요청들까지 요청하도록 커맨드들을 더 구성할 수도 있고, 대응하는 데이터를 리트리브하기 위해 커맨드들을 사용할 수도 있는 소스 컴포넌트(90)에 커맨드들 각각을 이슈할 수도 있다(304 내지 308). 그 후, 스트림 관리 유닛(80)은 소스 컴포넌트(90)에 표시된 표현을 선택할 수도 있고(310), 소스 컴포넌트(90)는 그 선택에 따를 수도 있다(312). 소스 컴포넌트(90)는 표현 선택이 완료된 시간을 표시할 수도 있고(314), 스트림 관리 유닛(80)은 수신을 확인할 수도 있다(316). 이러한 방식으로, 멀티-소스 리트리벌 유닛(50)은 표현들에 대한 랜덤 액세스 포인트들의 위치들과 같은 멀티미디어 콘텐츠의 다양한 표현들을 설명하는 정보를 획득할 수도 있다.
[0144] 도 11은 예를 들어, 레이트 재선택을 수행하기 위해 가용 네트워크 대역폭에서의 변화에 적응하는 예시적인 방법을 예시하는 플로우차트이다. 도 11의 방법은 데이터 유닛, 예를 들어, 세그먼트의 리트리브에 후속할 수도 있다. 그에 따라, 소스 컴포넌트(90)는 데이터 유닛이 다운로딩되었다는 것을 표시할 수도 있고(320), 이는 스트림 관리 유닛(80)이 확인할 수도 있다(322). 단계들(324 내지 326)은 도 9의 단계들(282 내지 284)을 실질적으로 따를 수도 있다. 이러한 예에서, 스트림 관리 유닛(80)은 가용 네트워크 대역폭의 양이 변화되었다는 것을 결정할 수도 있고, 유사하게, 상이한 표현을 선택할 수도 있다(328). 상이한 표현을 선택한 이후에, 스트림 관리 유닛(80)은 소스 컴포넌트(90)에게 현재 데이터 유닛, 예를 들어, 현재 세그먼트의 리트리브를 취소하도록 명령할 수도 있고(320), 따라서, 소스 컴포넌트(90)는 현재 세그먼트의 리트리브를 취소할 수도 있다(322). 이에 후속하여, 단계들(330 내지 358)은 각각의 단계들(292 내지 316)(도 10)에 실질적으로 따른다.
[0145] 하나 또는 그 초과의 예들에서, 설명한 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우에, 기능들은 하나 또는 그 초과의 명령들 또는 코드로서 컴퓨터 판독가능 매체상에 저장될 수도 있거나 컴퓨터 판독가능 매체를 통해 송신될 수도 있고, 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체는 데이터 저장 매체와 같은 유형의 매체, 또는 예를 들어, 통신 프로토콜에 따라 하나의 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체는 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시물에서 설명한 기법들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 리트리브하기 위해 하나 또는 그 초과의 컴퓨터들 또는 하나 또는 그 초과의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 컴퓨터 프로그램 물건은 컴퓨터 판독가능 매체를 포함할 수도 있다.
[0146] 제한이 아닌 예로서, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 문맥이 컴퓨터 판독가능 매체를 적절하게 지칭할 수 있다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 트위스트드 페어(twisted pair), 디지털 가입자 라인(DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 원격 소스로부터 송신되는 경우에, 이러한 동축 케이블, 광섬유 케이블, 트위스트드 페어, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체가 접속들, 반송파들, 신호들, 또는 다른 일시적 매체를 포함하지 않지만, 대신에 비일시적 유형의 저장 매체에 관련된다는 것을 이해해야 한다. 본원에 사용되는 바와 같이, 디스크(disk) 및 디스크(disc)는 컴팩트 디스크(CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크(DVD), 플로피 디스크 및 블루레이 디스크를 포함하고, 여기서, 디스크(disk)들은 통상적으로 데이터를 자기적으로 재생하지만 디스크(disc)들은 레이저를 이용하여 데이터를 광학적으로 재생한다. 상기의 조합들이 또한, 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
[0147] 명령들은 하나 또는 그 초과의 디지털 신호 프로세서들(DSPs), 범용 마이크로프로세서들, 응용 주문형 집적 회로들(ASICs), 필드 프로그램가능한 로직 어레이들(FPGAs), 또는 다른 등가의 집적 또는 개별 로직 회로와 같은 하나 또는 그 초과의 프로세서들에 의해 실행될 수도 있다. 그에 따라, 본원에 사용되는 바와 같은 용어 "프로세서"는 임의의 상술한 구조 또는 본원에 설명한 기법들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 또한, 일부 양태들에서, 본원에 설명한 기능은 인코딩 및 디코딩을 위해 구성되거나, 결합된 코덱에 통합되는 전용 하드웨어 및/또는 소프트웨어 모듈들내에 제공될 수도 있다. 또한, 기법들은 하나 또는 그 초과의 회로들 또는 로직 엘리먼트들에서 완전하게 구현될 수 있다.
[0148] 본 개시물의 기법들은 무선 핸드셋, 집적 회로(IC) 또는 IC들의 세트(예를 들어, 칩세트)를 포함하는 광범위한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들이 개시된 기법들을 수행하도록 구성된 기능적 양태들을 강조하기 위해 본 개시물에 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 오히려, 상술한 바와 같이, 적합한 소프트웨어 및/또는 펌웨어와 함께 상술한 바와 같은 하나 또는 그 초과의 프로세서들을 포함하는 다양한 유닛들이 코덱 하드웨어 유닛에 조합될 수도 있거나 상호작용 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
[0149] 다양한 예들을 설명하였다. 이들 및 다른 예들이 아래의 청구항들의 범위내에 있다.

Claims (37)

  1. 멀티미디어 데이터를 리트리브하는(retrieving) 방법으로서,
    멀티미디어 콘텐츠에 대한 매니페스트 파일(manifest file)을 사용하여, 상기 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하는 단계 ― 상기 매니페스트 파일은 상기 멀티미디어 콘텐츠의 상기 복수의 표현들을 나타내는 정보를 포함하고, 상기 복수의 표현들은 상기 표현들 중 선택된 표현을 포함하며, 상기 표현들에 대한 상기 멀티미디어 데이터는 복수의 소스들로부터 이용가능함 ―;
    상기 선택된 표현에 대한 멀티미디어 데이터를 리트리브하기 위한 상기 소스들 중 하나를 선택하는 단계; 및
    선택된 소스로부터 상기 선택된 표현에 대한 상기 멀티미디어 데이터의 적어도 일부를 리트리브하는 단계
    를 포함하는, 멀티미디어 데이터를 리트리브하는 방법.
  2. 제 1 항에 있어서,
    상기 복수의 소스들은 유니캐스트 서버 디바이스, 브로드캐스트 서버 디바이스, 및 로컬 저장 매체 중 하나 또는 그 초과의 것을 포함하는, 멀티미디어 데이터를 리트리브하는 방법.
  3. 제 1 항에 있어서,
    상기 매니페스트 파일은 확장가능 마크업 언어(XML)에 따라 포맷팅된 미디어 프리젠테이션 디스크립션(MPD) 파일을 포함하고, 상기 MPD 파일은 상기 표현들의 세그먼트들 및 상기 표현들의 특징들의 URL들(uniform resource locators)을 나타내는 정보를 포함하는, 멀티미디어 데이터를 리트리브하는 방법.
  4. 제 1 항에 있어서,
    상기 선택된 소스 이외의 상기 소스들 중 제 2 소스로부터 추가의 멀티미디어 데이터를 리트리브하는 단계를 더 포함하고, 상기 멀티미디어 데이터 및 상기 추가의 멀티미디어 데이터는 공통 시간 재생 기간에 대응하는, 멀티미디어 데이터를 리트리브하는 방법.
  5. 제 4 항에 있어서,
    상기 표현들 중 상기 선택된 표현에 대한 상기 멀티미디어 데이터는 베이스 뷰에 대응하는 비디오 데이터를 포함하고, 상기 추가의 멀티미디어 데이터는 강화 계층의 비디오 데이터를 포함하는, 멀티미디어 데이터를 리트리브하는 방법.
  6. 제 4 항에 있어서,
    상기 추가의 멀티미디어 데이터는 상기 멀티미디어 콘텐츠에 대한 외부 기간(external period)을 포함하는, 멀티미디어 데이터를 리트리브하는 방법.
  7. 제 4 항에 있어서,
    상기 추가의 멀티미디어 데이터는 광고 멀티미디어 데이터를 포함하는, 멀티미디어 데이터를 리트리브하는 방법.
  8. 제 1 항에 있어서,
    상기 매니페스트 파일의 데이터를 사용하여 상기 표현들의 가용성을 결정하는 단계; 및
    상기 매니페스트 파일로부터 상기 표현들의 코딩 특징들, 디스플레이 특징들, 및 비트레이트들을 결정하는 단계를 더 포함하고,
    상기 복수의 표현들 중 하나를 선택하는 단계는 상기 표현의 상기 코딩 특징들, 상기 표현의 상기 디스플레이 특징들, 및 상기 표현의 상기 비트레이트에 기초하여 상기 표현을 선택하는 단계를 포함하는, 멀티미디어 데이터를 리트리브하는 방법.
  9. 제 8 항에 있어서,
    클라이언트 디바이스의 코딩 능력들을 결정하는 단계; 및
    상기 클라이언트 디바이스의 렌더링 능력들을 결정하는 단계를 더 포함하고,
    상기 복수의 표현들 중 하나를 선택하는 단계는, 상기 클라이언트 디바이스의 상기 코딩 능력들이 상기 표현의 상기 코딩 특징을 충족하고 상기 클라이언트 디바이스의 상기 렌더링 능력들이 상기 표현의 상기 디스플레이 특징들을 충족하도록, 상기 표현을 선택하는 단계를 포함하는, 멀티미디어 데이터를 리트리브하는 방법.
  10. 제 1 항에 있어서,
    상기 소스들로부터 수신된 정보에 기초하여 상기 소스들의 가용성을 결정하는 단계를 더 포함하고, 상기 소스들 중 하나를 선택하는 단계는 가용 소스들 중 하나를 선택하는 단계를 포함하는, 멀티미디어 데이터를 리트리브하는 방법.
  11. 디바이스로서,
    복수의 인터페이스들 ― 상기 인터페이스들 각각은 복수의 소스들 각각의 하나에 통신가능하게 커플링됨 ―;
    멀티미디어 콘텐츠에 대한 매니페스트 파일(manifest file)을 사용하여, 상기 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하도록 구성된 스트림 관리 유닛 ― 상기 매니페스트 파일은 상기 멀티미디어 콘텐츠의 상기 복수의 표현들을 나타내는 정보를 포함하고, 상기 복수의 표현들은 상기 표현들 중 선택된 표현을 포함하며, 상기 표현들에 대한 상기 멀티미디어 데이터는 복수의 소스들로부터 이용가능하며, 상기 스트림 관리 유닛은 상기 선택된 표현에 대한 상기 멀티미디어 데이터를 리트리브하기 위한 상기 소스들 중 하나를 선택하도록 구성됨 ―; 및
    선택된 소스에 통신가능하게 커플링된 상기 인터페이스들 중 하나를 통해 상기 선택된 소스로부터 상기 선택된 표현에 대한 상기 멀티미디어 데이터를 리트리브하도록 구성된 소스 컴포넌트를 포함하는, 디바이스.
  12. 제 11 항에 있어서,
    상기 소스 컴포넌트 및 상기 스트림 관리 유닛에 기인하는 기능들에 대한 명령들을 포함하는 컴퓨터 판독가능 저장 매체; 및
    상기 소스 컴포넌트 및 상기 스트림 관리 유닛에 대한 명령들을 실행하도록 구성된 하나 또는 그 초과의 프로세서들을 더 포함하는, 디바이스.
  13. 제 11 항에 있어서,
    상기 복수의 인터페이스들은 하이퍼텍스트 전송 프로토콜(HTTP) 스택을 구현하는 제 1 네트워크 인터페이스, 브로드캐스트 네트워크 송신들을 수신하는 브로드캐스트 스택을 구현하는 제 2 네트워크 인터페이스, 및 컴퓨터 판독가능 저장 매체로부터 데이터를 리트리브하는 컴퓨터 판독가능 저장 매체 인터페이스 중 하나 또는 그 초과의 것을 포함하는, 디바이스.
  14. 제 13 항에 있어서,
    상기 컴퓨터 판독가능 저장 매체는 디지털 비디오 디스크(DVD) 또는 블루-레이(Blu-ray) 디스크를 포함하는, 디바이스.
  15. 제 13 항에 있어서,
    상기 스트림 관리 유닛은, 네트워크 접속이 이용가능한지를 결정하고, 상기 네트워크 접속이 이용가능한 것으로 결정될 때 상기 제 1 네트워크 인터페이스 또는 상기 제 2 네트워크 인터페이스에 통신가능하게 커플링된 상기 소스들 중 하나를 선택하며, 상기 네트워크 접속이 이용가능하지 않은 것으로 결정될 때 상기 컴퓨터 판독가능 저장 매체 인터페이스에 통신가능하게 커플링된 상기 소스들 중 하나를 선택하도록 구성되는, 디바이스.
  16. 제 13 항에 있어서,
    상기 스트림 관리 유닛은 상기 제 1 네트워크 인터페이스로부터 예측 대역폭 정보, 브로드캐스트가 이용가능한지 그리고 상기 브로드캐스트에 대한 URL이 상기 제 2 네트워크 인터페이스로부터 이용가능하지, 그리고 상기 멀티미디어 데이터에 대한 URL이 상기 컴퓨터 판독가능 저장 매체 인터페이스로부터 이용가능한지를 나타내는 정보를 수신하도록 구성되고, 상기 스트림 관리 유닛은 상기 수신된 정보에 적어도 부분적으로 기초하여 상기 소스들 중 하나를 선택하도록 구성되는, 디바이스.
  17. 제 11 항에 있어서,
    상기 스트림 관리 유닛은 상기 선택된 소스 이외의 상기 소스들 중 제 2 소스로부터 추가의 멀티미디어 데이터를 선택하도록 구성되고, 상기 멀티미디어 데이터 및 상기 추가의 멀티미디어 데이터는 공통 시간 재생 기간에 대응하며,
    상기 소스 컴포넌트는 상기 제 2 소스에 통신가능하게 커플링된 상기 인터페이스를 통해 상기 추가의 멀티미디어 데이터를 리트리브하도록 구성되는, 디바이스.
  18. 멀티미디어 데이터를 리트리브하는 디바이스로서,
    멀티미디어 콘텐츠에 대한 매니페스트 파일(manifest file)을 사용하여, 상기 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하기 위한 수단 ― 상기 매니페스트 파일은 상기 멀티미디어 콘텐츠의 상기 복수의 표현들을 나타내는 정보를 포함하고, 상기 복수의 표현들은 상기 표현들 중 선택된 표현을 포함하며, 상기 표현들에 대한 상기 멀티미디어 데이터는 복수의 소스들로부터 이용가능함 ―;
    상기 선택된 표현에 대한 상기 멀티미디어 데이터를 리트리브하기 위한 상기 소스들 중 하나를 선택하기 위한 수단; 및
    상기 선택된 소스로부터 상기 선택된 표현에 대한 상기 멀티미디어 데이터의 적어도 일부를 리트리브하기 위한 수단
    을 포함하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  19. 제 18 항에 있어서,
    상기 복수의 소스들은 유니캐스트 서버 디바이스, 브로드캐스트 서버 디바이스, 및 로컬 저장 매체 중 하나 또는 그 초과의 것을 포함하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  20. 제 18 항에 있어서,
    상기 매니페스트 파일은 확장가능 마크업 언어(XML)에 따라 포맷팅된 미디어 프리젠테이션 디스크립션(MPD) 파일을 포함하고, 상기 MPD 파일은 상기 표현들의 세그먼트들 및 상기 표현들의 특징들의 URL들(uniform resource locators)을 나타내는 정보를 포함하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  21. 제 18 항에 있어서,
    상기 선택된 소스 이외의 상기 소스들 중 제 2 소스로부터 추가의 멀티미디어 데이터를 리트리브하기 위한 수단을 더 포함하고, 상기 멀티미디어 데이터 및 상기 추가의 멀티미디어 데이터는 공통 시간 재생 기간에 대응하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  22. 제 21 항에 있어서,
    상기 표현들 중 상기 선택된 표현에 대한 상기 멀티미디어 데이터는 베이스 뷰에 대응하는 비디오 데이터를 포함하고, 상기 추가의 멀티미디어 데이터는 강화 계층의 비디오 데이터를 포함하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  23. 제 21 항에 있어서,
    상기 추가의 멀티미디어 데이터는 상기 멀티미디어 콘텐츠에 대한 외부 기간을 포함하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  24. 제 21 항에 있어서,
    상기 추가의 멀티미디어 데이터는 광고 멀티미디어 데이터를 포함하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  25. 제 18 항에 있어서,
    상기 매니페스트 파일의 데이터를 사용하여 상기 표현들의 가용성을 결정하기 위한; 및
    상기 매니페스트 파일로부터 상기 표현들의 코딩 특징들, 디스플레이 특징들, 및 비트레이트들을 결정하기 위한 수단을 더 포함하고,
    상기 복수의 표현들 중 하나를 선택하기 위한 수단은 상기 표현의 상기 코딩 특징, 상기 표현의 상기 디스플레이 특징, 및 상기 표현의 상기 비트레이트에 기초하여 상기 표현을 선택하기 위한 수단을 포함하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  26. 제 25 항에 있어서,
    상기 디바이스의 코딩 능력들을 결정하기 위한 수단; 및
    상기 디바이스의 렌더링 능력들을 결정하기 위한 수단을 더 포함하고,
    상기 복수의 표현들 중 하나를 선택하기 위한 수단은, 상기 디바이스의 상기 코딩 능력들이 상기 표현의 상기 코딩 특징들을 충족하고 상기 디바이스의 상기 렌더링 능력들이 상기 표현의 상기 디스플레이 특징들을 충족하도록, 상기 표현을 선택하기 위한 수단을 포함하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  27. 제 18 항에 있어서,
    상기 소스들로부터 수신된 정보에 기초하여 상기 소스들의 가용성을 결정하기 위한 수단을 더 포함하고, 상기 소스들 중 하나를 선택하기 위한 수단은 가용 소스들 중 하나를 선택하기 위한 수단을 포함하는, 멀티미디어 데이터를 리트리브하는 디바이스.
  28. 명령들이 저장되어 있는 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 물건으로서,
    상기 명령들은, 실행될 때, 프로세서로 하여금,
    멀티미디어 콘텐츠에 대한 매니페스트 파일(manifest file)을 사용하여, 상기 멀티미디어 콘텐츠의 멀티미디어 데이터를 리트리브하기 위한 복수의 표현들 중 하나를 선택하게 하고 ― 상기 매니페스트 파일은 상기 멀티미디어 콘텐츠의 상기 복수의 표현들을 나타내는 정보를 포함하고, 상기 복수의 표현들은 상기 표현들 중 선택된 표현을 포함하며, 상기 표현들에 대한 상기 멀티미디어 데이터는 복수의 소스들로부터 이용가능함 ―;
    상기 선택된 표현에 대한 상기 멀티미디어 데이터를 리트리브하기 위한 상기 소스들 중 하나를 선택하게 하고; 그리고
    선택된 소스로부터 상기 선택된 표현에 대한 상기 멀티미디어 데이터의 적어도 일부를 리트리브하게 하는, 컴퓨터 프로그램 물건.
  29. 제 28 항에 있어서,
    상기 복수의 소스들은 유니캐스트 서버 디바이스, 브로드캐스트 서버 디바이스, 및 로컬 저장 매체 중 하나 또는 그 초과의 것을 포함하는, 컴퓨터 프로그램 물건.
  30. 제 28 항에 있어서,
    상기 매니페스트 파일은 확장가능 마크업 언어(XML)에 따라 포맷팅된 미디어 프리젠테이션 디스크립션(MPD) 파일을 포함하고, 상기 MPD 파일은 상기 표현들의 세그먼트들 및 상기 표현들의 특징들의 URL들(uniform resource locators)을 나타내는 정보를 포함하는, 컴퓨터 프로그램 물건.
  31. 제 28 항에 있어서,
    상기 프로세서로 하여금 상기 선택된 소스 이외의 상기 소스들 중 제 2 소스로부터 추가의 멀티미디어 데이터를 리트리브하게 하는 명령들을 더 포함하고, 상기 멀티미디어 데이터 및 상기 추가의 멀티미디어 데이터는 공통 시간 재생 기간에 대응하는, 컴퓨터 프로그램 물건.
  32. 제 31 항에 있어서,
    상기 표현들 중 상기 선택된 표현에 대한 상기 멀티미디어 데이터는 베이스 뷰에 대응하는 비디오 데이터를 포함하고, 상기 추가의 멀티미디어 데이터는 강화 계층의 비디오 데이터를 포함하는, 컴퓨터 프로그램 물건.
  33. 제 31 항에 있어서,
    상기 추가의 멀티미디어 데이터는 상기 멀티미디어 콘텐츠에 대한 외부 기간을 포함하는, 컴퓨터 프로그램 물건.
  34. 제 31 항에 있어서,
    상기 추가의 멀티미디어 데이터는 광고 멀티미디어 데이터를 포함하는, 컴퓨터 프로그램 물건.
  35. 제 28 항에 있어서,
    상기 프로세서로 하여금,
    상기 매니페스트 파일의 데이터를 사용하여 상기 표현들의 가용성을 결정하게 하고; 그리고
    상기 매니페스트 파일로부터 상기 표현들의 코딩 특징들, 디스플레이 특징들, 및 비트레이트들을 결정하게 하는 명령들을 더 포함하고,
    상기 프로세서로 하여금, 상기 복수의 표현들 중 하나를 선택하게 명령들은, 상기 프로세서로 하여금, 상기 표현의 상기 코딩 특징들, 상기 표현의 상기 디스플레이 특징들, 및 상기 표현의 상기 비트레이트에 기초하여 상기 표현을 선택하게 하는 명령들을 포함하는, 컴퓨터 프로그램 물건.
  36. 제 35 항에 있어서,
    상기 프로세서로 하여금,
    클라이언트 디바이스의 코딩 능력들을 결정하게 하고; 그리고
    상기 클라이언트 디바이스의 렌더링 능력들을 결정하게 하는 명령들을 더 포함하고,
    상기 프로세서로 하여금, 상기 복수의 표현들 중 하나를 선택하게 하는 명령들은, 상기 프로세서로 하여금, 상기 클라이언트 디바이스의 상기 코딩 능력들이 상기 표현의 상기 코딩 특징들을 충족하고 상기 클라이언트 디바이스의 상기 렌더링 능력들이 상기 표현의 상기 디스플레이 특징들을 충족하도록, 상기 표현을 선택하게 하는 명령들을 포함하는, 컴퓨터 프로그램 물건.
  37. 제 28 항에 있어서,
    상기 프로세로 하여금, 상기 소스들로부터 수신된 정보에 기초하여 상기 소스들의 가용성을 결정하게 하는 명령들을 더 포함하고, 상기 프로세서로 하여금, 상기 소스들 중 하나를 선택하게 하는 명령들은, 상기 프로세서로 하여금, 가용 소스들 중 하나를 선택하게 하는 명령들을 포함하는, 컴퓨터 프로그램 물건.
KR1020147009181A 2011-09-07 2012-08-31 다수의 소스들로부터의 멀티미디어 데이터의 스트리밍 KR101594351B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161531879P 2011-09-07 2011-09-07
US61/531,879 2011-09-07
US13/561,068 2012-07-29
US13/561,068 US9591361B2 (en) 2011-09-07 2012-07-29 Streaming of multimedia data from multiple sources
PCT/US2012/053377 WO2013036451A1 (en) 2011-09-07 2012-08-31 Streaming of multimedia data from multiple sources

Publications (2)

Publication Number Publication Date
KR20140057659A true KR20140057659A (ko) 2014-05-13
KR101594351B1 KR101594351B1 (ko) 2016-02-17

Family

ID=47754006

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147009181A KR101594351B1 (ko) 2011-09-07 2012-08-31 다수의 소스들로부터의 멀티미디어 데이터의 스트리밍

Country Status (6)

Country Link
US (1) US9591361B2 (ko)
EP (1) EP2754301A1 (ko)
JP (1) JP5964972B2 (ko)
KR (1) KR101594351B1 (ko)
CN (1) CN104081785A (ko)
WO (1) WO2013036451A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150133125A (ko) * 2014-05-19 2015-11-27 삼성전자주식회사 컨텐츠 변환 장치, 컨텐츠 변환 방법 및 기록매체
US9741396B2 (en) 2014-05-19 2017-08-22 Samsung Electronics Co., Ltd. Converting apparatus, contents converting method, and computer readable recording medium

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930991B2 (en) * 2009-11-19 2015-01-06 Gregory Philpott System and method for delivering content to mobile devices
US9071484B1 (en) 2011-04-05 2015-06-30 Elemental Technologies, Inc. Feedback optimized video coding parameters
WO2013089437A1 (ko) * 2011-12-12 2013-06-20 엘지전자 주식회사 미디어 컨텐트를 수신하는 장치 및 방법
US9438883B2 (en) 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
US9380092B2 (en) 2012-04-18 2016-06-28 Google Inc. Method and system for inserting content into streaming media at arbitrary time points
EP2850845A1 (en) 2012-07-09 2015-03-25 Huawei Technologies Co., Ltd. Dynamic adaptive streaming over http client behavior framework and implementation of session management
US9591513B2 (en) * 2012-08-06 2017-03-07 Vid Scale, Inc. Rate adaptation using network signaling
US9154785B2 (en) 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding
CN110139130B (zh) * 2012-10-12 2022-09-20 佳能株式会社 流传输数据的方法、发送和接收视频数据的方法和设备
US9961415B2 (en) 2013-01-24 2018-05-01 Google Llc Method and system for identifying events in a streaming media program
EP2951972A1 (en) * 2013-01-31 2015-12-09 Codemate AS Network content delivery method using a delivery helper node
US9124911B2 (en) * 2013-02-15 2015-09-01 Cox Communications, Inc. Storage optimization in a cloud-enabled network-based digital video recorder
HUE043713T2 (hu) * 2013-03-29 2019-09-30 Intel Ip Corp Minõségtudatos sebességillesztési technikák DASH streameléshez
US9973559B2 (en) 2013-05-29 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for presenting content streams to a client device
US9894125B2 (en) * 2013-07-03 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Redistributing sources for adaptive bit rate streaming
US8762564B1 (en) * 2013-07-10 2014-06-24 Mdialog Corporation Method and system for dynamically selecting, assembling and inserting content into stream media
WO2015009723A1 (en) * 2013-07-15 2015-01-22 Huawei Technologies Co., Ltd. Just-in-time dereferencing of remote elements in dynamic adaptive streaming over hypertext transfer protocol
US9258747B2 (en) * 2013-09-17 2016-02-09 Intel IP Corporation User equipment and methods for fast handover failure recovery in 3GPP LTE network
CN105556922B (zh) * 2013-09-17 2019-06-28 瑞典爱立信有限公司 网络中的dash表示自适应
US9270721B2 (en) * 2013-10-08 2016-02-23 Qualcomm Incorporated Switching between adaptation sets during media streaming
US10440080B2 (en) * 2013-10-18 2019-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Software-defined media platform
US20150134450A1 (en) * 2013-11-08 2015-05-14 ReachDynamics, LLC Cookieless system for providing ad serving in email with dynamic url redirection
US9609372B2 (en) * 2013-12-20 2017-03-28 Verizon Patent And Licensing Inc. Program support service based on secondary network and connection
US11310302B2 (en) * 2014-01-09 2022-04-19 Samsung Electronics Co., Ltd. Method and apparatus for streaming dash content over broadcast channels
US9699229B2 (en) * 2014-01-16 2017-07-04 Qualcomm Incorporated Robust live operation of dash
US9740766B2 (en) * 2014-02-05 2017-08-22 Disney Enterprises, Inc. Methods and systems of playing multi-source media content
US10902474B2 (en) * 2014-03-24 2021-01-26 Qualcomm Incorporated Targeted advertisement insertion for streaming media data
US9866608B2 (en) * 2014-03-24 2018-01-09 Qualcomm Incorporated Processing continuous multi-period content
GB2524531B (en) * 2014-03-25 2018-02-07 Canon Kk Methods, devices, and computer programs for improving streaming of partitioned timed media data
US9813470B2 (en) * 2014-04-07 2017-11-07 Ericsson Ab Unicast ABR streaming
US10798430B2 (en) 2014-06-20 2020-10-06 Saturn Licensing Llc Reception device, reception method, transmission device, and transmission method
CN105376612A (zh) * 2014-08-26 2016-03-02 华为技术有限公司 一种视频播放方法、媒体设备、播放设备以及多媒体系统
US11109101B1 (en) * 2015-05-13 2021-08-31 T-Mobile Usa, Inc. Apparatus, system, and method for ABR segment pull DVR
CN104902320B (zh) * 2015-05-22 2018-07-13 青岛海信移动通信技术股份有限公司 一种媒体文件的播放方法和播放设备
CN104935595B (zh) * 2015-06-16 2019-10-15 华为技术有限公司 内容项聚合方法和相关装置及通信系统
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US9984499B1 (en) 2015-11-30 2018-05-29 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US9854375B2 (en) * 2015-12-01 2017-12-26 Qualcomm Incorporated Selection of coded next generation audio data for transport
US10666961B2 (en) * 2016-01-08 2020-05-26 Qualcomm Incorporated Determining media delivery event locations for media transport
US11039181B1 (en) 2016-05-09 2021-06-15 Google Llc Method and apparatus for secure video manifest/playlist generation and playback
US10785508B2 (en) 2016-05-10 2020-09-22 Google Llc System for measuring video playback events using a server generated manifest/playlist
US10595054B2 (en) 2016-05-10 2020-03-17 Google Llc Method and apparatus for a virtual online video channel
US10771824B1 (en) 2016-05-10 2020-09-08 Google Llc System for managing video playback using a server generated manifest/playlist
US11069378B1 (en) 2016-05-10 2021-07-20 Google Llc Method and apparatus for frame accurate high resolution video editing in cloud using live video streams
US11032588B2 (en) * 2016-05-16 2021-06-08 Google Llc Method and apparatus for spatial enhanced adaptive bitrate live streaming for 360 degree video playback
EP3485646B1 (en) * 2016-07-15 2022-09-07 Koninklijke KPN N.V. Streaming virtual reality video
US10530683B2 (en) * 2016-08-31 2020-01-07 Citrix Systems, Inc. High-quality adaptive bitrate video through multiple links
US10743003B1 (en) 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
US10743004B1 (en) 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
EP3535644B1 (en) 2016-11-04 2023-02-22 Koninklijke KPN N.V. Streaming virtual reality video
US10250941B2 (en) * 2016-12-13 2019-04-02 Nbcuniversal Media, Llc System and method for mapping affiliated graphs using video fingerprints
US10074381B1 (en) 2017-02-20 2018-09-11 Snap Inc. Augmented reality speech balloon system
US10387730B1 (en) * 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
US10887385B2 (en) 2017-09-20 2021-01-05 Akamai Technologies, Inc. Marker based reporting system for hybrid content delivery network and peer to peer network
US11044518B2 (en) 2018-03-20 2021-06-22 At&T Mobility Ii Llc Video access master platform
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US11972529B2 (en) 2019-02-01 2024-04-30 Snap Inc. Augmented reality system
US11523185B2 (en) 2019-06-19 2022-12-06 Koninklijke Kpn N.V. Rendering video stream in sub-area of visible display area
GB2586442B (en) * 2019-06-26 2024-03-27 Univ Dublin City A method and system for encoding and decoding to enable adaptive delivery of mulsemedia streams
US11570517B2 (en) * 2020-06-23 2023-01-31 Tencent America LLC Application intended interactive selection information for interactive playback of dash content
US11711579B1 (en) * 2021-01-25 2023-07-25 Amazon Technologies, Inc. Navigation integrated content stream
CN113660168B (zh) * 2021-10-19 2021-12-31 上海柯林布瑞信息技术有限公司 一种多中心研究数据的处理方法、装置和服务器
US20230336603A1 (en) * 2022-04-19 2023-10-19 Tencent America LLC Processing model for dash client processing model to support handling of dash event updates

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090091722A (ko) * 2006-11-28 2009-08-28 인터내셔널 비지네스 머신즈 코포레이션 유저로의 다중 미디어 스트림 통합
US20100011117A1 (en) * 2008-07-09 2010-01-14 Apple Inc. Video streaming using multiple channels
WO2011038032A2 (en) * 2009-09-22 2011-03-31 Qualcomm Incorporated Enhanced block-request streaming using url templates and construction rules

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU6882998A (en) 1997-03-31 1998-10-22 Broadband Associates Method and system for providing a presentation on a network
US6594699B1 (en) 1997-10-10 2003-07-15 Kasenna, Inc. System for capability based multimedia streaming over a network
US7010492B1 (en) 1999-09-30 2006-03-07 International Business Machines Corporation Method and apparatus for dynamic distribution of controlled and additional selective overlays in a streaming media
JP2004266503A (ja) 2003-02-28 2004-09-24 Matsushita Electric Ind Co Ltd 映像伝送システム
JP2005136762A (ja) 2003-10-31 2005-05-26 Hitachi Ltd 高精細映像再生方法ならびに装置
CN101095348B (zh) 2004-03-03 2014-08-13 分组视频网络技术方案有限公司 用于从网络节点取回数字多媒体内容的系统和方法
US7706895B2 (en) * 2005-02-25 2010-04-27 Rockwell Automation Technologies, Inc. Reliable messaging instruction
US20080195664A1 (en) * 2006-12-13 2008-08-14 Quickplay Media Inc. Automated Content Tag Processing for Mobile Media
JP5338394B2 (ja) 2009-03-10 2013-11-13 日本電気株式会社 映像配信システム、映像配信方法、映像配信装置及び映像配信プログラム
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
CN102473159A (zh) * 2009-11-04 2012-05-23 华为技术有限公司 媒体内容流播的系统和方法
US9621610B2 (en) * 2010-01-18 2017-04-11 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for HTTP media stream distribution
EP2362651A1 (en) 2010-02-19 2011-08-31 Thomson Licensing Multipath delivery for adaptive streaming
RU2690755C2 (ru) * 2010-02-19 2019-06-05 Телефонактиеболагет Л М Эрикссон (Пабл) Способ и устройство для переключения воспроизведений в потоковой передаче по протоколу передачи гипертекста
EP2638682A4 (en) * 2010-11-12 2014-07-23 Realnetworks Inc TRAFFIC MANAGEMENT IN ADAPTIVE STREAMING PROTOCOLS
JPWO2012096372A1 (ja) 2011-01-14 2014-06-09 シャープ株式会社 コンテンツ再生装置、コンテンツ再生方法、配信システム、コンテンツ再生プログラム、記録媒体、およびデータ構造
US9026671B2 (en) * 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
US9413806B2 (en) * 2013-05-24 2016-08-09 Broadcom Corporation Adaptive bit rate proxy
US10110657B2 (en) * 2014-07-03 2018-10-23 Telefonaktiebolaget Lm Ericsson (Publ) System and method for pushing live media content in an adaptive streaming environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090091722A (ko) * 2006-11-28 2009-08-28 인터내셔널 비지네스 머신즈 코포레이션 유저로의 다중 미디어 스트림 통합
US20100011117A1 (en) * 2008-07-09 2010-01-14 Apple Inc. Video streaming using multiple channels
WO2011038032A2 (en) * 2009-09-22 2011-03-31 Qualcomm Incorporated Enhanced block-request streaming using url templates and construction rules

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150133125A (ko) * 2014-05-19 2015-11-27 삼성전자주식회사 컨텐츠 변환 장치, 컨텐츠 변환 방법 및 기록매체
US9741396B2 (en) 2014-05-19 2017-08-22 Samsung Electronics Co., Ltd. Converting apparatus, contents converting method, and computer readable recording medium

Also Published As

Publication number Publication date
WO2013036451A1 (en) 2013-03-14
JP5964972B2 (ja) 2016-08-03
US20130060911A1 (en) 2013-03-07
US9591361B2 (en) 2017-03-07
JP2014531804A (ja) 2014-11-27
KR101594351B1 (ko) 2016-02-17
CN104081785A (zh) 2014-10-01
EP2754301A1 (en) 2014-07-16

Similar Documents

Publication Publication Date Title
KR101594351B1 (ko) 다수의 소스들로부터의 멀티미디어 데이터의 스트리밍
US10805650B2 (en) Signaling important video information in network video streaming using mime type parameters
US10397295B2 (en) Processing continuous multi-period content
US9854375B2 (en) Selection of coded next generation audio data for transport
KR101784051B1 (ko) 코딩된 비디오 데이터의 네트워크 스트리밍
RU2558615C2 (ru) Обновление файла манифеста для сетевой потоковой передачи кодированных видеоданных
US11665219B2 (en) Processing media data using a generic descriptor for file format boxes
US10887645B2 (en) Processing media data using file tracks for web content
KR102076064B1 (ko) Dash의 강건한 라이브 동작
KR20170116027A (ko) 저 레이턴시 비디오 스트리밍
JP2015530784A (ja) ネットワークストリーミングのための失われたメディアデータの置換
KR20190039724A (ko) 미디어 데이터 스트리밍을 위한 sei 트랙들의 시스템 레벨 시그널링
US10587904B2 (en) Processing media data using an omnidirectional media format

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee