Compensación y búsqueda de movimiento FFMPEG

Compensación y búsqueda de movimiento FFMPEG

Estoy intentando modificar la parte de detección de movimiento de FFMPEG. Lo que quiero hacer es extender el espacio de búsqueda, de modo que cada vez que el macrobloque llegue al borde más derecho del marco, necesito que siga moviendo el bloque hacia el extremo izquierdo como si estuvieran conectados (en mis videos de ejemplo, el borde derecho es en realidad una continuación del borde izquierdo). ¿Alguien puede ayudarme a señalar exactamente dónde puedo modificarlo dentro del código fuente FFMPEG o x265 o x264?

ingrese la descripción de la imagen aquí

Tomé H265 como ejemplo deaquí. Tiene un motion.carchivo que especifica muy bien los posibles tamaños de bloque como se muestra a continuación, pero no puedo encontrar el bucle específico que atraviesa el marco. La ayuda es muy apreciada.

#define SETUP_SCALE(W, H) \
    sizeScale[LUMA_ ## W ## x ## H] = (H * H) >> 4;
    SETUP_SCALE(4, 4);
    SETUP_SCALE(8, 8);
    SETUP_SCALE(8, 4);
    SETUP_SCALE(4, 8);
    SETUP_SCALE(16, 16);
    SETUP_SCALE(16, 8);
    SETUP_SCALE(8, 16);
    SETUP_SCALE(16, 12);
    SETUP_SCALE(12, 16);
    SETUP_SCALE(4, 16);
    SETUP_SCALE(16, 4);
    SETUP_SCALE(32, 32);
    SETUP_SCALE(32, 16);
    SETUP_SCALE(16, 32);
    SETUP_SCALE(32, 24);
    SETUP_SCALE(24, 32);
    SETUP_SCALE(32, 8);
    SETUP_SCALE(8, 32);
    SETUP_SCALE(64, 64);
    SETUP_SCALE(64, 32);
    SETUP_SCALE(32, 64);
    SETUP_SCALE(64, 48);
    SETUP_SCALE(48, 64);
    SETUP_SCALE(64, 16);
    SETUP_SCALE(16, 64);
#undef SETUP_SCALE

Un pseudocódigo básico debería ser así:

block.rightX ==block.width; // a block initiates from left part of the frame
while(block.leftX <=frame.width) //until it hits the right most edge (assuming it moves from left to right for search)
for (int i=0;i<block.width();i++)
    for(int j=0;j< i<block.height();j++)
        block[i][j] = frame_pixel [(block.leftX+i) % frame.width] [block.leftY+j] //if the block's width passes frame's width, we just take the mod.

información relacionada