[Mesa-dev] [PATCH v3] st/vdpau: change the order in which filters are applied(v3)

Nayan Deshmukh nayan26deshmukh at gmail.com
Thu Aug 25 09:58:24 UTC 2016


ping

On Mon, Aug 22, 2016 at 7:49 PM, Nayan Deshmukh
<nayan26deshmukh at gmail.com> wrote:
> Hi Christian,
>
> I checked the height/width of the surface. I get a luma channel with
> the original size. The Cb and Cr
> channel with height/2 and width/2. I had tested videos with 4:2:0
> chroma format. But I still get the
> artifacts.
>
> I thought that a possible reason could be that the Cb and Cr should be
> first interpolated to the original
> and then only we can apply the filter. So, I tried to use a temporary
> buffer with original size and
> writing on it. But I was still getting the artifacts. But since the
> interpolation that would occur in matrix
> filter would use the nearest neighbor so I tried to do it using linear
> interpolation and the artifacts were
> reduced but still, there were minor artifacts.
>
> Regards,
> Nayan.
>
> On Fri, Aug 19, 2016 at 5:57 PM, Christian König
> <christian.koenig at amd.com> wrote:
>> Hi Nayan,
>>
>> double check the width/height of the surface and also how many you got with
>> a debugger.
>>
>> Actually thinking more about it it could be that top/bottom fields are
>> separated and so you got width&height/2 and width/2&height/4 compared to the
>> video mixer.
>>
>> Maybe try your idea instead of caching the initialized filters with the
>> different sizes.
>>
>> Regards,
>> Christian.
>>
>>
>> Am 18.08.2016 um 18:58 schrieb Nayan Deshmukh:
>>>
>>> Hi Christian,
>>>
>>> I tried using 3 instances of the filter with original height & width,
>>> height/2 & width and height/2 and width/2.
>>> I am applying the 3 filters by checking the width and height of
>>> surfaces respectively.
>>>
>>> The chroma artifacts are still present, different from the initial
>>> ones. Any suggestion for the fixup?
>>> I tried debugging, but I think I am missing something.
>>>
>>> Regards,
>>> Nayan.
>>>
>>> On Wed, Aug 17, 2016 at 2:59 PM, Andy Furniss <adf.lists at gmail.com> wrote:
>>>>
>>>> Christian König wrote:
>>>>>
>>>>> Top and Bottom field are separated in this representation.
>>>>>
>>>>> So you got a maximum of 3 planes multiplied by two fields.
>>>>
>>>>
>>>> Ahh, thanks.
>>>>
>>>>
>>>>> Regards,
>>>>> Christian.
>>>>>
>>>>> Am 17.08.2016 um 11:11 schrieb Andy Furniss:
>>>>>>
>>>>>> Nayan Deshmukh wrote:
>>>>>>
>>>>>>> Sorry for the misleading language. What I meant was that the filter
>>>>>>> should only
>>>>>>> be applied to first resource i.e. use only first sampler_view and
>>>>>>> surface. As you
>>>>>>> replaced i by 0 the filter gets applied multiple times. I tried doing
>>>>>>> that and I am
>>>>>>> experiencing same problems i.e. artifacts with positive sharpen.
>>>>>>>
>>>>>>> So can you please it try it again by replacing VL_MAX_SURFACES with 1
>>>>>>> in the
>>>>>>> for loop. It should probably fix the problems.
>>>>>>
>>>>>>
>>>>>> Possibly a stupid question, because I don't know how this stuff works,
>>>>>> but why does it loop 6 times per frame rather than 3?
>>>>>>
>>>>>> I mean as seen if I put a printf as below.
>>>>>>
>>>>>>>>>>>> +   for(i = 0; i < VL_MAX_SURFACES; ++i) {
>>>>>>>>>>>> +      if(sampler_views[i] != NULL && surfaces[i] != NULL) {
>>>>>>
>>>>>>                   fprintf(stderr,"ADF: i = %d\n", i);
>>>>>>>>>>>>
>>>>>>>>>>>> +         if (vmixer->noise_reduction.filter)
>>>>>>>>>>>> + vl_median_filter_render(vmixer->noise_reduction.filter,
>>>>>>>>>>>> +                                    sampler_views[i],
>>>>>>>>>>>> surfaces[i]);
>>>>>>>>>>>> +
>>>>>>>>>>>> +         if (vmixer->sharpness.filter)
>>>>>>>>>>>> + vl_matrix_filter_render(vmixer->sharpness.filter,
>>>>>>>>>>>> +                                    sampler_views[i],
>>>>>>>>>>>> surfaces[i]);
>>>>>>
>>>>>>
>>>>>
>>


More information about the mesa-dev mailing list