MPEG1 được công bố đầu tiên năm 1988, được biết đến rộng rãi cùng với đ nh dạng audio mp3. MPEG1 được công bố bởi ISOIEC 11172. MPEG1 cho phép mã hóa dữ liệu audio, video lên đến 1.5 Mbits. Hiện tại MPEG1 là chu n phổ biến hiện nay trong nén dữ liệu ít mất mát thông tin. Trong đó 5 tiêu chu n bộ phận quy đ nh
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Sinh viên thực hiện :
Nguyễn Minh Công – Lớp CNTT1 01 – K57 Trần Trọng Giáp – Lớp CNTT1 02 – K57 Trần Xuân Giáp – Lớp CNTT1 02 – K57 Nguyễn Hữu Phúc – Lớp CNTT1 02 – K57
Giáo viên hướng dẫn :
PGS.TS Nguyễn Thị Hoàng Lan
HÀ NỘI 12-2015
Trang 2MỤC LỤC 2 Phần 1: T m hi u chung về các chu n MPEG
Phần 2: Sơ đồ, đặc đi m nén chu n MPEG-1, H.261 và so sánh
II Tiền xử lý trước khi bước vào quá trình nén 9 III Các thuật toán được sử dụng trong quá trình nén 10
3 Quét zig-zag (zig-zag scan) và mã hoá theo loạt dài (RLC) 11
5 Ước lượng chuy n động (Motion Estimation) 12
6 Mã hoá với từ mã có độ dài thay đổi (VLC) 12
1 Mã hoá nội trong frame (Intra-frame coding) 13
2 Mã hoá giữa các frame (Inter-frame coding) 13
Trang 3Phần 1: Tìm hiểu chung về các chuẩn nén MPEG
Moving Picture Experts Group (MPEG ): là một nhóm các quy tắc, giải thuật được đề ra bơi ISO và IEC đ thiết lập các tiêu chu n cho việc truyền tải và nén video và âm thanh
MPEG được ra đời vào năm 1988, đến nay có rất nhiều chu n MPEG đã được công bố : MPEG 1, MPEG 2, MPEG 3, MPEG 4, MPEG 4 part 2, MPEG 4- AVC, MPEG 7,
MPEG21, MPEG A, MPEG B, MPEG C, MPEG D, MPEG E, MPEG V
I MPEG-1
MPEG1 được công bố đầu tiên năm 1988, được biết đến rộng rãi cùng với đ nh dạng audio mp3 MPEG1 được công bố bởi ISO/IEC 11172 MPEG1 cho phép mã hóa dữ liệu audio, video lên đến 1.5 Mbit/s
Hiện tại MPEG1 là chu n phổ biến hiện nay trong nén dữ liệu ít mất mát thông tin Trong
đó 5 tiêu chu n bộ phận quy đ nh:
Liệt kê các ng dụng c a MPEG1:
- Đ nh dạng mp3 vẫn là đ nh dạng audio phổ biến trong PC và internet
- Hầu hết các phần mềm với video đều hỗ trợ quá trình giải mã MPEG1
- Sự phổ biến c a audio mp3 cho phép các thiết b phần c ng đã được cài đặt có th chơi MPEG1 audio
- Hầu hết các thiết b kỹ thuật số có th phát lại MPEG1 audio
- Trước khi MPEG2 trở nên phổ biến thì các thiêý b kỹ thuật số vệ tinh, cáp đều sử dụng duy nhất MPEG1
- Các tiêu chu n super video CD dựa trên VCD, sử dụng riêng MPEG1 như MPEG2
- Truyền hình kỹ thuật số video: sử dụng ch yếu MPEG1 layer II audio và MPEG2 video
Trang 41 Hệ thống
Hệ thống lưu trữ các audio, video đã được mã hóa theo chu n các dòng bit Các đ nh dạng này được thiết kế đặc biệt đ lưu trữ các file truyền thông Các lỗi nhỏ trên các dòng bit cũng có th cho kết quả ra các kết quả không mong muốn
2.1) Màu sắc
Sau khi nén xong thì màu sắc MPEG1 chuy n sang Y'CbCr Trong đó thành phần Y được chú ý: vì mắt người nhạy với độ sáng hơn là màu sáng thành phần ( Cb, Cr )
2.2) Độ phân giải
- MPEG1 co th hỗ trợ độ phân giải 4095*4095
- MPEG1 sử dụng các độ phân giải thấp hơn 352x240, 352x288, 320x240
- Ngoài ra MPEG1 chọn chọn độ phân giải thấp với một dòng bít thấp hơn 1.5Mb/s Đây
là thành phần Low Level trong profile trong MPEG2 Đây là các th ng số tối thi u đ bộ giải mã có th sử lý
2.3) Frame
MPEG1 có các frame phục vụ mục đ ch khác nhau Mỗi frame sẽ có cách nén khác nhau, việc phân ra các frame h nh như vậy làm giảm đáng k k ch thước c a video Các frame trong MPEG1 bao gồm:
- I-frame: Viết tăt c a Intra- frame, là frame đầu tiên c a mã hóa video được mã hóa JPEG Đặc đi m c a I-fame: là nén nhanh, nhưng k ch thước tập tin lớn
Trang 5Chiều dài giữa các I-frame ( thường từ 15-18 ) là các frame P,b kết hợp Và được gọi là nhóm hình ảnh GOP
- P-frame: ( Predection frame) frame được sự đoán tiếp theo P frame cải thiện nén bằng cách khai thác thời gian dư thừa c a một video P frame được lưu trữ sự khác nhau c a các frame ngay trước nó Sự khác nhau c a giữa P-frame và một frame trước nó được tính toán trong mỗi vector chuy n động trên mỗi macroblock c a khung hình Dữ liệu sẽ được nhúng vào P frame
- B-frame: Frame được dự đoán nội suy 2 chiều Một cách nào đó th frame này được hi u giống với P-frame Nhưng nó cần 2 frame trước và sau đ so sánh Tuy nhiên trong quá trình giải mã cần bộ đ m lớn đ lưu trữ các frame trước và sau nó dẫn đến côngg kềnh và
độ trễ thời gian Ngoài ra thì một số phần c ng không hỗ trợ
- D-frame: là một frame không có trong chu n c a MPEG tuy nhiên D-frame được mã hóa với chất lượng thấp được dùng đ xem trước nhanh chóng video và tìm kiếm sử dụng trong các video cỡ lớn Tuy nhiên vì nhiều lý do mà D-frame đã kh ng được sử dụng
3 Audio
MPEG1 sử dụng phương pháp loại bỏ các âm thanh ở tần số mà con người kém nhạy cảm hoặc không th nghe thấy được, hoặc có một âm thanh lớn hơn nhiều phát kèm Tai con
Trang 6người nhạy với âm ở tần số tiếng nói người khoảng 16 Hz đến 20kHz Vì vậy các âm thanh
có tần số quá cao hoặc quá thấp ngưỡng này sẽ b lọc đi
MPEG1 audio được chia làm 3 lớp
Tần số lấy mẫu : 32000, 44100, and 48000 Hz
- MPEG I audio Layer 1: 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448 kbit/s
- MPEG I audio Layer II: 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384 kbit/s
- MPEG I audio Layer III: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 kbit/s
MEPG1 ban đầu được thiết kế đ sử dụng nén audio cho các đài phát sóng âm thanh Các Layer 1,2,3 c a MPEG1 cung cấp được biết đến với các đ nh dạng MP1,MP2, MP3 Hiện tại đ nh dạng MP3 là phổ biến nhất với các audio trên PC trên mạng internet
MPEG2 là phiên bản th 2 c a MPEG, nó là sự kết thừa c a MPEG1 Phiên bản 1 và 2 c a MPEG2 là sự kết hợp cộng tác với ITU-T
tốc độ bít: 10-15mbit/s
Trang 73 Audio
MPEG2 dùng các phương pháp mã hóa âm thanh tùy ng với mỗi phiên bản khác nhau, như phiên bản 1,2,3, Các phiên bản đều có cải tiến so với phiên bản MPEG1 VD: Phiên bản 3 cho MPEG2 mã hóa đa kênh
- frame hình : 29, 97 frame/s (NTSC) , 25 frame/s ( PAL)
- HDV là đ nh dạng đ thu và phát lại một video độ nén MPEG2 trên DV
- MOD và TOD: được sử dụng đ ghi lại đ nh dạng được dùng trong các máy quay
III MPEG-3
Được thiết kế đ sử lý tín hiệu HDTV ( high definition television ) 1080p trong khoảng
20-40 Mbit/s Tuy nhiên khi chuy n dữ liện lớn thì bản thân MPEG2 đã có th sử lý được các tín hiệu HDTV, vì vậy MPEG3 được thu gọn lại như một phiên bản c a MPEG2
IV MPEG-4
Dùng cho dữ liệu đa phương tiện trong truyền thông và các ng dụng tương tác đa phương tiện, đồng bộ dữ liệu
Trang 8MPEG4 kế thừa nhiều đặc đi m c a MPEG1 và MPEG2 Thêm các t nh năng mới như VRML cho dựng hình 3D, cải tiến âm thanh chất lương cao hơn so với phiên bản MPEG2 -7,
1 Profile and level
Các phiên bản MPEG4 đã được phân ra đ hỗ trợ các ng dụng cụ th Những tập con như thế gọi là profile, thiết lập giới hạn c a các công sự đ sử lý Level được thiết lập cho mỗi profile - m c độ cho phép
V MPEG-7
Chu n giao diện mô tả nội dung đa phương tiện, hỗ trợ tìm kiếm, xử lý, quản lý dữ liệu đa phương tiện
Trang 9Phần 2: Sơ đồ, đặc điểm nén chuẩn MPEG-1, H.261 và so sánh
I Nguyên nhân, mục tiêu nén video
Tại sao phải nén video: vì video không nén chiếm quá nhiều bộ nhớ
MPEG-1 kết hợp tín hiệu âm thanh - hình ảnh ở tốc độ bit ~1.5Mb/s
Nguyên tắc làm việc: so sánh 2 ảnh liền kề xem chúng giống nhau bao nhiêu, phần giống nhau không cần lưu trữ/truyền đi Video số còn ch a những phần mắt người không nhìn được, có th bỏ đi
Thuật toán nén: MPEG-1 sử dụng nhiều kỹ thuật đ đạt tỉ số nén cao
Trong MPEG-1, mỗi video là một chuỗi b c ảnh, mỗi b c ảnh coi là một mảng 2 chiều các
đi m, màu sắc mỗi đi m gồm 3 thành phần: Y, Cb, Cr
II Tiền xử lý trước khi bước vào quá trình nén
B c ảnh khi được chụp/khi bi u diễn trên màn hình ch a các đi m thuộc kg màu RGB
Vì vậy trong MPEG-1 phải chuy n RGB -> YCbCr trước khi xử lý
Vì mắt người nhạy nhất với thành phần Y (độ sáng) và kém nhạy với Cb, Cr (màu sắc) nên
Y được nén với độ phân giải kh ng đổi còn Cb, Cr giảm chiều ngang, dọc đi 1/2, độ phân giải chỉ còn = 1/4 Y (gọi là giảm k ch thước mẫu ki u 4:2:0)
Một số cấu trúc lấy mẫu:
Trang 10Ảnh được chia làm các macroblock: là các khối k ch thước 16x16
Các macroblock có th chia tiếp làm các block 8x8 trước quá tr nh nén tùy vào phương pháp thực hiện ở quá trình nén
III Các thuật toán đƣợc sử dụng trong quá trình nén
1 Biến đổi cosin rời rạc (DCT):
Ảnh được chia làm các khối 8x8, qua phép biến đổi cosin rời rạc trở thành 1 khối 8x8 khác hoàn toàn biến đổi ngược về y hệt khối cũ được
DCT biến đổi dữ liệu từ miền thời gian sang miền tần số
Nếu dữ liệu miền thời gian không có sự khác nhau nhiều thì ở miền tần số, dữ liệu tần số thấp rất lớn, tần số cao rất nhỏ
Trong DCT, phần tử ở v trí (0,0) c a ma trận 8x8 gọi là thành phần một chiều - bi u diễn miền tần số thấp, các phần tử còn lại gọi là thành phần xoay chiều - bi u diễn miền tần số cao
2 Lượng tử hoá (Quantization):
Trang 11Lượng tử hoá là chia từng phần tử c a ma trận 8x8 sau DCT cho phần tử cùng v trí ở một
ma trận lượng tử 8x8 quy đ nh trước, rồi làm tròn kết quả
Lượng tử hoá làm nhỏ đi các số lớn, vì vậy cần dùng t bit hơn đ bi u diễn các số
Lượng tử hoá làm mất mát thông tin vì khi biến đổi ngược kh ng thu được ma trận ban đầu
3 Quét zig-zag (zig-zag scan) và mã hoá theo loạt dài (RLC):
Sau DCT và lượng tử hoá hầu hết giá tr xoay chiều = 0 Sử dụng phương pháp quét zag sẽ thu được nhiều số 0 liền nhau, sau đó dùng mã hoá theo loạt dài đ đạt tỉ số nén cao Quét zig-zag biến block thành một dãy số có th bi u diễn bằng chuỗi bit
zig-Mã hóa theo loạt dài là: với một chuỗi các giá tr dữ liệu giống nhau, ta mã hóa chúng bằng
1 giá tr duy nhất và số lượng
Ở đây chúng ta mã hoá chuỗi bit thành các cặp (skip;value) với skip là số lượng số 0 và value là giá tr khác 0 tiếp theo
Ki u mã hoá này chỉ dùng cho các giá tr xoay chiều
4 Mã hoá dự đoán (Predictive Coding):
Trang 12Với phần tử (0;0) chúng ta dùng mã hoá dự đoán, cụ th là dựa vào giá tr hiện tại đ dự đoán giá tr tiếp theo và mã hoá sự khác biệt
Nếu dự đoán ch nh xác th sai số sẽ nhỏ
Khi mã hoá sự khác biệt, chúng ta cần t bit hơn mã hoá giá tr thật
MPEG-1 sử dụng kỹ thuật DPCM (Difference Pulse Code Modulation) là một dạng c a mã hóa dự đoán
5 Ước lượng chuy n động (Motion Estimation):
Ước lượng chuy n động là dự đoán 1 khối ở b c ảnh sau sử dụng 1 khối ở ảnh hiện tại Khác biệt về v trí giữa 2 khối này trong b c ảnh gọi là vectơ chuy n động
Khác biệt về giá tr c a từng phần tử c a 2 khối gọi là sai số ước lượng
Trong MPEG-1, khi mã hoá buộc phải t nh vectơ chuy n động và sai số ước lượng Khi giải mã dùng 2 thông số đó + ảnh hiện tại sẽ tạo được ảnh kế tiếp Quá trình này gọi là bù chuy n động (Motion Compensation)
6 Mã hoá với từ mã có độ dài thay đổi (VLC): Mã Huffman là ví dụ
Kỹ thuật này dùng các từ mã ngắn hơn đ bi u diễn các giá tr xuất hiện thường xuyên hơn Dùng kỹ thuật này chuỗi bit sau mã hoá có th ngắn hơn chuỗi ban đầu
Trong MPEG-1 quá trình mã hoá kết thúc bằng VLC đ giảm dư thừa dữ liệu và bước đầu tiên c a giải mã là giải mã VLC
Trang 13IV Sơ đồ, đặc điểm nén chuẩn MPEG-1
MPEG-1 sử dụng hai kỹ thuật mã hóa là: mã hóa nội trong frame (intra-frame coding) và
mã hóa giữa các frame (inter-frame coding)
Video được chia làm các khối ảnh (GOP – group of picture), mỗi khối ch a các ảnh
(frame) gồm 3 loại: ảnh I, ảnh P và ảnh B sắp xếp theo th tự và tỷ lệ nhất đ nh
1 Mã hoá nội trong frame (Intra-frame coding):
Với chu n MPEG-1 ảnh I (intra-frame) được mã hoá bằng cách mã hoá nội trong frame,
t c là chỉ giảm độ dư thừa trong ảnh đó mà kh ng liên hệ với ảnh khác
Quá trình mã hoá gần như là giống chu n JPEG Thực hiện lần lượt các bước như h nh:
Đơn v mã hoá là 1 khối (block) 8x8 1 macroblock ch a 6 khối: 4 khối Y, 1 khối Cb, 1 khối Cr (ki u 4:2:0)
Sử dụng cách này ảnh giữ được chất lượng cao nhưng tỉ số nén thấp
2 Mã hoá giữa các frame (Inter-frame coding):
Ảnh P và ảnh B được mã bằng cách này, t c là giảm độ dư thừa trong chính ảnh đó và cả trong mối quan hệ với các ảnh khác
Trang 14— Mã hoá ảnh P (predicted):
Đơn v thực hiện mã hoá là 1 macroblock
Với mỗi macroblock, có nhiều lựa chọn mã hoá như thế nào, dẫn đến có 8 ki u macroblock khác nhau Cụ th như sau:
+ Sử dụng intra coding hay non-intra coding (mã hoá dự đoán)
+ Với mã hoá dự đoán th có truyền vectơ chuy n động hay không
+ Với mã hoá dự đoán, nếu mọi giá tr trong ma trận sai số ước lượng = 0 thì cả
macroblock kh ng được mã hoá
+ Sử dụng lượng tử hoá hay kh ng: lượng tử hoá, với các tỉ lệ khác nhau làm chất lượng ảnh khác nhau
Ki u dự đoán trong mã hoá ảnh P là dự đoán tiến, t c là dự đoán dựa trên ảnh I hoặc ảnh P liền trước nó
— Mã hoá ảnh B (bidirectional):
Ảnh B cũng được chia thành các macroblock như ảnh I, P
Vì ảnh B kh ng được dùng đ làm căn c cho bù chuy n động nên sai số trong ảnh B ít quan trọng hơn ảnh I, P
Ảnh B được giới thiệu đ làm tăng tốc độ frame mà kh ng làm tăng tốc độ bit nhiều Ảnh B giới thiệu vectơ chuy n động lùi dùng đ dự đoán lùi, t c là dùng macroblock trong tương lai dự đoán macroblock hiện tại bằng vectơ chuy n động lùi và sai số ước lượng Điều đó làm tăng sự lựa chọn mã hoá ảnh B: dùng vectơ chuy n động tiến, vectơ chuy n động lùi hay kết hợp cả 2 vectơ —> có ~14 ki u macroblock khác nhau
Nếu có cả 2 vectơ th việc bù chuy n động dựa trên cả ảnh trước và sau nó, kết quả tạo thành một macroblock bù chuy n động ―nội suy‖
Trang 15Sơ đồ mã hoá giữa các frame như h nh:
V Sơ đồ chung và so sánh
Sơ đồ chung nén video chu n MPEG-1
Trang 16Sơ đồ chung nén video chu n H.261
So sánh:
MPEG-1 được phát tri n dựa trên H.261 nên 2 chu n có rất nhiều đi m giống nhau
Những đi m khác nhau c a H.261 và MPEG-1:
• MPEG-1 cho phép độ phân giải video tùy ý (tối đa 4095x4095) còn H.261 chỉ cho
phép video độ phân giải CIF (352x288) và QCIF (176x144)
• H.261 có bộ đệm đ sau khi mã hóa, nếu tốc độ bit vượt m c cho phép thì quay lại
lượng tử hóa với ma trận lượng tử khác đ tăng tỉ số nén, giảm tốc độ bit
• H.261 chỉ có dự đoán tiến còn MPEG-1 có dự đoán tiến, lùi và kết hợp cả hai
• H.261 chỉ có I-frame, P-frame, MPEG-1 có thêm B-frame, D-frame (DC)
• Vectơ chuy n động trong H.261 chỉ có th ch a số nguyên MPEG-1 có th lẻ 0.5
Trang 17Phần 3: h o át th c t ng dụng 2 chuẩn trong truyền thông
Ví dụ một video được nén bởi chu n MPEG-1:
Trang 18 H.261: Chu n mã hoá Video H.261 được ITU công bố vào năm 1990 Nó được thiết kế cho dữ liệu ở các tốc độ bằng cấp số nhân c a 64Kbit/s hay còn gọi là p*64Kbit/s (trong đó p bằng 1 đến 30) H.261 hỗ trợ cho hai độ phân giải, QCIF (176x144) và CIF (352x288) Do H.261 hỗ trợ mã hóa video ở độ phân giải thấp nên được ng dụng đ mã hóa video trong Cuộc gọi Video
Trang 19Phần 4: Thử nghiệm, gi i th ch kịch b n ng dụng c a hai
chuẩn tr n
1 Các công cụ, thƣ viện sử dụng
- Sử dụng thư viện ffmpeg trên linux
- Sử dụng MediaInfo đ xem thông số video
Là phần mềm nguồn mở được viết bằng C/C++ có th tải tại:
https://mediaarea.net/vi/MediaInfo
2 Với mẫu video raw
Video mẫu được download tại: http://media.xiph.org/bus_cif.y4m
3 Kịch b n
Sử dụng ffmpeg nén chu n mpeg1:
- Nén video với bitrate 128kbps
- Nén video với bitrate 1024kbps
Trang 20So sánh: + tỉ số nén
+ tỉ số dòng bit
+ chất lượng nhìn bằng mắt
4 Tính toán:
Tỉ số nén = Dung lượng trước khi nén/ Dung lượng sau khi nén
Tỉ số dòng bit = H * W * Frame_Rate * 24 /Bitrate dữ liêu sau nén
Khi thực hiện xem 2 mẫu video đã nén với 2 bitrate khác nhau
Video có bitrate cao hơn cho chúng ta chất lượng cao hơn