Upload
rameau1982
View
733
Download
3
Embed Size (px)
Citation preview
1
2
ÍndiceÍndice
IntroducciónH.264/AVCH.264/SVCSistema de TransmisiónEvaluación del SistemaResultadosLíneas FuturasRuegos y Preguntas
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
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
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)
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).
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
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
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
10
H.264/AVCH.264/AVC
MPEG4 parte 10 (ISO/IEC) = H.264/AVC (ITUT)
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 ExpGolomb Context Adaptive Variable Length Coding (CAVLC) Context Adaptive Binary Arithmetic Coding (CABAC)
FOTOGRAMA SLICE MACROBLOQUE
12
H.264/AVCH.264/AVCPredicciónPredicción
Interpredicción
Bipredicción
Lista0 – Lista1Imágenes de referencia
Intrapredicción
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
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
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)
16
H.264/SVCH.264/SVC
Escalabilidad Temporal, Espacial y de Calidad (SNR)Nuevo tipo de predicción: InterLayer IntraLayer
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
18
H.264/SVCH.264/SVCEscalabilidad EspacialEscalabilidad Espacial
Uso de Predicción InterLayer
19
H.264/SVCH.264/SVCEscalabilidad de CalidadEscalabilidad de Calidad
(a)Fine Grain Scalability (MPEG4) (b)lleva a errores de decodificación (MPEG2)(c)Paso intermedio (d)Medium Grain Scalability(H.264/SVC)
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:
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
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
23
Sistema de TransmisiónSistema de Transmisión
Transmisión → DemultiplexorRecepción → Multiplexor
Joint Scalable Video Model (JSVM)CodificadorDecodificadorSubmuestreadorAnalizador del BitStreamPSNR
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
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)
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 ITUT 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
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)
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
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 IntraPeriod
GOP = 4IntraPeriod = 8
Secuencia:I B B B P B B B I B B B P B B B I...
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%
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
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.
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.
34
Ruegos y PreguntasRuegos y Preguntas
Gracias por su atención!Alguna pregunta?
?