作者:馬健
郵箱:stronghorse_mj@hotmail.com
發布:2009.09.26
更新歷史
2014.11.11
補充了文字版PDG的部分內容
增加CX PDF等打包格式的相關內容
2009.09.26
首次公開發布
事先聲明:
1、本文僅代表我自己的個人觀點,沒有必要爭論:如果發現硬傷,歡迎指正;如果僅僅是有不同意見,請自己另寫一篇去。
2、本文可以轉載,但是必須注明轉自讀書園地,並注明原作者為strnghrs,並且不能對原文作任何刪改,否則視為非法盜版。
3、本文寫作過程中得到coolman的指正,在此表示感謝!
==========================================================================
新手初到園地,大概最心煩的就是與PDG相關的各種專有名詞,包括圖像版、文字版、清晰版、大圖版、快速版、6xH等等,本文對此作一個簡要說明,希望能起到掃盲的作用。
我個人認為,其實上面說的幾個概念關系並不復雜,可以用下面的示意圖(此圖為strnghrs原創,版權所有,盜用必究)說明:
PDG文件
┏━━━━━━━━┻━━━━━━━━┳━━━━━━━━┓
圖像版PDG 文字版PDG CX PDF
(文件名無下划線) (文件名帶下划線)(一本書一個文件)
┏━━━━━━━━┻━━━━━━━┓ ┃ ┃
清晰版 快速版 大圖版 有人說好,有人不要 不同歷史時期
┃ ┃ ┃ 可能采用各種加密格式, 有不同的清晰度
追求的目標 淘汰的目標 比快速版強 解密后是圖文混排的PDF
常為02H、04H 常為05H、AxH、6xH 非加密
解密后是CCITT、JPG 解密后是DjVu JPG、PNG改名,原版ssreader不認PNG
當然對新手來說這個圖理解起來有點困難,下面就加以詳細解釋。建議在看下文的時候,注意對照此圖,以加深理解。
在早期PDG還處於“老子的隊伍才開張”的時代,PDG文件都是用掃描后的圖像文件產生的,骨子里還是一種圖像格式,用官方瀏覽器ssreader打開后不能搜索、選擇、復制文字,要想獲得文字信息只能選擇OCR。這樣的PDG通常稱為圖像版PDG。
圖像版PDG由於是從原書掃描成的,因此完全忠實於原書,包括版式、字體、插圖等。但是圖像文件畢竟太大,會給服務器、網絡出口造成壓力,而且不能直接搜索、復制文字也不便於使用,因此后來采用OCR引擎對掃描圖像進行文字識別,再經ZIP壓縮、按PDG文件格式加密封裝等步驟后,出爐了一種骨子里是 純文字或圖文混排的PDF文件的PDG。這種PDG文件在ssreader里閱讀時,能夠直接搜索、選擇、復制其中的文字,放大顯示時文字也不會出現鋸齒,因此被稱為“文字版PDG”,以區別以前的圖像版PDG。而在文件名上二者也有區別:圖像版PDG文件名是6位,沒有下划線;文字版PDG文件名長度不固定,中間有下划線。
到目前為止,沒有任何一家OCR引擎敢保證自己的識別率是100%,事實上,我很懷疑未來有任何一家正常的軟件公司敢下這樣的保證。因此傳統上認為文字版PDG不如圖像版PDG靠得住,可能會因為OCR的差錯而出現錯別字,影響閱讀、引用。這就是為什么在園地很多人求書時指明不要文字版PDG的原因。不過從我個人的實際經驗看,早期 的純文字版PDG確實存在一些問題, 后來推出的圖文混排版則有所改進——OCR引擎把握比較大的文字就識別成文本,把握不大的就保持圖片,所以差錯不能說沒有,但至少比純文字的要好一點,只不過文本PDG在制作的時候忘記把圖片設置成透明了,所以在瀏覽器里設置了背景后,閱讀這種圖文混排的PDG會感覺眼花繚亂——解決的辦法就是自己把圖像改成透明,或者用UnicornViewer閱讀,並設置背景強制透明——當然免費版UnicornViewer是不支持文本PDG和PDF的。
另外我也曾碰到過個別文字版PDG是直接用從出版社獲得的原始排版文件生成的,沒有OCR環節,不僅沒有什么錯別字(原書有錯的除外),而且完全體現原書版式,還是很值得收藏的。當然,這樣的高質量文字版PDG只能靠運氣,趕上了就有,趕不上也沒辦法。
總之,通常可以認為文字版PDG具有下列特征:
1、原始文字版PDG文件名必定帶下划線,圖像版PDG的文件名則沒有下划線。
2、通常前言頁會跑到最后去。我猜這是因為按照PDG命名規則,前言頁以fow開頭,所以在OCR的時候,自然排在以數字開頭的正文頁之后。由此可見PDG官方制作者的水平和態度。
3、把文本PDG解密、解壓成PDF后,在Acrobat下打開,正文經常是黑體而不是宋體。修正這個問題的方法我在readfree說過,用PdfToy全文替換一下PDF中的字體參數就好。
4、閱讀的時候要么感覺滿眼錯別字,要么感覺有些詭異,總覺得有些字看起來比較毛糙。如果設置了瀏覽器的背景,就會發現那些感覺毛糙的部分是白色背景的小圖片。
5、原始文字版PDG文件的總長度很大,但轉換、合並成一個PDF文件后,如果合並時用的是Acrobat等具有消除冗余對象能力的合並軟件,合並后的PDF文件長度會比原始文字版PDG文件的總長度小很多。原因很簡單:為了保證每個獨立的文字版PDG文件都能被打開,CX被迫在制作時在每個文字版PDG所包含的PDF文件中都嵌入了字體,但其實對一本書來說,正文部分每一頁使用的字體都是相同的,所以原始文字版PDG中包含大量的重復信息。用Acrobat合並時,會自動刪除相同的字體,從而減少文件總長度。換句話說,如果文字版PDG合並成PDF后文件長度基本保持不變,你就應該懷疑你是不是用錯了合並軟件了。
文字版PDG雖然文件短小,但OCR畢竟是一個費時、費力的活兒,把所有書籍全變成文字版PDG顯然不太現實。因此為了減輕服務器和網絡的壓力,在圖像版PDG中又出現了清晰版、快速版的區別。換句話說,文字版PDG是不分什么清晰版、快速版的。
按照常規定義,采用300 DPI掃描得到的PDG稱為“清晰版”,采用150 DPI掃描得到的稱為“快速版”。由於DPI差了一倍,對於同一頁書,清晰版的長、寬是快速版的2倍,文件長度當然也要大一些,但是文字、插圖會更清晰。在園地區別清晰版與快速版的常規做法是:用ssreader打開,如果按100%顯示就是快速版,按50%顯示就是清晰版。這種鑒別方法武斷了一點,不過在大多數情況下還算有效。而在ssreader內部是這樣進行區分的:如果圖像寬度超過1200像素,則認為圖像是按300 DPI掃描的,否則認為是按150 DPI掃描的。這種區分顯然忽略了16開版與32開版的差異。
快速版由於文件大小比清晰版小得多,其清晰度雖然比清晰版差,但通常情況下也不至於因此而造成太大的閱讀障礙,因此在某段時期內在園地廣為流行,甚至有人聲稱“寧要快速版,不要清晰版”。但是好景不長,在快速版的真面目被進一步揭開以后,很快就成了“過街老鼠”,如今在園地再無老鳥敢要快速版,以前收藏的快速版PDG也都成了雞肋:為了追求較高的壓縮比,快速版PDG全部采用有損DjVu壓縮,而快速版本身的清晰度就不是太好,在DjVu有損壓縮時,可能會將筆畫殘缺的相似字識別為同一個字,造成錯別字。相比之下,清晰版全部采用無損CCITT G4壓縮,完全忠實於原著。有人曾在園地貼出過實際的PDG文件並進行對比:同一頁的清晰版沒有錯別字,而快速版就出現錯別字。
不論是清晰版還是快速版,對於文字頁面都按照黑白二值圖像進行存儲,無法在其中加入灰度或彩色的水印。為了解決“瘋狂的盜版問題”,在lr、dx等服務器上就出現了“大圖版”這種圖像PDG格式:將清晰版PDG縮圖,加入水印,存為JPG或PNG格式,但是文件擴展名還是PDG,就是所謂的“大圖版PDG”了。因此,所有大圖版PDG都是帶水印的,雖然水印圖案可能不同。大圖版有大、中、小三種尺寸,大尺寸的大圖版與快速版的面積差不多,但更清晰,而且因為是從清晰版PDG轉換過來,轉換過程中采用的JPEG、PNG(其實是ZIP)壓縮也不會產生錯別字,因此在快速版遭到唾棄后,園地大多數人的求書要求是:能有清晰版就要清晰版,沒有清晰版就要大圖版。淪落到快速版、文字版的多半都有迫不得已的理由,如新手最常見的理由就是“窮”(求書指定清晰版需要更多的幣幣),有些人則是為了節省磁盤空間(快速版、文字版的文件長度通常比大圖版、清晰版更小)。
新手初到園地,在沒有見識過真正清晰版的情況下,容易把“看起來很清晰”的大圖版當作“清晰版”,在求書區曾經有人為此打過筆墨官司。其實大圖版如果沒有被做過手腳,還是很容易區別的:
1、如上所說,所有大圖版都帶水印,而清晰版無水印。最常見的水印是篆刻有“好學近乎知”的印章,此外還有不常見的星星圖案等,甚至有人帖出來過用近似於《午夜凶鈴》劇照的MM彩照做水印的大圖版PDG。當然,這些水印基本上都可以通過圖像處理淡化甚至去除。
2、大圖版通常是供IE在線瀏覽,IE支持JPG、PNG,但是官方原版ssreader 4.0只支持JPG,不支持PNG。因此純文字頁面的大圖版PDG文件,用原版ssreader 4.0通常是打不開的,只能用園地發布的修改版ssreader,或第三方瀏覽器如UnicornViewer、ComicsViewer才能打開。鑒別圖像格式的另一個方法是用免費的Pdg2Pic打開疑似大圖版文件所在文件夾,這個軟件會自動檢查PDG文件的數據壓縮算法。在文件沒有被人做過手腳的情況下,如果左下方文件信息顯示“PNG”則是大圖版,顯示“DjVu”是快速版,顯示“CCITT”是清晰版,顯示“JPG”則不確定。不過隨着園地眾多格式轉換軟件的發行,也會有人重新對文件進行處理,造成上述方法的誤判。
3、大尺寸的大圖版和快速版的畫面尺寸差不多大,但是比清晰版還是小得多,而且文字看起來發“暈”(從清晰版到大圖版縮圖時造成的柔化),沒有清晰版銳利。不過這個要有比較才會鑒別。
4、清晰版如果有彩色插圖,轉為大圖版后多半會變成灰度圖像,這個也要有比較才能鑒別。因此如果求的是帶彩色插圖的書,我都會指明只要清晰版,當然求書代價也會相應提高。
由於求書人對清晰版的不懈追求,而且清晰版的出價通常比快速版、大圖版更高,因此也出現了一些“偽高清”:把大圖版或快速版,甚至是文字版轉為圖像,然后放大到清晰版的尺寸,再經過某些圖像處理,用老鷹或coolman提供的PDG壓縮軟件,采用CCITT算法壓成00H或02H PDG,貌似清晰版的“偽高清”就出爐了。這種偽高清雖然不能把灰度插圖再變回彩色,但是看上去沒有水印,用原版ssreader能夠正常打開,用Pdg2Pic檢查時“格式”欄顯示的也是CCITT,而尺寸也是清晰版的尺寸,因此對於新手來說很難鑒別,在求書應助時也曾有人為此打過筆墨官司。我個人的看法:偽高清的制作過程注定是有損的,因此制作再精良的偽高清,與真正的清晰版也不能完全等同。不過如果偽高清是從大圖版制作出來的,而且原書頁面上沒有插圖,處理后的視覺效果也足以“亂真”,碰到這樣的“高仿”也算運氣。而如果是從快速版或文字版制作出來的,不論制作技術如何高超,都屬於絕對不能原諒的JS行為,因為如前所述,快速版、文字版PDG本身就是不可信的。
至於經常有人提到的00H、02H、6xH等數字,指的都是PDG文件的加密格式代號:早期V1版PDG文件加密比較弱,很快就被人破解,然后D版盤賣得到處都是。為了對付D版,PDG文件定義了全新的V2版格式,所采用的加密技術也不斷在更新換代。從大版本看,V2版PDG經歷了0xH(包括00H、01H、02H、03H、04H、05H)、1xH(包括11H、12H、13H、14H、15H、16H、17H、18H、19H、1AH、1BH、1CH、1EH)、28H、AxH(包括AAH、ABH、ACH)、6xH(包括64H、65H、66H、67H、68H)幾個時代。如果想了解每一版PDG詳細的加密算法,可以閱讀cheming先生的大作《吵醒文件加密方式說明v1.5》。
需要說明的是,對加密格式的判斷要結合PDG文件的版本信息才能判斷准確。早期曾經有人在園地發行過一些不成熟的格式檢查軟件,忽略了PDG版本,機械地按照文件頭第16字節處的信息判斷加密算法。結果經常有人用這樣的軟件檢查后就驚呼“又有新的PDG加密格式了”,徒增笑柄。現在流行的PdgThumbViewer、Pdg2Pic,及老鷹、coolman的格式檢查軟件,均避免了這樣的錯誤。
目前6xH可以說代表了PDG文件加密技術的最高成就,成為官方打擊D版PDG的利器,因此也受到了最為廣泛的關注。但實際上,在PDG文件服務器上是不會有6xH格式存在的:高版本的官方原版ssreader會組合登錄用戶名、本地硬件信息(通稱機器碼)等生成加密密鑰,在下載的時候,會用加密密鑰對下載到的PDG文件進行加密,在本地生成6xH文件。因此,用一台機器下載到的6xH文件,換一台機器就不能讀了——兩台機器的機器碼不一樣。解決的辦法包括:
1、用cheming的Pizza、老鷹的coffee、coolman的魔術師解密。
2、不用官方原版ssreader下載。如前所述,6xH是原版ssreader下載后在本地生成的。可供選擇的軟件包括修改版ssreader(去掉6xH加密環節)、BE等。
3、用官方原版ssreader閱讀或下載,但是對網絡數據流進行截流,獲得加密前的原始PDG。
除了上面說的機器碼限制外,PDG中還可能有時間限制:如果用官方原版ssreader閱讀本地保存的帶時間限制的PDG文件,在超過規定期限后,ssreader就會自動對文件進行破壞。而在文件到期前把它解密掉,也常常成為在園地購買Pizza、coffee、魔術師等解密軟件,或刻苦努力翻舊貼,研究報文、嗅探、截流等技術的理由。
帶時間限制的PDG雖說有點定時炸彈的感覺,好歹在有效期內還能在本地閱讀,而某些鏡像服務器上的AxH則只允許在線瀏覽,不允許下載閱讀:用官方原版ssreader下載AxH到本地后,會立刻對文件進行不可恢復的破壞,破壞后的文件用格式檢查軟件檢查通常顯示為FFH格式,因此在園地FFH也是“死亡”的代名詞。解決的辦法就是別用原版ssreader下載,改用截流、第三方下載軟件或修改版ssreader。不過到現在為止,我見過的AxH全部都是快速版,看過就刪了。
對於沒有做過手腳的圖像版PDG,PDG的加密格式與圖像清晰度密切相關:早期清晰版通常是02H、04H,而快速版是05H,因此早期在園地也用加密格式代號來辨別清晰版與快速版,02H因此成為追捧的對象。不過自從老鷹、coolman發布PDG加密軟件后,可以任意更改PDG的加密代號,這招就常常失靈了。
所有格式里比較特殊的是00H,即不加密的格式。這種格式當然也不會有時間、機器碼限制。除早期的服務器外,目前新的PDG服務器上已經很難找到這種格式。但不論是清晰版還是快速版,經Pizza、coffee、魔術師解密后都成為00H。圖像版00H可以用原版ssreader正常閱讀,而且由於在閱讀的時候不再需要花時間進行解密,因此顯示速度可能比未解密的快那么一點點。不過如果文字版PDG被解密成了00H,用原版ssreader就不能閱讀了,因為它認為這世上本不該有未加密的文字版PDG。目前00H的文字版PDG只能用園地提供的高版本UnicornViewer,或老鷹、coolman提供的ssreader增強插件才能閱讀。
但是無論如何,現在用官方原版ssreader從sslib下載到的6xH,多半都是快速版(據說很久以前有過清晰版,現在也不排除漏網之魚的可能)——為了減輕服務器壓力,新版官方ssreader在下載sslib時,會自動選擇從存放快速版的服務器上下載,這就是為什么經常有人問“用ssreader在線瀏覽很清晰,下載后再看就不清晰”的原因。而用官方ssreader從主站下載,則可能得到6xH的清晰版,並且這種6xH不受有效期限制(機器碼限制還是有的)——聽起來不錯,可惜主站的書實在少了點。至於解決的辦法,前面已經說過了。
所以園地新手的迫切願望,最優先的當然是能夠看到不受限制的00H的清晰版,退而求其次就是大圖版,實在不行也要擺脫6xH的時間、機器碼限制,從此過上安寧、快樂的幸福生活。
而隨着手持閱讀設備的興盛,大家都開始感覺到以散頁方式存放的PDG文件在手持設備上閱讀時的不便,CX公司也順應潮流推出了打包電子書格式,即一本書打包成一個文件,方便在手持設備上存儲、閱讀。
到目前為止,CX公司正式公開推出了兩種打包格式,一種是私有的PDZ格式,一種是公開的PDF格式。PDZ格式的詳細說明請參見cheming等發表的相關文章,我從來沒有接觸過這種格式,所以不便評價,只知道用coolman發布的“深海寶貝”軟件可以實現PDZ、PDG格式之間的相互轉換。
CX推出的PDF在園地一般稱為CX PDF,以區別於一般常見的掃描版PDF——因為這種特殊的PDF實在是制作得太爛了,不僅文件臃腫不堪,而且文字可能缺筆少划,詳見我在園地相關帖子中所舉的例子。
其實早期的CX PDF都是從清晰版PDG直接轉出來的,而且轉換所用的軟件庫還是花美金買的國外軟件庫,只不過很不幸的是CX公司的程序員不知道應該如何正確使用這套軟件庫,所以轉換出來的PDF才會有種種問題。但其實CX PDF只是制作過程本身出了問題,圖像本身是沒錯的,所以PdfToy專門針對CX PDF進行了優化,可以把CX PDF中的圖像無損導出,因此早期用原始清晰版PDG制作的CX PDF仍然能轉回清晰版PDG,而后期用清晰版PDG縮水制作的CX PDF,轉完了也是縮水的PDG。
換句話說,早期CX PDF都是用真正的清晰版PDG轉換出來的,因此雖然直接閱讀的時候有點問題,但轉回PDG后沒有問題。后來可能是為了壓縮文件長度以緩解帶寬壓力和存儲壓力,CX開始用縮水的清晰版制作CX PDF:把清晰版PDG的長、寬壓縮到50%,然后再轉換成PDF。這種縮水版的CX PDF轉回來的PDG也是縮水的:實際DPI只有150,和以前的快速版相同,但因為沒有采用蛋疼的DjVu壓縮,所以清晰度比快速版要好,甚至比大圖版都好,而且沒有水印,所以一度被人用來當作清晰版PDG應助,在園地引發了熱熱鬧鬧的口水官司,我也在無意中被卷入,被迫緊急發布了DpiCalc(DPI計算器),可以按照書籍開本、圖像像素尺寸反算DPI,或按照書籍開本、DPI計算掃描像素尺寸,讓喜歡計較DPI的人可以算到爽。在Pdg2Pic、UnicornViewer等軟件中,在報告PDG的DPI值時,也開始按照CX算法、32開算法、16開算法分別報告。
總之,CX PDF不管是原始的還是縮水的,清晰度都比快速版、大圖版更好,又沒有文字版的OCR錯誤,所以在找不到清晰版PDF的情況下,也是一個不錯的選擇,而在補附屬頁的時候,基本上是目前最佳的選擇。
而在PDZ、CX PDF之前,CX公司還悄悄推出過一種打包格式,只不過一般人不知道。引用coolman的原話:超星還有一種內部是html壓縮包的pdg文件,類似chm這種文件,一般是一本書就一個文件,文件名沒有任何特別之處。大多數應該是超星會員制作后,超星加工的。此類格式的文件目前可以用魔術師(注:現在是“深海寶貝”)查看,並導出內部包含的圖像和htm文件。
我貌似在SSREADER里見過這種html文件打包的功能,不過太久沒有用SSREADER,不是很清楚了。