Tải bản đầy đủ (.docx) (28 trang)

Mã hóa dự đoán – kỹ thuật DPCM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (911.29 KB, 28 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
**********

BÁO CÁO
MÔN XỬ LÝ DỮ LIỆU ĐA PHƯƠNG TIỆN
Đề tài: Mã hóa dự đoán – Kỹ thuật DPCM
Sinh viên thực hiện:
Nguyễn Đình Tài
Phạm Văn Tiệp
Hồ Thị Chắt
Giáo viên hướng dẫn:
PGS.TS. Nguyễn Thị Hoàng Lan

Hà Nội, 5-2015
MỤC LỤC


2


Phần 1:
I.

TÌM HIỂU CHUNG VỀ PHƯƠNG PHÁP
MÃ HÓA DPCM

Nguyên lý
Điều xung mã sai phân (DPCM – Differentical Pulse Code Modulation) là
phương pháp nén dữ liệu có mất mát thông tin. Cơ sở của phương pháp này dựa
trên mã hóa dự đoán, thường đước sử dụng đối với các tín hiệu lấy mẫu có độ


tương quan mạnh (nghĩa là hai mẫu gần nhau là khá tương tự nhau), có quan hệ lân
cận giữa các mẫu, như tín hiệu ảnh video, tín hiệu tiếng nói… Như vậy sẽ có nhiều
lợi ích khi mã hóa sự khác nhau giữa các mẫu kế cận thay cho mã hóa giá trị tuyệt
đối của mỗi mẫu.
Nguyên tắc của mã hóa dự đoán :
- Mã hóa sự sai khác giữa các mẫu : mẫu dự đoán theo thời điểm trước và mẫu hiện
tại.
- Giá trị mẫu được giải mã dựa trên sự sai khác và giá trị dự đoán ở thời điểm trước
nó.
Như vậy có thể thấy rằng thay vì truyền đi toàn bộ thông tin của các mẫu, ta
chỉ truyền đi sự sai lệch giữa các mẫu. Điều này cho phép đạt được hiệu quả nén
cao hơn nhiều so với việc mã hóa và truyền đi giá trị của từng mẫu riêng biệt

Hình 1 : Sơ đồ nguyên lý DPCM
1.1

Lấy mẫu ( Sampling)
3


Lấy mẫu chính là quá trình rời rạc hoá tín hiệu tương tự. Đây là bước chuyển
tín hiệu mang thông tin dạng liên tục thành tín hiệu mang thông tin rời rạc, bằng
phương pháp lấy mẫu (Sampling). Sao cho tín hiệu rời rạc phải mang đẩy đủ thông
tin của tín hiệu tương tự, để tái tạo được thông tin một cách trung thực ở đầu thu.
Quá trình lấy mẫu được phát biểu như sau:
Một tín hiệu X(t) liên tục theo thời gian có phổ hạn chế từ (0¸Fmax)Hz,
được hoàn toàn xác định bởi những giá trị X(k Dt) của nó lấy các khoảng thời gian
t =1/2Fmax với Fmax là tần số cao nhất của phổ làm X(t).
Nếu gọi T1m là chu kỳ lẫy mẫu và F1m là tần số lấy mẫu ta có: T1m =
1/2Fmax.


Hình 2 Quá trình lấy mẫu tính hiệu
Ở đầu thu để phục hồi lại được tín hiệu ban đầu, người ta dùng bộ lọc. Tín
hiệu rời rạc khi qua bộ lọc thông thấp, với tần số cơ bản của tín hiệu sẽ cho ra tín
hiệu ban đầu. Quá trình phục hồi đó được minh hoạ ở hình 3

Hình 3 : Quá trình phục hồi tín hiệu
1.2

Lượng tử hóa
Là thay thế một tín hiệu tương tự đã được lấy mẫu bằng tập hữu hạn của các
mức tín hiệu biên độ rời rạc. Ưu điểm của lượng tử hóa tín hiệu đã lấy mẫu là giảm
được ảnh hưởng của nhiễu.
4


Các mức tín hiệu rời rạc này gọi là mức lượng tử hoá, khoảng cách giữa hai
mức lượng tử hoá gọi là bước lượng tử hoá.

Hình 4 : Sơ đồ mô tả quá trình lượng tử hóa
1.3

Bộ dự đoán
Do độ tương quan giữa các mẫu tín hiệu như tín hiệu tiếng nói, tín hiệu
video,... là khá lớn nên có thể thực hiện dự đoán một cách gần đúng một giá trị
mẫu nào đó từ một số mẫu trước đó.
Bộ dự đoán được sử dụng để tính toán dự đoán ra các mẫu tín hiệu theo mẫu
tại thời điểm trước (tín hiệu tham chiếu). Trong quá trình dự đoán sẽ có sai số dự
đoán(Pridection error). Cần phân biệt giữa sai số dự đoán và sai số lượng tử. Hai
khái niệm này có bản chất khác nhau :

• Sai số dự đoán (prediction error) chỉ là sự chênh lệch giữa giá trị dự đoán và giá trị
thực. Nó không làm tổn thất thông tin dẫn đến suy giảm chất lượng ảnh. Giá trị sai
số này quyết định tốc độ bit giảm đi nhiều hay ít, tức ảnh hưởng đến hiệu suất nén.
• Sai số lượng tử (quantization error) là sai số đặc trưng cho sự tổn thất dữ liệu dẫn
đến làm suy giảm chất lượng ảnh phục hồi.

1.4

Bộ mã hóa
Bộ mã hóa sẽ mã hóa các sai số dự đoán thành các từ mã nhị phân và được
truyền đi qua kênh truyền.
Ở đâu thu, bộ giải mã sẽ tiến hành giải mã các bit nhị phân nhận được , sau
đó tiến hành lượng tử hóa ngược và khôi phục lại tín hiệu ban đầu
II.

Các phương pháp mã hóa DPCM

1. DPCM vòng mở (Open-loop DPCM)
5


Hình 5 Open-loop DPCM
Gọi q là sai số lượng tử hóa, ta có d^ [n] = d[n] + q[n]
Mã hóa : d[n] = x[n] - x[n-1]

Như vậy có thể thấy với kỹ thuật Open-Loop DPCM, sau mỗi vòng lặp sai số
lượng tử
hóa q[i] lại được cộng thêm vào (Quantization error Accumulation) :

6



Tức là sai số lượng tử hóa sau khi mã hóa sẽ rất lớn.
2. DPCM vòng đóng ( Closed-loop DPCM)

Hình 7 Closed-loop DPCM
Với cách bố trí như trong sơ đồ ta có

Như vậy sai số lượng tử hóa đã không có sự tích lũy (accumulation) sau mỗi vòng
lặp =>
giảm được đáng kể sai số lượng tử hóa.
3. DPCM tuyến tính
7


Hình 7 : DPCM với Linear Pridiction
Cả 2 phương pháp Open-loop DPCM và Closed-loop DPCM ở trên đều có
chung một cách tính sự sai khác. Đó là tính sự sai khác của mẫu hiện tại chỉ dựa
trên mẫu dự đoán của tín hiệu đứng ngay trước nó. Nếu như có thể tính sự sai khác
từ tất cả các mẫu dự đoán trước mẫu hiện tại thì sai số lượng tử hóa còn được giảm
xuống nữa. Như vậy sẽ đạt được độ nén cao hơn. Đây chính là ý tưởng của phương
pháp DPCM dùng bộ dự đoán tuyến tính (Linear Pridection).
DPCM sử dụng hàm P(Z) được xác định bẳng tổng của tất cả các mẫu dự
đoán tính đến thời điểm đang xét. Vì sử dụng hàm tuyến tính nên P(Z) sẽ có dạng

8


PHẦN 2:


VAI TRÒ VÀ CÔNG NGHỆ
CÁC BỘ DỰ ĐOÁN VÀ CÁC BỘ LƯỢNG TỬ HÓA

I. Bộ dự đoán
1. Bộ dự đoán sai số

Công nghệ DPCM thực hiện loại bỏ tính có nhớ và các thông tin dư thừa của
nguồn tín hiệu bằng một bộ lọc đặc biệt có đáp ứng đầu ra là hiệu số giữa mẫu đầu
vào và giá trị dự đoán của chính nó. Rất nhiều giá trị vi sai này gần 0 nếu các điểm
ảnh biến đổi đồng đều. Còn với ảnh có nhiều chi tiết, giá trị sai số dự đoán có thể
lớn. Khi đó có thể lượng tử hoá chúng bằng bước lượng tử cao hơn do đặc điểm
của mắt người không nhạy cảm với những chi tiết có độ tương phản cao, thay đổi
nhanh. Sự giảm tốc độ bit ở đây thu được từ quá trình lượng tử hoá và mã hoá.
2. Kỹ thuật dự đoán
Nếu trực tiếp lượng tử hoá và mã hoá các mẫu của một nguồn ảnh với đầy
đủ thông tin dư thừa và quan hệ tương hỗ giữa các điểm ảnh thì hiệu suất nén sẽ rất
thấp do lượng thông tin của nguồn quá lớn. Do vậy trong các công nghệ nén, cần
loại bỏ đi tính có nhớ của nguồn tín hiệu, tức thực hiện “giải tương hỗ”
(deccorelation) giữa các mẫu điểm lân cận nhau. Trong công nghệ nén “điều xung
mã vi sai” DPCM, quá trình giải tương hỗ được thực hiện bằng một bộ lọc có đáp
9


ứng đầu ra là hiệu số giữa các mẫu điểm liên tiếp đầu vào và một giá trị “dự đoán”
của mẫu điểm đó tạo được dựa trên giá trị các mẫu lân cận theo một qui luật nhất
định.
Sai số dự đoán: Bộ tạo dự đoán có nhiệm vụ tạo ra giá trị điểm tiếp theo từ giá trị
các điểm đã truyền tải trước đó được lưu trữ. Quá trình tạo dự đoán càng tốt thì sự
sai khác giữa giá trị thực của mẫu hiện hành và trị dự đoán cho nó (gọi là sai số dự
đoán) càng nhỏ. Khi đó, tốc độ dòng bit càng được giảm nhiều. Phân biệt giữa sai

số dự đoán và sai số lượng tử như đã trình bày ở phần trên
3. Ảnh hưởng của bộ dự đoán đến chất lượng nén
Kỹ thuật nén ảnh số đang đóng một vai trò cực kỳ quan trọng trong các hệ thống
viễn thông và multimedia để giải quyết vấn đề băng thông của đường truyền.
Các kỹ thuật nén video đều cố gắng làm giảm lượng thông tin cần thiết cho
một chuỗi các bức ảnh mà không làm giảm chất lượng của nó đối với người xem.
Nói chung, tín hiệu video thường chứa đựng một lượng lớn các thông tin thừa,
chúng thường được chia thành hai loại: thừa tĩnh bên trong từng frame (statistical)
và thừa động giữa các frame (subjective). Mục đích của nén video là nhằm làm
giảm số bit khi lưu trữ và khi truyền bằng cách phát hiện để loại bỏ các lượng
thông tin dư thừa này và dùng các kỹ thuật Entropy mã hoá để tối thiểu hoá lượng
tin quan trọng cần giữ lại. Và bộ dự đoán là một phần quan trọng trong việc tối ưu
hóa chất lượng nén video
Như đã giới thiệu trong kỹ thuật nén video DPCM, ảnh hưởng của bộ dự
đoán đến chất lượng nén video chính là sai số dự đoán (prediction error) mà bộ dự
đoán tạo ra. Sai số này quyết định hiệu suất cũng như chất lượng nén.
Video về bản chất là những khung ảnh có quan hệ về thời gian, vậy nên xử
lý nén video cũng là xử lý trên từng khung hình riêng biệt. Giá trị của điểm ảnh có
thể được dự đoán từ giá trị hàng xóm lân cận.
Các kỹ thuật dự đoán thường dùng là dự đoán một chiều (1-dimensional
prediction) và dự đoán hai chiều (2- dimensional prediction).

10


Trong dự đoán một chiều, thứ tự của các điểm ảnh có giá trị tượng tự sẽ
được tìm thấy cùng một hàng hay cột của hình ảnh. Còn trong dự đoán 2 chiều sẽ
gồm có dự đoán hàng và cột.

Sự ảnh hưởng tới chất lượng ảnh của các kiểu dự đoán trên có thể được thấy

khá rõ qua các ví dụ dưới đây:

11


Ta thấy như ảnh trên thì giá trị điểm ảnh ban đầu được ký hiệu s[x,y]. Với
dự đoán một chiều theo chiều ngang (horizontal – uH[x,y]) có thể thấy dự đoán
này cho giá trị tốt với phần ảnh có rìa theo chiều ngang. Phần ảnh có rìa đứng (theo
chiều ngang giá trị điểm ảnh biến đổi nhiều) thì sai số tạo ra sẽ lớn (nổi rõ hơn và
khác nhiều hơn so với phần ảnh có rìa theo chiều ngang).
Cũng tương tự khi quan sát ảnh được dự đoán một chiều theo chiều
dọc (vertical – uV[x,y]), các phần ảnh có rìa theo chiều dọc mờ hơn và gần đúng
với giá trị ảnh gốc hơn là các phần ảnh có rìa hướng theo chiều ngang.
Cuối cùng là ảnh dự đoán hai chiều (2-dimensional – uD[x,y]), ta có
thể thấy được sự đồng nhất tương đối giữa cả phần ảnh chiều ngang và dọc.
Ví dụ với một bức ảnh khác:

12


Quá trình tạo dự đoán luôn tồn tại một sai số dự đoán nào đó.

Chất lượng nén không đơn thuần dựa vào sai số dự đoán trong quá trình mã
hóa, nó còn phụ thuộc quá trình tái tạo các tín hiệu dự đoán ở bộ giải mã. Quá trình
nén còn được thực hiện cả trong quá trình lượng tử hóa và hiệu quả nén cũngđược
quyết định bởi cách lượng tử hóa mẫu tín hiệu ban đầu.

13



Khả năng dự đoán tốt sẽ giảm số bít phải truyền đi, ngược lại khả năng dự
báo kém sẽ khiến cho số lượng bít phải truyền tăng lên, ảnh hưởng tới hiệu suất
nén. Một số lỗi với sai số dự đoán làm giảm chất lượng ảnh sau sau khi khôi phục:

Hình 22. Nhiễu hạt

14


Với số bit khác nhau:

II.

Bộ lượng tử hóa và ảnh hưởng của bộ lượng tử hóa đến chất lượng nén
video
15


Lượng tử hóa là ánh xạ không tuyến tính có tổn hao từ khoảng biểu diễn liên
tục biên độ tín hiệu vào khoảng biểu diễn bởi các giá trị rời rạc của các mức giá trị
hay các từ mã.
Với R bits chúng ta có thể biểu diễn 2R mã khác nhau trên mỗi mẫu, mỗi mã
có thể biểu diễn một mức biên độ của tín hiệu. Biên độ của tín hiệu có cả giá trị âm
và dương do đó chúng ta phải định nghĩa mã để miêu tả cả giá trị biên độ âm và
dương. Chúng ta chọn các giá trị điển hình sao cho ở đó có sự cân bằng các mức
lượng tử cho cả giá trị âm và dương. Có hai cách chọn: Chọn sử dụng có mức
lượng tử bằng không (midtread) hoặc không có mức lượng tử bằng không
(midrise). “Midrise” không có mức không do vậy với một tín hiệu đầu vào sẽ cho
một số chẵn mức lượng tử ở đầu ra. Ngược lại lượng tử hóa “midtread” sẽ cho ra
một số lẻ mức lượng tử ở đầu ra. Với R bits thì lượng tử hóa “midtread” sẽ cho 2R1 giá trị khác nhau ngược lại lượng tử hóa “midrise” cho 2R mã. Mặc dù cho số

mức lượng tử nhỏ hơn nhưng lượng tử hóa “midtread” trong quá trình xử lý tín
hiệu audio cho kết quả tốt hơn

1. Lượng tử hóa tuyến tính
Lượng tử hóa tuyến tính là một kiểu lượng tử hóa đơn giản nhất. Lượng tử
hóa tuyến tính là lượng tử với các mức lượng tử bằng nhau. Trong một kiểu lượng
tử, phạm vi giá trị đầu vào là một số được biểu diễn bằng ký pháp nhị phân và mã
cho một tín hiệu đầu ra là một số nhị phân trong khoảng mà giá trị đầu vào rơi vào.
Để định nghĩa phạm vi và mức lượng tử chúng ta cần các thông tin sau:
- lượng tử hóa theo kiểu “midtread” hay “midrise”
- giá trị lớn nhất của giá trị đầu vào xmax
- mức lượng tử Δ
16


Thành phần dữ liệu thứ ba định nghĩa số bits cần thiết để biểu diễn một mã
ví dụ như R bít cho phép chúng ta biểu diễn 2mũR mã khác nhau. Với kiểu lượng
tử hóa “midrise”, R bits cho phép chúng ta một tập các phạm vi đầu vào là
Δ=2*xmax/2R
Kiểu lượng tử hóa “midtread” sẽ có phạm vi lớn hơn một chút là =2*xmax/(2R
-1)
Khoảng giá trị đầu vào là tử -xmax đến xmax, vậy điều gì sẽ xẩy ra khi giá
trị đầu vào vượt quá khoảng này? Với các giá trị cao hơn giá trị cao nhất của
khoảng thì sẽ được gán giá trị bằng giá trị cao nhất của khoảng, còn các giá trị nhỏ
hơn giá trị nhỏ nhất của khoảng thì sẽ được gán giá trị bằng giá trị nhỏ nhất của
khoảng.
Midrise quantizers

Hình trên minh họa lượng tử hóa tuyến tính kiểu “midrise” 2 bits. Phía tay
trái của hình biểu diễn khoảng biên độ đầu vào từ -1 đến 1. Từ 2 bits lượng tử hóa

midrise, chúng ta có thể chia khoảng giá trị đầu vào thành 4 mức. Như đã biết thì 4
mức này sẽ có độ rộng bằng nhau. Mỗi mức được biểu diễn bằng giá trị nhị phân
tương ứng: [11], [10], [00], [01] lần lượt tương ứng với các giá trị -1, -0. +0, +1.
17


Chúng ta đã lượng tử hóa tín hiệu đầu vào với 2 bits mã, chúng ta cũng có
thể chuyển đổi chúng về dạng biên độ của tín hiệu. Ví dụ với mức [00] là mức nằm
trong khoảng biên độ từ 0.0 đến 0.5 của tín hiệu đầu vào. Giả sử rằng các giá trị
biên độ được phân bố đều trong mỗi khoảng, chọn mức đầu ra với mức lỗi
nhỏ nhất sẽ là giá trị trung tâm của khoảng nghĩa là 0.25. Do đó các mã [11],
[10], [00], [01] sẽ lần lượt là -0.75, -0.25, 0.25, 0.75
Lượng tử hóa tuyến tính kiểu midrise với nhiều hơn 2 bits cũng được làm tương tự.
Giải thuật lượng tử hóa và lượng tử hóa ngược đối với lượng tử hóa
tuyến tính kiểu Midrise R bit
Ví dụ: biên độ đầu vào là 0.6 thì sau quá trình lượng tử 2 bits sẽ là
INT (2*0.6) = INT (1.2) =1
Ta chuyển đổi ngược lại sẽ là
(1+ 0.5)/2 = 1.512 = 0.75
Như vậy ta thấy có một khoảng chênh lệch giữa biên độ của tín hiệu ban đầu
và biên độ của tín hiệu sau khi được khôi phục lại.
Midtread quantizers

18


Hình trên minh họa lượng tử hóa tuyến tính kiểu midtread 2 bits. Với 2 bits
chúng ta chỉ biểu diễn được 3 mức biên độ của tín hiệu đầu vào. Có nghĩa là chúng
ta chỉ có thể chia khoảng giá trị đầu vào thành 3 mức đo đó sẽ có độ rộng lớn hơn
so với trường hợp của midrise. Các mức chúng ta có là [11], [00], [01] lần lượt

tương ứng với các giá trị -1, 0, +1, và mã [10] không được sử dụng. Giá trị lượng
tử hóa ngược vẫn là trung tâm của khoảng giá trị trong trường hợp này sẽ lần lượt
là -2/3, 0, và +2/3. Chú ý rằng giá trị 0 vẫn được giữ. Tín hiệu audio thường có
khoảng lặng do đó lượng tử hóa có thể biểu diễn tín hiệu với biên độ bằng 0 rất
phù hợp trong xử lý tín hiệu audio.
Giải thuật lượng tử hóa và lượng tử hóa ngược đối với lượng tử hóa tuyến
tính kiểu Midtread R bit.
Ví dụ: biên độ đầu vào là 0.6 thì sau quá trình lượng tử 2 bits sẽ là
INT ((3*0.6+1)/2) = INT (1.4) =1
Ta chuyển đổi ngược lại sẽ là
2*1/3 = 2/3
Như vậy ta thấy có một khoảng chênh lệch giữa biên độ của tín hiệu ban đầu
và biên độ của tín hiệu sau khi được khôi phục lại. Lượng tử hóa tuyến tính có giá
trị làm tròn lỗi lớn nhất bằng nửa độ rộng của khoảng giá trị tại mọi nơi, mức đầu
vào không tải chồng. Tuy nhiên lỗi này sẽ chở nên nghiêm trọng đối với các tín
hiệu có biên độ nhỏ.
2. Lượng tử hóa phi tuyến
Lượng tử với các bước lượng tử không yêu cầu phải bằng nhau, với
độ rộng của mỗi bước thay đổi tương ứng với biên độ của tín hiệu đầu vào gọi là
lượng tử hóa phi tuyến.
Lượng tử hóa phi tuyến thường sử dụng phương thức co giãn.
Trong phương thức co giãn, có một đầu vào x được truyền vào thông qua
một hàm đơn điệu tăng
y = c(x)
Lượng tử hóa ngược sẽ được thực hiện:
x’=c-1(y’)
19


Trong đó hàm c(x) không đối xứng xung quanh x=0 do đó giá trị x âm sẽ

được biểu diễn bằng giá trị âm. Chúng ta có thể định nghĩa c(x) thông qua c(|x|).
Nếu xét tín hiệu đầu vào và lượng tử hóa tuyến tính thì tín hiệu thuộc khoản -1.0
đến 1.0, sau đó dùng hàm co giãn c(|x|) sẽ cho một biểu đồ đầu vào từ 0 đến 1.0
trên khoảng từ 0 đến 1.0. Với yêu cầu c(x) đơn điệu tăng do đó c(x) dễ dàng có thể
đảo ngược lại.
Để có một hình dung về sự co giãn ảnh hưởng như thế nào đến lượng tử hóa,
chúng ta xem kích cỡ của các bước lượng tử thay đổi như thế nào đối với mức tín
hiệu đầu vào x.
Như chúng ta đã biết các bước lượng tử trong lượng tử hóa tuyến tính là đều
nhau. Nếu chúng ta lượng tử sử dụng một lượng lớn các bít thì bước lượng tử sẽ
nhỏ, y=c(x) xấp xỉ tuyến tính và chúng ta có
y(x) ≈ c(x0) + dc/dx(x-x0)
Với x0 cố định trong mỗi mức. Độ rộng trong x của một mức lượng tử được
thu nhỏ bởi tỷ số giữa dc và dx từ độ rộng trong y. Ví dụ, nếu chúng ta chọn một
hàm c(x) có độ dốc cao cho giá trị x nhỏ thì chúng ta có lượng tử hóa nhiễu nhỏ
hơn so với lượng tử hóa tuyến tính. Tuy nhiên, hàm c(|x|) phải chạy tuyến tính từ 0
đến 1.0, độ dốc cao cho giá trị x thấp bao hàm độ dốc thấp hơn và nhiều hơn lượng
tử hóa nhiễu cho các giá trị x cao hơn. Do đó, chúng ta có sử dụng hàm co giãn để
di chuyển lượng tử hóa nhiễu từ biên độ đầu vào thấp đến biên độ đầu vào cao hơn.
Lượng tử hóa phi tuyến có thể được sử dụng để làm giảm tỷ lệ nhiễu trên tạp âm
(SNR)

20


Phần 3:
I.

DPCM TRONG NÉN ẢNH, NÉN AUDIO
VÀ NÉN VIDEO


DPCM trong nén Image sử dụng thuật toán LMS

1. Nguyên tắc
Trong DPCM chúng ta không chỉ truyền tín hiệu hiện tại x(n) mà cả e(n) (sai
khác giữa x(n) và và trị dự đoán của nó y(n)). Tại bộ thu, chúng ta sinh ra y(n) từ
giá trị mẫu trước đó. Tuy nhiên có một khó khăn với lược đồ trên. Tại bộ thu, thay
vì các mẫu trước đó x(n-1), x(n-2),… cũng như e(n), chúng ta có được các tín hiệu
đã được lượng tử hóa xs(n-1), xs(n-2),... nó sẽ làm tăng sai số trong quá trình xây
dựng lại tín hiệu.
Trong trường họp này, cách tốt nhất để xác định y(n) (dự đoán từ xs(n)) cũng
như từ các mẫu lượng tử hóa xs(n-1), xs(n-2),… tại bộ thu, giá trị sai khác e(n) =
x(n) – y(n) sẽ được truyền qua PCM. Tại bộ thu, chúng ta có thể sinh ra y(n) và từ
e(n) ta có thể xây dựng lại xs(n).

Sơ đồ khối cơ bản của DPCM với thuật toán LMS trong hệ thống nén ảnh
Hình trên biểu diễn bộ dự đoán DPCM trong nén ảnh. Đầu vào dự đoán là xs(n) và
đầu ra là y(n). Sự sai khác của dữ liệu ảnh gốc x(n) và dữ liệu ảnh dự đoán y(n)
được gọi là sai số dự đoán e(n).
Vì thế e(n) = x(n) – y(n) được lượng tử hóa thành eq(n) = e(n) + q(n) với q(n) là sai
số lượng tử hóa, e(n) là tín hiệu được lượng tử hóa. Khi đó q(n) = eq(n) - e(n).
Đầu ra dự đoán y(n) sẽ quay lại bộ dự đoán thành đầu vào nên
xs(n) = y(n) + eq(n) = x(n) - e(n) + eq(n) = x(n) + q(n)
Đầu vào dự đoán đúng là xs(n) như giả thiết. Tín hiệu lượng tử hóa eq(n) lúc này sẽ
được truyền qua kênh.
21


2. Quy trình công nghệ
Khối LMS được biểu diễn trong hình trên. Tín hiệu y(n) khi qua khối LMS

được biểu diễn như sau:
y(n)= wT(n)xs(n)

hay

wk(n) là N hiệp phương sai bộ dự đoán thích nghi, xs(n) là dữ liệu ảnh xây dựng
lại và k là giá trị lựa chọn từ các pixel ảnh trước đó dựa vào dự đoán hiện tại. e(n)
được tính bằng e(n) = x(n) – y(n). Lượng tử hóa sai số này sẽ được gửi tới bộ thu
và được xác đinh bởi eq(n) = e(n) + q(n).

Quá trình DPCM trong nén ảnh JPEG
Hình trên là một ví dụ về DPCM trong nén ảnh JPEG. Khối DPCM được dùng
để mã hóa các thành phần DC của khối DC sau quá trình lượng tử hóa.
II.

ADPCM trong nén âm thanh (theo chuẩn G.726)

1. Nguyên tắc
Điều chế mã sung vi sai thích ứng (ADPCM) là một biến thể của DPCM cho
phép thay đổi kích thước của các bước lượng tử, cho phép giảm thêm nữa trong
những băng thông cần thiết với một tỷ lệ signal-to-noise cho trước.

22


Về cơ bản, sự thích nghi với các thống kê về tín hiệu trong ADPCM đơn giản
bao gồm một hệ số mức thích nghi trước khi lượng tử hóa sự sai khác trong bộ mã
hóa DPCM.
ADPCM được phát triển vào đầu những năm 1970 tại phòng thí nghiệm Bell
Labs để mã hóa tiếng nói.

2. Quy trình công nghệ

Hình 9: Lược đồ của DPCM trong nén audio chuẩn G.726

Hình 10: Sơ đồ khối nén audio chuẩn G.926
Đầu tiên các tín hiệu vào sẽ được mã hóa bằng phương pháp điều chế xung mã
PCM, mã hóa trực tiếp tín hiệu lấy mẫu tiếng nói, âm thanh với các luật lượng tử
hóa µ-law và a-law. Các tín hiệu điều chế bởi PCM s(k) sẽ được chuyển đổi thành
tín hiệu PCM đồng đều sl(k).
23


Các tín hiệu PCM đồng đều sẽ được mã hóa bởi ít bit hơn để có thể nén. Để làm
được điều này, chúng ta sẽ mã hóa các tín hiệu sai khác, thay vì mã hóa tín hiệu tín
hiệu gốc. Các tín hiệu sai khác này sẽ được tính toán và được lượng tử hóa. Tín
hiệu sai khác là sự chênh lệch giữa mẫu hiện tại và mẫu trước đó. Tín hiệu sai khác
là sự chênh lệch giữa mẫu hiện tại và mẫu trước đó sẽ được tính theo công thức
d(k) = sl(k) - se(k)
Bộ lượng tử hóa có thể là bộ lượng tử hóa tuyến tính hoặc phi tuyến tính. Bộ
lượng tử hóa tuyến tính ít được sử dụng hơn vì các tín hiệu audio thường biến thiên
rời rạc. Cũng do sự biến thiên tín hiệu audio là không đồng đều nên bộ lượng tử
hóa phi tuyến tính thích nghi sẽ được chia thành các bộ lượng tử hóa thích nghi
mức 31, 15, 7, 4. Các bộ lượng tử hóa này tương ứng sẽ lượng tử hóa cho các tín
hiệu sai khác hoạt động ở 40, 32, 24 hay 16 Kbps. Tín hiệu ra của d(k) qua bộ
lượng tử hóa là I(k).
Tín hiệu sai khác sau khi được lượng tử hóa I(k) sẽ được đưa vào bộ lượng tử
hóa thích nghi nghịch đảo nhằm chuyển đổi về dạng ban đầu dq(k).
Bộ dự đoán thích nghi sẽ dự đoán mẫu dự đoán se(k) từ tín hiệu sai khác dq(k)
và tín hiệu xây dựng lại sr(k). Nó tiếp tục sẽ là đầu vào để tính toán sự chênh lệch
tín hiệu so với đầu vào hiện tại.

Quá trình dự đoán kết thúc sau khi xử lý xong tín hiệu đầu vào.
III.

DMPC trong nén video (chuẩn MPEG)

1. Nguyên tắc
Trên lý thuyết, video là tập hợp các ảnh hiện thị liên tiếp nhau về mặt thời gian
gọi là các frame. DCPM sử dụng trong nén video chủ yếu là dùng để mã hóa dự
đoán các frame I, B, P.
2. Quy trình công nghệ
- Nén frame I: DPCM trong nén frame I chính là DPCM trongn nén JPEG

24


- Nén frame P, B:
Mã hóa dự đoán DPCM trong nén frame P và frame B được sử dụng trong
quá trình đánh giá ước lượng chuyển động.

25


×