SlideShare une entreprise Scribd logo
1  sur  46
CRC-mmbTools
     Software Radio Workshop
      Pascal.Charest @ crc . ca
Communications Research Centre, Canada

     EBU-EUR Digital Radio Week
       Geneva, February 2011
Overview

● Introduction
● CRC-mmbTools live CD and website
● CRC FLOSS DAB tools usage
● Service encoding
● Other modulations
● Conclusion
CRC-mmbTools live CD and website

● Introduction
   ○ A word about the live CD
   ○ Ubuntu
   ○ Papers
● Workshop's frequency allotment plan
● Tools overview
● Demos
● Installation
Major Papers

● An Experimental DAB Delivery Platform For Internet
  Broadcast Services, F. Lefebvre, IBC 2002
● End-to-end Mobile Multimedia Broadcasting Software Tools,
  F. Lefebvre, P. Charest, IBC 2006
● Software Implementation of the DMB Transmission System,
  P. Charest, F.Lefebvre, WOC 2007
● Software DAB Transmitter On Live CD, P. Charest, F.
  Lefebvre, WOC 2008
● Open source handhelds: a broadcaster-led innovation for
  BTH services. F. Lefebvre, J.-M. Bouffard, P. Charest. EBU
  Technical Review - Best of 2008.
● The Openmokast Open Source Framework: Towards User
  Innovation In The Mobile Broadcasting Application Space,
  F. Lefebvre, J.-M. Bouffard, P. Charest, IBC 2009
CRC-mmbTools live CD and website

● Introduction
● Workshop's frequency allotment plan
   ○ Let's do it!
      ■ Band III: 10C-13F
      ■ Band L: any
● Tools overview
● Demos
● Installation
CRC-mmbTools live CD and website

● Introduction
● Workshop's frequency allotment plan
● Tools overview
   ○ Applications
   ○ Documentation
   ○ Demonstration scripts
● Demos
● Installation
CPU Requirements

Minimum CPU requirements? We don't know, but here's a list
of CPU that don't work:
  ● Pentium M 715 @ 1.5 GHz, PassMark 393
  ● Intel Atom 330 @1.6 GHz, PassMark 633

Benchmark score are from PassMark:
http://www.cpubenchmark.net/cpu_list.php

Please, choose a CPU more powerfull than one listed above.
CRC-mmbTools live CD and website

● Introduction
● Workshop's frequency allotment plan
● Tools overview
● Demos
   ○ Using the scripts
   ○ CRC mmbTools website
● Installation
http://mmbtools.crc.ca
CRC-mmbTools live CD and website

● Introduction
● Tools overview
● Workshop's frequency allotment plan
● Demos
● Installation
   ○ From the live CD
   ○ From USB
   ○ To a virtual machine
   ○ Gnuradio update (for WBX)
Gnuradio update

$ sudo apt-get remove -y gnuradio gnuradio-doc libgnuradio
libgnuradio-core libgnuradio-omnithread libgruel python-
gnuradio-core libusrp usrp-doc python-wxgtk2.6
$ sudo apt-get -y install git-core autoconf libtool python-dev
swig libfftw3-dev libcppunit-dev libusb-dev libboost1.37-dev
guile-1.8-dev sdcc-nf libsdl1.2-dev libgsl0-dev
Gnuradio update (old instructions)

### Old instructions, please use next slide instead ###

$ git clone http://gnuradio.org/git/gnuradio.git
$ cd gnuradio
$ git checkout v3.3.0
$ ./bootstrap
$ ./configure --prefix=/usr --sysconfdir=/etc
$ make -j2
$ sudo make install
$ sudo ldconfig
$ sudo ln -s gnuradio-companion /usr/bin/grc
$ sudo ln -s libgruel.so /usr/lib/libgruel.so.0
Gnuradio update (new instructions)

$ wget http://ftp.gnu.org/gnu/gnuradio/gnuradio-3.3.0.tar.gz
$ tar xzf gnuradio-3.3.0.tar.gz
$ cd gnuradio-3.3.0
$ ./configure --prefix=/usr --sysconfdir=/etc
$ make -j2
$ sudo make install
$ sudo ldconfig
$ sudo ln -s gnuradio-companion /usr/bin/grc
$ sudo ln -s libgruel.so /usr/lib/libgruel.so.0
CRC FLOSS DAB tools usage

