Nén video theo chuẩn ITU - t
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
─────── * ───────
BÁO CÁO MÔN HỌC
Đề tài: Nén video theo chuẩn ITU-T
Giảng viên hướng dẫn: PGS TS Nguyễn Thị Hoàng Lan
Trang 21 Cài đặt thử nghiệm thuật toán nén video H
261, đo lường hiệu năng giải pháp nén này
Trang 3LỜI NÓI ĐẦU
Trong truyền thông, xử lí dữ liệu đa phương tiện thì việc nén dữ liệu là vô cùng quan trọng, và video là một trong số đó Có nhiều phương pháp nén video khác nhau như MPEG, ITU-T, SVC Với mong muốn tìm hiểu về chuẩn nén video H 261 nói riêng và H 26x nói chung, chúng em lựa chọn
đề tài để tìm hiểu là: “Nén ảnh video theo chuẩn H 261”.
- Phần 3: Phân tích so sánh sơ đồ nén video H 261 với video MPEG-1.
- Phần 4: Xây dựng sơ đồ thuật toán nén ảnh video theo chuẩn H 261.
- Phần 5: Cài đặt thử nghiệm thuật toán nén video H 261, đo lường hiệu
năng giải pháp nén này.
Mặc dù đã có những cố gắng để hoàn thành đề tài, nhưng do chúng em chưa có nhiều kinh nghiệm trong lĩnh vực này nên không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được ý kiến đóng góp của cô
để hoàn thành tốt hơn đề tài, chúng em xin trân thành cám ơn.
Nhóm sinh viên thực hiện.
Trang 4PHẦN 1: Tìm hiểu chung về các chuẩn nén ITU-T, chuẩn H26X (H 261, H 263, H 264)
1 Tổ chức ITU-T
- Liên hiệp (liên minh) viễn thông quốc tế, viết tắt là ITU (InternationalTelecommunication Union) là một tổ chức của liên hiệp quốc nhằm tiêu chuẩnhóa viễn thông quốc tế
an toàn thông tin
- Bộ phận:
+ ITU- T (T: Telecom -Viễn thông)
+ ITU- R (T: Radio -Vô tuyến)
+ ITU- D (D: Telecommunications Development -Phát triển viễn thông)
- Các chuẩn nén của ITU-T: Chuẩn H 26x là chuẩn mã hóa và nén video đượcđưa ra trong các khuyến nghị của ITU Chuẩn nén video H 26x: là chuẩn mãhóa và nén video được đưa ra trong các khuyến nghị của ITU
+ H 261
+ H 263
+ H 264 (được biết đến là chuẩn MPEG – 4Part 10/AVC (Advanced VideoCoding)) do ITU – T hợp tác với ISO/ISE cùng phát triển
Trang 52 Chuẩn H 261
2.1 Giới thiệu
- H 261 là chuẩn nén video đầu tiên được ITU giới thiệu vào năm 1990, là mộtphần của bộ giao thức H 320 mô tả các thành phần khác nhau của một hệthống hội nghị thông qua video, được thiết kế cho các ứng dụng videotelephone và hội nghị truyền hình qua đường ISDN
- Thiết kế cho dữ liệu ở các tốc độ bằng cấp số nhân của 64Kbit/s (Còn gọi làp*64Kbit/s) với 1<= p <= 30 nên tốc độ dữ liệu nằm trong khoảng từ 64Kbit/sđến 1920 Kbit/s Với độ trễ tối đa là 150 ms Với p=1, p=2 thì phù hợp chovideophone, giao tiếp trực quan qua máy tính để bàn Với p>= 6 thì phù hợpcho hội nghị thông qua video
- Thuật toán mã hóa: Sự lai ghép giữa việc dự đoán trước hình ảnh, biến đổi
mã, bù lại các chuyển động: Giúp làm giảm độ dư thừa về không gian và thờigian của chuỗi video để đạt được tỷ số nén cao
- Hỗ trợ cho hai độ phân giải: Chuỗi video được định nghĩa theo 2 chuẩn địnhdạng QCIF (Quarter Common Intermediate Format) và CIF (CommonIntermediate Format) Với CIF là tiêu chuẩn cho kích thước video và hình ảnhchứa 352x288 điểm ảnh (pixel) QCIF là tiêu chuẩn có độ phân giải bằng ¼tiêu chuẩn CIF 172x144 pixel
- Khi chưa nén, với định dạng CIF (yêu cầu 30fps) cần (288 x 352 x 8 + 144 x
176 x 8 + 144 x 176 x 8) x 30 = 37 Mbps Với định dạng QCIF (yêu cầu15fps) cần (144 x 176 x 8 + 72 x 88 x 8 + 72 x 88 x 8) x 15 = 4.7 Mbps Trongkhi ISDN chỉ hỗ trợ 1 x 64 Kbps tới 30 x 64 Kbps = 2 Mbps Do đó băng thôngkhông đủ và nén là bắt buộc
- Sử dụng kỹ thuật lấy mẫu 4:2:0 (trong chuẩn H.261 sử dụng hệ màu YUV, kỹthuật lấy mẫu này là lấy mẫu theo tỷ lệ giữa độ chói Y và 2 thành phần màu U
và V còn lại)
- Tốc độ Frame tối đa là 30 fps nhưng cũng có thể được giảm xuống phụ thuộcvào các ứng dụng và băng thông đường truyền khác nhau
2.2 Định dạng
- H.261 hỗ trợ hai độ phân giải là CIF (352x288) và QCIF (176x144)
- CIF được sử dụng khi p>=6, và đó là lúc sử dụng cho ứng dụng video hộinghị Hỗ trợ 4 kiểu: 30 fps, 15fps, 10 fps hoặc 7.5 fps
- QCIF thường được sử dụng khi p=1 cho các ứng dụng tốc độ bit thấp nhưvideophone Cũng hỗ trợ 4 kiểu 30, 15, 10, 7.5 fps
2.3 Hệ màu và kỹ thuật lấy mẫu
- Chuẩn H.261 sử dụng hệ màu YUV, trong đó Y là tín hiệu độ chói, U và V làhai thành phần tín hiệu màu sắc
Trang 6
-2.4 Phân loại các frame
- Frame I (Intra frame): là frame đầu tiên trong chuỗi video Nó được mã hóa
như một ảnh JPEG
- Frame P (Predictive Frame): là frame ảnh được mã hóa dự đoán trên cơ sở
frame tham chiếu trước đó (có thể là frame Ihoặc frame P) và frame hiện tại
- Trong H 261 không có frame B
- Năm 1998, ITU cải tiến chuẩn này và cho ra chuẩn H 263v2 (còn gọi là H.263+ hay H 263 1998) Năm 2000, chuẩn H.263v3 ra đời (còn gọi là H 263++ hay H 263 2000)
- H.263 được phát triển dựa trên những kinh nghiệm được rút ra từ các chuẩnH.261, MPEG-1 và MPEG-2 Thiết kế cơ bản giống với H.261, cộng thêmnhiều cải tiến về khả năng nén và tính linh hoạt
3.2 Những cải tiến của H 263 so với H 261
- H.263 có chất lượng video tốt hơn và tốc độ bit (lượng bit lưu trữ cho mộtđơn vị thời gian ) nhỏ hơn
- Mục tiêu của H.263 là truyền được video chất lượng chấp nhận được trênđường truyền điện thoại với tốc độ 28.8Kbps
- H.263 hỗ trợ độ phân giải từ 128x96 đến 1408x1152
Trang 7
-3.3 Định dạng
- H.263 hỗ trợ độ phân giải từ 128x96 đến 1408x1152
-3.4 Hệ màu
- Chuẩn H.263 sử dụng hệ màu YUV
3.5 Phân loại các frame trong H 263
- H 263 có hai loại frame là I-Frame và P-Frame và có thêm PB Frame PB
frame có nguồn gốc từ P và B frame và là sự kết hợp của cả hai
- Vector chuyển động trong H.263 có độ chính xác nửa pixel
Trang 8Vị trí pixel thường (1 pixel).
Vị trí một nửa pixel
- H.263 sử dụng bù chuyển động với độ chính xác sub-pixel thay vì sử dụng
bộ lọc vòng để làm mượt các frame như trong H.261
- Thuật toán mã hóa mới
- Trong ước lượng chuyển động, H.263 sử dụng 4 blocks 8x8 pixels thay vì 1block 16x16 pixels => chi tiết hơn
- H.263 có sử dụng PB framedự đoán dựa vào frame trước và sau, tương tựnhư MPEG Do đó độ chính xác cao hơn, chất lượng video tốt hơn
- Chuẩn H.263 có sử dụng nhiều cấu trúc GOB khác nhau hơn là H.261
4 Chuẩn H 264
4.1 Giới thiệu
- H.264 hay còn gọi là MPEG-4 Part 10 Advanced Video Coding (AVC) đượcphát triển và chuẩn hóa bởi ISO/IEC và ITU-T H.264/AVC bắt đầu nghiêncứu từ năm 1998 Mục đích của H.264/AVC là nén với hiệu quả cao dựa vào
bù chuyển động dựa trên block
- Chuẩn H.264 là một chuẩn mã hóa/ giải mã và định dạng video đang được
sử dụng rộng rãi nhất hiện nay để ghi, nén và chia sẻ video phân giải cao
Trang 9nghiên cứu và phát triển về mảng chuẩn hóa quá trình thu, nén và phát videocủa 2 tổ chức trên lần lược là các nhóm: VCEG (Video Coding ExpertsGroup) và MPEG (Moving Picture Experts Group).
- Một số ứng dụng của H.264 trong thực tế:
+ Ứng dụng trong đĩa Blu-ray
+ Đầu ghi hình camera
+ Máy quay phim
+ Đầu thu kĩ thuật số
+ Các dịch vụ phát video như: Youtube, Vimeo, iTunes Store…
+ Các phần mềm web như: Adobe Flash, HTML5…+ Sử dụng trong các dịch vụ truyền hình HDTV mặt đất, cáp và vệ tinh
4.2 Hệ màu và cấu trúc lấy mẫu
- Chuẩn H.264 sử dụng hệ màu YUV
- Chuẩn H 264 có các cấu trúc lấy mẫu 4:2:2, 4:1:1, 4:2:0
P-đa tham chiếu được sử dụng cho dự đoán bù chuyển động, sự đóng góp của
dự báo từ các tham chiếu khác nhau nên được coi trọng và được bù bằnglượng định trước bởi bộ mã hóa Điều này có thể cải thiện hiệu năng nén chonhững cảnh mờ
- Định hướng không gian dự đoán cho mã hóa intra được sử dụng để nângcao hiệu quả nén
- Trong H.264 có một vài công cụ được sử dụng để nâng cao khả năng chốnglỗi
- Trong H.264 không sử dụng khái niệm I-picture, P-picture, B-picture nữa thayvào đó là I-slice, P-slice và B-slice
5 Ưu điểm và nhược điểm của các chuẩn video H 26x
5.1 Ưu điểm
- Độ trễ thấp
- Mã hóa từng khung hình
Trang 10- Chỉ sử dụng một phần nhỏ trong bộ đệm để làm mượt (gây ra một chút trễ).
- Bitrate cố định
- Chỉ gửi một số lượng ít các block được mã hóa intra trong mỗi khung, do đó
sự biến đổi của tốc đọ dữ liệu chỉ phụ thuộc và nội dung của video
5.2 Nhược điểm
- Không được thiết kế cho việc ghi lại và xem lại video (quay ngược, tuanhanh)
- Hạn chế trong việc xử lý bit lỗi
- Những lỗi có thể phá hủy đoạn video ( Ví dụ lỗi giải mã Huffman của GOB)
PHẦN 2: Tìm hiểu về dòng dữ liệu, sơ đồ nén và giải nén trong chuẩn nén video H 261
1 Cấu trúc phân cấp trong H 261
- Một video bao gồm nhiều ảnh tĩnh liên tục (Frame-Khung)
Trang 11- Kích thước QCIF là 176x144 pixel, kích thước của CIF là 352x288 pixel.
- Mỗi khung ảnh CIF (352 x 288 pixel) được chia thành 12 GOB
- Nếu là khung ảnh QCIF (176x144 pixel) thì sẽ được chia thành 3 GOB
- Mỗi GOB lại được chia tiếp thành khối 11x3 MB
- Một MB có kích thước 16x16
Trang 12- Trong 1 MB có 6 khối B kích thước 8x8 Trong đó gồm 4 khối Y, 1 khối Cr, 1 khối Cb.
2 Sơ đồ tổng thể về dòng dữ liệu
Trang 132.1 Lớp Picture (Image/Frame)
- Picture Start Code (PSC) gồm 20 bit thông báo khởi động (0x00010) Dùng
để phân định ranh giới giữa các Frame với nhau
- Temporal Reference (TR) gồm 5 bit là nhãn thời gian của hình ảnh (được sửdụng sau này để đồng bộ hóa âm thanh)
- Picture Type (PType) gồm 6 bit:
+ Bit 1: Dấu hiệu chia màn hình “1” là bật, “0” là tắt
+ Bit 2: Dấu hiệu tài liệu camera “1” là bật, “0” là tắt
+ Bit 3: Có ảnh cứng hay không? “1” là bật, “0” là tắt
+ Bit 4: Format nguồn “1” là QCIF, “0” là CIF
Trang 14+ Bit 5: Tùy chọn chế độ ảnh tĩnh HI_RES “1” là tắt, “0” là bật.
+ Bit 6: Bit bổ sung
- Extra insertion information (PEI) gồm 1 bit: Được đặt là “1” để thông báo sựhiện diện của trường dữ liệu tùy chọn
- Spare Information (PSPARE) (0/8/16… bit): Nếu PEI là “1” thì 9 bit sau đógồm 8 bit dữ liệu (PSPARE) và sau đó một bit PEI khác để cho biết liệu 9 bitsau đó có tiếp tục như thế hay không? Bộ mã hóa không được chèn.PSPARE cho đến khi được chỉ định bởi CCITT Bộ giải mã phải được thiết kế
để loại bỏ PSPARE nếu PEI được đặt là “1” Điều này sẽ cho phép CCITT chỉđịnh tương thích ngược trong tương lai bổ sung trong PSPARE
2.2 Lớp Group of Block (GOB)
- GOB Start Code (GBSC) gồm 16 bit chỉ ra sự bắt đầu của GOB (0x0001)
- Group Number (GN) gồm 4 bit chỉ ra vị trí của GOB trong ảnh
- Group Quantization Step (Gquant): Bước lượng tử GOB gồm 5 bit được đặt
cố định cho đến khi được thay đổi bởi MQUANT
- Extra Insertion Information (GEI) dài 1 bit và nếu bit này đặt thành 1 thì báohiệu sự hiện diện của trường dữ liệu tùy chọn sau
- Spare Information (GSPARE) (0/8/16/… bit): Nếu GEI được đặt thành “1” thì
9 bit sau gồm 8 bit dữ liệu (GSPARE) và sau đó 1 bit GEI khác để cho biếtliệu có thêm 9 bit khác không và cứ tiếp tục như vậy Bộ mã hóa được chènGSPARE cho đến khi được chỉ định bởi CCITT Bộ giải mã phải được thiết kế
để loại bỏ GSPARE nếu GEI = “1” Điều này cho phép CCITT chỉ định tươngthích “lùi” trong tương lai và bổ sung trong GSPARE
Trang 152.3 Lớp Macro Block
- Macro Block Address (MBA): Địa chỉ chỉ vị trí của MB MB đầu tiên có địa chỉtuyệt đối, địa chỉ của các BB kế tiếp được tính thông qua địa chỉ MB đầu tiên.Một tử mã thêm dùng để nhồi bit ngay lập tức sau một tiêu đề GOB hoặc một
MB được mã hóa (Từ mã này được gọi là nhồi MBA) Nhồi MBA này đượcloại bỏ bởi bộ giải mã VLC cho bảng mã khởi đầu
Trang 16- Macro Block Type (Mtype): Các từ mã có chiều dài thay đổi cung cấp thôngtin về MB và các thành phần dữ liệu nào có mặt.
Trang 17- Macro Block Quantization (Mquant): Là một từ mã 5 bit, dùng để thay thế choGQUANT đến cuối GOB hoặc tạo ra một MQUANT mới.
- Motion Vector Data (MVD): Dữ liệu về vector chuyển động
- Code Block Pattern (CBP): Chỉ xuất hiện khi được chỉ ra bởi MTYPE Từ mãcho một số mẫu biểu thị các khối đó trong MB mà ít nhất một hệ số biến đổiđược truyền đi
2.4 Block
- Một MB gồm 4 khối Y, 1 khối Cb, 1 khối Cr Dữ liệu cho một khối bao gồm các
từ mã cho các hệ số biến đổi, theo sau là điểm kết thúc (EOB) Thứ tự truyềnnhư hình sau:
- Coeff (Hệ số): là kiểu Run-length Đối với khối Intra Block thì tất cả 64 hệ sốđều được truyền đi Tất cả các trường hợp còn lại thì trường CBP sẽ chặn sựtruyền đi Hệ số này là mã Run-Level (Do sau khi lượng tử, hầu hết các hệ số
AC ở vị trí tần số cao của khối B sẽ biến thành nhiều số 0 Do đó nó sẽ tạo rachuỗi nhiều số 0 dọc theo đường quét zig-zag của một khối Một hệ số ACkhông phải là zero được mã hóa thành một ký tự có cấu trúc Run/Level Runđại diện cho hệ số zero nằm trước hệ số AC khác zero Level đại diện cho giátrị biên độ của hệ số AC khác zero)
- Mỗi block sẽ kết thúc bằng mã (0x1)
Trang 183 Sơ đồ nén và giải nén trong chuẩn H 261 3.1 Sơ đồ nén trong chuẩn H 261
Trang 19- Trong đó bao gồm các khối:
+ Khối DCT thực hiện phép biến đổi Cosin rời rạc đối với đối tượng là sựsai khác giữa frame hiện tại và frame được dự đoán (đối với frame I, DCTthực hiện biến đổi ngay trên các khối điểm ảnh của frame) IDCT thực hiệnphép biến đổi Cosin ngược, phục hồi lại sự sai khác đã được mã hóa, sửdụng cho quá trình dự đoán bù chuyển động
+ Khối lượng tử hóa: rời rạc hóa tín hiệu theo các bước lượng tử, ở đây là rời rạc hóa các giá trị của khối điểm ảnh đã qua biến đổi DCT
+ MC-based prediction: Khối bù chuyển động dựa trên sự dự đoán
+ Motion estimation: Khối ước lượng chuyển động
+ Frame Memory: Bộ đệm cho các frame tham chiếu
+ Control Coding: Bộ điều khiển, sử dụng để kiểm soát tốc độ tạo dữ liệu video được mã hóa Bao gồm việc xử lý trước bộ mã nguồn, bộ lượng tử…+ Bộ lọc vòng lặp: Làm mượt quá trình dự đoán
+ VLE: Variable Length Encode: Bộ cấp từ mã có độ dài thay đổi
- Để giải thích cho cách hoạt động của sơ đồ nén này, ta sẽ sử dụng một kịchbản trong đó các khung I, P1 , P2, được mã hóa (nghĩa là IPPIPP… ) Dữ liệu
sẽ đi qua các điểm quan sát được đánh số trên hình sẽ được tóm tắt trongbảng dưới đây Ta sẽ dùng ký hiệu I, P1 , P2, cho dữ liệu gốc Và P’1, P’2 chocác dự đoán trong chế độ Inter-Frame (Dấu * thể hiện cho sự mất mát thôngtin)
- Không chỉ thế, mà các hệ số DCT sau khi được lượng tử hóa, lại gửi tiếp tới
bộ lượng tử hóa ngược và bộ IDCT Do đó xuất hiện giá trị I* tại điểm số 4của bộ cộng Kết hợp với điểm số 5 (đầu vào bằng 0 do công tắc đang ở chế
độ Intra-frame) Thì đầu ra tại điểm số 6 vẫn là I* và nó được lưu trong FrameMemory, chờ để được sử dụng cho bước đánh giá chuyển động và bùchuyển động cho khung P kế tiếp
- Bộ Control coding(CC) hoạt động như một sự phản hồi Tức là nếu bộ đệm ởđầu ra quá đầy, thì bộ CC sẽ tăng kích thước bước lượng tử để giảm kíchthước dữ liệu được mã hóa Đây là quá trình kiểm soát tốc độ mã hóa
- Kế tiếp là khung P1 sẽ đến điểm số 1 Công tắc sẽ chuyển sang chế độ
Trang 20Inter-chuyển động cho MB phù hợp nhất trong frame I cho mỗi MB trong P1 Vectorước lượng chuyển động này được gửi tới cả 2 bộ bù chuyển động và bộVLE Bộ bù chuyển động sẽ tạo ra một MB phù hợp nhất trong P1 (Ký hiệu làP’1 và sẽ xuất hiện tại điểm số 2).
- Tại điểm “Lỗi dự đoán” sẽ thu được giá trị D1 = P1 – P’1 D1 lúc này lại trả quaquá trình DCT và lượng tử hóa và qua bộ Entropy Coding, và kết quả lạiđược gửi tới bộ đệm đầu ra, sẵn sàng chuyển đi Không chỉ thế, các hệ sốDCT của D1 cũng lại được gửi tới bộ lượng tử hóa ngược và bộ IDCT, vì thếtại điểm thứ 4 sẽ xuất hiện giá trị D1* Kết hợp với điểm số 5 (Giá trị P’1 đượcgửi từ đầu ra của bộ bù chuyển động sẽ tới điểm số 5), thì đầu ra của điểmthứ 6 sẽ là P’1* = D1* + P’1 và giá trị này lại được lưu ở trong FrameMemory, chờ để được sử dụng cho bước đánh giá chuyển động và bùchuyển động cho khung P kế tiếp
- Các bước để mã hóa khung P2 giống hệt với các bước thực hiện P1 Chỉ cóđiều lúc này P2 trở thành khung hiện tại, còn khung P1 trở thành khung thamchiếu mới
3.2 Sơ đồ giải nén trong chuẩn H 261
Trang 21- Để giải thích cho cách hoạt động của sơ đồ nén này, ta sẽ sử dụng một kịchbản và ký hiệu giống như phần “2.3 Sơ đồ nén trong chuẩn H 261”.
độ Intra-frame Khung được giải mã đầu tiên có giá trị là I* xuất hiện tại điểm
số 1 Kết hợp với điểm số 5 có đầu vào là 0 (do công tắc đang ở chế độ frame) nên đầu ra ở điểm số 4 sẽ vẫn là I* Nó được gửi dưới dạng frameđầu ra và cũng đồng thời được lưu trữ trong Frame Memory
Intra Sau đó, mã đầu vào cho frame P1 sẽ được giải mã và lỗi dự đoán D1 sẽ đượcnhận tại điểm số 1 Vì vector chuyển động cho MB hiện tại cũng được giải mãentropy và được gửi đến bộ bù chuyển động nên MB dự đoán tương ứng làP’1có thể được đặt trong frame I là đầu ra tại điểm số 2 và là đầu vào của bộcộng (tại điểm số 3) Lúc này đầu ra tại điểm số 4 sẽ là P’1* = P’1 + D1 và nóđược gửi ra như một khung đã giải mã (khung đầu ra), và cũng tương tự nócũng đồng thời lại được lưu trữ trong Frame Memory Các bước giải mã cho
P2 tương tự như P1
4 Quá trình nén các frame
4.1 Quá trình nén frame I
Trang 22- Quá trình thực hiện tương tự nén ảnh JPEG.
4.2 Quá trình nén frame P
- Như đã đề cập ở trên, frame P liên quan tới 2 bộ trong sơ đồ nén của chuẩn
H 261 là bộ đánh giá ước lượng chuyển động và bộ bù chuyển động, vì thếđây chính là 2 bộ phận quan trọng nhất trong quá trình nén frame P
4.2.1 Kỹ thuật đánh giá chuyển động
- Đây là kỹ thuật dùng để xác định vector chuyển động