h.264/svc over p2p network

34
1

Upload: rameau1982

Post on 09-Jul-2015

733 views

Category:

Business


3 download

TRANSCRIPT

Page 1: H.264/SVC over P2P Network

1

Page 2: H.264/SVC over P2P Network

2

ÍndiceÍndice

IntroducciónH.264/AVCH.264/SVCSistema de TransmisiónEvaluación del SistemaResultadosLíneas FuturasRuegos y Preguntas

Page 3: H.264/SVC over P2P Network

3

Introducción:Introducción:Streaming de Vídeo sobre P2PStreaming de Vídeo sobre P2P

Objetivo:  permitir la distribución de vídeo en tiempo real desde cualquier lugar del mundo

Page 4: H.264/SVC over P2P Network

4

Introducción:Introducción:Streaming de Vídeo sobre P2PStreaming de Vídeo sobre P2P

SOLUCIÓN                NEUROCAST

Permite distribuir Vídeo sobre una red P2PStreaming MultifuenteTopología tipo MeshUtiliza el ancho de Banda de N usuarios para 

transmitir de forma conjuntaCliente y Servidor en uno: PEER

Page 5: H.264/SVC over P2P Network

5

Introducción:Introducción:NeuroCast y H.264/SVCNeuroCast y H.264/SVC

H.264/SVC  permite  separar  el  flujo  o  bitstream  en  subflujos  o substreams  que  podemos  repartir  en  canales  NeuroCast.  La combinación  de  estos  subflujos  dan  lugar  a  un  nuevo  flujo  que representa  versiones escaladas  temporal,  espacial  y  cualitativamente del original

OPTIMIZACIÓN del Sistema de Transmisión utilizandoSCALABLE VIDEO CODING (H.264/SVC)

Page 6: H.264/SVC over P2P Network

6

Introducción:Introducción:Iniciativas SimilaresIniciativas Similares

 P2P NextProyecto  Europeo  desarollado  por  diversas  Universidades  Europeas  sobre  la  TV sobre  IP  (IPTV) utilizando H.264/SVC y BitTorrent con un plugin para el navegador web mediante el reproductor multimedia VLC.

JoostIniciativa  privada  de  los  fundadores  de  Skype  como  medio  de  difusión  de  IPTV. Utiliza H.264/SVC y P2P presentado dentro de un entorno Flash y con el protocolo RTMFP de Adobe.

MiroIniciativa privada OpenSource basada en un sistema de visualización de VOD H.264/AVC sobre P2P. No es en tiempo Real.

 OctoshapeIniciativa privada muy similar a P2PNext utilizando H.264/AVC y P2P en tiempo real. Se basa en el uso de un plugin instalable para diversos reproductores habituales (por ejemplo Windows Media Player).

Page 7: H.264/SVC over P2P Network

7

Introducción:Introducción:NeuroCast y H.264/SVCNeuroCast y H.264/SVC

OBJETIVOS DEL PROYECTO:

I. Analizar el funcionamiento de SVC

II. Identificar los elementos sintácticos de SVC

III. Proponer un método eficiente de demultiplexado para 

adaptar el bitstream H.264/SVC a canales NeuroCast

IV. Evaluar los resultados del demultiplexado a partir del 

diseño de un multiplexor capaz de conciliar errores de 

transmisión

Page 8: H.264/SVC over P2P Network

8

Introducción:Introducción:Espacio de ColorEspacio de Color

RGB       YUV

RGB: Red – Green – Blue  son los colores primarios de la luz. No hay ningún tipo de compresión. Utilizado por las pantallas CRT, LCD, LED... iluminan por separado cada componente RGB

YUV: Espacio de color basado en 1 componente de Luminancia y 2 componentes de Crominancia. Codifica una imagen o vídeo en color teniendo en cuenta la percepción humana ya que somos más sensibles a la Luminancia que a la Crominancia. YUV = YCbCr

Y  = 0,299R + 0,587G + 0,114BU  = 0,492(B − Y)

