"Pops" When Scene has Green

msmart

New member
I submitted this to support but thought I would post this here in case anyone else has noticed this...

I've noticed for quite some time, over many versions but never bothered to say anything until now, that when I render my TiVo S2 SD video to M4V files, I get "pops" in the video when there is lots of green in the scene. [Outdoors with grass or trees, etc]. Attached is a "good" frame and the very next "bad" frame. The bad frames continue for about 7 frames each getting progressively better until it's back to "normal". It will happen every couple seconds until the scene no longer has green in it.

I tried to create a short segment that I could upload to the ftp site but the short versions are good. It seems that it only happens when the entire 1-hour (~40mins) show is processed.

The original Tivo File:

Code:
                                           Size : 1.819 GB
                                       Duration : 01:02:00.22
                                       Mux type : TiVo
 Video:                                Encoding : MPEG2
                                  VideoStreamID : xE0
                                     Frame rate : 29.97 fps
                                  Encoding size : 544 x 480
                             Display dimensions : 544 x 480
                                   Aspect ratio : 4:3
                                Header bit rate : 5.800 Mbps
                                     VBV buffer : 224 KBytes
                                        Profile : Main@Main
                                    Progressive : Prog or Int
                                         Chroma : 4:2:0
                                       Bit rate : 3.570 Mbps
                                     Captioning : EIA 608
 Audio Stream: 1 (Primary)                Codec : MPEG
                                      MPEGLayer : Layer 2
                                       Channels : 2.0
                                  PES Stream Id : xC0
                                       Bit rate : 192 Kbps
                                  Sampling rate : 48000
                                    Sample size : 16 bits
Encoded file:

Code:
                                           Size : 0.505 GB
                                       Duration : 00:41:16.13
                                       Mux type : MP4
 Video:                                Encoding : H.264
                                  VideoStreamID : x201
                                     Frame rate : 29.97 fps
                                  Encoding size : 640 x 368
                                   Aspect ratio : 16:9
                                Header bit rate : 2.000 Mbps
                                     VBV buffer : 732 KBytes
                                        Profile : Baseline/3.0
                                    Progressive :  Progressive
                                         Chroma : 4:2:0
                                   Entropy mode : CAVLC
                                       Bit rate : 1.567 Mbps
                                     Captioning : EIA 608
 Audio Stream: 1 (Primary)                Codec : AAC
                                         Format : ADTS
                                       Channels : 2.0
                                       Language : eng
                                            PID : x202
                                  PES Stream Id : xC0
                                  Sampling rate : 48000
 

Attachments

Dan203

Senior Developer
Staff member
Are you setting any of the options manually? Or are you using the default Intelligent profile?

I've seen this sort of thing before, but only when the encoder is bit starved. Just as a test try encoding at a higher bitrate and see if goes away. Alternatively try using 2 pass encode mode to see if it can better distribute the bits and avoid the issue.

I don't think this has anything specifically to do with the color green. It may be that it's just most noticeable when a scene has a lot of green.
 

msmart

New member
Using custom profile with 2 pass encoding. I use a low bitrate to keep the file size smaller to allow more videos on iPod/iPad.

I'll increase the bitrate and see what happens then throttle it back to a happy medium. What bitrate do you suggest will get me better results but keep the file size manageable.

But I'm confused why a short 1 minute (video length) render doesn't introduce the "pops" at the same points in the video where he full render does.

Before seeing your reply I realized I was uprezing the video so I changed the profile so H and W are SAS. I also changed the Advanced settings Profile from Basic to High and Level from 3 to 4.1. Still getting the pops.

Here is the profile used for the last run:

