asd

  1 " {{{
  2 " DesCRiption: shiguangqi
  3 " Created Date: 2012-05-04
  4 " Last Changed: 2012-12-13 
  5 " Author:      shiguangqi
  6 " Version:     0.3
  7 "}}}
  8 let performance_mode=0
  9 "function
 10 function! MySys()
 11     if has("win32")
 12         return "win32"
 13     elseif has("unix")
 14         return "unix"
 15     else
 16         return "mac"
 17     endif
 18 endfunction
 19 
 20 " Sets how many lines of history VIM has to remember
 21 set history=700
 22 " Enable filetype plugins
 23 filetype plugin on
 24 filetype indent on
 25 
 26 " Set to auto read when a file is changed from the outside
 27 set autoread
 28 
 29 " With a map leader it's possible to do extra key combinations
 30 " like <leader>w saves the current file
 31 let mapleader = ","
 32 let g:mapleader = ","
 33 
 34 " Fast saving
 35 nmap <leader>w :w!<cr>
 36 
 37 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 38 " => VIM user interface
 39 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 40 " Set 7 lines to the cursor - when moving vertically using j/k
 41 set so=7
 42 
 43 " Turn on the WiLd menu
 44 set wildmenu
 45 
 46 "Always show current position
 47 set ruler
 48 
 49 " Height of the command bar
 50 set cmdheight=2
 51 
 52 " A buffer becomes hidden when it is abandoned
 53 set hid
 54 
 55 " Configure backspace so it acts as it should act
 56 set backspace=eol,start,indent
 57 set whichwrap+=<,>,h,l
 58 
 59 " Ignore case when searching
 60 set ignorecase
 61 
 62 " When searching try to be smart about cases 
 63 set smartcase
 64 
 65 " Highlight search results
 66 set hlsearch
 67 
 68 " Makes search act like search in modern browsers
 69 set incsearch 
 70 
 71 " Don't redraw while executing macros (good performance config)
 72 set lazyredraw 
 73 
 74 " For regular expressions turn magic on
 75 set magic
 76 
 77 " Show matching brackets when text indicator is over them
 78 set showmatch 
 79 
 80 " How many tenths of a second to blink when matching brackets
 81 set mat=2
 82 
 83 " No annoying sound on errors
 84 set noerrorbells
 85 set novisualbell
 86 set t_vb=
 87 set tm=500
 88 
 89 " => Colors and Font
 90 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 91 "Enable syntax hl
 92 if MySys()=="unix"
 93   if v:version<600
 94       if filereadable(expand("$VIM/syntax/syntax.vim"))
 95           syntax on
 96       endif
 97   else
 98       syntax on
 99   endif
100 else
101   syntax on
102 endif
103 
104 "set encoding=utf-8
105 set fileencodings=ucs-bom,utf-8,iso8859-1,gbk,default,latin
106 
107 if has("gui_running")
108 set guioptions-=m
109   set guioptions-=T
110   set guioptions-=l
111   set guioptions-=L
112   set guioptions-=r
113   set guioptions-=R
114 set guioptions-=t
115 
116   if MySys()=="win32"
117       "start gvim maximized
118       if has("autocmd")
119           au GUIEnter * simalt ~x
120       endif
121   endif
122   "let psc_style='cool'
123   if v:version > 601
124       "colorscheme ps_color
125       "colorscheme default
126       colorscheme desert 
127     set guifont=Consolas:h10
128   endif
129 else
130   if v:version > 601
131       "set background=dark
132       colorscheme default " desert
133       "colorscheme desert "elflord
134     set guifont=Consolas:h10
135   endif
136 endif
137 
138 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
139 " => Fileformat
140 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
141 "Favorite filetype
142 set ffs=unix,dos,mac
143 
144 nmap <leader>fd :se ff=dos<cr>
145 nmap <leader>fu :se ff=unix<cr>
146 
147 """"""""""""""""""""""""""""""
148 " => Statusline
149 """"""""""""""""""""""""""""""
150 "Format the statusline
151 " Nice statusbar
152 if performance_mode
153 else
154   set laststatus=2
155   set statusline=
156   "set statusline+=%2*%-3.3n%0*/ " buffer number
157   set statusline+=%f/ " file name
158   set statusline+=%1*%h%m%r%w%0* " flags
159   set statusline+=%2*0x%-8B " current char
160 "set statusline+=%-8O
161 set statusline+=%-8b
162   set statusline+=%-14.(%l,%c%V%)/%5p%% " offset
163   set statusline+=%= " right align
164   set statusline+=%0*[
165   if v:version >= 600
166       set statusline+=%{strlen(&ft)?&ft:'none'}, " filetype
167       set statusline+=%{&encoding}, " encoding
168   endif
169   set statusline+=%{&fileformat}]%1* " file format
170   if filereadable(expand("$VIM/vimfiles/plugin/vimbuddy.vim"))
171       set statusline+=/ %{VimBuddy()} " vim buddy
172   endif
173 
174 "    " special statusbar for special windows
175 "    if has("autocmd")
176 "        au FileType qf
177 "                    / if &buftype == "quickfix" |
178 "                    / setlocal statusline=%2*%-3.3n%0* |
179 "                    / setlocal statusline+=/ /[Compiler/ Messages/] |
180 "                    / setlocal statusline+=%=%2*/ %<%P |
181 "                    / endif
182 "
183 "        fun! FixMiniBufExplorerTitle()
184 "            if "-MiniBufExplorer-" == bufname("%")
185 "                setlocal statusline=%2*%-3.3n%0*
186 "                setlocal statusline+=/[Buffers/]
187 "                setlocal statusline+=%=%2*/ %<%P
188 "            endif
189 "        endfun
190 "
191 "        if v:version>=600
192 "            au BufWinEnter *
193 "                        / let oldwinnr=winnr() |
194 "                        / windo call FixMiniBufExplorerTitle() |
195 "                        / exec oldwinnr . " wincmd w"
196 "        endif
197 "    endif
198 "
199 "    " Nice window title
200 "    if has('title') && (has('gui_running') || &title)
201 "        set titlestring=
202 "        set titlestring+=%f/ " file name
203 "        set titlestring+=%h%m%r%w " flags
204 "        set titlestring+=/ -/ %{v:progname} " program name
205 "    endif
206 endif
207 
208 function! InsertStatuslineColor(mode)
209   if a:mode == 'i'
210       hi statusline guibg=peru
211   elseif a:mode == 'r'
212       hi statusline guibg=blue
213   else
214       hi statusline guibg=red
215   endif
216 endfunction
217 au InsertEnter * call InsertStatuslineColor(v:insertmode)
218 au InsertLeave * hi statusline guibg=#9932CC guifg=white
219 hi statusline guibg=#696969 guifg=#B8860B
220 
221 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
222 " => Spell checking
223 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
224 map <leader>sn ]
225 map <leader>sp [
226 map <leader>sa zg
227 map <leader>s? z=
228 
229 "Fast reloading of the .vimrc
230 map <silent> <leader>ss :source $HOME/.vimrc<cr>
231 "Fast editing of .vimrc
232 map <silent> <leader>ee :e $HOME/.vimrc<cr>
233 "When .vimrc is edited, reload it
234 autocmd! bufwritepost .vimrc source $VIM/.vimrc 
235 
236 " autoload _vimrc
237 autocmd! bufwritepost .vimrc source %
238 
239 " use chinese help
240 set helplang=cn
241 
242 " NERDTree
243 map <F10> :NERDTreeToggle<CR>
244 
245 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
246 
247 " => Plugin configuration
248 
249 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
250 
251 " taglist
252 let Tlist_Show_One_File = 1 
253 let Tlist_Exit_OnlyWindow = 1 
254 let Tlist_Use_Right_Window = 1 
255 let Tlist_Auto_Highlight_Tag = 1
256 let Tlist_Auto_Open = 0
257 let Tlist_Auto_Update = 1
258 let Tlist_Close_On_Select = 0
259 let Tlist_Compact_Format = 0
260 let Tlist_Display_Prototype = 0
261 let Tlist_Display_Tag_Scope = 1
262 let Tlist_Enable_Fold_Column = 0
263 "let Tlist_Exit_OnlyWindow = 0
264 let Tlist_File_Fold_Auto_Close = 1
265 let Tlist_GainFocus_On_ToggleOpen = 1
266 let Tlist_Hightlight_Tag_On_BufEnter = 1
267 let Tlist_Inc_Winwidth = 0
268 map <silent> <F9> :TlistToggle<cr> 
269 
270 "map <F11> <Esc>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
271 "imap <F11> <Esc>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
272 
273 set nocompatible               " be iMproved
274 filetype off                   " required!
275 set rtp+=~/.vim/bundle/vundle/
276 call vundle#rc()
277 " let Vundle manage Vundle
278 " 
279 " required! 
280 Bundle 'gmarik/vundle'
281 Bundle 'tpope/vim-fugitive'
282  Bundle 'Lokaltog/vim-easymotion'
283   Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
284    Bundle 'tpope/vim-rails.git'
285 
286 Bundle 'L9'
287  Bundle 'FuzzyFinder'
288 Bundle 'git://git.wincent.com/command-t.git'
289 filetype plugin indent on     " required!

 

转载于:https://www.cnblogs.com/zoro/archive/2012/12/13/2816921.html

<think>嗯,用户想了解MTK ASD功能的检测与问题分析。首先需要明确ASD(Auto Scene Detection)的定义,这是相机自动识别拍摄场景并优化参数的功能。用户是MTK平台的开发者或测试人员,需要解决实际问题。 回顾引用内容,MTK平台在vendor/mediatek/proprietary/hardware/mtkcam路径下封装了Pipeline控制器,调试需依赖TuningTool和工程固件。ASD属于相机特性之一,可能涉及白平衡、HDR等参数联动。 用户可能遇到的具体问题包括:ASD场景识别错误(如将夜景误判为室内)、参数优化失效或切换卡顿。需要分三部分解答:功能验证方法、常见问题分析和调试工具使用。 功能检测方面,要覆盖静态场景(如文档/夜景)和动态场景(如突然开灯)。测试需考虑不同光照、色温、移动速度等变量。问题分析的核心是log解析,重点查看scenetype切换记录和权重参数,比如HAL层日志中是否有"ASD: force scenetype"等关键字。 调试建议部分强调TuningTool的权重调整,特别是低光照下的误判需要调整HSV阈值。对于卡顿问题,要检查场景切换延时阈值是否过小。 考虑到用户可能需要深入代码,补充说明ASD算法在mtkcam3中的位置,但需注意不同芯片平台(如MT6789)路径差异。最后生成的三个问题都聚焦实际开发痛点,特别是算法参数调整和功耗优化,这确实是ASD部署的难点。</think>以下针对**MTK ASD(Auto Scene Detection)功能**的检测与问题分析进行系统级说明,结合平台实现原理与调试方法: --- ### **一、ASD功能核心机制** MTK ASD通过实时分析图像特征(色彩分布、纹理、亮度等)自动识别拍摄场景(如人像/夜景/文档/逆光),并动态调整相机参数(曝光/白平衡/锐化/HDR)。其实现分为两层: 1. **算法层** 在`vendor/mediatek/proprietary/hardware/mtkcam3/feature/asd`中实现场景分类模型,输出权重值(如`SCENE_WEIGHT_BACKLIGHT`) $$ \text{SceneType} = \arg\max_{i}(W_i \cdot F_i) \quad (i \in \{\text{Backlight}, \text{Night}, \cdots\}) $$ 其中$F_i$为特征向量,$W_i$为TuningTool校准的权重矩阵。 2. **控制层** 在`CamIO3`控制器(路径:`vendor/mediatek/proprietary/hardware/mtkcam/pipeline/model`)中决策参数切换逻辑,例如: ```c++ // 伪代码示例:检测到逆光场景时触发HDR if (currentScene == SCENE_BACKLIGHT) { enableHDR(LEVEL_HIGH); setTonemapCurve(tonemap_preset_high_contrast); // 应用高对比度曲线 } ``` --- ### **二、关键检测项与问题分析方法** #### **1. 功能验证测试** | **测试场景** | **预期行为** | **问题现象** | |-------------------|----------------------------------|-----------------------------| | 文档模式(白纸) | 自动增强锐度/降低饱和度 | 文字边缘模糊/色偏 | | 夜景(<10 lux) | 延长曝光时间/启动多帧降噪 | 噪点过多/亮度不足 | | 人像(面部区域) | 识别后启用美颜参数 | 皮肤细节丢失/磨皮过度 | | 逆光(强背景光) | 触发HDR合成/提亮前景 | 前景过暗/光晕溢出 | #### **2. 典型问题根因定位** - **场景误判** **分析步骤**: 1. 导出`adb logcat | grep "CamASD"`日志,检查输出的`Detected Scene`字段 2. 对比实际场景与算法输出(如将绿色植物误判为草地模式) 3. 调整TuningTool中的**HSV阈值**(`/vendor/etc/camera/ascene_default.xml`)[^1] - **参数切换延迟** **调试方法**: 1. 在工程固件中开启ASD时序日志:`echo 1 > /proc/mtkcam/asd_debug` 2. 检查场景切换耗时(需<200ms) 3. 优化模型推理速度:降低特征维度或量化模型 - **HDR与ASD冲突** **根因**:ASD触发的HDR等级与手动设置冲突 **解决方案**:在`hal_ftbls_platform.h`中配置优先级策略: ```c #define ASD_OVERRIDE_HDR_MODE 1 // 强制ASD优先级高于手动HDR ``` --- ### **三、调试工具链使用** 1. **TuningTool校准流程** - 连接设备进入**Meta Mode** - 加载工程固件提供的`ASD_Base_ISO800.ini`模板 - 调整各场景的**权重系数**与**特征阈值**(重点优化低光照误判) - 烧录生成的`ascene_calib.bin`至`/vendor/etc/camera/` 2. **Log解析关键字段** ```log [CamASD] Scene: NIGHT (Confidence: 0.82) # 置信度过低可能导致切换抖动 [CamIO] Apply HDR_Lv2 by ASD request # 参数生效确认 [ISP] AE compensation +1.5EV # 实际曝光调整 ``` --- ### **四、深度优化建议** 1. **动态场景适应** 在`mtkcam_asd_control.cpp`中增加**场景切换滤波算法**,避免快速切换导致的参数振荡: $$ \text{StableScene}_t = \sum_{i=t-3}^{t} \alpha_i \cdot \text{RawScene}_i \quad (\alpha_i \text{为衰减系数}) $$ 2. **功耗与性能平衡** - 限制高负载场景(如夜景模式)的ASD检测频率(从30fps降至15fps) - 采用**分区域检测**(ROI-Based)减少计算量 > **注**:ASD的稳定性高度依赖**工程固件版本**,若遇硬件兼容性问题(如特定Sensor噪点干扰判断),需联合FAE获取定制补丁[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值