BR112018000838B1 - Método e sistema para melhorar o gerenciamento de carga de trabalho em um sistema de monitoramento de televisão com reconhecimento de conteúdo automatizado - Google Patents

Método e sistema para melhorar o gerenciamento de carga de trabalho em um sistema de monitoramento de televisão com reconhecimento de conteúdo automatizado Download PDF

Info

Publication number
BR112018000838B1
BR112018000838B1 BR112018000838-9A BR112018000838A BR112018000838B1 BR 112018000838 B1 BR112018000838 B1 BR 112018000838B1 BR 112018000838 A BR112018000838 A BR 112018000838A BR 112018000838 B1 BR112018000838 B1 BR 112018000838B1
Authority
BR
Brazil
Prior art keywords
content
unknown
media
real
identifiers
Prior art date
Application number
BR112018000838-9A
Other languages
English (en)
Other versions
BR112018000838A2 (pt
Inventor
Zeev Neumeier
Michael Collette
Original Assignee
Inscape Data, Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inscape Data, Inc filed Critical Inscape Data, Inc
Publication of BR112018000838A2 publication Critical patent/BR112018000838A2/pt
Publication of BR112018000838B1 publication Critical patent/BR112018000838B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23109Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8126Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

SISTEMA E MÉTODO. São revelados sistemas e métodos para otimizar a utilização de recursos de um sistema de reconhecimento de conteúdo automatizado ( ACR ) ao atrasar a identificação de certas grandes quantidades de dados de indícios de mídia. A identificação atrasada da mídia pode ser para fins de, por exemplo, gerar estatísticas de uso ou outro fluxo de trabalho não urgente, entre outros usos em tempo não real. Além disso, a identificação em tempo real de um determinado subconjunto de dados de indícios de mídia é realizada para fins de substituição de programas de vídeo, oportunidades de televisão interativa ou outros eventos específicos no tempo.

Description

REFERÊNCIAS A PEDIDOS DE PATENTE RELACIONADOS
[0001] Este pedido de patente reivindica o benefício do Pedido de Patente Provisória dos Estados Unidos n° US 62/193,345, depositado em 16 de julho de 2015, cuja revelação é aqui incorporada por referência na íntegra.
[0002] Este pedido de patente está relacionado ao Pedido Patente dos Estados Unidos n° US 14/551,933, depositado em 24 de novembro de 2014, que é uma continuação do Pedido de Patente dos Estados Unidos n° US 14/089,003, depositado em 25 de novembro de 2013, agora Patente dos Estados Unidos n° US 8,898,714, que é uma continuação do Pedido de Patente dos Estados Unidos n° US 12/788,721, depositado em 27 de maio de 2010, agora Patente dos Estados Unidos n° US 18,595,781 B2, que reivindica o benefício do Pedido de Patente Provisória dos Estados Unidos n° US 61/182,334, depositado em 29 de maio de 2009 e Pedido de Patente Provisória dos Estados Unidos n° US 61/290,714, depositado em 29 de dezembro de 2009, cujas revelações são aqui incorporadas por referência na íntegra.
CAMPO DA INVENÇÃO
[0003] A presente revelação refere-se à melhoria do gerenciamento de recursos de sistema utilizados para reconhecimento de conteúdo exibido por um sistema de mídia (por exemplo, um sistema de televisão, um sistema de computação ou outro dispositivo eletrônico capaz de se conectar à Internet). Além disso, a presente revelação refere-se à identificação de conteúdo de forma eficaz e eficiente. Por exemplo, diversas técnicas e diversos sistemas são providos para melhorar o gerenciamento de carga de trabalho em um sistema de monitoramento de televisão com reconhecimento de conteúdo automatizado (“ACR”).
HISTÓRICO DA INVENÇÃO
[0004] Os avanços na tecnologia de fibra óptica e transmissão digital permitiram que a indústria da televisão aumentasse rapidamente a capacidade de canais, e proviesse um certo grau de serviços de televisão interativa (“ITV”), devido em grande parte ao fato da indústria ter combinado o aumento da capacidade de dados de cada canal com o poder de processamento de um computador na forma de uma Smart TV e/ou “set-top box” (STB) ou outro dispositivo.
[0005] A tecnologia de ITV foi desenvolvida na tentativa de permitir que os sistemas de TV atuem como um mecanismo de distribuição de informações de duas vias, de forma semelhante aos aspectos da World Wide Web. Os recursos de uma ITV acomodam uma variedade de recursos de marketing, entretenimento e educação, como permitir que um usuário solicite um produto ou serviço anunciado, competir contra competidores em um game show, e semelhantes. Em muitos casos, a funcionalidade interativa é controlada por um STB, que executa um programa interativo escrito para transmissão de TV. A funcionalidade interativa geralmente é exibida na tela da TV, e pode incluir ícones ou menus para permitir que um usuário faça seleções através do controle remoto da TV ou por um teclado.
SUMÁRIO DA INVENÇÃO
[0006] De acordo com uma técnica, o conteúdo interativo pode ser incorporado ao stream de transmissão (também conhecido como “feed do canal/da rede”). O termo “stream de transmissão” pode referir-se ao sinal de transmissão recebido por uma televisão, independentemente do método de transmissão do sinal, por exemplo, por antena, satélite, cabo ou qualquer outro método de transmissão de sinal. Um método de incorporação transparente de conteúdo interativo em um stream de transmissão é a inserção de um ou mais “disparadores” no stream de transmissão para um programa específico. O conteúdo do programa em que os ditos disparadores foram inseridos às vezes é chamado de conteúdo de programa aprimorado, ou um programa de TV ou sinal de vídeo aprimorado. Disparadores podem ser usados para alertar um STB ou o processador em uma Smart TV de que conteúdo interativo está disponível. O disparador pode conter informações sobre o conteúdo disponível, bem como a localização do conteúdo na memória. Um disparador também pode conter texto perceptível pelo usuário que é exibido na tela, por exemplo, na parte inferior da tela, o qual pode solicitar ao usuário que execute alguma ação ou escolha entre uma pluralidade de opções.
[0007] As TVs conectadas são TVs conectadas à Internet através da rede doméstica do espectador (com ou sem fio) . As TVs conectadas podem executar uma plataforma de aplicativos, como o Android, do Google, ou outras plataformas proprietárias, permitindo que aplicativos interativos de smartphones ou para tablets sejam executados nas ditas TVs. Os recursos comuns básicos de tais plataformas de TV conectadas são: (1) uma conexão com a Internet; e (2) a capacidade de executar aplicativos de software com gráficos dos ditos aplicativos sobrepostos, ou ocupando toda a tela de TV.
[0008] Atualmente, poucas TVs (conectadas ou não) têm acesso a metadados sobre o que o espectador está assistindo no momento, nem sobre quem é o espectador, do ponto de vista de fornecer a este espectador oportunidades de programação ou comerciais personalizadas para ele. Embora algumas informações sobre uma oferta de conteúdo estejam disponíveis em pedaços no pipeline de distribuição de conteúdo, no momento em que um programa chega à tela em sistemas de distribuição antigos, todas as informações que não sejam de vídeo e áudio foram perdidas.
[0009] Estão sendo feitas tentativas para codificar tais informações de identificação em conteúdo de entretenimento e comercial sob a forma de marcas d’água nas porções de áudio ou vídeo de forma que estas sobrevivam à compressão e descompressão, mas tais técnicas ainda não estão disponíveis universalmente. Mesmo que esses códigos sejam padronizados, prontamente disponíveis e confiáveis, eles não preveem a capacidade de identificar o ponto exato no programa que está sendo exibido em um determinado sistema de TV dentro de uma fração de uma segunda resolução.
[0010] Como resultado, em sistemas de distribuição de sinal de TV antigos, o aparelho de TV não “sabe” qual canal ou programa que o espectador que está assistindo no momento atual, nem do que se trata o programa. As informações de canal e programa vistas na tela por um espectador atualmente são enxertadas no STB, às vezes, a partir de informações incompletas. Essa barreira é o resultado da estrutura fundamental da indústria de distribuição de conteúdo de TV.
[0011] Os pedidos de patente relacionados aqui citados referem-se a um sistema e método para identificar o conteúdo que está sendo exibido em tempo próximo ao tempo real e, portanto, podem identificar em que ponto algumas informações adicionais, publicidade ou oportunidades interativas contextualmente relevantes podem estar disponíveis ao provedor de programação. Além de tais aplicações em tempo real, estes pedidos de patente ensinam um sistema e método que podem gerar estatísticas sobre padrões de visualização com precisão e granularidade não disponíveis anteriormente. No entanto, embora a substituição de módulos de publicidade ou a oferta de um programa adicional ou oferta de oportunidades comerciais a um espectador precisam ser feitas quase em tempo real, a identificação de certas programações e geração de estatísticas de visualização e uso para a programação de um canal específico ou a programação de substituição inserida no sistema não são tão urgentes.
[0012] Assim, é o objeto das realizações da invenção maximizar a eficiência de utilização de recursos do sistema executando automaticamente funções menos urgentes durante os períodos fora de pico. As realizações da invenção geralmente referem-se a sistemas e métodos para identificar segmentos de vídeo exibidos em uma tela de um sistema de televisão, e a sistemas e métodos para prover conteúdo contextualmente direcionado para sistemas de televisão com base em tal identificação de segmento de vídeo. Conforme utilizado neste documento, o termo “sistemas de mídia” inclui, entre outros, sistemas de televisão, sistemas de áudio e semelhantes. Conforme utilizado neste documento, o termo “sistemas de televisão” inclui, entre outros, televisões como televisões web e televisões conectadas (também chamadas de “Smart TVs”) e equipamentos incorporados ou co-localizados com a dita televisão, como um ““set-top box” (STB), um disco de vídeo digital (“DVD”) ou um gravador de vídeo digital (“DVR”). Conforme utilizado neste documento, o termo “sinais de televisão” inclui sinais que representam dados de vídeo e áudio que são transmitidos em conjunto (com ou sem metadados) para fornecer os componentes de imagem e som de um programa de televisão ou comercial. Conforme utilizado neste documento, o termo “metadados” significa dados sobre ou relacionados aos dados de vídeo/áudio em sinais de televisão.
[0013] Realizações da presente invenção são dirigidas a sistemas e métodos para identificar qual segmento de vídeo está sendo exibido em uma tela de um sistema de televisão. Em particular, os dados resultantes que identificam o segmento de vídeo que está sendo visualizado atualmente podem ser usados para habilitar a captura e responder adequadamente à reação de um espectador de TV (como solicitar que a programação seja reiniciada desde o início) ou acionar a provisão de conteúdo relevante e informações fornecidas por anunciante ou mensagens comerciais bem direcionadas, permitindo assim a troca perfeita para um espectador, de um ambiente de transmissão convencional e em tempo real, fornecido pela rede do sistema de TV a cabo, para um produto personalizado de vídeo sob demanda (“VoD”) fornecido através de uma conexão com a internet.
[0014] De acordo com algumas realizações, o segmento de vídeo é identificado por amostragem a intervalos (por exemplo, 100 milissegundos) de um subconjunto dos dados de pixel que estão sendo exibidos na tela (ou dados de áudio associados) e, em seguida, encontrar dados semelhantes de pixel (ou áudio) em um banco de dados de conteúdo. De acordo com algumas realizações, o segmento de vídeo é identificado ao extrair dados de áudio ou imagem associados a tal segmento de vídeo e, em seguida, encontrar dados de áudio ou imagem semelhantes em um banco de dados de conteúdo. De acordo com algumas realizações, o segmento de vídeo é identificado processando os dados de áudio associados a tal segmento de vídeo usando técnicas de reconhecimento de fala automatizadas conhecidas. De acordo com algumas realizações, o segmento de vídeo é identificado pelo processamento de metadados associados a tal segmento de vídeo. Tal como aqui utilizado, “indícios” ou “identificadores de conteúdo” podem corresponder a dados de pixel, dados de áudio, dados de imagem, metadados ou uma amostra ou subconjunto desta.
[0015] Realizações da invenção são também dirigidas a sistemas e métodos para prover conteúdo contextualmente direcionado para um sistema de televisão interativa. O direcionamento contextual baseia-se não somente na identificação do segmento de vídeo que está sendo exibido, mas também em uma determinação quanto ao tempo de reprodução ou tempo de deslocamento da porção específica do segmento de vídeo sendo exibido atualmente. Os termos “tempo de reprodução” e “tempo de deslocamento” são usados aqui como sinônimos para se referir a um tempo que está afastado de um ponto fixo no tempo, como o tempo de início de um programa de televisão ou comercial específico.
[0016] Mais especificamente, realizações da invenção compreendem uma tecnologia que pode detectar o que está sendo reproduzido em uma TV conectada, deduzir a matéria que está sendo reproduzida, e interagir com o espectador em conformidade. Em particular, as realizações aqui reveladas superam a capacidade limitada das TVs interativas de extrair estritamente a funcionalidade de um servidor através da Internet, permitindo, assim, novos modelos de negócios, incluindo a capacidade de fornecer acesso instantâneo às versões VoD do conteúdo e prover ao usuário a opção de ver resoluções mais altas ou formatos 3D do conteúdo, se disponível, com a capacidade adicional de começar de novo, avançar, pausar e rebobinar. As realizações da invenção também permitem ter algumas ou todas as mensagens publicitárias incluídas na programação transformada em VoD, personalizadas, somente a título de exemplo e sem limitação, em relação à localização do espectador, grupo demográfico ou histórico de compras, ou reduzir os comerciais em número ou duração ou totalmente eliminados para apoiar determinados modelos de negócios.
[0017] De acordo com algumas realizações, o segmento de vídeo é identificado, e o tempo de deslocamento é determinado ao amostrar um subconjunto dos dados de pixel (ou dados de áudio associados) sendo exibidos na tela e, em seguida, encontrar dados semelhantes de pixel (ou áudio) em um banco de dados de conteúdo. De acordo com algumas realizações, o segmento de vídeo é identificado e o tempo de deslocamento é determinado ao extrair dados de áudio ou imagem associados a tal segmento de vídeo e, em seguida, encontrar dados de áudio ou imagem semelhantes em um banco de dados de conteúdo. De acordo com algumas realizações, o segmento de vídeo é identificado e o tempo de deslocamento é determinado processando os dados de áudio associados a esse segmento de vídeo usando técnicas de reconhecimento de fala automatizadas conhecidas. De acordo com algumas realizações, o segmento de vídeo é identificado e o tempo de deslocamento é determinado processando metadados associados a tal segmento de vídeo.
[0018] Como será descrito em mais detalhes aqui, o sistema para identificar segmentos de vídeo que estão sendo vistos em uma TV conectada e, opcionalmente, determinar tempos de deslocamento, pode residir no sistema de televisão do qual a TV conectada é um componente. De acordo com algumas realizações, uma parte do sistema para identificar segmentos de vídeo reside no sistema de televisão, e outra parte reside em um servidor conectado ao sistema de televisão via Internet.
[0019] Em algumas realizações da invenção, o sistema pode agendar o teste em tempo não real de indícios de mídia acumulados para processamento em momentos economicamente mais vantajosos, como horas não “prime”, quando outras cargas de trabalho de processamento são relativamente leves. Uma vez que os resultados dos ditos testes normalmente são gerados por estatísticas de dados de uso e, como tais, não são tão dependentes do tempo quanto o processamento necessário para acionar um evento contextualmente relacionado na TV do cliente.
[0020] De acordo com algumas realizações da invenção, é provido um método. O método compreende o recebimento de uma pluralidade de conteúdos de mídia conhecidos. A pluralidade de conteúdos de mídia conhecidos possui identificadores de conteúdo conhecido associados (também chamados aqui de “indícios”). O método compreende ainda o armazenamento dos identificadores de conteúdo conhecido associados à pluralidade de conteúdos de mídia conhecidos em um banco de dados em tempo não real. O método compreende ainda a determinação de um subconjunto da pluralidade de conteúdos de mídia conhecidos que possuem dados associados contextualmente relacionados. O método compreende ainda o armazenamento dos identificadores de conteúdo conhecido associados ao subconjunto da pluralidade de conteúdos de mídia conhecidos com dados contextualmente relacionados associados em um banco de dados em tempo real. O método compreende ainda a recepção de identificadores de conteúdo desconhecido correspondentes ao conteúdo de mídia desconhecido exibido por um sistema de mídia. O método compreende ainda a determinação de que os identificadores de conteúdo desconhecido correspondem ou não a identificadores de conteúdo conhecido associados ao subconjunto da pluralidade de conteúdos de mídia conhecidos no banco de dados em tempo real. O método compreende ainda a seleção de conteúdo de mídia conhecido associado aos identificadores de conteúdo conhecido correspondentes do banco de dados em tempo real e a identificação do conteúdo de mídia desconhecido como o conteúdo de mídia conhecido selecionado, quando os identificadores de conteúdo desconhecido corresponderem a identificadores de conteúdo conhecido no banco de dados em tempo real. O método compreende ainda a seleção de conteúdo de mídia conhecido associado a identificadores de conteúdo conhecido do banco de dados em tempo não real correspondente aos identificadores de conteúdo desconhecido e a identificação do conteúdo de mídia desconhecido como o conteúdo de mídia conhecido selecionado, quando os identificadores de conteúdo desconhecido não corresponderem a identificadores de conteúdo conhecido no banco de dados em tempo real.
[0021] Em algumas realizações, o método compreende ainda a recuperação dos dados contextualmente relacionados associados ao conteúdo de mídia conhecido selecionado e a facilitação da exibição no sistema de mídia dos dados contextualmente relacionados, quando os identificadores de conteúdo desconhecido corresponderem a identificadores de conteúdo conhecido no banco de dados em tempo real. Em algumas realizações, o método compreende ainda o cálculo de estatísticas usando o conteúdo de mídia conhecido selecionado, quando os identificadores de conteúdo desconhecido não correspondem a identificadores de conteúdo conhecido no banco de dados em tempo real. Em algumas realizações, os identificadores de conteúdo desconhecido compreendem pelo menos um dentre uma amostra de dados de pixel ou uma amostra de dados de áudio do conteúdo de mídia desconhecido exibido pelo sistema de mídia. Em algumas realizações, o método compreende ainda a determinação de um tempo de deslocamento associado ao conteúdo de mídia desconhecido usando os identificadores de conteúdo desconhecido e os identificadores de conteúdo conhecido associados ao conteúdo de mídia conhecido selecionado.
[0022] Em algumas realizações, o método é implementado em um ou mais processadores e um ou mais meios de armazenamento legíveis por máquina não transitórios compreendidos no sistema de mídia. Em algumas realizações, o método é implementado em um ou mais processadores e um ou mais meios de armazenamento legíveis por máquina não transitórios compreendidos em um servidor localizado remotamente ao sistema de mídia. Em algumas realizações, as etapas para determinar se os identificadores de conteúdo desconhecido correspondem a identificadores de conteúdo conhecido associados ao subconjunto da pluralidade de conteúdos de mídia conhecidos no banco de dados em tempo real, selecionar conteúdo de mídia conhecido associado aos identificadores de conteúdo conhecido correspondentes do banco de dados em tempo real e identificar o conteúdo de mídia desconhecido como o conteúdo de mídia conhecido selecionado, quando os identificadores de conteúdo desconhecido corresponderem a identificadores de conteúdo conhecido no banco de dados em tempo real, são executadas em tempo real. Em algumas realizações, as etapas para seleção de conteúdo de mídia conhecido associado a identificadores de conteúdo conhecido do banco de dados em tempo não real correspondente aos identificadores de conteúdo desconhecido e a identificação do conteúdo de mídia desconhecido como o conteúdo de mídia conhecido selecionado, quando os identificadores de conteúdo desconhecido não corresponderem a identificadores de conteúdo conhecido no banco de dados em tempo real, são executadas em tempo não real.
[0023] De acordo com algumas realizações da invenção, é provido um sistema. O sistema inclui um ou mais processadores. O sistema inclui ainda um meio de armazenamento legível por máquina não transitório que contém instruções que, quando executadas nos um ou mais processadores, fazem com que os um ou mais processadores executem operações, incluindo as etapas dos métodos acima.
[0024] De acordo com algumas realizações da invenção, pode ser provido um produto de programa de computador tangivelmente incorporado a um meio de armazenamento legível por máquina não transitório de um dispositivo de computação. O produto do programa de computador pode incluir instruções configuradas para fazer com que um ou mais processadores de dados executem as etapas recitadas nos métodos acima.
[0025] Os termos e expressões que foram empregados são usados como termos de descrição e não de limitação, e ao usar tais termos e expressões, não há intenção de excluir quaisquer equivalentes das funcionalidades mostradas e descritas, ou porções destas. No entanto, reconhece-se que são possíveis diversas modificações dentro do escopo dos sistemas e métodos reivindicados. Assim, deve ser entendido que, embora o presente sistema e os presentes métodos tenham sido especificamente revelados por exemplos e funcionalidades opcionais, podem ser recorridas modificações e variações dos conceitos aqui revelados pelos técnicos no assunto, e que tais modificações e variações estão consideradas dentro do escopo dos sistemas e métodos conforme definidos pelas reivindicações apensas.
[0026] Este sumário não se destina a identificar características-chave ou essenciais da matéria reivindicada, nem se destina a ser usado isoladamente para determinar o escopo da matéria reivindicada. A matéria deve ser entendida em referência a porções apropriadas de todo o relatório descritivo desta patente, todos ou quaisquer desenhos, e cada reivindicação.
[0027] O que precede, em conjunto com outras funcionalidades e realizações, tornar-se-á mais evidente ao se referir à seguinte descrição, às reivindicações e aos desenhos apensos.
BREVE DESCRIÇÃO DOS DESENHOS
[0028] As realizações ilustrativas da presente invenção são descritas em detalhes abaixo em referência às seguintes figuras de desenho, nas quais números de referência semelhantes representam componentes ou partes semelhantes em todos os diversos desenhos.
[0029] A Figura 1 é um diagrama de blocos de um exemplo de um sistema de correspondência para identificar o conteúdo de mídia que está sendo exibido por um sistema de mídia de acordo com as realizações da invenção.
[0030] A Figura 2 é um exemplo de um sistema de correspondência que identifica pontos de dados desconhecidos de acordo com as realizações da invenção.
[0031] A Figura 3 é um diagrama de blocos de um exemplo de um sistema de captura de mídia de acordo com as realizações da invenção.
[0032] A Figura 4 é um diagrama de blocos de um exemplo de um sistema para coletar o conteúdo de mídia apresentado por uma tela de acordo com as realizações da invenção.
[0033] A Figura 5 é um diagrama de blocos de um exemplo de um sistema para melhorar o gerenciamento de carga de trabalho em sistemas de monitoramento de mídia ACR de acordo com as realizações da invenção.
[0034] A Figura 6 é um diagrama de blocos de um exemplo de um roteador de pesquisas para rotear indícios em um sistema de monitoramento de mídia de acordo com as realizações da invenção.
[0035] A Figura 7 é um diagrama de blocos de um exemplo de um mecanismo de correspondência em tempo real para processamento de indícios em tempo real de acordo com as realizações da invenção.
[0036] A Figura 8 é um diagrama de blocos de um exemplo de um mecanismo de correspondência em tempo não real para processamento de indícios em tempo não real de acordo com as realizações da invenção.
[0037] A Figura 9 é um fluxograma de um exemplo de um método para melhorar o gerenciamento de carga de trabalho em sistemas de monitoramento de mídia ACR de acordo com as realizações da invenção.
[0038] A Figura 10 é um gráfico que ilustra locais pontuais e os pontos de caminho em torno destes de acordo com as realizações da invenção.
[0039] A Figura 11 é um gráfico que ilustra um conjunto de pontos que localizados a uma distância de um ponto de consulta, de acordo com as realizações da invenção.
[0040] A Figura 12 é um gráfico que ilustra possíveis valores de pontos de acordo com as realizações da invenção.
[0041] A Figura 13 é um gráfico que ilustra um espaço dividido em anéis de largura exponencialmente crescente de acordo com as realizações da invenção.
[0042] A Figura 14 é um gráfico que ilustra caminhos de auto-interseção e um ponto de consulta de acordo com as realizações da invenção.
[0043] A Figura 15 é um gráfico que ilustra três locais pontuais consecutivos e os pontos de caminho em torno destes de acordo com as realizações da invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
[0044] Na descrição a seguir, para fins de explicação, detalhes específicos são apresentados de modo a prover uma compreensão completa das realizações da invenção. No entanto, será evidente que diversas realizações podem ser praticadas sem estes detalhes específicos. As figuras e a descrição não se destinam a ser restritivas.
[0045] A descrição que se segue fornece apenas realizações exemplares, e não se destina a limitar o escopo, a aplicabilidade ou a configuração da revelação. Em vez disso, a descrição das realizações exemplares que se segue proverá aos técnicos no assunto uma descrição que permite implementar uma realização exemplar. Deve entender-se que diversas mudanças podem ser feitas na função e disposição de elementos sem se afastar do espírito e do escopo da invenção, conforme estabelecido nas reivindicações apensas.
[0046] Detalhes específicos são fornecidos na descrição a seguir para prover uma compreensão completa das realizações. No entanto, um técnico no assunto entenderá que as realizações podem ser praticadas sem estes detalhes específicos. Por exemplo, circuitos, sistemas, redes, processos e outros componentes podem ser mostrados como componentes na forma de diagrama de blocos para não obscurecer as realizações com detalhes desnecessários. Em outros casos, circuitos, processos, algoritmos, estruturas e técnicas bem conhecidos podem ser mostrados sem detalhes desnecessários para evitar obscurecer as realizações.
[0047] Além disso, observa-se que realizações individuais podem ser descritas como um processo, que é representado como um fluxograma, um diagrama de fluxo, um diagrama de fluxo de dados, um diagrama de estrutura ou um diagrama de blocos. Embora um fluxograma possa descrever as operações como um processo sequencial, muitas das operações podem ser realizadas em paralelo ou simultaneamente. Além disso, a ordem das operações pode ser reorganizada. Um processo é encerrado quando as operações forem concluídas, mas pode ter etapas adicionais não incluídas em uma figura. Um processo pode corresponder a um método, uma função, um procedimento, uma sub-rotina, um subprograma, etc. Quando um processo corresponde a uma função, seu encerramento pode corresponder a um retorno da função para a função de chamada ou a função principal.
[0048] O termo “meio de armazenamento legível por máquina” ou “meio de armazenamento legível por computador” inclui, entre outros, dispositivos de armazenamento portáteis ou não portáteis, dispositivos de armazenamento ópticos e diversos outros meios capazes de armazenar, conter ou portar instrução(ões) e/ou dados. Um meio de armazenamento legível por máquina ou meio de armazenamento legível por computador pode incluir um meio não transitório, no qual dados podem ser armazenados, e isso não inclui ondas portadoras e/ou sinais eletrônicos transitórios propagando por conexões sem fio ou com fio. Exemplos de um meio não transitório podem incluir, entre outros, um disco ou fita magnética, mídia de armazenamento óptico, como disco compacto (“CD”) ou disco versátil digital (“DVD”), memória flash, memória ou dispositivos de memória. Um produto de programa de computador pode incluir código e/ou instruções executáveis por máquina que possam representar um procedimento, uma função, um subprograma, um programa, uma rotina, uma sub-rotina, um módulo, um pacote de software, uma classe ou qualquer combinação de instruções, estruturas de dados ou declarações de programas. Um segmento de código pode ser acoplado a outro segmento de código ou a um circuito de hardware passando e/ou recebendo informações, dados, argumentos, parâmetros ou conteúdo da memória. Informações, argumentos, parâmetros, dados ou outras informações podem ser passadas, encaminhadas ou transmitidas usando qualquer meio adequado, incluindo compartilhamento de memória, passagem de mensagens, passagem de token, transmissão de rede ou outra técnica de transmissão.
[0049] Além disso, as realizações podem ser implementadas por hardware, software, firmware, middleware, microcódigo, linguagens de descrição de hardware ou qualquer combinação destes. Quando implementado em software, firmware, middleware ou microcódigo, o código de programa ou segmentos de código para executar as tarefas necessárias (por exemplo, um produto de programa de computador) podem ser armazenados em um meio legível por máquina. Um ou mais processadores podem executar as tarefas necessárias.
[0050] Os sistemas representados em algumas das figuras podem ser providos em diversas configurações. Em algumas realizações, os sistemas podem ser configurados como um sistema distribuído, onde um ou mais componentes do sistema são distribuídos em uma ou mais redes em um sistema de computação em nuvem.
[0051] Os sistemas e os métodos aqui descritos podem referir-se às abordagens técnicas reveladas em diversos pedidos de patente relacionados, incluindo a Patente dos Estados Unidos n° US 8,595,781, a Patente dos Estados Unidos n° US 8,769,584, o Pedido de Patente dos Estados Unidos n° US 2010/0306805, o Pedido de Patente dos Estados Unidos n° US 2014/0082663, o Pedido de Patente dos Estados Unidos n° 2014/0201769 e a Patente dos Estados Unidos n° US 8,595,781, aqui incorporados por referência na íntegra.
[0052] As realizações exemplares aqui reveladas ensinam um sistema e método que estendem o significado do termo “contextualmente direcionado” utilizado acima além da exibição de gráficos simples ou segmentos de vídeo curtos relacionados ao conteúdo associado, à substituição completa de formas substancialmente aprimoradas do conteúdo selecionado, substituindo-o totalmente por um formato VoD, permitindo ao espectador reiniciar o conteúdo desde o início, com controle completo de “DVR virtual”, incluindo as funções reiniciar, pausar, “avançar” e “rebobinar”, com a capacidade de visualizar o conteúdo em maior resolução ou em 3D, se disponível, e a capacidade de remover mensagens comerciais e substituí-las por mensagens mais direcionadas ao espectador por localização, dados demográficos ou comportamento comercial anterior com base em tais informações armazenadas na forma de módulos de dados compactos do tipo comumente chamado de “cookies” na memória de um sistema de visualização de TV conectado, como uma Smart TV. Isso permite o desenvolvimento e venda a patrocinadores ou corretores de diversos produtos de publicidade “premium” bem direcionados, ou em um modelo de negócios alternativo, a remoção de algumas ou todas as mensagens publicitárias como um serviço premium para o espectador.
[0053] A Figura 1 ilustra um sistema de correspondência 100 que pode identificar conteúdo desconhecido. Em alguns exemplos, o conteúdo desconhecido pode incluir um ou mais pontos de dados desconhecidos. Em tais exemplos, o sistema de correspondência 100 pode combinar pontos de dados desconhecidos com pontos de referência de dados para identificar segmentos de vídeo desconhecidos associados aos pontos de dados desconhecidos. Os pontos de dados de referência podem ser incluídos em um banco de dados de referência 116.
[0054] O sistema de correspondência 100 inclui um dispositivo de cliente 102 e um servidor de correspondência 104. O dispositivo cliente 102 inclui um cliente de mídia 106, um dispositivo de entrada 108, um dispositivo de saída 110 e uma ou mais aplicações contextuais 126. O cliente de mídia 106 (que pode incluir um sistema de televisão, um sistema de computador ou outro dispositivo eletrônico capaz de se conectar à Internet) pode decodificar dados (por exemplo, sinais de transmissão, pacotes de dados ou outros dados de quadros) associados a programas de vídeo 128. O cliente de mídia 106 pode colocar os conteúdos descodificados de cada quadro do vídeo em um buffer de quadros de vídeo em preparação para exibição ou para processamento posterior de informações de pixel dos quadros de vídeo. O dispositivo de cliente 102 pode ser qualquer sistema de decodificação eletrônico que possa receber e decodificar um sinal de vídeo. O dispositivo de cliente 102 pode receber programas de vídeo 128 e armazenar informações de vídeo em um buffer de vídeo (não mostrado). O dispositivo de cliente 102 pode processar as informações de buffer de vídeo e produzir pontos de dados desconhecidos (que podem ser chamados de “indícios”), descritos em maiores detalhes abaixo em relação à Figura 3. O cliente de mídia 106 pode transmitir os pontos de dados desconhecidos para o servidor de correspondência 104 para comparação com pontos de dados de referência no banco de dados de referência 116.
[0055] O dispositivo de entrada 108 pode incluir qualquer dispositivo adequado que permita que uma solicitação ou outras informações sejam inseridas no cliente de mídia 106. Por exemplo, o dispositivo de entrada 108 pode incluir um teclado, um mouse, um dispositivo de entrada de reconhecimento de voz, uma interface sem fios para receber entrada sem fios a partir de um dispositivo sem fios (por exemplo, de um controle remoto, um dispositivo móvel ou outro dispositivo sem fios adequado), ou qualquer outro dispositivo de entrada adequado. O dispositivo de saída 110 pode incluir qualquer dispositivo adequado que possa apresentar ou emitir informação de saída, tal como uma tela, uma interface sem fios para transmitir uma saída sem fios para um dispositivo sem fios (por exemplo, para um dispositivo móvel ou outro dispositivo sem fios adequado), uma impressora, ou outro dispositivo de saída adequado.
[0056] O sistema de correspondência 100 pode iniciar um processo de identificação de um segmento de vídeo ao primeiro coletar amostras de dados a partir de fontes de dados de vídeo conhecidas 118. Por exemplo, o servidor de correspondência 104 coleta dados para construir e manter um banco de dados de referência 116 a partir de uma variedade de fontes de dados de vídeo 118. As fontes de dados de vídeo 118 podem incluir provedores de mídia de programas de televisão, filmes ou qualquer outra fonte de vídeo adequada. Os dados de vídeo das fontes de dados de vídeo 118 podem ser providos como transmissões por radiodifusão, como canais de TV a cabo, como fontes de transmissão da Internet, e de qualquer outra fonte de dados de vídeo. Em alguns exemplos, o servidor de correspondência 104 pode processar o vídeo recebido das fontes de dados de vídeo 118 para gerar e coletar pontos de dados de vídeo de referência no banco de dados de referência 116, conforme descrito abaixo. Em alguns exemplos, programas de vídeo de fontes de dados de vídeo 118 podem ser processados por um sistema de ingerência de programas de vídeo de referência (não mostrado), que pode produzir os pontos de dados de vídeo de referência e enviá-los para o banco de dados de referência 116 para armazenamento. Os pontos de dados de referência podem ser utilizados conforme descrito acima para determinar informações que são, em seguida, utilizadas para analisar pontos de dados desconhecidos.
[0057] O servidor de correspondência 104 pode armazenar pontos de dados de vídeo de referência para cada programa de vídeo recebido por um período de tempo (por exemplo, um número de dias, um número de semanas, um número de meses ou qualquer outro período de tempo adequado) no banco de dados de referência 116. O servidor de correspondência 104 pode construir e atualizar de forma contínua e periódica um banco de dados de referência 116 de amostras de programação de televisão (por exemplo, incluindo pontos de dados de referência, que também podem ser chamados de indícios ou valores de indício). Em alguns exemplos, os dados coletados são uma representação compacta das informações de vídeo amostradas a partir de quadros de vídeo periódicos (por exemplo, a cada cinco quadros de vídeo, a cada dez quadros de vídeo, a cada quinze quadros de vídeo ou a outro número adequado de quadros). Em alguns exemplos, são coletados um número de bytes de dados por quadro (por exemplo, 25 bytes, 50 bytes, 75 bytes, 100 bytes ou qualquer outra quantidade de bytes por quadro) para cada fonte de programa. Qualquer número de fontes de programa pode ser usado para obter vídeo, como 25 canais, 50 canais, 75 canais, 100 canais, 200 canais ou qualquer outro número de fontes de programa. Usando o exemplo de quantidade de dados, o total de dados coletados durante um período de 24 horas ao longo de três dias torna-se muito grande. Portanto, é vantajoso reduzir o número de conjuntos de pontos de referência reais para reduzir a carga de armazenamento do servidor de correspondência 104.
[0058] O cliente de mídia 106 pode enviar uma comunicação 122 para um mecanismo de correspondência 112 do servidor de correspondência 104. A comunicação 122 pode incluir uma solicitação para que o mecanismo de correspondência 112 identifique conteúdo desconhecido. Por exemplo, o conteúdo desconhecido pode incluir um ou mais pontos de dados desconhecidos, e o banco de dados de referência 116 pode incluir uma pluralidade de pontos de dados de referência. O mecanismo de correspondência 112 pode identificar o conteúdo desconhecido, combinando os pontos de dados desconhecidos com os dados de referência no banco de dados de referência 116. Em alguns exemplos, o conteúdo desconhecido pode incluir dados de vídeo desconhecidos sendo apresentados por uma tela (para ACR baseado em vídeo), uma consulta de pesquisa (para um sistema MapReduce, um sistema Bigtable ou outro sistema de armazenamento de dados), uma imagem desconhecida de uma face (para reconhecimento facial), uma imagem desconhecida de um padrão (para reconhecimento de padrões) ou qualquer outro dado desconhecido que possa ser comparado com um banco de dados de dados de referência. Os pontos de dados de referência podem ser derivados de dados recebidos das fontes de dados de vídeo 118. Por exemplo, os pontos de dados podem ser extraídos das informações fornecidas pelas fontes de dados de vídeo 118, e podem ser indexados e armazenados no banco de dados de referência 116.
[0059] O mecanismo de correspondência 112 pode enviar uma solicitação ao mecanismo de determinação de candidatos 114 para determinar os pontos de dados candidatos a partir do banco de dados de referência 116. Um ponto de dados candidato pode ser um ponto de dados de referência que está a determinada distância do ponto de dados desconhecido. Em alguns exemplos, uma distância entre um ponto de dados de referência e um ponto de dados desconhecido pode ser determinada comparando um ou mais pixels (por exemplo, um único pixel, um valor que representa o grupo de pixels (por exemplo, uma média, uma média aritmética, uma mediana, ou outro valor), ou outro número adequado de pixels) do ponto de dados de referência com um ou mais pixels do ponto de dados desconhecido. Em alguns exemplos, um ponto de dados de referência pode ser a determinada distância a partir de um ponto de dados desconhecido quando os pixels em cada local de amostra estiverem dentro de um intervalo de valores de pixel específico.
[0060] Em um exemplo ilustrativo, um valor de pixel de um pixel pode incluir um valor de vermelho, um valor de verde e um valor de azul (em um espaço de cor vermelho- verde-azul (“RGB”)). Em tal exemplo, um primeiro pixel (ou valor que representa um primeiro grupo de pixels) pode ser comparado com um segundo pixel (ou valor representando um segundo grupo de pixels) comparando os valores de vermelho, os valores de verde e os valores de azul correspondentes, respectivamente, e garantindo que os valores estejam dentro de um determinado intervalo de valores (por exemplo, dentro de 0 a 5 valores). Por exemplo, o primeiro pixel pode ser combinado com o segundo pixel quando (1) um valor de vermelho do primeiro pixel estiver dentro de 5 valores em um intervalo de valores de 0 a 255 (mais ou menos) de um valor de vermelho do segundo pixel, (2) um valor de verde do primeiro pixel estiver dentro de 5 valores em um intervalo de valores de 0 a 255 (mais ou menos) de um valor de verde do segundo pixel e (3) um valor de azul do primeiro pixel estiver dentro de 5 valores em um intervalo de valores de 0 a 255 (mais ou menos) de um valor de azul do segundo pixel. Em tal exemplo, um ponto de dados candidato é um ponto de dados de referência que é uma correspondência aproximada ao ponto de dados desconhecido, levando a diversos pontos de dados candidatos (relacionados a diferentes segmentos de mídia) sendo identificados para o ponto de dados desconhecido. O mecanismo de determinação de candidatos 114 pode retornar os pontos de dados candidatos ao mecanismo de correspondência 112.
[0061] Para um ponto de dados candidato, o mecanismo de correspondência 112 pode adicionar um token em um compartimento que está associado ao ponto de dados candidato e que é atribuído a um segmento de vídeo identificado a partir do qual o ponto de dados candidato é derivado. Um token correspondente pode ser adicionado a todos os compartimentos que correspondem a pontos de dados candidatos identificados. À medida que mais pontos de dados desconhecidos (correspondentes ao conteúdo desconhecido que está sendo visto) são recebidos pelo servidor de correspondência 104 do dispositivo de cliente 102, um processo de determinação do ponto de dados candidato similar pode ser executado, e tokens podem ser adicionados aos compartimentos correspondentes aos pontos de dados candidatos identificados. Apenas um dos compartimentos corresponde ao segmento do conteúdo de vídeo desconhecido que está sendo visualizado, com os outros compartimentos correspondentes a pontos de dados candidatos que são correspondentes devido a valores de pontos de dados semelhantes (por exemplo, com valores de cor de pixels semelhantes), mas que não correspondem ao segmento real sendo visualizado. O compartimento para o segmento de conteúdo de vídeo desconhecido que está sendo visualizado terá mais tokens atribuídos a ele do que outros compartimentos para segmentos que não estão sendo visualizados. Por exemplo, à medida que são recebidos mais pontos de dados desconhecidos, um número maior de pontos de dados de referência que correspondem ao compartimento são identificados como pontos de dados candidatos, levando a adicionar mais tokens ao compartimento. Uma vez que um compartimento inclui um número específico de tokens, o mecanismo de correspondência 112 pode determinar que o segmento de vídeo associado ao compartimento está sendo atualmente exibido no dispositivo de cliente 102. Um segmento de vídeo pode incluir um programa de vídeo inteiro ou uma parte do programa de vídeo. Por exemplo, um segmento de vídeo pode ser um programa de vídeo, uma cena de um programa de vídeo, um ou mais quadros de um programa de vídeo ou qualquer outra parte de um programa de vídeo.
[0062] A Figura 2 ilustra componentes de um sistema de correspondência 200 para identificar dados desconhecidos. Por exemplo, o mecanismo de correspondência 212 pode executar um processo de correspondência para identificar conteúdo desconhecido (por exemplo, segmentos de mídia desconhecidos, uma consulta de pesquisa, uma imagem de um rosto ou um padrão, ou semelhante) usando um banco de dados de conteúdo conhecido (por exemplo, segmentos de mídia conhecidos, informações armazenadas em um banco de dados de pesquisa, rostos ou padrões conhecidos, ou semelhante). Por exemplo, o mecanismo de correspondência 212 recebe o conteúdo de dados desconhecido 202 (que pode ser chamado de “indício”) para ser correspondido com um ponto de dados de referência dos pontos de dados de referência 204 em um banco de dados de referência. O conteúdo de dados desconhecido 202 também pode ser recebido pelo mecanismo de determinação de candidatos 214, ou enviado ao mecanismo de determinação de candidatos 214 do mecanismo de correspondência 212. O mecanismo de determinação de candidatos 214 pode conduzir um processo de pesquisa para identificar os pontos de dados candidatos 206 pesquisando os pontos de dados de referência 204 no banco de dados de referência. Em um exemplo, o processo de pesquisa pode incluir um processo de pesquisa de vizinho mais próximo para produzir um conjunto de valores vizinhos (que estão a certa distância dos valores desconhecidos do conteúdo de dados desconhecido 202). Os pontos de dados candidatos 206 são introduzidos no mecanismo de correspondência 212 para conduzir o processo de correspondência a gerar um resultado de correspondência 208. Dependendo da aplicação, o resultado correspondente 208 pode incluir dados de vídeo sendo apresentados por uma tela, um resultado de busca, uma determinada face usando reconhecimento facial, um determinado padrão usando reconhecimento de padrões ou qualquer outro resultado.
[0063] Ao determinar os pontos de dados candidatos 206 para um ponto de dados desconhecido (por exemplo, conteúdo de dados desconhecido 202), o mecanismo de determinação de candidatos 214 determina uma distância entre o ponto de dados desconhecido e os pontos de dados de referência 204 no banco de dados de referência. Os pontos de dados de referência que estão a uma certa distância do ponto de dados desconhecido são identificados como os pontos de dados candidatos 206. Em alguns exemplos, uma distância entre um ponto de dados de referência e um ponto de dados desconhecido pode ser determinada comparando um ou mais pixels do ponto de dados de referência com um ou mais pixels do ponto de dados desconhecido, como descrito acima em relação à Figura 1. Em alguns exemplos, um ponto de dados de referência pode ser a determinada distância a partir de um ponto de dados desconhecido quando os pixels em cada local de amostra estiverem dentro de um intervalo de valores específico. Conforme descrito acima, um ponto de dados candidato é um ponto de dados de referência que é uma correspondência aproximada ao ponto de dados desconhecido, e devido à correspondência aproximada, diversos pontos de dados candidatos (relacionados a diferentes segmentos de mídia) são identificados para o ponto de dados desconhecido. O mecanismo de determinação de candidatos 114 pode retornar os pontos de dados candidatos ao mecanismo de correspondência 112.
[0064] A Figura 3 ilustra um exemplo de um sistema de captura de ingerência de vídeo 400 que inclui um buffer de memória 302 de um decodificador. O decodificador pode fazer parte do servidor de correspondência 104 ou do cliente de mídia 106. O decodificador pode não funcionar com, ou exigir um painel ou dispositivo de exibição de televisão físico. O decodificador pode decodificar e, quando necessário, descriptografar um programa de vídeo digital para uma representação de bitmap descompactada de um programa de televisão. Para fins de construção de um banco de dados de referência de dados de vídeo de referência (por exemplo, o banco de dados de referência 316), o servidor de correspondência 104 pode adquirir uma ou mais matrizes de pixels de vídeo, que são lidas a partir do buffer de quadros de vídeo. Uma matriz de pixels de vídeo é chamada de um patch de vídeo. Um patch de vídeo pode ser qualquer forma ou padrão arbitrário, mas, para os propósitos deste exemplo específico, é descrito como uma matriz de 10x10 pixels, incluindo dez pixels horizontalmente por dez pixels verticalmente. Também para o propósito deste exemplo, presume-se que existem 25 posições de patch de pixels extraídas do buffer de quadros de vídeo, que são uniformemente distribuídas dentro dos limites do buffer.
[0065] Uma alocação de exemplo de patches de pixels (por exemplo, patch de pixel 304) é mostrada na Figura 3. Conforme mencionado acima, um patch de pixel pode incluir uma matriz de pixels, como uma matriz de 10x10. Por exemplo, o patch de pixel 304 inclui uma matriz de pixels de 10x10. Um pixel pode incluir valores de cor, como um valor de vermelho, um de verde e um de azul. Por exemplo, um pixel 306 é mostrado com valores de cor vermelho-verde-azul (“RGB”). Os valores de cor para um pixel podem ser representados por um valor binário de oito bits para cada cor. Outros valores de cores adequados que podem ser usados para representar cores de um pixel incluem valores de luma e chroma (Y, Cb, Cr) ou qualquer outro valor de cor adequado.
[0066] Um valor de média (ou um valor de média aritmética em alguns casos) de cada patch de pixels é tomado, e um registro de dados resultante é criado e marcado com um código de tempo (ou marca de horário). Por exemplo, um valor médio é encontrado para cada matriz de patch de pixels 10x10, caso em que são produzidos vinte e quatro bits de dados por vinte e cinco locais de buffer de exibição, para um total de 600 bits de informações de pixels por quadro. Em um exemplo, uma média do patch de pixels 304 é calculada e é mostrada pela média de patch de pixels 308. Em um exemplo ilustrativo, o código de tempo pode incluir um “tempo de época”, que representa o tempo total decorrido (em frações de segundo) desde a meia-noite de 1° de janeiro de 1970. Por exemplo, os valores de média de patch de pixels 308 são montados com um código de tempo 412. O tempo de época é uma convenção aceita em sistemas de computação, incluindo, por exemplo, sistemas baseados em Unix. Informações sobre o programa de vídeo, conhecidas como metadados, são apensas ao registro de dados. Os metadados podem incluir qualquer informação sobre um programa, como um identificador de programa, um tempo de programa, uma duração de programa ou qualquer outra informação. O registro de dados, incluindo o valor médio de um patch de pixel, o código de tempo e os metadados formam um “ponto de dados” (também chamado de “indício”). O ponto de dados 310 é um exemplo de um ponto de dados de vídeo de referência.
[0067] Um processo de identificação de segmentos de vídeo desconhecidos começa com etapas semelhantes à criação do banco de dados de referência. Por exemplo, a Figura 4 ilustra um sistema de captura de ingerência de vídeo 400 que inclui um buffer de memória 402 de um decodificador. O sistema de captura de ingerência de vídeo 400 pode ser parte do dispositivo de cliente 102 que processa os dados apresentados por uma tela (por exemplo, em um monitor de televisão conectado à Internet, como uma Smart TV, um dispositivo móvel ou outro dispositivo de visualização de televisão). O sistema de captura de ingerência de vídeo 400 pode utilizar um processo semelhante para gerar o ponto de dados de vídeo desconhecido 410, como o utilizado pelo sistema 300 para a criação do ponto de dados de vídeo de referência 310. Em um exemplo, o cliente de mídia 106 pode transmitir o ponto de dados de vídeo desconhecido 410 para o mecanismo de correspondência 112 para identificar um segmento de vídeo associado ao ponto de dados de vídeo desconhecido 410 pelo servidor de correspondência 104.
[0068] Como mostrado na Figura 4, um patch de vídeo 404 pode incluir uma matriz de pixels de 10x10. O patch de vídeo 404 pode ser extraído de um quadro de vídeo sendo apresentada por uma tela. Uma pluralidade desses patches de pixels podem ser extraídos do quadro de vídeo. Em um exemplo ilustrativo, se vinte e cinco tais patches de pixels forem extraídos do quadro de vídeo, o resultado será um ponto representando uma posição em um espaço de 75 dimensões. Um valor de média (ou média aritmética) pode ser calculado para cada valor de cor da matriz (por exemplo, valor de cor RGB, valores de cor Y, Cr, Cb ou semelhantes). Um registro de dados (por exemplo, ponto de dados de vídeo desconhecido 410) é formado a partir dos valores de pixel médios, e o tempo atual é anexado aos dados. Um ou mais pontos de dados de vídeo desconhecidos podem ser enviados ao servidor de correspondência 104 para serem correspondidos com dados do banco de dados de referência 116 usando as técnicas descritas acima.
[0069] A Figura 5 é um diagrama de blocos de um exemplo de um sistema para melhorar o gerenciamento de carga de trabalho em sistemas de monitoramento de mídia ACR de acordo com as realizações da invenção. O sistema de televisão de cliente 501a envia indícios de mídia desconhecidos 501b (também aqui chamados de “identificadores de conteúdo desconhecido”) correspondentes ao conteúdo de mídia desconhecido exibido pelo sistema de televisão de cliente 501a para o gerenciador de indícios 502a. O gerenciador de indícios 502a recebe os indícios de mídia desconhecidos 501b e encaminha os indícios de mídia desconhecidos 502b ao roteador de pesquisas 503. O roteador de pesquisas 503 roteia os indícios de mídia desconhecidos 502b para o mecanismo de correspondência em tempo real 504b e/ou o mecanismo de correspondência em tempo não real 505b. Por exemplo, o roteador de pesquisas 503 pode rotear imediatamente os inícios de mídia desconhecidos 502b para o mecanismo de correspondência em tempo real 504b para identificação imediata e/ou pode armazenar uma cópia de inícios de mídia desconhecidos 502b no cache de indícios 506 para fornecer ao mecanismo de correspondência em tempo não real 505b mais tarde. Os indícios de mídia desconhecidos 502b podem ser recuperados do cache de indícios 506 e providos ao mecanismo de correspondência em tempo não real 505b em um momento mais conveniente ou eficiente, como durante a noite, uma vez que a identificação em tempo real não é necessária.
[0070] O mecanismo de correspondência em tempo real 504b e o mecanismo de correspondência em tempo não real 505b têm seus próprios bancos de dados de referência de indícios de conteúdo de mídia conhecido (também aqui chamados de “identificadores de conteúdo conhecido”). O mecanismo de correspondência em tempo real 504b procura dados de referência em tempo real 504a para os indícios de mídia desconhecidos 502b em tempo real, após o recebimento de indícios de mídia desconhecidos 502b do roteador de pesquisas 503. Os dados de referência em tempo real 504a contêm indícios de conteúdo de mídia conhecido associados a um conteúdo de mídia conhecido com dados contextualmente relacionados, como dados adicionais a serem fornecidos ao sistema de televisão de cliente 501a relevante ao conteúdo de mídia que está sendo exibido. Assim, os dados de referência em tempo real 504a podem ser um banco de dados muito menor que os dados de referência em tempo não real 505a. É importante que a identificação de conteúdo de mídia com dados contextualmente relacionados seja feita em tempo real, de modo que os dados contextualmente relacionados possam ser fornecidos ao sistema de televisão de cliente 501a enquanto o conteúdo da mídia estiver sendo exibido. Exemplos de dados contextualmente relacionados incluem conteúdo informativo, conteúdo interativo, conteúdo publicitário, conteúdo textual, conteúdo gráfico, conteúdo de áudio, conteúdo de vídeo e/ou similares. O mecanismo de correspondência em tempo real 504a pode suportar serviços de sobreposição ou de substituição de conteúdo específico ao espectador, interativo e contextual, que tipicamente tem apenas uma fração de segundo para acionar (isto é, os dados contextualmente relacionados devem ser providos em tempo real).
[0071] Se os indícios de mídia desconhecidos 502b forem identificadas como indícios de mídia conhecidos correspondentes, associados ao conteúdo de mídia conhecido dentro dos dados de referência em tempo real 504a, os dados contextualmente relacionados correspondentes ao conteúdo de mídia conhecido podem ser recuperados a partir de dados de referência em tempo real 504a e fornecidos em 504c para o sistema de televisão de cliente 501a. Em algumas realizações, o sistema de televisão de cliente 501a pode, em seguida, exibir os dados contextualmente relacionados. Tais dados contextualmente relacionados podem incluir, apenas a título de exemplo, a substituição de uma mensagem comercial por uma mais direcionada ao espectador específico com base no conteúdo de mídia que está sendo visualizado, informações adicionais sobre o conteúdo de mídia que está sendo visualizado, ou uma oportunidade de interagir com o conteúdo de mídia em si ou outros espectadores que também possam estar assistindo-o. Além disso, se os indícios de mídia desconhecidos 502b forem identificadas como indícios de mídia conhecidos correspondentes associados ao conteúdo de mídia conhecido dentro dos dados de referência em tempo real 504a, uma identificação do conteúdo de mídia conhecido correspondente 504d pode ser armazenada nos dados de resultados 507.
[0072] O mecanismo de correspondência em tempo não real 505b procura dados de referência em tempo não real 505a para os indícios de mídia desconhecidos 502b em tempo não real, por exemplo, em um momento mais conveniente, eficiente e/ou economicamente vantajoso, conforme determinado pelo roteador de pesquisas 503. Por exemplo, o mecanismo de correspondência em tempo não real 505b pode executar pesquisas durante horas “não-prime ”, quando outras cargas de trabalho de processamento do sistema são comparativamente leves. Os dados de referência em tempo não real 505a podem conter indícios de conteúdo de mídia conhecidos associados ao conteúdo de mídia conhecido que não possui dados contextualmente relacionados. Em outras palavras, não é importante que a identificação do conteúdo de mídia que não possui dados contextualmente relacionados seja feita em tempo real, porque nenhum dado deve ser provido ao sistema de televisão de cliente 501a enquanto o conteúdo da mídia estiver sendo exibido.
[0073] No entanto, pode ser ainda importante identificar o conteúdo de mídia desconhecido para outros fins, como calcular as estatísticas horárias ou diárias sobre quantos sistemas de televisão estão exibindo um conteúdo de mídia específico, padrões de visualização, uso do sistema e outros dados que não são particularmente dependentes do tempo. Os dados de referência de tempo não real 505a podem incluir, por exemplo, dados de programação de canais locais, dados de programação de canais a cabo, dados de VoD, dados de “ pay-per- view” e/ou dados de streaming de mídia (por exemplo, Netflix™, Amazon™, Pandora™, etc.). Em algumas realizações, os dados de referência em tempo não real 505 incluem todos os dados de mídia disponíveis, enquanto que os dados de referência em tempo real 504 incluem apenas dados de mídia que requerem identificação imediata. Se os indícios de mídia desconhecidos 502b forem identificadas como indícios de mídia conhecidos correspondentes associados ao conteúdo de mídia conhecido dentro dos dados de referência em tempo não real 505a, uma identificação do conteúdo de mídia conhecido correspondente 504c pode ser armazenada nos dados de resultados 507.
[0074] Em algumas realizações, qualquer um ou todos os componentes ilustrados na Figura 5 podem residir no sistema de televisão de cliente 501a. Em algumas realizações, qualquer um ou todos os componentes ilustrados na Figura 5 podem residir em um servidor remoto ao sistema de televisão de cliente 501a. Em algumas realizações, cada componente da Figura 5 pode ser um sistema separado com bancos de dados e recursos de processamento separados, por exemplo. Em algumas realizações, pelo menos alguns componentes da Figura 5 podem compartilhar bancos de dados e/ou recursos de processamento.
[0075] A Figura 6 é um diagrama de blocos de um exemplo de um roteador de pesquisas 600 para rotear indícios em um sistema de monitoramento de mídia de acordo com as realizações da invenção. O roteador de pesquisas 600 pode ser usado para implementar o roteador de pesquisas 503 da Figura 5, por exemplo. O roteador de pesquisas 600 pode incluir um processador 601 acoplado a uma interface de comunicação 602 e a um meio legível por computador 606. O roteador de pesquisas 600 também pode incluir ou ter acesso a um banco de dados 603 que pode ser interno ou externo ao roteador de pesquisas 600. Em algumas realizações, o banco de dados 603 pode conter o cache de indícios 506 da Figura 5.
[0076] O processador 601 pode incluir um ou mais microprocessadores para executar componentes do programa para executar as funções do roteador de pesquisas 600. A interface de comunicação 602 pode ser configurada para se conectar a uma ou mais redes de comunicação para permitir que o roteador de pesquisas 600 se comunique com outras entidades, como o gerenciador de indícios 502a, mecanismo de correspondência em tempo real 504b e/ou o mecanismo de correspondência em tempo não real 505b da Figura 5. O meio legível por computador 606 pode incluir qualquer combinação de uma ou mais memórias voláteis e/ou não voláteis, por exemplo, RAM, DRAM, SRAM, ROM, flash ou qualquer outro componente de memória adequado. O meio legível por computador 606 pode armazenar código executável pelo processador 601 para implementar algumas de todas as funções do roteador de pesquisas 600. Por exemplo, o meio legível por computador 606 pode incluir código que implemente um mecanismo de roteamento de indícios 608, um mecanismo de clonagem de indícios 610 e/ou um mecanismo de temporização de indícios 612. Embora mostrado e descrito como tendo cada um desses mecanismos, é contemplado que mais ou menos mecanismos podem ser implementados dentro do meio legível por computador 606. Por exemplo, um mecanismo de roteamento de indícios 608, um mecanismo de clonagem de indícios 610 e/ou um mecanismo de temporização de indícios 612 podem não ser implementados em todas as realizações.
[0077] O mecanismo de roteamento de indícios 608 pode, em conjunto com o processador 601 e a interface de comunicação 602, receber indícios que correspondem ao conteúdo de mídia desconhecido sendo exibido por um sistema de mídia, como diretamente de um sistema de mídia ou por meio de um gerenciador de indícios. O mecanismo de clonagem de indícios 610, em conjunto com o processador 601, pode clonar os indícios recebidos de modo a criar cópias idênticas dos indícios. O mecanismo de clonagem de indícios 610 pode então, em conjunto com o processador 601, armazenar uma cópia dos indícios no banco de dados 603. O mecanismo de roteamento de indícios 608 pode então, em conjunto com o processador 601 e a interface de comunicação 602, encaminhar imediatamente uma cópia dos indícios para um mecanismo de correspondência em tempo real para uma comparação em tempo real contra o conteúdo de mídia conhecido com dados contextualmente relacionados, conforme descrito mais adiante.
[0078] O mecanismo de temporização de indícios 612 pode, em conjunto com o processador 601, determinar um tempo apropriado no qual a busca em um mecanismo de correspondência em tempo não real deve ser concluída. Em algumas realizações, isso ocorre em tempo não real, ou seja, não é imediato. No entanto, é contemplado que em algumas realizações, a busca imediata pode ser determinada como desejável com base no momento mais conveniente, eficiente e/ou economicamente vantajoso. Por exemplo, se os indícios correspondentes ao conteúdo de mídia desconhecido já forem recebidos durante horas não-prime, quando outras cargas de trabalho de processamento do sistema são comparativamente leves, o mecanismo de temporização de indícios 612 pode instruir o mecanismo de roteamento de indícios 608 para enviar os indícios correspondentes ao conteúdo de mídia desconhecido para um mecanismo de correspondência em tempo não real imediatamente.
[0079] Em algumas realizações, o mecanismo de temporização de indícios 612 pode, em conjunto com o processador 601, determinar que o tempo apropriado para enviar os indícios para o mecanismo de correspondência em tempo não real é mais tarde, como durante a noite às 2 da manhã. Assim, às 2 da manhã, o mecanismo de temporização de indícios 612 pode obter os indícios de mídia desconhecidos do banco de dados 603 e provê-los ao mecanismo de roteamento de indícios 608 para transmissão ao mecanismo de correspondência em tempo não real através da interface de comunicação 602. Em algumas realizações, o mecanismo de temporização de indícios 612 pode, em conjunto com o processador 601, enviar indícios de mídia desconhecidos para o mecanismo de correspondência em tempo não real em intervalos predeterminados, como por exemplo, a cada hora, dia, etc. Assim, por exemplo, se o os indícios de mídia desconhecidos são recebidos às 13h13, eles podem ser armazenados pelo mecanismo de roteamento de indícios 608 até as 14h, momento em que serão obtidos pelo mecanismo de temporização de indícios 612 e providos de volta ao mecanismo de roteamento de indícios 608 para transmissão para o mecanismo de correspondência em tempo não real.
[0080] Embora mostrado e descrito na Figura 6 como tendo um mecanismo de temporização de indícios 612, é contemplado que o roteador de pesquisas 600 pode não ter um mecanismo de temporização de indícios 612 em algumas realizações e, em vez disso, pode encaminhar imediatamente uma cópia dos indícios de mídia desconhecidos para o mecanismo de correspondência em tempo não real. Nestas realizações, o mecanismo de correspondência em tempo não real pode, em vez disso, compreender um mecanismo de temporização de indícios configurado para processar os indícios de mídia desconhecidos no momento apropriado.
[0081] A Figura 7 é um diagrama de blocos de um exemplo de um mecanismo de correspondência em tempo real 700 para processamento de indícios em tempo real de acordo com as realizações da invenção. O mecanismo de correspondência em tempo real 700 pode ser usado para implementar o mecanismo de correspondência em tempo real 504b da Figura 5, por exemplo. O mecanismo de correspondência em tempo real 700 pode incluir um processador 701 acoplado a uma interface de comunicação 702 e a um meio legível por computador 706. O mecanismo de correspondência em tempo real 700 também pode incluir ou ter acesso a um banco de dados 703 que pode ser interno ou externo ao mecanismo de correspondência em tempo real 700. Em algumas realizações, o banco de dados 703 pode compreender dados de referência em tempo real 504a da Figura 5.
[0082] O processador 701 pode incluir um ou mais microprocessadores para executar componentes de programa para executar as funções do mecanismo de correspondência em tempo real 700. A interface de comunicação 702 pode ser configurada para se conectar a uma ou mais redes de comunicação para permitir que o mecanismo de correspondência em tempo real 700 se comunique com outras entidades, como o roteador de pesquisas 503 e/ou o sistema de televisão de cliente 501a da Figura 5. O meio legível por computador 706 pode incluir qualquer combinação de uma ou mais memórias voláteis e/ou não voláteis, por exemplo, RAM, DRAM, SRAM, ROM, flash ou qualquer outro componente de memória adequado. O meio legível por computador 706 pode armazenar código executável pelo processador 701 para implementar algumas de todas as funções do mecanismo de correspondência em tempo real 700. Por exemplo, o meio legível por computador 706 pode incluir código que implemente um mecanismo de processamento de dados contextualmente relacionados 708, um mecanismo de pesquisa de conteúdo de mídia conhecido 710 e/ou um mecanismo de identificação de conteúdo de mídia desconhecido 712. Embora mostrado e descrito como tendo cada um desses mecanismos, é contemplado que mais ou menos mecanismos podem ser implementados dentro do meio legível por computador 706. Por exemplo, um mecanismo de processamento de dados contextualmente relacionados 708, um mecanismo de pesquisa de conteúdo de mídia conhecido 710 e/ou um mecanismo de identificação de conteúdo de mídia desconhecido 712 podem não ser implementados em todas as realizações.
[0083] O mecanismo de pesquisa de conteúdo de mídia conhecido 710 pode, em conjunto com o processador 701, receber indícios de mídia desconhecidos de um roteador de pesquisas. O mecanismo de pesquisa de conteúdo de mídia conhecido 710 pode então, em conjunto com o processador 701, procurar os indícios de mídia desconhecidos no banco de dados 703. O banco de dados 703 pode compreender indícios de mídia conhecidos associados ao conteúdo de mídia conhecido e possuindo dados correspondentes contextualmente relacionados. Por exemplo, o mecanismo de pesquisa de conteúdo de mídia conhecido 710 pode comparar os indícios de mídia desconhecidos com os indícios de mídia conhecidos para determinar se há uma correspondência nos indícios de mídia conhecidos. Se houver uma correspondência nos indícios de mídia conhecidos no banco de dados 703, o mecanismo de identificação de conteúdo de mídia desconhecido 712 pode então, em conjunto com o processador 701, identificar o conteúdo de mídia desconhecido como o conteúdo de mídia conhecido associado aos indícios de mídia conhecidos correspondentes. Em algumas realizações, o mecanismo de identificação de conteúdo de mídia desconhecido 712 também pode, em conjunto com o processador 701, determinar um tempo de deslocamento do conteúdo de mídia desconhecido exibido no sistema de televisão de cliente (por exemplo, um tempo de reprodução, como 12 minutos e 4 segundos desde o início do conteúdo de mídia). O tempo de deslocamento pode ser determinado, por exemplo, determinando o tempo de deslocamento dos indícios de mídia conhecidos correspondentes dentro do conteúdo de mídia conhecido. Sistemas e métodos para identificar conteúdo de mídia desconhecido e tempos de deslocamento são melhores descritos nos pedidos de patente relacionados aqui incorporados por referência.
[0084] Depois que o conteúdo de mídia desconhecido é identificado como um conteúdo de mídia conhecido pelo mecanismo de identificação de conteúdo de mídia desconhecido 712, o mecanismo de processamento de dados contextualmente relacionados 708 pode, em conjunto com o processador 701, obter os dados contextualmente relacionados associados ao conteúdo de mídia conhecido correspondente a partir do banco de dados 703. O mecanismo de processamento de dados contextualmente relacionados 708 pode então, em conjunto com o processador 701 e a interface de comunicação 702, prover os dados contextualmente relacionados a um sistema de televisão de cliente para exibição.
[0085] A Figura 8 é um diagrama de blocos de um exemplo de um mecanismo de correspondência em tempo não real 800 para processamento de indícios em tempo não real de acordo com as realizações da invenção. O mecanismo de correspondência em tempo não real 800 pode ser usado para implementar o mecanismo de correspondência em tempo não real 505b da Figura 5, por exemplo. O mecanismo de correspondência em tempo não real 800 pode incluir um processador 801 acoplado a uma interface de comunicação 802 e a um meio legível por computador 806. O mecanismo de correspondência em tempo não real 800 também pode incluir ou ter acesso a um banco de dados 803 que pode ser interno ou externo ao mecanismo de correspondência em tempo não real 800. Em algumas realizações, o banco de dados 803 pode compreender dados de referência em tempo não real 505a da Figura 5.
[0086] O processador 801 pode incluir um ou mais microprocessadores para executar componentes de programa para executar as funções do mecanismo de correspondência em tempo não real 800. A interface de comunicação 802 pode ser configurada para se conectar a uma ou mais redes de comunicação para permitir que o mecanismo de correspondência em tempo não real 800 se comunique com outras entidades, como o roteador de pesquisas 503 da Figura 5. O meio legível por computador 806 pode incluir qualquer combinação de uma ou mais memórias voláteis e/ou não voláteis, por exemplo, RAM, DRAM, SRAM, ROM, flash ou qualquer outro componente de memória adequado. O meio legível por computador 806 pode armazenar código executável pelo processador 801 para implementar algumas de todas as funções do mecanismo de correspondência em tempo não real 800. Por exemplo, o meio legível por computador 806 pode incluir código que implemente um mecanismo de processamento de indícios 808, um mecanismo de pesquisa de conteúdo de mídia conhecido 810 e/ou um mecanismo de identificação de conteúdo de mídia desconhecido 812. Embora mostrado e descrito como tendo cada um desses mecanismos, é contemplado que mais ou menos mecanismos podem ser implementados dentro do meio legível por computador 806. Por exemplo, um mecanismo de processamento de indícios 808, um mecanismo de pesquisa de conteúdo de mídia conhecido 810 e/ou um mecanismo de identificação de conteúdo de mídia desconhecido 812 podem não ser implementados em todas as realizações.
[0087] Em realizações em que o roteador de pesquisas não roteia a temporização de envio de indícios de mídia desconhecidos para o mecanismo de correspondência em tempo não real 800, o mecanismo de processamento de indícios 808 pode, em conjunto com o processador 801, receber indícios de mídia desconhecidos do roteador de pesquisas imediatamente após o recebimento. O mecanismo de processamento de indícios 808 pode, em conjunto com o processador 801, determinar um momento apropriado para encaminhar os indícios de mídia desconhecidos para o mecanismo de pesquisa de conteúdo de mídia conhecido 810. Em algumas realizações, isso ocorre em tempo não real, ou seja, não é imediato. No entanto, é contemplado que em algumas realizações, a busca imediata pode ser determinada como desejável com base no momento mais conveniente, eficiente e/ou economicamente vantajoso. Por exemplo, se os indícios correspondentes ao conteúdo de mídia desconhecido já forem recebidas durante horas não-prime, quando outras cargas de trabalho de processamento do sistema são comparativamente leves, o mecanismo de processamento de indícios 808 pode enviar os indícios de mídia desconhecidos para o mecanismo de pesquisa de conteúdo de mídia conhecido 810 imediatamente.
[0088] Em algumas realizações, o mecanismo de processamento de indícios 808 pode, em conjunto com o processador 801, determinar que o momento apropriado para enviar os indícios para o mecanismo de pesquisa de conteúdo de mídia conhecido 810 é mais tarde, como durante a noite às 2 da manhã. Assim, às 2 da manhã, o mecanismo de processamento de indícios 808 pode obter os indícios de mídia desconhecidos do banco de dados 803 e provê-los ao mecanismo de busca de conteúdo de mídia conhecido 810. Em algumas realizações, o mecanismo de processamento de indícios 808 pode, em conjunto com o processador 801, enviar indícios de mídia desconhecidos para o mecanismo de busca de conteúdo de mídia conhecido 810 em intervalos predeterminados, como por exemplo, a cada hora, dia, etc. Assim, por exemplo, se o os indícios de mídia desconhecidos são recebidos às 13h13, eles podem ser armazenados no banco de dados 803 até as 14h, momento em que serão obtidos pelo mecanismo de processamento de indícios 808 e providos ao mecanismo de busca de conteúdo de mídia conhecido 810 para busca.
[0089] O mecanismo de pesquisa de conteúdo de mídia conhecido 810 pode, em conjunto com o processador 801, receber indícios de mídia desconhecidos do mecanismo de processamento de indícios 808 no momento apropriado. O mecanismo de pesquisa de conteúdo de mídia conhecido 810 pode então, em conjunto com o processador 801, procurar os indícios de mídia desconhecidos no banco de dados 803. O banco de dados 803 pode incluir indícios de mídia conhecidos associados a todos os conteúdos de mídia conhecidos disponíveis. Por exemplo, o mecanismo de pesquisa de conteúdo de mídia conhecido 810 pode comparar os indícios de mídia desconhecidos com os indícios de mídia conhecidos para determinar se há uma correspondência com os indícios de mídia conhecidos. Se houver uma correspondência nos indícios de mídia conhecidos no banco de dados 803, o mecanismo de identificação de conteúdo de mídia desconhecido 812 pode então, em conjunto com o processador 801, identificar o conteúdo de mídia desconhecido como o conteúdo de mídia conhecido associado aos indícios de mídia conhecidos correspondentes. Em algumas realizações, o mecanismo de identificação de conteúdo de mídia desconhecido 812 também pode, em conjunto com o processador 801, determinar um tempo de deslocamento do conteúdo de mídia desconhecido exibido no sistema de televisão de cliente (por exemplo, um tempo de reprodução, como 12 minutos e 4 segundos desde o início do conteúdo da mídia). O tempo de deslocamento pode ser determinado, por exemplo, determinando o tempo de deslocamento dos indícios de mídia conhecidos correspondentes dentro do conteúdo de mídia conhecido. Sistemas e métodos para identificar conteúdo de mídia desconhecido e tempos de deslocamento são melhores descritos nos pedidos de patente relacionados aqui incorporados por referência.
[0090] A Figura 9 é um fluxograma de um exemplo de um método para melhorar o gerenciamento de carga de trabalho em sistemas de monitoramento de mídia ACR de acordo com as realizações da invenção. No bloco de processamento 902, é recebida uma pluralidade de conteúdos de mídia conhecidos. A pluralidade de conteúdos de mídia conhecidos possui identificadores de conteúdo conhecido associados (também chamados aqui de “indícios”). Os identificadores de conteúdo conhecido podem compreender uma amostra de dados de pixels e/ou uma amostra de dados de áudio do conteúdo de mídia conhecido. No bloco de processamento 904, os identificadores de conteúdo conhecido são armazenados em um banco de dados em tempo não real.
[0091] No bloco de processamento 906, um subconjunto da pluralidade de conteúdos de mídia conhecidos é determinado, o qual possui dados contextualmente relacionados associados. Por exemplo, alguns dos diversos conteúdos de mídia conhecidos podem ter um anúncio associado, que deve ser exibido nos sistemas de televisão que visualizam esse conteúdo de mídia conhecido específico. No bloco de processamento 908, os identificadores de conteúdo conhecido associados ao subconjunto da pluralidade de conteúdos de mídia conhecidos que possuem dados contextualmente relacionados associados são armazenados em um banco de dados em tempo real. Em algumas realizações, é contemplado que as etapas ilustradas pelos blocos de processamento 902-908 podem ser realizadas em qualquer ponto antes do bloco de processamento 910, de modo que o banco de dados em tempo não real e o banco de dados em tempo real já estejam estabelecidos e prontos para pesquisas após a recepção de identificadores de conteúdo desconhecido. No bloco de processamento 910, são recebidos identificadores de conteúdo desconhecido correspondentes ao conteúdo de mídia desconhecido atualmente exibido por um sistema de mídia. Os identificadores de conteúdo desconhecido podem compreender uma amostra de dados de pixel e/ou uma amostra de dados de áudio do conteúdo de mídia desconhecido sendo exibido pelo sistema de mídia.
[0092] No bloco de decisão 912, é determinado se os identificadores de conteúdo desconhecido correspondem a identificadores de conteúdo conhecido associados ao subconjunto da pluralidade de conteúdos de mídia conhecidos no banco de dados em tempo real. Quando os identificadores de conteúdo desconhecido correspondem a identificadores de conteúdo conhecido no banco de dados em tempo real, o conteúdo de mídia conhecido associado aos identificadores de conteúdo conhecido correspondentes é selecionado a partir do banco de dados em tempo real no bloco de processamento 914a. No bloco de processamento 916a, o conteúdo de mídia desconhecido é identificado como o conteúdo de mídia conhecido selecionado. É contemplado que o bloco de decisão 912, o bloco de processamento 914a e o bloco de processamento 916a podem ser realizados em tempo real em algumas realizações. Em algumas realizações, os dados contextualmente relacionados associados ao conteúdo de mídia conhecido selecionado são então recuperados e podem ser exibidos no sistema de mídia em tempo real ou em quase tempo real. Esta etapa também pode ser realizada em tempo real.
[0093] Quando os identificadores de conteúdo desconhecido não correspondem a identificadores de conteúdo conhecido no banco de dados em tempo real, é feita uma pesquisa pelos identificadores de conteúdo desconhecido em um banco de dados em tempo não real. No bloco de processamento 914b, conteúdos de mídia conhecidos associado a identificadores de conteúdo conhecido correspondentes aos identificadores de conteúdo desconhecido são selecionados a partir do banco de dados em tempo não real. No bloco de processamento 916b, o conteúdo de mídia desconhecido é identificado como o conteúdo de mídia conhecido selecionado. É contemplado que em algumas realizações, o bloco de processamento 914b e o bloco de processamento 916b podem ser realizados em tempo não real. Em algumas realizações, a identificação do conteúdo de mídia desconhecido como o conteúdo de mídia conhecido selecionado pode ser usada para gerar estatísticas, como por exemplo, quantos sistemas de televisão exibiram um programa específico. Em algumas realizações, esta etapa também pode ser realizada em tempo não real.
[0094] Após os blocos de processamento 916a e 916b, em algumas realizações, um tempo de deslocamento associado ao conteúdo de mídia desconhecido pode ser determinado usando os identificadores de conteúdo desconhecido e os identificadores de conteúdo conhecido. Por exemplo, o tempo de deslocamento dos identificadores de conteúdo conhecido correspondentes dentro do conteúdo de mídia conhecido pode ser determinado como o tempo de deslocamento dos identificadores de conteúdo desconhecido no conteúdo de mídia desconhecido.
[0095] O processo descrito em relação à Figura 9 não se destina a ser limitativo. Por exemplo, embora seja descrito como sendo apenas pesquisado quando os identificadores de conteúdo desconhecido não são correspondentes no banco de dados em tempo real, é contemplado que o banco de dados em tempo não real pode ser pesquisado além do banco de dados em tempo real, mesmo quando uma correspondência é encontrada, por exemplo, para confirmar a correspondência correta contra um banco de dados maior de dados de referência. Além disso, o processo ilustrado pelo fluxograma da Figura 9 pode ser implementado pelo sistema de mídia, por um servidor localizado remotamente ao sistema de mídia, por ambos, ou parcialmente por componente(s) localizado(s) no sistema de mídia e parcialmente por componente(s) localizado(s) em um servidor remoto.
[0096] As técnicas de vizinho mais próximo e de seguimento de caminho mencionadas anteriormente são agora descritas em detalhes. Um exemplo de rastreamento de transmissão de vídeo usando indícios ambíguos é dado, mas o conceito geral pode ser aplicado a qualquer campo, como os descritos acima.
[0097] Um método para busca de vídeo eficiente é apresentado. Dado um grande número de segmentos de vídeo, o sistema deve ser capaz de identificar em tempo real o segmento obtido de uma determinada entrada de vídeo de consulta, e seu tempo de deslocamento. O segmento e o deslocamento são chamados conjuntamente de localização. O método é chamado de seguimento de vídeo, uma vez que deve ser capaz de detectar e adaptar eficientemente as pausas, avanços, rebobinamentos, trocas bruscas para outros segmentos e trocas para segmentos desconhecidos. Antes de poder seguir vídeos ao vivo, o banco de dados é processado. Os indícios visuais (um punhado de valores de pixel) são obtidos dos quadros a cada fração constante de um segundo, e colocados em uma estrutura de dados especializada (note que isso também pode ser feito em tempo real). O seguimento de vídeo é realizado ao receber continuamente indícios do vídeo de entrada e atualizar um conjunto de crenças ou estimativas sobre sua localização atual. Cada indício concorda ou discorda das estimativas, e elas são ajustadas para refletir as novas evidências. Uma localização de vídeo é considerada a correta se a confiança no fato de isto ser verdade for alta o suficiente. Ao rastrear apenas um pequeno conjunto de possíveis localizações “suspeitas”, isso pode ser feito de forma eficiente.
[0098] Um método é descrito para seguimento de vídeo, mas usa construções matemáticas para explicá-lo e investigá-lo. É o objetivo desta introdução dar ao leitor as ferramentas necessárias para traduzir entre os dois domínios. Um sinal de vídeo é composto de quadros sequenciais. Cada um pode ser considerado uma imagem estática. Cada quadro é uma matriz de pixels. Cada pixel é composto de três valores de intensidade correspondentes à composição de vermelho, verde e azul (“RGB”) da cor desse pixel. Na terminologia deste manuscrito, um indício é uma lista de valores RGB de um subconjunto dos pixels em um quadro e uma marca de tempo correspondente. O número de pixels em um indício é significativamente menor do que em um quadro, geralmente entre 5 e 15. Sendo uma lista ordenada de valores escalares, os valores de indício são, na verdade, um vetor. Este vetor também é chamado de um ponto.
[0099] Embora esses pontos estejam em alta dimensão, geralmente entre 15 e 150, eles podem ser imaginados como pontos em duas dimensões. Com efeito, as ilustrações serão dadas como gráficos bidimensionais. Agora, considere a progressão de um vídeo e seus pontos de indício correspondentes. Normalmente, uma pequena alteração no tempo produz uma pequena alteração nos valores de pixel. O ponto de pixel pode ser visto como se estivesse se “movendo” um pouco entre os quadros. Seguindo esses movimentos minúsculos de quadro a quadro, o indício segue um caminho no espaço, como uma conta acoplada a um fio entortado.
[0100] Na linguagem desta analogia, no seguimento do vídeo, as localizações da conta no espaço (os pontos de indício) são recebidas, e a parte do fio (caminho) que a conta está seguindo é buscada. Isto é significativamente dificultado por dois fatos. Primeiro, a conta não segue exatamente o fio, mas sim mantém uma distância do fio desconhecida e variável. Em segundo lugar, os fios estão todos emaranhados. Essas declarações são descritas em termos exatos na seção 2. O algoritmo descrito abaixo faz isso em duas etapas conceituais. Quando um indício é recebido, ele procura todos os pontos em todos os caminhos conhecidos que estão suficientemente próximos do ponto de indício; estes são chamados de suspeitos. Isso é feito de forma eficiente usando o algoritmo de localização de ponto probabilística em bolas iguais (“Probabilistic Point Location in Equal Balls”). Estes suspeitos são adicionados a uma estrutura de dados de histórico, e é calculada a probabilidade de cada um deles indicar a localização verdadeira. Esta etapa também inclui a remoção de locais suspeitos que são suficientemente improváveis. Este processo de atualização de histórico garante que, por um lado, apenas um pequeno histórico seja mantido, mas, por outro lado, nenhum local provável é excluído. O algoritmo genérico é dado no Algoritmo 1 e ilustrado na Figura 10.
Figure img0001
[0101] O documento começa com a descrição do algoritmo de localização de ponto probabilística em bolas iguais (“PPLEB”) na Seção 1. Ele é usado para executar a linha 5 no Algoritmo 1 de forma eficiente. A capacidade de realizar esta busca por suspeitos rapidamente é crucial para a aplicabilidade deste método. Mais tarde, na seção 2, um modelo estatístico possível é descrito para executar as linhas 6 e 7. O modelo descrito é uma escolha natural para a configuração. Também é mostrado como ele pode ser usado de forma muito eficiente.
Seção 1 - Localização de Ponto Probabilística em Bolas Iguais
[0102] A seção a seguir descreve um algoritmo simples para executar a localização de ponto probabilística em bolas iguais (“PPLEB”). Na PLEB tradicional (localização de ponto em bolas iguais), começa-se com um conjunto de n pontos x, em lR d e uma bola especificada de raio r. O algoritmo recebe o tempo de pré-processamento de O(poly(n)) para produzir uma estrutura de dados eficiente. Em seguida, dado um ponto de consulta x, o algoritmo deve retornar todos os pontos x, tal que ||x-Xj|| <r. O conjunto de pontos tal que ||x-xj|<r. encontra-se geometricamente dentro de uma bola de raio r que envolve a consulta x (vide Figura 23). Essa relação é chamada de x, sendo próxima de x ou como x, e x sendo vizinhos.
[0103] O problema da PPLEB e o problema da pesquisa por vizinho mais próximo são dois problemas semelhantes que receberam muita atenção na comunidade acadêmica. Na verdade, estes problemas estavam entre os primeiros estudados no campo da geometria computacional. Muitos métodos diferentes atendem ao caso em que a dimensão do ambiente é pequena ou constante. Estes dividem o espaço de diferentes maneiras, e pesquisam recursivamente em todas as partes. Estes métodos incluem árvores KD, árvores de cobertura e outros. Embora seja muito eficiente em baixa dimensão, quando a dimensão do ambiente é alta, eles tendem a funcionar muito mal. Isto é conhecido como a “maldição da dimensionalidade”. Várias abordagens tentam resolver este problema ao superar a maldição da dimensionalidade. O algoritmo aqui utilizado usa uma versão mais simples e rápida do algoritmo, e pode depender do Hashing Sensível ao Local.
Seção 1.1 Hashing Sensível a Localidade
[0104] No esquema de hashing sensível ao local, cria-se uma família de funções de hash H tal que:
Figure img0002
[0105] Em palavras, a probabilidade de x e y serem mapeados ao mesmo valor por h é significativamente maior se elas estiverem próximas umas das outras.
[0106] Por uma questão de clareza, primeiro abordemos um cenário simplificado, em que todos os vetores recebidos são do mesmo comprimento r’ e
Figure img0003
. O motivo da última condição tornar-se-á claro mais tarde. Primeiro, uma função aleatória u ε U é definida, que separa entre x e y de acordo com o ângulo entre eles. Seja
Figure img0004
um vetor aleatório escolhido uniformemente a partir da esfera unitária S d-1, e seja u(x) =sinal
Figure img0005
. É fácil verificar que Pru-U(u(x)) Φ u(y)) = 0x,y/π. Além disso, para qualquer ponto x, y, x‘ , y’ em um círculo tal que ||x‘− y‘|| < 2||x − y|| , 0x‘,y < 20x,y é obtido. Definindo p, as seguintes equações são usadas:
Figure img0006
[0107] A família de funções H está configurada para ser um produto cruzado de t cópias independentes de u, isto é, h(x)=[u1(x), ... , ut(x)]. Intuitivamente, seria desejável que se h(x)=h(y), então x e y provavelmente estão próximos uns dos outros. Vamos quantificar isso. Primeiro, calcular o número esperado de erros de falso positivo nfp. Estes são os casos para os quais h( x )=h(y) mas ||x-y|| > 2r. Um valor t é encontrado para o qual nfp não seja superior a 1, isto é, não se espera que esteja errado.
Figure img0007
[0108] Agora, a probabilidade de que h(x)=h(y), dado que eles são vizinhos, é calculada:
Figure img0008
[0109] Note aqui que é preciso ter 2p<1, o qual requer
Figure img0009
. Isso pode não soar como uma probabilidade de sucesso muito alta. De fato,
Figure img0010
é significativamente menor do que ½. A próxima seção descreverá como aumentar esta probabilidade até ½.
Seção 1.2 O Algoritmo de Pesquisa de Pontos
[0110] Cada função h mapeia cada ponto no espaço para um balde. Considere a função de balde
Figure img0011
de um ponto x em relação à função hash h como Bh(x) = {Xj]h(Xi) = h(x)}. A estrutura de dados mantida é m=O
Figure img0012
instâncias das funções de balde [Bh1, ... , Bhm]. Quando se procura um ponto x, a função retorna B(x) = UÍBhj(x). De acordo com a seção anterior, há dois resultados desejados:
Figure img0013
[0111] Em outras palavras, enquanto com probabilidade de pelo menos ^, cada vizinho de x é encontrado, não é provável que sejam encontrados muitos não-vizinhos.
Seção 1.3 Lidando com Vetores de Entrada de Raios Diferentes
[0112] As seções anteriores apenas tratavam de procurar por vetores do mesmo comprimento, ou seja, r’. Agora é descrito como se pode usar a construção como um bloco de construção para suportar uma pesquisa em diferentes raios. Conforme visto na Figura 11, o espaço é dividido em anéis de largura exponencialmente crescente. O anel i, denominado Ri, inclui todos os pontos xi tal que
Figure img0014
. Ao fazer isso, alcança-se dois fins. Primeiro, se xi e xj pertencem ao mesmo anel, então
Figure img0015
. Em segundo lugar, qualquer pesquisa pode ser realizada em no máximo 1/etais anéis. Além disso, se o vetor de comprimento máximo no conjunto de dados é r’ , o número total de anéis no sistema é O(log(r’/r)).
Seção 2 O Problema do Seguimento de Caminho
[0113] No problema de seguimento de caminho, um caminho fixo no espaço é dado com as posições de uma partícula em uma sequência de pontos de tempo. Os termos partícula, indício e ponto serão usados como sinônimos. O algoritmo precisa produzir a posição da partícula no caminho. Isso é mais difícil devido a alguns fatores: a partícula apenas segue o caminho aproximadamente; o caminho pode ser descontínuo e se cruzar por vezes; as posições de partícula e de caminho são dadas em uma sequência de pontos de tempo (diferente para cada uma).
[0114] É importante notar que esse problema pode simular o rastreamento de uma partícula em qualquer número de caminhos. Isso é feito simplesmente concatenando os caminhos em um longo caminho e interpretando a posição resultante como a posição nos caminhos individuais.
[0115] Mais precisamente, considere o caminho P como uma curva paramétrica
Figure img0016
, O parâmetro da curva será chamado de tempo. Os pontos no caminho que nos são conhecidos são dados em pontos de tempo arbitrários ti, isto é, n pares (ti, P(ti)) são fornecidos. A partícula segue o caminho, mas suas posições são dadas em diferentes pontos de tempo, como mostrado na Figura 12. Além disso, são dados m pares (t ’ j, x(t’j)), onde x(t’j) é a posição da partícula no tempo t’j.
Seção 2.1 Estimativa da Probabilidade
[0116] Uma vez que a partícula não segue o caminho exatamente, e uma vez que o caminho pode se cruzar muitas vezes, geralmente é impossível identificar positivamente a posição no caminho na qual a partícula realmente está. Portanto, uma distribuição de probabilidade é calculada em todos os possíveis locais de caminho. Se uma probabilidade de localização for significativamente provável, supõe-se que a posição da partícula é conhecida. A seção a seguir descreve como isso pode ser feito de forma eficiente.
[0117] Se a partícula estiver seguindo o caminho, a diferença de tempo entre a marca de tempo da partícula e o deslocamento dos pontos correspondentes em P deve ser relativamente fixa. Em outras palavras, se x(t’) estiver atualmente deslocado em t no caminho, então ele deve estar próximo de P(t). Além disso, T segundos atrás, deveria ter sido deslocado em em t-T. Assim, x(t’-T) deve estar perto de P(t- T) (observe que se a partícula estiver interceptando o caminho e x(t’) estiver próximo de P(t) temporariamente, é improvável que x(t’- T) e P(t- T) também estarão próximos). Considere o deslocamento relativo como Δ=t-t’ . Observe que, enquanto a partícula estiver seguindo o caminho, o deslocamento relativo Δpermanece inalterado. Ou seja, x(t’) está próximo de P(t’+Δ).
[0118] O deslocamento relativo de máxima probabilidade é obtido calculando:
Figure img0017
[0119] Em palavras, o deslocamento relativo mais provável é aquele para o qual o histórico da partícula é mais provável. Esta equação, no entanto, não pode ser resolvida sem um modelo estatístico. Este modelo deve quantificar: O quão bem x segue o caminho; O quão provável é que x “pula” entre locais; O quão suave o caminho e as curvas de partícula são entre os pontos medidos.
[0120] Seção 2.2 Compartimentação com Desconto de Tempo
[0121] Agora é descrito um modelo estatístico para estimar uma função de probabilidade. O modelo faz a suposição de que o desvio da partícula para longe do caminho é distribuído normalmente com o desvio padrão ar. Além disso, ele pressupõe que, em qualquer ponto no tempo, há uma probabilidade não nula de que a partícula mudará abruptamente para outro caminho. Isto é manifestado por um desconto exponencial no tempo para pontos passados. Além de ser uma escolha razoável do ponto de vista de modelagem, esse modelo também tem a vantagem de ser atualizável de forma eficiente. Para certa unidade de tempo constante 1:, considere a função de probabilidade como sendo proporcional a f, que é definido da seguinte forma:
Figure img0018
[0122] Aqui, a<< 1 é um coeficiente de escala, e
Figure img0019
é a probabilidade de que a partícula pulará para uma localização aleatória no caminho em uma determinada unidade de tempo.
[0123] A atualização da função f de forma eficiente pode ser obtida usando a seguinte simples observação.
Figure img0020
[0124] Além disso, uma vez que a << 1, se
Figure img0021
o seguinte ocorrerá:
Figure img0022
[0125] Esta é uma propriedade importante da função de probabilidade, uma vez que a atualização de soma agora pode ser realizada somente nos vizinhos de x(t’j), e não no caminho inteiro. Considere como S o conjunto de (ti, P(ti)) tal que ||x(t‘m) - P(ti) || ≤ r. A seguinte equação ocorre:
Figure img0023
[0126] Isto é descrito no Algoritmo 2.2 abaixo. O termo f é usado como um vetor esparso que recebe também índices inteiros negativos. O conjunto S é o conjunto de todos os vizinhos de x(ti) no caminho, e pode ser calculado rapidamente usando o algoritmo PPLEB. É fácil verificar que se o número de vizinhos de x(ti) é limitado por certa constante nnear, então o número de não-zeros no vetor f é delimitado por
Figure img0024
o qual é apenas um fator de constante maior. O estágio final do algoritmo é produzir um valor específico de δ se
Figure img0025
est iver acima de algum valor limite.
Figure img0026
[0127] A Figura 11 dá três localizações de pontos consecutivas e os pontos de caminho em torno destas. Note-se que nem o ponto inferior nem o do meio sozinho teriam sido suficientes para identificar a parte correta do caminho. Juntos, no entanto, eles são suficientes. Ao adicionar o ponto superior, aumenta-se a certeza de que a partícula é realmente da curva final (esquerda) do caminho.
[0128] Na Figura 12, dado um conjunto de pontos n (cinza), o algoritmo recebe um ponto de consulta (preto) e retorna o conjunto de pontos que estão dentro da distância r destes (os pontos dentro do círculo). Na configuração tradicional, o algoritmo deve retornar todos tais pontos. Na configuração probabilística, cada ponto deve ser retornado apenas com alguma probabilidade constante.
[0129] A Figura 13 ilustra os valores de U(XI), U(X2), e U(X). Intuitivamente, a função u dá valores diferentes para XI e X2 se a linha tracejada passa entre eles e o mesmo valor, caso contrário. Ao passar a linha tracejada em uma direção aleatória, garante-se que a probabilidade de isso acontecer é diretamente proporcional ao ângulo entre XI e X2.
[0130] A Figura 14 mostra que, ao dividir o espaço em anéis, de modo que o anel Ri esteja entre o raio 2r(1 + e)i e 2r(1+ e)i+1, pode-se ter certeza de que quaiquer dois vetores dentro de um anel tenham o mesmo comprimento até (1+e) fatores, e que qualquer pesquisa seja realizada em no máximo 1/ e anéis.
[0131] A Figura 15 mostra um caminho auto- intersectado e um ponto de consulta (em preto). Ela ilustra que, sem o histórico das posições da partícula, é impossível saber onde ela está no caminho.
[0132] A Figura 15 dá três localizações de pontos consecutivas e os pontos de caminho em torno destas. Note-se que nem X(ÍI) nem x(t2) sozinhos teriam sido suficientes para identificar a parte correta do caminho. Juntos, no entanto, eles são suficientes. Ao adicionar x(ts), aumenta-se a certeza de que a partícula é realmente da curva final (esquerda) do caminho.
[0133] Embora descrito substancialmente aqui como relacionado a dados de vídeo e exibições gráficas, é contemplado que os sistemas e métodos aqui descritos podem ser utilizados de forma semelhante em relação a dados de áudio e exibições audíveis.
[0134] Variações substanciais podem ser feitas de acordo com os requisitos específicos. Por exemplo, hardware personalizado também pode ser usado e/ou elementos específicos podem ser implementados em hardware, software (incluindo software portátil, como applets, etc.), ou ambos. Além disso, a conexão com outros dispositivos de acesso ou de computação, como dispositivos de entrada/saída de rede, pode ser empregada.
[0135] No relatório descritivo acima, os aspectos da invenção são descritos em referência a suas realizações específicas, mas os técnicos no assunto reconhecerão que a invenção não está limitada a estes. Diversas características e aspectos da invenção acima descrita podem ser usados individualmente ou em conjunto. Além disso, as realizações podem ser utilizadas em qualquer número de ambientes e aplicações além dos descritos aqui, sem se afastar do espírito e do escopo abrangentes do relatório descritivo. O relatório e os desenhos são, portanto, considerados ilustrativos, e não restritivos.
[0136] Na descrição acima, para fins de ilustração, métodos foram descritos em uma ordem específica. Deve ser reconhecido que, em realizações alternativas, os métodos podem ser realizados em uma ordem diferente da descrita. Também deve ser reconhecido que os métodos descritos acima podem ser realizados por componentes de hardware ou podem ser incorporados em sequências de instruções executáveis por máquina, que podem ser usadas para fazer com que uma máquina, como um processador ou circuitos lógicos de propósito geral ou de propósito especial programados com as instruções, execute os métodos. Estas instruções executáveis por máquina podem ser armazenadas em um ou mais meios legíveis por máquina, como CD- ROM ou outro tipo de discos ópticos, disquetes, ROMs, RAMs, EPROMs, EEPROMs, cartões magnéticos ou ópticos, memória flash ou outros tipos de meios legíveis por máquina, adequados para armazenar instruções eletrônicas. Alternativamente, os métodos podem ser realizados por uma combinação de hardware e software.
[0137] Quando os componentes forem descritos como sendo configurados para executar determinadas operações, tal configuração pode ser realizada, por exemplo, projetando circuitos eletrônicos ou outro hardware para executar a operação, programando circuitos eletrônicos programáveis (por exemplo, microprocessadores ou outros circuitos eletrônicos adequados) para executar a operação, ou qualquer combinação destes.
[0138] Embora as realizações ilustrativas da aplicação tenham sido descritas aqui em detalhes, deve-se entender que os conceitos inventivos podem ser incorporados e empregados de diversos outros modos, e que as reivindicações apensas se destinam a ser interpretadas para incluir tais variações, exceto quando limitado pela técnica anterior.

Claims (10)

1. MÉTODO, caracterizado por compreender: receber (902) uma pluralidade de conteúdos de mídia conhecidos, em que a pluralidade de conteúdos de mídia conhecidos possui identificadores de conteúdo conhecido associados; armazenar (904) os identificadores de conteúdo conhecido associados à pluralidade de conteúdos de mídia conhecidos em um banco de dados em tempo não real; determinar (906) um subconjunto da pluralidade de conteúdos de mídia conhecidos, os conteúdos de mídia conhecidos em um determinado subconjunto possuem dados associados contextualmente relacionados, em que os dados contextualmente relacionados são dados adicionais a serem fornecidos a um sistema de mídia do cliente para exibição, que não faz parte do conteúdo de mídia conhecido; armazenar (908) os identificadores de conteúdo conhecido associados ao subconjunto da pluralidade de conteúdos de mídia conhecidos com dados contextualmente relacionados associados em um banco de dados em tempo real; receber (910) identificadores de conteúdo desconhecido correspondentes ao conteúdo de mídia desconhecido exibido por um sistema de mídia; pesquisar (912) o banco de dados em tempo real usando os identificadores de conteúdo desconhecido para determinar se os identificadores de conteúdo desconhecido correspondem ou não a identificadores de conteúdo conhecido associados ao subconjunto da pluralidade de conteúdos de mídia conhecidos no banco de dados em tempo real; selecionar (914a) conteúdo de mídia conhecido associado aos identificadores de conteúdo conhecido correspondentes do banco de dados em tempo real e identificar (916a) o conteúdo de mídia desconhecido como o conteúdo de mídia conhecido selecionado do banco de dados em tempo real, quando os identificadores de conteúdo desconhecido corresponderem a identificadores de conteúdo conhecido no banco de dados em tempo real; pesquisar (912) o banco de dados em tempo não real usando os identificadores de conteúdo desconhecido quando os identificadores de conteúdo desconhecido não correspondem aos identificadores de conteúdo conhecidos no banco de dados em tempo real; e selecionar (914b) conteúdo de mídia conhecido associado a identificadores de conteúdo conhecido do banco de dados em tempo não real correspondente aos identificadores de conteúdo desconhecido e identificar (916b) o conteúdo de mídia desconhecido como o conteúdo de mídia conhecido selecionado do banco de dados em tempo não real.
2. MÉTODO, de acordo com a reivindicação 1, adicionalmente caracterizado por compreender: recuperação dos dados contextualmente relacionados associados ao conteúdo de mídia conhecido selecionado e a facilitação da exibição no sistema de mídia dos dados contextualmente relacionados, quando os identificadores de conteúdo desconhecido corresponderem a identificadores de conteúdo conhecido no banco de dados em tempo real.
3. MÉTODO, de acordo com a reivindicação 1, adicionalmente caracterizado por compreender: cálculo de estatísticas usando o conteúdo de mídia conhecido selecionado, quando os identificadores de conteúdo desconhecido não correspondem a identificadores de conteúdo conhecido no banco de dados em tempo real.
4. MÉTODO, de acordo com a reivindicação 1, em que os identificadores de conteúdo desconhecido são caracterizados por compreender pelo menos um dentre uma amostra de dados de pixel ou uma amostra de dados de áudio do conteúdo de mídia desconhecido exibido pelo sistema de mídia.
5. MÉTODO, de acordo com a reivindicação 1, caracterizado pelas operações adicionalmente incluírem: determinação de um tempo de deslocamento associado ao conteúdo de mídia desconhecido usando os identificadores de conteúdo desconhecido e os identificadores de conteúdo conhecido associados ao conteúdo de mídia conhecido selecionado.
6. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo método ser implementado nos um ou mais processadores (601, 701, 801) e um ou mais meios de armazenamento legíveis por máquina não transitórios (606, 706, 806) compreendidos no sistema de mídia.
7. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo método ser implementado nos um ou mais processadores (601, 701, 801) e um ou mais meios de armazenamento legíveis por máquina não transitórios (606, 706, 806) compreendidos em um servidor localizado remotamente ao sistema de mídia.
8. MÉTODO, de acordo com a reivindicação 1, caracterizado pelas etapas de determinar se os identificadores de conteúdo desconhecido correspondem a identificadores de conteúdo conhecido associados ao subconjunto da pluralidade de conteúdos de mídia conhecidos no banco de dados em tempo real, selecionar conteúdo de mídia conhecido associado aos identificadores de conteúdo conhecido correspondentes do banco de dados em tempo real e identificar o conteúdo de mídia desconhecido como o conteúdo de mídia conhecido selecionado, quando os identificadores de conteúdo desconhecido corresponderem a identificadores de conteúdo conhecido no banco de dados em tempo real, serem executadas em tempo real.
9. MÉTODO, de acordo com a reivindicação 1, caracterizado pelas etapas de selecionar conteúdo de mídia conhecido associado a identificadores de conteúdo conhecido do banco de dados em tempo não real correspondente aos identificadores de conteúdo desconhecido e identificar o conteúdo de mídia desconhecido como o conteúdo de mídia conhecido selecionado, quando os identificadores de conteúdo desconhecido não corresponderem a identificadores de conteúdo conhecido no banco de dados em tempo real, serem executadas em tempo não real.
10. SISTEMA, caracterizado por compreender: um ou mais processadores (601, 701, 801); e um ou mais meios de armazenamento legíveis por máquina não transitórios (606, 706, 806) contendo instruções que, quando executadas em um ou mais processadores, fazem com que um ou mais processadores executem o método conforme definido em qualquer uma das reivindicações 1 a 9.
BR112018000838-9A 2015-07-16 2016-07-15 Método e sistema para melhorar o gerenciamento de carga de trabalho em um sistema de monitoramento de televisão com reconhecimento de conteúdo automatizado BR112018000838B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562193345P 2015-07-16 2015-07-16
US62/193,345 2015-07-16
PCT/US2016/042564 WO2017011770A1 (en) 2015-07-16 2016-07-15 System and method for improving work load management in acr television monitoring system

Publications (2)

Publication Number Publication Date
BR112018000838A2 BR112018000838A2 (pt) 2018-09-11
BR112018000838B1 true BR112018000838B1 (pt) 2023-03-28

Family

ID=56555795

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112018000838-9A BR112018000838B1 (pt) 2015-07-16 2016-07-15 Método e sistema para melhorar o gerenciamento de carga de trabalho em um sistema de monitoramento de televisão com reconhecimento de conteúdo automatizado

Country Status (12)

Country Link
US (1) US20210216582A1 (pt)
EP (1) EP3323244B1 (pt)
JP (1) JP6896724B2 (pt)
KR (1) KR102601485B1 (pt)
CN (1) CN108028947B (pt)
AU (1) AU2016293589B2 (pt)
BR (1) BR112018000838B1 (pt)
CA (1) CA2992521C (pt)
CL (1) CL2018000125A1 (pt)
HK (1) HK1252711A1 (pt)
MX (1) MX2018000566A (pt)
WO (1) WO2017011770A1 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11206462B2 (en) * 2018-03-30 2021-12-21 Scener Inc. Socially annotated audiovisual content
CN112533012B (zh) * 2020-11-25 2023-07-04 北京达佳互联信息技术有限公司 直播间互动信息的传输方法、装置、设备和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990453B2 (en) * 2000-07-31 2006-01-24 Landmark Digital Services Llc System and methods for recognizing sound and music signals in high noise and distortion
WO2005011294A1 (ja) * 2003-07-28 2005-02-03 Nec Corporation 視聴調査システム
US9094714B2 (en) * 2009-05-29 2015-07-28 Cognitive Networks, Inc. Systems and methods for on-screen graphics detection
US8930980B2 (en) * 2010-05-27 2015-01-06 Cognitive Networks, Inc. Systems and methods for real-time television ad detection using an automated content recognition database
US8769584B2 (en) 2009-05-29 2014-07-01 TVI Interactive Systems, Inc. Methods for displaying contextually targeted content on a connected television
US9648380B2 (en) * 2009-09-14 2017-05-09 Tivo Solutions Inc. Multimedia device recording notification system
CN107846561B (zh) * 2009-12-29 2020-11-20 构造数据有限责任公司 确定和显示上下文定向内容的方法及系统
US9351037B2 (en) * 2012-02-07 2016-05-24 Turner Broadcasting System, Inc. Method and system for contextual advertisement replacement utilizing automatic content recognition
WO2014142758A1 (en) * 2013-03-14 2014-09-18 Rocks International Group Pte Ltd An interactive system for video customization and delivery
CN104125509B (zh) * 2013-04-28 2015-09-30 腾讯科技(深圳)有限公司 节目识别方法、装置及服务器
WO2014178796A1 (en) * 2013-05-03 2014-11-06 Telefun Transmedia Pte Ltd System and method for identifying and synchronizing content
US20150163545A1 (en) * 2013-12-11 2015-06-11 Echostar Technologies L.L.C. Identification of video content segments based on signature analysis of the video content
CN104506946B (zh) * 2014-12-04 2017-12-05 南京阅视网络科技有限公司 一种基于图像识别的电视节目识别方法和系统

