• Nenhum resultado encontrado

4.3 COMPARAÇÃO ENTRE PONTO FIXO E PONTO FLUTUANTE

4.3.2 Frequência e tempo

A Tabela 23 mostra as frequências para os blocos separados. As frequências do buffer de quadro são as mesmas.

Tabela 23: Frequência de operação em função da resolução para os blocos simples, em MHz.

Resolução counter lines_buffer ABZh ABZv TI MAD accum 320×240 352,49 271,96 213,08 212,54 35,44 317,16 12,23 768×432 380,23 264,69 210,08 215,05 37,22 302,3 11,95

Alguns blocos apresentam leves diferenças, mas o mais notável é uma grande dis- crepância na implementação ponto flutuante dos blocos TI e accum, que passam a ser grandes limitadores. Isso se deve à matemática existente nesses blocos, como o cálculo do desvio padrão no TI e diversas divisões em accum, onde o ponto flutuante gasta mais lógica.

O gráfico da Figura 17 compara as frequências de operação para as duas implementa- ções.

Observa-se no gráfico que as frequências se comportam de maneira semelhante, mas com a implementação em ponto flutuante apresentando aproximadamente 1 MHz a menos que o ponto fixo, ou cerca de 1/3. Esse resultado justifica neste projeto o emprego da aritmética ponto fixo em detrimento do ponto flutuante. Para uma comparação temporal, a Tabela 24 mostra o ganho em velocidade do ponto flutuante em relação à linguagem interpretada, para a resolução 64×64.

2 2,2 2,4 2,6 2,8 3 3,2 3,4 3,6 3,8 0 1000 2000 3000 4000 5000 6000 Fr equênci a (M Hz ) Pixels

Ponto fixo Ponto flutuante

Figura 17: Comparação da frequência de operação nas implementações ponto fixo e ponto flutu- ante.

Fonte: Autoria própria.

Tabela 24: Comparação de velocidade entre as implementações em hardware (ponto flutuante) e em software.

Quadros Tempo VHDL (s) Aumento de velocidade PC1 Aumento de velocidade PC2

217 0,3244 34× 21×

250 0,3737 33× 21×

500 0,7474 31× 19×

Pode-se observar que o ganho de velocidade é de 34 a 21 vezes em relação ao método original. Ainda que seja um ganho significativo, é consideravelmente inferior ao observado com o ponto fixo, mostrado na Tabela 19.

Portanto, pode-se concluir que a escolha entre ponto fixo e ponto flutuante depende da aplicação e da prioridade. Nos pacotes VHDL disponíveis, o ponto flutuante é relativamente mais fácil de se implementar, pois utilizando um tipo de tamanho constante não é necessário fazer diversas operações de ajuste de faixa de valores.

4.4 CONSIDERAÇÕES FINAIS DO CAPÍTULO

Este capítulo apresentou e discutiu os resultados obtidos da implementação em hard- ware do método NRVQA-LM. A avaliação de qualidade de vídeo é um processo compu- tacionalmente complexo, tornando uma implementação em hardware interessante. Assim, implementou-se o método NRVQA-LM em VHDL utilizando aritmética ponto fixo. O pacote ponto fixo disponibilizado por (BISHOP, 2008a) possui apenas funções matemáticas e lógicas elementares. Logo, foram desenvolvidas funções matemáticas necessárias para o cálculo das características. Os resultados numéricos mostraram-se precisos, uma vez que os valores das características espaço-temporais e do escore de qualidade obtidos nas simulações em VHDL ficaram muito próximos aos da implementação original. Os resultados de desempenho mostra- ram que a implementação é custosa em termo de recursos lógicos; porém, é altamente eficiente em relação à velocidade de cálculo, possibilitando a avaliação em tempo real, com cálculos sendo realizados até 40 vezes mais rápidos do que em uma linguagem interpretada. Por último, a comparação entre ponto fixo e ponto flutuante mostrou que, neste contexto, o ponto fixo é mais eficiente. O Capítulo seguinte apresenta os comentários finais e sugestões de trabalhos futuros.

5 CONCLUSÕES

