H.264編碼技術

H.264基本概況
隨著HDTV的興起,H.264這個規范頻頻出現在我們眼前,HD-DVD和藍光DVD均計劃采用這一標準進行節目制作。而且自2005年下半年以來,無論是NVIDIA還是ATI都把支持H.264硬件解碼加速作為自己最值得夸耀的視頻技術。H.264到底是何方“神圣”呢?
  H.264是一種高性能的視頻編解碼技術。目前國際上制定視頻編解碼技術的組織有兩個,一個是“國際電聯(ITU-T)”,它制定的標準有H.261、H.263、H.263+等,另一個是“國際標準化組織(ISO)”它制定的標準有MPEG-1、MPEG-2、MPEG-4等。而H.264則是由兩個組織聯合組建的聯合視頻組(JVT)共同制定的新數字視頻編碼標準,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高級視頻編碼(Advanced Video Coding,AVC),而且它將成為MPEG-4標準的第10部分。因此,不論是MPEG-4 AVC、MPEG-4 Part 10,還是ISO/IEC 14496-10,都是指H.264。
  H.264最大的優勢是具有很高的數據壓縮比率,在同等圖像質量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。舉個例子,原始文件的大小如果為88GB,采用MPEG-2壓縮標準壓縮后變成3.5GB,壓縮比為25∶1,而采用H.264壓縮標準壓縮后變為879MB,從88GB到879MB,H.264的壓縮比達到驚人的102∶1!H.264為什么有那么高的壓縮比?低碼率(Low Bit Rate)起了重要的作用,和MPEG-2和MPEG-4 ASP等壓縮技術相比,H.264壓縮技術將大大節省用戶的下載時間和數據流量收費。尤其值得一提的是,H.264在具有高壓縮比的同時還擁有高質量流暢的圖像。

H.264算法的優勢

  H.264是在MPEG-4技術的基礎之上建立起來的,其編解碼流程主要包括5個部分:幀間和幀內預測(Estimation)、變換(Transform)和反變換、量化(Quantization)和反量化、環路濾波(Loop Filter)、熵編碼(Entropy Coding)。
  H.264/MPEG-4 AVC(H.264)是1995年自MPEG-2視頻壓縮標準發布以后的最新、最有前途的視頻壓縮標準。H.264是由ITU-T和ISO/IEC的聯合開發組共同開發的最新國際視頻編碼標準。通過該標準,在同等圖象質量下的壓縮效率比以前的標準提高了2倍以上,因此,H.264被普遍認為是最有影響力的行業標準。

H.264的發展歷史

  H.264在1997年ITU的視頻編碼專家組(Video Coding Experts Group)提出時被稱為H.26L,在ITU與ISO合作研究后被稱為MPEG4 Part10(MPEG4 AVC)或H.264(JVT)。

H.264的高級技術背景

  H.264標準的主要目標是:與其它現有的視頻編碼標準相比,在相同的帶寬下提供更加優秀的圖象質量。
  而,H.264與以前的國際標準如H.263和MPEG-4相比,最大的優勢體現在以下四個方面:
  1. 將每個視頻幀分離成由像素組成的塊,因此視頻幀的編碼處理的過程可以達到塊的級別。
  2. 采用空間冗余的方法,對視頻幀的一些原始塊進行空間預測、轉換、優化和熵編碼(可變長編碼)。
  3. 對連續幀的不同塊采用臨時存放的方法,這樣,只需對連續幀中有改變的部分進行編碼。該算法采用運動預測和運動補償來完成。對某些特定的塊,在一個或多個已經進行了編碼的幀執行搜索來決定塊的運動向量,并由此在后面的編碼和解碼中預測主塊。
  4. 采用剩余空間冗余技術,對視頻幀里的殘留塊進行編碼。例如:對于源塊和相應預測塊的不同,再次采用轉換、優化和熵編碼。

H.264的特征和高級優勢

  H.264是國際標準化組織(ISO)和國際電信聯盟(ITU)共同提出的繼MPEG4之后的新一代數字視頻壓縮格式,它即保留了以往壓縮技術的優點和精華又具有其他壓縮技術無法比擬的許多優點。
  1.低碼流(Low Bit Rate):和MPEG2和MPEG4 ASP等壓縮技術相比,在同等圖像質量下,采用H.264技術壓縮后的數據量只有MPEG2的1/8,MPEG4的1/3。
  顯然,H.264壓縮技術的采用將大大節省用戶的下載時間和數據流量收費。
  2.高質量的圖象:H.264能提供連續、流暢的高質量圖象(DVD質量)。
  3.容錯能力強:H.264提供了解決在不穩定網絡環境下容易發生的丟包等錯誤的必要工具。
  4.網絡適應性強:H.264提供了網絡抽取層(Network Abstraction Layer), 使得H.264的文件能容易地在不同網絡上傳輸(例如互聯網,CDMA,GPRS,WCDMA,CDMA2000等)。

H.264標準概述

  H.264和以前的標準一樣,也是DPCM加變換編碼的混合編碼模式。但它采用“回歸基本”的簡潔設計,不用眾多的選項,獲得比H.263++好得多的壓縮性能;加強了對各種信道的適應能力,采用“網絡友好”的結構和語法,有利于對誤碼和丟包的處理;應用目標范圍較寬,以滿足不同速率、不同解析度以及不同傳輸(存儲)場合的需求。
  技術上,它集中了以往標準的優點,并吸收了標準制定中積累的經驗。與H.263 v2(H.263+)或MPEG-4簡單類(Simple Profile)相比,H.264在使用與上述編碼方法類似的最佳編碼器時,在大多數碼率下最多可節省50%的碼率。H.264在所有碼率下都能持續提供較高的視頻質量。H.264能工作在低延時模式以適應實時通信的應用(如視頻會議),同時又能很好地工作在沒有延時限制的應用,如視頻存儲和以服務器為基礎的視頻流式應用。H.264提供包傳輸網中處理包丟失所需的工具,以及在易誤碼的無線網中處理比特誤碼的工具。
  在系統層面上,H.264提出了一個新的概念,在視頻編碼層(Video Coding Layer, VCL)和網絡提取層(Network Abstraction Layer, NAL)之間進行概念性分割,前者是視頻內容的核心壓縮內容之表述,后者是通過特定類型網絡進行遞送的表述,這樣的結構便于信息的封裝和對信息進行更好的優先級控制。H.264的系統編碼框圖如圖1所示。

H.264標準的主要特點

  H264標準是由JVT(Joint Video Team,視頻聯合工作組)組織提出的新一代數字視頻編碼標準。JVT于2001年12月在泰國Pattaya成立。它由ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像編碼專家組)兩個國際標準化組織的專家聯合組成。JVT的工作目標是制定一個新的視頻編碼標準,以實現視頻的高壓縮比、高圖像質量、良好的網絡適應性等目標H264標準。H264標準將作為MPEG-4標準的一個新的部分(MPEG-4 part.10)而獲得批準,是一個面向未來IP和無線環境下的新數字視頻壓縮編碼標準。
  H264標準的主要特點如下:
  1.更高的編碼效率:同H.263等標準的特率效率相比,能夠平均節省大于50%的碼率。
  2.高質量的視頻畫面:H.264能夠在低碼率情況下提供高質量的視頻圖像,在較低帶寬上提供高質量的圖像傳輸是H.264的應用亮點。
  3.提高網絡適應能力:H.264可以工作在實時通信應用(如視頻會議)低延時模式下,也可以工作在沒有延時的視頻存儲或視頻流服務器中。
  4.采用混合編碼結構:同H.263相同,H.264也使用采用DCT變換編碼加DPCM的差分編碼的混合編碼結構,還增加了如多模式運動估計、幀內預測、多幀預測、基于內容的變長編碼、4x4二維整數變換等新的編碼方式,提高了編碼效率。
  5.H.264的編碼選項較少:在H.263中編碼時往往需要設置相當多選項,增加了編碼的難度,而H.264做到了力求簡潔的“回歸基本”,降低了編碼時復雜度。
  6.H.264可以應用在不同場合:H.264可以根據不同的環境使用不同的傳輸和播放速率,并且提供了豐富的錯誤處理工具,可以很好的控制或消除丟包和誤碼。
  7.錯誤恢復功能:H.264提供了解決網絡傳輸包丟失的問題的工具,適用于在高誤碼率傳輸的無線網絡中傳輸視頻數據。
  8.較高的復雜度:264性能的改進是以增加復雜性為代價而獲得的。據估計,H.264編碼的計算復雜度大約相當于H.263的3倍,解碼復雜度大約相當于H.263的2倍。
  H264標準各主要部分有Access Unit delimiter(訪問單元分割符),SEI(附加增強信息),primary coded picture(基本圖像編碼),Redundant Coded Picture(冗余圖像編碼)。還有Instantaneous Decoding Refresh(IDR,即時解碼刷新)、Hypothetical Reference Decoder(HRD,假想參考解碼)、Hypothetical Stream Scheduler(HSS,假想碼流調度器)。[4].

H.264標準的關鍵技術

  1.幀內預測編碼
  幀內編碼用來縮減圖像的空間冗余。為了提高H.264幀內編碼的效率,在給定幀中充分利用相鄰宏塊的空間相關性,相鄰的宏塊通常含有相似的屬性。因此,在對一給定宏塊編碼時,首先可以根據周圍的宏塊預測(典型的是根據左上角的宏塊,因為此宏塊已經被編碼處理),然后對預測值與實際值的差值進行編碼,這樣,相對于直接對該幀編碼而言,可以大大減小碼率。
  H.264提供6種模式進行4×4像素宏塊預測,包括1種直流預測和5種方向預測,如圖2所示。在圖中,相鄰塊的A到I共9個像素均已經被編碼,可以被用以預測,如果我們選擇模式4,那么,a、b、c、d4個像素被預測為與E相等的值,e、f、g、h4個像素被預測為與F相等的值,對于圖像中含有很少空間信息的平坦區,H.264也支持16×16的幀內編碼。 圖2 幀內編碼模式
  2.幀間預測編碼
  幀間預測編碼利用連續幀中的時間冗余來進行運動估計和補償。H.264的運動補償支持以往的視頻編碼標準中的大部分關鍵特性,而且靈活地添加了更多的功能,除了支持P幀、B幀外,H.264還支持一種新的流間傳送幀——SP幀,如圖3所示。碼流中包含SP幀后,能在有類似內容但有不同碼率的碼流之間快速切換,同時支持隨機接入和快速回放模式。圖3 SP-幀示意圖H.264的運動估計有以下4個特性。
  (1)不同大小和形狀的宏塊分割
  對每一個16×16像素宏塊的運動補償可以采用不同的大小和形狀,H.264支持7種模式,如圖4所示。小塊模式的運動補償為運動詳細信息的處理提高了性能,減少了方塊效應,提高了圖像的質量。圖4 宏塊分割方法
  (2)高精度的亞像素運動補償
  在H.263中采用的是半像素精度的運動估計,而在H.264中可以采用1/4或者1/8像素精度的運動估值。在要求相同精度的情況下,H.264使用1/4或者1/8像素精度的運動估計后的殘差要比H.263采用半像素精度運動估計后的殘差來得小。這樣在相同精度下,H.264在幀間編碼中所需的碼率更小。
  (3)多幀預測
  H.264提供可選的多幀預測功能,在幀間編碼時,可選5個不同的參考幀,提供了更好的糾錯性能,這樣更可以改善視頻圖像質量。這一特性主要應用于以下場合:周期性的運動、平移運動、在兩個不同的場景之間來回變換攝像機的鏡頭。
  (4)去塊濾波器
  H.264定義了自適應去除塊效應的濾波器,這可以處理預測環路中的水平和垂直塊邊緣,大大減少了方塊效應。
  3.整數變換
  在變換方面,H.264使用了基于4×4像素塊的類似于DCT的變換,但使用的是以整數為基礎的空間變換,不存在反變換,因為取舍而存在誤差的問題,變換矩陣如圖5所示。與浮點運算相比,整數DCT變換會引起一些額外的誤差,但因為DCT變換后的量化也存在量化誤差,與之相比,整數DCT變換引起的量化誤差影響并不大。此外,整數DCT變換還具有減少運算量和復雜度,有利于向定點DSP移植的優點。
  4.量化
  H.264中可選32種不同的量化步長,這與H.263中有31個量化步長很相似,但是在H.264中,步長是以12.5%的復合率遞進的,而不是一個固定常數。
  在H.264中,變換系數的讀出方式也有兩種:之字形(Zigzag)掃描和雙掃描,如圖6所示。大多數情況下使用簡單的之字形掃描;雙掃描僅用于使用較小量化級的塊內,有助于提高編碼效率。圖6 變換系數的讀出方式
  5.熵編碼
  視頻編碼處理的最后一步就是熵編碼,在H.264中采用了兩種不同的熵編碼方法:通用可變長編碼(UVLC)和基于文本的自適應二進制算術編碼(CABAC)。
  在H.263等標準中,根據要編碼的數據類型如變換系數、運動矢量等,采用不同的VLC碼表。H.264中的UVLC碼表提供了一個簡單的方法,不管符號表述什么類型的數據,都使用統一變字長編碼表。其優點是簡單;缺點是單一的碼表是從概率統計分布模型得出的,沒有考慮編碼符號間的相關性,在中高碼率時效果不是很好。
  因此,H.264中還提供了可選的CABAC方法。算術編碼使編碼和解碼兩邊都能使用所有句法元素(變換系數、運動矢量)的概率模型。為了提高算術編碼的效率,通過內容建模的過程,使基本概率模型能適應隨視頻幀而改變的統計特性。內容建模提供了編碼符號的條件概率估計,利用合適的內容模型,存在于符號間的相關性可以通過選擇目前要編碼符號鄰近的已編碼符號的相應概率模型來去除,不同的句法元素通常保持不同的模型。
  四、H.264在視頻會議中的應用
  目前,大多數的視頻會議系統均采用H.261或H.263視頻編碼標準,而H.264的出現,使得在同等速率下,H.264能夠比H.263減小50%的碼率。也就是說,用戶即使是只利用 384kbit/s的帶寬,就可以享受H.263下高達 768kbit/s的高質量視頻服務。H.264 不但有助于節省龐大開支,還可以提高資源的使用效率,同時令達到商業質量的視頻會議服務擁有更多的潛在客戶。
  目前,已經有少數幾家廠商的視頻會議產品支持H.264協議,廠商們致力于普及H.264這個全新的業界標準。隨著其它視頻會議方案廠商陸續效仿他們的做法,我們必將能全面體驗H.264視頻服務的優勢。

