Videorip.info

Учимся кодировать видео и делимся опытом

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Bookmark and Share

ТЕМА: ColorMatrix — Как сохранить Цвет, Яркость и Насыщенность?

ColorMatrix — Как сохранить Цвет, Яркость и Насыщенность? 9 года 9 мес. назад #104

  • STEEL
  • STEEL аватар
  • Не в сети
  • Новичок
  • Сообщений: 8
  • Спасибо получено: 2
Помогите с кодеком 264. Проблема заключается в том, что кодированный видеоролик получается какой-то бледноватый или яркий.

Сравните два скрина, сделанные из компьютерной игры:

Скрин с оригинального ави файла сделанного фрапсом


И скрин со сжатого ави файла


Такаяже разница во всех видео файлов.

то проблема обсуждалась здесь forum.movienations.com/index.php?showtopic=10075
но так и не нашли причину, одни лишь догадки.

Но я нашел одну фишку ;-)
В проигрывателе Media Player Classic (идет вместе с K-Lite mega codec pack) в меню выбрать Play > Shaders > "16-235 -> 0-255 [SD]" и тогда яркость или контрастность станет такой же как в оригинале!

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

Вот и сам вопрос: Из-за чего такая разница на скринах? что нужно использовать или настроить что бы делать качественный когдинг?

Подскажите плиз есть знаете, уже давно мучает этот вопрос.
Последнее редактирование: 9 года 9 мес. назад от admin.
Гостям запрещено создавать сообщения!
Спасибо сказали: videoDVDkhv

Re: Непонятное качество кодируемое в MEGUI 9 года 9 мес. назад #105

  • Mihanja80
  • Mihanja80 аватар
  • Не в сети
  • Модератор
  • Сообщений: 101
  • Спасибо получено: 45
Приложите медиаинфо исходника и после кодирования (желательно разместить под спойлер).
Гостям запрещено создавать сообщения!

Re: Непонятное качество кодируемое в MEGUI 9 года 9 мес. назад #106

  • STEEL
  • STEEL аватар
  • Не в сети
  • Новичок
  • Сообщений: 8
  • Спасибо получено: 2
К сожалению оригинального файла тех скринов не остался, но я сделал с др видео сравнения.

Исходник: с фотоаппарата Canon
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


После сжатия MUGUI:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Я также могу приложить архив с двумя видео, общий вес 25 мб если потребуется
Последнее редактирование: 9 года 9 мес. назад от STEEL.
Гостям запрещено создавать сообщения!

Re: Непонятное качество кодируемое в MEGUI 9 года 9 мес. назад #107

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Всю жизнь учусь...
  • Сообщений: 938
  • Спасибо получено: 488
STEEL писал(а):
Я также могу приложить архив с двумя видео, общий вес 25 мб если потребуется
Выкладывайте - rghost.ru

Просто не знаю пока как определить тип колориметрии в вашем исходнике...
Пока как тест, попробуйте в настройках кодека, на вкладке Misc в Custom Command Line вставить:
--colormatrix "bt470bg"
Перекодируйте отрезок и сравните с исходником (только скриншоты сравнения сохраняйте в формате *.PNG).
Гостям запрещено создавать сообщения!
Спасибо сказали: videoDVDkhv

Re: Непонятное качество кодируемое в MEGUI 9 года 9 мес. назад #108

  • STEEL
  • STEEL аватар
  • Не в сети
  • Новичок
  • Сообщений: 8
  • Спасибо получено: 2
Сейчас я сделал запись фрапсом с игры в двух разрешениях: 1280х1024 и 640х512

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

вот архив с файлами

там где написано скрипт, значит использовал код --colormatrix "bt470bg"
единственное что не запихал в архив исходник 1280х1024, иначе он весит 163 мб.

Наблюдения:
скорее всего это проблема не в MEGUI а где то кодеке. Пробовал кодить прогой FormatFactory, RipBOT - везде результат один! И что очень странно, это проблема может внезапно исчезнуть и также появиться, LOL, как будто кодек сам выбирает настройки и применяет их где угодно. *%)*
пол года назад когда я делал мувик при разрешении 1280х1024 он получился с этим серым пеленом, а сейчас то оно есть то нету, непойму.

