Свежие комментарии
Title | Comment |
---|---|
ну вот в исследованиях кажется Ильи Борга, обнаружился клипп |
ну вот в исследованиях кажется Ильи Борга, обнаружился клиппинг в тенях на ISO 200 у Sony A900, в практическом плане выражавшийся в красных "блямбах" на темных поверхностях, а на ISO 320 клиппинг вдруг исчезал, из чего Илья (кажется) делал вывод что базовое ISO у A900 не 200 а 320. >Попытка использовать шумодавы тем более всё усугубляет. Так надо blacks подвинуть вправо -- и всех делов. "крайние" тона -- они неточные что сверху что снизу... |
В тенях сигма порядка 6. Т.е. работать с сигналом меньше 6 ( |
В тенях сигма порядка 6. Т.е. эффективная "примерно линейная" область - 9 стопов. От 26 до 14700. Это ISO100, мне оно под руку первое попалось. |
>отношение сигнал/шум на диапазоне 5000-14700 (верхние полто |
>отношение сигнал/шум на диапазоне 5000-14700 (верхние полтора стопа) перестает падать >120 - это корень из значения (14700). >И пуассоновское распределение при большом числе самплов - "переходит" в нормальное. |
Этот эффект проявляется в тенях гораздо сильнее, если пытать |
Этот эффект проявляется в тенях гораздо сильнее, если пытаться эти тени вытягивать. Предположим, есть теневой участок. У Canon уровень черного порядка 1000, я эту цифру возьму как условную. Предположим, совсем черный цвет - это, может, 1002, может 1000, может 998. Теперь мы вычитаем 1000. У нас пиксели 2, 0, 0. Всё, приехали. Относительная ошибка не треть стопа. Жизненная ситуация - фотография ночью, при свете ламп. Баланс белого вытягивает синий канал. По нему тени становятся светлее, в результате вся картинка как бы уходит в светлоту. Попытка использовать шумодавы тем более всё усугубляет. Они все работают в пространстве gamma 2.2, в результате берут среднее. Цвета плывут. |
120 - это корень из значения (14700). Для Пуассононовского р |
120 - это корень из значения (14700). Для Пуассононовского распределения (фотонный шум) - в самый раз. А вот то, что отношение сигнал/шум на диапазоне 5000-14700 (верхние полтора стопа) перестает падать - меня удивляет и я думаю. |
120 (или вовсе 250-260) - как-то очень уж много. указанные |
120 (или вовсе 250-260) - как-то очень уж много. указанные 16% - это в случае нормального распределения. а оно нормальное? этот эффект (клиппинга), это считай - нелинейность "в самых самых верхах" с понятным законом. а уже имеющиеся нелинейности (если есть) в самых верхах не больше ли эффекта связанного с клиппингом? |
Ну да, мантиссы - 24 бита (не |
Ну да, мантиссы - 24 бита (не помню, включает это знак или нет, но скорее всего 23 бита и знак). Это в float. Но в float - 4 действия, а в double - одно, при этом double всего-то вдвое медленнее. |
Вот только компьютера мне у |
Вот только компьютера мне у телевизора не хватает. Да еще и с внешним блоком питания. |
бинарное сложение |
практикуют с этой целью маньякусы. |
У меня проблема в другом! Я |
У меня проблема в другом! |
ASRock Vision 3D |
Ты уже купил Дюну, но я всё равно скажу. |
Скока той мантиссы? Если мне |
Скока той мантиссы? Если мне не изменяет память 24 бита. А скока их в а? 26? И ошибка в единичку (можно и в ноль свести при последующих вычислениях). Шайтан однако. :-) Но в общем все правильно. |
В вариации float/double (у |
В вариации float/double (у обоих есть аппаратная поддержка) - это бессмысленно. в с мы не можем спасти больше битов, чем их есть в мантиссе. Т.е. просто переход на double в аккумуляторе - делает не хуже, а операций - вчетверо меньше. Т.е. double-решение будет вдвое быстрее. Но если не хватает double, то да, спасет. |
У нас на факультете геофизики |
У нас на факультете геофизики очень любили (и, возможно, до сих пор любят) Sun-ы за 128-битный float. |
У меня это место подетектилось только когда я в варез загнал |
У меня это место подетектилось только когда я в варез загнал заранее известные *константные* значение (то самое 59259). Так как там минимум-максимум-среднее выводятся рядом, то вот оно и вылезло. |
Хех, люблю я хитрые задачки) Делаем вот что: <pre> float v |
Хех, люблю я хитрые задачки) float v = ((unsigned short)59259); И получаем вывод такой: v=59259.00000000000000000000000 Т.е. прибавление фиксированного числа на 284 итерации прибавляет неправильно. Присмотревшись к диапазону чисел замечаем, что это однако близко к 0x1000000, то бишь 2^24, а мантисса у флоата как раз такая же. Далее дорогой гугл приводит нас на не менее дорогой StackOverflow, так же не менее дорого Джоэла Спольски, а уже там нам старшие товарищи подсказывают вот что:
Ну, в общем, я тоже не допёр сам, хотя мог бы... Получается это как раз тот случай, когда "лучше сладко проспать утро понедельника и выспаться, чем провести всю неделю отлаживая код, написанный в понедельник утром" ;))) Спасибо за полезную задачку, мне с флоатингом тоже дел много иметь приходится, и я тоже немного знаю теорию, но вот практика - да, практика всё, а пока с такими вещами похоже не сталкивался) |
Все чаще убеждаюсь, что все |
Все чаще убеждаюсь, что все уже придумано до нас. :-)
float c = 0.0f; //A running compensation for lost low-order bits. for(i=0;i<33*33;i++) // Vsjo pridumano do nas } 0.73921028466483 a=64533856 b=64533051 a-b=805 int=64533051 iter=1089 Правда операций чуть побольше. |
Теорию я, типа, знаю. Но практика смешная: исходное 16-бит |
Теорию я, типа, знаю. Но практика смешная: исходное 16-битное число в 23-битную мантиссу лезет точно (во всяком случае, обратно печатается как надо, побитовое представление я не проверял). Итераций ~2^10 т.е. должно накопиться бита три ошибки. А накапливается - битов шесть. Раскладец. |
В-общем, получается так, если не по формальным спекам, а по |
В-общем, получается так, если не по формальным спекам, а по наличию в магазинах: салазок для C200, которые позволяют и BD и 3.5" диск поставить - в Москве нет. А у Дюны Max - про это голова не болит т.к. отсеки разные. Зато в Дюну не ставится (пока?) Mini-PCI Wifi, USB-шные, по слухам, медленнее, т.е. про HD по воздуху придется забыть скорее всего. Ну и хрен с ним, значит, будем приносить на HDD. |
Действительно, практически равнозначные устройства. Но, попк |
Действительно, практически равнозначные устройства. Но, попкорн более открыт с точки зрения программирования. Обычно, это не критерий, люди хотят просто бытовое устройство, но вдруг? :) |
А я тут давеча слышал вопль |
А я тут давеча слышал вопль души по направлению к Интел и АМД "ну когда же в процессорах будет поддержка четверной точности". Не хватает кое-кому уже double. |
Да просто перешел на double - и все. |
Да просто перешел на double - и все. |
Иманна-иманна... Вот <a href='http://www.eecg.toronto.edu/~ |
Иманна-иманна... Вот тут или на худой конец тут как гриццо совершенно famous article на этот счёт |
Блин, второй час ночи. Единственное, что удалось сделать, э |
Блин, второй час ночи. |
Да, лажаю. :-( |
Да, лажаю. :-( |
ф читать как a :) |
ф читать как a |
Я не понимаю вашего кода. Вот смотрите: float avg=0.0f; |
Я не понимаю вашего кода. Вот смотрите: Это же то же самое делает? Но оно не среднее печатает, отнюдь. |
Неаккуратненько. if(i){ averfa=(v+averfa)/2.0f;} else {averf |
Неаккуратненько. |
<i>Я думал, что libraw, в перспективе, и претендует стать са |
Я думал, что libraw, в перспективе, и претендует стать самостоятельным raw процессором. Нет-нет. Эту тему мы обсуждали в самом начале и решили что нет, не претендуем. RAW-процессор *как библиотека* (т.е. приделывай свой GUI и радуйся) это какая-то неправильная штука. Или она будет слишком generic (и потому - медленной), либо там нужна какая-то строгая идеология процессинга, а тогда и GUI можно приделать свой (и исходники открывать необязательно). Нет, этот самый постпроцессинг достался на халяву из dcraw, немножко разросся в последние полгода, но сильно развивать это место (на сегодняшний день) не планируется. |
unsigned short v=59259; float a=0.0f; double b=0.0; |
unsigned short v=59259; if (a!=b) ahtung='!'; 1087 6.44746e+007 6.44738e+007 ! 59259 59259 Хмм? В один проход? |
Pages