= − 0,147R − 0,289G + 0,436BV  = 0,877(R − Y)

= 0,615R − 0,515G − 0,100B

Page 9: H.264/SVC over P2P Network

9

Introducción:Introducción:Medidas Objetivas de CalidadMedidas Objetivas de Calidad

Medidas destinadas a evaluar la correlación entre una secuencia de vídeo y otra. Si las usamos para comparar la secuencia original y la secuencia decodificada obtendremos medidas de calidad que sirven para evaluar la eficiencia del códec de vídeo.

PSNR: Peak Signal to Noise Ratio, cociente entre el valor máximo que puede haber en una secuencia al cuadrado y el error cuadrático medio de la secuencia.

PSNR=10log2n

−1 2

MSE

MSE=1N∑

i

N

x i−x 2

EFICIENCIA: depende de la PSNR y del Parámetro de Cuantización (QP) utilizado

Page 10: H.264/SVC over P2P Network

10

H.264/AVCH.264/AVC

MPEG­4 parte 10  (ISO/IEC)  =   H.264/AVC (ITU­T)

Page 11: H.264/SVC over P2P Network

11

H.264/AVCH.264/AVC

Predicción Intrapredicción (I) Interpredicción (P)Bipredicción (B)Transformación Transformada Discreta del Coseno (DCT)Codificación Entrópica Códigos Exp­Golomb Context Adaptive Variable Length Coding (CAVLC) Context Adaptive Binary Arithmetic Coding (CABAC)

FOTOGRAMA SLICE MACROBLOQUE

Page 12: H.264/SVC over P2P Network

12

H.264/AVCH.264/AVCPredicciónPredicción

Interpredicción

Bipredicción

Lista0 – Lista1Imágenes de referencia

Intrapredicción

Page 13: H.264/SVC over P2P Network

13

H.264/AVCH.264/AVCTransformaciónTransformación

La Transformación consigue que la mayoría de los coeficientes 

sean nulos y los que no lo son estén altamente incorrelados.́

Se utiliza la DCT:

A=a a a ab c −c −ba −a −a ac −b b c

a=

12

b= 12

cos π8 c= 1

2cos 3π8

Y=AXAT

Page 14: H.264/SVC over P2P Network

14

H.264/AVCH.264/AVCCodificación EntrópicaCodificación Entrópica

Códigos de Golomb:1   010→2   011→3   00100→4   00101→5   00110→.....CAVLC:coeff_tokentrailing_ones_sgn_flaglevel_prefixlevel_sufixtotal_zerosrun_before

CABAC:BinarizaciónSelección del Modelo según ContextoCodificación AritméticaActualización del modelo

Page 15: H.264/SVC over P2P Network

15

H.264/AVCH.264/AVCNivel de RedNivel de Red

Network Abstraction Layer Unit (NAL Unit)Video Coding Layer NAL Unit (VCL NAL Unit)NonVCL NAL UnitAccess Unit (AU)

Page 16: H.264/SVC over P2P Network

16

H.264/SVCH.264/SVC

Escalabilidad Temporal, Espacial y de Calidad (SNR)Nuevo tipo de predicción: InterLayer ­ IntraLayer

Page 17: H.264/SVC over P2P Network

17

H.264/SVCH.264/SVCEscalabilidad TemporalEscalabilidad Temporal

 GOP: nº de Access Units entre dos Slices tipo I o P. Niveles Temporales: log2 GOP 1

Page 18: H.264/SVC over P2P Network

18

H.264/SVCH.264/SVCEscalabilidad EspacialEscalabilidad Espacial

 Uso de Predicción InterLayer

Page 19: H.264/SVC over P2P Network

19

H.264/SVCH.264/SVCEscalabilidad de CalidadEscalabilidad de Calidad

(a)Fine Grain Scalability (MPEG­4) (b)lleva a errores de decodificación (MPEG­2)(c)Paso intermedio (d)Medium Grain Scalability(H.264/SVC)

