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/