DASH (hay MPEG-DASH) là một chuẩn truyền tải video thích ứng được chuẩn hóa bởi MPEG và ISO nhằm mục đích nâng cao chất lượng truyền tải các nội dung đa phương tiện khi truyền qua HTTP.
Một hệ thống DASH bao gồm 3 thành phần chính: Server, Client và Network (hình 1).
Hình 1: Các thành phần trong hệ thống DASH
Server encode và lưu trữ video với những mức chất lượng khác nhau (Ví dụ 4K, 1080p, 720p,...). Mỗi video ở từng mức chất lượng này lại được chia nhỏ theo thời gian thành những phân đoạn (segment) có độ dài bằng nhau (ví dụ 1 giây, 2 giây, 4 giây,...).
Lý do chia thành nhiều mức chất lượng khác nhau là để phù hợp với nhiều loại chất lượng đường truyền khác nhau. Mạng 3G (tốc độ trung bình khoảng 3 Mbps[1]) thì không thể truyền được video 4K (tốc độ bit là có thể lên đến 45Mbps![2]). Và một lý do để chia nhỏ video theo thời gian là để phía client chỉ cần tải một phần video là có thể bắt đầu xem được thay vì phải tải toàn bộ video. Điều này còn giúp tiết kiệm băng thông trong trường hợp client chỉ xem một đoạn video rồi chuyển sang video khác.
Ở phía client, nó sẽ gửi các HTTP request đến phía server để yêu cầu mức chất lượng mong muốn. Sau khi nhận được request, server sẽ gửi một (hoặc nhiều) segment cho client. Các segment này được lưu tại bộ đệm (buffer) của client trước khi được encode. Chất lượng mong muốn sẽ được quyết định bởi thuật toán gọi là "Adaptive bitrate (ABR) algorithm". Rất nhiều ý tưởng đã được đề xuất cho ABR này (xem thêm [3]) mà phổ biến nhất là dựa vào tốc độ mạng (throughput) và/hoặc tình trạng buffer.
Những vấn đề nghiên cứu phổ biến trong DASH
1. Live latency
2. Video quality, Quality stability, User experience
3. Stalls/rebuffering
4. Throughput prediction
...
*** Đọc thêm:
1. A Journey Towards Fully Immersive Media Access [4]
2. Tọc vạch với dash.js [5]
Kỳ tiếp: HTTP/2 và những lợi ích nó mang lại cho DASH
[1] http://www.yozzo.com/news-and-information/mvno-mobile-operator-s/speed-test-ais-3g-vs-dtac-3g
[2] https://support.google.com/youtube/answer/1722171?hl=en
[3] https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8424813
[4] https://www.slideshare.net/christian.timmerer/a-journey-towards-fully-immersive-media-access
[5] https://github.com/Dash-Industry-Forum/dash.js/blob/development/README.md