Chương 1 - TỔNG QUAN NÉN THOẠI [4] Nén thoại hay mã thoại, là một quá trình phân tích và sau đó có thể tái tạo lại tín hiệu tiếng nói yêu cầu: sử dụng càng ít bít càng tốt mà không làm giảm chất lượng tiếng nói. Do sự bùng nổ của viễn thông, nên nén thoại ngày càng được nghiên cứu và ứng dụng rộng rãi. Kỹ thuật vi điện tử và các bộ xử lý khả trình giá rẻ cũng góp phần thúc đẩy và trợ giúp phát triển, chuyển giao công nghệ nhanh chóng từ nghiên cứu đến thực tiễn. Nén thoại được thực hiện bằng nhiều bước và được đặc tả bằng một thuật toán.Thuật toán là một tập các lệnh, cung cấp các bước tính toán cần thiết để thực hiện công việc cụ thể.
Máy tính hoặc bộ vi xử lý có thể thực hiện các lệnh này để hoàn thành nhiệm vụ mã hóa, giải mã. Các lệnh cũng có thể chuyển đổi sang cấu trúc mạch số, thực hiện các tính toán trực tiếp trên phần cứng: FPGA, CPLD… 1.1 Cấu trúc của hệ thống nén thoại Hình 1-1: Mô hình hệ thống nén thoại [4] Hình 1-1 thể hiện mô hình của một hệ thống nén thoại. Tín hiệu thoại tương tự liên tục theo thời gian từ nguồn phát sẽ được đi qua một bộ lọc tiêu chuẩn (khử nhiễu), lấy mẫu (biến đổi thời gian rời rạc), và chuyển đổi tương tự- số (lượng tử hóa chuẩn). Đầu ra sẽ là tín hiệu thoại thời gian rời rạc với các giá trị mẫu cũng được rời rạc hóa, tín hiệu này được gọi là thoại số.
Hầu hết các hệ thống nén thoại đều được thiết kế để hỗ trợ các ứng dụng viễn thông, với tần số giới hạn từ 300 đến 3400 Hz. Theo định lý Nyquist, tần số lấy mẫu phải gấp ít nhất là 2 lần băng thông của tín hiệu. Giá trị tần số khoảng 8kHz thường được chọn làm tần số lấy mẫu chuẩn cho tín hiệu thoại. Để chuyển TIEU LUAN MOI download : skknchat@gmail.com 5 đổi mẫu tương tự sang tín hiệu số, ta sử dụng lượng tử hóa chuẩn và duy trì chất lượng thoại nhiều hơn 8 bits/mẫu.
Việc sử dụng 16 bits/mẫu sẽ cung cấp chất lượng thoại cao hơn. Thông thường, chúng ta sẽ sử dụng các tham số cho tín hiệu thoại số như sau: Tần số lấy mẫu: 8 kHz Số lượng bit trên mẫu: 16 Khi đó, bit-rate = 8 * 16 = 128 kbps. Giá trị bit-rate này được gọi là bit-rate đầu vào, chính là giá trị mà bộ mã hóa nguồn cố gắng giảm xuống. Đầu ra của mã hóa nguồn sẽ biểu diễn tín hiệu thoại số đã mã hóa có bit-rate thấp hơn đầu vào càng nhiều càng tốt.
Dữ liệu thoại số mã hóa sẽ được xử lý tiếp qua mã hóa kênh, cung cấp khả năng chống sai cho dòng bit trước khi truyền lên kênh truyền tải (bị ảnh hưởng từ rất nhiều nguồn nhiễu). Trong hình 1-1, bộ mã hóa nguồn và mã hóa kênh được tách biệt với nhau nhưng ta cũng có thể phối hợp 2 quá trình này trong một bước. Quá trình giải mã kênh sẽ xử lý dữ liệu đã được chống sai số để lấy lại dữ liệu đã mã hóa, và truyền sang bộ giải mã nguồn để tạo ra tín hiệu thoại số đầu ra với bit-rate ban đầu. Tín hiệu thoại số đầu ra được chuyển đổi sang dạng tín hiệu tương tự thông qua bộ chuyển đổi số-tương tự.
Tín hiệu vào Tín hiệu ra (128kbps) Mã hóa Giải mã (128kbps) Dòng bit đã mã hóa (<128kbps) Hình 1-2: Mô hình nén thoại Có thể rút gọn quá trình mã hóa nguồn và giải mã nguồn như hình 1-2. Tín hiệu đầu vào (thời gian rời rạc, bit-rate 128 kbps) được đưa vào bộ mã hóa để tạo ra dòng bit đã mã hóa, hay dữ liệu thoại nén. Bit-rate của dòng bit này thường thấp hơn tín hiệu đầu vào. Bộ giải mã sẽ nhận dòng bit đã mã hóa làm đầu vào và khôi phục thành tín hiệu đầu ra, là tín hiệu thời gian rời rạc có cùng bit-rate của tín hiệu thoại đầu vào ban đầu.
Mô hình mã hóa/giải mã trên hình 1-2 được gọi là mô hình nén thoại, với tín hiệu thoại đầu vào được mã hóa tạo ra dòng bit có bit-rate thấp. Dòng bit này lại được truyền đi và làm đầu vào cho bộ giải mã, tạo thành xấp xỉ tín hiệu gốc ban đầu. TIEU LUAN MOI download : skknchat@gmail.2 Các thuộc tính lý tưởng của nén thoại [4] Mục tiêu chủ yếu của nén thoại, hoặc là tối đa hóa chất lượng cảm nhận ở một bit-rate nhất đinh, hoặc là tối thiểu hóa bit-rate cho một chất lượng cảm nhận nhất định. Bit-rate phù hợp để tiếng nói có thể được truyền tải hoặc lưu trữ, sẽ phụ thuộc vào giá của việc truyền tải hoặc bộ nhớ, giá của việc mã hóa (nén) tín hiệu thoại số, và yêu cầu chất lượng thoại.
Trong hầu hết các mô hình nén thoại, tín hiệu được tái tạo sẽ sai khác so với tín hiệu ban đầu. Bit-rate được giảm bằng cách biểu diễn lại tín hiệu thoại với độ chính xác cũng bị giảm và bằng cách loại bỏ các dư thừa từ tín hiệu, kết quả tạo thành một mô hình nén lossy. Các tính chất lý tưởng của một mô hình nén thoại bao gồm: 1.1 Bit-rate thấp Bit-rate của dòng bit mã hóa càng thấp thì ta càng cần ít băng thông hơn cho việc truyền tải, hệ thống sẽ hiệu quả hơn. Yêu cầu này là xung đột với các tính chất tốt khác của hệ thống, như: chất lượng thoại.
Trong thực tiễn, ta phải trả giá để cân bằng các tính chất tùy theo yêu cầu của ứng dụng cụ thể.2 Chất lượng thoại cao Tiếng nói được giải mã cần phải có chất lượng chấp nhận được cho ứng dụng mục tiêu. Có rất nhiều khía cạnh trong sự cảm nhận chất lượng tiếng nói, bao gồm tính dễ hiểu, tính tự nhiên, tính dễ gần, và nhận dạng người nói.3 Thích ứng với ngôn ngữ Hệ thống nén thoại cần phải được thiết kế đủ bao quát được đối với người nói khác nhau (người lớn/trẻ em, nam/nữ) và các ngôn ngữ khác nhau. Đây không phải làm một nhiệm vụ đơn giản, bởi vì mỗi tín hiệu âm thanh đều có các đặc trưng riêng.4 Khả năng chịu đựng lỗi kênh Điều này rất quan trọng trong truyền thông tín hiệu số, khi mà lỗi kênh có ảnh hưởng không nhỏ đến chất lượng thoại.5 Hiệu suất cao đối với tín hiệu không tiếng (unvoiced) Trong hệ thống viễn thông thông thường, nhiều tín hiệu khác sẽ xuất hiện bên cạnh tiếng nói. Các tín hiệu âm như sóng âm đa tần (DTMF) trong tiếng quay số, tiếng nhạc.
thường xuyên xảy ra. Cho dù các hệ thống nén thoại bit- rate cao cũng không thể tái tạo lại mọi âm thanh một cách trung thực, ta không nên tạo ra các tín hiệu thay thế có thể gây khó chịu cho người nghe. TIEU LUAN MOI download : skknchat@gmail.6 Kích thước nhớ nhỏ và độ phức tạp tính toán thấp Để triển khai các hệ thống nén thoại vào thực tế, giá thành cài đặt phải thấp, bao gồm bộ nhớ cần thiết và độ phức tạp tính toán phải thấp.7 Trễ nén thấp Trong quá trình mã hóa và giải mã tiếng nói, sẽ xuất hiện các trễ, nó là thời gian trễ giữa tiếng nói đầu vào của mã hóa với tiếng nói đầu ra của giải mã. Mức trễ quá cao sẽ khó được chấp nhận trong hệ thống đàm thoại thời gian thực.3 Trễ nén Tiếng nói Tín Dòng bit tổng hợp Mã hóa Giải mã Đo hiệu thời Trễ vào gian Hình 1-3: Mô hình xác định trễ [4] Trễ có được theo mô hình xác định trên gọi là trễ nén, hoặc trễ nén một chiều, nó được tính bởi thời gian tiêu hao từ thời điểm khi một mẫu tiếng nói ở đầu vào mã hóa cho đến thời điểm mẫu đó xuất hiện ở đầu ra giải mã.
Cách xác định này không tính tới các yếu tố khác mà thuật toán nén thoại không kiểm soát được như khoảng cách truyền thông hoặc trang thiết bị… Dựa vào định nghĩa này, trễ nén sẽ có 4 thành phần chủ yếu sau: 1.1 Trễ bộ đệm mã hóa Nhiều bộ mã hóa tiếng nói cần phải thu thập một số lượng mẫu nhất định trước khi xử lý. Chẳng hạn, các mô hình nén dựa trên dự đoán tuyến tính LP đều cần 1 khung mẫu có phạm vi từ 160 đến 240 mẫu, hoặc 20 đến 30 ms, trước khi xử lý quá trình mã hóa thực sự.2 Trễ xử lý mã hóa Quá trình mã hóa tiêu tốn khá nhiều thời gian để xử lý dữ liệu trong bộ đệm và xây dựng dòng bit. Trễ này có thể được giảm bớt bằng cách tăng cường sức mạnh tính toán của phần cứng và sử dụng các thuật toán phần mềm hiệu quả. Trễ xử lý cần phải nhỏ hơn trễ bộ đệm, nếu không quá trình mã hóa sẽ không theo kịp với dữ liệu đưa vào ở khung kế tiếp.
TIEU LUAN MOI download : skknchat@gmail.com 8 Khung Truyền Khung đầu vào Mã hóa tải bit Giải mã đầu ra bộ đệm Trễ mã hóa Thời gian Trễ bộ đệm Trễ xử lý mã Trễ truyền tải / Trễ xử lý mã hóa hóa Trễ bộ đệm giải mã giải mã Hình 1-4: Mô tả các thành phần của trễ nén 1.3 Trễ truyền tải Khi bộ mã hóa hoàn thành công việc xử lý một khung dữ liệu đầu vào, dòng bít đã được nén sẽ được truyền tới bộ giải mã. Có rất nhiều chế độ truyền khác nhau và có thể được lựa chọn tùy theo yêu cầu của từng hệ thống. Ở đây, ta chỉ xem xét hai chế độ truyền: liên tục và theo gói. Trễ bộ đệm mã hóa Số lượng bit Thời gian Thời gian Hình 1-5: Đồ thị mẫu truyền bit ở hai chế độ liên tục (trên) và gói (dưới) Trong chế độ liên tục, dòng bit sẽ được truyền đồng bộ ở một tốc độ cố định, là số bit tương ứng trên một khung chia cho độ dài của khung.
Ở chế độ này, trễ đường truyền bằng với trễ bộ đệm mã hóa: các bit của khung sẽ được truyền đầy đủ và ngay khi các bit của khung tiếp theo dồn đến. Chế độ này chủ yếu được dùng cho các hệ thống giao tiếp số truyền thống, ví dụ như mạng điện thoại hữu tuyến. TIEU LUAN MOI download : skknchat@gmail.com 9 Trong chế độ theo gói, mọi bit liên quan đến một khung nào đó sẽ được truyền hoàn toàn trong một khoảng thời gian ngắn hơn trễ bộ đệm mã hóa. Trong trường hợp này, mọi bit sẽ được đưa đi ngay sau khi chúng sẵn sàng, dẫn đến một chút trễ truyền tải không đáng kể.
Chế độ này được sử dụng trong mạng internet, nơi mà dữ liệu được nhóm lại và truyền đi thành các gói.