當前位置:首頁 » 操作系統 » ITN演算法

ITN演算法

發布時間: 2023-05-01 18:33:33

Ⅰ 電影格式有幾種都是什麼有什麼區別

常用的下載大概是RM類了MPEG類的
沒有最好,只有最適合
RM小一些
MPE圖像好一些

流式視頻格式(Streaming Video format)

1、REAL VIDEO 格式
RM格式是RealNetworks公司開發的一種新型流式視頻文件格式,它有三部分組成:RealAudio、RealVideo和RealFlash 。RealAudio用來傳輸接鍵此近CD音質的音頻數據,RealVideo用來傳輸連續視頻數據,而RealFlash則是RealNetworks公司與Macromedia公司新近合作推出的一種高壓縮比的動畫格式。RealMedia可以根據網路數據傳輸速率的不同制定了不同的壓縮比率,從而實現在低速率的廣域網上進稿兄迅行影像數據的實時傳送和實時播放。

2、MOV文件格式(QuickTime)
MOV也可以作為一種流文件格式。QuickTime能夠通過Internet提供實時的數字化信息流、工作流與文件回放功能,為了適應這一網路多媒體應用,QuickTime為多種流行的瀏覽器軟體提供了相應的QuickTime Viewer插件(Plug-in),能夠在瀏覽器中實現多媒體數據的實時回放。

3、ASF(Advanced Streaming format)格式
Microsoft公司推出的Advanced Streaming format (ASF,高級流格式),也是一個在Internet上實時傳播多媒體的技術標准,ASF的主要優點包括:本地或網路回放、可擴充的媒體類型、部件下載、以及擴展性等。ASF應用的主要部件是NetShow伺服器和NetShow播放器。有獨立的編碼器將媒體信息編譯成ASF流,然後發送到NetShow伺服器,再由NetShow伺服器將ASF流發送給網路上的所有NetShow播放器,從而實現單路廣播或多路廣播。

4、新的視頻格式 FLV
FLV流媒體格式是一種新的視頻格式,全稱為Flash Video。Flash MX 2004對其提供了完美的支持,它的出現有效地解決了視頻文件導入Flash後,使導出的SWF文件體積龐大,不能在網路上很好的使用等缺點。

影像格式(Video)
1、AVI格式
AVI格式即音頻視頻交錯(Audio Video Interleaved)格式。它是由Microsoft公司開發的一種數字音頻與視頻文件格式,AVI格式允許視頻和音頻交錯在一起同步播放,但AVI文件沒有限定壓縮標准,即AVI文件格式不具有兼容性。不同壓縮標准生成的AVI文件,就必須使用相應的解壓演算法才能將之播放出來。我們常常可以在多媒體光碟上發現它的蹤影,一般用於保存電影、電視等各種影像信息,有時它也出沒於Internet中,主要用於讓用戶欣賞新影片的精彩片段。

2、MOV格式(QuickTime)
它是Apple公司開發的一種音頻、視頻文件格式。QuickTime用於保存音頻和視頻信息,QuickTime文件格式支持25位彩色,支持領先的集成壓縮技術,提供150多種視頻效果,並配有提供了200多種MIDI兼容音響和設備的聲音裝置。新版的QuickTime進一步擴展了原有功能,包含了基於Internet應用的關鍵特性。QuickTime因具有跨平台、存儲空間要求小等技術特點,得到業界的廣泛認可,目前已成為數字媒體軟體技術領域的事實上的工業標准。

3、MPEG/MPG/DAT格式
MPEG即Moving Pictures Experts Group(動態圖像專家組)的縮寫,由國際標准化組織ISO(International Standards Organization)與IEC(International Electronic Committee)於1988年聯合成立,專門致力於運動圖像(MPEG視頻)及其伴音編碼(MPEG音頻)標准化工作。MPEG採用有損壓縮方法減少運動圖像中的冗餘信息從而達到高壓縮比的目的,當然這些是在保證影像質量的基礎上進行的。MPEG壓縮標準是針對運動圖像而設計的,其基本方法是:在單位時間內採集並保存第一幀信息,然後只存儲其餘幀相對第一幀發生變化的部分,從而達到壓縮的目的。MPEG的平均壓縮比為50∶1,最高可達200∶1,壓縮效率之高由此可見一斑。同時圖像和音響的質量也非常好,並且在微機上塵鏈有統一的標准格式,兼容性相當好。MPEG標准包括MPEG視頻、MPEG音頻和MPEG系統(視頻、音頻同步)三個部分。MP3音頻文件就是MPEG音頻的一個典型應用,而Video CD (VCD)、Super VCD (SVCD)、DVD (Digital Versatile Disk)則是全面採用MPEG技術所產生出來的新型消費類電子產品。

4、DIVX 格式
DIVX 視頻編碼技術可以說是一種對 DVD 造成威脅的新生視頻壓縮格式),它由 Microsoft mpeg4v3 修改而來,使用 MPEG4 壓縮演算法。同時它也可以說是為了打破 ASF 的種種協定而發展出來的。

java中的toString如何用

只要是非空的對象都能toString,以字元形式賦值

Ⅲ 求救,用C語言輸出一個9行9列的數組

#include<stdio.h>
int main()
{
int a[9][9],n=9;
int i,j,min;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
/高派/求出距四邊的毀爛最小距離,,加上1就是該位置纖念漏的答案
min=i;
if(j<min)min=j;
if(n-1-i<min)min=n-1-i;
if(n-1-j<min)min=n-1-j;
a[i][j]=min+1;
printf("%d",min+1);
}
puts("");
}
return 0;
}

Ⅳ 如何使用keytool創建密鑰倉庫

一步:生成密鑰對
您首先要做的是創建一個密鑰倉庫和生成密鑰對。您可以使用以下命令:
keytool -genkey -keyalg RSA -keysize 512 -dname "cn=hyq,o=eagle,c=cn" -alias weblogic -keypass 123456 -keystore C:/mykeystore/weblogic.jks -storepass 123456 -validity 365
(請注意:鍵入該命令時必須使其成為一行。此處用多行來顯示,主要是為了可讀性。)如下圖:
Snap2.gif

