blob: 40e96d780169709eced9d0b9e7b91f21fd1ecd0b [file] [log] [blame]
#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