чаще всего говорят это из-за:

1. настройки в MEGUI
2. настройки кодека
3. кривые руки
4. драйверы видеокарты
5. ATI vs NVIDIA
6. не тот медиа плеер
Последнее редактирование: 9 года 9 мес. назад от STEEL.
Гостям запрещено создавать сообщения!

Re: Непонятное качество кодируемое в MEGUI 9 года 9 мес. назад #110

  • STEEL
  • STEEL аватар
  • Не в сети
  • Новичок
  • Сообщений: 8
  • Спасибо получено: 2
лазил в интеренте и наткнулся на эту статью
только вот непонял куда эту строчку

и особое внимание обратите сюда
и сюда
Последнее редактирование: 9 года 9 мес. назад от STEEL.
Гостям запрещено создавать сообщения!
Спасибо сказали: Lion_Smith

Re: Непонятное качество кодируемое в MEGUI 9 года 9 мес. назад #111

  • Tempter57
  • Tempter57 аватар
  • Не в сети
  • Эксперт
  • Сообщений: 65
  • Спасибо получено: 90
Колориметрия- физическая наука о методах измерения и количественного выражения цвета, а также совокупность таких методов. В колориметрии (науке о цветах) цвет определяется тремя величинами: яркостью, цветовым тоном и насыщенностью.
ColorMatrix корректирует цвета потоков MPEG-2 DVD. Более корректно, многие MPEG-2 потоки используют слегка отличающиеся коэффициенты (называемые Rec.709) для хранения цветовой информации, чем это делают подпрограммы преобразования цвета AviSynth или XviD/DivX декодеры (называемые Rec.601), с тем результатом, что клипы DivX/XviD или MPEG-2, закодированные TMPGEnc/QuEnc отображатся со слегка смещенными цветами (что выглядит подобно небольщой разницы в яркости). Это может быть проверено путем открытия потока MPEG-2 прямо в VirtualDubMod.

Преобразования от RGB до YUV и наоборот есть многократные установки коэффициентов, которые могут использоваться. Самые общие - Rec.709, FCC, Rec.601(иначе SMPTE 170M или ITU-R BT.470-2), и SMPTE 240M. Цель ColorMatrix состоит в том, чтобы повторно вычислить значения видео YUV, которое было преобразовано из RGB. Причина этих преобразований полезна,поскольку потоки MPEG-2 типично используют Rec.709, тогда как большинство программного обеспечения (декодерыXviD/DivX, и т.д ...) принимают Rec.601.Для этих целей и служит ColorMatrix, чтобы преобразовать видео от Rec.709 до Rec.601 и затем передать это к декодеру. Другой пример - то, если Вы фиксируете видео с программным обеспечением, которое использует Rec.601 и затем хотите закодировать это к MPEG-2, используя кодирующие устройства, которое принимает Rec.709.
Помимо пребразований различных режимов ColorMatrix также имеет способность сделать расширение диапазона и сокращение ([16,235/240]-> [0,255] или [0,255]-> [16,235/240]), как часть преобразования колориметрии или самостоятельно

Синтаксис

ColorMatrix (clip, string "mode", int "source", int "dest", int "clamp", bool "interlaced", bool "inputFR", bool "outputFR", bool "hints", string "d2v", bool "debug", int "threads", int "thrdmthd", int "opt")

С подробным описанием параметров настроек ColorMatrix можно познакомится по адресу:

avisynth.org.ru/docs/russian/externalfilters/colormatrix.htm

Рекомендация специалистов по колориметрии:

