phần mở đầu, kết luận và tài liệu tham khảo. Phần kết luận nêu tóm tắt các vấn đề đã trình bày trong các chƣơng, đánh giá các kết quả đã đạt đƣợc, đồng thời đƣa ra các định hƣớng nghiên cứu, phát triển tiếp theo. Nội dung các chƣơng đƣợc tóm tắt nhƣ sau: Chƣơng 1: Video streaming trên mạng Internet. Chƣơng 2: Một số phƣơng pháp video streaming sử dụng video định dạng MP4.
Chƣơng 3: Phƣơng pháp Atom Caching Chƣơng 4: Đánh giá hiệu năng của phƣơng pháp Atom Caching. Trong quá trình hoàn thành luận văn của mình, tác giả đã hết sức cố gắng, song luận văn còn những hạn chế nhất định, tác giả rất mong nhận đƣợc những góp ý để vấn đề nghiên cứu này ngày càng đƣợc hoàn thiện hơn. Qua đây, tác giả xin chân thành cảm ơn TS. Hoàng Xuân Tùng, thầy đã gợi ý về đề tài, thầy LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 11 đã hƣớng dẫn, chỉ bảo tận tình và cung cấp nhiều tài liệu quý liên quan trong quá trình tác giả thực hiện luận văn này.
Tác giả cũng xin chân thành cảm ơn các Thầy, Cô đã dạy, giúp đỡ và truyền cảm hứng học tập, nghiên cứu trong suốt quá trình học tập tại Trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội. Xin trân trọng cảm ơn! Tác giả: Nguyễn Tiến Nam LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 12 1 CHƢƠNG I: Video streaming trên mạng Internet 1.1 Tổng quan về video streaming trên mạng Internet. Video là một loại dữ liệu đa phƣơng tiện rất quan trọng phục vụ cho truyền thông hoặc cho nhu cầu giải trí của con ngƣời trong nhiều thập niên. Thời kỳ đầu, video đƣợc xử lý và truyền dƣới dạng tín hiệu tƣơng tự.
Tuy nhiên, với sự phát triển và phổ biến của Internet vào giữa những năm 90 đã định hƣớng việc truyền tải video qua mạng chuyển mạch gói. Ngày nay, với sự phát triển không ngừng của vi mạch điện tử và mạng máy tính dẫn đến số hóa video và đang mở ra một cuộc cách mạng về nén và truyền tải video trên mạng Internet. Video Streaming đƣợc định nghĩa là một “dòng chảy” video, nghĩa là dữ liệu video đƣợc truyền liên tục từ nguồn đến một đích nào đó thông qua Internet. Video Streaming thƣờng đƣợc sử dụng trong lĩnh vực giải trí hoặc dạy học, dùng để truyền tải các tập tin video hoặc các bài học, cung cấp cho ngƣời sử dụng các tiện ích nhƣ tìm kiếm, liệt kê, khả năng hiển thị hoặc hiển thị lại các dữ liệu video theo yêu cầu.
Với các định dạng tập tin video truyền thống, dữ liệu chỉ có thể hiển thị khi đã đƣợc tải về (download) toàn bộ, vì vậy đối với các tập tin video chất lƣợng cao có dung lƣợng lớn thì công việc này sẽ tiêu tốn rất nhiều thời gian. Một tập tin video có thể mất thời gian thực tế để tải về lớn hơn chiều dài của video đó. Streaming video tiết kiệm thời gian cho ngƣời sử dụng bằng cách sử dụng các công nghệ giải nén kết hợp với khả năng hiển thị dữ liệu đồng thời trong lúc vẫn tiếp tục tải về tệp tin video của các ứng dụng trình diễn dữ liệu đa phƣơng tiện (player). Quá trình này của các player còn đƣợc gọi là quá trình “đệm” (buffering).
Theo nhu cầu sử dụng video streaming đƣợc thể hiện dƣới hai dạng: - Video theo yêu cầu (Video on demand): là các dữ liệu video đƣợc lƣu trữ trên máy chủ đa phƣơng tiện và sẽ đƣợc truyền đến ngƣời dùng khi có yêu cầu, ngƣời dùng có toàn quyền để hiển thị cũng nhƣ thực hiện các thao tác (tua, dừng, quay lại…) với các đoạn dữ liệu này. - Video thời gian thực (Live streaming) là các dữ liệu video đƣợc chuyển đổi trực tiếp từ các nguồn cung cấp dữ liệu theo thời gian thực nhƣ: camera, microphone, các thiết bị phát dữ liệu video. Các dữ liệu này sẽ đƣợc phát quảng bá thành các kênh và ngƣời dùng sẽ có quyền truy nhập bất kỳ kênh nào lấy về dữ liệu video nhƣng sẽ không thực hiện đƣợc các thao tác tua, dừng,. trên các dữ liệu video đó.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 13 Theo [1], nếu phân chia theo các cách thức truyền tải, video streaming đƣợc thể hiện dƣới hai dạng: - True Streaming: tín hiệu video đến theo thời gian thực và nội dung video chỉ cần một vài giây để đệm trƣớc khi play và máy chủ sẽ không lƣu các tập tin vào đĩa cứng. Video thời gian thực thƣờng đƣợc phân phối theo cách này và mỗi tệp tin video cũng chỉ có sẵn trong một khoảng thời gian nhất định. - Progressive Download hoặc Progressive Streaming: Phƣơng pháp này lƣu tập tin vào đĩa cứng sau đó play từ đó. Video theo yêu cầu thƣờng đƣợc phân phối theo cách này và video sẽ đƣợc lƣu vào ổ cứng và máy chủ trong khoảng thời gian tùy theo quy định của phần mềm phía máy chủ và máy khách.
Việc streaming video qua mạng Internet mang lại rất nhiều lợi ích, tuy nhiên dữ liệu video khi streaming qua mạng lại gặp phải rất nhiều yếu tố bất lợi nhƣ băng thông, độ trễ và mất gói tin. Các yếu tố bất lợi đó trực tiếp làm tăng thời gian bắt đầu của quá trình streaming video. Thời gian bắt đầu khi streaming video là thời gian ngƣời dùng phải chờ kể từ khi gửi yêu cầu video đến máy chủ cung cấp video cho đến khi khung hình đầu tiên của video đó hiện thị trên thiết bị của ngƣời dùng. Thời gian bắt đầu lớn là vấn đề gây ảnh hƣởng trực tiếp và đầu tiên ngƣời dùng có thể cảm nhận đƣợc khi sử dụng các dịch vụ streaming video.
Đã có rất nhiều giải pháp đƣợc nghiên cứu và phát triển nhằm khắc phục vấn đề này.2 Kiến trúc hệ thống video streaming 1.1 Kiến trúc chung và chức năng các thành phần Hình 1.1:Kiến trúc của hệ thống video streaming LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 14 Theo [2], một hệ thống video streaming bao gồm 6 thành phần nhƣ hình vẽ 1. Hoạt động: Đầu tiên video và âm thanh thô đƣợc nén bằng cách sử dụng các thuật toán nén video và âm thanh rồi sau đó đƣợc lƣu vào trong thiết bị lƣu trữ. Khi có yêu cầu từ khách hàng, máy chủ streaming sẽ lấy video và âm thanh đã đƣợc nén và lƣu trong các thiết bị lƣu trữ sau đó cùng với phần mềm quản lý chất lƣợng dịch vụ QoS (Quality of Service) tầng ứng dụng điều chỉnh video và âm thanh thành các luồng bit tùy theo tình trạng mạng và các yêu cầu QoS. Tiếp theo sử dụng các giao thức truyền tải nén các chuỗi bit rồi gửi các gói tin video và âm thanh qua mạng Internet.
Các gói tin truyền tải trong mạng Internet có thể sẽ bị trễ quá mức do tắc nghẽn, hoặc cũng có thể sẽ bị hƣ hỏng do bị lỗi bit. Để nâng cao chất lƣợng truyền video và âm thanh đƣợc truyền liên tục, hệ thống phân phối phƣơng tiện truyền thông liên tục sẽ đƣợc triển khai trên mạng và chuyển tiếp các gói tin đƣợc gửi đến nơi nhận. Sau khi nhận đƣợc các luồng bit từ máy chủ streaming, máy khách sẽ tiến hành giải mã thành video và âm thanh thực sự để trình chiếu cho ngƣời dùng. Để đồng bộ hóa giữa video và âm thanh , các cơ chế đồng bộ truyền thông đƣợc yêu cầu ở phía máy khách.
Từ hình vẽ 1.1, có thể thấy đƣợc các thành phần trong kiến trúc video streaming có sự liên quan rất chặt chẽ với nhau. Các thành phần của hệ thống video streaming: - Nén video: Dữ liệu video nguyên gốc cần phải đƣợc nén trƣớc khi đƣợc truyền đi trên mạng nhằm để đạt đƣợc hiệu quả tốt nhất và tiết kiệm băng thông. Các chƣơng trình nén video có thể chia làm hai loại: + Khả năng mở rộng nén video (scalable video coding) + Không có khả năng mở rộng nén video (nonscalable video coding). Khả năng mở rộng nén video là tính năng cho phép các ứng dụng quan sát sự biến động băng thông trên đƣờng truyền để từ đó sử dụng phƣơng pháp nén thích hợp.
Không mở rộng khả năng nén video sẽ không làm đƣợc điều này, video sẽ đƣợc nén ngay từ đầu và không quan tâm tới biến động băng thông trên đƣờng truyền. - Cơ chế điều khiển chất lượng dịch vụ tầng ứng dụng: Để đối phó với sự biến thiên của tài nguyên mạng hoặc để cung cấp chất lƣợng hình ảnh nhằm đáp ứng theo yêu cầu của từng ngƣời sử dụng, nhiều kỹ thuật điều khiển chất lƣợng dịch vụ tầng ứng dụng đã đƣợc đƣa ra. Có 2 kỹ thuật thƣờng đƣợc dùng ở đây: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 15 + Kỹ thuật điều khiển tắc nghẽn + Kỹ thuật kiểm soát lỗi. Kỹ thuật điều khiển tắc nghẽn đƣợc sử dụng để ngăn ngừa mất gói dữ liệu và giảm trễ nhằm kiểm soát lỗi.
Kỹ thuật kiểm soát lỗi nhằm phát hiện và sửa đổi khi các gói tin bị lỗi bit trong quá trình truyền tải trên mạng. - Dịch vụ phân phát video trên đường truyền: Để cung cấp các dịch vụ đa phƣơng tiện có chất lƣợng tốt, sự hỗ trợ của mạng rất quan trọng. Sự hỗ trợ của mạng sẽ giúp giảm trễ khi truyền tải và giảm tỷ lệ mất gói tin. Đƣợc xây dựng trên nền của Internet (giao thức IP), dịch vụ phân phối video trên đƣờng truyền cho phép sử dụng QoS (kiểm soát chất lƣợng dịch vụ) mang lại hiệu quả cao cho việc phân phát video qua mạng Internet.
- Máy chủ Streaming: máy chủ streaming đóng vai trò quan trọng trong việc cung cấp dịch vụ truyền thông dữ liệu đa phƣơng tiện trực tuyến. Để cung cấp các dịch vụ truyền thông dữ liệu đa phƣơng tiện trực tuyến chất lƣợng cao, các máy chủ streaming đƣợc yêu cầu phải xử lý dữ liệu video với sự ràng buộc về thời gian, hạn chế thời gian trễ và hỗ trợ các hoạt động tƣơng tác của ngƣời dùng với video nhƣ tạm dừng (pause), tua (fast forward), tiếp tục, nhanh chóng chuyển tiếp và nhanh chóng quay lại. Một máy chủ streaming thƣờng bao gồm ba hệ thống con: một hệ thống giao tiếp kết nối (ví dụ, giao thức vận chuyển), một hệ điều hành, và một hệ thống lƣu trữ. - Cơ chế đồng bộ dữ liệu phương tiện truyền thông: với cơ chế đồng bộ dữ liệu phƣơng tiện truyền thông, ứng dụng tại bên nhận có thể hiển thị video gần giống nhƣ khi đƣợc khởi tạo tại bên gửi.
Một ví dụ về tác dụng của cơ chế đồng bộ dữ liệu phƣơng tiện truyền thông là cử động môi của ngƣời nói phải phù hợp với tiếng nói họ phát ra.