KR101617340B1 - 어댑티브 스트리밍을 위한 세그먼트 암호화 및 키 유도를 시그널링하기 위한 시스템 및 방법 - Google Patents

어댑티브 스트리밍을 위한 세그먼트 암호화 및 키 유도를 시그널링하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101617340B1
KR101617340B1 KR1020147032609A KR20147032609A KR101617340B1 KR 101617340 B1 KR101617340 B1 KR 101617340B1 KR 1020147032609 A KR1020147032609 A KR 1020147032609A KR 20147032609 A KR20147032609 A KR 20147032609A KR 101617340 B1 KR101617340 B1 KR 101617340B1
Authority
KR
South Korea
Prior art keywords
segment
decoding
identifying
encoded
group
Prior art date
Application number
KR1020147032609A
Other languages
English (en)
Other versions
KR20140146664A (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 KR20140146664A publication Critical patent/KR20140146664A/ko
Application granted granted Critical
Publication of KR101617340B1 publication Critical patent/KR101617340B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/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/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • 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/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • H04N21/23476Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • H04N21/44055Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption by partially decrypting, e.g. decrypting a video stream that has been partially encrypted
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Library & Information Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

메모리 모듈과 상기 메모리 모듈에 연결된 프로세서 모듈을 포함하는 미디어 스트림을 디코딩하는 장치가 개시된다. 메모리 모듈은 프로세서에 의해 실행된 때 상기 상치로 하여금, 세그먼트 시그널링 정보와 복수의 세그먼트를 포함하는 미디어 스트림을 수신하는 단계; 상기 미디어 스트림 내의 세그먼트 시그널링 정보를 이용하여 적어도 하나의 세그먼트 그룹을 식별하는 단계; 상기 적어도 하나의 세그먼트 그룹을 위해 적어도 하나의 세그먼트 디코딩 알고리즘을 식별하는 단계; 상기 적어도 하나의 세그먼트 그룹을 위해 적어도 하나의 디코딩 키를 식별하는 단계; 및 상기 적어도 하나의 세그먼트 디코딩 알고리즘과 상기 적어도 하나의 디코딩 키를 이용하여 상기 적어도 하나의 세그먼트 그룹 내의 각 인코딩된 세그먼트를 디코딩하는 단계를 수행하도록 하는 명령어를 포함한다.

Description

어댑티브 스트리밍을 위한 세그먼트 암호화 및 키 유도를 시그널링하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR SIGNALING SEGMENT ENCRYPTION AND KEY DERIVATION FOR ADAPTIVE STREAMING}
본 출원은 2012년 4월 26일에 "SYSTEM AND METHOD FOR SIGNALING SEGMENT ENCRYPTION AND KEY DERIVATION FOR ADAPTIVE STREAMING"의 명칭으로 출원된 미국 가출원 제61/638,963호의 우선권을 주장하며 이것은 전체가 참조로서 여기에 통합된다.
본 출원은 어댑티브 스트리밍을 위한 세그먼트 암호화 및 키 유도를 시그널링하기 위한 시스템 및 방법에 관한 것이다.
미디어 콘텐츠 공급자 또는 배포자는 여러 가지 미디어 콘텐츠를 가입자나 이용자에게, 예컨대 텔레비전, 노트북, 컴퓨터 및 모바일 핸드셋과 같은 상이한 장치에 적합한 상이한 암호화 및/또는 코딩 기술을 이용하여 전달한다. 미디어 콘텐츠 공급자는 복수의 미디어 인코더 및/또는 디코더(코덱), 미디어 플레이어, 비디오 프레임 레이트, 공간 해상도, 비트-레이트, 비디오 포맷 또는 이들의 조합을 지원한다. 하나의 미디어 콘텐츠는 서로 다른 사용자 장치에 맞추기 위해 소스(source) 또는 오리지날(orignial) 리프리젠테이션(representations)에서 여러 가지 다른 리프리젠테이션으로 변환된다.
하나의 미디어 콘텐츠는 미디어 프리젠테이션 디스크립션(MPD: Media Presentation Description) 및 복수의 세그먼트를 포함하여 이루어진다. MPD는 미디어 콘텐츠에 관한 정보를 기술하기 위해 프로그래밍된 요소와 속성을 포함한다. 확장성 마크업 언어(XML: Exetensible Markup Language) 프로그래밍에서, 요소는 <element name>에 의해 지시되는 시작 태그, 요소 콘텐츠, 및 </element name> 에 의해 지시되는 종료 태크를 포함하는 3개의 부분을 포함하여 이루어진다. 속성은 속성명과 속성값을 포함하여 이루어진다. MPD는, 예컨대 그것의 여러 리프리젠테이션(이하에서 정의됨), URL, 기타 특성 등, 미디어 콘텐츠를 기술하는 문서 또는 XML 파일일 수 있다. 예컨대, 미디어 콘텐츠는 여러 미디어 컴포넌트(예컨대, 오디오, 비디오, 텍스트)을 포함하고, 이들 각각은 MPD에서 구체적으로 기술되는 상이한 특성을 가지고 있을 수 있다. 각 미디어 컴포넌트는, 실제 미디어 콘텐츠의 파트들을 담고 있는 복수의 세그먼트를 포함하고, 이 세그먼트는 단일 파일에 집단적으로 저장되거나 또는 여러 파일에 개별적으로 저장된다. 각 세그먼트는 미리 정의된 바이트 크기(예컨대 1,000 바이트) 또는 재생 시간의 간격(예컨대 2 또는 5초)을 가진 미디어 콘텐츠를 포함한다. 세그먼트는 개별로 어드레스할 수 있는 최소 단위의 데이터; MPD를 통해 알려진 URL을 이용하여 다운로드 될 수 있는 엔티티를 포함한다.
애플리케이션에 따라, 미디어 콘텐츠는 여러 계층으로 분할될 수 있다. 예컨대, 미디어 콘텐츠는 다수의 기간으로 구성될 수 있는데, 이 기간이란 세그먼트보다 상대적으로 더 긴 시간 간격이다. 예컨대, 텔레비전 프로그램은 여러 개의 5분짜리 프로그램 기간들로 분할될 수 있고, 이것은 여러 개의 2분짜리 광고 기간에 의해 분리될 수 있다. 또한, 기간은 하나 또는 다수의 어댑테이션 세트(AS: Adaptation Set)를 포함할 수 있다. AS는 하나 또는 다수의 미디어 컴포넌트 및 그것/그들의 여러 인코딩된 리프리젠테이션에 관한 정보를 제공한다. 리프리젠테이션은 완전 에셋(complete asset) 또는 그 컴포넌트의 서브셋의 단일 인코딩 버전으로 정의되며, 예컨대 다중화되지 않은 2.5 Mbps 720 화소 어드밴스드 비디오 코딩(AVD: Advanced Vedio Coding) 비디오를 포함하는 메가비트 ISO 기반 미디어 파일 포맷 (ISO-BMFF)과, 상이한 언어로 된 96 Kbps MPEG-4 어드밴스드 오디오 코딩(AAC: Advanced Audio Coding) 오디오를 위한 별도의 ISO-BMFF이다. 예컨대, AS는 미디어 콘텐츠의 상이한 비트-레이트의 비디오 컴포넌트를 포함하는 한편, 다른 AS는 동일한 미디어 콘텐츠의 상이한 비트-레이트의 오디오 컴포넌트를 포함할 수 있다. 리프리젠테이션은, 비트-레이트, 해상도, 채널의 수, 또는 다른 특성 또는 이들의 조합에 의해 다른 리프리젠테이션으로부터 변경된, 미디어 콘텐츠의 인코딩된 대체물(alternative)일 수 있다. 각 리프리젠테이션은 다수의 세그먼트로 구성되고, 이 세그먼트들은 시간적 순서로 된 미디어 콘텐츠 청크(chunk)이다. 게다가, 서브-세그먼트가 다수의 부분으로 세그먼트를 다운로딩할 수 있도록 서브-세그먼트가 사용될 수 있고, 각 서브-세그먼트는 특정된 시간 길이 및/또는 바이트 크기를 가진다. 통상의 기술자라면 미디어 콘텐츠를 전달하기 위해 사용될 수 있는 여러 계층을 이해할 것이다.
어댑티브 스트리밍에 있어서, 미디어 콘텐츠를 사용자 장치에 전달하는 때, 사용자 장치는 적절한 세그먼트를 다양한 인자, 예컨대 네트워크 상태, 장치 성능, 및 사용자 선택에 기초하여 동적으로 선택한다. 어댑티브 스트리밍은, 다이내믹 어댑티브 스트리밍 오버 HTTP (DASH: Dynamic Adaptive Streaming over HTTP), HTTP 라이브 스트리밍(HLS: HTTP Live Streaming), 또는 IIS(Internet Information Services) 스무드 스트리밍과 같은, 구현되어 있거나 또는 개발되고 있는 여러 기술 또는 표준을 포함한다. 예컨대, 사용자 장치는 재생에 있어서 스톨링(stalling) 또는 리버퍼링(rebuffering) 이벤트를 야기하지 않고 재생을 위해 제때 다운로드될 수 있는 가능한 최고 품질(예컨대 해상도 또는 비트-레이트_을 가진 세그먼트를 선택할 수 있다. 따라서, 사용자 장치는 변화하는 네트워크 상태에 그 미디어 콘텐츠 재생을 끊김 없이 적응시킬 수 있다. 미디어 콘텐츠에 대한 부당 변조, 공격 및/또는 권한 없는 액세스를 방지하기 위해, 미디어 콘텐츠의 세그먼트는, 여기서 암호화 또는 인코딩 기법이라고도 불리는 인증 기법에 의해 보호될 필요가 있다.
MPEG-DASH 표준과 같은 어댑티브 스트리밍 기술에 있어서, 세그먼트는, 예컨대 유료 시청 비디오 스트림 모델을 수용하기 위해, 인증 기법의 일부로서 암호화되거나 인코딩된다. 일례로서, "Dynamic Adaptive Streaming over HTTP (DASH) - Part 4: Segment Encryption and Authentication"이라는 명칭의 표준 번호 ISO/IEC 23009-4 초안에서 기술되어 있는 세그먼트 인증 기법이 있는데, 여기서 IEC는 International Electrotechnical Commission의 약자이다. 전체 MEPG 스트림을 인코딩하는 것은 필요 이상으로 큰 스트림을 생성하고, 비교적 더 많은 처리 능력을 요구하며, 및/또는 지연을 초래하고 그 결과 일부 프로토콜은 오직 일부 세그먼트만 인코딩한다. 종래의 접근법은, 예컨대 짝수번 세그먼트는 인코딩하고 홀수번 세그먼트는 인코딩하지 않은 채로 놓아두는, 선택적으로 세그먼트를 인코딩하는 교대 기법(alternation scheme)을 사용해 왔다. 종래의 접근법은 또한 스트림 인코딩을 위해 단일 알고리즘 접근법에 의존했는데, 이것은, 예컨대 제1 소스로부터의 엔터테인먼트 콘텐츠와 제2 소스로부터의 광고와 같이, 상이한 소스로부터의 콘텐츠가 단일의 MPEG 스트림으로 병합되는 것을 허용하지 않는다. 종래의 접근법은 또한 스트림 디코딩 또는 복호 정보를 가진 초기화 벡터를 포함하고, 초기화 벡터의 추후 바인딩(late binding)을 허용하지 않는다.
일 실시예에서, 미디어 스트림을 디코딩하기 위한 장치가 개시된다. 이 장치는 메모리 모듈과 상기 메모리 모듈에 연결된 프로세서 모듈을 포함하고, 상기 메모리 모듈은, 상기 프로세서 모듈에 의해 실행된 때 상기 디코딩 장치로 하여금, 세그먼트 시그널링 정보와 복수의 세그먼트를 포함하는 미디어 스트림을 수신하는 단계; 상기 미디어 스트림 내의 세그먼트 시그널링 정보를 이용하여 적어도 하나의 세그먼트 그룹을 식별하는 단계; 상기 적어도 하나의 세그먼트 그룹을 위해 적어도 하나의 세그먼트 디코딩 알고리즘을 식별하는 단계; 상기 적어도 하나의 세그먼트 그룹을 위해 적어도 하나의 디코딩 키를 식별하는 단계; 및 상기 적어도 하나의 세그먼트 디코딩 알고리즘과 상기 적어도 하나의 디코딩 키를 이용하여 상기 적어도 하나의 세그먼트 그룹 내의 각 인코딩된 세그먼트를 디코딩하는 단계를 수행하도록 하는 명령어를 포함한다.
다른 일 실시예에서, 인코딩된 미디어 스트림을 전송하는 장치가 개시된다. 이 장치는 메모리 모듈과 상기 메모리 모듈에 연결된 프로세서 모듈을 포함하고, 상기 메모리 모듈은, 상기 프로세서 모듈에 의해 실행된 때 상기 전송 장치로 하여금, 복수의 인코딩된 세그먼트와 인코딩되지 않은 세그먼트; 및 세그먼트 시그널링 정보를 포함하는 미디어 스트림을 전송하도록 하는 명령어를 포함하고, 상기 세그먼트 시그널링 정보는, 각 그룹이 적어도 하나의 세그먼트를 포함하는 적어도 2개의 세그먼트 그룹과, 적어도 하나의 세그먼트 디코딩 알고리즘과, 적어도 하나의 디코딩 키와, 적어도 하나의 초기화 벡터를 식별할 수 있는 정보를 포함하고, 상기 적어도 2개의 세그먼트 그룹 각각의 인코딩된 세그먼트가, 상기 적어도 하나의 디코딩 알고리즘, 상기 적어도 하나의 디코딩 키, 및 상기 적어도 하나의 초기화 벡터를 이용하여 디코딩될 수 있다.
다른 일 실시예에서, 미디어 스트림을 디코딩하는 방법이 개시된다. 이 방법은, 복수의 인코딩된 세그먼트와 인코딩되지 않은 세그먼트를 포함하는 미디어 스트림을 수신하는 단계; 인코딩된 세그먼트를 포함하는 적어도 하나의 세그먼트 그룹을 식별하는 단계; 적어도 하나의 세그먼트 디코딩 알고리즘을 식별하는 단계; 적어도 하나의 디코딩 키를 식별하는 단계; 및 상기 적어도 하나의 세그먼트 디코딩 알고리즘과 상기 적어도 하나의 디코딩 키를 이용하여, 상기 인코딩된 세그먼트를 포함하는 적어도 하나의 세그먼트 그룹을 디코딩하는 단계를 포함하고, 상기 미디어 스트림은, 각 그룹이 적어도 하나의 세그먼트를 포함하는 적어도 2개의 세그먼트 그룹을 식별하고, 적어도 하나의 세그먼트 디코딩 알고리즘을 식별하고, 상기 인코딩된 세그먼트를 위한 적어도 하나의 디코딩 키를 식별하며, 상기 인코딩된 세그먼트를 디코딩할 수 있는 세그먼트 시그널링 정보를 더 포함하며, 여기서 상기 세그먼트 그룹 중 어느 것도 인코딩된 세그먼트와 디코딩된 세그먼트를 모두 포함하지는 않는다.
본 개시의 보다 완전한 이해를 위해, 여기서 첨부된 도면과 연관된 간단한 설명과 상세한 설명을 참조하여 설명한다. 유사한 참조 번호는 유사한 부분을 나타낸다.
도 1은 미디어 스트리밍 방법의 실시예를 도시한 것이다.
도 2는 네트워크 요소의 실시예의 개략적인 다이어그램이다.
도 3은 세그먼트를 생성하는 것과 콘텐츠 보호 인코딩을 위한 방법의 실시예를 도시한 개략적인 다이어그램이다.
도 4는 도 3에 기술된 실시예에 따라 데이터를 전송하기 위한 프로토콜 다이어그램이다.
도 5는 세그먼트를 생성하는 것과 콘텐츠 보호 인코딩을 위한 방법의 실시예를 도시한 개략적인 다이어그램이다.
도 6은 도 5에 기술된 실시예에 따라 데이터를 전송하기 위한 프로토콜 다이어그램이다.
이하에서 하나 이사의 실시예의 예시적인 구현 형태가 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려지거나 또는 존재하는 기술을 몇 가지 이용하여 구현될 수 있다는 것을 이해해야 한다. 본 개시는, 예시적인 디자인이나 여기서 기술되거나 보여진 구현예를 포함하여, 예시된 구현예, 도면 및 이하에서 설명되는 기술에 한정되지 않으며, 균등의 범위 내에서 첨부된 청구범위의 권리범위 내에서 변형될 수 있다.
여기에는, 예컨대 MPEG-DASH 스트림과 같은 어댑티브 스트리밍 환경에서 콘텐츠 보로를 위한 플렉시블 시그널링 메커니즘을 위한 시스템 및 방법이 개시된다. 예컨대, 본 개시는 초기화 벡터의 추가 결합(late binding)을 수용하는 새로운 접근법을 포함한다. 또한, 본 개시는 미디어 스트림 내에서 암호화된/인코딩된 또는 암호화되지 않은/인코딩되지 않은 세그먼트를 스트리밍 클라이언트에 통지하는 새로운 접근법을 포함한다. 또한, 본 개시는 각 미디어 스트림에 대해 다수의 암호화/인코딩 알고리즘을 사용하는 접근법을 포함한다. 본 개시는 또한, MPEG-DASH 표준 개발의 콘텍스트에서 플렉시블하고, 효과적이며 콤펙트한 방식으로 어느 세그먼트가 암호화되었는지(일반적으로 인코딩된) 시그널링하기 위한 방법 및 시스템을 포함한다.
종래의 세그먼트 암호화 보고 방법은 모든 세그먼트의 보호가 필요한 때 사용되는 표준 암호화 및 키 매핑 방법을 말한다. 그러한 방법은 하나의 세그먼트를 비트의 집합으로 취급하고 암호화를 전체 세그먼트에 적용하는 식으로 작동한다. 암호화되는 세그먼트의 범위를 식별하고 DASH MPD 내에서 필요한 관련된 키와 초기화 벡터를 특정하기 위해 '정의'가 제공된다. 예컨대, ISO/IEC CD 23009-4 Sec.5.1.2.2는 다음과 같은 시맨틱(semantics) 테이블을 제공한다.

요소 또는
속성 이름

사용

설명

CryptoPeriod

키 정보를 도출하기 위해 필요한 정보와 URL을 특정한다.

@startSegment
0
키/초기화 벡터(IV) 정보가 적용되는 첫번째 미디어 세그먼트의 번호를 특정한다. 특정되어 있지 않으면, 6.4.2에 기술된 도출 규칙이 적용된다.

@endSegment
0
키/IV 정보가 적용되는 마지막 미디어 세그먼트의 번호를 특정한다. 특정되어 있지 않으면, 6.4.2에 기술된 도출 규칙이 적용된다.

@IV
0
초기화 벡터를 특정한다. @ivURL이 있으면 이것은 제시되지 않는다. IV 도출 규칙은 6.4.4.에 기술되어 있다.

@keyURL
0
키 도출을 위한 URL을 특정한다. 키 포맷 정의는 6.4.3.을 참고하라. @keyURLTemplate가 ContentProtection 요소 내에 있으면, @keyURL은 제시되지 않는다. 키 도출 규칙은 6.4.3.에서 기술되어 있다.

@ivURL
0
초기화 벡터 도출을 위한 URL을 특정한다. @IV가 제시되지 않을 때에만 @ivURL이 제시되고, @ivURLTemplate가 ContentProtection 요소 내에 제시되어 있을 때 @ivURL은 제시되지 않는다.
IV 도출 규칙은 6.4.4.에 기술되어 있다.

Legend:
속성에 대해: M=Mandatory, O=Optional, OD=Optional with Default Value, CM=Conditionally Mandatory.
요소에 대해: <minOccurs>...<maxOccurs> (N=unbounded)
다르게 정의되어 있지 않으면, 여기에서 사용되는 용어는 ISO/IEC CD 23009-4의 시맨틱과 정의를 사용하여 정의된다.
위에서 설명한 종래의 방법에서는, 암호화가 @startSegment 및 @endSegment (또는 이들의 잠재적 값) 모두에 의해 시그널링된다. 초기화 벡터가 있다면, 초기화 벡터가 속성 @IV로서 전달된다. 미디어 세그먼트 암호화/복호화 키 정보는 CryptoPeriod 요소의 속성 @keyURL로서 제공되거나 @keyURLTemplate 속성을 통해 제공된다. 콘텐츠 키를 획득하기 위해, HTTPS 프로토콜이 각 CryptoPeriod에 대해 론칭될 필요가 있다.
그와 같은 종래의 방법은 모든 암호화되는 세그먼트에 대해 동일한 초기화 벡터(IV)/키 쌍을 사용하여 연속된 세그먼트의 "범위" 또는 "청크"에 대해 암호화를 수행한다. 예컨대 리프리젠테이션 내에서 홀수번 세그먼트만 암호화하는 것과 같이, 암호화되는 세그먼트가 교대로 나타나도록 하기 위해, 다수의 CryptoPeriod 요소가 필요하고, MPD 크기와 시작 시간을 증가시킨다. MPD 내에서 IV와 keyURL 요소를 전송하는 것은 MPD 크기를 또한 증가시킨다. 예컨대 표준에서 Marlin File Format, Secure Real Time Protocol과 같은 "하드-코디드(hard-coded)" 세그먼트 암호화 포맷의 사용을 특정하는 것은 종래의 방법을 유연하지 않고 또 상이한 키 길이 또는 다른 모드를 사용하여 암호화 포맷을 지원할 수 없게 만든다.
본 개시는 MPD를 확장하는 데 사용되고 예컨대 MPEG-DASH 스트림과 같은 어댑티브 스트리밍 환경에서 콘텐츠 보호를 위한 유연성(flexibility)과 시그널링 메커니즘을 제공한다. 소개되는 시스템과 방법을 표현하는 예시적은 시맨틱(이하에서 설명하겠지만)은 이하의 표에 기술된 것을 포함한다.

속성 이름

사용

설명


0

키/IV 정보가 적용되는 적용가능한 CryptoPeriod에서의 세그먼트의 시그널링을 특정한다. 그 값은 베이스-64 바이너리 포맷으로 인코딩된 바이너리 스트링으로서 설명된다. 키/IV 정보가 CryptoPeriod 내의 i번째 세그먼트에 적용된다면 이 스트링 신호에서의 i번째 비트의 0-1 값은, 적용가능하지 않으면 0을, 적용가능하면 1을 가진다. 특정되어 있지 않으면, 키/IV 정보는 이 CryptoPeriod 내의 모든 미디어 세그먼트에 적용된다. 예컨대 16진수와 같은 이 값의 바이너리 변환의 총 비트수는 CryptoPeriod에서 커버되는 세그먼트의 총 개수보다 크고, 그래서 이 스트링에서의 남은 비트는 무시된다. 한편, 총 비트수가 총 세그먼트의 수보다 적은 경우, 키/IV 정보는 (이들 비트에 의해 시그널링되지 않은) 모든 남은 세그먼트에 디폴트로 적용된다.

@segmentEncryptionSingaling

1

암호화된 세그먼트와 암호화되지 않은 세그먼트를 시그널링하기 위해, 2개 부호형 십진 정수(signed decimal integer) 사이에서 분리자(예컨대 콤마 ",")에 의해 분리되, 부호형 십진 정수의 시퀀스를 나타내는 텍스트 스트링을 특정한다. 이 시퀀스에서 예컨대 3과 같은 양의 십진 정수는 세그먼트 그룹이 3개의 세그먼트를 포함하고 모든 3개의 세그먼트가 동일한 IV/키 쌍에 의해 암호화되어 있다는 것을 나타낸다. -4와 같은 음의 십진 정수는 현재 그룹이 4개의 세그먼트를 포함하고 모든 4개의 세그먼트가 암호화되어 있지 않다는 것을 나타낸다.

@iterates

0

예컨대, @segmentEncryptionSignaling에서 특정되는 것과 같이, 세그먼트 암호화 시그널링을 이용하는 반복 수를 특정한다. 만일 이것이 제시되어 있지 않으면 디폴트는 '1'이다.

@algorithm

0

이 속성과 연관된 모든 세그먼트에 대해 이름, 키 길이 및 암호화 모드를 포함하는 암호화 알고리즘을 특정한다. 예컨대, "aes128-ctr" 및 "aes128-cbc"가 포함된다. 제시되어 있지 않으면, 디폴트는 "aes128-cbc"일 수 있다.

@ivURL

0

IV 도출을 위한 URL을 특정한다. @ivURLTemplate가 ContentProtection 요소에 제시되어 있으면 @ivURLTemplate를 덮어쓴다.

@ivURLTemplate

0

ISO/IEC 23009-1 sec. 5.3.9.4.4.에서 정의된 바와 동일한 신택스(syntax)와 변수 대입(variable substitution)을 이용하여, IV URL 생성을 위한 템플릿을 특정한다. 동일한 ivURL을 이용한 세그먼트의 배달을 위해, 삽입된 세그먼트 번호는 연관된 CryptoPeriod의 첫번째 세그먼트 번호의 수일 수 있다.
주목할 것은, @ivURLTemplate를 사용하는 것은 SegmentTemplate 또는 @keyURLTemplate를 사용하는 것을 의미하는 것은 아니다.

@keyLicenseURL

0

키 도출을 위한 라이선스 URL을 특정한다. @keyLicenseURLTemplate가 ContentProtection에 제시되어 있으면 @keyLicenseURLTemplate를 덮어쓴다. 주목할 것은, 이 속성은 특정 DRM 시스템/방법을 지시하는 ContentProtection 요소와 연결되어 사용될 수 있다.

@keyLicenseURLTemplate

0

예컨대, ISO/IEC 23009-1 sec. 5.3.9.4.4.에 정의된 것과 동일한 신택스 및 변수 대입을 이용하여, 키 전송을 위한 라이선스 URL 생성을 위한 템플릿을 특정한다. 동일한 keyURL을 이용하여 세그먼트를 전달하기 위해, 삽입된 세그먼트 번호는 연관된 CryptoPeriod의 첫번째 세그먼트 번호의 수일 수 있다. @keyURLTemplate가 제시되어 있으면 이것은 제시되지 않을 수 있다. 주목할 것은, @keyLicenseURLTemplate의 사용이 SegmentTemplate 및 @ivURLTemplate와 같은 다른 템플릿의 사용을 의미하는 것은 아니다.
또한 이 속성은 특정 DRM 시스템/방법을 나타내는 ContentProtection 요소와 연결되어 사용될 수 있다.
먼저 @segmentEncryptionFlag 및 @segmentEncryptionSignaling 속성을 보면, @segmentEncryptionFlan 속성은 CryptoReriod 요소에 또는 예컨대 DASH MPD 내의 ContentProtection 요소와 같은 세그먼트를 시그널링할 필요가 있는 임의의 요소에 도입된다. @segmentEncryptionFlag 값은 베이스64 포맷, 16진수 포맷 등으로 인코딩되는 것과 같은, 바이너리 스트링을 표현한다. 이 스트링 내의 i번째 비트의 0-1 값은 CryptoPeriod 내의 i번째 세그먼트가 인코딩 또는 암호화되어 있는지 여부를 시그널링한다. 예컨대, 인코딩되지 않거나 암호화되지 않으면 0, 인코딩되거나 암호화되어 있으면 1이다. 예컨대, AAAA (16진수) = 1010 1010 1010 1010 (2진수)의 값은 홀수번 세그먼트 1, 3, 5, 7, 9, 11, 13, 15가 암호화되고 짝수번 세그먼트 2, 4, 6, 8, 10, 12, 14는 그렇지 않다는 것을 나타내는 세그먼트 맵을 제공하고, 5EB52 (16진수) = 0101 1110 1011 0101 0010 (2진수)의 값은 세그먼트 2, 4, 5, 6, 7, 9, 11, 12, 14, 16, 19는 암호화되고 1-20 중 다른 세그먼트는 그렇지 않다는 것을 나타낸다.
@segmentEncryptionSignaling 속성은 상이한 방식으로 @segmentEncryptionFlag과 유사한 기능을 한다. @segmentEncryptionSignaling 속성은 암호화되거나 및/또는 암호화되지 않은 세그먼트를 그룹화하고 추가 정보를 제공하기 위해 텍스트의 스트링으로서 양의 정수 및 음의 정수를 이용하여 암호화된 세그먼트의 세그먼트 매핑을 생성한다. 예컨대, @segmentEncryptionSignaling의 값이 "3, -4, 3, 1"이면, 이것은, 11개 세그먼트가 있고 그 세그먼트들은 4개 그룹의 인접하는 세그먼트로 나누어지며, 그 4개의 그룹에 포함된 인접한 세그먼트의 수는 각각 3, -4, 3, 1이며, 2번째 그룹의 모든 세그먼트는 암호화되지 않았고 다른 그룹의 모든 세그먼트는 암호화되어 있다는 것을 나타내며, 이들 4개 그룹은 그 대응하는 정수의 순서에 따라 시간적 순서를 가진다는 것을 의미한다.
@segmentEncryptionFlag 수의 바이너리 변환에서의 총 비트수나 @segmentEncryptionSignaling에서 규정된 세그먼트가 CryptoPeriod에서 커버되는 총 세그먼트의 수보다 큰 경우, 이 스트링의 남은 비트는 무시된다. @segmentEncryptionFlag 수의 바이너리 변환에서의 총 비트수가 총 세그먼트 수보다 작은 때(예컨대, 기간(period)의 종점이 정해지지 않은 때), 남은 세그먼트(그 비트에 의해 시그널링되지 않은)은 모두 디폴트에 의해 암호화될 수 있다. 주목할 것은, 암호화가 n개의 디지트(digit)의 16진수에 의해 시그널링될 수 있는 세그먼트의 최대 개수는 n의 4배이다. 이것은, 만일 100개의 암호화 또는 인코딩된 세그먼트가 CryptoPeriod 내에 있다면, 25 디지트의 16진수가 그들이 암호화되었는지 시그널링하기에 충분하다.
@iterates 값은, 적용 가능한 세그먼트를 디코딩하기 위해 요구되는 @segmentEncryptionFla 및/또는 @segmentEncryptionSignaling 속성의 반복수를 나타내는 양의 수이다. 이것이 제시되어 있지 않으면, 디폴트는 오직 한번이다. 따라서, 필요한 경우, 예컨대, @sementEncryptionFla = 1101 (2진수) 및 @iterates = 1000 (베이스 10)을 가지고, 많은 수의 세그먼트에 대해 보다 콤팩트한 형태로 세그먼트 맵을 나타낸다.
@algorithm 속성은 이 속성과 연관된 세그먼트를 인코딩 또는 암호화하기 위해 사용된 알고리즘을 나타낸다. 이것은 다수의 알고리즘을 이용하여 하나의 스트림을 인코딩하는 것을 수용하는 데 도움이 된다.
@ivURL 및 @ivURLTemplate 속성은 IV의 추후 바인딩을 지원하기 위해 도입된다. @ivURL 및 @ivURLTemplate 속성의 구현은 종래의 접근법에 포함된 @keyURL 속성 및 @keyURLTemplate를 이용한 키의 추후 바인딩의 구현과 유사하다.
@keyLicenseURL 및 @keyLicenseURLTemplate 요소는 라이선스의 형태로 키 전송을 지원하기 위해 도입된다. 이들 속성은 DRM 패러다임에서 현재 사용되고 있는 것과 유사한 방식으로 권한을 얻기 위해 라이선스 서버에 접속하기 위한 위치와 포맷을 특정한다.
통상의 기술자라면 다수의 세그먼트 그룹을 위해 다수의 CryptoPeriod를 가지는 것이 필요하지는 않다는 것을 알 것이다. 3개의 속성, 예컨대 @segmentEncryptionSignaling, @ivURLTemplate 및 @keyURLTemplate를 가진 오직 하나의 ContentProtection 요소로도 리프리젠테이션이나 어뎁테이션세트(AdaptationSet)를 위한 모든 필요한 세그먼트 암호화 정보를 제공하기에 충분하다.
도 1은 미디어 스트링 방법(100)의 실시예를 도시한 것이고, 이것은 미디어 콘텐츠를 HTTP 서버(120)로부터 스트리밍 클라이언트(110)로 배송하기 위해 구현된다. 예컨대, 이 스트리밍 방법(100)은 DASH 또는 다른 형태의 스트리밍 방법이다. 스트리밍 클라이언트(110)는 스탠드얼론 장치, 사용자 장치의 오퍼레이팅 시스템에서 구현되는 프로그램이나 어플리케이션, 또는 웹 플랫폼에서 액세스되는 웹 클라이언트일 수 있다. HTTP 서버(120)에 저장된 미디어 콘텐츠는 스트리밍 미디어 준비 유닛(130)에 의해 생성되거나 준비될 수 있다. 미디어 준비 유닛(130)은 HTTP 서버(120)와 같은 곳에 위치하거나 또는 다른 곳(예컨대 콘텐츠 공급자 측)에 위치할 수 있다. HTTP 서버(120)는 콘텐츠 공급자 네트워크의 일부일 수 있고 또는 콘텐츠 배포 네트워크(CDN: cotents distribution network)의 노드일 수 있다. 미디어 콘텐츠는 적어도 부분적으로 하나 이상의 콘텐츠 공급자에 의해 생성되고 그런 다음 CDN 노드에 전송된다. HTTP 서버(120)의 미디어 콘텐츠는 MPD 및 복수의 세그먼트로 구성된다. 필요하다면, MPD와 세그먼트는 서로 다른 서버에 저장되고 스트리밍 클라이언트(110)에 의해 서로 다른 서버로부터 탐색될 수 있다. 또한, 여기 기술된 HTTP 서버는 단지 서버의 일례이며, 여기 개시된 실시예들은 또한 다른 임의의 적합한 형태의 서버에서 구현될 수도 있다.
본 스트리밍 방법(100)에서, 스트리밍 클라이언트(110)는 미디어 콘텐츠에 대한 요청을 HTTP 서버(120)에 전송한다. 이에 응답하여, HTTP 서버(120)는 먼저 MPD 배송 기능(140)을 이용하여 MPD를 스트리밍 클라이언트(110)에 배송한다. MPD는 HTTP, HTTPS, 이메일, USB 드라이브, 브로드캐스트 또는 다른 전송 방법을 이용하여 배송된다. MPD를 파싱하는 것에 의해 스트리밍 클라이언트(110)는 미디어 콘텐츠에 대한 정보, 예컨대 프로그램의 시간, 미디어 콘텐츠의 이용가능 여부, 미디어 타입, 해상도, 최소 및 최대 대역, 멀티미디어 컴포넌트의 다양한 인코딩된 대체 버전, 접근성 특성 및 요구되는 DRM, 각 미디어 컴포넌트의 네트워크상의 위치, 및 미디어 콘텐츠와 배송 환경의 다른 특징들과 같은 것을 알게 된다. 이 정보를 이용하여, 스트리밍 클라이언트(110)는 적합한 인코딩된 리프리젠테이션 또는 리프리젠테이션의 조합을 선택하고 HTTP Get 요청을 이용하여 세그먼트를 페칭(fetch)함으로써 미디어 콘텐츠의 스트리밍을 개시한다. HTTP 서버(120)는 세그먼트 배송 기능을 사용하여 세그먼트를 스트리밍 클라이언트(110)에 배송한다. 스트리밍 클라이언트(110)는 예컨대 네트워크 대역의 이용을 최대화하기 위해 복수의 HTTP 서버로부터 세그먼트를 다운로딩할 수 있다. 스트리밍 클라이언트(110)는 다운로딩된 미디어를 적절하게 렌더링하여 스트리밍 클라이언트(110)의 사용자에게 스트리밍 서비스를 제공한다. 스트리밍 클라이언트(110)가 MPD 내에 포함된 URL에 의해 특정된 위치로부터 기본적으로 세그먼트를 획득하지만, 다르게는 (예컨대, HTTP 서버(120) 또는 CDN 노드 내에 있는) 세그먼트는 HTTP 캐시(150)에 저장되어 스트리밍 클라이언트(110)의 수신 효율을 향상시킬 수 있다.
버퍼링이 필요한 경우, 네크워크 처리량 변화에 대해 허용되는 적절한 버퍼링 후에, 스트리밍 클라이언트(110)가 네트워크의 대역 변동을 모니터링하면서 후속하는 세그먼트의 다운로딩을 계속할 수 있다. 측정값에 기초하여, 스트리밍 클라이언트(110)는, 적절한 버퍼를 유지하기 위해 상이한 리프리젠테이션(예컨대 더 낮거나 또는 더 높은 비트-레이트를 가진)의 세그먼트를 다운로딩하는 것에 의해 이용 가능한 대역에 스트리밍을 적응적으로 맞추어 조정할 수 있다.
본 개시에서 기술되는 적어도 일부의 특징/방법은 네트워크 요소에 의해 구현될 수 잇다. 예컨대, 본 개시의 특징/방법은 하드웨어, 펌웨어 및/또는 하드웨어에서 실행되도록 설치된 소프트웨어를 이용하여 구현될 수 있다. 네트워크 요소는, 예컨대 스위치, 라우터, 브리지, 서버, 클라이언트 등의 네트워크를 통해 데이터를 전송하는 임의의 장치일 수 있다. 도 2는 네트워크 요소(200)의 실시예에 대한 개략적인 다이어그램이고, 이것은 네트워크를 통해 데이터를 전송하고 처리할 수 있는 것이라면 어떤 장치든 될 수 있다. 예컨대, 네트워크 요소(200)는 콘텐츠 라우터 또는, 여기에 기술된 방법들 중 하나를 구현하는 CCN(content cetnric network)/NDN(named data network) 내의 임의의 장치나 라우터일 수 있다. 네트워크 요소(200)는 상술한 어댑티브 포워딩 기술을 지원하거나 구현하도록 구성된다.
네트워크 요소(200)는 송수신기(Tx/Rx)(212)에 연결된 하나 이상의 다운스트림 포트(210)를 포함하고, 송수신기는 송신기, 수신기 도는 그 조합이다. Tx/Rx(212)는 다른 노드에서 다운스트림 포트(210)를 경유하여 프레임을 수신하거나 및/또는 이를 전송한다. 유사하게, 네트워크 요소(200)는 복수의 업스트림 포트(230)에 연결된 다른 하나의 Tx/Rx(212)를 포함하는데, 이 Tx/Rx(212)는 다른 노드로부터 업스트림 포트(230)를 통해 프레임을 수신하거나 및/또는 전송한다. 프로세서(225)는 Tx/Rx들(212)에 연결되고 프레임을 처리하거나 및/또는 어느 노드가 프레임을 전송할지를 결정한다. 이 프로세서9225)는 하나 이상의 멀티-코어 프로세서 및/또는 메모리 모듈(222)을 포함하고, 이 메모리 모듈은 데이터 스토어, 버퍼 등으로서 기능한다. 프로세서(225)는 일반적인 프로세서로서 구현될 수 있고 하나 이상의 ASIC 및/또는 디지털 신호 프로세서(DSP)의 일부일 수도 있다. 다운스트림 포트(210) 및/또는 업스트림 포트(230)는 전기적 및/또는 광학적 전송 및/또는 수신 컴포넌트를 포함한다. 네트워크 요소(200)는 라우팅 결정을 내리는 라우팅 컴포넌트일 수도 있고 그렇지 않을 수도 있다. 메모리 모듈(222)은 여기에 기술된 시스템 및 방법을 예컨대 스트리밍 클라이언트(110)로서 HTTP 서버(120)로서 수행하기 위한 명령어를 수용하기 위해 사용된다. 메모리 모듈(222)은 프로그래머블 콘텐츠 포워딩 플레인 블록(228)을 포함하는데 이것은 프로세서(225) 상에서 구현될 수 있다. 다르게는, 포워딩 플레인 블록(228)이 프로세서(225) 상에 직접 구현될 수 있다. 프로그래머블 컨텐츠 포워딩 플레인 블록(228)은, OSI(Open Systme Interconnection) 모델에서의 어플리케이션 계층 또는 계층 3와 같은, 콘텐츠 포워딩 및 처리 기능을 구현하고, 여기서 콘텐츠는 콘텐츠 이름 또는 프리픽스, 그리고 가능하게는 네트워크 트래픽에 콘텐츠를 매핑시키는 다른 콘텐츠 관련 정보에 기초하여 포워딩된다. 그러한 매핑 정보는 메모리 모듈(222)에서의 콘텐츠 테이블(229)에 유지된다. 프로그래머블 콘텐츠 포워딩 플레인 블록(228)은 콘텐츠에 대한 사용자 요청을 해석하고 그에 따라 예컨대 메타데이터 및/또는 콘텐츠 이름에 기초하여, 네트워크 또는 다른 콘텐츠 라우터로부터 콘텐츠를 전송하고, 예컨대 임시적으로, 그 콘텐츠를 메모리 모듈(222)에 저장한다. 그런 다음, 프로그래머블 콘텐츠 포워딩 플레인 블록(228)은 사용자에게 캐시된 콘텐츠를 포워딩한다. 프로그래머블 콘텐츠 포워딩 플레인 블록(228)은 소프트웨어, 하드웨어 또는 양자를 이용하여 구현되고, IPrPcmd, 예컨대 OSI 모델에서 링킹 계층 2 또는 링킹 계층 3의 위에서 작동한다. 메모리 모듈(222)은 임시로 콘텐츠를 저장하기 위한 캐시, 예컨대 RAM을 포함한다. 추가로, 메모리 모듈(222)은 예컨대 ROM과 같은, 비교적 길게 콘텐츠를 저장하기 위한 장기 저장소를 포함할 수도 있다. 예컨대, 캐시 및 장기 저장소는 DRAM, SSD, 하드 디스크 또는 이들의 조합을 포함한다.
실행 가능한 명령어를 네트워크 요소(200) 상에 로딩 및/또는 프로그래밍하는 것에 의해, 프로세서(220), 캐시 및 장기 저장소 중 적어도 하나가 변화되고 네트워크 요소(200)를 부분적으로 특정 머신이나 장치, 예컨대 멀티-코어 포워딩 아키텍쳐와 같은 본 개시에 의해 제안된 새로운 기능을 가진 머신 이나 장치로 변형시킨다. 전기 엔지니어링 및 소프트웨어 엔지니어링 기술에 있어서 실행 가능한 소프트웨어를 컴퓨터에 로딩하는 것에 의해 구현될 수 있는 기능은 잘 알려진 설계 규칙에 의해 하드웨어 구현으로 변환될 수 있다는 것은 기초적인 것이다. 개념을 구현하기 위한 소프트웨어 대 하드웨어 간의 결정은 전형적으로 소프트웨어 도메인으로부터 하드웨어 도메인으로 전환하는 것에 관여된 어떤 문제들보다 설계의 안정성과 생성될 유닛의 수에 대한 고려에 초점을 두고 있다. 일반적으로, 여전히 자주 변경되는 디자인은 소프트웨어로 구현하는 것이 더 좋다. 왜냐하면, 하드웨어를 다시 만드는 것은 소프트웨어 설계를 다시 하는 것보다 더 비용이 들기 때문이다. 일반적으로, 안정적이고 대량으로 생성될 설계는 하드웨어, 예컨대 ASIC으로 구현되는 것이 좋다. 왜냐하면 대량 생산에서는 하드웨어가 소프트웨어보다 더 비싸지 않기 때문이다. 종종 디자인이 소프트웨어로 개발되어 테스트되고 이후에 공지의 디자인 규칙에 따라 소프트웨어의 명령어를 하드와이어(hardwire)하는 ASIC 에서 등가의 하드웨어로 변환된다. 같은 방법으로, 새로운 ASIC에 의해 제어되는 머신은 특정의 머신 또는 장치이고, 마찬가지로 실행 가능한 명령어가 프로그래밍되거나 및/또는 로딩된 컴퓨터는 특정 머신 또는 장치로 간주된다.
도 3은 세그먼트 생성과 콘텐츠 보호 인코딩을 위한 방법(300)의 실시예를 도시한 다이어그램이다. 이 방법(300)은 HTTP 서버, 예컨대 도 1의 HTTP 서버(120)에 의해 구현되거나 또는 예컨대 도 2의 네트워크 요소의 형태로 된 미디어 콘텐츠 공급자에 의해 구현된다. 예컨대, 이 방법(300)은 포워딩 플레인 블록(228)의 일부일 수 있다. 미디어 콘텐츠(302)는 세그먼테이션 유닛 또는 모듈(304)에 의해, 예컨대 리프리젠테이션(306 및/또는 308)(전체적으로 또는 교대로(306/308))과 같이 복수의 세그먼트로 나누어진다. 상술한 바와 같이, 어플리케이션에 따라, 여러 다양한 체계(hierarchy)가 미디어 콘텐츠를 나타내기 위해 사용된다. 서브-세그먼트가 사용된다면, 여기에서 기술한 방법은 세그먼트에 적용되는 것과 같이 서브-세그먼트에 적용된다.
각 리프리젠테이션(306/308)은, 예컨대 초기화 세그먼트(IS: Initialization Segment)(310 및/또는 312) 및 적어도 하나의 미디어 세그먼트(MS: Media Segment)(318 및/또는 320)와 같은 복수의 세그먼트를 포함한다. 예컨대, 도 3에 도시된 바와 같이, 리프리젠테이션(306)은 하나의 IS(310)과 m개의 MS(318)을 포함한다. 비슷하게, 리프리젠테이션(308)은 하나의 IS(312) 및 k개의 MS(320)을 포함한다. 각 리프리젠테이션(306/308)은 같거나 서로 다른 총 개수의 세그먼트를 가진다. 예컨대, 도 3에서, 리프리젠테이션(306)은 m개의 MS(318)을 포함하는 한편, 리프리젠테이션(308)은 k개의 MS(320)를 가진다. 여기서 k와 m은 같거나 다를 수 있다. 게다가, 세그먼트 암호화 시그널링 모듈(326)은 여기서 기술한 세그먼트 암호화 시그널링을 생성하고 그 세그먼트 암호화 시그널링을 ContentProtection 요소(324) 및 보호 시스템(322)에 전송한다.
보호 시스템(322)은, 예컨대 특정 콘텐츠 보호 시스템을 적용하여, 리프리젠테이션(306, 308)이 DASH-콤플라이언트(compliant)로 되도록 처리한다. 보호 시스템(322)는 어느 MS(318 및/또는 320)가 인코딩이 필요한지를 결정하고 세그먼트 암호화 시그널링/세그먼트 매핑을 위해 채용할 적합한 @segmentEncryptionSignaling을 생성한다. 보호 시스템(322)은 제3자 라이선스 서버와 조직화하여 라이선스 서버 URL을 획득하고 제3자 IV 서버와 조직화하여 ivURL을 획득한다. 이 방법(300)은 MPD 스트림을 324에서 ContentProtection 요소에 덧붙이고 @segmentEncryptionSignaling 속성, @ivURLTemplate 속성, @keyURLTemplate 속성 및 @LicenseServerURL 속성을 생성하여 바인딩한다. 보호 시스템(322)은 MS(318 및/또는 320)를 미리 정해진 방식으로 하나 이상의 미리 선택된 알고리즘을 사용하여 인코딩 또는 암호화하여 리프리젠테이션(328, 330)을 생성한다. 리프리젠테이션(328, 330)은 IS(332, 334) 및 인코딩된 MS(336, 338)을 포함한다. 다수의 또는 비표준 알고리즘이 채용된 경우, 하나 이상의 @algorithm 속성이 덧붙여져서 MPD 스트림에 바인딩된다.
임의의 실시예에서, 세그먼트 시그널링 정보가, 시간에 따라 변하든 그렇지 않든, 미디어로부터의 별개 스트림에 배치된다. 예컨대, 이것은, 패킷 식별자(PD: Packet Identifier)를 스트림에 할당하고 그것을 예컨대 MPEG-2 전송 스트림 내에서, 프로그램의 일부로 만드는 것에 의해 수행된다. 다르게는, 이 정보가 암호화되지 않거나 인코딩되지 않고 남은 인덱스 세그먼트에 배치될 수 있다. 또 다른 하나의 옵션은 MPD 파일 내에 그 정보를 배치하는 것이다. 이 세번째 경우에는, 시간에 따라 변하지 않는 임의의 부분이 이들 MPD 요소 또는 개별 세그먼트와 반복적으로 연관되는 속성들 내에 배치될 수도 있다.
도 4는 도 3에 기술된 실시예 하에서 데이터를 전송하기 위한 프로토콜 다이어그램이다. 도 4는, 예컨대 도 1의 클라이언트(110)와 같은 콘텐츠 보호 방법(300)을 지원하도록 구성된 DASH 클라이언트(402), 예컨대 도 1의 HTTP 서버(120)와 같은 이 방법(300)을 실행하도록 구성된 웹 서버(404), 예컨대 도 2의 네트워크 요소(200)와 같은 라이선스 서버(406)를 포함한다. 클라이언트(402)는 408에서 웹 서버(404)에 MPD에 대한 HTTP 요청을 한다. 410에서, 웹 서버(404)는 예컨대 도 3의 IS(332, 334)를 포함하는, MPD에 대한 HTTP 응답을 클라이언트(402)에 전송한다. 클라이언트(402)는 적합한 디코딩 선택 및/또는 구성을 리소스 통계, 네트워크 환경 또는 상황, 장치 성능, 사용자 선택 등에 따라 행한다. 412에서, 클라이언트(402)는 MPD 내에 포함된 정보를 해석하기 위해 MPD를 파싱하고, 414에서 클라이언트(402)는 권한 오브젝트 프로세스(414)를 실행한다. 구체적으로, 416에서, 클라이언트(402)는 @keyLicenseURL URL을 이용하여 라이선스 서버(406)로부터 권한 오브젝트를 요청하고, 418에서, 라이선스 서버(406)가 요청된 라이선스 및/또는 권한 오브젝트를 가지고 클라이언트(402)에 응답한다. 420에서, 클라이언트(402)는 @ivURL URL을 이용하여 라이선스 서버(406)로부터 IV를 요청한다. 422에서, 라이선스 서버(406)는 요청된 IV 데이터를 가지고 클라이언트(402)에 응답한다. @keyLicenseURLTemplate와 @ivURLTemplate 데이터를 이용하여, 클라이언트(402)는 연관된 세그먼트를 디코딩하기 위해 필요한 IV/키 쌍을 획득한다. 라이선스와 IV가 동일한 라이선스 서버(406)로부터 전송되지만, 통상의 기술자라면, 대체 가능한 실시예에서, 라이선스와 IV가 서로 다른 서버에 저장되고 서로 다른 서버로부터 전송될 수 있다는 것을 알 것이다. 424에서, 클라이언트(402)는 웹 서버(404)에 세그먼트에 대한 HTTP 요청을 보낸다. 426에서, 웹 서버(404)는, 예컨대 도 3의 MS(336 및/또는 338)와 같은, 코딩된 미디어 세그먼트를 포함하여 클라이언트(402)에 세그먼트에 대한 HTTP 응답을 전송한다. MPD와 세그먼트가 동일한 웹 서버(404)로부터 전송되었지만, 통상의 기술자라면, 대체 가능한 실시예에서, 미디어 콘텐츠를 기술하는 MPD와 미디어 콘텐츠의 세그먼트가 서로 다른 서버에 저장되고 서로 다른 서버로부터 전송될 수 있다는 것을 알 것이다. 예컨대, MPD가 콘텐츠 배포자로부터 전송되고, 세그먼트는 제3자 콘텐츠 배송 노드(CDN)로부터 전송될 수 있다. 클라이언트(402)는 @segmentEncryptionSignaling 정보에 따라 적합한 알고리즘 암호화 IV/키 쌍을 적용하는 것에 의해 암호화된 미디어를 복호한다. 428에서, 클라이언트(402)는 클라이언트(402)의 사용자(도시되지 않음)에게 미디어 스트림을 제공하기 위해 플레이아웃 개시 시퀀스(playout start sequence)를 시작한다. 430에서, 클라이언트(402)는 리소스 통계를 갱신하고, 432에서, 클라이언트(402)는 갱신된 통계에 따라 적응적으로 세그먼트를 선택한다. 데이터 스트림을 유지하는 것이 요구되므로, 클라이언트(402)는 스트리밍이 완료될 때까지 하나 이상의 단계 408 내지 426을 다시 실행한다. 알 수 있듯이, 위에서 언급한 단계들의 순서는 단지 예시적이며 통상의 기술자라면 일부 단계들이 동시에 행해지거나 또는 다른 순서로 행해질 수 있다는 것을 알 것이다.
도 5는, 세그먼트의 생성과 콘텐츠 보호 인코딩을 위한 방법(500)의 실시예를 도시한 다이어그램이다. 달리 언급하지 않으면, 도 5에 열거된 컴포넌트들은 실질적으로 도 3의 컴포넌트들과 유사하다. 이 방법(500)은, 예컨대 도 1의 HTTP 서버(120)와 같은 HTTP 서버에 의해 구현되거나, 예컨대 도 2의 네트워크 요소(200)의 형태로 된 미디어 콘텐츠 공급자에 의해 구현된다. 예컨대, 이 방법(500)은 도 2의 포워딩 플레인 블록(228)의 일부일 수 있다. 미디어 콘텐츠(502)는 세그먼테이션 유닛 또는 모듈(504)에 의해 복수의 세그먼트, 예컨대 리프리젠테이션(506 및/또는 508)로 (집단적으로 또는 교대로, (506/508)) 분할될 수 있다. 상술한 바와 같이, 어플리케이션에 따라, 여러 다양한 체계가 미디어 콘텐츠를 표현하는 데 사용될 수 있다. 서브-세그먼트가 사용되는 경우, 여기 기술된 방법은 세그먼트에 적용되는 것과 같이 서브-세그먼트에 적용된다.
각 리프리젠테이션(506/508)은, 예컨대 IS(510 및/또는 512), 인덱스 세그먼트(514 및/또는 516), 및 적어도 하나의 MS(518 및/또는 520)와 같은 복수의 세그먼트를 포함한다. 예컨대, 도 5에 도시된 바와 같이, 리프리젠테이션(506)은 하나의 IS(510), 하나의 인덱스 세그먼트(514), 그리고 m개의 MS(518)을 포함한다. 마찬가지로, 리프리젠테이션(508)은 하나의 IS(512), 하나의 인덱스 세그먼트(516), 그리고 k개의 MS(520)을 포함한다. 각 리프리젠테이션(506/508)은 동일하거나 상이한 수의 총 세그먼트를 가진다. 예컨대, 도 5에서, 리프리젠테이션(506)은 m개의 MS(518)를 가지는 한편, 리프리젠테이션(508)은 k개의 MS(520)를 가지며, k와 m은 같거나 다르다.
보호 시스템(522)은 예컨대 특정 콘텐츠 보호 시스템을 적용하여, 리프리젠테이션(506, 508)이 DASH-콤플라이언트(compliant)로 되도록 처리한다. 보호 시스템(522)는 어느 MS(518 및/또는 520)가 인코딩이 필요한지를 결정하고 세그먼트 암호화 시그널링/세그먼트 매핑을 위해 채용할 적합한 @segmentEncryptionFlag을 생성한다. 보호 시스템(522)은, 제3자 라이선스 서버와 조직화하여 라이선스 서버 URL을 획득하고, 524에서, MPD에 ContentProtection 요소를 덧붙이며, 526에서 @segmentEncryptionFlag을 생성하여 바인딩한다. 보호 시스템(522)은 324에서 MPD 스트림에 ContentProtection 요소를 덧붙이고 @segmentEncryptionFlag 속성, @iv 속성, @keyURLTemplate 속성 및 @LicenseServerURL 속성을 생성하여 바인딩한다. 보호 시스템(522)은 리프리젠테이션(528, 530)을 생성하기 위해 하나 이상의 미리 선택된 알고리즘을 이용하여 미리 정해진 방식으로 MS(518 및/또는 520)를 인코딩 또는 암호화한다. 리프리젠테이션(528, 530)은 IS(532, 534), 인덱스 세그먼트(540, 542), 그리고 인코딩된 MS(536, 538)를 포함한다. 다수의 또는 표준이 아닌 알고리즘이 채용되면, 하나 이상의 @algorithm 속성이 MPD 스트림에 덧붙여지고 바인딩된다.
임의의 실시예에서, 예컨대 암호화 알고리즘과 암호화 동작 모드와 같은 시불변 콘텐츠 보호 정보(TI-CPI: Time-invariant Content Protection Information), 또는 예컨대 암호화 키 및 초기화 벡터와 같은 시변 콘텐츠 보호 정보(TV-CPI: Time-variant Content Protection Information)가, 예컨대 도 5에 도시된 바와 같이 암호화된 미디어 세그먼트-관련 IS(532 및또는 534) 또는 인덱스 세그먼트(540 및/또는 542) 내로, 그 스트림에 부가된다.
도 6은, 도 5에서 기술된 실시예 하에서 데이터를 전송하기 위한 프로토콜 다이어그램이다. 도 6은, 콘텐츠 보호 방법을 지원하도록 구성된 DASH 클라이언트(402), 방법(500)을 실행하도록 구성된 웹 서버(404), 및 라이선스 서버(406)를 포함한다. 클라이언트(402)는 508에서 웹 서버(404)에 MPD에 대한 HTTP 요청을 한다. 510에서, 웹 서버(404)는, 예컨대 도 5의 IS(532, 534) 및 인덱스 세그먼트(540, 542)를 포함하는, MPD에 대한 HTTP 응답을 클라이언트(402)에 전송한다. 클라이언트(402)는 적합한 디코딩 선택 및/또는 구성을 리소스 통계, 네트워크 환경 또는 상황, 장치 성능, 사용자 선택 등에 따라 행한다. 512에서, 클라이언트(402)는 MPD 내에 포함된 정보를 해석하기 위해 MPD를 파싱하고, 514에서 클라이언트(402)는 권한 오브젝트 프로세스(514)를 실행한다. 구체적으로, 516에서, 클라이언트(402)는 @keyLicenseURL URL을 이용하여 라이선스 서버(406)으로부터 권한 오브젝트를 요청하고, 518에서, 라이선스 서버(406)가 요청된 라이선스 및/또는 권한 오브젝트를 가지고 클라이언트(402)에 응답한다. @keyLiceseURLTemplate를 이용하여, 클라이언트(402)는 연관된 세그먼트를 디코딩하기 위해 필요한 IV/키 쌍에 대한 라이선스 및/또는 키를 획득한다. 이 IV 및, 다른 실시예에서는, 세그먼트 암호화 키가 인덱스 세그먼트로부터 획득된다. 524에서, 클라이언트(402)는 웹 서버(404)에 세그먼트에 대한 HTTP 요청을 보낸다. 526에서, 웹 서버(404)는, 예컨대 도 5의 MS(536 및/또는 538)와 같은, 코딩된 미디어 세그먼트를 포함하여 클라이언트(402)에 세그먼트에 대한 HTTP 응답을 전송한다. MPD와 세그먼트가 동일한 웹 서버(404)로부터 전송되었지만, 통상의 기술자라면, 대체 가능한 실시예에서, 미디어 콘텐츠를 기술하는 MPD와 미디어 콘텐츠의 세그먼트가 서로 다른 서버에 저장되고 서로 다른 서버로부터 전송될 수 있다는 것을 알 것이다. 예컨대, MPD가 콘텐츠 배포자로부터 전송되고, 세그먼트는 제3자 콘텐츠 배송 노드(CDN)로부터 전송될 수 있다. 클라이언트(402)는 527에서 @segmentEncryptionFlag 정보에 따라 적합한 알고리즘 암호화 IV/키 쌍을 적용하는 것에 의해 암호화된 미디어를 복호한다. 528에서, 클라이언트(402)는 클라이언트(402)의 사용자(도시되지 않음)에게 미디어 스트림을 제공하기 위해 플레이아웃 개시 시퀀스(playout start sequence)를 시작한다. 530에서, 클라이언트(402)는 리소스 통계를 갱신하고, 532에서, 클라이언트(402)는 갱신된 통계에 따라 적응적으로 세그먼트를 선택한다. 데이터 스트림을 유지하는 것이 요구되므로, 클라이언트(402)는 스트리밍이 완료될 때까지 하나 이상의 단계 508 내지 526을 다시 실행한다. 알 수 있듯이, 위에서 언급한 단계들의 순서는 단지 예시적이며 통상의 기술자라면 일부 단계들이 동시에 행해지거나 또는 다른 순서로 행해질 수 있다는 것을 알 것이다.
적어도 하나의 실시예가 개시되고, 통상의 기술자에 의해 이루어지는 그 실시예 및/또는 그 실시예의 특징의 변형, 조합 및/또는 변경은 본 개시의 범위 내에 있다. 본 실시예들을 결합하거나 통합하거나 및/또는 그 특징을 생략하는 것 또한 본 개시의 범위 내에 있다. 수치 범위 또는 한정이 명백하게 언급된 경우, 그러한 명시된 범위나 한정은 명시적으로 언급된 범위 또는 한정 내에 포함되는 유사한 크기의 반복적인 범위나 한정을 포함하는 것으로 이해되어야 한다(예컨대, 약 1 내지 약 10은 2, 3, 4 등을 포함하고, 0.01보다 더 크다는 것은 0.11, 0.12, 0.13 등을 포함한다). 예컨대, 하한 Rl와 상한 Ru를 가진 수치 범위가 개시된 경우, 그 범위 내에 포함된 어떤 수치든 특정적으로 개시된 것이다. 구체적으로, 그 범위 내에 있는 다음의 수치들이 구체적으로 개시된다: R=Rl+k*(Ru-Rl), 여기서 k는 1%에서 100%까지 범위의 변수이고 1%씩 증가하는데, 즉 k는 1%, 2%, 3%, 4%, 5%...50%, 51%, 52%,...95%, 96%, 97%, 98%, 99% 또는 100%이다. 게다가, 위에서 정의된 것과 같이 두 개의 R 숫자에 의해 정의된 수치 범위 또한 구체적으로 개시된 것이다. 또 '약'이라는 용어의 사용은 다른 언급이 없으면 후속하는 숫자의 ±10%를 의미한다. 청구범위의 어느 요소에 대한 "선택적으로"라는 용어의 사용은 그 요소가 요구되거나 또는 다르게는 요구되지 않고, 양자 중 어느 것이든 청구범위 내에 포함된다는 것을 의미한다. '포함한다', '가진다' 와 같은 보다 넣은 용어의 사용은, '~로만 이루어지다', '~를 필수로 이루어지다', '실질적으로 ~로 이루어지다'와 같은 더 좁은 용어에 대한 뒷받침을 제공하는 것으로 이해되어야 한다. 여기에 언급된 모든 문서는 참조로서 통합된다.
여러 실시예가 본 개시에서 제공되는 한편, 개시된 시스템 및 방법은 본 개시의 기술적 사상이나 권리범위를 벗어나지 않고 다른 많은 특정 형태로 구현된다. 본 예들은 예시적이며 한정적이 아닌 것으로 취급되어야 하고, 여기에 주어진 구체적인 사항에 한정하는 의도는 아니다. 예컨대, 여러 가지 요소나 컴포넌트는 결합되거나 다른 시스템에 통합될 수 있고 어떤 특징은 생략될 수 있거나 구현되지 않을 수 있다.
또한, 다양한 실시예에서 별개로 또는 상이하게 기술되고 도시된 기술, 시스템, 서브시스템 및 방법이 결합되거나 다른 시스템, 모듈, 기술 또는 방법에 본 개시의 기술적 사상을 벗어나지 않고 통합될 수 있다. 결합되거나 또는 직접 결합되거나 또는 서로 통신하는 것으로 기술되거나 도시된 다른 요소들은, 전기적으로든, 기계적으로든 또는 다르게, 간접적으로 결합되거나 다른 인터페이스, 장치 또는 매체 컴포넌트를 통해 통신할 수 있다. 변경, 대체, 변형의 다른 예들은 통상의 기술자에 의해 얻어질 수 있고 여기에 개시된 기술적 사상과 권리범위를 벗어나지 않고 만들어질 수 있다.