Em um contexto em que o consumo de vídeo digital se expande cada vez mais, seja por distribuição por radiodifusão ou por IP, a avaliação objetiva de qualidade se torna cada vez mais relevante. A fim de otimizar o tempo de cálculo desse processo computacionalmente lento e custoso, foi implementado em lógica reconfigurável um método NR para avaliação de qualidade de vídeo. Um bloco de hardware pode ser facilmente incorporado a outros dispositivos, tais como televisores, set-top boxes, placas de vídeo ou smartphones. A solução proposta neste trabalho visou transpor para hardware o método NRVQA-LM (SILVA, 2013). Este método utiliza um modelo matemático que reúne seis características espaço-temporais para obter a um escore de qualidade para sequências de vídeo. O método possui bons resultados de correlação com escores subjetivos, especialmente para a codificação MPEG-2.

A implementação foi planejada partindo de estudos sobre o método NRVQA-LM, in- vestigando as características espaço-temporais e estudando as ferramentas necessárias para seu desenvolvimento. Foi necessário o emprego de variáveis ponto fixo – ainda não incorporadas à linguagem VHDL – e a escrita de funções matemáticas como potenciação e exponencial para o cálculo do escore de qualidade. A partir de análises sobre como as informações de vídeo são recebidas por um hardware e as necessidades particulares de cada característica, foi feito um planejamento na forma de diagramas RTL e então a codificação em linguagem VHDL, reali- zada de forma organizada e com objetivo de ser otimizada em questão de recursos lógicos. O código foi elaborado de forma escalonável, i.e., genérica, deixando configuráveis os principais parâmetros, tais como resolução do vídeo, número de quadros, magnitudes de variáveis ponto fixo etc.

O desenvolvimento visou criar bases para permitir que outras implementações possam aproveitar recursos elaborados neste trabalho. Assim, foram projetados e desenvolvidos blocos de hardware que podem ser reaproveitados em outros projetos, não necessariamente ligados à avaliação de qualidade de vídeo. O bloco counter, responsável por contar pixels e atribuir a eles seu quadro, linha e coluna em um vídeo, pode ser reutilizado em projetos diversos de processamento de vídeo. Semelhantemente, os buffers, ou paralelizadores, que realizam o ar-

mazenamento de pixels que serão processados posteriormente, também podem ser utilizados em projetos que necessitem armazenar informações de pixels em memória. Esses blocos tam- bém foram implementados de forma escalonável, podendo ser adaptados de acordo com as necessidades de cada projeto. Similarmente, as funções matemáticas necessárias a este trabalho foram desenvolvidas em um pacote e podem ser reaproveitadas em quaisquer projetos. Foram elaboradas as funções potenciação, exponencial e raiz quadrada.

Os resultados calculados foram validados a partir de comparações com as caracterís- ticas e escores originais obtidos em software (SILVA, 2013; SILVA et al., 2015). As carac- terísticas espaço-temporais e os escore de qualidade calculados mostraram-se próximos aos originais, com erro médio no escore de qualidade de 0,05%. A implementação mostrou-se cus- tosa, em termos de recursos lógicos, especialmente devido à necessidade de se armazenar um quadro inteiro, não sendo possível realizar simulações para resoluções elevadas. Em termos de frequência de operação e, portanto, tempo de cálculo, a implementação se mostrou eficiente, graças à característica de paralelismo das FPGAs, executando os cálculos entre 20 e 40 vezes mais rapidamente do que implementações em linguagem interpretada. De acordo com o nú- mero de clocks necessários para calcular o escore de qualidade, é previsto portanto, em uma eventual aplicação em FPGA, a avaliação será realizada em tempo real, à medida que o vídeo for exibido. Em caso de avaliação de um vídeo armazenado, a análise será mais eficiente do que em software.

Para uma análise aprofundada, o projeto foi posteriormente convertido para o ponto flu- tuante, a fim de comparar o uso de cada tipo de aritmética computacional em um projeto como este. O ponto flutuante tende a gastar mais recursos lógicos, mas dependendo da dimensão do circuito essa diferença pode acabar se tornando desprezível. Em relação à precisão das aritmé- ticas, o ponto flutuante apresentou desempenho próximo ao ponto fixo, embora tenha perdido precisão em operações mais complexas – podendo ser um caso específico na implementação proposta. No entanto, o grande revés da implementação em ponto flutuante foi a frequência de operação, em que foi observada aproximadamente 1/3 menor do que a do ponto fixo. Em pro- jetos como este, que buscam uma execução mais próxima possível do tempo real, a frequência de operação é determinante e, portanto, o emprego do ponto fixo é preferível. Em aplicações em que a prioridade seja a dimensão do circuito e a diferença entre as implementações não seja significante, o ponto flutuante pode se tornar interessante pela sua maior facilidade de uso. Essa análise teve por objetivo avaliar o impacto de cada uma dessas ariméticas em projetos de porte médio a grande, a fim de suportar decisões para futuros trabalhos que necessitem escolher entre um ou outro sistema de numeração computacional.

