jfjoch_process: Increase performance by decompressing image outside of global lock, avoiding extra processing and avoiding extra compression (if writing)
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m33s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m28s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m22s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 16m38s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 18m6s
Build Packages / build:rpm (rocky8) (push) Successful in 18m7s
Build Packages / build:rpm (rocky9) (push) Successful in 18m47s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m22s
Build Packages / Generate python client (push) Successful in 1m47s
Build Packages / Build documentation (push) Successful in 1m59s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2204) (push) Successful in 9m35s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m24s
Build Packages / XDS test (durin plugin) (push) Successful in 9m10s
Build Packages / XDS test (neggia plugin) (push) Successful in 9m6s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 9m44s
Build Packages / DIALS test (push) Successful in 13m0s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 11m37s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 9m19s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 12m1s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 9m56s
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 10m28s
Build Packages / build:rpm (rocky9_sls9) (pull_request) Successful in 10m56s
Build Packages / build:rpm (rocky8) (pull_request) Successful in 9m56s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 9m56s
Build Packages / Generate python client (pull_request) Successful in 41s
Build Packages / Build documentation (pull_request) Successful in 59s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 12m14s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky9) (pull_request) Successful in 13m34s
Build Packages / XDS test (durin plugin) (pull_request) Successful in 9m9s
Build Packages / XDS test (JFJoch plugin) (pull_request) Successful in 8m54s
Build Packages / XDS test (neggia plugin) (pull_request) Successful in 8m29s
Build Packages / DIALS test (pull_request) Successful in 13m48s
Build Packages / Unit tests (pull_request) Successful in 1h20m56s
Build Packages / Unit tests (push) Successful in 1h23m37s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m33s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m28s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m22s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 16m38s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 18m6s
Build Packages / build:rpm (rocky8) (push) Successful in 18m7s
Build Packages / build:rpm (rocky9) (push) Successful in 18m47s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m22s
Build Packages / Generate python client (push) Successful in 1m47s
Build Packages / Build documentation (push) Successful in 1m59s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2204) (push) Successful in 9m35s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m24s
Build Packages / XDS test (durin plugin) (push) Successful in 9m10s
Build Packages / XDS test (neggia plugin) (push) Successful in 9m6s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 9m44s
Build Packages / DIALS test (push) Successful in 13m0s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 11m37s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 9m19s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 12m1s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 9m56s
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 10m28s
Build Packages / build:rpm (rocky9_sls9) (pull_request) Successful in 10m56s
Build Packages / build:rpm (rocky8) (pull_request) Successful in 9m56s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 9m56s
Build Packages / Generate python client (pull_request) Successful in 41s
Build Packages / Build documentation (pull_request) Successful in 59s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 12m14s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky9) (pull_request) Successful in 13m34s
Build Packages / XDS test (durin plugin) (pull_request) Successful in 9m9s
Build Packages / XDS test (JFJoch plugin) (pull_request) Successful in 8m54s
Build Packages / XDS test (neggia plugin) (pull_request) Successful in 8m29s
Build Packages / DIALS test (pull_request) Successful in 13m48s
Build Packages / Unit tests (pull_request) Successful in 1h20m56s
Build Packages / Unit tests (push) Successful in 1h23m37s
This commit is contained in:
@@ -163,7 +163,6 @@ TEST_CASE("JFJochReader_MasterFile_Calibration", "[HDF5][Full]") {
|
||||
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
|
||||
TEST_CASE("JFJochReader_DefaultExperiment", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetJF(1));
|
||||
|
||||
@@ -1495,5 +1494,64 @@ TEST_CASE("JFJochReader_NXmxIntegrated", "[HDF5][Full]") {
|
||||
}
|
||||
remove("test_reader_integrated_master.h5");
|
||||
|
||||
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochReader_GetRawImage", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetJF(1));
|
||||
|
||||
x.FilePrefix("test_read_raw_image").ImagesPerTrigger(4).OverwriteExistingFiles(true);
|
||||
x.BitDepthImage(16).ImagesPerFile(2).SetFileWriterFormat(FileWriterFormat::NXmxLegacy).PixelSigned(true)
|
||||
.IndexingAlgorithm(IndexingAlgorithmEnum::FFT);
|
||||
x.Compression(CompressionAlgorithm::BSHUF_ZSTD);
|
||||
|
||||
std::vector<int16_t> image(x.GetPixelsNum());
|
||||
for (int i = 0; i < image.size(); i++)
|
||||
image[i] = static_cast<int16_t>((i * 7 + 33) % UINT16_MAX);
|
||||
|
||||
RegisterHDF5Filter();
|
||||
JFJochBitShuffleCompressor compressor(CompressionAlgorithm::BSHUF_ZSTD);
|
||||
auto compressed_image = compressor.Compress(image);
|
||||
{
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
FileWriter file_set(start_message);
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
DataMessage message{};
|
||||
message.image = CompressedImage(compressed_image, x.GetXPixelsNum(), x.GetYPixelsNum(),
|
||||
CompressedImageMode::Int16, CompressionAlgorithm::BSHUF_ZSTD);
|
||||
message.number = i;
|
||||
REQUIRE_NOTHROW(file_set.WriteHDF5(message));
|
||||
}
|
||||
EndMessage end_message;
|
||||
end_message.max_image_number = x.GetImageNum();
|
||||
file_set.WriteHDF5(end_message);
|
||||
file_set.Finalize();
|
||||
}
|
||||
{
|
||||
JFJochHDF5Reader reader;
|
||||
REQUIRE_NOTHROW(reader.ReadFile("test_read_raw_image_master.h5"));
|
||||
auto dataset = reader.GetDataset();
|
||||
CHECK(dataset->experiment.GetImageNum() == 4);
|
||||
|
||||
std::shared_ptr<JFJochReaderRawImage> reader_image;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
REQUIRE_NOTHROW(reader_image = reader.GetRawImage(i));
|
||||
|
||||
CHECK(reader_image->image.GetMode() == CompressedImageMode::Int16);
|
||||
CHECK(reader_image->image.GetCompressionAlgorithm() == CompressionAlgorithm::BSHUF_ZSTD);
|
||||
CHECK(reader_image->image.GetWidth() == x.GetXPixelsNum());
|
||||
CHECK(reader_image->image.GetHeight() == x.GetYPixelsNum());
|
||||
CHECK(reader_image->image.GetCompressedSize() == compressed_image.size());
|
||||
CHECK(reader_image->image.GetCompressed() == reader_image->image_buffer.data());
|
||||
REQUIRE(reader_image->image_buffer.size() == compressed_image.size());
|
||||
CHECK(memcmp(reader_image->image_buffer.data(), compressed_image.data(), compressed_image.size()) == 0);
|
||||
}
|
||||
}
|
||||
remove("test_read_raw_image_master.h5");
|
||||
remove("test_read_raw_image_data_000001.h5");
|
||||
remove("test_read_raw_image_data_000002.h5");
|
||||
// No leftover HDF5 objects
|
||||
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
Reference in New Issue
Block a user