i. Mã hóa Entropy Điều khiển mã hóa Biến đổi / Lượng tử hóa Nghịch đảo lượng tử/ Biến đổi Bộ lọc giải khối Dự đoán trong ảnh Bù chuyển động MC Ước lượng chuyển động ME Giải mã hóa Video đầu vào Chia thành các Macroblock
Điều khiển dữ liệu
Dữ liệu di động Intra/Inter Video đầu ra NAL X P n F Dn 'n D 'n uF 1 n F Mã hóa Entropy Hình 3.14. Mã hóa Entropy
Mã hoá số học nhị phân thích nghi với ngữ cảnh (Context-adaptive binary arithmetic coding - CABAC)
- Mã hoá có độ dài từ mã thay đổi thích nghi với ngữ cảnh (Context- adaptive variable-length coding - CAVLC)
- Mã hoá có độ dài từ mã thay đổi (Common variable-length coding - VLC) k. Bộ lọc deblocking
Cấu trúc khối cơ bản của H.264 là 4x4 cho biến đổi và bù chuyển động. Do vậy, ảnh sẽ hình thành các đường biên giữa các khối. Bộ lọc sẽ triệt tiêu các biên này để hình ảnh được tự nhiên hơn.
Một bộ lọc được sử dụng cho mỗi macroblock được mã hóa nhằm làm giảm méo. Bộ lọc deblocking được sử dụng sau biến đổi ngược ở bộ mã hóa(trước khi tái tạo lại và lưu trữ) và ngược lại đối với bộ giải mã. Bộ lọc giúp cải thiện chất lượng hình ảnh. Hình ảnh được lọc sẽ sử dụng để làm dự đoán bù chuyển động cho các hình ảnh trong tương lai và điều này có thể giúp cải thiện chất lượng nén bởi vì những hình ảnh đã được lọc chân thực hơn so với các ảnh không được lọc.
l. Thứ tự macroblock mềm dẻo
Để cung cấp các phương pháp che giấu hiệu quả trong các kênh có khuynh hướng bị lỗi với các ứng dụng độ trễ thấp, H.264 / AVC hỗ trợ một đặc điểm gọi là thứ tự macroblock mềm dẻo (FMO - Flexible Macroblock Ordering). FMO định rõ một giản đồ (pattern) ấn định các macroblock trong ảnh vào một hoặc vài nhóm slice. Mỗi nhóm slice được truyền riêng biệt. Nếu một nhóm slice bị mất, các mẫu trong các macroblock bên cạnh về mặt không gian, thuộc về các nhóm slice được thu đúng, có thể được sử dụng cho che dấu hiệu quả lỗi.
3.1.2.2.4. Ưu điểm của H.264/AVC
- Chất lượng hình ảnh tốt: H.264 là chuẩn nén sử dụng công nghệ âm thanh, hình ảnh mới khả năng nén tôt hơn so với các chuẩn nén trước đó. Do đó, chuẩn nén cung cấp dịch vụ phân phát hình ảnh chất lượng cao qua mạng băng thông giới hạn.
- Yêu cầu băng thông thấp: Chất lượng hình ảnh của H.264 gần giống với MPEG-2 nhưng H.264 cần ít băng thông để truyền tải tín hiệu với cùng chất lượng. Đặc điểm này rất phù hợp để sử dụng trong hệ thống IPTV.
- Có khả năng kết hợp với các thiết bị xử lí video có sẵn như MPEG-2 và hạ tầng mạng dựa trên IP đã có sẵn.
- Hỗ trợ truyên hình độ phân giải cao: Khi sử dụng tối ưu chuẩn nén thể làm có thể làm tăng khả năng truyền dữ liệu của mạng. Do đó các nhà cung cấp dịch vụ truyền thông có thể sử dụng chuẩn nén này để cung cấp chương trình video độ phân giải cao qua mạng sẵn có.
- Hỗ trợ nhiều ứng dụng: chuẩn nén H.264 được sử dụng trong nhiều ứng dụng, với nền khác nhau thì có những yêu cầu riêng. Ví dụ, ứng dụng truyền đa điểm trong IPTV yêu cầu phải hiện thị hình ảnh ở dạng chuẩn truyền hình, trong khi, đối với các ứng dụng giải trí di động, hình ảnh phải hiển thị được trên các thiết bị di động. Để phù hợp với mọi ứng dụng, chuẩn nén H.264 có rất nhiều profile và level. Đặc điểm của profile và level là tốc độ bit và kích thước ảnh.
- Có thể truyền độc lập: Chuẩn nén H.264 có thể truyền qua nhiều giao thức như ATM, RTP,UDP, TCP và các dong MPEG-2.
- Dễ dàng thích nghi với các mạng chất lượng kém nhờ cơ chế sửa lỗi. 3.1.2.2.5. Các ứng dụng của H.264/AVC
Chuẩn nén này được thiết kế cho các ứng dụng sau:
- Truyền hình quảng bá qua qua vệ tinh, cáp, mặt đất…
- Truyền hình tương tác, video theo yếu cầu (VoD).
- Lưu trữ đĩa quang, băng từ, DVD.
- Tích hợp dịch vụ qua ISDN, LAN, DSL, mạng không dây, mạng di động, modem
- Nhắn tin đa phương tiện MMS qua ISDN, DSL, LAN mạng di động. Còn nhiều ứng dụng được phát triển trên mạng hiện tại như video, phone…
3.2. Lựa chọn giao thức mạng
3.2.1. Giao thức cho dịch vụ multicast 3.2.1.1. Giao thức IGMP 3.2.1.1. Giao thức IGMP
Giao thức IGMP phát triển từ giao thức Host Membership Protocol, được mô tả trong tài liệu của Deering. Giao thức IGMP có ba phiên bản verion 1, verion 2,và verion 3. IGMP phát triển từ IGMPv1 (RFC1112) đến IGMPv2 (RFC2236) và đến phiên bản cuối cùng IGMPv3 (RFC3376). Các thông điệp IGMP được gửi bên trong gói tin IP với trường protocol number bằng 2, trong đó trường TTL có giá trị bằng 1. Các gói IGMP chỉ được truyền trong LAN và không được tiếp tục chuyển sang LAN khác do giá trị TTL của nó.
Hai mục đích quan trọng nhất của IGMP là:
- Thông báo cho router multicast rằng có một máy muốn nhận multicast traffic của một nhóm cụ thể.
- Thông báo cho router rằng một có một máy muốn rời một nhóm multicast (nói cách khác, có một máy không còn quan tâm đến việc nhận multicast traffic nữa). Các router thường dùng IGMP để duy trì thông tin cho từng cổng của router là những nhóm multicast nào router cần phải chuyển và những host nào muốn nhận.
Trước khi một host có thể nhận bất kỳ một multicast traffic nào, một ứng dụng multicast phải được cài đặt và chạy trên host đó. Sau khi một host tham gia vào một nhóm, phần mềm sẽ tính toán địa chỉ multicast và sau đó card mạng sẽ bắt đầu lắng nghe địa chỉ multicast MAC. Trước khi một host hoặc một người dùng muốn tham gia vào một nhóm, người dùng cần phải biết nhóm nào đang tồn tại và làm thế nào để tham gia vào nhóm đó. Đối với các ứng dụng mức doanh nghiệp, người dùng chỉ cần đơn giản nhấp vào một link trên một trang web hoặc địa chỉ multicast có thể cấu hình trước trên client. Ví dụ, một người dùng có thể được yêu cầu để log vào một máy chủ và xác thực bằng tên và người dùng. Nếu tên người dùng được xác thực, ứng dụng multicast sẽ tự động cài trên PC của người dùng, nghĩa là người dùng đã tham gia vào nhóm multicast. Khi người dùng không còn muốn dùng ứng dụng multicast nữa, người dùng phải rời khỏi nhóm. Ví dụ, người dùng đơn giản chỉ cần đóng ứng dụng multicast để rời khỏi nhóm. Đối với cơ chế multicast, một người dùng cần phải tìm ra ứng dụng nào họ muốn chạy, địa chỉ multicast được dùng bởi ứng dụng.
Làm thế nào một router biết được các máy cần nghe multicast traffic? Để nhận multicast traffic từ một nguồn, cả nguồn và các máy nhận đầu tiên phải gia nhập (join) vào một nhóm multicast. Nhóm này được xác định thông qua địa chỉ multicast. Một host có thể tham gia vào một nhóm multicast bằng cách gửi các yêu cầu đến router gần nhất. Tác vụ này được thực hiện thông qua giao thức IGMP. IGMPv1 được định nghĩa trong RFC1112 và bản cải tiến của nó, IGMPv2 được định nghĩa trong RFC2236. Khi có vài host muốn tham gia vào nhóm, giao thức PIM sẽ thông báo cho nhau giữa các router và hình thành nên cây multicast giữa các routers. IGMP và ICMP có nhiều điểm tương đồng, cùng chia sẽ một vài chức năng tương tự. IGMP cũng đóng gói trong gói tin IP (protocol number 2), nhưng IGMP giới hạn chỉ trong một kết nối lớp 2. Để đảm bảo router không bao giờ tiếp tục chuyển gói tin đi, trường TTL của IGMP luôn
có giá trị bằng 1.
3.2.1.2. Giao thức PIM
Giao thức PIM là giao thức xử lý gói tin multicast độc lập nhau. Hiện nay có ba loại PIM đang được sử dụng là: PIM-SM, PIM-DM, PIM-SSM
3.2.1.2.1. Giao thức PIM-SM
Giao thức định tuyến chế độ sparse được sử dụng khi có ít số lượng các ứng dụng multicast. Các giao thức PIM chế độ sparse không truyền lưu lượngcủa nhóm tới bất kỳ router nào trừ phi nó nhận được một thông điệp yêu cầu các bản sao của các gói tin được gửi tới một nhóm multicast đặc biệt.
Một router láng giềng yêu cầu các gói chỉ nhằm một trong hai mục đích:
- Router đã nhận được một yêu cầu nhận gói tin từ một vài router láng giềng -Một host trên một phân đoạn mạng đã gửi thông điệp IGMP join cho nhóm đó. PIM-SM hoạt động với một chiến lược khác hẳn với PIM-DM mặc dù cơ chế của giao thức không hoàn toàn đối lập. PIM-SM (Protocol Independent Multicast-Sparse Mode)giả sử rằng không có máy nào muốn nhận lưu lượng multicast cho đến khi nào các máy chủ động hỏi. Kết quả là, cho đến khi nào trong một subnet có một máy yêu cầu nhận multicast thì multicast mới được phân phối vào subnet đó. Với PIM-SM, các router downstream phải yêu cầu nhận multicast dùng thông điệp PIM Join. Khi các router nhận được các thông điệp này, các router bên dưới phải định kỳ gửi thông điệp Join lên router upstream. Nếu khác đi, router upstream sẽ không đưa lưu lượng xuống, đặt kết nối vào trong trạng thái prune. Tiến trình này thì ngược lại với tiến trình được dùng trong PIM-DM, trong đó mặc định là phát tán lưu lượng multicast với các router downstream cần phải liên tục gửi thông điệp Prune hay thông điệp làm mới trạng thái State refresh để giữ cho một kết nối là trong trạng thái prune. PIM- SM phù hợp khi chỉ có những tỉ lệ nhỏ các phân đoạn mạng nhận lưu lượng multicast.
3.2.1.2.2. Giao thức PIM-DM (Dense Mode)
Giao thức PIM-DM thường được sử dụng khi mà lưu lượng luồng multicast là rất lớn. PIM-DM luôn có một cổng trong trạng thái prune trong khoảng ba phút. Các thông điệp prune liệt kê một nguồn và nhóm. Đối với giao thức PIM-DM này thì bất cứ khi nào một router nhận được thông điệp prune nó sẽ tìm một hang (S, G) SPT trong bảng định tuyến multicast và đánh dấu các cổng trong đó thông điệp prune là nhận được. Tuy nhiên, các router cũng thiết lập giá trị prune timer, và thường thì mặc định là khoảng 3 phút, để sao cho trong khoảng 3 phút cổng này được đặt trong trạng thái forwarding. Để có thể khắc phục được những tình trạng như là các kết nối bị loại bỏ, liên kết bị loại bỏ và sau 3 phút thì các link tiếp tục hoạt động thì ở PIM-DM có cơ chế làm mới trạng thái stase refresh. Các thông điệp làm mới trạng thái đã khắc phục được sự yếu kém của PIM-DM trong tiến trình pruning.
Trong giao thức PIM-DM các router còn gửi thông điệp Graft để router nhận được đưa một cổng vào trạng thái forwarding cho một nhóm multicast nào đó.
Giao thức PIM-DM nhận biết các thiết bị láng giềng bằng cách trao đổi các gói “hello”. Thông tin láng giềng này được dùng trước để xây dựng cây đến tất cả các láng giềng. Sau đó, các nhánh của cây sẽ lần lượt được loại bỏ. Nếu một dòng multicast bắt đầu, cây sẽ được xây dựng, cây sẽ chỉ tồn tại khi các thành viên tích cực còn tồn tại. Nếu một host mới đăng ký tham gia nhóm, nhánh của phân đoạn mạng đó sẽ được đính thêm vào cây.
3.2.1.2.3. Giao thức PIM-SSM
Giao thức PIM-SSM là giao thức mở rộng của PIM. Khi sử dụng SSM thì một client có thể nhận luồng multicast trực tiếp từ địa chỉ nguồn. PIM- SSM sử dụng chức năng của PIM-SM để tạo ra một cây SPT giữa nguồn và đích nhận, tuy nhiên nó xây dựng SPT mà không cần sự giúp đỡ của router RP. Mặc định là nhóm địa chỉ multicast được giới hạn trong dải địa chỉ 232.0.0.0 tới 232.255.255.255. Tuy nhiên, chúng ta có thể mở rộng tầm hoạt động của SSM sang lớp dải lớp D bao gồm địa chỉ ở mức cao.
Việc cấu hình PIM-SSM có sự khác biệt so với cấu hình PIM-SM truyền thống. Ở đây ta không cần phải chia sẻ hay là RP mapping, hoặc là RP -to -RP nguồn lấy lại thông qua Multicast source discovery Protocol (MSDP).
Triển khai SSM là rất dễ dàng. Chúng ta chỉ cần cấu hình PIM-SM trên tất cả interface của router và chỉ định cái nào cần SSM, bao gồm một cách rõ ràng IGMPv3 trên Lan. Nếu PIM-SM không được cấu hình rõ ràng trên cả nguồn và nhóm thành viên interface thì gói tin multicast sẽ không được forwarded. Trên danh sách hỗ trợ IGMPv3 có sử dụng PIM-SSM. Như tại ở nguồn, trước khi active và bắt đầu gửi gói tin multicast thì quan tâm đến nơi nhân gói tin multicast đó là SSM. Trong việc cấu hình mạng theo PIM- SSM, một thuê bao tới một kênh SSM (sử dụng IGMPv3) sẽ thông báo với các thuê bao để join vào nhóm G và nguồn S. Kết nối trực tiếp với router PIM-SM, router được phân công nhận làm DR, nhận bản tin từ RPF láng giềng.
Source Receiver
Router 4
Router 3 Router 2 Router 1
IGMPv3 Host Report (S.G join) IGMPv3 IGMPv3 (S.G join)
Hình 3.15. Quá trình nhận và thông báo tới các thuê bao để vào group G và sourse S Giao thức PIM là giải pháp hỗ trợ truyền tín hiệu multicast. Khi mà số lượng các nhóm multicast cần phải truyền tăng lên thì PIM là một giải pháp quan trọng để quản lý và giám sát lưu lượng multicast.
3.2.2. Giao thức cho dịch vụ unicast 3.2.2.1. Giao thức RTSP 3.2.2.1. Giao thức RTSP
Giao thức RTSP được phát triển bởi IETF và thành lập vào năm 1998 với chuẩn RFC 2326. Đây là giao thức được ứng dụng để điều khiển dữ liệu với thời gian thực. RTSP cung cấp một khung làm việc cho phép điều
khiển theo yêu cầu về thời gian thực, giống như audio và video. Nguồn dữ liệu có thể bao gồm cả dữ liệu sống và clip lưu trữ. Đây là giao thức dành cho phát triển dữ liệu đa phương tiện, cung cấp cách phân phát các kênh như UDP, TCP và việc đó đảm bảo theo thời gian thực. Điều khiển luồng bởi RTSP có thể sử dụng RTP, nhưng sự hoạt động của RTSP là không phụ thuộc vào kỹ thuật vận chuyển để truyền data. Giao thức được cố tình giả lập trong cú pháp và hoạt động tới HTTP/1.1, vì mở rộng kỹ thuật tới HTTP có thể là hầu hết các trường hợp địa chỉ tới RTSP. Tuy nhiên ở RTSP có sự khác biệt quan trọng về lý thuyết so với HTTP:
- RTSP giới thiệu một số phương pháp mới và có sự khác giao thức xác nhận.
- Một RTSP server cần xác định trạng thái bằng cách mặc định hầu hết tất cả trường hợp, tương phản với trạng thái tự nhiên của HTTP.
- Cả RSTP server và client có thể đưa ra yêu cầu.
- Dữ liệu mang đi out-of-band bằng giao thức khác.
Giao thức RTSP có một số những đặc điểm sau đây:
- Khả năng mở rộng. Phương pháp mới và các thông số có thể dễ dàng thêm vào RTSP.
- Dễ dàng phân tích. Giao thức RTSP có thể dễ dàng phần tích bằng tiêu chuẩn HTTP hoặc MIME.
- RTSP sử dụng kỹ thuật bảo mật web. Tất cả kỹ thuật nhận thực đều cơ bản và chứng thực đều trực tiếp được áp dụng. Một số có thể dừng lại hoặc bảo mật ở lớp mạng.
- Vận chuyển độc lập. RTSP có thể sử dụng một trong hai phương pháp truyền gói tin không tin cậy UDP và đáng tin cậy RDP, hoặc là giao thức luồng tin cậy TCP được thực hiện ở lớp ứng dụng đáng tin cậy.
- Khả năng chạy nhiều server. Mỗi một luồng media giữa các phần trình diễn có thể đặt tại các server khác nhau. Các client sẽ tự động thiết lập một vài phiên điều khiển hiện tại với các server media khác nhau. Giữa chúng được đồng bộ với nhau ở lớp giao vận.
- Điều khiển thiết bị ghi. Giao thức này có thể điều khiển cả 2 quá trình ghi và chạy lại thiết bị, hoặc cũng có thể nằm xen kẽ giữa hai mode.