"clamp=0 всегда должно присутствовать. За сужение диапазона отвечает комбинация inputFR и outputFR, которые могут сузить диапазон, но не обрезают его, как делает clamp <> 0. При перекодировании с ДВД мы рассчитываем, что в оригинале уже был диапазон ТВ (впрочем, это всегда легко проверить) и просто ставим clamp=0, пропустив inputFR и outputFR. Тогда диапазон остается без изменений. При перекодировании с других источников (включая HD), где вполне может быть полный диапазон, мы ставим inputFR в соответствии с диапазоном источника (опуская outputFR, поскольку по умолчанию outputFR = false). Проверяем диапазон с помощью СolorYUV(analyze=true) по значениям Loose Min/Max.Эту строку можно открыть в пресете info:

ColorMatrix(mode="Rec.709->Rec.601", inputFR=false, clamp=0) #корректировка цветовой шкалы если проверка показывает 16-235

ColorMatrix(mode="Rec.709->Rec.601", inputFR=true, clamp=0) #корректировка цветовой шкалы если проверка показывает 0-255

Вывод: ColorMatrix(hints=true, interlaced=false/true, threads=0, clamp=0) является почти лучшим вариантом при перекодировании DVD в XviD/DivX. Колориметрия будет преобразована из того, что DGIndex обнаружит в DVD (по умолчанию это 601, но может быть и SMPTE 240M и даже 709), в 601-ю. Диапазон останется без изменений.
Здесь явно предполагается, что мы будем скармливать XviD цветовому пространству YV12 (скажем, с Fast recompress в VD). Что неплохо, просто надо помнить, что интерлейсный YV12 фундаментально дефективен, и проблемы с хромой неизбежны не только при преобразовании YV12 -> YUY2, но и при вычислениях в ColorMatrix.
С этой точки зрения, я бы все-таки скармливал кодировщику YUY2, но делал преобразование не с ConvertToYUY2, а AutoYUY2. AutoYUY2 - единственный известный мне способ хорошей обработки интерлейсного YV12. В этом случае interlaced=false/true следует просто выкинуть из ColorMatrix. Но поскольку AutoYUY2 будет стоять перед ColorMatrix, то hints перестанут работать. Тут уже надо использовать либо опцию d2v, либо явно задавать колориметрию источника.
Перекодирование из HD в DVD еще интересней с точки зрения колориметрии. Я предложил мои соображения здесь:
ColorMatrix(mode="Rec.709->Rec.601", clamp=0) - с clamp=0 полностью согласен, но тогда надо выяснить диапазон на входе, с помощью coloryuv(analyze=true). Казалось бы, раз на выходе должно быть 16-235, то зачем clamp=0, который запретит сужение диапазона (в старых версиях ColorMatrix диапазон сужался всегда)? Дело в том, что DVD сплошь и рядом смотрят на HDTV. Хорошие железные плееры пропускают суперчерный/супербелый к апскейлеру, который использует эту информацию в тенях и ярких местах во избежание полос. Но базовый диапазон - по-прежнему 16-235. То есть inputFR=true/false обязателен при clamp=0 - тогда мы получим и правильный общий диапазон на выходе (16-235) и выбросы в суперчерный/супербелый. inputFR=false ставим, если на входе имеем 16-235, но с выбросами в суперчерный/супербелый. Поскольку получается inputFR = outputFR (по умолчанию outputFR=false и мы его просто не ставим), то диапазон вообще не будет затронут. Если на входе 0-255, то ставим inputFR=true, и диапазон сожмется как надо (за счет того же outputFR=false по умолчанию). Если неохота морочить себе голову с проверкой диапазона на входе, тогда лучше clamp убрать (по умолчанию, clamp = 3)

Обрезать диапазон плохо, поскольку точки вне законного ТВ диапазона на DVD в самом деле встречаются. И дело не только в артефактах кодирования. Так называемые суперчерный и супербелый встречаются в глубоких тенях и ярких участках, с целью уменьшить образование полос. При тестировании железных DVD плееров, их способность пропускать такие цвета является одним из критериев качества. Именно поэтому тестировать диапазон следует по Loose Min/Max, а не просто Min/Max. Loose Min/Max показывает диапазон с исключенными редкими выбросами."