該命令將在 C 盤的 「mykeystore」 目錄中創建名為 「weblogic.jks」 的密鑰倉庫,並賦予它口令 「 123456 」 。它將為實體生成公鑰 / 私鑰對,該實體的 「 特徵名 」 為:常用名 「hyq」 、組織 「eagle」 和兩個字母的國家代碼 「cn」 。「 -keyalg 」指定它使用的是那種密鑰生成演算法來創建密鑰,預設的是 「DSA」 密鑰生成演算法(會使用預設的 「 帶 DSA 的 SHA1」 簽名演算法),兩個密鑰(公鑰與私鑰)的長度是 512 位,由 -keysize 來指定,默認的是 1024 位。 該證書包括公鑰和特徵名信息。該證書的有效期為 365 天,由 -validity 來指定,且與別名 「business」 所代表的密鑰倉庫項關聯。私鑰被賦予口令 「 123456 」 。

命令行里 DName 信息註解

DN 信息域
含義
CN
域名或 IP
OU
部門,沒有部門的可不要此項
O
單位名稱
L
單位地址
S
省份的拼音(第一個字母大寫)
C
國家的簡寫 ( CN 代表中國)

如果採用選項的預設值,可以大大縮短該命令。實際上,這些選項並不是必需的;對於有預設值的選項,未指定時將使用預設值,對於任何被要求的值,您將會得到要求輸入它的提示。例如:輸入命令 keytool -genkey -keystore "C:/tone.jks" -storepass 123456 -keyalg RSA ,就會有如下提示:
Snap3.gif

注意:這里的 密鑰倉庫路徑一定要存在,如果不存在的話,它就會拋如下的異常
Snap4.gif
第二步 : 產生證書請求certreq.pem 文件
使用如下命令:
keytool -certreq -alias weblogic -sigalg "MD5withRSA" -file C:/mykeystore/certreq.pem -keypass 123456 -keystore C:/mykeystore/weblogic.jks -storepass 123456
Snap5.gif
這樣在 C:/mykeystore/ 目錄下 就會產生一個 certreq.pem 文件,內容如下:
-----BEGIN NEW CERTIFICATE REQUEST-----
lxMFww
+
EAYRNl
l5dyGgV9hhu++/
ItNKJw==
-----END NEW CERTIFICATE REQUEST-----

第三步:這就相對來說簡單多了,就是向CA提交證書請求。
你可以隨便從網上找一家免費的CA認證適用機構(很多的),然後按照上面的提示進行操作就可以了,這一步就要用到前面生成的certreq.pem 文件了。(注意:一定要下載根證書)
將生成的證書和下載的根證書放至你比較容易找到的位置,我一般將它們和生成的jks文件放到一起。

第四步:導入證書
通過命令:keytool -import -alias RootCA -trustcacerts -file C:/mykeystore/RootCADemo.cer -keystore C:/mykeystore/weblogic.jks -storepass 123456將根證書導入第一步生成的weblogic.jks中,接著將所有其它的證書按照此命令全部導入。(注意證書的別名不能重復,同時一定注意要用上 -trustcacerts,否則,你在以後使用時,它將會認為你導入的這些證書是不可信任的 ,就會導致你在配置SSL時不能正常的工作。)
這就全部完成了密鑰倉庫的創建。然後就可以在支持這些證書格式的伺服器上使用了。下一篇將會寫一下在weblogic上如何配置雙向SSL。

Ⅳ 百度百科裡面的floyd演算法java的代碼,總是無法運行。請問是代碼有問題嗎,如何編譯啊

不能編譯運行的說法是錯誤,但是結果是否正確,我就不知道了,我不懂這個演算法

publicclassFLOYD{
int[][]length=null;//任意兩點之間路徑長度
int[][][]path=null;//任意兩點之間的路徑

publicFLOYD(int[][]G){
intMAX=100;
introw=G.length;//圖G的行數
int[][]spot=newint[row][row];//定義任意兩點之間經過的點
int[]onePath=返答租newint[row];//記錄一條路徑
length=newint[row][row];
path=newint[row][row][];
for(inti=0;i<row;i++)
//處理圖兩點之間的路徑
for(intj=0;j<row;j++){
if(G[i][j]==0)
G[i][j]=MAX;//沒有路徑的兩個點之間的路徑為默認最大
if(i==j)
G[i][j]=0;//本身的路徑長度為0
}
for(inti=0;i<row;i++)
//初始化為任意兩點之間沒有路徑
for(intj=0;j<row;j++)
spot[i][j]=-1;
for(inti=0;i<row;i++)
//假設任意兩點之間的沒有路徑
onePath[i]=-1;
for(intv=0;v<row;++v)
for(intw=0;w<row;++w)
length[v][w]=G[v][w];
for(intu=0;u<row;++u)
for(intv=0;v<row;++v)
for(intw=0;w<舉知row;++w)
if(length[v][w]>length[v][u]+length[u][w]){
length[v][w]=length[v][u]+length[u][w];//如果存在更短路徑則取更短路徑
spot[v][w]=u;//把經過的點加入
}
for(inti=0;i<row;i++){//求出所有的路徑
int[]point=newint[1];
for(intj=0;j<row;j++){
point[0]=0;
onePath[point[0]++]=i;
outputPath(spot,i,j,onePath,point);
path[i][j]=newint[point[0]];
for(ints=0;s<point[0];s++)
path[i][j][s]=onePath[s];
}
}
}

voidoutputPath(int[][]spot,inti,intj,int[]onePath,int[]point){//輸出i//
//到j//
//的路徑的實際代碼,point[]記錄一條路徑的長度
if(i==j)
return;
if(spot[i][j]==-1)
onePath[point[0]++]=j;
//System.out.print(""+j+"");
else{
outputPath(spot,i,spot[i][j],onePath,point);
outputPath(spot,spot[i][j],j,onePath,point);
}
}

publicstaticvoidmain(String[]args){
intdata[][]={
{0,27,44,17,11,27,42,0,0,0,20,25,21,21,18,27,0},//x1
{27,0,31,27,49,0,0,0,0,0,0,0,52,21,41,0,0},//1
{44,31,0,19,0,27,32,0,0,0,47,0,0,0,32,0,0},//2
{17,27,19,0,14,0,0,0,0,0,30,0,0,0,31,0,0},//3
{11,49,0,14,0,13,20,0,0,28,15,0,0,0,15,25,30},//漏兆4
{27,0,27,0,13,0,9,21,0,26,26,0,0,0,28,29,0},//5
{42,0,32,0,20,9,0,13,0,32,0,0,0,0,0,33,0},//6
{0,0,0,0,0,21,13,0,19,0,0,0,0,0,0,0,0},//7
{0,0,0,0,0,0,0,19,0,11,20,0,0,0,0,33,21},//8
{0,0,0,0,28,26,32,0,11,0,10,20,0,0,29,14,13},//9
{20,0,47,30,15,26,0,0,20,10,0,18,0,0,14,9,20},//10
{25,0,0,0,0,0,0,0,0,20,18,0,23,0,0,14,0},//11
{21,52,0,0,0,0,0,0,0,0,0,23,0,27,22,0,0},//12
{21,21,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0},//13
{18,41,32,31,15,28,0,0,0,29,14,0,22,0,0,11,0},//14
{27,0,0,0,25,29,33,0,33,14,9,14,0,0,11,0,9},//15
{0,0,0,0,30,0,0,0,21,13,20,0,0,0,0,9,0}//16
};
for(inti=0;i<data.length;i++)
for(intj=i;j<data.length;j++)
if(data[i][j]!=data[j][i])
return;
FLOYDtest=newFLOYD(data);
for(inti=0;i<data.length;i++)
for(intj=i;j<data[i].length;j++){
System.out.println();
System.out.print("From"+i+"to"+j+"pathis:");
for(intk=0;k<test.path[i][j].length;k++)
System.out.print(test.path[i][j][k]+"");
System.out.println();
System.out.println("From"+i+"to"+j+"length:"
+test.length[i][j]);
}
}
}

Ⅵ 在Java中return的用法

return的常用作用有以下兩種
一種是返回參數所用的關鍵字,假彎敬如一個有返回值的方法執行完了之後需要返回一個參數,示例埋蠢慎:public string functionTest(){
String a = "abc";
return a;
}
那麼這個方法被調用之後就會返回一個值為abc的字元串,string result = functionTest();

第二種用法是,代碼執行到此處終止。
比如當代碼執行到某個地方會出現幾檔早種結果,然後其中一種結果就不能執行後續代碼,這時候在那裡加上一個return就可以終止後面的代碼執行。

Ⅶ WAPI是什麼意思

WAPI (Wireless LAN Authentication and Privacy Infrastructure)是無線區域網鑒別和保密基礎結構,是一種安全協議,同時也是中國無線區域網安全強制性標准,最早由西安電子科技大學綜合搭碼業務網理論及關鍵技術國家重點實驗室提出。

WAPI 像紅外線、藍牙、GPRS、CDMA1X等協議一樣,是無線傳輸協議的一種,只不過跟它們不同的是它是無線區域網(WLAN)中的一種傳輸協議而已,它皮鄭與802.11傳輸協議是同一領域的技術。

無線區域網鑒別與保密基礎結構(WAPI)系統中包含以下部分:

1、WAI鑒別及密鑰管理

2、WPI數據傳輸保護

無線區域網保密基礎結構(WPI)對MAC子層的MPDU進行加、解密處理,分別用於WLAN設備的數字證書、密鑰協商和傳輸數據的加解密,從而實現設備的身份鑒別、鏈路驗證、訪問控制和用戶信息在無線傳輸狀態下的加密保護。

WAPI無線區域網鑒別基礎結構(WAI)不僅具有更加安全的鑒別機制、更加靈活的密鑰管理技術,而且實現了整個基礎網路的集中用戶管理。從而滿足更知握哪多用戶和更復雜的安全性要求。

以上內容參考網路-WAPI

Ⅷ 電影有幾種格式求大神幫助

AVI格式 nAVI格式 DV-AVI格式 MPEG格式 DivX格式 MOV格式

Ⅸ 誰能解釋一下MKV文件名這些英文的意思

告訴你兩個主要的吧 其他的是字幕格式 壓縮編碼格式什麼的
1、CAM(槍版)

CAM通常是用數鬧態余碼攝像機從電影院盜錄。有時會使用小三角架,但大多數時候不可能使用,所以攝像機會抖動。因此我們看到畫面通常偏暗人物常常會失真,下方的字幕時常會出現傾斜。由於聲音是從攝像機自帶的話筒錄制,所以經常會錄到觀眾的笑聲等聲音。因為這些因素,圖象和聲音質量通常都很差。

2、TS(准槍版)

TS是TELESYNC的縮寫。TS與CAM版的標準是相同的。液滾但它使用的是外置音源(一閉數般是影院座椅上為聽力不好的人設的耳機孔)這個音源不能保證是好的音源,因為受到很多背景噪音的干擾。TS是在空的影院或是用專業攝像機在投影室錄制,所以圖象質量可能比CAM好。但畫面的起伏很大。論壇上常出現的有一般TS版和經過修復清晰TS版

3、TC(膠片版)

TC是TELECINE的縮寫。TC使用電視電影機從膠片直接數字拷貝。畫面質量還不錯,但亮度不足,有些昏暗。很多時候製作TC使用的音源來自TS,因此音質很差,但畫面質量遠好過TS。如果不是太講究的話TC版還是不錯的選擇。

4、DVDSCR(預售版)

SCR是SCREENER的縮寫。DVDSCR預覽版的或者是測試版的DVD,非正式出版的版本。從預覽版 DVD 中獲取,通過mpeg-4技術進行高質量壓縮的視頻格式。能比DVDRip早發布,但畫質稍差。(經常有一些不在黑邊里在屏幕下方滾動的消息,包含版權和反盜版電話號碼,會影響觀看。)如果沒有嚴格的劃分它的畫質應與TC版差不多。

5、R5(俄羅斯5區版)

俄羅斯5區版的DVD,因為配音為俄語,所以需要去尋找英語音軌,R5版本就是一種合成版本(俄5區DVD視頻+通過其它渠道獲得的英語音軌),R5版本的畫質一般都不錯,音頻部分由於音軌的來源不同,效果有好有差。

6、HD RIP(高清版)

HDRip 是HDTVRip(高清電視資源壓縮)的縮寫,是用DivX/XviD/x264等MPEG4壓縮技術對HDTV的視頻圖像進行高質量壓縮,然後將視頻、音頻部分封裝成一個.avi或.mkv文件,最後再加上外掛的字幕文件而形成的視頻格式。畫面清晰度更高。

7、BD(藍光版)

BD是Blue Disk的簡稱,翻譯成中文是「藍光影碟」的意思。就是從藍光影碟轉錄的視頻和音頻,畫面清晰度很高。

8、DVD,HDVD,DVD5,DVD9

DVD的英文全名是Digital Video Disk,即數字視頻光碟或數字影盤,它利用MPEG2的壓縮技術來儲存影像。

9、HDVD(壓縮碟或者經濟版DVD)

HDVD俗稱壓縮碟或者經濟版DVD,介質通常為DVD-5(容量4.7G)也有DVD-9的(容量8.5G),採用MPEG-1或MPEG-2編碼,由於碼流較低,所以每張盤可容納長達7個小時的視頻節目,畫質水平略高於或等同於VCD。用於看連續劇最省錢。

10、VHSRip

VHSRip是從零售版VHS錄象帶轉制,主要是滑冰/體育內容的發布。

11、TVRip

從電視(最好是從數碼有線電視/衛星電視捕捉)轉制的電視劇,或接收由衛星提前幾天向電視網傳送的預播節目(不包含加密但有時有雪花)。有些節目,比如WWF RAW IS WAR包含多餘的部分;"DARK MATCHES"和CAMERA/COMMENTARY測試被包含在TVRip里。PDTV是從PCI數碼電視卡捕捉,通常效果最好;破解組織傾向於使用SVCD來發布。VCD/SVCD/DivX/XviD rips也都被用於發布TVRip。

12、WORKPRINT (WP)

WORKPRITN (WP)是從未完成的電影拷貝轉制而成,可能會缺失鏡頭和音樂。質量可能從最好到很差。有些WP可能和最終版本相差很遠。(MEN IN BLACK的WP丟失了所有的外星人,代之以演員);另一些則包括多餘的鏡頭(Jay and Silent Bob). WPs可以作為有了好質量的最終版本後的附加收藏。

13、DivX Re-Enc

DivXRe-Enc是從原始VCD發布用DivX編碼成的小一些的文件。通常可在文件共享網路找到。它們通常以 Film.Name.Group(1of2)等形式命名。常見的發布組織有SMR和TND。這些版本通常不值得下載,除非你不清楚某部電影,只想要 200MB的版本。一般應避免。

14、Watermarks

很多從Asian Silvers/PDVD (參看下面)來的電影帶有製作人的標記。通常是一個字母,名字縮寫或圖標,位於屏幕一角。最有名的是"Z","A"和"Globe"。

15、Asian Silvers / PDVD

Asian Silvers / PDVD是亞洲盜版商發行影片的,通常被一些發布組織購買來當做他們自己的發布。Silvers很便宜,在很多國家都很容易找到。發布Silvers很容易,所以現在有很多發布,主要是由一些小的組織發布;這些組織通常發布幾個RELEASE後就不見了。PDVD和Silver一樣,不過是壓在DVD上。 PDVD通常有外掛字幕,質量也比Silver好。PDVD象普通的DVD一樣轉制,但通常用VCD的格式發布Scene Tags發布文件的標志。

16、PROPER

根據發布規則,最先發布Telesync (TS)的組織贏得(TS發布的)比賽。但是,如果這個發布版本質量很差,同時另一組織有另一TS版本(或質量更好的同一片源),那麼標記PROPER被加到目錄上以避免重復。PROPER是一個最主觀的標記,很多人會爭論是否PROPER比原始發布版本好。很多發布組織只不過因為輸掉了發布比賽而發布 PROPER。發布PROPER的原因因該總是包含在NFO文件里。

17、SUBBED

對於VCD發布而言,SUBBED通常表示字幕被壓進了電影。它們通常是馬來語/中文/泰文等,有時有兩種語言。它們可能占據了很大一部分屏幕。SVCD支持外掛字幕,所以DVDRip用外掛字幕發布。這些信息可以在NFO文件中找到。

18、UNSUBBED

當一部電影曾經發布過有字幕的SUBBED版本,沒字幕的UNSUBBED版本也可能發布。

19、LIMITED

LIMITED電影指該電影只在有限的電影院放映,通常少於250家。通常較小的電影(比如藝術電影)的發行是LIMETED。

20、INTERNAL

INTERNAL發布有幾個原因。經典的DVD組織有很多.INTERNAL.發布版本,這樣不會引起混淆。同時,低質量的發布會加以 INTERNAL標記,這樣不會降低發布組織的聲譽,或由於已經發布的數量。INTERNAL發布可以正常的在組織的會員網站上獲取,但沒有其他網站管理員的要求它們不可以被交換到其他網站。一些TERNAL發布仍然流到IRC/NEWSGROUP,這通常取決於電影及其流行度。今年早些時候,人們把 CENTROPY做為INTERNAL。這表示發布組織只向其會員和網站管理員發布。這和其通常意思不同。

21、STV

STV表示電影從未在電影院放映過就被發布,因此很多望網站不允許STV。

22\ASPECT RATIO TAGS

*ws*表示寬銀幕,*FS*表示全屏幕。

23、RECODE

RECODE是以前已經發布過的版本,通常用TMPGenc編碼過濾以去除字幕,糾正顏色等。雖然它們看起來好一些,但通常不認為這是好的行為因為發布組織應該去找他們自己的片源。

24、REPACK

如果發布組織發布了一個壞的版本,他們會發布REPACK來解決這些問題。

25、NUKED

一個發布可能因為多種原因被NUKE掉。有些網站會因為違犯他們的規則而NUKE發布(比如不允許發布TS版本)。但如果發布的版本有很大的問題 (如20分鍾沒有聲音,CD2是錯誤的電影或游戲),那麼所有的網站都會NUKE這個發布。在這些網站上交換NUKED版本的人會失掉他們的信譽。但 NUKED發布仍然可以通過P2P/USENET傳播,所以應該總是首先找到其被NUKE的原因以防萬一。如果發布組織發覺他們的發布有問題,他們可以要求NUKE。

