• Nenhum resultado encontrado

Metodologia e Ferramental Utilizado

No documento LISTA DE FIGURAS (páginas 110-114)

110

1. Umpipelinede processamento para geração de soluções de transcodificadores rápidos de vídeo com uso de modelos preditivos treinados através de aprendi- zado de máquina;

2. Um transcodificador VP9-para-AV1, acelerado através do uso de árvores de de- cisão;

3. Um transcodificador H.264/AVC-para-AV1, acelerado através do uso de árvores de decisão;

4. Um transcodificador H.265/HEVC-para-AV1, acelerado através do uso de árvo- res de decisão;

5. Um transcodificador VP8-para-AV1, acelerado através do uso de árvores de de- cisão;

6. Um transcodificador H.266/VVC-para-AV1, acelerado através do uso de árvores de decisão.

Para permitir o desenvolvimento e a prova de conceito do pipeline de processa- mento proposto, algumas decisões precisaram ser tomadas, descritas na seção 7.1.

A seção 7.2 se dedica a abordar o funcionamento dopipeline proposto e suas fases de execução automatizadas. Os detalhes mais importantes dessepipelinede proces- samento são aprofundados nas seções 7.3 (seleção dos modelos de aprendizado de máquina) e 7.4 (algoritmo de transcodificação a ser adaptado pelas propostas).

111

Tabela 18 – Sequências de vídeo selecionadas para compor os conjuntos dos experimentos.

Fase Sequências

Treinamento BasketballDrive_1920x1080_50, BQTerrace_1920x1080_60, Cac- tus_1920x1080_50, CrowdRun_1920x1080_25, Kimono1_1920x1080_24, ParkS- cene_1920x1080_24, Tennis_1920x1080_24

Teste FountainSky_1920x1080p30_130f, TimeLapseStreet_1920x1080p30_130f, Wheat_1920x1080, WorldCup_1920x1080_30p, WorldCup_far_1920x1080_30p, WorldCupFarSky_1920x1080_30p, Skater227_1920x1080_30fps

Predição aspen_1080p_60f, crowd_run_1080p50_60f, dark720p_120f, ducks_take_off_1080p50_60f, FourPeople_1280x720_60, FourPeo- ple_1280x720_60_120f, gipsrestat720p_120f, Johnny_1280x720_60, Johnny_1280x720_60_120f, KristenAndSara_1280x720_60, KristenAnd- Sara_1280x720_60_120f, Netflix_Aerial_1920x1080_60fps_8bit_420_60f, Net- flix_Boat_1920x1080_60fps_8bit_420_60f, Netflix_Crosswalk_1920x1080_60fps_

8bit_420_60f, Netflix_DinnerScene_1280x720_60fps_8bit_420_120f, Netflix_DrivingPOV_1280x720_60fps_8bit_420_120f, Net- flix_FoodMarket_1920x1080_60fps_8bit_420_60f, Net- flix_FoodMarket2_1280x720_60fps_8bit_420_120f, Net- flix_PierSeaside_1920x1080_60fps_8bit_420_60f, Net- flix_RollerCoaster_1280x720_60fps_8bit_420_120f, Net- flix_SquareAndTimelapse_1920x1080_60fps_8bit_420_60f,

Netflix_Tango_1280x720_60fps_8bit_420_120f, Net-

flix_TunnelFlag_1920x1080_60fps_8bit_420_60f, old_town_cross_1080p50_60f, park_joy_1080p50_60f, pedestrian_area_1080p25_60f, rush_field_cuts_1080p_60f, rush_hour_1080p25_60f, sta- tion2_1080p25_60f, Vidyo1_1280x720_60, vidyo1_720p_60fps_120f, Vidyo3_1280x720_60, vidyo3_720p_60fps_120f, Vidyo4_1280x720_60, vidyo4_720p_60fps_120f, boat_hdr_amazon_720p, gui- tar_hdr_amazon_1080p, pan_hdr_amazon_1080p, rain_hdr_amazon_720p, sea- plane_hdr_amazon_1080p, Netflix_BarScene_4096x2160_60fps_10bit_420_60f, Netflix_BoxingPractice_4096x2160_60fps_10bit_420_60f,

Netflix_Dancers_4096x2160_60fps_10bit_420_60f, Net- flix_Narrator_4096x2160_60fps_10bit_420_60f, Net- flix_RitualDance_4096x2160_60fps_10bit_420_60f, Net- flix_ToddlerFountain_4096x2160_60fps_10bit_420_60f, Net- flix_WindAndNature_4096x2160_60fps_10bit_420_60f, street_hdr_amazon_2160p

(2013) e Daede; Norkin; Brailovskiy (2020), para compor, respectivamente, os con- juntos de treino (sete sequências), de teste (sete sequências) e de predição (demais sequências). Como pode ser visto na Tabela 18, fazem parte dos vídeos de predição 48 sequências, distribuídas entre as resoluções HD720, HD1080 e UHD4K. Como foi dito no capítulo 4, o Apêndice A descreve com detalhes as sequências utilizadas. Na Tabela 18, constam os nomes das sequências utilizadas em cada uma das fases de desenvolvimento das soluções propostas neste capítulo.

7.1.1 Algoritmos de Aprendizado de Máquina

No capítulo 4, especificamos que a linguagem Python versão 3 foi utilizada para o desenvolvimento de algumas soluções apresentadas nesta tese, em particular as apresentadas no atual capítulo. Dentre essas soluções, está o treinamento de mode-

112