● "In the beginning... was the command line"
   ○ CLI (man, help, advantages)
   ○ Pipes
   ○ Basic scripting
● CRC-OpenMokast
● CRC-DabMod
● CRC-Dwap
● CRC-DabMux
In the beginning, was the command line

$ make love
make: *** No rule to make love. Stop.

$ whatis sex
sex: nothing appropriate

$ %blow
%blow: no such job

$ man woman
No manual entry for woman
Pipes are fun!




Src :http://www.smashbros.com/en_us/howto/technique/technique06.html
Script essential

#!/bin/bash

{your commands here}

{multi-line 
command}

{command to run in background &}
Script permissions

$ chmod u+x {script name}
CRC FLOSS DAB tools usage

● "In the beginning... was the command line"
● CRC-OpenMokast
● CRC-DabMod
   ○ Usage
● CRC-Dwap
● CRC-DabMux
CRC FLOSS DAB tools usage

● "In the beginning... was the command line"
● CRC-OpenMokast
● CRC-DabMod
● CRC-Dwap
   ○ Usage
● CRC-DabMux
CRC FLOSS DAB tools usage

● "In the beginning... was the command line"
● CRC-OpenMokast
● CRC-DabMod
● CRC-Dwap
● CRC-DabMux
  ○ DAB multiplex overview
  ○ Simple configuration
  ○ Configuring outputs
  ○ Configuring inputs
  ○ Configuring services information
  ○ Complex configuration
DAB Multiplex
CRC-DabMux Flowgraph
Simple configuration

#!/bin/bash

FREQUENCY=1459792000

CRC-DabMux 
  -A "/usr/share/crc-dabmux/CRC pub.mp2" -S -C 
  -O fifo:///dev/stdout |
CRC-DabMod -r3200000 -c128000000 -g1 |
CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
Service information

#!/bin/bash

FREQUENCY=1459792000

CRC-DabMux -i 0xc000 -L "CRC Ensemble" -l "CRC" 
  -A "/usr/share/crc-dabmux/CRC pub.mp2" 
    -S -L "CRC Service" -l "CRC Svc" -C 
  -O fifo:///dev/stdout | 
CRC-DabMod -r3200000 -c128000000 -g1 | 
CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
Complex configuration

CRC-DabMux -i 0xc000 -L "CRC Ensemble" -l "CRC" 
  -A "/usr/share/crc-dabmux/CRC pub.mp2" 
     -S -L "CRC DAB" -l "CRC DAB" -C 
  -F "/usr/share/crc-dabmux/CRC pub-40k.lfa" -b 40 
     -S -L "CRC DAB+" -l "CRC DAB+" -C 
  -M "CrcYouTube_AAC.ts" -b 384 
     -S -L "CRC DMB" -C -t 24 
  -O fifo:///dev/stdout | 
CRC-DabMod -r3200000 -c128000000 -g1 | 
CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
Service encoding

● Audio
● Multimedia
Service encoding

● Audio
  ○ DAB
  ○ DAB+
  ○ Celt
  ○ Internet source
● Multimedia
CRC-Dabplus installation

