JPEG - viết tắt của nhóm từ Joint Photographic Experts Group. Nó được CCITT(International Telegraph and Telephone Consultative Committee) công nhận và đã được công nhận là chuẩn ISO năm 1991. Nó có các đặc điểm sau:
1. Tỷ lệ nén cao
2. sử dụng nhiều tham số để hiệu chỉnh các tỉ lệ nén, chất lượng nén
3. Rất tốt cho các loại ảnh đen trắng và các ảnh có tone thay đổi liên tục
4. Không quá phức tạp cho cả phần mềm và phần cứng.
10 trang |
Chia sẻ: lylyngoc | Lượt xem: 2677 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài 5- Nén Jpeg và nén Mpeg, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
BÀI 5- NÉN JPEG VÀ NÉN MPEG
Ở phần trên chúng ta đã tìm hiểu một số phép biến đổi toán học là cơ sở cho các kỹ thuật nén ảnh, sử dụng nhiều trong nén dữ liệu video. Phần này chúng ta xem xét một số kỹ thuật nén ảnh được sử dụng phổ biến hiện nay
I – KỸ THUẬT NÉN ẢNH JPEG
JPEG - viết tắt của nhóm từ Joint Photographic Experts Group. Nó được CCITT(International Telegraph and Telephone Consultative Committee) công nhận và đã được công nhận là chuẩn ISO năm 1991. Nó có các đặc điểm sau:
1. Tỷ lệ nén cao
2. sử dụng nhiều tham số để hiệu chỉnh các tỉ lệ nén, chất lượng nén
3. Rất tốt cho các loại ảnh đen trắng và các ảnh có tone thay đổi liên tục
4. Không quá phức tạp cho cả phần mềm và phần cứng.
Quá trình nén JPEG có thể tóm tắt gồm các bước sau :
Chuyển đổi không gian màu
- Chuyển ảnh từ không gian màu RGB sang không gian màu ( brightness, Hue, Saturation). Lý do mắt người nhận ra những thay đổi nhỏ của thành phần luminance nhưng không nhậy cảm với sự thanh đổi của thành phần chrominance, người ta dựa vào điều này để bỏ bớt dữ liệu của thành phần chrominance . Việc chuyển đổi không gian màu trong Jpeg và Mpeg được thực hiện theo công thức sau :
sử dụng ba tham số Y, Cb, Cr ; Y ứng với brightness (Độ sáng, độ chói) Cb,Cr là hai thành phần ứng với Hue (sắc màu) và Saturation(độ đậm nhạt). với y thuộc khoảng [16, 235], khi đó việc chuyển không gian màu được thực hiện theo công thức sau:
Y = (77/256)R + (150/256)G + (29/256)B,
Cb = −(44/256)R − (87/256)G + (131/256)B + 128,
Cr = (131/256)R − (110/256)G − (21/256)B + 128;
Phép chuyển ngược từ YCbCr theo công thức :
R=Y+1.371(Cr − 128) ;
G=Y − 0.698(Cr − 128) − 0.336(Cb − 128) ;
B=Y+1.732(Cb − 128).
2- Giảm độ phân giải
Sau khi chuyển đổi không gian màu , người ta giảm độ phân giải của ảnh gốc, để làm giảm dữ liệu của thành phần Hue và Saturation. Việc làm này có thể theo các tỉ lệ khác nhau. ví dụ độ phân giải có thể thay đổi theo tỉ lệ 2:1 giữa hàng và cột
3. – Chia ảnh thành các khối 8 x8
Ảnh màu được chia thành các khối 8 x8 , coi khối này là một đơn vị dữ liệu. các đơn vị dữ liệu được nén riêng biệt. Trong trường hợp kích thước ảnh không là bội của 8, ta thêm hàng vào hàng cuối ảnh, thêm cột vào cột cuối bên phải.
4- Thực hiện biến đổi cosin trên sơ đồ zizag
Sử dụng phép biến đổi cosin để biến đổi trên khối 8 x8 ( đơn vị dữ liệu ).
Phép biến đổi dược thực hiện trên mảng 8 x 8 hay trên đơn vị dữ liệu ảnh theo công thức sau :
Khi giải nén sử dụng phép biến đổi cosin ngược theo công thức
5.- Lượng hóa :
Sau khi biến đổi cosin trên các đơn vị dữ liệu ta nhận được dãy có 64 thành phần , các thành phần này gọi là các hệ số lượng tử hay hệ số QC ( quantization coefficient -QC) .Các hệ số QC được làm tròn về dạng số nguyên. Sau đó người sử dụng nhiều khĩ thuật khác nhau để giảm kích thước dữ liệu của các thành phần này. Chẳng hạn kỹ thuật lưu giữ sự sai khác tương đối của các hệ số QC hoặc sử dụng các bảng lượng hóa màu đã được khuyến cáo bởi nhóm Jpeg.
6- Sử dụng kỹ thuật nén
Sử dụng kỹ thuật nén RLE hoặc mã Hufman, mã số học để mã các hệ số QC. Mã số học được coi là kỹ thuật mã tối ưu.
II- Họ chuẩn nén MPEG
MPEG -viết tắt của Moving Pictures Experts Group , nó là tên gọi chỉ nhóm chuyên gia thực hiện dự án nén dữ liệu media. Dự án này được bắt đầu từ năm1988. Kết quả dự án đã được thừa nhận là chuẩn ISO (International Standardization Organization) và chuẩn IEC (International Electrotechnical Committee). Thực chất Mpeg là kỹ thuật nén dữ liệu video, nó được sử dụng để nén ảnh và âm thanh số và đồng bộ hai loại dữ liệu này.
Để có cái nhìn hệ thống về họ chuẩn Mpeg , chúng ta hãy xem xét các phiên bản của họ chuẩn Mpeg. Cho đến nay đã có các phiên bản sau :
-Mpeg-1 :phát triển chuẩn nén dữ liệu multimedia (video, audio) dựa trên mục tiêu là tương tác với CD và thiết bị digital audio broadcasting. Chuẩn này đã rất thành công trong lĩnh vực thương mại trong thời gian qua. Đến nay người ta vẫn dùng Mpeg-1 cho dữ liệu video và được kết hợp với kỹ thuật nén audio MP3.
- Mpeg -2 được dành chủ yếu mục tiêu truyền hình số ( digital television). Các kỹ thuật của nó đáp ứng cho việc nén cởi nén và đồng bộ dữ liệu video trong lĩnh vực truyền hình.
- Mpeg-3 : với mục tiêu nén dữ liệu multimedia tương tác với các đĩa quang có mật độ ghi cao như HDVD ( High-Definition/Density DVD ). Nhưng kết quả thu được không khác biệt nhiều với Mpeg-2 , nên người ta bỏ phiên bản này.
- Mpeg-4 với mục tiêu nhằm vào nén, cởi nén dữ liệu multimedia có tốc độ thấp , cỡ vài nghìn bit trên giây. Nó nhằm vào các thiết bị xử lý multimedia nhỏ, thiết bị cầm tay như video telephones , mobile phone , thiết bị di chuyển nhanh (các thiết bị multimedia đặt trên xe..) nén , cởi nén và truyền nhanh các đoạn video ngắn. Một đặc điểm quan trọng của Mpeg-4 là người ta đã đưa quan điểm xử lý object vào trong quá trình xử lý dữ liệu nhờ đó nó đặt được nền tảng cho các lĩnh vực liên quan phát triển trong tương lai.
Các chuẩn của Mpeg có vai trò rất quyết định đến tốc độ truy cập dữ liệu.
Chuẩn Mpeg-1 có đốc độ 1.5 Mbit/s . Mpeg-2 có tốc độ thấp nhất 10 Mbit/s. Mpeg -4 nhằm vào các thiết bị nhỏ , thiết bị cầm tay nên tốc độ truy cập chỉ đạt tối đa 64 Kbit/s . Để hiểu nguyên lý làm việc của họ chuẩn Mpeg chúng ta sẽ xem xét kỹ thuật nén Mpeg-1.
1- Chuẩn Mpeg-1
Mpeg-1 được thực chất cho dữ liệu video . tài liệu của chuẩn được mô tả trong tài liệu IS1172-2.của tổ chức ISO.
Dưới đây chúng ta sẽ tìm hiểu một số kỹ thuật sử dụng trong Mpeg-1
a - Tỷ lệ nén video của Mpeg-1
Để có thể sử dụng dữ liệu video, Mpeg-1 cần phải đạt tỉ lệ nén bao nhiêu ?
Để dễ hiểu ta xét ví dụ sau :
- Giả sử ảnh video có độ phân giải 360×288
- Độ sâu của ảnh (depth) 24bit/pixel;
- Tốc độ làm tươi ảnh (refresh rate) 24 frame/s
- dữ liệu âm thanh : tốc độ lấy mẫu 44 KHz ; phân giải 16bit/sample; mode stereo.
Khi đó tốc độ đọc phần dữ liệu ảnh là :360×288×24×24 = 59,719,680 bits/s; Tốc độ đọc dữ liệu âm thanh : 2×44,000×16 = 1,408,000 bits/s.
Như vậy để đọc cả âm và hình cần tốc độ khoảng 61.1 Mbit/s. Nếu đọc với tốc độ 1,5 Mbit/s thì hệ số nén cần đạt lớn hơn 40 lần. Ở đây chúng ta chưa tính đến thời gian giải nén. Điều nay giải thích vì sao Mpeg-1 phải có tỉ lệ nén cao, tốc độ giải nén nhanh.
Lưu ý rằng tốc độ đọc vật lý của các ổ đĩa CD là 150 Kbps – đây là tốc độ cơ bản , kí hiệu là x,
b- Mpeg-1 nén dữ liệu nhờ kỹ thuật chuyển đổi không gian màu
Mỗi ảnh trong dãy ảnh video được chuyển từ không gian màu RGB sang không gian màu Y, Cb, Cr trong đó Y ứng với thành phần aluminance , Cb, Cr ứng với Chrominance hai thành phần này tương ứng hue (sắc màu) và saturate (độ đậm nhạt). Dựa vào đặc điểm mắt người không nhạy cảm với sự thay đổi của Cb, Cr , Mpeg-1 lấy độ phân giải của Cb, Cr bằng nửa độ phân giải của Y.
c- Mpeg-1 nén dữ liệu và tạo thành các gói (packet)
Mỗi gói được bắt đầu bằng code gồm 32 bit, tiếp theo là header và kết thúc gói bằng mã endcode 32 bit. ở giữa header và end ode có chứa một số gói.Mỗi gói chứa dữ liệu nén hoặc audio hoặc video. Kích thước của mỗi gói được xác định trước bởi bộ mã Mpeg (MPEG encoder theo yêu cầu lưu trữ hoặc thiết bị truyền đi) , điều này giải thích vì sao một packet không cần đầy đủ các ảnh video, nó có thể là phần nào đó của audio, phần nào đó của ảnh video.Hình H15 dưới đây mô tả cấu trúc dữ liệu nén của Mpeg-1
d - Mpeg-1 giải nén audio và ảnh động riêng biệt
Bộ giải mã Mpeg-1 nhằm khôi phục lại dữ liệu video , nó gồm 3 lớp (layer).
Lớp giải mã ảnh video, lớp giải mã audio và lớp data system. Lớp data system có nhiệm vụ đọc và phân tích dữ liệu trong phần header của các gói , các đường dẫn dẫn đến các gói khác, đồng bộ dữ liệu đã giải nén ở các buffer.
e - Mpeg-1 sử dụng 3 loại ảnh I ,P,B để nén
- Ảnh I (Intra frame, key frame) có thể coi là ảnh gốc, với ảnh này khi giải mã nó không cần lấy thông tin từ ảnh khác;
- Anhr P (predicted picture ) là ảnh khi giải nén nó phải sử dụng thông tin từ các ảnh trước nó, thường nó là nén của ảnh I.
- Ảnh B (Bi –directionaly frame ) là ảnh mà khi giải nén nó phải dùng cả ảnh đứng trước và ảnh sau nó. Ảnh B là ảnh có tỉ lệ nén cao nhất. ví dụ Hình H1
Hình H1
Hình H2Từ khái niệm ảnh I,B,P chúng ta dễ thấy rằng trật tự các ảnh trên đĩa CD khác với trật tự xuất hiện của các ảnh . Trong hình H2 , dãy số ằm ngang là thứ tự ảnh trên đĩa CD, cột số bên phải là thứ thự ảnh khi play.
Khi nén Mpeg sử dụng ba kiểu ảnh I,P, B . Các ảnh này được xếp thành từng nhóm, các nhóm có thể tổ chức thành loại nhóm đóng hoặc nhóm mở (open group, closed group).Nhóm đóng là nhóm mà khi khôi phục ảnh nó chỉ sử dụng các ảnh trong nhóm, nhóm mở là nhóm có thể sử dụng ảnh ở ngoài nhóm để khôi phục lại ảnh. Các anh I,P,B ở đầu vào được sắp xếp theo một trật tự nào đó, sau khi giải nén ta được dãy ảnh mới để hiển thị. Nói chung trật tự hiển thị khác với trật tự vào. Một vùng của ảnh đang xét khi giải mã có thể phải dùng đến các ảnh trước, ảnh sau trong nhóm hoặc ngoài nhóm.
f - Mpeg-1 sử dụng phép biến đổi cosin trong quá trình nén
Mỗi ảnh được Mpeg-1 chia thành các khối cơ bản – gọi là macroblock . Khối cơ bản có kích thước 16 x16, khối này có cùng thành phần luminance.
Mỗi macroblock lại được chia thành 4 khối 8 x 8 (block) và hai khối 8 x 8 cho thành phần chrominance. Các khối này sẽ được biến đổi cosin để lượng hóa và mã hóa.
Quá trình lượng hóa và mã hóa của Mpeg -1 tương tự như Jpeg .
Khi mã hóa Mpeg và Jpeg khác nhau ở bảng mã và cách làm trong về số nguyên . Mpeg sử dụng cách làm tròn về số nguyên gần nhất,
g - Mpeg-1 tổ chức ảnh thành các slice
Mỗi ảnh trong Mpeg được tổ chức thành các slice, mỗi slice gồm một số macroblock liền kề nhau có cùng mức xám, tiêu chuẩn này áp dụng cho các thành phần luminance. Khái niệm slice tương ứng với một vùng rộng của ảnh gồm các macroblock có cùng mức xám.
2 - Chuẩn MPEG-4
MPEG-4 là chuẩn mới cho dữ liệu audiovisual data.Tuy nhiên nén video và audio vẫn là đặc điểm nổi trội của Mpeg -4 .Phần này mô tả những nét chính về MPeg4.
Mpeg-4 được bắt đầu từ 5/1991.Năm 1999 công bố chuẩn phiên bản đầu tiên.Năm 2003 Mpeg-4 ISO và IEC công nhận quốc tế . Tài liệu chuẩn mang mã số ISO/IEC 14496.
Dưới đây là một số đặc trưng quan trọng của Mpeg-4 :
a- Có các công cụ (Tools) cơ bản để truy cập dữ liệu multimedia. Nhờ các công cụ này, người ta có thể indexing, linking , quering,browsing,delivering file, deleting file...
b- Có thể kết nối, thay đổi và Edit các bitstream trên các file nén mà không cần cởi nén.
c- Cho phép lai ghép dữ liệu tự nhiên và nhân tao. các cảnh quay từ camera , cùng với text, các cảnh nhân tạo có thể tổng hợp thành một cảnh mới và nén chung với nhau.
d- Cho phép truy cập trực tiếp hay còn gọi là truy cập random vào dữ liệu
điều này rất quan trọng , làm cho quá trình xử lý hiệu quả.
e. Nén hiệu quả ; do yêu cầu của loại thiết bị mà mpeg-4 phục vụ cho nên nó đỏi hỏi tỉ lệ nén phải cao, nó phải dùng hòa các yếu tố chất lượng, tốc độ, dung tích nhớ...
f. Cùng lúc có thể làm việc với nhiều dòng dữ liệu ( data streams)
g. Rất mạnh trong xử lý lỗi . Do nó phải phục vụ trong điều kiện truyền thông ví dụ nhiễu, đường truyền bị sự cố.....tất cả đều có thể sinh ra lỗi.
h. Có khả năng điều chỉnh tốt .Các dòng dữ liệu có thể ở các độ phân giải khác nhau, tốc độ khác nhau khi giải nén mpeg-4 cho phép đưa về độ phân giải thấp, tốc độ thấp.
SƠ ĐỒ CỦA BỘ MÃ HOÁ VÀ GIẢI MÃ DÙNG MPEG-2
Sơ đồ bộ mã hoá và giải mã MPEG 2 được trình bày trên hình 2.
Mã hoá MPEG-2
Quá trình mã hoá cho P pictures và B pictures được giải thích như sau:
Dữ liệu từ các khối ảnh (macroblocks) cần được mã hoá sẽ được đưa đến cả bộ trừ (Subtractor) và bộ đoán chuyển động (Motion Estimator). Bộ đoán chuyển động sẽ so sánh các khối ảnh mới được đưa vào này với các khối ảnh đã được đưa vào trước đó và được lưu lại như là các ảnh dùng để tham khảo (Reference Picture). Kết quả là bộ đoán chuyển động sẽ tìm ra các khối ảnh trong ảnh tham khảo gần giống nhất với khối ảnh mới này. Bộ đoán chuyển động sau đó sẽ tính toán vector chuyển động (Motion Vector), vector này sẽ đặc trưng cho sự dịch chuyển theo cả hai chiều dọc và ngang của khối ảnh mới cần mã hoá so với ảnh tham khảo. Chúng ta lưu ý rằng vector chuyển động có độ phân giải bằng một nửa do thực hiện quét xen kẽ.
Bộ đoán chuyển động cũng đồng thời gửi các khối ảnh tham khảo này mà chúng thường được gọi là các khối tiên đoán (Predicted macroblock) tới bộ trừ để trừ với khối ảnh mới cần mã hoá (thực hiện trừ từng điểm ảnh tương ứng tức là Pixel by pixel). Kết quả là ta sẽ được các sai số tiên đoán (Error Prediction) hoặc tín hiệu dư, chúng sẽ đặc trưng cho sự sai khác giữa khối ảnh cần tiên đoán và khối ảnh thực tế cần mã hoá.
Tín hiệu dư hay sai số tiên đoán này sẽ được biến đổi DCT, các hệ số nhận được sau biến đổi DCT sẽ được lượng tử hoá để làm giảm số lượng các bits cần truyền. Các hệ số này sẽ được đưa tới bộ mã hoá Huffman, tại đây số bits đặc trưng cho các hệ số tiếp tục được làm giảm đi một cách đáng kể. Dữ liệu từ đầu ra của mã hoá Huffman sẽ được kết hợp với vector chuyển động và các thông tin khác (thông tin về I, P, B pictures) để gửi tới bộ giải mã.
Hình 2. Sơ đồ bộ mã hoá và giải mã dùng MPEG