Page 20: H.264/SVC over P2P Network

20

H.264/SVCH.264/SVCSintaxis NAL UnitsSintaxis NAL Units

NonVCL NAL Units:Cabecera de la NAL UnitInformación de la NAL UnitVCL NAL Units:Cabecera de la NAL UnitCabecera de la SliceInformación de la Slice

Cabecera de la NAL Unit en H.264/AVC:

Cabecera de la NAL Unit en H.264/SVC:

Page 21: H.264/SVC over P2P Network

21

H.264/SVCH.264/SVCSintaxis NAL UnitsSintaxis NAL Units

Tipos de NAL Units en SVC:

(1) Coded Slice of a nonIDR Picture

(5) Coded Slice of an IDR Picture

(6) Supplemental Enhancement Information (SEI)

(7) Sequence Parameter Set (SPS)

(8) Picture Parameter Set (PPS)

(14) Prefix NAL Unit

(15) Subset Sequence Parameter Set

(20) Coded Slice in SVC Extension

Page 22: H.264/SVC over P2P Network

22

H.264/SVCH.264/SVCSintaxis NAL UnitsSintaxis NAL Units

SEI Scalability Info:num_layers_minus1layer_iddependency_idquality_idtemporal_idframe_height_in_mbs_minus1

Coded Slice of a nonIDR Picture:first_mb_in_sliceslice_typepic_parameter_set_idpic_order_cnt_lsbdirect_spatial_mv_pred_flagmb_skip_run

Coded Slice in SVC Extension:store_ref_base_pic_flagref_layer_dq_idslice_skip_flagnum_mbs_in_slice_minus1

Page 23: H.264/SVC over P2P Network

23

Sistema de TransmisiónSistema de Transmisión

Transmisión   → DemultiplexorRecepción   → Multiplexor

Joint Scalable Video Model (JSVM)CodificadorDecodificadorSubmuestreadorAnalizador del BitStreamPSNR

Page 24: H.264/SVC over P2P Network

24

Sistema de TransmisiónSistema de TransmisiónDemultiplexorDemultiplexor

Demultiplexado por Tipo de NAL Unit

Demultiplexado por Tipo de Slice

Demultiplexado Híbrido

BitStream SVC   → DEMULTIPLEXOR   N → Canales P2P NeuroCast

Añade Overhead necesario para el multiplexado

Page 25: H.264/SVC over P2P Network

25

Sistema de TransmisiónSistema de TransmisiónMultiplexorMultiplexor

M Canales P2P NeuroCast   → MULTIPLEXOR → BitStream SVC

Detector de Pérdidas   RoundRobin, analiza el overhead→Buffer de Lectura/EscrituraConcicliación de Errores (Error Concealment)

Page 26: H.264/SVC over P2P Network

26

Sistema de TransmisiónSistema de TransmisiónMultiplexor – Error ConcealmentMultiplexor – Error Concealment

    La ocultación de errores o Error Concealment utiliza una serie de métodospara detectar la pérdida o falta dentro de un BitStream de una NAl Unit ygenerar una nueva Nal Unit en su lugar obteniendo un BitStream conforme alanexo B del estándar ITU­T y que es decodificable por cualquier decodificadorestándar. 

Comprobación del GOP 

Integridad del GOPIntegridad de cada AU

Generación de la nueva NAL Unit

Page 27: H.264/SVC over P2P Network

27

Sistema de TransmisiónSistema de TransmisiónMultiplexor – Error ConcealmentMultiplexor – Error Concealment

Integridad del GOP   → pic_order_cnt_lsb

Integridad AU → Scalability Information SEI 

0  0  0

1  0  0

1  1  0

AU Falta la NAL (1  0  0)

Page 28: H.264/SVC over P2P Network

28

Sistema de TransmisiónSistema de TransmisiónMultiplexor – Error ConcealmentMultiplexor – Error Concealment

Generación de la nueva NAL Unit:Aplicación a B Slices por requerimientos de JSVM

