Grok 20.3.2
ImageComponentFlow.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2026 Grok Image Compression Inc.
3 *
4 * This source code is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License, version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This source code is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Affero General Public License for more details.
12 *
13 * You should have received a copy of the GNU Affero General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 */
17
18#pragma once
19
20#include "FlowComponent.h"
21
22namespace grk
23{
30struct Resflow
31{
36 Resflow(void);
41 ~Resflow(void);
42
53 void disableWavelet(void);
58 void graph(void);
65 Resflow* addTo(tf::Taskflow& composition);
66
73 Resflow* precede(Resflow* successor);
80 Resflow* precede(FlowComponent* successor);
87
108};
109
116{
117public:
123 explicit ImageComponentFlow(uint8_t numresolutions);
128 virtual ~ImageComponentFlow(void);
133 void setRegionDecompression(void);
143 Resflow* getResflow(uint8_t resFlowNo);
148 void graph(void);
155 ImageComponentFlow* addTo(tf::Taskflow& composition);
168 FlowComponent* getPrePostProc(tf::Taskflow& codecFlow);
169
190};
191
192} // namespace grk
A collection of tasks which can be scheduled as a single task.
Definition FlowComponent.h:28
ImageComponentFlow(uint8_t numresolutions)
Construct a new ImageComponentFlow object.
Definition ImageComponentFlow.cpp:79
uint8_t numResflows_
number of Resflow objects
Definition ImageComponentFlow.h:174
FlowComponent * getPrePostProc(tf::Taskflow &codecFlow)
Gets pre or post processing flow.
Definition ImageComponentFlow.cpp:131
void graph(void)
Creates DAG for this flow.
Definition ImageComponentFlow.cpp:105
virtual ~ImageComponentFlow(void)
Destroy the ImageComponentFlow object.
Definition ImageComponentFlow.cpp:95
FlowComponent * waveletFinalCopy_
FlowComponent for final wavelet copy into output buffer
Definition ImageComponentFlow.h:184
ImageComponentFlow * addTo(tf::Taskflow &composition)
Adds this flow to another tf::Taskflow as a composition.
Definition ImageComponentFlow.cpp:118
FlowComponent * getFinalFlowT1(void)
Gets final flow.
Definition ImageComponentFlow.cpp:114
Resflow * resFlows_
array of Resflow objects
Definition ImageComponentFlow.h:179
FlowComponent * prePostProc_
FlowComponent for pre or post processing
Definition ImageComponentFlow.h:189
Resflow * getResflow(uint8_t resFlowNo)
Generates block flow task name.
Definition ImageComponentFlow.cpp:127
void setRegionDecompression(void)
Enables region decompression.
Definition ImageComponentFlow.cpp:101
ResWindow.
Definition CompressedChunkCache.h:36
Stores FlowComponent for packets, blocks, horizontal wavelet and vertical wavelet,...
Definition ImageComponentFlow.h:31
FlowComponent * getFinalFlowT1(void)
Gets final FlowComponent in T1 stage.
Definition ImageComponentFlow.cpp:69
bool doWavelet_
if true, perform wavelet, otherwise do not perform wavelet
Definition ImageComponentFlow.h:107
Resflow * precede(Resflow *successor)
Schedules this Resflow to precede another Resflow.
Definition ImageComponentFlow.cpp:51
Resflow * addTo(tf::Taskflow &composition)
Adds all FlowComponents to another tf::Taskflow.
Definition ImageComponentFlow.cpp:39
FlowComponent * getPacketsFlow(void)
Gets the Packets FlowComponent.
FlowComponent * waveletVert_
Vertical wavelet FlowComponent.
Definition ImageComponentFlow.h:102
Resflow(void)
Construct a new Resflow object.
Definition ImageComponentFlow.cpp:22
FlowComponent * waveletHoriz_
Horizontal wavelet FlowComponent.
Definition ImageComponentFlow.h:97
~Resflow(void)
Destroy the Resflow object.
Definition ImageComponentFlow.cpp:73
FlowComponent * blocks_
blocks FlowComponent
Definition ImageComponentFlow.h:92
void graph(void)
creates FlowComponent DAG
Definition ImageComponentFlow.cpp:31
void disableWavelet(void)
Disables wavelet.
Definition ImageComponentFlow.cpp:27