Сравните два видеофайла, чтобы узнать, какое из них имеет наилучшее качество


30

Предположим, у меня есть один и тот же видео материал, закодированный в два (или более) файла. Я хотел бы запустить на них какую-нибудь утилиту, которая бы указала, какой файл является «лучшим» по качеству. «По существу» означает, что я хотел бы получить отчет, который сравнивает различные аспекты (например, разрешение видео, битрейт видео, частота дискретизации аудио, битрейт аудио и т. Д. И т. Д.) Один за другим, а затем некоторую интегральную оценку, которая учитывает все их.

Это касается функциональности, но для того, чтобы эта утилита была действительно полезной, она должна быть с открытым исходным кодом и командной строкой.


Чтобы начать собирать некоторую связанную информацию (на самом деле не решение по критериям, указанным выше), есть repo.or.cz/w/mplayer.git/blob/HEAD:/TOOLS/psnr-video.sh Вот такая вещь , как про: сжатие .ru / video / quality_measure /… . Но он не с открытым исходным кодом и сравнивает «оригинал» и «копию», а не только 2 несмещенных файла.
pfalcon

Связанные вопрос: stackoverflow.com/questions/3518417/...
pfalcon

Ответы:


88

Я занимаюсь исследованием качества видео, и мне сложно дать простой ответ на ваш вопрос. Вам нужна программа, которая дает вам средний балл мнения (MOS) видео, то есть число от 1 до 5 или от 0 до 100, что соответствует качеству, воспринимаемому человеком.

Почему вы не можете просто сравнить битрейт / разрешение / и т.д.

Просто сравнение разрешения видео ничего не скажет о качестве. На самом деле, это может вводить в заблуждение. Разрыв фильма с разрешением 1080p при размере 700 МБ может выглядеть хуже, чем разрыв с разрешением 720p при 700 МБ, поскольку для первого слишком низкая скорость передачи битов, что приводит к появлению всех видов артефактов сжатия.

То же самое касается сравнения битрейта при одинаковых размерах кадра, так как разные кодеры могут фактически обеспечить лучшее качество при меньшем битрейте или наоборот. Например, разрыв 720p на 700 МБ, созданный с XviD, будет выглядеть хуже, чем разрыв на 700 МБ, созданный с x264, потому что последний намного более эффективен.

Вы также должны будете определить, как окончательная «интегральная оценка» (MOS) состоит из отдельных факторов качества. Это сильно зависит от нескольких вещей, включая, но не ограничиваясь:

  • тип видео, которое вы сравниваете (мультфильмы, фильмы, новости и т. д.)
  • их длина
  • их зрительская аудитория
  • их оригинальный размер кадра
  • их оригинальное «качество», прежде чем они были закодированы

Мы даже не говорим о том, как люди воспримут видео. Предположим, у вас есть друг, который смотрит фильмы, потому что он или она наслаждаются четкими деталями и высоким разрешением движения. Они были бы гораздо более критичны, когда видели низкокачественный рип, чем друг, который просто смотрит фильмы для своего контента . Они, вероятно, не будут заботиться о качестве так долго, пока фильм забавный или интересный.

Существуют различные типы показателей качества видео!

Позвольте мне дать вам список того, что, на мой взгляд, наиболее часто используется для базовой оценки качества видео сегодня. Существует несколько показателей качества видео, которые можно классифицировать в зависимости от того, какой вид информации используется для определения качества. В принципе и очень просто, вы различаете следующее:

  • Метрики без ссылок - у них есть только одно видео на входе и выводит показатель качества. В вашем случае вы ищете показатель без ссылок , потому что у вас часто нет даже оригинального видео. Такая метрика будет занимать одно видео и выводить один показатель качества. Вот несколько примеров проблем, которые обнаружит метрика NR (например, размытие).

  • Полноценные метрики - у них есть два входа, один из которых является исходным входным видео, а другой - закодированным видео. Например, вы можете взять фильм на DVD, затем создать из него два фрагмента и использовать метрику с полной ссылкой для оценки потери качества между исходным фильмом DVD (т. Е. Видео MPEG-2 на диске) и вашими фрагментами. Это займет много времени для вычисления, но это более точно.

Вышеуказанные метрики смотрят на качество кодирования видео, но есть также метрики, которые включают в себя такие проблемы, как время начальной загрузки и события останова при потоковой передаче видео (например, ITU-T P.1203 ).

Какое программное обеспечение я могу использовать?

Вот список готовых инструментов, которые вы можете использовать для проверки некоторых метрик (некоторые только для Windows):

Теперь, какие метрики есть?

PSNR, PSNR-HVS и PSNR-HVS-M

Для начала PSNR (пиковое отношение сигнал / шум) - это очень простой в использовании, но несколько плохой метод оценки качества видео. Это работает относительно хорошо, хотя для большинства приложений, но это не дает хорошей оценки того, как люди будут воспринимать качество.

PSNR можно вычислять покадрово, а затем вы, например, усредняете PSNR всей видеопоследовательности, чтобы получить окончательный результат. Чем выше PSNR, тем лучше.

PSNR-HVS и PSNR-HVS-M являются расширениями PSNR, которые пытаются имитировать зрительное восприятие человека, поэтому они должны быть более точными. VQMT и MSU могут рассчитывать PSNR, PSNR-HVS и PSNR-HVS-M между двумя видео.