H.264的技術亮點

  1、分層設計 H.264的算法在概念上可以分為兩層:視頻編碼層(VCL:Video Coding Layer)負責高效的視頻內容表示,網絡提取層(NAL:Network Abstraction Layer)負責以網絡所要求的恰當的方式對數據進行打包和傳送。在VCL和NAL之間定義了一個基于分組方式的接口,打包和相應的信令屬于NAL的一部分。這樣,高編碼效率和網絡友好性的任務分別由VCL和NAL來完成。
  VCL層包括基于塊的運動補償混合編碼和一些新特性。與前面的視頻編碼標準一樣,H.264沒有把前處理和后處理等功能包括在草案中,這樣可以增加標準的靈活性。
  NAL負責使用下層網絡的分段格式來封裝數據,包括組幀、邏輯信道的信令、定時信息的利用或序列結束信號等。例如,NAL支持視頻在電路交換信道上的傳輸格式,支持視頻在Internet上利用RTP/UDP/IP傳輸的格式。NAL包括自己的頭部信息、段結構信息和實際載荷信息,即上層的VCL數據。(如果采用數據分割技術,數據可能由幾個部分組成)。
  2、高精度、多模式運動估計
  H.264支持1/4或1/8像素精度的運動矢量。在1/4像素精度時可使用6抽頭濾波器來減少高頻噪聲,對于1/8像素精度的運動矢量,可使用更為復雜的8抽頭的濾波器。在進行運動估計時,編碼器還可選擇"增強"內插濾波器來提高預測的效果。
  在H.264的運動預測中,一個宏塊(MB)可以按圖2被分為不同的子塊,形成7種不同模式的塊尺寸。這種多模式的靈活和細致的劃分,更切合圖像中實際運動物體的形狀,大大提高了運動估計的精確程度。在這種方式下,在每個宏塊中可以包含有1、2、4、8或16個運動矢量。
  在H.264中,允許編碼器使用多于一幀的先前幀用于運動估計,這就是所謂的多幀參考技術。例如2幀或3幀剛剛編碼好的參考幀,編碼器將選擇對每個目標宏塊能給出更好的預測幀,并為每一宏塊指示是哪一幀被用于預測。
  3、4×4塊的整數變換
  H.264與先前的標準相似,對殘差采用基于塊的變換編碼,但變換是整數操作而不是實數運算,其過程和DCT基本相似。這種方法的優點在于:在編碼器中和解碼器中允許精度相同的變換和反變換,便于使用簡單的定點運算方式。也就是說,這里沒有"反變換誤差"。 變換的單位是4×4塊,而不是以往常用的8×8塊。由于用于變換塊的尺寸縮小,運動物體的劃分更精確,這樣,不但變換計算量比較小,而且在運動物體邊緣處的銜接誤差也大為減小。為了使小尺寸塊的變換方式對圖像中較大面積的平滑區域不產生塊之間的灰度差異,可對幀內宏塊亮度數據的16個4×4塊的DC系數(每個小塊一個,共16個)進行第二次4×4塊的變換,對色度數據的4個4×4塊的DC系數(每個小塊一個,共4個)進行2×2塊的變換。
  H.264為了提高碼率控制的能力,量化步長的變化的幅度控制在12.5%左右,而不是以不變的增幅變化。變換系數幅度的歸一化被放在反量化過程中處理以減少計算的復雜性。為了強調彩色的逼真性,對色度系數采用了較小量化步長。
  4、統一的VLC
  H.264中熵編碼有兩種方法,一種是對所有的待編碼的符號采用統一的VLC(UVLC :Universal VLC),另一種是采用內容自適應的二進制算術編碼(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可選項,其編碼性能比UVLC稍好,但計算復雜度也高。UVLC使用一個長度無限的碼字集,設計結構非常有規則,用相同的碼表可以對不同的對象進行編碼。這種方法很容易產生一個碼字,而解碼器也很容易地識別碼字的前綴,UVLC在發生比特錯誤時能快速獲得重同步。
  5、幀內預測
  在先前的H.26x系列和MPEG-x系列標準中,都是采用的幀間預測的方式。在H.264中,當編碼Intra圖像時可用幀內預測。對于每個4×4塊(除了邊緣塊特別處置以外),每
  個像素都可用17個最接近的先前已編碼的像素的不同加權和(有的權值可為0)來預測,即此像素所在塊的左上角的17個像素。顯然,這種幀內預測不是在時間上,而是在空間域上進行的預測編碼算法,可以除去相鄰塊之間的空間冗余度,取得更為有效的壓縮。
  如圖4所示,4×4方塊中a、b、...、p為16 個待預測的像素點,而A、B、...、P是已編碼的像素。如m點的值可以由(J+2K+L+2)/ 4 式來預測,也可以由(A+B+C+D+I+J+K+L)/ 8 式來預測,等等。按照所選取的預測參考的點不同,亮度共有9類不同的模式,但色度的幀內預測只有1類模式。
  6、面向IP和無線環境
  H.264 草案中包含了用于差錯消除的工具,便于壓縮視頻在誤碼、丟包多發環境中傳輸,如移動信道或IP信道中傳輸的健壯性。
  為了抵御傳輸差錯,H.264視頻流中的時間同步可以通過采用幀內圖像刷新來完成,空間同步由條結構編碼(slice structured coding)來支持。同時為了便于誤碼以后的再同步,在一幅圖像的視頻數據中還提供了一定的重同步點。另外,幀內宏塊刷新和多參考宏塊允許編碼器在決定宏塊模式的時候不僅可以考慮編碼效率,還可以考慮傳輸信道的特性。
  除了利用量化步長的改變來適應信道碼率外,在H.264中,還常利用數據分割的方法來應對信道碼率的變化。從總體上說,數據分割的概念就是在編碼器中生成具有不同優先級的視頻數據以支持網絡中的服務質量QoS。例如采用基于語法的數據分割(syntax-based data partitioning)方法,將每幀數據的按其重要性分為幾部分,這樣允許在緩沖區溢出時丟棄不太重要的信息。還可以采用類似的時間數據分割(temporal data partitioning)方法,通過在P幀和B幀中使用多個參考幀來完成。
  在無線通信的應用中,我們可以通過改變每一幀的量化精度或空間/時間分辨率來支持無線信道的大比特率變化。可是,在多播的情況下,要求編碼器對變化的各種比特率進行響應是不可能的。因此,不同于MPEG-4中采用的精細分級編碼FGS(Fine Granular Scalability)的方法(效率比較低),H.264采用流切換的SP幀來代替分級編碼。

H264編碼技術  H.264的目標應用涵蓋了目前大部分的視頻服務,如有線電視遠程監控、交互媒體、數字電視、視

標準的整體框架

頻會議、視頻點播、流媒體服務等。H.264為解決不同應用中的網絡傳輸的差異。定義了兩層:視頻編碼層(VCL:Video Coding Layer)負責高效的視頻內容表示,網絡提取層(NAL:Network Abstraction Layer)負責以網絡所要求的恰當的方式對數據進行打包和傳送(如圖所示: 標準的整體框架)。

  基本層次(Baseline Profile):該層次使用了H.264的除了B-Slices,CABAC以及交織編碼模式外所有的特性。該層次主要使用于低時延的實時應用場合。

  主要層次(Main Profile):包含Baseline profile的所有特性,并包括了B-slices,CABAC以及交織編碼模式。它主要針對對時延要求不高,當壓縮率和質量要求較高的場合。

  擴展層次(Profile X):支持所有Baseline profile的特性,但不支持CABAC以及基于宏塊的自適應幀場編碼。該層次主要針對的時各種網絡視頻流傳輸方面的應用。

H264層次構成

  H264標準是由JVT(Joint Video Team,視頻聯合工作組)組織提出的新一代數字視頻編碼標準。JVT于2001年12月在泰國Pattaya成立。它由ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像編碼專家組)兩個國際標準化組織的專家聯合組成。JVT的工作目標是制定一個新的視頻編碼標準,以實現視頻的高壓縮比、高圖像質量、良好的網絡適應性等目標H264標準。H264標準將作為MPEG-4標準的一個新的部分(MPEG-4 part.10)而獲得批準,是一個面向未來IP和無線環境下的新數字視頻壓縮編碼標準。

  H264標準的主要特點如下:

  1.更高的編碼效率:同H.263等標準的特率效率相比,能夠平均節省大于50%的碼率。

  2.高質量的視頻畫面:H.264能夠在低碼率情況下提供高質量的視頻圖像,在較低帶寬上提供高質量的圖像傳輸是H.264的應用亮點。

  3.提高網絡適應能力:H.264可以工作在實時通信應用(如視頻會議)低延時模式下,也可以工作在沒有延時的視頻存儲或視頻流服務器中。

  4.采用混合編碼結構:同H.263相同,H.264也使用采用DCT變換編碼加DPCM的差分編碼的混合編碼結構,還增加了如多模式運動估計、幀內預測、多幀預測、基于內容的變長編碼、4x4二維整數變換等新的編碼方式,提高了編碼效率。

  5.H.264的編碼選項較少:在H.263中編碼時往往需要設置相當多選項,增加了編碼的難度,而H.264做到了力求簡潔的“回歸基本”,降低了編碼時復雜度。

  6.H.264可以應用在不同場合:H.264可以根據不同的環境使用不同的傳輸和播放速率,并且提供了豐富的錯誤處理工具,可以很好的控制或消除丟包和誤碼。

  7.錯誤恢復功能:H.264提供了解決網絡傳輸包丟失的問題的工具,適用于在高誤碼率傳輸的無線網絡中傳輸視頻數據。

  8.較高的復雜度:264性能的改進是以增加復雜性為代價而獲得的。據估計,H.264編碼的計算復雜度大約相當于H.263的3倍,解碼復雜度大約相當于H.263的2倍。

  H264標準各主要部分有Access Unit delimiter(訪問單元分割符),SEI(附加增強信息),primary coded picture(基本圖像編碼),Redundant Coded Picture(冗余圖像編碼)。還有Instantaneous Decoding Refresh(IDR,即時解碼刷新)、Hypothetical Reference Decoder(HRD,假想碼流調度器)、Hypothetical Stream Scheduler(HSS,假想參考解碼)。[6].

