📄 bs_decoding.v
字号:
0:(mvx_V1_diff_GE4 || mvy_V1_diff_GE4)? 3'd1:3'd0; bs_V3[8:6] <= (currMB_coeff[12] || currMB_coeff[13])? 3'd2:(MB_inter_size != `I8x8)? 0:(mvx_V2_diff_GE4 || mvy_V2_diff_GE4)? 3'd1:3'd0; bs_V3[11:9] <= (currMB_coeff[14] || currMB_coeff[15])? 3'd2:(MB_inter_size != `I8x8)? 0:(mvx_V3_diff_GE4 || mvy_V3_diff_GE4)? 3'd1:3'd0; bs_H3[2:0] <= (currMB_coeff[8] || currMB_coeff[10])? 3'd2:(MB_inter_size != `I8x8)? 0:(mvx_H0_diff_GE4 || mvy_H0_diff_GE4)? 3'd1:3'd0; bs_H3[5:3] <= (currMB_coeff[9] || currMB_coeff[11])? 3'd2:(MB_inter_size != `I8x8)? 0:(mvx_H1_diff_GE4 || mvy_H1_diff_GE4)? 3'd1:3'd0; bs_H3[8:6] <= (currMB_coeff[12] || currMB_coeff[14])? 3'd2:(MB_inter_size != `I8x8)? 0:(mvx_H2_diff_GE4 || mvy_H2_diff_GE4)? 3'd1:3'd0; bs_H3[11:9] <= (currMB_coeff[13] || currMB_coeff[15])? 3'd2:(MB_inter_size != `I8x8)? 0:(mvx_H3_diff_GE4 || mvy_H3_diff_GE4)? 3'd1:3'd0; end endcase reg [7:0] mvx_V0_diff_a,mvx_V0_diff_b; reg [7:0] mvx_V1_diff_a,mvx_V1_diff_b; reg [7:0] mvx_V2_diff_a,mvx_V2_diff_b; reg [7:0] mvx_V3_diff_a,mvx_V3_diff_b; reg [7:0] mvy_V0_diff_a,mvy_V0_diff_b; reg [7:0] mvy_V1_diff_a,mvy_V1_diff_b; reg [7:0] mvy_V2_diff_a,mvy_V2_diff_b; reg [7:0] mvy_V3_diff_a,mvy_V3_diff_b; reg [7:0] mvx_H0_diff_a,mvx_H0_diff_b; reg [7:0] mvx_H1_diff_a,mvx_H1_diff_b; reg [7:0] mvx_H2_diff_a,mvx_H2_diff_b; reg [7:0] mvx_H3_diff_a,mvx_H3_diff_b; reg [7:0] mvy_H0_diff_a,mvy_H0_diff_b; reg [7:0] mvy_H1_diff_a,mvy_H1_diff_b; reg [7:0] mvy_H2_diff_a,mvy_H2_diff_b; reg [7:0] mvy_H3_diff_a,mvy_H3_diff_b; mv_diff_GE4 mvx_V0_diff (.mv_a(mvx_V0_diff_a),.mv_b(mvx_V0_diff_b),.diff_GE4(mvx_V0_diff_GE4)); mv_diff_GE4 mvx_V1_diff (.mv_a(mvx_V1_diff_a),.mv_b(mvx_V1_diff_b),.diff_GE4(mvx_V1_diff_GE4)); mv_diff_GE4 mvx_V2_diff (.mv_a(mvx_V2_diff_a),.mv_b(mvx_V2_diff_b),.diff_GE4(mvx_V2_diff_GE4)); mv_diff_GE4 mvx_V3_diff (.mv_a(mvx_V3_diff_a),.mv_b(mvx_V3_diff_b),.diff_GE4(mvx_V3_diff_GE4)); mv_diff_GE4 mvy_V0_diff (.mv_a(mvy_V0_diff_a),.mv_b(mvy_V0_diff_b),.diff_GE4(mvy_V0_diff_GE4)); mv_diff_GE4 mvy_V1_diff (.mv_a(mvy_V1_diff_a),.mv_b(mvy_V1_diff_b),.diff_GE4(mvy_V1_diff_GE4)); mv_diff_GE4 mvy_V2_diff (.mv_a(mvy_V2_diff_a),.mv_b(mvy_V2_diff_b),.diff_GE4(mvy_V2_diff_GE4)); mv_diff_GE4 mvy_V3_diff (.mv_a(mvy_V3_diff_a),.mv_b(mvy_V3_diff_b),.diff_GE4(mvy_V3_diff_GE4)); mv_diff_GE4 mvx_H0_diff (.mv_a(mvx_H0_diff_a),.mv_b(mvx_H0_diff_b),.diff_GE4(mvx_H0_diff_GE4)); mv_diff_GE4 mvx_H1_diff (.mv_a(mvx_H1_diff_a),.mv_b(mvx_H1_diff_b),.diff_GE4(mvx_H1_diff_GE4)); mv_diff_GE4 mvx_H2_diff (.mv_a(mvx_H2_diff_a),.mv_b(mvx_H2_diff_b),.diff_GE4(mvx_H2_diff_GE4)); mv_diff_GE4 mvx_H3_diff (.mv_a(mvx_H3_diff_a),.mv_b(mvx_H3_diff_b),.diff_GE4(mvx_H3_diff_GE4)); mv_diff_GE4 mvy_H0_diff (.mv_a(mvy_H0_diff_a),.mv_b(mvy_H0_diff_b),.diff_GE4(mvy_H0_diff_GE4)); mv_diff_GE4 mvy_H1_diff (.mv_a(mvy_H1_diff_a),.mv_b(mvy_H1_diff_b),.diff_GE4(mvy_H1_diff_GE4)); mv_diff_GE4 mvy_H2_diff (.mv_a(mvy_H2_diff_a),.mv_b(mvy_H2_diff_b),.diff_GE4(mvy_H2_diff_GE4)); mv_diff_GE4 mvy_H3_diff (.mv_a(mvy_H3_diff_a),.mv_b(mvy_H3_diff_b),.diff_GE4(mvy_H3_diff_GE4)); always @ (end_of_MB_DEC or disable_DF or bs_dec_counter or mb_type_general_DF or mb_num_h or MB_inter_size or MBTypeGen_mbAddrA or mbAddrA_mvx or mvx_CurrMb0 or mvx_CurrMb1 or mvx_CurrMb2 or mvx_CurrMb3 or mbAddrA_mvy or mvy_CurrMb0 or mvy_CurrMb1 or mvy_CurrMb2 or mvy_CurrMb3) if ((end_of_MB_DEC && disable_DF == 1'b0) || bs_dec_counter != 0) begin //----------------------- //Current MB is P_skip //----------------------- if (mb_type_general_DF == `MB_P_skip && bs_dec_counter == 2'b00)//V0 begin if (mb_num_h != 0 && MBTypeGen_mbAddrA == `MB_addrA_addrB_P_skip) //mbAddrA is P_skip begin mvx_V0_diff_a <= mbAddrA_mvx[7:0]; mvx_V0_diff_b <= mvx_CurrMb0[7:0]; mvx_V1_diff_a <= 0; mvx_V1_diff_b <= 0; mvx_V2_diff_a <= 0; mvx_V2_diff_b <= 0; mvx_V3_diff_a <= 0; mvx_V3_diff_b <= 0; mvy_V0_diff_a <= mbAddrA_mvy[7:0]; mvy_V0_diff_b <= mvy_CurrMb0[7:0]; mvy_V1_diff_a <= 0; mvy_V1_diff_b <= 0; mvy_V2_diff_a <= 0; mvy_V2_diff_b <= 0; mvy_V3_diff_a <= 0; mvy_V3_diff_b <= 0; end else if (mb_num_h != 0 && MBTypeGen_mbAddrA == `MB_addrA_addrB_Inter) //mbAddrA is Inter begin mvx_V0_diff_a <= mbAddrA_mvx[7:0]; mvx_V0_diff_b <= mvx_CurrMb0[7:0]; mvx_V1_diff_a <= mbAddrA_mvx[15:8]; mvx_V1_diff_b <= mvx_CurrMb0[7:0]; mvx_V2_diff_a <= mbAddrA_mvx[23:16];mvx_V2_diff_b <= mvx_CurrMb0[7:0]; mvx_V3_diff_a <= mbAddrA_mvx[31:24];mvx_V3_diff_b <= mvx_CurrMb0[7:0]; mvy_V0_diff_a <= mbAddrA_mvy[7:0]; mvy_V0_diff_b <= mvy_CurrMb0[7:0]; mvy_V1_diff_a <= mbAddrA_mvy[15:8]; mvy_V1_diff_b <= mvy_CurrMb0[7:0]; mvy_V2_diff_a <= mbAddrA_mvy[23:16];mvy_V2_diff_b <= mvy_CurrMb0[7:0]; mvy_V3_diff_a <= mbAddrA_mvy[31:24];mvy_V3_diff_b <= mvy_CurrMb0[7:0]; end else begin mvx_V0_diff_a <= 0; mvx_V0_diff_b <= 0; mvx_V1_diff_a <= 0; mvx_V1_diff_b <= 0; mvx_V2_diff_a <= 0; mvx_V2_diff_b <= 0; mvx_V3_diff_a <= 0; mvx_V3_diff_b <= 0; mvy_V0_diff_a <= 0; mvy_V0_diff_b <= 0; mvy_V1_diff_a <= 0; mvy_V1_diff_b <= 0; mvy_V2_diff_a <= 0; mvy_V2_diff_b <= 0; mvy_V3_diff_a <= 0; mvy_V3_diff_b <= 0; end end //----------------------- //Current MB is Inter //----------------------- else if (mb_type_general_DF[3] == 1'b0) case (bs_dec_counter) 2'b00: //V0 if (mb_num_h != 0 && (MBTypeGen_mbAddrA[1] == 1'b0)) //mbAddrA is P_skip or Inter begin mvx_V0_diff_a <= mbAddrA_mvx[7:0]; mvx_V0_diff_b <= mvx_CurrMb0[7:0]; mvx_V1_diff_a <= mbAddrA_mvx[15:8]; mvx_V1_diff_b <= (MB_inter_size == `I16x16)? mvx_CurrMb0[7:0]:mvx_CurrMb0[23:16]; mvx_V2_diff_a <= mbAddrA_mvx[23:16]; mvx_V2_diff_b <= (MB_inter_size == `I16x16)? mvx_CurrMb0[7:0]:mvx_CurrMb2[7:0]; mvx_V3_diff_a <= mbAddrA_mvx[31:24]; mvx_V3_diff_b <= (MB_inter_size == `I16x16)? mvx_CurrMb0[7:0]:mvx_CurrMb2[23:16]; mvy_V0_diff_a <= mbAddrA_mvy[7:0]; mvy_V0_diff_b <= mvy_CurrMb0[7:0]; mvy_V1_diff_a <= mbAddrA_mvy[15:8]; mvy_V1_diff_b <= (MB_inter_size == `I16x16)? mvy_CurrMb0[7:0]:mvy_CurrMb0[23:16]; mvy_V2_diff_a <= mbAddrA_mvy[23:16]; mvy_V2_diff_b <= (MB_inter_size == `I16x16)? mvy_CurrMb0[7:0]:mvy_CurrMb2[7:0]; mvy_V3_diff_a <= mbAddrA_mvy[31:24]; mvy_V3_diff_b <= (MB_inter_size == `I16x16)? mvy_CurrMb0[7:0]:mvy_CurrMb2[23:16]; end else begin mvx_V0_diff_a <= 0; mvx_V0_diff_b <= 0; mvx_V1_diff_a <= 0; mvx_V1_diff_b <= 0; mvx_V2_diff_a <= 0; mvx_V2_diff_b <= 0; mvx_V3_diff_a <= 0; mvx_V3_diff_b <= 0; mvy_V0_diff_a <= 0; mvy_V0_diff_b <= 0; mvy_V1_diff_a <= 0; mvy_V1_diff_b <= 0; mvy_V2_diff_a <= 0; mvy_V2_diff_b <= 0; mvy_V3_diff_a <= 0; mvy_V3_diff_b <= 0; end 2'b11: //V1 begin mvx_V0_diff_a <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb0[7:0]; mvx_V0_diff_b <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb0[15:8]; mvx_V1_diff_a <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb0[23:16]; mvx_V1_diff_b <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb0[31:24]; mvx_V2_diff_a <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb2[7:0]; mvx_V2_diff_b <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb2[15:8]; mvx_V3_diff_a <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb2[23:16]; mvx_V3_diff_b <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb2[31:24]; mvy_V0_diff_a <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb0[7:0]; mvy_V0_diff_b <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb0[15:8]; mvy_V1_diff_a <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb0[23:16]; mvy_V1_diff_b <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb0[31:24]; mvy_V2_diff_a <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb2[7:0]; mvy_V2_diff_b <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb2[15:8]; mvy_V3_diff_a <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb2[23:16]; mvy_V3_diff_b <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb2[31:24]; end 2'b10: //V2 begin mvx_V0_diff_a <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvx_CurrMb0[15:8]; mvx_V0_diff_b <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvx_CurrMb1[7:0]; mvx_V1_diff_a <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvx_CurrMb0[31:24]; mvx_V1_diff_b <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvx_CurrMb1[23:16]; mvx_V2_diff_a <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvx_CurrMb2[15:8]; mvx_V2_diff_b <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvx_CurrMb3[7:0]; mvx_V3_diff_a <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvx_CurrMb2[31:24]; mvx_V3_diff_b <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvx_CurrMb3[23:16]; mvy_V0_diff_a <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvy_CurrMb0[15:8]; mvy_V0_diff_b <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvy_CurrMb1[7:0]; mvy_V1_diff_a <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvy_CurrMb0[31:24]; mvy_V1_diff_b <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvy_CurrMb1[23:16]; mvy_V2_diff_a <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvy_CurrMb2[15:8]; mvy_V2_diff_b <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvy_CurrMb3[7:0]; mvy_V3_diff_a <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvy_CurrMb2[31:24]; mvy_V3_diff_b <= (MB_inter_size == `I16x16 || MB_inter_size == `I16x8)? 0:mvy_CurrMb3[23:16]; end 2'b01: //V3 begin mvx_V0_diff_a <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb1[7:0]; mvx_V0_diff_b <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb1[15:8]; mvx_V1_diff_a <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb1[23:16]; mvx_V1_diff_b <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb1[31:24]; mvx_V2_diff_a <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb3[7:0]; mvx_V2_diff_b <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb3[15:8]; mvx_V3_diff_a <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb3[23:16]; mvx_V3_diff_b <= (MB_inter_size != `I8x8)? 0:mvx_CurrMb3[31:24]; mvy_V0_diff_a <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb1[7:0]; mvy_V0_diff_b <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb1[15:8]; mvy_V1_diff_a <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb1[23:16]; mvy_V1_diff_b <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb1[31:24]; mvy_V2_diff_a <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb3[7:0]; mvy_V2_diff_b <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb3[15:8]; mvy_V3_diff_a <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb3[23:16]; mvy_V3_diff_b <= (MB_inter_size != `I8x8)? 0:mvy_CurrMb3[31:24]; end endcase else begin mvx_V0_diff_a <= 0; mvx_V0_diff_b <= 0; mvx_V1_diff_a <= 0; mvx_V1_diff_b <= 0; mvx_V2_diff_a <= 0; mvx_V2_diff_b <= 0; mvx_V3_diff_a <= 0; mvx_V3_diff_b <= 0; mvy_V0_diff_a <= 0; mvy_V0_diff_b <= 0; mvy_V1_diff_a <= 0; mvy_V1_diff_b <= 0; mvy_V2_diff_a <= 0; mvy_V2_diff_b <= 0; mvy_V3_diff_a <= 0; mvy_V3_diff_b <= 0; end end else begin mvx_V0_diff_a <= 0; mvx_V0_diff_b <= 0; mvx_V1_diff_a <= 0; mvx_V1_diff_b <= 0; mvx_V2_diff_a <= 0; mvx_V2_diff_b <= 0; mvx_V3_diff_a <= 0; mvx_V3_diff_b <= 0; mvy_V0_diff_a <= 0; mvy_V0_diff_b <= 0; mvy_V1_diff_a <= 0; mvy_V1_diff_b <= 0; mvy_V2_diff_a <= 0; mvy_V2_diff_b <= 0; mvy_V3_diff_a <= 0; mvy_V3_diff_b <= 0; end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -