Các thông tin tần số cao có thể bị loại bỏ mà không làm mất mát thông tin quan sát vì mắt người không cảm nhận được những hiệu ứng do các thành phần tần số cao mang lại Cosin rời rạc -
Trang 1DỮ LIỆU ĐA PHƯƠNG TIỆN
Part 2: Các giải thuật nén
GV: TS Đinh Đồng Lưỡng
Trang 2 Vấn đề: Dữ liệu đa phương tiện thường có kích thước rất lớn
Dữ liệu văn bản (text)
1 page with 80 characters/line and 64 lines/page and 1 byte/char results in 80 *
64 * 1 * 8 = 41 kbit/page
Dữ liệu ảnh (Still image)
24 bits/pixel, 1280 x 728 pixel/image results in 1280 x 728 x 24 bit color ≈ 22Mbit
Dữ liệu âm thanh (audio)
CD quality, sampling rate 44,1 KHz, 16 bits per sample results in 44,1 x 16 = 706
kbit/s
Stereo: 1,412 Mbit/s
Dữ liệu ảnh động và âm thanh
Full-size frame 1024 x 768 pixel/frame, 24 bits/pixel, 30 frames/s results in 1024 x
768 x 24 x 30 = 566 Mbit/s
More realistic: 360 x 240 pixel/frame, 360 x 240 x 24 x 30 = 60 Mbit/s
=> Cần giảm kích thước dữ liệu này khi lưu trữ cũng như truyền thông
Mục đích nén dữ liệu
Trang 3Minh họa
Trang 4Nén không mất mát thông tin (Lossless Compression)
The original object can be reconstructed perfectly
Compression rates of 2:1 to 50:1 are typical
Example: Huffman coding
Nén có mất mát thông tin (Lossy Compression)
There is a difference between the original object and the
Trang 5Lossless Compression
Trang 7Some algorithms: Lossless compression
Run length Coding (RLC)
Huffman
Lempel Ziv – Wench (LZW)
Trang 8Run Length Coding
Trang 9Run Length Coding for Binary Files
When dealing with binary files we are sure that a run of “1“s is always followed by a run of “0“s and vice versa It is thus sufficient to store the repetition counters only!
Trang 10Variable Length Coding
Classical character codes use the same number of bits for each character When the frequency of occurrence is different for different characters, we can use fewer bits for frequent characters and more bits for rare characters
Trang 12Huffman Code
Now the question arises how we can find the best variable-length code for
given character frequencies (or probabilities) The algorithm that solves this problem was found by David Huffman in 1952
Algorithm Generate-Huffman-Code
Determine the frequencies of the characters and mark the leaf nodes of a binary tree (to be built) with them
Out of the tree nodes not yet marked as DONE, take the two with the
smallest frequencies and compute their sum
Create a parent node for them and mark it with the sum Mark the branch
to the left son with 0, the one to the right son with 1
Mark the two son nodes as DONE When there is only one node not yet marked as DONE, stop (the tree is complete) Otherwise, continue with step 1
Trang 13Huffman Code, Comments
A very good code for many practical purposes
Can only be used when the frequencies (or probabilities)
of the characters are known in advance
Variation: Determine the character frequencies separately for each new document and store/transmit the code
tree/table with the data
Trang 14 The word “lecture“ is found on page x4, line y4 of the
dictionary It can thus be en-coded as (x4,y4)
A sentence such as “this is a lecture” could perhaps be
encoded as a sequence of tuples (x1,y1) (x2,y2) (x3,y3) (x4,y4)
Trang 15Dictionary-Based Coding Techniques
Static techniques
The dictionary exists before a string is encoded It is not changed, neither in the
encoding nor in the decoding process
Dynamic techniques
The dictionary is created “on the fly“ during the encoding process, at the sending (and sometimes also at the receiving) side
Lempel and Ziv have proposed an especially bright dynamic, dictionary-based
technique (1977) Variations of this techniques are used very widely today for
lossless compression An example is LZW (Lempel/Ziv/Welch) which is invoked with
the Unix compress command
The well-known TIFF format (Tag Image File Format) is also based on Lempel-Ziv compression
Trang 16Ziv-Lempel Coding, the Principle
Idea (pretty bright!)
The current piece of the message can be encoded as a reference to an earlier (identical) piece of the message This reference will usually be shorter than the piece itself As the message is processed, the dictionary is created dynamically!
LZW Algorithm
InitializeStringTable();
WriteCode(ClearCode);
= the empty string;
for each character in string {
Trang 21LZW, Properties
The dictionary is created dynamically during the encoding and decoding process
It is neither stored nor transmitted!
The dictionary adapts dynamically to the properties of the character string
With length N of the original message, the encoding process is of complexity
O(N) With length M of the encoded message, the decoding process is of
complexity O(M) These are thus very efficient processes Since several
characters of the input alphabet are combined into one character of the code, M
<= N
Trang 22Typical Compression Rates
Typical examples of file sizes in % of the original size
Type of file Encoded with
Huffman
Encoded with Lempel-Ziv
C source code 65 % 45 %
machine code 80 % 55 %
Trang 23Huffman Code, Example
Probabilities of the characters:
C D E
0
0
0 60%
10%
15%
15%
11 10
011 010 00
Characters with higher probabilities are closer to the root of the tree and thus have shorter codeword lengths; thus it is a good code It is even the best possible code!
Trang 24Example
Trang 27• Lossless compression is often applied in combination with other compression
tech-niques
Trang 29Lossy Compression
Trang 30"Joint Photographic Expert Group" Voted as international standard in 1992
medical,
compression
quality
several algorithms and user-settings
Nén ảnh: JPEG
Trang 31Các thông tin tần số cao có thể bị loại bỏ mà không làm mất mát thông tin quan sát vì mắt người không cảm nhận được những hiệu ứng do các thành phần tần số cao mang lại
Cosin rời rạc - Discrete Cosine Transform (DCT)
kích thước 8 × 8
vì số các hệ số của DCT cũng bằng tổng số pixel của khối (64)
để biểu diễn các hệ số DCT sẽ giảm đi Việc lượng tử hỏa sẽ làm biến mất một số thông tin
Ý tưởng
Trang 32Qui trình nén ảnh JPEG
Trang 338x8 8x8
Trang 34Minh họa
Original image
512 x 512 x 8 bits = 2,097,152 bits JPEG
27:1 reduction =77,673 bits
JPEG 27:1
Trang 36Là một định dạng tập tin hình ảnh bitmap cho các hình ảnh dùng ít hơn 256 màu sắc khác nhau và các hoạt hình dùng ít hơn 256 màu cho mỗi khung hình
hình ảnh qua đường truyền lưu lượng nhỏ
và nhanh chóng được dùng rộng rãi trên World Wide Web cho đến nay
GIF (Graphics Interchange Format)
Trang 37Là một dạng hình ảnh sử dụng phương pháp nén dữ liệu mới
- không làm mất đi dữ liệu gốc
GIF với một định dạng hình ảnh không đòi hỏi phải có giấy phép sáng chế khi sử dụng
viện nền tảng độc lập bao gồm các hàm của C để quản lý các hình ảnh PNG
PNG (Portable Network Graphics)
Trang 38Là một trong những phương pháp nén ảnh hiệu quả, có tỷ lệ nén ảnh tới vài chục lần
lượng ảnh bị suy giảm sau khi giải nén Sự suy giảm này tăng dần theo hệ số nén
loại bỏ những thông tin không cần thiết được dựa trên những nghiên cứu về hệ nhãn thị của mắt người
.jpg, JPG, hay JPE; dạng jpg là dạng được dùng phổ biến nhất
cũng như những trang thiết bị lưu giữ có dung lượng nhỏ
JPEG (Joint Photographic Experts Group )
Trang 39TIFF là định dạng mở rộng của ảnh, thường sử dụng trong việc lưu trữ ảnh số không nén
TIFF
Trang 40Trong đồ họa máy vi tính, BMP, còn được biết đến với tên
tiếng Anh khác là Windows bitmap, là một định dạng tập tin
hình ảnh khá phổ biến
.BMP hoặc DIB (Device Independent Bitmap)
BMP ( Bitmap)
Trang 41Nén video
Trang 42Ước lượng chuyển động (motion estimation) được thực hiện
trên những dạng khung hình khác nhau Độ tương quan giữa các khung hình được xác định dựa trên véc tơ chuyển động
(motion vector)
chất lượng video tốt
có kích thước 16x16 điểm ảnh Kích thước khối ảnh nhỏ tăng
độ chính xác của ước lượng chuyển động nhưng độ phức tạp của tính toán cao
chuyển động giữa hai khung hình lớn hơn ngưỡng cho trước
Phương pháp ước lượng chuyển động
Trang 43Kỹ thuật đối sánh khối ảnh (Block Matching) được dùng để
ước lượng chuyển động
khối ảnh nằm trong khu vực tìm kiếm của khung hình trước
đó
chuyển động thường diễn ra theo phương ngang
chói, tuy nhiên thông tin màu có thể thêm vào để tăng độ chính xác của phép ước lượng
Phương pháp ước lượng chuyển động
Trang 44 Phương pháp ước đoán bù chuyển động : giả thiết ảnh hiện tại là một phép biến đổi từ ảnh trước đó, nghĩa là biên độ và hướng dịch chuyển không cần thiết phải giống ảnh trước đó
Phương pháp nội suy bù chuyển động là kỹ thuật nhiều độ phân giải: chỉ mã hoá một tín hiệu phụ với độ phân giải thấp (khoảng 1/2 đến 1/3 tốc độ khung) Ảnh có độ phân giải đầy đủ sẽ được xây dựng lại qua nội suy ảnh có độ phân giải thấp cộng thêm thành phần sửa sai Đơn vị xử lý ảnh mà MPEG sử dụng là macroblock (MB) 16X 16 điểm ảnh
Phương pháp nén bù chuyển động
Trang 45Minh họa
Trang 46Thứ tự khung nhìn trong MPEG
Trang 47Chuẩn MPEG-4
Trang 48Nén có tổn thất
LCP(Linear Predictive Coding)
CELP (Code Excited Linear Predictor)
Hệ thống nghe và phát âm của con người
Che tần số
Băng giới hạn
Che nhất thời
Các giải thuật nén âm thanh
Trang 49MP3 là nhóm MPEG-1 lớp 3 cung cấp chất lượng audio gần giống với chất lượng CD ở tốc độ bit thấp
44,1kHz; 48kHz; tốc độ bit có thể thay đổi từ 32 đến
448kbps
Nén MP3
Trang 50Mã hóa audio cảm quan là kỹ thuật lợi dụng những đặc điểm cảm quan của tai người để đạt được tỉ lệ nén cao với chất
lượng tốt
Trang 51Bộ mã hóa MP3
Trang 52Các bước giải thuật nén
sub-band theo tần số, tương ứng với 32 băng giới hạn lọc sub-band
cận bằng các kết qủa bước 1 mô hình âm - tâm lý
không mã hóa nó
nhiễu sinh ra bởi việc lượng tử hóa này thấp hơn đường cong che
Trang 53Mức to ở band 7 là 10dB (<12dB) nên bị bỏ qua, không mã hóa
Mức to band 9 là 35 (> 15dB) nên được tiếp tục xử lý
Layer I: bộ lọc loại DCT với 1 frame và độ rộng tần số như nhau trên mỗi
sub-band Mô hình âm-tâm lý chỉ sử dụng hiệu quả che tần số (Frequency
masking)
Layer II: sử dụng 3 frame trong bộ lọc (trước, hiện tại và kế tiếp, tổng cộng
1152 mẫu) Mô hình âm-tâm lý có sử dụng hiệu quả che nhất thời (Temporal masking)
Layer III: dùng bộ lọc băng giới hạn tốt hơn, mô hình âm-tâm lý có sử dụng
hiệu quả che nhất thời, và có dùng bộ mã hoá Huffman
Trang 54Mã hóa dự đoán tuyến tính LPC
Trang 55Mối quan hệ giữa mô hình phát âm và LPC