Deinterlacing (chống quét mành).
Trong truyền hình Analog, để phù hợp với tín hiệu tần số dòng điện, các tín hiệu MPEG-2 sẽ được ghi ở chế độ interlace. Với hệ NTSC được sử dụng phổ biến ở Bắc Mỹ và Đông Á (Japan), MPEG-2 NTSC sẽ được phát 60 hình/1s để phù hợp với dòng điện tần số 60 tại những nơi này. Tương tự VN sử dụng dòng điện tần số 50 nên truyền hình sẽ phát hệ PAL với 50 hình/1s.
Để tạo các chuyển động mịn và phục vụ cho các pha quay chậm, một số camera ghi video dưới dạng interlaced, có nghĩa là nếu như video được xem ở tốc độ 25hình/giây (PAL), camera sẽ ghi ở tốc độ gấp đôi: 50 hình/giây, ở thời điểm 1 camera chỉ ghi những dòng quét lẻ, thời điểm 2 chỉ ghi những dòng quét chẵn, sau đó dùng thông tin ghi trong hai lần này phối hợp thành một khung hình (frame). Cứ tiếp tục luân phiên như vậy.
Do các dòng quét chẵn và lẻ được ghi ở hai thời điểm khác nhau, nên khi xem bình thường, các thiết bị hiển thị video sẽ phải chịu trách nhiệm chống quét mành nếu không các khung hình tương ứng với chuyển động nhanh sẽ bị "gai" . Việc xử lý những khung hình thế này còn gọi là deinterlace.
Với các video interlace có lỗi quét mành, nhất định phải xử lý quét mành nếu không muốn có một sản phẩm tệ hại. Tuy nhiên, có rất nhiều nguồn video interlace không hề bị lỗi này và tất nhiên không cần xử lý. Điều quan trọng là cần kiểm tra cẩn thận trước khi encode, việc này có thể rất mất thời gian với nguồn video có thời lượng dài, như một bộ phim chẳng hạn.
Các thuật toán quét mành cơ bản:
Blend: Thuật toán này "trộn" hai dòng vào nhau và thay bằng hai dòng mới. Hai dòng mới này giống nhau và các điểm ảnh mang giá trị bằng trung bình giá trị màu lấy trên 2 dòng ban đầu. Cách này làm mờ hình, tạo hiệu ứng "ma" nhưng không hề có lỗi artifacts.
Discard: Thuật toán này bỏ đi một dòng và thay bằng dòng kia. Cách này chấp nhận mất một nửa thông tin.
Double Speed (Bob): Một tên gọi khác là Stupid Bob: Nhân đôi tốc độ khung hình (chẳng hạn từ 25 hình/giây chuyển thành 50 hình/giây). Một khung hình sẽ bị chia ra làm hai fields: Một field gồm các dòng quét chẵn và một field gồm các dòng quét lẻ, sau đó mỗi field sẽ được dãn chiều dọc lên gấp đôi tạo thành một khung hình mới. (Cách này các hệ thống TV, DVD Player thường dùng: Nếu xem ở tốc độ thường sẽ được một pha quay chậm). Thuật toán này có một vài lỗi nhỏ gây "sạn" hình.
Progressive Scan: Tương tự như Bob, tốc độ khung hình được nhân đôi, nhưng khác với Bob, Progressive Scan sẽ giữ nguyên những vùng hình tĩnh và đặt nguyên cả vùng lên hai khung hình liên tiếp (chứ không chia fields rồi dãn chiều dọc như bob). Như vậy ở những chỗ hình động, video sẽ được chuyển rất trơn, còn những chỗ hình tĩnh video sẽ rất nét do giữ được toàn bộ độ phân giải. Cách này cho chất lượng tốt nhất nhưng vẫn có thể có lỗi artifacts.
Adaptive: Trong khi các thuật toán Blend và Discard làm mờ hình và mất nhiều thông tin, Bob và Progressive Scan lại đòi hỏi bạn phải có CPU và Video Card rất mạnh mới xem được với tốc độ khung hình gấp đôi. Adaptive Deinterlacing không làm thay đổi tốc độ khung hình, cố gắng giữ nguyên những vùng tĩnh và chỉ cố gắng khử hiệu ứng quét mành ở những vùng động. Việc khử hiệu ứng quét mành không bao giờ hoàn hảo cả, nhưng Adaptive Deinterlacing chỉ thực hiện việc đó trên những vùng động là nơi mắt thường khó nhận ra những khiếm khuyết của bộ lọc Adaptive.
Khác với những bộ lọc "mù" như Blend, Discard, Bob..., chất lượng của các bộ lọc chống quét mành kiểu Progressive Scan và Adaptive Deinterlacing phụ thuộc vào thuật toán phát hiện vùng tĩnh và thuật toán khử hiệu ứng quét mành trên vùng động. Tuy nhiên các thuật toán này khó thiết lập tối ưu cho từng hoàn cảnh cụ thể và vẫn phát sinh lỗi.
Tóm lại là không thể có giải pháp tối ưu cho việc xử lý quét mành. Tuỳ hoàn cảnh cụ thể mà áp dụng, điều này rất cần tới kinh nghiệm mà chỉ thời gian mới có!
Demo với Clip BoA từ post trước.
Một khung hình có lỗi quét mành
Xử lý với thuật toán Blend, gây chút hiệu ứng bóng ma.
Xử lý với thuật toán Progressive Scan, cho chất lượng rất tốt.
Tuy nhiên với thuật toán Blend, khung hình này có chất lượng tốt.
Với Progressive Scan thì lại không chấp nhận được.
Trong truyền hình Analog, để phù hợp với tín hiệu tần số dòng điện, các tín hiệu MPEG-2 sẽ được ghi ở chế độ interlace. Với hệ NTSC được sử dụng phổ biến ở Bắc Mỹ và Đông Á (Japan), MPEG-2 NTSC sẽ được phát 60 hình/1s để phù hợp với dòng điện tần số 60 tại những nơi này. Tương tự VN sử dụng dòng điện tần số 50 nên truyền hình sẽ phát hệ PAL với 50 hình/1s.
Để tạo các chuyển động mịn và phục vụ cho các pha quay chậm, một số camera ghi video dưới dạng interlaced, có nghĩa là nếu như video được xem ở tốc độ 25hình/giây (PAL), camera sẽ ghi ở tốc độ gấp đôi: 50 hình/giây, ở thời điểm 1 camera chỉ ghi những dòng quét lẻ, thời điểm 2 chỉ ghi những dòng quét chẵn, sau đó dùng thông tin ghi trong hai lần này phối hợp thành một khung hình (frame). Cứ tiếp tục luân phiên như vậy.
Do các dòng quét chẵn và lẻ được ghi ở hai thời điểm khác nhau, nên khi xem bình thường, các thiết bị hiển thị video sẽ phải chịu trách nhiệm chống quét mành nếu không các khung hình tương ứng với chuyển động nhanh sẽ bị "gai" . Việc xử lý những khung hình thế này còn gọi là deinterlace.
Với các video interlace có lỗi quét mành, nhất định phải xử lý quét mành nếu không muốn có một sản phẩm tệ hại. Tuy nhiên, có rất nhiều nguồn video interlace không hề bị lỗi này và tất nhiên không cần xử lý. Điều quan trọng là cần kiểm tra cẩn thận trước khi encode, việc này có thể rất mất thời gian với nguồn video có thời lượng dài, như một bộ phim chẳng hạn.
Các thuật toán quét mành cơ bản:
Blend: Thuật toán này "trộn" hai dòng vào nhau và thay bằng hai dòng mới. Hai dòng mới này giống nhau và các điểm ảnh mang giá trị bằng trung bình giá trị màu lấy trên 2 dòng ban đầu. Cách này làm mờ hình, tạo hiệu ứng "ma" nhưng không hề có lỗi artifacts.
Discard: Thuật toán này bỏ đi một dòng và thay bằng dòng kia. Cách này chấp nhận mất một nửa thông tin.
Double Speed (Bob): Một tên gọi khác là Stupid Bob: Nhân đôi tốc độ khung hình (chẳng hạn từ 25 hình/giây chuyển thành 50 hình/giây). Một khung hình sẽ bị chia ra làm hai fields: Một field gồm các dòng quét chẵn và một field gồm các dòng quét lẻ, sau đó mỗi field sẽ được dãn chiều dọc lên gấp đôi tạo thành một khung hình mới. (Cách này các hệ thống TV, DVD Player thường dùng: Nếu xem ở tốc độ thường sẽ được một pha quay chậm). Thuật toán này có một vài lỗi nhỏ gây "sạn" hình.
Progressive Scan: Tương tự như Bob, tốc độ khung hình được nhân đôi, nhưng khác với Bob, Progressive Scan sẽ giữ nguyên những vùng hình tĩnh và đặt nguyên cả vùng lên hai khung hình liên tiếp (chứ không chia fields rồi dãn chiều dọc như bob). Như vậy ở những chỗ hình động, video sẽ được chuyển rất trơn, còn những chỗ hình tĩnh video sẽ rất nét do giữ được toàn bộ độ phân giải. Cách này cho chất lượng tốt nhất nhưng vẫn có thể có lỗi artifacts.
Adaptive: Trong khi các thuật toán Blend và Discard làm mờ hình và mất nhiều thông tin, Bob và Progressive Scan lại đòi hỏi bạn phải có CPU và Video Card rất mạnh mới xem được với tốc độ khung hình gấp đôi. Adaptive Deinterlacing không làm thay đổi tốc độ khung hình, cố gắng giữ nguyên những vùng tĩnh và chỉ cố gắng khử hiệu ứng quét mành ở những vùng động. Việc khử hiệu ứng quét mành không bao giờ hoàn hảo cả, nhưng Adaptive Deinterlacing chỉ thực hiện việc đó trên những vùng động là nơi mắt thường khó nhận ra những khiếm khuyết của bộ lọc Adaptive.
Khác với những bộ lọc "mù" như Blend, Discard, Bob..., chất lượng của các bộ lọc chống quét mành kiểu Progressive Scan và Adaptive Deinterlacing phụ thuộc vào thuật toán phát hiện vùng tĩnh và thuật toán khử hiệu ứng quét mành trên vùng động. Tuy nhiên các thuật toán này khó thiết lập tối ưu cho từng hoàn cảnh cụ thể và vẫn phát sinh lỗi.
Tóm lại là không thể có giải pháp tối ưu cho việc xử lý quét mành. Tuỳ hoàn cảnh cụ thể mà áp dụng, điều này rất cần tới kinh nghiệm mà chỉ thời gian mới có!
Demo với Clip BoA từ post trước.
Một khung hình có lỗi quét mành

Xử lý với thuật toán Blend, gây chút hiệu ứng bóng ma.

Xử lý với thuật toán Progressive Scan, cho chất lượng rất tốt.

Tuy nhiên với thuật toán Blend, khung hình này có chất lượng tốt.

Với Progressive Scan thì lại không chấp nhận được.
