En iyi kaliteyi bulmak için iki video dosyasını karşılaştırın


30

İki (veya daha fazla) dosyada kodlanmış aynı video malzemem olduğunu varsayalım. Hangi dosyanın kalitesinde "en iyi" olduğunu gösteren temelde bazı programlar çalıştırmak istiyorum. "Temel olarak", farklı yönleri (örneğin, video çözünürlüğü, video bit hızı, ses örnekleme hızı, ses bit hızı vb.) Birer birer karşılaştıran bir rapor almak ve daha sonra da herkes için geçerli olan bazı entegral puanı almak istediğim anlamına gelir. Bunların

İşlevsellik ile ilgili, ancak bu yardımcı programın gerçekten kullanılabilir olması için açık kaynaklı ve komut satırında olması gerekir.


İlgili bazı bilgileri toplamaya başlamak için (yukarıdaki ölçütlere göre gerçekten bir çözüm değil), repo.or.cz/w/mplayer.git/blob/HEAD:/TOOLS/psnr-video.sh Bir profesyonel gibi "şeyler: sıkıştırma .ru / video / quality_measure /… . Ancak açık kaynaklı değildir ve sadece 2 tarafsız dosyayı değil, "orijinal" ile "kopya" yı karşılaştırır.
pfalcon

Yanıtlar:


88

Video kalitesi araştırmasında çalışıyorum ve sorunuza basit bir cevap vermek zor. İstediğiniz şey size veren bir programdır. , bir videonun Ortalama Görüş Puanını (MOS) yani bir insan tarafından algılanan kaliteye karşılık gelen 1 ile 5 arasında veya 0 ile 100 arasında bir sayı .

Neden sadece bit hızını / çözünürlüğünü / vb. Karşılaştıramazsınız.

Sadece video çözünürlüğünü karşılaştırmak kaliteyle ilgili hiçbir şey söylemeyecektir. Aslında, tamamen yanıltıcı olabilir. 700 MB boyutunda bir 1080p film kopyalaması, 700 MB boyutundaki 720p'lik bir kopyadan daha kötü görünebilir, çünkü eski için bit hızı çok düşüktür ve bu da her türlü sıkıştırma eserini ortaya çıkarır.

Aynısı, farklı kodlayıcılar daha az bit hızında ya da tam tersi daha iyi kalite sunabildiğinden, bit hızını benzer çerçeve boyutlarında karşılaştırmak için de geçerlidir. Örneğin, XviD ile üretilen bir 720p 700 MB'lık bir yırtık, x264 ile üretilen bir 700 MB'lik yırtıktan daha kötü görünecektir, çünkü ikincisi çok daha verimlidir.

Ayrıca nihai bir “entegral puanının” (MOS) bireysel kalite faktörlerinden nasıl oluştuğunu tanımlamanız gerekir. Bu ağır dahil fakat bunlarla sınırlı olmamak üzere, pek çok şeye bağlıdır:

  • Karşılaştığınız videoların türleri (çizgi filmler, filmler, haberler vb.)
  • uzunlukları
  • onların izleyici kitlesi
  • orijinal çerçeve boyutları
  • kodlanmadan önce orijinal "kalitesi"

İnsanların videoları nasıl algıladıklarından bahsetmiyoruz bile. Film izleyen bir arkadaşınız olduğunu varsayalım, çünkü canlı detayları ve yüksek çözünürlük çözünürlüğüne sahiptir. Sadece kalitesi için film izleyen bir arkadaştan daha düşük kalitede bir yırtık görürken çok daha kritik olurlar . Film komik veya eğlenceli olduğu sürece muhtemelen kaliteyi çok fazla önemsemezlerdi.

Farklı türlerde video kalitesi ölçümleri var!

Bugün, video kalitesinin temel değerlendirmesinde en çok ne kullanıldığını düşündüğüm bir listesini vereyim. Kaliteyi belirlemek için hangi bilgilerin kullanıldığına göre sınıflandırılabilecek birkaç video kalitesi ölçümü vardır. Prensipte ve çok basit konuşursak, aşağıdakileri ayırt edersiniz:

  • Referanssız metrikler - Girdi olarak yalnızca bir videoya sahipler ve bir kalite puanı verdiler. Sizin durumunuzda referanssız bir ölçüm arıyorsunuz , çünkü genellikle orijinal videoya bile sahip değilsiniz. Böyle bir metrik bir video çeker ve bir kalite puanı verir. İşte bazı örnekler bir NR metrik algılar problemler (örneğin bulanıklık) ait.

  • Tam referans metrikleri - Bunlardan biri orijinal giriş videosu diğeri kodlanmış video olmak üzere iki girişi vardır. Örneğin, bir DVD filmi çekebilir, daha sonra ondan iki kopya oluşturabilir ve orijinal DVD filmi (yani, diskteki MPEG-2 videosu) ile kopyalarınız arasındaki kalite kaybını tahmin etmek için tam referanslı bir ölçüm kullanabilirsiniz. Bu hesaplanması uzun zaman alacak, ama daha doğru.

Yukarıdaki metrikler video kodlama kalitesine bakar, ancak video akışı sırasında başlangıç ​​yükleme süreleri ve duraklatma olayları gibi sorunları içeren metrikler de vardır (örneğin, ITU-T P.1203). ).

Hangi yazılımı kullanabilirim?

Bazı ölçümleri test etmek için kullanabileceğiniz kullanıma hazır araçların bir listesi aşağıda verilmiştir (bazıları yalnızca Windows içindir):

Şimdi hangi metrikler var?

PSNR, PSNR-HVS ve PSNR-HVS-M

Yeni başlayanlar için, PSNR (En Yüksek Sinyal-Gürültü Oranı), video kalitesini değerlendirmek için kullanımı çok basit ama biraz zayıf bir yöntemdir. Çoğu uygulama için nispeten iyi çalışır, ancak insanların kaliteyi nasıl algılayacağına dair iyi bir tahmin vermez.

PSNR kare-kare olarak hesaplanabilir ve daha sonra final skorunu elde etmek için örneğin bütün bir video dizisinin PSNR'sini ortalamalarsınız. Daha yüksek PSNR daha iyidir.

PSNR-HVS ve PSNR-HVS-M, insan görsel algısını taklit etmeye çalışan PSNR'nin uzantılarıdır, bu yüzden daha kesin olmalıdırlar. VQMT ve MSU , iki video arasında PSNR, PSNR-HVS ve PSNR-HVS-M'yi hesaplayabilir.

SSIM, MS-SSIM

Yapısal Benzerlik (SSIM), PSNR kadar hesaplamak kolaydır ve daha kesin sonuçlar verir, ancak yine de çerçeve bazında. Sen Wikipedia bağlantısını altında bazı uygulamaları bulacaksınız, ya da kullanabilir VQMT veya MSU . Bu araçlar ayrıca SSIM'den daha iyi (yani daha temsili) sonuçlar veren MS-SSIM'i ve diğer birkaç türevi içerir.

Sonuçlar PSNR'ye benzer olmalıdır. Yine, bunun çalışması için işlenmiş bir video referansını karşılaştırmanız gerekir ve her iki video da aynı boyutta olmalıdır.

VMAF

Netflix Video Çoklu Metod Değerlendirme Fusion , mevcut bazı ölçümlere dayanarak video kalitesini hesaplamak için kullanılan bir araç setidir ve daha sonra makine öğrenme metotları ile 0 ile 100 arasında final skoruna birleştirilir. Netflix burada her şeyi açıkladı :

[VMAF], çoklu temel kalite ölçümlerini birleştirerek öznel kaliteyi öngörüyor. Temel gerekçe, her bir temel metriğin, kaynak içerik özellikleri, artefakt tipleri ve bozulma derecesine göre kendi güçlü ve zayıf yönlerinin olabileceğidir. Temel ölçümleri, bir makine-öğrenme algoritması kullanarak son bir metriğe 'kaynaştırmak' ile - bizim durumumuzda, her temel metriğe ağırlık atayan bir Destek Vektör Makinesi (SVM) regresörü - bireysel metriklerin tüm gücünü koruyabilir ve daha kesin bir final puanı verin.

VMAF puanlarını hesaplamak için de kullanabilirsinizffmpeg .

VQM

Video Kalitesi Metrik doğrulandı Video Kalitesi Experts Group (VQEG) ve çok iyi bir tam referans algoritmasıdır. VQM'yi ücretsiz olarak indirebilir veya uygulamayı MSU'dan kullanabilirsiniz.

