FPGA实现VESA DSC编码功能

FPGA实现VESA DSC编码功能。Display Stream Compression (DSC)。

架构:

DSC编码输入数据为Ycbcr。

FPGA verilog top端口定义如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_SIGNED.ALL;

USE IEEE.NUMERIC_STD.ALL;

--=================================================================================================

-- DSC_Encoder entity declaration

--=================================================================================================

ENTITY DSC_Encoder IS

GENERIC(

-- Data width

G_DATA_WIDTH : INTEGER RANGE 0 To 12 := 8

);

PORT (

-- Port List

-- System reset

RESETN_I : IN STD_LOGIC;

-- System clock

PIX_CLK_I : IN STD_LOGIC;

-- Specifies the input data is valid or not

DATA_VALID_I : IN STD_LOGIC;

-- Luma Data input

DATA_Y_I : IN STD_LOGIC_VECTOR(G_DATA_WIDTH-1 DOWNTO 0);

-- Cb Data input

DATA_CB_I : IN STD_LOGIC_VECTOR(G_DATA_WIDTH-1 DOWNTO 0);

-- Cr Data input

DATA_CR_I : IN STD_LOGIC_VECTOR(G_DATA_WIDTH-1 DOWNTO 0);

-- Frame end input

FRAME_END_I : IN STD_LOGIC;

-- Hres input

HRES_I : IN STD_LOGIC_VECTOR(G_DATA_WIDTH+7 DOWNTO 0);

-- Vres input

VRES_I : IN STD_LOGIC_VECTOR(G_DATA_WIDTH+7 DOWNTO 0);

-- Data valid out

DATA_VALID_O : OUT STD_LOGIC;

-- Data out

DATA_O : OUT STD_LOGIC_VECTOR(47 DOWNTO 0)

);

END DSC_Encoder;

module DSC_Encoder_vid

(

input I_pxl_clk ,//pixel clock

input I_rst_n ,//low active

//input [23:0] I_rgb ,

// Data valid out

output DATA_VALID_O ,

// Data out

output [47:0] DATA_O

);

wire w_de,w_hsync,w_vsync;

wire [23:0] gen_pixdata;

wire [7:0] y_out;

wire [7:0] cb_out;

wire [7:0] cr_out;

wire data_valid;

mipi_colorbar_gen u_colorbar

(

.pix_clk_i(I_pxl_clk),

.reset_n_i(I_rst_n),

.pix_index(8'd5),

.pix_h_active(1920),

.pix_hbp(30),

.pix_hfp(30),

.pix_h_sync(30),

.pix_v_active(1080),

.pix_vbp(10),

.pix_vfp(10),

.pix_v_sync(10),

.pix_frame_set(16'd0),

.de_i(w_de),

.hsync_i(w_hsync),

.vsync_i(w_vsync),

.RGB(gen_pixdata)

);

DSC_Encoder DSC_Encoder_gen(

.RESETN_I (I_rst_n),

.PIX_CLK_I (I_pxl_clk),

.DATA_VALID_I (w_de),

.DATA_Y_I (gen_pixdata[23:16]),

.DATA_CB_I (gen_pixdata[15:8]),

.DATA_CR_I (gen_pixdata[7:0]),

.FRAME_END_I (~w_vsync),

.HRES_I (),

.VRES_I (),

.DATA_VALID_O (DATA_VALID_O),

.DATA_O (DATA_O)

);

仿真如下:

欢迎讨论交流

微:moning_hello

相关推荐
电院工程师7 小时前
ChipWhisperer教程(三)
笔记·python·嵌入式硬件·安全·fpga开发·安全架构
sz66cm8 小时前
FPGA基础 -- 什么是 Verilog 的模块(`module`)
fpga开发
ThreeYear_s1 天前
基于fpga的疲劳驾驶检测
fpga开发
岁月磨吾少年志1 天前
【FPGA开发】DDS信号发生器设计
fpga开发
DQI-king1 天前
ZYNQ学习记录FPGA(三)状态机
学习·fpga开发
ThreeYear_s2 天前
基于FPGA的PID算法学习———实现PI比例控制算法
学习·算法·fpga开发
ThreeYear_s2 天前
基于FPGA的PID算法学习———实现PID比例控制算法
学习·算法·fpga开发
第二层皮-合肥2 天前
实战案例-FPGA如何实现JESD204B可重复的延迟
fpga开发
9527华安2 天前
国产安路FPGA实现图像视频采集转HDMI输出,提供5套TD工程源码和技术支持
fpga开发·音视频·安路·安路fpga·tangdynasty