1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mã hóa dự đoán, kỹ thuật DPCM và ứng dụng

28 936 16

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 1,64 MB

Nội dung

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

Trang 1

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 BÀI TẬP LỚN

XỬ LÝ DỮ LIỆU ĐA PHƯƠNG TIỆN

Đề tài: Mã hóa dự đoán Kỹ thuật DPCM và ứng dụng

Giáo viên hướng dẫn: PGS.TS Nguyễn Thị Hoàng Lan

Sinh viên: Vũ Ngọc Bình - 20111178

Nguyễn Thành Trung - 20112384 Đinh Hải Anh – 20111106

Nguyễn Huy Lăng – 20121966

Trang 2

Hà Nội, 5-2016

MỤC LỤC

Trang 3

Phần 1: Phương Pháp Mã Hóa DPCM

Đ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

Trang 4

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.

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

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

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á

Trang 5

• 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

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

Trang 6

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

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

Hình 5 Open-loop DPCMGọ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) :

Trang 8

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

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ẽ

Trang 9

đạ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

Trang 10

Phần 2: Bộ Dự Đoán Và Bộ Lượng Tử Hóa Trong DPCM

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 ứng đầu ra là hiệu số giữa các mẫu điểm

Trang 11

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)

Trang 12

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:

Trang 13

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:

Trang 14

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

Trang 15

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

Trang 16

Với số bit khác nhau:

Trang 17

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

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 2R-1 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”

Trang 18

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

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á

Trang 19

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à

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

Trang 20

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à

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

Để 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

Trang 21

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ó

sử dụng để làm giảm tỷ lệ nhiễu trên tạp âm (SNR)

Trang 22

Phần 3: Thuật Toán DPCM Áp Dụng Mã Hóa

Thành Phần DC Trong Nén Ảnh JPEG

Quy trình nén ảnh JPEG:

b1: Biến đổi ảnh từ bộ màu RGB thành bộ màu YUV (hoặc YIQ) và chia ảnh thành các

block (khối điểm ảnh – ví dụ 8x8 như sơ đồ trên)

b2: Thực hiện biến đổi cosi rời rạc (DCT) trên các khối điểm ảnh.

b3: Lượng tử hóa và sắp xếp zig-zag ta thu được thành phần DC và thành phần AC mang

hầu hết thông tin chứa trong ảnh gốc Trong đó, DC là thành phần quan trọng nhất mang

độ chói trung bình của ảnh, thành phần AC chứa các thông tin về chi tiết của ảnh

- Thành phần AC được thực hiện mã hóa RLC

- Thành phần DC sẽ được thực hiện mã hóa theo DPCM

Nhận xét: Trong nén ảnh JPEG mã hóa dự đoán DPCM được áp dụng để mã hóa

thành phần DC của ảnh Phương pháp mã hóa này được sử dụng là do thành phần DC trong JPEG là lớn và khác nhau, các thành phần DC kế tiếp thường gần bằng nhau Vì vậy độ tương quan giữa mẫu hiện tại và mẫu ở thời điểm trước là lớn Nên áp dụng

Trang 23

phương pháp mã hóa dự đoán DPCM để mã hóa thành phần DC sẽ mang lại tỉ số nén cao

II Thuật toán DPCM áp dụng mã hóa thành phần DC

Thuật toán sử dụng phương pháp mã hóa DPCM vòng mở (Open-loop DPCM) để mã hóa các thành phần DC

Đầu vào: thành phần DC

Đầu ra: các từ mã

Thuật toán DPCM áp dụng mã hóa thành phần DC được mô tả bởi các bước:

B1: Cho tín hiệu DC[1] đi qua

B2: d[1] = DC[1], gán i = 2

B3: Nếu i <= N(là số lượng thành phần DC) thì đi đến B4 Ngược lại i>N thì đi đến B6

B4: Tính sai khác giữa 2 mẫu liên tiếp d[i] = DC[i] – DC[i-1] đi đến B5

B5: i = i+1 quay lại B3

B6: Lượng tử hóa dãy d[n] đi đến B7

B7: Mã hóa và kết thúc.

Trang 24

Sơ đồ khối thuật toán DPCM áp dụng mã hóa thành phần DC trong nén ảnh JPEG

III Đánh giá nhận xet thuật toán DPCM áp dụng trong nén ảnh

Ngày đăng: 08/06/2016, 23:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w