Kayıt olurken ve indirirken, NTIA Genel Modelini veya Değişken Çerçeve Gecikmeli Video Kalitesi Modelini kullanmak istersiniz .

Diğer Metrikler

  • PEVQ , ITU-T J.246 uyarınca standart bir tam referans ölçümüdür. Multimedya sinyallerini hedef alır, ancak HD videoyu değil
  • VQuad-HD , ITU-T J.341 olarak standardize edilmiş bir başka tam referans metriktir. Yeni olduğu için, HD video için daha uygun.

Her ikisi de ticari çözümlerdir ve onlar için indirilecek bir yazılım bulamazsınız.

IPTV akışı için bit akışından gelen parametrelerle çalışan ITU-T P.1201 ve ITU-T P.1202 gibi referanssız ölçümlerde bazı ITU standartları da vardır .ITU-T P.1203 uyarlamalı akış durumları için kullanılabilir.


özet

Sadece aşağıdakiler gibi basit objektif olarak ölçülebilir kriterleri karşılaştırmak istiyorsanız:

  • Çerçeve boyutu
  • Bit hızı
  • Saniyedeki kare sayısı
  • Video çözünürlüğü

ffmpeg -iBaşında ihtiyacınız olan tüm detayları size vermesi gereken basit bir çağrı . Ayrıca -vstatsseçeneğe bir göz atın . Daha sonra bunu bir elektronik tabloda özetleyebilirsiniz. Videoları kodladığınızda,x264Örneğin, PSNR gibi dosyaları doğrudan bir dosyaya kaydedeceğinizi, bu değerleri daha sonra kullanabileceğinizi unutmayın.

Bu ölçütlerin nasıl ağırlıklandırılacağına gelince, muhtemelen bit oranını vurgulamanız gerekir - ancak yalnızca kod çözücünün aynı olduğunu biliyorsanız. Genellikle, her iki video da x264 kullandığında, daha yüksek bit hızına sahip olanın daha iyi olduğunu söyleyebilirsiniz. Daha genel olarak, aynı bit hızına sahip iki videonuz olduğunda daha düşük bir çözünürlük seçmelisiniz;

Farklı kodeklerin bit hızlarına göre karşılaştırılması mümkün değildirİçerik ve bireysel kodlama ayarları hakkında daha fazla bilgi sahibi olmadığınız sürece . Kare hızı da çok öznel bir şeydir ve 25 Hz'nin altındaysa ölçümlerinizde sayılmalıdır.

Özetlemek gerekirse, sahip olduğunuz tek şey buysa, bit oranını vurgulayın. Sen de gözlerini kullanmayı unutma.


Öncelikle, sorunun asıl yazarı olarak, daha önce yorum yapmadığım için üzgünüm. Yazı gerçekten harika ve iyi takdir edilir. Ne yazık ki, orijinal sorumun cevabı olarak kabul edemiyorum. Sebebi şu: Kullanıma hazır olan aracın önerisini istediğim için soruyu StackOverflow'a değil kasıtlı olarak buraya gönderdim. Böyle bir aracı nasıl yazacağınıza dair bir soru olsun, cevabınız kesin bir kazanan olacaktır. Ama üzgünüm, sıfırdan ihtiyacım olan her şeyi yazamıyorum, bu yüzden kullanıcının bana sorular sormasını ve cevap beklemesini sağlayın (belki dün ya da bugün değil, belki gelecekte ;-)
pfalcon

1
Harika, bilgilendirici cevap. Doğrudan bir cevap olmasa da, insanların bu tür bilgilendirici materyalleri yazmak için zamanlarını ayırdıklarını görmek isterim. +1
SuperDuck

1

Size son bir öneri veya puan verecek herhangi bir aracın farkında değilim, ancak FFmpeg'i kullanarak , sorunda listelediğiniz tüm ayrıntıları yazdırabilirsiniz .

Komut satırında, ffmpeg -i, videodaki bilgileri listeler. Oradan, bilgileri ayrıştırmak ve uygun gördüğünüz şekilde ağırlıklandırmak için bir komut dosyası yazabilirsiniz.


Teşekkürler, evet, daha iyi, "sihirli" bir araç olup olmadığını sormaya karar vermeden önce birkaç saat boyunca yaptığım şey bu ;-)
pfalcon
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.