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
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.
- 1. Bộ mã hóa video H.264 trong javascript
- 2. Mã hóa video CBR H.264 với FFmpeg
- 3. h 264 Mã hóa/giải mã phần cứng cho IOS (IPhone/Ipad)?
- 4. GDI + có CLSID bộ mã hóa hình ảnh chuẩn không?
- 5. bộ mã hóa bù chuyển động khối - cách xử lý khối nhiễu trong khung tham chiếu?
- 6. Bộ nhớ H.264 Bộ nhớ bị rò rỉ với một số bộ giải mã
- 7. Tôi làm cách nào để tạo một bộ phim được mã hóa H.264 từ một tập hợp các hình ảnh trong C#?
- 8. Hình ảnh mã hóa Base64
- 9. SSLHandshakeException: không có bộ mã hóa nào trong chung
- 10. Thư viện mã hóa video cho iOS
- 11. Mã hóa tệp hình ảnh với base64
- 12. Chuột quang làm bộ mã hóa
- 13. Làm cách nào để chúng tôi có thể nhận luồng video được mã hóa H.264 từ iPhone Camera?
- 14. Cách tính toán mã hóa thời gian?
- 15. iPad không hiển thị video H.264 với HTML5
- 16. Free/Open h.264 thư viện giải mã video? (Non-GPL)
- 17. Phương pháp mã hóa/giải mã đơn giản để mã hóa tệp hình ảnh
- 18. Bộ mã hóa/bộ giải mã JPEG phân cấp
- 19. hình ảnh mã hóa/giải mã với hình ảnh ngắt base64
- 20. Tôi làm cách nào để thực hiện mã hóa và giải mã H.264 tăng tốc phần cứng để phát trực tuyến?
- 21. nhanh hoặc không đồng bộ JPEG AS3 mã hóa
- 22. Bộ mã hóa URL Blackberry
- 23. Bộ mã hóa H264 trong Android?
- 24. Mã hóa chuỗi chung
- 25. Force dán kiện để mã hóa hình ảnh trong base64
- 26. Kích thước tệp H.264 trong 1 giờ video HD
- 27. Sửa đổi vectơ chuyển động trong bộ giải mã H.264 ffmpeg
- 28. bộ hình ảnh như nút
- 29. Làm thế nào để mã hóa/giải mã video bằng C#?
- 30. Đồng bộ hóa khung với AVPlayer
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
PDF đã mất tích 404. –
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) –