Ответить
  • ee2 Senior Member
    офлайн
    ee2 Senior Member

    9831

    10 лет на сайте
    пользователь #135660

    Профиль
    Написать сообщение

    9831
    # 23 ноября 2014 23:09 Редактировалось ee2, 5 раз(а).
    nDrju:

    ee2, там же еще и кривая накладывается.

    Да, накладывается и кривая, то есть все эти биты сами по себе всего лишь индекс к тоновой кривой. Вообще не зная, что конкретно дает матрица, сложно даже утверждать, что там будет постеризация. Но да, возможно при перепаде больше 7 бит, пойдут потери точности. Вопрос бывают ли там перепады больше 7 бит в принципе, может у тетки 7 бит - это разница между черной дырой и солнцем на расстоянии метра - ведь распределение информации по битам нелинейно...
    Если бы данные были линейными и был известен формат, в котором снимает матрица, можно было бы говорить наверняка.
    Плюс там данные записываются с некоторой избыточностью, т.е. 11 бит минимум + 7 бит дельта приводятся в итоге к 11 битам...

  • nDrju Senior Member
    офлайн
    nDrju Senior Member

    5527

    9 лет на сайте
    пользователь #200037

    Профиль
    Написать сообщение

    5527
    # 23 ноября 2014 23:25 Редактировалось nDrju, 1 раз.

    ee2, я вот как-то не особо понял как в 11 бит можно уместить максимум если максимум 2^14=)
    Пора бы и фоточкой разбавить спор.

  • ee2 Senior Member
    офлайн
    ee2 Senior Member

    9831

    10 лет на сайте
    пользователь #135660

    Профиль
    Написать сообщение

    9831
    # 23 ноября 2014 23:27
    nDrju:

    Что вы имеете ввиду под нелинейными значениями? С матрицы данные идут линейные.

    К линейным их приводит тоновая кривая при распаковке. А данные с матрицы перед записью в RAW тоже проходят через кривую (обратную кривой, которую они проходят при распаковке), которая делает данные нелинейными. :)

  • nDrju Senior Member
    офлайн
    nDrju Senior Member

    5527

    9 лет на сайте
    пользователь #200037

    Профиль
    Написать сообщение

    5527
    # 23 ноября 2014 23:30

    ee2, да я уже сам понял внимательно прочитав ссылку про кривую. Там еще вроде как точка черного обычно смещена от нуля.

  • ee2 Senior Member
    офлайн
    ee2 Senior Member

    9831

    10 лет на сайте
    пользователь #135660

    Профиль
    Написать сообщение

    9831
    # 23 ноября 2014 23:30 Редактировалось ee2, 2 раз(а).
    nDrju:

    ee2, я вот как-то не особо понял как в 11 бит можно уместить максимум если максимум 2^14=)

    Экспоненциальная кривая "разжимает" данные из 11 бит в сколько нужно, как-то так.

    Добавлено спустя 2 минуты 54 секунды

    nDrju:

    ee2, да я уже сам понял внимательно прочитав ссылку про кривую. Там еще вроде как точка черного обычно смещена от нуля.

    Там все сложно. Поэтому я и не стал бы так смело заявлять, что там полезет постеризация - не зная, что реализовано в железе на камере. А если постеризация и будет, то вероятность ее ничтожна, думаю в блоках 16х16 очень редко встречается резкий переход света силой в 7 бит. Может и попадется один такой блок 16х16 на 100 снимков, никто и не заметит... Если бы постеризация была чем-то закономерным, эта информация и жалобы пользователей уже были бы везде.

  • nDrju Senior Member
    офлайн
    nDrju Senior Member

    5527

    9 лет на сайте
    пользователь #200037

    Профиль
    Написать сообщение

    5527
    # 23 ноября 2014 23:39

    ee2, горячие пиксели. Может еще материал с мелкой структурой? Блики мелкие.
    На самом деле не понимаю почему нельзя давать возможность пользователю самому выбрать, надо ли ему сжатие или нет.

  • ee2 Senior Member
    офлайн
    ee2 Senior Member

    9831

    10 лет на сайте
    пользователь #135660

    Профиль
    Написать сообщение

    9831
    # 23 ноября 2014 23:44 Редактировалось ee2, 2 раз(а).
    nDrju:

    ee2, горячие пиксели. Может еще материал с мелкой структурой? Блики мелкие.

    Ну так горячие пиксели пусть теряют в точности, всем пофиг. :) Они все равно не несут информации, а на точность соседних по блоку влиять не будут.
    Сложно представить блики меньше 16 пикселей на 20-24Мп матрице, да еще и без плавного перехода...

    nDrju:

    На самом деле не понимаю почему нельзя давать возможность пользователю самому выбрать, надо ли ему сжатие или нет.

    Возможно в угоду скорострельности. Возможно действительно нет разницы, сжимать или не сжимать - вряд ли инженеры тетки просто тупые.

  • nDrju Senior Member
    офлайн
    nDrju Senior Member

    5527

    9 лет на сайте
    пользователь #200037

    Профиль
    Написать сообщение

    5527
    # 23 ноября 2014 23:47

    ee2, так горячий пиксель будет максимумом же. Как я понимаю потери будут вокруг него, но не в самом пикселе, не?

  • ee2 Senior Member
    офлайн
    ee2 Senior Member

    9831

    10 лет на сайте
    пользователь #135660

    Профиль
    Написать сообщение

    9831
    # 23 ноября 2014 23:49 Редактировалось ee2, 2 раз(а).
    nDrju:

    ee2, так горячий пиксель будет максимумом же. Как я понимаю потери будут вокруг него, но не в самом пикселе, не?

    Счет идет от минимума. Максимум просто записывается, но в вычислениях не участвует (в другом месте участвует). Теряют информацию пиксели, которые ярче минимума на 7 бит.
    Горячий пиксель будет сам себе одиночка, потерявший информацию. Остальной блок будет в полном порядке.

    p = (bits.getBits(7) << sh) + _min;

  • Def Senior Member
    офлайн
    Def Senior Member

    20221

    16 лет на сайте
    пользователь #10137

    Профиль
    Написать сообщение

    20221
    # 23 ноября 2014 23:53 Редактировалось Def, 4 раз(а).

    nDrju, вы пока единственный из ныне присутсвующих микроводов, кто отличается рассудительностью и вообще хорошим поведением :)
    Посему я взялся за нелегкий труд доказать вам (и только вам, а не остальным не столь достойным оппонентам) всю сущеглупость сказок про 7-битный рав.

    Итак, по пунктам.
    1. Код, приведенный в статье - некая поделка для линукса под названием RawStudio. Работает сие вообще или нет - не известно, но будем придерживаться мысли что работает
    2. Полный код класса, из которого выдернут кусок для статьи лежит здесь - https://github.com/wjakob/hdrmerge/blob/master/rawspeed/RawSpeed/ArwDecoder.cpp
    3. Теперь неспециалисту придется просто мне верить, остальные смотрят в код, на строку 147.
    4. Далее специалисты сами найдут откуда взялось значение переменной "bpp", а остальные верят мне на слово - значение может быть 8 или 12 и означает кол-во бит на пиксель, читается из метадаты этого самого рава. Кстати для А7 там будет 14 и работать не будет вообще ничего.
    6. Алгоритм, обосранный в первоначальной статье применяется только для случая bpp = 8 и автор опуса не мог этого не знать (хотя кто его знает). У каких сониевских камер 8-битный рав - я не знаю, и в чем смысл паковать 8 бит в 7 - тоже. В комментариях есть некое упоминание о какой-то Sony E-550.
    5. Если bpp = 12 (т.е. как во всех бзк кроме А7/А7р) - используется совершенно другой алгоритм и разбираться в нем мне лень. Пока - достаточно факта что автор статьи сознательно все это умолчал, справедливо рассчитывая что недалекие юзеры побегут друг другу пересылать линки на статью с криками "все пропало", что собсвенно и произошло.

    Все, тема пока закрыта, все это заняло у меня примерно полчаса, а мое программистское время дорого. Так что всей веткой сбросились по пятерочке баксов, номер карточки я потом скажу :)

    Дополнение, чисто для задротов: чтобы не было сомнений, что bpp будет равно 12.
    Это читается тэг из экзифа Exif.Image.BitsPerSample, его id = 0x0102. В большинстве программ-вьюверов экзифа сей тег не показывается вообще, только тэг Exif.Image.CompressedBitsPerPixel (id=0x9102), который кстати = 8.
    Тэг BitsPerSample можно разглядеть только программой с официального сайта экзифа - http://www.exiv2.org/download.html, запустив ее с параметрами "exiv2.exe -p v pr имя_файла". И даже для старого некс 5н там значение 12.

    Вот теперь точно все. Автор статьи - балабол, поднявший бурю в стакане толи по глупости, толи по злоумыслу, а все кто ему поверили - наивные простачки.

    Стоит корова на мосту и сцыт в реку. Вот так и люди - рождаются и умирают
  • dzer Senior Member
    офлайн
    dzer Senior Member

    2700

    13 лет на сайте
    пользователь #45275

    Профиль
    Написать сообщение

    2700
    # 24 ноября 2014 00:16

    Развели тут... про равы, пиксели, точку черного, в исходники полезли. Березина, придет порядок наведет. Можно и не фотографировать после этого, все равно какой-нибудь программист, забудет часть света на матрице :).

    Olympus
  • nDrju Senior Member
    офлайн
    nDrju Senior Member

    5527

    9 лет на сайте
    пользователь #200037

    Профиль
    Написать сообщение

    5527
    # 24 ноября 2014 00:32

    dzer, фото в тему:)))))
    Def, спасибо. А разве в 12 году уже были A7?

  • Def Senior Member
    офлайн
    Def Senior Member

    20221

    16 лет на сайте
    пользователь #10137

    Профиль
    Написать сообщение

    20221
    # 24 ноября 2014 00:52
    nDrju:

    А разве в 12 году уже были A7?

    А эту статью буду упоминать еще лет десять. Применительно ко всем камерам вообще. Так что и про А7 увидим, и про А7 mark 10

    Стоит корова на мосту и сцыт в реку. Вот так и люди - рождаются и умирают
  • bambr Senior Member
    офлайн
    bambr Senior Member

    5050

    13 лет на сайте
    пользователь #39095

    Профиль
    Написать сообщение

    5050
    # 24 ноября 2014 09:14
    Def:

    nDrju, вы пока единственный из ныне присутсвующих микроводов, кто отличается рассудительностью и вообще хорошим поведением

    это пока. потом ты как обычно начнешь

    Def:

    Посему я взялся за нелегкий труд доказать вам (и только вам, а не остальным не столь достойным оппонентам) всю сущеглупость сказок

    сказочник ты наш .

    .. и вообще - Искусство - это не как сделать технически идеальный кадр .. ...а как обгадить исходник НАИЛУЧШИМ ОБРАЗОМ.. для достижения НЕОБХОДИМОГО эмоционального состояния!
  • AlexTutubalin Junior Member
    офлайн
    AlexTutubalin Junior Member

    53

    4 года на сайте
    пользователь #1490942

    Профиль
    Написать сообщение

    53
    # 24 ноября 2014 09:54
    Def:

    nDrju,
    4. Далее специалисты сами найдут откуда взялось значение переменной "bpp", а остальные верят мне на слово - значение может быть 8 или 12 и означает кол-во бит на пиксель, читается из метадаты этого самого рава. Кстати для А7 там будет 14 и работать не будет вообще ничего.

    (не буду цитировать все, только для контекста)

    Есть одно существенное обстоятельство: если этому коду скормить данные от, к примеру, A7, то он их раскодирует. Сюрприз.

    Причем, сделает это так же, как (к примеру) Adobe: бинарные данные после Adobe DNG Converter в точности такие же, как после этого кода.

    [url=http://www.fastrawviewer.ru]FastRawViewer[/url] - снимаете в RAW, так и смотрите на RAW.
  • Def Senior Member
    офлайн
    Def Senior Member

    20221

    16 лет на сайте
    пользователь #10137

    Профиль
    Написать сообщение

    20221
    # 24 ноября 2014 10:47

    1490942, и что? Может в а7 тоже 12 бит или еще что. К чему это ваше существенное обстоятельство?

    Стоит корова на мосту и сцыт в реку. Вот так и люди - рождаются и умирают
  • AlexTutubalin Junior Member
    офлайн
    AlexTutubalin Junior Member

    53

    4 года на сайте
    пользователь #1490942

    Профиль
    Написать сообщение

    53
    # 24 ноября 2014 10:54 Редактировалось AlexTutubalin, 2 раз(а).

    Смотря что понимать под битами.
    RAW-данных в A7 - 8 бит на пиксель. Ровно. Формат - вот прямо как написано в той заметке, которую вы критикуете: 11-битные базовые значения, 4-битные координаты min/max, 7-битные дельты.

    После раскодирования (вышеприведенным кодом, хм) и наложения тоновой кривой (линеаризации) - получается размах данных от 0 до 16 тысяч с хвостиком (сюрприз, реальный размах может быть чуть больше чем 16383, в тоновой кривой лимит вообще чуть выше 17к, только дотуда не доходит).
    Этот размах одинаков и у NEX 3 (12-битный АЦП) и у A7 (по спекам - 14-битный АЦП) и у других камер с тем же форматом данных.

    Если считать "уникальные значения", то у A7 их будет порядка 8тысяч (опять же как считать, то что ниже уровня черного - считаем или нет?) то есть соответствует 13 битам.

    Родной соневский софт, заметим, декодирует так же абсолютно. С теми же артефактами на (очень) контрастных границах.

    Да, exiv2.org как "официальный сайт EXIF" отдельно меня повеселило.

    [url=http://www.fastrawviewer.ru]FastRawViewer[/url] - снимаете в RAW, так и смотрите на RAW.
  • Def Senior Member
    офлайн
    Def Senior Member

    20221

    16 лет на сайте
    пользователь #10137

    Профиль
    Написать сообщение

    20221
    # 24 ноября 2014 10:57

    AlexTutubalin - это тот самый автор всей этой сказки?

    Стоит корова на мосту и сцыт в реку. Вот так и люди - рождаются и умирают
  • AlexTutubalin Junior Member
    офлайн
    AlexTutubalin Junior Member

    53

    4 года на сайте
    пользователь #1490942

    Профиль
    Написать сообщение

    53
    # 24 ноября 2014 11:00

    Сказка или не сказка - а этот код эти RAW раскодирует. Получается то же что у Adobe (можно побитно сравнить) или Sony (увы, только визуально)

    Такая вот история.

    [url=http://www.fastrawviewer.ru]FastRawViewer[/url] - снимаете в RAW, так и смотрите на RAW.
  • Def Senior Member
    офлайн
    Def Senior Member

    20221

    16 лет на сайте
    пользователь #10137

    Профиль
    Написать сообщение

    20221
    # 24 ноября 2014 11:07 Редактировалось Def, 1 раз.

    AlexTutubalin, причем здесь "раскодирует-не раскодирует", кривые и прочее. Речь вообще то шла о куске кода, вокруг которого вы подняли панику. Он для чтения равов с бзк не используется, даже несмотря на то, что у вас могут быть какие-то свои понятия бит :)

    Стоит корова на мосту и сцыт в реку. Вот так и люди - рождаются и умирают