当前位置: 首页 > ai >正文

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

http://www.xdnf.cn/news/13512.html

相关文章:

  • 【游戏项目】大型项目Git分支策略与开发流程设计构想
  • 无人机智能运行系统技术解析
  • 为进行性核上性麻痹患者定制:饮食健康指南
  • 全球首个体重管理AI大模型“减单”发布,学AI大模型来近屿智能
  • CMake指令: add_sub_directory以及工作流程
  • 速盾:高防CDN可以加速数据库吗?
  • ​​5G通信设备线路板打样:猎板PCB如何攻克高速数据传输技术瓶颈​​
  • bat 批处理查看文件年龄
  • C51 KEIL使用使用问题处理
  • Java异步编程深度解析:从基础到复杂场景的难题拆解
  • K8S中应用无法获取用户真实ip问题排查
  • 数据链抗干扰
  • DNS小结
  • 避免在 iOS 和 Android 的 WebView 中长按出现复制框等默认行为
  • 手机解压 7z 文件全攻略
  • 【全志V821_FoxPi】2-2 切换为spi nand方案启动
  • HTML5 浮动
  • 统计可分解整数的数量
  • leetcode1584. 连接所有点的最小费用-medium
  • 2025低空经济区的安全与应急控制专题研讨会(SECOLZ 2025)
  • DDoS攻防实战:从应急脚本到AI云防护系统
  • 2025年智慧城市与管理工程国际会议(ICSCME 2025)
  • 第二章——线性表之循环链表、静态链表
  • 机械ERP需要解决的几个问题?关于非标机械行业物料编码,如何提升建立效率的说明!
  • 【深度学习】深度学习中的张量:从多维数组到智能计算单元
  • GO语言使用gorm的dbresolver插件实现数据库读写分离
  • iOS开发申请组播/广播权限​
  • 【C/C++】long long 类型传参推荐方式
  • asio之静态互斥量
  • 【PmHub面试篇】集成 Sentinel+OpenFeign实现网关流量控制与服务降级相关面试题解答