378 lines
12 KiB
C
378 lines
12 KiB
C
|
#ifndef QDSP5VIDJPEGCMDI_H
|
||
|
#define QDSP5VIDJPEGCMDI_H
|
||
|
|
||
|
/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
|
||
|
|
||
|
J P E G I N T E R N A L C O M M A N D S
|
||
|
|
||
|
GENERAL DESCRIPTION
|
||
|
This file contains defintions of format blocks of commands
|
||
|
that are accepted by JPEG Task
|
||
|
|
||
|
REFERENCES
|
||
|
None
|
||
|
|
||
|
EXTERNALIZED FUNCTIONS
|
||
|
None
|
||
|
|
||
|
Copyright (c) 1992-2009, The Linux Foundation. All rights reserved.
|
||
|
|
||
|
This software is licensed under the terms of the GNU General Public
|
||
|
License version 2, as published by the Free Software Foundation, and
|
||
|
may be copied, distributed, and modified under those terms.
|
||
|
|
||
|
This program is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
GNU General Public License for more details.
|
||
|
|
||
|
*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
|
||
|
/*===========================================================================
|
||
|
|
||
|
EDIT HISTORY FOR FILE
|
||
|
|
||
|
This section contains comments describing changes made to this file.
|
||
|
Notice that changes are listed in reverse chronological order.
|
||
|
|
||
|
|
||
|
$Header: //source/qcom/qct/multimedia2/AdspSvc/7XXX/qdsp5cmd/video/qdsp5jpegcmdi.h#2 $ $DateTime: 2008/07/30 10:50:23 $ $Author: pavanr $
|
||
|
Revision History:
|
||
|
when who what, where, why
|
||
|
-------- --- ----------------------------------------------------------
|
||
|
06/09/08 sv initial version
|
||
|
===========================================================================*/
|
||
|
|
||
|
/*
|
||
|
* ARM to JPEG configuration commands are passed through the
|
||
|
* uPJpegCfgCmdQueue
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* Command to configure JPEG Encoder
|
||
|
*/
|
||
|
|
||
|
#define JPEG_CMD_ENC_CFG 0x0000
|
||
|
#define JPEG_CMD_ENC_CFG_LEN sizeof(jpeg_cmd_enc_cfg)
|
||
|
|
||
|
#define JPEG_CMD_ENC_PROCESS_CFG_OP_ROTATION_0 0x0000
|
||
|
#define JPEG_CMD_ENC_PROCESS_CFG_OP_ROTATION_90 0x0100
|
||
|
#define JPEG_CMD_ENC_PROCESS_CFG_OP_ROTATION_180 0x0200
|
||
|
#define JPEG_CMD_ENC_PROCESS_CFG_OP_ROTATION_270 0x0300
|
||
|
#define JPEG_CMD_ENC_PROCESS_CFG_IP_DATA_FORMAT_M 0x0003
|
||
|
#define JPEG_CMD_ENC_PROCESS_CFG_IP_DATA_FORMAT_H2V2 0x0000
|
||
|
#define JPEG_CMD_ENC_PROCESS_CFG_IP_DATA_FORMAT_H2V1 0x0001
|
||
|
#define JPEG_CMD_ENC_PROCESS_CFG_IP_DATA_FORMAT_H1V2 0x0002
|
||
|
|
||
|
#define JPEG_CMD_IP_SIZE_CFG_LUMA_HEIGHT_M 0x0000FFFF
|
||
|
#define JPEG_CMD_IP_SIZE_CFG_LUMA_WIDTH_M 0xFFFF0000
|
||
|
#define JPEG_CMD_ENC_UPSAMP_IP_SIZE_CFG_ENA 0x0001
|
||
|
#define JPEG_CMD_ENC_UPSAMP_IP_SIZE_CFG_DIS 0x0000
|
||
|
|
||
|
#define JPEG_CMD_FRAG_SIZE_LUMA_HEIGHT_M 0xFFFF
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned int cmd_id;
|
||
|
unsigned int process_cfg;
|
||
|
unsigned int ip_size_cfg;
|
||
|
unsigned int op_size_cfg;
|
||
|
unsigned int frag_cfg;
|
||
|
unsigned int frag_cfg_part[16];
|
||
|
|
||
|
unsigned int part_num;
|
||
|
|
||
|
unsigned int op_buf_0_cfg_part1;
|
||
|
unsigned int op_buf_0_cfg_part2;
|
||
|
unsigned int op_buf_1_cfg_part1;
|
||
|
unsigned int op_buf_1_cfg_part2;
|
||
|
|
||
|
unsigned int luma_qunt_table[32];
|
||
|
unsigned int chroma_qunt_table[32];
|
||
|
|
||
|
unsigned int upsamp_ip_size_cfg;
|
||
|
unsigned int upsamp_ip_frame_off;
|
||
|
unsigned int upsamp_pp_filter_coeff[64];
|
||
|
} __attribute__((packed)) jpeg_cmd_enc_cfg;
|
||
|
|
||
|
/*
|
||
|
* Command to configure JPEG Decoder
|
||
|
*/
|
||
|
|
||
|
#define JPEG_CMD_DEC_CFG 0x0001
|
||
|
#define JPEG_CMD_DEC_CFG_LEN sizeof(jpeg_cmd_dec_cfg)
|
||
|
|
||
|
#define JPEG_CMD_DEC_OP_DATA_FORMAT_M 0x0001
|
||
|
#define JPEG_CMD_DEC_OP_DATA_FORMAT_H2V2 0x0000
|
||
|
#define JPEG_CMD_DEC_OP_DATA_FORMAT_H2V1 0x0001
|
||
|
|
||
|
#define JPEG_CMD_DEC_OP_DATA_FORMAT_SCALE_FACTOR_8 0x000000
|
||
|
#define JPEG_CMD_DEC_OP_DATA_FORMAT_SCALE_FACTOR_4 0x010000
|
||
|
#define JPEG_CMD_DEC_OP_DATA_FORMAT_SCALE_FACTOR_2 0x020000
|
||
|
#define JPEG_CMD_DEC_OP_DATA_FORMAT_SCALE_FACTOR_1 0x030000
|
||
|
|
||
|
#define JPEG_CMD_DEC_IP_STREAM_BUF_CFG_PART3_NOT_FINAL 0x0000
|
||
|
#define JPEG_CMD_DEC_IP_STREAM_BUF_CFG_PART3_FINAL 0x0001
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned int cmd_id;
|
||
|
unsigned int img_dimension_cfg;
|
||
|
unsigned int op_data_format;
|
||
|
unsigned int restart_interval;
|
||
|
unsigned int ip_buf_partition_num;
|
||
|
unsigned int ip_stream_buf_cfg_part1;
|
||
|
unsigned int ip_stream_buf_cfg_part2;
|
||
|
unsigned int ip_stream_buf_cfg_part3;
|
||
|
unsigned int op_stream_buf_0_cfg_part1;
|
||
|
unsigned int op_stream_buf_0_cfg_part2;
|
||
|
unsigned int op_stream_buf_0_cfg_part3;
|
||
|
unsigned int op_stream_buf_1_cfg_part1;
|
||
|
unsigned int op_stream_buf_1_cfg_part2;
|
||
|
unsigned int op_stream_buf_1_cfg_part3;
|
||
|
unsigned int luma_qunt_table_0_3;
|
||
|
unsigned int luma_qunt_table_4_7;
|
||
|
unsigned int luma_qunt_table_8_11;
|
||
|
unsigned int luma_qunt_table_12_15;
|
||
|
unsigned int luma_qunt_table_16_19;
|
||
|
unsigned int luma_qunt_table_20_23;
|
||
|
unsigned int luma_qunt_table_24_27;
|
||
|
unsigned int luma_qunt_table_28_31;
|
||
|
unsigned int luma_qunt_table_32_35;
|
||
|
unsigned int luma_qunt_table_36_39;
|
||
|
unsigned int luma_qunt_table_40_43;
|
||
|
unsigned int luma_qunt_table_44_47;
|
||
|
unsigned int luma_qunt_table_48_51;
|
||
|
unsigned int luma_qunt_table_52_55;
|
||
|
unsigned int luma_qunt_table_56_59;
|
||
|
unsigned int luma_qunt_table_60_63;
|
||
|
unsigned int chroma_qunt_table_0_3;
|
||
|
unsigned int chroma_qunt_table_4_7;
|
||
|
unsigned int chroma_qunt_table_8_11;
|
||
|
unsigned int chroma_qunt_table_12_15;
|
||
|
unsigned int chroma_qunt_table_16_19;
|
||
|
unsigned int chroma_qunt_table_20_23;
|
||
|
unsigned int chroma_qunt_table_24_27;
|
||
|
unsigned int chroma_qunt_table_28_31;
|
||
|
unsigned int chroma_qunt_table_32_35;
|
||
|
unsigned int chroma_qunt_table_36_39;
|
||
|
unsigned int chroma_qunt_table_40_43;
|
||
|
unsigned int chroma_qunt_table_44_47;
|
||
|
unsigned int chroma_qunt_table_48_51;
|
||
|
unsigned int chroma_qunt_table_52_55;
|
||
|
unsigned int chroma_qunt_table_56_59;
|
||
|
unsigned int chroma_qunt_table_60_63;
|
||
|
unsigned int luma_dc_hm_code_cnt_table_0_3;
|
||
|
unsigned int luma_dc_hm_code_cnt_table_4_7;
|
||
|
unsigned int luma_dc_hm_code_cnt_table_8_11;
|
||
|
unsigned int luma_dc_hm_code_cnt_table_12_15;
|
||
|
unsigned int luma_dc_hm_code_val_table_0_3;
|
||
|
unsigned int luma_dc_hm_code_val_table_4_7;
|
||
|
unsigned int luma_dc_hm_code_val_table_8_11;
|
||
|
unsigned int chroma_dc_hm_code_cnt_table_0_3;
|
||
|
unsigned int chroma_dc_hm_code_cnt_table_4_7;
|
||
|
unsigned int chroma_dc_hm_code_cnt_table_8_11;
|
||
|
unsigned int chroma_dc_hm_code_cnt_table_12_15;
|
||
|
unsigned int chroma_dc_hm_code_val_table_0_3;
|
||
|
unsigned int chroma_dc_hm_code_val_table_4_7;
|
||
|
unsigned int chroma_dc_hm_code_val_table_8_11;
|
||
|
unsigned int luma_ac_hm_code_cnt_table_0_3;
|
||
|
unsigned int luma_ac_hm_code_cnt_table_4_7;
|
||
|
unsigned int luma_ac_hm_code_cnt_table_8_11;
|
||
|
unsigned int luma_ac_hm_code_cnt_table_12_15;
|
||
|
unsigned int luma_ac_hm_code_val_table_0_3;
|
||
|
unsigned int luma_ac_hm_code_val_table_4_7;
|
||
|
unsigned int luma_ac_hm_code_val_table_8_11;
|
||
|
unsigned int luma_ac_hm_code_val_table_12_15;
|
||
|
unsigned int luma_ac_hm_code_val_table_16_19;
|
||
|
unsigned int luma_ac_hm_code_val_table_20_23;
|
||
|
unsigned int luma_ac_hm_code_val_table_24_27;
|
||
|
unsigned int luma_ac_hm_code_val_table_28_31;
|
||
|
unsigned int luma_ac_hm_code_val_table_32_35;
|
||
|
unsigned int luma_ac_hm_code_val_table_36_39;
|
||
|
unsigned int luma_ac_hm_code_val_table_40_43;
|
||
|
unsigned int luma_ac_hm_code_val_table_44_47;
|
||
|
unsigned int luma_ac_hm_code_val_table_48_51;
|
||
|
unsigned int luma_ac_hm_code_val_table_52_55;
|
||
|
unsigned int luma_ac_hm_code_val_table_56_59;
|
||
|
unsigned int luma_ac_hm_code_val_table_60_63;
|
||
|
unsigned int luma_ac_hm_code_val_table_64_67;
|
||
|
unsigned int luma_ac_hm_code_val_table_68_71;
|
||
|
unsigned int luma_ac_hm_code_val_table_72_75;
|
||
|
unsigned int luma_ac_hm_code_val_table_76_79;
|
||
|
unsigned int luma_ac_hm_code_val_table_80_83;
|
||
|
unsigned int luma_ac_hm_code_val_table_84_87;
|
||
|
unsigned int luma_ac_hm_code_val_table_88_91;
|
||
|
unsigned int luma_ac_hm_code_val_table_92_95;
|
||
|
unsigned int luma_ac_hm_code_val_table_96_99;
|
||
|
unsigned int luma_ac_hm_code_val_table_100_103;
|
||
|
unsigned int luma_ac_hm_code_val_table_104_107;
|
||
|
unsigned int luma_ac_hm_code_val_table_108_111;
|
||
|
unsigned int luma_ac_hm_code_val_table_112_115;
|
||
|
unsigned int luma_ac_hm_code_val_table_116_119;
|
||
|
unsigned int luma_ac_hm_code_val_table_120_123;
|
||
|
unsigned int luma_ac_hm_code_val_table_124_127;
|
||
|
unsigned int luma_ac_hm_code_val_table_128_131;
|
||
|
unsigned int luma_ac_hm_code_val_table_132_135;
|
||
|
unsigned int luma_ac_hm_code_val_table_136_139;
|
||
|
unsigned int luma_ac_hm_code_val_table_140_143;
|
||
|
unsigned int luma_ac_hm_code_val_table_144_147;
|
||
|
unsigned int luma_ac_hm_code_val_table_148_151;
|
||
|
unsigned int luma_ac_hm_code_val_table_152_155;
|
||
|
unsigned int luma_ac_hm_code_val_table_156_159;
|
||
|
unsigned int luma_ac_hm_code_val_table_160_161;
|
||
|
unsigned int chroma_ac_hm_code_cnt_table_0_3;
|
||
|
unsigned int chroma_ac_hm_code_cnt_table_4_7;
|
||
|
unsigned int chroma_ac_hm_code_cnt_table_8_11;
|
||
|
unsigned int chroma_ac_hm_code_cnt_table_12_15;
|
||
|
unsigned int chroma_ac_hm_code_val_table_0_3;
|
||
|
unsigned int chroma_ac_hm_code_val_table_4_7;
|
||
|
unsigned int chroma_ac_hm_code_val_table_8_11;
|
||
|
unsigned int chroma_ac_hm_code_val_table_12_15;
|
||
|
unsigned int chroma_ac_hm_code_val_table_16_19;
|
||
|
unsigned int chroma_ac_hm_code_val_table_20_23;
|
||
|
unsigned int chroma_ac_hm_code_val_table_24_27;
|
||
|
unsigned int chroma_ac_hm_code_val_table_28_31;
|
||
|
unsigned int chroma_ac_hm_code_val_table_32_35;
|
||
|
unsigned int chroma_ac_hm_code_val_table_36_39;
|
||
|
unsigned int chroma_ac_hm_code_val_table_40_43;
|
||
|
unsigned int chroma_ac_hm_code_val_table_44_47;
|
||
|
unsigned int chroma_ac_hm_code_val_table_48_51;
|
||
|
unsigned int chroma_ac_hm_code_val_table_52_55;
|
||
|
unsigned int chroma_ac_hm_code_val_table_56_59;
|
||
|
unsigned int chroma_ac_hm_code_val_table_60_63;
|
||
|
unsigned int chroma_ac_hm_code_val_table_64_67;
|
||
|
unsigned int chroma_ac_hm_code_val_table_68_71;
|
||
|
unsigned int chroma_ac_hm_code_val_table_72_75;
|
||
|
unsigned int chroma_ac_hm_code_val_table_76_79;
|
||
|
unsigned int chroma_ac_hm_code_val_table_80_83;
|
||
|
unsigned int chroma_ac_hm_code_val_table_84_87;
|
||
|
unsigned int chroma_ac_hm_code_val_table_88_91;
|
||
|
unsigned int chroma_ac_hm_code_val_table_92_95;
|
||
|
unsigned int chroma_ac_hm_code_val_table_96_99;
|
||
|
unsigned int chroma_ac_hm_code_val_table_100_103;
|
||
|
unsigned int chroma_ac_hm_code_val_table_104_107;
|
||
|
unsigned int chroma_ac_hm_code_val_table_108_111;
|
||
|
unsigned int chroma_ac_hm_code_val_table_112_115;
|
||
|
unsigned int chroma_ac_hm_code_val_table_116_119;
|
||
|
unsigned int chroma_ac_hm_code_val_table_120_123;
|
||
|
unsigned int chroma_ac_hm_code_val_table_124_127;
|
||
|
unsigned int chroma_ac_hm_code_val_table_128_131;
|
||
|
unsigned int chroma_ac_hm_code_val_table_132_135;
|
||
|
unsigned int chroma_ac_hm_code_val_table_136_139;
|
||
|
unsigned int chroma_ac_hm_code_val_table_140_143;
|
||
|
unsigned int chroma_ac_hm_code_val_table_144_147;
|
||
|
unsigned int chroma_ac_hm_code_val_table_148_151;
|
||
|
unsigned int chroma_ac_hm_code_val_table_152_155;
|
||
|
unsigned int chroma_ac_hm_code_val_table_156_159;
|
||
|
unsigned int chroma_ac_hm_code_val_table_160_161;
|
||
|
} __attribute__((packed)) jpeg_cmd_dec_cfg;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ARM to JPEG configuration commands are passed through the
|
||
|
* uPJpegActionCmdQueue
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* Command to start the encode process
|
||
|
*/
|
||
|
|
||
|
#define JPEG_CMD_ENC_ENCODE 0x0001
|
||
|
#define JPEG_CMD_ENC_ENCODE_LEN sizeof(jpeg_cmd_enc_encode)
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short cmd_id;
|
||
|
} __attribute__((packed)) jpeg_cmd_enc_encode;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Command to transition from current state of encoder to IDLE state
|
||
|
*/
|
||
|
|
||
|
#define JPEG_CMD_ENC_IDLE 0x0006
|
||
|
#define JPEG_CMD_ENC_IDLE_LEN sizeof(jpeg_cmd_enc_idle)
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short cmd_id;
|
||
|
} __attribute__((packed)) jpeg_cmd_enc_idle;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Command to inform the encoder that another buffer is ready
|
||
|
*/
|
||
|
|
||
|
#define JPEG_CMD_ENC_OP_CONSUMED 0x0002
|
||
|
#define JPEG_CMD_ENC_OP_CONSUMED_LEN sizeof(jpeg_cmd_enc_op_consumed)
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned int cmd_id;
|
||
|
unsigned int op_buf_addr;
|
||
|
unsigned int op_buf_size;
|
||
|
} __attribute__((packed)) jpeg_cmd_enc_op_consumed;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Command to start the decoding process
|
||
|
*/
|
||
|
|
||
|
#define JPEG_CMD_DEC_DECODE 0x0003
|
||
|
#define JPEG_CMD_DEC_DECODE_LEN sizeof(jpeg_cmd_dec_decode)
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short cmd_id;
|
||
|
} __attribute__((packed)) jpeg_cmd_dec_decode;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Command to transition from the current state of decoder to IDLE
|
||
|
*/
|
||
|
|
||
|
#define JPEG_CMD_DEC_IDLE 0x0007
|
||
|
#define JPEG_CMD_DEC_IDLE_LEN sizeof(jpeg_cmd_dec_idle)
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short cmd_id;
|
||
|
} __attribute__((packed)) jpeg_cmd_dec_idle;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Command to inform that an op buffer is ready for use
|
||
|
*/
|
||
|
|
||
|
#define JPEG_CMD_DEC_OP_CONSUMED 0x0004
|
||
|
#define JPEG_CMD_DEC_OP_CONSUMED_LEN sizeof(jpeg_cmd_dec_op_consumed)
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned int cmd_id;
|
||
|
unsigned int luma_op_buf_addr;
|
||
|
unsigned int luma_op_buf_size;
|
||
|
unsigned int chroma_op_buf_addr;
|
||
|
} __attribute__((packed)) jpeg_cmd_dec_op_consumed;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Command to pass a new ip buffer to the jpeg decoder
|
||
|
*/
|
||
|
|
||
|
#define JPEG_CMD_DEC_IP 0x0005
|
||
|
#define JPEG_CMD_DEC_IP_LEN sizeof(jpeg_cmd_dec_ip_len)
|
||
|
|
||
|
#define JPEG_CMD_EOI_INDICATOR_NOT_END 0x0000
|
||
|
#define JPEG_CMD_EOI_INDICATOR_END 0x0001
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned int cmd_id;
|
||
|
unsigned int ip_buf_addr;
|
||
|
unsigned int ip_buf_size;
|
||
|
unsigned int eoi_indicator;
|
||
|
} __attribute__((packed)) jpeg_cmd_dec_ip;
|
||
|
|
||
|
|
||
|
|
||
|
#endif
|