MPEG-DASH

    Youtube와 DASH


    다양한 플랫폼과 소비자 디바이스에 컨텐츠를 전송하고자 하는 노력은 계속되어 왔었는데, MPEG-DASH MPEG (Moving Picture Expert Group) 가장 최근의 standard로써, 다양한 디바이스에 단일적이고 통합적인 미디어 전달의 복잡성을 해결하기 위해 탄생했다. MPEG-DASH 사용했던 유의미한 시도는 2012 런던 올림픽에서 일어났는데, 시청자의 디바이스에 올림픽 중계를 adaptive streaming으로 전달하기 위해서 사용한 것이 그것이다. 이것을 계기로 Netfilx 뿐만 아니라 최근의 YouTube까지 주요한 video space provider들이 DASH 이용하기 시작했다.

    DASH (Dynamic Adaptive Streaming over HTTP) 기존의 HTTP 웹서버와 인터넷을 통해 전달되는 미디어 컨텐츠를 고품질로 streaming 있게 해주는 adaptive bitrate streaming기술이다. 이것은 국제적 기준으로는 최초로 HTTP 기반으로 streaming solution이라는 점에서도 의의가 있다. MPEG-DASH HTTP adaptive bitrate streaming 위한 기능들을 제공하며, Apple HTTP Live Streaming(HLS) Adobe HTTP Dynamic Streaming(HDS), Microsoft Smooth Streaming 같은 기존의 HTTP streaming 대체하기 위한 기준으로서 제작되었다. 따라서 다음과 같은 특징을 가진다.

     

    ·  프레임 싱크 단위의 adaptive bitrate switching.

    ·  DRM(Digital rights management ) 부정한다. Common Encryption 제공한다.

    ·  Closed-caption Subtitle (자막기술) 제공한다.

    ·  다중 파일 컨테이너 형식을 지원한다.

    ·  오디오/비디오 코덱을 부정한다. (상관하지 않는다.)

     

    먼저 자세한 동작 원리를 설명하기 전에, Adaptive bitrates streaming 이용하는 MPEG-DASH 장점은 다음과 같다.

    ·  MPEG-DASH 등장으로 데이터 delivery compression 대한 문제 해결.

    ·  Transcoding 대한 비용 절감.

    ·  Content 제작자는 인코딩에 관계없이 모든 디바이스에 컨텐츠 전달 가능.

    ·  Consumer 또한 원하는 컨텐츠의 이용 불가에 대해서 걱정할 필요 없음.

     

    DASH 동작 원리는 다음과 같다. MPEG-DASH 컨텐츠를 HTTP 베이스로 하는 작은 segment sequence 쪼갠다. 각각의 segment 짧은 간격의 playback 포함하고 있는데, playback 합계가 컨텐츠의 시간이 된다. 시간은 분부터 시간까지 다양하다. 컨텐츠는 다양한 bit rates에서 이용할 있게 대체하는 segment 다양한 bit rate 인코딩한다. , 사용자는 현재의 네트워크 환경에 따라서 들어오는 다음의 segment중에 어떤 bit rate 인코딩 segment 다운로드 정한다.

    , stall이나 re-buffering 필요 없이 download 있는 가장 높은 bit rate segment 선택해 download한다. 이를 통해 MPEG-DASH 바뀌는 네트워크 환경에 맞춰서 끊김없이 데이터를 받을 있게 한다.

     




    이를 상세하게 나타낸 것이 그림이다[i]. 그림은 HTTP DASH client사이에서의 단순한 streaming scenario 나타낸 것이다. 왼쪽에 보이는 multimedia content HTTP 서버에 저장되어 있고 HTTP 통해서 client 전달된다. 컨텐츠는 크게 가지 부분으로 나누어서 저장되어 있다.

     

    1) MPD (Media Presentation Description) – 가능한 컨텐츠, 제공하는 alternative bit rates, URL addresses 정보를 담고 있는 Manifest.

    2) Segments – 실제 정보(bitstreams) 청크(chunk) 단위.

     

     

    컨텐츠를 재생하기 위해서는 DASH client 먼저 MPD 접근해야 하는데, 이것은 HTTP, email, thumb drive 등과 같이 다양한 경로로 취득될 있다. MPD 파싱하면서 DASH client program timing, media-content availability, media type, 화질, 최소 최대 bandwidths, 사용할 있는 encoded-alternatives, DRM 같은 다양한 정보를 얻을 있다. 정보를 이용해서 DASH client 적당한 encoding 고른 HTTP GET request 통해서 streaming 시작한다.

    Client 계속해서 이후의 segment 패치하고 동시에 자신의 네트워크를 모니터링한다. 결과에 따라서 다음으로 패치할 세그먼트를 결정하고 적당한 버퍼를 유지한다.



    [i] MPEG-DASH, An Overview of the Next Standard for Adaptive Bitrate Video, http://www.encoding.com/mpeg-dash/



    Posted by EE June_Kim