ES2865384T3 - Estimador de profundidad de doble modo - Google Patents

Estimador de profundidad de doble modo Download PDF

Info

Publication number
ES2865384T3
ES2865384T3 ES17717206T ES17717206T ES2865384T3 ES 2865384 T3 ES2865384 T3 ES 2865384T3 ES 17717206 T ES17717206 T ES 17717206T ES 17717206 T ES17717206 T ES 17717206T ES 2865384 T3 ES2865384 T3 ES 2865384T3
Authority
ES
Spain
Prior art keywords
depth
data
video data
monoscopic
stereoscopic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES17717206T
Other languages
English (en)
Inventor
Abraham Karel Riemens
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ultra D Cooeperatief U A
Ultra D Cooperatief UA
Original Assignee
Ultra D Cooeperatief U A
Ultra D Cooperatief UA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ultra D Cooeperatief U A, Ultra D Cooperatief UA filed Critical Ultra D Cooeperatief U A
Application granted granted Critical
Publication of ES2865384T3 publication Critical patent/ES2865384T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/128Adjusting depth or disparity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/15Processing image signals for colour aspects of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • G06T2207/20028Bilateral filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/207Image signal generators using stereoscopic image cameras using a single 2D image sensor
    • H04N13/221Image signal generators using stereoscopic image cameras using a single 2D image sensor using the relative movement between cameras and objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/261Image signal generators with monoscopic-to-stereoscopic image conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2213/00Details of stereoscopic systems
    • H04N2213/003Aspects relating to the "2D+depth" image format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2213/00Details of stereoscopic systems
    • H04N2213/005Aspects relating to the "3D+depth" image format

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Processing (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Optical Communication System (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

Un sistema en un chip (100) configurado para una estimación de profundidad en tiempo real de datos de vídeo, comprendiendo el sistema en un chip: - un estimador de profundidad monoscópica (200) configurado para realizar una estimación de profundidad monoscópica a partir de datos de vídeo de tipo monoscópico; - un estimador de profundidad estereoscópica (210) configurado para realizar una estimación de profundidad estereoscópica a partir de datos de vídeo de tipo estereoscópico; - una interfaz de memoria para permitir un acceso directo a una memoria compartida (010); en que el sistema en un chip es reconfigurable para realizar la estimación de profundidad monoscópica o la estimación de profundidad estereoscópica en base a datos de configuración que definen el modo de estimación de profundidad seleccionado, caracterizado por el hecho de que el estimador de profundidad monoscópica y el estimador de profundidad estereoscópica comprenden: - un circuito de procesamiento de entrada compartido reconfigurable (120) instanciado en hardware y reconfigurable por los datos de configuración para: - generar una jerarquía de imágenes de escala reducida para cada imagen de entrada de los datos de vídeo reduciendo espacialmente la escala de la imagen de entrada de acuerdo con una pluralidad de factores de reducción de escala, en que el circuito de procesamiento de entrada es configurable por los datos de configuración para seleccionar un subconjunto diferente de la jerarquía de imágenes de escala reducida a producir como salida para la estimación de profundidad estereoscópica que para la estimación de profundidad monoscópica para obtener datos de vídeo de escala reducida específicos para el modo de estimación de profundidad seleccionado, y - almacenar los datos de vídeo de escala reducida en la memoria compartida; - los estimadores de profundidad monoscópica y estereoscópica tienen cada uno un circuito central estimador de profundidad separado (130, 140) instanciado en hardware y configurado para: - acceder a los datos de vídeo o los datos de vídeo de escala reducida, - estimar datos de profundidad a partir de dichos datos de vídeo a los que se ha accedido, teniendo los datos de profundidad una resolución espacial inferior a la resolución espacial de los datos de vídeo, y - almacenar los datos de profundidad en la memoria compartida; - un circuito de aumento de escala de la profundidad compartido reconfigurable (150) instanciado en hardware y reconfigurable por los datos de configuración para: - acceder a los datos de profundidad y a los datos de vídeo de escala reducida, y - aumentar la escala de los datos de profundidad en etapas sucesivas utilizando los datos de vídeo de escala reducida, en que el circuito de aumento de escala de la profundidad es configurable por los datos de configuración para utilizar diferentes etapas sucesivas para la estimación de profundidad estereoscópica que para la estimación de la profundidad monoscópica de acuerdo con el modo de estimación de profundidad seleccionado.

Description

DESCRIPCIÓN
Estimador de profundidad de doble modo
CAMPO DE LA INVENCION
La invención se refiere a un sistema en un chip configurado para una estimación de profundidad en tiempo real, comprendiendo el sistema en un chip una pluralidad de circuitos y una interfaz de memoria para permitir acceso directo a una memoria compartida.
TECNICA ANTERIOR
Cada vez más, los dispositivos de visualización tales como televisores, marcos de fotos digitales, tabletas y teléfonos inteligentes, incluyen pantallas en 3D para proporcionar al usuario una percepción de profundidad cuando observa un contenido en dicho dispositivo. Para este fin, dichas pantallas en 3D pueden, por sí solas o junto con unas gafas que lleva el usuario, proporcionar al usuario imágenes diferentes en cada ojo para ofrecerle una percepción de profundidad basada en la estereoscopía.
En la distribución de medios, existen actualmente dos tipos de contenidos de vídeo ampliamente disponibles:
1. Contenido de vídeo estereoscópico, que consiste en una secuencia de pares de imágenes izquierda y derecha (que se denominan comúnmente "vídeo estéreo" o "vídeo en 3D")
2. Contenido de vídeo monoscópico, que consiste en una secuencia de imágenes individuales (que se denominan comúnmente "vídeo en 2D")
Puede ser necesario convertir cualquiera de los dos tipos de datos de vídeo al formato denominado imagen profundidad, en el que la información de profundidad es proporcionada por un mapa de profundidad que puede comprender valores de profundidad, valores de disparidad y/o valores de desplazamiento paraláctico, siendo todos estos valores indicativos de la distancia que los objetos dentro de la imagen tienen hacia la cámara. Este formato ha demostrado ser ventajoso, por ejemplo, para permitir un ajuste de profundidad después de la creación del contenido, para pantallas auto estereoscópicas multi vistas con más de dos vistas, etc.
Para convertir datos de vídeo monoscópicos y estereoscópicos a un formato de imagen profundidad, se puede utilizar una estimación de profundidad. Sin embargo, el tipo de estimación de la profundidad es diferente para los datos de vídeo estereoscópicos que para los monoscópicos. En concreto, en el caso de los contenidos de vídeo estereoscópicos, la estereopsis se encuentra disponible como una pista de profundidad binocular para la estimación de la profundidad, mientras que en el caso de los contenidos de vídeo monoscópico, sólo se dispone de pistas de profundidad monoscópicas, que incluyen, pero no se limitan a, una profundidad del movimiento, elevación, perspectiva curvilínea, borrosidad por desenfoque, etc. Por lo tanto, se necesita una estimación de profundidad diferente para los datos de vídeo monoscópicos y estereoscópicos.
Sin embargo, una vez convertido al formato de imagen profundidad, cualquier procesamiento posterior puede ser el mismo, incluyendo un renderizado de vistas (view rendering), un ajuste de la profundidad, etc. TSE KAI HENG ET AL: "Implementation and optimization of software depth estimation for arm", 3DTV-CONFERENCE: THE TRUE VISION - CAPTURE, TRANSMISSION AND DISPLAY OF 3D VIDEO (3DTV-CON), 2012, IEEE, 15 de octubre de 2012 (15-10-2012), páginas 1 - 4, describe la implementación de procesos de estimación de profundidad mediante software en una arquitectura de procesador ARM y su optimización para aplicaciones en tiempo real. Se dice que en la implementación de la estimación de profundidad, en función del tipo de imagen de entrada, el proceso conmuta entre un modo de estimación de la profundidad en 2D y un modo de estimación de la profundidad en 3D. Se dice además que la información de profundidad se puede generar a una resolución inferior que la de la imagen de origen, y que es posible realizar la estimación de profundidad con una pérdida de calidad aceptable aumentando la escala del mapa de profundidad estimada con un escalador de alta calidad.
RESUMEN DE LA INVENCIÓN
Es un objeto de la invención proporcionar un sistema en un chip eficaz en cuanto a recursos para estimación en tiempo real de la profundidad de datos de vídeo estereoscópicos y monoscópicos.
La invención está definida por las reivindicaciones independientes.
Los datos de vídeo entrantes son estereoscópicos o monoscópicos y, por lo tanto, ambos casos de uso de estimación de la profundidad, por ejemplo, estimación de profundidad a partir de datos de vídeo estereoscópicos y estimación de profundidad a partir de datos de vídeo monoscópicos, son excluyentes entre sí. Normalmente, una implementación de un estimador de profundidad para datos de vídeo estereoscópicos y un estimador de profundidad para datos de vídeo monoscópicos daría lugar a unos circuitos dedicados (de función específica), estableciendo de este modo unos circuitos disyuntivos que sólo son activados alternativamente. De acuerdo con la invención que se reivindica, el sistema comprende unos circuitos compartidos reconfigurables. El término circuito "compartido" se refiere a un circuito que es utilizado por ambos estimadores de profundidad y que sólo puede ser instanciado una vez en hardware.
Sin embargo, los circuitos compartidos pueden ser configurados de forma diferente por unos datos de configuración que definen el modo de estimación de profundidad seleccionado para tener en cuenta las diferencias en la funcionalidad del circuito compartido en cada estimador de profundidad. Como uno de los circuitos compartidos reconfigurables, se proporciona un circuito de procesamiento de entrada o input que reduce espacialmente la escala de los datos de vídeo de forma diferente de acuerdo con el modo de estimación de profundidad seleccionado. En particular, el circuito de procesamiento de entrada está dispuesto para generar una jerarquía de imágenes de escala reducida reduciendo la escala de la imagen de entrada de acuerdo con una pluralidad de factores de reducción de escala. Por ejemplo, se puede reducir la escala de la imagen de entrada repetidamente según un factor igual a 2. El circuito de procesamiento de entrada es configurable en base a los datos de configuración para, en cada caso de uso diferente que incluyen la estimación de profundidad monoscópica y la estimación de profundidad estereoscópica que se han mencionado anteriormente, producir como salida un subconjunto diferente de imágenes de escala reducida. En consecuencia, el circuito de procesamiento de entrada puede admitir diferentes requisitos en términos de resolución de imágenes que pueden ser necesarios para la estimación de la profundidad monoscópica y la estimación de la profundidad estereoscópica, y en particular, por parte de otros circuitos involucrados en la estimación de la profundidad.
Un ejemplo de dichos circuitos son los circuitos centrales de estimador de profundidad que son instanciados por separado en el hardware. Ambos circuitos centrales de estimador de profundidad pueden utilizar los datos de vídeo de escala reducida para estimar la profundidad, y pueden tener diferentes requisitos con respecto a la resolución de los datos de vídeo de escala reducida y, de acuerdo con un aspecto opcional, también con respecto a qué componentes de los datos de vídeo se proporcionan. El circuito de procesamiento de entrada está dispuesto para admitir dichos requisitos de entrada diferentes proporcionando datos de vídeo de escala reducida específicos para cada caso al circuito central estimador de profundidad activo actualmente.
Otro ejemplo es el circuito de aumento de escala de profundidad, que se proporciona como un circuito compartido y que , por lo tanto, puede ser instanciado una vez en el hardware, y que aumenta la escala de los datos de profundidad de manera diferente de acuerdo con el modo de estimación de profundidad seleccionado. En particular, el aumento de escala se puede realizar en etapas sucesivas, siendo dichas etapas sucesivas diferentes para la estimación de profundidad monoscópica y la estimación de profundidad estereoscópica. Una razón no limitante para esto puede ser que los datos de profundidad tienen una resolución espacial diferente en función de si han sido estimados por el estimador de profundidad monoscópica o por el estimador de profundidad estereoscópica. De manera similar al circuito de procesamiento de entrada, el circuito de aumento de escala de la profundidad es configurable por los datos de configuración para admitir dichos requisitos diferentes de escalado y por lo tanto sólo tiene que ser instanciado una vez en el hardware. Dado que el aumento de escala puede utilizar imágenes de escala reducida para aumentar la escala de los datos de profundidad, por ejemplo, utilizando un aumento de escala adaptativo a la imagen, y en particular utilizar un subconjunto diferente de imágenes de escala reducida en cada caso de uso, los datos de vídeo de escala reducida específicos del caso de uso se utilizan como entrada generada por el circuito de procesamiento de entrada para el caso de uso específico.
Por lo tanto, hay una cantidad sustancial de compartición de hardware o de reutilización de hardware entre los dos estimadores de profundidad, lo que da lugar a un sistema en un chip efectivo en cuanto a recursos para la estimación de profundidad monoscópica y estereoscópica.
Opcionalmente, el circuito central estimador de profundidad del estimador de profundidad monoscópica implementa un filtrado bilateral conjunto que, cuando es aplicado a una imagen de los datos de vídeo o los datos de vídeo de escala reducida específicos del caso de uso, proporciona un mapa de profundidad como salida. Los filtros bilaterales conjuntos se han determinado adecuados para la estimación de la profundidad a partir de datos de vídeo monoscópicos, ya que se pueden utilizar para adaptar un perfil de profundidad genérico a los contenidos de imagen reales. Dado que estos filtros bilaterales pueden utilizar datos de imagen de escala reducida como entrada y producir como salida datos de profundidad de escala reducida, existe un solapamiento funcional sustancial con los estimadores de profundidad estereoscópica que se basan en una correspondencia entre bloques (block matching), que también pueden utilizar datos de imagen de escala reducida como entrada y producir como salida datos de profundidad de escala reducida.
Opcionalmente, el circuito central estimador de profundidad del estimador de profundidad estereoscópica implementa un determinador de correspondencia entre bloques (block matcher) que, cuando es aplicado a un par de imágenes estéreo de los datos de vídeo o los datos de vídeo de escala reducida específicos del caso de uso, proporciona un mapa de disparidades como salida.
Las reivindicaciones dependientes definen formas de realización ventajosas.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Estos y otros aspectos de la invención son evidentes a partir de y se dilucidarán con referencia a las formas de realización que se describen a continuación. En los dibujos,
La Figura 1 muestra una visión general de un sistema en un chip con una memoria compartida (externa), con el sistema en un chip comprendiendo un bloque de IP de conversión en tiempo real (RTC: real-time conversion);
La Figura 2 ilustra una configuración del bloque de IP de RTC para estimación de la profundidad de datos de vídeo estereoscópicos o de datos de vídeo monoscópicos;
La Figura 3 muestra el circuito de procesamiento de entrada del bloque de IP de RTC;
La Figura 4 muestra el aumento de escala de profundidad (DUP: depth upscaling) del bloque de IP de RTC; Las Figuras 5 - 7 ilustran diversos casos de uso de estimación de profundidad estereoscópica;
Las Figuras 8 y 9 ilustran diversos casos de uso de estimación de profundidad monoscópica;
Las Figuras 10 -13 corresponden a los casos de uso de las Figuras 5 - 8 pero representados en este caso utilizando el circuito de procesamiento de entrada que se describe con referencia a la Figura 3;
Las Figuras 14 y 15 proporcionan unos resúmenes relacionados con los casos de uso de las Figuras 10 -13;
Las Figuras 16 -18 ilustran la gestión de búfer de los datos de vídeo;
La Figura 19 muestra una programación para conversión en tiempo real de datos de vídeo estereoscópicos; La Figura 20 muestra otra programación para conversión en tiempo real de datos de vídeo estereoscópicos; La Figura 21 muestra una programación para conversión en tiempo real de datos de vídeo monoscópicos; y
La Figura 22 muestra otra programación para conversión en tiempo real de datos de vídeo monoscópicos.
Se debe tener en cuenta que los elementos que tienen los mismos números de referencia en diferentes Figuras, tienen las mismas características estructurales y las mismas funciones, o son las mismas señales. Cuando ya se ha explicado la función y/o la estructura de dicho elemento, no es necesario repetir su explicación en la descripción detallada.
Lista de números de referencia
La siguiente lista de números de referencia se proporciona para facilitar la interpretación de los dibujos y no se debe interpretar como una limitación de las reivindicaciones.
010 memoria compartida externa
020 datos de vídeo
030 entrada de señal
040-046 comunicación de datos con la memoria compartida externa
050 salida de señal
060 señal de salida
100 sistema en un chip
110 bloque de IP de conversión en tiempo real
120 circuito de procesamiento de entrada
130 circuito de correspondencia entre bloques (block matching circuit)
140 filtrado bilateral conjunto
150 circuito de aumento de escala de profundidad
160 núcleo de CPU embebido
200 estimador de profundidad monoscópica
210 estimador de profundidad estereoscópica
300 programación básica para conversión en tiempo real de datos de vídeo estereoscópicos 310 programación avanzada para conversión en tiempo real de datos de vídeo estereoscópicos 320 programación básica para conversión en tiempo real de vídeo monoscópico
330 programación avanzada para conversión en tiempo real de vídeo monoscópico
DESCRIPCIÓN DE LA INVENCIÓN
La Figura 1 muestra una visión general de un sistema en un chip 100 (que se etiqueta en la Figura 1 y en lo sucesivo se denomina también como “SoC”) con una memoria compartida externa 010 (que se etiqueta como “Ext. mem”), comprendiendo el SoC 100 un bloque de IP de conversión en tiempo real 110 (que se etiqueta y en lo sucesivo se denomina también como “bloque de IP de RTC”). En el presente documento, el término “bloque de IP” se refiere a una implementación de una unidad reutilizable de diseño de disposición lógica, de celda o de chip, también denominada núcleo de propiedad intelectual de semiconductores en la técnica de diseño electrónico. Se muestra que el bloque de IP de RTC 110 comprende un circuito de procesamiento de entrada 120 (que se etiqueta como "INP"), un circuito de correspondencia entre bloques (block matching circuit) 130 (que se etiqueta como "BM"), un circuito de filtrado bilateral conjunto 140 (que se etiqueta como "BF"), un circuito de aumento de escala de profundidad 150 (que se etiqueta como "DUP") y un núcleo de CPU embebido 160 (que se etiqueta como "CPU del bloque de IP").
El SoC 100 se muestra para interactuar 040 con la memoria externa 010 de la siguiente manera. Los datos de vídeo 020 que comprenden una pluralidad de imágenes son recibidos por una entrada de señal 030 (que se etiqueta como “Sign. In”) del SoC 100 y son almacenados en la memoria externa 010 a través de la comunicación de datos 042. La entrada de señal 030 puede, pero sin que sea necesario, realizar un procesamiento de entrada, tal como una conversión de espacio de color (por ejemplo, de RGB a YUV), un submuestreo de croma, una demultiplexación en un formato planar (por ejemplo, para el almacenamiento en búferes planares en la memoria externa 010), etc. Las imágenes almacenadas son a continuación procesadas por el bloque de IP de RTC 110, a través de la comunicación de datos 044, estando el bloque de IP de RTC 110 configurado para estimar la profundidad representada por el contenido de las imágenes, produciendo de este modo como salida al menos información de profundidad y posiblemente datos intermedios que se almacenan en la memoria externa 010. Las imágenes y la información de profundidad son a continuación leídas por una salida de señal 050 del SoC 100 (que se etiqueta como "Sign. Out") a través de la comunicación de datos 046 y compuestas en una señal de salida 060.
El procesamiento del bloque de IP de RTC 110 puede ser el siguiente: el circuito de procesamiento de entrada 120 puede reducir la escala espacialmente de los datos de vídeo para obtener datos de vídeo de escala reducida, y almacenar los datos de vídeo de escala reducida en la memoria externa. Un circuito central estimador de profundidad, que puede ser el circuito de correspondencia entre bloques (block matching circuit) 130 o el circuito de filtrado bilateral conjunto 140, y que se comenta más adelante con referencia a la Figura 2, puede acceder a los datos de vídeo de escala reducida, estimar la profundidad a partir de los datos de vídeo de escala reducida, obteniendo de este modo datos de profundidad que tienen una resolución espacial inferior a la resolución espacial de los datos de vídeo, y almacenar los datos de profundidad en la memoria externa. El circuito de aumento de escala de profundidad 150 puede acceder a los datos de profundidad y a los datos de vídeo de escala reducida, y aumentar la escala de los datos de profundidad utilizando los datos de vídeo de escala reducida.
El bloque de IP de RTC 110 puede ser reconfigurable en dos modos diferentes, en concreto, un modo de estimación de profundidad monoscópica (que también se denomina simplemente "2D") y un modo de estimación de profundidad estereoscópica (que también se denomina simplemente "estéreo"). De este modo, el sistema en un chip puede ser reconfigurable para realizar una estimación de profundidad monoscópica o una estimación de profundidad estereoscópica. La Figura 2 ilustra de forma esquemática los circuitos involucrados en cada modo del bloque de IP de RTC 110, indicándose el estimador de profundidad monoscópica 200 y el estimador de profundidad estereoscópica 210, respectivamente, por medio de un contorno discontinuo que abarca los circuitos que representan cada estimador de profundidad respectivo. En concreto, el estimador de profundidad monoscópica 200 comprende el circuito de procesamiento de entrada 120, el circuito de filtrado bilateral conjunto 140 y el circuito de aumento de escala de la profundidad 150, mientras que el estimador de profundidad estereoscópica 210 comprende el circuito de procesamiento de entrada 120, el circuito de correspondencia entre bloques (block matching circuit) 130 y el circuito de aumento de escala de la profundidad 150.
Por lo tanto, se proporciona un circuito central estimador de profundidad separado para estimar la profundidad a partir de datos de vídeo de tipo monoscópico y de datos de vídeo de tipo estereoscópico, mientras que ambos estimadores de profundidad 200, 210 comparten el circuito de procesamiento de entrada 120 y el circuito de aumento de escala de la profundidad 150. Según también se ilustra en la Figura 2, el circuito central estimador de profundidad para la estimación de profundidad monoscópica puede ser un circuito de filtrado bilateral conjunto 140, mientras que el circuito central estimador de profundidad para la estimación de profundidad estereoscópica puede ser un circuito de correspondencia entre bloques (block matching circuit) 130. El circuito de procesamiento de entrada 120 y el circuito de aumento de escala de la profundidad 150 pueden cada uno de los mismos ser reconfigurables para procesar los datos de vídeo de tipo monoscópico o los datos de vídeo de tipo estereoscópico y, de este modo, ser compartidos por el estimador de profundidad monoscópica y el estimador de profundidad estereoscópica.
Se ha reconocido que ambos estimadores de profundidad se utilizan en situaciones excluyentes entre sí, es decir, que los datos de vídeo son datos de vídeo monoscópicos o son datos de vídeo estereoscópicos. Este reconocimiento se utiliza como base para el bloque de IP de RTC 110, en el que hay una cantidad sustancial de compartición de hardware o reutilización de hardware entre los dos estimadores de profundidad del bloque de IP de RTC 110, lo que da lugar a un bloque de IP efectivo en cuanto a costes que es adecuado para datos de vídeo monoscópicos y estereoscópicos. En particular, dicha reutilización se obtiene proporcionando unos circuitos compartidos reconfigurables que son reconfigurables por datos de configuración. Los datos de configuración pueden comprender unos parámetros que definen la funcionalidad de cada circuito para cada uno de los modos de estimación de profundidad. Cada circuito compartido puede comprender unas entradas, unos escaladores y unas salidas parametrizables. De este modo, el término "reconfiguración" se puede referir a que las entradas, los escaladores y las salidas se configuran de acuerdo con los parámetros de los datos de configuración.
Se observa que el bloque de IP de RTC 110 se puede reconfigurar en el modo 2D o en el modo estéreo en base a datos de configuración indicativos de un modo de estimación de profundidad seleccionado. En particular, dichos datos de configuración pueden comprender componentes de datos de configuración para reconfigurar el circuito de procesamiento de entrada 120 y el circuito de aumento de escala de profundidad 150 de acuerdo con el modo de estimación de profundidad seleccionado, según se describirá más adelante con referencia adicional a las Figuras 3 y 4. Los componentes de datos se pueden almacenar en diferentes partes del bloque de IP de RTC 110, por ejemplo, en diferentes registros o memorias internas; los datos de configuración pueden de este modo ser distribuidos en lugar de, por ejemplo, estar constituidos por un solo bloque de datos. Los datos de configuración pueden provenir de diferentes fuentes, que incluyen pero no se limitan a ajustes de usuario final (menú), o se pueden derivar de forma automática a partir de propiedades de la señal de entrada 020. Un ejemplo no limitativo es que si la entrada es HDMI, entonces se puede detectar en la entrada un modo que se denomina empaquetado en tramas (frame-packed) que sirve para seleccionar/activar el estimador estéreo.
Un ejemplo de una programación de operaciones para cada uno de los estimadores de profundidad del bloque de IP de RTC 110 se comentará con referencia adicional a las Figuras 19 -22.
La Figura 3 muestra más detalles de una forma de realización específica del circuito de procesamiento de entrada 120 del bloque de IP de RTC. El circuito de procesamiento de entrada 120 puede ser configurado para reducir la escala espacialmente de los datos de vídeo para obtener datos de vídeo de escala reducida, y almacenar los datos de vídeo de escala reducida en la memoria externa. Para este fin, el circuito de procesamiento de entrada 120 puede comprender un hardware que se puede configurar para su uso en modo 2D o en modo estéreo y para el uso de componentes Y y U/V con una configuración reducida y, por lo tanto, con una mayor reutilización del hardware del bloque. Esto contribuye a una solución efectiva en cuanto a costes y versátil.
En el caso del modo estéreo, todas las salidas son habilitadas, lo que significa que la escala de una imagen de entrada, obtenida a través del bloque DMA INixi, es reducida según unos factores de 2 x 2, 4 x 4 y 8 x 8, indicando dichos números la reducción de escala en la dimensión horizontal y vertical, respectivamente. En este caso, un bloque de "2 x 2" indica un circuito de escalado que reduce la escala de la entrada en 2 x 2, y la respectiva salida se indica mediante un bloque DMA OUT. En el caso de la estimación de profundidad en 2D, la salida de 8 x 8 puede ser desactivada, ya que esta salida no se utiliza. En el caso del estimador de profundidad estereoscópica, se ha comprobado que a veces las imágenes izquierda y derecha experimentan diferencias de color. El circuito de procesamiento de entrada 120 puede contener características para corregir dichas diferencias. Específicamente, el histograma de ambas imágenes puede ser acumulado por un circuito etiquetado como "ACC HIST". La CPU del bloque de IP (que no se muestra en la Figura 3) puede a continuación configurar una tabla de remapeo de píxeles para corregir las diferencias de color, que puede ser aplicada por un circuito etiquetado como “PIX REMAP” a la imagen derecha. Cabe señalar que la imagen izquierda se utiliza preferiblemente como imagen de referencia, ya que normalmente se utiliza como visor (view-finder) en una cámara estereoscópica. Además, cabe señalar que la acumulación de histogramas y el remapeo de píxeles pueden ser desactivados en el modo 2D, es decir, cuando se utiliza el estimador de profundidad en 2d , lo que significa que los respectivos circuitos pueden ser configurables para su utilización o no en función del modo de estimación de profundidad seleccionado.
Se observa además que el circuito de procesamiento de entrada 120 puede ser configurado para reducir también la escala de los componentes de color U y V de los datos de vídeo. Se puede suponer que estos componentes se almacenan de forma planar, por lo que cada componente se almacena en su propio búfer. En un caso típico, la señal de entrada puede utilizar un submuestreo de crominancia de 4:2:0, lo que significa que los búferes de U y V de entrada ya presentan una reducción previa de escala a la resolución de 2 x 2 del componente Y. Dicho búfer de U o V de escala reducida de 2 x 2 puede ser procesado por el mismo bloque de hardware. En este caso, la escala de un búfer U o V de entrada de 2 x 2 se puede reducir a 4 x 4 y producirse como salida a través del bloque DMA O2x2 (en este caso, el prefijo "O" significa "Salida" o “Output”), a 8 x 8 y producirse como salida a través del bloque DMA 04x4, y a 16 x 16 y producirse como salida a través del bloque DMA Osxs. Además, la salida Osxs normalmente es desactivada para el modo estéreo. Para el modo 2d , la salida 04x4 puede ser desactivada para los componentes de crominancia.
La Figura 4 muestra el circuito de aumento de escala de la profundidad (DUP: Depth upscaling) 150 del bloque de IP de RTC, que también es reconfigurable en base a los datos de configuración, permitiendo de este modo su uso tanto en el modo 2D como en el modo estéreo. En un ejemplo específico, el circuito de aumento de escala de la profundidad 150 puede, en su aumento de escala, utilizar una técnica que se describe en el artículo "Multistep joint bilateral depth upsampling", de Riemens et al., Proc. SPIE 7257, Visual Communications and Image Processing 2009, 19 de enero de 2009, en concreto, una técnica de filtrado bilateral conjunto en la que el filtro de aumento de frecuencia de muestreo (es decir, aumento de escala) utiliza muestras tanto de las imágenes de alta resolución como de las imágenes de baja resolución en el denominado "término de rango" (“range term”) del filtrado bilateral. El aumento de frecuencia de muestreo se puede realizar en múltiples etapas, refinando la resolución según un factor de 2 x 2 en cada etapa. En particular, el circuito de aumento de escala de la profundidad se puede configurar para un aumento de frecuencia de muestreo de 3 etapas (utilizando DUP2, DUP1 y DUP0) o para un aumento de frecuencia de muestreo de 2 etapas (utilizando sólo DUP1 y DUP0). Este aumento de frecuencia de muestreo de 3 etapas puede implicar que la unidad DMA D4x4 (en este caso, el prefijo “D” significa “Profundidad” (“Depth”)) y un multiplexor determinen el origen de los datos escritos en el búfer local que contiene datos D4x4. Además, para ayudar en las pruebas, se muestra una entrada opcional D2x2 que se comporta de forma similar a la entrada D4x4. Según se muestra en la Figura 4, las etapas de aumento de frecuencia de muestreo DUP2 y DUP1 pueden ser configuradas para utilizar datos de imagen U y V para obtener una detección mejorada de bordes de imagen. Para estas etapas, el peso de coeficientes en los filtros bilaterales puede ser determinado por los componentes Y, U y V. Los componentes U y V son opcionales para permitir la calidad del servicio: no proporcionar estos búferes de imágenes da lugar a un menor uso de ancho de banda del circuito de aumento de escala de la profundidad, pero a costa de una reducción en la calidad del comportamiento de preservación de bordes del filtrado bilateral. Además, se observa que la última etapa de aumento de frecuencia de muestreo DUP0 puede utilizar sólo el componente Y. En la práctica, la mayoría de las fuentes de señales se han distribuido a través de redes de distribución de medios, y por lo tanto se han sometido normalmente a un submuestreo de crominancia de 4:2:0. En estos casos, no hay información útil en las señales de crominancia de resolución completa, incluso si dicha señal estuviera disponible.
Se observa que hay diferentes razones para la reducción de escala de los datos de entrada y el aumento de la frecuencia de muestreo de los datos de profundidad de salida entre ambos estimadores de profundidad.
En el caso del estimador de profundidad estéreo, el determinador de correspondencia entre bloques (block matcher) puede operar con un determinado tamaño de bloque. La elección del tamaño de bloque es normalmente un parámetro de diseño algorítmico importante: cuando se utilizan tamaños muy pequeños, los bloques son insuficientemente únicos, y por lo tanto el determinador de correspondencia entre bloques (block matcher) tiene dificultades para reconocer contenidos de imágenes similares, mientras que cuando se utilizan tamaños de bloque muy grandes, el campo de profundidad resultante tiene una estructura muy imprecisa (coarse). Un buen equilibrio se encuentra en la utilización de un tamaño de bloque de, por ejemplo, 8 x 8 píxeles. Esto da lugar a un vector de disparidad para cada bloque de 8 x 8 con respecto a la resolución de la entrada, y por lo tanto también un valor de profundidad en cada bloque de 8 x 8 píxeles. Dado que se desea un valor de profundidad en cada píxel en la salida, por ejemplo, para un renderizado de vistas (view rendering), esto requiere un aumento de frecuencia de muestreo de la cuadrícula de 8 x 8 a una cuadrícula de 1x1. El circuito de aumento de escala de la profundidad proporciona esta función de aumento de la frecuencia de muestreo. En el caso de que el estimador estéreo funcione sólo con la resolución de la entrada, no es necesario reducir la escala de las imágenes de vídeo de entrada para el circuito de correspondencia entre bloques (block matching circuit). Sin embargo, cabe señalar que el circuito de aumento de escala de la profundidad puede realizar un aumento por etapas de la frecuencia de muestreo en etapas de 2 x 2 sucesivas. Cada una de estas etapas se puede beneficiar del uso de los datos de imagen tanto en la menor como en la mayor resolución espacial. Por lo tanto, se pueden utilizar imágenes de escala reducida a una resolución de 8 x 8, de 4 x 4 y de 2 x 2. Estas imágenes de escala reducida pueden ser creadas por el circuito de procesamiento de entrada. En el caso de que el estimador de profundidad estéreo utilice una correspondencia entre bloques jerárquica, se pueden necesitar imágenes de entrada de escala reducida para los niveles jerárquicos "superiores"; por lo tanto en este caso, las imágenes de entrada de escala reducida se pueden reutilizar para diferentes propósitos.
En el caso del estimador de profundidad monoscópica, los inventores se han dado cuenta de que es ventajoso ejecutar el circuito de filtrado bilateral en una resolución inferior a la resolución de la entrada. Incluso en el caso de una implementación del filtrado bilateral rápido, esto reduce el uso de recursos del sistema. Los inventores han reconocido que el filtrado bilateral en datos de imagen de escala reducida de 4 x 4 proporciona resultados suficientemente buenos. Esto hace que el mapa de profundidad de salida del filtrado bilateral esté en una cuadrícula de escala reducida de 4 x 4 en comparación con la resolución de la entrada. Con el fin de que el filtrado bilateral opere en una imagen de escala reducida de 4 x 4, es necesario reducir la escala de la entrada, y el circuito de aumento de escala de la profundidad necesita aumentar la frecuencia de muestreo del mapa de profundidad de 4 x 4 a una cuadrícula de 1x1.
Las Figuras 5 - 18 ilustran diversas consideraciones de diseño detrás del circuito de procesamiento de entrada y del circuito de aumento de escala de la profundidad según se describe en esta especificación.
Las Figuras 5 - 7 ilustran la estimación de profundidad estereoscópica utilizando un determinador de correspondencia entre bloques (block matcher) BM que proporciona un mapa de profundidad de 8x 8 como salida, cuya escala es a continuación aumentada a una resolución de 1 x 1 en una serie de etapas de aumento de escala. En este caso y en las siguientes Figuras, "/V" denota un campo vectorial.
Las Figuras 5 - 7 se diferencian en que muestran diferentes casos de uso para la estimación de profundidad estéreo: la Figura 5 muestra un caso de uso A en el que se utiliza una correspondencia entre bloques jerárquica. La Figura 6 muestra un primer caso de uso B de calidad de servicio (QoS: Quality of Service), en el que la etapa 1 de aumento de escala de la profundidad utiliza sólo el componente Y (de la imagen izquierda) en lugar de utilizar también los componentes U y V (de la imagen izquierda) como en el caso de uso A, lo que reduce la calidad de la salida pero también reduce el uso de ancho de banda en el bloque DUP y disminuye el consumo de energía. La Figura 7 muestra otro caso de uso C de calidad de servicio QoS. En este caso de uso, no se utiliza una estimación de bloques jerárquica, lo que reduce el ancho de banda en el determinador de correspondencia entre bloques (block matcher) y disminuye el consumo de energía. Para todos estos casos de uso, se muestran los flujos de datos, en los que se obtienen datos de vídeo RY, LY, LU y LV (R = imagen derecha (Right); L = imagen izquierda (Left); Y = componente de luminancia; U, V = componentes de crominancia) para cada bloque funcional por separado, y en función de los requisitos del bloque, se reduce su escala de forma anticipada. De este modo, las Figuras 5 - 7 ilustran los requisitos de cada bloque funcional en términos de datos de entrada.
Las Figuras 8 y 9 son similares a las Figuras 5 - 7 pero ahora muestran dos casos de uso diferentes K, L para el estimador de profundidad monoscópica. En este caso, se utiliza un filtrado bilateral conjunto que se aplica a una plantilla de profundidad, por ejemplo, una inclinación (slant), que utiliza el componente Y de escala reducida de 4 x 4 como término de rango (range term). El aumento de escala se realiza de nuevo en múltiples etapas, con el caso de uso K de la Figura 8 utilizando el componente Y de datos de luminancia así como los componentes de crominancia U, V de los datos de vídeo para realizar el aumento de escala, mientras que el caso de uso L de la Figura 9 sólo utiliza el componente Y de datos de luminancia, reduciendo de este modo el uso de ancho de banda en el bloque DUP y disminuyendo el consumo de energía.
Cuando se comparan entre sí los diferentes casos de uso para cada estimador de profundidad, así como cuando se comparan los casos de uso estereoscópicos con los casos de uso monoscópicos, se puede ver que hay un solapamiento significativo entre los requisitos de entrada de los diferentes bloques funcionales. En consecuencia, los inventores han concebido el circuito de procesamiento de entrada como un circuito hardware que sólo necesita ser instanciado una vez en el hardware, pero que puede admitir todos estos casos de uso. Además, los inventores también han concebido el circuito de proceso de aumento de escala de la profundidad como un circuito hardware DUP que puede admitir todos estos casos de uso. El resultado se muestra en las Figuras 10 - 12 para los casos de uso A, B, C, y en la Figura 13 para el caso de uso K (la Figura correspondiente al caso de uso L se ha omitido debido a su similitud con la Figura 13, omitiendo sólo las entradas de crominancia al circuito DUP).
En cada una de estas Figuras, el circuito de procesamiento de entrada se muestra para recibir datos de vídeo de 1 x 1 como entrada, que son datos de vídeo del componente Y sin escalado o en el caso de los componentes U, V son datos cuya escala se ha reducido en 2 x 2 con respecto a Y debido al formato 4:2:0. El circuito de procesamiento de entrada se muestra comprendiendo además unas salidas seleccionables para las versiones de escala reducida de 8 x 8, 4 x 4 y 2 x 2 de la misma, así como una salida "1 x 1" sin reducción de escala. Este diseño corresponde al del circuito de procesamiento de entrada que se ha descrito anteriormente con referencia a la Figura 3. Para tratar eficientemente el procesamiento de los diferentes componentes de datos, por ejemplo, LY (componente Y de imagen izquierda L (Left)), RY (componente Y de imagen derecha R (Right)), LU (componente U de imagen izquierda L (Left)), LV (componente V de imagen izquierda L (Left)) para la estimación de la profundidad estereoscópica e Y, U, V para la estimación de la profundidad monoscópica, el circuito de procesamiento de entrada puede ser instanciado una vez en el hardware pero estar configurado para procesar secuencialmente en el tiempo cada uno de los componentes de datos. De este modo, aunque se muestra cuatro veces (Figuras 10 - 12) o 3 veces (Figuras 13), se puede utilizar una única instanciación en el hardware. Cuando se comparan las Figuras 10 - 12 con las Figuras 5 - 7 y la Figura 13 con la Figura 8, se puede ver que se reduce significativamente el número de escaladores de entrada (input scalers) debido a la reconfigurabilidad del circuito de procesamiento de entrada para admitir los diferentes casos de uso.
La Figura 14 resume la configuración del circuito de procesamiento de entrada para cada uno de los casos de uso, indicando qué salidas se seleccionan para cada caso de uso y para cada componente de datos dentro del respectivo caso de uso. En este caso, "remapeo" se refiere al ajuste basado en histogramas que se denomina remapeo de píxeles y se ha explicado anteriormente con referencia a la Figura 3.
La Figura 15 resume la configuración del circuito de aumento de escala de la profundidad para cada uno de los casos de uso, indicando para cada caso de uso qué etapas de aumento de escala y entradas U, V se utilizan.
La Figura 16 ilustra por qué, además de permitir un ajuste de histogramas de imágenes estereoscópicas utilizando la función de remapeo, el circuito de procesamiento de entrada está diseñado para tener una salida de 1x1, es decir, una salida de datos de vídeo sin escalado adicional. Para este fin, la Figura 16 muestra, para el caso de uso A de la Figura 5, cómo se realiza el almacenamiento en búfer si los datos de vídeo sin escalado fueran obtenidos por cada bloque funcional directamente del búfer de entrada (con la excepción del componente IRY (componente Y de imagen derecha R (Right) de input I), que es remapeado a nivel de píxeles por el circuito de procesamiento de entrada y, por lo tanto, se debe obtener necesariamente de la salida del circuito de procesamiento de entrada). En este ejemplo, se asignan unos búferes en la memoria compartida para los componentes de datos de input IRY (componente Y de imagen derecha R (Right) de input I), ILY (componente Y de imagen izquierda L (Left) de input I), ILU (componente U de imagen izquierda L (Left) de input I) e ILY (componente Y de imagen izquierda L (Left) de input I). Dichos búferes suelen ser asignados externamente desde el propio bloque de IP de RTC, por ejemplo, por un microprocesador o controlador en el sistema en un chip. Como búferes asignados internamente, los búferes para LY8 (componente Y de imagen izquierda L (Left), siendo en este caso reducido a 8 x 8), LY4 (componente Y de imagen izquierda L reducido a 4 x 4), LY2 (componente Y de imagen izquierda L reducido a 2 x 2), RY2 (componente Y de imagen derecha R reducido a 2 x 2), RY1 (componente Y de imagen derecha R reducido a 1 x 1), LU4 (componente U de imagen izquierda L reducido a 4 x 4), LU2 (componente U de imagen izquierda L reducido a 2 x 2), LV4 (componente V de imagen izquierda L reducido a 4 x 4) y LV2 (componente V de imagen izquierda L reducido a 2 x 2) son asignados en la memoria compartida. Estos búferes se muestran en la Figura 16 en negro con texto en blanco.
Se pueden reconocer dos usos diferentes de los búferes de la Figura 16. Un uso son los búferes de E/S: los búferes de input ILY, ILU, ILV e IRY son escritos con datos de imagen fuera del bloque de IP de RTC (esta operación no se muestra en la Figura 16), y los datos son leídos en el bloque de IP de RTC; análogamente, el búfer de salida D1 es escrito por el bloque de IP de RTC y es leído fuera del bloque de IP de RTC (que de nuevo no se muestra). El otro uso se refiere a los búferes internos, que son escritos y leídos sólo internamente por los componentes del bloque de IP de RTC. En un sistema en tiempo real, suele haber una reserva (pool) de memoria preasignada disponible. Los búferes se pueden recuperar de la reserva (pool), utilizar para un propósito concreto y, cuando ya no se utilizan, se pueden devolver a la reserva (pool). Cada uno de estos búferes normalmente necesita ser gestionado de forma adecuada, es decir: el sistema puede llevar un registro o seguimiento de cada búfer, dónde se utiliza y cuánto tiempo está en uso todavía. El tiempo que un búfer está en uso se denomina tiempo de vida del búfer. Teniendo en cuenta la partición del diseño, los búferes internos suelen ser gestionados por un componente del sistema que tiene el conocimiento detallado de la operación de los componentes del bloque de IP de RTC y sus casos de uso (por ejemplo, configuraciones de calidad de servicio QoS, según se explica en el caso de uso A, B, C). Los búferes de E/S, sin embargo, son compartidos con el "exterior" del bloque de IP de RTC y, por lo tanto, deben ser gestionados por un componente del sistema más global que tiene información sobre el flujo general de datos de vídeo en el sistema.
Una desventaja del escenario que se muestra en la Figura 16 es que los búferes de entrada para, en este ejemplo particular, ILY, ILU e iLv no sólo son utilizados por el circuito de procesamiento de entrada para reducción de escala, sino que en el caso de ILY también posteriormente por el determinador de correspondencia entre bloques (block matcher), y en el caso de ILU e ILV, también por el circuito de aumento de escala de la profundidad en la etapa 0. Esto complica la partición del diseño y la separación de afectaciones (concerns), ya que los búferes de entrada pueden tener una vida útil prolongada que depende del caso de uso concreto para el que son configurados los componentes del bloque de IP de RTC y cuya vida útil, por lo tanto, puede necesitar ser gestionada fuera del bloque de IP de r Tc .
La Figura 17 ilustra un caso de uso A* en el que los datos de vídeo sin escalado son obtenidos, si es necesario, de la salida 1x1 del circuito de procesamiento de entrada. Para este fin, se asignan unos búferes de salida separados en la memoria compartida, siendo en este ejemplo unos búferes para LY1, LU1 y LV1. En lugar de utilizar los búferes de input ILY, ILU e ILV, los bloques funcionales utilizan los búferes de salida asignados de la salida de 1 x 1 del circuito de procesamiento de entrada. De este modo, una vez que el circuito de procesamiento de entrada ha procesado todos los componentes de datos, los búferes de entrada ya no son necesarios, ya que la posterior correspondencia entre bloques (block matching) y el aumento de escala de la profundidad sólo se basan en los datos de vídeo en los búferes de salida del circuito de procesamiento de entrada. Esto facilita la abstracción del diseño y la separación de afectaciones (concerns), ya que los búferes de entrada ya no tienen que ser asignados durante un período prolongado. La Figura 18 resume de nuevo la configuración del circuito de procesamiento de entrada para cada uno de los casos de uso A y A*, indicando qué salidas se seleccionan para cada caso de uso y para cada componente de datos dentro del caso de uso respectivo.
Se apreciará que las operaciones adicionales de copia de datos de los búferes de 1 x1 en el caso de uso A* pueden añadir costes al sistema en términos de ancho de banda y consumo de energía adicionales. Por lo tanto, la opción de elegir entre el caso de uso A y A* permite una compensación de diseño entre el uso de recursos de hardware (ancho de banda y consumo de energía) y la complejidad de gestionar los búferes. Se puede, por ejemplo, integrar este bloque de IP en un dispositivo alimentado por la red eléctrica y optar por una gestión de búferes menos compleja. Por otro lado, en un dispositivo alimentado por batería, se puede estar dispuesto a invertir el esfuerzo de diseño adicional en una gestión de búferes más compleja para ahorrar consumo de energía y prolongar así la vida de la batería.
La Figura 19 muestra una programación básica 300 de operaciones para conversión en tiempo real de datos de vídeo estereoscópicos. En esta y en las siguientes programaciones, el eje horizontal corresponde al eje de tiempo, con una imagen de entrada particular etiquetada como N y con N+1 representando una siguiente imagen de entrada. El bloque de iP de RTC, cuando está configurado para operar en modo estereoscópico, utiliza los circuitos hardware de procesamiento de entrada, de correspondencia entre bloques (block matching) y de aumento de escala de la profundidad, según se indica con sus respectivas abreviaturas a lo largo del eje vertical de la programación en el tiempo. Para la estimación de la profundidad, sólo se utiliza el componente de luminancia de las imágenes izquierda y derecha. En la Figura 19, el circuito de procesamiento de entrada se muestra para procesar los componentes de las imágenes de entrada consecutivamente, en concreto, primero el componente de luminancia de la imagen izquierda LY, a continuación el componente de luminancia de la imagen derecha RY, y a continuación los componentes de crominancia de la imagen izquierda LU, LV. El procesamiento secuencial de los componentes reduce la latencia global de la conversión en tiempo real, según se explica más adelante con referencia continuada a la Figura 19.
El circuito de procesamiento de entrada puede, además de la reducción de escala o de la simple copia para liberar el búfer de entrada "fuera" del bloque de IP de RTC, realizar también funciones tales como la correspondencia de luminancia (luminance matching), por ejemplo, para compensar ligeras diferencias de brillo entre las imágenes izquierda y derecha, ya que puede haber diferencias sutiles en la óptica o en la sensibilidad de los sensores izquierdo y derecho de la cámara. El circuito de correspondencia entre bloques (block matching circuit) se puede activar cuando el circuito de procesamiento de entrada completa el procesamiento de los componentes de luminancia de la imagen izquierda y derecha de las imágenes de entrada. El circuito de correspondencia entre bloques (block matching circuit) puede a continuación devolver la información de profundidad, por ejemplo, en forma de un campo de disparidad o un mapa de profundidad.
Se observa que, en general, la estimación de la profundidad proporciona datos de profundidad que comprenden valores que son indicativos de la distancia que los objetos tienen hacia una cámara, o espectador o pantalla. Los valores pueden ser valores de profundidad, que se pueden disponer en forma de un mapa de profundidad, es decir, una disposición de valores de profundidad similar a una imagen. Alternativamente, la estimación de la profundidad puede producir datos de profundidad que comprenden valores de disparidad o valores de desplazamiento paraláctico. Los valores de disparidad y los valores de desplazamiento paraláctico tienen una relación aproximadamente inversa con los valores de profundidad, y por lo tanto son indicativos de las distancias que los objetos tienen hacia una cámara, o espectador o pantalla, pero no corresponden directamente a dichas distancias. Se conocen dispositivos y procedimientos para la conversión entre todos los tipos de señales anteriores.
La estimación de la disparidad se puede llevar a cabo utilizando una correspondencia entre bloques (block matching) en bloques de 8 x 8 píxeles. En este caso, el término "correspondencia entre bloques" se refiere a una búsqueda por bloques de contenido de imagen correspondiente en las imágenes izquierda y derecha. Se observa que la correspondencia entre bloques (block matching) es conocida per se en el campo de estimación de movimiento, y se puede utilizar para la estimación de disparidad, ya que los desplazamientos entre las imágenes izquierda y derecha son similares al movimiento entre imágenes consecutivas en el tiempo. Como resultado, se puede disponer de un vector de disparidad para cada bloque de 8 x 8 píxeles de la imagen. El componente x del vector se puede considerar una medida de la profundidad. El circuito de aumento de escala de la profundidad puede a continuación refinar paso a paso (stepwise) el mapa de profundidad de 8 x 8 en un mapa de profundidad de 4 x 4, un mapa de profundidad de 2 x 2 y finalmente un mapa de profundidad en la cuadrícula de píxeles, es decir, 1x1. En cada etapa, se pueden utilizar datos de imagen de menor y mayor resolución. Para este fin, el circuito de procesamiento de entrada puede crear una jerarquía de imágenes de escala reducida, por ejemplo, simplemente reduciendo de forma repetida la escala de la imagen de entrada según factores horizontales y verticales iguales a 2.
En la programación de la Figura 19, se puede ver que una vez que los componentes de luminancia de la imagen izquierda y de la imagen derecha LY, RY han sido procesados por el circuito de procesamiento de entrada, el circuito de correspondencia entre bloques (block matching) ya comienza, es decir, sin esperar a que se complete el procesamiento de entrada de los componentes de crominancia LU y LV. Por lo tanto, la correspondencia entre bloques (block matching) se inicia antes de que se haya completado el procesamiento de entrada de un par de imágenes. Cuando se inicia el aumento de escala de la profundidad, por ejemplo, cuando se dispone de la información de profundidad, los componentes de crominancia también están disponibles y se pueden utilizar en el aumento de escala de la profundidad del mapa de profundidad. La programación de la Figura 19 consigue de este modo una reducción de la latencia en comparación con el escenario en el que el circuito de procesamiento de entrada tuviera que procesar primero todos los datos de imagen de entrada, es decir, incluyendo los componentes de crominancia, y sólo a continuación iniciar la correspondencia entre bloques (block matching).
La Figura 20 muestra una programación más avanzada 310 de operaciones para conversión en tiempo real de datos de vídeo estereoscópicos. En este caso, la CPU del bloque de IP se muestra para realizar algunos procesamientos intermedios, etiquetados como "A" y "B". El procesamiento "A" depende sólo de la imagen izquierda de entrada. Este procesamiento puede incluir, por ejemplo, un análisis de la secuencia de entrada, y la adaptación del procesamiento posterior de acuerdo con el resultado del análisis. Por ejemplo, el procesamiento "A" puede incluir la aplicación de un detector de corte de plano (shot-cut), con una configuración de parámetros de las etapas de procesamiento posteriores que depende de la salida del detector de corte de plano (shot-cut). Por ejemplo, inmediatamente después de un corte de plano (shotcut), se puede reinicializar el campo de disparidad, ya que dicho campo de disparidad puede ser utilizado de forma temporal-recursiva, lo que no tiene sentido en un corte de plano (shot-cut). También se pueden reajustar otros filtros temporal-recursivos. La etapa de procesamiento "B" puede incluir, por ejemplo, una conversión del campo de disparidad del circuito de correspondencia entre bloques (block matching circuit) en un mapa de profundidad. Dicha conversión puede depender del rango de profundidad disponible en la pantalla, del rango de disparidad medido en el campo de disparidad y/o de heurísticas. Se ha determinado que el filtrado temporal ayuda a estabilizar el mapa de profundidad. En general, es probable que se produzcan más innovaciones algorítmicas en este ámbito. Por lo tanto, la flexibilidad de una implementación en software, tal como la proporcionada por la implementación en la CPU del bloque de IP, es beneficiosa para dicha función. Como ejemplo adicional, se puede aplicar un filtrado espacio-temporal al mapa de profundidad para mejorar su estabilización y calidad. Dado que dicho procesamiento se ejecuta con un tamaño de bloque de 8 x 8, la cantidad de datos es aceptable para una implementación en software, lo que proporciona flexibilidad y permite modificaciones posteriores del diseño algorítmico, por ejemplo, incluso después de la introducción del producto cuando se admiten actualizaciones de firmware en el campo.
Como en el caso de la programación de la Figura 19, se ha reducido la latencia de la programación de la Figura 20 reduciendo espacialmente la escala del componente de datos de luminancia antes del componente de datos de crominancia, y un procesado adicional, por ejemplo, por parte de la CPU del bloque de IP y del circuito de correspondencia entre bloques (block matching circuit), que es iniciado cuando los datos de entrada requeridos están disponibles. De este modo, se obtiene una reducción de la latencia con respecto al escenario en el que el circuito de procesamiento de entrada procesara primero todos los datos de imagen de entrada, incluidos los componentes de crominancia, y sólo a continuación se iniciara el procesamiento adicional de los datos de imagen de entrada.
La Figura 21 muestra una programación básica 320 de operaciones para conversión en tiempo real de datos de vídeo monoscópicos. En este ejemplo, el estimador de profundidad en 2D se basa en una implementación de un filtrado bilateral conjunto. Dicho filtrado bilateral conjunto se puede utilizar para adaptar un perfil de profundidad genérico a los contenidos de las imágenes reales, según se describe en el documento US8447141 B2 con referencia a, entre otras, la Figura 1. Además, en la publicación "A fast approximation of the bilateral filter using a signal processing approach" de Paris et al., International Journal of Computer Vision 81.1 (2009): 24 - 52, se describe una implementación rápida de dicho filtro. La implementación rápida es eficiente en cuanto a recursos y, por lo tanto, en lo sucesivo es asumida para implementar el filtrado bilateral conjunto (que en lo sucesivo también se denominará simplemente "filtrado bilateral rápido").
El bloque de IP de RTC, cuando es configurado para operar en modo 2D, puede utilizar circuitos de hardware de procesamiento de entrada, de filtrado bilateral rápido y de aumento de escala de la profundidad, según se indica a lo largo del eje vertical de la programación en el tiempo. Se ha determinado que es beneficioso ejecutar el filtrado bilateral rápido en una señal de entrada de escala significativamente reducida. Por lo tanto, el circuito de procesamiento de entrada puede crear imágenes horizontales y verticales de escala reducida, por ejemplo, según un factor de 4. Como resultado, la escala del mapa de profundidad procedente del circuito de filtrado bilateral BF debe ser aumentada en 4 x 4. Esto se puede lograr mediante el circuito de aumento de escala de la profundidad en dos etapas. En concreto, el circuito de aumento de escala de la profundidad puede utilizar imágenes de entrada de escala reducida para ayudar a refinar el mapa de profundidad de una resolución de 4 x 4 en dos etapas a una resolución de 2 x 2 y finalmente de 1x1 píxeles. El circuito de procesamiento de entrada puede crear las imágenes de escala reducida a una resolución de 4 x 4 y de 2 x 2.
El filtrado bilateral rápido puede incluir tres etapas principales de procesamiento: una etapa de reducción de escala (es decir, de reducción de frecuencia de muestreo), una etapa de cálculo que comprende una convolución, y una etapa de aumento de escala (es decir, aumento de frecuencia de muestreo), según se describe en el documento que se ha mencionado anteriormente "A fast approximation of the bilateral filter using a signal processing approach" de Paris et al., en particular en la Sección 4 del mismo, que se resume en las ecuaciones 12a - 12c de la Sección 4.1 y en la Figura 2. En esta última Figura, la etapa de reducción de frecuencia de muestreo puede corresponder a la etapa 3 del algoritmo, la etapa de cálculo a la etapa 4 del algoritmo, y la etapa de aumento de frecuencia de muestreo a la etapa 5 del algoritmo. La reducción de frecuencia de muestreo puede tomar datos 2D de entrada (X,Y) y convertirlos en un espacio tridimensional (X,Y,I), en el que (X,Y) refleja las dimensiones normales de imagen e (I) refleja una dimensión de intensidad. Esta representación de volumen tridimensional de los datos permite realizar operaciones lineales y una reducción sustancial de los datos reduciendo la escala de la cuadrícula de volumen. En el SoC descrito, la etapa de reducción de escala (que se etiqueta como "down" en las Figuras 21 y siguientes) es realizada por el circuito hardware FBF de filtrado bilateral rápido. Posteriormente, la etapa de cálculo (que se etiqueta como "calc") puede ser realizada, por ejemplo, por el circuito hardware FBF o en software por la CPU del bloque de IP. A continuación, de nuevo el circuito hardware FBF puede realizar el aumento de frecuencia de muestreo del volumen tridimensional en una representación de mapa de profundidad en 2D (que se etiqueta como "up").
Estas etapas de procesamiento producen como resultado una programación según se muestra en la Figura 21. Dado que el filtrado bilateral rápido se aplica únicamente al componente de luminancia Y, su procesamiento se puede iniciar ya en el momento en que el circuito de procesamiento de entrada ha reducido la escala del componente de luminancia Y. Según se ha comentado anteriormente, el filtrado bilateral rápido incluye tres etapas: reducción de frecuencia de muestreo utilizando el circuito hardware FBF de filtrado bilateral rápido, cálculos no lineales realizados por la CPU del bloque de IP, y un aumento de frecuencia de muestreo utilizando de nuevo el circuito hardware FBF de filtrado bilateral rápido. Por último, se aumenta la frecuencia de muestreo del mapa de profundidad utilizando el circuito de aumento de escala de la profundidad a la resolución de entrada, en que el aumento de frecuencia de muestreo utiliza también los componentes de crominancia de la imagen de entrada, es decir, U y V.
La Figura 22 muestra otra programación 330 para conversión en tiempo real de datos de vídeo monoscópicos, concretamente un ejemplo más avanzado. En este caso, se inserta una etapa de optimización adicional "opt" antes del aumento de escala de la profundidad utilizando el circuito de aumento de escala de la profundidad, en que la etapa de optimización adicional se realiza utilizando la CPU del bloque de IP. Esta etapa de optimización puede incluir un filtrado del mapa de profundidad, una adaptación del rango de profundidad, etc. En este ejemplo, la etapa de optimización depende sólo de la salida con frecuencia de muestreo aumentada del filtrado bilateral rápido, pero también podría utilizar el componente de luminancia Y de entrada. Según se puede ver en la programación, también los componentes de crominancia U y V de entrada están disponibles y pueden ser utilizados por la CPU del bloque de IP.
Se apreciará que, en general, el bloque de IP de RTC se puede proporcionar por separado del SoC descrito, por ejemplo, en otro tipo de SoC. Por ejemplo, en lugar de que el SoC descrito interactúe con una memoria externa, dicha memoria puede estar incluida en el SoC que comprende el bloque de IP de RTC. Otro ejemplo es que el SoC puede comprender un circuito de renderizado para renderizar vistas, por ejemplo, para su visualización en una pantalla 3D multi vista, utilizando el mapa de profundidad generado por el bloque de IP de RTC.
Además, se pueden proporcionar datos en un medio legible por dispositivo informático que define el bloque de IP de RTC en forma de listas de red y/o RTL sintetizable. El medio legible por dispositivo informático, y por lo tanto los datos almacenados en el mismo, pueden ser transitorios o no transitorios. Por ejemplo, el bloque de IP de RTC se puede proporcionar como un núcleo sintetizable, por ejemplo, en un lenguaje de descripción de hardware tal como Verilog o VHDL, o como listas de red genéricas a nivel de puerta que proporcionan una representación de álgebra booleana de la función lógica del bloque de IP de RTC implementada como puertas genéricas o celdas estándar específicas de proceso.
Se apreciará que, en general, el bloque de IP de RTC descrito tiene por objeto proporcionar una abstracción y/o separación de afectaciones (concerns) entre el "mundo interior" del bloque de IP de RTC y el "mundo exterior" del SoC. Para este fin, se puede proporcionar un control detallado de los circuitos dentro del bloque de IP de RTC, en el sentido de que los circuitos pueden ser altamente configurables. Los circuitos pueden a continuación ser configurados por una o más funciones de análisis de señales que se ejecutan en la CPU del bloque de IP, que pueden ejecutarse a baja resolución y, por lo tanto, tener una complejidad computacional limitada. Como salida, se pueden producir datos de configuración para establecer de forma adecuada los parámetros del circuito, configurando de este modo el circuito de procesamiento de entrada, el circuito de aumento de escala de la profundidad, etc.
Se apreciará además que en al menos algunas formas de realización del SoC según la invención, el procesamiento de entrada (reducción de escala) se puede ejecutar secuencialmente en el tiempo sobre los componentes de la señal de entrada. En primer lugar, se puede procesar el componente de luminancia para que esté disponible lo antes posible para el procesamiento posterior. Después del componente de luminancia, se pueden procesar los componentes de crominancia. Dado que existe un procesamiento intermedio basado únicamente en la luminancia, esta programación facilita el inicio del procesamiento intermedio lo antes posible. En etapas posteriores de procesamiento, también se pueden utilizar los componentes de crominancia de escala reducida. En el momento en que se completa el procesamiento intermedio, la entrada también ha completado los componentes de crominancia de escala reducida. Como resultado, se puede reducir la latencia total del procesamiento, y el procesamiento secuencial de los componentes promueve la reutilización del mismo hardware.
Se observa que en lo anterior, el término mapa se refiere a datos dispuestos en filas y columnas. Además, el adjetivo profundidad se debe entender como indicativo de la profundidad de partes de una imagen con respecto a la cámara. Por lo tanto, el mapa de profundidad puede estar constituido por valores de profundidad, pero también por, por ejemplo, valores de disparidad o valores de desplazamiento paraláctico. Esencialmente, el mapa de profundidad puede, por lo tanto, constituir un mapa de disparidades o un mapa de desplazamientos paralácticos. El término disparidad se refiere a una diferencia de posición de un objeto cuando es percibido con el ojo izquierdo o el ojo derecho del usuario. El término desplazamiento paraláctico se refiere a un desplazamiento del objeto entre dos vistas para proporcionar dicha disparidad al usuario. La disparidad y el desplazamiento paraláctico están en general correlacionados negativamente con la distancia o la profundidad. Se conocen dispositivos y procedimientos para la conversión entre todos los tipos de mapas y/o valores anteriores.

Claims (9)

REIVINDICACIONES
1. Un sistema en un chip (100) configurado para una estimación de profundidad en tiempo real de datos de vídeo, comprendiendo el sistema en un chip:
- un estimador de profundidad monoscópica (200) configurado para realizar una estimación de profundidad monoscópica a partir de datos de vídeo de tipo monoscópico;
- un estimador de profundidad estereoscópica (210) configurado para realizar una estimación de profundidad estereoscópica a partir de datos de vídeo de tipo estereoscópico;
- una interfaz de memoria para permitir un acceso directo a una memoria compartida (010); en que el sistema en un chip es reconfigurable para realizar la estimación de profundidad monoscópica o la estimación de profundidad estereoscópica en base a datos de configuración que definen el modo de estimación de profundidad seleccionado, caracterizado por el hecho de que el estimador de profundidad monoscópica y el estimador de profundidad estereoscópica comprenden:
- un circuito de procesamiento de entrada compartido reconfigurable (120) instanciado en hardware y reconfigurable por los datos de configuración para:
- generar una jerarquía de imágenes de escala reducida para cada imagen de entrada de los datos de vídeo reduciendo espacialmente la escala de la imagen de entrada de acuerdo con una pluralidad de factores de reducción de escala, en que el circuito de procesamiento de entrada es configurable por los datos de configuración para seleccionar un subconjunto diferente de la jerarquía de imágenes de escala reducida a producir como salida para la estimación de profundidad estereoscópica que para la estimación de profundidad monoscópica para obtener datos de vídeo de escala reducida específicos para el modo de estimación de profundidad seleccionado, y
- almacenar los datos de vídeo de escala reducida en la memoria compartida;
- los estimadores de profundidad monoscópica y estereoscópica tienen cada uno un circuito central estimador de profundidad separado (130, 140) instanciado en hardware y configurado para:
- acceder a los datos de vídeo o los datos de vídeo de escala reducida,
- estimar datos de profundidad a partir de dichos datos de vídeo a los que se ha accedido, teniendo los datos de profundidad una resolución espacial inferior a la resolución espacial de los datos de vídeo, y - almacenar los datos de profundidad en la memoria compartida;
- un circuito de aumento de escala de la profundidad compartido reconfigurable (150) instanciado en hardware y reconfigurable por los datos de configuración para:
- acceder a los datos de profundidad y a los datos de vídeo de escala reducida, y
- aumentar la escala de los datos de profundidad en etapas sucesivas utilizando los datos de vídeo de escala reducida, en que el circuito de aumento de escala de la profundidad es configurable por los datos de configuración para utilizar diferentes etapas sucesivas para la estimación de profundidad estereoscópica que para la estimación de la profundidad monoscópica de acuerdo con el modo de estimación de profundidad seleccionado.
2. El sistema en un chip (100) según la reivindicación 1, en el que el circuito central estimador de profundidad (140) del estimador de profundidad monoscópica implementa un filtrado bilateral conjunto que, cuando es aplicado a una imagen de los datos de vídeo o los datos de vídeo de escala reducida, proporciona un mapa de profundidad como salida.
3. El sistema en un chip (100) según la reivindicación 1 o 2, en el que el circuito central estimador de profundidad (130) del estimador de profundidad estereoscópica implementa un determinador de correspondencia entre bloques que, cuando es aplicado a un par de imágenes estéreo de los datos de vídeo o los datos de vídeo de escala reducida, proporciona un mapa de profundidad como salida.
4. El sistema en un chip (100) según una cualquiera de las reivindicaciones anteriores, en el que el circuito de procesamiento de entrada (120) es configurable por los datos de configuración para, además de generar la jerarquía de imágenes de escala reducida para cada imagen de entrada, producir como salida además una versión no escalada de la imagen de entrada, y para almacenar la versión no escalada de la imagen de entrada como datos de vídeo separados de los datos de vídeo originales en la memoria compartida (010).
5. El sistema en un chip (100) según la reivindicación 4, en el que cada circuito central estimador de profundidad (130, 140) está configurado para, cuando se utiliza la versión no escalada de la imagen de entrada para estimar los datos de profundidad, utilizar los datos de vídeo separados en lugar de los datos de vídeo originales.
6. El sistema en un chip (100) según una cualquiera de las reivindicaciones anteriores, configurado para una estimación de profundidad de datos de vídeo en tiempo real con latencia reducida, en el que: cada circuito central estimador de profundidad (130, 140) está configurado para estimar los datos de profundidad a partir de un componente de datos de luminancia de los datos de vídeo de escala reducida; el circuito de aumento de escala de la profundidad (150) es configurado para aumentar la escala de los datos de profundidad utilizando un componente de datos de crominancia de los datos de vídeo de escala reducida; y
el circuito de procesamiento de entrada (120) es configurado para multiplexar en el tiempo la reducción de escala espacial de los datos de vídeo, comprendiendo la multiplexación en el tiempo, para cada imagen de entrada o par de imágenes estéreo de entrada de los datos de vídeo, reducir la escala espacialmente del componente de datos de luminancia antes de reducir la escala espacialmente del componente de datos de crominancia.
7. El sistema en un chip (100) según la reivindicación 6, en el que el circuito de aumento de escala de la profundidad (150) es configurado para aumentar la escala de los datos de profundidad utilizando un filtrado bilateral conjunto, en el que las propiedades de rango del filtrado bilateral conjunto se derivan a partir del componente de datos de crominancia de los datos de vídeo de escala reducida.
8. El sistema en un chip (100) según una cualquiera de las reivindicaciones anteriores, en el que al menos una de las siguientes operaciones: la reducción de escala espacial de los datos de vídeo y el aumento de escala de los datos de profundidad, se realiza en una o diversas etapas de escalado 2 x 2 repetidas.
9. Un medio transitorio o no transitorio legible por dispositivo informático que comprende una estructura de datos, comprendiendo la estructura de datos unos datos que definen un sistema en un chip según se define en una cualquiera de las reivindicaciones 1 a 8 en forma de listas de red y/o una descripción de nivel de transferencia de registros sintetizable.
ES17717206T 2016-04-21 2017-04-20 Estimador de profundidad de doble modo Active ES2865384T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP16166353.9A EP3236657A1 (en) 2016-04-21 2016-04-21 Dual mode depth estimator
PCT/EP2017/059344 WO2017182548A1 (en) 2016-04-21 2017-04-20 Dual mode depth estimator

Publications (1)

Publication Number Publication Date
ES2865384T3 true ES2865384T3 (es) 2021-10-15

Family

ID=55802290

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17717206T Active ES2865384T3 (es) 2016-04-21 2017-04-20 Estimador de profundidad de doble modo

Country Status (11)

Country Link
US (1) US10679373B2 (es)
EP (2) EP3236657A1 (es)
KR (1) KR102294937B1 (es)
CN (1) CN109076205B (es)
BR (1) BR112018070142A2 (es)
CA (1) CA3018439C (es)
ES (1) ES2865384T3 (es)
IL (1) IL262255B (es)
RU (1) RU2735150C2 (es)
TW (1) TWI767908B (es)
WO (1) WO2017182548A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3416381A1 (en) 2017-06-12 2018-12-19 Thomson Licensing Method and apparatus for providing information to a user observing a multi view content
EP3416371A1 (en) * 2017-06-12 2018-12-19 Thomson Licensing Method for displaying, on a 2d display device, a content derived from light field data
US11527005B2 (en) 2019-07-22 2022-12-13 Samsung Electronics Co., Ltd. Video depth estimation based on temporal attention

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8472699B2 (en) * 2006-11-22 2013-06-25 Board Of Trustees Of The Leland Stanford Junior University Arrangement and method for three-dimensional depth image construction
CN101222647B (zh) * 2007-10-12 2010-10-27 四川虹微技术有限公司 多视角视频图像的场景全局深度估计方法
EP2184713A1 (en) 2008-11-04 2010-05-12 Koninklijke Philips Electronics N.V. Method and device for generating a depth map
KR101506926B1 (ko) * 2008-12-04 2015-03-30 삼성전자주식회사 깊이 추정 장치 및 방법, 및 3d 영상 변환 장치 및 방법
RU2689191C2 (ru) * 2009-01-26 2019-05-24 Томсон Лайсенсинг Упаковка кадров для кодирования видео
KR20100135032A (ko) * 2009-06-16 2010-12-24 삼성전자주식회사 2차원 영상의 3차원 영상 변환 장치 및 방법
TWI398158B (zh) * 2009-12-01 2013-06-01 Ind Tech Res Inst 產生立體影像之影像深度的方法
CN101888566B (zh) * 2010-06-30 2012-02-15 清华大学 立体视频编码率失真性能估计方法
US8537201B2 (en) * 2010-10-18 2013-09-17 Silicon Image, Inc. Combining video data streams of differing dimensionality for concurrent display
US11496760B2 (en) * 2011-07-22 2022-11-08 Qualcomm Incorporated Slice header prediction for depth maps in three-dimensional video codecs
TWI502960B (zh) * 2011-08-05 2015-10-01 Novatek Microelectronics Corp 二維轉三維轉換裝置及其方法
US9414048B2 (en) * 2011-12-09 2016-08-09 Microsoft Technology Licensing, Llc Automatic 2D-to-stereoscopic video conversion
WO2014130019A1 (en) * 2013-02-20 2014-08-28 Intel Corporation Real-time automatic conversion of 2-dimensional images or video to 3-dimensional stereo images or video
US9516306B2 (en) * 2013-03-27 2016-12-06 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
WO2015069734A1 (en) * 2013-11-05 2015-05-14 Arris Enterprises, Inc. Bit depth variable for high precision data in weighted prediction syntax and semantics
EP2916290A1 (en) 2014-03-07 2015-09-09 Thomson Licensing Method and apparatus for disparity estimation
WO2017021731A1 (en) * 2015-08-03 2017-02-09 Hoarton, Lloyd 2d-to-3d video frame conversion
JP7012642B2 (ja) * 2015-11-09 2022-01-28 ヴァーシテック・リミテッド アーチファクトを意識したビュー合成のための補助データ

Also Published As

Publication number Publication date
TWI767908B (zh) 2022-06-21
RU2018140836A (ru) 2020-05-21
IL262255B (en) 2021-04-29
BR112018070142A2 (pt) 2019-02-05
KR20180135955A (ko) 2018-12-21
RU2735150C2 (ru) 2020-10-28
US10679373B2 (en) 2020-06-09
EP3446479B1 (en) 2021-01-27
EP3236657A1 (en) 2017-10-25
RU2018140836A3 (es) 2020-08-31
KR102294937B1 (ko) 2021-08-27
IL262255A (en) 2018-11-29
WO2017182548A1 (en) 2017-10-26
CA3018439A1 (en) 2017-10-26
TW201802772A (zh) 2018-01-16
CN109076205B (zh) 2021-03-09
EP3446479A1 (en) 2019-02-27
US20190130593A1 (en) 2019-05-02
CN109076205A (zh) 2018-12-21
CA3018439C (en) 2023-10-10

Similar Documents

Publication Publication Date Title
US9924153B2 (en) Parallel scaling engine for multi-view 3DTV display and method thereof
ES2865384T3 (es) Estimador de profundidad de doble modo
TWI542190B (zh) 編碼三維影像信號的方法及系統、經編碼之三維影像信號、解碼三維影像信號的方法及系統
US20120093394A1 (en) Method for combining dual-lens images into mono-lens image
US20140146139A1 (en) Depth or disparity map upscaling
KR20130055002A (ko) 줌 카메라 이미지 블렌딩 기술
CN112136324A (zh) 在dibr系统(mfp-dibr)中产生立体视点的基于多焦面的方法
US20180184066A1 (en) Light field retargeting for multi-panel display
US9972139B2 (en) Image processing apparatus, image processing method and program
US20210158481A1 (en) Image processing method, device and apparatus, image fitting method and device, display method and apparatus, and computer readable medium
US9774844B2 (en) Unpacking method, unpacking device and unpacking system of packed frame
Fan et al. Three-dimensional auto-stereoscopic image recording, mapping and synthesis system for multiview 3D display
WO2016033925A1 (zh) 显示方法及显示装置
JP2013223008A (ja) 画像処理装置及び方法
JP5464129B2 (ja) 画像処理装置および視差情報生成装置
CN102883174B (zh) 一种2d转3d的方法
US10277881B2 (en) Methods and devices for determining visual fatigue of three-dimensional image or video and computer readable storage medium
CN109194944A (zh) 图像处理方法、装置及系统、显示装置
EP2858360A1 (en) Method, device and system for packing color frame and original depth frame
CN110809147A (zh) 图像处理方法及装置、计算机存储介质、电子设备
TWI547141B (zh) 包裝圖框的解包裝方法、裝置及儲存解包裝指令之非暫態儲存媒體
CN115272440A (zh) 一种图像处理方法、设备及系统
JP2013201470A (ja) 情報処理装置、情報処理プログラム、情報処理システム、および情報処理方法
KR20120052142A (ko) 3d 디스플레이 장치 및 이의 3d 영상 뎁스 추출 방법
Parkin Stereo Projection