а зачем minidv?Сообщение от random
а зачем minidv?Сообщение от random
Живи, играй!
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
много причин. во-первых удобно в плане портативности и самого процесса, во-вторых очень хорошее качество, ну а также бакап и все такое.Сообщение от kgbplus
Я, простите, про что тут выше распинался? В первой своей мессаге. Если под хорошим качеством имеется ввиду именно качество изображения.Сообщение от random
Sinclair ZX Spectrum 128k (Toastrack) + ZX Spectrum +3 + DivMMC EnJOY
Commodore 64c + 1541 Ultimate II
Commodore Amiga 1200 + 8Mb Fast + CF 8Gb + GOTEK
О качестве изображения я бы не говорил: «хорошее» - «плохое». Наверно правильнее сказать: «точно повторяющее оригинальное». Если конечно я правильно понял конечный смысл идеи PheeL'a.Сообщение от PheeL
Что бы точно повторить оригинальное изображение надо проследить весь пусть преобразования и понять, какие искажения возникают на каждом из этапов преобразования:
1. RGB > UVY
2. UVY > PAL
3. PAL > UHF (PAL)
Далее в телевизоре в обратном порядке.
Кроме того, значительный вклад в формирование изображения вносит CRT (ЭЛТ) телевизора.
1. Преобразование происходит по след. правилам:
Y = 0.299R + 0.587G + 0.114B
U = R - Y, а V = B – Y
Обратный процесс в телевизоре:
R = Y + U,
B = Y + V,
G = Y - 0.509U - 0.194V
Поскольку изначальные RGB в Speccy формируются одним задающим генератором, фазовые искажения отсутствуют. Зато есть искажения амплитудные, их корень – неидеальные компоненты в схемах кодирования декодирования. Как правило это резисторы с точностью не более 5%. Фактически это выражается в незначительных искажениях цветового баланса всей картинки, и этим можно пренебречь.
2. Сигналы U и V пропускаются через фильтры НЧ (ограничиваются по частоте до 1,2 МГц). Затем V задерживается на одну строку (64 микросекунды) и модулирует (частотно) поднесущую цветности (4.433 618 МГц) имеющую не постоянную фазу, а изменяющуюся от строки к строке на 180 градусов. U так же модулирует поднесущую цветности, но ее фаза неизменна. Затем сигналы суммируются. Сигналы гашения и синхронизации подмешаны в Y изначально (в ZX Spectrum). В приемнике PAL сигнал цветности проходит линию задержки на длительность одной строки, после чего происходит его сложение и вычитание с основным (незадержанным) сигналом. В процессе этого совпадающие по фазе сигналы складываются, а противоположные по фазе - вычитаются. Таким образом, сигналы V и U полностью разделяются, что исключает возникновение перекрестных искажений. Однако это приводит к уменьшению цветового разрешения по вертикали ровно в два раза (до 7,8кГц).
То есть фактическое цветное разрешение PAL: <1,2 МГц по горизонтали и 7,8кГц по вертикали. Это легко привязать к частоте пикселей в Speccy (7 МГц).
Кроме того, на изображение влияет «неидеальность» компонент: линий задержки (возникает сдвиг окрашенных мест относительно самих объектов), сумматоров (возникает дополнительная перемодуляция яркостным сигналом, приводящая к возникновению окрашенных участков и хвостам на тех местах изображения, где частота яркостного сигнала попадает в полосу цветности).
Еще одним недостатком (или особенностью) реализации PAL кодера в ZX Spectrum, является наличие отдельного синхрогенератора (для генерации поднесущей - 4.433 618 МГц). Это приводит к интерференции с сигналом передачи пикселей (7 МГц) и возникновению муара на изображении.
3. Используемый в UHF-модуляторе метод преобразования (амплитудная модуляция PAL) приводит к дополнительным искажениям: уменьшается максимальная скорость изменения сигнала (фильтр НЧ). В телевизоре за счет двойного преобразования (ВЧ > ПЧ > НЧ), так же вносятся дополнительные искажения (фильтрация НЧ). Все это приводит к возникновению некоторой размытости изображения, в реальных условиях.
Кроме того, на качество реального изображения оказывает значительное воздействие расфокусировка изображения и несведение лучей в CRT (ЭЛТ). Эти факторы приводят к дополнительной размытости. Играет роль и увеличенный (по сравнению с мониторами) размер и форма зерен люминофора, которые так же могут сглаживать (либо нет) углы у пикселей.
Вот, пожалуй, и все. Это драфт, так что если о чем забыл, не взыщите.
Приложил так же фотографию с телевизора (ZX Spectrum, UHF, TV) и скриншот аналогичной картинки из эмулятора. С фильтром PheeL'a получается пока не совсем то… Хотя идея мне очень понравилась. Если бы ее поддержали разработчики эмуляторов… Не знаю возможно ли это технически (хватит ли скорости для приемлемой точности).
P.S. Часть треда (начиная с письма PheeL'a) перенесу в раздел «Эмуляторы».
Совершенно верно. Назвать его "хорошим" по сегодняшним меркам не получится, поэтому я привел такое определение как сравнительную характеристику. Потому как "оригинальное" качество тоже варьировалось в широких пределах в зависимости от TV(монитора) и модели компьютера (параметров его видеовыхода).Сообщение от Conan
Абсолютно справедливо, что после моего фильтра картинка не будет близко похожа на "оригинал" с реального Спектрума. Очень сложно путём стандартных действий в action'ах создать похожую картинку. Но я полагаю, что всё-таки это лучше чем обычный blur+scanlines который используется в эмуляторах на сегодняшний день. К моему великому сожалению, мы с Conan'ом говорим на разных языках, потому как я в железе ноль и могу понять собеседника рассказывающего в основном только про программную реализацию, а в данном вопросе просто необходимо знать все нюансы хардварной составляющей. Грубо говоря я могу действовать только "на глазок".Сообщение от Conan
В моём фильтре что в основном "эмулируется" :
1) это выравнивание яркости когда "решетка" из пикселей цвета с bright 1 совпадает по яркости с этим же цветом в bright 0. Такой приём часто применяет Diver в своих картинках, да и во многих экранах от спектрумовских игрушек (например заставка от Cabal) этот метод тоже используется, что даёт возможность предположить об аналогичном восприятии конечного изображения на "родном" Спекки (когда рядом стоящие знакоместа не разваливаются на "шахматную доску" и квадраты тёмного цвета). Данные операции происходят в RGB каналах.
2) представление точки в виде квази-точек люминофора. Поскольку точное воспроизведение точек люминофора стандартного телевизора затруднительно (ну если только в районе разрешения 2048х1536 или выше), то я действовал по такой схеме : делаем motion blur под углом в 45 град. для красной составляющей (опять же работаю с RGB каналами изображения), тоже самое для зелёной под 0 град. и -45 град. для синей. Таким образом получается "звёздочка" из цветов. В их пересечении образуется белый пиксел. Особенно хорошо заметно работу этой части фильтра на белых линиях в черном фоне. Хотя тут тоже есть недоработка. Я не "откусываю" от пиксела его "лишний вес" . Т.е. для красной точки - это те места где на экране находится зеленый и синий люминофор. Поэтому у меня получаются ненормально "толстые" пикселы, но они придают дополнительную яркость квази-точке.
3) Уже знакомый всем scanline. Делается по-простой схеме. Первый пиксел линии белый, второй 50% чёрного (ну или серый), третий 100% чёрный. Дальше накладываю линии по multiply (AND) . Белый пиксел ничего не вычитает, серый вычитает 50% яркости из участка точки, черный выключает яркость полностью (стирает). Это по-идее должно передавать расстояние между люминофорными точками по-вертикали, а может просто потому что так луч идет. Я не знаю.
4) Небольшой Gaussian монохромный шум - накладывается на scanlines и вместе с ними уже на изображение.
Как уже понятно, тут не эмулируется "съезжание" ярких\темных атрибутов друг на друга и др. многие аспекты. Но опять же хочу подчеркнуть, что за неимением более подходящего фильтра (потому что всем забить и если сам не сделаешь что-нибудь, никто не пошевелится) и отсутствием у action'ов достаточной свободы действий (их надо суметь составить так чтобы везде потом работало), считаю получившийся у меня результат _приемлемым_ , но не более! Всяко лучше чем потом на ЦЦ кусать локти смотря на громадные квадраты. Всё графикс компо сольют же...
Последний раз редактировалось PheeL; 13.03.2005 в 17:38.
Sinclair ZX Spectrum 128k (Toastrack) + ZX Spectrum +3 + DivMMC EnJOY
Commodore 64c + 1541 Ultimate II
Commodore Amiga 1200 + 8Mb Fast + CF 8Gb + GOTEK
фактически в TV Emulation (unreal) и используются идеи, предложенные Conan'ом. то есть сигнал разбрасывается на YUV, вводятся разные задержки на UV, как на несколько точек, так и на строку. качество плохое, потому что коэффициенты выбраны произвольно и разрешение не удваивается (а сейчас я заметил, что ScreenPheeLter утраивает разрешение. кстати, непонятка - если 3-я строка scanline с нулевой яркостью, почему она не пропадает в изображении, или это артефакты JPG?). в TV Emulation происходит интерполяция средствами видеокарты, результат совсем не тот...
насчёт скорости можно сказать, что перечисленные фильтры (кроме гауссовского шума, не знаю, как его быстро сделать) - двумерные КИХ-фильтры, их все можно представить как один фильтр, матрица которого скомбинирована из исходных (также, как при рисовании 3d графики отдельно не делают повороты, переносы и преобразование к координатам камеры для каджой точки, а считают результирующую матрицу)
Мне очень нравится фильтр TV Emulation , но уж черезмерно блюрит (и невозможно настроить этот параметр!), и к нему не прилагаются scanlines к сожалению. А так - зашибись и наш выбор.Сообщение от SMT
А у меня, да, идёт утроение (768х576) изображения (т.е. вместе со small border как раз 1024х768 выходит). Нужно утроение для того чтобы как можно чётче передать, как раз, момент с люминофором (там же и так блюр идет межпиксельный по каналам, потому как чётко точки люминофора телевизора даже при таком разрешении не передать - след. надо их интерполировать. А как? Ответ - блюром. А в эмуляторе можно таблицами на смешивание (точек люминофора меж собой), прям шаблонами выбрасывать на экран строя из них изображение. А таблицы генерить перед запуском).
Насчёт 3-й строки - извиняюсь, тут я слевил. У меня идёт наложение с 30% прозрачностью, т.е. надо читать так - белая линия ничего не вычитает, средняя серая 15%, нижняя чёрная 35%. Средняя линия присутствует только из-за того, что увеличение идёт некратное 2-ке.
"Я не знаю кто такая хунта, я не знаю кто такая Чили, но если вы..." (с) старый советский анекдот. Так вот, гауссоновский шум я использовал только из-за того что это _стандартный_ фильтр (мне ж надо было думать о том чтобы action был совместим с предыдущими версиями фотошопа и я использовал одинаковые наборы фильтров). Никто не заставляет именно этот метод эмулировать. Вон в BlueMSX используется Noisy Composite фильтр и все довольны. Главное чтобы он был динамическим и регулируемым, а чем ты генеришь сам шум - никого не трогает. Хочешь заранее заданными паттернами врисовывай его, хочешь на ходу попиксельно генери.Сообщение от SMT
Sinclair ZX Spectrum 128k (Toastrack) + ZX Spectrum +3 + DivMMC EnJOY
Commodore 64c + 1541 Ultimate II
Commodore Amiga 1200 + 8Mb Fast + CF 8Gb + GOTEK
PheeL, ещё вопрос. как происходит "выравнивание яркости"?
PheeL, те картинки я рисовал на расстроеном телике. Резкость была сбита и контрастность завышена. Когда мне потом G.D. настроил его, после армии, то вся графика уже не выглядела так круто.
и если сравнивать "на глазок", то на TV моя картинка была гораздо более яркой и не столь размытой, даже когда резкость была сбита. скорее всего изображение "как в орининале, на TV" и "наилучшее качество с разными фильтрами" - это разные вещи, ибо телик и проектор не одно и то же. Это я к тому, Pheel, что даже на телике, конечно, было видно различие между цветом с bright-off и цветом с черной текстурой и bright-on, они сливались только если смотреть издалека и особо детали не разглядывать.
Последний раз редактировалось diver; 14.03.2005 в 09:41.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)