Claims (20)

  1. 미디어 스트림을 디코딩하는 디코딩 장치에 있어서,
    메모리 모듈; 및
    상기 메모리 모듈에 연결된 프로세서 모듈
    을 포함하고,
    상기 메모리 모듈은, 상기 프로세서 모듈에 의해 실행된 때 상기 디코딩 장치로 하여금,
    세그먼트 시그널링 정보와 복수의 세그먼트를 포함하는 미디어 스트림을 수신하는 단계;
    상기 미디어 스트림 내의 세그먼트 시그널링 정보를 이용하여 적어도 하나의 세그먼트 그룹을 식별하는 단계;
    상기 적어도 하나의 세그먼트 그룹을 위해 적어도 하나의 세그먼트 디코딩 알고리즘을 식별하는 단계;
    상기 적어도 하나의 세그먼트 그룹을 위해 적어도 하나의 디코딩 키를 식별하는 단계; 및
    상기 적어도 하나의 세그먼트 디코딩 알고리즘과 상기 적어도 하나의 디코딩 키를 이용하여 상기 적어도 하나의 세그먼트 그룹 내의 각 인코딩된 세그먼트를 디코딩하는 단계
    을 수행하도록 하는 명령어를 포함하고,
    상기 복수의 세그먼트는 인코딩된 세그먼트와 인코딩되지 않은 세그먼트를 포함하고, 상기 세그먼트 시그널링 정보는 각 그룹이 적어도 하나의 세그먼트를 포함하는 적어도 2개의 세그먼트 그룹의 식별자를 포함하고,
    상기 세그먼트 시그널링 정보는,
    양수 및 음수의 스트링으로서, 여기서 양수 n은 n개의 이웃하는 인코딩된 세그먼트로 된 세그먼트 그룹을 나타내고, 음수 -m은 m개의 인코딩되지 않은 세그먼트로 된 세그먼트 그룹을 나타내는, 상기 양수 및 음수의 스트링; 및
    데이터의 스트링으로서, 상기 데이터는 이진 코드로서 인코딩된 세그먼트를 1로 나타내고 또 인코딩되지 않은 세그먼트를 0으로 나타내는, 상기 데이터의 스트링
    중 하나를 포함하는,
    디코딩 장치.
  2. 제1항에 있어서,
    상기 세그먼트 시그널링 정보는 미디어 스트림 초기화 세그먼트(media stream initialization segment) 내에 포함되어 있지 않은 것인, 디코딩 장치.
  3. 제1항에 있어서,
    상기 적어도 하나의 세그먼트 그룹을 식별하는 단계는, 제1 세그먼트 그룹 및 제2 세그먼트 그룹을 식별하는 단계를 포함하고,
    상기 적어도 하나의 세그먼트 디코딩 알고리즘을 식별하는 단계가, 상기 제1 세그먼트 그룹을 위한 제1 세그먼트 디코딩 알고리즘 및 상기 제2 세그먼트 그룹을 위한 제2 세그먼트 디코딩 알고리즘을 식별하는 단계를 포함하고,
    상기 제1 세그먼트 디코딩 알고리즘과 상기 제2 세그먼트 디코딩 알고리즘은 서로 상이한,
    디코딩 장치.
  4. 제1항에 있어서,
    상기 적어도 하나의 세그먼트 그룹을 식별하는 단계가, 제1 세그먼트 그룹 및 제2 세그먼트 그룹을 식별하는 단계를 포함하고,
    상기 적어도 하나의 디코딩 키를 식별하는 단계가, 상기 제1 세그먼트 그룹을 위한 제1 디코딩 키 및 상기 제2 세그먼트 그룹을 위한 제2 디코딩 키를 식별하는 단계를 포함하고,
    상기 제1 디코딩 키와 상기 제2 디코딩 키는 서로 상이한,
    디코딩 장치.
  5. 제1항에 있어서,
    상기 적어도 하나의 세그먼트 그룹을 위한 적어도 하나의 초기화 벡터를 식별하는 단계를 더 포함하고,
    상기 디코딩하는 단계에서는 상기 적어도 하나의 초기화 벡터를 추가로 이용하여 디코딩하는,
    디코딩 장치.
  6. 제5항에 있어서,
    상기 미디어 스트림은 초기화 벡터 템플릿을 더 포함하고,
    상기 초기화 벡터 템플릿은 초기화 벡터 생성을 위한 템플릿을 특정하는 것인,
    디코딩 장치.
  7. 인코딩된 미디어 스트림을 전송하는 전송 장치에 있어서,
    메모리 모듈; 및
    상기 메모리 모듈에 연결된 프로세서 모듈
    을 포함하고,
    상기 메모리 모듈은, 상기 프로세서 모듈에 의해 실행된 때 상기 전송 장치로 하여금,
    복수의 인코딩된 세그먼트와 인코딩되지 않은 세그먼트; 및
    세그먼트 시그널링 정보
    를 포함하는 미디어 스트림을 전송하도록 하는 명령어를 포함하고,
    상기 세그먼트 시그널링 정보는,
    각 그룹이 적어도 하나의 세그먼트를 포함하는 적어도 2개의 세그먼트 그룹과,
    적어도 하나의 세그먼트 디코딩 알고리즘과,
    적어도 하나의 디코딩 키와,
    적어도 하나의 초기화 벡터
    를 식별할 수 있는 정보를 포함하고,
    상기 적어도 2개의 세그먼트 그룹을 식별할 수 있는 정보가,
    양수 및 음수의 스트링으로서, 여기서 양수 n은 n개의 이웃하는 인코딩된 세그먼트로 된 세그먼트 그룹을 나타내고, 음수 -m은 m개의 인코딩되지 않은 세그먼트로 된 세그먼트 그룹을 나타내는, 상기 양수 및 음수의 스트링; 및
    데이터의 스트링으로서, 상기 데이터는 이진 코드로서 인코딩된 세그먼트를 1로 나타내고 또 인코딩되지 않은 세그먼트를 0으로 나타내는, 상기 데이터의 스트링
    중 어느 하나를 포함하고,
    상기 적어도 2개의 세그먼트 그룹 각각의 인코딩된 세그먼트가, 상기 적어도 하나의 디코딩 알고리즘, 상기 적어도 하나의 디코딩 키, 및 상기 적어도 하나의 초기화 벡터를 이용하여 디코딩될 수 있는,
    전송 장치.
  8. 제7항에 있어서,
    상기 적어도 하나의 초기화 벡터를 식별할 수 있는 정보가 유니폼 리소스 로케이터(URL: Uniform Resource Locator)인,
    전송 장치.
  9. 제7항에 있어서,
    상기 적어도 하나의 초기화 벡터를 식별할 수 있는 정보가, 초기화 벡터 생성을 위한 초기화 벡터 템플릿을 더 포함하고, 제3자와의 연계하여 초기화 벡터를 생성할 수 있게 하는 정보인,
    전송 장치.
  10. 제7항에 있어서,
    상기 적어도 2개의 세그먼트 그룹을 식별할 수 있는 정보는 인코딩된 세그먼트를 포함하는 적어도 2개의 세그먼트 그룹을 식별할 수 있는 정보이고,
    상기 적어도 하나의 디코딩 키를 식별할 수 있는 정보는 복수의 인코딩된 세그먼트를 디코딩하기 위한 적어도 2개의 디코딩 키를 식별할 수 있는 정보이며,
    각각의 디코딩 키는 인코딩된 세그먼트를 포함하는 하나의 세그먼트 그룹과 각각 연관되어 있는,
    전송 장치.
  11. 제10항에 있어서,
    상기 적어도 2개의 세그먼트 그룹을 식별할 수 있는 정보는 인코딩된 세그먼트를 포함하는 적어도 2개의 세그먼트 그룹을 식별할 수 있는 정보이고,
    상기 적어도 하나의 세그먼트 디코딩 알고리즘을 식별할 수 있는 정보는 적어도 2개의 세그먼트 디코딩 알고리즘을 식별할 수 있는 정보이며,
    각각의 세그먼트 디코딩 알고리즘은 인코딩된 세그먼트를 포함하는 하나의 세그먼트 그룹과 각각 연관되어 있는,
    전송 장치.
  12. 제7항에 있어서,
    상기 세그먼트 시그널링 정보는 미디어 스트림 초기화 세그먼트 내에 포함되어 있지 않은, 전송 장치.
  13. 미디어 스트림을 디코딩하는 방법에 있어서,
    복수의 인코딩된 세그먼트와 인코딩되지 않은 세그먼트를 포함하는 미디어 스트림을 수신하는 단계;
    인코딩된 세그먼트를 포함하는 적어도 하나의 세그먼트 그룹을 식별하는 단계;
    적어도 하나의 세그먼트 디코딩 알고리즘을 식별하는 단계;
    적어도 하나의 디코딩 키를 식별하는 단계; 및
    상기 적어도 하나의 세그먼트 디코딩 알고리즘과 상기 적어도 하나의 디코딩 키를 이용하여, 상기 인코딩된 세그먼트를 포함하는 적어도 하나의 세그먼트 그룹을 디코딩하는 단계
    를 포함하고,
    상기 미디어 스트림은,
    각 그룹이 적어도 하나의 세그먼트를 포함하는 적어도 2개의 세그먼트 그룹을 식별하고,
    적어도 하나의 세그먼트 디코딩 알고리즘을 식별하고,
    상기 인코딩된 세그먼트를 위한 적어도 하나의 디코딩 키를 식별하며,
    상기 인코딩된 세그먼트를 디코딩할 수 있는
    세그먼트 시그널링 정보를 더 포함하고,
    상기 세그먼트 시그널링 정보가 양수 및 음수의 스트링을 포함하고,
    여기서 양수 n은 n개의 이웃하는 인코딩된 세그먼트로 된 세그먼트 그룹을 나타내고, 음수 -m은 m개의 인코딩되지 않은 세그먼트로 된 세그먼트 그룹을 나타내고,
    여기서 상기 세그먼트 그룹 중 어느 것도 인코딩된 세그먼트와 디코딩된 세그먼트를 모두 포함하지는 않는,
    디코딩 방법.
  14. 제13항에 있어서,
    상기 세그먼트 시그널링 정보는 제3자에게 초기화 벡터를 질의(query)할 수 있는 정보를 더 포함하고,
    상기 디코딩 방법은,
    상기 초기화 벡터를 상기 제3자에게 질의하는 단계;
    상기 초기화 벡터를 수신하는 단계; 및
    상기 초기화 벡터를 바인딩(binding)하는 단계
    를 더 포함하고,
    상기 디코딩하는 단계에서는 상기 초기화 벡터가 추가로 이용되는,
    디코딩 방법.
  15. 제14항에 있어서,
    상기 세그먼트 시그널링 정보가 초기화 벡터 생성을 위한 템플릿을 특정하는 초기화 벡터 템플릿을 더 포함하는, 디코딩 방법.
  16. 제13항에 있어서,
    상기 미디어 스트림은 제2의 세그먼트 디코딩 알고리즘을 식별할 수 있는 정보를 더 포함하고,
    상기 디코딩 방법은,
    상기 제2의 세그먼트 디코딩 알고리즘을 식별하는 단계;
    인코딩된 세그먼트를 포함하는 제2의 세그먼트 그룹을 식별하는 단계; 및
    상기 제2의 세그먼트 디코딩 알고리즘을 이용하여 상기 제2의 세그먼트 그룹을 디코딩하는 단계
    를 더 포함하는,
    디코딩 방법.
  17. 제13항에 있어서,
    상기 세그먼트 시그널링 정보가 미디어 스트림 초기화 세그먼트 내에 포함되어 있지 않은, 디코딩 방법.
  18. 삭제
  19. 삭제
  20. 삭제