Code:
<VRDOutputProfile enabled="true">
	<Name>H.264 M4v iPod Touch - SAS</Name>
	<OutputMode>Transcode</OutputMode>
	<FileType>MP4-IPOD</FileType>
	<FileExt>m4v</FileExt>
	<OutputLibrary>
		<Program>None</Program>
		<CustomPath></CustomPath>
	</OutputLibrary>
	<DefaultOutputDir></DefaultOutputDir>
	<VideoAttributes>
		<Encoder>H264</Encoder>
		<AspectRatio>4:3</AspectRatio>
		<AspectCorrection>None</AspectCorrection>
		<EncodeDimensions>
			<Width>0</Width>
			<Height>0</Height>
		</EncodeDimensions>
		<EncodeBitrate>1500</EncodeBitrate>
		<HeaderBitrate>1500</HeaderBitrate>
		<MaxBitrate>2000</MaxBitrate>
		<ShrinkPercent>100</ShrinkPercent>
		<EncodingMode>DP</EncodingMode>
		<BitrateMode>VBR</BitrateMode>
		<DeinterlaceMethod>Smart</DeinterlaceMethod>
		<MaxGOP>0</MaxGOP>
		<FrameRate>No Change</FrameRate>
		<OutputNAVPackets>False</OutputNAVPackets>
	</VideoAttributes>
	<AudioAttributes>
		<Encoder>AAC</Encoder>
		<Bitrate>128</Bitrate>
		<SampleRate>No Change</SampleRate>
		<AllowMultiAudio>False</AllowMultiAudio>
	</AudioAttributes>
	<EncodingOptions>
		<H264>
			<profile>high</profile>
			<level_id>41</level_id>
			<vbv_size_bytes>750000</vbv_size_bytes>
			<hrd_maintain>true</hrd_maintain>
		</H264>
	</EncodingOptions>
</VRDOutputProfile>
 
Last edited:

Dan203

Senior Developer
Staff member
Hmmm... Even with the best encoders H.264 is only capable of reducing the bitrate by about 1/2, compared to MPEG-2, without a significant loss of quality. You're reducing the bitrate by almost 60% on this specific file. I would recommend increasing the average bitrate to at least 1800, which is 50% of the source. Although you may need to go higher to eliminate the artifacts completely. Our internal "quality factor" calculation only uses a 30% drop fro MPEG-2 to H.264 because we find that a lot of MPEG-2 is pushed to the limits on bitrate already and going much lower causes artifacts. In your case a 30% reduction would be about 2500.

If file size is truly your primary concern then I would recommend reducing the resolution. By reducing the number of pixels that need to be encoded you can lower the bitrate further without creating these artifacts. If this video is actually 16:9 and letterboxed then cropping the black and setting the resolution to 544x360 should allow you to reduce the bitrate to 1900 without any ill effects and you might even be able to get away with 1500. Reducing the resolution even more would allow you to go even lower.

Also make sure to set the max bitrate to at least 150% of the average. Our encoder doesn't do all that great when the average and max are too close together.
 

msmart

New member
That's good info Dan. I'll try 50% first to see what it looks like and will post back.

The video is 4:3, I just used 16:9 because of the cropping to keep it from getting tall/thin. I was cropping out the black bars thinking it would keep the file size smaller. I realized that it doesn't matter so I'm not cropping any longer so I'll keep the apect ratio at 4:3.

I could reduce the resolution to 320x240 and it probably would still look good on the iPod and iPad but occasionally we'll transfer the video back to the TiVo to watch on TV. The smaller resolution might not look so good on the TV. Don't know for sure as I haven't tested it.
 

Dan203

Senior Developer
Staff member
I was cropping out the black bars thinking it would keep the file size smaller. I realized that it doesn't matter so I'm not cropping any longer so I'll keep the apect ratio at 4:3.
Actually it could. By cropping the black bars and reducing the number of pixels that need to be encoded you should be able to reduce the bitrate which will in turn reduce the file size. Then again, because of the way temporal compression works, it doesn't require many bits to encode solid black so you may not be able to reduce the bitrate very much.

Not: If you use an Intelligent profile set to Quality Factor mode and set the MPEG-2 > H.264 ratio to 50% it will calculate the bitrate automatically based on the source. It will also adjust for any cropping or resizing you do. It's a lot easier then doing all the math yourself
 

msmart

New member
I'm trying to set up an intelligent profile set to Quality but it's only available when the File type is set to MP4 File (Generic). It's not available in the MP4 File (iPod) type. Will using the MP4 File (Generic) file type still create a file I can import into iTunes and ultimately play on an iPod/iPad?

As for the black bars, I didn't see much difference in file size between cropped and uncropped files. That led me to the decision to not worry about cropping. Besides, even when cropped, black areas above/below the video would be present when played back so it doesn't matter if they're encoded in the video.
 

Dan203

Senior Developer
Staff member
Any profile can be Intelligent. The default iPod ones are not, but you can change them to be if you want. The easiest way would be to just create a copy of the MP4 Generic profile and then change the file type to MP4 (iPod). Then edit the Quality options in the Advanced section to account for the file size you want. The default is for the QF to be 70% when doing MPEG-2 to H.264 encoding. You can go down as low as 50% if you want.
 
Top Bottom