Chunked Image Transmission for Encrypted Environments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In end-to-end encrypted communication environments, transmitting images like JPEGs is inefficient due to the lack of intermediate servers that can analyze and process transcoding parameters, leading to slow loading and high bandwidth waste, especially when users do not view the images.

Innovation Solution

Images are broken into chunks, such as a thumbnail and high-quality chunks, with the sending client determining chunk sizes and calculating HMACs, allowing for secure encryption and storage, enabling clients to render images progressively without server assistance, and users can choose to download only necessary quality levels based on network conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If images are transmitted as complete files over the network, then the full image quality is preserved, but the loading time increases and bandwidth is wasted when users do not view the images

Engineering Contradiction:
Improveimage qualityVSAvoidloading time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The image file is segmented into multiple chunks of decreasing quality (first chunk contains highest quality data, subsequent chunks contain progressively lower quality data). The receiving device can render the image progressively as chunks are received, allowing users to see a usable image quickly while option to load additional chunks for enhanced quality. This resolves the contradiction by enabling both fast initial loading and optional full quality retrieval.

Inventive Principle:
Principle #1Segmentation

2Productivity

If complete images are automatically downloaded, then users have immediate access to full-quality images, but network bandwidth is wasted when users do not view the images

Engineering Contradiction:
Improveimage access speedVSAvoidbandwidth usage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The image transmission is segmented into priority-based chunks where the first chunk provides sufficient quality for most viewing needs. Users can access the image quickly with minimal bandwidth consumption. If users want higher quality, they can request additional chunks. This segmentation approach eliminates wasted bandwidth while maintaining fast image access.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of transmitting the complete image immediately, the system transmits a partial image (first chunk with highest quality data) that is sufficient for most purposes. Additional chunks are transmitted only if needed, avoiding excessive bandwidth usage while ensuring fast initial access.

Inventive Principle:
Principle #16Partial or excessive action

3Loss of energy

If images are broken into chunks with client-side rendering, then bandwidth usage is reduced and loading speed improves, but the system complexity increases due to client-side processing requirements

Engineering Contradiction:
Improvebandwidth usageVSAvoidclient-side processing complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The receiving device performs self-service by autonomously rendering images from the received chunks without requiring complex server-side processing or intermediate transcoding servers. The client device uses its own computational resources to progressively display the image as chunks are received, simplifying the overall system architecture while achieving bandwidth efficiency.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11425205B1Methods and systems for transmitting an image in chunks
Publication Date: 2022.08.23 WHATSAPP LLC
  • US11425205B1 patent drawing
  • US11425205B1 patent drawing
  • US11425205B1 patent drawing

AI summary

Exemplary embodiments relate to techniques for improving the speed and rendering quality of an image (e.g., a JPEG), and are especially useful in an end-to-end encrypted environment. The image may be analyzed on the sending-client side and the image data is broken into multiple categories. In one embodiment, the image data is broken into four chunks, where each chunk could be rendered (in conjunction with previous chunks) to provide increasingly high levels of quality (e.g., a thumbnail chunk, a mid-quality chunk, a high-quality chunk, and a full-quality chunk). The image is uploaded to a blob store, and a message is sent to the receiving client with image information. At the recipient side, the JPEG image data is retrieved from the blob store and each chunk is rendered at progressively increasing levels of quality. Consequently, images are rendered faster, and the quality increases over time.