[Live-devel] RFC 2435 compliance

Guy.Bonneau at miranda.com Guy.Bonneau at miranda.com
Tue Dec 3 18:54:10 PST 2013


I didn't looked at appendix B. But given that at page 7 of the RFC it is 
stated: "...Each table is an array of 64 values given in zig-zag order, 
identical to the format used in a JFIF DQT marker segment..." then I agree 
that it couldn't be possible to use all the code of the RFC specification. 
The fact that the quantization table is not zig-zag ordered lead to 
confusion.

Guy



From:   Alexandr Němec <a.nemec at atlas.cz>
To:     LIVE555 Streaming Media - development & use 
<live-devel at ns.live555.com>, 
Date:   2013-12-01 18:42
Subject:        Re: [Live-devel] RFC 2435 compliance
Sent by:        live-devel-bounces at ns.live555.com



Hi Guy,
 
thanks for your posting. I understand your point, but I still think there 
is a problem with the RFC. Yes, appendix A says, that you can use the 
example code to compute a quantization table only (zigzag does not really 
matter), nothing wrong here. But later, in Appendix B it says (comment 
before MakeHeaders) that you can use the MakeTables routine from Appendix 
A to generate the quantization tables lqt and cqt as input for the 
MakeHeaders routine. Then, in MakeHeaders (MakeQuantHeader) "memcpy" is 
used to insert quantization table data into the JPEG header. And because 
Appendix B also says that MakeHeaders can be used to "generate a JPEG 
copressed image in interchange format", following these rules and 
instructions will lead to a corrupted JPEG image.
 
So what I want to say, it is just not possible to take all the RFC example 
code "as is" for a working implementation.
 
Best regards
 
Alex
______________________________________________________________
> Od: <Guy.Bonneau at miranda.com>
> Komu: "LIVE555 Streaming Media - development & use" 
<live-devel at ns.live555.com>
> Datum: 29.11.2013 20:35
> Předmět: Re: [Live-devel] RFC 2435 compliance
>
There is no issue with the RFC 2435 AppendixA neither with the live555 
procedure to scale a quantization table witha Q factor.  Both are 
correct.. If you read the header of AppendixA it clearly states the reason 
of the example code :  "The following code can be used to create a 
quantization table froma Q factor..." Now when you recompute the 
quantization table froma selected Q factor your only scale the 64 
quantization values by the samefactor. Doing the procedure on zigzag order 
on doing it on "standard"non-zigzag order doesn't matter. It will yield 
the same "scaled quantizationfactor". 

Jpeg encoding/decoding of spectral component of thepicture operate on 
block of 64 values. Those value must be processed inzigzag order. If you 
use a zigzaged table then the encoding/decoding onlyincrement the index of 
the quantization value in the table to get the goodquantization value. 
However if you use a non-zigzag table then the encoding/decodingmust find 
and pick-up the good quantization inside the table. This is upto the 
implementation of the code.

Guy Bonneau_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


DISCLAIMER:
Privileged and/or Confidential information may be contained in this
message. If you are not the addressee of this message, you may not
copy, use or deliver this message to anyone. In such event, you
should destroy the message and kindly notify the sender by reply
e-mail. It is understood that opinions or conclusions that do not
relate to the official business of the company are neither given
nor endorsed by the company.
Thank You.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20131203/e051e204/attachment.html>


More information about the live-devel mailing list