Como trabalhos futuros, a próxima etapa imediata seria o teste da implementação em uma plataforma FPGA. Os testes devem inicialmente ser realizados com vídeos conhecidos (como os da base LIVE) para validar a transição de simulações para testes reais. Em seguida, realizar testes de frequência de operação e velocidade e comparar com os valores estimados. Após isso, pode-se expandir os testes para conteúdos originários de alguma fonte de vídeo, como uma entrada HDMI. Devido ao alto custo de elementos lógicos que foi observado na implementação, sugere-se o uso de FPGAs midrange ou high-end, como as séries Aria e Stratix da Intel FPGA (Intel FPGA, 2017c, 2017b).

Algumas melhorias na atual implementação também podem ser observadas. A princi- pal seria uma otimização do buffer de quadro, que é o bloco que mais limita o desempenho do projeto como um todo. Uma sugestão seria o planejamento do uso da memória RAM da pla- taforma FPGA eventualmente utilizada. Otimizações sutis poderiam ser feitas, particularmente no ponto fixo. Atualmente existe apenas um tipo de variável ponto fixo, utilizada por todas as variáveis do projeto. Essa variável supõe o pior caso possível na definição de sua magnitude. No entanto, cada variável do projeto possui limites diferentes, e poderiam ser criados tipos ponto fixo adaptados para cada caso. Isso deixaria o código menos claro e mais fragmentado, mas diminuiria o número de elementos lógicos utilizados.

Outra expansão possível é a implementação de outros métodos de avaliação utilizando as bases criadas neste trabalho. As seis características espaço-temporais aqui implementadas são utilizadas também em outros métodos de avaliação de vídeo e imagem, podendo ser reu- tilizadas em outros projetos. E outras características ou mesmo métodos completos poderiam se aproveitar das estruturas e conhecimento adquirido no desenvolvimento deste trabalho, tais como os buffers de linhas e quadro, contador de linhas, colunas e quadros, blocos de acumula- ção e cálculo de médias gerais, que são elementos comuns a características espaço-temporais e métodos de avaliação de vídeo e imagem.

Os resultados de desempenho obtidos neste trabalho foram comparados com a im- plementação existente até então do método NRVQA-LM, em linguagem interpretada. Ape- sar da implementação proposta mostrar-se eficiente e capaz de processar os vídeos em tempo real, uma comparação com linguagens compiladas, e.g., C/C++, seria mais justa. Semelhante- mente, sugere-se a comparação de desempenho com single boards com processadores ARM, e.g., Raspberry Pi, que se aproveitem recursos de GPU. Uma outra comparação de desempenho que pode ser considerada é com implementações em lógica reconfigurável de métricas FR, tais como MSE e PSNR, devido sua maior simplicidade de implementação.

texto, o pacote ponto fixo (e também o ponto flutuante) apenas prevê operações matemáticas fundamentais. Para contornar essa deficiência, foi desenvolvido um pacote de funções matemá- ticas. Neste trabalho o pacote foi desenvolvido apenas para suprir as necessidades do projeto, e pode ser utilizado em outras aplicações. Mesmo assim, mostrou-se interessante a ideia de uma expansão do pacote de funções matemáticas em ponto fixo e flutuante, desenvolvendo, por exemplo, funções como seno, cosseno, tangente, logaritmos etc.

REFERÊNCIAS

BAILEY, D. G. Design for Embedded Image Processing on FPGAs. Singapore: John Wiley & Sons (Asia) Pte Ltd, 2011. ISBN 9780470828519.

