v0.4.1 — AMF kalibrasyonu + cli giriş noktası düzeltmesi
Davranış değişikliği (yalnız AMD):
h264_amfile üretilen çıktının kalitesi ve boyutu değişir — aynıcrfartık-quality qualitypreset'i ve kalibre edilmiş qp eşlemesiyle encode ediliyor. NVENC / QSV / libx264 yollarına DOKUNULMADI, o çıktılar bit-birebir aynı.
AMD donanım kalibrasyonu + bir giriş noktası düzeltmesi. h264_amf kalite
argümanları ilk kez gerçek AMD donanımında ölçüldü — KNOWN_ISSUES.md KI-6'nın
kalan yarısı kapandı, kayıt tamamen "Çözüldü". Yeni bağımlılık yok.
Düzeltildi
-
render/encoder.py—h264_amfkalite argümanları kalibre edildi.
Değerler v0.2'den beri ölçülmemiş "makul default"lardı. Radeon RX 9060 XT +
Ryzen 5 7500F üzerinde, QSV kalibrasyonunun (v0.3.3) deseniyle ölçüldü:
libx264-preset medium -crf 23referansı, ffmpeg'in kendissimfiltresi,
iki klip × 4 aday, tam klip, video-only. Seçilen set
-quality quality -rc cqp -qp_i {crf} -qp_p {crf}:-quality balanced→quality: aynı qp'de iki klipte de hem daha
küçük dosya (KLIP_A 92.86 vs 95.04 MB) hem marjinal daha yüksek SSIM.
Bedeli ~1.7-2× süre; kabul edildi,qualitybile yazılım x264'ün
yarısından hızlı (21.2 vs 48.8 sn) ve bu araçta darboğaz encode değil ASR.- qp ofseti 0 (
qp = crf),AMF_QP_OFFSETsabitine bağlandı. Boyut
süzgeciqp 21'i iki klipte de eliyor (+58.6% / +42.5%); kalanlar
arasındaqp 23iki klipte de SSIM'de daha yakın. QSV'de klip başına
kazananlar çatışıp karar tek klibe yaslanmak zorunda kalmıştı — AMF'de
tek doğrusal eşleme iki klipte de doğrudan kazanıyor. -rc cqpsabitlemesi korundu (gerekçe KI-6'da: varsayılan bitrate
hedefli mod düşük bitrate'te sessizce kalite düşürür). Mod adayları
ezberden değilffmpeg -h encoder=h264_amfenvanterinden doğrulandı.
Ölçülen iki encoder'a özgü tuzak koda ve testlere kilitlendi:
- AMF'nin
-preset'i-quality'nin alias'ıdır ve x264 sözlüğünü
BİLMEZ — yalnızbalanced/speed/quality.-preset mediumffmpeg'de
127 koduyla patlar (ölçüldü), bu yüzdenrender.presetbu yola
bağlanmaz. QSV'de isimler tesadüfen çakıştığı için tuzak orada
görünmüyordu. -qp_byazılmaz: seçilen arg setiyle üretilen akışta B-frame yok
(ölçüldü: 60 karede 1×I + 59×P), ayarlanacak bir şey yok.
QSV'nin
-qsızıntısının AMF muadili YOKTUR: dört bayrak da encoder'a
özel AVOption'dır, generic-qgibi tüm akışlara bağlanmaz. Uçtan uca
koşuda çıktının ses akışı 196 kbps ölçüldü (config hedefi 192k korunuyor). -
cli.py—python -m fillercut.cligiriş noktası.__main__guard'ı
yoktu: bu yol modülü import edip HİÇBİR ŞEY YAPMADAN 0 koduyla çıkıyordu —
exit 0, boş stdout, üretilen dosya yok. Dışarıdan başarılı koşu gibi görünen
sessiz bir no-op.console_scriptshedefi (fillercut) doğru çalıştığı için
kusur yalnız bu yolda görünüyordu. Guardapp'e değilmain_entry'ye
bağlanır — v0.3.3'ün konsol akışı ayarı ilkecho'dan önce çalışmalı, yoksa
yönlendirilmiş çıktı bu yolda yine patlardı.
Değişti
- AMD makinelerde render çıktısı değişir (davranış değişikliği). Aynı
crfile üretilen dosya artık farklı:balancedyerinequalitypreset'i
ve kalibre edilmiş qp eşlemesi kullanılıyor. NVIDIA (NVENC), Intel (QSV) ve
yazılım (libx264) yollarına DOKUNULMADI — o satırlar bit-birebir aynı.
Test
- Toplam test sayısı 477 → 486;
ffmpegmarker'lı test 10 → 13. TestGercekAmfProbe(yeni): NVENC/QSV muadillerinin AMD karşılığı —
probe + seçim + üretilen arg setiyle gerçek encode. AMD donanımı yoksa
çalışma anında skip eder; kalibrasyon makinesinde skip DEĞİL, koştu.TestModulGirisNoktasi(yeni):python -m fillercut.cli --version
subprocess'te exit 0 verip sürümü basmalı. Red-first doğrulandı — fix'ten
önceassert '' == 'fillercut, version 0.4.0'ile kırmızıydı, yani
belirtinin kendisini (exit 0 + boş stdout) yakalıyor. Subprocess şart:
-myolu ancak ayrı yorumlayıcı koşusunda sınanır,runner.invoke(app, …)
guard'ı hiç çalıştırmaz.TestBuildEncodeArgs'ın AMF değer kilitleri yeni sete güncellendi; ayrıca
x264 preset sözlüğünün bağlanmadığı ve-qp_b'nin yazılmadığı kilitlendi.
Belgeler
KNOWN_ISSUES.mdKI-6: ana başlık "Çözüldü" işaretlendi (kayıt
silinmedi), "AMF yarısı — AÇIK" bölümü QSV'ninkiyle aynı formatta ölçüm
kaydına dönüştü — donanım künyesi, seçenek envanteri, iki klip için tam
boyut/Δboyut/SSIM/ΔSSIM/süre tabloları, mod + preset + değer seçiminin ayrı
ayrı gerekçesi, ölçülen tuzaklar ve uçtan uca doğrulama. İki tablonun yan
yana okunabilmesinin dayanağı kayda geçti: referans satırları QSV
ölçümüyle birebir aynı çıktı (KLIP_A 75.22 vs 75.21 MB / 0.99073;
KLIP_B 12.45 MB / 0.99770). "AMD günü" notu güncellendi: AMF bitti,
whisper.cpp HIP derlemesi sırada.AGENTS.md: RENDER encoder notundaki "AMF kalite argümanları kalibre
EDİLMEDİ" ifadesi kaldırıldı; üç donanım yolunun da kalibre olduğu ve iki
encoder'a özgü tuzak (QSV-q:v, AMF-preset) yazıldı.
Bilinen sınırlar
-usagehiç ölçülmedi. Envanterdehigh_qualityvetranscoding
dahil altı değer var; grid'i küçük tutmak için kapsam dışı bırakıldı.
Kalite/boyut eğrisini kaydırabilir — ölçülmeden değiştirilmemeli.- Kalibrasyon tek makinede yapıldı (RX 9060 XT). Başka nesil AMF
silikonunda (eski GCN/Polaris) değerler sapabilir; ölçüm yöntemi KI-6'da
kayıtlı ve tekrarlanabilir. - CQP içeriğe uyarlanmaz. Ofset 0'da dosya iki klipte de referansı ~%23
aşıyor. Sapma bilinçli olarak kalite yönünde bırakıldı — NVENC (-2) ve
QSV ofsetleriyle aynı tercih: "bedeli daha büyük dosya".
Ölçüm özeti (KLIP_A 8BitDo.mp4 720p30 facecam, KLIP_B nokta1.mp4 1080p60 düşük hareket; referans libx264 -preset medium -crf 23, SSIM ffmpeg'in kendi ssim filtresiyle kaynağa karşı, tam klip, video-only): seçilen qp = crf iki klipte de referansın SSIM'ine en yakın kabul edilebilir aday — KLIP_A −0.00062 (boyut +%23.5), KLIP_B −0.00101 (+%23.3). qp 21 SSIM'de daha yakın olsa da boyut süzgecine takıldı (+%58.6 / +%42.5). QSV kalibrasyonunda klip başına kazananlar çatışmış ve karar tek klibe yaslanmak zorunda kalmıştı; AMF'de tek doğrusal eşleme iki klipte de doğrudan kazanıyor. Tam tablolar KNOWN_ISSUES.md KI-6'da.
Test sayısı 477 → 486 collected (bu koşuda 477 passed / 9 skipped; dağılım donanıma bağlıdır — üç donanım probe sınıfının hepsi aynı makinede yeşil olamaz). Trio (pytest -x --tb=short / ruff check . / mypy .) üçü de exit 0.