Свежие комментарии

Title Comment
При всём уважении к Мартину, "The Lightroom RGB space uses a

При всём уважении к Мартину, "The Lightroom RGB space uses a native bit depth of 16 bits per channel, which means that Lightroom is able to process up to 32,000 levels of tonal information per color channel" - звучит по меньшей мере странно. Или 16 бит, или 32 тысячи уровней. Кроме того, речь не идёт собственно о конвертации - речь идёт вообще о программе. Для 14 битов данных в канале 15 бит позволят не более одного стопа "экспокоррекции" в конверторе. Для 4 стопов очевидно нужно 18 бит. Добавьте баланс белого - на него уходит до 3 бит. Так что менее чем с 21 битом делать в продуманном конверторе просто нечего - начинается вылет светов, как это имеет место быть в Nikon Capture.

В дельфи - понятия не имею. Вообще в Win32 - через SetThread

В дельфи - понятия не имею. Вообще в Win32 - через SetThreadAffinityMask

помоги пожалуйста с одним вопросом: есть 2 потока. Как вруч

помоги пожалуйста с одним вопросом:
есть 2 потока. Как вручную распределить потоки по разным ядрам?
Среда программирования Delphi
процессор 2-х или 4-х ядерный

под компаундом должна быть маленькая однокристалка

под компаундом должна быть маленькая однокристалка

Вот ссылка по которой написано что внутри у лайтрума 16 бит

Вот ссылка по которой написано что внутри у лайтрума 16 бит на цвет http://www.peachpit.com/articles/article.aspx?p=1181453

И якобы это выдержка из книги выпущенно Adobe Press:
Adobe Photoshop Lightroom Book, The: The Complete Guide for Photographers
* By Martin Evening
* Published Mar 13, 2007 by Adobe Press.
# Pages: 352
# Edition: 1st.
# ISBN-10: 0-321-38543-8
# ISBN-13: 978-0-321-38543-7

А разницы, видимо, нет. Вот на выходных вскрыл один такой пе

А разницы, видимо, нет. Вот на выходных вскрыл один такой переходник из спортивного интереса (чтобы самому увидеть :) и понял что разницы видимо нет - внутри только провода от USB до PS/2 разъёма, залитые компаундом.
Вся логика, как писал motto, в клаве/мышке.

Ну вот, 40, а не 160.

Ну вот, 40, а не 160.

Пластиковые бленды на широкоугольники, да и на широкие/обычн

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

Но если оптики мало - это сильно дороже. Да и вообще, как пейзажное решение (штатив, ожидание света) - нормально, а как уличное - будет выглядеть странно. Хотя выглядят они реально круто (tm)

На самом деле компендиум на объективе складывается в довольн

На самом деле компендиум на объективе складывается в довольно плоскую конструкцию. Дело вкуса, конечно - но мне он не мешает. Да и функцию бленды компендиум выполняет лучше, чем бленда обычная.

А как снимать пиззажи и не быть любителем бленд?

А как снимать пиззажи и не быть любителем бленд?

Блин, вроде отвечал еще вчера, а ответа не вижу. У меня на

Блин, вроде отвечал еще вчера, а ответа не вижу.

У меня на лаптопе - 8600M, у нее примерно такая же скорость, как у основного CPU, может чуть больше.

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

Скажем, с демозаикой есть подвижки (пока и медленные), вроде бы получается ее делать очень быстро на GPU, а значит у демозаики могут появиться параметры настройки. Как пример.

Там было только с выводом, без вывода 40.

Там было только с выводом, без вывода 40.

Там было только с выводом, без вывода 40.

Там было только с выводом, без вывода 40.

Для любителей бленд есть более другие конструкции, но они уж

Для любителей бленд есть более другие конструкции, но они уже сильно дороже получаются.

Но если оптики много, то интегрально и дешевле, чем стеклянные фильтры под все размеры и компактнее, чем пластиковые бленды под весь зоопарк.

Уррряяяя!!!! заработало! Спасибо большое!

Уррряяяя!!!! заработало! Спасибо большое!

В топике 10.05.08 02:27 дан конечно совершенно абсурдный рез

В топике 10.05.08 02:27 дан конечно совершенно абсурдный результат 18 мс, я конечно это понимал, поэтому и привел весь код.
Почему так хотел бы знать.

Ну да, и если вы больше ничего не меняли, то эти 60 микросек

Ну да, и если вы больше ничего не меняли, то эти 60 микросекунд - это вместе с I/O

Сейчас в matrixMul.h поставил соответствующие параметры //ma

Сейчас в matrixMul.h поставил соответствующие параметры
//matrixMul.h
#ifndef _MATRIXMUL_H_
#define _MATRIXMUL_H_

// Thread block size
#define BLOCK_W_SIZE 16
#define BLOCK_H_SIZE 16

// Matrix dimensions
// (chosen as multiples of the thread block size for simplicity)
#define WA (1 * BLOCK_W_SIZE) // Matrix A width
#define HA (1 * BLOCK_H_SIZE) // Matrix A height
#define WB (1* BLOCK_H_SIZE ) // Matrix B width
#define HB WA // Matrix B height
#define WC WB // Matrix C width
#define HC HA // Matrix C height

#define NBX (WC / BLOCK_W_SIZE)

#endif // _MATRIXMUL_H_

Т.е. на один блок 16х16, показал Processing time: 0.063115 (ms).
Карта gf8800gt.
Значит все-таки
CUT_SAFE_CALL(cutStartTimer(timer));
//......................
CUT_SAFE_CALL(cutStopTimer(timer));
дают время в миллисекундах.

Подписки по E-mail тут нет и, похоже, долго еще не будет.

Подписки по E-mail тут нет и, похоже, долго еще не будет.

Ну вот если у matrixMul мерять время только по kernel, без к

Ну вот если у matrixMul мерять время только по kernel, без копирования данных туда-сюда, то для матрицы 16x16 получается 0.035 тамошних
единиц т.е. 35 микросекунд.

Надеваться-то он может и надевается, а что делать с лепестко

Надеваться-то он может и надевается, а что делать с лепестковой блендой?
Я так понимаю что на эту квадратную дуру надо надевать бленду типа киношной и общая конструкция получится уже весьма устрашающей. На пузе не поносишь.

Хороший вопрос. Метод измерения времени был без изменений в

Хороший вопрос.
Метод измерения времени был без изменений взят из NVIDIA CUDA SDK\projects\matrixMul
На сколько я могу судить (100% гарантии дать не могу), там речь идет все же о миллисекундах.

Как-то тут всё перемешалось, в ЖЖ-то неудобно бывает, а здес

Как-то тут всё перемешалось, в ЖЖ-то неудобно бывает, а здесь так вообще -- дупы и ответы не в тех местах.

Автор: можно как-то привести связь постов в порядок? Или хотя бы можно подписаться на топик (по e-mail, RSS-ом я пользуюсь на PDA только)?

ХЗ. Я искал в гугле по ключевым словам lightroom internal bi

ХЗ. Я искал в гугле по ключевым словам lightroom internal bit depth (кажется, ну или по подобным). По одной из ссылок были слова про 16\48.
В каком-то форуме. Поскольку источник доверия не заслуживал, я и написал что "есть мнение".

Илья, простите, но "21 бит на канал RGB" лично для меня осталось непонятым. На один цветной пиксел сколько бит?

Это мнение противоречит словам, сказанным покойным Bruce Fra

Это мнение противоречит словам, сказанным покойным Bruce Fraser и ныне здравствующим Andrew Rodney; а также некоторым рассчётам, просочившимся в лист бета-тестеров и содержащим мотивировку выбора разрядности.

1.5 стопа - имеется в виду относительно ETTR

1.5 стопа - имеется в виду относительно ETTR

Милли или микро ?

Милли или микро ?

Черт, опять забыл про двиг сайта. Нужно конечно вызывать Emp

Черт, опять забыл про двиг сайта. Нужно конечно вызывать
Empty {{{ grid, threads }}}();
Здесь я угловые скобки заменил фигурными.

Вот такой тест __global__ void Empty(void) { } вызывается

Вот такой тест

__global__ void Empty(void)
{
}

вызывается из

void runTimeTest(void)
{
CUT_DEVICE_INIT();
unsigned int n =2;

// create and start timer
unsigned int timer = 0;
CUT_SAFE_CALL(cutCreateTimer(&timer));
CUT_SAFE_CALL(cutStartTimer(timer));

// setup execution parameters
dim3 threads(2);
dim3 grid(n / threads.x);

Empty <<< grid, threads >>>();

// check if kernel execution generated and error
CUT_CHECK_ERROR("Kernel execution failed");

// stop and destroy timer
CUT_SAFE_CALL(cutStopTimer(timer));
printf("Processing time: %f (ms) Bandwidth %f gb/sek \n", cutGetTimerValue(timer),
1000*(4*n)/(1024*1024*1024*cutGetTimerValue(timer)));
};

У меня в релиз делается за 18 ms.

Ну вот я взял пример template из CUDA SDK 2.0, перенес там s

Ну вот я взял пример template из CUDA SDK 2.0, перенес там startTimer прямо перед вызовом kernel, stopTimer - сразу после.

16 микросекунд - если пустой kernel. В 10 раз меньше чем у вас.
kernel с работой - 30 микросекунд.

Может быть вы вместе с заливкой-выливкой данных меряете время ?

Pages

Subscribe to comments_recent_new