sábado, 13 de abril de 2019

Instalando o codificador HEVC (H.265) Kvazaar no Ubuntu

Kvazaar é um codificador de vídeo Open Source para o padrão HEVC (H.265) desenvolvido pelo Ultra Video Group da Univesidade de Tampere, Finland (http://ultravideo.cs.tut.fi/#encoder). O código está disponível no GitHub em https://github.com/ultravideo/kvazaar.

O Kvazaar é o único programa até hoje (além do software de referência) que codifica os tiles com restrição do vetor de movimento. Essa opção é importante para quem deseja segmentar um vídeo em blocos (tiles) de forma que durante a decodificação esses blocos possam ser reproduzidos separadamente. Normalmente isso não é possível porque o compensador de movimento do codificador cria dependências espaciais para a decodificação.
Resultado de imagem para move vector hevc tiled
Fonte: Concolato, Cyril et al. “Adaptive Streaming of HEVC Tiled Videos Using MPEG-DASH.” IEEE Transactions on Circuits and Systems for Video Technology 28 (2018): 1981-1992.

Características do Kvazaar:
Funções
Versão atual
Profiles
Main, Main 10
Formato de entrada
YUV (dimensões divisíveis por 2)
Formato de saída
NAL (suportado checksum)
Bits de profundidade
8, 10
Subamostragem
4.2:0
PCM
Yes,
Configurações de codificação
AI, LP, RA, LB
Tipos de quadros
I, P, B
Tipos de paralelismo
Tiles, Wavefront
Tamanhos dos CUs
64, 32, 16, 8
Tamanhos dos TUs
32, 16, 8, 4
Tamanhos dos PUs, Intra
32, 16, 8, 4
Tamanhos dos PUs, Inter
64, 32, 16, 8 (SMP+AMP)
Modos de predição Intra
All luma (DC, planar, 33 angular), Chroma usa mesmo da luminância
Precisão do MV da Luminância
1/4 pel
Precisão do MV da Crominância
1/8 pel
Modos de codificação
Intra, Inter, Skip, Merge
Algoritmos IME
HEXB, FS, TZ
Numero de imagens de referência
até 15
Métricas dos modos de decisão
SATD, SAD, and SSD
Otimização da taxa-distorção
Partial (inclui RDOQ)
Codificação entrópica
CABAC
Filtro  de Loop
Deblocking Filter, Sample-adaptive offset (Edge+Band mode)
Codificação residual
Coefficients,4x4 transform skip,Trans/quant Bypass
Controle de taxa
ABR 1-pass
*Fontehttp://ultravideo.cs.tut.fi/#encoder.
*OBS.: É difícil traduzir algumas coisas.

Instalação em Ubuntu 18.04

Passo 1: Dependências.

Instale as dependências para compilar o Kvazaar. São elas: automake, autoconf, libtool, m4, build-essential e yasm. O Yasm não é obrigatório, mas algumas otimizações dependem dele. O Git é necessário se você quiser clonar o repositório em sua versão mais atual.

sudo apt-get install automake autoconf libtool m4 build-essential yasm git

Passo 2: Baixando o código

Baixe o último lançamento em https://github.com/ultravideo/kvazaar/releases e descompacte seus arquivos ou clone o repositório em https://github.com/ultravideo/kvazaar. No momento de escrita desse artigo a versão mais recente é a v1.2.0. e os procedimentos podem mudar em versões futuras.

Clonando repositório com git:
git clone https://github.com/ultravideo/kvazaar.git

Passo 3: Compilando

Entre no diretório principal do código e execute os seguintes comandos:



*OBS.: Pode ser necessário atualizar o cache de bibliotecas dinâmicas.
sudo ldconfig

Passo 4: Testando

kvazaar --version


Corrigindo inicialização do Ubuntu 16.04 com GRUB após instalar o Windows 7 em dual boot

Primeiramente eu tinha o Ubuntu 16.04. Após instalar o Windows 7 em uma nova partição, não aparecia nenhum menu de inicialização e o Ubuntu não apareceu mais nas listas de sistemas operacionais do Windows.

Para corrigir isso:

1. Fiz boot por um Live CD com Linux
2. Listar partições e identificar a partição root do linux:
# fdisk -l
3. Montar a partição em /mnt:
# mount /dev/sda1 /mnt
4. Instalar o grub no disco identificando o root como /mnt
# grub-install --root-directory=/mnt /dev/sda
5. Reiniciar
Resultado: O Ubuntu voltou a funcionar, mas o windows sumiu.

Para corrigir isso:

No Linux
sudo update-grub

Para alterar o tempo do menu de escolha do sistema operacional, edite a variáve timeout em /boot/grub/grub.cfg.

Comente a linha para tempo infinito.