All News | Boards | Chips | Devices | Software | Archive | About | Contact | Subscribe
Follow LinuxGizmos:
Twitter Google+ Facebook RSS feed
*   get email updates   *

FPGA-driven Raspberry Pi add-on enables overlays on encrypted video

May 14, 2018 — by Eric Brown — 1947 views

Alphamax is crowdfunding an open source “NeTV2” video development add-on board for the Raspberry Pi with an Artix-7 FPGA, 4x PCIe lanes, 2x HDMI inputs, 2x HDMI outputs, and Python programming for overlaying content on encrypted video signals.

Back in 2016, hardware hacker Bunnie Huang joined with the Electronic Frontier Foundation (EFF) to sue the U.S. government to overturn the “onerous provisions” of Section 1201 of the 1998 Digital Millennium Copyright Act (DMCA). The provisions restrict access to copyrighted material “even where people want to make noninfringing fair uses of the materials they are accessing,” according to the EFF.

Now Huang and his company Alphamax have followed up with a provocative open source NeTV2 project that nips at the edges of the law. The NeTV2 is an FPGA-based Raspberry Pi add-on board for overlaying content on encrypted video signals, as well as encrypting unencrypted video such as DVI streams.

NeTV2 board with RPi 3 (left) and encased
(click images to enlarge)

The project is close to meeting its modest $15,000 goal on Crowd Supply. The NeTV2 board is available for $200, or $225 with a specially designed case. There’s also a complete kit for $320 that adds the new, 1.4GHz Raspberry Pi 3 Model B+, an 8GB preloaded microSD card, and a custom HDMI Flex Jumper, which is separately available for $15.

Both the board and full kit are available with a $100 option that boosts the board’s Xilinx Artix-7 FPGA from an XC7A35T with 32K logic cells to a top-of-the-line XC7A50T with 52K cells. The campaign is open through June 29, but the board won’t ship until May 31, 2019.

NeTV2 kit with RPi3 and case
(click image to enlarge)

The NeTV2 follows Huang’s standalone, $150 NeTV board from 2011, which runs Angstrom Linux on a Marvell PXA168 in conjunction with a Spartan-6 FPGA. Like the NeTV, the NeTV2 supports “NeTV Classic Mode,” giving you the ability to add encrypted pixels to an encrypted video stream.

On the NeTV2, this default mode lets you do things like adding an opaque text overlay to a live video stream. As noted by Liliputing, it enables developers to “add subtitles to movie streams, translate on-screen text in real-time, or block ads.”

The NeTV Classic Mode lets you add overlays onto an encrypted stream by “observing the initial cryptographic handshake between the video source and video sink,” says Huang. Special hardware circuits enable the board to “behave as an in-line video filter by dynamically intercepting and modifying display capability negotiations,” he continues. “This gives the NeTV2 the ability to dynamically fix ‘broken’ display descriptors, attempt to force a known display resolution, and encrypt video for improved compatibility with a wide range of target systems.”

NeTV Classic Mode (left) and Libre Mode
(click images to enlarge)

Unlike the original NeTV, the NeTV2 also supports a new Libre mode, which “works only with unencrypted video feeds, but has full access to the entire video stream,” says Huang. In Libre mode, you can “arbitrarily manipulate pixels in real time,” either locally in conjunction with the Raspberry Pi or by plugging into a host computer via the PCIe interface. In the latter configuration, you can offload compute functions to a companion GPU or cloud service.

Neither mode decrypts video streams, therefore making the NeTV2 legal under Section 1201, says Huang. In any case, Huang and the EFF are arguing that certain restrictions in Section 1201 are redundant due to other sections of the DMCA, and are resulting in a needless obstruction of digital video R&D. The NeTV2 campaign is designed in part to prove to the courts that there’s a sizable digital video hacker community in waiting.

The Libre mode currently offers limited functionality due to its inability to work with encrypted video. However, it’s enabled here not only to give a small number of digital video researchers a cool new tool to play with, but with the hope that in the future, Section 1201 will be amended to open up more applications.

It’s unclear if developers might be able to convert the board to a video piracy platform. In the Risk section at the bottom of the Crowd Supply page, Huang concedes the possibility he could be sued over the device, in which case he says that some of the proceeds from the campaign might be used for legal defense. “You will not only get a great FPGA development board, you will also be helping to make the case that there is a real demand for the freedoms to innovate and express in digital video,” says Huang.

Inside the NeTV2

The NeTV2 board ships with 512MB of DDR3-800 and a microSD slot. It offers dual HDMI input ports and dual HDMI outputs, one of which is a Type-D port. One of the two HDMI I/O pairs, which support 1920 x 1080 @ 60Hz video, is used for in-line NeTV mode video filtering.

NeTV2 case, closed and open
(click images to enlarge)

The NeTV2 provides a PCIe 2.0 x4 interface with “hax” GPIO extensions on optional/unused pins. You also get 10/100 Ethernet and micro-USB ports, as well as a JTAG, and UART interfaces. The board can draw 12VDC via a barrel jack or PCIe and runs on 10W max power.

The Raspberry Pi is listed as optional, suggesting you could use the board with other hacker boards or desktop computers. As configured, the RPi SBC enables “seamless JTAG configuration and overlay video generation.” Specifically, the RPi’s “unencrypted HDMI video output is fed into the NeTV2 and sampled into a frame buffer, which is “genlocked” (e.g. timing synchronized) to a video feed that’s just passing through the FPGA via another pair of HDMI input/outputs,” says Huang.

The optional, and similarly open source, 160 x 120 x 51mm case is “optimized for the application of in-line video filtering, but open-ended to other possibilities,” says Huang. The case includes empty space and an array of M2.5 mounting bosses on an interleaved 30mm grid for adding new features. The front bezel is left blank and is designed for building your own bezel with custom port cutouts using a 3D printer.

The NeTV2 is designed to be used with the open source LiteX, a Python-based hardware description language based on Migen. LiteX can be used as a front-end to Xilinx’s proprietary Vivado toolchain for FPGA synthesis, placement, routing, and bitstream generation.

Further information

The NeTV2 board is available on Crowd Supply through June 29 starting at $200, with shipments due May 31, 2019. Shipping is free to the U.S. and costs $30 elsewhere. More information may be found on the NeTV2 Crowd Supply page, as well as in this May 12 blog announcement.

(advertise here)

Print Friendly, PDF & Email

One response to “FPGA-driven Raspberry Pi add-on enables overlays on encrypted video”

  1. tehodler says:

    I get that this is for hardware hackers and developers but what does it do it laymen’s terms?

Please comment here...