Как преобразовать поток данных 4: 2: 2 YCbCr в 4: 4: 4 YCbCr в Verilog? Я новичок в verilog, и я не знаю, с чего начать. Я попытался создать 2D-массив, но я понятия не имею, как его реализовать в этом вопросе.4: 2: 2 to 4: 4: 4 Конвертер YCbCr в verilog
module test3(clk,datastream_in,datastream_out);
input clk;
input [11:0] datastream_in [0:7]; //input datastream
output [17:0] datastream_out[0:7]; //output datastream
reg [17:0] datastream_out[0:7];
reg temp2[0:7]; //temporary variables to store the value from the input
reg temp3[0:7];
reg temp4[0:7];
integer i;
integer y;
[email protected](posedge clk)
begin
assign i=0;
assign y=0;
while(1)
begin
datastream_out[y]=datastream_in[i+0];
temp2=datastream_in[i+1];
datastream_out[y+1]=temp2;
temp3=datastream_in[i+2]; //input pattern: 4:2:2
temp4=datastream_in[i+3]; //output pattern 013213 :4:4:4
datastream_out[y+2]=temp4;
datastream_out[y+3]=temp3;
datastream_out[y+4]=temp2;
datastream_out[y+5]=temp4;
i=i+5;
y=y+6;
end
end
endmodule
ОШИБКА: 251 НЕ МОЖЕТ ДОСТУПИТЬ ПАМЯТЬ temp4 ПРЯМО. ОШИБКА: 252 НЕ МОЖЕТ ASSIGN распакованные ТИПА К насадочному типу
Вам необходимо отделить алгоритм от реализации, по крайней мере, в качестве первого прохода. Если бы вы могли показать, как обычно вы конвертируете 4: 2: 2 YCbCr в 4: 4: 4, тогда мы можем посмотреть Verilog. – Morgan
На самом деле алгоритм состоит в том, чтобы повторно хранить входной сигнал от потока данных i.e 4 байта и соответственно назначать вывод для 6 байтов, где образец повторяется. – Sara