Upload
trandieu
View
218
Download
0
Embed Size (px)
Citation preview
Praktikum: Informatik Hardware-Software-Co-Design
Joachim Falk, Christian Zebelein
1Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Inhalt
� Motivation
� Das Problem
� Ein Lösungsansatz
2Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Ein Lösungsansatz
� Die Aufgabe
� Organisatorisches
Motivation
Idea
?
3Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Herausforderungen� Frühe Entwurfsentscheidungen sind maßgeblich für die
Eigenschaften des implementierten Systems am Ende des Entwurfsprozesses!
Motivation
Spezifikation
Abs
trak
tions
höhe
4Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Finale Implementierung
Implementierungsalternativen
Abs
trak
tions
höhe
Motivation
Idea
?
5Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Herausforderungen� Frühe Entwurfsentscheidungen sind maßgeblich für die
Eigenschaften des implementierten Systems am Ende des Entwurfsprozesses!
� Und man kann richtig viel falsch machen!
Inhalt
� Motivation
� Das Problem
� Ein Lösungsansatz
6Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Ein Lösungsansatz
� Die Aufgabe
� Organisatorisches
system
componenttask
hardwaresoftware
specification
Doppeldach
7
architecture
ISA
Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
logicinstruction
RTL
gateµµµµArch implementation
Quelle: A. Gerstlauer, C. Haubelt, A. Pimentel, T. Stefanov, D. Gajski, J. Teich: Electronic System-Level Synthesis Methodologies, IEEE TCAD 2009
� Räder
� Antriebsstrang
� Motor
� Infotainmentnetzwerk
� Steuerungsnetzwerk
� Lichtanlage
� Leistungselektronik
Die Architektur
8
� Leistungselektronik
Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Die H.264 Spezifikation� Rahmen der H.264/AVC Spezifikation: Nur Decoder und
Format des Bitstroms sind spezifiziert:� Dekodiertes Video soll auf allen Geräten qualitativ gleich
aussehen
Vorverarbeitung EnkodierungBitstromVideoVideo
(Quelle)
9Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Vorverarbeitung Enkodierung
Kanal /Speicher
NachbearbeitungFehlerbehandlung Dekodierung
BitstromVideo
(Quelle)
Video(Senke)
Die H.264 Spezifikation
EntropyDecoding
InverseTransform
DeblockingFilter+
QuantizedCoefficients
DecodedMacroblock
Reordering
Intra/Inter-Mode Selection
Dekodierung
10Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Decoding
Motion Comp.Prediction
Intra-FramePrediction
Motion Data
Memory
Selection
Die H.264 Spezifikation
11Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Bildströme komprimieren unter Ausnutzung von� Räumlicher Redundanz� Zeitlicher Redundanz
Die H.264 SpezifikationFrame0 I Frame1 P Frame3 PFrame2 B Frame4 I
12Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Verschiedene Frametypen� I-Frame => Nur räumliche Redundanz (INTRA – Prediction)� P-Frame => Auch zeitliche Redundanz (INTER – Prediction)� B-Frame => INTER – Prediction über mehrere Referenzbilder
Die H.264 SpezifikationFrame0 I Frame1 P Frame3 P Frame2 B Frame4 I
13Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Bildumordnung notwendig um Kausalität zu erhalten
Die H.264 SpezifikationFrame0 I Frame1 P Frame3 P Frame2 B Frame4 I
14Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� INTER/INTRA-Prediction nicht immer 100% korrekt� Differenzbild übertragen
Die H.264 Spezifikation
EntropyDecoding
InverseTransform
DeblockingFilter+
Intra-Frame
QuantizedCoefficients
DecodedMacroblock
Reordering
Intra/Inter-Mode Selection
15Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Decoding
Motion Comp.Prediction
Intra-FramePrediction
Motion Data
Memory
Inhalt
� Motivation
� Das Problem
� Ein Lösungsansatz
16Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Ein Lösungsansatz
� Die Aufgabe
� Organisatorisches
Entwurfsentscheidungen
Idea
?
17Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Herausforderungen� Frühe Entwurfsentscheidungen sind maßgeblich für die
Eigenschaften des implementierten Systems am Ende des Entwurfsprozesses!
� Und man kann richtig viel falsch machen!Deshalb wird ein Systematischer Ansatz benötigt Entwurfsentscheidungen durchzuführen und zu bewerten!
Entwurfsentscheidungen| Wo läuft was?
� Aktoren das H.264 Modells müssen auf verschiedene CPU/DSP/FPGA gebunden werden.
18Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Entwurfsentscheidungen| Speicher?
� Nicht nur Rechenkraft auch Speicher braucht das System
Wo dieser sitzt und was darin gespeichert wird hat entscheidenden Einfluss auf das System!
19Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Entwurfsentscheidungen| Designfluss
SystemCTM
Modell
Komponenten-
bibliothek
Modell
ArchitekturExploration
Forte Cynthesizer
VerhaltenssyntheseDecoding
EntropyDecodin
g
InverseTransfor
m
Deblocking
Filter+
Motion Comp.Prediction
Intra-FramePrediction
QuantizedCoefficients
Motion Data
Intra/Inter
Memory
DecodedMacroblock Reorderin
g
20Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
Auswahl
Prototyp
Generierung
OptimierteEntwurfsent-scheidungen
Inhalt
� Motivation
� Das Problem
� Ein Lösungsansatz
21Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� Ein Lösungsansatz
� Die Aufgabe
� Organisatorisches
Die Aufgabe
/*!************************************************************************************** \file mv_prediction.c** \brief* Motion Vector Prediction Functions** \author* Main contributors (see contributors.h for copyright, address and affiliation details)* - Alexis Michael Tourapis <[email protected]>* - Karsten Sühring <[email protected]>**************************************************************************************/
#include "global.h"
/*!************************************************************************* \brief* Get motion vector predictor*************************************************************************/static void GetMotionVectorPredictorMBAFF (Macroblock *currMB,
EntropyDecoding
InverseTransform
DeblockingFilter+
Motion Comp.Prediction
Intra-FramePrediction
Quant.Coeff.
Motion Data
Memory
DecodedMacroblock Reordering
Intra/Inter-Mode Selection
22Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
static void GetMotionVectorPredictorMBAFF (Macroblock *currMB, PixelPos *block, // <--> block neighborsshort pmv[2],short ref_frame,char **refPic,short ***tmp_mv,int mb_x,int mb_y,int blockshape_x,int blockshape_y)
{int mv_a, mv_b, mv_c, pred_vec=0;int mvPredType, rFrameL, rFrameU, rFrameUR;int hv;VideoParameters *p_Vid = currMB->p_Vid;
mvPredType = MVPRED_MEDIAN;
if (currMB->mb_field){rFrameL = block[0].available
? (p_Vid->mb_data[block[0].mb_addr].mb_field? refPic[block[0].pos_y][block[0].pos_x]
: refPic[block[0].pos_y][block[0].pos_x] * 2) : -1;rFrameU = block[1].available
? (p_Vid->mb_data[block[1].mb_addr].mb_field? refPic[block[1].pos_y][block[1].pos_x]
: refPic[block[1].pos_y][block[1].pos_x] * 2) : -1;rFrameUR = block[2].available
? (p_Vid->mb_data[block[2].mb_addr].mb_field? refPic[block[2].pos_y][block[2].pos_x]
: refPic[block[2].pos_y][block[2].pos_x] * 2) : -1;}else{rFrameL = block[0].available
? (p_Vid->mb_data[block[0].mb_addr].mb_field? refPic[block[0].pos_y][block[0].pos_x] >>1: refPic[block[0].pos_y][block[0].pos_x]) : -1;
rFrameU = block[1].available? (p_Vid->mb_data[block[1].mb_addr].mb_field? refPic[block[1].pos_y][block[1].pos_x] >>1: refPic[block[1].pos_y][block[1].pos_x]) : -1;
rFrameUR = block[2].available? (p_Vid->mb_data[block[2].mb_addr].mb_field? refPic[block[2].pos_y][block[2].pos_x] >>1: refPic[block[2].pos_y][block[2].pos_x]) : -1;
}
Parallelisierung
Herausforderungen� Was ist Parallelisierbar?� Wie ist der Datenfluss?� Wie kann der Speicher
aufgeteilt werden?
Decoding
Motion Data
Organisatorisches
� Praktikumstermin� Do. 9:00-11:30, 13:30-17:00 Uhr, Raum 204 am LS12
� Logins für Praktikum/Remotezugriff� ssh [email protected]
� ls -al Desktop/Tutorials <= Folgetermin startet hier� ls -al Desktop/Doku <= Für Ungeduldige
23Friedrich-Alexander-Universität Erlangen-Nürnberg
Joachim Falk
� ls -al Desktop/Doku <= Für Ungeduldige(Wir schlagen vor Journal_Übersicht_1.pdf durchzulesen)
� ls -al Desktop/H264/JM <= H.264 Referenzimplementierung
� Nächster Termin� C++ Einführung� Einführung in SystemC