Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Procesamiento de bloques paralelos en archivos de imágenes grandes

Si tiene una licencia, la función puede aprovechar varios núcleos de procesador en el equipo para realizar el procesamiento de bloques paralelos.Parallel Computing Toolbox™blockproc

¿Qué es el procesamiento de bloques paralelos?

El procesamiento de bloques paralelos le permite procesar muchos bloques simultáneamente distribuyendo cálculos de tareas a una colección de sesiones, denominadas .MATLAB®Trabajadores La sesión con la que interactúa se denomina .MATLABCliente El cliente reserva una colección de trabajadores, llamados .piscina paralela A continuación, el cliente divide la imagen de entrada en bloques y envía bloques a las sesiones de trabajo.MATLAB Cada trabajador procesa un subconjunto de bloques y devuelve los resultados al cliente. El cliente agrega los resultados en una variable de salida.

Cuándo utilizar el procesamiento de bloques paralelos

Al procesar imágenes pequeñas, se espera que el modo serie sea más rápido que el modo paralelo. Para imágenes más grandes, sin embargo, es posible que vea mejoras significativas en el rendimiento del procesamiento paralelo. El rendimiento del procesamiento de bloques paralelos depende de tres factores:

  • Función utilizada para el procesamiento

  • Tamaño de la imagen

  • Tamaño del bloque

En general, el uso de bloques más grandes mientras se procesa una imagen da como resultado un rendimiento más rápido que completar la misma tarea con bloques más pequeños. Sin embargo, a veces la tarea o algoritmo que está aplicando a la imagen requiere un cierto tamaño de bloque y debe utilizar bloques más pequeños. Cuando el procesamiento de bloques utiliza bloques más pequeños, el procesamiento de bloques paralelos suele ser más rápido que el procesamiento de bloques normal (serie), a menudo por un margen grande. Sin embargo, si utiliza bloques más grandes, es posible que deba experimentar para determinar si el procesamiento de bloques paralelos ahorra tiempo de computación.

Cómo utilizar el procesamiento de bloques paralelos

Debe cumplir dos condiciones para utilizar el tratamiento de bloques paralelos:

  • La imagen de origen no se especifica como una clase.ImageAdapter

  • Existe una licencia en la instalación.Parallel Computing ToolboxMATLAB

Si cumple estas condiciones, puede invocar el procesamiento paralelo especificando el argumento como .blockproc'UseParallel'true Al hacerlo, abre automáticamente un grupo paralelo de trabajadores en el equipo local y utiliza todos los trabajadores disponibles para procesar la imagen de entrada.MATLAB

En el ejemplo siguiente, calcule una transformación de coseno discreta para cada bloque de 8 por 8 de una imagen en paralelo:

blockFun = @(block_struct) dct2(block_struct.data); result = blockproc(input_image,[8 8],blockFun, ...    'UseParallel',true);

Controle el comportamiento paralelo con las preferencias paralelas, incluido el escalado hasta un clúster. Consulte para obtener información sobre cómo configurar el entorno paralelo.parpool (Parallel Computing Toolbox)

Consulte también

Temas relacionados