Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

MPEG2 Encoding and Decoding features/capabilities

Durgesh_M_
Beginner
863 Views

Hi,

I was analysing MPEG2 encoder of Intel Media SDK for our application on several parameter/features required. I could not get answers for all my queries. Is MPEG2 encoder and decoder Datasheet available? 

I have following questions on MPEG2 encoder and decoder on IMSDK

1.Does it support YUV422 encoding and Decoding?

2.Does it 10bit encoding and Decoding?

3.Does it support passing userdata(similar to SEI) and VUI information?

4.Does it supports force IDR insertion?

5.What is the max bitrate MPEG2 can encode? can MPEG2 supports upto 100mbps?

6. What is the max bitrate decoder can support? can it support upto 120mbps?

7. Does MPEG2 encoder supports "Intra frames Only Profile" ?

8. Does MPEG2 decoder support "input stream error handling"?

9. Does MPEG2 decoder support high profile?

Regards,

durgesh

0 Kudos
3 Replies
Durgesh_M_
Beginner
863 Views

Hi,

Please let me know if someone can help me out to get the answers for above questions on MPEG2 Enocder and Decoder?

Regards,

Durgesh

0 Kudos
Mark_L_Intel1
Moderator
863 Views

Hi Durgesh,

You can refer to the following release note for the capabilities:

https://software.intel.com/sites/default/files/managed/e7/e4/media_server_studio_sdk_release_notes-linux.pdf

But noted this is for SkyLake platform, for the specific requirement, you'd better to check programmablly. Here is a sample code you can start with:

char* fillMPEG2DecodeParams(mfxVideoParam *param) {
	memset(param, 0, sizeof(*param));

	param->IOPattern = MFX_IOPATTERN_OUT_SYSTEM_MEMORY;
	param->mfx.CodecId = MFX_CODEC_MPEG2;
	param->mfx.CodecProfile = MFX_PROFILE_MPEG2_MAIN;
	param->mfx.CodecLevel = MFX_LEVEL_MPEG2_HIGH;

	// - Width and height of buffer must be aligned, a multiple of 32
	// - Frame surface array keeps pointers all surface planes and general frame info
	param->mfx.FrameInfo.Width = MSDK_ALIGN16(2048);
	param->mfx.FrameInfo.Height = MSDK_ALIGN16(2048);
	param->mfx.FrameInfo.FourCC = MFX_FOURCC_NV12;
	param->mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_PROGRESSIVE;
	param->mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;

	return "decoder MPEG-2 with resolution(2048x2048)";
}
int main(int argc, char** argv)
{
	mfxStatus sts = MFX_ERR_NONE;

	// Initialize Intel Media SDK session with the HW acceleration if available (on any adapter)
	// - Version 1.0 is selected for greatest backwards compatibility.
	// OS specific notes
	// - On Windows both SW and HW libraries may present
	// - On Linux HW library only is available
	// If more recent API features are needed, change the version accordingly
	mfxVersion ver = { { 0, 1 } };
	MFXVideoSession session;
	sts = Initialize(MFX_IMPL_HARDWARE, ver, &session, NULL);
	MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts);

	// Query the Media SDK version
	sts = session.QueryVersion(&ver);
	MSDK_CHECK_RESULT(sts, MFX_ERR_NONE, sts);

	mfxVideoParam inParam;

	//Check decoder capability
        fillMPEG2DecodeParams(&inParam);
	sts = MFXVideoDECODE_Init(session, &inParam);
	if (sts < MFX_ERR_NONE) printf("The device doesn't support %s, initialization failed\n", msg);

	sts = MFXVideoDECODE_Close(session);
	if (sts != MFX_ERR_NONE) printf("The decoder wasn't closed successfully.\n", msg);
}

Although I only give you the decoder example, you can use the similar API for encoder.

Mark

0 Kudos
Durgesh_M_
Beginner
863 Views

Hi Mark,

Thank you for sharing Release Notes and example code. I will try the code and get back to you in case I need any further help.

Thanks and regards,

Durgesh M N

0 Kudos
Reply