Sirius  0.0.0
image_streamer.h
Go to the documentation of this file.
1 
22 #ifndef SIRIUS_IMAGE_STREAMER_H_
23 #define SIRIUS_IMAGE_STREAMER_H_
24 
25 #include "sirius/filter.h"
27 
30 #include "sirius/gdal/wrapper.h"
31 
32 namespace sirius {
33 
38  public:
51  ImageStreamer(const std::string& input_path, const std::string& output_path,
52  const Size& block_size, const ZoomRatio& zoom_ratio,
53  const FilterMetadata& filter_metadata,
54  unsigned int max_parallel_workers);
55 
63  void Stream(const IFrequencyResampler& frequency_resampler,
64  const Filter& filter);
65 
66  private:
76  void RunMonothreadStream(const IFrequencyResampler& frequency_resampler,
77  const Filter& filter);
78 
91  void RunMultithreadStream(const IFrequencyResampler& frequency_resampler,
92  const Filter& filter);
93 
94  private:
95  unsigned int max_parallel_workers_;
96  Size block_size_;
97  ZoomRatio zoom_ratio_;
98  gdal::InputStream input_stream_;
99  gdal::ResampledOutputStream output_stream_;
100 };
101 
102 } // namespace sirius
103 
104 #endif // SIRIUS_IMAGE_STREAMER_H_
void Stream(const IFrequencyResampler &frequency_resampler, const Filter &filter)
Stream the input image, compute the resampling and stream output data.
Interface that frequency resampler should implement.
Definition: i_frequency_resampler.h:39
Definition: exception.h:27
Frequency filter.
Definition: filter.h:52
Data class that represents zoom ratio as input_resolution/output_resolution.
Definition: types.h:105
Image streamer with monothread or multithread strategies.
Definition: image_streamer.h:37
Data class that represents the size of an image.
Definition: types.h:38
Stream an image in block.
Definition: input_stream.h:39
ImageStreamer(const std::string &input_path, const std::string &output_path, const Size &block_size, const ZoomRatio &zoom_ratio, const FilterMetadata &filter_metadata, unsigned int max_parallel_workers)
Instanciate an image streamer which will stream input image, apply a resampling transformation and wr...
Data class that contains Filter metadata.
Definition: filter.h:41
Write a resampled image by block.
Definition: resampled_output_stream.h:38