BAKÓ, L.; EN?CHESCU, C.; BRASSAI, S. T. Design and validation of a low resource-cost video data processing method for embedded implementation of optical flow extraction. Pro- ceedings of the 2015 16th International Carpathian Control Conference, ICCC 2015, p. 13–18, 2015.

BISHOP, D. Fixed point package user’s guide. 2008. BISHOP, D. Floating point package user’s guide. 2008.

CALLET, P. L.; VIARD-GAUDIN, C.; BARBA, D. A convolutional neural network approach for objective video quality assessment. IEEE Transactions on Neural Networks, v. 17, n. 5, p. 1316–1327, 2006. ISSN 10459227.

CHIKKERUR, S. et al. Objective Video Quality Assessment Methods: A Classification, Re- view, and Performance Comparison. IEEE Transactions on Broadcasting, v. 57, n. 2, p. 165– 182, jun 2011. ISSN 0018-9316.

DHARAN, S. V.; KHALIL-HANI, M.; SHAIKH-HUSIN, N. Hardware acceleration of a face detection system on FPGA. 2015 IEEE Student Conference on Research and Development, SCOReD 2015, p. 283–288, 2016.

DING, W. et al. Image and Video Quality Assessment Using Neural Network and SVM. Tsinghua Science and Technology Journal, v. 13, n. 1, p. 112–116, 2008.

DTV Status. DTV Status. 2017. Disponível em: <http://en.dtvstatus.net>. Eclipse Foundation. Eclipse. 2017. Disponível em: <https://eclipse.org/>.

ENGELKE, U. et al. Reduced-reference metric design for objective perceptual quality assess- ment in wireless imaging. Signal Processing: Image Communication, v. 24, n. 7, p. 525–547, 2009.

ENGELKE, U.; ZEPERNICK, H. J. Perceptual-based quality metrics for image and video servi- ces: A survey. NGI 2007: 2007 Next Generation Internet Networks - 3rd EuroNGI Confe- rence on Next Generation Internet Networks: Design and Engineering for Heterogeneity, p. 190–197, 2007.

FENG, C.-l.; NIU, L.-p.; SHI, P. The design of color space conversion based on FPGA. In: 2015 IEEE International Conference on Computer and Communications (ICCC). IEEE, 2015. p. 194–198. ISBN 978-1-4673-8125-3.

FISCHER, W. Digital Video and Audio Broadcasting Technology. Berlin, Heidelberg: Sprin- ger Berlin Heidelberg, 2010. (Signals and Communication Technology). ISBN 978-3-642- 11611-7.

FONSECA, K. V. O.; POHL, A. A. P. (Ed.). Novas Técnicas e Ferramentas Aplicadas ao Sistema Brasileiro de TV Digital. Omnipax Editora, 2013. ISBN 9788564619142. Disponível em: <http://omnipax.com.br/site/?page_id=452>.

GAJJAR, N.; PATEL, V.; SHUKLA, A. J. Implementation of Edge Detection Algorithms in Real Time on FPGA. 5th Nirma University International Conference on Engineering (NUi- CONE), 2015.

HUFFMIRE, T. et al. Handbook of FPGA Design Security. Dordrecht: Springer Netherlands, 2010. ISBN 978-90-481-9156-7.

IEEE Computer Society. IEEE Standard Multivalue Logic System for VHDL Model Inte- roperability (Std_logic_1164). 1993. ISBN 978-0-7381-0991-6.

IEEE Computer Society. IEEE Std 754-2008 (Revision of IEEE Std 754-1985), IEEE Stan- dard for Floating-Point Arithmetic. 2008. 1–58 p. ISSN 01419331. ISBN 9780738157528. IEEE Computer Society. IEEE Std 1076-2008 (Revision of IEEE Std 1076-2002) IEEE Stan- dard VHDL Language Reference Manual. 2009. 626 p. ISBN 9780738158006.

Intel FPGA. Cyclone V Overview. 2017. Disponível em:

<https://www.altera.com/products/fpga/cyclone-series/cyclone-v/overview.html>.

Intel FPGA. Intel FPGA: Aria 10 Series. 2017. Disponível em: <https://www.altera.com/products/fpga/arria-series/arria-10/overview.html>.

Intel FPGA. Intel FPGA: Stratix 10 Series. 2017. Disponível em: <https://www.altera.com/products/fpga/stratix-series/stratix-10/overview.html>.