視頻格式
MPEG/.MPG/.DAT
MPEG是Motion Picture Experts Group 的縮寫。這類格式包括了 MPEG-1, MPEG-2 和 MPEG-4在內的多種視頻格式。MPEG-1相信是大家接觸得最多的了,因為目前其正在被廣泛地應用在 VCD 的製作和一些視頻片段下載的網路應用上面,大部分的 VCD 都是用 MPEG1 格式壓縮的 ( 刻錄軟體自動將MPEG1轉為 .DAT格式 ) ,使用 MPEG-1 的壓縮演算法,可以把一部 120 分鍾長的電影壓縮到 1.2 GB 左右大小。MPEG-2 則是應用在 DVD 的製作,同時在一些 HDTV(高清晰電視廣播)和一些高要求視頻編輯、處理上面也有相當多的應用。使用 MPEG-2 的壓縮演算法壓縮一部 120 分鍾長的電影可以壓縮到 5-8 GB 的大小(MPEG2的圖像質量是MPEG-1 無法比擬的)。
AVI
AVI,音頻視頻交錯(Audio Video Interleaved)的英文縮寫。AVI這個由微軟公司發表的視頻格式在視頻領域已經存在好幾個年頭了。AVI格式調用方便、圖像質量好,但缺點就是文件體積過於龐大,壓縮標准不統一。
MOV
使用過Mac機的朋友應該多少接觸過QuickTime。QuickTime原本是Apple公司用於Mac計算機上的一種圖像視頻處理軟體。Quick-Time提供了兩種標准圖像和數字視頻格式 , 即可以支持靜態的*.PIC和*.JPG圖像格式,動態的基於Indeo壓縮法的*.MOV和基於MPEG壓縮法的*.MPG視頻格式。
ASF
ASF (Advanced Streaming format高級流格式)。ASF 是 MICROSOFT 為了和現在的 Real player 競爭而發展出來的一種可以直接在網上觀看視頻節目的文件壓縮格式。ASF使用了 MPEG4 的壓縮演算法,壓縮率和圖像的質量都很不錯。因為 ASF 是以一個可以在網上即時觀賞的視頻「流」格式存在的,所以它的圖像質量比 VCD 差一點點並不出奇,但比同是視頻「流」格式的 RAM 格式要好。
WMV
一種獨立於編碼方式的在Internet上實時傳播多媒體的技術標准,Microsoft公司希望用其取代QuickTime之類的技術標准以及WAV、AVI之類的文件擴展名。WMV的主要優點在於:可擴充的媒體類型、本地或網路回放、可伸縮的媒體類型、流的優先順序化、多語言支持、擴展性等。
n AVI
如果發現原來的播放軟體突然打不開此類格式的AVI文件,那你就要考慮是不是碰到了n AVI。n AVI是 New AVI 的縮寫,是一個名為 Shadow Realm 的地下組織發展起來的一種新視頻格式。它是由Microsoft ASF 壓縮演算法的修改而來的(並不是想像中的 AVI),視頻格式追求的無非是壓縮率和圖像質量,所以 NAVI 為了追求這個目標,改善了原始的 ASF 格式的一些不足,讓 NAVI 可以擁有更高的幀率。可以這樣說,NAVI 是一種去掉視頻流特性的改良型 ASF 格式。
3GP
3GP是一種3G流媒體的視頻編碼格式,主要是為了配合3G網路的高傳輸速度而開發的,也是目前手機中最為常見的一種視頻格式。 簡單的說,該格式是「第三代合作夥伴項目」(3GPP)制定的一種多媒體標准,使用戶能使用手機享受高質量的視頻、音頻等多媒體內容。其核心由包括高級音頻編碼 (AAC)、自適應多速率 (AMR) 和MPEG-4 和 H.263 視頻編碼解碼器等組成,目前大部分支持視頻拍攝的手機都支持3GPP格式的視頻播放。
QuickTime
QuickTime(MOV)是 Apple(蘋果)公司創立的一種視頻格式,在很長的一段時間里,它都是只在蘋果公司的 MAC 機上存在。後來才發展到支持 WINDOWS 平台的,但平心而論,它無論是在本地播放還是作為視頻流格式在網上傳播,都是一種優良的視頻編碼格式。到目前為止,它共有 4 個版本,其中以 4.0 版本的壓縮率最好!
REAL VIDEO
REAL VIDEO (RA、RAM)格式由一開始就是定位就是在視頻流應用方面的,也可以說是視頻流技術的始創者。它可以在用 56K MODEM 撥號上網的條件實現不間斷的視頻播放,當然,其圖像質量和 MPEG2、DIVX 等比是不敢恭維的啦。畢竟要實現在網上傳輸不間斷的視頻是需要很大的頻寬的,這方面是ASF 的有力競爭者。
MKV
一種後綴為MKV的視頻文件頻頻出現在網路上,它可在一個文件中集成多條不同類型的音軌和字幕軌,而且其視頻編碼的自由度也非常大,可以是常見的 DivX、XviD、3IVX,甚至可以是 RealVideo、QuickTime、WMV 這類流式視頻。實際上,它是一種全稱為Matroska的新型多媒體封裝格式,這種先進的、開放的封裝格式已經給我們展示出非常好的應用前景。
DIVX
DIVX 視頻編碼技術可以說是一種對 DVD 造成威脅的新生視頻壓縮格式(有人說它是 DVD 殺手),它由 Microsoft mpeg4v3 修改而來,使用 MPEG4 壓縮演算法。同時它也可以說是為了打破 ASF 的種種協定而發展出來的。
FLV
FLV 是FLASH VIDEO的簡稱,FLV流媒體格式是一種新的視頻格式。由於它形成的文件極小、載入速度極快,使得網路觀看視頻文件成為可能,它的出現有效地解決了視頻文件導入Flash後,使導出的SWF文件體積龐大,不能在網路上很好的使用等缺點。

Ⅹ 享學課堂淺談Python序列內建函數都有哪些

1、Python類型操作符和內建函數總結
表4.5列出了所有操作符和內建函數,其中操作符順序是按優先順序從高到低排列的。同一種灰度的操作符擁有同樣的優先順序。注意在operator模塊中有這些(和絕大多數Python)操作符相應的同功能的函數可供使用。

表4.5 標准類型操作符和內建函數

操作符/函數

描 述

結 果a

字元串表示

``

