DExx-vd isl
Contents
- 1 Introduction
- 2 AV inputs
- 3 Basic setup & usage
- 4 Settings
- 5 Firmware update
- 6 Firmware changelog and roadmap
- 7 Info for developers
Introduction
DExx-vd_isl is video digitizer expansion card for selected Altera/Intel FPGA development boards, primarily DE10-Nano. Most common use scenario is connecting retro video game consoles and home computers to modern displays. The combination of FPGA development board and expansion card has been used in development of OSSC Pro and can be considered OSSC Pro Lite version since aside from more limited connectivity and performance, it shares most major features.
If you're new to the OSSC and scalers/processors in general, you may wish to jump to the quick start guide [link_todo here.]
Features
- Digitizes analog video sources in RGBS, RGBCS (TTL csync), RGBHV and YPbPr formats connected to SCART connector
- Up to ~110MHz sampling clock supporting up to 720p@60/1080i@60 inputs.
- Output up to ~165MHz (1920x1080p@60, 1920x1200p@60 etc.)
- Analog and digital audio inputs via SCART and toslink (DE10-Nano needs a modification for SPDIF support)
- OSD and optional character display as UI. IR control using OSSC remote control.
- Line multiplication and scaler operating modes
- Free running and frame locked operation
- Motion adaptive deinterlacing
- Low latency (<=40 scanlines in LM mode, ~1 frame in framelocked scaler mode)
- Various sampling presets for classic consoles and home computers
- Postprocessing options including scanlines and BFI
Board versions and availability
DIY
PCB and parts for the board can be purchased from known manufacturers (e.g. JLCPCB, OSHPark) and suppliers (e.g. Mouser, Digikey) but at the time of writing it may not be feasible/economical due to component shortages.
Pre-assembled board
Pre-assembled boards are sold worldwide by:
More information & discussion
- Original forum thread
- Dedicated discussion forums
AV inputs
AV1 (SCART)
The SCART connector of DExx-vd_isl supports a number of video/sync formats. SCART-RGB sources can be connected as-is while other formats require passthru cables/adapters. Input is selected via remote key / OSD input menu and the on-board sync switch. The table below summarizes available inputs, their corresponding remote hotkeys and required position of the sync switch.
Input name | Remote hotkey | Sync switch position | Notes |
---|---|---|---|
Test pattern | 0 | Any | Change test resolution with LEFT/RIGHT remote keys or via menu. |
AV1_RGBS | 1 | CSYNC | For video level c-sync only. Sync can be also extracted from composite video / luma. |
AV1_RGsB | 4 | SOG | |
AV1_YPbPr | 4 (tap twice) | SOG | Use YPbPr to SCART passthru adapter if you can build/find one. |
AV1_RGBHV | 7 | Any | Needs a custom adapter cable which routes HSYNC to SCART pin 12 and VSYNC to pin 10. |
AV1_RGBCS | 7 (tap twice) | Any | For TTL c-sync only. Needs a custom adapter cable which routes CSYNC to SCART pin 12. |
Toslink
The toslink input supports LPCM 44.1/48/96kHz and compressed bitstream (Dolby Digital, DTS) formats. The audio stream is forwarded as-is to HDMI transmitter.
Basic setup & usage
Board installation
DE10-Nano
Insert the board into the header which is closer to the FPGA so that both HDMI and SCART ports are facing the same direction. Then plug the 4-pin jumper cable between the boards as shown in the picture. If you use standard SCART-RGB sources, flip the red sync switch towards "CSYNC" as pictured.
Prepara a dedicated microSD card (>=64MB) by downloading latest firmware image and writing it on the card in raw e.g. via Win32 Disk Imager. Subsequent firmware updates can be made by easier fashion, see #Firmware update.
Additional notes are found on the board-specific README.
Other development boards
- C5G
- DE2-115
Remote control
DExx-vd_isl operates with L336 infrared remote pre-programmed for OSSC. Key functionality is listed below.
- 0-9: Selects AV source and input format. See remote picture on the side for reference.
- MENU: Activates/deactivates OSD menu
- OK: Selects sub-menu or function
- BACK: Returns to previous menu level or from info page to normal source display page
- UP/DOWN: Selects next/previous menu option or next/previous input when not in menu.
- LEFT/RIGHT: Option value -/+
- INFO: Displays detailed timings of video input and output. Also displays firmware version.
- SCANLINE_MODE: Hotkey for selecting next "Scanlines" option value
- SCANLINE_TYPE: Hotkey for selecting next "Scanline type" option value
- SCANLINE_INT+/-: Hotkeys for adjusting scanline strength
- LINEMULT_PROC:
- SAMP_PHASE+/-:
- ZOOM:
- PAN:
- OSD:
- PROFILE_LOAD:
Getting started
Once DExx-vd_isl has been attached to the development board and source and monitor are connected, power on the development board. A 480p test pattern should show up in the monitor. Turn on the video source and select correct input via remote and sync switch (refer to #AV1 (SCART) table).
The firmware has 2 primary operating modes: line multiplier and scaler. Line multiplier is reminiscent of classic line doublers and OSSC while scaler works more like video processors like VP50 or Framemeister. In general scaler mode offers more flexibility and easier usage via fixed output resolution and (optionally) fixed refresh rate. Some users may prefer to stay with strict multiplication to preserve the original look as much as possible, though. The mode can be switched from "Output opt -> Operating mode" on the menu. Main menu has matching sub-menus for each of the 2 operating modes which are accessible even if the said operating mode is not active. Most important picture processing settings are found under these sub-menus, refer to next section for mode details.
Settings
Input select
Selects the source.
AV1 video in opt.
Video LPF
Video low-pass filter. Filters out high-frequency noise on video.
- Auto: Suitable LPF is automatically selected based on source mode [default]
- 9-450MHz: Video bandwidth is limited to selected frequency
YPbPr input Color Space
Controls YPbPr->RGB colorspace conversion coefficients.
- Rec. 601: Input is assumed to be in Rec. 601 format, which is generally true for SD video [default]
- Rec. 709: Input is assumed to be in Rec. 709 format, which is generally true for HD video
R/Pr / G/Y / B/Pb offset
Fine-adjustment of Red/Pr / G/Y / B/Pb channel offset (brightness).
- 0-1023: [default=512]
R/Pr / G/Y / B/Pb gain
Fine-adjustment of Red/Pr / G/Y / B/Pb channel gain (contrast).
- 0-1023: [default=324]
Clamp strength
Sets the strength of backporch clamp.
- 0-7: [default=7]
Clamp/ALC position
Sets the position of backporch clamp (in percentage of line length).
- 0.1-25%: [default=0.7%]
Clamp width
Sets the width of backporch clamp pulse (in percentage of line length).
- 0.1-10%: [default=2.5%]
Clamp/ALC on coast
Sets whether clamp/ALC is enabled during coast.
- On: Clamp/ALC enabled during coast. [default]
- Off: Clamp/ALC disabled during coast.
Auto level ctl (ALC)
Sets whether ALC is enabled.
- On: ALC enabled. [default]
- Off: ALC disabled.
ALC V filter
ALV vertical filter coefficient. Reduce from default if line/field tilt occurs.
- 32-4096 lines: [default=512 lines]
ALC H filter
ALV horizontal filter coefficient (duration for which ALC is applied after clamp).
- 16-128 pixels: [default=16 pixels]
AV1 sync opt.
Analog sync Vth
Sets the sync slicer threshold for video-level sync. May need adjustment if source sync level is not typical and dropouts occur.
- 0-300mV: threshold voltage. [default=120mV]
TTL Hsync Vth
Sets the sync slicer threshold for TTL level sync. May need adjustment if source sync level is not typical and dropouts occur.
- 400-3205mV: threshold voltage. [default=1148mV]
Sync glitch filt len
Sets the sync glitch filter length. May need to be increased if there are glitches around sync pulses.
- 37-592ns: filter length. [default=111ns]
H-PLL Pre-Coast
Defines when PLL coast (current freq. freeze) is activated.
- 0-5 lines: Number of scanlines before vsync at when coast is activated. [default=4]
H-PLL Post-Coast
Defines when PLL coast (current freq. freeze) is deactivated.
- 0-5 lines: Number of scanlines after vsync at when coast is deactivated. [default=4]
H-PLL Loop Gain
Adjusts loop gain of H-PLL which affects sampling clock stability. A higher value makes the PLL react fast to changes in hsync interval which may make sampling more accurate but at the cost of increased jitter in output pixel clock. A small value ensures best compatibility, but sync jitter in the source (e.g. SNES) may result to sampling jitter on nearby scanlines. Increase for sources with sync jitter if your display is able to tolerate jitter in output clock.
- 0-3: [default=0]
Line multiplier opt
Scaler opt.
Output opt.
Operating mode
Selects operating mode of the device. Respective sub-menus under main menu have detailed options for each operating mode
- Line multiplier: Operates in basic line multiplication mode. [default]
- Scaker: Operates in more flexible scaler mode.
Test pattern mode
Selects video mode for test pattern. May be used to test display compatibility.
- 240p...2560x1440_60: Output video mode. [default=480p]
TX mode
Sets the output TX mode.
- HDMI (RGB Full): 24-bit full range RGB output with audio and auxiliary Infoframe packets. [default]
- HDMI (RGB Limited): 24-bit limited range RGB output with audio and auxiliary Infoframe packets.
- HDMI (YCbCr444): 24-bit YCbCr 4:4:4 (Rec. 601) output with audio and auxiliary Infoframe packets.
- DVI: 24-bit full range RGB output. Required if target display does not support HDMI.
Audio opt.
Sampling format
Quad stereo
AV1 audio source
Scanline opt.
Scanlines
Controls whether emulated scanlines are drawn on top of the picture
- Off: No scanlines drawn [default]
- Auto: Horizontal scanlines are drawn for 240p/288p sources, alternating scanlines are enabled for 480i/576i, no scanlines for other sources
- On: Scanlines are drawn for every source according to "Scanline type" option
Sl. strength
- 6-100%: Strength of the emulated scanlines [default=6%]
Sl. method
Selects the method how scanlines are generated.
- Multiplication: Scanline is generated by multiplying source RGB value [default]
- Subtraction: Scanline is generated by subtracting from source RGB value
Sl. LM Bob altern.
Controls whether scanline position alternates along with fields of Bob deinterlaced LM modes.
- Off: Scanlines are always mapped to same output lines.
- On: Position is tied to field which shows as alternating position in output. Useful for reducing flicker. [default]
Sl. alignment
- Top: Scanline is drawn on top position of every group of output lines formed from a single input line. [default]
- Bottom: Scanline is drawn on bottom position of every group of output lines formed from a single input line.
Scanline type
- Horizontal: Scanlines are drawn on every other (passthru & line2x modes), every third (line3x), every 2 out of 4 (line4x) or every 2 out of 5 (line5x) output lines. [default]
- Vertical: Scanlines are drawn on every other output column.
- Horiz. + Vert.: Combination of horizontal and vertical mode.
- Custom: Scanlines are drawn accoring to line-wise and column-wise strength set under Custom Sl.
Custom Sl.
Enables separate setting of each overlay line and column (line strength takes priority on pixels where it is >0%). To check how many sub-lines and -columns are in each mode, refer to Optimal timings#Horizontal multiplication factors.
H interval
Sets the horizontal interval (in output pixels) in which the column overlay pattern is repeated.
V interval
Sets the vertical interval (in output lines) in which the line overlay pattern is repeated.
Sub-line M str
Strength for Mth sub-line, 0% disables line overlay.
Sub-column N str
Strength for Nth sub-column, 0% disables column overlay.
Post-proc.
Mask color
Sets mask color
- Black|Blue|Green|Cyan|Red|Magenta|Yellow|White: Mask color. [default=Black]
Mask brightness
Sets mask brightness (only effective is color is set to non-black). Could be used as a precaution with self-emissive displays to avoid uneven wear.
- 0-15: Mask brightness level. [default=8]
BFI for 2x Hz
Enables black frame insertion feature for modes where output refresh rate is min. 2x of input. Reducing image persistence can be used to improve motion resolution at the cost of some flicker.
- On: BFI enabled.
- Off: BFI disabled. [default]
BFI strength
Sets the strength of BFI to trade off motion resolution for improved brightness / reduced flicker
- 6-100%: Sets opaqueness of the black mask applied over a duplicated frame. [default=100%]
Settings
Initial input
Sets the input which is automatically activated when device is powered on. If "last used" is selected, id is saved every time input is switched (adding a minor delay) and is automatically selected next time the board is powered on. Test pattern is diplayed regardless of initial input setting until sync is detected on the respective input.
OSD
Selects whether OSD rendering is enabled and in which mode. When enabled, Navigation OSD is permanently visible when menu is active and a status OSD is temporarily displayed when input video mode changes.
- Off: OSD is not displayed.
- Full: Full OSD is displayed. [default]
- Simple: Simple OSD is displayed.
OSD status display
Selects how long updated video parameters are shown on the status OSD.
- 2s: status shown for 2 seconds.
- 5s: status shown for 5 seconds. [default]
- 10s: status shown for 10 seconds.
- Off: Status is not displayed.
Reset settings
Resets current profile to default values without saving it.
Firmware update
DE10-Nano
Eject the SD card and insert in into a computer. Replace DE10-Nano-vd_isl.rbf file on the filesystem with latest version.
Other boards
Program latest .jic file on the flash of the development board. Refer to board-specific READMEs in github for more details.