Table of Content
Source: draw.io
The below table gives a brief overview of design of src/*
Filename | Functionality |
---|---|
activity.rs | Implementation of Activity masking functions for planes |
api/*.rs | Contains public API of rav1e, for more information check documentation |
arm/32/*.S | ARM optimised functions for different encoding tools imported from dav1d by release |
arm/64/*.S | AArch64 optimised functions for different encoding tools imported from dav1d by release |
arm/asm.S | Common functions used for Assembly implementation |
arm/tables.S | Tables for various ARM optimised functions |
asm/*/*.rs | High-level functions for binding rust and assembly functions for x86 and AArch64 Architecture |
bin/common.rs | Functions, enums, structures used command-line tool and debugging |
bin/rav1e.rs | CLI Interface for encoding from y4m files with rav1e |
bin/stats.rs | Functions for displaying Frame summary, progress info, metrics of the encoding process |
bin/kv.rs | Serialisation configuration of Key-value strings |
bin/error.rs | Functions and enums to parse various errors and displaying |
bin/muxer/*.rs | Contains IVF Muxer functions for header definition, writing frames and flushing |
bin/decoder/*.rs | Decoder related structures and functions |
capi.rs | C Compatible API for using rav1e as a library |
cdef.rs | CDEF Filter implementation for the encoder |
context/*.rs | High-level functions that write symbols to the bitstream, and maintain context |
cpu_features/*.rs | Functions to toggle CPU optimisations for different architectures |
deblock.rs | Deblocking loop filter implementation for addressing blocking artifacts |
dist.rs | SAD and SATD functions and implementation for various encoder functions |
ec.rs | Low-level implementation of the entropy coder, which directly writes the bitstream |
encoder.rs | Low-level implementation of the AV1 encoder tools functions and structures |
entropymode.rs | Low-level implementation of entropy mode |
ext/x86/x86inc.asm | X86 Assembly header providing an easier way between different calling conventions (x86_32, win64, linux64) |
frame/*.rs | Misc encoder specific frame and plane enums apart |
fuzzing.rs | Functions to initialise fuzz targets for encoder process |
header.rs | The enums and structs of bitstream headers for writing |
lib.rs | The top level library, contains code to write headers, manage buffers, and iterate through each superblock |
lrf.rs | Low-level implementation of Loop restoration filter |
mc.rs | Low-level implementation of Motion Compensation of the encoding process |
me.rs | Motion Estimation related structures and functions of the encoding process |
partition.rs | Functions and enums to manage partitions (subdivisions of a superblock) |
predict.rs | Intra and inter prediction implementations |
quantize.rs | Quantization and dequantization functions for coefficients |
rate.rs | Low-level implementation of rate control API (Constant Quantizer) |
rdo.rs | RDO-related structures and distortion computation functions |
rdo_tables.rs | Set of RDO rate values used for RDO related calculation |
recon_intra.rs | Functions used for directional intra-prediction modes |
scan_order.rs | Functions definitions for various block-level scan orders |
scenechange/*.rs | Low-level implementation of fast screen-cut detection b/w frames for adaptive keyframe selection |
segmentation.rs | Top-level implementation of segmentation index coding |
test_encode_decode/*.rs | Various encoder-decoder tests using dav1d and aom |
tiling/*.rs | Implementation of tiling during encoding |
token_cdfs.rs | Token cdf header for entropy mode |
transform/*.rs | Implementations of DCT and ADST transforms |
util/*.rs | Misc utility code |
x86/*.rs | X86 optimised functions for various encoder functions along with functions imported from dav1d by release |