Видеостудия на базе i486

Как многие старьевщики, я люблю время от времени помучить ebay поисками разных старых железок, вдруг, найдется что-нибудь интересненькое занедорого? И оно нередко находится. Да, искать что-то мейнстримово-винтажное, типа материнских плат для 386, 486, памяти SIMM 30 pin, видеокарт и мультикарт ISA, Sound Blaster, и подобных широкоизвестных вещей на ибее не стоит, они там очень переоценены. Однако, порой встречаются малопонятные обывателю платы, которые тру-старьевщикам кажутся жемчугом. Одну из таких плат я недавно приобрел менее, чем за 10 евро, включая доставку. Вот она:

evxrhneroim70xo0aht5sm6tvis.jpeg

С посмощью этой платы, выпускавшейся в 1994–1995 годах, можно превратить типичный для того времени компьютер, ну, ок, далеко не видеостудию, конечно, но в нечто, имеющее способности к нелинейному видеомонтажу. Самое сладкое для меня тут — это 1994 год. Как минимум за год до выхода Windows 95. То есть совместимый софт, с большой долей вероятности, будет 16-битным.
предупреждение: много картинок и видео под катом
Еще по картинкам я понял, что приобрел нечто дорогое моему сердцу. Да, это Miro Video. Это совсем не та miro, что miro video player, опенсорсный мультиформатный плеер, который был очень популярен в свое время, и не совсем та miro, которая Pinnacle miro video (компания Pinnacle приобрела компанию Miro Computer Systems GmbH в 1997 году). Это оригинальная, немецкая, как ELSA Technology, допиннакловская Miro Video DC1 для 16-битной шины ISA. Тем не менее, имеющая до сих пор свое комьюнити

Да, сейчас восторги по поводу платы оцифровки видеосигнала кажутся странными: подключил телефон по USB, да захватывай мышкой видеофайлы с него и переноси на комп… Но так было не всегда. Это сейчас любой смартфон способен снимать видео, оцифровывать и сжимать его налету. А раньше видео снимали и хранили в аналоговом виде: камерам не хватало мощности для оцифровки и сжатия на лету. Но вычислительная мощность — штука наживная. Для наших компьютеров (к которым и современные смартфоны, безусловно, относятся) она росла гигантскими темпами с момента их появления, и цифровое видео позволяет очень наглядно оценить этот темп. Давайте посчитаем. Для того, чтобы просто показывать 4К полноцветное видео на экране со скоростью 25 кадров/сек, компьютер должен обрабатывать поток данных примерно в 600 МиБ/сек (3840×2160 пикселей * 25 раз в секунду * 3 байта на RGB пиксель). Это только поток вывода в буфер видеокарты. До этого надо другой поток (правда, сегодня, это сильно сжатый поток) считать с диска в память и там распаковать. В общем, работа, для современного компьютера, плевая: шина PCIe 3.0 16x имеет пропускную способность около 16 ГБ/сек, да даже 1х слот PCIe 3.0 может переварить до 1 ГБ/сек теоретически, но столько и не надо — с диска идет сжатый поток, его скорость сильно ниже, а на прием/распаковку/отправку каждого из 7 млн пикселей в кадре у современного многогигагерцевого многоядерного процессора с SIMD-инструкциями времени полно. Да и ОЗУ для таких объемов более, чем достаточно, не говоря о дисковом пространстве.

Теперь давайте вернемся к нашей карте. 1994 год — это, в случае хай-энда, Pentium-90, но 486DX2–66, по факту, остается мощным мейнстрим-процессором:

nm8bxfosuvvn-rmvlubibxtvpwg.png
реклама из PC Magazine за май 1994 г.

Да, версии 486 на 75 и 100 МГц уже есть, но они в основном в хай-энд портативных компьютерах. В лоу-энде сидят 486SX-33 и 486DX-33. Pentium-60 уже год как на рынке, но все еще очень дорог. Pentium-90 — что-то заоблачно дорогое. Так что будем отталкиваться от 486DX2–66. Обратите внимание на объем жесткоко диска, 420–520 МБ! Менее, чем на 1 секунду несжатого 4К видео. А в типичном ОЗУ не вместится даже 1 кадр.

