-
Notifications
You must be signed in to change notification settings - Fork 154
Open
Description
Summary
Implementation of ZGFX compression for server-side EGFX encoding is ready for submission. This adds the encoding counterpart to the existing decompressor in ironrdp-graphics.
What's Implemented
- LZ77-variant compressor with O(1) hash table lookup
- Huffman token encoding per MS-RDPEGFX specification
- Segment wrapper for single and multipart framing
- Round-trip compatible with existing Decompressor
- 46 tests covering compression, wrapping, and edge cases
Context
This addresses work noted as incomplete in PR #648 (elmarco's WIP GFX) and supports the server-side EGFX implementation in PR #1057. The compression enables efficient bandwidth usage for EGFX PDU transmission.
Submission Options
I have this ready to submit and wanted to coordinate on preferred approach:
- Single PR - compressor.rs + wrapper.rs together
- Split PRs - wrapper.rs first (simpler), compressor.rs second
Layer Considerations
Current implementation places compression alongside the existing decompressor in ironrdp-graphics. An alternative would be a dedicated compression crate, but this deviates from current structure.
Related
- Issue Add GFX ([MS-RDPEGFX]) support #427 - EGFX feature request
- PR WIP: Add GFX ([MS-RDPEGFX]) support #648 - Lists ZGFX compression as incomplete
- PR feat(egfx): add MS-RDPEGFX Graphics Pipeline Extension #1057 - EGFX server implementation
joeMJ
Metadata
Metadata
Assignees
Labels
No labels