H.264解碼

  由于目前藍光格式的統一,使得市面上絕大多數的高清視頻均是采用H.264的格式編碼,它又分為四個最主要步驟,分別是流處理,逆變換,動態補償,去方塊濾波,這四步也是資源消耗的主要四個部分。

  H.264解碼的四個步驟中的第一步“CAVLC/CABAC解碼”是最為消耗運算資源,這方面遠高于其他三步(簡單的說,CAVLC/CABAC是H.264編碼規范中兩種不同的算法,都是為了提高壓縮比,其中CABAC比CAVLC壓縮率更高,但解碼時自然也要求更高)。

  如果所有四個步驟全采用處理器純軟件解碼運算,當碰上HDDVD版本的高碼率H.264視頻,處理器的負載會非常巨大,即使能流暢播放高清視頻,也會因為處理器壓力過重而影響其他同時開啟的應用程序的執行效率。

  如果讓處理器解碼“CAVLC/CABAC解碼”和“反向轉換(Inverse Transformation)”兩部分,由顯示核心承擔“運動補償”和“解碼去塊”功能,則可以在一定程度上降低處理器的壓力。 不過對于使用單核處理器或低端雙核處理器的用戶來說,這依然無法很好的應付這類視頻;其次,碰上編碼率更高的視頻,依然會給處理器造成很大的處理難度,導致視頻播放的不確定性,可能消費者會遇到某些視頻可以流暢播放,但是有些視頻卻丟幀的情況。

  通過以上兩點可以看出,由顯示核心承擔全部的H.264視頻解碼和處理過程,讓其解碼運算可以基本不依賴處理器將是最為經濟、便捷的方法。如果能實現這一點,以后消費者就無需過分擔心自己的處理器性能如何,不同的視頻編碼率導致的負載差距過大等等問題,只要選擇一顆能支持“H.264全解碼”的顯示核心,就能無所顧忌的播放所有高清視頻,而采用了高清加速引擎的英特爾GMA X4500HD芯片組則能夠輕松全程解碼H.264格式的高清視頻,再加上高級去交錯技術、電影模式檢測、細節增強技術、ProcAMP技術和最新的顯示連接技術則能夠從圖像品質、色彩飽和度以及高清接口等方面提升用戶的高清體驗。

