- Các ứng dụng sử dụng truyền thông đa phương tiện trên gồm: Hội thảo từ xa videoconferencing, nói chuyện qua internet voice over IP, truyền hình internet, truyền hìnhtheo yêu cầu video
Trang 1BÀI GIẢNG TRUYỀN THÔNG ĐA PHƯƠNG TIỆN
MỤC LỤC
Chương 1 Tổng quan về truyền thông đa phương tiện 4
1.1 Truyền thông đa phương tiện 4
1.1.1 Các thành phần của hệ thống truyền thông đa phương tiện 4
1.2 Dữ liệu đa phương tiện 5
1.3 Truyền dữ liệu đa phương tiện 6
1.4 Các phương pháp truyền dữ liệu đa phương tiện 8
1.4.1 Mô hình download 8
1.4.2 Mô hình Streaming 9
1.4.3 So sánh các phương pháp truyền dữ liệu đa phương tiện 11
1.5 Các thách thức khi xây dựng một hệ thống truyền thông đa phương tiện 12
Chương 2 Các phương pháp nén dữ liệu đa phương tiện 13
2.1 Phương pháp nén ảnh 13
2.1.1 Phương pháp nén ảnh JPEG 13
2.1.1.1 Quá trình nén JPEG 14
2.1.1.2 Giải nén JPEG 20
2.2 Phương pháp nén Audio 22
2.3 Phương pháp nén Video 22
2.3.1 Khái quát về H264 23
2.3.1.1 H264 hoạt động như thế nào? 23
2.3.1.2 H264 trong thực tế 26
Chương 3 Công nghệ lưu trữ và thu hồi dữ liệu đa phương tiện 26
3.1 Cấu trúc và mô hình đĩa cứng 27
3.2 Sự lập lịch trình trên đĩa 27
3.3 Cải thiện thông lượng đĩa 28
3.4 Lưu trữ và thu nhận dữ liệu trên nhiều đĩa 28
3.4.1 Phân vùng và replication 28
3.4.2 Disk striping 28
3.4.3 Lập lịch trình cho nhiều đĩa 28
Trang 23.5 Phân miền đĩa 28
Chương 4 Truyền số liệu đa phương tiện trên mạng máy tính 28
4.1 Streaming media 29
4.1.1 Truyền dòng dữ liệu dùng giao thức TCP/UDP 29
4.1.2 Các giao thức streaming chuyên biệt 32
4.1.2.1 Giao thức RSTP (Realtime streaming protocol) 32
4.1.2.2 Giao thức Realtime Transport Protocol (RTP) 33
4.2 Kiến trúc server song song trong mạng đa phương tiện 34
4.2.1 Phân loại và các lựa chọn trong kiến trúc 34
4.2.1.1 Giới thiệu 34
4.2.1.2 Kiến trúc phân phối video song song 34
4.2.1.3 Server striping policies 37
4.2.2 Các giao thức phân phối video song song 37
4.2.2.1 Client pull và server push 37
4.2.2.2 Đồng bộ các server (inter-server synchronization) 37
4.2.2.3 Xác định và vô hiệu server hỏng 37
4.2.3 Kiến trúc Server song song cùng đẩy (concurrent-push) 37
4.2.3.1 Kiến trúc hệ thống 37
4.2.3.2 Phân tích giải thuật 38
4.2.3.3 Asynchronous Grouped Sweeping Scheme 39
4.2.3.4 Sub-Schedule Striping Scheme 39
4.2.3.5 Đánh giá hiệu năng 39
4.3 Kiến trúc multicast Streaming 42
4.3.1 Sơ lược về multicast streaming 42
4.3.1.1 Giới thiệu 42
4.3.1.2 Multicast media streaming 43
4.3.1.3 Kỹ thuật cho multicast media streaming theo yêu cầu 43
4.4 Các giao thức truyền thông đa phương tiện sử dụng trong thiết lập cuộc gọi 43
4.4.1 Giới thiệu về SIP 43
4.4.2 Các thực thể trong SIP 48
4.4.2.1 SIP User agents 49
4.4.2.2 Proxy Server 49
4.4.2.3 Redirect Server 49
Trang 34.4.2.4 Registrar Server 49
4.4.3 Các tin nhắn tạo phiên 50
4.4.3.1 Các kiểu tin nhắn (Message Type) 50
4.4.3.2 Cấu trúc của tin nhắn 51
4.4.3.3 Ví dụ một số message 52
4.4.4 Tương tác giữa các thực thể SIP 54
4.4.4.1 Tạo và ngắt phiên 54
4.4.4.2 Chuyển hướng gọi Call Redirection 55
4.4.4.3 Call Proxying 56
4.4.5 Giao thức mô tả phiên SDP 57
4.4.6 Hệ thống máy phục vụ của SIP (SIP Servers) 58
4.4.6.1 SIP server là gì? 58
4.4.6.2 Registrar Server 58
4.4.6.3 Redirect Server 58
4.4.6.4 Proxy Server 58
Chương 5 Một số ứng dụng truyền thông đa phương tiện 63
5.1 Voice over IP 63
5.2 Video over IP 63
5.3 Video conferrencing 63
5.4 Television over IP 63
5.5 Video on demand 63
5.6 Interactive TV 63
Chương 6 Đề xuất đề tài NCKH, bài tập lớn 64
Trang 4Chương 1 Tổng quan về truyền thông đa phương tiện
Giới thiệu sơ lược về truyền thông đa phương tiện, các đặc điểm của dữ liệu đa phương tiện, và nêu ra những thách thức khi xây dựng hệ thống truyền thông đa phương tiện hiệu năng cao – tiết kiệm tài nguyên.
1.1 Truyền thông đa phương tiện
Sự phát triển nhanh chóng của máy tính và Internet đã sinh ra nhiều dịch vụ và ứng dụngmới Trong đó các dịch vụ như World Wide Web đã đóng góp nhiều sự thành công và biến đổinhiều mặt của xã hội Với sự cải thiện liên tục về băng thông, năng lực tính toán, và khả nănglưu trữ các dịch vụ phát triển từ việc truyền các dữ liệu văn bản và đồ họa đơn giản sang các dữliệu đa phương tiện phức tạp như audio và video chất lượng cao
Môn học truyền thông đa phương tiện bàn về hệ thống dùng để truyền các dữ liệu đa phươngtiện trên mạng mạng truyền thông như Internet hoặc trên mạng diện rộng
- Là công nghệ truyền thông giúp người dùng trao đổi, chia sẻ thông tin đa phương tiệntrên mạng truyền thông, thông tin gồm: Dữ liệu Audio, Video thời gian thực, hình ảnhvăn bản và các dạng dữ liệu khác
- Các ứng dụng sử dụng truyền thông đa phương tiện trên gồm: Hội thảo từ xa (videoconferencing), nói chuyện qua internet (voice over IP), truyền hình internet, truyền hìnhtheo yêu cầu (video on demand) …
1.1.1 Các thành phần của hệ thống truyền thông đa phương tiện
Như đã nói ở trên, môn học này bàn về việc truyền dữ liệu đa phương tiện trên hệ thốngmạng truyền thông (Internet, mạng diện rộng)
Hình 1.1 thể hiện mô hình client/server để truyền dữ liệu đa phương tiện hai đầu Ở phíanguồn, dữ liệu đa phương tiện được nén và lưu trữ Qua hệ thống điều khiển từ phía server, các
dữ liệu này sẽ được gửi đi qua mạng tùy theo yêu cầu của người dùng Giao thức ở tầngapplication/transport sẽ được dùng để truyền dữ liệu tới máy khách, dữ liệu này sẽ được lưutrong bộ đệm hoặc thiết bị lưu trữ, từ đó được giải mã và được hiển thị cho người dùng
Trang 5Hình 1.1 Sơ đồ khối cơ bản của 1 hệ thống đa phương tiện
Đặc trưng duy nhất của mô hình hệ thống này là: Các thành phần của hệ thống sẽ thựchiện công việc một cách tuần tự theo các bước trong quá trình truyền dữ liệu Do đó, nếu 1 thànhphần hoạt động không tốt sẽ ảnh hưởng tới toàn bộ hệ thống
Tóm lại, các thành phần của hệ thống truyền thông đa phương tiện bao gồm:
Dữ liệu đa phương tiện
Hệ thống lưu trữ
Bộ đệm
Mạng truyền thông
Thiết bị xử lý, hiển thị
1.2 Dữ liệu đa phương tiện
Dữ liệu đa phương tiện cần được hiểu là nhiều loại dữ liệu sẽ được thu thập, gửi đi và hiểnthị một cách đồng thời Có rất nhiều loại dữ liệu: đơn giản nhất là dữ liệu văn bản thô, văn bản
đã định dạng, và các dạng dữ liệu khác như ảnh đồ họa, âm thanh, video…
Ta có thể phân loại các loại dữ liệu trên ra thành 2 loại, theo ngữ cảnh của việc truyền dữliệu đa phương tiện
- Loại thứ nhất: dữ liệu rời rạc (discrete media) gồm các loại dữ liệu mà khi hiển thị không
bị bó buộc chặt chẽ về thời gian Ví dụ ta có thể nhận 1 bức ảnh từ web server để hiển thị
Trang 6trong web browser Tùy theo thông lượng mạng mà thời gian nhận bức ảnh có thể nhanhhay chậm trước khi nó được giải mã và hiển thị
- Loại thứ 2: dữ liệu liên tục Dữ liệu này có một yêu cầu chặt chẽ về thời gian hiển thị vàcác thông tin này được nhúng bên trong dữ liệu Ta có thể thấy ngay ví dụ đó là dữ liệuvideo, audio Dữ liệu video thường được mã hóa theo các frame được hiển thị tuần tự vớimột tần số nào đó, ví dụ 25 hình/giây (frame per second fps) Do đó để hiển thị các đốitượng video một cách đúng đắn, thì không chỉ cần nhận dữ liệu video một cách chính xác
mà còn cần phải giải mã và hiển thị chúng theo đúng trình tự và thời điểm Nếu khônglàm được điều đó thì video hiển thị sẽ bị hỏng, chất lượng thấp Do đó lưu lượng mạngdành cho dữ liệu đa phương tiện có thể coi là lưu lượng cố định do sự cần thiết duy trì bộđịnh thời chặt chẽ
Từ đó ta thấy, thách thức trong truyền thông đa phương tiện nói chung và đặc biệt làtruyền thông dữ liệu đa phương tiện liên tục, đó là phải đảm bảo tính vẹn toàn của cả dữ liệu vàthời gian hiển thị (presentation timing) Hơn nữa, dữ liệu đa phương tiện thông thường là sự kếthợp của nhiều dòng dữ liệu khác nhau và được đồng bộ với nhau Do đó, độ phức tạp sẽ đượcnhân lên nhiều lần và phải đồng bộ giữa các dòng dữ liệu với nhau
1.3 Truyền dữ liệu đa phương tiện
Với 2 loại dữ liệu đa phương tiện đã bàn ở trên, ta chỉ tập trung vào truyền dữ liệu liên tụctrong phần còn lại của môn học Chúng ta có thể phân lớp việc truyền dữ liệu đa phương tiệnliên tục thành 2 loại: truyền thời gian thực và truyền bán thời gian thực (soft-real-time delivery)Truyền thời gian thực: dữ liệu phải truyền từ nguồn và hiển thị tại đích với một độ trễ chotrước Truyền thời gian thực thường được sử dụng để người dùng tương tác với nhau như:Internet Phone, đàm thoại video từ xa.(Hình 1.2)
Trang 7Hình 1.2 Truyền dữ liệu liên tục thời gian thực trong hội đàm video.
Truyền dữ liệu bán thời gian thực: Không cho trước thời gian trễ, thay vào đó, hệ thốngphải truyền sao cho đảm bảo tính toàn vẹn của dữ liệu và toàn vẹn thời gian hiển thị, đồng thờigiảm thời gian trễ ở mức tối đa Ví dụ của việc truyền dữ liệu bán thời gian thực là dịch vụ videotheo yêu cầu (Video on demand) Hệ thống này có thể có độ trễ ban đầu lớn để đổi lấy chấtlượng video mịn trong quá trình play Hình 1.3
Hình 1.3 Truyền dữ liệu bán thời gian thực trong hệ thống VOD
Trang 81.4 Các phương pháp truyền dữ liệu đa phương tiện
Việc truyền dữ liệu trên mạng máy tính không đã được thực hiện từ lâu, và có rất nhiềuphương pháp khác nhau để áp dụng Trong đó phương pháp download là phương pháp phổ biếnnhất để truyền dữ liệu đa phươn tiện từ server tới client
Hình 1.4Tương tác giữa client và server trong mô hình download.
Đặc điểm của phương pháp: Trước tiên đối tượng dữ liệu phải được nhận về toàn bộ vàlưu trong bộ đệm hoặc file trước khi được giải mã và hiển thị Khi đối tượng dữ liệu đã đượcclient nhận đầy đủ thì việc giải mã và trình diễn dữ liệu đó sẽ được thực hiện như trên hệ thốngfile nội bộ của client Mô hình này hoạt động tốt trong một số ứng dụng nhưng lại không phùhợp với dữ liệu liên tục
Giả sử quá trình download như trong hình 1.5 , bỏ qua thời gian xử lý, thời gian từ khi bắtđầu yêu cầu đến khi có thể hiển thị được dữ liệu được tính theo kích thước của đối tượng dữ liệu
và tốc độ truyền Với những ứng dụng như WWW thì dữ liệu thường là văn bản HTML, hoặcảnh nhỏ thì độ trễ này tương đối nhỏ
Tuy nhiên, với đối tượng dữ liệu liên tục thì độ trễ có thể sẽ rất lớn, đến mức không chấpnhận được Ví dụ, một dữ liệu video thời lượng 2 giờ được nén MPEG2 với tần só bit trung bình6Mbps sẽ có kích thước khoảng 5.4GB Và truyền đi trong mạng với tốc độ 8Mbps thì ngườidùng sẽ phải chờ khoảng 1.5 giờ trước khi có thể xem video
Trang 9Hình 1.5Thời gian bắt đầu trễ trong mô hình download
Nhược điểm cơ bản của mô hình download (được thể hiện trên hình 1.6) là nó yêu cầuphải download toàn bộ đối tượng video về thì mới bắt đầu xem được Trong khi đối với nhiềuloại dữ liệu rời rạc thì yêu cầu này là cần thiết, thì dữ liệu liên tục như video có đặc trưng là mộtphần dữ liệu của nó có thể được giải mã(decoded) và hiển thị (play back) Dữ liệu video đượccấu thành từ các frame, và ta có thể xem khi toàn bộ dữ liệu của 1 frame được client nhận về
Hình 1.6 Thời gian trễ để download 5.4 GB video
Từ đặc điểm này mà người ta có thể cải tiến mô hình download thành mô hình Streaming như sau:
1.4.2 Mô hình Streaming
Trong mô hình streaming, dữ liệu liên tục sẽ được phát lại trong khi quá trình nhận dữ liệu
về vẫn tiếp diễn (minh họa trong hình 1.7) Sau khi gửi yêu cầu tới server để bắt đầu quá trình
Trang 10streaming client sẽ đợi gói dữ liệu đầu tiên tới và bắt đầu phát lại (play), trong khi nhận gói dữliệu thứ 2, và cứ như thế Do đó, quá trình phát lại và quá trình nhận dữ liệu được thực hiện theodòng gần song song (pipeline).
Trang 11Hình 1.7 Play từng phần dữ liệu trong mô hình streaming
So sánh với mô hình download thì cần phải đáp ứng thêm 2 yêu cầu sau để mô hìnhstreaming có thể hoạt động Thứ nhất, dữ liệu đa phương tiện phải có thể chia nhỏ thành cácđoạn độc lập, các đoạn này có thể được giải mã và phát lại Hầu hết các dữ liệu liên tục nhưaudio, video đều có tính chất này Thứ hai, để bảo toàn bộ định thời trong khi hiển thị hay trìnhdiễn(presenting) , ta cần đảm bảo các đoạn dữ liệu sẽ được nhận về trước thời điểm dự kiến sẽ
hiển thị nó Đây chính là yêu cầu về tính liên tục , một trong các tham số chủ đạo trong thiết kế
và đánh giá hệ thống đa phương tiện liên tục
1.4.3 So sánh các phương pháp truyền dữ liệu đa phương tiện
Phương pháp tải xuống (download)
Phương pháp tải theo dòng (streaming)
Với sự phát triển nhanh của công nghệ mạng thì người ta có thể đặt ra câu hỏi rằng liệutrong tươnng lai mạng máy trính sẽ có thể có thông lượng rất lớn khiến cho thời gian truyền sẽkhông đáng kể ngay cả khi dùng mô hình download hay không? Đây vẫn là 1 câu hỏi hỏi hợp
Trang 12lý, nhưng mô hình streaming một mặt có thể giúp cho việc playback được tiến hành sớm hơn ,mặt khác nó còn mang đến một cải tiến khác: truyền đồng thời nhiều dòng.
Các media server thường đồng thời phục vụ nhiều clients Khi nhiều client yêu cầu dịch
vụ cùng lúc, sẽ có 2 lựa chọn cho media server khi dùng mô hình download: Một là phục vụ cácclients một cách tuần tự hoặc phục vụ đồng thời Nếu phục vụ tuần tự thì các client thứ 2 trở đitrong hàng đợi sẽ phải chờ rất lâu mặc dù thông lượng mạng có thể rất lớn Nếu phục vụ đồngthời thì thông lượng mạng dành cho từng client sẽ giảm do đó sẽ kéo dài thời gian download.Ngược lại, mô hình streaming sẽ không mắc phải vấn đề này, quá trình playback sẽ đượcthực hiện ngay khi một đoạn dữ liệu đa phương tiện có thể giải mã (decodable) được nhận về(Hình 1.8) Hơn nữa, dữ liệu truyền qua mạng chỉ cần với tốc độ dữ liệu của quá trình playback(play-rate), nên thời gian chờ để bắt đầu play độc lập với số lượng client yêu cầu đồng thời miễnsao media server và mạng không bị quá tải
Hình 1.8 Multistream pipelining trong mô hình streaming
1.5 Các thách thức khi xây dựng một hệ thống truyền thông đa phương tiện.
Tính liên tục
Các tham số biết và chưa biết
Tương tác thời gian thực
Hiệu quả
Có thể mở rộng
Trang 13 Tính tin cậy
Chương 2 Các phương pháp nén dữ liệu đa phương tiện
Tổng quan về nén dữ liệu đa phương tiện
2.1 Phương pháp nén ảnh
Giới thiệu phương pháp nén ảnh JPEG
Phương pháp nén ảnh JPEG được dùng phổ biến nhất để nén dữ liệu ảnh số Với các hình
đồ họa đơn giản thì thường được nén phương pháp GIF, PNG
2.1.1 Phương pháp nén ảnh JPEG
(Joint Photographic Expert Group) – Nhóm thành lập năm 1986 – phát hành chuẩn năm
1992 và năm 1994 là 1 chuẩn ISO 19018-1
Chuẩn mã hóa và giải mã JPEG
Trang 142.1.1.1 Quá trình nén JPEG
Sơ đồ minh họa quá trình nén ảnh JPEG
Hình 2.9Quá trình nén JPEG
2.1.1.1.1 Biến đổi không gian màu
Trước hết, các điểm ảnh được biến đổi từ không gian RGB sang không gian màu YCbCr.Không gian này gồm các thành phần: Y, Cb, Cr Trong đó thành phần Y thể hiện độ sáng của 1điểm, hai thành phần Cb và Cr đại diện cho màu của điểm ảnh (chia thành 2 thành phần xanhlam (Cb) và đỏ (Cr) ) Không gian màu YCbCr cũng được dùng trong truyền hình số cũng nhưtrong video DVD, và tương tự với không gian màu YIQ được dùng trong video liên tục PAL,NTSC Việc chuyển sang không gian YCbCr có thể giúp tăng tỷ lệ nén mà không làm giảmđáng kể chất lượng ảnh (hoặc sẽ tăng chất lượng ảnh với cùng 1 tỷ lệ nén) Việc nén hiệu quảhơn với thông tin về độ sáng - thông tin ảnh hưởng nhiều hơn đến cảm nhận chất lượng ảnh củangười xem
2.1.1.1.2 Chia khối
Trang 15Sau khi giảm mẫu, mỗi kênh được chia thành các khối 8x8 (pixel) Nếu dữ liệu cho cáckênh không phải là một số nguyên lần các khối thì bộ mã hóa phải thêm dữ liệu cho các khốichưa hoàn thiện:
* Thêm vào 1 số dòng (cột) với màu cố định (đen)
2.1.1.1.3 Biến đổi cosin rời rạc (DCT)
Tiếp theo, mỗi thành phần (Y, Cr, Br) của từng khối 8x8 được biến đổi sang miền tần sốdùng phép biến đổi cosin rời rạc 2 chiều
Ví dụ 1 khối 8x8 như sau:
ứng với ảnh con (được phóng đại)
Trước khi biến đổi DCT, các giá trị được dịch bit từ khoảng dương sang khoảng xungquanh giá trị 0 Với 8 bit cho mỗi điểm, các điểm ảnh có giá trị trong [0-255] Để lấy điểm 0 làm
Trang 16trung tâm, ta cần trừ mỗi điểm ảnh đi 1 giá trị là 128 Các điểm ảnh sẽ nằm trong khoảng [-128,127]
Bước tiếp theo, thực hiện biến đổi DCT theo công thức:
Trong đó :
u là tần số không gian ngang , là số nguyên 0<=u <8
v là tần số không gian dọc
gx,y là giá trị điểm ảnh ở tọa độ x, y
Gu,v là hệ số DCT tại tọa độ (u,v)
Nếu ta thực hiện phép biến đổi với ma trận trên và làm tròn các kết quả về số nguyên gầnnhất ta sẽ thu được:
Trang 17Giá trị lớn nhất tập trung ở góc trái trên Đây gọi là hệ số DC (thành phần 1 chiều) 63 hệ
số còn lại gọi là các hệ số AC
DCT biến đổi 64 điểm ảnh thành tổ hợp tuyến tính của 64 khối với chiều ngang là u, chiềudọc là v
DCT tạm thời làm tăng số bit của ảnh (16bit / hệ số) Tuy nhiên, ưu điểm của DCT là nó
có xu hướng tập trung các tín hiệu vào 1 góc trong ma trận kết quả (như thấy ở trên) Đặc điểmnày được tận dụng triệt để ở giai đoạn lượng hóa (trình bày sau) nhằm giảm số bit cho 1 hệ sốxuống 8bit hoặc nhỏ hơn Kết quả là
2.1.1.1.4 Lượng hóa
Mắt người nhìn có thể phân biệt sự biến đổi nhỏ của độ sáng trong một khoảng rộng,nhưng không phân biệt tốt cường độ sáng khi độ sáng dao động với tần số lớn Đặc điểm nàycho phép ta có thể giảm lượng thông tin của các thành phần tân số cao Việc này có thể làm đơn
Trang 18giản bằng cách chia mỗi thành phần trong miền tần số cho 1 hằng số và làm tròn kết quả nhậnđược Đây là thao tác làm mất thông tin chính trong cả quá trình Việc này làm cho hầu hết cácthành phần tần số cao bị làm tròn về 0 và các thành phần còn lại trở thành các số nguyên có giátrị tuyệt đối nhỏ - ta có thể lưu trữ bằng 1 số lượng nhỏ các bit
Một ma trận lượng hóa thường dùng là:
Các hệ số DCT được lượng hóa theo công thức:
Trong đó A là các hệ số DCT chưa lượng hóa, Q là ma trận lượng hóa ở trên, B là các hệ
số DCT đã được lượng hóa
Với ví dụ trên ta thu được ma trận hệ số sau khi lượng hóa như sau:
Ví dụ, hệ số ở góc trái trên (Hệ số DC) được lượng hóa như sau:
Trang 192.1.1.1.5 Mã hóa Entropy
Mã hóa entropy là dạng đặc biệt của phương pháp nén không mất dữ liệu Trước hết cácthành phần ảnh được sắp xếp theo thứ tự zigzag, sau đó dùng mã huffman để mã hóa
Với các hệ số DCT đã lượng hóa ở trên, sau khi sắp theo thứ tự zigzag ta thu được:
Gọi khối thứ i là Bi, mỗi hệ số DCT của ảnh ở vị trí (p,q ) gọi là Bi(p,q) với p = 1 7, q =1 7 Từ đó , thứ tự của các hệ sổ ở từng khối theo sơ đồ zigzag sẽ là Bi(0,0) , Bi(0,1) , Bi(1,0),Bi(2,0) …
Chuẩn JPEG dùng phương pháp mã hóa Huffman để mã hóa các hệ số của các khối JPEGdùng 1 từ mã đặc biệt (EOB) để kết thúc sớm 1 chuỗi khi các hệ số còn lại của chuỗi bằng 0
Trang 20Chuẩn JPEG cung cấp 1 bảng mã Huffman để dùng chung, tuy nhiên các chương trình nén
có thể tự sinh ra bảng Huffman cho từng ảnh được mã hóa để tối ưu hóa việc nén
2.1.1.1.6 Tỷ lệ nén và ảnh hưởng
Trong chuẩn JPEG, tỷ lệ nén có thể thay đổi tùy theo yêu cầu bằng cách thay đổi số chiatrong quá trình lượng hóa Với tỷ lệ nén 10:1 , ảnh sau nén và ảnh trước nén khó có thể phânbiệt bằng mắt thường Với tỷ lệ nén 100:1 thì ảnh sau nén và anh trước nén có thể phân biệt rõràng Một tỷ lệ nén thích hợp sẽ tùy thuộc vào mục đích sử dụng bức ảnh
2.1.1.2 Giải nén JPEG
Quá trình giải nén thực hiện ngược lại các bước ở quá trình nén
Trang 21 Giải mã huffman , thu được ma trận hệ số của từng khối:
Nhân từng phần tử với phần tử tương ứng trong ma trận lượng hóa ta thu được:
Biến đổi ngược cosin rời rạc IDCT thu được ảnh
Cộng thêm 128 vào giá trị của từng điểm trong khối thu được khối giải nén:
Trang 22So sánh ảnh giải nén với ảnh gốc:
Lấy ảnh giải nén trừ đi ảnh gốc thu được ma trận lỗi:
Trong trường hợp này, trung bình lỗi của 1 pixel là:
2.2 Phương pháp nén Audio
Các phương pháp nén: PCM, LPC, GSM, acc (facc)
2.3 Phương pháp nén Video
Chuẩn nén mới: H264 (AVC – advance video coding hay MPEG4 – part 10), các ưu điểm
so với các chuẩn nén trước đó
Trang 232.3.1.1 H264 hoạt động như thế nào?
Việc nén H264 được thực hiện qua các quá trình: Prediction, transform, Encode để cóđược dòng bit H264 (bit stream) Bộ giải mã H264 thực hiện quá trình ngược lại: decoding,inverse transform, reconstruction
- Quá trình mã hóa:
Prediction
Bộ mã hóa xử lý một khung video (frame) dưới dạng các khối (macroblock)16x16 pixel
Nó xây dựng 1 bộ dự đoán khối dựa trên các dữ liệu mã hóa trước đó, các dữ liệu này có thể ởframe hiện tại (intra prediction) hoặc ở các frame đã được mã hóa và truyền đi trước đó (interprediction) Bộ giải mã sẽ lấy khối hiện tại trừ đi khối dự đoán của nó để thu được 1 phần dư.Phương pháp dự đoán của H264 mềm dẻo hơn các phương pháp dự đoán của các chuẩntrước đó, cho phép các dự đoán chính xác và tăng cường hiệu quả nén video Dự đoán trong(intra prediction) dùng khối 16x16 và 4x4 để dự đoán khối từ các khối xung quanh đã được xử
lý trước đó trong cùng frame (Như minh họa trong hình dưới đây)
Trang 24Dự đoán liên khung (inter prediction) sử dụng khối có kích thước từ 4x4 đến 16x16 để dựđoán các điểm ảnh trong khung hiện tại từ các miền tương ứng trong các khung đã được xử lýtrước đó (Minh họa ở hình dưới)
Biến đổi và lượng hóa
Dùng phép biến đổi nguyên 4x4 hoặc 8x8 để biến đổi phần chênh lệch của khối (block)thực và khối dự đoán của nó Phép biến đổi này là phép biến đổi cosin rời rạc Sau biến đổi tathu được 1 tập các hệ số, mỗi hệ số là trọng số ứng với 1 mẫu cơ bản ( khi ta kết hợp các mẫu
cơ bản này lại – dùng các trọng số vừa tính được , thì sẽ tái tạo lại được phần dư vừa biến đổi )Hình sau mô tả quá trình biến đổi cosin rời rạc ngược
Trang 25Hình 2.10Các hệ số được lượng hóa (giống phương pháp lượng hóa của JPEG).
Mã hóa dòng bit
Quá trình nén video đưa ra một số giá trị phải đưa vào mã hóa để xây dựng dòng bit đãnén Các giá trị đó gồm:
+ Các hệ số đã lượng hóa
+ Thông tin cho phép bộ giải mã có thể tái tạo quá trình dự đoán
+ Thông tin về cấu trúc của dữ liệu đã nén và công cụ dùng trong quá trình mã hóa
+ Thông tin về thứ tự đầy đủ của các frame
Các giá trị và tham số này (gọi là các thành phần cú pháp H264) được chuyển thành dữliệu nhị phân và dùng phương pháp nén “variable length coding” và /hoặc “arithmetic coding”.Dòng bit nén này có thể được lưu trữ lại hoặc truyền đi
- Quá trình giải mã
Giải mã dòng bit
Giải lượng hóa và biến đổi ngược
Tái tạo các frame
Trang 262.3.1.2 H264 trong thực tế
Hiệu quả
So với các chuẩn nén MPEG2 , MPEG4-visual thì H264 có thể mang lại chất lượng videocao hơn với cùng 1 tỉ lệ nén (Hoặc nén tốt hơn với cùng chất lượng video)
Hình 2.11 Khung (frame) được nén trong cùng bitrate dùng MPEG-2 (trái) , MPEG-4
Visual (giữa) và H264 (phải)
Ứng dụng
Do có được ưu điểm vượt trội trong hiệu quả nén video nên H264 được ứng dụng rất rộngrãi
- DVD độ nét cao (High definition DVD)
- High definition TV broadcasting ở Châu Âu
- Các sản phẩm của Apple (iTune , iPod…)
Trang 273.1 Cấu trúc và mô hình đĩa cứng
Hình 3.1 Cấu trúc vật lý của đĩa cứng
3.2 Sự lập lịch trình trên đĩa
Hình 3.2 Mô hình nhận dữ liệu: đến trước-phục vụ trước
Trang 28Hình 3.3 Việc lập lịch đọc và truyền dữ liệu tại media server
3.3 Cải thiện thông lượng đĩa
3.4 Lưu trữ và thu nhận dữ liệu trên nhiều đĩa
3.4.1 Phân vùng và replication
3.4.2 Disk striping
3.4.3 Lập lịch trình cho nhiều đĩa
3.5 Phân miền đĩa
Trang 29Chương 4 Truyền số liệu đa phương tiện trên mạng máy tính
Đặc điểm: Có dữ liệu thời gian thực, yêu cầu đồng bộ (audio, video)
Nội dung chính: Streaming Media
Trong chương chương này, ta sẽ tìm hiểu về chủ đề truyền dòng dữ liệu đa phương tiệnqua mạng máy tính tới người sử dụng
Ta có thể tách vấn đề streaming dữ liệu theo 2 vấn đề con: giao thức (protocol) vàscheduling (lập lịch trình) Vấn đề giao thức ta cần phải giải quyết khi thiết kế các giao thức ởtầng giao vận (transport layer) hay tầng ứng dụng (application) giữa hệ thống media server vàmedia client Các chủ đề chính ở đây gồm: xác định tài nguyên (resource identification) , điềukhiển trình diễn (playback control) , đồng bộ hóa dữ liệu, xác thực người dùng (authentication) ,quản lý bản quyền số… Vấn đề thứ 2 giải quyết việc truyền dữ liệu như: lập lịch trình truyền dữliệu để đảm bảo tính liên tục của thông tin đa phương tiện, truyền dữ liệu với tốc độ bit thay đổi(variable bit-rate media streamings) và làm cho các dòng dữ liệu thích nghi khi các điều kiện của
hệ mạng thay đổi
4.1 Streaming media
4.1.1 Truyền dòng dữ liệu dùng giao thức TCP/UDP
Trước khi tìm hiểu về các giao thức chuyên biệt cho streaming, chúng ta sẽ khám phá tínhkhả thi của việc dùng các giao thức internet hiện có cho các ứng dụng streaming Khi nghĩ tớicác giao thức ở tầng giao vận (transport) , Internet đã hỗ trợ giao thức TCP (transmission controlprotocol ) và UDP (user datagram protocol) TCP là giao thức được dùng bởi hầu hết các ứngdụng Internet như WWW, FTP, telnet, … Đây là giao thức hướng kết nối và trong đó baogồm các thành phần: điều khiển lỗi , điều khiển luồng, tránh tắc nghẽn Nói cách khác, TCPcung cấp 1 lá chắn giúp cho các ứng dụng tránh khỏi các phức tạp trong quản lý lưu lượng dữliệu qua mạng Internet Điều này làm đơn giản hóa việc phát triển ứng dụng và TCP có cácthuộc tính mong muốn – chia sẻ tài nguyên mạng với các luồng cạnh tranh lưu lượng mạng theocách hợp lý Vậy một câu hỏi đặt ra là TCP có giúp cho việc streaming dữ liệu đa phương tiện 1cách thuận tiện không (như mô tả trong hình sau) ?
Trang 30Hình 4.12 Streaming media dùng giao thức TCP
Câu trả lời phụ thuộc vào thông lượng (bandwidth) yêu cầu, đặc tính mạng và chất lượngmong muốn của dịch vụ… Ví dụ nếu thông lượng mạng lớn hơn tốc độ dữ liệu (data rate) thìstreaming qua TCP sẽ hoạt động tốt Theo cách đó, khi người dùng yêu cầu nội dung đa phươngtiện dùng giao thức siêu văn bản HTTP, web server sẽ gửi dữ liệu đa phương tiện đó qua giaothức HTTP 1 cách đơn giản – và các thao tác này sử dụng giao thức TCP để chuyển dữ liệu Khiweb server không thực hiện streaming dữ liệu đa phương tiện một cách rõ ràng, nó sẽ truyền dữliệu này với tốc độ như tốc độ mà mạng cho phép bất chấp tần số dữ liệu thực (data rate) của dữliệu đa phương tiện này như thế nào Phía client, sau khi đã nhận được chắc chắn 1 lượng dữ liệu
về sẽ bắt đầu thực hiện hiển thị (playback) ngay và không phải đợi toàn bộ dữ liệu của đối tượngđược nhận về đầy đủ Chỉ cần luồng dữ liệu đa phương tiện thỏa mãn tốc độ dữ liệu của quátrình playback thì kết quả nhận được sẽ giống như streaming
Streaming qua HTTP có nhiều thuận tiện rõ nét Thứ nhất, khi webserver được dùng đểphục vụ nội dung đang phương tiện, nhà cung cấp dịch vụ không cần phải đầu tư thêm mediaserver chuyên dụng Thứ hai, việc triển khai đơn giản và lưu lượng mạng được coi như lưulượng của dịch vụ web và cho phép nó trở nên trong suốt với firewall và gateway Thứ ba, với
sự hỗ trợ dịch vụ HTTP rộng rãi giúp nâng cao tính tương thích với các ứng dụng client Hầu hếtcác chương trình media player hỗ trợ thêm pseudo-streaming qua giao thức HTTP/TCP ngoàigiao thức streaming của riêng nó
Tuy nhiên, nhược điểm của việc streaming qua HTTP/TCP là hiệu năng (performance) Ởtầng ứng dụng, web server không được thiết kế để chuyển các dữ liệu đa phương tiện nhạy cảmthời gian và do đó không phải lúc nào nó cũng cho phép đảm bảo việc playback dữ liệu đaphương tiện một cách trơn tru, không giật khi server phục vụ một lượng lớn người dùng Ở tầnggiao vận (transport) , giao thức TCP được thiết kế cho các ứng dụng nói chung và do đó không
có sự hỗ trợ đặc biệt nào cho ứng dụng nhạy cảm thời gian, nhạy cảm thông lượng nhưstreaming media
Trang 31Ví dụ, thuật toán điều khiển tắc nghẽn của TCP sẽ làm giảm tốc độ truyền dữ liệu sau khithiết lập kết nối (ví dụ thuật toán slow-start) bất chấp thông lượng mà ứng dụng đòi hỏi Hơn thếnữa, đặc tính điều khiển lỗi của TCP yêu cầu tính đúng đắn và tính tuần tự của dữ liệu Nghĩa lànếu 1 đoạn dữ liệu bị mất, thì bên gửi sẽ phải gửi lại đến khi bên nhận thông báo là nhận đượcđúng đoạn dữ liệu đó hoặc là nó sẽ hủy bỏ quá trình truyền và ngắt kết nối.Trong ứng dụngstreaming đây không phải là điều luôn mong muốn, vì mỗi dữ liệu đa phương tiện có 1 thông tinđịnh thời và nó phải được playback ở thời điểm định trước, nếu không dữ liệu đó sẽ trở nên vôích Theo đó, nếu việc truyền lại làm cho dữ liệu được nhận về sau thời điểm deadline dành chođoạn dữ liệu đó thì dữ liệu đó sẽ không có ích và sẽ được hủy bỏ bởi nơi nhận Trong trườnghợp này, thông lượng dành cho việc truyền lại là lãng phí.
Trong trường hợp xấu nhất, thuật toán điều khiển tắc nghẽn (congestion controlalgorithms) của giao thức TCP sẽ coi gói tin bị mất như một dấu hiệu của việc nghẽn mạng, theo
đó nó sẽ giảm tốc độ truyền bằng cách giảm kích thướcc cửa sổ nghẽn Điều này khiến cho bêngửi sẽ không gửi thêm được dữ liệu đến khi kích thước cửa sổ nghẽn trở lại bình thường sau khinhận được đủ số gói tin phản hồi (ack) từ phía bên nhận dữ liệu Điều này gây ra 1 vấn đề trong
hệ thống streaming media đó là: việc trì hoãn truyền dữ liệu đa phương tiện sẽ khiến cho chúng
bị vượt quá thời hạn deadline, do đó dữ liệu đó sẽ bị bỏ qua mặc dù chúng thực sự được truyền
đi qua mạng và được client nhận về
Ngược lại, Giao thức UDP (User Datagaram Protocol) không gặp phải các vấn đề trên củaTCP do tính đơn giản của nó UDP không có bộ điều khiển nghẽn, điều khiển lỗi, điều khiển
Trang 32luồng Do đó bản thân giao thức này không gây trễ thêm (bỏ qua thời gian xử lý và việc trễ góitin) như các thuật toán điều khiển luông, điều khiển nghẽn của TCP, do đó nó thích hợp trongviệc truyền các dữ liệu đa phương tiện nhạy cảm thời gian Tuy nhiên, trong streaming mediađôi khi vẫn cần phải thực hiện điều khiển luồng, chống tắc nghẽn, cũng như lấy lại gói tin bịmất Điểm mấy chốt là khi thực hiện các chức năng này cần phải cân nhắc tính toán sao cho phùhợp với bộ định thời và thông lượng yêu cầu của hệ thống Điều này có thể thực hiện bằng cáchxây dựng một layer của giao thức streaming trên cơ sở UDP, ở đó giao thức streaming sẽ thựchiện chức năng streaming chuyên biệt trong khi dùng UDP được dùng 1 cách đơn giản để truyền
dữ liệu và điều khiển luồng
4.1.2 Các giao thức streaming chuyên biệt
Qua nhiều năm, một số giao thức streaming được xây dựng và phát triển bởi cả các công
ty thương mại và cộng đồng Internet Về phía thương mại, các công ty giải pháp streamingthường phát triển các giao thức streaming của riêng họ để dùng cho các sản phẩm của mình Ví
dụ, Microsoft phát triển dịch vụ Microsoft Media Services (MMS) để dùng trong hệ thốngWindows Media MMS dùng TCP để trao đổi các thông tin điều khiển và truyền dữ liệu đaphương tiện qua cả TCP và UDP RealNetworks cũng phát triển giao thức RealNetwork DataTransport (RDT) để dùng cho cá giải pháp của họ Do tính riêng tư, nên các giao thức này sẽkhông được bàn thêm trong nội dung này
Bên cạnh đó , cộng đồng Internet cũng phát triển các chuẩn mở dành cho streaming media.Các chuẩn này bao gồm: Real Time Streaming Protocol (RTSP) được định nghĩa trong chuẩnRFC 2326, RealTime Transport Protocol (RTP) và RTP Control Protocol (RTCP) trở thànhchuẩn từ năm 2004
4.1.2.1 Giao thức RSTP (Realtime streaming protocol)
RSTP là giao thức ở tầng application được thiết kế để điều khiển sự truyền dữ liệu đaphương tiện (như play, pause, seek) với thông tin thời gian đi kèm (như audio, video) Giao thứcnày độc lập với các giao thức ở tầng thấp hơn, do đó nó có thể được thực hiện trên TCP hoặcUDP hoặc giao thức khác ở tầng giao vận Cú pháp của RSTP gần giống như cú pháp củaHTTP/1.1, do đó dễ thực hiện và triển khai Bên cạnh những điểm tương tự, nó có một số điểmkhác nhau quan trọng
Thứ nhất, RSTP là giao thức stateful, do đó yêu cầu client duy trì thông tin về phiênstreaming qua các request RSTP Thứ 2 cả RSTP client và server đều có thể đưa ra RSTP