Hi10P

Olá, pessoal. Essa página será usada para explicar a vocês o que é e como funciona o Hi10P, então, vamos lá.

O que é o Hi10p?

Hi10p é a sigla do “High 10-bits Profile” do AVC/H.264. Um profile, ou perfil, é um conjunto de regras que limitam o uso de alguns recursos na hora de encodar, com o objetivo de manter a compatibilidade com um certo conjunto de decoders (por exemplo, seu celular tem menos poder de processamento que o seu PC, portanto temos que limitar alguns recursos na hora de encodar um vídeo para seu celular). Um “High Profile” é um perfil com poucas limitações destinado principalmente as aplicações profissionais como edição de vídeo.

Por ser destinado ao mercado profissional, todos os perfis acima do “High Profile” do H.264 suportam mais que os tradicionais 8-bits de profundidade de cor. Vamos focar nesse artigo no Hi10p porque patches no final de 2010 adicionaram suporte a esse perfil no x264, tornando esse perfil antes restrito ao mercado profissional acessível a meros mortais (ou simplesmente a nós, fansubbers de animes/tokusatsu, que fomos os primeiros a adotá-lo em larga escala).?

O “10″ indica um encode em 10-bits por canal, diferente do tradicional 8-bits que usamos atualmente. Considerando o sistema binário, saímos de 256 maneiras diferentes de representar uma cor (2^8) para 1024 maneiras diferentes (2^10). Geralmente usamos o sistema de cor YUV ao invés do RGB na hora de encodar vídeos. Ele funciona basicamente com um canal representando o brilho (Y) e dois canais representando o espectro de cor (U e V). A vantagem desse sistema é levar em conta as limitações da visão humana, permitindo uma redução no uso de banda. Com 10-bits por canal, temos 1024 maneiras diferentes de representar o canal Y, 1024 para representar o U e 1024 para o V. Com isso temos 1.073.741.824 (1024x1024x1024) de representar cada pixel na imagem contra os tradicionais 16.777.216 (256x256x256) do sistema de 8-bits de cor.

Qual a vantagem de usar Hi10P?

O Hi10p melhora a eficiência do H.264. Isso significa que ou conseguimos a mesma qualidade que num encode de 8-bits usando menos bitrate, ou que no mesmo bitrate temos mais qualidade. Além disso, com mais maneiras de representar o espectro de cores, há uma redução dos problemas de color banding ou diminuição do uso de dithering para aumentar o espectro de cor (e como consequência, diminuir o tamanho do arquivo, pois deixa de ser aplicado mais ruído na imagem). Os 10-bits também ajudam a evitar artefatos clássicos do H.264 como mosquito noise, contouring e smearing.

Por que o Hi10p ajuda muito quando a fonte de vídeo é de 8-bits?

À primeira vista, o encode de 10-bits parece sempre ser maior que um encode de 8-bits, afinal, temos mais dados a serem processados. De certa forma, esse pensamento está certo se considerarmos vídeos sem compressão, porém, ao aplicar um sistema de compressão moderno como o H.264, a coisa muda de figura.

O que acontece é o seguinte: quanto encodado com 10-bits de cor, o processo de compressão é executado com pelo menos 10-bits de precisão contra 8-bits no caso contrário. Então, existem menos erros de truncamento, aumentando a eficiência do encoder.

Imagine o seguinte: um erro de um bit quando se tem 8-bits processando a informação significa que temos um número com 7-bits confiáveis. Para acontecer um erro na mesma magnitude com 10-bits, poderiam ter até 3 bits errados, pois 10-3=7. Ou seja, temos muito mais precisão, e com mais precisão, o encoder pode gastar menos bits tentando corrigir a informação guardada.

E por que todos não migram para o Hi10p?

Em encodes comerciais voltados ao mercado doméstico, provavelmente não veremos o Hi10p tão cedo. Isso porque o suporte a hardware é inexistente (por enquanto), e mesmo quando os primeiros hardwares passarem a suportar Hi10p (como o Ainovo Novo7), os hardwares antigos vão continuar não oferecendo suporte, porque na maioria dos casos, é necessário modificações no hardware em si e não no software. Além disso, estamos tratando de um “High Profile”, algo que deveria ser restrito ao mercado profissional. Para o mercado doméstico existe os perfis Baseline e o Mainline, ambos não suportando os 10-bits de cor.