$ tar xzf crc-dabplus-distrib-{version}.tar.gz
$ sudo dpkg -i crc-dabplus-{version}/packages/*.deb
Testing audio cards

$ crc-dabplus -i card://list
Available capture card devices:
hw:0
hw:0,0
hw:0,0,0 (name: HDA Generic)
$ gst-launch alsasrc device=hw:0 ! audio/x-raw-int,width=16,
rate=48000,channels=2 ! alsasink sync=false
DAB+ real-time encoding

if [ ! -e fifo ]; then mkfifo fifo; fi

CRC-DabMux 
   -F fifo -k -b 32 -S -C 
   -O fifo:///dev/stdout | 
CRC-DabMod -r3200000 -c128000000 -g1 | 
CRC-Dwap.py -r3200000 -u -f${FREQUENCY} &
crc-dabplus -i card:// -o file://fifo -b 32 -c 2

wait
DAB real-time encoding


CRC-DabMux 
    -F fifo -k -b 192 -S -C 
...

gst-launch alsasrc device=hw:0 ! 
  audioconvert ! audioresample ! 
  audio/x-raw-int,width=16,rate=48000,channels=2 ! 
  filesink location=/dev/stdout | 
toolame -s 48 -e -r -D 0 -b 192 - fifo &
CELT real-time encoding


CRC-DabMux 
    -D fifo://fifo -b 96 -S -C 
...

gst-launch alsasrc device=plughw:0 !
  audio/x-raw-int,width=16,rate=48000,channels=2 ! 
  filesink location=/dev/stdout | 
celtenc --rate 48000 --stereo --framesize 576 
  --bitrate 94 - - | 
DabCeltCoder -E -b 96 -o fifo &
Internet stream real-time encoding


CRC-DabMux 
    -F fifo -k -b 64 
    -A ... -S -C -C -i0 -t60 -f2 -d 
...

mpg123 -w - --no-icy-meta http://maxxima.mine.nu:8000 | 
crc-dabplus -o file://fifo -b 64 &
Service encoding

● Audio
● Multimedia
  ○ DLS
  ○ DMB
  ○ Slideshow
Slideshow real-time encoding


CRC-DabMux 
    -P fifo -k -b 32 
    -A ... -S -C -C -i0 -t60 -f2 -d 
...

CRC-SlideShow {inbox_dir} -o fifo -p 6 -n -b 32 &
Other modulations

● FM
● DRM
Other modulations

● FM
   ○ Tx
   ○ Rx
   ○ Android
● DRM
Other modulations

● FM
● DRM
   ○ Tx
   ○ Rx
Installing DREAM

# Src: http://sourceforge.net/apps/mediawiki/drm

$ sudo apt-get isntall libasound2-dev libhamlib-dev fftw-dev
libqwt-dev libsndfile1-dev
$ wget http://downloads.sourceforge.net/project/drm/drm/1.
12b/drm-1-12b.tar.gz
$ tar xzf drm-1-12b.tar.gz
Installing DREAM: FAAD2

$ wget http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz
$ tar xzf faad2-2.7.tar.gz
$ cd faad2-2.7
$ . bootstrap
$ ./configure --disbaled-shared -without-xmms --with-drm --
without-mpeg4ip
$ make
$ cp include/faad.h include/neaacdec.h ../drm/libs
$ cp libfaad/.libs/libfaad.a ../drm/libs
$ cd ..
Installing DREAM: FAAC

$ wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz
$ tar xzf faac-1.28.tar.gz
$ cd faac-1.28
$ . bootstrap
$ ./configure --with-pic --disable-shared --without-mp4v2 --
enable-drm
$ make
$ cp include/faaccfg.h include/faac.h ../drm/libs
$ cp libfaac/.libs/libfaac.a ../drm/libs
$ cd ..
Installing DREAM:DREAM

$ cd drm
$ . bootstrap
$ ./configure
$ make
$ sudo cp linux/drm /usr/local/bin/dream
Conclusion

● GPL usage
● TODO

Contenu connexe

Tendances

The Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) ProjectThe Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) Project
Partho Choudhury
 
Introduction to Digital Signal Processing Using GNU Radio
Introduction to Digital Signal Processing Using GNU RadioIntroduction to Digital Signal Processing Using GNU Radio
Introduction to Digital Signal Processing Using GNU Radio
Albert Huang
 
digital audio broadcasting
digital audio broadcastingdigital audio broadcasting
digital audio broadcasting
Ram B
 
SDR for radar 090623
SDR for radar 090623SDR for radar 090623
SDR for radar 090623
Bertalan EGED
 
Hardware Accelerated Software Defined Radio
Hardware Accelerated Software Defined Radio Hardware Accelerated Software Defined Radio
Hardware Accelerated Software Defined Radio
Tarik Kazaz
 

Tendances (20)

The Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) ProjectThe Digital Video Broadcast (DVB) Project
The Digital Video Broadcast (DVB) Project
 
Usrp family-09-open
Usrp family-09-openUsrp family-09-open
Usrp family-09-open
 
Gnu radio lecture
Gnu radio lectureGnu radio lecture
Gnu radio lecture
 
A Glimpse into Developing Software-Defined Radio by Python
A Glimpse into Developing Software-Defined Radio by PythonA Glimpse into Developing Software-Defined Radio by Python
A Glimpse into Developing Software-Defined Radio by Python
 
Introduction to Digital Signal Processing Using GNU Radio
Introduction to Digital Signal Processing Using GNU RadioIntroduction to Digital Signal Processing Using GNU Radio
Introduction to Digital Signal Processing Using GNU Radio
 
digital audio broadcasting
digital audio broadcastingdigital audio broadcasting
digital audio broadcasting
 
Software Defined Radio (SDR)
Software Defined Radio (SDR)Software Defined Radio (SDR)
Software Defined Radio (SDR)
 
Espruino - JavaScript for Microcontrollers
Espruino - JavaScript for MicrocontrollersEspruino - JavaScript for Microcontrollers
Espruino - JavaScript for Microcontrollers
 
intro_dgital_TV
intro_dgital_TVintro_dgital_TV
intro_dgital_TV
 
SDR for radar 090623
SDR for radar 090623SDR for radar 090623
SDR for radar 090623
 
Digital Video Broadcasting (DVB)
Digital Video Broadcasting (DVB)Digital Video Broadcasting (DVB)
Digital Video Broadcasting (DVB)
 
A glance-at-voip
A glance-at-voipA glance-at-voip
A glance-at-voip
 
Free Software for Radio Broadcasting
Free Software for Radio BroadcastingFree Software for Radio Broadcasting
Free Software for Radio Broadcasting
 
Digital Audio Broadcasting By SAIKIRAN PANJALA
Digital  Audio Broadcasting By SAIKIRAN PANJALADigital  Audio Broadcasting By SAIKIRAN PANJALA
Digital Audio Broadcasting By SAIKIRAN PANJALA
 
Digital video broadcasting second generationq
Digital video broadcasting second generationqDigital video broadcasting second generationq
Digital video broadcasting second generationq
 
Technisat
TechnisatTechnisat
Technisat
 
Universal software defined radio development platform
Universal software defined radio development platformUniversal software defined radio development platform
Universal software defined radio development platform
 
Approach to handover in heterogeneous Network
Approach to handover in heterogeneous NetworkApproach to handover in heterogeneous Network
Approach to handover in heterogeneous Network
 
Hardware Accelerated Software Defined Radio
Hardware Accelerated Software Defined Radio Hardware Accelerated Software Defined Radio
Hardware Accelerated Software Defined Radio
 
Multimedia Services: Audio
Multimedia Services: AudioMultimedia Services: Audio
Multimedia Services: Audio
 

Similaire à EBU DRW 2011 - CRC-mmbTools - Software Radio Workshop

Introduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and ProcessesIntroduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and Processes
PrestoCentre
 
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsTIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
Xiaozhe Wang
 

Similaire à EBU DRW 2011 - CRC-mmbTools - Software Radio Workshop (20)

Debugging 2013- Jesper Brouer
Debugging 2013- Jesper BrouerDebugging 2013- Jesper Brouer
Debugging 2013- Jesper Brouer
 
Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
 
Tiny ML for spark Fun Edge
Tiny ML for spark Fun EdgeTiny ML for spark Fun Edge
Tiny ML for spark Fun Edge
 
2 netcat enum-pub
2 netcat enum-pub2 netcat enum-pub
2 netcat enum-pub
 
Building your own simple live streaming platform. Slides form BOS video meetu...
Building your own simple live streaming platform. Slides form BOS video meetu...Building your own simple live streaming platform. Slides form BOS video meetu...
Building your own simple live streaming platform. Slides form BOS video meetu...
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDK
 
Brightcove live tech overview
Brightcove live tech overviewBrightcove live tech overview
Brightcove live tech overview
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing Aurea
 
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
 
CRC MMB Projects and Tools
CRC MMB Projects and ToolsCRC MMB Projects and Tools
CRC MMB Projects and Tools
 
Raspberry Pi and Amateur Radio - 2020 update
Raspberry Pi and Amateur Radio - 2020 updateRaspberry Pi and Amateur Radio - 2020 update
Raspberry Pi and Amateur Radio - 2020 update
 
100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV
 
CCNP Data Center Centralized Management Automation
CCNP Data Center Centralized Management AutomationCCNP Data Center Centralized Management Automation
CCNP Data Center Centralized Management Automation
 
Deploy your own P2P network
Deploy your own P2P networkDeploy your own P2P network
Deploy your own P2P network
 
Introduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and ProcessesIntroduction to Transcoding: Tools and Processes
Introduction to Transcoding: Tools and Processes
 
Raspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioRaspberry Pi and Amateur Radio
Raspberry Pi and Amateur Radio
 
Plane Spotting
Plane SpottingPlane Spotting
Plane Spotting
 
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling ToolsTIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

EBU DRW 2011 - CRC-mmbTools - Software Radio Workshop

  • 1. CRC-mmbTools Software Radio Workshop Pascal.Charest @ crc . ca Communications Research Centre, Canada EBU-EUR Digital Radio Week Geneva, February 2011
  • 2. Overview ● Introduction ● CRC-mmbTools live CD and website ● CRC FLOSS DAB tools usage ● Service encoding ● Other modulations ● Conclusion
  • 3. CRC-mmbTools live CD and website ● Introduction ○ A word about the live CD ○ Ubuntu ○ Papers ● Workshop's frequency allotment plan ● Tools overview ● Demos ● Installation
  • 4. Major Papers ● An Experimental DAB Delivery Platform For Internet Broadcast Services, F. Lefebvre, IBC 2002 ● End-to-end Mobile Multimedia Broadcasting Software Tools, F. Lefebvre, P. Charest, IBC 2006 ● Software Implementation of the DMB Transmission System, P. Charest, F.Lefebvre, WOC 2007 ● Software DAB Transmitter On Live CD, P. Charest, F. Lefebvre, WOC 2008 ● Open source handhelds: a broadcaster-led innovation for BTH services. F. Lefebvre, J.-M. Bouffard, P. Charest. EBU Technical Review - Best of 2008. ● The Openmokast Open Source Framework: Towards User Innovation In The Mobile Broadcasting Application Space, F. Lefebvre, J.-M. Bouffard, P. Charest, IBC 2009
  • 5. CRC-mmbTools live CD and website ● Introduction ● Workshop's frequency allotment plan ○ Let's do it! ■ Band III: 10C-13F ■ Band L: any ● Tools overview ● Demos ● Installation
  • 6. CRC-mmbTools live CD and website ● Introduction ● Workshop's frequency allotment plan ● Tools overview ○ Applications ○ Documentation ○ Demonstration scripts ● Demos ● Installation
  • 7. CPU Requirements Minimum CPU requirements? We don't know, but here's a list of CPU that don't work: ● Pentium M 715 @ 1.5 GHz, PassMark 393 ● Intel Atom 330 @1.6 GHz, PassMark 633 Benchmark score are from PassMark: http://www.cpubenchmark.net/cpu_list.php Please, choose a CPU more powerfull than one listed above.
  • 8. CRC-mmbTools live CD and website ● Introduction ● Workshop's frequency allotment plan ● Tools overview ● Demos ○ Using the scripts ○ CRC mmbTools website ● Installation
  • 9.
  • 11. CRC-mmbTools live CD and website ● Introduction ● Tools overview ● Workshop's frequency allotment plan ● Demos ● Installation ○ From the live CD ○ From USB ○ To a virtual machine ○ Gnuradio update (for WBX)
  • 12. Gnuradio update $ sudo apt-get remove -y gnuradio gnuradio-doc libgnuradio libgnuradio-core libgnuradio-omnithread libgruel python- gnuradio-core libusrp usrp-doc python-wxgtk2.6 $ sudo apt-get -y install git-core autoconf libtool python-dev swig libfftw3-dev libcppunit-dev libusb-dev libboost1.37-dev guile-1.8-dev sdcc-nf libsdl1.2-dev libgsl0-dev
  • 13. Gnuradio update (old instructions) ### Old instructions, please use next slide instead ### $ git clone http://gnuradio.org/git/gnuradio.git $ cd gnuradio $ git checkout v3.3.0 $ ./bootstrap $ ./configure --prefix=/usr --sysconfdir=/etc $ make -j2 $ sudo make install $ sudo ldconfig $ sudo ln -s gnuradio-companion /usr/bin/grc $ sudo ln -s libgruel.so /usr/lib/libgruel.so.0
  • 14. Gnuradio update (new instructions) $ wget http://ftp.gnu.org/gnu/gnuradio/gnuradio-3.3.0.tar.gz $ tar xzf gnuradio-3.3.0.tar.gz $ cd gnuradio-3.3.0 $ ./configure --prefix=/usr --sysconfdir=/etc $ make -j2 $ sudo make install $ sudo ldconfig $ sudo ln -s gnuradio-companion /usr/bin/grc $ sudo ln -s libgruel.so /usr/lib/libgruel.so.0
  • 15. CRC FLOSS DAB tools usage ● "In the beginning... was the command line" ○ CLI (man, help, advantages) ○ Pipes ○ Basic scripting ● CRC-OpenMokast ● CRC-DabMod ● CRC-Dwap ● CRC-DabMux
  • 16. In the beginning, was the command line $ make love make: *** No rule to make love. Stop. $ whatis sex sex: nothing appropriate $ %blow %blow: no such job $ man woman No manual entry for woman
  • 17. Pipes are fun! Src :http://www.smashbros.com/en_us/howto/technique/technique06.html
  • 18. Script essential #!/bin/bash {your commands here} {multi-line command} {command to run in background &}
  • 19. Script permissions $ chmod u+x {script name}
  • 20.
  • 21. CRC FLOSS DAB tools usage ● "In the beginning... was the command line" ● CRC-OpenMokast ● CRC-DabMod ○ Usage ● CRC-Dwap ● CRC-DabMux
  • 22. CRC FLOSS DAB tools usage ● "In the beginning... was the command line" ● CRC-OpenMokast ● CRC-DabMod ● CRC-Dwap ○ Usage ● CRC-DabMux
  • 23. CRC FLOSS DAB tools usage ● "In the beginning... was the command line" ● CRC-OpenMokast ● CRC-DabMod ● CRC-Dwap ● CRC-DabMux ○ DAB multiplex overview ○ Simple configuration ○ Configuring outputs ○ Configuring inputs ○ Configuring services information ○ Complex configuration
  • 26. Simple configuration #!/bin/bash FREQUENCY=1459792000 CRC-DabMux -A "/usr/share/crc-dabmux/CRC pub.mp2" -S -C -O fifo:///dev/stdout | CRC-DabMod -r3200000 -c128000000 -g1 | CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
  • 27. Service information #!/bin/bash FREQUENCY=1459792000 CRC-DabMux -i 0xc000 -L "CRC Ensemble" -l "CRC" -A "/usr/share/crc-dabmux/CRC pub.mp2" -S -L "CRC Service" -l "CRC Svc" -C -O fifo:///dev/stdout | CRC-DabMod -r3200000 -c128000000 -g1 | CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
  • 28. Complex configuration CRC-DabMux -i 0xc000 -L "CRC Ensemble" -l "CRC" -A "/usr/share/crc-dabmux/CRC pub.mp2" -S -L "CRC DAB" -l "CRC DAB" -C -F "/usr/share/crc-dabmux/CRC pub-40k.lfa" -b 40 -S -L "CRC DAB+" -l "CRC DAB+" -C -M "CrcYouTube_AAC.ts" -b 384 -S -L "CRC DMB" -C -t 24 -O fifo:///dev/stdout | CRC-DabMod -r3200000 -c128000000 -g1 | CRC-Dwap.py -r3200000 -u -f${FREQUENCY}
  • 30. Service encoding ● Audio ○ DAB ○ DAB+ ○ Celt ○ Internet source ● Multimedia
  • 31. CRC-Dabplus installation $ tar xzf crc-dabplus-distrib-{version}.tar.gz $ sudo dpkg -i crc-dabplus-{version}/packages/*.deb
  • 32. Testing audio cards $ crc-dabplus -i card://list Available capture card devices: hw:0 hw:0,0 hw:0,0,0 (name: HDA Generic) $ gst-launch alsasrc device=hw:0 ! audio/x-raw-int,width=16, rate=48000,channels=2 ! alsasink sync=false
  • 33. DAB+ real-time encoding if [ ! -e fifo ]; then mkfifo fifo; fi CRC-DabMux -F fifo -k -b 32 -S -C -O fifo:///dev/stdout | CRC-DabMod -r3200000 -c128000000 -g1 | CRC-Dwap.py -r3200000 -u -f${FREQUENCY} & crc-dabplus -i card:// -o file://fifo -b 32 -c 2 wait
  • 34. DAB real-time encoding CRC-DabMux -F fifo -k -b 192 -S -C ... gst-launch alsasrc device=hw:0 ! audioconvert ! audioresample ! audio/x-raw-int,width=16,rate=48000,channels=2 ! filesink location=/dev/stdout | toolame -s 48 -e -r -D 0 -b 192 - fifo &
  • 35. CELT real-time encoding CRC-DabMux -D fifo://fifo -b 96 -S -C ... gst-launch alsasrc device=plughw:0 ! audio/x-raw-int,width=16,rate=48000,channels=2 ! filesink location=/dev/stdout | celtenc --rate 48000 --stereo --framesize 576 --bitrate 94 - - | DabCeltCoder -E -b 96 -o fifo &
  • 36. Internet stream real-time encoding CRC-DabMux -F fifo -k -b 64 -A ... -S -C -C -i0 -t60 -f2 -d ... mpg123 -w - --no-icy-meta http://maxxima.mine.nu:8000 | crc-dabplus -o file://fifo -b 64 &
  • 37. Service encoding ● Audio ● Multimedia ○ DLS ○ DMB ○ Slideshow
  • 38. Slideshow real-time encoding CRC-DabMux -P fifo -k -b 32 -A ... -S -C -C -i0 -t60 -f2 -d ... CRC-SlideShow {inbox_dir} -o fifo -p 6 -n -b 32 &
  • 40. Other modulations ● FM ○ Tx ○ Rx ○ Android ● DRM
  • 41. Other modulations ● FM ● DRM ○ Tx ○ Rx
  • 42. Installing DREAM # Src: http://sourceforge.net/apps/mediawiki/drm $ sudo apt-get isntall libasound2-dev libhamlib-dev fftw-dev libqwt-dev libsndfile1-dev $ wget http://downloads.sourceforge.net/project/drm/drm/1. 12b/drm-1-12b.tar.gz $ tar xzf drm-1-12b.tar.gz
  • 43. Installing DREAM: FAAD2 $ wget http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz $ tar xzf faad2-2.7.tar.gz $ cd faad2-2.7 $ . bootstrap $ ./configure --disbaled-shared -without-xmms --with-drm -- without-mpeg4ip $ make $ cp include/faad.h include/neaacdec.h ../drm/libs $ cp libfaad/.libs/libfaad.a ../drm/libs $ cd ..
  • 44. Installing DREAM: FAAC $ wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz $ tar xzf faac-1.28.tar.gz $ cd faac-1.28 $ . bootstrap $ ./configure --with-pic --disable-shared --without-mp4v2 -- enable-drm $ make $ cp include/faaccfg.h include/faac.h ../drm/libs $ cp libfaac/.libs/libfaac.a ../drm/libs $ cd ..
  • 45. Installing DREAM:DREAM $ cd drm $ . bootstrap $ ./configure $ make $ sudo cp linux/drm /usr/local/bin/dream