Chương 1 MÃ HÓA VIDEO TRONG XU THẾ IOT VÀ CƠ HỘI CHO MÃ HÓA MJPEG 1.1 Tổng quan mã hóa video Nén hay mã hóa video là việc giảm thiểu và loại bỏ các thành phần dư thừa trong video qua đó giúp cho lưu trữ video trên ổ đĩa và truyền qua mạng một cách hiệu quả. Nén video có thể chia ra làm hai dạng chính: nén mất mát và nén không mất mát. Nén không mất mát là phương pháp nén mà video được giải mã giống với video trước khi mã hóa. Phương pháp này cho chất lượng hình ảnh cao nhất nhưng phải đánh đổi bằng việc tỷ lệ nén ở mức độ thấp.
Nén mất mát có nghĩa là video sau khi được giải mã có sai khác với video gốc. Ưu điểm của phương pháp này là tỷ lệ nén cao hơn rất nhiều so với nén không mất mát. Trong nén mất mát, các dữ liệu mất mát là những dữ liệu dư thừa, dữ liệu này thường là mắt người không thể hoặc ít có khả năng cảm nhận. Dữ liệu dư thừa được chia làm 4 loại chính: dư thừa về khả năng nhận thức (perceptual redundancies), dư thừa về mặt không gian (spatial redundancies), dư thừa về mặt thời gian (temporal redundancies), dư thừa về mặt thống kê (statistical redundancies).
Dư thừa về mặt nhận thức là những chi tiết của bức ảnh mà mắt người không thế cảm nhận được. Bất cứ dữ liệu nào mà mắt người không thể cảm nhận được đều có thể loại bỏ được. Loại bỏ dư thừa về khả năng nhận thức được thực hiện bởi quá trình lấy mẫu các thành phần màu. Dư thừa về mặt thời gian: Video là tập hợp chuỗi các khung hình liên tiếp, những khung hình liên tiếp có tỷ lệ lớn các thành phần giống nhau.
Do đó, việc loại bỏ dữ liệu giống nhau (dư thừa về mặt thời gian) giữa các khung hình giúp tăng tỷ lệ giá trị không và lân cận không. Trong các mã hóa video, xác định và loại bỏ dư thừa về mặt thời gian chính là chìa khóa chính để tăng tỷ lệ nén lên nhiều lần. Dư thừa về mặt không gian là sự thay đổi trong cấp độ của ảnh. Độ nhậy cảm của mắt người tỷ lệ nghịch với tần số của tín hiệu, điều này có nghĩa là khả năng phân biệt sự thay đổi của mắt người cũng giảm dần đối với các tần số cao.
Tính chất này của mắt người được gọi là tích hợp không gian (spatial integration). Dựa vào đặc tính này các phương pháp mã hóa video có thể loại bỏ hoặc giảm các tần số cao mà không ảnh hưởng đến cảm nhận của mắt người. Việc này được thực hiện bởi hai quá trình: biến đổi sang miền tần số và lượng tử hóa. z 11 Dư thừa về mặt thống kê: Các giá trị sau lượng tử, véc-tơ chuyển động và các dữ liệu khác được mã hóa bằng các chuỗi nhị phân tại bước cuối cùng của nén video.
Phương pháp đơn giản nhất để mã hóa các giá trị này là sử dụng phương pháp mã hóa có độ dài cố định - fixed length codes. Tuy nhiên, do đặc tính của video là các giá trị không tuân theo quy luật phân bố đồng đều. Vậy nên, việc mã hóa có độ dài cố định sẽ cho kết quả chuỗi mã hóa có kích thước lớn hơn nhiều so với khả năng có thể. Sử dụng mã hóa có độ dài thay đổi (variable length codes) là giải pháp cho những trường hợp các ký hiệu (symbol) có phân bố không đồng đều.
Những ký hiệu có tỷ lệ xuất hiện lớn hơn sẽ được biểu diễn bởi những đoạn bit có kích thước nhỏ hơn. Trong nén video, loại bỏ dư thừa này được thực hiện bởi mã hóa Entropy (Entropy Coding). Sự hiệu quả của một phương pháp mã hóa video được đánh giá dựa trên hai phương diện chính: tỷ lệ nén trên cùng một chất lượng ảnh (khả năng loại bỏ các tín hiệu dư thừa) và tốc độ mã hóa. Phần lớn việc lựa chọn phương pháp mã hóa phụ thuộc vào yêu cầu về thời gian mã hóa của từng ứng dụng: mã hóa thời gian thực hay chấp nhận độ trễ của mã hóa để đạt tỷ lệ nén cao.1: Tỷ lệ nén của một số chuẩn mã hóa video thông dụng.1 so sánh tỷ lệ nén giữa một số chuẩn mã hóa video thông dụng hiện nay.
Áp dụng các phương pháp nén video giúp tiết kiệm ít nhất 20 lần dung lượng lưu trữ cũng như băng thông khi truyền tải. Tỷ lệ nén này có thể tăng lên đến gần 200 lần đối với chuẩn mã hóa video tiên tiến nhất hiện nay là H.2 trình bày lịch sử phát triển của các chuẩn mã hóa video từ những năm 1990.2 việc phát triển các chuẩn mã hóa video cũng như phương pháp được xây dựng bởi một số tổ chức lớn như: ITU-T, ISO, SMPTE, On2/Google. Theo thời gian, càng ngày càng nhiều chuẩn mã hóa mới được phát minh.2 có 16 chuẩn mã hóa video phổ biến đã và đang được sử dụng cho tới này. Những chuẩn mới hơn, tiên tiến hơn cho kết quả tốt hơn cả về chất lượng lẫn tỷ lệ nén.2: Sơ đồ lịch sử phát triển của nén video từ 1990 [1].
những ưu điểm đó, các chuẩn mã hóa mới cũng yêu cầu các hệ thống có năng lực tính toán cao hơn và tiêu thụ năng lượng nhiều hơn.261 [4] là một chuẩn mã hóa video cho hội nghị truyền hình được công bố bởi ITU vào năm 1990. Chuẩn này được thiết kế cho dữ liệu ở các tốc độ bằng cấp số nhân của 64Kbit/s. Cùng với công bố chuẩn H.261, sơ đồ mã hóa Hybrid cũng được hoàn thiện và giới thiệu. Sau này, sơ đồ Hybrid trở thành sơ đồ mã hóa cho các chuẩn mã hóa tiên tiến khác như H.
Trong sơ đồ Hybrid, các khung hình mã hóa được chia ra làm hai loại khung hình intra và khung hình inter. Khung hình inter là các khung hình mà dữ liệu được mã hóa phụ thuộc vào các khung hình khác (reference frame - khung hình tham chiếu) trong video. Dữ liệu mã hóa của các khung hình inter được tính toán từ quá trình phỏng đoán liên ảnh (Inter Prediction). Các khung hình tham chiếu này có thể xuất hiện trước hoặc sau khung hình hiện tại trong thứ tự sắp xếp của video.
Khung hình intra là những khung hình mà dữ liệu mã hóa được nội suy từ chính trong khung hình. Dữ liệu nội suy được thực hiện bởi quá trình phỏng đoán nội ảnh (Intra Prediction).264/AVC [5] [6] là kết quả của sự phối hợp giữa hai tổ chức lớn là ITU và MPEG.264 được đặt tên bởi ITU-T, trong khi đó ISO/IEC gọi là MPEG-4 Part 10/AVC.264/AVC được thiết kế nhằm vượt qua những hạn chế của các chuẩn mã hóa video trước đó như đạt tỷ lệ nén gấp đôi với cùng chất lượng ảnh, giảm lỗi do quá trình truyền tải qua mạng.265/HEVC [7] [8] chuẩn mã hóa tiên tiến nhất hiện nay được thiết kế cho video có độ phân giải cao như fullHD, 2K, 4K, và có thể đạt được tỷ lệ nén gấp đôi so với H. Ngoài ra, một số chuẩn mã hóa video khác như MPEG1, MPEG2, H262, H263 đã được trình bày tại báo cáo [9] z 13 1.2 Mã hóa video trong xu thế IoT IoT và mô hình tính toán phân tán rộng khắp (ubicomp) là xu thế tất yếu khi mà các vấn đề tiên quyết như: hiệu năng và kích thước CPU, năng lượng, băng thông đã và đang được giải quyết. Trong thời đại IoT, camera sẽ được nhúng xung quanh môi trường sống của con người và đóng vai trò là đôi mắt cho mô hình IoT.
Những camera này sẽ giúp thực hiện các ứng dụng khác nhau như an ninh, giám sát giao thông, nông nghiệp. Mạng cảm biến không dây là một phần cơ bản trong mô hình IoT. Nó được sử dụng trong những trường hợp cần sử dụng các cảm biến một cách linh động, ẩn giấu đối với người dùng cuối và đặc biệt sử dụng cho những khu vực xa và nguy hiểm, không thể cung cấp năng lượng một cách liên tục và thường xuyên. Khi camera tham gia vào các mạng cảm biến không dây thì bắt buộc bị giới hạn về mặt năng lực tính toán, năng lượng, bộ nhớ và băng thông.
Trong khi đó, thông tin truyền tải giữa camera và trung tâm gần nhất vẫn phải đảm bảo yêu cầu thời gian thực. Điều này đặt ra một thách thức lớn trong việc áp dụng các chuẩn nén video tiên tiến và hiệu quả cho các camera trong mạng cảm biến không dây. Một giải pháp đã được đề xuất cho việc xử lý dữ liệu trong các mạng cảm biến không dây là chỉ thực hiện giai đoạn tiền xử lý hay xử lý thô tại các cảm biến. Dữ liệu sau tiền xử lý sẽ được truyền về và thực hiện công việc xử lý phức tạp tại các trung tâm có năng lực tính toán cao hơn và không bị giới hạn về năng lượng.
Đối với các camera trong mạng cảm biến không dây thì phương án tiền xử lý là phương án khả thi có thể đáp ứng được yêu cầu về thời gian thực mặc dù bị giới hạn về năng lực tính toán và năng lượng. Tiền xử lý ở đây có nghĩa là sử dụng các thuật toán nén video đơn giản.3 trình bày mô hình chi tiết. Các video từ camera sẽ được nén bằng các thuật toán nén video đơn giản và truyền về các trung tâm xử lý. Tại đây, các video đã được mã hóa tại các camera sẽ được giải mã và thực hiện mã hóa lại bằng các phương pháp/chuẩn mã hóa tiên tiến.
Như vậy, vừa có thể đảm bảo được tính chất thời gian thực của hệ thống vừa đảm bảo yêu cầu hiệu quả khi lưu trữ và truyền tải.3: Giải pháp tiền xử lý cho camera trong mạng cảm biến không dây.3 Mã hóa video MJPEG Mã hóa MJPEG là phương pháp mã hóa các khung hình trong video một cách riêng lẻ thành các chuỗi bit JPEG. MJPEG được đánh giá là phương pháp mã hóa video đơn giản, yêu cầu ít năng lực tính toán nhất do không sử dụng bất kỳ kỹ thuật nào để loại bỏ dư thừa về mặt thời gian. Cũng chính vì vậy mà tỷ lệ nén của MJPEG đạt được là thấp nhất so với các phương pháp mã hóa video khác như H.1 Mã hóa ảnh JPEG Mã hóa JPEG [10] được xây dựng dựa trên việc loại bỏ những dư thừa về mặt: khả năng nhận thức, không gian và thống kê thông qua các quá trình biến đổi cosin rời rạc (DCT - Discrete Cosine Transform), lượng tử hóa và mã hóa Entropy.4 trình bày các bước để mã hóa và giải mã các khung hình trong MJPEG. Quá trình “biến đổi không gian màu (color transform) ” sẽ chuyển đổi không gian màu của ảnh gốc sang không gian màu YCbCr.
Sau đó thực hiện “lấy mẫu (downsampling) ” cho các thành phần màu Cb và Cr.