Рекомендации:

1) для DVDRip при кодировании в формат avi кодеками DivX или XviD включать в скрипт
ColorMatrix(hints=true,clamp=0,interlaced=true) #interlaced=false для прогрессива

2) Для DVDRip-AVC такой строки в скрипте не должно быть, а в командную строку кодека х264 вписать то, что показывает DGIndex, например:
--colormatrix "bt470bg"

3) Для BDRip и HDRip при кодировании кодеком DivX или XviD в формат avi в скрипт вписать строку на основе показания DGAVCIndexNV или DGVC1IndexNV(ну там, как правило, другого пока не встречал) BT709:
ColorMatrix(mode="Rec.709->Rec.601", inputFR=false, clamp=0) #корректировка цветовой шкалы если проверка показывает 16-235 ( для этого в пресете 1.Info надо открыть строку:
ColorYUV(analyze=true) # оценка диапазона входного сигнала)
или
ColorMatrix(mode="Rec.709->Rec.601", inputFR=true, clamp=0) #корректировка цветовой шкалы если проверка показывает 0-255

4) Для BDRip-AVC и HDRip-AVC при кодировании кодеком x264 вписать в командную строку
--colormatrix "bt709"
а если быть точнее, то для сохранения цветопередачи в командную строку х264 надо вписать
--colorprim "bt709" --colormatrix "bt709" --transfer "bt709"
В скрипте никаких строк с Сolormatrix не должно быть. В процессе кодирования эти ключи не оказывают никакого влияния на процесс кодирования, но они являются флагом кодеку при просмотре и обеспечат правильную цветопередачу при просмотре данного видео.
Никогда не учите свинью танцевать. Это только раздражает свинью, и вы напрасно тратите своё время...
Последнее редактирование: 9 года 9 мес. назад от Tempter57.
Гостям запрещено создавать сообщения!
Спасибо сказали: RazrFalcon, Dr.Faust, videoDVDkhv

Re: Непонятное качество кодируемое в MEGUI 9 года 9 мес. назад #112

  • STEEL
  • STEEL аватар
  • Не в сети
  • Новичок
  • Сообщений: 8
  • Спасибо получено: 2
=-O для меня это сложный текст, мало чего понимаю еще, и еще не совсем понял куда чё вписывать

Вписал это --colorprim "bt709" --colormatrix "bt709" --transfer "bt709" и получил такой же файл как и до этого (с такоей же серой пеленой)
в медиа инфо появились строки

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


может быть всетаки дело в настройках видеодрайвера? у меня ATI 1950 Pro (CCC c автозапуска отключен)
Последнее редактирование: 9 года 9 мес. назад от STEEL.
Гостям запрещено создавать сообщения!

ColorMatrix — Как сохранить Цвет, Яркость и Насыщенность? 9 года 9 мес. назад #116

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Всю жизнь учусь...
  • Сообщений: 938
  • Спасибо получено: 488
STEEL писал(а):
=-O для меня это сложный текст, мало чего понимаю еще, и еще не совсем понял куда чё вписывать
Поставьте XviD4PSP, там немного проще создавать скрипт для кодирования (скрипт можно сохранить и кодировать в MeGUI, если XviD4PSP не устроит).
Скрипт будет выглядеть примерно так:
import("C:\Program Files (x86)\Winnydows\XviD4PSP5\dlls\AviSynth\functions\AudioFunctions.avs")
import("C:\Program Files (x86)\Winnydows\XviD4PSP5\dlls\AviSynth\functions\VideoFunctions.avs")
loadplugin("C:\Program Files (x86)\Winnydows\XviD4PSP5\dlls\AviSynth\plugins\NicAudio.dll")
loadplugin("C:\Program Files (x86)\Winnydows\XviD4PSP5\dlls\AviSynth\plugins\FFMS2.dll")
import("C:\Program Files (x86)\Winnydows\XviD4PSP5\dlls\AviSynth\plugins\FFMS2.avsi")
loadplugin("C:\Program Files (x86)\Winnydows\XviD4PSP5\dlls\AviSynth\plugins\ColorMatrix.dll")

