III.2 CÁC PHƯƠNG PHÁP NÉN TIẾNG NĨ

Một phần của tài liệu Đồ án xây dựng thử nghiệm một hệ thống cho phép trao đổi thông tin bằng tiếng nói thoại, tương tác điểm – điểm trên mạng LAN (Trang 31 - 37)

III.2.1 GIỚI THIỆU CHUNG

Y tưởng nén tiếng nĩi là để giảm kích thước nhằm giúp ít tốn băng thơng truyền qua mạng. Dịng dữ liệu tiếng nĩi được giải nén ở tốc độ lấy mẫu mặc định ( 8bits/mẫu, 8 khz, kênh mono) sẽ yêu cầu đường truyền cĩ tốc độ 8000 mẫu/giây * 8 bits/ mẫu = 64 Kbits/giây để truyền dữ liệu qua mạng. Do đĩ, tùy theo tốc độ đường truyền thực tế trên mỗi mạng mà chọn giải pháp nén hay khơng nén dữ liệu trước khi truyền dữ liệu âm thanh qua mạng, cũng như chọn tỉ lệ nén là bao nhiêu cho phù hợp (chọn giải thuật nén). Vì nếu dữ liệu được nén thì phải giải nén khi được truyền đến máy nhận, do đĩ cũng tốn thời gian để nén và giải nén dữ liệu, điều này dẫn đến ảnh hưởng thời gian thực của hệ thống.

Đối với các mạng cục bộ, thường cĩ tốc độ truyền của mạng cao nên cĩ thể khơng cần phải nén tiếng nĩi trước khi truyền.

Ngược lại, đối với mạng Internet, hệ thống được kết nối với Internet thơng qua các modem chuẩn cĩ tốc độ thấp 14,4 Kbits/s hoặc 28,8Kbits/s thì nhất thiết phải nén tiếng nĩi trước khi truyền và giải nén trước khi phát. Hai phương pháp nén âm thanh thường được dùng nhất để giảm băng thơng là GSM và ADPCM.[2]

III.2.2 CÁC PHƯƠNG PHÁP NÉN CỤ THỂ

III.2.2.1 Phương pháp nén tiếng nĩi theo chuẩn GSM

Phát triển tại Đại học Kỹ thuật Berlin vào năm 1992, GSM là một trong những phương pháp nén âm thanh phức tạp nhất đang được sử dụng, cho tỉ lệ nén 1:10. Giải thuật GSM dựa trên giao thức truyền thơng Mobile Phone, hiện tại là giao thức phổ biến nhất tại Châu Âu đối với điện thoại di động.

Đầu vào của GSM bao gồm các frames 160 tín hiệu, những tín hiệu PCM tuyến tính 13 bits lấy mẫu ở 8 Khz. GSM cĩ sẵn trong thư viện C cĩ thể được dùng để tạo ra một đối tượng gsm giữ trạng thái cần thiết hoặc để mã hĩa những mẫu PCM tuyến tính thành các frames GSM, hoặc giải mã các frames GSM thành các frames PCM tuyến tính. Bộ mã hĩa nén 160 frames PCM 16 bits thành các frames GSM 260 bits. Tương ứng một giây tiếng nĩi thành 1625 bytes. Bởi vì mẫu 260 bits khơng chẵn để gắn vào các bytes 8 bits, nên bộ mã hĩa sẽ mã hĩa frame 160 bytes thành frame GSM 264 bits. Một buffer GSM nén 1 Mb cĩ thể lưu tiếng nĩi gần 10 phút.[2]

Một dịng dữ liệu tiếng nĩi giải nén 16 bits/mẫu ở 8Khz yêu cầu băng thơng tốc độ 128 Kbits/s, trong khi đĩ băng thơng để truyền qua mạng nếu dùng giải thuật nén GSM , tiếng nĩi 16 bits/mẫu chỉ cần:

( 264 bits * 8.000 mẫu/giây)/160 mẫu = 13,2 Kbits/giây Cho tỉ lệ nén 128/13,2 = 9,7 tương đương 10 :1.

III.2.2.2 Phương pháp nén ADPCM Nguyên tắc :

Là một phương pháp cĩ thể được dùng để nén các khối dữ liệu tiếng nĩi trước khi chúng được truyền đến các máy nhận và giải nén chúng để phát lại sau khi được nhận từ đường truyền.

Hình sau là một giản đồ khối đơn giản của bộ mã hĩa và giải mã ADPCM :

Hình III.3 Sơ đồ khối bộ mã hố và giải mã ADPCM

Bộ mã hĩa ADPCM giả sử rằng những mẫu âm thanh kế cận nhau sẽ giống nhau, vì thế thay vì biểu diễn mỗi mẫu độc lập như PCM. ADPCM tính tốn sự chênh lệch giữa các mẫu âm thanh và giá trị tiên đốn của nĩ và tạo ra những giá trị vi phân PCM. Cĩ nhiều giải thuật ADPCM khác nhau được đề nghị. Trong phạm vi luận văn này em tìm hiểu và ứng dụng giải thuật đưa ra bởi IMA (Interactive Multimedia Association) .

Giải thuật IMA ADPCM nén những mẫu PCM tuyến tính thành các mức lượng hĩa 4 bits, trong đĩ mỗi mẫu DPCM được biểu diễn bằng các giá trị âm

thanh 16 bits, do đĩ giải thuật này cung cấp một tỉ lệ nén là 4:1. Ví dụ tiếng nĩi 16 bits/mẫu, 8 Khz, kênh mono yêu cầu tốc độ truyền dữ liệu là 128 Kbits/s , khi nén với giải thuật IMA_ADPCM chỉ cần tốc độ truyền dữ liệu 32 Kbits/s là đủ.

Quá trình thực hiện của giải thuật IMA_ADPCM là đọc từ những bộ đệm cĩ giá trị kiểu nguyên và nén chúng thành một mẫu âm thanh 16 bits được biểu diễn bằng các mức lượng hĩa 4 bit. Bởi vì khơng cĩ giới hạn trong kích thước buffers tiếng nĩi nên những mã ADPCM được kết hợp một cách dễ dàng với các phần cịn lại của chương trình để nén tiếng nĩi khi thu và giải nén trở lại khi phát.

Giải thuật nén IMA ADPCM :

Theo sơ đồ mã hĩa trên chúng ta thấy giải thuật IMA ADPCM tính tốn sự chênh lệch giữa mẫu âm thanh hiện tại X[n] và mẫu đã tiên đốn trước Xp[n- 1] và sử dụng sự chênh lệch đĩ để tính tốn mức lượng hĩa D[n] cho mỗi mẫu. Giá trị Xp[n-1] chỉ là giá trị trễ thời gian của giá trị X[n]. Hình sau chỉ ra sơ đồ

khối của quá trình lượng hĩa dùng giải thuật IMA. Mỗi mức đầu ra của bộ lượng hĩa được biểu diễn bằng bốn bits. Bit thứ tư là bit dấu của mức độ lượng hĩa.[2]

Hình III.4 Sơ đồ giải thuật mã hố nén IMA ADPCM

Từ sơ đồ giải thuật ta thấy rằng bit thứ ba được cài đặt lên 1 nếu độ chênh lệch giữa X[n] và Xp[n-1] là lớn hơn hay bằng step_size. Sau đĩ step_size được chia 2 và so sánh trở lại với độ chênh lệch (độ chênh lệch sẽ được tính lại Mẫu = mẫu-kích thước mẫu tại bước giải thuật nếu bit thứ ba được cài lên1). Bit thứ hai cũng được cài lên 1 khi độ chênh lệch mới ≥ kích thước mẫu tại bước giải thuật/2. Bộ mã hĩa một lần nữa laị chia kích thước mẫu tại bước giải thuật cho 2 và so sánh với độ chênh lệch mới và thiết lập giá trị cho bit một tương tự như các bước trước.

CHƯƠNG IV

Một phần của tài liệu Đồ án xây dựng thử nghiệm một hệ thống cho phép trao đổi thông tin bằng tiếng nói thoại, tương tác điểm – điểm trên mạng LAN (Trang 31 - 37)