Author: post
Date: 2009-09-06 11:51:42 +0200 (Sun, 06 Sep 2009)
New Revision: 144
Modified:
RawSpeed/Rw2Decoder.cpp
Log:
RW2Decoder: Made inner loop a proper loop for readability and to avoid compiler
warning.
Modified: RawSpeed/Rw2Decoder.cpp
===================================================================
--- RawSpeed/Rw2Decoder.cpp 2009-09-05 14:40:23 UTC (rev 143)
+++ RawSpeed/Rw2Decoder.cpp 2009-09-06 09:51:42 UTC (rev 144)
@@ -75,45 +75,41 @@
void Rw2Decoder::DecodeRw2()
{
int x, y, i, j, sh=0, pred[2], nonz[2];
- int w = mRaw->dim.x;
+ int w = mRaw->dim.x/14;
int h = mRaw->dim.y;
for (y=0; y < h; y++) {
gushort* dest = (gushort*)mRaw->getData(0,y);
- i = 0;
for (x=0; x < w; x++) {
- // Even pixels
- if (i == 0)
- pred[0] = pred[1] = nonz[0] = nonz[1] = 0;
- else if (i % 3 == 2)
- sh = 4 >> (3 - pana_bits(2));
- if (nonz[0]) {
- if ((j = pana_bits(8))) {
- if ((pred[0] -= 0x80 << sh) < 0 || sh == 4)
- pred[0] &= ~(-1 << sh);
- pred[0] += j << sh;
- }
- } else if ((nonz[0] = pana_bits(8)) || i > 11)
- pred[0] = nonz[0] << 4 | pana_bits(4);
- dest[x] = pred[0];
+ pred[0] = pred[1] = nonz[0] = nonz[1] = 0;
+ for (i = 0; i < 14; i++) {
+ // Even pixels
+ if (i % 3 == 2)
+ sh = 4 >> (3 - pana_bits(2));
+ if (nonz[0]) {
+ if ((j = pana_bits(8))) {
+ if ((pred[0] -= 0x80 << sh) < 0 || sh == 4)
+ pred[0] &= ~(-1 << sh);
+ pred[0] += j << sh;
+ }
+ } else if ((nonz[0] = pana_bits(8)) || i > 11)
+ pred[0] = nonz[0] << 4 | pana_bits(4);
+ *dest++ = pred[0];
- // Odd pixels
- i++;
- x++;
- if (i % 3 == 2)
- sh = 4 >> (3 - pana_bits(2));
- if (nonz[1]) {
- if ((j = pana_bits(8))) {
- if ((pred[1] -= 0x80 << sh) < 0 || sh == 4)
- pred[1] &= ~(-1 << sh);
- pred[1] += j << sh;
- }
- } else if ((nonz[1] = pana_bits(8)) || i > 11)
- pred[1] = nonz[1] << 4 | pana_bits(4);
- dest[x] = pred[1];
- i++;
- if (i == 14)
- i = 0;
+ // Odd pixels
+ i++;
+ if (i % 3 == 2)
+ sh = 4 >> (3 - pana_bits(2));
+ if (nonz[1]) {
+ if ((j = pana_bits(8))) {
+ if ((pred[1] -= 0x80 << sh) < 0 || sh == 4)
+ pred[1] &= ~(-1 << sh);
+ pred[1] += j << sh;
+ }
+ } else if ((nonz[1] = pana_bits(8)) || i > 11)
+ pred[1] = nonz[1] << 4 | pana_bits(4);
+ *dest++ = pred[1];
+ }
}
}
}
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit