Hallo!
Just a small comment: why call it [pix_2pdp], why not just [pix2pdp]
like [gem2pdp], [pdp2gem], [cart2pol], etc.
I also thought about that, but all pix objects are starting with pix_* - so I called it pix_2pdp (like pix_2grey, ...).
LG Georg