Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.02.05;
Скачать: CL | DM;

Вниз

Кеширование графиков большого объема   Найти похожие ветки 

 
noH@ker   (2009-04-22 19:54) [0]

Например... Если выдернуть выборки из "Wave" файла и отобразить (через лёгкую интерполяцию, чтоб не потерять пики) на контроле... Размер исходника (имеется ввиду выборок) очень большой и при обращении к нему для обработки (при прокрутке и масштабировании нужно изображение графика постоянно обновлять) проявляются большие накладные расходы (проц. время, обращение к жестаку)!

Вопрос: Можно ли устроить какое-нибудь кеширование (или что-нибудь, чтоб ускорить процесс) на подобии того, как это делает SoundForge и любой другой редактор звука?


 
Сергей М. ©   (2009-04-23 10:56) [1]


> очень большой


Например ?


 
noH@ker   (2009-04-23 20:12) [2]

Было около 100 мб. Представте себе масштабирование в реальном времени...
Интерполяция всего участка (все 100) и ещё отрисовка, если захочется просмотреть весь трэк.
У меня всё встанет!


 
Сергей М. ©   (2009-04-23 20:49) [3]

Видимо ты все неправильно делаешь - и интерполяцию и отрисовку. И кеширование здесь совершенно ни причем.


 
noH@ker ©   (2009-04-23 23:32) [4]


> Видимо ты все неправильно делаешь


Неправильно?? 20 мин аудио уместить в 320 пикселов по горизонтали сохранив все пики... Масштабировать на события прокрутки колеса мыши... Жёсткий не взлетит? В SoundForge это выполняется без труда! Или может неправильно мыслю на эту тему?


 
Сергей М. ©   (2009-04-24 08:11) [5]


> может неправильно мыслю на эту тему?


Мыслишь-то может и правильно, а вот реализуешь свои мысли в алгоритме наверняка неправильно, оттого и проблемы имеешь.

Для построения и визуализации интерполяционного графика с 320-ю отсчетами по шкале времени вовсе не обязательно считывать (да еще и кешировать) все значения из файла.


 
noH@ker ©   (2009-04-24 12:46) [6]


> вовсе не обязательно считывать (да еще и кешировать) все
> значения из файла.


Скажем... Может и да, но чтобы увидеть пики при больших масштабах скажем 200:1, нужно их сначала найти. Так? Таблица? Не совсем улавливаю суть процетированной фразы... Вы не могли бы объяснить.


 
Сергей М. ©   (2009-04-24 14:06) [7]


> чтобы увидеть пики при больших масштабах скажем 200:1, нужно
> их сначала найти. Так?


Так.

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


 
noH@ker ©   (2009-04-24 14:46) [8]

Ага! Спасибо! Значит мысль была ясна! Как мне кажется, в таблицу надо загонять пики только при достижении "критического" масштабирования. Т.е. где без таблицы надо было бы прочитать весь файл. Так чтоли... И не хранить те пики для тех масштабирований, где ещё жёсткий позволяет читать экие фремы с файла и быстро их выводить в граф. Или мне это только кажется? Было бы не плохо от мастеров услышать некий практический совет... (без укора)


 
noH@ker ©   (2009-04-24 17:37) [9]


> Сергей М. ©


Всё равно, спасибо!!!


 
Sapersky   (2009-04-24 18:04) [10]

Ну как действуют продвинутые картиночные вьюеры вроде AcdSee - читают сначала уменьшенную в 2,4,8 раз копию Jpeg под размер экрана, при необходимости подгружают копию нужного масштаба... данные у них 2D, а не 1D, но ничто не мешает использовать тот же принцип - читать файл с определённым шагом в зависимости от тек. степени масштабирования (разве что экономия памяти с 1D меньше). Точнее, прочитать один раз - сложить в кэш (благо "прореженная" копия файла весит относительно немного).
Что касается пиков... ну, найти их заранее, прописать в таблицу и использовать "адаптивный" шаг чтения файла, там где пики - читать чаще... хотя пересчитывать всё это дело в корректный масштаб при выводе на экран будет довольно муторно.



Страницы: 1 вся ветка

Текущий архив: 2017.02.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.003 c
15-1457597209
Pavia
2016-03-10 11:06
2017.02.05
Учебник по HTML и CSS


8-1240415648
noH@ker
2009-04-22 19:54
2017.02.05
Кеширование графиков большого объема


2-1433112204
Германн
2015-06-01 01:43
2017.02.05
IPersistFile::Save method


11-1245091617
Lirk
2009-06-15 22:46
2017.02.05
Длина потока...


1-1348130067
ТС
2012-09-20 12:34
2017.02.05
Указатель на шаблонный тип в шаблонном интерфейсе