Средства и приемы обработки видео

Содержание

Слайд 2

08/20/2023

Содержание:

MMX технология
Программа VirtualDub
Программа AviSynth
Программа Mathcad

08/20/2023 Содержание: MMX технология Программа VirtualDub Программа AviSynth Программа Mathcad

Слайд 3

MMX™ Technology

Потоковая обработка данных. Средство существенного увеличения скорости работы видеофильтров.

MMX™ Technology Потоковая обработка данных. Средство существенного увеличения скорости работы видеофильтров.

Слайд 4

08/20/2023

Курс по Intel MMX

В слайдах использованы рисунки из курса по MMX компании

08/20/2023 Курс по Intel MMX В слайдах использованы рисунки из курса по
Intel, который настоятельно рекомендуется пройти.
Курс можно скачать по адресу:
http://graphics.cs.msu.su/courses/mdc2004/library/mintro.exe
(размер: 14 МБ)
http://graphics.cs.msu.su/courses/mdc2004/library/runcbt.exe
(размер: 2,7 МБ)

Слайд 5

08/20/2023

История возникновения

Технология MMX была разработана компанией Intel и является своего рода развитием

08/20/2023 История возникновения Технология MMX была разработана компанией Intel и является своего
команд процессора.
Технология базируется на архитектуре процессора Pentium® и позволяет ускорить вычисления за счет параллельной обработки данных.

Слайд 6

08/20/2023

Где применяется технология MMX™ ?

Технология MMX используется во многих мультимедийных приложениях, например

08/20/2023 Где применяется технология MMX™ ? Технология MMX используется во многих мультимедийных
при обработке видео, звука и графики (ускорение цифровой обработки сигналов и данных).
Забавно, что MMX команды сегодня применяются даже при заполнении и копировании буферов операционной системы.

Слайд 7

08/20/2023

MMX™ технология

В технологии MMX применяются инструкции использующие особенности архитектуры нового процессора.
MMX инструкции

08/20/2023 MMX™ технология В технологии MMX применяются инструкции использующие особенности архитектуры нового
работают как со знаковой так и с беззнаковой арифметикой.
Появились 8 новых регистров с соответствующими именами MM0…MM7.

Слайд 8

08/20/2023

Типы данных в MMX™

В 64 бита можно поместить от 8 «переменных»

08/20/2023 Типы данных в MMX™ В 64 бита можно поместить от 8
размером по 8 бит (байтов) и до одной «переменной» размером в 64 бита.

Слайд 9

08/20/2023

Система команд MMX™

Система команд MMX состоит из 57 команд, сгруппированных в

08/20/2023 Система команд MMX™ Система команд MMX состоит из 57 команд, сгруппированных
следующие категории:
Команды передачи данных
Арифметические команды
Команды сравнения
Команды преобразования
Логические команды
Команды двига
Команда освободить MMX™ состояние (EMMS)

Слайд 10

08/20/2023

Семантика инструкций MMX™

<команда>[dest,src]

<команда> записывается по следующим правилам:
Команда начинается с “P”

08/20/2023 Семантика инструкций MMX™ [dest,src] записывается по следующим правилам: Команда начинается с
(кроме movd, movq )
“US” работа с без знаковой арифметикой
“S” или “SS” работа со знаковой арифметикой
“B”, “W”, “D”, “Q” соответственно обозначают тип с которым работает инструкция

Слайд 11

08/20/2023

Арифметика с насыщением

MMX технология поддерживает арифметику с насыщением (saturated arithmetics).
В

08/20/2023 Арифметика с насыщением MMX технология поддерживает арифметику с насыщением (saturated arithmetics).
режиме с насыщением, результаты операции, которые переполняются сверху или снизу отсекаются к границе datarange соответствующего типа данных
В режиме без насыщения, результаты, которые переполняются как в обычной процессорной арифметике (см. курсы по С и ассемблеру).

Слайд 12

08/20/2023

Таблица

08/20/2023 Таблица

Слайд 13

08/20/2023

Команды передачи данных (пример)

MOVD (Переместить 32 Бита) передает 32 бита упакованных

08/20/2023 Команды передачи данных (пример) MOVD (Переместить 32 Бита) передает 32 бита
данных из памяти в регистры MMX и обратно, или из целочисленных регистров в регистры MMX и обратно.
MOVQ (Переместить 64 Бита) передает 64 бита упакованных данных из памяти в регистры MMX и обратно, или между регистрами MMX.

Слайд 14

08/20/2023

Пример арифметических инструкций

08/20/2023 Пример арифметических инструкций

Слайд 15

08/20/2023

Пример для сложения типа Byte

08/20/2023 Пример для сложения типа Byte

Слайд 16

08/20/2023

Пример для сложения типа Word

08/20/2023 Пример для сложения типа Word

Слайд 17

08/20/2023

Пример для сравнения

08/20/2023 Пример для сравнения

Слайд 18

08/20/2023

Пример кода с MMX™

1 movq MM0, [a_vector]
2 movq MM1, [b_vector]
3 pmaddwd

08/20/2023 Пример кода с MMX™ 1 movq MM0, [a_vector] 2 movq MM1,
MM0, MM1
4 paddd MM7, MM0
5 add [a_vector], 8
6 add [b_vector], 8
7 sub [count], 4
8 jnz loop
9 movq MM0, MM7
10 psrlq MM7, 32
11 paddd MM7, MM0
12 movd mem_vdp, MM7

Расчет скалярного произведения:

Слайд 19

08/20/2023

Пример кода с MMX™

1 movq MM0, [a_vector]
2 movq MM1, [b_vector]

A_vector

MM0

08/20/2023 Пример кода с MMX™ 1 movq MM0, [a_vector] 2 movq MM1, [b_vector] A_vector MM0

Слайд 20

08/20/2023

Пример кода с MMX™

3 pmaddwd MM0, MM1

MM0

MM1

pmadwd

MM0

08/20/2023 Пример кода с MMX™ 3 pmaddwd MM0, MM1 MM0 MM1 pmadwd MM0

Слайд 21

08/20/2023

Пример кода с MMX™

4 paddd MM7, MM0

MM7

MM0

paddd

MM7

08/20/2023 Пример кода с MMX™ 4 paddd MM7, MM0 MM7 MM0 paddd MM7

Слайд 22

08/20/2023

Пример кода с MMX™

5 add [a_vector], 8
6 add [b_vector], 8

a_vector

08/20/2023 Пример кода с MMX™ 5 add [a_vector], 8 6 add [b_vector], 8 a_vector

Слайд 23

08/20/2023

Пример кода с MMX™

7 sub [count], 4

Счетчик уменьшаем на 4.
Уже

08/20/2023 Пример кода с MMX™ 7 sub [count], 4 Счетчик уменьшаем на
обработано 4 элемента

8 jnz loop

Продолжается цикл если ещё осталось что обрабатывать

Слайд 24

08/20/2023

Пример кода с MMX™

9 movq MM0, MM7

MM0

08/20/2023 Пример кода с MMX™ 9 movq MM0, MM7 MM0

Слайд 25

08/20/2023

Пример кода с MMX™

10 psrlq MM7, 32

MM7

MM7

shift

08/20/2023 Пример кода с MMX™ 10 psrlq MM7, 32 MM7 MM7 shift

Слайд 26

08/20/2023

Пример кода с MMX™

11 paddd MM7, MM0

MM7

MM0

paddd

MM7

08/20/2023 Пример кода с MMX™ 11 paddd MM7, MM0 MM7 MM0 paddd MM7

Слайд 27

08/20/2023

Содержание:

MMX технология
Программа VirtualDub
Программа AviSynth
Программа Mathcad

08/20/2023 Содержание: MMX технология Программа VirtualDub Программа AviSynth Программа Mathcad

Слайд 28

VirtualDub

Лучшая программа для работы с потоковым видео

VirtualDub Лучшая программа для работы с потоковым видео

Слайд 29

08/20/2023

План

О программе VirtualDub
Как писать фильтры
Пример
Итоги

