Làm trễ thời gian thích nghi (adaptive playout delay)

Một phần của tài liệu Kỹ thuật truyền thông đa phương tiện và ứng dụng trong giảng dạy trực tuyến (Trang 58)

Với chiến lược làm trễ việc thích nghi thời gian cố định, nếu thiết lập thời gian tạm ngưng lớn, các gói tin hầu như sẽ tới phía nhận trước thời gian chạy

54 trong lịch nên không có mất mát gói tin. Tuy nhiên, với các ứng dụng tương tác thời gian thực như điện thoại internet, độ trễ lớn quá có thể khiến chất lượng không chấp nhận được. Vậy ta phải giảm thời gian tạm ngưng tới giá trị cực tiểu với ràng buộc là sự mất mát gói tin chỉ là vài phần trăm mà thôi. Một cách rất tự nhiên để giải quyết vấn đề này là đánh giá độ trễ mạng và sự biến thiên độ trễ (jitter), theo đó điều chỉnh thời gian làm trễ tại lúc bắt đầu mỗi cuộc hội thoại. Chúng ta sẽ mô tả thuật toán mà phía nhận thay đổi thời gian làm trễ (playout delay)

Gọi ti là timestamp (thời điểm gói tin được tạo ra tại phía gửi) của gói tin thứ i, ri là thời điểm gói tin thứ i tới phía nhận, pi là thời điểm gói tin thứ i được chơi ở phía nhận. Khi đó, độ trễ end-to-end của gói tin thứ i là ri – ti. Tùy theo jitter, độ trễ này thay đổi khác nhau đối với mỗi gói tin. Gọi di là độ trễ trung bình cho tới gói tin thứ i. Ta có di = (1-u) di-1 + u (ri - ti) với u là hằng số nào đó (ví dụ u = 0.1).

Gọi vi là độ lệch trung bình cho tới gói tin thứ i giữa độ trễ của gói tin thứ i và

độ trễ trung bình di.

vi = (1-u) vi-1 + u | ri - ti - di |

Các giá trị di, vi được tính cho mỗi gói tin nhận được tại phía nhận, để từ đó tính thời điểm chơi cho gói tin đầu tiên của mỗi đoạn thoại.

Sau khi tính các giá trị trên, giả sử gói tin thứ i là gói tin đầu tiên của đoạn thoại nào đó, thời điểm chơi của nó tại phía nhận sẽ là pi = ti + di + Kvi, trong đó K là hằng số dương (ví dụ K = 4). Kvi được thêm vào để cho thời điểm chơi gói tin đủ lâu để các gói tin bị coi như bị mất là rất ít. Thời điểm chơi của các gói tin tiếp theo trong cùng đoạn thoại với gói tin đầu tiên sẽ là pj = tj + qi với qi = pi -ti , là thời gian từ khi gói tin đầu tiên được tạo ra (bên gửi) cho tới khi nó được chạy (bên nhận). Trong thuật toán trên điều quan trọng là phải xác định đâu

55 là đoạn đầu tiên của đoạn thoại. Nếu không có sự mất gói tin, phía nhận có thể xác định được điều này bằng cách so sánh timestamp của gói tin thứ i với timestamp của gói tin thứ i-1. Nếu, ti - ti-1 > 20ms, thì phía nhận sẽ biết rằng gói tin thứ i là gói tin đầu tiên của đoạn hội thoại. Nhưng khi việc mất gói tin xảy ra, thì khi ti - ti-1 > 20ms chưa chắc i đã là gói tin đầu tiên của đoạn thoại. Trong trường hợp này, 2 gói tin nhận được cũng có hiệu 2 timestamp >

20ms. Vì thế, số tuần tự trong trường hợp này được sử dụng. Phía nhận có thể dùng số tuần tự để xác định trường hợp nào là gói tin đầu tiên, trường hợp nào là mất mát gói tin.

Một phần của tài liệu Kỹ thuật truyền thông đa phương tiện và ứng dụng trong giảng dạy trực tuyến (Trang 58)