Intel FPGA. Quartus Prime. 2017. Disponível em: <https://www.altera.com/products/design- software/fpga-design/quartus-prime/overview.html>.

ITU. Reccomendation ITU-T P.910: Subjective video quality assessment methods for mul- timedia applications. 1999.

ITU-R. Recommendation BT-500: methodology for the subjective assessment of the qua- lity for television pictures, Rev. 11. Geneva, Switzerland, 2004.

JIN, X. et al. Color image encryption in YCbCr space. In: 2016 8th International Conference on Wireless Communications & Signal Processing (WCSP). IEEE, 2016. p. 1–5. ISBN 978- 1-5090-2860-3.

JONES, G. A. et al. Digital television station and network implementation. Proceedings of the IEEE, v. 94, n. 1, p. 22–36, 2006. ISSN 00189219.

LEVENBERG, K. A Method For The Solution Of Certain Non-Linear Problems In Least Squa- res. Quarterly of Applied Mathematics, v. 2, n. 2, p. 164–168, 1944.

LI, S.; MA, L.; NGAN, K. N. Full-reference video quality assessment by decoupling detail losses and additive impairments. IEEE Transactions on Circuits and Systems for Video Te- chnology, v. 22, n. 7, p. 1100–1112, 2012. ISSN 10518215.

LI, Y.; CHU, W. A new non-restoring square root algorithm and its VLSI implementations. Proceedings International Conference on Computer Design. VLSI in Computers and Pro- cessors, p. 538–544, 1996. ISSN 1063-6404.

MACLEAN, W. An Evaluation of the Suitability of FPGAs for Embedded Vision Systems. 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR’05) - Workshops, v. 3, p. 131–131, 2005. ISSN 1063-6919.

MARQUARDT, D. W. An Algorithm for Least-Squares Estimation of Nonlinear Parame- ters. 1963. 431–441 p.

MARQUES FILHO, O.; VIEIRA NETO, H. Processamento Digital de Imagens. Rio de Ja- neiro: Editora Brasport, 1999.

MARQUES, O. Practical Image and Video Processing Using MATLAB. Hoboken, New Jersey: Wiley-IEEE Press, 2011. 696 p. ISBN 978-0-470-04815-3.

MARTINS, C. A. P. d. S. et al. Computação reconfigurável: conceitos, tendências e aplicações. Anais do XXII Joradas de Atualização de Informática, p. 339–388, 2003.

MATHWORKS. Fixed-Point Basics in MATLAB. 2016. Disponível em: <https://www.mathworks.com/help/fixedpoint/fixed-point-basics.html>.

Mentor Graphics Corporation. ModelSim ASIC and FPGA Design. 2017. Disponível em: <https://www.mentor.com/products/fv/modelsim/>.

MITTAL, A.; SAAD, M.; BOVIK, A. C. Assessment of video naturalness using time-frequency statistics. 2014 IEEE International Conference on Image Processing, ICIP 2014, p. 571– 574, 2014.

MORE, J. J. The Levenberg-Marquardt algorithm: Implementation and theory. Lecture Notes in Mathematics, v. 630, p. 105–116, 1978. ISSN 1617-9692.

NARWARIA, M.; LIN, W.; LIU, A. Low-complexity video quality assessment using temporal quality variations. IEEE Transactions on Multimedia, v. 14, n. 3 PART1, p. 525–535, 2012. ISSN 15209210.

NEBOROVSKI, E.; MARINKOVIC, V.; KATONA, M. Video quality assessment approach with field programmable gate arrays. MIPRO, 2010 Proceedings of the 33rd International Convention, 2010.

NORDENG, E. T. Video metric measurements in an FPGA for use in objective no-reference video quality analysis. Tese (Doutorado) — Norwegian University of Science and Technology, 2013.

PEDRONI, V. A. Circuit Design and Simulation with VHDL. 2nd. ed. Cambridge: The MIT Press, 2010. 608 p.

Portal Brasil. Desligamento do sinal da TV analógica tem novo cronograma. 2016. Disponível em: <http://www.brasil.gov.br/infraestrutura/2016/01/desligamento-do-sinal-da- tv-analogica-tem-novo-cronograma>.

