⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bs_decoding.v

📁 a H.264/AVC Baseline Decoder
💻 V
📖 第 1 页 / 共 4 页
字号:
										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 + -