x264 source for verification 2026-05-22
This commit is contained in:
48
common/opencl/weightp.cl
Normal file
48
common/opencl/weightp.cl
Normal file
@@ -0,0 +1,48 @@
|
||||
/* Weightp filter a downscaled image into a temporary output buffer.
|
||||
* This kernel is launched once for each scale.
|
||||
*
|
||||
* Launch dimensions: width x height (in pixels)
|
||||
*/
|
||||
kernel void weightp_scaled_images( read_only image2d_t in_plane,
|
||||
write_only image2d_t out_plane,
|
||||
uint offset,
|
||||
uint scale,
|
||||
uint denom )
|
||||
{
|
||||
int gx = get_global_id( 0 );
|
||||
int gy = get_global_id( 1 );
|
||||
uint4 input_val;
|
||||
uint4 output_val;
|
||||
|
||||
input_val = read_imageui( in_plane, sampler, (int2)(gx, gy));
|
||||
output_val = (uint4)(offset) + ( ( ((uint4)(scale)) * input_val ) >> ((uint4)(denom)) );
|
||||
write_imageui( out_plane, (int2)(gx, gy), output_val );
|
||||
}
|
||||
|
||||
/* Weightp filter for the half-pel interpolated image
|
||||
*
|
||||
* Launch dimensions: width x height (in pixels)
|
||||
*/
|
||||
kernel void weightp_hpel( read_only image2d_t in_plane,
|
||||
write_only image2d_t out_plane,
|
||||
uint offset,
|
||||
uint scale,
|
||||
uint denom )
|
||||
{
|
||||
int gx = get_global_id( 0 );
|
||||
int gy = get_global_id( 1 );
|
||||
uint input_val;
|
||||
uint output_val;
|
||||
|
||||
input_val = read_imageui( in_plane, sampler, (int2)(gx, gy)).s0;
|
||||
//Unpack
|
||||
uint4 temp;
|
||||
temp.s0 = input_val & 0x00ff; temp.s1 = (input_val >> 8) & 0x00ff;
|
||||
temp.s2 = (input_val >> 16) & 0x00ff; temp.s3 = (input_val >> 24) & 0x00ff;
|
||||
|
||||
temp = (uint4)(offset) + ( ( ((uint4)(scale)) * temp ) >> ((uint4)(denom)) );
|
||||
|
||||
//Pack
|
||||
output_val = temp.s0 | (temp.s1 << 8) | (temp.s2 << 16) | (temp.s3 << 24);
|
||||
write_imageui( out_plane, (int2)(gx, gy), output_val );
|
||||
}
|
||||
Reference in New Issue
Block a user