對象的字元串表示

str

內建函數

cmp(obj1, obj2)

比較兩個對象

int

repr(obj)

對象的字元串表示

str

str(obj)

對象的字元串表示

str

type(obj)

檢測對象的類型

type

值比較

<

小於

bool

>

大於

bool

<=

小於或等於

bool

>=

大於或等於

bool

==

等於

bool

!=

不等於

bool

<>

不等於

bool

對象比較

is



bool

is not

不是

bool

布爾操作符

not

邏輯反

bool

and

邏輯與

bool

or

邏輯或

bool

2、Python數值類型操作符和內建函數

一、工廠函數
數值工廠函數總結類(工廠函數) 操作
bool(obj) b 返回obj對象的布爾值,也就是 obj.__nonzero__()方法的返回值。
int(obj, base=10) 返回一個字元串或數值對象的整數表 示, 類似string.atoi();
從Python 1.6起, 引入了可選的進制參數。
long(obj, base=10) 返回一個字元或數據對象的長整數表 示,類似string.atol(),
從Python1.6起, 引入了可選的進制參數 float(obj) ,
返回一個字元串或數據對象的浮點數 表示,類似string.atof()。
complex(str) or返回一個字元串的復數表示,或 者根據給定的實數,
complex(real, imag=0.0) (及一個可選 的虛數部分)生成一個復數對象。

二、內建函數
1、分類
Python 有五個運算內建函數用於數值運算:
abs(num), coerce(num1,num2), divmod(num1,num2), pow(num1,num2,mod=1)和 round(flt,ndig=0)
其中abs()返回給定參數的絕對值。如果參數是一個復數, 那麼就返回math.sqrt(num.real2 + num.imag2).
coerce()是一個數據類型轉換函數,不過它的行為更像一個運算符.數coerce()為程序員提供了不依賴Python 解釋器,而是自定義兩個數值類型轉換的方法。對一種新創建的數值類型來說, 這個特性非常有用.函數coerce()僅返回一個包含類型轉換完畢的兩個數值元素的元組.
divmod()內建函數把除法和取余運算結合起來, 返回一個包含商和余數的元組.對整數來說,它的返回值就是地板除和取余操作的結果.對浮點數來說,返回的商部分是math.floor(num1/num2),對復數來說,商部分是ath.floor((num1/num2).real).
pow()它和雙星號 (**)運算符都可以進行指數運算.不過二者的區別並不僅僅在於一個是運算符,一個是內建函數.在Python 1.5 之前,並沒有 ** 運算符,內建函數pow()還接受第三個可選的參數,一個余數參數.如果有這個參數的, pow() 先進行指數運算,然後將運算結果和第三個參數進行取余運算.這個特性主要用於密碼運算,並且比 pow(x,y) % z 性能更好, 這是因為這個函數的實現類似於C 函數pow(x,y,z).
round()用於對浮點數進行四捨五入運算。它有一個可選的小數位數參數.如果不提供小數位參數, 它返回與第一個參數最接近的整數(但仍然是浮點類型).第二個參數告訴round 函數將結果精確到小數點後指定位數.

2、函數int()/round()/math.floor()它們之間的不同之處:
函數 int()直接截去小數部分.(返回值為整數)
函數 floor()得到最接近原數但小於原數的整數.(返回值為浮點數)
函數 round() 得到最接近原數的整數.(返回值為浮點數)

3、進制轉換函數:
返回字元串表示的8 進制和16 進制整數,它們分別是內建函數:
oct()和 hex(). oct(255)='0377'/hex(255)='0xff'
函數chr()接受一個單位元組整數值(0到255),返回一個字元串(ASCII),其值為對應的字元.chr(97)='a'
函數ord()則相反,它接受一個字元(ASCII 或 Unicode),返回其對應的整數值.ord('A')=65
3、Python字元串函數
(一)標准類型操作符和標准內建函數
1)、標准類型操作符
>,<,>=,<=,==,!=,<>對象值得比較
註:做比較時字元串是按ASCII值的大小來比較的
is 對象身份比較
and,or,not 布爾類型
2)標准內建函數
type(obj)
cmp(obj1,obj2)
str(obj)和repr(obj) 或反引號運算符(``) 可以方便的以字元串的方式獲取對象的
內容、類型、數值屬性等信息。str()函數得到的字元串可讀性好, 而repr()函數得到的字元
串通常可以用來重新獲得該對象, 通常情況下 obj == eval(repr(obj)) 這個等式是成立的
isinstance(obj,type) 判斷對象的類型
(二)序列操作
1、序列操作
字元串屬於序列對象,可以使用所有序列的操作和函數
切片 [] [:] [::]
簡單總結:
*索引(S[i])獲取特定偏移的元素。
——第一個元素偏移為0
——(S[0])獲取第一個元素。
——負偏移索引意味著從最後或右邊反向進行計數
——(S[-2])獲取倒數第二個元素(就像S[len(s)-2]一樣
*分片[S[i:j]提取對應的部分作為一個序列
——右邊界不包含在內
——分片的邊界默認為0和序列的長度,如果沒有給出的話S[:]
——(S[1:3])獲取了從偏移為1,直到但不包括偏移為3的元素
——(S[1:])獲取從偏移為1到末尾之間的元素
——(S[:3])獲取從偏移為0直到但不包括偏移為3的元素
——(S[:-1])獲取從偏移為0直到但不包括最後一個元素之間的元素
——(S[:])獲取從偏移為0到末尾之間的元素,這有效地實現了頂層S拷貝
拷貝了一個相同值,但是是不同內存區域的對象。對象字元串這樣不可變的對象不是很有用,但是對於可以實地修改的對象來說很有用。
比如列表。
擴展分片:第三個限制值 【步進】
完整形式:X[I:J:K]:這標識索引X對象的元素,從偏移為I直到J-1,每隔K元素索引一次。第三個限制值,K,默認為1
實例

Python Code

1
2
3
4
5

>>> S='abcdefghijk'
>>> S[1:10]
'bcdefghij'
>>> S[1:10:2]
'bdfhj

也可以使用負數作為步進。
分片表達式

Python Code

1
2

>>> "hello"[::-1]
'olleh'

通過負數步進,兩個邊界的意義實際上進行了反轉。
3、成員操作符 in ,not in
返回布爾值True 或False
可以使用string模塊來判斷輸入字元的合法性,可見成品中的idcheck.py
4、字元串連接
+ 連接字元串 『name』+' '+'jin'
字元串格式化 '%s %s' % ('name','jin')
join()方法 ' '.join(('name','jin')) ' '.join(['name','jin'])
5、刪除清空字元串
del aString
aString=''
(三)、序列函數
序列類型函數
len(str) 返回字串的長度
enumerate(iter):接受一個可迭代對象作為參數,返回一個enumerate
max(str)/min(str):max()和min()函數對其他的序列類型可能更有用,但對於string類型它們能很好地運行,返回最大或者最小的字元(按照ASCII 碼值排列),
zip([it0, it1,... itN]) 返回一個列表,其第一個元素是it0,it1,...這些元素的第一個元素組成的一個元組,第二個...,類推.
reversed(seq)c 接受一個序列作為參數,返回一個以逆序訪問的迭代器(PEP 322)
sorted(iter,func=None,key=None,reverse=False) 接受一個可迭代對象作為參數,返回一個有序的列表;可選參數func,key 和reverse 的含義跟list.sort()內建函數的參數含義一樣.
注意:
sorted等需要在原處修改的函數無法用在字元串對象,但可以產生新的對象
sum處理的對象是數字,不能用在字元串
>>> sorted(s)
['a', 'e', 'e', 'g', 'g', 'g', 'o']
(四)只適合於字元串類型的函數
1)raw_input()函數
內建的raw_input()函數使用給定字元串提示用戶輸入並將這個輸入返回,下面是一個使
用raw_input()的例子:
>>> user_input = raw_input("Enter your name: ")
>>> prin user_input
2)str() and unicode()
str()和unicode()函數都是工廠函數,就是說產生所對應的類型的對象.它們接受一個任
意類型的對象,然後創建該對象的可列印的或者Unicode 的字元串表示. 它們和basestring 都
可以作為參數傳給isinstance()函數來判斷一個對象的類型
3)chr(), unichr(), and ord()
chr()函數用一個范圍在range(256)內的(就是0 到255)整數做參數,返回一個對應的字元.unichr()跟它一樣,只不過返回的是Unicode 字元
ord()函數是chr()函數(對於8 位的ASCII 字元串)或unichr()函數(對於Unicode 對象)
的配對函數,它以一個字元(長度為1 的字元串)作為參數,返回對應的ASCII 數值,或者Unicode
數值,如果所給的Unicode 字元超出了你的Python 定義范圍,則會引發一個TypeError 的異常
(五)、只適用於字元串的操作符
1、格式化操作符 %
字元串格式化符號
格式化字元 轉換方式
%c 轉換成字元(ASCII 碼值,或者長度為一的字元串)
%ra 優先用repr()函數進行字元串轉換
%s 優先用str()函數進行字元串轉換
%d / %i 轉成有符號十進制數
%ub 轉成無符號十進制數
%ob 轉成無符號八進制數
%xb/%Xb (Unsigned)轉成無符號十六進制數(x/X 代表轉換後的十六進制字元的大
小寫)
%e/%E 轉成科學計數法(e/E 控制輸出e/E)
%f/%F 轉成浮點數(小數部分自然截斷)
%g/%G %e 和%f/%E 和%F 的簡寫
%% 輸出%
格式化操作符輔助指令
符號 作用
* 定義寬度或者小數點精度
- 用做左對齊
+ 在正數前面顯示加號( + )
<sp> 在正數前面顯示空格
# 在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決於
用的是'x'還是'X')
0 顯示的數字前面填充『0』而不是默認的空格
% '%%'輸出一個單一的'%'
(var) 映射變數(字典參數)
m.n m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話)
2、字元串模板: 更簡單的替代品
由於新式的字元串Template 對象的引進使得string 模塊又重新活了過來,Template 對象
有兩個方法,substitute()和safe_substitute().前者更為嚴謹,在key 缺少的情況下它會報一
個KeyError 的異常出來,而後者在缺少key 時,直接原封不動的把字元串顯示出
3、原始字元串操作符( r/R )
字元串抑制轉義r'帶特殊符號的字串'
myfile=open(r'C:\new\text.data','w')
4、Unicode 字元串操作符( u/U )
u'abc' U+0061 U+0062 U+0063
u'\u1234' U+1234
u'abc\u1234\n' U+0061 U+0062 U+0063 U+1234 U+0012

(六)字元串對象的方法:
1、刪減
T2.lstrip() 移除字元串前面字元(默認空格),返回字元串
T2.rstrip() 移除字元串後面字元(默認空格),返回字元串
T2.strip() 移除字元串前後面空格,返回字元串 默認空格,可以其他字元 S.strip('"')
2、切割
partition(sep),
rpartition(sep),
splitlines([keepends]),#把S按照行分割符分為一個list,keepends是一個bool值,如果為真每行後而會保留行分割符
split([sep [,maxsplit]]),#以sep為分隔符,把S分成一個list。maxsplit表示分割的次數。默認的分割符為空白字元
rsplit([sep[,maxsplit]]) #從右到左切割
備註:
partition()函數族是2.5版本新增的方法。它接受一個字元串參數,並返回一個3個元素的 tuple 對象。
如果sep沒出現在母串中,返回值是 (sep, 『』, 『』);
否則,返回值的第一個元素是 sep 左端的部分,第二個元素是 sep 自身,第三個元素是 sep 右端的部分。
>>> S.partition(';')
('', ';', ' generated by /sbin/dhclient-script\nnameserver 172.16.10.171\nnameserver 8.8.8.8\nnameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n')
參數 maxsplit 是分切的次數,即最大的分切次數,所以返回值最多有 maxsplit+1 個元素。
s.split() 和 s.split(『 『)的返回值不盡相同
>>> ' hello world!'.split()
['hello', 'world!']
>>> ' hello world!'.split(' ')
['', '', 'hello', '', '', 'world!']
>>> S.split('\n',3)
['; generated by /sbin/dhclient-script', 'nameserver 172.16.10.171', 'nameserver 8.8.8.8', 'nameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n']
超過最大切割個數後面的全部為一個元素
按行切割
>>> S
'; generated by /sbin/dhclient-script\nnameserver 172.16.10.171\nnameserver 8.8.8.8\nnameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n'
>>> S.splitlines()
['; generated by /sbin/dhclient-script', 'nameserver 172.16.10.171', 'nameserver 8.8.8.8', 'nameserver 172.16.0.2', 'nameserver 178.79.131.110', 'nameserver 202.96.199.133']

