2012-05-16 22 views
6

Tôi không thành thạo về bất kỳ cách nào với nén video, nhưng hiện đang làm việc trên một dự án mà tôi nén hình ảnh dư bằng cách sử dụng H.264bộ mã hóa bù chuyển động khối - cách xử lý khối nhiễu trong khung tham chiếu?

Câu hỏi của tôi có tính chất tổng quát hơn về bộ mã hóa video. Khi tôi hiểu nó (như Wikipedia giải thích), bộ mã hóa bù chuyển động khối chia khung hiện tại thành một số khối không chồng chéo, cho mỗi khối nó kiểm tra trong khung tham chiếu, nơi khối hiện tại đến từ đó, nó tính toán sự khác biệt khối mong muốn và khối bù chuyển động, sau đó nó mã hóa số dư này bằng cách nào đó.

Trạng thái của Wikipedia: "Điểm bất lợi chính của bù trừ chuyển động khối là nó giới thiệu các điểm dừng ở biên giới khối (chặn hiện vật). Các hiện vật này xuất hiện dưới dạng các cạnh ngang và dọc sắc nét dễ dàng phát hiện bởi mắt người và tạo ra các hiệu ứng đổ chuông (các hệ số lớn trong các băng con tần số cao) trong phép biến đổi liên quan đến Fourier được sử dụng để chuyển đổi mã hóa các khung còn lại. " Vì vậy, vì khung tham chiếu đã chứa khối tạo tác (vì nó được mã hóa), và sau đó các khối tạo tác này được dịch chuyển vào khối hiện tại và phần còn lại được tính toán, sau đó các tần số cao được tạo bởi các khối tạo tác tại biên giới của khối dịch chuyển cũng sẽ hiển thị như là gián đoạn trong phần còn lại. Và gián đoạn nói chung là xấu để nén.

Bộ mã hóa khối có chuyển động được giải quyết bằng cách nào đó đối phó với khối tạo tác này trước khi nén phần còn lại? vì nó biết chính xác khối đã được dịch chuyển như thế nào, nó biết vị trí của các đường viền khối và có thể làm điều gì đó về chúng trước hoặc trong khi mã hóa số dư, loại bỏ/bỏ qua các tần số cao không cần thiết tại nơi này. Nếu một cái gì đó như thế này được thực hiện trong một codec như H.264, ai đó có thể giải thích các quan điểm chính của cách bộ mã hóa này, cung cấp cho một số thuật ngữ trên nó và như vậy? Bộ mã hóa xử lý các khối tạo tác trong khung tham chiếu như thế nào?

+1

câu hỏi tuyệt vời .. đặt tốt! – Alex

Trả lời

0

@Mat: Đây là một câu hỏi hay và rất có thể là một khu vực mở cho nghiên cứu trong mã hóa video. Câu trả lời ngắn gọn là kiến ​​thức của tôi, bộ giải mã video ngày nay không rõ ràng làm bất cứ điều gì để đối phó với ảnh hưởng của các hiện vật khối trên ước tính chuyển động. Có thể trong trường hợp chuyển động nhanh ở các khu vực có chi tiết thấp, nếu có các khối hiện vật nổi bật, các vector chuyển động đôi khi có thể là bội số của kích thước khối :) hoặc nói cách khác, ước tính chuyển động sẽ tìm thấy các khối trong khung hình trước đó chứ không phải chi tiết của hình ảnh gốc. Điều này có lẽ khá hiếm; nó đòi hỏi cả chuyển động nhanh, một khu vực khá ít tính năng của hình ảnh và rõ ràng là không đủ bitrate. Bạn có thể xây dựng chuỗi video tổng hợp để minh họa điều này. Cho dù có bất kỳ cách nào mà kiến ​​thức về ranh giới khối có thể giúp không rõ ràng; nếu các cạnh khối giới thiệu các thành phần tần số cao trong phần còn lại của khung tiếp theo, thì chúng ta phải chi tiêu các bit để xóa/sửa các thành phần được giới thiệu giả tạo đó, cho dù chúng ta biết chúng đến từ một khối giả tạo hay không ... , chi tiêu bit trên đó có thể là một quyết định tốt hơn so với sử dụng một khu vực tham chiếu/vector chuyển động/loại khối. Tuy nhiên, các codec hiện đại như H.264 và VP8 có in-loop deblocking filter, nói cách khác khung đã giải mã được gỡ bỏ trước khi được sử dụng làm tham chiếu, làm giảm nhiễu khối và do đó có thể giảm thiểu ảnh hưởng của sự cố mà bạn có được xác định chính xác.

+0

@Mat: điều này có trả lời câu hỏi của bạn không? Nếu có, hãy nhớ chấp nhận câu trả lời. Nếu không, xin vui lòng cho tôi biết nếu bạn có bất cứ điều gì cụ thể tôi có thể làm sáng tỏ. –