原文出自 http://blog.csdn.net/xfding/article/details/5476763 (轉(zhuǎn)載收集)
(四)圖像參數(shù)集語(yǔ)義
?
pic_parameter_set_rbsp( ) {??
???
// pic_parameter_set_id 用以指定本參數(shù)集的序號(hào),該序號(hào)在各片的片頭被引用。
??
pic_parameter_set_id
??
???
// seq_parameter_set_id? 指明本圖像參數(shù)集所引用的序列參數(shù)集的序號(hào)。
???
seq_parameter_set_id
??
??
// entropy_coding_mode_flag? 指明熵編碼的選擇,本句法元素為0時(shí),表示熵編碼使用 CAVLC,本句法元素為1時(shí)表示熵編碼使用 CABAC?
???
entropy_coding_mode_flag
??
???
// pic_order_present_flag??????? POC 的三種計(jì)算方法在片層還各需要用一些句法元素作為參數(shù),本句法元素等于1時(shí)表示在片頭會(huì)有句法元素指明這些參數(shù);本句法元素等于0時(shí),表示片頭不會(huì)給出這些參數(shù),這些參數(shù)使用默認(rèn)值
???
pic_order_present_flag
??
???
// num_slice_groups_minus1? 本句法元素加1后指明圖像中片組的個(gè)數(shù)。H.264? 中沒(méi)有專(zhuān)門(mén)的句法元素用于指明是否使用片組模式,當(dāng)本句法元素等于0(即只有一個(gè)片組),表示不使用片組模式,后面也不會(huì)跟有用于計(jì)算片組映射的句法元素。?
???
num_slice_groups_minus1
??
??? if(
num_slice_groups_minus1
> 0 ) {???
???????
/* slice_group_map_type? 用以指明片組分割類(lèi)型。?
?????????? map_units 的定義:
????????? -? 當(dāng) frame_mbs_only_flag 等于1時(shí),map_units 指的就是宏塊
????????? -? 當(dāng) frame_mbs_only_flag 等于0時(shí)?
????????????? -? 幀場(chǎng)自適應(yīng)模式時(shí),map_units 指的是宏塊對(duì)
????????????? -? 場(chǎng)模式時(shí),map_units 指的是宏塊
????????????? -? 幀模式時(shí),map_units 指的是與宏塊對(duì)相類(lèi)似的,上下兩個(gè)連續(xù)宏塊的組合體。????? */
???????
slice_group_map_type
???????
??????? if( slice_group_map_type??? = =??? 0 )????????
??????????? for( iGroup = 0; iGroup <= num_slice_groups_minus1; iGroup++ )????????
???????????????
// run_length_minus1[i]???? 用以指明當(dāng)片組類(lèi)型等于0時(shí),每個(gè)片組連續(xù)的 map_units 個(gè)數(shù)
???????????????
run_length_minus1
[ iGroup ]???
??????? else if(
slice_group_map_type
??? = =??? 2 )????????
??????????? for( iGroup = 0; iGroup < num_slice_groups_minus1; iGroup++ ) {????????
???????????????
// top_left[i],bottom_right[i]?? 用以指明當(dāng)片組類(lèi)型等于2時(shí),矩形區(qū)域的左上及右下位置。
???????????????
top_left
[ iGroup ]??
???????????????
bottom_right
[ iGroup ]??
??????????? }????????
??????? else if(???
slice_group_map_type
??? = =??? 3??? | |????
???????????????????
slice_group_map_type
??? = =??? 4??? | |????
???????????????????
slice_group_map_type
??? = =??? 5 ) {
???????????
// slice_group_change_direction_flag 與下一個(gè)句法元素一起指明確切的片組分割方法。
?
??????????
slice_group_change_direction_flag
???
??????????
// slice_group_change_rate_minus1?????? 用以指明變量 SliceGroupChangeRAte
???????????
slice_group_change_rate_minus1???
??????? } else if(
slice_group_map_type
??? = =??? 6 ) {???
??????????
// pic_size_in_map_units_minus1?? 在片組類(lèi)型等于6時(shí),用以指明圖像以 map_units 為單位的大小。?????
???????????
pic_size_in_map_units_minus1
???
??????????? for( i = 0; i <= pic_size_in_map_units_minus1; i++ )????????
???????????????
// slice_group_id[i]?????????? 在片組類(lèi)型等于6時(shí),用以指明某個(gè) map_units 屬于哪個(gè)片組。
???????????????
slice_group_id
[ i ]???
??????? }????????
??? }????????
??
// num_ref_idx_l0_active_minus1? 加1后指明目前參考幀隊(duì)列的長(zhǎng)度,即有多少個(gè)參考幀(包括短期和長(zhǎng)期)。值得注意的是,當(dāng)目前解碼圖像是場(chǎng)模式下,參考幀隊(duì)列的長(zhǎng)度應(yīng)該是本句法元素再乘以2,因?yàn)閳?chǎng)模式下各幀必須被分解以場(chǎng)對(duì)形式存在。(這里所說(shuō)的場(chǎng)模式包括圖像的場(chǎng)及幀場(chǎng)自適應(yīng)下的處于場(chǎng)模式的宏塊對(duì))? 本句法元素的值有可能在片頭被重載。?
????? 在序列參數(shù)集中有句法元素 num_ref_frames 也是跟參考幀隊(duì)列有關(guān),它們的區(qū)別是num_ref_frames指明參考幀隊(duì)列的最大值,解碼 器用它的值來(lái)分配內(nèi)存空 間;num_ref_idx_l0_active_minus1 指明在這個(gè)隊(duì)列中當(dāng)前實(shí)際的、已存在的參考幀數(shù)目,這從它的名字“active”中也可以看出來(lái)。圖像時(shí),并不是直接傳送該圖像的編號(hào),而是傳送該圖像在參考幀隊(duì)列中的序號(hào)。這個(gè)序號(hào)并不是在碼流中傳送的,這個(gè)句法元素是 H.264 中最重要的句法元素之一,編碼器要通知解碼器某個(gè)運(yùn)動(dòng)矢量所指向的是哪個(gè)參考而是編碼器和解碼器同步地、用相同的方法將參考圖像放入隊(duì)列,從而獲得一個(gè)序號(hào)。這個(gè)隊(duì)列在每解一個(gè)圖像,甚至是每個(gè)片后都會(huì)動(dòng)態(tài)地更新。維護(hù)參考幀隊(duì)列是編解碼器十分重要的工作,而本句法元素是維護(hù)參考幀隊(duì)列的重要依據(jù)。參考幀隊(duì)列的復(fù)雜的維護(hù)機(jī)制是 H.264 重要也是很有特色的組成部分?
???
num_ref_idx_l0_active_minus1??
??? num_ref_idx_l1_active_minus1
?
???
// weighted_pred_flag? 用以指明是否允許P和SP片的加權(quán)預(yù)測(cè),如果允許,在片頭會(huì)出現(xiàn)用以計(jì)算加權(quán)預(yù)測(cè)的句法元素。
??
weighted_pred_flag
???
???
// weighted_bipred_flag?? 用以指明是否允許 B 片的加權(quán)預(yù)測(cè),本句法元素等于 0 時(shí)表示使用默認(rèn)加權(quán)預(yù)測(cè)模式,等于 1 時(shí)表示使用顯式加權(quán)預(yù)測(cè)模式,等于 2 時(shí)表示使用隱式加權(quán)預(yù)測(cè)模式。?
???
weighted_bipred_idc
???
???
// pic_init_qp_minus26? 加 26 后用以指明亮度分量的量化參數(shù)的初始值。在 H.264 中,量化參數(shù)分三個(gè)級(jí)別給出:圖像參數(shù)集、片頭、宏塊。在圖像參數(shù)集給出的是一個(gè)初始值。
???
pic_init_qp_minus26
???
/* relative to 26 */
???
???
pic_init_qs_minus26
???
/* relative to 26 */
??
???
// chroma_qp_index_offset?? 色度分量的量化參數(shù)是根據(jù)亮度分量的量化參數(shù)計(jì)算出來(lái)的,本句法元素用以指明計(jì)算時(shí)用到的參數(shù)。
???
chroma_qp_index_offset
???
??
// deblocking_filter_control_present_flag? 編碼器可以通過(guò)句法元素顯式地控制去塊濾波的強(qiáng)度,本句法元素指明是在片頭是否會(huì)有句法元素傳遞這個(gè)控制信息。如果本句法元素等于 0,那些用于傳遞濾波強(qiáng)度的句法元素不會(huì)出現(xiàn),解碼器將獨(dú)立地計(jì)算出濾波強(qiáng)度。
???
deblocking_filter_control_present_flag
??
???
// constrained_intra_pred_flag? 在 P 和 B 片中,幀內(nèi)編碼的宏塊的鄰近宏塊可能是采用的幀間編碼。當(dāng)本句法元素等于 1 時(shí),表示幀內(nèi)編碼的宏塊不能用幀間編碼的宏塊的像素作為自己的預(yù)測(cè),即幀內(nèi)編碼的宏塊只能用鄰近幀內(nèi)編碼的宏塊的像素作為自己的預(yù)測(cè);而本句法元素等于 0 時(shí),表示不存在這種限制。
???
constrained_intra_pred_flag
??
???
// redundant_pic_cnt_present_flag 指明是否會(huì)出現(xiàn) redundant_pic_cnt? 句法元素。
???
redundant_pic_cnt_present_flag??
??? rbsp_trailing_bits
( )???????
}
?
(五)片頭句法
slice_header
( ) {?
???
// first_mb_in_slice? 片中的第一個(gè)宏塊的地址,? 片通過(guò)這個(gè)句法元素來(lái)標(biāo)定它自己的地址。 要注意的是在幀場(chǎng)自適應(yīng)模式下,宏塊都是成對(duì)出現(xiàn),這時(shí)本句法元素表示的是第幾個(gè)宏塊對(duì),對(duì)應(yīng)的第一個(gè)宏塊的真實(shí)地址應(yīng)該是2 * first_mb_in_slice?
???
first_mb_in_slice
???
??? /* slice_type??? 指明片的類(lèi)型
?????? slice_type????????? Name of slice_type
?????? 0??????????????????????? P (P slice)
?????? 1??????????????????????? B (B slice)
?????? 2??????????????????????? I (I slice)
?????? 3??????????????????????? SP (SP slice)
?????? 4??????????????????????? SI (SI slice)
?????? 5??????????????????????? P (P slice)
?????? 6??????????????????????? B (B slice)
?????? 7??????????????????????? I (I slice)
?????? 8??????????????????????? SP (SP slice)
?????? 9??????????????????????? SI (SI slice) */
???
slice_type
???
???
// pic_parameter_set_id? 圖像參數(shù)集的索引號(hào).? 范圍 0? 到 255。?
???
pic_parameter_set_id
???
???
// frame_num? 每個(gè)參考幀都有一個(gè)依次連續(xù)的 frame_num 作為它們的標(biāo)識(shí),這指明了各圖像的解碼順序。但事實(shí)上我們可以看到,frame_num 的出現(xiàn)沒(méi)有 if 語(yǔ)句限定條件,這表明非參考幀的片頭也會(huì)出現(xiàn) frame_num。只是當(dāng)該個(gè)圖像是參考幀時(shí),它所攜帶的這個(gè)句法元素在解碼時(shí)才有意義。
??? H.264 對(duì) frame_num的值作了如下規(guī)定:當(dāng)參數(shù)集中的句法元素gaps_in_frame_num_value_allowed_flag 不為1 時(shí),每個(gè)圖像的 frame_num? 值是它前一個(gè)參考幀的frame_num 值增加 1。這句話(huà)包含有兩層意思:
??? 1)? 當(dāng) gaps_in_frame_num_value_allowed_flag? 不為 1,即 frame_num? 連續(xù)的情況下,每個(gè)圖像的frame_num 由前一個(gè)參考幀圖像對(duì)應(yīng)的值加 1,著重點(diǎn)是“前一個(gè)參考幀”。
?????????? 前面我們?cè)?jīng)提到,對(duì)于非參考幀來(lái)說(shuō),它的 frame_num? 值在解碼過(guò)程中是沒(méi)有意義的,因?yàn)閒rame_num? 值是參考幀特有的,它的主要作用是在該圖像被其他圖像引用作運(yùn)動(dòng)補(bǔ)償?shù)膮⒖紩r(shí)提供一個(gè)標(biāo)識(shí)。但 H.264 并沒(méi)有在非參考幀圖像中取消這一句法元素,原因是在 POC 的第二種和第三種解碼方法中可以通過(guò)非參考幀的 frame_num 值計(jì)算出他們的 POC 值。
??? 2)? 當(dāng) gaps_in_frame_num_value_allowed_flag 等于 1,前文已經(jīng)提到,這時(shí)若網(wǎng)絡(luò)阻塞,編碼器可以將編碼后的若干圖像丟棄,而不用另行通知解碼器。在這種情況下,解碼器必須有機(jī)制將缺失的frame_num 及所對(duì)應(yīng)的圖像填補(bǔ),否則后續(xù)圖像若將運(yùn)動(dòng)矢量指向缺失的圖像將會(huì)產(chǎn)生解碼錯(cuò)誤。?
???
frame_num
???
??? if( !
frame_mbs_only_flag
) {?
??????? // field_pic_flag???? 這是在片層標(biāo)識(shí)圖像編碼模式的唯一一個(gè)句法元素。所謂的編碼模式是指的幀編碼、場(chǎng)編碼、幀場(chǎng)自適應(yīng)編碼。當(dāng)這個(gè)句法元素取值為 1 時(shí)? 屬于場(chǎng)編碼; 0 時(shí)為非場(chǎng)編碼。
????????
??????
field_pic_flag
???
??????? if(
field_pic_flag
)??????????
???????????
// bottom_field_flag?? 等于 1 時(shí)表示當(dāng)前圖像是屬于底場(chǎng);等于 0 時(shí)表示當(dāng)前圖像是屬于頂場(chǎng)。
???????????
bottom_field_flag
???
??? }?????????
??? if(
nal_unit_type
??? ==??? 5 )?????????
???????
// idr_pic_id????? IDR? 圖像的標(biāo)識(shí)。不同的 IDR 圖像有不同的 idr_pic_id 值。值得注意的是,IDR 圖像有不等價(jià)于 I 圖像,只有在作為 IDR 圖像的 I 幀才有這個(gè)句法元素,在場(chǎng)模式下,IDR 幀的兩個(gè)場(chǎng)有相同的 idr_pic_id 值。idr_pic_id 的取值范圍是? [0,65535],和 frame_num 類(lèi)似,當(dāng)它的值超出這個(gè)范圍時(shí),它會(huì)以循環(huán)的方式重新開(kāi)始計(jì)數(shù)。??
???????
idr_pic_id
??
??? if(
pic_order_cnt_type
??? ==??? 0 ) {????
???????
// pic_order_cnt_lsb??? 在 POC 的第一種算法中本句法元素來(lái)計(jì)算 POC 值,在 POC 的第一種算法中是顯式地傳遞 POC 的值,而其他兩種算法是通過(guò) frame_num 來(lái)映射 POC 的值。
???????
pic_order_cnt_lsb
????????
??????? if(
pic_order_present_flag
&&??? !
field_pic_flag
)?????????
???????????
// delta_pic_order_cnt_bottom??? 如果是在場(chǎng)模式下,場(chǎng)對(duì)中的兩個(gè)場(chǎng)都各自被構(gòu)造為一個(gè)圖像,它們有各自的 POC 算法來(lái)分別計(jì)算兩個(gè)場(chǎng)的 POC 值,也就是一個(gè)場(chǎng)對(duì)擁有一對(duì) POC 值;而在是幀模式或是幀場(chǎng)自適應(yīng)模式下,一個(gè)圖像只能根據(jù)片頭的句法元素計(jì)算出一個(gè) POC 值。根據(jù) H.264 的規(guī)定,在序列中有可能出現(xiàn)場(chǎng)的情況,即 frame_mbs_only_flag 不為 1 時(shí),每個(gè)幀或幀場(chǎng)自適應(yīng)的圖像在解碼完后必須分解為兩個(gè)場(chǎng),以供后續(xù)圖像中的場(chǎng)作為參考圖像。所以當(dāng) frame_mb_only_flag? 不為 1時(shí),幀或幀場(chǎng)自適應(yīng)中包含的兩個(gè)場(chǎng)也必須有各自的 POC 值。通過(guò)本句法元素,可以在已經(jīng)解開(kāi)的幀或幀場(chǎng)自適應(yīng)圖像的 POC 基礎(chǔ)上新映射一個(gè) POC 值,并把它賦給底場(chǎng)。當(dāng)然,象句法表指出的那樣,這個(gè)句法元素只用在 POC 的第一個(gè)算法中。
???????????
delta_pic_order_cnt_bottom???
??? }?????????
??? if(
pic_order_cnt_type
= = 1 && !
delta_pic_order_always_zero_flag
) {??????
??????
// delta_pic_order_cnt[0], delta_pic_order_cnt[1]:POC 的第二和第三種算法是從 frame_num 映射得來(lái),這兩個(gè)句法元素用于映射算法。delta_pic_order_cnt[0]用于幀編碼方式下的底場(chǎng)和場(chǎng)編碼方式的場(chǎng),delta_pic_order_cnt[1] 用于幀編碼方式下的頂場(chǎng)。????
???????
delta_pic_order_cnt
[ 0 ]?
??????? if(
pic_order_present_flag
??? &&??? !
field_pic_flag
)?????????
???????????
delta_pic_order_cnt
[ 1 ]??
??? }?????????
??? if(
redundant_pic_cnt_present_flag
)????????
???????
// redundant_pic_cnt??? 冗余片的 id 號(hào)。?
???????
redundant_pic_cnt
??
??? if(
slice_type
??? ==??? B )?????????
???????
// direct_spatial_mv_pred_flag? 指出在B圖像的直接預(yù)測(cè)的模式下,用時(shí)間預(yù)測(cè)還是用空間預(yù)測(cè)。1:空間預(yù)測(cè);0:時(shí)間預(yù)測(cè)。?
???????
direct_spatial_mv_pred_flag
??
??? if(
slice_type
= = P | |
slice_type
= = SP | |
slice_type
= = B ) {?????????
???????
// num_ref_idx_active_override_flag??? 在圖像參數(shù)集中我們看到已經(jīng)出現(xiàn)句法元素num_ref_idx_l0_active_minus1 和num_ref_idx_l1_active_minus1 指定當(dāng)前參考幀隊(duì)列中實(shí)際可用的參考幀的數(shù)目。在片頭可以重載這對(duì)句法元素,以給某特定圖像更大的靈活度。這個(gè)句法元素就是指明片頭是否會(huì)重載,如果該句法元素等于 1,下面會(huì)出現(xiàn)新的 num_ref_idx_l0_active_minus1? 和num_ref_idx_l1_active_minus1 值。?
???????
num_ref_idx_active_override_flag?
??????? if(
num_ref_idx_active_override_flag
) {?????????
???????????
num_ref_idx_l0_active_minus1?
??????????? if( slice_type??? ==??? B )?????????
???????????????
num_ref_idx_l1_active_minus1
??
??????? }?????????
??? }?????
???
// 參考幀隊(duì)列重排序(reordering)句法
???
ref_pic_list_reordering
( )??????????
??? if( (
weighted_pred_flag
??? &&??? (
slice_type
== P??? | |???
slice_type
== SP ) )?? | |
??????? (
weighted_bipred_idc
??? ==??? 1??? &&???
slice_type
??? ==??? B ) )
???????
// 加權(quán)預(yù)測(cè)句法
?
???????
pred_weight_table
( )??????
??? if(
nal_ref_idc
!= 0 )?????????
???????
// 參考幀隊(duì)列標(biāo)記(marking)句法?
??????
dec_ref_pic_marking
( )????????
??? if( entropy_coding_mode_flag??? &&??? slice_type??? !=??? I??? &&?? slice_type??? !=??? SI )
???????
// cabac_init_idc? 給出 cabac 初始化時(shí)表格的選擇,范圍 0 到 2。
???????
cabac_init_idc
??
???
// slice_qp_delta? 指出在用于當(dāng)前片的所有宏塊的量化參數(shù)的初始值。SliceQPY = 26+ pic_init_qp_minus26 + slice_qp_delta?? 范圍是? 0 to 51。 H.264? 中量化參數(shù)是分圖像參數(shù)集、片頭、宏塊頭三層給出的,前兩層各自給出一個(gè)偏移值,這個(gè)句法元素就是片層的偏移。
???
slice_qp_delta
???
??? if(
slice_type
??? = =??? SP??? | |???
slice_type
??? = =??? SI ) {?????????
??????? if(
slice_type
??? = =??? SP )?????????
???????????
// sp_for_switch_flag? 指出SP 幀中的p 宏塊的解碼方式是否是switching 模式?
???????????
sp_for_switch_flag
?
???????????
// slice_qs_delta? 與 slice_qp_delta 的與語(yǔ)義相似,用在 SI 和 SP 中的?
???????????
slice_qs_delta
??
??? }?????????
??? if(
deblocking_filter_control_present_flag
) {?????
???????
// disable_deblocking_filter_idc? H.264 指定了一套算法可以在解碼器端獨(dú)立地計(jì)算圖像中各邊界的濾波強(qiáng)度進(jìn)行濾波。除了解碼器獨(dú)立計(jì)算之外,編碼器也可以傳遞句法元素來(lái)干涉濾波強(qiáng)度,當(dāng)這個(gè)句法元素指定了在塊的邊界是否要用濾波,同時(shí)指明那個(gè)塊的邊界不用塊濾波?????
???????
disable_deblocking_filter_idc
??
??????? if(
disable_deblocking_filter_idc
??? !=??? 1 ) {???
???????????
// slice_alpha/beta_c0_offset_div2? 給出用于增強(qiáng)? α/beta 和? t C0 的偏移值
????????
???????????
slice_alpha_c0_offset_div2??
??????????? slice_beta_offset_div2
???
??????? }?????????
??? }?????????
??? if(
num_slice_groups_minus1
> 0??? &&
???????
slice_group_map_type
>= 3??? &&???
slice_group_map_type
<= 5)
?????
? // slice_group_change_cycle? 當(dāng)片組的類(lèi)型是 3, 4,??? 5,由句法元素可獲得片組中? 映射單元的數(shù)目:
???????
slice_group_change_cycle
?
}
?
(六)參考幀隊(duì)列重排序(reordering)句法
ref_pic_list_reordering( ) {
??
??? if(
slice_type
??? !=??? I??? &&???
slice_type
??? !=??? SI ) {?????????????
???????
// ref_pic_list_reordering_flag_l0?? 指明是否進(jìn)行重排序操作,這個(gè)句法元素等于1 時(shí)表明緊跟著會(huì)有一系列句法元素用于參考幀隊(duì)列的重排序。
??????
ref_pic_list_reordering_flag_l0
??
??????? if(
ref_pic_list_reordering_flag_l0
)??????????
??????????? do {??????????
???????????????
// reordering_of_pic_nums_idc????? 指明執(zhí)行哪種重排序操作
?????????????????? reordering_of_pic_nums_idc?????? 操作
?????????????????? 0????????????????????????????????????????????????? 短期參考幀重排序,abs_diff_pic_num_minus1會(huì)出現(xiàn)在碼流中,從當(dāng)
?????????????????????????????????????????????????????????????????????? 前圖像的PicNum減去? (abs_diff_pic_num_minus1? +? 1)? 后指明需要重
?????????????????????????????????????????????????????????????????????? 排序的圖像。
?????????????????? 1????????????????????????????????????????????????? 短期參考幀重排序,abs_diff_pic_num_minus1會(huì)出現(xiàn)在碼流中,從當(dāng)
?????????????????????????????????????????????????????????????????????? 前圖像的PicNum加上? (abs_diff_pic_num_minus1? +? 1)? 后指明需要重
?????????????????????????????????????????????????????????????????????? 排序的圖像。
?????????????????? 2????????????????????????????????????????????????? 長(zhǎng)期參考幀重排序,long_term_pic_num會(huì)出現(xiàn)在碼流中,指明需要重
?????????????????????????????????????????????????????????????????????? 排序的圖像。
?????????????????? 3????????????????????????????????????????????????? 結(jié)束循環(huán),退出重排序操作。?
???????????????
reordering_of_pic_nums_idc
?
??????????????? if(
reordering_of_pic_nums_idc
??? ==??? 0??? | |
???????????????????
reordering_of_pic_nums_idc
??? ==??? 1 )?
???????????????????
// abs_diff_pic_num_minus1?? 在對(duì)短期參考幀重排序時(shí)指明重排序圖像與當(dāng)前的差
???????????????????
abs_diff_pic_num_minus1
??
??????????????? else if(
reordering_of_pic_nums_idc
??? = =??? 2 )????????
???????????????????
// long_term_pic_num???? 在對(duì)長(zhǎng)期參考幀重排序時(shí)指明重排序圖像
??
??????????????????
long_term_pic_num
?
??????????? } while(
reordering_of_pic_nums_idc
??? !=??? 3 )??????????
??? }??????????
??? if(
slice_type
??? ==??? B ) {??????????
??????
ref_pic_list_reordering_flag_l1
??
??????? if(
ref_pic_list_reordering_flag_l1
)??????????
??????????? do {??????????
???????????????
reordering_of_pic_nums_idc??
??????????????? if(
reordering_of_pic_nums_idc
??? = =??? 0??? | |
???????????????????
reordering_of_pic_nums_idc
??? = =??? 1 )
??????????????????
abs_diff_pic_num_minus1??
??????????????? else if(
reordering_of_pic_nums_idc
??? = =??? 2 )??????????
???????????????????
long_term_pic_num
???
??????????? } while(
reordering_of_pic_nums_idc
??? !=??? 3 )??????????
??? }??????????
}
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
