From b82d1b999998e53b84dd7f2182a90b53d7162020 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Wed, 6 Apr 2011 16:27:30 +0900 Subject: [PATCH] Update issue 10 compress(float[]) and uncompressFloat(byte[]) --- src/main/java/org/xerial/snappy/Snappy.java | 18 ++++ .../java/org/xerial/snappy/SnappyNative.cpp | 80 ++++++++++++------ .../java/org/xerial/snappy/SnappyNative.h | 16 ++++ .../java/org/xerial/snappy/SnappyNative.java | 6 ++ .../snappy/native/Windows/amd64/snappy.dll | Bin 644608 -> 644608 bytes .../java/org/xerial/snappy/SnappyTest.java | 7 +- 6 files changed, 99 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/xerial/snappy/Snappy.java b/src/main/java/org/xerial/snappy/Snappy.java index bf81235..f21ab4f 100755 --- a/src/main/java/org/xerial/snappy/Snappy.java +++ b/src/main/java/org/xerial/snappy/Snappy.java @@ -67,6 +67,15 @@ public class Snappy return result; } + public static byte[] compress(float[] data) { + int floatArraySize = data.length * 4;// float use 4 bytes + byte[] buf = new byte[Snappy.maxCompressedLength(floatArraySize)]; + int compressedByteSize = SnappyNative.rawCompressFloat(data, 0, floatArraySize, buf, 0); + byte[] result = new byte[compressedByteSize]; + System.arraycopy(buf, 0, result, 0, compressedByteSize); + return result; + } + /** * High-level API for uncompressing the input byte array. * @@ -83,6 +92,15 @@ public class Snappy return result; } + public static float[] uncompressFloat(byte[] input) throws SnappyException { + int uncompressedLength = Snappy.uncompressedLength(input, 0, input.length); + float[] result = new float[uncompressedLength / 4]; + int byteSize = SnappyNative.rawUncompressFloat(input, 0, input.length, result, 0); + if (byteSize != uncompressedLength) + throw new SnappyException(SnappyErrorCode.INVALID_DECOMPRESSION); + return result; + } + /** * Compress the content in the given input buffer. After the compression, * you can retrieve the compressed data from the output buffer [pos() ... diff --git a/src/main/java/org/xerial/snappy/SnappyNative.cpp b/src/main/java/org/xerial/snappy/SnappyNative.cpp index cbf5638..407ab9f 100755 --- a/src/main/java/org/xerial/snappy/SnappyNative.cpp +++ b/src/main/java/org/xerial/snappy/SnappyNative.cpp @@ -54,14 +54,9 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_ni return (jint) compressedLength; } -/* - * Class: org_xerial_snappy_SnappyNative - * Method: rawCompress - * Signature: ([BII[BI)I - */ -JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress___3BII_3BI - (JNIEnv * env, jclass self, jbyteArray input, jint inputOffset, jint inputLen, jbyteArray output, jint outputOffset) +jint snappyRawCompress + (JNIEnv * env, jclass self, jarray input, jint inputOffset, jint inputLen, jarray output, jint outputOffset) { char* in = (char*) env->GetPrimitiveArrayCritical(input, 0); char* out = (char*) env->GetPrimitiveArrayCritical(output, 0); @@ -80,6 +75,52 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress___3BII_3B return (jint) compressedLength; } +jint snappyRawUncompress +(JNIEnv * env, jclass self, jarray input, jint inputOffset, jint inputLength, jarray output, jint outputOffset) +{ + char* in = (char*) env->GetPrimitiveArrayCritical(input, 0); + char* out = (char*) env->GetPrimitiveArrayCritical(output, 0); + if(in == 0 || out == 0) { + // out of memory + throw_exception(env, self, 4); + return 0; + } + + size_t uncompressedLength; + snappy::GetUncompressedLength(in + inputOffset, (size_t) inputLength, &uncompressedLength); + bool ret = snappy::RawUncompress(in + inputOffset, (size_t) inputLength, out + outputOffset); + + env->ReleasePrimitiveArrayCritical(input, in, 0); + env->ReleasePrimitiveArrayCritical(output, out, 0); + + if(!ret) { + throw_exception(env, self, 2); + return 0; + } + + return (jint) uncompressedLength; +} + + +/* + * Class: org_xerial_snappy_SnappyNative + * Method: rawCompress + * Signature: ([BII[BI)I + */ + +JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress___3BII_3BI + (JNIEnv * env, jclass self, jbyteArray input, jint inputOffset, jint inputLen, jbyteArray output, jint outputOffset) +{ + return snappyRawCompress(env, self, input, inputOffset, inputLen, output, outputOffset); +} + + +JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompressFloat + (JNIEnv * env, jclass self, jfloatArray input, jint inputOffset, jint inputLen, jbyteArray output, jint outputOffset) +{ + return snappyRawCompress(env, self, input, inputOffset, inputLen, output, outputOffset); +} + /* * Class: org_xerial_snappy_Snappy @@ -110,27 +151,14 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress___3BII_3BI (JNIEnv * env, jclass self, jbyteArray input, jint inputOffset, jint inputLength, jbyteArray output, jint outputOffset) { - char* in = (char*) env->GetPrimitiveArrayCritical(input, 0); - char* out = (char*) env->GetPrimitiveArrayCritical(output, 0); - if(in == 0 || out == 0) { - // out of memory - throw_exception(env, self, 4); - return 0; - } + snappyRawUncompress(env, self, input, inputOffset, inputLength, output, outputOffset); +} - size_t uncompressedLength; - snappy::GetUncompressedLength(in + inputOffset, (size_t) inputLength, &uncompressedLength); - bool ret = snappy::RawUncompress(in + inputOffset, (size_t) inputLength, out + outputOffset); - env->ReleasePrimitiveArrayCritical(input, in, 0); - env->ReleasePrimitiveArrayCritical(output, out, 0); - - if(!ret) { - throw_exception(env, self, 2); - return 0; - } - - return (jint) uncompressedLength; +JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompressFloat + (JNIEnv * env, jclass self, jbyteArray input, jint inputOffset, jint inputLength, jfloatArray output, jint outputOffset) +{ + snappyRawUncompress(env, self, input, inputOffset, inputLength, output, outputOffset); } diff --git a/src/main/java/org/xerial/snappy/SnappyNative.h b/src/main/java/org/xerial/snappy/SnappyNative.h index f23bf50..2115fb8 100755 --- a/src/main/java/org/xerial/snappy/SnappyNative.h +++ b/src/main/java/org/xerial/snappy/SnappyNative.h @@ -31,6 +31,14 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_ni JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress___3BII_3BI (JNIEnv *, jclass, jbyteArray, jint, jint, jbyteArray, jint); +/* + * Class: org_xerial_snappy_SnappyNative + * Method: rawCompressFloat + * Signature: ([FII[BI)I + */ +JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompressFloat + (JNIEnv *, jclass, jfloatArray, jint, jint, jbyteArray, jint); + /* * Class: org_xerial_snappy_SnappyNative * Method: rawUncompress @@ -47,6 +55,14 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress___3BII_3BI (JNIEnv *, jclass, jbyteArray, jint, jint, jbyteArray, jint); +/* + * Class: org_xerial_snappy_SnappyNative + * Method: rawUncompressFloat + * Signature: ([BII[FI)I + */ +JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompressFloat + (JNIEnv *, jclass, jbyteArray, jint, jint, jfloatArray, jint); + /* * Class: org_xerial_snappy_SnappyNative * Method: maxCompressedLength diff --git a/src/main/java/org/xerial/snappy/SnappyNative.java b/src/main/java/org/xerial/snappy/SnappyNative.java index 7674e0c..3c58f11 100755 --- a/src/main/java/org/xerial/snappy/SnappyNative.java +++ b/src/main/java/org/xerial/snappy/SnappyNative.java @@ -46,12 +46,18 @@ public class SnappyNative public native static int rawCompress(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset) throws SnappyException; + public native static int rawCompressFloat(float[] input, int inputOffset, int inputLength, byte[] output, + int outputOffset); + public native static int rawUncompress(ByteBuffer compressed, int inputOffset, int inputLength, ByteBuffer uncompressed, int outputOffset) throws SnappyException; public native static int rawUncompress(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset) throws SnappyException; + public native static int rawUncompressFloat(byte[] input, int inputOffset, int inputLength, float[] output, + int outputOffset) throws SnappyException; + // Returns the maximal size of the compressed representation of // input data that is "source_bytes" bytes in length; public native static int maxCompressedLength(int source_bytes); diff --git a/src/main/resources/org/xerial/snappy/native/Windows/amd64/snappy.dll b/src/main/resources/org/xerial/snappy/native/Windows/amd64/snappy.dll index 2da27c97e94fd74aaf62c201c10d46aceab8e9a8..3cbef77dc074b2d3af0c85ccc2531c8d523be77e 100755 GIT binary patch delta 47146 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 C&Wg|g delta 47049 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 z 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