Na scene, muitos grupos ainda usam o XviD como codec principal, então acreditamos que também vai demorar um pouco até eles começarem a adotar o Hi10p, até porque as regras da scene são rígidas, e quem não as segue pode ter o lançamento nuked (e ficar com o nome manchado). Na nossa opinião, do grupo TokuPlanet, o modo como as regras são pregadas para a scene estrangeira nem sempre fornece muita qualidade, mas isso mudou recentemente com o uso de encode constante (para quem conhece, usar crf 18~21 via x264), e não definir bitrate específico para encode.

A adoção mais forte do Hi10p até agora foi entre nós, fansubbers de animes/tokusatsu, já que animes são um dos tipos de fonte que mais se beneficiam com a redução de artefatos como banding. Mas mesmo entre os fansubbers, a adoção não é universal: alguns preferem manter a compatibilidade com aceleração via hardware, outros preferem que se lançamento seja usado em PCs mais antigos (o Hi10p consome mais poder de processamento que o perfil tradicional), outros ainda não viram muita vantagem em fazê-lo.

A verdade é que, em muitos casos, a falta de suporte limita bastante o uso do novo perfil. O Hi10p, por enquanto, só é suportado de forma decente nas versões mais recentes do ffmpeg/libav. Sem suporte a hardware e consumindo mais poder de processamento, você dificilmente conseguirá rodar um vídeo encodado com esse perfil num PC antigo ou num dispositivo embarcado.

Eu preciso de um monitor específico para poder assistir conteúdo Hi10P?

Não, o software de decodificação pode muito bem fazer um dithering para 8-bits caso você tenha um vídeo que originalmente era 10-bits (obviamente que num vídeo de 8-bits encodado em Hi10p não faz nenhuma diferença). Mesmo que você tenha um monitor que suporte 10-bits por canal (a.k.a. 30-bits/Deep Color), provavelmente vai ser necessário utilizar uma placa de vídeo profissional como a Quadro ou FirePro para conseguir uma saída real de 10-bits de cor.

Mas, para a maioria das pessoas, isso realmente não importa, pois o mercado está inundado de monitores TN+Film que tem “incríveis” 6-bits por canal (para conseguirem os 8-bits que são anunciados, eles adotam mecanismos de dithering interno). Fato é que somente monitores S-IPS tem realmente 8-bits de cor por canal, enquanto apenas alguns caros monitores profissionais suportam 10-bits de cor (e a grande maioria via dithering também).

De qualquer jeito, a melhora de qualidade e diminuição de artefatos é visível em qualquer monitor.

O que eu preciso para rodar hoje meus vídeos em Hi10p?

Primeira opção: mplayer2 com o suporte de uma GUI.

Segunda opção: ffdshow-tryouts/CCCP

Terceira Opção: CoreAVC 3.0.1 (Mesmo tendo consertado vários bugs na versão original, ainda têm-se problemas com materiais Hi10P ao usar o CoreAVC. Nós apenas recomendamos o uso caso o seu processador seja antigo, pois o CoreAVC é capaz de transferir o processamento de vídeo do processador para a sua placa de vídeo, seja ele em 8-bit ou 10-bit. Estamos no aguardo de novas versões para poder opinar melhor a respeito).

Quarta Opção: VLC (Este nós da TokuPlanet não recomendamos, pois o suporte ao H.264 do VLC é originalmente falho e comprovado por diversos desenvolvedores da área, inclusive  pelo desenvolvedor do próprio x264.)

Texto escrito originalmente por m45t3r. Para maiores informações, visitem o seu site. (Ei, m34t3r, não fique triste porque kibamos o seu texto. Olhe pelo lado bom: se kibamos, é porque você escreveu muitíssimo bem o seu texto de forma clara e objetiva. Nós te agradecemos por ele ^^)

Se você precisar de mais ajuda a respeito disso, recomendamos visitar os seguintes blogs de fansubs gringos que abordam com maior clareza sobre o Hi10P:

Static-Subs

ibsubs.jp

–  Ryuumaru Fansubs

haruhichan.com

2 comentários sobre “Hi10P

  1. Opa Site bakana o de vocês, venho aqui perguntar se seria possivel algum de vocês informarem como encodar em 10 bit e se tem o programa para passar, ajudo um site de anime e queria muito aprender se possivel responda por email ou aqui mesmo no post.

    Desde já agradeço.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s