Ограничения для эффективного кодирования
Из-за особенностей MPEG-подобного сжатия, существуют различные ограничения, которым Вы должны следовать для достижения максимального качества. MPEG разбивает видео на квадраты 16х16, называемые макроблоками. Каждый макроблок состоит из 4 блоков 8х8 с информацией о люме (интенсивности) и двух блоков 8х8 с информацией о хроме (цвете) половинного разрешения (один для красно-бирюзовой оси и другой для жёлто-голубой оси). Даже если ширина и высота Вашего фильма не кратны 16, кодер всё равно использует нужное количество макроблоков 16х16 для покрытия всей области картинки, дополнительная область будет впустую потрачена. Так что в интересах максимизации качества при фиксированном размере файла, не стоит использовать размеры, не кратные 16.
У большинства DVD также есть определённое подобие чёрных полос на краях. Если Вы их оставите, это может сильно повредить качество несколькими путями.
1. MPEG-подобное сжатие очень чувствительно к преобразованиям частотных интервалов, в частности, к дискретному косинусному преобразованию (DCT), которое аналогично преобразованию Фурье. Этот вид сжатия эффективен для представления образов и сглаженных переходов, но у него возникают проблемы с острыми краями. Для кодирования последних Вам нужно гораздо больше битов, а иначе у Вас появится артефакт, известный как ореолы.
Частотные преобразования (DCT) выполняются независимо для каждого макроблока (на самом деле, для каждого блока), так что эта проблема возникает только в случае попадания острого края внутрь блока. Если Ваши чёрные поля возникают точно на границах, кратных 16 пикселям, это не проблема. Однако, чёрные полосы на DVD редко хорошо расположены, так что на практике Вам всегда придётся усекать стороны для избежания этих проблем.
В дополнение к преобразованиям частотных интервалов, MPEG-подобное сжатие использует векторы движения для отображения изменений от одного кадра к другому. Векторы движения, естественно, работают существенно менее эффективно для новых объектов, идущих от краёв картинки, поскольку они отсутствуют в предыдущих кадрах. Пока картинка простирается вплоть до края кодируемой области, у векторов движения не возникает проблем с движением объектов за пределы картинки. Однако, при наличии черных полей могут возникнуть проблемы:
2. Для каждого макроблока MPEG-подобное сжатие сохраняет вектор, определяющий какая часть предыдущего кадра должна быть скопирована в этот макроблок как основа для предсказания следующего кадра. Кодированию подлежит только оставшаяся разность. Если макроблок простирается до края картинки и содержит часть чёрной полосы, то векторы движения других частей картинки перепишут чёрную полосу. Это означает, что много битов нужно потратить либо на повторное чернение переписанной полосы, либо (что более вероятно) вектор движения не будет использован вовсе и все изменения для этого макроблока будут явно кодированы. Так или иначе, эффективность кодирования существенно уменьшается.
Ещё раз, эта проблема возникает только в случае, если чёрные полосы не укладываются в границы, кратные 16.
3. Наконец, предположим, что у нас есть находящийся внутри картинки макроблок и объект движется в этот блок от края изображения. MPEG-подобное кодирование не может сказать "скопируй ту часть, что внутри картинки, но не чёрную полосу". Так что чёрная полоса также будет скопирована внутрь, в результате чего масса битов будет потрачена на кодирование части изображения, которое должно быть на месте полосы.
Для случаев, когда всё изображение движется к краю кодируемой области, у MPEG есть специальные оптимизации для повторяющегося копирования пикселей к краю картинки, когда вектор движения идёт извне области кодирования. Эта возможность становится бесполезной, если у фильма есть чёрные полосы. В отличии от случаев 1 и 2, выравнивание границ до кратности 16 здесь не поможет.
4. Несмотря на то, что границы полностью чёрные и никогда не изменяются, существуют, как минимум, определённые накладные расходы, связанные с наличием большего числа макроблоков.
Благодаря всем этим причинам, рекомендуется полностью урезать чёрные полосы. Более того, если есть области шумов/искажений на краях картинки, то их урезание также поспособствует улучшению качества кодирования. Видеофилы, желающие сохранить оригинал как можно более точно, могут возражать против такого усечения; но если Вы не планируете кодировать при постоянном квантователе, качество, полученное при усечении, существенно превысит потери информации на краях.
Дата добавления: 2018-11-26; просмотров: 675;