ToFFrameGenerator.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * TI Voxel Lib component.
  3. *
  4. * Copyright (c) 2014 Texas Instruments Inc.
  5. */
  6. #ifndef VOXEL_TOF_FRAME_GENERATOR_H
  7. #define VOXEL_TOF_FRAME_GENERATOR_H
  8. #include <TI3DToFExports.h>
  9. #include "ToFCrossTalkFilter.h"
  10. #include <FrameGenerator.h>
  11. namespace Voxel
  12. {
  13. namespace TI
  14. {
  15. class TI3DTOF_EXPORT ToFFrameGenerator: public FrameGenerator
  16. {
  17. uint32_t _bytesPerPixel, _dataArrangeMode;
  18. bool _dealiased16BitMode;
  19. int _dealiasedPhaseMaskInPhaseOffset, _dealiasedPhaseMask;
  20. RegionOfInterest _roi;
  21. FrameSize _maxFrameSize, _frameSize, _size;
  22. uint32_t _rowsToMerge, _columnsToMerge;
  23. uint32_t _quadCount;
  24. Vector<double> _sineTable, _cosineTable;
  25. uint32_t _histogramEnabled;
  26. String _phaseOffsetFileName;
  27. Vector<int16_t> _phaseOffsetCorrectionData;
  28. ToFFrameType _frameType;
  29. ToFCrossTalkFilterPtr _crossTalkFilter;
  30. String _crossTalkCoefficients;
  31. FramePtr _filterInputFrame;
  32. protected:
  33. virtual bool _onReadConfiguration();
  34. virtual bool _onWriteConfiguration();
  35. virtual bool _createCrossTalkFilter();
  36. virtual bool _applyCrossTalkFilter(FramePtr &out);
  37. virtual bool _readPhaseOffsetCorrection();
  38. virtual bool _applyPhaseOffsetCorrection(Vector<uint16_t> &phaseData);
  39. bool _generateToFRawFrame(const FramePtr &in, FramePtr &out);
  40. bool _generateToFRawIQFrame(const FramePtr &in, FramePtr &out);
  41. public:
  42. ToFFrameGenerator();
  43. virtual bool generate(const ToFRawIQFramePtr &in, FramePtr &out); // Convert IQ to amplitude-phase
  44. virtual bool generate(const FramePtr &in, FramePtr &out);
  45. bool setParameters(const String &phaseOffsetFileName, const Vector<int16_t> &phaseOffsets, uint32_t bytesPerPixel,
  46. uint32_t dataArrangeMode,
  47. const RegionOfInterest &roi, const FrameSize &maxFrameSize,
  48. const FrameSize &frameSize,
  49. uint rowsToMerge, uint columnsToMerge,
  50. uint8_t histogramEnabled,
  51. const String &crossTalkCoefficients, ToFFrameType type,
  52. uint32_t quadCount,
  53. bool dealiased16BitMode,
  54. int dealiasedPhaseMask);
  55. virtual ~ToFFrameGenerator() {}
  56. };
  57. typedef Ptr<ToFFrameGenerator> ToFFrameGeneratorPtr;
  58. }
  59. }
  60. #endif