From patchwork Mon Aug 13 19:28:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gagandeep Singh X-Patchwork-Id: 9976 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:104:0:0:0:0:0 with SMTP id c4-v6csp3513063jad; Mon, 13 Aug 2018 12:29:02 -0700 (PDT) X-Google-Smtp-Source: AA+uWPy5NZ6ZmmUBT/59/JhQ+NAhQZS9PfDKTSxR6cktSuhQwONaC/Bk6psJHskU6sRdGmP4ofSw X-Received: by 2002:a1c:36db:: with SMTP id y88-v6mr8537291wmh.71.1534188542846; Mon, 13 Aug 2018 12:29:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534188542; cv=none; d=google.com; s=arc-20160816; b=lSz6ypZGdUvOKt9zRhZTlnJQUy4jaS+HUUOXEPaz/tpEfpcu0ygxqI58SF4QdIxcRn 0GBhAZpT6Byta3HEF2R7OXWnffZOFecWAwN7Rw4iiG6TA4blzr0qZEzeeDJXrJrv3zDn exmt+PQaIJcIi4uIL4z6P69NeRT1s/RRzc+cz1chtt5TakZdulo8vw6+SBrIAE/XaR54 ZSTGJ/SX7+WWFDbya3qgaf5veKM18+WRnYqurT3GHGH0AOVHTHdj+ZRaE1OKGWFfQjvi aC/i8zlrPIfZGQW+s47i24IXruX/UTzAuDkQua52UKCZj+M3AC947r+YfBDqqUO9XLwf Flxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=FioRUGCV/tOs5+M9M/b7cuRGkzgqJdvSVumoKjNtzZ4=; b=VWrqNHe7Oe8lU+YPmn8uxFbxJS2GICcCHnpjVmnF2mN/Z/Fn+2FkEvwnh3FuEsE1P+ abIa5t+1/5MDT1+9FAABoPIocduB6NBkQkL9VjIt++6Gmi14c+U5nI3dkXbLnksSPscY 6S5UMftKb9vwKOmy5n+F32VRisQa7XlkF0sTMVURiCsUTXt5DvHCwA+rjx8kVPmVhONE 1bbNf6yD9Z29GEWGX18KLmJ739FO5dLn4Gd65JHOrQeMNFY+1sv5OSMaiQURlwlGin7q HPoWdc3BxPPD488NoHEfF74ge31CQaLmjcKPtnCxT9qBV0xrzKwkgbdy5sIn/7b+tiD/ 7iJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=DSkaYdqn; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id k9-v6si12521588wrm.225.2018.08.13.12.29.02; Mon, 13 Aug 2018 12:29:02 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=DSkaYdqn; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F01EA68A447; Mon, 13 Aug 2018 22:28:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A1DBA68A30C for ; Mon, 13 Aug 2018 22:28:30 +0300 (EEST) Received: by mail-pf1-f175.google.com with SMTP id d4-v6so8134276pfn.0 for ; Mon, 13 Aug 2018 12:28:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=NwqqqgnQPfBEUeQ635YYjnthewn/QeWxEFdZKqqCH7Y=; b=DSkaYdqnG+ZnjMXCoagkBJvID5tuVKH5snYgkq9LOBeVcBFq2f/fXCevO6nRqrUJ5S MuRycrz8IQVaUOJ32ADDHmwggZrFy0npGehk8m3Fb5PdBH1LLI34/R2LQ90N5zkgUnRF U8gfHR3VKCHlQE2DX2S76DqOc2yGNLbCPUw9GOW+P1uXXbnyuVumoA65Jz0Swzyqe/Om /KkkXVI4u5CjW4COJcNum3P1SV5T/dT1Y42fM7uBbIwyk2MZWVZsq/92zpLjY4kU/cwP iky7Tz42GF1HDTArY3dN2kSmM/tAv0S0e+IY93HYfIQeOEYDkAWrfuCVpNUFHuEaFiWp UFTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=NwqqqgnQPfBEUeQ635YYjnthewn/QeWxEFdZKqqCH7Y=; b=aiD4NmnewwxTqrCMfCKcnPDAEKWKZ06a9Tco+m7oGiDXa5KzGYNDCl2BDgfUFfpJwQ wIKXlIbtnq4S4KFngFnjO4B1JnH8oLbxOD8ChSACOUWCV7nkcD3+2OcMQ4qPQXpAbPen Y6oAY6RRLL7w6uHg1RK61X+44zxPlVkFqII5GydPmxoNzx5rfXFjX/zmGA86G0n3Nakp UnAW5t9KSMD3JlJfT/YL8urFSZtnJFULoCINX4x+CIm+4HLXY2ihZ31LhHgfNBDiOTZX 7uBnsqV+8Z9aPZrLi5yLOq2PAfvwsrQEHnvIXIZ0n3M5tDKJbaQjuD/c7mpl1cWpW1Hg Ni4Q== X-Gm-Message-State: AOUpUlGtJwlzCGDvigOoJzc0YMZ4ImXAlWdGXoTbTFY3xs23AfX+4NYO ASEXoXjBXcgEAfD2/Wlcqc8twssqJMQ= X-Received: by 2002:a62:93d4:: with SMTP id r81-v6mr20032588pfk.55.1534188532568; Mon, 13 Aug 2018 12:28:52 -0700 (PDT) Received: from gagandeep-Aspire-VX5-591G.cse.iitk.ac.in ([125.17.242.34]) by smtp.googlemail.com with ESMTPSA id t9-v6sm36086716pgi.87.2018.08.13.12.28.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Aug 2018 12:28:52 -0700 (PDT) From: Gagandeep Singh To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Aug 2018 00:58:43 +0530 Message-Id: <20180813192843.27474-1-deepgagan231197@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [GSOC][PATCH] lavc/cfhd:corrected decompanding for table 9 used in cfhd X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Gagandeep Singh MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavcodec/cfhd.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c index 3906d7a86d..2c538f0bbd 100644 --- a/libavcodec/cfhd.c +++ b/libavcodec/cfhd.c @@ -114,7 +114,30 @@ static inline int dequant_and_decompand(int level, int quantisation, int codeboo { if (lossless) return level; - if (codebook == 0 || codebook == 1) { + if (codebook == 0) { + if (level >= 40 && level < 264) { + if (level >= 54) { + level -= 54; + level <<= 2; + level += 54; + } + level -= 40; + level <<= 2; + level += 40; + } else if (level <= -40) { + level = -level; + if (level >= 54) { + level -= 54; + level <<= 2; + level += 54; + } + level -= 40; + level <<= 2; + level += 40; + level = -level; + } + return level * quantisation; + } else if (codebook == 1) { int64_t abslevel = abs(level); if (level < 264) return (abslevel + ((768 * abslevel * abslevel * abslevel) / (255 * 255 * 255))) *