H.264的性能比較

  TML-8為H.264的測試模式,用它來對H.264的視頻編碼效率進行比較和測試。測試結果所提供的PSNR已清楚地表明,相對于MPEG-4(ASP:Advanced Simple Profile)和H.263++(HLP:High Latency Profile)的性能,H.264的結果具有明顯的優越性。

  H.264的PSNR比MPEG-4(ASP)和H.263++(HLP)明顯要好,在6種速率的對比測試中,H.264的PSNR比MPEG-4(ASP)平均要高2dB,比H.263(HLP)平均要高3dB。6個測試速率及其相關的條件分別為:32 kbit/s速率、10f/s幀率和QCIF格式;64 kbit/s速率、15f/s幀率和QCIF格式;128kbit/s速率、15f/s幀率和CIF格式;256kbit/s速率、15f/s幀率和QCIF格式;512 kbit/s速率、30f/s幀率和CIF格式;1024 kbit/s速率、30f/s幀率和CIF格式。

H.264的錯誤恢復工具

  錯誤恢復的工具隨著視頻壓縮編碼技術的提高在不斷改進。舊的標準(H.261、H263、MPEG-2的第二部分)中,使用片和宏塊組的劃分、幀內編碼宏 塊、幀內編碼片和幀內編碼圖像來防止錯誤的擴散。之后改進的標準(H.263+、MPEG-4)中,使用多幀參考和數據分割技術來恢復錯誤。

  H.264標準在以前的基礎上提出了三種關鍵技術:(1)參數集合,(2) 靈活的宏塊次序(FMO),(3)冗余片(RS)來進行錯誤的恢復。

  

1. 幀內編碼


  

  H.264中幀內編碼的技術和以前標準一樣,值得注意的是:

  (1)H.264中的幀內預測編碼宏塊的參考宏塊可以是幀間編碼宏塊,幀內預測宏塊并不像H.263中的幀內編碼一樣,而采用預測的幀內編碼比非預測的幀 內編碼有更好的編碼效率,但減少了幀內編碼的重同步性能,可以通過設置限制幀內預測標記來恢復這一性能。

  (2)只包含幀內宏塊的片有兩種,一種是幀內片(Islice),一種是立即刷新片(IDRslice),立即刷新片必存在于立即刷新圖像 (IDRpicture)中。與短期參考圖像相比,立即刷新圖像有更強壯的重同步性能。

  在無線IP網絡環境下,為了提高幀內圖像的重同步性能,要采用率失真優化編碼和設置限制幀內預測標記。

  

2. 圖像的分割


  

  H.264支持一幅圖像劃分成片,片中宏塊的數目是任意的。在非FMO模式下,片中的宏塊次序是同光柵掃描順序,FMO模式下比較特殊。片的劃分可以適配不同的MTU尺寸,也可以用來交織分組打包。

  

3. 參考圖像選擇


  

  參考圖像數據選擇,不論是基于宏塊、基于片,還是基于幀,都是錯誤恢復的有效工具。對于有反饋的系統,編碼器獲得傳輸中丟失圖像區域的信息后,參考圖像可 以選擇解碼已經正確接收的圖像對應的原圖像區域作參考。在沒有反饋的系統中,將會使用冗余的編碼來增加錯誤恢復性能。

  

4. 數據的劃分
  

  通常情況下,一個宏塊的數據是存放在一起而組成片的,數據劃分使得一個片中的宏塊數據重新組合,把宏塊語義相關的數據組成一個劃分,由劃分來組裝片。

  在H.264中有三種不同的數據劃分。

  頭信息劃分:包含片中宏塊的類型,量化參數和運動矢量,是片中最重要的信息。

  幀內信息劃分:包含幀內CBPs和幀內系數,幀內信息可以阻止錯誤的蔓延。

  幀間信息劃分:包含幀間CBPs和幀間系數,通常比前兩個劃分要大得多。

  幀內信息劃分結合頭信息解出幀內宏塊,幀間信息劃分結合頭信息解出幀間宏塊。幀間信息劃分的重要性最低,對重同步沒有貢獻。當使用數據劃分時,片中的數據根據其類型被保存到不同的緩存,同時片的大小也要調整,使得片中最大的劃分小于MTU尺寸。

  解碼端若獲得所有的劃分,就可以完整重構片;解碼端若發現幀內信息或幀間信息劃分丟失,可用的頭信息仍然有很好的錯誤恢復性能。這是因為宏塊類型和宏塊的運動矢量含有宏塊的基本特征。

  

5. 參數集的使用

  序列的參數集(SPS)包括了一個圖像序列的所有信息,圖像的參數集(PPS)包括了一個圖像所有片的信息。多個不同的序列和圖像參數集經排序存放在解碼 器。編碼器參考序列參數集設置圖像參數集,依據每一個已編碼片的片頭的存儲地址選擇合適的圖像參數集來使用。對序列的參數和圖像的參數進行重點保護才能很 好地增強H.264錯誤恢復性能。

  在差錯信道中使用參數集的關鍵是保證參數集及時、可靠地到達解碼端。例如,在實時信道中,編碼器用可靠控制協議及早將他們以帶外傳輸的方式發送,使控制協 議能夠在引用新參數的第一個片到達之前把它們發給解碼器;另外一個辦法就是使用應用層保護,重發多個備份文件,確保至少有一個備份數據到達解碼端;第三個 辦法就是在編解碼器的硬件中固化參數集設置。

  

6. 靈活的宏塊次序(FMO)

  靈活的宏塊次序是H.264的一大特色,通過設置宏塊次序映射表(MBAmap)來任意地指配宏塊到不同的片組,FMO模式打亂了原宏塊順序,降低了編碼 效率,增加了時延,但增強了抗誤碼性能。FMO模式劃分圖像的模式各種各樣,重要的有棋盤模式、矩形模式等。當然FMO模式也可以使一幀中的宏塊順序分 割,使得分割后的片的大小小于無線網絡的MTU尺寸。經過FMO模式分割后的圖像數據分開進行傳輸,以棋盤模式為例,當一個片組的數據丟失時可用另一個片 組的數據(包含丟失宏塊的相鄰宏塊信息)進行錯誤掩蓋。實驗數據顯示,當丟失率為(視頻會議應用時)10%時,經錯誤掩蓋后的圖像仍然有很高的質 量。

  

7. 冗余片方法

  前邊提到了當使用無反饋的系統時,就不能使用參考幀選擇的方法來進行錯誤恢復,應該在編碼時增加冗余的片來增強抗誤碼性能。要注意的是這些冗余片的編碼參 數與非冗余片的編碼參數不同,也就是用一個模糊的冗余片附加在一個清晰的片之后。在解碼時先解清晰的片,如果其可用就丟棄冗余片;否則使用冗余模糊片來重 構圖像。

H.264在動中通應急圖像傳輸中的應用

  動中通系統對編解碼技術的需求

  動中通系統的衛星通道的特點決定了編解碼器要具備如下能力。

  第一,受動中通衛星天線增益、經緯度、地球同步軌道通信衛星自身參數以及天氣狀況(如下雨、多云)的限制,在許多地區上行帶寬超不過1.5Mbit/s。結合我公安實戰要求,需要編解碼器在低于1.5Mbit/s的帶寬下能夠傳輸清晰的D1質量的圖像。

  第二,由于受到樹木、山體及建筑物等物體的遮擋,衛星通道經常出現中斷,這就要求圖像編解碼器在衛星鏈路恢復后,能夠即時恢復圖像傳輸。

  第三,衛星鏈路相對于有線鏈路其誤碼率要高很多,這就給動中通系統的編解碼系統提出了更高的要求,要采取相應機制,以適應較高的誤碼率。

  第四,動中通系統經常需要在高速運行的環境下進行圖像傳輸,此時圖像的變化將非常劇烈,這就對編解碼器的運算處理能力提出了更高的要求,這種要求遠大于對室內電視會議系統圖像處理能力的要求。

  第五,動中通系統一般運行在車載環境中,環境溫度較高,電磁干擾較強,對編解碼器的適應性和抗干擾性能都提出了很高的要求。

  H.264技術是動中通圖像 編解碼器理想的選擇

  1.H.264技術的產生與發展

  圖1 視頻編碼標準沿革示意圖

  H.264是一種高性能的視頻編解碼技術。它是由兩大標準化組織聯合組建的聯合視頻組(JVT)共同制定的新數字視頻編碼標準,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高級視頻編碼(AdvancedVideoCoding,AVC),而且它將成為MPEG-4標準的第10部分。

  2.H.264技術可以很好地適應動中通衛星通道的特點,與動中通系統有效地結合。

  (1)具有較高的壓縮效率

  H.264編碼視頻流與H.263或MPEG-4Simple Profile編碼視頻流相比,平均可節省39%的比特率。通過引入一系列新特性,H.264的壓縮率提升近1倍,大大節省了衛星的傳輸帶寬。目前,國內的H.264編解碼器廠商可以在1.2Mbit/s的編碼碼率下實現D1(720×576)分辨率的連續清晰圖像。

  表1 H.264與MPEG-2壓縮碼率比較

  (2)基于UDP,實現圖像即時恢復

  由于受到遮擋,動中通系統經常發生衛星鏈路中斷的現象,在衛星信號恢復后,編解碼系統要能夠以最快的速度恢復圖像傳輸。H.264可以把關鍵信息分離出來,減小斷流再恢復的同步時間,同時,H.264編解碼器可以建立在UDP基礎之上,能夠快速重建鏈路,目前國內的編解碼器廠商已經實現圖像即時恢復。

  (3)具有較強的抗丟包和抗誤碼性能

  在衛星數據通信過程中,由于噪聲和其它原因,誤碼是必然存在的。H.264標準的參數集和片的使用、FMO、冗余片等關鍵技術可以大大提高系統的抗丟包和抗誤碼性能。H.264定義了視頻編碼層(VLC)和網絡提取層(NAL),并在框架結構上進行了分離,可以在異構網絡環境中使用。H.264把關鍵信息分離出來,憑借參數集的設計,確保在易出錯的環境中正確地傳輸它們,也增強了碼流傳輸的錯誤恢復能力。H.264技術中定義了靈活片組(FMO)、數據分割等錯誤恢復工具,方便解碼端實行錯誤掩蓋。

  此外,在運行過程中,出現衛星鏈路中斷或誤碼率過高時,實現了畫面停留在最后清晰的一幀上,同時,在實現了在信號恢復之后,畫面從接收到的清晰的一幀開始。H.264技術內置的多種錯誤恢復工具有利于解碼端進行錯誤掩蓋,誤碼超過一定閾值后跳過該幀,斷流后則保持在最后一正常幀的靜止畫面,碼流恢復后從第一個正常解碼的IDR幀開始顯示。

  (4)具有較強地抗干擾能力

  動中通系統中的攝像頭有時會引入較大干擾,特別在低照度的環境中干擾對圖像質量有非常大的影響。根據分析主要有兩種噪聲會影響視頻質量,一種是相鄰色素之間產生的偽顏色噪聲,一種是由于信號強度而產生的泊松噪聲(會影響物體的邊緣清晰度)。一般濾波器的工作原理是先做低通濾波,然后再做高通濾波。從頻譜上分析,物體的邊緣成分在做低通的時候已經損失掉了一部分,盡管在高通后通過一定的處理可以還原大部分,但實際上它已經不能夠達到最理想的效果。這些噪點隨著產品型號和工作環境的不同而不同。由于視頻壓縮算法效率與時間上的相關性有關,這種隨機噪點對視頻壓縮的影響非常大,有時候甚至造成碼流成倍上升,將壓縮算法的優點全部掩蓋。H.264技術一方面使用了高級圖像預處理方法,能夠減小低照度環境下噪點影響;另一方面,通過實時濾波技術的應用,使得在壓縮之前就排除了信號中的干擾,壓縮還原的圖像有很大提高,同時也降低了傳輸碼率。

  (5)網絡適應性強

  H.264包含一個內置的互聯網協議適配層(InternetProtocolAdaptiveLayer),所以,H.264可以被映射到任何固定IP、無線IP、存儲裝置或廣播網絡中,而這就是電信公司和消費性電子廠商都準備支持H.264的原因。H.264作為最新的視頻編碼標準,采取了一系列切合實際的技術措施,如視頻編碼層和網絡提取層分離、封裝NALUnits、指定參數集等提高了網絡適應性,增強了數據抗誤碼的頑健性,從而保證了視頻傳輸后壓縮視頻的QoS。

  3.在動中通衛星系統中H.264編解碼器經受住了實戰的洗禮。

  北京奧運安保中大量地啟用了平板式相控陣動中通衛星通信車,該類衛星車具有技術先進、機動靈活、操作簡單、鎖星效果好、性價比高等諸多優點,但也有其難以彌補的不足——上行帶寬低。在北京地區只有1.5Mbit/s左右,在原有MPEG-2或MPEG-4SimpleProfile編解碼器下,很難實現動中通條件下D1(720×576)分辨率的清晰圖像連續傳輸。為此,有關方面技術人員對多種編解碼器做了大量的實驗、對比以及改進,最終選擇了H.264編解碼器。在奧運安保期間,它實現了在1.2~1.5Mbit/s的視頻碼率下傳輸清晰的D1圖像,圓滿完成了奧運安保尤其是火炬接力、公路自行車賽、馬拉松賽等線路型賽事的圖像傳輸任務。

  目前,國內的有關技術機構已經開始著手較窄帶寬下適合無線移動傳輸的基于H.264技術的高清編解碼器的研發工作。隨著技術的不斷發展、整體結構的不斷完善、算法的不斷優化以及芯片處理能力的不斷提高,相信不久便可以看見國產的H.264編解碼器在較窄的衛星帶寬下實現高清品質的圖像傳輸

關于H.264的六個問題  

