为什么视频处理和采集所用的视频素材都是yuv格式的? 各种视频采集设备获取的视频文件采用什么格式保存的?为什么要用...
\u4ec0\u4e48yuv\u89c6\u9891\u6587\u4ef6\u8fd9\u4e2a\u5e94\u8be5\u662f\u4ee5YUV\u89c6\u9891\u5e27\u6784\u6210\u7684\u89c6\u9891\uff0c\u5176\u4ed6\u7684\u8fd8\u6709RGB\u89c6\u9891\uff0c\u8fd9\u4e24\u79cd\u89c6\u9891\u683c\u5f0f\u53ef\u4ee5\u76f8\u4e92\u8f6c\u6362\u3002
\u6839\u636e\u4e0d\u540c\u7684\u5e94\u7528\u3001\u4e0d\u540c\u7684\u9002\u7528\u73af\u5883\u548c\u4e0d\u540c\u7684\u6280\u672f\u6307\u6807\uff0c\u76ee\u524d\u6709\u591a\u79cd\u89c4\u683c\u7684\u89c6\u9891\u91c7\u96c6\u5361\u3002
\u6c11\u7528\u7ea7\u89c6\u9891\u91c7\u96c6\u5361\u7684\u52a8\u6001\u5206\u8fa8\u7387\u4e00\u822c\u6700\u5927\u4e3a384\u00d7288,PAL\u523625\u5e27\u6bcf\u79d2320\u00d7240\uff0c30\u5e27\u6bcf\u79d2\uff0cNTSC\u5236\u3002\u4ece\u7528\u9014\u4e0a\u6765\u8bf4\u5b83\u662f\u5e94\u8be5\u7b97\u5728\u4e13\u4e1a\u7ea7\uff0c\u800c\u4ece\u56fe\u50cf\u6307\u6807\u4e0a\u6765\u8bf4\u4ed6\u53ea\u80fd\u7b97\u505a\u6c11\u7528\u7ea7\u4ea7\u54c1\u3002\u5b83\u7684\u5206\u8fa8\u7387\u4e3a352\u00d7288\uff0c25\u5e27\u6bcf\u79d2\uff0cPAL\u5236\uff0c320\u00d7288\uff0c30\u5e27\u6bcf\u79d2\uff0cNTSC\u5236\u3002\u5b83\u91c7\u96c6\u7684\u89c6\u9891\u6587\u4ef6\u4e3aMPEG\u6587\u4ef6\uff0c\u91c7\u7528MPEG1\u538b\u7f29\u7b97\u6cd5\uff0c\u6240\u4ee5\u6587\u4ef6\u5c3a\u5bf8\u8f83\u5c0f\uff0c\u4f46\u89c6\u9891\u6307\u6807\u4f4e\u4e8eAVI\u6587\u4ef6\u3002
\u5e7f\u64ad\u7ea7\u89c6\u9891\u91c7\u96c6\u5361\u7684\u6700\u9ad8\u91c7\u96c6\u5206\u8fa8\u7387\u4e00\u822c\u4e3a768\u00d7576(\u5747\u65b9\u6839\u503c)PAL\u5236\uff0c\u6216720\u00d7576(CCIR-601\u503c)PAL\u523625\u5e27\u6bcf\u79d2\uff0c\u6216640\u00d7480/720\u00d7480 NTSC\u523630\u5e27\u6bcf\u79d2\u6700\u5c0f\u538b\u7f29\u6bd4\u4e00\u822c\u57284:1\u4ee5\u5185\u3002\u8fd9\u4e00\u7c7b\u4ea7\u54c1\u7684\u7279\u70b9\u662f\u91c7\u96c6\u7684\u56fe\u50cf\u5206\u8fa8\u7387\u9ad8\uff0c\u89c6\u9891\u4fe1\u566a\u6bd4\u9ad8\u3002\u7f3a\u70b9\u662f\u89c6\u9891\u6587\u4ef6\u5e9e\u5927\uff0c\u6bcf\u5206\u949f\u6570\u636e\u91cf\u81f3\u5c11\u4e3a200MB\u3002
\u4e1a\u7ea7\u89c6\u9891\u91c7\u96c6\u5361\u7684\u7ea7\u522b\u6bd4\u5e7f\u64ad\u7ea7\u89c6\u9891\u91c7\u96c6\u5361\u7684\u6027\u80fd\u7a0d\u5fae\u4f4e\u4e00\u4e9b\u3002\u5206\u8fa8\u7387\u4e24\u8005\u662f\u76f8\u540c\u7684\uff0c\u4f46\u538b\u7f29\u6bd4\u7a0d\u5fae\u5927\u4e00\u4e9b\uff0c\u5176\u6700\u5c0f\u538b\u7f29\u6bd4\u4e00\u822c\u57286:1\u4ee5\u5185\u3002\u8f93\u5165\u8f93\u51fa\u63a5\u53e3\u4e3aAV\u590d\u5408\u7aef\u5b50\u4e0eS\u7aef\u5b50\u3002\u6b64\u7c7b\u4ea7\u54c1\u9002\u7528\u4e8e\u5e7f\u544a\u516c\u53f8\uff0c\u591a\u5a92\u4f53\u516c\u53f8\u5236\u4f5c\u8282\u76ee\u53ca\u591a\u5a92\u4f53\u8f6f\u4ef6\u3002
之所以采用YUV色彩空间,是因为它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号,最常用的表示形式是Y、U、V都使用8个字节来表示,所以取值范围就是0~255。在广播电视系统中不传输很低和很高的数值,实际上是为了防止信号变动造成过载,因而把这“两边”的数值作为“保护带”,不论是Rec.601还是BT.709的广播电视标准中,Y的取值范围都是16~235, UV的取值范围都是16~240。
rgb是最接近人眼对颜色的感觉的存储方法,每个象素有三个颜色分量,比如可以用3个字节分别存放,比如存放顺序是R0,G0,B0,R1,G1,B1,...,它的所占用空间较大。
yuv格式是常用的视频格式,原因是它的易用性和对数据进行了压缩。yuv中的y是亮度信号,也可以说是灰度信号,u和v是红色和蓝色色差值;y信号每点都有,而u和v是隔点采集,存放顺序是U0,Y0,V1,Y1,U2,Y2,V3,Y3,...,颜色分量与亮度信号占用的空间相同,原理是根据人眼对色差的分辨率不高,所以可以进行这样的抽样采集、传输,相当于RGB格式的2/3;同时,如果只对视频图象中的亮度感兴趣(比如黑白电视、红外视频处理等),可以方便地用Y来构建显示,不用象RGB那样用公式计算灰度。
YCbCr可以说就是YUV格式,Cr即为红色差信号,Cb为蓝色差信号。
YUV方式比RGB方式节省带宽但有色彩上的损失。RGB一般用于高分辨率视频或静态图象,YUV用于通用流式视频。
绛旓細涔嬫墍浠閲囩敤YUV鑹插僵绌洪棿锛屾槸鍥犱负瀹冪殑浜害淇″彿Y鍜岃壊搴︿俊鍙稶銆乂鏄垎绂荤殑銆傚鏋滃彧鏈塝淇″彿鍒嗛噺鑰屾病鏈塙銆乂鍒嗛噺锛岄偅涔堣繖鏍疯〃绀虹殑鍥惧儚灏辨槸榛戠櫧鐏板害鍥惧儚銆傚僵鑹茬數瑙嗛噰鐢╕UV绌洪棿姝f槸涓轰簡鐢ㄤ寒搴︿俊鍙穀瑙e喅褰╄壊鐢佃鏈轰笌榛戠櫧鐢佃鏈虹殑鍏煎闂锛屼娇榛戠櫧鐢佃鏈轰篃鑳芥帴鏀跺僵鑹茬數瑙嗕俊鍙凤紝鏈甯哥敤鐨勮〃绀哄舰寮忔槸Y銆乁銆乂閮浣跨敤8涓瓧鑺...
绛旓細涓銆佽棰戜俊鎭殑閲囬泦锛氳棰戜俊鎭殑閲囬泦閫氬父鏄寚浠庢憚鍍忓ご鎴栧叾浠栬棰戞簮鑾峰彇瑙嗛鏁版嵁锛岄氬父闇瑕佺敤鍒拌棰戦噰闆嗗崱鎴栫浉鍏崇‖浠惰澶囥傚湪杞欢灞傞潰锛岄渶瑕佺敤鍒板浘鍍忓鐞嗗拰瑙嗛缂栬В鐮佺瓑鎶鏈傞噰闆嗗埌鐨勮棰戞暟鎹氬父鏄ā鎷熶俊鍙凤紝闇瑕侀氳繃鏁板瓧杞崲鍣ㄥ皢鍏惰浆鎹负鏁板瓧淇″彿锛屼互渚胯繘琛屽悗缁殑澶勭悊鍜屽瓨鍌ㄣ備簩銆佽棰戠殑鏄剧ず鎾斁锛氳棰戠殑鏄剧ず...
绛旓細瑙嗛淇℃伅鐨勯噰闆嗗拰鏄剧ず鎾斁鏄氳繃鏁板瓧瑙嗛澶勭悊鎶鏈疄鐜扮殑銆傛嫇灞曠煡璇嗭細鍏蜂綋鏉ヨ锛岃棰戜俊鎭鍏堥氳繃鎽勫儚璁惧鎴栨暟瀛楄棰戣緭鍏ヨ澶囪繘琛岄噰闆嗭紝杩欎簺璁惧灏嗘ā鎷熻棰戜俊鍙疯浆鎹负鏁板瓧淇″彿锛屼互渚胯绠楁満鎴栨暟瀛楄棰戝鐞嗚澶囪繘琛屽鐞嗐傞噰闆嗗埌鐨勬暟瀛楄棰戞暟鎹殢鍚庤瀛樺偍鍦ㄦ暟瀛楀瓨鍌ㄨ澶囷紙濡傜‖鐩橈級涓紝鎴栬呴氳繃缃戠粶浼犺緭鍒板叾浠栬澶囪繘琛屽鐞嗐
绛旓細瑙嗛閲囬泦鏄皢妯℃嫙瑙嗛淇″彿杞崲涓烘暟瀛椾俊鍙风殑杩囩▼锛岃繖涓杞彉鏄氳繃瑙嗛閲囬泦鍗′笂鐨勯噰闆嗚姱鐗囧疄鐜扮殑銆傛暟瀛楄棰戠殑瀛樺偍鏂瑰紡鍜屾挱鍑烘柟寮忓鏍凤紝鍙互鏄笉鍚屾牸寮忕殑鏂囦欢瀛樺偍鍦ㄧ數鑴戠‖鐩樹笂銆
绛旓細浼樺寲瑙嗛鍐呭銆6.2 浼樺寲鏀硅繘锛氭寔缁紭鍖栵細鏍规嵁瑙傜湅鏁版嵁鍜屽弽棣堬紝涓嶆柇鏀硅繘瑙嗛鍒朵綔娴佺▼鍜屽唴瀹癸紝鎻愬崌瑙傜湅浣撻獙銆傝棰戝鐞嗘祦绋嬫槸涓涓鏉傜殑澶氱幆鑺傝繃绋嬶紝闇瑕佺粨鍚堣棰戝唴瀹广佸埗浣滈渶姹傚拰瑙備紬鍠滃ソ杩涜閫夋嫨鍜屾搷浣溿備笉鍚岀殑瑙嗛澶勭悊鏂规硶鍜屾妧鏈彲浠ユ牴鎹棰戠壒鐐瑰拰闇姹傝繘琛岀粍鍚堝拰搴旂敤锛屼互杈惧埌鏈浣崇殑澶勭悊鏁堟灉銆
绛旓細鎴愭湰杈冮珮銆傚悗鑰閲囩敤閫氱敤瑙嗛A/D杞崲鍣ㄥ疄鐜板浘鍍忕殑閲囬泦锛屼笉鑳藉畬鎴愬浘鍍忕殑鑷姩閲囬泦锛屾暣涓噰闆嗚繃绋嬪湪CPU鐨勬帶鍒朵笅瀹屾垚锛岀敱CPU鍚姩A/D杞崲锛岃鍙朅/D杞崲鏁版嵁锛屽皢鏁版嵁瀛樺叆甯у瓨鍌ㄥ櫒銆傚叾鐗圭偣鏄暟鎹噰闆嗗崰鐢–PU鐨勬椂闂达紝瀵澶勭悊鍣ㄧ殑閫熷害瑕佹眰楂橈紝浣嗙數璺畝鍗曘佹垚鏈綆銆佹槗浜庡疄鐜帮紝鑳藉婊¤冻鏌愪簺鍥惧儚閲囬泦绯荤粺闇瑕併
绛旓細1銆佹暟鎹閲囬泦锛氭憚鍍忔満鍙婃嬀闊冲櫒鏀堕泦瑙嗛鍙闊抽鏁版嵁锛屾鏃跺緱鍒扮殑涓哄師濮嬫暟鎹 娑夊強鎶鏈垨鍗忚锛氭憚鍍忔満锛欳CD銆丆MOS 鎷鹃煶鍣細澹扮數杞崲瑁呯疆锛堝挭澶达級銆侀煶棰戞斁澶х數璺 2銆佹暟鎹紪鐮侊細浣跨敤鐩稿叧纭欢鎴栬蒋浠跺闊宠棰戝師濮嬫暟鎹繘琛岀紪鐮澶勭悊锛堟暟瀛楀寲锛夊強鍔犲伐锛堝闊宠棰戞贩鍚堛佹墦鍖呭皝瑁呯瓑锛夛紝寰楀埌鍙敤鐨勯煶瑙嗛鏁版嵁 娑夊強鎶鏈垨鍗忚...
绛旓細鎬荤粨:濡傛灉鎺ユ敹绔拰鍙戦佺澶勪簬鍚屼竴涓眬鍩熺綉鍐,鐢变簬鏈夊厖鍒嗙殑甯﹀淇濊瘉,鍦ㄦ弧瓒宠棰戜紶杈撶殑瀹炴椂鎬ф柟闈,TCP涔熷彲浠ユ湁姣旇緝濂界殑琛ㄧ幇,TCP鍜屽熀浜嶶DP鐨凴TP鐨勮棰浼犺緭鎬ц兘鐩稿樊涓嶅ぇ銆傜敱浜庡湪灞鍩熺綉鍐呭甫瀹戒笉鏄富瑕佺煕鐩,姝ゆ椂瑙嗛鏁版嵁浼犺緭鎵琛ㄧ幇鍑烘潵鐨勫欢鏃朵富瑕佷綋鐜颁负澶勭悊寤舵椂,瀹冩槸鐢卞鐞嗘満鐨勫鐞嗚兘鍔涗互鍙閲囩敤鐨勫鐞鏈哄埗鎵鍐冲畾鐨 銆備絾鏄綋...
绛旓細瑙嗛鐩存挱APP鎼缓锛岄煶瑙嗛閲囬泦锛閲囬泦瑙嗛銆侀煶棰戠紪鐮佹鏋讹細AVFoundation:AVFoundation鏄敤鏉ユ挱鏀惧拰鍒涘缓瀹炴椂鐨勮鍚獟浣撴暟鎹殑妗嗘灦锛屽悓鏃舵彁渚汷bjective-C鎺ュ彛鏉ユ搷浣滆繖浜涜鍚暟鎹紝姣斿缂栬緫锛屾棆杞紝閲嶇紪鐮 瑙嗛鐩存挱APP鎼缓锛瑙嗛澶勭悊锛堢編棰滐紝姘村嵃锛夊洜涓鸿棰戞渶缁堜篃鏄氳繃GPU锛屼竴甯т竴甯ф覆鏌撳埌灞忓箷涓婄殑锛屾墍浠ユ垜浠彲浠ュ埄鐢...
绛旓細瑙嗛鏁板瓧鍖栧鐞嗘槸灏嗕紶缁熺殑妯℃嫙瑙嗛淇″彿杞崲涓烘暟瀛楁牸寮忥紝骞跺鍏惰繘琛屽悗缁澶勭悊鍜缂栬緫鐨勮繃绋嬨備互涓嬫槸涓浜涘父鐢鐨勮棰鏁板瓧鍖栧鐞嗘柟娉曪細1. 瑙嗛閲囬泦锛浣跨敤瑙嗛閲囬泦璁惧锛屽鎽勫儚鏈烘垨瑙嗛鎹曟崏鍗★紝灏嗘ā鎷熻棰戜俊鍙疯緭鍏ヨ绠楁満锛屽畬鎴愯棰戜俊鍙风殑鏁板瓧鍖栬浆鎹2. 鍘嬬缉缂栫爜锛氬鏁板瓧鍖栫殑瑙嗛淇″彿杩涜鍘嬬缉缂栫爜锛屼互鍑忓皬鏂囦欢澶у皬鍜...