Bản phát hành thư viện SVT-AV1 2.0 (Công nghệ video có thể mở rộng AV1) đã được xuất bản với việc triển khai bộ mã hóa và giải mã định dạng mã hóa video AV1, để tăng tốc phương tiện tính toán song song phần cứng có trong CPU Intel hiện đại. Dự án này được Intel hợp tác với Netflix tạo ra với mục tiêu đạt được mức hiệu suất phù hợp cho việc chuyển mã video nhanh chóng và sử dụng trong các dịch vụ video theo yêu cầu (VOD). Hiện tại, quá trình phát triển đang được thực hiện dưới sự bảo trợ của Open Media Alliance (AOMedia), tổ chức giám sát việc phát triển định dạng mã hóa video AV1. Trước đây, dự án được phát triển trong khuôn khổ dự án OpenVisualCloud, dự án cũng phát triển bộ mã hóa SVT-HEVC và SVT-VP9. Mã được phân phối theo giấy phép BSD.
SVT-AV1 có thể được lắp ráp cho các hệ thống dựa trên bất kỳ kiến trúc nào có trình biên dịch hỗ trợ tiêu chuẩn C99, nhưng hiệu suất tốt nhất đạt được trên các hệ thống x86_64, sử dụng tối ưu hóa lắp ráp dựa trên hướng dẫn SIMD (mong muốn có Hỗ trợ AVX2 trong CPU, nhưng ở mức tối thiểu là đủ và SS2). Mức tiêu thụ bộ nhớ phụ thuộc vào số lượng lõi xử lý được sử dụng trong quá trình mã hóa, được điều chỉnh bởi tùy chọn “-lp”. Do sự phức tạp của các thuật toán được sử dụng trong AV1, việc mã hóa định dạng này yêu cầu nhiều tài nguyên hơn đáng kể so với các định dạng khác, điều này không cho phép sử dụng bộ mã hóa AV1 tiêu chuẩn để chuyển mã theo thời gian thực. Ví dụ: bộ mã hóa gốc từ dự án AV1 yêu cầu tính toán gấp 5721, 5869 và 658 lần so với bộ mã hóa x264 ("chính"), x264 ("cao") và bộ mã hóa libvpx-vp9.
Trong số những thay đổi trong bản phát hành mới của SVT-AV1:
- Quá trình chuyển đổi đã được thực hiện sang cách đánh số phiên bản mới, theo đó chữ số đầu tiên trong phiên bản sẽ thay đổi theo mỗi thay đổi API/ABI.
- Các thay đổi đã được thực hiện đối với API liên quan đến việc chuyển sang chỉ báo kết thúc luồng (EOS - End Of Stream) trong khung cuối cùng thay vì sử dụng khung trống, giúp loại bỏ độ trễ khi chờ khung bổ sung. Thay đổi API đã được phản ánh trong cơ sở mã FFmpeg.
- Chế độ tốc độ bit biến đổi ba lượt (VBR 3 lượt) đã bị xóa và hiện được thay thế bằng cơ chế VBR nhiều lượt. Chế độ nhiều lượt VBR đã được giảm xuống còn hai lượt để đảm bảo tích hợp với FFmpeg.
- Các tối ưu hóa đã được thêm vào bộ mã hóa, nhờ đó hiệu suất nén của cài đặt trước M9-M13 đã tăng 1-4% và mức tiêu thụ bộ nhớ của cài đặt trước M5 đã giảm 20-35% ở chế độ LP 8 và bằng 1-5% ở các chế độ khác. Mức tiêu thụ bộ nhớ trong các cài đặt trước khác giảm 1-5%.
- Việc tối ưu hóa sự thỏa hiệp về chất lượng/tốc độ đã được thực hiện cho các cài đặt trước đặt ra mức chất lượng cao. Cài đặt trước MR chất lượng tham chiếu đã được tăng tốc 100%.
- Tối ưu hóa dành riêng cho ARM đã được thêm vào các chức năng chỉ dành cho C.
Ngoài ra, chúng tôi có thể lưu ý việc phát hành dự án dav1d 1.4.1, trong đó cộng đồng VideoLAN và FFmpeg đang phát triển một thư viện với việc triển khai bộ giải mã miễn phí thay thế cho định dạng mã hóa video AV1. Thư viện dav1d hỗ trợ tất cả các tính năng của AV1, bao gồm các loại lấy mẫu con nâng cao và tất cả các tham số kiểm soát độ sâu màu được nêu trong thông số kỹ thuật (8, 10 và 12 bit). Tính năng chính của dav1d là tập trung vào việc đạt được hiệu suất giải mã cao nhất có thể và đảm bảo công việc chất lượng cao ở chế độ đa luồng. Mã dự án được viết bằng C (C99) với các phần chèn lắp ráp (NASM/GAS) và được phân phối theo giấy phép BSD. Hỗ trợ cho kiến trúc x86, x86_64, ARMv7 và ARMv8 cũng như các hệ điều hành FreeBSD, Linux, Windows, macOS, Android và iOS đã được triển khai.
Phiên bản dav1d 1.4 đáng chú ý vì hỗ trợ kiến trúc Loongarch và RISC-V mới, cũng như giới thiệu các tối ưu hóa bổ sung dựa trên hướng dẫn AVX-512, tăng tốc hoạt động của bộ lọc 6tap trên hệ thống ARM, tăng hiệu quả làm việc đa luồng và giảm kích thước của dữ liệu nhị phân trên ARM64, ARM32 và RISC-systems V. Đã khắc phục lỗ hổng CVE-2024-1580, gây ra lỗi ghi ngoài giới hạn do tràn số nguyên khi xử lý kích thước khung hình rất lớn.
Nguồn: opennet.ru