RAHMAN, A.; ABDULLAH-AL-KAFI. New efficient hardware design methodology for mo- dified non-restoring square root algorithm. 2014 International Conference on Informatics, Electronics and Vision, ICIEV 2014, p. 6–7, 2014.

RAM, B. Engineering Mathematics. 1. ed. New Delhi: Pearson, 2009. 1124 p.

ROBIN, M.; POULIN, M. Digital television fundamentals: design and installation of video and audio systems. 2. ed. New York: McGraw-Hill, 2000. 736 p.

RUSHTON, A. VHDL For Logic Synthesis. 3rd. ed. Chichester: John Wiley & Sons, 2011. 466 p.

SAAD, M. A.; BOVIK, A. C.; CHARRIER, C. Blind prediction of natural video quality. IEEE Transactions on Image Processing, v. 23, n. 3, p. 1352–1365, 2014. ISSN 10577149.

SESHADRINATHAN, K. et al. A subjective study to evaluate video quality assessment algo- rithms. IS&T/SPIE Electronic Imaging, v. 7527, p. 75270H–75270H, 2010. ISSN 0277786X. SESHADRINATHAN, K. et al. Study of Subjective and Objective Quality Assessment of Vi- deo. IEEE Transactions on Image Processing, v. 19, n. 6, p. 1427–1441, 2010. ISSN 1057- 7149.

SIGASI. Sigasi. 2017. Disponível em: <http://www.sigasi.com/>.

SILVA, W. B. D. Métodos sem referência baseados em características espaço-temporais para avaliação objetiva de qualidade de vídeo digital. 175 p. Tese (Doutorado) — Universi- dade Tecnológica Federal do Paraná, 2013.

SILVA, W. B. D.; POHL, A. d. A. P.; FONSECA, K. V. O. Objective No-Reference Video Quality Assessment Method Based on Spatio-Temporal Pixel Analysis. IECE Transactions on Information and Systems, n. 8, p. 1325–1332, 2015.

SONG, J.; YANG, Z.; WANG, J. Basic Concepts of Digital Terrestrial Television Transmission System. In: Digital Terrestrial Television Broadcasting. Hoboken, New Jersey: John Wiley & Sons, Inc., 2015. p. 1–38.

Sony Corporation. Sony History: The Beginning of the Digital Age. 1996. Disponível em: <http://www.sony.net/SonyInfo/CorporateInfo/History/SonyHistory/2-04.html#block4>. VQEG. Final report from the video quality experts group on the validation of objective models of multimedia quality assessment, Phase I. Video Quality Experts Group (VQEG), 2008. Tech. Rep. Disponível em: <http://www.its.bldrdoc.gov/vqeg/>.

VQEG. Final report from the video quality experts group on the validation of reduced-reference and no-reference objective models for standard definition televi- sion, Phase I. Video Quality Experts Group (VQEG), 2009. Tech. Rep. Disponível em: <http://www.its.bldrdoc.gov/vqeg/>.

VQEG. Report on the validation of video quality models for high definition video content. Video Quality Experts Group (VQEG), June 2010. Tech. Rep., Version 2.0. Disponível em: <http://www.its.bldrdoc.gov/vqeg/projects/hdtv/>.

WALGROVE, A. The Explosive Growth of Online Video, in 5 Charts. 2015. Disponí- vel em: <https://contently.com/strategist/2015/07/06/the-explosive-growth-of-online-video-in- 5-charts/>.

WANG, Z.; BOVIK, A. C. Modern Image Quality Assessment. Synthesis Lectures on Image, Video, and Multimedia Processing, v. 2, n. 1, p. 1–156, jan 2006. ISSN 1559-8136.

WANG, Z. et al. Image quality assessment: form error visibility to structural similarity. Image Processing, IEEE Transactions on, v. 13, n. 4, p. 600–612, 2004.

WANG, Z.; SHEIKH, H. R.; BOVIK, A. C. No-Reference Perceptual Quality Assessment of JPEG Compressed Images. Proceedings of the IEEE International Conference on Image Processing (ICIP’02), p. I–477–I–480, 2002.

WANG, Z.; SIMONCELLI, E. P.; BOVIK, A. C. Multi-scale structural similarity for image quality assessment. IEEE Asilomar Conference on Signals, Systems and Computers, v. 2,

Documentos relacionados