(1) H.264是國際標準嗎?為何說H.264要比其他壓縮技術更具前景?

  和此前的視頻壓縮技術如H.263不同的是,H.264雖然仍然是ITU-T體系之下的命名規范,卻大量借鑒了ISO/IEC的相關規范和研究。具體而言,ITU-T之下的視頻編碼專家組(Video Code Expert Group,VCEG)確立了H.264,而ISO/IEC之下的運動圖像專家組(MPEG)則將其命名為MPEG-4Part10/AVC。這兩個專家組織共同制定了該標準。

  因此,H.264和此前的視頻壓縮技術相比,既是行業標準,同時也是國際標準。此前ITU-T制定的視頻標準,因為和ISO/IEC的MPEG系列標準存在兼容性問題,所以嚴格意義上并沒有合適的、較為統一并為設備商們全體遵循的全球性國際標準。

  和此前的壓縮技術相比,H.264的優勢主要體現在下面幾個方面:

  1. 精確匹配解碼,避免錯誤累積;

  2. 更簡單的規范實施;

  3. 強大的容錯能力;

  4. 高效壓縮,比其他視頻壓縮能力高50%以上;

  5. 時延級差,以適應更多應用環境等。

   (2) H.264是標準體系,還是單一性標準?H.264的總體優缺點如何?有沒有不足之處?

  VCEG和MPEG聯合開發H.264標準帶來的最大好處就是,有助于H.264在全球范圍內的設備統一化,推廣起來更為簡便。但是和此前的視頻標準一樣,為了使得應用范圍更廣,H.264也還是通過等級區別和類別算法對多種應用場景進行各自的協議支持。

  H.264可以提供11個等級、7個類別的子協議格式(算法),其中等級定義是對外部環境進行限定,例如帶寬需求、內存需求、網絡性能等等。等級越高,帶寬要求就越高,視頻質量也越高。類別定義則是針對特定應用,定義編碼器所使用的特性子集,并規范不同應用環境中的編碼器復雜程度。

  H.264除了在技術上的優勢,應用上的優點主要體現在被更廣泛地接受,成為統一性的全球標準,可以降低總體應用成本。當前主要缺點是:對終端(網絡攝像機、顯示終端)要求更高。另外,對于家庭用戶而言,解碼回放設備價格過高,導致目前普及上存在一定的困難。

   (3) 當前H.264主要用在哪些領域?視頻監控是主體方向嗎?

  視頻監控是H.264部署的重要方向之一,這得益于H.264強大的壓縮能力、通用性,以及對網絡性能的容忍能力。但H.264的應用領域極為寬泛,視頻監控只能是其主要的應用方向之一,而不能視作主體方向。可以說,當前所有的視頻應用,都可以通過H.264獲得高質量的實現,例如數字電視廣播、高清電視、在線視頻的存儲和點播、3G視頻電話等等。

   (4) H.264相關技術在中國市場有沒有大的應用(高于企業級)?

  我國是H.264部署較為活躍的國家,特別在視頻監控行業,我國的投資巨大,但相關的市場總投入目前并無合適估算。原因在于,交通、公安,以及國家重點行業的視頻設備尤其是高清視頻設備部署情況并不是特別公開。

  2008年奧運會,成為中國部署H.264視頻監控的一個重要階段。此外,中國電信在早期階段進行的IPTV測試中,也大量采用了H.264技術,雖然后續中國電信也開始對國產視頻標準AVS,但對H.264的測試和跟蹤仍然在繼續。中國電信“全球眼”業務當前已經開始在一些局部地區大量采用H.264技術,并和現有專網視頻業務進行混合方案的提供,效果良好,這是當前中國乃至全球范圍內覆蓋最大、專項業務線最為全面的業務類型。

   (5) 中國在H.264方面的進展如何?自主技術方面有哪些突破?

  鑒于H.264作為全球通用標準的優勢,國內大部分企業在部署新的視頻應用時都有可能采用H.264,并且,正因為應用的廣泛性,H.264的相關設備價格將會迅速下降,部署成本也將因此得以降低。

  我國的廣電系統和電信運營商曾經將H.264作為主要的推動方向,并取得了一系列的成績。在目前電信已經實行運營的IPTV項目中,幾乎全部采用了H.264; 廣電系統的各大電視臺在進行從模擬向數字轉換,以及網絡雙向改造中,也大量采用了H.264技術標準。

  而隨著我國第二代具有自主知識產權的視頻編碼標準AVS(信息技術先進音視頻編碼)出臺,情況發生了變化。由于AVS對比H.264算法更為簡便,專利授權模式和收費都較為便利和低廉,并且和H.264在編解碼、壓縮上處于同一水平,因此我國開始大力推廣AVS的應用及產業鏈打造。國家正在努力構建對AVS產業鏈的政策扶持和資金扶持,以促進AVS逐步走向快車道。從目前看,AVS標準已經看到H.264的應用廣泛程度和后續競爭的存在,很多公司在開發AVS的同時,積極將AVS納入到和H.264兼容的體系中,這將有利于推動AVS的發展,并在后續過程中,相互競爭的同時,為AVS的發展爭取更多的空間。

   (6) H.264標準技術的采用,將會帶動哪些上下游產品和應用的迅速發展?

  總體而言,H.264標準被視做下一代視頻編解碼應用的最佳實現之一,被普遍認為會是將來更具競爭力的標準。

  H.264的應用,至少能夠促進以下幾個方面的發展:

  1. 視頻監控的全IP化和高清化;

  2. 百萬像素攝像機市場的發展;

  3. 藍光DVD及上下游硬件設備的發展;

  4. 局域網容量需求的上升,以及由此帶動的網絡存儲容量升級;

  5. 數字電視、IPTV發展的提速,以及上下游產品和內容源質量提升;

  6. 網絡帶寬的進一步升級等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455449.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455449.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455449.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java筆記13-兄弟連在線考試系統

今天內容: 1.兄弟連在線考試系統 1.1 軟件開發的流程 需求分析文檔 > 概要設計文檔 > 詳細設計文檔 > 編碼和測試1.2 編寫目的 (1)復習JavaSE所學的所有內容。 (2)鍛煉基本的編程能力。 1.3 功能分析 考試系統:(1)學員系統a.修改密碼b.開始…

macOS自帶Python2.7刪除之后的悲劇

2019獨角獸企業重金招聘Python工程師標準>>> 起因 今天打開xcode想要開始繼續寫項目的時候悲劇了. Loading a plug-in failed. The plug-in or one of its prerequisite plug-ins may be missing or damaged and may need to be reinstalled. 嘗試用終端打開看看報…

EasyUI 表格點擊右鍵添加或刷新 綁定右鍵菜單

例1 在HTML頁面中設置一個隱藏的菜單&#xff08;前提是已經使用封裝的Easyui&#xff09; 代碼&#xff1a; <div id"contextMenu_jygl" class"easyui-menu" style"width: 80px; display: none;"> <div …

python神奇的小海龜_Python筆記_第一篇_面向過程_第一部分_8.畫圖工具(小海龜turtle)...

