kaira.models.image.Yilmaz2024DeepJSCCWZSmallDecoder

Inheritance diagram of Yilmaz2024DeepJSCCWZSmallDecoder

Inheritance diagram for Yilmaz2024DeepJSCCWZSmallDecoder

class kaira.models.image.Yilmaz2024DeepJSCCWZSmallDecoder(N: int, M: int, encoder: Yilmaz2024DeepJSCCWZSmallEncoder, *args: Any, **kwargs: Any)[source]

Bases: BaseModel

DeepJSCC-WZ-sm Decoder Module [Yilmaz et al., 2024].

This lightweight decoder reconstructs the original image from the received noisy representation and available side information. It employs a symmetric structure to the encoder with upsampling operations and feature fusion with side information.

The decoder follows a multi-scale fusion approach where the side information is encoded using the same encoder as the main signal, and features are fused at multiple scales during decoding. This approach effectively exploits correlations between the received signal and the side information.

DeepJSCC-WZ-sm shares encoder parameters for encoding image at the transmitter and encoding side information at the receiver, providing parameter efficiency.

Key features: - Progressive upsampling to restore spatial dimensions (H/16×W/16 → H×W) - Multi-scale side information fusion at 5 different resolution levels - Attention mechanisms to focus on important features - Channel-adaptive processing through AFModule layers - Residual connections for improved gradient flow

Methods

__init__

Initialize the DeepJSCC-WZ-sm decoder.

forward

Decode the received representation into a reconstructed image.

Attributes

encoder

__init__(N: int, M: int, encoder: Yilmaz2024DeepJSCCWZSmallEncoder, *args: Any, **kwargs: Any) None[source]

Initialize the DeepJSCC-WZ-sm decoder.

Parameters:
  • N (int) – Number of intermediate channels in the residual blocks. Controls the network capacity and feature dimension.

  • M (int) – Number of input channels from the encoded representation. Matches the encoder’s output channel count.

  • encoder (Yilmaz2024DeepJSCCWZSmallEncoder) – Reference to the small encoder model for feature sharing. This enables the decoder to process side information using the same parameters as the main encoder.

  • *args – Variable positional arguments passed to the base class.

  • **kwargs – Variable keyword arguments passed to the base class.

encoder: Yilmaz2024DeepJSCCWZSmallEncoder
forward(x: Tensor, x_side: Tensor, csi: Tensor, *args: Any, **kwargs: Any) Tensor[source]

Decode the received representation into a reconstructed image.

This method first processes the side information through the shared encoder, then progressively decodes the received signal while fusing with side information features at multiple scales.

Parameters:
  • x (torch.Tensor) – Received noisy encoded representation of shape [B, M, H/16, W/16].

  • x_side (torch.Tensor) – Side information tensor of shape [B, 3, H, W] to assist in decoding.

  • csi (torch.Tensor) – Channel state information tensor of shape [B, 1, 1, 1].

  • *args – Additional positional arguments (passed to internal layers).

  • **kwargs – Additional keyword arguments (passed to internal layers).

Returns:

Reconstructed image tensor of shape [B, 3, H, W].

Return type:

torch.Tensor