KR1020147032609A 2012-04-26 2013-04-26 어댑티브 스트리밍을 위한 세그먼트 암호화 및 키 유도를 시그널링하기 위한 시스템 및 방법 KR101617340B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261638963P 2012-04-26 2012-04-26
US61/638,963 2012-04-26
PCT/US2013/038434 WO2013163555A1 (en) 2012-04-26 2013-04-26 System and method for signaling segment encryption and key derivation for adaptive streaming

Publications (2)

Publication Number Publication Date
KR20140146664A KR20140146664A (ko) 2014-12-26
KR101617340B1 true KR101617340B1 (ko) 2016-05-02

Family

ID=48325947

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147032609A KR101617340B1 (ko) 2012-04-26 2013-04-26 어댑티브 스트리밍을 위한 세그먼트 암호화 및 키 유도를 시그널링하기 위한 시스템 및 방법

Country Status (12)

Country Link
US (3) US9015468B2 (ko)
EP (2) EP3340634B1 (ko)
JP (1) JP5923661B2 (ko)
KR (1) KR101617340B1 (ko)
CN (1) CN104380753B (ko)
BR (1) BR112014026659B1 (ko)
CA (1) CA2871652C (ko)
HK (1) HK1203724A1 (ko)
MY (1) MY185190A (ko)
SG (1) SG11201406908WA (ko)
WO (1) WO2013163555A1 (ko)
ZA (1) ZA201407905B (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120092432A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 디지털 방송 시스템에서 컨텐츠 송수신 장치 및 방법
US9438883B2 (en) * 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
US9270461B2 (en) * 2012-04-27 2016-02-23 Futurewei Technologies, Inc. System and method for efficient support for short cryptoperiods in template mode
US9444794B2 (en) * 2012-07-03 2016-09-13 Futurewei Technologies, Inc. Low-latency secure segment encryption and authentication interface
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
JP6187780B2 (ja) 2012-10-24 2017-08-30 パナソニックIpマネジメント株式会社 通信システム、受信端末、送信端末、および流量制御方法
CN104854835B (zh) * 2013-01-17 2018-07-06 英特尔Ip公司 用于dash感知网络应用功能(d-naf)的装置和方法
KR101474320B1 (ko) * 2013-02-04 2014-12-18 아주대학교산학협력단 위치기반 컨텐츠를 위한 위치기반 컨텐츠 중심 네트워킹 방법
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9258289B2 (en) * 2013-04-29 2016-02-09 Arbor Networks Authentication of IP source addresses
US20150019629A1 (en) * 2013-07-15 2015-01-15 Futurewei Technologies, Inc. Just-in-Time Dereferencing of Remote Elements in Dynamic Adaptive Streaming over Hypertext Transfer Protocol
US9628528B2 (en) 2013-07-19 2017-04-18 Electronics And Telecommunications Research Institute Apparatus and method for providing content
US10182038B2 (en) * 2013-07-29 2019-01-15 Mobitv, Inc. Efficient common storage of partially encrypted content
US9330101B2 (en) 2013-12-18 2016-05-03 Microsoft Technology Licensing, Llc Using constraints on media file formats to improve performance
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
US9992281B2 (en) * 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
JP6365860B2 (ja) * 2014-09-23 2018-08-01 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ストリーミングメディアにおけるコンテンツコンポーネントのオーナーシップ識別、シグナリング、および取り扱い
US10187680B2 (en) 2014-11-11 2019-01-22 Cisco Technology, Inc. Adaptive bit rate system architectures using named domain networking
US9800911B2 (en) * 2015-06-26 2017-10-24 Intel Corporation Technologies for selective content licensing and secure playback
US20180270208A1 (en) * 2015-10-09 2018-09-20 Sony Corporation Image processing apparatus and image processing method
US10263965B2 (en) * 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US10015560B2 (en) * 2016-03-11 2018-07-03 Comcast Cable Communications, Llc Policy based transcoding
JP7028183B2 (ja) * 2016-11-11 2022-03-02 ソニーグループ株式会社 管理装置および管理方法
RU2634179C1 (ru) * 2016-12-12 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ и система для доверенного доведения информации до пользователя
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
CN109429112A (zh) * 2017-08-24 2019-03-05 中兴通讯股份有限公司 媒体分片发送方法、密钥切换方法及相应装置和介质
CN113014956B (zh) * 2019-12-20 2022-06-03 腾讯科技(深圳)有限公司 视频播放方法以及装置
CN113114410A (zh) * 2020-01-10 2021-07-13 维沃移动通信有限公司 数据处理方法、配置方法及通信设备
CN113141336A (zh) * 2020-01-19 2021-07-20 上海静客网络科技有限公司 一种短信验证码防刷方法
CN115426102B (zh) * 2022-11-07 2023-02-03 山东宝盛鑫信息科技有限公司 一种用于cdn节点间的数据加密方法及系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2182254C (en) * 1996-07-29 2000-02-15 Weidong Kou Generic file format for multiple security requirements
US7457415B2 (en) * 1998-08-20 2008-11-25 Akikaze Technologies, Llc Secure information distribution system utilizing information segment scrambling
ATE408954T1 (de) * 2000-12-18 2008-10-15 Irdeto Eindhoven B V Rtp pakete mit unverschlüsselten zeigern an kontrollorten auf rahmen
US7350082B2 (en) * 2001-06-06 2008-03-25 Sony Corporation Upgrading of encryption
JP3925218B2 (ja) * 2002-01-30 2007-06-06 ソニー株式会社 ストリーミングシステム及びストリーミング方法、ストリーミングサーバ及びデータ配信方法、クライアント端末及びデータ復号方法、並びにプログラム及び記録媒体
JP2004364273A (ja) * 2003-05-09 2004-12-24 Matsushita Electric Ind Co Ltd Mpeg−4ipmp拡張されたisma媒体ストリームの受信装置
US7684568B2 (en) * 2003-11-24 2010-03-23 Intellon Corporation Encrypting data in a communication network
FR2864869A1 (fr) 2004-01-06 2005-07-08 Thomson Licensing Sa Methode de transmission de services numeriques sur un reseau et appareil mettant en oeuvre la methode
US8832434B2 (en) 2004-02-13 2014-09-09 Hewlett-Packard Development Company, L.P. Methods for generating data for describing scalable media
US20060184790A1 (en) * 2004-03-26 2006-08-17 Microsoft Corporation Protecting elementary stream content
US7756271B2 (en) * 2004-06-15 2010-07-13 Microsoft Corporation Scalable layered access control for multimedia
US8225083B2 (en) * 2005-03-09 2012-07-17 Vudu, Inc. Secured seeding of data in a distributed environment
CN101133649B (zh) * 2005-12-07 2010-08-25 索尼株式会社 编码装置、编码方法以及解码装置、解码方法
EP2005636B1 (en) * 2006-04-13 2015-10-21 Certicom Corp. Method and apparatus for providing an adaptable security level in an electronic communication
US20080084995A1 (en) * 2006-10-06 2008-04-10 Stephane Rodgers Method and system for variable and changing keys in a code encryption system
JP2009077073A (ja) * 2007-09-19 2009-04-09 Toshiba Corp 映像配信システムおよび映像配信方法
BRPI0923917B1 (pt) 2008-12-31 2021-05-25 Apple Inc Método implementado por máquina, meio de armazenamento não transitório legível por máquina, aparelho, e sistema de processamento de dados para transmissão contínua em tempo real ou próximo ao tempo real
RU2690755C2 (ru) * 2010-02-19 2019-06-05 Телефонактиеболагет Л М Эрикссон (Пабл) Способ и устройство для переключения воспроизведений в потоковой передаче по протоколу передачи гипертекста
US8789196B2 (en) * 2010-05-28 2014-07-22 Adobe Systems Incorporated System and method for providing content protection of linearly consumed content with a bidirectional protocol for license acquisition
US8930562B2 (en) 2010-07-20 2015-01-06 Qualcomm Incorporated Arranging sub-track fragments for streaming video data
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US9369508B2 (en) * 2010-10-06 2016-06-14 Humax Co., Ltd. Method for transmitting a scalable HTTP stream for natural reproduction upon the occurrence of expression-switching during HTTP streaming
KR101206698B1 (ko) * 2010-10-06 2012-11-30 한국항공대학교산학협력단 스트리밍 콘텐츠 제공 장치 및 방법
US8661259B2 (en) * 2010-12-20 2014-02-25 Conformal Systems Llc Deduplicated and encrypted backups
EP2656618A4 (en) * 2010-12-22 2015-08-26 Ando Media Llc REAL-TIME MEDIA STREAM INSERTION PROCESS AND DEVICE
US9247312B2 (en) * 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
KR101739272B1 (ko) * 2011-01-18 2017-05-24 삼성전자주식회사 멀티미디어 스트리밍 시스템에서 컨텐트의 저장 및 재생을 위한 장치 및 방법
US8867608B2 (en) * 2011-01-28 2014-10-21 Harmonic, Inc. Systems and methods for segmenting and communicating video data
US8949592B2 (en) * 2011-03-23 2015-02-03 Google Technology Holdings System and methods for providing live streaming content using digital rights management-based key management
US9202024B2 (en) * 2011-05-02 2015-12-01 Inside Secure Method for playing digital contents projected with a DRM (digital rights management) scheme and corresponding system

Also Published As

Publication number Publication date
US20130290697A1 (en) 2013-10-31
ZA201407905B (en) 2015-12-23
US20150195259A1 (en) 2015-07-09
MY185190A (en) 2021-04-30
US9015468B2 (en) 2015-04-21
EP2842339A1 (en) 2015-03-04
JP5923661B2 (ja) 2016-05-24
BR112014026659A8 (pt) 2021-06-22
EP3340634B1 (en) 2020-02-12
US20160301670A1 (en) 2016-10-13
CN104380753B (zh) 2018-05-18
BR112014026659B1 (pt) 2022-09-27
SG11201406908WA (en) 2014-11-27
EP3340634A1 (en) 2018-06-27
US9401899B2 (en) 2016-07-26
JP2015521405A (ja) 2015-07-27
BR112014026659A2 (pt) 2017-06-27
HK1203724A1 (en) 2015-10-30
US9787652B2 (en) 2017-10-10
CA2871652C (en) 2016-10-11
KR20140146664A (ko) 2014-12-26
CN104380753A (zh) 2015-02-25
CA2871652A1 (en) 2013-10-31
WO2013163555A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
KR101617340B1 (ko) 어댑티브 스트리밍을 위한 세그먼트 암호화 및 키 유도를 시그널링하기 위한 시스템 및 방법
EP2859707B1 (en) Signaling and handling content encryption and rights management in content transport and delivery
US6989773B2 (en) Media data encoding device
US7057535B2 (en) Methods for scaling encoded data without requiring knowledge of the encoding scheme
US7974280B2 (en) Distributed and secured method and system for protecting and distributing audio-visual flows
US20040199771A1 (en) Method for tracing a security breach in highly distributed content
US20050182972A1 (en) Methods for generating data for describing scalable media
KR20040088365A (ko) 스케일 가능한 미디어를 위한 스케일 가능하고 에러탄력적인 drm
EP1714496A1 (en) Media data decoding device
US20150199498A1 (en) Flexible and efficient signaling and carriage of authorization acquisition information for dynamic adaptive streaming
KR101145782B1 (ko) 모바일 컨텐츠 서비스를 제공하기 위한 경량화된 비디오 컨텐츠 암호화 및 복호화 방법
US7580520B2 (en) Methods for scaling a progressively encrypted sequence of scalable data
RU2575021C1 (ru) Система и способ для сигнализации шифрования сегмента и выработки ключа для адаптивной потоковой передачи
WO2011013196A1 (ja) 情報処理装置
TWI268080B (en) Method and system for session based watermarking of encrypted content

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
FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 4