source: svn/trunk/newcon3bcm2_21bu/magnum/portinginterface/vdc/7552/bvdc_tune.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 11.3 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2009, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile: bvdc_tune.h $
11 * $brcm_Revision: Hydra_Software_Devel/1 $
12 * $brcm_Date: 11/24/09 3:27p $
13 *
14 * Module Description:
15 *   See Module Overview below.
16 *
17 * Revision History:
18 *
19 * $brcm_Log: /magnum/portinginterface/vdc/7038/bvdc_tune.h $
20 *
21 * Hydra_Software_Devel/1   11/24/09 3:27p yuxiaz
22 * SW7420-462: Added new tuning functions for Tuning Database.
23 *
24 ***************************************************************************/
25#ifndef BVDC_TUNE_H__
26#define BVDC_TUNE_H__
27
28#include "bvdc.h"
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34/***************************************************************************
35 * Public defines
36 ***************************************************************************/
37/* macro to create unique field ID: 0xII00SSFF
38 *  I = INTERFACE (REQUIRED)
39 *  S = STRUCTURE
40 *  F = FIELD */
41#define BVDC_TUNE_FIELD_ID(I, S, F) (((I)<<24) | ((S)<<8) | (F))
42
43/* Interfaces (values must be unique across all magnum modules) */
44#define BVDC_TUNE_INTERFACE_SOURCE                (0x00)
45#define BVDC_TUNE_INTERFACE_WINDOW                (0x01)
46#define BVDC_TUNE_INTERFACE_COMPOSITOR            (0x02)
47#define BVDC_TUNE_INTERFACE_DISPLAY               (0x03)
48
49/* Structure */
50#define BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS    (0x00)
51
52/***************************************************************************/
53/* Tune fields
54 */
55
56/* Description:
57 *      Larger values prevent sharpening of low-level textures and noise.
58 *      Values greater than 32 (or less than -32) are not commonly used.
59 *      This is a signed number S7.0. Legal range: -128 ~ 127.
60 * Data Type: uint32_t
61 * Register.Field: TNT_CMP_0_V0_LUMA_CONTROL.CORE
62 */
63#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_LUMA_CTRL_CORE    \
64        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 0)
65
66/* Description:
67 *      Larger values increase luma sharpness (or increase softness if
68 *      "LUMA_CTRL_SOFTEN" is set). Zero disables luma sharpness (or softness).
69 *      Values greater than 32 are usually too harsh for normal viewing. This is
70 *      an unsigned number U6.0. Legal range: 0 ~ 63.
71 * Data Type: uint32_t
72 * Register.Field: TNT_CMP_0_V0_LUMA_CONTROL.GAIN
73 */
74#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_LUMA_CTRL_GAIN    \
75        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 1)
76
77/* Description:
78 *      Large values reduce sharpness for very high frequence texture and prevent
79 *      sharpening of noise. Legal range: 0 ~ 2.
80 * Data Type: uint32_t
81 * Register.Field: TNT_CMP_0_V0_LUMA_CONTROL.BLUR
82 */
83#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_LUMA_CTRL_BLUR     \
84        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 2)
85
86/* Description:
87 *      If enable, TNT will soften luma data and we recommend to set
88 *      "LUMA_CTRL_CORE" to be 0. If disable, TNT will sharpen luma data.
89 * Data Type: boolean
90 * Register.Field: TNT_CMP_0_V0_LUMA_CONTROL.SOFTEN
91 */
92#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_LUMA_CTRL_SOFTEN   \
93        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 3)
94
95/* Description:
96 *      When enabled, TNT will only sharpen luma data horizontally, when disabled,
97 *      TNT will sharpen luma data in both (horizontal and vertical) direction.
98 * Data Type: boolean
99 * Register.Field: TNT_CMP_0_V0_LUMA_CONTROL.H_ONLY
100 */
101#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_LUMA_CTRL_H_ONLY   \
102        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 4)
103
104/* Description:
105 *      Luma vertical sharp edge avoidance control. Larger values avoid luma
106 *      sharpening of strong vertical edges. This is an unsigned number U6.0.
107 *      Legal range: 0 ~ 63.
108 * Data Type: uint32_t
109 * Register.Field: TNT_CMP_0_V0_LUMA_PEAKING.H_AVOID
110 */
111#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_LUMA_PEAKING_H_AVOID    \
112        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 5)
113
114/* Description:
115 *      Luma horizontal sharp edge avoidance. Larger values avoid luma
116 *      sharpening of strong horizontal edges. This is an unsigned number U6.0.
117 *      Legal range: 0 ~ 63.
118 * Data Type: uint32_t
119 * Register.Field: TNT_CMP_0_V0_LUMA_PEAKING.V_AVOID
120 */
121#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_LUMA_PEAKING_V_AVOID    \
122        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 6)
123
124/* Description:
125 *      This value sets a hard limit on luma overshoot. This is an unsigned
126 *      number U7.0. Legal range: 0 ~ 127.
127 * Data Type: uint32_t
128 * Register.Field: TNT_CMP_0_V0_LUMA_PEAKING.PEAK_LIMIT
129 */
130#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_LUMA_PEAKING_PEAK_LIMIT  \
131        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 7)
132
133/* Description:
134 *      Larger values reduce luma overshoot. This is an unsigned number U5.0.
135 *      Legal range: 0 ~ 31.
136 * Data Type: uint32_t
137 * Register.Field: TNT_CMP_0_V0_LUMA_PEAKING.PEAK_VALUE
138 */
139#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_UMA_PEAKING_PEAK_VALUE   \
140        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 8)
141
142/* Description:
143 *      Larger values prevent sharpening of low-level textures and noise.
144 *      This is an unsigned number U8.0. Legal range: 0 ~ 255.
145 * Data Type: uint32_t
146 * Register.Field: TNT_CMP_0_V0_CHROMA_CONTROL.CORE
147 */
148#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_CHROMA_CTRL_CORE         \
149        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 9)
150
151/* Description:
152 *      When enabled, TNT will use wider range for chroma peaking. When disabled,
153 *      TNT will use normal range for chroma peaking.
154 * Data Type: boolean
155 * Register.Field: TNT_CMP_0_V0_CHROMA_CONTROL.WIDE_CHROMA
156 */
157#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_CHROMA_CTRL_WIDE_CHROMA  \
158        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 10)
159
160/* Description:
161 *      This is to avoid false color when sharpening sharp edges of chroma data.
162 *      Larger values will reduce false colors, at the cost of some chroma
163 *      sharpness. This is an unsigned number U3.0. Legal range: 0 ~ 7.
164 * Data Type: uint32_t
165 * Register.Field: TNT_CMP_0_V0_CHROMA_CONTROL.FALSE_COLOR
166 */
167#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_CHROMA_CTRL_FALSE_COLOR  \
168        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 11)
169
170/* Description:
171 *      Larger values increase chroma sharpness. Zero disables chroma sharpness.
172 *      Values greater than 32 are usually too harsh for normal viewing. This is
173 *      an unsigned number U6.0. Legal range: 0 ~ 63.
174 * Data Type: uint32_t
175 * Register.Field: TNT_CMP_0_V0_CHROMA_CONTROL.GAIN
176 */
177#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_CHROMA_CTRL_GAIN         \
178        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 12)
179
180/* Description:
181 *      When enabled, TNT will only sharpen chroma data horizontally, when
182 *      disabled, TNT will sharpen chroma data in both (horizontal and vertical)
183 *      direction.
184 * Data Type: boolean
185 * Register.Field: TNT_CMP_0_V0_CHROMA_CONTROL.H_ONLY
186 */
187#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_CHROMA_CTRL_H_ONLY       \
188        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 13)
189
190/* Description:
191 *      Larger values prevent sharpening of low-level textures and noise. Values
192 *      greater than 32 (or less than -32) are not commonly used. This is a
193 *      signed number S7.0. Legal range: -128 ~ 127.
194 * Data Type: uint32_t
195 * Register.Field: TNT_CMP_0_V0_WIDE_LUMA_CONTROL.CORE
196 */
197#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_WIDE_LUMA_CTRL_CORE      \
198        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 14)
199
200
201/* Description:
202 *      Wide luma mode control.
203 *      2'b00: luma peaking is kept narrow for tight, crisp peaking.
204 *      2'b01: luma peaking use a wider range for more dramatic, intense peaking.
205 *      2'b10: luma peaking use the widest range for dramatic, intense peaking.
206 * Data Type: uint32_t
207 * Register.Field: TNT_CMP_0_V0_WIDE_LUMA_CONTROL.MODE
208 */
209#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_WIDE_LUMA_CTRL_MODE      \
210        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 15)
211
212/* Description:
213 *      Larger values prevent sharpening of low-level textures and noise. This
214 *      is an unsigned number U8.0 with 8 integer bits. Legal value: 0 ~ 255.
215 * Data Type: uint32_t
216 * Register.Field: TNT_CMP_0_V0_SIMPLE_LUMA_CORE_CTRL.CORE
217 */
218#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_SIMPLE_LUMA_CTRL_CORE    \
219        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 16)
220
221/* Description:
222 *      When enabled, TNT will use old coring method for luma coring. When disabled,
223 *      TNT will use "simple coring" for luma coring.
224 * Data Type: boolean
225 * Register.Field: TNT_CMP_0_V0_SIMPLE_LUMA_CORE_CTRL.MODE
226 */
227#define BVDC_WINDOW_TUNE_SHARPNESS_SETTINGS_SIMPLE_LUMA_CTRL_MODE    \
228        BVDC_TUNE_FIELD_ID(BVDC_TUNE_INTERFACE_WINDOW, BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS, 17)
229
230
231/***************************************************************************
232Summary:
233        Used to set tuning parameters.
234
235Description:
236
237Input:
238        hWindow - A valid window handle created earlier.
239        aFields - Array of fields to set
240        aValues - Array of values to use with the fields
241        num -Number of fields and values
242       
243Output:
244       
245See Also:
246        BVDC_Window_GetTune, BVDC_Window_ResetTune
247***************************************************************************/
248BERR_Code BVDC_Window_SetTuneParam
249        ( BVDC_Window_Handle               hWindow,
250          const uint32_t                   aFields[], 
251          const uint32_t                   aValues[], 
252          int                              num );
253
254/***************************************************************************
255Summary:
256        Used to get tuning parameters.
257
258Description:
259
260Input:
261        hWindow - A valid window handle created earlier.
262        aFields - Array of fields to set
263        num -Number of fields and values
264       
265Output:
266        aValues - Returned array of values for each field
267       
268See Also:
269        BVDC_Window_SetTune, BVDC_Window_ResetTune
270***************************************************************************/
271BERR_Code BVDC_Window_GetTuneParam
272        ( const BVDC_Window_Handle         hWindow,
273          const uint32_t                   aFields[], 
274          uint32_t                         aValues[], 
275          int                              num );
276
277/***************************************************************************
278Summary:
279        Used to reset all tuning parameters for the window.
280
281Description:
282
283Input:
284        hWindow - A valid window handle created earlier.
285       
286Output:
287       
288See Also:
289        BVDC_Window_SetTune, BVDC_Window_ResetTune
290***************************************************************************/
291BERR_Code BVDC_Window_ResetTuneParam
292        ( const BVDC_Window_Handle         hWindow );
293
294
295
296#ifdef __cplusplus
297}
298#endif
299
300#endif /* #ifndef BVDC_TUNE_H__ */
301
302/* End of File */
303
Note: See TracBrowser for help on using the repository browser.