SSIM, MS-SSIM

Структурное сходство (SSIM) так же легко вычислить, как и PSNR, и оно дает более точные результаты, но все же по кадрам. Вы можете найти некоторые реализации по ссылке в Википедии, или вы можете использовать VQMT или MSU . Эти инструменты также включают MS-SSIM, который дает лучшие (то есть, более репрезентативные) результаты, чем SSIM, а также некоторые другие производные.

Результаты должны быть похожи на PSNR. Опять же, вам нужно сравнить ссылку на обработанное видео, чтобы это работало, и оба видео должны быть одинакового размера.

VMAF

Многофункциональная оценка видео Fusion от Netflix - это набор инструментов для расчета качества видео на основе некоторых существующих метрик, которые затем объединяются методами машинного обучения в итоговую оценку от 0 до 100. Netflix объяснил все это здесь :

[VMAF] предсказывает субъективное качество путем объединения нескольких элементарных метрик качества. Основное обоснование заключается в том, что каждая элементарная метрика может иметь свои сильные и слабые стороны в отношении характеристик контента источника, типа артефактов и степени искажения. Путем «объединения» элементарных метрик в конечную метрику с использованием алгоритма машинного обучения - в нашем случае, регрессора машины опорных векторов (SVM), который присваивает веса каждой элементарной метрике, итоговая метрика может сохранить все сильные стороны отдельных метрик. и поставьте более точный окончательный результат.

Вы также можете использовать ffmpegдля расчета баллов VMAF .

VQM

Качество видео Metric был подтвержден в Quality Experts Group Video (VQEG) и очень хороший полный справочник алгоритм. Вы можете скачать VQM бесплатно или использовать реализацию из МГУ.

При регистрации и загрузке вы хотите использовать общую модель NTIA или модель качества видео с переменной задержкой кадров .

Другие метрики

  • PEVQ является стандартизированной метрикой с полным эталоном согласно ITU-T J.246. Он нацелен на мультимедийные сигналы, но не на HD-видео.
  • VQuad-HD - это еще одна метрика с полным эталоном, стандартизированная как ITU-T J.341. Поскольку он более новый, он лучше подходит для HD-видео.

Оба они являются коммерческими решениями, и вы не найдете программное обеспечение для загрузки для них.

Существуют также некоторые стандарты МСЭ на нереферентные показатели, такие как МСЭ-Т P.1201 и МСЭ-Т P.1202 , которые работают с параметрами из потока битов для потоковой передачи IPTV. МСЭ-T P.1203 может использоваться для случаев адаптивной потоковой передачи.


Резюме

Если вы просто хотите сравнить простые объективно измеримые критерии, такие как:

  • Размер рамки
  • Битрейт
  • Кадров в секунду
  • Разрешение видео

... простой звонок ffmpeg -iдолжен дать вам все детали, которые вам нужны в начале. Также посмотрите на -vstatsвариант. Затем вы можете суммировать это в электронной таблице. Обратите внимание, что когда вы кодируете видео, x264например, записывает такие вещи, как PSNR, прямо в файл, если вам нужно, чтобы вы могли использовать эти значения позже.

Что касается взвешивания этих критериев, вам, вероятно, следует подчеркнуть скорость передачи данных, но только если вы знаете, что кодек тот же. Можно сказать, что когда оба видео используют x264, лучше использовать видео с более высоким битрейтом. В более общем смысле, вам следует выбирать более низкое разрешение, когда у вас есть два видео с одинаковым битрейтом, поскольку ухудшение из-за увеличения масштаба не так плохо, как ухудшение из-за низкого битрейта.

Сравнение разных кодеков по их битрейту невозможно, если вы не знаете больше о контенте и индивидуальных настройках кодирования. Частота кадров тоже очень субъективная вещь и должна учитываться в ваших измерениях, если она значительно ниже 25 Гц.

Подводя итог, сильно подчеркните битрейт, если это единственное, что у вас есть. Не забудьте использовать свои глаза тоже :)


Прежде всего, как первоначальный автор вопроса, я прошу прощения за то, что не прокомментировал раньше. Пост действительно потрясающий и высоко ценится. К сожалению, я не могу принять это как ответ на мой оригинальный вопрос. Причина в том, что я намеренно разместил вопрос здесь, а не в StackOverflow, потому что я хотел предложить существующий, готовый к использованию инструмент. Будь то вопрос о том, как написать такой инструмент, ваш ответ будет абсолютным победителем. Но извините, я не могу написать все, что мне нужно, с нуля, поэтому пусть пользователь задает мне вопросы и ожидает ответов (может быть, не вчера или сегодня, может быть, в будущем ;-)
pfalcon

1
Отличный, информативный ответ. Несмотря на то, что это не прямой ответ, мне нравится видеть, что люди не спешат писать такой информативный материал. +1
SuperDuck

1

Я не знаю ни одного инструмента, который даст вам окончательную рекомендацию или оценку, но с помощью FFmpeg вы можете вывести все детали, которые вы указали в вопросе.

В командной строке ffmpeg -i отобразит информацию из видео. Оттуда вы можете написать скрипт, который будет анализировать информацию и оценивать ее по своему усмотрению.


Спасибо, да, это то, что я делал в течение нескольких часов, прежде чем решил спросить, существует ли какой-нибудь лучший, «волшебный» инструмент ;-)
pfalcon
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.