MX2015003457A - Sistema y metodo de reduccion de ancho de banda. - Google Patents
Sistema y metodo de reduccion de ancho de banda.Info
- Publication number
- MX2015003457A MX2015003457A MX2015003457A MX2015003457A MX2015003457A MX 2015003457 A MX2015003457 A MX 2015003457A MX 2015003457 A MX2015003457 A MX 2015003457A MX 2015003457 A MX2015003457 A MX 2015003457A MX 2015003457 A MX2015003457 A MX 2015003457A
- Authority
- MX
- Mexico
- Prior art keywords
- video stream
- bandwidth
- computer
- user
- video
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/162—User input
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/148—Interfacing a video terminal to a particular transmission medium, e.g. ISDN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Un método, producto de programa de computadora, y sistema de computadora para identificar un primer pixel en una coordenada de una primera trama de video. Un segundo pixel se identifica en una coordenada de una segunda trama de video que corresponde a la coordenada de la primera trama de video. El desenfoque temporal se realiza en un primer valor de pixel del primer pixel y un segundo valor de pixel del segundo pixel. La primera trama de video se combina con la segunda trama de video para generar una trama de video modificada.
Description
SISTEMA Y MÉTODO DE REDUCCIÓN DE ANCHO DE BANDA
Campo de la Invención
Esta descripción se refiere a corrientes de video y, más particularmente, a sistemas ymétodospara reducir los requisitos de ancho de banda de corriente de video.
Antecedentes de la Invención
La Internet permite actualmente el libre intercambio de ideas e información en una forma que era inimaginable hace tan sólo un par de décadas. Uno de tales usos para Internet es como medio de comunicación, ya sea mediante intercambios de uno a uno o intercambios de variaspartes.Por ejemplo,dos individuospueden intercambiar correos electrónicos privados entre si. Por otra parte, varias personas pueden participar en un sitio web público en el que pueden publicar entradas que se publican para varias personas las lean. Ejemplos de tales sitios web pueden incluir, pero no se limitan a, sitios de revisión de productos/servicios y blogs de actualidad.
Uno uso de Internet es permitir que las personas realicen una videoconferencia entre si. A medida que se agrega una videoconferencia de un componente de video a una sesión de comunicación, tales sesiones de comunicación tienden a ser más agradables para los participantes. Desafortunadamente, la
videoconferencia requiere canales de comunicación que tengan un ancho de banda comparativamente alto. Para complicar aún más la situación es que en muchos países en desarrollo, tales canales de comunicación de alto ancho de banda son poco frecuentes, con frecuencia resultan en un rendimiento de videoconferencia que es menor al deseable.
Breve Descripción de la Invención
En una implementación, un método implementado por computadora incluye recibir una indicación de un primer usuario que participa en una videoconferencia. Se realiza una determinación con respecto a si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia. Si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia: una corriente de video sin procesar asociada con el primer usuario se procesa para generar una corriente de video de ancho de banda reducido, y la corriente de video de ancho de banda reducido se proporciona a un codificador de vídeo. Si la compresión de ancho de banda no es preferible para el primer usuario de la videoconferencia, se proporciona la corriente de video sin procesar al codificador de video.Procesar la corriente de video sin procesar incluye uno o más de: realizar un procedimiento de detección de bordes en la corriente de video sin procesar, realizar un procedimiento de reducción de resolución
en la corriente de video sin procesar, realizar un procedimiento de desenfoque espacial en la corriente de video sin procesar, realizar un procedimiento de desenfoque temporal en la corriente de video sin procesar, realizar un procedimiento de cuantificación de imágenes en la corriente de video sin procesar, y realizar un procedimiento de negativo en la corriente de video sin procesar.
En otra implementación, un procedimiento implementado por computadora incluye recibir una indicación de un primer usuario que participa en una videoconferencia. Se realiza una determinación con respecto a si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia. Si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia: una corriente de video sin procesar asociada con el primer usuario se procesa para generar una corriente de video de ancho de banda reducido, y la corriente de video de ancho de banda reducido se proporciona a un codificador de video.Procesar la corriente de video sin procesar incluye realizar un procedimiento de detección de bordes en la corriente de video sin procesar.
Una o más de las siguientes características pueden incluirse. Si la compresión de ancho de banda no es preferible para el primer usuario de la videoconferencia, la corriente de video sin procesar puede proporcionarse al codificador de video.
Procesar la corriente de video sin procesar además puede incluir realizar un procedimiento de reducción de resolución en la corriente de video sin procesar.Procesar la corriente de video sin procesar además puede incluir realizar un procedimiento de desenfoque espacial en la corriente de video sin procesar. Procesar la corriente de video sin procesar además puede incluir realizar un procedimiento de desenfoque temporal en la corriente de video sin procesar.Procesar la corriente de video sin procesar además puede incluir realizar un procedimiento de cuantificación de imágenes en la corriente de video sin procesar. Procesar la corriente de video sin procesar además puede incluir realizar un procedimiento de negativo en la corriente de video sin procesar.
La compresión de ancho de banda puede ser preferible para el primer usuario de la videoconferencia si una omás estadísticas de rendimiento asociadas con el primer usuario no cumplen con un umbral mínimo de rendimiento para la videoconferencia.El umbral mínimo de rendimiento puede incluir uno o más de un umbral mínimo de cómputo y un umbral mínimo de ancho de banda. La videoconferencia puede ejecutarse dentro de una red social.
En otra implementación, un sistema de cómputo que incluye un procesador y una memoria se configura para realizar operaciones que incluyen recibir una indicación de un primer usuario que participa en una videoconferencia. Se hace una determinación con respecto a si la compresión de ancho de banda
es preferible para el primer usuario de la videoconferencia. Si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia: una corriente de video sin procesar asociada con el primer usuario se procesa para generar una corriente de video de ancho de banda reducido, y la corriente de video de ancho de banda reducido se proporciona a un codificador de video.Procesar la corriente de video sin procesar incluye realizar un procedimiento de detección de bordes en la corriente de video sin procesar.
Una o más de las siguientes características pueden incluirse. Si la compresión de ancho de banda no es preferible para el primer usuario de la videoconferencia, la corriente de video sin procesar puede proporcionarse al codificador de vídeo.
Procesar la corriente de video sin procesar además puede incluir realizar un procedimiento de reducción de resolución en la corriente de video sin procesar.Procesar la corriente de video sin procesar además puede incluir realizar un procedimiento de desenfoque espacial en la corriente de video sin procesar. Procesar la corriente de video sin procesar además puede incluir realizar un procedimiento de desenfoque temporal en la corriente de video sin procesar.Procesar la corriente de video sin procesar además puede incluir realizar un procedimiento de cuantificación de imágenes en la corriente de video sin procesar. Procesar la corriente de video sin procesar además puede incluir realizar un
procedimiento de negativo en la corriente de video sin procesar.
La compresión de ancho de banda puede ser preferible para el primer usuario de la videoconferencia siuna omás estadísticas de rendimiento asociadas con el primer usuario no cumplen con un umbral mínimo de rendimiento para la videoconferencia.El umbral mínimo de rendimiento puede incluir uno o más de un umbral mínimo de cómputo y un umbral mínimo de ancho de banda. La videoconferencia puede ejecutarse dentro de una red social.
Los detalles de una o más implementaciones se establecen en las figuras anexas y la descripción siguiente. Otras características y ventajas se volverán evidentes a partir de la descripción, las figuras, y las reivindicaciones.
Breve Descripción de las Figuras
La FIGURA 1 es una vista diagramática de una red de computadoras distribuida gue incluye un dispositivo de cómputo que ejecuta un proceso de reducción de ancho de banda de acuerdo con una implementación de la presente descripción.
La FIGURA 2 es un diagrama de flujo del proceso de reducción de ancho de banda de la FIGURA 1 de acuerdo con una implementación de la presente descripción.
La FIGURA 3 es una vista diagramática de una videoconferencia manejada por el proceso de reducción de ancho de banda de la FIGURA 1 de acuerdo con una implementación de la
presente descripción.
La FIGURA 4 es otra vista diagramática de una videoconferencia manejada por el proceso de reducción de ancho de banda de la FIGURA 1 de acuerdo con una implementación de la presente descripción. Y
La figura 5 es una vista diagramática del dispositivo de cómputo de la FIGURA 1 de acuerdo con una implementación de la presente descripción.
Los símbolos de referencia en las diversas figuras indican elementos similares.
Descripción Detallada de la Invención
En la FIGURA 1 y FIGURA 2, se muestra el proceso de reducción de ancho de banda 10. El proceso de reducción de ancho de banda 10 puede iplementarse como un proceso del lado del servidor, un proceso del lado del cliente, o un proceso híbrido del lado del servidor/del lado del cliente. Por ejemplo, el proceso de reducción de ancho de banda 10puede implementarse como un proceso puramente del lado del servidor mediante el proceso de reducción de ancho de banda 10s.Alternativamente, el proceso de reducción de ancho de banda 10puede implementarse como un proceso puramente del lado del cliente mediante uno o más del proceso de reducción de ancho de banda lOcl, proceso de reducción de ancho de banda 10c2, proceso de reducción de ancho de banda 10c3, y proceso de
reducción de ancho de banda 10c4. Alternativamente, el proceso de reducción de ancho de banda 10puede implementarse como proceso híbrido del lado del cliente/del lado del servidor mediante el proceso de reducción de ancho de banda 10s en combinación con uno o más del proceso de reducción de ancho de banda lOcl, proceso de reducción de ancho de banda 10c2,proceso de reducción de ancho de banda 10c3, y proceso de reducción de ancho de banda 10c4. Por consiguiente, el proceso de reducción de ancho de banda 10 como se utiliza en esta descripción puede incluir cualquier combinación del proceso de reducción de ancho de banda 10s, proceso de reducción de ancho de banda lOcl, proceso de reducción de ancho de banda 10c2, proceso de reducción de ancho de banda 10c3, y proceso de reducción de ancho de banda 10c4.
Con respecto a esta descripción, se describe el proceso de reducción de ancho de banda 10, el cual es una forma novedosa de reducir los requisitos de ancho de banda de una videoconferencia. Específicamente, cuando el proceso de reducción de ancho de banda 10 recibe 100 una indicación de un primer usuario que participa en una videoconferencia, una determinación 102 puede hacerse con respecto a si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia.
Si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia:una corriente de video sin procesar asociada con el primer usuario puede procesarse 104 por
el proceso de reducción de ancho de banda 10 para generar una corriente de video de ancho de banda reducido y la corriente de video de ancho de banda reducido puede proporcionarse a un codificador de video 106. Cuando se procesa 104 la corriente de video sin procesar, puede realizarse un procedimiento de detección de bordes en la corriente de video sin procesar.
El proceso de reducción de ancho de banda 10s puede ser una aplicación de servidor y puede residir en y puede ejecutarse por el dispositivo de cómputo 12, el cual puede conectarse a la red 14 (por ejemplo, la Internet o una red de área local). Ejemplos del dispositivo de cómputo 12 pueden incluir, pero no se limitan a: una computadora personal, una computadora tipo laptop, un asistente digital personal, un teléfono celular habilitado con datos, una computadora tipo notebook, una televisión con uno o más procesadores integrados en la misma o acoplados a la misma, una computadora de servidor, una serie de computadoras de servidor, una mini-computadora, una computadora central, o un dispositivo de red dedicado.
Conjuntos de instrucciones y subrutinas del proceso de reducción de ancho de banda 10s, los cuales pueden almacenarse en el dispositivo de almacenamiento 16 acoplado al dispositivo de cómputo 12, pueden ejecutarse por uno o más procesadores (no mostrados) y una o más arquitecturas de memoria (no mostradas) incluidas dentro del dispositivo de cómputo 12. Ejemplos de
dispositivos de almacenamiento 16 pueden incluir, pero no se limitan a: una unidad de disco duro; una unidad de cinta; una unidad óptica; un dispositivo de RAID; una memoria de acceso aleatorio (RAM); una memoria de sólo lectura (ROM); y todas las formas de dispositivos de almacenamiento de memoria flash.
La red 14 puede conectarse a una o más redes secundarias (por ejemplo, la red 18), de las cuales ejemplos pueden incluir pero no se limitan a: una red de área local; una red de área extensa; o una intranet, por ejemplo.
Ejemplos de procesos de reducción de ancho de banda lOcl, 10c2, 10c3, 10c4pueden incluir,pero no se limitan a un navegador web, una interfaz de usuario de consola de juegos, una interfaz de usuario de videoconferencia, o una aplicación especializada (por ejemplo, una aplicación que se ejecuta en, por ejemplo, la plataforma Android™ o la plataforma iPhone™). Los conjuntos de instrucciones y subrutinas de los procesos de reducción de ancho de banda lOcl, 10c2, 10c3, 10c4, que pueden almacenarse en dispositivos de almacenamiento 20, 22, 24, 26 (respectivamente) acoplados a los dispositivos electrónicos de cliente 28, 30, 32, 34 (respectivamente), pueden ejecutarse por uno o más procesadores (no mostrados) y una o más arquitecturas de memoria (no mostradas) incorporadas en dispositivos electrónicos de cliente 28, 30, 32, 34 (respectivamente). Ejemplos de dispositivos de almacenamiento 20, 22, 24, 26 pueden incluir,
pero no se limitan a: unidades de disco duro; unidades de cinta; unidades ópticas; dispositivos de RAID; memorias de acceso aleatorio (RAM); memorias de sólo lectura (ROM), y todas las formas de dispositivos de almacenamiento de memoria flash.
Ejemplos de dispositivos electrónicos de cliente 28, 30, 32, 34 pueden incluir, pero no se limitan a, teléfono celular habilitado con datos 28, computadora tipo laptop 30, asistente personal digital 32,una computadora personal 34,una computadora tipo notebook (no mostrada), una computadora de servidor (no mostrada), una consola de juegos (no mostrada), una televisión (no mostrada), una computadora tipo Tablet (no mostrada) y un dispositivo de red dedicado (no mostrado). Dispositivos electrónicos de cliente 28, 30, 32, 34 cada uno puede ejecutar un sistema operativo, del cual ejemplos pueden incluir, pero no se limitan a Microsoft Windows™,Android™,WebOS™, iOS™, RedHat Linux™ o un sistema operativo personalizado.
Los usuarios 36, 38, 40, 42 pueden tener acceso al proceso de reducción de ancho de banda 10 directamente a través de la red 14 o a través de la red secundaria 18. Además, el proceso de reducción de ancho de banda 10 puede conectarse a la red 14 a través de la red secundaria 18, como se ilustra con la linea de enlace 44.
Los diversos dispositivos electrónicos de cliente (por ejemplo, dispositivos electrónicos de cliente 28, 30, 32, 34)
pueden acoplarse directa o indirectamente a la red 14 (o red 18), por ejemplo, teléfono celular habilitado con datos 28 y la computadora tipo laptop 30 se muestran acopladas de manera inalámbrica a la red 14 mediante canales de comunicación inalámbrica 44, 46 (respectivamente) establecidos entre el teléfono celular habilitado con datos 28, la computadora tipo laptop 30 (respectivamente) y la red/puente celular 48, la cual se muestra directamente acoplada a la red 14.Además,el asistente digital personal 32 se muestra acoplado a la red inalámbrica 14 mediante el canal de comunicación inalámbrica 50 establecido entre el asistente digital personal 32 y el punto de acceso inalámbrico 52 (es decir, WAP), el cual se muestra directamente acoplado a la red 14. Además, la computadora personal 34 se muestra acoplada directamente a la red 18 mediante una conexión de red alámbrica.
El WAP 52, por ejemplo, puede ser un dispositivo de IEEE 802.11a, 802.11b, 802.llg, 802.11h, Wi-Fi, y/o Bluetooth el cual es capaz de establecer canales de comunicación inalámbrica 50 entre el asistente digital personal 32 y el WAP 52.Como se conoce en la téenica, las especificaciones de IEEE 802.llx pueden utilizar el protocolo de Ethernet y el acceso múltiple por detección de portadora con evasión de colisión (es decir, CSMA/CA) para el intercambio de trayectorias. Las diversas especificaciones de 802.llx pueden utilizar modulación por
desplazamiento de fase (es decir, PSK) o modulación de codificación complementaria (es decir, CCK), por ejemplo. Como se sabe en la téenica, Bluetooth es una especificación industrial de telecomunicación que permite, por ejemplo, que los teléfonos móviles, computadoras y asistentes digitales personales se interconecten utilizando una conexión inalámbrica de corto alcance.
Como se conoce en la técnica, los usuarios de las redes sociales pueden ser capaces de participar en sesiones de comunicación grupal. Por ejemplo, Google+™ permite que los usuarios de esta red social participen en "lugares de reunión", que son las videoconferencias de multiusuario que permiten reuniones virtuales de personas para que puedan charlar sobre temas específicos. Aunque la discusión anterior se refiere a Googlet™, esto sólo espara propósitos ilustrativos y no pretende ser una limitación de esta descripción. Por ejemplo, el proceso de reducción de ancho de banda 10 puede incluirse dentro de o utilizarse por cualquier red social.
Con referencia también a la FIGURA 3, asumir con fines ilustrativos que los usuarios 36, 38, 40, 42 todos son miembros de la red social 150. Además, asumir que los usuarios 36, 38, 40 desean participar en la videoconferencia 152.Aunque la siguiente discusión tiene que ver con la videoconferencia 152 que se ejecuta dentro de la red social 150, esto sólo es para propósitos
ilustrativos y no pretende ser una limitación de esta descripción, ya que son posibles otras configuraciones. Por ejemplo, la videoconferencia 152 puede producirse fuera de la red social 150 a manera de, por ejemplo, una aplicación/producto de comunicación autónomo {no mostrado). Para fines ilustrativos, además, asumir que la videoconferencia 152 se producirá a través del dispositivo de cómputo 12, donde (en este ejemplo) los usuarios 36, 38, 40 accederán a la videoconferencia 152 mediante los dispositivos electrónicos de cliente 28, 30, 32 (respectivamente). Además, asumir que la videoconferencia 152 (como se utiliza en esta descripción) pretende cubrir cualquier forma de transmisión de video, tal como transmisión de video de punto a punto, transmisión de video de igual a muchos, o transmisión de video comunal.
Asumir con fines ilustrativos que los usuarios 38, 40 se ubican geográficamente en un área en la cual las conexiones a Internet de ancho de banda se encuentran disponibles entre (en este ejemplo) dispositivos de cliente 30, 32 y el dispositivo de cómputo 12. Además, asumir que el usuario 36 se ubica geográficamente en un área en la cual una conexión a Internet de ancho de banda puede no encontrarse disponible entre (en este ejemplo) el dispositivo electrónico de cliente 28 y el dispositivo de cómputo 12.
Adicionalmente y para este ejemplo, asumir que los
dispositivos electrónicos de cliente 30, 32 (como se utilizan por los usuarios 38, 40, respectivamente) son dispositivos de alta gama que son completamente capaces de codificar una corriente de video de alto ancho de banda para su uso en videoconferencia 152. Además, asumir que el dispositivo electrónico de cliente 28 (como se utiliza por el usuario 36) es un dispositivo que puede no ser totalmente capaz de codificar una corriente de video de ancho de banda alto para su uso en videoconferencia 152.
Por consiguiente, y continuando con el ejemplo indicado en lo anterior, asumir que los usuarios 36, 38, 40 cada uno indica (por ejemplo, mediante los dispositivos electrónicos de cliente 28, 30, 32, respectivamente) la intención de participar en la videoconferencia 152, generando de esta manera indicaciones 54, 56, 58,respectivamente. Elproceso de reducción de ancho de banda 10 puede recibir 100 una indicación (por ejemplo, indicaciones 54, 56, 58) de que los usuarios 36, 38, 40 (respectivamente) desean participar en la videoconferencia 152.
Como se sabe, la calidad de la videoconferencia 152 puede depender altamente del rendimiento computacional de los dispositivos electrónicos de cliente individuales (por ejemplo, dispositivos electrónicos de cliente 28, 30, 32) y el ancho de banda disponible para los canales de comunicación que se establecen entre los dispositivos electrónicos de cliente (por ejemplo, dispositivos electrónicos de cliente 28, 30, 32) y el
dispositivo de cómputo 12.
Por consiguiente, y para garantizar una alta calidad y una videoconferencia agradable, el proceso de reducción de ancho de banda 10 puede determinar 102 si la compresión de ancho de banda es preferible para los participantes (por ejemplo, los usuarios 36, 38, 40) en la videoconferencia 152.
Por ejemplo, la compresión de ancho de banda puede ser preferible para los participantes (por ejemplo, los usuarios 36, 38, 40) de la videoconferencia 152 si uno o más de los participantes (por ejemplo, los usuarios 36, 38, 40) seleccionados para utilizar siempre la compresión de ancho de banda. Por ejemplo, el proceso de reducción de ancho de banda 10 puede configurarse para permitir que un usuario seleccione si desea o no utilizar la compresión de ancho de banda. Además, la compresión de ancho de banda puede utilizarse de forma automática si la última videoconferencia utilizó compresión de ancho de banda.
Alternativamente, la compresión de ancho de banda puede ser preferible para los participantes (por ejemplo, los usuarios 36, 38, 40) la de videoconferencia 152 si una o más estadísticas de rendimiento asociadas con los participantes no cumplen con un umbral mínimo de rendimiento para la videoconferencia. Ejemplos de estos umbrales mínimos de rendimiento pueden incluir, pero no se limitan a, uno o más de un umbral mínimo de ancho de banda y/o
un umbral mínimo de cómputo.
El umbralmínimo de ancho de banda puede definir un requisito mínimo de ancho de banda para los canales de comunicación establecidos entre los dispositivos electrónicos de cliente (por ejemplo, dispositivos electrónicos de cliente 28, 30, 32) y el dispositivo de cómputo 12. El umbral mínimo computacional puede definir un requisito mínimo de velocidad de cómputo para los dispositivos electrónicos de cliente (por ejemplo, dispositivos de cliente 28, 30, 32). Típicamente, los umbrales mínimos antes descritos pueden definirse de manera que si no se cumple con uno de los umbrales mínimos antes descritos puede dar como resultado en que la videoconferencia 152 sea de baja calidad.
Por consiguiente, y en tal configuración, al recibir 100 cada una de las indicaciones 54, 56, 58, el proceso de reducción de ancho de banda 10 puede determinar 102 si la compresión de ancho de banda es preferible al determinar si la estadística de rendimiento de ancho de banda y la estadística de rendimiento computacional antes mencionadas cumplen con los umbrales mínimos de rendimiento antes descritos.
La estadística de rendimiento de ancho de banda descrita en lo anterior puede determinarse por el proceso de reducción de ancho de banda 10 de varias maneras. Por ejemplo, un archivo (por ejemplo, archivo 60) que tiene un tamaño conocido puede almacenarse en, por ejemplo, el dispositivo de almacenamiento 16
de dispositivo de cómputo 12. Al recibir por ejemplo, la indicación 54 del dispositivo electrónico de cliente 28, 60, el archivo puede transferirse desde el dispositivo de cómputo 12 hasta el dispositivo electrónico de cliente 28 y,posteriormente, desde el dispositivo electrónico de cliente 28 hasta el dispositivo de cómputo 12. Ya que el archivo 60 tiene un tamaño conocido, el proceso de reducción de ancho de banda 10 puede calcular un ancho de banda bidireccional para determinar si la estadística de rendimiento asociada con el canal de comunicación que se establece entre el dispositivo electrónico de cliente 28 y el dispositivo de cómputo 12 cumplen con el umbral mínimo de ancho de banda antes descrito. Un ejemplo de este umbral mínimo de ancho de banda puede ser 100 kb por segundo.
La estadística de rendimiento computacional antes descrita puede determinarse por el proceso de reducción de ancho de banda 10 de varias maneras. Por ejemplo, al recibir la indicación 54 del dispositivo electrónico de cliente 28, el proceso de reducción de ancho de banda 10 puede ejecutar una o más aplicaciones de referencia de rendimiento (no mostradas) en el dispositivo electrónico de cliente 28 para determinar si el dispositivo electrónico de cliente 28 alcanza el umbral mínimo computacional descrito en lo anterior.Un ejemplo de este umbral mínimo de cómputo puede ser de 15 cuadros por segundo, con 30 cuadros por segundo siendo deseable.
Haciendo referencia también a la FIGURA 4, asumir que el proceso de reducción de ancho de banda 10 recibe 100 la indicación 54 desde el dispositivo electrónico de cliente 28 (asociado con el usuario 36) y se encuentra en el proceso de determinar si las estadísticas de rendimiento descritas en lo anterior (por ejemplo, estadística de rendimiento de ancho de banda y/o estadística de rendimiento computacional) asociadas con el usuario 36 en la videoconferencia 152 alcanzan los umbrales mínimos de rendimiento descritos anteriormente.Asumir con fines ilustrativos que el canal de comunicación 200 se establece entre el dispositivo electrónico de cliente 28 y el dispositivo de cómputo 12.
En el caso de que las estadísticas de rendimiento antes descritas (por ejemplo, la estadística de rendimiento de ancho de banda y/o la estadística de rendimiento computacional) derivadas, por ejemplo,del usuario 36no cumplan con los umbrales mínimos de rendimiento para videoconferencia 152, el proceso de reducción de ancho de banda 10puede proporcionar 108 la corriente de video sin procesar 202 al codificador de vídeo 204 incluido dentro del dispositivo electrónico de cliente 28 para la transmisión al canal de comunicación 200. Ejemplos del codificador de vídeo 204 pueden incluir, pero no se limitan a: el códec H.264, el códec WMV y el códec DIVX.
Sin embarqo, en el caso de que las estadísticas de
rendimiento descritas anteriormente asociadas con, por ejemplo, el usuario 36 no cumplan con los umbrales mínimos de rendimiento para la videoconferencia 152: el proceso de reducción de ancho de banda 10 puede procesar 104 la corriente de video sin procesar 202 asociada con, por ejemplo, el usuario 36 para generar la corriente de video de ancho de banda reducido 206 y puede proporcionar corriente de video 106 de ancho de banda reducido 206 al codificador de video 204 incluido dentro del dispositivo electrónico de cliente 28 para su transmisión al canal de comunicación 200.
Dependiendo de la forma en que se configura el proceso de reducción de ancho de banda 10, la corriente de video de ancho de banda 206 reducida puede ser, por ejemplo, una corriente de video de imágenes en escala de grises, una corriente de video de siluetas en escala de grises, una corriente de video de imagen binaria, o una corriente de video en silueta binaria. La forma en la cual el proceso de reducción de ancho de banda 10 procesa 104 la corriente de video sin procesar 202 para generar corriente de video de ancho de banda reducido 206 se discute más adelante con mayor detalle.
Al procesar 104 la corriente de video sin procesar 202, el proceso de reducción de ancho de banda 10 puede realizar un procedimiento de reducción de resolución 110 en la corriente de video sin procesar 202, por ejemplo, la corriente de video sin
procesar 202 puede tener una resolución nativa de 640 x 360 pixeles. Por consiguiente, cuando se procesa 104 la corriente de video sin procesar 202, el proceso de reducción de ancho de banda 10 puede realizar 110 un procedimiento de reducción de resolución en la corriente de video sin procesar 202 para reducir la resolución de la corriente de video sin procesar 202 de 640 x 360 pixeles a 160 x 90 pixeles. Por consiguiente, una reducción del 75% en el número de pixeles horizontales y una reducción del 75% en el número de pixeles verticales pueden dar como resultado en una corriente de video que es 1/16de su tamaño original (es decir, 25% x 25%).
Al procesar 104 la corriente de video sin procesar 202, el proceso de reducción de ancho de banda 10 puede realizar 112 un procedimiento de desenfoque espacial en la corriente de video sin procesar 202. Por ejemplo, el proceso de reducción de ancho de banda 10 puede realizar 112 un procedimiento de desenfoque gaussiano al procesar 104 la corriente de video sin procesar 202. Como se sabe en la téenica, un procedimiento de desenfoque gaussiano (también conocido como suavizado gaussiano) es un proceso matemático en el que una imagen se desenfoca de acuerdo con una función gaussiana.Por ejemplo,para cualquier pixel dado dentro de una imagen, uno o más pixeles que rodean el pixel dado pueden promediarse y el pixel dado puede sustituirse por el valor medio de pixel.
El desenfoque gaussiano puede utilizarse en imágenes gráficas (por ejemplo, tramas de video) para reducir el ruido de la imagen y/o reducir el detalle de la imagen. Visualmente, el procedimiento de desenfoque gaussiano puede resultar en una téenica de desenfoque ^uave que se asemeja a la visualización de una imagen mediante un filtro traslúcido.
Al procesar 104 la corriente de video sin procesar 202, el proceso de reducción de ancho de banda 10 puede realizar 114 un procedimiento de detección de bordes en la corriente de video sin procesar 202. Por ejemplo, el proceso de reducción de ancho de banda 10 puede realizar 114 un procedimiento de detección de bordes Sobel al procesar 104 la corriente de video sin procesar 202.
La detección de bordes usando el operador de Sobel puede utilizarse en el procesamiento de imágenes, la cual técnicamente es un operador de diferenciación discreta que calcula una aproximación del gradiente de la función de intensidad de la imagen. En cada punto en la imagen, el resultado del operador de Sobel puede ser el vector de gradiente correspondiente o la norma de este vector.
Específicamente, el operador de Sobel puede calcular el gradiente de intensidad de la imagen en cada punto dentro de la imagen, dando la dirección del mayor incremento posible de claro a oscuro y la tasa de cambio en esa dirección. Esto se refiere
a que tan "bruscamente" o "suavemente" cambia la imagen en cualquier punto dado en la imagen y, por lo tanto, cuán probable es que esta porción particular de la imagen represente un borde (y la orientación del mismo).
Cuando se procesa 104 la corriente de video sin procesar 202, el proceso de reducción de ancho de banda 10 puede realizar 116 un procedimiento de desenfoque temporal en la corriente de video sin procesar 202. Por ejemplo, cuando se procesa 104 la corriente de video sin procesar 202, el proceso de reducción de ancho de banda 10 puede realizar 116 un procedimiento de desenfoque temporal tal como el procedimiento descrito en la Solicitud Provisional de Estados Unidos No.61/701,927, titulada Sistema y Método de Desenfoque Temporal, y presentada el 17 de septiembre de 2012 (cuyo contenido se incorpora en la presente para referencia y se anexa a la presente como APÉNDICE A).
De una manera similar al procedimiento de desenfoque espacial descrito en lo anterior, el desenfoque temporal puede determinar el promedio de una pluralidad de pixeles y utilizar ese promedio para reemplazar un pixel dado. Sin embargo, a diferencia del desenfoque espacial,el cual determina elpromedio de pixeles geográficamente próximos (es decir, los pixeles que se encuentran próximos a los pixeles dados dentro de la misma trama de video), el desenfoque temporal promedia los pixeles que se aproximan al pixel dado. Específicamente, el desenfoque
temporal toma el promedio de pixeles en tramas de video temporalmente adyacentes que corresponden al pixel dado. Por consiguiente, el pixel #113 dentro de la trama de vídeo T-l puede promediarse con el pixel #113 en la trama de vídeo T+l, y este promedio calculado puede utilizarse para poblar el pixel #113 dentro de la trama de vídeo T.
Al procesar 104 la corriente de video sin procesar 202, el proceso de reducción de ancho de banda 10 puede realizar 118 un procedimiento de cuantificación de imágenes en la corriente de video sin procesar 202.
Un procedimiento de cuantificación de imágenes, tal como se utiliza en el procesamiento de imágenes, es una téenica de compresión con pérdidas logrado al comprimir un margen de valores en un solo valor cuántico.Cuando se reduce el número de símbolos discretos en una corriente de video dada, la corriente de video puede llegar a sermás compresible, reduciendo así los requisitos de ancho de banda. Por ejemplo, al reducir el número de colores requeridos para representar una imagen digital dentro de una corriente de video, se puede reducir los requisitos de ancho de banda de la corriente de video. Ejemplos de un procedimiento de cuantificación de imágenes pueden incluir, pero no se limitan a, DCT de máscara de bits (es decir,Transformada Discreta de Coseno) de cuantificación de datos en formato de JPEG y DWT (es decir,
Transformada Discreta de Miniondas) de cuantificación de datos
en JPEG 2000.
Como se discute en lo anterior, la cuantificación de colores puede reducir el número de colores distintos utilizados dentro de una imagen, normalmente con la intención de que la nueva imagen sea visualmente muy similar tanto como sea posible a la imagen original. La cuantificación de colores puede utilizarse para mostrar las imágenes con muchos colores en dispositivos que sólo pueden mostrar un número limitado de colores (por ejemplo, debido a las limitaciones de memoria) y/o para permitir la compresión eficiente de ciertos tipos de imágenes (por ejemplo, tramas de video discretas dentro de una corriente de video).
Cuando se procesa 104 la corriente de video sin procesar 202, el proceso de reducción de ancho de banda 10 puede realizar 120 un procedimiento de negativo en la corriente de video sin procesar 202, lo que esencialmente permite que el usuario elija entre, por ejemplo, la corriente de video de ancho de banda reducida 206 (como semuestra en la FIGURA 4)y,esencialmente,el fotonegativo de la corriente de video de ancho de banda reducido 206. En concreto, la corriente de video de ancho de banda reducido 206 puede representarse mediante el proceso de reducción de ancho de banda 10 como una silueta oscura en escala de grises (de la persona mostrada en la corriente de video sin procesar 202) sobre un fondo iluminado. Sin embargo y a través del uso del procedimiento de negativo antes descrito, el usuario 36 puede elegir tener la
corriente de video de ancho de banda reducido 206 dictada por el proceso de reducción de ancho de banda 10 como una silueta iluminada en escala de grises (de la persona mostrada en la corriente de video sin procesar 202) sobre un fondo oscuro.
Aunque la corriente de video de ancho de banda reducido 206 se muestra incluyendo una silueta en escala de grises, esto es sólo para fines ilustrativos y no pretende ser una limitación de esta descripción, ya que son posibles otras configuraciones. Por ejemplo, la corriente de video de ancho de banda reducido 206 puede generarse por el proceso de reducción de ancho de banda 10 para incluir una silueta binaria (en la cual los pixeles de la silueta son un primer estado binario (por ejemplo,negro o blanco) y el fondo es un segundo estado binario (por ejemplo, blanco o negro).
Haciendo referencia también a la FIGURA 5, se muestra una vista diagramática de un sistema de cómputo 12.Si bien el sistema de cómputo 12 se muestra en esta figura, esto es sólo para fines ilustrativos y no pretende ser una limitación de esta descripción, ya que otras configuraciones son posibles. Por ejemplo, cualquier dispositivo de cómputo capaz de ejecutar, en su totalidad o en parte, el proceso de reducción de ancho de banda 10 puede sustituirse por el dispositivo de cómputo 12 dentro de la FIGURA 5, del cual ejemplos pueden incluir, pero no se limitan a, dispositivos electrónicos de cliente 28,30,32, 34.
El sistema de cómputo 12 puede incluir un microprocesador 250 configurado para, por ejemplo, procesar datos y ejecutar instrucciones/código para el proceso de reducción de ancho de banda 10. El microprocesador 250 puede acoplarse al dispositivo de almacenamiento 16. Como se menciona en lo anterior, ejemplos del dispositivo de almacenamiento 16 pueden incluir, pero no se limitan a: una unidad de disco duro; una unidad de cinta; una unidad óptica;un dispositivo de RAID; un dispositivo de ÑAS, una Red de Área de Almacenamiento, una memoria de acceso aleatorio (RAM); una memoria de sólo lectura (ROM); y todas las formas de dispositivos de almacenamiento de memoria flash. El controlador de E/S 252 puede configurarse para acoplar elmicroprocesador 250 con varios dispositivos, tales como el teclado 256, el ratón 258, puertos USB (no mostrados), y puertos de impresora (no mostrados). El adaptador de pantalla 260 puede configurarse para acoplar la pantalla 262 (por ejemplo, un monitor de CRT o LCD) con el microprocesador 250, mientras que el adaptador de red 264 (por ejemplo, un adaptador de Ethernet) puede configurarse para acoplar el microprocesador 250 a la red 14 (por ejemplo, Internet o una red de área local).
Como se apreciará por un experto en la téenica, la presente descripción puede realizarse como un método (por ejemplo, ejecutarse en su totalidad o en parte, en el dispositivo de cómputo 12), un sistema (por ejemplo, el dispositivo de cómputo
12), o un producto de programa de computadora (por ejemplo, codificado dentro del dispositivo de almacenamiento 16). Por consiguiente, la presente descripción puede tomar la forma de una modalidad totalmente de hardware, una modalidad totalmente de software (incluyendo firmware, software residente, microcódigo, etc.) o una modalidad que combina aspectos de software y hardware que generalmente todos pueden denominarse aquí como un "circuito", "módulo" o "sistema". Además, la presente descripción puede tomar la forma de un producto de programa de computadora en un medio de almacenamiento utilizable por computadora (por ejemplo, dispositivo de almacenamiento 16) que tiene código de programa utilizable por computadora incorporado en el medio.
Cualquier medio legible utilizable o equipo de cómputo adecuado (por ejemplo, dispositivo de almacenamiento 16) puede utilizarse. El medio utilizable por computadora o legible por computadora puede ser, por ejemplo, pero no se limita a, un sistema electrónico, magnético, óptico, electromagnético, infrarrojo, o semiconductor, aparato, dispositivo o medio de propagación. Ejemplos más específicos (una lista no exhaustiva) del medio legible por computadora pueden incluir los siguientes: una conexión eléctrica que tiene uno o más cables, un disquete de computadora portátil, un disco duro, una memoria de acceso aleatorio (RAM), una memoria de sólo lectura (ROM), una memoria
programable y borrable de sólo lectura (EPROM o Memoria Flash), una fibra óptica, un disco compacto portátil de memoria de sólo lectura (CD-ROM), un dispositivo de almacenamiento óptico, un medio de transmisión tal como aquellos que soportan Internet o una intranet, o un dispositivo de almacenamiento magnético. El medio de computadora utilizable o legible por computadora también puede ser papel u otro medio adecuado sobre el cual se imprime el programa, ya que el programa puede ser capturado electrónicamente, a través de, por ejemplo, escaneo óptico del papel u otro medio, después compilarse, interpretarse, o procesarse de otro modo de otra manera adecuada, si es necesario, después almacenarse en una memoria de computadora.En el contexto de este documento, un medio utilizable por computadora o legible por computadora puede ser cualquier medio que pueda contener, almacenar, comunicar, propagar o transportar el programa para su uso por o junto con el sistema, aparato o dispositivo de ejecución de instrucciones. El medio utilizable por computadora puede incluir una señal de datospropagada con el código de programación utilizable por computadora incorporado con la misma, ya sea en banda base o como parte de una onda portadora. El código de programación utilizable por computadora puede transmitirse utilizando cualquier medio adecuado, incluyendo pero no limitado a Internet, cable, cable de fibra óptica, RF, etc.
El código de programa de computadora para llevar a cabo las
operaciones de la presente descripción puede estar escrito en un lenguaje de programación orientado a objetos como Java, Smalltalk, C++ o similares. Sin embargo, el código de programa de computadora para llevar a cabo las operaciones de la presente descripción también puede estar escrito en lenguajes de programación de procedimiento convencionales, tales como el lenguaje de programación "C" o lenguajes de programación similares. El código de programa puede ejecutarse en su totalidad en la computadora del usuario, parcialmente en el equipo del usuario, como un paquete de software independiente, parcialmente en la computadora del usuario y parcialmente en un equipo remoto o en su totalidad en el equipo remoto o servidor. En este último escenario, la computadora remota puede conectarse a la computadora del usuario mediante una red de área local/una red de área extensa/Internet (por ejemplo, la red 14).
La presente descripción se describe con referencia a las ilustraciones del diagrama de flujo y/o los diagramas de bloque de los métodos, aparatos (sistemas) y productos de programa de computadora de acuerdo con modalidades de la descripción. Se entenderá que cada bloque de las ilustraciones de diagrama de flujo y/o diagramas de bloque, y combinaciones de bloques en las ilustraciones de diagrama de flujo y/o diagramas de bloque, pueden implementarse por instrucciones de programa de computadora. Estas instrucciones de programa de computadora
pueden proporcionarse a un procesador (por ejemplo,elprocesador 250) de una computadora de propósito general/computadora de propósito especial/otro aparato de procesamiento de datos programable (por ejemplo, dispositivo de cómputo 12), de tal manera que las instrucciones, que se ejecutan mediante el procesador (por ejemplo, el procesador 250) de la computadora u otro aparato de procesamiento de datos programable, crean medios para implementar las funciones/actos especificados en el diagrama de flujo y/o bloque o bloques del diagrama de bloque.
Estas instrucciones de programa de computadora también pueden almacenarse en una memoria legible por computadora (por ejemplo, dispositivo de almacenamiento 16} que puede dirigir a una computadora (por ejemplo, dispositivo de cómputo 12) u otro aparato de procesamiento de datos programable para que funcione de una manera particular, de manera que las instrucciones almacenadas en la memoria legible por computadora produzcan un articulo de fabricación incluyendo medios de instrucción que implementan la función/acto especificado en el bloque o bloques de diagrama de flujo y/o diagrama de bloque.
Las instrucciones de programa de computadora también pueden cargarse en una computadora (por ejemplo, el dispositivo de cómputo 12) u otro aparato programable de procesamiento de datos para provocar que una serie de etapas operacionales se realicen sobre la computadora u otro aparato programable para producir un
proceso implementado por computadora de manera que la instrucciones que se ejecutan en la computadora u otro aparato programable proporcionen etapas para implementar las funciones/actos especificados en el bloque o bloques de diagrama de flujo y/o diagrama de bloque.
Los diagramas de flujo y diagramas de bloque en las figuras pueden ilustrar la arquitectura, funcionalidad y operación de posibles implementaciones de los sistemas, métodos y productos de programa de computadora de acuerdo con diversas modalidades de la presente descripción. En este respecto, cada bloque en el diagrama de flujo o diagramas de bloque puede representar un módulo, segmento o porción de código, que comprende una o más instrucciones ejecutables para implementar la función o funciones lógicas especificadas. También cabe señalar que, en algunas implementaciones alternativas, las funciones observadas en el bloque pueden producirse fuera del orden observado en las figuras. Por ejemplo, dos bloques mostrados en sucesión pueden, de hecho, ejecutarse sustancialmente de forma simultánea, o los bloques a veces pueden ejecutarse en el orden inverso, dependiendo de la funcionalidad en cuestión.También se observará que cada bloque de los diagramas de bloque y/o ilustraciones de diagrama de flujo,y las combinaciones de bloques en losdiagramas de bloque y/o ilustraciones de diagrama de flujo, pueden implementarse por sistemas basados en hardware de propósito
especial que realizan las funciones o actos especificados, o combinaciones de instrucciones de hardware de propósito especial y de computadora.
La terminología utilizada en la presente es para el propósito de describir modalidades particulares solamente y no pretende que sea limitante de la descripción. Como se utiliza en la presente, las formas singulares de "un", "una" y "el" se pretenden para incluir las formas plurales, a menos que el contexto indique claramente lo contrario. Además, se entenderá que los términos "comprende" y/o "que comprende", cuando se utilizan en esta descripción, especifican la presencia de características, números enteros, etapas, operaciones, elementos y/o componentes,pero no excluye la presencia o adición de uno o más de otras características, números enteros, etapas, operaciones, elementos, componentes y/o grupos de los mismos.
Las estructuras, materiales, acciones y equivalentes de todos los medios o elementos de etapa más función correspondientes en las siguientes reivindicaciones pretenden incluir cualquier estructura, material o acto para realizar la función en combinación con otros elementos reclamados que se reclaman específicamente. La descripción de la presente divulgación se ha presentado con fines de ilustración y descripción, pero no se pretende para ser exhaustiva o limitada a la divulgación en la forma descrita. Muchas modificaciones y
variaciones serán evidentes para los expertos en la téenica sin apartarse del alcance y espíritu de la descripción.La modalidad se seleccionó y describió con el fin de explicar mejor los principios de la divulgación y la aplicación práctica, y para permitir que otros de experiencia ordinaria en la técnica comprendan la descripción de varias modalidades con varias modificaciones que son adecuadas al uso particular contemplado.
Habiendo descrito de esta manera la divulgación de la presente solicitud en detalle y con referencia a las modalidades de la misma, será evidente que son posibles modificaciones y variaciones sin apartarse del alcance de la descripción como se define en las reivindicaciones anexas.
P N ICE
SISTEMA.Y MÉTODO DE DESENFOQUE TEMPORAL
Campo de la Invención
Esta descripción se refiere a mejorar sistemas y métodos de calidad de video y,más particularmente,a implementar desenfoque temporal para mejorar los sistemas y métodos de calidad de video.
Antecedentes de la Invención
El video (por ejemplo, video en vivo) puede utilizarse en una sesión de comunicación entre individuos remotos. Generalmente, la persona que transmite el video en vivo puede utilizar una cámara Web como medio para capturar el video en vivo desde la fuente, donde entonces puede transmitirse por una red para que lo vea el individuo receptor. Sin embargo, algunas cámaras web y otros dispositivos de grabación pueden considerarse "ruidosos", lo que resulta en una grabación y/o visualización de imágenes de video de mala calidad, lo cual puede exacerbarse con las conexiones de red de mala calidad. Como tal, el video capturado y visto no puede ser claro, lo que puede presentar una molestia para el individuo receptor y disminuye el disfrute general de la sesión de comunicación para ambos individuos.
Breve Descripción de la Invención
En una implementación, un método, realizado por uno o más
dispositivos de cómputo, comprende identificar un primer pixel en una coordenada de una primera trama de video.Un segundo pixel se identifica en una coordenada de una segunda trama de video gue corresponde a la coordenada de la primera trama de video. Una primera ponderación se aplica a un primer valor de pixel del primer pixel y una segunda ponderación se aplica a un segundo valor de pixel del segundo pixel. La primera trama de video se combina con la segunda trama de video para generar una trama de video modificada. La trama de video modificada se envía a un codificador de vídeo.
En una implementación, un método, realizado por uno o más dispositivos de cómputo, comprende identificar un primer pixel en una coordenada de una primera trama de video.Un segundo pixel se identifica en una coordenada de una segunda trama de vídeo que corresponde a la coordenada de la primera trama de vídeo. El desenfoque temporal se realiza en un primer valor de pixel del primer pixel y un segundo valor de pixel del segundo pixel. La primera trama de vídeo se combina con la segunda trama de vídeo para generar una trama de vídeo modificada.
Una o más de las siguientes características pueden incluirse. La trama de vídeo modificada puede enviarse a un codificador de vídeo. Realizar el desenfoque temporal puede incluir aplicar una primera ponderación al primer valor de pixel y aplicar una segunda ponderación al segundo valor de pixel.
Realizar el desenfoque temporal puede incluir una memoria intermedia limitada de tramas. Realizar el desenfoque temporal puede incluir un promedio entre tramas. El desenfoque espacial puede realizarse en al menos una porción de la primera trama de video y la segunda trama de video. El desenfoque espacial y el desenfoque temporal pueden combinarse dentro de la imagen modificada.
En otra implementación, un producto de programa de computadora reside en un medio de almacenamiento legible por computadora que tiene una pluralidad de instrucciones almacenadas en el mismo. Cuando se ejecutan por un procesador, las instrucciones provocan que el procesador realice operaciones que comprenden identificar un primer pixel en una coordenada de una primera trama de video.Un segundo pixel se identifica en una coordenada de una segunda trama de video que corresponde a la coordenada de la primera trama de video. El desenfoque temporal se realiza en un primer valor de pixel del primer pixel y un segunde valor de pixel del segundo pixel. La primera trama de video se combina con la segunda trama de video para generar una trama de video modificada.
Una o más de las siguientes características pueden incluirse. La trama de vídeo modificada puede enviarse a un codificador de vídeo. Realizar el desenfoque temporal puede incluir aplicar una primera ponderación al primer valor de pixel
y aplicar una segunda ponderación al segundo valor de pixel. Realizar el desenfoque temporal puede incluir una memoria intermedia limitada de tramas. Realizar el desenfoque temporal puede incluir un promedio entre tramas. El desenfoque espacial puede realizarse en al menos una porción de la primera trama de vídeo y la segunda trama de vídeo. El desenfoque espacial y el desenfoque temporal pueden combinarse dentro de la imagen modificada.
En otra implementación, un sistema de cómputo incluye un procesador y una memoria configurada para realizar operaciones que comprende identificar un primer pixel en una coordenada de una primera trama de video. Un segundo pixel se identifica en una coordenada de una segunda trama de vídeo correspondiente a la coordenada de la primera trama de video. El desenfoque temporal se realiza en un primer valor de pixel del primer pixel y un segundo valor de pixel del segundo pixel. La primera trama de vídeo se combina con la segunda trama de vídeo para generar una trama de vídeo modificada.
Una o más de las siguientes características pueden incluirse. La trama de vídeo modificada puede enviarse a un codificador de vídeo. Realizar el desenfoque temporal puede incluir aplicar una primera ponderación al primer valor de pixel y aplicar una segunda ponderación al segundo valor de pixel. Realizar el desenfoque temporal puede incluir una memoria
intermedia limitada de tramas. Realizar el desenfoque temporal puede incluir un promedio entre tramas. El desenfoque espacial puede realizarse en al menos una porción de la primera trama de video y la segunda trama de video. El desenfoque espacial y el desenfoque temporal pueden combinarse en la trama de video modificada.
Los detalles de una o más implementaciones se establecen en las figuras anexas y en la siguiente descripción. Otras características y ventajas se harán evidentes a partir de la descripción, las figuras y las reivindicaciones.
Breve Descripción de las Figuras
La FIGURA 1 es una vista diagramática ilustrativa de un proceso de desenfoque temporal acoplado a una red de computadoras distribuida de acuerdo con una o más modalidades de la presente descripción.
La FIGURA 2 es una vista diagramática de un dispositivo electrónico de cliente de la FIGURA 1 de acuerdo con una o más modalidades de la presente descripción.
La FIGURA 3 es un diagrama de flujo ilustrativo del proceso de desenfoque temporal de la FIGURA 1 de acuerdo con una o más modalidades de la presente descripción.
La FIGURA 4 es una vista diagramática ilustrativa de una imagen de pantalla que muestra el proceso de desenfoque temporal
de la FIGURA 1 de acuerdo con una o más modalidades de la presente descripción. Y
La FIGURA 5 es una vista diagramática ilustrativa de dos tramas de video de acuerdo con una omásmodalidadesde la presente descripción.
Los símbolos de referencia en las diversas figuras indican elementos similares.
Descripción Detallada de la Invención
En algunas modalidades, un video para una "sesión de chat en línea" puede iniciarse entre varios usuarios remotos.Para ayudar a mejorar la calidad de vídeo que se está viendo, el proceso de desenfoque temporal (TB) 10 puede identificar pixeles de la trama de vídeo ubicados en una primera trama de video del vídeo. El proceso de TB 10 también puede identificar pixeles de la trama de vídeo de otra trama de vídeo en el mismo lugar que corresponde a la ubicación de la primera trama de vídeo. En algunas modalidades, el proceso de TB 10 puede realizar desenfoque temporal en al menos algunos de los pixeles de cada trama y combinarlos para generar una trama de vídeo modificada. Como se discutirá con mayor detalle a continuación, realizar desenfoque temporal de los pixeles de cada trama y la combinación de las mismas puede producir la grabación y/o visualización de calidad de vídeo mejorada. Generalmente, el proceso de compresión de
vídeo puede desalentar el desenfoque, ya que puede resultar en una pérdida de detalle; sin embargo, como también se discutirá en detallemás adelante,el desenfoque temporal con una alta "tasa de aprendizaje" ejemplar puede incrementar la percepción de calidad de vídeo,donde,por ejemplo,puede existir relativamente poco movimiento de cámara y/o de objeto, tal como para una escena de imagen estática. De este modo, la imagen desenfocada resultante temporal (vídeo) puede tener un mayor detalle de la imagen.
Haciendo referencia a la FIGURA 1, se muestra proceso de desenfoque temporal (TB) 10 que puede residir en y puede ejecutarse por una computadora (por ejemplo,computadora 12),que puede conectarse a una red (por ejemplo, la red 14) (por ejemplo, la Internet o una red de área local). Ejemplos de computadora 12 pueden incluir, pero no se limitan a, una computadora o computadoras personales, una computadora o computadoras tipo laptop, dispositivo o dispositivos móviles, una computadora de servidor, una serie de computadoras de servidor, una computadora o computadoras centrales, o informática en la nube. La computadora 12 puede ejecutar un sistema operativo, por ejemplo, pero no se limita a, Microsoft® Windows®; Mac® OS X®; Red Hat® Linux®, o un sistema operativo personalizado, por ejemplo. (Microsoft y Windows son marcas comerciales registradas de Microsoft Corporation en los Estados Unidos, otros países o
ambos; Mac y OS X son marcas comerciales registradas de Apple Inc. en los Estados Unidos, otros países o ambos; Red Hat es una marca comercial registrada de Red Hat Corporación en los Estados Unidos, otros países o ambos; y Linux es una marca registrada de Linus Torvalds en los Estados Unidos, otros países o ambos).
Como se discutirá más adelante con mayor detalle, el proceso de TB 10 puede identificar un primer pixel en una coordenada de una primera trama de video. Un segundo pixel puede identificarse en una coordenada de una segunda trama de vídeo que corresponde a la coordenada de la primera trama de vídeo. El desenfoque temporal puede realizarse en un primer valor de pixel del primer pixel y un segundo valor de pixel del segundo pixel. La primera trama de vídeo puede combinarse con la segunda trama de vídeo para generar una trama de vídeo modificada.
Los conjuntos de instrucciones y subrutinas del proceso de TB 10, los cuales pueden almacenarse en el dispositivo de almacenamiento 16 acoplado a la computadora 12,pueden ejecutarse por uno o más procesadores (no mostrados) y una o más arquitecturas de memoria (no mostradas) incluidas dentro de la computadora 12. El dispositivo de almacenamiento 16 puede incluir, pero no se limita a:una unidad de disco duro; una unidad de memoria Flash, una unidad de cinta; una unidad óptica; una disposición de RAID; una memoria de acceso aleatorio (RAM); y una memoria de sólo lectura (ROM).
La red 14 puede conectarse a una o más redes secundarias (por ejemplo, la red 18), de las cuales ejemplos pueden incluir pero no se limitan a: una red de área local; una red de área extensa; o una intranet, por ejemplo.
La computadora 12 puede ejecutar una aplicación de colaboración (por ejemplo, aplicación de colaboración 20), de la cual ejemplos pueden incluir, pero no se limitan a, por ejemplo, una aplicación de conferencias web, una aplicación de videoconferencia, una aplicación de video sobre IP, una aplicación de voz sobre IP, aplicación de "chat" en linea, una aplicación de compresión de video, u otra aplicación que permita la reunión virtual y/o colaboración remota, el proceso de TB 10 y/o aplicación de colaboración 20 puede acceder mediante aplicaciones de cliente 22, 24, 26, 28.El proceso de TB 10 puede ser una aplicación independiente, o puede ser una aplicación diminuta/aplicación/secuencia de comandos que puede interactuar con y/o ejecutarse dentro de una aplicación de colaboración 20. Ejemplos de aplicaciones de cliente 22,24,26, 28pueden incluir, pero no se limitan a, una aplicación de conferencias web, una aplicación de videoconferencia,una aplicación de video sobre IP, aplicación de voz sobre IP, aplicación de "chat" en linea, u otra aplicación que permite la reunión virtual y/o colaboración remota, un navegador web estándar y/o móvil, una aplicación de cliente de correo electrónico, una interfaz de usuario gráfica
y/o textual, un navegador web personalizado, una aplicación de complemento, una aplicación de compresión de video, o una aplicación personalizada. Los conjuntos de instrucciones y subrutinas de aplicaciones de cliente 22, 24, 26, 28, que pueden almacenarse en dispositivos de almacenamiento 30, 32, 34, 36 acoplados a los dispositivos electrónicos de cliente 38, 40, 42, 44, pueden ejecutarse por uno o más procesadores (no mostrados) y una o más arquitecturas de memoria (no mostradas) incorporadas en dispositivos electrónicos de cliente 38, 40, 42, 44.
Los dispositivos de almacenamiento 30, 32, 34, 36 pueden incluir, pero no se limitan a: unidades de disco duro; unidades de memoria Flash, unidades de cinta; unidades ópticas; disposiciones de RAID; memorias de acceso aleatorio (RAM); y memorias de sólo lectura (ROM). Ejemplos de dispositivos electrónicos de cliente 38, 40, 42, 44 pueden incluir, pero no se limitan a, una computadora personal (por ejemplo, dispositivo electrónico de cliente 38), una computadora tipo laptop (por ejemplo, dispositivo electrónico de cliente 40), un teléfono inteligente (por ejemplo, dispositivo electrónico de cliente 42), una computadora tupo notebook (por ejemplo, dispositivo electrónico de cliente 44), una Tablet (no mostrada),un servidor (no mostrado), un teléfono celular habilitado con datos (no mostrado), una televisión (no mostrada), una televisión inteligente (no mostrada), y un dispositivo de red dedicado (no
mostrado). Los dispositivos electrónicos de cliente 38, 40, 42, 44 pueden ejecutar cada sistema operativo,de los cuales ejemplos pueden incluir,pero no se limitan a,Android™,Apple® iOS®,Mac® OS X®; Red Hat® Linux®, o un sistema operativo personalizado.
Una o más de las aplicaciones de cliente 22, 24, 26, 28 puede configurarse para efectuar parte o toda la funcionalidad del proceso de TB 10 (y viceversa). Por consiguiente, el proceso de TB 10 puede ser una aplicación puramente del lado del servidor, una aplicación puramente del lado del cliente, o una aplicación híbrida del lado del servidor/del lado del cliente gue se ejecuta en cooperación por una o más de las aplicaciones de cliente 22, 24, 26, 28 y el proceso de TB 10.
Una o más de las aplicaciones de cliente 22, 24, 26, 28 puede configurarse para efectuar parte o toda la funcionalidad de la aplicación de colaboración 20 (y viceversa). Por consiguiente, la aplicación de colaboración 20 puede ser una aplicación puramente del lado del servidor, una aplicación puramente del lado del cliente, o una aplicación híbrida del lado del servidor/del lado del cliente que se ejecuta en cooperación por una o más de las aplicaciones de cliente 22, 24,26,28 y la aplicación de colaboración 20.
Los usuarios 46, 48, 50, 52 pueden acceder a la computadora 12 y el proceso de TB 10 directamente a través de la red 14 o mediante la red secundaria 18. Además, la computadora 12 puede
conectarse a la red 14 mediante la red secundaria 18, como se ilustra con la linea de enlace imaginaria 54. El proceso de TB 10 puede incluir una o más interfaces de usuario, como los navegadores e interfaces de usuario textuales o gráficas, mediante las cuales los usuarios 46, 48, 50, 52 pueden tener acceso al proceso de TB 10.
Los distintos dispositivos electrónicos de cliente pueden acoplarse directa o indirectamente a la red 14 (o la red 18), por ejemplo, el dispositivo electrónico de cliente 38 se muestra directamente acoplado a la red 14 mediante una conexión de red alámbrica. Además, el dispositivo electrónico de cliente 44 se muestra directamente acoplado a la red 18 mediante una conexión de red alámbrica. El dispositivo electrónico de cliente 40 se muestra acoplado a la red inalámbrica 14 mediante el canal de comunicación inalámbrica 56 establecido entre el dispositivo electrónico de cliente 40 y el punto de acceso inalámbrico 58 (es decir, el WAP), el cual se muestra directamente acoplado a la red 14. El WAP 58 puede ser, por ejemplo, el dispositivo de IEEE 802.11a, 802.11b, 802.llg,Wi-Fi, y/o de Bluetooth™ que es capaz de establecer el canal de comunicación inalámbrica 56 entre el dispositivo electrónico de cliente 40 y el WAP 58.El dispositivo electrónico de cliente 42 se muestra de forma inalámbrica acoplado a la red 14mediante el canal de comunicación inalámbrica 60 establecido entre el dispositivo electrónico de cliente 42 y
la red/puente celular 62, que se muestra directamente acoplado a la red 14.
Como se conoce en la téenica, todas las especificaciones de IEEE 802.llx pueden utilizar el protocolo de Ethernet y el acceso múltiple por detección de portadora con evasión de colisión (es decir, CSMA/CA)para el intercambio de trayectorias.Las diversas especificaciones de 802.llx pueden utilizar la modulación por desplazamiento de fase (es decir, PSK) o la modulación complementaria por codificación (es decir, CCK), por ejemplo. Como se sabe en la técnica, Bluetooth™ es una especificación de la industria de telecomunicación que permite, por ejemplo, que teléfonos móviles, computadoras, teléfonos inteligentes y otros dispositivos electrónicos se interconecten mediante una conexión inalámbrica de corto alcance.
Haciendo referencia también a la FIGURA 2, se muestra una vista diagramática de dispositivo electrónico de cliente 40. Aunque el dispositivo electrónico de cliente 40 se muestra en esta figura, esto es sólo para fines ilustrativos y no pretende ser una limitación de esta descripción, ya que otras configuraciones son posibles.Por ejemplo,cualquier dispositivo de cómputo capaz de ejecutar, en su totalidad o en parte, el proceso de TB 10 puede sustituirse por el dispositivo electrónico de cliente 40 dentro de la FIGURA 2, de los cuales ejemplos pueden incluir pero no se limitan a la computadora 12 y los dispositivos electrónicos de
cliente 38, 42, 44.
El dispositivo electrónico de cliente 40 puede incluir un procesador y/o el microprocesador (por ejemplo, el microprocesador 200) configurado, por ejemplo, para procesar datos y ejecutar el código/conjuntos de instrucciones antes indicados y subrutinas de proceso de TB 10. El microprocesador 200 puede acoplarse mediante un adaptador de almacenamiento (no mostrado) al dispositivo de almacenamiento 16 indicado anteriormente. Un controlador de E/S (por ejemplo,el controlador de E/S 202) puede configurarse para acoplar el microprocesador 200 con varios dispositivos, tales como el teclado 206, el dispositivo de señalamiento/selección (por ejemplo, el ratón 208), el dispositivo de captura de video/imagen (por ejemplo, la cámara Web 216), puertos USB (no mostrados), y puertos de impresora (no mostrados).Un adaptador de pantalla (por ejemplo, el adaptador de pantalla 210) puede configurarse para acoplar la pantalla 212 (por ejemplo, monitores de CRT o de LCD) con el microprocesador 200, mientras que el controlador/adaptador de red 214 (por ejemplo, un adaptador de Ethernet) puede configurarse para acoplar el microprocesador 200 a la red 14 indicada anteriormente (por ejemplo, Internet o una red de área local).
Como se discute anteriormente y haciendo referencia también a la FIGURA 3, FIGURA 4 y FIGURA 5, el proceso de desenfoque
temporal (TB) 10 puede identificar 200 un primer pixel en una coordenada de una primera trama de video.Elproceso de TB 10puede identificar 202 un segundo pixel en una coordenada de una segunda trama de video gue corresponde a la coordenada de la primera trama de video.El proceso de TB 10 puede llevar a cabo 204 el desenfoque temporal en un primer valor de pixel del primer pixel y un segundo valor de pixel del segundo pixel. El proceso de TB 10 puede combinar 206 la primera trama de video con la segunda trama de video para generar una trama de video modificada.
Por ejemplo, asumir que para fines ejemplares solamente un usuario, por ejemplo, el usuario 48, llevará a cabo una sesión de "chat" de video mediante dispositivos electrónicos de cliente 40 con otro usuario, por ejemplo, el usuario 50, mediante dispositivos electrónicos de cliente 42. Asumir que también el dispositivo electrónico de cliente 40 utiliza un dispositivo de captura de imagen/video (por ejemplo, la cámara Web 216) para capturar el video del usuario 48 al menos para una parte de la sesión de chat.En algunas modalidades, la aplicación de cliente 24 en el dispositivo electrónico de cliente 40 puede incluir una interfaz de usuario (por ejemplo, interfaz de usuario 400) visible en una pantalla 212a, que puede incluir la sección 402 para el intercambio de textos entre los que se encuentran en la sesión de chat. En algunas modalidades, el dispositivo electrónico de cliente 40 puede incluir un micrófono (no
mostrado), de modo que el audio pueda incluirse en la sesión de chat. En algunas modalidades, la interfaz de usuario 400 puede incluir también la sección 404, donde las imágenes de video del usuario 48 capturadas mediante la cámara Web 216 del dispositivo electrónico de cliente 40 pueden presentarse en el dispositivo electrónico de cliente 42, y también pueden incluir una sección más pequeña 406 que muestra las imágenes de video presentadas del usuario 50 como capturadas por la cámara Web del dispositivo electrónico de cliente 42.
La cámara Web 216 utilizada para capturar las imágenes de video del usuario 48 para la representación en el dispositivo electrónico de cliente 42 durante la sesión de chat puede ser de mala calidad debido a que, por ejemplo, la cámara Web 216 es "ruidosa" y/o se conecta a una mala conexión de red. Como resultado, algunas de las tramas de video individuales (que pueden incluir una pluralidad de pixeles), las cuales cuando se combinan forman al menos una parte del video capturado por la cámara Web 216 y mostrada en la pantalla 212a, pueden no poseer la calidad deseada/esperada por el usuario 50.
Para ayudar a mejorar la mala calidad de video procedente de cámaras web 216, el proceso de TB 10 puede identificar 200 el primer pixel en una coordenada de una trama primer video (por ejemplo, trama de video 500a)del video.El proceso de TB 10 puede identificar 202 un segundo pixel en la coordenada de una segunda
trama de video (por ejemplo, trama de vídeo 500b) del vídeo que corresponde a la coordenada de la primera trama de vídeo. Por ejemplo, el proceso de TB 10 puede identificar 200 los pixeles 504a en la trama de video 500a en una coordenada de, por ejemplo, (0,1). El proceso de TB 10 puede identificar 202 que el pixel 504b se encuentra en la misma coordenada (0,1), pero en la trama de video 500b.Aquellos con experiencia en la téenica apreciarán que el tamaño, la cantidad, la geometría y configuración (por ejemplo, espacio de color lineal, no lineal) de pixeles puede variar sin apartarse del alcance de la descripción. En algunas modalidades, cada pixel puede representar una muestra de una imagen original, por ejemplo, el vídeo capturado por la cámara Web 216; sin embargo, aquellos con experiencia en la técnica apreciarán que el término pixel puede interpretarse ampliamente basándose en el contexto adecuado (por ejemplo, los pixeles transportados por las señales electrónicas o representados por valores digitales,pixeles en un dispositivo de pantalla,pixeles que indican elementos de fotosensor, etc.).
El proceso de TB 10 puede llevar a cabo 204 el desenfoque temporal en un primer valor de pixel del pixel 504a y un segundo valor de pixel delpixel 504b.Por ejemplo,eldesenfoque temporal (también denominado como desenfoque de movimiento) puede realizarse por el proceso de TB 10 entre tramas de vídeo adyacentes (por ejemplo, algunas o todas las tramas de video 500a
y algunas o todas las tramas de video 500b). El proceso de TB 10 puede combinar 206 la trama de video 500a con la trama de video 500b para generar una trama de video modificada (no mostrada). En algunasmodalidades,realizar 204 el desenfoque temporal entre las tramas de video adyacentes, por ejemplo, puede reducir el ruido de la cámara Web, mejorar la eficiencia de codificación, y mejorar la calidad de video subjetiva.
En algunasmodalidades, realizar 204 el desenfoque temporal puede incluir el proceso de TB 10 que aplica una primera ponderación al primer valor de pixel y aplica 208 una segunda ponderación al segundo valor de pixel. En una modalidad, la primera y segunda ponderaciones pueden basarse en, al menos en parte, una tasa de aprendizaje utilizada por el proceso de TB 10. Por ejemplo, permitamos que L sea una "tasa de aprendizaje" deseada (L)entre,por ejemplo, 0.0 y 1.0.En algunasmodalidades, puede ser deseable que L sea alta (por ejemplo, 0.85). L puede describirse en términos generales como el porcentaje del valor de pixel utilizado en una trama subsiguiente para crear la trama de video modificada. En el ejemplo, permitamos que F0 (por ejemplo, la trama de video 500a) sea una trama de video en negro con pixeles en cualquier espacio de color lineal (por ejemplo, RGBA) . Algunas o todas las tramas de video capturadas pueden almacenarse en FI (por ejemplo, la trama de video 500b). En algunas modalidades, la trama de video 500a es una trama de video
anterior y la trama de video 500b es la trama de video adyacente (es decir, la nueva, la más nueva, la subsiguiente, etc.)· Continuando con el ejemplo,para cada pixel P0 en F0, y cada pixel correspondiente Pl en Fl, el proceso de TB 10 puede establecer P0 = L * Pl + (1.0 - L) * P0. En el ejemplo, el proceso de TB 10 puede enviar 210 la trama de video modificada (por ejemplo, F0) a un codificador de video (no mostrado).
En algunas modalidades, el proceso de TB 10 puede llevar a cabo 204 el desenfoque temporal como una acción de pre-procesamiento después de que la cámara Web 216 ha capturado una trama de video (por ejemplo, la trama de video 500a y/o la trama de video 500b)antesde que la trama de video se haya enviado 210 al codificador de video.Debido a que,en algunasmodalidades, el desenfoque temporal puede ocurrir antes de codificar el video, realizar el desenfoque temporal 204 como una acción de pre-procesamiento puede permitir la interoperabilidad con la mayoría (si no es que todas) las bibliotecas de compresión de vídeo existentes (por ejemplo, ya que la compresión de vídeo basada en bibliotecas de compresión de vídeo puede aplicarse a la trama modificada enviada 210 al codificador de vídeo). El desenfoque temporal también puede, en algunas modalidades, optimizarse altamente, por ejemplo, con instrucciones de Datos Múltiples de una Sola Instrucción (SIMD) sobre Unidades de Procesamiento Central (CPU) y/o unidades de procesamiento
gráfico (GPUs).Además, el desenfoque temporal puede reducir las diferencias entre tramas, lo cual puede ser ideal para algunas bibliotecas de compresión de video. Típicamente, las tramas de video comprimidas pueden representarse como, por ejemplo, "Tramas-I", "Tramas-P" y/o "Tramas-B". Al realizar 204 el desenfoque temporal como una acción de pre-procesamiento, el proceso de TB 10 puede reducir las diferencias entre tramas, permitiendo así tramas P y B más pequeñas. Tamaños de trama de vídeo reducidos pueden mejorar notablemente el rendimiento de la red.
Aunque al menos un ejemplo para realizar 204 el desenfoque temporal se ha descrito, los expertos en la téenica apreciarán que una variedad de técnicas de desenfoque temporal también puede realizarse 204 sin apartarse del alcance de la descripción. Por ejemplo, realizar 204 el desenfoque temporal puede incluir cualquier técnica de promedio entre tramas. Por ejemplo, el promedio entre tramas puede incluir, por ejemplo, la combinación de dos tramas en una corriente de video mediante un promedio simple o ponderado.Por ejemplo,considerar la trama de vídeo 500a y la trama de video 500b, las cuales pueden o no pueden ser tramas adyacentes. En el ejemplo, una posible técnica para el promedio de trama de vídeo 500a y la trama de vídeo 500b puede ser ponderar cada pixel de la trama de vídeo 500a igualmente con la trama de vídeo 500b y tomar un promedio por pixel de estas tramas para
producir una trama de vídeo modificada resultante. En algunas modalidades, un promedio simple puede introducir artefactos no deseados. Más variantes complejas podrían ponderar la trama de video 500a y la trama de video 500b de manera diferente de acuerdo con una función de su edad (por ejemplo,cuando se capturó la trama de video respectiva) en comparación con el tiempo real. Por ejemplo, si la trama de video 500a es más antigua que la trama de vídeo 500b, la trama de vídeo 500a puede ponderarse con una L menor que la trama de video 500b.
Como otro ejemplo, realizar 204 el desenfoque temporal puede incluir una memoria intermedia limitada de tramas. Por ejemplo, una memoria intermedia limitada de tramas puede almacenar una muestra de N tramas recientes para calcular un promedio ponderado. El uso de una memoria intermedia limitada puede permitir que el proceso de TB 10 reste la trama más antigua al retirarla de la memoria intermedia y agregando la trama más nueva de muestreo. Como otro ejemplo, las ponderaciones (que pueden incluir la L descrita anteriormente) aplicadas 208 por el proceso de TB 10 pueden variar (como se señaló anteriormente) y no necesitan ser la misma ponderación. Como tal, cualquier téenica descrita de desenfoque temporal debe tomarse como ejemplo solamente y no para limitar el alcance de la descripción.
En algunas modalidades, el desenfoque espacial puede realizarse 212 por el proceso de TB 10 en al menos una porción
de la trama de video 500a y/o la trama de video 500b (asi como más de 2 tramas de video). Donde el desenfoque temporal puede implicar dos o más tramas de video (como se describe ilustrativamente en lo anterior), el desenfoque temporal puede contrastarse con el desenfoque espacial, el cual puede implicar al menos una porción de sólo una trama de video simple. Por ejemplo, el desenfoque espacial puede incluir ampliamente un desenfoque dentro de una región de una sola trama mientras que el desenfoque temporal puede incluir un desenfoque mediante múltiples tramas como se discute anteriormente, pero en algunas modalidades, de las mismas coordenadas de pixeles x, y.
En algunas modalidades, el desenfoque espacial (por ejemplo, de la trama de video 500a) y el desenfoque temporal (por ejemplo, de la trama de video 500a y la trama de video 500b)pueden combinarse 214 por el proceso de TB 10 en la trama de video modificada (por ejemplo,antes de que la trama de videomodificada se haya enviado 210 al codificador de video). Por ejemplo, el proceso de TB 10 primero puede realizar 204 el desenfoque temporal, y luego realizar 212 el desenfoque espacial sobre la trama resultante modificada.Como otro ejemplo, el proceso de TB 10 puede realizar 212 el desenfoque espacial a todas las tramas anteriores, incluyendo o no la trama más nueva, y luego realizar 204 el desenfoque temporal. Estas variaciones pueden tener diferentes impactos sobre qué artefactos pueden introducirse en
la imagen modificada resultante y pueden seleccionarse en función de, por ejemplo, al menos en parte, el contenido de video y los resultados deseados.
Como se apreciará por un experto en la téenica, la presente descripción puede realizarse como un método, sistema o producto de programa de computadora. Por consiguiente, la presente descripción puede tomar la forma de una modalidad totalmente de hardware, una modalidad totalmente de software (incluyendo firmware, software residente,microcódigo, etc.) o una modalidad que combina aspectos de software y hardware que generalmente todos pueden denominarse aquí como un "circuito", "módulo" o "sistema". Además, la presente descripción puede tomar la forma de un producto de programa de computadora en un medio de almacenamiento utilizadle por computadora que tiene código de programa utilizable por computadora incorporado en el medio.
Cualquier medio legible por computadora o utilizable por computadora adecuado puede utilizarse. El medio legible por computadora puede ser un medio de señal legible por computadora o un medio de almacenamiento legible por computadora. El medio de almacenamiento utilizable por computadora, o legible por computadora (incluyendo un dispositivo de almacenamiento asociado con un dispositivo de cómputo o dispositivo electrónico de cliente) puede ser, por ejemplo, pero no limitado a, un sistema, aparato, dispositivo electrónico, magnético, óptico,
electromagnético, de infrarrojo, o de semiconductor, o cualquier combinación adecuada de lo anterior.Los ejemplosmás específicos (una lista no exhaustiva) del medio legible por computadora pueden incluir lo siguiente:una conexión eléctrica que tiene uno o más cables, un disquete de computadora portátil, un disco duro, una memoria de acceso aleatorio (RAM),unamemoria de sólo lectura (ROM), una memoria programadle y borrable de sólo lectura (EPROM o memoria Flash), una fibra óptica, un disco compacto de memoria de sólo lectura (CD-ROM), un dispositivo de almacenamiento óptico, un medio de comunicación, tal como los que soportan Internet o una intranet, o un dispositivo de almacenamiento magnético. Tenga en cuenta que el medio utilizable por computadora o legible por computadora incluso podría ser un medio adecuado sobre el cual se almacena,escanea,compila, interpreta, o procesa el programa de una manera adecuada, si es necesario, y luego se almacena en una memoria de computadora.En el contexto de este documento, un medio de almacenamiento utilizable por computadora o legible por computadora puede ser cualquier medio tangible que pueda contener o almacenar un programa para su uso por o junto con el sistema, aparato o dispositivo de ejecución de instrucciones.
Un medio de señal legible por computadora puede incluir una señal de datos propagados con un código de programa legible por computadora incorporado en el mismo, por ejemplo, en banda base
o co o parte de una onda portadora. Tal señal propagada puede tomar cualquiera de una variedad de formas, incluyendo, pero no limitado a, electro-magnética, óptica, o cualquier combinación de lasmismas.El código de programa legible por computadora puede transmitirse utilizando cualquier medio adecuado, incluyendo pero no limitado a, Internet, cable, cable de fibra óptica, RF, etc. Un medio de señal legible por computadorapuede ser cualquier medio legible por computadora que no es un medio de almacenamiento legible por computadora y que puede comunicar, propagar o transportar un programa para su uso por o junto con un sistema, aparato o dispositivo de ejecución de instrucciones.
El código de programa de computadora para llevar a cabo las operaciones de la presente descripción puede ser escrito en un lenguaje de programación orientado a objetos como Java®, Smalltalk, C++ o similares. Java y todas las marcas basadas en Java y logotipos son marcas comerciales o marcas comerciales registradas de Oracle y/o sus filiales. Sin embargo, el código de programa de computadora para llevar a cabo las operaciones de la presente descripción también se puede escribir en lenguajes de programación de procedimiento convencionales, tales como el lenguaje de programación "C", PASCAL,o lenguajes de programación similares, asi como en lenguajes de programación como JavaScript o PERL. El código de programa puede ejecutarse en su totalidad en la computadora del usuario, parcialmente en el equipo del
usuario, como un paquete de software independiente, parcialmente en la computadora del usuario y en parte en un equipo remoto o en su totalidad en el equipo remoto o servidor. En este último escenario, la computadora remota puede conectarse a la computadora del usuario mediante una red de área local (LAN) o una red de área extensa (WAN), o la conexión puede hacerse a una computadora externa (por ejemplo, mediante la Internet utilizando un proveedor de servicios de Internet).
Los diagramas de flujo y diagramas de bloque en las figuras ilustran la arquitectura, funcionalidad y operación de posibles implementaciones de aparatos (sistemas), métodos y productos de programa de computadora de acuerdo con diversas modalidades de la presente descripción. Se entenderá que cada bloque de los diagramas de flujo y/o diagramas de bloque, y combinaciones de bloques en los diagramas de flujo y/o diagramas de bloque,pueden representar un módulo, segmento o porción de código, que comprende una o más instrucciones de programa de computadora ejecutables para la implementación de las funciones lógicas/actos especificados. Estas instrucciones de programa de computadora pueden proporcionarse a un procesador de una computadora de propósito general, computadora de propósito especial u otro aparato de procesamiento de datos programable para producir una máquina, de tal manera que las instrucciones de programa de computadora que pueden ejecutarse mediante el
procesador de la computadora u otro aparato de procesamiento de datos programable, cree la capacidad de implementar una o más de las funciones/actos especificados en el bloque o bloques de diagrama de flujo y/o diagrama de bloque o combinaciones de los mismos. Cabe señalar que en algunas implementaciones alternativas, las funciones observadas en el bloque o bloques pueden producirse fuera del orden señalado en las figuras. Por ejemplo, dos bloques mostrados en sucesión, de hecho, pueden ejecutarse sustancialmente de forma simultánea, o los bloques a veces pueden ejecutarse en el orden inverso, dependiendo de la funcionalidad en cuestión.
Estas instrucciones de programa de computadora también pueden almacenarse en una memoria legible por computadora que puede dirigir una computadora u otro aparato de procesamiento de datos programable para que funcione de una manera particular, de tal manera que las instrucciones almacenadas en la memoria legible por computadora produzcan un articulo de fabricación que incluya instrucciones de medios que implementen la función/acto especificado en el bloque o bloques del diagrama de flujo y/o diagrama de bloque o combinaciones de los mismos.
Las instrucciones de programa de computadora también pueden cargarse en una computadora u otro aparato programable de procesamiento de datos para provocar que una serie de etapas operacionales se realicen (no necesariamente en un orden
particular) en la computadora u otro aparato programable para producir un proceso implementado por computadora de manera que las instrucciones que se ejecutan en la computadora u otro aparato programable proporcionen las etapas para implementar las funciones/actos (no necesariamente en un orden particular) especificados en el bloque o bloques del diagrama de flujo y/o diagrama de bloque o combinaciones de los mismos.
La terminología utilizada en la presente es para el propósito de describir modalidades particulares solamente y no se pretende para que sean limitantes de la descripción. Como se utiliza en la presente, las formas singulares de "un", "una" y "el" se pretenden para incluir las formas plurales, a menos que el contexto indique claramente lo contrario.Se entenderá que los términos "comprende" y/o "que comprende", cuando se utilizan en esta especificación, especifican la presencia de características, números enteros, etapas (no necesariamente en un orden particular), operaciones, elementos, y/o componentes, pero no excluyen la presencia o adición de una o más de otras características, números enteros, etapas (no necesariamente en un orden particular), operaciones, elementos, componentes y/o grupos de los mismos.
Las estructuras, materiales, acciones y equivalentes de todos los medios o elementos de etapas más función correspondientes en las siguientes reivindicaciones pretenden
incluir cualquier estructura, material o acto para realizar la función en combinación con otros elementos reclamados como se reclaman específicamente. La descripción de la presente divulgación se ha presentado con fines de ilustración y descripción, pero no se pretende para ser exhaustiva o limitada a la divulgación en la forma descrita. Muchas modificaciones, variaciones, y cualesquier combinaciones de los mismos serán evidentes para los expertos en la téenica sin apartarse del alcance y espíritu de la descripción. Las modalidades se eligieron y describieron con el fin de explicar mejor los principios de la divulgación y la aplicación práctica, y para permitir que otros con experiencia ordinaria en la técnica comprendan la divulgación para varias modalidades con varias modificaciones y/o cualquier combinación de modalidades que sean adecuadas para el uso particular contemplado.
Habiendo descrito así la divulgación de la presente solicitud en detalle y con referencia a las modalidades de la misma, será aparente que son posibles modificaciones, variaciones, y cualquier combinación de las modalidades (incluyendo las modificaciones, variaciones y combinaciones de las mismas) sin apartarse del alcance de la descripción como se define en las reivindicaciones anexas.
NOVEDAD DE LA INVENCIÓN
Habiendo descrito la presente invención como antecede, se considera como novedad y por lo tanto se reclama como propiedad lo descrito en las siguientes.
REIVINDICACIONES
1. Un método implementado por computadora caracterizado porque comprende:
identificar un primer pixel en una coordenada de una primera trama de video;
identificar un segundo pixel en una coordenada de una segunda trama de video que corresponde a la coordenada de la primera trama de video;
aplicar una primera ponderación a un primer valor de pixel del primer pixel y aplicar una segunda ponderación a un segundo valor de pixel del segundo pixel;
combinar la primera trama de video con la segunda trama de video para generar una trama de video modificada; y
enviar la trama de video modificada al codificador de video.
2. Un método implementado por computadora caracterizado porque comprende:
identificar un primer pixel en una coordenada de una primera trama de video;
identificar un segundo pixel en una coordenada de una segunda trama de video que corresponde a la coordenada de la primera trama de video;
realizar desenfoque temporal en un primer valor de pixel del primer pixel y un segundo valor de pixel del segundo pixel; y combinar la primera trama de video con la segunda trama de video para generar una trama de video modificada.
3.El método implementado por computadora de conformidad con la reivindicación 2, se caracteriza porque realizar el desenfoque temporal incluye aplicar una primera ponderación al primer valor de pixel y aplicar una segunda ponderación al segundo valor de pixel.
4. Elmétodo implementado por computadora de conformidad con la reivindicación 2, se caracteriza además porque comprende realizar el desenfoque espacial en al menos una porción de la primera trama de video y la segunda trama de video.
5. Elmétodo implementado por computadora de conformidad con la reivindicación 4, se caracteriza además porgue comprende combinar el desenfoque espacial y el desenfoque temporal en la trama de video modificada.
6. Elmétodo implementado por computadora de conformidad con la reivindicación 2, se caracteriza porque realizar el desenfoque temporal incluye una memoria intermedia limitada de tramas.
7. Elmétodo implementado por computadora de conformidad con
la reivindicación 2, se caracteriza porque realizar el desenfoque temporal incluye promedio entre tramas.
8. Elmétodo implementado por computadora de conformidad con la reivindicación 2, se caracteriza además porque comprende enviar a un codificador de video la trama de video modificada.
9. Un producto de proqrama de computadora que reside en un medio de almacenamiento legible por computadora que tiene una pluralidad de instrucciones almacenadas en el mismo la cuales, cuando se ejecutan por un procesador, provocan que el procesador realice operaciones que comprenden;
identificar un primer pixel en una coordenada de una primera trama de video;
identificar un segundo pixel en una coordenada de una segunda trama de video que corresponde a la coordenada de la primera trama de video;
realizar desenfoque temporal en un primer valor de pixel del primer pixel y un segundo valor de pixel del segundo pixel; y combinar la primera trama de video con la segunda trama de video para generar una trama de video modificada.
10. El producto de programa de computadora de conformidad con la reivindicación 9, se caracteriza porque realizar el desenfoque temporal incluye aplicar una primera ponderación al primer valor de pixel y aplicar una segunda ponderación al segundo valor de pixel.
11. El producto de programa de computadora de conformidad con la reivindicación 9, se caracteriza además porque comprende realizar el desenfoque temporal en al menos una porción de la primera trama d video y la segunda trama de video.
12. El producto de programa de computadora de conformidad con la reivindicación 11, se caracteriza además porque comprende combinar el desenfoque espacial y el desenfoque temporal en la trama de video modificada.
13. El producto de programa de computadora de conformidad con la reivindicación 9, se caracteriza porque realizar el desenfoque temporal incluye una memoria intermedia limitada de tramas.
14. El producto de programa de computadora de conformidad con la reivindicación 9, se caracteriza porque realizar el desenfoque temporal incluye promedio entre tramas.
15. El producto de programa de computadora de conformidad con la reivindicación 9, se caracteriza además porque comprende enviar a un codificador de video la trama de video modificada.
16. Un sistema de cómputo que incluye un procesador y una memoria configurada para realizar operaciones que comprenden: identificar un primer pixel en una coordenada de una primera trama de video; identificar un segundo pixel en una coordenada de una segunda trama de video que corresponde a la coordenada de la primera trama de video;
realizar desenfoque temporal en un primer valor de pixel del primer pixel y un segundo valor de pixel del segundo pixel; y combinar la primera trama de video con la segunda trama de video para generar una trama de video modificada.
17. El sistema de cómputo de conformidad con la reivindicación 16, se caracteriza porque realizar el desenfoque temporal incluye aplicar una primera ponderación al primer valor de pixel y aplicar una segunda ponderación al segundo valor de pixel.
18. El sistema de cómputo de conformidad con la reivindicación 16, se caracteriza porque realizar el desenfoque temporal incluye una memoria intermedia limitada de tramas.
19. El sistema de cómputo de conformidad con la reivindicación 16, se caracteriza porque realizar el desenfoque temporal incluye promedio entre tramas.
20. El sistema de cómputo de conformidad con la reivindicación 16, se caracteriza además porque comprende enviar a un codificador de video la trama de video modificada.
. ..
li l I i
l
l
i
FIGURA 1
l
l
FIGURA2
i i l
l
l
i i l l l li
i l i l
l i l i l i
i i
i
ii
l l
l i l
i
i
i i
FIGURA 3
a
i
: ¡ !
FIGURA4
, ,
, .
FIGURA 5
Claims (21)
1. Un método implementado por computadora caracterizado porque comprende; recibir una primera indicación de un primer usuario que participa en una videoconferencia; determinar si una compresión de ancho de banda es preferible para el primer usuario de la videoconferencia; si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia; procesar una corriente de video sin procesar asociada con el primer usuario para generar una corriente de video de ancho de banda reducido, y proporcionar la corriente de video de ancho de banda reducido a un codificador de video; si el ancho de banda no es preferible para el primer usuario de la videoconferencia, proporcionar la corriente de video sin procesar al codificador de video; en donde procesar la corriente de video sin procesar incluye uno o más de: realizar un procedimiento de detección de bordes en la corriente de video sin procesar, realizar un procedimiento de reducción de resolución en la corriente de video sin procesar, realizar un procedimiento de desenfoque espacial en la corriente de video sin procesar, realizar un procedimiento de desenfoque temporal en la corriente de video sin procesar, realizar un procedimiento de cuantificación de imágenes en la corriente de video sin procesar, y realizar un procedimiento de negativo en la corriente de video sin procesar.
2. Un método implementado por computadora caracterizado porque comprende: recibir una indicación de un primer usuario que participa en una videoconferencia; determinar si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia; si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia; procesar una corriente de video sin procesar asociada con el primer usuario para generar una corriente de video de ancho de banda reducido, y proporcionar la corriente de video de ancho de banda reducido a un codificador de video; en donde procesar la corriente de video sin procesar incluye realizar un procedimiento de detección de bordes en la corriente de video sin procesar.
3.El método implementado por computadora de conformidad con la reivindicación 2, se caracteriza además porque comprende: si el ancho de banda no es preferible para el primer usuario de la videoconferencia, proporcionar la corriente de video sin procesar al codificador de video.
4. Elmétodo implementado por computadora de conformidad con la reivindicación 2, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de reducción de resolución en la corriente de video sin procesar.
5. Elmétodo implementado por computadora de conformidad con la reivindicación 2, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de desenfoque espacial en la corriente de video sin procesar.
6. Elmétodo implementado por computadora de conformidad con la reivindicación 2, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de desenfoque temporal en la corriente de video sin procesar.
7. Elmétodo implementado por computadora de conformidad con la reivindicación 2, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de cuantificación de imágenes en la corriente de video sin procesar.
8. Elmétodo iplementado por computadora de conformidad con la reivindicación 2, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de negativo en la corriente de video sin procesar.
9. Elmétodo implementado por computadora de conformidad con la reivindicación 2, se caracteriza porque la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia si una o más estadísticas de rendimiento asociadas con el primer usuario no cumplen con un umbral mínimo de rendimiento para la videoconferencia.
10. El método implementado por computadora de conformidad con la reivindicación 9, se caracteriza porque el umbral mínimo de rendimiento incluye uno omás de un umbralmínimo computacional y un umbral mínimo de ancho de banda.
11. El método implementado por computadora de conformidad con la reivindicación 2, se caracteriza porque la videoconferencia se ejecuta dentro de una red social.
12. Un sistema de cómputo que incluye un procesador y una memoria configurada para realizar operaciones, caracterizado porque comprende: recibir una indicación de un primer usuario que participa en una videoconferencia; determinar si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia; si la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia; procesar una corriente de video sin procesar asociada con el primer usuario para generar una corriente de video de ancho de banda reducido, y proporcionar la corriente de video de ancho de banda reducido a un codificador de video; en donde procesar la corriente de video sin procesar incluye realizar un procedimiento de detección de bordes en la corriente de video sin procesar.
13. El sistema de cómputo de conformidad con la reivindicación 12,se caracteriza ademásporque se configura para realizar operaciones que comprenden: si el ancho de banda no es preferible para el primer usuario de la videoconferencia, proporcionar la corriente de video sin procesar al codificador de video.
14. El sistema de cómputo de conformidad con la reivindicación 12, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de reducción de resolución en la corriente de video sin procesar.
15. El sistema de cómputo de conformidad con la reivindicación 12, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de desenfoque espacial en la corriente de video sin procesar.
16. El sistema de cómputo de conformidad con la reivindicación 12, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de desenfoque temporal en la corriente de video sin procesar.
17. El sistema de cómputo de conformidad con la reivindicación 12, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de cuantificación de imágenes en la corriente de video sin procesar.
18. El sistema de cómputo de conformidad con la reivindicación 12, se caracteriza porque procesar la corriente de video sin procesar además incluye realizar un procedimiento de negativo en la corriente de video sin procesar.
19. El sistema de cómputo de conformidad con la reivindicación 12, se caracteriza porque la compresión de ancho de banda es preferible para el primer usuario de la videoconferencia si una o más estadísticas de rendimiento asociadas con el primer usuario no cumplen con un umbral mínimo de rendimiento para la videoconferencia.
20. El sistema de cómputo de conformidad con la reivindicación 19, se caracteriza porque el umbral mínimo de rendimiento incluye uno o más de un umbral mínimo computacional y un umbral mínimo de ancho de banda.
21. El sistema de cómputo de conformidad con la reivindicación 12, se caracteriza porque la videoconferencia se ejecuta dentro de una red social.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261701927P | 2012-09-17 | 2012-09-17 | |
PCT/US2012/067035 WO2014042662A1 (en) | 2012-09-17 | 2012-11-29 | Bandwidth reduction system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
MX2015003457A true MX2015003457A (es) | 2015-07-17 |
MX342106B MX342106B (es) | 2016-09-13 |
Family
ID=47470134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
MX2015003457A MX342106B (es) | 2012-09-17 | 2012-11-29 | Sistema y método de reducción de ancho de banda. |
Country Status (4)
Country | Link |
---|---|
US (1) | US9035999B2 (es) |
CN (1) | CN104782119B (es) |
MX (1) | MX342106B (es) |
WO (1) | WO2014042662A1 (es) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8503539B2 (en) | 2010-02-26 | 2013-08-06 | Bao Tran | High definition personal computer (PC) cam |
EP2824913A1 (en) * | 2013-07-09 | 2015-01-14 | Alcatel Lucent | A method for generating an immersive video of a plurality of persons |
US10771736B2 (en) * | 2014-06-30 | 2020-09-08 | Microsoft Technology Licensing, Llc | Compositing and transmitting contextual information during an audio or video call |
CN104219481A (zh) * | 2014-09-09 | 2014-12-17 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
JP6525576B2 (ja) * | 2014-12-17 | 2019-06-05 | キヤノン株式会社 | 制御装置、制御システム、制御方法、医用画像撮影装置、医用画像撮影システム、撮影制御方法およびプログラム |
US11356725B2 (en) * | 2020-10-16 | 2022-06-07 | Rovi Guides, Inc. | Systems and methods for dynamically adjusting quality levels for transmitting content based on context |
CN112261349B (zh) * | 2020-10-23 | 2023-02-21 | 北京字节跳动网络技术有限公司 | 图像处理方法、装置和电子设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6804227B1 (en) | 1992-07-10 | 2004-10-12 | Fujitsu Limited | Trunk line bandwidth reservation system for asynchronous transfer mode switching system |
US6535238B1 (en) * | 2001-10-23 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for automatically scaling processor resource usage during video conferencing |
US7583287B2 (en) * | 2005-03-22 | 2009-09-01 | Microsoft Corp. | System and method for very low frame rate video streaming for face-to-face video conferencing |
EP1840875A1 (en) * | 2006-03-31 | 2007-10-03 | Sony Deutschland Gmbh | Signal coding and decoding with pre- and post-processing |
US7911513B2 (en) * | 2007-04-20 | 2011-03-22 | General Instrument Corporation | Simulating short depth of field to maximize privacy in videotelephony |
EP2081386A1 (en) * | 2008-01-18 | 2009-07-22 | Panasonic Corporation | High precision edge prediction for intracoding |
CN101754004B (zh) * | 2008-12-16 | 2013-06-12 | 浪潮乐金数字移动通信有限公司 | 一种3g可视电话及其工作方法 |
CN101552913B (zh) * | 2009-05-12 | 2011-07-06 | 腾讯科技(深圳)有限公司 | 多路视频通讯系统及处理方法 |
CN101600109A (zh) * | 2009-07-13 | 2009-12-09 | 北京工业大学 | 基于纹理和运动特征的h.264降尺寸转码方法 |
KR101683291B1 (ko) * | 2010-05-14 | 2016-12-06 | 엘지전자 주식회사 | 디스플레이 장치 및 그의 제어 방법 |
CN102348116A (zh) * | 2010-08-03 | 2012-02-08 | 株式会社理光 | 视频处理方法、视频处理装置以及视频处理系统 |
-
2012
- 2012-11-29 US US13/688,959 patent/US9035999B2/en active Active
- 2012-11-29 CN CN201280076969.6A patent/CN104782119B/zh active Active
- 2012-11-29 WO PCT/US2012/067035 patent/WO2014042662A1/en active Application Filing
- 2012-11-29 MX MX2015003457A patent/MX342106B/es active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
CN104782119B (zh) | 2018-05-18 |
WO2014042662A1 (en) | 2014-03-20 |
CN104782119A (zh) | 2015-07-15 |
US20140078246A1 (en) | 2014-03-20 |
MX342106B (es) | 2016-09-13 |
US9035999B2 (en) | 2015-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
MX2015003457A (es) | Sistema y metodo de reduccion de ancho de banda. | |
Wang et al. | Utility-driven adaptive preprocessing for screen content video compression | |
US9681154B2 (en) | System and method for depth-guided filtering in a video conference environment | |
US9172907B2 (en) | Method and apparatus for dynamically adjusting aspect ratio of images during a video call | |
US8570359B2 (en) | Video region of interest features | |
US9386319B2 (en) | Post-process filter for decompressed screen content | |
US20140032735A1 (en) | Adaptive rate of screen capture in screen sharing | |
US8976220B2 (en) | Devices and methods for hosting a video call between a plurality of endpoints | |
US20160150187A1 (en) | A method for generating an immersive video of a plurality of persons | |
US8780976B1 (en) | Method and apparatus for encoding video using granular downsampling of frame resolution | |
US11917158B2 (en) | Static video recognition | |
US20160234455A1 (en) | System and method for brightening video image regions to compensate for backlighting | |
US9148463B2 (en) | Methods and systems for improving error resilience in video delivery | |
US8279263B2 (en) | Mapping psycho-visual characteristics in measuring sharpness feature and blurring artifacts in video streams | |
CN103517072A (zh) | 视频通信方法和设备 | |
JP7334470B2 (ja) | 映像処理装置、ビデオ会議システム、映像処理方法、およびプログラム | |
US20210360236A1 (en) | System and method for encoding a block-based volumetric video having a plurality of video frames of a 3d object into a 2d video format | |
WO2015143619A1 (en) | Video content classification | |
US11308585B2 (en) | Noise reduction method for high dynamic range videos | |
CN110796689A (zh) | 一种视频处理方法、电子设备及存储介质 | |
Huong et al. | An Effective Foveated 360° Image Assessment Based on Graph Convolution Network | |
CN112929703A (zh) | 码流数据的处理方法和装置 | |
CN113160342B (zh) | 基于反馈的编码方法及装置、存储介质、电子设备 | |
CN116546238A (zh) | 视频数据传输方法、装置和电子设备 | |
CN114205583A (zh) | 一种基于h265的视频编码方法、系统及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FG | Grant or registration |