Métodos:Temporal Direct Frame Copy  (no lo usamos)Motion and Residual Upsampling 

Temporal Direct:no_inter_layer_pred_flag = 1slice_type = 1direct_spatial_mv_pred_flag = 0mb_skip_run = num_mbs_in_slice_minus1

Motion and Residual Upsampling:no_inter_layer_pred_flag = 0slice_type = 1direct_spatial_mv_pred_flag = 1mb_skip_flag = 1

Page 29: H.264/SVC over P2P Network

29

Evaluación del SistemaEvaluación del Sistema

 Escenario CIF: 352x288 píxels, 25 fpsDistribución Escalable del Flujo:

Capa Tipo Dimensiones FrameRate D  Q

0 QCIF 176x144 12.5 fps 0  0

1 CIF 352x288 25 fps 1  0

2 CIF 352x288 25 fps 1  1

Elección de los QP's

Capa D  Q QP

0 0  0 28

1 1  0 30

2 1  1 23

Elección del GOP e Intra­Period

GOP =  4Intra­Period = 8

Secuencia:I B B B P B B B I B B B P B B B I...

Page 30: H.264/SVC over P2P Network

30

Evaluación del SistemaEvaluación del Sistema

 Demultiplexor:

 Multiplexor:

Flujo SVC PSNR min BitRate min PSNR max BitRate max

canal0 32.31 dB 81.90 kbps 32.21 dB 81.90 kbps

canal0+canal1+ canal2

36.77 dB 282.11 kbps 39.52 dB 319.60 kbps

canal0+canal1+ canal2+ canal3

38.42 dB 674.37 kbps 42.68 dB 850.40 kbps

Podemos conciliar sólo el Canal 2 porque sólo contiene B's

Canal NeuroCast Slice / Capa BitRate (kbps) % del BitStream

0 Capa base (AVC) 81.90 10%

1 I's y P's / (1  0) 200.20 23.1%

2 B's / (1  0) y (1  1) 176.03 20.9%

3 I's y P's / (1  1) 392.27 46%

Page 31: H.264/SVC over P2P Network

31

Evaluación del SistemaEvaluación del Sistema

 Evolución de la PSNR del Flujo 1 en función de la Prob. de Pérdida del Canal 2

 Evolución de la PSNR del Flujo 2 en función de la Prob. de Pérdida del Canal 2

Page 32: H.264/SVC over P2P Network

32

ResultadosResultados

Se ha determinado la mejor opción de distribución de capas escalables en la codificación del H.264/SVC así como sus parámetros de codificación.

Se ha diseñado e  implementado  los elementos Demultiplexor  y Multiplexor consiguiendo una adaptación del flujo H.264/SVC a los Canales NeuroCast.

Se  ha  implementado  dos  métodos  de  conciliación  de  errores  consiguiendo una  respuesta  de  la  PSNR  muy  plana  en  función  de  la  probabilidad  de pérdidas de un canal.

La diferencia máxima de PSNR es de 10dB's y equivale a una diferencia de 770 kbps utilizando sólo el Canal 0 de NeuroCast o todos.

El Canal 0 puede ser decodificado directamente como H.264/AVC facilitando la  compatibilidad  con  este  tipo  de  decodificadores  muy  extendido actualmente.

Page 33: H.264/SVC over P2P Network

33

Líneas FuturasLíneas Futuras

Mejoras en el Buffer de Lectura/Escritura para la implementación en tiempo real.

Diseñar  nuevos  métodos  de  Error  Concealment  que  permitan  una mayor  indepencencia  en  los  canales  que  pueden  ser  Fiables  y  los que no.

Adaptar NeuroCast para que gestione una política de asignación de anchos de banda de  los canales y diversos métodos de protección frente a errores para garantizar QoS en los canales Fiables.

Page 34: H.264/SVC over P2P Network

34

Ruegos y PreguntasRuegos y Preguntas

Gracias por su atención!Alguna pregunta?

?