Tìm hiểu về các chuẩn nén video ITU và ứng dụng thử nghiệm

29 514 0
Tìm hiểu về các chuẩn nén video ITU và ứng dụng thử nghiệm

Đ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

Header Page of 126 BỘ GIÁO DỤC - ĐÀO TẠO 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 MÔN HỌC Xử lý tín hiệu đa phương tiện Đề tài: Tìm hiểu chuẩn nén video ITU ứng dụng thử nghiệm Giảng viên hướng dẫn : PGS.TS Nguyễn Thị Hoàng Lan Sinh viên thực Footer Page of 126 : Vũ Anh Vũ 20093331 Nguyễn Hồng Lam 20091535 Đào Hà Thanh 20092378 Lê Vinh Hiển 20091059 Nguyễn Lê Khôi 20091485 Nguyễn Anh Tuấn 20092989 Header Page of 126 Table of Contents Footer Page of 126 Header Page of 126 Phân công công việc Phần 1: Tìm hiểu chuẩn nén ITU Vũ Anh Vũ 20093331 Tổng quan chuẩn nén H.26x Đào Hà Thanh 20092378 So sánh chuẩn H.26x với MPEG Nguyễn Hồng Lam 20091535 Phân tích sơ đồ nén H.261 MPEG-1 Phần 2: Thử nghiệm nén theo chuẩn H.261 Lê Vinh Hiển 20091059 Nguyễn Anh Tuấn 20092989 Nén video theo chuẩn H.261 Matlab Nguyễn Lê Khôi 20091485 Chương trình nén video theo chuẩn H.261 Java Footer Page of 126 Header Page of 126 Phần I Tổng quan chuẩn nén video ITU 1.1 Giới thiệu tổ chức ITU ITU Tổ chức viễn thông quốc tế thuộc Liên hiệp quốc, thành lập vào năm 1865 (với tên gọi tiền thân Liên minh Điện báo quốc tế - International Telegraph Union) Các hoạt động ITU bao trùm tất vấn đề thuộc ngành Công nghệ Viễn thông Thông tin gồm có điều phối quốc gia toàn cầu việc chia sẻ sử dụng tài nguyên Viễn thông tần số vô tuyến điện, quỹ đạo vệ tinh, hỗ trợ phát triển sở hạ tầng viễn thông nước phát triển xây dựng tiêu chuẩn chung giới kết nối hệ thống liên lạc ITU tham gia nghiên cứu tìm giải pháp cho thách thức chung toàn cầu thời đại biến đổi khí hậu bảo mật, an toàn thông tin ITU có lĩnh vực hoạt động gồm: ITU-T (Viễn thông - Telecom), ITU-R (Thông tin vô tuyến - Radio), ITU-D (Phát triển viễn thông - Telecommunications Development) 1.2 Tổng quan chuẩn video Hiện giới có hai tổ chức chịu trách nhiệm việc đưa chuẩn nén giải nén video ITU ISO • Tổ chức ITU – International Telecommunications Union o Chuyên tập trung vào ứng dụng truyền thông với dòng video chuẩn H.26x, với dung lượng lưu trữ nhỏ hiệu cao việc truyền tải mạng o Dòng H.26x bao gồm chuẩn H.261, H.262, H.263, H.264 • Tổ chức ISO – International Standards Organization o Đưa dòng MPEG chủ yếu tập trung phát triển ứng dụng đa người dùng (phim, video, ) o Dòng MPEG bao gồm chuẩn MPEG-1, MPEG-2, MPEG- Hai tổ chức lập nên nhóm JVT-Joint Video Team để đưa chuẩn H.264 - chuẩn nén video xem dòng nén video hệ thứ Footer Page of 126 Header Page of 126 Quá trình phát triển dòng video H.26x MPEG 1.3 Các chuẩn nén video ITU 1.3.1 Chuẩn H.261 Chuẩn H.261 chuẩn nén video hoàn chỉnh giới, giới thiệu vào năm 1993 tổ chức ITU H.261 nằm chuẩn khuyến nghị H.323 ITU Ban đầu H.261 thiết kế cho mạng ISDN, cho ứng dụng hội nghị trực tuyến video hai chiều với tốc độ truyền liệu cấp số nhân 64Kbit/s, độ trễ đầu cuối thấp bitrate cố định H.261 hỗ trợ hai độ phân giải CIF (352x288) QCIF (176x144), sử dụng kĩ thuật lấy mẫu 4:2:0 Thuật toán nén chuẩn không phức tạp yêu cầu việc nén giải nén phải thực theo thời gian thực 1.3.2 Chuẩn H.263 H.263 chuẩn mã hóa video/audio nhóm VCEG (Video Coding Experts Group) thuộc tổ chức ITU đưa năm 1998 H.263 coi hệ chuẩn H.261, dùng cho hội nghị video trực tuyến Năm 1998, ITU cải tiến chuẩn cho chuẩn H.263v2 (còn gọi H.263+ hay H.263 1998) Năm 2000, chuẩn H.263v3 đời (còn gọi H.263++ hay H.263 2000) Footer Page of 126 Header Page of 126 H.263 phát triển dựa kinh nghiệm rút từ chuẩn H.261, MPEG-1 MPEG-2 Thiết kế giống với H.261, cộng thêm nhiều cải tiến khả nén tính linh hoạt Những cải tiến H.263 so với chuẩn H.261: • H.263 có chất lượng video tốt tốc độ bit (lượng bit lưu trữ cho đơn vị thời gian) nhỏ • Mục tiêu H.263 truyền video chất lượng chấp nhậ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 • H.263 có cải tiến việc dự đoán chuyển động thuật toán giảm liệu dư thừa, phân lớp tối ưu nhiều so với chuẩn trước • Vector chuyển động có độ xác nửa pixel • Thuật toán mã hóa mới, thay RLE Huffman • Tiên đoán nâng cao: sử dụng blocks 8x8 thay block 16x16 => chi tiết • Tiên đoán dựa vào frame trước sau, tương tự MPEG Các độ phân giải mà H.263 hỗ trợ 1.3.3 Ưu điểm nhược điểm chuẩn video H.26x H.26x thiết kế với mục đích sử dụng cho dịch vụ hội nghị trực tuyến, co ưu điểm phù hợp với nhu cầu trên: • • • • Độ trễ thấp Mã hóa khung hình Chỉ sử dụng phần nhỏ đệm để làm mượt (gây chút trễ) Bitrate cố định Footer Page of 126 Header Page of 126 • Chỉ gửi số lượng block mã hóa intra khung, biến đổi tốc độ liệu phụ thuộc vào nội dung video Bên cạnh đó, chuẩn nén H.26x có số mặt hạn chế: • Không thiết kế cho việc ghi lại xem lại video o Không có cách để quay ngược tua nhanh video, ta không mã hóa khung từ toàn block intra-coded o Tuy khắc phục việc này, ảnh hưởng đến cố định bitrate, với mạng ISDN • Hạn chế việc xử lý bit lỗi • Những lỗi phá hủy đoạn video (Ví dụ lỗi giải mã Huffman GOB) Có thể xử lý cách: o Dừng giải mã, tìm đến GOB để giải mã tiếp o Intra blocks dần hồi phục vài giây sau Footer Page of 126 Header Page of 126 Phần II So sánh chuẩn nén H.26x MPEG 2.1 Sơ đồ khối H.261 MPEG-1 Nhìn chung, trình nén giải nén H.261 MPEG-1 khác biệt đáng kể 2.1.1 Quá trình nén • Control : điểu khiển tốc độ dòng bit • Memory : Sử dụng để chứa ảnh tái tạo (block) cho mục đích vecto chuyển động để tìm P-frame • Quantization: nén tốt hệ số DCT (Discrete Cosine Transform) để đạt chất lượng đòi hỏi • Entropy: gán từ mã ngắn cho kiện phổ biến sử dụng kiện phổ biến Footer Page of 126 Header Page of 126 Quá trình nén theo chuẩn MPEG-1 • Ảnh đầu vào đưa vào trừ đoán chuyển động • Bộ đoán chuyển động so sánh khối ảnhmới đưa vào với khối ảnh đưa vào trước lưu lại cácảnh dùng để tham khảo (Reference Picture) Kết đoán chuyển động tìm khốiảnh ảnh tham khảo gần giống với khối ảnh Motion Vector đặc trưng cho dịch chuyểntheo hai chiều dọc ngang khối ảnh cần mã hoá so với ảnh tham khảo • Bộ đoán chuyển động đồng thời gửi khối ảnh tham khảo mà chúng thường đượcgọi khối tiên đoán (Predicted macroblock) tới trừ để trừ với khối ảnh cần mã hoá(thực trừ điểm ảnh tương ứng tức Pixel by pixel) chúng đặc trưng cho sai khác khối ảnh cần tiên đoán khối ảnh thực tế cần mã hoá • Bộ bù chuyển động gửi Predicted macroblock đến trừ để tính sai số dự đoán • Sai số tiên đoán đc biến đổi DCT sau lượng tử hóa với vector chuyển động mã hóa entropy Cái gốc khác MPEG1 H26X chủ yếu nằm khâu tiên đoán frame cách thức tính toán sai lệch frame frame đoán Điều dẫn tới khác chất lượng hình ảnh bit rates MPEG1 sử Footer Page of 126 Header Page 10 of 126 dụng B-picture sơ đồ mã hóa cần dùng đến frame memory để lưu trữ frame cho việc tiên đoán chiều MPEGx có tốc độ quét,độ phân giải … cao h26x hệ nên tôc độ truyền tín hiệu cao hơn_bit rate cao hơn, chất lượng hình ảnh tốt hơn, điều thể trình lấy mẫu lượng tử hóa 2.2.2 Quá trình giải nén Quá trình giải nén theo chuẩn H.261 Footer Page 10 of 126 Header Page 15 of 126 3.1.2 Kịch mô - Như trình bày sơ đồ trên, kịch thử nghiệm xây dựng sau: • Đầu vào Input file video mẫu để nén cho qua khối nén theo chuần H.261 Ở file mẫu đầu vào chúng em phân tích thành 181 ảnh liên tục video, dạng file bmp có độ phân giải 352x288 • Khối nén theo chuẩn H.261 trình bày theo mô hình kết hợp với phần kết mô • Kết output: dòng video mẫu không đổi (tức không cho qua khối nén H.261), dòng video nén H.261 so sánh với dòng video mẫu ban đầu Footer Page 15 of 126 Header Page 16 of 126 3.1.3 Kết mô - Sơ đồ cấu trúc nén H.261: - Chương trình mô gồm có file định dạng code Matlab, tương ứng với chức khối sơ đồ nén trình bày đây: o Khối DCT Quantize: hàm DCT_Quantize file DCT_Quantize.m o Khối IDCT DeQuantize: hàm I_DCT_Quantize file I_DCT_Quantize.m o Khối ước lượng chuyển động: có hàm tương ứng với giải thuật tìm kiếm vector chuyển động khác nhau:  Hàm MCPredict_3Step: tìm kiếm vector chuyển động giải thuật bước (Three Step Search-TSS) Hàm sử dụng hàm TSS để tìm kiếm vector chuyển động cho MacroBlock cửa sổ kích thước 30x30  Hàm MCPredict_Full: tìm kiếm vector chuyển động giải thuật tìm kiếm toàn (Full Search) o Khối bù chuyển động: hàm MotionCompenstion o Phần mã hóa Runlength Huffman: phần chưa làm được, quét ZigZac, hàm ZigzacScan o Hàm phụ trợ:  Hàm ShowMotionVector: vẽ vector chuyển động vừa tìm tường ứng với MacroBlock ảnh Frame tham chiếu o Chương trình chính: file H261_Compress: sử dụng khối mô lại quy trình nén video H261 Footer Page 16 of 126 Header Page 17 of 126 - Kết mô phỏng: o Ví dụ frame xem xét đầu tiên: o Ước lượng chuyển động frame vector chuyển động: ( nét gạch hướng di chuyển MacroBlock 16x16) Footer Page 17 of 126 Header Page 18 of 126 o So sánh bù chuyển động giá trị Y frame liên tiếp: o So sánh bù chuyển động giá trị Cr Cb frame liên tiếp: Footer Page 18 of 126 Header Page 19 of 126 Footer Page 19 of 126 Header Page 20 of 126 o So sánh video trước sau nén H261: Footer Page 20 of 126 Header Page 21 of 126 3.2 Chương trình nén video theo chuẩn H.261 Java 3.2.3 Sơ đồ mã hóa Trong chương trình chưa có lọc Đầu vào ảnh hệ màu YUV 4:2:0 (Chương trình Converter với file video “C:\foreman_qcif.y4m”) RGB24 (Chương trình Converter_RGB với file video “C:\ foreman_qcif.y4m.176x144.RGB24.avi” - chương trình chưa hoàn chỉnh) File có độ dài 10 giây, 30 frame/s => tổng số 300 frame Đối với hệ RGB24 có thêm phần chuyển đổi hệ màu RGB sang YUV 4:2:0 Hoạt động chương trình bên phía server có nhiệm vụ đọc file, nén truyền TCP: Vòng lặp: Đọc file: frame có 176x144=25344 byte liệu kênh Y 88x72=6336 liệu cho kênh Cb & Cr Trường hợp Intraframe: thực a Chia thành macroblock 16x16 b Thực biến đổi DCT (khối DCT) i hàm DCT() nhận đầu vào giá trị điểm macroblock ii trả mảng phần tử biến đổi DCT c Thực lượng tử hóa (khối Q) Footer Page 21 of 126 Header Page 22 of 126 i hàm Q() nhận đầu vào mã tương ứng với kênh (Y=0; Cb & Cr=1) với liệu sau biến đổi DCT Sử dụng bảng lượng tử qtableY qtableCb, qtableCr tương ứng ii trả mảng phần tử lượng tử hóa d Thực quét zigzag i Hàm Z() nhận đầu vào mảng sau lượng tử hóa thực xếp lại theo thứ tự zigzag nhờ bảng ztable ii trả mảng phần tử xếp zigzag e Thực mã hóa RLE (khối VLC) i Tách riêng thành phần DC, áp dụng DPCM lưu sang mảng riêng ii 63 phần tử AC lại mã hóa RLE, đầu mảng byte tương ứng f Truyền liệu dòng qua socket g Chuyển sang bước Trường hợp Intraframe: a Ước lượng chuyển động (khối Motion Estimation) i Chia thành macroblock 16x16, sử dụng tính toán MAD hàm mad() để tìm vectơ chuyển động b Bù chuyển động (khối Motion Compensation) i Sử dụng liệu kênh Y mảng nhớ bước vòng lặp trước ii dịch chuyển khối theo vectơ iii lấy sai khác kênh Y khung hình tham chiếu khung hình tính toán (đối với liệu kênh Cb & Cr lấy giá trị vectơ ½ giá trị vectơ kênh Y thực tương tự, nhiên chương trình không thực bù chuyển động cho kênh Cb & Cr) c Lặp lại bước từ 2a đến 2g Lưu liệu kênh Y vào mảng nhớ để so sánh trường hợp interframe (khối Frame Memory) 3.2.2 Sơ đồ giải mã Footer Page 22 of 126 Header Page 23 of 126 Việc giải mã thực bên phía client với thao tác ngược lại so với bên phía server, khác client không thực đọc file mà sau nhận liệu thực chuyển đổi hệ màu từ YUV 4:2:0 sang RGB888 hàm YcbCr2RGB() để hiển thị hàm showimage() Bên phía server sử dụng hàm để hiển thị kết để so sánh với bên client Một điểm khác với bên server biết trước số lượng frame bên client liên tục nhận liệu hết 3.2.3 Điều khiển thông số Một đặc điểm chương trình ta điều khiển thông số chất lượng (dựa kiểu liệu truyền hay giá trị lượng tử hóa), số lượng khung hình dự đoán p-frame từ phía client • Data Type: giá trị cho kiểu short (2 byte) hay giá trị cho kiểu byte (1 byte) Thông số liên quan tới giá trị phần tử bảng lượng tử hóa Nếu giá trị bảng lượng tử hóa nhỏ, sau thực tính toán hàm chương trình giá trị sau lượng tử hóa đủ nhỏ để giới hạn khoảng byte [0,255] Tuy nhiên trường hợp ngược lại giá trị vượt khoảng này, kiểu short phải sử dụng để tránh mát thông tin lớn Với kiểu short thực với bảng lượng tử hóa toàn giá trị 1, chất lượng ảnh tốt, gần với ảnh gốc tốc độ xử lí chậm • Q Value: giá trị số thực dương, mặc định Tăng giá trị lượng tử hóa đồng nghĩa với việc kết sau lượng tử hóa tăng (quyết định chương Footer Page 23 of 126 Header Page 24 of 126 trình) giúp làm giảm thiểu sai lệch mát vượt phạm vi kiểu liệu byte Giá trị từ 1.5-2 cho kết chất lượng chấp nhận • P-frame: số frame dự đoán (predicted frame) i-frame (intra frame) Chất lượng p-frame không i-frame tồn sai số, nhiên kích thước giảm đáng kể 3.2.4 Demo chương trình Chương trình Converter Khởi động với server cửa sổ màu ghi, client cửa sổ màu xanh Click Load bên phía server click Wait bên phía client để bắt đầu Ta thấy chất lượng với kiểu liệu byte, giá trị Q i-frame không tốt, điều sai số việc tính toán, làm tròn lưu trữ java (ví dụ Footer Page 24 of 126 Header Page 25 of 126 điểm ảnh màu trắng (R=G=B=255) có sai lệch lớn, điều tính toán cần sai lệch đơn vị ta có => & -1 => 255) Kích thước liệu gửi có giảm so với không nén: Y=25344 Cb=6336 Cr=6336 (đơn vị: byte) Y=18696 Cb=2296 Cr=1018 Intraframe=true Tại p-frame Chất lượng giảm so với i-frame, nhiên kích thước (kênh Y) giảm đáng kể, giúp làm tăng tỉ lệ nén Y=8274 Cb=2050 Cr=900 Intraframe=false Tạm dừng click Pause, thay đổi giá trị Q Value thành 2, Submit Continue (quá trình áp dụng cho lần thay đổi thông số:Pause-thay đổi-Submit-Continue) Footer Page 25 of 126 Header Page 26 of 126 Ta thấy chất lượng có tăng lên, nhiên vấn đề sinh số macroblock có giá trị sai khác hoàn toàn phạm vi lượng tử hóa vượt phạm vi biểu diễn byte Tuy nhiên kích thước liệu lớn, hiệu nén thấp Y=24938 Cb=3618 Cr=2278 Intraframe=true Giảm giá trị Q mức 0.5 Chất lượng ảnh giảm đáng kể, nhiên kích thước liệu giảm Y=12770 Cb=1486 Cr=912 Intraframe=true Thay đổi kiểu liệu Data Type Ta thấy chất lượng tốt, không khác nhiều so với ảnh gốc Footer Page 26 of 126 Header Page 27 of 126 Tuy nhiên bảng lượng tử lúc gồm toàn giá trị (coi bỏ qua bước lượng tử hóa) kích thước liệu lớn, chí lớn ảnh không nén (do kích thước kiểu short lớn gấp đôi kiểu byte) Y=40844 Cb=8286 Cr=5848 Intraframe=true Chương trình Converter_RGB Do sai số từ trình chuyển đổi hệ màu dẫn tới chất lượng ảnh phía bên server (sau thực RGB2YCbCr-DCT-Q-Z-RLE-IRLE-IZ-IQ-IDCT-YCbCr2RGB) chất lượng tốt dẫn tới ảnh nhận bên client không tốt.Ngoài chương trình chưa hoàn chỉnh 3.2.5 Nhận xét - - Ưu điểm o Chương trình áp dụng kĩ thuật nén theo chuẩn H.261 với đầy đủ bước o Thực truyền liệu tới địa IP qua TCP sử dụng truyền video qua mạng (LAN) máy với o Có khả điều khiển thông số, chất lượng Nhược điểm o Chưa có lọc mã hóa Huffman cho hiệu nén cao (hiện yêu cầu tốc độ lớn ~3Mbps, sử dụng mã hóa Huffman giảm nhiều ~200-500Kbps) Footer Page 27 of 126 Header Page 28 of 126 o Giải thuật tìm kiếm bước có hiệu chưa cao, nên sử dụng giải thuật tiên tiến việc tìm vectơ chuyển động o Sai số lớn dẫn tới chất lượng hình ảnh chưa cao, đặc biệt xử lí ảnh RGB o Tốc độ xử lí chậm, chưa đáp ứng yêu cầu 30 frame/s o Footer Page 28 of 126 Header Page 29 of 126 Tài liệu tham khảo Video Compression and Communications: From Basics to H.261, H.263, H.264, MPEG4 for DVB and HSDPA-Style Adaptive Turbo-Transceivers – Wiley – 11/2007 H.263 - Germain Adriaan – 2/2012 Introduction to MPEG; MPEG-1, MPEG-2 and MPEG-4 - Lawrence Harte 8/2006 …… Footer Page 29 of 126 ... Video Team để đưa chuẩn H.264 - chuẩn nén video xem dòng nén video hệ thứ Footer Page of 126 Header Page of 126 Quá trình phát triển dòng video H.26x MPEG 1.3 Các chuẩn nén video ITU 1.3.1 Chuẩn. .. trách nhiệm việc đưa chuẩn nén giải nén video ITU ISO • Tổ chức ITU – International Telecommunications Union o Chuyên tập trung vào ứng dụng truyền thông với dòng video chuẩn H.26x, với dung... 1: Tìm hiểu chuẩn nén ITU Vũ Anh Vũ 20093331 Tổng quan chuẩn nén H.26x Đào Hà Thanh 20092378 So sánh chuẩn H.26x với MPEG Nguyễn Hồng Lam 20091535 Phân tích sơ đồ nén H.261 MPEG-1 Phần 2: Thử nghiệm