turtle 是一個簡單的繪圖工具。提供一個小海龜&#xff0c;可以把它理解為一個機器人&#xff0c;只能聽懂有限的命令&#xff0c;且繪圖窗口的原點(0,0)在中間&#xff0c;默認海龜的方向是右側海龜的命令包括三類&#xff1a;運動命令、筆畫控制命令、其他命令。1. 運動命令…

jupyter淺析

一、jupyter 起步:簡介 Jupyter Notebook是一個開源的Web應用程序&#xff0c;允許用戶創建和共享包含代碼、方程式、可視化和文本的文檔。它的用途包括&#xff1a;數據清理和轉換、數值模擬、統計建模、數據可視化、機器學習等等。它具有以下優勢&#xff1a; 可選擇語言&a…

我在全球最大的同性社交平臺那點事

本文作者&#xff1a;夏之冰雪&#xff0c;i春秋簽約作家 《我在百度網盤上看到上萬條車主個人信息,企業、政府高官信息、各種數據庫和無窮無盡的盜版》&#xff0c;一時間&#xff0c;這篇文章就火了&#xff0c;火爆程度另百度猝不及防。 其實呢&#xff0c;這事真不能全怪百…

H.264的CAVLC(編碼.解碼)過程詳解

看264也看到CAVLC來了&#xff0c;把這方面的資料貼在這里&#xff1a; 編碼過程&#xff1a; 假設有一個4*4數據塊 &#xff08;變化&#xff0c;量化后就送入熵編碼&#xff09;{ 0 , 3 , -1 , 0, 0, -1 , 1, 0, 1 , 0 , 0 , 0, 0 , 0 , 0 , 0 } 數據重排列&a…

python進程通信方式有幾種_python全棧開發基礎【第二十一篇】互斥鎖以及進程之間的三種通信方式(IPC)以及生產者個消費者模型...

一、互斥鎖進程之間數據隔離&#xff0c;但是共享一套文件系統&#xff0c;因而可以通過文件來實現進程直接的通信&#xff0c;但問題是必須自己加鎖處理。注意&#xff1a;加鎖的目的是為了保證多個進程修改同一塊數據時&#xff0c;同一時間只能有一個修改&#xff0c;即串行…

Python實現修改圖片尺寸

起步 很多小伙伴從網上找的圖片可能圖片尺寸與自己的需求不符合 今天小編就教大家使用python寫一個簡單腳本程序實現修改圖片的尺寸 環境準備 首先我們需要python環境,它的安裝可以參考:python安裝以及版本檢測 其次我們還需要安裝一個python圖形化的庫PIL PIL的安裝,這里…

數據集

https://zhuanlan.zhihu.com/p/25138563轉載于:https://www.cnblogs.com/zhangbojiangfeng/p/7039725.html

常見的攻擊手段及其防御方式

本文簡單介紹幾種常見的攻擊手段及其防御方式 XSS(跨站腳本攻擊)CSRF&#xff08;跨站請求偽造&#xff09;SQL注入DDOSXSS 概念 全稱是跨站腳本攻擊&#xff08;Cross Site Scripting&#xff09;&#xff0c;指攻擊者在網頁中嵌入惡意腳本程序。案列 比如說我寫了一個博客網站…

使用ffmpeg進行h.264編碼

m_fmt->video_codec CODEC_ID_H264; /* 添加視頻流 */ m_video_st av_new_stream(m_oc, 0); if (!m_video_st) { return 0; } m_videocavcodec_alloc_context(); m_videoc m_video_st->codec; /* 視頻相關參數 */ m_videoc->codec_id m_fmt->video_codec; m_…

關于java的關鍵字 transient

我們都知道一個對象只要實現了Serilizable接口&#xff0c;這個對象就可以被序列化&#xff0c;Java的這種序列化模式為開發者提供了很多便利&#xff0c;我們可以不必關系具體序列化的過程&#xff0c;只要這個類實現了Serilizable接口&#xff0c;這個的所有屬性和方法都會自…

python中文件變化監控-watchdog

起步 在python中文件監控主要有兩個庫&#xff0c;一個是pyinotify&#xff0c;一個是watchdog。pyinotify依賴于Linux平臺的inotify&#xff0c;后者則對不同平臺的的事件都進行了封裝。因為我主要用于Windows平臺&#xff0c;所以下面著重介紹watchdog&#xff08;推薦大家閱…

python決策樹分類鳶尾花_基于決策樹—鳶尾花分類

決策樹算法廣泛應用于&#xff1a;語音識別、醫療診斷、客戶關系管理、模式識別、專家系統等&#xff0c;在實際工作中&#xff0c;必須根據數據類型的特點及數據集的大小&#xff0c;選擇合適的算法。本文選擇經典案例——《鳶尾花分類》一、決策樹定義決策樹算法是一種基于實…

希捷宣布出貨雙碟裝1TB硬盤 單碟500GB上市

希捷今天宣布&#xff0c;單碟容量高達500GB的Barracuda 7200.12 1TB硬盤已經出貨。 現有的1TB硬盤產品一般都是三碟裝(此前也有四碟裝)&#xff0c;包括希捷自家的ST31000340AS&#xff0c;但希捷一進率先將其升級為雙碟裝&#xff0c;存儲密度也達到了329Gb每平方英寸。這樣一…

P1334 瑞瑞的木板

題目描述 瑞瑞想要親自修復在他的一個小牧場周圍的圍欄。他測量柵欄并發現他需要N&#xff08;1≤N≤20,000&#xff09;根木板&#xff0c;每根的長度為整數Li&#xff08;1≤Li≤50,000&#xff09;。于是&#xff0c;他神奇地買了一根足夠長的木板&#xff0c;長度為所需的N…

FFMpeg的output_example.c例子分析

該例子講了如何輸出一個libavformat庫所支持格式的媒體文件。 &#xff08;1&#xff09;av_register_all()&#xff0c;初始化libavcodec庫&#xff0c;并注冊所有的編解碼器和格式。 &#xff08;2&#xff09;guess_format()&#xff0c;根據文件名來獲取輸出文件格式&#…

大量數據+同步+多線程_Vulkan 多線程渲染

1. Overview of Vulkan1.1 計算機圖形軟件圖形軟件有兩個大類&#xff1a;專用軟件包&#xff08;special-purpose packages&#xff09;和通用編程軟件包&#xff08;general programming packages&#xff09;。專用軟件包通常提供一種UI設計語言&#xff0c;讓用戶直接生成想…

飛康任命Gartner前分析師擔任亞洲區市場總監

在虛擬化、數據保護和數據遷移領域具備15年創新經驗的美國飛康軟件公司&#xff08;FalconStor Software, Inc.&#xff0c;NASDAQ&#xff1a;FALC&#xff09;近日宣布任命張瑾&#xff08;Jimmie Chang&#xff09;先生擔任該公司亞洲區市場部門負責人。 飛康公司近日面向全…