Khôi phục các gói tin bị mất tại phía nhận

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Đánh giá yêu cầu tài nguyên mạng của ứng dụng Video Conference Luận văn ThS. Công nghệ thông tin (Trang 35 - 39)

Như đã nói ở phần trên chúng ta quan niệm rằng: Gói tin bị coi là mất nếu nó không tới phía nhận hoặc tới sau thời gian mà nó được thực hiện tại phía nhận (theo lịch). Việc truyền lại gói tin bị mất là không phù hợp với ứng dụng thời gian thực. Vì thế ta sử dụng lược đồ khôi phục gói tin bị mất tại phía nhận. Có 2 kiểu lược đồ là: lược đồ FEC (forward error correction) và lược đồ xen kẽ (interleaving).

2.4.1. Lược đồ FEC

Ý tưởng của FEC là thêm các thông tin bổ sung vào gói tin. Các thông tin này có thể được dùng để khôi phục các gói tin bị mất. Chúng ta xét 2 cơ chế FEC.

Cơ chế thứ nhất: Cứ sau n đoạn thì lại gửi một đoạn chứa thông tin bổ sung. Đoạn chứa thông tin bổ sung đó được tạo bằng cách thực hiện phép XOR n đoạn ban đầu. Nếu một gói tin nào đó trong n + 1 gói tin đã gửi bị mất, phía nhận có thể khôi phục lại gói tin đó. Nhưng nếu có nhiều gói tin bị mất, phía

nhận sẽ không thể tái tạo lại được. Nếu để cỡ của khối là (n + 1) nhỏ, một phần lớn của các gói tin bị mất có thể được khôi phục. Lược đồ này cũng làm tăng độ trễ bởi vì phía nhận phải nhận toàn bộ khối gói tin xong mới có thể thực hiện chúng được.

Hình 2.2. Sửa đổi dữ liệu sử dụng FEC

Cơ chế FEC thứ hai: Gửi một luồng thông tin bổ sung chính là luồng âm thanh có chất lượng thấp hơn. Chẳng hạn, phía gửi tạo một luồng bình thường và một luồng tốc độ bít thấp (ví dụ: luồng bình thường là mã hóa PCM tốc độ 64Kbps, luồng tốc độ bít thấp là mã hóa GSM tốc độ 13Kbps). Luồng tốc độ bít thấp được xem như là thông tin bổ sung. Phía gửi sẽ tạo ra gói tin thứ n

bằng cách lấy đoạn thứ n của luồng bình thường và chèn vào đó đoạn thứ n-1

của luồng bổ sung như hình vẽ. Khi xảy ra mất gói tin không liên tiếp, phía nhận có thể chạy đoạn mã hóa tốc độ bít thấp trong gói tin kế tiếp. Đoạn tốc độ bít thấp cho chất lượng âm thanh thấp hơn đoạn bình thường, nhưng trên tổng thể thì ảnh hưởng không đáng kể. Trong lược đồ này, phía nhận chỉ phải nhận 2 gói tin trước khi thực hiện chạy chúng, vì thế độ trễ là nhỏ. Nếu mã hóa tốc độ bít thấp chiếm tỉ lệ kích thước không đáng kể so với mã hóa bình thường, tốc độ truyền tăng lên không đáng kể.

Hình 2.3. Chèn thêm thông tin bổ sung là các gói tin tốc độ bít thấp vào gói tin bình thường

Để xử lý việc mất gói tin liên tục, một biến thể của cơ chế trên được sử dụng. Thay vì chèn đoạn tốc độ bít thấp thứ n-1 vào đoạn bình thường thứ n,

phía gửi sẽ chèn đoạn tốc độ bít thấp thứ n-1 và n-2, hoặc chèn đoạn tốc độ bít thấp thứ n-1 và thứ n-3. Việc chèn càng nhiều đoạn bổ sung vào thì càng làm

tăng băng thông cần thiết và độ trễ. 2.4.2. Lược đồ xen kẽ

Phía gửi sẽ xếp các dữ liệu âm thanh trước khi truyền, các phần tử sát nhau sẽ được xếp cách nhau một khoảng nào đó trong luồng truyền đi. Điều này sẽ làm giảm ảnh hưởng của việc mất gói tin. Ví dụ: Mỗi phần tử ứng với dữ liệu âm thanh dài 5ms, một đoạn dài 20ms (chứa 4 phần tử). Đoạn đầu tiên chứa các phần tử thứ:1, 5, 9, 13,… đoạn thứ 2 chứa phần tử thứ: 2, 6, 10, 14,… Việc mất gói tin sẽ chỉ làm cho mỗi đoạn nhận được sau khi được khôi phục lại giảm chất lượng đi chút ít.

Hình 2.4. Lược đồ khôi phục gói tin bị mất theo kiểu xen kẽ

Cơ chế trên có thể nâng cao chất lượng luồng nhận được. Bất lợi dễ thấy là tăng độ trễ. Đây là hạn chế với các ứng dụng tương tác thời gian thực như điện thoại Internet hoặc Video Conference, mặc dầu không ảnh hưởng lắm tới ứng dụng truyền âm thanh, hình ảnh được lưu trữ trên server. Thuận lợi là không làm tăng yêu cầu băng thông.

2.4.3. Cơ chế khôi phục gói tin bị mất chỉ dựa trên phía nhận

Lược đồ khôi phục gói tin bị mất kiểu này sẽ cố gắng tạo ra một gói tin thay thế cho gói tin bị mất làm sao cho gói tin thay thế sẽ thật giống gói tin bị mất nếu có thể. Điều này có thể thực hiện được với tín hiệu âm thanh. Kỹ thuật này sử dụng cho luồng lưu lượng có tỉ lệ mất gói tin là nhỏ (<15%) và kích thước gói tin nhỏ (ví dụ chỉ chứa dữ liệu mã hóa 4-40ms âm thanh). Khi gói tin có độ dài lớn thì kỹ thuật này không được áp dụng vì nó gây lỗi ở phía người nghe.

Các kỹ thuật phục hồi phía nhận được thể hiện trong hình 2.5 – Phân loại các kỹ thuật che dấu lỗi. Theo đó, các kỹ thuật này được phân làm 3 loại:

 Chèn (Insertion): Là dạng đơn giản nhất. Nó thực hiện bằng cách chèn các gói lấp đầy vào vị trí gói mất. Gói được sử dụng để chèn có thể là khoảng lặng, tiếng ồn, hoặc chính là gói vừa nhận được ngay trước đó. Điều này có ưu điểm là yêu cầu khả năng tính toán thấp tại phía nhận.

 Dạng thứ hai của lược đồ này là sử dụng phép nội suy (Interpolation): Khi một gói tin bị mất, phía nhận sẽ sử dụng gói tin tới trước và sau gói tin bị mất để nội suy ra một gói tin mới thay thế cho gói tin bị mất. Dạng này cho chất lượng tốt hơn dạng thứ nhất nhưng yêu cầu khả năng tính toán tại phía nhận cao hơn.

 Tái tạo lại (Regeneration): Là kỹ thuật sử dụng các thuật toán nén thoại với các tham số mã hóa nhận được để tái tạo lại các gói tin bị mất. Kỹ thuật này cho chất lượng âm thanh tốt vì có lượng lớn thông tin được phục hồi nhưng chúng đòi hỏi nhiều tính toán.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Đánh giá yêu cầu tài nguyên mạng của ứng dụng Video Conference Luận văn ThS. Công nghệ thông tin (Trang 35 - 39)

Tải bản đầy đủ (PDF)

(89 trang)