Overview
ImageFlip C++ library provides high-performance image flip functions with a custom SIMD-optimized implementation. The library is compatible with the VFilter interface for integration into video processing pipelines. It supports three flip modes: left-right, up-down and both (180-degree rotation). The library automatically detects the target platform at compile time and selects the optimal SIMD instruction set: AVX2 or SSE (SSSE3) on x86/x64, NEON on ARM/AArch64, or a scalar fallback on unsupported architectures. The library uses C++17 standard.
Documentation
Documentation: GO TO DOCUMENTATION
Simple interface
namespace cr
{
namespace video
{
class ImageFlip : public VFilter
{
public:
/// Get the version of the ImageFlip class.
static std::string getVersion();
/// Initialize image flip.
bool initVFilter(VFilterParams& params) override;
/// Set VFilter parameter.
bool setParam(VFilterParam id, float value) override;
/// Get the value of a specific VFilter parameter.
float getParam(VFilterParam id) override;
/// Get the structure containing all VFilter parameters.
void getParams(VFilterParams& params) override;
/// Execute a VFilter action command.
bool executeCommand(VFilterCommand id) override;
/// Process frame.
bool processFrame(cr::video::Frame& frame) override;
/// Set mask for filter.
bool setMask(cr::video::Frame mask) override;
/// Decode and execute command.
bool decodeAndExecuteCommand(uint8_t* data, int size) override;
};
}
}

