From 49cd3954545820e827db3d6c93c55539e9fd0506 Mon Sep 17 00:00:00 2001 From: Elian Dib <elian.di@laposte.net> Date: Mon, 8 Jun 2020 03:35:46 +0200 Subject: [PATCH] Added interpMeth parameter in read --- read.m | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/read.m b/read.m index 25800fb..097efd4 100644 --- a/read.m +++ b/read.m @@ -53,12 +53,14 @@ fullRange = true; p.addParameter( 'inColSpace', 'rgb' , @ischar); p.addParameter('outColSpace', 'ycbcr', @ischar); p.addParameter('fullRange', fullRange , @islogical); +p.addParameter('interpMeth', 'nearest', @ischar); p.parse(varargin{:}); inColSpace = p.Results.inColSpace; outColSpace = p.Results.outColSpace; fullRange = p.Results.fullRange; +interpMeth = p.Results.interpMeth; precision = ['uint',num2str(max(8,2^ceil(log2(bitDepth))))]; @@ -87,8 +89,13 @@ switch subSamp xgv = 1.5:2:imgSize(1); ygv = 1:2:imgSize(2); end +% Add small offset to ensure correct nearest neighbour interpolation +if any(strcmp(subSamp,{'422','420'})) && strcmp(interpMeth,'nearest') + ygv = ygv + 0.25; +end + subImgSize = [numel(xgv),numel(ygv)]; -UV = griddedInterpolant({xgv,ygv},zeros(subImgSize),'linear','nearest'); +UV = griddedInterpolant({xgv,ygv},zeros(subImgSize),interpMeth,'nearest'); %% Read frames iteratively %filename = yuv.params2name(filename,imgSize,imgRes,subSamp,bitDepth); -- GitLab