Videolar için hangi yeniden boyutlandırma algoritmasını seçmelisiniz?


21

Bu ayarlarla kodlama için VirtualDub kullanıyorum . algoritmaları yeniden boyutlandır

Ancak eşyalarımı 1920x1080 olarak kaydediyorum ve 1280x720 boyutuna küçültüyorum. Şimdi soru: Dengeli bir kalite ve dosya boyutu kararı alırken hangi algoritmayı seçmeliyim?

Her zaman Lanczos'la gittim çünkü önceden yapılandırılmış olan buydu. Bu açıklamalar benim sorumda bana hiç yardımcı olmuyor.

Yanıtlar:


25

TL; DR

Numune alırken: Lanczos veya Spline filtreleme kullanın.

Numune alırken: Bikübik veya Lanczos filtreleme kullanın.

Bunlar yıllar boyunca okuduğum materyale ve endüstride kullandığım malzemelere dayanıyor. Öneriler içerik türüne ve uygulama alanına göre değişiklik gösterebilir.

Neden fark eder?

Bir videoyu küçültdüğünüzde yeniden boyutlandırma filtrelerinin çok fazla önemi olmadığı söylenebilir. Daha da önemlisi, yükseltme sırasında kalite üzerinde bir etkisi vardır, çünkü ilk etapta olmayan yerlerde veri oluşturmanız gerekir.

Bu filtrelerin hepsinin dosya boyutu üzerinde çok az etkisi vardır. Bu nedenle, orada büyük farklılıklar için endişelenmemelisiniz.

Gerçek, her zaman olduğu gibi video kodlanırken sonucun büyük ölçüde kaynak malzemeye bağlı olmasıdır. Her zaman sonucu tahmin edemezsiniz, ama sadece sizin için en iyi olanı görün.

Farklı algoritmalar

Örnek olarak, bisubik ve bilinear enterpolasyon :

     resim açıklamasını buraya girin

Bikubik enterpolasyonun daha pürüzsüz kenarlara yol açtığını gördünüz mü? Bu çok genel bir ifade… ancak görüntü ölçekleme algoritmalarına genel bir bakış burada bulabilirsiniz .

  • Bilineer enterpolasyon , bir pikselin 2x2 ortamını kullanır ve daha sonra yeni değeri enterpolasyonlamak için bu piksellerin ortalamasını alır. En iyi algoritma değil, oldukça hızlı.

  • Bikübik enterpolasyon , en içteki pikselleri daha ağır hale getiren bir pikselin 4x4 ortamını kullanır ve daha sonra yeni değeri enterpolasyonlamak için ortalamayı alır. Bu, benim için - en popüler olanı.

  • Alan ortalaması , kaynak ve hedef piksellerin eşlenmesini kullanır ve kaynak piksellerin, kapsanan hedef piksellerin fraksiyonuna göre ortalaması alınır. Bu sayfaya göre , altörnekleme yaparken daha iyi sonuçlar vermelidir.

  • Spline ve sinc enterpolasyon, daha yüksek mertebeden polinomlar kullanır ve bu nedenle hesaplamak, bikubik enterpolasyondan daha zordur. İşlem süresindeki genel artışın bunları kullanmaya değer olduğunu düşünmüyorum.

  • Lanczos yeniden örnekleme de samimi bir filtre içerir. Daha hesaplamalı olarak pahalıdır, ancak genellikle çok yüksek kalite olarak tanımlanır ve yukarı ve aşağı örnekleme için kullanılabilir.

  • hqx ve 2xSaI filtreleri piksel-sanat ölçeklendirmesi için kullanılır (örneğin oyun emülatörleri). Bunları videoda kullanmak için iyi bir neden olduğunu düşünmüyorum.

Jeff Atwood'un karşılaştırması

Jeff Atwood'un görüntü enterpolasyon algoritmalarını karşılaştırdığı ortaya çıktı . Başparmak kuralı aşağı örnekleme için bikubik enterpolasyon ve yukarı örnekleme sırasında bilinear enterpolasyon kullanmaktı. Bununla birlikte, video kodlama için tipik olarak önerilen bu değildir - ve bazı yorumcular Atwood'un bu alandaki uzmanlığı hakkında şüphe uyandırdı.

Ancak şunları da belirtti ...

Görüntüleri azaltmak tamamen güvenli ve rasyonel bir işlemdir. Bilgileri atarak hassasiyeti ve çözünürlüğü azaltırsınız. Görüntüyü istediğiniz kadar küçük hale getirin ve izin verdiğiniz piksel sayısı sınırları dahilinde tam bir aslına sahip olun. Hangi algoritmayı seçerseniz seçin iyi sonuçlar elde edersiniz. (Nefis Piksel Yeniden Boyutlandır veya En Yakın Komşu algoritmalarını seçmediğiniz sürece.)

Diğer örnekler

Aşağıda, yukarıda bahsettiğimler dahil olmak üzere, görüntü enterpolasyon algoritmalarına birkaç örnek daha verilmiştir .

Ayrıca video kodlama sahnesinden alt örnekleme için bikubik filtrelemeyi açıkça yasaklayan belgeler (sahne kuralları) buldum . Bunun yerine, Lanczos, Spline veya "Blackman" yeniden örneklemeyi onaylıyorlar.


Her zaman "hassas bikubik A = 100" kullanıyordum. Güncellenen programın yeniden yüklenmesinde Lanczos varsayılan olarak ayarlandı, birçok kişi beğendi. Bunu uzun süre bıraktım. Sonunda daha sonra kodlanmış Lanczos şeyleri izlemek için dolaşmak ve iyi değildi, bir sonraki kodlar seti, ben bikubic geri döndü düşündüm. Sıkışmayı da sıkıyordum, toplam veri boyutunu çok fazla azaltmaya çalışmadıysam Lanczos daha iyi görünebilirdi.
Psycogeek

2
FWIW Jeff Atwood'u görüntü işleme konusunda uzman olarak görmezdim ve bu makalede bilinear, en yakın komşu veya (belirli bir varyant) bikubik dışında bir şey incelemiyor. Çoğu kişi, genişleme kötü olduğunda bilinear kullanma önerisini kabul eder.
thomasrutter

1
@thomasrutter Teşekkürler. Sana katılıyorum - bunu yazdığımda, muhtemelen görüntü işleme hakkında şimdiki kadar çok şey bilmiyordum. Sanırım bu makaleye yapılan referansı kaldıracağım ve başka bir kaynak bulacağım.
slhck

8

Bunlardan bazılarını belgeleyen iyi bir görüntü buldum.

resim açıklamasını buraya girin

Tam boyutlu sürüm burada .

Genel olarak, daha büyük bir görüntüyü daha küçük bir görüntüye dönüştürürken hafif bir keskinleştirme efekti ve daha küçük bir görüntüyü daha büyük bir görüntüye dönüştürürken hafif bir bulanıklık efekti istersiniz. MadVR filtre seti, ölçek yükseltme için varsayılan olarak Lanczos ve ölçek küçültme için bikubiktir.


2

3x3 orijinal pikseli 2x2 hedef piksele dönüştürüyorsunuz.

Keskin çizgiler tutmak istiyorsanız, Lanczos'u veya keskin çizgileri (kürk veya yansımalar gibi) bulanıklaştırmamak için daha fazla çevreleyen piksel kullanan bir şey seçin

Aksi takdirde alan ortalaması vb. (Ayrıca bilinear / trilinear) yeterli olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.