los preditivos gerados por algoritmos de aprendizado de máquina. Existem diversas ferramentas, desenvolvidas em Python, que possibilitam essa geração de modelos preditivos, dentre elas o pacote Scikit-Learn (SCIKIT-LEARN, 2021a). Esse pacote oferece um algoritmo para treinamento de árvores de decisão que permitem a clas- sificação e a regressão de valores, denominado Classification and Regression Trees (CART) (SCIKIT-LEARN, 2021b), baseado no trabalho de Breiman et al. (1984). Este algoritmo permite a manipulação de alguns hiperparâmetros, descritos na Tabela 19.

Nesta tabela apresentamos os hiperparâmetros existentes no algoritmo CART e seus respectivos valores usados nas soluções propostas de transcodificação rápida com uso de modelos gerados pelo algoritmo CART. Na última coluna da Tabela 19, apre- sentamos a quantidade de variações existentes para cada hiperparâmetro, conside- rando os valores que utilizaremos. Logo, calculando-se o produto dessas variações, há um total de 9,5 milhões de modelos candidatos de aprendizado de máquina a se- rem treinados com este algoritmo. Observe que, em vários hiperparâmetros da Tabela 19 que utilizam valores inteiros como entrada, consideramos um valor máximo de 25.

A razão disso é a quantidade de atributos utilizados nos trabalhos deste capítulo, que é de 25, conforme consta na seção 7.3.

7.1.2 Mensuração de Resultados

Na seção 2.3 discutimos as métricas estatísticas F1-Score (Equação 6) e AUC (Figura 7) para avaliação dos treinamentos dos modelos preditivos gerados por algo- ritmos de aprendizado de máquina. O pacotescikit-learn oferece meios de mensurar essas métricas, por meio do módulo “sklearn.metrics”, que permite utilizar as funções

“f1_score” (SCIKIT-LEARN, 2022a) e “roc_auc_score” (SCIKIT-LEARN, 2022b). Essas duas funções possuem diversos parâmetros de utilização, conforme pode ser obser- vado em documentação própria (SCIKIT-LEARN, 2022a,b). Serão utilizados os valo- res padrões dessas funções, exceto por um único parâmetro: “average”. Por padrão, esse parâmetro avalia apenas os resultados positivos preditos pelo modelo treinado;

no entanto, apesar dos modelos treinados pelas nossas propostas terem rótulos bi- nários (ver mais na seção 7.3), a relevância das respostas positivas tanto quanto as negativas possuem igual importância. Dessa forma, como é importante que as fun- ções “f1_score” e “roc_auc_score” avaliem ambas respostas do rótulo igualmente, o parâmetro “average” deve ser configurado como “macro”.

Em relação às métricas para comparação dos resultados de transcodificação rá- pida, empregamos os valores de TS (Equação 7) e de BD-rate (Figura 8), ambos já apresentados na seção 2.4. Em relação à captura do tempo de processamento, va- lor importante para gerar o TS, usamos os valores informados pelo próprio software de referência do AV1, cujo tempo total da codificação é mensurado em milissegun- dos, posteriormente convertidos para segundos. Já no caso do BD-rate, utilizamos os

113 Tabela 19: Relação dos hiperparâmetros disponíveis no algoritmo CART.

Criterion Define a função para medir a qualidade do subparticionamento árvore de decisão. Podem ser utilizados ganho de impureza gini ou ganho de informação por entropia de Shannon, conforme descritos em scikit-learn (2021c).

’gini’, ’entropy’ 2

Splitter Define a estratégia utilizada para escolher o subparticionamento em cada nó da árvore de decisão. É possível optar pela melhor divisão ou divisão aleatória.

’best’, ’random’ 2

Max Depth Define a profundidade máxima da árvore de decisão. O valor ‘None’ indica que não há um limite definido.

’None’, 3, 5, 7, 11, 13, 17, 19, 25

9

Min Samples Split Define o número mínimo de amostras necessárias para subparticionar um nó interno (no mínimo duas amostras).

2, 3, 5, 7, 11, 13, 17, 19, 25 9

Min Samples Leaf Define o número mínimo de amostras necessárias para tornar um nó como folha. Ou seja, o subparticionamento em qualquer profundidade só será considerado se, pelo menos este número de amostras, estiver tanto no ramo do lado esquerdo como no lado direito.

1, 3, 5, 7, 11, 13, 17, 19, 25 9

Max Features Define o número de atributos a serem considerados ao procurar o melhor subparticiona- mento do nó. Pode ser a raiz quadrada, ou o logaritmo de base dois da quantidade de atributos disponíveis, ou nenhum, indicando que todos os atributos devem ser utilizados.

’sqrt’, ’log2’, ’None’ 3

Max Leaf Nodes Define o número máximo de nós folhas. Em caso de ‘None’, não há limite máximo. A escolha pelos melhores nós é definida pelo próximo atributo.

’None’, 3, 5, 7, 11, 13, 17, 19, 25

9

Min Impurity Decrease Define se um nó deve ser subparticionamento ou não, caso esta divisão induza a uma diminuição na impureza maior ou igual ao valor definido.

0,0, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 1,0

11

CPP Alpha Define o valor a ser usado para poda antecipada considerando a mínima taxa entre custo e complexidade (Minimal Cost-Complexity Pruning, conforme scikit-learn (2021d)). A subár- vore com uma taxa inferior ao definido será escolhida. Se 0.0, nenhuma poda é executada.

0,0, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 1,0

11

Quantidade Total de Modelos 9.526.572

Hiperparâmetro Descrição Valores Utilizados Quantidade

114

Figura 22 – Representação em alto nível do fluxo de execução dopipelinede processamento.

Fonte: Elaborada pelo autor.

valores de bitrate (em kilobits por segundo, kbps) e de PSNR-Y (em decibéis, dB).

No documento LISTA DE FIGURAS (páginas 110-114)