23
Praktikum: Informatik Hardware-Software-Co-Design Joachim Falk , Christian Zebelein 1 Friedrich-Alexander-Universität Erlangen-Nürnberg Joachim Falk

Praktikum: Informatik Hardware-Software-Co-Design · Praktikum: Informatik Hardware-Software-Co-Design Joachim Falk , Christian Zebelein 1 Friedrich-Alexander-Universität Erlangen-Nürnberg

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