Можно ли декодировать сжатые видео обратно в их несжатый исходный формат?

Можно ли декодировать сжатые видео обратно в их несжатый исходный формат?

В тексте упоминается следующее:документация ffmpeg.

ffmpeg вызывает библиотеку libavformat (содержащую демультиплексоры) для чтения входных файлов и получения из них пакетов, содержащих закодированные данные... Затем закодированные пакеты передаются в декодер... Декодер создает несжатые кадры (необработанное видео/PCM-аудио/...), которые можно дополнительно обработать путем фильтрации...

Означает ли это, что вы всегда можете извлечь исходные видео большого размера из всех сжатых форматов/кодеков, таких как h.264?

решение1

Сжатие видео обычно "с потерями", в отличие от "без потерь".

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

Хранение изображений и видео с использованием методов сжатия с потерями, как правило, приемлемо, поскольку люди не очень хорошо воспринимают детали изображения — например, наш мозг может дополнить множество деталей только из контекста (поскольку у наших глаз есть только небольшая область в центре, которая "высокое разрешение"), а наши глаза более чувствительны к интенсивности зеленого цвета, чем красного или синего (что объясняет распределение в RGB565).

Итак, когда вы говорите:

Означает ли это, что вы всегда можете извлечь исходные видео большого размера из всех сжатых форматов, таких как mp4?

Вы задаете один вопрос, но оставляете массу возможностей для неверного толкования.

  • Можно ли извлечь исходное, идеальное по пикселям изображение из видео, сжатого с использованием методов с потерями?
    • Нет
  • Можно ли извлечь один кадр из видео, сжатого с использованием методов с потерями, который имел бы высокое качество и мог бы использоваться как статическое изображение?
    • Возможно нет- движение в сцене приведет к большему количеству артефактов, в то время как статичная сцена, как правило, будет выглядеть все лучше и лучше с течением времени.
  • Можем ли мы извлечь изображение исходного размера, которое выглядит так:разумный"человеку?
    • Да- для данного определения "разумный"

Это несовершенное полученное изображение будет иметь "Артефакты сжатия". Как показано в преувеличенных примерах ниже:

хорошо / 100% JPEG

плохо / 5% JPEG


Поскольку комментарии также в значительной степени фокусировались на качестве аудио, происходит то же самое. Однако аудио — это среда со значительно меньшей пропускной способностью, что позволяет использовать кодеки без потерь (например,FLAC).

Конвертация из PCM / WAV → MP3 → PCM приведет к получению выходного файла PCM, содержащего артефакты, появившиеся в процессе кодирования/декодирования MP3. Их невозможно удалить.

Кроме того, объединение кодеков позволит каждому из них вносить собственные артефакты, а порядок применения кодеков может оказать существенное влияние на результат.

Конвертация PCM → MP3 → OGG vorbis → Opus — этонетто же самое, что и PCM → Opus, поскольку каждый из промежуточных кодеков является кодеком с потерями.

Я сделал пример аудиофайла, который представляет это как еще одинпреувеличенный пример. Это первые ~30 секунд "Сегодня вечером" к "69 глаз", чередуя каждые 5 секунд следующие цепочки:

  • CD → FLAC → Опус
  • CD → FLAC → MP3 → Vorbis → Opus

Эффект здесь драматичен: высокие частоты (например, хай-хэт) почти полностью удалены из звука, а взаимодействие каналов (левого и правого) значительно, что особенно заметно в начале.

сравнивать

решение2

Короткий ответ длякодекив общем:
Любойкодек без потерьнравитьсяFLACилиПочтовый индексможет быть полностью перевернута.
Любаякодек с потеряминравитьсяJPEGилиМП3не может быть полностью изменено.

Этот принцип также действителен длявидеокодеки.
ЗдесьHuffYUVявляется примером видеокодека без потерь.
Иx264является примером видеокодека с потерями.

решение3

Означает ли это, что вы всегда можете извлечь исходные видео большого размера из всех сжатых форматов, таких как mp4?

Нет. Вы неверно истолковываете это предложение.

Вы не можете отобразить сжатое изображение, так же как вы не можете прочитать сжатый текст или прочитать файл, сжатый ZIP, не распаковав его предварительно. Чтобы отобразить любое изображение, вы должны каким-то образом представить его в несжатом виде в памяти, пиксель в пиксель.

Это не означает, что несжатое изображение будет идентично оригиналу — это зависит от используемых кодеков. Насколько мне известно, не существует общепринятых кодеков без потерь. Кодеки с потерями стремятся представить оригинал достаточно близко, чтобы сделать несжатое видео неразличимым при нормальных обстоятельствах, т. е. при воспроизведении с прогнозируемым разрешением и частотой кадров. При просмотре сжатых неподвижных изображений (т. е. частота кадров = 0) вы наверняка увидите артефакты, если только битрейт во время сжатия не будет установлен непрактично высоким (т. е. не будут созданы слишком большие выходные файлы) (этот ответ(мой как-то связан).


Кстати, MP4 — это всего лишьфайлформат, т. е. он сообщает вам, как сжатые данные хранятся в файле, но не определяет, как они были сжаты. MP4 может работать с различными кодеками. H.264, вероятно, самый популярный видеокодек, используемый с MP4, но не цитируйте меня по этому поводу. Аудио обычно сжимается с помощью AAC, я полагаю.

решение4

Это очень распространенная ошибка.

Вы можете преобразовать формат с потерями в формат без потерь, ноущерб нанесен.

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

Единственный вариант — связаться с издателем и узнать, сохранились ли у него оригинальные файлы без потерь, и готов ли он каким-то образом загрузить их вам.

Нет такого понятия, какКнопка «Улучшить».предупреждение: TVtropes

Связанный контент