mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-06 05:28:31 +09:00
TEV format wip
This commit is contained in:
@@ -672,6 +672,87 @@ Delta block format:
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
TSVM Enhanced Video (TEV) Format
|
||||
Created by Claude on 2025-08-17
|
||||
|
||||
TEV is a modern video codec optimized for TSVM's 4096-color hardware, featuring
|
||||
DCT-based compression, motion compensation, and efficient temporal coding.
|
||||
|
||||
# File Structure
|
||||
\x1F T S V M T E V
|
||||
[HEADER]
|
||||
[PACKET 0]
|
||||
[PACKET 1]
|
||||
[PACKET 2]
|
||||
...
|
||||
|
||||
## Header (24 bytes)
|
||||
uint8 Magic[8]: "\x1FTSVM TEV"
|
||||
uint8 Version: 1
|
||||
uint8 Flags: bit 0 = has audio
|
||||
uint16 Width: video width in pixels
|
||||
uint16 Height: video height in pixels
|
||||
uint16 FPS: frames per second
|
||||
uint32 Total Frames: number of video frames
|
||||
uint8 Quality: quantization quality (0-7, higher = better)
|
||||
byte[5] Reserved
|
||||
|
||||
## Packet Types
|
||||
0x10, 0x00: I-frame (intra-coded frame)
|
||||
0x11, 0x00: P-frame (predicted frame)
|
||||
0x20, 0x00: MP2 audio packet
|
||||
0xFF, 0xFF: sync packet
|
||||
|
||||
## Video Packet Structure
|
||||
uint16 Packet Type
|
||||
uint32 Compressed Size
|
||||
* Zstd-compressed Block Data
|
||||
|
||||
## Block Data (per 8x8 block)
|
||||
uint8 Mode: encoding mode
|
||||
0x00 = SKIP (copy from previous frame)
|
||||
0x01 = INTRA (DCT-coded, no prediction)
|
||||
0x02 = INTER (DCT-coded with motion compensation)
|
||||
0x03 = MOTION (motion vector only)
|
||||
int16 Motion Vector X (1/4 pixel precision)
|
||||
int16 Motion Vector Y (1/4 pixel precision)
|
||||
uint16 Coded Block Pattern (which 8x8 have non-zero coeffs)
|
||||
int16 DCT Coefficients[3][64]: quantized R,G,B transform coefficients
|
||||
|
||||
## DCT Quantization
|
||||
TEV uses 8 quality levels (0=lowest, 7=highest) with progressive quantization
|
||||
tables optimized for perceptual quality. DC coefficients use fixed quantizer
|
||||
of 8, while AC coefficients are quantized according to quality tables.
|
||||
|
||||
## Motion Compensation
|
||||
- Search range: ±16 pixels
|
||||
- Sub-pixel precision: 1/4 pixel
|
||||
- Block size: 8x8 pixels
|
||||
- Uses Sum of Absolute Differences (SAD) for motion estimation
|
||||
- Bilinear interpolation for sub-pixel motion vectors
|
||||
|
||||
## Color Space
|
||||
TEV operates in native 4096-color mode (4:4:4 RGB, 4 bits per channel).
|
||||
No color space conversion required - direct compatibility with graphics mode 2.
|
||||
|
||||
## Compression Features
|
||||
- 8x8 DCT blocks (vs 4x4 in iPF)
|
||||
- Temporal prediction with motion compensation
|
||||
- Rate-distortion optimized mode selection
|
||||
- Zstd compression with video-optimized settings
|
||||
- Hardware-accelerated encoding/decoding functions
|
||||
|
||||
## Performance Comparison
|
||||
TEV achieves 60-80% better compression than iPF formats while maintaining
|
||||
equivalent visual quality, with significantly faster decode performance due
|
||||
to larger block sizes and hardware acceleration.
|
||||
|
||||
## Audio Support
|
||||
Reuses existing MP2 audio infrastructure from TSVM MOV format for seamless
|
||||
compatibility with existing audio processing pipeline.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Sound Adapter
|
||||
|
||||
Endianness: little
|
||||
|
||||
Reference in New Issue
Block a user