- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
I'm trying to deinterlace a video but somehow it's not working well.
I receive a 4:2:2 non-planar video in YCbCr. This is fix and garateed.
I give the user an option to de-interlace the video. I've included the code.
The thing is that when i use the deinterlacing path, the video shows strange artifacts. It shows for example some of left part of the video in the right corner, and this looks like its interlaced.
So it keeps some lines of the left part in the correct position, and the other parts somewhere else.
As it's messing with the step. Does anyone have an idea what's wrong ?
Thank you.
The unny thing is that I've used the nvidia rotation to rotate the display, and again, the vertical lines... why does it happen only when the video is somehow rotated ?
Another thing, If I use ippiCbYCr422ToYCbCr420_8u_C2P3R instead of the interlace method, the artifacts are there as well. The error must be on the ippiYCbCr420ToBGR_8u_P3C3R function.
Marco
//reorder bytes
ippError = ippiYCbCr422ToCbYCr422_8u_C2R(pAuxIn, m_srcStep, m_auxiliarBuffer,
m_auxiliarBufferStep, m_srcSize);
if (ippError == 0) {
// convert to planar data, de-interlacing
ippError = ippiCbYCr422ToYCbCr420_Interlace_8u_C2P3R(
m_auxiliarBuffer, m_auxiliarBufferStep, m_planarBuffer, m_planarStep, m_srcSize);
if (ippError == 0) {
// convert to non-planar RGB
ippError = ippiYCbCr420ToBGR_8u_P3C3R(m_planarBuffer, m_planarStep,
m_auxiliarBuffer, m_auxiliarBufferStep, reducedSize);
if (ippError != 0)
DbgOutString(L" convert to RGB Failed!! --- ");
} else {
DbgOutString(L" deinterlace --- Failed!! --- ");
}
} else {
DbgOutString(L" reordering --- Failed!! --- ");
}
// convert to RGB
} else {
ippError = ippiYCbCr422ToBGR_8u_C2C3R(pAuxIn, m_srcStep, m_auxiliarBuffer,
&n bsp; m_auxiliarBufferStep, reducedSize);
}
Enlace copiado
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Hello,
if you pay attention to IPP documentation you may notice that ippiCbYCr422ToYCbCr420_Interlace_8u_C2P3R function do not do de-interlacing. It convert image from one format to other.
We do have in IPP functions which were specifically designed to do de-interlacing:
ippiDeinterlaceMotionAdaptive_8u_C1
ippiDeinterlaceBlend_8u_C1
ippiDeinterlaceFilterTriangle_8u_C1R
ippiDeinterlaceMedianThreshold_8u_C1R
ippiDeinterlaceEdgeDetect_8u_C1R
ippiDeinterlaceFilterCAVT_8u_C1R
ippiMedian_8u_P3C1R
you can see example of their usage in audio-video-codec sample, color-converter component, file umc_deinterlacing.cpp
Regards,
Vladimir
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Vladimir,
When you are mentioning that code sample I believe there is a bug "hidden" in it:
int field = (in->GetPictureStructure() & PS_TOP_FIELD_FIRST) ? 1 : 0;
if (NULL == in || NULL == out) {
return UMC_ERR_NULL_PTR;
}
NULL check should come before dereferencing the pointer (in->GetPicture...).
Moreover, it doesn't explain how to use ippiDeinterlaceMotionAdaptive_8u_C1 which seems the most interesting one.
Finally, I really don't understand why those functions operate only on a single channel thus requiring splitting an RGBA image, multiple invocations and merging to RGBA afterwards.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Vladimir
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Vladimir
Vladimir,
Any progress on this? I would like to assess the speed and quality of IPP denterlace beforre I decide whether I should sit down and roll my own.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Vladimir
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Vladimir
Frankly I am more concerned with getting a usage sample or a more detailed explanation/documentation as to how to use that deinterlace function I asked about (the one which isn't in a sample).
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Frankly I am more concerned with getting a usage sample or a more detailed explanation/documentation as to how to use that deinterlace function I asked about (the one which isn't in a sample).
Bump.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Vladimir
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Could you please checkprevioustopics on deinterlace functions which might be already address your question, for example http://software.intel.com/en-us/forums/showthread.php?t=77702&o=a&s=lr.
Regards,
Vladimir
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
http://origin-software.intel.com/en-us/forums/showthread.php?t=78614
I failed to find a clear example how to use ippiDeinterlaceMotionAdaptive_8u_C1() to process color video.
Documentation for deinterlacing functions should explain the algorithm, state expected color format, and data layout in memory (i.e. planar, interleaved, top or bottom field first, etc) in addition to giving usage examples.
Any chance we get documentation update? How about you task those developers who wrote the functions with documenting them properly now?
- Suscribirse a un feed RSS
- Marcar tema como nuevo
- Marcar tema como leído
- Flotar este Tema para el usuario actual
- Favorito
- Suscribir
- Página de impresión sencilla