Облачный рендеринг. Быстро и удобно ☆ от 50 руб./час ☆ AnaRender.io У вас – деньги. У нас – мощности. Считайте с нами!
Необходимая отмазка
Данный текст подразумевает рассмотрение исключительно технических
сторон дела. Вся информация в данном тексте может применяться для
законного копирования и создания материалов. Автор не несёт
ответственности за применение информации, содержащейся в
данном тексте, для незаконного копирования каких-либо
материалов.
Зачем и для кого это написано?
Данный текст написан ПРЕЖДЕ ВСЕГО для
более ясного понимания читателем трёх вещей:
Какие бывают оригиналы видеопотока и основные способы их смотреть
Что есть "правильный" DVD, то есть DVD создающий наименьшие проблемы
ВСЕМ желающим его посмотреть и скопировать?
Есть определённый материал. Как сделать из него правильный DVD?
Рекомендую этот текст всем, кто сталкивается с необходимостью работать с
видеоматериалами в цифровом виде, в том числе и не-DVD формата.
Этот текст НЕ заменяет документации на соответствующие форматы и НЕ
претендует на полноту и подробность изложения.
С чего всё начинается?
Есть ДВА основных вида исходного видеопотока
(того, который сгенерён при СЪЁМКЕ фильма):
FILM - это киноплёнка.
с частотой 24 кадра в секунду - для показа в кинотеатрах.
с частотой 25 кадров в секунду - киноплёнка, предназначенная для показа на ТВ в PAL/SECAM
с частотой 16 кадров в секунду (старые немые фильмы, любительские фильмы на плёнке 16мм)
с иной частотой кадров. так, аниме FILM 30fps нами уже встречено.
Interlaced Video, чересстрочное. Снятое теле- и видеокамерами
с чересстрочной развёрткой.
с частотой 30 (29.97) кадров и 60 полей в секунду - NTSC
с частотой 25 кадров в секунду и 50 полей в секунду - PAL/SECAM/MESECAM
Терминология
Употребляемые ниже английские и русские термины:
"кадр" - frame
"поле" - Field
"чересстрочный" - interlaced
"прогрессивный" - progressive
"расчёсанный" - кадр, на котором чётко видна гребёнка на контурах движения
"двоящийся" - кадр, на котором контуры движущихся объектов сдвоены
Telecine - преобразование progressive -> interlaced
Inverse Telecine - преобразование interlaced -> progressive
"кадр" для FILM - это то, что изображено на ОДНОМ
физическом кадре киноплёнки, или результат оцифровки оного изображения в виде
картинки из пикселов, например - 640*400 пикселов размером.
"поле" для FILM - это одна из половинок изображения,
образованного четными (0,2,4,6.. - это "верхнее", Top поле)
или нечётными (1,3,5,...- это "нижнее", Bottom поле)
строками картинки. Для описываемого примера имеет размер 640*200 пикселов.
"поле" для чересстрочного материала - это тот видеопоток, что
оказался на чувствительном элементе камеры за время одного прохода
сканирования поля зрения камеры сверху вниз. Начала сканирования
чётного и нечётного поля смещены по вертикали, и "верхнее" поле считается
"чётным", "нижнее" - "нечётным". Информация о чётности полей
в видеопотоке содержится в величине смещения начала
кадрового синхроимпульса относительно строчных.
"кадр" для чересстрочного материала собирается из полей на
вопроизводящем оборудовании или на карте видеозахвата. Далее
мы считаем, что такой "кадр" - это два последовательных поля
- чётное и нечётное.
Принципиальная разница FILM и Interlaced заключается в том, что:
в FILM все части картинки, все её "видеостроки" сняты в
ОДИН И ТОТ ЖЕ момент времени (точнее, в пределах некоего времени
экспозиции кадра), и близко расположенные друг к другу
элементы всегда сняты в очень близкие моменты времени.
Такой видеопоток мы называем "прогрессивным". Если такой оригнал
в дальнейшем преобразуется в чересстрочное состояние, и объект на экране
двигается, позиции его изображения в полях, относящихся к одному кадру -
НЕ отличаются.
в Interlaced Video поля сняты с интервалом в 1/60 или 1/50 секунды.
Поэтому если мы "сводим" вместе видеостроки двух полей чересстрочного кадра -
то РЯДОМ по вертикали оказываются "пикселы", "сфотографированные"
НЕ одновременно. Если объект на экране двигается - то позиции его
изображения в полях отличаются. Таким образом, в настоящем
чересстрочном видеопотоке "полный кадр" всегда "расчёсан"
по полям.
На компьютере, в DivX/Mpeg4 потоке кадры пакуются и показываются как
прогрессивные.
Из этого следует, что основная задача риппера:
в случае, если снятый оригинал был FILM - ВОССТАНОВИТЬ
исходную последовательность FILM кадров, в каждом из которых
должна содержаться только та информация, которая попала на
плёнку одновременно. И обеспечить показ этих FILM кадров с
правильной частотой.
В случае, если оргинал был Interlaced - каким-либо образом
сделать так, чтобы в каждом воспроизводимом на экране КОМПА
_прогрессивном_ кадре содержалась только та информация, что
попала в оригинал одновременно. Если одновременность будет
нарушена - появится "расчёска".
Наилучшие решения для FILM оригинала при обработке сделанного из него потока:
Идеальное решение - найти НЕпреобразованные прогрессивные кадры
Наиболее доступное решение - определить правильную последовательность
нужных полей, выкинуть лишнее и собрать прогрессивные кадры из полей.
Решения для Interlaced Video (наилучшего всё равно нет, не надейтесь :-):
удвоить частоту кадров, используя поля в качестве кадров,
одновременно удвоив или интерполировав недостающие строки в
каждом поле-кадре, не смешивая поля-кадры между собой.
Даёт наилучший по качеству результат, но увеличивает размер
получившегося видеопотока и необходимые мощности декодирования.
Этот алгоритм называется Bob-Deinterlacing.
взять top поля как основные и уменьшить размер вдвое,
выкинув всё остальное. Тем самым сохранив только четверть
информации из потока. Полезно для создания Preview материалов.
взять top поля как основные и интерполировать
недостающие им bottom-строки, забив на bottom-поля. Теряется половина
информации о картинке, "восстановленная" же интерполяцией часть
картинки далеко не всегда соответствует тому, что получилось бы на
киноплёнке.
взять top поля как основные и интерполировать недостающие им
bottom-строки из bottom полей.
применить кодек, понимающий, что перед ним Interlaced поток,
пакующий и воспроизводящий его "как Interlaced".
Недостатком этого метода является то, что при показе
на экране с распакованным видео НА САМОМ ДЕЛЕ будет
происходить одно из описанных выше преобразований.
Однако при выводе такого фильма на TV-Out при совпадении
стандарта телевизора и оригинала будет достигнут наилучший результат.
(а при НЕсовпадении - пожалуй, наихудший..%)
И ПОМНИТЕ! НАИХУДШЕЕ, что Вы можете сделать с чересстрочным видеопотоком
при риповании - это применить к нему "фильтр Deinterlace" в режиме
"blend" - при этом образуются сдвоенные контуры, и это действие ГУБИТ
всякую возможность восстановить картинку в более приличное состояние.
Рекомендуется читать далее: