原创 iOS OC的strong, weak, assign, copy區別

(1).strong表示指向並擁有該對象。其修飾的對象引用計數會增加1。該對象只要引用計數不爲0則不會被銷燬。當然強行將其設爲nil可以銷燬它。 (2).weak表示指向但不擁有該對象。其修飾的對象引用計數不會增加。無需手動設置,該對象會

原创 Linux select()函數詳解

一.Select 函數詳細介紹       Select在Socket編程中還是比較重要的,可是對於初學Socket的人來說都不太愛用Select寫程序,他們只是習慣寫諸如connect、 accept、recv或recvfrom這樣的阻

原创 Linux內核線程優先級的三種調度策略

Linux內核三種調度策略:        (1).SCHED_OTHER 分時調度策略  (2).SCHED_FIFO  實時調度策略,先到先服務。一旦佔用cpu則一直運行。一直運行直到有更高優先級任務到達或自己放棄。   (3).SC

原创 Linux 互斥量、線程鎖使用總結

        在多線程編程中,引入了對象互斥鎖的概念,來保證共享數據操作的完整性。 每個對象都對應於一個可稱爲" 互斥鎖" 的標記,這個標記用來保證在任一時刻, 線程訪問該對象的獨佔性。 一、互斥鎖的操作函數: #include <p

原创 Linux pthread_cond_signal函數使用總結

pthread_cond_signal的作用是什麼?         pthread_cond_signal函數的作用是發送一個信號給另外一個正在處於阻塞等待狀態的線程,使其脫離阻塞狀態,繼續執行.如果沒有線程處在阻塞等待狀態,pthre

原创 iOS OC中多線程總結

1. 進程(process):         系統中正在運行的一個程序的實例,具有一定的獨立功能,是線程的容器。 2.線程(thread):         線程是進程執行的最小單位,一個進程中至少包含一個線程(主線程),進程中任務都在

原创 iOS tableView的優化處理

iOS 中造成tableView卡頓的原因都有哪些呢? 1).沒有使用cell的重用標識符,導致一直創建新的cell 2).cell的重新佈局 3).沒有提前計算並緩存cell的屬性及內容 4).cell中控件的數量過多 5).使用了Cl

原创 iOS 回調方法使用總結

     在iOS OC編程中,很多場景都會使用回調,尤其和C、C++代碼的數據交互上,使用回調,會很方便。那麼在OC中都可以使用那些回調方法呢?總結了以下6種: 一、Block方式 Block是OBJC提供的一種運行時方法機制,由c函數

原创 淺析HEVC/H.265編碼器中的熵編碼

        在保證視頻圖像質量的前提下,HEVC通過增加一定的計算複雜度,可以實現碼流在H.264/AVC的基礎上降低50%。爲了實現目標,HEVC採用了一些全新的編碼技術,比如:基於LCU(Largest Coding Unit)和

原创 NV12轉YUV420P

         在用MediaCodec編碼的時候,如果設置顏色空間爲YUV420SP,那麼則需要轉換一下,          NV21 顏色空間排列 :YYYYYYYY VUVU          YUV420SP顏色排列順序爲:YY

原创 RGB轉YUV原理及代碼驗證

        我們在視頻數據傳輸前,都要使用相應的壓縮算法來轉換壓縮數據,比如壓縮成H264和H265,這兩種基本上都是在YUV顏色空間上進行的。但是如果採集源採集的數據不是YUV的,在壓縮前就需要轉換,例如攝像頭採集的資源是RGB的,

原创 YUV2RGB快速算法分析

        YUV實際是YcrCb了,YUV2RGB的轉換公式本身是很簡單的,但是牽涉到浮點運算,所以,如果要實現快速算法,算法結構本身沒什麼好研究的了,主要是採用整型運算或者查表來加快計算速度。        首先可以推導得到轉換公

原创 GoPro內存卡里的THM、LRV文件

       GoPro是美國運動相機廠商。GoPro的相機現已被衝浪、滑雪、極限自行車及跳傘等極限運動團體廣泛運用,因而“GoPro”也幾乎成爲“極限運動專用相機”的代名詞。GoPro的創始人兼發明者是Nick Woodman。    

原创 iOS的同步異步,串行並行

iOS中的異步和同步: dispatch_async(異步)和dispatch_sync(同步): 決定有沒有開子線程的能力,而不是指會不會開子線程。queue 決定有沒有併發的能力。開子線程我就併發,不開就串行。 dispatch_as

原创 iOS基本語法總結

1.IOS中類聲明的文件叫做接口文件,以.h命名。 2.類定義的文件叫做實現文件,以.m命名。 3.#import是文件包含的內容。 4.聲明對象類名  *對象名      * 表示對象是對類的一個引用 5.爲對象分配空間 對象名=[類名