<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: UMC MPEG4Encoder in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876503#M9597</link>
    <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/404199"&gt;Ying H (Intel)&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt; &lt;BR /&gt;Hi Dave, &lt;BR /&gt;&lt;BR /&gt;What is the real format in yourinput data? &lt;BR /&gt;&lt;BR /&gt;In general, the encoder ask UMC::YV12 format as default input, that means, your data is stored as Y first, follow U, follow V. The total size for one frame is imgWidth*imgHeight*3/2. If your input are other format, may you try to contert it into YV12, then feed it into the encoder and see if it can work normally? &lt;BR /&gt;&lt;BR /&gt;You may have know, there is a simple encoder sample at &lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/articles/getting-started-with-intel-ipp-unified-media-classes-sample/" target="_blank"&gt;http://software.intel.com/en-us/articles/getting-started-with-intel-ipp-unified-media-classes-sample/&lt;/A&gt;&lt;BR /&gt;for your reference. &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Ying&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hi Ying,&lt;BR /&gt;&lt;BR /&gt;Dave's buffer seems to be YUY2 (YUYV "422" packed), the simple encoder sample requiers YV12(YVU) or iYUV(YUV) "420"planar format (UMC converts YV12 to iYUV and vise versa, automatically.. I wonder why? its just the UV order reversing!) .&lt;BR /&gt;&lt;BR /&gt;Then Dave must convert from YUY2 (packed 422) to iYUV/YV12 (planar 420).&lt;BR /&gt;&lt;BR /&gt;ipp format convertion function: ippiYCbCr422ToYCbCr420_8u_C2P3R&lt;BR /&gt;&lt;BR /&gt;regards,&lt;BR /&gt;</description>
    <pubDate>Mon, 04 Jan 2010 18:52:04 GMT</pubDate>
    <dc:creator>Tamer_Assad</dc:creator>
    <dc:date>2010-01-04T18:52:04Z</dc:date>
    <item>
      <title>UMC MPEG4Encoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876501#M9595</link>
      <description>I am working on a directshow filter (a simple transform filter) in order to encode MPEG-4.
