docs/book/src/developing/architecture.md
The basic working principals of Video2X and its historical architectures.
Below is the earliest architecture of Video2X. It extracts all of the frames from the video using FFmpeg, processes all frames, and stores them into a folder before running FFmpeg again to convert all of the frames back into a video. The drawbacks of this approach are apparent:
Video2X architecture before version 5.0.0
Video2X 5.0.0's architecture was designed to address the inefficient disk I/O issues. This version uses frame serving and streamlines the process. All stages are started simultaneously, and frames are passed between stages through stdin/stdout pipes. However, this architecture also has several issues:
Video2X 5.x.x architecture
Video2X 6.0.0 (Current)
The newest version of Video2X's architecture addresses the issues of the previous architecture while improving efficiency.
AVFrame structs. Their pixel formats are only converted when needed.
Video2X 6.0.0 architecture