@class Forwarp, NSString, NSObject, SynthesisGridNet, Tiling, Pyramid, Backwarp; @protocol MTLBuffer, OS_dispatch_semaphore, MTLTexture, MTLCommandQueue, MTLDeviceSPI; @interface Synthesis : NSObject <FRCSynthesis> { id<MTLDeviceSPI> _device; id<MTLCommandQueue> _commandQueue; Forwarp *_forwarp; Backwarp *_backwarp; SynthesisGridNet *_gridNet; Pyramid *_pyramid; struct __CVBuffer { } *_normalizedFirst; struct __CVBuffer { } *_normalizedSecond; struct __CVBuffer { } *_forwardFlow; struct __CVBuffer { } *_backwardFlow; id<MTLTexture> _forwardLossTexture[5]; id<MTLTexture> _backwardLossTexture[5]; id<MTLTexture> _forwardFlowTexture[5]; id<MTLTexture> _backwardFlowTexture[5]; id<MTLBuffer> _bestErrorBuffer[5]; id<MTLBuffer> _warpOutputBuffer[5]; id<MTLTexture> _filteredForwardLossTexture; id<MTLTexture> _filteredBackwarLossTexture; NSObject<OS_dispatch_semaphore> *_completionSemaphore; struct { id<MTLTexture> features[5]; } _firstFeatures; struct { id<MTLTexture> features[5]; } _secondFeatures; struct { struct __CVBuffer *features[5]; } _warpedForwardFeatures[3]; struct { struct __CVBuffer *features[5]; } _warpedBackwardFeatures[3]; BOOL _resourcesPreAllocated; Tiling *_tiling; unsigned int _numTiles; long long _originalUsage; struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; } *_imageTileInfo; struct __CVBuffer *_firstImageTiles[3]; struct __CVBuffer *_secondImageTiles[3]; struct __CVBuffer *_forwardFlowTiles[3]; struct __CVBuffer *_backwardFlowTiles[3]; struct __CVBuffer *_outputTiles[3]; unsigned long long _numWarpedBuffers; unsigned long long _bufferIndex; unsigned long long _pyramidLevels; struct __CVPixelBufferPool { } *_normalizedBufferPool; id<MTLTexture> _dilatedForwardMask; id<MTLTexture> _dilatedBackwardMask; id<MTLTexture> _firstWarpedTexture; id<MTLTexture> _secondWarpedTexture; struct __CVPixelBufferPool { } *_dcBufferPool; long long _fullWarpStartLevel; BOOL _filterErrorMap; } @property (nonatomic) BOOL tilingEnabled; @property (nonatomic) long long usage; @property (nonatomic) BOOL framePipeline; @property (nonatomic) unsigned long long synthesisMode; @property (nonatomic) int flowLevel; @property (nonatomic) BOOL temporalFiltering; @property (nonatomic) BOOL linearSplatting; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)releaseResources; - (id)init; - (void)dealloc; - (id)initWithMode:(long long)a0; - (void).cxx_destruct; - (void)allocateResources; - (void)allocateFeatures; - (void)createTilesFromFirstImage:(struct __CVBuffer { } *)a0 secondImage:(struct __CVBuffer { } *)a1 flowForward:(struct __CVBuffer { } *)a2 flowBackward:(struct __CVBuffer { } *)a3; - (long long)usageForTiling:(long long)a0; - (void)allocateFeaturesForUsage:(long long)a0 Level:(int)a1; - (void)releaseFeatures; - (void)allocateFlowAndLossTextures; - (void)allocateForwardWarpBuffersForLevel:(int)a0; - (void)allocateForwardWarpInternalBuffers; - (void)allocateOutputTile:(struct __CVBuffer **)a0 tileInfo:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; } *)a1; - (void)allocateSplattingTextures; - (void)allocateWarpedFeatures; - (id)backwardLossTextureLevel:(int)a0; - (id)bestErrorBufferLevel:(int)a0; - (void)calcBackwarpLossFirst:(id)a0 second:(id)a1 timeScale:(float)a2; - (void)createFeaturePyramid:(struct __CVBuffer { } *)a0 second:(struct __CVBuffer { } *)a1; - (void)createFeaturesFromFirstImage:(struct __CVBuffer { } *)a0 secondImage:(struct __CVBuffer { } *)a1 flowForward:(struct __CVBuffer { } *)a2 flowBackward:(struct __CVBuffer { } *)a3; - (BOOL)createModules; - (void)encodeForwarpInputsForBlendToCommandBuffer:(id)a0 timeScale:(float)a1; - (void)encodeForwarpToCommandBuffer:(id)a0 level:(int)a1 firstTexture:(id)a2 secondTexture:(id)a3 firstWarpedTexture:(id)a4 secondWarpedTexture:(id)a5 timeScale:(float)a6 useFlowMagnitude:(BOOL)a7; - (void)encodeSubsampleToCommandBuffer:(id)a0 flow:(id *)a1 loss:(id *)a2; - (void)filterGridNetOutput:(struct __CVBuffer { } *)a0 timeScale:(float)a1 destination:(struct __CVBuffer { } *)a2; - (struct { id x0[5]; } *)firstFeatures; - (id)forwardFlowTextureLevel:(int)a0; - (id)forwardLossTextureLevel:(int)a0; - (void)forwardWarpForLevel:(int)a0 feature:(id)a1 flow:(id)a2 error:(id)a3 timeScale:(float)a4 warpedOutput:(id)a5 fullWarp:(BOOL)a6 callback:(id /* block */)a7; - (void)forwardWarpForLevel:(int)a0 first:(id)a1 second:(id)a2 timeScale:(float)a3 forwardOutput:(id)a4 backwardOutput:(id)a5; - (void)getWarpedFeatureSizeForLevel:(int)a0 tensorSize:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; } *)a1; - (void)releaseFeaturesForLevel:(int)a0; - (void)releaseForwardWarpInternalTextures; - (void)releaseForwardWarpInternalTexturesAndBuffers; - (void)releaseForwardWarpLinearBuffersForLevel:(int)a0; - (void)releaseForwardWarpTexturesForLevel:(int)a0; - (void)releaseSplattingTextures; - (void)releaseTiles; - (void)releaseWarpedFeaturesForIndex:(unsigned long long)a0; - (void)retainFeatures; - (struct { id x0[5]; } *)secondFeatures; - (BOOL)switchUsageTo:(long long)a0; - (struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })synthesisTensorSizeForLevel:(unsigned int)a0; - (struct __CVBuffer { } *)synthesizeFrameForTimeScale:(float)a0 frameIndex:(unsigned long long)a1; - (void)synthesizeFrameFromFeatureForward:(struct { struct __CVBuffer *x0[5]; } *)a0 backward:(struct { struct __CVBuffer *x0[5]; } *)a1 destination:(struct __CVBuffer { } *)a2 callback:(id /* block */)a3; - (struct __CVBuffer { } *)synthesizeFrameFromFirstImage:(struct __CVBuffer { } *)a0 secondImage:(struct __CVBuffer { } *)a1 flowForward:(struct __CVBuffer { } *)a2 flowBackward:(struct __CVBuffer { } *)a3 timeScale:(float)a4 frameIndex:(unsigned long long)a5; - (void)synthesizeImageFromFirstImage:(struct __CVBuffer { } *)a0 secondImage:(struct __CVBuffer { } *)a1 flowForward:(struct __CVBuffer { } *)a2 flowBackward:(struct __CVBuffer { } *)a3 timeScale:(float)a4 destination:(struct __CVBuffer { } *)a5; - (void)synthesizeImageWithFlowSplattingFromFirstImage:(struct __CVBuffer { } *)a0 secondImage:(struct __CVBuffer { } *)a1 flowForward:(struct __CVBuffer { } *)a2 flowBackward:(struct __CVBuffer { } *)a3 timeScale:(float)a4 destination:(struct __CVBuffer { } *)a5; - (void)synthesizeImageWithForwarpOnlyFromFirstImage:(struct __CVBuffer { } *)a0 secondImage:(struct __CVBuffer { } *)a1 flowForward:(struct __CVBuffer { } *)a2 flowBackward:(struct __CVBuffer { } *)a3 timeScale:(float)a4 destination:(struct __CVBuffer { } *)a5; - (struct __CVBuffer { } *)synthesizeTilesWithTimeScale:(float)a0; - (void)warpFeatureLevel:(int)a0 timeScale:(float)a1; - (void)warpFeaturesPerLayerWithFlowForward:(struct __CVBuffer { } *)a0 flowBackward:(struct __CVBuffer { } *)a1 timeScale:(float)a2; - (id)warpOutputBufferLevel:(int)a0; - (struct { struct __CVBuffer *x0[5]; } *)warpedBackwardFeatures; - (struct { struct __CVBuffer *x0[5]; } *)warpedForwardFeatures; @end