Ngày đăng: 18/05/2017, 15:09

Từ khóa liên quan

Mục lục

  • Đề tài: Tìm hiểu về các chuẩn nén video ITU và ứng dụng thử nghiệm

  • Phân công công việc

  • Phần I. Tổng quan về chuẩn nén video ITU

    • 1.1. Giới thiệu về tổ chức ITU

    • 1.2. Tổng quan về các chuẩn video

    • 1.3. Các chuẩn nén video của ITU

      • 1.3.1. Chuẩn H.261

      • 1.3.2. Chuẩn H.263

      • 1.3.3. Ưu điểm và nhược điểm của các chuẩn video H.26x

      • Phần II. So sánh chuẩn nén H.26x và MPEG

        • 2.1. Sơ đồ khối của H.261 và MPEG-1

          • 2.1.1. Quá trình nén

          • 2.2.2. Quá trình giải nén

          • 2.2. So sánh với phương pháp nén theo chuẩn H26X với chuẩn MPEG

            • 2.2.1. Những điểm giống nhau

            • 2.2.3. Những điểm khác nhau

            • Phần III. Cài đặt thử nghiệm

              • 3.1. Mô phỏng nén video theo chuẩn H.261 bằng Matlab

                • 3.1.1. Mô hình thực nghiệm:

                • 3.1.2. Kịch bản mô phỏng

                • 3.1.3. Kết quả mô phỏng

                • 3.2. Chương trình nén video theo chuẩn H.261 trên Java

                  • 3.2.3. Sơ đồ mã hóa

                  • 3.2.2. Sơ đồ giải mã

                  • 3.2.3. Điều khiển thông số

                  • 3.2.4. Demo chương trình

                  • 3.2.5. Nhận xét

Tài liệu cùng người dùng

Tài liệu liên quan