九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
HEIF格式解析 用HEIF會達(dá)到JPEG壓縮比的2倍。

1. 什么是HEIF

HEIF格式的全名為 High Efficiency Image File Format(高效率圖檔格式),是由動態(tài)圖像專家組(MPEG)在2013年推出的新格式(參見https://nokiatech.github.io/heif/)。
蘋果在iOS11系統(tǒng)中引入HEIF格式用于替代原來的JPG格式的圖片。使用HEVC的編碼技術(shù)存儲圖像數(shù)據(jù),進(jìn)一步減少存儲容量和提升圖像質(zhì)量。 據(jù)WWDC17數(shù)據(jù),使用HEIF會達(dá)到JPEG壓縮比的2倍。

圖0 - heif compression from WWDC17

2. 如何獲取HEIF格式的圖片

使用iOS11系統(tǒng)的iPhone手機(jī),在相機(jī)的設(shè)置中格式選擇高效,拍攝下來的照片會保存為HEIF格式。
由于目前其他系統(tǒng)(Windows/Android)還不支持該格式圖片的顯示,所以在將iPhone中的照片導(dǎo)入到Windows PC時,iOS系統(tǒng)會將其轉(zhuǎn)碼為JPG格式圖片。目前只有macOS High Sierra版本的mac系統(tǒng)支持HEIF格式圖片,在將iPhone中的圖片導(dǎo)入到該系統(tǒng)的mac上時可以保持原有的格式(一般后綴名為.heic,表示圖像的編碼格式為HEVC格式)。
iOS設(shè)備通過AirDrop發(fā)給其他iOS設(shè)備時,如果接收方為iOS 10及以下OS版本時,發(fā)送方也會將heif圖片轉(zhuǎn)碼成JPG格式發(fā)送。

3. HEIF格式說明

3.1 ISO Base Media File Format

HEIF格式是基于 ISO Base Media File Format格式衍生出來的圖像封裝格式,所以它的文件格式同樣符合ISO Base Media File Format (ISO/IEC 14496-12)中的定義( ISOBMFF)。
文件中所有的數(shù)據(jù)都存儲在稱為Box的數(shù)據(jù)塊結(jié)構(gòu)中,每個文件由若干個Box組成,每個Box有自己的類型和長度。在一個Box中還可以包含子Box,最終由一系列的Box組成完整的文件內(nèi)容,結(jié)構(gòu)如下圖所示,圖中每個方塊即代表一個Box。
我們常見的MP4文件同樣是ISOBMFF結(jié)構(gòu),所以HEIF文件結(jié)構(gòu)和MP4文件結(jié)構(gòu)基本一致,只是用到的Box類型有區(qū)別。
HEIF文件如果是單幅的靜態(tài)圖片的話,使用item的形式保存數(shù)據(jù),所有item單獨(dú)解碼;如果保存的為圖片序列的話,使用track的方式保存。此處我們只分析item形式的保存。

圖1 - ISOBMFF

3.2 Box結(jié)構(gòu)

ISO/IEC 14496-12中這樣描述Box的結(jié)構(gòu)

圖2 - Box

size字段表示該Box的大小,type字段表示該Box的類型,一般使用4個可打印的字符組合表示,也稱為FOURCC,如圖1中的ftyp、moov、meta、mdat等。這一部分可以理解為Box的header,size中指定的Box大小去掉header后,剩下的部分為body的內(nèi)容,不同類型的Box中body部分的定義也不同,分別用來表示不同的含義。

3.3 HEIF格式圖片的文件結(jié)構(gòu)

3.3.1 整體結(jié)構(gòu)

如下圖,是使用iOS11系統(tǒng)的iphone7手機(jī)拍攝的圖片的文件結(jié)構(gòu)


圖4 - HEIC文件結(jié)構(gòu)

它的最外一層由ftyp、meta和mdat三個Box組成,然后meta Box由包含有多個子Box,符合圖1的描述。

3.3.2 FileTypeBox

FileTypeBox在文件中有且僅有一個,它的類型字段值為ftyp,位于文件起始位置,其中的brand定義了文件中所存放的媒體類型,它的定義如下


圖5 - ftyp Box

如果文件為HEIF格式,它的major_brand字段會是以下表格中所示:


圖6 - brand

我們測試用的文件內(nèi)容如下
圖7 - ftyp

紅圈標(biāo)識的即為major_brand字段的內(nèi)容,此處為heic,表示該文件中存儲的為HEVC(Main or Main Still Picture profile)格式編碼的圖片。

3.3.3 media data box

media data box的類型為mdat,它用來存儲實(shí)際圖片數(shù)據(jù)。數(shù)據(jù)的具體位置由meta box中定義。

3.3.4 meta box

meta box為一個container box,它里面包含有多個子box,各個子box一起定義了圖像數(shù)據(jù)的位置格式等信息。

  • hdlr:HandlerBox,指明該meta信息描述的媒體類型,此處為pict

  • dinf:在此處無用

  • pitm:PrimaryItemBox,文件中會保存有多個item,使用該box指明要主item

  • iinf:ItemInfoBox,該box中指明文件中共有多少個item,并包含有子box表明每個item的信息

  • iref:ItemReferenceBox,該box包含有多個子box,每個子box指明一組相互有關(guān)聯(lián)的item

  • iprp:ItemPropertiesBox,它有ipco和ipma兩個子box
    ipco box列出了所有item的所有屬性
    ipma box中指明每個item都有哪些屬性
    如下圖所示,ipco box列出了color、hvcC、ispe、irot、pixi等信,ipma中指明了item和屬性之間的關(guān)聯(lián)
    id為1-48的item統(tǒng)一和3、1、2三個屬性關(guān)聯(lián),分別是ispe、clor和hvcC,其中hvcC類型的box中數(shù)據(jù)體部分為HevcDecoderConfigurationRecord結(jié)構(gòu)的數(shù)據(jù),從中可以獲取SPS、PPS、VPS等編碼參數(shù)相關(guān)數(shù)據(jù)
    id為49的item擁有4、5、6三個屬性
    id為50的item擁有7、8、9、5、10幾個屬性

    圖8 - iprp
  • idat:ItemDataBox,item的數(shù)據(jù)除了保存在mdat中,還可以保存在idat box中,具體會保存在什么位置,由iloc box中指明

  • iloc:ItemLocationBox,該box指明了每個item在文件中的保存位置
    如圖9所示,如果某個item的method字段為0,表示該item的數(shù)據(jù)保存在mdat box中,且此處指明保存位置的offset字段值為在整個文件中的偏移量,如果item的method字段為1,表明該item的數(shù)據(jù)保存在上面說的idat box中。

    圖9 - iloc

4. 圖像的解碼顯示

通過iloc box獲取到具體某個item的數(shù)據(jù)的保存位置,即可從文件中提取出該數(shù)據(jù),這些數(shù)據(jù)實(shí)際內(nèi)容即為HEVC格式編碼的數(shù)據(jù),再利用ipco box中的hvcC數(shù)據(jù),獲取相應(yīng)的SPS、PPS和VPS信息,即可使用HEVC解碼器將數(shù)據(jù)解碼為一幅圖像。
實(shí)際使用iphone7拍攝出來的照片,文件中共有51個item,對應(yīng)的id為1-51,其中1-48的item信息基本一致,類型為hvc1,提取出item數(shù)據(jù)后可以使用HEVC解碼器解碼出圖像,但是觀察發(fā)現(xiàn)圖像均為完整照片的一部分。
pitm box中指明主item為49,所以顯示的時候需要依據(jù)id為49的item的格式顯示,該item類型為grid,該類型表明整個圖像被分割成多個小圖像分別進(jìn)行編碼保存。解析該item數(shù)據(jù)可以得到完整圖像被分割為6x8的小圖像,且通過iref box中可知,49號item想關(guān)聯(lián)的item為1-48號item,所以要顯示完整圖像時需要將1-48號item分別解碼,將獲取的圖像按照6x8的分割合并起來,形成一幅完整的圖像即為最終圖像。
從iref 和ipco box中可知,50號item數(shù)據(jù)為圖像的縮略圖,它有區(qū)別與1-48的編碼參數(shù)和格式,與49號item相關(guān)聯(lián),說明為49號item(即完整圖像)的縮略圖。
51號item類型為Exif,保存了相機(jī)相關(guān)信息。

5. 查看工具

基于QT的開源查看工具:https://github.com/ksvc/MediaParser,歡迎star!

轉(zhuǎn)載請注明:
作者金山視頻云,首發(fā)簡書 Jianshu.com

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
HEIF不僅是節(jié)省設(shè)備存儲空間 將重塑攝影
新壓縮格式登陸蘋果iOS11,可省一半容量
攻略:電腦如何打開iPhone HEIC照片
蘋果仁慈:強(qiáng)行為16G版iPhone續(xù)命!
節(jié)省50%的手機(jī)空間!小米要徹底終結(jié)JPEG?
16G容量不夠?福音來了!蘋果iOS 11給出了四大解決辦法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服