Difference between revisions of "BeagleBoard/GSoC/2020 Projects/Media IP Streaming"

From eLinux.org
Jump to: navigation, search
(Timeline)
(9 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
[[Category: GSoCProposal2020]]
 
[[Category: GSoCProposal2020]]
  
=[[BeagleBoard/GSoC/ProposalTemplate|ProposalTemplate]] =
+
=[[BeagleBoard/GSoC/ProposalTemplate|Proposol of equipping the Beaglebone AI with Media IP Streaming capabilities]] =
 
{{#ev:youtube|Jl3sUq2WwcY||right|BeagleLogic}} <!-- latest video will go here -->
 
{{#ev:youtube|Jl3sUq2WwcY||right|BeagleLogic}} <!-- latest video will go here -->
  
A short summary of the idea will go here.
+
This project will equip the Beagleboard AI with Media IP Streaming capabilities, by porting the sound card drivers for [https://hackaday.io/project/9634-ctag-face-and-beast-multichannel-audio-systems CTAG face2|4 Audio Card] and the AVB protocol stack from [https://elinux.org/BeagleBoard/GSoC/BeagleBoneAVB Beagle Bone AVB] to the Beaglebone AI.  
  
''Student'': [http://elinux.org/User:nwan]<br>
+
''Student'': [http://elinux.org/User:nwan nwan]<br>
''Mentors'': [https://elinux.org/User:Rma]<br>
+
''Mentors'': [https://elinux.org/User:Rma rma]<br>
 
''Code'': [N/A]<br>
 
''Code'': [N/A]<br>
 
''Wiki'': http://elinux.org/BeagleBoard/GSoC/MediaIpStreaming<br>
 
''Wiki'': http://elinux.org/BeagleBoard/GSoC/MediaIpStreaming<br>
Line 34: Line 34:
  
 
===Description===
 
===Description===
The BeagleBone AI is equipped with a high amount of processing power with a Dual Core ARM Cortex-A15 chip as a main computing unit. This makes the AI a perfect fit for highly demanding applications regarding CPU consumption, like audio applications which have extremely strong realtime constraints.
+
The BeagleBone AI is equipped with a high amount of processing power due to the Dual Core ARM Cortex-A15 chip as a main computing unit and accompanying co-processors.  
A previous GSoC project ported a sound card driver from the BeagleBone Green/Black to the BeagleBoard-X15 (https://summerofcode.withgoogle.com/archive/2016/projects/5351212496977920/). This port will now be ported to the BegleBone AI. With the soud card driver successfully ported, the next step would be to port the AVB protocol driver stack from [https://elinux.org/BeagleBoard/GSoC/BeagleBoneAVB Beagle Bone AVB] enabling media streaming over the network. This would allow to use the Beaglebone AI as a media streaming device in professional audio applications and bring audio stream synchronisation features to the Beaglebone AI.
+
This makes the AI a perfect fit for highly demanding applications regarding CPU consumption, like audio applications which have extremely strong realtime constraints.  
 +
Professional audio/video studios have to guarantee for small latencies when transmitting media signals between different devices and different media channels in a transmitted stream need to be synchronized.
 +
Latency and Snychronicity is extremely important when transmitting e.g. a video channel together with the accompanying audio channel.
 +
Those two channels have to be transmitted in a manner, that lip  synchronicity can be guaranteed because humans are extremely sensitive to voice offset to accompanying video signals.
 +
 
 +
To bring media ip streaming capabilities to the Beaglebone AI, the following steps are planned:
 +
A previous GSoC project ported a sound card driver from the BeagleBone Green/Black to the BeagleBoard-X15 (https://summerofcode.withgoogle.com/archive/2016/projects/5351212496977920/).  
 +
This port will now be ported to the BegleBone AI. With the sound card driver successfully ported, the next step would be to port the AVB protocol driver stack from [https://elinux.org/BeagleBoard/GSoC/BeagleBoneAVB Beagle Bone AVB] enabling media streaming over the network.  
 +
This would allow to use the Beaglebone AI as a media streaming device in professional audio/media applications and bring audio stream synchronisation features to the Beaglebone AI.
 +
Thus allowing for tight synchronization between different audio and video streams which are transmitted over the network.
  
 
===Timeline===
 
===Timeline===
Line 47: Line 56:
 
| May 18 || Pre-work complete, Coding officially begins!
 
| May 18 || Pre-work complete, Coding officially begins!
 
|-
 
|-
| May 25 || Milestone #1, Introductory YouTube video
+
| May 25 || Milestone #1, Introductory YouTube video, review of existing drivers for ctag face audio interface, identifying challenges for porting drivers to Beagle AI and selection of appropriate kernel, basis for drivers is https://elinux.org/BeagleBoard/GSoC/2016_Projects#Project:_Porting_the_CTAG_face2.7C4_multichannel_soundcard_drivers_to_BeagleBoard-X15_.28AM5728_SoC.29._Create_library_to_make_use_of_AM5728_DSPs_.28C66x.29.
 
|-
 
|-
| June 1 || Milestone #2
+
| June 1 || Milestone #2 Implementation / porting of ALSA audio drivers for ctag face to Beagle AI --> toolchain setup, driver adoptions, coding
 
|-
 
|-
| June 8 || Milestone #3
+
| June 8 || Milestone #3 Port of sound card drivers, testing, performance check
 
|-
 
|-
| June 15 18:00 UTC || Milestone #4, Mentors and students can begin submitting Phase 1 evaluations
+
| June 15 18:00 UTC || Milestone #4, Mentors and students can begin submitting Phase 1 evaluations, finalzing port of ctag face audio card driver to Beagle AI
 
|-
 
|-
 
| June 19 18:00 UTC || Phase 1 Evaluation deadline
 
| June 19 18:00 UTC || Phase 1 Evaluation deadline
 
|-
 
|-
| June 22 || Milestone #5
+
| June 22 || Milestone #5 Review of existing AVB network driver architecture for real-time audio streaming, basis is https://elinux.org/BeagleBoard/GSoC/2017_Projects#Project:_BeagleBone_AVB_Stack , identifying challenges for porting to Beagle AI
 
|-
 
|-
| June 29 || Milestone #6
+
| June 29 || Milestone #6 Implementation / porting of ALSA AVB network drivers to Beagle AI --> toolchain setup, driver adoptions
 
|-
 
|-
| July 6 || Milestone #7
+
| July 6 || Milestone #7 AVB ALSA drivers implementation for Beagle AI
 
|-
 
|-
 
| July 13 18:00 UTC || Milestone #8, Mentors and students can begin submitting Phase 2 evaluations
 
| July 13 18:00 UTC || Milestone #8, Mentors and students can begin submitting Phase 2 evaluations
Line 67: Line 76:
 
| July 17 18:00 UTC || Phase 2 Evaluation deadline
 
| July 17 18:00 UTC || Phase 2 Evaluation deadline
 
|-
 
|-
| July 20 || Milestone #9
+
| July 20 || Milestone #9 Joining AVB ALSA drivers with ctag face audio card drivers
 
|-
 
|-
| July 27 || Milestone #10
+
| July 27 || Milestone #10 Performance and integration testing of driver ports
 
|-
 
|-
| August 3 || Milestone #11, Completion YouTube video
+
| August 3 || Milestone #11, Completion YouTube video, merge request of driver architecture for mainline
 
|-
 
|-
 
| August 10 - 17 18:00 UTC || Final week: Students submit their final work product and their final mentor evaluation
 
| August 10 - 17 18:00 UTC || Final week: Students submit their final work product and their final mentor evaluation
Line 79: Line 88:
  
 
===Experience and approach===
 
===Experience and approach===
During my bachelor's degree I had several courses like programming in c, programming in c++, operating systems and embedded system programming which layed down the basis for  
+
During my bachelor's degree in information technology I had several courses like programming in c, programming in c++, operating systems and embedded system programming which layed down the basis for  
working with developing for hardware. Due to my additional bachelor's degree in audio production I have additional experience in audio applications and audio and media codecs, which will help me to understand the theory behind the different needed algorithms.
+
developing embedded software. Due to my additional bachelor's degree in audio production I have additional experience in audio applications and audio and media codecs, which will help me to understand the theory behind the different needed algorithms.
 
With my previous development work for the [https://github.com/ctag-fh-kiel/ctag-straempler Strämpler project] I already have experience in working on complex embedded c projects and which potential pitfalls could occur.
 
With my previous development work for the [https://github.com/ctag-fh-kiel/ctag-straempler Strämpler project] I already have experience in working on complex embedded c projects and which potential pitfalls could occur.
  
Line 91: Line 100:
  
 
===Benefit===
 
===Benefit===
If successfully completed, what will its impact be on the BeagleBoard.org community? Include quotes from BeagleBoard.org community members who can be found on http://beagleboard.org/discuss and http://bbb.io/gsocchat.
+
Equipping the Beaglebone AI with media ip streaming capabilities would allow the Beaglebone.org community to use those capabilities to implement the system in professional media applications.
 +
The community could also implement further media protocols like AES/Ravenna to allow the usage of the AI for even more media streaming tasks.
  
 
==Misc==
 
==Misc==

Revision as of 08:56, 25 March 2020


Proposol of equipping the Beaglebone AI with Media IP Streaming capabilities

{{#ev:youtube|Jl3sUq2WwcY||right|BeagleLogic}}

This project will equip the Beagleboard AI with Media IP Streaming capabilities, by porting the sound card drivers for CTAG face2|4 Audio Card and the AVB protocol stack from Beagle Bone AVB to the Beaglebone AI.

Student: nwan
Mentors: rma
Code: [N/A]
Wiki: http://elinux.org/BeagleBoard/GSoC/MediaIpStreaming
GSoC: [N/A]

Status

This project is currently just a proposal.

Proposal

All requirements have been fullfilled, the Pull Request can be found here #139

About you

IRC: nwan
Github: NiklasWan
School: Kiel University of Applied Sciences
Country: Germany
Primary languages: German, English
Typical work hours: 8AM-5PM CET
Previous GSoC participation: I want to participate at GSoC because I want to gather experience in working within an open source community and try to apply theoretical knowledge into the practical domain. Also I hope to learn new awesome things. This would be my first time participating in GSoC.

About your project

Project name: Media Ip Streaming

Description

The BeagleBone AI is equipped with a high amount of processing power due to the Dual Core ARM Cortex-A15 chip as a main computing unit and accompanying co-processors. This makes the AI a perfect fit for highly demanding applications regarding CPU consumption, like audio applications which have extremely strong realtime constraints. Professional audio/video studios have to guarantee for small latencies when transmitting media signals between different devices and different media channels in a transmitted stream need to be synchronized. Latency and Snychronicity is extremely important when transmitting e.g. a video channel together with the accompanying audio channel. Those two channels have to be transmitted in a manner, that lip synchronicity can be guaranteed because humans are extremely sensitive to voice offset to accompanying video signals.

To bring media ip streaming capabilities to the Beaglebone AI, the following steps are planned: A previous GSoC project ported a sound card driver from the BeagleBone Green/Black to the BeagleBoard-X15 (https://summerofcode.withgoogle.com/archive/2016/projects/5351212496977920/). This port will now be ported to the BegleBone AI. With the sound card driver successfully ported, the next step would be to port the AVB protocol driver stack from Beagle Bone AVB enabling media streaming over the network. This would allow to use the Beaglebone AI as a media streaming device in professional audio/media applications and bring audio stream synchronisation features to the Beaglebone AI. Thus allowing for tight synchronization between different audio and video streams which are transmitted over the network.

Timeline

Provide a development timeline with a milestone each of the 11 weeks and any pre-work. (A realistic timeline is critical to our selection process.)

Mar 30 Proposal complete, Submitted to https://summerofcode.withgoogle.com
Apr 27 Proposal accepted or rejected
May 18 Pre-work complete, Coding officially begins!
May 25 Milestone #1, Introductory YouTube video, review of existing drivers for ctag face audio interface, identifying challenges for porting drivers to Beagle AI and selection of appropriate kernel, basis for drivers is https://elinux.org/BeagleBoard/GSoC/2016_Projects#Project:_Porting_the_CTAG_face2.7C4_multichannel_soundcard_drivers_to_BeagleBoard-X15_.28AM5728_SoC.29._Create_library_to_make_use_of_AM5728_DSPs_.28C66x.29.
June 1 Milestone #2 Implementation / porting of ALSA audio drivers for ctag face to Beagle AI --> toolchain setup, driver adoptions, coding
June 8 Milestone #3 Port of sound card drivers, testing, performance check
June 15 18:00 UTC Milestone #4, Mentors and students can begin submitting Phase 1 evaluations, finalzing port of ctag face audio card driver to Beagle AI
June 19 18:00 UTC Phase 1 Evaluation deadline
June 22 Milestone #5 Review of existing AVB network driver architecture for real-time audio streaming, basis is https://elinux.org/BeagleBoard/GSoC/2017_Projects#Project:_BeagleBone_AVB_Stack , identifying challenges for porting to Beagle AI
June 29 Milestone #6 Implementation / porting of ALSA AVB network drivers to Beagle AI --> toolchain setup, driver adoptions
July 6 Milestone #7 AVB ALSA drivers implementation for Beagle AI
July 13 18:00 UTC Milestone #8, Mentors and students can begin submitting Phase 2 evaluations
July 17 18:00 UTC Phase 2 Evaluation deadline
July 20 Milestone #9 Joining AVB ALSA drivers with ctag face audio card drivers
July 27 Milestone #10 Performance and integration testing of driver ports
August 3 Milestone #11, Completion YouTube video, merge request of driver architecture for mainline
August 10 - 17 18:00 UTC Final week: Students submit their final work product and their final mentor evaluation
August 17 - 24 18:00 UTC Mentors submit final student evaluations

Experience and approach

During my bachelor's degree in information technology I had several courses like programming in c, programming in c++, operating systems and embedded system programming which layed down the basis for developing embedded software. Due to my additional bachelor's degree in audio production I have additional experience in audio applications and audio and media codecs, which will help me to understand the theory behind the different needed algorithms. With my previous development work for the Strämpler project I already have experience in working on complex embedded c projects and which potential pitfalls could occur.

Contingency

If I get stuck and my mentor is not around I will follow the following steps in displayed order:

  1. Search the internet for the problem.
  2. Serach through literature acquired during milestone #1.
  3. Ask in the GSoC IRC, if fellow students know a solution to the specific problem.
  4. If the problem is still not solved, postpone the problem until mentor is available again and work on another part of the project.

Benefit

Equipping the Beaglebone AI with media ip streaming capabilities would allow the Beaglebone.org community to use those capabilities to implement the system in professional media applications. The community could also implement further media protocols like AES/Ravenna to allow the usage of the AI for even more media streaming tasks.

Misc

Link to pull request #139.

Suggestions

Is there anything else we should have asked you?