Đăng ký Đăng nhập
Trang chủ Tìm hiểu về các chuẩn nén video itu và ứng dụng thử nghiệm...

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

.PDF
29
1456
104

Mô tả:

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 về các chuẩn nén video ITU và ứ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 hiện : 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 Table of Contents Phân công công việc Phần 1: Tìm hiểu về các chuẩn nén ITU Vũ Anh Vũ 20093331 Tổng quan về các 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 của H.261 và 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 trên Matlab Nguyễn Lê Khôi 20091485 Chương trình nén video theo chuẩn H.261 trên Java Phần I. Tổng quan về chuẩn nén video ITU 1.1. Giới thiệu về tổ chức ITU ITU là Tổ chức viễn thông quốc tế thuộc Liên hiệp quốc, được thành lập vào năm 1865 (với tên gọi tiền thân là Liên minh Điện báo quốc tế - International Telegraph Union). Các hoạt động của ITU bao trùm tất cả các vấn đề thuộc ngành Công nghệ Viễn thông và Thông tin gồm có điều phối các quốc gia trên toàn cầu trong việc chia sẻ và sử dụng các tài nguyên Viễn thông như tần số vô tuyến điện, quỹ đạo vệ tinh, hỗ trợ phát triển cơ sở hạ tầng viễn thông tại các nước đang phát triển và xây dựng các tiêu chuẩn chung trên thế giới về kết nối các hệ thống liên lạc. ITU cũng đang tham gia nghiên cứu và tìm giải pháp cho các thách thức chung trên toàn cầu trong thời đại hiện nay như biến đổi khí hậu và bảo mật, an toàn thông tin. ITU có 3 lĩnh vực hoạt động chính 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 về các chuẩn video Hiện nay trên thế giới có hai tổ chức chịu trách nhiệm chính trong việc đưa ra các chuẩn về nén và giải nén video đó là ITU và ISO. • Tổ chức ITU – International Telecommunications Union o Chuyên tập trung vào các ứ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ỏ và hiệu quả cao trong việc truyền tải trên mạng. o Dòng H.26x bao gồm các chuẩn H.261, H.262, H.263, và H.264. • Tổ chức ISO – International Standards Organization o Đưa ra dòng MPEG chủ yếu tập trung phát triển các ứng dụng đa người dùng (phim, video,...). o Dòng MPEG bao gồm các chuẩn MPEG-1, MPEG-2, MPEG- 4. Hai tổ chức này cùng nhau lập nên nhóm JVT-Joint Video Team để đưa ra chuẩn H.264 - là chuẩn nén video mới nhất hiện nay và được xem là dòng nén video thế hệ thứ 3. Quá trình phát triển các dòng video H.26x và MPEG 1.3. Các chuẩn nén video của ITU 1.3.1. Chuẩn H.261 Chuẩn H.261 là chuẩn nén video hoàn chỉnh đầu tiên trên thế giới, được giới thiệu vào năm 1993 bởi tổ chức ITU. H.261 nằm trong chuẩn khuyến nghị H.323 của ITU. Ban đầu H.261 được thiết kế cho mạng ISDN, cho những ứng dụng hội nghị trực tuyến video hai chiều với tốc độ truyền dữ liệu bằng cấp số nhân của 64Kbit/s, độ trễ đầu cuối thấp và bitrate cố định. H.261 hỗ trợ hai độ phân giải là CIF (352x288) và QCIF (176x144), sử dụng kĩ thuật lấy mẫu 4:2:0. Thuật toán nén của chuẩn này không phức tạp do yêu cầu việc nén và giải nén phải được thực hiện theo thời gian thực. 1.3.2. Chuẩn H.263 H.263 là chuẩn mã hóa video/audio do nhóm VCEG (Video Coding Experts Group) thuộc tổ chức ITU đưa ra năm 1998. H.263 được coi là thế hệ tiếp theo của chuẩn H.261, cũng được dùng cho các hội nghị video trực tuyến. 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ẩn H.261, MPEG-1 và MPEG-2. Thiết kế cơ bản giống với H.261, cộng thêm nhiều cải tiến về khả năng nén và tính linh hoạt. Những cải tiến của H.263 so với chuẩn 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. • H.263 có những cải tiến trong việc dự đoán các chuyển động và thuật toán giảm dữ liệu dư thừa, phân lớp được tối ưu hơn nhiều so với các chuẩn trước đó. • Vector chuyển động có độ chính xác nửa pixel • Thuật toán mã hóa mới, thay thế RLE và Huffman • Tiên đoán nâng cao: sử dụng 4 blocks 8x8 thay vì 1 block 16x16 => chi tiết hơn • Tiên đoán dựa vào frame trước và sau, tương tự như MPEG Các độ phân giải mà H.263 hỗ trợ 1.3.3. Ưu điểm và nhược điểm của các chuẩn video H.26x H.26x được thiết kế với mục đích sử dụng cho dịch vụ hội nghị trực tuyến, vì thế nó co những ưu điểm phù hợp với nhu cầu trên: • • • • Độ trễ thấp Mã hóa từng khung hình 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ào nội dung của video Bên cạnh đó, chuẩn nén H.26x cũng có một số mặt hạn chế: • Không được thiết kế cho việc ghi lại và xem lại video. o Không có cách nào để quay ngược hoặc tua nhanh video, vì ta không mã hóa các khung từ toàn bộ các block intra-coded của nó. o Tuy vậy vẫn có thể khắc phục được việc này, nhưng nó sẽ ảnh hưởng đến sự cố định của bitrate, nhất là với mạng ISDN • 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). Có thể xử lý bằng cách: o Dừng giải mã, tìm đến GOB tiếp theo để giải mã tiếp. o Intra blocks sẽ dần hồi phục vài giây sau đó. 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 Nhìn chung, quá trình nén và giải nén của H.261 và MPEG-1 không có sự khác biệt nào đá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 các ảnh được tái tạo (block) cho mục đích của vecto chuyển động để tìm ra P-frame tiếp theo. • Quantization: nén tốt hơn bằng các hệ số DCT (Discrete Cosine Transform) để đạt được chất lượng đòi hỏi. • Entropy: gán những từ mã ngắn hơn cho những sự kiện phổ biến và sử dụng những sự kiện ít phổ biến hơn. Quá trình nén theo chuẩn MPEG-1 • Ảnh đầu vào được đưa vào bộ trừ và bộ đoán chuyển động • Bộ đoán chuyển động sẽ so sánh các khối ảnhmớ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 .Motion Vector sẽ đặc trưng cho sự dịch chuyểntheo 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 • 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 đượcgọ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) 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á • Bộ bù chuyển động gửi các Predicted macroblock đến bộ trừ để tính sai số dự đoán. • Sai số tiên đoán này sẽ đc biến đổi DCT sau đó lượng tử hóa rồi cùng với vector chuyển động được mã hóa entropy Cái gốc của sự khác nhau giữa MPEG1 và H26X là chủ yếu nằm ở khâu tiên đoán các frame mới và cách thức tính toán sai lệch giữa các frame hiện tại và frame phỏng đoán. Điều này sẽ dẫn tới các khác nhau về chất lượng hình ảnh cũng như bit rates. MPEG1 sử dụng B-picture vì thế sơ đồ mã hóa cần dùng đến 2 frame memory để lưu trữ frame cho việc tiên đoán 2 chiều MPEGx có tốc độ quét,độ phân giải … cao hơn h26x cùng thế 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 này thể hiện trong quá trình lấy mẫu và 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 Quá trình giải nén theo chuẩn MPEG-1 • Ngược lại với quá trình nén • Vector chuyển động được tách ra và đưa vào bộ bù chuyển động. • Các hệ số được đưa vào bộ lượng tử hóa ngược và bộ biến đổi ngược IDCT để biến tín hiệu từ miền tần số thành tín hiệu ở miền không gian • Kết hợp với ảnh tham khảo để ra được ảnh gốc. 2.2. So sánh với phương pháp nén theo chuẩn H26X với chuẩn MPEG Các chuẩn H26X: H261 ,H262, H263, H264 ... được đưa ra trong các khuyến nghị của ITU-T. Còn các chuẩn MPEG: MPEG1, MPEG2, MPEG3, MPEG4 - Part2, MPEG4Part 10 … được đưa ra trong các khuyến nghị của ISO. Tuy nhiên, các chuẩn MPEG và H26X lại có quan hệ chặt chẽ với nhau: cả MPEG1 và MPEG2 cùng có nguồn gốc từ chuẩn H261; chuẩn MPEG2 giống chuẩn H262; chuẩn MPEG 4- part10 giống chuẩn H264. 2.2.1. Những điểm giống nhau Các phương pháp nén theo chuẩn MPEG và H26x có nhiều điểm giống nhau. Có thể kể ra một số điểm giống nhau cơ bản như : • Do mắt người có thể phân biệt sự thay đổi về độ sáng của ảnh (brightness) tốt hơn so với sự thay đổi về màu (chromaticity) nên hầu hết các sơ đồ nén theo chuẩn MPEG và H26X đều tiến hành chia bức ảnh thành một thành phần về độ sáng Y (luminance) và hai thành phần về độ màu UV (chrominance). • Các tín hiệu video thành phần được lấy mẫu (samples) và số hoá (digitised) để tạo nên các điểm ảnh rời rạc theo tỷ lệ 4 : 2 : 2, 4 : 2 : 0 và 4 : 1 : 1. • Các sơ đồ nén theo MPEG, H26X đều dùng kỹ thuật subsampling và lượng tử hoá trước khi mã hoá nhằm giảm kích thước bức ảnh đầu vào theo cả chiều ngang và chiều dọc Những điểm giống nhau trong quá trình nén: • Đều tiến hành chia khung hình thành các khối điểm ảnh để việc xử lý các khung hình có thể được thực hiện ở cấp độ block. • Giảm thời gian phụ thuộc giữa các khối trong các khung hình kế tiếp. Điều này thực hiện bằng các kỹ thuật ước lương chuyển động và bù chuyển động . Đối với bất kì khối nào, việc tìm kiếm được thực hiện trong các khung mã hóa trước đó để xác định vector chuyển động mà sau đó được sử dụng bởi bộ mã hóa và giải mã để dự đoán khối chủ đề. • Giảm độ dư thừa không gian trong các khung hình video bằng cách mã hóa một số khối gốc thông qua việc dự báo về không gian, lượng tử hóa, các phép biến đổi và mã hóa dữ liệu ngẫu nhiên, mã hóa độ dài thay đổi. • Giảm không gian dư thừa còn lại tồn tại trong các khung hình video bằng cách mã hóa các khối còn lại … tức là sự sai khác giữa các khối tương ứng ban đầu và các khối dự đoán , một lần nữa thông qua biến đổi, lượng tử hóa và mã hóa dữ liệu ngẫu nhiên. 2.2.3. Những điểm khác nhau Các chuẩn H26X thường được tối ưu hóa cho truyền tải video thời gian thực như hội nghi truyền hình, truyền tải video giữa các thiết bị di động. Còn chuẩn MPEG chủ yếu thiết kế cho việc lưu trữ và trình chiếu nên có chất lượng tốt hơn. Những điểm khác nhau trong quá trình nén theo chuẩn H26X và MPEG: • MPEG có tốc độ quét, độ phân giải … cao hơn H26X cùng thế 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 này thể hiện trong quá trình lấy mẫu và lượng tử hóa. • Trong H26X có điều chỉnh tốc độ dòng bít, phù hợp với môi trường truyền dẫn tin mạng viễn thông. Kỹ thuật nén trong hầu hết các phiên bản H26X dựa trên việc nén theo đối tượng, các đối tượng trong các cảnh video được theo dõi riêng rẽ và được nén lại cùng nhau. H26X sử dụng bit rate control dùng để quản lý bộ đệm,kiểm soát quá trình lượng tử hóa. Đây là công đoạn dùng để kiểm soát chất lượng video cũng như bit rate đầu ra thông qua kiểm soát quá trình lượng tử hóa và quản lý dữ liệu nén trong bộ đệm. Chìa khoá để điều khiển tốc độ truyền là trật tự dữ liệu đã nén trong bộ đệm (buffer). Việc nén có thể được tiến hành với việc loại bỏ một vài thông tin đã được lựa chọn. Ảnh hưởng nhỏ nhất đối với chất lượng toàn bộ khung hình có thể đạt được bằng cách bỏ bớt các thông tin chi tiết. Điều này đảm bảo giới hạn tỉ lệ nén dữ liệu trong khi chất lượng của khung hình suy giảm tối thiểu. • Trong H26X, các bộ mã hóa video thường hỗ trợ một khoảng khá rộng tốc độ nén, điều này cho phép những lựa chọn khác nhau giữa chất lượng và băng thông. Phần lớn các phương pháp nén video đều dựa vào việc mã khác nhau giữa các frame (inter-frame). Điều này có nghĩa là, thay vì phải gửi đi tất cả các frame, thì chỉ gửi đi sự sai khác của một frame với frame trước đó. Phương pháp mã hóa này làm việc tốt với những video có những thay đổi hình ảnh ít, tuy nhiên sẽ là ảnh hưởng đáng kể đến chất lượng hình ảnh và băng thông nếu có sự thay đổi lớn giữa các frame hình ảnh. Đa số các chuẩn mã hóa vừa cho phép mã hóa với tốc độ bít cố định (chất lượng hình ảnh thay đổi) hay tốc bít thay đổi (chất lượng hình ảnh ít thay đổi). Các phương pháp mã hóa video nói chung thường kết hợp cảkiểu mã hóa intra-frame và inter-frame. Trong kiểu mã hóa intra-frame, một frame ảnh được chia thành các khối, mỗi khối này được biến đổi thành tập các hệ số thông qua biến đổi Cosin rời rạc. Một nhóm các khối được kết hợp lại thành một thực thể duy nhất (slice), và đôi khi được đóng gói vào một gói. Nếu có lỗi trên đường truyền xảy ra thì có thể cảmột nhóm các khối sẽ bị mất, tạo nên “sọc” trong các ảnh giải mã. Điều này xảy ra bởi vì các hệ số của biển đổi Cosin rời rạc trong mỗi khối được tính toán dựa trên khối đầu tiên trong slice, nếu lỗi làm mất thông tin của khối đầu tiên thì tất cả các khối còn lại trong slice là không xác định. Một vài lỗi có thể làm hỏng cấu trúc của frame, do đó không có khả năng tái tạo lại frame. Với kiểu mã hóa inter-frame (motion based coding), các vector chuyển động được xác định và mã hóa cho mỗi khối. Trong các hệ thống mã hóa kiểu inter-frame, việc mất một frame có thể làm cho các frame theo sau nó trở nên không sử dụng được cho đến khi I-frame tiếp theo được nhận, kết quả là có thể thu được hình ảnh video trắng hay hình ảnh bị đông cứng, chất lượng video bị suy giảm đáng kể. • Trong hầu hết các trường hợp các tiêu chuẩn mã hóa video H26X đều cung cấp khả năng linh động ở cả bộ mã hóa và giải mã cho việc cân bằng giữa chất lượng và tốc độ. Việc hiểu biết rõ ràng về ảnh hưởng của các bộ mã hóa và giải mã video là yếu tố quan trọng góp phần vào việc đánh giá chính xác các ảnh hưởng của mạng đến chất lượng truyền video trên mạng. Tóm lại, chuẩn nén H26X thường có tốc độ mã hoá tín hiệu thấp hơn MPEG (khoảng 1.5 Mbit/s với độ phân giải hình 352 x 288) do dùng chủ yếu trong viễn thông, truyền tải video giữa các thiết bị di động. Trong khi đó, chuẩn MPEG dùng cho thị trường giải trí hay truyền hình chất lượng cao nên có độ phân giải hình cao hơn, và mang lại chất lượng hình ảnh tốt hơn. 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: INPUT SYSTEM OUTPUT Video Video Pattern Input H.261 Compression Video Compressed 3.1.2. Kịch bản mô phỏng - Như đã trình bày ở sơ đồ trên, kịch bản thử nghiệm sẽ được xây dựng như sau: • Đầu vào Input sẽ là file video mẫu để nén cho qua khối nén theo chuần H.261 . Ở đây file mẫu đầu vào chúng em đã phân tích thành 181 ảnh liên tục của video, là dạng file .bmp và có độ phân giải là 352x288 • Khối nén theo chuẩn H.261 sẽ được trình bày theo mô hình kết hợp với phần kết quả mô phỏng ở dưới. • Kết quả output: 1 là dòng video mẫu không đổi (tức không cho qua khối nén H.261), 2 là dòng video đã nén bởi H.261 sẽ được so sánh với dòng video mẫu ban đầu. 3.1.3. Kết quả mô phỏng - Sơ đồ cấu trúc nén H.261: - Chương trình mô phỏng gồm có 9 file định dạng code của Matlab, sự tương ứng của nó với chức năng của các khối trong sơ đồ nén sẽ được trình bày dưới đây: o Khối DCT và Quantize: hàm DCT_Quantize trong file DCT_Quantize.m o Khối IDCT và DeQuantize: hàm I_DCT_Quantize trong file I_DCT_Quantize.m o Khối ước lượng chuyển động: có 2 hàm tương ứng với 2 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 bằng giải thuật 3 bước (Three Step Search-TSS). Hàm này sử dụng hàm TSS để tìm kiếm vector chuyển động cho 1 MacroBlock trong 1 cửa sổ kích thước 30x30  Hàm MCPredict_Full: tìm kiếm vector chuyển động bằng giải thuật tìm kiếm toàn bộ (Full Search) o Khối bù chuyển động: hàm MotionCompenstion o Phần mã hóa Runlength và Huffman: phần này chưa làm được, mới chỉ quét ZigZac, hàm ZigzacScan o Hàm phụ trợ:  Hàm ShowMotionVector: vẽ vector chuyển động vừa tìm ra tường ứng với mỗi MacroBlock của ảnh Frame tham chiếu. o Chương trình chính: file H261_Compress: sử dụng các khối trên mô phỏng lại quy trình nén video H261. - Kết quả mô phỏng: o Ví dụ 1 frame được xem xét đầu tiên: o Ước lượng chuyển động trong frame đó bằng vector chuyển động: ( các nét gạch chính là hướng di chuyển của các MacroBlock 16x16) o So sánh bù chuyển động của giá trị Y giữa 2 frame liên tiếp: o So sánh bù chuyển động của 2 giá trị Cr và Cb giữa 2 frame liên tiếp: o So sánh giữa 2 video trước và sau khi nén H261:
- Xem thêm -

Tài liệu liên quan