Hardware JPEGDEC APIs

[中文]

JPEGDEC API Categories

JPEGDEC APIs:

HW JPEG DECODE Config

jpeg dec Overview

Figure 1. jpeg decode config flow

API Reference

Header File

Functions

bk_err_t bk_jpeg_dec_driver_init(void)

HW JPEG DEC API.

this api open the jpeg decode clk

bk_err_t bk_jpeg_dec_driver_deinit(void)

this api close the jpeg decode clk

  • disable jpeg decode

bk_err_t bk_jpeg_dec_line_int_dis(void)

this api used for jpeg decode config

this api used for jpeg decode line interrupt config decode can select a frame complete done isr(defult) , or this decode lin_num enter int isr

Usage example:

 if x pixel 320, you set bk_jpeg_dec_line_int_en(32), every 32 line will enter isr, in all ten times
 if x pixel 240, you set bk_jpeg_dec_line_int_en(24), every 24 line will enter isr, in all ten times
this api used for disable jpeg decode line num int

Parameters
  • xpixel – jpeg decode picture x pixel

    • input_buf decode input data addr

      • output_buf decode output data addr

  • lin_num – decode line num ,should multiple of 8,

Returns

  • BK_OK: succeed

  • others: other errors.

Returns

Returns

  • BK_OK: succeed

  • others: other errors.

Returns

Returns

  • BK_OK: succeed

  • others: other errors.

bk_err_t bk_jpeg_dec_hw_start(uint32_t length, unsigned char *input_buf, unsigned char *output_buf)

this api start jpeg decode

Parameters

length – jpeg length

  • input_buf jpeg data src addr

  • output_buf jpeg decode output addr

Returns

0: jpeg decode ok; others: error

bk_err_t bk_jpeg_dec_dma_start(uint32_t length, unsigned char *input_buf, unsigned char *output_buf)

this api start jpeg decode

Parameters

length – jpeg length

  • input_buf jpeg data src addr

  • output_buf jpeg decode output addr

Returns

0: jpeg decode ok; others: error

bk_err_t bk_jpeg_dec_stop(void)

stop jpeg decode

Returns

0: jpeg decode stop ok; others: error

bk_err_t bk_jpeg_dec_out_format(pixel_format_t pixel_fmt)

set jpeg decode out format, useful in bk7258

Parameters

pixel_fmt – select, PIXEL_FMT_YUYV(default), PIXEL_FMT_VUYY, PIXEL_FMT_VYUY (not commonly used),PIXEL_FMT_YYUV(not commonly used)

Returns

BK_OK

void bk_jpeg_dec_line_num_set(line_num_t line_num)

when set decode by line, use this api config decode by how many lines

Parameters

select – according to line_num_t enum,like 8/16/24/32….etc. multiple of 8 line

void bk_jpeg_dec_by_line_start(void)

start decode in every line decode isr

bk_err_t jpeg_dec_set_dst_addr(unsigned char *output_buf)

set decode output addr,this api is changed by line decode mode isr

bool bk_jpeg_dec_by_line_is_last_line_complete(void)

check decode by line is decode last line complete

Returns

return true: last line complete

bk_err_t bk_jpeg_dec_isr_register(jpeg_dec_isr_t jpeg_dec_isr)

This API is direct registerjpeg dec cpu isr.

Parameters

isr – isr function

Returns

  • BK_OK: succeed

  • others: other errors.

API Typedefs

Header File

Structures

struct jpeg_dec_res_t

jpeg dec isr return value

Public Members

uint8_t ok

jpeg decoder success

uint16_t pixel_x

jpeg x pixel

uint16_t pixel_y

jpeg y pixel

uint32_t size

jpeg size

jpeg_encode_mode_t jpeg_enc_mode

jpeg encode mode

Macros

USE_JPEG_DEC_COMPLETE_CALLBACKS

set 1, register jpeg decode complete callback, set 0, register jpeg dec cpu isr

Type Definitions

typedef enum _line_num line_num_t
typedef void (*jpeg_dec_isr_cb_t)(jpeg_dec_res_t *result)

refistrer type jpeg decode complete isr function

param return jpeg x pixel , y pixel , and jpeg size

Return

  • BK_OK: succeed

  • others: other errors. jpegdec int isr register func type

Enumerations

enum jpeg_encode_mode_t

Values:

enumerator JPEG_ENCODE_UNSTD
enumerator JPEG_ENCODE_YUV420
enumerator JPEG_ENCODE_YUV422
enumerator JPEG_ENCODE_YUV444
enum JRESULT

Error code

Values:

enumerator JDR_OK

0: Succeeded

enumerator JDR_INTR

1: Interrupted by output function

enumerator JDR_INP

2: Device error or wrong termination of input stream

enumerator JDR_MEM1

3: Insufficient memory pool for the image

enumerator JDR_MEM2

4: Insufficient stream input buffer

enumerator JDR_PAR

5: Parameter error

enumerator JDR_FMT1

6: Data format error (may be damaged data)

enumerator JDR_FMT2

7: Right format but not supported

enumerator JDR_FMT3

8: Not supported JPEG standard

enum _line_num

Values:

enumerator LINE_8
enumerator LINE_16
enumerator LINE_24
enumerator LINE_32
enumerator LINE_40
enumerator LINE_48
enum jpeg_dec_isr_type_t

Values:

enumerator DEC_END_OF_FRAME

select jpeg decode a complete frame enter isr callback

enumerator DEC_EVERY_LINE_INT

select jpeg decode by line num enter isr callback

enumerator DEC_ERR
enumerator DEC_ISR_MAX