Поделиться через


Видео о деинтерлейс

[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Она была заменена средствами чтения источника и модуля записи приемников. Средство чтения источника и модуль записи приемников оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде средство чтения исходного кода и модуль записи приемников вместо пакета SDK для Windows Media Format 11, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Некоторые источники видео, такие как карточки захвата видео, доставляют видеоданные для отображения с чередованием. Каждый кадр чередующегося видео состоит из двух полей. В верхнем поле содержится первая строка видео и все последующие строки. Нижнее поле содержит вторую строку видео и все последующие строки. Таким образом, одно поле содержит все четные нумерованные строки, а другое — все нечетные строки. Поля, составляющие кадр, немного отличаются от времени представления, поэтому при чередовии они не образуют статическое изображение.

Если требуется отобразить видео на мониторе компьютера, каждый кадр видео должен отображаться в виде одного изображения (этот метод отображения видео по одному кадру за раз называется прогрессивным видео).) При постепенном отображении чередующегося видео кадры могут выглядеть неправильно из-за разницы во времени между двумя полями. Кодек Windows Media Video и расширенный профиль Windows Media поддерживают функцию предварительной обработки, которая преобразует чередующееся содержимое в прогрессивные кадры.

Чтобы получить входное видео деинтерлейс кодека, вызовите метод IWMWriterAdvanced2::SetInputSetting . Параметр для использования g_wszDeinterlaceMode. Задайте для режима деинтерлейсинга одно из следующих значений.

Значение Описание
WM_DM_NOTINTERLACED Входные данные являются прогрессивными. Используйте этот параметр, чтобы остановить деинтерлейсинг, если ранее в режиме деинтерлейсинга было задано другое значение.
WM_DM_DEINTERLACE_NORMAL Выберите этот режим, чтобы смешать четные и нечетные поля чередующегося кадра (с помощью механизма компенсации движения). Преимущества:
  • Артефакты с чередованием прогрессивного дисплея значительно уменьшены.
  • Кодек Windows Media Video создает сжатое видео более высокого качества.
WM_DM_DEINTERLACE_HALFSIZE Выберите этот режим, если разрешение выходных данных составляет половину или меньше входного разрешения. Например, используйте этот режим, если разрешение входного видео составляет 640 x 480 пикселей, а разрешение выходного видео — 320 x 240 пикселей. Преимущества:
  • Артефакты с чередованием прогрессивного дисплея значительно уменьшены.
WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE Выберите этот режим, если разрешение выходных данных составляет половину или меньше входного разрешения, а частота кадров вывода в два раза выше. Например, используйте этот режим, если разрешение входного видео составляет 640 x 480 пикселей при 30 чередуемых кадрах/с, а разрешение выходного видео — 320 x 240 пикселей при 60 кадрах/с. Преимущества:
  • Это создает прогрессивные кадры высокого качества, так как каждое поле преобразуется в кадр, поэтому нет необходимости смешивать какую-либо информацию.
  • Фиксируется полное движение полей с чередованием.
WM_DM_DEINTERLACE_INVERSETELECINE Выберите этот режим, чтобы преобразовать видео с телесной записью 30 кадров/с в 24 кадра в секунду исходного фильма. Преимущества:
  • Качество сжатия значительно улучшается, так как необходимо закодировать только 24 кадра в секунду вместо 30 кадров в секунду.
  • Поскольку результат является прогрессивным, реализованы те же преимущества сжатия и отображения деинтерлейсинга.
WM_DM_DEINTERLACE_VERTICALHALFSIZEDOUBLERATE Выберите этот режим, если вертикальное разрешение выходных данных составляет половину или меньше входного вертикального разрешения, а частота кадров вывода в два раза выше. Например, разрешение входного видео по вертикали составляет 640 x 480 пикселей при 30 чередуемых кадрах/с, а выходное вертикальное разрешение видео — 320 x 240 пикселей при 60 кадрах/с. Преимущества:
  • Это создает прогрессивные кадры высокого качества, так как каждое поле преобразуется в кадр, поэтому нет необходимости смешивать какую-либо информацию.
  • Фиксируется полное движение полей с чередованием.

Для смешанного содержимого установите режим деинтерлейсинга по мере необходимости перед передачей примеров нового типа. Например, чтобы начать кодирование с прогрессивным вводом, не нужно устанавливать режим деинтернтерлейсинга. Если для некоторых примеров требуется обычная деинтерлакация, необходимо установить режим деинтерлейсинга WM_DM_DEINTERLACE_NORMAL. Чтобы затем обработать дополнительные прогрессивные примеры, необходимо задать режим деинтерлейсинга WM_DM_NOTINTERLACED.

Параметры обратной телесины

Описание обратной телесины см. в разделе Использование обратной телесины.

Если в режиме деинтерлейсинга задано значение WM_DM_DEINTERLACE_INVERSETELECINE, можно указать шаблон телесины первого входного кадра, вызвав IWMWriterAdvanced2::SetInputSetting. Параметр для использования g_wszInitialPatternForInverseTelecine. Задайте для начального шаблона одно из следующих значений.

Значение Описание
WM_DM_IT_DISABLE_COHERENT_MODE Указывает, что входной носитель прошел процесс телесины, но кадры больше не являются предсказуемым шаблоном. Обычно это означает, что носитель был отредактирован после обработки телесины. При использовании этого параметра кодек пытается самостоятельно восстановить исходные кадры.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP Указывает, что первое поле кадра AA является первым примером.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP Указывает, что первым примером является верхнее поле кадра BB.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP Указывает, что первое поле кадра BC является первым примером.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP Указывает, что первое поле кадра компакт-диска является первым примером.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP Указывает, что первое поле кадра DD является первым примером.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_BOTTOM Указывает, что нижнее поле кадра AA является первым примером.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_BOTTOM Указывает, что нижнее поле кадра BB является первым примером.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM Указывает, что нижнее поле рамки BC является первым примером.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_BOTTOM Указывает, что нижнее поле кадра компакт-диска является первым примером.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM Указывает, что нижнее поле кадра DD является первым примером.

Дополнительные разделы