Bất cứ ai có thể giải thích một cách đơn giản rõ ràng cách MPEG4 hoạt động để nén dữ liệu. Tôi chủ yếu quan tâm đến video. Tôi biết có những tiêu chuẩn hoặc bộ phận khác nhau cho nó. Tôi chỉ đang tìm phương pháp nén tổng thể chiếm ưu thế, nếu có một phương pháp với MPEG4.Nén MPEG4 hoạt động như thế nào?
Trả lời
MPEG-4 là một tiêu chuẩn rất lớn và sử dụng nhiều kỹ thuật để đạt được tốc độ nén cao mà nó có khả năng.
Nói chung, nén video có liên quan với việc ném đi càng nhiều thông tin càng tốt trong khi có tác động tối thiểu đến trải nghiệm xem cho người dùng cuối. Ví dụ: sử dụng YUV được lấy mẫu con thay vì RGB cắt kích thước video một nửa ngay lập tức. Điều này là có thể vì mắt người ít nhạy cảm với màu hơn là độ sáng. Trong YUV, giá trị Y là độ sáng và giá trị U và V biểu thị màu. Do đó, bạn có thể vứt bỏ một số thông tin màu sắc làm giảm kích thước tệp, mà không có người xem nhận thấy bất kỳ sự khác biệt nào.
Sau đó, hầu hết các kỹ thuật nén tận dụng 2 ưu đãi đặc biệt. Đầu tiên là dư thừa thời gian và thứ hai là dư thừa không gian.
Ghi chú dự phòng tạm thời rằng các khung tiếp theo trong chuỗi video rất giống nhau. Thông thường, một video sẽ có thứ tự 20-30 khung hình/giây và không có gì thay đổi nhiều trong 1/30 giây. Lấy bất kỳ DVD và tạm dừng nó, sau đó di chuyển nó trên một khung và lưu ý cách tương tự như 2 hình ảnh. Vì vậy, thay vì mã hóa từng khung một cách độc lập, MPEG-4 (và các tiêu chuẩn nén khác) chỉ mã hóa sự khác biệt giữa các khung liên tiếp (sử dụng motion estimation để tìm sự khác biệt giữa các khung hình)
Dự phòng không gian tận dụng lợi thế của thực tế là màu sắc trải rộng trên các hình ảnh có xu hướng là tần số khá thấp. Điều này có nghĩa là các pixel lân cận có xu hướng có màu tương tự. Ví dụ, trong một hình ảnh của bạn mặc một jumper màu đỏ, tất cả các điểm ảnh đại diện cho jumper của bạn sẽ có màu sắc rất giống nhau. Có thể sử dụng DCT để chuyển đổi các giá trị pixel thành không gian tần số, nơi một số thông tin tần số cao có thể bị vứt bỏ. Sau đó, khi DCT đảo ngược được thực hiện (trong quá trình giải mã), hình ảnh hiện không có thông tin tần số cao bị vứt bỏ.
Để xem ảnh hưởng của việc ném đi thông tin tần số cao, hãy mở sơn MS và vẽ một loạt các đường màu đen ngang và dọc chồng lên nhau. Lưu hình ảnh dưới dạng JPEG (cũng sử dụng DCT để nén). Bây giờ hãy phóng to hình mẫu, chú ý cách các cạnh của các đường nét không còn sắc nét nữa và bị mờ đi. Điều này là do một số thông tin tần số cao (sự chuyển đổi từ màu đen sang màu trắng) đã bị vứt bỏ trong quá trình nén.Read this for an explanation with nice pictures
Để đọc thêm, this book là khá tốt, nếu hơi nặng về toán học.
MPEG4 sử dụng nhiều kỹ thuật khác nhau để nén video.
Nếu bạn chưa xem wikipedia, đây sẽ là một tốt starting point.
Ngoài ra còn có bài viết này từ IEEE giải thích các kỹ thuật này chi tiết hơn.
Giống như bất kỳ codec video phổ biến nào khác, MPEG4 sử dụng biến thể discrete cosine transform và một loạt kỹ thuật bù chuyển động (bạn có thể nghĩ là dự đoán chuyển động nếu điều đó giúp) giảm lượng dữ liệu cần thiết cho các khung tiếp theo. This page có tổng quan về những gì được thực hiện bởi MPEG4 thuần túy.
Nó không hoàn toàn khác với các kỹ thuật được sử dụng bởi JPEG.
Cạnh sắc nét chắc chắn CÓ chứa tần số cao. Giảm hoặc loại bỏ tần số cao làm giảm độ sắc nét của các cạnh. Các chi tiết đẹp bao gồm các cạnh sắc nét được loại bỏ với loại bỏ tần số cao - khả năng giải quyết 2 đối tượng nhỏ được loại bỏ với tần số cao - sau đó bạn chỉ thấy một.
Cạnh sắc nét không cao tần, vì chúng không lặp lại. Chúng thực sự là tổng của tất cả các tần số cùng một lúc, đó là lý do tại sao DCT nén và một số resizers hình ảnh sẽ thêm tiếng ồn xung quanh dòng thay vì làm mờ chúng. –
Cần thêm rằng DCT (Chuyển đổi Cosin rời rạc) không được thực hiện trên toàn bộ hình ảnh. Hình ảnh được chia thành các khối 8x8 hoặc 16x16 pixel và DCT được thực hiện trên mỗi khối. Điều này là do hiệu suất DCT giảm nhanh cho hình ảnh lớn hơn. Vì MPEG phải được phát trực tuyến nên quá trình giải mã phải rất nhanh. – rcz