2.2 Mã hoá dạng sóng
2.2.1.2 Ph − ơng pháp l − ợng tử hoá véc tơ
Một tập các giá trị biên độ rời rạc theo thời gian đ−ợc l−ợng tử hoá cùng nhau thành một véc tơ thì ta có l−ợng tử hoá véc tơ - VQ, hay còn gọi là l−ợng tử hoá
khối. Trên Hình 2.7 là sơ đồ khối của bộ l−ợng tử véc tơ đơn giản.
Hình 2.7 Bộ l−ợng tử véc tơ đơn giản
Giả sử rằng x = [x1, x2... xn ] là véc tơ có kích th−ớc N với các giá trị xk thực, liên tục
độ lớn ngẫu nhiên, 1 ≤ ≤ k N.
Hình 2.8 Không gian 2 chiều đ−ợc chia thành L vùng
Với l−ợng tử hoá véc tơ, x đ−ợc xem là t ơng đ− −ơng với véc tơ y có cùng kích th−ớc với các giá trị thành phần thực, rời rạc (véc tơ x đ−ợc l−ợng tử thành véc tơ y). Thông th−ờng, y đ−ợc chọn từ một tập hữu hạn các giá trị Y, Y = yi , 1 ≤ i ≤ L, với tập Y đ−ợc gọi là sách mã hay mẫu tham chiếu, L là kích th−ớc của sách mã và y
[ i i iN
i y y y
y = 1 , 2 ,..., ]
i là một véc tơ của sách mã. Kích th−ớc sách mã có thể coi t−ơng đ−ơng nh− số mức trong l−ợng tử vô h−ớng. Để thiết kế sách mã, không gian
N chiều đ−ợc chia thành L vùng (tế bào) Ci, 1 ≤ i ≤ L và véc tơ yi t−ơng ứng với vùng Ci. Bộ l−ợng tử sẽ gán véc tơ mã yi nếu giá trị xi nằm trong vùng Ci:
q(x) = yi nÕu x ∈Ci (2.26) Hình 2.8 là ví dụ về cách phân chia vùng không gian 2 chiều (N = 2) để l−ợng tử hoá
véc tơ. Mỗi vùng Ci có đ−ờng bao xung quanh và bất kỳ véc tơ x nào thuộc vùng
đều được lượng tử thành véc tơ yi (thường là điểm trung tâm của vùng). Nếu kích th−ớc véc tơ N =1, l−ợng tử hoá véc tơ suy biến thành l−ợng tử hoá vô h−ớng. L−ợng tử hoá vô hướng có đặc tính là các vùng có kích thước khác nhau nhưng chúng đều có chung hình dạng (không gian một chiều). Trong l−ợng tử hoá véc tơ, các vùng trong không gian 2 chiều có kích th−ớc khác nhau, chính điều này là −u điểm nổi trội của l−ợng tử hoá véc tơ so với l−ợng tử hoá vô h−ớng.
Sai số xuất hiện khi x lượng tử thành giá trị y, để đo lường đặc tính của sách mã, khái niệm độ méc toàn phần D đ−ợc định nghĩa nh− sau:
∑ [
=
= M
i
i x y M d
D
1
1 , ] (2.27)
Trong đó, di[x,y] là độ méo tính theo véc tơ thứ i của sách mã:
[ ] ∑ [
=
= N
k
mk ik
i d x y
y N x d
1
1 ,
, ] (2.28)
và M là số véc tơ trong cơ sở dữ liệu của sách mã, ym là biểu diễn l−ợng tử của xi để truyền dẫn, mỗi véc tơ yi đ−ợc mã hoá bởi từ mã với độ dài Bi bit, ta có tốc độ truyền
là: T = B.Fc (bit/s) (2.29)
víi: ∑
=
= M
i
Bi
B M
1
1 (bit/véctơ) (2.30)
B là độ dài trung bình của từ mã (thông thường B = Bi), Bi là số bit mã hơn véc tơ yi và Fc là số từ mã đ−ợc truyền mỗi giây. Nh vậy số bit trung bình biểu diễn mỗi − mẫu (kích th−ớc véc tơ) là: R = B / N (bit/mẫu) (2.31)
Khi thiết kế hệ thống nén dữ liệu luôn yêu cầu thiết kế bộ l−ợng tử mà độ méo giữa vectơ gốc và vectơ lượng tử là tối thiểu đối với tốc độ dữ liệu cho trước, vì
vậy cần xem xét, đánh giá độ méo thanh phần có ảnh hưởng tới độ méo tổng thể.
a. Đo lường độ méo:
Đo lường độ méo có liên quan tới tính chủ quan, với độ méo vài dB có thể chấp nhận đ−ợc với tai ng−ời này nh−ng lại không với ng−ời khác. Đây là một công cụ rất hữu ích khi thiết kế hệ thống mã hoá tiếng nói, quyết định tới phương hướng cải thiện đặc tính mã hoá.
* Sai số trung bình bình ph−ơng MSE:
∑Ν [
=
Ν −
=
− Ν −
=
1
1 2
) )(
1( ] , [
k k k
T x y
y x y x y
x
d ] (2.32)
* Sai số trung bình bình ph−ơng có trọng số:
Đối với phương pháp dùng MSE người ta giả thiết rằng độ méo được phân bố đều trên các véctơ x. Nói chung, độ méo có trọng số không đều thể hiện một số thành phần quan trọng hơn thành phần khác. Sai số trung bình bình ph−ơng có trọng số
đ−ợc cho bởi công thức sau:
[ ]x y x y x y W
du , =( − )( − )T (2.33)
trong đó W là ma trận trọng số dương.
* Đo l−ờng độ méo chấp nhận đ−ợc:
Với tốc độ bit cao, độ méo thấp, đo lường hai độ méo trên cho kết quả gần nhau, thể hiện đ−ợc sự đánh giá chủ quan về chất l−ợng tiếng nói. Tuy nhiên khi tốc độ dữ
liệu giảm, độ méo tăng lên, cách đo lường độ méo đơn giản có thể không liên quan
đến chất l−ợng khách quan của tiếng nói. Vì vậy, với ứng dụng chính của l−ợng tử véctơ VQ là đạt đ−ợc tốc độ dữ liệu thấp, rất cần thiết phải phát triển và dùng cách
đo lường độ méo có chú ý tới đặc tính nghe của người.
b. Thiết kế sách mã:
Khi thiết kế sách mã L mức, không gian N chiều đ ợc chia thành L vùng C− i, 1 ≤ i ≤ L, mỗi vùng tương ứng với 1 véc tơ yi. Để bộ lượng tử tối ưu, độ méo trong công thức (2.27) phải cực tiểu đối với tất cả L mức với hai điều kiện sau:
- Tìm vectơ biểu diễn phù hợp với vectơ vào theo tiêu chí độ méo tối thiểu:
q(x) = yi nếu d [x, yi] ≤ d [x, yj], j ≠ i và i ≤ J ≤L (2.34)
- Mỗi vec tơ yi trong sách mã đ−ợc tối −u để đạt tới độ méo trung bình tối thiểu trong vùng Ci: D E{ d x y x C} d x y p xdx
Ci
x i
i
i = [ ( , ) ∈ ] =∫∈ ( , ) ( ) (2.35) trong đó p(x) là hàm phân bố xác xuất của vectơ đầu vào đ−ợc l−ợng tử thành véc tơ
yi trong vùng Ci.
Một trong những phương pháp thông dụng nhất để thiết kế sách mã là thuật toán K-means (hay thuật toán Lloyd) với m là chỉ số lặp, Cim là vùng thứ i tại giá trị lặp m mà yim là tâm của vùng:
1. Khởi tạo: Thiết lập m =0, chọn véctơ sách mã ban đầu yi0 với 1 ≤ i ≤ L.
2. Phân loại: Phân chia các véctơ xn, 1 ≤ ≤n M vào các vùng Ci theo qui tắc:
x ∈ Cim nÕu d [x, yim] ≤ d [x, yjm], j i . ≠
3. Cập nhật sách mã: (m -> m + 1) Cập nhật các véc tơ của sách mã cho mỗi vùng bằng cách tính vectơ tâm của mỗivùng đó.
4. Kiểm tra kết thúc: Nếu có giảm độ méo toàn phần ở bước lặp m tương ứng thì dừng lại; nếu không sẽ chuyển tới b−ớc (2).
Tối −u toàn phần có thể đạt xấp xỉ bằng cách khởi tạo các véc tơ sách mã với các giá
trị khác nhau; lặp lại thuật toán trên với các tập giá trị khởi tạo khác nhau rồi chọn sách mã có kết quả độ méo toàn phần thấp nhất.
c. Các loại sách mã:
Lượng tử hoá vectơ so với lượng tử hoá vô hướng có nhiều đặc tính làm việc tốt ở những tốc độ dữ liệu rất thấp. Tuy nhiên, −u điểm này cần xem xét cùng với mức tính toán và chi phí lưu trữ. Để thoả hiệp giữa mức tính toán, lưu trữ và hoạt
động của bộ l−ợng tử, nhiều loại sách mã đã đ−ợc phát triển.
* Sách m∙ tìm kiếm tất cả:
Với kiểu sách mã này trong quá trình l−ợng tử hoá, mỗi vectơ đầu vào đều đ−ợc so sánh với các vectơ trong sách mã. Nếu mỗi vectơ trong sách mã đ−ợc biểu diễn bởi B = R.N bit thì số vectơ có thể là: L = 2B = 2RN (2.36) trong đó N là kích thước của vectơ sách mã.
Để chọn đ−ợc vectơ l−ợng tử, cần tính t−ơng quan giữa vectơ vào với tất cả
các vectơ trong sách mã, vì vậy độ phức tạp tính toán sẽ là:
Ccom = N.2RN (số phép tính cộng-nhân/đầu vào) (2.37) và yêu cầu bộ nhớ cho sách mã là: M = N.L = N.2B = N.2RN (địa chỉ) (2.38) Như vậy, độ phức tạp tính toán và lưu trữ của sách mã tìm kiếm tất cả tăng theo hàm mũ đối với số bit của vectơ mã.
* Sách m∙ tìm kiếm nhị phân:
Tìm kiếm nhị phân là cách chia không gian để tìm kiếm với độ méo tối thiểu, mã độ phức tạp tỷ lệ với log2 L= B=RN. Trong sách mã tìm kiếm nhị phân, không gian N chiều đầu tiên đ−ợc chia thành 2 vùng (dùng thuật toán K-means với 2 vectơ khởi tạo), rồi mỗi vùng lại đ−ợc chia thành 2 vùng mã, cho đến khi ta có L vùng. Mỗi vectơ đầu vào x đ ợc l− −ợng tử, cây tìm kiếm theo sách mã sẽ đảm bảo độ méo trên nút là tối thiểu.
Giả sử cần N phép nhân - cộng cho mỗi lần tính độ méo, độ phức tạp tính toán sẽ là:
NB L
N
Cconp =2 log2 = 2 (2.39)
Còn độ phức tạp lưu trữ lại cần gấp đôi như trong công thức sau:
∑=
=
−
= B
i
N i
L N M
1
2 )
1 (
2 (2.40)
Nh− vậy, cần thoả hiệp giữa hai thái cực là mức tính toán thấp và nhiều bộ nhớ (tìm kiếm nhị phân) với mức tính toán cao và ít bộ nhớ (tìm kiếm tất cả).
* Sách m∙ kết hợp:
Lượng tử hoá vectơ kết hợp nhằm giảm mức lưu trữ và phức tạp tính toán, làm hài hoà −u điểm của hai sách mã tìm kiếm nói trên.
Bộ l−ợng tử và giải mã l−ợng tử kiểu này đ−ợc cho trên Hình 2.9. Véctơ vào x đầu tiên đ−ợc l−ợng tử dùng B1 bit và bộ l−ợng tử L1 mức, sau đó tín hiệu sai số đ−ợc
đ−a vào bộ l−ợng tử thứ hai, dùng B2 bit và L2 mức; tổng của hai vectơ này xác định giá trị x.
Độ phức tạp tính toán và lưu trữ cho một bộ lượng tử k giai đoạn được cho như sau:
) ...
( 1 2 k
conp N L L L
C = + + + (2.41)
) ...
(L1 L2 Lk N
M= + + + (2.42)
với: Li =2Bi, 1≤i≤k và ∑
=
= k
i
Bi
B
1
Hình 2.9 Bộ l−ợng tử véc tơ kết hợp
Nh− vậy, số vec tơ tìm kiếm trong sách mã này là ít hơn so với tr−ờng hợp tìm kiếm
tất cả: k B, với k > 1 (2.43)
n
Bn 2
2
1
∑ <
= ∑
=
= k
n
Bn
B
1
và độ phức tạp lưu trữ cũng nhỏ hơn so với tìm kiếm nhị phân:
víi k > 1 (2.44)
⎥⎦
⎢ ⎤
⎣
< ⎡
⎥⎦
⎢ ⎤
⎣
⎡∑ ∑
=
=
B
i k i
n
B N
N n
1 1
2 2
* Sách mã phân chia:
Với các kiểu sách mã trên, vectơ đầu vào kích th−ớc N đ−ợc tìm kiếm trực tiếp với vectơ phù hợp trong sách mã kích thước N. Trong sơ đồ lượng tử hoá vectơ phân chia, kích thước N của vectơ vào đ ợc phân thành P phần (P>1). Với mỗi phần đó ư tương ứng một sách mã được dùng và được lượng tử hoá độc lập với nhau dùng Bp
bit. Độ phức tạp tính toán và lưu trữ được cho như sau:
) ...
( 1 2 k
conp L L L
P
C = N + + + (2.45)
) ...
(L1 L2 Lp P
M= N + + + (2.46)
trong đó: Lp = 2Bp, p = 1, 2, ..., P.
Ưu điểm của l−ợng tử hoá phân chia là sự linh hoạt trong việc lựa chọn kích th−ớc của các phần đ−ợc phân chia và phân bố số bit phù hợp cho mỗi phần tuỳ theo mức
độ quan trọng của các vectơ thành phần trong các phần đó.
* Sách m∙ thích nghi:
Những sách mã nói trên là không đổi theo thời gian, mà với tín hiệu vào biến thiên liên tục, một cách để cải thiện đặc tính làm việc của bộ l−ợng tử là áp dụng sách mã
thích nghi (thuận hoặc ng−ợc). Với bộ l−ợng tử véctơ thích nghi thuận, sách mã
đ−ợc cập nhật t−ơng ứng theo đầu vào tr−ớc khi véctơ này đ−ợc l−ợng tử và cần truyền thêm thông tin để phía thu có thể khôi phục đúng tín hiệu ban đầu. Với bộ l−ợng tử thích nghi ng−ợc, sách mã đ−ợc cập nhật bởi những vectơ vừa đ−ợc l−ợng tử và ở phía thu có thể khôi phục lại tín hiệu mà không cần tìm thêm thông tin nào khác. Hình 2.10 là sơ đồ l−ợng tử véctơ gồm hai giai đoạn dùng sách mã thích nghi.
Hình 2.10 Bộ l−ợng tử véc tơ thích nghi kết hợp
Trong đó, giai đoạn đầu của bộ l−ợng tử dùng sách mã thích nghi, còn giai đoạn sau dùng sách mã cố định.
*Sách m∙ ngẫu nhiên:
Giảm độ phức tạp là điều quan trọng trong quá trình l−ợng tử hoá véctơ, bên cạnh đó chi phí thời gian để huấn luyện bộ l−ợng tử là lớn và đôi khi không thể thực hiện
được. Một phương pháp đơn giản để thiết kế sách mã với mức tính toán thấp là chọn véctơ sách mã là ngẫu nhiên từ một tập dữ liệu cho tr−ớc. Sách mã ngẫu nhiên rất có ý nghĩa trong tr ờng hợp độ dài sách mã tăng và kích th− −ớc véctơ lớn hơn. Khi đó,
hoạt động của sách mã ngẫu nhiên gần với sách mã tối ưu, có hai trường hợp sách mã ngẫu nhiên là vị trí véctơ ngẫu nhiên và giá trị vectơ ngẫu nhiên.