## 3 VRIS Image Steganography Model
### Basic Results of the VRIS Basic Model  
#### 3.3.1 Visual-Masker  
In designing the Visual-Masker module (as shown in Figure 4 and Algorithm 1), we focused on achieving efficient steganography of secret images within cover images while maintaining the visual naturalness of the cover image. To achieve this, we constructed the module based on convolutional neural networks, dividing it into two parts: feature extraction and information hiding. ```
1:FUNCTION Initialize_Visual-Masker (input_S, input_C):
2:# Step 1: Process the secret image through the initial convolutional layer
3: x1 = leaky_relu(01(conv1(input_S))) # Process input_S with conv1, bn1
4: x2 = leaky_relu(bb2(conv2(input_S))) # Process input_S with conv2, bn2
5: x2 = PAD (x2, (0, 1, 0)) # and x2 with zeros at the bottom right
6: x3 = leaky_relu(bn3(conv39(input_S))) # Process input_S with conv3, bn3
7: x4 = CONCATENATE (x1, x2, x3) # Concatenate x1, x2, x3 along the channel dimension
8: # Step 2: Further process feature map x4 through deeper convolutional layers
9: x1 = leaky_relu(01(conv4(conv4))) # Process x4 with conv4, bn
10: x2 = leaky_relu(bn5(conv5(x4))) # Process x4 with conv5, bn5
11: x2 = PAD (x2, (0, 1, 0)) # Pad x2 with zeros at the bottom right
12: x3 = leaky_relu(bn6(conv6(x4))) # Process x4 with conv6, bn6
13: x4_prime = CONCATENATE (x1, x2, x3) # Obtain processed feature map x4'
14: # Step 3: Concatenate the cover image input_C, with feature map x4'
15: x_combined = CONCATENATE (input_C, x4_prime) # Concatenate along the channel dimension
16: # Step 4: Further process x_combined through a hidden network
17: FOR i FROM i TO N # N is the number of repetitions
18: x1_hidden = leaky_relu(bn7(conv7(x_combined))) # Process with conv7, bn7
19: x2_hidden = leaky_relu(bn8(conv8(x_combined))) # Process with conv8, bn8
20: x2_hidden = PAD (x2_hidden, (0, 1, 0)) # Pad x2_hidden
21: x3_hidden = leaky_relu(bn9(conv9(x_combined))) # Process with conv9, bn9
22: x_combined = CONCATENATE (x1_hidden, x2_hidden, x3_hidden)
# Concatenate hidden feature maps
23: x-hidden = x_combined # Final hidden feature map containing secret image information
24: # Step 5: Output the final image
25: output-image = tanh(conv16(x-hidden)) # Process with conv16 and apply tanh activation
26: RETURN output-image # First-level encrypted image
```  
**Algorithm 1** Algorithm of the Visual-Masker. First, the feature extraction module preprocesses the cover image through three parallel convolutional layers (conv1, conv2, conv3). Each layer employs different kernel sizes (3 \(\times\) 3, 4 \(\times\) 4, and 5 \(\times\) 5). This multi-scale approach is rooted in the varying abilities of kernel sizes to capture image details: the 3 \(\times\) 3 kernel excels at extracting local information, while the 4 \(\times\) 4 and 5 \(\times\) 5 kernels are better for capturing global features. The acquired feature maps  
Figure 3: Comparison of runtime performance after applying random subsampling. are concatenated along the channel dimension to form a richer feature map, which is then concatenated with the secret image in the same dimension. This achieves the fusion of the secret image with the processed cover image features. The information-hiding module is responsible for deeply merging the extracted features of the secret image with the cover image. We utilize a series of convolutional layers and batch normalization layers (from conv7 to conv21) to further process the fused feature map obtained from the feature extraction module. Throughout this process, we not only adjust the dimensions of the feature maps but also enhance feature extraction and incorporate information from the secret image. This ensures that the embedded secret information remains concealed while preserving the cover image's visual naturalness and authenticity. Additionally, multiple concatenation operations occur to combine outputs from different convolutional layers along the channel dimension, allowing us to form a more complex feature representation.