Difference between revisions of "Digital Video Transmission"

From MyLabWiki
Jump to: navigation, search
(GMSK)
 
(10 intermediate revisions by one user not shown)
Line 1: Line 1:
 +
See [[Simple DVB with Gstreamer and GNU Radio]]
 +
 +
== System Overview ==
 +
 +
Modular setup where one can easily swap between different codecs, modulation and other parameters.
 +
 +
On the receiver side:
 +
* Video input device:
 +
** File
 +
** Webcam
 +
** Firewire cameras
 +
* Video encoder
 +
** gstreamer
 +
** ffmpeg
 +
** vlc
 +
* ''MPEG-TS muxer''
 +
* GNU Radio SDR transmitter:
 +
** ''FEC''
 +
** Modulator
 +
* USRP with RFX
 +
** RFX1200 gives 200mW at 1.2 GHz
 +
** WBX gives less than 100mW
 +
 +
On the receiver side:
 +
* USRP with RF board for 1.2 GHz:
 +
** WBX
 +
** DBSRX
 +
** RFX1200
 +
* GNU Radio SDR receiver:
 +
** ''FEC''
 +
** Demodulator
 +
* ''MPEG-TS demuxer''
 +
* Video decoder:
 +
** gstreamer
 +
** mplayer / ffplay
 +
** VLC
 +
 +
Notes:
 +
# The MPEG-TS muxer would be nice to have in order to encapsulate more than one stream and to ensure CBR by inserting NULL packets.
 +
# Initial experiments have been performed using gstreamer, see [http://www.oz9aec.net/index.php/gnu-radio/gnu-radio-blog/361-simple-dvb-with-gstreamer-and-gnu-radio this blog]
 +
#* [http://gstreamer.freedesktop.org/ Gstreamer web]
 +
#* [http://gstreamer.freedesktop.org/modules/gst-python.html GStreamer Python Bindings]
 +
#* [http://pygstdocs.berlios.de/pygst-tutorial/index.html Python GStreamer Tutorial]
 +
#* [http://blogs.elphel.com/2009/11/interfacing-elphel-cameras-with-gstreamer-opencv-opengl-and-python-get-profit-of-dsp-or-gpu-based-optimisation-control-camera-settings-from-python-application-or-human-interface-device-hid Interfacing Elphel cameras with GStreamer, OpenCV, OpenGL/GLSL and python] – Elphel Development Blog.
  
 
== Target Bitrates ==
 
== Target Bitrates ==
Line 6: Line 50:
 
* 1920 x 1080i (2-8 Mbps)
 
* 1920 x 1080i (2-8 Mbps)
 
* 1280 x 720p (1-4 Mbps)
 
* 1280 x 720p (1-4 Mbps)
* ''704 x 480p (412 kbps to 2 Mbps)''
+
* 704 x 480p (412 kbps to 2 Mbps)
* 640 x 360 (256 kbps to 1 Mbps)
+
* ''640 x 360 (256 kbps to 1 Mbps)''
  
 
Source: http://www.linuxfordevices.com/c/a/News/Panasonic-KXVC500/
 
Source: http://www.linuxfordevices.com/c/a/News/Panasonic-KXVC500/
  
 +
Note: libx264 prefers both height and width to be integer multiple of 16, otherwise compression will suffer.
  
 
=== Using OGG Theora ===
 
=== Using OGG Theora ===
Line 25: Line 70:
  
 
=== PSK ===
 
=== PSK ===
 +
 +
Differential BPSK would be simplest with best BER vs E<sub>b</sub>/N<sub>0</sub>.
 +
 +
DVB-S uses QPSK.
 +
  
 
=== GMSK ===
 
=== GMSK ===
Line 36: Line 86:
 
[http://en.wikipedia.org/wiki/GMSK#Gaussian_minimum-shift_keying Wikipedia]
 
[http://en.wikipedia.org/wiki/GMSK#Gaussian_minimum-shift_keying Wikipedia]
  
== Other Projects ==
+
== References ==
  
 +
=== Other Projects ===
 +
 +
* [http://www.wu.ece.ufl.edu/projects/wirelessVideo/project/realTimeCoding/index.htm Wireless H.264 Video Testbed]
 
* BATC Magazine TBD article
 
* BATC Magazine TBD article
 +
* http://www.d-atv.nl/
 +
* http://www.g7lwt.com/datv.html
 +
* http://g4guo.blogspot.com/
 +
 +
=== Misc ===
 +
 +
* Some HD test patterns: http://www.w6rz.net/
  
 
[[Category:Video Processing]]
 
[[Category:Video Processing]]

Latest revision as of 21:41, 5 September 2010

See Simple DVB with Gstreamer and GNU Radio

Contents

System Overview

Modular setup where one can easily swap between different codecs, modulation and other parameters.

On the receiver side:

  • Video input device:
    • File
    • Webcam
    • Firewire cameras
  • Video encoder
    • gstreamer
    • ffmpeg
    • vlc
  • MPEG-TS muxer
  • GNU Radio SDR transmitter:
    • FEC
    • Modulator
  • USRP with RFX
    • RFX1200 gives 200mW at 1.2 GHz
    • WBX gives less than 100mW

On the receiver side:

  • USRP with RF board for 1.2 GHz:
    • WBX
    • DBSRX
    • RFX1200
  • GNU Radio SDR receiver:
    • FEC
    • Demodulator
  • MPEG-TS demuxer
  • Video decoder:
    • gstreamer
    • mplayer / ffplay
    • VLC

Notes:

  1. The MPEG-TS muxer would be nice to have in order to encapsulate more than one stream and to ensure CBR by inserting NULL packets.
  2. Initial experiments have been performed using gstreamer, see this blog

Target Bitrates

Using H.264

  • 1920 x 1080i (2-8 Mbps)
  • 1280 x 720p (1-4 Mbps)
  • 704 x 480p (412 kbps to 2 Mbps)
  • 640 x 360 (256 kbps to 1 Mbps)

Source: http://www.linuxfordevices.com/c/a/News/Panasonic-KXVC500/

Note: libx264 prefers both height and width to be integer multiple of 16, otherwise compression will suffer.

Using OGG Theora

TBD


Using Dirac

TBD


Modulation

PSK

Differential BPSK would be simplest with best BER vs Eb/N0.

DVB-S uses QPSK.


GMSK

Gaussian minimum shift keying or GMSK is a continuous-phase frequency-shift keying modulation scheme. It is similar to standard minimum-shift keying (MSK); however the digital data stream is first shaped with a Gaussian filter before being applied to a frequency modulator. This has the advantage of reducing sideband power, which in turn reduces out-of-band interference between signal carriers in adjacent frequency channels. However, the Gaussian filter increases the modulation memory in the system and causes intersymbol interference, making it more difficult to discriminate between different transmitted data values and requiring more complex channel equalization algorithms such as an adaptive equalizer at the receiver.

GMSK has high spectral efficiency, but it needs a higher power level than QPSK, for instance, in order to transmit the same amount of data reliably.

GMSK is used in GSM as well as in Space-to-Earth links for high-rate mission data.

Wikipedia

References

Other Projects

Misc