原创 含生存期的矩形利用率問題求解

問題描述: 已知一寬爲W高爲H的目的矩形,時間序列爲t0,t1,……,在時間tn時系統隨機產生一寬爲Wn(不超過W)高爲Hn(不超過H)的小矩形,並且需將此小矩形放至目的矩形中,而且小矩形的生存期未知(即在同一時刻,產生一個小矩形時有可能

原创 struct、class和STL的統一內存管理

利用C++的new和delete操作符重載特性,可以對自定義的struct和class進行統一內存管理,再加上STL allocator的開放特性,便可以將STL容器對象的內存管理併入struct和class的內存管理,進而將這三者的內存

原创 函數模板中使用類型萃取(traits)替換類型推導(deduce)

以max函數爲例,通常是以宏的形式出現的 #define max(a, b) (((a) > (b)) ? (a) : (b))   但是在C++中,我們可能用模板替換它(對於內建類型,我們可以不寫const&) template<typ

原创 以單詞爲單位反轉字符串,要求不申請任何空間

問題描述:存在一個可讀寫的字符串,其中包括若干單詞,單詞間以空格區分,要求以單詞爲單位對字符串進行反轉。 算法思想:(1)利用異或運算可以進行不申請空間進行字符交換(2)利用遞歸的思想(3)使用strchr函數區分單詞 解決方案:(1)利

原创 使用宏對產品版本號和文件版本號進行統一管理

問題描述: 在每次發佈版本時,最簡單的就是在資源(*.rc)文件中修改當前文件和產品的版本號(如a.b.c.d),但是隨着時間的推移,需要發佈的DLL越來越多,於是每次修改時意味更多的時間和精力消耗,你得一個一個的打開各個DLL中的資源文

原创 使用PMULHW或PMADDWD指令對RGB顏色轉換至YCbCr顏色的彙編優化

在視頻處理中,常會遇到顏色空間的轉換(高清和標清下的轉換公式不同),下面是使用SIMD指令對RGBA顏色轉換至YUYV顏色的彙編優化   假設轉換公式如下: Y = Yr * R + Yg * G + Yb * B U = Ur * R

原创 工作中遇到的C++語言基礎和常見錯誤

C++歷史及標準 這裏簡單列一下C++發展進程中的幾次重大事件以及我常使用的典型特性,各個標準支持的具體細節可參閱ISO標準文檔。 C With Classes:支持C++基礎語言特性,包括多態、異常處理、模板、命名空間等 C++98

原创 空指針訪問的陷阱

背景 之前用AddressSanitizer工具驗證阿里雲短視頻SDK的穩定性時出現了一個崩潰問題,報錯堆棧在一個空指針對象訪問其成員函數處,但是從整體代碼執行流程分析發現其對象指針一直是空的,詭異的是不使用工具運行時無論如何都不會崩潰。

原创 利用Wrap Shell Script定位Android Native內存泄漏

前提條件 Android版本爲8.0以上 環境配置 cd到/src/main目錄下,新建shell目錄,同時shell目錄下配置與libs目錄下相同平臺的目錄,如下app下的層級結構,可看到shell/lib下具有與libs下相同的平臺目錄

原创 解決Linux下內聯彙編的宏融合尋址問題

Windows下生成DLL時,直接使用內聯彙編的宏融合(Macro Fusion)模式,可以提高效率,如 __asm {   movdqa    xmm0, g_data0;   paddw      xmm0, g_data1;

原创 LOCK instruction and InterLocked* functions

一個最簡單的例子,在多線程環境中,我們會常常使用到”引用計數”的情況,如變量 int g_ref = 0; 全局變量g_ref的讀寫是多線程不安全的,這是因爲相關操作是一個read-modify-write過程,因此需要使用同步機制,如考

原创 資源鏈接預存

這裏保存一下常用的圖像處理與機器視覺相關的資源鏈接,隨時翻閱 http://www.ipol.im/ 開源的圖像處理及分析的雜誌,含有對算法的分析及實現 http://people.csail.mit.edu/abadams/ http

原创 使用SSE4指令集優化雙線性插值圖像縮放

原理:p = p(0) *(1-t) + p(1) * t = p(0) + (p(1) - p(0)) * t水平方向和垂直方向均進行線性插值,縮放係數分別計算,由於水平和垂直成正交關係,因而與計算的先後次序無關。 縮放比例係數:dou

原创 雙邊濾波器在灰度和彩色圖像處理中的應用

原文鏈接:http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html 版權歸原作者所有,轉載請註明出處! 簡介思

原创 Ubuntu 12.04 配置intel c++ compiler開發環境

之前一直在windows下開發,寫了很多內嵌彙編,現在要移植到Linux下,幸好intel編譯器支持Linux,這裏以Ubuntu 12.04作爲系統平臺。 首先下載你想使用的intel編譯器版本,我這裏下載的是intel c++ co