Rust дахь AV1 кодлогч rav0.3e 1 хувилбарыг гаргалаа

болсон суллах rav1e 0.3, өндөр гүйцэтгэлтэй видео кодчилол форматын кодлогч AV1, Xiph болон Mozilla нийгэмлэгүүд боловсруулсан. Кодлогч нь Rust хэл дээр бичигдсэн бөгөөд кодчилолын хурдыг мэдэгдэхүйц нэмэгдүүлж, аюулгүй байдалд анхаарал хандуулснаар лавлагаа libaom кодлогчоос ялгаатай. Төслийн код тараасан BSD лицензийн дагуу.

AV1-ийн бүх үндсэн функцууд, үүнд дэмжлэг орно
дотоод болон гадаад кодлогдсон хүрээ (дотор и хоорондын-фрэймүүд), 64x64 суперблок, 4:2:0, 4:2:2 ба 4:4:4 хромын дэд дээж авах, 8, 10 ба 12 битийн өнгөний гүн кодчилол, RDO (Rate-distortion optimization) оновчлолын гажуудал, фрэймийн өөрчлөлтийг урьдчилан таамаглах, хувиргалтыг тодорхойлох, урсгалын хурдыг хянах, үзэгдлийн таслалтыг илрүүлэх янз бүрийн горимууд.

AV1 формат нь мэдэгдэхүйц юм давсан H.264 ба VP9 нь шахалтын чадварын хувьд, гэхдээ тэдгээрийг хэрэгжүүлэх алгоритмын нарийн төвөгтэй байдлаас шалтгаалан шаарддаг кодлоход илүү их цаг зарцуулдаг (кодлох хурдаар libaom нь libvpx-vp9-ээс хэдэн зуу дахин, x264-ээс олон мянган удаа хоцорч байна).
Rav1e кодлогч нь 11 гүйцэтгэлийн түвшинг санал болгодог бөгөөд тэдгээрийн хамгийн дээд нь бодит цагийн кодчиллын хурдыг өгдөг. Кодлогчийг командын мөрийн хэрэгсэл болон номын сан хэлбэрээр ашиглах боломжтой.

Шинэ хувилбарт:

  • Илүү хурдан кодлох горимыг санал болгож байна Хурд 10;
  • Хоёртын угсралтын хэмжээ багассан (x86_64/Linux платформ дээр номын сан 3MB орчим эзэлдэг);
  • Угсрах хугацаа ойролцоогоор 14% -иар буурсан;
  • Видеоноос блокийн олдворуудыг арилгах олон урсгалтай шүүлтүүрийг нэмсэн (блоклох);
  • x86_64 архитектурын хувьд SIMD зааварчилгааг ашиглан нэмэлт оновчлолыг хийж, автомат векторжуулалтын хэрэглээг өргөжүүлсэн;
  • Санах ойг хуваарилах үйлдлүүдийн тоог 1/6-аар багасгасан;
  • RDO (Rate-distortion optimization) -д хүрээ доторх гажуудлыг дарах логикийг сайжруулсан;
  • Зарим үйлдлийг хөвөгч цэгийн арифметик ашиглахаас бүхэл тоон тооцоололд шилжүүлсэн;
  • Хоёрдахь хурдны түвшний кодчилолын чанар 1-2% -иар сайжирсан;
  • Нэмсэн хөдөлгөөний чиглэлийг урьдчилан таамаглах шинэ шүүлтүүр (Intra edge);
  • Фрейм хоорондын шилжих интервалыг тодорхойлохын тулд "-S" (--switch-frame-interval) сонголтыг нэмсэн;
  • wasm32-wasi платформыг бүтээх дэмжлэгийг нэмсэн (WebAssembly системийн интерфейс).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх