View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000090 | JVT JM H.264/AVC reference software | encoder | public | 2008-01-14 15:28 | 2008-01-22 14:26 |
Reporter | Daniel Pinçon | Assigned To | Karsten Suehring | ||
Priority | normal | Severity | block | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | JM 13.2 | ||||
Fixed in Version | JM-14.0 | ||||
Summary | 0000090: 4:2:2 Intra Coding | ||||
Description | I get the message: >Use RcUpdateMode = 1 for all intra or all B-slice coding< I would like to perform a 4:2:2 INTRA coding, the RcUpdateMode value is 1. Why is this message always blocking the process??? Thanx for help. | ||||
Tags | No tags attached. | ||||
|
Heap Corruption DETECTED: after normal block (#14827) at 0x013967cb. CRT detected that the application wrote to memory after end to heap buffer. |
|
Can not read 921600 bytes from input file, unexpected EOP? |
|
Can you please provide your encoder config file? What are the values of "FrameSkip" and "NumberBFrames" ? |
2008-01-15 15:16
|
|
|
config file is uploaded. FrameSkip value is "0", aligned to the number of B-frames, because in my case I only make use of INTRA coding. If I take a picture of 720p50 I get a debug error message: >Heap Corruption DETECTED: after normal block (12298) at 0x01365810. CRT detected that the application wrote to memory after end to heap buffer.< When using a resolution of 1920*1080i25, changing the image format to 1920x1080, Freq. for encoded bitstream to 25, and the LevelIDC to 5.1 with the same configurations I get a warning message: too many slices per picture, increase MAXSLICEPERPICTURE in global.h. |
|
When you encode full HD you have 1920x1080/256 = 8100 macroblocks. With 50 macroblocks/slice you have 162 slices. Per default the decoder is restricted to 100 slices to save memory. You can change that (as noted in the error message) by increasing the #define MAXSLICEPERPICTURE I have not tested yet with your config file. But this might be a memory allocation problem. If you are not encoding with more than 8bpp you can change in defines.h (both encoder and decoder) #define IMGTYPE 1 to #define IMGTYPE 0 Which will reduce the amount of allocated memory. |
|
I have changed the IMGTYPE 1 to 0, and then created a new lencod.exe file, but I get the same warning message. I´m using a AMD 64 Processor 3500+ 2,2GHz with 1 GB RAM. This should be enough. I think I have probably an incorrect setting in the config file. Can you please check it?! |
|
Did you change MAXSLICEPERPICTURE as well? |
|
Could you please also try disabling "RDPictureDecision" in the config file? |
|
Yesterday I changed everything even the "RDPictureDecision", but I get the same debug error message. Today, I changed following parameters and now it works fine. Intraprofile=0, IntraPeriod=0, IDRPeriod=0, NumberReferenceFrames=1. The RDPictureDecision setting only provides an economy of time, because the encoder don´t select the best encoding, but only take one. I changed the MAXSLICEPERPICTURE to 200 and know it works fine for 1920*1080i25. |
|
The encoder is working fine, but when I look at the result I was very surprised. The compressed image has a lot of stripes in it. Look uploaded picture as reference (test_rec.yuv). Something is not working exactly, when calculating the lines. Do you have a solution? |
2008-01-16 16:07
|
|
2008-01-18 14:51
|
|
|
Can you please try the attached jm-13.2-dev-suehring-a1.zip? I have fixed some memory allocation issues and enabled the deblocking filter via the decoder.cfg file (intra only has a conformance point before deblocking, therefore the decoder did not deblock, except when specified by command line) I believe the missing deblocking has pretty strong effect when the source material is not in the proper raw format. The attached version worked for me with you config file. I only changed the resolution to 1920x1080. |
|
The source is a *.YUV16 and the resolution is 1280*720p50. So why did you change the resolution to *19201080 ? It doesn´t work with your new file the result is the same than before. Stripes in the test_rec picture. |
|
With 8 bit per pel setting in the config file the encoder reads also 8bpp from the file. So this might be indeed a raw file reading issue. |
|
1. A very helpful advice.. Can you please give me a real advice to solve the problem?! 2. Please describe where I can change the setting in config-file for the 8 bpp? --> I don´t know where I can change this setting! I can´t find it! 3. What did you change since the version JM12.2? --> With this version the encoding is working fine. No stripes in the test_rec picture. |
|
1) If your source material is 16 bit, you need to scale it down to the proper bit depth. With more that 8 bit per sample the JM encoder uses the lower n bits of a 16 bit word (in Intel Byte order), with 8 bits the file consists of byte-size samples. 2) The simplest way for down conversion would be right-shifting of the samples. But for many materials there are more suitable color conversion methods, which are out of the scope of the JM software. So you are required to convert the file outside with another application. 3) simple answer: see CHANGES.txt Well, I think I'm now finally seeing the same "stripes" that you are describing. I believe this looks like a bug in the forward transform. |
|
I found the problem: in dct_chroma() the call to forward4x4 used a wrong index order: change: forward4x4(curr_res, curr_res, n1, n2); to: forward4x4(curr_res, curr_res, n2, n1); |
|
fixed 4:2:2 forward transform and memory allocations for num_ref_frames=0 |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-01-14 15:28 | Daniel Pinçon | New Issue | |
2008-01-14 15:45 | Daniel Pinçon | Note Added: 0000138 | |
2008-01-14 16:04 | Daniel Pinçon | Note Added: 0000139 | |
2008-01-15 12:51 | Karsten Suehring | Note Added: 0000142 | |
2008-01-15 12:51 | Karsten Suehring | Status | new => feedback |
2008-01-15 15:16 | Daniel Pinçon | File Added: encoder.cfg | |
2008-01-15 15:40 | Daniel Pinçon | Note Added: 0000144 | |
2008-01-15 16:14 | Karsten Suehring | Note Added: 0000145 | |
2008-01-15 16:51 | Daniel Pinçon | Note Added: 0000146 | |
2008-01-15 17:11 | Karsten Suehring | Note Added: 0000147 | |
2008-01-15 17:17 | Karsten Suehring | Note Added: 0000148 | |
2008-01-16 13:31 | Daniel Pinçon | Note Added: 0000149 | |
2008-01-16 13:32 | Daniel Pinçon | Note Edited: 0000149 | |
2008-01-16 13:55 | Daniel Pinçon | Note Edited: 0000149 | |
2008-01-16 16:07 | Daniel Pinçon | Note Added: 0000150 | |
2008-01-16 16:07 | Daniel Pinçon | File Added: test_rec.yuv | |
2008-01-18 14:48 | Karsten Suehring | File Added: jm-13.2-dev-suehring-a1.zip | |
2008-01-18 14:49 | Karsten Suehring | File Deleted: jm-13.2-dev-suehring-a1.zip | |
2008-01-18 14:51 | Karsten Suehring | File Added: jm-13.2-dev-suehring-a1.zip | |
2008-01-18 14:57 | Karsten Suehring | Note Added: 0000151 | |
2008-01-21 11:00 | Daniel Pinçon | Note Added: 0000153 | |
2008-01-21 11:30 | Karsten Suehring | Note Added: 0000154 | |
2008-01-21 13:46 | Daniel Pinçon | Note Added: 0000156 | |
2008-01-21 13:48 | Daniel Pinçon | Note Edited: 0000156 | |
2008-01-21 15:43 | Karsten Suehring | Note Added: 0000157 | |
2008-01-22 14:14 | Karsten Suehring | Note Added: 0000158 | |
2008-01-22 14:26 | Karsten Suehring | Status | feedback => resolved |
2008-01-22 14:26 | Karsten Suehring | Fixed in Version | => JM-13.2-dev |
2008-01-22 14:26 | Karsten Suehring | Resolution | open => fixed |
2008-01-22 14:26 | Karsten Suehring | Assigned To | => Karsten Suehring |
2008-01-22 14:26 | Karsten Suehring | Note Added: 0000160 |