Coder Social home page Coder Social logo

bt656_to_axi4s's Introduction

BT656_2_AXI4S

TODO

  • Deinterlace by scanline interpolation in PL
  • Upscale for hdmi output (minimum 25MHz pixel clock)

Setup

In my testing i used an FCB-EX1010 analog camera block as video source and connected it to this analog video decoder board i designed . As the FPGA i used the Digilent Zybo Z7-20 development board, but any board with three pmod ports in a row should also work.

Working block diagram

Top level

top the clocking wizard is set to 11.36MHz instead of 13.5MHz (27MHZ/2) that is because we want only active pixels in the Internal logic analyzer (ILA). The video signal contains blanking periods which we do not want in our ILA
bt656 clock = 27MHz
blanking period = 272 clks
active pixels/line = 720Y + 720C = 1440 clks
27MHz * (1440/(1440+272))/2 = 11.36MHz

BT656 decoder

block-diagram

Detailed overview

  • BT656_0 parses the AV codes from the datastream comming from the BT656 video protocol. It outputs the h-blank, v-blank, active and field signals used by later blocks.

  • CbYCrY_UpSampler_0 converts the compressed 4:2:2 (YCb,YCr) encoding to a decompressed 4:4:4 (YCbCr,YCbCr) format.

  • YCbCr_2_RGB_0 converts the 4:4:4 YCbCr color space to 4:4:4 RGB

  • axis_converter_0 this block servers two purposes. It firstly generates the "end-of-line" and "start-of-frame" signals used by the AXI4-Stream protocol. The second purpose is to align all signals into an actual valid AXI4-Stream.

  • axis_data_fifo_0 is a Xilinx IP used to buffer the outgoing video stream.

result

After capturing the AXI4-Stream signals using an ILA in vivado, and decoding the signals using the included python script, this is the result. image result The image appears to have a low resolution in the y-axis because the camera block i used outputs interlaced video. There is also ghosting present, this may be caused by the non-ideal design of the interface board.

Disclaimer

This is in no way a rigorously tested design and sould NOT be used in an actual implementation. This is a personal project to learn more about VHDL and video processing. I got it to work on my specific setup and i cannot guarantee that it will work on other hardware.

bt656_to_axi4s's People

Contributors

dylanmsu avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.