&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;I seem to run into a problem with the output. The output (once decoded) show the image with black and magenta vertical stripes on the entire image. &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;I have tried specifying various colorspaces with little change.&lt;/DIV&gt;
&lt;DIV&gt;The following is a snippet of the code I have tested from the Transform() fn:&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;if (!m_bEncoderInitialized)&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;{&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;OutputDebugString(_T("Initializing Encoder\r\n"));&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;if (!m_pEncoder)&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;m_pEncoder = new(std::nothrow) UMC::MPEG4VideoEncoder();&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;if (m_pEncoder)&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;{&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;m_EncoderParams.info.clip_info.width = inWidth;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;m_EncoderParams.info.clip_info.height = inHeight;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;m_EncoderParams.info.color_format = m_colorspace;//UMC::YUY2;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;if ((status = m_pEncoder-&amp;gt;Init(&amp;amp;m_EncoderParams)) != UMC::UMC_OK)&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;{&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;sprintf(out_msg,"Error %i in init\r\nw:%i h:%i format:%i",status,inWidth,inHeight,m_EncoderParams.info.color_format);&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;OutputDebugString(out_msg);&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;return S_FALSE;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;if ((status = m_pEncoder-&amp;gt;GetInfo(&amp;amp;m_EncoderParams)) != UMC::UMC_OK)&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;{&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;sprintf(oot,"Error %i in m_pEncoder-&amp;gt;getInfo\r\n",status);&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;OutputDebugString(oot);&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;return S_FALSE;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;status = m_DataIn.Init(inWidth,inHeight,m_colorspace,8);&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;m_bEncoderInitialized = TRUE;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;else&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;{&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;OutputDebugString(_T("Error allocating memory for encoder instance"));&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;return S_FALSE;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;m_DataIn.SetBufferPointer(pSrc, lInBuffSize);&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;m_DataIn.SetDataSize(lInBuffSize);&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;PBYTE pTempBuffer = new(std::nothrow) BYTE[pOut-&amp;gt;GetSize()];&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;m_DataOut.SetBufferPointer(pTempBuffer,pOut-&amp;gt;GetSize());&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;// Encode!!!&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;if ((status = m_pEncoder-&amp;gt;GetFrame(&amp;amp;m_DataIn,&amp;amp;m_DataOut)) != UMC::UMC_OK)&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;{&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;sprintf(out_msg,"Error %i in m_pEncoder-&amp;gt;GetFrame &amp;lt;&lt;ENCODE the="" framne=""&gt;&amp;gt;\r\n",status);&lt;/ENCODE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;OutputDebugString(out_msg);&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;return S_FALSE;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt; &lt;/SPAN&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;The encoder initialization only occurs one the first call into Transform().&lt;/DIV&gt;
&lt;DIV&gt;Any thoughts as to what I could be doing wrong?&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;Thanks for any info.&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;Dave&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 25 Nov 2009 20:32:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876501#M9595</guid>
      <dc:creator>shadowwolf99</dc:creator>
      <dc:date>2009-11-25T20:32:39Z</dc:date>
    </item>
    <item>
      <title>Re: UMC MPEG4Encoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876502#M9596</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;Hi Dave, &lt;BR /&gt;&lt;BR /&gt;What is the real format in yourinput data? &lt;BR /&gt;&lt;BR /&gt;In general, the encoder ask UMC::YV12 format as default input, that means, your data is stored as Y first, follow U, follow V. The total size for one frame is imgWidth*imgHeight*3/2. If your input are other format, may you try to contert it into YV12, then feed it into the encoder and see if it can work normally? &lt;BR /&gt;&lt;BR /&gt;You may have know, there is a simple encoder sample at &lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/articles/getting-started-with-intel-ipp-unified-media-classes-sample/" target="_blank"&gt;http://software.intel.com/en-us/articles/getting-started-with-intel-ipp-unified-media-classes-sample/&lt;/A&gt;&lt;BR /&gt;for your reference. &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Ying&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 26 Nov 2009 07:30:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876502#M9596</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2009-11-26T07:30:03Z</dc:date>
    </item>
    <item>
      <title>Re: UMC MPEG4Encoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876503#M9597</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/404199"&gt;Ying H (Intel)&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt; &lt;BR /&gt;Hi Dave, &lt;BR /&gt;&lt;BR /&gt;What is the real format in yourinput data? &lt;BR /&gt;&lt;BR /&gt;In general, the encoder ask UMC::YV12 format as default input, that means, your data is stored as Y first, follow U, follow V. The total size for one frame is imgWidth*imgHeight*3/2. If your input are other format, may you try to contert it into YV12, then feed it into the encoder and see if it can work normally? &lt;BR /&gt;&lt;BR /&gt;You may have know, there is a simple encoder sample at &lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/articles/getting-started-with-intel-ipp-unified-media-classes-sample/" target="_blank"&gt;http://software.intel.com/en-us/articles/getting-started-with-intel-ipp-unified-media-classes-sample/&lt;/A&gt;&lt;BR /&gt;for your reference. &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Ying&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hi Ying,&lt;BR /&gt;&lt;BR /&gt;Dave's buffer seems to be YUY2 (YUYV "422" packed), the simple encoder sample requiers YV12(YVU) or iYUV(YUV) "420"planar format (UMC converts YV12 to iYUV and vise versa, automatically.. I wonder why? its just the UV order reversing!) .&lt;BR /&gt;&lt;BR /&gt;Then Dave must convert from YUY2 (packed 422) to iYUV/YV12 (planar 420).&lt;BR /&gt;&lt;BR /&gt;ipp format convertion function: ippiYCbCr422ToYCbCr420_8u_C2P3R&lt;BR /&gt;&lt;BR /&gt;regards,&lt;BR /&gt;</description>
      <pubDate>Mon, 04 Jan 2010 18:52:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876503#M9597</guid>
      <dc:creator>Tamer_Assad</dc:creator>
      <dc:date>2010-01-04T18:52:04Z</dc:date>
    </item>
    <item>
      <title>Re: UMC MPEG4Encoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876504#M9598</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/449466"&gt;Tamer Assad&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;&lt;BR /&gt;Hi Ying,&lt;BR /&gt;&lt;BR /&gt;Dave's buffer seems to be YUY2 (YUYV "422" packed), the simple encoder sample requiers YV12(YVU) or iYUV(YUV) "420"planar format (UMC converts YV12 to iYUV and vise versa, automatically.. I wonder why? its just the UV order reversing!) .&lt;BR /&gt;&lt;BR /&gt;Then Dave must convert from YUY2 (packed 422) to iYUV/YV12 (planar 420).&lt;BR /&gt;&lt;BR /&gt;ipp format convertion function: ippiYCbCr422ToYCbCr420_8u_C2P3R&lt;BR /&gt;&lt;BR /&gt;regards,&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hi Tamer, &lt;BR /&gt;&lt;BR /&gt;Thanks foryour correct. Yes, strictly speakingtheIPP sample require YUV4:2:0 (planar) format as input, not YV12(YVU). &lt;BR /&gt;if dave have YVY2(packed) format, then he must do color conversion first. &lt;BR /&gt;
&lt;P&gt;case YUY2-&amp;gt;YUV420&lt;BR /&gt;status = ippiYCbCr422ToYCrCb420_8u_C2P3R(pSrc[0], pSrcStep[0], pDst, pDstStep, srcSize);&lt;/P&gt;
&lt;BR /&gt;I thinkthere is not special reason to select YUV4:2:0 as input, may be justbecauseYUV4:2:0 is widely and easily to used. &lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Ying</description>
      <pubDate>Mon, 11 Jan 2010 08:55:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876504#M9598</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2010-01-11T08:55:38Z</dc:date>
    </item>
    <item>
      <title>Re: UMC MPEG4Encoder</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876505#M9599</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;&lt;!--  --&gt;Hi Ying,&lt;BR /&gt;&lt;BR /&gt; Thank you for your confirmation.&lt;BR /&gt;&lt;BR /&gt;The function:&lt;BR /&gt; ippiYCbCr422To&lt;SPAN style="color: #ff0000;"&gt;YCrCb&lt;/SPAN&gt;420_8u_C2P3R(pSrc[0], pSrcStep[0], pDst, pDstStep, srcSize);&lt;BR /&gt;&lt;BR /&gt; will result in placing:&lt;BR /&gt; 1) the Y component (plan) in the pDst[0]&lt;BR /&gt; 2) the Cr component (plan) in the pDst[1]&lt;BR /&gt; 3) the Cb component (plan) in the pDst[2]&lt;BR /&gt;this is more like a YV12.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt; Function:&lt;BR /&gt; ippiYCbCr422To&lt;SPAN style="color: #ff0000;"&gt;YCbCr&lt;/SPAN&gt;420_8u_C2P3R(pSrc, srcStep, pDst, dstStep, roiSize);&lt;BR /&gt;&lt;BR /&gt; will result in placing:&lt;BR /&gt; 1) the Y component (plan) in the pDst[0]&lt;BR /&gt; 2) the Cb component (plan) in the pDst[1]&lt;BR /&gt; 3) the Cr component (plan) in the pDst[2]&lt;BR /&gt; this is more like an iYUV sequence.&lt;BR /&gt;&lt;BR /&gt; infact they are pretty much the same, its just the sequence of the &lt;EM&gt;chroma&lt;/EM&gt; components sequence differs, and must be considered when passing the plans pointer.&lt;BR /&gt;&lt;BR /&gt; iYUV 420 is commonly used for video coding (ex.MPEG-2 and 4) and it provides a more compact (less size) in image (frame) color sampling as each pixel is presented by 1.5 byte.&lt;BR /&gt;&lt;BR /&gt;Also, you are right Ying, iYUV is the prefered format by UMC. Thanks again for the confirmation.&lt;BR /&gt;&lt;BR /&gt; Best regards,&lt;BR /&gt; Tamer&lt;BR /&gt;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 11 Jan 2010 16:19:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/UMC-MPEG4Encoder/m-p/876505#M9599</guid>
      <dc:creator>Tamer_Assad</dc:creator>
      <dc:date>2010-01-11T16:19:40Z</dc:date>
    </item>
  </channel>
</rss>