В этом свете, имевшая в 1994 году уже немалое распространение шина PCI не выглядит таким уж узким местом, обеспечивая до 125 МиБ данных в секунду, то есть 1,76 млн пикселей на кадр для полноцветного видео в 25 кадров/сек. Но наша плата захвата рассчитана на шину ISA 16 бит, и тут все сильно печальнее. 8 МГц и 16 бит дают теоретическую максимальную пропускную способность в 16 МБ/сек. Или 213 тыс пикселей на кадр. Даже кадр разрешением 640×480 имеет больше пикселей! И это — теоритический максимум, в реальной жизни недостижимый.

Кроме того, даже видео разрешением в 320×240 при 8 бит цвета и 25 кадрах/сек — это более 1.5 МБ/сек, очень серьезная нагрузка для жестких дисков того времени, которые обеспечивали пиковую скорость линейного чтения в 3–5 МБ/сек. Ну и размер имеет значение. Даже такое видео без сжатия быстро переполнит типичный 500 МБайтовый диск, буквально за 5 минут. Соответственно, нам необходимо поток данных сжимать, а запаса по вычислительной мощности процессора у нас совсем немного!

И это еще не все проблемы. Современные операционные системы обладают универсальными фреймворками на все случаи жизни. Во времена ранней Windows все было не так. Никаких стандартных видео-кодеков в мире Windows не было, Quicktime оставался эксклюзивом Apple, типичный аппаратно-программный видеокомплекс был вещью в себе, несовместимой ни с чем. Но в 1992 году выходит пакет под названием Video for Windows от Microsoft, и все заверте…

Ну, почти. Поначалу пакет не особо расходился среди пользователей, все же видео на компьютерах было еще экзотикой. Однако со временем производители устройств и прикладных программ приняли этот пакет, и он стал де-факто стандартом в мире Windows. Именно этому пакету мы обязаны появлением контейнера AVI. Ну и наша плата тоже поддерживает этот пакет полностью. Что хорошо. Это значит, что можно будет запустить Adobe Premier, первая версия которого была 16-битной и работала под Windows 3.1 с пакетом Video for Windows.

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

8nalb3jzidy1o7gokvebxhfptl0.jpeg

Сразу бросаются в глаза 2 СБИС от Philips, SAA7196 и SAA7199. Первая из них, — это Декодер цифрового видео, а вторая — энкодер. Чтобы не путаться, сразу скажу, что здесь декордер — это АЦП, а энкодер — это ЦАП. Декодер принимает отдельно сигналы яркости и цветности и оцифровывает их с дискретизацией 8 бит/отсчет. То есть по факту имеем 16 бит на пиксел. Для подачи отдельных сигналов яркости и цветности, на плате установлены разъемы S-Video, но есть и композит. Декодер довольно умел, он семплирует до 768 пикселей на линию изображения, умеет масштабировать видео и переводить формат цветности YUV в RGB.

Но то декодер. А сама плата, согласно документации, способна захватывать видео разрешением в 320×240 в NTSC и 384×288 в PAL/SECAM. Однако, плату можно использовать как аппаратный кодек для разрешений вплоть до 590×442. Чудно.

Энкодер же позволяет выводить то, что декодер вводит, обратно на Composite или S-video. Хорошо. Далее, среди бесчисленного количества мелких корпусов стандартной и не очень логики, виднеется набор чипов двухпортовой DRAM, стоящих, по-старинке, вертикально.

ktou8nyftpz0qxce1dba3_3dbuu.jpeg

Ее здесь 768 КиБ. И JPEG-процессор LSI L64702.

_ejnx1hmb4tvaepgkazswrlheey.jpeg

Ага, похоже, эта плата отдает видео в формате MJPEG, то есть поток картинок JPEG. Это мы еще посмотрим, конечно, но в даташите на L64702 ничего про временное сжатие не видно, так что вряд ли тут MPEG. Но для редактирования так даже лучше: все кадры ключевые, потери от пережатия будут меньше. Однако, это еще предстоит проверить, как и способность карты выдавать несжатое видео.

А пока соберем для платы компьютер. Примерно-типичный для 1994–1995 годов. Это будет быстрый 486, но не сверхбыстрый, а на 66 МГц. Как я писал выше, мне кажется, это довольно производительный и очень массовый процессор тех лет. Я долго думал по поводу материнской платы. Все же, 486 — это почти синоним VLB. Однако в итоге я остановился на PCI-версии, плате LS486E от печально известной Lucky Star на базе чипсета SiS 496/497.

ucxdraqm-ydbiuhbn4cbpgp43pm.jpeg

