How hijoouzc/hevc_reference_software works
HM is reference software for HEVC (H.265), providing encoder and decoder applications for producing and reconstructing video bitstreams. The main workflow is configured by a user: the encoder reads raw YUV, performs HEVC coding, and writes a bitstream; the decoder reads that bitstream, reconstructs pictures, and can write raw YUV output. The tree also documents supporting bitstream tools and SEI-focused applications, represented as separate branches. The sampled excerpts show decoder I/O, syntax parsing, and MCTS extraction; other links reflect the documented product purpose and module layout rather than inspected call sites.
Main entry points: TAppEncTop.cpp Encoder app · SEIRemovalApp.cpp SEI removal · SEIFilmGrainApp.cpp Film grain tool · TAppDecTop.cpp Decoder app
Components 20
Applications
- Encoder app
source/App/TAppEncoder/TAppEncTop.cpp - Encoder options
source/App/TAppEncoder/TAppEncCfg.cpp - Decoder app
source/App/TAppDecoder/TAppDecTop.cpp
Codec engines
- HEVC encoder
source/Lib/TLibEncoder/TEncTop.cpp - Mode search
source/Lib/TLibEncoder/TEncSearch.cpp - NAL writer
source/Lib/TLibEncoder/NALwrite.cpp - HEVC decoder
source/Lib/TLibDecoder/TDecTop.cpp - Syntax parser
source/Lib/TLibDecoder/SyntaxElementParser.cpp
Shared video core
- Video coding core
source/Lib/TLibCommon - YUV I/O
source/Lib/Utilities/TVideoIOYuv.cpp - SEI messages
source/Lib/TLibCommon/SEI.cpp
Bitstream and SEI tools
- MCTS extractor
source/App/TAppMCTSExtractor/TAppMctsExtTop.cpp - Bitstream concatenator
source/App/Parcat/parcat.cpp - SEI removal
source/App/SEIRemovalApp/SEIRemovalApp.cpp - Film grain tool
source/App/SEIFilmGrainApp/SEIFilmGrainApp.cpp
Other components
- User
- Raw YUV input
- HEVC bitstream
- Reconstructed YUV
- Tool output
Connections 30
- User → Encoder app: configures
- User → Decoder app: invokes
- User → MCTS extractor: invokes
- User → Bitstream concatenator: invokes
- User → SEI removal: invokes
- User → Film grain tool: invokes
- Encoder options → Encoder app: configures
- Encoder app → YUV I/O: reads frames
- Raw YUV input → YUV I/O: supplies frames
- Encoder app → HEVC encoder: encodes
- HEVC encoder → Mode search: searches modes
- HEVC encoder → Video coding core: uses coding data
- Encoder app → NAL writer: writes NAL units
- NAL writer → HEVC bitstream: produces
- Decoder app → HEVC decoder: decodes
- HEVC bitstream → Decoder app: supplies stream
- HEVC decoder → Syntax parser: parses syntax
- HEVC decoder → Video coding core: uses coding data
- Decoder app → YUV I/O: writes pictures
- YUV I/O → Reconstructed YUV: produces
- MCTS extractor → HEVC decoder: parses picture headers
- MCTS extractor → HEVC bitstream: reads and rewrites
- Bitstream concatenator → HEVC bitstream: combines streams
- Bitstream concatenator → Tool output: writes
- SEI removal → HEVC bitstream: reads stream
- SEI removal → SEI messages: processes messages
- SEI removal → Tool output: writes stream
- Film grain tool → HEVC bitstream: reads stream
- Film grain tool → SEI messages: processes grain SEI
- Film grain tool → Tool output: writes stream