video = FFmpegSource2("F:\Videorip\Fraps\GTR2 2010-08-11 02-11-52-12.avi", rffmode = 0, cachefile = "F:\Temp\gtr2 2010-08-11 02-11-52-12.avi.ffindex").AssumeFPS(29.970)
audio = RaWavSource("F:\Temp\0018_0.wav")
AudioDub(video, audio)

ConvertToYV12()
ColorMatrix(mode="Rec.709->Rec.601", inputFR=true, clamp=0)
###[FILTERING]###
###[FILTERING]###

Потестируйте с разными вариантами настроек ColorMatrix
Tempter57 Вам целую статью приложил о Колориметрии...
Последнее редактирование: 9 года 9 мес. назад от admin.
Гостям запрещено создавать сообщения!

Re: Непонятное качество кодируемое в MEGUI 9 года 9 мес. назад #117

  • Tempter57
  • Tempter57 аватар
  • Не в сети
  • Эксперт
  • Сообщений: 65
  • Спасибо получено: 90
Я думаю всё упирается в просмотр
FAQ при просмотре AVC\MKV
Никогда не учите свинью танцевать. Это только раздражает свинью, и вы напрасно тратите своё время...
Гостям запрещено создавать сообщения!

Re: ColorMatrix — Как сохранить Цвет, Яркость и Насыщенность? 9 года 9 мес. назад #118

  • STEEL
  • STEEL аватар
  • Не в сети
  • Новичок
  • Сообщений: 8
  • Спасибо получено: 2
admin
XviD4PSP действительно интересная программа и удобная, а также много инструментов работы со звуком.

Tempter57, да действительно все упирается в просмотр. Фиг с этим, главное что сам файл получается с нормальным динамическим диапазоном (0-255)!
Гостям запрещено создавать сообщения!

Re: ColorMatrix — Как сохранить Цвет, Яркость и Насыщенность? 8 года 9 мес. назад #976

  • brainDOWN
  • brainDOWN аватар
  • Не в сети
  • Новичок
  • Сообщений: 8
  • Спасибо получено: 7
Дело не в colormatrix, а в fullrange off. Я сам столкнулся с этой проблемой когда нужно было перекодировать запись игры сделанную фрапсом. Картинка получалась ярче, чем оригинал, а цвета бледными, изображение было таким словно смотришь на него через туман или белую дымку. Все эти дефекты особенно заметны на тёмных участках изображения.
При fullrange off кодек считает что на входе файл с ТВ-диапазоном цветности и яркости.
При fullrange on кодек считает что на входе файл с ПК-диапазоном цветности и яркости.
Параметр fullrange не влияет на вес файла, силу сжатия, время енкода.

fullrange это лишь подсказка декодеру как правильно воспроизвести файл. У нас файлы записанные фрапсом (или другой прогой) имеющие ПК-диапазон. В кодеке H264 fullrange по умолчанию off, тоесть в нашем случае подсказка неверна. Чтоб она была верна надо ставить on. В командную строку кодека x264vfw введите
--fullrange on
Это если конвертируете видео записанное с ПК-диапазоном. Но для ТВ-диапазона также критически важно давать верную подсказку. Поэтому если не знаете в каком диапазоне ваше видео, вырежте из него небольшой (10 секунд) отрывок и отконвертируйте два раза, один раз с fullrange on, другой раз без него и сравните какой из полученных файлов ближе к оригиналу.

P.S. Не думаю что colormatrix вообще нужно прописывать, по крайней мере в x264vfw.
Многие хотят чтоб качество изображения в видео-файле было высоким. Моя цель - подобрать такие настройки кодека, при которых это высокое качество будет обеспечено...
Последнее редактирование: 8 года 9 мес. назад от brainDOWN.
Гостям запрещено создавать сообщения!
Спасибо сказали: admin, Mihanja80
Время создания страницы: 0.108 секунд