視頻編碼(H264概述)

  • 視頻壓縮編碼的目標(biāo)

    1)保證壓縮比例
    2)保證恢復(fù)的質(zhì)量
    3)易實(shí)現(xiàn),低成本,可靠性

  • 壓縮的出發(fā)點(diǎn)(可行性)

    1)時(shí)間相關(guān)性
    在一組視頻序列中,相鄰相鄰兩幀只有極少的不同之處麻敌,這便是時(shí)間相關(guān)性。
    2)空間相關(guān)性
    在同一幀中掂摔,相鄰象素之間有很大的相關(guān)性术羔,兩象素越近职辅,側(cè)相關(guān)性越強(qiáng)。

  • 根據(jù)采用的信源的模型分類(lèi):

    1)基于波形的編碼
    如果采用“一幅圖像由許多象素構(gòu)成”的信源模型聂示,這種信源模型的參數(shù)就是象素的亮度和色度的幅度值域携,對(duì)這些參數(shù)進(jìn)行編碼的技術(shù)即為基于波形編碼。
    2)基于內(nèi)容的編碼
    如果采用一個(gè)分量有幾個(gè)物體構(gòu)成的信源模型鱼喉,這種信源模型的參數(shù)事各個(gè)物體的形狀秀鞭,紋理,運(yùn)動(dòng)扛禽,對(duì)這些參數(shù)進(jìn)行編碼的技術(shù)就是基于內(nèi)容的編碼锋边。

  • h264應(yīng)用可分為3個(gè)級(jí)別:

    1)基本檔次:(簡(jiǎn)單版本, 應(yīng)用面廣 , 支持幀內(nèi)和幀間編碼,基于可變程度的熵編碼.)
    應(yīng)用領(lǐng)域:視頻會(huì)話(huà),會(huì)議電視, 無(wú)線通信等實(shí)時(shí)通信.
    2)主要檔次:(采用了多項(xiàng)提高圖像質(zhì)量和增加壓縮比的技術(shù)措施, 支持隔行視頻, 支持基于上下文的自適應(yīng)的算術(shù)編碼.)
    應(yīng)用領(lǐng)域: 數(shù)字廣播與數(shù)字視頻存儲(chǔ)
    3)擴(kuò)展檔次: 應(yīng)用領(lǐng)域: 可用于各種網(wǎng)絡(luò)的視頻流傳輸,視頻點(diǎn)播

  • 視頻編碼的原理

    2.1 一個(gè)圖像或者一個(gè)視頻序列進(jìn)行壓縮编曼,產(chǎn)生碼流豆巨。
    對(duì)圖像的處理即是:幀內(nèi)預(yù)測(cè)編碼
    其預(yù)測(cè)值P,是由已編碼的圖像做參考掐场,經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)玫降耐印nA(yù)測(cè)圖像P和當(dāng)前幀F(xiàn)n相減,得到兩圖像的殘差值Dn熊户,Dn在經(jīng)過(guò)轉(zhuǎn)換T萍膛,量化Q,去處空間冗余嚷堡,得到系數(shù)X蝗罗,將X重排(使數(shù)據(jù)更加緊湊),熵編碼(加入運(yùn)動(dòng)矢量蝌戒。串塑。。一些圖像相關(guān)得信息)北苟,得到nal數(shù)據(jù)桩匪。
    對(duì)視頻序列的處理:幀間預(yù)測(cè)編碼
    預(yù)測(cè)值P,是由當(dāng)前片中粹淋,己編碼的宏塊預(yù)測(cè)得到的(亮度4×4或者16×16預(yù)測(cè)吸祟,色度8×8預(yù)測(cè))瑟慈。當(dāng)前待處理的塊桃移,減去預(yù)測(cè)值P,得殘差值Dn葛碧,Dn在經(jīng)過(guò)轉(zhuǎn)換T借杰,量化Q,得到系數(shù)X进泼,將X重排(使數(shù)據(jù)更加緊湊)蔗衡,熵編碼纤虽,得到nal數(shù)據(jù)
    2.2 場(chǎng) 、幀绞惦、圖像
    場(chǎng):隔行掃描的圖像逼纸,偶數(shù)行成為頂場(chǎng)行。奇數(shù)行成為底場(chǎng)行济蝉。
    所有頂場(chǎng)行稱(chēng)為頂場(chǎng)杰刽。所有底場(chǎng)行稱(chēng)為底場(chǎng).
    幀:逐行掃描的圖像
    圖像:場(chǎng)和幀都可認(rèn)為是圖像.
    2.3宏塊、片
    宏塊(MB):一個(gè)宏塊由一個(gè)16×16亮度塊王滤、一個(gè)8×8Cb和一個(gè)8×8Cr組成
    片(slice):一個(gè)圖像可以劃分成一個(gè)或多個(gè)片贺嫂,一個(gè)片由一個(gè)或多個(gè)宏塊組成。

  • H264結(jié)構(gòu)和應(yīng)用

    H.264從框架結(jié)構(gòu)上將NAL與VCL分離雁乡,主要有兩個(gè)目的:
    其一第喳,可以定義VCL視頻壓縮處理與NAL網(wǎng)絡(luò)傳輸機(jī)制的接口,這樣允許視頻編碼層VCL的設(shè)計(jì)可以在不同的處理器平臺(tái)進(jìn)行移植踱稍,而與NAL層的數(shù)據(jù)封裝格式無(wú)關(guān)曲饱;
    其二,VCL和NAL都被設(shè)計(jì)成工作于不同的傳輸環(huán)境珠月,異構(gòu)的網(wǎng)絡(luò)環(huán)境并不需要對(duì)VCL比特流進(jìn)行重構(gòu)和重編碼渔工。

  • H264的編碼格式

    h264的功能分為兩層,視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NAL)
    VCL功能是進(jìn)行視頻編解碼桥温,包括運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)引矩,變換編碼和熵編碼等功能;
    NAL用于采用適當(dāng)?shù)母袷綄?duì)VCL視頻數(shù)據(jù)進(jìn)行封裝打包
    1)VCL數(shù)據(jù)即被壓縮編碼后的視頻數(shù)據(jù)序列侵浸。
    在VCL數(shù)據(jù)要封裝到NAL單元中之后旺韭,才可以用來(lái)傳輸或存儲(chǔ)。
    2)NAL單元格式
    NAL單元由1字節(jié)的頭掏觉,3個(gè)定長(zhǎng)的字段和一個(gè)字節(jié)數(shù)不定的編碼段組成区端。
    頭標(biāo)的語(yǔ)法:NALU類(lèi)型(5bit)、重要性指示位(2bit)澳腹、禁止位(1bit)织盼。
    NALU類(lèi)型:1~12由H.264使用,24~31由H.264以外的應(yīng)用使用酱塔。
    重要性指示:標(biāo)志該NAL單元用于重建時(shí)的重要性沥邻,值越大,越重要羊娃。
    禁止位:網(wǎng)絡(luò)發(fā)現(xiàn)NAL單元有比特錯(cuò)誤時(shí)可設(shè)置該比特為1唐全,以便接收方丟掉該單元
    Nal頭
    Rbsp
    Nal頭
    Rbsp
    Nal頭
    Rbsp
    (1)NAL Units:視頻數(shù)據(jù)封裝在整數(shù)字節(jié)的NALU中,它的第一個(gè)字節(jié)標(biāo)志該單元中數(shù)據(jù)的類(lèi)型蕊玷。H.264定義了兩種封裝格式邮利∶直ⅲ基于包交換的網(wǎng)絡(luò)(如H.323系統(tǒng))可以使用RTP封裝格式封裝NALU。而另外一些系統(tǒng)可能要求將NALU作為順序比特流傳送延届,為此H.264定義了一種比特流格式的傳輸機(jī)制剪勿,使用start_code_prefix將NALU封裝起來(lái)方庭,從而確定NAL邊界。
    (2)參數(shù)集:以往視頻編解碼標(biāo)準(zhǔn)中GOB\GOP\圖像等頭信息是至關(guān)重要的二鳄,包含這些信息的包的丟失常導(dǎo)致與這些信息相關(guān)的圖像不能解碼。為此H.264將這些很少變化并且對(duì)大量VCL NALU起作用的信息放在參數(shù)集中傳送订讼。參數(shù)集分為兩種,即序列參數(shù)集和圖像參數(shù)集欺殿。為適應(yīng)多種網(wǎng)絡(luò)環(huán)境,參數(shù)集可以帶內(nèi)傳送程拭,也可以采用帶外方式傳送。
    序列的參數(shù)集(SPS):包括了一個(gè)圖像序列的所有信息恃鞋,
    圖像的參數(shù)集(PPS):包括了一個(gè)圖像所有片的信息。

  • H264的網(wǎng)絡(luò)傳輸

    H.264能夠在基于RTP/UDP/IP亦歉、H.323/M恤浪、MPEG-2傳輸和H.320協(xié)議的網(wǎng)絡(luò)中使用
    H.264的RTP封裝參考RFC 3550,載荷類(lèi)型(PT)域未作規(guī)定

  • 數(shù)據(jù)的劃分

    通常情況下肴楷,一個(gè)宏塊的數(shù)據(jù)是存放在一起而組成片的水由,數(shù)據(jù)劃分使得一個(gè)片中的宏塊數(shù)據(jù)重新組合,把宏塊語(yǔ)義相關(guān)的數(shù)據(jù)組成一個(gè)劃分赛蔫,由劃分來(lái)組裝片砂客。在H.264中有三種不同的數(shù)據(jù)劃分。
    (1)頭信息劃分:包含片中宏塊的類(lèi)型呵恢,量化參數(shù)和運(yùn)動(dòng)矢量鞠值,是片中最重要的信息。
    (2)幀內(nèi)信息劃分:包含幀內(nèi)CBPs和幀內(nèi)系數(shù)瑰剃,幀內(nèi)信息可以阻止錯(cuò)誤的蔓延齿诉。
    (3)幀間信息劃分:包含幀間CBPs和幀間系數(shù)筝野,通常比前兩個(gè)劃分要大得多晌姚。
    幀內(nèi)信息劃分結(jié)合頭信息解出幀內(nèi)宏塊粤剧,幀間信息劃分結(jié)合頭信息解出幀間宏塊。幀間信息劃分的重要性最低挥唠,對(duì)重同步?jīng)]有貢獻(xiàn)抵恋。當(dāng)使用數(shù)據(jù)劃分時(shí),片中的數(shù)據(jù)根據(jù)其類(lèi)型被保存到不同的緩存宝磨,同時(shí)片的大小也要調(diào)整弧关,使得片中最大的劃分小于MTU尺寸。
    解碼端若獲得所有的劃分唤锉,就可以完整重構(gòu)片世囊;解碼端若發(fā)現(xiàn)幀內(nèi)信息或幀間信息劃分丟失,可用的頭信息仍然有很好的錯(cuò)誤恢復(fù)性能窿祥。這是因?yàn)楹陦K類(lèi)型和宏塊的運(yùn)動(dòng)矢量含有宏塊的基本特征株憾。

  • 靈活的宏塊次序(FMO)

    通過(guò)設(shè)置宏塊次序映射表(MBAmap)來(lái)任意地指配宏塊到不同的片組,F(xiàn)MO模式打亂了原宏塊順序晒衩,降低了編碼效率嗤瞎,增加了時(shí)延,但增強(qiáng)了抗誤碼性能听系。FMO模式劃分圖像的模式各種各樣贝奇,重要的有棋盤(pán)模式、矩形模式等掉瞳。當(dāng)然FMO模式也可以使一幀中的宏塊順序分割浪漠,使得分割后的片的大小小于無(wú)線網(wǎng)絡(luò)的MTU尺寸郑藏。經(jīng)過(guò)FMO模式分割后的圖像數(shù)據(jù)分開(kāi)進(jìn)行傳輸必盖,以棋盤(pán)模式為例,當(dāng)一個(gè)片組的數(shù)據(jù)丟失時(shí)可用另一個(gè)片組的數(shù)據(jù)(包含丟失宏塊的相鄰宏塊信息)進(jìn)行錯(cuò)誤掩蓋塌忽。實(shí)驗(yàn)數(shù)據(jù)顯示土居,當(dāng)丟失率為(視頻會(huì)議應(yīng)用時(shí))10%時(shí)擦耀,經(jīng)錯(cuò)誤掩蓋后的圖像仍然有很高的質(zhì)量眷蜓。

  • H264的網(wǎng)絡(luò)傳輸

    NAL支持眾多基于包的有線/無(wú)線通信網(wǎng)絡(luò),諸如H.320德召、MPEG-2和RTP/IP等上岗。但目前液茎,絕大部分的視頻應(yīng)用所采用的網(wǎng)絡(luò)協(xié)議層次是RTP/UDP/IP捆等,因此在下面的描述中主要基于這個(gè)傳輸框架续室。下面首先分析NAL層的基本處理單元NALU以及它的網(wǎng)絡(luò)封裝挺狰、分割和合并的方法。
    4.1. NAL單元
    每個(gè)NAL單元是一個(gè)一定語(yǔ)法元素的可變長(zhǎng)字節(jié)字符串薯定,包括包含一個(gè)字節(jié)的頭信息(用來(lái)表示數(shù)據(jù)類(lèi)型)话侄,以及若干整數(shù)字節(jié)的負(fù)荷數(shù)據(jù)年堆。一個(gè)NAL單元可以攜帶一個(gè)編碼片变丧、A/B/C型數(shù)據(jù)分割或一個(gè)序列或圖像參數(shù)集绢掰。
    NAL單元按RTP序列號(hào)按序傳送。其中攻晒,T為負(fù)荷數(shù)據(jù)類(lèi)型炎辨,占5bit碴萧;R為重要性指示位末购,占2個(gè)bit盟榴;最后的F為禁止位,占1bit羽德。具體如下:
    (1)NALU類(lèi)型位
    可以表示NALU的32種不同類(lèi)型特征宅静,類(lèi)型1~12是H.264定義的姨夹,類(lèi)型24~31是用于H.264以外的磷账,RTP負(fù)荷規(guī)范使用這其中的一些值來(lái)定義包聚合和分裂贾虽,其他值為H.264保留蓬豁。
    (2)重要性指示位
    用于在重構(gòu)過(guò)程中標(biāo)記一個(gè)NAL單元的重要性,值越大剃诅,越重要驶忌。值為0表示這個(gè)NAL單元沒(méi)有用于預(yù)測(cè),因此可被解碼器拋棄而不會(huì)有錯(cuò)誤擴(kuò)散飞蹂;值高于0表示此NAL單元要用于無(wú)漂移重構(gòu)翻屈,且值越高伸眶,對(duì)此NAL單元丟失的影響越大。
    (3)禁止位
    編碼中默認(rèn)值為0界酒,當(dāng)網(wǎng)絡(luò)識(shí)別此單元中存在比特錯(cuò)誤時(shí)毁欣,可將其設(shè)為1凭疮,以便接收方丟掉該單元执解,主要用于適應(yīng)不同種類(lèi)的網(wǎng)絡(luò)環(huán)境(比如有線無(wú)線相結(jié)合的環(huán)境)剖煌。例如對(duì)于從無(wú)線到有線的網(wǎng)關(guān)耕姊,一邊是無(wú)線的非IP環(huán)境,一邊是有線網(wǎng)絡(luò)的無(wú)比特錯(cuò)誤的環(huán)境尤泽。假設(shè)一個(gè)NAL單元到達(dá)無(wú)線那邊時(shí)坯约,校驗(yàn)和檢測(cè)失敗闹丐,網(wǎng)關(guān)可以選擇從NAL流中去掉這個(gè)NAL單元卿拴,也可以把已知被破壞的NAL單元前傳給接收端。在這種情況下文狱,智能的解碼器將嘗試重構(gòu)這個(gè)NAL單元(已知它可能包含比特錯(cuò)誤)缘挽。而非智能的解碼器將簡(jiǎn)單地拋棄這個(gè)NAL單元壕曼。NAL單元結(jié)構(gòu)規(guī)定了用于面向分組或用于流的傳輸子系統(tǒng)的通用格式。在H.320和MPEG-2系統(tǒng)中楣富,NAL單元的流應(yīng)該在NAL單元邊界內(nèi)伴榔,每個(gè)NAL單元前加一個(gè)3字節(jié)的起始前綴碼踪少。在分組傳輸系統(tǒng)中援奢,NAL單元由系統(tǒng)的傳輸規(guī)程確定幀界忍捡,因此不需要上述的起始前綴碼。一組NAL單元被稱(chēng)為一個(gè)接入單元具篇,定界后加上定時(shí)信息(SEI)驱显,形成基本編碼圖像瞳抓。該基本編碼圖像(PCP)由一組已編碼的NAL單元組成孩哑,其后是冗余編碼圖像(RCP)横蜒,它是PCP同一視頻圖像的冗余表示秤掌,用于解碼中PCP丟失情況下恢復(fù)信息闻鉴。如果該編碼視頻圖像是編碼視頻序列的最后一幅圖像孟岛,應(yīng)出現(xiàn)序列NAL單元的end渠羞,表示該序列結(jié)束智哀。一個(gè)圖像序列只有一個(gè)序列參數(shù)組瓷叫,并被獨(dú)立解碼。如果該編碼圖像是整個(gè)NAL單元流的最后一幅圖像盒卸,則應(yīng)出現(xiàn)流的end蔽介。
    H.264采用上述嚴(yán)格的接入單元虹蓄,不僅使H.264可自適應(yīng)于多種網(wǎng)絡(luò)薇组,而且進(jìn)一步提高其抗誤碼能力杈帐。序列號(hào)的設(shè)置可發(fā)現(xiàn)丟的是哪一個(gè)VCL單元,冗余編碼圖像使得即使基本編碼圖像丟失累铅,仍可得到較“粗糙”的圖像娃兽。

  • H.264中的RTP

    上面闡述了NAL單元的結(jié)構(gòu)和實(shí)現(xiàn)投储,這里要詳細(xì)討論RTP的載荷規(guī)范和抗誤碼性能。RTP可通過(guò)發(fā)送冗余信息來(lái)減少接收端的丟包率娇掏,會(huì)增加時(shí)延勋眯,與冗余片不同的是它增加的冗余信息是個(gè)別重點(diǎn)信息的備份,適合于非平等保護(hù)機(jī)制塞蹭。相應(yīng)的多媒體傳輸規(guī)范有:
    (1)分組復(fù)制多次重發(fā)讶坯,發(fā)送端對(duì)最重要的比特信息分組進(jìn)行復(fù)制重發(fā)漱办,使得保證接收端能至少正確接收到一次洼冻,同時(shí)接收端要丟棄已經(jīng)正確接收的分組的多余備份隅很。
    (2)基于分組的前向糾錯(cuò)叔营,對(duì)被保護(hù)的分組進(jìn)行異或運(yùn)算绒尊,將運(yùn)算結(jié)果作為冗余信息發(fā)送到接收方仔粥。由于時(shí)延躯泰,不用于對(duì)話(huà)型應(yīng)用麦向,可用于流媒體。
    (3)音頻冗余編碼话告,可保護(hù)包括視頻在內(nèi)的任何數(shù)據(jù)流沙郭。每個(gè)分組由頭標(biāo)病线、載荷以及前一分組的載荷組成,H.264中可與數(shù)據(jù)分割一起使用夜矗。

  • RTP的封裝規(guī)范總結(jié)如下:

    (1)額外開(kāi)銷(xiāo)要少紊撕,使MTU尺寸在100~64千字節(jié)范圍都可以对扶;
    (2)易于區(qū)分分組的重要性浪南,而不必對(duì)分組內(nèi)的數(shù)據(jù)解碼漱受;
    (3)載荷規(guī)范應(yīng)當(dāng)保證不用解碼就可識(shí)別由于其他比特丟失而造成的分組不可解碼昂羡;
    (4)支持將NALU分割成多個(gè)RTP分組;
    (5)支持將多個(gè)NALU匯集在一個(gè)RTP分組中怨愤。
    H.264采用了簡(jiǎn)單打包的方案撰洗,即一個(gè)RTP分組里放入一個(gè)NALU差导,將NALU(包括同時(shí)作為載荷頭標(biāo)的NALU頭)放入RTP的載荷中柿汛,設(shè)置RTP頭標(biāo)值裁替。理想情況下弱判,VCL不會(huì)產(chǎn)生超過(guò)MTU尺寸的NAL單元昌腰,來(lái)避免IP層的分拆遭商。在接收端,通過(guò)RTP序列信息識(shí)別復(fù)制包并丟棄祠汇,取出有效RTP包里的NAL單元熄诡。基本檔次和擴(kuò)展檔次允許片的無(wú)序解碼凰浮,這樣在抖動(dòng)緩存中就不必對(duì)包重新排序我抠。在使用主檔次時(shí)(不允許片的亂序),要通過(guò)RTP序列信息來(lái)對(duì)包重新排序导坟,解碼順序號(hào)(DON)的概念現(xiàn)正在IETF的討論中屿良。
    存在如下情況,例如當(dāng)使用內(nèi)容預(yù)編碼時(shí)惫周,編碼器不了解底層網(wǎng)絡(luò)的MTU大小,將產(chǎn)生許多大于MTU尺寸的NALU康栈。這就需要涉及NALU的分割和合并递递。
    (1)NALU的分割
    雖然IP層的分割可以使數(shù)據(jù)塊小于64千字節(jié),但無(wú)法在應(yīng)用層實(shí)現(xiàn)保護(hù)啥么,從而降低了非平等保護(hù)方案的效果登舞。由于UDP數(shù)據(jù)包小于64千字節(jié),而且一個(gè)片的長(zhǎng)度對(duì)某些應(yīng)用場(chǎng)合來(lái)說(shuō)太小言缤,所以應(yīng)用層打包是RTP打包方案的一部分弄捕。目前的拆分方案正在IETF的討論之中斋荞,大致具有以下特點(diǎn):①NALU的分塊以按RTP次序號(hào)升序傳輸;②能夠標(biāo)記第一個(gè)和最后一個(gè)NALU分塊;③可以檢測(cè)丟失的分塊挖垛。
    (2)NALU的合并
    一些NALU如SEI哪替、參數(shù)集等非常小爱沟,將它們合并在一起有利于減少頭標(biāo)開(kāi)銷(xiāo)。現(xiàn)有的兩種集合分組:①單一時(shí)間集合分組(STAP),按時(shí)間戳進(jìn)行組合踢星,一般用于低時(shí)延環(huán)境五督;②多時(shí)間集合分組(MTAP),不同時(shí)間戳也可以組合,一般用于高時(shí)延環(huán)境,比如流應(yīng)用

  • 補(bǔ)充:

    H264的編碼方式有兩種:幀編碼(Frame)和場(chǎng)編碼(Interlace)
    其中,幀編碼一般一個(gè)NAL單元就一個(gè)圖像Slice,場(chǎng)編碼則由頂場(chǎng)和底場(chǎng)構(gòu)成,每個(gè)NAL單元可能包含多個(gè)圖像SLICE片,也有可能就一個(gè)晒杈,但只有同一個(gè)Frame_Num的頂場(chǎng)和底場(chǎng),才能構(gòu)成一幅完整圖像
    判斷IDR、I亭姥、P、B的類(lèi)型扶认,就是通過(guò)SLICE_HEADER的信息來(lái)看螃概,看它的SLICE_TYPE是哪種训貌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谬莹,一起剝皮案震驚了整個(gè)濱河市整胃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祠丝,老刑警劉巖年缎,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绢淀,死亡現(xiàn)場(chǎng)離奇詭異怪嫌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)寺谤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)院塞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人秒梳,你說(shuō)我怎么就攤上這事≌硖耄” “怎么了咆蒿?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)买喧,這世上最難降的妖魔是什么今缚? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己峡懈,他們只是感情好璃饱,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著肪康,像睡著了一般荚恶。 火紅的嫁衣襯著肌膚如雪撩穿。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天谒撼,我揣著相機(jī)與錄音食寡,去河邊找鬼。 笑死廓潜,一個(gè)胖子當(dāng)著我的面吹牛抵皱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辩蛋,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼呻畸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了悼院?” 一聲冷哼從身側(cè)響起伤为,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎据途,沒(méi)想到半個(gè)月后绞愚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颖医,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年位衩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熔萧。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡糖驴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哪痰,到底是詐尸還是另有隱情遂赠,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布晌杰,位于F島的核電站跷睦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏肋演。R本人自食惡果不足惜抑诸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望爹殊。 院中可真熱鬧蜕乡,春花似錦、人聲如沸梗夸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至辛块,卻和暖如春畔派,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背润绵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工线椰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尘盼。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓憨愉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親卿捎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子配紫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容