extract code to own method for faster JPX decoding
This commit is contained in:
parent
7ad19c3355
commit
f6841d1720
@ -1692,6 +1692,19 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
}
|
}
|
||||||
return ll;
|
return ll;
|
||||||
};
|
};
|
||||||
|
Transform.prototype.expand = function expand(buffer, bufferPadding, step) {
|
||||||
|
// Section F.3.7 extending... using max extension of 4
|
||||||
|
var i1 = bufferPadding - 1, j1 = bufferPadding + 1;
|
||||||
|
var i2 = bufferPadding + step - 2, j2 = bufferPadding + step;
|
||||||
|
buffer[i1--] = buffer[j1++];
|
||||||
|
buffer[j2++] = buffer[i2--];
|
||||||
|
buffer[i1--] = buffer[j1++];
|
||||||
|
buffer[j2++] = buffer[i2--];
|
||||||
|
buffer[i1--] = buffer[j1++];
|
||||||
|
buffer[j2++] = buffer[i2--];
|
||||||
|
buffer[i1--] = buffer[j1++];
|
||||||
|
buffer[j2++] = buffer[i2--];
|
||||||
|
};
|
||||||
Transform.prototype.iterate = function Transform_iterate(ll, hl, lh, hh,
|
Transform.prototype.iterate = function Transform_iterate(ll, hl, lh, hh,
|
||||||
u0, v0) {
|
u0, v0) {
|
||||||
var llWidth = ll.width, llHeight = ll.height, llItems = ll.items;
|
var llWidth = ll.width, llHeight = ll.height, llItems = ll.items;
|
||||||
@ -1745,18 +1758,7 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
for (var u = 0; u < width; u++, k++, l++)
|
for (var u = 0; u < width; u++, k++, l++)
|
||||||
buffer[l] = items[k];
|
buffer[l] = items[k];
|
||||||
|
|
||||||
// Section F.3.7 extending... using max extension of 4
|
this.expand(buffer, bufferPadding, width);
|
||||||
var i1 = bufferPadding - 1, j1 = bufferPadding + 1;
|
|
||||||
var i2 = bufferPadding + width - 2, j2 = bufferPadding + width;
|
|
||||||
buffer[i1--] = buffer[j1++];
|
|
||||||
buffer[j2++] = buffer[i2--];
|
|
||||||
buffer[i1--] = buffer[j1++];
|
|
||||||
buffer[j2++] = buffer[i2--];
|
|
||||||
buffer[i1--] = buffer[j1++];
|
|
||||||
buffer[j2++] = buffer[i2--];
|
|
||||||
buffer[i1--] = buffer[j1++];
|
|
||||||
buffer[j2++] = buffer[i2--];
|
|
||||||
|
|
||||||
this.filter(buffer, bufferPadding, width, u0, bufferOut);
|
this.filter(buffer, bufferPadding, width, u0, bufferOut);
|
||||||
|
|
||||||
k = v * width;
|
k = v * width;
|
||||||
@ -1780,18 +1782,7 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
for (var v = 0; v < height; v++, k += width, l++)
|
for (var v = 0; v < height; v++, k += width, l++)
|
||||||
buffer[l] = items[k];
|
buffer[l] = items[k];
|
||||||
|
|
||||||
// Section F.3.7 extending... using max extension of 4
|
this.expand(buffer, bufferPadding, height);
|
||||||
var i1 = bufferPadding - 1, j1 = bufferPadding + 1;
|
|
||||||
var i2 = bufferPadding + height - 2, j2 = bufferPadding + height;
|
|
||||||
buffer[i1--] = buffer[j1++];
|
|
||||||
buffer[j2++] = buffer[i2--];
|
|
||||||
buffer[i1--] = buffer[j1++];
|
|
||||||
buffer[j2++] = buffer[i2--];
|
|
||||||
buffer[i1--] = buffer[j1++];
|
|
||||||
buffer[j2++] = buffer[i2--];
|
|
||||||
buffer[i1--] = buffer[j1++];
|
|
||||||
buffer[j2++] = buffer[i2--];
|
|
||||||
|
|
||||||
this.filter(buffer, bufferPadding, height, v0, bufferOut);
|
this.filter(buffer, bufferPadding, height, v0, bufferOut);
|
||||||
|
|
||||||
k = u;
|
k = u;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user