Re: [PATCH 2/2] media: coda: Add more H264 levels for CODA960

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le lundi 20 juillet 2020 à 12:09 -0400, Nicolas Dufresne a écrit :
> Le vendredi 17 juillet 2020 à 09:48 +0200, Philipp Zabel a écrit :
> > Hi Ezequiel, Nicolas,
> > 
> > On Fri, 2020-07-17 at 00:49 -0300, Ezequiel Garcia wrote:
> > > From: Nicolas Dufresne <nicolas.dufresne@xxxxxxxxxxxxx>
> > > 
> > > This add H264 level 4.1, 4.2 and 5.0 to the list of supported formats.
> > > While the hardware does not fully support these levels, it do support
> > > most of them.
> > 
> > Could you clarify this? As far as I understand the hardware supports
> > maximum frame size requirement for up to level 4.2 (8704 macroblocks),
> > but not 5.0, and at least the implementation on i.MX6 does not support
> > the max encoding speed requirements for levels 4.1 and higher.
> > 
> > I don't think the firmware ever produces any output with a level higher
> > than 4.0 either, so what is the purpose of pretending otherwise?
> 
> Nothing is very explicit in the user manual, they speak in term of
> resolution and framerate. They claim 1080p 30fps for encoding, and
> 1080p 60fps for decoding. For the encoder, there is an auto selection
> for the level, and the documentation is maxed to 4.0, and so I would
> agree that 4.0 is the max encoding level. Wikipedia also list "1,920×1,
> 080@30.1 (4)" so 1080p30 with 4 frame references as being an example of
> 4.0 maximum. So V2 of this patchset should make sure that for the
> encoder this stays there.
> 
> On the decoding side, what I found is that there is an error bit
> indicator called LEVELID (bit 19) that indicates that SPS level_idc
> wasn't accepted. The error is described as "Supported up to 51.". So
> basically there is some extra contraints that least to 4.2 as you
> describe, and above 5.1 is an hard failure. That imho creates a grey-
> zone. If we think of DASH/HLS, the information usually comes with
> Resolution/Framerate/Codec/Profile/Level, and in this context, you can
> enable 5.1 safely assuming the Resolition/Framerate/Profile are already
> verified. But if you only wanted to use the level, then you could
> prefer the driver to expose a max of 4.2.
> 
> So do you have an opinion on the way forward ? Personally I like the
> idea of giving the list of level_idc that won't cause the parser to
> reject it, and leave it to the user to validate the
> Resolution/Framerate seperatly, we have the V4L2 API for that. Let me
> know, as we'll use that for V2.

Dropping some extra information I received, the CODA960 is designed to
run at 352MHz, but on IMX.6 we run it at 264MHz. Means that CODA960 on
IMX.6 is special, it under-perform the spec by 25%, so it's more of a
1080p45 decoder. At this level of variation, it sounds like that should
endup in per SoC, since you could design an IMX.6 board with better
heat dissipation that could support 352.

> 
> > regards
> > Philipp
> > 

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux