KR20200071666A - 버퍼모델을 따르는 스트리밍을 위한 부가 정보 생성 방법 및 장치 - Google Patents

버퍼모델을 따르는 스트리밍을 위한 부가 정보 생성 방법 및 장치 Download PDF

Info

Publication number
KR20200071666A
KR20200071666A KR1020190157200A KR20190157200A KR20200071666A KR 20200071666 A KR20200071666 A KR 20200071666A KR 1020190157200 A KR1020190157200 A KR 1020190157200A KR 20190157200 A KR20190157200 A KR 20190157200A KR 20200071666 A KR20200071666 A KR 20200071666A
Authority
KR
South Korea
Prior art keywords
information
stream
packet
output packet
buffering information
Prior art date
Application number
KR1020190157200A
Other languages
English (en)
Other versions
KR102211539B1 (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 KR20200071666A publication Critical patent/KR20200071666A/ko
Application granted granted Critical
Publication of KR102211539B1 publication Critical patent/KR102211539B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4343Extraction 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • 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)

Abstract

본 출원의 일 실시 예에 따르면, 적어도 어느 하나의 출력 패킷을 복호화 장치에 제공하는 스트림 제공 장치에 있어서, 제1 부호화 데이터로부터 제1 버퍼링 정보를 획득하고, 제2 부호화 데이터로부터 제2 버퍼링 정보를 획득하는 버퍼링 정보 처리부; 및 상기 제1 부호화 데이터에 상기 제1 버퍼링 정보를 부여한 제1 출력 패킷 및 상기 제2 부호화 데이터에 상기 제2 버퍼링 정보를 부여한 제2 출력 패킷을 획득하는 패킷화부를 포함하고, 상기 패킷화부는, 상기 제1 출력 패킷 및 상기 제2 출력 패킷이 각각 제1 비트레이트로 일정하게 출력되도록, 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보를 이용하여 상기 제1 출력 패킷 및 상기 제2 출력 패킷의 전송 시간을 조정하고, 상기 제1 출력 패킷이 전송되는 시점과 상기 제2 출력 패킷이 전송되는 시점이 상이하되, 상기 제1 출력 패킷의 전송이 완료된 시점과 상기 제2 출력 패킷의 전송이 시작되는 시점이 대응되는, 스트림 제공 장치가 제공될 수 있다.

Description

버퍼모델을 따르는 스트리밍을 위한 부가 정보 생성 방법 및 장치 {THE METHOD AND APPARATUS FOR THE ADDITIONAL INFORMATION GENERATION FOR THE STREAMING COMPLYING WITH BUFFER MODEL}
아래의 실시 예들은 버퍼링 정보를 활용한 스트리밍 정보 생성 장치 및 방법에 관한 것이다.
방송 통신 기술이 나날이 진보함에 따라, 방송 통신 기술은 세계적으로 아날로그 방송에서 디지털 방송으로의 전환이 거의 마무리되는 시점에 이르렀다. 이로 인해, 기존의 방송 시스템은 Post-HD 시대에 UHDTV(Ultra High Definition TV) 등 실감의 대용량 방송 및 방송 통신 융합 환경에 대비한 새로운 차기 방송 표준을 적용하기 위한 연구의 필요성이 날로 높아지고 있다.
이러한 필요성이 제기된 가운데, ATSC (Advanced Television Systems Committee), DVB(Digital Video Broadcasting), EBU (European Broadcasting Union), NHK, ETRI (Electronics and Telecommunications Research Institute) 등 14개 기관은 2011년 11월 FoBTV (Future of Broadcast TV)를 결성하여, 브로드밴드 에코시스템 기반 방송의 역할, 차세대 공중파 방송 시스템의 특성, 스펙트럼 스퀴즈 등 미래 방송 시스템에 대한 논의가 시작되었고, 2013년 9월 시스템 요구사항을 완료하고 본격적인 기술 개발이 시작되었다.
방송 통신 기술이 고도화되고 있는 추세에서, 세계적으로 많은 국가들은 고도화된 차세대 방송 기술에 대한 기술 선점을 위해 기술 개발을 추진하고 있다. 특히, 유럽에서는 DVB 2.0 시스템을, 미국에서는 ATSC 3.0 시스템을, 일본에서는 ISDB(Integrated Services Digital Broadcasting)- Tmm(Terrstrial mobile multi-media) 시스템에 관한 기술 개발을 이미 추친하고 있고, 이를 고려할 때 국내에서도 관련 미래 방송 통신 기술에 대한 원천 기술 및 신규 서비스를 위한 장비 개발에 대한 연구 개발의 추진이 요구되는 실정이다.
일 과제는, 방송 시스템에서 안정적인 스트리밍을 위해 버퍼링 정보를 포함하는 출력 스트림을 생성하는 방법을 제공하는 것이다.
일 과제는, ATSC 3.0 방송 시스템에서 안정적인 스트리밍을 위해 버퍼링 정보를 포함하는 출력 스트림을 생성하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 과제가 상술한 과제로 제한되는 것은 아니며, 언급되지 아니한 과제들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
일 실시 예에 따르면, 적어도 어느 하나의 출력 패킷을 복호화 장치에 제공하는 스트림 제공 장치에 있어서, 제1 부호화 데이터로부터 제1 버퍼링 정보를 획득하고, 제2 부호화 데이터로부터 제2 버퍼링 정보를 획득하는 버퍼링 정보 처리부; 및 상기 제1 부호화 데이터에 상기 제1 버퍼링 정보를 부여한 제1 출력 패킷 및 상기 제2 부호화 데이터에 상기 제2 버퍼링 정보를 부여한 제2 출력 패킷을 획득하는 패킷화부를 포함하고, 상기 패킷화부는, 상기 제1 출력 패킷 및 상기 제2 출력 패킷이 각각 제1 비트레이트로 일정하게 출력되도록, 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보를 이용하여 상기 제1 출력 패킷 및 상기 제2 출력 패킷의 전송 시간을 조정하고, 상기 제1 출력 패킷이 전송되는 시점과 상기 제2 출력 패킷이 전송되는 시점이 상이하되, 상기 제1 출력 패킷의 전송이 완료된 시점과 상기 제2 출력 패킷의 전송이 시작되는 시점이 대응되는, 스트림 제공 장치가 제공될 수 있다.
일 실시 예에 따르면, 적어도 어느 하나의 출력 패킷을 복호화 장치에 제공하는 스트림 제공 방법에 있어서, 제1 부호화 데이터로부터 제1 버퍼링 정보를 획득하고, 제2 부호화 데이터로부터 제2 버퍼링 정보를 획득하는 버퍼링 정보 처리 단계; 및 상기 제1 부호화 데이터에 상기 제1 버퍼링 정보를 부여한 제1 출력 패킷 및 상기 제2 부호화 데이터에 상기 제2 버퍼링 정보를 부여한 제2 출력 패킷을 획득하는 패킷화 단계를 포함하고, 상기 패킷화 단계는, 상기 제1 출력 패킷 및 상기 제2 출력 패킷이 각각 제1 비트레이트로 일정하게 출력되도록, 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보를 이용하여 상기 제1 출력 패킷 및 상기 제2 출력 패킷의 전송 시간을 조정하고, 상기 제1 출력 패킷이 전송되는 시점과 상기 제2 출력 패킷이 전송되는 시점이 상이하되, 상기 제1 출력 패킷의 전송이 완료된 시점과 상기 제2 출력 패킷의 전송이 시작되는 시점이 대응되는, 스트림 제공 방법이 제공될 수 있다.
일 실시 예에 따르면, 상기 스트림 제공 방법을 실행시키도록 구현되는 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 제공될 수 있다.
일 실시 예에 의하면, 방송 시스템에서 안정적인 스트리밍을 위해 버퍼링 정보를 포함하는 출력 스트림을 생성하는 방법을 통해, 상기 방송 시스템은 버퍼 모델에 위배되지 않도록 안정적인 속도로 스트리밍이 수행될 수 있다.
일 실시 예에 의하면, ATSC 3.0 방송 시스템에서 안정적인 스트리밍을 위해 버퍼링 정보를 포함하는 출력 스트림을 생성하는 방법을 통해, ATSC 3.0 송 시스템의 송신 대상 데이터는 안정적인 속도로 스트리밍이 수행될 수 있다.
본 발명의 효과가 상술한 효과들로 제한되는 것은 아니며, 언급되지 아니한 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 방송 시스템을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 송신 시스템을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 스트림 제공부를 나타낸 블록도이다.
도 4는 본 발명의 다른 실시예에 따른 스트림 제공장치를 나타낸 블록도이다.
도 5는 본 발명의 실시예에 따른 스트림 생성부를 나타낸 블록도이다.
도 6은 본 발명의 실시예에 따른 제1 스트림 생성부를 나타낸 블록도이다.
도 7은 본 발명의 실시예에 따른 PES 패킷 및 TS 패킷을 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 제2 스트림 생성부를 나타낸 블록도이다.
도 9는 본 발명의 실시예에 따른 제2a 스트림 생성부를 나타낸 블록도이다.
도 10은 본 발명의 실시예에 따른 제2b 스트림 생성부를 나타낸 블록도이다.
도 11은 일 실시 예에 따른 스트림 생성부를 나타낸 블록도이다.
도 12는 일 실시 예에 따른 스트림 생성장치를 나타낸 블록도이다.
도 13은 일 실시 예에 따른 버퍼링 정보 처리부를 나타낸 블록도이다.
도 14 내지 도 18은 일 실시 예에 따른 버퍼링 정보를 나타낸 블록도이다.
도 19는 일 실시 예에 따른 버퍼링 정보가 포함된 스트림 제공 프로세스를 나타낸 순서도이다.
도 20은 일 실시 예에 따른 버퍼링 정보가 포함된 스트림을 나타낸 도면이다.
도 21은 일 실시 예에 따른 버퍼링 정보가 부여된 ROUTE 패킷을 생성하는 패킷화부를 나타낸 블록도이다.
도 22는 일 실시 예에 따른 버퍼링 정보가 부여된 MMTP 패킷을 생성하는 패킷화부를 나타낸 블록도이다.
이하에서는 도면을 참조하여 본 발명의 구체적인 실시 예를 상세하게 설명한다. 다만, 본 발명의 사상은 제시되는 실시 예에 제한되지 아니하고, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서 다른 구성요소를 추가, 변경, 삭제 등을 통하여, 퇴보적인 다른 발명이나 본 발명 사상의 범위 내에 포함되는 다른 실시 예를 용이하게 제안할 수 있을 것이나, 이 또한 본원 발명 사상 범위 내에 포함된다고 할 것이다.
또한, 각 실시 예의 도면에 나타나는 동일한 사상의 범위 내의 기능이 동일한 구성요소는 동일한 참조 부호를 사용하여 설명한다.
본 출원의 일 실시 예에 따르면, 적어도 어느 하나의 출력 패킷을 복호화 장치에 제공하는 스트림 제공 장치에 있어서, 제1 부호화 데이터로부터 제1 버퍼링 정보를 획득하고, 제2 부호화 데이터로부터 제2 버퍼링 정보를 획득하는 버퍼링 정보 처리부; 및 상기 제1 부호화 데이터에 상기 제1 버퍼링 정보를 부여한 제1 출력 패킷 및 상기 제2 부호화 데이터에 상기 제2 버퍼링 정보를 부여한 제2 출력 패킷을 획득하는 패킷화부를 포함하고, 상기 패킷화부는, 상기 제1 출력 패킷 및 상기 제2 출력 패킷이 각각 제1 비트레이트로 일정하게 출력되도록, 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보를 이용하여 상기 제1 출력 패킷 및 상기 제2 출력 패킷의 전송 시간을 조정하고, 상기 제1 출력 패킷이 전송되는 시점과 상기 제2 출력 패킷이 전송되는 시점이 상이하되, 상기 제1 출력 패킷의 전송이 완료된 시점과 상기 제2 출력 패킷의 전송이 시작되는 시점이 대응되는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 버퍼링 정보는 상기 적어도 하나의 출력 패킷을 획득하는 복호화 장치에서 상기 제1 출력 패킷이 저장되어 있는 시간에 대응되는 버퍼링 시간을 포함하고, 상기 제2 버퍼링 정보는 상기 복호화 장치에서 상기 제2 출력 패킷이 저장되어 있는 시간에 대응되는 버퍼링 시간을 포함하는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 부호화 데이터와 상기 제2 부호화 데이터는 도착 시점 정보, 복호화 시점 정보 및 프리젠테이션 시점 정보를 포함하되, 상기 도착 시점 정보는 상기 제1 부호화 데이터 또는 상기 제2 부호화 데이터가 복호화할 장치에 도착하는 시점에 대응되는 정보이고, 상기 복호화 시점 정보는 상기 제1 부호화 데이터 또는 상기 제2 부호화 데이터가 복호화되는 시점에 대응되는 정보이고, 상기 프리젠테이션 시점 정보는 상기 제1 부호화 데이터 또는 상기 제2 부호화 데이터에서 복호화된 데이터가 출력되는 시점에 대응되는 정보인, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 버퍼링 정보는 상기 제1 부호화 데이터에 포함되는 제1 복호화 시점 정보 및 제1 프리젠테이션 시점 정보 중 적어도 어느 하나와 제1 도착 시점 정보에 의해 결정되고, 상기 제2 버퍼링 정보는 상기 제2 부호화 데이터에 포함되는 제2 복호화 시점 정보 및 제2 프리젠테이션 시점 정보 중 적어도 어느 하나와 제2 도착 시점 정보에 의해 결정되는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 버퍼링 정보는 상기 제1 도착 시점 정보와 상기 제1 복호화 시점 정보 사이의 제1 시간 구간에 의해 결정되고, 상기 제2 버퍼링 정보는 상기 제2 도착 시점 정보와 상기 제2 복호화 시점 정보 사이의 제2 시간 구간에 의해 결정되는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보는 XML 형식의 파일로 상기 패킷화부에 제공되는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 부호화 데이터가 MPU 프레그먼트를 포함하는 경우에는 상기 제1 출력 패킷은 MMTP 패킷에 대응되고, 상기 제2 부호화 데이터가 DASH 세그먼트를 포함하는 경우에는 상기 제2 출력 패킷은 ROUTE 패킷에 대응되는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 출력 패킷은 제1 전송 시간 구간 동안 전송되고, 상기 제2 출력 패킷은 제2 전송 시간 동안 전송되고, 상기 제1 전송 시간 구간의 길이는 상기 제1 출력 패킷의 크기에 대응되고, 상기 제2 전송 시간 구간의 길이는 상기 제2 출력 패킷의 크기에 대응되는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 출력 패킷 및 상기 제2 출력 패킷이 상기 복호화 장치에서 상기 제1 비트레이트와는 상이한 제2 비트레이트로 변경하여 일정하게 전송하는 경우, 상기 제1 전송 시간 구간과 상기 제2 전송 시간 구간이 변경되는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 버퍼링 정보는 상기 제1 출력 패킷에 포함된 적어도 일부 영역에 삽입되어 있고, 상기 제2 버퍼링 정보는 상기 제2 출력 패킷에 포함된 적어도 일부 영역에 삽입되어 있는 것을 특징으로 하는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 제1 비트레이트는 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보 중 적어도 어느 하나로부터 결정되는, 스트림 제공 장치가 제공될 수 있다.
또한, 상기 복호화 장치가 과부하되지 않도록, 상기 제1 비트레이트는 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보에 포함된 각각의 정보를 평균화한 정보로부터 결정되는, 스트림 제공 장치가 제공될 수 있다.
본 출원의 일 실시 예에 따르면, 적어도 어느 하나의 출력 패킷을 복호화 장치에 제공하는 스트림 제공 방법에 있어서, 제1 부호화 데이터로부터 제1 버퍼링 정보를 획득하고, 제2 부호화 데이터로부터 제2 버퍼링 정보를 획득하는 버퍼링 정보 처리 단계; 및 상기 제1 부호화 데이터에 상기 제1 버퍼링 정보를 부여한 제1 출력 패킷 및 상기 제2 부호화 데이터에 상기 제2 버퍼링 정보를 부여한 제2 출력 패킷을 획득하는 패킷화 단계를 포함하고, 상기 패킷화 단계는, 상기 제1 출력 패킷 및 상기 제2 출력 패킷이 각각 제1 비트레이트로 일정하게 출력되도록, 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보를 이용하여 상기 제1 출력 패킷 및 상기 제2 출력 패킷의 전송 시간을 조정하고, 상기 제1 출력 패킷이 전송되는 시점과 상기 제2 출력 패킷이 전송되는 시점이 상이하되, 상기 제1 출력 패킷의 전송이 완료된 시점과 상기 제2 출력 패킷의 전송이 시작되는 시점이 대응되는, 스트림 제공 방법이 제공될 수 있다.
본 출원의 일 실시 예에 따르면, 상기 스트림 제공 방법을 실행시키도록 구현되는 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 제공될 수 있다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 일 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
1. 스트림 제공 장치
본 발명은 방송 신호 송신을 위한 다중화 방법 및 그 장치를 제공한다. 본 발명의 일 실시예에 따른 방송 신호는 방송 서비스를 위해 제공되며, 방송 서비스는 지상파 방송 서비스, IPTV 방송 서비스, 위성 방송 서비스, 모바일 방송 서비스, HD(High Definition) TV 서비스, FHD(Full High Definition) TV 서비스, UHD(Ultra High Definition) TV 서비스 등을 포함할 수 있다. 또한, 본 발명의 일 실시예에 따른 방송 서비스에 이에 한정되는 것은 아니며, 본 발명의 방송 신호에 의해 제공될 수 있는 모든 방송 서비스는 본 발명의 방송 서비스에 적용될 수 있다. 예를 들어, 본 발명의 방송 서비스는 VR 방송 서비스, 360도 VR 방송 서비스 및 3D 방송 서비스를 포함할 수도 있다.
또한, 본 발명의 실시예에서 방송 신호를 제공하기 위한 스트림은 MPEG-2(moving pictures exports group-2) TS(transport stream) 또는 ROUTE(Real-time Object delivery over Unidirectional Transport) 또는 MMTP(MPEG Media Transport Protocol)가 될 수 있다. ROUTE 및 MMTP는 현재 ATSC 3.0에서 표준화 진행 중인 방송망 전송 스트림 다중화 규격을 나타낸다. 또한, 인터넷 망으로 전송되는 전송 스트림은 MPEG-DASH(Dynamic Adaptive Streaming over HTTP) 규격을 따른다. 그러나 본 발명은 반드시 이에 한정되는 것은 아니다.
도 1은 일 실시예에 따른 방송 시스템을 나타낸 블록도이다.
도 1을 참조하면, 방송 시스템(100)은 송신 시스템(110) 및 수신 시스템(120)를 포함할 수 있다.
송신 시스템(110)는 예를 들어, 텔레비전 프로그램 등의 서비스의 송신(디지털 방송이나 데이터 전송)을 행한다. 즉, 송신 시스템(110)은 예를 들어 텔레비전 프로그램 등의 서비스를 구성하는 컴포넌트로서의 영상이나 음성의 데이터 등의 송신의 대상인 대상 데이터의 스트림을, 방송 신호로서, 전송로를 통하여 송신(전송)한다. 여기서, 전송로는 RF(Radio Frequency) 방식, 네트워크 방식 등 방송 신호가 전달될 수 있는 다양한 방식으로 구성될 수 있다.
또한, 일 실시예에서, 송신 시스템(110)는 방송국에서의 방송신호 생성 및 전송에 이용될 수 있으며, 이 경우, 방송 신호는 방송 시스템의 운용 규칙(operational regulations)에 의해 정의된 주파수 대역 내의 주파수와, 방송 시스템이 운용되는 영역/나라의 법규 등을 이용하여 송신될 수 있다.
또한, 본 발명의 실시예에서 수신 시스템(120)는 송신 시스템(110)로부터 전송로를 통하여 송신되어 오는 방송 신호를 수신하고, 수신된 방송신호를 복호화하여 원래의 스트림으로 복원하여 출력할 수 있다. 예를 들어, 수신 시스템(120)는 복호화 장치 및 영상 출력 장치를 포함할 수 있고, 영상 출력 장치는 복호화 장치로부터 출력 신호를 수신하고, 출력 신호에 따라 텔레비전 프로그램 등의 서비스를 구성하는 영상이나 음성의 데이터를 출력할 수 있다.
본 발명의 일 실시예에서, 수신 시스템(120)은 브로드캐스트(broadcast) 또는 브로드밴드(broadband)의 방식으로 송신 시스템(110)으로부터 방송신호를 수신할 수 있다. 여기서, 브로드밴드는 양방향 IP 접속을 활용한 A/V 컨텐츠의 스트리밍(streaming) 또는 다운로딩(downloading)을 위한 방법으로 사용하는 방식이며, 브로드캐스트는 DVB-T(Digital Video Broadcasting-Terrestrial), DVB-S(Satellite), DVB-C(Cable) 등과 같은 클래시컬한 일방향 전송 방식을 의미할 수 있다.
일 실시예에서, 수신 시스템(120)은 브로드캐스트 네트워크를 통해 방송신호를 획득할 수 있고, 상기 방송신호는 선형 A/V 컨텐츠, 비실시간 A/V 컨텐츠, 어플리케이션 데이터 및 어플리케이션 시그널링(signalling) 정보 등을 포함할 수 있다.
또한, 수신 시스템(120)은 브로드밴드 네트워크를 통해 방송신호를 획득할 수 있고, 상기 방송신호는 어플리케이션 데이터, 비선형 A/V 컨텐츠등을 포함할 수 있다. 여기서, 비선형 A/V 컨텐츠는 Streaming on Demand와 같은 사용자가 자유롭게 컨텐츠의 시청 시간 또는 컨텐츠 내 재생 시점을 지정할 수 있는 컨텐츠며, 선형 A/V 컨텐츠는 제공자가 제공하는 특정 시간에만 시청이 가능한 푸시(push) 형태의 컨텐츠를 의미할 수 있다.
또한, 본 발명의 실시예에 따른 방송 시스템(1000)은 ATSC(Advanced Television Systems Committee standards) 규격에 준거한 데이터 전송 이외에, DVB(Digital Video Broadcasting) 규격이나 ISDB(Integrated Services Digital Broadcasting) 규격 등에 준거한 데이터 전송, 기타의 데이터 전송에 적용할 수 있다. 이하에서는, 설명의 편의를 위하여, ATSC 3.0 기반 방송 시스템을 일 예로서 설명하기로 한다. 그러나, 본 발명은 ATSC 3.0에 한정되는 것은 아니며 다른 시스템들에도 적용 가능하다.
도 2는 본 발명의 실시예에 따른 송신 시스템을 나타낸 블록도이다.
도 2를 참조하면, 송신 시스템(110)은 스트림 제공장치(1000), 게이트웨이(2000) 및 송신기(3000)를 포함할 수 있다. 도 2에서 표현되지는 않았지만, 송신 시스템(110)은 스튜디오(연주소) 및 송신소로 구성될 수 있고, 이 경우, 스튜디오(연주소)에는 스트림 제공장치(1000) 및 게이트웨이(2000)가 포함되고, 송신소에는 송신기(3000)가 포함될 수 있다.
본 발명의 일 실시예에서, 스트림 제공장치(1000)는 방송신호를 외부로부터 소스 방송 신호를 입력받고, 소스 방송 신호를 소정의 규칙에 따라 변환하여 변환된 데이터를 스트림 형태로 게이트웨이(2000)에 제공하는 장치를 의미할 수 있다. 일 실시예에서, 스트림 제공장치(1000)는 인코더로 표현될 수 있다. 스트림 제공장치(1000)가 외부로부터 입력받는 소스 방송 신호는 소스 비디오 신호 및 소스 오디오 신호를 포함할 수 있다. 여기서, 소스 비디오/오디오 신호는 아날로그 또는 디지털 데이터를 포함할 수 있다. 또한, 소스 비디오 신호는 SD(Standard Definition, 720*480 해상도), HD(High Definition, 1280*720 해상도), FHD(Full HD, 1920*1080 해상도), QHD(Quad HD, 2560*1440 해상도) 및 UHD(Ultra HD, 3840*2160 해상도) 방송 신호일 수 있다. 여기서, UHD 방송 신호는 차세대 방송영상으로 불리는 기술로, UHD 영상은 일반적으로 가로와 세로 픽셀 수가 4000(4k·3840x2160)∼8000급(8k·7680x4320)에 육박할 수 있다. 화면 해상도는 픽셀로 불리는 화소 수가 좌우한다고 볼 때 UHD 영상은 4k 기준으로 HD(2k·1920x1080)와 비교해 4배나 더 선명할 수 있다. 8k에 비교하면 선명도 면에서 16배까지 차이가 날 수 있다. 화면 주사율, 즉 초당 프레임 수에서도 HD가 30㎐인데 반해 60㎐로 1초당 화면 60장을 전송해 훨씬 자연스러우면서 역동적인 화면을 즐길 수 있다.
또한, 소스 비디오 신호 및 소스 오디오 신호는 하나의 신호 형태로 결합되어 스트림 제공장치(1000)에 입력될 수도 있고, 서로 별개의 신호로 입력될 수도 있다.
또한, 스트림 제공장치(1000)는 소스 방송 신호를 카메라로부터 획득할 수 있고 미리 저장된 저장소로부터 획득할 수도 있다. 또한, 스트림 제공장치(1000)는 해상도를 업 스케일링(up scaling) 또는 다운 스케일링(down scaling)하는 컨버터(예를 들어, HD-UHD 업컨버터)로부터 해상도가 변환된 소스 비디오 신호를 획득할 수도 있다.
또한, 스트림 제공장치(1000)는 소스 방송신호를 인코딩하여 기초 스트림을 생성하고, 기초 스트림에 각종 부가 데이터를 다중화하고, 동기화하여 출력 스트림을 생성하고, 출력 스트림을 게이트웨이(2000)에 제공할 수 있다. 스트림 제공장치(1000)에 대해서는 도 3 및 도 4에서 보다 자세하게 설명한다.
또한, 도 2에 표현되지는 않았지만, 송신 시스템(110)에서 스트림 제공장치(1000)는 복수개로 구성될 수 있다. 이 경우, 송신 시스템(110)은 재다중화기(Re-Multiplexer)를 포함할 수 있다. 재다중화기는 복수의 스트림 제공장치(1000)로부터 전달받은 출력 스트림을 다중화하고, 다중화된 스트림을 게이트웨이(2000)에 제공할 수 있다.
게이트웨이(2000)는 스트림 제공장치(1000)로부터 획득한 출력 스트림을 출력 신호로 변환하고, 출력 신호를 송신기(3000)에 제공할 수 있다. 이 때, 게이트웨이(2000)는 출력 신호를 마이크로웨이브망이나 유선 IP망을 통해서 송신기(3000)에 전달할 수 있다. 또한, 일 실시예에서, 출력 신호는 IP 패킷으로 구성될 수 있다. 또한, 도 2에서 표현되지는 않았지만, 송신 시스템(110)은 시그널링 서버를 포함할 수 있고, 게이트웨이(2000)는 시그널링 서버로부터 시그널링 정보를 획득하고, 출력 신호에 시그널링 정보를 포함할 수 있다.
송신기(3000)는 게이트웨이(2000)로부터 획득한 출력 신호를 RF 변환하여 증폭하고 증폭된 RF 신호를 소정의 대역으로 할당된 채널을 통해 전송할 수 있다. 일 실시예에서, 송신기(3000)는 익사이터(Exciter), HPA(High Power Amplifier), 마스크 필터 및 안테나를 포함할 수 있다. 익사이터는 게이트웨이(2000)로부터 획득한 출력 신호를 RF 송신신호로 변환하고, HPA는 RF 송신 신호의 파워를 증폭하고, 마스크 필터는 RF 송신신호의 인접대역 간섭을 방지할 수 있으며, 안테나는 RF 송신신호를 수신 시스템(120)에 전송할 수 있다.
본 발명의 실시예에서, 수신 시스템(120)의 복호화 장치는 스트림 제공 장치(1000)의 출력 스트림을 복호화하여 영상 출력 장치에서 이해할 수 있는 포맷으로 변환할 수 있다.
이하에서는, 설명의 편의를 위하여 스트림 제공 장치(1000)와 복호화 장치 사이에 존재하는 구성들을 생략하고, 송신 시스템(110)과 수신 시스템(120) 사이의 방송 신호 송수신 동작을, 스트림 제공 장치(1000)에서 출력 스트림을 전송하고 복호화 장치에서 출력 스트림을 수신하는 것으로 표현한다. 그러나, 설명의 편의를 위한 것일 뿐, 전술한 바와 같이 스트림 제공 장치(1000)와 복호화 장치 사이에는 복수의 장치가 존재하고, 상기 출력 스트림은 스트림 제공 장치(1000)로부터 상기 복수의 장치를 거쳐 복호화 장치에 도달하는 것은 자명한 사실이다.
도 3은 본 발명의 실시예에 따른 스트림 제공부를 나타낸 블록도이다.
도 3을 참조하면, 스트림 제공장치(1000)는 입력부(1100), 비디오 부호화부(1200), 오디오 부호화부(1300), 스트림 생성부(1400), 출력부(1500) 및 제어부(1600)를 포함할 수 있다.
입력부(1100)는 외부로부터 소스 방송 신호를 획득할 수 있다. 전술한 바와 같이, 입력부(1100)에 입력받는 소스 비디오 신호는 SD, HD, FHD, QHD 및 UHD 해상도를 갖는 방송신호일 수 있다. 또한, 소스 비디오 신호 및 소스 오디오 신호는 하나의 신호 형태로 결합되어 스트림 제공장치(1000)에 입력될 수도 있고, 서로 별개의 신호로 입력될 수도 있다.
또한, 본 발명의 실시예에서, 입력부(1100)는 프로세서 형태로 구현될 수 있다.
비디오 부호화부(1200)는 소스 비디오 신호를 부호화(인코딩)하여 유효한 비트 스트림을 생성할 수 있다. 일 실시예에서, 비디오 부호화부(1200)에서 출력되는 비트 스트림은 기초 스트림(Elementary Stream, ES)으로 표현될 수 있다. 일 실시예에서, 기초 스트림은 오디오, 비디오, 메타 테이터 등 한 종류의 데이터로만 구성될 수 있으며, 그 포맷은 부호화에 사용된 압축 기술에 따라 달라질 수 있다.
본 발명의 실시예에서, 비디오 부호화부(1200)는 미리 정해진 동영상 압축 기술(코덱)에 따라 소스 비디오 신호를 부호화할 수 있다. 예를 들어, 비디오 부호화부(1200)는 H.261, MPEG-1, H.262/MPEG-2, H.263/MPEG-3, MPEG-4, H.264/AVC, H.265/HEVC 등 다양한 압축 기술에 따라 소스 비디오 신호를 부호화할 수 있다. 물론, 전술한 동영상 압축기술 외에도 소스 비디오 신호를 부호화할 수 있는 동영상 압축기술 역시 본 발명에 적용될 수 있다.
본 발명의 실시예에서, 비디오 부호화부(1200)는 억세스 유닛(Access Unit, AU)을 기본 단위로 부호화를 수행할 수 있다. 여기서, 억세스 유닛은 재생하고자 하는 단위의 부호화의 형태(coded representation)을 나타내는 것으로, 비디오의 경우 억세스 단위는 한 픽쳐(picture)의 모든 코딩된 데이터와 스터핑(stuffing) 부분을 나타낼 수 있다.
물론, 본 발명의 실시예가 이에 한정되는 것은 아니며, 비디오 부호화부(1200)는 하나의 억세스 유닛이 아닌 복수의 억세스 유닛을 기본단위로 부호화를 수행할 수도 있다.
일 실시예에서, 비디오 부호화부(1200)는 소스 비디오 신호를 억세스 유닛에 따라 부호화를 수행한 후 기초 스트림을 생성할 수 있다.
또한, 보다 구체적인 실시예로써, 비디오 부호화부(1200)가 H.264/AVC 또는 H.265/HEVC의 압축 기술로 소스 비디오 신호를 부호화하는 경우, 비디오 부호화부(1200)는 입력부(1100)로부터 획득한 픽쳐를 부호화하여 NAL(Network Abstraction Layer) 유닛을 생성하고, NAL 유닛을 결합하여 기초 스트림을 생성할 수 있다. 여기서, NAL 유닛은 부호화된 비트스트림을 네트워크 친화적인 형식으로 작성된 구문 구조(syntax structure)로써, 하나의 픽쳐당 하나의 NAL 유닛 또는 복수의 NAL 유닛으로 구성될 수 있다.
본 발명의 몇몇 실시예에서, 비디오 부호화부(1200)는 소정의 비트레이트(bitrate)에 따라 기초 스트림을 생성할 수 있다. 예를 들어, 비트레이트가 10Mbps인 경우, 비디오 부호화부(1200)는 초당 10*10^6 비트의 기초 스트림을 생성할 수 있다. 일 실시예에서, 제어부(1600)는 비디오 부호화부(1200)의 비트스트림을 설정할 수 있다. 일 예로, 제어부(1600)는 스트림 제공장치(1600)에서 제공되는 출력 스트림의 비트량이 소정 기준보다 많을 경우(예를 들어, 복호화 장치의 버퍼에 소정 기준보다 많은 비트량이 비트스트림이 누적되는 경우), 복호화 장치의 버퍼에 오버플로(overflow)가 발생되지 않도록 비디오 부호화부(1200)의 비트 스트림을 조정할 수 있다. 다른 일 예로, 제어부(1600)는 스트림 제공장치(1600)에서 제공되는 출력 스트림의 비트량이 소정 기준보다 적을 경우(예를 들어, 복호화 장치의 버퍼에 소정 기준보다 적은 비트량이 비트스트림이 누적되는 경우), 복호화 장치의 버퍼에 언더플로(underflow)가 발생되지 않도록 비디오 부호화부(1200)의 비트 스트림을 조정할 수 있다.
이와 같이, 제어부(1600)는 복호화 장치에서의 버퍼의 크기 및 버퍼 사용량을 고려하여 비트레이트를 조정할 수 있고, 이러한 비트레이트의 조정을 위하여, 스트림 제공 장치(1000)는 복호화 장치에서의 버퍼에 대응하는 가상의 버퍼를 더 포함할 수 있다. 제어부(1600)는 가상의 버퍼를 참조하여 복호화 장치의 버퍼에서 오버플로/언더플로가 발생하는지 여부를 판단할 수 있다.
오디오 부호화부(1300)는 소스 오디오 신호를 부호화(인코딩)하여 유효한 비트 스트림을 생성할 수 있다. 일 실시예에서, 비디오 부호화부(1200)와 마찬가지로, 오디오 부호화부(1200)에서 출력되는 비트 스트림 역시 기초 스트림(Elementary Stream, ES)로 표현될 수 있다. 또한, 실시예에서, 기초 스트림의 포맷은 부호화에 사용된 압축 기술에 따라 달라질 수 있다.
본 발명의 실시예에서, 오디오 부호화부(1300)는 미리 정해진 오디오 압축 기술(코덱)에 따라 소스 오디오 신호를 부호화할 수 있다. 예를 들어, 오디오 부호화부(1300)는 Dolby AC-4, AC-3, MPEG-H, AAC, OGG, MP3, WMA, AMR-WB, OPUS, FLAC 등 다양한 압축 기술에 따라 소스 오디오 신호를 부호화할 수 있다. 물론, 전술한 오디오 압축기술 외에도 소스 오디오 신호를 부호화할 수 있는 오디오 압축기술 역시 본 발명에 적용될 수 있다.
본 발명의 실시예에서, 오디오 부호화부(1300)는 억세스 유닛(Access Unut, AU)을 기본 단위로 부호화를 수행할 수 있다. 소스 방송 신호가 오디오 신호인 경우, 억세스 유닛은 한 오디오 프레임(frame)의 모든 코딩된 데이터를 나타낼 수 있다. 물론, 본 발명의 실시예가 이에 한정되는 것은 아니며, 오디오 부호화부(1300)는 하나의 억세스 유닛이 아닌 복수의 억세스 유닛을 기본단위로 부호화를 수행할 수도 있다.
본 발명의 몇몇 실시예에서, 오디오 부호화부(1300)는 소정의 비트레이트(bitrate)에 따라 기초 스트림을 생성할 수 있다. 예를 들어, 비트레이트가 128 kbps인 경우, 오디오 부호화부(1300)는 초당 128*10^3 비트의 기초 스트림을 생성할 수 있다. 또한, 비디오 부호화부(1200)에서와 마찬가지로, 제어부(1600)는 오디오 부호화부(1300)의 비트스트림을 설정할 수 있다. 오디오 부호화부(1300)의 비트스트림 설정에 대해서는 비디오 부호화부(1200)에서 설명된 내용이 적용 가능하므로, 상세한 설명은 생략한다.
또한, 도 3에서 표현되지는 않았지만, 스트림 제공 장치(1000)는 데이터 부호화부를 포함할 수 있다. 데이터 부호화부는 메타 데이터를 부호화하는데, 여기서, 메타 데이터는 복호화 장치에서 비디오 정보 및 오디오 정보를 성공적으로 재현하기 위해 필요한 정보를 나타낼 수 있다. 예를 들어, 메타 데이터는 기초 스트림이 복호화되는 시간에 대한 정보 및/또는 기초 스트림이 재생되는 시간에 대한 정보를 포함할 수 있다.
데이터 부호화부는 메타 데이터를 기초 스트림으로 생성할 수 있고, 이는 메타 데이터 기초 스트림으로 표현될 수 있다.
스트림 생성부(1400)는 비디오 부호화부(1200)에서 생성된 기초 스트림(이하, 비디오 기초 스트림이라고 표현함) 및 오디오 부호화부(1300)에서 생성된 기초 스트림(이하, 오디오 기초 스트림이라고 표현함)을 출력 패킷으로 패킷화화고, 출력 패킷들을 다중화하여 출력 스트림을 생성할 수 있다. 즉, 스트림 생성부(1400)는 비디오 기초 스트림 및 오디오 기초 스트림을 하나의 스트림으로 구성할 수 있다. 여기서, 하나의 스트림으로 생성되는 비디오 기초 스트림 및 오디오 기초 스트림은 하나의 프로그램을 구성하는 비디오 정보 및 오디오 정보일 수 있다. 이에 따라, 스트림 생성부(1400)는 복호화 장치에서 재생되는 비디오와 오디오가 어긋나지 않도록 비디오 기초 스트림 및 오디오 기초 스트림의 동기를 맞춰서 다중화를 수행할 수 있다.
또한, 스트림 생성부(1400)는 전술한 데이터 부호화부에서 생성되는 메타 데이터 기초 스트림을 비디오 기초 스트림 및 오디오 기초 스트림과 함께 출력 패킷화 한 후 다중화하여 출력 스트림을 생성할 수 있다.
일 실시예에서, 스트림 생성부(1400)는 기초 스트림을 미리 정해진 패킷으로 패키타이징(packetizing)하고, 생성된 패킷들을 소정의 규칙에 따라 조합하여 출력 스트림을 생성할 수 있다. 스트림 생성부(1400)의 동작에 대해서는 도 5 내지 도 11에서 보다 상세하게 설명한다.
출력부(1500)는 스트림 생성부(1400)에서 생성된 출력 스트림을 외부로 출력할 수 있다. 일 실시예에서, 출력부(1500)는 ASI(비동기 직렬 인터페이스, Asynchronous Serial Interface) 방식을 통해 출력 스트림을 출력할 수도 있고, IP 방식을 통해 출력 스트림을 출력할 수 있다. 이 외에도, 출력부(1500)는 다양한 인터페이스를 통해 출력 스트림을 출력할 수 있다.
제어부(1600)는 스트림 제공장치(1000)의 전반적인 동작을 총괄할 수 있다. 이에 따라, 제어부(1600)는 스트림 제공장치(1000)에 포함된 구성들(1100, 1200, 1300, 1400, 1500)를 제어할 수 있다. 특히, 제어부(1600)는, 스트림 제공장치(1000)에 설치되어 있는 운영체제, 다양한 프로그램들에 따라서 스트림 제공장치(1000)의 동작을 제어할 수도 있다.
이하에서, 운영체제(OS)는, 스트림 제공장치(1000) 전체의 동작 상태를 감시, 감독하고 자원들을 관리하며 각종 입출력 장치(예를 들어, 사용자 입력부(1100) 및 출력부(1500) 등)를 제어하며, 중앙처리장치(예를 들어, 제어부(150))의 스케줄링과 작업관리, 기억장치(예를 들어, 메모리)의 관리 등의 기능을 수행할 수 있다. 즉, 운영체제는, 상기 스트림 제공장치(1000)의 전반적인 동작을 제어하기 위한 다양한 기능들을 제공하며, 한편, 다양한 어플리케이션들이 상기 스트림 제공장치(1000)에 설치되어 동작할 수 있도록 하기 위한 기본적인 플랫폼을 제공할 수 있다.
또한, 상기 프로그램은 상기 스트림 제공장치(1000)에 특정한 기능을 수행하기 위한 프로그램 코드들을 포함할 수 있다.
전술한 운영체제 및 프로그램은 소프트웨어의 형태로 구현될 수 있고, 소프트웨어 형태로 구현된 운영체제 및/또는 어플리케이션은 메모리부에 저장되어 있다가, 필요에 따라, 제어부(1600)를 통해, 필요한 기능들을 스트림 제공장치(1000)에 제공할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 스트림 제공장치를 나타낸 블록도이다.
도 4의 스트림 제공부는 도 3에 설명된 스트림 제공장치(1000)를 하드웨어적으로 구분하여 구성한 실시예이다.
도 4를 참조하면, 스트림 제공부(1000)는 입력부(1100), 비디오 부호화부(1200), 오디오 부호화부(1300), 스트림 생성부(1400)를 포함할 수 있다.
일 실시예에서, 입력부(1100) 및 비디오 부호화부(1200)는 하나의 SoC로 구성될 수 있으며, 오디오 부호화부(1300) 및 스트림 생성부(1400)는 하나의 프로세서(1020)로 구성될 수 있다. 물론, 실시예에 따라, 입력부(1100) 및 비디오 부호화부(1200)가 하나의 SoC로 구성되지 않고, 오디오 부호화부(1300) 및 스트림 생성부(1400)가 하나의 프로세서(1020)로 구성되지 않을 수 있다. 입력부(1100)는 다양한 해상도를 갖는 소스 방송 신호를 획득할 수 있다. 예를 들어, 입력부는 12G/3G-SDI 리시버(1110) 및 3G-SDI 리시버(1120, 1130, 1140)를 포함할 수 있다. 이 때, 소스 방송 신호가 UHD 영상인 경우, 입력부는 소스 방송 신호를 12G SDI 리시버(1110)를 통해 획득할 수도 있고, 4개의 3G-SDI 리시버(1110, 1120, 1130, 1140)를 통해 획득할 수도 있다. 이외에도, 입력부는 IP 등 다양한 인터페이스로 구현될 수도 있다.
또한, 스트림 제공부(1000)는 오디오 캡쳐부(1310)를 더 포함할 수 있다. 일 실시예에서, 오디오 캡쳐부(1310)는 입력부를 통해 획득한 소스 방송 신호로부터 소스 오디오 신호를 캡쳐하여 오디오 부호화부(1300)에 제공할 수 있다.
또한, 비디오 부호화부(1200)는 입력부(1100)로부터 소스 비디오 신호를 획득하여 소스 비디오 신호에 대해 비디오 기초 스트림을 생성할 수 있으며, 오디오 부호화부(1300)는 비디오 캡쳐부(1310)로부터 획득한 소스 오디오 신호를 부호화하여 오디오 기초 스트림을 생성할 수 있다.
스트림 생성부(1400)는 비디오 부호화부(1200)로부터 비디오 기초 스트림을 획득하고, 오디오 부호화부(1300)로부터 오디오 기초 스트림을 획득하고, 획득한 비디오 기초 스트림 및 오디오 기초 스트림을 패킷화하여 출력 스트림을 생성할 수 있다. 일 예로, 스트림 생성부(1400)는 PCIe(PCI 익스프레스)를 통해 비디오 부호화부(1200)로부터 비디오 기초 스트림을 획득할 수 있다.
스트림 생성부(1400)는 출력 스트림을 출력부(1500)에 제공할 수 있고, 출력부(1500)는 출력 스트림을 외부로 출력할 수 있다.
도 5는 본 발명의 실시예에 따른 스트림 생성부를 나타낸 블록도이다.
도 5를 참조하면, 스트림 생성부(1400)는 제1 스트림 생성부(1410) 및 제2 스트림 생성부(1420)를 포함할 수 있다. 또한, 제2 스트림 생성부(1420)는 제2a 스트림 생성부(1430) 및 제2b 스트림 생성부(1440)를 포함할 수 있다. 도 5에서는 스트림 생성부(1400)이 제1 스트림 생성부(1410) 및 제2 스트림 생성부(1420)를 포함하는 것으로 표현되었지만, 본 발명이 이에 한정되는 것은 아니며, 스트림 생성부(1400) 및 제1 스트림 생성부(1410)만을 포함하거나, 제2 스트림 생성부(1420) 만을 포함할 수도 있다. 또한, 도5 에서는 제2 스트림 생성부(1420)가 제2a 스트림 생성부(1430) 및 제2b 스트림 생성부(1440)를 포함하는 것으로 표현되었지만, 본 발명이 이에 한정되는 것은 아니고, 제2 스트림 생성부(1420)는 제2a 스트림 생성부(1430) 및 제2b 스트림 생성부(1440) 중 하나만을 포함하거나 여러 개의 제2a 스트림 생성부(1430) 및 제2b 스트림 생성부(1440)를 포함할 수도 있다.
스트림 생성부(1400)는 비디오 부호화부(1200) 및 오디오 부호화부(1300)로부터 획득한 기초 스트림들을 패킷화하여 출력 패킷을 생성하고, 생성된 출력 패킷들을 다중화하여 출력 스트림을 생성할 수 있다. 이 때, 스트림 생성부(1400)는 전송 프로토콜에 따라 서로 다른 종류의 출력 스트림을 생성할 수 있다.
본 발명의 실시예에서, 제1 스트림 생성부(1410)는 MPEG-2 프로토콜에 따른 전송 스트림(Transport Stream, TS)을 생성할 수 있다. 또한, 제2 스트림 생성부(1420)는 ATSC 3.0 방송 시스템에서 사용될 수 있는 ATSC 3.0용 전송 스트림(이하, A3 스트림으로 표현함)을 생성할 수 있다. 구체적으로, 제2a 스트림 생성부(1430)는 ROUTE 패킷들로 구성된 ROUTE 스트림을 생성하고, 제2b 스트림 생성부(1430)는 MMTP 패킷들로 구성된 MMTP 스트림을 생성할 수 있다. 이하에서는, 설명의 편의상 ROUTE 패킷 및 MMTP 패킷을 통칭하여 A3 패킷(ATSC 3.0용 전용 패킷을 나타냄)으로 표현하고, ROUTE 스트림 및 MMTP 스트림을 통칭하여 A3 스트림으로 표현한다. 그러나, 이는 설명의 편의를 위한 것일 뿐, ROUTE 패킷과 MMTP 패킷은 구분되어야 하고, ROUTE 스트림과 MMTP 스트림은 구분되어야 할 것이다.
도 6은 본 발명의 실시예에 따른 제1 스트림 생성부를 나타낸 블록도이다.
도 6을 참조하면, 제1 스트림 생성부(1410)는 PES/TS 패킷화부(1411) 및 제1 다중화부(1414)를 포함할 수 있다.
PES/TS 패킷화부(1411)는 비디오 부호화부(1200)로부터 획득한 비디오 기초 스트림 및 오디오 부호화부(1300)로부터 획득한 오디오 기초 스트림을 PES 패킷으로 패킷화한 후, PES 패킷을 TS 패킷으로 패킷화할 수 있다. 도 6의 예에서, 전술한 출력 패킷은 상기 TS 패킷이 될 수 있다.
또한, 제1 다중화부(1410)는 PES/TS 패킷화부(1411)에서 생성된 TS 패킷을 다중화하여 출력 스트림을 생성할 수 있다. 이하에서, 상기 출력 스트림은 전송 스트림으로 표현될 수 있다.
구체적으로, PES/TS 패킷화부(1411)는 제1 PES/TS 패킷화부(1412) 및 제2 PES/TS 패킷화부(1413)를 포함할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니고, 구성예에 따라, 제1 PES/TS 패킷화부(1412) 및 제2 PES/TS 패킷화부(1413)는 구분되지 않고 하나의 PES/TS 패킷화부로 구성될 수도 있다.
본 발명의 실시예에서, PES/TS 패킷화부(1411)는 기초 스트림을 PES 패킷으로 패킷화할 수 있다. PES 패킷은 기초 스트림의 데이터들을 운반하기 위해 사용되어지는 데이터 구조를 나타낼 수 있다. 실시예에 따라, 기초 스트림의 하나의 억세스 유닛은 하나의 PES 패킷에 포함될 수도 있고, 복수의 PES 패킷에 포함될 수도 있다. 일 예로, 하나의 억세스 유닛이 복수의 PES 패킷에 포함될 경우, 상기 복수의 PES 패킷은 PES 스트림으로 표현될 수 있다. 물론, 실시예에 따라, 기초 스트림의 복수의 억세스 유닛이 하나의 PES 패킷에 포함될 수도 있다.
PES 패킷은 PES 패킷 헤더 및 페이로드로 구성될 수 있다. 페이로드에는 기초 스트림이 수납될 수 있고, PES 패킷 헤더에는 해당 PES 패킷을 식별하는 식별정보 및 페이로드에 저장된 기초 스트림과 관련있는 정보들이 포함될 수 있다. 예를 들어, PES 패킷 헤더에는 디코딩 타임 스탬프(Decoding Time Stamp, DTS) 및 프리젠테이션 타임 스탬프(Presentation Time Stamp, PTS)가 포함될 수 있다. 디코딩 타임 스탬프는 PES 패킷의 페이로드에 포함된 억세스 유닛이 복호화 장치에서 복호화되는 시간 정보를 나타내며, 프리젠테이션 타임 스탬프는 PES 패킷의 페이로드에 포함된 억세스 유닛이 복호화 장치에서 재생되는 시간 정보를 나타낼 수 있다. 또한, PES 패킷의 길이는 미리 정해질 수도 있고, 기초 스트림의 길이에 따라 가변적일 수도 있다.
또한, 본 발명의 실시예에서, PES/TS 패킷화부(1411)는 생성된 PES 패킷을 TS 패킷으로 패킷화할 수 있다. 여기서, TS 패킷은 기초 스트림을 전송 에러가 존재하는 채널로 전송하기 위하여 정해진 일정한 형식의 패킷을 의미하는 것으로, TS 패킷의 길이는 188바이트로 고정될 수 있다. 이에 따라, PES 패킷은 하나 또는 복수의 TS 패킷에 분산되어 포함될 수 있다. 또한, 본 발명의 실시예에서, 하나의 TS 패킷은 하나의 PES 패킷의 적어도 일부를 삽입할 수 있고, 하나의 TS 패킷에는 복수의 PES 패킷이 삽입되지 않을 수 있다. 이에 따라. 하나의 TS 패킷에는 하나의 억세스 유닛에 대한 정보가 포함될 뿐 복수의 억세스 유닛에 대한 정보가 포함되지 않을 수 있다
TS 패킷은 TS 패킷 헤더, TS 패킷 적응 필드 및 페이로드로 구성될 수 있다. 일 실시예에서, TS 패킷 헤더 및 TS 패킷 적응 필드는 TS 패킷 헤더부로 표현될 수도 있다.
페이로드에는 PES 패킷이 수납될 수 있고, TS 패킷 헤더에는 해당 TS 패킷을 나타내는 정보 및 페이로드에 저장된 PES 패킷과 관련있는 정보들이 포함될 수 있다. 예를 들어, TS 패킷 헤더에는 해당 TS 패킷을 식별하는 식별정보(Packet ID, PID). 해당 TS 패킷의 시작을 나타내는 싱크 정보(Sync byte), 해당 패킷에 에러가 발생되었는지 여부를 나타내는 정보(Transport error indicator), 페이로드에 포함된 데이터가 전체 데이터에서 어느 부분을 포함하는지 나타내는 정보(Payload unit start indicator), 해당 TS 패킷의 우선순위를 나타내는 정보(Transport priority indicator)를 포함할 수 있다. 그리고, TS 패킷 헤더의 길이는 4바이트가 될 수 있다.
또한, TS 패킷 적응 필드는 시간 정보와 같은 부가정보를 포함할 수 있다. 예를 들어, TS 패킷 적응 필드는 스트림 제공 장치(1000)와 복호화 장치의 시간을 맞추기 위한 시간 기준값을 나타내는 PCR(Program Clock Reference) 정보를 포함할 수 있다.
또한, TS 패킷 적응 필드는 모든 TS 패킷마다 반드시 제공될 필요는 없으며, 일부 TS 패킷은 TS 패킷 적응 필드를 포함하지 않을 수 있다. 이에 따라, PCR 정보 역시 모든 TS 패킷에 포함되는 것이 아니라, 소정의 주기에 따라 일부 TS 패킷에 포함될 수 있다.
TS 패킷 적응 필드 및 페이로드를 합친 길이는 184 바이트가 될 수 있다. 즉, TS 패킷은 4바이트의 TS 패킷 헤더 및 184 바이트의 TS 패킷 적응 필드 및/또는 페이로드로 구성될 수 있다.
페이로드는 PES 패킷을 수용할 수 있으나 수용되는 PES 패킷의 길이가 페이로드의 길이보다 짧을 수도 있다. 이 경우, TS 패킷의 길이는 188바이트로 고정되어 있으므로, PES 패킷을 페이로드에 수용하고 남는 부분에 대해서는 Null data를 삽입할 수 있다. 이와 같이, 페이로드의 남는 부분에 Null data를 삽입하는 것을 스터핑(stuffing)이라고 표현할 수 있다.
도 7의 예에서, 제1 기초 스트림(710)은 제1 억세스 유닛을 포함하고, 제2 기초 스트림(750)은 제2 억세스 유닛을 포함할 수 있다. PES/TS 패킷화부(1411)는 제1 기초 스트림(710)을 패키타이징하여 제1 PES 패킷(720)을 생성하고, 제2 기초 스트림(750)을 패키타이징하여 제2 PES 패킷(760)을 생성할 수 있다. 이 때, 제1 기초 스트림(710)이 제2 기초 스트림(720)보다 크기가 큼에 따라, 제1 PES 패킷(720) 역시 제2 PES 패킷(760)의 크기보다 클 수 있다. 도 7의 실시예에서, 제1 PES 패킷(720)은 PES 패킷 헤더의 길이가 6바이트이고, 페이로드의 크기가 522 바이트일 수 있으며, 제2 PES 패킷(760)은 PES 패킷 헤더의 길이가 6바이트이고, 페이로드의 크기가 156 바이트일 수 있다.
또한, PES/TS 패킷화부(1411)는 제1 PES 패킷(720)을 패킷타이징하여 제1 TS 패킷(731) 내지 제3 TS 패킷(733)을 생성할 수 있고, 제2 PES 패킷(760)을 패킷타이징하여 제4 TS 패킷(771) 을 생성할 수 있다. 그리고, 제1 TS 패킷(731) 내지 제4 TS 패킷(771) 중 적어도 하나의 패킷에는 TS 패킷 적응필드가 포함될 수 있으나, 도 7의 실시예에서는 설명의 편의를 위해 생략한다.
제1 PES 패킷(720)이 제1 억세스 유닛에 대한 데이터를 포함하고 있으므로, TS 패킷(731) 내지 제3 TS 패킷(733)의 페이로드에는 제1 억세스 유닛에 대한 데이터가 포함되고, 제4 TS 패킷(771)에는 제2 억세스 유닛에 대한 데이터가 포함될 수 있다. 또한, 제1 PES 패킷(720)의 페이로드의 길이가 522바이트이므로, 제1 TS 패킷(731) 및 제2 TS 패킷(732)의 페이로드의 크기는 184 바이트가 되지만, 제3 TS 패킷(733)의 페이로드 중 제1 PES 패킷(720)에 대한 데이터의 크기는 160 바이트가 될 수 있다. 이 경우, 페이로드의 나머지 24바이트는 Null data가 될 수 있다.
또한, 제2 PES패킷(760)의 페이로드의 크기가 156 바이트이므로, 제4 TS 패킷(771)의 페이로드 중 제2 PES 패킷(760)에 대한 데이터의 크기는 150 바이트가 될 수 있다. 이 경우, 페이로드의 나머지 28바이트는 Null data가 될 수 있다.
본 발명의 몇몇 실시예에서, 제1 PES/TS 패킷화부(1412)는 비디오 부호화부(1200)로부터 비디오 기초 스트림을 획득하고, 비디오 기초 스트림을 PES 패킷으로 패킷화하고, PES 패킷을 TS 패킷으로 패킷화할 수 있다. 여기서, 비디오 기초 스트림에 대한 TS 패킷을 비디오 TS 패킷으로 표현할 수 있다.
또한, 제2 PES/TS 패킷화부(1413)는 오디오 부호화부(1300)로부터 오디오 기초 스트림을 획득하고, 오디오 기초 스트림을 PES 패킷으로 패킷화하고, PES 패킷을 TS 패킷으로 패킷화할 수 있다. 여기서, 오디오 기초 스트림에 대한 TS 패킷을 오디오 TS 패킷으로 표현할 수 있다.
또한, 도 6에는 표현하지 않았지만, PES/TS 패킷화부(1411)는 제3 PES/TS 패킷화부를 포함할 수 있고, 제3 PES/TS 패킷화부는 전술한 메타 데이터 기초 스트림을 PES 패킷으로 패킷화하고, PES 패킷을 TS 패킷으로 패킷화할 수 있다. 여기서, 메타 데이터 기초 스트림에 대한 TS 패킷을 메타 데이터 TS 패킷으로 표현할 수 있다.
또한, 제1 다중화부(1414)는 제1 스트림 생성부(1411)에서 생성된 TS패킷을 다중화하여 출력 스트림을 생성할 수 있다. 예를 들어, 제1 다중화부(1414)는 제1 PES/TS 패킷화부(1412)로부터의 비디오 TS 패킷 및 제2 PES/TS 패킷화부(1413)로부터의 오디오 TS 패킷을 다중화하여 출력 스트림을 생성할 수 있다. 또한, 제1 다중화부(1414)는 비디오 TS 패킷 및 오디오 TS 패킷 뿐만 아니라 메타 데이터 TS 패킷을 함께 다중화하여 출력 스트림을 생성할 수 있다.
제1 다중화부(1414)는 생성된 출력 스트림을 출력부(1500)에 제공할 수 있다.
또한, 제1 다중화부(1414)는 소정의 비트레이트에 따라 TS 패킷들을 다중화할 수 있다. 예를 들어, 비트레이트가 11Mbps인 경우, 제1 다중화부(1414)는 초당 11*10^6 비트의 출력 스트림을 생성할 수 있다. 일 실시예에서, 제어부(1600)는 제1 다중화부(1414)의 출력 스트림을 설정할 수 있다. 일 예로, 제어부(1600)는 스트림 제공장치(1600)에서 제공되는 출력 스트림의 비트량이 소정 기준보다 많거나 적을 경우, 복호화 장치의 버퍼에 오버플로 또는 언더플로가 발생되지 않도록 제1 다중화부(1414)의 비트레이트, 즉, 출력 스트림의 비트레이트를 조정할 수 있다. 또한, 제어부(1600)는 도 3에서 전술한 가상의 버퍼를 이용하여 출력 스트림의 비트레이트를 제어할 수 있다.
도 8은 본 발명의 실시예에 따른 제2 스트림 생성부를 나타낸 블록도이다.
도 8을 참조하면, 제2 스트림 생성부(1420)는 전처리부(1450), 제2a 스트림 생성부(1430) 및 제2b 스트림 생성부(1440)를 포함할 수 있다.
전처리부(1450)는 제2a 스트림 생성부(1430) 및 제2b 스트림 생성부(1440)에서 출력 스트림을 생성하기 위해 필요한 데이터를 제공할 수 있다.
보다 구체적으로, ATSC 3.0에서는 방송 서비스를 위한 전송 프로토콜로서, 방송망 전송을 위해서는 UDP/IP 기반의 ROUTE(Real-Time Object Delivery over Unidirectional Transport)와 MMTP(MPEG Media Transport Protocol)에 대해 정의하고 있고, 통신망 전송을 위해서는 TCP/IP 기반의 HTTP 프로토콜을 이용하도록 하고 있다.
본 발명의 스트림 제공장치(1000)는 이러한 ATSC 3.0의 방송 서비스를 제공하기 위하여 ATSC 3.0 스트림(이하 A3 스트림이라 한다)을 제공하고, 보다 자세하게는, 제2a 스트림 생성부(1430)에서 ROUTE 스트림을 제공하고, 제2b 스트림 생성부(1440)에서 MMTP 스트림을 제공할 수 있다.
또한, 제2a 스트림 생성부(1430)에서는 DASH(Dynamic Adaptive Streaming over HTTP) 세그먼트를 이용하여 ROUTE 스트림을 생성하고, 제2b 스트림 생성부(1440)에서는 MPU(Media Processing Unit)를 이용하여 MMTP 스트림을 생성할 수 있다. 이와 같이, 제2 스트림 생성부(1420)에서 A3 스트림을 원활하게 생성하도록 전처리부(1450)에서는 DASH 세그먼트 및/또는 MPU를 제공할 수 있다.
본 발명의 실시예에서, DASH 세그먼트 및 MPU는 ISO 기반 미디어 파일 포맷(ISO based media file format;ISOBMFF)(이하, ISOBMFF 파일)을 기초로 생성될 수 있다. 여기서, ISO 기반 미디어 파일 포맷은 비디오나 오디오와 같은 시간 기반 멀티미디어 파일(time-based multimedia files)을 위한 데이터 구조를 정의하는 포맷을 나타낼 수 있다. 본 발명의 실시예에서, 전처리부(1450)는 비디오 복호화부(1200)로부터의 비디오 기초 스트림, 오디오 복호화부(1300)로부터의 오디오 기초 스트림 및/또는 메타 데이터 복호화부로부터의 메타 데이터 기초 스트림을 ISOBMFF 파일로 생성할 수 있다. 일 예로, ISOBMFF 파일을 기반으로 MP4 파일이 생성될 수 있다.
본 발명의 실시예에서, ISOBMFF 파일은 파일 타입(file type: 'ftyp') 박스, 무비(movie: 'moov') 박스, 무비 프래그먼트(movie fragment: 'moof') 박스 및 미디어 데이터(mdat) 박스를 포함할 수 있다. 파일 타입(ftyp) 박스는 파일 타입, 파일 버전, 및 호환성 정보를 포함할 수 있으며, 무비(moov) 박스는 미디어 데이터를 설명하는 메타데이터를 포함할 수 있고, 미디어 데이터(mdat) 박스는 실제의 미디어 데이터(비디오 기초 스트림, 오디오 기초 스트림)를 포함하며, 무비 프래그먼트(moof) 박스는 대응하는 미디어 데이터(mdat) 정보에 대한 메타데이터를 포함할 수 있다. 일 예로, 무비 프래그먼트(moof) 박스는 대응하는 미디어 데이터의 복호화 시간에 대한 정보(BMDT, BaseMediaDecodeTime)를 포함할 수 있다. 또한, 무비 프래그먼트(moof) 박스는 대응하는 미디어 데이터의 길이에 대한 정보 및 대응하는 미디어 데이터의 재생 시간에 대한 정보를 포함하는 트랙 프래그먼트 런(trun, track fragment run)을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 전처리부(1450)는 제2a 스트림 생성부(1430)에 제공하기 위한 DASH 세그먼트를 생성할 수 있다.
일 실시예에서, 전처리부(1450)는 하나 혹은 그 이상의 억세스 유닛들에 대한 부호화된 미디어 데이터를 포함하는 미디어 세그먼트들을 DASH 세그먼트로 생성할 있다. 구체적으로, 일 실시예에서, DASH 세그먼트들은 초기화 세그먼트(Initialization Segment) 와 하나 혹은 그 이상의 미디어 세그먼트들로 구성될 수 있다. 초기화 세그먼트는 미디어 세그먼트들에 포함된 미디어 데이터를 재생하기 위하여 필요한 정보로서, 파일 타입(ftyp) 박스와 무비(moov) 박스를 포함할 수 있다.
미디어 세그먼트들은 실제 미디어 데이터를 담은 미디어 데이터(mdat) 박스를 포함하고 있으며, 미디어 데이터(mdat) 박스에 관련되는 하나 이상의 완전한 (whole self-contained) 무비 프래그먼트(moof) 박스를 포함할 수 있다. 또한 미디어 세그먼트는 세그먼트 타입(segment type: 'styp') 박스를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 전처리부(1450)는 제2b 스트림 생성부(1440)에 제공하기 위한 MPU를 생성할 수 있다. 여기서, MPU는 ISOBMFF을 따르는 물리적 파일로, 독립적인 재생이 가능할 수 있다. 이에 따라, MPU에는 복호화에 필요한 초기화 정보 및 메타데이터를 포함할 수 있다.
일 실시예에서, MPU는 ISOBMFF에 따라, 파일 타입(ftyp) 박스, 무비(moov) 박스, 미디어 데이터(mdat) 박스 및 미디어 데이터(mdat) 박스와 관련된 무비 프래그먼트(moof) 박스를 포함할 수 있다.
또한, 제2a 스트림 생성부(1430)는 전처리부(1450)로부터 획득한 DASH 세그먼트를 이용하여 ROUTE 패킷을 생성하고, ROUTE 패킷을 기초로 ROUTE 스트림을 생성할 수 있다. 제2b 생성부(1440)는 전처리부(1450)로부터 획득한 MPU를 이용하여 MMTP 패킷을 생성하고, MMTP 패킷을 기초로 MMTP 스트림을 생성할 수 있다.
도 9는 본 발명의 실시예에 따른 제2a 스트림 생성부를 나타낸 블록도이다.
도 9를 참조하면, 제2a 스트림 생성부(1430)는 ROUTE 패킷화부(1431) 및 제2a 다중화부(1434)를 포함할 수 있다.
ROUTE 패킷화부(1431)는 전처리부(1450)로부터 획득한 비디오 기초 스트림 기반의 DASH 세그먼트 및 오디오 기초 스트림 기반의 DASH 세그먼트를 ROUTE 패킷으로 패킷화할 수 있다.
또한, 제2a 다중화부(1434)는 ROUTE 패킷화부(1431)에서 생성된 ROUTE 패킷을 다중화하여 출력 스트림을 생성할 수 있다. 여기서, 출력 패킷은 ROUTE 패킷을 의미할 수 있고, 출력 스트림은 ROUTE 스트림을 의미할 수 있다.
구체적으로, ROUTE 패킷화부(1431)는 제1 ROUTE 패킷화부(1432) 및 제2 ROUTE 패킷화부(1433)를 포함할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니고, 구성예에 따라, 제1 ROUTE 패킷화부(1432) 및 제2 ROUTE 패킷화부(1433)는 구분되지 않고 하나의 ROUTE 패킷화부로 구성될 수도 있다.
일 실시예에서, ROUTE 패킷은 LCT(Layered Coding Transport)로 표현될 수 있다. ROUTE 패킷은 ROUTE 패킷 헤더 및 페이로드로 구성될 수 있다. 페이로드에는 기초 스트림이 수납될 수 있고, ROUTE 패킷 헤더에는 해당 ROUTE 패킷을 식별하는 식별정보 및 페이로드에 포함된 데이터와 관련된 정보들이 포함될 수 있다.
일 예로, ROUTE 패킷 헤더에는 페이로드에 포함된 억세스 유닛이 복호화 장치에서 복호화되는 시간에 대한 정보 및 페이로드에 포함된 억세스 유닛이 복호화 장치에서 재생되는 시간에 대한 정보를 포함할 수 있다.
또한, 경우에 따라, 페이로드에는 기초 스트림에 대응되는 정보가 포함될 수도 있고, 기초 스트림에 대응되는 정보 외의 다른 정보가 포함될 수도 있고, 상기 다른 정보만이 포함될 수도 있다. 예를 들어, 제1 ROUTE 패킷의 페이로드에는 ISOBMFF의 파일 타입(ftyp) 박스 및 무비(moov) 박스에 대한 데이터가 포함될 수 있고, 제2 ROUTE 패킷의 페이로드에는 무비 프래그먼트(moof) 박스 및 미디어 데이터(mdat) 박스에 대한 데이터가 포함될 수 있고, 제3 ROUTE 패킷의 페이로드에는 미디어 데이터(mdat) 박스에 대한 데이터가 포함될 수 있다. 또한, ROUTE 패킷의 길이는 미리 정해질 수도 있고, 가변적일 수도 있다.
본 발명의 몇몇 실시예에서, 제1 ROUTE 패킷화부(1432)는 전처리부(1450)로부터 비디오 기초 스트림에 대한 DASH 세그먼트를 획득하고, 상기 DASH 세그먼트를 기초로 ROUTE 패킷을 생성할 수 있다.
또한, 제2 ROUTE 패킷화부(1433)는 전처리부(1450)로부터 오디오 기초 스트림에 대한 DASH 세그먼트를 획득하고, 상기 DASH 세그먼트를 기초로 ROUTE 패킷을 생성할 수 있다.
또한, 제2a 다중화부(1434)는 제1 ROUTE 패킷화부(1432) 및 제2 ROUTE 패킷화부(1443)에서 생성된 ROUTE 패킷들을 다중화하여 출력 스트림을 생성하고, 생성된 출력 스트림을 출력부(1500)에 제공할 수 있다.
또한, 제2a 다중화부(1434)는 소정의 비트레이트에 따라 ROUTE 패킷들을 다중화할 수 있다.
또한, 제어부(1600)는 스트림 제공장치(1600)에서 제공되는 출력 스트림의 비트량이 소정 기준보다 많거나 적을 경우, 복호화 장치의 버퍼에 오버플로 또는 언더플로가 발생되지 않도록 제2a 다중화부(1434)의 비트레이트, 즉, 출력 스트림의 비트레이트를 조정할 수 있다.
도 10은 본 발명의 실시예에 따른 제2b 스트림 생성부를 나타낸 블록도이다.
도 10을 참조하면, 제2b 스트림 생성부(1440)는 MMTP 패킷화부(1441) 및 제2b 다중화부(1444)를 포함할 수 있다.
MMTP 패킷화부(1441)는 전처리부(1450)로부터 획득한 비디오 기초 스트림 기반의 MPU 및 오디오 기초 스트림 기반의 MPU를 MMTP 패킷으로 패킷화할 수 있다.
또한, 제2b 다중화부(1444)는 MMTP 패킷화부(1441)에서 생성된 MMTP 패킷을 다중화하여 출력 스트림을 생성할 수 있다. 여기서, 출력 패킷은 MMTP 패킷을 의미할 수 있고, 출력 스트림은 MMTP 스트림을 의미할 수 있다.
구체적으로, MMTP 패킷화부(1441)는 제1 MMTP 패킷화부(1442) 및 제2 MMTP 패킷화부(1443)를 포함할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니고, 구성예에 따라, 제1 MMTP 패킷화부(1442) 및 제2 MMTP 패킷화부(1443)는 구분되지 않고 하나의 MMTP 패킷화부로 구성될 수도 있다.
일 실시예에서, MMTP 패킷은 MMTP 패킷 헤더 및 페이로드로 구성될 수 있다. 페이로드에는 기초 스트림이 수납될 수 있고, MMTP 패킷 헤더에는 해당 MMTP 패킷을 식별하는 식별정보 및 페이로드에 포함된 데이터와 관련된 정보들이 포함될 수 있다.
일 예로, MMTP 패킷 헤더에는 페이로드에 포함된 억세스 유닛이 복호화 장치에서 순차적으로 정렬할 수 있는 패킷 시퀀스 번호 등에 대한 정보를 포함할 수 있다.
또한, 경우에 따라, 페이로드에는 기초 스트림에 대응되는 정보가 포함될 수도 있고, 기초 스트림에 대응되는 정보 외의 다른 정보가 포함될 수도 있고, 상기 다른 정보만이 포함될 수도 있다. 예를 들어, 제1 MMTP 패킷의 페이로드에는 ISOBMFF의 파일 타입(ftyp) 박스 및 무비(moov) 박스에 대한 데이터가 포함될 수 있고, 제2 MMTP 패킷의 페이로드에는 무비 프래그먼트(moof) 박스가 포함될 수 있고, 제3 MMTP 패킷의 페이로드에는 미디어 데이터(mdat) 박스에 대한 데이터가 포함될 수 있다. 또한, MMTP 패킷의 길이는 미리 정해질 수도 있고, 가변적일 수도 있다. 예를 들어, MMTP 패킷의 길이는 20바이트 내지 1500바이트로 생성될 수 있다.
본 발명의 몇몇 실시예에서, 제1 MMTP 패킷화부(1442)는 전처리부(1450)로부터 비디오 기초 스트림에 대한 MPU를 획득하고, 상기 MPU를 기초로 MMTP 패킷을 생성할 수 있다.
또한, 제2 MMTP 패킷화부(1443)는 전처리부(1450)로부터 오디오 기초 스트림에 대한 MPU를 획득하고, 상기 MPU를 기초로 MMTP 패킷을 생성할 수 있다.
또한, 제2b 다중화부(1444)는 제1 MMTP 패킷화부(1442) 및 제2 MMTP 패킷화부(1443)에서 생성된 MMTP 패킷들을 다중화하여 출력 스트림을 생성하고, 출력 스트림을 출력부(1500)에 제공할 수 있다.
또한, 제2a 다중화부(1434)는 소정의 비트레이트에 따라 MMTP 패킷들을 다중화할 수 있다.
또한, 제어부(1600)는 스트림 제공장치(1600)에서 제공되는 출력 스트림의 비트량이 소정 기준보다 많거나 적을 경우, 복호화 장치의 버퍼에 오버플로 또는 언더플로가 발생되지 않도록 제2b 다중화부(1444)의 비트레이트, 즉, 출력 스트림의 비트레이트를 조정할 수 있다.
2. 버퍼링 정보를 포함하는 스트림 정보 제공 장치 및 방법
2.1 일반
본 출원의 일 실시 예에 따른 스트림 정보 제공 장치 및 방법은 목차 1. 스트림 제공 장치에서 기재된 내용과 같이 출력 스트림을 생성 및/또는 제공할 수 있다. 또한, 본 출원의 일 실시 예에 따른 스트림 정보 제공 장치 및 방법은 목차 1. 스트림 제공 장치에서 기재된 내용과 더불어, 버퍼링 정보를 포함하는 스트림 정보를 생성 및/또는 제공할 수 있다.
도 11은 일 실시 예에 따른 스트림 생성부를 나타낸 블록도이다. 도 11을 참조하면, 본 출원의 일 실시 예에 따른 스트림 정보 제공 장치는 비디오 부호화부(1200), 오디오 부호화부(1300), 및 스트림 생성부(1500) 중 적어도 어느 하나를 포함할 수 있고, 상기 스트림 생성부(1500)는 전처리부(1510), 버퍼링 정보 처리부(1530), 및 패킷화부(1550) 중 적어도 어느 하나를 포함할 수 있다.
상기 비디오 부호화부(1200) 및 상기 오디오 부호화부(1300)는 목차 1. 스트림 제공 장치에서 설명된 내용과 실질적으로 동일하되, 상기 버퍼링 정보 처리부(1530)를 포함함에 따라 부분적으로 상이하거나 추가된 내용이 있을 수 있다. 또한, 상기 스트림 생성부(1500)는 목차 1. 스트림 제공 장치에 포함된 상기 스트림 생성부(1400)에서 설명된 내용과 실질적으로 동일하되, 상기 버퍼링 정보 처리부(1530)를 포함함에 따라 부분적으로 상이하거나 추가된 내용이 있을 수 있다. 이는 상기 전처리부(1510) 및 상기 패킷화부(1550) 또한 마찬가지이다. 따라서, 상기 버퍼링 정보 처리부(1530)를 포함함에 따라 목차 1. 스트림 제공 장치에서 설명된 내용과 부분적으로 상이하거나 추가된 내용에 대해서는, 상기 버퍼링 정보 처리부(1530)를 구체적으로 설명하면서 다루고자 한다.
이하에서는, 설명의 편의를 위하여 도 11에 나타난 스트림 제공 장치(1500)의 구성 중 설명이 요구되는 부분을 제외한 구성들을 생략하고, 적어도 일부의 구성을 중심으로 설명하고자 한다. 그러나, 이는 설명의 편의를 위한 것일 뿐, 상기 출력스트림은 상기 스트림 제공 장치로부터 복수의 장치들을 거쳐 복호화 장치에 도달하는 것은 자명한 사실이다.
도 12는 일 실시 예에 따른 스트림 생성장치를 나타낸 블록도이다. 도 12를 참조하면, 본 출원의 일 실시 예에 따른 스트림 정보 제공 장치 및 방법은 부호화부(1600), 버퍼링 정보 처리부(1700), 및 패킷화부(1800) 중 적어도 어느 하나를 포함할 수 있다.
도 11을 참조하면, 상기 부호화부(1600)는 비디오 부호화부(1200) 및 오디오 부호화부(1300) 중 적어도 어느 하나를 포함할 수 있고, 상기 비디오 부호화부(1200) 및 오디오 부호화부(1300)에 대한 설명은 앞서 설명된 내용과 실질적으로 동일하거나 부분적으로 상이할 수 있다. 또한, 상기 패킷화부(1800)는 목차 1. 스트림 제공 장치에서 설명된 PET/TS 패킷화부(1411), ROUTE 패킷화부(1431), 및 MMTP 패킷화부(1441)에 기재된 내용과 실질적으로 동일하되, 상기 버퍼링 정보 처리부(1700)를 포함함에 따라 부분적으로 상이하거나 추가된 내용이 있을 수 있다.
또한, 본 발명의 실시예에 따른 버퍼링 정보를 포함하는 스트림 정보 제공 장치 및 방법은 ATSC(Advanced Television Systems Committee standards) 규격에 준거한 데이터 전송 이외에, DVB(Digital Video Broadcasting) 규격이나 ISDB(Integrated Services Digital Broadcasting) 규격 등에 준거한 데이터 전송, 기타의 데이터 전송에 적용할 수 있다. 이하에서는, 설명의 편의를 위하여, ATSC 3.0 기반 방송 시스템을 일 예로서 설명하기로 한다. 그러나, 본 발명은 ATSC 3.0에 한정되는 것은 아니며 다른 시스템들에도 적용 가능하다.
상기 버퍼링 정보를 포함하는 스트림 제공 장치 및 방법을 설명하기 위해, 이하에서는 상기 버퍼링 정보 처리부(1700)에 대한 구체적인 설명을 하고자 한다.
2.2 버퍼링 정보 처리부
2.2.1 구성
도 13은 일 실시 예에 따른 버퍼링 정보 처리부(1700)를 나타낸 블록도이다. 상기 버퍼링 정보 처리부(1700)는 버퍼링 정보 생성부(1710) 및 버퍼링 정보 출력부(1750) 중 적어도 어느 하나를 포함할 수 있고, 상기 버퍼링 정보 생성부(1710)는 제1 버퍼링 정보 생성부(1711) 및 제2 버퍼링 정보 생성부(1715) 중 적어도 어느 하나를 포함할 수 있다.
또한, 상기 버퍼링 정보 처리부(1700)는 상기 부호화부(1600)로부터 획득된 정보를 기초로 버퍼링 정보를 생성하는 상기 버퍼링 정보 생성부(1710)를 포함할 수 있고, 상기 버퍼링 정보 생성부(1710)로부터 생성된 정보를 기초로 버퍼링 정보를 출력하는 상기 버퍼링 정보 출력부(1750)를 포함할 수 있다.
상기 버퍼링 정보 처리부(1700)는 도 3 및 목차 1. 스트림 제공 장치에 기재된 상기 제어부(1600)에 의해 제어될 수 있다. 또한, 상기 버퍼링 정보 생성부(1710) 및 상기 버퍼링 정보 출력부(1750) 중 적어도 어느 하나는 상기 제어부(1600)에 의해 제어될 수 있다. 또한, 상기 제1 버퍼링 정보 생성부(1711) 및 상기 제2 버퍼링 정보 생성부(1715) 중 적어도 어느 하나는 상기 제어부(1600)에 의해 제어될 수 있다.
이하에서는 상기 버퍼링 정보 처리부(1700)의 구성에 대해 보다 상세히 설명하고자 한다.
도 1 내지 도 13를 참조하면, 상기 버퍼링 정보 생성부(1710)는 상기 부호화부(1600)에서 획득된 데이터로부터 상기 버퍼링 정보를 생성할 수 있다.
상기 버퍼링 정보 생성부(1700)는 제1 버퍼링 정보 생성부(1711) 및 제2 버퍼링 정보 생성부(1715) 중 적어도 어느 하나를 포함할 수 있다. 상기 제1 버퍼링 정보 생성부(1711) 및 상기 제2 버퍼링 정보 생성부(1711)는 상기 부호화부(1600)에서 획득된 데이터로부터 상기 버퍼링 정보를 각각 동시에 또는 이시에 생성할 수 있다. 상기 부호화부(1600)에서 획득된 데이터에 상이한 형식의 데이터가 포함된 경우, 상기 제1 버퍼링 정보 생성부(1711) 및 상기 제2 버퍼링 정보 생성부(1715)는 각각 상이한 형식의 데이터로부터 상기 버퍼링 정보를 각각 생성할 수 있다.
일 예로, 상기 버퍼링 정보 생성부(1700)는 상기 부호화부(1600)에서 획득된 데이터의 종류에 따라 상기 버퍼링 정보를 각각 생성할 수 있다. 또한, 상기 부호화부(1600)가 오디오 타입의 데이터를 제공하는 경우 상기 제1 버퍼링 정보 생성부(1711)가 이에 대응되는 제1 버퍼링 정보를 생성할 수 있고, 상기 부호화부(1600)가 비디오 타입의 데이터를 제공하는 경우 상기 제2 버퍼링 정보 생성부(1715)가 이에 대응되는 제2 버퍼링 정보를 생성할 수 있다. 다만, 상기 부호화부(1600)가 제공하는 데이터는 이에 한정되지 아니하며, 상기 스트림 제공 장치가 제공할 수 있는 데이터라면 제한되지 않는다.
도 1 내지 도 13을 참조하면, 상기 버퍼링 정보 출력부(1750)은 상기 버퍼링 정보 생성부(1710)에서 생성된 상기 버퍼링 정보를 출력할 수 있다. 상기 버퍼링 정보 출력부(1750)는 상기 버퍼링 정보를 상기 패킷화부(1800)에서 패킷되는 형식에 대응되게 출력할 수 있다. 일 예로, 상기 패킷화부(1800)는 목차 1. 스트림 제공 장치에 기재된 내용과 같이, PET/TS 패킷화부, ROUTE 패킷화부, 또는 MMTP 패킷화부에 해당될 수 있고, 상기 버퍼링 정보 출력부(1750)는 PET/TS 패킷화부, ROUTE 패킷화부, 또는 MMTP 패킷화부에서 적용 가능한 버퍼링 정보를 출력할 수 있다. 다만, 상기 버퍼링 정보 출력부(1750)가 출력하는 데이터 형식은 이에 한정되지 아니하며, 상기 스트림 제공 장치가 패킷하여 제공할 수 있는 데이터 형식이라면 제한되지 않는다.
이하에서는 상기 버퍼링 정보 처리부(1700)에서 처리하는 대상인 버퍼링 정보에 대해 보다 상세히 설명하고자 한다.
2.2.2 버퍼링 정보
도 14 내지 도 18은 일 실시 예에 따른 버퍼링 정보를 나타낸 블록도이다. 도 14 내지 도 18을 참조하여, 상기 버퍼링 정보에 관하여 상세히 설명하고자 한다.
상기 버퍼링 정보는 상기 부호화부(1600)에서 부호화 대상이 되는 데이터 및/또는 부호화된 데이터로부터 획득될 수 있다. 상기 버퍼링 정보는 상기 부호화부(1600)가 억세스 유닛(Access Unit, AU)을 기본 단위로 부호화가 수행됨에 따라 획득될 수 있다. 또한, 상기 버퍼링 정보는 상기 부호화부(1600)가 하나의 억세스 유닛이 아닌 복수의 억세스 유닛을 기본단위로 부호화가 수행됨에 따라 획득될 수 있다. 상기 복수의 억세스 유닛은 GOP(Group Of Pictures)로 표현될 수 있다.
도 14는 일 실시 예에 따른 버퍼링 정보에 포함된 타임스탬프(TS, Time Stamp)를 나타내는 도면이다. 도 14 (a)는 복수의 억세스 유닛을 기초로 포함된 타임 스탬프를 나타내는 도면이고, 도 14 (b)는 GOP를 기초로 포함된 타임 스탬프를 나타내는 도면이다. 상기 복수의 억세스 유닛 또는 GOP의 길이는 미리 정해질 수도 있고, 기초 스트림의 길이에 따라 가변적일 수도 있다. 또한, 상기 복수의 억세스 유닛 또는 GOP는 예시적인 기재로서 제한되지 아니하며, 상기 스트림 제공 장치에 의해 생성되는 스트림의 단위는 복수의 GOP를 포함할 수 있다.
도 14를 참조하면, 상기 버퍼링 정보는 어라이벌 타임 스탬프(Arrival Time Stamp, ATS), 디코딩 타임 스탬프(Decoding Time Stamp, DTS) 및 프리젠테이션 타임 스탬프(Presentation Time Stamp, PTS) 중 적어도 어느 하나가 포함될 수 있다. 상기 어라이벌 타임 스탬프는 복호화 장치가 상기 복수의 억세스 유닛 또는 GOP를 캡쳐한 시각 또는 시점에 대한 정보를 나타낸다. 또한, 상기 디코딩 타임 스탬프는 복호화 장치에 의해 캡쳐된 상기 복수의 억세스 유닛 또는 GOP가 복호화 장치에서 복호화되는 시간 정보를 나타낸다. 또한, 상기 프리젠테이션 타임 스탬프는 상기 복수의 억세스 유닛 또는 GOP가 복호화 장치에서 재생되는 시간 정보를 나타낼 수 있다. 특히, 상기 버퍼링 정보는 상기 어라이벌 타임 스탬프와 상기 디코딩 타임 스탬프 사이의 시간 정보를 포함할 수 있다. 상기 어라비얼 타임 스탬프와 상기 디코딩 타임 스탬프 사이의 시간 정보는 버퍼링 타임으로 나타낼 수 있다.
또한, 도 14를 참조하면, 상기 버퍼링 정보는 어라이벌 타임 스탬프를 기초로 첫번째 디코딩 타임 스탬프 및 프리젠테이션 타임 스탬프에 대한 정보에 대해서만 우선적으로 포함될 수 있고, 포함된 정보를 기초로 그 이후의 디코딩 타임 스탬프 및 프리젠테이션 타임 스탬프는 프레임 속도(frame rate)에 따라 제공될 수 있다. 이에 따라, 설명의 편의상, 상기 버퍼링 정보는 어라이벌 타임 스탬프, 첫번째 디코딩 타임 스탬프 및 프리젠테이션 타임 스탬프에 대한 정보를 기초로 설명되고, 첫번째 이후의 디코딩 타임 스탬프 및 프리젠테이션 타임 스탬프에 대해서는 설명을 생략하고자 한다.
상기 버퍼링 정보는 상기 부호화부(1600)가 부호화를 수행됨에 따라 획득될 수 있으나, 종래에는 상기 부호화부(1600)에 부호화 데이터에 버퍼링 정보가 포함되지 않는 경우가 있어 별도로 버퍼링 정보를 부호화 데이터에 처리해야 할 필요가 있다. 이를 통해 상기 패킷화부(1800)는 버퍼링 정보가 포함된 부호화 데이터를 기초로 출력 스트림을 생성하여, 생성된 출력 스트림은 복호화 장치에 전송될 수 있다.
일 예로, 상기 부호화부(1600)가 GOP에 대하여 DASH 세그먼트 또는 MPU 프라그먼트(fragment)를 생성하는 스트림 제공 장치의 경우, 종래에는 상기 DASH 세그먼트 또는 MPU 프라그먼트가 타임 스탬프(Arrival Time Stamp, ATS), 디코딩 타임 스탬프(Decoding Time Stamp, DTS) 및 프리젠테이션 타임 스탬프(Presentation Time Stamp, PTS) 등과 같은 정보가 포함되지 않았다. 따라서, 이 경우 상기 패킷화부(1800)는 버퍼링 정보가 포함되지 않은 상기 DASH 세그먼트 또는 MPU 프라그먼트를 패킷화하여 출력 스트림을 생성하여, 생성된 출력 스트림은 복호화 장치에 전송될 수 있다.
도 15 및 도 16은 버퍼링 정보가 포함되지 않은 패킷 데이터의 전송을 나타내는 도면이다. 도 15는 버퍼링 정보가 포함되지 않은 각각의 GOP가 전송되는 시간을 나타내는 도면이고, 도 16은 도 15의 GOP가 전송되는 속도를 나타내는 도면이다.
도 15를 참조하면, 부호화 데이터는 제1 GOP 및 제2 GOP를 포함할 수 있고, 상기 제1 GOP는 제1 DTS(D1) 및 제1 PTS(P1) 중 적어도 어느 하나와 포함하는 제1 버퍼링 정보를 대응될 수 있고, 상기 제2 GOP는 제2 DTS(D2) 및 제2 PTS(P2) 중 적어도 어느 하나를 포함하는 제2 버퍼링 정보를 대응될 수 있다. 이 때, 상기 제1 GOP와 상기 제2 GOP의 길이는 미리 정해질 수도 있고, 기초 스트림의 길이에 따라 가변적일 수도 있다. 따라서, 상기 제1 버퍼링 정보와 상기 제2 버퍼링 정보는 상기 제1 GOP와 상기 제2 GOP의 길이에 따라 서로 동일하거나 상이할 수 있다. 일 예로, 도 14 및 도 15를 참조하면, 상기 제1 버퍼링 정보는 제1 어라이벌 타임 스탬프(A1)의 시점과 제1 디코딩 스탬프(D1)의 시점 사이의 시간 구간에 의해 결정되는 정보일 수 있고, 상기 제2 버퍼링 정보는 상기 제2 어라이벌 타임 스탬프(A2)의 시점과 제2 디코딩 스탬프(D2)의 시점 사이의 시간 구간에 의해 결정되는 정보일 수 있다. 다만, 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보는 설명을 위해 도 15 및 도 16에 기재하여 설명된 것이며, 버퍼링 정보가 포함되지 않은 패킷들은 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보가 포함되지 않는다.
또한, 도 15를 참조하면, 상기 제1 GOP가 복호화 장치에서 전송이 수행되는 시간을 제1 전송 시간 구간(T1)로 나타낼 수 있고, 상기 제2 GOP가 복호화 장치에서 전송이 수행되는 시간을 제2 전송 시간 구간(T2)로 나타낼 수 있다. 다만, 도 15 및 도 16과 같이, 버퍼링 정보가 포함되지 않은 부호화 데이터가 패킷되어 전송되는 경우, 제1 전송 시간 구간(T1)과 상기 제2 전송 시간 구간(T2)는 동일하도록 송부될 수 있되, 그 시간 구간은 버퍼링 정보와 관련 없이 미리 정해진 시간일 수 있다.
도 16을 참조하면, 상기 제1 GOP가 복호화 장치에서 전송되는 속도를 제1 비트레이트(b1), 상기 제2 GOP가 복호화 장치에서 전송되는 속도를 제2 비트레이트(b2)라고 나타낼 수 있다. 이 때, 상기 제1 GOP는 상기 제2 GOP보다 길이 및/또는 용량이 크다고 할 때, 도 15 및 도 16을 참조하면, 상기 제1 전송 시간 구간(T1) 및 상기 제2 전송 시간 구간(T2)이 T로 서로 동일하도록, 상기 제1 GOP 및 상기 제2 GOP를 전송하기 위해서는, 상기 제1 비트레이트(b1)이 상기 제2 비트레이트(b2)에 비해 크게 나타나게 된다.
따라서, 도 15 및 도 16을 참조하면, 상기 제1 전송 시간 구간(T1) 및 상기 제2 전송 시간 구간(T2)이 T로 동일하도록 결정되는 경우, 상기 제1 GOP와 상기 제2 GOP의 용량, 크기, 길이 등의 고려없이 동일 시간에 전송되어야 하며, 이로 인해 상기 제1 GOP와 상기 제2 GOP의 전송 속도는 용량, 크기, 길이 등을 고려하여 서로 상이해질 수 있다.
일 예로, 상기 제1 GOP는 상기 제2 GOP보다 길이 및/또는 용량이 크다고 할 ‹š, 상기 제1 GOP의 전송 시간 구간은 미리 정해진 시간(T)보다 더 긴 시간이 필요할 수 있고, 상기 제2 GOP의 전송 시간 구간은 미리 정해진 시간(T)보다 더 짧은 시간이 필요할 수 있다. 이로 인해, 상기 제1 GOP는 미리 정해진 시간(T) 동안 전송되기 위해 더 빠른 속도로 전송되어야 할 수 있고, 상기 제2 GOP는 미리 정해진 시간(T) 동안 전송되기 위해 더 느린 속도로 전송되어야 할 수 있다.
따라서, 상기 제1 GOP 및 상기 제2 GOP의 제1 버퍼링 정보 및 제2 버퍼링 정보를 포함하지 않은 채 복호화 장치로 전송되는 경우, 상기 제1 비트레이트(b1) 및 상기 제2 비트레이트(b2)가 동일하게 유지되기 어려워, 출력 스트림의 전송이 불안정해질 수 있다. 또한, 상기 제1 GOP와 상기 제2 GOP는 용량, 크기, 길이 등을 고려한 결과, 상기 제1 비트레이트(b1) 및 상기 제2 비트레이트(b2) 중 적어도 하나가 0에 가까운 속도로 전송되는 경우, 상기 복호화 장치는 해당 GOP를 빈 데이터(Null-data)로 인식할 수 있어, 출력 스트림의 전송 시 오류가 발생될 수 있다.
도 17 및 도 18은 버퍼링 정보가 포함된 부호화 데이터의 전송을 나타내는 도면이다. 도 17은 버퍼링 정보가 포함된 각각의 GOP가 전송되는 시간을 나타내는 도면이고, 도 18은 도 17의 GOP가 전송되는 속도를 나타내는 도면이다. 도 17을 참조하면, 부호화 데이터는 제1 GOP 및 제2 GOP를 포함할 수 있고, 상기 제1 GOP는 제1 어라이벌 타임 스탬프(A1), 제1 디코딩 타임 스탬프(D1) 및 제1 출력 타임 스탬프(P1) 중 적어도 어느 하나와 포함하는 제1 버퍼링 정보를 포함할 수 있고, 상기 제2 GOP는 제2 어라이벌 타임 스탬프(A2), 제2 디코딩 타임 스탬프(D2), 및 제2 출력 타임 스탬프(P2) 중 적어도 어느 하나를 포함하는 제2 버퍼링 정보를 포함할 수 있다. 이 때, 상기 제1 GOP와 상기 제2 GOP의 길이는 미리 정해질 수도 있고, 기초 스트림의 길이에 따라 가변적일 수도 있다. 따라서, 상기 제1 버퍼링 정보와 상기 제2 버퍼링 정보는 상기 제1 GOP와 상기 제2 GOP의 길이에 따라 서로 동일하거나 상이할 수 있다.
또한, 도 17을 참조하면, 상기 제1 GOP가 복호화 장치에서 전송이 수행되는 시간을 제3 전송 시간 구간(T3)으로 나타낼 수 있고, 상기 제2 GOP가 복호화 장치에서 전송이 수행되는 시간을 제4 전송 시간 구간(T4)으로 나타낼 수 있다. 이 때, 상기 제3 전송 시간 구간(T3) 및 상기 제4 전송 시간 구간(T4)은 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보가 각각 고려되어 결정된 시간일 수 있다. 일 예로, 상기 제3 전송 시간 구간(T3) 상기 제1 버퍼링 정보에 의해 획득된 시간일 수 있고, 특히 상기 제3 전송 시간 구간(T3)은 상기 제1 어라이벌 타임 스탬프(A1)와 상기 제1 디코딩 타임 스탬프(D1) 사이의 시간을 기초로 획득될 수 있다. 또한, 상기 제4 시간(T4)은 상기 제2 버퍼링 정보에 의해 획득된 시간일 수 있고, 특히 상기 제4 시간(T4)은 상기 제2 어라이벌 타임 스탬프(A2)와 상기 제2 디코딩 타임 스탬프(D2) 사이의 시간을 기초로 획득될 수 있다.
도 18을 참조하면, 상기 제1 GOP가 복호화 장치에서 전송되는 속도 및 상기 제2 GOP가 복호화 장치에서 전송되는 속도를 제3 비트레이트(b)로 나타낼 수 있다. 도 18과 같이, 상기 제1 GOP가 제1 버퍼링 정보를 포함하고, 상기 제2 GOP가 제2 버퍼링 정보를 포함하는 경우, 상기 제1 GOP가 복호화 장치에서 전송되는 속도와 상기 제2 GOP가 복호화 장치에서 전송되는 속도는 제3 비트레이트(b)로 동일하게 유지될 수 있다. 상기 제3 비트레이트는 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보 중 적어도 어느 하나로부터 정해질 수 있고, 정해진 속도를 기초로 상기 제3 전송 시간 구간(T3) 및 상기 제4 전송 시간 구간(T4)이 각각 결정될 수 있다. 일 예로, 상기 패킷화부(1800)는 상기 제1 GOP 및 상기 제2 GOP가 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보를 각각 포함함에 따라 복호화 장치에 동일 속도로 상기 제1 GOP 및 상기 제2 GOP를 전송할 수 있다. 이를 통해, 도 15 및 도 16에서 나타난 경우와 달리, 도 17 및 도 18과 같은 버퍼링 정보가 포함된 부호화 데이터의 전송의 경우, 상기 부호화 데이터는 소정의 속도로 동일하게 유지되면서 전송될 수 있어, 데이터의 전송이 안정적으로 수행될 수 있다.
따라서, 도 1 내지 도 18을 참조할 때, 본 출원의 일 실시 예에 따른 상기 스트림 제공 장치는 출력 스트림이 상기 버퍼링 정보를 포함함에 따라 보다 안정적인 데이터 전송이 수행될 수 있는 효과가 있다. 또한, 본 출원의 일 실시 예에 따른 상기 스트림 제공 장치는 출력 스트림
이 상기 버퍼링 정보를 포함하여 안정적인 데이터 전송이 수행될 수 있어, 상기 스트림 제공 장치는 과부하 없이 스트림을 전송할 수 있어 오류가 적어지는 효과가 있다.
또한, 도 12를 참조하면, 상기 버퍼링 정보는 상기 버퍼링 정보 처리부(1700)로부터 상기 패킷화부(1800)에 제공될 수 있다. 상기 버퍼링 정보 처리부(1700)는 상기 부호화부(1600)로부터 제공된 데이터로부터 획득된 상기 버퍼링 정보를 별도의 파일 형태로 상기 패킷화부(1800)에 제공할 수 있다. 이 때 상기 버퍼링 정보는 복수의 파일 또는 하나의 파일로 상기 패킷화부(1800)에 제공할 수 있다. 상기 버퍼링 정보가 복수의 파일로 상기 패킷화부(1800)에 제공되는 경우는 상기 부호화부(1600)로부터 제공된 데이터의 용량이 크거나 데이터의 개수가 복수인 경우이고, 상기 버퍼링 정보가 하나의 파일로 상기 패킷화부(1800)에 제공되는 경우는 상기 부호화부(1600)로부터 제공된 데이터의 용량이 작거나 데이터의 개수가 하나인 경우일 수 있다.
특히, 상기 버퍼링 정보 처리부(1700)는 상기 버퍼링 정보를 XML 형식의 파일로 상기 패킷화부(1800)에 제공할 수 있다. 이 때, 상기 버퍼링 정보는 테이블 형식으로 작성된 XML 형식의 파일일 수 있다. 또한, 일 예로, 상기 버퍼링 정보 처리부(1700)는 상기 부호화부(1600)로부터 제공된 MPU 프레그먼트 또는 DASH 세그먼트로부터 획득된 상기 버퍼링 정보를 XML 형식의 파일로 상기 패킷화부(1700)에 MPU 프레그먼트 또는 DASH 세그먼트와 함께 제공할 수 있다.
일 예로, 상기 버퍼링 정보 처리부(1700)는 출력 패킷이 다음과 같은 버퍼링 정보를 포함하도록 상기 패킷화부(1800)에 제공할 수 있다.
<BufferTimeTable
AvailabilityStartTime="2018-10-01T09:00:00.234"
SenderStartOffset="0.0"
SenderEndOffset="1.2"
DecodeTime="0.5"
PresentationTime="0.550"
즉, 상기 출력 패킷은 0초에 스트리밍이 시작되고, 1.2초 후에 스트리밍이 끝나되, 디코딩 타임 스탬프(DTS)가 0.5초인 것을 의미하는 것으로 해석할 수 있다. 위와 같은 버퍼링 정보는 예시적인 형식일 뿐이며, 상기 버퍼링 정보가 출력 패킷에 포함될 수 있는 형식이라면 어떤 형식이든 제한되지 아니한다.
이하에서는 본 출원의 일 실시 예에 따른 상기 스트림 제공 장치가 수행하는 버퍼링 정보 처리 프로세스에 대하여 구체적으로 설명하고자 한다.
2.2.3 버퍼링 정보 처리 프로세스
도 19는 일 실시 예에 따른 버퍼링 정보가 포함된 스트림 제공 프로세스를 나타낸 순서도이다. 상기 버퍼림 정보가 포함된 스트림 제공 프로세스는 버퍼링 정보 획득(S1110), 패킷화부에 버퍼링 정보 제공(S1130), 및 버퍼링 정보가 부여된 출력 패킷 획득(S1150) 중 적어도 어느 하나의 단계를 포함할 수 있다.
도 1 내지 도 19를 참조하면, 상기 버퍼링 정보 획득(S1110)은 상기 부호화부(1600)에서 획득된 부호화 데이터로부터 상기 버퍼링 정보를 획득하는 단계일 수 있다. 또한, 상기 버퍼링 정보 획득(S1110)은 상기 부호화부(1600)에서 획득된 데이터로부터 상기 버퍼링 정보로 타임스탬프(TS, Time Stamp)에 대한 정보를 획득하는 단계일 수 있다. 또한, 상기 버퍼링 정보 획득(S1110)은 상기 부호화부(1600)에서 획득된 데이터로부터 타임 스탬프에 대한 정보를 획득할 수 있되, 상기 타임 스탬프는 디코딩 타임 스탬프(Decoding Time Stamp, DTS) 및 프리젠테이션 타임 스탬프(Presentation Time Stamp, PTS) 중 적어도 어느 하나와 어라이벌 타임 스탬프(Arrival Time Stamp, ATS)를 포함할 수 있다.
도 1 내지 도 19를 참조하면, 상기 패킷화부에 버퍼링 정보 제공(S1130)은 상기 버퍼링 정보 획득(S1110)에서 획득된 버퍼링 정보를 상기 패킷화부(1800)에 제공하는 단계일 수 있다. 상기 패킷화부에 버퍼링 정보 제공(S1130)은 상기 부호화부(1600)에서 획득된 부호화 데이터와 함께 상기 버퍼링 정보를 상기 패킷화부(1800)에 제공하는 단계일 수 있다. 상기 패킷화부에 버퍼링 정보 제공(S1130)은 상기 부호화부(1600)에서 획득된 부호화 데이터와 함께 상기 버퍼링 정보를 상기 패킷화부(1800)에 제공하되, 상기 버퍼링 정보는 상기 부호화 데이터와 대응되는 정보인 단계일 수 있다. 상기 패킷화부에 버퍼링 정보 제공(S1130)은 상기 부호화부(1600)에서 획득된 부호화 데이터로부터 획득된 상기 버퍼링 정보가 상기 패킷화부(1800)가 해석하기 용이한 형태로 제공되는 단계일 수 있다.
도 1 내지 도 19를 참조하면, 상기 버퍼링 정보가 부여된 출력 패킷 획득(S1150)은 상기 패킷화부(1800)가 상기 패킷화부에 버퍼링 정보 제공(S1130)에서 제공된 버퍼링 정보를 부여한 적어도 어느 하나의 패킷을 출력하는 단계일 수 있다. 상기 버퍼링 정보가 부여된 출력 패킷 획득(S1150)은 상기 부호화부(1600)에서 획득된 부호화 데이터에 이와 대응되는 상기 버퍼링 정보가 부여된 적어도 어느 하나의 패킷을 출력하는 단계일 수 있다. 상기 버퍼링 정보가 부여된 출력 패킷(S1150)은 복호화 장치가 일정한 비트레이트로 스트리밍을 수행할 수 있도록 상기 버퍼링 정보를 출력 패킷에 부여하는 단계일 수 있다.
따라서, 도 1 내지 도 19를 참조할 때, 본 출원의 일 실시 예에 따른 상기 스트림 제공 프로세스는 출력 스트림이 상기 버퍼링 정보를 포함함에 따라 보다 안정적인 데이터 전송이 수행될 수 있는 효과가 있다. 또한, 본 출원의 일 실시 예에 따른 상기 스트림 제공 프로세스는 출력 스트림이 상기 버퍼링 정보를 포함하여 안정적인 데이터 전송이 수행될 수 있어, 상기 스트림 제공 장치는 과부하 없이 스트림을 전송할 수 있어 오류가 적어지는 효과가 있다.
이하에서는 상기 패킷화부(1800)에 의해 상기 버퍼링 정보가 부여된 출력 패킷에 대해 보다 상세히 설명하고자 한다.
2.3 버퍼링 정보가 포함된 출력 패킷
2.3.1 일반
도 20은 일 실시 예에 따른 버퍼링 정보가 포함된 스트림을 나타낸 도면이다. 도 20 (a)는 버퍼링 정보가 포함되지 않은 출력 패킷의 구성을 나타낸 도면이고, 도 20 (b)는 버퍼링 정보가 포함된 출력 패킷에 포함된 구성을 나타내는 도면이다.
도 20 (a)를 참조하면, 상기 패킷화부(1800)에서 출력된 패킷은 제1 출력 패킷 및 제2 출력 패킷 중 적어도 어느 하나를 출력할 수 있고, 상기 제1 출력 패킷은 제1 헤더 및 제1 페이로드 중 적어도 어느 하나를 포함할 수 있고, 상기 제2 출력 패킷은 제2 헤더 및 제2 페이로드 중 적어도 어느 하나를 포함할 수 있다.
도 1 내지 도 20 (b)를 참조하면, 상기 패킷화부(1800)는 상기 버퍼링 정보 처리부(1700)로부터 획득된 상기 버퍼링 정보를 출력 패킷에 삽입할 수 있다.
특히, 상기 패킷화부(1800)는 상기 버퍼링 정보를 출력 패킷에 삽입하기 위해, 상기 출력 패킷에 추가 필드를 부가할 수 있고, 부가된 상기 추가 필드에 버퍼링 정보를 삽입할 수 있다. 일 예로, 상기 추가 필드는 추가헤더의 형태로 각 출력 패킷의 헤더의 상단에 부가될 수 있다. 다만, 이에 한정되는 것은 아니고, 상기 추가 필드는 각 출력 패킷의 하단 또는 중단에 삽입될수도 있다. 또한, 추가 필드는 복수의 필드로 구성될 수 있고, 버퍼링 정보 이외에 다른 정보도 추가 필드에 삽입될 수 있다. 또한, 추가 필드는 고정된 크기를 가질 수 있는데, 일 예로 추가 필드는 20바이트의 크기를 가질 수도 있다. 또한, 실시예에 따라 추가 필드의 크기는 가변적일 수도 있다. 예를 들어, 추가 필드의 크기는 출력 패킷의 종류에 따라 서로 다른 크기로 설정될 수도 있다.
이에 따라, 상기 패킷화부(1800)는 제1 추가 필드가 부가된 상기 제1 출력 패킷 및 제2 추가 필드가 부가된 상기 제2 출력 패킷 중 적어도 어느 하나를 출력할 수 있고, 상기 제1 추가 필드가 부가된 상기 제1 출력 패킷은 상기 제1 추가 필드, 제1 헤더, 및 제1 페이로드 중 적어도 어느 하나를 포함할 수 있고, 상기 제2 추가 필드가 부가된 상기 제2 출력 패킷은 상기 제2 추가 필드, 제2 헤더, 및 제2 페이로드 중 적어도 어느 하나를 포함할 수 있다.
상기 버퍼링 정보가 출력 패킷에 포함됨에 따라, 상기 출력 패킷이 복호화 장치에 의해 스트리밍이 수행되는 경우, 복호화 장치는 상기 출력 패킷에 포함된 상기 버퍼링 정보를 기초로 복호화를 수행할 수 있다. 복호화 장치가 상기 출력 패킷을 상기 버퍼링 정보에 기초하여 복호화하는 경우, 복호화 장치가 상기 출력 패킷의 길이, 용량 등에 의해 달라질 수 있는 스트리밍 속도를 일정하게 조절할 수 있는 이점이 있다.
일 예로, 상기 패킷화부(1800)가 PES/TS 패킷화부에 해당되는 경우, PES 또는 TS 출력 패킷에 포함된 패킷 헤더에는 버퍼링 정보가 포함될 수 있고, 특히, 상기 버퍼링 정보는 디코딩 타임 스탬프(Decoding Time Stamp, DTS) 및 프리젠테이션 타임 스탬프(Presentation Time Stamp, PTS)가 포함될 수 있다.
다만, 설명의 편의를 위해, 이하에서는 상기 패킷화부(1800)가 ROUTE 또는 MMTP 패킷화부에 해당되는 경우에 대해서 구체적으로 설명하기로 하며, 상기 패킷화부(1800)는 ROUTE 또는 MMRP 패킷화부에 제한되는 것은 아니다.
2.3.2 ROUTE 패킷화부
도 21은 일 실시 예에 따른 버퍼링 정보가 부여된 ROUTE 패킷을 생성하는 패킷화부를 나타낸 블록도이다.
도 21을 참조하면, 상기 ROUTE 패킷을 생성하는 스트림 생성 장치는 버퍼링 정보 처리부(1700)로부터 제공된 버퍼링 정보를 기초로 상기 패킷화부(1800)에서 출력 패킷을 생성할 수 있다. 또한, 상기 패킷화부(1800)는 버퍼링 정보 부여부(1810), 제1 ROUTE 패킷화부(1830), 및 제2 ROUTE 패킷화부(1850) 중 적어도 어느 하나를 포함할 수 있다.
일 실시 예에 따르면, 상기 버퍼링 정보 처리부(1700)에서 획득된 버퍼링 정보가 상기 버퍼링 정보 부여부(1810)에 제공될 수 있고, 상기 버퍼링 정보 부여부(1810)는 상기 제1 ROUTE 패킷화부(1830) 및 상기 제2 ROUTE 패킷화부(1850)에 상기 버퍼링 정보를 부여할 수 있다. 상기 제1 ROUTE 패킷화부(1830) 및 상기 제2 ROUTE 패킷화부(1850)는 상기 버퍼링 정보 부여부(1810)에 의해 부여된 상기 버퍼링 정보를 기초로 제1 ROUTE 출력 패킷 및 제2 ROUTE 출력 패킷을 각각 출력할 수 있다.
도 20 및 도 21을 참조하면, 상기 패킷화부(1800)는 상기 버퍼링 정보 부여부(1810)에 의해 부여된 제1 버퍼링 정보를 기초로 상기 제1 추가 필드가 부가된 상기 제1 ROUTE 패킷을 출력하되, 상기 제1 추가 필드에는 상기 제1 버퍼링 정보가 포함될 수 있고, 상기 패킷화부(1800)는 상기 버퍼링 정보 부여부(1810)에 의해 부여된 제2 버퍼링 정보를 기초로 상기 제2 추가 필드가 부가된 상기 제2 ROUTE 패킷을 출력하되, 상기 제2 추가 필드에는 상기 제2 버퍼링 정보가 포함될 수 있다.
이를 통해, 상기 부호화부(1600)가 GOP에 대하여 DASH 세그먼트 또는 MPU 프레그먼트를 생성함에 따라, 상기 GOP에 대한 버퍼링 정보가 DASH 세그먼트 또는 MPU 프레그먼트에 포함되지 않는 점을 보완할 수 있어, 상기 부호화 데이터의 전송이 안정적으로 수행될 수 있다.
2.3.3 MMTP 패킷화부
도 22는 일 실시 예에 따른 버퍼링 정보가 부여된 MMTP 패킷을 생성하는 패킷화부를 나타낸 블록도이다.
도 22를 참조하면, 상기 MMTP 패킷을 생성하는 스트림 생성 장치는 버퍼링 정보 처리부(1700)로부터 제공된 버퍼링 정보를 기초로 상기 패킷화부(1800)에서 출력 패킷을 생성할 수 있다. 또한, 상기 패킷화부(1800)는 버퍼링 정보 부여부(1810), 제1 MMTP 패킷화부(1870), 및 제2 MMTP 패킷화부(1890) 중 적어도 어느 하나를 포함할 수 있다.
일 실시 예에 따르면, 상기 버퍼링 정보 처리부(1700)에서 획득된 버퍼링 정보가 상기 버퍼링 정보 부여부(1810)에 제공될 수 있고, 상기 버퍼링 정보 부여부(1810)는 상기 제1 MMTP 패킷화부(1870) 및 상기 제2 MMTP 패킷화부(1890)에 상기 버퍼링 정보를 부여할 수 있다. 상기 제1 MMTP 패킷화부(1870) 및 상기 제2 MMTP 패킷화부(1890)는 상기 버퍼링 정보 부여부(1810)에 의해 부여된 상기 버퍼링 정보를 기초로 제1 MMTP 출력 패킷 및 제2 MMTP 출력 패킷을 각각 출력할 수 있다.
도 20 및 도 21을 참조하면, 상기 패킷화부(1800)는 상기 버퍼링 정보 부여부(1810)에 의해 부여된 제1 버퍼링 정보를 기초로 상기 제1 추가 필드가 부가된 상기 제1 MMTP 패킷을 출력하되, 상기 제1 추가 필드에는 상기 제1 버퍼링 정보가 포함될 수 있고, 상기 패킷화부(1800)는 상기 버퍼링 정보 부여부(1810)에 의해 부여된 제2 버퍼링 정보를 기초로 상기 제2 추가 필드가 부가된 상기 제2 MMTP 패킷을 출력하되, 상기 제2 추가 필드에는 상기 제2 버퍼링 정보가 포함될 수 있다.
이를 통해, 상기 부호화부(1600)가 GOP에 대하여 DASH 세그먼트 또는 MPU 프레그먼트를 생성함에 따라, 상기 GOP에 대한 버퍼링 정보가 DASH 세그먼트 또는 MPU 프레그먼트에 포함되지 않는 점을 보완할 수 있어, 상기 부호화 데이터의 전송이 안정적으로 수행될 수 있다.
이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
1600: 부호화부
1700: 버퍼링 정보 처리부
1800: 패킷화부

Claims (13)

  1. 적어도 어느 하나의 출력 패킷을 복호화 장치에 제공하는 스트림 제공 장치에 있어서,
    제1 부호화 데이터로부터 제1 버퍼링 정보를 획득하고, 제2 부호화 데이터로부터 제2 버퍼링 정보를 획득하는 버퍼링 정보 처리부; 및
    상기 제1 부호화 데이터에 상기 제1 버퍼링 정보를 부여한 제1 출력 패킷 및 상기 제2 부호화 데이터에 상기 제2 버퍼링 정보를 부여한 제2 출력 패킷을 획득하는 패킷화부를 포함하고,
    상기 패킷화부는,
    상기 제1 출력 패킷 및 상기 제2 출력 패킷이 각각 제1 비트레이트로 일정하게 출력되도록, 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보를 이용하여 상기 제1 출력 패킷 및 상기 제2 출력 패킷의 전송 시간을 조정하고,
    상기 제1 출력 패킷이 전송되는 시점과 상기 제2 출력 패킷이 전송되는 시점이 상이하되, 상기 제1 출력 패킷의 전송이 완료된 시점과 상기 제2 출력 패킷의 전송이 시작되는 시점이 대응되는,
    스트림 제공 장치.
  2. 제1 항에 있어서,
    상기 제1 버퍼링 정보는 상기 적어도 하나의 출력 패킷을 획득하는 복호화 장치에서 상기 제1 출력 패킷이 저장되어 있는 시간에 대응되는 버퍼링 시간을 포함하고,
    상기 제2 버퍼링 정보는 상기 복호화 장치에서 상기 제2 출력 패킷이 저장되어 있는 시간에 대응되는 버퍼링 시간을 포함하는,
    스트림 제공 장치.
  3. 제1 항에 있어서,
    상기 제1 부호화 데이터와 상기 제2 부호화 데이터는 도착 시점 정보, 복호화 시점 정보 및 프리젠테이션 시점 정보를 포함하되,
    상기 도착 시점 정보는 상기 제1 부호화 데이터 또는 상기 제2 부호화 데이터가 복호화할 장치에 도착하는 시점에 대응되는 정보이고,
    상기 복호화 시점 정보는 상기 제1 부호화 데이터 또는 상기 제2 부호화 데이터가 복호화되는 시점에 대응되는 정보이고,
    상기 프리젠테이션 시점 정보는 상기 제1 부호화 데이터 또는 상기 제2 부호화 데이터에서 복호화된 데이터가 출력되는 시점에 대응되는 정보인,
    스트림 제공 장치.
  4. 제3 항에 있어서,
    상기 제1 버퍼링 정보는 상기 제1 부호화 데이터에 포함되는 제1 복호화 시점 정보 및 제1 프리젠테이션 시점 정보 중 적어도 어느 하나와 제1 도착 시점 정보에 의해 결정되고,
    상기 제2 버퍼링 정보는 상기 제2 부호화 데이터에 포함되는 제2 복호화 시점 정보 및 제2 프리젠테이션 시점 정보 중 적어도 어느 하나와 제2 도착 시점 정보에 의해 결정되는,
    스트림 제공 장치.
  5. 제1 항에 있어서,
    상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보는 XML 형식의 파일로 상기 패킷화부에 제공되는,
    스트림 제공 장치.
  6. 제1 항에 있어서,
    상기 제1 부호화 데이터가 MPU 프레그먼트를 포함하는 경우에는 상기 제1 출력 패킷은 MMTP 패킷에 대응되고,
    상기 제2 부호화 데이터가 DASH 세그먼트를 포함하는 경우에는 상기 제2 출력 패킷은 ROUTE 패킷에 대응되는,
    스트림 제공 장치.
  7. 제1 항에 있어서,
    상기 제1 출력 패킷은 제1 전송 시간 구간 동안 전송되고, 상기 제2 출력 패킷은 제2 전송 시간 동안 전송되고,
    상기 제1 전송 시간 구간의 길이는 상기 제1 출력 패킷의 크기에 대응되고,
    상기 제2 전송 시간 구간의 길이는 상기 제2 출력 패킷의 크기에 대응되는,
    스트림 제공 장치.
  8. 제7 항에 있어서,
    상기 제1 출력 패킷 및 상기 제2 출력 패킷이 상기 복호화 장치에서 상기 제1 비트레이트와는 상이한 제2 비트레이트로 변경하여 일정하게 전송하는 경우, 상기 제1 전송 시간 구간과 상기 제2 전송 시간 구간이 변경되는,
    스트림 제공 장치.
  9. 제1 항에 있어서,
    상기 제1 버퍼링 정보는 상기 제1 출력 패킷에 포함된 적어도 일부 영역에 삽입되어 있고, 상기 제2 버퍼링 정보는 상기 제2 출력 패킷에 포함된 적어도 일부 영역에 삽입되어 있는 것을 특징으로 하는,
    스트림 제공 장치.
  10. 제1 항에 있어서,
    상기 제1 비트레이트는 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보 중 적어도 어느 하나로부터 결정되는,
    스트림 제공 장치.
  11. 제1 항에 있어서,
    상기 복호화 장치가 과부하되지 않도록, 상기 제1 비트레이트는 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보에 포함된 각각의 정보를 평균화한 정보로부터 결정되는,
    스트림 제공 장치.
  12. 적어도 어느 하나의 출력 패킷을 복호화 장치에 제공하는 스트림 제공 방법에 있어서,
    제1 부호화 데이터로부터 제1 버퍼링 정보를 획득하고, 제2 부호화 데이터로부터 제2 버퍼링 정보를 획득하는 버퍼링 정보 처리 단계; 및
    상기 제1 부호화 데이터에 상기 제1 버퍼링 정보를 부여한 제1 출력 패킷 및 상기 제2 부호화 데이터에 상기 제2 버퍼링 정보를 부여한 제2 출력 패킷을 획득하는 패킷화 단계를 포함하고,
    상기 패킷화 단계는,
    상기 제1 출력 패킷 및 상기 제2 출력 패킷이 각각 제1 비트레이트로 일정하게 출력되도록, 상기 제1 버퍼링 정보 및 상기 제2 버퍼링 정보를 이용하여 상기 제1 출력 패킷 및 상기 제2 출력 패킷의 전송 시간을 조정하고,
    상기 제1 출력 패킷이 전송되는 시점과 상기 제2 출력 패킷이 전송되는 시점이 상이하되, 상기 제1 출력 패킷의 전송이 완료된 시점과 상기 제2 출력 패킷의 전송이 시작되는 시점이 대응되는,
    스트림 제공 방법.
  13. 제12항에 기재된 방법을 실행시키도록 구현되는 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
KR1020190157200A 2018-12-11 2019-11-29 버퍼모델을 따르는 스트리밍을 위한 부가 정보 생성 방법 및 장치 KR102211539B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862777894P 2018-12-11 2018-12-11
US62/777,894 2018-12-11

Publications (2)

Publication Number Publication Date
KR20200071666A true KR20200071666A (ko) 2020-06-19
KR102211539B1 KR102211539B1 (ko) 2021-02-03

Family

ID=71137287

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190157200A KR102211539B1 (ko) 2018-12-11 2019-11-29 버퍼모델을 따르는 스트리밍을 위한 부가 정보 생성 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102211539B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140053777A (ko) * 2012-10-22 2014-05-08 한국전자통신연구원 이종 비디오 코덱을 사용하는 영상 시스템에서의 디코더 버퍼링 방법 및 그 장치
KR20150001913A (ko) * 2013-06-28 2015-01-07 한국전자통신연구원 이종망 연계된 방송 스트림 전송 시스템에서 전송 스트림간 비트율을 보정하는 방법 및 장치
JP2016063534A (ja) * 2014-09-12 2016-04-25 パナソニックIpマネジメント株式会社 送信装置、受信装置、送信方法及び受信方法
KR20160078996A (ko) * 2014-04-30 2016-07-05 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
KR20170093637A (ko) * 2016-02-05 2017-08-16 한국전자통신연구원 이종 네트워크 환경에서 미디어 전송 스트림 버퍼링 방법 및 이를 이용한 영상 수신 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140053777A (ko) * 2012-10-22 2014-05-08 한국전자통신연구원 이종 비디오 코덱을 사용하는 영상 시스템에서의 디코더 버퍼링 방법 및 그 장치
KR20150001913A (ko) * 2013-06-28 2015-01-07 한국전자통신연구원 이종망 연계된 방송 스트림 전송 시스템에서 전송 스트림간 비트율을 보정하는 방법 및 장치
KR20160078996A (ko) * 2014-04-30 2016-07-05 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
JP2016063534A (ja) * 2014-09-12 2016-04-25 パナソニックIpマネジメント株式会社 送信装置、受信装置、送信方法及び受信方法
KR20170093637A (ko) * 2016-02-05 2017-08-16 한국전자통신연구원 이종 네트워크 환경에서 미디어 전송 스트림 버퍼링 방법 및 이를 이용한 영상 수신 장치

Also Published As

Publication number Publication date
KR102211539B1 (ko) 2021-02-03

Similar Documents

Publication Publication Date Title
US9544641B2 (en) Hybrid transmission method through MMT packet format extension
US8046815B2 (en) Optical network for bi-directional wireless communication
EP3226566B1 (en) Transmission device, transmission method, reception device, and reception method
US20170111706A1 (en) Media content transceiving method and transceiving apparatus using same
EP3288270B1 (en) Broadcasting signal transmission device, broadcasting signal reception device, broadcasting signal transmission method, and broadcasting signal reception method
Kim et al. A study on feasibility of dual‐channel 3DTV service via ATSC‐M/H
US20150215679A1 (en) Method for transmitting/receiving internet-based content and transmitter/receiver using same
US9674027B2 (en) Method for transmitting/receiving internet-based content and transmitter/receiver using same
US20160007056A1 (en) Method for transmitting/receiving internet-based content and transmitter/receiver using same
US20230188767A1 (en) Transmission device, transmission method, reception device, and reception method
CA2978805A1 (en) System and method for operating a transmission network
US9854019B2 (en) Method and apparatus for modifying a stream of digital content
US20150373076A1 (en) Method for transmitting/receiving internet-based content and transmitter/receiver using same
US10225566B2 (en) Transmission device, transmission method, reception device, and reception method
US10616618B2 (en) Broadcast signal transmitting device, broadcast signal receiving device, broadcast signal transmitting method and broadcast signal receiving method
KR20170130883A (ko) 하이브리드 망 기반의 가상 현실 방송 서비스 방법 및 장치
US10700799B2 (en) Method and apparatus for broadcast signal transmission
KR102211539B1 (ko) 버퍼모델을 따르는 스트리밍을 위한 부가 정보 생성 방법 및 장치
KR101656193B1 (ko) 이기종 망에서의 uhd 비디오 전송을 위한 mmt 기반 방송 시스템 및 방법
KR20150057149A (ko) 재전송망에 기초한 3d 방송 서비스 제공 시스템 및 방법
KR102001067B1 (ko) 방송 신호 송신을 위한 다중화 방법 및 그 장치
KR102034373B1 (ko) 복호화를 수행하는 장치에서의 오류를 방지하기 위한 방송 송신용 데이터를 다중화하는 방법 및 그 장치
KR102391586B1 (ko) 시청각 콘텐츠 스트림을 mpeg2 사설 섹션내에 캡슐화하는 방법, mpeg2 전송 스트림 내에 멀티플렉스되어질 mpeg2 사설 섹션내에 시청각 콘텐츠를 캡슐화하는 장치, 디지털 tv용의 양방향 어플리케이션, 사용자 장치, 시청각 콘텐츠 또는 데이터의 전송을 위한 방법 및 데이터 네트워크를 위한 통신 프로토콜
KR20180000320A (ko) 하이브리드 방송 서비스를 위한 타임드 메타데이터 송신 방법 및 장치
Vaz et al. Integrated broadband broadcast video scalability usage proposal to next-generation of brazilian DTTB system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant