KR101855972B1 - 적응형 스트리밍을 위한 포렌식 마킹의 시그널링 및 핸들링 - Google Patents
적응형 스트리밍을 위한 포렌식 마킹의 시그널링 및 핸들링 Download PDFInfo
- Publication number
- KR101855972B1 KR101855972B1 KR1020167023503A KR20167023503A KR101855972B1 KR 101855972 B1 KR101855972 B1 KR 101855972B1 KR 1020167023503 A KR1020167023503 A KR 1020167023503A KR 20167023503 A KR20167023503 A KR 20167023503A KR 101855972 B1 KR101855972 B1 KR 101855972B1
- Authority
- KR
- South Korea
- Prior art keywords
- segment
- adaptation set
- mpd
- request
- client device
- Prior art date
Links
- 230000003044 adaptive effect Effects 0.000 title claims description 17
- 230000011664 signaling Effects 0.000 title description 4
- 230000006978 adaptation Effects 0.000 claims description 56
- 238000000034 method Methods 0.000 claims description 50
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 5
- 230000001052 transient effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 101100242901 Quaranfil virus (isolate QrfV/Tick/Afghanistan/EG_T_377/1968) PB2 gene Proteins 0.000 description 9
- 101150082826 Segment-2 gene Proteins 0.000 description 9
- 101100194052 Thogoto virus (isolate SiAr 126) Segment 2 gene Proteins 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 101100242890 Quaranfil virus (isolate QrfV/Tick/Afghanistan/EG_T_377/1968) PA gene Proteins 0.000 description 3
- 101150027881 Segment-3 gene Proteins 0.000 description 3
- 101100242891 Thogoto virus (isolate SiAr 126) Segment 3 gene Proteins 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000012092 media component Substances 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 101100247669 Quaranfil virus (isolate QrfV/Tick/Afghanistan/EG_T_377/1968) PB1 gene Proteins 0.000 description 2
- 101150025928 Segment-1 gene Proteins 0.000 description 2
- 101100242902 Thogoto virus (isolate SiAr 126) Segment 1 gene Proteins 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009987 spinning Methods 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011031 large-scale manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H04L65/601—
-
- H04L65/4084—
-
- H04L65/602—
-
- H04L65/607—
-
- H04L65/608—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/756—Media network packet handling adapting media to device capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
클라이언트 식별자 및 미디어 프레젠테이션 디스크립션(MPD, media presentation description) 요청을 콘텐츠 서버에 전송하도록 구성된 송신기, 그리고 메모리 및 송신기에 작동 가능하게 연결된 프로세서를 포함하고, 메모리는 프로세서로 하여금 클라이언트 식별자 및 MPD 요청의 전송 후에 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당하는 MPD 파일을 수신하고, MPD의 수신 후에 콘텐츠 서버에 세그먼트 요청을 전송하며, 세그먼트 요청의 전송 후에 베이스 세그먼트 및 적어도 두 개의 변형 세그먼트 중 클라이언트 식별자에 대응하는 하나의 변형 세그먼트를 콘텐츠 서버로부터 수신하도록 하는 비-일시적 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 실행 가능한 명령들을 포함하는, 클라이언트 장치.
Description
본 발명은 클라이언트 장치, 클라이언트 서버, 및 포렌식 마킹 방법에 관한 것이다.
본 발명은 미국 특허 가출원 2014년 7월 3일에 출원된 제62/020,946호(명칭: Method for Signaling and Handling of Forensic Marking for Adaptive Streaming)를 우선권으로 청구하고, 상기 가출원의 전체 내용은 본 출원에 참조로서 합체된다.
미디어 콘텐츠 제공자 또는 유통자는 상이한 장치들(즉, 텔레비전, 랩탑, 데스크탑 컴퓨터, 및 휴대폰)에 대한 상이한 암호와 및/또는 코딩 방식들을 사용하여 다양한 미디어 콘텐츠를 구독자들 또는 사용자들에게 전달할 수 있다. 미디어 콘텐츠 제공자는 복수의 미디어 인코더 및 디코더(codecs), 미디어 재생기, 비디오 프레임 레이트, 공간 해상도, 비트 레이트, 비디오 포맷, 또는 그것들의 조합을 지원할 수 있다. 소스의 콘텐츠는 상이한 클라이언트 장치들에 적합하도록 다양한 표현에 대한 소스 표현으로부터 변환될 수 있다. 적응형 스트리밍에서, 클라이언트 장치는 네트워크 조건, 장치 성능, 및 사용자 선택과 같은 다양한 요소에 기초하여 미디어 콘텐츠의 적절한 표현을 선택할 수 있다. 클라이언트 장치는 예를 들어, 자막 활성화 또는 비활성화, 또는 언어 선택과 같은 사용자 입력에 따라 미디어 콘텐츠의 다양한 적응 세트 중에서 선택할 수 있다.
일 실시예에서, 본 개시는 클라이언트 식별자 및 미디어 프레젠테이션 디스크립션(MPD, media presentation description) 요청을 콘텐츠 서버에 전송하도록 구성된 송신기, 그리고 메모리 및 송신기에 작동 가능하게 연결된 프로세서를 포함하고, 메모리는 프로세서로 하여금 클라이언트 식별자 및 MPD 요청의 전송 후에 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당하는 MPD 파일을 수신하고, MPD의 수신 후에 콘텐츠 서버에 세그먼트 요청을 전송하며, 세그먼트 요청의 전송 후에 베이스 세그먼트 및 적어도 두 개의 변형 세그먼트 중 클라이언트 식별자에 대응하는 하나의 변형 세그먼트를 콘텐츠 서버로부터 수신하도록 하는 비-일시적 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 실행 가능한 명령들을 포함하는, 클라이언트 장치를 포함한다.
다른 실시예에서, 본 개시는 클라이언트 장치로부터 클라이언트 식별자 및 MPD 요청을 수신하도록 구성된 수신기, 그리고 메모리 및 수신기에 동작 가능하게 연결된 프로세서를 포함하고, 메모리는 비-일시적 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 실행 가능한 명령들을 포함하고, 프로세서에 의해 실행되는 때 메모리는 프로세서로 하여금 MPD 요청에 응답하여 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당하는 MPD 파일을 클라이언트 장치에 전송하고, MPD 파일의 전송 후에 클라이언트 장치로부터 세그먼트 요청을 수신하며, 세그먼트 요청에 응답하여 베이스 세그먼트 및 적어도 두 개의 변형 세그먼트 중 클라이언트 식별자에 기초하여 선택되는 하나의 변형 세그먼트를 결합하여 단일 세그먼트를 생성하고, 단일 세그먼트의 생성 후에 클라이언트 장치에 단일 세그먼트를 전송하도록 하는, 콘텐츠 서버를 포함한다.
또 다른 실시예에서, 본 개시는 클라이언트 장치에 의해 실행되는 포렌식(forensic) 마킹 방법으로서, 클라이언트 식별자 및 MPD 요청을 콘텐츠 서버에 전송하는 단계, 클라이언트 식별자 및 MPD 요청의 전송 후에, 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당하는 MPD 파일을 수신하는 단계, MPD의 수신 후에 콘텐츠 서버에 세그먼트 요청을 전송하는 단계, 그리고 세그먼트 요청의 전송 후에 베이스 세그먼트 및 적어도 두 개의 변형 세그먼트 중 클라이언트 식별자에 대응하는 하나를 콘텐츠 서버로부터 수신하는 단계를 포함하는 포렌식 마킹 방법을 포함한다.
또 다른 실시예에서, 본 개시는 컨텐츠 서버에 의해 실행되는 포렌식 마킹 방법으로서, 클라이언트 장치로부터 클라이언트 식별자 및 MPD 요청을 수신하는 단계, MPD 요청에 응답하여, 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당하는 MPD 파일을 클라이언트 장치에 전송하는 단계, MPD 파일의 전송 후에 클라이언트 장치로부터 베이스 세그먼트 및 적어도 두 개의 변형 세그먼트 중 클라이언트 식별자에 대응하는 하나의 변형 세그먼트에 대한 세그먼트 요청을 수신하는 단계, 그리고 세그먼트 요청에 응답하여 베이스 세그먼트 및 하나의 변형 세그먼트를 클라이언트 장치에 전송하는 단계를 포함하는 포렌식 마킹 방법을 포함한다.
이러한 특징들은 첨부된 도면 및 청구항과 함께 다음의 상세한 설명으로부터 더욱 명확하게 이해될 것이다.
본 개시의 보다 완전한 이해를 위해, 참조는 첨부 도면 및 상세한 설명과 관련하여, 다음의 간략한 설명으로 이루어지고, 유사한 참조 번호는 유사한 부분을 나타낸다.
도 1은 DASH 시스템의 실시예의 개략도이다.
도 2는 네트워크 요소(NE)의 실시예의 개략도이다.
도 3은 본 개시의 실시예에 따른 적응형 스트리밍 내의 포렌식 마킹을 도시한 프로토콜 도면이다.
도 4는 본 개시의 실시예에 따른 상이한 세그먼트 구조들을 나타낸다.
도 5는 본 개시의 실시예에 따른 적응형 스트리밍 내의 포렌식 마킹 방법을 도시한 순서도이다.
도 6은 본 개시의 실시예에 따른 적응형 스트리밍 내의 다른 포렌식 마킹 방법을 도시한 순서도이다.
도 1은 DASH 시스템의 실시예의 개략도이다.
도 2는 네트워크 요소(NE)의 실시예의 개략도이다.
도 3은 본 개시의 실시예에 따른 적응형 스트리밍 내의 포렌식 마킹을 도시한 프로토콜 도면이다.
도 4는 본 개시의 실시예에 따른 상이한 세그먼트 구조들을 나타낸다.
도 5는 본 개시의 실시예에 따른 적응형 스트리밍 내의 포렌식 마킹 방법을 도시한 순서도이다.
도 6은 본 개시의 실시예에 따른 적응형 스트리밍 내의 다른 포렌식 마킹 방법을 도시한 순서도이다.
하나 이상의 실시 예들의 예시적인 구현이 이하에서 제공되지만, 개시된 시스템 및/또는 방법은 공지 또는 존재 여부에 상관없는, 다수의 기술을 사용하여 구현될 수 있다는 것이 먼저 이해되어야 한다. 본 개시는 어떠한 방식으로든 여기에서 도시되고 설명된 예시적인 디자인 및 구현을 포함하여, 예시적인 구현, 도면, 및 이하에서 설명된 기술에 한정되어야 하지만, 등가물들의 전체 범위와 함께 첨부된 청구항의 범위 내에서 변형될 수 있다.
미디어 콘텐츠(예컨대, 영화 또는 음악) 스트리밍은 점점 더 인기를 끌고 있다. 미디어 콘텐츠 제공자는 불법 배포되는 미디어 콘텐츠를 방지하는 것이 우선 순위이다. 한 가지 가능한 방식은 법률 집행이 무단 클라이언트의 미디어 콘텐츠를 재배포를 방지하기 위한 적절한 조치를 취할 수 있도록, 무단 클라이언트를 식별하는 것이다. 포렌식 마킹 방식은 여기에서 참고로 인용된 ISO/IEC(International Organization of Standardization/International Electrotechnical Commission) JTC 1/SC 29/WG 11(Joint Technical Committee 1/Subcommittee 29/Working Group 11), MPEG(Moving Picture Experts Group) 2014, M33081, "Coding of Moving Pictures and Audio," April 2014 에서 설명된 것처럼 포렌식 마킹을 검출함으로써 무단 클라이언트를 식별하기 위해 제안된다. 포렌식 마킹 방식은 차이(variances)를 이용하여 미디어 콘텐츠의 샘플들을 변형한다. 차이는 미디어 콘텐츠의 시청자에 대해 인지될 수 없지만, 포렌식 마킹 디코더에 의해 검출 가능하다. 샘플들의 각각은 여기에서 참고로 인용된 ISO/IEC 15444-12, Information Technology - JPEG 2000 Image Coding System - Part 12: ISO base media file format," fifth edition, February 20, 2015 내에서 시간에 연관된 모든 데이터로서 정의된다. 샘플들의 각각은 여기에서 참고로 인용된 ISO/IEC 23009-1, "Information Technology - Dynamic Adaptive Streaming over HTTP (DASH) - Part 1: Media Presentation Description and Segment Formats," second edition, 2013의 데이터의 단위로서 각각 정의되는 하나 이상의 세그먼트로 구성된다.
포렌식 마킹 방식은 샘플이 전송되는 때 샘플에 할당된 모든 차이들이 전송되도록 요구된다. 결론적으로, 상당한 전달 리던던시(redundancy) 및 지연이 도입된다. 따라서, 포렌식 마킹 방식은 적응형 스트리밍에는 적합하지 않다. 또한, 기존의 포렌식 마킹 방식은 적응형 스트리밍 내의 포렌식 마킹의 시그널링 및 핸들링을 설명하지 않는다.
미디어 콘텐츠의 적응형 스트리밍 내의 포렌식 마킹의 시그널링 및 핸들링에 대한 다양한 실시예들이 본 명세서에 개시된다. 미디어 콘텐츠는 각각이 하나 이상의 세그먼트를 포함하는 복수의 샘플을 포함한다. 포렌식 마킹을 위해 선택된 세그먼트들의 각각에 대해, 콘텐츠 서버는 베이스 세그먼트 및 적어도 두 개의 변형 세그먼트를 포함하는 세그먼트 세트를 생성한다. 베이스 세그먼트는 MPD(media presentation description) 파일 내의 적어도 두 개의 변형 세그먼트들에 할당된다. 클라이언트 장치는 콘텐츠 서버에 세그먼트 요청을 전송한다. 실시예에서, 콘텐츠 서버는 적어도 두 개의 변형 세그먼트에서 선택된 변형 세그먼트를 결정하고, 베이스 세그먼트와 선택된 변형 세그먼트를 결합하여 단일 세그먼트를 형성하고, 단일 세그먼트를 클라이언트 장치에 전송한다. 실시예에서, 클라이언트 장치는 선택된 변형 세그먼트를 결정하고, 세그먼트 요청을 통해 베이스 세그먼트 및 선택된 변형 세그먼트를 요청한다. 콘텐츠 서버로부터 베이스 세그먼트 및 선택된 변형 세그먼트의 수신 후에, 클라이언트 장치는 베이스 세그먼트와 선택된 변형 세그먼트를 결합하여 단일 세그먼트를 형성한다. 선택된 변형 세그먼트는 클라이언트 장치의 클라이언트 식별자에 대응한다. 실시예에서, 클라이언트 식별자는 바이너리 비트의 시퀀스이다.
도 1은 DASH 시스템(100)의 실시예의 개략도이다. DASH 시스템(100)은 콘텐츠 소스(102), 콘텐츠 서버(104), 네트워크(106), 및 클라이언트 장치(108)를 포함한다. 하나의 클라이언트 장치(108)이 도 1에 도시되었으나, 실제 적용에서는 하나 이상의 클라이언트 장치가 DASH 시스템(100) 내에 포함될 수 있다. 실시예에서 콘텐츠 서버(104) 및 클라이언트 장치(108)은 네트워크(106)를 통해 서로 통신한다. 추가젓으로, 콘텐츠 서버(104)는 콘텐츠 소스(102)와 통신하고, 예를 들어, 데이터를 교환한다. 하나의 콘텐츠 소스(102) 및 하나의 콘텐츠 서버(104)가 도 1에 도시되었으나, 실제 적용에서는 하나 이상의 콘텐츠 소스 및/또는 콘텐츠 서버가 DASH 시스템(100) 내에 포함될 수 있다. 또한, 명세서 전반에 걸쳐 용어 DASH의 사용에도 불구하고, 본원에 개시된 본 발명의 개념은 HTTP 실시간 스트리밍(HLS), 마이크로소프트 스무스 스트리밍(Microsoft Smooth Streaming) 또는 인터넷 정보 서비스(IIS)와 같은 적응형 스트리밍에 적용될 수 있다. 실제로, 본 발명의 개념은 제3 세대 파트너십(3GP)-DASH 또는 MPEG-DASH로 제한되어서는 안된다.
콘텐츠 소스(102)는 상이한 장치들(즉, 텔레비전, 랩탑, 데스크탑 컴퓨터, 및 휴대폰)에 대한 상이한 암호와 및/또는 코딩 방식들을 사용하여 다양한 미디어 콘텐츠를 구독자 또는 사용자에게 전달하도록 구성된 미디어 콘텐츠 제공자 또는 유통자이다. 콘텐츠 소스(102)는 복수의 미디어 인코더 또는 디코더(codecs), 미디어 재생기, 비디오 프레임 레이트, 공간 해상도, 비트 레이트, 비디오 포맷, 또는 그것들의 조합을 지원하도록 구성된다. 미디어 콘텐츠는 소스 또는 원본 표현으로부터 다양한 표현들(예컨대, 상이한 해상도 또는 비트 레이트에서의 버전)로 변환될 수 있다.
콘텐츠 서버(104)는 클라이언트 장치(108)과 HTTP 또는 다른 적합한 프로토콜을 통해 통신한다. 콘텐츠 서버(104)는 미디어 콘텐츠를 저장(예컨대, 메모리 또는 캐시) 및/또는 미디어 콘텐츠 세그먼트를 포워딩하도록 구성된다. 각 세그먼트는 복수의 표현으로 인코딩될 수 있다. 실시예에서, 콘텐츠 서버(104)는 HTTP 또는 다른 적합한 프로토콜을 통해 데이터를 송수신하도록 구성된 서버 DASH 모듈(DM, 110)을 포함한다. 일 실시예에서, 콘텐츠 서버(104)는 예를 들어 컴퓨터 서버 또는 워크스테이션과 같은 네트워크 노드이다. 실시예에서, 콘텐츠 서버(104)는 콘텐츠를 전달하기 위해, 다수의 백본(backbones)을 통해 다수의 데이터 센터 내에서 배치되며, 서버의 분배 시스템을 참조할 수 있는 콘텐츠 전달 네트워크(CDN, content delivery network)의 일부를 형성한다. CDN은 하나 이상의 콘텐츠 서버(104)를 포함할 수 있다. 도 1은 콘텐츠 서버(104)를 도시하였으나, 오리진 서버, 웹 서버, 및/또는 어느 다른 적합한 유형의 서버와 같은 다른 서버가 미디어 콘텐츠를 저장할 수 있다.
네트워크(106)은 유선 및/또는 무선 채널을 통해, 콘텐츠 서버(104) 및 클라이언트 장치(108) 사이의 통신(예컨대, 데이터 교환)을 허가하도록 구성된 모든 네트워크를 포함한다. 예를 들어, 네트워크(106)는 인터넷 또는 휴대폰 네트워크일 수 있다.
클라이언트 장치(108)는 모든 네트워크 노드, 예를 들어, HTTP 또는 다른 적합한 프로토콜을 통해 콘텐츠 서버(104)와 통신하도록 구성된 하드웨어 장치이다. 클라이언트 장치(108)는 랩탑, 태블릿 컴퓨터, 데스크탑 컴퓨터, 휴대폰, 또는 다른 장치일 수 있다. 클라이언트 장치(108)는 MPD 파일을 파싱하여, 프로그램의 타이밍, 미디어 콘텐츠의 가용성, 미디어 유형, 해상도, 최소 및/또는 최대 대역폭, 미디어 구성요소의 다양한 인코딩 대안 존재, 접근성 기능 및 요구된 DRM, 네트워크 상의 각 미디어 구성요소의 위치(예컨대, 오디오 데이터 세그먼트 및 비디오 데이터 세그먼트), 및/또는 미디어 콘텐츠의 다른 특성들과 같은, 미디어 콘텐츠에 대한 정보를 검색하도록 구성된다. 하기에서 더 충분히 설명되는 바와 같이, 클라이언트 장치(108)는 또한, MPD 파일로부터 검색된 정보에 따라 미디어 콘텐츠의 적합한 인코딩된 버전을 선택하고, 콘텐츠 서버(104)에 위치한 미디어 세그먼트를 가져와서 미디어 콘텐츠를 스트리밍하도록 구성된다. 미디어 세그먼트는 미디어 콘텐츠로부터의 청각적 및/또는 시각적 샘플을 포함한다.
실시예에서, 클라이언트 장치(108)는 클라이언트 DM(112), 어플리케이션(114), 및 GUI(graphical user interface, 116)을 포함한다. 클라이언트 DM(112)은 HTTP 및 DASH 프로토콜(예컨대, ISO/IEC 23009-1)를 통해 데이터를 송수신하도록 구성된다.
클라이언트 DM(112)은 DASH 액세스 엔진(DAE, 118) 및 미디어 출력(ME, 120)을 포함할 수 있다. DAE(118)는 콘텐츠 서버(104)(예컨대, 서버 DM(110))로부터 원시 데이터를 수신하고, 시청을 위한 포맷으로 데이터를 변환하기 위한 기본 구성요소로서 구성된다. 예를 들어, DAE(118)는 타이밍 데이터와 함께 MPEC 컨테이너 포맷 내의 데이터를 포맷하고, 포맷된 데이터를 ME(120)에 출력할 수 있다. ME(120)는 초기화, 재생, 및 미디어 콘텐츠와 연관된 다른 기능을 담당하고, 어플리케이션(114)에 미디어 콘텐츠를 출력할 수 있다.
실시예에서, 어플리케이션(114)은 웹 브라우저 또는 미디어 콘텐츠를 다운로드하고 나타내도록 구성된 인터페이스를 갖는 다른 어플리케이션이다. 어플리케이션(114)은 클라이언트 장치(108)에 연관된 사용자가 어플리케이션(114)의 다양한 기능을 볼 수 있도록, GUI(116)에 연결된다. 실시예에서, 어플리케이션(114)은 사용자가 단어의 문자열을 입력하여 영화와 같은 미디어 콘텐츠에 대해 검색할 수 있도록 검색 바(bar)를 포함하는 미디어 재생기이다. 어플리케이션(114)은 검색 히트(hit) 리스트를 나타내고, 사용자는 히트들 중 원하는 미디어 콘텐츠를 선택할 수 있다. 선택되면, 어플리케이션(114)는 클라이언트 DM(112)에 미디어 콘텐츠를 다운로드하기 위한 명령을 전송한다. 예를 들어, 어플리케이션(114)는 미디어 콘텐츠의 시간 진행을 도시하는 진행 바를 표시하는 GUI(116)를 위해 GUI(116)에 명령을 제공할 수 있다. GUI(116)는 사용자가 어플리케이션(114)를 작동할 수 있도록, 어플리케이션(114)의 기능들을 표시하도록 구성된 모든 GUI일 수 있다. 상기에서 설명한 바와 같이, GUI(116)는 사용자가 다운로드하려는 콘텐츠를 선택할 수 있도록 어플리케이션(114)의 다양한 기능들을 표시한다. GUI(116)는 사용자가 보기 위한 미디어 콘텐츠를 표시한다.
DASH 시스템(100)을 사용하는 때, 미디어 콘텐츠 제공자는 요청 후에, MPD 파일을 클라이언트에 전송할 수 있다. 실시예에서, MPD 파일은 XML(extensible markup language) 문서이고, 미디어 콘텐츠를 세그먼트들로서 이러한 세그먼트가 사용자에게 미디어 콘텐츠를 나타내기 위해 이용될 수 있는지를 설명한다. 예를 들어, MPD 파일은 세그먼트 타이밍, 세그먼트 멀티플렉싱(예컨대, 오디오 세그먼트 및 비디오 세그먼트 타이밍들 사이의 상호관계), 및 이러한 세그먼트가 획득될 수 있는 URL(uniform resource locator) 정보를 설명한다. 예를 들어, 스트리밍된 미디어 콘텐츠는 여러 미디어 구성요소들(오디오, 비디오, 및 텍스트)을 포함하고, 각각은 MPD 파일 내에서 특정된 상이한 특성을 가진다.
도 2는 개시된 실시예들을 구현하는 데 적합한 네트워크 요소(NE, 200)의 실시예의 개략도이다. NE(200)는 네트워크, 시스템, 및/또는 도메인을 통해 데이터 및 그것의 세그먼트를 운반하거나 운반을 돕는 모든 장치(예컨대, 모뎀, 스위치, 라우터, 브릿지, 서버, 클라이언트, 제어기 등)일 수 있다. 실시예에서, NE(200)은 콘텐츠 서버(104) 및 클라이언트 장치(108)의 내에 있거나, 콘텐츠 서버(104) 및 클라이언트 장치(108)와 통합될 수 있다. NE(200)은 수신기(212, RX)에 연결된 하나 이상의 입구 포트(210)를 포함한다. 입구 포트(210) 및 수신기(212)는 MPD 파일들 및/또는 세그먼트들을 다른 네트워크 구성요소들로부터 수신하도록 구성된다. NE(200)는 송신기(Tx, 232)에 연결된 하나 이상의 출구 포트(230)를 더 포함한다. 출구 포트(230) 및 송신기(232)는 MPD 파일들 및/또는 세그먼트들을 다른 네트워크 구성요소들에 전송하도록 구성된다. NE(200)는 수신기(212)에 연결된 로직 유닛 또는 프로세서(220)를 더 포함한다. 프로세서(220)는 세그먼트들을 처리하거나, 또는 어느 네트워크 구성요소들에 세그먼트들을 전송할 지를 결정하도록 구성된다.
프로세서(220)는 하드웨어 또는 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있다. 프로세서(220)는 하나 이상의 중앙 처리 유닛(CPU) 칩, 코어(예컨대, 멀티-코어 프로세서), FPGAs(field-programmable gate arrays), ASICs(application specific integrated circuits), 및/또는 DSPs(digital signal processors)으로서 구현될 수 있다. 프로세서(220)는 미디어 재생기(221) 또는 당업자에 의해 공지된 임의의 기능 구성요소, 또는 그것들의 모든 조합을 구현하도록 구성된다. 실시예에서, 미디어 재생기(221)는 프로세서(220) 상에서 수행되는 어플리케이션이고, 디코딩된 미디어 세그먼트를 재생하도록 구성된다.
NE(200)는 적어도 하나의 메모리(222)를 더 포함한다. 메모리(222)는 휘발성 및 비 휘발성일 수 있고, ROM(read-only memory), RAM(random-access memory), TCAM(ternary content-addressable memory) 및 SRAM(static random-access memory)일 수 있다. 메모리(222)는 MPD 파일들(223) 및 세그먼트들(224)을 저장하도록 구성된다. MPD 파일들(223) 및 세그먼트들(224)는 하기에서 더 설명되는 다양한 형태들로 저장되거나 패킹될 수 있다. 도 2에 도시된 바와 같이, 세그먼트들(224) 및 MPD 파일들(223)은 별개의 파일들로서 저장되나, 그것들은 단일 파일 내에 저장될 수도 있다. 실제로, NE(200)가 처리한 양방향 트래픽이 존재할 수 있으므로, 일부 포트는 패킷들(예컨대, 세그먼트들)을 수신 및 송신할 수 있다.
이러한 의미에서, 입구 포트(210)와 출구 포트(230)는 동일 위치에 있을 수 있거나 송수신기(Rx/Tx)에 연결된 동일한 포트의 다른 기능들로 간주될 수있다.
NE(200) 상에 실행 가능한 명령을 프로그래밍 및/또는 로딩함으로써, 프로세서(220) 및 메모리(222) 중 적어도 하나가 변경되는 것으로 이해된다. 결과적으로, NE(200)는 특정 기계 또는 장치(예컨대, 본 개시에 의해 시사되는 기능을 갖는 네트워크 라우터)에 부분적으로 변형된다. 실행 가능한 명령은 메모리(222)상에 저장되고, 실행을 위해 프로세서(220)에 로딩된다.
컴퓨터에 실행 가능한 소프트웨어를 로딩함으로써 구현될 수 있는 기능이 공지된 디자인 규칙에 의해 하드웨어 구현으로 변환될 수 있는 것은 전자 공학, 소프트웨어 공학 과목의 기초이다. 소프트웨어 대 하드웨어 내의 개념을 구현하는 것 사이의 결정은 전형적으로 소프트웨어 도메인으로부터 하드웨어 도메인으로 변환하는 것에 연관된 어느 문제보다 생성될 디자인 및 다수의 유닛의 안정성을 고려하는 것에 의존한다. 하드웨어 구현의 리스피닝(re-spinning)은 소프트웨어 디자인의 리스피닝에 비해 고가이기 때문에, 일반 적으로, 계속 자주 변경될 디자인은 소프트웨어로 구현하는 것이 바람직할 수 있다. 일반적으로 안정적이고, 대량으로 생산될 디자인은 대규모 생산 실행에 대한 하드웨어 구현이 소프트웨어 구현보다 덜 비쌀 수 있으므로, 예를 들어, ASIC와 같은 하드웨어 내에서 구현되는 것이 바람직할 수 있다. 종종 디자인은 개발되고, 소프트웨어 형태로 테스트되며, 공지된 디자인 규칙에 의해 소프트웨어의 명령들을 하드웨어로 구현하는 ASIC 등가 하드웨어 구현으로 변형될 수 있다. 동일한 방식으로, 새로운 ASIC에 의해 제어되는 기계는 특정 기계 또는 장치로서, 마찬가지로 실행 가능한 명령들로 프로그래밍 및/또는 로딩되는 컴퓨터가 특정 기계 또는 장치로서 보여질 수 있다.
본 개시의 모든 처리는 프로세서(예컨대, 범용 멀티-코어 프로세서)가 컴퓨터 프로그램을 실행하도록 함으로써 구현될 수 있다. 이 경우, 컴퓨터 프로그램 제품은 비-일시적 컴퓨터 판독 가능 매체의 모든 유형을 이용하여 컴퓨터 또는 네트워크 장치에 제공될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 또는 네트워크 장치 내의 비-일시적 컴퓨터 판독 가능 매체 내에 저장될 수 있다. 비-일시적 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 저장 매체 유형의 모든 유형을 포함한다. 비-일시적 컴퓨터 판독 가능 매체의 예는 자기 저장 매체(예를 들면, 플로피 디스크, 자기 테이프, 하드 디스크 드라이브 등), 광 자기 저장 매체(예컨대, 자기-광 디스크), CD-ROM, CD-R, CD-R/W, DVD, Blu-ray(등록 상표) 디스크(BD) 및 반도체 메모리(예를 들면, 마스크 ROM, 프로그래머블 ROM(PROM), 소거 가능한 PROM(EPROM), 플래시 ROM, 및 RAM)를 포함한다. 컴퓨터 프로그램 제품은 일시적 컴퓨터 판독 가능 매체의 모든 유형을 사용하여 컴퓨터 또는 네트워크 장치에 제공될 수도 있다. 일시적 컴퓨터 판독 가능 매체는 유선 통신 라인(예컨대, 전선, 및 광 섬유) 또는 무선 통신 라인을 통해 컴퓨터에 프로그램을 제공할 수 있다.
도 3은 본 개시의 실시예에 따른 적응형 스트리밍 내의 포렌식 마킹을 도시한 프로토콜 도면(300)이다. 프로토콜 도면(300)에 의해 도시된 방법은 미디어 스트리밍 서비스가 세그먼트 상에 포렌식 마킹을 추가하도록 사용자가 요청하는 때 구현된다. 프로토콜 도면(300)은 DASH 시스템(100) 내에서 구현될 수 있다. 프로토콜 도면(300)은 콘텐츠 서버(304)(예컨대, 콘텐츠 서버(104)) 및 클라이언트 장치(308)(예컨대, 클라이언트 장치(108)) 사이에 메시지 교환을 도시한다.
콘텐츠 서버(304) 및 클라이언트 장치(308)는 HTTP 연결(315)을 확립한다. 그 후, 클라이언트 장치(308)는 클라이언트 식별자(320) 및 MPD 요청(325)을 콘텐츠 서버(304)에 전송한다. 클라이언트 식별자(320) 및 MPD 요청(325)의 전송 순서는 교대 가능하다. 클라이언트 식별자(320)는 다른 클라이언트 장치로부터 클라이언트 장치(308)을 구별하는 바이너리 비트의 고유한 시퀀스이다.
MPD 요청(325)에 응답하여, 콘텐츠 서버(304)는 MPD 파일(330)을 HTTP 보안(HTTPS), 이메일, 또는 USB 드라이브와 같은 여러 유형의 데이터 전송 중 하나의 유형을 통해, 클라이언트 장치(308)에 전송한다. 일 실시예에서, 콘텐츠 서버(304)는 DASH 프로토콜을 통해 클라이언트 장치(308)에 MPD 파일(330)을 전송한다. MPD 파일(330)은 적응형 스크리밍을 위한 미디어 콘텐츠의 세그먼트 정보(예컨대, 타이밍, 해상도 및 비트 레이트와 같은 미디어 특성)를 설명한다. 미디어 콘텐츠는 비디오, 오디오, 또는 텍스트일 수 있다. 미디어 콘텐츠는 각각이 하나 이상의 세그먼트를 포함하는 복수의 샘플을 포함한다.
클라이언트 장치(308)에 전송될 미디어 콘텐츠의 모든 세그먼트 중에서, 콘텐츠 서버(304)는 포렌식 마킹을 위한 특수 세그먼트를 식별한다. 각각의 특수 세그먼트에 대해, 콘텐츠 서버(304)는 베이스 세그먼트 및 적어도 두 개의 변형 세그먼트를 포함하는 세그먼트 세트를 생성한다. MPD 파일(330)은 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당한다. 베이스 세그먼트는 미디어 콘텐츠의 시청자가 인지 가능하다. 적어도 두 개의 변형 세그먼트는 포렌식 마킹을 위해 생성되고, 미디어 콘텐츠의 시청자에게 인지 불가능하지만, 포렌식 마킹 디코더들에 의해 검출 가능하다.
도 4는 본 개시의 실시예에 따른 상이한 세그먼트 구조들(400)을 나타낸다. 콘텐츠 서버(304)는 클라이언트 장치(308)에 세그먼트-1(405), 세그먼트-2(425), 및 세그먼트-3(430)를 전송할 수 있다. 세그먼트-1(405) 및 세그먼트-3(430)과 다르게, 세그먼트-2(425)는 포렌식 마킹을 위한 특수 세그먼트이다. 따라서, 콘텐츠 서버(304)는 베이스 세그먼트-2(320) 및 변형 세그먼트-21-n(n 변형 세그먼트(415)로서 집합적으로 표시됨)를 포함하는 세그먼트 세트(410)을 생성하고, 여기서 n은 1보다 큰 양수이다. MPD 파일(330)은 n 변형 세그먼트(415)(예컨대, 변형 세그먼트-21-n)에 베이스 세그먼트-2(420)를 할당한다.
도 3을 참조하면, 클라이언트 장치(308)는 콘텐츠 서버(304)에 세그먼트 요청(335)을 전송한다. 세그먼트 요청(335)가 특수 세그먼트 중 하나가 아닌 세그먼트(340)(예컨대, 세그먼트-(405) 또는 세그먼트-3(430))에 대해 문의하는 때, 콘텐츠 서버(304)는 세그먼트(340)를 인증하고, 이를 클라이언트 장치(308)에 직접 전송한다.
세그먼트 요청(335)이 특수 세그먼트(예컨대, 세그먼트-2(425))에 대해 문의하는 때, 요청을 핸들링하는 두 개의 실시예가 본 개시에서 설명된다. 일 실시예에서, 콘텐츠 서버(304)는 세그먼트 요청(335)의 수신 후에, 적어도 두 개의 변형 세그먼트(예컨대, n 변형 세그먼트(415))로부터 선택된 변형 세그먼트(350)(예컨대, 변형 세그먼트-2i(415))를 결정하고, 베이스 세그먼트(345)(예컨대, 베이스 세그먼트-2(420)) 및 선택된 변형 세그먼트(350)(예컨대, n 변형 세그먼트(415))를 결합하여, 단일 세그먼트(예컨대, 세그먼트-2(425))를 형성하며, 단일 세그먼트(예컨대, 세그먼트-2(425))를 클라이언트 장치(308)에 전송한다. 콘텐츠 서버(304) 및 클라이언트 장치(308)는 상기에서 설명한 것과 유사한 방식으로 메시지 교환을 계속한다.
다른 실시예에서, 클라이언트 장치(308)는 적어도 두 개의 변형 세그먼트(예컨대, n 변형 세그먼트(415))로부터 선택된 변형 세그먼트(350)(예컨대, 변형 세그먼트-2i(415))를 결정하고, 세그먼트 요청(335) 내에서 베이스 세그먼트(345)(예컨대, 베이스 세그먼트-2(420)) 및 선택된 변형 세그먼트(350)(예컨대, 변형 세그먼트-2i(415))를 요청한다. 콘텐츠 서버(304)로부터 베이스 세그먼트(345) 및 선택된 변형 세그먼트(350)의 수신 후에, 클라이언트 장치(308)는 베이스 세그먼트(345) 및 선택된 변형 세그먼트(350)를 결합하여, 적응형 스트리밍을 위한 단일 세그먼트(예컨대, 세그먼트-2(425))를 형성한다. 콘텐츠 서버(304) 및 클라이언트 장치(308)는 상기에서 설명한 것과 유사한 방식으로 메시지 교환을 계속한다.
상기에서 설명한 두 실시예들에서, 선택된 변형 세그먼트(350)는 클라이언트 식별자에 기초한 미리 정의된 규칙에 따라 결정된다. 일 실시예에서, 클라이언트 식별자는 바이너리 비트의 시퀀스이다. 클라이언트 식별자 내에서 요구되는 비트의 최소 개수는 각 베이스 세그먼트에 할당된 변형 세그먼트의 개수, 미디어 콘텐츠 내의 포렌식 마킹을 위한 특수 세그먼트의 개수, 및 잠재적인 클라이언트 장치의 총 개수에 의존한다. 예를 들어, 각 베이스 세그먼트가 제1 변형 세그먼트 및 제2 변형 세그먼트를 포함하는 두 개의 변형 세그먼트에 할당되는 때, 미디어 콘텐츠는 포렌식 마킹을 위한 단지 하나의 특수 세그먼트를 포함하고, 클라이언트 장치의 총 개수는 2보다 크지 않으며, 클라이언트 식별자는 적어도 하나의 바이너리 비트, 즉, 비트 "0" 또는 비트 "1"을 포함해야 한다. 일 실시예에서, 미리 정의된 규칙은 비트 "0"이 제1 변형 세그먼트를 선택하는 것을 의미하고, 비트 "1"이 제2 변형 세그먼트를 선택하는 의미하는 것으로 정의할 수 있다. 다른 예로, 각 베이스 세그먼트가 제1 변형 세그먼트, 제2 변형 세그먼트, 제3 변형 세그먼트, 및 제4 변형 세그먼트를 포함하는 네 개의 변형 세그먼트에 할당되는 때, 미디어 콘텐츠는 포렌식 마킹을 위한 두 개의 특수 세그먼트를 포함하고, 잠재적인 클라이언트 장치는 16보다 크지 않으며, 클라이언트 식별자는 적어도 네 개의 바이너리 비트를 포함한다. 이와 같이, 클라이언트 식별자의 처음 두 비트는 제1 특수 세그먼트를 위한 변형 세그먼트의 선택에 대응하고, 클라이언트 식별자의 마지막 두 비트는 제2 특수 세그먼트를 위한 변형 세그먼트의 선택에 대응한다. 일 실시예에서, 미리 정의된 규칙은 "00"이 제1 변형 세그먼트에 대응하고, "01"이 제2 변형 세그먼트에 대응하며, "10"이 제3 변형 세그먼트에 대응하고, "11"이 제4 변형 세그먼트에 대응하는 것으로 정의할 수 있다. 예를 들어, 클라이언트 식별자가 "0011"일 때, 처음 두 비트 "00"은 제1 특수 세그먼트를 위한 제1 변형 세그먼트를 선택하는 것을 지시하고, 마지막 두 비트 "11"은 제2 특수 세그먼트를 위한 제4 변형 세그먼트를 선택하는 것을 지시한다.
도 5는 본 개시의 실시예에 따른 적응형 스트리밍 내의 포렌식 마킹 방법(500)을 도시한 순서도이다. 방법(500)은 클라이언트 장치(예컨대, 클라이언트 장치(108) 또는 클라이언트 장치(308))에서 수행된다. 방법(500)은 사용자가 미디어 스트리밍 서비스를 요청하는 때, 포렌식 마킹을 세그먼트 상에 추가하기 위해 구현된다.
단계(510)에서, 클라이언트 식별자 및 MPD 요청은 콘텐츠 서버(예컨대, 콘텐츠 서버(104) 또는 콘텐츠 서버(304))에 전송된다. 단계(520)에서, 클라이언트 식별자 및 MPD 요청의 전송 후에, MPD 파일은 콘텐츠 서버로부터 수신된다. MPD 파일은 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당한다. 단계(530)에서, MPD 파일의 수신 후에, 베이스 세그먼트 및 두 개의 변형 세그먼트 중 하나의 변형 세그먼트에 대한 세그먼트 요청은 콘텐츠 서버에 전송된다. 두 개의 변형 세그먼트 중 하나의 변형 세그먼트는 클라이언트 식별자에 대응한다. 단계(540)에서, 세그먼트 요청의 전송 후에, 베이스 세그먼트 및 두 개의 변형 세그먼트 중 하나의 변형 세그먼트가 콘텐츠 서버로부터 수신된다.
도 6은 본 개시의 실시예에 따른 적응형 스트리밍 내의 다른 포렌식 마킹 방법(600)을 도시한 순서도이다. 방법(600)은 콘텐츠 서버(예컨대, 콘텐츠 서버(104) 또는 콘텐츠 서버(304)) 내에서 수행된다. 방법(600)은 사용자가 미디어 스트리밍 서비스를 요청하는 때, 포렌식 마킹을 세그먼트 상에 추가하기 위해 구현된다.
단계(610)에서, 클라이언트 장치로부터의 클라이언트 식별자 및 MPD 요청이 클라이언트 장치(예컨대, 클라이언트 장치(108) 또는 클라이언트 장치(308))로부터 수신된다. 단계(620)에서, MPD 파일은 MPD 요청에 응답하여 클라이언트 장치에 전송된다. MPD 파일은 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당한다. 단계(630)에서, MPD 파일의 전송 후에, 베이스 세그먼트 및 적어도 두 개의 변형 세그먼트 중 하나의 변형 세그먼트에 대한 세그먼트 요청이 클라이언트 장치로부터 수신된다. 적어도 두 개의 변형 세그먼트 중 하나의 변형 세그먼트는 클라이언트 식별자에 대응한다.
다음은 몇 가지 사용 사례에서 잠재적 용도를 설명하기 위해 XML 코드로 작성된 예시 MPD 파일이다. 두 개의 예시적인 사용 사례(사용 사례 1, 2 및 표 1, 2)가 본 개시에서 설명됨에도 불구하고, 이러한 예시들은 제한되지 않는 것으로 이해되어야 한다. 두 개의 예시적인 사용 사례에서, 베이스 세그먼트는 제1 변형 세그먼트 및 제2 변형 세그먼트를 포함하는 두 개의 변형 세그먼트에 할당된다. 베이스 세그먼트, 제1 변형 세그먼트, 및 제2 변형 세그먼트는 각각 제1 적응 세트, 제2 적응 세틀, 및 제3 적응 세트 내에서 정의된다.
사용 사례 1에서, 제1 적응 세트, 제2 적응 세트 및 제3 적응 세트는 동일하다. 표 1은 사용 사례 1에 대한 XML 코드 내의 MPD 파일의 예시적인 구현을 나타낸다. 19 내지 25 번째 줄은 베이스 세그먼트를 정의한다. 19 번째 줄은 베이스 세그먼트의 ID(identification)가 "BR1"인 것으로 지시한다. 20 내지 24 번째 줄은 시간 순으로 제1 세그먼트, 베이스 세그먼트, 및 제3 세그먼트를 포함하는 3 개의 세그먼트의 총 지속 시간이 30초인 것으로 정의한다. 기본적으로, 세 개의 세그먼트의 각각은 동일한 지속 시간을 갖고, 제1 세그먼트는 0초에서 시작한다. 따라서, "seg-1.mp4"의 MPEG-4 (MP4) 미디어에 링크된 제1 세그먼트가 0초부터 9초까지 활성화된다. 그 후에, "seg-bs-2.mp4"의 MPEG-4 (MP4) 미디어에 링크된 베이스 세그먼트가 10초부터 19초까지 활성화된다. "seg-3.mp4"의 MPEG-4 (MP4) 미디어에 링크된 제3 세그먼트가 20초부터 29초까지 활성화된다.
28 내지 32 번째 줄은 제1 변형 세그먼트를 정의한다. 28 번째 줄은 "BR1"에 할당된 제1 변형 세그먼트의 ID가 "VR0"인 것으로 지시한다. 29번째 줄은 "VR0"의 지속 기간이 10초이고, "VR0"이 10초에서 시작하는 것으로 정의한다. 따라서, "BR1"과 일치하는 "VR0"은 10초부터 19초까지 활성화된다. 30 번째 줄은 "VR0"가 "seg-VS-20.mp4"의 MP4 미디어와 링크되는 것으로 지시한다.
35 내지 39 번째 줄은 제2 변형 세그먼트를 정의한다. 35 번째 줄은 "BR1"에 할당된 제2 변형 세그먼트의 ID가 "VR1"인 것으로 지시한다. 36번째 줄은 "VR1"의 지속 기간이 10초이고, "VR1"이 10초에서 시작하는 것으로 정의한다. 따라서, "BR1"과 일치하는 "VR1"은 10초부터 19초까지 활성화된다. 37 번째 줄은 "VR1"이 "seg-VS-21.mp4"의 MP4 미디어와 링크되는 것으로 지시한다.
표 1: XML 코드로 작성된 MPD 파일의 예시적인 구현
사용 사례 2에서, 제1 적응 세트는 제2 적응 세트와 상이하고, 제3 적응 세트는 제1 적응 세트 및 제2 적응 세트와 상이하다. 표 2는 사용 사례 2에 대한 XML 코드 내의 MPD 파일의 예시적인 구현을 나타낸다. 16 내지 25 번째 줄은 제1 적응 세트의 베이스 세그먼트를 정의한다. 표 2의 16 내지 25 번째 줄은 18번째 줄이 표 2에 삽입된 것을 제외하고, 표 1의 19 내지 25번째 줄과 유사하다. 18 번째 줄은 그것의 방식 URI(user resource identification)가 포렌식 마킹 방식을 특정하는 베이스 세그먼트에 대한 새로운 역할을 정의한다.
26 내지 33 번째 줄은 제2 적응 세트 내의 제1 변형 세그먼트를 정의한다. 표 2의 26 내지 33 번째 줄은 27 번째 줄이 표 2에 삽입된 것을 제외하고, 표 1의 28 내지 32 번째 줄과 유사하다. 27 번째 줄은 그것의 방식 URI가 포렌식 마킹 방식을 특정하는 제1 변형 세그먼트에 대한 새로운 역할을 정의한다.
34 내지 41 번째 줄은 제3 적응 세트 내의 제2 변형 세그먼트를 정의한다. 34 내지 41 번째 줄은 표 2에 삽입된 35 번째 줄을 제외하고, 표 1의 35 내지 39 번째 줄과 유사하다. 35 번째 줄은 그것의 방식 URI가 포렌식 마킹 방식을 특정하는 제2 변형 세그먼트에 대한 새로운 역할을 정의한다.
표 2: XML 코드로 작성된 다른 MPD 파일의 예시적인 구현
실시예에서, 변형 세그먼트들(예컨대, 도 4의 n 변형 세그먼트(415))은 단일 세그먼트로 그룹화된다. 변형 세그먼트들의 각각은 MDP 파일 내에서 정의된 속성 "@HTTP-URL" 또는 속성 "@byte range" 중 하나에 의해 식별될 수 있다. 예를 들어, 변형 세그먼트는 속성 "@HTTP-URL"에 의해 특정된 HTTP URL에 링크된다. 다른 예로, 변형 세그먼트는 속성 "@byte range"에 의해 특정된 연속적인 바이트들의 그룹에 의해 식별된다. 일 실시예에서, 속성 "@byte range"는 하위 속성 "@startNum" 및 하위 속성 "@length"을 포함한다. 하위 속성 "@startNum"은 연속적인 바이트들의 그룹 내의 첫 번째 바이트의 인덱스 번호를 특정한다. 하위 속성 "@length"은 연속적인 바이트들의 그룹 내의 바이트들의 개수를 특정한다.
여러 실시예가 본 개시에서 제공되었지만, 개시된 시스템 및 방법은 본 개시의 사상 및 범위를 벗어나지 않고 많은 다른 구체적인 형태로 실시될 수 있다는 것을 이해해야 한다. 본 실시예는 제한적인 것이 아니라 예시적인 것으로 간주되어야 하며, 의도는 여기에 주어진 세부 사항에 제한되지 않는다. 예를 들어, 다양한 요소 또는 구성요소가 결합될 수 있거나, 다른 시스템에 통합될 수 있거나, 또는 특정 기능이 생략될 수 있거나 구현되지 않을 수 있다.
또한, 다양한 실시예에서 개별적으로 또는 별도로 설명되고 도시된 기술, 시스템, 서브시스템, 및 방법은 본 개시의 범위를 벗어나지 않고 다른 시스템, 모듈, 기술, 또는 방법에 결합되거나 통합될 수 있다. 서로 연결되거나, 직접적으로 연결되거나, 통신하는 것으로 표시되거나 논의된 다른 항목은 전기적이든, 기계적이든, 또는 다른 방법이든, 간접적으로 연결되거나, 일부 인터페이스, 장치, 또는 중간 구성요소를 통해 통신할 수 있다. 변형, 치환, 및 개조의 다른 예는 당업자에 의해 확인될 수 있고, 여기에 개시된 사상 및 범위를 벗어나지 않고 이루어질 수 있다.
Claims (20)
- 클라이언트 식별자 및 미디어 프레젠테이션 디스크립션(MPD, media presentation description) 요청을 콘텐츠 서버에 전송하도록 구성된 송신기, 그리고
송신기에 작동 가능하게 연결된 프로세서,
를 포함하고,
상기 프로세서는,
상기 클라이언트 식별자 및 상기 MPD 요청의 전송 후에, 상기 MPD 요청이 일반 세그먼트 대신에 포렌식 마킹을 위한 특수 세그먼트를 식별한 때, 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당하는 MPD 파일을 수신하고,
상기 MPD의 수신 후에 상기 콘텐츠 서버에 세그먼트 요청을 전송하도록 상기 송신기에 명령하고,
상기 세그먼트 요청의 전송 후에 상기 베이스 세그먼트 및 상기 적어도 두 개의 변형 세그먼트 중 상기 클라이언트 식별자에 대응하는 하나의 변형 세그먼트를 상기 콘텐츠 서버로부터 수신하도록 구성되는,
클라이언트 장치. - 제1항에 있어서,
상기 클라이언트 식별자는 바이너리 비트의 시퀀스를 포함하는,
클라이언트 장치. - 제1항에 있어서,
상기 베이스 세그먼트는 상기 MPD 파일 내의 제1 적응 세트 내에서 정의되고, 상기 적어도 두 개의 변형 세그먼트 중 제1 변형 세그먼트는 상기 MPD 파일 내의 제2 적응 세트 내에서 정의되며, 상기 적어도 두 개의 변형 세그먼트 중 제2 변형 세그먼트는 상기 MPD 파일 내의 제3 적응 세트 내에서 정의되고, 그리고 상기 제2 적응 세트는 상기 제3 적응 세트와 동일한,
클라이언트 장치. - 제3항에 있어서,
상기 제1 적응 세트는 상기 제2 적응 세트 및 상기 제3 적응 세트와 동일한,
클라이언트 장치. - 제1항에 있어서,
상기 베이스 세그먼트는 상기 MPD 파일 내의 제1 적응 세트 내에서 정의되고, 상기 적어도 두 개의 변형 세그먼트 중 제1 변형 세그먼트는 상기 MPD 파일 내의 제2 적응 세트 내에서 정의되며, 상기 적어도 두 개의 변형 세그먼트 중 제2 변형 세그먼트는 상기 MPD 파일 내의 제3 적응 세트 내에서 정의되고, 그리고 상기 제2 적응 세트는 상기 제3 적응 세트와 상이한,
클라이언트 장치. - 제5항에 있어서,
상기 제1 적응 세트는 상기 제2 적응 세트 및 상기 제3 적응 세트와 상이한,
클라이언트 장치. - 제1항에 있어서,
상기 프로세서는, 상기 베이스 세그먼트 및 상기 하나의 변형 세그먼트를 DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)를 통해 상기 콘텐츠 서버로부터 수신하도록 추가로 구성되는,
클라이언트 장치. - 클라이언트 장치로부터 클라이언트 식별자 및 미디어 프레젠테이션 디스크립션(MPD) 요청을 수신하도록 구성된 수신기, 그리고
상기 수신기에 동작 가능하게 연결된 프로세서를 포함하고,
상기 프로세서는,
상기 MPD 요청에 응답하여, 상기 MPD 요청이 일반 세그먼트 대신에 포렌식 마킹을 위한 특수 세그먼트를 식별한 때, 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당하는 MPD 파일을 상기 클라이언트 장치에 전송하고,
상기 MPD 파일의 전송 후에 상기 클라이언트 장치로부터 세그먼트 요청을 수신하고,
상기 세그먼트 요청에 응답하여 상기 베이스 세그먼트 및 적어도 두 개의 변형 세그먼트 중 상기 클라이언트 식별자에 기초하여 선택되는 하나의 변형 세그먼트를 결합하여 단일 세그먼트를 생성하며,
상기 단일 세그먼트의 생성 후에 상기 클라이언트 장치에 상기 단일 세그먼트를 전송하도록 하는,
콘텐츠 서버. - 제8항에 있어서,
상기 클라이언트 식별자는 바이너리 비트의 시퀀스를 포함하는,
콘텐츠 서버. - 제8항에 있어서,
상기 베이스 세그먼트는 상기 MPD 파일 내의 제1 적응 세트 내에서 정의되고, 상기 적어도 두 변형 세그먼트 중 제1 변형 세그먼트는 상기 MPD 파일 내의 제2 적응 세트 내에서 정의되며, 상기 적어도 두 변형 세그먼트 중 제2 변형 세그먼트는 상기 MPD 파일 내의 제3 적응 세트 내에서 정의되고, 그리고, 상기 제2 적응 세트는 상기 제3 적응 세트와 동일한,
콘텐츠 서버. - 제10항에 있어서,
상기 제1 적응 세트는 상기 제2 적응 세트 및 상기 제3 적응 세트와 동일한,
콘텐츠 서버. - 제8항에 있어서,
상기 베이스 세그먼트는 상기 MPD 파일 내의 제1 적응 세트 내에서 정의되고, 상기 적어도 두 변형 세그먼트 중 제1 변형 세그먼트는 상기 MPD 파일 내의 제2 적응 세트 내에서 정의되며, 상기 적어도 두 변형 세그먼트 중 제2 변형 세그먼트는 상기 MPD 파일 내의 제3 적응 세트 내에서 정의되고, 그리고 상기 제2 적응 세트는 상기 제3 적응 세트와 상이한,
콘텐츠 서버. - 제12항에 있어서,
상기 제1 적응 세트는 상기 제2 적응 세트 및 상기 제3 적응 세트와 상이한,
콘텐츠 서버. - 제8항에 있어서,
상기 단일 세그먼트를 상기 클라이언트 장치에 DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)를 통해 전송하도록 구성된 송신기를 더 포함하는 콘텐츠 서버. - 클라이언트 장치에 의해 실행되는 포렌식(forensic) 마킹 방법으로서,
클라이언트 식별자 및 미디어 프레젠테이션 디스크립션(MPD, media presentation description) 요청을 콘텐츠 서버에 전송하는 단계,
상기 클라이언트 식별자 및 상기 MPD 요청의 전송 후에, 상기 MPD 요청이 일반 세그먼트 대신에 포렌식 마킹을 위한 특수 세그먼트를 식별한 때, 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당하는 MPD 파일을 수신하는 단계,
상기 MPD의 수신 후에 상기 콘텐츠 서버에 세그먼트 요청을 전송하는 단계, 그리고
상기 세그먼트 요청의 전송 후에 상기 베이스 세그먼트 및 상기 적어도 두 개의 변형 세그먼트 중 상기 클라이언트 식별자에 대응하는 하나를 상기 콘텐츠 서버로부터 수신하는 단계,
를 포함하는 포렌식 마킹 방법. - 제15항에 있어서,
상기 베이스 세그먼트 및 상기 하나의 변형 세그먼트를 수신한 후에, 상기 베이스 세그먼트 및 상기 하나의 변형 세그먼트를 결합하여 단일 세그먼트를 생성하는 단계를 더 포함하는,
포렌식 마킹 방법. - 제15항에 있어서,
상기 클라이언트 식별자는 바이너리 비트의 시퀀스를 포함하는,
포렌식 마킹 방법. - 컨텐츠 서버에 의해 실행되는 포렌식 마킹 방법으로서,
클라이언트 장치로부터 클라이언트 식별자 및 미디어 프레젠테이션 디스크립션(MPD) 요청을 수신하는 단계,
상기 MPD 요청에 응답하여, 상기 MPD 요청이 일반 세그먼트 대신에 포렌식 마킹을 위한 특수 세그먼트를 식별한 때, 베이스 세그먼트를 적어도 두 개의 변형 세그먼트에 할당하는 MPD 파일을 상기 클라이언트 장치에 전송하는 단계,
상기 MPD 파일의 전송 후에 상기 클라이언트 장치로부터 상기 베이스 세그먼트 및 상기 적어도 두 개의 변형 세그먼트 중 상기 클라이언트 식별자에 대응하는 하나의 변형 세그먼트에 대한 세그먼트 요청을 수신하는 단계, 그리고
상기 세그먼트 요청에 응답하여 상기 베이스 세그먼트 및 상기 하나의 변형 세그먼트를 상기 클라이언트 장치에 전송하는 단계
를 포함하는 포렌식 마킹 방법. - 제18항에 있어서,
상기 클라이언트 식별자는 바이너리 비트의 시퀀스를 포함하는,
포렌식 마킹 방법. - 제18항에 있어서,
상기 베이스 세그먼트는 상기 MPD 파일 내의 제1 적응 세트 내에서 정의되고, 상기 적어도 두 개의 변형 세그먼트 중 제1 변형 세그먼트는 상기 MPD 파일 내의 제2 적응 세트 내에서 정의되며, 상기 적어도 두 개의 변형 세그먼트 중 제2 변형 세그먼트는 상기 MPD 파일 내의 제3 적응 세트 내에서 정의되고, 상기 제2 적응 세트는 상기 제3 적응 세트와 상이하며, 상기 제1 적응 세트는 상기 제1 적응 세트 및 상기 제3 적응 세트와 상이한,
포렌식 마킹 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462020946P | 2014-07-03 | 2014-07-03 | |
US62/020,946 | 2014-07-03 | ||
PCT/US2015/038340 WO2016003915A1 (en) | 2014-07-03 | 2015-06-29 | Signaling and handling of forensic marking for adaptive streaming |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160113270A KR20160113270A (ko) | 2016-09-28 |
KR101855972B1 true KR101855972B1 (ko) | 2018-05-09 |
Family
ID=53761504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167023503A KR101855972B1 (ko) | 2014-07-03 | 2015-06-29 | 적응형 스트리밍을 위한 포렌식 마킹의 시그널링 및 핸들링 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9843615B2 (ko) |
EP (1) | EP3092780B1 (ko) |
KR (1) | KR101855972B1 (ko) |
CN (1) | CN106134156B (ko) |
WO (1) | WO2016003915A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102007669B1 (ko) * | 2017-11-29 | 2019-10-21 | 전자부품연구원 | 방송 수신기 및 이의 운용 방법 |
KR102123070B1 (ko) * | 2017-11-29 | 2020-06-16 | 전자부품연구원 | Vod 컨텐츠 제공 서버 장치 및 이의 운용 방법 |
CN110971564B (zh) | 2018-09-28 | 2021-03-30 | 华为技术有限公司 | 传输媒体数据的方法、客户端和服务器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8020004B2 (en) * | 2005-07-01 | 2011-09-13 | Verance Corporation | Forensic marking using a common customization function |
US20100325150A1 (en) * | 2009-06-22 | 2010-12-23 | Joseph Martin Mordetsky | System and Method for Tracking Application Usage |
KR20120080214A (ko) * | 2009-09-29 | 2012-07-16 | 노키아 코포레이션 | 다이내믹 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치 |
CN102143133B (zh) * | 2010-08-05 | 2013-12-18 | 华为技术有限公司 | Http流播放方式中支持广告内容的方法、装置和系统 |
KR101739272B1 (ko) * | 2011-01-18 | 2017-05-24 | 삼성전자주식회사 | 멀티미디어 스트리밍 시스템에서 컨텐트의 저장 및 재생을 위한 장치 및 방법 |
EP2924990A1 (en) | 2011-03-16 | 2015-09-30 | Electronics and Telecommunications Research Institute | Apparatus and method for providing streaming content using representations |
CN102710603B (zh) | 2012-05-02 | 2014-10-08 | 华为技术有限公司 | 媒体信息的生成方法、终端、服务器及ahs系统 |
-
2015
- 2015-06-29 US US14/754,093 patent/US9843615B2/en active Active
- 2015-06-29 KR KR1020167023503A patent/KR101855972B1/ko active IP Right Grant
- 2015-06-29 EP EP15744411.8A patent/EP3092780B1/en active Active
- 2015-06-29 WO PCT/US2015/038340 patent/WO2016003915A1/en active Application Filing
- 2015-06-29 CN CN201580016911.6A patent/CN106134156B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP3092780B1 (en) | 2020-04-29 |
WO2016003915A1 (en) | 2016-01-07 |
CN106134156B (zh) | 2019-06-28 |
US20160006782A1 (en) | 2016-01-07 |
KR20160113270A (ko) | 2016-09-28 |
CN106134156A (zh) | 2016-11-16 |
EP3092780A1 (en) | 2016-11-16 |
US9843615B2 (en) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11490145B2 (en) | Content insertion in streaming media content | |
US10148714B2 (en) | URL parameter insertion and addition in adaptive streaming | |
KR101629748B1 (ko) | Dash 클라이언트 행위 프레임워크 및 세션 관리의 실현 | |
JP6856747B2 (ja) | コンテンツ部分をストリーミングするための要求ベースのエンコーディング | |
US10425427B2 (en) | Template uniform resource locator signing | |
US8516144B2 (en) | Startup bitrate in adaptive bitrate streaming | |
KR101535366B1 (ko) | 실시간 또는 준 실시간 스트리밍을 위한 재생 리스트 | |
KR101603136B1 (ko) | 템플릿 모드에서의 짧은 암호 사용기간의 지원 | |
US20130262693A1 (en) | Methods and apparatus for segmenting, distributing, and resegmenting adaptive rate content streams | |
JP2015518325A (ja) | ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム | |
US11930064B2 (en) | Query signaling in media presentation description | |
US20150199498A1 (en) | Flexible and efficient signaling and carriage of authorization acquisition information for dynamic adaptive streaming | |
US10230781B2 (en) | Client behavior control in adaptive streaming | |
KR101855972B1 (ko) | 적응형 스트리밍을 위한 포렌식 마킹의 시그널링 및 핸들링 | |
WO2017207861A1 (en) | An arrangement for media stream organization | |
US20170054780A1 (en) | Real-time file generation and delivery |
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 |