THỰC HIỆN BỘ NÉN THOẠI THỜI GIAN THỰC THEO CHUẨN ITU G.729a TRÊN CHIP DSP DẤU PHẨY TĨNH TI C55X
10:12 - 24/03/2020
Phương pháp mã hóa tiếng nói G.729 được phát triển dựa trên mô hình CELP (code-excited linear prediction – mã dự báo tuyến tính kích thích theo mã) trong đó phương pháp phân tích dựa trên tổng hợp (synthesis-by-analysis) được sử dụng.
NGHIÊN CỨU THIẾT KẾ BỘ CHUYỂN ĐỔI CÁP ĐỒNG TRỤC - ỐNG DẪN SÓNG ỨNG DỤNG TRONG CÁC HỆ THỐNG THÔNG TIN SIÊU CAO TẦN
Phương pháp mã hóa tiếng nói G.729 được phát triển dựa trên mô hình CELP (code-excited linear prediction – mã dự báo tuyến tính kích thích theo mã) trong đó phương pháp phân tích dựa trên tổng hợp (synthesis-by-analysis) được sử dụng. Trong bài báo này sẽ đề cập đến quá trình thực thi hệ thống nén/giải nén thoại tốc độ 8000 bits trên giây song công thời gian thực theo tiêu chuẩn ITU G.729a trên chíp xử lý tín hiệu số DSP TMS320C55x của Texas Intrument. Các kết quả hoạt động của hệ thống được đánh giá kỹ lưỡng trên các bo mạch phát triển cũng như trên thực tế các thiết bị, đáp ứng được yêu cầu khắt khe của tiêu chuẩn, đảm bảo chất lượng tốt và hoàn toàn có thể được triển khai ứng dụng rộng rãi.
ITU G.729 [1] là giải thuật mã hóa nén tiếng nói theo các khung (frame) 10 ms, nó được mô tả với tên gọi “Coding of speech at 8 kbit/s using code-excited linear prediction speech coding (CS-ACELP) - Mã hóa dự báo tuyến tính kích thích theo mã hình học đại số - cấu trúc phức hợp”. Với đặc điểm tiết kiệm băng thông truyền dẫn, trễ nhỏ, cũng như cho chất lượng thoại rất cao, với điểm MOS (Mean Opinion Score – một phương pháp đánh giá chất lượng thoại bằng cách nghe trực tiếp rồi cho điểm và lấy trung bình) lên tới 3.8, 3.9 (trong khi G.711 PCM 64 kbps luật A, luật μ cho điểm MOS 4.1) [9], G.729 được sử dụng rộng rãi và hiệu quả trong ứng dụng thoại IP (VoIP – voice over IP). G.729 bản tiêu chuẩn cho tốc độ số liệu đầu ra 8 kbps (G.729), tuy nhiên với các phiên bản mở rộng có thể cho tốc độ số liệu xuống tới 6,4 kbps hoặc lên cao hơn tới 11,8 kbps [1, 2]. Hiện tại có khá nhiều mở rộng của ITU G.729 với các tính năng mở rộng khác nhau [2], tuy nhiên trong bài báo này chỉ phiên bản G.729a [6] được đề cập. G.729a là phiên bản sửa đổi của G.729 chuẩn, hoàn toàn tương thích với G.729 phiên bản tiêu chuẩn với độ phức tạp tính toán được giảm đáng kể; tuy nhiên khi đó chất lượng của G.729a cũng giảm xuống nhưng rất nhỏ (MOS = 3.7).
Phương pháp mã hóa tiếng nói G.729 được phát triển dựa trên mô hình CELP (code-excited linear prediction – mã dự báo tuyến tính kích thích theo mã) [5] trong đó phương pháp phân tích dựa trên tổng hợp (synthesis-by-analysis) được sử dụng. Bộ mã hóa G.729 được thiết kế để hoạt động với tín hiệu thoại đầu vào được lấy mẫu với tần số 8000 Hz [1]. Tín hiệu thoại đầu vào và đầu ra là PCM tuyến tính 16 bits. Bộ mã hóa hoạt động với các frame có độ dài 10 ms, cùng với 5 ms look-ahead (15 ms dùng cho LPC analysis), nên tổng cộng trễ thuật toán là 15 ms. Nguyên lý mã hóa được trình bày như Hình 1 [1]. Cụ thể, sau khi xử lý các mẫu 16 bits đầu vào với bộ lọc thông cao 140 Hz, phân tích dự báo tuyến tính LPC (linear prediction coding) bậc 10 được thực hiện. Các tham số LPC được lượng tử hóa trên miền LSF (Line spectrum Frequency or Line spectrum Pair) với 18 bits. Mỗi frame đầu vào (10 ms) được chia thành 2 frame con (sub-frame), mỗi sub-frame 5 ms. Việc sử dụng các sub-frame với độ dài ngắn hơn cho phép ước lượng và tính toán các tham số pitch (tần số cơ bản) cùng các hệ số gain một cách hiệu quả hơn cũng như giảm độ phức tạp tìm kiếm trong các codebook như đã được chứng minh trong các tài liệu về CELP.
Hình 1. Sơ đồ chức năng của bộ mã hóa G.729.
Các hệ số LPC (cả lượng tử hóa và không lượng tử hóa) được sử dụng cho sub-frame thứ hai, trong khi đó với sub-frame thứ nhất các tham số LPC được nội suy từ các sub-frame xung quanh. Với mỗi sub-frame, kích thích (excitation) được mô tả thông qua một adaptive code vector (pitch + gain) và một fixed code vector – kích thích theo mã hình học đại số - cấu trúc phức hợp (conjugate structure algebraic coded excitation). Các adaptive code vector hình thành adaptive codebook và được mã hóa với 8 bits cho sub-frame thứ nhất và 5 bits mã vi sai với sub-frame thứ hai. Các fixed code vector hình thành fixed codebook và được mã hóa hình học đại số (algebraic) 17 bits. Các hệ số gain của adaptive và fixed codebook được lượng tử hóa vector với 7 bits sử dụng codebook với cấu trúc phức hợp (conjugate-structure codebook). Việc phân bổ bit cho mỗi frame 10 ms được trình bày như Bảng 1.
Hoạt động của bộ giải mã được trình bày như Hình 2 [1]. Các công việc bao gồm giải mã các tham số nhận được (các tham số LPC, adaptive code vector, fixed code vector và gains), thực hiện tổng hợp để tái tạo tiếng nói ban đầu được mã hóa, cuối cùng chất lượng tiếng nói tổng hợp được nâng cao với quá trình hậu xử lý (post-processing) với một bộ lọc adaptive postfilter và một bộ lọc thông cao cố định (fixed highpass).
Bảng 1. Cấu trúc khung 80 bit của khung G.729 tương ứng với 10 ms thoại.
Hình 2. Sơ đồ chức năng của bộ giải mã G.729.
Trong số các nền tảng phần cứng được khảo sát dùng cho việc thực thi bộ nén thoại G.729a, dòng TI DSP 5000 là một lựa chọn thích hợp. TMS320C5000 TM DSP là dòng chip DSP dấu phẩy tĩnh 16 bit, công suất tiêu thụ thấp với xung nhịp CPU clock làm việc có thể lên tới 200 MHz. Dòng DSP này cũng có rất nhiều ngoại vi hữu dụng và một lượng khá lớn on-chip RAM thích hợp cho việc phát triển và giảm giá thành hệ thống. Với những lý do này các chip C5000 là một sự lựa chọn lý tưởng cho rất nhiều ứng dụng công suất thấp giá thành hợp lý như xử lý audio, voice cho các thiết bị di động, hay các ứng dụng về y tế [7]. Cũng đáng lưu ý là Texas Instrument cung cấp không chỉ các chip DSP mà còn rất nhiều tài nguyên phần cứng cũng như phần mềm hỗ trợ giúp cho việc xây dựng phát triển ứng dụng trở nên nhanh chóng và hiệu quả. Một số tài nguyên đó có thể kể tên như các bo mạch DSK (DSP Starter Kit) và EVM (Evaluation Module) phục vụ cho việc thử nghiệm ngay không cần đợi cho đến khi có phần cứng được thiết kế, hệ thống các thư viện xử lý DSP (DSPLIB), hay thư viện hỗ trợ lập trình cho chip - Chip Support Library (CSL) và rất nhiều báo cáo ứng dụng (application reports) hữu ích cho người phát triển tham khảo [7].
Trong họ C5000, C5509 (tên đầy đủ TMS320VC5509A) và C5510 (TMS320VC5510A) thuộc các sản phẩm mới và năng lực xử lý cao và được sử dụng rộng rãi nhất. Với kiến trúc DSP hiệu quả tập trung vào việc xử lý song song và giảm công suất tiêu thụ, các thuật toán với độ phức tạp rất cao (như thực hiện các bộ nén/giải nén thoại) có thể đươc thực hiện chính xác và theo yêu cầu thời gian xử lý ngặt nghèo (thời gian thực). Một số điểm nổi bật về kiến trúc có thể kể tên như: hệ thống bus trong đa dạng bao gồm một bus chương trình (program bus), ba bus đọc dữ liệu (read data bus), hai bus ghi dữ liệu write data bus), và các bus phụ trợ dành riêng cho ngoại vị và DMA - cấu trúc này cho phép thực hiện ba thao tác đọc và hai thao tác ghi dữ liệu trong duy nhất một chu kỳ clock làm việc; hai bộ nhân tích lũy MAC (multiply-accumulate) – thực hiện cá phép nhân 17-bit x 17-bit trong một chu kỳ; một bộ xử lý số học/logic (ALU) 40 bits cộng một bộ ALU 16-bit bổ xung; kiến trúc pipeline hiệu quả (full protected with predictive branching capability). Cả C5509 và C5510 đều có nhiều ngoại vị hữu ích như: Timer (2), McBSP (3), DMA(6), Programmable Phase-Locked Loop Clock Generator, nhưng trong khi C5509 có thêm USB 1.1, I2C thì C5510 có nhiều bộ nhớ on-chip hơn [7].
Với các phân tích như trình bày ở trên, chíp C5509 và C5510 đã được lựa chọn để thực hiện bộ nén thoại G.729. Hệ thống phần cứng hoàn chỉnh được sử dụng là C5509 and C5510 DSP Starter Kit (DSK) được cung cấp bởi một đối tác của TI là Spectrum Digital (http://www.spectrumdigital.com). Những DSK này có C5509 và C5510 là bộ xử lý trung tâm với nhiều ngoại vi khác được thêm vào như codec (TLV320AIC23B) với 4 giắc 3,5 mm audio (microphone, line-in, speaker, line-out), dips, switches, leds, và một lượng lớn SDRAM. Môi trường phần mềm được dùng để phát triển là Code Composer Studio (CCS) version 3.3 cung cấp bởi TI. CCS 3.3 bao gồm các bộ biên dịch (compilers) cho các dòng TI DSP được hỗ trợ, môi trường soạn thảo và dịch dự án, gỡ rối, mô phỏng, profile hoạt động của chương trình (profiler), hệ điều hành thời gian thực (DSP/BIOS) và rất nhiều tính năng khác.
Hệ thống phát triển và thử nghiệm được tiến hành như Hình 3 và Hình 4.
Hình 3. Hệ thống sử dụng để phát triển vocoder G.729a.
Hình 4. Mô hình thử nghiệm online thời gian thực
Hệ thống đã được đánh giá, kiểm tra chất lượng chặt chẽ với các thử nghiệm trên DSK Board trong phòng thí nghiệm và thử nghiệm thực tế khi được tích hợp vào sản phẩm ứng dụng. Trong các thử nghiệm trên DSK Board trong phòng thí nghiệm, bộ tiêu chuẩn thử nghiệm (test vector) yêu cầu bởi tiêu chuẩn ITU G.729, nghe thực tế và đánh giá bởi các công cụ tự động như là theo tiêu chuẩn ITU P.862 Perceptual Evaluation of Speech Quality (PESQ) [8] với rất nhiều mẫu thoại tiếng Việt, tiếng Anh khác nhau. Kết quả đối với việc thử nghiệm trong phòng thí nghiệm là rất khả quan, hệ thống đã đáp ứng được các yêu cầu đặt ra của tiêu chuẩn ITU G.729a [1], cũng như đạt điểm PESQ ngang bằng với các gói phần mềm thương mại hoặc các phần mềm cho mục đích giáo dục liên quan đến mã thoại G.729a. Kết quả từ phía người nghe trực tiếp cũng rất tích cực. Sau khi được đánh giá tốt trên thí nghiệm, hệ thống đã được triển khai tích hợp vào thiết bị ATA Router (Bộ chuyển đổi thoại tương tự telephone sang thoại VoIP có tích hợp tính năng router và tổng đài nội bộ) và đã được đi triển khai thử nghiệm. Thực tế sử dụng chứng minh sản phẩm ATA Router nói chung và hệ thống nén/giải nén thoại G.729a nói riêng cho chất lượng tốt, đảm bảo cho thông tin liên lạc.
Hình 5. Bảng mạch và thiết bị ATA Router.
Trong thời gian tới để có thể được triển khai ứng dụng rộng rãi cần tiếp tục nghiên cứu và thực thi các phiên bản khác của G.729, cần kiểm tra chất lượng hệ thống ở các điều kiện làm việc khác nhau với lưu ý đến đặc điểm ngôn ngữ tiếng Việt và đặc điểm đường truyền thoại VoIP qua mạng VSAT và mạng truyền số liệu (TSL). Ngoài ra cần phải tiếp tục nghiên cứu tối ưu hệ thống để đạt hiệu quả sử dụng tài nguyên tiết kiệm nhất, tiến tới thực hiện nhiều bộ nén/giải nén thoại G.729 trên cùng một chip DSP, đồng thời nghiên cứu đưa ứng dụng KHKT&CN vào thực tiễn./.
Tài liệu tham khảo
[1] - ITU-T (January 2007). G.729: Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP).
[2] - G.729 Vocoder on Wikipedia, tham khảo ngày 16/02/2013. http://en.wikipedia. org/wiki/G.729.
[3] - R. Salami, C. Laflamme, J. Adoul, A. Kataoka, S. Hayashi, T. Moriya, C. Lamblin, D. Massaloux, S. Proust, P. Kroon, and Y. Shoham, “Design and description of CS-ACELP: a toll quality 8 kb/s speech coder,” IEEE Transactions on Speech and Audio Processing, vol. 6, no. 2, pp. 116–130, 1998.
[4] - M. E. Perkins, K. Evans, D. Pascal, and L. A. Thorpe, “Characterizing the subjective performance of the ITU-T 8 kb/s speech coding algorithm-ITU-T G. 729,” Communications Magazine, IEEE, vol. 35, no. 9, pp. 74–81, 1997.
[5] - M. Schroeder and B. S. Atal, “Code-excited linear prediction (CELP): High-quality speech at very low bit rates,” in Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP’85., 1985, vol. 10, pp. 937–940.
[6] - R. Salami, C. Laflamme, B. Bessette, and J. Adoul, “ITU-T G.729 Annex A: reduced complexity 8 kb/s CS-ACELP codec for digital simultaneous voice and data,” IEEE Communications Magazine, vol. 35, no. 9, pp. 56–63, 1997.
[7] - TI official websites on C5000, TMS320VC5510a, TMS320VC5509a, and CCS 3.3.
[8] - ITU P.862, “Perceptual evaluation of speech quality (PESQ), an objective method for end-to-end speech quality assessment of narrowband telephone networks and speech codecs,” ITU Recommendation P.862, 2000.
[9] - Mean opinion score, tham khảo ngày 16/05/2013.
[10] - http://en.wikipedia.org/wiki/Mean_opinion_score.
TS. Nguyễn Liêm Hiếu
VIỆN IMC
Tòa nhà IMC Tower, Số 176 Trường Chinh, Phường Khương
Thượng, Quận Đống Đa, Thành phố Hà Nội, Việt Nam
Tel/Fax : (+84) 24 3566 6232 / 24 3566 6234
Email: contact@imc.org.vn Website: http://imc.org.vn