08/20/2023 План О программе VirtualDub Как писать фильтры Пример Итоги

Слайд 30

08/20/2023

Что это такое?

VirtualDub является бесплатно распространяемой программой.
Это САМАЯ распространенная программа для

08/20/2023 Что это такое? VirtualDub является бесплатно распространяемой программой. Это САМАЯ распространенная
поточной обработки видео (в т.ч. Подготовки MPEG-4 фильмов с DVD).
У неё открытые исходники, что позволяет модифицировать исходный код программы.

Слайд 31

08/20/2023

Где можно скачать и узнать о VirtualDub
http://virtualdub.org/
Это официальный сайт VirtualDub. Здесь можно

08/20/2023 Где можно скачать и узнать о VirtualDub http://virtualdub.org/ Это официальный сайт
скачать последние версии и документацию по использованию.

Слайд 32

08/20/2023

Область применения

Осуществляет просмотр и базовое редактирование видео
Позволяет конвертировать в разные форматы видео

08/20/2023 Область применения Осуществляет просмотр и базовое редактирование видео Позволяет конвертировать в
и аудио треки
Обрабатывает видео (и аудио) с использованием фильтров
Осуществляет восстановление файлов
Позволяет указывать в скрипте автоматическую обработку фильмов
Осуществляет качественный захват видео с камеры

Слайд 33

08/20/2023

Внешний вид VirtualDub

08/20/2023 Внешний вид VirtualDub

Слайд 34

08/20/2023

Панель управления

Воспроизвести
Исходное видео

Сэмплинг

Воспроизвести
с фильтром

Перемотка

стоп

08/20/2023 Панель управления Воспроизвести Исходное видео Сэмплинг Воспроизвести с фильтром Перемотка стоп

Слайд 35

08/20/2023

Меню File

Работа с файлами: сохранение, загрузка, сохранение скриптов и т.п.

Работа Job

08/20/2023 Меню File Работа с файлами: сохранение, загрузка, сохранение скриптов и т.п.
– создание последовательных указаний для VirtualDub

Слайд 36

08/20/2023

Меню Edit

Более обширные возможности по перемотки видео вплоть до перехода на

08/20/2023 Меню Edit Более обширные возможности по перемотки видео вплоть до перехода
указанный номер кадра.

Работа с сэмплингами в расширенном режиме.

Слайд 37

08/20/2023

Меню Video

Обработка видео с использованием фильтров. Подключение и указание параметров

Проверка на

08/20/2023 Меню Video Обработка видео с использованием фильтров. Подключение и указание параметров
наличие ошибочных кадров в видео потоке.

Слайд 38

08/20/2023

Меню Audio

Установка параметров звука и фильтров которые будут подключены в момент

08/20/2023 Меню Audio Установка параметров звука и фильтров которые будут подключены в
обработки.

Установка режима:
Прямое копирование потока
Режим полной обработки

Слайд 39

08/20/2023

Меню Option

Просмотр Log файлов
Установка параметров кодеков
Отображение потоков видео
Формат отображаемой информации
Расположения окон

08/20/2023 Меню Option Просмотр Log файлов Установка параметров кодеков Отображение потоков видео

Слайд 40

08/20/2023

Как писать фильтры для VirtualDub

Фильтр для VirtualDub представляет собой DLL библиотеку

08/20/2023 Как писать фильтры для VirtualDub Фильтр для VirtualDub представляет собой DLL
которая имеет вид:
<имя>. vdf
После этого можно скопировать его в папку Plugins и подключить в программе как фильтр.

Слайд 41

08/20/2023

Структура файла *.vdf

Файл должен содержать минимальный набор функций для работы. Те

08/20/2023 Структура файла *.vdf Файл должен содержать минимальный набор функций для работы.
функции которые используются должны быть описаны в специальной структуре. Если функция не используется, то в поле должно стоять NULL.

Слайд 42

08/20/2023

Структура

