цена $700
Новинка сочетает в себе монитор и телевизор. Кроме стандартных интерфейсов она имеет встроенный компонентный вход SCART, что дает возможность подключить к ней не только ПК, но и, например, DVD-проигрыватель. Экран окаймлен широкой бордовой рамкой, в которой спрятаны два 3-ваттных динамики. Округлая «под хром» подставка весьма массивна и потому очень надежно удерживает монитор. Углы наклона экрана от 0 до 45 градусов. Если понадобится, монитор можно закрепить на стене с помощью VESA-совместимого кронштейна. Блок питания встроенный. Часть интерфейсов, а именно 15 Pin D-Sub, DVI, SCART, антенный, питание, а также замок Kensington скрыты массивной декоративной крышкой, остальные интерфейсы: Audio-In/Out, Video, S-Video и гнездо для подключения наушников расположены на задней панели.
13-я КОМНАТА: Ячейка, она же клетка, она же… Cell
У читателя, ознакомившегося с материалами рубрики «Архитектура ХХ века» в прошлом номере, могло сложиться ощущение, что в процессоростроении все мыслимое и немыслимое давным-давно изобретено и придумать что-то более совершенное, нежели суперскалярный OoO-процессор, невозможно в принципе. Однако это не так.
Основных «альтернативных» современному мэйнстриму путей развития два: один очень старый, второй совсем новый. Широкого распространения они пока не получили, но, может, их время еще не пришло?
Вернемся на минутку в прошлое и вспомним главную идею, положенную в основу RISC: процессор должен быть устроен как можно проще - это и экономически выгоднее, и наращивать тактовую частоту и применять разные технологические трюки, кардинально увеличивающие производительность, легче.
Так может, повыкидывать из процессора все эти хитрые декодеры и планировщики и оставить только самое необходимое - исполнительные блоки, набор регистров, подсистему памяти и минимальный набор обслуживающей логики? Зачем, к примеру, заниматься хитроумным переименованием регистров, если этих самых регистров можно понаделать сотню-другую? И зачем отслеживать зависимости инструкций, если можно писать программы так, чтобы эти зависимости никогда не нарушались? Проще говоря, коли наш суперскалярный OoO-CPU все равно в конечном счете работает не с исходным программным кодом, а с неким внутренним его представлением - не лучше ли сразу записывать программы в этом представлении, обходясь без посредников? «В очередном такте исполнительному устройству X- загрузить из оперативной памяти по адресу из регистра такого-то данные и сохранить их в регистр такой-то; исполнительному устройству Y - взять данные из регистров такого-то и такого-то, сложить их и записать результат в регистр такой-то; устройству Z - проверить регистр такой-то на выполнение условия и по результатам проверки подкрутить внутренний указатель такой-то и сбросить при необходимости конвейер». Получится одна очень длинная инструкция (Very Long Instruction Word, VLIW), полностью и исчерпывающе описывающая, что каждому из блоков процессора следует в очередном такте делать.
К чему мы тогда придем? Получится архитектурно очень простой процессор, который будет очень трудно программировать: ведь придется детально учитывать его внутреннее устройство и особенности. Но если мы научимся это делать, то в качестве компенсации получим возможность изготовить сколь угодно навороченный CPU малой кровью - без всяких сверхсложных декодеров и планировщиков на три-четыре инструкции. К примеру, в отечественной разработке «Эльбрус Е2K» предполагалось одновременное исполнение до 24 инструкций за такт - при сохранении приемлемой сложность CPU. Реализовать что-либо подобное в классическом суперскалярном процессоре - нельзя; а при VLIW-подходе, не ограниченном жесткими рамками скоростного декодирования и планирования программы, - можно. Ведь никто же нам не запретит компилировать и оптимизировать программу хоть часами, хоть сутками - лишь бы потом она быстро исполнялась?
Единственная очевидная загвоздка в подобном подходе - тот самый компилятор, умеющий генерировать очень сложный технически и требующий тщательнейшей оптимизации машинный код для VLIW-процессоров. Но ведь, в конце концов, и простые компиляторы с языков высокого уровня когда-то казались чудом, а сейчас мы преспокойно используем сложнейшие компиляторы C++, работающие с парадигмами обобщенного программирования. Так что создание совершенного оптимизирующего компилятора для VLIW-процессоров - это, скорее, вопрос времени[Отрадно, кстати, сознавать, что над созданием этих «суперкомпиляторов», в первую очередь - Intel C/C++ Compiler, активно работают наши соотечественники - например, Нижегородская лаборатория (бывшая московская команда Бориса Бабаяна, разрабатывавшая компиляторы для «Эльбруса Е2К»). Нам бы, правда, к этому еще и свои процессоры с компиляторами…]. Но есть и другие проблемы.
Проблема первая - жесткая привязка исполняемого кода к конкретному процессору. x86-программа запросто может работать и на i386, и на Pentium 4; с каноническим VLIW-процессором такой фокус, увы, не пройдет. Правда, Intel в усовершенствованной версии VLIW-архитектуры (EPIC - Explicitly Parallel Instruction Computer, компьютер с явно заданным параллелизмом команд) смягчила этот недостаток, введя не инструкции, а bundles - эдакие «полуинструкции», упакованные в контейнере с информацией о взаимозависимостях между этим и другими бандлами. Предполагается, что процессор, без труда проверив бандлы на взаимозависимость, может запускать их параллельно и, таким образом, обладать некоторой «свободой действий» в проектировании будущих CPU, сохраняющих бинарную совместимость с текущим поколением.
Вторая проблема прямо вытекает из первой: довольно трудно сделать совместимые VLIW-процессоры, предназначенные для разных секторов рынка. Уж больно сильно привязан программный код к аппаратной начинке. То есть если мы делаем «супер-VLIW», с кучей исполнительных устройств и тщательно вылизанной подсистемой памяти - то ровно такой же «суперпроцессор» (с суперсебестоимостью) нам придется продавать и для low-end-сектора рынка. И наоборот, «сэкономив» и выкатив процессор для low-end и middle-end, мы получим крепкого середнячка, но не лидера производительности. Подход EPIC с его бандлами слегка исправляет ситуацию, но не до конца - дешевых Itanium в природе так и не появилось.
Третий и, пожалуй, главный недостаток VLIW - это то, что предусмотреть и спланировать все события в процессоре невозможно. К примеру, нельзя предугадать, сколько времени займет операция обращения к оперативной памяти. А раз так, то нельзя и эффективно запланировать ее: OoO-исполнения во VLIW-процессорах не бывает, и если мы думали, что данные для инструкции в кэше будут, а их там не оказалось, то весь этот сложный, «мышцастый» процессор будет простаивать десятки и сотни тактов, дожидаясь исполнения злополучной инструкции загрузки данных. В EPIC придуман способ борьбы и с этой проблемой - программную предвыборку данных, software prefetch[Это такие специальные инструкции, которые позволяют процессору параллельно с основным исполнением запросить фоновую подгрузку в кэш-память определенных данных, если их там еще нет.]; однако подсистема памяти до сих пор остается одним из самых узких мест любого VLIW-процессора.
Идея VLIW отнюдь не нова - еще в середине 80-х годов корпорация Intel пыталась продвигать весьма неординарный VLIW-процессор i860. Однако описанные проблемы и отсутствие по-настоящему эффективных оптимизирующих компиляторов поставили крест на i860 еще до его практического рождения. Да, i860 был «суперкомпьютером на чипе», да, он опережал свое время, но как процессор общего назначения - никуда не годился[Теоретический максимум производительности - 60 Мфлопс. Практический максимум для программистов, вручную оптимизировавших код для i860 на ассемблере, - 40 Мфлопс. Производительность обычного компилятора для i860 - не более 10 Мфлопс. Производительность рабочих станций на первом коммерческом MIPS R3000 - 9 Мфлопс; на первом Intel Pentium - 15-40 Мфлопс.]. Для него требовались специальные сложные компиляторы и новая инфраструктура - и все лишь ради того, чтобы в конце концов получить производительность, в большинстве случаев уступающую производительности стремительно развивавшихся RISC-конкурентов! i860 мог быть очень быстрым процессором для вычислений с плавающей точкой - но между «мог» и «был» в большинстве приложений зияла огромная пропасть, которую было проще преодолеть, положившись на технический прогресс, благодаря которому даже безнадежно «тормознутая» в те годы архитектура x86 через несколько лет достигла такого же уровня производительности. Некоторое время Intel 80860 использовался в качестве специализированного программируемого DSP-процессора (графического ускорителя), но заметного распространения даже в такой ипостаси не получил.
Впрочем, полный провал i860 не помешал корпорациям Intel и Hewlett-Packard уже через два года инициировать разработку «суперпроцессора» Itanium, который должен был исправить ошибки 860-го процессора и стать заменой не только архитектуре x86, но и всем тогдашним RISC-архитектурам. Архитектура получила звучное название IA-64 (Intel Architecture for 64-bit), и поначалу казалось, что «пересадят» пользователей на Itanium едва ли не начиная с Pentium II. Itanium должен был с помощью специального полуаппаратного эмулятора поддерживать набор инструкций x86, так что переход с архитектуры IA-32 на IA-64 обещал быть безболезненным. «Крутизна» новинки была так очевидна, что Silicon Graphics, например, даже забросила разработку своей фирменной архитектуры MIPS, рассудив, что с Itanium ей все равно не сравниться.
Но если отбросить красивые слова и посмотреть, что получилось на практике, то следует признать, что проект Itanium «блестяще провалился». Вначале очень долго задерживался первый Itanium (Merced). Потом некстати вылезла со своими процессорами AMD и вынудила Intel ввязаться в «гонку мегагерц», по итогам которой «устаревшая» архитектура x86 сделала такой колоссальный рывок, что однозначного «суперпроцессора» из со скрипом появившегося на свет Itanium уже не получилось. Затем была проведена большая «работа над ошибками», в ходе которой производительность и «производственные» технические характеристики Itanium 2 значительно улучшились, так что «итаниумное» семейство с трудом, но все же завоевало лидерство в производительности (особенно при вычислениях с плавающей точкой, критичных для научных расчетов). Но принципиально это ситуацию не изменило. Перспективы для иного, кроме как High-End-применения, у Itanium сегодня печальные - фактически AMD убила его развитие своими 64-разрядными процессорами. Да, старшие модели 64-разрядных Opteron в среднем проигрывают старшим Itanium 2 по производительности; однако проигрыш этот невелик и компенсируется тем, что «Оптероны» гораздо дешевле и не требуют специальной адаптации уже имеющихся программ к IA-64. В итоге получилось так, что Intel, конечно, предпочла бы использовать свою архитектуру IA-64 вместо чужой архитектуры AMD64, однако выбирая между быстрой потерей большей части серверного рынка, занятого сегодня процессорами Xeon, и утратой надежды на то, что Xeon в обозримом будущем будет заменен на Itanium, Intel выбрала первый вариант. А после введения в «Зионах» технологии EM64T (копии AMD64) от развития собственных Itanium-систем отказалась большая часть поставщиков серверов, начиная с IBM и заканчивая Dell. Даже соразработчик Itanium компания Hewlett-Packard (как и SGI, которая ради IA-64 поставила крест на своей процессорной архитектуре PA-RISC) потихоньку сворачивает линейку продуктов на основе этих CPU. Так что злая ирония про «Itanic» (по аналогии с «Titanic») сегодня, к сожалению, уместна как никогда.
Кроме Intel попытку внедрить VLIW-архитектуру в повседневную жизнь предпринимала со своими x86-совместимыми процессорами небезызвестная Transmeta. У команды, в которой работал сам Линус Торвальдс, не было претензий на «новую сверхархитектуру», но процессоры они создали не менее интересные. Transmeta не стала проталкивать свой VLIW как индустриальный стандарт, а сосредоточилась на разработке специального софта, полностью имитирующего (программно!) на VLIW-процессоре обычную архитектуру x86. Производительностью такое решение не отличалось, но зато было простым (ибо VLIW архитектурно проще), дешевым (ибо простым) и потребляющим совсем немного энергии (в силу все той же простоты), что позволило Transmeta вполне успешно позиционировать свои CPU в нишу недорогих мобильных процессоров и даже процессоров для блейд-серверов. К сожалению, производственные трудности и появление технологии Centrino, которая свела конкуренцию на мобильном рынке почти к нулю, привели к тому, что Transmeta терпела огромные убытки. Так что судьба двух доступных пока VLIW-архитектур - Intel Itanium 2 и Transmeta Efficeon - очень похожа. Обе оказались вытеснены в узкоспециализированные ниши: Itanium 2 - в высокопроизводительную; Efficeon - в экономичную.
Итак, VLIW/EPIC на роль процессора завтрашнего дня пока не годится - те потенциальные преимущества, которыми она обладает, сегодня не оправдываются. Но существенные изменения в грядущих процессорах мы все-таки увидим.
Хотим мы того или нет, работать нам придется с многоядерными процессорами. Как уже говорилось, разработка нового процессорного ядра - дело весьма долгое даже при наличии опытной команды и чертежей предыдущей версии изделия; совершенствование технологических процессов, позволяющих уместить на одном кусочке кремния все больше транзисторов, происходит гораздо быстрее. Раньше это выливалось во все более «кэшастые» варианты одних и тех же архитектур и во все более «прямолинейные» варианты их разводки (пожертвовав площадью кристалла и увеличив его размеры, разводку можно сделать «более высокочастотной»); теперь же стало выгоднее просто устанавливать два-три-четыре одинаковых или почти одинаковых ядра в один кристалл или на одну подложку.
Но коль уж все равно нам светит повальный переход на параллельные алгоритмы (а параллельное программирование нетривиальных алгоритмов по праву считается одной из самых сложных современных задач), то имеет смысл уже сегодня заняться разработкой перспективных параллельных архитектур на основе принципиально новых концепций. Именно такой подход в лице процессора Cell (совместное детище Sony, Toshiba и IBM), возможно, и определит облик завтрашнего дня компьютинга.
По меркам же дня сегодняшнего Cell вызывает интерес своей необычностью и потрясающей футуристичностью: девять ядер, из которых одно главное, а восемь - вспомогательные; сумасшедшей пропускной способности интерфейсы и оперативная память Rambus; тактовая частота под три гигагерца. Но новизна процессора не в этом (вернее, не только в этом). Cell - это еще и попытка значительно пересмотреть существующие парадигмы программирования.
Cell в переводе на русский - ячейка. В концепции Cell существуют аппаратные и программные ячейки. Аппаратная ячейка - любой процессор, способный выполнять программные ячейки и связанный с другими процессорами. Программная ячейка - это данные, либо особая программа (apulet), описывающая, как следует обрабатывать данные. В идеале нет никаких самостоятельно существующих программ, нет процессоров и компьютеров. Есть только данные, код, который их обрабатывает, и абстрактная аппаратура, обеспечивающая существование того и другого. Не поняли? Смотрите: пусть у нас есть, например, передаваемый по Сети видеопоток.
Что такое видеопоток? На программном уровне это последовательность фреймов - небольших блоков данных, описывающих маленький кусочек (скажем, 0,1 с) видео или звуковой дорожки. В терминах Cell - поток ячеек, содержащих данные разного типа. Его воспроизведение можно представить как результат выполнения некоторой большой программы, с исходными данными в виде этого потока, а можно - как процесс многократного преобразования ячеек с данными, в ходе которого ячейки одного типа (например, сжатый звук) превращаются в ячейки другого типа (несжатый звук) маленькими программками (апулетами). Обычно все эти превращения запрятаны глубоко в некую всеобъемлющую программу, которая копирует поступающие данные в оперативную память, поочередно обрабатывает их разными алгоритмами и старается распределить обработку по нескольким процессорам. Идея Cell состоит в том, что вместо этой программно-ориентированной модели мы берем более естественную, ориентированную на данные модель декодирования видеопотока и сводим написание видеопроигрывателя к написанию инструкций типа «чтобы воспроизвести видеотрансляцию, нужно подключиться по такому-то адресу в Сети к источнику ячеек, преобразовать поступающий поток в поток ячеек со сжатым видео и сжатым звуком, преобразовать сжатый звук в несжатый, сжатое видео в несжатое, обработать несжатый звук эквалайзером и эффект-процессором, а к несжатому видео применить деинтерлейсинг, подогнать получившуюся картинку к размерам экрана, скорректировать яркость, насыщенность и контрастность и воспроизвести получившиеся аудио- и видеопотоки». Вот это и есть программа для Cell! В ней даже нет инструкций, указывающих, как делать все вышеописанное, - за «подробностями» Cell-устройство обращается к библиотеке алгоритмов, причем каждый алгоритм (апулет) - это тоже ячейка, которую, к примеру, можно на лету скачать из Сети с того же самого источника видеотрансляции. А какое железо и какая операционная система обеспечивает этот процесс с точки зрения Cell-программиста (фактически автора алгоритмов и описаний, подобных вышеприведенному), пользователя и главных действующих лиц - данных и апулетов, - совершенно неважно.
Какую выгоду мы имеем при такой организации? Во-первых, все написанные таким образом Cell-программы параллельны по самой своей сути. Мало того что мы разбиваем исполнение программы на несколько явно независящих друг от друга стадий, которые можно исполнять «в параллель». У нас же целая цепочка ячеек-данных, требующих обработки и в подавляющем большинстве случаев все эти ячейки друг от друга совершенно независимы - а значит, мы можем «превращать» по одному и тому же алгоритму несколько ячеек одновременно. Таким образом, в Cell удается загрузить работой не просто десятки - а сотни и даже тысячи «элементарных процессоров» (Synergetic Processing Element, SPE), причем задействовать для запущенной на одном процессоре задачи SPE всех процессоров данного устройства и даже совершенно прозрачным образом привлечь к ней же SPE других устройств! Представьте, что игровая приставка, домашний компьютер, телевизор, холодильник и КПК совместно работают над, скажем, запущенной пользователем задачей рендеринга трехмерной сцены, причем делают это совершенно прозрачным и незаметным для вас способом - и вы поймете всю прелесть подобной организации! А самое замечательное, что вся эта красота не стоила ни малейших усилий. Нам не требовалось размышлять над кластеризацией, пересылкой данных, блокировками, потоками и прочими «прелестями» параллельного программирования, превращающего жизнь программиста в кошмар: мы написали только «интересную» и «содержательную» часть кода, собственно «алгоритмику» задачи, переложив всю рутину на автоматику и, возможно, прозрачным образом задействовав для решения своих задач произвольное количество чужого кода[Скажем, если в трансляции видеопоток сжат нашим «фирменным» кодеком, а звук - обычным стандартным, то потребуется обеспечить лишь «свою» часть по видеодекодированию, а все остальное - декодирование звука, набор «улучшалок» для картинки и т. п. - Cell-устройство возьмет стандартное или ранее загруженное пользователем.].
Возможности для применения Cell-сети необъятны. По сути дела, это некий единый «живой организм», который «растет» (регистрирует в сети новые устройства) или «уменьшается»; который обладает «знаниями» (апулетами) и «живет» в глобальном мире - всемирной Сети, «питаясь» разнообразными данными и «перерабатывая» их. У этого «организма» есть «глаза» (веб-камеры), «уши» (микрофоны), «органы чувств» (клавиатура, мышь, джойстик), «средства коммуникации с внешним миром» (монитор, телевизор, колонки); которые физически могут принадлежать совершенно разным устройствам, но в действительности - одному Cell’у.
Добавление новых устройств в Cell-сеть, как правило, не изменяет ее функциональности (разве что добавляет новые «органы чувств», «средства отображения» и повышает быстродействие) - даже в самом простом варианте Cell универсальна.
Как это все реализовано в железе? В статье о приставках следующего поколения[«Три тополя на Плющихе»] я подробно описывал аппаратную составляющую одного из первых Cell-устройств - PlayStation 3, и его «сердце» - процессор Cell[Вообще-то он называется Broadband Processor, но это название как-то не прижилось], так что еще раз восхищаться сверхсовременными решениями вроде Rambus-памяти и интерконнекта FlexIO, пожалуй, не будем. Лучше посмотрим, откуда эта своеобразная «несимметричная девятиядерная архитектура» взялась.
Напомню, что в процессоре Cell девять ядер - одно главное и восемь вспомогательных. Но если посмотреть на это с точки зрения концепции Cell, то вспомогательным на самом деле является главное процессорное ядро - PPE (The Power Processing Element). На нем работает операционная система сети Cell, обеспечивающая прозрачное объединение нескольких устройств в сеть; выполнение программ - выборку данных и их распределение вместе с необходимыми апулетами по собственно вычисляющим элементам; взаимодействие с пользователем, работу драйверов устройств… в общем, все то, что мы тремя абзацами выше отнесли к рутине. А самое интересное происходит в маленьких ядрышках процессора Cell - модулях SPE. Фактически каждый такой Synergetic Processing Element - это крошечный самостоятельный компьютер (со своим процессором и своей оперативной памятью), который занимается одним-единственным делом: конвертирует поступающие к нему ячейки-данные согласно заложенному в него алгоритму. То есть физически воплощает в жизнь алгоритм, заложенный нами в одну ячейку-апулет, над ячейками-данными. Все, чем занимается PPE, в сущности, сводится к одному действию: взять данные, требующие обработки, поместить их в память SPE, запустить «процесс превращения» данных в другие данные и куда-нибудь передать полученный результат. Именно поэтому SPE очень много, а блок PPE - один; и именно поэтому у каждого SPE есть своя персональная «локальная» память и нет выхода на «глобальную» (она им попросту не нужна); именно поэтому SPE связаны очень быстрыми шинами и могут передавать данные друг другу напрямую, выстраивая те самые цепочки обработки данных, которые в обычном процессоре являются чистейшей воды абстракцией.
Кстати, использовать для создания Cell-устройств, способных стать частью Cell-сети, описанный процессор вовсе не обязательно. Концептуально от устройства требуется только одно: уметь интегрироваться в сеть (то есть содержать процессор, работающий под управлением соответствующих программ) и уметь выполнять над ячейками-данными ячейки-апулеты (например, содержать хотя бы один SPE). Вполне можно представить, что после «суперпроцессора» Cell появятся более простые варианты с меньшим (или наоборот, большим) числом SPE или даже совсем простые и дешевые мини-процессоры (использующие один SPE и более простой PPE, причем PPE может быть даже не PowerPC-процессором), которые можно будет за сущие гроши устанавливать в любую бытовую технику. С помощью Cell можно одинаково эффективно реализовывать и суперкомпьютеры[Уже представлены блейд-серверы из нескольких Cell-процессоров], и «цифровой дом».
Правда, настанет все это счастье, увы, нескоро - на создание принципиально новых операционных систем (основы Cell), стандартных Cell-библиотек, компиляторов и сред разработки, на перенос имеющегося программного обеспечения и, наконец, на самую обыкновенную перестройку мышления программистов уйдут в лучшем случае годы.
Доживем ли мы до «умных» сетей и распределенных «повсеместных» вычислений, столь же прозрачных, привычных и незаметных, как современные электросети? Годика через три увидим.
ТЕХНОЛОГИИ: Новая надежда
Выхода графического ускорителя нового поколения от ATI, известного под кодовым названием R520, ожидали долго. Даже, пожалуй, слишком долго: мы искали его на Computex, мы надеялись увидеть его в июле, когда nVidia начала продавать видеокарты GeForce 7800GTX, затем в сентябре, когда, казалось, ждать дальше уже было некуда.
Но прошли уже все мыслимые сроки, а R520 все не было.
Тестовая система:
Материнская плата: ASUS A8N SLI Deluxe. Оперативная память: Corsair DDR CMX512-3200XLPRO, 2x512 Мбайт, 2-2-2-10. Видеокарта: nVidia 7800GTX 256 Мбайт, ATI X1800XT 512 Мбайт. Операционная система: Microsoft Windows XP SP2. Драйверы: последние официальные на момент написания статьи. Все настройки системы оставлялись по умолчанию, процессоры функционировали на своих номинальных частотах: Athlon 64 FX-57 2,8 ГГц - множитель 14, шина 200 МГц, память в синхронном режиме с таймингами 2-2-2-10
Вот и получилось, что ситуация на рынке сегодня далеко не в пользу канадцев. Уверенно лидируя в «дешевых» и «интегрированных» нишах, солидных по оборотам, но, увы, не приносящих по-настоящему большой прибыли, самые «вкусные», высокопроизводительные сегменты еще недавно доминировавшая здесь ATI утратила. В результате - провальный квартал и 104 млн. долларов убытков.
Почему так вышло? Думаю, отчасти виноват новый, прогрессивный 90-нм low-k технологический процесс, освоение которого на заводах TSMC, производящей GPU по заказам aTI, вероятно, проходило далеко не так гладко, как рапортуют теперь маркетологи[Все мы помним, что первая итерация 90-нм процессоров Intel получилась «слишком горячей» (большие токи утечки вносили ощутимый вклад в тепловыделение ранних степпингов Prescott), а у aMD - «слишком медленной». Да и nVidia, тоже размещающая заказы на заводах TSMC, предпочла изготавливать свой новый GPU G70 по «старому, дорогому и медленному», зато проверенному 110-нм техпроцессу]. Отчасти - «погоня за двумя зайцами», то есть одновременная разработка и запуск в серию двух совершенно разных продуктов: основанного на унифицированной шейдерной архитектуре процессора R500[На нем построена приставка Xbox 360, выпуск которой намечен на ноябрь], который невозможно использовать в обычных видеокартах; и нашего сегодняшнего героя R520, построенного по «классической», но сильно переработанной архитектуре. Вдобавок чип получился по-настоящему новым и революционным (после едва ли не трех лет постепенной эволюции удачной линейки Radeon 9xxx), так что его проектирование и доводка наверняка отличались особенной сложностью, и сколько ушло итераций на то, чтобы отловить все ошибки, - знают только инженеры aTI.
Впрочем, довольно толочь воду в ступе. В конце концов, пусть и с полугодовым опозданием, но R520 - перед нами, и в ближайшее время видеокарты на его основе появятся в розничной продаже.
Итак, что же удалось сделать ATI? Я бы сказал, невероятно многое. Словно все три года, пока регулярно выходили превосходные видеокарты, полученные экстенсивным расширением старой технологии, инженеры откладывали все по-настоящему интересные задумки в долгий ящик, чтобы потом реализовать их скопом.
Во-первых, радикально переработано сердце любого графического ускорителя - блок пиксельных процессоров, отвечающий за закраску сцены по заданным алгоритмам. Традиционно в этом блоке ставится энное количество одинаковых пиксельных конвейеров, каждый из которых «в параллель» с остальными вычисляет цвет отдельно взятого пиксела (или субпиксела) в нашей сцене[Строго говоря, одиночные конвейеры сейчас уже никто не использует, поскольку гораздо эффективнее собирать их в группы по четыре штуки (процессоры квадов), чтобы они обрабатывали не отдельные пикселы, а блоки 2x2 пиксела (квады). При этом часть логики удается объединить, проводя некоторые операции не над отдельными пикселами, а над квадами целом - это и быстрее и проще]. То есть, единожды попав на какой-нибудь конвейер, пиксел, обрабатываемый соответствующей ему программой - пиксельным шейдером, раз за разом проходит по этому конвейеру, как бы крутится внутри него до тех пор, пока не закончится вычисление его цвета. Соответственно все устройства, и, в частности, текстурные модули, выбирающие из видеопамяти необходимые для этих вычислений данные, напрямую подключены к исполнительным устройствам конвейера. Схема достаточно простая и эффективная: нужно увеличить вычислительную мощность графического процессора - ставим больше конвейеров, и количество обрабатываемых за такт пикселов, а вместе тем и скорость закраски изображения пропорционально возрастет.
Инженеры aTI пошли другим, «процессорным» путем,[Подробнее см. «КТ» #609 (рубрика 'Архитектура ХХ века")] не став дублировать конвейеры, а организовав из GPU своеобразный суперскалярный процессор с единым конвейером, на котором несколько пикселов могут обрабатываться одновременно. Вместо того чтобы «распихать» пикселы по разным конвейерам, R520 накапливает их (вместе с соответствующими шейдерными инструкциями) в специальном огромном планировщике, который aTI называет Ultra-Threading Dispatch Processor. Почему Ultra? Да потому, что этот планировщик управляет одновременным выполнением колоссального числа операций (512 квадов 2x2 пиксела в High-End, и более скромные 128 квадов - в менее дорогих Middle-End и Low-End графических чипах). Все квады хранятся в длиннющих очередях, и по мере того, как освобождаются вычислительные ресурсы, отправляются на соответствующее устройство, будь то вычислительный, текстурный блок или блок графического Back-end’а (запись результатов во фрейм-буфер, блендинг, z-тест, антиалиасинг и пр.). Это более сложный подход, чем несколько однотипных конвейров, но и более гибкий и эффективный. Например, мы можем сколь угодно гибко варьировать соотношение количества вычислительных и текстурных модулей, так как они больше не подключаются друг к другу, образуя единое целое, а разделены по операциям, которые они выполняют[Подобную оптимизацию можно будет увидеть в ядре R530 - сердце Middle-End ускорителя Radeon X1600. В нем будет три процессора квадов (3x4 = 12 пиксельных конвейера), но всего один процессор текстур (1x4 = 4 TMU). Для современных шейдеров, которые больше занимаются вычислениями, нежели выборкой данных из оперативной памяти, такой подход оправдан, поскольку позволяет рациональнее расходовать площадь кристалла, увеличив число пиксельных конвейеров за счет сокращения числа TMU]. Речь идет о текстурных операциях, которые ранее могли блокировать конвейер до тех пор, пока не будет завершена операция выборки очередного тексела[Традиционный конвейер GPU устроен гораздо проще конвейера CPU, так что переупорядочивания инструкций, которое позволило бы обогнать застрявшую в конвейере инструкцию другой, не зависящей от нее, - в графических процессорах нет].
Заодно решается и проблема динамических условных переходов в шейдерах. Что это такое? Сейчас объясню: ради все того же упрощения пиксельных конвейеров, которых нужно уместить побольше на ограниченный кусочек кремния, эти конвейеры устраивают таким образом, что они вначале как бы настраиваются на ту или иную конкретную операцию над пикселами (сложение, вычитание, умножение) и затем применяют ее много раз подряд к разным пикселам; после чего перестраиваются на следующую операцию и снова применяют ее много раз к тем же пикселам, и т. д. Поскольку один и тот же шейдер обычно требуется применить к умопомрачительному количеству пикселов, такая схема обычно работает замечательно. Однако если встречается шейдер, в котором есть динамические условные переходы (которые нельзя заранее предсказать), то может оказаться так, что для одной части пикселов, «бегающих по кругу» в конвейере, какую-то операцию применять нужно, а для другой - нет. И это столь серьезная проблема, что графические чипы ATI долгое время не поддерживали динамические переходы (а значит, и Shader Model 2.0a и 3.0).
Правда, решение nVidia очень уж красивым тоже не назовешь: в ее варианте «глупый» конвейер по кругу обрабатывает все пиксели, но в решающий момент над некоторыми из них производит операцию, а некоторые - игнорирует[Похожий способ исполнения условных переходов можно встретить в процессорах ARM]. ATI нашла гораздо лучший выход: поскольку вместо нескольких «глупых» и простых конвейеров у нее лишь один, но «умный» и сложный, то не требующие обработки пиксельные квады до исполнительных устройств просто-напросто не добираются, уступая место тем квадам, с которыми действительно нужно что-то делать. В результате конвейер хоть и исполняет по-прежнему одну и ту же операцию над разными пикселами, неторопливо перестраиваясь с одной на другую, но делает это не в пример интеллектуальнее и не разбазаривает попусту свои ресурсы. А заодно семейство Radeon X1000 получает практически «бесплатную» поддержку шейдеров третьей версии. Честно говоря, столь блестящему решению, убивающему разом целую стаю зайцев, можно только позавидовать! Это еще не унифицированная шейдерная архитектура, где единый конвейер (а вернее, набор из таковых) может обрабатывать любые шейдеры - как пиксельные, так и вершинные, но то, что полшага в ее сторону сделано, - несомненно.
Вторая группа изменений коснулась оптимизации графического процессора для работы на больших и очень больших тактовых частотах. Например, архитектура подсистемы памяти была полностью переделана для поддержки казавшейся невероятно быстрой видеопамяти - 1500 МГц GDDR3[И ведь это еще не предел - ходят вполне правдоподобные слухи, что R520 поддерживает не вышедшую пока в свет графическую оперативную память следующего поколения, GDDR4]. Вместо традиционной схемы с множеством текстурных модулей (TMU), централизованно подключавшихся к единому контроллеру оперативной памяти, который, в свою очередь, по широким шинам запрашивал данные из памяти и возвращал ответ по тем же каналам связи, по которым пришел запрос, ATI изобрела принципиально новую, кольцевую внутреннюю шину видеопамяти, «размазывающую» контроллер памяти едва ли не по всему графическому процессору. Идея в том, что вместо одного большого и сложного контроллера мы делаем до восьми маленьких контроллеров, каждый из которых контролирует только свой относительно небольшой кусочек видеопамяти. Причем он расположен в кристалле так, чтобы сравнительно узкую (32-разрядную) шину видеопамяти от него было удобнее разводить на печатной плате и тем самым сводить к минимуму помехи, обычно возникающие из-за несовершенства разводки. Вдобавок, небольшим контроллерам требуются небольшие же кэши данных, что позволяет отказаться от традиционных упрощенных и имеющих ряд недостатков кэшей прямого отображения и наборно-ассоциативных кэшей в пользу более сложных, но лишенных этого недостатка полностью ассоциативных кэшей.
Маленькие контроллеры (точнее, интерфейсы для подключения модулей памяти) объединяются очень быстрой внутренней двунаправленной кольцевой шиной (шириной 256 линий в каждом направлении для моделей с 256-разрядной основной шиной памяти и 128 линий - для более дешевых). На кольце имеется четыре «остановки» - точки подключения к внешних устройств. Например, для топовых R520 к каждой такой «остановке» подключено по два модуля памяти (шина памяти 2x32 разряда) и какая-то часть внутренних устройств процессора, расположенных поблизости. Каких? А неважно: какие было удобно подключить именно в этом месте, такие и подключили. Кроме того, по специальным простым управляющим шинам (по которым передаются только инструкции) каждая такая «остановка» подключена к «диспетчеру» - тому самому централизованному контроллеру памяти, который не занимается доставкой данных к исполнительным устройствам, а только «отдает распоряжения» и «присматривает» за тем, чтобы нужные данные прочитал нужный маленький контроллер и отправил их по кольцу до нужной «остановки», где их сможет снять само исполнительное устройство.
В результате мы не просто добиваемся более эффективного подключения внешних модулей памяти к кристаллу - мы устраняем хорошо знакомую системным администратором проблему «звездной» топологии, когда к центральному элементу системы - контроллеру памяти (а у сетевиков - к свитчу) сходится во-о-от такой пучок проводов, работать с которым очень неудобно. Теперь у нас есть одна простая и быстрая кольцевая шина, и устройства подключены к ней «распределенно», по маленьким, коротким и простым в разводке проводникам. А где простота - там и высокие тактовые частоты. Красиво, правда? А если добавить, что упростившийся контроллер памяти в R520 стал программируемым и его можно на лету программировать так, чтобы он обеспечивал наиболее эффективное распределение данных в видеопамяти для конкретной игрушки… В общем, перед нами еще одно изящное решение из разряда «одним махом семерых побивахом».
Третья группа усовершенствований в R520 - это «доводка» ранее существовавших элементов. Например, этот графический процессор хранит в своих кэшах сжатые данные, сжимая и разжимая их на лету. Обычно подобный подход применяется только для хранения данных в видеопамяти (поскольку позволяет записать намного больший объем информации), а в R520 разработчики ухитрились применить тот же принцип и для самих кэшей, что почти равнозначно увеличению их объема. До восьми штук доведено число вершинных процессоров. Значительно улучшены вычислительные устройства блока пиксельных шейдеров - в них вдвое увеличено число собственно «вычислялок», поэтому за один такт это устройство способно выполнять до пяти разных операций над пикселом (две векторные над 3-векторами, две скалярные и одну операцию условного перехода). Таким образом, ATI почти догнала по этому показателю nVidia, которая использует в одном пиксельном процессоре G70 один векторный (но умеющий выполнять две разные операции одновременно) и один скалярный ALU. Правда, у nVidia векторные ALU работают с векторами длины 4, а у ATI - только с 3-векторами, и если приходится вычислять четвертую компоненту, то приходится задействовать и скалярное ALU, однако в целом заметной разницы в играх между подходами обеих компаний быть не должно.
Еще сюда можно отнести улучшенную поддержку чисел с плавающей точкой, в частности - полноценную поддержку фрейм-буфера в плавающем формате (включая возможность антиалиасинга). Для чего это нужно? Экспоненциальное представление цвета более естественно для человеческого глаза и позволяет легко и качественно реализовывать сцены с очень большой контрастностью (HDR, High Dynamic Range), довольно часто возникающие в играх и реальной жизни (например, когда мы смотрим из темноты на свет, который освещает лишь небольшую часть помещения)
Четвертая группа усовершенствований - «косметические» мелочи, в основном влияющие на разные «красивости». Поддержка некогда фирменного 30-битного (против обычного 24-битного) цвета Matrox, поддержка Adaptive Antialiasing - аналога Transparency SuperSampling в видеокартах nVidia9, поддержка более качественной, хотя и довольно медленной анизотропии. Аппаратное ускорение воспроизведения большинства распространенных современных видеокодеков, включая MPEG-2, WMV и H.264, позволяющее без проблем воспроизводить то, что мы называем High Definition Video (как Blu-ray, так и HD-DVD). Специальный аппаратный блок AVIVO, обеспечивающий качественную аппаратную обработку видеосигнала (10-битный цвет, гамма-коррекция, цветокоррекция, масштабирование, деинтерлейсинг); причем для кодирования TV-сигнала используется высококлассный кодер Xilleon, поддерживающий HDTV (а через переходник можно и HDMI организовать). Усовершенствованные блоки DVI и традиционная полноценная поддержка двух мониторов. В общем, грех на что-либо жаловаться.
Наконец, последняя, пятая группа усовершенствований - это чисто технологические новинки. В первую очередь, конечно же, новый технологический процесс 90-нм low-k, позволивший разместить 320 млн. транзисторов (да-да, детище ATI с шестнадцатью конвейерами переплюнуло по сложности даже nVidia G70 с его двадцатью четырьмя конвейерами!) на чуть меньшей, чем у конкурента, площади ядра и сыгравший свою роль в увеличении тактовой частоты R520. Тут все очевидно и особых комментариев, думаю, не требует
5 октября была анонсирована целая линейка графических ускорителей, основывающихся на новой архитектуре. Их характеристики приведены в таблице.
Как видим, графические ускорители одного вроде бы семейства радикальнейшим образом отличаются друг от друга. Особенно выделяется R520 (Radeon X1800) - он просто наголову превосходит ближайшего «конкурента» новой линейки, словно это два абсолютно разных процессора! Вот она, гибкость новой архитектуры: как захотели - так и сделали. И сверхнавороченный, и скромный процессор - на основе одних и тех же подходов. Впечатляют и тактовые частоты, не опускающиеся ниже 450 МГц у ядра (у GeForce 7800 GTX, для сравнения, «всего» 430 МГц, пусть и гораздо более «полновесных», чем мегагерцы какого-нибудь X1600 XT), и оперативной памяти (1,4-1,5 ГГц - не шутки!). Правда, доступно все это великолепие будет далеко не сразу - с «высокочастотными» карточками придется подождать до ноября-декабря (да и X1800 XL на момент написания статьи в московской рознице еще не встречалась). Однако стараниями нашего замечательного редактора Х, в неравном бою отбившего нам на тестирование топовую карточку нового семейства Radeon X1800 XT, краткое «превью» новой быстродействия архитектуры мы можем сделать уже сейчас.
Что можно сказать про референсную карточку? Из-за внушительной двухслотовой системы охлаждения и солидной длины (как у 7800GTX и двухпроцессорных видеокарт) Radeon X1800 XT встанет не в каждый корпус и будет мешать установке других карт расширения. Но шумит он, как ни странно, довольно слабо, большую часть времени работая на пониженных оборотах (хотя и сильно греясь при этом). Дизайн платы совершенно нетипичный для ATI и больше всего напоминает… продукт nVidia - с расположением чипов памяти вокруг GPU и вынесенной на край мощной схемой питания (из-за которой плата и получилась такой длинной). Карточки младших семейств будут, естественно, скромнее по размерам и обладать уже однослотовой системой расширения.
Скорость… результаты тестов говорят сами за себя: в тяжелых режимах с включенным антиалисингом и высоким разрешением в новейших играх (а для чего еще покупать такую видеокарту, как не для игры с максимальным качеством графики?) Radeon X1800 XT нигде заметно не уступает GeForce 7800GTX (1-2 fps разницы - не в счет), а некоторых игрушках - вырывается далеко вперед. Браво, ATI! Обычно революционные архитектуры поначалу страдают некоторой, гм, «тормознутостью» и не догоняют отлаженные решения предыдущих поколений, однако в данном случае, похоже, ATI удалось этого если не избежать, то по крайней мере минимизировать. Хотя и назвать это победой язык не поворачивается. Во-первых, по мере отключения «наворотов» и перехода к более простым программам и менее тяжелым графическим режимам GeForce 7800GTX уходит вперед. Во-вторых, 7800GTX поддерживает режим SLI, а X1800 XT режим CrossFire - пока нет. В-третьих, 7800GTX продается уже три месяца и успела снять сливки с рынка Hi-End-ускорителей следующего поколения; цены на ее топовые модификации быстро ползут вниз, и редким пока топовым X1000-м картам, которые поначалу будут недешевы, придется несладко. В-четвертых, как уверяют наши коллеги из других изданий, X1300 и особенно X1600, основанные на сильно урезанной архитектуре R520, в своих рыночных нишах, увы, выступают не слишком удачно. Как только сможем достать соответствующие видеокарты, мы эти утверждения обязательно проверим. Наконец, многие анонсированные видеокарты до сих пор очень трудно (или вообще невозможно) купить - довольно неприятный контраст с оперативным выходом на рынок ускорителей семейства GeForce 7800.
Одним словом, карточки у ATI получились неплохие. Вот только не поздновато ли?
Благодарим компанию ATI за предоставление тестового образца ATI Х1800ХТ и компанию AMD за тестовую платформу на Athlon 64 FX-57.
ОГОРОД КОЗЛОВСКОГО: Текиловый рассвет
Прочитав статью Сергея Блохнина, которую он прислал мне в подготавливаемую рубрику «Как это сделать» о домашнем видео ("КТ ##608-609), где написал: «С недавних пор производители снова перешли на режим жесткой экономии: если раньше даже самые дешевые цифровые камеры имели аналоговые входы для оцифровки, то в новых линейках не все модели даже средней ценовой категории такие входы имеют (например, у Panasonic)», - я огорчился. Ведь и впрямь, начиная с 2000 года и до самых последних времен, оцифровщик автоматически входил в состав любых цифровых камер формата miniDV, так что, приобретая одну из таких, вы уже не испытывали потребности в добавочных устройствах и весь свой видеоархив могли перевести в цифру, используя одну эту камеру.
Впрочем, камера как оцифровщик (во всяком случае, моя, от Canon) была инструментом не вполне универсальным. Она, к примеру, напрочь не понимала отечественного SECaM’а, (ну, то есть какой-никакой сигнал идет, однако цветность исчезает напрочь), так что оцифровать что-нибудь прямо с телевизора было невозможно, и даже не только с телевизора, но и - порой - с аналогового видеомагнитофона, записавшего передачу с SECaM-телевизора; я сам удивлялся последней особенности, ибо мне казалось, что, когда SECaM-сигнал пишется на ленту, он свое SECaM-своеобразие теряет. Вторым неудобством использования видеокамеры в качестве оцифровщика можно считать ограниченную емкость ее кассеты: час или час двадцать при установке в режим LP, чего, вообще говоря, спокойнее не делать. Конечно, можно цифровать через камеру насквозь, без записи на кассету, - но приходится, что иной раз жутко неудобно, сдвигать все вместе: телевизор или видеомагнитофон, камеру, компьютер, - или через кассету порциями, которые потом, на компьютере, сливать воедино, - согласитесь, это лишняя головная боль. Так что, если друзья, которым не хочется отказывать, приносят мне полутора-двухчасовую VHS-кассету с просьбой оцифровать и записать на DVD, я обычно звоню приятелю Коле, владельцу видеозахватчика от Pinnacle MovieBox DV, подробно и довольно восторженно описанного мною в «Огороде» "Design by Fa Porsche", он приносит свою машинку, и я оцифровываю любую видеокассету или телепередачу без малейших проблем.
Таким образом, поведение производителей видеокамер плюс проблемы, которые иной раз возникают у них (камер) при оцифровке аналогового сигнала, снова заставляют заинтересованно глянуть на рынок видеозахватчиков, - потому, когда я оказался в магазинчике «Стоик-М» по поводу описанной в «Огороде» «Восточный DocExpress» документ-камеры, я, приглядываясь к витрине на предмет, что бы еще унести с собой на тестирование, остановил взгляд на двух устройствах этого рода: Snazzi* dv.Bridge II (www.snazzi.com) и Instant DVD+DV от aDS Tech.
Первое представляет собою внешний видеозахватчик, очень близкий к вышеупомянутому MovieBox DV, - правда, размерами он вдвое с лишним меньше (что касается дизайна, он, конечно, не от «Порше», но вполне, на мой взгляд, приемлемый: скромно-аскетичный, уверенно металлический) и имеет возможность корректировать как входной, так и выходной видео/аудиосигнал: регулировать яркость, контрастность, цветовую насыщенность (видео) и громкость (аудио) - причем на лету, в процессе оцифровки или (извините за неологизм) расцифровки (encode - decode). Кроме прочего, dv.Bridge II, имея два FireWire-порта, большой и маленький, позволяет писать видео прямо по цифре с камеры на винчестер, - правда, никакие регулировки (яркость и пр.), что естественно, не работают, да и вообще не совсем понятно, зачем вставлять какой-то бридж (род шунта) между цифровой камерой и компьютером.
Я долго думал и над тем, зачем вообще нужны эти самые регулировки параметров при расцифровке материала: во-первых, уж аналоговый видео/аудиовыход любая цифровая видеокамера имеет наверняка, - хотя бы для того, чтоб можно было посмотреть снятое на телевизоре; во-вторых, любое же дисплейное устройство: телевизор, плазменная или жидкокристаллическая панель, проектор наконец, - всегда имеет встроенные средства регулировки этих четырех параметров и еще нескольких, - пока не додумался, что, возможно, кому-нибудь понадобится перегнать слишком темную (вялую, громкую и т. п.) цифровую видеозапись на аналоговый видеомагнитофон, не умеющий корректировать вышеназванные параметры при записи. Хотя вообразить себе человека с такой потребностью мне не удалось: не хватило фантазии.
Корректировка же входного аналогового видео/аудиосигнала перед его оцифровкой (надеюсь, что dv.Bridge II делает это именно перед [да оно и проще!], - иначе теряется смысл, потому что откорректировать уже оцифрованную запись по всем этим - и ряду других - параметров можно на компьютере с гораздо большей свободой в управлении процессом), - такая корректировка, полагаю, смысл имеет: сигнал DV представляет собою последовательность статически, по алгоритму JPEG, сжатых кадриков, а вам, наверное, известно, что редактировать JPEG-картинки - значит, заметно их портить.
Так что если вы часто встречаетесь с необходимостью править снятое на аналоговой камере - dv.Bridge II для вас. (Сережа Блохнин, настолько видеолюбитель, что уже, пожалуй, и видеопрофессионал, прочитав текст, заметил, что править аналоговое видео приходится очень часто, то есть возможности, предоставляемые dv.Bridge II, отнюдь небесполезны.) Если же нет, то вышеупомянутому пиннакловскому MovieBox DV dv.Bridge II заметно проигрывает (хоть он и несколько дешевле: 7600 рублей против 205-230 долларов). Он, как и большинство видеокамер, напрочь не понимает SECAM, а управление им неочевидно и головоломно: осуществляется оно при помощи пяти кнопок, а результаты надо высчитывать по комбинации цветов двух светодиодов.
Помню, несколько лет назад мне принесли на тестирование изделие зеленоградских умельцев: цифровой диктофон по имени, кажется, «Эдик»: он управлялся (а управляющих возможностей было там едва ли не больше сотни) двумя утопленными микроскопическими кнопочками, а о результатах проделанных операций можно было только догадываться. Попытки управлять dv.Bridge II (я все пытался [безуспешно!] сделать как-нибудь так, чтобы SECAM-сигнал все-таки распознался правильно, хотя, сказать честно, никто этой возможности и не обещал), - как раз и вызвали у меня воспоминания о давних опытах с «Эдиком». Впрочем, если перед dv.Bridge II не ставить непосильных и особо сложных задач, - все в нем работает правильно и с умолчальными установками, к которым устройство - после экспериментов - нетрудно вернуть.
Второй оцифровщик, Instant DVD+DV, представляет собой другое семейство видеозахватчиков: он имеет с компьютером USB-интерфейс, по которому и гонит видео, оцифрованное в MPEG-1, MPEG-2 или в MPEG-4. Таких оцифровщиков есть несколько разных моделей, та, что попала в руки мне, - одна из самых крутых: хоть у нее и нет внутреннего TV-тюнера, зато снаружи имеется FireWire-вход, благодаря которому можно переводить в вышеперечисленные форматы не только аналоговое видео/аудио, но и цифровое. Хотя при нынешних скоростях центральных процессоров последнее лучше всего поручить компьютеру. Да и аналоговое видео цифровать в разные MPEG’и предпочтительнее на компьютере, предварительно получив его (видео) наименее испорченный, DV, вариант. Или - если дискового пространства немерено (по гигабайту на минуту), - даже вообще не испорченный, несжатый, воспользовавшись, например, описанным мною как-то Pinnacle Liquid Edition ("Вещание без лицензии").
Почему предпочтительнее? Ну, во-первых, оцифрованное в один из MPEG-форматов видео довольно трудно монтировать, и даже самый простой монтаж, вроде подрезки, приводит к заметному ухудшению видеокартинки. Во-вторых, более или менее серьезные программы видеоредактирования и DVD-авторинга позволяют настроить параметры кодирования гораздо тоньше (здесь, например, после битрейта 8 Мбит/с идет 9, а потом - 10; так что скрупулезно высчитанные мною максимальные для видео 9,544 Мбит/с я поставить не исхитрюсь никак). В-третьих, наконец, Instant DVD+DV позволяет писать звук только в LPCM или MPEG-1 (Layer 2), то есть в бесплатном, самом простом - по отношению к AC3 от Dolby - и не со всеми проигрывателями совместимом формате.
К достоинствам Instant DVD+DV следует отнести и его понимание SECAM-сигнала, и наличие, кроме трех входных каналов (FireWire и аналоговые: один спереди, один - сзади), аналогового выходного, так что можно, кодируя, сразу наблюдать за результатом, подключив, например, телевизор.
Впрочем, есть у Instant DVD+DV и недостаток: после кодирования на компьютере видна в кадре, в правом верхнем углу, мерцающая белая полустрока, которая, правда, при просмотре на телевизоре скрывается.