KR20160111021A - 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법 - Google Patents

통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법 Download PDF

Info

Publication number
KR20160111021A
KR20160111021A KR1020167018108A KR20167018108A KR20160111021A KR 20160111021 A KR20160111021 A KR 20160111021A KR 1020167018108 A KR1020167018108 A KR 1020167018108A KR 20167018108 A KR20167018108 A KR 20167018108A KR 20160111021 A KR20160111021 A KR 20160111021A
Authority
KR
South Korea
Prior art keywords
data
packet
nal unit
access point
gop
Prior art date
Application number
KR1020167018108A
Other languages
English (en)
Other versions
KR102103054B1 (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 KR20160111021A publication Critical patent/KR20160111021A/ko
Application granted granted Critical
Publication of KR102103054B1 publication Critical patent/KR102103054B1/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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • 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
    • 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
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • 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/643Communication protocols
    • H04N21/64322IP
    • 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/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • 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
    • 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/85406Content authoring involving a specific file format, e.g. MP4 format
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

통신 패킷의 저장 부호화 데이터가, 랜덤 액세스 가능한 부호화 데이터에 기초하는 데이터인지 여부를 패킷 단위로 판별 가능하게 한 구성을 제공한다. 송신 장치가, 부호화 데이터의 구성 요소인 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성하고, 부가 정보로서, 패킷 저장 데이터의 원래 데이터인 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보를 설정해서 송신한다. 수신 장치는, 패킷 부가 정보를 참조하여, 패킷 저장 데이터가, 랜덤 액세스 가능한 부호화 데이터에 기초하여 생성된 데이터인지 여부를 판별한다.

Description

통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법{COMMUNICATION APPARATUS, COMMUNICATION DATA GENERATION METHOD, AND COMMUNICATION DATA PROCESSING METHOD}
본 개시는, 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법에 관한 것이다. 더욱 상세하게는 예를 들어 방송파나 네트워크를 통한 데이터의 송신 또는 수신을 실행하는 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법에 관한 것이다.
화상 데이터나 음성 데이터 등의 콘텐츠를 각 통신 사업자의 서비스 형태에 관계 없이 배신 가능하게 한 데이터 배신 방식으로서 OTT(Over The Top)가 알려져 있다. OTT에 의한 배신 콘텐츠는 OTT 콘텐츠라고 불리며, 또한 OTT를 이용한 화상(비디오) 데이터의 배신 서비스는 OTT 비디오나 OTT-V(Over The Top Video)라고 불린다.
예를 들어 OTT-V에 따른 데이터 스트리밍 배신의 기반 기술로서 DASH(Dynamic Adaptive Streaming overHTTP)가 이용된다. DASH는, HTTP(HyperText Transfer Protocol) 프로토콜을 사용한 어뎁티브(적응형) 스트리밍 기술의 표준 규격이다.
어뎁티브(적응형) 스트리밍에서는, 콘텐츠 배신 서버는 다양한 클라이언트에서 배신 콘텐츠의 재생을 가능하게 하기 위해서, 복수의 비트 레이트의 동화상 콘텐츠의 세분화 파일과 이들 속성 정보나 URL을 기술한 매니페스트·파일을 작성해서 유지한다.
클라이언트는, 매니페스트·파일을 서버로부터 취득하고, 자장치의 표시부의 사이즈나 이용 가능한 통신 대역에 따른 최적의 비트 레이트 콘텐츠를 선택하여, 선택 콘텐츠를 수신해서 재생한다. 네트워크 대역의 변동에 따라서 비트 레이트의 동적인 변경도 가능하고, 클라이언트측에서는, 상황에 따른 최적의 콘텐츠를 수시 전환해서 수신하는 것이 가능하게 되어, 영상 도중의 끊김의 발생을 저감한 동화상 콘텐츠 재생이 실현된다. 또한, 어뎁티브(적응형) 스트리밍에 대해서는, 예를 들어 특허문헌 1(일본 특허 공개 제2011-87103호 공보)에 기재되어 있다.
MPEG(Moving Picture Expert Group) 부호화된 동화상이나 음성 데이터를 상기 DASH에 따라서 스트리밍 배신하기 위한 사양을 정한 규격으로서 MPEG-DASH 규격이 있다.
MPEG-DASH 규격에는, 이하의 2개의 규격이 포함된다.
(a) 동화상이나 음성 파일의 관리 정보인 메타데이터를 기술하기 위한 매니페스트·파일(MPD: Media Presentation Description)에 관한 규격.
(b) 동화상 콘텐츠 전송용의 파일 포맷(세그먼트·포맷)에 관한 규격.
MPEG 데이터를 DASH에 따라서 스트리밍 배신하는 경우에는, 이 MPEG-DAH 규격에 따른 처리가 행하여진다.
그러나, 어뎁티브(적응형) 스트리밍 기술의 표준 규격인 DASH는, 1 대 1의 통신 처리인 포인트 투 포인트(Point-to-point)형의 HTTP 스트리밍 기술을 베이스로 하고 있다.
이 때문에, 예를 들어 스포츠 중계 등, 다수의 클라이언트가 동시에 시청할 가능성이 있는 콘텐츠(프로그램)의 스트리밍 배신에 적용하는 경우에는, CDN(Content Delivery Network)의 서포트가 필요해진다.
그러나, CDN을 적용한 포인트 투 포인트의 HTTP 스트리밍을 구축하기 위해서는 비용적인 제약이 있어, 방송 배신에 필적할 정도의 스케일러빌리티를 실현하는 것은 곤란하다. 상술한 바와 같이 DASH는, HTTP를 베이스로 하는 스트리밍 프로토콜을 이용하고 있어, 방송 배신과 같이 다수의 클라이언트가 동시에 시청하는 콘텐츠 배신에는 부적합하다는 문제가 있다.
일본 특허 공개 제2011-87103호 공보
본 개시는, HTTP를 베이스로 하는 스트리밍 프로토콜을 이용한 콘텐츠 배신에 있어서, 동시에 다수의 클라이언트에게 콘텐츠를 제공하고, 각 클라이언트에 있어서 지연이 적은 실시간 재생을 실현하는 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법을 제공하는 것을 목적으로 한다.
본 개시의 제1 측면은,
부호화 데이터를 저장한 패킷을 생성하는 데이터 처리부와,
상기 데이터 처리부가 생성한 패킷을 송신하는 통신부를 갖고,
상기 데이터 처리부는,
부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성하고,
패킷에 대한 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보를 설정한 패킷을 생성해서 상기 통신부를 통해서 송신하는 통신 장치에 있다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 액세스 포인트 정보는, 패킷 저장 데이터가, SAP(Streeming Access Point)에 의해 지정되는 부호화 데이터를 포함하는 NAL 유닛에 기초하여 생성된 데이터인지 여부를 나타내는 정보이다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 데이터 처리부는, GOP의 구성 데이터인 NAL 유닛을 1개 이상 포함하는 미디어 데이터와, 해당 미디어 데이터 대응의 메타데이터를 저장한 서브 GOP 미디어 세그먼트를 패킷 저장 데이터로서 생성한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 데이터 처리부는, GOP를 구성하는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 생성하고, NAL 유닛 프래그먼트를 저장한 복수의 패킷과, 상기 NAL 유닛에 대응하는 메타데이터를 저장한 패킷을 생성한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 데이터 처리부는, 송신 대상의 부호화 데이터를, 통신 경로 상에서 규정되는 최대 데이터 전송 단위(MTU: Maximum Transfer Unit) 이하의 데이터로 분할해서 생성한 분할 데이터를 저장한 패킷을 생성한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 데이터 처리부는, HTTP 패킷을 생성하고, 상기 부가 정보를 생성 패킷 내의 HTTP 헤더에 기록한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 데이터 처리부는, 상기 부가 정보를 생성 패킷 내의 확장 헤더에 기록한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 데이터 처리부는, 상기 부가 정보를 생성 패킷 내의 LCT 헤더에 기록한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 통신부는, 상기 데이터 처리부가 생성한 패킷을, 방송파를 통해서 브로드캐스트 배신 또는 멀티캐스트 배신한다.
또한, 본 개시의 제2 측면은,
송신 장치가 송신한 부호화 데이터 저장 패킷을 수신하는 통신부와,
상기 통신부가 수신한 패킷을 입력해서 처리를 실행하는 데이터 처리부를 갖고,
상기 통신부가 수신하는 상기 부호화 데이터 저장 패킷의 각각은,
부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷이며, 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보가 설정된 패킷인 통신 장치에 있다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 데이터 처리부는, 수신 패킷에 기록된 부가 정보인 상기 액세스 포인트 정보를 참조하여, 수신 패킷에 저장된 데이터가, SAP(Streeming Access Point)에 의해 지정되는 부호화 데이터를 포함하는 NAL 유닛에 기초하여 생성된 데이터인지 여부를 판정하는 처리를 실행한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 데이터 처리부는, 수신 패킷에 기록된 부가 정보인 상기 액세스 포인트 정보를 참조하여, 액세스 포인트를 포함하는 데이터를 선택 취득하고, 복호, 재생 처리를 실행한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 통신부는, 상기 부가 정보를 HTTP 헤더에 기록한 HTTP 패킷을 수신하고, 상기 데이터 처리부는, 수신 패킷의 HTTP 헤더로부터 상기 부가 정보를 취득한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 통신부는, 상기 부가 정보를 확장 헤더에 기록한 패킷을 수신하고, 상기 데이터 처리부는, 수신 패킷의 확장 헤더로부터 상기 부가 정보를 취득한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 통신부는, 상기 부가 정보를 LCT 헤더에 기록한 패킷을 수신하고, 상기 데이터 처리부는, 수신 패킷의 LCT 헤더로부터 상기 부가 정보를 취득한다.
또한, 본 개시의 통신 장치의 일 실시 형태에 있어서, 상기 통신부는, 상기 패킷을, 방송파를 통해서 수신한다.
또한, 본 개시의 제3 측면은,
데이터 송신 장치에 있어서 실행하는 통신 데이터 생성 방법이며,
데이터 처리부가,
부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성하고,
패킷에 대한 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보를 설정한 패킷을 생성해서 통신부를 통해서 송신하는 통신 데이터 생성 방법에 있다.
또한, 본 개시의 제4 측면은,
데이터 수신 장치에 있어서 실행하는 통신 데이터 처리 방법이며,
통신부가, 송신 장치가 송신한 부호화 데이터 저장 패킷을 수신하는 스텝과,
데이터 처리부가, 상기 통신부가 수신한 패킷을 입력해서 처리를 실행하는 데이터 처리 스텝을 실행하고,
상기 통신부가 수신하는 상기 부호화 데이터 저장 패킷의 각각은,
부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷이며, 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보가 설정된 패킷이며,
상기 데이터 처리 스텝은, 상기 통신부가 수신한 액세스 포인트 정보가 설정된 패킷을 입력해서 처리를 실행하는 스텝인 통신 데이터 처리 방법에 있다.
본 개시의 또 다른 목적, 특징이나 이점은, 후술하는 본 개시의 실시예나 첨부하는 도면에 기초하는 보다 상세한 설명에 의해 밝혀질 것이다. 또한, 본 명세서에서 시스템이란, 복수의 장치의 논리적 집합 구성이며, 각 구성의 장치가 동일 하우징 내에 있는 것에 제한하지는 않는다.
본 개시의 일 실시예의 구성에 의하면, 통신 패킷의 저장 부호화 데이터가, 랜덤 액세스 가능한 부호화 데이터에 기초하는 데이터인지 여부를 패킷 단위로 판별 가능하게 한 구성이 실현된다.
구체적으로는, 송신 장치가, 부호화 데이터의 구성 요소인 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성하고, 부가 정보로서, 패킷 저장 데이터의 원래 데이터인 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보를 설정해서 송신한다. 수신 장치는 패킷 부가 정보를 참조하여 패킷 저장 데이터가, 랜덤 액세스 가능한 부호화 데이터에 기초하여 생성된 데이터인지 여부를 판별한다.
본 구성에 의해, 통신 패킷의 저장 부호화 데이터가, 랜덤 액세스 가능한 부호화 데이터에 기초하는 데이터인지 여부를 패킷 단위로 판별 가능하게 한 구성이 실현된다.
또한, 본 명세서에 기재된 효과는 어디까지나 예시로서 한정되는 것이 아니며, 또한 부가적인 효과가 있어도 된다.
도 1은 본 개시의 처리를 실행하는 통신 시스템의 일 구성예에 대해서 설명하는 도면이다.
도 2는 송신 장치의 송신 데이터에 대해서 설명하는 도면이다.
도 3은 DASH 세그먼트의 구성예에 대해서 설명하는 도면이다.
도 4는 프래그먼트 생성 시퀀스에 대해서 설명하는 도면이다.
도 5는 프래그먼트 내의 미디어 데이터(mdat)를 1GOP 단위의 데이터가 아니라, 1GOP를 세분화한 데이터로 설정한 구성예에 대해서 설명하는 도면이다.
도 6은 서브 GOP 미디어 세그먼트에 HTTP 헤더를 설정한 HTTP 패킷의 구성예에 대해서 설명하는 도면이다.
도 7은 미디어 세그먼트 HTTP 패킷의 HTTP 헤더의 기록 정보에 대해서 설명하는 도면이다.
도 8은 미디어 세그먼트 HTTP 패킷의 HTTP 헤더의 기록 정보에 대해서 설명하는 도면이다.
도 9는 초기화 세그먼트 HTTP 패킷의 HTTP 헤더의 기록 정보에 대해서 설명하는 도면이다.
도 10은 IP 패킷의 구성예에 대해서 설명하는 도면이다.
도 11은 송신 장치와 수신 장치의 프로토콜 스택에 대해서 설명하는 도면이다.
도 12는 수신 장치의 프로토콜 스택에 대해서 설명하는 도면이다.
도 13은 미디어 세그먼트 HTTP 패킷의 HTTP 헤더의 기록 정보에 대해서 설명하는 도면이다.
도 14는 미디어 세그먼트 HTTP 패킷의 HTTP 헤더의 기록 정보에 대해서 설명하는 도면이다.
도 15는 MAC 프레임의 구성에 대해서 설명하는 도면이다.
도 16은 NAL 유닛 프래그먼트 대응 HTTP 패킷에 대해서 설명하는 도면이다.
도 17은 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 HTTP 헤더에 기록하는 부가 정보에 대해서 설명하는 도면이다.
도 18은 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 HTTP 헤더에 기록하는 부가 정보에 대해서 설명하는 도면이다.
도 19는 송신 장치가 실행하는 처리 시퀀스에 대해서 설명하는 흐름도를 도시하는 도면이다.
도 20은 수신 장치가 실행하는 처리 시퀀스에 대해서 설명하는 흐름도를 도시하는 도면이다.
도 21은 수신 장치가 실행하는 처리 시퀀스에 대해서 설명하는 흐름도를 도시하는 도면이다.
도 22는 확장 헤더에 기록하는 부가 정보의 예에 대해서 설명하는 도면이다.
도 23은 확장 헤더에 부가 정보를 기록한 실시예에 대해서 설명하는 도면이다.
도 24는 FLUTE 프로토콜에 따라서 설정되는 LCT 헤더의 구성예에 대해서 설명하는 도면이다.
도 25는 LCT 헤더의 헤더 확장부에 대한 데이터 기록 구성에 대해서 설명하는 도면이다.
도 26은 LCT 헤더의 헤더 확장부에 기록하는 데이터에 대해서 설명하는 도면이다.
도 27은 HEVC 부호화 데이터의 구성에 대해서 설명하는 도면이다.
도 28은 통신 장치의 하드웨어 구성예에 대해서 설명하는 도면이다.
이하, 도면을 참조하면서 본 개시의 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법의 상세에 대해서 설명한다. 또한, 설명은 이하의 항목에 따라서 행한다.
1. 통신 시스템의 구성예에 대해서
2. 일제 동시 배신형의 콘텐츠 배신에 있어서의 문제점에 대해서
3. 송신 데이터의 세분화 처리 구성에 대해서
4. HTTP 헤더에 부가 정보를 기록한 실시예에 대해서
5. 패킷의 구성에 대해서
6. 송신 장치와 수신 장치의 구성과 처리에 대해서
7. 패킷에 저장한 NAL 유닛이 SAP(스트림 액세스 포인트)를 포함하는지 여부를 식별 가능하게 한 액세스 포인트 정보를 부가한 구성에 대해서
8. NAL 유닛을 더 분할한 NAL 유닛 프래그먼트 저장 패킷을 이용한 통신 처리 구성에 대해서
9. 송신 장치와 수신 장치의 처리 시퀀스에 대해서
10. 확장 헤더에 부가 정보를 기록한 실시예에 대해서
11. LCT 헤더에 부가 정보를 기록한 실시예에 대해서
12. HEVC 부호화 데이터에 대한 적용예에 대해서
13. 각 장치의 하드웨어 구성예에 대해서
14. 본 개시의 구성의 정리
[1. 통신 시스템의 구성예에 대해서]
먼저, 도 1을 참조하여 본 개시의 처리를 실행하는 통신 시스템의 일 구성예에 대해서 설명한다.
도 1에 도시한 바와 같이, 통신 시스템(10)은, 화상 데이터나 음성 데이터 등의 콘텐츠를 송신하는 통신 장치인 송신 장치(20)와, 송신 장치(20)의 송신 콘텐츠를 수신하는 통신 장치인 수신 장치(30)를 갖는다.
송신 장치(20)는, 구체적으로는, 예를 들어 방송국(21)이나 콘텐츠 서버(22) 등, 콘텐츠를 제공하는 측의 장치이다.
한편, 수신 장치(30)는, 일반 유저의 클라이언트 장치이며, 구체적으로는, 예를 들어 텔레비전(31), PC(32), 휴대 단말기(33) 등으로 구성된다.
송신 장치(20)와 수신 장치(30) 사이의 데이터 통신은, 인터넷 등의 네트워크를 통한 쌍방향 통신, 또는, 방송파 등에 의한 일방향 통신 중 적어도 어느 하나, 또는 양자를 이용한 통신으로서 행하여진다.
송신 장치(20)로부터 수신 장치(30)에 대한 콘텐츠 송신은, 어뎁티브(적응형) 스트리밍 기술의 규격인 MPEG-DASH 규격에 따라서 실행한다.
앞서 설명한 바와 같이, MPEG-DASH 규격에는, 이하의 2개의 규격이 포함된다.
(a) 동화상이나 음성 파일의 관리 정보인 메타데이터를 기술하기 위한 매니페스트·파일(MPD: Media Presentation Description)에 관한 규격,
(b) 동화상 콘텐츠 전송용의 파일·포맷(세그먼트·포맷)에 관한 규격,
송신 장치(20)로부터, 수신 장치(30)에 대한 콘텐츠 배신은, 상기 MPEG-DASH 규격에 따라서 실행한다.
송신 장치(20)는, 콘텐츠 데이터를 부호화하여, 부호화 데이터 및 부호화 데이터의 메타데이터를 포함하는 데이터 파일을 생성한다. 부호화 처리는, 예를 들어 MPEG에서 규정되는 MP4 파일 포맷을 따라서 행하여진다. 또한, 송신 장치(20)가 MP4 형식의 데이터 파일을 생성하는 경우의 부호화 데이터의 파일은 「mdat」, 메타데이터는 「moov」나 「moof」 등으로 불린다.
이러한 부호화 데이터의 상세에 대해서는 후단에서 설명한다.
송신 장치(20)가 수신 장치(30)에 제공하는 콘텐츠는, 예를 들어 음악 데이터나, 영화, 텔레비전 프로그램, 비디오, 사진, 문서, 그림 및 도표 등의 영상 데이터나, 게임 및 소프트웨어 등, 다양한 데이터이다.
송신 장치(20)의 송신 데이터에 대해서 도 2를 참조하여 설명한다.
MPEG-DASH 규격에 따라서 데이터 송신을 실행하는 송신 장치(20)는, 도 2에 도시한 바와 같이, 초기화 세그먼트(Initialization Segment)(50)와, 미디어 세그먼트(Media Segment)(60)를, 각각 패킷에 저장해서 수신 장치(30)에 송신한다. 이러한 각 세그먼트는 DASH 세그먼트라고 불린다.
미디어 세그먼트(60) 각각은 MPEG 부호화된 콘텐츠 데이터를 분할해서 저장한 세그먼트이다.
초기화 세그먼트(50)는, 미디어 세그먼트(60)의 저장 콘텐츠를 수신 장치(30)측에서 재생하는 경우에 필요해지는 초기 설정 정보, 예를 들어 코덱의 설정 정보 등을 저장한 세그먼트이다.
또한, 송신 장치(20)는, 예를 들어 1개의 영화나 프로그램 등의 콘텐츠를, 다수의 미디어 세그먼트(60)에 분할 저장해서 순차적으로 송신한다.
송신 장치(20)는, 도 2에 도시하는 초기화 세그먼트(50), 미디어 세그먼트(60)를 HTTP 패킷에 저장하고, 또한 HTTP 패킷을 저장한 IP 패킷을 생성해서 송신한다. 송신 패킷의 구성의 상세에 대해서는 후단에서 설명한다.
도 2에 도시하는 수신 장치(30)는, 먼저, 1개의 초기화 세그먼트(50)를 수신하고, 초기화 세그먼트에 저장된 설정 정보에 따라서 코덱 등의 설정 처리 등을 실행한다. 계속해서, 미디어 세그먼트(60)를 순차적으로 수신하고, 재생순에 따라서 디코드를 행하여 재생 처리를 행한다.
[2. 일제 동시 배신형의 콘텐츠 배신에 있어서의 문제점에 대해서]
상술한 바와 같이, 어뎁티브(적응형) 스트리밍 기술의 표준 규격인 DASH는, 포인트 투 포인트의 HTTP 스트리밍을 베이스로 하고 있어, 다수의 클라이언트가 동시에 시청하는 일제 동시 배신형 콘텐츠의 배신에는 적합하지 않다는 문제가 있다.
그러나, 멀티캐스트나 브로드캐스트(MC/BC)를 병용함으로써, 콘텐츠를 동시에 다수의 클라이언트(수신 장치)에게 지연 없이 제공하는 것이 가능하다고 생각된다.
멀티캐스트나 브로드캐스트(MC/BC)형의 스트리밍에 적용 가능한 트랜스포트 프로토콜에는, 예를 들어 RTP(Real-time Transport Protocol)나 FLUTE(File Delivery over Uni-directional Transport)가 있다.
도 3을 참조하여, FLUTE 프로토콜을 이용해서 HTTP 스트리밍 베이스의 DASH 규격에 따라서 콘텐츠 스트림 배신을 행하는 경우에 이용 가능한 DASH 세그먼트의 구성예에 대해서 설명한다.
먼저 도 2를 참조하여 설명한 바와 같이, DASH 세그먼트는,
(a) 초기화 세그먼트(Initialization Segment),
(b) 미디어 세그먼트(Media Segment),
이들 2종류로 나뉜다.
(a) 초기화 세그먼트(Initialization Segment)는, 수신 장치(30)에 있어서의 디코더의 설정 등, 콘텐츠 재생을 실행하기 위해서 필요해지는 설정 정보 등의 초기화 데이터를 저장한 세그먼트이다.
(b) 미디어 세그먼트(Media Segment)는, 재생 대상이 되는 부호화 콘텐츠를 저장한 세그먼트이다.
도 3에 도시한 바와 같이 (a) 초기화 세그먼트는, 이하의 각 정보를 포함한다.
(a1) 세그먼트의 파일 타입 정보 등을 포함하는 헤더 정보(dash),
(a2) 미디어 세그먼트에 의해 송신하는 부호화 콘텐츠인 미디어 데이터(mdat)의 코덱(부호화 형태) 정보 등의 초기화 정보를 포함하는 메타데이터(moov),
한편, (b) 미디어 세그먼트는, 도 3에 도시한 바와 같이 이하의 각 정보를 포함한다.
(b1) 세그먼트의 파일 타입 정보 등을 포함하는 헤더 정보(msdh),
(b2) 미디어 세그먼트에 저장된 복수의 서브 세그먼트(Sub-Segment)의 경계 정보나, 미디어 세그먼트에 저장된 부호화 콘텐츠인 미디어 데이터(mdat)의 랜덤 액세스 포인트 등을 나타내는 액세스 정보(sidx),
(b3) 복수의 서브 세그먼트(Sub-Segment)(70),
또한, 복수의 서브 세그먼트(Sub-Segment)(70)는, 1개 또는 복수의 프래그먼트(Fragment)(80)로 구성된다.
프래그먼트(Fragment)(80)는, 이하의 각 데이터를 포함한다.
재생 대상이 되는 부호화 콘텐츠인 미디어 데이터(mdat), 미디어 데이터(mdat)에 대응하는 메타데이터(moof).
또한, (b) 미디어 세그먼트의 액세스 정보(sidx)에 기록되는 랜덤 액세스 포인트는, DASH에서는 SAP(Stream Access Point)라고 불린다.
SAP는, 예를 들어 스트림을 복호하기 위해서 필요한 모든 상태를 리셋할 수 있는 화상 시퀀스의 선두 픽처의 선두 바이트 위치를 나타낸다. 구체적으로는, 예를 들어 MPEG 데이터의 I 픽처의 위치 등을 나타내는 정보이다.
프래그먼트(Fragment)(80)에 저장하는 미디어 데이터(mdat) 대응의 메타데이터(moof)에는, 예를 들어 프래그먼트 저장 미디어 데이터(mdat)의 재생 시간 정보로서의 프리젠테이션 타임 등이 기록된다.
1개의 프래그먼트(80)에 저장하는 미디어 데이터(mdat)는, 현행에서는, 통상, DASH의 제어 대상이 되는 콘텐츠 스트림의 처리 단위(청크)로 설정된다. 처리 단위(청크)란, 예를 들어 MPEG(Moving Picture Expert Group) 부호화의 처리 단위인 GOP(Group of Pictures)이다.
또한, GOP는, 재생 시간이 약 0.5 내지 2초 정도의 데이터로 설정해서 운용하고 있는 경우가 많다.
그러나, 1개의 프래그먼트(80)에 저장하는 미디어 데이터(mdat)를 1개의 GOP 단위의 데이터로 하면, 데이터 배신이나 재생 처리에 있어서의 지연이 발생하여, 실시간 재생에 지장이 발생할 가능성이 있다.
예를 들어, 라이브 중계 화상을 배신하는 경우, 송신 장치(20)는, 카메라로부터 입력하는 라이브 화상 데이터의 부호화 처리를 실행해서 미디어 세그먼트(60)를 순차적으로 생성한다. 미디어 세그먼트(60)의 각 프래그먼트(80)에 저장하는 미디어 데이터(mdat)가 GOP 단위의 부호화 데이터인 경우, 송신 장치(30)는, GOP 단위의 부호화 데이터인 미디어 데이터(mdat)를 생성하고, 그 후, 생성한 미디어 데이터(mdat)의 프리젠테이션 타임 등의 속성 정보를 기술한 메타데이터(moof)를 생성하게 된다.
따라서, 이 시퀀스로 각 데이터의 생성을 행하면, 각 GOP 단위의 부호화 데이터의 데이터 범위가 결정된 후가 아니면, 그 GOP의 메타데이터(moof)의 생성을 할 수 없다.
따라서, 메타데이터(moof)의 생성은, 미디어 데이터(mdat)의 데이터 범위가 결정된 후에 행하게 되고, 각 메타데이터(moof)의 생성 처리는, 1개의 GOP 단위의 시간(0.5 내지 2초)에 상당하는 시간을 기다려서 행할 수밖에 없게 된다.
미디어 세그먼트(60)를 구성하는 프래그먼트(80)에 저장하는 미디어 데이터(mdat)를 GOP 단위의 부호화 데이터로 한 경우의 프래그먼트 생성 시퀀스에 대해서 도 4를 참조하여 설명한다.
또한, 도 4에 도시하는 예는, 미디어 세그먼트(60)에 저장하는 미디어 데이터(mdat)를 MPEG에 있어서 규정되는 MP4 파일 포맷(부호화 형식)에 따라서 저장하는 경우의 시퀀스 예이다.
MP4 파일 포맷의 데이터부는, 기본 저장 단위로서의 샘플(sample)로 구분된다. 또한 각 샘플(sample)은, 1 이상의 NAL 유닛에 의해 구성된다. NAL 유닛은, MPEG 부호화 데이터의 예를 들어 슬라이스 단위의 세분화 데이터이다.
도 4의 (a)에 도시하는 바와 같이 복수의 1개의 GOP에 대응하는 부호화 데이터는 복수의 NAL 유닛에 의해 구성된다.
도 4에는,
상단에 (a) GOP를 구성하는 NAL 유닛
하단에 (b) 프래그먼트 생성 처리 시퀀스
이들을 나타내고 있다.
(b) 프래그먼트 생성 처리 시퀀스의 최하단에는 시간축을 나타내고 있다. 좌측에서 우측으로 시간이 경과하고, 송신 장치(20)는, 이 시간축에 따라, 각 처리를 실행해서 프래그먼트를 생성한다.
또한, 송신 장치는, 생성한 프래그먼트를 저장한 미디어 세그먼트를 생성하고, 그 후, 미디어 세그먼트를 저장한 HTTP 패킷을 생성하고, 또한 HTTP 패킷을 저장한 IP 패킷을 생성한 후, IP 패킷의 송신을 행한다.
도 4의 (b)에 나타내는 프래그먼트 생성 처리 시퀀스에 대해서 설명한다.
송신 장치(20)는, 이하의 시퀀스로 MP4 파일 포맷에 따른 부호화 데이터를 저장한 프래그먼트를 생성한다.
시간 t0 내지 t1: GOP를 구성하는 복수의 NAL 유닛을 저장한 샘플 1(sample 1)을 생성,
간 t2 내지 t3: GOP를 구성하는 복수의 NAL 유닛을 저장한 샘플 2(sample 2)를 생성,
시간 t4 내지 t5: GOP를 구성하는 복수의 NAL 유닛을 저장한 샘플 3(sample 3)을 생성,
여기까지로, 1GOP를 구성하는 모든 NAL 유닛을 저장한 샘플의 생성이 완료된다.
이들 샘플 1 내지 3(sample 1 내지 3)이 미디어 세그먼트의 프래그먼트 내의 미디어 데이터(mdat)로서 설정되게 된다.
시간 t6 내지 t7: 샘플 1 내지 3(sample 1 내지 3)에 저장한 GOP 부호화 데이터의 속성 정보인 메타데이터(moof)를 생성한다.
시간 t8 내지 t9: 샘플 1 내지 3(sample 1 내지 3)에 의해 구성되는 미디어 데이터(mdat)와, 샘플 1 내지 3(sample 1 내지 3)의 메타데이터(moof)를 조합한 프래그먼트를 생성한다.
송신 장치(20)는, 그 후, 상술한 처리에 따라서 생성한 프래그먼트를 포함하는 미디어 세그먼트를 생성하고, 미디어 세그먼트를 페이로드로서 포함하는 패킷을 생성해서 수신 장치(30)에 송신하게 된다.
송신 장치(20)는, 프래그먼트를 생성하는 경우, 프래그먼트에 저장하는 GOP 단위의 미디어 데이터(mdat)의 재생 시간 등을 확인하고, 그 재생 시간에 따른 프레젠테이션 타임 등, GOP 데이터 단위의 속성 정보를 생성하여, 메타데이터(moof)에 기록할 필요가 있다.
현재, 데이터 배신되는 화상 데이터는, 주로 하이비전 대응의 화상 데이터인데, 금후, 더욱 고화질화가 진행되어, 예를 들어 4K 화상 등, 데이터량이 많은 데이터 배신이 증가할 것으로 예상된다. 이러한 대용량의 데이터 배신에 대응하기 위해서 스트림의 비트 레이트가 커질 가능성이 있다.
고화질화에 따른 데이터량의 증대에 따라서 각 GOP 단위의 데이터량도 증대된다. 따라서, 도 4를 참조하여 설명한 바와 같이 1개의 GOP 단위의 프래그먼트를 순차적으로 생성해서 송신하는 구성으로 하면, 송신측에서의 처리 간격이 길어진다. 또한, 송신 데이터의 단위당 데이터량도 커진다. 따라서, 충분한 통신 대역을 확보할 수 없는 경우, 네트워크 송신에 있어서의 송신 지연의 발생 가능성이 증가한다.
또한, 수신 장치측에서의 패킷 수신 간격이 길어져, 1패킷당 데이터 수신량이 증가하고, 수신 장치측에 요구되는 데이터 버퍼량도 증가한다. 또한, 패킷의 수신 에러가 발생한 경우의 재송 처리를 행하면, 지연량이 급격하게 커져, 실시간 재생이 파탄될 가능성이 높아진다.
[3. 송신 데이터의 세분화 처리 구성에 대해서]
상기 문제를 해결하기 위해서, 송신 장치(20)로부터 수신 장치(30)에 대한 송신 데이터를 세분화하여, 1개의 송신 패킷, 즉, 1단위당 송신 데이터량을 삭감한 구성예에 대해서 이하 설명한다.
도 4를 참조한 프래그먼트 생성 시퀀스에 있어서는, 프래그먼트에 설정하는 미디어 데이터(mdat)를 1GOP 단위의 데이터로 하고, 이 1GOP 단위의 미디어 데이터(mdat)에 대응하는 메타데이터(moof)를 생성하는 구성으로 하고 있었다. 즉, 각 메타데이터(moof)를 1GOP 단위의 미디어 데이터(mdat)에 대응한 메타데이터로 하고 있었다.
도 4에 도시하는 시퀀스에서는, 메타데이터(moof)의 생성 타이밍은, 1개의 GOP의 데이터량에 따라서 결정되어버린다. 따라서, 1GOP에 포함되는 데이터량이 많아지면, 메타데이터(moof)의 생성 타이밍도 지연되고, 그 결과, 프래그먼트의 생성 처리, 미디어 세그먼트의 생성 처리, 송신 패킷의 생성 처리에도 지연이 발생한다. 또한, 그 결과 1패킷당 데이터량이 증가하여, 배신 지연의 가능성을 높여버리게 된다.
이러한 사태를 방지하는 구성으로서, 프래그먼트 내의 미디어 데이터(mdat)를 1GOP 단위의 데이터가 아니라, 1GOP를 세분화한 데이터로 설정한 구성예에 대해서, 도 5를 참조하여 설명한다.
도 5에는, 프래그먼트에 저장하는 미디어 데이터(mdat)를 1개의 GOP 데이터가 아니라, 1개의 GOP 데이터를 세분화한 데이터, 구체적으로는 1개의 GOP의 구성 데이터인 1개의 NAL 유닛 또는 복수의 NAL 유닛으로 한 예를 나타내고 있다.
도 5의 (a)는 도 4의 (a)와 마찬가지로, GOP를 구성하는 NAL 유닛을 나타내고 있다.
도 5의 (b1) 내지 (b3)은, 이 1개의 GOP의 구성 데이터인 NAL 유닛을 미디어 데이터(mdat)로서 분산시켜서 저장한 복수의 미디어 세그먼트이다.
도 5의 (b1) 내지 (b3)에 도시하는 바와 같이 GOP 데이터를 세분화 데이터인 1 이상의 NAL 유닛으로 구성되는 미디어 데이터(mdat)를 저장한 미디어 세그먼트를, 이하, 서브 GOP 미디어 세그먼트라 칭한다.
도 5에는, 1개의 GOP 데이터를 3개의 서브 GOP 미디어 세그먼트에 저장한 예를 나타내고 있지만, 1개의 GOP 데이터를 저장하기 위한 서브 GOP 미디어 세그먼트의 수는, 2 이상의 임의의 수로 설정 가능하다.
또한, 도 5의 (b1) 내지 (b3)의 서브 GOP 미디어 세그먼트는, 모두 미디어 데이터(mdat)를 복수의 NAL 유닛에 설정한 예로 하고 있지만, 미디어 데이터(mdat)를 1개의 NAL 유닛만의 설정으로 해도 된다.
송신 장치(20)는, 도 5의 (b1) 내지 (b3)에 나타내는 서브 GOP 미디어 세그먼트를 생성하고, 생성한 서브 GOP 미디어 세그먼트의 각각을, 각각 개별의 HTTP 패킷의 페이로드에 설정해서 네트워크나 방송파를 통해서 송신한다.
도 5의 (b1) 내지 (b3)의 서브 GOP 미디어 세그먼트에 저장하는 메타데이터(moof)는, 개개의 서브 GOP 미디어 세그먼트에 저장하는 미디어 데이터(mdat)에 대응한 속성 정보를 포함하는 메타데이터로 한다.
이러한 설정으로 함으로써, 네트워크나 방송파를 통해서 송신되는 1개의 패킷의 데이터량이 작아져, 송신 장치측의 1개의 패킷 생성 처리에 필요로 하는 시간이 단축된다. 또한 패킷 지연의 가능성도 저감하여, 패킷 손실 등의 시의 재송 처리 지연도 작아진다. 결과로서, 수신 장치(30)에 있어서의 에러가 없는 실시간 재생이 실현된다.
서브 GOP 미디어 세그먼트에 HTTP 헤더를 설정한 HTTP 패킷의 구성예에 대해서, 도 6을 참조하여 설명한다.
도 6에는 2개의 HTTP 패킷 구성예를 나타내고 있다.
도 6의 (a)와 (b)에 나타내는 패킷의 차이는, 랜덤 액세스 정보 등을 저장하는 [sidx]를 갖는지 여부이다.
sidx는, 먼저 도 3을 참조하여 설명한 바와 같이, 미디어 세그먼트에 저장된 복수의 서브 세그먼트(Sub-Segment)의 경계 정보나, 미디어 세그먼트에 저장된 부호화 콘텐츠인 미디어 데이터(mdat)의 랜덤 액세스 포인트 등을 나타내는 액세스 정보이다. DASH에서는 액세스 정보는 SAP(Stream Access Point)라고 불린다. SAP는, 예를 들어 스트림을 복호하기 위해서 필요한 모든 상태를 리셋할 수 있는 화상 시퀀스의 선두 픽처의 선두 바이트 위치를 나타낸다. 구체적으로는, 예를 들어 MPEG 데이터의 I 픽처 위치에 상당한다.
도 6의 (b)에 나타내는 HTTP 패킷은, sidx를 포함하지 않는 패킷이다. 도 6의 (b)에 나타내는 HTTP 패킷은, 이 패킷에 저장된 미디어 데이터(mdat)에 액세스 포인트가 되는 픽처 데이터를 포함하지 않는다.
패킷 저장 미디어 데이터(mdat)에 액세스 포인트가 되는 데이터를 포함하지 않는 경우, 액세스 포인트를 나타내는 데이터도 불필요하게 된다. 따라서, 도 6의 (b)에 나타내는 HTTP 패킷에는 sidx가 설정되어 있지 않다.
한편, 액세스 포인트가 되는 데이터를 포함하는 미디어 데이터(mdat)를 저장한 서브 GOP 미디어 세그먼트를 갖는 패킷에는, 도 6의 (a)에 도시하는 바와 같이 sidx가 설정된다.
도 5 내지 도 6을 참조하여 설명한 바와 같이, 본 실시예에서는, 1개의 GOP 구성 데이터를 복수의 패킷에 분할해서 송신한다.
수신 장치(30)는, 이들 복수의 패킷을 순차적으로 수신하고, 각 패킷에 분할해서 저장된 GOP 구성 데이터를 취득한다. GOP 단위의 복호 처리를 행하는 경우에는, 복수의 패킷에 저장된 GOP 구성 데이터를 모두 모아서, GOP의 구성 데이터(NAL 유닛)를 올바른 순서로 배열해서 GOP 데이터를 재구성하는 것이 필요해진다.
이하, GOP 재구성 처리에 적용하는 정보 등, 수신 장치측에 있어서의 처리를 원활하게 실행시키기 위한 부가 정보의 설정예에 대해서 설명한다.
[4. HTTP 헤더에 부가 정보를 기록한 실시예에 대해서]
먼저, GOP 재구성 처리에 적용하는 정보 등, 수신 장치측에 있어서의 처리를 원활하게 실행시키기 위한 부가 정보를 HTTP 패킷의 HTTP 헤더에 기록한 실시예에 대해서 설명한다.
도 7, 도 8을 참조하여 HTTP 헤더의 기록 정보에 대해서 설명한다.
도 7에는, 먼저 도 5를 참조하여 설명한 바와 마찬가지로, 1개의 GOP 데이터를 3개의 서브 GOP 미디어 세그먼트에 분할 저장한 HTTP 패킷의 구성예를 나타내고 있다.
이들 3개의 HTTP 패킷의 HTTP 헤더에, 도 7에 도시한 바와 같이,
(1) 세그먼트 식별자(Content-Location)
(2) GOP내 위치 식별 정보(X- (Start/Middle/End)ofGOP)
이들 2개의 식별 정보를 기록한다.
(1) 세그먼트 식별자는, 그 HTTP 패킷에 저장된 세그먼트의 콘텐츠 위치 정보와, 세그먼트의 종류와 패킷에 저장된 미디어 데이터(mdat)가 속하는 GOP의 식별 정보를 포함하는 데이터이다. 또한, 구체적으로는 GOP 데이터의 위치 정보(URL 등의 액세스 정보)를 기록하면 된다.
패킷을 수신하는 수신 장치(30)는, 동일한 세그먼트 식별자(Content-Location)가 기록된 HTTP 패킷은 동일한 GOP에 속하는 미디어 데이터(mdat)를 저장한 HTTP 패킷이라고 판정할 수 있다.
(2) GOP내 위치 식별 정보는, HTTP 패킷에 저장된 미디어 데이터(mdat)가 1개의 GOP의 어느 위치에 있는지를 나타내는 데이터이다.
GOP내 위치 식별 정보=X-StartofGOP인 패킷은, GOP 데이터의 선두 영역의 NAL 유닛을 미디어 데이터(mdat)로서 저장한 패킷이다.
GOP내 위치 식별 정보=X-MiddleofGOP인 패킷은, GOP 데이터의 중간 영역의 NAL 유닛을 미디어 데이터(mdat)로서 저장한 패킷이다.
GOP내 위치 식별 정보=X-EndofGOP인 패킷은, GOP 데이터의 말미 영역의 NAL 유닛을 미디어 데이터(mdat)로서 저장한 패킷이다.
또한, 1개의 GOP 데이터가, 4개 이상의 서브 GOP 미디어 세그먼트로 분할된 경우, GOP내 위치 식별 정보=X-MiddleofGOP를 설정한 복수의 패킷이 생성되게 된다. 이들 패킷에 저장되는 미디어 데이터(mdat)의 GOP 데이터 내 배열은, HTTP 헤더 이외의 패킷 헤더 정보에 의해 판별할 수 있다.
예를 들어, HTTP 패킷을 저장하는 LCT 패킷의 LCT 헤더에 기록되는 패킷 시퀀스 번호를 참조함으로써 판별 가능하다. 또한, 구체적인 송신 패킷의 구성, 및 LCT 헤더 구성에 대해서는 후술한다.
따라서, 예를 들어 HTTP 패킷을 LCT 패킷에 저장해서 송신하는 구성에서는, HTTP 헤더에 설정하는 GOP내 위치 식별 정보는, GOP 위치가 선두 영역의 데이터를 저장한 패킷만을 식별하는 설정으로 해도 된다. 즉, GOP내 위치 식별 정보=X-StartofGOP만을 기록하고, 이 후에 이어지는 GOP 데이터는, LCT 헤더의 시퀀스 번호를 참조하여 배열하는 구성으로 해도 된다.
도 8에, 미디어 세그먼트를 저장한 HTTP 패킷의 HTTP 헤더의 데이터 구성예를 나타낸다.
도 8에 도시하는 바와 같이 HTTP 헤더에는, 예를 들어 이하의 HTTP 헤더 정보가 기록된다.
「···
HTTP/1.1 206 Partial Content
Date: Fri, 04 Oct 2013 11:14:20 GMT
Content-type: application/mp4
Content-Location: http://a.com/x.
mp4
X-StartOfGOP
···」
상기 HTTP 헤더 정보 중,
세그먼트 식별자는,
「Content-Location: http://a.com/x.mp4」
이다.
이 세그먼트 식별자는, HTTP 패킷에 저장된 미디어 데이터(mdat)가 속하는 GOP의 식별 정보를 포함하는 것이 된다. 구체적으로는 그 GOP 데이터의 위치 정보(액세스 정보)이다.
동일한 세그먼트 식별자(Content-Location)가 기록된 HTTP 패킷은, 동일한 GOP에 속하는 미디어 데이터(mdat)를 저장한 HTTP 패킷이라고 판정할 수 있다.
또한, 상기 HTTP 헤더 정보 중,
GOP내 위치 식별 정보는,
「X-StartOfGOP」
이다. 이 GOP내 위치 식별 정보는, HTTP 패킷에 저장된 미디어 데이터(mdat)가 1개의 GOP의 어느 위치에 있는지를 나타내는 데이터이다.
HTTP 패킷에 저장된 미디어 데이터(mdat)가 1개의 GOP의,
선두 영역인 경우에는, 「X-StartOfGOP」,
중간 영역인 경우에는, 「X-MiddleOfGOP」,
말미 영역인 경우에는, 「X-EndOfGOP」,
HTTP 헤더에는 이들 중 어느 하나의 데이터가 GOP내 위치 식별 정보로서 기록된다.
이어서, 초기화 세그먼트를 저장하는 HTTP 패킷의 HTTP 헤더의 기록 정보에 대해서 도 9를 참조하여 설명한다.
초기화 세그먼트를 저장하는 HTTP 패킷의 HTTP 헤더에는, HTTP 패킷이 초기화 세그먼트를 저장한 패킷인 것을 나타내는 세그먼트 식별 정보를 기록한다.
도 9에, 초기화 세그먼트를 저장한 HTTP 패킷의 HTTP 헤더의 데이터 구성예를 나타낸다.
도 9에 도시하는 바와 같이 HTTP 헤더에는, 예를 들어 이하의 HTTP 헤더 정보가 기록된다.
「···
HTTP/1.1 206 Partial Content
Date: Fri, 04 Oct 2013 11:14:20 GMT
Content-type: application/mp4
Content-Location: http://a.com/x-init.mp4
X-InitializationSegment
···」
상기 HTTP 헤더 정보 중,
세그먼트 식별자는,
「Content-Location: http://a.com/x-init.mp4」
이다.
이 세그먼트 식별자는, 초기화 세그먼트의 URL 등의 액세스 정보를 기록하면 된다.
상기 HTTP 헤더 정보 중,
세그먼트 식별 정보는,
「X-InitializationSegment」
이다.
이 세그먼트 식별 정보는, HTTP 패킷에 저장된 세그먼트가, 초기화 세그먼트인 것을 나타내는 정보이다.
초기화 세그먼트를 저장한 HTTP 헤더에는 이 세그먼트 식별 정보가 기록된다.
[5. 패킷의 구성에 대해서]
이어서, 송신 장치로부터 수신 장치를 향해서 송신되는 패킷의 구성예에 대해서 설명한다.
도 10에는 이하의 2개의 IP 패킷의 구성예를 나타내고 있다.
(1) 초기화 세그먼트 저장 IP 패킷
(2) 미디어 세그먼트 저장 IP 패킷
(1) 초기화 세그먼트 저장 IP 패킷은, 이하의 구성을 갖는다.
IP 헤더
UDP 헤더
LCT 헤더
HTTP 헤더
초기화 세그먼트 구성 데이터[dash]
초기화 세그먼트 구성 데이터[moov]
IP 헤더, UDP 헤더, LCT 헤더, HTTP 헤더는, 각각 IP 프로토콜, UDP 프로토콜, FLUTE 프로토콜, HTTP 프로토콜의 각 통신 프로토콜에 따라서 설정되는 헤더 정보이다.
한편, (2) 미디어 세그먼트 저장 IP 패킷은, 이하의 구성을 갖는다.
IP 헤더
UDP 헤더
LCT 헤더
HTTP 헤더
미디어 세그먼트 구성 데이터[msdh]
미디어 세그먼트 구성 데이터[sidx]
미디어 세그먼트 구성 데이터[moof]
미디어 세그먼트 구성 데이터[mdat]
IP 헤더, UDP 헤더, LCT 헤더, HTTP 헤더는, 각각 IP 프로토콜, UDP 프로토콜, FLUTE 프로토콜, HTTP 프로토콜의 각 통신 프로토콜에 따라서 설정되는 헤더 정보이다.
또한, 상술한 바와 같이 미디어 세그먼트 구성 데이터[sidx]는, 랜덤 액세스에 적용 가능한 미디어 데이터(mdat)를 갖는 패킷에는 설정되지만, 그 이외의 패킷에는 설정이 불필요하다.
송신 장치(20)는, 도 10에 도시하는 IP 패킷을 생성해서 수신 장치(30)를 향해 송신한다.
수신 장치(30)는, 수신 장치(20)로부터 수신하는 도 10에 도시하는 각 패킷을 수신하여, 각 헤더 정보를 해석하고, 세그먼트를 취출하여, 세그먼트 저장 데이터에 따라, 초기 설정이나 콘텐츠 재생을 실행한다.
[6. 송신 장치와 수신 장치의 구성과 처리에 대해서]
이어서, 도 11 이하를 참조하여 송신 장치와 수신 장치의 구성과 처리에 대해서 설명한다.
먼저, 도 11을 참조하여, 송신 장치(20)와 수신 장치(30)의 구성과 프로토콜 스택에 대해서 설명한다.
도 10을 참조하여 설명한 IP 패킷을 생성해서 송신하는 송신 장치(20)는, 도 11에 도시하는 바와 같이 데이터 처리부(21)와 통신부(22)를 갖는다.
데이터 처리부(21)는 송신 패킷의 생성 처리를 실행한다.
구체적으로는, 예를 들어 상술한 바와 같이 부호화 데이터의 처리 단위인 GOP(Group of Pictures)의 구성 데이터의 일부만을 포함하는 미디어 데이터(mdat)와, 미디어 데이터 대응의 메타데이터(moof)를 저장한 서브 GOP 미디어 세그먼트를 패킷 저장 데이터로서 생성한다. 또한, 서브 GOP 미디어 세그먼트의 저장 데이터인 미디어 데이터의 GOP내 위치를 나타내는 GOP내 위치 식별자 등의 패킷 부가 정보를 생성해서 HTTP 헤더에 기록한 패킷을 생성한다.
통신부(22)는, 데이터 처리부(21)가 생성한 패킷을 송신한다.
통신부(22)는, 데이터 처리부(21)가 생성한 패킷을, 방송파, 또는 인터넷 등의 네트워크를 통해서 브로드캐스트 배신 또는 멀티캐스트 배신한다.
데이터 처리부(21)와 통신부(22)는, 이하의 레이어를 포함하는 프로토콜 스택에 따라서 패킷 생성 처리를 실행하고, 생성한 패킷을 송신한다. 이하, 송신 장치(20)의 프로토콜 스택의 레이어 구성에 대해서 설명한다. 송신 장치(20)의 프로토콜 스택은, 상위 레이어부터 하위 레이어까지, 이하에 나타내는 레이어 구성을 갖는다.
(1) DASH Server: DASH 규격에 따른 세그먼트 생성 등의 처리를 실행하는 애플리케이션 레이어
(2) Video/Audio/Subtitle etc: 송신 대상 콘텐츠의 생성, 취득을 실행하는 애플리케이션 레이어
(3) FragmentedMP4: MP4 파일 포맷에 따른 부호화 데이터를 생성하여 세그먼트를 생성하는 애플리케이션 레이어
(4) HTTP: HTTP 프로토콜에 따라서 HTTP 헤더를 갖는 HTTP 패킷을 생성하는 레이어
(5) FLUTE/ALC(LCT): FLUTE 프로토콜에 따라서 LCT 헤더를 갖는 FLUTE 패킷을 생성하는 레이어
(6) UDP: UDP 프로토콜에 따라서 UDP 헤더를 갖는 UDP 패킷을 생성하는 레이어
(7)IP: IP 프로토콜에 따라서 IP 헤더를 갖는 IP 패킷을 생성하는 레이어
(8) PHY: IP 패킷 또는 IP 패킷을 저장한 MAC 프레임을 생성해서 송신하는 통신부 등으로 구성되는 물리 레이어
또한, 도 10을 참조하여 설명한 IP 패킷을 수신하는 수신 장치(30)는, 도 11에 도시하는 바와 같이 데이터 처리부(31)와 통신부(32)를 갖는다.
통신부(32)는, 송신 장치(20)가 송신하는 패킷을 수신하고, 데이터 처리부(31)는, 통신부(31)가 수신한 패킷을 입력하여, 데이터 처리를 행한다.
데이터 처리부(31)와 통신부(32)는, 이하의 레이어를 포함하는 프로토콜 스택에 따라서 패킷의 수신, 해석을 실행한다. 수신 장치(30)의 프로토콜 스택은, 상위 레이어부터 하위 레이어까지, 이하에 나타내는 레이어 구성을 갖는다.
(1) DASH Client: DASH 규격에 따른 세그먼트의 해석 등의 처리를 실행하는 애플리케이션 레이어
(2) Video/Audio/Subtitle etc: 수신 콘텐츠의 취득, 재생 처리 등을 실행하는 애플리케이션 레이어
(3) FragmentedMP4: MP4 파일 포맷에 따른 부호화 데이터의 복호 처리 등을 실행하는 애플리케이션 레이어
(4) HTTP: HTTP 프로토콜에 따라서 HTTP 헤더를 갖는 HTTP 패킷을 해석하는 레이어
(5) FLUTE/ALC(LCT): FLUTE 프로토콜에 따라서 LCT 헤더를 갖는 FLUTE 패킷을 해석하는 레이어
(6) UDP: UDP 프로토콜에 따라서 UDP 헤더를 갖는 UDP 패킷을 해석하는 레이어
(7) IP: IP 프로토콜에 따라서 IP 헤더를 갖는 IP 패킷을 해석하는 레이어
(8) PHY: IP 패킷 또는 IP 패킷을 저장한 MAC 프레임을 수신하는 통신부 등으로 구성되는 물리 레이어
또한, 송신 장치(20)는, 상술한 바와 같이 IP 패킷을 브로드캐스트, 또는 멀티캐스트 송신할 때, 네트워크를 통한 송신, 또는 방송파를 통한 송신 중 어느 하나, 또는, 이들 양쪽의 통신 경로를 이용해서 병렬 송신하는 처리를 행한다.
수신 장치(30)는, 방송파와, 인터넷 등의 네트워크 중 어느 하나의 통신 경로, 또는 양쪽 통신 경로를 통한 패킷 수신 처리를 행한다.
인터넷 등의 네트워크를 통한 송수신 패킷의 생성 및 해석은, 도 11에 도시하는 FLUTE/ALC(LCT) 레이어와 UDP 레이어를, TCP 레이어로 치환해서 행하는 것이 가능하다.
방송파를 통해서 수신하는 IP 패킷과, 인터넷 등의 네트워크를 통해서 수신하는 IP 패킷을 적절히 전환해서 처리를 행하는 수신 장치(30)의 프로토콜 스택의 예에 대해서, 도 12를 참조하여 설명한다.
도 12에 나타내는 수신 장치(30)의 프로토콜 스택은, 이하의 2개의 통신계에 대응한 프로토콜 스택의 레이어 구성을 나타내고 있다.
(1) 방송계
(2) 네트워크 통신계
(1) 방송계는, 도 11을 참조하여 설명한 레이어 구성으로 되어 있다.
(2) 네트워크 통신계는, 방송계 레이어의 FLUTE/ALC(LCT) 레이어와, UDP 레이어를 TCP 레이어로 치환한 구성이다.
TCP 레이어는, TCP 헤더를 갖는 TCP 패킷의 해석을 실행한다.
시그널링(Signaling) 레이어는, 각 통신계의 전환 제어를 행하기 위한 레이어이다.
수신 장치(30)는, 방송계와 네트워크 통신계의 각 레이어를 적절히 전환해서 이용함으로써, 방송파를 통해서 수신하는 패킷과, 인터넷 등의 네트워크를 통해서 수신하는 패킷을 선택적으로 이용해서 패킷 저장 콘텐츠를 취득하여 재생 처리를 실행할 수 있다.
예를 들어, 네트워크로부터의 패킷 수신에 지연이 발생한 경우, 방송계로 전환해서 동일 콘텐츠에 대응하는 패킷을, 방송파를 통해서 수신하여, 콘텐츠 재생을 계속할 수 있다.
네트워크 통신계, 방송계 중 어느 통신계를 통한 배신 패킷이든, 상술한 세그먼트 식별자나 GOP내 위치 식별자가 기록되어 있어, 이 식별 정보를 참조하여, GOP 데이터의 재구축이 가능하게 되고, 에러가 없는 복호 처리와, 콘텐츠 재생이 실현된다.
[7. 패킷에 저장한 NAL 유닛이 SAP(스트림 액세스 포인트)를 포함하는지 여부를 식별 가능하게 한 액세스 포인트 정보를 부가한 구성에 대해서]
이어서, 수신 장치의 처리 효율화를 실현하는 구성예로서, 패킷에 저장한 NAL 유닛 프래그먼트의 분할원인 NAL 유닛에 SAP(액세스 포인트 데이터)를 포함하는지 여부를 식별 가능하게 한 식별 정보를 부가한 구성에 대해서 설명한다.
앞서, 도 3 및 기타를 참조하여 설명한 바와 같이 SAP(Stream Access Point)는, 랜덤 액세스 포인트가 되는 데이터의 저장 위치 정보이다. DASH에서는 랜덤 액세스 포인트를 SAP(Stream Access Point)라 칭한다. SAP는, 예를 들어 스트림을 복호하기 위해서 필요한 모든 상태를 리셋할 수 있는 화상 시퀀스의 선두 픽처의 선두 바이트 위치를 나타낸다. 구체적으로는, 예를 들어 MPEG 데이터의 I 픽처 위치 등을 나타내는 정보이다.
또한, 앞서 도 3의 (b)를 참조하여 설명한 바와 같이, SAP는 미디어 세그먼트의 메타 정보인 [sidx]에 저장되어 있다.
수신 장치측에서는, SAP가 나타내는 데이터 위치의 부호화 데이터를 취득하고, 그 취득 데이터로부터 복호 처리를 실행해서 재생을 행하는 것이 가능하게 된다.
따라서, 콘텐츠의 도중부터 재생하는 등의 특수 재생 처리를 행하는 경우, SAP는 중요한 필수 데이터가 된다. 예를 들어, GOP 데이터 모두를 정렬시키지 않고, SAP에 의해 지정되는 부호화 데이터를 취득해서 복호함으로써 랜덤 액세스 포인트의 화상을 재생 가능하게 된다.
또한, 수신 장치는, 예를 들어 배신 지연 등에 의해 GOP 단위의 전체 부호화 데이터의 패킷 수신이 늦는 경우 등에, SAP에 의해 지정되는 랜덤 액세스 포인트 데이터를 우선해서 처리를 행하는 것도 가능하다. 랜덤 액세스 포인트 데이터를 선택해서 복호, 재생함으로써, 표시부의 화상 표시를 계속 가능하게 된다. 이와 같이, 처리 우선도를 판정하는 경우에도 SAP는 중요한 데이터가 된다.
1개의 GOP 단위 데이터 중에는, 확실하게 랜덤 액세스 포인트가 존재한다. 그러나, 도 5 내지 도 10을 참조하여 설명한 바와 같이, 1개의 패킷의 저장 데이터를 1GOP 단위의 데이터가 아니라, 1GOP를 세분화하여, 1개 또는 복수의 NAL 유닛을 저장한 패킷은, 패킷에 저장한 NAL 유닛에 랜덤 액세스 포인트가 포함되는 경우와 포함되지 않는 경우가 있다.
도 5 내지 도 10을 참조하여 설명한 구성에서는, 예를 들어 도 7에 도시한 바와 같이, 서브 GOP 미디어 세그먼트 HTTP 패킷에 메타데이터인 「sidx」를 포함하는 패킷과 포함하지 않는 패킷을 설정하고 있다.
서브 GOP 미디어 세그먼트 HTTP 패킷에 저장된 NAL 유닛에 랜덤 액세스 포인트 대응의 데이터가 포함되면 SAP를 기록한 [sidx]가 설정된다.
그러나, [sidx]는, 미디어 데이터의 랜덤 액세스 포인트 정보인 SAP뿐만 아니라, 그 밖의 데이터의 경계 정보 등도 포함하는 메타데이터이며, [sidx]의 유무만에 의해 패킷 저장 데이터에 액세스 포인트가 되는 데이터가 포함되는지 여부를 판정할 수는 없다.
따라서, 상술한 서브 GOP 미디어 세그먼트 HTTP 패킷을 이용한 부호화 데이터 배신 구성에서는, 수신 장치측은, 수신 패킷 단위로 패킷에 액세스 포인트 데이터가 포함되는지 여부를 판정하는 것이 곤란해진다.
이하, 이러한 문제를 해결하고, 수신 장치측에서, 수신 패킷 단위로, 패킷에 액세스 포인트 데이터가 포함되는지 여부를 판정 가능하게 한 구성에 대해 설명한다.
도 13 이하를 참조하여, 상술한 서브 GOP 미디어 세그먼트 HTTP 패킷을 이용한 부호화 데이터 배신 구성에 있어서, 패킷 단위로 각 패킷에 액세스 포인트 데이터가 포함되는지 여부를 판정 가능하게 한 구성에 대해서 설명한다.
도 13은, 앞서 설명한 도 5, 도 7과 마찬가지로, 1개의 GOP 데이터를 3개의 서브 GOP 미디어 세그먼트에 분할 저장한 HTTP 패킷의 구성예를 나타내고 있다.
이들 3개의 HTTP 패킷의 HTTP 헤더에는, 앞서 도 7을 참조하여 설명한 이하의 부가 정보가 기록된다.
(1) 세그먼트 식별자(Content-Location)
(2) GOP내 위치 식별 정보(X-(Start/Middle/End)ofGOP)
또한, 도 13에 나타내는 예에서는, HTTP 헤더에 이하의 부가 정보를 추가 기록한다.
(3) 액세스 포인트 정보(X-SAP)
이들 3개의 정보를 기록한다.
(1) 세그먼트 식별자는, 그 HTTP 패킷에 저장된 세그먼트의 콘텐츠 위치 정보와, 세그먼트의 종류와 패킷에 저장된 미디어 데이터(mdat)가 속하는 GOP의 식별 정보를 포함하는 데이터이다. 또한, 구체적으로는 GOP 데이터의 위치 정보(URL 등의 액세스 정보)를 기록하면 된다.
패킷을 수신하는 수신 장치(30)는, 동일한 세그먼트 식별자(Content-Location)가 기록된 HTTP 패킷은, 동일한 GOP에 속하는 미디어 데이터(mdat)를 저장한 HTTP 패킷이라고 판정할 수 있다.
(2) GOP내 위치 식별 정보는, HTTP 패킷에 저장된 미디어 데이터(mdat)가 1개의 GOP의 어느 위치에 있는지를 나타내는 데이터이다.
GOP내 위치 식별 정보=X-StartofGOP인 패킷은, GOP 데이터의 선두 영역의 NAL 유닛을 미디어 데이터(mdat)로서 저장한 패킷이다.
GOP내 위치 식별 정보=X-MiddleofGOP인 패킷은, GOP 데이터의 중간 영역의 NAL 유닛을 미디어 데이터(mdat)로서 저장한 패킷이다.
GOP내 위치 식별 정보=X-EndofGOP인 패킷은, GOP 데이터의 말미 영역의 NAL 유닛을 미디어 데이터(mdat)로서 저장한 패킷이다.
또한, 1개의 GOP 데이터가, 4개 이상의 서브 GOP 미디어 세그먼트로 분할된 경우, GOP내 위치 식별 정보=X-MiddleofGOP를 설정한 복수의 패킷이 생성되게 된다. 이들 패킷에 저장되는 미디어 데이터(mdat)의 GOP 데이터 내 배열은, HTTP 헤더 이외의 패킷 헤더 정보에 의해 판별할 수 있다.
예를 들어, HTTP 패킷을 저장하는 LCT 패킷의 LCT 헤더에 기록되는 패킷 시퀀스 번호를 참조함으로써 판별 가능하다. 또한, 구체적인 송신 패킷의 구성, 및 LCT 헤더 구성에 대해서는 후술한다.
따라서, 예를 들어 HTTP 패킷을 LCT 패킷에 저장해서 송신하는 구성에서는, HTTP 헤더에 설정하는 GOP내 위치 식별 정보는, GOP 위치가 선두 영역의 데이터를 저장한 패킷만을 식별하는 설정으로 해도 된다. 즉, GOP내 위치 식별 정보=X-StartofGOP만을 기록하고, 그 후에 이어지는 GOP 데이터는, LCT 헤더의 시퀀스 번호를 참조하여 배열하는 구성으로 해도 된다.
(3) 액세스 포인트 정보(X-SAP)는, HTTP 패킷에 저장된 미디어 데이터(mdat)에 포함되는 부호화 데이터에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 정보이다.
수신 장치는, 이 액세스 포인트 정보(X-SAP)를 참조함으로써, 그 HTTP 패킷에 저장된 미디어 데이터 내의 NAL 유닛이 액세스 포인트 데이터를 포함하는지 여부를 바로 판별할 수 있다.
따라서, 예를 들어 액세스 포인트 데이터만을 우선해서 복호, 재생을 행하는 경우에는, HTTP 헤더에 기록된 액세스 포인트 정보(X-SAP)를 참조하여, 처리 대상 패킷을 선택할 수 있다. 즉, HTTP 헤더에 기록된 액세스 포인트 정보(X-SAP)가, 패킷 저장 데이터(NAL 유닛)에 액세스 포인트가 포함되는 것을 나타내는 패킷만을 선택해서 처리를 행하는 것이 가능하게 된다.
또한, 도 13에 나타내는 예에서는, 도 13의 (b1) 내지 (b3)의 모든 HTTP 패킷에 액세스 포인트 정보(X-SAP)를 설정하고, 액세스 포인트 정보(X-SAP)가, 각 HTTP 패킷에 저장된 미디어 데이터(mdat)에 포함되는 부호화 데이터에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 구성으로 하고 있다.
이와 같은 구성 외에, 예를 들어 HTTP 패킷에 저장된 미디어 데이터(mdat)에 포함되는 부호화 데이터에 랜덤 액세스 포인트가 되는 데이터가 포함되는 경우에만, 그 HTTP 패킷의 HTTP 헤더에 액세스 포인트 정보(X-SAP)를 기록하는 구성으로 해도 된다. 즉, HTTP 패킷에 저장된 미디어 데이터(mdat)에 포함되는 부호화 데이터에 랜덤 액세스 포인트가 되는 데이터가 포함되지 않은 경우에는, HTTP 헤더에 액세스 포인트 정보(X-SAP)를 기록하지 않는다. 예를 들어, 도 13의 (b2), (b3)에 나타내는 HTTP 패킷에 랜덤 액세스 포인트가 되는 데이터가 포함되지 않는 경우에는, HTTP 헤더에 액세스 포인트 정보(X-SAP)를 기록하지 않는다.
이 설정의 경우, 수신 장치는, HTTP 헤더에 액세스 포인트 정보(X-SAP)가 기록되어 있는지 여부에 따라, HTTP 패킷에 저장된 미디어 데이터(mdat)에 포함되는 부호화 데이터에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 판정한다.
이 액세스 포인트 정보(X-SAP)는, 랜덤 액세스 가능한 데이터의 유무를 패킷 단위로 식별 가능하게 하는 정보이다. 수신 장치측에서는, 각 패킷의 액세스 포인트 정보(X-SAP)를 참조하여, 랜덤 액세스 가능한 데이터가 저장된 패킷을 선별하는 것이 가능하게 된다. 수신 장치는, 예를 들어 랜덤 액세스 가능한 데이터가 저장된 패킷을 우선 처리함으로써, 랜덤 액세스 포인트로부터의 데이터 재생 처리 등을 신속하게 행하는 것이 가능하게 된다.
도 14에, 미디어 세그먼트를 저장한 HTTP 패킷의 HTTP 헤더의 데이터 구성예를 나타낸다.
도 14에 도시하는 바와 같이 HTTP 헤더에는, 예를 들어 이하의 HTTP 헤더 정보가 기록된다.
「···
HTTP/1.1 206 Partial Content
Date: Fri, 04 Oct 2013 11:14:20 GMT
Content-type: application/mp4
Content-Location: http://a.com/x.mp4
X-StartOfGOP
X-SAP
···」
상기 HTTP 헤더 정보 중,
세그먼트 식별자 「Content-Location: http://a.com/x.mp4」
GOP내 위치 식별 정보 「X-StartOfGOP」,
이들에 대해서는, 앞서 도 8을 참조하여 설명한 것과 마찬가지의 정보이다.
즉, 세그먼트 식별자는, HTTP 패킷에 저장된 미디어 데이터(mdat)가 속하는 GOP의 식별 정보로서 기능하는 GOP 데이터의 위치 정보(액세스 정보)이다.
GOP내 위치 식별 정보는, HTTP 패킷에 저장된 미디어 데이터(mdat)가 1개의 GOP의 어느 위치에 있는지를 나타내는 데이터이다.
선두 영역의 경우에는, 「X-StartOfGOP」,
중간 영역의 경우에는, 「X-MiddleOfGOP」,
말미 영역의 경우에는, 「X-EndOfGOP」,
HTTP 헤더에는 이들 중 어느 하나의 데이터가 GOP내 위치 식별 정보로서 기록된다.
또한, 도 14에 도시하는 HTTP 헤더 정보 중,
액세스 포인트 정보 「X-SAP」는, 그 HTTP 패킷에 저장된 미디어 데이터(mdat)에 포함되는 부호화 데이터(NAL)에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 정보이다.
수신 장치는, 액세스 포인트 정보(X-SAP)를 참조함으로써, 수신 패킷 단위로 패킷 저장 미디어 데이터 내의 NAL 유닛에 액세스 포인트가 포함되는지 여부를 바로 판별할 수 있다.
수신 장치는, 액세스 포인트가 포함되는 패킷만을 선택하고, 이 패킷의 저장 데이터를 우선해서 복호하여, 재생하는 것이 가능하게 된다. 예를 들어 배신 지연 등에 의해 GOP 단위의 전체 부호화 데이터의 패킷 수신이 제때에 이루어 지지 않는 경우 등에, 랜덤 액세스 포인트 데이터를 우선해서 복호, 재생함으로써, 표시부의 화상 표시를 계속시킨다는 처리가 가능하게 된다.
[8. NAL 유닛을 더 분할한 NAL 유닛 프래그먼트 저장 패킷을 이용한 통신 처리 구성에 대해서]
상술한 바와 같이, GOP의 분할 데이터인 1개의 NAL 유닛 또는 복수의 NAL 유닛을 포함하는 패킷을 이용한 데이터 송수신을 행함으로써, 네트워크상의 1개의 전송 패킷의 데이터량의 삭감이 실현된다.
그러나, 예를 들어 고화질의 화상 데이터인 4K 콘텐츠나 8K 콘텐츠 등, 데이터량이 많은 화상 데이터에 대해서는, 이들 대용량 화상 데이터의 부호화 처리에 의해 생성하는 NAL 유닛의 데이터량이 증대된다. 즉, 1개의 NAL 유닛 그 자체의 데이터량이 매우 커지는 경우가 상정된다.
IP 레이어에 있어서의 데이터 전송 처리에 있어서, 예를 들어 이더넷(등록 상표)을 통한 데이터 전송을 행하는 경우, IP 패킷을 이더넷(등록 상표)에서 규정되는 최대 데이터 전송 단위(MTU: Maximum Transfer Unit) 이하의 MAC 프레임을 생성해서 전송하는 것이 필요해진다.
즉, 최대 데이터 전송 단위(MTU)가 규정된 네트워크를 통해서 패킷을 전송하는 경우에는, MTU 이상의 데이터량을 갖는 IP 패킷에 대해서, MTU로 규정하는 데이터량 이하로 분할하는 프래그먼트 처리를 실행하여, 각 분할 데이터를 저장한 복수의 MAC 프레임을 생성해서 전송하는 처리가 필수로 된다.
예를 들어 이더넷(등록 상표)이 규정하는 MAC 프레임의 프레임 단위의 최대 데이터 전송량(MTU)은 약 1500바이트이다.
MAC 프레임은, 예를 들어 도 15에 나타내는 구성을 갖고, 앞서 도 10을 참조하여 설명한 IP 패킷의 선두에 MAC 헤더를 설정한 구성이다. 예를 들어 도 15에 나타내는 MAC 프레임에서는, MAC 프레임의 페이로드가 되는 IP 헤더 내지 mdat까지의 데이터량을 MTU=1500바이트 이하로 설정하는 것이 필요해진다.
송신 장치(20)로부터 수신 장치(30)에 패킷 송신을 행하는 경우, 송신 장치(20)나 수신 장치(30)측의 각 디바이스간 통신이나, 송신 장치(20)와 수신 장치(30)간의 중계 장치 등에 있어서, 이 MTU에 따른 프래그먼테이션, 즉 패킷 분할 처리와, 분할 데이터의 재구성 처리가 반복해서 실행될 가능성이 있다.
이러한 사태가 발생하면, 송신 장치(20)에 있어서의 콘텐츠 입력으로부터 수신 장치(30)에 있어서의 콘텐츠 재생까지의 시간에 지연이 발생하여, 수신 장치(30)에 있어서의 콘텐츠의 재생 지연이 발생할 가능성이 높아지게 된다.
이하에서는, 이러한 사태를 방지하는 구성에 대해 설명한다.
이하에 설명하는 실시예에 있어서, 송신 장치(20)는, 패킷 생성 처리 단계에 있어서의 HTTP 레이어에 있어서, 패킷의 데이터 사이즈를 소정 사이즈 이하로 설정한다. 구체적으로는, 통신로에 있어서 상정되는 최대 데이터 전송 단위(MTU: Maximum Transfer Unit) 이하의 작은 데이터 사이즈로 한다. 구체적으로는, 예를 들어 1개의 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성해서 송신한다.
상술한 바와 같이, 예를 들어 이더넷(등록 상표)이 규정하는 MAC 프레임의 프레임 단위의 일반적인 최대 데이터 전송량(MTU)은 약 1500바이트이다.
송신 장치(20)의 데이터 처리부는, HTTP 패킷의 생성 단계에서, 이 MTU를 고려한 패킷 생성을 행한다. 예를 들어, HTTP 패킷을 저장한 MAC 프레임의 프레임 사이즈가 1500바이트 이하로 되도록 패킷 생성을 실행한다.
송신 장치(20)의 데이터 처리부에 있어서, 통신 경로에 있어서의 최대 데이터 전송량(MTU)을 고려한 패킷 생성 처리를 실행함으로써, 송신 장치나, 중계 장치, 또는 수신 장치의 IP 레이어에 있어서 MTU에 따른 패킷 분할 처리인 프래그먼테이션이 불필요하게 되어, 데이터 전송을 원활하게 실행하는 것이 가능해진다.
이와 같이, 송신 장치(20)의 데이터 처리부는, HTTP 패킷의 생성 단계에서, 패킷 저장 데이터를 통신 경로에 있어서 규정되는 MTU 이하의 작은 프래그먼트에 설정하는 처리를 실행한다. 이 처리에 의해, 예를 들어 통신로의 IP 레이어에 있어서의 프래그먼테이션 처리에 의한 오버헤드가 저감된다.
앞서 도 5 및 기타를 참조하여 설명한 예에서는, 1개 또는 복수의 NAL 유닛을 미디어 데이터(mdat)로 하고, 또한 그 속성 데이터인 메타데이터(moof)와 조합해서 1개의 프래그먼트를 생성하고, 이 프래그먼트를 갖는 서브 GOP 미디어 세그먼트를 저장한 HTTP 패킷을 생성하고 있었다.
이하에 설명하는 실시예에서는, 1개의 NAL 유닛을 분할한 NAL 유닛 프래그먼트(NALf)를 미디어 데이터(mdat)로서 저장한 HTTP 패킷을 생성한다.
또한, NAL 유닛 대응의 속성 데이터인 (moof)는, 미디어 데이터(mdat) 저장 패킷과 상이한 다른 독립된 HTTP 패킷에 저장해서 배신한다.
도 16을 참조하여, 본 실시예에 있어서의 HTTP 패킷의 구성예에 대해서 설명한다.
도 16의 (a)는, 앞서 도 5 내지 도 7 등을 참조하여 설명한 서브 GOP 미디어 세그먼트이다. 즉, GOP를 분할한 데이터인 1개 이상의 NAL 유닛을 미디어 데이터(mdat)로서 저장한 세그먼트이다.
단, 도 16의 (a)에 나타내는 서브 GOP 미디어 세그먼트는, 미디어 데이터(mdat)로서 1개의 NAL 유닛만을 저장한 예이다. NAL 유닛은 하나에 한하지 않고 복수의 NAL 유닛으로 해도 된다.
본 실시예에서는, 이 도 16의 (a)에 도시한 바와 같은 서브 GOP 미디어 세그먼트를 더 분할해서 복수의 HTTP 패킷을 생성한다. 분할 처리는, 통신 경로에 있어서의 최대 데이터 전송량(MTU)을 고려해서 실행한다. 예를 들어, 분할 후의 HTTP 패킷을 저장한 MAC 프레임을 생성한 경우에, MAC 프레임에 허용되는 최대 데이터 전송 단위(MTU: Maximum Transfer Unit) 이하가 되도록 행한다.
또한, 분할 처리 시에는 1개 또는 복수의 NAL 유닛을 분할하는 NAL 유닛 분할 처리를 행하게 된다. 이하에서는, NAL 유닛의 분할 후의 데이터를 NAL 유닛 프래그먼트(NALf)로서 설명한다.
또한, 서브 GOP 미디어 세그먼트의 구성 데이터를 분할해서 생성한 HTTP 패킷을 NAL 유닛 프래그먼트 대응 HTTP 패킷이라 칭한다.
도 16에 도시하는 예에서는, 도 16의 (a)에 나타내는 서브 GOP 미디어 세그먼트의 구성 데이터를 4개의 HTTP 패킷(b1 내지 b4)에 분할한 예를 나타내고 있다.
(b1) 내지 (b4)에 나타내는 4개의 NAL 유닛 프래그먼트 대응 HTTP 패킷의 각각은, 이 HTTP 패킷을 도 15에 나타내는 MAC 프레임 구성으로 한 경우, MAC 헤더 이외의 데이터부의 데이터량이 1500바이트 이하가 되는 데이터량으로 설정한다.
도 16의 (b1)에 나타내는 NAL 유닛 프래그먼트 대응 HTTP 패킷은, (a)에 나타내는 서브 GOP 미디어 세그먼트의 메타데이터 영역, 즉, msdh(stype), sidx, moof, 이들 메타데이터를 저장한 HTTP 패킷이다. 즉, 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷이다.
또한, 도 16의 (b2) 내지 (b4)에 나타내는 NAL 유닛 프래그먼트 대응 HTTP 패킷은, (a)에 나타내는 서브 GOP 미디어 세그먼트의 미디어 데이터(mdat) 영역의 NAL 유닛을 분할해서 생성한 NAL 프래그먼트(NALf)를 저장한 HTTP 패킷이다. 즉, 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷이다.
또한, 도 16의 (a)에 나타내는 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛은 1개만이지만, 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛은, 도 16의 (a)에 도시하는 바와 같이 1개의 NAL 유닛인 경우와, 2개 이상의 복수의 NAL 유닛인 경우가 있다. NAL 유닛 프래그먼트의 구성 데이터는, 1개의 NAL 유닛에만 한하지 않고, 복수의 NAL 유닛에 걸친 데이터로 해도 된다. 예를 들어 선행하는 NAL 유닛의 후반 부분과, 후속의 NAL 유닛의 선두 부분을 합쳐서 1개의 NAL 유닛 프래그먼트를 설정한다는 구성도 가능하다.
송신 장치(20)는, 이렇게 1개의 서브 GOP 미디어 세그먼트를 분할해서 복수의 HTTP 패킷을 생성하고, 이들 HTTP 패킷으로부터 또한 IP 패킷을 생성하여, 순차적으로 송신한다.
그러나, 이와 같이 본래의 1개의 NAL 유닛이나 그 속성 정보가 분할되어 배신되면, 수신 장치(30)측에서 복호, 재생 처리를 행하기 위해서는, NAL 유닛과 그 속성 정보를 재구축할 필요가 있다.
이 때문에 필요해지는 정보를 부가 정보로서 HTTP 헤더에 기록한다.
도 16의 (b1)에 나타내는 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 HTTP 헤더에는, 이하의 부가 정보를 기록한다.
*NAL 유닛 프래그먼트 헤더[X-NALUFragmentSubSegmentHeader]
*무비 프래그먼트 시퀀스 번호[X-MovieFragmentSequenceNumber]
*액세스 포인트 정보[X-SAP]
NAL 유닛 프래그먼트 헤더는, 그 HTTP 패킷이,
메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷인지,
미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷인지
를 식별하기 위한 식별 정보이다.
무비 프래그먼트 시퀀스 번호는, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호이며, 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛의 배열 정보이다. 이 시퀀스 번호는, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호를 그대로 카피해서 기록한다.
액세스 포인트 정보는, 이 HTTP 패킷의 생성원이 된 서브 GOP 세그먼트(도 16의 (a)의 서브 GOP 미디어 세그먼트)에 저장된 NAL 유닛에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 정보이다.
수신 장치는, 이 액세스 포인트 정보(X-SAP)를 참조함으로써, 그 HTTP 패킷이, 랜덤 액세스 포인트가 되는 NAL 유닛을 포함하는 서브 GOP 세그먼트의 구성 데이터에 기초하여 생성된 데이터인지 여부를 바로 판별할 수 있다.
또한, 이 도 16의 (b1)의 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 HTTP 헤더에 기록된 액세스 포인트 정보(X-SAP)가, 패킷 생성원의 서브 GOP 세그먼트에 액세스 포인트 데이터를 포함하는 것을 나타내는 경우, 메타데이터인 [sidx]를 참조함으로써, SAP, 즉 랜덤 액세스 포인트의 부호화 데이터의 위치를 취득하는 것이 가능하게 된다.
한편, 도 16의 (b2) 내지 (b4)에 나타내는 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 HTTP 헤더에는, 이하의 부가 정보를 기록한다.
*무비 프래그먼트 시퀀스 번호[X-MovieFragmentSequenceNumber]
*NAL 유닛내 위치 식별 정보[X-NALUFragmentIndicator]
*액세스 포인트 정보[X-SAP]
무비 프래그먼트 시퀀스 번호는, 상술한 바와 같이, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호이며, 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛의 배열 정보이다. 이 시퀀스 번호는, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호를 그대로 카피해서 기록한다.
NAL 유닛내 위치 식별 정보는, 패킷에 저장한 NAL 유닛 프래그먼트(NALf)가, 분할 전의 NAL 유닛의 어느 위치에 대응하는 프래그먼트인지를 나타내는 정보이다.
NAL 유닛내 위치 식별 정보=X-StartNALUFragmentSubSegment인 패킷은, 분할 전의 NAL 유닛의 선두 영역의 NAL 유닛 프래그먼트(NALf)를 미디어 데이터(mdat)로서 저장한 패킷이다.
NAL 유닛내 위치 식별 정보=X-MiddleNALUFragmentSubSegment인 패킷은, 분할 전의 NAL 유닛의 중간 영역의 NAL 유닛 프래그먼트(NALf)를 미디어 데이터(mdat)로서 저장한 패킷이다.
NAL 유닛내 위치 식별 정보=X-EndNALUFragmentSubSegment인 패킷은, 분할 전의 NAL 유닛의 말미 영역의 NAL 유닛 프래그먼트(NALf)를 미디어 데이터(mdat)로서 저장한 패킷이다.
또한, 1개의 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛이, 4개 이상의 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷으로 분할된 경우, NAL 유닛내 위치 식별 정보=X-MiddleNALUFragmentSubSegment를 설정한 복수의 패킷이 생성되게 된다. 이들 패킷에 저장되는 미디어 데이터(mdat)의 NAL 유닛 프래그먼트(NALf)의 배열은, HTTP 헤더 이외의 패킷 헤더 정보에 의해 판별할 수 있다.
예를 들어 HTTP 패킷을 저장하는 LCT 패킷의 LCT 헤더에 기록되는 패킷 시퀀스 번호를 참조함으로써 판별 가능하다. 또한, 구체적인 송신 패킷의 구성 및 LCT 헤더 구성에 대해서는 후술한다.
따라서, 예를 들어 HTTP 패킷을 LCT 패킷에 저장해서 송신하는 구성에서는, HTTP 헤더에 설정하는 NAL 유닛내 위치 식별 정보는, 위치가 선두 영역의 데이터를 저장한 패킷만을 식별하는 설정으로 해도 된다. 즉, NAL 유닛내 위치 식별 정보=X-StartNALUFragmentSubSegment만을 기록하고, 그 후에 이어지는 데이터는, LCT 헤더의 시퀀스 번호를 참조하여 배열하는 구성으로 해도 된다.
액세스 포인트 정보는, 이 HTTP 패킷의 생성원이 된 서브 GOP 세그먼트(도 16의 (a)의 서브 GOP 미디어 세그먼트)에 저장된 NAL 유닛에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 정보이다.
수신 장치는, 이 액세스 포인트 정보(X-SAP)를 참조함으로써, 그 HTTP 패킷이, 랜덤 액세스 포인트가 되는 NAL 유닛을 포함하는 서브 GOP 세그먼트의 구성 데이터에 기초하여 생성된 데이터인지 여부를 바로 판별할 수 있다.
도 17에, 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 구성과 HTTP 헤더의 데이터 구성예를 나타낸다.
도 17에 도시하는 바와 같이 HTTP 헤더에는, 예를 들어 이하의 HTTP 헤더 정보가 기록된다.
「···
HTTP/1.1 206 Partial Content
Date: Fri, 04 Oct 2013 11:14:20 GMT
Content-type: application/mp4
X-NALUFragmentSubSegmentHeader
X-MovieFragmentSequenceNumber:234567
X-SAP
···」
상기 HTTP 헤더 정보 중,
NAL 유닛 프래그먼트 헤더는,
「X-NALUFragmentSubSegmentHeader」
이다.
이 NAL유닛 프래그먼트 헤더는, 이 HTTP 패킷이, 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷인 것을 나타내는 정보로서 기록된다.
또한, 상기 HTTP 헤더 정보 중,
무비 프래그먼트 시퀀스 번호는,
「X-MovieFragmentSequenceNumber」
이다.
이 무비 프래그먼트 시퀀스 번호는, 상술한 바와 같이, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호이며, 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛의 배열 정보이다. 이 시퀀스 번호는, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호를 그대로 카피해서 기록한다.
또한, 상기 HTTP 헤더 정보 중,
액세스 포인트 정보는,
「X-SAP」
이다.
이 액세스 포인트 정보는, 이 HTTP 패킷의 생성원이 된 서브 GOP 세그먼트에 저장된 NAL 유닛에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 정보이다.
이어서, 도 18을 참조하여, 미디어 데이터를 저장하는 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 구성과 HTTP 헤더의 데이터 구성예에 대해서 설명한다.
도 18에 도시하는 바와 같이 HTTP 헤더에는, 예를 들어 이하의 HTTP 헤더 정보가 기록된다.
「··
HTTP/1.1 206 Partial Content
Date: Fri, 04 Oct 2013 11:14:20 GMT
Content-type: application/mp4
X-StartOfGOP
X-MovieFragmentSequenceNumber:234567
X-StartNALUFragmentSubSegment
X-SAP
···」
상기 HTTP 헤더 정보 중,
GOP내 위치 식별 정보는,
「X-StartOfGOP」
이다. 이 GOP내 위치 식별 정보는, HTTP 패킷에 저장된 미디어 데이터(mdat)가 1개의 GOP의 어느 위치에 있는지를 나타내는 데이터이다.
선두 영역의 경우에는, 「X-StartOfGOP」,
중간 영역의 경우에는, 「X-MiddleOfGOP」,
말미 영역의 경우에는, 「X-EndOfGOP」,
HTTP 헤더에는 이들 중 어느 하나의 데이터가 GOP내 위치 식별 정보로서 기록된다.
또한, 상기 HTTP 헤더 정보 중,
무비 프래그먼트 시퀀스 번호는,
「X-MovieFragmentSequenceNumber」
이다.
이 무비 프래그먼트 시퀀스 번호는, 상술한 바와 같이, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호이며, 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛의 배열 정보이다. 이 시퀀스 번호는, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호를 그대로 카피해서 기록한다.
또한, 상기 HTTP 헤더 정보 중,
NAL 유닛내 위치 식별 정보는,
「X-StartNALUFragmentSubSegment」
이다.
이 NAL 유닛내 위치 식별 정보는, 패킷에 저장한 NAL 유닛 프래그먼트(NALf)가, 분할 전의 NAL 유닛의 어느 위치에 대응하는 프래그먼트인지를 나타내는 정보이다.
NAL 유닛내 위치 식별 정보=X-StartNALUFragmentSubSegment인 패킷은, 분할 전의 NAL 유닛의 선두 영역의 NAL 유닛 프래그먼트(NALf)를 미디어 데이터(mdat)로서 저장한 패킷이다.
NAL 유닛내 위치 식별 정보=X-MiddleNALUFragmentSubSegment인 패킷은, 분할 전의 NAL 유닛의 중간 영역의 NAL 유닛 프래그먼트(NALf)를 미디어 데이터(mdat)로서 저장한 패킷이다.
NAL 유닛내 위치 식별 정보=X-EndNALUFragmentSubSegment인 패킷은, 분할 전의 NAL 유닛의 말미 영역의 NAL 유닛 프래그먼트(NALf)를 미디어 데이터(mdat)로서 저장한 패킷이다.
또한, 상기 HTTP 헤더 정보 중,
액세스 포인트 정보는,
「X-SAP」
이다.
이 액세스 포인트 정보는, 이 HTTP 패킷의 생성원이 된 서브 GOP 세그먼트에 저장된 NAL 유닛에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 정보이다.
[9. 송신 장치와 수신 장치의 처리 시퀀스에 대해서]
이어서, 도 19, 도 20에 나타내는 흐름도를 참조하여 송신 장치와 수신 장치가 실행하는 처리 시퀀스에 대해서 설명한다.
먼저, 도 19에 나타내는 흐름도를 참조하여 송신 장치(20)가 실행하는 처리 시퀀스에 대해서 설명한다.
도 19에 나타내는 플로우는, 도 16을 참조하여 설명한 예를 들어 도 16의 (a)에 나타내는 서브 GOP 미디어 세그먼트에 기초하여 생성하는 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷, 또는 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 생성과 송신 처리의 시퀀스를 설명하는 플로우이다.
이 처리는, 송신 장치(20)의 데이터 처리부에서 실행한다. 데이터 처리부는, 프로그램 실행 기능을 갖는 CPU를 구비하고, 예를 들어 기억부에 저장된 프로그램에 따라, 도 19에 나타내는 플로우에 따른 처리를 실행한다.
이하, 각 스텝의 처리에 대해서, 순차적으로 설명한다.
(스텝 S101)
먼저, 송신 장치의 데이터 처리부는, 송신 대상이 되는 콘텐츠의 부호화 처리를 실행한다. 예를 들어 MP4 파일 포맷에 따른 부호화 처리를 실행한다.
(스텝 S102)
이어서, 송신 장치는, 서브 GOP 미디어 세그먼트 대응의 미디어 데이터(mdat)를 생성한다. 이 처리는, 앞서 도 5 및 기타를 참조하여 설명한 서브 GOP 미디어 세그먼트에 저장하는 미디어 데이터(mdat)를 생성하는 처리이다. MP4 부호화 데이터인 GOP 데이터의 일부, 즉 GOP를 구성하는 1개 이상의 NAL 유닛을 구성 데이터로 하는 미디어 데이터(mdat)를 생성한다.
(스텝 S103)
이어서, 송신 장치는, 스텝 S102에서 생성한 미디어 데이터(mdat)에 대응하는 속성 정보인 메타데이터(moof)를 생성한다.
(스텝 S104)
이어서, 송신 장치는, 서브 GOP 미디어 세그먼트에 대응하는 메타데이터인 msdh, sidx를 생성한다. 앞서 도 5 및 기타를 참조하여 설명한 서브 GOP 미디어 세그먼트에 저장하는 메타데이터이다.
(스텝 S105)
이어서, 송신 장치는, 서브 GOP 미디어 세그먼트 저장용의 메타데이터(mdat)를 분할해서 NAL 유닛 프래그먼트(Nalf)를 생성한다. 또한, 분할 처리는, 예를 들어 MAC 프레임의 일반적인 MTU에 따라, MAC 프레임으로 한 경우의 페이로드가 약 1500바이트 이하로 되도록 분할 처리를 실행한다.
(스텝 S106)
이어서, 송신 장치는, 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷과, NAL 유닛 프래그먼트를 저장한 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 패킷 헤더를 생성한다.
이것은, 앞서 도 16, 도 17, 도 18을 참조하여 설명한 HTTP 헤더 정보의 생성 처리이다.
메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 HTTP 헤더에는, 이하의 정보를 기록한다.
먼저, 이 HTTP 패킷이 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷인 것을 나타내는 NAL 유닛 프래그먼트 헤더를 기록한다.
또한, 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛의 배열 정보에 상당하는 무비 프래그먼트 시퀀스 번호를 기록한다. 이 시퀀스 번호는, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호를 그대로 카피해서 기록한다.
또한, 액세스 포인트 정보 「X-SAP」를 기록한다.
이 액세스 포인트 정보는, 이 HTTP 패킷의 생성원이 된 서브 GOP 세그먼트에 저장된 NAL 유닛에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 정보이다.
한편, 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 패킷 헤더에는 이하의 정보를 기록한다.
GOP내 위치 식별 정보: HTTP 패킷에 저장된 미디어 데이터(mdat)가 1개의 GOP의 어느 위치에 있는지를 나타내는 데이터이며,
선두 영역의 경우에는, 「X-StartOfGOP」,
중간 영역의 경우에는, 「X-MiddleOfGOP」,
말미 영역의 경우에는, 「X-EndOfGOP」,
이들 중 어느 하나의 데이터를 기록한다.
무비 프래그먼트 시퀀스 번호: 상술한 바와 같이, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호이며, 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛의 배열 정보이다. 이 시퀀스 번호는, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호를 그대로 카피해서 기록한다.
NAL 유닛내 위치 식별 정보: 패킷에 저장한 NAL 유닛 프래그먼트(NALf)가, 분할 전의 NAL 유닛의 어느 위치에 대응하는 프래그먼트인지를 나타내는 정보이다.
액세스 포인트 정보 「X-SAP」: 액세스 포인트 정보는, 이 HTTP 패킷의 생성원이 된 서브 GOP 세그먼트에 저장된 NAL 유닛에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 정보이다.
송신 장치는, 스텝 S106에서, 상기한 바와 같이 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷과, NAL 유닛 프래그먼트를 저장한 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷의 패킷 헤더를 생성한다.
(스텝 S107)
이어서, 송신 장치는, 스텝 S107에서 스텝 S106에서 생성한 HTTP 헤더를 설정한 이하의 HTTTP 패킷을 생성한다.
메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷
미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷
이들 각 HTTP 패킷을 생성한다.
(스텝 S108 내지 S109)
이어서, 송신 장치는, 생성한 HTTP 패킷에 대하여 LCT 헤더, UDP 헤더, IP 헤더를 설정해서 IP 패킷을 생성하여 송신한다. 송신 처리는, 인터넷 등의 통신 네트워크 또는 방송파 중 어느 하나 또는 양쪽 통신로를 통해서 실행한다.
또한, 도 19에 나타내는 플로우는, 미디어 세그먼트에 기초하여 생성하는 패킷의 생성과 송신 처리 시퀀스를 설명하는 플로우이다. 초기화 세그먼트에 기초하는 패킷 생성 시에는, 초기화 세그먼트의 구성 데이터의 생성 후, HTTP 헤더에 초기화 세그먼트인 것을 나타내는 세그먼트 식별자를 기록하는 처리 등을 행하게 된다.
이어서, 도 20, 도 21에 나타내는 흐름도를 참조하여 수신 장치에서 실행하는 패킷 수신부터 콘텐츠 재생에 이르기까지의 처리 시퀀스에 대해서 설명한다.
이 처리는, 수신 장치(30)의 데이터 처리부에서 실행한다. 데이터 처리부는, 프로그램 실행 기능을 갖는 CPU를 구비하고, 예를 들어 기억부에 저장된 프로그램에 따라, 도 20 내지 도 21에 나타내는 플로우에 따른 처리를 실행한다.
이하, 각 스텝의 처리에 대해서, 순차적으로 설명한다.
(스텝 S201)
먼저, 스텝 S201에서, 수신 장치는, 유저에 의한 재생 콘텐츠의 지정 정보를 입력한다. 예를 들어 미리 송신 장치로부터 수신하고 있는 프로그램 표 등의 콘텐츠 일람 리스트를 표시부에 표시하고, 이 표시 정보에 대한 유저 입력 정보에 기초하여 재생 콘텐츠를 결정한다.
(스텝 S202)
다음으로 수신 장치는, 재생 대상으로서 선택된 선택 콘텐츠에 대응하는 초기화 세그먼트를 포함하는 패킷을 수신해서 초기화 세그먼트를 취득한다.
또한, 앞서 도 9를 참조하여 설명한 바와 같이 초기화 세그먼트를 저장한 HTTP 패킷의 HTTP 헤더에는, 세그먼트 식별 정보가 기록되어 있고, 이 식별 정보를 참조함으로써 초기화 세그먼트를 저장한 HTTP 패킷인 것을 확인할 수 있다.
(스텝 S203)
수신 장치는, 수신한 초기화 세그먼트의 저장 데이터에 따라서 수신 장치의 초기화 처리를 실행한다. 구체적으로는 초기화 세그먼트에 저장된 코덱 설정 파라미터 등을 취득하고, 취득 파라미터에 따라서 코덱의 설정 등을 행한다.
(스텝 S204)
이어서, 수신 장치는, 스텝 S201에서 선택한 선택 콘텐츠에 대응하는 서브 GOP 미디어 세그먼트의 분할 패킷인 이하의 패킷을 수신한다.
메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷을 저장한 IP 패킷,
미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷을 저장한 IP 패킷,
이들 각 패킷을 수신한다.
(스텝 S205)
이어서, 수신 장치는, 수신 패킷의 HTTP 헤더로부터 패킷에 저장된 데이터의 이하의 속성 정보를 취득한다.
*NAL 유닛 프래그먼트 헤더
*GOP내 위치 식별 정보
*무비 프래그먼트 시퀀스 번호
*NAL 유닛내 위치 식별 정보
*액세스 포인트 정보
상술한 바와 같이, NAL 유닛 프래그먼트 헤더는, HTTP 패킷이 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷인 것을 나타내는 정보이다.
GOP내 위치 식별 정보는, HTTP 패킷에 저장된 미디어 데이터(mdat)가 1개의 GOP의 어느 위치에 있는지를 나타내는 데이터이다.
무비 프래그먼트 시퀀스 번호는, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호이며, 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛의 배열 정보이다.
NAL 유닛내 위치 식별 정보는, 패킷에 저장한 NAL 유닛 프래그먼트(NALf)가, 분할 전의 NAL 유닛의 어느 위치에 대응하는 프래그먼트인지를 나타내는 정보이다.
액세스 포인트 정보 「X-SAP」는, 이 HTTP 패킷의 생성원이 된 서브 GOP 세그먼트에 저장된 NAL 유닛에 랜덤 액세스 포인트가 되는 데이터가 포함되는지 여부를 나타내는 정보이다.
(스텝 S206)
이어서, 수신 장치는, 스텝 S206에서, 액세스 포인트 데이터를 우선해서 복호, 재생을 행하는 특수 재생을 실행할지 여부를 판정한다.
예를 들어, 랜덤 액세스 재생 처리 등의 콘텐츠 도중부터의 재생 처리 등의 특수 재생 처리를 실행할지 여부를 판정한다. 이 판정 처리는 유저의 입력 정보 등에 기초하여 결정한다.
특수 재생 처리를 실행하는 경우에는, 스텝 S207로 진행한다. 통상 재생 처리를 실행하는 경우에는 스텝 S208로 진행한다.
(스텝 S207)
스텝 S206에서, 랜덤 액세스 재생 처리 등의 특수 재생 처리를 실행한다고 판정한 경우, 스텝 S207로 진행한다. 스텝 S207에서는, 패킷의 HTTP 헤더에 기록된 액세스 포인트 정보 [X-SAP]가, 액세스 포인트 있음의 데이터를 나타내는 패킷을 선택한다. 즉, HTTP 패킷의 생성원이 된 서브 GOP 세그먼트에 저장된 NAL 유닛에 랜덤 액세스 포인트가 되는 데이터가 포함되는 것을 나타내는 패킷을 복호 대상으로서 선택하고, 복호 처리를 실행해서 재생 처리를 행한다.
이 경우, GOP 전체를 정렬시키지 않고 복호 재생하는 것이 가능하게 된다.
스텝 S207의 처리 후, 스텝 S211로 진행한다.
(스텝 S208)
한편, 스텝 S206에서, 랜덤 액세스 재생 처리 등의 특수 재생 처리를 실행하지 않고, 통상 재생 처리를 실행한다고 판정한 경우, 스텝 S208로 진행한다. 스텝 S208에서는, 수신 장치는, HTTP 헤더로부터 취득한 식별 정보에 따라, 수신한 복수의 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷에 저장된 NAL 유닛 프래그먼트를 재배열하여, GOP 단위 데이터를 재구축한다.
(스텝 S209 내지 S210)
이어서, 수신 장치는, 재구축한 GOP 데이터에 대한 복호 처리를 실행하고, 복호 데이터의 재생 처리를 행한다.
(스텝 S211)
이어서, 수신 장치는, 데이터 재생 처리가 종료되었는지 여부를 판정하고, 종료되지 않은 경우에는, 스텝 S204로 돌아가서, 스텝 S204 이하의 처리를 반복해서 실행한다.
스텝 S211에서 재생 처리 종료라고 판정한 경우에는 처리를 종료한다.
또한, 예를 들어 랜덤 액세스 재생 등, 특정한 재생 위치의 화상만을 재생하는 경우에는, 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷에 랜덤 액세스 포인트 정보인 sidx 데이터를 참조하여, sidx 데이터로부터 산출되는 1 이상의 NAL 유닛 프래그먼트(NALf)만을 처리 대상으로 해서 처리를 행할 수 있다. 즉, 예를 들어 I 픽처에 상당하는 부호화 화상 데이터만을 선택하여, 이것을 복호해서 재생하는 처리를 실행한다.
이 경우, GOP 전체 데이터를 재배열하는 처리를 행하지 않고 랜덤 액세스 포인트의 데이터만을 선택해서 재생하는 것이 가능하다.
[10. 확장 헤더에 부가 정보를 기록한 실시예에 대해서]
상술한 실시예에서는, NAL 유닛 프래그먼트(NALf)의 배열이나 GOP 재구성 처리에 적용하는 정보, 또한 액세스 포인트 정보 등, 수신 장치측에 있어서의 처리를 원활하게 실행시키기 위한 부가 정보를 HTTP 패킷에 설정한 실시예에 대해서 설명하였다.
그러나, 부가 정보의 기록처는 HTTP 헤더에 한하지 않고, 다양한 기록처로 하는 것이 가능하다.
이하, 확장 헤더에 부가 정보를 기록한 실시예에 대해서 설명한다.
도 22, 도 23을 참조하여, 확장 헤더에 부가 정보를 기록한 실시예에 대해 설명한다.
도 22, 도 23에 나타내는 예는, HTTP 헤더에 후속하는 패킷 영역에 새로운 확장 헤더를 삽입하고, 이 확장 헤더에 부가 정보를 기록한 예이다.
도 22에는,
확장 헤더에 기록하는 부가 정보의 리스트를 나타내고 있고, 도 23에는, 확장 헤더를 갖는 3종류의 HTTP 패킷의 예를 나타내고 있다.
도 23에는,
(1) 초기화 세그먼트 HTTP 패킷,
(2) 미디어 세그먼트 베이스의 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷,
(3) 미디어 세그먼트 베이스의 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷,
이들 3종류의 HTTP 패킷의 예를 나타내고 있다.
각 패킷의 HTTP 헤더의 다음에 확장 헤더를 설정하고 있다.
이 확장 헤더에, 도 22에 나타내는 리스트에 따른 부가 정보를 기록한다. 기록하는 부가 정보의 예에 대해서, 도 22를 참조하여 설명한다. 도 22에 도시하는 바와 같이 부가 정보는, 이하의 정보로부터 구성된다.
(a) 세그먼트 식별 정보(Initialization Segment Identifier),
(b) GOP내 위치 식별 정보(Sub GOP Indicator),
(c) 무비 프래그먼트 시퀀스 번호(Movie Fragment Sequence Number),
(d) NAL 유닛 프래그먼트 헤더(NALU Fragment Sub Segment Header),
(e) NAL 유닛내 위치 식별 정보(NALU Fragment Identifier)
(f) 액세스 포인트 정보(SAPIndicator)
예를 들어, (a) 세그먼트 식별 정보는, 8비트 데이터로 하고, 초기화 세그먼트의 경우에는 1을 설정하고, 그 밖의 세그먼트의 경우에는 0을 설정한다.
또한, 미디어 세그먼트의 경우, HTTP 헤더에 기록되는 콘텐츠 위치 정보(ContentLocation)를 GOP 단위 데이터의 위치 정보에 설정하면, 이 콘텐츠 위치 정보를 참조함으로써 각 GOP 데이터의 구별이 가능하게 된다.
(b) GOP내 위치 식별 정보는, 8비트 데이터로 하고, 예를 들어 비트 값을 이하의 설정으로 한다.
GOP의 선두 위치의 데이터(StartofGOP)=1
GOP의 중간 위치의 데이터(MiddleofGOP)=2
GOP의 말미 위치의 데이터(EndofGOP)=3
(c) 무비 프래그먼트 시퀀스 번호는, 32비트 데이터로 하고, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호를 기록한다. 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛의 배열 정보이다.
(d) NAL 유닛 프래그먼트 헤더는, 8비트 데이터로 하고, 메타데이터 저장형 NAL 유닛 프래그먼트 대응 패킷=1, 기타 패킷=0으로서 기록한다.
(e) NAL 유닛내 위치 식별 정보는, 8비트 데이터로 하고, 패킷에 저장한 NAL 유닛 프래그먼트(NALf)가, 분할 전의 NAL 유닛의 어느 위치에 대응하는 프래그먼트인지를 나타내는 정보를 기록한다.
분할 전의 NAL 유닛의 선두 위치(StarNALUnitFragmentSubSegment)=1,
분할 전의 NAL 유닛의 중간 위치(MiddleNALUnitFragmentSubSegment)=2,
분할 전의 NAL 유닛의 말미 위치(EndNALUnitFragmentSubSegment)=3,
이 설정으로 각 비트 값을 기록한다.
(f) 액세스 포인트 정보(SAPIndicator)는, HTTP 헤더의 기록 정보로서 설명한 [X-SAP]와 마찬가지의 데이터이며, 8비트 데이터로 한다. 패킷이, 액세스 포인트를 포함하는 NAL 유닛 저장 세그먼트로부터 생성한 패킷인 경우에는 [1], 그 밖의 패킷인 경우에는 [0]을 기록한다.
도 23에는,
(1) 초기화 세그먼트 HTTP 패킷,
(2) 미디어 세그먼트 베이스의 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷,
(3) 미디어 세그먼트 베이스의 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷,
이들 3종류의 HTTP 패킷의 확장 헤더에, 도 22에 나타낸 (a) 내지 (f)의 각 부가 정보를 설정한 예를 나타내고 있다.
송신 장치는, 이러한 확장 헤더를 설정해서 수신 장치에 송신한다. 한편, 수신 장치는, 이 확장 헤더의 세그먼트 식별 정보를 참조하여, 패킷에 저장된 세그먼트가 초기화 세그먼트를 저장한 HTTP 패킷인지, 메타데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷인지, 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷인지를 판별한다.
또한, 수신 장치는, 패킷이 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 HTTP 패킷이라고 식별한 경우, 확장 헤더의 GOP내 위치 식별 정보나, NAL 유닛내 위치 식별 정보를 참조함으로써, 각 NAL 유닛 프래그먼트(NALf)의 재배열, 또한 GOP의 재구축을 행하는 것이 가능하게 된다.
또한, 액세스 포인트 정보(SAPIndicator)를 참조함으로써, 패킷이, 액세스 포인트를 포함하는 NAL 유닛 저장 세그먼트로부터 생성한 패킷인지 여부를 판정할 수 있다.
[11. LCT 헤더에 부가 정보를 기록한 실시예에 대해서]
상술한 바와 같이, 멀티캐스트나 브로드캐스트(MC/BC)형의 스트리밍에 적용 가능한 트랜스포트 프로토콜에는, 예를 들어 RTP(Real-time Transport Protocol)나 FLUTE(File Delivery over Uni-directional Transport)가 있다.
FLUTE 프로토콜에 따라서 설정되는 패킷에는, FLUTE 프로토콜에 따른 헤더 정보인 LCT 헤더가 설정된다.
즉, 앞서 도 10을 참조하여 설명한 IP 패킷 내의 LCT 헤더이다.
이하, 이 LCT 헤더에, NAL 유닛 프래그먼트(NALf)의 재배열이나, GOP 재구성 처리에 적용하는 정보 등, 수신 장치측에 있어서의 처리를 원활하게 실행시키기 위한 부가 정보를 기록한 실시예에 대해서 설명한다.
FLUTE 프로토콜에 따라서 설정되는 LCT 헤더의 구성예를 도 24에 나타내었다.
LCT 헤더에 설정되는 주된 데이터 필드에는, 예를 들어 이하의 필드가 있다.
CCI(Congestion Control Information): 각 필드의 길이나 폭주 제어 정보 등을 기록하는 필드이다.
TSI(Transport Session Identifier): 패킷 전송의 세션 정보를 기록하는 필드이다.
TOI(Transport Object Identifier): 패킷 전송의 시퀀스 등을 기록하는 필드이다.
헤더 확장부(Header Extensions): 다양한 확장 데이터를 기록할 수 있는 필드이다.
앞서, 도 7을 참조하여 설명한 바와 같이, GOP내 위치 정보의 대용으로서, 상기 TOI를 참조하여, 데이터 송신순을 확인하는 것이 가능하다.
상술한 바와 같이, 예를 들어 HTTP 헤더 등에 기록하는 부가 정보인 GOP내 위치 정보에 대해서, 선두 위치를 나타내는 X-StartofGOP만을 기록하고, 기타 GOP내 데이터의 배열순은, LCT 헤더 내의 TOI를 참조하여 패킷 시퀀스를 취득하고, 패킷 시퀀스에 따라서 GOP 내의 NAL 유닛을 올바른 순서대로 배열하는 구성으로 해도 된다.
마찬가지로, NAL 유닛 프래그먼트(NALf)의 배열 정보에 대해서도 상기 TOI를 참조하여, 데이터 송신순을 확인해서 재배열을 행하는 것이 가능하다. 예를 들어 HTTP 헤더 등에 기록하는 부가 정보인 NAL 유닛내 위치 식별 정보를, 선두 위치의 NAL 유닛 프래그먼트를 저장한 패킷만, HTTP 헤더에 기록한다. 후속의 NAL 유닛 프래그먼트 배열은, LCT 헤더의 TOI로부터 패킷 시퀀스를 해석해서 배열하는 것이 가능하다.
도 24에 도시한 바와 같이, LCT 헤더 내에는 다양한 데이터를 기록할 수 있는 헤더 확장부(Header Extensions)가 설정된다. 이 헤더 확장부에 NAL 유닛 프래그먼트의 재배열이나, GOP 재구성 처리에 적용하는 정보 등, 수신 장치측에 있어서의 처리를 원활하게 실행시키기 위한 부가 정보를 기록하는 것이 가능하다.
LCT 헤더의 헤더 확장부에 대한 데이터 기록 구성에 대해서, 도 25를 참조하여 설명한다.
LCT 헤더의 헤더 확장부에, 데이터를 기록하는 경우의 포맷에는 2개의 종류가 있다.
도 25의 (1)은, 기록 정보의 길이가 자유롭게 설정 가능한 포맷이다.
도 25의 (2)는, 기록 정보의 길이가 고정된 포맷이다.
HET(Header Extension Type)에는, 확장 헤더의 종류를 나타내는 확장 헤더 식별 정보(수치)를 기록한다. 도 25의 (1)의 포맷은, 127까지의 값이 이용 가능하고, 도 25의 (2)의 포맷은, 128 이상으로 설정하는 것이 규정되어 있다.
HET(Header Extension Length)에는, 확장 헤더의 길이를 기록한다.
HEC(Neader Extension Content)는, 확장 헤더 콘텐츠를 기록하는 필드이며, 임의의 확장 정보를 기록 가능한 필드이다.
도 25의 (2)에 나타내는 기록 정보의 길이가 고정된 포맷을 이용하여, NAL 유닛 프래그먼트의 재배열이나, GOP 재구성 처리에 적용하는 정보 등, 수신 장치측에 있어서의 처리를 원활하게 실행시키기 위한 부가 정보를 기록하는 경우의 기록 데이터의 구성예를 도 26에 나타내었다.
도 26에 도시한 바와 같이,
(a) 확장 헤더 식별 정보(HET)는, 8비트 데이터로 하고, 새로운 정보의 식별값으로서, 예를 들어 [200]을 기록한다.
또한, 확장 정보 기록부(HEC)에,
(b) 세그먼트 식별 정보,
(c) GOP내 위치 식별 정보,
(d) 무비 프래그먼트 시퀀스 번호,
(e) NAL 유닛 프래그먼트 헤더,
(f) NAL 유닛내 위치 식별 정보,
(g) 액세스 포인트 정보
이들 각 식별 정보를 기록한다.
예를 들어 (b) 세그먼트 식별 정보는, 8비트 데이터로 하고, 초기화 세그먼트의 경우에는 1을 설정하고, 기타 세그먼트의 경우에는 0을 설정한다.
또한, 미디어 세그먼트의 경우, HTTP 헤더에 기록되는 콘텐츠 위치 정보(ContentLocation)를 GOP 단위 데이터의 위치 정보에 설정하면, 이 콘텐츠 위치 정보를 참조함으로써 각 GOP 데이터의 구별이 가능하게 된다.
(c) GOP내 위치 식별 정보는, 8비트 데이터로 하고, 예를 들어 비트 값을 이하의 설정으로 한다.
GOP의 선두 위치의 데이터(StartofGOP)=1
GOP의 중간 위치의 데이터(MiddleofGOP)=2
GOP의 말미 위치의 데이터(EndofGOP)=3
(d) 무비 프래그먼트 시퀀스 번호는, 32비트 데이터로 하고, 분할 전의 서브 GOP 미디어 세그먼트의 메타데이터(moof)에 기록된 시퀀스 번호를 기록한다. 서브 GOP 미디어 세그먼트에 저장된 NAL 유닛의 배열 정보이다.
(e) NAL 유닛 프래그먼트 헤더는, 8비트 데이터로 하고, 메타데이터 저장형 NAL 유닛 프래그먼트 대응 패킷=1, 기타 패킷=0으로서 기록한다.
(f) NAL 유닛내 위치 식별 정보는, 8비트 데이터로 하고, 패킷에 저장한 NAL 유닛 프래그먼트(NALf)가, 분할 전의 NAL 유닛의 어느 위치에 대응하는 프래그먼트인지를 나타내는 정보를 기록한다.
분할 전의 NAL 유닛의 선두 위치(StarNALUnitFragmentSubSegment)=1,
분할 전의 NAL 유닛의 중간 위치(MiddleNALUnitFragmentSubSegment)=2,
분할 전의 NAL 유닛의 말미 위치(EndNALUnitFragmentSubSegment)=3,
이 설정으로 각 비트 값을 기록한다.
(g) 액세스 포인트 정보(SAPIndicator)는, HTTP 헤더의 기록 정보로서 설명한 [X-SAP]와 마찬가지의 데이터이며, 8비트 데이터로 한다. 패킷이, 액세스 포인트를 포함하는 NAL 유닛 저장 세그먼트로부터 생성한 패킷인 경우에는 [1], 그 밖의 패킷인 경우에는 [0]을 기록한다.
송신 장치는, 이러한 확장 헤더 정보를 포함하는 LCT 헤더를 설정해서 수신 장치에 송신한다. 한편, 수신 장치는, 이 LCT 헤더 내의 확장 헤더 정보의 세그먼트 식별 정보를 참조하여, 초기화 세그먼트 저장 패킷인지, 메타데이터 저장형 NAL 유닛 프래그먼트 대응 패킷인지, 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 패킷인지를 판별한다. 또한, 수신 장치는, 패킷이 미디어 데이터 저장형 NAL 유닛 프래그먼트 대응 패킷이라고 식별한 경우, LCT 헤더의 확장 헤더 정보에 기록된 NAL 유닛내 위치 식별 정보나, GOP내 위치 식별 정보를 참조함으로써, 각 패킷에 저장된 미디어 데이터(mdat)인 NAL 유닛 프래그먼트(NALf)를 올바른 배열로 하는 재배열을 행하고, 또한 GOP의 재구성을 행하는 것이 가능하게 된다.
또한, 액세스 포인트 정보(SAPIndicator)를 참조함으로써, 패킷이, 액세스 포인트를 포함하는 NAL 유닛 저장 세그먼트로부터 생성한 패킷인지 여부를 판정할 수 있다.
[12. HEVC 부호화 데이터에 대한 적용예에 대해서]
상술한 실시예에서는, MPEG 부호화 방식에 따른 MP4 부호화 데이터에 대한 처리 예에 대해서 설명했지만, 본 개시의 처리는, 그 밖의 부호화 데이터에 대해서도 적용 가능하다. 예를 들어 HEVC(High Efficiency Video Coding)에 따른 부호화 데이터에 적용하는 것이 가능하다.
HEVC 부호화 데이터의 구성에 대해서, 도 27을 참조하여 설명한다.
도 27에 도시한 바와 같이, HEVC 부호화 처리에 의해 생성되는 1개의 HEVC 스트림은, 복수의 시퀀스(CVS: Coded Video Sequence)와, End of sequence NAL unit(EoB)을 갖는다.
HEVC 스트림의 구성 요소인 CVS는, 복수의 GOP와, End of sequence NAL unit(EoS)으로 구성된다.
1개의 GOP는, 랜덤 액세스 포인트가 되는 IRAP(Intra Random Access Point) 액세스 유닛을 선두 데이터로 하고, 복수의 LP(Leading Picture) 액세스 유닛과, TP(Trailing Picture) 액세스 유닛을 갖는다.
LP 액세스 유닛과, TP 액세스 유닛은, 어떠한 참조 픽처를 참조하여 복호 가능한 액세스 유닛이다.
단, IRAP 액세스 유닛으로부터 복호를 개시한 경우에는, TPAU에 대해서도 정상적인 복호, 재생이 가능하다.
액세스 유닛(AU)은, 복수의 NAL 유닛(Network Abstraction Layer Unit)으로 구성되고, 액세스 유닛(AU)은, 반드시 1개 이상의 슬라이스 세그먼트 NAL 유닛을 포함한다.
도 27에 도시한 바와 같이, HEVC 부호화 처리에 의해 생성되는 부호화 데이터에도 부호화 처리 단위로서의 GOP가 설정되고, 이 GOP는, 또한 복수의 NAL 유닛으로 분할된다.
앞서 도 5를 참조하여 설명한 서브 GOP 미디어 세그먼트에, HEVC 부호화 데이터에 있어서 설정되는 GOP 구성 데이터인 NAL 유닛을 1개 또는 복수 저장하는 구성으로 한다.
또한, 앞서 도 16 및 기타를 참조하여 설명한 바와 같이 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트(NALf)를 생성하고, HTTP 패킷에 분할 저장하는 것이 가능하다.
이와 같이, HEVC 부호화 데이터에 대해서도, GOP 데이터의 분할 데이터인 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트(NALf)가 생성 가능하다. 따라서, 도 16 및 기타를 참조하여 설명한 처리가 가능하며, 본 개시의 처리를 적용할 수 있다.
또한, MP4, HEVC에 한하지 않고, GOP 상당의 부호화 처리 단위를 갖고, GOP 데이터를 분할한 유닛(NAL)이 설정되는 부호화 구성이라면, 본 개시의 처리를 적용하는 것이 가능하다.
[13. 각 장치의 하드웨어 구성예에 대해서]
마지막으로, 도 28을 참조하여, 상술한 처리를 실행하는 각 장치의 하드웨어 구성예에 대해서 설명한다.
도 28은, 송신 장치(20), 수신 장치(30)로서 적용 가능한 통신 장치의 하드웨어 구성예를 나타내고 있다.
CPU(Central Processing Unit)(201)는, ROM(Read Only Memory)(202) 또는 기억부(208)에 기억되어 있는 프로그램에 따라서 각종 처리를 실행하는 데이터 처리부로서 기능한다. 예를 들어, 상술한 실시예에서 설명한 시퀀스에 따른 처리를 실행한다. RAM(Random Access Memory)(203)에는, CPU(201)가 실행하는 프로그램이나 데이터 등이 기억된다. 이들 CPU(201), ROM(202) 및 RAM(203)은, 버스(204)에 의해 서로 접속되어 있다.
CPU(201)는, 버스(204)를 통해서 입출력 인터페이스(205)에 접속되고, 입출력 인터페이스(205)에는, 각종 스위치, 키보드, 마우스, 마이크로폰 등을 포함하는 입력부(206), 디스플레이, 스피커 등을 포함하는 출력부(207)가 접속되어 있다. CPU(201)는, 입력부(206)로부터 입력되는 지령에 대응해서 각종 처리를 실행하고, 처리 결과를 예를 들어 출력부(207)에 출력한다.
입출력 인터페이스(205)에 접속되어 있는 기억부(208)는, 예를 들어 하드 디스크 등을 포함하고, CPU(201)가 실행하는 프로그램이나 각종 데이터를 기억한다. 통신부(209)는, 인터넷이나 로컬에리어 네트워크 등의 네트워크를 통한 데이터 통신의 송수신부, 또한 방송파의 송수신부로서 기능하고, 외부의 장치와 통신한다. 입출력 인터페이스(205)에 접속되어 있는 드라이브(210)는, 자기 디스크, 광 디스크, 광자기 디스크, 또는 메모리 카드 등의 반도체 메모리 등의 리무버블 미디어(211)를 구동하여, 데이터의 기록 또는 판독을 실행한다.
또한, 데이터의 부호화 또는 복호는, 데이터 처리부로서의 CPU(201)의 처리로 해서 실행 가능하지만, 부호화 처리 또는 복호 처리를 실행하기 위한 전용 하드웨어로서의 코덱을 구비한 구성으로 해도 된다.
[14. 본 개시의 구성의 정리]
이상, 특정한 실시예를 참조하면서, 본 개시의 실시예에 대해서 자세히 설명해 왔다. 그러나, 본 개시의 요지를 일탈하지 않는 범위에서 당업자가 실시예의 수정이나 대용을 할 수 있는 것은 자명하다. 즉, 예시라는 형태로 본 발명을 개시해 온 것이며, 한정적으로 해석되어서는 안된다. 본 개시의 요지를 판단하기 위해서는, 특허 청구 범위의 란을 참작해야 한다.
또한, 본 명세서에서 개시한 기술은, 이하와 같은 구성을 취할 수 있다.
(1) 부호화 데이터를 저장한 패킷을 생성하는 데이터 처리부와,
상기 데이터 처리부가 생성한 패킷을 송신하는 통신부를 갖고,
상기 데이터 처리부는,
부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성하고,
패킷에 대한 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보를 설정한 패킷을 생성해서 상기 통신부를 통해서 송신하는 통신 장치.
(2) 상기 액세스 포인트 정보는, 패킷 저장 데이터가, SAP(Streeming Access Point)에 의해 지정되는 부호화 데이터를 포함하는 NAL 유닛에 기초하여 생성된 데이터인지 여부를 나타내는 정보인 상기 (1)에 기재된 통신 장치.
(3) 상기 데이터 처리부는, GOP의 구성 데이터인 NAL 유닛을 1개 이상 포함하는 미디어 데이터와, 해당 미디어 데이터 대응의 메타데이터를 저장한 서브 GOP 미디어 세그먼트를 패킷 저장 데이터로서 생성하는 상기 (1) 또는 (2)에 기재된 통신 장치.
(4) 상기 데이터 처리부는, GOP를 구성하는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 생성하고, NAL 유닛 프래그먼트를 저장한 복수의 패킷과, 상기 NAL 유닛에 대응하는 메타데이터를 저장한 패킷을 생성하는 상기 (1) 또는 (2)에 기재된 통신 장치.
(5) 상기 데이터 처리부는, 송신 대상의 부호화 데이터를, 통신 경로 상에서 규정되는 최대 데이터 전송 단위(MTU: Maximum Transfer Unit) 이하의 데이터로 분할해서 생성한 분할 데이터를 저장한 패킷을 생성하는 상기 (1) 내지 (4) 중 어느 하나에 기재된 통신 장치.
(6) 상기 데이터 처리부는, HTTP 패킷을 생성하고, 상기 부가 정보를 생성 패킷 내의 HTTP 헤더에 기록하는 상기 (1) 내지 (5) 중 어느 하나에 기재된 통신 장치.
(7) 상기 데이터 처리부는, 상기 부가 정보를 생성 패킷 내의 확장 헤더에 기록하는 상기 (1) 내지 (5) 중 어느 하나에 기재된 통신 장치.
(8) 상기 데이터 처리부는, 상기 부가 정보를 생성 패킷 내의 LCT 헤더에 기록하는 상기 (1) 내지 (5) 중 어느 하나에 기재된 통신 장치.
(9) 상기 통신부는, 상기 데이터 처리부가 생성한 패킷을, 방송파를 통해서 브로드캐스트 배신 또는 멀티캐스트 배신하는 상기 (1) 내지 (8) 중 어느 하나에 기재된 통신 장치.
(10) 송신 장치가 송신한 부호화 데이터 저장 패킷을 수신하는 통신부와,
상기 통신부가 수신한 패킷을 입력해서 처리를 실행하는 데이터 처리부를 갖고,
상기 통신부가 수신하는 상기 부호화 데이터 저장 패킷의 각각은,
부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷이며, 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보가 설정된 패킷인 통신 장치.
(11) 상기 데이터 처리부는,
수신 패킷에 기록된 부가 정보인 상기 액세스 포인트 정보를 참조하여, 수신 패킷에 저장된 데이터가, SAP(Streeming Access Point)에 의해 지정되는 부호화 데이터를 포함하는 NAL 유닛에 기초하여 생성된 데이터인지 여부를 판정하는 처리를 실행하는 상기 (10)에 기재된 통신 장치.
(12) 상기 데이터 처리부는, 수신 패킷에 기록된 부가 정보인 상기 액세스 포인트 정보를 참조하여, 액세스 포인트를 포함하는 데이터를 선택 취득하고, 복호, 재생 처리를 실행하는 상기 (10) 또는 (11)에 기재된 통신 장치.
(13) 상기 통신부는, 상기 부가 정보를 HTTP 헤더에 기록한 HTTP 패킷을 수신하고, 상기 데이터 처리부는, 수신 패킷의 HTTP 헤더로부터 상기 부가 정보를 취득하는 상기 (10) 내지 (12) 중 어느 하나에 기재된 통신 장치.
(14) 상기 통신부는, 상기 부가 정보를 확장 헤더에 기록한 패킷을 수신하고,
상기 데이터 처리부는, 수신 패킷의 확장 헤더로부터 상기 부가 정보를 취득하는 상기 (10) 내지 (12) 중 어느 하나에 기재된 통신 장치.
(15) 상기 통신부는, 상기 부가 정보를 LCT 헤더에 기록한 패킷을 수신하고, 상기 데이터 처리부는, 수신 패킷의 LCT 헤더로부터 상기 부가 정보를 취득하는 상기 (10) 내지 (12) 중 어느 하나에 기재된 통신 장치.
(16) 상기 통신부는, 상기 패킷을, 방송파를 통해서 수신하는 상기 (10) 내지 (15) 중 어느 하나에 기재된 통신 장치.
(17) 데이터 송신 장치에 있어서 실행하는 통신 데이터 생성 방법이며,
데이터 처리부가,
부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성하고,
패킷에 대한 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보를 설정한 패킷을 생성해서 통신부를 통해서 송신하는 통신 데이터 생성 방법.
(18) 데이터 수신 장치에 있어서 실행하는 통신 데이터 처리 방법이며,
통신부가, 송신 장치가 송신한 부호화 데이터 저장 패킷을 수신하는 스텝과,
데이터 처리부가, 상기 통신부가 수신한 패킷을 입력해서 처리를 실행하는 데이터 처리 스텝을 실행하고,
상기 통신부가 수신하는 상기 부호화 데이터 저장 패킷의 각각은,
부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷이며, 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보가 설정된 패킷이며,
상기 데이터 처리 스텝은, 상기 통신부가 수신한 액세스 포인트 정보가 설정된 패킷을 입력해서 처리를 실행하는 스텝인 통신 데이터 처리 방법.
또한, 명세서 중에서 설명한 일련의 처리는, 하드웨어 또는 소프트웨어, 또는 양자의 복합 구성에 의해 실행하는 것이 가능하다. 소프트웨어에 의한 처리를 실행하는 경우에는, 처리 시퀀스를 기록한 프로그램을, 전용의 하드웨어에 내장된 컴퓨터 내의 메모리에 인스톨해서 실행시키거나, 또는, 각종 처리가 실행 가능한 범용 컴퓨터에 프로그램을 인스톨해서 실행시키는 것이 가능하다. 예를 들어, 프로그램은 기록 매체에 미리 기록해 둘 수 있다. 기록 매체로부터 컴퓨터에 인스톨하는 것 외에, LAN(Local Area Network), 인터넷과 같은 네트워크를 통해서 프로그램을 수신하여, 내장한 하드 디스크 등의 기록 매체에 인스톨할 수 있다.
또한, 명세서에 기재된 각종 처리는, 기재에 따라서 시계열로 실행될 뿐만 아니라, 처리를 실행하는 장치의 처리 능력 또는 필요에 따라 병렬적으로 또는 개별로 실행되어도 된다. 또한, 본 명세서에서 시스템이란, 복수의 장치의 논리적 집합 구성이며, 각 구성의 장치가 동일 하우징 내에 있는 것에 제한하지는 않는다.
[산업상 이용 가능성]
이상, 설명한 바와 같이, 본 개시의 일 실시예의 구성에 의하면, 통신 패킷의 저장 부호화 데이터가, 랜덤 액세스 가능한 부호화 데이터에 기초하는 데이터인지 여부를 패킷 단위로 판별 가능하게 한 구성이 실현된다.
구체적으로는, 송신 장치가, 부호화 데이터의 구성 요소인 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성하고, 부가 정보로서, 패킷 저장 데이터의 원래 데이터인 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보를 설정해서 송신한다. 수신 장치는, 패킷 부가 정보를 참조하여, 패킷 저장 데이터가, 랜덤 액세스 가능한 부호화 데이터에 기초하여 생성된 데이터인지 여부를 판별한다.
본 구성에 의해, 통신 패킷의 저장 부호화 데이터가, 랜덤 액세스 가능한 부호화 데이터에 기초하는 데이터인지 여부를 패킷 단위로 판별 가능하게 한 구성이 실현된다.
10 : 통신 시스템 20 : 송신 장치
21 : 데이터 처리부 22 : 통신부
30 : 수신 장치 31 : 데이터 처리부
32 : 통신부 50 : 초기화 세그먼트
60 : 미디어 세그먼트 201 : CPU
202 : ROM 203 : RAM
204 : 버스 205 : 입출력 인터페이스
206 : 입력부 207 : 출력부
208 : 기억부 209 : 통신부
210 : 드라이브 211 : 리무버블 미디어

Claims (18)

  1. 부호화 데이터를 저장한 패킷을 생성하는 데이터 처리부와,
    상기 데이터 처리부가 생성한 패킷을 송신하는 통신부를 갖고,
    상기 데이터 처리부는,
    부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성하고,
    패킷에 대한 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보이며, 패킷 저장 데이터가 소속하는 NAL 유닛 단위의 액세스 포인트 정보를 설정한 패킷을 생성해서 상기 통신부를 통해서 송신하는 통신 장치.
  2. 제1항에 있어서,
    상기 액세스 포인트 정보는, 패킷 저장 데이터가, SAP(Streeming Access Point)에 의해 지정되는 부호화 데이터를 포함하는 NAL 유닛에 기초하여 생성된 데이터인지 여부를 나타내는 정보인, 통신 장치.
  3. 제1항에 있어서,
    상기 데이터 처리부는,
    GOP의 구성 데이터인 NAL 유닛을 1개 이상 포함하는 미디어 데이터와, 해당 미디어 데이터 대응의 메타데이터를 저장한 서브 GOP 미디어 세그먼트를 패킷 저장 데이터로서 생성하는, 통신 장치.
  4. 제1항에 있어서,
    상기 데이터 처리부는,
    GOP를 구성하는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 생성하고, NAL 유닛 프래그먼트를 저장한 복수의 패킷과, 상기 NAL 유닛에 대응하는 메타데이터를 저장한 패킷을 생성하는, 통신 장치.
  5. 제1항에 있어서,
    상기 데이터 처리부는,
    송신 대상의 부호화 데이터를, 통신 경로 상에서 규정되는 최대 데이터 전송 단위(MTU: Maximum Transfer Unit) 이하의 데이터로 분할해서 생성한 분할 데이터를 저장한 패킷을 생성하는, 통신 장치.
  6. 제1항에 있어서,
    상기 데이터 처리부는,
    HTTP 패킷을 생성하고, 상기 부가 정보를 생성 패킷 내의 HTTP 헤더에 기록하는, 통신 장치.
  7. 제1항에 있어서,
    상기 데이터 처리부는,
    상기 부가 정보를 생성 패킷 내의 확장 헤더에 기록하는, 통신 장치.
  8. 제1항에 있어서,
    상기 데이터 처리부는,
    상기 부가 정보를 생성 패킷 내의 LCT 헤더에 기록하는, 통신 장치.
  9. 제1항에 있어서,
    상기 통신부는,
    상기 데이터 처리부가 생성한 패킷을, 방송파를 통해서 브로드캐스트 배신 또는 멀티캐스트 배신하는, 통신 장치.
  10. 송신 장치가 송신한 부호화 데이터 저장 패킷을 수신하는 통신부와,
    상기 통신부가 수신한 패킷을 입력해서 처리를 실행하는 데이터 처리부를 갖고,
    상기 통신부가 수신하는 상기 부호화 데이터 저장 패킷의 각각은,
    부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷이며, 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보이며, 패킷 저장 데이터가 소속하는 NAL 유닛 단위의 액세스 포인트 정보가 설정된 패킷인 통신 장치.
  11. 제10항에 있어서,
    상기 데이터 처리부는,
    수신 패킷에 기록된 부가 정보인 상기 액세스 포인트 정보를 참조하여, 수신 패킷에 저장된 데이터가, SAP(Streeming Access Point)에 의해 지정되는 부호화 데이터를 포함하는 NAL 유닛에 기초하여 생성된 데이터인지 여부를 판정하는 처리를 실행하는, 통신 장치.
  12. 제10항에 있어서,
    상기 데이터 처리부는,
    수신 패킷에 기록된 부가 정보인 상기 액세스 포인트 정보를 참조하여, 액세스 포인트를 포함하는 데이터를 선택 취득하고, 복호, 재생 처리를 실행하는, 통신 장치.
  13. 제10항에 있어서,
    상기 통신부는,
    상기 부가 정보를 HTTP 헤더에 기록한 HTTP 패킷을 수신하고,
    상기 데이터 처리부는,
    수신 패킷의 HTTP 헤더로부터 상기 부가 정보를 취득하는, 통신 장치.
  14. 제10항에 있어서,
    상기 통신부는,
    상기 부가 정보를 확장 헤더에 기록한 패킷을 수신하고,
    상기 데이터 처리부는,
    수신 패킷의 확장 헤더로부터 상기 부가 정보를 취득하는, 통신 장치.
  15. 제10항에 있어서,
    상기 통신부는,
    상기 부가 정보를 LCT 헤더에 기록한 패킷을 수신하고,
    상기 데이터 처리부는,
    수신 패킷의 LCT 헤더로부터 상기 부가 정보를 취득하는, 통신 장치.
  16. 제10항에 있어서,
    상기 통신부는,
    상기 패킷을, 방송파를 통해서 수신하는, 통신 장치.
  17. 데이터 송신 장치에 있어서 실행하는 통신 데이터 생성 방법이며,
    데이터 처리부가,
    부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷을 생성하고,
    패킷에 대한 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보이며, 패킷 저장 데이터가 소속하는 NAL 유닛 단위의 액세스 포인트 정보를 설정한 패킷을 생성해서 통신부를 통해서 송신하는 통신 데이터 생성 방법.
  18. 데이터 수신 장치에 있어서 실행하는 통신 데이터 처리 방법이며,
    통신부가, 송신 장치가 송신한 부호화 데이터 저장 패킷을 수신하는 스텝과,
    데이터 처리부가, 상기 통신부가 수신한 패킷을 입력해서 처리를 실행하는 데이터 처리 스텝을 실행하고,
    상기 통신부가 수신하는 상기 부호화 데이터 저장 패킷의 각각은,
    부호화 데이터의 처리 단위인 GOP(Group of Pictures)를 구성하는 NAL 유닛, 또는 NAL 유닛을 더 분할한 NAL 유닛 프래그먼트를 저장한 패킷이며, 부가 정보로서, 패킷에 저장한 NAL 유닛, 또는 NAL 유닛 프래그먼트의 분할원의 NAL 유닛이 랜덤 액세스 포인트가 되는 데이터를 포함하는지 여부를 나타내는 액세스 포인트 정보가 설정된 패킷이며,
    상기 데이터 처리 스텝은, 상기 통신부가 수신한 액세스 포인트 정보이며, 패킷 저장 데이터가 소속하는 NAL 유닛 단위의 액세스 포인트 정보가 설정된 패킷을 입력해서 처리를 실행하는 스텝인 통신 데이터 처리 방법.
KR1020167018108A 2014-01-17 2014-12-01 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법 KR102103054B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2014-006881 2014-01-17
JP2014006881A JP2015136059A (ja) 2014-01-17 2014-01-17 通信装置、通信データ生成方法、および通信データ処理方法
PCT/JP2014/081715 WO2015107786A1 (ja) 2014-01-17 2014-12-01 通信装置、通信データ生成方法、および通信データ処理方法

Publications (2)

Publication Number Publication Date
KR20160111021A true KR20160111021A (ko) 2016-09-23
KR102103054B1 KR102103054B1 (ko) 2020-04-21

Family

ID=53542690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167018108A KR102103054B1 (ko) 2014-01-17 2014-12-01 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법

Country Status (8)

Country Link
US (3) US10178417B2 (ko)
EP (1) EP3096533B1 (ko)
JP (1) JP2015136059A (ko)
KR (1) KR102103054B1 (ko)
CN (1) CN105900446B (ko)
CA (1) CA2936164C (ko)
MX (2) MX2016008985A (ko)
WO (1) WO2015107786A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105745899B (zh) 2014-02-24 2023-12-26 Lg 电子株式会社 发送广播信号的设备、接收广播信号的设备、发送广播信号的方法和接收广播信号的方法
US10304467B2 (en) 2015-04-24 2019-05-28 Sony Corporation Transmission device, transmission method, reception device, and reception method
US10079919B2 (en) * 2016-05-27 2018-09-18 Solarflare Communications, Inc. Method, apparatus and computer program product for processing data
US10116970B1 (en) * 2017-04-28 2018-10-30 Empire Technology Development Llc Video distribution, storage, and streaming over time-varying channels
US10862940B1 (en) * 2018-07-31 2020-12-08 Glance Networks, Inc. Low latency live video on a communication session
CN111641565B (zh) * 2019-03-01 2022-05-13 华为技术有限公司 一种以太网报文的传输方法、装置及***
CN113365140B (zh) 2021-06-21 2022-12-23 北京百度网讯科技有限公司 Mp4在线播放方法、装置、设备、存储介质及程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011087103A (ja) 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
US20130091251A1 (en) * 2011-10-05 2013-04-11 Qualcomm Incorporated Network streaming of media data

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963202A (en) * 1997-04-14 1999-10-05 Instant Video Technologies, Inc. System and method for distributing and managing digital video information in a video distribution network
US6882637B1 (en) 1999-10-14 2005-04-19 Nokia Networks Oy Method and system for transmitting and receiving packets
US6792449B2 (en) 2001-06-28 2004-09-14 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US20030048808A1 (en) 2001-09-12 2003-03-13 Stahl Thomas Anthony Method and apparatus for changing received streaming content channels
EP1349285A1 (en) 2002-03-28 2003-10-01 Matsushita Electric Industrial Co., Ltd. Method for making efficient use of the bits allocated to the sequence number when transmitting compressed header data
US8683535B2 (en) 2004-03-26 2014-03-25 Broadcom Corporation Fast channel change
NZ566935A (en) 2005-09-27 2010-02-26 Qualcomm Inc Methods and apparatus for service acquisition
US9077964B2 (en) * 2005-12-08 2015-07-07 Layered Media Systems and methods for error resilience and random access in video communication systems
US9432433B2 (en) * 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US8582644B2 (en) * 2008-07-26 2013-11-12 Thomson Licensing Real-time transport protocol (RTP) packetization method for fast channel change applications using scalable video coding (SVC)
JP2010245970A (ja) * 2009-04-08 2010-10-28 Sony Corp 再生装置、再生方法、およびプログラム
US20110031771A1 (en) 2009-08-10 2011-02-10 Yi Ding Storage trunk in the front of a vehicle
US9049497B2 (en) * 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
EP2666296A4 (en) 2011-01-19 2013-12-25 Ericsson Telefon Ab L M INDICATION OF BITS FLOW SUBASSEMBLIES
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
KR101803970B1 (ko) * 2011-03-16 2017-12-28 삼성전자주식회사 컨텐트를 구성하는 장치 및 방법
US9357275B2 (en) * 2011-09-06 2016-05-31 Qualcomm Incorporated Network streaming of coded video data
WO2013077670A1 (ko) 2011-11-23 2013-05-30 한국전자통신연구원 스케일러빌리티 및 뷰 정보를 제공하는 스트리밍 서비스를 위한 방법 및 장치
CN102625125A (zh) * 2012-03-15 2012-08-01 天津大学 一种实时传输高分辨率多视点立体视频的方法
WO2013162292A1 (ko) * 2012-04-24 2013-10-31 한국전자통신연구원 네트워크 적응적인 계층적 비디오 전송을 위한 mmt 패킷의 전송 방법 및 장치
WO2013187698A1 (ko) * 2012-06-12 2013-12-19 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
JP5885604B2 (ja) * 2012-07-06 2016-03-15 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム
US9161039B2 (en) * 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
US20140092995A1 (en) * 2012-09-28 2014-04-03 Sharp Laboratories Of America, Inc. Electronic devices for signaling a random access point picture message
US9525883B2 (en) * 2013-07-15 2016-12-20 Qualcomm Incorporated Cross-layer alignment of intra random access point pictures
JP6652320B2 (ja) * 2013-12-16 2020-02-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法、受信方法、送信装置及び受信装置
US9699229B2 (en) * 2014-01-16 2017-07-04 Qualcomm Incorporated Robust live operation of dash
JP2015136060A (ja) * 2014-01-17 2015-07-27 ソニー株式会社 通信装置、通信データ生成方法、および通信データ処理方法
EP3175624A4 (en) * 2014-07-31 2018-02-28 LG Electronics Inc. Apparatus and method for transmitting/receiving processes of a broadcast signal

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011087103A (ja) 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
US20130091251A1 (en) * 2011-10-05 2013-04-11 Qualcomm Incorporated Network streaming of media data

Also Published As

Publication number Publication date
KR102103054B1 (ko) 2020-04-21
US10820024B2 (en) 2020-10-27
JP2015136059A (ja) 2015-07-27
EP3096533A4 (en) 2017-07-05
US10178417B2 (en) 2019-01-08
CA2936164A1 (en) 2015-07-23
EP3096533A1 (en) 2016-11-23
MX2019009888A (es) 2019-10-22
WO2015107786A1 (ja) 2015-07-23
CN105900446A (zh) 2016-08-24
US20160330491A1 (en) 2016-11-10
MX2016008985A (es) 2016-10-04
EP3096533B1 (en) 2020-11-04
US11284135B2 (en) 2022-03-22
CA2936164C (en) 2021-06-01
CN105900446B (zh) 2019-11-05
US20210029388A1 (en) 2021-01-28
US20190075334A1 (en) 2019-03-07

Similar Documents

Publication Publication Date Title
KR102120525B1 (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
US11284135B2 (en) Communication apparatus, communication data generation method, and communication data processing method
US20170111706A1 (en) Media content transceiving method and transceiving apparatus using same
JP5791893B2 (ja) 以前の伝送データを用いた、ビデオ・コンテンツ及びサービスのブロードキャストの受信のための方法及びデバイス
KR102247976B1 (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
US20170127147A1 (en) Multicast streaming
KR102176404B1 (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
KR102137858B1 (ko) 송신 장치, 송신 방법, 수신 장치, 수신 방법 및 프로그램

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant