YOMEDIA
ADSENSE
Mã hóa lai nguồn-kênh với băng thông mở rộng
47
lượt xem 1
download
lượt xem 1
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bài viết trình bày việc tiếp cận bài toán truyền thông tin từ nguồn rời rạc, qua các loại kênh truyền nhiễu. Cụ thể, bài báo đề xuất mô hình truyền thông tin dành cho dữ liệu tiếng nói với mã hóa PCM. Chúng tôi giới thiệu hai mô hình cho phần mã hóa tương tự: mã hóa tuyến tính và mã hóa phi tuyến.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Mã hóa lai nguồn-kênh với băng thông mở rộng
Kỹ thuật điều khiển & Điện tử<br />
<br />
MÃ HÓA LAI NGUỒN-KÊNH VỚI BĂNG THÔNG MỞ RỘNG<br />
Nguyễn Minh Quang1, 2*, Nguyễn Đăng Tiến3<br />
Tóm tắt: Kiến trúc mã hóa lai nguồn-kênh đã được sử dụng rộng rãi trong lĩnh<br />
vực truyền thông, đặc biệt là truyền các loại dữ liệu âm thanh, tiếng nói và video.<br />
Mã hóa lai nguồn kênh kết hợp ưu điểm của cả mã hóa số và mã hóa tương tự để<br />
nâng cao chất lượng truyền dữ liệu trong nhiều điều kiện kênh khác nhau. Mặc dù<br />
vậy, trong các nghiên cứu đã có, kiến trúc mã hóa nguồn-kênh chỉ áp dụng cho các<br />
tín hiệu liên tục. Trong bài báo này, chúng tôi tiếp cận bài toán truyền thông tin từ<br />
nguồn rời rạc, qua các loại kênh truyền nhiễu. Cụ thể, bài báo đề xuất mô hình<br />
truyền thông tin dành cho dữ liệu tiếng nói với mã hóa PCM. Chúng tôi giới thiệu<br />
hai mô hình cho phần mã hóa tương tự: mã hóa tuyến tính và mã hóa phi tuyến. Mô<br />
hình mã hóa tuyến tính áp dụng cơ chế bảo vệ thông tin cân bằng truyền thống,<br />
trong khi mô hình mã hóa phi tuyến sử dụng chỉ số độ quan trọng của các giá trị<br />
nguồn để áp dụng cơ chế bảo vệ thông tin bất cân bằng. Kết quả thực nghiệm cho<br />
thấy, mô hình mã hóa nguồn kênh trong bài báo đưa ra kết quả tốt hơn so với hệ<br />
thống mã hóa số truyền thống, trên nhiều điều kiện kênh truyền khác nhau.<br />
Từ khóa: Mã hóa lai nguồn-kênh, Mã hóa số, Mã hóa tương tự, Truyền thông tin từ nguồn rời rạc.<br />
<br />
1. GIỚI THIỆU<br />
Trong bài báo này, chúng tôi đề xuất một mô hình truyền tín hiệu rời rạc qua kênh<br />
không nhớ Gausian, rời rạc về thời gian. Cụ thể, hệ thống được đề xuất truyền dữ liệu<br />
tiếng nói dưới dạng số giữa hai điểm để giải quyết một trong những vấn đề của các hệ<br />
thống truyền âm thanh đó là đảm bảo chất lượng âm thanh ở mức độ tốt, đồng thời giới<br />
hạn băng thông sử dụng.<br />
Dựa trên lý thuyết Shannon về kết hợp mã hóa nguồn và mã hóa kênh, các hệ thống<br />
truyền tin thông thường áp dụng mô hình mã hóa nguồn-kệnh độc lập. Nói cách khác, mã<br />
hóa nguồn được lựa chọn mà không cần thông tin về mã hóa kênh và mã hóa kênh không<br />
cần quan tâm đến phân bố đầu ra của mã hóa nguồn. Hơn nữa, trong một số hệ thống truyền<br />
tin multimedia, một số phần thông tin được gán độ quan trọng cao hơn các phần thông tin<br />
khác, nên được bảo vệ bằng các loại mã hóa kênh tốt hơn các thông tin khác. Chiến lược này<br />
được gọi là bảo vệ bất cân bằng (UEP - Unequal error protection). Việc áp dụng chiến lược<br />
này đem lại hiệu quả cao hơn so với hệ thống truyền thống, nhất là với các loại dữ liệu<br />
multimedia. Trong các công trình đã được công bố, có hai hướng phát triển chính khi áp<br />
dụng mô hình UEP: Bảo vệ theo vị trí dữ liệu (bit-wise UEP) và bảo vệ theo giá trị gói tin<br />
(message-wise UEP) [1]. Với mô hình bảo vệ theo vị trí dữ liệu, các bit trong gói tin gửi đi<br />
sẽ được chia thành các tập con, mỗi tập con được gán một độ quan trọng, ứng với các mức<br />
độ bảo vệ khác nhau. Trong khi đó, mô hình bảo vệ theo gói tin, các gói tin được chia thành<br />
các tập con. Mỗi tập con được gán các mức độ bảo vệ khác nhau.<br />
Tuy nhiên, một nhược điểm của các hệ thống số với mô hình mã hóa nguồn-kênh là<br />
hiệu ứng "chững lại" (leveling-off effect) [2], trong đó, hiệu năng của hệ thống dừng lại ở<br />
một mức cố định, dù tỉ số tín hiệu trên nhiễu tiến đến vô cùng. Các hệ thống mã hóa lai<br />
không có nhược điểm này, nhờ hoạt động của phần mã hóa tương tự. Cụ thể, trong mô<br />
hình mã hóa lai số-tương tự, ta có thể sử dụng kết hợp mã hóa nguồn và mã hóa kênh ở<br />
phần mã hóa số để bảo vệ dữ liệu và tăng hiệu quả truyền thông trong các điều kiện kênh<br />
xấu. Thêm vào đó, bộ ánh xạ tương tự ở phần mã hóa tương tự giúp tăng hiệu năng của hệ<br />
thống ở các kênh có chỉ số CSNR cao. Nhiều mô hình mã hóa lai số-tương tự đã được<br />
nghiên cứu và giới thiệu trong các công trình đã được công bố. Trong các hệ thống truyền<br />
<br />
<br />
66 N. M. Quang, N. Đ. Tiến, “Mã hóa lai nguồn-kênh với băng thông mở rộng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
thông giữa hai điểm, Mittal và Phamdo [3] đề xuất ba mô hình mã hóa lai để tăng chất<br />
lượng truyền tin, đặc biệt là về vùng nhiễu có thể đạt được. Dựa trên các thiết kế đó,<br />
Skoglund và đồng sự [4] đề xuất mô hình mã hóa tuyến tính và mã hóa phi tuyến tính cho<br />
phần tương tự, có thể áp dụng vào mọi giá trị băng thông. Với dữ liệu tiếng nói, các công<br />
trình được trình bày trong [5], [6], [7] đã áp dụng thiết kế mã hóa lai để tăng chất lượng<br />
truyền tiếng nói so với mô hình mã hóa số trong một vài dải CSNR khác nhau. Matthias và<br />
cộng sự [8], [9] đã công bố một vài phiên bản của hệ mã hóa lai có sử dụng điều chế<br />
pulse-code và Adaptive DPCM. Tuy nhiên, thiết kế mã hóa tuyến tính và phi tuyến tính<br />
của họ ở phần tương tự, sử dụng đường cong Archimedes [10], chỉ hoạt động với tín hiệu<br />
liên tục. Rất ít các công trình đã công bố tập trung vào việc ứng dụng mã hóa lai cho tín<br />
hiệu rời rạc.<br />
Trong bài báo này, chúng tôi đưa ra mô hình truyền thông giữa hai điểm, trong đó, dữ<br />
liệu tiếng nói được truyền qua kênh nhiễu Gaussian với sự hỗ trợ của mã hóa lai số-tương<br />
tự. Chúng tôi quan sát thấy các lợi ích đạt được khi khai thác ưu điểm của mã hóa tương tự<br />
khi truyền thông trong các kênh ở các dải CSNR cao. Cụ thể, bằng cách sử dụng một cách<br />
mã hóa thích hợp, dữ liệu số đã được nén bằng phần số được truyền tải đồng thời với việc<br />
truyền tải các giá trị lỗi, các giá trị biểu diễn thông tin mất mát khi thực hiện quá trình<br />
nén/giải nén. Mặt khác, chúng tôi nhận thấy các giá trị lỗi với tần số xuất hiện lớn sẽ có độ<br />
quan trọng lớn hơn các giá trị lỗi còn lại. Do đó, chúng cần được bảo vệ tốt hơn. Xuất phát<br />
từ các quan sát trên, ý tưởng của bài báo này là áp dụng cơ chế bảo vệ bất cân bằng vào<br />
phần tương tự để bảo vệ các giá trị lỗi quan trọng, qua đó, giảm được độ méo của dữ liệu<br />
nhận được. Đóng góp trong bài báo này có thể tóm tắt như sau:<br />
Ứng dụng kiến trúc mã hóa lai số-tương tự vào truyền thông cho nguồn rời rạc, trong<br />
đó, các giá trị rời rạc được lấy từ dữ liệu tiếng nói.<br />
Sử dụng mô hình mã hóa tuyến tính cho các giá trị lỗi rời rạc. Mô hình đề xuất trong<br />
bài báo này là sự mở rộng của mô hình đã được công bố trong [4]. Chúng tôi cũng đề<br />
xuất một mô hình mã hóa phi tuyến tính, trong đó sử dụng kĩ thuật bảo vệ theo gói tin<br />
để tăng hiệu quả của bộ tương tự.<br />
Xây dựng chương trình mô phỏng và chứng minh chất lượng truyền thông của mô<br />
hình đề xuất.<br />
Phần còn lại của bài báo được tổ chức như sau. Sau phần giới thiệu về mô hình mã hóa<br />
số-tương tự ở mục II-A, bài báo mô tả hệ thống mã hóa lai số-tương tự cho dữ liệu tiếng<br />
nói ở mục II-B. Ở mục III, chúng tôi mô tả chi tiết phương pháp mã hóa tuyến tính và phi<br />
tuyến tính cho phần tương tự và sau đó, các kết quả thực nghiệm được mô tả ở mục IV.<br />
Cuối cùng, các kết luận được đưa ra ở phần V.<br />
2. KIẾN TRÚC MÃ HÓA LAI SỐ-TƯƠNG TỰ<br />
2.1. Kiến trúc truyền thống<br />
<br />
<br />
<br />
<br />
Hình 1. Mô hình tổng quát của hệ thống mã hóa số-tương tự.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 67<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
Trong phần này, chúng tôi trình bày mô hình mã hóa lai số-tương tự cho truyền tín hiệu<br />
tương tự qua kênh rời rạc không nhớ. Các phiên bản của mô hình này đã được công bố<br />
trong [4], [11]. Hình 1 mô tả mô hình tổng quát của một hệ thống mã hóa số tương tự,<br />
trong đó, phần số và phần tương tự được kết hợp với nhau. Dưới đây là mô tả chi tiết cách<br />
thức hoạt động của hệ thống.<br />
2.1.1. Phần truyền tin<br />
Tại phần truyền tin, n mẫu X i từ nguồn rời rạc được nhóm lại thành một khối<br />
X . Bộ mã hóa nguồn, trong đó chứa một bộ mã gồm N vector S0 ,..., Sn , lấy X n làm<br />
n<br />
<br />
<br />
đầu vào và ánh xạ X n tới một trong số các từ mã của nó. Mỗi từ mã là một nhóm gồm n<br />
mẫu. Chú ý rằng, bộ mã hóa và giải mã cần thống nhất trước về danh sách từ mã trong bộ<br />
mã. Đầu ra của bộ mã hóa nguồn, một chỉ số I của một từ mã, được đưa vào bộ mã hóa<br />
kênh. Bộ mã hóa kênh này sẽ đưa ra kí hiệu kênh sIk , trong đó k n . Chỉ số I đồng thời<br />
cũng được chuyển đến bộ giải mã nguồn. Tại đây, một từ mã S I được chọn ra tương ứng.<br />
<br />
Tại phần tương tự, một vector chứa các giá trí lỗi E n được tính bằng cách thực hiện<br />
phép trừ với S I từ X n . Vector lỗi E n sau đó được gửi đến bộ mã hóa tương tự, trong đó,<br />
E n được ánh xạ tới một vector k chiều V k (v1 ,..., v k ) , trong đó vi R,1 i k . Hệ<br />
thống thực hiện cộng đầu ra sIk của bộ mã hóa kênh và vector V k và kết quả của phép tính<br />
này, R k , được gửi đến nơi nhận qua kênh nhiễu.<br />
Chú ý rằng, kí hiệu kênh sIk phải thỏa mãn E || s kI || k (1 t) P , trong đó P là tổng<br />
năng lượng trong một lần sử dụng kênh và 0 ≤ t ≤ 1. Thêm vào đó, đầu ra của bộ mã hóa<br />
V k phải thỏa mãn ràng buộc năng lượng E || s kI || k (1 t) P .<br />
2.1.2. Phần nhận tin<br />
Tại phần nhận tin, sau khi nhận được gói tin Rˆ k từ kênh, một bộ giải mã kênh lấy Rˆ k<br />
làm đầu vào và đưa ra một giá trị chỉ số Iˆ ,là giá trị định giá của I ở phần truyền tin. Chỉ số<br />
ˆ<br />
Iˆ sau đó được đưa vào bộ giải mã nguồn, nơi sẽ sử dụng Iˆ để đưa ra vector X n S Iˆ ,<br />
<br />
Xˆ n là ước lượng của X n ở phần mã hóa số.<br />
Cùng lúc đó, chỉ số Iˆ cũng được truyền tới bộ giải mã kênh để tạo ra kí hiệu kênh sIkˆ .<br />
Lúc này, sIkˆ được trừ từ Rˆ k để đưa ra vector Vˆ k (vˆ1 ,..., vˆ k ) , một ước lượng của V k ở<br />
phần gửi tin. Bộ giải mã tương tự sẽ ánh xạ Vˆ tới ước lượng Eˆ n của vector chứa các giá<br />
k<br />
<br />
<br />
trị lỗi E n . Cuối cùng, ước lượng của X n đưa ra bởi hệ thống mã hóa lai được tính bằng<br />
ˆ<br />
cách cộng Eˆ n vào X n .<br />
2.2. Hệ thống mã hóa lai cho dữ liệu tiếng nói<br />
Ý tưởng chính trong bài báo này là mở rộng mô hình mã hóa lai số-tương tự và áp dụng<br />
cho truyền thông với các nguồn rời rạc. Trong hệ thống đề xuất, phần mã hóa và giải mã<br />
số làm việc tương tự như phần mã hóa/giải mã số của hệ thống truyền thống đã mô tả ở<br />
phần trên. Cụ thể, chúng tôi sử dụng một bộ mã hóa AMR, một bộ mã hóa kênh turbo<br />
code và một bộ điều chế pha nhị phân ờ phần số. Tại phần tương tự, chúng tôi nghiên cứu<br />
<br />
<br />
68 N. M. Quang, N. Đ. Tiến, “Mã hóa lai nguồn-kênh với băng thông mở rộng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
và ứng dụng hai loại mã hóa: Mã hóa tương tự và mã hóa số, để ánh xạ từ vector V k tới<br />
vector chứa giá trị lỗi E k . Mô hình hoạt động của hệ thống được mô tả trong hình 2.<br />
Trong phần dưới đây, chúng tôi sẽ trình bày chi tiết cách thức hoạt động của hệ thống.<br />
<br />
<br />
<br />
<br />
Hình 2. Mô hình hoạt động của hệ thống mã hóa lai cho dữ liệu tiếng nói.<br />
2.2.1. Phần gửi tin<br />
Trong hệ thống đề xuất, nguồn cần truyền là dữ liệu tiếng nói thô trong định dạng<br />
PCM, với độ dài của mẫu là 16 bits trên một mẫu. Khác với loại nguồn liên tục được sử<br />
dụng trong các hệ thống truyền thống, các mẫu được sử dụng là các giá trị số tự nhiên x,<br />
với 215 x 215 1 . Một chuỗi Q giá trị liên tiếp của x được nhóm lại thành một khối<br />
X ( x1 , x2 ,..., xQ ) và đưa vào bộ mã hóa AMR. Đầu ra của bộ mã hóa AMR là các frame<br />
được nén với độ dài n bit, trong đó, giá trị của n phụ thuộc vào chế độ nén được sử dụng<br />
trong bộ mã hóa AMR.<br />
Bộ mã hóa kênh sử dụng mã turbo, với tỷ lệ r. Chúng tôi sử dụng giả thiết bộ mã hóa<br />
kênh được sử dụng đủ thông minh để sửa tất cả các lỗi gây ra bởi kênh trong phần mã hóa<br />
số. Đầu ra của bộ mã hóa kênh (có độ dài là M bit) được đưa vào bộ điều chế pha nhị<br />
phân, tại đó tạo ra kí hiệu sk {-1,1}M . Tỷ lệ r được lựa chọn để thỏa mãn điều kiện:<br />
<br />
M n / r l P, l N , l 1 (1)<br />
Tại phần tương tự, chúng tôi sử dụng bộ một giải mã AMR để giải mã các frame nén và<br />
đưa ra đầu ra là một vector khối X ( x1 , x2 ,..., xQ ) , một ước lượng của vector X ở phần<br />
gửi tin. Một vector chứa các giá trị lỗi E, trong đó bao gồm Q số tự nhiên, sẽ được tính<br />
toán dựa trên đầu ra X của bộ giải mã AMR và X.<br />
Tiếp theo, hệ thống cần tìm biểu diễn dưới dạng tương tự của E. Điều này được thực<br />
hiện bằng cách ánh xạ mỗi giá trị số tự nhiên ei E với một bộ l phần tử (vil ,..., vil l 1 ) ,<br />
trong đó vi R, i 1,...l . Hệ thống nhóm Q bộ l liên tiếp, tương ứng với Q giá trị tự nhiên<br />
của vector E, tạo thành một biểu diễn tương tự V (v1 ,..., vQl ) của vector lỗi. Vì mức<br />
năng lượng tại phần số là 1, nên vector V phải thỏa mãn điều kiện về mức năng lượng:<br />
E || V ||2 k (1 P) (2)<br />
<br />
Vector đầu ra ở phần tương tự V và vector đầu ra S ở phần số được kết hợp với nhau để<br />
tạo thành kí hiệu kênh R (r1 ,..., rM ) trước khi được truyền tới nơi nhận, thông qua kênh<br />
thời gian rời rạc, với nhiễu Gaussian W và phương sai 2 một phần:<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 69<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
v s j 0 j Q l,<br />
rj j (3)<br />
0 TH #<br />
2.2.2. Phần nhận tin<br />
Tại phần số, một bộ giải mã AMR và một bộ giải mã turbo được sử dụng để tính ước<br />
lượng của X (ở dạng số). Cụ thể, giả sử kí hiệu kênh nhận được là Rˆ (rˆ1 ,..., rˆM ) , hệ<br />
thống sẽ gửi Rˆ đến bộ giải mã turbo. Bộ giải mã này sẽ đưa ra đầu ra là một frame AMR<br />
với độ dài n bit, và gửi frame tới bộ giải mã AMR. Đồng thời, frame cũng được mã hóa<br />
bởi bộ mã hóa turbo và ánh xạ vào một kí hiệu BPSK bởi bộ điều chế. Đầu ra của bộ giải<br />
mã AMR là một ước lượng Xˆ của X ở phần số, trong đó Xˆ (xˆ 1 ,..., xˆ Q ) .<br />
<br />
Tại phần tương tự, một ước lượng của vector lỗi V là Vˆ (vˆ 1 ,..., vˆ M ) , sẽ được tính<br />
bằng cách trừ đầu ra của bộ điều chế từ kí hiệu kênh Rˆ . Bộ giải mã tương tự ánh xạ mỗi<br />
ˆ vào một giá trị rời rạc eˆ . Lưu ý rằng, mỗi giá trị rời rạc eˆ là<br />
tập con (vˆ il ,..., vˆ il l 1 ) V i i<br />
<br />
một ước lượng của một phần tử rạc ei trong vector lỗi E. Ước lượng cuối cùng của X, là<br />
<br />
Xˆ (xˆ 1 ,..., xˆQ ) , được tính bằng cách cộng vector Eˆ (eˆ 0 ,..., eˆ Q ) với ước lượng Xˆ tạo<br />
ra bởi bộ giải mã AMR:<br />
vˆ j sˆ j 0 j Q l<br />
rˆj (4)<br />
vˆ j TH #<br />
Phần còn lại phải làm rõ trong mô hình này là bộ mã hóa và giải mã ở phần tương tự.<br />
Chúng tôi nghiên cứu hai hệ thống, trong đó ứng dụng bộ mã hóa/giải mã tuyến tính và phi<br />
tuyến tính. Hai hệ thống được trình bày chi tiết trong phần dưới đây.<br />
3. BỘ MÃ HÓA/GIẢI MÃ TƯƠNG TỰ<br />
3.1. Bộ mã hóa/giải mã tuyến tính<br />
Ở hệ thống đầu tiên, chúng tôi sử dụng bộ mã hóa tuyến tính ở phần tương tự. Một cách<br />
tóm tắt, có thể coi mỗi giá trị của vector E được gửi l lần tại đầu ra của bộ mã hóa tuyến<br />
tính này. Nói cách khác, mỗi phần tử ei E được gửi l lần bởi l giá trị giống nhau của V:<br />
<br />
vil vil 1 ... vil l 1 a ei (5)<br />
<br />
trong đó, a là hằng số chúng tôi sử dụng để điều chỉnh độ lớn của tín hiệu phần tương tự.<br />
Để tính giá trị của a, chúng tôi sử dụng phương pháp được trình bày bởi Slokun [4]. Cụ<br />
thể, một hệ số năng lương 0 < ∆ < 1 được gán vào phần tương tự. Hằng số a được chọn để<br />
thỏa mãn điều kiện:<br />
<br />
Qa 2 E E<br />
(6)<br />
M Qa 2 E E<br />
<br />
Tại nơi nhận, sau khi nhận được vector con (vˆ il ,..., vˆ il l 1 ) , bộ giải mã tuyến tính sẽ<br />
đưa ra ước lượng của mỗi phần tử ei của vector lỗi. Với giả thiết σ đã được biết trước tại<br />
<br />
<br />
<br />
70 N. M. Quang, N. Đ. Tiến, “Mã hóa lai nguồn-kênh với băng thông mở rộng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
nơi nhận, chúng tôi mở rộng phương pháp đề xuất bởi Slokun [4] (được đề xuất để áp<br />
dụng trong trường hợp l = 2) để áp dụng trong trường hợp tổng quát của giá trị l như sau:<br />
<br />
l<br />
1 1 <br />
eˆi vˆ j<br />
l q 2 j 0<br />
(7)<br />
<br />
1 <br />
3.2. Bộ mã hóa/giải mã tuyến tính<br />
Chúng tôi đề xuất một phương pháp mã hóa/giải mã ở phần tương tự, trong đó có sử<br />
dụng phương pháp phi tuyến tính, dành cho các giá trị rời rạc và băng thông mở rộng.<br />
Chúng tôi nhận thấy tại các hệ thống với các giá trị tại vector lỗi rời rạc, một số giá trị có<br />
tần suất xuất hiện cao hơn các giá trị còn lại. Do đó, độ méo dữ liệu gây ra do các lỗi tại<br />
các giá trị này nhiều hơn so với độ méo gây ra bởi các lỗi trên các giá trị còn lại. Từ quan<br />
sát này, chúng tôi đưa ra ý tưởng một thiết kế có sử dụng kĩ thuật bảo vệ bất cân bằng,<br />
trong đó, các giá trị quan trọng được bảo vệ tốt hơn các giá trị còn lại.<br />
Trước hết, cần chọn ra K giá trị số tự nhiên ei ,1 i K , xuất hiện thường xuyên nhất<br />
trong vector giá trị lỗi. Mỗi giá trị ei được ánh xạ với một điểm trong không gian l chiều,<br />
tức là tương ứng với một bộ gồm l số thực. Chú ý là với các loại nguồn tín hiệu liên tục,<br />
Pal và đồng sự [10] đã chứng minh rằng, độ méo của thông tin qua quá trình truyền thông<br />
có thể giảm bớt bằng cách kéo dãn đường cong tín hiệu (tức là đường cong biểu diễn tín<br />
hiệu trong không gian l chiều). Nếu xem xét ràng buộc về mức năng lượng của kênh trong<br />
không gian hai chiều, công trình của Pal và đồng sự [10] đề xuất sử dụng một đường xoắn<br />
ốc Archimedes để biểu diễn đường cong tín hiệu. Dựa trên kết quả nghiên cứu đó, chúng<br />
tôi đề xuất sử dụng đường cong tín hiệu là các hình chiếu của đường xoắn ốc Archimedes<br />
trên các siêu mặt cầu khác nhau. Các hình chiếu được nối với nhau tại các điểm cực. Trên<br />
đường biểu diễn tín hiệu được tạo thành, chúng tôi chọn ra K điểm để chia đường tín hiệu<br />
thành K + 1 đoạn bằng nhau, mỗi điểm ứng với một trong K giá trị lỗi ei .<br />
<br />
<br />
<br />
<br />
Hình 3. Đường cong tín hiệu tạo thành trên 3 mặt cầu.<br />
Ví dụ, trong trường hợp không gian 3 chiều, đường cong tín hiệu được tạo thành bằng<br />
cách nối các hình chiếu đường xoắn ốc Archimedes lên các hình cầu cùng tâm và bán kính<br />
khác nhau. Phương trình của đường xoắn ốc Archimedes trong tọa độ cực là = , với<br />
là hằng số. Cụ thể hơn, các tọa độ của một điểm trong không gian 3 chiều, (x, y, z), sẽ được<br />
sử dụng để biểu diễn một giá trị lỗi e trong phần truyền tin. Hình 3 mô phỏng một đường<br />
cong tín hiệu tạo thành trên ba mặt cầu, các điểm nối được tạo thành tại các điểm cực.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 71<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
4. KẾT QUẢ MÔ PHỎNG VÀ THẢO LUẬN<br />
Chúng tôi xây dựng một số thí nghiệm để kiểm chứng hiệu quả của mô hình đề xuất<br />
với dữ liệu tiếng nói thô dạng số, dưới hai kịch bản: hệ thống sử dụng mã hóa tuyến tính<br />
và phi tuyến tính. Trong phần sau, chúng tôi sẽ mô tả chi tiết chương trình mô phỏng ở<br />
mục V-A, sau đó, sử dụng chương trình mô phỏng để so sánh hiệu quả của hệ thống đề<br />
xuất và các hệ thống đã có ở mục V-B.<br />
4.1. Chương trình mô phỏng<br />
Chương trình mô phỏng đầu tiên được xây dựng cho dữ liệu tiếng nói, sử dụng thuật<br />
toán nén tiếng nói AMR cho phần mã hóa nguồn, và một bộ mã hóa turbo cho phần mã<br />
hóa kênh. Bộ mã hóa AMR tiến hành nén P = 380 giá trị số tự nhiên từ dữ liệu tiếng nói<br />
dạng thô, tạo thành một frame AMR. Trong thí nghiệm, chúng tôi sử dụng chế độ nến 6.7<br />
kbits/s, có nghĩa là một frame AMR chứa 144 bit (L = 144). Mã hóa kênh turbo với tỷ lệ r<br />
= 1/3, sử dụng với bộ tạo (37, 21) và khối chèn bit ngẫu nhiên. Do đó, đầu ra của phần số<br />
là các vector 432 chiều.<br />
Chương trình mô phỏng thứ hai được thực hiện trên dữ liệu ảnh, sử dụng hệ thống mô<br />
tả phía trên. Dữ liệu ảnh thô dưới định dạng png truyền đi từ phía nguồn. Thuật toán nén<br />
JPEG được sử dụng tại bộ mã hóa nguồn. Các thông số cho các thành phần còn lại của hệ<br />
thống tương tự thông số của chương trình mô phỏng với tiếng nói.<br />
Trong phần mã hóa tuyến tính, mỗi phần tử của vector chứa giá trị lỗi được gửi l = 3<br />
lần bởi V. Cụ thể, chúng tôi sử dụng bộ ba giá trị số thực giống nhau để biểu diễn một giá<br />
trị lỗi, được tính bằng công thức (1) và (2). Giá trị ước lượng của lỗi được tính dựa trên<br />
công thức (3) (lưu ý, tính toán được thực hiện với giả thiết nơi nhận tín hiệu biết trước giá<br />
trị của 2 ).<br />
Trong phần mã hóa phi tuyến tính, chúng tôi tạo ra đường cong tín hiệu bằng cách nối<br />
các hình chiếu của một hình xoắn ốc Archimedes lên bốn mặt cầu. Sau đó, các giá trị lỗi<br />
có tần suất xuất hiện cao nhất được biểu diễn bằng các điểm trên đường cong. Cụ thể,<br />
chúng tôi sử dụng bốn đường cong với công thức sau:<br />
x c cos ,<br />
y c sin , (8)<br />
2 2<br />
z rs c ,<br />
<br />
trong đó:x, y và z là các biến, c là hằng số, rs , s = 1,2,3 là bán kính của các mặt cầu.<br />
Chúng tôi chọn giá trị c = 0.065 và gán một hằng số ∆ cho phần tương tự, giá trị của rs<br />
được tính từ công thức:<br />
QE E<br />
(9)<br />
M QE E<br />
Các giá trị quan trọng được chọn ra từ các giá trị lỗi theo tần suất xuất hiện của chúng<br />
trong vector lỗi. Cụ thể, các giá trị có tần suất suất hiện cao nhất sẽ được chọn ra và biểu<br />
diễn trên đường cong tín hiệu. Ví dụ, đồ thị trong hình 4 mô tả tần suất xuất hiện của 1000<br />
giá trị lỗi trong khoảng (-500, 500) của dữ liệu âm thanh. Dựa vào đồ thị này, các giá trị<br />
lỗi quan trọng sẽ được lọc ra.<br />
<br />
<br />
<br />
72 N. M. Quang, N. Đ. Tiến, “Mã hóa lai nguồn-kênh với băng thông mở rộng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
<br />
<br />
<br />
Hình 4. Tần suất xuất hiện của các giá trị lỗi với dữ liệu âm thanh.<br />
4.2. Kết quả mô phỏng<br />
<br />
<br />
<br />
<br />
Hình 5. Kết quả mô phỏng về chỉ số chất lượng trung bình (MOS).<br />
Hình 5 và 6 mô tả kết quả mô phỏng của các hệ thống về chỉ số ý kiến chất lượng trung<br />
bình MOS [12] và giá trị bình phương trung bình<br />
2<br />
MSE 10 log10 E Xˆ X (10)<br />
<br />
cho các hệ thống sau:<br />
Hai hệ thống lai số-tương tự với phần mã hóa tương tự sử dụng mô hình tuyến tính.<br />
Hai hệ thống này được đánh giá trên tỷ số năng lượng ∆ = 0.1 và ∆ = 0.4.<br />
Hai hệ thống lai số-tương tự với phần mã hóa tương tự sử dụng mô hình phi tuyến<br />
tính, trong đó 600 giá trị lỗi được biểu diễn bởi 600 điểm trong đường cong tín hiệu.<br />
Tỷ số năng lượng sử dụng là ∆ = 0.1 và 0.4.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 73<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
Hai hệ thống lai số-tương tự với phần mã hóa tương tự sử dụng mô hình phi tuyến<br />
tính với 1000 điểm được sử dụng trên đường cong tín hiệu và tỷ số năng lượng,<br />
giống như hai hệ thống trên, là ∆ = 0.1 và 0.4.<br />
Một hệ thống bảo vệ bất cân bằng, trong đó sử dụng mã hóa nguồn là bộ mã hóa<br />
AMR ở chế độ 6.7 bits/s, một bộ turbo code với tỷ số rh 1/ 5 cho dữ liệu header<br />
của các frame, và rc 8 / 23 cho dữ liệu thuộc lớp A và B của các frame (chú ý,<br />
trong chế độ 6.7 bits/s, các dữ liệu trong các frame AMR không có class C).<br />
<br />
<br />
<br />
<br />
Hình 6. Kết quả mô phỏng về giá trị bình phương trung bình (MSE).<br />
Hình 7 mô tả kết quả chương trình mô phỏng dựa trên chỉ số SSIM [13] với dữ liệu<br />
ảnh, với các hệ thống:<br />
Hai hệ thống lai số-tương tự với phần mã hóa tương tự sử dụng mô hình phi tuyến<br />
tính với 600 giá trị lỗi được biểu diễn trong đường cong tín hiệu và ∆ = 0.1 và 0.4.<br />
Hai hệ thống lai số-tương tự với phần mã hóa tương tự sử dụng mô hình phi tuyến<br />
tính với 1000 điểm được sử dụng trên đường cong tín hiệu và tỷ số năng lượng, ∆ =<br />
0.1 và 0.4.<br />
Hai hệ thống lai số-tương tự với phần mã hóa tương tự sử dụng mô hình phi tuyến<br />
tính với 600 điểm được sử dụng trên đường cong tín hiệu và tỷ số năng lượng, ∆ =<br />
0.1 và 0.4.<br />
Như được thể hiện trong Hình 5, xét trên chỉ số MOS, hệ thống lai số-tương tự cho kết<br />
quả tốt hơn so với hệ thống chỉ sử dụng mã hóa số và mô hình bảo vệ bất cân bằng, trên tất<br />
cả các điều kiện kênh thuộc dải CSNR từ 0 dB đến 25 dB. Cụ thể, hệ thống lai số-tương tự<br />
với mã hóa tuyến tính hoạt động tốt hơn so với hệ thống số trên các dải CSNR từ 0 dB đến<br />
12 dB và từ 17 dB đến 25 dB. Hơn thế nữa, hệ thống trang bị mã hóa phi tuyến tính ở phần<br />
tương tự với 1000 điểm trên đường cong tín hiệu cũng đạt được chỉ số MOS tốt hơn sơ với<br />
hệ thống sử dụng mã hóa số đơn thuần trong dải CSNR thấp (từ 0 dB đến 5 dB) và dải<br />
CSNR cao (từ 10 dB đến 25 dB). Tương tự, ở Hình 6, có thể thấy hiệu quả đáng kể của mô<br />
hình lai so với mô hình mã hóa số nếu xét trên chỉ số MSE. Ví dụ, xét chỉ số MSE, trong<br />
trường hợp mã hóa tuyến tính và ∆ = 0.4, hệ thống mã hóa lai cho kết quả cao hơn so với<br />
hệ thống số 6 db và 12 dB, tương ứng ở các giá trị CSNR = 0 dB và CSNR = 3 dB. Sự cải<br />
<br />
<br />
74 N. M. Quang, N. Đ. Tiến, “Mã hóa lai nguồn-kênh với băng thông mở rộng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
tiến này thể hiện rõ rệt hơn ở dải CSNR cao, khi hệ thống lai tốt hơn hệ thống số ít nhất<br />
22.5 dB trong dải CSNR từ 15 đến 15 dB. Điều này thể hiện ưu điểm của bộ mã hóa tương<br />
tự trong truyền dữ liệu tiếng nói. Tương tự, ở hình 7, hệ thống lai số-tương tự sử dụng mô<br />
hình phi tuyến tính cũng cho kết quả tốt hơn so với các hệ thống mã hóa số với kĩ thuật<br />
bảo vệ bất cân bằng và mã hóa số-tương tự kết hợp mô hình tuyến tính. Cụ thể, hệ thống<br />
số-tương tự với mã hóa phi tuyến cho kết quả tốt hơn hệ thống số-tương tự và mã hóa<br />
tuyến tính trên một dải rộng của điều kiện kênh, từ CSNR = 8 dB đến CSNR = 23 dB, với<br />
khác biết lớn nhất xét trên chỉ số SSIM là 0.225 tại CSNR = 11 dB.<br />
<br />
<br />
<br />
<br />
Hình 7. Kết quả mô phỏng với chỉ số SSIM.<br />
Chú ý rằng, hệ thống trang bị mã hóa phi tuyến tính sẽ có hiệu ứng "chững lại"<br />
(leveling-off effect), tức là hiệu năng của hệ thống giữ nguyên tại một giá trị hằng số, dù<br />
chỉ số CSNR tiếp tục tăng đến vô cùng. Ví dụ, hiệu năng của hệ thống với mã hóa phi<br />
tuyến tính, 600 điểm trên đường tín hiệu và ∆ = 0.1 và 0.4 dừng ở MOS = 4.389, với tất cả<br />
các giá trị CSNR lớn hơn 14 dB và 17 dB, tương ứng. Tương tự, nếu xét chỉ số MSE, các<br />
hệ thống dừng lại ở MSE = 65.8 dB với tất cả các giá trị CSNR lớn hơn 15 dB và 18 dB.<br />
Với chỉ số SSIM và dữ liệu ảnh, kết quả của hệ thống dừng lại tại SSIM = 0.829 và SSIM<br />
= 0.839 tương ứng với hệ thống 600 điểm và 1000 điểm trên đường cong tín hiệu. Lý do vì<br />
với các hệ thống phi tuyến tính, ta chỉ có thể truyền các giá trị xấp xỉ của lỗi, chứ không có<br />
khả năng truyền tất cả các giá trị một cách chính xác. Như vậy, tại nơi nhận tin, không có<br />
đủ cơ sở để khôi phục lại hoàn toàn gói tin đã truyền đi, kể cả trong trường hợp kênh<br />
không có nhiễu. Ngược lại, hệ thống được trang bị cơ chế mã hóa tuyến tính khắc phục<br />
hạn chế này. Nói cách khác, chỉ số MOS trong hệ thống với mã hóa tuyến tính sẽ tăng khi<br />
chỉ số CSNR của kênh tăng. Lý do dẫn đến điều này là do nguyên lý hoạt động của mã hóa<br />
tương tự tuyến tính, trong đó tất cả các giá trị lỗi đều có khả năng được ước chính xác,<br />
miễn là điều kiện kênh đủ tốt.<br />
Chúng tôi cũng chú ý rằng, trong với trường hợp mã hóa phi tuyến, đường cong tín<br />
hiệu với 1000 điểm cho kết quả tốt hơn so với đường cong có 600 điểm trên dải CSNR<br />
cao. Thêm vào đó, ngưỡng đạt được trong hiệu ứng "chững lại" của đường cong 1000<br />
điểm cũng tốt hơn. Lý do cho hiện tượng này là đường cong với 1000 điểm có khả năng<br />
biểu diễn tín hiệu tốt hơn các giá trị lỗi so với đường cong 600 điểm. Trong các điều kiện<br />
kênh tốt, ứng với dải CSNR cao, nơi nhận có thể khôi phục các giá trị lỗi với độ méo thấp.<br />
Từ đó, số giá trị lỗi ở đường cong 1000 điểm được khôi phục chính xác nhiều hơn số giá<br />
trị lỗi được khôi phục ở trường hợp còn lại, dẫn đến kết quả tốt hơn.<br />
Một điểm chú ý nữa được rút ra từ Hình 5 là hiệu quả của hệ thống mã hóa phi tuyến<br />
tính tốt hơn so với hệ thống mã hóa tuyến tính trên dải CSNR cao. Ví dụ, xét chỉ số MOS,<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 75<br />
Kỹ thuật điều khiển & Điện tử<br />
<br />
mã hóa phi tuyến sử dụng đường cong 600 điểm đưa ra kết quả cao hơn so với mã hóa<br />
tuyến tính trên dải CSNR từ 14 dB đến 24 dB, với các hệ thống có ∆ = 0.4. Hơn nữa, kết<br />
quả này còn tốt hơn nếu xét trên chỉ số MSE. Cụ thể, trên dải CSNR từ 17 dB đến 25 dB,<br />
mã hóa phi tuyến với đường cong tín hiệu 1000 điểm tốt hơn má hóa tuyến tính ít nhất<br />
55.1 dB và 55.3 dB với ∆ = 0.4, tương ứng. Điều này chứng minh ưu điểm của việc áp<br />
dụng kĩ thuật bảo vệ bất cân bằng trong phần tương tự đã được đề xuất trong bài báo.<br />
Chúng tôi cũng nhận thấy rằng, mã hóa tuyến tính cho kết quả tốt hơn mã hóa phi tuyến ở<br />
dải các giá trị CSNR thấp. Cụ thể, hệ thống trang bị mã hóa tuyến tính và ∆ = 0.4 đạt được<br />
kết quả tốt hơn so với mã hóa phi tuyến trong khoảng CSNR từ 0 dB đến 10 dB, kết quả<br />
tốt hơn ít nhất là 0.45 và 8.45 dB, xét trên chỉ số MOS và MSE tương ứng. Nguyên nhân<br />
của hiện tương này là với điều kiện kênh tồi, nhiễu của kênh có thể đưa một điểm từ một<br />
phần trên đường cong tin hiệu tới một phần khác cách xa phần ban đầu. Điều này dẫn tới<br />
sai khác lớn khi nơi nhận khôi phục giá trị ban đầu của lỗi.<br />
Cuối cùng, một điểm đáng chú ý là các hệ thống sử dụng giá trị ∆ lớn đạt chất lượng<br />
truyền tin tốt hơn so với hệ thống sử dụng giá trị ∆ nhỏ. Lý do dẫn đến hiện tượng này là<br />
quá trình khôi phục thông tin sẽ thực hiện tốt hơn với sự hỗ trợ của giá trị ∆ lớn, khi các<br />
điểm trên đường cong tín hiệu có xu hướng cách xa nhau. Việc sử dụng giá trị ∆ nhỏ sẽ<br />
làm cho hệ thống nhạy cảm hơn với nhiễu, làm giảm chất lượng khôi phục dữ liệu gốc.<br />
5. KẾT LUẬN<br />
Trong bài báo này, chúng tôi đã đề xuất một mô hình mã hóa lai số-tương tự, trong đó<br />
ứng dụng kiến trúc mã hóa kết hợp nguồn-kênh ở phần số, tận dụng ưu điểm của bộ mã<br />
hóa tương tự ở phần tương tự. Việc áp dụng cơ chế bảo vệ bất cân bằng ở phần tương tự<br />
giúp nâng cao chất lượng truyền tin của hệ thống, giảm độ méo dữ liệu, nhờ tận dụng được<br />
thông tin về xác suất phân bố của các giá trị trong vector lỗi. Kết quả thực nghiệm cho<br />
thấy, hệ thống đề xuất đưa đến kết quả tốt hơn so với các hệ thống mã hóa lai số-tương tự<br />
truyền thống và hệ thống mã hóa số đơn thuần.<br />
TÀI LIỆU THAM KHẢO<br />
[1]. S. Borade, B. Nakiboglu, and L. Zheng, “Unequal error protection: some<br />
fundamental limits,” in IN PROC. OF THE INTERNATIONAL SYMPOSIUM ON<br />
INFORMATION THEORY. Citeseer, 2008.<br />
[2]. C. E. Shannon, “Communication in the presence of noise,” Proceedings of the IRE,<br />
Vol. 37, no. 1, pp. 10–21, 1949.<br />
[3]. U. Mittal and N. Phamdo, “Hybrid digital-analog (hda) joint sourcechannel codes<br />
for broadcasting and robust communications,” IEEE Transactions on Information<br />
Theory, Vol. 48, no. 5, pp. 1082–1102, 2002.<br />
[4]. M. Skoglund, N. Phamdo, and F. Alajaji, “Hybrid digital–analog source–channel<br />
coding for bandwidth compression/expansion,” IEEE Transactions on Information<br />
Theory, Vol. 52, no. 8, pp. 3757–3763, 2006.<br />
[5]. T. Miki, C.-E. Sundberg, and N. Seshadri, “Pseudo-analog speech transmission in<br />
mobile radio communication systems,” IEEE transactions on vehicular technology,<br />
Vol. 42, no. 1, pp. 69–77, 1993.<br />
[6]. N. Phamdo and U. Mittal, “A joint source-channel speech coder using hybrid digital-<br />
analog (hda) modulation,” IEEE transactions on speech and audio processing, Vol.<br />
10, no. 4, pp. 222–231, 2002.<br />
[7]. C. Hoelper and P. Vary, “Bandwidth-efficient mixed pseudo analoguedigital speech<br />
and audio transmission,” in Multimedia Signal Processing, 2006 IEEE 8th<br />
Workshop on. IEEE, 2006, pp. 141–145.<br />
<br />
<br />
76 N. M. Quang, N. Đ. Tiến, “Mã hóa lai nguồn-kênh với băng thông mở rộng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
[8]. M. Rungeler, J. Bunte, and P. Vary, “Design and evaluation of hybrid¨ digital-<br />
analog transmission outperforming purely digital concepts,” IEEE Transactions on<br />
Communications, Vol. 62, no. 11, pp. 3983–3996, 2014.<br />
[9]. M. Rungeler, F. Kleifgen, and P. Vary, “Wideband speech coding with ¨ hybrid<br />
digital-analog transmission,” in Signal Processing Conference (EUSIPCO), 2015<br />
23rd European. IEEE, 2015, pp. 784–788.<br />
[10]. P. A. Floor and T. A. Ramstad, “Optimality of dimension expanding shannon-<br />
kotel’nikov mappings,” in Information Theory Workshop, 2007. ITW’07. IEEE.<br />
IEEE, 2007, pp. 289–294.<br />
[11]. P. Minero, S. H. Lim, and Y.-H. Kim, “A unified approach to hybrid coding,” IEEE<br />
Transactions on Information Theory, Vol. 61, no. 4, pp. 1509–1523, 2015.<br />
[12]. P.862: Perceptual evaluation of speech quality (pesq): “An objective method for end-<br />
to-end speech quality assessment of narrowband telephone networks and speech<br />
codes.” Available: http://www.itu.int/rec/t-rec-p.862/en.<br />
<br />
ABSTRACT<br />
HYBRID SOURCE–CHANNEL CODING FOR BANDWIDTH EXPANSION<br />
The structure of hybrid source–channel coding has extensively used in<br />
telecommunication, especially in transmitting speed or video data. Hybrid source-<br />
channel coding integrates the advantages of both digital-coding and analog-coding<br />
to improve the quality of data transmission in different types of channels. However,<br />
in existing works, hybrid source-channel coding has been only applied for<br />
continuous signal. In this paper, an information transmission model for discrete<br />
signals is proposed. Specifically, two different models for analog encoding: linear<br />
analog coding and nonlinear analog encoding are introduced. Linear encoding<br />
model utilizes equal error protection mechanism while the nonlinear coding model<br />
uses unequal error protection mechanism with significant information from source.<br />
The experimental result shows that our proposed methods outperform existing<br />
works in terms of transmission quality.<br />
Keywords: Hybrid source-channel coding, Digital Coding, Analog Coding, Information transmission from<br />
discrete source.<br />
<br />
Nhận bài ngày 10 tháng 5 năm 2017<br />
Hoàn thiện ngày 5 tháng 9 năm 2017<br />
Chấp nhận đăng ngày 25 tháng 10 năm 2017<br />
<br />
Địa chỉ: 1Viện Công nghệ Thông tin và Truyền thông, Đại học Bách Khoa Hà Nội;<br />
2<br />
SAMOVAR, Télécom SudParis, CNRS, Université Paris-Saclay,<br />
9 rue Charles Fourier - 91011 Evry Cedex;<br />
3<br />
Trường Đại học Kỹ thuật Hậu cần Công an Nhân dân, Bộ Công an.<br />
*<br />
Email: quangnm@hnue.edu.vn.<br />
<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 77<br />
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn