Trình bày các vấn đề chung của đề tài. Kiến thức chung về kỹ thuật truyền luồng trên giao thức HTTP. Thiết kế và triển khai mô hình hệ thống. Khảo sát đánh giá hoạt động của mô hình. Các hướng phát triển đề tài. Trình bày các vấn đề chung của đề tài. Kiến thức chung về kỹ thuật truyền luồng trên giao thức HTTP. Thiết kế và triển khai mô hình hệ thống. Khảo sát đánh giá hoạt động của mô hình. Các hướng phát triển đề tài.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN CHU TIẾN MẠNH
NGHIÊN CỨU KỸ THUẬT HTTP THÍCH ỨNG ĐỘNG
Trang 2M ỤC LỤC
MỤC LỤC i
LỜI CAM ĐOAN iv
TỪ VIẾT TẮT v
DANH MỤC CÁC HÌNH VẼ viii
DANH MỤC CÁC BẢNG BIỂU x
CHƯƠNG 1 PHẦN MỞ ĐẦU 1
1.1 Lý do chọn đề tài 1
1.2 Lịch sử nghiên cứu 3
1.3 Mục đích nghiên cứu 4
1.4 Phạm vi nghiên cứu 5
1.5 Phương pháp nghiên cứu 5
1.6 Tổ chức, sắp xếp của luận văn 5
CHƯƠNG 2 KIẾN THỨC CHUNG VỀ KỸ THUẬT TRUYỀN LUỒNG TRÊN GIAO THỨC HTTP 7
2.1 Kỹ thuật truyền luồng ban đầu 7
2.1.1 Giao thức giao vận thời gian thực (RTP) 7
2.1.2 Real-time streaming protocol (RTSP) 9
2.2 Phương pháp tải luồng liên tục (progressive download) 9
2.3 Phương pháp truyền luồng điều phối linh hoạt (adaptive streaming) 10
2.3.1 Bộ chuyển đổi định dạng 11
2.3.2 Bộ chuyển đổi định dạng mở rộng 11
2.3.3 Bộ chuyển mạch luồng 12
2.4 Kỹ thuật truyền luồng điều phối linh hoạt dựa trên giao thức HTTP 14
2.4.1 Ưu điểm của việc sử dụng giao thức HTTP 15
2.4.2 Kỹ thuật truyền luồng trực tiếp dựa trên giao thức HTTP của hãng Apple (HLS) 16
Trang 32.4.3 Kỹ thuật truyền luồng điều phối linh hoạt của hãng Microsoft (Live
smooth streaming - LSS) 19
2.4.4 Kỹ thuật truyền luồng điều phối linh hoạt qua giao thức của hãng Adobe (HTTP Dynamic Streaming – HDS) 21
2.4.5 Kỹ thuật truyền luồng điều phối linh hoạt MPEG trên giao thức HTTP (MPEG-DASH) 21
2.5 Các bộ mã hóa và giải mã Video (Video CODECs) 27
2.5.1 Các khung hình video 27
2.5.2 Giải mã và dấu thời gian trình diễn 28
2.5.3 H.263 29
2.5.4 Chuẩn H.264/MPEG-4 AVC 29
2.5.5 Định dạng nén chuẩn VP8 31
2.6 Audio CODECs 32
2.6.1 MP3 32
2.6.2 Kỹ thuật mã hóa âm thanh tiên tiến (Advanced Audio Coding-AAC) 32
2.6.3 Vorbis 33
2.7 Định dạng bộ chứa (Container format) 34
2.8 Các mức chất lượng video 35
2.9 Dịch vụ truyền hình theo yêu cầu và truyền hình trực tiếp 36
2.10 So sánh sự khác nhau giữa các giải pháp truyền luồng điều phối linh hoạt dựa trên giao thức HTTP 37
CHƯƠNG 3 THIẾT KẾ VÀ TRIỂN KHAI MÔ HÌNH HỆ THỐNG 39
3.1 Sự chuẩn bị nội dung 40
3.1.1 Khối chuyển mã (transcoder module) 40
3.1.2 Khối phân chia và tổng hợp (segmentervà combiner) 41
3.1.3 Khối đánh chỉ số các phân đoạn 41
3.2 Máy chủ HTTP 42
Trang 43.2.1 Máy chủ HTTP cho dịch vụ truyền hình theo yêu cầu (on-demand
server) 42
3.2.2 Máy chủ HTTP cho dịch vụ truyền hình trực tiếp (live server) 43
3.4 Client 44
3.4.1 Khối media player 45
3.4.2 Khối downloader 48
3.4.3 Khối thuật toán điều khiển chọn luồng 50
3.4.3.1 Cơ chế điều khiển thích ứng dựa theo lưu lượng cuối 51
3.4.3.2 Cơ chế điều khiển thích ứng dựa trên lưu lượng trung bình 53
3.4.3.3 Cơ chế điều khiển thích ứng lưu lượng biến thiên 55
3.5 Bộ mô phỏng đường truyền mạng (network emulator) 58
CHƯƠNG 4 KHẢO SÁT VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA MÔ HÌNH 62 4.1 Môi trường khảo sát 62
4.1.1 Môi trường hoạt động 62
4.1.2 Nguồn dữ liệu 63
4.1.3 Kịch bản hoạt động 63
4.2 Kết quả thực nghiệm 64
4.2.1 Cơ chế điều khiển thích ứng dựa trên đo lưu lượng cuối 66
4.2.2 Cơ chế điều khiển thích ứng dựa trên đo lưu lượng trung bình 68
4.2.3 Cơ chế điều khiển thích ứng dựa trên đo lưu lượng biến thiên 71
4.3 Nhận xét 74
CHƯƠNG 5 CÁC HƯỚNG PHÁT TRIỂN ĐỀ TÀI 76
5.1 Kỹ thuật truyền luồng điều phối linh hoạt đối với hệ thống có nhiều máy chủ [36] 76
5.2 Kỹ thuật truyền luồng điều phối linh hoạt sử dụng kỹ thuật dự đoán bitrate [37] 77
DANH MỤC TÀI LIỆU THAM KHẢO 79
Trang 5L ỜI CAM ĐOAN
Trước hết, tôi gửi lời cảm ơn chân thành tới tập thể các thầy cô trong Viện Điện tử viễn thông, Trường Đại học Bách Khoa Hà Nội đã tạo ra một môi trường tốt để tôi học tập và nghiên cứu Tôi cũng xin cảm ơn các thầy cô trong Viện Đào tạo sau đại học đã quan tâm đến khóa học này, tạo điều kiện cho các học viên có điều kiện thuận lợi để học tập và nghiên cứu Đặc biệt, tôi xin gửi lời cảm ơn sâu sắc đến PGS.TS Phạm Ngọc Nam đã tận tình chỉ bảo, hướng dẫn và sửa chữa cho nội dung của luận văn này
Tôi cam đoan rằng nội dung của luận văn này là hoàn toàn do tôi tìm hiểu, nghiên cứu và viết ra Tất cả đều được tôi thực hiện cẩn thận và có sự định hướng của giáo viên hướng dẫn
Tôi xin chịu trách nhiệm với những nội dung trong luận văn này
Tác giả
Nguy ễn Chu Tiến Mạnh
Trang 6T Ừ VIẾT TẮT
3GPP 3rd Generation Partnership Project
BSD Berkeley Software Distribution
CBP Constrained Baseline Profile
CBP Constrained Baseline Profile
CPU Central Processing Unit
GUI Graphical User Interface
HTTP HyperText Transfer Protocol
IEC International Electrotechnical Commission IETF Internet Engineering Task Force
IPTV Internet Protocol Television
Trang 7ISO International Organization for Standardization
ITU International Telecommunication Union
LGPL Lesser General Public License
LSS Microsoft’s Live Smooth Streaming
MEGACO Media Gateway Control Protocol
MIME Multipurpose InternetMail Extensions
MMUSIC MultipartyMultimedia Session Control (Working Group)
MPD Media Presentation Description
MPEG Moving Picture Experts Group
MPEG-DASH MPEG Dynamic Adaptive Streaming over HTTP
MS IIS Microsoft Internet Information Services
Trang 8QSS QuickTime Streaming Server
RTMP Real TimeMessaging Protocol RTP Real-time Transport Protocol RTSP Real Time Streaming Protocol
SCCP Skinny Call Control Protocol
SIP Session Initiation Protocol SNTP Simple Network Time Protocol
TCP Transmission Control Protocol
URI Uniform Resource Identifier
VCEG Video Coding Experts Group
VoIP Voice over Internet Protocol
Trang 9DANH M ỤC CÁC HÌNH VẼ
Hình 1.1 Lưu lượng sử dụng mạng đự đoán trên các thiết bị khác nhau [5] 2
Hình 1.2 Lưu lượng của các dịch vụ khác nhau được sử dụng trên các thiết bị điện thoại thông minh [5] 2
Hình 1.3 Minh họa kỹ thuật adaptive streaming cung cấp nội dung 4
Hình 2.1 Mô hình bộ chuyển đổi cho kỹ thuật truyền luồng điều phối linh hoạt [6] 11
Hình 2.2 Mô hình phương pháp chuyển đổi định dạng mở rộng ứng dụng cho kỹ thuật truyền luồng điều phối linh hoạt [6] 12
Hình 2.3 Mô hình sử dụng bộ chuyển mạch luồng cho kỹ thuật truyền luồng điều phối linh hoạt [6] 13
Hình 2.4 Đồ thị các mức chuyển bit-rate theo thời gian sử dụng 14
Hình 2.5 Mô hình hoạt động của kỹ thuật truyền luồng trên nền tảng 15
Hình 2.6 Mô hình các file duổi mở rộng m3u8 cho các luồng stream khác nhau [10] 19
Hình 2.7 Kiến trúc mô hình hoạt động của kỹ thuật truyền luồng trực tuyến qua giao thức HTTP [10] 19
Hình 2.8 Mô hình tổ chức dữ liệu của DASH 23
Hình 2.9 Mô tả các giao tiếp giữa máy chủ và máy khách 27
Hình 2.10 Sự phân bố các khung hình trong một luồng video stream 28
Hình 2.11 Cấu hình cơ bản, chính và mở rộng của H.264 30
Hình 3.1 Kiến trúc chung của hệ thống 39
Hình 3.2 Mô hình các khối chuẩn bị nội dung 40
Hình 3.3 Đặc tính trả về thông điệp phản hồi của máy chủ HTTP 44
Hình 3.4 Mô hình hoạt động của ứng dụng 45
Hình 3.5 Sơ đồ chuyển trạng thái của khối player 46
Hình 3.6 Nội dung các thông số được lưu trữ 50
Hình 3.7 Mô hình xác định lưu lượng dùng đánh giá cho mạng 55
Hình 3.8 Mối quan hệ giữa giữa 𝒑𝒑 và 𝜹𝜹33T 57
Hình 3.9 Cơ chế hoạt động của DummyNet 59
Hình 3.10 Các tham số cơ bản, Queue và pipe, của DummyNet 60
Hình 4.1 Mô hình hệ thống khảo sát 62
Hình 4.2 Mô hình các pipe giả lập, hạn chế băng thông mạng 64
Hình 4.3 Giao diện phần mềm eclipse SDK 65
Hình 4.4 Giao diện cửa sổ console khi hoạt động tốt 65
Hình 4.5 Giao diện cửa sổ console khi kết nối bị ngắt 66
Hình 4.6 Đồ thị kết quả đo được theo cơ chế điều khiển thích ứng 68
Trang 10Hình 4.7 Đồ thị kết quả đo được theo cơ chế điều khiển thích ứng dựa trên đo lưu lượng trung bình 71 Hình 4.8 Đồ thị kết quả đo được theo cơ chế điều khiển thích ứng dựa trên đo lưu lượng biến thiên 74 Hình 5.1 Mô hình xử lý truyền luồng điều phối linh hoạt với nhiều máy chủ 76 Hình 5.2 Mô hình các khối trên client 77
Trang 11DANH M ỤC CÁC BẢNG BIỂU
Bảng 2.1 Ví dụ về nội dung của một tập tin M3U chứa đường dẫn tới các đoạn
video 17
Bảng 2.2 Ví dụ về nội dung của một file M3U chứa đường dẫn tới các file M3U nhỏ chứa các đường dẫn tới các đoạn video được mã hóa khác nhau 17
Bảng 2.3 Nội dung một tệp tin manifest mẫu viết trên ngôn ngữ đánh dấu XML 20
Bảng 2.4 Nội dung của một tập tin XML mô tả một DASH manifest file [24] 23
Bảng 2.5 Sự khác nhau cơ bản giữa ba cấu hình CBP, BP và MP của chuẩn H.264 31
Bảng 2.6 Video và audio hỗ trợ trên các dạng container 35
Bảng 2.7 So sánh các giải pháp trong truyền luồng điều phối linh hoạt dựa trên giao thức HTTP [2, 3, 20] 37
Bảng 3.1 Ví dụ nội dung tập tin NHML được tạo bởi Mp4box 41
Bảng 3.2 Đoạn chương trình thực hiện chuyển trạng thái khi chương trình được chạy 46
Bảng 3.3 Đoạn chương trình của play state 47
Bảng 3.4 Đoạn chương trình của buffering state 48
Bảng 3.5 Đoạn mã được sử dụng cho thuật toán thứ nhất 53
Bảng 3.6 Thuật toán điều phối thích ứngdựa trên đo lưu lượng trung bình 53
Bảng 3.7 Đoạn mã thực hiên cho thuật toán 2 54
Bảng 3.8 Đoạn mã cho cơ chế điều khiển bằng đo lưu lượng biến thiên 57
Bảng 3.9 Ví dụ đoạn mã cấu hình cho DummyNet 60
Bảng 3.10 Ví dụ đoạn mã cho DummyNet 60
Bảng 4.1 Kết quả cơ chế điều khiển thích ứng dựa trên đo lưu lượng cuối 66
Bảng 4.2 Kết quả đầu ra theo cơ chế điều khiển thích ứng dựa trên 68
Bảng 4.3 Kết quả đầu ra của cơ chế điều khiển thích ứng dựa trên 71
Trang 12CHƯƠNG 1 PHẦN MỞ ĐẦU
1.1 Lý do ch ọn đề tài
Ngày nay, kỹ thuật truyền luồng đã và đang được sử dụng làm kỹ thuật chính
để cung cấp các dịch vụ truyền hình đa phương tiện, cho phép cung cấp một cách liên tục dữ liệu từ máy chủ (server) tới người sử dụng (end-user) Tuy nhiên, các phương pháp truyền luồng cũng luôn cần được cải thiện, nâng cao khi mà khả năng đáp ứng của mạng và các kịch bản sử dụng trở lên tốt hơn và phức tạp hơn [1] Do
đó, việc tạo ra một kỹ thuật mới có khả năng cung cấp một cách tự động chất lượng dịch vụ tốt nhất cho người sử dụng đang trở thành một thách thức cấp thiết cho các nhà phát triển Dựa trên nền tảng đang được sử dụng rộng rãi hiện nay là giao thức truyền siêu văn bản (HTTP), một kỹ thuật truyền luồng mới đang được các nhà nghiên cứu phát triển được gọi là kỹ thuật truyền luồng điều phối linh động [1,2,3,4]
Những nghiên cứu gần đây [5] đã chỉ ra rằng số lượng các thiết bị sử dụng các dịch vụ xem truyền hình trực tuyến đang ngày một trở lên đa dạng, trong đó, số lượng điện thoại di động tăng lên một cách đang kể Do vậy, các nghiên cứu gần đây được tập trung vào việc cung cấp các dịch vụ mạng cơ bản thông qua các giao tiếp kết nối qua mạng không dây và kết nối băng thông rộng Các thiết bị điện thoại thông minh có thể được xem như các máy tính hiện đại, sử dụng các hệ điều hành tinh vi hơn rất nhiều so với các máy điện thoại cầm tay trước đây Nó cho phép cài đặt các ứng dụng của hãng phát triển thứ ba để thực thi các ứng dụng Hình 1.1 mô
tả dự đoán lưu lượng sử dụng mạng thông qua các thiết bị trong một vài năm tới
Dự đoán cho thấy lưu lượng kết nối mạng trên các thiết bị điện thoại di động tăng một cách đáng để, chiếm tới khoảng 26.6% tổng lưu lượng sử dụng mạng trong năm
2015
Dữ liệu cho các dịch vụ xem truyền hình trực tuyến, truyền hình theo yêu cầu trở thành dịch vụ được sử dụng nhiều lưu lượng mạng nhất trong các nội dung sử dụng ứng dụng trên thiết bị di động Hình 1.2 chỉ ra lưu lượng video được dự đoán
Trang 13tăng theo cấp số mũ trong một vài năm tới, với khoảng 66% lưu lượng được sử dụng để xem video, 20,9% lưu lượng sử dụng cho các dữ liệu duyệt web, khoảng 1,9% lưu lượng dữ liệu được sử dụng cho các dịch vụ VoIP và trò chơi trực tuyến
Hình 1.1 Lưu lượng sử dụng mạng đự đoán trên các thiết bị khác nhau [5]
Hình 1.2 Lưu lượng của các dịch vụ khác nhau được sử dụng trên các thiết bị
điện thoại thông minh [5]
Với mục đích muốn tìm hiểu và nắm bắt được công nghệ truyền luồng điều phối thích ứng và xây dựng một mô hình phần mềm mô tả và đánh giá hoạt động của công nghệ này trên các kịch bản mạng sử dụng mạng không dây, em đã chọn đề tài này để làm hướng nghiên cứu luận văn của mình
Trang 141.2 L ịch sử nghiên cứu
Do sự bùng nổ một cách mạnh mẽ của các thiết bị sử dụng cuối cùng nhưng dưới những mạng di động hỗn tạp, việc chưa có sự thống nhất chung đã dẫn tới một thách thức đó là làm sao để cung cấp một cách điều phối linh hoạt linh động và tự động các nội dung đa phương tiện giữa nhà cung cấp và người dùng để sao cho có thể cung cấp được chất lượng dịch vụ tốt nhất cho người dùng Mặt khác, có rất nhiều các ràng buộc ảnh hướng tới việc cung cấp các dịch vụ tới người dùng như tốc độ biến đổi của đường mạng, hay khả năng xử lý của thiết bị sử dụng cuối cùng
Cụ thể như, các thiết bị di động có thể bị hạn chế bởi độ phân giải màn hình hiển thị, chất lượng video bit-rate hay các định dạng hỗ trợ Nội dung chính của báo cáo
đề tài này tập trung vào việc thiết lập mô hình cho kỹ thuật tiếp cận mới của việc cung cấp các dịch vụ đa phương tiện, qua đó, xây dựng các kịch bản, tính toán và đánh giá hoạt động của thiết bị sử dụng cuối cùng trong các điều kiện mạng khác nhau Hình 1.3 ở dưới minh họa cho kỹ thuật tiếp cận mới, kỹ thuật truyền luồng điều phối linh hoạt (adaptive streaming), cho các máy client hoạt động trên các điều kiện mạng khác nhau Bằng cách phân chia nội dung một tập tin đa phương tiện ra thành nhiều phần nhỏ, với các mức tốc độ bit khác nhau, và sử dụng một cơ chế điều khiển điều phối linh hoạt, để cho phép dựa trên những điều kiện ràng buộc giữa điều kiện mạng và máy client của người sử dụng để chọn ra nội dung có chất lượng phù hợp nhất phân phối tới người sử dụng cuối cùng [6] Chi tiết về các kỹ thuật truyền luồng điều phối linh hoạt phổ biến hiện nay sẽ được trình bày ở chương sau
Trang 15Streaming Server
Hình 1.3 Minh h ọa kỹ thuật adaptive streaming cung cấp nội dung
đa phương tiện tới người sử dụng cuối
Đối với trường hợp truyền luồng điều phối linh hoạt cho các dịch vụ truyền hình trực tiếp, kỹ thuật này vẫn cần phải đánh giá được các giải pháp điều phối linh hoạt khác nhau trên các điều kiện thay đổi đối với các thiết bị sử dụng mạng không dây Do đó, việc sử dụng lại hệ thống mạng phân phối nội dung (CDN) [7] trên giao thức sẵn có mang lại nhiều ưu điểm cho việc cung cấp các dịch vụ truyền luồng truyền hình trực tiếp Cụ thể như ta có thể tận dụng các thế mạnh của giao thức sẵn
có như các kỹ thuật đã và đang được sử dụng để tối ưu hóa, hay tiết kiệm được chi phí rất lớn phải bỏ ra để xây dựng cơ sở hạ tầng đã có
1.3 M ục đích nghiên cứu
Đề tài thực hiện nhằm dựa trên những mục tiêu chính sau:
Xây dựng một hệ thống hoạt động dựa trên nguyên lý hoạt động của kỹ thuật truyền luồng điều phối linh hoạt Sử dụng hệ thống trên làm mô hình chung trong việc nghiên cứu, đánh giá các yếu tố ràng buộc, ảnh hướng tới chất lượng của dịch vụ truyền hình
Đề xuất và đánh giá một số thuật toán được sử dụng trong kỹ thuật truyền luồng điều phối linh hoạt sử dụng giao thức HTTP Các cơ chế điều phối linh hoạt này được sử dụng ở trên máy khách, qua đó chỉ ra được thuật toán hoạt động phù
Trang 16hợp hơn, cho phép cung cấp chất lượng dịch vụ tốt hơn, tối ưu hơn cho việc sử dụng băng thông mạng người dùng
Đánh giá hệ thống trên các kịch bản mạng khác nhau với các tốc độ bit, độ trễ gói, tỷ lệ mất gói, chất lượng hình ảnh, thời gian từng đoạn hình ảnh… Qua đó, thực hiện phân tích các ưu điểm và khả năng của các cơ chế truyền luồng điều phối linh hoạt để nâng cao hiệu suất trong các điều kiện khác nhau
1.4 Ph ạm vi nghiên cứu
Đề tài tập trung vào việc đánh giá hiệu năng hoạt động của các cơ chế, thuật toán điều phối linh hoạt khác nhau dưới những kịch bản mạng của người sử dụng cuối cùng Do đó, việc nghiên cứu cho nhiều người sử dụng cùng truy nhập tới một máy chủ hoặc sử dụng nhiều máy chủ tham gia vào quá trình truyền nhận dữ liệu chưa được đề cập tới trong nghiên cứu này
Các giao tiếp truyền nhận sử dụng trong đề tài nghiên cứu đều dự trên giao thức truyền siêu văn bản (HTTP) và sử dụng giao thức truyền nhận tin cậy (TCP)
Do đó, các giao thức giao tiếp này đã được hỗ trợ sẵn các phương thức truyền luồng tin cậy và các cơ chế tránh tắc nghẽn Tuy nhiên, các ưu điểm và nhược điểm khi sử dụng giao thức này sẽ không được đề cập tới trong nghiên cứu này
1.5 Phương pháp nghiên cứu
Nghiên cứu lý thuyết về kỹ thuật truyền luồng thích ứng động, các thuật toán được điều phối linh hoạt khác nhau, đồng thời xây dựng mô hình hoạt động trên máy client để thực hiện khảo sát hoạt động cụ thể của ứng dụng trên thiết bị máy client trong các điều kiện, kịch bản mạng khác nhau
1.6 T ổ chức, sắp xếp của luận văn
Chương 1 Phần mở đầu trình bày về các vấn đề đặt ra, lý do và mục tiêu
nghiên cứu của đề tài, đồng thời cũng nêu rõ về phạm vi nghiên cứu được thực hiện trong nội dung của luận văn
Chương 2 Kiến thức tổng quan trình bày về các khái niệm cơ bản liên quan
tới các kỹ thuật truyền luồng Giới thiệu về các kỹ thuật truyền luồng điều phối linh
Trang 17hoạt khác nhau và các giao thức điều phối linh hoạt đã được công bố như HLS của Apple, LSS của Microsoft, hay một chuẩn mới đang được nghiên cứu là MPEG-DASH Ngoài ra, trong chương cũng nói tới các chuẩn định dạng được sử dụng cho các nội dung đa phương tiện, các bộ mã hóa và giải mã (CODECs) được sử dụng
Chương 3 Thiết kế và triển khai trình bày về kiến trúc, thiết kế và triển
khai mô hình sử dụng kỹ thuật truyền luồng điều phối linh hoạt dựa trên các giao thức truyền TCP thông qua giao thức HTTP
Chương 4 Khảo sát và Đánh giá trình bày về các cài đặt cho môi trường
kiểm tra, các cấu hình kịch bản mạng được thiết lập cho bài thí nghiệm và đưa ra các kết quả để từ đó đánh giá hiệu quả của các thuật toán được sử dụng
Chương 5 Các hướng phát triển đề tài nêu các hướng có thể tiếp tục được
nghiên cứu để nâng cao khả năng hoạt động của hệ thống, cung cấp chương trình có khả năng cung cấp các nội dung có chất lượng cao hơn
Trang 18CHƯƠNG 2 KIẾN THỨC CHUNG VỀ KỸ THUẬT
Hiện nay, có ba phương pháp chính đang được sử dụng để phân phối các nội dung đa phương tiện là: phương pháp truyền luồng ban đầu (traditional streaming) (mục 2.1), phương pháp tải luồng liên tục (progressive streaming) (mục 2.2), và phương pháp truyền luồng điều phối linh hoạt (adaptive streaming) (mục 2.3) Mục 2.4 trình bày về kỹ thuật truyền luồng điều phối linh hoạt sử dụng giao thức truyền siêu văn bản (HTTP) như một giao thức phân phối các nội dung đa phương tiện Sự triển khai phổ biến nhất của công nghệ này được giải thích chi tiết trong các phần phụ sau: kỹ thuật truyền luồng điều phối linh hoạt động sử dụng giao thức HTTP của Apple (HTTP live streaming - HLS) mục 2.4.2, Microsoft (Live smooth streaming - LSS) mục 2.4.3, Adobe với HTTP dynamic streaming mục 2.4.4 và một chuẩn đang được nghiên cứu là MPEG-DASH, được trình bày trong mục 2.4.5 Các
kỹ thuật này được sử dụng để ứng dụng cho hai dịch loại dịch vụ chính là truyền video theo yêu cầu và truyền luồng trực tuyến
Ngoài ra, trong chương cũng trình bày về các định dạng video và audio thích
hợp được sử dụng Cuối cùng, cuối chương đưa ra một sự so sánh ngắn gọn về các cách tiếp cận của kỹ thuật truyền luồng thích ứng khác nhau
2.1 K ỹ thuật truyền luồng ban đầu
Kỹ thuật truyền luồng cổ điển [1] là kỹ thuật yêu cầu một giao thức trạng thái,
nó thiết lập một phiên làm việc giữa các nhà cung cấp dịch vụ và khách hàng Trong công nghệ này, phương tiện truyền thông được gửi đi như một chuỗi các gói tin Giao thức được sử dụng chủ yếu trong dịch vụ này là giao thức giao vận thời gian thực (Real Time transport protocol - RTP) và giao thức truyền luồng thời gian thực (Real Time streaming Protocol - RTSP)
2.1.1 Giao th ức giao vận thời gian thực (RTP)
Giao thức vận chuyển thời gian thực [8] đặc tả một tiêu chuẩn định dạng gói tin dùng để truyền âm thanh và hình ảnh qua mạng internet Tiêu chuẩn này được
Trang 19khai báo trong RFC 1889, phát triển bởi nhóm audio-video transport working và công bố lần đầu tiên vào năm 1996
RTP là một giao thức cung cấp chức năng đầu cuối tới đầu cuối (end-to-end), giao thức truyền tải thời gian thực cho các dịch vụ mạng phân bố dữ liệu unicast hoặc multicast Do RTP hoạt động ở trên giao thức gói dữ liệu người dùng (UDP) nên phù hợp cho phân phối multicast, trong khi tất cả các giao thức được xây dựng trên giao thức điều khiển truyền dữ liệu (TCP) chỉ có thể thực hiện cho phân phối unicast Vì vậy, giao thức RTP thường được sử dụng cho các ứng dụng đa phương tiện âm thanh và hình ảnh trong dịch vụ truyền hình TV qua mạng (IPTV), khi đó các nhà cung cấp dịch vụ mạng có thể điều khiển được lưu lượng định tuyến multicast trong mạng Giao thức RTP trong các dịch vụ truyền luồng các dữ liệu đa phương tiện thường sử dụng giao thức RTSP, với âm thanh và hình ảnh được truyền trên các luồng RTP riêng biệt
Đặc điểm kỹ thuật của RTP mô tả hai tiểu giao thức là giao thức truyền dữ liệu (RTP) và giao thức điều khiển thời gian thực (RTCP) [8, mục 6], có các dịch vụ giám sát chất lượng và thu thập các thông tin về những người tham gia vào phiên truyền RTP đang tiến hành:
RTP cung cấp các chức năng giao vận phù hợp cho các ứng dụng truyền
dữ liệu mang đặc tính thời gian thực sử dụng các bộ mã hóa khác nhau với các nhãn thời gian, và đánh số thứ tự Các nhãn thời gian và số thứ tự cho phép bên nhận có thể phát hiện các gói bị mất và thực hiện sắp xếp lại thứ tự các gói khi cần thiết và đồng bộ luồng dữ liệu truyền
RTCP chỉ rõ thông tin điều khiển cho việc đồng bộ và các tham số về chất lượng của các dịch vụ mà có thể được gửi đi Giao thức này chỉ sử dụng tối đa 5% của băng thông của lưu lượng toàn mạng
Giao thức RTP có thể được sử dụng một cách tùy chọn với một giao thức mô
tả phiên hoặc một giao thức phát tín hiệu như giao thức H.323, giao thức điều khiển cổng phương tiện (MEGACO), giao thức điều khiển cuộc gọi (SCCP), hoặc giao thức báo hiệu dùng cho hội nghị và điện thoại qua mạng internet (SIP)
Trang 20RTP vừa cung cấp một cơ chế để đảm bảo truyền kịp thời, vừa đảm bảo chất lượng của dịch vụ Ngoài ra, giao thức này cũng cung cấp các cơ chế điều khiển luồng giúp kiểm soát luồng và tránh tắc nghẽn khi thực thi các ứng dụng
2.1.2 Real-time streaming protocol (RTSP)
Giao thức truyền luồng thời gian thực (RTSP) là một giao thức điều khiển phiên cung cấp một cơ chế mở rộng để điều khiển sự truyền dữ liệu thời gian thực
Nó được phát triển bởi nhóm kiểm soát phiên đa phương tiện (MMUSIC) của IETF năm 1998 Giao thức RTSP thường dùng thiết lập và điều khiển các phiên đa phương tiện giữa các điểm thiết bị cuối, nhưng nó không phụ trách trong việc truyền dữ liệu đa phương tiện Giao thức RSTP hoạt động dựa trên các cơ chế phân phối của giao thức RTP Nói cách khác, giao thức RTSP là giao thức trạng thái, cả máy khách và máy chủ có thể đưa ra yêu cầu Những yêu cầu này cần được thể hiện dưới ba cách khác nhau:
o Kết nối liên tục được sử dụng cho một số yêu cầu/ đáp ứng giao dịch
o Một kết nối cho một yêu cầu/ đáp ứng giao dịch
o Không kết nối
Giao thức RTSP được triển khai phổ biến trên hệ thống máy chủ streaming của Apple (QSS) (hay phiên bản mã nguồn mở, apple’s Darwin server - DSS) và mạng máy chủ thực tế Helix
2.2 P hương pháp tải luồng liên tục (progressive download)
Kỹ thuật truyền tải liên tục là một kĩ thuật được sử dụng để truyền tải dữ liệu giữa máy chủ và máy khách, và hiện đang được sử dụng rộng rãi và phổ biến trên internet Triển khai của kỹ thuật truyền tải liên tục bao gồm một máy chủ HTTP chính Người sử dụng gửi yêu cầu một nội dung đa phương tiện, nội dung này được tải về một bộ đệm cục bộ trên máy tính Ngay khi có đủ một lượng dữ liệu, chương trình ứng dụng trên máy khác sẽ thực hiện chạy đoạn nội dung đa phương tiện cho người dùng xem Khi đó, nếu tốc độ phát videonhanh hơn so với tốc độ truyền tải
về (download), thì chương trình chạy video được hoãn lại cho đến khi download được nhiều dữ liệu hơn
Trang 21Do những đặc tính trên nên kỹ thuật truyền tải một cách liên tục có những khuyết điểm như sau:
o Gây lãng phí băng thông khi người xem chỉ mở mà không xem hết nội dung chương trình video Do phần nội dung đã được truyền tải về máy nhưng chưa được chạy trở thành không cần thiết trong việc xem
o Không có khả năng điều phối linh hoạt bit-rate của video Do mỗi máy client khi gửi yêu cầu tới máy chủ thì máy chủ sẽ dựa vào điều kiện băng thông của đường mạng đang sử dụng trên máy client mà quyết định sẽ gửi đi luồng với chất lượng hình ảnh tương ứng với băng thông đường mạng đang có
o Không có khả năng hỗ trợ cho các dịch vụ truyền hình trực tiếp mà hầu hết chỉ hỗ trợ cho các dịch vụ chia sẻ video theo yêu cầu
2.3 Phương pháp truyền luồng điều phối linh hoạt (adaptive streaming)
Kỹ thuật truyền luồng điều phối linh hoạt (adaptive streaming) [1] là một kỹ thuật cho phép dựa trên việc xác định băng thông còn dùng được của người dùng và khả năng xử lý của vi xử lý dùng trên máy khác để điều chỉnh chất lượng của video được cung cấp cho người dùng, qua đó cung cấp các video với chất lượng tốt nhất cho người dùng trong từng trường hợp Để thực hiện được như trên, kỹ thuật này yêu cầu một bộ mã hóa có khả năngcung cấp các video với nhiều bit-rate khác nhau (hoặc sử dụng nhiều bộ mã hóa với chất lượng đầu ra có các bit-rate của video khác nhau) và phải được triển khai trong một mạng phân phối nội dung đa phương tiện (CDN) Nhờ vậy, người dùng được phân phối các nội dung đa phương tiện với chất lượng cao nhất có thể
Phần tiếp trình bày chi tiết hơn về các khối để tạo ra được các nguồn video với các bit-rate khác nhau: bộ chuyển đổi định dạng (transcoding) (mục 2.3.1), bộ chuyển đổi định dạng mở rộng (scalable encoding) (mục 2.3.2) và bộ chuyển mạch luồng (mục 2.3.3)
Trang 222.3.1 B ộ chuyển đổi định dạng
Bộ chuyển đổi định dạnglấy thông tin đầu vào là các video nguyên bản, và các tham số mã hóa Hình 2.1 dưới đây mô tả mô hình kỹ thuật của bộ chuyển đổi định dạng Ưu điểm chính của phương pháp này là độ chi tiết có thể đạt được của nội dung khá tốt khi dòng thông tin được chuyển đổi trên các băng thông sẵn có của người dùng
Controller
Transcoder
Encoding Parameters
Hình 2.1 Mô hình b ộ chuyển đổi cho kỹ thuật truyền luồng điều phối linh hoạt
[6]
Tuy nhiên, phương pháp trên cũng có một vài nhược điểm chính như sau:
o Chi phí của bộ chuyển đổi cao, do nội dung của video nguyên bản cần phải được chuyển đổi sang nhiều nội dung video khác với các chất lượng khác nhau Do
đó, làm giảm khả năng mở rộng của bộ chuyển đổi khi thực hiện trong các điều kiện băng thông có sẵn của mỗi khách hàng Ngoài ra, quá trình mã hóa được thực hiện phải thỏa mãn các yêu cầu tính toán khi hoạt động trong một hệ thống thời gian thực để có thể triển khai được trong các mạng phân phối nội dung đa phương tiện (CDN)
2.3.2 B ộ chuyển đổi định dạng mở rộng
Sử dụng chuẩn mã hóa mở rộng ví dụ như H.264/MPEG -4 AVC được mô tả
cụ thể trong mục 2.5.4, cho phép điều chỉnh độ phân giải của hình ảnh và tốc độ khung hình mà không cần phải mã hóa lại toàn bộ nội dung các video nguyên bản ban đầu Phương pháp này giúp cho giảm tải trong quá trình tạo và đưa dữ liệu
Trang 23video lên máy chủ, tuy nhiên lại bị hạn chế ở tập hợp các định dạng hỗ trợ cho phép
sử dụng phương pháp chuyển đổi định dạng này Hình 2.2 dưới đây mô tả mô hình
sử dụng bộ chuyển đổi định dạng mở rộng này cho kỹ thuật truyền luồng điều phối linh hoạt
Controller
Scalable video
Encoding Parameters Scalable encoder
Hình 2.2 Mô hình phương pháp chuyển đổi định dạng mở rộng ứng dụng cho
k ỹ thuật truyền luồng điều phối linh hoạt [6]
Mặt khác, việc triển khai được mô hình này vào các mạng phân phối nội dung
đa phương tiện khá phực tạp, do các máy chủ cần được tích hợp thêm một khối logic thực hiện thuật toán điều phối linh hoạt [6]
2.3.3 B ộ chuyển mạch luồng
Trong phương pháp tiếp cận này, nội dung của một video được mã hóa thành các video có cùng nội dung nhưng với bit-rate khác nhau Hình 2.3 mô tả mô hình hoạt động của bộ chuyển mạch luồng được sử dụng trong kỹ thuật truyền luồng điều phối linh hoạt Ở đây, nội dung video sau khi được mã hóa thành các nội dung video với các bit-rate khác nhau sẽ được một bộ điều khiển cho phép chọn ra một cách linh động nội dung video với bit-rate thích hợp nhất với băng thông mạng hiện
có của máy người sử dụng Khi băng thông hiện có của đường truyền bị thay đổi, thì thuật toán thực hiện chuyển sang phát mức video với bit-rate khác, thích hợp để đảm bảo tính chạy mượt, không bị giật của video được xem
Trang 24Hình 2.3 Mô hình s ử dụng bộ chuyển mạch luồng cho kỹ thuật truyền luồng
điều phối linh hoạt [6]
Mục đích chính của phương pháp này là tối thiểu hóa chi phí xử lí, không cần phải thêm bất kỳ một quy trình nào khác để tạo ra các video với các mức khác nhau Hơn nữa, phương pháp này không đòi hỏi một định dạng CODEC cụ thể để có thể thực hiện được Tuy nhiên, việc lưu trữ và truyền các nội dung video cần phải được xem xét do các video với nội dung giống nhau được mã hóa R lần nhưng với bit-rate khác nhau Ở đây, cần chú ý rằng mức độ chất lượng của video được xem không tăngdo tại một thời điểm chỉ có một luồng truyền có bit-rate phù hợp nhất được truyền Nhược điểm của phương pháp này là việc tạo ra các tệp tin mô tả chi tiết tập hợp các video giống nhau nhưng được mã hóa ở các mức bit-rate khác nhau Ngoài ra, cần phải xác định được các mức bit-rate nào nên được sử dụng để mã hóa sao cho đạt được tối ưu trong việc phân chia các mức bit-rate mã hóa
Hình 2.4 miêu tả một đồ thị các mức bit-rate được sử dụng của từng đoạn video biến đổi theo thời gian sử dụng phương pháp chuyển mạch luồng Giả sử rằng tất cả các đoạn video có cùng độ dài thời gian chạy và các hoạt động chuyển mạch được thực hiện sau mỗi đoạn video được chạy, các đoạn video chất lượng khác nhau được chạy một cách tuần tự theo đúng thứ tự, thì số lượng mức video và thời gian của từng đoạn video cũng cần được nghiên cứu và đánh giá sao cho thích hợp
Trang 25Segment duration Quality levels
Segment N
Time Segment 1
Hình 2.4 Đồ thị các mức chuyển bit-rate theo thời gian sử dụng
và được đánh dấu bằng một mã khóa khung Cuối cùng, tất cả các đoạn trên được
mã hóa theomột định dạng mong muốn và lưu trữ trên một máy chủ HTTP
Các máy client gửi yêu cầu các tới các phân đoạn video một cách tuần tự và tải dữ liệu về dựa trên kỹ thuật truyền tải liên tục của giao thức HTTP Các đoạn video này được chạy theo đúng thứ tự được phát của video chính, đảm bảo việc phát nối tiếp các đoạn video một cách liên tục Tất cả các thuật toán điều khiển điều phối linh hoạt đều được điều khiển trên máy client Trên máy client sẽ thực hiện các tính toán cơ bản về thời gian phát của các đoạn video, đo đạc băng thông mạng, từ
đó, điều khiển chọn tăng hoặc giảm chất lượng đoạn video được yêu cầu Hình 2.5
Trang 26mô tả mô hình cơ bản của kỹ thuật truyền tải luồng điều phối linh hoạt dựa trên giao thực HTTP, bộ điều khiển phản hồi điều khiển việc chọn lựa các đoạn video bit-ratenằm ở phía máy khách Mũi tên dày hơn tương ứng với truyền tải của một đoạn video dữ liệu thực tế
GET: Manifest file
User clicks on video
content Manifest file gets parsed
Send video level l(s0)
Send video level l(si)
Hiện nay, giao thức HTTP được sử dụng là giao thức phân phối các nội dung
đa phương tiện phổ biến trên mạng internet bởi các cơ chế dịch vụ tránh được các vấn đề về tường lửa (firewall) và sự dịch địa chỉ mạng (Network Address Translation - NAT) Cụ thể, các dịch vụ sử dụng tường lửa hỗ trợ mở các cổng cho phép giao thức HTTP vượt qua, khi đó, các máy khách khởi tạo các kết nối TCP từ phía sau tường lửa hay sự dịch địa chỉ mang (NAT) NAT hoặc tường lửa sẽ cho
Trang 27phép các gói dữ liệu (packets) từ HTTP máy chủ được truyền đến máy khác thông qua một kết nối TCP hoặc SCTP.Ngoài ra,giao thức HTTP sử dụng giao thức TCP nhận các yêu cầu phân phối các dòng byte đáng tin cậy một cách tự động và cung cấp cơ chế tránh tắc nghẽn khi truyền nhận gói tin qua hạ tầng mạng Cuối cùng, việc sử dụng các dịch vụ dựa trêngiao thức HTTP có thể tận dụng sử dụng các hệ thống máy chủ trên giao thức HTTP và cở sở hạ tầng hệ thống phân phối nội dung mạng (CDN) hiện có
Cuối cùng, phiên giao dịch của luồng (streaming) được kiểm soát hoàn toàn trênmáy khách, do đó không cần một sự thay đổi nào trên hệ thống máy chủ dựa trên giao thức HTTP Máy khách chỉ cần mở các kết nối và chọn khởi tạo một bit-rate ban đầu cho nội dung yêu cầu Sau đó, các thuật toán trên máy khách sẽ thực hiện chọn và chuyển đổi mức bit-rate các nội dung yêu cầu tùy thuộc vào băng thông có sẵn đo được trên đường mạng kết nối của máy khách
2.4.2 K ỹ thuật truyền luồng trực tiếp dựa trên giao thức HTTP của hãng Apple (HLS)
Tháng 5/2009, hãng Apple phát hành một giao thức giao tiếp các nội dung đa phương tiện bằng các luồng truyền dựa trên giao thức HTTP (Apple – HLS) [3, 9,
10, 11, 12] để truyền dòng dữ liệu đa phương tiện bị chặn và không bị chặn HLS được phát triển dựa trên công nghệ truyền luồng của mạng Emblaze được phát hành vào năm 1998 Trong kỹ thuật này, luồng dữ liệu tổng thể được chia thành một chuỗi các tập tin được yêu cầu truyền tải dựa trên các giao thức HTTP Máy client hoạt động có thể chọn các luồng truyền với các dữ liệu được mã hóa ở các mức khác nhau Giao thức HTTP sử dụng trên máy client có thể hoạt động vượt qua được các hệ thống tường lửa (firewall) và các máy chủ ủy nhiệm (proxy servers) Không giống như giao thức UDP hoạt động dựa trên giao thức như RTP cần được yêu cầu các cổng phải được mở tronglớp tường lửa hoặc yêu cầu sử dụng môt cổng lớp ứng dụng
Apple-Ban đầu, người sử dụng tải về một tệp tin có đuổi mở rộng là M3U playlist , chứa danh sách các mã định dạng tài nguyên đồng nhất (URIs) [13] tương ứng với
Trang 28các đoạn luồng dữ liệu đã được mã hóa ở các mức khác nhau Mỗi đoạn media riêng phải có định dạng là dạng một luồng MPEG-2 [14]
Đoạn code trong bảng 2.1 minh họa một ví dụ đơn giản của nội dung một tệp tin có đuôi mở rộng là M3U playlist thực hiện cho một luồng có nội dung được chia thành ba đoạn video nhỏ, mỗi đoạn có chiều dài 10 giây Bảng 2.2 đưa ra một ví dụ phức tạp hơn ví dụ ở trên, nội dung của tệp tin mở rộng M3U này chứa các danh sách tệp tin con có đuôi M3U được sử dụng trên các điều kiện băng thông mạng khác nhau
B ảng 2.1 Ví dụ về nội dung của một tập tin M3U chứa đường dẫn tới các đoạn
Bảng 2.2 Ví dụ về nội dung của một file M3U chứa đường dẫn tới các file M3U
nh ỏ chứa các đường dẫn tới các đoạn video được mã hóa khác nhau
Trang 299 http://www.example.com/audio-only.m3u8
Toàn bộ quá trình được thực hiện của kỹ thuật truyền luồng ứng dụng qua giao thức HTTP trênkiến trúc Apple – HLS được thể hiện ở hình 2.6 Phía máy chủ, giao thức hoạt động bao gồm như sau:
Mã hóa nội dung tệp tin đa phương tiện thành các luồng (streaming) có cùng nội dung với các mức có chất lượng bit-rate khác nhau
Luồng streaming được chia thành các đoạn stream nhỏ có khoảng thời gian bằng nhau (cỡ vài giây)
Tạo một tập tin danh sách chứa một mã định dạng tài nguyên đồng nhất (URI) cho mỗi tệp tin media Tệp tin danh sách này có thế được truy nhập thông qua một đường dẫn URL
Các thay đổi cho tệp tin danh sách được thực hiện một cách từ động
Bên phía máy khách hoạt động như sau:
Lựa chọn tệp tin media sẽ được chạy
Định kỳ thực hiện tải lại tệp tin danh sách (trừ trường hợp nó bị chặn) Hệ thống cần phải đợi một khoảng thời gian trước khi tải lại danh sách Ở đây, thời gian cần để phải đợi để khởi tạo trước khi tải lại playlist được đặt như thời gian đoạn media cuối cùng trong playlist Nếu trong trường hợp máy khách tải lại tệp tin playlist mà têp tin playlist không thay đổi, thìhệ thống trên máy khách sẽ đợi một khoảng thời gian tỉ lệ với khoảng thời gian của các đoạn media trước khi thử tải lại tệp tin danh sách, cụ thể như 0,5 lần khoảng thời gian của đoạn media cho lần thử tải lạiđầu tiên, 1,5 lần khoảng thời gian cho lần thứ hai và khoảng 3 lần khoảng thời gian cho lần thử tải lại kế tiếp
Trang 30Hình 2.6 Mô hình các file du ổi mở rộng m3u8 cho các luồng stream khác nhau
Trang 31Để chạy sử dụng được các ứng dụng cho kỹ thuật LSS này, người dùng phải cài đặt plug-in Silverlight Ứng dụng trực tuyến này cho phép dễ dàng điều chỉnh được băng thông sẵn có của mạng bằng một giao diện người dùng đơn giản,hỗ trợ hiển thị đồ thị lưu lượng sử dụng mạng một cách linh động, cũng như chất lượng video được sử dụng tương ứng với băng thông mạng hiện cómô tả một đoạn nội dung của tệp tin manifest mẫu được viết dựa trên ngôn ngữ đánh dấu XML
Bảng 2.3 Nội dung một tệp tin manifest mẫu viết trên ngôn ngữ đánh dấu
12 <QualityLevel Index= "0" Bitrate= "1536000" FourCC= "WVC1"
13 MaxWidth= "720" MaxHeight= "480" CodecPrivateData = " ">
14 <CustomAttributes>
15 <Attribute Name= "Compatibility" Value= "Desktop" />
16 </CustomAttributes>
17 </QualityLevel>
18 <QualityLevel Index= "5" Bitrate= "307200" FourCC= "WVC1"
19 MaxWidth= "720" MaxHeight= "480" CodecPrivateData= " ">
20 <CustomAttributes>
Trang 3221 <Attribute Name= "Compatibility" Value= "Handheld" />
sử dụng một máy chủ flash media streaminglà một sản phẩm thương mại và độc quyền trên thị trường Ngoài ra, người sử dụng cũng cần phải cài đặt chương trình chạy tập tin flash [19]
2.4.5 K ỹ thuật truyền luồng điều phối linh hoạt MPEG trên giao
th ức HTTP (MPEG-DASH)
Giao thức MPEG-DASH là một tên viết tắt của Dynamic adaptive streaming over HTTP MPEG-DASH là một tiêu chuẩn được định nghĩa bởi ISO (ISO/IEC 23009-01) [20, 21] Như ý nghĩa của tên gọi, DASH là một tiêu chuẩn dành cho việc điều phối linh hoạt các dòng video bit stream thông qua giao thức HTTP, có khả năng thay thế các công cụ hiện tại như Microsoft live smooth streaming (LSS), Adobe Dynamic Streaming, hay HTTP live streaming (HLS) DASH chính là dạng thức thống nhất của các công nghệ này MPEG-DASH định nghĩa một cấu trúc tương tự như kỹ thuật truyền luồng điều phối linh hoạt của MicrosoftLSS, hỗ trợ các dịch vụ như truyền hình theo yêu cầu, truyền hình trực tiếp và dịch vụ truyền
Trang 33hình xem lại (time-shifting viewing) Ngoài ra, MPEG-DASH cũng đề xuất những thay đổi trong vấn đề về định dạng tập tin được sử dụng trên các dịch vụ truyền hình và định nghĩa một cấu trúc mới cho tập tin manifest dựa trên ngôn ngữ XML Trong MPEG-DASH, các luồng audio/video stream được gọi là media presentation, trong khi manifest file được gọi là Media Presentation Description Media presentation là một tập hợp có cấu trúc các nội dung các nội dung hình ảnh,
âm thanh với sự kết hợp chặt chẽ về các đoạn thời gian, nội dụng, các mức bit-rate của video
Media presentation định nghĩa các đoạn video với một hoặc một vài chu kỳ
liền kề nhau được chia cắt từ lúc bắt đầu tới lúc kết thúc video và không có sự chồng chéo giữa nội dung các đoạn video
Mỗi khoảng chu kỳ của nội dung video bao gồm một hoặc nhiều Adaptation set Mỗi adaptation set bao gồm nhiều representation Mỗi khoảng chu kỳ được gán cho một thời điểm bắt đầu tương ứng với thời điểm bắt đầu của media presentation
Mỗi representation chính là một stream trong adaptive streaming, chứa các tham số để xác định chất lượng của một đoạn video như thông số về băng thông, kiểu mã hóa và độ phân giải Mỗi representation chứa một hoặc nhiều mediasegment, được thể hiện bởi các địa chỉ tài nguyên (Universal Resource Locators - URLs)
Các media segment chứa nội dung thực sự của các đoạn video
Đối với DASH manifest file, hay còn gọi là media presentation description là một tập tin XML, chứa toàn bộ cấu trúc của một media presentation được giới thiệu
ở trên, dùng để xác định các thành phần nội dung khác nhau và vị trí của các stream Hình 2.8 dưới đây mô tả một mô hình cấu trúc dữ liệu của DASH:
Trang 34Hình 2.8 Mô hình t ổ chức dữ liệu của DASH
Bảng 2.4 dưới đây trình bày nội dung của một tập tin XML Nội dung của DASH manifest file này mô tả nội dung của hai nguồn (CDN1 và CDN2) cung cấp nội dung audio bằng tiếng Anh hoặc tiếng Pháp, với tốc độ 64 kbits và 32 kbits và một phụ đề tiếng Đức Video có 6 phiên bản được mã hóa ở các bitrate khác nhau
nằm trong khoảng từ 256 kbit/s tới 2 Mbit/s tương ứng với các độ phân giải hình ảnh khác nhau
B ảng 2.4 Nội dung của một tập tin XML mô tả một DASH manifest file [24]
Trang 35<BaseURL> http://cdn1.example.com/ </BaseURL>
<BaseURL> http://cdn2.example.com/ </BaseURL>
"urn:uuid:706D6953-656C-5244-4D48-<Role schemeIdUri= "urn:mpeg:dash:role" value= "dub" />
<Representation id= "3" bandwidth= "64000" >
<AdaptationSet mimeType= "application/ttml+xml" lang= "de" >
<Role schemeIdUri= "urn:mpeg:dash:role" value= "subtitle" />
<Representation id= "5" bandwidth= "256" >
<BaseURL> 796735657.xml </BaseURL>
</Representation>
Trang 36<! Video >
<AdaptationSet mimeType= "video/mp4" codecs= "avc1.4d0228"
subsegmentAlignment= "true" subsegmentStartsWithSAP= "2" >
<ContentProtection schemeIdUri= 656164657221" />
"urn:uuid:706D6953-656C-5244-4D48-<Representation id= "6" bandwidth= "256000" width= "320"
Trang 37Giao thức MPEG-DASH đặc tả cú pháp và ngữ nghĩa của MPD, định dạng của các segment và các giao thức truyền tin (HTTP) Nó cho phép cấu hình một cách linh hoạt để thực hiện các dịch vụ trực tuyến khác nhau Các thông số sau đây
có thể được lựa chọn linh hoạt:
Kích thước và thời gian của các phân đoạn
Số lượng của representation
Thông tin của mỗi representation như tốc độ bit, CODECs, định dạng video sử dụng…
Về phía máy khách, nó có thể hoạt động một cách linh hoạt để lựa chọn:
Lựa chọn khi nào và phương thức truyền xuống đoạn media segment
Lựa chọn dòng bitstream (representation) thích hợp
Chuyển đổi lựa chọn các dòng bitstream phù hợp
Lựa chọn cách thức truyền tải MDP file
Hình 2.9 dưới đây minh họa cho các hoạt động giao tiếp giữa máy chủ và máy khách trong một dịch vụ truyền luồng streaming theo giao thức MPEG-DASH Đầu tiên khách hàng lấy về tập tin MPD, sau đó đọc tập tin này và dựa vào đó nó gửi các yêu cầu để truyền tải về các media segment Trong mỗi chu kỳ, một mức representation được lựa chọn dựa trên thời gian truyền tải dữ liệu và các thông số khác xác định bởi máy khách
Trang 38Hình 2.9 Mô tả các giao tiếp giữa máy chủ và máy khách
2.5 Các b ộ mã hóa và giải mã Video (Video CODECs)
Một trong những vấn đề còn tồn tại với MPEG DASH chính là nó chưa giải quyết được vấn đề đã mắc phải với HTML5 codec Đó là DASH có thể được tạo nên dựa trên H.264 hoặc WebM Bởi vì chưa có một codec thống nhất hỗ trợ tất cả các định dạng cho giao diện HTML5 nên người sử dụng DASH phải tạo ra nhiều
các định dạng coder và encoder được sử dụng trong kỹ thuật adaptive streaming
2.5.1 Các khung hình video
Các tiêu chuẩn nén video chỉ mã hóa đầy đủ khung dữ liệu cho các khung nhất định như các khung khóa (key frame), intra-frames hay viết tắt là I-frames Các khung theo sau mộtkhung khóalà các các khung dự đoán, predicted frame hoặc viết tắt là P-frames,chỉ mã hóa những phần khác nhau với các khung trước đó Do đó, chỉ cần mã hóa một lượng dữ liệu ít hơn rất nhiều so với việc mã hóa cả một khung
Trang 39hình Khi đó, các khung hình video thay đổi nhanh và nhiều yêu cầu nhiều key frames hơn và lượng thông tin mã hóa sẽ lớn hơn so với một khung hình có các cảnh thay đổi chậm Hình 2.10 trình bày về mối quan hệ giữa một vài khung I-frame, B-frame và P-frame Ta có thể thấy, với khung hình ít thay đổi thì số lượng P-frame sẽ nhiều hơn so với trường hợp khung hình thay đổi nhanh nên cần nhiều B-frame hơn
Để tăng cường khả năng nén, kỹ thuật mã hóa dự đoán hai chiều (bidirectional encoding) cũng có thể được sử dụng Trong kỹ thuật dự đoán khung hai chiều (Bi-predictive frames), các B-frame được xem xét sự khác nhau của cả khung trước và sau để đạt được sự nén tốt hơn
Một nhóm các hình ảnh (Group of Picture - GOP) chứa một I-frame theo sau bởi một số P-frames và các B-frames tùy chọn Việc giảm kích thước GOP (hay các key frame interval) có thể mang lại những lợi ích như sử dụng thường xuyên các key frame giúp giảm biến dạng khi luồng streaming truyền trong môi trường có nhiều tổn hao Tuy nhiên, việc giảm kích thước của một GOP dẫn tới sự tăng kích thước của tập tin media do số lượng key frame cần nhiều hơn, mà lượng thông tin cần trong một key frame lớn hơn rất nhiều so với lượng thông tin trong một P-frame
Hình 2.10 Sự phân bố các khung hình trong một luồng video stream
2.5.2 Gi ải mã và dấu thời gian trình diễn
Nhãn thời gian giải mã, hay còn gọi là Decoding Time-stamp (DTS), được sử dụng để đồng bộ hóa dòng stream và kiểm soát tốc độ giải mã các frame Ở đây, chúng ta không cần thiết phải sử dụng một nhãn thời gian giải mã cho tất cả các
Trang 40frame vì các frame có thể được nội suy ra từ các bộ giải mã Trái lại, dấu thời gian trình diễn hay còn gọi là presentation Time-stamp (PTS) đề cập đến chính xác thời điềm một khung hình video được hiển thị ở đầu ra của giải mã PTS và DTS chỉ khác khi sử dụng giải mã hai chiều (bidirectional coding)
2.5.3 H.263
Chuẩn nén H.263 [22] là một chuẩn nén video, ban đầu được thiết kế như là một định dạng nén video tốc độc bit thấp cho các hội nghị truyền hình Chuẩn nén nàyđược phát triển bởi ITU-T video coding expert group (VCEG) trong một dự án kết thúc vào năm 1996 và là một trong những thành viên của gia đình H.26x của các tiêu chuẩn mã hóa video trong lĩnh vực của ITU-T Chuẩn nén H.236 được hỗ trợ trong các ứng dụng flash video và được sử dụng rộng rãi trong các dịch vụ truyền hình trực tuyến, hay chia sẻ video theo yêu cầu ví dụ Youtube hoặc Vimeo
Tốc độ bit của H.263 nằm trong khoảng từ 24kb/giây đến 64kb/s Video được
mã hóa và giải mã sang định dạng này với các thư viện miễn phí được cung cấp bởi libavcodec (LGPL) Thư viện codec này nằm trongmột phần của dự án Ffmpeg
2.5.4 Chu ẩn H.264/MPEG-4 AVC
H.264/MPEG-4Part 10 hay Advanced Video Coding (AVC) [23] còn gọi là chuẩn mã hóa video tiên tiến (Advanced Video Coding), là sản phẩm kết hợp của ITU – T và MPEG Chuẩn nén này đã nhanh chóng được chấp nhận rộng rãi trong nhiều ứng dụng do khả năng tùy biến cũng như khả năng cung cấp video nén chất lượng cao với tỉ số nén lớn Chuẩn nén này bao gồm một số cải tiến quan trọng trong khả năng nén video Chuẩn H.264 là một trong những định dạnh hay được sử dụng nhất cho việc ghi lại, nén và phân phối video độ nét cao Ngoài ra, chuẩn nén này được hỗ trợ trong adobe’s flash player và Microsoft’s Silverlight và gần đây đã được chấp nhận trong các sản phẩm của một số công ty, ví dụ như XBOX 360, PlayStation Portable, iPod, iPhone…
Tại thời điểm mới ra đời, H.264 bao gồm 3 cấu hình chính là: cấu hình cơ bản, cấu hình chính và cấu hình mở rộng Các cấu hình có một số chức năng chung và riêng như hình 2.11 Hiện nay, H.264 xác định 17 cấu hình chính được sử dụng