We really need a way to optimize the quality of the resulting video, which is suboptimal. except the deblocking filter, which produces a good smoothing, we cannot find anything else which provides a real improvement. could you suggest anything?
here's a visual example. (B) supposed to be much superior to (A), but still, we cannot really see ANY difference.
any ideas? any explanations?
A. http://img33.imageshack.us/img33/5813/low400kbpsdeblockingh26.jpgthis image uses baseline profile (66), deblocking filter and2 1 1 /* num_ref_frames (2-16), minimum length of list1 for backward prediction , number of slices. */3 0 4 4 /* ME method (1-6), subblock split, search x,search_y */1 0 /* direct type (0 - temporal 1 - spatial 2 - auto); direct_inference_flag */2 /* picture coding type */
B> http://img638.imageshack.us/img638/8797/low400kbpslatesthh264hi.jpgthis one is when using high profile, deblocking and
8 1 1 /* num_ref_frames (2-16), minimum length of list1 for backward prediction (only 1 is supported!), number of slices. */2 2 12 12 /* ME method (1-6), subblock split, search x,search_y */1 1 /* direct type (0 - temporal 1 - spatial 2 - auto); direct_inference_flag */0 /* picture coding type */
I found there are problems with IPP H264 Encoder, which creates much bigger encoded size than original h264 stream.
Have you try to increase bitrate? This may generate better image. I know to increaes the bitrate probably is not you are asking.
If I'm not mistaken you're trying to encode a relatively high resolution video at low bitrate "400kbit/sec", so in general your expectations for a video quality should not be too high.
Some ideas to consider:
a) try pre-processing of input video
b) set-up more agressive deblocking filtering using offsets
c)try to use these tools:8x8 transform, CABAC, B-frames, multiple ref. frames, don't use INTER sub-partitions smaller than 8x8, use hpel and qpel accurate motion vectors
d) use good rate control scheme
Thank you SO MUCH for this reply. this is a huge help, and we are going to try all the above suggestions. We already improved much our pre-processing (resizing, deinterlacing) in recent days, and I wondered if you could elaborate a little on the other suggestions.
specifically, when we looked on h264.par we couldn't find an exact wording that would point to deblocking offsets and half/quarter pixel motion estimation. could you point us maybe?
also, what would be a good rate control scheme? we see in h264.parRC method(0 - quant_codes, 1 - CBR MBwise, 2 - CBR framewise, 3 - Debug) - what do you think we should use? what would be good "start qp values for I, P, B slices" that would improve quality?
I guess we sound like total newbies - which we are, using the h264.par as-is. we are learning on the go, and it just take time to read the books :) (but we are).
in any case, again, very grateful for your help,
For Rate control method, you can choose 2, here are some sample par files for H.264 encoding, it may provide some help: