Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Durgesh_M_
Beginner
57 Views

MPEG2 Encoding and Decoding features/capabilities

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
57 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

Mark_L_Intel1
Moderator
57 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-l...

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

Durgesh_M_
Beginner
57 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