[Gelistirici] yine x264

Onur Küçük onur at pardus.org.tr
22 Ara 2009 Sal 21:27:25 EET


On Tue, 22 Dec 2009 16:51:45 +0200
Serdar Dalgic <serdar at pardus.org.tr> wrote:

> 2009/12/22 Onur Küçük <onur at pardus.org.tr>
> 
> >
> >  Merhaba,
> >
> >  Hazır vlc, avidemux, ffmpeg, mplayer güncelleniyorken yine x264 ü
> > güncellemeyi düşünüyorum. Bir kaç gündür ffmpeg ve mplayer için
> > tırmalıyordum, yeni x264 çok önemli diyip eski sürümlere desteği
> > attılar, bu geçiş benim işimi de kolaylaştıracak. Bunlar dışında
> > benim paketim olmayan gst-plugins-ugly ile contrib de cinerella
> > var, bir değişiklik gerekli olursa onları da halledeceğim.
> >
> >  Var mıdır itirazı olan ?
> >
> >
> Bir öncekinde de bu şekilde olmuştu, sanıyorum kimsenin yeni x264'e
> güncellemenin ne getirip ne götüreceği konusunda bir fikri olmadığı
> için, backup olarak da "bir değişiklik gerekli olursa onları da
> halledeceğim." demenden dolayı bir itirazı olmuyor :)

 İlla itiraz olması mı gerekiyor ? :)

 Bir öncekinde kısa özet halinde nerelerde değişiklik olduğunu
yazmıştım [1], getirisi bunlardı, şimdiki geçiş ile olacak önemli
değişiklikleri de şimdi yazdım [2] ama konu ile ilgilenmiyorsanız bunlar
bir şey ifade etmeyecek.

 Götürüsü ise, yine yazdığım [1] gibi ABI kıracağı için (so dosyasının
adının değişmesi sebebiyle) ters bağımlılıkların tekrar derlenmesi, API
de bir değişiklik varsa ve gerekiyorsa da paketlere uygulanması
gerekmesi.


> Peki olası problem ne olabilir, itiraz ediyor olsaydık neye itiraz
> edebilirdik? :) Bilmediğim için soruyorum, listede konuşmak da yararlı
> olabilir.

 Olay şu, kararlı sürüm çıktıktan sonra o seri içerisinde depoda
gerçekten gerekli olduğu durumlar hariç ABI kırmıyoruz. Kırmamız
gerekiyorsa da geliştirici listesine durumu haber veriyoruz, yorumları
alıyoruz, sonuca göre de sürüm yöneticisi yapıp yapmamaya karar
veriyor. 

 x264 bu konu için kötü bir örnek, başka bir paket olsaydı belki bu
konuda konuşacak daha çok kişi olabilirdi,  ? 264 ailesindeki
değişiklikleri takip eden bu listede kaç kişi var bilmiyorum ama başka
birileri daha olsa idi belki "hede geliyor o gelince yapsak daha iyi"
gibi bir konuşma geçebilirdi, ya da paketin ters bağımlılıklarından
birinin sahibi "yeni sürümle hödö patlıyor, onu düzeltelim öyle
alalım", "benim çıkında yapacağım bi değişiklik var pakette,
onu alayım onunla değiştirelim" diyebilir. Paketlerin derlenmesini
sağlamak kısmen kolay, ama değişiklikle beraber düzgün çalışmasını
garantilemek her zaman o kadar kolay değil. Örneğin avidemux da x264
bframe-pyramid değişikliğinde sadece bframe-pyramid parametresini
değiştirmek derlenmesi için yetiyordu, ancak doğru çalışması için yeni
sürümlerde yeni bframe-pyramid seçeneğini sadece bframe referansları
<=2 durumu için ayarlamak gerekiyor.

 Amacım bu tarz konuşmalara olanak tanımak ve böyle önemli bir
değişikliği listede haber vermek. Ama "zaten bu konu ile ilgilenen
fazla kimse yok, sen de zaten gereğini yapıyorsun, fikir sorma boşuna"
derseniz sadece haber verip x264 için gerektiğinde direkt ilgili
değişikliği yapıp listeye haber verebilirim, zaman açısından işime de
gelir :)


[1] http://liste.pardus.org.tr/gelistirici/2009-September/021259.html

[2] 
- trellis b-adapt hafıza kullanımı azaltıldı
- trellis son frame in silinmesi sorunu düzeltildi
- qcomp=1 iken CRF init de QP seçimi düzeltildi
- VBV Pyramid kullanımında olası bir çökme ve fazla kaynak tüketimi
düzeltildi
- Minigop başına birden fazla B-ref kullanabilmek için QPfile da
iyileştirmeler yapıldı
- macroblock tamponunda ortak yazılan veri tipi arttırılarak
iyileştirme yapıldı
- b-pyramid strict kullanımında yanlış yayın oluşması sorunu düzeltildi
- CABAC ve CAVLC için optimizasyonlar eklendi
- Ofset hesaplaması yapısı değiştirilerek MC init hızı arttırıldı
- b-adapt=1 iken frame tipinin yanlışlıkla otomatik işaretlenmesi
düzeltildi
- memcpy ler elden geçirilerek MB-tree nin bazı B-frame lerde yanlış
çalışması düzeltildi
- Interlaced hareket takibinde chroma MV ofsetine bakarak interlaced
sıkıştırma hızlandırıldı
- bime kod boyutu azaltıldı, çalışan kod boyutu 8k düştü, sibme için %
0.6 hız artışı sağlandı
- düşük çözünürlüklü yüzeyler için alt sağ piksel init i düzeltildi
- pixel_ssd_ ASM fonksiyonları elden geçirildi, 10K çalışan kod boyutu
kazanıldı
- double->float dönüşümü ile oluşan ve az rastlanan 2-pass VBV sonsuz
döngü sorunu çözüldü
- girdi ve çıktıların pipe / FIFO olması durumunda sağlıklı çalışmama
sorunu düzeltildi
- IDR olmayan I-frame lerde rastlanan çökme düzeltildi
- GSOC 2009 da hazırlanan weightp ( Weighted P-frame Prediction )
desteği eklendi
- FLV muxer desteği eklendi
- sync-lookahead de oluşabilecek bir deadlock düzeltildi
- 2 geçişli işlemde geçişler arasında fark varsa düzgün uyarı verme
desteği eklendi
- satd / RD çağrıları tekrar sıralanarak MC çıktısı cache desteği ile
qpel-RD %5-10 daha hızlandı
- 8x8 zigzag için MMX desteği eklendi
- BOOL olması gereken seçenekler BOOL olarak tanımlanarak SEI alanında
düzgün görülmesi sağlandı
- slice base threading desteği eklendi (bunu sanırım açmayacağım)
- B-Pyramid MB-tree desteği eklendi
- Artık SEI bilgi alanına fast pskip ekleniyor
- Subme 1 ile qpel arama kapatılması ve geçici MV lerin ortalanması vb.
lookahead iyileştirmeleri yapıldı
- 2-pass için 2. turda last_qscale ayarlanmaması sorunu çözüldü
- abr_buffer değeri arttırılarak, 2-pass için büyük I-frame lerin
kullanıldığı (örn. anime) yayınlarda thread kullanımında performans
artışı sağlandı


-- 
 Onur Küçük                                      Knowledge speaks,
 <onur.--.-.pardus.org.tr>                       but wisdom listens




Gelistirici mesaj listesiyle ilgili daha fazla bilgi