typedef struct FilterDefinition{
. . .
FilterInitProc initProc; FilterDeinitProc deinitProc; FilterRunProc runProc;
FilterParamProc paramProc; FilterConfigProc configProc; FilterStringProc stringProc; FilterStartProc startProc; FilterEndProc endProc;

08/20/2023 Структура typedef struct FilterDefinition{ . . . FilterInitProc initProc; FilterDeinitProc deinitProc;
FilterScriptStrProc fssProc;
. . .
} FilterDefinition;

Слайд 43

08/20/2023

Пример

Разберем пример программы которая Blue компоненту уменьшает в два раза, а

08/20/2023 Пример Разберем пример программы которая Blue компоненту уменьшает в два раза,
Green оставляет без изменения.
int runProc(const FilterActivation *fa, const FilterFunctions *ff);
Это аналог процедуры main() в С++, VirtualDub начнет действия с вызова этой функции при обработке кадра (не учитываем вызов инетфейса).

Слайд 44

08/20/2023

RunProc Фильтр, уменьшающий Blue в два раза

{ . . .
src = (Pixel32

08/20/2023 RunProc Фильтр, уменьшающий Blue в два раза { . . .
*)fa->src.data;
dst = (Pixel32 *)fa->dst.data;
h = fa->src.h;
do {
w = fa->src.w;
do { old_pixel = *src++;
new_pixel = (old_pixel & 0xFF0000) + ((old_pixel & 0x0000FE)>>1) + 0x008000;
*dst++ = new_pixel; }
while(--w);
src = (Pixel32 *)((char *)src + fa -> src.modulo);
dst = (Pixel32 *)((char *)dst +
fa -> dst.modulo);
}
while(--h);
return 0;
}

Слайд 45

08/20/2023

Служебные функции

Для VirtualDub надо включить 2 функции они служебные и не

08/20/2023 Служебные функции Для VirtualDub надо включить 2 функции они служебные и
несут большой смысловой нагрузки, но их надо указывать для совместимости с VirtualDub:
extern "C" int __cdecl VirtualdubFilterModuleInit2(FilterModule *fm, const FilterFunctions *ff, int& vdfd_ver, int& vdfd_compat);
extern "C" void __cdecl VirtualdubFilterModuleDeinit(FilterModule *fm, const FilterFunctions *ff);

Слайд 46

08/20/2023

Описание структуры

struct FilterDefinition {
NULL,NULL,NULL, // next, prev
"tutorial", // name
"blue color",

08/20/2023 Описание структуры struct FilterDefinition { NULL,NULL,NULL, // next, prev "tutorial", //
// desc
"anyone", // maker
NULL, // private_data
0, // inst_data_size
. . .
Описание атрибутов относящиеся к интерфейсу фильтра, подсказка для пользователя при подключении фильтра.

Слайд 47

08/20/2023

Описание структуры

//Описание используемых функций.
. . .
NULL, // initProc
NULL, // deinitProc
tutorialRunProc, //

08/20/2023 Описание структуры //Описание используемых функций. . . . NULL, // initProc
runProc
NULL, // paramProc
NULL, // configProc
NULL, // stringProc
NULL, // startProc
NULL, // endProc
NULL, // script_obj
NULL, // fssProc };

Слайд 48

08/20/2023

Компиляция

После компиляции файл будет иметь вид *.dll
Переименовать файл в *.vdf (мы

08/20/2023 Компиляция После компиляции файл будет иметь вид *.dll Переименовать файл в
создавали
проект для написания DLL библиотеки)
Поместить его в папку Plugins
Подключить в опциях VirtualDub фильтр

Слайд 49

08/20/2023

Итоги

Плюсы:
Программа является бесплатной и с открытыми исходниками
Все проблемы с открытием видео и

08/20/2023 Итоги Плюсы: Программа является бесплатной и с открытыми исходниками Все проблемы
его сохранением уже решены
Возможность загрузки фильтров
Программирование ведется на С++ что позволяет пользоваться весьма гибким аппаратом для реализации своих алгоритмов

Слайд 50

08/20/2023

Содержание:

MMX технология
Программа VirtualDub
Программа AviSynth
Программа Mathcad

08/20/2023 Содержание: MMX технология Программа VirtualDub Программа AviSynth Программа Mathcad

Слайд 51

AviSynth

Скриптовый язык потоковой обработки видео

AviSynth Скриптовый язык потоковой обработки видео

Слайд 52

08/20/2023

План

О программе AviSynth
Операторы
Семантика и прагматика операций:
- логические
- математические
Классификаций функций AviSynth
Использование Plugins
Итоги

08/20/2023 План О программе AviSynth Операторы Семантика и прагматика операций: - логические

Слайд 53

08/20/2023

Что это такое?

AviSynth является программой-источником (FrameServer) которую используют различные приложения для обработки

08/20/2023 Что это такое? AviSynth является программой-источником (FrameServer) которую используют различные приложения
видео.

Также AviSynth обладает развитым скриптовым языком и механизмом Plug-In, позволяющим в потоке обрабатывать фильмы.

Слайд 54

08/20/2023

Как работает AviSynth

Использование AviSynth состоит из двух этапов:
создается простой текстовый документ который

08/20/2023 Как работает AviSynth Использование AviSynth состоит из двух этапов: создается простой
содержит последовательность команд – скрипт;
запускается приложением обрабатывающее видео, например, можно запустить его VirtualDub или Windows Media Player.

Слайд 55

08/20/2023

Почему удобен AviSynth

AviSynth является открытым и свободно распространяющимся проектом. Исходники можно исправлять

08/20/2023 Почему удобен AviSynth AviSynth является открытым и свободно распространяющимся проектом. Исходники
и вносить в них те изменения, которые вам нужны. Этот проект только стартовал, и есть уникальная возможность поучаствовать в нём.

Слайд 56

08/20/2023

Где можно скачать и узнать о AviSynth

Официальный сайт AviSynth: http://www.avisynth.org/ Здесь можно

08/20/2023 Где можно скачать и узнать о AviSynth Официальный сайт AviSynth: http://www.avisynth.org/
вносить свои предложения, а также предложена весьма интересная идея – корректировать сайт вместе с разработчиками.

Слайд 57

08/20/2023

Типы доступные в AviSynth

08/20/2023 Типы доступные в AviSynth

Слайд 58

08/20/2023

Логические операции AviSynth

08/20/2023 Логические операции AviSynth

Слайд 59

08/20/2023

Логические операции AviSynth

08/20/2023 Логические операции AviSynth

Слайд 60

08/20/2023

Пример

a = 20 - 5 - 5
Результатом является 10

b = (a==true)

08/20/2023 Пример a = 20 - 5 - 5 Результатом является 10
? 1 : 2
Аналог операции в С++ «:?»
В эквивалентном виде:
if (a==true) then b=1 else b=2 

Слайд 61

08/20/2023

Классификация функций в AviSynth

Численные функции
Строковые функции
Функции перевода
Проверочные функции
Другие типы функций
Остановимся на некоторых

08/20/2023 Классификация функций в AviSynth Численные функции Строковые функции Функции перевода Проверочные
из их подробнее. Все эти функции а также многие другие приведены на сайте.

Слайд 62

08/20/2023

Численные функции

Floor (float) Переводит float в int до ближайшего снизу
Floor(1.2) = 1

08/20/2023 Численные функции Floor (float) Переводит float в int до ближайшего снизу
Floor(1.6) = 1 Floor(-1.2) = -2 Floor(-1.6) = -2

Слайд 63

08/20/2023

Численные функции

Round (float) Переводит float в int округляя результат
Round(1.2) = 1 Round(1.6) =

08/20/2023 Численные функции Round (float) Переводит float в int округляя результат Round(1.2)
2 Round(-1.2) = -1 Round(-1.6) = -2

Слайд 64

08/20/2023

Численные функции

Стандартные математические функции:
Sin (float)
Cos (float)
Pi ()
Log (float)
Exp (float)
Pow (float base,

08/20/2023 Численные функции Стандартные математические функции: Sin (float) Cos (float) Pi ()
float power)
Sqrt (float)

Слайд 65

08/20/2023

Численные функции

Spline (float X,  x1,y1, x2,y2, ...., bool "cubic")
Пример:
Spline(5, 0,0, 10,10, 20,0,

08/20/2023 Численные функции Spline (float X, x1,y1, x2,y2, ...., bool "cubic") Пример:
false) = 5 Spline(5, 0,0, 10,10, 20,0, true) = 7

Слайд 66

08/20/2023

Работа со строками


UCase("AviSynth") Буквы в верхний регистр
LCase("AviSynth") Буквы в нижний регистр
RevStr("AviSynth")

08/20/2023 Работа со строками UCase("AviSynth") Буквы в верхний регистр LCase("AviSynth") Буквы в
Инверсия букв
StrLen("AviSynth") Длина строки

Слайд 67

08/20/2023

Пример


UCase("AviSynth") = "AVISYNTH"
LCase("AviSynth") = "avisynth"
RevStr("AviSynth") = "htnySivA"
StrLen("AviSynth") = 8

08/20/2023 Пример UCase("AviSynth") = "AVISYNTH" LCase("AviSynth") = "avisynth" RevStr("AviSynth") = "htnySivA" StrLen("AviSynth") = 8

Слайд 68

08/20/2023

Функция перевода

Пример:
Value( "-2.7" ) = -2.7

Value(string)- Переводит строку в int

08/20/2023 Функция перевода Пример: Value( "-2.7" ) = -2.7 Value(string)- Переводит строку в int

Слайд 69

08/20/2023

Функции проверки типа

Функции проверки типа переменных:
IsBool (var)
IsInt (var)
IsFloat (var)
IsString (var)
IsClip (var)

08/20/2023 Функции проверки типа Функции проверки типа переменных: IsBool (var) IsInt (var)

Слайд 70

08/20/2023

Пример

a = AVISource("d:\capture.00.avi")
b = AVISource("d:\capture.01.avi")
c = AVISource("d:\capture.02.avi")
sound_track=AVSource("d:\audio.wav")
AudioDub(a+b+c, sound_track)

В переменные

08/20/2023 Пример a = AVISource("d:\capture.00.avi") b = AVISource("d:\capture.01.avi") c = AVISource("d:\capture.02.avi") sound_track=AVSource("d:\audio.wav")
a,b,c записываются параметры трех видео роликов. Которые потом будут показаны последовательно друг за другом с общей звуковой дорожкой которую мы тоже предварительно загрузили.

Слайд 71

08/20/2023

Фильтры

В AviSynth можно использовать фильтры написанные уже раньше. Для этого их надо

08/20/2023 Фильтры В AviSynth можно использовать фильтры написанные уже раньше. Для этого
подключить специальной функцией:
LoadPlugin ("filename"[,...])
Фильтры в AviSynth имеют вид:
<имя>.avs

Слайд 72

08/20/2023

Фильтры

AviSynth позволяет подключить фильтры написанные в VirtualDub. Единственное ограничение – необходимый формат

08/20/2023 Фильтры AviSynth позволяет подключить фильтры написанные в VirtualDub. Единственное ограничение –
видео RGB32. Но если будет другой формат можно воспользоваться встроенными в AviSynth функциями для перевода в нужный формат.

Слайд 73

08/20/2023

Использование фильтров VirtualDub

LoadVirtualDubPlugin ("filename","filtername", preroll)
Подключение фильтра VirtualDub:
Первый параметр <имя>.vdf плагин VirtualDub
Второй параметр

08/20/2023 Использование фильтров VirtualDub LoadVirtualDubPlugin ("filename","filtername", preroll) Подключение фильтра VirtualDub: Первый параметр
имя файла с конвертированного по AviSynth (<имя>.avs)
Preroll показывает сколько кадров необходимо держать в буфере (например, для деинтерлейсинга)

Слайд 74

08/20/2023

Пример

Import("d:\vdub_filters.avs")
AviSource("d:\filename.avi")
ConvertToRGB32() # Там где надо
VD_SmartBob(1, 0, 10, 1)
ConvertBackToYUY2() # Там где надо
VD_SmartBob(1,

08/20/2023 Пример Import("d:\vdub_filters.avs") AviSource("d:\filename.avi") ConvertToRGB32() # Там где надо VD_SmartBob(1, 0, 10,
0, 10, 1) – функция осуществляющая подгрузку плагина с соответствующими параметрами для данного фильтра.

Слайд 75

08/20/2023

Загрузка фильтра деинтерлейсинга

function VD_SmartBob(clip ''clip'', bool ''show_motion'', int ''threshold'', bool ''motion_map_denoising'')
{
LoadVirtualdubPlugin("d:\bob.vdf","_VD_SmartBob", 1)
Return

08/20/2023 Загрузка фильтра деинтерлейсинга function VD_SmartBob(clip ''clip'', bool ''show_motion'', int ''threshold'', bool
clip.SeparateFields._VD_SmartBob(clp.GetParity?1:0,default(show_motion,false)?1:0, default(threshold,10), default(motion_map_denoising,true)?1:0)
}

Слайд 76

08/20/2023

Итоги

AviSynth является весьма гибким средством применительно к любому приложению работающему с видео.

08/20/2023 Итоги AviSynth является весьма гибким средством применительно к любому приложению работающему
Возможность работы с исходниками позволяет получить при правильном подходе весьма ощутимые результаты.
Основное преимущество – возможность СУЩЕСТВЕННО сэкономить время при массовых операциях с фильмами.

Слайд 77

08/20/2023

Содержание:

MMX технология
Программа VirtualDub
Программа AviSynth
Программа Mathcad

08/20/2023 Содержание: MMX технология Программа VirtualDub Программа AviSynth Программа Mathcad

Слайд 78

Mathcad

Удобнейшее средство визуализации данных. Средство предварительной проработки фильтров.

Mathcad Удобнейшее средство визуализации данных. Средство предварительной проработки фильтров.

Слайд 79

08/20/2023

Введение в Mathcad Достоинства mathcad’a

Почему стоит использовать Mathcad:
Промежуток времени для получения первых результатов

08/20/2023 Введение в Mathcad Достоинства mathcad’a Почему стоит использовать Mathcad: Промежуток времени
работы алгоритма значительно меньше по сравнению с разработкой в какой-либо среде
Каждое изменение текста программы динамически влияет на результат
Поиск ошибок осуществляется быстрее, чем в исходном тексте программы на к-л. языке программирования
Реализовав основную часть алгоритма в mathcad’e, время написания реальной программы уменьшается на порядок
Множество реализованных, готовых к использованию функций

Слайд 80

08/20/2023

Введение в Mathcad (2) Достоинства mathcad’a

Почему стоит использовать Mathcad:
Исходный код программы выводится в

08/20/2023 Введение в Mathcad (2) Достоинства mathcad’a Почему стоит использовать Mathcad: Исходный
графическом режиме, и потому выглядит нагляднее, чем в текстовом редакторе
Как правило, для реализации к-л. задачи в mathcad’e требуется написать меньше исходного теста, чем например в С++
Реализовав основную часть алгоритма в mathcad’e, время написания реальной программы уменьшается на порядок
Отличная помощь: все описано кратко и понятно
Простота использования
Индексация в массиве начинается с нуля

Слайд 81

08/20/2023

Пример функции чтения Сбоку - изображение с NEDI

08/20/2023 Пример функции чтения Сбоку - изображение с NEDI

Слайд 82

08/20/2023

Разработка фильтра Чтение изображения

Визуализация матрицы – Ctrl + T

08/20/2023 Разработка фильтра Чтение изображения Визуализация матрицы – Ctrl + T

Слайд 83

08/20/2023

Разработка фильтра Показ компонент изображения

08/20/2023 Разработка фильтра Показ компонент изображения

Слайд 84

08/20/2023

Разработка фильтра Перевод изображения в YUV

08/20/2023 Разработка фильтра Перевод изображения в YUV
Имя файла: Средства-и-приемы-обработки-видео.pptx
Количество просмотров: 360
Количество скачиваний: 0