Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Быстрое сравнение матриц / 14 сообщений из 14, страница 1 из 1
01.12.2006, 12:29:25
    #34169977
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
Есть целочисленный двумерный вектор X[12,8]. Его надо сравнить с 224 такими-же векторами (шаблонами) и найти идентичный.

Пытался оценить среднее количество операций сравнения... (типа X[i,j]==Y[i,j]) ммм... выходит что-то около 10 000.

Как-бы уменьшить количество сравнений?

C уважением
Lord Mayton
...
Рейтинг: 0 / 0
01.12.2006, 12:37:30
    #34170024
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
Идентичный вектор - один или их много?
Насколько сильно отличаются матрицы?
Они приходят извне или строятся самостоятельно?

Вопрос скорее в Программирование
...
Рейтинг: 0 / 0
01.12.2006, 12:42:19
    #34170058
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
TimmИдентичный вектор - один или их много?
Насколько сильно отличаются матрицы?
Они приходят извне или строятся самостоятельно?

Вопрос скорее в Программирование

Он один.

Нет. Не сильно. Я-бы сказал, что шаблоны очень похожи друг на друга.

Они приходят из внешнего файла.
...
Рейтинг: 0 / 0
01.12.2006, 12:50:36
    #34170113
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
mayton TimmИдентичный вектор - один или их много?
Насколько сильно отличаются матрицы?
Они приходят извне или строятся самостоятельно?

Вопрос скорее в Программирование

Он один.

Нет. Не сильно. Я-бы сказал, что шаблоны очень похожи друг на друга.

Они приходят из внешнего файла.
Гы. проверил сколько работает полный перебор.
16 мсек.
Че парица?
...
Рейтинг: 0 / 0
01.12.2006, 12:56:32
    #34170143
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
Timm
Гы. проверил сколько работает полный перебор.
16 мсек.
Че парица?
16 мсек - это что. Время сравнения одной матрицы с 224 другими?
...
Рейтинг: 0 / 0
01.12.2006, 13:07:52
    #34170203
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
mayton Timm
Гы. проверил сколько работает полный перебор.
16 мсек.
Че парица?
16 мсек - это что. Время сравнения одной матрицы с 224 другими?
да.
...
Рейтинг: 0 / 0
01.12.2006, 13:34:28
    #34170331
Зашедший
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
TimmГы. проверил сколько работает полный перебор.
16 мсек.
Че парица?
Нееет, под это дело надо явно добавить новый элемент языка, Matrix, поддерживающий сравнение столбцов в нескольких потоках, использующий хэширование элементов при загрузке, желательно - в нулевом кольце защиты. Чтобы работало быстрее. А, да - еще оно должно использовать прямое чтение из файла путем обращения к контроллеру винчестера.
А пока такого чуда в Яве нету - это плохой язык :)
...
Рейтинг: 0 / 0
01.12.2006, 13:36:44
    #34170340
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
Timm16 мсек - это что. Время сравнения одной матрицы с 224 другими?
Это число умножится на 2000, и мы получим время кодирования одного кадра. Это порядка 3 секунд. В каждом видеоролике - где-то 15 мин = 900 сек. = 13 500 кадров (при скорости записи презентации 15 fps). Тоесть для кодирования целого ролика мне понадобится 13 500 * 3 = 40 500 секунд = приблизительно 11 часов.

Многовато получается. Хотелось-бы побыстрее.
...
Рейтинг: 0 / 0
01.12.2006, 13:50:37
    #34170415
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
mayton Timm16 мсек - это что. Время сравнения одной матрицы с 224 другими?
Это число умножится на 2000, и мы получим время кодирования одного кадра. Это порядка 3 секунд. В каждом видеоролике - где-то 15 мин = 900 сек. = 13 500 кадров (при скорости записи презентации 15 fps). Тоесть для кодирования целого ролика мне понадобится 13 500 * 3 = 40 500 секунд = приблизительно 11 часов.

Многовато получается. Хотелось-бы побыстрее.
2000 итераций - 547 мсек.

Ява по моему не совсем (даже совсем не) подходит для написания видео кодеков. Такие вещи серьезно оптимизируют, используя ассемблер.
...
Рейтинг: 0 / 0
01.12.2006, 13:54:41
    #34170436
Зашедший
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
mayton Timm16 мсек - это что. Время сравнения одной матрицы с 224 другими?
Это число умножится на 2000, и мы получим время кодирования одного кадра. Это порядка 3 секунд. В каждом видеоролике - где-то 15 мин = 900 сек. = 13 500 кадров (при скорости записи презентации 15 fps). Тоесть для кодирования целого ролика мне понадобится 13 500 * 3 = 40 500 секунд = приблизительно 11 часов.

Многовато получается. Хотелось-бы побыстрее.
Эээ... видеокодер на Яве?! Интересное требование у вашего заказчика.
Один из вариантов я уже предложил - реализовать некую хэш-функцию, которая будет вычисляться при загрузке вектора. И сравнивать по хэшу.
...
Рейтинг: 0 / 0
01.12.2006, 13:55:38
    #34170443
Зашедший
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
TimmЯва по моему не совсем (даже совсем не) подходит для написания видео кодеков. Такие вещи серьезно оптимизируют, используя ассемблер.
Подпишусь :)
...
Рейтинг: 0 / 0
01.12.2006, 13:57:32
    #34170459
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
Timm mayton[quot Timm]16 мсек - это что. Время сравнения одной матрицы с 224 другими?
Ява по моему не совсем (даже совсем не) подходит для написания видео кодеков. Такие вещи серьезно оптимизируют, используя ассемблер.
Это не настолько значимая задача, чтобы я писал ее на ассемблере. Просто возникла проблема быстрого создания компактных презентаций для обучения студентов. И я ей занимаюсь.

Зашедший
...сравнение столбцов в нескольких потоках, использующий хэширование элементов при загрузке, желательно - в нулевом кольце защиты. Чтобы работало быстрее. А, да - еще оно должно использовать прямое чтение из файла путем обращения к контроллеру винчестера.

Ну.. это вы загнули. Особенно про нулевое кольцо защиты. И файлы мне напрямую читать не надо. Тоесть читать-то их надо, но здесь скорость чтения не будет узким горлом.

А по поводу хеширования - это мысль. Я даже об этом не подумал. Ведь поиск можно свалить на механизмы HashTable. Главное правильно сформировать ключик.
...
Рейтинг: 0 / 0
01.12.2006, 14:01:40
    #34170475
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
mayton Timm[quot mayton][quot Timm]16 мсек - это что. Время сравнения одной матрицы с 224 другими?
Ява по моему не совсем (даже совсем не) подходит для написания видео кодеков. Такие вещи серьезно оптимизируют, используя ассемблер.
Это не настолько значимая задача, чтобы я писал ее на ассемблере. Просто возникла проблема быстрого создания компактных презентаций для обучения студентов. И я ей занимаюсь.
MS PowerPoint. Не парьтесь.
...
Рейтинг: 0 / 0
01.12.2006, 14:13:02
    #34170541
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстрое сравнение матриц
Я нарисовал метод преобразования матрицы (буква "A") в набор строковых ключиков.
01234567ключ0x000x00110x1811110x3C11110x6611110x6611110x661111110x7E11110x6611110x660x000x00

Для всей матрицы - 0000183C6666667E666600

Дальше дело техники.

З.Ы. Надо еще как-то подкрутить настройки хеша, чтоб коллизий было меньше.

Пошел писать.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Быстрое сравнение матриц / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]