FMUSER Wirless Transmit Video and Audio Máis fácil!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> Albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerí
eu.fmuser.org -> éuscaro
be.fmuser.org -> bielorruso
bg.fmuser.org -> Búlgaro
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chinés (simplificado)
zh-TW.fmuser.org -> Chinés (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> Checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estoniano
tl.fmuser.org -> filipino
fi.fmuser.org -> finés
fr.fmuser.org -> Francés
gl.fmuser.org -> galego
ka.fmuser.org -> xeorxiano
de.fmuser.org -> alemán
el.fmuser.org -> Grego
ht.fmuser.org -> crioulo haitiano
iw.fmuser.org -> Hebreo
hi.fmuser.org -> hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandés
id.fmuser.org -> indonesio
ga.fmuser.org -> irlandés
it.fmuser.org -> Italiano
ja.fmuser.org -> xaponés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituano
mk.fmuser.org -> macedonio
ms.fmuser.org -> malaio
mt.fmuser.org -> maltés
no.fmuser.org -> Norwegian
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> Portugués
ro.fmuser.org -> Romanés
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> Eslovaco
sl.fmuser.org -> Esloveno
es.fmuser.org -> castelán
sw.fmuser.org -> Suahili
sv.fmuser.org -> Sueco
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> ucraíno
ur.fmuser.org -> urdú
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
Prefaciar
O algoritmo de compresión de vídeo H264 é agora sen dúbida o máis utilizado e o máis popular de todas as técnicas de compresión de vídeo. Coa introdución de bibliotecas de código aberto como x264 / openh264 e ffmpeg, a maioría dos usuarios xa non necesitan investigar demasiado sobre os detalles de H264, o que reduce moito o custo das persoas que usan H264.
Pero para facer un bo uso do H264, aínda temos que descubrir os principios básicos do H264. Hoxe botaremos unha ollada aos principios básicos de H264.
Descrición xeral do H264
A tecnoloxía de compresión H264 utiliza principalmente os seguintes métodos para comprimir datos de vídeo. incluír:
A compresión de predición intra-cadro resolve o problema da redundancia de datos espaciais.
A compresión de predición entre fotogramas (estimación de movemento e compensación) resolve o problema da redundancia de datos de dominio de tempo.
Transformada de coseno discreto enteiro (DCT), que transforma a correlación espacial en datos irrelevantes no dominio de frecuencia e logo cuantifícaa.
Compresión CABAC.
O marco comprimido divídese en: marco I, marco P e marco B:
Marco I: marco clave, usando tecnoloxía de compresión intra-marco.
Marco P: marco de referencia cara adiante, cando se comprime, só se refire ao marco procesado previamente. Utiliza a tecnoloxía de compresión de audio de cadros.
Marco B: marco de referencia bidireccional. Durante a compresión, refírese ao marco anterior e ao seguinte. Empregando tecnoloxía de compresión entre fotogramas.
Ademais dos fotogramas I / P / B, tamén hai secuencias de imaxes GOP.
GOP: Entre dous fotogramas I hai unha secuencia de imaxes e só hai un fotograma I nunha secuencia de imaxes. Como se mostra a continuación:
Agora describiremos a tecnoloxía de compresión H264 en detalle.
Tecnoloxía de compresión H264
O principio básico de H264 é realmente moi sinxelo, imos describir brevemente o proceso de compresión de datos H264. Os fotogramas de vídeo capturados pola cámara (calculados a 30 fotogramas por segundo) envíanse ao buffer do codificador H264. O codificador primeiro debe dividir os macrobloques para cada imaxe.
Toma a seguinte foto como exemplo:
Macrobloque de partición
H264 usa por defecto unha área 16X16 como bloque macro e tamén se pode dividir en tamaño 8X8.
Despois de dividir o bloque macro, calcule o valor do píxel do bloque macro.
Por analoxía, calcúlase o valor do píxel de cada macrobloque nunha imaxe e todos os macrobloques se procesan do seguinte xeito.
Sub-bloque
H264 usa macrobloques 16X16 para imaxes relativamente planas. Non obstante, para conseguir unha taxa de compresión máis alta, tamén se poden dividir subblocos máis pequenos en macrobloques 16X16. O tamaño do sub-bloque pode ser 8X16, 16X8, 8X8, 4X8, 8X4, 4X4, que é moi flexible.
Na imaxe superior, a maioría dos macroblocos 16X16 no marco vermello teñen un fondo azul e parte da imaxe das tres aguias está debuxada neste macrobloc. Para procesar mellor as imaxes parciais das tres aguias, varios subblocos H264 divídense en macrobloques 16X16.
Deste xeito, despois da compresión dentro do cadro, pódense obter datos máis eficientes. A figura seguinte é o resultado de comprimir os macroblocos anteriores usando mpeg-2 e H264 respectivamente. A metade esquerda é o resultado da compresión despois da división do sub-bloque MPEG-2 e a metade dereita é o resultado da compresión do sub-bloque H264. Pódese ver que o método de división H264 ten máis vantaxes.
Despois de dividir o bloque macro, pódense agrupar todas as imaxes do búfer do codificador H264.
Agrupación de cadros
Para os datos de vídeo, hai principalmente dous tipos de redundancia de datos, un é a redundancia de datos no tempo e o outro é a redundancia de datos no espazo. Entre eles, a redundancia de datos no tempo é a maior. Primeiro falemos do problema de redundancia do tempo de datos de vídeo.
Por que a redundancia temporal é a maior? Supoñendo que a cámara capta 30 fotogramas por segundo, os datos destes 30 fotogramas están relacionados na súa maioría. Tamén é posible que máis de 30 fotogramas de datos, decenas de fotogramas ou centos de fotogramas de datos estean particularmente relacionados.
De feito, para estes fotogramas moi relacionados só necesitamos gardar un fotograma de datos e pódense predicir outros fotogramas a partir deste fotograma segundo certas regras, polo que os datos de vídeo teñen a maior redundancia de tempo.
Para conseguir que os fotogramas relevantes comprimen datos a través do método de predición, é necesario agrupar os fotogramas de vídeo. Entón, como determinar que certos cadros están estreitamente relacionados e poden agruparse? Vexamos un exemplo. A continuación móstrase un cadro de vídeo capturado dun grupo de bolas de billar en movemento. As bolas de billar rodan desde a esquina superior dereita ata a esquina inferior esquerda.
O codificador H264 sacará dous cadros adxacentes cada vez para comparar os macrobloques para calcular a semellanza dos dous cadros. Como se mostra a continuación:
A través da exploración de bloques de macro e da busca de bloques de macro, pódese comprobar que a correlación entre os dous cadros é moi alta. Ademais, compróbase que o grao de correlación deste grupo de cadros é moi alto. Polo tanto, os cadros anteriores pódense dividir nun grupo. O algoritmo é: nas imaxes adxacentes, os píxeles que xeralmente son diferentes só están nun 10%, a diferenza de brillo non supera o 2% e a diferenza de cromaticidade só cambia nun 1%. Pensamos que as gráficas pódense agrupar.
Neste grupo de cadros, despois da codificación, só conservamos os datos completos do primeiro post e os demais cadros calcúlanse facendo referencia ao cadro anterior. Ao primeiro fotograma chamámolo fotograma IDR / I e a outros fotogramas chamámolo fotograma P / B, polo que chamamos ao grupo de fotogramas de datos codificado GOP.
Estimación e compensación do movemento
Despois de agrupar os cadros no codificador H264, é necesario calcular os vectores de movemento dos obxectos do grupo de cadros. Tomando como exemplo o cadro de vídeo de billar móbil anterior, botemos unha ollada a como calcula o vector de movemento.
O codificador H264 saca primeiro dous fotogramas de datos de vídeo da cabeceira do búfer en secuencia e despois realiza a exploración de bloque de macros. Cando se atopa un obxecto nunha das imaxes, a busca realízase nas proximidades da outra imaxe (na xanela de busca). Se o obxecto se atopa noutra imaxe neste momento, entón pódese calcular o vector de movemento do obxecto. A seguinte imaxe mostra a posición da bola de billar despois de buscar.
A través da diferenza entre as posicións das bolas de billar na imaxe superior, pódese calcular a dirección e a distancia da imaxe da mesa. H264 rexistra a distancia e a dirección do movemento da pelota en cada cadro á súa vez e convértese no seguinte.
Despois de calcular o vector de movemento, resta a mesma parte (é dicir, a parte verde) para obter os datos de compensación. Ao final, só necesitamos comprimir e gardar os datos de compensación e, a continuación, a imaxe orixinal pode restaurarse ao descodificar. Os datos comprimidos só precisan rexistrar unha pequena cantidade de datos. Como segue:
Chamamos vector de movemento e compensación como tecnoloxía de compresión entre fotogramas, que resolve a redundancia de datos dos fotogramas de vídeo no tempo. Ademais da compresión entre fotogramas, a compresión de datos tamén debe realizarse dentro do fotograma. A compresión de datos dentro do marco resolve a redundancia de datos espaciais. Agora imos presentar a tecnoloxía de compresión dentro do cadro.
Predicción intra
O ollo humano ten un grao de recoñecemento da imaxe, é moi sensible ao brillo de baixa frecuencia e non é moi sensible ao brillo de alta frecuencia. Polo tanto, baseándose nalgunhas investigacións, pódense eliminar dunha imaxe datos que non son sensibles aos ollos humanos. Deste xeito, proponse a tecnoloxía intra predicción.
A compresión dentro do cadro de H264 é moi similar á JPEG. Despois de dividir unha imaxe en macrobloques, cada macrobloque pode predecirse en 9 modos. Busque o modo de predición máis próximo á imaxe orixinal.
A seguinte imaxe é o proceso de predición de cada bloque de macro en toda a imaxe.
A comparación entre a imaxe despois da predición intra e a imaxe orixinal é a seguinte:
Despois, a imaxe orixinal e a imaxe intrapredicida restan para obter un valor residual.
A continuación, garde a información do modo de predición que obtivemos antes, para poder restaurar a imaxe orixinal ao descodificar. O efecto é o seguinte:
Despois da compresión entre fotogramas e entre fotogramas, aínda que os datos son moi reducidos, aínda hai espazo para a optimización.
Fai DCT sobre datos residuais
Os datos residuais poden someterse a unha transformación de coseno discreto enteiro para eliminar a correlación dos datos e comprimir máis. Como se mostra na seguinte figura, o lado esquerdo é o bloque macro dos datos orixinais e o lado dereito é o bloque macro dos datos residuais calculados.
O macrobloque de datos residuais dixitalízase como se mostra na seguinte figura:
A conversión DCT realízase no macrobloc de datos residuais.
Despois de eliminar os datos asociados, podemos ver que os datos se comprimen aínda máis.
Despois de facer o DCT, non é suficiente e necesítase CABAC para a compresión sen perdas.
CABAC
A compresión intra-cadro anterior é unha técnica de compresión con perdas. Noutras palabras, despois de comprimir a imaxe, non se pode restaurar completamente. CABAC é unha tecnoloxía de compresión sen perdas.
A tecnoloxía de compresión sen perdas pode ser a máis familiar para todos: a codificación Huffman, un código curto para palabras de alta frecuencia, un código longo para palabras de baixa frecuencia para acadar o propósito da compresión de datos. O VLC usado en MPEG-2 é este tipo de algoritmo, tomamos AZ como exemplo, A pertence a datos de alta frecuencia e Z pertence a datos de baixa frecuencia. Vexa como se fai.
CABAC tamén é un código curto para datos de alta frecuencia e un código longo para datos de baixa frecuencia. Ao mesmo tempo, comprimirase en función do contexto, que é moito máis eficiente que o VLC. O efecto é o seguinte:
Agora substitúe AZ por un marco de vídeo e terá o seguinte aspecto.
Pola imaxe anterior é obvio que o esquema de compresión sen perdas que usa CACBA é moito máis eficiente que o VLC.
resumo
Neste punto, rematamos o principio de codificación H264. Este artigo fala principalmente dos seguintes puntos:
1. Jianyin introduciu algúns conceptos básicos en H264. Como o marco I / P / B, GOP.
2. Explicou detalladamente os principios básicos da codificación H264, incluíndo:
División de bloques macro
Agrupación de imaxes
Principio da tecnoloxía de compresión dentro do cadro
O principio da tecnoloxía de compresión entre cadros.
DCT
Principio de compresión CABAC.
|
Introduce o correo electrónico para obter unha sorpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> Albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerí
eu.fmuser.org -> éuscaro
be.fmuser.org -> bielorruso
bg.fmuser.org -> Búlgaro
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chinés (simplificado)
zh-TW.fmuser.org -> Chinés (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> Checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estoniano
tl.fmuser.org -> filipino
fi.fmuser.org -> finés
fr.fmuser.org -> Francés
gl.fmuser.org -> galego
ka.fmuser.org -> xeorxiano
de.fmuser.org -> alemán
el.fmuser.org -> Grego
ht.fmuser.org -> crioulo haitiano
iw.fmuser.org -> Hebreo
hi.fmuser.org -> hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandés
id.fmuser.org -> indonesio
ga.fmuser.org -> irlandés
it.fmuser.org -> Italiano
ja.fmuser.org -> xaponés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituano
mk.fmuser.org -> macedonio
ms.fmuser.org -> malaio
mt.fmuser.org -> maltés
no.fmuser.org -> Norwegian
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> Portugués
ro.fmuser.org -> Romanés
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> Eslovaco
sl.fmuser.org -> Esloveno
es.fmuser.org -> castelán
sw.fmuser.org -> Suahili
sv.fmuser.org -> Sueco
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> ucraíno
ur.fmuser.org -> urdú
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
FMUSER Wirless Transmit Video and Audio Máis fácil!
contacto
dirección:
No.305 Sala HuiLan Building No.273 Huanpu Road Guangzhou China 510620
categorías
boletín informativo