原创 內存池、進程池、線程池

池的概念 由於服務器的硬件資源“充裕”,那麼提高服務器性能的一個很直接的方法就是以空間換時間,即“浪費”服務器的硬件資源,以換取其運行效率。這就是池的概念。池是一組資源的集合,這組資源在服務器啓動之初就完全被創建並初始化,這稱爲靜態資

原创 JEM中的SIMD優化

SIMD是Single Instruction,Multiple Data的縮寫——意爲單指令多數據,是inter開發的多媒體指令集,採用C++封裝接口,底層調用彙編語言,因此執行效率很高。適合重複且可以並行的計算場合。由於編碼器在計算S

原创 實現加法計算(不用加減乘除運算符)

題目: 不用加減乘除實現兩個數相加。 解題:第一步:不考慮進位,兩個數相加sum(例如:5+7=2) 第二步:求進位carry(例如:5+7有進位10) 第三步:sum加carry,若有進

原创 HEVC 碼率控制

   碼率控制通常分爲三個level,分別爲GOP級、Frame級、LCU級,其中Frame級分爲三種方案,分別爲等bit碼率分配、固定比例碼率分配、自適應比例的碼率分配,其中固定比例分配方案是李斌博士提出,自適應比例分配是其師弟在其基礎

原创 H.266中的FRUC模式

目前的H.266引入兩個新的幀間預測模式,一個是有華爲提出的AFFINE模式,另一個是有高通提出的FRUC(Frame rate up conversion)模式,本文主要介紹FRUC模式,以後會介紹AFFINE模式,FRUC大約給H.2

原创 最大子段和問題的動態規劃解法

題目:給定一個一維數組,求出該數組最大字段和爲多少? 解題:該題解法很多,本文僅提供一種動態規劃的解法,複雜度爲O(n), SUM=max{b[j-1]+a[j],a[j]} 其中: if b[j-1]>0

原创 鏈表合併

題目:輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 解題:本題可有循環也可由遞歸實現,代碼給出了遞歸實現的方式。 代碼: class Solution { public: Li

原创 H.265的幀間預測

H.265幀間預測幀分爲:低延時P幀、低延時B幀,隨機接入B幀,P幀爲單向預測幀--前向預測,但是P幀中的編碼單元可以爲幀間預測塊(前向預測)也可以爲幀內預測快,對於H.265 P幀一般有四個參考幀,編碼器根據率失真代價準則,在四個參考幀

原创 快速、插入、冒泡排序,二分查找

void swap(int *a,int*b) { int temp = *a; *a = *b; *b = temp; } void quicksort(int arr[],int left,int right) //快速排序 {

原创 H.265幀內預測技術

幀內預測一般每代標準提出的新技術或者改進都比較少,主要集中在擴展原有的預測模式(從264的9種->H.265的35->目前H.266的67),增加一些參考像素的濾波技術和預測像素在邊界上的濾波技術等等,原因是幀內預測能夠拿到的參考信息比較

原创 HM代碼中Z-order掃描和Raster掃描之間的地址映射問題

HM中的CU劃分過程是按Z-order處理的,所以預測中的很多信息是按z-order存儲的,比如劃分深度、預測方向、幀內模式等等,而我們的尋址方式都是習慣性按照光柵的順序,所以在HM中存在Z-order到Raster之間的映射,也存在Ra

原创 1000!結果中0的個數

題目:計算出1000!結果中0的個數。 解題:由於1*2*3*4*.....1000,0是有2*5產生,由於上式中2的個數遠多於5,所以計算出5的個數,即是0的個數。 程序如下: int ZeroNum(int n) { int nu

原创 H.266中的雙邊濾波(Bilateral filter)

   爲了進一步消除因變換量化導致的振鈴效應,在H.266的探索階段,愛立信公司在第4次JVET會議中提出了一種雙邊濾波技術,並被JVET接受。該技術存在於反變換之後,提案JVET-D0069給出了具體的技術方案和編碼性能,對於AI和RA

原创 數組中只出現一次的數字

題目:給定數組中只有兩個數出現一次,其他的數都出現兩次,請找出這兩個數。 解題:0^0^1=1, 1^1^0=0可知,異或運算可以找出數組中出現一次的數字(如果只有一個數字的話),a^a^b^b^c^d=c^d,可知數組異或運算的結果爲