h.264/svc over p2p network
TRANSCRIPT
![Page 1: H.264/SVC over P2P Network](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/1.jpg)
1
![Page 2: H.264/SVC over P2P Network](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/10.jpg)
10
H.264/AVCH.264/AVC
MPEG4 parte 10 (ISO/IEC) = H.264/AVC (ITUT)
![Page 11: H.264/SVC over P2P Network](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/11.jpg)
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
![Page 12: H.264/SVC over P2P Network](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/18.jpg)
18
H.264/SVCH.264/SVCEscalabilidad EspacialEscalabilidad Espacial
Uso de Predicción InterLayer
![Page 19: H.264/SVC over P2P Network](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/19.jpg)
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)
![Page 20: H.264/SVC over P2P Network](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/26.jpg)
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
![Page 27: H.264/SVC over P2P Network](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/29.jpg)
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...
![Page 30: H.264/SVC over P2P Network](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062419/559e1d2a1a28abe95b8b47eb/html5/thumbnails/34.jpg)
34
Ruegos y PreguntasRuegos y Preguntas
Gracias por su atención!Alguna pregunta?
?