RAW или сRAW? Вот в чём вопрос.

Тема в разделе "SONY с байонетом А", создана пользователем Коллаж, 8 июл 2009.

?

В каком формате вы чаще предпочитаете снимать?

  1. cRAW

    86 голосов
    55,5%
  2. RAW

    69 голосов
    44,5%
  1. Не заради спора, но найди историю ещё раз :)

    Господин Маргулис делал подобную заяву, но она имела вполне конкретный смысл и относилась к довольно узкой области с довольно специфическим способом оценки.
     
  2. Сам снимаю в cRAW, но тема заинтересовала. Спорить не хочу, но хочу сказать о паре вещей, которые сам знал/заметил:
    сразу скажу свой предварительный вывод: cRAW это 12 битный RAW пожатый алгоритмов "а-ля JPEG", только 12-битным.

    А остальная инфа такая:

    RAW содержит линейные значения яркостей, от 0 до 2^12 -1 (4095). Математически они представляются не как диапазон ( 0; 4095), а как ВНИМАНИЕ! диапазон вещественных чисел ( 0; 1). Алгоритмом sRGB этот диапазон (0, 1) переводится по специальной формуле (с учётом гаммы, в том числе) в выходной диапазон - тоже (0; 1). Для JPEGа или 8-битного TIFF'а 0 означает 0, а 1 - 255. Далее, ещё интереснее.
    Что такое 16-битный TIFF. Оказвается, это не линейная якрость, а та же sRGB (например). И значение 16 бит в ней трактуется как 8 бит до запятой и 8 бит после запятой, а старшие 8 бит - есть те самый (0, 255), что и в джпеге. Это я выяснил теоретически и проверил практически. То, что вытягивалось из 12-битного RAWа (кстати, я использовал cRAW) - и не вытягивалось из 8-битного JPEGа, также не вытягивалось и из 16-битного TIFFа.

    Далее. Только что провёл эксперимент по ужиманию RARом RAW и cRAW с макс. качеством:
    исходник RAW - 18548 KB; RAR - 11345 KB.
    исходник cRAW - 12536 KB; RAR - 11452 KB.

    Всё похоже на правду, пожатый а-ля джпег (как я предполагаю), cRAW сжался хуже, чем непожатый RAW. А размеры разные у RAW могут быть из-за того, что у них внутри превьюхи, и тоже пожаты JPEGом.
     
  3. #143 6 ноя 2009 в 14:11 | RAW или сRAW? Вот в чём вопрос. | Страница 8
    Последнее редактирование модератором: 6 ноя 2009
    выдрал кусочек из dcraw'a в тему чтения RAW файлов.
    не очень понятно как работает, компилера под рукой нет поэкспериментировать. но на декомпресс JPEG'а не похоже. скорее похоже как раз на то о чем выше писали.
    т.е. комбинирование четырех байт сырца в три сжатых. ну что то типа 12+12+12+12=16+16+16. в итоге файл получается на 25% меньше.
    но только предположение конечно, исходник до конца не ясен :(
    может здесь кто разберется...

    --- cut on ---
    void CLASS sony_decrypt (unsigned *data, int len, int start, int key)
    {
    static unsigned pad[128], p;

    if (start) {
    for (p=0; p < 4; p++)
    pad[p] = key = key * 48828125 + 1;
    pad[3] = pad[3] << 1 | (pad[0]^pad[2]) >> 31;
    for (p=4; p < 127; p++)
    pad[p] = (pad[p-4]^pad[p-2]) << 1 | (pad[p-3]^pad[p-1]) >> 31;
    for (p=0; p < 127; p++)
    pad[p] = htonl(pad[p]);
    }
    while (len--)
    *data++ ^= pad[p++ & 127] = pad[(p+1) & 127] ^ pad[(p+65) & 127];
    }

    void CLASS sony_load_raw()
    {
    uchar head[40];
    ushort *pixel;
    unsigned i, key, row, col;

    fseek (ifp, 200896, SEEK_SET);
    fseek (ifp, (unsigned) fgetc(ifp)*4 - 1, SEEK_CUR);
    order = 0x4d4d;
    key = get4();
    fseek (ifp, 164600, SEEK_SET);
    fread (head, 1, 40, ifp);
    sony_decrypt ((unsigned int *) head, 10, 1, key);
    for (i=26; i-- > 22; )
    key = key << 8 | head;
    fseek (ifp, data_offset, SEEK_SET);
    pixel = (ushort *) calloc (raw_width, sizeof *pixel);
    merror (pixel, "sony_load_raw()");
    for (row=0; row < height; row++) {
    if (fread (pixel, 2, raw_width, ifp) < raw_width) derror();
    sony_decrypt ((unsigned int *) pixel, raw_width/2, !row, key);
    for (col=9; col < left_margin; col++)
    black += ntohs(pixel);
    for (col=0; col < width; col++)
    if ((BAYER(row,col) = ntohs(pixel[col+left_margin])) >> 14)
    derror();
    }
    free (pixel);
    if (left_margin > 9)
    black /= (left_margin-9) * height;
    maximum = 0x3ff0;
    }

    --- cut off ---
     
  4. #144 6 ноя 2009 в 14:14 | RAW или сRAW? Вот в чём вопрос. | Страница 8
    Последнее редактирование модератором: 6 ноя 2009
    то, что 12 бит складируется в непожатом RAW не в 16 бит, а "как надо, погдряд" - и так понятно исходя из размера файлов: 12МП было бы 24МБ, а есть - 18 МБ.

    upd. в представленной выборке из dcraw вообще нет того, что мы все ищем - там загрузка и расшифрование данных.
     
  5. да вроде там ничего больше специфичного по камерам нет. дальше уже вроде обработка идет общая по всем камерам.
     
  6. оффтоп.
    Проглядывал я давно этот код, Дэйв Коффин, при всём уважении к его труду - приводит пример, как не надо писать код...
     
  7. стиль кода это не важно, программа AS IS вроде , хотя мне понравился в общем то.

    да по теме. крутил вертел в фотошопе 2 подобных файла один без другой с компрессией. разница есть по цвету и заметная. особенно в зеленом канале.
     
  8. Разница между RAW и cRAW - последний сжат посредством "архиватора", но это не значит, что просто отбрасывание лишняя разрядность, сжатие информации осуществляется за счет устранения избыточности различными методами, например путем исключения повторяющихся битов и заменой их кодом, указывающим на кратность повторения, т.е. мы не теряем информацию, теряется лишь скорость обработки файла ... вопросы о изменения цвета, яркости и т.д. - скорее программный баг ...
     
  9. #149 21 дек 2009 в 21:39 | RAW или сRAW? Вот в чём вопрос. | Страница 8
    Последнее редактирование модератором: 21 дек 2009
    Потерять можно максимум 4 бита из 12. Монитор показывате 8 бит. Эксперименты по компресси выкладывались на dpreview.

    Все, что вы написали никаким образом не относится к cRaw. Компрессия у sony своя. Хранятся 11 битное максимальное значеие, 11 битное минимальное значение и 2 битная разници от одного из них.
    cRaw - алгоритм компрессии с потерями.
     
  10. Кто-нить пробовал раскручивать RAW от А5хх посредством dcraw ?
     
  11. #151 22 дек 2009 в 09:53 | RAW или сRAW? Вот в чём вопрос. | Страница 8
    Последнее редактирование модератором: 22 дек 2009
    Т.к. камера у меня с cRAW появилась недавно, почему разговор идет о сжатии с потерями? На сколько можно судить, то алгоритмы компрессии на ходу без потерь давно применимы как и в сетях передачи данных, так и далее.. преславутая LZW компрессия на аппаратном уровне для растра как раз даст такие резульаты, или так все плохо?
     
  12. Потому, что sony выбрала такой алгоритм. LZW для изображений, а для камерных raw особенно, не эффективен из за шума.
     

Поделиться этой страницей