Also Published As

Publication number Publication date
JP6896724B2 (ja) 2021-06-30
AU2016293589B2 (en) 2020-04-02
CN108028947A (zh) 2018-05-11
WO2017011770A1 (en) 2017-01-19
BR112018000838A2 (pt) 2018-09-11
HK1252711A1 (zh) 2019-05-31
CA2992521A1 (en) 2017-01-19
KR102601485B1 (ko) 2023-11-10
AU2016293589A1 (en) 2018-02-08
MX2018000566A (es) 2018-04-24
JP2018530081A (ja) 2018-10-11
CN108028947B (zh) 2021-05-11
EP3323244B1 (en) 2021-12-29
CL2018000125A1 (es) 2018-06-29
US20210216582A1 (en) 2021-07-15
CA2992521C (en) 2024-05-07
KR20180030655A (ko) 2018-03-23
EP3323244A1 (en) 2018-05-23

Similar Documents

Publication Publication Date Title
US10949458B2 (en) System and method for improving work load management in ACR television monitoring system
US11971919B2 (en) Systems and methods for partitioning search indexes for improved efficiency in identifying media segments
CA2992529C (en) Prediction of future views of video segments to optimize system resource utilization
US20230336837A1 (en) Detection of common media segments
US20210216582A1 (en) System and method for improving work load management in acr television monitoring system
US20240184820A1 (en) System and method for improving work load management in acr television monitoring system

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 15/07/2016, OBSERVADAS AS CONDICOES LEGAIS