Backend Development 7 min read

Progressive Image Streaming System Overview in WeChat C2C

The article explains how WeChat C2C’s backend uses progressive JPEG encoding combined with a streaming transmission approach and a dynamically adjustable minimal transport size to reduce image delivery latency and improve user experience under varying network conditions.

Tencent Architect
Tencent Architect
Tencent Architect
Progressive Image Streaming System Overview in WeChat C2C

In the WeChat C2C image service, user experience is prioritized, and the backend system adopts a progressive image format together with a clever product experience design to significantly reduce perceived latency.

1. Progressive Images JPEG supports baseline and progressive encoding. Baseline processes the image line‑by‑line, while progressive scans the whole image multiple times, requiring 3‑5× more computation than baseline but still far less than Google WebP. Progressive files are often slightly smaller and allow selective data transmission, improving success rates on poor networks.

2. Streaming Transmission Similar to a pipeline, data is processed while being transmitted. Unlike ordinary file transfer where the whole image must be received before processing, streaming lets the receiver display whatever portion has arrived, gradually improving clarity.

3. Minimal Transport Size (MTS) To avoid sending completely unreadable images, a minimal transport size is defined. The transmission factor Q = MTS / TS (total size) determines how much of the image must be sent before it is considered successfully delivered. The system can adjust Q based on network type, signal strength, and image dimensions.

4. System Architecture The simplified workflow is:

Sender preprocesses the image, converting it to progressive JPEG.

Sender packages metadata (UINs, total size, MTS) at the beginning of the data stream, followed by progressive image data.

Data is sent to a relay server, which acknowledges received lengths and parses the metadata.

When the relay receives MTS bytes, it marks the image as received, stores the data, and returns a unique fileid to the sender.

The sender then shows a successful send to the user and continues transmitting remaining data if the network permits.

The relay notifies the receiver of the new image via a signaling channel.

The receiver displays whatever portion of the image has arrived, updating the picture from blurry to clear as more data comes in.

5. Additional Notes MTS can be dynamically adjusted to balance quality and transmission time. For devices that do not support progressive formats, the download server can fill missing information to produce a complete image.

Combining progressive encoding, streaming transmission, and a dynamically adjustable minimal transport size forms the "two‑brush" strategy that makes the system effective.

backend architectureNetwork OptimizationWeChatprogressive JPEGimage streaming
Tencent Architect
Written by

Tencent Architect

We share insights on storage, computing, networking and explore leading industry technologies together.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.