2011-07-06 33 views
5

Tôi đã cố gắng hiểu cách mã hóa video hoạt động cho các bộ mã hóa hiện đại, đặc biệt là H264. Nó thường được đề cập trong tài liệu mà khung còn lại được tạo ra từ sự khác biệt giữa khung hình hiện tại và khung i cuối cùng (giả sử các khung sau không được sử dụng trong dự đoán). Tôi hiểu rằng một không gian màu YUV được sử dụng (có thể là YV12), và một hình ảnh đó được "trừ đi" từ phần còn lại và sau đó phần còn lại được hình thành. Điều tôi không hiểu là độ chính xác này hoạt động như thế nào. Tôi không nghĩ rằng đó là một giá trị tuyệt đối của sự khác biệt bởi vì điều đó sẽ mơ hồ. Công thức mỗi điểm ảnh để có được sự khác biệt này là gì?Bộ mã hóa H.264 hoặc bộ mã hóa video nói chung tính toán hình ảnh còn lại của hai khung hình như thế nào?

Trả lời

5

Phép trừ chỉ là một bước nhỏ trong mã hóa video; nguyên tắc cốt lõi đằng sau mã hóa video hiện đại nhất là motion estimation, tiếp theo là motion compensation. Về cơ bản, quá trình ước tính chuyển động tạo ra các vectơ thể hiện sự lệch giữa các macroblocks trong các khung liên tiếp. Tuy nhiên, luôn có một chút lỗi trong các vectơ này.

Vì vậy, điều xảy ra là bộ mã hóa sẽ xuất ra cả bù trừ véc-tơ và "dư" là những gì còn lại. Phần còn lại không phải là đơn giản là sự khác biệt giữa hai khung; đó là sự khác biệt giữa hai khung sau khi ước tính chuyển động. Xem hình ảnh "Sự khác biệt bù trừ chuyển động" trong bài viết wikipedia về bồi thường cho một minh hoạ rõ ràng về điều này - lưu ý rằng sự khác biệt bù trừ chuyển động nhỏ hơn đáng kể so với số dư "câm".

Here's a decent PDF that goes over some of the basics.

Một vài lưu ý khác:

  • Vâng, YUV luôn được sử dụng, và thường nhất bộ mã hóa làm việc trong YV12 hoặc một số chroma khác subsampled định dạng
  • Trừ sẽ phải xảy ra trên Y, U và V khung hình riêng biệt (nghĩ về chúng như ba kênh riêng biệt, tất cả đều cần phải được mã hóa - sau đó nó trở nên khá rõ ràng như thế nào trừ đã xảy ra). Ước tính chuyển động có thể có hoặc không xảy ra trên máy bay Y, U và V; đôi khi bộ mã hóa chỉ làm điều đó trên các giá trị Y (độ sáng) để tiết kiệm một chút CPU với chi phí chất lượng.
+0

Vâng, tôi biết rằng việc đền bù chuyển động xảy ra, những gì tôi không biết là cách khung hình chuyển động bù trừ được trừ khỏi khung i. Nếu tôi hiểu đúng, nó có nghĩa là nó được thực hiện theo cách sau: Yresidual = Yi - Yi-1, Cbresidual = Cbi - Cbi-1, Crresidual = Cri - Cri-1. Có đúng không? – cloudraven

+4

PDF đã mất tích 404. –

+0

Liên kết mới cho tệp PDF: [Liên kết PDF] (http://classes.engr.oregonstate.edu/eecs/spring2013/ece477/slides/4.Video_Compression.pdf) –

Các vấn đề liên quan