
# 传输数据压缩配置
请在本地**hw_r2c_sdk-*x.x.x*/r2c_sdk_python/config** 文件夹找到机器人配置文件**robot_*{不同的机器人}*_config.yaml**，比如robot_flexiv_config.yaml。
**传输数据压缩** 主要通过图像压缩配置实现，图像压缩通过机器人配置文件的**device_to_r2c.** **mappings.transforms**配置。
#### transforms图像转换器
在**device_to_r2c.** **mappings.transforms**指定转换器，对原始图像数据进行编码。
![](https://support.huaweicloud.com/sdkreference-cloudrobo/public_sys-resources/note_3.0-zh-cn.png)
ndarray_to_\* 转换器要求**BGR**输入。如果原始数据为RGB，需要先加rgb_to_bgr。
表1transforms可用转换器 
| 注册名                          | 输入                  | 输出          | 可调参数          |
|:---|:---|:---|:---|
| ndarray_to_jpeg              | BGR ndarray         | JPEG bytes  | quality（默认95） |
| ndarray_to_webp              | BGR ndarray         | WebP bytes  | quality（默认80） |
| ndarray_to_png               | BGR ndarray         | PNG bytes   | 无（无损）         |
| ros_image_to_jpeg            | ROS Image           | JPEG bytes  | quality（默认95） |
| ros_image_to_webp            | ROS Image           | WebP bytes  | quality（默认80） |
| ros_compressed_image_to_jpeg | ROS CompressedImage | JPEG bytes  | quality（默认95） |
| ros_compressed_image_to_webp | ROS CompressedImage | WebP bytes  | quality（默认80） |
| rgb_to_bgr                   | RGB ndarray         | BGR ndarray | 无             |
   
**transforms写法示例**
```
# 写法 1: 单字符串
transforms: ndarray_to_jpeg
# 写法 2: 列表串联
transforms:
  - rgb_to_bgr
  - ndarray_to_webp
# 写法 3: 带 quality 参数
transforms:
  - ndarray_to_webp:
      quality: 70
```
#### 图像压缩格式对比
表2图像压缩格式对比 
| 特性           | JPEG   | WebP      | PNG     |
|:---|:---|:---|:---|
| 压缩方式         | 有损     | 有损        | 无损      |
| quality范围    | 0\~100 | 0\~100    | -       |
| 默认quality    | 95     | 80        | -       |
| 压缩比（640×480） | ≈20×   | ≈32×      | ≈2×     |
| 编码耗时         | ≈1.4ms | ≈42ms     | ≈47ms   |
| 体积（vs JPEG）  | 基准     | 小35%\~40% | 大9×     |
| 适用场景         | 通用生产   | 带宽受限      | 调试/精确比对 |
   
#### 不同编码方式的带宽参考
以2路640×480相机20Hz为例，带宽参考如[表3]。
 表3带宽参考 
| 编码方式      | 带宽       | 适用网络   |
|:---|:---|:---|
| raw（无压缩）  | ≈282Mbps | 仅本地测试  |
| PNG       | ≈64Mbps  | 本地/有线  |
| JPEG q=80 | ≈15Mbps  | 宽带/4G  |
| WebP q=80 | ≈9Mbps   | 4G/弱宽带 |
| WebP q=40 | ≈4Mbps   | 极端低带宽  |
   
**推荐**在生产环境使用ndarray_to_webp（quality70\~80），兼顾画质与带宽。
#### 传输数据压缩典型场景配置示例
- **ROS2场景** （sensor_msgs/CompressedImage输入）
  ```
  device_to_r2c:
    image_encoding: jpeg
    mappings:
      - target_key: "images.color.wrist"
        source_path: "streams.wrist"
        transforms:
          - ros_compressed_image_to_ndarray
          - bgr_to_rgb
          - ndarray_to_jpeg:
              quality: 80
  ```
  
- **LeRobot/SDK直驱场景** （numpy ndarray输入，RGB格式）
  ```
  device_to_r2c:
    image_encoding: jpeg
    mappings:
      - target_key: "images.color.front"
        source_path: "front"
        transforms:
          - rgb_to_bgr
          - ndarray_to_webp:
              quality: 70
  ```
  
- **Dummy仿真场景**
  ```
  device_to_r2c:
    image_encoding: jpeg
    mappings:
      - target_key: "images.color.wrist"
        source_path: "wrist"
        transforms:
          - ndarray_to_webp:
              quality: 70
  ```
  
 
