---
title: 样例介绍
description: "单击jpegd_sample(https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/7_dvpp/jpegd_sample)获取样例"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_04_0064.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_04_0064.html
indexId: 2dfd9461701f2ff1e7a4f4e1a145432ec2ad87ecec376fa87db2c378500f1531105
---
# 样例介绍

#### 获取样例

单击jpegd_sample(https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/7_dvpp/jpegd_sample)获取样例


#### 功能描述

该样例实现.jpg、.jpeg、.JPG、.JPEG图片的解码。


#### 原理介绍

在该样例中，涉及的关键功能点，如下表所示。

| 初始化 | 调用aclInit接口初始化AscendCL配置。 调用aclFinalize接口实现AscendCL去初始化。 |
| --- | --- |
| Device管理 | 调用aclrtSetDevice接口指定用于运算的Device。 调用aclrtGetRunMode接口获取软件栈的运行模式，根据运行模式的不同，内部处理流程不同。 调用aclrtResetDevice接口复位当前运算的Device，回收Device上的资源。 |
| Context管理 | 调用aclrtCreateContext接口创建Context。 调用aclrtDestroyContext接口销毁Context。 |
| 内存管理 | 调用aclrtMallocHost接口/aclrtFreeHost接口申请/释放Host上内存。 执行媒体数据处理时，若需要申请Device上的内存存放输入或输出数据，需调用hi\_mpi\_dvpp\_malloc接口/hi\_mpi\_dvpp\_free接口申请/释放内存。 |
| 数据传输 | 如果在板端环境上运行应用，则无需进行数据传输。 |
| 媒体数据处理V2 | 参见VDEC视频解码功能/JPEGD图片解码功能中的接口。 |


#### 目录结构

样例代码结构如下所示。

```
├── common                       //示例代码文件所在的目录
│   ├── sample_comm.h           //声明解码函数的头文件
│   ├── sample_comm_jpegd.cpp   //解码函数的实现文件
├── smoke_vpc                    //示例代码文件所在的目录
│   ├── sample_jpegd.cpp        //main函数的实现文件
├── CMakeLists.txt               //编译脚本
```