產生差異的原因在於當忽略 sep 參數或sep參數為 None 時與明確給 sep 賦予字元串值時 split() 採用兩種不同的演算法。
對於前者,split() 先去除字元串兩端的空白符,然後以任意長度的空白符串作為界定符分切字元串
即連續的空白符串被當作單一的空白符看待;
對於後者則認為兩個連續的 sep 之間存在一個空字元串。因此對於空字元串(或空白符串),它們的返回值也是不同的:
>>> ''.split()
[]
>>> ''.split(' ')
['']
3、變形
lower(),#全部小寫
upper(),#全部小寫
capitalize(),#首字母大寫
swapcase(),#大小寫交換
title()#每個單詞第一個大寫,其他小寫
備注
因為title() 函數並不去除字元串兩端的空白符也不會把連續的空白符替換為一個空格,
所以建議使用string 模塊中的capwords(s)函數,它能夠去除兩端的空白符,再將連續的空白符用一個空格代替。

Python Code

1
2
3
4

>>> ' hello world!'.title()
' Hello World!'
>>> string.capwords(' hello world!')
'Hello World!'

4、連接
join(seq)
join() 函數的高效率(相對於循環相加而言),使它成為最值得關注的字元串方法之一。
它的功用是將可迭代的字元串序列連接成一條長字元串,如:
>>> conf = {'host':'127.0.0.1',
... 'db':'spam',
... 'user':'sa',
... 'passwd':'eggs'}
>>> ';'.join("%s=%s"%(k, v) for k, v in conf.iteritems())
'passswd=eggs;db=spam;user=sa;host=127.0.0.1'
>>> S=''.join(T) #使用空字元串分割把字元列表轉換為字元串
5、查找
count( sub[, start[, end]]),#計算substr在S中出現的次數
find( sub[, start[, end]]),#返回S中出現sub的第一個字母的標號,如果S中沒有sub則返回-1。start和end作用就相當於在S[start:end]中搜索
index( substr[, start[, end]]),#與find()相同,只是在S中沒有substr時,會返回一個運行時錯誤
rfind( sub[, start[,end]]),#返回S中最後出現的substr的第一個字母的標號,如果S中沒有substr則返回-1,也就是說從右邊算起的第一次出現的substr的首字母標號
rindex( sub[, start[, end]])
T2.find('ie') 字元串方法調用:搜索
find()----找到的第一個符合字元的index
rfind()-----找到最後一個符合的字元的index
備註:
find()函數族找不到時返回-1,index()函數族則拋出ValueError異常。
另,也可以用 in 和 not in 操作符來判斷字元串中是否存在某個模板
6、替換
replace(old, new[,count]),#把S中的oldstar替換為newstr,count為替換次數。這是替換的通用形式,還有一些函數進行特殊字元的替換
translate(table[,deletechars]) #使用上面的函數產後的翻譯表,把S進行翻譯,並把deletechars中有的字元刪掉
備註:
replace()函數的 count 參數用以指定最大替換次數
translate() 的參數 table 可以由 string.maketrans(frm, to) 生成
translate() 對 unicode 對象的支持並不完備,建議不要使用
7、判定
isalnum(),#是否全是字母和數字,並至少有一個字元
isalpha(),是否全是字母,並至少有一個字元
isdigit(),是否全是數字,並至少有一個字元 ,如果是全數字返回True,否則返回False
islower(),#S中的字母是否全是小寫
isupper(),#S中的字母是否是大寫
isspace(),#是否全是空白字元,並至少有一個字元
istitle(),S是否是首字母大寫的
startswith(prefix[, start[, end]]), #是否以prefix開頭
endswith(suffix[,start[, end]]),#以suffix結尾
備註:
這些函數都比較簡單,顧名知義。需要注意的是*with()函數族可以接受可選的 start, end 參數,善加利用,可以優化性能。
另,自 Py2.5 版本起,*with() 函數族的 prefix 參數可以接受 tuple 類型的實參,當實參中的某人元素能夠匹配,即返回 True。
8、填充
字元串在輸出時的對齊:
center(width[, fillchar]), 字元串中間對齊
ljust(width[, fillchar]), 字元串左對齊,不足部分用fillchar填充,默認的為空格
rjust(width[, fillchar]), 字元串右對齊,不足部分用fillchar填充,默認的為空格
zfill(width), 把字元串變成width長,並在右對齊,不足部分用0補足
expandtabs([tabsize])把字元串中的製表符(tab)轉換為適當數量的空格。
fillchar 參數指定了用以填充的字元,默認為空格
zfill的z為zero的縮寫,顧名思義,是以字元0進行填充,用於數值輸出
expandtabs()的tabsize 參數默認為8。它的功能是把字元串中的製表符(tab)轉換為適當數量的空格。
9、編碼
encode([encoding[,errors]]),
decode([encoding[,errors]])
這是一對互逆操作的方法,用以編碼和解碼字元串。因為str是平台相關的,它使用的內碼依賴於操作系統環境,
而unicode是平台無關的,是Python內部的字元串存儲

熱點內容
天天愛消除卡心腳本 發布:2024-05-20 13:01:00 瀏覽:124
python中str的意思 發布:2024-05-20 13:00:52 瀏覽:235
隨機訪問方式 發布:2024-05-20 12:42:52 瀏覽:258
php判斷登陸 發布:2024-05-20 12:14:24 瀏覽:629
腳本精靈並且 發布:2024-05-20 11:39:40 瀏覽:266
綠盟登陸器單機怎麼配置列表 發布:2024-05-20 11:34:34 瀏覽:971
Android省電軟體 發布:2024-05-20 11:25:00 瀏覽:341
android鍵盤隱藏 發布:2024-05-20 11:23:40 瀏覽:523
瘋狂點擊的點擊腳本 發布:2024-05-20 11:09:06 瀏覽:686
飯團文件夾 發布:2024-05-20 10:56:18 瀏覽:575