Typo fixes

This commit is contained in:
Tamius Han 2019-02-22 23:02:48 +01:00
parent fbd7aad9b9
commit d4cd1fd92e
8 changed files with 153 additions and 153 deletions

View File

@ -44,33 +44,33 @@ var ExtensionConf = {
// samplingInterval: 10, // we sample at columns at (width/this) * [ 1 .. this - 1]
blackframe: {
cumulativeTreshold: 2560, // if we add values of all pixels together and get more than this, the frame is bright enough.
// (note: blackframe is 16x9 px -> 144px total. cumulative treshold can be reached fast)
cumulativeThreshold: 2560, // if we add values of all pixels together and get more than this, the frame is bright enough.
// (note: blackframe is 16x9 px -> 144px total. cumulative threshold can be reached fast)
blackPixelsCondition: 0.6, // How much pixels must be black (1 all, 0 none) before we consider frame as black. Takes
// precedence over cumulative treshold: if blackPixelsCondition is met, the frame is dark
// regardless of whether cumulative treshold has been reached.
// precedence over cumulative threshold: if blackPixelsCondition is met, the frame is dark
// regardless of whether cumulative threshold has been reached.
},
blackbar: {
blackLevel: 10, // everything darker than 10/255 across all RGB components is considered black by
// default. blackLevel can decrease if we detect darker black.
treshold: 16, // if pixel is darker than the sum of black level and this value, we count it as black
threshold: 16, // if pixel is darker than the sum of black level and this value, we count it as black
// on 0-255. Needs to be fairly high (8 might not cut it) due to compression
// artifacts in the video itself
imageTreshold: 4, // in order to detect pixel as "not black", the pixel must be brighter than
// the sum of black level, treshold and this value.
gradientTreshold: 2, // When trying to determine thickness of the black bars, we take 2 values: position of
// the last pixel that's darker than our treshold, and position of the first pixel that's
// brighter than our image treshold. If positions are more than this many pixels apart,
imageThreshold: 4, // in order to detect pixel as "not black", the pixel must be brighter than
// the sum of black level, threshold and this value.
gradientThreshold: 2, // When trying to determine thickness of the black bars, we take 2 values: position of
// the last pixel that's darker than our threshold, and position of the first pixel that's
// brighter than our image threshold. If positions are more than this many pixels apart,
// we assume we aren't looking at letterbox and thus don't correct the aspect ratio.
gradientSampleSize: 8, // How far do we look to find the gradient
antiGradientMode: AntiGradientMode.Strict,
},
variableBlackbarTresholdOptions: { // In case of poor bitrate videos, jpeg artifacts may cause us issues
variableBlackbarThresholdOptions: { // In case of poor bitrate videos, jpeg artifacts may cause us issues
// FOR FUTURE USE
enabled: true, // allow increasing blackbar threshold
disableArDetectOnMax: true, // disable autodetection when treshold goes over max blackbar treshold
maxBlackbarTreshold: 48, // max threshold (don't increase past this)
thresholdStep: 8, // when failing to set aspect ratio, increase treshold by this much
disableArDetectOnMax: true, // disable autodetection when threshold goes over max blackbar threshold
maxBlackbarThreshold: 48, // max threshold (don't increase past this)
thresholdStep: 8, // when failing to set aspect ratio, increase threshold by this much
increaseAfterConsecutiveResets: 2 // increase if AR resets this many times in a row
},
sampling: {
@ -83,7 +83,7 @@ var ExtensionConf = {
enabled: true,
ignoreEdgeMargin: 0.20, // we ignore anything that pokes over the black line this close to the edge
// (relative to width of the sample)
imageTestTreshold: 0.1, // when testing for image, this much pixels must be over blackbarTreshold
imageTestThreshold: 0.1, // when testing for image, this much pixels must be over blackbarThreshold
edgeTolerancePx: 2, // black edge violation is performed this far from reported 'last black pixel'
edgeTolerancePercent: null // unused. same as above, except use % of canvas height instead of pixels
},
@ -98,12 +98,12 @@ var ExtensionConf = {
},
edgeDetection: {
sampleWidth: 8, // we take a sample this wide for edge detection
detectionTreshold: 4, // sample needs to have this many non-black pixels to be a valid edge
confirmationTreshold: 0, //
singleSideConfirmationTreshold: 0.3, // we need this much edges (out of all samples, not just edges) in order
detectionThreshold: 4, // sample needs to have this many non-black pixels to be a valid edge
confirmationThreshold: 0, //
singleSideConfirmationThreshold: 0.3, // we need this much edges (out of all samples, not just edges) in order
// to confirm an edge in case there's no edges on top or bottom (other
// than logo, of course)
logoTreshold: 0.15, // if edge candidate sits with count greater than this*all_samples, it can't be logo
logoThreshold: 0.15, // if edge candidate sits with count greater than this*all_samples, it can't be logo
// or watermark.
edgeTolerancePx: 1, // we check for black edge violation this far from detection point
edgeTolerancePercent: null, // we check for black edge detection this % of height from detection point. unused
@ -119,8 +119,8 @@ var ExtensionConf = {
textLineTest: {
nonTextPulse: 0.10, // if a single continuous pulse has this many non-black pixels, we aren't dealing
// with text. This value is relative to canvas width (%)
pulsesToConfirm: 10, // this is a treshold to confirm we're seeing text.
pulsesToConfirmIfHalfBlack: 5, // this is the treshold to confirm we're seeing text if longest black pulse
pulsesToConfirm: 10, // this is a threshold to confirm we're seeing text.
pulsesToConfirmIfHalfBlack: 5, // this is the threshold to confirm we're seeing text if longest black pulse
// is over 50% of the canvas width
testRowOffset: 0.02 // we test this % of height from detected edge
}

View File

@ -691,7 +691,7 @@ class ArDetector {
if(Debug.debug && Debug.debugArDetect){
console.log(`%c[ArDetect::frameCheck] edgeDetector returned this\n`, "color: #aaf", edgePost);
}
// console.log("SAMPLES:", blackbarSamples, "candidates:", edgeCandidates, "post:", edgePost,"\n\nblack level:", this.blackLevel, "tresh:", this.blackLevel + this.settings.active.arDetect.blackbar.treshold);
// console.log("SAMPLES:", blackbarSamples, "candidates:", edgeCandidates, "post:", edgePost,"\n\nblack level:", this.blackLevel, "tresh:", this.blackLevel + this.settings.active.arDetect.blackbar.threshold);
if (edgePost.status !== EdgeStatus.AR_KNOWN){
// rob ni bil zaznan, zato ne naredimo ničesar.
@ -798,7 +798,7 @@ class ArDetector {
}
return {
isBlack: (blackPixelCount/(cols * rows) > this.settings.active.arDetect.blackframe.blackPixelsCondition) ? true : cumulativeValue < this.settings.active.arDetect.blackframe.cumulativeTreshold,
isBlack: (blackPixelCount/(cols * rows) > this.settings.active.arDetect.blackframe.blackPixelsCondition) ? true : cumulativeValue < this.settings.active.arDetect.blackframe.cumulativeThreshold,
rowMax: rowMax,
colMax: colMax,
};
@ -811,9 +811,9 @@ class ArDetector {
// If we detect anything darker than blackLevel, we modify blackLevel to the new lowest value
const rowOffset = this.canvas.width * (this.canvas.height - 1);
let currentMin = 255, currentMax = 0, colOffset_r, colOffset_g, colOffset_b, colOffset_rb, colOffset_gb, colOffset_bb, bltreshold = this.settings.active.arDetect.blackbar.treshold;
let currentMin = 255, currentMax = 0, colOffset_r, colOffset_g, colOffset_b, colOffset_rb, colOffset_gb, colOffset_bb, blthreshold = this.settings.active.arDetect.blackbar.threshold;
// detect black level. if currentMax comes above blackbar + blackbar treshold, we know we aren't letterboxed
// detect black level. if currentMax comes above blackbar + blackbar threshold, we know we aren't letterboxed
for (var i = 0; i < sampleCols.length; ++i){
colOffset_r = sampleCols[i] << 2;
@ -829,8 +829,8 @@ class ArDetector {
currentMax
);
if (currentMax > this.blackLevel + bltreshold) {
console.log("CURRENT MAX:", currentMax, "BLACK LEVEL, treshold, bl+t", this.blackLevel, bltreshold, this.blackLevel+bltreshold)
if (currentMax > this.blackLevel + blthreshold) {
console.log("CURRENT MAX:", currentMax, "BLACK LEVEL, threshold, bl+t", this.blackLevel, blthreshold, this.blackLevel+blthreshold)
// we search no further
if (currentMin < this.blackLevel) {
this.blackLevel = currentMin;

View File

@ -53,8 +53,8 @@ class GuardLine {
check(image, fallbackMode){
// izračunaj enkrat in shrani na objekt
// calculate once and save object-instance-wide
this.blackbarTreshold = this.conf.blackLevel + this.settings.active.arDetect.blackbar.treshold;
this.imageTreshold = this.blackbarTreshold + this.settings.active.arDetect.blackbar.imageTreshold;
this.blackbarThreshold = this.conf.blackLevel + this.settings.active.arDetect.blackbar.threshold;
this.imageThreshold = this.blackbarThreshold + this.settings.active.arDetect.blackbar.imageThreshold;
// dejansko testiranje
// actual checks
@ -184,7 +184,7 @@ class GuardLine {
// robu (eden izmed robov je lahko v celoti črn)
// how many non-black pixels we need to consider this check a success. We only need to detect enough pixels
// on one edge (one of the edges can be black as long as both aren't)
var successTreshold = (this.conf.canvas.width * this.settings.active.arDetect.guardLine.imageTestTreshold);
var successThreshold = (this.conf.canvas.width * this.settings.active.arDetect.guardLine.imageTestThreshold);
var rowStart, rowEnd;
@ -196,9 +196,9 @@ class GuardLine {
var res = false;
if(Debug.debugCanvas.enabled && Debug.debugCanvas.guardLine){
res = this._ti_debugCheckRow(image, rowStart, rowEnd, successTreshold);
res = this._ti_debugCheckRow(image, rowStart, rowEnd, successThreshold);
} else {
res = this._ti_checkRow(image, rowStart, rowEnd,successTreshold);
res = this._ti_checkRow(image, rowStart, rowEnd,successThreshold);
}
if(res)
@ -212,9 +212,9 @@ class GuardLine {
if(Debug.debugCanvas.enabled && Debug.debugCanvas.guardLine){
res = this._ti_debugCheckRow(image, rowStart, rowEnd, successTreshold);
res = this._ti_debugCheckRow(image, rowStart, rowEnd, successThreshold);
} else {
res = this._ti_checkRow(image, rowStart, rowEnd,successTreshold);
res = this._ti_checkRow(image, rowStart, rowEnd,successThreshold);
}
return {success: res};
@ -230,7 +230,7 @@ class GuardLine {
// we track sections that go over what's supposed to be a black line, so we can suggest more
// columns to sample
if(image[i] > this.blackbarTreshold || image[i+1] > this.blackbarTreshold || image[i+2] > this.blackbarTreshold){
if(image[i] > this.blackbarThreshold || image[i+1] > this.blackbarThreshold || image[i+2] > this.blackbarThreshold){
if(firstOffender < 0){
firstOffender = (i - rowStart) >> 2;
offenderCount++;
@ -255,7 +255,7 @@ class GuardLine {
// we track sections that go over what's supposed to be a black line, so we can suggest more
// columns to sample
if(image[i] > this.blackbarTreshold || image[i+1] > this.blackbarTreshold || image[i+2] > this.blackbarTreshold){
if(image[i] > this.blackbarThreshold || image[i+1] > this.blackbarThreshold || image[i+2] > this.blackbarThreshold){
this.conf.debugCanvas.trace(i, DebugCanvasClasses.VIOLATION);
if(firstOffender < 0){
firstOffender = (i - rowStart) >> 2;
@ -277,10 +277,10 @@ class GuardLine {
return offenderCount;
}
_ti_checkRow(image, rowStart, rowEnd, successTreshold) {
_ti_checkRow(image, rowStart, rowEnd, successThreshold) {
for(var i = rowStart; i < rowEnd; i+=4){
if(image[i] > this.imageTreshold || image[i+1] > this.imageTreshold || image[i+2] > this.imageTreshold){
if(successTreshold --<= 0){
if(image[i] > this.imageThreshold || image[i+1] > this.imageThreshold || image[i+2] > this.imageThreshold){
if(successThreshold --<= 0){
return true;
}
}
@ -289,11 +289,11 @@ class GuardLine {
return false;
}
_ti_debugCheckRow(image, rowStart, rowEnd, successTreshold) {
_ti_debugCheckRow(image, rowStart, rowEnd, successThreshold) {
for(var i = rowStart; i < rowEnd; i+=4){
if(image[i] > this.imageTreshold || image[i+1] > this.imageTreshold || image[i+2] > this.imageTreshold){
if(image[i] > this.imageThreshold || image[i+1] > this.imageThreshold || image[i+2] > this.imageThreshold){
this.conf.debugCanvas.trace(i, DebugCanvasClasses.GUARDLINE_IMAGE);
if(successTreshold --<= 0){
if(successThreshold --<= 0){
return true;
}
} else {

View File

@ -16,7 +16,7 @@ class EdgeDetect{
this.sampleWidthBase = this.settings.active.arDetect.edgeDetection.sampleWidth << 2; // corrected so we can work on imageData
this.halfSample = this.sampleWidthBase >> 1;
this.detectionTreshold = this.settings.active.arDetect.edgeDetection.detectionTreshold;
this.detectionThreshold = this.settings.active.arDetect.edgeDetection.detectionThreshold;
this.init(); // initiate things that can change
}
@ -69,12 +69,12 @@ class EdgeDetect{
console.log("[EdgeDetect::findCandidates] cols a, b:", cols_a, cols_b);
this.colsTreshold = sampleCols.length * this.settings.active.arDetect.edgeDetection.minColsForSearch;
if (this.colsTreshold == 0)
this.colsTreshold = 1;
this.colsThreshold = sampleCols.length * this.settings.active.arDetect.edgeDetection.minColsForSearch;
if (this.colsThreshold == 0)
this.colsThreshold = 1;
this.blackbarTreshold = this.conf.blackLevel + this.settings.active.arDetect.blackbar.treshold;
this.imageTreshold = this.blackbarTreshold + this.settings.active.arDetect.blackbar.imageTreshold;
this.blackbarThreshold = this.conf.blackLevel + this.settings.active.arDetect.blackbar.threshold;
this.imageThreshold = this.blackbarThreshold + this.settings.active.arDetect.blackbar.imageThreshold;
// if guardline didn't fail and imageDetect did, we don't have to check the upper few pixels
// but only if upper and lower edge are defined. If they're not, we need to check full height
@ -131,10 +131,10 @@ class EdgeDetect{
}
// preglejmo, kateri kandidati so neprimerni. (Neprimerni so tisti, pri katerih se
// 'black' in 'image' razlikujeta za več kot settings.arDetect.blackbar.gradientTreshold)
// 'black' in 'image' razlikujeta za več kot settings.arDetect.blackbar.gradientThreshold)
//
// let's check which candidates are suitable. Suitable candidates have 'black' and 'image'
// components differ by less than settings.arDetect.blackbar.gradientTreshold
// components differ by less than settings.arDetect.blackbar.gradientThreshold
const res_top = [];
const res_bottom = [];
@ -143,11 +143,11 @@ class EdgeDetect{
if (this.settings.active.arDetect.blackbar.antiGradientMode === AntiGradientMode.Disabled) {
res_top.push({top: item.image, col: item.col});
} else if (this.settings.active.arDetect.blackbar.antiGradientMode === AntiGradientMode.Lax) {
if (item.image === undefined || item.image <= item.black + this.settings.active.arDetect.blackbar.gradientTreshold) {
if (item.image === undefined || item.image <= item.black + this.settings.active.arDetect.blackbar.gradientThreshold) {
res_top.push({top: item.image, col: item.col});
}
} else {
if ( item.image !== undefined && item.image <= item.black + this.settings.active.arDetect.blackbar.gradientTreshold) {
if ( item.image !== undefined && item.image <= item.black + this.settings.active.arDetect.blackbar.gradientThreshold) {
res_top.push({top: item.image, col: item.col});
}
}
@ -160,7 +160,7 @@ class EdgeDetect{
res_bottom.push({bottom: item.image, col: item.col});
} else {
if ( (item.image !== undefined || this.settings.active.arDetect.blackbar.antiGradientMode === AntiGradientMode.Lax)
&& item.image >= item.black - this.settings.active.arDetect.blackbar.gradientTreshold) {
&& item.image >= item.black - this.settings.active.arDetect.blackbar.gradientThreshold) {
res_bottom.push({bottom: item.image, col: item.col});
}
}
@ -365,7 +365,7 @@ class EdgeDetect{
// it could be watermark. It could be a dark frame. Let's check for watermark first.
if( edgesTop[0].distance < edgesBottom[0].distance &&
edgesTop[0].count < edgesBottom[0].count &&
edgesTop[0].count < this.conf.sampleCols.length * this.settings.active.arDetect.edgeDetection.logoTreshold){
edgesTop[0].count < this.conf.sampleCols.length * this.settings.active.arDetect.edgeDetection.logoThreshold){
// možno, da je watermark zgoraj. Preverimo, če se kateri od drugih potencialnih robov na zgornjem robu
// ujema s prvim spodnjim (+/- variance). Če je temu tako, potem bo verjetno watermark. Logo mora imeti
// manj vzorcev kot navaden rob.
@ -396,7 +396,7 @@ class EdgeDetect{
}
if( edgesBottom[0].distance < edgesTop[0].distance &&
edgesBottom[0].count < edgesTop[0].count &&
edgesBottom[0].count <this.conf.sampleCols.length * this.settings.active.arDetect.edgeDetection.logoTreshold){
edgesBottom[0].count <this.conf.sampleCols.length * this.settings.active.arDetect.edgeDetection.logoThreshold){
if(edgesBottom[0].length > 1){
var lowMargin = edgesTop[0].distance - alignMargin;
@ -429,11 +429,11 @@ class EdgeDetect{
// either the top or the bottom edge remains undetected, but we have one more trick that we
// can try. It also tries to work around logos.
var edgeDetectionTreshold = this.conf.sampleCols.length * this.settings.active.arDetect.edgeDetection.singleSideConfirmationTreshold;
var edgeDetectionThreshold = this.conf.sampleCols.length * this.settings.active.arDetect.edgeDetection.singleSideConfirmationThreshold;
if(edges.edgeCandidatesTopCount == 0 && edges.edgeCandidatesBottomCount != 0){
for(var edge of edgesBottom){
if(edge.count >= edgeDetectionTreshold)
if(edge.count >= edgeDetectionThreshold)
return {
status: EdgeStatus.AR_KNOWN,
blackbarWidth: edge.distance,
@ -447,7 +447,7 @@ class EdgeDetect{
}
if(edges.edgeCandidatesTopCount != 0 && edges.edgeCandidatesBottomCount == 0){
for(var edge of edgesTop){
if(edge.count >= edgeDetectionTreshold)
if(edge.count >= edgeDetectionThreshold)
return {
status: EdgeStatus.AR_KNOWN,
blackbarWidth: edge.distance,
@ -473,8 +473,8 @@ class EdgeDetect{
// roughly centered, we return true. Otherwise we return false.
// we also return true if we detect too much black
var blackbarTreshold, upper, lower;
blackbarTreshold = this.conf.blackLevel + this.settings.active.arDetect.blackbar.treshold;
var blackbarThreshold, upper, lower;
blackbarThreshold = this.conf.blackLevel + this.settings.active.arDetect.blackbar.threshold;
var middleRowStart = (this.conf.canvas.height >> 1) * this.conf.canvas.width;
@ -489,7 +489,7 @@ class EdgeDetect{
// preverimo na levi strani
// let's check for edge on the left side
for(var i = rowStart; i < midpoint; i+=4){
if(image[i] > blackbarTreshold || image[i+1] > blackbarTreshold || image[i+2] > blackbarTreshold){
if(image[i] > blackbarThreshold || image[i+1] > blackbarThreshold || image[i+2] > blackbarThreshold){
edge_left = (i - rowStart) >> 2;
break;
}
@ -498,7 +498,7 @@ class EdgeDetect{
// preverimo na desni strani
// check on the right
for(var i = rowEnd; i > midpoint; i-= 4){
if(image[i] > blackbarTreshold || image[i+1] > blackbarTreshold || image[i+2] > blackbarTreshold){
if(image[i] > blackbarThreshold || image[i+1] > blackbarThreshold || image[i+2] > blackbarThreshold){
edge_right = this.conf.canvas.width - ((i - rowStart) >> 2);
break;
}
@ -552,21 +552,21 @@ class EdgeDetect{
tmpI = i + (colsIn[c].value << 2);
// najprej preverimo, če je piksel presegel mejo črnega robu
// first we check whether blackbarTreshold was exceeded
// first we check whether blackbarThreshold was exceeded
if(! colsIn[c].blackFound) {
if( image[tmpI] > this.blackbarTreshold ||
image[tmpI + 1] > this.blackbarTreshold ||
image[tmpI + 2] > this.blackbarTreshold ){
if( image[tmpI] > this.blackbarThreshold ||
image[tmpI + 1] > this.blackbarThreshold ||
image[tmpI + 2] > this.blackbarThreshold ){
colsOut[c].black = (i / this.conf.canvasImageDataRowLength) - 1;
colsOut[c].col = colsIn[c].value;
colsIn[c].blackFound = 1;
// prisili, da se zanka izvede še enkrat ter preveri,
// ali trenuten piksel preseže tudi imageTreshold
// ali trenuten piksel preseže tudi imageThreshold
//
// force the loop to repeat this step and check whether
// current pixel exceeds imageTreshold as well
// current pixel exceeds imageThreshold as well
c--;
continue;
}
@ -577,12 +577,12 @@ class EdgeDetect{
}
// zatem preverimo, če je piksel presegel mejo, po kateri sklepamo, da
// predstavlja sliko. Preverimo samo, če smo v stolpcu že presegli
// blackTreshold
// blackThreshold
//
// then we check whether pixel exceeded imageTreshold
if (image[tmpI] > this.imageTreshold ||
image[tmpI + 1] > this.imageTreshold ||
image[tmpI + 2] > this.imageTreshold ){
// then we check whether pixel exceeded imageThreshold
if (image[tmpI] > this.imageThreshold ||
image[tmpI + 1] > this.imageThreshold ||
image[tmpI + 2] > this.imageThreshold ){
colsOut[c].image = (i / this.conf.canvasImageDataRowLength)
colsIn[c].imageFound = true;
@ -590,7 +590,7 @@ class EdgeDetect{
}
}
}
if(edgeDetectCount >= this.colsTreshold) {
if(edgeDetectCount >= this.colsThreshold) {
break;
}
}
@ -605,21 +605,21 @@ class EdgeDetect{
tmpI = i + (colsIn[c].value << 2);
// najprej preverimo, če je piksel presegel mejo črnega robu
// first we check whether blackbarTreshold was exceeded
// first we check whether blackbarThreshold was exceeded
if(! colsIn[c].blackFound) {
if( image[tmpI] > this.blackbarTreshold ||
image[tmpI + 1] > this.blackbarTreshold ||
image[tmpI + 2] > this.blackbarTreshold ){
if( image[tmpI] > this.blackbarThreshold ||
image[tmpI + 1] > this.blackbarThreshold ||
image[tmpI + 2] > this.blackbarThreshold ){
colsOut[c].black = (i / this.conf.canvasImageDataRowLength);
colsOut[c].col = colsIn[c].value;
colsIn[c].blackFound = true;
// prisili, da se zanka izvede še enkrat ter preveri,
// ali trenuten piksel preseže tudi imageTreshold
// ali trenuten piksel preseže tudi imageThreshold
//
// force the loop to repeat this step and check whether
// current pixel exceeds imageTreshold as well
// current pixel exceeds imageThreshold as well
c--;
continue;
}
@ -630,12 +630,12 @@ class EdgeDetect{
}
// zatem preverimo, če je piksel presegel mejo, po kateri sklepamo, da
// predstavlja sliko. Preverimo samo, če smo v stolpcu že presegli
// blackTreshold
// blackThreshold
//
// then we check whether pixel exceeded imageTreshold
if (image[tmpI] > this.imageTreshold ||
image[tmpI + 1] > this.imageTreshold ||
image[tmpI + 2] > this.imageTreshold ){
// then we check whether pixel exceeded imageThreshold
if (image[tmpI] > this.imageThreshold ||
image[tmpI + 1] > this.imageThreshold ||
image[tmpI + 2] > this.imageThreshold ){
colsOut[c].image = (i / this.conf.canvasImageDataRowLength)
colsIn[c].imageFound = true;
@ -643,7 +643,7 @@ class EdgeDetect{
}
}
}
if(edgeDetectCount >= this.colsTreshold) {
if(edgeDetectCount >= this.colsThreshold) {
break;
}
}
@ -658,9 +658,9 @@ class EdgeDetect{
for(var col of colsIn){
tmpI = i + (col << 2);
if( image[tmpI] > this.blackbarTreshold ||
image[tmpI + 1] > this.blackbarTreshold ||
image[tmpI + 2] > this.blackbarTreshold ){
if( image[tmpI] > this.blackbarThreshold ||
image[tmpI + 1] > this.blackbarThreshold ||
image[tmpI + 2] > this.blackbarThreshold ){
var bottom = (i / this.conf.canvasImageDataRowLength) + 1;
colsOut.push({
@ -670,7 +670,7 @@ class EdgeDetect{
colsIn.splice(colsIn.indexOf(col), 1);
}
}
if(colsIn.length < this.colsTreshold)
if(colsIn.length < this.colsThreshold)
break;
}
} else {
@ -678,9 +678,9 @@ class EdgeDetect{
for(var col of colsIn){
tmpI = i + (col << 2);
if( image[tmpI] > this.blackbarTreshold ||
image[tmpI + 1] > this.blackbarTreshold ||
image[tmpI + 2] > this.blackbarTreshold ){
if( image[tmpI] > this.blackbarThreshold ||
image[tmpI + 1] > this.blackbarThreshold ||
image[tmpI + 2] > this.blackbarThreshold ){
colsOut.push({
col: col,
@ -689,7 +689,7 @@ class EdgeDetect{
colsIn.splice(colsIn.indexOf(col), 1);
}
}
if(colsIn.length < this.colsTreshold)
if(colsIn.length < this.colsThreshold)
break;
}
}
@ -702,9 +702,9 @@ class EdgeDetect{
for(var col of colsIn){
tmpI = i + (col << 2);
if( image[tmpI] > this.blackbarTreshold ||
image[tmpI + 1] > this.blackbarTreshold ||
image[tmpI + 2] > this.blackbarTreshold ){
if( image[tmpI] > this.blackbarThreshold ||
image[tmpI + 1] > this.blackbarThreshold ||
image[tmpI + 2] > this.blackbarThreshold ){
var bottom = (i / this.conf.canvasImageDataRowLength) + 1;
colsOut.push({
@ -718,7 +718,7 @@ class EdgeDetect{
this.conf.debugCanvas.trace(tmpI, DebugCanvasClasses.EDGEDETECT_ONBLACK);
}
}
if(colsIn.length < this.colsTreshold)
if(colsIn.length < this.colsThreshold)
break;
}
} else {
@ -726,9 +726,9 @@ class EdgeDetect{
for(var col of colsIn){
tmpI = i + (col << 2);
if( image[tmpI] > this.blackbarTreshold ||
image[tmpI + 1] > this.blackbarTreshold ||
image[tmpI + 2] > this.blackbarTreshold ){
if( image[tmpI] > this.blackbarThreshold ||
image[tmpI + 1] > this.blackbarThreshold ||
image[tmpI + 2] > this.blackbarThreshold ){
colsOut.push({
col: col,
@ -746,7 +746,7 @@ class EdgeDetect{
this.conf.debugCanvas.trace(tmpI, DebugCanvasClasses.EDGEDETECT_ONBLACK);
}
}
if(colsIn.length < this.colsTreshold)
if(colsIn.length < this.colsThreshold)
break;
}
}
@ -754,9 +754,9 @@ class EdgeDetect{
_blackbarTest(image, start, end){
for(var i = start; i < end; i += 4){
if( image[i ] > this.blackbarTreshold ||
image[i+1] > this.blackbarTreshold ||
image[i+2] > this.blackbarTreshold ){
if( image[i ] > this.blackbarThreshold ||
image[i+1] > this.blackbarThreshold ||
image[i+2] > this.blackbarThreshold ){
return true;
}
}
@ -765,9 +765,9 @@ class EdgeDetect{
_blackbarTest_dbg(image, start, end){
for(var i = start; i < end; i += 4){
if( image[i ] > this.blackbarTreshold ||
image[i+1] > this.blackbarTreshold ||
image[i+2] > this.blackbarTreshold ){
if( image[i ] > this.blackbarThreshold ||
image[i+1] > this.blackbarThreshold ||
image[i+2] > this.blackbarThreshold ){
this.conf.debugCanvas.trace(i, DebugCanvasClasses.VIOLATION)
return true;
@ -782,13 +782,13 @@ class EdgeDetect{
var detections = 0;
for(var i = start; i < end; i += 4){
if( image[i ] > this.blackbarTreshold ||
image[i+1] > this.blackbarTreshold ||
image[i+2] > this.blackbarTreshold ){
if( image[i ] > this.blackbarThreshold ||
image[i+1] > this.blackbarThreshold ||
image[i+2] > this.blackbarThreshold ){
++detections;
}
}
if(detections >= this.detectionTreshold){
if(detections >= this.detectionThreshold){
if(edgeCandidates[sampleOffset] != undefined)
edgeCandidates[sampleOffset].count++;
else{
@ -802,16 +802,16 @@ class EdgeDetect{
var detections = 0;
for(var i = start; i < end; i += 4){
if( image[i ] > this.blackbarTreshold ||
image[i+1] > this.blackbarTreshold ||
image[i+2] > this.blackbarTreshold ){
if( image[i ] > this.blackbarThreshold ||
image[i+1] > this.blackbarThreshold ||
image[i+2] > this.blackbarThreshold ){
++detections;
this.conf.debugCanvas.trace(i, DebugCanvasClasses.EDGEDETECT_IMAGE);
} else {
this.conf.debugCanvas.trace(i, DebugCanvasClasses.WARN);
}
}
if(detections >= this.detectionTreshold){
if(detections >= this.detectionThreshold){
if(edgeCandidates[sampleOffset] != undefined)
edgeCandidates[sampleOffset].count++;
else{

View File

@ -118,14 +118,14 @@
</div>
</div>
<div class="label">Letterbox misallignment treshold</div>
<div class="label">Letterbox misallignment threshold</div>
<div class="description">
If top and bottom bar differ by more than this (0 — 0%, 1 — 100%), we do not correct aspect ratio.
</div>
<div class="indent">
<div class="flex flex-row row-padding">
<div class="flex label-secondary">
Letterbox misalignment treshold
Letterbox misalignment threshold
</div>
<div class="flex flex-input">
<input type=""
@ -203,15 +203,15 @@
<b>Black level:</b> 0-255, where 0 is black. Anything below this number across all RGB components is considered black.
Black level can decrease if we detect darker blacks in the video. Lower values —> more accurate edge detection;
higher values —> detection is more forgiving to videos with less-than-ideal contrast ratios.<br/>
<b>Treshold:</b> If pixel is darker than the sum of black level and this value, it's considered black. In theory, lower -> better.
<b>Threshold:</b> If pixel is darker than the sum of black level and this value, it's considered black. In theory, lower -> better.
In practice, this value needs to be kept surprisingly high (8 might not be high enough), otherwise compression artifacts in videos
start having an adverse effect on quality of automatic detection.
<b>Gradient detection:</b> Attempt to discriminate between hard edges and gradients. 'Strict' and 'Lax' prevent aspect ratio
changes if we detected gradients instead of a legit edge. This results in fewer false positives, but may cause aspect ratio
detection to not work on darker frames.<br/>
<b>Image treshold:</b> When gradient detection is enabled, everything that's brighter than the sum of black level, treshold and
<b>Image threshold:</b> When gradient detection is enabled, everything that's brighter than the sum of black level, threshold and
ths is considered to be non-black.<br/>
<b>Gradient treshold:</b> If the distance between last black pixel and the first non-black pixel in a given column is more than this value,
<b>Gradient threshold:</b> If the distance between last black pixel and the first non-black pixel in a given column is more than this value,
we're looking at a gradient. If this happens while gradient detection is on, we don't change aspect ratio.<br/>
<b>Gradient sample size:</b> This option is really only relevant when using 'lax' gradient detection. If we don't find a non-black pixel
within this distance after last known black pixel when scanning a column, we presume we're not on a gradient.
@ -229,11 +229,11 @@
</div>
<div class="flex flex-row row-padding">
<div class="flex label-secondary">
Treshold:
Threshold:
</div>
<div class="flex flex-input">
<input type="number"
v-model="settings.active.arDetect.blackbar.treshold"
v-model="settings.active.arDetect.blackbar.threshold"
/>
</div>
</div>
@ -247,21 +247,21 @@
</div>
<div v-if="showAdvancedOptions" class="flex flex-row row-padding">
<div class="flex label-secondary">
Image treshold
Image threshold
</div>
<div class="flex flex-input">
<input type="number"
v-model="settings.active.arDetect.blackbar.imageTreshold"
v-model="settings.active.arDetect.blackbar.imageThreshold"
/>
</div>
</div>
<div v-if="showAdvancedOptions" class="flex flex-row row-padding">
<div class="flex label-secondary">
Gradient treshold:
Gradient threshold:
</div>
<div class="flex flex-input">
<input type="number"
v-model="settings.active.arDetect.blackbar.gradientTreshold"
v-model="settings.active.arDetect.blackbar.gradientThreshold"
/>
</div>
</div>
@ -283,8 +283,8 @@
Black frame detection is a quick test that tries to determine whether we're looking at a black frame. This test prevents
us from wasting precious time trying to detect aspect ratio on frames that are too dark for reliable aspect ratio detection.<br/>
<b>Sample width, height:</b> Sample size. Since we're checking <i>every</i> pixel in this sample, dimensions should be kept small.<br/>
<b>Cumulative treshold:</b> If we add the maximum of red, green, blue values of every pixel in the sample and they total more than this, the frame is bright enough.<br/>
<b>Black pixel treshold:</b> If more than this fraction of pixels from the sample are "black", we consider the frame black. This overrules cumulative treshold.
<b>Cumulative threshold:</b> If we add the maximum of red, green, blue values of every pixel in the sample and they total more than this, the frame is bright enough.<br/>
<b>Black pixel threshold:</b> If more than this fraction of pixels from the sample are "black", we consider the frame black. This overrules cumulative threshold.
</div>
<div class="indent">
<div class="flex flex-row row-padding">
@ -309,17 +309,17 @@
</div>
<div class="flex flex-row row-padding">
<div class="flex label-secondary">
Cumulative treshold:
Cumulative threshold:
</div>
<div class="flex flex-input">
<input type="number"
v-model="settings.active.arDetect.blackframe.cumulativeTreshold"
v-model="settings.active.arDetect.blackframe.cumulativeThreshold"
/>
</div>
</div>
<div class="flex flex-row row-padding">
<div class="flex label-secondary">
Black pixel treshold:
Black pixel threshold:
</div>
<div class="flex flex-input">
<input type=""
@ -335,8 +335,8 @@
Options in this section govern edge detection.<br/>
<b>Sample width</b> — In a bid to detect "false" edges, we take two samples this many pixels wide near the point of our potential edge. One sample must be completely black, the other must contain a set
amount of non-black pixels.<br/>
<b>Detection treshold</b> — non-black sample mentioned above needs to contain at least this many non-black pixels.<br/>
<b>Single side confirmation treshold</b> — quorum needed to establish aspect ratio in case we manage to detect an edge only on one side of the video. (0-0.5)<br/>
<b>Detection threshold</b> — non-black sample mentioned above needs to contain at least this many non-black pixels.<br/>
<b>Single side confirmation threshold</b> — quorum needed to establish aspect ratio in case we manage to detect an edge only on one side of the video. (0-0.5)<br/>
<b>Logo threshold</b> — if edge candidate sits with count greater than this*all_samples, it can't be a logo or a watermark.<br/>
<b>Ignore middle area</b> — When trying to detect area, ignore area between middle and canvasHeight * {this value} pixels towards the edge.<br/>
<b>Detect limit</b> — stop search after finding a potential candidate in this many sample columns (%, 0-1)<br/>
@ -354,31 +354,31 @@
</div>
<div class="flex flex-row row-padding">
<div class="flex label-secondary">
Detection treshold (px):
Detection threshold (px):
</div>
<div class="flex flex-input">
<input type="number"
v-model="settings.active.arDetect.edgeDetection.detectionTreshold"
v-model="settings.active.arDetect.edgeDetection.detectionThreshold"
/>
</div>
</div>
<div class="flex flex-row row-padding">
<div class="flex label-secondary">
Single side confirmation treshold:
Single side confirmation threshold:
</div>
<div class="flex flex-input">
<input
v-model="settings.active.arDetect.edgeDetection.singleSideConfirmationTreshold"
v-model="settings.active.arDetect.edgeDetection.singleSideConfirmationThreshold"
/>
</div>
</div>
<div class="flex flex-row row-padding" v-if="showAdvancedOptions">
<div class="flex label-secondary">
Logo treshold:
Logo threshold:
</div>
<div class="flex flex-input">
<input
v-model="settings.active.arDetect.edgeDetection.logoTreshold"
v-model="settings.active.arDetect.edgeDetection.logoThreshold"
/>
</div>
</div>
@ -409,7 +409,7 @@
Quick test to determine whether aspect ratio hasn't changed. Test is performed by taking two samples on each edge of the image —
one in the last row of the letterbox (blackbar), and one in the first row of the video (image).<br/>
<b>Ignore edge margin:</b> We don't take blackbar and image samples {width * this} many pixels from left and right edge.<br/>
<b>Image treshold:</b> If all pixels in blackbar are black and this fraction (0-1) of pixels in image are non-black, we presume that aspect ratio hasn't changed.<br/>
<b>Image threshold:</b> If all pixels in blackbar are black and this fraction (0-1) of pixels in image are non-black, we presume that aspect ratio hasn't changed.<br/>
<b>Edge tolerance (px):<b> I lied. Blackbar test happens this many pixels away from the last row of the letterbox.
</div>
<div class="indent">
@ -439,7 +439,7 @@
</div>
<div class="flex flex-input">
<input type="number"
v-model="settings.active.arDetect.canvasDimensions.guardLine.imageTestTreshold"
v-model="settings.active.arDetect.canvasDimensions.guardLine.imageTestThreshold"
/>
</div>
</div>
@ -456,14 +456,14 @@
</div>
<div v-if="showAdvancedOptions">
<div class="label">Aspect ratio change treshold</div>
<div class="label">Aspect ratio change threshold</div>
<div class="description">
New and old aspect ratio must differ by at least this much (%, 1=100%) before we trigger aspect ratio correction.
</div>
<div class="indent">
<div class="flex flex-row row-padding">
<div class="flex label-secondary">
Aspect ratio change treshold.
Aspect ratio change threshold.
</div>
<div class="flex flex-input">
<input type=""

View File

@ -98,18 +98,18 @@
<b>Hybrid:</b> stretches the video to fit the player, but only if cropping didn't completely remove the black bars.<br/>
<b>Thin borders:</b> stretches only if the width of black borders after cropping is thin.
<br/>
Treshold for thin borders can be defined below.
Threshold for thin borders can be defined below.
</div>
<div class="indent">
<div class="flex flex-row row-padding">
<div class="flex label-secondary">
Thin border treshold:
Thin border threshold:
</div>
<div class="flex flex-input">
<input type="number"
step="any"
:value="settings.active.stretch.conditionalDifferencePercent"
@input="updateStretchTreshold($event.target.value)"
@input="updateStretchThreshold($event.target.value)"
>
</div>
</div>
@ -168,11 +168,11 @@ export default {
this.settings.active.sites['@global'].stretch = mode;
this.settings.save();
},
updateStretchTreshold(newTreshold) {
if (!newTreshold || isNaN(newTreshold)) {
updateStretchThreshold(newThreshold) {
if (!newThreshold || isNaN(newThreshold)) {
return;
}
this.settings.active.stretch.conditionalDifferencePercent = newTreshold;
this.settings.active.stretch.conditionalDifferencePercent = newThreshold;
this.settings.save();
},
resetSettings() {

View File

@ -17,7 +17,7 @@ var ui = {
stretchSettings: {
buttonContainer: BaseElement.fromExisting(document.getElementById('_general_extension_global_stretch')),
buttons: [],
thinBordersTresholdInput: document.getElementById('_general_extension_global_stretch_thin_borders_treshold_input')
thinBordersThresholdInput: document.getElementById('_general_extension_global_stretch_thin_borders_threshold_input')
}
},

View File

@ -89,11 +89,11 @@
<b>Hybrid:</b> stretches the video to fit the player, but only if cropping didn't completely remove the black bars.<br/>
<b>Thin borders:</b> stretches only if the width of black borders after cropping is thin.
<br/>
Treshold for thin borders can be defined below.
Threshold for thin borders can be defined below.
</span>
<div class="flex flex-row">
<div class="flex flex-input-label">
Thin border treshold (%):
Thin border threshold (%):
</div>
<div class="flex flex-input">
<input id="_general_extension_global_stretch_thin_borders_input" type="number">