Несмотря на Lucky Star, это довольно надежная плата, которая, впрочем, попала ко мне в руки будучи сильно потрепанной жизнью. Батарейка CMOS-памяти протекла, микросхема ПЗУ с БИОС отсутствовала, разъем клавиатуры был практически уничтожен коррозией, а в регуляторе напряжения 3.3В отсутствовал силовой транзистор. Восстановить разъем клавиатуры и прочие повреждения от батарейки труда не составило, а вот последствия вандализма оказались печальнее. Ревизий 486Е бесчисленное множество, и периферия на всех разная, как и регулятор напряжения. Последний я решил не восстанавливать вообще, мне достаточно того, что плата работает с процессорами, рассчитанными на 5 Вольт, для этого регулятор не нужен. А БИОС конкретно для моей ревизии я не нашел. На моей плате установлен мультиконтроллер SMC, но такого БИОСа нигде не было доступно. В итоге, прада, версия для ревизии с мультиконтроллерром UMC подошла почти идеально.

b1d16ppfs16ipmem_ozvkxoroqe.jpeg

На плату установим 12 МиБ памяти. Плата поддерживает только FPM, так что, чем богаты, тому и рады, но 12 МиБ для 1994–1995 года, — это внушительный объем памяти. До выхода Windows 95 стандартом считалось 4 МиБ, после нее требования резко возросли до 8 МиБ и пошли расти дальше. Но это уже конец 1995 — начало 1996. А у нас сетап 1994 го, с Windows 3.X, тут 12 МиБ — это почти хай-эндовый уровень.

jgzw8qvszaj8ex8wftktn4kxy7g.jpeg

Для вывода видео я буду использовать карту S3 Savage4. Это карта из совсем другого времени, из 1999 года. Но это единственная плата S3, которая оказалась под рукой, а когда речь идет о Windows 3.х, у меня есть одно простое правило: видеокарта S3. Да, мне бы хотелось тут видеть S3 Trio32, но даже для выпущенной в 1999 году Savage4 есть отличный драйвер для 16-битной Windows. Очень жаль, что у фирмы все так печально сложилось.

qomt4woslq3wb4rnbzleb0ey2x4.jpeg

В качестве жесткого диска буду использовать микродрайв. Обычно в таких случаях я бы использовал флеш-накопитель, но мы говорим о захвате видео, то есть о большом количестве перезаписи, и, боюсь, тут флешу может стать плохо.

m3iqbxm7c7z8knrxifjpgv11ssu.jpeg

Сетевая плата ничем не примечательна, но поможет перекидывать софт и результаты работы с/на более современное железо.

_esrldm3jo4khcpfunmeqlvyd5o.jpeg

Ну и звук. Тоже, ничего особенного. Клон Sound Blaster, к тому же, довольно глючноватый. Но нам много не надо. 8 бит моно с частотой дискретизации 22 кГц, больше нашему компу не осилить.

Итак, начнем с установки DOS. Версия 5.0 будет в самый раз, хотя 1994 год — это как раз 6.22, последняя версия MS-DOS, как отдельной ОС. Но в нашем случае различия невелики.

umwmppqdczmpg_wh_ke456xhw9c.jpeg

Все равно основная работа будет производиться под Windows 3.11:

rvfg6kmpjdtbiw_th7pcr8pl2yk.jpeg

iefbjscvezmmpixjdg7vg7a43kc.jpeg

3.11 это для сети. Хочется простого переноса данных, значит, нужен TCP/IP. Его не просто не было в стандартной поставке ОС, он еще и требовал установки Win32s, 32х разрядной надстройки над Windows 3.X, обеспечивавшей сабсет API Win32.

tq0pwoyj3w__h2gopzsxt5vqvx8.jpeg

После установки TCP/IP можно залезть на сетевой диск за драйверами всего остального.

xxqk2eevwoqih5qfel0wqbdg620.jpeg

И вот почему я люблю S3:

изображение до установки драйвера S3:

txvyzviq6pdb-eqtlg6xx0aiy4e.jpeg

и после:

whrwkhiugqmbk4dyrvcflv1fk7y.jpeg

Теперь можно установить Adobe Premier 1.1.

cit-issglzfmawo-t6hepjecqny.jpeg

не забыть перезагрузиться, как после любой установки:

u2oiluudcg5rias1lfptisdwb3e.jpeg

В поставку уже входит Video for Windows, так что остается только установить драйвер miro Video. В комплект драйвера miro входит утилита, позволяющая проверить скорость передачи данных с/на диск. Посмотрим:

vqrmj_ydv0rblwbvjis6nrrwbwk.jpeg

М-да, не густо. Ну что же, что есть то есть. Зато теперь, после бесчисленных перезагрузок, можно преступать к веселью. У меня не так много источников композитного видеосигнала, так что начну с самого простого, что есть всегда под рукой: ZX Spectrum. Попробуем захватить видео геймплея. Своеобразный твич а-ля 1994 будет. Да, вывод звука в ZX Spectrum не предусмотрен конструкцией, так что видео будет немое. Но звук я все равно захватывать буду, чтобы оценить реальную нагрузку. Звук будет несжатым PCM, 8 бит 22 кГц. И нет, сжатие не улучшит ситуацию, скорее, наоборот: 486–66 неспособен на лету распаковывать MP3 даже с самым низким битрейтом, что уж говорить о упаковке параллельно с видеозахватом?

icc32wfn52yfy9cjsz5n10iqe4g.jpeg

Итак, первая особенность. При захвате видео окно с превью не работает, и совершенно непонятно, что именно мы захватываем. К счастью, сигнал со входа карты захвата напрямую пробрасывается на выход, и с помощью внешнего монитора с композитным входом можно увидеть, что мы имеем на входе. Также, перед захватом программа предлагает преаллоцировать файл буфера захвата. Я полагаю, чтобы избежать большого времени поиска при записи на фрагментированный диск. Я преаллоцировал 50 МиБ. Начинаем:


Длинное и скучное видео со спекки

Для композитного сигнала, захваченного 486 м в разрешении 320×240 (да, этот спектрум — NTSCшный harlequin), качество совсем неплохое! Давайте посмотрим что там внутре… Да, это MJPEG. Несжатое видео карта захватывать не умеет совсем, при отключении сжатия в настройках захвата видим следующее:

osawmnhfzzhg35tdb6nbvm-i_9o.png

Из 8,5 тыс захваченных фреймов с разрешением 320×240 и скоростью 25 кадров/сек, 100 было пропущено. Думаю, из-за того, что захваченый файл в 3 раза превзошел размером преаллоцированый буфер. Но, в целом, это совсем неплохой результат! После захвата видео копируется из дискового буфера в отдельный файл, и эта операция занимает довольно много времени, вполне сравнимо с самим захватом. Надо отметить, качеством захвата я впечатлен. Оно определенно соответствует VHS. Я готовился к значительно худшему результату, да и те результаты, которые я получал со своей первой картой видеозахвата (которая была обычной PCI-картой ТВ-тюнера Aver Media) на Celerone году в 1996–1997 были, пожалуй, похуже.

Ну и давайте посмотрим на то, что представлял собой Adobe Premier 1.1. Заодно и звук на видео наложим какой-нибудь, для веселья.

qxqubqw_ydeh9ynlo3sumche-3o.jpeg

Что тут можно сказать? С тех стародавних времен, в нелинейном монтаже особо ничего не изменилось. Тот же таймлайн с несколькими дорожками, отдельно для видео, звука и эфектов. Все привычно и для того, кто умеет в iMovie или Blender Video Editor, не говоря уже о современном Adobe Premier, разобраться с этой версией будет очень просто. И какие классные одскульные транзишены тут! Это просто праздник какой-то:


Давайте я попробую создать небольшой ролик о пользе TR-DOS для ZX Spectrum в стиле 90х!

М-да, все очень небыстро. Для пересжатия я использовал родной кодек видеокарты, то есть пересжатие, по-идее, должно было быть аппаратным. 4х минутный ролик создавался 2 часа 10 минут.


И да, аппаратное сжатие тут есть. Для проверки я попробовал отрендерить короткий 10-секундный ролик с разными кодеками. Вот результаты:

  1. miro MJPEG — время рендеринга 5 минут.
  2. Microsoft RLE — общее время 5 минут (постройка 256-цвет палитры 1 минута и кодирование 4 минуты). Но это сильно более легковесный кодек.
  3. Microsoft Video 1 — время рендеринга 8 минут.
  4. Cinepak — время рендеринга 1 час.


Ну вот, пожалуй, и все. Это было весело. Что интересно. плата не вызвала вообще никаких трудностей при установке/настройке. Вот что значит немецкое качество! А сам факт того, что на 486 м о 66 МГц с 12 МиБ ОЗУ и диском в 500 МБ, да еще и под управлением 16-битной версии Windows, действительно можно монтировать видеоролики вызывает во мне истинное восхищение. Очень доволен, как потратил эти 10 евро, обычно, все получается гораздо скучнее.

© Habrahabr.ru